{"version":3,"file":"plotly-D0eAwZO1.js","sources":["../../node_modules/base64-js/index.js","../../node_modules/ieee754/index.js","../../node_modules/buffer/index.js","../../node_modules/react-plotly.js/factory.js","../../node_modules/plotly.js/dist/plotly.js","../../node_modules/react-plotly.js/react-plotly.js"],"sourcesContent":["'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = plotComponentFactory;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n// The naming convention is:\n// - events are attached as `'plotly_' + eventName.toLowerCase()`\n// - react props are `'on' + eventName`\nvar eventNames = ['AfterExport', 'AfterPlot', 'Animated', 'AnimatingFrame', 'AnimationInterrupted', 'AutoSize', 'BeforeExport', 'BeforeHover', 'ButtonClicked', 'Click', 'ClickAnnotation', 'Deselect', 'DoubleClick', 'Framework', 'Hover', 'LegendClick', 'LegendDoubleClick', 'Relayout', 'Relayouting', 'Restyle', 'Redraw', 'Selected', 'Selecting', 'SliderChange', 'SliderEnd', 'SliderStart', 'SunburstClick', 'Transitioning', 'TransitionInterrupted', 'Unhover', 'WebGlContextLost'];\nvar updateEvents = ['plotly_restyle', 'plotly_redraw', 'plotly_relayout', 'plotly_relayouting', 'plotly_doubleclick', 'plotly_animated', 'plotly_sunburstclick']; // Check if a window is available since SSR (server-side rendering)\n// breaks unnecessarily if you try to use it server-side.\n\nvar isBrowser = typeof window !== 'undefined';\n\nfunction plotComponentFactory(Plotly) {\n var PlotlyComponent = /*#__PURE__*/function (_Component) {\n _inherits(PlotlyComponent, _Component);\n\n var _super = _createSuper(PlotlyComponent);\n\n function PlotlyComponent(props) {\n var _this;\n\n _classCallCheck(this, PlotlyComponent);\n\n _this = _super.call(this, props);\n _this.p = Promise.resolve();\n _this.resizeHandler = null;\n _this.handlers = {};\n _this.syncWindowResize = _this.syncWindowResize.bind(_assertThisInitialized(_this));\n _this.syncEventHandlers = _this.syncEventHandlers.bind(_assertThisInitialized(_this));\n _this.attachUpdateEvents = _this.attachUpdateEvents.bind(_assertThisInitialized(_this));\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.handleUpdate = _this.handleUpdate.bind(_assertThisInitialized(_this));\n _this.figureCallback = _this.figureCallback.bind(_assertThisInitialized(_this));\n _this.updatePlotly = _this.updatePlotly.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(PlotlyComponent, [{\n key: \"updatePlotly\",\n value: function updatePlotly(shouldInvokeResizeHandler, figureCallbackFunction, shouldAttachUpdateEvents) {\n var _this2 = this;\n\n this.p = this.p.then(function () {\n if (_this2.unmounting) {\n return;\n }\n\n if (!_this2.el) {\n throw new Error('Missing element reference');\n } // eslint-disable-next-line consistent-return\n\n\n return Plotly.react(_this2.el, {\n data: _this2.props.data,\n layout: _this2.props.layout,\n config: _this2.props.config,\n frames: _this2.props.frames\n });\n }).then(function () {\n if (_this2.unmounting) {\n return;\n }\n\n _this2.syncWindowResize(shouldInvokeResizeHandler);\n\n _this2.syncEventHandlers();\n\n _this2.figureCallback(figureCallbackFunction);\n\n if (shouldAttachUpdateEvents) {\n _this2.attachUpdateEvents();\n }\n })[\"catch\"](function (err) {\n if (_this2.props.onError) {\n _this2.props.onError(err);\n }\n });\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.unmounting = false;\n this.updatePlotly(true, this.props.onInitialized, true);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.unmounting = false; // frames *always* changes identity so fall back to check length only :(\n\n var numPrevFrames = prevProps.frames && prevProps.frames.length ? prevProps.frames.length : 0;\n var numNextFrames = this.props.frames && this.props.frames.length ? this.props.frames.length : 0;\n var figureChanged = !(prevProps.layout === this.props.layout && prevProps.data === this.props.data && prevProps.config === this.props.config && numNextFrames === numPrevFrames);\n var revisionDefined = prevProps.revision !== void 0;\n var revisionChanged = prevProps.revision !== this.props.revision;\n\n if (!figureChanged && (!revisionDefined || revisionDefined && !revisionChanged)) {\n return;\n }\n\n this.updatePlotly(false, this.props.onUpdate, false);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.unmounting = true;\n this.figureCallback(this.props.onPurge);\n\n if (this.resizeHandler && isBrowser) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n\n this.removeUpdateEvents();\n Plotly.purge(this.el);\n }\n }, {\n key: \"attachUpdateEvents\",\n value: function attachUpdateEvents() {\n var _this3 = this;\n\n if (!this.el || !this.el.removeListener) {\n return;\n }\n\n updateEvents.forEach(function (updateEvent) {\n _this3.el.on(updateEvent, _this3.handleUpdate);\n });\n }\n }, {\n key: \"removeUpdateEvents\",\n value: function removeUpdateEvents() {\n var _this4 = this;\n\n if (!this.el || !this.el.removeListener) {\n return;\n }\n\n updateEvents.forEach(function (updateEvent) {\n _this4.el.removeListener(updateEvent, _this4.handleUpdate);\n });\n }\n }, {\n key: \"handleUpdate\",\n value: function handleUpdate() {\n this.figureCallback(this.props.onUpdate);\n }\n }, {\n key: \"figureCallback\",\n value: function figureCallback(callback) {\n if (typeof callback === 'function') {\n var _this$el = this.el,\n data = _this$el.data,\n layout = _this$el.layout;\n var frames = this.el._transitionData ? this.el._transitionData._frames : null;\n var figure = {\n data: data,\n layout: layout,\n frames: frames\n };\n callback(figure, this.el);\n }\n }\n }, {\n key: \"syncWindowResize\",\n value: function syncWindowResize(invoke) {\n var _this5 = this;\n\n if (!isBrowser) {\n return;\n }\n\n if (this.props.useResizeHandler && !this.resizeHandler) {\n this.resizeHandler = function () {\n return Plotly.Plots.resize(_this5.el);\n };\n\n window.addEventListener('resize', this.resizeHandler);\n\n if (invoke) {\n this.resizeHandler();\n }\n } else if (!this.props.useResizeHandler && this.resizeHandler) {\n window.removeEventListener('resize', this.resizeHandler);\n this.resizeHandler = null;\n }\n }\n }, {\n key: \"getRef\",\n value: function getRef(el) {\n this.el = el;\n\n if (this.props.debug && isBrowser) {\n window.gd = this.el;\n }\n } // Attach and remove event handlers as they're added or removed from props:\n\n }, {\n key: \"syncEventHandlers\",\n value: function syncEventHandlers() {\n var _this6 = this;\n\n eventNames.forEach(function (eventName) {\n var prop = _this6.props['on' + eventName];\n var handler = _this6.handlers[eventName];\n var hasHandler = Boolean(handler);\n\n if (prop && !hasHandler) {\n _this6.addEventHandler(eventName, prop);\n } else if (!prop && hasHandler) {\n // Needs to be removed:\n _this6.removeEventHandler(eventName);\n } else if (prop && hasHandler && prop !== handler) {\n // replace the handler\n _this6.removeEventHandler(eventName);\n\n _this6.addEventHandler(eventName, prop);\n }\n });\n }\n }, {\n key: \"addEventHandler\",\n value: function addEventHandler(eventName, prop) {\n this.handlers[eventName] = prop;\n this.el.on(this.getPlotlyEventName(eventName), this.handlers[eventName]);\n }\n }, {\n key: \"removeEventHandler\",\n value: function removeEventHandler(eventName) {\n this.el.removeListener(this.getPlotlyEventName(eventName), this.handlers[eventName]);\n delete this.handlers[eventName];\n }\n }, {\n key: \"getPlotlyEventName\",\n value: function getPlotlyEventName(eventName) {\n return 'plotly_' + eventName.toLowerCase();\n }\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n id: this.props.divId,\n style: this.props.style,\n ref: this.getRef,\n className: this.props.className\n });\n }\n }]);\n\n return PlotlyComponent;\n }(_react.Component);\n\n PlotlyComponent.propTypes = {\n data: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].object),\n config: _propTypes[\"default\"].object,\n layout: _propTypes[\"default\"].object,\n frames: _propTypes[\"default\"].arrayOf(_propTypes[\"default\"].object),\n revision: _propTypes[\"default\"].number,\n onInitialized: _propTypes[\"default\"].func,\n onPurge: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onUpdate: _propTypes[\"default\"].func,\n debug: _propTypes[\"default\"].bool,\n style: _propTypes[\"default\"].object,\n className: _propTypes[\"default\"].string,\n useResizeHandler: _propTypes[\"default\"].bool,\n divId: _propTypes[\"default\"].string\n };\n eventNames.forEach(function (eventName) {\n PlotlyComponent.propTypes['on' + eventName] = _propTypes[\"default\"].func;\n });\n PlotlyComponent.defaultProps = {\n debug: false,\n useResizeHandler: false,\n data: [],\n style: {\n position: 'relative',\n display: 'inline-block'\n }\n };\n return PlotlyComponent;\n}\n//# sourceMappingURL=factory.js.map","/**\n* plotly.js v3.0.1\n* Copyright 2012-2025, Plotly, Inc.\n* All rights reserved.\n* Licensed under the MIT license\n*/\n(\n function(root, factory) {\n if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.moduleName = factory();\n }\n} (typeof self !== \"undefined\" ? self : this, () => {\n\"use strict\";\nvar Plotly = (() => {\n var __create = Object.create;\n var __defProp = Object.defineProperty;\n var __defProps = Object.defineProperties;\n var __getOwnPropDesc = Object.getOwnPropertyDescriptor;\n var __getOwnPropDescs = Object.getOwnPropertyDescriptors;\n var __getOwnPropNames = Object.getOwnPropertyNames;\n var __getOwnPropSymbols = Object.getOwnPropertySymbols;\n var __getProtoOf = Object.getPrototypeOf;\n var __hasOwnProp = Object.prototype.hasOwnProperty;\n var __propIsEnum = Object.prototype.propertyIsEnumerable;\n var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\n var __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n };\n var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\n var __esm = (fn, res) => function __init() {\n return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;\n };\n var __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n };\n var __export = (target, all) => {\n for (var name2 in all)\n __defProp(target, name2, { get: all[name2], enumerable: true });\n };\n var __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n };\n var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n ));\n var __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n // src/version.js\n var require_version = __commonJS({\n \"src/version.js\"(exports) {\n \"use strict\";\n exports.version = \"3.0.1\";\n }\n });\n\n // node_modules/native-promise-only/lib/npo.src.js\n var require_npo_src = __commonJS({\n \"node_modules/native-promise-only/lib/npo.src.js\"(exports, module) {\n (function UMD(name2, context, definition) {\n context[name2] = context[name2] || definition();\n if (typeof module != \"undefined\" && module.exports) {\n module.exports = context[name2];\n } else if (typeof define == \"function\" && false) {\n define(function $AMD$() {\n return context[name2];\n });\n }\n })(\"Promise\", typeof window != \"undefined\" ? window : exports, function DEF() {\n \"use strict\";\n var builtInProp, cycle, scheduling_queue, ToString = Object.prototype.toString, timer = typeof setImmediate != \"undefined\" ? function timer2(fn) {\n return setImmediate(fn);\n } : setTimeout;\n try {\n Object.defineProperty({}, \"x\", {});\n builtInProp = function builtInProp2(obj, name2, val, config) {\n return Object.defineProperty(obj, name2, {\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n } catch (err) {\n builtInProp = function builtInProp2(obj, name2, val) {\n obj[name2] = val;\n return obj;\n };\n }\n scheduling_queue = /* @__PURE__ */ function Queue() {\n var first, last, item;\n function Item(fn, self2) {\n this.fn = fn;\n this.self = self2;\n this.next = void 0;\n }\n return {\n add: function add(fn, self2) {\n item = new Item(fn, self2);\n if (last) {\n last.next = item;\n } else {\n first = item;\n }\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n }();\n function schedule(fn, self2) {\n scheduling_queue.add(fn, self2);\n if (!cycle) {\n cycle = timer(scheduling_queue.drain);\n }\n }\n function isThenable(o) {\n var _then, o_type = typeof o;\n if (o != null && (o_type == \"object\" || o_type == \"function\")) {\n _then = o.then;\n }\n return typeof _then == \"function\" ? _then : false;\n }\n function notify() {\n for (var i = 0; i < this.chain.length; i++) {\n notifyIsolated(\n this,\n this.state === 1 ? this.chain[i].success : this.chain[i].failure,\n this.chain[i]\n );\n }\n this.chain.length = 0;\n }\n function notifyIsolated(self2, cb, chain) {\n var ret, _then;\n try {\n if (cb === false) {\n chain.reject(self2.msg);\n } else {\n if (cb === true) {\n ret = self2.msg;\n } else {\n ret = cb.call(void 0, self2.msg);\n }\n if (ret === chain.promise) {\n chain.reject(TypeError(\"Promise-chain cycle\"));\n } else if (_then = isThenable(ret)) {\n _then.call(ret, chain.resolve, chain.reject);\n } else {\n chain.resolve(ret);\n }\n }\n } catch (err) {\n chain.reject(err);\n }\n }\n function resolve(msg) {\n var _then, self2 = this;\n if (self2.triggered) {\n return;\n }\n self2.triggered = true;\n if (self2.def) {\n self2 = self2.def;\n }\n try {\n if (_then = isThenable(msg)) {\n schedule(function() {\n var def_wrapper = new MakeDefWrapper(self2);\n try {\n _then.call(\n msg,\n function $resolve$() {\n resolve.apply(def_wrapper, arguments);\n },\n function $reject$() {\n reject.apply(def_wrapper, arguments);\n }\n );\n } catch (err) {\n reject.call(def_wrapper, err);\n }\n });\n } else {\n self2.msg = msg;\n self2.state = 1;\n if (self2.chain.length > 0) {\n schedule(notify, self2);\n }\n }\n } catch (err) {\n reject.call(new MakeDefWrapper(self2), err);\n }\n }\n function reject(msg) {\n var self2 = this;\n if (self2.triggered) {\n return;\n }\n self2.triggered = true;\n if (self2.def) {\n self2 = self2.def;\n }\n self2.msg = msg;\n self2.state = 2;\n if (self2.chain.length > 0) {\n schedule(notify, self2);\n }\n }\n function iteratePromises(Constructor, arr, resolver, rejecter) {\n for (var idx = 0; idx < arr.length; idx++) {\n (function IIFE(idx2) {\n Constructor.resolve(arr[idx2]).then(\n function $resolver$(msg) {\n resolver(idx2, msg);\n },\n rejecter\n );\n })(idx);\n }\n }\n function MakeDefWrapper(self2) {\n this.def = self2;\n this.triggered = false;\n }\n function MakeDef(self2) {\n this.promise = self2;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n }\n function Promise2(executor) {\n if (typeof executor != \"function\") {\n throw TypeError(\"Not a function\");\n }\n if (this.__NPO__ !== 0) {\n throw TypeError(\"Not a promise\");\n }\n this.__NPO__ = 1;\n var def = new MakeDef(this);\n this[\"then\"] = function then(success, failure) {\n var o = {\n success: typeof success == \"function\" ? success : true,\n failure: typeof failure == \"function\" ? failure : false\n };\n o.promise = new this.constructor(function extractChain(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n o.resolve = resolve2;\n o.reject = reject2;\n });\n def.chain.push(o);\n if (def.state !== 0) {\n schedule(notify, def);\n }\n return o.promise;\n };\n this[\"catch\"] = function $catch$(failure) {\n return this.then(void 0, failure);\n };\n try {\n executor.call(\n void 0,\n function publicResolve(msg) {\n resolve.call(def, msg);\n },\n function publicReject(msg) {\n reject.call(def, msg);\n }\n );\n } catch (err) {\n reject.call(def, err);\n }\n }\n var PromisePrototype = builtInProp(\n {},\n \"constructor\",\n Promise2,\n /*configurable=*/\n false\n );\n Promise2.prototype = PromisePrototype;\n builtInProp(\n PromisePrototype,\n \"__NPO__\",\n 0,\n /*configurable=*/\n false\n );\n builtInProp(Promise2, \"resolve\", function Promise$resolve(msg) {\n var Constructor = this;\n if (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n return msg;\n }\n return new Constructor(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n resolve2(msg);\n });\n });\n builtInProp(Promise2, \"reject\", function Promise$reject(msg) {\n return new this(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n reject2(msg);\n });\n });\n builtInProp(Promise2, \"all\", function Promise$all(arr) {\n var Constructor = this;\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n return new Constructor(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n var len = arr.length, msgs = Array(len), count = 0;\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n msgs[idx] = msg;\n if (++count === len) {\n resolve2(msgs);\n }\n }, reject2);\n });\n });\n builtInProp(Promise2, \"race\", function Promise$race(arr) {\n var Constructor = this;\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n return new Constructor(function executor(resolve2, reject2) {\n if (typeof resolve2 != \"function\" || typeof reject2 != \"function\") {\n throw TypeError(\"Not a function\");\n }\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n resolve2(msg);\n }, reject2);\n });\n });\n return Promise2;\n });\n }\n });\n\n // node_modules/@plotly/d3/d3.js\n var require_d3 = __commonJS({\n \"node_modules/@plotly/d3/d3.js\"(exports, module) {\n !function() {\n var d3 = {\n version: \"3.8.2\"\n };\n var d3_arraySlice = [].slice, d3_array = function(list) {\n return d3_arraySlice.call(list);\n };\n var d3_document = self.document;\n function d3_documentElement(node) {\n return node && (node.ownerDocument || node.document || node).documentElement;\n }\n function d3_window(node) {\n return node && (node.ownerDocument && node.ownerDocument.defaultView || node.document && node || node.defaultView);\n }\n if (d3_document) {\n try {\n d3_array(d3_document.documentElement.childNodes)[0].nodeType;\n } catch (e) {\n d3_array = function(list) {\n var i = list.length, array = new Array(i);\n while (i--) array[i] = list[i];\n return array;\n };\n }\n }\n if (!Date.now) Date.now = function() {\n return +/* @__PURE__ */ new Date();\n };\n if (d3_document) {\n try {\n d3_document.createElement(\"DIV\").style.setProperty(\"opacity\", 0, \"\");\n } catch (error) {\n var d3_element_prototype = this.Element.prototype, d3_element_setAttribute = d3_element_prototype.setAttribute, d3_element_setAttributeNS = d3_element_prototype.setAttributeNS, d3_style_prototype = this.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;\n d3_element_prototype.setAttribute = function(name2, value) {\n d3_element_setAttribute.call(this, name2, value + \"\");\n };\n d3_element_prototype.setAttributeNS = function(space, local, value) {\n d3_element_setAttributeNS.call(this, space, local, value + \"\");\n };\n d3_style_prototype.setProperty = function(name2, value, priority) {\n d3_style_setProperty.call(this, name2, value + \"\", priority);\n };\n }\n }\n d3.ascending = d3_ascending;\n function d3_ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n d3.descending = function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n };\n d3.min = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && a > b) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;\n }\n return a;\n };\n d3.max = function(array, f) {\n var i = -1, n = array.length, a, b;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null && b > a) a = b;\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;\n }\n return a;\n };\n d3.extent = function(array, f) {\n var i = -1, n = array.length, a, b, c;\n if (arguments.length === 1) {\n while (++i < n) if ((b = array[i]) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = array[i]) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n } else {\n while (++i < n) if ((b = f.call(array, array[i], i)) != null && b >= b) {\n a = c = b;\n break;\n }\n while (++i < n) if ((b = f.call(array, array[i], i)) != null) {\n if (a > b) a = b;\n if (c < b) c = b;\n }\n }\n return [a, c];\n };\n function d3_number(x) {\n return x === null ? NaN : +x;\n }\n function d3_numeric(x) {\n return !isNaN(x);\n }\n d3.sum = function(array, f) {\n var s = 0, n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = +array[i])) s += a;\n } else {\n while (++i < n) if (d3_numeric(a = +f.call(array, array[i], i))) s += a;\n }\n return s;\n };\n d3.mean = function(array, f) {\n var s = 0, n = array.length, a, i = -1, j = n;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) s += a;\n else --j;\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) s += a;\n else --j;\n }\n if (j) return s / j;\n };\n d3.quantile = function(values, p) {\n var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;\n return e ? v + e * (values[h] - v) : v;\n };\n d3.median = function(array, f) {\n var numbers = [], n = array.length, a, i = -1;\n if (arguments.length === 1) {\n while (++i < n) if (d3_numeric(a = d3_number(array[i]))) numbers.push(a);\n } else {\n while (++i < n) if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) numbers.push(a);\n }\n if (numbers.length) return d3.quantile(numbers.sort(d3_ascending), 0.5);\n };\n d3.variance = function(array, f) {\n var n = array.length, m = 0, a, d, s = 0, i = -1, j = 0;\n if (arguments.length === 1) {\n while (++i < n) {\n if (d3_numeric(a = d3_number(array[i]))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n } else {\n while (++i < n) {\n if (d3_numeric(a = d3_number(f.call(array, array[i], i)))) {\n d = a - m;\n m += d / ++j;\n s += d * (a - m);\n }\n }\n }\n if (j > 1) return s / (j - 1);\n };\n d3.deviation = function() {\n var v = d3.variance.apply(this, arguments);\n return v ? Math.sqrt(v) : v;\n };\n function d3_bisector(compare) {\n return {\n left: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (arguments.length < 3) lo = 0;\n if (arguments.length < 4) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n var d3_bisect = d3_bisector(d3_ascending);\n d3.bisectLeft = d3_bisect.left;\n d3.bisect = d3.bisectRight = d3_bisect.right;\n d3.bisector = function(f) {\n return d3_bisector(f.length === 1 ? function(d, x) {\n return d3_ascending(f(d), x);\n } : f);\n };\n d3.shuffle = function(array, i0, i1) {\n if ((m = arguments.length) < 3) {\n i1 = array.length;\n if (m < 2) i0 = 0;\n }\n var m = i1 - i0, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m + i0], array[m + i0] = array[i + i0], array[i + i0] = t;\n }\n return array;\n };\n d3.permute = function(array, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array[indexes[i]];\n return permutes;\n };\n d3.pairs = function(array) {\n var i = 0, n = array.length - 1, p0, p1 = array[0], pairs = new Array(n < 0 ? 0 : n);\n while (i < n) pairs[i] = [p0 = p1, p1 = array[++i]];\n return pairs;\n };\n d3.transpose = function(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose;\n };\n function d3_transposeLength(d) {\n return d.length;\n }\n d3.zip = function() {\n return d3.transpose(arguments);\n };\n d3.keys = function(map) {\n var keys = [];\n for (var key in map) keys.push(key);\n return keys;\n };\n d3.values = function(map) {\n var values = [];\n for (var key in map) values.push(map[key]);\n return values;\n };\n d3.entries = function(map) {\n var entries = [];\n for (var key in map) entries.push({\n key,\n value: map[key]\n });\n return entries;\n };\n d3.merge = function(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array = arrays[n];\n m = array.length;\n while (--m >= 0) {\n merged[--j] = array[m];\n }\n }\n return merged;\n };\n var abs = Math.abs;\n d3.range = function(start, stop, step) {\n if (arguments.length < 3) {\n step = 1;\n if (arguments.length < 2) {\n stop = start;\n start = 0;\n }\n }\n if ((stop - start) / step === Infinity) throw new Error(\"infinite range\");\n var range = [], k = d3_range_integerScale(abs(step)), i = -1, j;\n start *= k, stop *= k, step *= k;\n if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k);\n else while ((j = start + step * ++i) < stop) range.push(j / k);\n return range;\n };\n function d3_range_integerScale(x) {\n var k = 1;\n while (x * k % 1) k *= 10;\n return k;\n }\n function d3_class(ctor, properties) {\n for (var key in properties) {\n Object.defineProperty(ctor.prototype, key, {\n value: properties[key],\n enumerable: false\n });\n }\n }\n d3.map = function(object, f) {\n var map = new d3_Map();\n if (object instanceof d3_Map) {\n object.forEach(function(key2, value) {\n map.set(key2, value);\n });\n } else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (arguments.length === 1) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f.call(object, o = object[i], i), o);\n } else {\n for (var key in object) map.set(key, object[key]);\n }\n return map;\n };\n function d3_Map() {\n this._ = /* @__PURE__ */ Object.create(null);\n }\n var d3_map_proto = \"__proto__\", d3_map_zero = \"\\0\";\n d3_class(d3_Map, {\n has: d3_map_has,\n get: function(key) {\n return this._[d3_map_escape(key)];\n },\n set: function(key, value) {\n return this._[d3_map_escape(key)] = value;\n },\n remove: d3_map_remove,\n keys: d3_map_keys,\n values: function() {\n var values = [];\n for (var key in this._) values.push(this._[key]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var key in this._) entries.push({\n key: d3_map_unescape(key),\n value: this._[key]\n });\n return entries;\n },\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key), this._[key]);\n }\n });\n function d3_map_escape(key) {\n return (key += \"\") === d3_map_proto || key[0] === d3_map_zero ? d3_map_zero + key : key;\n }\n function d3_map_unescape(key) {\n return (key += \"\")[0] === d3_map_zero ? key.slice(1) : key;\n }\n function d3_map_has(key) {\n return d3_map_escape(key) in this._;\n }\n function d3_map_remove(key) {\n return (key = d3_map_escape(key)) in this._ && delete this._[key];\n }\n function d3_map_keys() {\n var keys = [];\n for (var key in this._) keys.push(d3_map_unescape(key));\n return keys;\n }\n function d3_map_size() {\n var size = 0;\n for (var key in this._) ++size;\n return size;\n }\n function d3_map_empty() {\n for (var key in this._) return false;\n return true;\n }\n d3.nest = function() {\n var nest = {}, keys = [], sortKeys = [], sortValues, rollup;\n function map(mapType, array, depth) {\n if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;\n var i = -1, n = array.length, key = keys[depth++], keyValue, object, setter, valuesByKey = new d3_Map(), values;\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(object = array[i]))) {\n values.push(object);\n } else {\n valuesByKey.set(keyValue, [object]);\n }\n }\n if (mapType) {\n object = mapType();\n setter = function(keyValue2, values2) {\n object.set(keyValue2, map(mapType, values2, depth));\n };\n } else {\n object = {};\n setter = function(keyValue2, values2) {\n object[keyValue2] = map(mapType, values2, depth);\n };\n }\n valuesByKey.forEach(setter);\n return object;\n }\n function entries(map2, depth) {\n if (depth >= keys.length) return map2;\n var array = [], sortKey = sortKeys[depth++];\n map2.forEach(function(key, keyMap) {\n array.push({\n key,\n values: entries(keyMap, depth)\n });\n });\n return sortKey ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n nest.map = function(array, mapType) {\n return map(mapType, array, 0);\n };\n nest.entries = function(array) {\n return entries(map(d3.map, array, 0), 0);\n };\n nest.key = function(d) {\n keys.push(d);\n return nest;\n };\n nest.sortKeys = function(order) {\n sortKeys[keys.length - 1] = order;\n return nest;\n };\n nest.sortValues = function(order) {\n sortValues = order;\n return nest;\n };\n nest.rollup = function(f) {\n rollup = f;\n return nest;\n };\n return nest;\n };\n d3.set = function(array) {\n var set = new d3_Set();\n if (array) for (var i = 0, n = array.length; i < n; ++i) set.add(array[i]);\n return set;\n };\n function d3_Set() {\n this._ = /* @__PURE__ */ Object.create(null);\n }\n d3_class(d3_Set, {\n has: d3_map_has,\n add: function(key) {\n this._[d3_map_escape(key += \"\")] = true;\n return key;\n },\n remove: d3_map_remove,\n values: d3_map_keys,\n size: d3_map_size,\n empty: d3_map_empty,\n forEach: function(f) {\n for (var key in this._) f.call(this, d3_map_unescape(key));\n }\n });\n d3.behavior = {};\n function d3_identity(d) {\n return d;\n }\n d3.rebind = function(target, source) {\n var i = 1, n = arguments.length, method;\n while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);\n return target;\n };\n function d3_rebind(target, source, method) {\n return function() {\n var value = method.apply(source, arguments);\n return value === source ? target : value;\n };\n }\n function d3_vendorSymbol(object, name2) {\n if (name2 in object) return name2;\n name2 = name2.charAt(0).toUpperCase() + name2.slice(1);\n for (var i = 0, n = d3_vendorPrefixes.length; i < n; ++i) {\n var prefixName = d3_vendorPrefixes[i] + name2;\n if (prefixName in object) return prefixName;\n }\n }\n var d3_vendorPrefixes = [\"webkit\", \"ms\", \"moz\", \"Moz\", \"o\", \"O\"];\n function d3_noop() {\n }\n d3.dispatch = function() {\n var dispatch = new d3_dispatch(), i = -1, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n return dispatch;\n };\n function d3_dispatch() {\n }\n d3_dispatch.prototype.on = function(type, listener) {\n var i = type.indexOf(\".\"), name2 = \"\";\n if (i >= 0) {\n name2 = type.slice(i + 1);\n type = type.slice(0, i);\n }\n if (type) return arguments.length < 2 ? this[type].on(name2) : this[type].on(name2, listener);\n if (arguments.length === 2) {\n if (listener == null) for (type in this) {\n if (this.hasOwnProperty(type)) this[type].on(name2, null);\n }\n return this;\n }\n };\n function d3_dispatch_event(dispatch) {\n var listeners = [], listenerByName = new d3_Map();\n function event() {\n var z = listeners, i = -1, n = z.length, l;\n while (++i < n) if (l = z[i].on) l.apply(this, arguments);\n return dispatch;\n }\n event.on = function(name2, listener) {\n var l = listenerByName.get(name2), i;\n if (arguments.length < 2) return l && l.on;\n if (l) {\n l.on = null;\n listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));\n listenerByName.remove(name2);\n }\n if (listener) listeners.push(listenerByName.set(name2, {\n on: listener\n }));\n return dispatch;\n };\n return event;\n }\n d3.event = null;\n function d3_eventPreventDefault() {\n d3.event.preventDefault();\n }\n function d3_eventSource() {\n var e = d3.event, s;\n while (s = e.sourceEvent) e = s;\n return e;\n }\n function d3_eventDispatch(target) {\n var dispatch = new d3_dispatch(), i = 0, n = arguments.length;\n while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);\n dispatch.of = function(thiz, argumentz) {\n return function(e1) {\n try {\n var e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n d3.requote = function(s) {\n return s.replace(d3_requote_re, \"\\\\$&\");\n };\n var d3_requote_re = /[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g;\n var d3_subclass = {}.__proto__ ? function(object, prototype) {\n object.__proto__ = prototype;\n } : function(object, prototype) {\n for (var property in prototype) object[property] = prototype[property];\n };\n function d3_selection(groups) {\n d3_subclass(groups, d3_selectionPrototype);\n return groups;\n }\n var d3_select = function(s, n) {\n return n.querySelector(s);\n }, d3_selectAll = function(s, n) {\n return n.querySelectorAll(s);\n }, d3_selectMatches = function(n, s) {\n var d3_selectMatcher = n.matches || n[d3_vendorSymbol(n, \"matchesSelector\")];\n d3_selectMatches = function(n2, s2) {\n return d3_selectMatcher.call(n2, s2);\n };\n return d3_selectMatches(n, s);\n };\n if (typeof Sizzle === \"function\") {\n d3_select = function(s, n) {\n return Sizzle(s, n)[0] || null;\n };\n d3_selectAll = Sizzle;\n d3_selectMatches = Sizzle.matchesSelector;\n }\n d3.selection = function() {\n return d3.select(d3_document.documentElement);\n };\n var d3_selectionPrototype = d3.selection.prototype = [];\n d3_selectionPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, group, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(subnode = selector.call(node, node.__data__, i, j));\n if (subnode && \"__data__\" in node) subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selector(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_select(selector, this);\n };\n }\n d3_selectionPrototype.selectAll = function(selector) {\n var subgroups = [], subgroup, node;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i, j)));\n subgroup.parentNode = node;\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_selectorAll(selector) {\n return typeof selector === \"function\" ? selector : function() {\n return d3_selectAll(selector, this);\n };\n }\n var d3_nsXhtml = \"http://www.w3.org/1999/xhtml\";\n var d3_nsPrefix = {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: d3_nsXhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n };\n d3.ns = {\n prefix: d3_nsPrefix,\n qualify: function(name2) {\n var i = name2.indexOf(\":\"), prefix = name2;\n if (i >= 0 && (prefix = name2.slice(0, i)) !== \"xmlns\") name2 = name2.slice(i + 1);\n return d3_nsPrefix.hasOwnProperty(prefix) ? {\n space: d3_nsPrefix[prefix],\n local: name2\n } : name2;\n }\n };\n d3_selectionPrototype.attr = function(name2, value) {\n if (arguments.length < 2) {\n if (typeof name2 === \"string\") {\n var node = this.node();\n name2 = d3.ns.qualify(name2);\n return name2.local ? node.getAttributeNS(name2.space, name2.local) : node.getAttribute(name2);\n }\n for (value in name2) this.each(d3_selection_attr(value, name2[value]));\n return this;\n }\n return this.each(d3_selection_attr(name2, value));\n };\n function d3_selection_attr(name2, value) {\n name2 = d3.ns.qualify(name2);\n function attrNull() {\n this.removeAttribute(name2);\n }\n function attrNullNS() {\n this.removeAttributeNS(name2.space, name2.local);\n }\n function attrConstant() {\n this.setAttribute(name2, value);\n }\n function attrConstantNS() {\n this.setAttributeNS(name2.space, name2.local, value);\n }\n function attrFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttribute(name2);\n else this.setAttribute(name2, x);\n }\n function attrFunctionNS() {\n var x = value.apply(this, arguments);\n if (x == null) this.removeAttributeNS(name2.space, name2.local);\n else this.setAttributeNS(name2.space, name2.local, x);\n }\n return value == null ? name2.local ? attrNullNS : attrNull : typeof value === \"function\" ? name2.local ? attrFunctionNS : attrFunction : name2.local ? attrConstantNS : attrConstant;\n }\n function d3_collapse(s) {\n return s.trim().replace(/\\s+/g, \" \");\n }\n d3_selectionPrototype.classed = function(name2, value) {\n if (arguments.length < 2) {\n if (typeof name2 === \"string\") {\n var node = this.node(), n = (name2 = d3_selection_classes(name2)).length, i = -1;\n if (value = node.classList) {\n while (++i < n) if (!value.contains(name2[i])) return false;\n } else {\n value = node.getAttribute(\"class\");\n while (++i < n) if (!d3_selection_classedRe(name2[i]).test(value)) return false;\n }\n return true;\n }\n for (value in name2) this.each(d3_selection_classed(value, name2[value]));\n return this;\n }\n return this.each(d3_selection_classed(name2, value));\n };\n function d3_selection_classedRe(name2) {\n return new RegExp(\"(?:^|\\\\s+)\" + d3.requote(name2) + \"(?:\\\\s+|$)\", \"g\");\n }\n function d3_selection_classes(name2) {\n return (name2 + \"\").trim().split(/^|\\s+/);\n }\n function d3_selection_classed(name2, value) {\n name2 = d3_selection_classes(name2).map(d3_selection_classedName);\n var n = name2.length;\n function classedConstant() {\n var i = -1;\n while (++i < n) name2[i](this, value);\n }\n function classedFunction() {\n var i = -1, x = value.apply(this, arguments);\n while (++i < n) name2[i](this, x);\n }\n return typeof value === \"function\" ? classedFunction : classedConstant;\n }\n function d3_selection_classedName(name2) {\n var re = d3_selection_classedRe(name2);\n return function(node, value) {\n if (c = node.classList) return value ? c.add(name2) : c.remove(name2);\n var c = node.getAttribute(\"class\") || \"\";\n if (value) {\n re.lastIndex = 0;\n if (!re.test(c)) node.setAttribute(\"class\", d3_collapse(c + \" \" + name2));\n } else {\n node.setAttribute(\"class\", d3_collapse(c.replace(re, \" \")));\n }\n };\n }\n d3_selectionPrototype.style = function(name2, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name2 !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name2) this.each(d3_selection_style(priority, name2[priority], value));\n return this;\n }\n if (n < 2) {\n var node = this.node();\n return d3_window(node).getComputedStyle(node, null).getPropertyValue(name2);\n }\n priority = \"\";\n }\n return this.each(d3_selection_style(name2, value, priority));\n };\n function d3_selection_style(name2, value, priority) {\n function styleNull() {\n this.style.removeProperty(name2);\n }\n function styleConstant() {\n this.style.setProperty(name2, value, priority);\n }\n function styleFunction() {\n var x = value.apply(this, arguments);\n if (x == null) this.style.removeProperty(name2);\n else this.style.setProperty(name2, x, priority);\n }\n return value == null ? styleNull : typeof value === \"function\" ? styleFunction : styleConstant;\n }\n d3_selectionPrototype.property = function(name2, value) {\n if (arguments.length < 2) {\n if (typeof name2 === \"string\") return this.node()[name2];\n for (value in name2) this.each(d3_selection_property(value, name2[value]));\n return this;\n }\n return this.each(d3_selection_property(name2, value));\n };\n function d3_selection_property(name2, value) {\n function propertyNull() {\n delete this[name2];\n }\n function propertyConstant() {\n this[name2] = value;\n }\n function propertyFunction() {\n var x = value.apply(this, arguments);\n if (x == null) delete this[name2];\n else this[name2] = x;\n }\n return value == null ? propertyNull : typeof value === \"function\" ? propertyFunction : propertyConstant;\n }\n d3_selectionPrototype.text = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n } : value == null ? function() {\n this.textContent = \"\";\n } : function() {\n this.textContent = value;\n }) : this.node().textContent;\n };\n d3_selectionPrototype.html = function(value) {\n return arguments.length ? this.each(typeof value === \"function\" ? function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n } : value == null ? function() {\n this.innerHTML = \"\";\n } : function() {\n this.innerHTML = value;\n }) : this.node().innerHTML;\n };\n d3_selectionPrototype.append = function(name2) {\n name2 = d3_selection_creator(name2);\n return this.select(function() {\n return this.appendChild(name2.apply(this, arguments));\n });\n };\n function d3_selection_creator(name2) {\n function create() {\n var document2 = this.ownerDocument, namespace = this.namespaceURI;\n return namespace === d3_nsXhtml && document2.documentElement.namespaceURI === d3_nsXhtml ? document2.createElement(name2) : document2.createElementNS(namespace, name2);\n }\n function createNS() {\n return this.ownerDocument.createElementNS(name2.space, name2.local);\n }\n return typeof name2 === \"function\" ? name2 : (name2 = d3.ns.qualify(name2)).local ? createNS : create;\n }\n d3_selectionPrototype.insert = function(name2, before) {\n name2 = d3_selection_creator(name2);\n before = d3_selection_selector(before);\n return this.select(function() {\n return this.insertBefore(name2.apply(this, arguments), before.apply(this, arguments) || null);\n });\n };\n d3_selectionPrototype.remove = function() {\n return this.each(d3_selectionRemove);\n };\n function d3_selectionRemove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n }\n d3_selectionPrototype.data = function(value, key) {\n var i = -1, n = this.length, group, node;\n if (!arguments.length) {\n value = new Array(n = (group = this[0]).length);\n while (++i < n) {\n if (node = group[i]) {\n value[i] = node.__data__;\n }\n }\n return value;\n }\n function bind(group2, groupData) {\n var i2, n2 = group2.length, m = groupData.length, n0 = Math.min(n2, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n2), node2, nodeData;\n if (key) {\n var nodeByKeyValue = new d3_Map(), keyValues = new Array(n2), keyValue;\n for (i2 = -1; ++i2 < n2; ) {\n if (node2 = group2[i2]) {\n if (nodeByKeyValue.has(keyValue = key.call(node2, node2.__data__, i2))) {\n exitNodes[i2] = node2;\n } else {\n nodeByKeyValue.set(keyValue, node2);\n }\n keyValues[i2] = keyValue;\n }\n }\n for (i2 = -1; ++i2 < m; ) {\n if (!(node2 = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i2], i2)))) {\n enterNodes[i2] = d3_selection_dataNode(nodeData);\n } else if (node2 !== true) {\n updateNodes[i2] = node2;\n node2.__data__ = nodeData;\n }\n nodeByKeyValue.set(keyValue, true);\n }\n for (i2 = -1; ++i2 < n2; ) {\n if (i2 in keyValues && nodeByKeyValue.get(keyValues[i2]) !== true) {\n exitNodes[i2] = group2[i2];\n }\n }\n } else {\n for (i2 = -1; ++i2 < n0; ) {\n node2 = group2[i2];\n nodeData = groupData[i2];\n if (node2) {\n node2.__data__ = nodeData;\n updateNodes[i2] = node2;\n } else {\n enterNodes[i2] = d3_selection_dataNode(nodeData);\n }\n }\n for (; i2 < m; ++i2) {\n enterNodes[i2] = d3_selection_dataNode(groupData[i2]);\n }\n for (; i2 < n2; ++i2) {\n exitNodes[i2] = group2[i2];\n }\n }\n enterNodes.update = updateNodes;\n enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group2.parentNode;\n enter.push(enterNodes);\n update.push(updateNodes);\n exit.push(exitNodes);\n }\n var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);\n if (typeof value === \"function\") {\n while (++i < n) {\n bind(group = this[i], value.call(group, group.parentNode.__data__, i));\n }\n } else {\n while (++i < n) {\n bind(group = this[i], value);\n }\n }\n update.enter = function() {\n return enter;\n };\n update.exit = function() {\n return exit;\n };\n return update;\n };\n function d3_selection_dataNode(data) {\n return {\n __data__: data\n };\n }\n d3_selectionPrototype.datum = function(value) {\n return arguments.length ? this.property(\"__data__\", value) : this.property(\"__data__\");\n };\n d3_selectionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n subgroup.parentNode = (group = this[j]).parentNode;\n for (var i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_selection(subgroups);\n };\n function d3_selection_filter(selector) {\n return function() {\n return d3_selectMatches(this, selector);\n };\n }\n d3_selectionPrototype.order = function() {\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {\n if (node = group[i]) {\n if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n return this;\n };\n d3_selectionPrototype.sort = function(comparator) {\n comparator = d3_selection_sortComparator.apply(this, arguments);\n for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);\n return this.order();\n };\n function d3_selection_sortComparator(comparator) {\n if (!arguments.length) comparator = d3_ascending;\n return function(a, b) {\n return a && b ? comparator(a.__data__, b.__data__) : !a - !b;\n };\n }\n d3_selectionPrototype.each = function(callback) {\n return d3_selection_each(this, function(node, i, j) {\n callback.call(node, node.__data__, i, j);\n });\n };\n function d3_selection_each(groups, callback) {\n for (var j = 0, m = groups.length; j < m; j++) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {\n if (node = group[i]) callback(node, i, j);\n }\n }\n return groups;\n }\n d3_selectionPrototype.call = function(callback) {\n var args = d3_array(arguments);\n callback.apply(args[0] = this, args);\n return this;\n };\n d3_selectionPrototype.empty = function() {\n return !this.node();\n };\n d3_selectionPrototype.node = function() {\n for (var j = 0, m = this.length; j < m; j++) {\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n var node = group[i];\n if (node) return node;\n }\n }\n return null;\n };\n d3_selectionPrototype.size = function() {\n var n = 0;\n d3_selection_each(this, function() {\n ++n;\n });\n return n;\n };\n function d3_selection_enter(selection) {\n d3_subclass(selection, d3_selection_enterPrototype);\n return selection;\n }\n var d3_selection_enterPrototype = [];\n d3.selection.enter = d3_selection_enter;\n d3.selection.enter.prototype = d3_selection_enterPrototype;\n d3_selection_enterPrototype.append = d3_selectionPrototype.append;\n d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;\n d3_selection_enterPrototype.node = d3_selectionPrototype.node;\n d3_selection_enterPrototype.call = d3_selectionPrototype.call;\n d3_selection_enterPrototype.size = d3_selectionPrototype.size;\n d3_selection_enterPrototype.select = function(selector) {\n var subgroups = [], subgroup, subnode, upgroup, group, node;\n for (var j = -1, m = this.length; ++j < m; ) {\n upgroup = (group = this[j]).update;\n subgroups.push(subgroup = []);\n subgroup.parentNode = group.parentNode;\n for (var i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i, j));\n subnode.__data__ = node.__data__;\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_selection(subgroups);\n };\n d3_selection_enterPrototype.insert = function(name2, before) {\n if (arguments.length < 2) before = d3_selection_enterInsertBefore(this);\n return d3_selectionPrototype.insert.call(this, name2, before);\n };\n function d3_selection_enterInsertBefore(enter) {\n var i0, j0;\n return function(d, i, j) {\n var group = enter[j].update, n = group.length, node;\n if (j != j0) j0 = j, i0 = 0;\n if (i >= i0) i0 = i + 1;\n while (!(node = group[i0]) && ++i0 < n) ;\n return node;\n };\n }\n d3.select = function(node) {\n var group;\n if (typeof node === \"string\") {\n group = [d3_select(node, d3_document)];\n group.parentNode = d3_document.documentElement;\n } else {\n group = [node];\n group.parentNode = d3_documentElement(node);\n }\n return d3_selection([group]);\n };\n d3.selectAll = function(nodes) {\n var group;\n if (typeof nodes === \"string\") {\n group = d3_array(d3_selectAll(nodes, d3_document));\n group.parentNode = d3_document.documentElement;\n } else {\n group = d3_array(nodes);\n group.parentNode = null;\n }\n return d3_selection([group]);\n };\n d3_selectionPrototype.on = function(type, listener, capture) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof type !== \"string\") {\n if (n < 2) listener = false;\n for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));\n return this;\n }\n if (n < 2) return (n = this.node()[\"__on\" + type]) && n._;\n capture = false;\n }\n return this.each(d3_selection_on(type, listener, capture));\n };\n function d3_selection_on(type, listener, capture) {\n var name2 = \"__on\" + type, i = type.indexOf(\".\"), wrap = d3_selection_onListener;\n if (i > 0) type = type.slice(0, i);\n var filter = d3_selection_onFilters.get(type);\n if (filter) type = filter, wrap = d3_selection_onFilter;\n function onRemove() {\n var l = this[name2];\n if (l) {\n this.removeEventListener(type, l, l.$);\n delete this[name2];\n }\n }\n function onAdd() {\n var l = wrap(listener, d3_array(arguments));\n onRemove.call(this);\n this.addEventListener(type, this[name2] = l, l.$ = capture);\n l._ = listener;\n }\n function removeAll() {\n var re = new RegExp(\"^__on([^.]+)\" + d3.requote(type) + \"$\"), match;\n for (var name3 in this) {\n if (match = name3.match(re)) {\n var l = this[name3];\n this.removeEventListener(match[1], l, l.$);\n delete this[name3];\n }\n }\n }\n return i ? listener ? onAdd : onRemove : listener ? d3_noop : removeAll;\n }\n var d3_selection_onFilters = d3.map({\n mouseenter: \"mouseover\",\n mouseleave: \"mouseout\"\n });\n if (d3_document) {\n d3_selection_onFilters.forEach(function(k) {\n if (\"on\" + k in d3_document) d3_selection_onFilters.remove(k);\n });\n }\n function d3_selection_onListener(listener, argumentz) {\n return function(e) {\n var o = d3.event;\n d3.event = e;\n argumentz[0] = this.__data__;\n try {\n listener.apply(this, argumentz);\n } finally {\n d3.event = o;\n }\n };\n }\n function d3_selection_onFilter(listener, argumentz) {\n var l = d3_selection_onListener(listener, argumentz);\n return function(e) {\n var target = this, related = e.relatedTarget;\n if (!related || related !== target && !(related.compareDocumentPosition(target) & 8)) {\n l.call(target, e);\n }\n };\n }\n var d3_event_dragSelect, d3_event_dragId = 0;\n function d3_event_dragSuppress(node) {\n var name2 = \".dragsuppress-\" + ++d3_event_dragId, click = \"click\" + name2, w = d3.select(d3_window(node)).on(\"touchmove\" + name2, d3_eventPreventDefault).on(\"dragstart\" + name2, d3_eventPreventDefault).on(\"selectstart\" + name2, d3_eventPreventDefault);\n if (d3_event_dragSelect == null) {\n d3_event_dragSelect = \"onselectstart\" in node ? false : d3_vendorSymbol(node.style, \"userSelect\");\n }\n if (d3_event_dragSelect) {\n var style = d3_documentElement(node).style, select = style[d3_event_dragSelect];\n style[d3_event_dragSelect] = \"none\";\n }\n return function(suppressClick) {\n w.on(name2, null);\n if (d3_event_dragSelect) style[d3_event_dragSelect] = select;\n if (suppressClick) {\n var off = function() {\n w.on(click, null);\n };\n w.on(click, function() {\n d3_eventPreventDefault();\n off();\n }, true);\n setTimeout(off, 0);\n }\n };\n }\n d3.mouse = function(container) {\n return d3_mousePoint(container, d3_eventSource());\n };\n var d3_mouse_bug44083 = this.navigator && /WebKit/.test(this.navigator.userAgent) ? -1 : 0;\n function d3_mousePoint(container, e) {\n if (e.changedTouches) e = e.changedTouches[0];\n var svg = container.ownerSVGElement || container;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n if (d3_mouse_bug44083 < 0) {\n var window2 = d3_window(container);\n if (window2.scrollX || window2.scrollY) {\n svg = d3.select(\"body\").append(\"svg\").style({\n position: \"absolute\",\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n border: \"none\"\n }, \"important\");\n var ctm = svg[0][0].getScreenCTM();\n d3_mouse_bug44083 = !(ctm.f || ctm.e);\n svg.remove();\n }\n }\n if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY;\n else point.x = e.clientX, point.y = e.clientY;\n point = point.matrixTransform(container.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n var rect = container.getBoundingClientRect();\n return [e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop];\n }\n d3.touch = function(container, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = d3_eventSource().changedTouches;\n if (touches) for (var i = 0, n = touches.length, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return d3_mousePoint(container, touch);\n }\n }\n };\n d3.behavior.drag = function() {\n var event = d3_eventDispatch(drag, \"drag\", \"dragstart\", \"dragend\"), origin = null, mousedown = dragstart(d3_noop, d3.mouse, d3_window, \"mousemove\", \"mouseup\"), touchstart = dragstart(d3_behavior_dragTouchId, d3.touch, d3_identity, \"touchmove\", \"touchend\");\n function drag() {\n this.on(\"mousedown.drag\", mousedown).on(\"touchstart.drag\", touchstart);\n }\n function dragstart(id, position, subject, move, end) {\n return function() {\n var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = \".drag\" + (dragId == null ? \"\" : \"-\" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId);\n if (origin) {\n dragOffset = origin.apply(that, arguments);\n dragOffset = [dragOffset.x - position0[0], dragOffset.y - position0[1]];\n } else {\n dragOffset = [0, 0];\n }\n dispatch({\n type: \"dragstart\"\n });\n function moved() {\n var position1 = position(parent, dragId), dx, dy;\n if (!position1) return;\n dx = position1[0] - position0[0];\n dy = position1[1] - position0[1];\n dragged |= dx | dy;\n position0 = position1;\n dispatch({\n type: \"drag\",\n x: position1[0] + dragOffset[0],\n y: position1[1] + dragOffset[1],\n dx,\n dy\n });\n }\n function ended() {\n if (!position(parent, dragId)) return;\n dragSubject.on(move + dragName, null).on(end + dragName, null);\n dragRestore(dragged);\n dispatch({\n type: \"dragend\"\n });\n }\n };\n }\n drag.origin = function(x) {\n if (!arguments.length) return origin;\n origin = x;\n return drag;\n };\n return d3.rebind(drag, event, \"on\");\n };\n function d3_behavior_dragTouchId() {\n return d3.event.changedTouches[0].identifier;\n }\n d3.touches = function(container, touches) {\n if (arguments.length < 2) touches = d3_eventSource().touches;\n return touches ? d3_array(touches).map(function(touch) {\n var point = d3_mousePoint(container, touch);\n point.identifier = touch.identifier;\n return point;\n }) : [];\n };\n var \\u03B5 = 1e-6, \\u03B52 = \\u03B5 * \\u03B5, \\u03C0 = Math.PI, \\u03C4 = 2 * \\u03C0, \\u03C4\\u03B5 = \\u03C4 - \\u03B5, half\\u03C0 = \\u03C0 / 2, d3_radians = \\u03C0 / 180, d3_degrees = 180 / \\u03C0;\n function d3_sgn(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n }\n function d3_cross2d(a, b, c) {\n return (b[0] - a[0]) * (c[1] - a[1]) - (b[1] - a[1]) * (c[0] - a[0]);\n }\n function d3_acos(x) {\n return x > 1 ? 0 : x < -1 ? \\u03C0 : Math.acos(x);\n }\n function d3_asin(x) {\n return x > 1 ? half\\u03C0 : x < -1 ? -half\\u03C0 : Math.asin(x);\n }\n function d3_sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function d3_cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function d3_tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n function d3_haversin(x) {\n return (x = Math.sin(x / 2)) * x;\n }\n var \\u03C1 = Math.SQRT2, \\u03C12 = 2, \\u03C14 = 4;\n d3.interpolateZoom = function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < \\u03B52) {\n S = Math.log(w1 / w0) / \\u03C1;\n i = function(t) {\n return [ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(\\u03C1 * t * S)];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + \\u03C14 * d2) / (2 * w0 * \\u03C12 * d1), b1 = (w1 * w1 - w0 * w0 - \\u03C14 * d2) / (2 * w1 * \\u03C12 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / \\u03C1;\n i = function(t) {\n var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (\\u03C12 * d1) * (coshr0 * d3_tanh(\\u03C1 * s + r0) - d3_sinh(r0));\n return [ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(\\u03C1 * s + r0)];\n };\n }\n i.duration = S * 1e3;\n return i;\n };\n d3.behavior.zoom = function() {\n var view = {\n x: 0,\n y: 0,\n k: 1\n }, translate0, center0, center, size = [960, 500], scaleExtent = d3_behavior_zoomInfinity, duration = 250, zooming = 0, mousedown = \"mousedown.zoom\", mousemove = \"mousemove.zoom\", mouseup = \"mouseup.zoom\", mousewheelTimer, touchstart = \"touchstart.zoom\", touchtime, event = d3_eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\"), x0, x1, y0, y1;\n if (!d3_behavior_zoomWheel) {\n d3_behavior_zoomWheel = \"onwheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);\n }, \"wheel\") : \"onmousewheel\" in d3_document ? (d3_behavior_zoomDelta = function() {\n return d3.event.wheelDelta;\n }, \"mousewheel\") : (d3_behavior_zoomDelta = function() {\n return -d3.event.detail;\n }, \"MozMousePixelScroll\");\n }\n function zoom(g) {\n g.on(mousedown, mousedowned).on(d3_behavior_zoomWheel + \".zoom\", mousewheeled).on(\"dblclick.zoom\", dblclicked).on(touchstart, touchstarted);\n }\n zoom.event = function(g) {\n g.each(function() {\n var dispatch = event.of(this, arguments), view1 = view;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.zoom\", function() {\n view = this.__chart__ || {\n x: 0,\n y: 0,\n k: 1\n };\n zoomstarted(dispatch);\n }).tween(\"zoom:zoom\", function() {\n var dx = size[0], dy = size[1], cx = center0 ? center0[0] : dx / 2, cy = center0 ? center0[1] : dy / 2, i = d3.interpolateZoom([(cx - view.x) / view.k, (cy - view.y) / view.k, dx / view.k], [(cx - view1.x) / view1.k, (cy - view1.y) / view1.k, dx / view1.k]);\n return function(t) {\n var l = i(t), k = dx / l[2];\n this.__chart__ = view = {\n x: cx - l[0] * k,\n y: cy - l[1] * k,\n k\n };\n zoomed(dispatch);\n };\n }).each(\"interrupt.zoom\", function() {\n zoomended(dispatch);\n }).each(\"end.zoom\", function() {\n zoomended(dispatch);\n });\n } else {\n this.__chart__ = view;\n zoomstarted(dispatch);\n zoomed(dispatch);\n zoomended(dispatch);\n }\n });\n };\n zoom.translate = function(_) {\n if (!arguments.length) return [view.x, view.y];\n view = {\n x: +_[0],\n y: +_[1],\n k: view.k\n };\n rescale();\n return zoom;\n };\n zoom.scale = function(_) {\n if (!arguments.length) return view.k;\n view = {\n x: view.x,\n y: view.y,\n k: null\n };\n scaleTo(+_);\n rescale();\n return zoom;\n };\n zoom.scaleExtent = function(_) {\n if (!arguments.length) return scaleExtent;\n scaleExtent = _ == null ? d3_behavior_zoomInfinity : [+_[0], +_[1]];\n return zoom;\n };\n zoom.center = function(_) {\n if (!arguments.length) return center;\n center = _ && [+_[0], +_[1]];\n return zoom;\n };\n zoom.size = function(_) {\n if (!arguments.length) return size;\n size = _ && [+_[0], +_[1]];\n return zoom;\n };\n zoom.duration = function(_) {\n if (!arguments.length) return duration;\n duration = +_;\n return zoom;\n };\n zoom.x = function(z) {\n if (!arguments.length) return x1;\n x1 = z;\n x0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n zoom.y = function(z) {\n if (!arguments.length) return y1;\n y1 = z;\n y0 = z.copy();\n view = {\n x: 0,\n y: 0,\n k: 1\n };\n return zoom;\n };\n function location2(p) {\n return [(p[0] - view.x) / view.k, (p[1] - view.y) / view.k];\n }\n function point(l) {\n return [l[0] * view.k + view.x, l[1] * view.k + view.y];\n }\n function scaleTo(s) {\n view.k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));\n }\n function translateTo(p, l) {\n l = point(l);\n view.x += p[0] - l[0];\n view.y += p[1] - l[1];\n }\n function zoomTo(that, p, l, k) {\n that.__chart__ = {\n x: view.x,\n y: view.y,\n k: view.k\n };\n scaleTo(Math.pow(2, k));\n translateTo(center0 = p, l);\n that = d3.select(that);\n if (duration > 0) that = that.transition().duration(duration);\n that.call(zoom.event);\n }\n function rescale() {\n if (x1) x1.domain(x0.range().map(function(x) {\n return (x - view.x) / view.k;\n }).map(x0.invert));\n if (y1) y1.domain(y0.range().map(function(y) {\n return (y - view.y) / view.k;\n }).map(y0.invert));\n }\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({\n type: \"zoomstart\"\n });\n }\n function zoomed(dispatch) {\n rescale();\n dispatch({\n type: \"zoom\",\n scale: view.k,\n translate: [view.x, view.y]\n });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({\n type: \"zoomend\"\n }), center0 = null;\n }\n function mousedowned() {\n var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location2(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that);\n d3_selection_interrupt.call(that);\n zoomstarted(dispatch);\n function moved() {\n dragged = 1;\n translateTo(d3.mouse(that), location0);\n zoomed(dispatch);\n }\n function ended() {\n subject.on(mousemove, null).on(mouseup, null);\n dragRestore(dragged);\n zoomended(dispatch);\n }\n }\n function touchstarted() {\n var that = this, dispatch = event.of(that, arguments), locations0 = {}, distance0 = 0, scale0, zoomName = \".zoom-\" + d3.event.changedTouches[0].identifier, touchmove = \"touchmove\" + zoomName, touchend = \"touchend\" + zoomName, targets = [], subject = d3.select(that), dragRestore = d3_event_dragSuppress(that);\n started();\n zoomstarted(dispatch);\n subject.on(mousedown, null).on(touchstart, started);\n function relocate() {\n var touches = d3.touches(that);\n scale0 = view.k;\n touches.forEach(function(t) {\n if (t.identifier in locations0) locations0[t.identifier] = location2(t);\n });\n return touches;\n }\n function started() {\n var target = d3.event.target;\n d3.select(target).on(touchmove, moved).on(touchend, ended);\n targets.push(target);\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n locations0[changed[i].identifier] = null;\n }\n var touches = relocate(), now = Date.now();\n if (touches.length === 1) {\n if (now - touchtime < 500) {\n var p = touches[0];\n zoomTo(that, p, locations0[p.identifier], Math.floor(Math.log(view.k) / Math.LN2) + 1);\n d3_eventPreventDefault();\n }\n touchtime = now;\n } else if (touches.length > 1) {\n var p = touches[0], q = touches[1], dx = p[0] - q[0], dy = p[1] - q[1];\n distance0 = dx * dx + dy * dy;\n }\n }\n function moved() {\n var touches = d3.touches(that), p0, l0, p1, l1;\n d3_selection_interrupt.call(that);\n for (var i = 0, n = touches.length; i < n; ++i, l1 = null) {\n p1 = touches[i];\n if (l1 = locations0[p1.identifier]) {\n if (l0) break;\n p0 = p1, l0 = l1;\n }\n }\n if (l1) {\n var distance1 = (distance1 = p1[0] - p0[0]) * distance1 + (distance1 = p1[1] - p0[1]) * distance1, scale1 = distance0 && Math.sqrt(distance1 / distance0);\n p0 = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l0 = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n scaleTo(scale1 * scale0);\n }\n touchtime = null;\n translateTo(p0, l0);\n zoomed(dispatch);\n }\n function ended() {\n if (d3.event.touches.length) {\n var changed = d3.event.changedTouches;\n for (var i = 0, n = changed.length; i < n; ++i) {\n delete locations0[changed[i].identifier];\n }\n for (var identifier in locations0) {\n return void relocate();\n }\n }\n d3.selectAll(targets).on(zoomName, null);\n subject.on(mousedown, mousedowned).on(touchstart, touchstarted);\n dragRestore();\n zoomended(dispatch);\n }\n }\n function mousewheeled() {\n var dispatch = event.of(this, arguments);\n if (mousewheelTimer) clearTimeout(mousewheelTimer);\n else d3_selection_interrupt.call(this), translate0 = location2(center0 = center || d3.mouse(this)), zoomstarted(dispatch);\n mousewheelTimer = setTimeout(function() {\n mousewheelTimer = null;\n zoomended(dispatch);\n }, 50);\n d3_eventPreventDefault();\n scaleTo(Math.pow(2, d3_behavior_zoomDelta() * 2e-3) * view.k);\n translateTo(center0, translate0);\n zoomed(dispatch);\n }\n function dblclicked() {\n var p = d3.mouse(this), k = Math.log(view.k) / Math.LN2;\n zoomTo(this, p, location2(p), d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1);\n }\n return d3.rebind(zoom, event, \"on\");\n };\n var d3_behavior_zoomInfinity = [0, Infinity], d3_behavior_zoomDelta, d3_behavior_zoomWheel;\n d3.color = d3_color;\n function d3_color() {\n }\n d3_color.prototype.toString = function() {\n return this.rgb() + \"\";\n };\n d3.hsl = d3_hsl;\n function d3_hsl(h, s, l) {\n return this instanceof d3_hsl ? void (this.h = +h, this.s = +s, this.l = +l) : arguments.length < 2 ? h instanceof d3_hsl ? new d3_hsl(h.h, h.s, h.l) : d3_rgb_parse(\"\" + h, d3_rgb_hsl, d3_hsl) : new d3_hsl(h, s, l);\n }\n var d3_hslPrototype = d3_hsl.prototype = new d3_color();\n d3_hslPrototype.brighter = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, this.l / k);\n };\n d3_hslPrototype.darker = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n return new d3_hsl(this.h, this.s, k * this.l);\n };\n d3_hslPrototype.rgb = function() {\n return d3_hsl_rgb(this.h, this.s, this.l);\n };\n function d3_hsl_rgb(h, s, l) {\n var m1, m2;\n h = isNaN(h) ? 0 : (h %= 360) < 0 ? h + 360 : h;\n s = isNaN(s) ? 0 : s < 0 ? 0 : s > 1 ? 1 : s;\n l = l < 0 ? 0 : l > 1 ? 1 : l;\n m2 = l <= 0.5 ? l * (1 + s) : l + s - l * s;\n m1 = 2 * l - m2;\n function v(h2) {\n if (h2 > 360) h2 -= 360;\n else if (h2 < 0) h2 += 360;\n if (h2 < 60) return m1 + (m2 - m1) * h2 / 60;\n if (h2 < 180) return m2;\n if (h2 < 240) return m1 + (m2 - m1) * (240 - h2) / 60;\n return m1;\n }\n function vv(h2) {\n return Math.round(v(h2) * 255);\n }\n return new d3_rgb(vv(h + 120), vv(h), vv(h - 120));\n }\n d3.hcl = d3_hcl;\n function d3_hcl(h, c, l) {\n return this instanceof d3_hcl ? void (this.h = +h, this.c = +c, this.l = +l) : arguments.length < 2 ? h instanceof d3_hcl ? new d3_hcl(h.h, h.c, h.l) : h instanceof d3_lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : new d3_hcl(h, c, l);\n }\n var d3_hclPrototype = d3_hcl.prototype = new d3_color();\n d3_hclPrototype.brighter = function(k) {\n return new d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.darker = function(k) {\n return new d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));\n };\n d3_hclPrototype.rgb = function() {\n return d3_hcl_lab(this.h, this.c, this.l).rgb();\n };\n function d3_hcl_lab(h, c, l) {\n if (isNaN(h)) h = 0;\n if (isNaN(c)) c = 0;\n return new d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);\n }\n d3.lab = d3_lab;\n function d3_lab(l, a, b) {\n return this instanceof d3_lab ? void (this.l = +l, this.a = +a, this.b = +b) : arguments.length < 2 ? l instanceof d3_lab ? new d3_lab(l.l, l.a, l.b) : l instanceof d3_hcl ? d3_hcl_lab(l.h, l.c, l.l) : d3_rgb_lab((l = d3_rgb(l)).r, l.g, l.b) : new d3_lab(l, a, b);\n }\n var d3_lab_K = 18;\n var d3_lab_X = 0.95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;\n var d3_labPrototype = d3_lab.prototype = new d3_color();\n d3_labPrototype.brighter = function(k) {\n return new d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.darker = function(k) {\n return new d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);\n };\n d3_labPrototype.rgb = function() {\n return d3_lab_rgb(this.l, this.a, this.b);\n };\n function d3_lab_rgb(l, a, b) {\n var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;\n x = d3_lab_xyz(x) * d3_lab_X;\n y = d3_lab_xyz(y) * d3_lab_Y;\n z = d3_lab_xyz(z) * d3_lab_Z;\n return new d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), d3_xyz_rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z), d3_xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z));\n }\n function d3_lab_hcl(l, a, b) {\n return l > 0 ? new d3_hcl(Math.atan2(b, a) * d3_degrees, Math.sqrt(a * a + b * b), l) : new d3_hcl(NaN, NaN, l);\n }\n function d3_lab_xyz(x) {\n return x > 0.206893034 ? x * x * x : (x - 4 / 29) / 7.787037;\n }\n function d3_xyz_lab(x) {\n return x > 8856e-6 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;\n }\n function d3_xyz_rgb(r) {\n return Math.round(255 * (r <= 304e-5 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - 0.055));\n }\n d3.rgb = d3_rgb;\n function d3_rgb(r, g, b) {\n return this instanceof d3_rgb ? void (this.r = ~~r, this.g = ~~g, this.b = ~~b) : arguments.length < 2 ? r instanceof d3_rgb ? new d3_rgb(r.r, r.g, r.b) : d3_rgb_parse(\"\" + r, d3_rgb, d3_hsl_rgb) : new d3_rgb(r, g, b);\n }\n function d3_rgbNumber(value) {\n return new d3_rgb(value >> 16, value >> 8 & 255, value & 255);\n }\n function d3_rgbString(value) {\n return d3_rgbNumber(value) + \"\";\n }\n var d3_rgbPrototype = d3_rgb.prototype = new d3_color();\n d3_rgbPrototype.brighter = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n var r = this.r, g = this.g, b = this.b, i = 30;\n if (!r && !g && !b) return new d3_rgb(i, i, i);\n if (r && r < i) r = i;\n if (g && g < i) g = i;\n if (b && b < i) b = i;\n return new d3_rgb(Math.min(255, r / k), Math.min(255, g / k), Math.min(255, b / k));\n };\n d3_rgbPrototype.darker = function(k) {\n k = Math.pow(0.7, arguments.length ? k : 1);\n return new d3_rgb(k * this.r, k * this.g, k * this.b);\n };\n d3_rgbPrototype.hsl = function() {\n return d3_rgb_hsl(this.r, this.g, this.b);\n };\n d3_rgbPrototype.toString = function() {\n return \"#\" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);\n };\n function d3_rgb_hex(v) {\n return v < 16 ? \"0\" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);\n }\n function d3_rgb_parse(format, rgb2, hsl3) {\n var r = 0, g = 0, b = 0, m1, m2, color2;\n m1 = /([a-z]+)\\((.*)\\)/.exec(format = format.toLowerCase());\n if (m1) {\n m2 = m1[2].split(\",\");\n switch (m1[1]) {\n case \"hsl\": {\n return hsl3(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);\n }\n case \"rgb\": {\n return rgb2(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));\n }\n }\n }\n if (color2 = d3_rgb_names.get(format)) {\n return rgb2(color2.r, color2.g, color2.b);\n }\n if (format != null && format.charAt(0) === \"#\" && !isNaN(color2 = parseInt(format.slice(1), 16))) {\n if (format.length === 4) {\n r = (color2 & 3840) >> 4;\n r = r >> 4 | r;\n g = color2 & 240;\n g = g >> 4 | g;\n b = color2 & 15;\n b = b << 4 | b;\n } else if (format.length === 7) {\n r = (color2 & 16711680) >> 16;\n g = (color2 & 65280) >> 8;\n b = color2 & 255;\n }\n }\n return rgb2(r, g, b);\n }\n function d3_rgb_hsl(r, g, b) {\n var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;\n if (d) {\n s = l < 0.5 ? d / (max + min) : d / (2 - max - min);\n if (r == max) h = (g - b) / d + (g < b ? 6 : 0);\n else if (g == max) h = (b - r) / d + 2;\n else h = (r - g) / d + 4;\n h *= 60;\n } else {\n h = NaN;\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new d3_hsl(h, s, l);\n }\n function d3_rgb_lab(r, g, b) {\n r = d3_rgb_xyz(r);\n g = d3_rgb_xyz(g);\n b = d3_rgb_xyz(b);\n var x = d3_xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / d3_lab_X), y = d3_xyz_lab((0.2126729 * r + 0.7151522 * g + 0.072175 * b) / d3_lab_Y), z = d3_xyz_lab((0.0193339 * r + 0.119192 * g + 0.9503041 * b) / d3_lab_Z);\n return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));\n }\n function d3_rgb_xyz(r) {\n return (r /= 255) <= 0.04045 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4);\n }\n function d3_rgb_parseNumber(c) {\n var f = parseFloat(c);\n return c.charAt(c.length - 1) === \"%\" ? Math.round(f * 2.55) : f;\n }\n var d3_rgb_names = d3.map({\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n });\n d3_rgb_names.forEach(function(key, value) {\n d3_rgb_names.set(key, d3_rgbNumber(value));\n });\n function d3_functor(v) {\n return typeof v === \"function\" ? v : function() {\n return v;\n };\n }\n d3.functor = d3_functor;\n d3.xhr = d3_xhrType(d3_identity);\n function d3_xhrType(response) {\n return function(url, mimeType, callback) {\n if (arguments.length === 2 && typeof mimeType === \"function\") callback = mimeType, mimeType = null;\n return d3_xhr(url, mimeType, response, callback);\n };\n }\n function d3_xhr(url, mimeType, response, callback) {\n var xhr = {}, dispatch = d3.dispatch(\"beforesend\", \"progress\", \"load\", \"error\"), headers = {}, request = new XMLHttpRequest(), responseType = null;\n if (self.XDomainRequest && !(\"withCredentials\" in request) && /^(http(s)?:)?\\/\\//.test(url)) request = new XDomainRequest();\n \"onload\" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {\n request.readyState > 3 && respond();\n };\n function respond() {\n var status = request.status, result;\n if (!status && d3_xhrHasResponse(request) || status >= 200 && status < 300 || status === 304) {\n try {\n result = response.call(xhr, request);\n } catch (e) {\n dispatch.error.call(xhr, e);\n return;\n }\n dispatch.load.call(xhr, result);\n } else {\n dispatch.error.call(xhr, request);\n }\n }\n request.onprogress = function(event) {\n var o = d3.event;\n d3.event = event;\n try {\n dispatch.progress.call(xhr, request);\n } finally {\n d3.event = o;\n }\n };\n xhr.header = function(name2, value) {\n name2 = (name2 + \"\").toLowerCase();\n if (arguments.length < 2) return headers[name2];\n if (value == null) delete headers[name2];\n else headers[name2] = value + \"\";\n return xhr;\n };\n xhr.mimeType = function(value) {\n if (!arguments.length) return mimeType;\n mimeType = value == null ? null : value + \"\";\n return xhr;\n };\n xhr.responseType = function(value) {\n if (!arguments.length) return responseType;\n responseType = value;\n return xhr;\n };\n xhr.response = function(value) {\n response = value;\n return xhr;\n };\n [\"get\", \"post\"].forEach(function(method) {\n xhr[method] = function() {\n return xhr.send.apply(xhr, [method].concat(d3_array(arguments)));\n };\n });\n xhr.send = function(method, data, callback2) {\n if (arguments.length === 2 && typeof data === \"function\") callback2 = data, data = null;\n request.open(method, url, true);\n if (mimeType != null && !(\"accept\" in headers)) headers[\"accept\"] = mimeType + \",*/*\";\n if (request.setRequestHeader) for (var name2 in headers) request.setRequestHeader(name2, headers[name2]);\n if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);\n if (responseType != null) request.responseType = responseType;\n if (callback2 != null) xhr.on(\"error\", callback2).on(\"load\", function(request2) {\n callback2(null, request2);\n });\n dispatch.beforesend.call(xhr, request);\n request.send(data == null ? null : data);\n return xhr;\n };\n xhr.abort = function() {\n request.abort();\n return xhr;\n };\n d3.rebind(xhr, dispatch, \"on\");\n return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));\n }\n function d3_xhr_fixCallback(callback) {\n return callback.length === 1 ? function(error, request) {\n callback(error == null ? request : null);\n } : callback;\n }\n function d3_xhrHasResponse(request) {\n var type = request.responseType;\n return type && type !== \"text\" ? request.response : request.responseText;\n }\n d3.dsv = function(delimiter, mimeType) {\n var reFormat = new RegExp('[\"' + delimiter + \"\\n]\"), delimiterCode = delimiter.charCodeAt(0);\n function dsv(url, row, callback) {\n if (arguments.length < 3) callback = row, row = null;\n var xhr = d3_xhr(url, mimeType, row == null ? response : typedResponse(row), callback);\n xhr.row = function(_) {\n return arguments.length ? xhr.response((row = _) == null ? response : typedResponse(_)) : row;\n };\n return xhr;\n }\n function response(request) {\n return dsv.parse(request.responseText);\n }\n function typedResponse(f) {\n return function(request) {\n return dsv.parse(request.responseText, f);\n };\n }\n dsv.parse = function(text, f) {\n var o;\n return dsv.parseRows(text, function(row, i) {\n if (o) return o(row, i - 1);\n var a = function(d) {\n var obj = {};\n var len = row.length;\n for (var k = 0; k < len; ++k) {\n obj[row[k]] = d[k];\n }\n return obj;\n };\n o = f ? function(row2, i2) {\n return f(a(row2), i2);\n } : a;\n });\n };\n dsv.parseRows = function(text, f) {\n var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;\n function token() {\n if (I >= N) return EOF;\n if (eol) return eol = false, EOL;\n var j = I;\n if (text.charCodeAt(j) === 34) {\n var i = j;\n while (i++ < N) {\n if (text.charCodeAt(i) === 34) {\n if (text.charCodeAt(i + 1) !== 34) break;\n ++i;\n }\n }\n I = i + 2;\n var c = text.charCodeAt(i + 1);\n if (c === 13) {\n eol = true;\n if (text.charCodeAt(i + 2) === 10) ++I;\n } else if (c === 10) {\n eol = true;\n }\n return text.slice(j + 1, i).replace(/\"\"/g, '\"');\n }\n while (I < N) {\n var c = text.charCodeAt(I++), k = 1;\n if (c === 10) eol = true;\n else if (c === 13) {\n eol = true;\n if (text.charCodeAt(I) === 10) ++I, ++k;\n } else if (c !== delimiterCode) continue;\n return text.slice(j, I - k);\n }\n return text.slice(j);\n }\n while ((t = token()) !== EOF) {\n var a = [];\n while (t !== EOL && t !== EOF) {\n a.push(t);\n t = token();\n }\n if (f && (a = f(a, n++)) == null) continue;\n rows.push(a);\n }\n return rows;\n };\n dsv.format = function(rows) {\n if (Array.isArray(rows[0])) return dsv.formatRows(rows);\n var fieldSet = new d3_Set(), fields = [];\n rows.forEach(function(row) {\n for (var field in row) {\n if (!fieldSet.has(field)) {\n fields.push(fieldSet.add(field));\n }\n }\n });\n return [fields.map(formatValue).join(delimiter)].concat(rows.map(function(row) {\n return fields.map(function(field) {\n return formatValue(row[field]);\n }).join(delimiter);\n })).join(\"\\n\");\n };\n dsv.formatRows = function(rows) {\n return rows.map(formatRow).join(\"\\n\");\n };\n function formatRow(row) {\n return row.map(formatValue).join(delimiter);\n }\n function formatValue(text) {\n return reFormat.test(text) ? '\"' + text.replace(/\\\"/g, '\"\"') + '\"' : text;\n }\n return dsv;\n };\n d3.csv = d3.dsv(\",\", \"text/csv\");\n d3.tsv = d3.dsv(\"\t\", \"text/tab-separated-values\");\n var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, \"requestAnimationFrame\")] || function(callback) {\n setTimeout(callback, 17);\n };\n d3.timer = function() {\n d3_timer.apply(this, arguments);\n };\n function d3_timer(callback, delay, then) {\n var n = arguments.length;\n if (n < 2) delay = 0;\n if (n < 3) then = Date.now();\n var time = then + delay, timer = {\n c: callback,\n t: time,\n n: null\n };\n if (d3_timer_queueTail) d3_timer_queueTail.n = timer;\n else d3_timer_queueHead = timer;\n d3_timer_queueTail = timer;\n if (!d3_timer_interval) {\n d3_timer_timeout = clearTimeout(d3_timer_timeout);\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n return timer;\n }\n function d3_timer_step() {\n var now = d3_timer_mark(), delay = d3_timer_sweep() - now;\n if (delay > 24) {\n if (isFinite(delay)) {\n clearTimeout(d3_timer_timeout);\n d3_timer_timeout = setTimeout(d3_timer_step, delay);\n }\n d3_timer_interval = 0;\n } else {\n d3_timer_interval = 1;\n d3_timer_frame(d3_timer_step);\n }\n }\n d3.timer.flush = function() {\n d3_timer_mark();\n d3_timer_sweep();\n };\n function d3_timer_mark() {\n var now = Date.now(), timer = d3_timer_queueHead;\n while (timer) {\n if (now >= timer.t && timer.c(now - timer.t)) timer.c = null;\n timer = timer.n;\n }\n return now;\n }\n function d3_timer_sweep() {\n var t02, t12 = d3_timer_queueHead, time = Infinity;\n while (t12) {\n if (t12.c) {\n if (t12.t < time) time = t12.t;\n t12 = (t02 = t12).n;\n } else {\n t12 = t02 ? t02.n = t12.n : d3_timer_queueHead = t12.n;\n }\n }\n d3_timer_queueTail = t02;\n return time;\n }\n d3.round = function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n };\n d3.geom = {};\n function d3_geom_pointX(d) {\n return d[0];\n }\n function d3_geom_pointY(d) {\n return d[1];\n }\n d3.geom.hull = function(vertices) {\n var x = d3_geom_pointX, y = d3_geom_pointY;\n if (arguments.length) return hull(vertices);\n function hull(data) {\n if (data.length < 3) return [];\n var fx = d3_functor(x), fy = d3_functor(y), i, n = data.length, points = [], flippedPoints = [];\n for (i = 0; i < n; i++) {\n points.push([+fx.call(this, data[i], i), +fy.call(this, data[i], i), i]);\n }\n points.sort(d3_geom_hullOrder);\n for (i = 0; i < n; i++) flippedPoints.push([points[i][0], -points[i][1]]);\n var upper = d3_geom_hullUpper(points), lower = d3_geom_hullUpper(flippedPoints);\n var skipLeft = lower[0] === upper[0], skipRight = lower[lower.length - 1] === upper[upper.length - 1], polygon = [];\n for (i = upper.length - 1; i >= 0; --i) polygon.push(data[points[upper[i]][2]]);\n for (i = +skipLeft; i < lower.length - skipRight; ++i) polygon.push(data[points[lower[i]][2]]);\n return polygon;\n }\n hull.x = function(_) {\n return arguments.length ? (x = _, hull) : x;\n };\n hull.y = function(_) {\n return arguments.length ? (y = _, hull) : y;\n };\n return hull;\n };\n function d3_geom_hullUpper(points) {\n var n = points.length, hull = [0, 1], hs = 2;\n for (var i = 2; i < n; i++) {\n while (hs > 1 && d3_cross2d(points[hull[hs - 2]], points[hull[hs - 1]], points[i]) <= 0) --hs;\n hull[hs++] = i;\n }\n return hull.slice(0, hs);\n }\n function d3_geom_hullOrder(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n d3.geom.polygon = function(coordinates) {\n d3_subclass(coordinates, d3_geom_polygonPrototype);\n return coordinates;\n };\n var d3_geom_polygonPrototype = d3.geom.polygon.prototype = [];\n d3_geom_polygonPrototype.area = function() {\n var i = -1, n = this.length, a, b = this[n - 1], area = 0;\n while (++i < n) {\n a = b;\n b = this[i];\n area += a[1] * b[0] - a[0] * b[1];\n }\n return area * 0.5;\n };\n d3_geom_polygonPrototype.centroid = function(k) {\n var i = -1, n = this.length, x = 0, y = 0, a, b = this[n - 1], c;\n if (!arguments.length) k = -1 / (6 * this.area());\n while (++i < n) {\n a = b;\n b = this[i];\n c = a[0] * b[1] - b[0] * a[1];\n x += (a[0] + b[0]) * c;\n y += (a[1] + b[1]) * c;\n }\n return [x * k, y * k];\n };\n d3_geom_polygonPrototype.clip = function(subject) {\n var input, closed = d3_geom_polygonClosed(subject), i = -1, n = this.length - d3_geom_polygonClosed(this), j, m, a = this[n - 1], b, c, d;\n while (++i < n) {\n input = subject.slice();\n subject.length = 0;\n b = this[i];\n c = input[(m = input.length - closed) - 1];\n j = -1;\n while (++j < m) {\n d = input[j];\n if (d3_geom_polygonInside(d, a, b)) {\n if (!d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n subject.push(d);\n } else if (d3_geom_polygonInside(c, a, b)) {\n subject.push(d3_geom_polygonIntersect(c, d, a, b));\n }\n c = d;\n }\n if (closed) subject.push(subject[0]);\n a = b;\n }\n return subject;\n };\n function d3_geom_polygonInside(p, a, b) {\n return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);\n }\n function d3_geom_polygonIntersect(c, d, a, b) {\n var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);\n return [x1 + ua * x21, y1 + ua * y21];\n }\n function d3_geom_polygonClosed(coordinates) {\n var a = coordinates[0], b = coordinates[coordinates.length - 1];\n return !(a[0] - b[0] || a[1] - b[1]);\n }\n var d3_geom_voronoiEdges, d3_geom_voronoiCells, d3_geom_voronoiBeaches, d3_geom_voronoiBeachPool = [], d3_geom_voronoiFirstCircle, d3_geom_voronoiCircles, d3_geom_voronoiCirclePool = [];\n function d3_geom_voronoiBeach() {\n d3_geom_voronoiRedBlackNode(this);\n this.edge = this.site = this.circle = null;\n }\n function d3_geom_voronoiCreateBeach(site) {\n var beach = d3_geom_voronoiBeachPool.pop() || new d3_geom_voronoiBeach();\n beach.site = site;\n return beach;\n }\n function d3_geom_voronoiDetachBeach(beach) {\n d3_geom_voronoiDetachCircle(beach);\n d3_geom_voronoiBeaches.remove(beach);\n d3_geom_voronoiBeachPool.push(beach);\n d3_geom_voronoiRedBlackNode(beach);\n }\n function d3_geom_voronoiRemoveBeach(beach) {\n var circle = beach.circle, x = circle.x, y = circle.cy, vertex = {\n x,\n y\n }, previous = beach.P, next = beach.N, disappearing = [beach];\n d3_geom_voronoiDetachBeach(beach);\n var lArc = previous;\n while (lArc.circle && abs(x - lArc.circle.x) < \\u03B5 && abs(y - lArc.circle.cy) < \\u03B5) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachBeach(lArc);\n lArc = previous;\n }\n disappearing.unshift(lArc);\n d3_geom_voronoiDetachCircle(lArc);\n var rArc = next;\n while (rArc.circle && abs(x - rArc.circle.x) < \\u03B5 && abs(y - rArc.circle.cy) < \\u03B5) {\n next = rArc.N;\n disappearing.push(rArc);\n d3_geom_voronoiDetachBeach(rArc);\n rArc = next;\n }\n disappearing.push(rArc);\n d3_geom_voronoiDetachCircle(rArc);\n var nArcs = disappearing.length, iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, rArc.site, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiAddBeach(site) {\n var x = site.x, directrix = site.y, lArc, rArc, dxl, dxr, node = d3_geom_voronoiBeaches._;\n while (node) {\n dxl = d3_geom_voronoiLeftBreakPoint(node, directrix) - x;\n if (dxl > \\u03B5) node = node.L;\n else {\n dxr = x - d3_geom_voronoiRightBreakPoint(node, directrix);\n if (dxr > \\u03B5) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -\\u03B5) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -\\u03B5) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n var newArc = d3_geom_voronoiCreateBeach(site);\n d3_geom_voronoiBeaches.insert(lArc, newArc);\n if (!lArc && !rArc) return;\n if (lArc === rArc) {\n d3_geom_voronoiDetachCircle(lArc);\n rArc = d3_geom_voronoiCreateBeach(lArc.site);\n d3_geom_voronoiBeaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n return;\n }\n if (!rArc) {\n newArc.edge = d3_geom_voronoiCreateEdge(lArc.site, newArc.site);\n return;\n }\n d3_geom_voronoiDetachCircle(lArc);\n d3_geom_voronoiDetachCircle(rArc);\n var lSite = lArc.site, ax = lSite.x, ay = lSite.y, bx = site.x - ax, by = site.y - ay, rSite = rArc.site, cx = rSite.x - ax, cy = rSite.y - ay, d = 2 * (bx * cy - by * cx), hb = bx * bx + by * by, hc = cx * cx + cy * cy, vertex = {\n x: (cy * hb - by * hc) / d + ax,\n y: (bx * hc - cx * hb) / d + ay\n };\n d3_geom_voronoiSetEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = d3_geom_voronoiCreateEdge(lSite, site, null, vertex);\n rArc.edge = d3_geom_voronoiCreateEdge(site, rSite, null, vertex);\n d3_geom_voronoiAttachCircle(lArc);\n d3_geom_voronoiAttachCircle(rArc);\n }\n function d3_geom_voronoiLeftBreakPoint(arc, directrix) {\n var site = arc.site, rfocx = site.x, rfocy = site.y, pby2 = rfocy - directrix;\n if (!pby2) return rfocx;\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n site = lArc.site;\n var lfocx = site.x, lfocy = site.y, plby2 = lfocy - directrix;\n if (!plby2) return lfocx;\n var hl = lfocx - rfocx, aby2 = 1 / pby2 - 1 / plby2, b = hl / plby2;\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n return (rfocx + lfocx) / 2;\n }\n function d3_geom_voronoiRightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return d3_geom_voronoiLeftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site.y === directrix ? site.x : Infinity;\n }\n function d3_geom_voronoiCell(site) {\n this.site = site;\n this.edges = [];\n }\n d3_geom_voronoiCell.prototype.prepare = function() {\n var halfEdges = this.edges, iHalfEdge = halfEdges.length, edge;\n while (iHalfEdge--) {\n edge = halfEdges[iHalfEdge].edge;\n if (!edge.b || !edge.a) halfEdges.splice(iHalfEdge, 1);\n }\n halfEdges.sort(d3_geom_voronoiHalfEdgeOrder);\n return halfEdges.length;\n };\n function d3_geom_voronoiCloseCells(extent) {\n var x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], x2, y2, x3, y3, cells = d3_geom_voronoiCells, iCell = cells.length, cell, iHalfEdge, halfEdges, nHalfEdges, start, end;\n while (iCell--) {\n cell = cells[iCell];\n if (!cell || !cell.prepare()) continue;\n halfEdges = cell.edges;\n nHalfEdges = halfEdges.length;\n iHalfEdge = 0;\n while (iHalfEdge < nHalfEdges) {\n end = halfEdges[iHalfEdge].end(), x3 = end.x, y3 = end.y;\n start = halfEdges[++iHalfEdge % nHalfEdges].start(), x2 = start.x, y2 = start.y;\n if (abs(x3 - x2) > \\u03B5 || abs(y3 - y2) > \\u03B5) {\n halfEdges.splice(iHalfEdge, 0, new d3_geom_voronoiHalfEdge(d3_geom_voronoiCreateBorderEdge(cell.site, end, abs(x3 - x0) < \\u03B5 && y1 - y3 > \\u03B5 ? {\n x: x0,\n y: abs(x2 - x0) < \\u03B5 ? y2 : y1\n } : abs(y3 - y1) < \\u03B5 && x1 - x3 > \\u03B5 ? {\n x: abs(y2 - y1) < \\u03B5 ? x2 : x1,\n y: y1\n } : abs(x3 - x1) < \\u03B5 && y3 - y0 > \\u03B5 ? {\n x: x1,\n y: abs(x2 - x1) < \\u03B5 ? y2 : y0\n } : abs(y3 - y0) < \\u03B5 && x3 - x0 > \\u03B5 ? {\n x: abs(y2 - y0) < \\u03B5 ? x2 : x0,\n y: y0\n } : null), cell.site, null));\n ++nHalfEdges;\n }\n }\n }\n }\n function d3_geom_voronoiHalfEdgeOrder(a, b) {\n return b.angle - a.angle;\n }\n function d3_geom_voronoiCircle() {\n d3_geom_voronoiRedBlackNode(this);\n this.x = this.y = this.arc = this.site = this.cy = null;\n }\n function d3_geom_voronoiAttachCircle(arc) {\n var lArc = arc.P, rArc = arc.N;\n if (!lArc || !rArc) return;\n var lSite = lArc.site, cSite = arc.site, rSite = rArc.site;\n if (lSite === rSite) return;\n var bx = cSite.x, by = cSite.y, ax = lSite.x - bx, ay = lSite.y - by, cx = rSite.x - bx, cy = rSite.y - by;\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -\\u03B52) return;\n var ha = ax * ax + ay * ay, hc = cx * cx + cy * cy, x = (cy * ha - ay * hc) / d, y = (ax * hc - cx * ha) / d, cy = y + by;\n var circle = d3_geom_voronoiCirclePool.pop() || new d3_geom_voronoiCircle();\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = cy + Math.sqrt(x * x + y * y);\n circle.cy = cy;\n arc.circle = circle;\n var before = null, node = d3_geom_voronoiCircles._;\n while (node) {\n if (circle.y < node.y || circle.y === node.y && circle.x <= node.x) {\n if (node.L) node = node.L;\n else {\n before = node.P;\n break;\n }\n } else {\n if (node.R) node = node.R;\n else {\n before = node;\n break;\n }\n }\n }\n d3_geom_voronoiCircles.insert(before, circle);\n if (!before) d3_geom_voronoiFirstCircle = circle;\n }\n function d3_geom_voronoiDetachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) d3_geom_voronoiFirstCircle = circle.N;\n d3_geom_voronoiCircles.remove(circle);\n d3_geom_voronoiCirclePool.push(circle);\n d3_geom_voronoiRedBlackNode(circle);\n arc.circle = null;\n }\n }\n function d3_geom_clipLine(x0, y0, x1, y1) {\n return function(line) {\n var a = line.a, b = line.b, ax = a.x, ay = a.y, bx = b.x, by = b.y, t02 = 0, t12 = 1, dx = bx - ax, dy = by - ay, r;\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dx > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dx > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dy > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dy > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n if (t02 > 0) line.a = {\n x: ax + t02 * dx,\n y: ay + t02 * dy\n };\n if (t12 < 1) line.b = {\n x: ax + t12 * dx,\n y: ay + t12 * dy\n };\n return line;\n };\n }\n function d3_geom_voronoiClipEdges(extent) {\n var edges = d3_geom_voronoiEdges, clip = d3_geom_clipLine(extent[0][0], extent[0][1], extent[1][0], extent[1][1]), i = edges.length, e;\n while (i--) {\n e = edges[i];\n if (!d3_geom_voronoiConnectEdge(e, extent) || !clip(e) || abs(e.a.x - e.b.x) < \\u03B5 && abs(e.a.y - e.b.y) < \\u03B5) {\n e.a = e.b = null;\n edges.splice(i, 1);\n }\n }\n }\n function d3_geom_voronoiConnectEdge(edge, extent) {\n var vb = edge.b;\n if (vb) return true;\n var va = edge.a, x0 = extent[0][0], x1 = extent[1][0], y0 = extent[0][1], y1 = extent[1][1], lSite = edge.l, rSite = edge.r, lx = lSite.x, ly = lSite.y, rx = rSite.x, ry = rSite.y, fx = (lx + rx) / 2, fy = (ly + ry) / 2, fm, fb;\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!va) va = {\n x: fx,\n y: y0\n };\n else if (va.y >= y1) return;\n vb = {\n x: fx,\n y: y1\n };\n } else {\n if (!va) va = {\n x: fx,\n y: y1\n };\n else if (va.y < y0) return;\n vb = {\n x: fx,\n y: y0\n };\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!va) va = {\n x: (y0 - fb) / fm,\n y: y0\n };\n else if (va.y >= y1) return;\n vb = {\n x: (y1 - fb) / fm,\n y: y1\n };\n } else {\n if (!va) va = {\n x: (y1 - fb) / fm,\n y: y1\n };\n else if (va.y < y0) return;\n vb = {\n x: (y0 - fb) / fm,\n y: y0\n };\n }\n } else {\n if (ly < ry) {\n if (!va) va = {\n x: x0,\n y: fm * x0 + fb\n };\n else if (va.x >= x1) return;\n vb = {\n x: x1,\n y: fm * x1 + fb\n };\n } else {\n if (!va) va = {\n x: x1,\n y: fm * x1 + fb\n };\n else if (va.x < x0) return;\n vb = {\n x: x0,\n y: fm * x0 + fb\n };\n }\n }\n }\n edge.a = va;\n edge.b = vb;\n return true;\n }\n function d3_geom_voronoiEdge(lSite, rSite) {\n this.l = lSite;\n this.r = rSite;\n this.a = this.b = null;\n }\n function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, rSite);\n d3_geom_voronoiEdges.push(edge);\n if (va) d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, va);\n if (vb) d3_geom_voronoiSetEdgeEnd(edge, rSite, lSite, vb);\n d3_geom_voronoiCells[lSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, lSite, rSite));\n d3_geom_voronoiCells[rSite.i].edges.push(new d3_geom_voronoiHalfEdge(edge, rSite, lSite));\n return edge;\n }\n function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {\n var edge = new d3_geom_voronoiEdge(lSite, null);\n edge.a = va;\n edge.b = vb;\n d3_geom_voronoiEdges.push(edge);\n return edge;\n }\n function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {\n if (!edge.a && !edge.b) {\n edge.a = vertex;\n edge.l = lSite;\n edge.r = rSite;\n } else if (edge.l === rSite) {\n edge.b = vertex;\n } else {\n edge.a = vertex;\n }\n }\n function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {\n var va = edge.a, vb = edge.b;\n this.edge = edge;\n this.site = lSite;\n this.angle = rSite ? Math.atan2(rSite.y - lSite.y, rSite.x - lSite.x) : edge.l === lSite ? Math.atan2(vb.x - va.x, va.y - vb.y) : Math.atan2(va.x - vb.x, vb.y - va.y);\n }\n d3_geom_voronoiHalfEdge.prototype = {\n start: function() {\n return this.edge.l === this.site ? this.edge.a : this.edge.b;\n },\n end: function() {\n return this.edge.l === this.site ? this.edge.b : this.edge.a;\n }\n };\n function d3_geom_voronoiRedBlackTree() {\n this._ = null;\n }\n function d3_geom_voronoiRedBlackNode(node) {\n node.U = node.C = node.L = node.R = node.P = node.N = null;\n }\n d3_geom_voronoiRedBlackTree.prototype = {\n insert: function(after, node) {\n var parent, grandpa, uncle;\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = d3_geom_voronoiRedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n var parent = node.U, sibling, left = node.L, right = node.R, next, red;\n if (!left) next = right;\n else if (!right) next = left;\n else next = d3_geom_voronoiRedBlackFirst(right);\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) {\n node.C = false;\n return;\n }\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n d3_geom_voronoiRedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if (sibling.L && sibling.L.C || sibling.R && sibling.R.C) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n d3_geom_voronoiRedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n d3_geom_voronoiRedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n if (node) node.C = false;\n }\n };\n function d3_geom_voronoiRedBlackRotateLeft(tree, node) {\n var p = node, q = node.R, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n }\n function d3_geom_voronoiRedBlackRotateRight(tree, node) {\n var p = node, q = node.L, parent = p.U;\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n }\n function d3_geom_voronoiRedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n }\n function d3_geom_voronoi(sites, bbox) {\n var site = sites.sort(d3_geom_voronoiVertexOrder).pop(), x0, y0, circle;\n d3_geom_voronoiEdges = [];\n d3_geom_voronoiCells = new Array(sites.length);\n d3_geom_voronoiBeaches = new d3_geom_voronoiRedBlackTree();\n d3_geom_voronoiCircles = new d3_geom_voronoiRedBlackTree();\n while (true) {\n circle = d3_geom_voronoiFirstCircle;\n if (site && (!circle || site.y < circle.y || site.y === circle.y && site.x < circle.x)) {\n if (site.x !== x0 || site.y !== y0) {\n d3_geom_voronoiCells[site.i] = new d3_geom_voronoiCell(site);\n d3_geom_voronoiAddBeach(site);\n x0 = site.x, y0 = site.y;\n }\n site = sites.pop();\n } else if (circle) {\n d3_geom_voronoiRemoveBeach(circle.arc);\n } else {\n break;\n }\n }\n if (bbox) d3_geom_voronoiClipEdges(bbox), d3_geom_voronoiCloseCells(bbox);\n var diagram = {\n cells: d3_geom_voronoiCells,\n edges: d3_geom_voronoiEdges\n };\n d3_geom_voronoiBeaches = d3_geom_voronoiCircles = d3_geom_voronoiEdges = d3_geom_voronoiCells = null;\n return diagram;\n }\n function d3_geom_voronoiVertexOrder(a, b) {\n return b.y - a.y || b.x - a.x;\n }\n d3.geom.voronoi = function(points) {\n var x = d3_geom_pointX, y = d3_geom_pointY, fx = x, fy = y, clipExtent = d3_geom_voronoiClipExtent;\n if (points) return voronoi(points);\n function voronoi(data) {\n var polygons = new Array(data.length), x0 = clipExtent[0][0], y0 = clipExtent[0][1], x1 = clipExtent[1][0], y1 = clipExtent[1][1];\n d3_geom_voronoi(sites(data), clipExtent).cells.forEach(function(cell, i) {\n var edges = cell.edges, site = cell.site, polygon = polygons[i] = edges.length ? edges.map(function(e) {\n var s = e.start();\n return [s.x, s.y];\n }) : site.x >= x0 && site.x <= x1 && site.y >= y0 && site.y <= y1 ? [[x0, y1], [x1, y1], [x1, y0], [x0, y0]] : [];\n polygon.point = data[i];\n });\n return polygons;\n }\n function sites(data) {\n return data.map(function(d, i) {\n return {\n x: Math.round(fx(d, i) / \\u03B5) * \\u03B5,\n y: Math.round(fy(d, i) / \\u03B5) * \\u03B5,\n i\n };\n });\n }\n voronoi.links = function(data) {\n return d3_geom_voronoi(sites(data)).edges.filter(function(edge) {\n return edge.l && edge.r;\n }).map(function(edge) {\n return {\n source: data[edge.l.i],\n target: data[edge.r.i]\n };\n });\n };\n voronoi.triangles = function(data) {\n var triangles = [];\n d3_geom_voronoi(sites(data)).cells.forEach(function(cell, i) {\n var site = cell.site, edges = cell.edges.sort(d3_geom_voronoiHalfEdgeOrder), j = -1, m = edges.length, e0, s0, e1 = edges[m - 1].edge, s1 = e1.l === site ? e1.r : e1.l;\n while (++j < m) {\n e0 = e1;\n s0 = s1;\n e1 = edges[j].edge;\n s1 = e1.l === site ? e1.r : e1.l;\n if (i < s0.i && i < s1.i && d3_geom_voronoiTriangleArea(site, s0, s1) < 0) {\n triangles.push([data[i], data[s0.i], data[s1.i]]);\n }\n }\n });\n return triangles;\n };\n voronoi.x = function(_) {\n return arguments.length ? (fx = d3_functor(x = _), voronoi) : x;\n };\n voronoi.y = function(_) {\n return arguments.length ? (fy = d3_functor(y = _), voronoi) : y;\n };\n voronoi.clipExtent = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent;\n clipExtent = _ == null ? d3_geom_voronoiClipExtent : _;\n return voronoi;\n };\n voronoi.size = function(_) {\n if (!arguments.length) return clipExtent === d3_geom_voronoiClipExtent ? null : clipExtent && clipExtent[1];\n return voronoi.clipExtent(_ && [[0, 0], _]);\n };\n return voronoi;\n };\n var d3_geom_voronoiClipExtent = [[-1e6, -1e6], [1e6, 1e6]];\n function d3_geom_voronoiTriangleArea(a, b, c) {\n return (a.x - c.x) * (b.y - a.y) - (a.x - b.x) * (c.y - a.y);\n }\n d3.geom.delaunay = function(vertices) {\n return d3.geom.voronoi().triangles(vertices);\n };\n d3.geom.quadtree = function(points, x1, y1, x2, y2) {\n var x = d3_geom_pointX, y = d3_geom_pointY, compat;\n if (compat = arguments.length) {\n x = d3_geom_quadtreeCompatX;\n y = d3_geom_quadtreeCompatY;\n if (compat === 3) {\n y2 = y1;\n x2 = x1;\n y1 = x1 = 0;\n }\n return quadtree(points);\n }\n function quadtree(data) {\n var d, fx = d3_functor(x), fy = d3_functor(y), xs, ys, i, n, x1_, y1_, x2_, y2_;\n if (x1 != null) {\n x1_ = x1, y1_ = y1, x2_ = x2, y2_ = y2;\n } else {\n x2_ = y2_ = -(x1_ = y1_ = Infinity);\n xs = [], ys = [];\n n = data.length;\n if (compat) for (i = 0; i < n; ++i) {\n d = data[i];\n if (d.x < x1_) x1_ = d.x;\n if (d.y < y1_) y1_ = d.y;\n if (d.x > x2_) x2_ = d.x;\n if (d.y > y2_) y2_ = d.y;\n xs.push(d.x);\n ys.push(d.y);\n }\n else for (i = 0; i < n; ++i) {\n var x_ = +fx(d = data[i], i), y_ = +fy(d, i);\n if (x_ < x1_) x1_ = x_;\n if (y_ < y1_) y1_ = y_;\n if (x_ > x2_) x2_ = x_;\n if (y_ > y2_) y2_ = y_;\n xs.push(x_);\n ys.push(y_);\n }\n }\n var dx = x2_ - x1_, dy = y2_ - y1_;\n if (dx > dy) y2_ = y1_ + dx;\n else x2_ = x1_ + dy;\n function insert(n2, d2, x3, y3, x12, y12, x22, y22) {\n if (isNaN(x3) || isNaN(y3)) return;\n if (n2.leaf) {\n var nx = n2.x, ny = n2.y;\n if (nx != null) {\n if (abs(nx - x3) + abs(ny - y3) < 0.01) {\n insertChild(n2, d2, x3, y3, x12, y12, x22, y22);\n } else {\n var nPoint = n2.point;\n n2.x = n2.y = n2.point = null;\n insertChild(n2, nPoint, nx, ny, x12, y12, x22, y22);\n insertChild(n2, d2, x3, y3, x12, y12, x22, y22);\n }\n } else {\n n2.x = x3, n2.y = y3, n2.point = d2;\n }\n } else {\n insertChild(n2, d2, x3, y3, x12, y12, x22, y22);\n }\n }\n function insertChild(n2, d2, x3, y3, x12, y12, x22, y22) {\n var xm = (x12 + x22) * 0.5, ym = (y12 + y22) * 0.5, right = x3 >= xm, below = y3 >= ym, i2 = below << 1 | right;\n n2.leaf = false;\n n2 = n2.nodes[i2] || (n2.nodes[i2] = d3_geom_quadtreeNode());\n if (right) x12 = xm;\n else x22 = xm;\n if (below) y12 = ym;\n else y22 = ym;\n insert(n2, d2, x3, y3, x12, y12, x22, y22);\n }\n var root = d3_geom_quadtreeNode();\n root.add = function(d2) {\n insert(root, d2, +fx(d2, ++i), +fy(d2, i), x1_, y1_, x2_, y2_);\n };\n root.visit = function(f) {\n d3_geom_quadtreeVisit(f, root, x1_, y1_, x2_, y2_);\n };\n root.find = function(point) {\n return d3_geom_quadtreeFind(root, point[0], point[1], x1_, y1_, x2_, y2_);\n };\n i = -1;\n if (x1 == null) {\n while (++i < n) {\n insert(root, data[i], xs[i], ys[i], x1_, y1_, x2_, y2_);\n }\n --i;\n } else data.forEach(root.add);\n xs = ys = data = d = null;\n return root;\n }\n quadtree.x = function(_) {\n return arguments.length ? (x = _, quadtree) : x;\n };\n quadtree.y = function(_) {\n return arguments.length ? (y = _, quadtree) : y;\n };\n quadtree.extent = function(_) {\n if (!arguments.length) return x1 == null ? null : [[x1, y1], [x2, y2]];\n if (_ == null) x1 = y1 = x2 = y2 = null;\n else x1 = +_[0][0], y1 = +_[0][1], x2 = +_[1][0], y2 = +_[1][1];\n return quadtree;\n };\n quadtree.size = function(_) {\n if (!arguments.length) return x1 == null ? null : [x2 - x1, y2 - y1];\n if (_ == null) x1 = y1 = x2 = y2 = null;\n else x1 = y1 = 0, x2 = +_[0], y2 = +_[1];\n return quadtree;\n };\n return quadtree;\n };\n function d3_geom_quadtreeCompatX(d) {\n return d.x;\n }\n function d3_geom_quadtreeCompatY(d) {\n return d.y;\n }\n function d3_geom_quadtreeNode() {\n return {\n leaf: true,\n nodes: [],\n point: null,\n x: null,\n y: null\n };\n }\n function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {\n if (!f(node, x1, y1, x2, y2)) {\n var sx = (x1 + x2) * 0.5, sy = (y1 + y2) * 0.5, children = node.nodes;\n if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);\n if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);\n if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);\n if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);\n }\n }\n function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {\n var minDistance2 = Infinity, closestPoint;\n (function find(node, x1, y1, x2, y2) {\n if (x1 > x3 || y1 > y3 || x2 < x0 || y2 < y0) return;\n if (point = node.point) {\n var point, dx = x - node.x, dy = y - node.y, distance2 = dx * dx + dy * dy;\n if (distance2 < minDistance2) {\n var distance = Math.sqrt(minDistance2 = distance2);\n x0 = x - distance, y0 = y - distance;\n x3 = x + distance, y3 = y + distance;\n closestPoint = point;\n }\n }\n var children = node.nodes, xm = (x1 + x2) * 0.5, ym = (y1 + y2) * 0.5, right = x >= xm, below = y >= ym;\n for (var i = below << 1 | right, j = i + 4; i < j; ++i) {\n if (node = children[i & 3]) switch (i & 3) {\n case 0:\n find(node, x1, y1, xm, ym);\n break;\n case 1:\n find(node, xm, y1, x2, ym);\n break;\n case 2:\n find(node, x1, ym, xm, y2);\n break;\n case 3:\n find(node, xm, ym, x2, y2);\n break;\n }\n }\n })(root, x0, y0, x3, y3);\n return closestPoint;\n }\n d3.interpolateRgb = d3_interpolateRgb;\n function d3_interpolateRgb(a, b) {\n a = d3.rgb(a);\n b = d3.rgb(b);\n var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;\n return function(t) {\n return \"#\" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));\n };\n }\n d3.interpolateObject = d3_interpolateObject;\n function d3_interpolateObject(a, b) {\n var i = {}, c = {}, k;\n for (k in a) {\n if (k in b) {\n i[k] = d3_interpolate(a[k], b[k]);\n } else {\n c[k] = a[k];\n }\n }\n for (k in b) {\n if (!(k in a)) {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n d3.interpolateNumber = d3_interpolateNumber;\n function d3_interpolateNumber(a, b) {\n a = +a, b = +b;\n return function(t) {\n return a * (1 - t) + b * t;\n };\n }\n d3.interpolateString = d3_interpolateString;\n function d3_interpolateString(a, b) {\n var bi = d3_interpolate_numberA.lastIndex = d3_interpolate_numberB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = d3_interpolate_numberA.exec(a)) && (bm = d3_interpolate_numberB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm;\n else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({\n i,\n x: d3_interpolateNumber(am, bm)\n });\n }\n bi = d3_interpolate_numberB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? (b = q[0].x, function(t) {\n return b(t) + \"\";\n }) : function() {\n return b;\n } : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var d3_interpolate_numberA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g, d3_interpolate_numberB = new RegExp(d3_interpolate_numberA.source, \"g\");\n d3.interpolate = d3_interpolate;\n function d3_interpolate(a, b) {\n var i = d3.interpolators.length, f;\n while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;\n return f;\n }\n d3.interpolators = [function(a, b) {\n var t = typeof b;\n return (t === \"string\" ? d3_rgb_names.has(b.toLowerCase()) || /^(#|rgb\\(|hsl\\()/i.test(b) ? d3_interpolateRgb : d3_interpolateString : b instanceof d3_color ? d3_interpolateRgb : Array.isArray(b) ? d3_interpolateArray : t === \"object\" && isNaN(b) ? d3_interpolateObject : d3_interpolateNumber)(a, b);\n }];\n d3.interpolateArray = d3_interpolateArray;\n function d3_interpolateArray(a, b) {\n var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;\n for (i = 0; i < n0; ++i) x.push(d3_interpolate(a[i], b[i]));\n for (; i < na; ++i) c[i] = a[i];\n for (; i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < n0; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var d3_ease_default = function() {\n return d3_identity;\n };\n var d3_ease = d3.map({\n linear: d3_ease_default,\n poly: d3_ease_poly,\n quad: function() {\n return d3_ease_quad;\n },\n cubic: function() {\n return d3_ease_cubic;\n },\n sin: function() {\n return d3_ease_sin;\n },\n exp: function() {\n return d3_ease_exp;\n },\n circle: function() {\n return d3_ease_circle;\n },\n elastic: d3_ease_elastic,\n back: d3_ease_back,\n bounce: function() {\n return d3_ease_bounce;\n }\n });\n var d3_ease_mode = d3.map({\n \"in\": d3_identity,\n out: d3_ease_reverse,\n \"in-out\": d3_ease_reflect,\n \"out-in\": function(f) {\n return d3_ease_reflect(d3_ease_reverse(f));\n }\n });\n d3.ease = function(name2) {\n var i = name2.indexOf(\"-\"), t = i >= 0 ? name2.slice(0, i) : name2, m = i >= 0 ? name2.slice(i + 1) : \"in\";\n t = d3_ease.get(t) || d3_ease_default;\n m = d3_ease_mode.get(m) || d3_identity;\n return d3_ease_clamp(m(t.apply(null, d3_arraySlice.call(arguments, 1))));\n };\n function d3_ease_clamp(f) {\n return function(t) {\n return t <= 0 ? 0 : t >= 1 ? 1 : f(t);\n };\n }\n function d3_ease_reverse(f) {\n return function(t) {\n return 1 - f(1 - t);\n };\n }\n function d3_ease_reflect(f) {\n return function(t) {\n return 0.5 * (t < 0.5 ? f(2 * t) : 2 - f(2 - 2 * t));\n };\n }\n function d3_ease_quad(t) {\n return t * t;\n }\n function d3_ease_cubic(t) {\n return t * t * t;\n }\n function d3_ease_cubicInOut(t) {\n if (t <= 0) return 0;\n if (t >= 1) return 1;\n var t22 = t * t, t32 = t22 * t;\n return 4 * (t < 0.5 ? t32 : 3 * (t - t22) + t32 - 0.75);\n }\n function d3_ease_poly(e) {\n return function(t) {\n return Math.pow(t, e);\n };\n }\n function d3_ease_sin(t) {\n return 1 - Math.cos(t * half\\u03C0);\n }\n function d3_ease_exp(t) {\n return Math.pow(2, 10 * (t - 1));\n }\n function d3_ease_circle(t) {\n return 1 - Math.sqrt(1 - t * t);\n }\n function d3_ease_elastic(a, p) {\n var s;\n if (arguments.length < 2) p = 0.45;\n if (arguments.length) s = p / \\u03C4 * Math.asin(1 / a);\n else a = 1, s = p / 4;\n return function(t) {\n return 1 + a * Math.pow(2, -10 * t) * Math.sin((t - s) * \\u03C4 / p);\n };\n }\n function d3_ease_back(s) {\n if (!s) s = 1.70158;\n return function(t) {\n return t * t * ((s + 1) * t - s);\n };\n }\n function d3_ease_bounce(t) {\n return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + 0.75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + 0.9375 : 7.5625 * (t -= 2.625 / 2.75) * t + 0.984375;\n }\n d3.interpolateHcl = d3_interpolateHcl;\n function d3_interpolateHcl(a, b) {\n a = d3.hcl(a);\n b = d3.hcl(b);\n var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;\n if (isNaN(bc)) bc = 0, ac = isNaN(ac) ? b.c : ac;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah;\n else if (bh > 180) bh -= 360;\n else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateHsl = d3_interpolateHsl;\n function d3_interpolateHsl(a, b) {\n a = d3.hsl(a);\n b = d3.hsl(b);\n var ah = a.h, as = a.s, al = a.l, bh = b.h - ah, bs = b.s - as, bl = b.l - al;\n if (isNaN(bs)) bs = 0, as = isNaN(as) ? b.s : as;\n if (isNaN(bh)) bh = 0, ah = isNaN(ah) ? b.h : ah;\n else if (bh > 180) bh -= 360;\n else if (bh < -180) bh += 360;\n return function(t) {\n return d3_hsl_rgb(ah + bh * t, as + bs * t, al + bl * t) + \"\";\n };\n }\n d3.interpolateLab = d3_interpolateLab;\n function d3_interpolateLab(a, b) {\n a = d3.lab(a);\n b = d3.lab(b);\n var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;\n return function(t) {\n return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + \"\";\n };\n }\n d3.interpolateRound = d3_interpolateRound;\n function d3_interpolateRound(a, b) {\n b -= a;\n return function(t) {\n return Math.round(a + b * t);\n };\n }\n d3.transform = function(string) {\n var g = d3_document.createElementNS(d3.ns.prefix.svg, \"g\");\n return (d3.transform = function(string2) {\n if (string2 != null) {\n g.setAttribute(\"transform\", string2);\n var t = g.transform.baseVal.consolidate();\n }\n return new d3_transform(t ? t.matrix : d3_transformIdentity);\n })(string);\n };\n function d3_transform(m) {\n var r0 = [m.a, m.b], r1 = [m.c, m.d], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;\n if (r0[0] * r1[1] < r1[0] * r0[1]) {\n r0[0] *= -1;\n r0[1] *= -1;\n kx *= -1;\n kz *= -1;\n }\n this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;\n this.translate = [m.e, m.f];\n this.scale = [kx, ky];\n this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;\n }\n d3_transform.prototype.toString = function() {\n return \"translate(\" + this.translate + \")rotate(\" + this.rotate + \")skewX(\" + this.skew + \")scale(\" + this.scale + \")\";\n };\n function d3_transformDot(a, b) {\n return a[0] * b[0] + a[1] * b[1];\n }\n function d3_transformNormalize(a) {\n var k = Math.sqrt(d3_transformDot(a, a));\n if (k) {\n a[0] /= k;\n a[1] /= k;\n }\n return k;\n }\n function d3_transformCombine(a, b, k) {\n a[0] += k * b[0];\n a[1] += k * b[1];\n return a;\n }\n var d3_transformIdentity = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: 0,\n f: 0\n };\n d3.interpolateTransform = d3_interpolateTransform;\n function d3_interpolateTransformPop(s) {\n return s.length ? s.pop() + \",\" : \"\";\n }\n function d3_interpolateTranslate(ta, tb, s, q) {\n if (ta[0] !== tb[0] || ta[1] !== tb[1]) {\n var i = s.push(\"translate(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ta[0], tb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ta[1], tb[1])\n });\n } else if (tb[0] || tb[1]) {\n s.push(\"translate(\" + tb + \")\");\n }\n }\n function d3_interpolateRotate(ra, rb, s, q) {\n if (ra !== rb) {\n if (ra - rb > 180) rb += 360;\n else if (rb - ra > 180) ra += 360;\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"rotate(\", null, \")\") - 2,\n x: d3_interpolateNumber(ra, rb)\n });\n } else if (rb) {\n s.push(d3_interpolateTransformPop(s) + \"rotate(\" + rb + \")\");\n }\n }\n function d3_interpolateSkew(wa, wb, s, q) {\n if (wa !== wb) {\n q.push({\n i: s.push(d3_interpolateTransformPop(s) + \"skewX(\", null, \")\") - 2,\n x: d3_interpolateNumber(wa, wb)\n });\n } else if (wb) {\n s.push(d3_interpolateTransformPop(s) + \"skewX(\" + wb + \")\");\n }\n }\n function d3_interpolateScale(ka, kb, s, q) {\n if (ka[0] !== kb[0] || ka[1] !== kb[1]) {\n var i = s.push(d3_interpolateTransformPop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({\n i: i - 4,\n x: d3_interpolateNumber(ka[0], kb[0])\n }, {\n i: i - 2,\n x: d3_interpolateNumber(ka[1], kb[1])\n });\n } else if (kb[0] !== 1 || kb[1] !== 1) {\n s.push(d3_interpolateTransformPop(s) + \"scale(\" + kb + \")\");\n }\n }\n function d3_interpolateTransform(a, b) {\n var s = [], q = [];\n a = d3.transform(a), b = d3.transform(b);\n d3_interpolateTranslate(a.translate, b.translate, s, q);\n d3_interpolateRotate(a.rotate, b.rotate, s, q);\n d3_interpolateSkew(a.skew, b.skew, s, q);\n d3_interpolateScale(a.scale, b.scale, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n }\n function d3_uninterpolateNumber(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return (x - a) / b;\n };\n }\n function d3_uninterpolateClamp(a, b) {\n b = (b -= a = +a) || 1 / b;\n return function(x) {\n return Math.max(0, Math.min(1, (x - a) / b));\n };\n }\n d3.layout = {};\n d3.layout.bundle = function() {\n return function(links) {\n var paths = [], i = -1, n = links.length;\n while (++i < n) paths.push(d3_layout_bundlePath(links[i]));\n return paths;\n };\n };\n function d3_layout_bundlePath(link) {\n var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [start];\n while (start !== lca) {\n start = start.parent;\n points.push(start);\n }\n var k = points.length;\n while (end !== lca) {\n points.splice(k, 0, end);\n end = end.parent;\n }\n return points;\n }\n function d3_layout_bundleAncestors(node) {\n var ancestors = [], parent = node.parent;\n while (parent != null) {\n ancestors.push(node);\n node = parent;\n parent = parent.parent;\n }\n ancestors.push(node);\n return ancestors;\n }\n function d3_layout_bundleLeastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;\n while (aNode === bNode) {\n sharedNode = aNode;\n aNode = aNodes.pop();\n bNode = bNodes.pop();\n }\n return sharedNode;\n }\n d3.layout.chord = function() {\n var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;\n function relayout() {\n var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;\n chords = [];\n groups = [];\n k = 0, i = -1;\n while (++i < n) {\n x = 0, j = -1;\n while (++j < n) {\n x += matrix[i][j];\n }\n groupSums.push(x);\n subgroupIndex.push(d3.range(n));\n k += x;\n }\n if (sortGroups) {\n groupIndex.sort(function(a, b) {\n return sortGroups(groupSums[a], groupSums[b]);\n });\n }\n if (sortSubgroups) {\n subgroupIndex.forEach(function(d, i2) {\n d.sort(function(a, b) {\n return sortSubgroups(matrix[i2][a], matrix[i2][b]);\n });\n });\n }\n k = (\\u03C4 - padding * n) / k;\n x = 0, i = -1;\n while (++i < n) {\n x0 = x, j = -1;\n while (++j < n) {\n var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;\n subgroups[di + \"-\" + dj] = {\n index: di,\n subindex: dj,\n startAngle: a0,\n endAngle: a1,\n value: v\n };\n }\n groups[di] = {\n index: di,\n startAngle: x0,\n endAngle: x,\n value: groupSums[di]\n };\n x += padding;\n }\n i = -1;\n while (++i < n) {\n j = i - 1;\n while (++j < n) {\n var source = subgroups[i + \"-\" + j], target = subgroups[j + \"-\" + i];\n if (source.value || target.value) {\n chords.push(source.value < target.value ? {\n source: target,\n target: source\n } : {\n source,\n target\n });\n }\n }\n }\n if (sortChords) resort();\n }\n function resort() {\n chords.sort(function(a, b) {\n return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);\n });\n }\n chord.matrix = function(x) {\n if (!arguments.length) return matrix;\n n = (matrix = x) && matrix.length;\n chords = groups = null;\n return chord;\n };\n chord.padding = function(x) {\n if (!arguments.length) return padding;\n padding = x;\n chords = groups = null;\n return chord;\n };\n chord.sortGroups = function(x) {\n if (!arguments.length) return sortGroups;\n sortGroups = x;\n chords = groups = null;\n return chord;\n };\n chord.sortSubgroups = function(x) {\n if (!arguments.length) return sortSubgroups;\n sortSubgroups = x;\n chords = null;\n return chord;\n };\n chord.sortChords = function(x) {\n if (!arguments.length) return sortChords;\n sortChords = x;\n if (chords) resort();\n return chord;\n };\n chord.chords = function() {\n if (!chords) relayout();\n return chords;\n };\n chord.groups = function() {\n if (!groups) relayout();\n return groups;\n };\n return chord;\n };\n d3.layout.force = function() {\n var force = {}, event = d3.dispatch(\"start\", \"tick\", \"end\"), timer, size = [1, 1], drag, alpha, friction = 0.9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = 0.1, theta2 = 0.64, nodes = [], links = [], distances, strengths, charges;\n function repulse(node) {\n return function(quad, x1, _, x2) {\n if (quad.point !== node) {\n var dx = quad.cx - node.x, dy = quad.cy - node.y, dw = x2 - x1, dn = dx * dx + dy * dy;\n if (dw * dw / theta2 < dn) {\n if (dn < chargeDistance2) {\n var k = quad.charge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n return true;\n }\n if (quad.point && dn && dn < chargeDistance2) {\n var k = quad.pointCharge / dn;\n node.px -= dx * k;\n node.py -= dy * k;\n }\n }\n return !quad.charge;\n };\n }\n force.tick = function() {\n if ((alpha *= 0.99) < 5e-3) {\n timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n return true;\n }\n var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;\n for (i = 0; i < m; ++i) {\n o = links[i];\n s = o.source;\n t = o.target;\n x = t.x - s.x;\n y = t.y - s.y;\n if (l = x * x + y * y) {\n l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;\n x *= l;\n y *= l;\n t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : 0.5);\n t.y -= y * k;\n s.x += x * (k = 1 - k);\n s.y += y * k;\n }\n }\n if (k = alpha * gravity) {\n x = size[0] / 2;\n y = size[1] / 2;\n i = -1;\n if (k) while (++i < n) {\n o = nodes[i];\n o.x += (x - o.x) * k;\n o.y += (y - o.y) * k;\n }\n }\n if (charge) {\n d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);\n i = -1;\n while (++i < n) {\n if (!(o = nodes[i]).fixed) {\n q.visit(repulse(o));\n }\n }\n }\n i = -1;\n while (++i < n) {\n o = nodes[i];\n if (o.fixed) {\n o.x = o.px;\n o.y = o.py;\n } else {\n o.x -= (o.px - (o.px = o.x)) * friction;\n o.y -= (o.py - (o.py = o.y)) * friction;\n }\n }\n event.tick({\n type: \"tick\",\n alpha\n });\n };\n force.nodes = function(x) {\n if (!arguments.length) return nodes;\n nodes = x;\n return force;\n };\n force.links = function(x) {\n if (!arguments.length) return links;\n links = x;\n return force;\n };\n force.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return force;\n };\n force.linkDistance = function(x) {\n if (!arguments.length) return linkDistance;\n linkDistance = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.distance = force.linkDistance;\n force.linkStrength = function(x) {\n if (!arguments.length) return linkStrength;\n linkStrength = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.friction = function(x) {\n if (!arguments.length) return friction;\n friction = +x;\n return force;\n };\n force.charge = function(x) {\n if (!arguments.length) return charge;\n charge = typeof x === \"function\" ? x : +x;\n return force;\n };\n force.chargeDistance = function(x) {\n if (!arguments.length) return Math.sqrt(chargeDistance2);\n chargeDistance2 = x * x;\n return force;\n };\n force.gravity = function(x) {\n if (!arguments.length) return gravity;\n gravity = +x;\n return force;\n };\n force.theta = function(x) {\n if (!arguments.length) return Math.sqrt(theta2);\n theta2 = x * x;\n return force;\n };\n force.alpha = function(x) {\n if (!arguments.length) return alpha;\n x = +x;\n if (alpha) {\n if (x > 0) {\n alpha = x;\n } else {\n timer.c = null, timer.t = NaN, timer = null;\n event.end({\n type: \"end\",\n alpha: alpha = 0\n });\n }\n } else if (x > 0) {\n event.start({\n type: \"start\",\n alpha: alpha = x\n });\n timer = d3_timer(force.tick);\n }\n return force;\n };\n force.start = function() {\n var i, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;\n for (i = 0; i < n; ++i) {\n (o = nodes[i]).index = i;\n o.weight = 0;\n }\n for (i = 0; i < m; ++i) {\n o = links[i];\n if (typeof o.source == \"number\") o.source = nodes[o.source];\n if (typeof o.target == \"number\") o.target = nodes[o.target];\n ++o.source.weight;\n ++o.target.weight;\n }\n for (i = 0; i < n; ++i) {\n o = nodes[i];\n if (isNaN(o.x)) o.x = position(\"x\", w);\n if (isNaN(o.y)) o.y = position(\"y\", h);\n if (isNaN(o.px)) o.px = o.x;\n if (isNaN(o.py)) o.py = o.y;\n }\n distances = [];\n if (typeof linkDistance === \"function\") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i);\n else for (i = 0; i < m; ++i) distances[i] = linkDistance;\n strengths = [];\n if (typeof linkStrength === \"function\") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i);\n else for (i = 0; i < m; ++i) strengths[i] = linkStrength;\n charges = [];\n if (typeof charge === \"function\") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i);\n else for (i = 0; i < n; ++i) charges[i] = charge;\n function position(dimension, size2) {\n if (!neighbors) {\n neighbors = new Array(n);\n for (j = 0; j < n; ++j) {\n neighbors[j] = [];\n }\n for (j = 0; j < m; ++j) {\n var o2 = links[j];\n neighbors[o2.source.index].push(o2.target);\n neighbors[o2.target.index].push(o2.source);\n }\n }\n var candidates = neighbors[i], j = -1, l = candidates.length, x;\n while (++j < l) if (!isNaN(x = candidates[j][dimension])) return x;\n return Math.random() * size2;\n }\n return force.resume();\n };\n force.resume = function() {\n return force.alpha(0.1);\n };\n force.stop = function() {\n return force.alpha(0);\n };\n force.drag = function() {\n if (!drag) drag = d3.behavior.drag().origin(d3_identity).on(\"dragstart.force\", d3_layout_forceDragstart).on(\"drag.force\", dragmove).on(\"dragend.force\", d3_layout_forceDragend);\n if (!arguments.length) return drag;\n this.on(\"mouseover.force\", d3_layout_forceMouseover).on(\"mouseout.force\", d3_layout_forceMouseout).call(drag);\n };\n function dragmove(d) {\n d.px = d3.event.x, d.py = d3.event.y;\n force.resume();\n }\n return d3.rebind(force, event, \"on\");\n };\n function d3_layout_forceDragstart(d) {\n d.fixed |= 2;\n }\n function d3_layout_forceDragend(d) {\n d.fixed &= ~6;\n }\n function d3_layout_forceMouseover(d) {\n d.fixed |= 4;\n d.px = d.x, d.py = d.y;\n }\n function d3_layout_forceMouseout(d) {\n d.fixed &= ~4;\n }\n function d3_layout_forceAccumulate(quad, alpha, charges) {\n var cx = 0, cy = 0;\n quad.charge = 0;\n if (!quad.leaf) {\n var nodes = quad.nodes, n = nodes.length, i = -1, c;\n while (++i < n) {\n c = nodes[i];\n if (c == null) continue;\n d3_layout_forceAccumulate(c, alpha, charges);\n quad.charge += c.charge;\n cx += c.charge * c.cx;\n cy += c.charge * c.cy;\n }\n }\n if (quad.point) {\n if (!quad.leaf) {\n quad.point.x += Math.random() - 0.5;\n quad.point.y += Math.random() - 0.5;\n }\n var k = alpha * charges[quad.point.index];\n quad.charge += quad.pointCharge = k;\n cx += k * quad.point.x;\n cy += k * quad.point.y;\n }\n quad.cx = cx / quad.charge;\n quad.cy = cy / quad.charge;\n }\n var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1, d3_layout_forceChargeDistance2 = Infinity;\n d3.layout.hierarchy = function() {\n var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;\n function hierarchy(root) {\n var stack = [root], nodes = [], node;\n root.depth = 0;\n while ((node = stack.pop()) != null) {\n nodes.push(node);\n if ((childs = children.call(hierarchy, node, node.depth)) && (n = childs.length)) {\n var n, childs, child;\n while (--n >= 0) {\n stack.push(child = childs[n]);\n child.parent = node;\n child.depth = node.depth + 1;\n }\n if (value) node.value = 0;\n node.children = childs;\n } else {\n if (value) node.value = +value.call(hierarchy, node, node.depth) || 0;\n delete node.children;\n }\n }\n d3_layout_hierarchyVisitAfter(root, function(node2) {\n var childs2, parent;\n if (sort && (childs2 = node2.children)) childs2.sort(sort);\n if (value && (parent = node2.parent)) parent.value += node2.value;\n });\n return nodes;\n }\n hierarchy.sort = function(x) {\n if (!arguments.length) return sort;\n sort = x;\n return hierarchy;\n };\n hierarchy.children = function(x) {\n if (!arguments.length) return children;\n children = x;\n return hierarchy;\n };\n hierarchy.value = function(x) {\n if (!arguments.length) return value;\n value = x;\n return hierarchy;\n };\n hierarchy.revalue = function(root) {\n if (value) {\n d3_layout_hierarchyVisitBefore(root, function(node) {\n if (node.children) node.value = 0;\n });\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var parent;\n if (!node.children) node.value = +value.call(hierarchy, node, node.depth) || 0;\n if (parent = node.parent) parent.value += node.value;\n });\n }\n return root;\n };\n return hierarchy;\n };\n function d3_layout_hierarchyRebind(object, hierarchy) {\n d3.rebind(object, hierarchy, \"sort\", \"children\", \"value\");\n object.nodes = object;\n object.links = d3_layout_hierarchyLinks;\n return object;\n }\n function d3_layout_hierarchyVisitBefore(node, callback) {\n var nodes = [node];\n while ((node = nodes.pop()) != null) {\n callback(node);\n if ((children = node.children) && (n = children.length)) {\n var n, children;\n while (--n >= 0) nodes.push(children[n]);\n }\n }\n }\n function d3_layout_hierarchyVisitAfter(node, callback) {\n var nodes = [node], nodes2 = [];\n while ((node = nodes.pop()) != null) {\n nodes2.push(node);\n if ((children = node.children) && (n = children.length)) {\n var i = -1, n, children;\n while (++i < n) nodes.push(children[i]);\n }\n }\n while ((node = nodes2.pop()) != null) {\n callback(node);\n }\n }\n function d3_layout_hierarchyChildren(d) {\n return d.children;\n }\n function d3_layout_hierarchyValue(d) {\n return d.value;\n }\n function d3_layout_hierarchySort(a, b) {\n return b.value - a.value;\n }\n function d3_layout_hierarchyLinks(nodes) {\n return d3.merge(nodes.map(function(parent) {\n return (parent.children || []).map(function(child) {\n return {\n source: parent,\n target: child\n };\n });\n }));\n }\n d3.layout.partition = function() {\n var hierarchy = d3.layout.hierarchy(), size = [1, 1];\n function position(node, x, dx, dy) {\n var children = node.children;\n node.x = x;\n node.y = node.depth * dy;\n node.dx = dx;\n node.dy = dy;\n if (children && (n = children.length)) {\n var i = -1, n, c, d;\n dx = node.value ? dx / node.value : 0;\n while (++i < n) {\n position(c = children[i], x, d = c.value * dx, dy);\n x += d;\n }\n }\n }\n function depth(node) {\n var children = node.children, d = 0;\n if (children && (n = children.length)) {\n var i = -1, n;\n while (++i < n) d = Math.max(d, depth(children[i]));\n }\n return 1 + d;\n }\n function partition(d, i) {\n var nodes = hierarchy.call(this, d, i);\n position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));\n return nodes;\n }\n partition.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return partition;\n };\n return d3_layout_hierarchyRebind(partition, hierarchy);\n };\n d3.layout.pie = function() {\n var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = \\u03C4, padAngle = 0;\n function pie(data) {\n var n = data.length, values = data.map(function(d, i) {\n return +value.call(pie, d, i);\n }), a = +(typeof startAngle === \"function\" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === \"function\" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === \"function\" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v;\n if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {\n return values[j] - values[i];\n } : function(i, j) {\n return sort(data[i], data[j]);\n });\n index.forEach(function(i) {\n arcs[i] = {\n data: data[i],\n value: v = values[i],\n startAngle: a,\n endAngle: a += v * k + pa,\n padAngle: p\n };\n });\n return arcs;\n }\n pie.value = function(_) {\n if (!arguments.length) return value;\n value = _;\n return pie;\n };\n pie.sort = function(_) {\n if (!arguments.length) return sort;\n sort = _;\n return pie;\n };\n pie.startAngle = function(_) {\n if (!arguments.length) return startAngle;\n startAngle = _;\n return pie;\n };\n pie.endAngle = function(_) {\n if (!arguments.length) return endAngle;\n endAngle = _;\n return pie;\n };\n pie.padAngle = function(_) {\n if (!arguments.length) return padAngle;\n padAngle = _;\n return pie;\n };\n return pie;\n };\n var d3_layout_pieSortByValue = {};\n d3.layout.stack = function() {\n var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;\n function stack(data, index) {\n if (!(n = data.length)) return data;\n var series = data.map(function(d, i2) {\n return values.call(stack, d, i2);\n });\n var points = series.map(function(d) {\n return d.map(function(v, i2) {\n return [x.call(stack, v, i2), y.call(stack, v, i2)];\n });\n });\n var orders = order.call(stack, points, index);\n series = d3.permute(series, orders);\n points = d3.permute(points, orders);\n var offsets = offset.call(stack, points, index);\n var m = series[0].length, n, i, j, o;\n for (j = 0; j < m; ++j) {\n out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);\n for (i = 1; i < n; ++i) {\n out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);\n }\n }\n return data;\n }\n stack.values = function(x2) {\n if (!arguments.length) return values;\n values = x2;\n return stack;\n };\n stack.order = function(x2) {\n if (!arguments.length) return order;\n order = typeof x2 === \"function\" ? x2 : d3_layout_stackOrders.get(x2) || d3_layout_stackOrderDefault;\n return stack;\n };\n stack.offset = function(x2) {\n if (!arguments.length) return offset;\n offset = typeof x2 === \"function\" ? x2 : d3_layout_stackOffsets.get(x2) || d3_layout_stackOffsetZero;\n return stack;\n };\n stack.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n return stack;\n };\n stack.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n return stack;\n };\n stack.out = function(z) {\n if (!arguments.length) return out;\n out = z;\n return stack;\n };\n return stack;\n };\n function d3_layout_stackX(d) {\n return d.x;\n }\n function d3_layout_stackY(d) {\n return d.y;\n }\n function d3_layout_stackOut(d, y0, y) {\n d.y0 = y0;\n d.y = y;\n }\n var d3_layout_stackOrders = d3.map({\n \"inside-out\": function(data) {\n var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {\n return max[a] - max[b];\n }), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = index[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n },\n reverse: function(data) {\n return d3.range(data.length).reverse();\n },\n \"default\": d3_layout_stackOrderDefault\n });\n var d3_layout_stackOffsets = d3.map({\n silhouette: function(data) {\n var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o > max) max = o;\n sums.push(o);\n }\n for (j = 0; j < m; ++j) {\n y0[j] = (max - sums[j]) / 2;\n }\n return y0;\n },\n wiggle: function(data) {\n var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];\n y0[0] = o = o0 = 0;\n for (j = 1; j < m; ++j) {\n for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];\n for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {\n for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {\n s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;\n }\n s2 += s3 * data[i][j][1];\n }\n y0[j] = o -= s1 ? s2 / s1 * dx : 0;\n if (o < o0) o0 = o;\n }\n for (j = 0; j < m; ++j) y0[j] -= o0;\n return y0;\n },\n expand: function(data) {\n var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];\n for (j = 0; j < m; ++j) {\n for (i = 0, o = 0; i < n; i++) o += data[i][j][1];\n if (o) for (i = 0; i < n; i++) data[i][j][1] /= o;\n else for (i = 0; i < n; i++) data[i][j][1] = k;\n }\n for (j = 0; j < m; ++j) y0[j] = 0;\n return y0;\n },\n zero: d3_layout_stackOffsetZero\n });\n function d3_layout_stackOrderDefault(data) {\n return d3.range(data.length);\n }\n function d3_layout_stackOffsetZero(data) {\n var j = -1, m = data[0].length, y0 = [];\n while (++j < m) y0[j] = 0;\n return y0;\n }\n function d3_layout_stackMaxIndex(array) {\n var i = 1, j = 0, v = array[0][1], k, n = array.length;\n for (; i < n; ++i) {\n if ((k = array[i][1]) > v) {\n j = i;\n v = k;\n }\n }\n return j;\n }\n function d3_layout_stackReduceSum(d) {\n return d.reduce(d3_layout_stackSum, 0);\n }\n function d3_layout_stackSum(p, d) {\n return p + d[1];\n }\n d3.layout.histogram = function() {\n var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;\n function histogram(data, i) {\n var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;\n while (++i < m) {\n bin = bins[i] = [];\n bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);\n bin.y = 0;\n }\n if (m > 0) {\n i = -1;\n while (++i < n) {\n x = values[i];\n if (x >= range[0] && x <= range[1]) {\n bin = bins[d3.bisect(thresholds, x, 1, m) - 1];\n bin.y += k;\n bin.push(data[i]);\n }\n }\n }\n return bins;\n }\n histogram.value = function(x) {\n if (!arguments.length) return valuer;\n valuer = x;\n return histogram;\n };\n histogram.range = function(x) {\n if (!arguments.length) return ranger;\n ranger = d3_functor(x);\n return histogram;\n };\n histogram.bins = function(x) {\n if (!arguments.length) return binner;\n binner = typeof x === \"number\" ? function(range) {\n return d3_layout_histogramBinFixed(range, x);\n } : d3_functor(x);\n return histogram;\n };\n histogram.frequency = function(x) {\n if (!arguments.length) return frequency;\n frequency = !!x;\n return histogram;\n };\n return histogram;\n };\n function d3_layout_histogramBinSturges(range, values) {\n return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));\n }\n function d3_layout_histogramBinFixed(range, n) {\n var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];\n while (++x <= n) f[x] = m * x + b;\n return f;\n }\n function d3_layout_histogramRange(values) {\n return [d3.min(values), d3.max(values)];\n }\n d3.layout.pack = function() {\n var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [1, 1], radius;\n function pack(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], w = size[0], h = size[1], r = radius == null ? Math.sqrt : typeof radius === \"function\" ? radius : function() {\n return radius;\n };\n root.x = root.y = 0;\n d3_layout_hierarchyVisitAfter(root, function(d2) {\n d2.r = +r(d2.value);\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n if (padding) {\n var dr = padding * (radius ? 1 : Math.max(2 * root.r / w, 2 * root.r / h)) / 2;\n d3_layout_hierarchyVisitAfter(root, function(d2) {\n d2.r += dr;\n });\n d3_layout_hierarchyVisitAfter(root, d3_layout_packSiblings);\n d3_layout_hierarchyVisitAfter(root, function(d2) {\n d2.r -= dr;\n });\n }\n d3_layout_packTransform(root, w / 2, h / 2, radius ? 1 : 1 / Math.max(2 * root.r / w, 2 * root.r / h));\n return nodes;\n }\n pack.size = function(_) {\n if (!arguments.length) return size;\n size = _;\n return pack;\n };\n pack.radius = function(_) {\n if (!arguments.length) return radius;\n radius = _ == null || typeof _ === \"function\" ? _ : +_;\n return pack;\n };\n pack.padding = function(_) {\n if (!arguments.length) return padding;\n padding = +_;\n return pack;\n };\n return d3_layout_hierarchyRebind(pack, hierarchy);\n };\n function d3_layout_packSort(a, b) {\n return a.value - b.value;\n }\n function d3_layout_packInsert(a, b) {\n var c = a._pack_next;\n a._pack_next = b;\n b._pack_prev = a;\n b._pack_next = c;\n c._pack_prev = b;\n }\n function d3_layout_packSplice(a, b) {\n a._pack_next = b;\n b._pack_prev = a;\n }\n function d3_layout_packIntersects(a, b) {\n var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;\n return 0.999 * dr * dr > dx * dx + dy * dy;\n }\n function d3_layout_packSiblings(node) {\n if (!(nodes = node.children) || !(n = nodes.length)) return;\n var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;\n function bound(node2) {\n xMin = Math.min(node2.x - node2.r, xMin);\n xMax = Math.max(node2.x + node2.r, xMax);\n yMin = Math.min(node2.y - node2.r, yMin);\n yMax = Math.max(node2.y + node2.r, yMax);\n }\n nodes.forEach(d3_layout_packLink);\n a = nodes[0];\n a.x = -a.r;\n a.y = 0;\n bound(a);\n if (n > 1) {\n b = nodes[1];\n b.x = b.r;\n b.y = 0;\n bound(b);\n if (n > 2) {\n c = nodes[2];\n d3_layout_packPlace(a, b, c);\n bound(c);\n d3_layout_packInsert(a, c);\n a._pack_prev = c;\n d3_layout_packInsert(c, b);\n b = a._pack_next;\n for (i = 3; i < n; i++) {\n d3_layout_packPlace(a, b, c = nodes[i]);\n var isect = 0, s1 = 1, s2 = 1;\n for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {\n if (d3_layout_packIntersects(j, c)) {\n isect = 1;\n break;\n }\n }\n if (isect == 1) {\n for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {\n if (d3_layout_packIntersects(k, c)) {\n break;\n }\n }\n }\n if (isect) {\n if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j);\n else d3_layout_packSplice(a = k, b);\n i--;\n } else {\n d3_layout_packInsert(a, c);\n b = c;\n bound(c);\n }\n }\n }\n }\n var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;\n for (i = 0; i < n; i++) {\n c = nodes[i];\n c.x -= cx;\n c.y -= cy;\n cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));\n }\n node.r = cr;\n nodes.forEach(d3_layout_packUnlink);\n }\n function d3_layout_packLink(node) {\n node._pack_next = node._pack_prev = node;\n }\n function d3_layout_packUnlink(node) {\n delete node._pack_next;\n delete node._pack_prev;\n }\n function d3_layout_packTransform(node, x, y, k) {\n var children = node.children;\n node.x = x += k * node.x;\n node.y = y += k * node.y;\n node.r *= k;\n if (children) {\n var i = -1, n = children.length;\n while (++i < n) d3_layout_packTransform(children[i], x, y, k);\n }\n }\n function d3_layout_packPlace(a, b, c) {\n var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;\n if (db && (dx || dy)) {\n var da = b.r + c.r, dc = dx * dx + dy * dy;\n da *= da;\n db *= db;\n var x = 0.5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);\n c.x = a.x + x * dx + y * dy;\n c.y = a.y + x * dy - y * dx;\n } else {\n c.x = a.x + db;\n c.y = a.y;\n }\n }\n d3.layout.tree = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [1, 1], nodeSize = null;\n function tree(d, i) {\n var nodes = hierarchy.call(this, d, i), root0 = nodes[0], root1 = wrapTree(root0);\n d3_layout_hierarchyVisitAfter(root1, firstWalk), root1.parent.m = -root1.z;\n d3_layout_hierarchyVisitBefore(root1, secondWalk);\n if (nodeSize) d3_layout_hierarchyVisitBefore(root0, sizeNode);\n else {\n var left = root0, right = root0, bottom = root0;\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var tx = separation(left, right) / 2 - left.x, kx = size[0] / (right.x + separation(right, left) / 2 + tx), ky = size[1] / (bottom.depth || 1);\n d3_layout_hierarchyVisitBefore(root0, function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return nodes;\n }\n function wrapTree(root0) {\n var root1 = {\n A: null,\n children: [root0]\n }, queue = [root1], node1;\n while ((node1 = queue.pop()) != null) {\n for (var children = node1.children, child, i = 0, n = children.length; i < n; ++i) {\n queue.push((children[i] = child = {\n _: children[i],\n parent: node1,\n children: (child = children[i].children) && child.slice() || [],\n A: null,\n a: null,\n z: 0,\n m: 0,\n c: 0,\n s: 0,\n t: null,\n i\n }).a = child);\n }\n }\n return root1.children[0];\n }\n function firstWalk(v) {\n var children = v.children, siblings = v.parent.children, w = v.i ? siblings[v.i - 1] : null;\n if (children.length) {\n d3_layout_treeShift(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {\n vom = d3_layout_treeLeft(vom);\n vop = d3_layout_treeRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n d3_layout_treeMove(d3_layout_treeAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !d3_layout_treeRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !d3_layout_treeLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= size[0];\n node.y = node.depth * size[1];\n }\n tree.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return tree;\n };\n tree.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null ? sizeNode : null;\n return tree;\n };\n tree.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) == null ? null : sizeNode;\n return tree;\n };\n return d3_layout_hierarchyRebind(tree, hierarchy);\n };\n function d3_layout_treeSeparation(a, b) {\n return a.parent == b.parent ? 1 : 2;\n }\n function d3_layout_treeLeft(v) {\n var children = v.children;\n return children.length ? children[0] : v.t;\n }\n function d3_layout_treeRight(v) {\n var children = v.children, n;\n return (n = children.length) ? children[n - 1] : v.t;\n }\n function d3_layout_treeMove(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function d3_layout_treeShift(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function d3_layout_treeAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n d3.layout.cluster = function() {\n var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [1, 1], nodeSize = false;\n function cluster(d, i) {\n var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;\n d3_layout_hierarchyVisitAfter(root, function(node) {\n var children = node.children;\n if (children && children.length) {\n node.x = d3_layout_clusterX(children);\n node.y = d3_layout_clusterY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n d3_layout_hierarchyVisitAfter(root, nodeSize ? function(node) {\n node.x = (node.x - root.x) * size[0];\n node.y = (root.y - node.y) * size[1];\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * size[0];\n node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];\n });\n return nodes;\n }\n cluster.separation = function(x) {\n if (!arguments.length) return separation;\n separation = x;\n return cluster;\n };\n cluster.size = function(x) {\n if (!arguments.length) return nodeSize ? null : size;\n nodeSize = (size = x) == null;\n return cluster;\n };\n cluster.nodeSize = function(x) {\n if (!arguments.length) return nodeSize ? size : null;\n nodeSize = (size = x) != null;\n return cluster;\n };\n return d3_layout_hierarchyRebind(cluster, hierarchy);\n };\n function d3_layout_clusterY(children) {\n return 1 + d3.max(children, function(child) {\n return child.y;\n });\n }\n function d3_layout_clusterX(children) {\n return children.reduce(function(x, child) {\n return x + child.x;\n }, 0) / children.length;\n }\n function d3_layout_clusterLeft(node) {\n var children = node.children;\n return children && children.length ? d3_layout_clusterLeft(children[0]) : node;\n }\n function d3_layout_clusterRight(node) {\n var children = node.children, n;\n return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;\n }\n d3.layout.treemap = function() {\n var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [1, 1], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = \"squarify\", ratio = 0.5 * (1 + Math.sqrt(5));\n function scale(children, k) {\n var i = -1, n = children.length, child, area;\n while (++i < n) {\n area = (child = children[i]).value * (k < 0 ? 0 : k);\n child.area = isNaN(area) || area <= 0 ? 0 : area;\n }\n }\n function squarify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === \"slice\" ? rect.dx : mode === \"dice\" ? rect.dy : mode === \"slice-dice\" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while ((n = remaining.length) > 0) {\n row.push(child = remaining[n - 1]);\n row.area += child.area;\n if (mode !== \"squarify\" || (score = worst(row, u)) <= best) {\n remaining.pop();\n best = score;\n } else {\n row.area -= row.pop().area;\n position(row, u, rect, false);\n u = Math.min(rect.dx, rect.dy);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n if (row.length) {\n position(row, u, rect, true);\n row.length = row.area = 0;\n }\n children.forEach(squarify);\n }\n }\n function stickify(node) {\n var children = node.children;\n if (children && children.length) {\n var rect = pad(node), remaining = children.slice(), child, row = [];\n scale(remaining, rect.dx * rect.dy / node.value);\n row.area = 0;\n while (child = remaining.pop()) {\n row.push(child);\n row.area += child.area;\n if (child.z != null) {\n position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);\n row.length = row.area = 0;\n }\n }\n children.forEach(stickify);\n }\n }\n function worst(row, u) {\n var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;\n while (++i < n) {\n if (!(r = row[i].area)) continue;\n if (r < rmin) rmin = r;\n if (r > rmax) rmax = r;\n }\n s *= s;\n u *= u;\n return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;\n }\n function position(row, u, rect, flush) {\n var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;\n if (u == rect.dx) {\n if (flush || v > rect.dy) v = rect.dy;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dy = v;\n x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);\n }\n o.z = true;\n o.dx += rect.x + rect.dx - x;\n rect.y += v;\n rect.dy -= v;\n } else {\n if (flush || v > rect.dx) v = rect.dx;\n while (++i < n) {\n o = row[i];\n o.x = x;\n o.y = y;\n o.dx = v;\n y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);\n }\n o.z = false;\n o.dy += rect.y + rect.dy - y;\n rect.x += v;\n rect.dx -= v;\n }\n }\n function treemap(d) {\n var nodes = stickies || hierarchy(d), root = nodes[0];\n root.x = root.y = 0;\n if (root.value) root.dx = size[0], root.dy = size[1];\n else root.dx = root.dy = 0;\n if (stickies) hierarchy.revalue(root);\n scale([root], root.dx * root.dy / root.value);\n (stickies ? stickify : squarify)(root);\n if (sticky) stickies = nodes;\n return nodes;\n }\n treemap.size = function(x) {\n if (!arguments.length) return size;\n size = x;\n return treemap;\n };\n treemap.padding = function(x) {\n if (!arguments.length) return padding;\n function padFunction(node) {\n var p = x.call(treemap, node, node.depth);\n return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === \"number\" ? [p, p, p, p] : p);\n }\n function padConstant(node) {\n return d3_layout_treemapPad(node, x);\n }\n var type;\n pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === \"function\" ? padFunction : type === \"number\" ? (x = [x, x, x, x], padConstant) : padConstant;\n return treemap;\n };\n treemap.round = function(x) {\n if (!arguments.length) return round != Number;\n round = x ? Math.round : Number;\n return treemap;\n };\n treemap.sticky = function(x) {\n if (!arguments.length) return sticky;\n sticky = x;\n stickies = null;\n return treemap;\n };\n treemap.ratio = function(x) {\n if (!arguments.length) return ratio;\n ratio = x;\n return treemap;\n };\n treemap.mode = function(x) {\n if (!arguments.length) return mode;\n mode = x + \"\";\n return treemap;\n };\n return d3_layout_hierarchyRebind(treemap, hierarchy);\n };\n function d3_layout_treemapPadNull(node) {\n return {\n x: node.x,\n y: node.y,\n dx: node.dx,\n dy: node.dy\n };\n }\n function d3_layout_treemapPad(node, padding) {\n var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];\n if (dx < 0) {\n x += dx / 2;\n dx = 0;\n }\n if (dy < 0) {\n y += dy / 2;\n dy = 0;\n }\n return {\n x,\n y,\n dx,\n dy\n };\n }\n d3.random = {\n normal: function(mu, sigma) {\n var n = arguments.length;\n if (n < 2) sigma = 1;\n if (n < 1) mu = 0;\n return function() {\n var x, y, r;\n do {\n x = Math.random() * 2 - 1;\n y = Math.random() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n return mu + sigma * x * Math.sqrt(-2 * Math.log(r) / r);\n };\n },\n logNormal: function() {\n var random = d3.random.normal.apply(d3, arguments);\n return function() {\n return Math.exp(random());\n };\n },\n bates: function(m) {\n var random = d3.random.irwinHall(m);\n return function() {\n return random() / m;\n };\n },\n irwinHall: function(m) {\n return function() {\n for (var s = 0, j = 0; j < m; j++) s += Math.random();\n return s;\n };\n }\n };\n d3.scale = {};\n function d3_scaleExtent(domain) {\n var start = domain[0], stop = domain[domain.length - 1];\n return start < stop ? [start, stop] : [stop, start];\n }\n function d3_scaleRange(scale) {\n return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());\n }\n function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {\n var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);\n return function(x) {\n return i(u(x));\n };\n }\n function d3_scale_nice(domain, nice) {\n var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;\n if (x1 < x0) {\n dx = i0, i0 = i1, i1 = dx;\n dx = x0, x0 = x1, x1 = dx;\n }\n domain[i0] = nice.floor(x0);\n domain[i1] = nice.ceil(x1);\n return domain;\n }\n function d3_scale_niceStep(step) {\n return step ? {\n floor: function(x) {\n return Math.floor(x / step) * step;\n },\n ceil: function(x) {\n return Math.ceil(x / step) * step;\n }\n } : d3_scale_niceIdentity;\n }\n var d3_scale_niceIdentity = {\n floor: d3_identity,\n ceil: d3_identity\n };\n function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {\n var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;\n if (domain[k] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n while (++j <= k) {\n u.push(uninterpolate(domain[j - 1], domain[j]));\n i.push(interpolate(range[j - 1], range[j]));\n }\n return function(x) {\n var j2 = d3.bisect(domain, x, 1, k) - 1;\n return i[j2](u[j2](x));\n };\n }\n d3.scale.linear = function() {\n return d3_scale_linear([0, 1], [0, 1], d3_interpolate, false);\n };\n function d3_scale_linear(domain, range, interpolate, clamp) {\n var output, input;\n function rescale() {\n var linear2 = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;\n output = linear2(domain, range, uninterpolate, interpolate);\n input = linear2(range, domain, uninterpolate, d3_interpolate);\n return scale;\n }\n function scale(x) {\n return output(x);\n }\n scale.invert = function(y) {\n return input(y);\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(Number);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.rangeRound = function(x) {\n return scale.range(x).interpolate(d3_interpolateRound);\n };\n scale.clamp = function(x) {\n if (!arguments.length) return clamp;\n clamp = x;\n return rescale();\n };\n scale.interpolate = function(x) {\n if (!arguments.length) return interpolate;\n interpolate = x;\n return rescale();\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n d3_scale_linearNice(domain, m);\n return rescale();\n };\n scale.copy = function() {\n return d3_scale_linear(domain, range, interpolate, clamp);\n };\n return rescale();\n }\n function d3_scale_linearRebind(scale, linear2) {\n return d3.rebind(scale, linear2, \"range\", \"rangeRound\", \"interpolate\", \"clamp\");\n }\n function d3_scale_linearNice(domain, m) {\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2]));\n return domain;\n }\n function d3_scale_linearTickRange(domain, m) {\n if (m == null) m = 10;\n var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;\n if (err <= 0.15) step *= 10;\n else if (err <= 0.35) step *= 5;\n else if (err <= 0.75) step *= 2;\n extent[0] = Math.ceil(extent[0] / step) * step;\n extent[1] = Math.floor(extent[1] / step) * step + step * 0.5;\n extent[2] = step;\n return extent;\n }\n function d3_scale_linearTicks(domain, m) {\n return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));\n }\n var d3_scale_linearFormatSignificant = {\n s: 1,\n g: 1,\n p: 1,\n r: 1,\n e: 1\n };\n function d3_scale_linearPrecision(value) {\n return -Math.floor(Math.log(value) / Math.LN10 + 0.01);\n }\n function d3_scale_linearFormatPrecision(type, range) {\n var p = d3_scale_linearPrecision(range[2]);\n return type in d3_scale_linearFormatSignificant ? Math.abs(p - d3_scale_linearPrecision(Math.max(abs(range[0]), abs(range[1])))) + +(type !== \"e\") : p - (type === \"%\") * 2;\n }\n d3.scale.log = function() {\n return d3_scale_log(d3.scale.linear().domain([0, 1]), 10, true, [1, 10]);\n };\n function d3_scale_log(linear2, base, positive, domain) {\n function log(x) {\n return (positive ? Math.log(x < 0 ? 0 : x) : -Math.log(x > 0 ? 0 : -x)) / Math.log(base);\n }\n function pow(x) {\n return positive ? Math.pow(base, x) : -Math.pow(base, -x);\n }\n function scale(x) {\n return linear2(log(x));\n }\n scale.invert = function(x) {\n return pow(linear2.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n positive = x[0] >= 0;\n linear2.domain((domain = x.map(Number)).map(log));\n return scale;\n };\n scale.base = function(_) {\n if (!arguments.length) return base;\n base = +_;\n linear2.domain(domain.map(log));\n return scale;\n };\n scale.nice = function() {\n var niced = d3_scale_nice(domain.map(log), positive ? Math : d3_scale_logNiceNegative);\n linear2.domain(niced);\n domain = niced.map(pow);\n return scale;\n };\n scale.ticks = function() {\n var extent = d3_scaleExtent(domain), ticks = [], u = extent[0], v = extent[1], i = Math.floor(log(u)), j = Math.ceil(log(v)), n = base % 1 ? 2 : base;\n if (isFinite(j - i)) {\n if (positive) {\n for (; i < j; i++) for (var k = 1; k < n; k++) ticks.push(pow(i) * k);\n ticks.push(pow(i));\n } else {\n ticks.push(pow(i));\n for (; i++ < j; ) for (var k = n - 1; k > 0; k--) ticks.push(pow(i) * k);\n }\n for (i = 0; ticks[i] < u; i++) {\n }\n for (j = ticks.length; ticks[j - 1] > v; j--) {\n }\n ticks = ticks.slice(i, j);\n }\n return ticks;\n };\n scale.copy = function() {\n return d3_scale_log(linear2.copy(), base, positive, domain);\n };\n return d3_scale_linearRebind(scale, linear2);\n }\n var d3_scale_logNiceNegative = {\n floor: function(x) {\n return -Math.ceil(-x);\n },\n ceil: function(x) {\n return -Math.floor(-x);\n }\n };\n d3.scale.pow = function() {\n return d3_scale_pow(d3.scale.linear(), 1, [0, 1]);\n };\n function d3_scale_pow(linear2, exponent, domain) {\n var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);\n function scale(x) {\n return linear2(powp(x));\n }\n scale.invert = function(x) {\n return powb(linear2.invert(x));\n };\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n linear2.domain((domain = x.map(Number)).map(powp));\n return scale;\n };\n scale.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n scale.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n scale.nice = function(m) {\n return scale.domain(d3_scale_linearNice(domain, m));\n };\n scale.exponent = function(x) {\n if (!arguments.length) return exponent;\n powp = d3_scale_powPow(exponent = x);\n powb = d3_scale_powPow(1 / exponent);\n linear2.domain(domain.map(powp));\n return scale;\n };\n scale.copy = function() {\n return d3_scale_pow(linear2.copy(), exponent, domain);\n };\n return d3_scale_linearRebind(scale, linear2);\n }\n function d3_scale_powPow(e) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);\n };\n }\n d3.scale.sqrt = function() {\n return d3.scale.pow().exponent(0.5);\n };\n d3.scale.ordinal = function() {\n return d3_scale_ordinal([], {\n t: \"range\",\n a: [[]]\n });\n };\n function d3_scale_ordinal(domain, ranger) {\n var index, range, rangeBand;\n function scale(x) {\n return range[((index.get(x) || (ranger.t === \"range\" ? index.set(x, domain.push(x)) : NaN)) - 1) % range.length];\n }\n function steps(start, step) {\n return d3.range(domain.length).map(function(i) {\n return start + step * i;\n });\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = [];\n index = new d3_Map();\n var i = -1, n = x.length, xi;\n while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));\n return scale[ranger.t].apply(scale, ranger.a);\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n rangeBand = 0;\n ranger = {\n t: \"range\",\n a: arguments\n };\n return scale;\n };\n scale.rangePoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = (start + stop) / 2, 0) : (stop - start) / (domain.length - 1 + padding);\n range = steps(start + step * padding / 2, step);\n rangeBand = 0;\n ranger = {\n t: \"rangePoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundPoints = function(x, padding) {\n if (arguments.length < 2) padding = 0;\n var start = x[0], stop = x[1], step = domain.length < 2 ? (start = stop = Math.round((start + stop) / 2), 0) : (stop - start) / (domain.length - 1 + padding) | 0;\n range = steps(start + Math.round(step * padding / 2 + (stop - start - (domain.length - 1 + padding) * step) / 2), step);\n rangeBand = 0;\n ranger = {\n t: \"rangeRoundPoints\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);\n range = steps(start + step * outerPadding, step);\n if (reverse) range.reverse();\n rangeBand = step * (1 - padding);\n ranger = {\n t: \"rangeBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeRoundBands = function(x, padding, outerPadding) {\n if (arguments.length < 2) padding = 0;\n if (arguments.length < 3) outerPadding = padding;\n var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding));\n range = steps(start + Math.round((stop - start - (domain.length - padding) * step) / 2), step);\n if (reverse) range.reverse();\n rangeBand = Math.round(step * (1 - padding));\n ranger = {\n t: \"rangeRoundBands\",\n a: arguments\n };\n return scale;\n };\n scale.rangeBand = function() {\n return rangeBand;\n };\n scale.rangeExtent = function() {\n return d3_scaleExtent(ranger.a[0]);\n };\n scale.copy = function() {\n return d3_scale_ordinal(domain, ranger);\n };\n return scale.domain(domain);\n }\n d3.scale.category10 = function() {\n return d3.scale.ordinal().range(d3_category10);\n };\n d3.scale.category20 = function() {\n return d3.scale.ordinal().range(d3_category20);\n };\n d3.scale.category20b = function() {\n return d3.scale.ordinal().range(d3_category20b);\n };\n d3.scale.category20c = function() {\n return d3.scale.ordinal().range(d3_category20c);\n };\n var d3_category10 = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(d3_rgbString);\n var d3_category20 = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(d3_rgbString);\n var d3_category20b = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(d3_rgbString);\n var d3_category20c = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(d3_rgbString);\n d3.scale.quantile = function() {\n return d3_scale_quantile([], []);\n };\n function d3_scale_quantile(domain, range) {\n var thresholds;\n function rescale() {\n var k = 0, q = range.length;\n thresholds = [];\n while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);\n return scale;\n }\n function scale(x) {\n if (!isNaN(x = +x)) return range[d3.bisect(thresholds, x)];\n }\n scale.domain = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(d3_number).filter(d3_numeric).sort(d3_ascending);\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.quantiles = function() {\n return thresholds;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return y < 0 ? [NaN, NaN] : [y > 0 ? thresholds[y - 1] : domain[0], y < thresholds.length ? thresholds[y] : domain[domain.length - 1]];\n };\n scale.copy = function() {\n return d3_scale_quantile(domain, range);\n };\n return rescale();\n }\n d3.scale.quantize = function() {\n return d3_scale_quantize(0, 1, [0, 1]);\n };\n function d3_scale_quantize(x0, x1, range) {\n var kx, i;\n function scale(x) {\n return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];\n }\n function rescale() {\n kx = range.length / (x1 - x0);\n i = range.length - 1;\n return scale;\n }\n scale.domain = function(x) {\n if (!arguments.length) return [x0, x1];\n x0 = +x[0];\n x1 = +x[x.length - 1];\n return rescale();\n };\n scale.range = function(x) {\n if (!arguments.length) return range;\n range = x;\n return rescale();\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n y = y < 0 ? NaN : y / kx + x0;\n return [y, y + 1 / kx];\n };\n scale.copy = function() {\n return d3_scale_quantize(x0, x1, range);\n };\n return rescale();\n }\n d3.scale.threshold = function() {\n return d3_scale_threshold([0.5], [0, 1]);\n };\n function d3_scale_threshold(domain, range) {\n function scale(x) {\n if (x <= x) return range[d3.bisect(domain, x)];\n }\n scale.domain = function(_) {\n if (!arguments.length) return domain;\n domain = _;\n return scale;\n };\n scale.range = function(_) {\n if (!arguments.length) return range;\n range = _;\n return scale;\n };\n scale.invertExtent = function(y) {\n y = range.indexOf(y);\n return [domain[y - 1], domain[y]];\n };\n scale.copy = function() {\n return d3_scale_threshold(domain, range);\n };\n return scale;\n }\n d3.scale.identity = function() {\n return d3_scale_identity([0, 1]);\n };\n function d3_scale_identity(domain) {\n function identity2(x) {\n return +x;\n }\n identity2.invert = identity2;\n identity2.domain = identity2.range = function(x) {\n if (!arguments.length) return domain;\n domain = x.map(identity2);\n return identity2;\n };\n identity2.ticks = function(m) {\n return d3_scale_linearTicks(domain, m);\n };\n identity2.tickFormat = function(m, format) {\n return d3_scale_linearTickFormat(domain, m, format);\n };\n identity2.copy = function() {\n return d3_scale_identity(domain);\n };\n return identity2;\n }\n d3.svg = {};\n function d3_zero() {\n return 0;\n }\n d3.svg.arc = function() {\n var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, cornerRadius = d3_zero, padRadius = d3_svg_arcAuto, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle, padAngle = d3_svg_arcPadAngle;\n function arc() {\n var r0 = Math.max(0, +innerRadius.apply(this, arguments)), r1 = Math.max(0, +outerRadius.apply(this, arguments)), a0 = startAngle.apply(this, arguments) - half\\u03C0, a1 = endAngle.apply(this, arguments) - half\\u03C0, da = Math.abs(a1 - a0), cw = a0 > a1 ? 0 : 1;\n if (r1 < r0) rc = r1, r1 = r0, r0 = rc;\n if (da >= \\u03C4\\u03B5) return circleSegment(r1, cw) + (r0 ? circleSegment(r0, 1 - cw) : \"\") + \"Z\";\n var rc, cr, rp, ap, p0 = 0, p1 = 0, x0, y0, x1, y1, x2, y2, x3, y3, path = [];\n if (ap = (+padAngle.apply(this, arguments) || 0) / 2) {\n rp = padRadius === d3_svg_arcAuto ? Math.sqrt(r0 * r0 + r1 * r1) : +padRadius.apply(this, arguments);\n if (!cw) p1 *= -1;\n if (r1) p1 = d3_asin(rp / r1 * Math.sin(ap));\n if (r0) p0 = d3_asin(rp / r0 * Math.sin(ap));\n }\n if (r1) {\n x0 = r1 * Math.cos(a0 + p1);\n y0 = r1 * Math.sin(a0 + p1);\n x1 = r1 * Math.cos(a1 - p1);\n y1 = r1 * Math.sin(a1 - p1);\n var l1 = Math.abs(a1 - a0 - 2 * p1) <= \\u03C0 ? 0 : 1;\n if (p1 && d3_svg_arcSweep(x0, y0, x1, y1) === cw ^ l1) {\n var h1 = (a0 + a1) / 2;\n x0 = r1 * Math.cos(h1);\n y0 = r1 * Math.sin(h1);\n x1 = y1 = null;\n }\n } else {\n x0 = y0 = 0;\n }\n if (r0) {\n x2 = r0 * Math.cos(a1 - p0);\n y2 = r0 * Math.sin(a1 - p0);\n x3 = r0 * Math.cos(a0 + p0);\n y3 = r0 * Math.sin(a0 + p0);\n var l0 = Math.abs(a0 - a1 + 2 * p0) <= \\u03C0 ? 0 : 1;\n if (p0 && d3_svg_arcSweep(x2, y2, x3, y3) === 1 - cw ^ l0) {\n var h0 = (a0 + a1) / 2;\n x2 = r0 * Math.cos(h0);\n y2 = r0 * Math.sin(h0);\n x3 = y3 = null;\n }\n } else {\n x2 = y2 = 0;\n }\n if (da > \\u03B5 && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > 1e-3) {\n cr = r0 < r1 ^ cw ? 0 : 1;\n var rc1 = rc, rc0 = rc;\n if (da < \\u03C0) {\n var oc = x3 == null ? [x2, y2] : x1 == null ? [x0, y0] : d3_geom_polygonIntersect([x0, y0], [x3, y3], [x1, y1], [x2, y2]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = Math.min(rc, (r0 - lc) / (kc - 1));\n rc1 = Math.min(rc, (r1 - lc) / (kc + 1));\n }\n if (x1 != null) {\n var t30 = d3_svg_arcCornerTangents(x3 == null ? [x2, y2] : [x3, y3], [x0, y0], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([x1, y1], [x2, y2], r1, rc1, cw);\n if (rc === rc1) {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t30[1], \"A\", r1, \",\", r1, \" 0 \", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), \",\", cw, \" \", t12[1], \"A\", rc1, \",\", rc1, \" 0 0,\", cr, \" \", t12[0]);\n } else {\n path.push(\"M\", t30[0], \"A\", rc1, \",\", rc1, \" 0 1,\", cr, \" \", t12[0]);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n }\n if (x3 != null) {\n var t03 = d3_svg_arcCornerTangents([x0, y0], [x3, y3], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([x2, y2], x1 == null ? [x0, y0] : [x1, y1], r0, -rc0, cw);\n if (rc === rc0) {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t21[1], \"A\", r0, \",\", r0, \" 0 \", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), \",\", 1 - cw, \" \", t03[1], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n } else {\n path.push(\"L\", t21[0], \"A\", rc0, \",\", rc0, \" 0 0,\", cr, \" \", t03[0]);\n }\n } else {\n path.push(\"L\", x2, \",\", y2);\n }\n } else {\n path.push(\"M\", x0, \",\", y0);\n if (x1 != null) path.push(\"A\", r1, \",\", r1, \" 0 \", l1, \",\", cw, \" \", x1, \",\", y1);\n path.push(\"L\", x2, \",\", y2);\n if (x3 != null) path.push(\"A\", r0, \",\", r0, \" 0 \", l0, \",\", 1 - cw, \" \", x3, \",\", y3);\n }\n path.push(\"Z\");\n return path.join(\"\");\n }\n function circleSegment(r1, cw) {\n return \"M0,\" + r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + -r1 + \"A\" + r1 + \",\" + r1 + \" 0 1,\" + cw + \" 0,\" + r1;\n }\n arc.innerRadius = function(v) {\n if (!arguments.length) return innerRadius;\n innerRadius = d3_functor(v);\n return arc;\n };\n arc.outerRadius = function(v) {\n if (!arguments.length) return outerRadius;\n outerRadius = d3_functor(v);\n return arc;\n };\n arc.cornerRadius = function(v) {\n if (!arguments.length) return cornerRadius;\n cornerRadius = d3_functor(v);\n return arc;\n };\n arc.padRadius = function(v) {\n if (!arguments.length) return padRadius;\n padRadius = v == d3_svg_arcAuto ? d3_svg_arcAuto : d3_functor(v);\n return arc;\n };\n arc.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return arc;\n };\n arc.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return arc;\n };\n arc.padAngle = function(v) {\n if (!arguments.length) return padAngle;\n padAngle = d3_functor(v);\n return arc;\n };\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - half\\u03C0;\n return [Math.cos(a) * r, Math.sin(a) * r];\n };\n return arc;\n };\n var d3_svg_arcAuto = \"auto\";\n function d3_svg_arcInnerRadius(d) {\n return d.innerRadius;\n }\n function d3_svg_arcOuterRadius(d) {\n return d.outerRadius;\n }\n function d3_svg_arcStartAngle(d) {\n return d.startAngle;\n }\n function d3_svg_arcEndAngle(d) {\n return d.endAngle;\n }\n function d3_svg_arcPadAngle(d) {\n return d && d.padAngle;\n }\n function d3_svg_arcSweep(x0, y0, x1, y1) {\n return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1;\n }\n function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {\n var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D2 = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return [[cx0 - ox, cy0 - oy], [cx0 * r1 / r, cy0 * r1 / r]];\n }\n function d3_true() {\n return true;\n }\n function d3_svg_line(projection) {\n var x = d3_geom_pointX, y = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = 0.7;\n function line(data) {\n var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);\n function segment() {\n segments.push(\"M\", interpolate(projection(points), tension));\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points.push([+fx.call(this, d, i), +fy.call(this, d, i)]);\n } else if (points.length) {\n segment();\n points = [];\n }\n }\n if (points.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n line.x = function(_) {\n if (!arguments.length) return x;\n x = _;\n return line;\n };\n line.y = function(_) {\n if (!arguments.length) return y;\n y = _;\n return line;\n };\n line.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return line;\n };\n line.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _;\n else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n return line;\n };\n line.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return line;\n };\n return line;\n }\n d3.svg.line = function() {\n return d3_svg_line(d3_identity);\n };\n var d3_svg_lineInterpolators = d3.map({\n linear: d3_svg_lineLinear,\n \"linear-closed\": d3_svg_lineLinearClosed,\n step: d3_svg_lineStep,\n \"step-before\": d3_svg_lineStepBefore,\n \"step-after\": d3_svg_lineStepAfter,\n basis: d3_svg_lineBasis,\n \"basis-open\": d3_svg_lineBasisOpen,\n \"basis-closed\": d3_svg_lineBasisClosed,\n bundle: d3_svg_lineBundle,\n cardinal: d3_svg_lineCardinal,\n \"cardinal-open\": d3_svg_lineCardinalOpen,\n \"cardinal-closed\": d3_svg_lineCardinalClosed,\n monotone: d3_svg_lineMonotone\n });\n d3_svg_lineInterpolators.forEach(function(key, value) {\n value.key = key;\n value.closed = /-closed$/.test(key);\n });\n function d3_svg_lineLinear(points) {\n return points.length > 1 ? points.join(\"L\") : points + \"Z\";\n }\n function d3_svg_lineLinearClosed(points) {\n return points.join(\"L\") + \"Z\";\n }\n function d3_svg_lineStep(points) {\n var i = 0, n = points.length, p = points[0], path = [p[0], \",\", p[1]];\n while (++i < n) path.push(\"H\", (p[0] + (p = points[i])[0]) / 2, \"V\", p[1]);\n if (n > 1) path.push(\"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepBefore(points) {\n var i = 0, n = points.length, p = points[0], path = [p[0], \",\", p[1]];\n while (++i < n) path.push(\"V\", (p = points[i])[1], \"H\", p[0]);\n return path.join(\"\");\n }\n function d3_svg_lineStepAfter(points) {\n var i = 0, n = points.length, p = points[0], path = [p[0], \",\", p[1]];\n while (++i < n) path.push(\"H\", (p = points[i])[0], \"V\", p[1]);\n return path.join(\"\");\n }\n function d3_svg_lineCardinalOpen(points, tension) {\n return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineCardinalClosed(points, tension) {\n return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), points), d3_svg_lineCardinalTangents([points[points.length - 2]].concat(points, [points[1]]), tension));\n }\n function d3_svg_lineCardinal(points, tension) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));\n }\n function d3_svg_lineHermite(points, tangents) {\n if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {\n return d3_svg_lineLinear(points);\n }\n var quad = points.length != tangents.length, path = \"\", p0 = points[0], p = points[1], t02 = tangents[0], t = t02, pi = 1;\n if (quad) {\n path += \"Q\" + (p[0] - t02[0] * 2 / 3) + \",\" + (p[1] - t02[1] * 2 / 3) + \",\" + p[0] + \",\" + p[1];\n p0 = points[1];\n pi = 2;\n }\n if (tangents.length > 1) {\n t = tangents[1];\n p = points[pi];\n pi++;\n path += \"C\" + (p0[0] + t02[0]) + \",\" + (p0[1] + t02[1]) + \",\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n for (var i = 2; i < tangents.length; i++, pi++) {\n p = points[pi];\n t = tangents[i];\n path += \"S\" + (p[0] - t[0]) + \",\" + (p[1] - t[1]) + \",\" + p[0] + \",\" + p[1];\n }\n }\n if (quad) {\n var lp = points[pi];\n path += \"Q\" + (p[0] + t[0] * 2 / 3) + \",\" + (p[1] + t[1] * 2 / 3) + \",\" + lp[0] + \",\" + lp[1];\n }\n return path;\n }\n function d3_svg_lineCardinalTangents(points, tension) {\n var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;\n while (++i < n) {\n p0 = p1;\n p1 = p2;\n p2 = points[i];\n tangents.push([a * (p2[0] - p0[0]), a * (p2[1] - p0[1])]);\n }\n return tangents;\n }\n function d3_svg_lineBasis(points) {\n if (points.length < 3) return d3_svg_lineLinear(points);\n var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [x0, x0, x0, (pi = points[1])[0]], py = [y0, y0, y0, pi[1]], path = [x0, \",\", y0, \"L\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)];\n points.push(points[n - 1]);\n while (++i <= n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n points.pop();\n path.push(\"L\", pi);\n return path.join(\"\");\n }\n function d3_svg_lineBasisOpen(points) {\n if (points.length < 4) return d3_svg_lineLinear(points);\n var path = [], i = -1, n = points.length, pi, px = [0], py = [0];\n while (++i < 3) {\n pi = points[i];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + \",\" + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));\n --i;\n while (++i < n) {\n pi = points[i];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBasisClosed(points) {\n var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];\n while (++i < 4) {\n pi = points[i % n];\n px.push(pi[0]);\n py.push(pi[1]);\n }\n path = [d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py)];\n --i;\n while (++i < m) {\n pi = points[i % n];\n px.shift();\n px.push(pi[0]);\n py.shift();\n py.push(pi[1]);\n d3_svg_lineBasisBezier(path, px, py);\n }\n return path.join(\"\");\n }\n function d3_svg_lineBundle(points, tension) {\n var n = points.length - 1;\n if (n) {\n var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;\n while (++i <= n) {\n p = points[i];\n t = i / n;\n p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);\n p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);\n }\n }\n return d3_svg_lineBasis(points);\n }\n function d3_svg_lineDot4(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n var d3_svg_lineBasisBezier1 = [0, 2 / 3, 1 / 3, 0], d3_svg_lineBasisBezier2 = [0, 1 / 3, 2 / 3, 0], d3_svg_lineBasisBezier3 = [0, 1 / 6, 2 / 3, 1 / 6];\n function d3_svg_lineBasisBezier(path, x, y) {\n path.push(\"C\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), \",\", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));\n }\n function d3_svg_lineSlope(p0, p1) {\n return (p1[1] - p0[1]) / (p1[0] - p0[0]);\n }\n function d3_svg_lineFiniteDifferences(points) {\n var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);\n while (++i < j) {\n m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;\n }\n m[i] = d;\n return m;\n }\n function d3_svg_lineMonotoneTangents(points) {\n var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;\n while (++i < j) {\n d = d3_svg_lineSlope(points[i], points[i + 1]);\n if (abs(d) < \\u03B5) {\n m[i] = m[i + 1] = 0;\n } else {\n a = m[i] / d;\n b = m[i + 1] / d;\n s = a * a + b * b;\n if (s > 9) {\n s = d * 3 / Math.sqrt(s);\n m[i] = s * a;\n m[i + 1] = s * b;\n }\n }\n }\n i = -1;\n while (++i <= j) {\n s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));\n tangents.push([s || 0, m[i] * s || 0]);\n }\n return tangents;\n }\n function d3_svg_lineMonotone(points) {\n return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));\n }\n d3.svg.line.radial = function() {\n var line = d3_svg_line(d3_svg_lineRadial);\n line.radius = line.x, delete line.x;\n line.angle = line.y, delete line.y;\n return line;\n };\n function d3_svg_lineRadial(points) {\n var point, i = -1, n = points.length, r, a;\n while (++i < n) {\n point = points[i];\n r = point[0];\n a = point[1] - half\\u03C0;\n point[0] = r * Math.cos(a);\n point[1] = r * Math.sin(a);\n }\n return points;\n }\n function d3_svg_area(projection) {\n var x0 = d3_geom_pointX, x1 = d3_geom_pointX, y0 = 0, y1 = d3_geom_pointY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = \"L\", tension = 0.7;\n function area(data) {\n var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {\n return x;\n } : d3_functor(x1), fy1 = y0 === y1 ? function() {\n return y;\n } : d3_functor(y1), x, y;\n function segment() {\n segments.push(\"M\", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), \"Z\");\n }\n while (++i < n) {\n if (defined.call(this, d = data[i], i)) {\n points0.push([x = +fx0.call(this, d, i), y = +fy0.call(this, d, i)]);\n points1.push([+fx1.call(this, d, i), +fy1.call(this, d, i)]);\n } else if (points0.length) {\n segment();\n points0 = [];\n points1 = [];\n }\n }\n if (points0.length) segment();\n return segments.length ? segments.join(\"\") : null;\n }\n area.x = function(_) {\n if (!arguments.length) return x1;\n x0 = x1 = _;\n return area;\n };\n area.x0 = function(_) {\n if (!arguments.length) return x0;\n x0 = _;\n return area;\n };\n area.x1 = function(_) {\n if (!arguments.length) return x1;\n x1 = _;\n return area;\n };\n area.y = function(_) {\n if (!arguments.length) return y1;\n y0 = y1 = _;\n return area;\n };\n area.y0 = function(_) {\n if (!arguments.length) return y0;\n y0 = _;\n return area;\n };\n area.y1 = function(_) {\n if (!arguments.length) return y1;\n y1 = _;\n return area;\n };\n area.defined = function(_) {\n if (!arguments.length) return defined;\n defined = _;\n return area;\n };\n area.interpolate = function(_) {\n if (!arguments.length) return interpolateKey;\n if (typeof _ === \"function\") interpolateKey = interpolate = _;\n else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;\n interpolateReverse = interpolate.reverse || interpolate;\n L = interpolate.closed ? \"M\" : \"L\";\n return area;\n };\n area.tension = function(_) {\n if (!arguments.length) return tension;\n tension = _;\n return area;\n };\n return area;\n }\n d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;\n d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;\n d3.svg.area = function() {\n return d3_svg_area(d3_identity);\n };\n d3.svg.area.radial = function() {\n var area = d3_svg_area(d3_svg_lineRadial);\n area.radius = area.x, delete area.x;\n area.innerRadius = area.x0, delete area.x0;\n area.outerRadius = area.x1, delete area.x1;\n area.angle = area.y, delete area.y;\n area.startAngle = area.y0, delete area.y0;\n area.endAngle = area.y1, delete area.y1;\n return area;\n };\n function d3_source(d) {\n return d.source;\n }\n function d3_target(d) {\n return d.target;\n }\n d3.svg.chord = function() {\n var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;\n function chord(d, i) {\n var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);\n return \"M\" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + \"Z\";\n }\n function subgroup(self2, f, d, i) {\n var subgroup2 = f.call(self2, d, i), r = radius.call(self2, subgroup2, i), a0 = startAngle.call(self2, subgroup2, i) - half\\u03C0, a1 = endAngle.call(self2, subgroup2, i) - half\\u03C0;\n return {\n r,\n a0,\n a1,\n p0: [r * Math.cos(a0), r * Math.sin(a0)],\n p1: [r * Math.cos(a1), r * Math.sin(a1)]\n };\n }\n function equals(a, b) {\n return a.a0 == b.a0 && a.a1 == b.a1;\n }\n function arc(r, p, a) {\n return \"A\" + r + \",\" + r + \" 0 \" + +(a > \\u03C0) + \",1 \" + p;\n }\n function curve(r0, p0, r1, p1) {\n return \"Q 0,0 \" + p1;\n }\n chord.radius = function(v) {\n if (!arguments.length) return radius;\n radius = d3_functor(v);\n return chord;\n };\n chord.source = function(v) {\n if (!arguments.length) return source;\n source = d3_functor(v);\n return chord;\n };\n chord.target = function(v) {\n if (!arguments.length) return target;\n target = d3_functor(v);\n return chord;\n };\n chord.startAngle = function(v) {\n if (!arguments.length) return startAngle;\n startAngle = d3_functor(v);\n return chord;\n };\n chord.endAngle = function(v) {\n if (!arguments.length) return endAngle;\n endAngle = d3_functor(v);\n return chord;\n };\n return chord;\n };\n function d3_svg_chordRadius(d) {\n return d.radius;\n }\n d3.svg.diagonal = function() {\n var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;\n function diagonal(d, i) {\n var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [p0, {\n x: p0.x,\n y: m\n }, {\n x: p3.x,\n y: m\n }, p3];\n p = p.map(projection);\n return \"M\" + p[0] + \"C\" + p[1] + \" \" + p[2] + \" \" + p[3];\n }\n diagonal.source = function(x) {\n if (!arguments.length) return source;\n source = d3_functor(x);\n return diagonal;\n };\n diagonal.target = function(x) {\n if (!arguments.length) return target;\n target = d3_functor(x);\n return diagonal;\n };\n diagonal.projection = function(x) {\n if (!arguments.length) return projection;\n projection = x;\n return diagonal;\n };\n return diagonal;\n };\n function d3_svg_diagonalProjection(d) {\n return [d.x, d.y];\n }\n d3.svg.diagonal.radial = function() {\n var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;\n diagonal.projection = function(x) {\n return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;\n };\n return diagonal;\n };\n function d3_svg_diagonalRadialProjection(projection) {\n return function() {\n var d = projection.apply(this, arguments), r = d[0], a = d[1] - half\\u03C0;\n return [r * Math.cos(a), r * Math.sin(a)];\n };\n }\n d3.svg.symbol = function() {\n var type = d3_svg_symbolType, size = d3_svg_symbolSize;\n function symbol(d, i) {\n return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));\n }\n symbol.type = function(x) {\n if (!arguments.length) return type;\n type = d3_functor(x);\n return symbol;\n };\n symbol.size = function(x) {\n if (!arguments.length) return size;\n size = d3_functor(x);\n return symbol;\n };\n return symbol;\n };\n function d3_svg_symbolSize() {\n return 64;\n }\n function d3_svg_symbolType() {\n return \"circle\";\n }\n function d3_svg_symbolCircle(size) {\n var r = Math.sqrt(size / \\u03C0);\n return \"M0,\" + r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + -r + \"A\" + r + \",\" + r + \" 0 1,1 0,\" + r + \"Z\";\n }\n var d3_svg_symbols = d3.map({\n circle: d3_svg_symbolCircle,\n cross: function(size) {\n var r = Math.sqrt(size / 5) / 2;\n return \"M\" + -3 * r + \",\" + -r + \"H\" + -r + \"V\" + -3 * r + \"H\" + r + \"V\" + -r + \"H\" + 3 * r + \"V\" + r + \"H\" + r + \"V\" + 3 * r + \"H\" + -r + \"V\" + r + \"H\" + -3 * r + \"Z\";\n },\n diamond: function(size) {\n var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;\n return \"M0,\" + -ry + \"L\" + rx + \",0 0,\" + ry + \" \" + -rx + \",0Z\";\n },\n square: function(size) {\n var r = Math.sqrt(size) / 2;\n return \"M\" + -r + \",\" + -r + \"L\" + r + \",\" + -r + \" \" + r + \",\" + r + \" \" + -r + \",\" + r + \"Z\";\n },\n \"triangle-down\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + ry + \"L\" + rx + \",\" + -ry + \" \" + -rx + \",\" + -ry + \"Z\";\n },\n \"triangle-up\": function(size) {\n var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;\n return \"M0,\" + -ry + \"L\" + rx + \",\" + ry + \" \" + -rx + \",\" + ry + \"Z\";\n }\n });\n d3.svg.symbolTypes = d3_svg_symbols.keys();\n var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);\n d3_selectionPrototype.transition = function(name2) {\n var id = d3_transitionInheritId || ++d3_transitionId, ns = d3_transitionNamespace(name2), subgroups = [], subgroup, node, transition = d3_transitionInherit || {\n time: Date.now(),\n ease: d3_ease_cubicInOut,\n delay: 0,\n duration: 250\n };\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) d3_transitionNode(node, i, ns, id, transition);\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_selectionPrototype.interrupt = function(name2) {\n return this.each(name2 == null ? d3_selection_interrupt : d3_selection_interruptNS(d3_transitionNamespace(name2)));\n };\n var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace());\n function d3_selection_interruptNS(ns) {\n return function() {\n var lock, activeId, active;\n if ((lock = this[ns]) && (active = lock[activeId = lock.active])) {\n active.timer.c = null;\n active.timer.t = NaN;\n if (--lock.count) delete lock[activeId];\n else delete this[ns];\n lock.active += 0.5;\n active.event && active.event.interrupt.call(this, this.__data__, active.index);\n }\n };\n }\n function d3_transition(groups, ns, id) {\n d3_subclass(groups, d3_transitionPrototype);\n groups.namespace = ns;\n groups.id = id;\n return groups;\n }\n var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit;\n d3_transitionPrototype.call = d3_selectionPrototype.call;\n d3_transitionPrototype.empty = d3_selectionPrototype.empty;\n d3_transitionPrototype.node = d3_selectionPrototype.node;\n d3_transitionPrototype.size = d3_selectionPrototype.size;\n d3.transition = function(selection, name2) {\n return selection && selection.transition ? d3_transitionInheritId ? selection.transition(name2) : selection : d3.selection().transition(selection);\n };\n d3.transition.prototype = d3_transitionPrototype;\n d3_transitionPrototype.select = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnode, node;\n selector = d3_selection_selector(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i, j))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n d3_transitionNode(subnode, i, ns, id, node[ns][id]);\n subgroup.push(subnode);\n } else {\n subgroup.push(null);\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.selectAll = function(selector) {\n var id = this.id, ns = this.namespace, subgroups = [], subgroup, subnodes, node, subnode, transition;\n selector = d3_selection_selectorAll(selector);\n for (var j = -1, m = this.length; ++j < m; ) {\n for (var group = this[j], i = -1, n = group.length; ++i < n; ) {\n if (node = group[i]) {\n transition = node[ns][id];\n subnodes = selector.call(node, node.__data__, i, j);\n subgroups.push(subgroup = []);\n for (var k = -1, o = subnodes.length; ++k < o; ) {\n if (subnode = subnodes[k]) d3_transitionNode(subnode, k, ns, id, transition);\n subgroup.push(subnode);\n }\n }\n }\n }\n return d3_transition(subgroups, ns, id);\n };\n d3_transitionPrototype.filter = function(filter) {\n var subgroups = [], subgroup, group, node;\n if (typeof filter !== \"function\") filter = d3_selection_filter(filter);\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if ((node = group[i]) && filter.call(node, node.__data__, i, j)) {\n subgroup.push(node);\n }\n }\n }\n return d3_transition(subgroups, this.namespace, this.id);\n };\n d3_transitionPrototype.tween = function(name2, tween) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) return this.node()[ns][id].tween.get(name2);\n return d3_selection_each(this, tween == null ? function(node) {\n node[ns][id].tween.remove(name2);\n } : function(node) {\n node[ns][id].tween.set(name2, tween);\n });\n };\n function d3_transition_tween(groups, name2, value, tween) {\n var id = groups.id, ns = groups.namespace;\n return d3_selection_each(groups, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].tween.set(name2, tween(value.call(node, node.__data__, i, j)));\n } : (value = tween(value), function(node) {\n node[ns][id].tween.set(name2, value);\n }));\n }\n d3_transitionPrototype.attr = function(nameNS, value) {\n if (arguments.length < 2) {\n for (value in nameNS) this.attr(value, nameNS[value]);\n return this;\n }\n var interpolate = nameNS == \"transform\" ? d3_interpolateTransform : d3_interpolate, name2 = d3.ns.qualify(nameNS);\n function attrNull() {\n this.removeAttribute(name2);\n }\n function attrNullNS() {\n this.removeAttributeNS(name2.space, name2.local);\n }\n function attrTween(b) {\n return b == null ? attrNull : (b += \"\", function() {\n var a = this.getAttribute(name2), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttribute(name2, i(t));\n });\n });\n }\n function attrTweenNS(b) {\n return b == null ? attrNullNS : (b += \"\", function() {\n var a = this.getAttributeNS(name2.space, name2.local), i;\n return a !== b && (i = interpolate(a, b), function(t) {\n this.setAttributeNS(name2.space, name2.local, i(t));\n });\n });\n }\n return d3_transition_tween(this, \"attr.\" + nameNS, value, name2.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.attrTween = function(nameNS, tween) {\n var name2 = d3.ns.qualify(nameNS);\n function attrTween(d, i) {\n var f = tween.call(this, d, i, this.getAttribute(name2));\n return f && function(t) {\n this.setAttribute(name2, f(t));\n };\n }\n function attrTweenNS(d, i) {\n var f = tween.call(this, d, i, this.getAttributeNS(name2.space, name2.local));\n return f && function(t) {\n this.setAttributeNS(name2.space, name2.local, f(t));\n };\n }\n return this.tween(\"attr.\" + nameNS, name2.local ? attrTweenNS : attrTween);\n };\n d3_transitionPrototype.style = function(name2, value, priority) {\n var n = arguments.length;\n if (n < 3) {\n if (typeof name2 !== \"string\") {\n if (n < 2) value = \"\";\n for (priority in name2) this.style(priority, name2[priority], value);\n return this;\n }\n priority = \"\";\n }\n function styleNull() {\n this.style.removeProperty(name2);\n }\n function styleString(b) {\n return b == null ? styleNull : (b += \"\", function() {\n var a = d3_window(this).getComputedStyle(this, null).getPropertyValue(name2), i;\n return a !== b && (i = d3_interpolate(a, b), function(t) {\n this.style.setProperty(name2, i(t), priority);\n });\n });\n }\n return d3_transition_tween(this, \"style.\" + name2, value, styleString);\n };\n d3_transitionPrototype.styleTween = function(name2, tween, priority) {\n if (arguments.length < 3) priority = \"\";\n function styleTween(d, i) {\n var f = tween.call(this, d, i, d3_window(this).getComputedStyle(this, null).getPropertyValue(name2));\n return f && function(t) {\n this.style.setProperty(name2, f(t), priority);\n };\n }\n return this.tween(\"style.\" + name2, styleTween);\n };\n d3_transitionPrototype.text = function(value) {\n return d3_transition_tween(this, \"text\", value, d3_transition_text);\n };\n function d3_transition_text(b) {\n if (b == null) b = \"\";\n return function() {\n this.textContent = b;\n };\n }\n d3_transitionPrototype.remove = function() {\n var ns = this.namespace;\n return this.each(\"end.transition\", function() {\n var p;\n if (this[ns].count < 2 && (p = this.parentNode)) p.removeChild(this);\n });\n };\n d3_transitionPrototype.ease = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].ease;\n if (typeof value !== \"function\") value = d3.ease.apply(d3, arguments);\n return d3_selection_each(this, function(node) {\n node[ns][id].ease = value;\n });\n };\n d3_transitionPrototype.delay = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].delay;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].delay = +value.call(node, node.__data__, i, j);\n } : (value = +value, function(node) {\n node[ns][id].delay = value;\n }));\n };\n d3_transitionPrototype.duration = function(value) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 1) return this.node()[ns][id].duration;\n return d3_selection_each(this, typeof value === \"function\" ? function(node, i, j) {\n node[ns][id].duration = Math.max(1, value.call(node, node.__data__, i, j));\n } : (value = Math.max(1, value), function(node) {\n node[ns][id].duration = value;\n }));\n };\n d3_transitionPrototype.each = function(type, listener) {\n var id = this.id, ns = this.namespace;\n if (arguments.length < 2) {\n var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;\n try {\n d3_transitionInheritId = id;\n d3_selection_each(this, function(node, i, j) {\n d3_transitionInherit = node[ns][id];\n type.call(node, node.__data__, i, j);\n });\n } finally {\n d3_transitionInherit = inherit;\n d3_transitionInheritId = inheritId;\n }\n } else {\n d3_selection_each(this, function(node) {\n var transition = node[ns][id];\n (transition.event || (transition.event = d3.dispatch(\"start\", \"end\", \"interrupt\"))).on(type, listener);\n });\n }\n return this;\n };\n d3_transitionPrototype.transition = function() {\n var id0 = this.id, id1 = ++d3_transitionId, ns = this.namespace, subgroups = [], subgroup, group, node, transition;\n for (var j = 0, m = this.length; j < m; j++) {\n subgroups.push(subgroup = []);\n for (var group = this[j], i = 0, n = group.length; i < n; i++) {\n if (node = group[i]) {\n transition = node[ns][id0];\n d3_transitionNode(node, i, ns, id1, {\n time: transition.time,\n ease: transition.ease,\n delay: transition.delay + transition.duration,\n duration: transition.duration\n });\n }\n subgroup.push(node);\n }\n }\n return d3_transition(subgroups, ns, id1);\n };\n function d3_transitionNamespace(name2) {\n return name2 == null ? \"__transition__\" : \"__transition_\" + name2 + \"__\";\n }\n function d3_transitionNode(node, i, ns, id, inherit) {\n var lock = node[ns] || (node[ns] = {\n active: 0,\n count: 0\n }), transition = lock[id], time, timer, duration, ease, tweens;\n function schedule(elapsed) {\n var delay = transition.delay;\n timer.t = delay + time;\n if (delay <= elapsed) return start(elapsed - delay);\n timer.c = start;\n }\n function start(elapsed) {\n var activeId = lock.active, active = lock[activeId];\n if (active) {\n active.timer.c = null;\n active.timer.t = NaN;\n --lock.count;\n delete lock[activeId];\n active.event && active.event.interrupt.call(node, node.__data__, active.index);\n }\n for (var cancelId in lock) {\n if (+cancelId < id) {\n var cancel = lock[cancelId];\n cancel.timer.c = null;\n cancel.timer.t = NaN;\n --lock.count;\n delete lock[cancelId];\n }\n }\n timer.c = tick;\n d3_timer(function() {\n if (timer.c && tick(elapsed || 1)) {\n timer.c = null;\n timer.t = NaN;\n }\n return 1;\n }, 0, time);\n lock.active = id;\n transition.event && transition.event.start.call(node, node.__data__, i);\n tweens = [];\n transition.tween.forEach(function(key, value) {\n if (value = value.call(node, node.__data__, i)) {\n tweens.push(value);\n }\n });\n ease = transition.ease;\n duration = transition.duration;\n }\n function tick(elapsed) {\n var t = elapsed / duration, e = ease(t), n = tweens.length;\n while (n > 0) {\n tweens[--n].call(node, e);\n }\n if (t >= 1) {\n transition.event && transition.event.end.call(node, node.__data__, i);\n if (--lock.count) delete lock[id];\n else delete node[ns];\n return 1;\n }\n }\n if (!transition) {\n time = inherit.time;\n timer = d3_timer(schedule, 0, time);\n transition = lock[id] = {\n tween: new d3_Map(),\n time,\n timer,\n delay: inherit.delay,\n duration: inherit.duration,\n ease: inherit.ease,\n index: i\n };\n inherit = null;\n ++lock.count;\n }\n }\n d3.svg.axis = function() {\n var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, innerTickSize = 6, outerTickSize = 6, tickPadding = 3, tickArguments_ = [10], tickValues = null, tickFormat_;\n function axis(g) {\n g.each(function() {\n var g2 = d3.select(this);\n var scale0 = this.__chart__ || scale, scale1 = this.__chart__ = scale.copy();\n var ticks = tickValues == null ? scale1.ticks ? scale1.ticks.apply(scale1, tickArguments_) : scale1.domain() : tickValues, tickFormat = tickFormat_ == null ? scale1.tickFormat ? scale1.tickFormat.apply(scale1, tickArguments_) : d3_identity : tickFormat_, tick = g2.selectAll(\".tick\").data(ticks, scale1), tickEnter = tick.enter().insert(\"g\", \".domain\").attr(\"class\", \"tick\").style(\"opacity\", \\u03B5), tickExit = d3.transition(tick.exit()).style(\"opacity\", \\u03B5).remove(), tickUpdate = d3.transition(tick.order()).style(\"opacity\", 1), tickSpacing = Math.max(innerTickSize, 0) + tickPadding, tickTransform;\n var range = d3_scaleRange(scale1), path = g2.selectAll(\".domain\").data([0]), pathUpdate = (path.enter().append(\"path\").attr(\"class\", \"domain\"), d3.transition(path));\n tickEnter.append(\"line\");\n tickEnter.append(\"text\");\n var lineEnter = tickEnter.select(\"line\"), lineUpdate = tickUpdate.select(\"line\"), text = tick.select(\"text\").text(tickFormat), textEnter = tickEnter.select(\"text\"), textUpdate = tickUpdate.select(\"text\"), sign = orient === \"top\" || orient === \"left\" ? -1 : 1, x1, x2, y1, y2;\n if (orient === \"bottom\" || orient === \"top\") {\n tickTransform = d3_svg_axisX, x1 = \"x\", y1 = \"y\", x2 = \"x2\", y2 = \"y2\";\n text.attr(\"dy\", sign < 0 ? \"0em\" : \".71em\").style(\"text-anchor\", \"middle\");\n pathUpdate.attr(\"d\", \"M\" + range[0] + \",\" + sign * outerTickSize + \"V0H\" + range[1] + \"V\" + sign * outerTickSize);\n } else {\n tickTransform = d3_svg_axisY, x1 = \"y\", y1 = \"x\", x2 = \"y2\", y2 = \"x2\";\n text.attr(\"dy\", \".32em\").style(\"text-anchor\", sign < 0 ? \"end\" : \"start\");\n pathUpdate.attr(\"d\", \"M\" + sign * outerTickSize + \",\" + range[0] + \"H0V\" + range[1] + \"H\" + sign * outerTickSize);\n }\n lineEnter.attr(y2, sign * innerTickSize);\n textEnter.attr(y1, sign * tickSpacing);\n lineUpdate.attr(x2, 0).attr(y2, sign * innerTickSize);\n textUpdate.attr(x1, 0).attr(y1, sign * tickSpacing);\n if (scale1.rangeBand) {\n var x = scale1, dx = x.rangeBand() / 2;\n scale0 = scale1 = function(d) {\n return x(d) + dx;\n };\n } else if (scale0.rangeBand) {\n scale0 = scale1;\n } else {\n tickExit.call(tickTransform, scale1, scale0);\n }\n tickEnter.call(tickTransform, scale0, scale1);\n tickUpdate.call(tickTransform, scale1, scale1);\n });\n }\n axis.scale = function(x) {\n if (!arguments.length) return scale;\n scale = x;\n return axis;\n };\n axis.orient = function(x) {\n if (!arguments.length) return orient;\n orient = x in d3_svg_axisOrients ? x + \"\" : d3_svg_axisDefaultOrient;\n return axis;\n };\n axis.ticks = function() {\n if (!arguments.length) return tickArguments_;\n tickArguments_ = d3_array(arguments);\n return axis;\n };\n axis.tickValues = function(x) {\n if (!arguments.length) return tickValues;\n tickValues = x;\n return axis;\n };\n axis.tickFormat = function(x) {\n if (!arguments.length) return tickFormat_;\n tickFormat_ = x;\n return axis;\n };\n axis.tickSize = function(x) {\n var n = arguments.length;\n if (!n) return innerTickSize;\n innerTickSize = +x;\n outerTickSize = +arguments[n - 1];\n return axis;\n };\n axis.innerTickSize = function(x) {\n if (!arguments.length) return innerTickSize;\n innerTickSize = +x;\n return axis;\n };\n axis.outerTickSize = function(x) {\n if (!arguments.length) return outerTickSize;\n outerTickSize = +x;\n return axis;\n };\n axis.tickPadding = function(x) {\n if (!arguments.length) return tickPadding;\n tickPadding = +x;\n return axis;\n };\n axis.tickSubdivide = function() {\n return arguments.length && axis;\n };\n return axis;\n };\n var d3_svg_axisDefaultOrient = \"bottom\", d3_svg_axisOrients = {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n };\n function d3_svg_axisX(selection, x0, x1) {\n selection.attr(\"transform\", function(d) {\n var v0 = x0(d);\n return \"translate(\" + (isFinite(v0) ? v0 : x1(d)) + \",0)\";\n });\n }\n function d3_svg_axisY(selection, y0, y1) {\n selection.attr(\"transform\", function(d) {\n var v0 = y0(d);\n return \"translate(0,\" + (isFinite(v0) ? v0 : y1(d)) + \")\";\n });\n }\n d3.svg.brush = function() {\n var event = d3_eventDispatch(brush, \"brushstart\", \"brush\", \"brushend\"), x = null, y = null, xExtent = [0, 0], yExtent = [0, 0], xExtentDomain, yExtentDomain, xClamp = true, yClamp = true, resizes = d3_svg_brushResizes[0];\n function brush(g) {\n g.each(function() {\n var g2 = d3.select(this).style(\"pointer-events\", \"all\").style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\").on(\"mousedown.brush\", brushstart).on(\"touchstart.brush\", brushstart);\n var background = g2.selectAll(\".background\").data([0]);\n background.enter().append(\"rect\").attr(\"class\", \"background\").style(\"visibility\", \"hidden\").style(\"cursor\", \"crosshair\");\n g2.selectAll(\".extent\").data([0]).enter().append(\"rect\").attr(\"class\", \"extent\").style(\"cursor\", \"move\");\n var resize = g2.selectAll(\".resize\").data(resizes, d3_identity);\n resize.exit().remove();\n resize.enter().append(\"g\").attr(\"class\", function(d) {\n return \"resize \" + d;\n }).style(\"cursor\", function(d) {\n return d3_svg_brushCursor[d];\n }).append(\"rect\").attr(\"x\", function(d) {\n return /[ew]$/.test(d) ? -3 : null;\n }).attr(\"y\", function(d) {\n return /^[ns]/.test(d) ? -3 : null;\n }).attr(\"width\", 6).attr(\"height\", 6).style(\"visibility\", \"hidden\");\n resize.style(\"display\", brush.empty() ? \"none\" : null);\n var gUpdate = d3.transition(g2), backgroundUpdate = d3.transition(background), range;\n if (x) {\n range = d3_scaleRange(x);\n backgroundUpdate.attr(\"x\", range[0]).attr(\"width\", range[1] - range[0]);\n redrawX(gUpdate);\n }\n if (y) {\n range = d3_scaleRange(y);\n backgroundUpdate.attr(\"y\", range[0]).attr(\"height\", range[1] - range[0]);\n redrawY(gUpdate);\n }\n redraw(gUpdate);\n });\n }\n brush.event = function(g) {\n g.each(function() {\n var event_ = event.of(this, arguments), extent1 = {\n x: xExtent,\n y: yExtent,\n i: xExtentDomain,\n j: yExtentDomain\n }, extent0 = this.__chart__ || extent1;\n this.__chart__ = extent1;\n if (d3_transitionInheritId) {\n d3.select(this).transition().each(\"start.brush\", function() {\n xExtentDomain = extent0.i;\n yExtentDomain = extent0.j;\n xExtent = extent0.x;\n yExtent = extent0.y;\n event_({\n type: \"brushstart\"\n });\n }).tween(\"brush:brush\", function() {\n var xi = d3_interpolateArray(xExtent, extent1.x), yi = d3_interpolateArray(yExtent, extent1.y);\n xExtentDomain = yExtentDomain = null;\n return function(t) {\n xExtent = extent1.x = xi(t);\n yExtent = extent1.y = yi(t);\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n };\n }).each(\"end.brush\", function() {\n xExtentDomain = extent1.i;\n yExtentDomain = extent1.j;\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n });\n } else {\n event_({\n type: \"brushstart\"\n });\n event_({\n type: \"brush\",\n mode: \"resize\"\n });\n event_({\n type: \"brushend\"\n });\n }\n });\n };\n function redraw(g) {\n g.selectAll(\".resize\").attr(\"transform\", function(d) {\n return \"translate(\" + xExtent[+/e$/.test(d)] + \",\" + yExtent[+/^s/.test(d)] + \")\";\n });\n }\n function redrawX(g) {\n g.select(\".extent\").attr(\"x\", xExtent[0]);\n g.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\", xExtent[1] - xExtent[0]);\n }\n function redrawY(g) {\n g.select(\".extent\").attr(\"y\", yExtent[0]);\n g.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\", yExtent[1] - yExtent[0]);\n }\n function brushstart() {\n var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed(\"extent\"), dragRestore = d3_event_dragSuppress(target), center, origin = d3.mouse(target), offset;\n var w = d3.select(d3_window(target)).on(\"keydown.brush\", keydown).on(\"keyup.brush\", keyup);\n if (d3.event.changedTouches) {\n w.on(\"touchmove.brush\", brushmove).on(\"touchend.brush\", brushend);\n } else {\n w.on(\"mousemove.brush\", brushmove).on(\"mouseup.brush\", brushend);\n }\n g.interrupt().selectAll(\"*\").interrupt();\n if (dragging) {\n origin[0] = xExtent[0] - origin[0];\n origin[1] = yExtent[0] - origin[1];\n } else if (resizing) {\n var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);\n offset = [xExtent[1 - ex] - origin[0], yExtent[1 - ey] - origin[1]];\n origin[0] = xExtent[ex];\n origin[1] = yExtent[ey];\n } else if (d3.event.altKey) center = origin.slice();\n g.style(\"pointer-events\", \"none\").selectAll(\".resize\").style(\"display\", null);\n d3.select(\"body\").style(\"cursor\", eventTarget.style(\"cursor\"));\n event_({\n type: \"brushstart\"\n });\n brushmove();\n function keydown() {\n if (d3.event.keyCode == 32) {\n if (!dragging) {\n center = null;\n origin[0] -= xExtent[1];\n origin[1] -= yExtent[1];\n dragging = 2;\n }\n d3_eventPreventDefault();\n }\n }\n function keyup() {\n if (d3.event.keyCode == 32 && dragging == 2) {\n origin[0] += xExtent[1];\n origin[1] += yExtent[1];\n dragging = 0;\n d3_eventPreventDefault();\n }\n }\n function brushmove() {\n var point = d3.mouse(target), moved = false;\n if (offset) {\n point[0] += offset[0];\n point[1] += offset[1];\n }\n if (!dragging) {\n if (d3.event.altKey) {\n if (!center) center = [(xExtent[0] + xExtent[1]) / 2, (yExtent[0] + yExtent[1]) / 2];\n origin[0] = xExtent[+(point[0] < center[0])];\n origin[1] = yExtent[+(point[1] < center[1])];\n } else center = null;\n }\n if (resizingX && move1(point, x, 0)) {\n redrawX(g);\n moved = true;\n }\n if (resizingY && move1(point, y, 1)) {\n redrawY(g);\n moved = true;\n }\n if (moved) {\n redraw(g);\n event_({\n type: \"brush\",\n mode: dragging ? \"move\" : \"resize\"\n });\n }\n }\n function move1(point, scale, i) {\n var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], extent = i ? yExtent : xExtent, size = extent[1] - extent[0], min, max;\n if (dragging) {\n r0 -= position;\n r1 -= size + position;\n }\n min = (i ? yClamp : xClamp) ? Math.max(r0, Math.min(r1, point[i])) : point[i];\n if (dragging) {\n max = (min += position) + size;\n } else {\n if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));\n if (position < min) {\n max = min;\n min = position;\n } else {\n max = position;\n }\n }\n if (extent[0] != min || extent[1] != max) {\n if (i) yExtentDomain = null;\n else xExtentDomain = null;\n extent[0] = min;\n extent[1] = max;\n return true;\n }\n }\n function brushend() {\n brushmove();\n g.style(\"pointer-events\", \"all\").selectAll(\".resize\").style(\"display\", brush.empty() ? \"none\" : null);\n d3.select(\"body\").style(\"cursor\", null);\n w.on(\"mousemove.brush\", null).on(\"mouseup.brush\", null).on(\"touchmove.brush\", null).on(\"touchend.brush\", null).on(\"keydown.brush\", null).on(\"keyup.brush\", null);\n dragRestore();\n event_({\n type: \"brushend\"\n });\n }\n }\n brush.x = function(z) {\n if (!arguments.length) return x;\n x = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.y = function(z) {\n if (!arguments.length) return y;\n y = z;\n resizes = d3_svg_brushResizes[!x << 1 | !y];\n return brush;\n };\n brush.clamp = function(z) {\n if (!arguments.length) return x && y ? [xClamp, yClamp] : x ? xClamp : y ? yClamp : null;\n if (x && y) xClamp = !!z[0], yClamp = !!z[1];\n else if (x) xClamp = !!z;\n else if (y) yClamp = !!z;\n return brush;\n };\n brush.extent = function(z) {\n var x0, x1, y0, y1, t;\n if (!arguments.length) {\n if (x) {\n if (xExtentDomain) {\n x0 = xExtentDomain[0], x1 = xExtentDomain[1];\n } else {\n x0 = xExtent[0], x1 = xExtent[1];\n if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n }\n }\n if (y) {\n if (yExtentDomain) {\n y0 = yExtentDomain[0], y1 = yExtentDomain[1];\n } else {\n y0 = yExtent[0], y1 = yExtent[1];\n if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n }\n }\n return x && y ? [[x0, y0], [x1, y1]] : x ? [x0, x1] : y && [y0, y1];\n }\n if (x) {\n x0 = z[0], x1 = z[1];\n if (y) x0 = x0[0], x1 = x1[0];\n xExtentDomain = [x0, x1];\n if (x.invert) x0 = x(x0), x1 = x(x1);\n if (x1 < x0) t = x0, x0 = x1, x1 = t;\n if (x0 != xExtent[0] || x1 != xExtent[1]) xExtent = [x0, x1];\n }\n if (y) {\n y0 = z[0], y1 = z[1];\n if (x) y0 = y0[1], y1 = y1[1];\n yExtentDomain = [y0, y1];\n if (y.invert) y0 = y(y0), y1 = y(y1);\n if (y1 < y0) t = y0, y0 = y1, y1 = t;\n if (y0 != yExtent[0] || y1 != yExtent[1]) yExtent = [y0, y1];\n }\n return brush;\n };\n brush.clear = function() {\n if (!brush.empty()) {\n xExtent = [0, 0], yExtent = [0, 0];\n xExtentDomain = yExtentDomain = null;\n }\n return brush;\n };\n brush.empty = function() {\n return !!x && xExtent[0] == xExtent[1] || !!y && yExtent[0] == yExtent[1];\n };\n return d3.rebind(brush, event, \"on\");\n };\n var d3_svg_brushCursor = {\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n };\n var d3_svg_brushResizes = [[\"n\", \"e\", \"s\", \"w\", \"nw\", \"ne\", \"se\", \"sw\"], [\"e\", \"w\"], [\"n\", \"s\"], []];\n d3.text = d3_xhrType(function(request) {\n return request.responseText;\n });\n d3.json = function(url, callback) {\n return d3_xhr(url, \"application/json\", d3_json, callback);\n };\n function d3_json(request) {\n return JSON.parse(request.responseText);\n }\n d3.html = function(url, callback) {\n return d3_xhr(url, \"text/html\", d3_html, callback);\n };\n function d3_html(request) {\n var range = d3_document.createRange();\n range.selectNode(d3_document.body);\n return range.createContextualFragment(request.responseText);\n }\n d3.xml = d3_xhrType(function(request) {\n return request.responseXML;\n });\n if (typeof define === \"function\" && false) define(d3);\n else if (typeof module === \"object\" && module.exports) module.exports = d3;\n else this.d3 = d3;\n }.apply(self);\n }\n });\n\n // node_modules/d3-time/dist/d3-time.js\n var require_d3_time = __commonJS({\n \"node_modules/d3-time/dist/d3-time.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var t02 = /* @__PURE__ */ new Date(), t12 = /* @__PURE__ */ new Date();\n function newInterval(floori, offseti, count, field) {\n function interval(date) {\n return floori(date = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date)), date;\n }\n interval.floor = function(date) {\n return floori(date = /* @__PURE__ */ new Date(+date)), date;\n };\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n interval.round = function(date) {\n var d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n interval.offset = function(date, step) {\n return offseti(date = /* @__PURE__ */ new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range;\n do\n range.push(previous = /* @__PURE__ */ new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {\n }\n }\n else while (--step >= 0) {\n while (offseti(date, 1), !test(date)) {\n }\n }\n }\n });\n };\n if (count) {\n interval.count = function(start, end) {\n t02.setTime(+start), t12.setTime(+end);\n floori(t02), floori(t12);\n return Math.floor(count(t02, t12));\n };\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval : interval.filter(field ? function(d) {\n return field(d) % step === 0;\n } : function(d) {\n return interval.count(0, d) % step === 0;\n });\n };\n }\n return interval;\n }\n var millisecond = newInterval(function() {\n }, function(date, step) {\n date.setTime(+date + step);\n }, function(start, end) {\n return end - start;\n });\n millisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return newInterval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n };\n var milliseconds = millisecond.range;\n var durationSecond = 1e3;\n var durationMinute = 6e4;\n var durationHour = 36e5;\n var durationDay = 864e5;\n var durationWeek = 6048e5;\n var second = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds());\n }, function(date, step) {\n date.setTime(+date + step * durationSecond);\n }, function(start, end) {\n return (end - start) / durationSecond;\n }, function(date) {\n return date.getUTCSeconds();\n });\n var seconds = second.range;\n var minute = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n }, function(date, step) {\n date.setTime(+date + step * durationMinute);\n }, function(start, end) {\n return (end - start) / durationMinute;\n }, function(date) {\n return date.getMinutes();\n });\n var minutes = minute.range;\n var hour = newInterval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n }, function(date, step) {\n date.setTime(+date + step * durationHour);\n }, function(start, end) {\n return (end - start) / durationHour;\n }, function(date) {\n return date.getHours();\n });\n var hours = hour.range;\n var day = newInterval(function(date) {\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n }, function(date) {\n return date.getDate() - 1;\n });\n var days = day.range;\n function weekday(i) {\n return newInterval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n }\n var sunday = weekday(0);\n var monday = weekday(1);\n var tuesday = weekday(2);\n var wednesday = weekday(3);\n var thursday = weekday(4);\n var friday = weekday(5);\n var saturday = weekday(6);\n var sundays = sunday.range;\n var mondays = monday.range;\n var tuesdays = tuesday.range;\n var wednesdays = wednesday.range;\n var thursdays = thursday.range;\n var fridays = friday.range;\n var saturdays = saturday.range;\n var month = newInterval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setMonth(date.getMonth() + step);\n }, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n }, function(date) {\n return date.getMonth();\n });\n var months = month.range;\n var year = newInterval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n }, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n }, function(date) {\n return date.getFullYear();\n });\n year.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n };\n var years = year.range;\n var utcMinute = newInterval(function(date) {\n date.setUTCSeconds(0, 0);\n }, function(date, step) {\n date.setTime(+date + step * durationMinute);\n }, function(start, end) {\n return (end - start) / durationMinute;\n }, function(date) {\n return date.getUTCMinutes();\n });\n var utcMinutes = utcMinute.range;\n var utcHour = newInterval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n }, function(date, step) {\n date.setTime(+date + step * durationHour);\n }, function(start, end) {\n return (end - start) / durationHour;\n }, function(date) {\n return date.getUTCHours();\n });\n var utcHours = utcHour.range;\n var utcDay = newInterval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n }, function(start, end) {\n return (end - start) / durationDay;\n }, function(date) {\n return date.getUTCDate() - 1;\n });\n var utcDays = utcDay.range;\n function utcWeekday(i) {\n return newInterval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n }\n var utcSunday = utcWeekday(0);\n var utcMonday = utcWeekday(1);\n var utcTuesday = utcWeekday(2);\n var utcWednesday = utcWeekday(3);\n var utcThursday = utcWeekday(4);\n var utcFriday = utcWeekday(5);\n var utcSaturday = utcWeekday(6);\n var utcSundays = utcSunday.range;\n var utcMondays = utcMonday.range;\n var utcTuesdays = utcTuesday.range;\n var utcWednesdays = utcWednesday.range;\n var utcThursdays = utcThursday.range;\n var utcFridays = utcFriday.range;\n var utcSaturdays = utcSaturday.range;\n var utcMonth = newInterval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n }, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n }, function(date) {\n return date.getUTCMonth();\n });\n var utcMonths = utcMonth.range;\n var utcYear = newInterval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n }, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n }, function(date) {\n return date.getUTCFullYear();\n });\n utcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n };\n var utcYears = utcYear.range;\n exports2.timeDay = day;\n exports2.timeDays = days;\n exports2.timeFriday = friday;\n exports2.timeFridays = fridays;\n exports2.timeHour = hour;\n exports2.timeHours = hours;\n exports2.timeInterval = newInterval;\n exports2.timeMillisecond = millisecond;\n exports2.timeMilliseconds = milliseconds;\n exports2.timeMinute = minute;\n exports2.timeMinutes = minutes;\n exports2.timeMonday = monday;\n exports2.timeMondays = mondays;\n exports2.timeMonth = month;\n exports2.timeMonths = months;\n exports2.timeSaturday = saturday;\n exports2.timeSaturdays = saturdays;\n exports2.timeSecond = second;\n exports2.timeSeconds = seconds;\n exports2.timeSunday = sunday;\n exports2.timeSundays = sundays;\n exports2.timeThursday = thursday;\n exports2.timeThursdays = thursdays;\n exports2.timeTuesday = tuesday;\n exports2.timeTuesdays = tuesdays;\n exports2.timeWednesday = wednesday;\n exports2.timeWednesdays = wednesdays;\n exports2.timeWeek = sunday;\n exports2.timeWeeks = sundays;\n exports2.timeYear = year;\n exports2.timeYears = years;\n exports2.utcDay = utcDay;\n exports2.utcDays = utcDays;\n exports2.utcFriday = utcFriday;\n exports2.utcFridays = utcFridays;\n exports2.utcHour = utcHour;\n exports2.utcHours = utcHours;\n exports2.utcMillisecond = millisecond;\n exports2.utcMilliseconds = milliseconds;\n exports2.utcMinute = utcMinute;\n exports2.utcMinutes = utcMinutes;\n exports2.utcMonday = utcMonday;\n exports2.utcMondays = utcMondays;\n exports2.utcMonth = utcMonth;\n exports2.utcMonths = utcMonths;\n exports2.utcSaturday = utcSaturday;\n exports2.utcSaturdays = utcSaturdays;\n exports2.utcSecond = second;\n exports2.utcSeconds = seconds;\n exports2.utcSunday = utcSunday;\n exports2.utcSundays = utcSundays;\n exports2.utcThursday = utcThursday;\n exports2.utcThursdays = utcThursdays;\n exports2.utcTuesday = utcTuesday;\n exports2.utcTuesdays = utcTuesdays;\n exports2.utcWednesday = utcWednesday;\n exports2.utcWednesdays = utcWednesdays;\n exports2.utcWeek = utcSunday;\n exports2.utcWeeks = utcSundays;\n exports2.utcYear = utcYear;\n exports2.utcYears = utcYears;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-time-format/dist/d3-time-format.js\n var require_d3_time_format = __commonJS({\n \"node_modules/d3-time-format/dist/d3-time-format.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_time()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-time\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}, global2.d3));\n })(exports, function(exports2, d3Time) {\n \"use strict\";\n function localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n }\n function utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n }\n function newDate(y, m, d) {\n return { y, m, d, H: 0, M: 0, S: 0, L: 0 };\n }\n function formatLocale(locale2) {\n var locale_dateTime = locale2.dateTime, locale_date = locale2.date, locale_time = locale2.time, locale_periods = locale2.periods, locale_weekdays = locale2.days, locale_shortWeekdays = locale2.shortDays, locale_months = locale2.months, locale_shortMonths = locale2.shortMonths;\n var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths);\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n function newFormat(specifier, formats2) {\n return function(date) {\n var string = [], i = -1, j = 0, n = specifier.length, c, pad2, format;\n if (!(date instanceof Date)) date = /* @__PURE__ */ new Date(+date);\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad2 = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad2 = c === \"e\" ? \" \" : \"0\";\n if (format = formats2[c]) c = format(date, pad2);\n string.push(c);\n j = i + 1;\n }\n }\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, void 0, 1), i = parseSpecifier(d, specifier, string += \"\", 0), week, day;\n if (i != string.length) return null;\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1e3 + (\"L\" in d ? d.L : 0));\n if (Z && !(\"Z\" in d)) d.Z = 0;\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n if (d.m === void 0) d.m = \"q\" in d ? d.q : 0;\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? d3Time.utcMonday.ceil(week) : d3Time.utcMonday(week);\n week = d3Time.utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? d3Time.timeMonday.ceil(week) : d3Time.timeMonday(week);\n week = d3Time.timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n return localDate(d);\n };\n }\n function parseSpecifier(d, specifier, string, j) {\n var i = 0, n = specifier.length, m = string.length, c, parse2;\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse2 = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse2 || (j = parse2(d, string, j)) < 0) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n return j;\n }\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() {\n return specifier;\n };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() {\n return specifier;\n };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() {\n return specifier;\n };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() {\n return specifier;\n };\n return p;\n }\n };\n }\n var pads = { \"-\": \"\", \"_\": \" \", \"0\": \"0\" }, numberRe = /^\\s*\\d+/, percentRe = /^%/, requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n function pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\", string = (sign ? -value : value) + \"\", length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n }\n function requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n }\n function formatRe(names2) {\n return new RegExp(\"^(?:\" + names2.map(requote).join(\"|\") + \")\", \"i\");\n }\n function formatLookup(names2) {\n var map = {}, i = -1, n = names2.length;\n while (++i < n) map[names2[i].toLowerCase()] = i;\n return map;\n }\n function parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n }\n function parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n }\n function parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n }\n function parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n }\n function parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i + n[0].length) : -1;\n }\n function parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n }\n function parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n }\n function parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n }\n function parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n }\n function parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n }\n function parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n }\n function parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n }\n function parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n }\n function parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n }\n function parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1e3), i + n[0].length) : -1;\n }\n function parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n }\n function parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n }\n function parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n }\n function formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n }\n function formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n }\n function formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n }\n function formatDayOfYear(d, p) {\n return pad(1 + d3Time.timeDay.count(d3Time.timeYear(d), d), p, 3);\n }\n function formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n }\n function formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n }\n function formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n }\n function formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n }\n function formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n }\n function formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n }\n function formatWeekNumberSunday(d, p) {\n return pad(d3Time.timeSunday.count(d3Time.timeYear(d) - 1, d), p, 2);\n }\n function formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = day >= 4 || day === 0 ? d3Time.timeThursday(d) : d3Time.timeThursday.ceil(d);\n return pad(d3Time.timeThursday.count(d3Time.timeYear(d), d) + (d3Time.timeYear(d).getDay() === 4), p, 2);\n }\n function formatWeekdayNumberSunday(d) {\n return d.getDay();\n }\n function formatWeekNumberMonday(d, p) {\n return pad(d3Time.timeMonday.count(d3Time.timeYear(d) - 1, d), p, 2);\n }\n function formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n }\n function formatFullYear(d, p) {\n return pad(d.getFullYear() % 1e4, p, 4);\n }\n function formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\")) + pad(z / 60 | 0, \"0\", 2) + pad(z % 60, \"0\", 2);\n }\n function formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n }\n function formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n }\n function formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n }\n function formatUTCDayOfYear(d, p) {\n return pad(1 + d3Time.utcDay.count(d3Time.utcYear(d), d), p, 3);\n }\n function formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n }\n function formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n }\n function formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n }\n function formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n }\n function formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n }\n function formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n }\n function formatUTCWeekNumberSunday(d, p) {\n return pad(d3Time.utcSunday.count(d3Time.utcYear(d) - 1, d), p, 2);\n }\n function formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = day >= 4 || day === 0 ? d3Time.utcThursday(d) : d3Time.utcThursday.ceil(d);\n return pad(d3Time.utcThursday.count(d3Time.utcYear(d), d) + (d3Time.utcYear(d).getUTCDay() === 4), p, 2);\n }\n function formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n }\n function formatUTCWeekNumberMonday(d, p) {\n return pad(d3Time.utcMonday.count(d3Time.utcYear(d) - 1, d), p, 2);\n }\n function formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n }\n function formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 1e4, p, 4);\n }\n function formatUTCZone() {\n return \"+0000\";\n }\n function formatLiteralPercent() {\n return \"%\";\n }\n function formatUnixTimestamp(d) {\n return +d;\n }\n function formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1e3);\n }\n var locale;\n defaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n });\n function defaultLocale(definition) {\n locale = formatLocale(definition);\n exports2.timeFormat = locale.format;\n exports2.timeParse = locale.parse;\n exports2.utcFormat = locale.utcFormat;\n exports2.utcParse = locale.utcParse;\n return locale;\n }\n var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n function formatIsoNative(date) {\n return date.toISOString();\n }\n var formatIso = Date.prototype.toISOString ? formatIsoNative : exports2.utcFormat(isoSpecifier);\n function parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n }\n var parseIso = +/* @__PURE__ */ new Date(\"2000-01-01T00:00:00.000Z\") ? parseIsoNative : exports2.utcParse(isoSpecifier);\n exports2.isoFormat = formatIso;\n exports2.isoParse = parseIso;\n exports2.timeFormatDefaultLocale = defaultLocale;\n exports2.timeFormatLocale = formatLocale;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-format/dist/d3-format.js\n var require_d3_format = __commonJS({\n \"node_modules/d3-format/dist/d3-format.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = typeof globalThis !== \"undefined\" ? globalThis : global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function formatDecimal(x) {\n return Math.abs(x = Math.round(x)) >= 1e21 ? x.toLocaleString(\"en\").replace(/,/g, \"\") : x.toString(10);\n }\n function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null;\n var i, coefficient = x.slice(0, i);\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n }\n function exponent(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n }\n function formatGroup(grouping, thousands) {\n return function(value, width) {\n var i = value.length, t = [], j = 0, g = grouping[0], length = 0;\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n return t.reverse().join(thousands);\n };\n }\n function formatNumerals(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n }\n var re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n }\n formatSpecifier.prototype = FormatSpecifier.prototype;\n function FormatSpecifier(specifier) {\n this.fill = specifier.fill === void 0 ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === void 0 ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === void 0 ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === void 0 ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === void 0 ? void 0 : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === void 0 ? \"\" : specifier.type + \"\";\n }\n FormatSpecifier.prototype.toString = function() {\n return this.fill + this.align + this.sign + this.symbol + (this.zero ? \"0\" : \"\") + (this.width === void 0 ? \"\" : Math.max(1, this.width | 0)) + (this.comma ? \",\" : \"\") + (this.precision === void 0 ? \"\" : \".\" + Math.max(0, this.precision | 0)) + (this.trim ? \"~\" : \"\") + this.type;\n };\n function formatTrim(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\":\n i0 = i1 = i;\n break;\n case \"0\":\n if (i0 === 0) i0 = i;\n i1 = i;\n break;\n default:\n if (!+s[i]) break out;\n if (i0 > 0) i0 = 0;\n break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n }\n var prefixExponent;\n function formatPrefixAuto(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0], exponent2 = d[1], i = exponent2 - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent2 / 3))) * 3) + 1, n = coefficient.length;\n return i === n ? coefficient : i > n ? coefficient + new Array(i - n + 1).join(\"0\") : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i) : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0];\n }\n function formatRounded(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0], exponent2 = d[1];\n return exponent2 < 0 ? \"0.\" + new Array(-exponent2).join(\"0\") + coefficient : coefficient.length > exponent2 + 1 ? coefficient.slice(0, exponent2 + 1) + \".\" + coefficient.slice(exponent2 + 1) : coefficient + new Array(exponent2 - coefficient.length + 2).join(\"0\");\n }\n var formatTypes = {\n \"%\": function(x, p) {\n return (x * 100).toFixed(p);\n },\n \"b\": function(x) {\n return Math.round(x).toString(2);\n },\n \"c\": function(x) {\n return x + \"\";\n },\n \"d\": formatDecimal,\n \"e\": function(x, p) {\n return x.toExponential(p);\n },\n \"f\": function(x, p) {\n return x.toFixed(p);\n },\n \"g\": function(x, p) {\n return x.toPrecision(p);\n },\n \"o\": function(x) {\n return Math.round(x).toString(8);\n },\n \"p\": function(x, p) {\n return formatRounded(x * 100, p);\n },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) {\n return Math.round(x).toString(16).toUpperCase();\n },\n \"x\": function(x) {\n return Math.round(x).toString(16);\n }\n };\n function identity2(x) {\n return x;\n }\n var map = Array.prototype.map, prefixes = [\"y\", \"z\", \"a\", \"f\", \"p\", \"n\", \"\\xB5\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\", \"P\", \"E\", \"Z\", \"Y\"];\n function formatLocale(locale2) {\n var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity2 : formatGroup(map.call(locale2.grouping, Number), locale2.thousands + \"\"), currencyPrefix = locale2.currency === void 0 ? \"\" : locale2.currency[0] + \"\", currencySuffix = locale2.currency === void 0 ? \"\" : locale2.currency[1] + \"\", decimal = locale2.decimal === void 0 ? \".\" : locale2.decimal + \"\", numerals = locale2.numerals === void 0 ? identity2 : formatNumerals(map.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? \"%\" : locale2.percent + \"\", minus = locale2.minus === void 0 ? \"-\" : locale2.minus + \"\", nan = locale2.nan === void 0 ? \"NaN\" : locale2.nan + \"\";\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n var fill = specifier.fill, align = specifier.align, sign = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width = specifier.width, comma = specifier.comma, precision = specifier.precision, trim = specifier.trim, type = specifier.type;\n if (type === \"n\") comma = true, type = \"g\";\n else if (!formatTypes[type]) precision === void 0 && (precision = 12), trim = true, type = \"g\";\n if (zero2 || fill === \"0\" && align === \"=\") zero2 = true, fill = \"0\", align = \"=\";\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\", suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n var formatType = formatTypes[type], maybeSuffix = /[defgprs%]/.test(type);\n precision = precision === void 0 ? 6 : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));\n function format(value) {\n var valuePrefix = prefix, valueSuffix = suffix, i, n, c;\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n var valueNegative = value < 0 || 1 / value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n if (trim) value = formatTrim(value);\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n valuePrefix = (valueNegative ? sign === \"(\" ? sign : minus : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n if (comma && !zero2) value = group(value, Infinity);\n var length = valuePrefix.length + value.length + valueSuffix.length, padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n if (comma && zero2) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n switch (align) {\n case \"<\":\n value = valuePrefix + value + valueSuffix + padding;\n break;\n case \"=\":\n value = valuePrefix + padding + value + valueSuffix;\n break;\n case \"^\":\n value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length);\n break;\n default:\n value = padding + valuePrefix + value + valueSuffix;\n break;\n }\n return numerals(value);\n }\n format.toString = function() {\n return specifier + \"\";\n };\n return format;\n }\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3];\n return function(value2) {\n return f(k * value2) + prefix;\n };\n }\n return {\n format: newFormat,\n formatPrefix\n };\n }\n var locale;\n defaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n });\n function defaultLocale(definition) {\n locale = formatLocale(definition);\n exports2.format = locale.format;\n exports2.formatPrefix = locale.formatPrefix;\n return locale;\n }\n function precisionFixed(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n }\n function precisionPrefix(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n }\n function precisionRound(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n }\n exports2.FormatSpecifier = FormatSpecifier;\n exports2.formatDefaultLocale = defaultLocale;\n exports2.formatLocale = formatLocale;\n exports2.formatSpecifier = formatSpecifier;\n exports2.precisionFixed = precisionFixed;\n exports2.precisionPrefix = precisionPrefix;\n exports2.precisionRound = precisionRound;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/is-string-blank/index.js\n var require_is_string_blank = __commonJS({\n \"node_modules/is-string-blank/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(str) {\n var l = str.length, a;\n for (var i = 0; i < l; i++) {\n a = str.charCodeAt(i);\n if ((a < 9 || a > 13) && a !== 32 && a !== 133 && a !== 160 && a !== 5760 && a !== 6158 && (a < 8192 || a > 8205) && a !== 8232 && a !== 8233 && a !== 8239 && a !== 8287 && a !== 8288 && a !== 12288 && a !== 65279) {\n return false;\n }\n }\n return true;\n };\n }\n });\n\n // node_modules/fast-isnumeric/index.js\n var require_fast_isnumeric = __commonJS({\n \"node_modules/fast-isnumeric/index.js\"(exports, module) {\n \"use strict\";\n var allBlankCharCodes = require_is_string_blank();\n module.exports = function(n) {\n var type = typeof n;\n if (type === \"string\") {\n var original = n;\n n = +n;\n if (n === 0 && allBlankCharCodes(original)) return false;\n } else if (type !== \"number\") return false;\n return n - n < 1;\n };\n }\n });\n\n // src/constants/numerical.js\n var require_numerical = __commonJS({\n \"src/constants/numerical.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n /**\n * Standardize all missing data in calcdata to use undefined\n * never null or NaN.\n * That way we can use !==undefined, or !== BADNUM,\n * to test for real data\n */\n BADNUM: void 0,\n /*\n * Limit certain operations to well below floating point max value\n * to avoid glitches: Make sure that even when you multiply it by the\n * number of pixels on a giant screen it still works\n */\n FP_SAFE: Number.MAX_VALUE * 1e-4,\n /*\n * conversion of date units to milliseconds\n * year and month constants are marked \"AVG\"\n * to remind us that not all years and months\n * have the same length\n */\n ONEMAXYEAR: 316224e5,\n // 366 * ONEDAY\n ONEAVGYEAR: 315576e5,\n // 365.25 days\n ONEMINYEAR: 31536e6,\n // 365 * ONEDAY\n ONEMAXQUARTER: 79488e5,\n // 92 * ONEDAY\n ONEAVGQUARTER: 78894e5,\n // 1/4 of ONEAVGYEAR\n ONEMINQUARTER: 76896e5,\n // 89 * ONEDAY\n ONEMAXMONTH: 26784e5,\n // 31 * ONEDAY\n ONEAVGMONTH: 26298e5,\n // 1/12 of ONEAVGYEAR\n ONEMINMONTH: 24192e5,\n // 28 * ONEDAY\n ONEWEEK: 6048e5,\n // 7 * ONEDAY\n ONEDAY: 864e5,\n // 24 * ONEHOUR\n ONEHOUR: 36e5,\n ONEMIN: 6e4,\n ONESEC: 1e3,\n ONEMILLI: 1,\n ONEMICROSEC: 1e-3,\n /*\n * For fast conversion btwn world calendars and epoch ms, the Julian Day Number\n * of the unix epoch. From calendars.instance().newDate(1970, 1, 1).toJD()\n */\n EPOCHJD: 24405875e-1,\n /*\n * Are two values nearly equal? Compare to 1PPM\n */\n ALMOST_EQUAL: 1 - 1e-6,\n /*\n * If we're asked to clip a non-positive log value, how far off-screen\n * do we put it?\n */\n LOG_CLIP: 10,\n /*\n * not a number, but for displaying numbers: the \"minus sign\" symbol is\n * wider than the regular ascii dash \"-\"\n */\n MINUS_SIGN: \"\\u2212\"\n };\n }\n });\n\n // node_modules/base64-arraybuffer/dist/base64-arraybuffer.umd.js\n var require_base64_arraybuffer_umd = __commonJS({\n \"node_modules/base64-arraybuffer/dist/base64-arraybuffer.umd.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = typeof globalThis !== \"undefined\" ? globalThis : global2 || self, factory(global2[\"base64-arraybuffer\"] = {}));\n })(exports, function(exports2) {\n \"use strict\";\n var chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var lookup = typeof Uint8Array === \"undefined\" ? [] : new Uint8Array(256);\n for (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n }\n var encode = function(arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i2, len = bytes.length, base64 = \"\";\n for (i2 = 0; i2 < len; i2 += 3) {\n base64 += chars[bytes[i2] >> 2];\n base64 += chars[(bytes[i2] & 3) << 4 | bytes[i2 + 1] >> 4];\n base64 += chars[(bytes[i2 + 1] & 15) << 2 | bytes[i2 + 2] >> 6];\n base64 += chars[bytes[i2 + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + \"=\";\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + \"==\";\n }\n return base64;\n };\n var decode = function(base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i2, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i2 = 0; i2 < len; i2 += 4) {\n encoded1 = lookup[base64.charCodeAt(i2)];\n encoded2 = lookup[base64.charCodeAt(i2 + 1)];\n encoded3 = lookup[base64.charCodeAt(i2 + 2)];\n encoded4 = lookup[base64.charCodeAt(i2 + 3)];\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return arraybuffer;\n };\n exports2.decode = decode;\n exports2.encode = encode;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/lib/is_plain_object.js\n var require_is_plain_object = __commonJS({\n \"src/lib/is_plain_object.js\"(exports, module) {\n \"use strict\";\n module.exports = function isPlainObject(obj) {\n if (window && window.process && window.process.versions) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n }\n return Object.prototype.toString.call(obj) === \"[object Object]\" && Object.getPrototypeOf(obj).hasOwnProperty(\"hasOwnProperty\");\n };\n }\n });\n\n // src/lib/array.js\n var require_array = __commonJS({\n \"src/lib/array.js\"(exports) {\n \"use strict\";\n var b64decode = require_base64_arraybuffer_umd().decode;\n var isPlainObject = require_is_plain_object();\n var isArray = Array.isArray;\n var ab = ArrayBuffer;\n var dv = DataView;\n function isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n }\n exports.isTypedArray = isTypedArray;\n function isArrayOrTypedArray(a) {\n return isArray(a) || isTypedArray(a);\n }\n exports.isArrayOrTypedArray = isArrayOrTypedArray;\n function isArray1D(a) {\n return !isArrayOrTypedArray(a[0]);\n }\n exports.isArray1D = isArray1D;\n exports.ensureArray = function(out, n) {\n if (!isArray(out)) out = [];\n out.length = n;\n return out;\n };\n var typedArrays = {\n u1c: typeof Uint8ClampedArray === \"undefined\" ? void 0 : Uint8ClampedArray,\n // not supported in numpy?\n i1: typeof Int8Array === \"undefined\" ? void 0 : Int8Array,\n u1: typeof Uint8Array === \"undefined\" ? void 0 : Uint8Array,\n i2: typeof Int16Array === \"undefined\" ? void 0 : Int16Array,\n u2: typeof Uint16Array === \"undefined\" ? void 0 : Uint16Array,\n i4: typeof Int32Array === \"undefined\" ? void 0 : Int32Array,\n u4: typeof Uint32Array === \"undefined\" ? void 0 : Uint32Array,\n f4: typeof Float32Array === \"undefined\" ? void 0 : Float32Array,\n f8: typeof Float64Array === \"undefined\" ? void 0 : Float64Array\n /* TODO: potentially add Big Int\n \n i8: typeof BigInt64Array === 'undefined' ? undefined :\n BigInt64Array,\n \n u8: typeof BigUint64Array === 'undefined' ? undefined :\n BigUint64Array,\n */\n };\n typedArrays.uint8c = typedArrays.u1c;\n typedArrays.uint8 = typedArrays.u1;\n typedArrays.int8 = typedArrays.i1;\n typedArrays.uint16 = typedArrays.u2;\n typedArrays.int16 = typedArrays.i2;\n typedArrays.uint32 = typedArrays.u4;\n typedArrays.int32 = typedArrays.i4;\n typedArrays.float32 = typedArrays.f4;\n typedArrays.float64 = typedArrays.f8;\n function isArrayBuffer(a) {\n return a.constructor === ArrayBuffer;\n }\n exports.isArrayBuffer = isArrayBuffer;\n exports.decodeTypedArraySpec = function(vIn) {\n var out = [];\n var v = coerceTypedArraySpec(vIn);\n var dtype = v.dtype;\n var T = typedArrays[dtype];\n if (!T) throw new Error('Error in dtype: \"' + dtype + '\"');\n var BYTES_PER_ELEMENT = T.BYTES_PER_ELEMENT;\n var buffer = v.bdata;\n if (!isArrayBuffer(buffer)) {\n buffer = b64decode(buffer);\n }\n var shape = v.shape === void 0 ? (\n // detect 1-d length\n [buffer.byteLength / BYTES_PER_ELEMENT]\n ) : (\n // convert number to string and split to array\n (\"\" + v.shape).split(\",\")\n );\n shape.reverse();\n var ndim = shape.length;\n var nj, j;\n var ni = +shape[0];\n var rowBytes = BYTES_PER_ELEMENT * ni;\n var pos = 0;\n if (ndim === 1) {\n out = new T(buffer);\n } else if (ndim === 2) {\n nj = +shape[1];\n for (j = 0; j < nj; j++) {\n out[j] = new T(buffer, pos, ni);\n pos += rowBytes;\n }\n } else if (ndim === 3) {\n nj = +shape[1];\n var nk = +shape[2];\n for (var k = 0; k < nk; k++) {\n out[k] = [];\n for (j = 0; j < nj; j++) {\n out[k][j] = new T(buffer, pos, ni);\n pos += rowBytes;\n }\n }\n } else {\n throw new Error(\"ndim: \" + ndim + 'is not supported with the shape:\"' + v.shape + '\"');\n }\n out.bdata = v.bdata;\n out.dtype = v.dtype;\n out.shape = shape.reverse().join(\",\");\n vIn._inputArray = out;\n return out;\n };\n exports.isTypedArraySpec = function(v) {\n return isPlainObject(v) && v.hasOwnProperty(\"dtype\") && typeof v.dtype === \"string\" && v.hasOwnProperty(\"bdata\") && (typeof v.bdata === \"string\" || isArrayBuffer(v.bdata)) && (v.shape === void 0 || v.hasOwnProperty(\"shape\") && (typeof v.shape === \"string\" || typeof v.shape === \"number\"));\n };\n function coerceTypedArraySpec(v) {\n return {\n bdata: v.bdata,\n dtype: v.dtype,\n shape: v.shape\n };\n }\n exports.concat = function() {\n var args = [];\n var allArray = true;\n var totalLen = 0;\n var _constructor, arg0, i, argi, posi, leni, out, j;\n for (i = 0; i < arguments.length; i++) {\n argi = arguments[i];\n leni = argi.length;\n if (leni) {\n if (arg0) args.push(argi);\n else {\n arg0 = argi;\n posi = leni;\n }\n if (isArray(argi)) {\n _constructor = false;\n } else {\n allArray = false;\n if (!totalLen) {\n _constructor = argi.constructor;\n } else if (_constructor !== argi.constructor) {\n _constructor = false;\n }\n }\n totalLen += leni;\n }\n }\n if (!totalLen) return [];\n if (!args.length) return arg0;\n if (allArray) return arg0.concat.apply(arg0, args);\n if (_constructor) {\n out = new _constructor(totalLen);\n out.set(arg0);\n for (i = 0; i < args.length; i++) {\n argi = args[i];\n out.set(argi, posi);\n posi += argi.length;\n }\n return out;\n }\n out = new Array(totalLen);\n for (j = 0; j < arg0.length; j++) out[j] = arg0[j];\n for (i = 0; i < args.length; i++) {\n argi = args[i];\n for (j = 0; j < argi.length; j++) out[posi + j] = argi[j];\n posi += j;\n }\n return out;\n };\n exports.maxRowLength = function(z) {\n return _rowLength(z, Math.max, 0);\n };\n exports.minRowLength = function(z) {\n return _rowLength(z, Math.min, Infinity);\n };\n function _rowLength(z, fn, len0) {\n if (isArrayOrTypedArray(z)) {\n if (isArrayOrTypedArray(z[0])) {\n var len = len0;\n for (var i = 0; i < z.length; i++) {\n len = fn(len, z[i].length);\n }\n return len;\n } else {\n return z.length;\n }\n }\n return 0;\n }\n }\n });\n\n // src/lib/nested_property.js\n var require_nested_property = __commonJS({\n \"src/lib/nested_property.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n module.exports = function nestedProperty(container, propStr) {\n if (isNumeric(propStr)) propStr = String(propStr);\n else if (typeof propStr !== \"string\" || propStr.substr(propStr.length - 4) === \"[-1]\") {\n throw \"bad property string\";\n }\n var propParts = propStr.split(\".\");\n var indexed;\n var indices;\n var i, j;\n for (j = 0; j < propParts.length; j++) {\n if (String(propParts[j]).slice(0, 2) === \"__\") {\n throw \"bad property string\";\n }\n }\n j = 0;\n while (j < propParts.length) {\n indexed = String(propParts[j]).match(/^([^\\[\\]]*)((\\[\\-?[0-9]*\\])+)$/);\n if (indexed) {\n if (indexed[1]) propParts[j] = indexed[1];\n else if (j === 0) propParts.splice(0, 1);\n else throw \"bad property string\";\n indices = indexed[2].substr(1, indexed[2].length - 2).split(\"][\");\n for (i = 0; i < indices.length; i++) {\n j++;\n propParts.splice(j, 0, Number(indices[i]));\n }\n }\n j++;\n }\n if (typeof container !== \"object\") {\n return badContainer(container, propStr, propParts);\n }\n return {\n set: npSet(container, propParts, propStr),\n get: npGet(container, propParts),\n astr: propStr,\n parts: propParts,\n obj: container\n };\n };\n function npGet(cont, parts) {\n return function(retainNull) {\n var curCont = cont;\n var curPart;\n var allSame;\n var out;\n var i;\n var j;\n for (i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if (curPart === -1) {\n allSame = true;\n out = [];\n for (j = 0; j < curCont.length; j++) {\n out[j] = npGet(curCont[j], parts.slice(i + 1))(retainNull);\n if (out[j] !== out[0]) allSame = false;\n }\n return allSame ? out[0] : out;\n }\n if (typeof curPart === \"number\" && !isArrayOrTypedArray(curCont)) {\n return void 0;\n }\n curCont = curCont[curPart];\n if (typeof curCont !== \"object\" || curCont === null) {\n return void 0;\n }\n }\n if (typeof curCont !== \"object\" || curCont === null) return void 0;\n out = curCont[parts[i]];\n if (!retainNull && out === null) return void 0;\n return out;\n };\n }\n var ARGS_PATTERN = /(^|\\.)args\\[/;\n function isDeletable(val, propStr) {\n return val === void 0 || val === null && !propStr.match(ARGS_PATTERN);\n }\n function npSet(cont, parts, propStr) {\n return function(val) {\n var curCont = cont;\n var propPart = \"\";\n var containerLevels = [[cont, propPart]];\n var toDelete = isDeletable(val, propStr);\n var curPart;\n var i;\n for (i = 0; i < parts.length - 1; i++) {\n curPart = parts[i];\n if (typeof curPart === \"number\" && !isArrayOrTypedArray(curCont)) {\n throw \"array index but container is not an array\";\n }\n if (curPart === -1) {\n toDelete = !setArrayAll(curCont, parts.slice(i + 1), val, propStr);\n if (toDelete) break;\n else return;\n }\n if (!checkNewContainer(curCont, curPart, parts[i + 1], toDelete)) {\n break;\n }\n curCont = curCont[curPart];\n if (typeof curCont !== \"object\" || curCont === null) {\n throw \"container is not an object\";\n }\n propPart = joinPropStr(propPart, curPart);\n containerLevels.push([curCont, propPart]);\n }\n if (toDelete) {\n if (i === parts.length - 1) {\n delete curCont[parts[i]];\n if (Array.isArray(curCont) && +parts[i] === curCont.length - 1) {\n while (curCont.length && curCont[curCont.length - 1] === void 0) {\n curCont.pop();\n }\n }\n }\n } else curCont[parts[i]] = val;\n };\n }\n function joinPropStr(propStr, newPart) {\n var toAdd = newPart;\n if (isNumeric(newPart)) toAdd = \"[\" + newPart + \"]\";\n else if (propStr) toAdd = \".\" + newPart;\n return propStr + toAdd;\n }\n function setArrayAll(containerArray, innerParts, val, propStr) {\n var arrayVal = isArrayOrTypedArray(val);\n var allSet = true;\n var thisVal = val;\n var thisPropStr = propStr.replace(\"-1\", 0);\n var deleteThis = arrayVal ? false : isDeletable(val, thisPropStr);\n var firstPart = innerParts[0];\n var i;\n for (i = 0; i < containerArray.length; i++) {\n thisPropStr = propStr.replace(\"-1\", i);\n if (arrayVal) {\n thisVal = val[i % val.length];\n deleteThis = isDeletable(thisVal, thisPropStr);\n }\n if (deleteThis) allSet = false;\n if (!checkNewContainer(containerArray, i, firstPart, deleteThis)) {\n continue;\n }\n npSet(containerArray[i], innerParts, propStr.replace(\"-1\", i))(thisVal);\n }\n return allSet;\n }\n function checkNewContainer(container, part, nextPart, toDelete) {\n if (container[part] === void 0) {\n if (toDelete) return false;\n if (typeof nextPart === \"number\") container[part] = [];\n else container[part] = {};\n }\n return true;\n }\n function badContainer(container, propStr, propParts) {\n return {\n set: function() {\n throw \"bad container\";\n },\n get: function() {\n },\n astr: propStr,\n parts: propParts,\n obj: container\n };\n }\n }\n });\n\n // src/lib/keyed_container.js\n var require_keyed_container = __commonJS({\n \"src/lib/keyed_container.js\"(exports, module) {\n \"use strict\";\n var nestedProperty = require_nested_property();\n var SIMPLE_PROPERTY_REGEX = /^\\w*$/;\n var NONE = 0;\n var NAME = 1;\n var VALUE = 2;\n var BOTH = 3;\n var UNSET = 4;\n module.exports = function keyedContainer(baseObj, path, keyName, valueName) {\n keyName = keyName || \"name\";\n valueName = valueName || \"value\";\n var i, arr, baseProp;\n var changeTypes = {};\n if (path && path.length) {\n baseProp = nestedProperty(baseObj, path);\n arr = baseProp.get();\n } else {\n arr = baseObj;\n }\n path = path || \"\";\n var indexLookup = {};\n if (arr) {\n for (i = 0; i < arr.length; i++) {\n indexLookup[arr[i][keyName]] = i;\n }\n }\n var isSimpleValueProp = SIMPLE_PROPERTY_REGEX.test(valueName);\n var obj = {\n set: function(name2, value) {\n var changeType = value === null ? UNSET : NONE;\n if (!arr) {\n if (!baseProp || changeType === UNSET) return;\n arr = [];\n baseProp.set(arr);\n }\n var idx = indexLookup[name2];\n if (idx === void 0) {\n if (changeType === UNSET) return;\n changeType = changeType | BOTH;\n idx = arr.length;\n indexLookup[name2] = idx;\n } else if (value !== (isSimpleValueProp ? arr[idx][valueName] : nestedProperty(arr[idx], valueName).get())) {\n changeType = changeType | VALUE;\n }\n var newValue = arr[idx] = arr[idx] || {};\n newValue[keyName] = name2;\n if (isSimpleValueProp) {\n newValue[valueName] = value;\n } else {\n nestedProperty(newValue, valueName).set(value);\n }\n if (value !== null) {\n changeType = changeType & ~UNSET;\n }\n changeTypes[idx] = changeTypes[idx] | changeType;\n return obj;\n },\n get: function(name2) {\n if (!arr) return;\n var idx = indexLookup[name2];\n if (idx === void 0) {\n return void 0;\n } else if (isSimpleValueProp) {\n return arr[idx][valueName];\n } else {\n return nestedProperty(arr[idx], valueName).get();\n }\n },\n rename: function(name2, newName) {\n var idx = indexLookup[name2];\n if (idx === void 0) return obj;\n changeTypes[idx] = changeTypes[idx] | NAME;\n indexLookup[newName] = idx;\n delete indexLookup[name2];\n arr[idx][keyName] = newName;\n return obj;\n },\n remove: function(name2) {\n var idx = indexLookup[name2];\n if (idx === void 0) return obj;\n var object = arr[idx];\n if (Object.keys(object).length > 2) {\n changeTypes[idx] = changeTypes[idx] | VALUE;\n return obj.set(name2, null);\n }\n if (isSimpleValueProp) {\n for (i = idx; i < arr.length; i++) {\n changeTypes[i] = changeTypes[i] | BOTH;\n }\n for (i = idx; i < arr.length; i++) {\n indexLookup[arr[i][keyName]]--;\n }\n arr.splice(idx, 1);\n delete indexLookup[name2];\n } else {\n nestedProperty(object, valueName).set(null);\n changeTypes[idx] = changeTypes[idx] | VALUE | UNSET;\n }\n return obj;\n },\n constructUpdate: function() {\n var astr, idx;\n var update = {};\n var changed = Object.keys(changeTypes);\n for (var i2 = 0; i2 < changed.length; i2++) {\n idx = changed[i2];\n astr = path + \"[\" + idx + \"]\";\n if (arr[idx]) {\n if (changeTypes[idx] & NAME) {\n update[astr + \".\" + keyName] = arr[idx][keyName];\n }\n if (changeTypes[idx] & VALUE) {\n if (isSimpleValueProp) {\n update[astr + \".\" + valueName] = changeTypes[idx] & UNSET ? null : arr[idx][valueName];\n } else {\n update[astr + \".\" + valueName] = changeTypes[idx] & UNSET ? null : nestedProperty(arr[idx], valueName).get();\n }\n }\n } else {\n update[astr] = null;\n }\n }\n return update;\n }\n };\n return obj;\n };\n }\n });\n\n // src/lib/relative_attr.js\n var require_relative_attr = __commonJS({\n \"src/lib/relative_attr.js\"(exports, module) {\n \"use strict\";\n var ASCEND = /^(.*)(\\.[^\\.\\[\\]]+|\\[\\d\\])$/;\n var SIMPLEATTR = /^[^\\.\\[\\]]+$/;\n module.exports = function(baseAttr, relativeAttr) {\n while (relativeAttr) {\n var match = baseAttr.match(ASCEND);\n if (match) baseAttr = match[1];\n else if (baseAttr.match(SIMPLEATTR)) baseAttr = \"\";\n else throw new Error(\"bad relativeAttr call:\" + [baseAttr, relativeAttr]);\n if (relativeAttr.charAt(0) === \"^\") relativeAttr = relativeAttr.slice(1);\n else break;\n }\n if (baseAttr && relativeAttr.charAt(0) !== \"[\") {\n return baseAttr + \".\" + relativeAttr;\n }\n return baseAttr + relativeAttr;\n };\n }\n });\n\n // src/lib/to_log_range.js\n var require_to_log_range = __commonJS({\n \"src/lib/to_log_range.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n module.exports = function toLogRange(val, range) {\n if (val > 0) return Math.log(val) / Math.LN10;\n var newVal = Math.log(Math.min(range[0], range[1])) / Math.LN10;\n if (!isNumeric(newVal)) newVal = Math.log(Math.max(range[0], range[1])) / Math.LN10 - 6;\n return newVal;\n };\n }\n });\n\n // src/lib/relink_private.js\n var require_relink_private = __commonJS({\n \"src/lib/relink_private.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n var isPlainObject = require_is_plain_object();\n module.exports = function relinkPrivateKeys(toContainer, fromContainer) {\n for (var k in fromContainer) {\n var fromVal = fromContainer[k];\n var toVal = toContainer[k];\n if (toVal === fromVal) continue;\n if (k.charAt(0) === \"_\" || typeof fromVal === \"function\") {\n if (k in toContainer) continue;\n toContainer[k] = fromVal;\n } else if (isArrayOrTypedArray(fromVal) && isArrayOrTypedArray(toVal) && isPlainObject(fromVal[0])) {\n if (k === \"customdata\" || k === \"ids\") continue;\n var minLen = Math.min(fromVal.length, toVal.length);\n for (var j = 0; j < minLen; j++) {\n if (toVal[j] !== fromVal[j] && isPlainObject(fromVal[j]) && isPlainObject(toVal[j])) {\n relinkPrivateKeys(toVal[j], fromVal[j]);\n }\n }\n } else if (isPlainObject(fromVal) && isPlainObject(toVal)) {\n relinkPrivateKeys(toVal, fromVal);\n if (!Object.keys(toVal).length) delete toContainer[k];\n }\n }\n };\n }\n });\n\n // src/lib/mod.js\n var require_mod = __commonJS({\n \"src/lib/mod.js\"(exports, module) {\n \"use strict\";\n function mod(v, d) {\n var out = v % d;\n return out < 0 ? out + d : out;\n }\n function modHalf(v, d) {\n return Math.abs(v) > d / 2 ? v - Math.round(v / d) * d : v;\n }\n module.exports = {\n mod,\n modHalf\n };\n }\n });\n\n // node_modules/tinycolor2/tinycolor.js\n var require_tinycolor = __commonJS({\n \"node_modules/tinycolor2/tinycolor.js\"(exports, module) {\n (function(Math2) {\n var trimLeft = /^\\s+/, trimRight = /\\s+$/, tinyCounter = 0, mathRound = Math2.round, mathMin = Math2.min, mathMax = Math2.max, mathRandom = Math2.random;\n function tinycolor(color2, opts) {\n color2 = color2 ? color2 : \"\";\n opts = opts || {};\n if (color2 instanceof tinycolor) {\n return color2;\n }\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color2, opts);\n }\n var rgb2 = inputToRGB(color2);\n this._originalInput = color2, this._r = rgb2.r, this._g = rgb2.g, this._b = rgb2.b, this._a = rgb2.a, this._roundA = mathRound(100 * this._a) / 100, this._format = opts.format || rgb2.format;\n this._gradientType = opts.gradientType;\n if (this._r < 1) {\n this._r = mathRound(this._r);\n }\n if (this._g < 1) {\n this._g = mathRound(this._g);\n }\n if (this._b < 1) {\n this._b = mathRound(this._b);\n }\n this._ok = rgb2.ok;\n this._tc_id = tinyCounter++;\n }\n tinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n var rgb2 = this.toRgb();\n return (rgb2.r * 299 + rgb2.g * 587 + rgb2.b * 114) / 1e3;\n },\n getLuminance: function() {\n var rgb2 = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B2;\n RsRGB = rgb2.r / 255;\n GsRGB = rgb2.g / 255;\n BsRGB = rgb2.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n } else {\n R = Math2.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n } else {\n G = Math2.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B2 = BsRGB / 12.92;\n } else {\n B2 = Math2.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B2;\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100 * this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return this._a == 1 ? \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" : \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \" + this._roundA + \")\";\n },\n toHsl: function() {\n var hsl3 = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl3.h * 360, s: hsl3.s, l: hsl3.l, a: this._a };\n },\n toHslString: function() {\n var hsl3 = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl3.h * 360), s = mathRound(hsl3.s * 100), l = mathRound(hsl3.l * 100);\n return this._a == 1 ? \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" : \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \" + this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return \"#\" + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return \"#\" + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return this._a == 1 ? \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" : \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return this._a == 1 ? \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" : \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n if (this._a < 1) {\n return false;\n }\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = \"#\" + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = \"#\" + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n return \"progid:DXImageTransform.Microsoft.gradient(\" + gradientType + \"startColorstr=\" + hex8String + \",endColorstr=\" + secondHex8String + \")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n if (needsAlphaFormat) {\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n _applyModification: function(fn, args) {\n var color2 = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color2._r;\n this._g = color2._g;\n this._b = color2._b;\n this.setAlpha(color2._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n };\n tinycolor.fromRatio = function(color2, opts) {\n if (typeof color2 == \"object\") {\n var newColor = {};\n for (var i in color2) {\n if (color2.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color2[i];\n } else {\n newColor[i] = convertToPercentage(color2[i]);\n }\n }\n }\n color2 = newColor;\n }\n return tinycolor(color2, opts);\n };\n function inputToRGB(color2) {\n var rgb2 = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color2 == \"string\") {\n color2 = stringInputToObject(color2);\n }\n if (typeof color2 == \"object\") {\n if (isValidCSSUnit(color2.r) && isValidCSSUnit(color2.g) && isValidCSSUnit(color2.b)) {\n rgb2 = rgbToRgb(color2.r, color2.g, color2.b);\n ok = true;\n format = String(color2.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n } else if (isValidCSSUnit(color2.h) && isValidCSSUnit(color2.s) && isValidCSSUnit(color2.v)) {\n s = convertToPercentage(color2.s);\n v = convertToPercentage(color2.v);\n rgb2 = hsvToRgb(color2.h, s, v);\n ok = true;\n format = \"hsv\";\n } else if (isValidCSSUnit(color2.h) && isValidCSSUnit(color2.s) && isValidCSSUnit(color2.l)) {\n s = convertToPercentage(color2.s);\n l = convertToPercentage(color2.l);\n rgb2 = hslToRgb(color2.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n if (color2.hasOwnProperty(\"a\")) {\n a = color2.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok,\n format: color2.format || format,\n r: mathMin(255, mathMax(rgb2.r, 0)),\n g: mathMin(255, mathMax(rgb2.g, 0)),\n b: mathMin(255, mathMax(rgb2.b, 0)),\n a\n };\n }\n function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n }\n function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n if (max == min) {\n h = s = 0;\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h, s, l };\n }\n function hslToRgb(h, s, l) {\n var r, g, b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n function hue2rgb(p2, q2, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p2 + (q2 - p2) * 6 * t;\n if (t < 1 / 2) return q2;\n if (t < 2 / 3) return p2 + (q2 - p2) * (2 / 3 - t) * 6;\n return p2;\n }\n if (s === 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n if (max == min) {\n h = 0;\n } else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h, s, v };\n }\n function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math2.floor(h), f = h - i, p = v * (1 - s), q = v * (1 - f * s), t = v * (1 - (1 - f) * s), mod = i % 6, r = [v, q, p, p, t, v][mod], g = [t, v, v, q, p, p][mod], b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n }\n function rgbToHex(r, g, b, allow3Char) {\n var hex2 = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n if (allow3Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1)) {\n return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0);\n }\n return hex2.join(\"\");\n }\n function rgbaToHex(r, g, b, a, allow4Char) {\n var hex2 = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n if (allow4Char && hex2[0].charAt(0) == hex2[0].charAt(1) && hex2[1].charAt(0) == hex2[1].charAt(1) && hex2[2].charAt(0) == hex2[2].charAt(1) && hex2[3].charAt(0) == hex2[3].charAt(1)) {\n return hex2[0].charAt(0) + hex2[1].charAt(0) + hex2[2].charAt(0) + hex2[3].charAt(0);\n }\n return hex2.join(\"\");\n }\n function rgbaToArgbHex(r, g, b, a) {\n var hex2 = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n return hex2.join(\"\");\n }\n tinycolor.equals = function(color1, color2) {\n if (!color1 || !color2) {\n return false;\n }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n };\n tinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n };\n function desaturate(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.s -= amount / 100;\n hsl3.s = clamp01(hsl3.s);\n return tinycolor(hsl3);\n }\n function saturate(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.s += amount / 100;\n hsl3.s = clamp01(hsl3.s);\n return tinycolor(hsl3);\n }\n function greyscale(color2) {\n return tinycolor(color2).desaturate(100);\n }\n function lighten(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.l += amount / 100;\n hsl3.l = clamp01(hsl3.l);\n return tinycolor(hsl3);\n }\n function brighten(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var rgb2 = tinycolor(color2).toRgb();\n rgb2.r = mathMax(0, mathMin(255, rgb2.r - mathRound(255 * -(amount / 100))));\n rgb2.g = mathMax(0, mathMin(255, rgb2.g - mathRound(255 * -(amount / 100))));\n rgb2.b = mathMax(0, mathMin(255, rgb2.b - mathRound(255 * -(amount / 100))));\n return tinycolor(rgb2);\n }\n function darken(color2, amount) {\n amount = amount === 0 ? 0 : amount || 10;\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.l -= amount / 100;\n hsl3.l = clamp01(hsl3.l);\n return tinycolor(hsl3);\n }\n function spin(color2, amount) {\n var hsl3 = tinycolor(color2).toHsl();\n var hue2 = (hsl3.h + amount) % 360;\n hsl3.h = hue2 < 0 ? 360 + hue2 : hue2;\n return tinycolor(hsl3);\n }\n function complement(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n hsl3.h = (hsl3.h + 180) % 360;\n return tinycolor(hsl3);\n }\n function triad(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n var h = hsl3.h;\n return [\n tinycolor(color2),\n tinycolor({ h: (h + 120) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl3.s, l: hsl3.l })\n ];\n }\n function tetrad(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n var h = hsl3.h;\n return [\n tinycolor(color2),\n tinycolor({ h: (h + 90) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl3.s, l: hsl3.l })\n ];\n }\n function splitcomplement(color2) {\n var hsl3 = tinycolor(color2).toHsl();\n var h = hsl3.h;\n return [\n tinycolor(color2),\n tinycolor({ h: (h + 72) % 360, s: hsl3.s, l: hsl3.l }),\n tinycolor({ h: (h + 216) % 360, s: hsl3.s, l: hsl3.l })\n ];\n }\n function analogous(color2, results, slices) {\n results = results || 6;\n slices = slices || 30;\n var hsl3 = tinycolor(color2).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color2)];\n for (hsl3.h = (hsl3.h - (part * results >> 1) + 720) % 360; --results; ) {\n hsl3.h = (hsl3.h + part) % 360;\n ret.push(tinycolor(hsl3));\n }\n return ret;\n }\n function monochromatic(color2, results) {\n results = results || 6;\n var hsv = tinycolor(color2).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n while (results--) {\n ret.push(tinycolor({ h, s, v }));\n v = (v + modification) % 1;\n }\n return ret;\n }\n tinycolor.mix = function(color1, color2, amount) {\n amount = amount === 0 ? 0 : amount || 50;\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n var p = amount / 100;\n var rgba3 = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a\n };\n return tinycolor(rgba3);\n };\n tinycolor.readability = function(color1, color2) {\n var c1 = tinycolor(color1);\n var c2 = tinycolor(color2);\n return (Math2.max(c1.getLuminance(), c2.getLuminance()) + 0.05) / (Math2.min(c1.getLuminance(), c2.getLuminance()) + 0.05);\n };\n tinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n out = false;\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n };\n tinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors;\n level = args.level;\n size = args.size;\n for (var i = 0; i < colorList.length; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n if (tinycolor.isReadable(baseColor, bestColor, { \"level\": level, \"size\": size }) || !includeFallbackColors) {\n return bestColor;\n } else {\n args.includeFallbackColors = false;\n return tinycolor.mostReadable(baseColor, [\"#fff\", \"#000\"], args);\n }\n };\n var names2 = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n };\n var hexNames = tinycolor.hexNames = flip(names2);\n function flip(o) {\n var flipped = {};\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n }\n function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n }\n function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = \"100%\";\n }\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n if (Math2.abs(n - max) < 1e-6) {\n return 1;\n }\n return n % max / parseFloat(max);\n }\n function clamp01(val) {\n return mathMin(1, mathMax(0, val));\n }\n function parseIntFromHex(val) {\n return parseInt(val, 16);\n }\n function isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf(\".\") != -1 && parseFloat(n) === 1;\n }\n function isPercentage(n) {\n return typeof n === \"string\" && n.indexOf(\"%\") != -1;\n }\n function pad2(c) {\n return c.length == 1 ? \"0\" + c : \"\" + c;\n }\n function convertToPercentage(n) {\n if (n <= 1) {\n n = n * 100 + \"%\";\n }\n return n;\n }\n function convertDecimalToHex(d) {\n return Math2.round(parseFloat(d) * 255).toString(16);\n }\n function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n }\n var matchers = function() {\n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n }();\n function isValidCSSUnit(color2) {\n return !!matchers.CSS_UNIT.exec(color2);\n }\n function stringInputToObject(color2) {\n color2 = color2.replace(trimLeft, \"\").replace(trimRight, \"\").toLowerCase();\n var named2 = false;\n if (names2[color2]) {\n color2 = names2[color2];\n named2 = true;\n } else if (color2 == \"transparent\") {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n var match;\n if (match = matchers.rgb.exec(color2)) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if (match = matchers.rgba.exec(color2)) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if (match = matchers.hsl.exec(color2)) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if (match = matchers.hsla.exec(color2)) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if (match = matchers.hsv.exec(color2)) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if (match = matchers.hsva.exec(color2)) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if (match = matchers.hex8.exec(color2)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named2 ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex6.exec(color2)) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named2 ? \"name\" : \"hex\"\n };\n }\n if (match = matchers.hex4.exec(color2)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n a: convertHexToDecimal(match[4] + \"\" + match[4]),\n format: named2 ? \"name\" : \"hex8\"\n };\n }\n if (match = matchers.hex3.exec(color2)) {\n return {\n r: parseIntFromHex(match[1] + \"\" + match[1]),\n g: parseIntFromHex(match[2] + \"\" + match[2]),\n b: parseIntFromHex(match[3] + \"\" + match[3]),\n format: named2 ? \"name\" : \"hex\"\n };\n }\n return false;\n }\n function validateWCAG2Parms(parms) {\n var level, size;\n parms = parms || { \"level\": \"AA\", \"size\": \"small\" };\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return { \"level\": level, \"size\": size };\n }\n if (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n } else if (typeof define === \"function\" && false) {\n define(function() {\n return tinycolor;\n });\n } else {\n window.tinycolor = tinycolor;\n }\n })(Math);\n }\n });\n\n // src/lib/extend.js\n var require_extend = __commonJS({\n \"src/lib/extend.js\"(exports) {\n \"use strict\";\n var isPlainObject = require_is_plain_object();\n var isArray = Array.isArray;\n function primitivesLoopSplice(source, target) {\n var i, value;\n for (i = 0; i < source.length; i++) {\n value = source[i];\n if (value !== null && typeof value === \"object\") {\n return false;\n }\n if (value !== void 0) {\n target[i] = value;\n }\n }\n return true;\n }\n exports.extendFlat = function() {\n return _extend(arguments, false, false, false);\n };\n exports.extendDeep = function() {\n return _extend(arguments, true, false, false);\n };\n exports.extendDeepAll = function() {\n return _extend(arguments, true, true, false);\n };\n exports.extendDeepNoArrays = function() {\n return _extend(arguments, true, false, true);\n };\n function _extend(inputs, isDeep, keepAllKeys, noArrayCopies) {\n var target = inputs[0];\n var length = inputs.length;\n var input, key, src, copy, copyIsArray, clone, allPrimitives;\n if (length === 2 && isArray(target) && isArray(inputs[1]) && target.length === 0) {\n allPrimitives = primitivesLoopSplice(inputs[1], target);\n if (allPrimitives) {\n return target;\n } else {\n target.splice(0, target.length);\n }\n }\n for (var i = 1; i < length; i++) {\n input = inputs[i];\n for (key in input) {\n src = target[key];\n copy = input[key];\n if (noArrayCopies && isArray(copy)) {\n target[key] = copy;\n } else if (isDeep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[key] = _extend([clone, copy], isDeep, keepAllKeys, noArrayCopies);\n } else if (typeof copy !== \"undefined\" || keepAllKeys) {\n target[key] = copy;\n }\n }\n }\n return target;\n }\n }\n });\n\n // src/plots/font_attributes.js\n var require_font_attributes = __commonJS({\n \"src/plots/font_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = function(opts) {\n var variantValues = opts.variantValues;\n var editType = opts.editType;\n var colorEditType = opts.colorEditType;\n if (colorEditType === void 0) colorEditType = editType;\n var weight = {\n editType,\n valType: \"integer\",\n min: 1,\n max: 1e3,\n extras: [\"normal\", \"bold\"],\n dflt: \"normal\"\n };\n if (opts.noNumericWeightValues) {\n weight.valType = \"enumerated\";\n weight.values = weight.extras;\n weight.extras = void 0;\n weight.min = void 0;\n weight.max = void 0;\n }\n var attrs = {\n family: {\n valType: \"string\",\n noBlank: true,\n strict: true,\n editType\n },\n size: {\n valType: \"number\",\n min: 1,\n editType\n },\n color: {\n valType: \"color\",\n editType: colorEditType\n },\n weight,\n style: {\n editType,\n valType: \"enumerated\",\n values: [\"normal\", \"italic\"],\n dflt: \"normal\"\n },\n variant: opts.noFontVariant ? void 0 : {\n editType,\n valType: \"enumerated\",\n values: variantValues || [\n \"normal\",\n \"small-caps\",\n \"all-small-caps\",\n \"all-petite-caps\",\n \"petite-caps\",\n \"unicase\"\n ],\n dflt: \"normal\"\n },\n textcase: opts.noFontTextcase ? void 0 : {\n editType,\n valType: \"enumerated\",\n values: [\"normal\", \"word caps\", \"upper\", \"lower\"],\n dflt: \"normal\"\n },\n lineposition: opts.noFontLineposition ? void 0 : {\n editType,\n valType: \"flaglist\",\n flags: [\"under\", \"over\", \"through\"],\n extras: [\"none\"],\n dflt: \"none\"\n },\n shadow: opts.noFontShadow ? void 0 : {\n editType,\n valType: \"string\",\n dflt: opts.autoShadowDflt ? \"auto\" : \"none\"\n },\n editType\n // blank strings so compress_attributes can remove\n // TODO - that's uber hacky... better solution?\n };\n if (opts.autoSize) attrs.size.dflt = \"auto\";\n if (opts.autoColor) attrs.color.dflt = \"auto\";\n if (opts.arrayOk) {\n attrs.family.arrayOk = true;\n attrs.weight.arrayOk = true;\n attrs.style.arrayOk = true;\n if (!opts.noFontVariant) {\n attrs.variant.arrayOk = true;\n }\n if (!opts.noFontTextcase) {\n attrs.textcase.arrayOk = true;\n }\n if (!opts.noFontLineposition) {\n attrs.lineposition.arrayOk = true;\n }\n if (!opts.noFontShadow) {\n attrs.shadow.arrayOk = true;\n }\n attrs.size.arrayOk = true;\n attrs.color.arrayOk = true;\n }\n return attrs;\n };\n }\n });\n\n // src/components/fx/constants.js\n var require_constants = __commonJS({\n \"src/components/fx/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // hover labels for multiple horizontal bars get tilted by this angle\n YANGLE: 60,\n // size and display constants for hover text\n // pixel size of hover arrows\n HOVERARROWSIZE: 6,\n // pixels padding around text\n HOVERTEXTPAD: 3,\n // hover font\n HOVERFONTSIZE: 13,\n HOVERFONT: \"Arial, sans-serif\",\n // minimum time (msec) between hover calls\n HOVERMINTIME: 50,\n // ID suffix (with fullLayout._uid) for hover events in the throttle cache\n HOVERID: \"-hover\"\n };\n }\n });\n\n // src/components/fx/layout_attributes.js\n var require_layout_attributes = __commonJS({\n \"src/components/fx/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants();\n var fontAttrs = require_font_attributes();\n var font = fontAttrs({\n editType: \"none\"\n });\n font.family.dflt = constants.HOVERFONT;\n font.size.dflt = constants.HOVERFONTSIZE;\n module.exports = {\n clickmode: {\n valType: \"flaglist\",\n flags: [\"event\", \"select\"],\n dflt: \"event\",\n editType: \"plot\",\n extras: [\"none\"]\n },\n dragmode: {\n valType: \"enumerated\",\n values: [\n \"zoom\",\n \"pan\",\n \"select\",\n \"lasso\",\n \"drawclosedpath\",\n \"drawopenpath\",\n \"drawline\",\n \"drawrect\",\n \"drawcircle\",\n \"orbit\",\n \"turntable\",\n false\n ],\n dflt: \"zoom\",\n editType: \"modebar\"\n },\n hovermode: {\n valType: \"enumerated\",\n values: [\"x\", \"y\", \"closest\", false, \"x unified\", \"y unified\"],\n dflt: \"closest\",\n editType: \"modebar\"\n },\n hoversubplots: {\n valType: \"enumerated\",\n values: [\"single\", \"overlaying\", \"axis\"],\n dflt: \"overlaying\",\n editType: \"none\"\n },\n hoverdistance: {\n valType: \"integer\",\n min: -1,\n dflt: 20,\n editType: \"none\"\n },\n spikedistance: {\n valType: \"integer\",\n min: -1,\n dflt: -1,\n editType: \"none\"\n },\n hoverlabel: {\n bgcolor: {\n valType: \"color\",\n editType: \"none\"\n },\n bordercolor: {\n valType: \"color\",\n editType: \"none\"\n },\n font,\n grouptitlefont: fontAttrs({\n editType: \"none\"\n }),\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"right\", \"auto\"],\n dflt: \"auto\",\n editType: \"none\"\n },\n namelength: {\n valType: \"integer\",\n min: -1,\n dflt: 15,\n editType: \"none\"\n },\n editType: \"none\"\n },\n selectdirection: {\n valType: \"enumerated\",\n values: [\"h\", \"v\", \"d\", \"any\"],\n dflt: \"any\",\n editType: \"none\"\n }\n };\n }\n });\n\n // src/components/fx/attributes.js\n var require_attributes = __commonJS({\n \"src/components/fx/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var hoverLabelAttrs = require_layout_attributes().hoverlabel;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n hoverlabel: {\n bgcolor: extendFlat({}, hoverLabelAttrs.bgcolor, {\n arrayOk: true\n }),\n bordercolor: extendFlat({}, hoverLabelAttrs.bordercolor, {\n arrayOk: true\n }),\n font: fontAttrs({\n arrayOk: true,\n editType: \"none\"\n }),\n align: extendFlat({}, hoverLabelAttrs.align, { arrayOk: true }),\n namelength: extendFlat({}, hoverLabelAttrs.namelength, { arrayOk: true }),\n editType: \"none\"\n }\n };\n }\n });\n\n // src/plots/attributes.js\n var require_attributes2 = __commonJS({\n \"src/plots/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var fxAttrs = require_attributes();\n module.exports = {\n type: {\n valType: \"enumerated\",\n values: [],\n // listed dynamically\n dflt: \"scatter\",\n editType: \"calc+clearAxisTypes\",\n _noTemplating: true\n // we handle this at a higher level\n },\n visible: {\n valType: \"enumerated\",\n values: [true, false, \"legendonly\"],\n dflt: true,\n editType: \"calc\"\n },\n showlegend: {\n valType: \"boolean\",\n dflt: true,\n editType: \"style\"\n },\n legend: {\n valType: \"subplotid\",\n dflt: \"legend\",\n editType: \"style\"\n },\n legendgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"style\"\n },\n legendgrouptitle: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"style\"\n },\n font: fontAttrs({\n editType: \"style\"\n }),\n editType: \"style\"\n },\n legendrank: {\n valType: \"number\",\n dflt: 1e3,\n editType: \"style\"\n },\n legendwidth: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"style\"\n },\n name: {\n valType: \"string\",\n editType: \"style\"\n },\n uid: {\n valType: \"string\",\n editType: \"plot\",\n anim: true\n },\n ids: {\n valType: \"data_array\",\n editType: \"calc\",\n anim: true\n },\n customdata: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n meta: {\n valType: \"any\",\n arrayOk: true,\n editType: \"plot\"\n },\n // N.B. these cannot be 'data_array' as they do not have the same length as\n // other data arrays and arrayOk attributes in general\n //\n // Maybe add another valType:\n // https://github.com/plotly/plotly.js/issues/1894\n selectedpoints: {\n valType: \"any\",\n editType: \"calc\"\n },\n hoverinfo: {\n valType: \"flaglist\",\n flags: [\"x\", \"y\", \"z\", \"text\", \"name\"],\n extras: [\"all\", \"none\", \"skip\"],\n arrayOk: true,\n dflt: \"all\",\n editType: \"none\"\n },\n hoverlabel: fxAttrs.hoverlabel,\n stream: {\n token: {\n valType: \"string\",\n noBlank: true,\n strict: true,\n editType: \"calc\"\n },\n maxpoints: {\n valType: \"number\",\n min: 0,\n max: 1e4,\n dflt: 500,\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n }\n };\n }\n });\n\n // src/components/colorscale/scales.js\n var require_scales = __commonJS({\n \"src/components/colorscale/scales.js\"(exports, module) {\n \"use strict\";\n var tinycolor = require_tinycolor();\n var scales = {\n Greys: [\n [0, \"rgb(0,0,0)\"],\n [1, \"rgb(255,255,255)\"]\n ],\n YlGnBu: [\n [0, \"rgb(8,29,88)\"],\n [0.125, \"rgb(37,52,148)\"],\n [0.25, \"rgb(34,94,168)\"],\n [0.375, \"rgb(29,145,192)\"],\n [0.5, \"rgb(65,182,196)\"],\n [0.625, \"rgb(127,205,187)\"],\n [0.75, \"rgb(199,233,180)\"],\n [0.875, \"rgb(237,248,217)\"],\n [1, \"rgb(255,255,217)\"]\n ],\n Greens: [\n [0, \"rgb(0,68,27)\"],\n [0.125, \"rgb(0,109,44)\"],\n [0.25, \"rgb(35,139,69)\"],\n [0.375, \"rgb(65,171,93)\"],\n [0.5, \"rgb(116,196,118)\"],\n [0.625, \"rgb(161,217,155)\"],\n [0.75, \"rgb(199,233,192)\"],\n [0.875, \"rgb(229,245,224)\"],\n [1, \"rgb(247,252,245)\"]\n ],\n YlOrRd: [\n [0, \"rgb(128,0,38)\"],\n [0.125, \"rgb(189,0,38)\"],\n [0.25, \"rgb(227,26,28)\"],\n [0.375, \"rgb(252,78,42)\"],\n [0.5, \"rgb(253,141,60)\"],\n [0.625, \"rgb(254,178,76)\"],\n [0.75, \"rgb(254,217,118)\"],\n [0.875, \"rgb(255,237,160)\"],\n [1, \"rgb(255,255,204)\"]\n ],\n Bluered: [\n [0, \"rgb(0,0,255)\"],\n [1, \"rgb(255,0,0)\"]\n ],\n // modified RdBu based on\n // http://www.kennethmoreland.com/color-maps/\n RdBu: [\n [0, \"rgb(5,10,172)\"],\n [0.35, \"rgb(106,137,247)\"],\n [0.5, \"rgb(190,190,190)\"],\n [0.6, \"rgb(220,170,132)\"],\n [0.7, \"rgb(230,145,90)\"],\n [1, \"rgb(178,10,28)\"]\n ],\n // Scale for non-negative numeric values\n Reds: [\n [0, \"rgb(220,220,220)\"],\n [0.2, \"rgb(245,195,157)\"],\n [0.4, \"rgb(245,160,105)\"],\n [1, \"rgb(178,10,28)\"]\n ],\n // Scale for non-positive numeric values\n Blues: [\n [0, \"rgb(5,10,172)\"],\n [0.35, \"rgb(40,60,190)\"],\n [0.5, \"rgb(70,100,245)\"],\n [0.6, \"rgb(90,120,245)\"],\n [0.7, \"rgb(106,137,247)\"],\n [1, \"rgb(220,220,220)\"]\n ],\n Picnic: [\n [0, \"rgb(0,0,255)\"],\n [0.1, \"rgb(51,153,255)\"],\n [0.2, \"rgb(102,204,255)\"],\n [0.3, \"rgb(153,204,255)\"],\n [0.4, \"rgb(204,204,255)\"],\n [0.5, \"rgb(255,255,255)\"],\n [0.6, \"rgb(255,204,255)\"],\n [0.7, \"rgb(255,153,255)\"],\n [0.8, \"rgb(255,102,204)\"],\n [0.9, \"rgb(255,102,102)\"],\n [1, \"rgb(255,0,0)\"]\n ],\n Rainbow: [\n [0, \"rgb(150,0,90)\"],\n [0.125, \"rgb(0,0,200)\"],\n [0.25, \"rgb(0,25,255)\"],\n [0.375, \"rgb(0,152,255)\"],\n [0.5, \"rgb(44,255,150)\"],\n [0.625, \"rgb(151,255,0)\"],\n [0.75, \"rgb(255,234,0)\"],\n [0.875, \"rgb(255,111,0)\"],\n [1, \"rgb(255,0,0)\"]\n ],\n Portland: [\n [0, \"rgb(12,51,131)\"],\n [0.25, \"rgb(10,136,186)\"],\n [0.5, \"rgb(242,211,56)\"],\n [0.75, \"rgb(242,143,56)\"],\n [1, \"rgb(217,30,30)\"]\n ],\n Jet: [\n [0, \"rgb(0,0,131)\"],\n [0.125, \"rgb(0,60,170)\"],\n [0.375, \"rgb(5,255,255)\"],\n [0.625, \"rgb(255,255,0)\"],\n [0.875, \"rgb(250,0,0)\"],\n [1, \"rgb(128,0,0)\"]\n ],\n Hot: [\n [0, \"rgb(0,0,0)\"],\n [0.3, \"rgb(230,0,0)\"],\n [0.6, \"rgb(255,210,0)\"],\n [1, \"rgb(255,255,255)\"]\n ],\n Blackbody: [\n [0, \"rgb(0,0,0)\"],\n [0.2, \"rgb(230,0,0)\"],\n [0.4, \"rgb(230,210,0)\"],\n [0.7, \"rgb(255,255,255)\"],\n [1, \"rgb(160,200,255)\"]\n ],\n Earth: [\n [0, \"rgb(0,0,130)\"],\n [0.1, \"rgb(0,180,180)\"],\n [0.2, \"rgb(40,210,40)\"],\n [0.4, \"rgb(230,230,50)\"],\n [0.6, \"rgb(120,70,20)\"],\n [1, \"rgb(255,255,255)\"]\n ],\n Electric: [\n [0, \"rgb(0,0,0)\"],\n [0.15, \"rgb(30,0,100)\"],\n [0.4, \"rgb(120,0,100)\"],\n [0.6, \"rgb(160,90,0)\"],\n [0.8, \"rgb(230,200,0)\"],\n [1, \"rgb(255,250,220)\"]\n ],\n Viridis: [\n [0, \"#440154\"],\n [0.06274509803921569, \"#48186a\"],\n [0.12549019607843137, \"#472d7b\"],\n [0.18823529411764706, \"#424086\"],\n [0.25098039215686274, \"#3b528b\"],\n [0.3137254901960784, \"#33638d\"],\n [0.3764705882352941, \"#2c728e\"],\n [0.4392156862745098, \"#26828e\"],\n [0.5019607843137255, \"#21918c\"],\n [0.5647058823529412, \"#1fa088\"],\n [0.6274509803921569, \"#28ae80\"],\n [0.6901960784313725, \"#3fbc73\"],\n [0.7529411764705882, \"#5ec962\"],\n [0.8156862745098039, \"#84d44b\"],\n [0.8784313725490196, \"#addc30\"],\n [0.9411764705882353, \"#d8e219\"],\n [1, \"#fde725\"]\n ],\n Cividis: [\n [0, \"rgb(0,32,76)\"],\n [0.058824, \"rgb(0,42,102)\"],\n [0.117647, \"rgb(0,52,110)\"],\n [0.176471, \"rgb(39,63,108)\"],\n [0.235294, \"rgb(60,74,107)\"],\n [0.294118, \"rgb(76,85,107)\"],\n [0.352941, \"rgb(91,95,109)\"],\n [0.411765, \"rgb(104,106,112)\"],\n [0.470588, \"rgb(117,117,117)\"],\n [0.529412, \"rgb(131,129,120)\"],\n [0.588235, \"rgb(146,140,120)\"],\n [0.647059, \"rgb(161,152,118)\"],\n [0.705882, \"rgb(176,165,114)\"],\n [0.764706, \"rgb(192,177,109)\"],\n [0.823529, \"rgb(209,191,102)\"],\n [0.882353, \"rgb(225,204,92)\"],\n [0.941176, \"rgb(243,219,79)\"],\n [1, \"rgb(255,233,69)\"]\n ]\n };\n var defaultScale = scales.RdBu;\n function getScale(scl, dflt) {\n if (!dflt) dflt = defaultScale;\n if (!scl) return dflt;\n function parseScale() {\n try {\n scl = scales[scl] || JSON.parse(scl);\n } catch (e) {\n scl = dflt;\n }\n }\n if (typeof scl === \"string\") {\n parseScale();\n if (typeof scl === \"string\") parseScale();\n }\n if (!isValidScaleArray(scl)) return dflt;\n return scl;\n }\n function isValidScaleArray(scl) {\n var highestVal = 0;\n if (!Array.isArray(scl) || scl.length < 2) return false;\n if (!scl[0] || !scl[scl.length - 1]) return false;\n if (+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n for (var i = 0; i < scl.length; i++) {\n var si = scl[i];\n if (si.length !== 2 || +si[0] < highestVal || !tinycolor(si[1]).isValid()) {\n return false;\n }\n highestVal = +si[0];\n }\n return true;\n }\n function isValidScale(scl) {\n if (scales[scl] !== void 0) return true;\n else return isValidScaleArray(scl);\n }\n module.exports = {\n scales,\n defaultScale,\n get: getScale,\n isValid: isValidScale\n };\n }\n });\n\n // src/components/color/attributes.js\n var require_attributes3 = __commonJS({\n \"src/components/color/attributes.js\"(exports) {\n \"use strict\";\n exports.defaults = [\n \"#1f77b4\",\n // muted blue\n \"#ff7f0e\",\n // safety orange\n \"#2ca02c\",\n // cooked asparagus green\n \"#d62728\",\n // brick red\n \"#9467bd\",\n // muted purple\n \"#8c564b\",\n // chestnut brown\n \"#e377c2\",\n // raspberry yogurt pink\n \"#7f7f7f\",\n // middle gray\n \"#bcbd22\",\n // curry yellow-green\n \"#17becf\"\n // blue-teal\n ];\n exports.defaultLine = \"#444\";\n exports.lightLine = \"#eee\";\n exports.background = \"#fff\";\n exports.borderLine = \"#BEC8D9\";\n exports.lightFraction = 100 * (14 - 4) / (15 - 4);\n }\n });\n\n // src/components/color/index.js\n var require_color = __commonJS({\n \"src/components/color/index.js\"(exports, module) {\n \"use strict\";\n var tinycolor = require_tinycolor();\n var isNumeric = require_fast_isnumeric();\n var isTypedArray = require_array().isTypedArray;\n var color2 = module.exports = {};\n var colorAttrs = require_attributes3();\n color2.defaults = colorAttrs.defaults;\n var defaultLine = color2.defaultLine = colorAttrs.defaultLine;\n color2.lightLine = colorAttrs.lightLine;\n var background = color2.background = colorAttrs.background;\n color2.tinyRGB = function(tc) {\n var c = tc.toRgb();\n return \"rgb(\" + Math.round(c.r) + \", \" + Math.round(c.g) + \", \" + Math.round(c.b) + \")\";\n };\n color2.rgb = function(cstr) {\n return color2.tinyRGB(tinycolor(cstr));\n };\n color2.opacity = function(cstr) {\n return cstr ? tinycolor(cstr).getAlpha() : 0;\n };\n color2.addOpacity = function(cstr, op) {\n var c = tinycolor(cstr).toRgb();\n return \"rgba(\" + Math.round(c.r) + \", \" + Math.round(c.g) + \", \" + Math.round(c.b) + \", \" + op + \")\";\n };\n color2.combine = function(front, back) {\n var fc = tinycolor(front).toRgb();\n if (fc.a === 1) return tinycolor(front).toRgbString();\n var bc = tinycolor(back || background).toRgb();\n var bcflat = bc.a === 1 ? bc : {\n r: 255 * (1 - bc.a) + bc.r * bc.a,\n g: 255 * (1 - bc.a) + bc.g * bc.a,\n b: 255 * (1 - bc.a) + bc.b * bc.a\n };\n var fcflat = {\n r: bcflat.r * (1 - fc.a) + fc.r * fc.a,\n g: bcflat.g * (1 - fc.a) + fc.g * fc.a,\n b: bcflat.b * (1 - fc.a) + fc.b * fc.a\n };\n return tinycolor(fcflat).toRgbString();\n };\n color2.interpolate = function(first, second, factor) {\n var fc = tinycolor(first).toRgb();\n var sc = tinycolor(second).toRgb();\n var ic = {\n r: factor * fc.r + (1 - factor) * sc.r,\n g: factor * fc.g + (1 - factor) * sc.g,\n b: factor * fc.b + (1 - factor) * sc.b\n };\n return tinycolor(ic).toRgbString();\n };\n color2.contrast = function(cstr, lightAmount, darkAmount) {\n var tc = tinycolor(cstr);\n if (tc.getAlpha() !== 1) tc = tinycolor(color2.combine(cstr, background));\n var newColor = tc.isDark() ? lightAmount ? tc.lighten(lightAmount) : background : darkAmount ? tc.darken(darkAmount) : defaultLine;\n return newColor.toString();\n };\n color2.stroke = function(s, c) {\n var tc = tinycolor(c);\n s.style({ stroke: color2.tinyRGB(tc), \"stroke-opacity\": tc.getAlpha() });\n };\n color2.fill = function(s, c) {\n var tc = tinycolor(c);\n s.style({\n fill: color2.tinyRGB(tc),\n \"fill-opacity\": tc.getAlpha()\n });\n };\n color2.clean = function(container) {\n if (!container || typeof container !== \"object\") return;\n var keys = Object.keys(container);\n var i, j, key, val;\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n val = container[key];\n if (key.substr(key.length - 5) === \"color\") {\n if (Array.isArray(val)) {\n for (j = 0; j < val.length; j++) val[j] = cleanOne(val[j]);\n } else container[key] = cleanOne(val);\n } else if (key.substr(key.length - 10) === \"colorscale\" && Array.isArray(val)) {\n for (j = 0; j < val.length; j++) {\n if (Array.isArray(val[j])) val[j][1] = cleanOne(val[j][1]);\n }\n } else if (Array.isArray(val)) {\n var el0 = val[0];\n if (!Array.isArray(el0) && el0 && typeof el0 === \"object\") {\n for (j = 0; j < val.length; j++) color2.clean(val[j]);\n }\n } else if (val && typeof val === \"object\" && !isTypedArray(val)) color2.clean(val);\n }\n };\n function cleanOne(val) {\n if (isNumeric(val) || typeof val !== \"string\") return val;\n var valTrim = val.trim();\n if (valTrim.substr(0, 3) !== \"rgb\") return val;\n var match = valTrim.match(/^rgba?\\s*\\(([^()]*)\\)$/);\n if (!match) return val;\n var parts = match[1].trim().split(/\\s*[\\s,]\\s*/);\n var rgba3 = valTrim.charAt(3) === \"a\" && parts.length === 4;\n if (!rgba3 && parts.length !== 3) return val;\n for (var i = 0; i < parts.length; i++) {\n if (!parts[i].length) return val;\n parts[i] = Number(parts[i]);\n if (!(parts[i] >= 0)) {\n return val;\n }\n if (i === 3) {\n if (parts[i] > 1) parts[i] = 1;\n } else if (parts[i] >= 1) {\n return val;\n }\n }\n var rgbStr = Math.round(parts[0] * 255) + \", \" + Math.round(parts[1] * 255) + \", \" + Math.round(parts[2] * 255);\n if (rgba3) return \"rgba(\" + rgbStr + \", \" + parts[3] + \")\";\n return \"rgb(\" + rgbStr + \")\";\n }\n }\n });\n\n // src/constants/interactions.js\n var require_interactions = __commonJS({\n \"src/constants/interactions.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n /**\n * Timing information for interactive elements\n */\n SHOW_PLACEHOLDER: 100,\n HIDE_PLACEHOLDER: 1e3,\n // opacity dimming fraction for points that are not in selection\n DESELECTDIM: 0.2\n };\n }\n });\n\n // src/lib/regex.js\n var require_regex = __commonJS({\n \"src/lib/regex.js\"(exports) {\n \"use strict\";\n exports.counter = function(head, tail, openEnded, matchBeginning) {\n var fullTail = (tail || \"\") + (openEnded ? \"\" : \"$\");\n var startWithPrefix = matchBeginning === false ? \"\" : \"^\";\n if (head === \"xy\") {\n return new RegExp(startWithPrefix + \"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?\" + fullTail);\n }\n return new RegExp(startWithPrefix + head + \"([2-9]|[1-9][0-9]+)?\" + fullTail);\n };\n }\n });\n\n // src/lib/coerce.js\n var require_coerce = __commonJS({\n \"src/lib/coerce.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var extendFlat = require_extend().extendFlat;\n var baseTraceAttrs = require_attributes2();\n var colorscales = require_scales();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var nestedProperty = require_nested_property();\n var counterRegex = require_regex().counter;\n var modHalf = require_mod().modHalf;\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n var isTypedArraySpec = require_array().isTypedArraySpec;\n var decodeTypedArraySpec = require_array().decodeTypedArraySpec;\n exports.valObjectMeta = {\n data_array: {\n // You can use *dflt=[] to force said array to exist though.\n coerceFunction: function(v, propOut, dflt) {\n propOut.set(\n isArrayOrTypedArray(v) ? v : isTypedArraySpec(v) ? decodeTypedArraySpec(v) : dflt\n );\n }\n },\n enumerated: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if (opts.coerceNumber) v = +v;\n if (opts.values.indexOf(v) === -1) propOut.set(dflt);\n else propOut.set(v);\n },\n validateFunction: function(v, opts) {\n if (opts.coerceNumber) v = +v;\n var values = opts.values;\n for (var i = 0; i < values.length; i++) {\n var k = String(values[i]);\n if (k.charAt(0) === \"/\" && k.charAt(k.length - 1) === \"/\") {\n var regex = new RegExp(k.substr(1, k.length - 2));\n if (regex.test(v)) return true;\n } else if (v === values[i]) return true;\n }\n return false;\n }\n },\n boolean: {\n coerceFunction: function(v, propOut, dflt) {\n if (v === true || v === false) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n number: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (!isNumeric(v) || opts.min !== void 0 && v < opts.min || opts.max !== void 0 && v > opts.max) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n integer: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if ((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (v % 1 || !isNumeric(v) || opts.min !== void 0 && v < opts.min || opts.max !== void 0 && v > opts.max) {\n propOut.set(dflt);\n } else propOut.set(+v);\n }\n },\n string: {\n // TODO 'values shouldn't be in there (edge case: 'dash' in Scatter)\n coerceFunction: function(v, propOut, dflt, opts) {\n if (typeof v !== \"string\") {\n var okToCoerce = typeof v === \"number\";\n if (opts.strict === true || !okToCoerce) propOut.set(dflt);\n else propOut.set(String(v));\n } else if (opts.noBlank && !v) propOut.set(dflt);\n else propOut.set(v);\n }\n },\n color: {\n coerceFunction: function(v, propOut, dflt) {\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (tinycolor(v).isValid()) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorlist: {\n coerceFunction: function(v, propOut, dflt) {\n function isColor(color2) {\n return tinycolor(color2).isValid();\n }\n if (!Array.isArray(v) || !v.length) propOut.set(dflt);\n else if (v.every(isColor)) propOut.set(v);\n else propOut.set(dflt);\n }\n },\n colorscale: {\n coerceFunction: function(v, propOut, dflt) {\n propOut.set(colorscales.get(v, dflt));\n }\n },\n angle: {\n coerceFunction: function(v, propOut, dflt) {\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (v === \"auto\") propOut.set(\"auto\");\n else if (!isNumeric(v)) propOut.set(dflt);\n else propOut.set(modHalf(+v, 360));\n }\n },\n subplotid: {\n coerceFunction: function(v, propOut, dflt, opts) {\n var regex = opts.regex || counterRegex(dflt);\n if (typeof v === \"string\" && regex.test(v)) {\n propOut.set(v);\n return;\n }\n propOut.set(dflt);\n },\n validateFunction: function(v, opts) {\n var dflt = opts.dflt;\n if (v === dflt) return true;\n if (typeof v !== \"string\") return false;\n if (counterRegex(dflt).test(v)) return true;\n return false;\n }\n },\n flaglist: {\n coerceFunction: function(v, propOut, dflt, opts) {\n if ((opts.extras || []).indexOf(v) !== -1) {\n propOut.set(v);\n return;\n }\n if (typeof v !== \"string\") {\n propOut.set(dflt);\n return;\n }\n var vParts = v.split(\"+\");\n var i = 0;\n while (i < vParts.length) {\n var vi = vParts[i];\n if (opts.flags.indexOf(vi) === -1 || vParts.indexOf(vi) < i) {\n vParts.splice(i, 1);\n } else i++;\n }\n if (!vParts.length) propOut.set(dflt);\n else propOut.set(vParts.join(\"+\"));\n }\n },\n any: {\n coerceFunction: function(v, propOut, dflt) {\n if (v === void 0) {\n propOut.set(dflt);\n } else {\n propOut.set(\n isTypedArraySpec(v) ? decodeTypedArraySpec(v) : v\n );\n }\n }\n },\n info_array: {\n // set `dimensions=2` for a 2D array or '1-2' for either\n // `items` may be a single object instead of an array, in which case\n // `freeLength` must be true.\n // if `dimensions='1-2'` and items is a 1D array, then the value can\n // either be a matching 1D array or an array of such matching 1D arrays\n coerceFunction: function(v, propOut, dflt, opts) {\n function coercePart(v2, opts2, dflt2) {\n var out;\n var propPart = { set: function(v3) {\n out = v3;\n } };\n if (dflt2 === void 0) dflt2 = opts2.dflt;\n exports.valObjectMeta[opts2.valType].coerceFunction(v2, propPart, dflt2, opts2);\n return out;\n }\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n if (!isArrayOrTypedArray(v)) {\n propOut.set(dflt);\n return;\n }\n var twoD = opts.dimensions === 2 || opts.dimensions === \"1-2\" && Array.isArray(v) && isArrayOrTypedArray(v[0]);\n var items = opts.items;\n var vOut = [];\n var arrayItems = Array.isArray(items);\n var arrayItems2D = arrayItems && twoD && isArrayOrTypedArray(items[0]);\n var innerItemsOnly = twoD && arrayItems && !arrayItems2D;\n var len = arrayItems && !innerItemsOnly ? items.length : v.length;\n var i, j, row, item, len2, vNew;\n dflt = Array.isArray(dflt) ? dflt : [];\n if (twoD) {\n for (i = 0; i < len; i++) {\n vOut[i] = [];\n row = isArrayOrTypedArray(v[i]) ? v[i] : [];\n if (innerItemsOnly) len2 = items.length;\n else if (arrayItems) len2 = items[i].length;\n else len2 = row.length;\n for (j = 0; j < len2; j++) {\n if (innerItemsOnly) item = items[j];\n else if (arrayItems) item = items[i][j];\n else item = items;\n vNew = coercePart(row[j], item, (dflt[i] || [])[j]);\n if (vNew !== void 0) vOut[i][j] = vNew;\n }\n }\n } else {\n for (i = 0; i < len; i++) {\n vNew = coercePart(v[i], arrayItems ? items[i] : items, dflt[i]);\n if (vNew !== void 0) vOut[i] = vNew;\n }\n }\n propOut.set(vOut);\n },\n validateFunction: function(v, opts) {\n if (!isArrayOrTypedArray(v)) return false;\n var items = opts.items;\n var arrayItems = Array.isArray(items);\n var twoD = opts.dimensions === 2;\n if (!opts.freeLength && v.length !== items.length) return false;\n for (var i = 0; i < v.length; i++) {\n if (twoD) {\n if (!isArrayOrTypedArray(v[i]) || !opts.freeLength && v[i].length !== items[i].length) {\n return false;\n }\n for (var j = 0; j < v[i].length; j++) {\n if (!validate(v[i][j], arrayItems ? items[i][j] : items)) {\n return false;\n }\n }\n } else if (!validate(v[i], arrayItems ? items[i] : items)) return false;\n }\n return true;\n }\n }\n };\n exports.coerce = function(containerIn, containerOut, attributes, attribute, dflt) {\n var opts = nestedProperty(attributes, attribute).get();\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = nestedProperty(containerOut, attribute);\n var v = propIn.get();\n var template = containerOut._template;\n if (v === void 0 && template) {\n v = nestedProperty(template, attribute).get();\n template = 0;\n }\n if (dflt === void 0) dflt = opts.dflt;\n if (opts.arrayOk) {\n if (isArrayOrTypedArray(v)) {\n propOut.set(v);\n return v;\n } else {\n if (isTypedArraySpec(v)) {\n v = decodeTypedArraySpec(v);\n propOut.set(v);\n return v;\n }\n }\n }\n var coerceFunction = exports.valObjectMeta[opts.valType].coerceFunction;\n coerceFunction(v, propOut, dflt, opts);\n var out = propOut.get();\n if (template && out === dflt && !validate(v, opts)) {\n v = nestedProperty(template, attribute).get();\n coerceFunction(v, propOut, dflt, opts);\n out = propOut.get();\n }\n return out;\n };\n exports.coerce2 = function(containerIn, containerOut, attributes, attribute, dflt) {\n var propIn = nestedProperty(containerIn, attribute);\n var propOut = exports.coerce(containerIn, containerOut, attributes, attribute, dflt);\n var valIn = propIn.get();\n return valIn !== void 0 && valIn !== null ? propOut : false;\n };\n exports.coerceFont = function(coerce, attr, dfltObj, opts) {\n if (!opts) opts = {};\n dfltObj = extendFlat({}, dfltObj);\n dfltObj = extendFlat(dfltObj, opts.overrideDflt || {});\n var out = {\n family: coerce(attr + \".family\", dfltObj.family),\n size: coerce(attr + \".size\", dfltObj.size),\n color: coerce(attr + \".color\", dfltObj.color),\n weight: coerce(attr + \".weight\", dfltObj.weight),\n style: coerce(attr + \".style\", dfltObj.style)\n };\n if (!opts.noFontVariant) out.variant = coerce(attr + \".variant\", dfltObj.variant);\n if (!opts.noFontLineposition) out.lineposition = coerce(attr + \".lineposition\", dfltObj.lineposition);\n if (!opts.noFontTextcase) out.textcase = coerce(attr + \".textcase\", dfltObj.textcase);\n if (!opts.noFontShadow) {\n var dfltShadow = dfltObj.shadow;\n if (dfltShadow === \"none\" && opts.autoShadowDflt) {\n dfltShadow = \"auto\";\n }\n out.shadow = coerce(attr + \".shadow\", dfltShadow);\n }\n return out;\n };\n exports.coercePattern = function(coerce, attr, markerColor, hasMarkerColorscale) {\n var shape = coerce(attr + \".shape\");\n if (shape) {\n coerce(attr + \".solidity\");\n coerce(attr + \".size\");\n var fillmode = coerce(attr + \".fillmode\");\n var isOverlay = fillmode === \"overlay\";\n if (!hasMarkerColorscale) {\n var bgcolor = coerce(\n attr + \".bgcolor\",\n isOverlay ? markerColor : void 0\n );\n coerce(\n attr + \".fgcolor\",\n isOverlay ? Color2.contrast(bgcolor) : markerColor\n );\n }\n coerce(\n attr + \".fgopacity\",\n isOverlay ? 0.5 : 1\n );\n }\n };\n exports.coerceHoverinfo = function(traceIn, traceOut, layoutOut) {\n var moduleAttrs = traceOut._module.attributes;\n var attrs = moduleAttrs.hoverinfo ? moduleAttrs : baseTraceAttrs;\n var valObj = attrs.hoverinfo;\n var dflt;\n if (layoutOut._dataLength === 1) {\n var flags = valObj.dflt === \"all\" ? valObj.flags.slice() : valObj.dflt.split(\"+\");\n flags.splice(flags.indexOf(\"name\"), 1);\n dflt = flags.join(\"+\");\n }\n return exports.coerce(traceIn, traceOut, attrs, \"hoverinfo\", dflt);\n };\n exports.coerceSelectionMarkerOpacity = function(traceOut, coerce) {\n if (!traceOut.marker) return;\n var mo = traceOut.marker.opacity;\n if (mo === void 0) return;\n var smoDflt;\n var usmoDflt;\n if (!isArrayOrTypedArray(mo) && !traceOut.selected && !traceOut.unselected) {\n smoDflt = mo;\n usmoDflt = DESELECTDIM * mo;\n }\n coerce(\"selected.marker.opacity\", smoDflt);\n coerce(\"unselected.marker.opacity\", usmoDflt);\n };\n function validate(value, opts) {\n var valObjectDef = exports.valObjectMeta[opts.valType];\n if (opts.arrayOk && isArrayOrTypedArray(value)) return true;\n if (valObjectDef.validateFunction) {\n return valObjectDef.validateFunction(value, opts);\n }\n var failed = {};\n var out = failed;\n var propMock = { set: function(v) {\n out = v;\n } };\n valObjectDef.coerceFunction(value, propMock, failed, opts);\n return out !== failed;\n }\n exports.validate = validate;\n }\n });\n\n // src/plot_api/plot_config.js\n var require_plot_config = __commonJS({\n \"src/plot_api/plot_config.js\"(exports, module) {\n \"use strict\";\n var configAttributes = {\n staticPlot: {\n valType: \"boolean\",\n dflt: false\n },\n typesetMath: {\n valType: \"boolean\",\n dflt: true\n },\n plotlyServerURL: {\n valType: \"string\",\n dflt: \"\"\n },\n editable: {\n valType: \"boolean\",\n dflt: false\n },\n edits: {\n annotationPosition: {\n valType: \"boolean\",\n dflt: false\n },\n annotationTail: {\n valType: \"boolean\",\n dflt: false\n },\n annotationText: {\n valType: \"boolean\",\n dflt: false\n },\n axisTitleText: {\n valType: \"boolean\",\n dflt: false\n },\n colorbarPosition: {\n valType: \"boolean\",\n dflt: false\n },\n colorbarTitleText: {\n valType: \"boolean\",\n dflt: false\n },\n legendPosition: {\n valType: \"boolean\",\n dflt: false\n },\n legendText: {\n valType: \"boolean\",\n dflt: false\n },\n shapePosition: {\n valType: \"boolean\",\n dflt: false\n },\n titleText: {\n valType: \"boolean\",\n dflt: false\n }\n },\n editSelection: {\n valType: \"boolean\",\n dflt: true\n },\n autosizable: {\n valType: \"boolean\",\n dflt: false\n },\n responsive: {\n valType: \"boolean\",\n dflt: false\n },\n fillFrame: {\n valType: \"boolean\",\n dflt: false\n },\n frameMargins: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n max: 0.5\n },\n scrollZoom: {\n valType: \"flaglist\",\n flags: [\"cartesian\", \"gl3d\", \"geo\", \"mapbox\", \"map\"],\n extras: [true, false],\n dflt: \"gl3d+geo+map\"\n },\n doubleClick: {\n valType: \"enumerated\",\n values: [false, \"reset\", \"autosize\", \"reset+autosize\"],\n dflt: \"reset+autosize\"\n },\n doubleClickDelay: {\n valType: \"number\",\n dflt: 300,\n min: 0\n },\n showAxisDragHandles: {\n valType: \"boolean\",\n dflt: true\n },\n showAxisRangeEntryBoxes: {\n valType: \"boolean\",\n dflt: true\n },\n showTips: {\n valType: \"boolean\",\n dflt: true\n },\n showLink: {\n valType: \"boolean\",\n dflt: false\n },\n linkText: {\n valType: \"string\",\n dflt: \"Edit chart\",\n noBlank: true\n },\n sendData: {\n valType: \"boolean\",\n dflt: true\n },\n showSources: {\n valType: \"any\",\n dflt: false\n },\n displayModeBar: {\n valType: \"enumerated\",\n values: [\"hover\", true, false],\n dflt: \"hover\"\n },\n showSendToCloud: {\n valType: \"boolean\",\n dflt: false\n },\n showEditInChartStudio: {\n valType: \"boolean\",\n dflt: false\n },\n modeBarButtonsToRemove: {\n valType: \"any\",\n dflt: []\n },\n modeBarButtonsToAdd: {\n valType: \"any\",\n dflt: []\n },\n modeBarButtons: {\n valType: \"any\",\n dflt: false\n },\n toImageButtonOptions: {\n valType: \"any\",\n dflt: {}\n },\n displaylogo: {\n valType: \"boolean\",\n dflt: true\n },\n watermark: {\n valType: \"boolean\",\n dflt: false\n },\n plotGlPixelRatio: {\n valType: \"number\",\n dflt: 2,\n min: 1,\n max: 4\n },\n setBackground: {\n valType: \"any\",\n dflt: \"transparent\"\n },\n topojsonURL: {\n valType: \"string\",\n noBlank: true,\n dflt: \"https://cdn.plot.ly/\"\n },\n mapboxAccessToken: {\n valType: \"string\",\n dflt: null\n },\n logging: {\n valType: \"integer\",\n min: 0,\n max: 2,\n dflt: 1\n },\n notifyOnLogging: {\n valType: \"integer\",\n min: 0,\n max: 2,\n dflt: 0\n },\n queueLength: {\n valType: \"integer\",\n min: 0,\n dflt: 0\n },\n locale: {\n valType: \"string\",\n dflt: \"en-US\"\n },\n locales: {\n valType: \"any\",\n dflt: {}\n }\n };\n var dfltConfig = {};\n function crawl(src, target) {\n for (var k in src) {\n var obj = src[k];\n if (obj.valType) {\n target[k] = obj.dflt;\n } else {\n if (!target[k]) {\n target[k] = {};\n }\n crawl(obj, target[k]);\n }\n }\n }\n crawl(configAttributes, dfltConfig);\n module.exports = {\n configAttributes,\n dfltConfig\n };\n }\n });\n\n // src/lib/notifier.js\n var require_notifier = __commonJS({\n \"src/lib/notifier.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var NOTEDATA = [];\n module.exports = function(text, displayLength) {\n if (NOTEDATA.indexOf(text) !== -1) return;\n NOTEDATA.push(text);\n var ts = 1e3;\n if (isNumeric(displayLength)) ts = displayLength;\n else if (displayLength === \"long\") ts = 3e3;\n var notifierContainer = d3.select(\"body\").selectAll(\".plotly-notifier\").data([0]);\n notifierContainer.enter().append(\"div\").classed(\"plotly-notifier\", true);\n var notes = notifierContainer.selectAll(\".notifier-note\").data(NOTEDATA);\n function killNote(transition) {\n transition.duration(700).style(\"opacity\", 0).each(\"end\", function(thisText) {\n var thisIndex = NOTEDATA.indexOf(thisText);\n if (thisIndex !== -1) NOTEDATA.splice(thisIndex, 1);\n d3.select(this).remove();\n });\n }\n notes.enter().append(\"div\").classed(\"notifier-note\", true).style(\"opacity\", 0).each(function(thisText) {\n var note = d3.select(this);\n note.append(\"button\").classed(\"notifier-close\", true).html(\"×\").on(\"click\", function() {\n note.transition().call(killNote);\n });\n var p = note.append(\"p\");\n var lines = thisText.split(//g);\n for (var i = 0; i < lines.length; i++) {\n if (i) p.append(\"br\");\n p.append(\"span\").text(lines[i]);\n }\n if (displayLength === \"stick\") {\n note.transition().duration(350).style(\"opacity\", 1);\n } else {\n note.transition().duration(700).style(\"opacity\", 1).transition().delay(ts).call(killNote);\n }\n });\n };\n }\n });\n\n // src/lib/loggers.js\n var require_loggers = __commonJS({\n \"src/lib/loggers.js\"(exports, module) {\n \"use strict\";\n var dfltConfig = require_plot_config().dfltConfig;\n var notifier = require_notifier();\n var loggers = module.exports = {};\n loggers.log = function() {\n var i;\n if (dfltConfig.logging > 1) {\n var messages = [\"LOG:\"];\n for (i = 0; i < arguments.length; i++) {\n messages.push(arguments[i]);\n }\n console.trace.apply(console, messages);\n }\n if (dfltConfig.notifyOnLogging > 1) {\n var lines = [];\n for (i = 0; i < arguments.length; i++) {\n lines.push(arguments[i]);\n }\n notifier(lines.join(\"
\"), \"long\");\n }\n };\n loggers.warn = function() {\n var i;\n if (dfltConfig.logging > 0) {\n var messages = [\"WARN:\"];\n for (i = 0; i < arguments.length; i++) {\n messages.push(arguments[i]);\n }\n console.trace.apply(console, messages);\n }\n if (dfltConfig.notifyOnLogging > 0) {\n var lines = [];\n for (i = 0; i < arguments.length; i++) {\n lines.push(arguments[i]);\n }\n notifier(lines.join(\"
\"), \"stick\");\n }\n };\n loggers.error = function() {\n var i;\n if (dfltConfig.logging > 0) {\n var messages = [\"ERROR:\"];\n for (i = 0; i < arguments.length; i++) {\n messages.push(arguments[i]);\n }\n console.error.apply(console, messages);\n }\n if (dfltConfig.notifyOnLogging > 0) {\n var lines = [];\n for (i = 0; i < arguments.length; i++) {\n lines.push(arguments[i]);\n }\n notifier(lines.join(\"
\"), \"stick\");\n }\n };\n }\n });\n\n // src/lib/noop.js\n var require_noop = __commonJS({\n \"src/lib/noop.js\"(exports, module) {\n \"use strict\";\n module.exports = function noop() {\n };\n }\n });\n\n // src/lib/push_unique.js\n var require_push_unique = __commonJS({\n \"src/lib/push_unique.js\"(exports, module) {\n \"use strict\";\n module.exports = function pushUnique(array, item) {\n if (item instanceof RegExp) {\n var itemStr = item.toString();\n for (var i = 0; i < array.length; i++) {\n if (array[i] instanceof RegExp && array[i].toString() === itemStr) {\n return array;\n }\n }\n array.push(item);\n } else if ((item || item === 0) && array.indexOf(item) === -1) array.push(item);\n return array;\n };\n }\n });\n\n // node_modules/gl-mat4/create.js\n var require_create = __commonJS({\n \"node_modules/gl-mat4/create.js\"(exports, module) {\n module.exports = create;\n function create() {\n var out = new Float32Array(16);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/clone.js\n var require_clone = __commonJS({\n \"node_modules/gl-mat4/clone.js\"(exports, module) {\n module.exports = clone;\n function clone(a) {\n var out = new Float32Array(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/copy.js\n var require_copy = __commonJS({\n \"node_modules/gl-mat4/copy.js\"(exports, module) {\n module.exports = copy;\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/identity.js\n var require_identity = __commonJS({\n \"node_modules/gl-mat4/identity.js\"(exports, module) {\n module.exports = identity2;\n function identity2(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/transpose.js\n var require_transpose = __commonJS({\n \"node_modules/gl-mat4/transpose.js\"(exports, module) {\n module.exports = transpose;\n function transpose(out, a) {\n if (out === a) {\n var a01 = a[1], a02 = a[2], a03 = a[3], a12 = a[6], a13 = a[7], a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/invert.js\n var require_invert = __commonJS({\n \"node_modules/gl-mat4/invert.js\"(exports, module) {\n module.exports = invert;\n function invert(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32, det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/adjoint.js\n var require_adjoint = __commonJS({\n \"node_modules/gl-mat4/adjoint.js\"(exports, module) {\n module.exports = adjoint;\n function adjoint(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n out[0] = a11 * (a22 * a33 - a23 * a32) - a21 * (a12 * a33 - a13 * a32) + a31 * (a12 * a23 - a13 * a22);\n out[1] = -(a01 * (a22 * a33 - a23 * a32) - a21 * (a02 * a33 - a03 * a32) + a31 * (a02 * a23 - a03 * a22));\n out[2] = a01 * (a12 * a33 - a13 * a32) - a11 * (a02 * a33 - a03 * a32) + a31 * (a02 * a13 - a03 * a12);\n out[3] = -(a01 * (a12 * a23 - a13 * a22) - a11 * (a02 * a23 - a03 * a22) + a21 * (a02 * a13 - a03 * a12));\n out[4] = -(a10 * (a22 * a33 - a23 * a32) - a20 * (a12 * a33 - a13 * a32) + a30 * (a12 * a23 - a13 * a22));\n out[5] = a00 * (a22 * a33 - a23 * a32) - a20 * (a02 * a33 - a03 * a32) + a30 * (a02 * a23 - a03 * a22);\n out[6] = -(a00 * (a12 * a33 - a13 * a32) - a10 * (a02 * a33 - a03 * a32) + a30 * (a02 * a13 - a03 * a12));\n out[7] = a00 * (a12 * a23 - a13 * a22) - a10 * (a02 * a23 - a03 * a22) + a20 * (a02 * a13 - a03 * a12);\n out[8] = a10 * (a21 * a33 - a23 * a31) - a20 * (a11 * a33 - a13 * a31) + a30 * (a11 * a23 - a13 * a21);\n out[9] = -(a00 * (a21 * a33 - a23 * a31) - a20 * (a01 * a33 - a03 * a31) + a30 * (a01 * a23 - a03 * a21));\n out[10] = a00 * (a11 * a33 - a13 * a31) - a10 * (a01 * a33 - a03 * a31) + a30 * (a01 * a13 - a03 * a11);\n out[11] = -(a00 * (a11 * a23 - a13 * a21) - a10 * (a01 * a23 - a03 * a21) + a20 * (a01 * a13 - a03 * a11));\n out[12] = -(a10 * (a21 * a32 - a22 * a31) - a20 * (a11 * a32 - a12 * a31) + a30 * (a11 * a22 - a12 * a21));\n out[13] = a00 * (a21 * a32 - a22 * a31) - a20 * (a01 * a32 - a02 * a31) + a30 * (a01 * a22 - a02 * a21);\n out[14] = -(a00 * (a11 * a32 - a12 * a31) - a10 * (a01 * a32 - a02 * a31) + a30 * (a01 * a12 - a02 * a11));\n out[15] = a00 * (a11 * a22 - a12 * a21) - a10 * (a01 * a22 - a02 * a21) + a20 * (a01 * a12 - a02 * a11);\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/determinant.js\n var require_determinant = __commonJS({\n \"node_modules/gl-mat4/determinant.js\"(exports, module) {\n module.exports = determinant;\n function determinant(a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32;\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n }\n }\n });\n\n // node_modules/gl-mat4/multiply.js\n var require_multiply = __commonJS({\n \"node_modules/gl-mat4/multiply.js\"(exports, module) {\n module.exports = multiply;\n function multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/translate.js\n var require_translate = __commonJS({\n \"node_modules/gl-mat4/translate.js\"(exports, module) {\n module.exports = translate;\n function translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2], a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/scale.js\n var require_scale = __commonJS({\n \"node_modules/gl-mat4/scale.js\"(exports, module) {\n module.exports = scale;\n function scale(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotate.js\n var require_rotate = __commonJS({\n \"node_modules/gl-mat4/rotate.js\"(exports, module) {\n module.exports = rotate;\n function rotate(out, a, rad, axis) {\n var x = axis[0], y = axis[1], z = axis[2], len = Math.sqrt(x * x + y * y + z * z), s, c, t, a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23, b00, b01, b02, b10, b11, b12, b20, b21, b22;\n if (Math.abs(len) < 1e-6) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c;\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n if (a !== out) {\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotateX.js\n var require_rotateX = __commonJS({\n \"node_modules/gl-mat4/rotateX.js\"(exports, module) {\n module.exports = rotateX;\n function rotateX(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotateY.js\n var require_rotateY = __commonJS({\n \"node_modules/gl-mat4/rotateY.js\"(exports, module) {\n module.exports = rotateY;\n function rotateY(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/rotateZ.js\n var require_rotateZ = __commonJS({\n \"node_modules/gl-mat4/rotateZ.js\"(exports, module) {\n module.exports = rotateZ;\n function rotateZ(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n if (a !== out) {\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromRotation.js\n var require_fromRotation = __commonJS({\n \"node_modules/gl-mat4/fromRotation.js\"(exports, module) {\n module.exports = fromRotation;\n function fromRotation(out, rad, axis) {\n var s, c, t;\n var x = axis[0];\n var y = axis[1];\n var z = axis[2];\n var len = Math.sqrt(x * x + y * y + z * z);\n if (Math.abs(len) < 1e-6) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n out[0] = x * x * t + c;\n out[1] = y * x * t + z * s;\n out[2] = z * x * t - y * s;\n out[3] = 0;\n out[4] = x * y * t - z * s;\n out[5] = y * y * t + c;\n out[6] = z * y * t + x * s;\n out[7] = 0;\n out[8] = x * z * t + y * s;\n out[9] = y * z * t - x * s;\n out[10] = z * z * t + c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromRotationTranslation.js\n var require_fromRotationTranslation = __commonJS({\n \"node_modules/gl-mat4/fromRotationTranslation.js\"(exports, module) {\n module.exports = fromRotationTranslation;\n function fromRotationTranslation(out, q, v) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, xy = x * y2, xz = x * z2, yy = y * y2, yz = y * z2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromScaling.js\n var require_fromScaling = __commonJS({\n \"node_modules/gl-mat4/fromScaling.js\"(exports, module) {\n module.exports = fromScaling;\n function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = v[1];\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = v[2];\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromTranslation.js\n var require_fromTranslation = __commonJS({\n \"node_modules/gl-mat4/fromTranslation.js\"(exports, module) {\n module.exports = fromTranslation;\n function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromXRotation.js\n var require_fromXRotation = __commonJS({\n \"node_modules/gl-mat4/fromXRotation.js\"(exports, module) {\n module.exports = fromXRotation;\n function fromXRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = c;\n out[6] = s;\n out[7] = 0;\n out[8] = 0;\n out[9] = -s;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromYRotation.js\n var require_fromYRotation = __commonJS({\n \"node_modules/gl-mat4/fromYRotation.js\"(exports, module) {\n module.exports = fromYRotation;\n function fromYRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = 0;\n out[2] = -s;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = s;\n out[9] = 0;\n out[10] = c;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromZRotation.js\n var require_fromZRotation = __commonJS({\n \"node_modules/gl-mat4/fromZRotation.js\"(exports, module) {\n module.exports = fromZRotation;\n function fromZRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = 0;\n out[4] = -s;\n out[5] = c;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/fromQuat.js\n var require_fromQuat = __commonJS({\n \"node_modules/gl-mat4/fromQuat.js\"(exports, module) {\n module.exports = fromQuat;\n function fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, yx = y * x2, yy = y * y2, zx = z * x2, zy = z * y2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/frustum.js\n var require_frustum = __commonJS({\n \"node_modules/gl-mat4/frustum.js\"(exports, module) {\n module.exports = frustum;\n function frustum(out, left, right, bottom, top, near, far) {\n var rl = 1 / (right - left), tb = 1 / (top - bottom), nf = 1 / (near - far);\n out[0] = near * 2 * rl;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = near * 2 * tb;\n out[6] = 0;\n out[7] = 0;\n out[8] = (right + left) * rl;\n out[9] = (top + bottom) * tb;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near * 2 * nf;\n out[15] = 0;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/perspective.js\n var require_perspective = __commonJS({\n \"node_modules/gl-mat4/perspective.js\"(exports, module) {\n module.exports = perspective;\n function perspective(out, fovy, aspect, near, far) {\n var f = 1 / Math.tan(fovy / 2), nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = 2 * far * near * nf;\n out[15] = 0;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/perspectiveFromFieldOfView.js\n var require_perspectiveFromFieldOfView = __commonJS({\n \"node_modules/gl-mat4/perspectiveFromFieldOfView.js\"(exports, module) {\n module.exports = perspectiveFromFieldOfView;\n function perspectiveFromFieldOfView(out, fov, near, far) {\n var upTan = Math.tan(fov.upDegrees * Math.PI / 180), downTan = Math.tan(fov.downDegrees * Math.PI / 180), leftTan = Math.tan(fov.leftDegrees * Math.PI / 180), rightTan = Math.tan(fov.rightDegrees * Math.PI / 180), xScale = 2 / (leftTan + rightTan), yScale = 2 / (upTan + downTan);\n out[0] = xScale;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = yScale;\n out[6] = 0;\n out[7] = 0;\n out[8] = -((leftTan - rightTan) * xScale * 0.5);\n out[9] = (upTan - downTan) * yScale * 0.5;\n out[10] = far / (near - far);\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = far * near / (near - far);\n out[15] = 0;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/ortho.js\n var require_ortho = __commonJS({\n \"node_modules/gl-mat4/ortho.js\"(exports, module) {\n module.exports = ortho;\n function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right), bt = 1 / (bottom - top), nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/lookAt.js\n var require_lookAt = __commonJS({\n \"node_modules/gl-mat4/lookAt.js\"(exports, module) {\n var identity2 = require_identity();\n module.exports = lookAt;\n function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len, eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2], centerx = center[0], centery = center[1], centerz = center[2];\n if (Math.abs(eyex - centerx) < 1e-6 && Math.abs(eyey - centery) < 1e-6 && Math.abs(eyez - centerz) < 1e-6) {\n return identity2(out);\n }\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n }\n }\n });\n\n // node_modules/gl-mat4/str.js\n var require_str = __commonJS({\n \"node_modules/gl-mat4/str.js\"(exports, module) {\n module.exports = str;\n function str(a) {\n return \"mat4(\" + a[0] + \", \" + a[1] + \", \" + a[2] + \", \" + a[3] + \", \" + a[4] + \", \" + a[5] + \", \" + a[6] + \", \" + a[7] + \", \" + a[8] + \", \" + a[9] + \", \" + a[10] + \", \" + a[11] + \", \" + a[12] + \", \" + a[13] + \", \" + a[14] + \", \" + a[15] + \")\";\n }\n }\n });\n\n // node_modules/gl-mat4/index.js\n var require_gl_mat4 = __commonJS({\n \"node_modules/gl-mat4/index.js\"(exports, module) {\n module.exports = {\n create: require_create(),\n clone: require_clone(),\n copy: require_copy(),\n identity: require_identity(),\n transpose: require_transpose(),\n invert: require_invert(),\n adjoint: require_adjoint(),\n determinant: require_determinant(),\n multiply: require_multiply(),\n translate: require_translate(),\n scale: require_scale(),\n rotate: require_rotate(),\n rotateX: require_rotateX(),\n rotateY: require_rotateY(),\n rotateZ: require_rotateZ(),\n fromRotation: require_fromRotation(),\n fromRotationTranslation: require_fromRotationTranslation(),\n fromScaling: require_fromScaling(),\n fromTranslation: require_fromTranslation(),\n fromXRotation: require_fromXRotation(),\n fromYRotation: require_fromYRotation(),\n fromZRotation: require_fromZRotation(),\n fromQuat: require_fromQuat(),\n frustum: require_frustum(),\n perspective: require_perspective(),\n perspectiveFromFieldOfView: require_perspectiveFromFieldOfView(),\n ortho: require_ortho(),\n lookAt: require_lookAt(),\n str: require_str()\n };\n }\n });\n\n // src/lib/matrix.js\n var require_matrix = __commonJS({\n \"src/lib/matrix.js\"(exports) {\n \"use strict\";\n var mat4X4 = require_gl_mat4();\n exports.init2dArray = function(rowLength, colLength) {\n var array = new Array(rowLength);\n for (var i = 0; i < rowLength; i++) array[i] = new Array(colLength);\n return array;\n };\n exports.transposeRagged = function(z) {\n var maxlen = 0;\n var zlen = z.length;\n var i, j;\n for (i = 0; i < zlen; i++) maxlen = Math.max(maxlen, z[i].length);\n var t = new Array(maxlen);\n for (i = 0; i < maxlen; i++) {\n t[i] = new Array(zlen);\n for (j = 0; j < zlen; j++) t[i][j] = z[j][i];\n }\n return t;\n };\n exports.dot = function(x, y) {\n if (!(x.length && y.length) || x.length !== y.length) return null;\n var len = x.length;\n var out;\n var i;\n if (x[0].length) {\n out = new Array(len);\n for (i = 0; i < len; i++) out[i] = exports.dot(x[i], y);\n } else if (y[0].length) {\n var yTranspose = exports.transposeRagged(y);\n out = new Array(yTranspose.length);\n for (i = 0; i < yTranspose.length; i++) out[i] = exports.dot(x, yTranspose[i]);\n } else {\n out = 0;\n for (i = 0; i < len; i++) out += x[i] * y[i];\n }\n return out;\n };\n exports.translationMatrix = function(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n };\n exports.rotationMatrix = function(alpha) {\n var a = alpha * Math.PI / 180;\n return [\n [Math.cos(a), -Math.sin(a), 0],\n [Math.sin(a), Math.cos(a), 0],\n [0, 0, 1]\n ];\n };\n exports.rotationXYMatrix = function(a, x, y) {\n return exports.dot(\n exports.dot(\n exports.translationMatrix(x, y),\n exports.rotationMatrix(a)\n ),\n exports.translationMatrix(-x, -y)\n );\n };\n exports.apply3DTransform = function(transform) {\n return function() {\n var args = arguments;\n var xyz = arguments.length === 1 ? args[0] : [args[0], args[1], args[2] || 0];\n return exports.dot(transform, [xyz[0], xyz[1], xyz[2], 1]).slice(0, 3);\n };\n };\n exports.apply2DTransform = function(transform) {\n return function() {\n var args = arguments;\n if (args.length === 3) {\n args = args[0];\n }\n var xy = arguments.length === 1 ? args[0] : [args[0], args[1]];\n return exports.dot(transform, [xy[0], xy[1], 1]).slice(0, 2);\n };\n };\n exports.apply2DTransform2 = function(transform) {\n var at = exports.apply2DTransform(transform);\n return function(xys) {\n return at(xys.slice(0, 2)).concat(at(xys.slice(2, 4)));\n };\n };\n exports.convertCssMatrix = function(m) {\n if (m) {\n var len = m.length;\n if (len === 16) return m;\n if (len === 6) {\n return [\n m[0],\n m[1],\n 0,\n 0,\n m[2],\n m[3],\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n m[4],\n m[5],\n 0,\n 1\n ];\n }\n }\n return [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n };\n exports.inverseTransformMatrix = function(m) {\n var out = [];\n mat4X4.invert(out, m);\n return [\n [out[0], out[1], out[2], out[3]],\n [out[4], out[5], out[6], out[7]],\n [out[8], out[9], out[10], out[11]],\n [out[12], out[13], out[14], out[15]]\n ];\n };\n }\n });\n\n // src/lib/dom.js\n var require_dom = __commonJS({\n \"src/lib/dom.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var loggers = require_loggers();\n var matrix = require_matrix();\n var mat4X4 = require_gl_mat4();\n function getGraphDiv(gd) {\n var gdElement;\n if (typeof gd === \"string\") {\n gdElement = document.getElementById(gd);\n if (gdElement === null) {\n throw new Error(\"No DOM element with id '\" + gd + \"' exists on the page.\");\n }\n return gdElement;\n } else if (gd === null || gd === void 0) {\n throw new Error(\"DOM element provided is null or undefined\");\n }\n return gd;\n }\n function isPlotDiv(el) {\n var el3 = d3.select(el);\n return el3.node() instanceof HTMLElement && el3.size() && el3.classed(\"js-plotly-plot\");\n }\n function removeElement(el) {\n var elParent = el && el.parentNode;\n if (elParent) elParent.removeChild(el);\n }\n function addStyleRule(selector, styleString) {\n addRelatedStyleRule(\"global\", selector, styleString);\n }\n function addRelatedStyleRule(uid, selector, styleString) {\n var id = \"plotly.js-style-\" + uid;\n var style = document.getElementById(id);\n if (style && style.matches(\".no-inline-styles\")) {\n return;\n }\n if (!style) {\n style = document.createElement(\"style\");\n style.setAttribute(\"id\", id);\n style.appendChild(document.createTextNode(\"\"));\n document.head.appendChild(style);\n }\n var styleSheet = style.sheet;\n if (!styleSheet) {\n loggers.warn(\"Cannot addRelatedStyleRule, probably due to strict CSP...\");\n } else if (styleSheet.insertRule) {\n styleSheet.insertRule(selector + \"{\" + styleString + \"}\", 0);\n } else if (styleSheet.addRule) {\n styleSheet.addRule(selector, styleString, 0);\n } else loggers.warn(\"addStyleRule failed\");\n }\n function deleteRelatedStyleRule(uid) {\n var id = \"plotly.js-style-\" + uid;\n var style = document.getElementById(id);\n if (style) removeElement(style);\n }\n function setStyleOnHover(selector, activeSelector, childSelector, activeStyle, inactiveStyle, element) {\n var activeStyleParts = activeStyle.split(\":\");\n var inactiveStyleParts = inactiveStyle.split(\":\");\n var eventAddedAttrName = \"data-btn-style-event-added\";\n if (!element) {\n element = document;\n }\n element.querySelectorAll(selector).forEach(function(el) {\n if (!el.getAttribute(eventAddedAttrName)) {\n el.addEventListener(\"mouseenter\", function() {\n var childEl = this.querySelector(childSelector);\n if (childEl) {\n childEl.style[activeStyleParts[0]] = activeStyleParts[1];\n }\n });\n el.addEventListener(\"mouseleave\", function() {\n var childEl = this.querySelector(childSelector);\n if (childEl) {\n if (activeSelector && this.matches(activeSelector)) {\n childEl.style[activeStyleParts[0]] = activeStyleParts[1];\n } else {\n childEl.style[inactiveStyleParts[0]] = inactiveStyleParts[1];\n }\n }\n });\n el.setAttribute(eventAddedAttrName, true);\n }\n });\n }\n function getFullTransformMatrix(element) {\n var allElements = getElementAndAncestors(element);\n var out = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n allElements.forEach(function(e) {\n var t = getElementTransformMatrix(e);\n if (t) {\n var m = matrix.convertCssMatrix(t);\n out = mat4X4.multiply(out, out, m);\n }\n });\n return out;\n }\n function getElementTransformMatrix(element) {\n var style = window.getComputedStyle(element, null);\n var transform = style.getPropertyValue(\"-webkit-transform\") || style.getPropertyValue(\"-moz-transform\") || style.getPropertyValue(\"-ms-transform\") || style.getPropertyValue(\"-o-transform\") || style.getPropertyValue(\"transform\");\n if (transform === \"none\") return null;\n return transform.replace(\"matrix\", \"\").replace(\"3d\", \"\").slice(1, -1).split(\",\").map(function(n) {\n return +n;\n });\n }\n function getElementAndAncestors(element) {\n var allElements = [];\n while (isTransformableElement(element)) {\n allElements.push(element);\n element = element.parentNode;\n if (typeof ShadowRoot === \"function\" && element instanceof ShadowRoot) {\n element = element.host;\n }\n }\n return allElements;\n }\n function isTransformableElement(element) {\n return element && (element instanceof Element || element instanceof HTMLElement);\n }\n function equalDomRects(a, b) {\n return a && b && a.top === b.top && a.left === b.left && a.right === b.right && a.bottom === b.bottom;\n }\n module.exports = {\n getGraphDiv,\n isPlotDiv,\n removeElement,\n addStyleRule,\n addRelatedStyleRule,\n deleteRelatedStyleRule,\n setStyleOnHover,\n getFullTransformMatrix,\n getElementTransformMatrix,\n getElementAndAncestors,\n equalDomRects\n };\n }\n });\n\n // src/plots/animation_attributes.js\n var require_animation_attributes = __commonJS({\n \"src/plots/animation_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n mode: {\n valType: \"enumerated\",\n dflt: \"afterall\",\n values: [\"immediate\", \"next\", \"afterall\"]\n },\n direction: {\n valType: \"enumerated\",\n values: [\"forward\", \"reverse\"],\n dflt: \"forward\"\n },\n fromcurrent: {\n valType: \"boolean\",\n dflt: false\n },\n frame: {\n duration: {\n valType: \"number\",\n min: 0,\n dflt: 500\n },\n redraw: {\n valType: \"boolean\",\n dflt: true\n }\n },\n transition: {\n duration: {\n valType: \"number\",\n min: 0,\n dflt: 500,\n editType: \"none\"\n },\n easing: {\n valType: \"enumerated\",\n dflt: \"cubic-in-out\",\n values: [\n \"linear\",\n \"quad\",\n \"cubic\",\n \"sin\",\n \"exp\",\n \"circle\",\n \"elastic\",\n \"back\",\n \"bounce\",\n \"linear-in\",\n \"quad-in\",\n \"cubic-in\",\n \"sin-in\",\n \"exp-in\",\n \"circle-in\",\n \"elastic-in\",\n \"back-in\",\n \"bounce-in\",\n \"linear-out\",\n \"quad-out\",\n \"cubic-out\",\n \"sin-out\",\n \"exp-out\",\n \"circle-out\",\n \"elastic-out\",\n \"back-out\",\n \"bounce-out\",\n \"linear-in-out\",\n \"quad-in-out\",\n \"cubic-in-out\",\n \"sin-in-out\",\n \"exp-in-out\",\n \"circle-in-out\",\n \"elastic-in-out\",\n \"back-in-out\",\n \"bounce-in-out\"\n ],\n editType: \"none\"\n },\n ordering: {\n valType: \"enumerated\",\n values: [\"layout first\", \"traces first\"],\n dflt: \"layout first\",\n editType: \"none\"\n }\n }\n };\n }\n });\n\n // src/plot_api/edit_types.js\n var require_edit_types = __commonJS({\n \"src/plot_api/edit_types.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var isPlainObject = require_is_plain_object();\n var traceOpts = {\n valType: \"flaglist\",\n extras: [\"none\"],\n flags: [\"calc\", \"clearAxisTypes\", \"plot\", \"style\", \"markerSize\", \"colorbars\"]\n };\n var layoutOpts = {\n valType: \"flaglist\",\n extras: [\"none\"],\n flags: [\n \"calc\",\n \"plot\",\n \"legend\",\n \"ticks\",\n \"axrange\",\n \"layoutstyle\",\n \"modebar\",\n \"camera\",\n \"arraydraw\",\n \"colorbars\"\n ]\n };\n var traceEditTypeFlags = traceOpts.flags.slice().concat([\"fullReplot\"]);\n var layoutEditTypeFlags = layoutOpts.flags.slice().concat(\"layoutReplot\");\n module.exports = {\n traces: traceOpts,\n layout: layoutOpts,\n /*\n * default (all false) edit flags for restyle (traces)\n * creates a new object each call, so the caller can mutate freely\n */\n traceFlags: function() {\n return falseObj(traceEditTypeFlags);\n },\n /*\n * default (all false) edit flags for relayout\n * creates a new object each call, so the caller can mutate freely\n */\n layoutFlags: function() {\n return falseObj(layoutEditTypeFlags);\n },\n /*\n * update `flags` with the `editType` values found in `attr`\n */\n update: function(flags, attr) {\n var editType = attr.editType;\n if (editType && editType !== \"none\") {\n var editTypeParts = editType.split(\"+\");\n for (var i = 0; i < editTypeParts.length; i++) {\n flags[editTypeParts[i]] = true;\n }\n }\n },\n overrideAll\n };\n function falseObj(keys) {\n var out = {};\n for (var i = 0; i < keys.length; i++) out[keys[i]] = false;\n return out;\n }\n function overrideAll(attrs, editTypeOverride, overrideContainers) {\n var out = extendFlat({}, attrs);\n for (var key in out) {\n var attr = out[key];\n if (isPlainObject(attr)) {\n out[key] = overrideOne(attr, editTypeOverride, overrideContainers, key);\n }\n }\n if (overrideContainers === \"from-root\") out.editType = editTypeOverride;\n return out;\n }\n function overrideOne(attr, editTypeOverride, overrideContainers, key) {\n if (attr.valType) {\n var out = extendFlat({}, attr);\n out.editType = editTypeOverride;\n if (Array.isArray(attr.items)) {\n out.items = new Array(attr.items.length);\n for (var i = 0; i < attr.items.length; i++) {\n out.items[i] = overrideOne(attr.items[i], editTypeOverride, \"from-root\");\n }\n }\n return out;\n } else {\n return overrideAll(\n attr,\n editTypeOverride,\n key.charAt(0) === \"_\" ? \"nested\" : \"from-root\"\n );\n }\n }\n }\n });\n\n // src/components/drawing/attributes.js\n var require_attributes4 = __commonJS({\n \"src/components/drawing/attributes.js\"(exports) {\n \"use strict\";\n exports.dash = {\n valType: \"string\",\n // string type usually doesn't take values... this one should really be\n // a special type or at least a special coercion function, from the GUI\n // you only get these values but elsewhere the user can supply a list of\n // dash lengths in px, and it will be honored\n values: [\"solid\", \"dot\", \"dash\", \"longdash\", \"dashdot\", \"longdashdot\"],\n dflt: \"solid\",\n editType: \"style\"\n };\n exports.pattern = {\n shape: {\n valType: \"enumerated\",\n values: [\"\", \"/\", \"\\\\\", \"x\", \"-\", \"|\", \"+\", \".\"],\n dflt: \"\",\n arrayOk: true,\n editType: \"style\"\n },\n fillmode: {\n valType: \"enumerated\",\n values: [\"replace\", \"overlay\"],\n dflt: \"replace\",\n editType: \"style\"\n },\n bgcolor: {\n valType: \"color\",\n arrayOk: true,\n editType: \"style\"\n },\n fgcolor: {\n valType: \"color\",\n arrayOk: true,\n editType: \"style\"\n },\n fgopacity: {\n valType: \"number\",\n editType: \"style\",\n min: 0,\n max: 1\n },\n size: {\n valType: \"number\",\n min: 0,\n dflt: 8,\n arrayOk: true,\n editType: \"style\"\n },\n solidity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.3,\n arrayOk: true,\n editType: \"style\"\n },\n editType: \"style\"\n };\n }\n });\n\n // src/constants/docs.js\n var require_docs = __commonJS({\n \"src/constants/docs.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n FORMAT_LINK: \"https://github.com/d3/d3-format/tree/v1.4.5#d3-format\",\n DATE_FORMAT_LINK: \"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format\"\n };\n }\n });\n\n // src/plots/template_attributes.js\n var require_template_attributes = __commonJS({\n \"src/plots/template_attributes.js\"(exports) {\n \"use strict\";\n var docs = require_docs();\n var FORMAT_LINK = docs.FORMAT_LINK;\n var DATE_FORMAT_LINK = docs.DATE_FORMAT_LINK;\n function describeVariables(extra) {\n var descPart = extra.description ? \" \" + extra.description : \"\";\n var keys = extra.keys || [];\n if (keys.length > 0) {\n var quotedKeys = [];\n for (var i = 0; i < keys.length; i++) {\n quotedKeys[i] = \"`\" + keys[i] + \"`\";\n }\n descPart = descPart + \"Finally, the template string has access to \";\n if (keys.length === 1) {\n descPart = descPart + \"variable \" + quotedKeys[0];\n } else {\n descPart = descPart + \"variables \" + quotedKeys.slice(0, -1).join(\", \") + \" and \" + quotedKeys.slice(-1) + \".\";\n }\n }\n return descPart;\n }\n exports.hovertemplateAttrs = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var descPart = describeVariables(extra);\n var hovertemplate = {\n valType: \"string\",\n dflt: \"\",\n editType: opts.editType || \"none\"\n };\n if (opts.arrayOk !== false) {\n hovertemplate.arrayOk = true;\n }\n return hovertemplate;\n };\n exports.texttemplateAttrs = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var descPart = describeVariables(extra);\n var texttemplate = {\n valType: \"string\",\n dflt: \"\",\n editType: opts.editType || \"calc\"\n };\n if (opts.arrayOk !== false) {\n texttemplate.arrayOk = true;\n }\n return texttemplate;\n };\n exports.shapeTexttemplateAttrs = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var newStr = opts.newshape ? \"new \" : \"\";\n var descPart = describeVariables(extra);\n var texttemplate = {\n valType: \"string\",\n dflt: \"\",\n editType: opts.editType || \"arraydraw\"\n };\n return texttemplate;\n };\n }\n });\n\n // src/components/shapes/label_texttemplate.js\n var require_label_texttemplate = __commonJS({\n \"src/components/shapes/label_texttemplate.js\"(exports, module) {\n \"use strict\";\n function d2l(v, axis) {\n return axis ? axis.d2l(v) : v;\n }\n function l2d(v, axis) {\n return axis ? axis.l2d(v) : v;\n }\n function x0Fn(shape) {\n return shape.x0;\n }\n function x1Fn(shape) {\n return shape.x1;\n }\n function y0Fn(shape) {\n return shape.y0;\n }\n function y1Fn(shape) {\n return shape.y1;\n }\n function x0shiftFn(shape) {\n return shape.x0shift || 0;\n }\n function x1shiftFn(shape) {\n return shape.x1shift || 0;\n }\n function y0shiftFn(shape) {\n return shape.y0shift || 0;\n }\n function y1shiftFn(shape) {\n return shape.y1shift || 0;\n }\n function dxFn(shape, xa) {\n return d2l(shape.x1, xa) + x1shiftFn(shape) - d2l(shape.x0, xa) - x0shiftFn(shape);\n }\n function dyFn(shape, xa, ya) {\n return d2l(shape.y1, ya) + y1shiftFn(shape) - d2l(shape.y0, ya) - y0shiftFn(shape);\n }\n function widthFn(shape, xa) {\n return Math.abs(dxFn(shape, xa));\n }\n function heightFn(shape, xa, ya) {\n return Math.abs(dyFn(shape, xa, ya));\n }\n function lengthFn(shape, xa, ya) {\n return shape.type !== \"line\" ? void 0 : Math.sqrt(\n Math.pow(dxFn(shape, xa), 2) + Math.pow(dyFn(shape, xa, ya), 2)\n );\n }\n function xcenterFn(shape, xa) {\n return l2d((d2l(shape.x1, xa) + x1shiftFn(shape) + d2l(shape.x0, xa) + x0shiftFn(shape)) / 2, xa);\n }\n function ycenterFn(shape, xa, ya) {\n return l2d((d2l(shape.y1, ya) + y1shiftFn(shape) + d2l(shape.y0, ya) + y0shiftFn(shape)) / 2, ya);\n }\n function slopeFn(shape, xa, ya) {\n return shape.type !== \"line\" ? void 0 : dyFn(shape, xa, ya) / dxFn(shape, xa);\n }\n module.exports = {\n x0: x0Fn,\n x1: x1Fn,\n y0: y0Fn,\n y1: y1Fn,\n slope: slopeFn,\n dx: dxFn,\n dy: dyFn,\n width: widthFn,\n height: heightFn,\n length: lengthFn,\n xcenter: xcenterFn,\n ycenter: ycenterFn\n };\n }\n });\n\n // src/components/shapes/draw_newshape/attributes.js\n var require_attributes5 = __commonJS({\n \"src/components/shapes/draw_newshape/attributes.js\"(exports, module) {\n \"use strict\";\n var overrideAll = require_edit_types().overrideAll;\n var basePlotAttributes = require_attributes2();\n var fontAttrs = require_font_attributes();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var shapeTexttemplateAttrs = require_template_attributes().shapeTexttemplateAttrs;\n var shapeLabelTexttemplateVars = require_label_texttemplate();\n module.exports = overrideAll({\n newshape: {\n visible: extendFlat({}, basePlotAttributes.visible, {}),\n showlegend: {\n valType: \"boolean\",\n dflt: false\n },\n legend: extendFlat({}, basePlotAttributes.legend, {}),\n legendgroup: extendFlat({}, basePlotAttributes.legendgroup, {}),\n legendgrouptitle: {\n text: extendFlat({}, basePlotAttributes.legendgrouptitle.text, {}),\n font: fontAttrs({})\n },\n legendrank: extendFlat({}, basePlotAttributes.legendrank, {}),\n legendwidth: extendFlat({}, basePlotAttributes.legendwidth, {}),\n line: {\n color: {\n valType: \"color\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 4\n },\n dash: extendFlat({}, dash, {\n dflt: \"solid\"\n })\n },\n fillcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\"\n },\n fillrule: {\n valType: \"enumerated\",\n values: [\"evenodd\", \"nonzero\"],\n dflt: \"evenodd\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n layer: {\n valType: \"enumerated\",\n values: [\"below\", \"above\", \"between\"],\n dflt: \"above\"\n },\n drawdirection: {\n valType: \"enumerated\",\n values: [\"ortho\", \"horizontal\", \"vertical\", \"diagonal\"],\n dflt: \"diagonal\"\n },\n name: extendFlat({}, basePlotAttributes.name, {}),\n label: {\n text: {\n valType: \"string\",\n dflt: \"\"\n },\n texttemplate: shapeTexttemplateAttrs({ newshape: true }, { keys: Object.keys(shapeLabelTexttemplateVars) }),\n font: fontAttrs({}),\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\",\n \"start\",\n \"middle\",\n \"end\"\n ]\n },\n textangle: {\n valType: \"angle\",\n dflt: \"auto\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"auto\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"]\n },\n padding: {\n valType: \"number\",\n dflt: 3,\n min: 0\n }\n }\n },\n activeshape: {\n fillcolor: {\n valType: \"color\",\n dflt: \"rgb(255,0,255)\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5\n }\n }\n }, \"none\", \"from-root\");\n }\n });\n\n // src/components/selections/draw_newselection/attributes.js\n var require_attributes6 = __commonJS({\n \"src/components/selections/draw_newselection/attributes.js\"(exports, module) {\n \"use strict\";\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n newselection: {\n mode: {\n valType: \"enumerated\",\n values: [\"immediate\", \"gradual\"],\n dflt: \"immediate\",\n editType: \"none\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"none\"\n },\n width: {\n valType: \"number\",\n min: 1,\n dflt: 1,\n editType: \"none\"\n },\n dash: extendFlat({}, dash, {\n dflt: \"dot\",\n editType: \"none\"\n }),\n editType: \"none\"\n },\n // no drawdirection here noting that layout.selectdirection is used instead.\n editType: \"none\"\n },\n activeselection: {\n fillcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"none\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5,\n editType: \"none\"\n },\n editType: \"none\"\n }\n };\n }\n });\n\n // src/plots/pad_attributes.js\n var require_pad_attributes = __commonJS({\n \"src/plots/pad_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = function(opts) {\n var editType = opts.editType;\n return {\n t: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n r: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n b: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n l: {\n valType: \"number\",\n dflt: 0,\n editType\n },\n editType\n };\n };\n }\n });\n\n // src/plots/layout_attributes.js\n var require_layout_attributes2 = __commonJS({\n \"src/plots/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var animationAttrs = require_animation_attributes();\n var colorAttrs = require_attributes3();\n var drawNewShapeAttrs = require_attributes5();\n var drawNewSelectionAttrs = require_attributes6();\n var padAttrs = require_pad_attributes();\n var extendFlat = require_extend().extendFlat;\n var globalFont = fontAttrs({\n editType: \"calc\"\n });\n globalFont.family.dflt = '\"Open Sans\", verdana, arial, sans-serif';\n globalFont.size.dflt = 12;\n globalFont.color.dflt = colorAttrs.defaultLine;\n module.exports = {\n font: globalFont,\n title: {\n text: {\n valType: \"string\",\n editType: \"layoutstyle\"\n },\n font: fontAttrs({\n editType: \"layoutstyle\"\n }),\n subtitle: {\n text: {\n valType: \"string\",\n editType: \"layoutstyle\"\n },\n font: fontAttrs({\n editType: \"layoutstyle\"\n }),\n editType: \"layoutstyle\"\n },\n xref: {\n valType: \"enumerated\",\n dflt: \"container\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n yref: {\n valType: \"enumerated\",\n dflt: \"container\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n x: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5,\n editType: \"layoutstyle\"\n },\n y: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: \"auto\",\n editType: \"layoutstyle\"\n },\n xanchor: {\n valType: \"enumerated\",\n dflt: \"auto\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n editType: \"layoutstyle\"\n },\n yanchor: {\n valType: \"enumerated\",\n dflt: \"auto\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n editType: \"layoutstyle\"\n },\n pad: extendFlat(padAttrs({ editType: \"layoutstyle\" }), {}),\n automargin: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n editType: \"layoutstyle\"\n },\n uniformtext: {\n mode: {\n valType: \"enumerated\",\n values: [false, \"hide\", \"show\"],\n dflt: false,\n editType: \"plot\"\n },\n minsize: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n autosize: {\n valType: \"boolean\",\n dflt: false,\n // autosize, width, and height get special editType treatment in _relayout\n // so we can handle noop resizes more efficiently\n editType: \"none\"\n },\n width: {\n valType: \"number\",\n min: 10,\n dflt: 700,\n editType: \"plot\"\n },\n height: {\n valType: \"number\",\n min: 10,\n dflt: 450,\n editType: \"plot\"\n },\n minreducedwidth: {\n valType: \"number\",\n min: 2,\n dflt: 64,\n editType: \"plot\"\n },\n minreducedheight: {\n valType: \"number\",\n min: 2,\n dflt: 64,\n editType: \"plot\"\n },\n margin: {\n l: {\n valType: \"number\",\n min: 0,\n dflt: 80,\n editType: \"plot\"\n },\n r: {\n valType: \"number\",\n min: 0,\n dflt: 80,\n editType: \"plot\"\n },\n t: {\n valType: \"number\",\n min: 0,\n dflt: 100,\n editType: \"plot\"\n },\n b: {\n valType: \"number\",\n min: 0,\n dflt: 80,\n editType: \"plot\"\n },\n pad: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n autoexpand: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n computed: {\n valType: \"any\",\n editType: \"none\"\n },\n paper_bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.background,\n editType: \"plot\"\n },\n plot_bgcolor: {\n // defined here, but set in cartesian.supplyLayoutDefaults\n // because it needs to know if there are (2D) axes or not\n valType: \"color\",\n dflt: colorAttrs.background,\n editType: \"layoutstyle\"\n },\n autotypenumbers: {\n valType: \"enumerated\",\n values: [\"convert types\", \"strict\"],\n dflt: \"convert types\",\n editType: \"calc\"\n },\n separators: {\n valType: \"string\",\n editType: \"plot\"\n },\n hidesources: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n showlegend: {\n // handled in legend.supplyLayoutDefaults\n // but included here because it's not in the legend object\n valType: \"boolean\",\n editType: \"legend\"\n },\n colorway: {\n valType: \"colorlist\",\n dflt: colorAttrs.defaults,\n editType: \"calc\"\n },\n datarevision: {\n valType: \"any\",\n editType: \"calc\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editrevision: {\n valType: \"any\",\n editType: \"none\"\n },\n selectionrevision: {\n valType: \"any\",\n editType: \"none\"\n },\n template: {\n valType: \"any\",\n editType: \"calc\"\n },\n newshape: drawNewShapeAttrs.newshape,\n activeshape: drawNewShapeAttrs.activeshape,\n newselection: drawNewSelectionAttrs.newselection,\n activeselection: drawNewSelectionAttrs.activeselection,\n meta: {\n valType: \"any\",\n arrayOk: true,\n editType: \"plot\"\n },\n transition: extendFlat({}, animationAttrs.transition, {\n editType: \"none\"\n })\n };\n }\n });\n\n // temp_stylePlugin:node_modules/maplibre-gl/dist/maplibre-gl.css\n var init_maplibre_gl = __esm({\n \"temp_stylePlugin:node_modules/maplibre-gl/dist/maplibre-gl.css\"() {\n }\n });\n\n // stylePlugin:/Users/ekl/code/plotly.js/node_modules/maplibre-gl/dist/maplibre-gl.css\n var maplibre_gl_exports = {};\n var init_maplibre_gl2 = __esm({\n \"stylePlugin:/Users/ekl/code/plotly.js/node_modules/maplibre-gl/dist/maplibre-gl.css\"() {\n init_maplibre_gl();\n }\n });\n\n // src/registry.js\n var require_registry = __commonJS({\n \"src/registry.js\"(exports) {\n \"use strict\";\n var Loggers = require_loggers();\n var noop = require_noop();\n var pushUnique = require_push_unique();\n var isPlainObject = require_is_plain_object();\n var addStyleRule = require_dom().addStyleRule;\n var ExtendModule = require_extend();\n var basePlotAttributes = require_attributes2();\n var baseLayoutAttributes = require_layout_attributes2();\n var extendFlat = ExtendModule.extendFlat;\n var extendDeepAll = ExtendModule.extendDeepAll;\n exports.modules = {};\n exports.allCategories = {};\n exports.allTypes = [];\n exports.subplotsRegistry = {};\n exports.componentsRegistry = {};\n exports.layoutArrayContainers = [];\n exports.layoutArrayRegexes = [];\n exports.traceLayoutAttributes = {};\n exports.localeRegistry = {};\n exports.apiMethodRegistry = {};\n exports.collectableSubplotTypes = null;\n exports.register = function register(_modules) {\n exports.collectableSubplotTypes = null;\n if (!_modules) {\n throw new Error(\"No argument passed to Plotly.register.\");\n } else if (_modules && !Array.isArray(_modules)) {\n _modules = [_modules];\n }\n for (var i = 0; i < _modules.length; i++) {\n var newModule = _modules[i];\n if (!newModule) {\n throw new Error(\"Invalid module was attempted to be registered!\");\n }\n switch (newModule.moduleType) {\n case \"trace\":\n registerTraceModule(newModule);\n break;\n case \"transform\":\n registerTransformModule(newModule);\n break;\n case \"component\":\n registerComponentModule(newModule);\n break;\n case \"locale\":\n registerLocale(newModule);\n break;\n case \"apiMethod\":\n var name2 = newModule.name;\n exports.apiMethodRegistry[name2] = newModule.fn;\n break;\n default:\n throw new Error(\"Invalid module was attempted to be registered!\");\n }\n }\n };\n exports.getModule = function(trace) {\n var _module = exports.modules[getTraceType(trace)];\n if (!_module) return false;\n return _module._module;\n };\n exports.traceIs = function(traceType, category) {\n traceType = getTraceType(traceType);\n if (traceType === \"various\") return false;\n var _module = exports.modules[traceType];\n if (!_module) {\n if (traceType) {\n Loggers.log(\"Unrecognized trace type \" + traceType + \".\");\n }\n _module = exports.modules[basePlotAttributes.type.dflt];\n }\n return !!_module.categories[category];\n };\n exports.getComponentMethod = function(name2, method) {\n var _module = exports.componentsRegistry[name2];\n if (!_module) return noop;\n return _module[method] || noop;\n };\n exports.call = function() {\n var name2 = arguments[0];\n var args = [].slice.call(arguments, 1);\n return exports.apiMethodRegistry[name2].apply(null, args);\n };\n function registerTraceModule(_module) {\n var thisType = _module.name;\n var categoriesIn = _module.categories;\n var meta = _module.meta;\n if (exports.modules[thisType]) {\n Loggers.log(\"Type \" + thisType + \" already registered\");\n return;\n }\n if (!exports.subplotsRegistry[_module.basePlotModule.name]) {\n registerSubplot(_module.basePlotModule);\n }\n var categoryObj = {};\n for (var i = 0; i < categoriesIn.length; i++) {\n categoryObj[categoriesIn[i]] = true;\n exports.allCategories[categoriesIn[i]] = true;\n }\n exports.modules[thisType] = {\n _module,\n categories: categoryObj\n };\n if (meta && Object.keys(meta).length) {\n exports.modules[thisType].meta = meta;\n }\n exports.allTypes.push(thisType);\n for (var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToTrace(componentName, thisType);\n }\n if (_module.layoutAttributes) {\n extendFlat(exports.traceLayoutAttributes, _module.layoutAttributes);\n }\n var basePlotModule = _module.basePlotModule;\n var bpmName = basePlotModule.name;\n if (bpmName === \"mapbox\") {\n var styleRules = basePlotModule.constants.styleRules;\n for (var k in styleRules) {\n addStyleRule(\".js-plotly-plot .plotly .mapboxgl-\" + k, styleRules[k]);\n }\n }\n if (bpmName === \"map\") {\n init_maplibre_gl2();\n }\n if ((bpmName === \"geo\" || bpmName === \"mapbox\" || bpmName === \"map\") && window.PlotlyGeoAssets === void 0) {\n window.PlotlyGeoAssets = { topojson: {} };\n }\n }\n function registerSubplot(_module) {\n var plotType = _module.name;\n if (exports.subplotsRegistry[plotType]) {\n Loggers.log(\"Plot type \" + plotType + \" already registered.\");\n return;\n }\n findArrayRegexps(_module);\n exports.subplotsRegistry[plotType] = _module;\n for (var componentName in exports.componentsRegistry) {\n mergeComponentAttrsToSubplot(componentName, _module.name);\n }\n }\n function registerComponentModule(_module) {\n if (typeof _module.name !== \"string\") {\n throw new Error(\"Component module *name* must be a string.\");\n }\n var name2 = _module.name;\n exports.componentsRegistry[name2] = _module;\n if (_module.layoutAttributes) {\n if (_module.layoutAttributes._isLinkedToArray) {\n pushUnique(exports.layoutArrayContainers, name2);\n }\n findArrayRegexps(_module);\n }\n for (var traceType in exports.modules) {\n mergeComponentAttrsToTrace(name2, traceType);\n }\n for (var subplotName in exports.subplotsRegistry) {\n mergeComponentAttrsToSubplot(name2, subplotName);\n }\n if (_module.schema && _module.schema.layout) {\n extendDeepAll(baseLayoutAttributes, _module.schema.layout);\n }\n }\n function registerTransformModule(_module) {\n if (typeof _module.name !== \"string\") {\n throw new Error(\"Transform module *name* must be a string.\");\n }\n var prefix = \"Transform module \" + _module.name;\n var hasTransform = typeof _module.transform === \"function\";\n var hasCalcTransform = typeof _module.calcTransform === \"function\";\n if (!hasTransform && !hasCalcTransform) {\n throw new Error(prefix + \" is missing a *transform* or *calcTransform* method.\");\n }\n if (hasTransform && hasCalcTransform) {\n Loggers.log([\n prefix + \" has both a *transform* and *calcTransform* methods.\",\n \"Please note that all *transform* methods are executed\",\n \"before all *calcTransform* methods.\"\n ].join(\" \"));\n }\n if (!isPlainObject(_module.attributes)) {\n Loggers.log(prefix + \" registered without an *attributes* object.\");\n }\n if (typeof _module.supplyDefaults !== \"function\") {\n Loggers.log(prefix + \" registered without a *supplyDefaults* method.\");\n }\n }\n function registerLocale(_module) {\n var locale = _module.name;\n var baseLocale = locale.split(\"-\")[0];\n var newDict = _module.dictionary;\n var newFormat = _module.format;\n var hasDict = newDict && Object.keys(newDict).length;\n var hasFormat = newFormat && Object.keys(newFormat).length;\n var locales = exports.localeRegistry;\n var localeObj = locales[locale];\n if (!localeObj) locales[locale] = localeObj = {};\n if (baseLocale !== locale) {\n var baseLocaleObj = locales[baseLocale];\n if (!baseLocaleObj) locales[baseLocale] = baseLocaleObj = {};\n if (hasDict && baseLocaleObj.dictionary === localeObj.dictionary) {\n baseLocaleObj.dictionary = newDict;\n }\n if (hasFormat && baseLocaleObj.format === localeObj.format) {\n baseLocaleObj.format = newFormat;\n }\n }\n if (hasDict) localeObj.dictionary = newDict;\n if (hasFormat) localeObj.format = newFormat;\n }\n function findArrayRegexps(_module) {\n if (_module.layoutAttributes) {\n var arrayAttrRegexps = _module.layoutAttributes._arrayAttrRegexps;\n if (arrayAttrRegexps) {\n for (var i = 0; i < arrayAttrRegexps.length; i++) {\n pushUnique(exports.layoutArrayRegexes, arrayAttrRegexps[i]);\n }\n }\n }\n }\n function mergeComponentAttrsToTrace(componentName, traceType) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if (!componentSchema || !componentSchema.traces) return;\n var traceAttrs = componentSchema.traces[traceType];\n if (traceAttrs) {\n extendDeepAll(exports.modules[traceType]._module.attributes, traceAttrs);\n }\n }\n function mergeComponentAttrsToSubplot(componentName, subplotName) {\n var componentSchema = exports.componentsRegistry[componentName].schema;\n if (!componentSchema || !componentSchema.subplots) return;\n var subplotModule = exports.subplotsRegistry[subplotName];\n var subplotAttrs = subplotModule.layoutAttributes;\n var subplotAttr = subplotModule.attr === \"subplot\" ? subplotModule.name : subplotModule.attr;\n if (Array.isArray(subplotAttr)) subplotAttr = subplotAttr[0];\n var componentLayoutAttrs = componentSchema.subplots[subplotAttr];\n if (subplotAttrs && componentLayoutAttrs) {\n extendDeepAll(subplotAttrs, componentLayoutAttrs);\n }\n }\n function getTraceType(traceType) {\n if (typeof traceType === \"object\") traceType = traceType.type;\n return traceType;\n }\n }\n });\n\n // src/lib/dates.js\n var require_dates = __commonJS({\n \"src/lib/dates.js\"(exports) {\n \"use strict\";\n var timeFormat = require_d3_time_format().timeFormat;\n var isNumeric = require_fast_isnumeric();\n var Loggers = require_loggers();\n var mod = require_mod().mod;\n var constants = require_numerical();\n var BADNUM = constants.BADNUM;\n var ONEDAY = constants.ONEDAY;\n var ONEHOUR = constants.ONEHOUR;\n var ONEMIN = constants.ONEMIN;\n var ONESEC = constants.ONESEC;\n var EPOCHJD = constants.EPOCHJD;\n var Registry = require_registry();\n var utcFormat = require_d3_time_format().utcFormat;\n var DATETIME_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\d)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d(:?\\d\\d)?)?)?)?)?)?\\s*$/m;\n var DATETIME_REGEXP_CN = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)(-(\\d?\\di?)(-(\\d?\\d)([ Tt]([01]?\\d|2[0-3])(:([0-5]\\d)(:([0-5]\\d(\\.\\d+)?))?(Z|z|[+\\-]\\d\\d(:?\\d\\d)?)?)?)?)?)?\\s*$/m;\n var YFIRST = (/* @__PURE__ */ new Date()).getFullYear() - 70;\n function isWorldCalendar(calendar) {\n return calendar && Registry.componentsRegistry.calendars && typeof calendar === \"string\" && calendar !== \"gregorian\";\n }\n exports.dateTick0 = function(calendar, dayOfWeek) {\n var tick0 = _dateTick0(calendar, !!dayOfWeek);\n if (dayOfWeek < 2) return tick0;\n var v = exports.dateTime2ms(tick0, calendar);\n v += ONEDAY * (dayOfWeek - 1);\n return exports.ms2DateTime(v, 0, calendar);\n };\n function _dateTick0(calendar, sunday) {\n if (isWorldCalendar(calendar)) {\n return sunday ? Registry.getComponentMethod(\"calendars\", \"CANONICAL_SUNDAY\")[calendar] : Registry.getComponentMethod(\"calendars\", \"CANONICAL_TICK\")[calendar];\n } else {\n return sunday ? \"2000-01-02\" : \"2000-01-01\";\n }\n }\n exports.dfltRange = function(calendar) {\n if (isWorldCalendar(calendar)) {\n return Registry.getComponentMethod(\"calendars\", \"DFLTRANGE\")[calendar];\n } else {\n return [\"2000-01-01\", \"2001-01-01\"];\n }\n };\n exports.isJSDate = function(v) {\n return typeof v === \"object\" && v !== null && typeof v.getTime === \"function\";\n };\n var MIN_MS;\n var MAX_MS;\n exports.dateTime2ms = function(s, calendar) {\n if (exports.isJSDate(s)) {\n var tzOffset = s.getTimezoneOffset() * ONEMIN;\n var offsetTweak = (s.getUTCMinutes() - s.getMinutes()) * ONEMIN + (s.getUTCSeconds() - s.getSeconds()) * ONESEC + (s.getUTCMilliseconds() - s.getMilliseconds());\n if (offsetTweak) {\n var comb = 3 * ONEMIN;\n tzOffset = tzOffset - comb / 2 + mod(offsetTweak - tzOffset + comb / 2, comb);\n }\n s = Number(s) - tzOffset;\n if (s >= MIN_MS && s <= MAX_MS) return s;\n return BADNUM;\n }\n if (typeof s !== \"string\" && typeof s !== \"number\") return BADNUM;\n s = String(s);\n var isWorld = isWorldCalendar(calendar);\n var s0 = s.charAt(0);\n if (isWorld && (s0 === \"G\" || s0 === \"g\")) {\n s = s.substr(1);\n calendar = \"\";\n }\n var isChinese = isWorld && calendar.substr(0, 7) === \"chinese\";\n var match = s.match(isChinese ? DATETIME_REGEXP_CN : DATETIME_REGEXP);\n if (!match) return BADNUM;\n var y = match[1];\n var m = match[3] || \"1\";\n var d = Number(match[5] || 1);\n var H = Number(match[7] || 0);\n var M = Number(match[9] || 0);\n var S = Number(match[11] || 0);\n if (isWorld) {\n if (y.length === 2) return BADNUM;\n y = Number(y);\n var cDate;\n try {\n var calInstance = Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar);\n if (isChinese) {\n var isIntercalary = m.charAt(m.length - 1) === \"i\";\n m = parseInt(m, 10);\n cDate = calInstance.newDate(y, calInstance.toMonthIndex(y, m, isIntercalary), d);\n } else {\n cDate = calInstance.newDate(y, Number(m), d);\n }\n } catch (e) {\n return BADNUM;\n }\n if (!cDate) return BADNUM;\n return (cDate.toJD() - EPOCHJD) * ONEDAY + H * ONEHOUR + M * ONEMIN + S * ONESEC;\n }\n if (y.length === 2) {\n y = (Number(y) + 2e3 - YFIRST) % 100 + YFIRST;\n } else y = Number(y);\n m -= 1;\n var date = new Date(Date.UTC(2e3, m, d, H, M));\n date.setUTCFullYear(y);\n if (date.getUTCMonth() !== m) return BADNUM;\n if (date.getUTCDate() !== d) return BADNUM;\n return date.getTime() + S * ONESEC;\n };\n MIN_MS = exports.MIN_MS = exports.dateTime2ms(\"-9999\");\n MAX_MS = exports.MAX_MS = exports.dateTime2ms(\"9999-12-31 23:59:59.9999\");\n exports.isDateTime = function(s, calendar) {\n return exports.dateTime2ms(s, calendar) !== BADNUM;\n };\n function lpad(val, digits) {\n return String(val + Math.pow(10, digits)).substr(1);\n }\n var NINETYDAYS = 90 * ONEDAY;\n var THREEHOURS = 3 * ONEHOUR;\n var FIVEMIN = 5 * ONEMIN;\n exports.ms2DateTime = function(ms, r, calendar) {\n if (typeof ms !== \"number\" || !(ms >= MIN_MS && ms <= MAX_MS)) return BADNUM;\n if (!r) r = 0;\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var msRounded = Math.round(ms - msecTenths / 10);\n var dateStr, h, m, s, msec10, d;\n if (isWorldCalendar(calendar)) {\n var dateJD = Math.floor(msRounded / ONEDAY) + EPOCHJD;\n var timeMs = Math.floor(mod(ms, ONEDAY));\n try {\n dateStr = Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar).fromJD(dateJD).formatDate(\"yyyy-mm-dd\");\n } catch (e) {\n dateStr = utcFormat(\"G%Y-%m-%d\")(new Date(msRounded));\n }\n if (dateStr.charAt(0) === \"-\") {\n while (dateStr.length < 11) dateStr = \"-0\" + dateStr.substr(1);\n } else {\n while (dateStr.length < 10) dateStr = \"0\" + dateStr;\n }\n h = r < NINETYDAYS ? Math.floor(timeMs / ONEHOUR) : 0;\n m = r < NINETYDAYS ? Math.floor(timeMs % ONEHOUR / ONEMIN) : 0;\n s = r < THREEHOURS ? Math.floor(timeMs % ONEMIN / ONESEC) : 0;\n msec10 = r < FIVEMIN ? timeMs % ONESEC * 10 + msecTenths : 0;\n } else {\n d = new Date(msRounded);\n dateStr = utcFormat(\"%Y-%m-%d\")(d);\n h = r < NINETYDAYS ? d.getUTCHours() : 0;\n m = r < NINETYDAYS ? d.getUTCMinutes() : 0;\n s = r < THREEHOURS ? d.getUTCSeconds() : 0;\n msec10 = r < FIVEMIN ? d.getUTCMilliseconds() * 10 + msecTenths : 0;\n }\n return includeTime(dateStr, h, m, s, msec10);\n };\n exports.ms2DateTimeLocal = function(ms) {\n if (!(ms >= MIN_MS + ONEDAY && ms <= MAX_MS - ONEDAY)) return BADNUM;\n var msecTenths = Math.floor(mod(ms + 0.05, 1) * 10);\n var d = new Date(Math.round(ms - msecTenths / 10));\n var dateStr = timeFormat(\"%Y-%m-%d\")(d);\n var h = d.getHours();\n var m = d.getMinutes();\n var s = d.getSeconds();\n var msec10 = d.getUTCMilliseconds() * 10 + msecTenths;\n return includeTime(dateStr, h, m, s, msec10);\n };\n function includeTime(dateStr, h, m, s, msec10) {\n if (h || m || s || msec10) {\n dateStr += \" \" + lpad(h, 2) + \":\" + lpad(m, 2);\n if (s || msec10) {\n dateStr += \":\" + lpad(s, 2);\n if (msec10) {\n var digits = 4;\n while (msec10 % 10 === 0) {\n digits -= 1;\n msec10 /= 10;\n }\n dateStr += \".\" + lpad(msec10, digits);\n }\n }\n }\n return dateStr;\n }\n exports.cleanDate = function(v, dflt, calendar) {\n if (v === BADNUM) return dflt;\n if (exports.isJSDate(v) || typeof v === \"number\" && isFinite(v)) {\n if (isWorldCalendar(calendar)) {\n Loggers.error(\"JS Dates and milliseconds are incompatible with world calendars\", v);\n return dflt;\n }\n v = exports.ms2DateTimeLocal(+v);\n if (!v && dflt !== void 0) return dflt;\n } else if (!exports.isDateTime(v, calendar)) {\n Loggers.error(\"unrecognized date\", v);\n return dflt;\n }\n return v;\n };\n var fracMatch = /%\\d?f/g;\n var halfYearMatch = /%h/g;\n var quarterToHalfYear = {\n 1: \"1\",\n 2: \"1\",\n 3: \"2\",\n 4: \"2\"\n };\n function modDateFormat(fmt, x, formatter, calendar) {\n fmt = fmt.replace(fracMatch, function(match) {\n var digits = Math.min(+match.charAt(1) || 6, 6);\n var fracSecs = (x / 1e3 % 1 + 2).toFixed(digits).substr(2).replace(/0+$/, \"\") || \"0\";\n return fracSecs;\n });\n var d = new Date(Math.floor(x + 0.05));\n fmt = fmt.replace(halfYearMatch, function() {\n return quarterToHalfYear[formatter(\"%q\")(d)];\n });\n if (isWorldCalendar(calendar)) {\n try {\n fmt = Registry.getComponentMethod(\"calendars\", \"worldCalFmt\")(fmt, x, calendar);\n } catch (e) {\n return \"Invalid\";\n }\n }\n return formatter(fmt)(d);\n }\n var MAXSECONDS = [59, 59.9, 59.99, 59.999, 59.9999];\n function formatTime(x, tr) {\n var timePart = mod(x + 0.05, ONEDAY);\n var timeStr = lpad(Math.floor(timePart / ONEHOUR), 2) + \":\" + lpad(mod(Math.floor(timePart / ONEMIN), 60), 2);\n if (tr !== \"M\") {\n if (!isNumeric(tr)) tr = 0;\n var sec = Math.min(mod(x / ONESEC, 60), MAXSECONDS[tr]);\n var secStr = (100 + sec).toFixed(tr).substr(1);\n if (tr > 0) {\n secStr = secStr.replace(/0+$/, \"\").replace(/[\\.]$/, \"\");\n }\n timeStr += \":\" + secStr;\n }\n return timeStr;\n }\n exports.formatDate = function(x, fmt, tr, formatter, calendar, extraFormat) {\n calendar = isWorldCalendar(calendar) && calendar;\n if (!fmt) {\n if (tr === \"y\") fmt = extraFormat.year;\n else if (tr === \"m\") fmt = extraFormat.month;\n else if (tr === \"d\") {\n fmt = extraFormat.dayMonth + \"\\n\" + extraFormat.year;\n } else {\n return formatTime(x, tr) + \"\\n\" + modDateFormat(extraFormat.dayMonthYear, x, formatter, calendar);\n }\n }\n return modDateFormat(fmt, x, formatter, calendar);\n };\n var THREEDAYS = 3 * ONEDAY;\n exports.incrementMonth = function(ms, dMonth, calendar) {\n calendar = isWorldCalendar(calendar) && calendar;\n var timeMs = mod(ms, ONEDAY);\n ms = Math.round(ms - timeMs);\n if (calendar) {\n try {\n var dateJD = Math.round(ms / ONEDAY) + EPOCHJD;\n var calInstance = Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar);\n var cDate = calInstance.fromJD(dateJD);\n if (dMonth % 12) calInstance.add(cDate, dMonth, \"m\");\n else calInstance.add(cDate, dMonth / 12, \"y\");\n return (cDate.toJD() - EPOCHJD) * ONEDAY + timeMs;\n } catch (e) {\n Loggers.error(\"invalid ms \" + ms + \" in calendar \" + calendar);\n }\n }\n var y = new Date(ms + THREEDAYS);\n return y.setUTCMonth(y.getUTCMonth() + dMonth) + timeMs - THREEDAYS;\n };\n exports.findExactDates = function(data, calendar) {\n var exactYears = 0;\n var exactMonths = 0;\n var exactDays = 0;\n var blankCount = 0;\n var d;\n var di;\n var calInstance = isWorldCalendar(calendar) && Registry.getComponentMethod(\"calendars\", \"getCal\")(calendar);\n for (var i = 0; i < data.length; i++) {\n di = data[i];\n if (!isNumeric(di)) {\n blankCount++;\n continue;\n }\n if (di % ONEDAY) continue;\n if (calInstance) {\n try {\n d = calInstance.fromJD(di / ONEDAY + EPOCHJD);\n if (d.day() === 1) {\n if (d.month() === 1) exactYears++;\n else exactMonths++;\n } else exactDays++;\n } catch (e) {\n }\n } else {\n d = new Date(di);\n if (d.getUTCDate() === 1) {\n if (d.getUTCMonth() === 0) exactYears++;\n else exactMonths++;\n } else exactDays++;\n }\n }\n exactMonths += exactYears;\n exactDays += exactMonths;\n var dataCount = data.length - blankCount;\n return {\n exactYears: exactYears / dataCount,\n exactMonths: exactMonths / dataCount,\n exactDays: exactDays / dataCount\n };\n };\n }\n });\n\n // src/lib/identity.js\n var require_identity2 = __commonJS({\n \"src/lib/identity.js\"(exports, module) {\n \"use strict\";\n module.exports = function identity2(d) {\n return d;\n };\n }\n });\n\n // src/lib/search.js\n var require_search = __commonJS({\n \"src/lib/search.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var loggers = require_loggers();\n var identity2 = require_identity2();\n var BADNUM = require_numerical().BADNUM;\n var roundingError = 1e-9;\n exports.findBin = function(val, bins, linelow) {\n if (isNumeric(bins.start)) {\n return linelow ? Math.ceil((val - bins.start) / bins.size - roundingError) - 1 : Math.floor((val - bins.start) / bins.size + roundingError);\n } else {\n var n1 = 0;\n var n2 = bins.length;\n var c = 0;\n var binSize = n2 > 1 ? (bins[n2 - 1] - bins[0]) / (n2 - 1) : 1;\n var n, test;\n if (binSize >= 0) {\n test = linelow ? lessThan : lessOrEqual;\n } else {\n test = linelow ? greaterOrEqual : greaterThan;\n }\n val += binSize * roundingError * (linelow ? -1 : 1) * (binSize >= 0 ? 1 : -1);\n while (n1 < n2 && c++ < 100) {\n n = Math.floor((n1 + n2) / 2);\n if (test(bins[n], val)) n1 = n + 1;\n else n2 = n;\n }\n if (c > 90) loggers.log(\"Long binary search...\");\n return n1 - 1;\n }\n };\n function lessThan(a, b) {\n return a < b;\n }\n function lessOrEqual(a, b) {\n return a <= b;\n }\n function greaterThan(a, b) {\n return a > b;\n }\n function greaterOrEqual(a, b) {\n return a >= b;\n }\n exports.sorterAsc = function(a, b) {\n return a - b;\n };\n exports.sorterDes = function(a, b) {\n return b - a;\n };\n exports.distinctVals = function(valsIn) {\n var vals = valsIn.slice();\n vals.sort(exports.sorterAsc);\n var last;\n for (last = vals.length - 1; last > -1; last--) {\n if (vals[last] !== BADNUM) break;\n }\n var minDiff = vals[last] - vals[0] || 1;\n var errDiff = minDiff / (last || 1) / 1e4;\n var newVals = [];\n var preV;\n for (var i = 0; i <= last; i++) {\n var v = vals[i];\n var diff = v - preV;\n if (preV === void 0) {\n newVals.push(v);\n preV = v;\n } else if (diff > errDiff) {\n minDiff = Math.min(minDiff, diff);\n newVals.push(v);\n preV = v;\n }\n }\n return { vals: newVals, minDiff };\n };\n exports.roundUp = function(val, arrayIn, reverse) {\n var low = 0;\n var high = arrayIn.length - 1;\n var mid;\n var c = 0;\n var dlow = reverse ? 0 : 1;\n var dhigh = reverse ? 1 : 0;\n var rounded = reverse ? Math.ceil : Math.floor;\n while (low < high && c++ < 100) {\n mid = rounded((low + high) / 2);\n if (arrayIn[mid] <= val) low = mid + dlow;\n else high = mid - dhigh;\n }\n return arrayIn[low];\n };\n exports.sort = function(array, sortFn) {\n var notOrdered = 0;\n var notReversed = 0;\n for (var i = 1; i < array.length; i++) {\n var pairOrder = sortFn(array[i], array[i - 1]);\n if (pairOrder < 0) notOrdered = 1;\n else if (pairOrder > 0) notReversed = 1;\n if (notOrdered && notReversed) return array.sort(sortFn);\n }\n return notReversed ? array : array.reverse();\n };\n exports.findIndexOfMin = function(arr, fn) {\n fn = fn || identity2;\n var min = Infinity;\n var ind;\n for (var i = 0; i < arr.length; i++) {\n var v = fn(arr[i]);\n if (v < min) {\n min = v;\n ind = i;\n }\n }\n return ind;\n };\n }\n });\n\n // src/lib/sort_object_keys.js\n var require_sort_object_keys = __commonJS({\n \"src/lib/sort_object_keys.js\"(exports, module) {\n \"use strict\";\n module.exports = function sortObjectKeys(obj) {\n return Object.keys(obj).sort();\n };\n }\n });\n\n // src/lib/stats.js\n var require_stats = __commonJS({\n \"src/lib/stats.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n exports.aggNums = function(f, v, a, len) {\n var i, b;\n if (!len || len > a.length) len = a.length;\n if (!isNumeric(v)) v = false;\n if (isArrayOrTypedArray(a[0])) {\n b = new Array(len);\n for (i = 0; i < len; i++) b[i] = exports.aggNums(f, v, a[i]);\n a = b;\n }\n for (i = 0; i < len; i++) {\n if (!isNumeric(v)) v = a[i];\n else if (isNumeric(a[i])) v = f(+v, +a[i]);\n }\n return v;\n };\n exports.len = function(data) {\n return exports.aggNums(function(a) {\n return a + 1;\n }, 0, data);\n };\n exports.mean = function(data, len) {\n if (!len) len = exports.len(data);\n return exports.aggNums(function(a, b) {\n return a + b;\n }, 0, data) / len;\n };\n exports.geometricMean = function(data, len) {\n if (!len) len = exports.len(data);\n return Math.pow(exports.aggNums(function(a, b) {\n return a * b;\n }, 1, data), 1 / len);\n };\n exports.midRange = function(numArr) {\n if (numArr === void 0 || numArr.length === 0) return void 0;\n return (exports.aggNums(Math.max, null, numArr) + exports.aggNums(Math.min, null, numArr)) / 2;\n };\n exports.variance = function(data, len, mean) {\n if (!len) len = exports.len(data);\n if (!isNumeric(mean)) mean = exports.mean(data, len);\n return exports.aggNums(function(a, b) {\n return a + Math.pow(b - mean, 2);\n }, 0, data) / len;\n };\n exports.stdev = function(data, len, mean) {\n return Math.sqrt(exports.variance(data, len, mean));\n };\n exports.median = function(data) {\n var b = data.slice().sort();\n return exports.interp(b, 0.5);\n };\n exports.interp = function(arr, n) {\n if (!isNumeric(n)) throw \"n should be a finite number\";\n n = n * arr.length - 0.5;\n if (n < 0) return arr[0];\n if (n > arr.length - 1) return arr[arr.length - 1];\n var frac = n % 1;\n return frac * arr[Math.ceil(n)] + (1 - frac) * arr[Math.floor(n)];\n };\n }\n });\n\n // src/lib/angles.js\n var require_angles = __commonJS({\n \"src/lib/angles.js\"(exports, module) {\n \"use strict\";\n var modModule = require_mod();\n var mod = modModule.mod;\n var modHalf = modModule.modHalf;\n var PI = Math.PI;\n var twoPI = 2 * PI;\n function deg2rad(deg) {\n return deg / 180 * PI;\n }\n function rad2deg(rad) {\n return rad / PI * 180;\n }\n function isFullCircle(aBnds) {\n return Math.abs(aBnds[1] - aBnds[0]) > twoPI - 1e-14;\n }\n function angleDelta(a, b) {\n return modHalf(b - a, twoPI);\n }\n function angleDist(a, b) {\n return Math.abs(angleDelta(a, b));\n }\n function isAngleInsideSector(a, aBnds) {\n if (isFullCircle(aBnds)) return true;\n var s0, s1;\n if (aBnds[0] < aBnds[1]) {\n s0 = aBnds[0];\n s1 = aBnds[1];\n } else {\n s0 = aBnds[1];\n s1 = aBnds[0];\n }\n s0 = mod(s0, twoPI);\n s1 = mod(s1, twoPI);\n if (s0 > s1) s1 += twoPI;\n var a0 = mod(a, twoPI);\n var a1 = a0 + twoPI;\n return a0 >= s0 && a0 <= s1 || a1 >= s0 && a1 <= s1;\n }\n function isPtInsideSector(r, a, rBnds, aBnds) {\n if (!isAngleInsideSector(a, aBnds)) return false;\n var r0, r1;\n if (rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n return r >= r0 && r <= r1;\n }\n function _path(r0, r1, a0, a1, cx, cy, isClosed) {\n cx = cx || 0;\n cy = cy || 0;\n var isCircle = isFullCircle([a0, a1]);\n var aStart, aMid, aEnd;\n var rStart, rEnd;\n if (isCircle) {\n aStart = 0;\n aMid = PI;\n aEnd = twoPI;\n } else {\n if (a0 < a1) {\n aStart = a0;\n aEnd = a1;\n } else {\n aStart = a1;\n aEnd = a0;\n }\n }\n if (r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n function pt(r, a) {\n return [r * Math.cos(a) + cx, cy - r * Math.sin(a)];\n }\n var largeArc = Math.abs(aEnd - aStart) <= PI ? 0 : 1;\n function arc(r, a, cw) {\n return \"A\" + [r, r] + \" \" + [0, largeArc, cw] + \" \" + pt(r, a);\n }\n var p;\n if (isCircle) {\n if (rStart === null) {\n p = \"M\" + pt(rEnd, aStart) + arc(rEnd, aMid, 0) + arc(rEnd, aEnd, 0) + \"Z\";\n } else {\n p = \"M\" + pt(rStart, aStart) + arc(rStart, aMid, 0) + arc(rStart, aEnd, 0) + \"ZM\" + pt(rEnd, aStart) + arc(rEnd, aMid, 1) + arc(rEnd, aEnd, 1) + \"Z\";\n }\n } else {\n if (rStart === null) {\n p = \"M\" + pt(rEnd, aStart) + arc(rEnd, aEnd, 0);\n if (isClosed) p += \"L0,0Z\";\n } else {\n p = \"M\" + pt(rStart, aStart) + \"L\" + pt(rEnd, aStart) + arc(rEnd, aEnd, 0) + \"L\" + pt(rStart, aEnd) + arc(rStart, aStart, 1) + \"Z\";\n }\n }\n return p;\n }\n function pathArc(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 0);\n }\n function pathSector(r, a0, a1, cx, cy) {\n return _path(null, r, a0, a1, cx, cy, 1);\n }\n function pathAnnulus(r0, r1, a0, a1, cx, cy) {\n return _path(r0, r1, a0, a1, cx, cy, 1);\n }\n module.exports = {\n deg2rad,\n rad2deg,\n angleDelta,\n angleDist,\n isFullCircle,\n isAngleInsideSector,\n isPtInsideSector,\n pathArc,\n pathSector,\n pathAnnulus\n };\n }\n });\n\n // src/lib/anchor_utils.js\n var require_anchor_utils = __commonJS({\n \"src/lib/anchor_utils.js\"(exports) {\n \"use strict\";\n exports.isLeftAnchor = function isLeftAnchor(opts) {\n return opts.xanchor === \"left\" || opts.xanchor === \"auto\" && opts.x <= 1 / 3;\n };\n exports.isCenterAnchor = function isCenterAnchor(opts) {\n return opts.xanchor === \"center\" || opts.xanchor === \"auto\" && opts.x > 1 / 3 && opts.x < 2 / 3;\n };\n exports.isRightAnchor = function isRightAnchor(opts) {\n return opts.xanchor === \"right\" || opts.xanchor === \"auto\" && opts.x >= 2 / 3;\n };\n exports.isTopAnchor = function isTopAnchor(opts) {\n return opts.yanchor === \"top\" || opts.yanchor === \"auto\" && opts.y >= 2 / 3;\n };\n exports.isMiddleAnchor = function isMiddleAnchor(opts) {\n return opts.yanchor === \"middle\" || opts.yanchor === \"auto\" && opts.y > 1 / 3 && opts.y < 2 / 3;\n };\n exports.isBottomAnchor = function isBottomAnchor(opts) {\n return opts.yanchor === \"bottom\" || opts.yanchor === \"auto\" && opts.y <= 1 / 3;\n };\n }\n });\n\n // src/lib/geometry2d.js\n var require_geometry2d = __commonJS({\n \"src/lib/geometry2d.js\"(exports) {\n \"use strict\";\n var mod = require_mod().mod;\n exports.segmentsIntersect = segmentsIntersect;\n function segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4) {\n var a = x2 - x1;\n var b = x3 - x1;\n var c = x4 - x3;\n var d = y2 - y1;\n var e = y3 - y1;\n var f = y4 - y3;\n var det = a * f - c * d;\n if (det === 0) return null;\n var t = (b * f - c * e) / det;\n var u = (b * d - a * e) / det;\n if (u < 0 || u > 1 || t < 0 || t > 1) return null;\n return { x: x1 + a * t, y: y1 + d * t };\n }\n exports.segmentDistance = function segmentDistance(x1, y1, x2, y2, x3, y3, x4, y4) {\n if (segmentsIntersect(x1, y1, x2, y2, x3, y3, x4, y4)) return 0;\n var x12 = x2 - x1;\n var y12 = y2 - y1;\n var x34 = x4 - x3;\n var y34 = y4 - y3;\n var ll12 = x12 * x12 + y12 * y12;\n var ll34 = x34 * x34 + y34 * y34;\n var dist2 = Math.min(\n perpDistance2(x12, y12, ll12, x3 - x1, y3 - y1),\n perpDistance2(x12, y12, ll12, x4 - x1, y4 - y1),\n perpDistance2(x34, y34, ll34, x1 - x3, y1 - y3),\n perpDistance2(x34, y34, ll34, x2 - x3, y2 - y3)\n );\n return Math.sqrt(dist2);\n };\n function perpDistance2(xab, yab, llab, xac, yac) {\n var fcAB = xac * xab + yac * yab;\n if (fcAB < 0) {\n return xac * xac + yac * yac;\n } else if (fcAB > llab) {\n var xbc = xac - xab;\n var ybc = yac - yab;\n return xbc * xbc + ybc * ybc;\n } else {\n var crossProduct = xac * yab - yac * xab;\n return crossProduct * crossProduct / llab;\n }\n }\n var locationCache;\n var workingPath;\n var workingTextWidth;\n exports.getTextLocation = function getTextLocation(path, totalPathLen, positionOnPath, textWidth) {\n if (path !== workingPath || textWidth !== workingTextWidth) {\n locationCache = {};\n workingPath = path;\n workingTextWidth = textWidth;\n }\n if (locationCache[positionOnPath]) {\n return locationCache[positionOnPath];\n }\n var p0 = path.getPointAtLength(mod(positionOnPath - textWidth / 2, totalPathLen));\n var p1 = path.getPointAtLength(mod(positionOnPath + textWidth / 2, totalPathLen));\n var theta = Math.atan((p1.y - p0.y) / (p1.x - p0.x));\n var pCenter = path.getPointAtLength(mod(positionOnPath, totalPathLen));\n var x = (pCenter.x * 4 + p0.x + p1.x) / 6;\n var y = (pCenter.y * 4 + p0.y + p1.y) / 6;\n var out = { x, y, theta };\n locationCache[positionOnPath] = out;\n return out;\n };\n exports.clearLocationCache = function() {\n workingPath = null;\n };\n exports.getVisibleSegment = function getVisibleSegment(path, bounds, buffer) {\n var left = bounds.left;\n var right = bounds.right;\n var top = bounds.top;\n var bottom = bounds.bottom;\n var pMin = 0;\n var pTotal = path.getTotalLength();\n var pMax = pTotal;\n var pt0, ptTotal;\n function getDistToPlot(len) {\n var pt = path.getPointAtLength(len);\n if (len === 0) pt0 = pt;\n else if (len === pTotal) ptTotal = pt;\n var dx = pt.x < left ? left - pt.x : pt.x > right ? pt.x - right : 0;\n var dy = pt.y < top ? top - pt.y : pt.y > bottom ? pt.y - bottom : 0;\n return Math.sqrt(dx * dx + dy * dy);\n }\n var distToPlot = getDistToPlot(pMin);\n while (distToPlot) {\n pMin += distToPlot + buffer;\n if (pMin > pMax) return;\n distToPlot = getDistToPlot(pMin);\n }\n distToPlot = getDistToPlot(pMax);\n while (distToPlot) {\n pMax -= distToPlot + buffer;\n if (pMin > pMax) return;\n distToPlot = getDistToPlot(pMax);\n }\n return {\n min: pMin,\n max: pMax,\n len: pMax - pMin,\n total: pTotal,\n isClosed: pMin === 0 && pMax === pTotal && Math.abs(pt0.x - ptTotal.x) < 0.1 && Math.abs(pt0.y - ptTotal.y) < 0.1\n };\n };\n exports.findPointOnPath = function findPointOnPath(path, val, coord, opts) {\n opts = opts || {};\n var pathLength = opts.pathLength || path.getTotalLength();\n var tolerance = opts.tolerance || 1e-3;\n var iterationLimit = opts.iterationLimit || 30;\n var mul = path.getPointAtLength(0)[coord] > path.getPointAtLength(pathLength)[coord] ? -1 : 1;\n var i = 0;\n var b0 = 0;\n var b1 = pathLength;\n var mid;\n var pt;\n var diff;\n while (i < iterationLimit) {\n mid = (b0 + b1) / 2;\n pt = path.getPointAtLength(mid);\n diff = pt[coord] - val;\n if (Math.abs(diff) < tolerance) {\n return pt;\n } else {\n if (mul * diff > 0) {\n b1 = mid;\n } else {\n b0 = mid;\n }\n i++;\n }\n }\n return pt;\n };\n }\n });\n\n // src/lib/throttle.js\n var require_throttle = __commonJS({\n \"src/lib/throttle.js\"(exports) {\n \"use strict\";\n var timerCache = {};\n exports.throttle = function throttle(id, minInterval, callback) {\n var cache = timerCache[id];\n var now = Date.now();\n if (!cache) {\n for (var idi in timerCache) {\n if (timerCache[idi].ts < now - 6e4) {\n delete timerCache[idi];\n }\n }\n cache = timerCache[id] = { ts: 0, timer: null };\n }\n _clearTimeout(cache);\n function exec() {\n callback();\n cache.ts = Date.now();\n if (cache.onDone) {\n cache.onDone();\n cache.onDone = null;\n }\n }\n if (now > cache.ts + minInterval) {\n exec();\n return;\n }\n cache.timer = setTimeout(function() {\n exec();\n cache.timer = null;\n }, minInterval);\n };\n exports.done = function(id) {\n var cache = timerCache[id];\n if (!cache || !cache.timer) return Promise.resolve();\n return new Promise(function(resolve) {\n var previousOnDone = cache.onDone;\n cache.onDone = function onDone() {\n if (previousOnDone) previousOnDone();\n resolve();\n cache.onDone = null;\n };\n });\n };\n exports.clear = function(id) {\n if (id) {\n _clearTimeout(timerCache[id]);\n delete timerCache[id];\n } else {\n for (var idi in timerCache) exports.clear(idi);\n }\n };\n function _clearTimeout(cache) {\n if (cache && cache.timer !== null) {\n clearTimeout(cache.timer);\n cache.timer = null;\n }\n }\n }\n });\n\n // src/lib/clear_responsive.js\n var require_clear_responsive = __commonJS({\n \"src/lib/clear_responsive.js\"(exports, module) {\n \"use strict\";\n module.exports = function clearResponsive(gd) {\n if (gd._responsiveChartHandler) {\n window.removeEventListener(\"resize\", gd._responsiveChartHandler);\n delete gd._responsiveChartHandler;\n }\n };\n }\n });\n\n // node_modules/is-mobile/index.js\n var require_is_mobile = __commonJS({\n \"node_modules/is-mobile/index.js\"(exports, module) {\n \"use strict\";\n module.exports = isMobile;\n module.exports.isMobile = isMobile;\n module.exports.default = isMobile;\n var mobileRE = /(android|bb\\d+|meego).+mobile|armv7l|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i;\n var notMobileRE = /CrOS/;\n var tabletRE = /android|ipad|playbook|silk/i;\n function isMobile(opts) {\n if (!opts) opts = {};\n let ua = opts.ua;\n if (!ua && typeof navigator !== \"undefined\") ua = navigator.userAgent;\n if (ua && ua.headers && typeof ua.headers[\"user-agent\"] === \"string\") {\n ua = ua.headers[\"user-agent\"];\n }\n if (typeof ua !== \"string\") return false;\n let result = mobileRE.test(ua) && !notMobileRE.test(ua) || !!opts.tablet && tabletRE.test(ua);\n if (!result && opts.tablet && opts.featureDetect && navigator && navigator.maxTouchPoints > 1 && ua.indexOf(\"Macintosh\") !== -1 && ua.indexOf(\"Safari\") !== -1) {\n result = true;\n }\n return result;\n }\n }\n });\n\n // src/lib/preserve_drawing_buffer.js\n var require_preserve_drawing_buffer = __commonJS({\n \"src/lib/preserve_drawing_buffer.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isMobileOrTablet = require_is_mobile();\n module.exports = function preserveDrawingBuffer(opts) {\n var ua;\n if (opts && opts.hasOwnProperty(\"userAgent\")) {\n ua = opts.userAgent;\n } else {\n ua = getUserAgent();\n }\n if (typeof ua !== \"string\") return true;\n var enable = isMobileOrTablet({\n ua: { headers: { \"user-agent\": ua } },\n tablet: true,\n featureDetect: false\n });\n if (!enable) {\n var allParts = ua.split(\" \");\n for (var i = 1; i < allParts.length; i++) {\n var part = allParts[i];\n if (part.indexOf(\"Safari\") !== -1) {\n for (var k = i - 1; k > -1; k--) {\n var prevPart = allParts[k];\n if (prevPart.substr(0, 8) === \"Version/\") {\n var v = prevPart.substr(8).split(\".\")[0];\n if (isNumeric(v)) v = +v;\n if (v >= 13) return true;\n }\n }\n }\n }\n }\n return enable;\n };\n function getUserAgent() {\n var ua;\n if (typeof navigator !== \"undefined\") {\n ua = navigator.userAgent;\n }\n if (ua && ua.headers && typeof ua.headers[\"user-agent\"] === \"string\") {\n ua = ua.headers[\"user-agent\"];\n }\n return ua;\n }\n }\n });\n\n // src/lib/make_trace_groups.js\n var require_make_trace_groups = __commonJS({\n \"src/lib/make_trace_groups.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n module.exports = function makeTraceGroups(traceLayer, cdModule, cls) {\n var traces = traceLayer.selectAll(\"g.\" + cls.replace(/\\s/g, \".\")).data(cdModule, function(cd) {\n return cd[0].trace.uid;\n });\n traces.exit().remove();\n traces.enter().append(\"g\").attr(\"class\", cls);\n traces.order();\n var k = traceLayer.classed(\"rangeplot\") ? \"nodeRangePlot3\" : \"node3\";\n traces.each(function(cd) {\n cd[0][k] = d3.select(this);\n });\n return traces;\n };\n }\n });\n\n // src/lib/localize.js\n var require_localize = __commonJS({\n \"src/lib/localize.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n module.exports = function localize(gd, s) {\n var locale = gd._context.locale;\n for (var i = 0; i < 2; i++) {\n var locales = gd._context.locales;\n for (var j = 0; j < 2; j++) {\n var dict = (locales[locale] || {}).dictionary;\n if (dict) {\n var out = dict[s];\n if (out) return out;\n }\n locales = Registry.localeRegistry;\n }\n var baseLocale = locale.split(\"-\")[0];\n if (baseLocale === locale) break;\n locale = baseLocale;\n }\n return s;\n };\n }\n });\n\n // src/lib/filter_unique.js\n var require_filter_unique = __commonJS({\n \"src/lib/filter_unique.js\"(exports, module) {\n \"use strict\";\n module.exports = function filterUnique(array) {\n var seen = {};\n var out = [];\n var j = 0;\n for (var i = 0; i < array.length; i++) {\n var item = array[i];\n if (seen[item] !== 1) {\n seen[item] = 1;\n out[j++] = item;\n }\n }\n return out;\n };\n }\n });\n\n // src/lib/filter_visible.js\n var require_filter_visible = __commonJS({\n \"src/lib/filter_visible.js\"(exports, module) {\n \"use strict\";\n module.exports = function filterVisible(container) {\n var filterFn = isCalcData(container) ? calcDataFilter : baseFilter;\n var out = [];\n for (var i = 0; i < container.length; i++) {\n var item = container[i];\n if (filterFn(item)) out.push(item);\n }\n return out;\n };\n function baseFilter(item) {\n return item.visible === true;\n }\n function calcDataFilter(item) {\n var trace = item[0].trace;\n return trace.visible === true && trace._length !== 0;\n }\n function isCalcData(cont) {\n return Array.isArray(cont) && Array.isArray(cont[0]) && cont[0][0] && cont[0][0].trace;\n }\n }\n });\n\n // src/lib/increment.js\n var require_increment = __commonJS({\n \"src/lib/increment.js\"(exports, module) {\n \"use strict\";\n module.exports = function incrementNumeric(x, delta) {\n if (!delta) return x;\n var scale = 1 / Math.abs(delta);\n var newX = scale > 1 ? (scale * x + scale * delta) / scale : x + delta;\n var lenX1 = String(newX).length;\n if (lenX1 > 16) {\n var lenDt = String(delta).length;\n var lenX0 = String(x).length;\n if (lenX1 >= lenX0 + lenDt) {\n var s = parseFloat(newX).toPrecision(12);\n if (s.indexOf(\"e+\") === -1) newX = +s;\n }\n }\n return newX;\n };\n }\n });\n\n // src/lib/clean_number.js\n var require_clean_number = __commonJS({\n \"src/lib/clean_number.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var JUNK = /^['\"%,$#\\s']+|[, ]|['\"%,$#\\s']+$/g;\n module.exports = function cleanNumber(v) {\n if (typeof v === \"string\") {\n v = v.replace(JUNK, \"\");\n }\n if (isNumeric(v)) return Number(v);\n return BADNUM;\n };\n }\n });\n\n // src/lib/index.js\n var require_lib = __commonJS({\n \"src/lib/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var utcFormat = require_d3_time_format().utcFormat;\n var d3Format = require_d3_format().format;\n var isNumeric = require_fast_isnumeric();\n var numConstants = require_numerical();\n var MAX_SAFE = numConstants.FP_SAFE;\n var MIN_SAFE = -MAX_SAFE;\n var BADNUM = numConstants.BADNUM;\n var lib = module.exports = {};\n lib.adjustFormat = function adjustFormat(formatStr) {\n if (!formatStr || /^\\d[.]\\df/.test(formatStr) || /[.]\\d%/.test(formatStr)) return formatStr;\n if (formatStr === \"0.f\") return \"~f\";\n if (/^\\d%/.test(formatStr)) return \"~%\";\n if (/^\\ds/.test(formatStr)) return \"~s\";\n if (!/^[~,.0$]/.test(formatStr) && /[&fps]/.test(formatStr)) return \"~\" + formatStr;\n return formatStr;\n };\n var seenBadFormats = {};\n lib.warnBadFormat = function(f) {\n var key = String(f);\n if (!seenBadFormats[key]) {\n seenBadFormats[key] = 1;\n lib.warn('encountered bad format: \"' + key + '\"');\n }\n };\n lib.noFormat = function(value) {\n return String(value);\n };\n lib.numberFormat = function(formatStr) {\n var fn;\n try {\n fn = d3Format(lib.adjustFormat(formatStr));\n } catch (e) {\n lib.warnBadFormat(formatStr);\n return lib.noFormat;\n }\n return fn;\n };\n lib.nestedProperty = require_nested_property();\n lib.keyedContainer = require_keyed_container();\n lib.relativeAttr = require_relative_attr();\n lib.isPlainObject = require_is_plain_object();\n lib.toLogRange = require_to_log_range();\n lib.relinkPrivateKeys = require_relink_private();\n var arrayModule = require_array();\n lib.isArrayBuffer = arrayModule.isArrayBuffer;\n lib.isTypedArray = arrayModule.isTypedArray;\n lib.isArrayOrTypedArray = arrayModule.isArrayOrTypedArray;\n lib.isArray1D = arrayModule.isArray1D;\n lib.ensureArray = arrayModule.ensureArray;\n lib.concat = arrayModule.concat;\n lib.maxRowLength = arrayModule.maxRowLength;\n lib.minRowLength = arrayModule.minRowLength;\n var modModule = require_mod();\n lib.mod = modModule.mod;\n lib.modHalf = modModule.modHalf;\n var coerceModule = require_coerce();\n lib.valObjectMeta = coerceModule.valObjectMeta;\n lib.coerce = coerceModule.coerce;\n lib.coerce2 = coerceModule.coerce2;\n lib.coerceFont = coerceModule.coerceFont;\n lib.coercePattern = coerceModule.coercePattern;\n lib.coerceHoverinfo = coerceModule.coerceHoverinfo;\n lib.coerceSelectionMarkerOpacity = coerceModule.coerceSelectionMarkerOpacity;\n lib.validate = coerceModule.validate;\n var datesModule = require_dates();\n lib.dateTime2ms = datesModule.dateTime2ms;\n lib.isDateTime = datesModule.isDateTime;\n lib.ms2DateTime = datesModule.ms2DateTime;\n lib.ms2DateTimeLocal = datesModule.ms2DateTimeLocal;\n lib.cleanDate = datesModule.cleanDate;\n lib.isJSDate = datesModule.isJSDate;\n lib.formatDate = datesModule.formatDate;\n lib.incrementMonth = datesModule.incrementMonth;\n lib.dateTick0 = datesModule.dateTick0;\n lib.dfltRange = datesModule.dfltRange;\n lib.findExactDates = datesModule.findExactDates;\n lib.MIN_MS = datesModule.MIN_MS;\n lib.MAX_MS = datesModule.MAX_MS;\n var searchModule = require_search();\n lib.findBin = searchModule.findBin;\n lib.sorterAsc = searchModule.sorterAsc;\n lib.sorterDes = searchModule.sorterDes;\n lib.distinctVals = searchModule.distinctVals;\n lib.roundUp = searchModule.roundUp;\n lib.sort = searchModule.sort;\n lib.findIndexOfMin = searchModule.findIndexOfMin;\n lib.sortObjectKeys = require_sort_object_keys();\n var statsModule = require_stats();\n lib.aggNums = statsModule.aggNums;\n lib.len = statsModule.len;\n lib.mean = statsModule.mean;\n lib.geometricMean = statsModule.geometricMean;\n lib.median = statsModule.median;\n lib.midRange = statsModule.midRange;\n lib.variance = statsModule.variance;\n lib.stdev = statsModule.stdev;\n lib.interp = statsModule.interp;\n var matrixModule = require_matrix();\n lib.init2dArray = matrixModule.init2dArray;\n lib.transposeRagged = matrixModule.transposeRagged;\n lib.dot = matrixModule.dot;\n lib.translationMatrix = matrixModule.translationMatrix;\n lib.rotationMatrix = matrixModule.rotationMatrix;\n lib.rotationXYMatrix = matrixModule.rotationXYMatrix;\n lib.apply3DTransform = matrixModule.apply3DTransform;\n lib.apply2DTransform = matrixModule.apply2DTransform;\n lib.apply2DTransform2 = matrixModule.apply2DTransform2;\n lib.convertCssMatrix = matrixModule.convertCssMatrix;\n lib.inverseTransformMatrix = matrixModule.inverseTransformMatrix;\n var anglesModule = require_angles();\n lib.deg2rad = anglesModule.deg2rad;\n lib.rad2deg = anglesModule.rad2deg;\n lib.angleDelta = anglesModule.angleDelta;\n lib.angleDist = anglesModule.angleDist;\n lib.isFullCircle = anglesModule.isFullCircle;\n lib.isAngleInsideSector = anglesModule.isAngleInsideSector;\n lib.isPtInsideSector = anglesModule.isPtInsideSector;\n lib.pathArc = anglesModule.pathArc;\n lib.pathSector = anglesModule.pathSector;\n lib.pathAnnulus = anglesModule.pathAnnulus;\n var anchorUtils = require_anchor_utils();\n lib.isLeftAnchor = anchorUtils.isLeftAnchor;\n lib.isCenterAnchor = anchorUtils.isCenterAnchor;\n lib.isRightAnchor = anchorUtils.isRightAnchor;\n lib.isTopAnchor = anchorUtils.isTopAnchor;\n lib.isMiddleAnchor = anchorUtils.isMiddleAnchor;\n lib.isBottomAnchor = anchorUtils.isBottomAnchor;\n var geom2dModule = require_geometry2d();\n lib.segmentsIntersect = geom2dModule.segmentsIntersect;\n lib.segmentDistance = geom2dModule.segmentDistance;\n lib.getTextLocation = geom2dModule.getTextLocation;\n lib.clearLocationCache = geom2dModule.clearLocationCache;\n lib.getVisibleSegment = geom2dModule.getVisibleSegment;\n lib.findPointOnPath = geom2dModule.findPointOnPath;\n var extendModule = require_extend();\n lib.extendFlat = extendModule.extendFlat;\n lib.extendDeep = extendModule.extendDeep;\n lib.extendDeepAll = extendModule.extendDeepAll;\n lib.extendDeepNoArrays = extendModule.extendDeepNoArrays;\n var loggersModule = require_loggers();\n lib.log = loggersModule.log;\n lib.warn = loggersModule.warn;\n lib.error = loggersModule.error;\n var regexModule = require_regex();\n lib.counterRegex = regexModule.counter;\n var throttleModule = require_throttle();\n lib.throttle = throttleModule.throttle;\n lib.throttleDone = throttleModule.done;\n lib.clearThrottle = throttleModule.clear;\n var domModule = require_dom();\n lib.getGraphDiv = domModule.getGraphDiv;\n lib.isPlotDiv = domModule.isPlotDiv;\n lib.removeElement = domModule.removeElement;\n lib.addStyleRule = domModule.addStyleRule;\n lib.addRelatedStyleRule = domModule.addRelatedStyleRule;\n lib.deleteRelatedStyleRule = domModule.deleteRelatedStyleRule;\n lib.setStyleOnHover = domModule.setStyleOnHover;\n lib.getFullTransformMatrix = domModule.getFullTransformMatrix;\n lib.getElementTransformMatrix = domModule.getElementTransformMatrix;\n lib.getElementAndAncestors = domModule.getElementAndAncestors;\n lib.equalDomRects = domModule.equalDomRects;\n lib.clearResponsive = require_clear_responsive();\n lib.preserveDrawingBuffer = require_preserve_drawing_buffer();\n lib.makeTraceGroups = require_make_trace_groups();\n lib._ = require_localize();\n lib.notifier = require_notifier();\n lib.filterUnique = require_filter_unique();\n lib.filterVisible = require_filter_visible();\n lib.pushUnique = require_push_unique();\n lib.increment = require_increment();\n lib.cleanNumber = require_clean_number();\n lib.ensureNumber = function ensureNumber(v) {\n if (!isNumeric(v)) return BADNUM;\n v = Number(v);\n return v > MAX_SAFE || v < MIN_SAFE ? BADNUM : v;\n };\n lib.isIndex = function(v, len) {\n if (len !== void 0 && v >= len) return false;\n return isNumeric(v) && v >= 0 && v % 1 === 0;\n };\n lib.noop = require_noop();\n lib.identity = require_identity2();\n lib.repeat = function(v, cnt) {\n var out = new Array(cnt);\n for (var i = 0; i < cnt; i++) {\n out[i] = v;\n }\n return out;\n };\n lib.swapAttrs = function(cont, attrList, part1, part2) {\n if (!part1) part1 = \"x\";\n if (!part2) part2 = \"y\";\n for (var i = 0; i < attrList.length; i++) {\n var attr = attrList[i];\n var xp = lib.nestedProperty(cont, attr.replace(\"?\", part1));\n var yp = lib.nestedProperty(cont, attr.replace(\"?\", part2));\n var temp = xp.get();\n xp.set(yp.get());\n yp.set(temp);\n }\n };\n lib.raiseToTop = function raiseToTop(elem) {\n elem.parentNode.appendChild(elem);\n };\n lib.cancelTransition = function(selection) {\n return selection.transition().duration(0);\n };\n lib.constrain = function(v, v0, v1) {\n if (v0 > v1) return Math.max(v1, Math.min(v0, v));\n return Math.max(v0, Math.min(v1, v));\n };\n lib.bBoxIntersect = function(a, b, pad) {\n pad = pad || 0;\n return a.left <= b.right + pad && b.left <= a.right + pad && a.top <= b.bottom + pad && b.top <= a.bottom + pad;\n };\n lib.simpleMap = function(array, func, x1, x2, opts) {\n var len = array.length;\n var out = new Array(len);\n for (var i = 0; i < len; i++) out[i] = func(array[i], x1, x2, opts);\n return out;\n };\n lib.randstr = function randstr(existing, bits, base, _recursion) {\n if (!base) base = 16;\n if (bits === void 0) bits = 24;\n if (bits <= 0) return \"0\";\n var digits = Math.log(Math.pow(2, bits)) / Math.log(base);\n var res = \"\";\n var i, b, x;\n for (i = 2; digits === Infinity; i *= 2) {\n digits = Math.log(Math.pow(2, bits / i)) / Math.log(base) * i;\n }\n var rem = digits - Math.floor(digits);\n for (i = 0; i < Math.floor(digits); i++) {\n x = Math.floor(Math.random() * base).toString(base);\n res = x + res;\n }\n if (rem) {\n b = Math.pow(base, rem);\n x = Math.floor(Math.random() * b).toString(base);\n res = x + res;\n }\n var parsed = parseInt(res, base);\n if (existing && existing[res] || parsed !== Infinity && parsed >= Math.pow(2, bits)) {\n if (_recursion > 10) {\n lib.warn(\"randstr failed uniqueness\");\n return res;\n }\n return randstr(existing, bits, base, (_recursion || 0) + 1);\n } else return res;\n };\n lib.OptionControl = function(opt, optname) {\n if (!opt) opt = {};\n if (!optname) optname = \"opt\";\n var self2 = {};\n self2.optionList = [];\n self2._newoption = function(optObj) {\n optObj[optname] = opt;\n self2[optObj.name] = optObj;\n self2.optionList.push(optObj);\n };\n self2[\"_\" + optname] = opt;\n return self2;\n };\n lib.smooth = function(arrayIn, FWHM) {\n FWHM = Math.round(FWHM) || 0;\n if (FWHM < 2) return arrayIn;\n var alen = arrayIn.length;\n var alen2 = 2 * alen;\n var wlen = 2 * FWHM - 1;\n var w = new Array(wlen);\n var arrayOut = new Array(alen);\n var i;\n var j;\n var k;\n var v;\n for (i = 0; i < wlen; i++) {\n w[i] = (1 - Math.cos(Math.PI * (i + 1) / FWHM)) / (2 * FWHM);\n }\n for (i = 0; i < alen; i++) {\n v = 0;\n for (j = 0; j < wlen; j++) {\n k = i + j + 1 - FWHM;\n if (k < -alen) k -= alen2 * Math.round(k / alen2);\n else if (k >= alen2) k -= alen2 * Math.floor(k / alen2);\n if (k < 0) k = -1 - k;\n else if (k >= alen) k = alen2 - 1 - k;\n v += arrayIn[k] * w[j];\n }\n arrayOut[i] = v;\n }\n return arrayOut;\n };\n lib.syncOrAsync = function(sequence, arg, finalStep) {\n var ret, fni;\n function continueAsync() {\n return lib.syncOrAsync(sequence, arg, finalStep);\n }\n while (sequence.length) {\n fni = sequence.splice(0, 1)[0];\n ret = fni(arg);\n if (ret && ret.then) {\n return ret.then(continueAsync);\n }\n }\n return finalStep && finalStep(arg);\n };\n lib.stripTrailingSlash = function(str) {\n if (str.substr(-1) === \"/\") return str.substr(0, str.length - 1);\n return str;\n };\n lib.noneOrAll = function(containerIn, containerOut, attrList) {\n if (!containerIn) return;\n var hasAny = false;\n var hasAll = true;\n var i;\n var val;\n for (i = 0; i < attrList.length; i++) {\n val = containerIn[attrList[i]];\n if (val !== void 0 && val !== null) hasAny = true;\n else hasAll = false;\n }\n if (hasAny && !hasAll) {\n for (i = 0; i < attrList.length; i++) {\n containerIn[attrList[i]] = containerOut[attrList[i]];\n }\n }\n };\n lib.mergeArray = function(traceAttr, cd, cdAttr, fn) {\n var hasFn = typeof fn === \"function\";\n if (lib.isArrayOrTypedArray(traceAttr)) {\n var imax = Math.min(traceAttr.length, cd.length);\n for (var i = 0; i < imax; i++) {\n var v = traceAttr[i];\n cd[i][cdAttr] = hasFn ? fn(v) : v;\n }\n }\n };\n lib.mergeArrayCastPositive = function(traceAttr, cd, cdAttr) {\n return lib.mergeArray(traceAttr, cd, cdAttr, function(v) {\n var w = +v;\n return !isFinite(w) ? 0 : w > 0 ? w : 0;\n });\n };\n lib.fillArray = function(traceAttr, cd, cdAttr, fn) {\n fn = fn || lib.identity;\n if (lib.isArrayOrTypedArray(traceAttr)) {\n for (var i = 0; i < cd.length; i++) {\n cd[i][cdAttr] = fn(traceAttr[i]);\n }\n }\n };\n lib.castOption = function(trace, ptNumber, astr, fn) {\n fn = fn || lib.identity;\n var val = lib.nestedProperty(trace, astr).get();\n if (lib.isArrayOrTypedArray(val)) {\n if (Array.isArray(ptNumber) && lib.isArrayOrTypedArray(val[ptNumber[0]])) {\n return fn(val[ptNumber[0]][ptNumber[1]]);\n } else {\n return fn(val[ptNumber]);\n }\n } else {\n return val;\n }\n };\n lib.extractOption = function(calcPt, trace, calcKey, traceKey) {\n if (calcKey in calcPt) return calcPt[calcKey];\n var traceVal = lib.nestedProperty(trace, traceKey).get();\n if (!Array.isArray(traceVal)) return traceVal;\n };\n function makePtIndex2PtNumber(indexToPoints) {\n var ptIndex2ptNumber = {};\n for (var k in indexToPoints) {\n var pts = indexToPoints[k];\n for (var j = 0; j < pts.length; j++) {\n ptIndex2ptNumber[pts[j]] = +k;\n }\n }\n return ptIndex2ptNumber;\n }\n lib.tagSelected = function(calcTrace, trace, ptNumber2cdIndex) {\n var selectedpoints = trace.selectedpoints;\n var indexToPoints = trace._indexToPoints;\n var ptIndex2ptNumber;\n if (indexToPoints) {\n ptIndex2ptNumber = makePtIndex2PtNumber(indexToPoints);\n }\n function isCdIndexValid(v) {\n return v !== void 0 && v < calcTrace.length;\n }\n for (var i = 0; i < selectedpoints.length; i++) {\n var ptIndex = selectedpoints[i];\n if (lib.isIndex(ptIndex) || lib.isArrayOrTypedArray(ptIndex) && lib.isIndex(ptIndex[0]) && lib.isIndex(ptIndex[1])) {\n var ptNumber = ptIndex2ptNumber ? ptIndex2ptNumber[ptIndex] : ptIndex;\n var cdIndex = ptNumber2cdIndex ? ptNumber2cdIndex[ptNumber] : ptNumber;\n if (isCdIndexValid(cdIndex)) {\n calcTrace[cdIndex].selected = 1;\n }\n }\n }\n };\n lib.selIndices2selPoints = function(trace) {\n var selectedpoints = trace.selectedpoints;\n var indexToPoints = trace._indexToPoints;\n if (indexToPoints) {\n var ptIndex2ptNumber = makePtIndex2PtNumber(indexToPoints);\n var out = [];\n for (var i = 0; i < selectedpoints.length; i++) {\n var ptIndex = selectedpoints[i];\n if (lib.isIndex(ptIndex)) {\n var ptNumber = ptIndex2ptNumber[ptIndex];\n if (lib.isIndex(ptNumber)) {\n out.push(ptNumber);\n }\n }\n }\n return out;\n } else {\n return selectedpoints;\n }\n };\n lib.getTargetArray = function(trace, transformOpts) {\n var target = transformOpts.target;\n if (typeof target === \"string\" && target) {\n var array = lib.nestedProperty(trace, target).get();\n return lib.isArrayOrTypedArray(array) ? array : false;\n } else if (lib.isArrayOrTypedArray(target)) {\n return target;\n }\n return false;\n };\n function minExtend(obj1, obj2, opt) {\n var objOut = {};\n if (typeof obj2 !== \"object\") obj2 = {};\n var arrayLen = opt === \"pieLike\" ? -1 : 3;\n var keys = Object.keys(obj1);\n var i, k, v;\n for (i = 0; i < keys.length; i++) {\n k = keys[i];\n v = obj1[k];\n if (k.charAt(0) === \"_\" || typeof v === \"function\") continue;\n else if (k === \"module\") objOut[k] = v;\n else if (Array.isArray(v)) {\n if (k === \"colorscale\" || arrayLen === -1) {\n objOut[k] = v.slice();\n } else {\n objOut[k] = v.slice(0, arrayLen);\n }\n } else if (lib.isTypedArray(v)) {\n if (arrayLen === -1) {\n objOut[k] = v.subarray();\n } else {\n objOut[k] = v.subarray(0, arrayLen);\n }\n } else if (v && typeof v === \"object\") objOut[k] = minExtend(obj1[k], obj2[k], opt);\n else objOut[k] = v;\n }\n keys = Object.keys(obj2);\n for (i = 0; i < keys.length; i++) {\n k = keys[i];\n v = obj2[k];\n if (typeof v !== \"object\" || !(k in objOut) || typeof objOut[k] !== \"object\") {\n objOut[k] = v;\n }\n }\n return objOut;\n }\n lib.minExtend = minExtend;\n lib.titleCase = function(s) {\n return s.charAt(0).toUpperCase() + s.substr(1);\n };\n lib.containsAny = function(s, fragments) {\n for (var i = 0; i < fragments.length; i++) {\n if (s.indexOf(fragments[i]) !== -1) return true;\n }\n return false;\n };\n var IS_SAFARI_REGEX = /Version\\/[\\d\\.]+.*Safari/;\n lib.isSafari = function() {\n return IS_SAFARI_REGEX.test(window.navigator.userAgent);\n };\n var IS_IOS_REGEX = /iPad|iPhone|iPod/;\n lib.isIOS = function() {\n return IS_IOS_REGEX.test(window.navigator.userAgent);\n };\n var FIREFOX_VERSION_REGEX = /Firefox\\/(\\d+)\\.\\d+/;\n lib.getFirefoxVersion = function() {\n var match = FIREFOX_VERSION_REGEX.exec(window.navigator.userAgent);\n if (match && match.length === 2) {\n var versionInt = parseInt(match[1]);\n if (!isNaN(versionInt)) {\n return versionInt;\n }\n }\n return null;\n };\n lib.isD3Selection = function(obj) {\n return obj instanceof d3.selection;\n };\n lib.ensureSingle = function(parent, nodeType, className, enterFn) {\n var sel = parent.select(nodeType + (className ? \".\" + className : \"\"));\n if (sel.size()) return sel;\n var layer = parent.append(nodeType);\n if (className) layer.classed(className, true);\n if (enterFn) layer.call(enterFn);\n return layer;\n };\n lib.ensureSingleById = function(parent, nodeType, id, enterFn) {\n var sel = parent.select(nodeType + \"#\" + id);\n if (sel.size()) return sel;\n var layer = parent.append(nodeType).attr(\"id\", id);\n if (enterFn) layer.call(enterFn);\n return layer;\n };\n lib.objectFromPath = function(path, value) {\n var keys = path.split(\".\");\n var tmpObj;\n var obj = tmpObj = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var el = null;\n var parts = keys[i].match(/(.*)\\[([0-9]+)\\]/);\n if (parts) {\n key = parts[1];\n el = parts[2];\n tmpObj = tmpObj[key] = [];\n if (i === keys.length - 1) {\n tmpObj[el] = value;\n } else {\n tmpObj[el] = {};\n }\n tmpObj = tmpObj[el];\n } else {\n if (i === keys.length - 1) {\n tmpObj[key] = value;\n } else {\n tmpObj[key] = {};\n }\n tmpObj = tmpObj[key];\n }\n }\n return obj;\n };\n var dottedPropertyRegex = /^([^\\[\\.]+)\\.(.+)?/;\n var indexedPropertyRegex = /^([^\\.]+)\\[([0-9]+)\\](\\.)?(.+)?/;\n function notValid(prop) {\n return prop.slice(0, 2) === \"__\";\n }\n lib.expandObjectPaths = function(data) {\n var match, key, prop, datum, idx, dest, trailingPath;\n if (typeof data === \"object\" && !Array.isArray(data)) {\n for (key in data) {\n if (data.hasOwnProperty(key)) {\n if (match = key.match(dottedPropertyRegex)) {\n datum = data[key];\n prop = match[1];\n if (notValid(prop)) continue;\n delete data[key];\n data[prop] = lib.extendDeepNoArrays(data[prop] || {}, lib.objectFromPath(key, lib.expandObjectPaths(datum))[prop]);\n } else if (match = key.match(indexedPropertyRegex)) {\n datum = data[key];\n prop = match[1];\n if (notValid(prop)) continue;\n idx = parseInt(match[2]);\n delete data[key];\n data[prop] = data[prop] || [];\n if (match[3] === \".\") {\n trailingPath = match[4];\n dest = data[prop][idx] = data[prop][idx] || {};\n lib.extendDeepNoArrays(dest, lib.objectFromPath(trailingPath, lib.expandObjectPaths(datum)));\n } else {\n if (notValid(prop)) continue;\n data[prop][idx] = lib.expandObjectPaths(datum);\n }\n } else {\n if (notValid(key)) continue;\n data[key] = lib.expandObjectPaths(data[key]);\n }\n }\n }\n }\n return data;\n };\n lib.numSeparate = function(value, separators, separatethousands) {\n if (!separatethousands) separatethousands = false;\n if (typeof separators !== \"string\" || separators.length === 0) {\n throw new Error(\"Separator string required for formatting!\");\n }\n if (typeof value === \"number\") {\n value = String(value);\n }\n var thousandsRe = /(\\d+)(\\d{3})/;\n var decimalSep = separators.charAt(0);\n var thouSep = separators.charAt(1);\n var x = value.split(\".\");\n var x1 = x[0];\n var x2 = x.length > 1 ? decimalSep + x[1] : \"\";\n if (thouSep && (x.length > 1 || x1.length > 4 || separatethousands)) {\n while (thousandsRe.test(x1)) {\n x1 = x1.replace(thousandsRe, \"$1\" + thouSep + \"$2\");\n }\n }\n return x1 + x2;\n };\n lib.TEMPLATE_STRING_REGEX = /%{([^\\s%{}:]*)([:|\\|][^}]*)?}/g;\n var SIMPLE_PROPERTY_REGEX = /^\\w*$/;\n lib.templateString = function(string, obj) {\n var getterCache = {};\n return string.replace(lib.TEMPLATE_STRING_REGEX, function(dummy, key) {\n var v;\n if (SIMPLE_PROPERTY_REGEX.test(key)) {\n v = obj[key];\n } else {\n getterCache[key] = getterCache[key] || lib.nestedProperty(obj, key).get;\n v = getterCache[key](true);\n }\n return v !== void 0 ? v : \"\";\n });\n };\n var hovertemplateWarnings = {\n max: 10,\n count: 0,\n name: \"hovertemplate\"\n };\n lib.hovertemplateString = function() {\n return templateFormatString.apply(hovertemplateWarnings, arguments);\n };\n var texttemplateWarnings = {\n max: 10,\n count: 0,\n name: \"texttemplate\"\n };\n lib.texttemplateString = function() {\n return templateFormatString.apply(texttemplateWarnings, arguments);\n };\n var MULT_DIV_REGEX = /^(\\S+)([\\*\\/])(-?\\d+(\\.\\d+)?)$/;\n function multDivParser(inputStr) {\n var match = inputStr.match(MULT_DIV_REGEX);\n if (match) return { key: match[1], op: match[2], number: Number(match[3]) };\n return { key: inputStr, op: null, number: null };\n }\n var texttemplateWarningsForShapes = {\n max: 10,\n count: 0,\n name: \"texttemplate\",\n parseMultDiv: true\n };\n lib.texttemplateStringForShapes = function() {\n return templateFormatString.apply(texttemplateWarningsForShapes, arguments);\n };\n var TEMPLATE_STRING_FORMAT_SEPARATOR = /^[:|\\|]/;\n function templateFormatString(string, labels, d3locale) {\n var opts = this;\n var args = arguments;\n if (!labels) labels = {};\n return string.replace(lib.TEMPLATE_STRING_REGEX, function(match, rawKey, format) {\n var isOther = rawKey === \"xother\" || rawKey === \"yother\";\n var isSpaceOther = rawKey === \"_xother\" || rawKey === \"_yother\";\n var isSpaceOtherSpace = rawKey === \"_xother_\" || rawKey === \"_yother_\";\n var isOtherSpace = rawKey === \"xother_\" || rawKey === \"yother_\";\n var hasOther = isOther || isSpaceOther || isOtherSpace || isSpaceOtherSpace;\n var key = rawKey;\n if (isSpaceOther || isSpaceOtherSpace) key = key.substring(1);\n if (isOtherSpace || isSpaceOtherSpace) key = key.substring(0, key.length - 1);\n var parsedOp = null;\n var parsedNumber = null;\n if (opts.parseMultDiv) {\n var _match = multDivParser(key);\n key = _match.key;\n parsedOp = _match.op;\n parsedNumber = _match.number;\n }\n var value;\n if (hasOther) {\n value = labels[key];\n if (value === void 0) return \"\";\n } else {\n var obj, i;\n for (i = 3; i < args.length; i++) {\n obj = args[i];\n if (!obj) continue;\n if (obj.hasOwnProperty(key)) {\n value = obj[key];\n break;\n }\n if (!SIMPLE_PROPERTY_REGEX.test(key)) {\n value = lib.nestedProperty(obj, key).get(true);\n }\n if (value !== void 0) break;\n }\n }\n if (value !== void 0) {\n if (parsedOp === \"*\") value *= parsedNumber;\n if (parsedOp === \"/\") value /= parsedNumber;\n }\n if (value === void 0 && opts) {\n if (opts.count < opts.max) {\n lib.warn(\"Variable '\" + key + \"' in \" + opts.name + \" could not be found!\");\n value = match;\n }\n if (opts.count === opts.max) {\n lib.warn(\"Too many \" + opts.name + \" warnings - additional warnings will be suppressed\");\n }\n opts.count++;\n return match;\n }\n if (format) {\n var fmt;\n if (format[0] === \":\") {\n fmt = d3locale ? d3locale.numberFormat : lib.numberFormat;\n if (value !== \"\") {\n value = fmt(format.replace(TEMPLATE_STRING_FORMAT_SEPARATOR, \"\"))(value);\n }\n }\n if (format[0] === \"|\") {\n fmt = d3locale ? d3locale.timeFormat : utcFormat;\n var ms = lib.dateTime2ms(value);\n value = lib.formatDate(ms, format.replace(TEMPLATE_STRING_FORMAT_SEPARATOR, \"\"), false, fmt);\n }\n } else {\n var keyLabel = key + \"Label\";\n if (labels.hasOwnProperty(keyLabel)) value = labels[keyLabel];\n }\n if (hasOther) {\n value = \"(\" + value + \")\";\n if (isSpaceOther || isSpaceOtherSpace) value = \" \" + value;\n if (isOtherSpace || isSpaceOtherSpace) value = value + \" \";\n }\n return value;\n });\n }\n var char0 = 48;\n var char9 = 57;\n lib.subplotSort = function(a, b) {\n var l = Math.min(a.length, b.length) + 1;\n var numA = 0;\n var numB = 0;\n for (var i = 0; i < l; i++) {\n var charA = a.charCodeAt(i) || 0;\n var charB = b.charCodeAt(i) || 0;\n var isNumA = charA >= char0 && charA <= char9;\n var isNumB = charB >= char0 && charB <= char9;\n if (isNumA) numA = 10 * numA + charA - char0;\n if (isNumB) numB = 10 * numB + charB - char0;\n if (!isNumA || !isNumB) {\n if (numA !== numB) return numA - numB;\n if (charA !== charB) return charA - charB;\n }\n }\n return numB - numA;\n };\n var randSeed = 2e9;\n lib.seedPseudoRandom = function() {\n randSeed = 2e9;\n };\n lib.pseudoRandom = function() {\n var lastVal = randSeed;\n randSeed = (69069 * randSeed + 1) % 4294967296;\n if (Math.abs(randSeed - lastVal) < 429496729) return lib.pseudoRandom();\n return randSeed / 4294967296;\n };\n lib.fillText = function(calcPt, trace, contOut) {\n var fill = Array.isArray(contOut) ? function(v) {\n contOut.push(v);\n } : function(v) {\n contOut.text = v;\n };\n var htx = lib.extractOption(calcPt, trace, \"htx\", \"hovertext\");\n if (lib.isValidTextValue(htx)) return fill(htx);\n var tx = lib.extractOption(calcPt, trace, \"tx\", \"text\");\n if (lib.isValidTextValue(tx)) return fill(tx);\n };\n lib.isValidTextValue = function(v) {\n return v || v === 0;\n };\n lib.formatPercent = function(ratio, n) {\n n = n || 0;\n var str = (Math.round(100 * ratio * Math.pow(10, n)) * Math.pow(0.1, n)).toFixed(n) + \"%\";\n for (var i = 0; i < n; i++) {\n if (str.indexOf(\".\") !== -1) {\n str = str.replace(\"0%\", \"%\");\n str = str.replace(\".%\", \"%\");\n }\n }\n return str;\n };\n lib.isHidden = function(gd) {\n var display = window.getComputedStyle(gd).display;\n return !display || display === \"none\";\n };\n lib.strTranslate = function(x, y) {\n return x || y ? \"translate(\" + x + \",\" + y + \")\" : \"\";\n };\n lib.strRotate = function(a) {\n return a ? \"rotate(\" + a + \")\" : \"\";\n };\n lib.strScale = function(s) {\n return s !== 1 ? \"scale(\" + s + \")\" : \"\";\n };\n lib.getTextTransform = function(transform) {\n var noCenter = transform.noCenter;\n var textX = transform.textX;\n var textY = transform.textY;\n var targetX = transform.targetX;\n var targetY = transform.targetY;\n var anchorX = transform.anchorX || 0;\n var anchorY = transform.anchorY || 0;\n var rotate = transform.rotate;\n var scale = transform.scale;\n if (!scale) scale = 0;\n else if (scale > 1) scale = 1;\n return lib.strTranslate(\n targetX - scale * (textX + anchorX),\n targetY - scale * (textY + anchorY)\n ) + lib.strScale(scale) + (rotate ? \"rotate(\" + rotate + (noCenter ? \"\" : \" \" + textX + \" \" + textY) + \")\" : \"\");\n };\n lib.setTransormAndDisplay = function(s, transform) {\n s.attr(\"transform\", lib.getTextTransform(transform));\n s.style(\"display\", transform.scale ? null : \"none\");\n };\n lib.ensureUniformFontSize = function(gd, baseFont) {\n var out = lib.extendFlat({}, baseFont);\n out.size = Math.max(\n baseFont.size,\n gd._fullLayout.uniformtext.minsize || 0\n );\n return out;\n };\n lib.join2 = function(arr, mainSeparator, lastSeparator) {\n var len = arr.length;\n if (len > 1) {\n return arr.slice(0, -1).join(mainSeparator) + lastSeparator + arr[len - 1];\n }\n return arr.join(mainSeparator);\n };\n lib.bigFont = function(size) {\n return Math.round(1.2 * size);\n };\n var firefoxVersion = lib.getFirefoxVersion();\n var isProblematicFirefox = firefoxVersion !== null && firefoxVersion < 86;\n lib.getPositionFromD3Event = function() {\n if (isProblematicFirefox) {\n return [\n d3.event.layerX,\n d3.event.layerY\n ];\n } else {\n return [\n d3.event.offsetX,\n d3.event.offsetY\n ];\n }\n };\n }\n });\n\n // build/plotcss.js\n var require_plotcss = __commonJS({\n \"build/plotcss.js\"() {\n \"use strict\";\n var Lib = require_lib();\n var rules = {\n \"X,X div\": 'direction:ltr;font-family:\"Open Sans\",verdana,arial,sans-serif;margin:0;padding:0;',\n \"X input,X button\": 'font-family:\"Open Sans\",verdana,arial,sans-serif;',\n \"X input:focus,X button:focus\": \"outline:none;\",\n \"X a\": \"text-decoration:none;\",\n \"X a:hover\": \"text-decoration:none;\",\n \"X .crisp\": \"shape-rendering:crispEdges;\",\n \"X .user-select-none\": \"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\n \"X svg a\": \"fill:#447adb;\",\n \"X svg a:hover\": \"fill:#3c6dc5;\",\n \"X .main-svg\": \"position:absolute;top:0;left:0;pointer-events:none;\",\n \"X .main-svg .draglayer\": \"pointer-events:all;\",\n \"X .cursor-default\": \"cursor:default;\",\n \"X .cursor-pointer\": \"cursor:pointer;\",\n \"X .cursor-crosshair\": \"cursor:crosshair;\",\n \"X .cursor-move\": \"cursor:move;\",\n \"X .cursor-col-resize\": \"cursor:col-resize;\",\n \"X .cursor-row-resize\": \"cursor:row-resize;\",\n \"X .cursor-ns-resize\": \"cursor:ns-resize;\",\n \"X .cursor-ew-resize\": \"cursor:ew-resize;\",\n \"X .cursor-sw-resize\": \"cursor:sw-resize;\",\n \"X .cursor-s-resize\": \"cursor:s-resize;\",\n \"X .cursor-se-resize\": \"cursor:se-resize;\",\n \"X .cursor-w-resize\": \"cursor:w-resize;\",\n \"X .cursor-e-resize\": \"cursor:e-resize;\",\n \"X .cursor-nw-resize\": \"cursor:nw-resize;\",\n \"X .cursor-n-resize\": \"cursor:n-resize;\",\n \"X .cursor-ne-resize\": \"cursor:ne-resize;\",\n \"X .cursor-grab\": \"cursor:-webkit-grab;cursor:grab;\",\n \"X .modebar\": \"position:absolute;top:2px;right:2px;\",\n \"X .ease-bg\": \"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;\",\n \"X .modebar--hover>:not(.watermark)\": \"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;\",\n \"X:hover .modebar--hover .modebar-group\": \"opacity:1;\",\n \"X .modebar-group\": \"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\n \"X .modebar-btn\": \"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\n \"X .modebar-btn svg\": \"position:relative;top:2px;\",\n \"X .modebar.vertical\": \"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\n \"X .modebar.vertical svg\": \"top:-1px;\",\n \"X .modebar.vertical .modebar-group\": \"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\n \"X .modebar.vertical .modebar-group .modebar-btn\": \"display:block;text-align:center;\",\n \"X [data-title]:before,X [data-title]:after\": \"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\n \"X [data-title]:hover:before,X [data-title]:hover:after\": \"display:block;opacity:1;\",\n \"X [data-title]:before\": 'content:\"\";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',\n \"X [data-title]:after\": \"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;\",\n \"X .vertical [data-title]:before,X .vertical [data-title]:after\": \"top:0%;right:200%;\",\n \"X .vertical [data-title]:before\": \"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;\",\n Y: 'font-family:\"Open Sans\",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',\n \"Y p\": \"margin:0;\",\n \"Y .notifier-note\": \"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;\",\n \"Y .notifier-close\": \"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;\",\n \"Y .notifier-close:hover\": \"color:#444;text-decoration:none;cursor:pointer;\"\n };\n for (selector in rules) {\n fullSelector = selector.replace(/^,/, \" ,\").replace(/X/g, \".js-plotly-plot .plotly\").replace(/Y/g, \".plotly-notifier\");\n Lib.addStyleRule(fullSelector, rules[selector]);\n }\n var fullSelector;\n var selector;\n }\n });\n\n // node_modules/is-browser/client.js\n var require_client = __commonJS({\n \"node_modules/is-browser/client.js\"(exports, module) {\n module.exports = true;\n }\n });\n\n // node_modules/has-hover/index.js\n var require_has_hover = __commonJS({\n \"node_modules/has-hover/index.js\"(exports, module) {\n \"use strict\";\n var isBrowser = require_client();\n var hasHover;\n if (typeof window.matchMedia === \"function\") {\n hasHover = !window.matchMedia(\"(hover: none)\").matches;\n } else {\n hasHover = isBrowser;\n }\n module.exports = hasHover;\n }\n });\n\n // node_modules/events/events.js\n var require_events = __commonJS({\n \"node_modules/events/events.js\"(exports, module) {\n \"use strict\";\n var R = typeof Reflect === \"object\" ? Reflect : null;\n var ReflectApply = R && typeof R.apply === \"function\" ? R.apply : function ReflectApply2(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n var ReflectOwnKeys;\n if (R && typeof R.ownKeys === \"function\") {\n ReflectOwnKeys = R.ownKeys;\n } else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n } else {\n ReflectOwnKeys = function ReflectOwnKeys2(target) {\n return Object.getOwnPropertyNames(target);\n };\n }\n function ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n }\n var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {\n return value !== value;\n };\n function EventEmitter() {\n EventEmitter.init.call(this);\n }\n module.exports = EventEmitter;\n module.exports.once = once;\n EventEmitter.EventEmitter = EventEmitter;\n EventEmitter.prototype._events = void 0;\n EventEmitter.prototype._eventsCount = 0;\n EventEmitter.prototype._maxListeners = void 0;\n var defaultMaxListeners = 10;\n function checkListener(listener) {\n if (typeof listener !== \"function\") {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n }\n Object.defineProperty(EventEmitter, \"defaultMaxListeners\", {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== \"number\" || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + \".\");\n }\n defaultMaxListeners = arg;\n }\n });\n EventEmitter.init = function() {\n if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n }\n this._maxListeners = this._maxListeners || void 0;\n };\n EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== \"number\" || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + \".\");\n }\n this._maxListeners = n;\n return this;\n };\n function _getMaxListeners(that) {\n if (that._maxListeners === void 0)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n }\n EventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n };\n EventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = type === \"error\";\n var events = this._events;\n if (events !== void 0)\n doError = doError && events.error === void 0;\n else if (!doError)\n return false;\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n throw er;\n }\n var err = new Error(\"Unhandled error.\" + (er ? \" (\" + er.message + \")\" : \"\"));\n err.context = er;\n throw err;\n }\n var handler = events[type];\n if (handler === void 0)\n return false;\n if (typeof handler === \"function\") {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n return true;\n };\n function _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n if (events === void 0) {\n events = target._events = /* @__PURE__ */ Object.create(null);\n target._eventsCount = 0;\n } else {\n if (events.newListener !== void 0) {\n target.emit(\n \"newListener\",\n type,\n listener.listener ? listener.listener : listener\n );\n events = target._events;\n }\n existing = events[type];\n }\n if (existing === void 0) {\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === \"function\") {\n existing = events[type] = prepend ? [listener, existing] : [existing, listener];\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n var w = new Error(\"Possible EventEmitter memory leak detected. \" + existing.length + \" \" + String(type) + \" listeners added. Use emitter.setMaxListeners() to increase limit\");\n w.name = \"MaxListenersExceededWarning\";\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n return target;\n }\n EventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n };\n EventEmitter.prototype.on = EventEmitter.prototype.addListener;\n EventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n function onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n }\n function _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: void 0, target, type, listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n }\n EventEmitter.prototype.once = function once2(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n EventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === void 0)\n return this;\n list = events[type];\n if (list === void 0)\n return this;\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit(\"removeListener\", type, list.listener || listener);\n }\n } else if (typeof list !== \"function\") {\n position = -1;\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n if (position < 0)\n return this;\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n if (list.length === 1)\n events[type] = list[0];\n if (events.removeListener !== void 0)\n this.emit(\"removeListener\", type, originalListener || listener);\n }\n return this;\n };\n EventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === void 0)\n return this;\n if (events.removeListener === void 0) {\n if (arguments.length === 0) {\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== void 0) {\n if (--this._eventsCount === 0)\n this._events = /* @__PURE__ */ Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === \"removeListener\") continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners(\"removeListener\");\n this._events = /* @__PURE__ */ Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n listeners = events[type];\n if (typeof listeners === \"function\") {\n this.removeListener(type, listeners);\n } else if (listeners !== void 0) {\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n return this;\n };\n function _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === void 0)\n return [];\n var evlistener = events[type];\n if (evlistener === void 0)\n return [];\n if (typeof evlistener === \"function\")\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n }\n EventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n };\n EventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n };\n EventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === \"function\") {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n };\n EventEmitter.prototype.listenerCount = listenerCount;\n function listenerCount(type) {\n var events = this._events;\n if (events !== void 0) {\n var evlistener = events[type];\n if (typeof evlistener === \"function\") {\n return 1;\n } else if (evlistener !== void 0) {\n return evlistener.length;\n }\n }\n return 0;\n }\n EventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n };\n function arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n }\n function spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n }\n function unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n }\n function once(emitter, name2) {\n return new Promise(function(resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name2, resolver);\n reject(err);\n }\n function resolver() {\n if (typeof emitter.removeListener === \"function\") {\n emitter.removeListener(\"error\", errorListener);\n }\n resolve([].slice.call(arguments));\n }\n ;\n eventTargetAgnosticAddListener(emitter, name2, resolver, { once: true });\n if (name2 !== \"error\") {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n }\n function addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === \"function\") {\n eventTargetAgnosticAddListener(emitter, \"error\", handler, flags);\n }\n }\n function eventTargetAgnosticAddListener(emitter, name2, listener, flags) {\n if (typeof emitter.on === \"function\") {\n if (flags.once) {\n emitter.once(name2, listener);\n } else {\n emitter.on(name2, listener);\n }\n } else if (typeof emitter.addEventListener === \"function\") {\n emitter.addEventListener(name2, function wrapListener(arg) {\n if (flags.once) {\n emitter.removeEventListener(name2, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n }\n }\n });\n\n // src/lib/events.js\n var require_events2 = __commonJS({\n \"src/lib/events.js\"(exports, module) {\n \"use strict\";\n var EventEmitter = require_events().EventEmitter;\n var Events = {\n init: function(plotObj) {\n if (plotObj._ev instanceof EventEmitter) return plotObj;\n var ev = new EventEmitter();\n var internalEv = new EventEmitter();\n plotObj._ev = ev;\n plotObj._internalEv = internalEv;\n plotObj.on = ev.on.bind(ev);\n plotObj.once = ev.once.bind(ev);\n plotObj.removeListener = ev.removeListener.bind(ev);\n plotObj.removeAllListeners = ev.removeAllListeners.bind(ev);\n plotObj._internalOn = internalEv.on.bind(internalEv);\n plotObj._internalOnce = internalEv.once.bind(internalEv);\n plotObj._removeInternalListener = internalEv.removeListener.bind(internalEv);\n plotObj._removeAllInternalListeners = internalEv.removeAllListeners.bind(internalEv);\n plotObj.emit = function(event, data) {\n ev.emit(event, data);\n internalEv.emit(event, data);\n };\n return plotObj;\n },\n /*\n * This function behaves like jQuery's triggerHandler. It calls\n * all handlers for a particular event and returns the return value\n * of the LAST handler.\n */\n triggerHandler: function(plotObj, event, data) {\n var nodeEventHandlerValue;\n var ev = plotObj._ev;\n if (!ev) return;\n var handlers = ev._events[event];\n if (!handlers) return;\n function apply(handler) {\n if (handler.listener) {\n ev.removeListener(event, handler.listener);\n if (!handler.fired) {\n handler.fired = true;\n return handler.listener.apply(ev, [data]);\n }\n } else {\n return handler.apply(ev, [data]);\n }\n }\n handlers = Array.isArray(handlers) ? handlers : [handlers];\n var i;\n for (i = 0; i < handlers.length - 1; i++) {\n apply(handlers[i]);\n }\n nodeEventHandlerValue = apply(handlers[i]);\n return nodeEventHandlerValue;\n },\n purge: function(plotObj) {\n delete plotObj._ev;\n delete plotObj.on;\n delete plotObj.once;\n delete plotObj.removeListener;\n delete plotObj.removeAllListeners;\n delete plotObj.emit;\n delete plotObj._ev;\n delete plotObj._internalEv;\n delete plotObj._internalOn;\n delete plotObj._internalOnce;\n delete plotObj._removeInternalListener;\n delete plotObj._removeAllInternalListeners;\n return plotObj;\n }\n };\n module.exports = Events;\n }\n });\n\n // src/lib/queue.js\n var require_queue = __commonJS({\n \"src/lib/queue.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var dfltConfig = require_plot_config().dfltConfig;\n function copyArgArray(gd, args) {\n var copy = [];\n var arg;\n for (var i = 0; i < args.length; i++) {\n arg = args[i];\n if (arg === gd) copy[i] = arg;\n else if (typeof arg === \"object\") {\n copy[i] = Array.isArray(arg) ? Lib.extendDeep([], arg) : Lib.extendDeepAll({}, arg);\n } else copy[i] = arg;\n }\n return copy;\n }\n var queue = {};\n queue.add = function(gd, undoFunc, undoArgs, redoFunc, redoArgs) {\n var queueObj, queueIndex;\n gd.undoQueue = gd.undoQueue || { index: 0, queue: [], sequence: false };\n queueIndex = gd.undoQueue.index;\n if (gd.autoplay) {\n if (!gd.undoQueue.inSequence) gd.autoplay = false;\n return;\n }\n if (!gd.undoQueue.sequence || gd.undoQueue.beginSequence) {\n queueObj = { undo: { calls: [], args: [] }, redo: { calls: [], args: [] } };\n gd.undoQueue.queue.splice(queueIndex, gd.undoQueue.queue.length - queueIndex, queueObj);\n gd.undoQueue.index += 1;\n } else {\n queueObj = gd.undoQueue.queue[queueIndex - 1];\n }\n gd.undoQueue.beginSequence = false;\n if (queueObj) {\n queueObj.undo.calls.unshift(undoFunc);\n queueObj.undo.args.unshift(undoArgs);\n queueObj.redo.calls.push(redoFunc);\n queueObj.redo.args.push(redoArgs);\n }\n if (gd.undoQueue.queue.length > dfltConfig.queueLength) {\n gd.undoQueue.queue.shift();\n gd.undoQueue.index--;\n }\n };\n queue.startSequence = function(gd) {\n gd.undoQueue = gd.undoQueue || { index: 0, queue: [], sequence: false };\n gd.undoQueue.sequence = true;\n gd.undoQueue.beginSequence = true;\n };\n queue.stopSequence = function(gd) {\n gd.undoQueue = gd.undoQueue || { index: 0, queue: [], sequence: false };\n gd.undoQueue.sequence = false;\n gd.undoQueue.beginSequence = false;\n };\n queue.undo = function undo(gd) {\n var queueObj, i;\n if (gd.undoQueue === void 0 || isNaN(gd.undoQueue.index) || gd.undoQueue.index <= 0) {\n return;\n }\n gd.undoQueue.index--;\n queueObj = gd.undoQueue.queue[gd.undoQueue.index];\n gd.undoQueue.inSequence = true;\n for (i = 0; i < queueObj.undo.calls.length; i++) {\n queue.plotDo(gd, queueObj.undo.calls[i], queueObj.undo.args[i]);\n }\n gd.undoQueue.inSequence = false;\n gd.autoplay = false;\n };\n queue.redo = function redo(gd) {\n var queueObj, i;\n if (gd.undoQueue === void 0 || isNaN(gd.undoQueue.index) || gd.undoQueue.index >= gd.undoQueue.queue.length) {\n return;\n }\n queueObj = gd.undoQueue.queue[gd.undoQueue.index];\n gd.undoQueue.inSequence = true;\n for (i = 0; i < queueObj.redo.calls.length; i++) {\n queue.plotDo(gd, queueObj.redo.calls[i], queueObj.redo.args[i]);\n }\n gd.undoQueue.inSequence = false;\n gd.autoplay = false;\n gd.undoQueue.index++;\n };\n queue.plotDo = function(gd, func, args) {\n gd.autoplay = true;\n args = copyArgArray(gd, args);\n func.apply(null, args);\n };\n module.exports = queue;\n }\n });\n\n // src/plots/frame_attributes.js\n var require_frame_attributes = __commonJS({\n \"src/plots/frame_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n _isLinkedToArray: \"frames_entry\",\n group: {\n valType: \"string\"\n },\n name: {\n valType: \"string\"\n },\n traces: {\n valType: \"any\"\n },\n baseframe: {\n valType: \"string\"\n },\n data: {\n valType: \"any\"\n },\n layout: {\n valType: \"any\"\n }\n };\n }\n });\n\n // src/plot_api/plot_schema.js\n var require_plot_schema = __commonJS({\n \"src/plot_api/plot_schema.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var baseAttributes = require_attributes2();\n var baseLayoutAttributes = require_layout_attributes2();\n var frameAttributes = require_frame_attributes();\n var animationAttributes = require_animation_attributes();\n var configAttributes = require_plot_config().configAttributes;\n var editTypes = require_edit_types();\n var extendDeepAll = Lib.extendDeepAll;\n var isPlainObject = Lib.isPlainObject;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var nestedProperty = Lib.nestedProperty;\n var valObjectMeta = Lib.valObjectMeta;\n var IS_SUBPLOT_OBJ = \"_isSubplotObj\";\n var IS_LINKED_TO_ARRAY = \"_isLinkedToArray\";\n var ARRAY_ATTR_REGEXPS = \"_arrayAttrRegexps\";\n var DEPRECATED = \"_deprecated\";\n var UNDERSCORE_ATTRS = [IS_SUBPLOT_OBJ, IS_LINKED_TO_ARRAY, ARRAY_ATTR_REGEXPS, DEPRECATED];\n exports.IS_SUBPLOT_OBJ = IS_SUBPLOT_OBJ;\n exports.IS_LINKED_TO_ARRAY = IS_LINKED_TO_ARRAY;\n exports.DEPRECATED = DEPRECATED;\n exports.UNDERSCORE_ATTRS = UNDERSCORE_ATTRS;\n exports.get = function() {\n var traces = {};\n Registry.allTypes.forEach(function(type) {\n traces[type] = getTraceAttributes(type);\n });\n return {\n defs: {\n valObjects: valObjectMeta,\n metaKeys: UNDERSCORE_ATTRS.concat([\"description\", \"role\", \"editType\", \"impliedEdits\"]),\n editType: {\n traces: editTypes.traces,\n layout: editTypes.layout\n },\n impliedEdits: {}\n },\n traces,\n layout: getLayoutAttributes(),\n frames: getFramesAttributes(),\n animation: formatAttributes(animationAttributes),\n config: formatAttributes(configAttributes)\n };\n };\n exports.crawl = function(attrs, callback, specifiedLevel, attrString) {\n var level = specifiedLevel || 0;\n attrString = attrString || \"\";\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n if (UNDERSCORE_ATTRS.indexOf(attrName) !== -1) return;\n var fullAttrString = (attrString ? attrString + \".\" : \"\") + attrName;\n callback(attr, attrName, attrs, level, fullAttrString);\n if (exports.isValObject(attr)) return;\n if (isPlainObject(attr) && attrName !== \"impliedEdits\") {\n exports.crawl(attr, callback, level + 1, fullAttrString);\n }\n });\n };\n exports.isValObject = function(obj) {\n return obj && obj.valType !== void 0;\n };\n exports.findArrayAttributes = function(trace) {\n var arrayAttributes = [];\n var stack = [];\n var isArrayStack = [];\n var baseContainer, baseAttrName;\n function callback(attr, attrName, attrs, level) {\n stack = stack.slice(0, level).concat([attrName]);\n isArrayStack = isArrayStack.slice(0, level).concat([attr && attr._isLinkedToArray]);\n var splittableAttr = attr && (attr.valType === \"data_array\" || attr.arrayOk === true) && !(stack[level - 1] === \"colorbar\" && (attrName === \"ticktext\" || attrName === \"tickvals\"));\n if (!splittableAttr) return;\n crawlIntoTrace(baseContainer, 0, \"\");\n }\n function crawlIntoTrace(container, i, astrPartial) {\n var item = container[stack[i]];\n var newAstrPartial = astrPartial + stack[i];\n if (i === stack.length - 1) {\n if (isArrayOrTypedArray(item)) {\n arrayAttributes.push(baseAttrName + newAstrPartial);\n }\n } else {\n if (isArrayStack[i]) {\n if (Array.isArray(item)) {\n for (var j = 0; j < item.length; j++) {\n if (isPlainObject(item[j])) {\n crawlIntoTrace(item[j], i + 1, newAstrPartial + \"[\" + j + \"].\");\n }\n }\n }\n } else if (isPlainObject(item)) {\n crawlIntoTrace(item, i + 1, newAstrPartial + \".\");\n }\n }\n }\n baseContainer = trace;\n baseAttrName = \"\";\n exports.crawl(baseAttributes, callback);\n if (trace._module && trace._module.attributes) {\n exports.crawl(trace._module.attributes, callback);\n }\n return arrayAttributes;\n };\n exports.getTraceValObject = function(trace, parts) {\n var head = parts[0];\n var i = 1;\n var moduleAttrs, valObject;\n var _module = trace._module;\n if (!_module) _module = (Registry.modules[trace.type || baseAttributes.type.dflt] || {})._module;\n if (!_module) return false;\n moduleAttrs = _module.attributes;\n valObject = moduleAttrs && moduleAttrs[head];\n if (!valObject) {\n var subplotModule = _module.basePlotModule;\n if (subplotModule && subplotModule.attributes) {\n valObject = subplotModule.attributes[head];\n }\n }\n if (!valObject) valObject = baseAttributes[head];\n return recurseIntoValObject(valObject, parts, i);\n };\n exports.getLayoutValObject = function(fullLayout, parts) {\n var valObject = layoutHeadAttr(fullLayout, parts[0]);\n return recurseIntoValObject(valObject, parts, 1);\n };\n function layoutHeadAttr(fullLayout, head) {\n var i, key, _module, attributes;\n var basePlotModules = fullLayout._basePlotModules;\n if (basePlotModules) {\n var out;\n for (i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if (_module.attrRegex && _module.attrRegex.test(head)) {\n if (_module.layoutAttrOverrides) return _module.layoutAttrOverrides;\n if (!out && _module.layoutAttributes) out = _module.layoutAttributes;\n }\n var baseOverrides = _module.baseLayoutAttrOverrides;\n if (baseOverrides && head in baseOverrides) return baseOverrides[head];\n }\n if (out) return out;\n }\n var modules = fullLayout._modules;\n if (modules) {\n for (i = 0; i < modules.length; i++) {\n attributes = modules[i].layoutAttributes;\n if (attributes && head in attributes) {\n return attributes[head];\n }\n }\n }\n for (key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n if (_module.name === \"colorscale\" && head.indexOf(\"coloraxis\") === 0) {\n return _module.layoutAttributes[head];\n } else if (!_module.schema && head === _module.name) {\n return _module.layoutAttributes;\n }\n }\n if (head in baseLayoutAttributes) return baseLayoutAttributes[head];\n return false;\n }\n function recurseIntoValObject(valObject, parts, i) {\n if (!valObject) return false;\n if (valObject._isLinkedToArray) {\n if (isIndex(parts[i])) i++;\n else if (i < parts.length) return false;\n }\n for (; i < parts.length; i++) {\n var newValObject = valObject[parts[i]];\n if (isPlainObject(newValObject)) valObject = newValObject;\n else break;\n if (i === parts.length - 1) break;\n if (valObject._isLinkedToArray) {\n i++;\n if (!isIndex(parts[i])) return false;\n } else if (valObject.valType === \"info_array\") {\n i++;\n var index = parts[i];\n if (!isIndex(index)) return false;\n var items = valObject.items;\n if (Array.isArray(items)) {\n if (index >= items.length) return false;\n if (valObject.dimensions === 2) {\n i++;\n if (parts.length === i) return valObject;\n var index2 = parts[i];\n if (!isIndex(index2)) return false;\n valObject = items[index][index2];\n } else valObject = items[index];\n } else {\n valObject = items;\n }\n }\n }\n return valObject;\n }\n function isIndex(val) {\n return val === Math.round(val) && val >= 0;\n }\n function getTraceAttributes(type) {\n var _module, basePlotModule;\n _module = Registry.modules[type]._module, basePlotModule = _module.basePlotModule;\n var attributes = {};\n attributes.type = null;\n var copyBaseAttributes = extendDeepAll({}, baseAttributes);\n var copyModuleAttributes = extendDeepAll({}, _module.attributes);\n exports.crawl(copyModuleAttributes, function(attr, attrName, attrs, level, fullAttrString) {\n nestedProperty(copyBaseAttributes, fullAttrString).set(void 0);\n if (attr === void 0) nestedProperty(copyModuleAttributes, fullAttrString).set(void 0);\n });\n extendDeepAll(attributes, copyBaseAttributes);\n if (Registry.traceIs(type, \"noOpacity\")) {\n delete attributes.opacity;\n }\n if (!Registry.traceIs(type, \"showLegend\")) {\n delete attributes.showlegend;\n delete attributes.legendgroup;\n }\n if (Registry.traceIs(type, \"noHover\")) {\n delete attributes.hoverinfo;\n delete attributes.hoverlabel;\n }\n if (!_module.selectPoints) {\n delete attributes.selectedpoints;\n }\n extendDeepAll(attributes, copyModuleAttributes);\n if (basePlotModule.attributes) {\n extendDeepAll(attributes, basePlotModule.attributes);\n }\n attributes.type = type;\n var out = {\n meta: _module.meta || {},\n categories: _module.categories || {},\n animatable: Boolean(_module.animatable),\n type,\n attributes: formatAttributes(attributes)\n };\n if (_module.layoutAttributes) {\n var layoutAttributes = {};\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n out.layoutAttributes = formatAttributes(layoutAttributes);\n }\n if (!_module.animatable) {\n exports.crawl(out, function(attr) {\n if (exports.isValObject(attr) && \"anim\" in attr) {\n delete attr.anim;\n }\n });\n }\n return out;\n }\n function getLayoutAttributes() {\n var layoutAttributes = {};\n var key, _module;\n extendDeepAll(layoutAttributes, baseLayoutAttributes);\n for (key in Registry.subplotsRegistry) {\n _module = Registry.subplotsRegistry[key];\n if (!_module.layoutAttributes) continue;\n if (Array.isArray(_module.attr)) {\n for (var i = 0; i < _module.attr.length; i++) {\n handleBasePlotModule(layoutAttributes, _module, _module.attr[i]);\n }\n } else {\n var astr = _module.attr === \"subplot\" ? _module.name : _module.attr;\n handleBasePlotModule(layoutAttributes, _module, astr);\n }\n }\n for (key in Registry.componentsRegistry) {\n _module = Registry.componentsRegistry[key];\n var schema = _module.schema;\n if (schema && (schema.subplots || schema.layout)) {\n var subplots = schema.subplots;\n if (subplots && subplots.xaxis && !subplots.yaxis) {\n for (var xkey in subplots.xaxis) {\n delete layoutAttributes.yaxis[xkey];\n }\n }\n delete layoutAttributes.xaxis.shift;\n delete layoutAttributes.xaxis.autoshift;\n } else if (_module.name === \"colorscale\") {\n extendDeepAll(layoutAttributes, _module.layoutAttributes);\n } else if (_module.layoutAttributes) {\n insertAttrs(layoutAttributes, _module.layoutAttributes, _module.name);\n }\n }\n return {\n layoutAttributes: formatAttributes(layoutAttributes)\n };\n }\n function getFramesAttributes() {\n var attrs = {\n frames: extendDeepAll({}, frameAttributes)\n };\n formatAttributes(attrs);\n return attrs.frames;\n }\n function formatAttributes(attrs) {\n mergeValTypeAndRole(attrs);\n formatArrayContainers(attrs);\n stringify(attrs);\n return attrs;\n }\n function mergeValTypeAndRole(attrs) {\n function makeSrcAttr(attrName) {\n return {\n valType: \"string\",\n editType: \"none\"\n };\n }\n function callback(attr, attrName, attrs2) {\n if (exports.isValObject(attr)) {\n if (attr.arrayOk === true || attr.valType === \"data_array\") {\n attrs2[attrName + \"src\"] = makeSrcAttr(attrName);\n }\n } else if (isPlainObject(attr)) {\n attr.role = \"object\";\n }\n }\n exports.crawl(attrs, callback);\n }\n function formatArrayContainers(attrs) {\n function callback(attr, attrName, attrs2) {\n if (!attr) return;\n var itemName = attr[IS_LINKED_TO_ARRAY];\n if (!itemName) return;\n delete attr[IS_LINKED_TO_ARRAY];\n attrs2[attrName] = { items: {} };\n attrs2[attrName].items[itemName] = attr;\n attrs2[attrName].role = \"object\";\n }\n exports.crawl(attrs, callback);\n }\n function stringify(attrs) {\n function walk(attr) {\n for (var k in attr) {\n if (isPlainObject(attr[k])) {\n walk(attr[k]);\n } else if (Array.isArray(attr[k])) {\n for (var i = 0; i < attr[k].length; i++) {\n walk(attr[k][i]);\n }\n } else {\n if (attr[k] instanceof RegExp) {\n attr[k] = attr[k].toString();\n }\n }\n }\n }\n walk(attrs);\n }\n function handleBasePlotModule(layoutAttributes, _module, astr) {\n var np = nestedProperty(layoutAttributes, astr);\n var attrs = extendDeepAll({}, _module.layoutAttributes);\n attrs[IS_SUBPLOT_OBJ] = true;\n np.set(attrs);\n }\n function insertAttrs(baseAttrs, newAttrs, astr) {\n var np = nestedProperty(baseAttrs, astr);\n np.set(extendDeepAll(np.get() || {}, newAttrs));\n }\n }\n });\n\n // src/plot_api/plot_template.js\n var require_plot_template = __commonJS({\n \"src/plot_api/plot_template.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var plotAttributes = require_attributes2();\n var TEMPLATEITEMNAME = \"templateitemname\";\n var templateAttrs = {\n name: {\n valType: \"string\",\n editType: \"none\"\n }\n };\n templateAttrs[TEMPLATEITEMNAME] = {\n valType: \"string\",\n editType: \"calc\"\n };\n exports.templatedArray = function(name2, attrs) {\n attrs._isLinkedToArray = name2;\n attrs.name = templateAttrs.name;\n attrs[TEMPLATEITEMNAME] = templateAttrs[TEMPLATEITEMNAME];\n return attrs;\n };\n exports.traceTemplater = function(dataTemplate) {\n var traceCounts = {};\n var traceType, typeTemplates;\n for (traceType in dataTemplate) {\n typeTemplates = dataTemplate[traceType];\n if (Array.isArray(typeTemplates) && typeTemplates.length) {\n traceCounts[traceType] = 0;\n }\n }\n function newTrace(traceIn) {\n traceType = Lib.coerce(traceIn, {}, plotAttributes, \"type\");\n var traceOut = { type: traceType, _template: null };\n if (traceType in traceCounts) {\n typeTemplates = dataTemplate[traceType];\n var typei = traceCounts[traceType] % typeTemplates.length;\n traceCounts[traceType]++;\n traceOut._template = typeTemplates[typei];\n } else {\n }\n return traceOut;\n }\n return {\n newTrace\n // TODO: function to figure out what's left & what didn't work\n };\n };\n exports.newContainer = function(container, name2, baseName) {\n var template = container._template;\n var part = template && (template[name2] || baseName && template[baseName]);\n if (!Lib.isPlainObject(part)) part = null;\n var out = container[name2] = { _template: part };\n return out;\n };\n exports.arrayTemplater = function(container, name2, inclusionAttr) {\n var template = container._template;\n var defaultsTemplate = template && template[arrayDefaultKey(name2)];\n var templateItems = template && template[name2];\n if (!Array.isArray(templateItems) || !templateItems.length) {\n templateItems = [];\n }\n var usedNames = {};\n function newItem(itemIn) {\n var out = { name: itemIn.name, _input: itemIn };\n var templateItemName = out[TEMPLATEITEMNAME] = itemIn[TEMPLATEITEMNAME];\n if (!validItemName(templateItemName)) {\n out._template = defaultsTemplate;\n return out;\n }\n for (var i = 0; i < templateItems.length; i++) {\n var templateItem = templateItems[i];\n if (templateItem.name === templateItemName) {\n usedNames[templateItemName] = 1;\n out._template = templateItem;\n return out;\n }\n }\n out[inclusionAttr] = itemIn[inclusionAttr] || false;\n out._template = false;\n return out;\n }\n function defaultItems() {\n var out = [];\n for (var i = 0; i < templateItems.length; i++) {\n var templateItem = templateItems[i];\n var name3 = templateItem.name;\n if (validItemName(name3) && !usedNames[name3]) {\n var outi = {\n _template: templateItem,\n name: name3,\n _input: { _templateitemname: name3 }\n };\n outi[TEMPLATEITEMNAME] = templateItem[TEMPLATEITEMNAME];\n out.push(outi);\n usedNames[name3] = 1;\n }\n }\n return out;\n }\n return {\n newItem,\n defaultItems\n };\n };\n function validItemName(name2) {\n return name2 && typeof name2 === \"string\";\n }\n function arrayDefaultKey(name2) {\n var lastChar = name2.length - 1;\n if (name2.charAt(lastChar) !== \"s\") {\n Lib.warn(\"bad argument to arrayDefaultKey: \" + name2);\n }\n return name2.substr(0, name2.length - 1) + \"defaults\";\n }\n exports.arrayDefaultKey = arrayDefaultKey;\n exports.arrayEditor = function(parentIn, containerStr, itemOut) {\n var lengthIn = (Lib.nestedProperty(parentIn, containerStr).get() || []).length;\n var index = itemOut._index;\n var templateItemName = index >= lengthIn && (itemOut._input || {})._templateitemname;\n if (templateItemName) index = lengthIn;\n var itemStr = containerStr + \"[\" + index + \"]\";\n var update;\n function resetUpdate() {\n update = {};\n if (templateItemName) {\n update[itemStr] = {};\n update[itemStr][TEMPLATEITEMNAME] = templateItemName;\n }\n }\n resetUpdate();\n function modifyBase(attr, value) {\n update[attr] = value;\n }\n function modifyItem(attr, value) {\n if (templateItemName) {\n Lib.nestedProperty(update[itemStr], attr).set(value);\n } else {\n update[itemStr + \".\" + attr] = value;\n }\n }\n function getUpdateObj() {\n var updateOut = update;\n resetUpdate();\n return updateOut;\n }\n function applyUpdate(attr, value) {\n if (attr) modifyItem(attr, value);\n var updateToApply = getUpdateObj();\n for (var key in updateToApply) {\n Lib.nestedProperty(parentIn, key).set(updateToApply[key]);\n }\n }\n return {\n modifyBase,\n modifyItem,\n getUpdateObj,\n applyUpdate\n };\n };\n }\n });\n\n // src/plots/cartesian/constants.js\n var require_constants2 = __commonJS({\n \"src/plots/cartesian/constants.js\"(exports, module) {\n \"use strict\";\n var counterRegex = require_regex().counter;\n module.exports = {\n idRegex: {\n x: counterRegex(\"x\", \"( domain)?\"),\n y: counterRegex(\"y\", \"( domain)?\")\n },\n attrRegex: counterRegex(\"[xy]axis\"),\n // axis match regular expression\n xAxisMatch: counterRegex(\"xaxis\"),\n yAxisMatch: counterRegex(\"yaxis\"),\n // pattern matching axis ids and names\n // note that this is more permissive than counterRegex, as\n // id2name, name2id, and cleanId accept \"x1\" etc\n AX_ID_PATTERN: /^[xyz][0-9]*( domain)?$/,\n AX_NAME_PATTERN: /^[xyz]axis[0-9]*$/,\n // and for 2D subplots\n SUBPLOT_PATTERN: /^x([0-9]*)y([0-9]*)$/,\n HOUR_PATTERN: \"hour\",\n WEEKDAY_PATTERN: \"day of week\",\n // pixels to move mouse before you stop clamping to starting point\n MINDRAG: 8,\n // smallest dimension allowed for a zoombox\n MINZOOM: 20,\n // width of axis drag regions\n DRAGGERSIZE: 20,\n // delay before a redraw (relayout) after smooth panning and zooming\n REDRAWDELAY: 50,\n // last resort axis ranges for x and y axes if we have no data\n DFLTRANGEX: [-1, 6],\n DFLTRANGEY: [-1, 4],\n // Layers to keep trace types in the right order\n // N.B. each 'unique' plot method must have its own layer\n traceLayerClasses: [\n \"imagelayer\",\n \"heatmaplayer\",\n \"contourcarpetlayer\",\n \"contourlayer\",\n \"funnellayer\",\n \"waterfalllayer\",\n \"barlayer\",\n \"carpetlayer\",\n \"violinlayer\",\n \"boxlayer\",\n \"ohlclayer\",\n \"scattercarpetlayer\",\n \"scatterlayer\"\n ],\n clipOnAxisFalseQuery: [\n \".scatterlayer\",\n \".barlayer\",\n \".funnellayer\",\n \".waterfalllayer\"\n ],\n layerValue2layerClass: {\n \"above traces\": \"above\",\n \"below traces\": \"below\"\n },\n zindexSeparator: \"z\"\n // used for zindex of cartesian subplots e.g. xy, xyz2, xyz3, etc.\n };\n }\n });\n\n // src/plots/cartesian/axis_ids.js\n var require_axis_ids = __commonJS({\n \"src/plots/cartesian/axis_ids.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var constants = require_constants2();\n exports.id2name = function id2name(id) {\n if (typeof id !== \"string\" || !id.match(constants.AX_ID_PATTERN)) return;\n var axNum = id.split(\" \")[0].substr(1);\n if (axNum === \"1\") axNum = \"\";\n return id.charAt(0) + \"axis\" + axNum;\n };\n exports.name2id = function name2id(name2) {\n if (!name2.match(constants.AX_NAME_PATTERN)) return;\n var axNum = name2.substr(5);\n if (axNum === \"1\") axNum = \"\";\n return name2.charAt(0) + axNum;\n };\n exports.cleanId = function cleanId(id, axLetter, domainId) {\n var domainTest = /( domain)$/.test(id);\n if (typeof id !== \"string\" || !id.match(constants.AX_ID_PATTERN)) return;\n if (axLetter && id.charAt(0) !== axLetter) return;\n if (domainTest && !domainId) return;\n var axNum = id.split(\" \")[0].substr(1).replace(/^0+/, \"\");\n if (axNum === \"1\") axNum = \"\";\n return id.charAt(0) + axNum + (domainTest && domainId ? \" domain\" : \"\");\n };\n exports.list = function(gd, axLetter, only2d) {\n var fullLayout = gd._fullLayout;\n if (!fullLayout) return [];\n var idList = exports.listIds(gd, axLetter);\n var out = new Array(idList.length);\n var i;\n for (i = 0; i < idList.length; i++) {\n var idi = idList[i];\n out[i] = fullLayout[idi.charAt(0) + \"axis\" + idi.substr(1)];\n }\n if (!only2d) {\n var sceneIds3D = fullLayout._subplots.gl3d || [];\n for (i = 0; i < sceneIds3D.length; i++) {\n var scene = fullLayout[sceneIds3D[i]];\n if (axLetter) out.push(scene[axLetter + \"axis\"]);\n else out.push(scene.xaxis, scene.yaxis, scene.zaxis);\n }\n }\n return out;\n };\n exports.listIds = function(gd, axLetter) {\n var fullLayout = gd._fullLayout;\n if (!fullLayout) return [];\n var subplotLists = fullLayout._subplots;\n if (axLetter) return subplotLists[axLetter + \"axis\"];\n return subplotLists.xaxis.concat(subplotLists.yaxis);\n };\n exports.getFromId = function(gd, id, type) {\n var fullLayout = gd._fullLayout;\n id = id === void 0 || typeof id !== \"string\" ? id : id.replace(\" domain\", \"\");\n if (type === \"x\") id = id.replace(/y[0-9]*/, \"\");\n else if (type === \"y\") id = id.replace(/x[0-9]*/, \"\");\n return fullLayout[exports.id2name(id)];\n };\n exports.getFromTrace = function(gd, fullTrace, type) {\n var fullLayout = gd._fullLayout;\n var ax = null;\n if (Registry.traceIs(fullTrace, \"gl3d\")) {\n var scene = fullTrace.scene;\n if (scene.substr(0, 5) === \"scene\") {\n ax = fullLayout[scene][type + \"axis\"];\n }\n } else {\n ax = exports.getFromId(gd, fullTrace[type + \"axis\"] || type);\n }\n return ax;\n };\n exports.idSort = function(id1, id2) {\n var letter1 = id1.charAt(0);\n var letter2 = id2.charAt(0);\n if (letter1 !== letter2) return letter1 > letter2 ? 1 : -1;\n return +(id1.substr(1) || 1) - +(id2.substr(1) || 1);\n };\n exports.ref2id = function(ar) {\n return /^[xyz]/.test(ar) ? ar.split(\" \")[0] : false;\n };\n function isFound(axId, list) {\n if (list && list.length) {\n for (var i = 0; i < list.length; i++) {\n if (list[i][axId]) return true;\n }\n }\n return false;\n }\n exports.isLinked = function(fullLayout, axId) {\n return isFound(axId, fullLayout._axisMatchGroups) || isFound(axId, fullLayout._axisConstraintGroups);\n };\n }\n });\n\n // src/components/shapes/handle_outline.js\n var require_handle_outline = __commonJS({\n \"src/components/shapes/handle_outline.js\"(exports, module) {\n \"use strict\";\n function clearOutlineControllers(gd) {\n var zoomLayer = gd._fullLayout._zoomlayer;\n if (zoomLayer) {\n zoomLayer.selectAll(\".outline-controllers\").remove();\n }\n }\n function clearOutline(gd) {\n var zoomLayer = gd._fullLayout._zoomlayer;\n if (zoomLayer) {\n zoomLayer.selectAll(\".select-outline\").remove();\n }\n gd._fullLayout._outlining = false;\n }\n module.exports = {\n clearOutlineControllers,\n clearOutline\n };\n }\n });\n\n // src/traces/scatter/layout_attributes.js\n var require_layout_attributes3 = __commonJS({\n \"src/traces/scatter/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n scattermode: {\n valType: \"enumerated\",\n values: [\"group\", \"overlay\"],\n dflt: \"overlay\",\n editType: \"calc\"\n },\n scattergap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/plots/get_data.js\n var require_get_data = __commonJS({\n \"src/plots/get_data.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var SUBPLOT_PATTERN = require_constants2().SUBPLOT_PATTERN;\n exports.getSubplotCalcData = function(calcData, type, subplotId) {\n var basePlotModule = Registry.subplotsRegistry[type];\n if (!basePlotModule) return [];\n var attr = basePlotModule.attr;\n var subplotCalcData = [];\n for (var i = 0; i < calcData.length; i++) {\n var calcTrace = calcData[i];\n var trace = calcTrace[0].trace;\n if (trace[attr] === subplotId) subplotCalcData.push(calcTrace);\n }\n return subplotCalcData;\n };\n exports.getModuleCalcData = function(calcdata, arg1, arg2) {\n var moduleCalcData = [];\n var remainingCalcData = [];\n var plotMethod;\n if (typeof arg1 === \"string\") {\n plotMethod = Registry.getModule(arg1).plot;\n } else if (typeof arg1 === \"function\") {\n plotMethod = arg1;\n } else {\n plotMethod = arg1.plot;\n }\n if (!plotMethod) {\n return [moduleCalcData, calcdata];\n }\n var zorder = arg2;\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n var filterByZ = trace.zorder !== void 0;\n if (trace.visible !== true || trace._length === 0) continue;\n if (trace._module && trace._module.plot === plotMethod && (!filterByZ || trace.zorder === zorder)) {\n moduleCalcData.push(cd);\n } else {\n remainingCalcData.push(cd);\n }\n }\n return [moduleCalcData, remainingCalcData];\n };\n exports.getSubplotData = function getSubplotData(data, type, subplotId) {\n if (!Registry.subplotsRegistry[type]) return [];\n var attr = Registry.subplotsRegistry[type].attr;\n var subplotData = [];\n var trace, subplotX, subplotY;\n for (var i = 0; i < data.length; i++) {\n trace = data[i];\n if (trace[attr] === subplotId) subplotData.push(trace);\n }\n return subplotData;\n };\n }\n });\n\n // src/plots/command.js\n var require_command = __commonJS({\n \"src/plots/command.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n exports.manageCommandObserver = function(gd, container, commandList, onchange) {\n var ret = {};\n var enabled = true;\n if (container && container._commandObserver) {\n ret = container._commandObserver;\n }\n if (!ret.cache) {\n ret.cache = {};\n }\n ret.lookupTable = {};\n var binding = exports.hasSimpleAPICommandBindings(gd, commandList, ret.lookupTable);\n if (container && container._commandObserver) {\n if (!binding) {\n if (container._commandObserver.remove) {\n container._commandObserver.remove();\n container._commandObserver = null;\n return ret;\n }\n } else {\n return ret;\n }\n }\n if (binding) {\n bindingValueHasChanged(gd, binding, ret.cache);\n ret.check = function check() {\n if (!enabled) return;\n var update = bindingValueHasChanged(gd, binding, ret.cache);\n if (update.changed && onchange) {\n if (ret.lookupTable[update.value] !== void 0) {\n ret.disable();\n Promise.resolve(onchange({\n value: update.value,\n type: binding.type,\n prop: binding.prop,\n traces: binding.traces,\n index: ret.lookupTable[update.value]\n })).then(ret.enable, ret.enable);\n }\n }\n return update.changed;\n };\n var checkEvents = [\n \"plotly_relayout\",\n \"plotly_redraw\",\n \"plotly_restyle\",\n \"plotly_update\",\n \"plotly_animatingframe\",\n \"plotly_afterplot\"\n ];\n for (var i = 0; i < checkEvents.length; i++) {\n gd._internalOn(checkEvents[i], ret.check);\n }\n ret.remove = function() {\n for (var i2 = 0; i2 < checkEvents.length; i2++) {\n gd._removeInternalListener(checkEvents[i2], ret.check);\n }\n };\n } else {\n Lib.log(\"Unable to automatically bind plot updates to API command\");\n ret.lookupTable = {};\n ret.remove = function() {\n };\n }\n ret.disable = function disable() {\n enabled = false;\n };\n ret.enable = function enable() {\n enabled = true;\n };\n if (container) {\n container._commandObserver = ret;\n }\n return ret;\n };\n exports.hasSimpleAPICommandBindings = function(gd, commandList, bindingsByValue) {\n var i;\n var n = commandList.length;\n var refBinding;\n for (i = 0; i < n; i++) {\n var binding;\n var command = commandList[i];\n var method = command.method;\n var args = command.args;\n if (!Array.isArray(args)) args = [];\n if (!method) {\n return false;\n }\n var bindings = exports.computeAPICommandBindings(gd, method, args);\n if (bindings.length !== 1) {\n return false;\n }\n if (!refBinding) {\n refBinding = bindings[0];\n if (Array.isArray(refBinding.traces)) {\n refBinding.traces.sort();\n }\n } else {\n binding = bindings[0];\n if (binding.type !== refBinding.type) {\n return false;\n }\n if (binding.prop !== refBinding.prop) {\n return false;\n }\n if (Array.isArray(refBinding.traces)) {\n if (Array.isArray(binding.traces)) {\n binding.traces.sort();\n for (var j = 0; j < refBinding.traces.length; j++) {\n if (refBinding.traces[j] !== binding.traces[j]) {\n return false;\n }\n }\n } else {\n return false;\n }\n } else {\n if (binding.prop !== refBinding.prop) {\n return false;\n }\n }\n }\n binding = bindings[0];\n var value = binding.value;\n if (Array.isArray(value)) {\n if (value.length === 1) {\n value = value[0];\n } else {\n return false;\n }\n }\n if (bindingsByValue) {\n bindingsByValue[value] = i;\n }\n }\n return refBinding;\n };\n function bindingValueHasChanged(gd, binding, cache) {\n var container, value, obj;\n var changed = false;\n if (binding.type === \"data\") {\n container = gd._fullData[binding.traces !== null ? binding.traces[0] : 0];\n } else if (binding.type === \"layout\") {\n container = gd._fullLayout;\n } else {\n return false;\n }\n value = Lib.nestedProperty(container, binding.prop).get();\n obj = cache[binding.type] = cache[binding.type] || {};\n if (obj.hasOwnProperty(binding.prop)) {\n if (obj[binding.prop] !== value) {\n changed = true;\n }\n }\n obj[binding.prop] = value;\n return {\n changed,\n value\n };\n }\n exports.executeAPICommand = function(gd, method, args) {\n if (method === \"skip\") return Promise.resolve();\n var _method = Registry.apiMethodRegistry[method];\n var allArgs = [gd];\n if (!Array.isArray(args)) args = [];\n for (var i = 0; i < args.length; i++) {\n allArgs.push(args[i]);\n }\n return _method.apply(null, allArgs).catch(function(err) {\n Lib.warn(\"API call to Plotly.\" + method + \" rejected.\", err);\n return Promise.reject(err);\n });\n };\n exports.computeAPICommandBindings = function(gd, method, args) {\n var bindings;\n if (!Array.isArray(args)) args = [];\n switch (method) {\n case \"restyle\":\n bindings = computeDataBindings(gd, args);\n break;\n case \"relayout\":\n bindings = computeLayoutBindings(gd, args);\n break;\n case \"update\":\n bindings = computeDataBindings(gd, [args[0], args[2]]).concat(computeLayoutBindings(gd, [args[1]]));\n break;\n case \"animate\":\n bindings = computeAnimateBindings(gd, args);\n break;\n default:\n bindings = [];\n }\n return bindings;\n };\n function computeAnimateBindings(gd, args) {\n if (Array.isArray(args[0]) && args[0].length === 1 && [\"string\", \"number\"].indexOf(typeof args[0][0]) !== -1) {\n return [{ type: \"layout\", prop: \"_currentFrame\", value: args[0][0].toString() }];\n } else {\n return [];\n }\n }\n function computeLayoutBindings(gd, args) {\n var bindings = [];\n var astr = args[0];\n var aobj = {};\n if (typeof astr === \"string\") {\n aobj[astr] = args[1];\n } else if (Lib.isPlainObject(astr)) {\n aobj = astr;\n } else {\n return bindings;\n }\n crawl(aobj, function(path, attrName, attr) {\n bindings.push({ type: \"layout\", prop: path, value: attr });\n }, \"\", 0);\n return bindings;\n }\n function computeDataBindings(gd, args) {\n var traces, astr, val, aobj;\n var bindings = [];\n astr = args[0];\n val = args[1];\n traces = args[2];\n aobj = {};\n if (typeof astr === \"string\") {\n aobj[astr] = val;\n } else if (Lib.isPlainObject(astr)) {\n aobj = astr;\n if (traces === void 0) {\n traces = val;\n }\n } else {\n return bindings;\n }\n if (traces === void 0) {\n traces = null;\n }\n crawl(aobj, function(path, attrName, _attr) {\n var thisTraces;\n var attr;\n if (Array.isArray(_attr)) {\n attr = _attr.slice();\n var nAttr = Math.min(attr.length, gd.data.length);\n if (traces) {\n nAttr = Math.min(nAttr, traces.length);\n }\n thisTraces = [];\n for (var j = 0; j < nAttr; j++) {\n thisTraces[j] = traces ? traces[j] : j;\n }\n } else {\n attr = _attr;\n thisTraces = traces ? traces.slice() : null;\n }\n if (thisTraces === null) {\n if (Array.isArray(attr)) {\n attr = attr[0];\n }\n } else if (Array.isArray(thisTraces)) {\n if (!Array.isArray(attr)) {\n var tmp = attr;\n attr = [];\n for (var i = 0; i < thisTraces.length; i++) {\n attr[i] = tmp;\n }\n }\n attr.length = Math.min(thisTraces.length, attr.length);\n }\n bindings.push({\n type: \"data\",\n prop: path,\n traces: thisTraces,\n value: attr\n });\n }, \"\", 0);\n return bindings;\n }\n function crawl(attrs, callback, path, depth) {\n Object.keys(attrs).forEach(function(attrName) {\n var attr = attrs[attrName];\n if (attrName[0] === \"_\") return;\n var thisPath = path + (depth > 0 ? \".\" : \"\") + attrName;\n if (Lib.isPlainObject(attr)) {\n crawl(attr, callback, thisPath, depth + 1);\n } else {\n callback(thisPath, attrName, attr);\n }\n });\n }\n }\n });\n\n // src/plots/plots.js\n var require_plots = __commonJS({\n \"src/plots/plots.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var timeFormatLocale = require_d3_time_format().timeFormatLocale;\n var formatLocale = require_d3_format().formatLocale;\n var isNumeric = require_fast_isnumeric();\n var b64encode = require_base64_arraybuffer_umd();\n var Registry = require_registry();\n var PlotSchema = require_plot_schema();\n var Template = require_plot_template();\n var Lib = require_lib();\n var Color2 = require_color();\n var BADNUM = require_numerical().BADNUM;\n var axisIDs = require_axis_ids();\n var clearOutline = require_handle_outline().clearOutline;\n var scatterAttrs = require_layout_attributes3();\n var animationAttrs = require_animation_attributes();\n var frameAttrs = require_frame_attributes();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var relinkPrivateKeys = Lib.relinkPrivateKeys;\n var _ = Lib._;\n var plots = module.exports = {};\n Lib.extendFlat(plots, Registry);\n plots.attributes = require_attributes2();\n plots.attributes.type.values = plots.allTypes;\n plots.fontAttrs = require_font_attributes();\n plots.layoutAttributes = require_layout_attributes2();\n var commandModule = require_command();\n plots.executeAPICommand = commandModule.executeAPICommand;\n plots.computeAPICommandBindings = commandModule.computeAPICommandBindings;\n plots.manageCommandObserver = commandModule.manageCommandObserver;\n plots.hasSimpleAPICommandBindings = commandModule.hasSimpleAPICommandBindings;\n plots.redrawText = function(gd) {\n gd = Lib.getGraphDiv(gd);\n return new Promise(function(resolve) {\n setTimeout(function() {\n if (!gd._fullLayout) return;\n Registry.getComponentMethod(\"annotations\", \"draw\")(gd);\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n resolve(plots.previousPromises(gd));\n }, 300);\n });\n };\n plots.resize = function(gd) {\n gd = Lib.getGraphDiv(gd);\n var resolveLastResize;\n var p = new Promise(function(resolve, reject) {\n if (!gd || Lib.isHidden(gd)) {\n reject(new Error(\"Resize must be passed a displayed plot div element.\"));\n }\n if (gd._redrawTimer) clearTimeout(gd._redrawTimer);\n if (gd._resolveResize) resolveLastResize = gd._resolveResize;\n gd._resolveResize = resolve;\n gd._redrawTimer = setTimeout(function() {\n if (!gd.layout || gd.layout.width && gd.layout.height || Lib.isHidden(gd)) {\n resolve(gd);\n return;\n }\n delete gd.layout.width;\n delete gd.layout.height;\n var oldchanged = gd.changed;\n gd.autoplay = true;\n Registry.call(\"relayout\", gd, { autosize: true }).then(function() {\n gd.changed = oldchanged;\n if (gd._resolveResize === resolve) {\n delete gd._resolveResize;\n resolve(gd);\n }\n });\n }, 100);\n });\n if (resolveLastResize) resolveLastResize(p);\n return p;\n };\n plots.previousPromises = function(gd) {\n if ((gd._promises || []).length) {\n return Promise.all(gd._promises).then(function() {\n gd._promises = [];\n });\n }\n };\n plots.addLinks = function(gd) {\n if (!gd._context.showLink && !gd._context.showSources) return;\n var fullLayout = gd._fullLayout;\n var linkContainer = Lib.ensureSingle(fullLayout._paper, \"text\", \"js-plot-link-container\", function(s) {\n s.style({\n \"font-family\": '\"Open Sans\", Arial, sans-serif',\n \"font-size\": \"12px\",\n fill: Color2.defaultLine,\n \"pointer-events\": \"all\"\n }).each(function() {\n var links = d3.select(this);\n links.append(\"tspan\").classed(\"js-link-to-tool\", true);\n links.append(\"tspan\").classed(\"js-link-spacer\", true);\n links.append(\"tspan\").classed(\"js-sourcelinks\", true);\n });\n });\n var text = linkContainer.node();\n var attrs = { y: fullLayout._paper.attr(\"height\") - 9 };\n if (document.body.contains(text) && text.getComputedTextLength() >= fullLayout.width - 20) {\n attrs[\"text-anchor\"] = \"start\";\n attrs.x = 5;\n } else {\n attrs[\"text-anchor\"] = \"end\";\n attrs.x = fullLayout._paper.attr(\"width\") - 7;\n }\n linkContainer.attr(attrs);\n var toolspan = linkContainer.select(\".js-link-to-tool\");\n var spacespan = linkContainer.select(\".js-link-spacer\");\n var sourcespan = linkContainer.select(\".js-sourcelinks\");\n if (gd._context.showSources) gd._context.showSources(gd);\n if (gd._context.showLink) positionPlayWithData(gd, toolspan);\n spacespan.text(toolspan.text() && sourcespan.text() ? \" - \" : \"\");\n };\n function positionPlayWithData(gd, container) {\n container.text(\"\");\n var link = container.append(\"a\").attr({\n \"xlink:xlink:href\": \"#\",\n class: \"link--impt link--embedview\",\n \"font-weight\": \"bold\"\n }).text(gd._context.linkText + \" \" + String.fromCharCode(187));\n if (gd._context.sendData) {\n link.on(\"click\", function() {\n plots.sendDataToCloud(gd);\n });\n } else {\n var path = window.location.pathname.split(\"/\");\n var query = window.location.search;\n link.attr({\n \"xlink:xlink:show\": \"new\",\n \"xlink:xlink:href\": \"/\" + path[2].split(\".\")[0] + \"/\" + path[1] + query\n });\n }\n }\n plots.sendDataToCloud = function(gd) {\n var baseUrl = (window.PLOTLYENV || {}).BASE_URL || gd._context.plotlyServerURL;\n if (!baseUrl) return;\n gd.emit(\"plotly_beforeexport\");\n var hiddenformDiv = d3.select(gd).append(\"div\").attr(\"id\", \"hiddenform\").style(\"display\", \"none\");\n var hiddenform = hiddenformDiv.append(\"form\").attr({\n action: baseUrl + \"/external\",\n method: \"post\",\n target: \"_blank\"\n });\n var hiddenformInput = hiddenform.append(\"input\").attr({\n type: \"text\",\n name: \"data\"\n });\n hiddenformInput.node().value = plots.graphJson(gd, false, \"keepdata\");\n hiddenform.node().submit();\n hiddenformDiv.remove();\n gd.emit(\"plotly_afterexport\");\n return false;\n };\n var d3FormatKeys = [\n \"days\",\n \"shortDays\",\n \"months\",\n \"shortMonths\",\n \"periods\",\n \"dateTime\",\n \"date\",\n \"time\",\n \"decimal\",\n \"thousands\",\n \"grouping\",\n \"currency\"\n ];\n var extraFormatKeys = [\n \"year\",\n \"month\",\n \"dayMonth\",\n \"dayMonthYear\"\n ];\n plots.supplyDefaults = function(gd, opts) {\n var skipUpdateCalc = opts && opts.skipUpdateCalc;\n var oldFullLayout = gd._fullLayout || {};\n if (oldFullLayout._skipDefaults) {\n delete oldFullLayout._skipDefaults;\n return;\n }\n var newFullLayout = gd._fullLayout = {};\n var newLayout = gd.layout || {};\n var oldFullData = gd._fullData || [];\n var newFullData = gd._fullData = [];\n var newData = gd.data || [];\n var oldCalcdata = gd.calcdata || [];\n var context = gd._context || {};\n var i;\n if (!gd._transitionData) plots.createTransitionData(gd);\n newFullLayout._dfltTitle = {\n plot: _(gd, \"Click to enter Plot title\"),\n subtitle: _(gd, \"Click to enter Plot subtitle\"),\n x: _(gd, \"Click to enter X axis title\"),\n y: _(gd, \"Click to enter Y axis title\"),\n colorbar: _(gd, \"Click to enter Colorscale title\"),\n annotation: _(gd, \"new text\")\n };\n newFullLayout._traceWord = _(gd, \"trace\");\n var formatObj = getFormatObj(gd, d3FormatKeys);\n newFullLayout._mapboxAccessToken = context.mapboxAccessToken;\n if (oldFullLayout._initialAutoSizeIsDone) {\n var oldWidth = oldFullLayout.width;\n var oldHeight = oldFullLayout.height;\n plots.supplyLayoutGlobalDefaults(newLayout, newFullLayout, formatObj);\n if (!newLayout.width) newFullLayout.width = oldWidth;\n if (!newLayout.height) newFullLayout.height = oldHeight;\n plots.sanitizeMargins(newFullLayout);\n } else {\n plots.supplyLayoutGlobalDefaults(newLayout, newFullLayout, formatObj);\n var missingWidthOrHeight = !newLayout.width || !newLayout.height;\n var autosize = newFullLayout.autosize;\n var autosizable = context.autosizable;\n var initialAutoSize = missingWidthOrHeight && (autosize || autosizable);\n if (initialAutoSize) plots.plotAutoSize(gd, newLayout, newFullLayout);\n else if (missingWidthOrHeight) plots.sanitizeMargins(newFullLayout);\n if (!autosize && missingWidthOrHeight) {\n newLayout.width = newFullLayout.width;\n newLayout.height = newFullLayout.height;\n }\n }\n newFullLayout._d3locale = getFormatter(formatObj, newFullLayout.separators);\n newFullLayout._extraFormat = getFormatObj(gd, extraFormatKeys);\n newFullLayout._initialAutoSizeIsDone = true;\n newFullLayout._dataLength = newData.length;\n newFullLayout._modules = [];\n newFullLayout._visibleModules = [];\n newFullLayout._basePlotModules = [];\n var subplots = newFullLayout._subplots = emptySubplotLists();\n var splomAxes = newFullLayout._splomAxes = { x: {}, y: {} };\n var splomSubplots = newFullLayout._splomSubplots = {};\n newFullLayout._splomGridDflt = {};\n newFullLayout._scatterStackOpts = {};\n newFullLayout._firstScatter = {};\n newFullLayout._alignmentOpts = {};\n newFullLayout._colorAxes = {};\n newFullLayout._requestRangeslider = {};\n newFullLayout._traceUids = getTraceUids(oldFullData, newData);\n plots.supplyDataDefaults(newData, newFullData, newLayout, newFullLayout);\n var splomXa = Object.keys(splomAxes.x);\n var splomYa = Object.keys(splomAxes.y);\n if (splomXa.length > 1 && splomYa.length > 1) {\n Registry.getComponentMethod(\"grid\", \"sizeDefaults\")(newLayout, newFullLayout);\n for (i = 0; i < splomXa.length; i++) {\n Lib.pushUnique(subplots.xaxis, splomXa[i]);\n }\n for (i = 0; i < splomYa.length; i++) {\n Lib.pushUnique(subplots.yaxis, splomYa[i]);\n }\n for (var k in splomSubplots) {\n Lib.pushUnique(subplots.cartesian, k);\n }\n }\n newFullLayout._has = plots._hasPlotType.bind(newFullLayout);\n if (oldFullData.length === newFullData.length) {\n for (i = 0; i < newFullData.length; i++) {\n relinkPrivateKeys(newFullData[i], oldFullData[i]);\n }\n }\n plots.supplyLayoutModuleDefaults(newLayout, newFullLayout, newFullData, gd._transitionData);\n var _modules = newFullLayout._visibleModules;\n var crossTraceDefaultsFuncs = [];\n for (i = 0; i < _modules.length; i++) {\n var funci = _modules[i].crossTraceDefaults;\n if (funci) Lib.pushUnique(crossTraceDefaultsFuncs, funci);\n }\n for (i = 0; i < crossTraceDefaultsFuncs.length; i++) {\n crossTraceDefaultsFuncs[i](newFullData, newFullLayout);\n }\n newFullLayout._hasOnlyLargeSploms = newFullLayout._basePlotModules.length === 1 && newFullLayout._basePlotModules[0].name === \"splom\" && splomXa.length > 15 && splomYa.length > 15 && newFullLayout.shapes.length === 0 && newFullLayout.images.length === 0;\n plots.linkSubplots(newFullData, newFullLayout, oldFullData, oldFullLayout);\n plots.cleanPlot(newFullData, newFullLayout, oldFullData, oldFullLayout);\n var hadCartesian = !!(oldFullLayout._has && oldFullLayout._has(\"cartesian\"));\n var hasCartesian = !!(newFullLayout._has && newFullLayout._has(\"cartesian\"));\n var hadBgLayer = hadCartesian;\n var hasBgLayer = hasCartesian;\n if (hadBgLayer && !hasBgLayer) {\n oldFullLayout._bgLayer.remove();\n } else if (hasBgLayer && !hadBgLayer) {\n newFullLayout._shouldCreateBgLayer = true;\n }\n if (oldFullLayout._zoomlayer && !gd._dragging) {\n clearOutline({\n // mock old gd\n _fullLayout: oldFullLayout\n });\n }\n fillMetaTextHelpers(newFullData, newFullLayout);\n relinkPrivateKeys(newFullLayout, oldFullLayout);\n Registry.getComponentMethod(\"colorscale\", \"crossTraceDefaults\")(newFullData, newFullLayout);\n if (!newFullLayout._preGUI) newFullLayout._preGUI = {};\n if (!newFullLayout._tracePreGUI) newFullLayout._tracePreGUI = {};\n var tracePreGUI = newFullLayout._tracePreGUI;\n var uids = {};\n var uid;\n for (uid in tracePreGUI) uids[uid] = \"old\";\n for (i = 0; i < newFullData.length; i++) {\n uid = newFullData[i]._fullInput.uid;\n if (!uids[uid]) tracePreGUI[uid] = {};\n uids[uid] = \"new\";\n }\n for (uid in uids) {\n if (uids[uid] === \"old\") delete tracePreGUI[uid];\n }\n initMargins(newFullLayout);\n Registry.getComponentMethod(\"rangeslider\", \"makeData\")(newFullLayout);\n if (!skipUpdateCalc && oldCalcdata.length === newFullData.length) {\n plots.supplyDefaultsUpdateCalc(oldCalcdata, newFullData);\n }\n };\n plots.supplyDefaultsUpdateCalc = function(oldCalcdata, newFullData) {\n for (var i = 0; i < newFullData.length; i++) {\n var newTrace = newFullData[i];\n var cd0 = (oldCalcdata[i] || [])[0];\n if (cd0 && cd0.trace) {\n var oldTrace = cd0.trace;\n if (oldTrace._hasCalcTransform) {\n var arrayAttrs = oldTrace._arrayAttrs;\n var j, astr, oldArrayVal;\n for (j = 0; j < arrayAttrs.length; j++) {\n astr = arrayAttrs[j];\n oldArrayVal = Lib.nestedProperty(oldTrace, astr).get().slice();\n Lib.nestedProperty(newTrace, astr).set(oldArrayVal);\n }\n }\n cd0.trace = newTrace;\n }\n }\n };\n function getTraceUids(oldFullData, newData) {\n var len = newData.length;\n var oldFullInput = [];\n var i, prevFullInput;\n for (i = 0; i < oldFullData.length; i++) {\n var thisFullInput = oldFullData[i]._fullInput;\n if (thisFullInput !== prevFullInput) oldFullInput.push(thisFullInput);\n prevFullInput = thisFullInput;\n }\n var oldLen = oldFullInput.length;\n var out = new Array(len);\n var seenUids = {};\n function setUid(uid, i2) {\n out[i2] = uid;\n seenUids[uid] = 1;\n }\n function tryUid(uid, i2) {\n if (uid && typeof uid === \"string\" && !seenUids[uid]) {\n setUid(uid, i2);\n return true;\n }\n }\n for (i = 0; i < len; i++) {\n var newUid = newData[i].uid;\n if (typeof newUid === \"number\") newUid = String(newUid);\n if (tryUid(newUid, i)) continue;\n if (i < oldLen && tryUid(oldFullInput[i].uid, i)) continue;\n setUid(Lib.randstr(seenUids), i);\n }\n return out;\n }\n function emptySubplotLists() {\n var collectableSubplotTypes = Registry.collectableSubplotTypes;\n var out = {};\n var i, j;\n if (!collectableSubplotTypes) {\n collectableSubplotTypes = [];\n var subplotsRegistry = Registry.subplotsRegistry;\n for (var subplotType in subplotsRegistry) {\n var subplotModule = subplotsRegistry[subplotType];\n var subplotAttr = subplotModule.attr;\n if (subplotAttr) {\n collectableSubplotTypes.push(subplotType);\n if (Array.isArray(subplotAttr)) {\n for (j = 0; j < subplotAttr.length; j++) {\n Lib.pushUnique(collectableSubplotTypes, subplotAttr[j]);\n }\n }\n }\n }\n }\n for (i = 0; i < collectableSubplotTypes.length; i++) {\n out[collectableSubplotTypes[i]] = [];\n }\n return out;\n }\n function getFormatObj(gd, formatKeys) {\n var locale = gd._context.locale;\n if (!locale) locale = \"en-US\";\n var formatDone = false;\n var formatObj = {};\n function includeFormat(newFormat) {\n var formatFinished = true;\n for (var i2 = 0; i2 < formatKeys.length; i2++) {\n var formatKey = formatKeys[i2];\n if (!formatObj[formatKey]) {\n if (newFormat[formatKey]) {\n formatObj[formatKey] = newFormat[formatKey];\n } else formatFinished = false;\n }\n }\n if (formatFinished) formatDone = true;\n }\n for (var i = 0; i < 2; i++) {\n var locales = gd._context.locales;\n for (var j = 0; j < 2; j++) {\n var formatj = (locales[locale] || {}).format;\n if (formatj) {\n includeFormat(formatj);\n if (formatDone) break;\n }\n locales = Registry.localeRegistry;\n }\n var baseLocale = locale.split(\"-\")[0];\n if (formatDone || baseLocale === locale) break;\n locale = baseLocale;\n }\n if (!formatDone) includeFormat(Registry.localeRegistry.en.format);\n return formatObj;\n }\n function getFormatter(formatObj, separators) {\n formatObj.decimal = separators.charAt(0);\n formatObj.thousands = separators.charAt(1);\n return {\n numberFormat: function(formatStr) {\n try {\n formatStr = formatLocale(formatObj).format(\n Lib.adjustFormat(formatStr)\n );\n } catch (e) {\n Lib.warnBadFormat(formatStr);\n return Lib.noFormat;\n }\n return formatStr;\n },\n timeFormat: timeFormatLocale(formatObj).utcFormat\n };\n }\n function fillMetaTextHelpers(newFullData, newFullLayout) {\n var _meta;\n var meta4data = [];\n if (newFullLayout.meta) {\n _meta = newFullLayout._meta = {\n meta: newFullLayout.meta,\n layout: { meta: newFullLayout.meta }\n };\n }\n for (var i = 0; i < newFullData.length; i++) {\n var trace = newFullData[i];\n if (trace.meta) {\n meta4data[trace.index] = trace._meta = { meta: trace.meta };\n } else if (newFullLayout.meta) {\n trace._meta = { meta: newFullLayout.meta };\n }\n if (newFullLayout.meta) {\n trace._meta.layout = { meta: newFullLayout.meta };\n }\n }\n if (meta4data.length) {\n if (!_meta) {\n _meta = newFullLayout._meta = {};\n }\n _meta.data = meta4data;\n }\n }\n plots.createTransitionData = function(gd) {\n if (!gd._transitionData) {\n gd._transitionData = {};\n }\n if (!gd._transitionData._frames) {\n gd._transitionData._frames = [];\n }\n if (!gd._transitionData._frameHash) {\n gd._transitionData._frameHash = {};\n }\n if (!gd._transitionData._counter) {\n gd._transitionData._counter = 0;\n }\n if (!gd._transitionData._interruptCallbacks) {\n gd._transitionData._interruptCallbacks = [];\n }\n };\n plots._hasPlotType = function(category) {\n var i;\n var basePlotModules = this._basePlotModules || [];\n for (i = 0; i < basePlotModules.length; i++) {\n if (basePlotModules[i].name === category) return true;\n }\n var modules = this._modules || [];\n for (i = 0; i < modules.length; i++) {\n var name2 = modules[i].name;\n if (name2 === category) return true;\n var _module = Registry.modules[name2];\n if (_module && _module.categories[category]) return true;\n }\n return false;\n };\n plots.cleanPlot = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var i, j;\n var basePlotModules = oldFullLayout._basePlotModules || [];\n for (i = 0; i < basePlotModules.length; i++) {\n var _module = basePlotModules[i];\n if (_module.clean) {\n _module.clean(newFullData, newFullLayout, oldFullData, oldFullLayout);\n }\n }\n var hadGl = oldFullLayout._has && oldFullLayout._has(\"gl\");\n var hasGl = newFullLayout._has && newFullLayout._has(\"gl\");\n if (hadGl && !hasGl) {\n if (oldFullLayout._glcontainer !== void 0) {\n oldFullLayout._glcontainer.selectAll(\".gl-canvas\").remove();\n oldFullLayout._glcontainer.selectAll(\".no-webgl\").remove();\n oldFullLayout._glcanvas = null;\n }\n }\n var hasInfoLayer = !!oldFullLayout._infolayer;\n oldLoop:\n for (i = 0; i < oldFullData.length; i++) {\n var oldTrace = oldFullData[i];\n var oldUid = oldTrace.uid;\n for (j = 0; j < newFullData.length; j++) {\n var newTrace = newFullData[j];\n if (oldUid === newTrace.uid) continue oldLoop;\n }\n if (hasInfoLayer) {\n oldFullLayout._infolayer.select(\".cb\" + oldUid).remove();\n }\n }\n };\n plots.linkSubplots = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var i, j;\n var oldSubplots = oldFullLayout._plots || {};\n var newSubplots = newFullLayout._plots = {};\n var newSubplotList = newFullLayout._subplots;\n var mockGd = {\n _fullData: newFullData,\n _fullLayout: newFullLayout\n };\n var ids = newSubplotList.cartesian || [];\n for (i = 0; i < ids.length; i++) {\n var id = ids[i];\n var oldSubplot = oldSubplots[id];\n var xaxis = axisIDs.getFromId(mockGd, id, \"x\");\n var yaxis = axisIDs.getFromId(mockGd, id, \"y\");\n var plotinfo;\n if (oldSubplot) {\n plotinfo = newSubplots[id] = oldSubplot;\n } else {\n plotinfo = newSubplots[id] = {};\n plotinfo.id = id;\n }\n xaxis._counterAxes.push(yaxis._id);\n yaxis._counterAxes.push(xaxis._id);\n xaxis._subplotsWith.push(id);\n yaxis._subplotsWith.push(id);\n plotinfo.xaxis = xaxis;\n plotinfo.yaxis = yaxis;\n plotinfo._hasClipOnAxisFalse = false;\n for (j = 0; j < newFullData.length; j++) {\n var trace = newFullData[j];\n if (trace.xaxis === plotinfo.xaxis._id && trace.yaxis === plotinfo.yaxis._id && trace.cliponaxis === false) {\n plotinfo._hasClipOnAxisFalse = true;\n break;\n }\n }\n }\n var axList = axisIDs.list(mockGd, null, true);\n var ax;\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n var mainAx = null;\n if (ax.overlaying) {\n mainAx = axisIDs.getFromId(mockGd, ax.overlaying);\n if (mainAx && mainAx.overlaying) {\n ax.overlaying = false;\n mainAx = null;\n }\n }\n ax._mainAxis = mainAx || ax;\n if (mainAx) ax.domain = mainAx.domain.slice();\n ax._anchorAxis = ax.anchor === \"free\" ? null : axisIDs.getFromId(mockGd, ax.anchor);\n }\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n ax._counterAxes.sort(axisIDs.idSort);\n ax._subplotsWith.sort(Lib.subplotSort);\n ax._mainSubplot = findMainSubplot(ax, newFullLayout);\n if (ax._counterAxes.length && (ax.spikemode && ax.spikemode.indexOf(\"across\") !== -1 || ax.automargin && ax.mirror && ax.anchor !== \"free\" || Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(ax))) {\n var min = 1;\n var max = 0;\n for (j = 0; j < ax._counterAxes.length; j++) {\n var ax2 = axisIDs.getFromId(mockGd, ax._counterAxes[j]);\n min = Math.min(min, ax2.domain[0]);\n max = Math.max(max, ax2.domain[1]);\n }\n if (min < max) {\n ax._counterDomainMin = min;\n ax._counterDomainMax = max;\n }\n }\n }\n };\n function findMainSubplot(ax, fullLayout) {\n var mockGd = { _fullLayout: fullLayout };\n var isX = ax._id.charAt(0) === \"x\";\n var anchorAx = ax._mainAxis._anchorAxis;\n var mainSubplotID = \"\";\n var nextBestMainSubplotID = \"\";\n var anchorID = \"\";\n if (anchorAx) {\n anchorID = anchorAx._mainAxis._id;\n mainSubplotID = isX ? ax._id + anchorID : anchorID + ax._id;\n }\n if (!mainSubplotID || !fullLayout._plots[mainSubplotID]) {\n mainSubplotID = \"\";\n var counterIDs = ax._counterAxes;\n for (var j = 0; j < counterIDs.length; j++) {\n var counterPart = counterIDs[j];\n var id = isX ? ax._id + counterPart : counterPart + ax._id;\n if (!nextBestMainSubplotID) nextBestMainSubplotID = id;\n var counterAx = axisIDs.getFromId(mockGd, counterPart);\n if (anchorID && counterAx.overlaying === anchorID) {\n mainSubplotID = id;\n break;\n }\n }\n }\n return mainSubplotID || nextBestMainSubplotID;\n }\n plots.clearExpandedTraceDefaultColors = function(trace) {\n var colorAttrs, path, i;\n function locateColorAttrs(attr, attrName, attrs, level) {\n path[level] = attrName;\n path.length = level + 1;\n if (attr.valType === \"color\" && attr.dflt === void 0) {\n colorAttrs.push(path.join(\".\"));\n }\n }\n path = [];\n colorAttrs = trace._module._colorAttrs;\n if (!colorAttrs) {\n trace._module._colorAttrs = colorAttrs = [];\n PlotSchema.crawl(\n trace._module.attributes,\n locateColorAttrs\n );\n }\n for (i = 0; i < colorAttrs.length; i++) {\n var origprop = Lib.nestedProperty(trace, \"_input.\" + colorAttrs[i]);\n if (!origprop.get()) {\n Lib.nestedProperty(trace, colorAttrs[i]).set(null);\n }\n }\n };\n plots.supplyDataDefaults = function(dataIn, dataOut, layout, fullLayout) {\n var modules = fullLayout._modules;\n var visibleModules = fullLayout._visibleModules;\n var basePlotModules = fullLayout._basePlotModules;\n var cnt = 0;\n var colorCnt = 0;\n var i, fullTrace, trace;\n fullLayout._transformModules = [];\n function pushModule(fullTrace2) {\n dataOut.push(fullTrace2);\n var _module = fullTrace2._module;\n if (!_module) return;\n Lib.pushUnique(modules, _module);\n if (fullTrace2.visible === true) Lib.pushUnique(visibleModules, _module);\n Lib.pushUnique(basePlotModules, fullTrace2._module.basePlotModule);\n cnt++;\n if (fullTrace2._input.visible !== false) colorCnt++;\n }\n var carpetIndex = {};\n var carpetDependents = [];\n var dataTemplate = (layout.template || {}).data || {};\n var templater = Template.traceTemplater(dataTemplate);\n for (i = 0; i < dataIn.length; i++) {\n trace = dataIn[i];\n fullTrace = templater.newTrace(trace);\n fullTrace.uid = fullLayout._traceUids[i];\n plots.supplyTraceDefaults(trace, fullTrace, colorCnt, fullLayout, i);\n fullTrace.index = i;\n fullTrace._input = trace;\n fullTrace._fullInput = fullTrace;\n pushModule(fullTrace);\n if (Registry.traceIs(fullTrace, \"carpetAxis\")) {\n carpetIndex[fullTrace.carpet] = fullTrace;\n }\n if (Registry.traceIs(fullTrace, \"carpetDependent\")) {\n carpetDependents.push(i);\n }\n }\n for (i = 0; i < carpetDependents.length; i++) {\n fullTrace = dataOut[carpetDependents[i]];\n if (!fullTrace.visible) continue;\n var carpetAxis = carpetIndex[fullTrace.carpet];\n fullTrace._carpet = carpetAxis;\n if (!carpetAxis || !carpetAxis.visible) {\n fullTrace.visible = false;\n continue;\n }\n fullTrace.xaxis = carpetAxis.xaxis;\n fullTrace.yaxis = carpetAxis.yaxis;\n }\n };\n plots.supplyAnimationDefaults = function(opts) {\n opts = opts || {};\n var i;\n var optsOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts || {}, optsOut, animationAttrs, attr, dflt);\n }\n coerce(\"mode\");\n coerce(\"direction\");\n coerce(\"fromcurrent\");\n if (Array.isArray(opts.frame)) {\n optsOut.frame = [];\n for (i = 0; i < opts.frame.length; i++) {\n optsOut.frame[i] = plots.supplyAnimationFrameDefaults(opts.frame[i] || {});\n }\n } else {\n optsOut.frame = plots.supplyAnimationFrameDefaults(opts.frame || {});\n }\n if (Array.isArray(opts.transition)) {\n optsOut.transition = [];\n for (i = 0; i < opts.transition.length; i++) {\n optsOut.transition[i] = plots.supplyAnimationTransitionDefaults(opts.transition[i] || {});\n }\n } else {\n optsOut.transition = plots.supplyAnimationTransitionDefaults(opts.transition || {});\n }\n return optsOut;\n };\n plots.supplyAnimationFrameDefaults = function(opts) {\n var optsOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts || {}, optsOut, animationAttrs.frame, attr, dflt);\n }\n coerce(\"duration\");\n coerce(\"redraw\");\n return optsOut;\n };\n plots.supplyAnimationTransitionDefaults = function(opts) {\n var optsOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts || {}, optsOut, animationAttrs.transition, attr, dflt);\n }\n coerce(\"duration\");\n coerce(\"easing\");\n return optsOut;\n };\n plots.supplyFrameDefaults = function(frameIn) {\n var frameOut = {};\n function coerce(attr, dflt) {\n return Lib.coerce(frameIn, frameOut, frameAttrs, attr, dflt);\n }\n coerce(\"group\");\n coerce(\"name\");\n coerce(\"traces\");\n coerce(\"baseframe\");\n coerce(\"data\");\n coerce(\"layout\");\n return frameOut;\n };\n plots.supplyTraceDefaults = function(traceIn, traceOut, colorIndex, layout, traceInIndex) {\n var colorway = layout.colorway || Color2.defaults;\n var defaultColor = colorway[colorIndex % colorway.length];\n var i;\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, plots.attributes, attr, dflt);\n }\n var visible = coerce(\"visible\");\n coerce(\"type\");\n coerce(\"name\", layout._traceWord + \" \" + traceInIndex);\n coerce(\"uirevision\", layout.uirevision);\n var _module = plots.getModule(traceOut);\n traceOut._module = _module;\n if (_module) {\n var basePlotModule = _module.basePlotModule;\n var subplotAttr = basePlotModule.attr;\n var subplotAttrs = basePlotModule.attributes;\n if (subplotAttr && subplotAttrs) {\n var subplots = layout._subplots;\n var subplotId = \"\";\n if (Array.isArray(subplotAttr)) {\n for (i = 0; i < subplotAttr.length; i++) {\n var attri = subplotAttr[i];\n var vali = Lib.coerce(traceIn, traceOut, subplotAttrs, attri);\n if (subplots[attri]) Lib.pushUnique(subplots[attri], vali);\n subplotId += vali;\n }\n } else {\n subplotId = Lib.coerce(traceIn, traceOut, subplotAttrs, subplotAttr);\n }\n if (subplots[basePlotModule.name]) {\n Lib.pushUnique(subplots[basePlotModule.name], subplotId);\n }\n }\n }\n if (visible) {\n coerce(\"customdata\");\n coerce(\"ids\");\n coerce(\"meta\");\n if (Registry.traceIs(traceOut, \"showLegend\")) {\n Lib.coerce(\n traceIn,\n traceOut,\n _module.attributes.showlegend ? _module.attributes : plots.attributes,\n \"showlegend\"\n );\n coerce(\"legend\");\n coerce(\"legendwidth\");\n coerce(\"legendgroup\");\n coerce(\"legendgrouptitle.text\");\n coerce(\"legendrank\");\n traceOut._dfltShowLegend = true;\n } else {\n traceOut._dfltShowLegend = false;\n }\n if (_module) {\n _module.supplyDefaults(traceIn, traceOut, defaultColor, layout);\n }\n if (!Registry.traceIs(traceOut, \"noOpacity\")) {\n coerce(\"opacity\");\n }\n if (Registry.traceIs(traceOut, \"notLegendIsolatable\")) {\n traceOut.visible = !!traceOut.visible;\n }\n if (!Registry.traceIs(traceOut, \"noHover\")) {\n if (!traceOut.hovertemplate) Lib.coerceHoverinfo(traceIn, traceOut, layout);\n if (traceOut.type !== \"parcats\") {\n Registry.getComponentMethod(\"fx\", \"supplyDefaults\")(traceIn, traceOut, defaultColor, layout);\n }\n }\n if (_module && _module.selectPoints) {\n var selectedpoints = coerce(\"selectedpoints\");\n if (Lib.isTypedArray(selectedpoints)) {\n traceOut.selectedpoints = Array.from(selectedpoints);\n }\n }\n }\n return traceOut;\n };\n plots.supplyLayoutGlobalDefaults = function(layoutIn, layoutOut, formatObj) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, plots.layoutAttributes, attr, dflt);\n }\n var template = layoutIn.template;\n if (Lib.isPlainObject(template)) {\n layoutOut.template = template;\n layoutOut._template = template.layout;\n layoutOut._dataTemplate = template.data;\n }\n coerce(\"autotypenumbers\");\n var font = Lib.coerceFont(coerce, \"font\");\n var fontSize = font.size;\n Lib.coerceFont(coerce, \"title.font\", font, { overrideDflt: {\n size: Math.round(fontSize * 1.4)\n } });\n coerce(\"title.text\", layoutOut._dfltTitle.plot);\n coerce(\"title.xref\");\n var titleYref = coerce(\"title.yref\");\n coerce(\"title.pad.t\");\n coerce(\"title.pad.r\");\n coerce(\"title.pad.b\");\n coerce(\"title.pad.l\");\n var titleAutomargin = coerce(\"title.automargin\");\n coerce(\"title.x\");\n coerce(\"title.xanchor\");\n coerce(\"title.y\");\n coerce(\"title.yanchor\");\n coerce(\"title.subtitle.text\", layoutOut._dfltTitle.subtitle);\n Lib.coerceFont(coerce, \"title.subtitle.font\", font, {\n overrideDflt: {\n size: Math.round(layoutOut.title.font.size * 0.7)\n }\n });\n if (titleAutomargin) {\n if (titleYref === \"paper\") {\n if (layoutOut.title.y !== 0) layoutOut.title.y = 1;\n if (layoutOut.title.yanchor === \"auto\") {\n layoutOut.title.yanchor = layoutOut.title.y === 0 ? \"top\" : \"bottom\";\n }\n }\n if (titleYref === \"container\") {\n if (layoutOut.title.y === \"auto\") layoutOut.title.y = 1;\n if (layoutOut.title.yanchor === \"auto\") {\n layoutOut.title.yanchor = layoutOut.title.y < 0.5 ? \"bottom\" : \"top\";\n }\n }\n }\n var uniformtextMode = coerce(\"uniformtext.mode\");\n if (uniformtextMode) {\n coerce(\"uniformtext.minsize\");\n }\n coerce(\"autosize\", !(layoutIn.width && layoutIn.height));\n coerce(\"width\");\n coerce(\"height\");\n coerce(\"minreducedwidth\");\n coerce(\"minreducedheight\");\n coerce(\"margin.l\");\n coerce(\"margin.r\");\n coerce(\"margin.t\");\n coerce(\"margin.b\");\n coerce(\"margin.pad\");\n coerce(\"margin.autoexpand\");\n if (layoutIn.width && layoutIn.height) plots.sanitizeMargins(layoutOut);\n Registry.getComponentMethod(\"grid\", \"sizeDefaults\")(layoutIn, layoutOut);\n coerce(\"paper_bgcolor\");\n coerce(\"separators\", formatObj.decimal + formatObj.thousands);\n coerce(\"hidesources\");\n coerce(\"colorway\");\n coerce(\"datarevision\");\n var uirevision = coerce(\"uirevision\");\n coerce(\"editrevision\", uirevision);\n coerce(\"selectionrevision\", uirevision);\n Registry.getComponentMethod(\n \"modebar\",\n \"supplyLayoutDefaults\"\n )(layoutIn, layoutOut);\n Registry.getComponentMethod(\n \"shapes\",\n \"supplyDrawNewShapeDefaults\"\n )(layoutIn, layoutOut, coerce);\n Registry.getComponentMethod(\n \"selections\",\n \"supplyDrawNewSelectionDefaults\"\n )(layoutIn, layoutOut, coerce);\n coerce(\"meta\");\n if (Lib.isPlainObject(layoutIn.transition)) {\n coerce(\"transition.duration\");\n coerce(\"transition.easing\");\n coerce(\"transition.ordering\");\n }\n Registry.getComponentMethod(\n \"calendars\",\n \"handleDefaults\"\n )(layoutIn, layoutOut, \"calendar\");\n Registry.getComponentMethod(\n \"fx\",\n \"supplyLayoutGlobalDefaults\"\n )(layoutIn, layoutOut, coerce);\n Lib.coerce(layoutIn, layoutOut, scatterAttrs, \"scattermode\");\n };\n function getComputedSize(attr) {\n return typeof attr === \"string\" && attr.substr(attr.length - 2) === \"px\" && parseFloat(attr);\n }\n plots.plotAutoSize = function plotAutoSize(gd, layout, fullLayout) {\n var context = gd._context || {};\n var frameMargins = context.frameMargins;\n var newWidth;\n var newHeight;\n var isPlotDiv = Lib.isPlotDiv(gd);\n if (isPlotDiv) gd.emit(\"plotly_autosize\");\n if (context.fillFrame) {\n newWidth = window.innerWidth;\n newHeight = window.innerHeight;\n document.body.style.overflow = \"hidden\";\n } else {\n var computedStyle = isPlotDiv ? window.getComputedStyle(gd) : {};\n newWidth = getComputedSize(computedStyle.width) || getComputedSize(computedStyle.maxWidth) || fullLayout.width;\n newHeight = getComputedSize(computedStyle.height) || getComputedSize(computedStyle.maxHeight) || fullLayout.height;\n if (isNumeric(frameMargins) && frameMargins > 0) {\n var factor = 1 - 2 * frameMargins;\n newWidth = Math.round(factor * newWidth);\n newHeight = Math.round(factor * newHeight);\n }\n }\n var minWidth = plots.layoutAttributes.width.min;\n var minHeight = plots.layoutAttributes.height.min;\n if (newWidth < minWidth) newWidth = minWidth;\n if (newHeight < minHeight) newHeight = minHeight;\n var widthHasChanged = !layout.width && Math.abs(fullLayout.width - newWidth) > 1;\n var heightHasChanged = !layout.height && Math.abs(fullLayout.height - newHeight) > 1;\n if (heightHasChanged || widthHasChanged) {\n if (widthHasChanged) fullLayout.width = newWidth;\n if (heightHasChanged) fullLayout.height = newHeight;\n }\n if (!gd._initialAutoSize) {\n gd._initialAutoSize = { width: newWidth, height: newHeight };\n }\n plots.sanitizeMargins(fullLayout);\n };\n plots.supplyLayoutModuleDefaults = function(layoutIn, layoutOut, fullData, transitionData) {\n var componentsRegistry = Registry.componentsRegistry;\n var basePlotModules = layoutOut._basePlotModules;\n var component, i, _module;\n var Cartesian = Registry.subplotsRegistry.cartesian;\n for (component in componentsRegistry) {\n _module = componentsRegistry[component];\n if (_module.includeBasePlot) {\n _module.includeBasePlot(layoutIn, layoutOut);\n }\n }\n if (!basePlotModules.length) {\n basePlotModules.push(Cartesian);\n }\n if (layoutOut._has(\"cartesian\")) {\n Registry.getComponentMethod(\"grid\", \"contentDefaults\")(layoutIn, layoutOut);\n Cartesian.finalizeSubplots(layoutIn, layoutOut);\n }\n for (var subplotType in layoutOut._subplots) {\n layoutOut._subplots[subplotType].sort(Lib.subplotSort);\n }\n for (i = 0; i < basePlotModules.length; i++) {\n _module = basePlotModules[i];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n }\n var modules = layoutOut._modules;\n for (i = 0; i < modules.length; i++) {\n _module = modules[i];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n }\n var transformModules = layoutOut._transformModules;\n for (i = 0; i < transformModules.length; i++) {\n _module = transformModules[i];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData, transitionData);\n }\n }\n for (component in componentsRegistry) {\n _module = componentsRegistry[component];\n if (_module.supplyLayoutDefaults) {\n _module.supplyLayoutDefaults(layoutIn, layoutOut, fullData);\n }\n }\n };\n plots.purge = function(gd) {\n var fullLayout = gd._fullLayout || {};\n if (fullLayout._glcontainer !== void 0) {\n fullLayout._glcontainer.selectAll(\".gl-canvas\").remove();\n fullLayout._glcontainer.remove();\n fullLayout._glcanvas = null;\n }\n if (fullLayout._modeBar) fullLayout._modeBar.destroy();\n if (gd._transitionData) {\n if (gd._transitionData._interruptCallbacks) {\n gd._transitionData._interruptCallbacks.length = 0;\n }\n if (gd._transitionData._animationRaf) {\n window.cancelAnimationFrame(gd._transitionData._animationRaf);\n }\n }\n Lib.clearThrottle();\n Lib.clearResponsive(gd);\n delete gd.data;\n delete gd.layout;\n delete gd._fullData;\n delete gd._fullLayout;\n delete gd.calcdata;\n delete gd.empty;\n delete gd.fid;\n delete gd.undoqueue;\n delete gd.undonum;\n delete gd.autoplay;\n delete gd.changed;\n delete gd._promises;\n delete gd._redrawTimer;\n delete gd._hmlumcount;\n delete gd._hmpixcount;\n delete gd._transitionData;\n delete gd._transitioning;\n delete gd._initialAutoSize;\n delete gd._transitioningWithDuration;\n delete gd._dragging;\n delete gd._dragged;\n delete gd._dragdata;\n delete gd._hoverdata;\n delete gd._snapshotInProgress;\n delete gd._editing;\n delete gd._mouseDownTime;\n delete gd._legendMouseDownTime;\n if (gd.removeAllListeners) gd.removeAllListeners();\n };\n plots.style = function(gd) {\n var _modules = gd._fullLayout._visibleModules;\n var styleModules = [];\n var i;\n for (i = 0; i < _modules.length; i++) {\n var _module = _modules[i];\n if (_module.style) {\n Lib.pushUnique(styleModules, _module.style);\n }\n }\n for (i = 0; i < styleModules.length; i++) {\n styleModules[i](gd);\n }\n };\n plots.sanitizeMargins = function(fullLayout) {\n if (!fullLayout || !fullLayout.margin) return;\n var width = fullLayout.width;\n var height = fullLayout.height;\n var margin = fullLayout.margin;\n var plotWidth = width - (margin.l + margin.r);\n var plotHeight = height - (margin.t + margin.b);\n var correction;\n if (plotWidth < 0) {\n correction = (width - 1) / (margin.l + margin.r);\n margin.l = Math.floor(correction * margin.l);\n margin.r = Math.floor(correction * margin.r);\n }\n if (plotHeight < 0) {\n correction = (height - 1) / (margin.t + margin.b);\n margin.t = Math.floor(correction * margin.t);\n margin.b = Math.floor(correction * margin.b);\n }\n };\n plots.clearAutoMarginIds = function(gd) {\n gd._fullLayout._pushmarginIds = {};\n };\n plots.allowAutoMargin = function(gd, id) {\n gd._fullLayout._pushmarginIds[id] = 1;\n };\n function initMargins(fullLayout) {\n var margin = fullLayout.margin;\n if (!fullLayout._size) {\n var gs = fullLayout._size = {\n l: Math.round(margin.l),\n r: Math.round(margin.r),\n t: Math.round(margin.t),\n b: Math.round(margin.b),\n p: Math.round(margin.pad)\n };\n gs.w = Math.round(fullLayout.width) - gs.l - gs.r;\n gs.h = Math.round(fullLayout.height) - gs.t - gs.b;\n }\n if (!fullLayout._pushmargin) fullLayout._pushmargin = {};\n if (!fullLayout._pushmarginIds) fullLayout._pushmarginIds = {};\n if (!fullLayout._reservedMargin) fullLayout._reservedMargin = {};\n }\n var MIN_SPECIFIED_WIDTH = 2;\n var MIN_SPECIFIED_HEIGHT = 2;\n plots.autoMargin = function(gd, id, o) {\n var fullLayout = gd._fullLayout;\n var width = fullLayout.width;\n var height = fullLayout.height;\n var margin = fullLayout.margin;\n var minreducedwidth = fullLayout.minreducedwidth;\n var minreducedheight = fullLayout.minreducedheight;\n var minFinalWidth = Lib.constrain(\n width - margin.l - margin.r,\n MIN_SPECIFIED_WIDTH,\n minreducedwidth\n );\n var minFinalHeight = Lib.constrain(\n height - margin.t - margin.b,\n MIN_SPECIFIED_HEIGHT,\n minreducedheight\n );\n var maxSpaceW = Math.max(0, width - minFinalWidth);\n var maxSpaceH = Math.max(0, height - minFinalHeight);\n var pushMargin = fullLayout._pushmargin;\n var pushMarginIds = fullLayout._pushmarginIds;\n if (margin.autoexpand !== false) {\n if (!o) {\n delete pushMargin[id];\n delete pushMarginIds[id];\n } else {\n var pad = o.pad;\n if (pad === void 0) {\n pad = Math.min(12, margin.l, margin.r, margin.t, margin.b);\n }\n if (maxSpaceW) {\n var rW = (o.l + o.r) / maxSpaceW;\n if (rW > 1) {\n o.l /= rW;\n o.r /= rW;\n }\n }\n if (maxSpaceH) {\n var rH = (o.t + o.b) / maxSpaceH;\n if (rH > 1) {\n o.t /= rH;\n o.b /= rH;\n }\n }\n var xl = o.xl !== void 0 ? o.xl : o.x;\n var xr = o.xr !== void 0 ? o.xr : o.x;\n var yt = o.yt !== void 0 ? o.yt : o.y;\n var yb = o.yb !== void 0 ? o.yb : o.y;\n pushMargin[id] = {\n l: { val: xl, size: o.l + pad },\n r: { val: xr, size: o.r + pad },\n b: { val: yb, size: o.b + pad },\n t: { val: yt, size: o.t + pad }\n };\n pushMarginIds[id] = 1;\n }\n if (!fullLayout._replotting) {\n return plots.doAutoMargin(gd);\n }\n }\n };\n function needsRedrawForShift(gd) {\n if (\"_redrawFromAutoMarginCount\" in gd._fullLayout) {\n return false;\n }\n var axList = axisIDs.list(gd, \"\", true);\n for (var ax in axList) {\n if (axList[ax].autoshift || axList[ax].shift) return true;\n }\n return false;\n }\n plots.doAutoMargin = function(gd) {\n var fullLayout = gd._fullLayout;\n var width = fullLayout.width;\n var height = fullLayout.height;\n if (!fullLayout._size) fullLayout._size = {};\n initMargins(fullLayout);\n var gs = fullLayout._size;\n var margin = fullLayout.margin;\n var reservedMargins = { t: 0, b: 0, l: 0, r: 0 };\n var oldMargins = Lib.extendFlat({}, gs);\n var ml = margin.l;\n var mr = margin.r;\n var mt = margin.t;\n var mb = margin.b;\n var pushMargin = fullLayout._pushmargin;\n var pushMarginIds = fullLayout._pushmarginIds;\n var minreducedwidth = fullLayout.minreducedwidth;\n var minreducedheight = fullLayout.minreducedheight;\n if (margin.autoexpand !== false) {\n for (var k in pushMargin) {\n if (!pushMarginIds[k]) delete pushMargin[k];\n }\n var margins = gd._fullLayout._reservedMargin;\n for (var key in margins) {\n for (var side in margins[key]) {\n var val = margins[key][side];\n reservedMargins[side] = Math.max(reservedMargins[side], val);\n }\n }\n pushMargin.base = {\n l: { val: 0, size: ml },\n r: { val: 1, size: mr },\n t: { val: 1, size: mt },\n b: { val: 0, size: mb }\n };\n for (var s in reservedMargins) {\n var autoMarginPush = 0;\n for (var m in pushMargin) {\n if (m !== \"base\") {\n if (isNumeric(pushMargin[m][s].size)) {\n autoMarginPush = pushMargin[m][s].size > autoMarginPush ? pushMargin[m][s].size : autoMarginPush;\n }\n }\n }\n var extraMargin = Math.max(0, margin[s] - autoMarginPush);\n reservedMargins[s] = Math.max(0, reservedMargins[s] - extraMargin);\n }\n for (var k1 in pushMargin) {\n var pushleft = pushMargin[k1].l || {};\n var pushbottom = pushMargin[k1].b || {};\n var fl = pushleft.val;\n var pl = pushleft.size;\n var fb = pushbottom.val;\n var pb = pushbottom.size;\n var availableWidth = width - reservedMargins.r - reservedMargins.l;\n var availableHeight = height - reservedMargins.t - reservedMargins.b;\n for (var k2 in pushMargin) {\n if (isNumeric(pl) && pushMargin[k2].r) {\n var fr = pushMargin[k2].r.val;\n var pr = pushMargin[k2].r.size;\n if (fr > fl) {\n var newL = (pl * fr + (pr - availableWidth) * fl) / (fr - fl);\n var newR = (pr * (1 - fl) + (pl - availableWidth) * (1 - fr)) / (fr - fl);\n if (newL + newR > ml + mr) {\n ml = newL;\n mr = newR;\n }\n }\n }\n if (isNumeric(pb) && pushMargin[k2].t) {\n var ft = pushMargin[k2].t.val;\n var pt = pushMargin[k2].t.size;\n if (ft > fb) {\n var newB = (pb * ft + (pt - availableHeight) * fb) / (ft - fb);\n var newT = (pt * (1 - fb) + (pb - availableHeight) * (1 - ft)) / (ft - fb);\n if (newB + newT > mb + mt) {\n mb = newB;\n mt = newT;\n }\n }\n }\n }\n }\n }\n var minFinalWidth = Lib.constrain(\n width - margin.l - margin.r,\n MIN_SPECIFIED_WIDTH,\n minreducedwidth\n );\n var minFinalHeight = Lib.constrain(\n height - margin.t - margin.b,\n MIN_SPECIFIED_HEIGHT,\n minreducedheight\n );\n var maxSpaceW = Math.max(0, width - minFinalWidth);\n var maxSpaceH = Math.max(0, height - minFinalHeight);\n if (maxSpaceW) {\n var rW = (ml + mr) / maxSpaceW;\n if (rW > 1) {\n ml /= rW;\n mr /= rW;\n }\n }\n if (maxSpaceH) {\n var rH = (mb + mt) / maxSpaceH;\n if (rH > 1) {\n mb /= rH;\n mt /= rH;\n }\n }\n gs.l = Math.round(ml) + reservedMargins.l;\n gs.r = Math.round(mr) + reservedMargins.r;\n gs.t = Math.round(mt) + reservedMargins.t;\n gs.b = Math.round(mb) + reservedMargins.b;\n gs.p = Math.round(margin.pad);\n gs.w = Math.round(width) - gs.l - gs.r;\n gs.h = Math.round(height) - gs.t - gs.b;\n if (!fullLayout._replotting && (plots.didMarginChange(oldMargins, gs) || needsRedrawForShift(gd))) {\n if (\"_redrawFromAutoMarginCount\" in fullLayout) {\n fullLayout._redrawFromAutoMarginCount++;\n } else {\n fullLayout._redrawFromAutoMarginCount = 1;\n }\n var maxNumberOfRedraws = 3 * (1 + Object.keys(pushMarginIds).length);\n if (fullLayout._redrawFromAutoMarginCount < maxNumberOfRedraws) {\n return Registry.call(\"_doPlot\", gd);\n } else {\n fullLayout._size = oldMargins;\n Lib.warn(\"Too many auto-margin redraws.\");\n }\n }\n refineTicks(gd);\n };\n function refineTicks(gd) {\n var axList = axisIDs.list(gd, \"\", true);\n [\n \"_adjustTickLabelsOverflow\",\n \"_hideCounterAxisInsideTickLabels\"\n ].forEach(function(k) {\n for (var i = 0; i < axList.length; i++) {\n var hideFn = axList[i][k];\n if (hideFn) hideFn();\n }\n });\n }\n var marginKeys = [\"l\", \"r\", \"t\", \"b\", \"p\", \"w\", \"h\"];\n plots.didMarginChange = function(margin0, margin1) {\n for (var i = 0; i < marginKeys.length; i++) {\n var k = marginKeys[i];\n var m0 = margin0[k];\n var m1 = margin1[k];\n if (!isNumeric(m0) || Math.abs(m1 - m0) > 1) {\n return true;\n }\n }\n return false;\n };\n plots.graphJson = function(gd, dataonly, mode, output, useDefaults, includeConfig) {\n if (useDefaults && dataonly && !gd._fullData || useDefaults && !dataonly && !gd._fullLayout) {\n plots.supplyDefaults(gd);\n }\n var data = useDefaults ? gd._fullData : gd.data;\n var layout = useDefaults ? gd._fullLayout : gd.layout;\n var frames = (gd._transitionData || {})._frames;\n function stripObj(d, keepFunction) {\n if (typeof d === \"function\") {\n return keepFunction ? \"_function_\" : null;\n }\n if (Lib.isPlainObject(d)) {\n var o = {};\n var src;\n Object.keys(d).sort().forEach(function(v) {\n if ([\"_\", \"[\"].indexOf(v.charAt(0)) !== -1) return;\n if (typeof d[v] === \"function\") {\n if (keepFunction) o[v] = \"_function\";\n return;\n }\n if (mode === \"keepdata\") {\n if (v.substr(v.length - 3) === \"src\") {\n return;\n }\n } else if (mode === \"keepstream\") {\n src = d[v + \"src\"];\n if (typeof src === \"string\" && src.indexOf(\":\") > 0) {\n if (!Lib.isPlainObject(d.stream)) {\n return;\n }\n }\n } else if (mode !== \"keepall\") {\n src = d[v + \"src\"];\n if (typeof src === \"string\" && src.indexOf(\":\") > 0) {\n return;\n }\n }\n o[v] = stripObj(d[v], keepFunction);\n });\n return o;\n }\n var dIsArray = Array.isArray(d);\n var dIsTypedArray = Lib.isTypedArray(d);\n if ((dIsArray || dIsTypedArray) && d.dtype && d.shape) {\n var bdata = d.bdata;\n return stripObj({\n dtype: d.dtype,\n shape: d.shape,\n bdata: (\n // case of ArrayBuffer\n Lib.isArrayBuffer(bdata) ? b64encode.encode(bdata) : (\n // case of b64 string\n bdata\n )\n )\n }, keepFunction);\n }\n if (dIsArray) {\n return d.map(function(x) {\n return stripObj(x, keepFunction);\n });\n }\n if (dIsTypedArray) {\n return Lib.simpleMap(d, Lib.identity);\n }\n if (Lib.isJSDate(d)) return Lib.ms2DateTimeLocal(+d);\n return d;\n }\n var obj = {\n data: (data || []).map(function(v) {\n var d = stripObj(v);\n if (dataonly) {\n delete d.fit;\n }\n return d;\n })\n };\n if (!dataonly) {\n obj.layout = stripObj(layout);\n if (useDefaults) {\n var gs = layout._size;\n obj.layout.computed = {\n margin: {\n b: gs.b,\n l: gs.l,\n r: gs.r,\n t: gs.t\n }\n };\n }\n }\n if (frames) obj.frames = stripObj(frames);\n if (includeConfig) obj.config = stripObj(gd._context, true);\n return output === \"object\" ? obj : JSON.stringify(obj);\n };\n plots.modifyFrames = function(gd, operations) {\n var i, op, frame;\n var _frames = gd._transitionData._frames;\n var _frameHash = gd._transitionData._frameHash;\n for (i = 0; i < operations.length; i++) {\n op = operations[i];\n switch (op.type) {\n // No reason this couldn't exist, but is currently unused/untested:\n /* case 'rename':\n frame = _frames[op.index];\n delete _frameHash[frame.name];\n _frameHash[op.name] = frame;\n frame.name = op.name;\n break;*/\n case \"replace\":\n frame = op.value;\n var oldName = (_frames[op.index] || {}).name;\n var newName = frame.name;\n _frames[op.index] = _frameHash[newName] = frame;\n if (newName !== oldName) {\n delete _frameHash[oldName];\n _frameHash[newName] = frame;\n }\n break;\n case \"insert\":\n frame = op.value;\n _frameHash[frame.name] = frame;\n _frames.splice(op.index, 0, frame);\n break;\n case \"delete\":\n frame = _frames[op.index];\n delete _frameHash[frame.name];\n _frames.splice(op.index, 1);\n break;\n }\n }\n return Promise.resolve();\n };\n plots.computeFrame = function(gd, frameName) {\n var frameLookup = gd._transitionData._frameHash;\n var i, traceIndices, traceIndex, destIndex;\n if (!frameName) {\n throw new Error(\"computeFrame must be given a string frame name\");\n }\n var framePtr = frameLookup[frameName.toString()];\n if (!framePtr) {\n return false;\n }\n var frameStack = [framePtr];\n var frameNameStack = [framePtr.name];\n while (framePtr.baseframe && (framePtr = frameLookup[framePtr.baseframe.toString()])) {\n if (frameNameStack.indexOf(framePtr.name) !== -1) break;\n frameStack.push(framePtr);\n frameNameStack.push(framePtr.name);\n }\n var result = {};\n while (framePtr = frameStack.pop()) {\n if (framePtr.layout) {\n result.layout = plots.extendLayout(result.layout, framePtr.layout);\n }\n if (framePtr.data) {\n if (!result.data) {\n result.data = [];\n }\n traceIndices = framePtr.traces;\n if (!traceIndices) {\n traceIndices = [];\n for (i = 0; i < framePtr.data.length; i++) {\n traceIndices[i] = i;\n }\n }\n if (!result.traces) {\n result.traces = [];\n }\n for (i = 0; i < framePtr.data.length; i++) {\n traceIndex = traceIndices[i];\n if (traceIndex === void 0 || traceIndex === null) {\n continue;\n }\n destIndex = result.traces.indexOf(traceIndex);\n if (destIndex === -1) {\n destIndex = result.data.length;\n result.traces[destIndex] = traceIndex;\n }\n result.data[destIndex] = plots.extendTrace(result.data[destIndex], framePtr.data[i]);\n }\n }\n }\n return result;\n };\n plots.recomputeFrameHash = function(gd) {\n var hash = gd._transitionData._frameHash = {};\n var frames = gd._transitionData._frames;\n for (var i = 0; i < frames.length; i++) {\n var frame = frames[i];\n if (frame && frame.name) {\n hash[frame.name] = frame;\n }\n }\n };\n plots.extendObjectWithContainers = function(dest, src, containerPaths) {\n var containerProp, containerVal, i, j, srcProp, destProp, srcContainer, destContainer;\n var copy = Lib.extendDeepNoArrays({}, src || {});\n var expandedObj = Lib.expandObjectPaths(copy);\n var containerObj = {};\n if (containerPaths && containerPaths.length) {\n for (i = 0; i < containerPaths.length; i++) {\n containerProp = Lib.nestedProperty(expandedObj, containerPaths[i]);\n containerVal = containerProp.get();\n if (containerVal === void 0) {\n Lib.nestedProperty(containerObj, containerPaths[i]).set(null);\n } else {\n containerProp.set(null);\n Lib.nestedProperty(containerObj, containerPaths[i]).set(containerVal);\n }\n }\n }\n dest = Lib.extendDeepNoArrays(dest || {}, expandedObj);\n if (containerPaths && containerPaths.length) {\n for (i = 0; i < containerPaths.length; i++) {\n srcProp = Lib.nestedProperty(containerObj, containerPaths[i]);\n srcContainer = srcProp.get();\n if (!srcContainer) continue;\n destProp = Lib.nestedProperty(dest, containerPaths[i]);\n destContainer = destProp.get();\n if (!Array.isArray(destContainer)) {\n destContainer = [];\n destProp.set(destContainer);\n }\n for (j = 0; j < srcContainer.length; j++) {\n var srcObj = srcContainer[j];\n if (srcObj === null) destContainer[j] = null;\n else {\n destContainer[j] = plots.extendObjectWithContainers(destContainer[j], srcObj);\n }\n }\n destProp.set(destContainer);\n }\n }\n return dest;\n };\n plots.dataArrayContainers = [\"transforms\", \"dimensions\"];\n plots.layoutArrayContainers = Registry.layoutArrayContainers;\n plots.extendTrace = function(destTrace, srcTrace) {\n return plots.extendObjectWithContainers(destTrace, srcTrace, plots.dataArrayContainers);\n };\n plots.extendLayout = function(destLayout, srcLayout) {\n return plots.extendObjectWithContainers(destLayout, srcLayout, plots.layoutArrayContainers);\n };\n plots.transition = function(gd, data, layout, traces, frameOpts, transitionOpts) {\n var opts = { redraw: frameOpts.redraw };\n var transitionedTraces = {};\n var axEdits = [];\n opts.prepareFn = function() {\n var dataLength = Array.isArray(data) ? data.length : 0;\n var traceIndices = traces.slice(0, dataLength);\n for (var i = 0; i < traceIndices.length; i++) {\n var traceIdx = traceIndices[i];\n var trace = gd._fullData[traceIdx];\n var _module = trace._module;\n if (!_module) continue;\n if (_module.animatable) {\n var n = _module.basePlotModule.name;\n if (!transitionedTraces[n]) transitionedTraces[n] = [];\n transitionedTraces[n].push(traceIdx);\n }\n gd.data[traceIndices[i]] = plots.extendTrace(gd.data[traceIndices[i]], data[i]);\n }\n var layoutUpdate = Lib.expandObjectPaths(Lib.extendDeepNoArrays({}, layout));\n var axisAttrRe = /^[xy]axis[0-9]*$/;\n for (var attr in layoutUpdate) {\n if (!axisAttrRe.test(attr)) continue;\n delete layoutUpdate[attr].range;\n }\n plots.extendLayout(gd.layout, layoutUpdate);\n delete gd.calcdata;\n plots.supplyDefaults(gd);\n plots.doCalcdata(gd);\n var newLayout = Lib.expandObjectPaths(layout);\n if (newLayout) {\n var subplots = gd._fullLayout._plots;\n for (var k in subplots) {\n var plotinfo = subplots[k];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xr0 = xa.range.slice();\n var yr0 = ya.range.slice();\n var xr1 = null;\n var yr1 = null;\n var editX = null;\n var editY = null;\n if (Array.isArray(newLayout[xa._name + \".range\"])) {\n xr1 = newLayout[xa._name + \".range\"].slice();\n } else if (Array.isArray((newLayout[xa._name] || {}).range)) {\n xr1 = newLayout[xa._name].range.slice();\n }\n if (Array.isArray(newLayout[ya._name + \".range\"])) {\n yr1 = newLayout[ya._name + \".range\"].slice();\n } else if (Array.isArray((newLayout[ya._name] || {}).range)) {\n yr1 = newLayout[ya._name].range.slice();\n }\n if (xr0 && xr1 && (xa.r2l(xr0[0]) !== xa.r2l(xr1[0]) || xa.r2l(xr0[1]) !== xa.r2l(xr1[1]))) {\n editX = { xr0, xr1 };\n }\n if (yr0 && yr1 && (ya.r2l(yr0[0]) !== ya.r2l(yr1[0]) || ya.r2l(yr0[1]) !== ya.r2l(yr1[1]))) {\n editY = { yr0, yr1 };\n }\n if (editX || editY) {\n axEdits.push(Lib.extendFlat({ plotinfo }, editX, editY));\n }\n }\n }\n return Promise.resolve();\n };\n opts.runFn = function(makeCallback) {\n var traceTransitionOpts;\n var basePlotModules = gd._fullLayout._basePlotModules;\n var hasAxisTransition = axEdits.length;\n var i;\n if (layout) {\n for (i = 0; i < basePlotModules.length; i++) {\n if (basePlotModules[i].transitionAxes) {\n basePlotModules[i].transitionAxes(gd, axEdits, transitionOpts, makeCallback);\n }\n }\n }\n if (hasAxisTransition) {\n traceTransitionOpts = Lib.extendFlat({}, transitionOpts);\n traceTransitionOpts.duration = 0;\n delete transitionedTraces.cartesian;\n } else {\n traceTransitionOpts = transitionOpts;\n }\n for (var n in transitionedTraces) {\n var traceIndices = transitionedTraces[n];\n var _module = gd._fullData[traceIndices[0]]._module;\n _module.basePlotModule.plot(gd, traceIndices, traceTransitionOpts, makeCallback);\n }\n };\n return _transition(gd, transitionOpts, opts);\n };\n plots.transitionFromReact = function(gd, restyleFlags, relayoutFlags, oldFullLayout) {\n var fullLayout = gd._fullLayout;\n var transitionOpts = fullLayout.transition;\n var opts = {};\n var axEdits = [];\n opts.prepareFn = function() {\n var subplots = fullLayout._plots;\n opts.redraw = false;\n if (restyleFlags.anim === \"some\") opts.redraw = true;\n if (relayoutFlags.anim === \"some\") opts.redraw = true;\n for (var k in subplots) {\n var plotinfo = subplots[k];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xr0 = oldFullLayout[xa._name].range.slice();\n var yr0 = oldFullLayout[ya._name].range.slice();\n var xr1 = xa.range.slice();\n var yr1 = ya.range.slice();\n xa.setScale();\n ya.setScale();\n var editX = null;\n var editY = null;\n if (xa.r2l(xr0[0]) !== xa.r2l(xr1[0]) || xa.r2l(xr0[1]) !== xa.r2l(xr1[1])) {\n editX = { xr0, xr1 };\n }\n if (ya.r2l(yr0[0]) !== ya.r2l(yr1[0]) || ya.r2l(yr0[1]) !== ya.r2l(yr1[1])) {\n editY = { yr0, yr1 };\n }\n if (editX || editY) {\n axEdits.push(Lib.extendFlat({ plotinfo }, editX, editY));\n }\n }\n return Promise.resolve();\n };\n opts.runFn = function(makeCallback) {\n var fullData = gd._fullData;\n var fullLayout2 = gd._fullLayout;\n var basePlotModules = fullLayout2._basePlotModules;\n var axisTransitionOpts;\n var traceTransitionOpts;\n var transitionedTraces;\n var allTraceIndices = [];\n for (var i = 0; i < fullData.length; i++) {\n allTraceIndices.push(i);\n }\n function transitionAxes() {\n if (!gd._fullLayout) return;\n for (var j = 0; j < basePlotModules.length; j++) {\n if (basePlotModules[j].transitionAxes) {\n basePlotModules[j].transitionAxes(gd, axEdits, axisTransitionOpts, makeCallback);\n }\n }\n }\n function transitionTraces() {\n if (!gd._fullLayout) return;\n for (var j = 0; j < basePlotModules.length; j++) {\n basePlotModules[j].plot(gd, transitionedTraces, traceTransitionOpts, makeCallback);\n }\n }\n if (axEdits.length && restyleFlags.anim) {\n if (transitionOpts.ordering === \"traces first\") {\n axisTransitionOpts = Lib.extendFlat({}, transitionOpts, { duration: 0 });\n transitionedTraces = allTraceIndices;\n traceTransitionOpts = transitionOpts;\n setTimeout(transitionAxes, transitionOpts.duration);\n transitionTraces();\n } else {\n axisTransitionOpts = transitionOpts;\n transitionedTraces = null;\n traceTransitionOpts = Lib.extendFlat({}, transitionOpts, { duration: 0 });\n setTimeout(transitionTraces, axisTransitionOpts.duration);\n transitionAxes();\n }\n } else if (axEdits.length) {\n axisTransitionOpts = transitionOpts;\n transitionAxes();\n } else if (restyleFlags.anim) {\n transitionedTraces = allTraceIndices;\n traceTransitionOpts = transitionOpts;\n transitionTraces();\n }\n };\n return _transition(gd, transitionOpts, opts);\n };\n function _transition(gd, transitionOpts, opts) {\n var aborted = false;\n function executeCallbacks(list) {\n var p = Promise.resolve();\n if (!list) return p;\n while (list.length) {\n p = p.then(list.shift());\n }\n return p;\n }\n function flushCallbacks(list) {\n if (!list) return;\n while (list.length) {\n list.shift();\n }\n }\n function executeTransitions() {\n gd.emit(\"plotly_transitioning\", []);\n return new Promise(function(resolve) {\n gd._transitioning = true;\n if (transitionOpts.duration > 0) {\n gd._transitioningWithDuration = true;\n }\n gd._transitionData._interruptCallbacks.push(function() {\n aborted = true;\n });\n if (opts.redraw) {\n gd._transitionData._interruptCallbacks.push(function() {\n return Registry.call(\"redraw\", gd);\n });\n }\n gd._transitionData._interruptCallbacks.push(function() {\n gd.emit(\"plotly_transitioninterrupted\", []);\n });\n var numCallbacks = 0;\n var numCompleted = 0;\n function makeCallback() {\n numCallbacks++;\n return function() {\n numCompleted++;\n if (!aborted && numCompleted === numCallbacks) {\n completeTransition(resolve);\n }\n };\n }\n opts.runFn(makeCallback);\n setTimeout(makeCallback());\n });\n }\n function completeTransition(callback) {\n if (!gd._transitionData) return;\n flushCallbacks(gd._transitionData._interruptCallbacks);\n return Promise.resolve().then(function() {\n if (opts.redraw) {\n return Registry.call(\"redraw\", gd);\n }\n }).then(function() {\n gd._transitioning = false;\n gd._transitioningWithDuration = false;\n gd.emit(\"plotly_transitioned\", []);\n }).then(callback);\n }\n function interruptPreviousTransitions() {\n if (!gd._transitionData) return;\n gd._transitioning = false;\n return executeCallbacks(gd._transitionData._interruptCallbacks);\n }\n var seq = [\n plots.previousPromises,\n interruptPreviousTransitions,\n opts.prepareFn,\n plots.rehover,\n plots.reselect,\n executeTransitions\n ];\n var transitionStarting = Lib.syncOrAsync(seq, gd);\n if (!transitionStarting || !transitionStarting.then) {\n transitionStarting = Promise.resolve();\n }\n return transitionStarting.then(function() {\n return gd;\n });\n }\n plots.doCalcdata = function(gd, traces) {\n var axList = axisIDs.list(gd);\n var fullData = gd._fullData;\n var fullLayout = gd._fullLayout;\n var trace, _module, i, j;\n var calcdata = new Array(fullData.length);\n var oldCalcdata = (gd.calcdata || []).slice();\n gd.calcdata = calcdata;\n fullLayout._numBoxes = 0;\n fullLayout._numViolins = 0;\n fullLayout._violinScaleGroupStats = {};\n gd._hmpixcount = 0;\n gd._hmlumcount = 0;\n fullLayout._piecolormap = {};\n fullLayout._sunburstcolormap = {};\n fullLayout._treemapcolormap = {};\n fullLayout._iciclecolormap = {};\n fullLayout._funnelareacolormap = {};\n for (i = 0; i < fullData.length; i++) {\n if (Array.isArray(traces) && traces.indexOf(i) === -1) {\n calcdata[i] = oldCalcdata[i];\n continue;\n }\n }\n for (i = 0; i < fullData.length; i++) {\n trace = fullData[i];\n trace._arrayAttrs = PlotSchema.findArrayAttributes(trace);\n trace._extremes = {};\n }\n var polarIds = fullLayout._subplots.polar || [];\n for (i = 0; i < polarIds.length; i++) {\n axList.push(\n fullLayout[polarIds[i]].radialaxis,\n fullLayout[polarIds[i]].angularaxis\n );\n }\n for (var k in fullLayout._colorAxes) {\n var cOpts = fullLayout[k];\n if (cOpts.cauto !== false) {\n delete cOpts.cmin;\n delete cOpts.cmax;\n }\n }\n var hasCalcTransform = false;\n function transformCalci(i2) {\n trace = fullData[i2];\n _module = trace._module;\n if (trace.visible === true && trace.transforms) {\n if (_module && _module.calc) {\n var cdi = _module.calc(gd, trace);\n if (cdi[0] && cdi[0].t && cdi[0].t._scene) {\n delete cdi[0].t._scene.dirty;\n }\n }\n for (j = 0; j < trace.transforms.length; j++) {\n var transform = trace.transforms[j];\n _module = transformsRegistry[transform.type];\n if (_module && _module.calcTransform) {\n trace._hasCalcTransform = true;\n hasCalcTransform = true;\n _module.calcTransform(gd, trace, transform);\n }\n }\n }\n }\n function calci(i2, isContainer) {\n trace = fullData[i2];\n _module = trace._module;\n if (!!_module.isContainer !== isContainer) return;\n var cd = [];\n if (trace.visible === true && trace._length !== 0) {\n delete trace._indexToPoints;\n var transforms = trace.transforms || [];\n for (j = transforms.length - 1; j >= 0; j--) {\n if (transforms[j].enabled) {\n trace._indexToPoints = transforms[j]._indexToPoints;\n break;\n }\n }\n if (_module && _module.calc) {\n cd = _module.calc(gd, trace);\n }\n }\n if (!Array.isArray(cd) || !cd[0]) {\n cd = [{ x: BADNUM, y: BADNUM }];\n }\n if (!cd[0].t) cd[0].t = {};\n cd[0].trace = trace;\n calcdata[i2] = cd;\n }\n setupAxisCategories(axList, fullData, fullLayout);\n for (i = 0; i < fullData.length; i++) calci(i, true);\n for (i = 0; i < fullData.length; i++) transformCalci(i);\n if (hasCalcTransform) setupAxisCategories(axList, fullData, fullLayout);\n for (i = 0; i < fullData.length; i++) calci(i, true);\n for (i = 0; i < fullData.length; i++) calci(i, false);\n doCrossTraceCalc(gd);\n var sorted = sortAxisCategoriesByValue(axList, gd);\n if (sorted.length) {\n fullLayout._numBoxes = 0;\n fullLayout._numViolins = 0;\n for (i = 0; i < sorted.length; i++) calci(sorted[i], true);\n for (i = 0; i < sorted.length; i++) calci(sorted[i], false);\n doCrossTraceCalc(gd);\n }\n Registry.getComponentMethod(\"fx\", \"calc\")(gd);\n Registry.getComponentMethod(\"errorbars\", \"calc\")(gd);\n };\n var sortAxisCategoriesByValueRegex = /(total|sum|min|max|mean|geometric mean|median) (ascending|descending)/;\n function sortAxisCategoriesByValue(axList, gd) {\n var affectedTraces = [];\n var i, j, k, l, o;\n function zMapCategory(type2, ax2, value2) {\n var axLetter2 = ax2._id.charAt(0);\n if (type2 === \"histogram2dcontour\") {\n var counterAxLetter = ax2._counterAxes[0];\n var counterAx = axisIDs.getFromId(gd, counterAxLetter);\n var xCategorical = axLetter2 === \"x\" || counterAxLetter === \"x\" && counterAx.type === \"category\";\n var yCategorical = axLetter2 === \"y\" || counterAxLetter === \"y\" && counterAx.type === \"category\";\n return function(o2, l2) {\n if (o2 === 0 || l2 === 0) return -1;\n if (xCategorical && o2 === value2[l2].length - 1) return -1;\n if (yCategorical && l2 === value2.length - 1) return -1;\n return (axLetter2 === \"y\" ? l2 : o2) - 1;\n };\n } else {\n return function(o2, l2) {\n return axLetter2 === \"y\" ? l2 : o2;\n };\n }\n }\n var aggFn = {\n min: function(values) {\n return Lib.aggNums(Math.min, null, values);\n },\n max: function(values) {\n return Lib.aggNums(Math.max, null, values);\n },\n sum: function(values) {\n return Lib.aggNums(function(a, b) {\n return a + b;\n }, null, values);\n },\n total: function(values) {\n return Lib.aggNums(function(a, b) {\n return a + b;\n }, null, values);\n },\n mean: function(values) {\n return Lib.mean(values);\n },\n \"geometric mean\": function(values) {\n return Lib.geometricMean(values);\n },\n median: function(values) {\n return Lib.median(values);\n }\n };\n function sortAscending(a, b) {\n return a[1] - b[1];\n }\n function sortDescending(a, b) {\n return b[1] - a[1];\n }\n for (i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if (ax.type !== \"category\") continue;\n var match = ax.categoryorder.match(sortAxisCategoriesByValueRegex);\n if (match) {\n var aggregator = match[1];\n var order = match[2];\n var axLetter = ax._id.charAt(0);\n var isX = axLetter === \"x\";\n var categoriesValue = [];\n for (j = 0; j < ax._categories.length; j++) {\n categoriesValue.push([ax._categories[j], []]);\n }\n for (j = 0; j < ax._traceIndices.length; j++) {\n var traceIndex = ax._traceIndices[j];\n var fullTrace = gd._fullData[traceIndex];\n if (fullTrace.visible !== true) continue;\n var type = fullTrace.type;\n if (Registry.traceIs(fullTrace, \"histogram\")) {\n delete fullTrace._xautoBinFinished;\n delete fullTrace._yautoBinFinished;\n }\n var isSplom = type === \"splom\";\n var isScattergl = type === \"scattergl\";\n var cd = gd.calcdata[traceIndex];\n for (k = 0; k < cd.length; k++) {\n var cdi = cd[k];\n var catIndex, value;\n if (isSplom) {\n var currentDimensionIndex = fullTrace._axesDim[ax._id];\n if (!isX) {\n var associatedXAxisID = fullTrace._diag[currentDimensionIndex][0];\n if (associatedXAxisID) ax = gd._fullLayout[axisIDs.id2name(associatedXAxisID)];\n }\n var categories = cdi.trace.dimensions[currentDimensionIndex].values;\n for (l = 0; l < categories.length; l++) {\n catIndex = ax._categoriesMap[categories[l]];\n for (o = 0; o < cdi.trace.dimensions.length; o++) {\n if (o === currentDimensionIndex) continue;\n var dimension = cdi.trace.dimensions[o];\n categoriesValue[catIndex][1].push(dimension.values[l]);\n }\n }\n } else if (isScattergl) {\n for (l = 0; l < cdi.t.x.length; l++) {\n if (isX) {\n catIndex = cdi.t.x[l];\n value = cdi.t.y[l];\n } else {\n catIndex = cdi.t.y[l];\n value = cdi.t.x[l];\n }\n categoriesValue[catIndex][1].push(value);\n }\n if (cdi.t && cdi.t._scene) {\n delete cdi.t._scene.dirty;\n }\n } else if (cdi.hasOwnProperty(\"z\")) {\n value = cdi.z;\n var mapping = zMapCategory(fullTrace.type, ax, value);\n for (l = 0; l < value.length; l++) {\n for (o = 0; o < value[l].length; o++) {\n catIndex = mapping(o, l);\n if (catIndex + 1) categoriesValue[catIndex][1].push(value[l][o]);\n }\n }\n } else {\n catIndex = cdi.p;\n if (catIndex === void 0) catIndex = cdi[axLetter];\n value = cdi.s;\n if (value === void 0) value = cdi.v;\n if (value === void 0) value = isX ? cdi.y : cdi.x;\n if (!Array.isArray(value)) {\n if (value === void 0) value = [];\n else value = [value];\n }\n for (l = 0; l < value.length; l++) {\n categoriesValue[catIndex][1].push(value[l]);\n }\n }\n }\n }\n ax._categoriesValue = categoriesValue;\n var categoriesAggregatedValue = [];\n for (j = 0; j < categoriesValue.length; j++) {\n categoriesAggregatedValue.push([\n categoriesValue[j][0],\n aggFn[aggregator](categoriesValue[j][1])\n ]);\n }\n categoriesAggregatedValue.sort(order === \"descending\" ? sortDescending : sortAscending);\n ax._categoriesAggregatedValue = categoriesAggregatedValue;\n ax._initialCategories = categoriesAggregatedValue.map(function(c) {\n return c[0];\n });\n affectedTraces = affectedTraces.concat(ax.sortByInitialCategories());\n }\n }\n return affectedTraces;\n }\n function setupAxisCategories(axList, fullData, fullLayout) {\n var axLookup = {};\n function setupOne(ax) {\n ax.clearCalc();\n if (ax.type === \"multicategory\") {\n ax.setupMultiCategory(fullData);\n }\n axLookup[ax._id] = 1;\n }\n Lib.simpleMap(axList, setupOne);\n var matchGroups = fullLayout._axisMatchGroups || [];\n for (var i = 0; i < matchGroups.length; i++) {\n for (var axId in matchGroups[i]) {\n if (!axLookup[axId]) {\n setupOne(fullLayout[axisIDs.id2name(axId)]);\n }\n }\n }\n }\n function doCrossTraceCalc(gd) {\n var fullLayout = gd._fullLayout;\n var modules = fullLayout._visibleModules;\n var hash = {};\n var i, j, k;\n for (j = 0; j < modules.length; j++) {\n var _module = modules[j];\n var fn = _module.crossTraceCalc;\n if (fn) {\n var spType = _module.basePlotModule.name;\n if (hash[spType]) {\n Lib.pushUnique(hash[spType], fn);\n } else {\n hash[spType] = [fn];\n }\n }\n }\n for (k in hash) {\n var methods = hash[k];\n var subplots = fullLayout._subplots[k];\n if (Array.isArray(subplots)) {\n for (i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n var spInfo = k === \"cartesian\" ? fullLayout._plots[sp] : fullLayout[sp];\n for (j = 0; j < methods.length; j++) {\n methods[j](gd, spInfo, sp);\n }\n }\n } else {\n for (j = 0; j < methods.length; j++) {\n methods[j](gd);\n }\n }\n }\n }\n plots.rehover = function(gd) {\n if (gd._fullLayout._rehover) {\n gd._fullLayout._rehover();\n }\n };\n plots.redrag = function(gd) {\n if (gd._fullLayout._redrag) {\n gd._fullLayout._redrag();\n }\n };\n plots.reselect = function(gd) {\n var fullLayout = gd._fullLayout;\n var A2 = (gd.layout || {}).selections;\n var B2 = fullLayout._previousSelections;\n fullLayout._previousSelections = A2;\n var mayEmitSelected = fullLayout._reselect || JSON.stringify(A2) !== JSON.stringify(B2);\n Registry.getComponentMethod(\"selections\", \"reselect\")(gd, mayEmitSelected);\n };\n plots.generalUpdatePerTraceModule = function(gd, subplot, subplotCalcData, subplotLayout) {\n var traceHashOld = subplot.traceHash;\n var traceHash = {};\n var i;\n for (i = 0; i < subplotCalcData.length; i++) {\n var calcTraces = subplotCalcData[i];\n var trace = calcTraces[0].trace;\n if (trace.visible) {\n traceHash[trace.type] = traceHash[trace.type] || [];\n traceHash[trace.type].push(calcTraces);\n }\n }\n for (var moduleNameOld in traceHashOld) {\n if (!traceHash[moduleNameOld]) {\n var fakeCalcTrace = traceHashOld[moduleNameOld][0];\n var fakeTrace = fakeCalcTrace[0].trace;\n fakeTrace.visible = false;\n traceHash[moduleNameOld] = [fakeCalcTrace];\n }\n }\n for (var moduleName in traceHash) {\n var moduleCalcData = traceHash[moduleName];\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, subplot, Lib.filterVisible(moduleCalcData), subplotLayout);\n }\n subplot.traceHash = traceHash;\n };\n plots.plotBasePlot = function(desiredType, gd, traces, transitionOpts, makeOnCompleteCallback) {\n var _module = Registry.getModule(desiredType);\n var cdmodule = getModuleCalcData(gd.calcdata, _module)[0];\n _module.plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback);\n };\n plots.cleanBasePlot = function(desiredType, newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var had = oldFullLayout._has && oldFullLayout._has(desiredType);\n var has = newFullLayout._has && newFullLayout._has(desiredType);\n if (had && !has) {\n oldFullLayout[\"_\" + desiredType + \"layer\"].selectAll(\"g.trace\").remove();\n }\n };\n }\n });\n\n // src/constants/xmlns_namespaces.js\n var require_xmlns_namespaces = __commonJS({\n \"src/constants/xmlns_namespaces.js\"(exports) {\n \"use strict\";\n exports.xmlns = \"http://www.w3.org/2000/xmlns/\";\n exports.svg = \"http://www.w3.org/2000/svg\";\n exports.xlink = \"http://www.w3.org/1999/xlink\";\n exports.svgAttrs = {\n xmlns: exports.svg,\n \"xmlns:xlink\": exports.xlink\n };\n }\n });\n\n // src/constants/alignment.js\n var require_alignment = __commonJS({\n \"src/constants/alignment.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // from bottom left: this is the origin of our paper-reference\n // positioning system\n FROM_BL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // from top left: this is the screen pixel positioning origin\n FROM_TL: {\n left: 0,\n center: 0.5,\n right: 1,\n bottom: 1,\n middle: 0.5,\n top: 0\n },\n // from bottom right: sometimes you just need the opposite of ^^\n FROM_BR: {\n left: 1,\n center: 0.5,\n right: 0,\n bottom: 0,\n middle: 0.5,\n top: 1\n },\n // multiple of fontSize to get the vertical offset between lines\n LINE_SPACING: 1.3,\n // multiple of fontSize to shift from the baseline\n // to the cap (captical letter) line\n // (to use when we don't calculate this shift from Drawing.bBox)\n // This is an approximation since in reality cap height can differ\n // from font to font. However, according to Wikipedia\n // an \"average\" font might have a cap height of 70% of the em\n // https://en.wikipedia.org/wiki/Em_(typography)#History\n CAP_SHIFT: 0.7,\n // half the cap height (distance between baseline and cap line)\n // of an \"average\" font (for more info see above).\n MID_SHIFT: 0.35,\n OPPOSITE_SIDE: {\n left: \"right\",\n right: \"left\",\n top: \"bottom\",\n bottom: \"top\"\n }\n };\n }\n });\n\n // src/lib/svg_text_utils.js\n var require_svg_text_utils = __commonJS({\n \"src/lib/svg_text_utils.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var LINE_SPACING = require_alignment().LINE_SPACING;\n var FIND_TEX = /([^$]*)([$]+[^$]*[$]+)([^$]*)/;\n exports.convertToTspans = function(_context, gd, _callback) {\n var str = _context.text();\n var tex = !_context.attr(\"data-notex\") && gd && gd._context.typesetMath && typeof MathJax !== \"undefined\" && str.match(FIND_TEX);\n var parent = d3.select(_context.node().parentNode);\n if (parent.empty()) return;\n var svgClass = _context.attr(\"class\") ? _context.attr(\"class\").split(\" \")[0] : \"text\";\n svgClass += \"-math\";\n parent.selectAll(\"svg.\" + svgClass).remove();\n parent.selectAll(\"g.\" + svgClass + \"-group\").remove();\n _context.style(\"display\", null).attr({\n // some callers use data-unformatted *from the element* in 'cancel'\n // so we need it here even if we're going to turn it into math\n // these two (plus style and text-anchor attributes) form the key we're\n // going to use for Drawing.bBox\n \"data-unformatted\": str,\n \"data-math\": \"N\"\n });\n function showText() {\n if (!parent.empty()) {\n svgClass = _context.attr(\"class\") + \"-math\";\n parent.select(\"svg.\" + svgClass).remove();\n }\n _context.text(\"\").style(\"white-space\", \"pre\");\n var hasLink = buildSVGText(_context.node(), str);\n if (hasLink) {\n _context.style(\"pointer-events\", \"all\");\n }\n exports.positionText(_context);\n if (_callback) _callback.call(_context);\n }\n if (tex) {\n (gd && gd._promises || []).push(new Promise(function(resolve) {\n _context.style(\"display\", \"none\");\n var fontSize = parseInt(_context.node().style.fontSize, 10);\n var config = { fontSize };\n texToSVG(tex[2], config, function(_svgEl, _glyphDefs, _svgBBox) {\n parent.selectAll(\"svg.\" + svgClass).remove();\n parent.selectAll(\"g.\" + svgClass + \"-group\").remove();\n var newSvg = _svgEl && _svgEl.select(\"svg\");\n if (!newSvg || !newSvg.node()) {\n showText();\n resolve();\n return;\n }\n var mathjaxGroup = parent.append(\"g\").classed(svgClass + \"-group\", true).attr({\n \"pointer-events\": \"none\",\n \"data-unformatted\": str,\n \"data-math\": \"Y\"\n });\n mathjaxGroup.node().appendChild(newSvg.node());\n if (_glyphDefs && _glyphDefs.node()) {\n newSvg.node().insertBefore(\n _glyphDefs.node().cloneNode(true),\n newSvg.node().firstChild\n );\n }\n var w0 = _svgBBox.width;\n var h0 = _svgBBox.height;\n newSvg.attr({\n class: svgClass,\n height: h0,\n preserveAspectRatio: \"xMinYMin meet\"\n }).style({ overflow: \"visible\", \"pointer-events\": \"none\" });\n var fill = _context.node().style.fill || \"black\";\n var g = newSvg.select(\"g\");\n g.attr({ fill, stroke: fill });\n var bb = g.node().getBoundingClientRect();\n var w = bb.width;\n var h = bb.height;\n if (w > w0 || h > h0) {\n newSvg.style(\"overflow\", \"hidden\");\n bb = newSvg.node().getBoundingClientRect();\n w = bb.width;\n h = bb.height;\n }\n var x = +_context.attr(\"x\");\n var y = +_context.attr(\"y\");\n var textHeight = fontSize || _context.node().getBoundingClientRect().height;\n var dy = -textHeight / 4;\n if (svgClass[0] === \"y\") {\n mathjaxGroup.attr({\n transform: \"rotate(\" + [-90, x, y] + \")\" + strTranslate(-w / 2, dy - h / 2)\n });\n } else if (svgClass[0] === \"l\") {\n y = dy - h / 2;\n } else if (svgClass[0] === \"a\" && svgClass.indexOf(\"atitle\") !== 0) {\n x = 0;\n y = dy;\n } else {\n var anchor = _context.attr(\"text-anchor\");\n x = x - w * (anchor === \"middle\" ? 0.5 : anchor === \"end\" ? 1 : 0);\n y = y + dy - h / 2;\n }\n newSvg.attr({\n x,\n y\n });\n if (_callback) _callback.call(_context, mathjaxGroup);\n resolve(mathjaxGroup);\n });\n }));\n } else showText();\n return _context;\n };\n var LT_MATCH = /(<|<|<)/g;\n var GT_MATCH = /(>|>|>)/g;\n function cleanEscapesForTex(s) {\n return s.replace(LT_MATCH, \"\\\\lt \").replace(GT_MATCH, \"\\\\gt \");\n }\n var inlineMath = [[\"$\", \"$\"], [\"\\\\(\", \"\\\\)\"]];\n function texToSVG(_texString, _config, _callback) {\n var MathJaxVersion = parseInt(\n (MathJax.version || \"\").split(\".\")[0]\n );\n if (MathJaxVersion !== 2 && MathJaxVersion !== 3) {\n Lib.warn(\"No MathJax version:\", MathJax.version);\n return;\n }\n var originalRenderer, originalConfig, originalProcessSectionDelay, tmpDiv;\n var setConfig2 = function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.Hub.config);\n originalProcessSectionDelay = MathJax.Hub.processSectionDelay;\n if (MathJax.Hub.processSectionDelay !== void 0) {\n MathJax.Hub.processSectionDelay = 0;\n }\n return MathJax.Hub.Config({\n messageStyle: \"none\",\n tex2jax: {\n inlineMath\n },\n displayAlign: \"left\"\n });\n };\n var setConfig3 = function() {\n originalConfig = Lib.extendDeepAll({}, MathJax.config);\n if (!MathJax.config.tex) {\n MathJax.config.tex = {};\n }\n MathJax.config.tex.inlineMath = inlineMath;\n };\n var setRenderer2 = function() {\n originalRenderer = MathJax.Hub.config.menuSettings.renderer;\n if (originalRenderer !== \"SVG\") {\n return MathJax.Hub.setRenderer(\"SVG\");\n }\n };\n var setRenderer3 = function() {\n originalRenderer = MathJax.config.startup.output;\n if (originalRenderer !== \"svg\") {\n MathJax.config.startup.output = \"svg\";\n }\n };\n var initiateMathJax = function() {\n var randomID = \"math-output-\" + Lib.randstr({}, 64);\n tmpDiv = d3.select(\"body\").append(\"div\").attr({ id: randomID }).style({\n visibility: \"hidden\",\n position: \"absolute\",\n \"font-size\": _config.fontSize + \"px\"\n }).text(cleanEscapesForTex(_texString));\n var tmpNode = tmpDiv.node();\n return MathJaxVersion === 2 ? MathJax.Hub.Typeset(tmpNode) : MathJax.typeset([tmpNode]);\n };\n var finalizeMathJax = function() {\n var sel = tmpDiv.select(\n MathJaxVersion === 2 ? \".MathJax_SVG\" : \".MathJax\"\n );\n var node = !sel.empty() && tmpDiv.select(\"svg\").node();\n if (!node) {\n Lib.log(\"There was an error in the tex syntax.\", _texString);\n _callback();\n } else {\n var nodeBBox = node.getBoundingClientRect();\n var glyphDefs;\n if (MathJaxVersion === 2) {\n glyphDefs = d3.select(\"body\").select(\"#MathJax_SVG_glyphs\");\n } else {\n glyphDefs = sel.select(\"defs\");\n }\n _callback(sel, glyphDefs, nodeBBox);\n }\n tmpDiv.remove();\n };\n var resetRenderer2 = function() {\n if (originalRenderer !== \"SVG\") {\n return MathJax.Hub.setRenderer(originalRenderer);\n }\n };\n var resetRenderer3 = function() {\n if (originalRenderer !== \"svg\") {\n MathJax.config.startup.output = originalRenderer;\n }\n };\n var resetConfig2 = function() {\n if (originalProcessSectionDelay !== void 0) {\n MathJax.Hub.processSectionDelay = originalProcessSectionDelay;\n }\n return MathJax.Hub.Config(originalConfig);\n };\n var resetConfig3 = function() {\n MathJax.config = originalConfig;\n };\n if (MathJaxVersion === 2) {\n MathJax.Hub.Queue(\n setConfig2,\n setRenderer2,\n initiateMathJax,\n finalizeMathJax,\n resetRenderer2,\n resetConfig2\n );\n } else if (MathJaxVersion === 3) {\n setConfig3();\n setRenderer3();\n MathJax.startup.defaultReady();\n MathJax.startup.promise.then(function() {\n initiateMathJax();\n finalizeMathJax();\n resetRenderer3();\n resetConfig3();\n });\n }\n }\n var TAG_STYLES = {\n // would like to use baseline-shift for sub/sup but FF doesn't support it\n // so we need to use dy along with the uber hacky shift-back-to\n // baseline below\n sup: \"font-size:70%\",\n sub: \"font-size:70%\",\n s: \"text-decoration:line-through\",\n u: \"text-decoration:underline\",\n b: \"font-weight:bold\",\n i: \"font-style:italic\",\n a: \"cursor:pointer\",\n span: \"\",\n em: \"font-style:italic;font-weight:bold\"\n };\n var SHIFT_DY = {\n sub: \"0.3em\",\n sup: \"-0.6em\"\n };\n var RESET_DY = {\n sub: \"-0.21em\",\n sup: \"0.42em\"\n };\n var ZERO_WIDTH_SPACE = \"\\u200B\";\n var PROTOCOLS = [\"http:\", \"https:\", \"mailto:\", \"\", void 0, \":\"];\n var NEWLINES = exports.NEWLINES = /(\\r\\n?|\\n)/g;\n var SPLIT_TAGS = /(<[^<>]*>)/;\n var ONE_TAG = /<(\\/?)([^ >]*)(\\s+(.*))?>/i;\n var BR_TAG = //i;\n exports.BR_TAG_ALL = //gi;\n var STYLEMATCH = /(^|[\\s\"'])style\\s*=\\s*(\"([^\"]*);?\"|'([^']*);?')/i;\n var HREFMATCH = /(^|[\\s\"'])href\\s*=\\s*(\"([^\"]*)\"|'([^']*)')/i;\n var TARGETMATCH = /(^|[\\s\"'])target\\s*=\\s*(\"([^\"\\s]*)\"|'([^'\\s]*)')/i;\n var POPUPMATCH = /(^|[\\s\"'])popup\\s*=\\s*(\"([\\w=,]*)\"|'([\\w=,]*)')/i;\n function getQuotedMatch(_str, re) {\n if (!_str) return null;\n var match = _str.match(re);\n var result = match && (match[3] || match[4]);\n return result && convertEntities(result);\n }\n var COLORMATCH = /(^|;)\\s*color:/;\n exports.plainText = function(_str, opts) {\n opts = opts || {};\n var len = opts.len !== void 0 && opts.len !== -1 ? opts.len : Infinity;\n var allowedTags = opts.allowedTags !== void 0 ? opts.allowedTags : [\"br\"];\n var ellipsis = \"...\";\n var eLen = ellipsis.length;\n var oldParts = _str.split(SPLIT_TAGS);\n var newParts = [];\n var prevTag = \"\";\n var l = 0;\n for (var i = 0; i < oldParts.length; i++) {\n var p = oldParts[i];\n var match = p.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n if (tagType) {\n if (allowedTags.indexOf(tagType) !== -1) {\n newParts.push(p);\n prevTag = tagType;\n }\n } else {\n var pLen = p.length;\n if (l + pLen < len) {\n newParts.push(p);\n l += pLen;\n } else if (l < len) {\n var pLen2 = len - l;\n if (prevTag && (prevTag !== \"br\" || pLen2 <= eLen || pLen <= eLen)) {\n newParts.pop();\n }\n if (len > eLen) {\n newParts.push(p.substr(0, pLen2 - eLen) + ellipsis);\n } else {\n newParts.push(p.substr(0, pLen2));\n }\n break;\n }\n prevTag = \"\";\n }\n }\n return newParts.join(\"\");\n };\n var entityToUnicode = {\n mu: \"\\u03BC\",\n amp: \"&\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\xA0\",\n times: \"\\xD7\",\n plusmn: \"\\xB1\",\n deg: \"\\xB0\"\n };\n var ENTITY_MATCH = /&(#\\d+|#x[\\da-fA-F]+|[a-z]+);/g;\n function convertEntities(_str) {\n return _str.replace(ENTITY_MATCH, function(fullMatch, innerMatch) {\n var outChar;\n if (innerMatch.charAt(0) === \"#\") {\n outChar = fromCodePoint(\n innerMatch.charAt(1) === \"x\" ? parseInt(innerMatch.substr(2), 16) : parseInt(innerMatch.substr(1), 10)\n );\n } else outChar = entityToUnicode[innerMatch];\n return outChar || fullMatch;\n });\n }\n exports.convertEntities = convertEntities;\n function fromCodePoint(code) {\n if (code > 1114111) return;\n var stringFromCodePoint = String.fromCodePoint;\n if (stringFromCodePoint) return stringFromCodePoint(code);\n var stringFromCharCode = String.fromCharCode;\n if (code <= 65535) return stringFromCharCode(code);\n return stringFromCharCode(\n (code >> 10) + 55232,\n code % 1024 + 56320\n );\n }\n function buildSVGText(containerNode, str) {\n str = str.replace(NEWLINES, \" \");\n var hasLink = false;\n var nodeStack = [];\n var currentNode;\n var currentLine = -1;\n function newLine() {\n currentLine++;\n var lineNode = document.createElementNS(xmlnsNamespaces.svg, \"tspan\");\n d3.select(lineNode).attr({\n class: \"line\",\n dy: currentLine * LINE_SPACING + \"em\"\n });\n containerNode.appendChild(lineNode);\n currentNode = lineNode;\n var oldNodeStack = nodeStack;\n nodeStack = [{ node: lineNode }];\n if (oldNodeStack.length > 1) {\n for (var i2 = 1; i2 < oldNodeStack.length; i2++) {\n enterNode(oldNodeStack[i2]);\n }\n }\n }\n function enterNode(nodeSpec2) {\n var type = nodeSpec2.type;\n var nodeAttrs = {};\n var nodeType;\n if (type === \"a\") {\n nodeType = \"a\";\n var target = nodeSpec2.target;\n var href2 = nodeSpec2.href;\n var popup = nodeSpec2.popup;\n if (href2) {\n nodeAttrs = {\n \"xlink:xlink:show\": target === \"_blank\" || target.charAt(0) !== \"_\" ? \"new\" : \"replace\",\n target,\n \"xlink:xlink:href\": href2\n };\n if (popup) {\n nodeAttrs.onclick = 'window.open(this.href.baseVal,this.target.baseVal,\"' + popup + '\");return false;';\n }\n }\n } else nodeType = \"tspan\";\n if (nodeSpec2.style) nodeAttrs.style = nodeSpec2.style;\n var newNode = document.createElementNS(xmlnsNamespaces.svg, nodeType);\n if (type === \"sup\" || type === \"sub\") {\n addTextNode(currentNode, ZERO_WIDTH_SPACE);\n currentNode.appendChild(newNode);\n var resetter = document.createElementNS(xmlnsNamespaces.svg, \"tspan\");\n addTextNode(resetter, ZERO_WIDTH_SPACE);\n d3.select(resetter).attr(\"dy\", RESET_DY[type]);\n nodeAttrs.dy = SHIFT_DY[type];\n currentNode.appendChild(newNode);\n currentNode.appendChild(resetter);\n } else {\n currentNode.appendChild(newNode);\n }\n d3.select(newNode).attr(nodeAttrs);\n currentNode = nodeSpec2.node = newNode;\n nodeStack.push(nodeSpec2);\n }\n function addTextNode(node, text) {\n node.appendChild(document.createTextNode(text));\n }\n function exitNode(type) {\n if (nodeStack.length === 1) {\n Lib.log(\"Ignoring unexpected end tag .\", str);\n return;\n }\n var innerNode = nodeStack.pop();\n if (type !== innerNode.type) {\n Lib.log(\"Start tag <\" + innerNode.type + \"> doesnt match end tag <\" + type + \">. Pretending it did match.\", str);\n }\n currentNode = nodeStack[nodeStack.length - 1].node;\n }\n var hasLines = BR_TAG.test(str);\n if (hasLines) newLine();\n else {\n currentNode = containerNode;\n nodeStack = [{ node: containerNode }];\n }\n var parts = str.split(SPLIT_TAGS);\n for (var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n var tagStyle = TAG_STYLES[tagType];\n if (tagType === \"br\") {\n newLine();\n } else if (tagStyle === void 0) {\n addTextNode(currentNode, convertEntities(parti));\n } else {\n if (match[1]) {\n exitNode(tagType);\n } else {\n var extra = match[4];\n var nodeSpec = { type: tagType };\n var css = getQuotedMatch(extra, STYLEMATCH);\n if (css) {\n css = css.replace(COLORMATCH, \"$1 fill:\");\n if (tagStyle) css += \";\" + tagStyle;\n } else if (tagStyle) css = tagStyle;\n if (css) nodeSpec.style = css;\n if (tagType === \"a\") {\n hasLink = true;\n var href = getQuotedMatch(extra, HREFMATCH);\n if (href) {\n var safeHref = sanitizeHref(href);\n if (safeHref) {\n nodeSpec.href = safeHref;\n nodeSpec.target = getQuotedMatch(extra, TARGETMATCH) || \"_blank\";\n nodeSpec.popup = getQuotedMatch(extra, POPUPMATCH);\n }\n }\n }\n enterNode(nodeSpec);\n }\n }\n }\n return hasLink;\n }\n function sanitizeHref(href) {\n var decodedHref = encodeURI(decodeURI(href));\n var dummyAnchor1 = document.createElement(\"a\");\n var dummyAnchor2 = document.createElement(\"a\");\n dummyAnchor1.href = href;\n dummyAnchor2.href = decodedHref;\n var p1 = dummyAnchor1.protocol;\n var p2 = dummyAnchor2.protocol;\n if (PROTOCOLS.indexOf(p1) !== -1 && PROTOCOLS.indexOf(p2) !== -1) {\n return decodedHref;\n } else {\n return \"\";\n }\n }\n exports.sanitizeHTML = function sanitizeHTML(str) {\n str = str.replace(NEWLINES, \" \");\n var rootNode = document.createElement(\"p\");\n var currentNode = rootNode;\n var nodeStack = [];\n var parts = str.split(SPLIT_TAGS);\n for (var i = 0; i < parts.length; i++) {\n var parti = parts[i];\n var match = parti.match(ONE_TAG);\n var tagType = match && match[2].toLowerCase();\n if (tagType in TAG_STYLES) {\n if (match[1]) {\n if (nodeStack.length) {\n currentNode = nodeStack.pop();\n }\n } else {\n var extra = match[4];\n var css = getQuotedMatch(extra, STYLEMATCH);\n var nodeAttrs = css ? { style: css } : {};\n if (tagType === \"a\") {\n var href = getQuotedMatch(extra, HREFMATCH);\n if (href) {\n var safeHref = sanitizeHref(href);\n if (safeHref) {\n nodeAttrs.href = safeHref;\n var target = getQuotedMatch(extra, TARGETMATCH);\n if (target) {\n nodeAttrs.target = target;\n }\n }\n }\n }\n var newNode = document.createElement(tagType);\n currentNode.appendChild(newNode);\n d3.select(newNode).attr(nodeAttrs);\n currentNode = newNode;\n nodeStack.push(newNode);\n }\n } else {\n currentNode.appendChild(\n document.createTextNode(convertEntities(parti))\n );\n }\n }\n var key = \"innerHTML\";\n return rootNode[key];\n };\n exports.lineCount = function lineCount(s) {\n return s.selectAll(\"tspan.line\").size() || 1;\n };\n exports.positionText = function positionText(s, x, y) {\n return s.each(function() {\n var text = d3.select(this);\n function setOrGet(attr, val) {\n if (val === void 0) {\n val = text.attr(attr);\n if (val === null) {\n text.attr(attr, 0);\n val = 0;\n }\n } else text.attr(attr, val);\n return val;\n }\n var thisX = setOrGet(\"x\", x);\n var thisY = setOrGet(\"y\", y);\n if (this.nodeName === \"text\") {\n text.selectAll(\"tspan.line\").attr({ x: thisX, y: thisY });\n }\n });\n };\n function alignHTMLWith(_base, container, options) {\n var alignH = options.horizontalAlign;\n var alignV = options.verticalAlign || \"top\";\n var bRect = _base.node().getBoundingClientRect();\n var cRect = container.node().getBoundingClientRect();\n var thisRect;\n var getTop;\n var getLeft;\n if (alignV === \"bottom\") {\n getTop = function() {\n return bRect.bottom - thisRect.height;\n };\n } else if (alignV === \"middle\") {\n getTop = function() {\n return bRect.top + (bRect.height - thisRect.height) / 2;\n };\n } else {\n getTop = function() {\n return bRect.top;\n };\n }\n if (alignH === \"right\") {\n getLeft = function() {\n return bRect.right - thisRect.width;\n };\n } else if (alignH === \"center\") {\n getLeft = function() {\n return bRect.left + (bRect.width - thisRect.width) / 2;\n };\n } else {\n getLeft = function() {\n return bRect.left;\n };\n }\n return function() {\n thisRect = this.node().getBoundingClientRect();\n var x0 = getLeft() - cRect.left;\n var y0 = getTop() - cRect.top;\n var gd = options.gd || {};\n if (options.gd) {\n gd._fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(gd._fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n }\n this.style({\n top: y0 + \"px\",\n left: x0 + \"px\",\n \"z-index\": 1e3\n });\n return this;\n };\n }\n var onePx = \"1px \";\n exports.makeTextShadow = function(color2) {\n var x = onePx;\n var y = onePx;\n var b = onePx;\n return x + y + b + color2 + \", -\" + x + \"-\" + y + b + color2 + \", \" + x + \"-\" + y + b + color2 + \", -\" + x + y + b + color2;\n };\n exports.makeEditable = function(context, options) {\n var gd = options.gd;\n var _delegate = options.delegate;\n var dispatch = d3.dispatch(\"edit\", \"input\", \"cancel\");\n var handlerElement = _delegate || context;\n context.style({ \"pointer-events\": _delegate ? \"none\" : \"all\" });\n if (context.size() !== 1) throw new Error(\"boo\");\n function handleClick() {\n appendEditable();\n context.style({ opacity: 0 });\n var svgClass = handlerElement.attr(\"class\");\n var mathjaxClass;\n if (svgClass) mathjaxClass = \".\" + svgClass.split(\" \")[0] + \"-math-group\";\n else mathjaxClass = \"[class*=-math-group]\";\n if (mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({ opacity: 0 });\n }\n }\n function selectElementContents(_el) {\n var el = _el.node();\n var range = document.createRange();\n range.selectNodeContents(el);\n var sel = window.getSelection();\n sel.removeAllRanges();\n sel.addRange(range);\n el.focus();\n }\n function appendEditable() {\n var plotDiv = d3.select(gd);\n var container = plotDiv.select(\".svg-container\");\n var div = container.append(\"div\");\n var cStyle = context.node().style;\n var fontSize = parseFloat(cStyle.fontSize || 12);\n var initialText = options.text;\n if (initialText === void 0) initialText = context.attr(\"data-unformatted\");\n div.classed(\"plugin-editable editable\", true).style({\n position: \"absolute\",\n \"font-family\": cStyle.fontFamily || \"Arial\",\n \"font-size\": fontSize,\n color: options.fill || cStyle.fill || \"black\",\n opacity: 1,\n \"background-color\": options.background || \"transparent\",\n outline: \"#ffffff33 1px solid\",\n margin: [-fontSize / 8 + 1, 0, 0, -1].join(\"px \") + \"px\",\n padding: \"0\",\n \"box-sizing\": \"border-box\"\n }).attr({ contenteditable: true }).text(initialText).call(alignHTMLWith(context, container, options)).on(\"blur\", function() {\n gd._editing = false;\n context.text(this.textContent).style({ opacity: 1 });\n var svgClass = d3.select(this).attr(\"class\");\n var mathjaxClass;\n if (svgClass) mathjaxClass = \".\" + svgClass.split(\" \")[0] + \"-math-group\";\n else mathjaxClass = \"[class*=-math-group]\";\n if (mathjaxClass) {\n d3.select(context.node().parentNode).select(mathjaxClass).style({ opacity: 0 });\n }\n var text = this.textContent;\n d3.select(this).transition().duration(0).remove();\n d3.select(document).on(\"mouseup\", null);\n dispatch.edit.call(context, text);\n }).on(\"focus\", function() {\n var editDiv = this;\n gd._editing = true;\n d3.select(document).on(\"mouseup\", function() {\n if (d3.event.target === editDiv) return false;\n if (document.activeElement === div.node()) div.node().blur();\n });\n }).on(\"keyup\", function() {\n if (d3.event.which === 27) {\n gd._editing = false;\n context.style({ opacity: 1 });\n d3.select(this).style({ opacity: 0 }).on(\"blur\", function() {\n return false;\n }).transition().remove();\n dispatch.cancel.call(context, this.textContent);\n } else {\n dispatch.input.call(context, this.textContent);\n d3.select(this).call(alignHTMLWith(context, container, options));\n }\n }).on(\"keydown\", function() {\n if (d3.event.which === 13) this.blur();\n }).call(selectElementContents);\n }\n if (options.immediate) handleClick();\n else handlerElement.on(\"click\", handleClick);\n return d3.rebind(context, dispatch, \"on\");\n };\n }\n });\n\n // src/components/colorscale/helpers.js\n var require_helpers = __commonJS({\n \"src/components/colorscale/helpers.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var isValidScale = require_scales().isValid;\n function hasColorscale(trace, containerStr, colorKey) {\n var container = containerStr ? Lib.nestedProperty(trace, containerStr).get() || {} : trace;\n var color2 = container[colorKey || \"color\"];\n if (color2 && color2._inputArray) color2 = color2._inputArray;\n var isArrayWithOneNumber = false;\n if (Lib.isArrayOrTypedArray(color2)) {\n for (var i = 0; i < color2.length; i++) {\n if (isNumeric(color2[i])) {\n isArrayWithOneNumber = true;\n break;\n }\n }\n }\n return Lib.isPlainObject(container) && (isArrayWithOneNumber || container.showscale === true || isNumeric(container.cmin) && isNumeric(container.cmax) || isValidScale(container.colorscale) || Lib.isPlainObject(container.colorbar));\n }\n var constantAttrs = [\"showscale\", \"autocolorscale\", \"colorscale\", \"reversescale\", \"colorbar\"];\n var letterAttrs = [\"min\", \"max\", \"mid\", \"auto\"];\n function extractOpts(cont) {\n var colorAx = cont._colorAx;\n var cont2 = colorAx ? colorAx : cont;\n var out = {};\n var cLetter;\n var i, k;\n for (i = 0; i < constantAttrs.length; i++) {\n k = constantAttrs[i];\n out[k] = cont2[k];\n }\n if (colorAx) {\n cLetter = \"c\";\n for (i = 0; i < letterAttrs.length; i++) {\n k = letterAttrs[i];\n out[k] = cont2[\"c\" + k];\n }\n } else {\n var k2;\n for (i = 0; i < letterAttrs.length; i++) {\n k = letterAttrs[i];\n k2 = \"c\" + k;\n if (k2 in cont2) {\n out[k] = cont2[k2];\n continue;\n }\n k2 = \"z\" + k;\n if (k2 in cont2) {\n out[k] = cont2[k2];\n }\n }\n cLetter = k2.charAt(0);\n }\n out._sync = function(k3, v) {\n var k22 = letterAttrs.indexOf(k3) !== -1 ? cLetter + k3 : k3;\n cont2[k22] = cont2[\"_\" + k22] = v;\n };\n return out;\n }\n function extractScale(cont) {\n var cOpts = extractOpts(cont);\n var cmin = cOpts.min;\n var cmax = cOpts.max;\n var scl = cOpts.reversescale ? flipScale(cOpts.colorscale) : cOpts.colorscale;\n var N = scl.length;\n var domain = new Array(N);\n var range = new Array(N);\n for (var i = 0; i < N; i++) {\n var si = scl[i];\n domain[i] = cmin + si[0] * (cmax - cmin);\n range[i] = si[1];\n }\n return { domain, range };\n }\n function flipScale(scl) {\n var N = scl.length;\n var sclNew = new Array(N);\n for (var i = N - 1, j = 0; i >= 0; i--, j++) {\n var si = scl[i];\n sclNew[j] = [1 - si[0], si[1]];\n }\n return sclNew;\n }\n function makeColorScaleFunc(specs, opts) {\n opts = opts || {};\n var domain = specs.domain;\n var range = specs.range;\n var N = range.length;\n var _range = new Array(N);\n for (var i = 0; i < N; i++) {\n var rgba3 = tinycolor(range[i]).toRgb();\n _range[i] = [rgba3.r, rgba3.g, rgba3.b, rgba3.a];\n }\n var _sclFunc = d3.scale.linear().domain(domain).range(_range).clamp(true);\n var noNumericCheck = opts.noNumericCheck;\n var returnArray = opts.returnArray;\n var sclFunc;\n if (noNumericCheck && returnArray) {\n sclFunc = _sclFunc;\n } else if (noNumericCheck) {\n sclFunc = function(v) {\n return colorArray2rbga(_sclFunc(v));\n };\n } else if (returnArray) {\n sclFunc = function(v) {\n if (isNumeric(v)) return _sclFunc(v);\n else if (tinycolor(v).isValid()) return v;\n else return Color2.defaultLine;\n };\n } else {\n sclFunc = function(v) {\n if (isNumeric(v)) return colorArray2rbga(_sclFunc(v));\n else if (tinycolor(v).isValid()) return v;\n else return Color2.defaultLine;\n };\n }\n sclFunc.domain = _sclFunc.domain;\n sclFunc.range = function() {\n return range;\n };\n return sclFunc;\n }\n function makeColorScaleFuncFromTrace(trace, opts) {\n return makeColorScaleFunc(extractScale(trace), opts);\n }\n function colorArray2rbga(colorArray) {\n var colorObj = {\n r: colorArray[0],\n g: colorArray[1],\n b: colorArray[2],\n a: colorArray[3]\n };\n return tinycolor(colorObj).toRgbString();\n }\n module.exports = {\n hasColorscale,\n extractOpts,\n extractScale,\n flipScale,\n makeColorScaleFunc,\n makeColorScaleFuncFromTrace\n };\n }\n });\n\n // src/plots/cartesian/axis_format_attributes.js\n var require_axis_format_attributes = __commonJS({\n \"src/plots/cartesian/axis_format_attributes.js\"(exports, module) {\n \"use strict\";\n var docs = require_docs();\n var FORMAT_LINK = docs.FORMAT_LINK;\n var DATE_FORMAT_LINK = docs.DATE_FORMAT_LINK;\n function axisHoverFormat(x, noDates) {\n return {\n valType: \"string\",\n dflt: \"\",\n editType: \"none\",\n description: (noDates ? descriptionOnlyNumbers : descriptionWithDates)(\"hover text\", x) + [\n \"By default the values are formatted using \" + (noDates ? \"generic number format\" : \"`\" + x + \"axis.hoverformat`\") + \".\"\n ].join(\" \")\n };\n }\n function descriptionOnlyNumbers(label, x) {\n return [\n \"Sets the \" + label + \" formatting rule\" + (x ? \"for `\" + x + \"` \" : \"\"),\n \"using d3 formatting mini-languages\",\n \"which are very similar to those in Python. For numbers, see: \" + FORMAT_LINK + \".\"\n ].join(\" \");\n }\n function descriptionWithDates(label, x) {\n return descriptionOnlyNumbers(label, x) + [\n \" And for dates see: \" + DATE_FORMAT_LINK + \".\",\n \"We add two items to d3's date formatter:\",\n \"*%h* for half of the year as a decimal number as well as\",\n \"*%{n}f* for fractional seconds\",\n \"with n digits. For example, *2016-10-13 09:15:23.456* with tickformat\",\n \"*%H~%M~%S.%2f* would display *09~15~23.46*\"\n ].join(\" \");\n }\n module.exports = {\n axisHoverFormat,\n descriptionOnlyNumbers,\n descriptionWithDates\n };\n }\n });\n\n // src/plots/cartesian/layout_attributes.js\n var require_layout_attributes4 = __commonJS({\n \"src/plots/cartesian/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var templatedArray = require_plot_template().templatedArray;\n var descriptionWithDates = require_axis_format_attributes().descriptionWithDates;\n var ONEDAY = require_numerical().ONEDAY;\n var constants = require_constants2();\n var HOUR = constants.HOUR_PATTERN;\n var DAY_OF_WEEK = constants.WEEKDAY_PATTERN;\n var minorTickmode = {\n valType: \"enumerated\",\n values: [\"auto\", \"linear\", \"array\"],\n editType: \"ticks\",\n impliedEdits: { tick0: void 0, dtick: void 0 }\n };\n var tickmode = extendFlat({}, minorTickmode, {\n values: minorTickmode.values.slice().concat([\"sync\"])\n });\n function makeNticks(minor) {\n return {\n valType: \"integer\",\n min: 0,\n dflt: minor ? 5 : 0,\n editType: \"ticks\"\n };\n }\n var tick0 = {\n valType: \"any\",\n editType: \"ticks\",\n impliedEdits: { tickmode: \"linear\" }\n };\n var dtick = {\n valType: \"any\",\n editType: \"ticks\",\n impliedEdits: { tickmode: \"linear\" }\n };\n var tickvals = {\n valType: \"data_array\",\n editType: \"ticks\"\n };\n var ticks = {\n valType: \"enumerated\",\n values: [\"outside\", \"inside\", \"\"],\n editType: \"ticks\"\n };\n function makeTicklen(minor) {\n var obj = {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n };\n if (!minor) obj.dflt = 5;\n return obj;\n }\n function makeTickwidth(minor) {\n var obj = {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n };\n if (!minor) obj.dflt = 1;\n return obj;\n }\n var tickcolor = {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n };\n var gridcolor = {\n valType: \"color\",\n dflt: colorAttrs.lightLine,\n editType: \"ticks\"\n };\n function makeGridwidth(minor) {\n var obj = {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n };\n if (!minor) obj.dflt = 1;\n return obj;\n }\n var griddash = extendFlat({}, dash, { editType: \"ticks\" });\n var showgrid = {\n valType: \"boolean\",\n editType: \"ticks\"\n };\n module.exports = {\n visible: {\n valType: \"boolean\",\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n },\n title: {\n text: {\n valType: \"string\",\n editType: \"ticks\"\n },\n font: fontAttrs({\n editType: \"ticks\"\n }),\n standoff: {\n valType: \"number\",\n min: 0,\n editType: \"ticks\"\n },\n editType: \"ticks\"\n },\n type: {\n valType: \"enumerated\",\n // '-' means we haven't yet run autotype or couldn't find any data\n // it gets turned into linear in gd._fullLayout but not copied back\n // to gd.data like the others are.\n values: [\"-\", \"linear\", \"log\", \"date\", \"category\", \"multicategory\"],\n dflt: \"-\",\n editType: \"calc\",\n // we forget when an axis has been autotyped, just writing the auto\n // value back to the input - so it doesn't make sense to template this.\n // Note: we do NOT prohibit this in `coerce`, so if someone enters a\n // type in the template explicitly it will be honored as the default.\n _noTemplating: true\n },\n autotypenumbers: {\n valType: \"enumerated\",\n values: [\"convert types\", \"strict\"],\n dflt: \"convert types\",\n editType: \"calc\"\n },\n autorange: {\n valType: \"enumerated\",\n values: [true, false, \"reversed\", \"min reversed\", \"max reversed\", \"min\", \"max\"],\n dflt: true,\n editType: \"axrange\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n autorangeoptions: {\n minallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n maxallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n clipmin: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n clipmax: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n include: {\n valType: \"any\",\n arrayOk: true,\n editType: \"plot\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n editType: \"plot\"\n },\n rangemode: {\n valType: \"enumerated\",\n values: [\"normal\", \"tozero\", \"nonnegative\"],\n dflt: \"normal\",\n editType: \"plot\"\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"axrange\", impliedEdits: { \"^autorange\": false }, anim: true },\n { valType: \"any\", editType: \"axrange\", impliedEdits: { \"^autorange\": false }, anim: true }\n ],\n editType: \"axrange\",\n impliedEdits: { autorange: false },\n anim: true\n },\n minallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"^autorange\": false }\n },\n maxallowed: {\n valType: \"any\",\n editType: \"plot\",\n impliedEdits: { \"^autorange\": false }\n },\n fixedrange: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n insiderange: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"plot\" },\n { valType: \"any\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n // scaleanchor: not used directly, just put here for reference\n // values are any opposite-letter axis id, or `false`.\n scaleanchor: {\n valType: \"enumerated\",\n values: [\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString(),\n false\n ],\n editType: \"plot\"\n },\n scaleratio: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n constrain: {\n valType: \"enumerated\",\n values: [\"range\", \"domain\"],\n editType: \"plot\"\n },\n // constraintoward: not used directly, just put here for reference\n constraintoward: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\", \"top\", \"middle\", \"bottom\"],\n editType: \"plot\"\n },\n matches: {\n valType: \"enumerated\",\n values: [\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString()\n ],\n editType: \"calc\"\n },\n rangebreaks: templatedArray(\"rangebreak\", {\n enabled: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n bounds: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"calc\" },\n { valType: \"any\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n pattern: {\n valType: \"enumerated\",\n values: [DAY_OF_WEEK, HOUR, \"\"],\n editType: \"calc\"\n },\n values: {\n valType: \"info_array\",\n freeLength: true,\n editType: \"calc\",\n items: {\n valType: \"any\",\n editType: \"calc\"\n }\n },\n dvalue: {\n // TODO could become 'any' to add support for 'months', 'years'\n valType: \"number\",\n editType: \"calc\",\n min: 0,\n dflt: ONEDAY\n },\n /*\n gap: {\n valType: 'number',\n min: 0,\n dflt: 0, // for *date* axes, maybe something else for *linear*\n editType: 'calc',\n },\n gapmode: {\n valType: 'enumerated',\n values: ['pixels', 'fraction'],\n dflt: 'pixels',\n editType: 'calc',\n },\n */\n // To complete https://github.com/plotly/plotly.js/issues/4210\n // we additionally need `gap` and make this work on *linear*, and\n // possibly all other cartesian axis types. We possibly would also need\n // some style attributes controlling the zig-zag on the corresponding\n // axis.\n editType: \"calc\"\n }),\n // ticks\n tickmode,\n nticks: makeNticks(),\n tick0,\n dtick,\n ticklabelstep: {\n valType: \"integer\",\n min: 1,\n dflt: 1,\n editType: \"ticks\"\n },\n tickvals,\n ticktext: {\n valType: \"data_array\",\n editType: \"ticks\"\n },\n ticks,\n tickson: {\n valType: \"enumerated\",\n values: [\"labels\", \"boundaries\"],\n dflt: \"labels\",\n editType: \"ticks\"\n },\n ticklabelmode: {\n valType: \"enumerated\",\n values: [\"instant\", \"period\"],\n dflt: \"instant\",\n editType: \"ticks\"\n },\n // ticklabelposition: not used directly, as values depend on direction (similar to side)\n // left/right options are for x axes, and top/bottom options are for y axes\n ticklabelposition: {\n valType: \"enumerated\",\n values: [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\",\n \"outside bottom\",\n \"inside bottom\"\n ],\n dflt: \"outside\",\n editType: \"calc\"\n },\n ticklabeloverflow: {\n valType: \"enumerated\",\n values: [\n \"allow\",\n \"hide past div\",\n \"hide past domain\"\n ],\n editType: \"calc\"\n },\n ticklabelshift: {\n valType: \"integer\",\n dflt: 0,\n editType: \"ticks\"\n },\n ticklabelstandoff: {\n valType: \"integer\",\n dflt: 0,\n editType: \"ticks\"\n },\n ticklabelindex: {\n // in the future maybe add `extras: ['all', 'minor']` to allow showing labels for all ticks\n // or for all minor ticks.\n valType: \"integer\",\n arrayOk: true,\n editType: \"calc\"\n },\n mirror: {\n valType: \"enumerated\",\n values: [true, \"ticks\", false, \"all\", \"allticks\"],\n dflt: false,\n editType: \"ticks+layoutstyle\"\n },\n ticklen: makeTicklen(),\n tickwidth: makeTickwidth(),\n tickcolor,\n showticklabels: {\n valType: \"boolean\",\n dflt: true,\n editType: \"ticks\"\n },\n labelalias: {\n valType: \"any\",\n dflt: false,\n editType: \"ticks\"\n },\n automargin: {\n valType: \"flaglist\",\n flags: [\"height\", \"width\", \"left\", \"right\", \"top\", \"bottom\"],\n extras: [true, false],\n dflt: false,\n editType: \"ticks\"\n },\n showspikes: {\n valType: \"boolean\",\n dflt: false,\n editType: \"modebar\"\n },\n spikecolor: {\n valType: \"color\",\n dflt: null,\n editType: \"none\"\n },\n spikethickness: {\n valType: \"number\",\n dflt: 3,\n editType: \"none\"\n },\n spikedash: extendFlat({}, dash, { dflt: \"dash\", editType: \"none\" }),\n spikemode: {\n valType: \"flaglist\",\n flags: [\"toaxis\", \"across\", \"marker\"],\n dflt: \"toaxis\",\n editType: \"none\"\n },\n spikesnap: {\n valType: \"enumerated\",\n values: [\"data\", \"cursor\", \"hovered data\"],\n dflt: \"hovered data\",\n editType: \"none\"\n },\n tickfont: fontAttrs({\n editType: \"ticks\"\n }),\n tickangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"ticks\"\n },\n autotickangles: {\n valType: \"info_array\",\n freeLength: true,\n items: {\n valType: \"angle\"\n },\n dflt: [0, 30, 90],\n editType: \"ticks\"\n },\n tickprefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\"\n },\n showtickprefix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"ticks\"\n },\n ticksuffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\"\n },\n showticksuffix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"ticks\"\n },\n showexponent: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"ticks\"\n },\n exponentformat: {\n valType: \"enumerated\",\n values: [\"none\", \"e\", \"E\", \"power\", \"SI\", \"B\"],\n dflt: \"B\",\n editType: \"ticks\"\n },\n minexponent: {\n valType: \"number\",\n dflt: 3,\n min: 0,\n editType: \"ticks\"\n },\n separatethousands: {\n valType: \"boolean\",\n dflt: false,\n editType: \"ticks\"\n },\n tickformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\",\n description: descriptionWithDates(\"tick label\")\n },\n tickformatstops: templatedArray(\"tickformatstop\", {\n enabled: {\n valType: \"boolean\",\n dflt: true,\n editType: \"ticks\"\n },\n dtickrange: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"ticks\" },\n { valType: \"any\", editType: \"ticks\" }\n ],\n editType: \"ticks\"\n },\n value: {\n valType: \"string\",\n dflt: \"\",\n editType: \"ticks\"\n },\n editType: \"ticks\"\n }),\n hoverformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"none\",\n description: descriptionWithDates(\"hover text\")\n },\n // lines and grids\n showline: {\n valType: \"boolean\",\n dflt: false,\n editType: \"ticks+layoutstyle\"\n },\n linecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"layoutstyle\"\n },\n linewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"ticks+layoutstyle\"\n },\n showgrid,\n gridcolor,\n gridwidth: makeGridwidth(),\n griddash,\n zeroline: {\n valType: \"boolean\",\n editType: \"ticks\"\n },\n zerolinecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n },\n zerolinewidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"ticks\"\n },\n showdividers: {\n valType: \"boolean\",\n dflt: true,\n editType: \"ticks\"\n },\n dividercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"ticks\"\n },\n dividerwidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"ticks\"\n },\n // TODO dividerlen: that would override \"to label base\" length?\n // positioning attributes\n // anchor: not used directly, just put here for reference\n // values are any opposite-letter axis id\n anchor: {\n valType: \"enumerated\",\n values: [\n \"free\",\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString()\n ],\n editType: \"plot\"\n },\n // side: not used directly, as values depend on direction\n // values are top, bottom for x axes, and left, right for y\n side: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\", \"left\", \"right\"],\n editType: \"plot\"\n },\n // overlaying: not used directly, just put here for reference\n // values are false and any other same-letter axis id that's not\n // itself overlaying anything\n overlaying: {\n valType: \"enumerated\",\n values: [\n \"free\",\n constants.idRegex.x.toString(),\n constants.idRegex.y.toString()\n ],\n editType: \"plot\"\n },\n minor: {\n tickmode: minorTickmode,\n nticks: makeNticks(\"minor\"),\n tick0,\n dtick,\n tickvals,\n ticks,\n ticklen: makeTicklen(\"minor\"),\n tickwidth: makeTickwidth(\"minor\"),\n tickcolor,\n gridcolor,\n gridwidth: makeGridwidth(\"minor\"),\n griddash,\n showgrid,\n editType: \"ticks\"\n },\n layer: {\n valType: \"enumerated\",\n values: [\"above traces\", \"below traces\"],\n dflt: \"above traces\",\n editType: \"plot\"\n },\n domain: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", min: 0, max: 1, editType: \"plot\" },\n { valType: \"number\", min: 0, max: 1, editType: \"plot\" }\n ],\n dflt: [0, 1],\n editType: \"plot\"\n },\n position: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"plot\"\n },\n autoshift: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n shift: {\n valType: \"number\",\n editType: \"plot\"\n },\n categoryorder: {\n valType: \"enumerated\",\n values: [\n \"trace\",\n \"category ascending\",\n \"category descending\",\n \"array\",\n \"total ascending\",\n \"total descending\",\n \"min ascending\",\n \"min descending\",\n \"max ascending\",\n \"max descending\",\n \"sum ascending\",\n \"sum descending\",\n \"mean ascending\",\n \"mean descending\",\n \"geometric mean ascending\",\n \"geometric mean descending\",\n \"median ascending\",\n \"median descending\"\n ],\n dflt: \"trace\",\n editType: \"calc\"\n },\n categoryarray: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/colorbar/attributes.js\n var require_attributes7 = __commonJS({\n \"src/components/colorbar/attributes.js\"(exports, module) {\n \"use strict\";\n var axesAttrs = require_layout_attributes4();\n var fontAttrs = require_font_attributes();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n module.exports = overrideAll({\n orientation: {\n valType: \"enumerated\",\n values: [\"h\", \"v\"],\n dflt: \"v\"\n },\n thicknessmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"pixels\"\n },\n thickness: {\n valType: \"number\",\n min: 0,\n dflt: 30\n },\n lenmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"fraction\"\n },\n len: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n x: {\n valType: \"number\"\n },\n xref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"]\n },\n xpad: {\n valType: \"number\",\n min: 0,\n dflt: 10\n },\n y: {\n valType: \"number\"\n },\n yref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"]\n },\n ypad: {\n valType: \"number\",\n min: 0,\n dflt: 10\n },\n // a possible line around the bar itself\n outlinecolor: axesAttrs.linecolor,\n outlinewidth: axesAttrs.linewidth,\n // Should outlinewidth have {dflt: 0} ?\n // another possible line outside the padding and tick labels\n bordercolor: axesAttrs.linecolor,\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 0\n },\n bgcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\"\n },\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, { dflt: \"\" }),\n ticklabeloverflow: extendFlat({}, axesAttrs.ticklabeloverflow, {}),\n // ticklabelposition: not used directly, as values depend on orientation\n // left/right options are for x axes, and top/bottom options are for y axes\n ticklabelposition: {\n valType: \"enumerated\",\n values: [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\",\n \"outside bottom\",\n \"inside bottom\"\n ],\n dflt: \"outside\"\n },\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n tickfont: fontAttrs({}),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n showexponent: axesAttrs.showexponent,\n title: {\n text: {\n valType: \"string\"\n },\n font: fontAttrs({}),\n side: {\n valType: \"enumerated\",\n values: [\"right\", \"top\", \"bottom\"]\n }\n }\n }, \"colorbars\", \"from-root\");\n }\n });\n\n // src/components/colorscale/attributes.js\n var require_attributes8 = __commonJS({\n \"src/components/colorscale/attributes.js\"(exports, module) {\n \"use strict\";\n var colorbarAttrs = require_attributes7();\n var counterRegex = require_regex().counter;\n var sortObjectKeys = require_sort_object_keys();\n var palettes = require_scales().scales;\n var paletteStr = sortObjectKeys(palettes);\n function code(s) {\n return \"`\" + s + \"`\";\n }\n module.exports = function colorScaleAttrs(context, opts) {\n context = context || \"\";\n opts = opts || {};\n var cLetter = opts.cLetter || \"c\";\n var onlyIfNumerical = \"onlyIfNumerical\" in opts ? opts.onlyIfNumerical : Boolean(context);\n var noScale = \"noScale\" in opts ? opts.noScale : context === \"marker.line\";\n var showScaleDflt = \"showScaleDflt\" in opts ? opts.showScaleDflt : cLetter === \"z\";\n var colorscaleDflt = typeof opts.colorscaleDflt === \"string\" ? palettes[opts.colorscaleDflt] : null;\n var editTypeOverride = opts.editTypeOverride || \"\";\n var contextHead = context ? context + \".\" : \"\";\n var colorAttr, colorAttrFull;\n if (\"colorAttr\" in opts) {\n colorAttr = opts.colorAttr;\n colorAttrFull = opts.colorAttr;\n } else {\n colorAttr = { z: \"z\", c: \"color\" }[cLetter];\n colorAttrFull = \"in \" + code(contextHead + colorAttr);\n }\n var effectDesc = onlyIfNumerical ? \" Has an effect only if \" + colorAttrFull + \" is set to a numerical array.\" : \"\";\n var auto = cLetter + \"auto\";\n var min = cLetter + \"min\";\n var max = cLetter + \"max\";\n var mid = cLetter + \"mid\";\n var autoFull = code(contextHead + auto);\n var minFull = code(contextHead + min);\n var maxFull = code(contextHead + max);\n var minmaxFull = minFull + \" and \" + maxFull;\n var autoImpliedEdits = {};\n autoImpliedEdits[min] = autoImpliedEdits[max] = void 0;\n var minmaxImpliedEdits = {};\n minmaxImpliedEdits[auto] = false;\n var attrs = {};\n if (colorAttr === \"color\") {\n attrs.color = {\n valType: \"color\",\n arrayOk: true,\n editType: editTypeOverride || \"style\"\n };\n if (opts.anim) {\n attrs.color.anim = true;\n }\n }\n attrs[auto] = {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\",\n impliedEdits: autoImpliedEdits\n };\n attrs[min] = {\n valType: \"number\",\n dflt: null,\n editType: editTypeOverride || \"plot\",\n impliedEdits: minmaxImpliedEdits\n };\n attrs[max] = {\n valType: \"number\",\n dflt: null,\n editType: editTypeOverride || \"plot\",\n impliedEdits: minmaxImpliedEdits\n };\n attrs[mid] = {\n valType: \"number\",\n dflt: null,\n editType: \"calc\",\n impliedEdits: autoImpliedEdits\n };\n attrs.colorscale = {\n valType: \"colorscale\",\n editType: \"calc\",\n dflt: colorscaleDflt,\n impliedEdits: { autocolorscale: false }\n };\n attrs.autocolorscale = {\n valType: \"boolean\",\n // gets overrode in 'heatmap' & 'surface' for backwards comp.\n dflt: opts.autoColorDflt === false ? false : true,\n editType: \"calc\",\n impliedEdits: { colorscale: void 0 }\n };\n attrs.reversescale = {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n };\n if (!noScale) {\n attrs.showscale = {\n valType: \"boolean\",\n dflt: showScaleDflt,\n editType: \"calc\"\n };\n attrs.colorbar = colorbarAttrs;\n }\n if (!opts.noColorAxis) {\n attrs.coloraxis = {\n valType: \"subplotid\",\n regex: counterRegex(\"coloraxis\"),\n dflt: null,\n editType: \"calc\"\n };\n }\n return attrs;\n };\n }\n });\n\n // src/components/colorscale/layout_attributes.js\n var require_layout_attributes5 = __commonJS({\n \"src/components/colorscale/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var colorScaleAttrs = require_attributes8();\n var scales = require_scales().scales;\n module.exports = {\n editType: \"calc\",\n colorscale: {\n editType: \"calc\",\n sequential: {\n valType: \"colorscale\",\n dflt: scales.Reds,\n editType: \"calc\"\n },\n sequentialminus: {\n valType: \"colorscale\",\n dflt: scales.Blues,\n editType: \"calc\"\n },\n diverging: {\n valType: \"colorscale\",\n dflt: scales.RdBu,\n editType: \"calc\"\n }\n },\n coloraxis: extendFlat({\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n editType: \"calc\"\n }, colorScaleAttrs(\"\", {\n colorAttr: \"corresponding trace color array(s)\",\n noColorAxis: true,\n showScaleDflt: true\n }))\n };\n }\n });\n\n // src/components/colorbar/has_colorbar.js\n var require_has_colorbar = __commonJS({\n \"src/components/colorbar/has_colorbar.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function hasColorbar(container) {\n return Lib.isPlainObject(container.colorbar);\n };\n }\n });\n\n // src/plots/cartesian/clean_ticks.js\n var require_clean_ticks = __commonJS({\n \"src/plots/cartesian/clean_ticks.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var constants = require_numerical();\n var ONEDAY = constants.ONEDAY;\n var ONEWEEK = constants.ONEWEEK;\n exports.dtick = function(dtick, axType) {\n var isLog = axType === \"log\";\n var isDate = axType === \"date\";\n var isCat = axType === \"category\";\n var dtickDflt = isDate ? ONEDAY : 1;\n if (!dtick) return dtickDflt;\n if (isNumeric(dtick)) {\n dtick = Number(dtick);\n if (dtick <= 0) return dtickDflt;\n if (isCat) {\n return Math.max(1, Math.round(dtick));\n }\n if (isDate) {\n return Math.max(0.1, dtick);\n }\n return dtick;\n }\n if (typeof dtick !== \"string\" || !(isDate || isLog)) {\n return dtickDflt;\n }\n var prefix = dtick.charAt(0);\n var dtickNum = dtick.substr(1);\n dtickNum = isNumeric(dtickNum) ? Number(dtickNum) : 0;\n if (dtickNum <= 0 || !// \"M\" gives ticks every (integer) n months\n (isDate && prefix === \"M\" && dtickNum === Math.round(dtickNum) || // \"L\" gives ticks linearly spaced in data (not in position) every (float) f\n isLog && prefix === \"L\" || // \"D1\" gives powers of 10 with all small digits between, \"D2\" gives only 2 and 5\n isLog && prefix === \"D\" && (dtickNum === 1 || dtickNum === 2))) {\n return dtickDflt;\n }\n return dtick;\n };\n exports.tick0 = function(tick0, axType, calendar, dtick) {\n if (axType === \"date\") {\n return Lib.cleanDate(\n tick0,\n Lib.dateTick0(calendar, dtick % ONEWEEK === 0 ? 1 : 0)\n );\n }\n if (dtick === \"D1\" || dtick === \"D2\") {\n return void 0;\n }\n return isNumeric(tick0) ? Number(tick0) : 0;\n };\n }\n });\n\n // src/plots/cartesian/tick_value_defaults.js\n var require_tick_value_defaults = __commonJS({\n \"src/plots/cartesian/tick_value_defaults.js\"(exports, module) {\n \"use strict\";\n var cleanTicks = require_clean_ticks();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var isTypedArraySpec = require_array().isTypedArraySpec;\n var decodeTypedArraySpec = require_array().decodeTypedArraySpec;\n module.exports = function handleTickValueDefaults(containerIn, containerOut, coerce, axType, opts) {\n if (!opts) opts = {};\n var isMinor = opts.isMinor;\n var cIn = isMinor ? containerIn.minor || {} : containerIn;\n var cOut = isMinor ? containerOut.minor : containerOut;\n var prefix = isMinor ? \"minor.\" : \"\";\n function readInput(attr) {\n var v = cIn[attr];\n if (isTypedArraySpec(v)) v = decodeTypedArraySpec(v);\n return v !== void 0 ? v : (cOut._template || {})[attr];\n }\n var _tick0 = readInput(\"tick0\");\n var _dtick = readInput(\"dtick\");\n var _tickvals = readInput(\"tickvals\");\n var tickmodeDefault = isArrayOrTypedArray(_tickvals) ? \"array\" : _dtick ? \"linear\" : \"auto\";\n var tickmode = coerce(prefix + \"tickmode\", tickmodeDefault);\n if (tickmode === \"auto\" || tickmode === \"sync\") {\n coerce(prefix + \"nticks\");\n } else if (tickmode === \"linear\") {\n var dtick = cOut.dtick = cleanTicks.dtick(\n _dtick,\n axType\n );\n cOut.tick0 = cleanTicks.tick0(\n _tick0,\n axType,\n containerOut.calendar,\n dtick\n );\n } else if (axType !== \"multicategory\") {\n var tickvals = coerce(prefix + \"tickvals\");\n if (tickvals === void 0) cOut.tickmode = \"auto\";\n else if (!isMinor) coerce(\"ticktext\");\n }\n };\n }\n });\n\n // src/plots/cartesian/tick_mark_defaults.js\n var require_tick_mark_defaults = __commonJS({\n \"src/plots/cartesian/tick_mark_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes4();\n module.exports = function handleTickMarkDefaults(containerIn, containerOut, coerce, options) {\n var isMinor = options.isMinor;\n var cIn = isMinor ? containerIn.minor || {} : containerIn;\n var cOut = isMinor ? containerOut.minor : containerOut;\n var lAttr = isMinor ? layoutAttributes.minor : layoutAttributes;\n var prefix = isMinor ? \"minor.\" : \"\";\n var tickLen = Lib.coerce2(cIn, cOut, lAttr, \"ticklen\", isMinor ? (containerOut.ticklen || 5) * 0.6 : void 0);\n var tickWidth = Lib.coerce2(cIn, cOut, lAttr, \"tickwidth\", isMinor ? containerOut.tickwidth || 1 : void 0);\n var tickColor = Lib.coerce2(cIn, cOut, lAttr, \"tickcolor\", (isMinor ? containerOut.tickcolor : void 0) || cOut.color);\n var showTicks = coerce(prefix + \"ticks\", !isMinor && options.outerTicks || tickLen || tickWidth || tickColor ? \"outside\" : \"\");\n if (!showTicks) {\n delete cOut.ticklen;\n delete cOut.tickwidth;\n delete cOut.tickcolor;\n }\n };\n }\n });\n\n // src/plots/cartesian/show_dflt.js\n var require_show_dflt = __commonJS({\n \"src/plots/cartesian/show_dflt.js\"(exports, module) {\n \"use strict\";\n module.exports = function getShowAttrDflt(containerIn) {\n var showAttrsAll = [\"showexponent\", \"showtickprefix\", \"showticksuffix\"];\n var showAttrs = showAttrsAll.filter(function(a) {\n return containerIn[a] !== void 0;\n });\n var sameVal = function(a) {\n return containerIn[a] === containerIn[showAttrs[0]];\n };\n if (showAttrs.every(sameVal) || showAttrs.length === 1) {\n return containerIn[showAttrs[0]];\n }\n };\n }\n });\n\n // src/plots/array_container_defaults.js\n var require_array_container_defaults = __commonJS({\n \"src/plots/array_container_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n module.exports = function handleArrayContainerDefaults(parentObjIn, parentObjOut, opts) {\n var name2 = opts.name;\n var inclusionAttr = opts.inclusionAttr || \"visible\";\n var previousContOut = parentObjOut[name2];\n var contIn = Lib.isArrayOrTypedArray(parentObjIn[name2]) ? parentObjIn[name2] : [];\n var contOut = parentObjOut[name2] = [];\n var templater = Template.arrayTemplater(parentObjOut, name2, inclusionAttr);\n var i, itemOut;\n for (i = 0; i < contIn.length; i++) {\n var itemIn = contIn[i];\n if (!Lib.isPlainObject(itemIn)) {\n itemOut = templater.newItem({});\n itemOut[inclusionAttr] = false;\n } else {\n itemOut = templater.newItem(itemIn);\n }\n itemOut._index = i;\n if (itemOut[inclusionAttr] !== false) {\n opts.handleItemDefaults(itemIn, itemOut, parentObjOut, opts);\n }\n contOut.push(itemOut);\n }\n var defaultItems = templater.defaultItems();\n for (i = 0; i < defaultItems.length; i++) {\n itemOut = defaultItems[i];\n itemOut._index = contOut.length;\n opts.handleItemDefaults({}, itemOut, parentObjOut, opts, {});\n contOut.push(itemOut);\n }\n if (Lib.isArrayOrTypedArray(previousContOut)) {\n var len = Math.min(previousContOut.length, contOut.length);\n for (i = 0; i < len; i++) {\n Lib.relinkPrivateKeys(contOut[i], previousContOut[i]);\n }\n }\n return contOut;\n };\n }\n });\n\n // src/plots/cartesian/tick_label_defaults.js\n var require_tick_label_defaults = __commonJS({\n \"src/plots/cartesian/tick_label_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var contrast = require_color().contrast;\n var layoutAttributes = require_layout_attributes4();\n var getShowAttrDflt = require_show_dflt();\n var handleArrayContainerDefaults = require_array_container_defaults();\n module.exports = function handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options) {\n if (!options) options = {};\n var labelalias = coerce(\"labelalias\");\n if (!Lib.isPlainObject(labelalias)) delete containerOut.labelalias;\n var showAttrDflt = getShowAttrDflt(containerIn);\n var showTickLabels = coerce(\"showticklabels\");\n if (showTickLabels) {\n if (!options.noTicklabelshift) {\n coerce(\"ticklabelshift\");\n }\n if (!options.noTicklabelstandoff) {\n coerce(\"ticklabelstandoff\");\n }\n var font = options.font || {};\n var contColor = containerOut.color;\n var position = containerOut.ticklabelposition || \"\";\n var dfltFontColor = position.indexOf(\"inside\") !== -1 ? contrast(options.bgColor) : (\n // as with title.font.color, inherit axis.color only if one was\n // explicitly provided\n contColor && contColor !== layoutAttributes.color.dflt ? contColor : font.color\n );\n Lib.coerceFont(coerce, \"tickfont\", font, { overrideDflt: {\n color: dfltFontColor\n } });\n if (!options.noTicklabelstep && axType !== \"multicategory\" && axType !== \"log\") {\n coerce(\"ticklabelstep\");\n }\n if (!options.noAng) {\n var tickAngle = coerce(\"tickangle\");\n if (!options.noAutotickangles && tickAngle === \"auto\") {\n coerce(\"autotickangles\");\n }\n }\n if (axType !== \"category\") {\n var tickFormat = coerce(\"tickformat\");\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"tickformatstops\",\n inclusionAttr: \"enabled\",\n handleItemDefaults: tickformatstopDefaults\n });\n if (!containerOut.tickformatstops.length) {\n delete containerOut.tickformatstops;\n }\n if (!options.noExp && !tickFormat && axType !== \"date\") {\n coerce(\"showexponent\", showAttrDflt);\n coerce(\"exponentformat\");\n coerce(\"minexponent\");\n coerce(\"separatethousands\");\n }\n }\n }\n };\n function tickformatstopDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, layoutAttributes.tickformatstops, attr, dflt);\n }\n var enabled = coerce(\"enabled\");\n if (enabled) {\n coerce(\"dtickrange\");\n coerce(\"value\");\n }\n }\n }\n });\n\n // src/plots/cartesian/prefix_suffix_defaults.js\n var require_prefix_suffix_defaults = __commonJS({\n \"src/plots/cartesian/prefix_suffix_defaults.js\"(exports, module) {\n \"use strict\";\n var getShowAttrDflt = require_show_dflt();\n module.exports = function handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options) {\n if (!options) options = {};\n var tickSuffixDflt = options.tickSuffixDflt;\n var showAttrDflt = getShowAttrDflt(containerIn);\n var tickPrefix = coerce(\"tickprefix\");\n if (tickPrefix) coerce(\"showtickprefix\", showAttrDflt);\n var tickSuffix = coerce(\"ticksuffix\", tickSuffixDflt);\n if (tickSuffix) coerce(\"showticksuffix\", showAttrDflt);\n };\n }\n });\n\n // src/components/colorbar/defaults.js\n var require_defaults = __commonJS({\n \"src/components/colorbar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var attributes = require_attributes7();\n module.exports = function colorbarDefaults(containerIn, containerOut, layout) {\n var colorbarOut = Template.newContainer(containerOut, \"colorbar\");\n var colorbarIn = containerIn.colorbar || {};\n function coerce(attr, dflt) {\n return Lib.coerce(colorbarIn, colorbarOut, attributes, attr, dflt);\n }\n var margin = layout.margin || { t: 0, b: 0, l: 0, r: 0 };\n var w = layout.width - margin.l - margin.r;\n var h = layout.height - margin.t - margin.b;\n var orientation = coerce(\"orientation\");\n var isVertical = orientation === \"v\";\n var thicknessmode = coerce(\"thicknessmode\");\n coerce(\n \"thickness\",\n thicknessmode === \"fraction\" ? 30 / (isVertical ? w : h) : 30\n );\n var lenmode = coerce(\"lenmode\");\n coerce(\n \"len\",\n lenmode === \"fraction\" ? 1 : isVertical ? h : w\n );\n var yref = coerce(\"yref\");\n var xref = coerce(\"xref\");\n var isPaperY = yref === \"paper\";\n var isPaperX = xref === \"paper\";\n var defaultX, defaultY, defaultYAnchor;\n var defaultXAnchor = \"left\";\n if (isVertical) {\n defaultYAnchor = \"middle\";\n defaultXAnchor = isPaperX ? \"left\" : \"right\";\n defaultX = isPaperX ? 1.02 : 1;\n defaultY = 0.5;\n } else {\n defaultYAnchor = isPaperY ? \"bottom\" : \"top\";\n defaultXAnchor = \"center\";\n defaultX = 0.5;\n defaultY = isPaperY ? 1.02 : 1;\n }\n Lib.coerce(colorbarIn, colorbarOut, {\n x: {\n valType: \"number\",\n min: isPaperX ? -2 : 0,\n max: isPaperX ? 3 : 1,\n dflt: defaultX\n }\n }, \"x\");\n Lib.coerce(colorbarIn, colorbarOut, {\n y: {\n valType: \"number\",\n min: isPaperY ? -2 : 0,\n max: isPaperY ? 3 : 1,\n dflt: defaultY\n }\n }, \"y\");\n coerce(\"xanchor\", defaultXAnchor);\n coerce(\"xpad\");\n coerce(\"yanchor\", defaultYAnchor);\n coerce(\"ypad\");\n Lib.noneOrAll(colorbarIn, colorbarOut, [\"x\", \"y\"]);\n coerce(\"outlinecolor\");\n coerce(\"outlinewidth\");\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n coerce(\"bgcolor\");\n var ticklabelposition = Lib.coerce(colorbarIn, colorbarOut, {\n ticklabelposition: {\n valType: \"enumerated\",\n dflt: \"outside\",\n values: isVertical ? [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside bottom\",\n \"inside bottom\"\n ] : [\n \"outside\",\n \"inside\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\"\n ]\n }\n }, \"ticklabelposition\");\n coerce(\"ticklabeloverflow\", ticklabelposition.indexOf(\"inside\") !== -1 ? \"hide past domain\" : \"hide past div\");\n handleTickValueDefaults(colorbarIn, colorbarOut, coerce, \"linear\");\n var font = layout.font;\n var opts = {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n outerTicks: false,\n font\n };\n if (ticklabelposition.indexOf(\"inside\") !== -1) {\n opts.bgColor = \"black\";\n }\n handlePrefixSuffixDefaults(colorbarIn, colorbarOut, coerce, \"linear\", opts);\n handleTickLabelDefaults(colorbarIn, colorbarOut, coerce, \"linear\", opts);\n handleTickMarkDefaults(colorbarIn, colorbarOut, coerce, \"linear\", opts);\n coerce(\"title.text\", layout._dfltTitle.colorbar);\n var tickFont = colorbarOut.showticklabels ? colorbarOut.tickfont : font;\n var dfltTitleFont = Lib.extendFlat({}, font, {\n family: tickFont.family,\n size: Lib.bigFont(tickFont.size)\n });\n Lib.coerceFont(coerce, \"title.font\", dfltTitleFont);\n coerce(\"title.side\", isVertical ? \"top\" : \"right\");\n };\n }\n });\n\n // src/components/colorscale/defaults.js\n var require_defaults2 = __commonJS({\n \"src/components/colorscale/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var hasColorbar = require_has_colorbar();\n var colorbarDefaults = require_defaults();\n var isValidScale = require_scales().isValid;\n var traceIs = require_registry().traceIs;\n function npMaybe(parentCont, prefix) {\n var containerStr = prefix.slice(0, prefix.length - 1);\n return prefix ? Lib.nestedProperty(parentCont, containerStr).get() || {} : parentCont;\n }\n module.exports = function colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts) {\n var prefix = opts.prefix;\n var cLetter = opts.cLetter;\n var inTrace = \"_module\" in parentContOut;\n var containerIn = npMaybe(parentContIn, prefix);\n var containerOut = npMaybe(parentContOut, prefix);\n var template = npMaybe(parentContOut._template || {}, prefix) || {};\n var thisFn = function() {\n delete parentContIn.coloraxis;\n delete parentContOut.coloraxis;\n return colorScaleDefaults(parentContIn, parentContOut, layout, coerce, opts);\n };\n if (inTrace) {\n var colorAxes = layout._colorAxes || {};\n var colorAx = coerce(prefix + \"coloraxis\");\n if (colorAx) {\n var colorbarVisuals = traceIs(parentContOut, \"contour\") && Lib.nestedProperty(parentContOut, \"contours.coloring\").get() || \"heatmap\";\n var stash = colorAxes[colorAx];\n if (stash) {\n stash[2].push(thisFn);\n if (stash[0] !== colorbarVisuals) {\n stash[0] = false;\n Lib.warn([\n \"Ignoring coloraxis:\",\n colorAx,\n \"setting\",\n \"as it is linked to incompatible colorscales.\"\n ].join(\" \"));\n }\n } else {\n colorAxes[colorAx] = [colorbarVisuals, parentContOut, [thisFn]];\n }\n return;\n }\n }\n var minIn = containerIn[cLetter + \"min\"];\n var maxIn = containerIn[cLetter + \"max\"];\n var validMinMax = isNumeric(minIn) && isNumeric(maxIn) && minIn < maxIn;\n var auto = coerce(prefix + cLetter + \"auto\", !validMinMax);\n if (auto) {\n coerce(prefix + cLetter + \"mid\");\n } else {\n coerce(prefix + cLetter + \"min\");\n coerce(prefix + cLetter + \"max\");\n }\n var sclIn = containerIn.colorscale;\n var sclTemplate = template.colorscale;\n var autoColorscaleDflt;\n if (sclIn !== void 0) autoColorscaleDflt = !isValidScale(sclIn);\n if (sclTemplate !== void 0) autoColorscaleDflt = !isValidScale(sclTemplate);\n coerce(prefix + \"autocolorscale\", autoColorscaleDflt);\n coerce(prefix + \"colorscale\");\n coerce(prefix + \"reversescale\");\n if (prefix !== \"marker.line.\") {\n var showScaleDflt;\n if (prefix && inTrace) showScaleDflt = hasColorbar(containerIn);\n var showScale = coerce(prefix + \"showscale\", showScaleDflt);\n if (showScale) {\n if (prefix && template) containerOut._template = template;\n colorbarDefaults(containerIn, containerOut, layout);\n }\n }\n };\n }\n });\n\n // src/components/colorscale/layout_defaults.js\n var require_layout_defaults = __commonJS({\n \"src/components/colorscale/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var colorScaleAttrs = require_layout_attributes5();\n var colorScaleDefaults = require_defaults2();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, colorScaleAttrs, attr, dflt);\n }\n coerce(\"colorscale.sequential\");\n coerce(\"colorscale.sequentialminus\");\n coerce(\"colorscale.diverging\");\n var colorAxes = layoutOut._colorAxes;\n var colorAxIn, colorAxOut;\n function coerceAx(attr, dflt) {\n return Lib.coerce(colorAxIn, colorAxOut, colorScaleAttrs.coloraxis, attr, dflt);\n }\n for (var k in colorAxes) {\n var stash = colorAxes[k];\n if (stash[0]) {\n colorAxIn = layoutIn[k] || {};\n colorAxOut = Template.newContainer(layoutOut, k, \"coloraxis\");\n colorAxOut._name = k;\n colorScaleDefaults(colorAxIn, colorAxOut, layoutOut, coerceAx, { prefix: \"\", cLetter: \"c\" });\n } else {\n for (var i = 0; i < stash[2].length; i++) {\n stash[2][i]();\n }\n delete layoutOut._colorAxes[k];\n }\n }\n };\n }\n });\n\n // src/components/colorscale/cross_trace_defaults.js\n var require_cross_trace_defaults = __commonJS({\n \"src/components/colorscale/cross_trace_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var hasColorscale = require_helpers().hasColorscale;\n var extractOpts = require_helpers().extractOpts;\n module.exports = function crossTraceDefaults(fullData, fullLayout) {\n function replace(cont, k2) {\n var val = cont[\"_\" + k2];\n if (val !== void 0) {\n cont[k2] = val;\n }\n }\n function relinkColorAttrs(outerCont, cbOpt) {\n var cont = cbOpt.container ? Lib.nestedProperty(outerCont, cbOpt.container).get() : outerCont;\n if (cont) {\n if (cont.coloraxis) {\n cont._colorAx = fullLayout[cont.coloraxis];\n } else {\n var cOpts = extractOpts(cont);\n var isAuto = cOpts.auto;\n if (isAuto || cOpts.min === void 0) {\n replace(cont, cbOpt.min);\n }\n if (isAuto || cOpts.max === void 0) {\n replace(cont, cbOpt.max);\n }\n if (cOpts.autocolorscale) {\n replace(cont, \"colorscale\");\n }\n }\n }\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n var cbOpts = trace._module.colorbar;\n if (cbOpts) {\n if (Array.isArray(cbOpts)) {\n for (var j = 0; j < cbOpts.length; j++) {\n relinkColorAttrs(trace, cbOpts[j]);\n }\n } else {\n relinkColorAttrs(trace, cbOpts);\n }\n }\n if (hasColorscale(trace, \"marker.line\")) {\n relinkColorAttrs(trace, {\n container: \"marker.line\",\n min: \"cmin\",\n max: \"cmax\"\n });\n }\n }\n for (var k in fullLayout._colorAxes) {\n relinkColorAttrs(fullLayout[k], { min: \"cmin\", max: \"cmax\" });\n }\n };\n }\n });\n\n // src/components/colorscale/calc.js\n var require_calc = __commonJS({\n \"src/components/colorscale/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var extractOpts = require_helpers().extractOpts;\n module.exports = function calc(gd, trace, opts) {\n var fullLayout = gd._fullLayout;\n var vals = opts.vals;\n var containerStr = opts.containerStr;\n var container = containerStr ? Lib.nestedProperty(trace, containerStr).get() : trace;\n var cOpts = extractOpts(container);\n var auto = cOpts.auto !== false;\n var min = cOpts.min;\n var max = cOpts.max;\n var mid = cOpts.mid;\n var minVal = function() {\n return Lib.aggNums(Math.min, null, vals);\n };\n var maxVal = function() {\n return Lib.aggNums(Math.max, null, vals);\n };\n if (min === void 0) {\n min = minVal();\n } else if (auto) {\n if (container._colorAx && isNumeric(min)) {\n min = Math.min(min, minVal());\n } else {\n min = minVal();\n }\n }\n if (max === void 0) {\n max = maxVal();\n } else if (auto) {\n if (container._colorAx && isNumeric(max)) {\n max = Math.max(max, maxVal());\n } else {\n max = maxVal();\n }\n }\n if (auto && mid !== void 0) {\n if (max - mid > mid - min) {\n min = mid - (max - mid);\n } else if (max - mid < mid - min) {\n max = mid + (mid - min);\n }\n }\n if (min === max) {\n min -= 0.5;\n max += 0.5;\n }\n cOpts._sync(\"min\", min);\n cOpts._sync(\"max\", max);\n if (cOpts.autocolorscale) {\n var scl;\n if (min * max < 0) scl = fullLayout.colorscale.diverging;\n else if (min >= 0) scl = fullLayout.colorscale.sequential;\n else scl = fullLayout.colorscale.sequentialminus;\n cOpts._sync(\"colorscale\", scl);\n }\n };\n }\n });\n\n // src/components/colorscale/index.js\n var require_colorscale = __commonJS({\n \"src/components/colorscale/index.js\"(exports, module) {\n \"use strict\";\n var scales = require_scales();\n var helpers = require_helpers();\n module.exports = {\n moduleType: \"component\",\n name: \"colorscale\",\n attributes: require_attributes8(),\n layoutAttributes: require_layout_attributes5(),\n supplyLayoutDefaults: require_layout_defaults(),\n handleDefaults: require_defaults2(),\n crossTraceDefaults: require_cross_trace_defaults(),\n calc: require_calc(),\n // ./scales.js is required in lib/coerce.js ;\n // it needs to be a separate module to avoid a circular dependency\n scales: scales.scales,\n defaultScale: scales.defaultScale,\n getScale: scales.get,\n isValidScale: scales.isValid,\n hasColorscale: helpers.hasColorscale,\n extractOpts: helpers.extractOpts,\n extractScale: helpers.extractScale,\n flipScale: helpers.flipScale,\n makeColorScaleFunc: helpers.makeColorScaleFunc,\n makeColorScaleFuncFromTrace: helpers.makeColorScaleFuncFromTrace\n };\n }\n });\n\n // src/traces/scatter/subtypes.js\n var require_subtypes = __commonJS({\n \"src/traces/scatter/subtypes.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var isTypedArraySpec = require_array().isTypedArraySpec;\n module.exports = {\n hasLines: function(trace) {\n return trace.visible && trace.mode && trace.mode.indexOf(\"lines\") !== -1;\n },\n hasMarkers: function(trace) {\n return trace.visible && (trace.mode && trace.mode.indexOf(\"markers\") !== -1 || // until splom implements 'mode'\n trace.type === \"splom\");\n },\n hasText: function(trace) {\n return trace.visible && trace.mode && trace.mode.indexOf(\"text\") !== -1;\n },\n isBubble: function(trace) {\n var marker = trace.marker;\n return Lib.isPlainObject(marker) && (Lib.isArrayOrTypedArray(marker.size) || isTypedArraySpec(marker.size));\n }\n };\n }\n });\n\n // src/traces/scatter/make_bubble_size_func.js\n var require_make_bubble_size_func = __commonJS({\n \"src/traces/scatter/make_bubble_size_func.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n module.exports = function makeBubbleSizeFn(trace, factor) {\n if (!factor) {\n factor = 2;\n }\n var marker = trace.marker;\n var sizeRef = marker.sizeref || 1;\n var sizeMin = marker.sizemin || 0;\n var baseFn = marker.sizemode === \"area\" ? function(v) {\n return Math.sqrt(v / sizeRef);\n } : function(v) {\n return v / sizeRef;\n };\n return function(v) {\n var baseSize = baseFn(v / factor);\n return isNumeric(baseSize) && baseSize > 0 ? Math.max(baseSize, sizeMin) : 0;\n };\n };\n }\n });\n\n // src/components/fx/helpers.js\n var require_helpers2 = __commonJS({\n \"src/components/fx/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n exports.getSubplot = function(trace) {\n return trace.subplot || trace.xaxis + trace.yaxis || trace.geo;\n };\n exports.isTraceInSubplots = function(trace, subplots) {\n if (trace.type === \"splom\") {\n var xaxes = trace.xaxes || [];\n var yaxes = trace.yaxes || [];\n for (var i = 0; i < xaxes.length; i++) {\n for (var j = 0; j < yaxes.length; j++) {\n if (subplots.indexOf(xaxes[i] + yaxes[j]) !== -1) {\n return true;\n }\n }\n }\n return false;\n }\n return subplots.indexOf(exports.getSubplot(trace)) !== -1;\n };\n exports.flat = function(subplots, v) {\n var out = new Array(subplots.length);\n for (var i = 0; i < subplots.length; i++) {\n out[i] = v;\n }\n return out;\n };\n exports.p2c = function(axArray, v) {\n var out = new Array(axArray.length);\n for (var i = 0; i < axArray.length; i++) {\n out[i] = axArray[i].p2c(v);\n }\n return out;\n };\n exports.getDistanceFunction = function(mode, dx, dy, dxy) {\n if (mode === \"closest\") return dxy || exports.quadrature(dx, dy);\n return mode.charAt(0) === \"x\" ? dx : dy;\n };\n exports.getClosest = function(cd, distfn, pointData) {\n if (pointData.index !== false) {\n if (pointData.index >= 0 && pointData.index < cd.length) {\n pointData.distance = 0;\n } else pointData.index = false;\n } else {\n var newDistance = Infinity;\n var len = cd.length;\n for (var i = 0; i < len; i++) {\n newDistance = distfn(cd[i]);\n if (newDistance <= pointData.distance) {\n pointData.index = i;\n pointData.distance = newDistance;\n }\n }\n }\n return pointData;\n };\n exports.inbox = function(v0, v1, passVal) {\n return v0 * v1 < 0 || v0 === 0 ? passVal : Infinity;\n };\n exports.quadrature = function(dx, dy) {\n return function(di) {\n var x = dx(di);\n var y = dy(di);\n return Math.sqrt(x * x + y * y);\n };\n };\n exports.makeEventData = function(pt, trace, cd) {\n var pointNumber = \"index\" in pt ? pt.index : pt.pointNumber;\n var out = {\n data: trace._input,\n fullData: trace,\n curveNumber: trace.index,\n pointNumber\n };\n if (trace._indexToPoints) {\n var pointIndices = trace._indexToPoints[pointNumber];\n if (pointIndices.length === 1) {\n out.pointIndex = pointIndices[0];\n } else {\n out.pointIndices = pointIndices;\n }\n } else {\n out.pointIndex = pointNumber;\n }\n if (trace._module.eventData) {\n out = trace._module.eventData(out, pt, trace, cd, pointNumber);\n } else {\n if (\"xVal\" in pt) out.x = pt.xVal;\n else if (\"x\" in pt) out.x = pt.x;\n if (\"yVal\" in pt) out.y = pt.yVal;\n else if (\"y\" in pt) out.y = pt.y;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (pt.zLabelVal !== void 0) out.z = pt.zLabelVal;\n }\n exports.appendArrayPointValue(out, trace, pointNumber);\n return out;\n };\n exports.appendArrayPointValue = function(pointData, trace, pointNumber) {\n var arrayAttrs = trace._arrayAttrs;\n if (!arrayAttrs) {\n return;\n }\n for (var i = 0; i < arrayAttrs.length; i++) {\n var astr = arrayAttrs[i];\n var key = getPointKey(astr);\n if (pointData[key] === void 0) {\n var val = Lib.nestedProperty(trace, astr).get();\n var pointVal = getPointData(val, pointNumber);\n if (pointVal !== void 0) pointData[key] = pointVal;\n }\n }\n };\n exports.appendArrayMultiPointValues = function(pointData, trace, pointNumbers) {\n var arrayAttrs = trace._arrayAttrs;\n if (!arrayAttrs) {\n return;\n }\n for (var i = 0; i < arrayAttrs.length; i++) {\n var astr = arrayAttrs[i];\n var key = getPointKey(astr);\n if (pointData[key] === void 0) {\n var val = Lib.nestedProperty(trace, astr).get();\n var keyVal = new Array(pointNumbers.length);\n for (var j = 0; j < pointNumbers.length; j++) {\n keyVal[j] = getPointData(val, pointNumbers[j]);\n }\n pointData[key] = keyVal;\n }\n }\n };\n var pointKeyMap = {\n ids: \"id\",\n locations: \"location\",\n labels: \"label\",\n values: \"value\",\n \"marker.colors\": \"color\",\n parents: \"parent\"\n };\n function getPointKey(astr) {\n return pointKeyMap[astr] || astr;\n }\n function getPointData(val, pointNumber) {\n if (Array.isArray(pointNumber)) {\n if (Array.isArray(val) && Array.isArray(val[pointNumber[0]])) {\n return val[pointNumber[0]][pointNumber[1]];\n }\n } else {\n return val[pointNumber];\n }\n }\n var xyHoverMode = {\n x: true,\n y: true\n };\n var unifiedHoverMode = {\n \"x unified\": true,\n \"y unified\": true\n };\n exports.isUnifiedHover = function(hovermode) {\n if (typeof hovermode !== \"string\") return false;\n return !!unifiedHoverMode[hovermode];\n };\n exports.isXYhover = function(hovermode) {\n if (typeof hovermode !== \"string\") return false;\n return !!xyHoverMode[hovermode];\n };\n }\n });\n\n // node_modules/parse-svg-path/index.js\n var require_parse_svg_path = __commonJS({\n \"node_modules/parse-svg-path/index.js\"(exports, module) {\n module.exports = parse2;\n var length = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 };\n var segment = /([astvzqmhlc])([^astvzqmhlc]*)/ig;\n function parse2(path) {\n var data = [];\n path.replace(segment, function(_, command, args) {\n var type = command.toLowerCase();\n args = parseValues(args);\n if (type == \"m\" && args.length > 2) {\n data.push([command].concat(args.splice(0, 2)));\n type = \"l\";\n command = command == \"m\" ? \"l\" : \"L\";\n }\n while (true) {\n if (args.length == length[type]) {\n args.unshift(command);\n return data.push(args);\n }\n if (args.length < length[type]) throw new Error(\"malformed path data\");\n data.push([command].concat(args.splice(0, length[type])));\n }\n });\n return data;\n }\n var number = /-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/ig;\n function parseValues(args) {\n var numbers = args.match(number);\n return numbers ? numbers.map(Number) : [];\n }\n }\n });\n\n // src/components/drawing/symbol_defs.js\n var require_symbol_defs = __commonJS({\n \"src/components/drawing/symbol_defs.js\"(exports, module) {\n \"use strict\";\n var parseSvgPath = require_parse_svg_path();\n var round = (\n // require('@plotly/d3').round;\n function(x, n) {\n return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);\n }\n );\n var emptyPath = \"M0,0Z\";\n var sqrt2 = Math.sqrt(2);\n var sqrt3 = Math.sqrt(3);\n var PI = Math.PI;\n var cos = Math.cos;\n var sin = Math.sin;\n module.exports = {\n circle: {\n n: 0,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n var circle = \"M\" + rs + \",0A\" + rs + \",\" + rs + \" 0 1,1 0,-\" + rs + \"A\" + rs + \",\" + rs + \" 0 0,1 \" + rs + \",0Z\";\n return standoff ? align(angle, standoff, circle) : circle;\n }\n },\n square: {\n n: 1,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"H-\" + rs + \"V-\" + rs + \"H\" + rs + \"Z\");\n }\n },\n diamond: {\n n: 2,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rd = round(r * 1.3, 2);\n return align(angle, standoff, \"M\" + rd + \",0L0,\" + rd + \"L-\" + rd + \",0L0,-\" + rd + \"Z\");\n }\n },\n cross: {\n n: 3,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 0.4, 2);\n var rc2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M\" + rc2 + \",\" + rc + \"H\" + rc + \"V\" + rc2 + \"H-\" + rc + \"V\" + rc + \"H-\" + rc2 + \"V-\" + rc + \"H-\" + rc + \"V-\" + rc2 + \"H\" + rc + \"V-\" + rc + \"H\" + rc2 + \"Z\");\n }\n },\n x: {\n n: 4,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 0.8 / sqrt2, 2);\n var ne = \"l\" + rx + \",\" + rx;\n var se = \"l\" + rx + \",-\" + rx;\n var sw = \"l-\" + rx + \",-\" + rx;\n var nw = \"l-\" + rx + \",\" + rx;\n return align(angle, standoff, \"M0,\" + rx + ne + se + sw + se + sw + nw + sw + nw + ne + nw + ne + \"Z\");\n }\n },\n \"triangle-up\": {\n n: 5,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M-\" + rt + \",\" + r2 + \"H\" + rt + \"L0,-\" + rs + \"Z\");\n }\n },\n \"triangle-down\": {\n n: 6,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M-\" + rt + \",-\" + r2 + \"H\" + rt + \"L0,\" + rs + \"Z\");\n }\n },\n \"triangle-left\": {\n n: 7,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + r2 + \",-\" + rt + \"V\" + rt + \"L-\" + rs + \",0Z\");\n }\n },\n \"triangle-right\": {\n n: 8,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rt = round(r * 2 / sqrt3, 2);\n var r2 = round(r / 2, 2);\n var rs = round(r, 2);\n return align(angle, standoff, \"M-\" + r2 + \",-\" + rt + \"V\" + rt + \"L\" + rs + \",0Z\");\n }\n },\n \"triangle-ne\": {\n n: 9,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M-\" + r2 + \",-\" + r1 + \"H\" + r1 + \"V\" + r2 + \"Z\");\n }\n },\n \"triangle-se\": {\n n: 10,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M\" + r1 + \",-\" + r2 + \"V\" + r1 + \"H-\" + r2 + \"Z\");\n }\n },\n \"triangle-sw\": {\n n: 11,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M\" + r2 + \",\" + r1 + \"H-\" + r1 + \"V-\" + r2 + \"Z\");\n }\n },\n \"triangle-nw\": {\n n: 12,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r * 0.6, 2);\n var r2 = round(r * 1.2, 2);\n return align(angle, standoff, \"M-\" + r1 + \",\" + r2 + \"V-\" + r1 + \"H\" + r2 + \"Z\");\n }\n },\n pentagon: {\n n: 13,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x1 = round(r * 0.951, 2);\n var x2 = round(r * 0.588, 2);\n var y0 = round(-r, 2);\n var y1 = round(r * -0.309, 2);\n var y2 = round(r * 0.809, 2);\n return align(angle, standoff, \"M\" + x1 + \",\" + y1 + \"L\" + x2 + \",\" + y2 + \"H-\" + x2 + \"L-\" + x1 + \",\" + y1 + \"L0,\" + y0 + \"Z\");\n }\n },\n hexagon: {\n n: 14,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y0 = round(r, 2);\n var y1 = round(r / 2, 2);\n var x = round(r * sqrt3 / 2, 2);\n return align(angle, standoff, \"M\" + x + \",-\" + y1 + \"V\" + y1 + \"L0,\" + y0 + \"L-\" + x + \",\" + y1 + \"V-\" + y1 + \"L0,-\" + y0 + \"Z\");\n }\n },\n hexagon2: {\n n: 15,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x0 = round(r, 2);\n var x1 = round(r / 2, 2);\n var y = round(r * sqrt3 / 2, 2);\n return align(angle, standoff, \"M-\" + x1 + \",\" + y + \"H\" + x1 + \"L\" + x0 + \",0L\" + x1 + \",-\" + y + \"H-\" + x1 + \"L-\" + x0 + \",0Z\");\n }\n },\n octagon: {\n n: 16,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var a = round(r * 0.924, 2);\n var b = round(r * 0.383, 2);\n return align(angle, standoff, \"M-\" + b + \",-\" + a + \"H\" + b + \"L\" + a + \",-\" + b + \"V\" + b + \"L\" + b + \",\" + a + \"H-\" + b + \"L-\" + a + \",\" + b + \"V-\" + b + \"Z\");\n }\n },\n star: {\n n: 17,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = r * 1.4;\n var x1 = round(rs * 0.225, 2);\n var x2 = round(rs * 0.951, 2);\n var x3 = round(rs * 0.363, 2);\n var x4 = round(rs * 0.588, 2);\n var y0 = round(-rs, 2);\n var y1 = round(rs * -0.309, 2);\n var y3 = round(rs * 0.118, 2);\n var y4 = round(rs * 0.809, 2);\n var y5 = round(rs * 0.382, 2);\n return align(angle, standoff, \"M\" + x1 + \",\" + y1 + \"H\" + x2 + \"L\" + x3 + \",\" + y3 + \"L\" + x4 + \",\" + y4 + \"L0,\" + y5 + \"L-\" + x4 + \",\" + y4 + \"L-\" + x3 + \",\" + y3 + \"L-\" + x2 + \",\" + y1 + \"H-\" + x1 + \"L0,\" + y0 + \"Z\");\n }\n },\n hexagram: {\n n: 18,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y = round(r * 0.66, 2);\n var x1 = round(r * 0.38, 2);\n var x2 = round(r * 0.76, 2);\n return align(angle, standoff, \"M-\" + x2 + \",0l-\" + x1 + \",-\" + y + \"h\" + x2 + \"l\" + x1 + \",-\" + y + \"l\" + x1 + \",\" + y + \"h\" + x2 + \"l-\" + x1 + \",\" + y + \"l\" + x1 + \",\" + y + \"h-\" + x2 + \"l-\" + x1 + \",\" + y + \"l-\" + x1 + \",-\" + y + \"h-\" + x2 + \"Z\");\n }\n },\n \"star-triangle-up\": {\n n: 19,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * sqrt3 * 0.8, 2);\n var y1 = round(r * 0.8, 2);\n var y2 = round(r * 1.6, 2);\n var rc = round(r * 4, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M-\" + x + \",\" + y1 + aPart + x + \",\" + y1 + aPart + \"0,-\" + y2 + aPart + \"-\" + x + \",\" + y1 + \"Z\");\n }\n },\n \"star-triangle-down\": {\n n: 20,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * sqrt3 * 0.8, 2);\n var y1 = round(r * 0.8, 2);\n var y2 = round(r * 1.6, 2);\n var rc = round(r * 4, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M\" + x + \",-\" + y1 + aPart + \"-\" + x + \",-\" + y1 + aPart + \"0,\" + y2 + aPart + x + \",-\" + y1 + \"Z\");\n }\n },\n \"star-square\": {\n n: 21,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rp = round(r * 1.1, 2);\n var rc = round(r * 2, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M-\" + rp + \",-\" + rp + aPart + \"-\" + rp + \",\" + rp + aPart + rp + \",\" + rp + aPart + rp + \",-\" + rp + aPart + \"-\" + rp + \",-\" + rp + \"Z\");\n }\n },\n \"star-diamond\": {\n n: 22,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rp = round(r * 1.4, 2);\n var rc = round(r * 1.9, 2);\n var aPart = \"A \" + rc + \",\" + rc + \" 0 0 1 \";\n return align(angle, standoff, \"M-\" + rp + \",0\" + aPart + \"0,\" + rp + aPart + rp + \",0\" + aPart + \"0,-\" + rp + aPart + \"-\" + rp + \",0Z\");\n }\n },\n \"diamond-tall\": {\n n: 23,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 0.7, 2);\n var y = round(r * 1.4, 2);\n return align(angle, standoff, \"M0,\" + y + \"L\" + x + \",0L0,-\" + y + \"L-\" + x + \",0Z\");\n }\n },\n \"diamond-wide\": {\n n: 24,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 1.4, 2);\n var y = round(r * 0.7, 2);\n return align(angle, standoff, \"M0,\" + y + \"L\" + x + \",0L0,-\" + y + \"L-\" + x + \",0Z\");\n }\n },\n hourglass: {\n n: 25,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"H-\" + rs + \"L\" + rs + \",-\" + rs + \"H-\" + rs + \"Z\");\n },\n noDot: true\n },\n bowtie: {\n n: 26,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"V-\" + rs + \"L-\" + rs + \",\" + rs + \"V-\" + rs + \"Z\");\n },\n noDot: true\n },\n \"circle-cross\": {\n n: 27,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M0,\" + rs + \"V-\" + rs + \"M\" + rs + \",0H-\" + rs + \"M\" + rs + \",0A\" + rs + \",\" + rs + \" 0 1,1 0,-\" + rs + \"A\" + rs + \",\" + rs + \" 0 0,1 \" + rs + \",0Z\");\n },\n needLine: true,\n noDot: true\n },\n \"circle-x\": {\n n: 28,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n var rc = round(r / sqrt2, 2);\n return align(angle, standoff, \"M\" + rc + \",\" + rc + \"L-\" + rc + \",-\" + rc + \"M\" + rc + \",-\" + rc + \"L-\" + rc + \",\" + rc + \"M\" + rs + \",0A\" + rs + \",\" + rs + \" 0 1,1 0,-\" + rs + \"A\" + rs + \",\" + rs + \" 0 0,1 \" + rs + \",0Z\");\n },\n needLine: true,\n noDot: true\n },\n \"square-cross\": {\n n: 29,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M0,\" + rs + \"V-\" + rs + \"M\" + rs + \",0H-\" + rs + \"M\" + rs + \",\" + rs + \"H-\" + rs + \"V-\" + rs + \"H\" + rs + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"square-x\": {\n n: 30,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rs = round(r, 2);\n return align(angle, standoff, \"M\" + rs + \",\" + rs + \"L-\" + rs + \",-\" + rs + \"M\" + rs + \",-\" + rs + \"L-\" + rs + \",\" + rs + \"M\" + rs + \",\" + rs + \"H-\" + rs + \"V-\" + rs + \"H\" + rs + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"diamond-cross\": {\n n: 31,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rd = round(r * 1.3, 2);\n return align(angle, standoff, \"M\" + rd + \",0L0,\" + rd + \"L-\" + rd + \",0L0,-\" + rd + \"ZM0,-\" + rd + \"V\" + rd + \"M-\" + rd + \",0H\" + rd);\n },\n needLine: true,\n noDot: true\n },\n \"diamond-x\": {\n n: 32,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rd = round(r * 1.3, 2);\n var r2 = round(r * 0.65, 2);\n return align(angle, standoff, \"M\" + rd + \",0L0,\" + rd + \"L-\" + rd + \",0L0,-\" + rd + \"ZM-\" + r2 + \",-\" + r2 + \"L\" + r2 + \",\" + r2 + \"M-\" + r2 + \",\" + r2 + \"L\" + r2 + \",-\" + r2);\n },\n needLine: true,\n noDot: true\n },\n \"cross-thin\": {\n n: 33,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.4, 2);\n return align(angle, standoff, \"M0,\" + rc + \"V-\" + rc + \"M\" + rc + \",0H-\" + rc);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"x-thin\": {\n n: 34,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n return align(angle, standoff, \"M\" + rx + \",\" + rx + \"L-\" + rx + \",-\" + rx + \"M\" + rx + \",-\" + rx + \"L-\" + rx + \",\" + rx);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n asterisk: {\n n: 35,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.2, 2);\n var rs = round(r * 0.85, 2);\n return align(angle, standoff, \"M0,\" + rc + \"V-\" + rc + \"M\" + rc + \",0H-\" + rc + \"M\" + rs + \",\" + rs + \"L-\" + rs + \",-\" + rs + \"M\" + rs + \",-\" + rs + \"L-\" + rs + \",\" + rs);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n hash: {\n n: 36,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var r1 = round(r / 2, 2);\n var r2 = round(r, 2);\n return align(angle, standoff, \"M\" + r1 + \",\" + r2 + \"V-\" + r2 + \"M\" + (r1 - r2) + \",-\" + r2 + \"V\" + r2 + \"M\" + r2 + \",\" + r1 + \"H-\" + r2 + \"M-\" + r2 + \",\" + (r1 - r2) + \"H\" + r2);\n },\n needLine: true,\n noFill: true\n },\n \"y-up\": {\n n: 37,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 1.2, 2);\n var y0 = round(r * 1.6, 2);\n var y1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M-\" + x + \",\" + y1 + \"L0,0M\" + x + \",\" + y1 + \"L0,0M0,-\" + y0 + \"L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"y-down\": {\n n: 38,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var x = round(r * 1.2, 2);\n var y0 = round(r * 1.6, 2);\n var y1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M-\" + x + \",-\" + y1 + \"L0,0M\" + x + \",-\" + y1 + \"L0,0M0,\" + y0 + \"L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"y-left\": {\n n: 39,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y = round(r * 1.2, 2);\n var x0 = round(r * 1.6, 2);\n var x1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M\" + x1 + \",\" + y + \"L0,0M\" + x1 + \",-\" + y + \"L0,0M-\" + x0 + \",0L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"y-right\": {\n n: 40,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var y = round(r * 1.2, 2);\n var x0 = round(r * 1.6, 2);\n var x1 = round(r * 0.8, 2);\n return align(angle, standoff, \"M-\" + x1 + \",\" + y + \"L0,0M-\" + x1 + \",-\" + y + \"L0,0M\" + x0 + \",0L0,0\");\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-ew\": {\n n: 41,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.4, 2);\n return align(angle, standoff, \"M\" + rc + \",0H-\" + rc);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-ns\": {\n n: 42,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rc = round(r * 1.4, 2);\n return align(angle, standoff, \"M0,\" + rc + \"V-\" + rc);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-ne\": {\n n: 43,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n return align(angle, standoff, \"M\" + rx + \",-\" + rx + \"L-\" + rx + \",\" + rx);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"line-nw\": {\n n: 44,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n return align(angle, standoff, \"M\" + rx + \",\" + rx + \"L-\" + rx + \",-\" + rx);\n },\n needLine: true,\n noDot: true,\n noFill: true\n },\n \"arrow-up\": {\n n: 45,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M0,0L-\" + rx + \",\" + ry + \"H\" + rx + \"Z\");\n },\n backoff: 1,\n noDot: true\n },\n \"arrow-down\": {\n n: 46,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M0,0L-\" + rx + \",-\" + ry + \"H\" + rx + \"Z\");\n },\n noDot: true\n },\n \"arrow-left\": {\n n: 47,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,0L\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n noDot: true\n },\n \"arrow-right\": {\n n: 48,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,0L-\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n noDot: true\n },\n \"arrow-bar-up\": {\n n: 49,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M-\" + rx + \",0H\" + rx + \"M0,0L-\" + rx + \",\" + ry + \"H\" + rx + \"Z\");\n },\n backoff: 1,\n needLine: true,\n noDot: true\n },\n \"arrow-bar-down\": {\n n: 50,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r, 2);\n var ry = round(r * 2, 2);\n return align(angle, standoff, \"M-\" + rx + \",0H\" + rx + \"M0,0L-\" + rx + \",-\" + ry + \"H\" + rx + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"arrow-bar-left\": {\n n: 51,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,-\" + ry + \"V\" + ry + \"M0,0L\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n \"arrow-bar-right\": {\n n: 52,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var rx = round(r * 2, 2);\n var ry = round(r, 2);\n return align(angle, standoff, \"M0,-\" + ry + \"V\" + ry + \"M0,0L-\" + rx + \",-\" + ry + \"V\" + ry + \"Z\");\n },\n needLine: true,\n noDot: true\n },\n arrow: {\n n: 53,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var headAngle = PI / 2.5;\n var x = 2 * r * cos(headAngle);\n var y = 2 * r * sin(headAngle);\n return align(\n angle,\n standoff,\n \"M0,0L\" + -x + \",\" + y + \"L\" + x + \",\" + y + \"Z\"\n );\n },\n backoff: 0.9,\n noDot: true\n },\n \"arrow-wide\": {\n n: 54,\n f: function(r, angle, standoff) {\n if (skipAngle(angle)) return emptyPath;\n var headAngle = PI / 4;\n var x = 2 * r * cos(headAngle);\n var y = 2 * r * sin(headAngle);\n return align(\n angle,\n standoff,\n \"M0,0L\" + -x + \",\" + y + \"A \" + 2 * r + \",\" + 2 * r + \" 0 0 1 \" + x + \",\" + y + \"Z\"\n );\n },\n backoff: 0.4,\n noDot: true\n }\n };\n function skipAngle(angle) {\n return angle === null;\n }\n var lastPathIn;\n var lastPathOut;\n var lastAngle;\n var lastStandoff;\n function align(angle, standoff, path) {\n if ((!angle || angle % 360 === 0) && !standoff) return path;\n if (lastAngle === angle && lastStandoff === standoff && lastPathIn === path) return lastPathOut;\n lastAngle = angle;\n lastStandoff = standoff;\n lastPathIn = path;\n function rotate(t4, xy) {\n var cosT = cos(t4);\n var sinT = sin(t4);\n var x2 = xy[0];\n var y2 = xy[1] + (standoff || 0);\n return [\n x2 * cosT - y2 * sinT,\n x2 * sinT + y2 * cosT\n ];\n }\n var t = angle / 180 * PI;\n var x = 0;\n var y = 0;\n var cmd = parseSvgPath(path);\n var str = \"\";\n for (var i = 0; i < cmd.length; i++) {\n var cmdI = cmd[i];\n var op = cmdI[0];\n var x0 = x;\n var y0 = y;\n if (op === \"M\" || op === \"L\") {\n x = +cmdI[1];\n y = +cmdI[2];\n } else if (op === \"m\" || op === \"l\") {\n x += +cmdI[1];\n y += +cmdI[2];\n } else if (op === \"H\") {\n x = +cmdI[1];\n } else if (op === \"h\") {\n x += +cmdI[1];\n } else if (op === \"V\") {\n y = +cmdI[1];\n } else if (op === \"v\") {\n y += +cmdI[1];\n } else if (op === \"A\") {\n x = +cmdI[1];\n y = +cmdI[2];\n var E2 = rotate(t, [+cmdI[6], +cmdI[7]]);\n cmdI[6] = E2[0];\n cmdI[7] = E2[1];\n cmdI[3] = +cmdI[3] + angle;\n }\n if (op === \"H\" || op === \"V\") op = \"L\";\n if (op === \"h\" || op === \"v\") op = \"l\";\n if (op === \"m\" || op === \"l\") {\n x -= x0;\n y -= y0;\n }\n var B2 = rotate(t, [x, y]);\n if (op === \"H\" || op === \"V\") op = \"L\";\n if (op === \"M\" || op === \"L\" || op === \"m\" || op === \"l\") {\n cmdI[1] = B2[0];\n cmdI[2] = B2[1];\n }\n cmdI[0] = op;\n str += cmdI[0] + cmdI.slice(1).join(\",\");\n }\n lastPathOut = str;\n return str;\n }\n }\n });\n\n // src/components/drawing/index.js\n var require_drawing = __commonJS({\n \"src/components/drawing/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Color2 = require_color();\n var Colorscale = require_colorscale();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var alignment = require_alignment();\n var LINE_SPACING = alignment.LINE_SPACING;\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var subTypes = require_subtypes();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var drawing = module.exports = {};\n drawing.font = function(s, font) {\n var variant = font.variant;\n var style = font.style;\n var weight = font.weight;\n var color2 = font.color;\n var size = font.size;\n var family = font.family;\n var shadow = font.shadow;\n var lineposition = font.lineposition;\n var textcase = font.textcase;\n if (family) s.style(\"font-family\", family);\n if (size + 1) s.style(\"font-size\", size + \"px\");\n if (color2) s.call(Color2.fill, color2);\n if (weight) s.style(\"font-weight\", weight);\n if (style) s.style(\"font-style\", style);\n if (variant) s.style(\"font-variant\", variant);\n if (textcase) s.style(\"text-transform\", dropNone(textcase2transform(textcase)));\n if (shadow) s.style(\"text-shadow\", shadow === \"auto\" ? svgTextUtils.makeTextShadow(Color2.contrast(color2)) : dropNone(shadow));\n if (lineposition) s.style(\"text-decoration-line\", dropNone(lineposition2decorationLine(lineposition)));\n };\n function dropNone(a) {\n return a === \"none\" ? void 0 : a;\n }\n var textcase2transformOptions = {\n normal: \"none\",\n lower: \"lowercase\",\n upper: \"uppercase\",\n \"word caps\": \"capitalize\"\n };\n function textcase2transform(textcase) {\n return textcase2transformOptions[textcase];\n }\n function lineposition2decorationLine(lineposition) {\n return lineposition.replace(\"under\", \"underline\").replace(\"over\", \"overline\").replace(\"through\", \"line-through\").split(\"+\").join(\" \");\n }\n drawing.setPosition = function(s, x, y) {\n s.attr(\"x\", x).attr(\"y\", y);\n };\n drawing.setSize = function(s, w, h) {\n s.attr(\"width\", w).attr(\"height\", h);\n };\n drawing.setRect = function(s, x, y, w, h) {\n s.call(drawing.setPosition, x, y).call(drawing.setSize, w, h);\n };\n drawing.translatePoint = function(d, sel, xa, ya) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n if (isNumeric(x) && isNumeric(y) && sel.node()) {\n if (sel.node().nodeName === \"text\") {\n sel.attr(\"x\", x).attr(\"y\", y);\n } else {\n sel.attr(\"transform\", strTranslate(x, y));\n }\n } else {\n return false;\n }\n return true;\n };\n drawing.translatePoints = function(s, xa, ya) {\n s.each(function(d) {\n var sel = d3.select(this);\n drawing.translatePoint(d, sel, xa, ya);\n });\n };\n drawing.hideOutsideRangePoint = function(d, sel, xa, ya, xcalendar, ycalendar) {\n sel.attr(\n \"display\",\n xa.isPtWithinRange(d, xcalendar) && ya.isPtWithinRange(d, ycalendar) ? null : \"none\"\n );\n };\n drawing.hideOutsideRangePoints = function(traceGroups, subplot) {\n if (!subplot._hasClipOnAxisFalse) return;\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n traceGroups.each(function(d) {\n var trace = d[0].trace;\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var selector = Registry.traceIs(trace, \"bar-like\") ? \".bartext\" : \".point,.textpoint\";\n traceGroups.selectAll(selector).each(function(d2) {\n drawing.hideOutsideRangePoint(d2, d3.select(this), xa, ya, xcalendar, ycalendar);\n });\n });\n };\n drawing.crispRound = function(gd, lineWidth, dflt) {\n if (!lineWidth || !isNumeric(lineWidth)) return dflt || 0;\n if (gd._context.staticPlot) return lineWidth;\n if (lineWidth < 1) return 1;\n return Math.round(lineWidth);\n };\n drawing.singleLineStyle = function(d, s, lw, lc, ld) {\n s.style(\"fill\", \"none\");\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || \"\";\n Color2.stroke(s, lc || line.color);\n drawing.dashLine(s, dash, lw1);\n };\n drawing.lineGroupStyle = function(s, lw, lc, ld) {\n s.style(\"fill\", \"none\").each(function(d) {\n var line = (((d || [])[0] || {}).trace || {}).line || {};\n var lw1 = lw || line.width || 0;\n var dash = ld || line.dash || \"\";\n d3.select(this).call(Color2.stroke, lc || line.color).call(drawing.dashLine, dash, lw1);\n });\n };\n drawing.dashLine = function(s, dash, lineWidth) {\n lineWidth = +lineWidth || 0;\n dash = drawing.dashStyle(dash, lineWidth);\n s.style({\n \"stroke-dasharray\": dash,\n \"stroke-width\": lineWidth + \"px\"\n });\n };\n drawing.dashStyle = function(dash, lineWidth) {\n lineWidth = +lineWidth || 1;\n var dlw = Math.max(lineWidth, 3);\n if (dash === \"solid\") dash = \"\";\n else if (dash === \"dot\") dash = dlw + \"px,\" + dlw + \"px\";\n else if (dash === \"dash\") dash = 3 * dlw + \"px,\" + 3 * dlw + \"px\";\n else if (dash === \"longdash\") dash = 5 * dlw + \"px,\" + 5 * dlw + \"px\";\n else if (dash === \"dashdot\") {\n dash = 3 * dlw + \"px,\" + dlw + \"px,\" + dlw + \"px,\" + dlw + \"px\";\n } else if (dash === \"longdashdot\") {\n dash = 5 * dlw + \"px,\" + 2 * dlw + \"px,\" + dlw + \"px,\" + 2 * dlw + \"px\";\n }\n return dash;\n };\n function setFillStyle(sel, trace, gd, forLegend) {\n var markerPattern = trace.fillpattern;\n var fillgradient = trace.fillgradient;\n var patternShape = markerPattern && drawing.getPatternAttr(markerPattern.shape, 0, \"\");\n if (patternShape) {\n var patternBGColor = drawing.getPatternAttr(markerPattern.bgcolor, 0, null);\n var patternFGColor = drawing.getPatternAttr(markerPattern.fgcolor, 0, null);\n var patternFGOpacity = markerPattern.fgopacity;\n var patternSize = drawing.getPatternAttr(markerPattern.size, 0, 8);\n var patternSolidity = drawing.getPatternAttr(markerPattern.solidity, 0, 0.3);\n var patternID = trace.uid;\n drawing.pattern(\n sel,\n \"point\",\n gd,\n patternID,\n patternShape,\n patternSize,\n patternSolidity,\n void 0,\n markerPattern.fillmode,\n patternBGColor,\n patternFGColor,\n patternFGOpacity\n );\n } else if (fillgradient && fillgradient.type !== \"none\") {\n var direction = fillgradient.type;\n var gradientID = \"scatterfill-\" + trace.uid;\n if (forLegend) {\n gradientID = \"legendfill-\" + trace.uid;\n }\n if (!forLegend && (fillgradient.start !== void 0 || fillgradient.stop !== void 0)) {\n var start, stop;\n if (direction === \"horizontal\") {\n start = {\n x: fillgradient.start,\n y: 0\n };\n stop = {\n x: fillgradient.stop,\n y: 0\n };\n } else if (direction === \"vertical\") {\n start = {\n x: 0,\n y: fillgradient.start\n };\n stop = {\n x: 0,\n y: fillgradient.stop\n };\n }\n start.x = trace._xA.c2p(\n start.x === void 0 ? trace._extremes.x.min[0].val : start.x,\n true\n );\n start.y = trace._yA.c2p(\n start.y === void 0 ? trace._extremes.y.min[0].val : start.y,\n true\n );\n stop.x = trace._xA.c2p(\n stop.x === void 0 ? trace._extremes.x.max[0].val : stop.x,\n true\n );\n stop.y = trace._yA.c2p(\n stop.y === void 0 ? trace._extremes.y.max[0].val : stop.y,\n true\n );\n sel.call(gradientWithBounds, gd, gradientID, \"linear\", fillgradient.colorscale, \"fill\", start, stop, true, false);\n } else {\n if (direction === \"horizontal\") {\n direction = direction + \"reversed\";\n }\n sel.call(drawing.gradient, gd, gradientID, direction, fillgradient.colorscale, \"fill\");\n }\n } else if (trace.fillcolor) {\n sel.call(Color2.fill, trace.fillcolor);\n }\n }\n drawing.singleFillStyle = function(sel, gd) {\n var node = d3.select(sel.node());\n var data = node.data();\n var trace = ((data[0] || [])[0] || {}).trace || {};\n setFillStyle(sel, trace, gd, false);\n };\n drawing.fillGroupStyle = function(s, gd, forLegend) {\n s.style(\"stroke-width\", 0).each(function(d) {\n var shape = d3.select(this);\n if (d[0].trace) {\n setFillStyle(shape, d[0].trace, gd, forLegend);\n }\n });\n };\n var SYMBOLDEFS = require_symbol_defs();\n drawing.symbolNames = [];\n drawing.symbolFuncs = [];\n drawing.symbolBackOffs = [];\n drawing.symbolNeedLines = {};\n drawing.symbolNoDot = {};\n drawing.symbolNoFill = {};\n drawing.symbolList = [];\n Object.keys(SYMBOLDEFS).forEach(function(k) {\n var symDef = SYMBOLDEFS[k];\n var n = symDef.n;\n drawing.symbolList.push(\n n,\n String(n),\n k,\n n + 100,\n String(n + 100),\n k + \"-open\"\n );\n drawing.symbolNames[n] = k;\n drawing.symbolFuncs[n] = symDef.f;\n drawing.symbolBackOffs[n] = symDef.backoff || 0;\n if (symDef.needLine) {\n drawing.symbolNeedLines[n] = true;\n }\n if (symDef.noDot) {\n drawing.symbolNoDot[n] = true;\n } else {\n drawing.symbolList.push(\n n + 200,\n String(n + 200),\n k + \"-dot\",\n n + 300,\n String(n + 300),\n k + \"-open-dot\"\n );\n }\n if (symDef.noFill) {\n drawing.symbolNoFill[n] = true;\n }\n });\n var MAXSYMBOL = drawing.symbolNames.length;\n var DOTPATH = \"M0,0.5L0.5,0L0,-0.5L-0.5,0Z\";\n drawing.symbolNumber = function(v) {\n if (isNumeric(v)) {\n v = +v;\n } else if (typeof v === \"string\") {\n var vbase = 0;\n if (v.indexOf(\"-open\") > 0) {\n vbase = 100;\n v = v.replace(\"-open\", \"\");\n }\n if (v.indexOf(\"-dot\") > 0) {\n vbase += 200;\n v = v.replace(\"-dot\", \"\");\n }\n v = drawing.symbolNames.indexOf(v);\n if (v >= 0) {\n v += vbase;\n }\n }\n return v % 100 >= MAXSYMBOL || v >= 400 ? 0 : Math.floor(Math.max(v, 0));\n };\n function makePointPath(symbolNumber, r, t, s) {\n var base = symbolNumber % 100;\n return drawing.symbolFuncs[base](r, t, s) + (symbolNumber >= 200 ? DOTPATH : \"\");\n }\n var stopFormatter = numberFormat(\"~f\");\n var gradientInfo = {\n radial: { type: \"radial\" },\n radialreversed: { type: \"radial\", reversed: true },\n horizontal: { type: \"linear\", start: { x: 1, y: 0 }, stop: { x: 0, y: 0 } },\n horizontalreversed: { type: \"linear\", start: { x: 1, y: 0 }, stop: { x: 0, y: 0 }, reversed: true },\n vertical: { type: \"linear\", start: { x: 0, y: 1 }, stop: { x: 0, y: 0 } },\n verticalreversed: { type: \"linear\", start: { x: 0, y: 1 }, stop: { x: 0, y: 0 }, reversed: true }\n };\n drawing.gradient = function(sel, gd, gradientID, type, colorscale, prop) {\n var info = gradientInfo[type];\n return gradientWithBounds(\n sel,\n gd,\n gradientID,\n info.type,\n colorscale,\n prop,\n info.start,\n info.stop,\n false,\n info.reversed\n );\n };\n function gradientWithBounds(sel, gd, gradientID, type, colorscale, prop, start, stop, inUserSpace, reversed) {\n var len = colorscale.length;\n var info;\n if (type === \"linear\") {\n info = {\n node: \"linearGradient\",\n attrs: {\n x1: start.x,\n y1: start.y,\n x2: stop.x,\n y2: stop.y,\n gradientUnits: inUserSpace ? \"userSpaceOnUse\" : \"objectBoundingBox\"\n },\n reversed\n };\n } else if (type === \"radial\") {\n info = {\n node: \"radialGradient\",\n reversed\n };\n }\n var colorStops = new Array(len);\n for (var i = 0; i < len; i++) {\n if (info.reversed) {\n colorStops[len - 1 - i] = [stopFormatter((1 - colorscale[i][0]) * 100), colorscale[i][1]];\n } else {\n colorStops[i] = [stopFormatter(colorscale[i][0] * 100), colorscale[i][1]];\n }\n }\n var fullLayout = gd._fullLayout;\n var fullID = \"g\" + fullLayout._uid + \"-\" + gradientID;\n var gradient = fullLayout._defs.select(\".gradients\").selectAll(\"#\" + fullID).data([type + colorStops.join(\";\")], Lib.identity);\n gradient.exit().remove();\n gradient.enter().append(info.node).each(function() {\n var el = d3.select(this);\n if (info.attrs) el.attr(info.attrs);\n el.attr(\"id\", fullID);\n var stops = el.selectAll(\"stop\").data(colorStops);\n stops.exit().remove();\n stops.enter().append(\"stop\");\n stops.each(function(d) {\n var tc = tinycolor(d[1]);\n d3.select(this).attr({\n offset: d[0] + \"%\",\n \"stop-color\": Color2.tinyRGB(tc),\n \"stop-opacity\": tc.getAlpha()\n });\n });\n });\n sel.style(prop, getFullUrl(fullID, gd)).style(prop + \"-opacity\", null);\n sel.classed(\"gradient_filled\", true);\n }\n drawing.pattern = function(sel, calledBy, gd, patternID, shape, size, solidity, mcc, fillmode, bgcolor, fgcolor, fgopacity) {\n var isLegend = calledBy === \"legend\";\n if (mcc) {\n if (fillmode === \"overlay\") {\n bgcolor = mcc;\n fgcolor = Color2.contrast(bgcolor);\n } else {\n bgcolor = void 0;\n fgcolor = mcc;\n }\n }\n var fullLayout = gd._fullLayout;\n var fullID = \"p\" + fullLayout._uid + \"-\" + patternID;\n var width, height;\n var linearFn = function(x, x0, x1, y0, y1) {\n return y0 + (y1 - y0) * (x - x0) / (x1 - x0);\n };\n var path, linewidth, radius;\n var patternTag;\n var patternAttrs = {};\n var fgC = tinycolor(fgcolor);\n var fgRGB = Color2.tinyRGB(fgC);\n var fgAlpha = fgC.getAlpha();\n var opacity = fgopacity * fgAlpha;\n switch (shape) {\n case \"/\":\n width = size * Math.sqrt(2);\n height = size * Math.sqrt(2);\n path = \"M-\" + width / 4 + \",\" + height / 4 + \"l\" + width / 2 + \",-\" + height / 2 + \"M0,\" + height + \"L\" + width + \",0M\" + width / 4 * 3 + \",\" + height / 4 * 5 + \"l\" + width / 2 + \",-\" + height / 2;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"\\\\\":\n width = size * Math.sqrt(2);\n height = size * Math.sqrt(2);\n path = \"M\" + width / 4 * 3 + \",-\" + height / 4 + \"l\" + width / 2 + \",\" + height / 2 + \"M0,0L\" + width + \",\" + height + \"M-\" + width / 4 + \",\" + height / 4 * 3 + \"l\" + width / 2 + \",\" + height / 2;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"x\":\n width = size * Math.sqrt(2);\n height = size * Math.sqrt(2);\n path = \"M-\" + width / 4 + \",\" + height / 4 + \"l\" + width / 2 + \",-\" + height / 2 + \"M0,\" + height + \"L\" + width + \",0M\" + width / 4 * 3 + \",\" + height / 4 * 5 + \"l\" + width / 2 + \",-\" + height / 2 + \"M\" + width / 4 * 3 + \",-\" + height / 4 + \"l\" + width / 2 + \",\" + height / 2 + \"M0,0L\" + width + \",\" + height + \"M-\" + width / 4 + \",\" + height / 4 * 3 + \"l\" + width / 2 + \",\" + height / 2;\n linewidth = size - size * Math.sqrt(1 - solidity);\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"|\":\n width = size;\n height = size;\n patternTag = \"path\";\n path = \"M\" + width / 2 + \",0L\" + width / 2 + \",\" + height;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"-\":\n width = size;\n height = size;\n patternTag = \"path\";\n path = \"M0,\" + height / 2 + \"L\" + width + \",\" + height / 2;\n linewidth = solidity * size;\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \"+\":\n width = size;\n height = size;\n patternTag = \"path\";\n path = \"M\" + width / 2 + \",0L\" + width / 2 + \",\" + height + \"M0,\" + height / 2 + \"L\" + width + \",\" + height / 2;\n linewidth = size - size * Math.sqrt(1 - solidity);\n patternTag = \"path\";\n patternAttrs = {\n d: path,\n opacity,\n stroke: fgRGB,\n \"stroke-width\": linewidth + \"px\"\n };\n break;\n case \".\":\n width = size;\n height = size;\n if (solidity < Math.PI / 4) {\n radius = Math.sqrt(solidity * size * size / Math.PI);\n } else {\n radius = linearFn(solidity, Math.PI / 4, 1, size / 2, size / Math.sqrt(2));\n }\n patternTag = \"circle\";\n patternAttrs = {\n cx: width / 2,\n cy: height / 2,\n r: radius,\n opacity,\n fill: fgRGB\n };\n break;\n }\n var str = [\n shape || \"noSh\",\n bgcolor || \"noBg\",\n fgcolor || \"noFg\",\n size,\n solidity\n ].join(\";\");\n var pattern = fullLayout._defs.select(\".patterns\").selectAll(\"#\" + fullID).data([str], Lib.identity);\n pattern.exit().remove();\n pattern.enter().append(\"pattern\").each(function() {\n var el = d3.select(this);\n el.attr({\n id: fullID,\n width: width + \"px\",\n height: height + \"px\",\n patternUnits: \"userSpaceOnUse\",\n // for legends scale down patterns just a bit so that default size (i.e 8) nicely fit in small icons\n patternTransform: isLegend ? \"scale(0.8)\" : \"\"\n });\n if (bgcolor) {\n var bgC = tinycolor(bgcolor);\n var bgRGB = Color2.tinyRGB(bgC);\n var bgAlpha = bgC.getAlpha();\n var rects = el.selectAll(\"rect\").data([0]);\n rects.exit().remove();\n rects.enter().append(\"rect\").attr({\n width: width + \"px\",\n height: height + \"px\",\n fill: bgRGB,\n \"fill-opacity\": bgAlpha\n });\n }\n var patterns = el.selectAll(patternTag).data([0]);\n patterns.exit().remove();\n patterns.enter().append(patternTag).attr(patternAttrs);\n });\n sel.style(\"fill\", getFullUrl(fullID, gd)).style(\"fill-opacity\", null);\n sel.classed(\"pattern_filled\", true);\n };\n drawing.initGradients = function(gd) {\n var fullLayout = gd._fullLayout;\n var gradientsGroup = Lib.ensureSingle(fullLayout._defs, \"g\", \"gradients\");\n gradientsGroup.selectAll(\"linearGradient,radialGradient\").remove();\n d3.select(gd).selectAll(\".gradient_filled\").classed(\"gradient_filled\", false);\n };\n drawing.initPatterns = function(gd) {\n var fullLayout = gd._fullLayout;\n var patternsGroup = Lib.ensureSingle(fullLayout._defs, \"g\", \"patterns\");\n patternsGroup.selectAll(\"pattern\").remove();\n d3.select(gd).selectAll(\".pattern_filled\").classed(\"pattern_filled\", false);\n };\n drawing.getPatternAttr = function(mp, i, dflt) {\n if (mp && Lib.isArrayOrTypedArray(mp)) {\n return i < mp.length ? mp[i] : dflt;\n }\n return mp;\n };\n drawing.pointStyle = function(s, trace, gd, pt) {\n if (!s.size()) return;\n var fns = drawing.makePointStyleFns(trace);\n s.each(function(d) {\n drawing.singlePointStyle(d, d3.select(this), trace, fns, gd, pt);\n });\n };\n drawing.singlePointStyle = function(d, sel, trace, fns, gd, pt) {\n var marker = trace.marker;\n var markerLine = marker.line;\n if (pt && pt.i >= 0 && d.i === void 0) d.i = pt.i;\n sel.style(\n \"opacity\",\n fns.selectedOpacityFn ? fns.selectedOpacityFn(d) : d.mo === void 0 ? marker.opacity : d.mo\n );\n if (fns.ms2mrc) {\n var r;\n if (d.ms === \"various\" || marker.size === \"various\") {\n r = 3;\n } else {\n r = fns.ms2mrc(d.ms);\n }\n d.mrc = r;\n if (fns.selectedSizeFn) {\n r = d.mrc = fns.selectedSizeFn(d);\n }\n var x = drawing.symbolNumber(d.mx || marker.symbol) || 0;\n d.om = x % 200 >= 100;\n var angle = getMarkerAngle(d, trace);\n var standoff = getMarkerStandoff(d, trace);\n sel.attr(\"d\", makePointPath(x, r, angle, standoff));\n }\n var perPointGradient = false;\n var fillColor, lineColor, lineWidth;\n if (d.so) {\n lineWidth = markerLine.outlierwidth;\n lineColor = markerLine.outliercolor;\n fillColor = marker.outliercolor;\n } else {\n var markerLineWidth = (markerLine || {}).width;\n lineWidth = (d.mlw + 1 || markerLineWidth + 1 || // TODO: we need the latter for legends... can we get rid of it?\n (d.trace ? (d.trace.marker.line || {}).width : 0) + 1) - 1 || 0;\n if (\"mlc\" in d) lineColor = d.mlcc = fns.lineScale(d.mlc);\n else if (Lib.isArrayOrTypedArray(markerLine.color)) lineColor = Color2.defaultLine;\n else lineColor = markerLine.color;\n if (Lib.isArrayOrTypedArray(marker.color)) {\n fillColor = Color2.defaultLine;\n perPointGradient = true;\n }\n if (\"mc\" in d) {\n fillColor = d.mcc = fns.markerScale(d.mc);\n } else {\n fillColor = marker.color || marker.colors || \"rgba(0,0,0,0)\";\n }\n if (fns.selectedColorFn) {\n fillColor = fns.selectedColorFn(d);\n }\n }\n if (d.om) {\n sel.call(Color2.stroke, fillColor).style({\n \"stroke-width\": (lineWidth || 1) + \"px\",\n fill: \"none\"\n });\n } else {\n sel.style(\"stroke-width\", (d.isBlank ? 0 : lineWidth) + \"px\");\n var markerGradient = marker.gradient;\n var gradientType = d.mgt;\n if (gradientType) perPointGradient = true;\n else gradientType = markerGradient && markerGradient.type;\n if (Lib.isArrayOrTypedArray(gradientType)) {\n gradientType = gradientType[0];\n if (!gradientInfo[gradientType]) gradientType = 0;\n }\n var markerPattern = marker.pattern;\n var patternShape = markerPattern && drawing.getPatternAttr(markerPattern.shape, d.i, \"\");\n if (gradientType && gradientType !== \"none\") {\n var gradientColor = d.mgc;\n if (gradientColor) perPointGradient = true;\n else gradientColor = markerGradient.color;\n var gradientID = trace.uid;\n if (perPointGradient) gradientID += \"-\" + d.i;\n drawing.gradient(\n sel,\n gd,\n gradientID,\n gradientType,\n [[0, gradientColor], [1, fillColor]],\n \"fill\"\n );\n } else if (patternShape) {\n var perPointPattern = false;\n var fgcolor = markerPattern.fgcolor;\n if (!fgcolor && pt && pt.color) {\n fgcolor = pt.color;\n perPointPattern = true;\n }\n var patternFGColor = drawing.getPatternAttr(fgcolor, d.i, pt && pt.color || null);\n var patternBGColor = drawing.getPatternAttr(markerPattern.bgcolor, d.i, null);\n var patternFGOpacity = markerPattern.fgopacity;\n var patternSize = drawing.getPatternAttr(markerPattern.size, d.i, 8);\n var patternSolidity = drawing.getPatternAttr(markerPattern.solidity, d.i, 0.3);\n perPointPattern = perPointPattern || d.mcc || Lib.isArrayOrTypedArray(markerPattern.shape) || Lib.isArrayOrTypedArray(markerPattern.bgcolor) || Lib.isArrayOrTypedArray(markerPattern.fgcolor) || Lib.isArrayOrTypedArray(markerPattern.size) || Lib.isArrayOrTypedArray(markerPattern.solidity);\n var patternID = trace.uid;\n if (perPointPattern) patternID += \"-\" + d.i;\n drawing.pattern(\n sel,\n \"point\",\n gd,\n patternID,\n patternShape,\n patternSize,\n patternSolidity,\n d.mcc,\n markerPattern.fillmode,\n patternBGColor,\n patternFGColor,\n patternFGOpacity\n );\n } else {\n Lib.isArrayOrTypedArray(fillColor) ? Color2.fill(sel, fillColor[d.i]) : Color2.fill(sel, fillColor);\n }\n if (lineWidth) {\n Color2.stroke(sel, lineColor);\n }\n }\n };\n drawing.makePointStyleFns = function(trace) {\n var out = {};\n var marker = trace.marker;\n out.markerScale = drawing.tryColorscale(marker, \"\");\n out.lineScale = drawing.tryColorscale(marker, \"line\");\n if (Registry.traceIs(trace, \"symbols\")) {\n out.ms2mrc = subTypes.isBubble(trace) ? makeBubbleSizeFn(trace) : function() {\n return (marker.size || 6) / 2;\n };\n }\n if (trace.selectedpoints) {\n Lib.extendFlat(out, drawing.makeSelectedPointStyleFns(trace));\n }\n return out;\n };\n drawing.makeSelectedPointStyleFns = function(trace) {\n var out = {};\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n var marker = trace.marker || {};\n var selectedMarker = selectedAttrs.marker || {};\n var unselectedMarker = unselectedAttrs.marker || {};\n var mo = marker.opacity;\n var smo = selectedMarker.opacity;\n var usmo = unselectedMarker.opacity;\n var smoIsDefined = smo !== void 0;\n var usmoIsDefined = usmo !== void 0;\n if (Lib.isArrayOrTypedArray(mo) || smoIsDefined || usmoIsDefined) {\n out.selectedOpacityFn = function(d) {\n var base = d.mo === void 0 ? marker.opacity : d.mo;\n if (d.selected) {\n return smoIsDefined ? smo : base;\n } else {\n return usmoIsDefined ? usmo : DESELECTDIM * base;\n }\n };\n }\n var mc = marker.color;\n var smc = selectedMarker.color;\n var usmc = unselectedMarker.color;\n if (smc || usmc) {\n out.selectedColorFn = function(d) {\n var base = d.mcc || mc;\n if (d.selected) {\n return smc || base;\n } else {\n return usmc || base;\n }\n };\n }\n var ms = marker.size;\n var sms = selectedMarker.size;\n var usms = unselectedMarker.size;\n var smsIsDefined = sms !== void 0;\n var usmsIsDefined = usms !== void 0;\n if (Registry.traceIs(trace, \"symbols\") && (smsIsDefined || usmsIsDefined)) {\n out.selectedSizeFn = function(d) {\n var base = d.mrc || ms / 2;\n if (d.selected) {\n return smsIsDefined ? sms / 2 : base;\n } else {\n return usmsIsDefined ? usms / 2 : base;\n }\n };\n }\n return out;\n };\n drawing.makeSelectedTextStyleFns = function(trace) {\n var out = {};\n var selectedAttrs = trace.selected || {};\n var unselectedAttrs = trace.unselected || {};\n var textFont = trace.textfont || {};\n var selectedTextFont = selectedAttrs.textfont || {};\n var unselectedTextFont = unselectedAttrs.textfont || {};\n var tc = textFont.color;\n var stc = selectedTextFont.color;\n var utc = unselectedTextFont.color;\n out.selectedTextColorFn = function(d) {\n var base = d.tc || tc;\n if (d.selected) {\n return stc || base;\n } else {\n if (utc) return utc;\n else return stc ? base : Color2.addOpacity(base, DESELECTDIM);\n }\n };\n return out;\n };\n drawing.selectedPointStyle = function(s, trace) {\n if (!s.size() || !trace.selectedpoints) return;\n var fns = drawing.makeSelectedPointStyleFns(trace);\n var marker = trace.marker || {};\n var seq = [];\n if (fns.selectedOpacityFn) {\n seq.push(function(pt, d) {\n pt.style(\"opacity\", fns.selectedOpacityFn(d));\n });\n }\n if (fns.selectedColorFn) {\n seq.push(function(pt, d) {\n Color2.fill(pt, fns.selectedColorFn(d));\n });\n }\n if (fns.selectedSizeFn) {\n seq.push(function(pt, d) {\n var mx = d.mx || marker.symbol || 0;\n var mrc2 = fns.selectedSizeFn(d);\n pt.attr(\"d\", makePointPath(drawing.symbolNumber(mx), mrc2, getMarkerAngle(d, trace), getMarkerStandoff(d, trace)));\n d.mrc2 = mrc2;\n });\n }\n if (seq.length) {\n s.each(function(d) {\n var pt = d3.select(this);\n for (var i = 0; i < seq.length; i++) {\n seq[i](pt, d);\n }\n });\n }\n };\n drawing.tryColorscale = function(marker, prefix) {\n var cont = prefix ? Lib.nestedProperty(marker, prefix).get() : marker;\n if (cont) {\n var colorArray = cont.color;\n if ((cont.colorscale || cont._colorAx) && Lib.isArrayOrTypedArray(colorArray)) {\n return Colorscale.makeColorScaleFuncFromTrace(cont);\n }\n }\n return Lib.identity;\n };\n var TEXTOFFSETSIGN = {\n start: 1,\n end: -1,\n middle: 0,\n bottom: 1,\n top: -1\n };\n function textPointPosition(s, textPosition, fontSize, markerRadius, dontTouchParent) {\n var group = d3.select(s.node().parentNode);\n var v = textPosition.indexOf(\"top\") !== -1 ? \"top\" : textPosition.indexOf(\"bottom\") !== -1 ? \"bottom\" : \"middle\";\n var h = textPosition.indexOf(\"left\") !== -1 ? \"end\" : textPosition.indexOf(\"right\") !== -1 ? \"start\" : \"middle\";\n var r = markerRadius ? markerRadius / 0.8 + 1 : 0;\n var numLines = (svgTextUtils.lineCount(s) - 1) * LINE_SPACING + 1;\n var dx = TEXTOFFSETSIGN[h] * r;\n var dy = fontSize * 0.75 + TEXTOFFSETSIGN[v] * r + (TEXTOFFSETSIGN[v] - 1) * numLines * fontSize / 2;\n s.attr(\"text-anchor\", h);\n if (!dontTouchParent) {\n group.attr(\"transform\", strTranslate(dx, dy));\n }\n }\n function extracTextFontSize(d, trace) {\n var fontSize = d.ts || trace.textfont.size;\n return isNumeric(fontSize) && fontSize > 0 ? fontSize : 0;\n }\n drawing.textPointStyle = function(s, trace, gd) {\n if (!s.size()) return;\n var selectedTextColorFn;\n if (trace.selectedpoints) {\n var fns = drawing.makeSelectedTextStyleFns(trace);\n selectedTextColorFn = fns.selectedTextColorFn;\n }\n var texttemplate = trace.texttemplate;\n var fullLayout = gd._fullLayout;\n s.each(function(d) {\n var p = d3.select(this);\n var text = texttemplate ? Lib.extractOption(d, trace, \"txt\", \"texttemplate\") : Lib.extractOption(d, trace, \"tx\", \"text\");\n if (!text && text !== 0) {\n p.remove();\n return;\n }\n if (texttemplate) {\n var fn = trace._module.formatLabels;\n var labels = fn ? fn(d, trace, fullLayout) : {};\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, d.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(text, labels, fullLayout._d3locale, pointValues, d, meta);\n }\n var pos = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n var fontColor = selectedTextColorFn ? selectedTextColorFn(d) : d.tc || trace.textfont.color;\n p.call(drawing.font, {\n family: d.tf || trace.textfont.family,\n weight: d.tw || trace.textfont.weight,\n style: d.ty || trace.textfont.style,\n variant: d.tv || trace.textfont.variant,\n textcase: d.tC || trace.textfont.textcase,\n lineposition: d.tE || trace.textfont.lineposition,\n shadow: d.tS || trace.textfont.shadow,\n size: fontSize,\n color: fontColor\n }).text(text).call(svgTextUtils.convertToTspans, gd).call(textPointPosition, pos, fontSize, d.mrc);\n });\n };\n drawing.selectedTextStyle = function(s, trace) {\n if (!s.size() || !trace.selectedpoints) return;\n var fns = drawing.makeSelectedTextStyleFns(trace);\n s.each(function(d) {\n var tx = d3.select(this);\n var tc = fns.selectedTextColorFn(d);\n var tp = d.tp || trace.textposition;\n var fontSize = extracTextFontSize(d, trace);\n Color2.fill(tx, tc);\n var dontTouchParent = Registry.traceIs(trace, \"bar-like\");\n textPointPosition(tx, tp, fontSize, d.mrc2 || d.mrc, dontTouchParent);\n });\n };\n var CatmullRomExp = 0.5;\n drawing.smoothopen = function(pts, smoothness) {\n if (pts.length < 3) {\n return \"M\" + pts.join(\"L\");\n }\n var path = \"M\" + pts[0];\n var tangents = [];\n var i;\n for (i = 1; i < pts.length - 1; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n path += \"Q\" + tangents[0][0] + \" \" + pts[1];\n for (i = 2; i < pts.length - 1; i++) {\n path += \"C\" + tangents[i - 2][1] + \" \" + tangents[i - 1][0] + \" \" + pts[i];\n }\n path += \"Q\" + tangents[pts.length - 3][1] + \" \" + pts[pts.length - 1];\n return path;\n };\n drawing.smoothclosed = function(pts, smoothness) {\n if (pts.length < 3) {\n return \"M\" + pts.join(\"L\") + \"Z\";\n }\n var path = \"M\" + pts[0];\n var pLast = pts.length - 1;\n var tangents = [makeTangent(pts[pLast], pts[0], pts[1], smoothness)];\n var i;\n for (i = 1; i < pLast; i++) {\n tangents.push(makeTangent(pts[i - 1], pts[i], pts[i + 1], smoothness));\n }\n tangents.push(\n makeTangent(pts[pLast - 1], pts[pLast], pts[0], smoothness)\n );\n for (i = 1; i <= pLast; i++) {\n path += \"C\" + tangents[i - 1][1] + \" \" + tangents[i][0] + \" \" + pts[i];\n }\n path += \"C\" + tangents[pLast][1] + \" \" + tangents[0][0] + \" \" + pts[0] + \"Z\";\n return path;\n };\n var lastDrawnX;\n var lastDrawnY;\n function roundEnd(pt, isY, isLastPoint) {\n if (isLastPoint) pt = applyBackoff(pt);\n return isY ? roundY(pt[1]) : roundX(pt[0]);\n }\n function roundX(p) {\n var v = d3.round(p, 2);\n lastDrawnX = v;\n return v;\n }\n function roundY(p) {\n var v = d3.round(p, 2);\n lastDrawnY = v;\n return v;\n }\n function makeTangent(prevpt, thispt, nextpt, smoothness) {\n var d1x = prevpt[0] - thispt[0];\n var d1y = prevpt[1] - thispt[1];\n var d2x = nextpt[0] - thispt[0];\n var d2y = nextpt[1] - thispt[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = 3 * d2a * (d1a + d2a);\n var denom2 = 3 * d1a * (d1a + d2a);\n return [\n [\n roundX(thispt[0] + (denom1 && numx / denom1)),\n roundY(thispt[1] + (denom1 && numy / denom1))\n ],\n [\n roundX(thispt[0] - (denom2 && numx / denom2)),\n roundY(thispt[1] - (denom2 && numy / denom2))\n ]\n ];\n }\n var STEPPATH = {\n hv: function(p0, p1, isLastPoint) {\n return \"H\" + roundX(p1[0]) + \"V\" + roundEnd(p1, 1, isLastPoint);\n },\n vh: function(p0, p1, isLastPoint) {\n return \"V\" + roundY(p1[1]) + \"H\" + roundEnd(p1, 0, isLastPoint);\n },\n hvh: function(p0, p1, isLastPoint) {\n return \"H\" + roundX((p0[0] + p1[0]) / 2) + \"V\" + roundY(p1[1]) + \"H\" + roundEnd(p1, 0, isLastPoint);\n },\n vhv: function(p0, p1, isLastPoint) {\n return \"V\" + roundY((p0[1] + p1[1]) / 2) + \"H\" + roundX(p1[0]) + \"V\" + roundEnd(p1, 1, isLastPoint);\n }\n };\n var STEPLINEAR = function(p0, p1, isLastPoint) {\n return \"L\" + roundEnd(p1, 0, isLastPoint) + \",\" + roundEnd(p1, 1, isLastPoint);\n };\n drawing.steps = function(shape) {\n var onestep = STEPPATH[shape] || STEPLINEAR;\n return function(pts) {\n var path = \"M\" + roundX(pts[0][0]) + \",\" + roundY(pts[0][1]);\n var len = pts.length;\n for (var i = 1; i < len; i++) {\n path += onestep(pts[i - 1], pts[i], i === len - 1);\n }\n return path;\n };\n };\n function applyBackoff(pt, start) {\n var backoff = pt.backoff;\n var trace = pt.trace;\n var d = pt.d;\n var i = pt.i;\n if (backoff && trace && trace.marker && trace.marker.angle % 360 === 0 && trace.line && trace.line.shape !== \"spline\") {\n var arrayBackoff = Lib.isArrayOrTypedArray(backoff);\n var end = pt;\n var x1 = start ? start[0] : lastDrawnX || 0;\n var y1 = start ? start[1] : lastDrawnY || 0;\n var x2 = end[0];\n var y2 = end[1];\n var dx = x2 - x1;\n var dy = y2 - y1;\n var t = Math.atan2(dy, dx);\n var b = arrayBackoff ? backoff[i] : backoff;\n if (b === \"auto\") {\n var endI = end.i;\n if (trace.type === \"scatter\") endI--;\n var endMarker = end.marker;\n var endMarkerSymbol = endMarker.symbol;\n if (Lib.isArrayOrTypedArray(endMarkerSymbol)) endMarkerSymbol = endMarkerSymbol[endI];\n var endMarkerSize = endMarker.size;\n if (Lib.isArrayOrTypedArray(endMarkerSize)) endMarkerSize = endMarkerSize[endI];\n b = endMarker ? drawing.symbolBackOffs[drawing.symbolNumber(endMarkerSymbol)] * endMarkerSize : 0;\n b += drawing.getMarkerStandoff(d[endI], trace) || 0;\n }\n var x = x2 - b * Math.cos(t);\n var y = y2 - b * Math.sin(t);\n if ((x <= x2 && x >= x1 || x >= x2 && x <= x1) && (y <= y2 && y >= y1 || y >= y2 && y <= y1)) {\n pt = [x, y];\n }\n }\n return pt;\n }\n drawing.applyBackoff = applyBackoff;\n drawing.makeTester = function() {\n var tester = Lib.ensureSingleById(d3.select(\"body\"), \"svg\", \"js-plotly-tester\", function(s) {\n s.attr(xmlnsNamespaces.svgAttrs).style({\n position: \"absolute\",\n left: \"-10000px\",\n top: \"-10000px\",\n width: \"9000px\",\n height: \"9000px\",\n \"z-index\": \"1\"\n });\n });\n var testref = Lib.ensureSingle(tester, \"path\", \"js-reference-point\", function(s) {\n s.attr(\"d\", \"M0,0H1V1H0Z\").style({\n \"stroke-width\": 0,\n fill: \"black\"\n });\n });\n drawing.tester = tester;\n drawing.testref = testref;\n };\n drawing.savedBBoxes = {};\n var savedBBoxesCount = 0;\n var maxSavedBBoxes = 1e4;\n drawing.bBox = function(node, inTester, hash) {\n if (!hash) hash = nodeHash(node);\n var out;\n if (hash) {\n out = drawing.savedBBoxes[hash];\n if (out) return Lib.extendFlat({}, out);\n } else if (node.childNodes.length === 1) {\n var innerNode = node.childNodes[0];\n hash = nodeHash(innerNode);\n if (hash) {\n var x = +innerNode.getAttribute(\"x\") || 0;\n var y = +innerNode.getAttribute(\"y\") || 0;\n var transform = innerNode.getAttribute(\"transform\");\n if (!transform) {\n var innerBB = drawing.bBox(innerNode, false, hash);\n if (x) {\n innerBB.left += x;\n innerBB.right += x;\n }\n if (y) {\n innerBB.top += y;\n innerBB.bottom += y;\n }\n return innerBB;\n }\n hash += \"~\" + x + \"~\" + y + \"~\" + transform;\n out = drawing.savedBBoxes[hash];\n if (out) return Lib.extendFlat({}, out);\n }\n }\n var testNode, tester;\n if (inTester) {\n testNode = node;\n } else {\n tester = drawing.tester.node();\n testNode = node.cloneNode(true);\n tester.appendChild(testNode);\n }\n d3.select(testNode).attr(\"transform\", null).call(svgTextUtils.positionText, 0, 0);\n var testRect = testNode.getBoundingClientRect();\n var refRect = drawing.testref.node().getBoundingClientRect();\n if (!inTester) tester.removeChild(testNode);\n var bb = {\n height: testRect.height,\n width: testRect.width,\n left: testRect.left - refRect.left,\n top: testRect.top - refRect.top,\n right: testRect.right - refRect.left,\n bottom: testRect.bottom - refRect.top\n };\n if (savedBBoxesCount >= maxSavedBBoxes) {\n drawing.savedBBoxes = {};\n savedBBoxesCount = 0;\n }\n if (hash) drawing.savedBBoxes[hash] = bb;\n savedBBoxesCount++;\n return Lib.extendFlat({}, bb);\n };\n function nodeHash(node) {\n var inputText = node.getAttribute(\"data-unformatted\");\n if (inputText === null) return;\n return inputText + node.getAttribute(\"data-math\") + node.getAttribute(\"text-anchor\") + node.getAttribute(\"style\");\n }\n drawing.setClipUrl = function(s, localId, gd) {\n s.attr(\"clip-path\", getFullUrl(localId, gd));\n };\n function getFullUrl(localId, gd) {\n if (!localId) return null;\n var context = gd._context;\n var baseUrl = context._exportedPlot ? \"\" : context._baseUrl || \"\";\n return baseUrl ? \"url('\" + baseUrl + \"#\" + localId + \"')\" : \"url(#\" + localId + \")\";\n }\n drawing.getTranslate = function(element) {\n var re = /.*\\btranslate\\((-?\\d*\\.?\\d*)[^-\\d]*(-?\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(\" \");\n }).split(\" \");\n return {\n x: +translate[0] || 0,\n y: +translate[1] || 0\n };\n };\n drawing.setTranslate = function(element, x, y) {\n var re = /(\\btranslate\\(.*?\\);?)/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var setter = element.attr ? \"attr\" : \"setAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n x = x || 0;\n y = y || 0;\n transform = transform.replace(re, \"\").trim();\n transform += strTranslate(x, y);\n transform = transform.trim();\n element[setter](\"transform\", transform);\n return transform;\n };\n drawing.getScale = function(element) {\n var re = /.*\\bscale\\((\\d*\\.?\\d*)[^\\d]*(\\d*\\.?\\d*)[^\\d].*/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n var translate = transform.replace(re, function(match, p1, p2) {\n return [p1, p2].join(\" \");\n }).split(\" \");\n return {\n x: +translate[0] || 1,\n y: +translate[1] || 1\n };\n };\n drawing.setScale = function(element, x, y) {\n var re = /(\\bscale\\(.*?\\);?)/;\n var getter = element.attr ? \"attr\" : \"getAttribute\";\n var setter = element.attr ? \"attr\" : \"setAttribute\";\n var transform = element[getter](\"transform\") || \"\";\n x = x || 1;\n y = y || 1;\n transform = transform.replace(re, \"\").trim();\n transform += \"scale(\" + x + \",\" + y + \")\";\n transform = transform.trim();\n element[setter](\"transform\", transform);\n return transform;\n };\n var SCALE_RE = /\\s*sc.*/;\n drawing.setPointGroupScale = function(selection, xScale, yScale) {\n xScale = xScale || 1;\n yScale = yScale || 1;\n if (!selection) return;\n var scale = xScale === 1 && yScale === 1 ? \"\" : \"scale(\" + xScale + \",\" + yScale + \")\";\n selection.each(function() {\n var t = (this.getAttribute(\"transform\") || \"\").replace(SCALE_RE, \"\");\n t += scale;\n t = t.trim();\n this.setAttribute(\"transform\", t);\n });\n };\n var TEXT_POINT_LAST_TRANSLATION_RE = /translate\\([^)]*\\)\\s*$/;\n drawing.setTextPointsScale = function(selection, xScale, yScale) {\n if (!selection) return;\n selection.each(function() {\n var transforms;\n var el = d3.select(this);\n var text = el.select(\"text\");\n if (!text.node()) return;\n var x = parseFloat(text.attr(\"x\") || 0);\n var y = parseFloat(text.attr(\"y\") || 0);\n var existingTransform = (el.attr(\"transform\") || \"\").match(TEXT_POINT_LAST_TRANSLATION_RE);\n if (xScale === 1 && yScale === 1) {\n transforms = [];\n } else {\n transforms = [\n strTranslate(x, y),\n \"scale(\" + xScale + \",\" + yScale + \")\",\n strTranslate(-x, -y)\n ];\n }\n if (existingTransform) {\n transforms.push(existingTransform);\n }\n el.attr(\"transform\", transforms.join(\"\"));\n });\n };\n function getMarkerStandoff(d, trace) {\n var standoff;\n if (d) standoff = d.mf;\n if (standoff === void 0) {\n standoff = trace.marker ? trace.marker.standoff || 0 : 0;\n }\n if (!trace._geo && !trace._xA) {\n return -standoff;\n }\n return standoff;\n }\n drawing.getMarkerStandoff = getMarkerStandoff;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var sin = Math.sin;\n function rotate(t, xy) {\n var x = xy[0];\n var y = xy[1];\n return [\n x * cos(t) - y * sin(t),\n x * sin(t) + y * cos(t)\n ];\n }\n var previousLon;\n var previousLat;\n var previousX;\n var previousY;\n var previousI;\n var previousTraceUid;\n function getMarkerAngle(d, trace) {\n var angle = d.ma;\n if (angle === void 0) {\n angle = trace.marker.angle;\n if (!angle || Lib.isArrayOrTypedArray(angle)) {\n angle = 0;\n }\n }\n var x, y;\n var ref = trace.marker.angleref;\n if (ref === \"previous\" || ref === \"north\") {\n if (trace._geo) {\n var p = trace._geo.project(d.lonlat);\n x = p[0];\n y = p[1];\n } else {\n var xa = trace._xA;\n var ya = trace._yA;\n if (xa && ya) {\n x = xa.c2p(d.x);\n y = ya.c2p(d.y);\n } else {\n return 90;\n }\n }\n if (trace._geo) {\n var lon = d.lonlat[0];\n var lat = d.lonlat[1];\n var north = trace._geo.project([\n lon,\n lat + 1e-5\n // epsilon\n ]);\n var east = trace._geo.project([\n lon + 1e-5,\n // epsilon\n lat\n ]);\n var u = atan2(\n east[1] - y,\n east[0] - x\n );\n var v = atan2(\n north[1] - y,\n north[0] - x\n );\n var t;\n if (ref === \"north\") {\n t = angle / 180 * Math.PI;\n } else if (ref === \"previous\") {\n var lon1 = lon / 180 * Math.PI;\n var lat1 = lat / 180 * Math.PI;\n var lon2 = previousLon / 180 * Math.PI;\n var lat2 = previousLat / 180 * Math.PI;\n var dLon = lon2 - lon1;\n var deltaY = cos(lat2) * sin(dLon);\n var deltaX = sin(lat2) * cos(lat1) - cos(lat2) * sin(lat1) * cos(dLon);\n t = -atan2(\n deltaY,\n deltaX\n ) - Math.PI;\n previousLon = lon;\n previousLat = lat;\n }\n var A2 = rotate(u, [cos(t), 0]);\n var B2 = rotate(v, [sin(t), 0]);\n angle = atan2(\n A2[1] + B2[1],\n A2[0] + B2[0]\n ) / Math.PI * 180;\n if (ref === \"previous\" && !(previousTraceUid === trace.uid && d.i === previousI + 1)) {\n angle = null;\n }\n }\n if (ref === \"previous\" && !trace._geo) {\n if (previousTraceUid === trace.uid && d.i === previousI + 1 && isNumeric(x) && isNumeric(y)) {\n var dX = x - previousX;\n var dY = y - previousY;\n var shape = trace.line ? trace.line.shape || \"\" : \"\";\n var lastShapeChar = shape.slice(shape.length - 1);\n if (lastShapeChar === \"h\") dY = 0;\n if (lastShapeChar === \"v\") dX = 0;\n angle += atan2(dY, dX) / Math.PI * 180 + 90;\n } else {\n angle = null;\n }\n }\n }\n previousX = x;\n previousY = y;\n previousI = d.i;\n previousTraceUid = trace.uid;\n return angle;\n }\n drawing.getMarkerAngle = getMarkerAngle;\n }\n });\n\n // src/components/titles/index.js\n var require_titles = __commonJS({\n \"src/components/titles/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Plots = require_plots();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var Color2 = require_color();\n var svgTextUtils = require_svg_text_utils();\n var interactConstants = require_interactions();\n var OPPOSITE_SIDE = require_alignment().OPPOSITE_SIDE;\n var numStripRE = / [XY][0-9]* /;\n var SUBTITLE_PADDING_MATHJAX_EM = 1.6;\n var SUBTITLE_PADDING_EM = 1.6;\n function draw(gd, titleClass, options) {\n var fullLayout = gd._fullLayout;\n var cont = options.propContainer;\n var prop = options.propName;\n var placeholder = options.placeholder;\n var traceIndex = options.traceIndex;\n var avoid = options.avoid || {};\n var attributes = options.attributes;\n var transform = options.transform;\n var group = options.containerGroup;\n var opacity = 1;\n var title = cont.title;\n var txt = (title && title.text ? title.text : \"\").trim();\n var titleIsPlaceholder = false;\n var font = title && title.font ? title.font : {};\n var fontFamily = font.family;\n var fontSize = font.size;\n var fontColor = font.color;\n var fontWeight = font.weight;\n var fontStyle = font.style;\n var fontVariant = font.variant;\n var fontTextcase = font.textcase;\n var fontLineposition = font.lineposition;\n var fontShadow = font.shadow;\n var subtitleProp = options.subtitlePropName;\n var subtitleEnabled = !!subtitleProp;\n var subtitlePlaceholder = options.subtitlePlaceholder;\n var subtitle = (cont.title || {}).subtitle || { text: \"\", font: {} };\n var subtitleTxt = subtitle.text.trim();\n var subtitleIsPlaceholder = false;\n var subtitleOpacity = 1;\n var subtitleFont = subtitle.font;\n var subFontFamily = subtitleFont.family;\n var subFontSize = subtitleFont.size;\n var subFontColor = subtitleFont.color;\n var subFontWeight = subtitleFont.weight;\n var subFontStyle = subtitleFont.style;\n var subFontVariant = subtitleFont.variant;\n var subFontTextcase = subtitleFont.textcase;\n var subFontLineposition = subtitleFont.lineposition;\n var subFontShadow = subtitleFont.shadow;\n var editAttr;\n if (prop === \"title.text\") editAttr = \"titleText\";\n else if (prop.indexOf(\"axis\") !== -1) editAttr = \"axisTitleText\";\n else if (prop.indexOf(\"colorbar\" !== -1)) editAttr = \"colorbarTitleText\";\n var editable = gd._context.edits[editAttr];\n function matchesPlaceholder(text, placeholder2) {\n if (text === void 0 || placeholder2 === void 0) return false;\n return text.replace(numStripRE, \" % \") === placeholder2.replace(numStripRE, \" % \");\n }\n if (txt === \"\") opacity = 0;\n else if (matchesPlaceholder(txt, placeholder)) {\n if (!editable) txt = \"\";\n opacity = 0.2;\n titleIsPlaceholder = true;\n }\n if (subtitleEnabled) {\n if (subtitleTxt === \"\") subtitleOpacity = 0;\n else if (matchesPlaceholder(subtitleTxt, subtitlePlaceholder)) {\n if (!editable) subtitleTxt = \"\";\n subtitleOpacity = 0.2;\n subtitleIsPlaceholder = true;\n }\n }\n if (options._meta) {\n txt = Lib.templateString(txt, options._meta);\n } else if (fullLayout._meta) {\n txt = Lib.templateString(txt, fullLayout._meta);\n }\n var elShouldExist = txt || subtitleTxt || editable;\n var hColorbarMoveTitle;\n if (!group) {\n group = Lib.ensureSingle(fullLayout._infolayer, \"g\", \"g-\" + titleClass);\n hColorbarMoveTitle = fullLayout._hColorbarMoveTitle;\n }\n var el = group.selectAll(\"text.\" + titleClass).data(elShouldExist ? [0] : []);\n el.enter().append(\"text\");\n el.text(txt).attr(\"class\", titleClass);\n el.exit().remove();\n var subtitleEl = null;\n var subtitleClass = titleClass + \"-subtitle\";\n var subtitleElShouldExist = subtitleTxt || editable;\n if (subtitleEnabled && subtitleElShouldExist) {\n subtitleEl = group.selectAll(\"text.\" + subtitleClass).data(subtitleElShouldExist ? [0] : []);\n subtitleEl.enter().append(\"text\");\n subtitleEl.text(subtitleTxt).attr(\"class\", subtitleClass);\n subtitleEl.exit().remove();\n }\n if (!elShouldExist) return group;\n function titleLayout(titleEl, subtitleEl2) {\n Lib.syncOrAsync([drawTitle, scootTitle], { title: titleEl, subtitle: subtitleEl2 });\n }\n function drawTitle(titleAndSubtitleEls) {\n var titleEl = titleAndSubtitleEls.title;\n var subtitleEl2 = titleAndSubtitleEls.subtitle;\n var transformVal;\n if (!transform && hColorbarMoveTitle) {\n transform = {};\n }\n if (transform) {\n transformVal = \"\";\n if (transform.rotate) {\n transformVal += \"rotate(\" + [transform.rotate, attributes.x, attributes.y] + \")\";\n }\n if (transform.offset || hColorbarMoveTitle) {\n transformVal += strTranslate(0, (transform.offset || 0) - (hColorbarMoveTitle || 0));\n }\n } else {\n transformVal = null;\n }\n titleEl.attr(\"transform\", transformVal);\n function adjustSubtitlePosition(titleElMathGroup2) {\n if (!titleElMathGroup2) return;\n var subtitleElement = d3.select(titleElMathGroup2.node().parentNode).select(\".\" + subtitleClass);\n if (!subtitleElement.empty()) {\n var titleElMathBbox2 = titleElMathGroup2.node().getBBox();\n if (titleElMathBbox2.height) {\n var subtitleY3 = titleElMathBbox2.y + titleElMathBbox2.height + SUBTITLE_PADDING_MATHJAX_EM * subFontSize;\n subtitleElement.attr(\"y\", subtitleY3);\n }\n }\n }\n titleEl.style(\"opacity\", opacity * Color2.opacity(fontColor)).call(Drawing.font, {\n color: Color2.rgb(fontColor),\n size: d3.round(fontSize, 2),\n family: fontFamily,\n weight: fontWeight,\n style: fontStyle,\n variant: fontVariant,\n textcase: fontTextcase,\n shadow: fontShadow,\n lineposition: fontLineposition\n }).attr(attributes).call(svgTextUtils.convertToTspans, gd, adjustSubtitlePosition);\n if (subtitleEl2) {\n var titleElMathGroup = group.select(\".\" + titleClass + \"-math-group\");\n var titleElBbox2 = titleEl.node().getBBox();\n var titleElMathBbox = titleElMathGroup.node() ? titleElMathGroup.node().getBBox() : void 0;\n var subtitleY2 = titleElMathBbox ? titleElMathBbox.y + titleElMathBbox.height + SUBTITLE_PADDING_MATHJAX_EM * subFontSize : titleElBbox2.y + titleElBbox2.height + SUBTITLE_PADDING_EM * subFontSize;\n var subtitleAttributes = Lib.extendFlat({}, attributes, {\n y: subtitleY2\n });\n subtitleEl2.attr(\"transform\", transformVal);\n subtitleEl2.style(\"opacity\", subtitleOpacity * Color2.opacity(subFontColor)).call(Drawing.font, {\n color: Color2.rgb(subFontColor),\n size: d3.round(subFontSize, 2),\n family: subFontFamily,\n weight: subFontWeight,\n style: subFontStyle,\n variant: subFontVariant,\n textcase: subFontTextcase,\n shadow: subFontShadow,\n lineposition: subFontLineposition\n }).attr(subtitleAttributes).call(svgTextUtils.convertToTspans, gd);\n }\n return Plots.previousPromises(gd);\n }\n function scootTitle(titleAndSubtitleEls) {\n var titleElIn = titleAndSubtitleEls.title;\n var titleGroup = d3.select(titleElIn.node().parentNode);\n if (avoid && avoid.selection && avoid.side && txt) {\n titleGroup.attr(\"transform\", null);\n var backside = OPPOSITE_SIDE[avoid.side];\n var shiftSign = avoid.side === \"left\" || avoid.side === \"top\" ? -1 : 1;\n var pad = isNumeric(avoid.pad) ? avoid.pad : 2;\n var titlebb = Drawing.bBox(titleGroup.node());\n var reservedMargins = { t: 0, b: 0, l: 0, r: 0 };\n var margins = gd._fullLayout._reservedMargin;\n for (var key in margins) {\n for (var side in margins[key]) {\n var val = margins[key][side];\n reservedMargins[side] = Math.max(reservedMargins[side], val);\n }\n }\n var paperbb = {\n left: reservedMargins.l,\n top: reservedMargins.t,\n right: fullLayout.width - reservedMargins.r,\n bottom: fullLayout.height - reservedMargins.b\n };\n var maxshift = avoid.maxShift || shiftSign * (paperbb[avoid.side] - titlebb[avoid.side]);\n var shift = 0;\n if (maxshift < 0) {\n shift = maxshift;\n } else {\n var offsetLeft = avoid.offsetLeft || 0;\n var offsetTop = avoid.offsetTop || 0;\n titlebb.left -= offsetLeft;\n titlebb.right -= offsetLeft;\n titlebb.top -= offsetTop;\n titlebb.bottom -= offsetTop;\n avoid.selection.each(function() {\n var avoidbb = Drawing.bBox(this);\n if (Lib.bBoxIntersect(titlebb, avoidbb, pad)) {\n shift = Math.max(shift, shiftSign * (avoidbb[avoid.side] - titlebb[backside]) + pad);\n }\n });\n shift = Math.min(maxshift, shift);\n cont._titleScoot = Math.abs(shift);\n }\n if (shift > 0 || maxshift < 0) {\n var shiftTemplate = {\n left: [-shift, 0],\n right: [shift, 0],\n top: [0, -shift],\n bottom: [0, shift]\n }[avoid.side];\n titleGroup.attr(\"transform\", strTranslate(shiftTemplate[0], shiftTemplate[1]));\n }\n }\n }\n el.call(titleLayout, subtitleEl);\n function setPlaceholder(element, placeholderText) {\n element.text(placeholderText).on(\"mouseover.opacity\", function() {\n d3.select(this).transition().duration(interactConstants.SHOW_PLACEHOLDER).style(\"opacity\", 1);\n }).on(\"mouseout.opacity\", function() {\n d3.select(this).transition().duration(interactConstants.HIDE_PLACEHOLDER).style(\"opacity\", 0);\n });\n }\n if (editable) {\n if (!txt) {\n setPlaceholder(el, placeholder);\n titleIsPlaceholder = true;\n } else el.on(\".opacity\", null);\n el.call(svgTextUtils.makeEditable, { gd }).on(\"edit\", function(text) {\n if (traceIndex !== void 0) {\n Registry.call(\"_guiRestyle\", gd, prop, text, traceIndex);\n } else {\n Registry.call(\"_guiRelayout\", gd, prop, text);\n }\n }).on(\"cancel\", function() {\n this.text(this.attr(\"data-unformatted\")).call(titleLayout);\n }).on(\"input\", function(d) {\n this.text(d || \" \").call(svgTextUtils.positionText, attributes.x, attributes.y);\n });\n if (subtitleEnabled) {\n if (subtitleEnabled && !txt) {\n var titleElBbox = el.node().getBBox();\n var subtitleY = titleElBbox.y + titleElBbox.height + SUBTITLE_PADDING_EM * subFontSize;\n subtitleEl.attr(\"y\", subtitleY);\n }\n if (!subtitleTxt) {\n setPlaceholder(subtitleEl, subtitlePlaceholder);\n subtitleIsPlaceholder = true;\n } else subtitleEl.on(\".opacity\", null);\n subtitleEl.call(svgTextUtils.makeEditable, { gd }).on(\"edit\", function(text) {\n Registry.call(\"_guiRelayout\", gd, \"title.subtitle.text\", text);\n }).on(\"cancel\", function() {\n this.text(this.attr(\"data-unformatted\")).call(titleLayout);\n }).on(\"input\", function(d) {\n this.text(d || \" \").call(svgTextUtils.positionText, subtitleEl.attr(\"x\"), subtitleEl.attr(\"y\"));\n });\n }\n }\n el.classed(\"js-placeholder\", titleIsPlaceholder);\n if (subtitleEl) subtitleEl.classed(\"js-placeholder\", subtitleIsPlaceholder);\n return group;\n }\n module.exports = {\n draw,\n SUBTITLE_PADDING_EM,\n SUBTITLE_PADDING_MATHJAX_EM\n };\n }\n });\n\n // src/plots/cartesian/set_convert.js\n var require_set_convert = __commonJS({\n \"src/plots/cartesian/set_convert.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var utcFormat = require_d3_time_format().utcFormat;\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var isNumeric = require_fast_isnumeric();\n var cleanNumber = Lib.cleanNumber;\n var ms2DateTime = Lib.ms2DateTime;\n var dateTime2ms = Lib.dateTime2ms;\n var ensureNumber = Lib.ensureNumber;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var numConstants = require_numerical();\n var FP_SAFE = numConstants.FP_SAFE;\n var BADNUM = numConstants.BADNUM;\n var LOG_CLIP = numConstants.LOG_CLIP;\n var ONEWEEK = numConstants.ONEWEEK;\n var ONEDAY = numConstants.ONEDAY;\n var ONEHOUR = numConstants.ONEHOUR;\n var ONEMIN = numConstants.ONEMIN;\n var ONESEC = numConstants.ONESEC;\n var axisIds = require_axis_ids();\n var constants = require_constants2();\n var HOUR_PATTERN = constants.HOUR_PATTERN;\n var WEEKDAY_PATTERN = constants.WEEKDAY_PATTERN;\n function fromLog(v) {\n return Math.pow(10, v);\n }\n function isValidCategory(v) {\n return v !== null && v !== void 0;\n }\n module.exports = function setConvert(ax, fullLayout) {\n fullLayout = fullLayout || {};\n var axId = ax._id || \"x\";\n var axLetter = axId.charAt(0);\n function toLog(v, clip) {\n if (v > 0) return Math.log(v) / Math.LN10;\n else if (v <= 0 && clip && ax.range && ax.range.length === 2) {\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n return 0.5 * (r0 + r1 - 2 * LOG_CLIP * Math.abs(r0 - r1));\n } else return BADNUM;\n }\n function dt2ms(v, _, calendar, opts) {\n if ((opts || {}).msUTC && isNumeric(v)) {\n return +v;\n }\n var ms = dateTime2ms(v, calendar || ax.calendar);\n if (ms === BADNUM) {\n if (isNumeric(v)) {\n v = +v;\n var msecTenths = Math.floor(Lib.mod(v + 0.05, 1) * 10);\n var msRounded = Math.round(v - msecTenths / 10);\n ms = dateTime2ms(new Date(msRounded)) + msecTenths / 10;\n } else return BADNUM;\n }\n return ms;\n }\n function ms2dt(v, r, calendar) {\n return ms2DateTime(v, r, calendar || ax.calendar);\n }\n function getCategoryName(v) {\n return ax._categories[Math.round(v)];\n }\n function setCategoryIndex(v) {\n if (isValidCategory(v)) {\n if (ax._categoriesMap === void 0) {\n ax._categoriesMap = {};\n }\n if (ax._categoriesMap[v] !== void 0) {\n return ax._categoriesMap[v];\n } else {\n ax._categories.push(typeof v === \"number\" ? String(v) : v);\n var curLength = ax._categories.length - 1;\n ax._categoriesMap[v] = curLength;\n return curLength;\n }\n }\n return BADNUM;\n }\n function setMultiCategoryIndex(arrayIn, len) {\n var arrayOut = new Array(len);\n for (var i = 0; i < len; i++) {\n var v0 = (arrayIn[0] || [])[i];\n var v1 = (arrayIn[1] || [])[i];\n arrayOut[i] = getCategoryIndex([v0, v1]);\n }\n return arrayOut;\n }\n function getCategoryIndex(v) {\n if (ax._categoriesMap) {\n return ax._categoriesMap[v];\n }\n }\n function getCategoryPosition(v) {\n var index = getCategoryIndex(v);\n if (index !== void 0) return index;\n if (isNumeric(v)) return +v;\n }\n function getRangePosition(v) {\n return isNumeric(v) ? +v : getCategoryIndex(v);\n }\n function _l2p(v, m, b) {\n return d3.round(b + m * v, 2);\n }\n function _p2l(px, m, b) {\n return (px - b) / m;\n }\n var l2p = function l2p2(v) {\n if (!isNumeric(v)) return BADNUM;\n return _l2p(v, ax._m, ax._b);\n };\n var p2l = function(px) {\n return _p2l(px, ax._m, ax._b);\n };\n if (ax.rangebreaks) {\n var isY = axLetter === \"y\";\n l2p = function(v) {\n if (!isNumeric(v)) return BADNUM;\n var len = ax._rangebreaks.length;\n if (!len) return _l2p(v, ax._m, ax._b);\n var flip = isY;\n if (ax.range[0] > ax.range[1]) flip = !flip;\n var signAx = flip ? -1 : 1;\n var pos = signAx * v;\n var q = 0;\n for (var i = 0; i < len; i++) {\n var min = signAx * ax._rangebreaks[i].min;\n var max = signAx * ax._rangebreaks[i].max;\n if (pos < min) break;\n if (pos > max) q = i + 1;\n else {\n q = pos < (min + max) / 2 ? i : i + 1;\n break;\n }\n }\n var b2 = ax._B[q] || 0;\n if (!isFinite(b2)) return 0;\n return _l2p(v, ax._m2, b2);\n };\n p2l = function(px) {\n var len = ax._rangebreaks.length;\n if (!len) return _p2l(px, ax._m, ax._b);\n var q = 0;\n for (var i = 0; i < len; i++) {\n if (px < ax._rangebreaks[i].pmin) break;\n if (px > ax._rangebreaks[i].pmax) q = i + 1;\n }\n return _p2l(px, ax._m2, ax._B[q]);\n };\n }\n ax.c2l = ax.type === \"log\" ? toLog : ensureNumber;\n ax.l2c = ax.type === \"log\" ? fromLog : ensureNumber;\n ax.l2p = l2p;\n ax.p2l = p2l;\n ax.c2p = ax.type === \"log\" ? function(v, clip) {\n return l2p(toLog(v, clip));\n } : l2p;\n ax.p2c = ax.type === \"log\" ? function(px) {\n return fromLog(p2l(px));\n } : p2l;\n if ([\"linear\", \"-\"].indexOf(ax.type) !== -1) {\n ax.d2r = ax.r2d = ax.d2c = ax.r2c = ax.d2l = ax.r2l = cleanNumber;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ensureNumber;\n ax.d2p = ax.r2p = function(v) {\n return ax.l2p(cleanNumber(v));\n };\n ax.p2d = ax.p2r = p2l;\n ax.cleanPos = ensureNumber;\n } else if (ax.type === \"log\") {\n ax.d2r = ax.d2l = function(v, clip) {\n return toLog(cleanNumber(v), clip);\n };\n ax.r2d = ax.r2c = function(v) {\n return fromLog(cleanNumber(v));\n };\n ax.d2c = ax.r2l = cleanNumber;\n ax.c2d = ax.l2r = ensureNumber;\n ax.c2r = toLog;\n ax.l2d = fromLog;\n ax.d2p = function(v, clip) {\n return ax.l2p(ax.d2r(v, clip));\n };\n ax.p2d = function(px) {\n return fromLog(p2l(px));\n };\n ax.r2p = function(v) {\n return ax.l2p(cleanNumber(v));\n };\n ax.p2r = p2l;\n ax.cleanPos = ensureNumber;\n } else if (ax.type === \"date\") {\n ax.d2r = ax.r2d = Lib.identity;\n ax.d2c = ax.r2c = ax.d2l = ax.r2l = dt2ms;\n ax.c2d = ax.c2r = ax.l2d = ax.l2r = ms2dt;\n ax.d2p = ax.r2p = function(v, _, calendar) {\n return ax.l2p(dt2ms(v, 0, calendar));\n };\n ax.p2d = ax.p2r = function(px, r, calendar) {\n return ms2dt(p2l(px), r, calendar);\n };\n ax.cleanPos = function(v) {\n return Lib.cleanDate(v, BADNUM, ax.calendar);\n };\n } else if (ax.type === \"category\") {\n ax.d2c = ax.d2l = setCategoryIndex;\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n ax.r2c = function(v) {\n var index = getRangePosition(v);\n return index !== void 0 ? index : ax.fraction2r(0.5);\n };\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getRangePosition;\n ax.d2p = function(v) {\n return ax.l2p(ax.r2c(v));\n };\n ax.p2d = function(px) {\n return getCategoryName(p2l(px));\n };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n ax.cleanPos = function(v) {\n if (typeof v === \"string\" && v !== \"\") return v;\n return ensureNumber(v);\n };\n } else if (ax.type === \"multicategory\") {\n ax.r2d = ax.c2d = ax.l2d = getCategoryName;\n ax.d2r = ax.d2l_noadd = getCategoryPosition;\n ax.r2c = function(v) {\n var index = getCategoryPosition(v);\n return index !== void 0 ? index : ax.fraction2r(0.5);\n };\n ax.r2c_just_indices = getCategoryIndex;\n ax.l2r = ax.c2r = ensureNumber;\n ax.r2l = getCategoryPosition;\n ax.d2p = function(v) {\n return ax.l2p(ax.r2c(v));\n };\n ax.p2d = function(px) {\n return getCategoryName(p2l(px));\n };\n ax.r2p = ax.d2p;\n ax.p2r = p2l;\n ax.cleanPos = function(v) {\n if (Array.isArray(v) || typeof v === \"string\" && v !== \"\") return v;\n return ensureNumber(v);\n };\n ax.setupMultiCategory = function(fullData) {\n var traceIndices = ax._traceIndices;\n var i, j;\n var group = ax._matchGroup;\n if (group && ax._categories.length === 0) {\n for (var axId2 in group) {\n if (axId2 !== axId) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n traceIndices = traceIndices.concat(ax2._traceIndices);\n }\n }\n }\n var seen = [[0, {}], [0, {}]];\n var list = [];\n for (i = 0; i < traceIndices.length; i++) {\n var trace = fullData[traceIndices[i]];\n if (axLetter in trace) {\n var arrayIn = trace[axLetter];\n var len = trace._length || Lib.minRowLength(arrayIn);\n if (isArrayOrTypedArray(arrayIn[0]) && isArrayOrTypedArray(arrayIn[1])) {\n for (j = 0; j < len; j++) {\n var v0 = arrayIn[0][j];\n var v1 = arrayIn[1][j];\n if (isValidCategory(v0) && isValidCategory(v1)) {\n list.push([v0, v1]);\n if (!(v0 in seen[0][1])) {\n seen[0][1][v0] = seen[0][0]++;\n }\n if (!(v1 in seen[1][1])) {\n seen[1][1][v1] = seen[1][0]++;\n }\n }\n }\n }\n }\n }\n list.sort(function(a, b) {\n var ind0 = seen[0][1];\n var d = ind0[a[0]] - ind0[b[0]];\n if (d) return d;\n var ind1 = seen[1][1];\n return ind1[a[1]] - ind1[b[1]];\n });\n for (i = 0; i < list.length; i++) {\n setCategoryIndex(list[i]);\n }\n };\n }\n ax.fraction2r = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return ax.l2r(rl0 + v * (rl1 - rl0));\n };\n ax.r2fraction = function(v) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n return (ax.r2l(v) - rl0) / (rl1 - rl0);\n };\n ax.limitRange = function(rangeAttr) {\n var minallowed = ax.minallowed;\n var maxallowed = ax.maxallowed;\n if (minallowed === void 0 && maxallowed === void 0) return;\n if (!rangeAttr) rangeAttr = \"range\";\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var rng = Lib.simpleMap(range, ax.r2l);\n var axrev = rng[1] < rng[0];\n if (axrev) rng.reverse();\n var bounds = Lib.simpleMap([minallowed, maxallowed], ax.r2l);\n if (minallowed !== void 0 && rng[0] < bounds[0]) range[axrev ? 1 : 0] = minallowed;\n if (maxallowed !== void 0 && rng[1] > bounds[1]) range[axrev ? 0 : 1] = maxallowed;\n if (range[0] === range[1]) {\n var minL = ax.l2r(minallowed);\n var maxL = ax.l2r(maxallowed);\n if (minallowed !== void 0) {\n var _max = minL + 1;\n if (maxallowed !== void 0) _max = Math.min(_max, maxL);\n range[axrev ? 1 : 0] = _max;\n }\n if (maxallowed !== void 0) {\n var _min = maxL + 1;\n if (minallowed !== void 0) _min = Math.max(_min, minL);\n range[axrev ? 0 : 1] = _min;\n }\n }\n };\n ax.cleanRange = function(rangeAttr, opts) {\n ax._cleanRange(rangeAttr, opts);\n ax.limitRange(rangeAttr);\n };\n ax._cleanRange = function(rangeAttr, opts) {\n if (!opts) opts = {};\n if (!rangeAttr) rangeAttr = \"range\";\n var range = Lib.nestedProperty(ax, rangeAttr).get();\n var i, dflt;\n if (ax.type === \"date\") dflt = Lib.dfltRange(ax.calendar);\n else if (axLetter === \"y\") dflt = constants.DFLTRANGEY;\n else if (ax._name === \"realaxis\") dflt = [0, 1];\n else dflt = opts.dfltRange || constants.DFLTRANGEX;\n dflt = dflt.slice();\n if (ax.rangemode === \"tozero\" || ax.rangemode === \"nonnegative\") {\n dflt[0] = 0;\n }\n if (!range || range.length !== 2) {\n Lib.nestedProperty(ax, rangeAttr).set(dflt);\n return;\n }\n var nullRange0 = range[0] === null;\n var nullRange1 = range[1] === null;\n if (ax.type === \"date\" && !ax.autorange) {\n range[0] = Lib.cleanDate(range[0], BADNUM, ax.calendar);\n range[1] = Lib.cleanDate(range[1], BADNUM, ax.calendar);\n }\n for (i = 0; i < 2; i++) {\n if (ax.type === \"date\") {\n if (!Lib.isDateTime(range[i], ax.calendar)) {\n ax[rangeAttr] = dflt;\n break;\n }\n if (ax.r2l(range[0]) === ax.r2l(range[1])) {\n var linCenter = Lib.constrain(\n ax.r2l(range[0]),\n Lib.MIN_MS + 1e3,\n Lib.MAX_MS - 1e3\n );\n range[0] = ax.l2r(linCenter - 1e3);\n range[1] = ax.l2r(linCenter + 1e3);\n break;\n }\n } else {\n if (!isNumeric(range[i])) {\n if (!(nullRange0 || nullRange1) && isNumeric(range[1 - i])) {\n range[i] = range[1 - i] * (i ? 10 : 0.1);\n } else {\n ax[rangeAttr] = dflt;\n break;\n }\n }\n if (range[i] < -FP_SAFE) range[i] = -FP_SAFE;\n else if (range[i] > FP_SAFE) range[i] = FP_SAFE;\n if (range[0] === range[1]) {\n var inc = Math.max(1, Math.abs(range[0] * 1e-6));\n range[0] -= inc;\n range[1] += inc;\n }\n }\n }\n };\n ax.setScale = function(usePrivateRange) {\n var gs = fullLayout._size;\n if (ax.overlaying) {\n var ax2 = axisIds.getFromId({ _fullLayout: fullLayout }, ax.overlaying);\n ax.domain = ax2.domain;\n }\n var rangeAttr = usePrivateRange && ax._r ? \"_r\" : \"range\";\n var calendar = ax.calendar;\n ax.cleanRange(rangeAttr);\n var rl0 = ax.r2l(ax[rangeAttr][0], calendar);\n var rl1 = ax.r2l(ax[rangeAttr][1], calendar);\n var isY2 = axLetter === \"y\";\n if (isY2) {\n ax._offset = gs.t + (1 - ax.domain[1]) * gs.h;\n ax._length = gs.h * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl0 - rl1);\n ax._b = -ax._m * rl1;\n } else {\n ax._offset = gs.l + ax.domain[0] * gs.w;\n ax._length = gs.w * (ax.domain[1] - ax.domain[0]);\n ax._m = ax._length / (rl1 - rl0);\n ax._b = -ax._m * rl0;\n }\n ax._rangebreaks = [];\n ax._lBreaks = 0;\n ax._m2 = 0;\n ax._B = [];\n if (ax.rangebreaks) {\n var i, brk;\n ax._rangebreaks = ax.locateBreaks(\n Math.min(rl0, rl1),\n Math.max(rl0, rl1)\n );\n if (ax._rangebreaks.length) {\n for (i = 0; i < ax._rangebreaks.length; i++) {\n brk = ax._rangebreaks[i];\n ax._lBreaks += Math.abs(brk.max - brk.min);\n }\n var flip = isY2;\n if (rl0 > rl1) flip = !flip;\n if (flip) ax._rangebreaks.reverse();\n var sign = flip ? -1 : 1;\n ax._m2 = sign * ax._length / (Math.abs(rl1 - rl0) - ax._lBreaks);\n ax._B.push(-ax._m2 * (isY2 ? rl1 : rl0));\n for (i = 0; i < ax._rangebreaks.length; i++) {\n brk = ax._rangebreaks[i];\n ax._B.push(\n ax._B[ax._B.length - 1] - sign * ax._m2 * (brk.max - brk.min)\n );\n }\n for (i = 0; i < ax._rangebreaks.length; i++) {\n brk = ax._rangebreaks[i];\n brk.pmin = l2p(brk.min);\n brk.pmax = l2p(brk.max);\n }\n }\n }\n if (!isFinite(ax._m) || !isFinite(ax._b) || ax._length < 0) {\n fullLayout._replotting = false;\n throw new Error(\"Something went wrong with axis scaling\");\n }\n };\n ax.maskBreaks = function(v) {\n var rangebreaksIn = ax.rangebreaks || [];\n var bnds, b0, b1, vb, vDate;\n if (!rangebreaksIn._cachedPatterns) {\n rangebreaksIn._cachedPatterns = rangebreaksIn.map(function(brk2) {\n return brk2.enabled && brk2.bounds ? Lib.simpleMap(\n brk2.bounds,\n brk2.pattern ? cleanNumber : ax.d2c\n // case of pattern: ''\n ) : null;\n });\n }\n if (!rangebreaksIn._cachedValues) {\n rangebreaksIn._cachedValues = rangebreaksIn.map(function(brk2) {\n return brk2.enabled && brk2.values ? Lib.simpleMap(brk2.values, ax.d2c).sort(Lib.sorterAsc) : null;\n });\n }\n for (var i = 0; i < rangebreaksIn.length; i++) {\n var brk = rangebreaksIn[i];\n if (brk.enabled) {\n if (brk.bounds) {\n var pattern = brk.pattern;\n bnds = rangebreaksIn._cachedPatterns[i];\n b0 = bnds[0];\n b1 = bnds[1];\n switch (pattern) {\n case WEEKDAY_PATTERN:\n vDate = new Date(v);\n vb = vDate.getUTCDay();\n if (b0 > b1) {\n b1 += 7;\n if (vb < b0) vb += 7;\n }\n break;\n case HOUR_PATTERN:\n vDate = new Date(v);\n var hours = vDate.getUTCHours();\n var minutes = vDate.getUTCMinutes();\n var seconds = vDate.getUTCSeconds();\n var milliseconds = vDate.getUTCMilliseconds();\n vb = hours + (minutes / 60 + seconds / 3600 + milliseconds / 36e5);\n if (b0 > b1) {\n b1 += 24;\n if (vb < b0) vb += 24;\n }\n break;\n case \"\":\n vb = v;\n break;\n }\n if (vb >= b0 && vb < b1) return BADNUM;\n } else {\n var vals = rangebreaksIn._cachedValues[i];\n for (var j = 0; j < vals.length; j++) {\n b0 = vals[j];\n b1 = b0 + brk.dvalue;\n if (v >= b0 && v < b1) return BADNUM;\n }\n }\n }\n }\n return v;\n };\n ax.locateBreaks = function(r0, r1) {\n var i, bnds, b0, b1;\n var rangebreaksOut = [];\n if (!ax.rangebreaks) return rangebreaksOut;\n var rangebreaksIn = ax.rangebreaks.slice().sort(function(a, b) {\n if (a.pattern === WEEKDAY_PATTERN && b.pattern === HOUR_PATTERN) return -1;\n if (b.pattern === WEEKDAY_PATTERN && a.pattern === HOUR_PATTERN) return 1;\n return 0;\n });\n var addBreak = function(min, max) {\n min = Lib.constrain(min, r0, r1);\n max = Lib.constrain(max, r0, r1);\n if (min === max) return;\n var isNewBreak = true;\n for (var j2 = 0; j2 < rangebreaksOut.length; j2++) {\n var brkj = rangebreaksOut[j2];\n if (min < brkj.max && max >= brkj.min) {\n if (min < brkj.min) {\n brkj.min = min;\n }\n if (max > brkj.max) {\n brkj.max = max;\n }\n isNewBreak = false;\n }\n }\n if (isNewBreak) {\n rangebreaksOut.push({ min, max });\n }\n };\n for (i = 0; i < rangebreaksIn.length; i++) {\n var brk = rangebreaksIn[i];\n if (brk.enabled) {\n if (brk.bounds) {\n var t02 = r0;\n var t12 = r1;\n if (brk.pattern) {\n t02 = Math.floor(t02);\n }\n bnds = Lib.simpleMap(brk.bounds, brk.pattern ? cleanNumber : ax.r2l);\n b0 = bnds[0];\n b1 = bnds[1];\n var t0Date = new Date(t02);\n var bndDelta;\n var step;\n switch (brk.pattern) {\n case WEEKDAY_PATTERN:\n step = ONEWEEK;\n bndDelta = ((b1 < b0 ? 7 : 0) + (b1 - b0)) * ONEDAY;\n t02 += b0 * ONEDAY - (t0Date.getUTCDay() * ONEDAY + t0Date.getUTCHours() * ONEHOUR + t0Date.getUTCMinutes() * ONEMIN + t0Date.getUTCSeconds() * ONESEC + t0Date.getUTCMilliseconds());\n break;\n case HOUR_PATTERN:\n step = ONEDAY;\n bndDelta = ((b1 < b0 ? 24 : 0) + (b1 - b0)) * ONEHOUR;\n t02 += b0 * ONEHOUR - (t0Date.getUTCHours() * ONEHOUR + t0Date.getUTCMinutes() * ONEMIN + t0Date.getUTCSeconds() * ONESEC + t0Date.getUTCMilliseconds());\n break;\n default:\n t02 = Math.min(bnds[0], bnds[1]);\n t12 = Math.max(bnds[0], bnds[1]);\n step = t12 - t02;\n bndDelta = step;\n }\n for (var t = t02; t < t12; t += step) {\n addBreak(t, t + bndDelta);\n }\n } else {\n var vals = Lib.simpleMap(brk.values, ax.d2c);\n for (var j = 0; j < vals.length; j++) {\n b0 = vals[j];\n b1 = b0 + brk.dvalue;\n addBreak(b0, b1);\n }\n }\n }\n }\n rangebreaksOut.sort(function(a, b) {\n return a.min - b.min;\n });\n return rangebreaksOut;\n };\n ax.makeCalcdata = function(trace, axLetter2, opts) {\n var arrayIn, arrayOut, i, len;\n var axType = ax.type;\n var cal = axType === \"date\" && trace[axLetter2 + \"calendar\"];\n if (axLetter2 in trace) {\n arrayIn = trace[axLetter2];\n len = trace._length || Lib.minRowLength(arrayIn);\n if (Lib.isTypedArray(arrayIn) && (axType === \"linear\" || axType === \"log\")) {\n if (len === arrayIn.length) {\n return arrayIn;\n } else if (arrayIn.subarray) {\n return arrayIn.subarray(0, len);\n }\n }\n if (axType === \"multicategory\") {\n return setMultiCategoryIndex(arrayIn, len);\n }\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = ax.d2c(arrayIn[i], 0, cal, opts);\n }\n } else {\n var v0 = axLetter2 + \"0\" in trace ? ax.d2c(trace[axLetter2 + \"0\"], 0, cal) : 0;\n var dv = trace[\"d\" + axLetter2] ? Number(trace[\"d\" + axLetter2]) : 1;\n arrayIn = trace[{ x: \"y\", y: \"x\" }[axLetter2]];\n len = trace._length || arrayIn.length;\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n if (ax.rangebreaks) {\n for (i = 0; i < len; i++) {\n arrayOut[i] = ax.maskBreaks(arrayOut[i]);\n }\n }\n return arrayOut;\n };\n ax.isValidRange = function(range, nullOk) {\n return Array.isArray(range) && range.length === 2 && (nullOk && range[0] === null || isNumeric(ax.r2l(range[0]))) && (nullOk && range[1] === null || isNumeric(ax.r2l(range[1])));\n };\n ax.getAutorangeDflt = function(range, options) {\n var autorangeDflt = !ax.isValidRange(range, \"nullOk\");\n if (autorangeDflt && options && options.reverseDflt) autorangeDflt = \"reversed\";\n else if (range) {\n if (range[0] === null && range[1] === null) {\n autorangeDflt = true;\n } else if (range[0] === null && range[1] !== null) {\n autorangeDflt = \"min\";\n } else if (range[0] !== null && range[1] === null) {\n autorangeDflt = \"max\";\n }\n }\n return autorangeDflt;\n };\n ax.isReversed = function() {\n var autorange = ax.autorange;\n return autorange === \"reversed\" || autorange === \"min reversed\" || autorange === \"max reversed\";\n };\n ax.isPtWithinRange = function(d, calendar) {\n var coord = ax.c2l(d[axLetter], null, calendar);\n var r0 = ax.r2l(ax.range[0]);\n var r1 = ax.r2l(ax.range[1]);\n if (r0 < r1) {\n return r0 <= coord && coord <= r1;\n } else {\n return r1 <= coord && coord <= r0;\n }\n };\n ax._emptyCategories = function() {\n ax._categories = [];\n ax._categoriesMap = {};\n };\n ax.clearCalc = function() {\n var group = ax._matchGroup;\n if (group) {\n var categories = null;\n var categoriesMap = null;\n for (var axId2 in group) {\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n if (ax2._categories) {\n categories = ax2._categories;\n categoriesMap = ax2._categoriesMap;\n break;\n }\n }\n if (categories && categoriesMap) {\n ax._categories = categories;\n ax._categoriesMap = categoriesMap;\n } else {\n ax._emptyCategories();\n }\n } else {\n ax._emptyCategories();\n }\n if (ax._initialCategories) {\n for (var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n };\n ax.sortByInitialCategories = function() {\n var affectedTraces = [];\n ax._emptyCategories();\n if (ax._initialCategories) {\n for (var j = 0; j < ax._initialCategories.length; j++) {\n setCategoryIndex(ax._initialCategories[j]);\n }\n }\n affectedTraces = affectedTraces.concat(ax._traceIndices);\n var group = ax._matchGroup;\n for (var axId2 in group) {\n if (axId === axId2) continue;\n var ax2 = fullLayout[axisIds.id2name(axId2)];\n ax2._categories = ax._categories;\n ax2._categoriesMap = ax._categoriesMap;\n affectedTraces = affectedTraces.concat(ax2._traceIndices);\n }\n return affectedTraces;\n };\n var locale = fullLayout._d3locale;\n if (ax.type === \"date\") {\n ax._dateFormat = locale ? locale.timeFormat : utcFormat;\n ax._extraFormat = fullLayout._extraFormat;\n }\n ax._separators = fullLayout.separators;\n ax._numFormat = locale ? locale.numberFormat : numberFormat;\n delete ax._minDtick;\n delete ax._forceTick0;\n };\n }\n });\n\n // src/plots/cartesian/axis_autotype.js\n var require_axis_autotype = __commonJS({\n \"src/plots/cartesian/axis_autotype.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var isDateTime = Lib.isDateTime;\n var cleanNumber = Lib.cleanNumber;\n var round = Math.round;\n module.exports = function autoType(array, calendar, opts) {\n var a = array;\n var noMultiCategory = opts.noMultiCategory;\n if (isArrayOrTypedArray(a) && !a.length) return \"-\";\n if (!noMultiCategory && multiCategory(a)) return \"multicategory\";\n if (noMultiCategory && Array.isArray(a[0])) {\n var b = [];\n for (var i = 0; i < a.length; i++) {\n if (isArrayOrTypedArray(a[i])) {\n for (var j = 0; j < a[i].length; j++) {\n b.push(a[i][j]);\n }\n }\n }\n a = b;\n }\n if (moreDates(a, calendar)) return \"date\";\n var convertNumeric = opts.autotypenumbers !== \"strict\";\n if (category(a, convertNumeric)) return \"category\";\n if (linearOK(a, convertNumeric)) return \"linear\";\n return \"-\";\n };\n function hasTypeNumber(v, convertNumeric) {\n return convertNumeric ? isNumeric(v) : typeof v === \"number\";\n }\n function linearOK(a, convertNumeric) {\n var len = a.length;\n for (var i = 0; i < len; i++) {\n if (hasTypeNumber(a[i], convertNumeric)) return true;\n }\n return false;\n }\n function moreDates(a, calendar) {\n var len = a.length;\n var inc = getIncrement(len);\n var dats = 0;\n var nums = 0;\n var seen = {};\n for (var f = 0; f < len; f += inc) {\n var i = round(f);\n var ai = a[i];\n var stri = String(ai);\n if (seen[stri]) continue;\n seen[stri] = 1;\n if (isDateTime(ai, calendar)) dats++;\n if (isNumeric(ai)) nums++;\n }\n return dats > nums * 2;\n }\n function getIncrement(len) {\n return Math.max(1, (len - 1) / 1e3);\n }\n function category(a, convertNumeric) {\n var len = a.length;\n var inc = getIncrement(len);\n var nums = 0;\n var cats = 0;\n var seen = {};\n for (var f = 0; f < len; f += inc) {\n var i = round(f);\n var ai = a[i];\n var stri = String(ai);\n if (seen[stri]) continue;\n seen[stri] = 1;\n var t = typeof ai;\n if (t === \"boolean\") cats++;\n else if (convertNumeric ? cleanNumber(ai) !== BADNUM : t === \"number\") nums++;\n else if (t === \"string\") cats++;\n }\n return cats > nums * 2;\n }\n function multiCategory(a) {\n return isArrayOrTypedArray(a[0]) && isArrayOrTypedArray(a[1]);\n }\n }\n });\n\n // src/plots/cartesian/autorange.js\n var require_autorange = __commonJS({\n \"src/plots/cartesian/autorange.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var FP_SAFE = require_numerical().FP_SAFE;\n var Registry = require_registry();\n var Drawing = require_drawing();\n var axIds = require_axis_ids();\n var getFromId = axIds.getFromId;\n var isLinked = axIds.isLinked;\n module.exports = {\n applyAutorangeOptions,\n getAutoRange,\n makePadFn,\n doAutoRange,\n findExtremes,\n concatExtremes\n };\n function getAutoRange(gd, ax) {\n var i, j;\n var newRange = [];\n var fullLayout = gd._fullLayout;\n var getPadMin = makePadFn(fullLayout, ax, 0);\n var getPadMax = makePadFn(fullLayout, ax, 1);\n var extremes = concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n if (minArray.length === 0 || maxArray.length === 0) {\n return Lib.simpleMap(ax.range, ax.r2l);\n }\n var minmin = minArray[0].val;\n var maxmax = maxArray[0].val;\n for (i = 1; i < minArray.length; i++) {\n if (minmin !== maxmax) break;\n minmin = Math.min(minmin, minArray[i].val);\n }\n for (i = 1; i < maxArray.length; i++) {\n if (minmin !== maxmax) break;\n maxmax = Math.max(maxmax, maxArray[i].val);\n }\n var autorange = ax.autorange;\n var axReverse = autorange === \"reversed\" || autorange === \"min reversed\" || autorange === \"max reversed\";\n if (!axReverse && ax.range) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n axReverse = rng[1] < rng[0];\n }\n if (ax.autorange === \"reversed\") {\n ax.autorange = true;\n }\n var rangeMode = ax.rangemode;\n var toZero = rangeMode === \"tozero\";\n var nonNegative = rangeMode === \"nonnegative\";\n var axLen = ax._length;\n var minSpan = axLen / 10;\n var mbest = 0;\n var minpt, maxpt, minbest, maxbest, dp, dv;\n for (i = 0; i < minArray.length; i++) {\n minpt = minArray[i];\n for (j = 0; j < maxArray.length; j++) {\n maxpt = maxArray[j];\n dv = maxpt.val - minpt.val - calcBreaksLength(ax, minpt.val, maxpt.val);\n if (dv > 0) {\n dp = axLen - getPadMin(minpt) - getPadMax(maxpt);\n if (dp > minSpan) {\n if (dv / dp > mbest) {\n minbest = minpt;\n maxbest = maxpt;\n mbest = dv / dp;\n }\n } else if (dv / axLen > mbest) {\n minbest = { val: minpt.val, nopad: 1 };\n maxbest = { val: maxpt.val, nopad: 1 };\n mbest = dv / axLen;\n }\n }\n }\n }\n function maximumPad(prev, pt) {\n return Math.max(prev, getPadMax(pt));\n }\n if (minmin === maxmax) {\n var lower = minmin - 1;\n var upper = minmin + 1;\n if (toZero) {\n if (minmin === 0) {\n newRange = [0, 1];\n } else {\n var maxPad = (minmin > 0 ? maxArray : minArray).reduce(maximumPad, 0);\n var rangeEnd = minmin / (1 - Math.min(0.5, maxPad / axLen));\n newRange = minmin > 0 ? [0, rangeEnd] : [rangeEnd, 0];\n }\n } else if (nonNegative) {\n newRange = [Math.max(0, lower), Math.max(1, upper)];\n } else {\n newRange = [lower, upper];\n }\n } else {\n if (toZero) {\n if (minbest.val >= 0) {\n minbest = { val: 0, nopad: 1 };\n }\n if (maxbest.val <= 0) {\n maxbest = { val: 0, nopad: 1 };\n }\n } else if (nonNegative) {\n if (minbest.val - mbest * getPadMin(minbest) < 0) {\n minbest = { val: 0, nopad: 1 };\n }\n if (maxbest.val <= 0) {\n maxbest = { val: 1, nopad: 1 };\n }\n }\n mbest = (maxbest.val - minbest.val - calcBreaksLength(ax, minpt.val, maxpt.val)) / (axLen - getPadMin(minbest) - getPadMax(maxbest));\n newRange = [\n minbest.val - mbest * getPadMin(minbest),\n maxbest.val + mbest * getPadMax(maxbest)\n ];\n }\n newRange = applyAutorangeOptions(newRange, ax);\n if (ax.limitRange) ax.limitRange();\n if (axReverse) newRange.reverse();\n return Lib.simpleMap(newRange, ax.l2r || Number);\n }\n function calcBreaksLength(ax, v0, v1) {\n var lBreaks = 0;\n if (ax.rangebreaks) {\n var rangebreaksOut = ax.locateBreaks(v0, v1);\n for (var i = 0; i < rangebreaksOut.length; i++) {\n var brk = rangebreaksOut[i];\n lBreaks += brk.max - brk.min;\n }\n }\n return lBreaks;\n }\n function makePadFn(fullLayout, ax, max) {\n var extrappad = 0.05 * ax._length;\n var anchorAxis = ax._anchorAxis || {};\n if ((ax.ticklabelposition || \"\").indexOf(\"inside\") !== -1 || (anchorAxis.ticklabelposition || \"\").indexOf(\"inside\") !== -1) {\n var axReverse = ax.isReversed();\n if (!axReverse) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n axReverse = rng[1] < rng[0];\n }\n if (axReverse) max = !max;\n }\n var zero2 = 0;\n if (!isLinked(fullLayout, ax._id)) {\n zero2 = padInsideLabelsOnAnchorAxis(fullLayout, ax, max);\n }\n extrappad = Math.max(zero2, extrappad);\n if (ax.constrain === \"domain\" && ax._inputDomain) {\n extrappad *= (ax._inputDomain[1] - ax._inputDomain[0]) / (ax.domain[1] - ax.domain[0]);\n }\n return function getPad(pt) {\n if (pt.nopad) return 0;\n return pt.pad + (pt.extrapad ? extrappad : zero2);\n };\n }\n var TEXTPAD = 3;\n function padInsideLabelsOnAnchorAxis(fullLayout, ax, max) {\n var pad = 0;\n var isX = ax._id.charAt(0) === \"x\";\n for (var subplot in fullLayout._plots) {\n var plotinfo = fullLayout._plots[subplot];\n if (ax._id !== plotinfo.xaxis._id && ax._id !== plotinfo.yaxis._id) continue;\n var anchorAxis = (isX ? plotinfo.yaxis : plotinfo.xaxis) || {};\n if ((anchorAxis.ticklabelposition || \"\").indexOf(\"inside\") !== -1) {\n if (!max && (anchorAxis.side === \"left\" || anchorAxis.side === \"bottom\") || max && (anchorAxis.side === \"top\" || anchorAxis.side === \"right\")) {\n if (anchorAxis._vals) {\n var rad = Lib.deg2rad(anchorAxis._tickAngles[anchorAxis._id + \"tick\"] || 0);\n var cosA = Math.abs(Math.cos(rad));\n var sinA = Math.abs(Math.sin(rad));\n if (!anchorAxis._vals[0].bb) {\n var cls = anchorAxis._id + \"tick\";\n var tickLabels = anchorAxis._selections[cls];\n tickLabels.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n if (mathjaxGroup.empty()) {\n d.bb = Drawing.bBox(thisLabel.node());\n }\n });\n }\n for (var i = 0; i < anchorAxis._vals.length; i++) {\n var t = anchorAxis._vals[i];\n var bb = t.bb;\n if (bb) {\n var w = 2 * TEXTPAD + bb.width;\n var h = 2 * TEXTPAD + bb.height;\n pad = Math.max(\n pad,\n isX ? Math.max(w * cosA, h * sinA) : Math.max(h * cosA, w * sinA)\n );\n }\n }\n }\n if (anchorAxis.ticks === \"inside\" && anchorAxis.ticklabelposition === \"inside\") {\n pad += anchorAxis.ticklen || 0;\n }\n }\n }\n }\n return pad;\n }\n function concatExtremes(gd, ax, noMatch) {\n var axId = ax._id;\n var fullData = gd._fullData;\n var fullLayout = gd._fullLayout;\n var minArray = [];\n var maxArray = [];\n var i, j, d;\n function _concat(cont, indices) {\n for (i = 0; i < indices.length; i++) {\n var item = cont[indices[i]];\n var extremes = (item._extremes || {})[axId];\n if (item.visible === true && extremes) {\n for (j = 0; j < extremes.min.length; j++) {\n d = extremes.min[j];\n collapseMinArray(minArray, d.val, d.pad, { extrapad: d.extrapad });\n }\n for (j = 0; j < extremes.max.length; j++) {\n d = extremes.max[j];\n collapseMaxArray(maxArray, d.val, d.pad, { extrapad: d.extrapad });\n }\n }\n }\n }\n _concat(fullData, ax._traceIndices);\n _concat(fullLayout.annotations || [], ax._annIndices || []);\n _concat(fullLayout.shapes || [], ax._shapeIndices || []);\n if (ax._matchGroup && !noMatch) {\n for (var axId2 in ax._matchGroup) {\n if (axId2 !== ax._id) {\n var ax2 = getFromId(gd, axId2);\n var extremes2 = concatExtremes(gd, ax2, true);\n var lenRatio = ax._length / ax2._length;\n for (j = 0; j < extremes2.min.length; j++) {\n d = extremes2.min[j];\n collapseMinArray(minArray, d.val, d.pad * lenRatio, { extrapad: d.extrapad });\n }\n for (j = 0; j < extremes2.max.length; j++) {\n d = extremes2.max[j];\n collapseMaxArray(maxArray, d.val, d.pad * lenRatio, { extrapad: d.extrapad });\n }\n }\n }\n }\n return { min: minArray, max: maxArray };\n }\n function doAutoRange(gd, ax, presetRange) {\n ax.setScale();\n if (ax.autorange) {\n ax.range = presetRange ? presetRange.slice() : getAutoRange(gd, ax);\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n var axIn = ax._input;\n var edits = {};\n edits[ax._attr + \".range\"] = ax.range;\n edits[ax._attr + \".autorange\"] = ax.autorange;\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, gd._fullLayout._preGUI, edits);\n axIn.range = ax.range.slice();\n axIn.autorange = ax.autorange;\n }\n var anchorAx = ax._anchorAxis;\n if (anchorAx && anchorAx.rangeslider) {\n var axeRangeOpts = anchorAx.rangeslider[ax._name];\n if (axeRangeOpts) {\n if (axeRangeOpts.rangemode === \"auto\") {\n axeRangeOpts.range = getAutoRange(gd, ax);\n }\n }\n anchorAx._input.rangeslider[ax._name] = Lib.extendFlat({}, axeRangeOpts);\n }\n }\n function findExtremes(ax, data, opts) {\n if (!opts) opts = {};\n if (!ax._m) ax.setScale();\n var minArray = [];\n var maxArray = [];\n var len = data.length;\n var extrapad = opts.padded || false;\n var tozero = opts.tozero && (ax.type === \"linear\" || ax.type === \"-\");\n var isLog = ax.type === \"log\";\n var hasArrayOption = false;\n var vpadLinearized = opts.vpadLinearized || false;\n var i, v, di, dmin, dmax, ppadiplus, ppadiminus, vmin, vmax;\n function makePadAccessor(item) {\n if (Array.isArray(item)) {\n hasArrayOption = true;\n return function(i2) {\n return Math.max(Number(item[i2] || 0), 0);\n };\n } else {\n var v2 = Math.max(Number(item || 0), 0);\n return function() {\n return v2;\n };\n }\n }\n var ppadplus = makePadAccessor((ax._m > 0 ? opts.ppadplus : opts.ppadminus) || opts.ppad || 0);\n var ppadminus = makePadAccessor((ax._m > 0 ? opts.ppadminus : opts.ppadplus) || opts.ppad || 0);\n var vpadplus = makePadAccessor(opts.vpadplus || opts.vpad);\n var vpadminus = makePadAccessor(opts.vpadminus || opts.vpad);\n if (!hasArrayOption) {\n vmin = Infinity;\n vmax = -Infinity;\n if (isLog) {\n for (i = 0; i < len; i++) {\n v = data[i];\n if (v < vmin && v > 0) vmin = v;\n if (v > vmax && v < FP_SAFE) vmax = v;\n }\n } else {\n for (i = 0; i < len; i++) {\n v = data[i];\n if (v < vmin && v > -FP_SAFE) vmin = v;\n if (v > vmax && v < FP_SAFE) vmax = v;\n }\n }\n data = [vmin, vmax];\n len = 2;\n }\n var collapseOpts = { tozero, extrapad };\n function addItem(i2) {\n di = data[i2];\n if (!isNumeric(di)) return;\n ppadiplus = ppadplus(i2);\n ppadiminus = ppadminus(i2);\n if (vpadLinearized) {\n dmin = ax.c2l(di) - vpadminus(i2);\n dmax = ax.c2l(di) + vpadplus(i2);\n } else {\n vmin = di - vpadminus(i2);\n vmax = di + vpadplus(i2);\n if (isLog && vmin < vmax / 10) vmin = vmax / 10;\n dmin = ax.c2l(vmin);\n dmax = ax.c2l(vmax);\n }\n if (tozero) {\n dmin = Math.min(0, dmin);\n dmax = Math.max(0, dmax);\n }\n if (goodNumber(dmin)) {\n collapseMinArray(minArray, dmin, ppadiminus, collapseOpts);\n }\n if (goodNumber(dmax)) {\n collapseMaxArray(maxArray, dmax, ppadiplus, collapseOpts);\n }\n }\n var iMax = Math.min(6, len);\n for (i = 0; i < iMax; i++) addItem(i);\n for (i = len - 1; i >= iMax; i--) addItem(i);\n return {\n min: minArray,\n max: maxArray,\n opts\n };\n }\n function collapseMinArray(array, newVal, newPad, opts) {\n collapseArray(array, newVal, newPad, opts, lessOrEqual);\n }\n function collapseMaxArray(array, newVal, newPad, opts) {\n collapseArray(array, newVal, newPad, opts, greaterOrEqual);\n }\n function collapseArray(array, newVal, newPad, opts, atLeastAsExtreme) {\n var tozero = opts.tozero;\n var extrapad = opts.extrapad;\n var includeThis = true;\n for (var j = 0; j < array.length && includeThis; j++) {\n var v = array[j];\n if (atLeastAsExtreme(v.val, newVal) && v.pad >= newPad && (v.extrapad || !extrapad)) {\n includeThis = false;\n break;\n } else if (atLeastAsExtreme(newVal, v.val) && v.pad <= newPad && (extrapad || !v.extrapad)) {\n array.splice(j, 1);\n j--;\n }\n }\n if (includeThis) {\n var clipAtZero = tozero && newVal === 0;\n array.push({\n val: newVal,\n pad: clipAtZero ? 0 : newPad,\n extrapad: clipAtZero ? false : extrapad\n });\n }\n }\n function goodNumber(v) {\n return isNumeric(v) && Math.abs(v) < FP_SAFE;\n }\n function lessOrEqual(v0, v1) {\n return v0 <= v1;\n }\n function greaterOrEqual(v0, v1) {\n return v0 >= v1;\n }\n function applyAutorangeMinOptions(v, ax) {\n var autorangeoptions = ax.autorangeoptions;\n if (autorangeoptions && autorangeoptions.minallowed !== void 0 && hasValidMinAndMax(ax, autorangeoptions.minallowed, autorangeoptions.maxallowed)) {\n return autorangeoptions.minallowed;\n }\n if (autorangeoptions && autorangeoptions.clipmin !== void 0 && hasValidMinAndMax(ax, autorangeoptions.clipmin, autorangeoptions.clipmax)) {\n return Math.max(v, ax.d2l(autorangeoptions.clipmin));\n }\n return v;\n }\n function applyAutorangeMaxOptions(v, ax) {\n var autorangeoptions = ax.autorangeoptions;\n if (autorangeoptions && autorangeoptions.maxallowed !== void 0 && hasValidMinAndMax(ax, autorangeoptions.minallowed, autorangeoptions.maxallowed)) {\n return autorangeoptions.maxallowed;\n }\n if (autorangeoptions && autorangeoptions.clipmax !== void 0 && hasValidMinAndMax(ax, autorangeoptions.clipmin, autorangeoptions.clipmax)) {\n return Math.min(v, ax.d2l(autorangeoptions.clipmax));\n }\n return v;\n }\n function hasValidMinAndMax(ax, min, max) {\n if (min !== void 0 && max !== void 0) {\n min = ax.d2l(min);\n max = ax.d2l(max);\n return min < max;\n }\n return true;\n }\n function applyAutorangeOptions(range, ax) {\n if (!ax || !ax.autorangeoptions) return range;\n var min = range[0];\n var max = range[1];\n var include = ax.autorangeoptions.include;\n if (include !== void 0) {\n var lMin = ax.d2l(min);\n var lMax = ax.d2l(max);\n if (!Lib.isArrayOrTypedArray(include)) include = [include];\n for (var i = 0; i < include.length; i++) {\n var v = ax.d2l(include[i]);\n if (lMin >= v) {\n lMin = v;\n min = v;\n }\n if (lMax <= v) {\n lMax = v;\n max = v;\n }\n }\n }\n min = applyAutorangeMinOptions(min, ax);\n max = applyAutorangeMaxOptions(max, ax);\n return [min, max];\n }\n }\n });\n\n // src/plots/cartesian/axes.js\n var require_axes = __commonJS({\n \"src/plots/cartesian/axes.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Plots = require_plots();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var Titles = require_titles();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var axAttrs = require_layout_attributes4();\n var cleanTicks = require_clean_ticks();\n var constants = require_numerical();\n var ONEMAXYEAR = constants.ONEMAXYEAR;\n var ONEAVGYEAR = constants.ONEAVGYEAR;\n var ONEMINYEAR = constants.ONEMINYEAR;\n var ONEMAXQUARTER = constants.ONEMAXQUARTER;\n var ONEAVGQUARTER = constants.ONEAVGQUARTER;\n var ONEMINQUARTER = constants.ONEMINQUARTER;\n var ONEMAXMONTH = constants.ONEMAXMONTH;\n var ONEAVGMONTH = constants.ONEAVGMONTH;\n var ONEMINMONTH = constants.ONEMINMONTH;\n var ONEWEEK = constants.ONEWEEK;\n var ONEDAY = constants.ONEDAY;\n var HALFDAY = ONEDAY / 2;\n var ONEHOUR = constants.ONEHOUR;\n var ONEMIN = constants.ONEMIN;\n var ONESEC = constants.ONESEC;\n var ONEMILLI = constants.ONEMILLI;\n var ONEMICROSEC = constants.ONEMICROSEC;\n var MINUS_SIGN = constants.MINUS_SIGN;\n var BADNUM = constants.BADNUM;\n var ZERO_PATH = { K: \"zeroline\" };\n var GRID_PATH = { K: \"gridline\", L: \"path\" };\n var MINORGRID_PATH = { K: \"minor-gridline\", L: \"path\" };\n var TICK_PATH = { K: \"tick\", L: \"path\" };\n var TICK_TEXT = { K: \"tick\", L: \"text\" };\n var MARGIN_MAPPING = {\n width: [\"x\", \"r\", \"l\", \"xl\", \"xr\"],\n height: [\"y\", \"t\", \"b\", \"yt\", \"yb\"],\n right: [\"r\", \"xr\"],\n left: [\"l\", \"xl\"],\n top: [\"t\", \"yt\"],\n bottom: [\"b\", \"yb\"]\n };\n var alignmentConstants = require_alignment();\n var MID_SHIFT = alignmentConstants.MID_SHIFT;\n var CAP_SHIFT = alignmentConstants.CAP_SHIFT;\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var OPPOSITE_SIDE = alignmentConstants.OPPOSITE_SIDE;\n var TEXTPAD = 3;\n var axes = module.exports = {};\n axes.setConvert = require_set_convert();\n var autoType = require_axis_autotype();\n var axisIds = require_axis_ids();\n var idSort = axisIds.idSort;\n var isLinked = axisIds.isLinked;\n axes.id2name = axisIds.id2name;\n axes.name2id = axisIds.name2id;\n axes.cleanId = axisIds.cleanId;\n axes.list = axisIds.list;\n axes.listIds = axisIds.listIds;\n axes.getFromId = axisIds.getFromId;\n axes.getFromTrace = axisIds.getFromTrace;\n var autorange = require_autorange();\n axes.getAutoRange = autorange.getAutoRange;\n axes.findExtremes = autorange.findExtremes;\n var epsilon = 1e-4;\n function expandRange(range) {\n var delta = (range[1] - range[0]) * epsilon;\n return [\n range[0] - delta,\n range[1] + delta\n ];\n }\n axes.coerceRef = function(containerIn, containerOut, gd, attr, dflt, extraOption) {\n var axLetter = attr.charAt(attr.length - 1);\n var axlist = gd._fullLayout._subplots[axLetter + \"axis\"];\n var refAttr = attr + \"ref\";\n var attrDef = {};\n if (!dflt) dflt = axlist[0] || (typeof extraOption === \"string\" ? extraOption : extraOption[0]);\n if (!extraOption) extraOption = dflt;\n axlist = axlist.concat(axlist.map(function(x) {\n return x + \" domain\";\n }));\n attrDef[refAttr] = {\n valType: \"enumerated\",\n values: axlist.concat(extraOption ? typeof extraOption === \"string\" ? [extraOption] : extraOption : []),\n dflt\n };\n return Lib.coerce(containerIn, containerOut, attrDef, refAttr);\n };\n axes.getRefType = function(ar) {\n if (ar === void 0) {\n return ar;\n }\n if (ar === \"paper\") {\n return \"paper\";\n }\n if (ar === \"pixel\") {\n return \"pixel\";\n }\n if (/( domain)$/.test(ar)) {\n return \"domain\";\n } else {\n return \"range\";\n }\n };\n axes.coercePosition = function(containerOut, gd, coerce, axRef, attr, dflt) {\n var cleanPos, pos;\n var axRefType = axes.getRefType(axRef);\n if (axRefType !== \"range\") {\n cleanPos = Lib.ensureNumber;\n pos = coerce(attr, dflt);\n } else {\n var ax = axes.getFromId(gd, axRef);\n dflt = ax.fraction2r(dflt);\n pos = coerce(attr, dflt);\n cleanPos = ax.cleanPos;\n }\n containerOut[attr] = cleanPos(pos);\n };\n axes.cleanPosition = function(pos, gd, axRef) {\n var cleanPos = axRef === \"paper\" || axRef === \"pixel\" ? Lib.ensureNumber : axes.getFromId(gd, axRef).cleanPos;\n return cleanPos(pos);\n };\n axes.redrawComponents = function(gd, axIds) {\n axIds = axIds ? axIds : axes.listIds(gd);\n var fullLayout = gd._fullLayout;\n function _redrawOneComp(moduleName, methodName, stashName, shortCircuit) {\n var method = Registry.getComponentMethod(moduleName, methodName);\n var stash = {};\n for (var i = 0; i < axIds.length; i++) {\n var ax = fullLayout[axes.id2name(axIds[i])];\n var indices = ax[stashName];\n for (var j = 0; j < indices.length; j++) {\n var ind = indices[j];\n if (!stash[ind]) {\n method(gd, ind);\n stash[ind] = 1;\n if (shortCircuit) return;\n }\n }\n }\n }\n _redrawOneComp(\"annotations\", \"drawOne\", \"_annIndices\");\n _redrawOneComp(\"shapes\", \"drawOne\", \"_shapeIndices\");\n _redrawOneComp(\"images\", \"draw\", \"_imgIndices\", true);\n _redrawOneComp(\"selections\", \"drawOne\", \"_selectionIndices\");\n };\n var getDataConversions = axes.getDataConversions = function(gd, trace, target, targetArray) {\n var ax;\n var d2cTarget = target === \"x\" || target === \"y\" || target === \"z\" ? target : targetArray;\n if (Lib.isArrayOrTypedArray(d2cTarget)) {\n ax = {\n type: autoType(targetArray, void 0, {\n autotypenumbers: gd._fullLayout.autotypenumbers\n }),\n _categories: []\n };\n axes.setConvert(ax);\n if (ax.type === \"category\") {\n for (var i = 0; i < targetArray.length; i++) {\n ax.d2c(targetArray[i]);\n }\n }\n } else {\n ax = axes.getFromTrace(gd, trace, d2cTarget);\n }\n if (ax) return { d2c: ax.d2c, c2d: ax.c2d };\n if (d2cTarget === \"ids\") return { d2c: toString, c2d: toString };\n return { d2c: toNum, c2d: toNum };\n };\n function toNum(v) {\n return +v;\n }\n function toString(v) {\n return String(v);\n }\n axes.getDataToCoordFunc = function(gd, trace, target, targetArray) {\n return getDataConversions(gd, trace, target, targetArray).d2c;\n };\n axes.counterLetter = function(id) {\n var axLetter = id.charAt(0);\n if (axLetter === \"x\") return \"y\";\n if (axLetter === \"y\") return \"x\";\n };\n axes.minDtick = function(ax, newDiff, newFirst, allow) {\n if ([\"log\", \"category\", \"multicategory\"].indexOf(ax.type) !== -1 || !allow) {\n ax._minDtick = 0;\n } else if (ax._minDtick === void 0) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if (ax._minDtick) {\n if ((ax._minDtick / newDiff + 1e-6) % 1 < 2e-6 && // existing minDtick is an integer multiple of newDiff\n // (within rounding err)\n // and forceTick0 can be shifted to newFirst\n ((newFirst - ax._forceTick0) / newDiff % 1 + 1.000001) % 1 < 2e-6) {\n ax._minDtick = newDiff;\n ax._forceTick0 = newFirst;\n } else if ((newDiff / ax._minDtick + 1e-6) % 1 > 2e-6 || // if the converse is true (newDiff is a multiple of minDtick and\n // newFirst can be shifted to forceTick0) then do nothing - same\n // forcing stands. Otherwise, cancel forced minimum\n ((newFirst - ax._forceTick0) / ax._minDtick % 1 + 1.000001) % 1 > 2e-6) {\n ax._minDtick = 0;\n }\n }\n };\n axes.saveRangeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, \"\", true);\n var hasOneAxisChanged = false;\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = ax._rangeInitial0 === void 0 && ax._rangeInitial1 === void 0;\n var hasChanged = isNew || (ax.range[0] !== ax._rangeInitial0 || ax.range[1] !== ax._rangeInitial1);\n var autorange2 = ax.autorange;\n if (isNew && autorange2 !== true || overwrite && hasChanged) {\n ax._rangeInitial0 = autorange2 === \"min\" || autorange2 === \"max reversed\" ? void 0 : ax.range[0];\n ax._rangeInitial1 = autorange2 === \"max\" || autorange2 === \"min reversed\" ? void 0 : ax.range[1];\n ax._autorangeInitial = autorange2;\n hasOneAxisChanged = true;\n }\n }\n return hasOneAxisChanged;\n };\n axes.saveShowSpikeInitial = function(gd, overwrite) {\n var axList = axes.list(gd, \"\", true);\n var hasOneAxisChanged = false;\n var allSpikesEnabled = \"on\";\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n var isNew = ax._showSpikeInitial === void 0;\n var hasChanged = isNew || !(ax.showspikes === ax._showspikes);\n if (isNew || overwrite && hasChanged) {\n ax._showSpikeInitial = ax.showspikes;\n hasOneAxisChanged = true;\n }\n if (allSpikesEnabled === \"on\" && !ax.showspikes) {\n allSpikesEnabled = \"off\";\n }\n }\n gd._fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n return hasOneAxisChanged;\n };\n axes.autoBin = function(data, ax, nbins, is2d, calendar, size) {\n var dataMin = Lib.aggNums(Math.min, null, data);\n var dataMax = Lib.aggNums(Math.max, null, data);\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n return {\n start: dataMin - 0.5,\n end: dataMax + 0.5,\n size: Math.max(1, Math.round(size) || 1),\n _dataSpan: dataMax - dataMin\n };\n }\n if (!calendar) calendar = ax.calendar;\n var dummyAx;\n if (ax.type === \"log\") {\n dummyAx = {\n type: \"linear\",\n range: [dataMin, dataMax]\n };\n } else {\n dummyAx = {\n type: ax.type,\n range: Lib.simpleMap([dataMin, dataMax], ax.c2r, 0, calendar),\n calendar\n };\n }\n axes.setConvert(dummyAx);\n size = size && cleanTicks.dtick(size, dummyAx.type);\n if (size) {\n dummyAx.dtick = size;\n dummyAx.tick0 = cleanTicks.tick0(void 0, dummyAx.type, calendar);\n } else {\n var size0;\n if (nbins) size0 = (dataMax - dataMin) / nbins;\n else {\n var distinctData = Lib.distinctVals(data);\n var msexp = Math.pow(10, Math.floor(\n Math.log(distinctData.minDiff) / Math.LN10\n ));\n var minSize = msexp * Lib.roundUp(\n distinctData.minDiff / msexp,\n [0.9, 1.9, 4.9, 9.9],\n true\n );\n size0 = Math.max(minSize, 2 * Lib.stdev(data) / Math.pow(data.length, is2d ? 0.25 : 0.4));\n if (!isNumeric(size0)) size0 = 1;\n }\n axes.autoTicks(dummyAx, size0);\n }\n var finalSize = dummyAx.dtick;\n var binStart = axes.tickIncrement(\n axes.tickFirst(dummyAx),\n finalSize,\n \"reverse\",\n calendar\n );\n var binEnd, bincount;\n if (typeof finalSize === \"number\") {\n binStart = autoShiftNumericBins(binStart, data, dummyAx, dataMin, dataMax);\n bincount = 1 + Math.floor((dataMax - binStart) / finalSize);\n binEnd = binStart + bincount * finalSize;\n } else {\n if (dummyAx.dtick.charAt(0) === \"M\") {\n binStart = autoShiftMonthBins(binStart, data, finalSize, dataMin, calendar);\n }\n binEnd = binStart;\n bincount = 0;\n while (binEnd <= dataMax) {\n binEnd = axes.tickIncrement(binEnd, finalSize, false, calendar);\n bincount++;\n }\n }\n return {\n start: ax.c2r(binStart, 0, calendar),\n end: ax.c2r(binEnd, 0, calendar),\n size: finalSize,\n _dataSpan: dataMax - dataMin\n };\n };\n function autoShiftNumericBins(binStart, data, ax, dataMin, dataMax) {\n var edgecount = 0;\n var midcount = 0;\n var intcount = 0;\n var blankCount = 0;\n function nearEdge(v) {\n return (1 + (v - binStart) * 100 / ax.dtick) % 100 < 2;\n }\n for (var i = 0; i < data.length; i++) {\n if (data[i] % 1 === 0) intcount++;\n else if (!isNumeric(data[i])) blankCount++;\n if (nearEdge(data[i])) edgecount++;\n if (nearEdge(data[i] + ax.dtick / 2)) midcount++;\n }\n var dataCount = data.length - blankCount;\n if (intcount === dataCount && ax.type !== \"date\") {\n if (ax.dtick < 1) {\n binStart = dataMin - 0.5 * ax.dtick;\n } else {\n binStart -= 0.5;\n if (binStart + ax.dtick < dataMin) binStart += ax.dtick;\n }\n } else if (midcount < dataCount * 0.1) {\n if (edgecount > dataCount * 0.3 || nearEdge(dataMin) || nearEdge(dataMax)) {\n var binshift = ax.dtick / 2;\n binStart += binStart + binshift < dataMin ? binshift : -binshift;\n }\n }\n return binStart;\n }\n function autoShiftMonthBins(binStart, data, dtick, dataMin, calendar) {\n var stats = Lib.findExactDates(data, calendar);\n var threshold = 0.8;\n if (stats.exactDays > threshold) {\n var numMonths = Number(dtick.substr(1));\n if (stats.exactYears > threshold && numMonths % 12 === 0) {\n binStart = axes.tickIncrement(binStart, \"M6\", \"reverse\") + ONEDAY * 1.5;\n } else if (stats.exactMonths > threshold) {\n binStart = axes.tickIncrement(binStart, \"M1\", \"reverse\") + ONEDAY * 15.5;\n } else {\n binStart -= HALFDAY;\n }\n var nextBinStart = axes.tickIncrement(binStart, dtick);\n if (nextBinStart <= dataMin) return nextBinStart;\n }\n return binStart;\n }\n axes.prepMinorTicks = function(mockAx, ax, opts) {\n if (!ax.minor.dtick) {\n delete mockAx.dtick;\n var hasMajor = ax.dtick && isNumeric(ax._tmin);\n var mockMinorRange;\n if (hasMajor) {\n var tick2 = axes.tickIncrement(ax._tmin, ax.dtick, true);\n mockMinorRange = [ax._tmin, tick2 * 0.99 + ax._tmin * 0.01];\n } else {\n var rl = Lib.simpleMap(ax.range, ax.r2l);\n mockMinorRange = [rl[0], 0.8 * rl[0] + 0.2 * rl[1]];\n }\n mockAx.range = Lib.simpleMap(mockMinorRange, ax.l2r);\n mockAx._isMinor = true;\n axes.prepTicks(mockAx, opts);\n if (hasMajor) {\n var numericMajor = isNumeric(ax.dtick);\n var numericMinor = isNumeric(mockAx.dtick);\n var majorNum = numericMajor ? ax.dtick : +ax.dtick.substring(1);\n var minorNum = numericMinor ? mockAx.dtick : +mockAx.dtick.substring(1);\n if (numericMajor && numericMinor) {\n if (!isMultiple(majorNum, minorNum)) {\n if (majorNum === 2 * ONEWEEK && minorNum === 3 * ONEDAY) {\n mockAx.dtick = ONEWEEK;\n } else if (majorNum === ONEWEEK && !(ax._input.minor || {}).nticks) {\n mockAx.dtick = ONEDAY;\n } else if (isClose(majorNum / minorNum, 2.5)) {\n mockAx.dtick = majorNum / 2;\n } else {\n mockAx.dtick = majorNum;\n }\n } else if (majorNum === 2 * ONEWEEK && minorNum === 2 * ONEDAY) {\n mockAx.dtick = ONEWEEK;\n }\n } else if (String(ax.dtick).charAt(0) === \"M\") {\n if (numericMinor) {\n mockAx.dtick = \"M1\";\n } else {\n if (!isMultiple(majorNum, minorNum)) {\n mockAx.dtick = ax.dtick;\n } else if (majorNum >= 12 && minorNum === 2) {\n mockAx.dtick = \"M3\";\n }\n }\n } else if (String(mockAx.dtick).charAt(0) === \"L\") {\n if (String(ax.dtick).charAt(0) === \"L\") {\n if (!isMultiple(majorNum, minorNum)) {\n mockAx.dtick = isClose(majorNum / minorNum, 2.5) ? ax.dtick / 2 : ax.dtick;\n }\n } else {\n mockAx.dtick = \"D1\";\n }\n } else if (mockAx.dtick === \"D2\" && +ax.dtick > 1) {\n mockAx.dtick = 1;\n }\n }\n mockAx.range = ax.range;\n }\n if (ax.minor._tick0Init === void 0) {\n mockAx.tick0 = ax.tick0;\n }\n };\n function isMultiple(bigger, smaller) {\n return Math.abs((bigger / smaller + 0.5) % 1 - 0.5) < 1e-3;\n }\n function isClose(a, b) {\n return Math.abs(a / b - 1) < 1e-3;\n }\n axes.prepTicks = function(ax, opts) {\n var rng = Lib.simpleMap(ax.range, ax.r2l, void 0, void 0, opts);\n if (ax.tickmode === \"auto\" || !ax.dtick) {\n var nt = ax.nticks;\n var minPx;\n if (!nt) {\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n minPx = ax.tickfont ? Lib.bigFont(ax.tickfont.size || 12) : 15;\n nt = ax._length / minPx;\n } else {\n minPx = ax._id.charAt(0) === \"y\" ? 40 : 80;\n nt = Lib.constrain(ax._length / minPx, 4, 9) + 1;\n }\n if (ax._name === \"radialaxis\") nt *= 2;\n }\n if (!(ax.minor && ax.minor.tickmode !== \"array\")) {\n if (ax.tickmode === \"array\") nt *= 100;\n }\n ax._roughDTick = Math.abs(rng[1] - rng[0]) / nt;\n axes.autoTicks(ax, ax._roughDTick);\n if (ax._minDtick > 0 && ax.dtick < ax._minDtick * 2) {\n ax.dtick = ax._minDtick;\n ax.tick0 = ax.l2r(ax._forceTick0);\n }\n }\n if (ax.ticklabelmode === \"period\") {\n adjustPeriodDelta(ax);\n }\n if (!ax.tick0) {\n ax.tick0 = ax.type === \"date\" ? \"2000-01-01\" : 0;\n }\n if (ax.type === \"date\" && ax.dtick < 0.1) ax.dtick = 0.1;\n autoTickRound(ax);\n };\n function nMonths(dtick) {\n return +dtick.substring(1);\n }\n function adjustPeriodDelta(ax) {\n var definedDelta;\n function mDate() {\n return !(isNumeric(ax.dtick) || ax.dtick.charAt(0) !== \"M\");\n }\n var isMDate = mDate();\n var tickformat = axes.getTickFormat(ax);\n if (tickformat) {\n var noDtick = ax._dtickInit !== ax.dtick;\n if (!/%[fLQsSMX]/.test(tickformat)) {\n if (/%[HI]/.test(tickformat)) {\n definedDelta = ONEHOUR;\n if (noDtick && !isMDate && ax.dtick < ONEHOUR) ax.dtick = ONEHOUR;\n } else if (/%p/.test(tickformat)) {\n definedDelta = HALFDAY;\n if (noDtick && !isMDate && ax.dtick < HALFDAY) ax.dtick = HALFDAY;\n } else if (/%[Aadejuwx]/.test(tickformat)) {\n definedDelta = ONEDAY;\n if (noDtick && !isMDate && ax.dtick < ONEDAY) ax.dtick = ONEDAY;\n } else if (/%[UVW]/.test(tickformat)) {\n definedDelta = ONEWEEK;\n if (noDtick && !isMDate && ax.dtick < ONEWEEK) ax.dtick = ONEWEEK;\n } else if (/%[Bbm]/.test(tickformat)) {\n definedDelta = ONEAVGMONTH;\n if (noDtick && (isMDate ? nMonths(ax.dtick) < 1 : ax.dtick < ONEMINMONTH)) ax.dtick = \"M1\";\n } else if (/%[q]/.test(tickformat)) {\n definedDelta = ONEAVGQUARTER;\n if (noDtick && (isMDate ? nMonths(ax.dtick) < 3 : ax.dtick < ONEMINQUARTER)) ax.dtick = \"M3\";\n } else if (/%[Yy]/.test(tickformat)) {\n definedDelta = ONEAVGYEAR;\n if (noDtick && (isMDate ? nMonths(ax.dtick) < 12 : ax.dtick < ONEMINYEAR)) ax.dtick = \"M12\";\n }\n }\n }\n isMDate = mDate();\n if (isMDate && ax.tick0 === ax._dowTick0) {\n ax.tick0 = ax._rawTick0;\n }\n ax._definedDelta = definedDelta;\n }\n function positionPeriodTicks(tickVals, ax, definedDelta) {\n for (var i = 0; i < tickVals.length; i++) {\n var v = tickVals[i].value;\n var a = i;\n var b = i + 1;\n if (i < tickVals.length - 1) {\n a = i;\n b = i + 1;\n } else if (i > 0) {\n a = i - 1;\n b = i;\n } else {\n a = i;\n b = i;\n }\n var A2 = tickVals[a].value;\n var B2 = tickVals[b].value;\n var actualDelta = Math.abs(B2 - A2);\n var delta = definedDelta || actualDelta;\n var periodLength = 0;\n if (delta >= ONEMINYEAR) {\n if (actualDelta >= ONEMINYEAR && actualDelta <= ONEMAXYEAR) {\n periodLength = actualDelta;\n } else {\n periodLength = ONEAVGYEAR;\n }\n } else if (definedDelta === ONEAVGQUARTER && delta >= ONEMINQUARTER) {\n if (actualDelta >= ONEMINQUARTER && actualDelta <= ONEMAXQUARTER) {\n periodLength = actualDelta;\n } else {\n periodLength = ONEAVGQUARTER;\n }\n } else if (delta >= ONEMINMONTH) {\n if (actualDelta >= ONEMINMONTH && actualDelta <= ONEMAXMONTH) {\n periodLength = actualDelta;\n } else {\n periodLength = ONEAVGMONTH;\n }\n } else if (definedDelta === ONEWEEK && delta >= ONEWEEK) {\n periodLength = ONEWEEK;\n } else if (delta >= ONEDAY) {\n periodLength = ONEDAY;\n } else if (definedDelta === HALFDAY && delta >= HALFDAY) {\n periodLength = HALFDAY;\n } else if (definedDelta === ONEHOUR && delta >= ONEHOUR) {\n periodLength = ONEHOUR;\n }\n var inBetween;\n if (periodLength >= actualDelta) {\n periodLength = actualDelta;\n inBetween = true;\n }\n var endPeriod = v + periodLength;\n if (ax.rangebreaks && periodLength > 0) {\n var nAll = 84;\n var n = 0;\n for (var c = 0; c < nAll; c++) {\n var r = (c + 0.5) / nAll;\n if (ax.maskBreaks(v * (1 - r) + r * endPeriod) !== BADNUM) n++;\n }\n periodLength *= n / nAll;\n if (!periodLength) {\n tickVals[i].drop = true;\n }\n if (inBetween && actualDelta > ONEWEEK) periodLength = actualDelta;\n }\n if (periodLength > 0 || // not instant\n i === 0) {\n tickVals[i].periodX = v + periodLength / 2;\n }\n }\n }\n axes.calcTicks = function calcTicks(ax, opts) {\n var type = ax.type;\n var calendar = ax.calendar;\n var ticklabelstep = ax.ticklabelstep;\n var isPeriod = ax.ticklabelmode === \"period\";\n var isReversed = ax.range[0] > ax.range[1];\n var ticklabelIndex = !ax.ticklabelindex || Lib.isArrayOrTypedArray(ax.ticklabelindex) ? ax.ticklabelindex : [ax.ticklabelindex];\n var rng = Lib.simpleMap(ax.range, ax.r2l, void 0, void 0, opts);\n var axrev = rng[1] < rng[0];\n var minRange = Math.min(rng[0], rng[1]);\n var maxRange = Math.max(rng[0], rng[1]);\n var maxTicks = Math.max(1e3, ax._length || 0);\n var ticksOut = [];\n var minorTicks = [];\n var tickVals = [];\n var minorTickVals = [];\n var allTicklabelVals = [];\n var hasMinor = ax.minor && (ax.minor.ticks || ax.minor.showgrid);\n for (var major = 1; major >= (hasMinor ? 0 : 1); major--) {\n var isMinor = !major;\n if (major) {\n ax._dtickInit = ax.dtick;\n ax._tick0Init = ax.tick0;\n } else {\n ax.minor._dtickInit = ax.minor.dtick;\n ax.minor._tick0Init = ax.minor.tick0;\n }\n var mockAx = major ? ax : Lib.extendFlat({}, ax, ax.minor);\n if (isMinor) {\n axes.prepMinorTicks(mockAx, ax, opts);\n } else {\n axes.prepTicks(mockAx, opts);\n }\n if (mockAx.tickmode === \"array\") {\n if (major) {\n tickVals = [];\n ticksOut = arrayTicks(ax, !isMinor);\n } else {\n minorTickVals = [];\n minorTicks = arrayTicks(ax, !isMinor);\n }\n continue;\n }\n if (mockAx.tickmode === \"sync\") {\n tickVals = [];\n ticksOut = syncTicks(ax);\n continue;\n }\n var exRng = expandRange(rng);\n var startTick = exRng[0];\n var endTick = exRng[1];\n var numDtick = isNumeric(mockAx.dtick);\n var isDLog = type === \"log\" && !(numDtick || mockAx.dtick.charAt(0) === \"L\");\n var x0 = axes.tickFirst(mockAx, opts);\n if (major) {\n ax._tmin = x0;\n if (x0 < startTick !== axrev) break;\n if (type === \"category\" || type === \"multicategory\") {\n endTick = axrev ? Math.max(-0.5, endTick) : Math.min(ax._categories.length - 0.5, endTick);\n }\n }\n var prevX = null;\n var x = x0;\n var majorId;\n if (major) {\n var _dTick;\n if (numDtick) {\n _dTick = ax.dtick;\n } else {\n if (type === \"date\") {\n if (typeof ax.dtick === \"string\" && ax.dtick.charAt(0) === \"M\") {\n _dTick = ONEAVGMONTH * ax.dtick.substring(1);\n }\n } else {\n _dTick = ax._roughDTick;\n }\n }\n majorId = Math.round((ax.r2l(x) - ax.r2l(ax.tick0)) / _dTick) - 1;\n }\n var dtick = mockAx.dtick;\n if (mockAx.rangebreaks && mockAx._tick0Init !== mockAx.tick0) {\n x = moveOutsideBreak(x, ax);\n if (!axrev) {\n x = axes.tickIncrement(x, dtick, !axrev, calendar);\n }\n }\n if (major && isPeriod) {\n x = axes.tickIncrement(x, dtick, !axrev, calendar);\n majorId--;\n }\n for (; axrev ? x >= endTick : x <= endTick; x = axes.tickIncrement(\n x,\n dtick,\n axrev,\n calendar\n )) {\n if (major) majorId++;\n if (mockAx.rangebreaks) {\n if (!axrev) {\n if (x < startTick) continue;\n if (mockAx.maskBreaks(x) === BADNUM && moveOutsideBreak(x, mockAx) >= maxRange) break;\n }\n }\n if (tickVals.length > maxTicks || x === prevX) break;\n prevX = x;\n var obj = { value: x };\n if (major) {\n if (isDLog && x !== (x | 0)) {\n obj.simpleLabel = true;\n }\n if (ticklabelstep > 1 && majorId % ticklabelstep) {\n obj.skipLabel = true;\n }\n tickVals.push(obj);\n } else {\n obj.minor = true;\n minorTickVals.push(obj);\n }\n }\n }\n if (!minorTickVals || minorTickVals.length < 2) {\n ticklabelIndex = false;\n } else {\n var diff = (minorTickVals[1].value - minorTickVals[0].value) * (isReversed ? -1 : 1);\n if (!periodCompatibleWithTickformat(diff, ax.tickformat)) {\n ticklabelIndex = false;\n }\n }\n if (!ticklabelIndex) {\n allTicklabelVals = tickVals;\n } else {\n var allTickVals = tickVals.concat(minorTickVals);\n if (isPeriod && tickVals.length) {\n allTickVals = allTickVals.slice(1);\n }\n allTickVals = allTickVals.sort(function(a, b) {\n return a.value - b.value;\n }).filter(function(tick, index, self2) {\n return index === 0 || tick.value !== self2[index - 1].value;\n });\n var majorTickIndices = allTickVals.map(function(item, index) {\n return item.minor === void 0 && !item.skipLabel ? index : null;\n }).filter(function(index) {\n return index !== null;\n });\n majorTickIndices.forEach(function(majorIdx) {\n ticklabelIndex.map(function(nextLabelIdx) {\n var minorIdx = majorIdx + nextLabelIdx;\n if (minorIdx >= 0 && minorIdx < allTickVals.length) {\n Lib.pushUnique(allTicklabelVals, allTickVals[minorIdx]);\n }\n });\n });\n }\n if (hasMinor) {\n var canOverlap = ax.minor.ticks === \"inside\" && ax.ticks === \"outside\" || ax.minor.ticks === \"outside\" && ax.ticks === \"inside\";\n if (!canOverlap) {\n var majorValues = tickVals.map(function(d) {\n return d.value;\n });\n var list = [];\n for (var k = 0; k < minorTickVals.length; k++) {\n var T = minorTickVals[k];\n var v = T.value;\n if (majorValues.indexOf(v) !== -1) {\n continue;\n }\n var found = false;\n for (var q = 0; !found && q < tickVals.length; q++) {\n if (\n // add 10e6 to eliminate problematic digits\n 1e7 + tickVals[q].value === 1e7 + v\n ) {\n found = true;\n }\n }\n if (!found) list.push(T);\n }\n minorTickVals = list;\n }\n }\n if (isPeriod) positionPeriodTicks(allTicklabelVals, ax, ax._definedDelta);\n var i;\n if (ax.rangebreaks) {\n var flip = ax._id.charAt(0) === \"y\";\n var fontSize = 1;\n if (ax.tickmode === \"auto\") {\n fontSize = ax.tickfont ? ax.tickfont.size : 12;\n }\n var prevL = NaN;\n for (i = tickVals.length - 1; i > -1; i--) {\n if (tickVals[i].drop) {\n tickVals.splice(i, 1);\n continue;\n }\n tickVals[i].value = moveOutsideBreak(tickVals[i].value, ax);\n var l = ax.c2p(tickVals[i].value);\n if (flip ? prevL > l - fontSize : prevL < l + fontSize) {\n tickVals.splice(axrev ? i + 1 : i, 1);\n } else {\n prevL = l;\n }\n }\n }\n if (isAngular(ax) && Math.abs(rng[1] - rng[0]) === 360) {\n tickVals.pop();\n }\n ax._tmax = (tickVals[tickVals.length - 1] || {}).value;\n ax._prevDateHead = \"\";\n ax._inCalcTicks = true;\n var lastVisibleHead;\n var hideLabel = function(tick) {\n tick.text = \"\";\n ax._prevDateHead = lastVisibleHead;\n };\n tickVals = tickVals.concat(minorTickVals);\n function setTickLabel(ax2, tickVal) {\n var text = axes.tickText(\n ax2,\n tickVal.value,\n false,\n // hover\n tickVal.simpleLabel\n // noSuffixPrefix\n );\n var p = tickVal.periodX;\n if (p !== void 0) {\n text.periodX = p;\n if (p > maxRange || p < minRange) {\n if (p > maxRange) text.periodX = maxRange;\n if (p < minRange) text.periodX = minRange;\n hideLabel(text);\n }\n }\n return text;\n }\n var t;\n for (i = 0; i < tickVals.length; i++) {\n var _minor = tickVals[i].minor;\n var _value = tickVals[i].value;\n if (_minor) {\n if (ticklabelIndex && allTicklabelVals.indexOf(tickVals[i]) !== -1) {\n t = setTickLabel(ax, tickVals[i]);\n } else {\n t = { x: _value };\n }\n t.minor = true;\n minorTicks.push(t);\n } else {\n lastVisibleHead = ax._prevDateHead;\n t = setTickLabel(ax, tickVals[i]);\n if (tickVals[i].skipLabel || ticklabelIndex && allTicklabelVals.indexOf(tickVals[i]) === -1) {\n hideLabel(t);\n }\n ticksOut.push(t);\n }\n }\n ticksOut = ticksOut.concat(minorTicks);\n ax._inCalcTicks = false;\n if (isPeriod && ticksOut.length) {\n ticksOut[0].noTick = true;\n }\n return ticksOut;\n };\n function filterRangeBreaks(ax, ticksOut) {\n if (ax.rangebreaks) {\n ticksOut = ticksOut.filter(function(d) {\n return ax.maskBreaks(d.x) !== BADNUM;\n });\n }\n return ticksOut;\n }\n function syncTicks(ax) {\n var baseAxis = ax._mainAxis;\n var ticksOut = [];\n if (baseAxis._vals) {\n for (var i = 0; i < baseAxis._vals.length; i++) {\n if (baseAxis._vals[i].noTick) {\n continue;\n }\n var pos = baseAxis.l2p(baseAxis._vals[i].x);\n var vali = ax.p2l(pos);\n var obj = axes.tickText(ax, vali);\n if (baseAxis._vals[i].minor) {\n obj.minor = true;\n obj.text = \"\";\n }\n ticksOut.push(obj);\n }\n }\n ticksOut = filterRangeBreaks(ax, ticksOut);\n return ticksOut;\n }\n function arrayTicks(ax, majorOnly) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var exRng = expandRange(rng);\n var tickMin = Math.min(exRng[0], exRng[1]);\n var tickMax = Math.max(exRng[0], exRng[1]);\n var tickVal2l = ax.type === \"category\" ? ax.d2l_noadd : ax.d2l;\n if (ax.type === \"log\" && String(ax.dtick).charAt(0) !== \"L\") {\n ax.dtick = \"L\" + Math.pow(10, Math.floor(Math.min(ax.range[0], ax.range[1])) - 1);\n }\n var ticksOut = [];\n for (var isMinor = 0; isMinor <= 1; isMinor++) {\n if (majorOnly !== void 0 && (majorOnly && isMinor || majorOnly === false && !isMinor)) continue;\n if (isMinor && !ax.minor) continue;\n var vals = !isMinor ? ax.tickvals : ax.minor.tickvals;\n var text = !isMinor ? ax.ticktext : [];\n if (!vals) continue;\n if (!Lib.isArrayOrTypedArray(text)) text = [];\n for (var i = 0; i < vals.length; i++) {\n var vali = tickVal2l(vals[i]);\n if (vali > tickMin && vali < tickMax) {\n var obj = axes.tickText(ax, vali, false, String(text[i]));\n if (isMinor) {\n obj.minor = true;\n obj.text = \"\";\n }\n ticksOut.push(obj);\n }\n }\n }\n ticksOut = filterRangeBreaks(ax, ticksOut);\n return ticksOut;\n }\n var roundBase10 = [2, 5, 10];\n var roundBase24 = [1, 2, 3, 6, 12];\n var roundBase60 = [1, 2, 5, 10, 15, 30];\n var roundDays = [1, 2, 3, 7, 14];\n var roundLog1 = [-0.046, 0, 0.301, 0.477, 0.602, 0.699, 0.778, 0.845, 0.903, 0.954, 1];\n var roundLog2 = [-0.301, 0, 0.301, 0.699, 1];\n var roundAngles = [15, 30, 45, 90, 180];\n function roundDTick(roughDTick, base, roundingSet) {\n return base * Lib.roundUp(roughDTick / base, roundingSet);\n }\n axes.autoTicks = function(ax, roughDTick, isMinor) {\n var base;\n function getBase(v) {\n return Math.pow(v, Math.floor(Math.log(roughDTick) / Math.LN10));\n }\n if (ax.type === \"date\") {\n ax.tick0 = Lib.dateTick0(ax.calendar, 0);\n var roughX2 = 2 * roughDTick;\n if (roughX2 > ONEAVGYEAR) {\n roughDTick /= ONEAVGYEAR;\n base = getBase(10);\n ax.dtick = \"M\" + 12 * roundDTick(roughDTick, base, roundBase10);\n } else if (roughX2 > ONEAVGMONTH) {\n roughDTick /= ONEAVGMONTH;\n ax.dtick = \"M\" + roundDTick(roughDTick, 1, roundBase24);\n } else if (roughX2 > ONEDAY) {\n ax.dtick = roundDTick(roughDTick, ONEDAY, ax._hasDayOfWeekBreaks ? [1, 2, 7, 14] : roundDays);\n if (!isMinor) {\n var tickformat = axes.getTickFormat(ax);\n var isPeriod = ax.ticklabelmode === \"period\";\n if (isPeriod) ax._rawTick0 = ax.tick0;\n if (/%[uVW]/.test(tickformat)) {\n ax.tick0 = Lib.dateTick0(ax.calendar, 2);\n } else {\n ax.tick0 = Lib.dateTick0(ax.calendar, 1);\n }\n if (isPeriod) ax._dowTick0 = ax.tick0;\n }\n } else if (roughX2 > ONEHOUR) {\n ax.dtick = roundDTick(roughDTick, ONEHOUR, roundBase24);\n } else if (roughX2 > ONEMIN) {\n ax.dtick = roundDTick(roughDTick, ONEMIN, roundBase60);\n } else if (roughX2 > ONESEC) {\n ax.dtick = roundDTick(roughDTick, ONESEC, roundBase60);\n } else {\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n } else if (ax.type === \"log\") {\n ax.tick0 = 0;\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n if (ax._isMinor) {\n roughDTick *= 1.5;\n }\n if (roughDTick > 0.7) {\n ax.dtick = Math.ceil(roughDTick);\n } else if (Math.abs(rng[1] - rng[0]) < 1) {\n var nt = 1.5 * Math.abs((rng[1] - rng[0]) / roughDTick);\n roughDTick = Math.abs(Math.pow(10, rng[1]) - Math.pow(10, rng[0])) / nt;\n base = getBase(10);\n ax.dtick = \"L\" + roundDTick(roughDTick, base, roundBase10);\n } else {\n ax.dtick = roughDTick > 0.3 ? \"D2\" : \"D1\";\n }\n } else if (ax.type === \"category\" || ax.type === \"multicategory\") {\n ax.tick0 = 0;\n ax.dtick = Math.ceil(Math.max(roughDTick, 1));\n } else if (isAngular(ax)) {\n ax.tick0 = 0;\n base = 1;\n ax.dtick = roundDTick(roughDTick, base, roundAngles);\n } else {\n ax.tick0 = 0;\n base = getBase(10);\n ax.dtick = roundDTick(roughDTick, base, roundBase10);\n }\n if (ax.dtick === 0) ax.dtick = 1;\n if (!isNumeric(ax.dtick) && typeof ax.dtick !== \"string\") {\n var olddtick = ax.dtick;\n ax.dtick = 1;\n throw \"ax.dtick error: \" + String(olddtick);\n }\n };\n function autoTickRound(ax) {\n var dtick = ax.dtick;\n ax._tickexponent = 0;\n if (!isNumeric(dtick) && typeof dtick !== \"string\") {\n dtick = 1;\n }\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n ax._tickround = null;\n }\n if (ax.type === \"date\") {\n var tick0ms = ax.r2l(ax.tick0);\n var tick0str = ax.l2r(tick0ms).replace(/(^-|i)/g, \"\");\n var tick0len = tick0str.length;\n if (String(dtick).charAt(0) === \"M\") {\n if (tick0len > 10 || tick0str.substr(5) !== \"01-01\") ax._tickround = \"d\";\n else ax._tickround = +dtick.substr(1) % 12 === 0 ? \"y\" : \"m\";\n } else if (dtick >= ONEDAY && tick0len <= 10 || dtick >= ONEDAY * 15) ax._tickround = \"d\";\n else if (dtick >= ONEMIN && tick0len <= 16 || dtick >= ONEHOUR) ax._tickround = \"M\";\n else if (dtick >= ONESEC && tick0len <= 19 || dtick >= ONEMIN) ax._tickround = \"S\";\n else {\n var tick1len = ax.l2r(tick0ms + dtick).replace(/^-/, \"\").length;\n ax._tickround = Math.max(tick0len, tick1len) - 20;\n if (ax._tickround < 0) ax._tickround = 4;\n }\n } else if (isNumeric(dtick) || dtick.charAt(0) === \"L\") {\n var rng = ax.range.map(ax.r2d || Number);\n if (!isNumeric(dtick)) dtick = Number(dtick.substr(1));\n ax._tickround = 2 - Math.floor(Math.log(dtick) / Math.LN10 + 0.01);\n var maxend = Math.max(Math.abs(rng[0]), Math.abs(rng[1]));\n var rangeexp = Math.floor(Math.log(maxend) / Math.LN10 + 0.01);\n var minexponent = ax.minexponent === void 0 ? 3 : ax.minexponent;\n if (Math.abs(rangeexp) > minexponent) {\n if (isSIFormat(ax.exponentformat) && !beyondSI(rangeexp)) {\n ax._tickexponent = 3 * Math.round((rangeexp - 1) / 3);\n } else ax._tickexponent = rangeexp;\n }\n } else {\n ax._tickround = null;\n }\n }\n axes.tickIncrement = function(x, dtick, axrev, calendar) {\n var axSign = axrev ? -1 : 1;\n if (isNumeric(dtick)) return Lib.increment(x, axSign * dtick);\n var tType = dtick.charAt(0);\n var dtSigned = axSign * Number(dtick.substr(1));\n if (tType === \"M\") return Lib.incrementMonth(x, dtSigned, calendar);\n if (tType === \"L\") return Math.log(Math.pow(10, x) + dtSigned) / Math.LN10;\n if (tType === \"D\") {\n var tickset = dtick === \"D2\" ? roundLog2 : roundLog1;\n var x2 = x + axSign * 0.01;\n var frac = Lib.roundUp(Lib.mod(x2, 1), tickset, axrev);\n return Math.floor(x2) + Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n }\n throw \"unrecognized dtick \" + String(dtick);\n };\n axes.tickFirst = function(ax, opts) {\n var r2l = ax.r2l || Number;\n var rng = Lib.simpleMap(ax.range, r2l, void 0, void 0, opts);\n var axrev = rng[1] < rng[0];\n var sRound = axrev ? Math.floor : Math.ceil;\n var r0 = expandRange(rng)[0];\n var dtick = ax.dtick;\n var tick0 = r2l(ax.tick0);\n if (isNumeric(dtick)) {\n var tmin = sRound((r0 - tick0) / dtick) * dtick + tick0;\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n tmin = Lib.constrain(tmin, 0, ax._categories.length - 1);\n }\n return tmin;\n }\n var tType = dtick.charAt(0);\n var dtNum = Number(dtick.substr(1));\n if (tType === \"M\") {\n var cnt = 0;\n var t02 = tick0;\n var t12, mult, newDTick;\n while (cnt < 10) {\n t12 = axes.tickIncrement(t02, dtick, axrev, ax.calendar);\n if ((t12 - r0) * (t02 - r0) <= 0) {\n if (axrev) return Math.min(t02, t12);\n return Math.max(t02, t12);\n }\n mult = (r0 - (t02 + t12) / 2) / (t12 - t02);\n newDTick = tType + (Math.abs(Math.round(mult)) || 1) * dtNum;\n t02 = axes.tickIncrement(t02, newDTick, mult < 0 ? !axrev : axrev, ax.calendar);\n cnt++;\n }\n Lib.error(\"tickFirst did not converge\", ax);\n return t02;\n } else if (tType === \"L\") {\n return Math.log(sRound(\n (Math.pow(10, r0) - tick0) / dtNum\n ) * dtNum + tick0) / Math.LN10;\n } else if (tType === \"D\") {\n var tickset = dtick === \"D2\" ? roundLog2 : roundLog1;\n var frac = Lib.roundUp(Lib.mod(r0, 1), tickset, axrev);\n return Math.floor(r0) + Math.log(d3.round(Math.pow(10, frac), 1)) / Math.LN10;\n } else throw \"unrecognized dtick \" + String(dtick);\n };\n axes.tickText = function(ax, x, hover, noSuffixPrefix) {\n var out = tickTextObj(ax, x);\n var arrayMode = ax.tickmode === \"array\";\n var extraPrecision = hover || arrayMode;\n var axType = ax.type;\n var tickVal2l = axType === \"category\" ? ax.d2l_noadd : ax.d2l;\n var i;\n var inbounds = function(v) {\n var p = ax.l2p(v);\n return p >= 0 && p <= ax._length ? v : null;\n };\n if (arrayMode && Lib.isArrayOrTypedArray(ax.ticktext)) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n var minDiff = (Math.abs(rng[1] - rng[0]) - (ax._lBreaks || 0)) / 1e4;\n for (i = 0; i < ax.ticktext.length; i++) {\n if (Math.abs(x - tickVal2l(ax.tickvals[i])) < minDiff) break;\n }\n if (i < ax.ticktext.length) {\n out.text = String(ax.ticktext[i]);\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n return out;\n }\n }\n function isHidden(showAttr) {\n if (showAttr === void 0) return true;\n if (hover) return showAttr === \"none\";\n var firstOrLast = {\n first: ax._tmin,\n last: ax._tmax\n }[showAttr];\n return showAttr !== \"all\" && x !== firstOrLast;\n }\n var hideexp = hover ? \"never\" : ax.exponentformat !== \"none\" && isHidden(ax.showexponent) ? \"hide\" : \"\";\n if (axType === \"date\") formatDate(ax, out, hover, extraPrecision);\n else if (axType === \"log\") formatLog(ax, out, hover, extraPrecision, hideexp);\n else if (axType === \"category\") formatCategory(ax, out);\n else if (axType === \"multicategory\") formatMultiCategory(ax, out, hover);\n else if (isAngular(ax)) formatAngle(ax, out, hover, extraPrecision, hideexp);\n else formatLinear(ax, out, hover, extraPrecision, hideexp);\n if (!noSuffixPrefix) {\n if (ax.tickprefix && !isHidden(ax.showtickprefix)) out.text = ax.tickprefix + out.text;\n if (ax.ticksuffix && !isHidden(ax.showticksuffix)) out.text += ax.ticksuffix;\n }\n if (ax.labelalias && ax.labelalias.hasOwnProperty(out.text)) {\n var t = ax.labelalias[out.text];\n if (typeof t === \"string\") out.text = t;\n }\n if (ax.tickson === \"boundaries\" || ax.showdividers) {\n out.xbnd = [\n inbounds(out.x - 0.5),\n inbounds(out.x + ax.dtick - 0.5)\n ];\n }\n return out;\n };\n axes.hoverLabelText = function(ax, values, hoverformat) {\n if (hoverformat) ax = Lib.extendFlat({}, ax, { hoverformat });\n var val = Lib.isArrayOrTypedArray(values) ? values[0] : values;\n var val2 = Lib.isArrayOrTypedArray(values) ? values[1] : void 0;\n if (val2 !== void 0 && val2 !== val) {\n return axes.hoverLabelText(ax, val, hoverformat) + \" - \" + axes.hoverLabelText(ax, val2, hoverformat);\n }\n var logOffScale = ax.type === \"log\" && val <= 0;\n var tx = axes.tickText(ax, ax.c2l(logOffScale ? -val : val), \"hover\").text;\n if (logOffScale) {\n return val === 0 ? \"0\" : MINUS_SIGN + tx;\n }\n return tx;\n };\n function tickTextObj(ax, x, text) {\n var tf = ax.tickfont || {};\n return {\n x,\n dx: 0,\n dy: 0,\n text: text || \"\",\n fontSize: tf.size,\n font: tf.family,\n fontWeight: tf.weight,\n fontStyle: tf.style,\n fontVariant: tf.variant,\n fontTextcase: tf.textcase,\n fontLineposition: tf.lineposition,\n fontShadow: tf.shadow,\n fontColor: tf.color\n };\n }\n function formatDate(ax, out, hover, extraPrecision) {\n var tr = ax._tickround;\n var fmt = hover && ax.hoverformat || axes.getTickFormat(ax);\n extraPrecision = !fmt && extraPrecision;\n if (extraPrecision) {\n if (isNumeric(tr)) tr = 4;\n else tr = { y: \"m\", m: \"d\", d: \"M\", M: \"S\", S: 4 }[tr];\n }\n var dateStr = Lib.formatDate(out.x, fmt, tr, ax._dateFormat, ax.calendar, ax._extraFormat);\n var headStr;\n var splitIndex = dateStr.indexOf(\"\\n\");\n if (splitIndex !== -1) {\n headStr = dateStr.substr(splitIndex + 1);\n dateStr = dateStr.substr(0, splitIndex);\n }\n if (extraPrecision) {\n if (headStr !== void 0 && (dateStr === \"00:00:00\" || dateStr === \"00:00\")) {\n dateStr = headStr;\n headStr = \"\";\n } else if (dateStr.length === 8) {\n dateStr = dateStr.replace(/:00$/, \"\");\n }\n }\n if (headStr) {\n if (hover) {\n if (tr === \"d\") dateStr += \", \" + headStr;\n else dateStr = headStr + (dateStr ? \", \" + dateStr : \"\");\n } else {\n if (!ax._inCalcTicks || ax._prevDateHead !== headStr) {\n ax._prevDateHead = headStr;\n dateStr += \"
\" + headStr;\n } else {\n var isInside = insideTicklabelposition(ax);\n var side = ax._trueSide || ax.side;\n if (!isInside && side === \"top\" || isInside && side === \"bottom\") {\n dateStr += \"
\";\n }\n }\n }\n }\n out.text = dateStr;\n }\n function formatLog(ax, out, hover, extraPrecision, hideexp) {\n var dtick = ax.dtick;\n var x = out.x;\n var tickformat = ax.tickformat;\n var dtChar0 = typeof dtick === \"string\" && dtick.charAt(0);\n if (hideexp === \"never\") {\n hideexp = \"\";\n }\n if (extraPrecision && dtChar0 !== \"L\") {\n dtick = \"L3\";\n dtChar0 = \"L\";\n }\n if (tickformat || dtChar0 === \"L\") {\n out.text = numFormat(Math.pow(10, x), ax, hideexp, extraPrecision);\n } else if (isNumeric(dtick) || dtChar0 === \"D\" && Lib.mod(x + 0.01, 1) < 0.1) {\n var p = Math.round(x);\n var absP = Math.abs(p);\n var exponentFormat = ax.exponentformat;\n if (exponentFormat === \"power\" || isSIFormat(exponentFormat) && beyondSI(p)) {\n if (p === 0) out.text = 1;\n else if (p === 1) out.text = \"10\";\n else out.text = \"10\" + (p > 1 ? \"\" : MINUS_SIGN) + absP + \"\";\n out.fontSize *= 1.25;\n } else if ((exponentFormat === \"e\" || exponentFormat === \"E\") && absP > 2) {\n out.text = \"1\" + exponentFormat + (p > 0 ? \"+\" : MINUS_SIGN) + absP;\n } else {\n out.text = numFormat(Math.pow(10, x), ax, \"\", \"fakehover\");\n if (dtick === \"D1\" && ax._id.charAt(0) === \"y\") {\n out.dy -= out.fontSize / 6;\n }\n }\n } else if (dtChar0 === \"D\") {\n out.text = String(Math.round(Math.pow(10, Lib.mod(x, 1))));\n out.fontSize *= 0.75;\n } else throw \"unrecognized dtick \" + String(dtick);\n if (ax.dtick === \"D1\") {\n var firstChar = String(out.text).charAt(0);\n if (firstChar === \"0\" || firstChar === \"1\") {\n if (ax._id.charAt(0) === \"y\") {\n out.dx -= out.fontSize / 4;\n } else {\n out.dy += out.fontSize / 2;\n out.dx += (ax.range[1] > ax.range[0] ? 1 : -1) * out.fontSize * (x < 0 ? 0.5 : 0.25);\n }\n }\n }\n }\n function formatCategory(ax, out) {\n var tt = ax._categories[Math.round(out.x)];\n if (tt === void 0) tt = \"\";\n out.text = String(tt);\n }\n function formatMultiCategory(ax, out, hover) {\n var v = Math.round(out.x);\n var cats = ax._categories[v] || [];\n var tt = cats[1] === void 0 ? \"\" : String(cats[1]);\n var tt2 = cats[0] === void 0 ? \"\" : String(cats[0]);\n if (hover) {\n out.text = tt2 + \" - \" + tt;\n } else {\n out.text = tt;\n out.text2 = tt2;\n }\n }\n function formatLinear(ax, out, hover, extraPrecision, hideexp) {\n if (hideexp === \"never\") {\n hideexp = \"\";\n } else if (ax.showexponent === \"all\" && Math.abs(out.x / ax.dtick) < 1e-6) {\n hideexp = \"hide\";\n }\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n function formatAngle(ax, out, hover, extraPrecision, hideexp) {\n if (ax.thetaunit === \"radians\" && !hover) {\n var num = out.x / 180;\n if (num === 0) {\n out.text = \"0\";\n } else {\n var frac = num2frac(num);\n if (frac[1] >= 100) {\n out.text = numFormat(Lib.deg2rad(out.x), ax, hideexp, extraPrecision);\n } else {\n var isNeg = out.x < 0;\n if (frac[1] === 1) {\n if (frac[0] === 1) out.text = \"\\u03C0\";\n else out.text = frac[0] + \"\\u03C0\";\n } else {\n out.text = [\n \"\",\n frac[0],\n \"\",\n \"\\u2044\",\n \"\",\n frac[1],\n \"\",\n \"\\u03C0\"\n ].join(\"\");\n }\n if (isNeg) out.text = MINUS_SIGN + out.text;\n }\n }\n } else {\n out.text = numFormat(out.x, ax, hideexp, extraPrecision);\n }\n }\n function num2frac(num) {\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n function findGCD(a, b) {\n return almostEq(b, 0) ? a : findGCD(b, a % b);\n }\n function findPrecision(n) {\n var e = 1;\n while (!almostEq(Math.round(n * e) / e, n)) {\n e *= 10;\n }\n return e;\n }\n var precision = findPrecision(num);\n var number = num * precision;\n var gcd = Math.abs(findGCD(number, precision));\n return [\n // numerator\n Math.round(number / gcd),\n // denominator\n Math.round(precision / gcd)\n ];\n }\n var SIPREFIXES = [\"f\", \"p\", \"n\", \"\\u03BC\", \"m\", \"\", \"k\", \"M\", \"G\", \"T\"];\n function isSIFormat(exponentFormat) {\n return exponentFormat === \"SI\" || exponentFormat === \"B\";\n }\n function beyondSI(exponent) {\n return exponent > 14 || exponent < -15;\n }\n function numFormat(v, ax, fmtoverride, hover) {\n var isNeg = v < 0;\n var tickRound = ax._tickround;\n var exponentFormat = fmtoverride || ax.exponentformat || \"B\";\n var exponent = ax._tickexponent;\n var tickformat = axes.getTickFormat(ax);\n var separatethousands = ax.separatethousands;\n if (hover) {\n var ah = {\n exponentformat: exponentFormat,\n minexponent: ax.minexponent,\n dtick: ax.showexponent === \"none\" ? ax.dtick : isNumeric(v) ? Math.abs(v) || 1 : 1,\n // if not showing any exponents, don't change the exponent\n // from what we calculate\n range: ax.showexponent === \"none\" ? ax.range.map(ax.r2d) : [0, v || 1]\n };\n autoTickRound(ah);\n tickRound = (Number(ah._tickround) || 0) + 4;\n exponent = ah._tickexponent;\n if (ax.hoverformat) tickformat = ax.hoverformat;\n }\n if (tickformat) return ax._numFormat(tickformat)(v).replace(/-/g, MINUS_SIGN);\n var e = Math.pow(10, -tickRound) / 2;\n if (exponentFormat === \"none\") exponent = 0;\n v = Math.abs(v);\n if (v < e) {\n v = \"0\";\n isNeg = false;\n } else {\n v += e;\n if (exponent) {\n v *= Math.pow(10, -exponent);\n tickRound += exponent;\n }\n if (tickRound === 0) v = String(Math.floor(v));\n else if (tickRound < 0) {\n v = String(Math.round(v));\n v = v.substr(0, v.length + tickRound);\n for (var i = tickRound; i < 0; i++) v += \"0\";\n } else {\n v = String(v);\n var dp = v.indexOf(\".\") + 1;\n if (dp) v = v.substr(0, dp + tickRound).replace(/\\.?0+$/, \"\");\n }\n v = Lib.numSeparate(v, ax._separators, separatethousands);\n }\n if (exponent && exponentFormat !== \"hide\") {\n if (isSIFormat(exponentFormat) && beyondSI(exponent)) exponentFormat = \"power\";\n var signedExponent;\n if (exponent < 0) signedExponent = MINUS_SIGN + -exponent;\n else if (exponentFormat !== \"power\") signedExponent = \"+\" + exponent;\n else signedExponent = String(exponent);\n if (exponentFormat === \"e\" || exponentFormat === \"E\") {\n v += exponentFormat + signedExponent;\n } else if (exponentFormat === \"power\") {\n v += \"\\xD710\" + signedExponent + \"\";\n } else if (exponentFormat === \"B\" && exponent === 9) {\n v += \"B\";\n } else if (isSIFormat(exponentFormat)) {\n v += SIPREFIXES[exponent / 3 + 5];\n }\n }\n if (isNeg) return MINUS_SIGN + v;\n return v;\n }\n axes.getTickFormat = function(ax) {\n var i;\n function convertToMs(dtick) {\n return typeof dtick !== \"string\" ? dtick : Number(dtick.replace(\"M\", \"\")) * ONEAVGMONTH;\n }\n function compareLogTicks(left, right) {\n var priority = [\"L\", \"D\"];\n if (typeof left === typeof right) {\n if (typeof left === \"number\") {\n return left - right;\n } else {\n var leftPriority = priority.indexOf(left.charAt(0));\n var rightPriority = priority.indexOf(right.charAt(0));\n if (leftPriority === rightPriority) {\n return Number(left.replace(/(L|D)/g, \"\")) - Number(right.replace(/(L|D)/g, \"\"));\n } else {\n return leftPriority - rightPriority;\n }\n }\n } else {\n return typeof left === \"number\" ? 1 : -1;\n }\n }\n function isProperStop(dtick, range, convert) {\n var convertFn = convert || function(x) {\n return x;\n };\n var leftDtick = range[0];\n var rightDtick = range[1];\n return (!leftDtick && typeof leftDtick !== \"number\" || convertFn(leftDtick) <= convertFn(dtick)) && (!rightDtick && typeof rightDtick !== \"number\" || convertFn(rightDtick) >= convertFn(dtick));\n }\n function isProperLogStop(dtick, range) {\n var isLeftDtickNull = range[0] === null;\n var isRightDtickNull = range[1] === null;\n var isDtickInRangeLeft = compareLogTicks(dtick, range[0]) >= 0;\n var isDtickInRangeRight = compareLogTicks(dtick, range[1]) <= 0;\n return (isLeftDtickNull || isDtickInRangeLeft) && (isRightDtickNull || isDtickInRangeRight);\n }\n var tickstop, stopi;\n if (ax.tickformatstops && ax.tickformatstops.length > 0) {\n switch (ax.type) {\n case \"date\":\n case \"linear\": {\n for (i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if (stopi.enabled && isProperStop(ax.dtick, stopi.dtickrange, convertToMs)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n case \"log\": {\n for (i = 0; i < ax.tickformatstops.length; i++) {\n stopi = ax.tickformatstops[i];\n if (stopi.enabled && isProperLogStop(ax.dtick, stopi.dtickrange)) {\n tickstop = stopi;\n break;\n }\n }\n break;\n }\n default:\n }\n }\n return tickstop ? tickstop.value : ax.tickformat;\n };\n axes.getSubplots = function(gd, ax) {\n var subplotObj = gd._fullLayout._subplots;\n var allSubplots = subplotObj.cartesian.concat(subplotObj.gl2d || []);\n var out = ax ? axes.findSubplotsWithAxis(allSubplots, ax) : allSubplots;\n out.sort(function(a, b) {\n var aParts = a.substr(1).split(\"y\");\n var bParts = b.substr(1).split(\"y\");\n if (aParts[0] === bParts[0]) return +aParts[1] - +bParts[1];\n return +aParts[0] - +bParts[0];\n });\n return out;\n };\n axes.findSubplotsWithAxis = function(subplots, ax) {\n var axMatch = new RegExp(\n ax._id.charAt(0) === \"x\" ? \"^\" + ax._id + \"y\" : ax._id + \"$\"\n );\n var subplotsWithAx = [];\n for (var i = 0; i < subplots.length; i++) {\n var sp = subplots[i];\n if (axMatch.test(sp)) subplotsWithAx.push(sp);\n }\n return subplotsWithAx;\n };\n axes.makeClipPaths = function(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._hasOnlyLargeSploms) return;\n var fullWidth = { _offset: 0, _length: fullLayout.width, _id: \"\" };\n var fullHeight = { _offset: 0, _length: fullLayout.height, _id: \"\" };\n var xaList = axes.list(gd, \"x\", true);\n var yaList = axes.list(gd, \"y\", true);\n var clipList = [];\n var i, j;\n for (i = 0; i < xaList.length; i++) {\n clipList.push({ x: xaList[i], y: fullHeight });\n for (j = 0; j < yaList.length; j++) {\n if (i === 0) clipList.push({ x: fullWidth, y: yaList[j] });\n clipList.push({ x: xaList[i], y: yaList[j] });\n }\n }\n var axClips = fullLayout._clips.selectAll(\".axesclip\").data(clipList, function(d) {\n return d.x._id + d.y._id;\n });\n axClips.enter().append(\"clipPath\").classed(\"axesclip\", true).attr(\"id\", function(d) {\n return \"clip\" + fullLayout._uid + d.x._id + d.y._id;\n }).append(\"rect\");\n axClips.exit().remove();\n axClips.each(function(d) {\n d3.select(this).select(\"rect\").attr({\n x: d.x._offset || 0,\n y: d.y._offset || 0,\n width: d.x._length || 1,\n height: d.y._length || 1\n });\n });\n };\n axes.draw = function(gd, arg, opts) {\n var fullLayout = gd._fullLayout;\n if (arg === \"redraw\") {\n fullLayout._paper.selectAll(\"g.subplot\").each(function(d) {\n var id = d[0];\n var plotinfo = fullLayout._plots[id];\n if (plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n plotinfo.xaxislayer.selectAll(\".\" + xa._id + \"tick\").remove();\n plotinfo.yaxislayer.selectAll(\".\" + ya._id + \"tick\").remove();\n plotinfo.xaxislayer.selectAll(\".\" + xa._id + \"tick2\").remove();\n plotinfo.yaxislayer.selectAll(\".\" + ya._id + \"tick2\").remove();\n plotinfo.xaxislayer.selectAll(\".\" + xa._id + \"divider\").remove();\n plotinfo.yaxislayer.selectAll(\".\" + ya._id + \"divider\").remove();\n if (plotinfo.minorGridlayer) plotinfo.minorGridlayer.selectAll(\"path\").remove();\n if (plotinfo.gridlayer) plotinfo.gridlayer.selectAll(\"path\").remove();\n if (plotinfo.zerolinelayer) plotinfo.zerolinelayer.selectAll(\"path\").remove();\n fullLayout._infolayer.select(\".g-\" + xa._id + \"title\").remove();\n fullLayout._infolayer.select(\".g-\" + ya._id + \"title\").remove();\n }\n });\n }\n var axList = !arg || arg === \"redraw\" ? axes.listIds(gd) : arg;\n var fullAxList = axes.list(gd);\n var overlayingShiftedAx = fullAxList.filter(function(ax) {\n return ax.autoshift;\n }).map(function(ax) {\n return ax.overlaying;\n });\n axList.map(function(axId) {\n var ax = axes.getFromId(gd, axId);\n if (ax.tickmode === \"sync\" && ax.overlaying) {\n var overlayingIndex = axList.findIndex(function(axis) {\n return axis === ax.overlaying;\n });\n if (overlayingIndex >= 0) {\n axList.unshift(axList.splice(overlayingIndex, 1).shift());\n }\n }\n });\n var axShifts = { false: { left: 0, right: 0 } };\n return Lib.syncOrAsync(axList.map(function(axId) {\n return function() {\n if (!axId) return;\n var ax = axes.getFromId(gd, axId);\n if (!opts) opts = {};\n opts.axShifts = axShifts;\n opts.overlayingShiftedAx = overlayingShiftedAx;\n var axDone = axes.drawOne(gd, ax, opts);\n if (ax._shiftPusher) {\n incrementShift(ax, ax._fullDepth || 0, axShifts, true);\n }\n ax._r = ax.range.slice();\n ax._rl = Lib.simpleMap(ax._r, ax.r2l);\n return axDone;\n };\n }));\n };\n axes.drawOne = function(gd, ax, opts) {\n opts = opts || {};\n var axShifts = opts.axShifts || {};\n var overlayingShiftedAx = opts.overlayingShiftedAx || [];\n var i, sp, plotinfo;\n ax.setScale();\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var counterLetter = axes.counterLetter(axId);\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n if (!mainPlotinfo) return;\n ax._shiftPusher = ax.autoshift || overlayingShiftedAx.indexOf(ax._id) !== -1 || overlayingShiftedAx.indexOf(ax.overlaying) !== -1;\n if (ax._shiftPusher & ax.anchor === \"free\") {\n var selfPush = ax.linewidth / 2 || 0;\n if (ax.ticks === \"inside\") {\n selfPush += ax.ticklen;\n }\n incrementShift(ax, selfPush, axShifts, true);\n incrementShift(ax, ax.shift || 0, axShifts, false);\n }\n if (opts.skipTitle !== true || ax._shift === void 0) ax._shift = setShiftVal(ax, axShifts);\n var mainAxLayer = mainPlotinfo[axLetter + \"axislayer\"];\n var mainLinePosition = ax._mainLinePosition;\n var mainLinePositionShift = mainLinePosition += ax._shift;\n var mainMirrorPosition = ax._mainMirrorPosition;\n var vals = ax._vals = axes.calcTicks(ax);\n var axInfo = [ax.mirror, mainLinePositionShift, mainMirrorPosition].join(\"_\");\n for (i = 0; i < vals.length; i++) {\n vals[i].axInfo = axInfo;\n }\n ax._selections = {};\n if (ax._tickAngles) ax._prevTickAngles = ax._tickAngles;\n ax._tickAngles = {};\n ax._depth = null;\n var llbboxes = {};\n function getLabelLevelBbox(suffix) {\n var cls = axId + (suffix || \"tick\");\n if (!llbboxes[cls]) llbboxes[cls] = calcLabelLevelBbox(ax, cls, mainLinePositionShift);\n return llbboxes[cls];\n }\n if (!ax.visible) return;\n var transTickFn = axes.makeTransTickFn(ax);\n var transTickLabelFn = axes.makeTransTickLabelFn(ax);\n var tickVals;\n var valsClipped;\n var insideTicks = ax.ticks === \"inside\";\n var outsideTicks = ax.ticks === \"outside\";\n if (ax.tickson === \"boundaries\") {\n var boundaryVals = getBoundaryVals(ax, vals);\n valsClipped = axes.clipEnds(ax, boundaryVals);\n tickVals = insideTicks ? valsClipped : boundaryVals;\n } else {\n valsClipped = axes.clipEnds(ax, vals);\n tickVals = insideTicks && ax.ticklabelmode !== \"period\" ? valsClipped : vals;\n }\n var gridVals = ax._gridVals = valsClipped;\n var dividerVals = getDividerVals(ax, vals);\n if (!fullLayout._hasOnlyLargeSploms) {\n var subplotsWithAx = ax._subplotsWith;\n var finishedGrids = {};\n for (i = 0; i < subplotsWithAx.length; i++) {\n sp = subplotsWithAx[i];\n plotinfo = fullLayout._plots[sp];\n var counterAxis = plotinfo[counterLetter + \"axis\"];\n var mainCounterID = counterAxis._mainAxis._id;\n if (finishedGrids[mainCounterID]) continue;\n finishedGrids[mainCounterID] = 1;\n var gridPath = axLetter === \"x\" ? \"M0,\" + counterAxis._offset + \"v\" + counterAxis._length : \"M\" + counterAxis._offset + \",0h\" + counterAxis._length;\n axes.drawGrid(gd, ax, {\n vals: gridVals,\n counterAxis,\n layer: plotinfo.gridlayer.select(\".\" + axId),\n minorLayer: plotinfo.minorGridlayer.select(\".\" + axId),\n path: gridPath,\n transFn: transTickFn\n });\n axes.drawZeroLine(gd, ax, {\n counterAxis,\n layer: plotinfo.zerolinelayer,\n path: gridPath,\n transFn: transTickFn\n });\n }\n }\n var tickPath;\n var majorTickSigns = axes.getTickSigns(ax);\n var minorTickSigns = axes.getTickSigns(ax, \"minor\");\n if (ax.ticks || ax.minor && ax.minor.ticks) {\n var majorTickPath = axes.makeTickPath(ax, mainLinePositionShift, majorTickSigns[2]);\n var minorTickPath = axes.makeTickPath(ax, mainLinePositionShift, minorTickSigns[2], { minor: true });\n var mirrorMajorTickPath;\n var mirrorMinorTickPath;\n var fullMajorTickPath;\n var fullMinorTickPath;\n if (ax._anchorAxis && ax.mirror && ax.mirror !== true) {\n mirrorMajorTickPath = axes.makeTickPath(ax, mainMirrorPosition, majorTickSigns[3]);\n mirrorMinorTickPath = axes.makeTickPath(ax, mainMirrorPosition, minorTickSigns[3], { minor: true });\n fullMajorTickPath = majorTickPath + mirrorMajorTickPath;\n fullMinorTickPath = minorTickPath + mirrorMinorTickPath;\n } else {\n mirrorMajorTickPath = \"\";\n mirrorMinorTickPath = \"\";\n fullMajorTickPath = majorTickPath;\n fullMinorTickPath = minorTickPath;\n }\n if (ax.showdividers && outsideTicks && ax.tickson === \"boundaries\") {\n var dividerLookup = {};\n for (i = 0; i < dividerVals.length; i++) {\n dividerLookup[dividerVals[i].x] = 1;\n }\n tickPath = function(d) {\n return dividerLookup[d.x] ? mirrorMajorTickPath : fullMajorTickPath;\n };\n } else {\n tickPath = function(d) {\n return d.minor ? fullMinorTickPath : fullMajorTickPath;\n };\n }\n }\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: mainAxLayer,\n path: tickPath,\n transFn: transTickFn\n });\n if (ax.mirror === \"allticks\") {\n var tickSubplots = Object.keys(ax._linepositions || {});\n for (i = 0; i < tickSubplots.length; i++) {\n sp = tickSubplots[i];\n plotinfo = fullLayout._plots[sp];\n var linepositions = ax._linepositions[sp] || [];\n var p0 = linepositions[0];\n var p1 = linepositions[1];\n var isMinor = linepositions[2];\n var spTickPath = axes.makeTickPath(\n ax,\n p0,\n isMinor ? majorTickSigns[0] : minorTickSigns[0],\n { minor: isMinor }\n ) + axes.makeTickPath(\n ax,\n p1,\n isMinor ? majorTickSigns[1] : minorTickSigns[1],\n { minor: isMinor }\n );\n axes.drawTicks(gd, ax, {\n vals: tickVals,\n layer: plotinfo[axLetter + \"axislayer\"],\n path: spTickPath,\n transFn: transTickFn\n });\n }\n }\n var seq = [];\n seq.push(function() {\n return axes.drawLabels(gd, ax, {\n vals,\n layer: mainAxLayer,\n plotinfo,\n transFn: transTickLabelFn,\n labelFns: axes.makeLabelFns(ax, mainLinePositionShift)\n });\n });\n if (ax.type === \"multicategory\") {\n var pad = { x: 2, y: 10 }[axLetter];\n seq.push(function() {\n var bboxKey = { x: \"height\", y: \"width\" }[axLetter];\n var standoff = getLabelLevelBbox()[bboxKey] + pad + (ax._tickAngles[axId + \"tick\"] ? ax.tickfont.size * LINE_SPACING : 0);\n return axes.drawLabels(gd, ax, {\n vals: getSecondaryLabelVals(ax, vals),\n layer: mainAxLayer,\n cls: axId + \"tick2\",\n repositionOnUpdate: true,\n secondary: true,\n transFn: transTickFn,\n labelFns: axes.makeLabelFns(ax, mainLinePositionShift + standoff * majorTickSigns[4])\n });\n });\n seq.push(function() {\n ax._depth = majorTickSigns[4] * (getLabelLevelBbox(\"tick2\")[ax.side] - mainLinePositionShift);\n return drawDividers(gd, ax, {\n vals: dividerVals,\n layer: mainAxLayer,\n path: axes.makeTickPath(ax, mainLinePositionShift, majorTickSigns[4], { len: ax._depth }),\n transFn: transTickFn\n });\n });\n } else if (ax.title.hasOwnProperty(\"standoff\")) {\n seq.push(function() {\n ax._depth = majorTickSigns[4] * (getLabelLevelBbox()[ax.side] - mainLinePositionShift);\n });\n }\n var hasRangeSlider = Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(ax);\n if (!opts.skipTitle && !(hasRangeSlider && ax.side === \"bottom\")) {\n seq.push(function() {\n return drawTitle(gd, ax);\n });\n }\n seq.push(function() {\n var s = ax.side.charAt(0);\n var sMirror = OPPOSITE_SIDE[ax.side].charAt(0);\n var pos = axes.getPxPosition(gd, ax);\n var outsideTickLen = outsideTicks ? ax.ticklen : 0;\n var llbbox;\n var push;\n var mirrorPush;\n var rangeSliderPush;\n if (ax.automargin || hasRangeSlider || ax._shiftPusher) {\n if (ax.type === \"multicategory\") {\n llbbox = getLabelLevelBbox(\"tick2\");\n } else {\n llbbox = getLabelLevelBbox();\n if (axLetter === \"x\" && s === \"b\") {\n ax._depth = Math.max(llbbox.width > 0 ? llbbox.bottom - pos : 0, outsideTickLen);\n }\n }\n }\n var axDepth = 0;\n var titleDepth = 0;\n if (ax._shiftPusher) {\n axDepth = Math.max(\n outsideTickLen,\n llbbox.height > 0 ? s === \"l\" ? pos - llbbox.left : llbbox.right - pos : 0\n );\n if (ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n titleDepth = (ax._titleStandoff || 0) + (ax._titleScoot || 0);\n if (s === \"l\") {\n titleDepth += approxTitleDepth(ax);\n }\n }\n ax._fullDepth = Math.max(axDepth, titleDepth);\n }\n if (ax.automargin) {\n push = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 };\n var domainIndices = [0, 1];\n var shift = typeof ax._shift === \"number\" ? ax._shift : 0;\n if (axLetter === \"x\") {\n if (s === \"b\") {\n push[s] = ax._depth;\n } else {\n push[s] = ax._depth = Math.max(llbbox.width > 0 ? pos - llbbox.top : 0, outsideTickLen);\n domainIndices.reverse();\n }\n if (llbbox.width > 0) {\n var rExtra = llbbox.right - (ax._offset + ax._length);\n if (rExtra > 0) {\n push.xr = 1;\n push.r = rExtra;\n }\n var lExtra = ax._offset - llbbox.left;\n if (lExtra > 0) {\n push.xl = 0;\n push.l = lExtra;\n }\n }\n } else {\n if (s === \"l\") {\n ax._depth = Math.max(llbbox.height > 0 ? pos - llbbox.left : 0, outsideTickLen);\n push[s] = ax._depth - shift;\n } else {\n ax._depth = Math.max(llbbox.height > 0 ? llbbox.right - pos : 0, outsideTickLen);\n push[s] = ax._depth + shift;\n domainIndices.reverse();\n }\n if (llbbox.height > 0) {\n var bExtra = llbbox.bottom - (ax._offset + ax._length);\n if (bExtra > 0) {\n push.yb = 0;\n push.b = bExtra;\n }\n var tExtra = ax._offset - llbbox.top;\n if (tExtra > 0) {\n push.yt = 1;\n push.t = tExtra;\n }\n }\n }\n push[counterLetter] = ax.anchor === \"free\" ? ax.position : ax._anchorAxis.domain[domainIndices[0]];\n if (ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n push[s] += approxTitleDepth(ax) + (ax.title.standoff || 0);\n }\n if (ax.mirror && ax.anchor !== \"free\") {\n mirrorPush = { x: 0, y: 0, r: 0, l: 0, t: 0, b: 0 };\n mirrorPush[sMirror] = ax.linewidth;\n if (ax.mirror && ax.mirror !== true) mirrorPush[sMirror] += outsideTickLen;\n if (ax.mirror === true || ax.mirror === \"ticks\") {\n mirrorPush[counterLetter] = ax._anchorAxis.domain[domainIndices[1]];\n } else if (ax.mirror === \"all\" || ax.mirror === \"allticks\") {\n mirrorPush[counterLetter] = [ax._counterDomainMin, ax._counterDomainMax][domainIndices[1]];\n }\n }\n }\n if (hasRangeSlider) {\n rangeSliderPush = Registry.getComponentMethod(\"rangeslider\", \"autoMarginOpts\")(gd, ax);\n }\n if (typeof ax.automargin === \"string\") {\n filterPush(push, ax.automargin);\n filterPush(mirrorPush, ax.automargin);\n }\n Plots.autoMargin(gd, axAutoMarginID(ax), push);\n Plots.autoMargin(gd, axMirrorAutoMarginID(ax), mirrorPush);\n Plots.autoMargin(gd, rangeSliderAutoMarginID(ax), rangeSliderPush);\n });\n return Lib.syncOrAsync(seq);\n };\n function filterPush(push, automargin) {\n if (!push) return;\n var keepMargin = Object.keys(MARGIN_MAPPING).reduce(function(data, nextKey) {\n if (automargin.indexOf(nextKey) !== -1) {\n MARGIN_MAPPING[nextKey].forEach(function(key) {\n data[key] = 1;\n });\n }\n return data;\n }, {});\n Object.keys(push).forEach(function(key) {\n if (!keepMargin[key]) {\n if (key.length === 1) push[key] = 0;\n else delete push[key];\n }\n });\n }\n function getBoundaryVals(ax, vals) {\n var out = [];\n var i;\n var _push = function(d, bndIndex) {\n var xb = d.xbnd[bndIndex];\n if (xb !== null) {\n out.push(Lib.extendFlat({}, d, { x: xb }));\n }\n };\n if (vals.length) {\n for (i = 0; i < vals.length; i++) {\n _push(vals[i], 0);\n }\n _push(vals[i - 1], 1);\n }\n return out;\n }\n function getSecondaryLabelVals(ax, vals) {\n var out = [];\n var lookup = {};\n for (var i = 0; i < vals.length; i++) {\n var d = vals[i];\n if (lookup[d.text2]) {\n lookup[d.text2].push(d.x);\n } else {\n lookup[d.text2] = [d.x];\n }\n }\n for (var k in lookup) {\n out.push(tickTextObj(ax, Lib.interp(lookup[k], 0.5), k));\n }\n return out;\n }\n function getDividerVals(ax, vals) {\n var out = [];\n var i, current;\n var reversed = vals.length && vals[vals.length - 1].x < vals[0].x;\n var _push = function(d2, bndIndex) {\n var xb = d2.xbnd[bndIndex];\n if (xb !== null) {\n out.push(Lib.extendFlat({}, d2, { x: xb }));\n }\n };\n if (ax.showdividers && vals.length) {\n for (i = 0; i < vals.length; i++) {\n var d = vals[i];\n if (d.text2 !== current) {\n _push(d, reversed ? 1 : 0);\n }\n current = d.text2;\n }\n _push(vals[i - 1], reversed ? 0 : 1);\n }\n return out;\n }\n function calcLabelLevelBbox(ax, cls, mainLinePositionShift) {\n var top, bottom;\n var left, right;\n if (ax._selections[cls].size()) {\n top = Infinity;\n bottom = -Infinity;\n left = Infinity;\n right = -Infinity;\n ax._selections[cls].each(function() {\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node().parentNode);\n top = Math.min(top, bb.top);\n bottom = Math.max(bottom, bb.bottom);\n left = Math.min(left, bb.left);\n right = Math.max(right, bb.right);\n });\n } else {\n var dummyCalc = axes.makeLabelFns(ax, mainLinePositionShift);\n top = bottom = dummyCalc.yFn({ dx: 0, dy: 0, fontSize: 0 });\n left = right = dummyCalc.xFn({ dx: 0, dy: 0, fontSize: 0 });\n }\n return {\n top,\n bottom,\n left,\n right,\n height: bottom - top,\n width: right - left\n };\n }\n axes.getTickSigns = function(ax, minor) {\n var axLetter = ax._id.charAt(0);\n var sideOpposite = { x: \"top\", y: \"right\" }[axLetter];\n var main = ax.side === sideOpposite ? 1 : -1;\n var out = [-1, 1, main, -main];\n var ticks = minor ? (ax.minor || {}).ticks : ax.ticks;\n if (ticks !== \"inside\" === (axLetter === \"x\")) {\n out = out.map(function(v) {\n return -v;\n });\n }\n if (ax.side) {\n out.push({ l: -1, t: -1, r: 1, b: 1 }[ax.side.charAt(0)]);\n }\n return out;\n };\n axes.makeTransTickFn = function(ax) {\n return ax._id.charAt(0) === \"x\" ? function(d) {\n return strTranslate(ax._offset + ax.l2p(d.x), 0);\n } : function(d) {\n return strTranslate(0, ax._offset + ax.l2p(d.x));\n };\n };\n axes.makeTransTickLabelFn = function(ax) {\n var uv = getTickLabelUV(ax);\n var shift = ax.ticklabelshift || 0;\n var standoff = ax.ticklabelstandoff || 0;\n var u = uv[0];\n var v = uv[1];\n var isReversed = ax.range[0] > ax.range[1];\n var labelsInside = ax.ticklabelposition && ax.ticklabelposition.indexOf(\"inside\") !== -1;\n var labelsOutside = !labelsInside;\n if (shift) {\n var shiftSign = isReversed ? -1 : 1;\n shift = shift * shiftSign;\n }\n if (standoff) {\n var side = ax.side;\n var standoffSign = labelsInside && (side === \"top\" || side === \"left\") || labelsOutside && (side === \"bottom\" || side === \"right\") ? 1 : -1;\n standoff = standoff * standoffSign;\n }\n return ax._id.charAt(0) === \"x\" ? function(d) {\n return strTranslate(\n u + ax._offset + ax.l2p(getPosX(d)) + shift,\n v + standoff\n );\n } : function(d) {\n return strTranslate(\n v + standoff,\n u + ax._offset + ax.l2p(getPosX(d)) + shift\n );\n };\n };\n function getPosX(d) {\n return d.periodX !== void 0 ? d.periodX : d.x;\n }\n function getTickLabelUV(ax) {\n var ticklabelposition = ax.ticklabelposition || \"\";\n var has = function(str) {\n return ticklabelposition.indexOf(str) !== -1;\n };\n var isTop = has(\"top\");\n var isLeft = has(\"left\");\n var isRight = has(\"right\");\n var isBottom = has(\"bottom\");\n var isInside = has(\"inside\");\n var isAligned = isBottom || isLeft || isTop || isRight;\n if (!isAligned && !isInside) return [0, 0];\n var side = ax.side;\n var u = isAligned ? (ax.tickwidth || 0) / 2 : 0;\n var v = TEXTPAD;\n var fontSize = ax.tickfont ? ax.tickfont.size : 12;\n if (isBottom || isTop) {\n u += fontSize * CAP_SHIFT;\n v += (ax.linewidth || 0) / 2;\n }\n if (isLeft || isRight) {\n u += (ax.linewidth || 0) / 2;\n v += TEXTPAD;\n }\n if (isInside && side === \"top\") {\n v -= fontSize * (1 - CAP_SHIFT);\n }\n if (isLeft || isTop) u = -u;\n if (side === \"bottom\" || side === \"right\") v = -v;\n return [\n isAligned ? u : 0,\n isInside ? v : 0\n ];\n }\n axes.makeTickPath = function(ax, shift, sgn, opts) {\n if (!opts) opts = {};\n var minor = opts.minor;\n if (minor && !ax.minor) return \"\";\n var len = opts.len !== void 0 ? opts.len : minor ? ax.minor.ticklen : ax.ticklen;\n var axLetter = ax._id.charAt(0);\n var pad = (ax.linewidth || 1) / 2;\n return axLetter === \"x\" ? \"M0,\" + (shift + pad * sgn) + \"v\" + len * sgn : \"M\" + (shift + pad * sgn) + \",0h\" + len * sgn;\n };\n axes.makeLabelFns = function(ax, shift, angle) {\n var ticklabelposition = ax.ticklabelposition || \"\";\n var has = function(str) {\n return ticklabelposition.indexOf(str) !== -1;\n };\n var isTop = has(\"top\");\n var isLeft = has(\"left\");\n var isRight = has(\"right\");\n var isBottom = has(\"bottom\");\n var isAligned = isBottom || isLeft || isTop || isRight;\n var insideTickLabels = has(\"inside\");\n var labelsOverTicks = ticklabelposition === \"inside\" && ax.ticks === \"inside\" || !insideTickLabels && ax.ticks === \"outside\" && ax.tickson !== \"boundaries\";\n var labelStandoff = 0;\n var labelShift = 0;\n var tickLen = labelsOverTicks ? ax.ticklen : 0;\n if (insideTickLabels) {\n tickLen *= -1;\n } else if (isAligned) {\n tickLen = 0;\n }\n if (labelsOverTicks) {\n labelStandoff += tickLen;\n if (angle) {\n var rad = Lib.deg2rad(angle);\n labelStandoff = tickLen * Math.cos(rad) + 1;\n labelShift = tickLen * Math.sin(rad);\n }\n }\n if (ax.showticklabels && (labelsOverTicks || ax.showline)) {\n labelStandoff += 0.2 * ax.tickfont.size;\n }\n labelStandoff += (ax.linewidth || 1) / 2 * (insideTickLabels ? -1 : 1);\n var out = {\n labelStandoff,\n labelShift\n };\n var x0, y0, ff, flipIt;\n var xQ = 0;\n var side = ax.side;\n var axLetter = ax._id.charAt(0);\n var tickangle = ax.tickangle;\n var endSide;\n if (axLetter === \"x\") {\n endSide = !insideTickLabels && side === \"bottom\" || insideTickLabels && side === \"top\";\n flipIt = endSide ? 1 : -1;\n if (insideTickLabels) flipIt *= -1;\n x0 = labelShift * flipIt;\n y0 = shift + labelStandoff * flipIt;\n ff = endSide ? 1 : -0.2;\n if (Math.abs(tickangle) === 90) {\n if (insideTickLabels) {\n ff += MID_SHIFT;\n } else {\n if (tickangle === -90 && side === \"bottom\") {\n ff = CAP_SHIFT;\n } else if (tickangle === 90 && side === \"top\") {\n ff = MID_SHIFT;\n } else {\n ff = 0.5;\n }\n }\n xQ = MID_SHIFT / 2 * (tickangle / 90);\n }\n out.xFn = function(d) {\n return d.dx + x0 + xQ * d.fontSize;\n };\n out.yFn = function(d) {\n return d.dy + y0 + d.fontSize * ff;\n };\n out.anchorFn = function(d, a) {\n if (isAligned) {\n if (isLeft) return \"end\";\n if (isRight) return \"start\";\n }\n if (!isNumeric(a) || a === 0 || a === 180) {\n return \"middle\";\n }\n return a * flipIt < 0 !== insideTickLabels ? \"end\" : \"start\";\n };\n out.heightFn = function(d, a, h) {\n return a < -60 || a > 60 ? -0.5 * h : ax.side === \"top\" !== insideTickLabels ? -h : 0;\n };\n } else if (axLetter === \"y\") {\n endSide = !insideTickLabels && side === \"left\" || insideTickLabels && side === \"right\";\n flipIt = endSide ? 1 : -1;\n if (insideTickLabels) flipIt *= -1;\n x0 = labelStandoff;\n y0 = labelShift * flipIt;\n ff = 0;\n if (!insideTickLabels && Math.abs(tickangle) === 90) {\n if (tickangle === -90 && side === \"left\" || tickangle === 90 && side === \"right\") {\n ff = CAP_SHIFT;\n } else {\n ff = 0.5;\n }\n }\n if (insideTickLabels) {\n var ang = isNumeric(tickangle) ? +tickangle : 0;\n if (ang !== 0) {\n var rA = Lib.deg2rad(ang);\n xQ = Math.abs(Math.sin(rA)) * CAP_SHIFT * flipIt;\n ff = 0;\n }\n }\n out.xFn = function(d) {\n return d.dx + shift - (x0 + d.fontSize * ff) * flipIt + xQ * d.fontSize;\n };\n out.yFn = function(d) {\n return d.dy + y0 + d.fontSize * MID_SHIFT;\n };\n out.anchorFn = function(d, a) {\n if (isNumeric(a) && Math.abs(a) === 90) {\n return \"middle\";\n }\n return endSide ? \"end\" : \"start\";\n };\n out.heightFn = function(d, a, h) {\n if (ax.side === \"right\") a *= -1;\n return a < -30 ? -h : a < 30 ? -0.5 * h : 0;\n };\n }\n return out;\n };\n function tickDataFn(d) {\n return [d.text, d.x, d.axInfo, d.font, d.fontSize, d.fontColor].join(\"_\");\n }\n axes.drawTicks = function(gd, ax, opts) {\n opts = opts || {};\n var cls = ax._id + \"tick\";\n var vals = [].concat(\n ax.minor && ax.minor.ticks ? (\n // minor vals\n opts.vals.filter(function(d) {\n return d.minor && !d.noTick;\n })\n ) : []\n ).concat(\n ax.ticks ? (\n // major vals\n opts.vals.filter(function(d) {\n return !d.minor && !d.noTick;\n })\n ) : []\n );\n var ticks = opts.layer.selectAll(\"path.\" + cls).data(vals, tickDataFn);\n ticks.exit().remove();\n ticks.enter().append(\"path\").classed(cls, 1).classed(\"ticks\", 1).classed(\"crisp\", opts.crisp !== false).each(function(d) {\n return Color2.stroke(d3.select(this), d.minor ? ax.minor.tickcolor : ax.tickcolor);\n }).style(\"stroke-width\", function(d) {\n return Drawing.crispRound(\n gd,\n d.minor ? ax.minor.tickwidth : ax.tickwidth,\n 1\n ) + \"px\";\n }).attr(\"d\", opts.path).style(\"display\", null);\n hideCounterAxisInsideTickLabels(ax, [TICK_PATH]);\n ticks.attr(\"transform\", opts.transFn);\n };\n axes.drawGrid = function(gd, ax, opts) {\n opts = opts || {};\n if (ax.tickmode === \"sync\") {\n return;\n }\n var cls = ax._id + \"grid\";\n var hasMinor = ax.minor && ax.minor.showgrid;\n var minorVals = hasMinor ? opts.vals.filter(function(d) {\n return d.minor;\n }) : [];\n var majorVals = ax.showgrid ? opts.vals.filter(function(d) {\n return !d.minor;\n }) : [];\n var counterAx = opts.counterAxis;\n if (counterAx && axes.shouldShowZeroLine(gd, ax, counterAx)) {\n var isArrayMode = ax.tickmode === \"array\";\n for (var i = 0; i < majorVals.length; i++) {\n var xi = majorVals[i].x;\n if (isArrayMode ? !xi : Math.abs(xi) < ax.dtick / 100) {\n majorVals = majorVals.slice(0, i).concat(majorVals.slice(i + 1));\n if (isArrayMode) i--;\n else break;\n }\n }\n }\n ax._gw = Drawing.crispRound(gd, ax.gridwidth, 1);\n var wMinor = !hasMinor ? 0 : Drawing.crispRound(gd, ax.minor.gridwidth, 1);\n var majorLayer = opts.layer;\n var minorLayer = opts.minorLayer;\n for (var major = 1; major >= 0; major--) {\n var layer = major ? majorLayer : minorLayer;\n if (!layer) continue;\n var grid = layer.selectAll(\"path.\" + cls).data(major ? majorVals : minorVals, tickDataFn);\n grid.exit().remove();\n grid.enter().append(\"path\").classed(cls, 1).classed(\"crisp\", opts.crisp !== false);\n grid.attr(\"transform\", opts.transFn).attr(\"d\", opts.path).each(function(d) {\n return Color2.stroke(\n d3.select(this),\n d.minor ? ax.minor.gridcolor : ax.gridcolor || \"#ddd\"\n );\n }).style(\"stroke-dasharray\", function(d) {\n return Drawing.dashStyle(\n d.minor ? ax.minor.griddash : ax.griddash,\n d.minor ? ax.minor.gridwidth : ax.gridwidth\n );\n }).style(\"stroke-width\", function(d) {\n return (d.minor ? wMinor : ax._gw) + \"px\";\n }).style(\"display\", null);\n if (typeof opts.path === \"function\") grid.attr(\"d\", opts.path);\n }\n hideCounterAxisInsideTickLabels(ax, [GRID_PATH, MINORGRID_PATH]);\n };\n axes.drawZeroLine = function(gd, ax, opts) {\n opts = opts || opts;\n var cls = ax._id + \"zl\";\n var show = axes.shouldShowZeroLine(gd, ax, opts.counterAxis);\n var zl = opts.layer.selectAll(\"path.\" + cls).data(show ? [{ x: 0, id: ax._id }] : []);\n zl.exit().remove();\n zl.enter().append(\"path\").classed(cls, 1).classed(\"zl\", 1).classed(\"crisp\", opts.crisp !== false).each(function() {\n opts.layer.selectAll(\"path\").sort(function(da, db) {\n return idSort(da.id, db.id);\n });\n });\n zl.attr(\"transform\", opts.transFn).attr(\"d\", opts.path).call(Color2.stroke, ax.zerolinecolor || Color2.defaultLine).style(\"stroke-width\", Drawing.crispRound(gd, ax.zerolinewidth, ax._gw || 1) + \"px\").style(\"display\", null);\n hideCounterAxisInsideTickLabels(ax, [ZERO_PATH]);\n };\n axes.drawLabels = function(gd, ax, opts) {\n opts = opts || {};\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var cls = opts.cls || axId + \"tick\";\n var vals = opts.vals.filter(function(d) {\n return d.text;\n });\n var labelFns = opts.labelFns;\n var tickAngle = opts.secondary ? 0 : ax.tickangle;\n var prevAngle = (ax._prevTickAngles || {})[cls];\n var tickLabels = opts.layer.selectAll(\"g.\" + cls).data(ax.showticklabels ? vals : [], tickDataFn);\n var labelsReady = [];\n tickLabels.enter().append(\"g\").classed(cls, 1).append(\"text\").attr(\"text-anchor\", \"middle\").each(function(d) {\n var thisLabel = d3.select(this);\n var newPromise = gd._promises.length;\n thisLabel.call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d)).call(Drawing.font, {\n family: d.font,\n size: d.fontSize,\n color: d.fontColor,\n weight: d.fontWeight,\n style: d.fontStyle,\n variant: d.fontVariant,\n textcase: d.fontTextcase,\n lineposition: d.fontLineposition,\n shadow: d.fontShadow\n }).text(d.text).call(svgTextUtils.convertToTspans, gd);\n if (gd._promises[newPromise]) {\n labelsReady.push(gd._promises.pop().then(function() {\n positionLabels(thisLabel, tickAngle);\n }));\n } else {\n positionLabels(thisLabel, tickAngle);\n }\n });\n hideCounterAxisInsideTickLabels(ax, [TICK_TEXT]);\n tickLabels.exit().remove();\n if (opts.repositionOnUpdate) {\n tickLabels.each(function(d) {\n d3.select(this).select(\"text\").call(svgTextUtils.positionText, labelFns.xFn(d), labelFns.yFn(d));\n });\n }\n function positionLabels(s, angle) {\n s.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n var anchor = labelFns.anchorFn(d, angle);\n var transform = opts.transFn.call(thisLabel.node(), d) + (isNumeric(angle) && +angle !== 0 ? \" rotate(\" + angle + \",\" + labelFns.xFn(d) + \",\" + (labelFns.yFn(d) - d.fontSize / 2) + \")\" : \"\");\n var nLines = svgTextUtils.lineCount(thisLabel);\n var lineHeight = LINE_SPACING * d.fontSize;\n var anchorHeight = labelFns.heightFn(d, isNumeric(angle) ? +angle : 0, (nLines - 1) * lineHeight);\n if (anchorHeight) {\n transform += strTranslate(0, anchorHeight);\n }\n if (mathjaxGroup.empty()) {\n var thisText = thisLabel.select(\"text\");\n thisText.attr({\n transform,\n \"text-anchor\": anchor\n });\n thisText.style(\"opacity\", 1);\n if (ax._adjustTickLabelsOverflow) {\n ax._adjustTickLabelsOverflow();\n }\n } else {\n var mjWidth = Drawing.bBox(mathjaxGroup.node()).width;\n var mjShift = mjWidth * { end: -0.5, start: 0.5 }[anchor];\n mathjaxGroup.attr(\"transform\", transform + strTranslate(mjShift, 0));\n }\n });\n }\n ax._adjustTickLabelsOverflow = function() {\n var ticklabeloverflow = ax.ticklabeloverflow;\n if (!ticklabeloverflow || ticklabeloverflow === \"allow\") return;\n var hideOverflow = ticklabeloverflow.indexOf(\"hide\") !== -1;\n var isX = ax._id.charAt(0) === \"x\";\n var p02 = 0;\n var p12 = isX ? gd._fullLayout.width : gd._fullLayout.height;\n if (ticklabeloverflow.indexOf(\"domain\") !== -1) {\n var rl = Lib.simpleMap(ax.range, ax.r2l);\n p02 = ax.l2p(rl[0]) + ax._offset;\n p12 = ax.l2p(rl[1]) + ax._offset;\n }\n var min = Math.min(p02, p12);\n var max = Math.max(p02, p12);\n var side = ax.side;\n var visibleLabelMin = Infinity;\n var visibleLabelMax = -Infinity;\n tickLabels.each(function(d) {\n var thisLabel = d3.select(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n if (mathjaxGroup.empty()) {\n var bb = Drawing.bBox(thisLabel.node());\n var adjust = 0;\n if (isX) {\n if (bb.right > max) adjust = 1;\n else if (bb.left < min) adjust = 1;\n } else {\n if (bb.bottom > max) adjust = 1;\n else if (bb.top + (ax.tickangle ? 0 : d.fontSize / 4) < min) adjust = 1;\n }\n var t = thisLabel.select(\"text\");\n if (adjust) {\n if (hideOverflow) t.style(\"opacity\", 0);\n } else {\n t.style(\"opacity\", 1);\n if (side === \"bottom\" || side === \"right\") {\n visibleLabelMin = Math.min(visibleLabelMin, isX ? bb.top : bb.left);\n } else {\n visibleLabelMin = -Infinity;\n }\n if (side === \"top\" || side === \"left\") {\n visibleLabelMax = Math.max(visibleLabelMax, isX ? bb.bottom : bb.right);\n } else {\n visibleLabelMax = Infinity;\n }\n }\n }\n });\n for (var subplot in fullLayout._plots) {\n var plotinfo = fullLayout._plots[subplot];\n if (ax._id !== plotinfo.xaxis._id && ax._id !== plotinfo.yaxis._id) continue;\n var anchorAx2 = isX ? plotinfo.yaxis : plotinfo.xaxis;\n if (anchorAx2) {\n anchorAx2[\"_visibleLabelMin_\" + ax._id] = visibleLabelMin;\n anchorAx2[\"_visibleLabelMax_\" + ax._id] = visibleLabelMax;\n }\n }\n };\n ax._hideCounterAxisInsideTickLabels = function(partialOpts) {\n var isX = ax._id.charAt(0) === \"x\";\n var anchoredAxes = [];\n for (var subplot in fullLayout._plots) {\n var plotinfo = fullLayout._plots[subplot];\n if (ax._id !== plotinfo.xaxis._id && ax._id !== plotinfo.yaxis._id) continue;\n anchoredAxes.push(isX ? plotinfo.yaxis : plotinfo.xaxis);\n }\n anchoredAxes.forEach(function(anchorAx2, idx) {\n if (anchorAx2 && insideTicklabelposition(anchorAx2)) {\n (partialOpts || [\n ZERO_PATH,\n MINORGRID_PATH,\n GRID_PATH,\n TICK_PATH,\n TICK_TEXT\n ]).forEach(function(e) {\n var isPeriodLabel = e.K === \"tick\" && e.L === \"text\" && ax.ticklabelmode === \"period\";\n var mainPlotinfo = fullLayout._plots[ax._mainSubplot];\n var sel;\n if (e.K === ZERO_PATH.K) sel = mainPlotinfo.zerolinelayer.selectAll(\".\" + ax._id + \"zl\");\n else if (e.K === MINORGRID_PATH.K) sel = mainPlotinfo.minorGridlayer.selectAll(\".\" + ax._id);\n else if (e.K === GRID_PATH.K) sel = mainPlotinfo.gridlayer.selectAll(\".\" + ax._id);\n else sel = mainPlotinfo[ax._id.charAt(0) + \"axislayer\"];\n sel.each(function() {\n var w = d3.select(this);\n if (e.L) w = w.selectAll(e.L);\n w.each(function(d) {\n var q = ax.l2p(\n isPeriodLabel ? getPosX(d) : d.x\n ) + ax._offset;\n var t = d3.select(this);\n if (q < ax[\"_visibleLabelMax_\" + anchorAx2._id] && q > ax[\"_visibleLabelMin_\" + anchorAx2._id]) {\n t.style(\"display\", \"none\");\n } else if (e.K === \"tick\" && !idx) {\n t.style(\"display\", null);\n }\n });\n });\n });\n }\n });\n };\n positionLabels(tickLabels, prevAngle + 1 ? prevAngle : tickAngle);\n function allLabelsReady() {\n return labelsReady.length && Promise.all(labelsReady);\n }\n var autoangle = null;\n function fixLabelOverlaps() {\n positionLabels(tickLabels, tickAngle);\n if (vals.length && ax.autotickangles && (ax.type !== \"log\" || String(ax.dtick).charAt(0) !== \"D\")) {\n autoangle = ax.autotickangles[0];\n var maxFontSize = 0;\n var lbbArray = [];\n var i;\n var maxLines = 1;\n tickLabels.each(function(d) {\n maxFontSize = Math.max(maxFontSize, d.fontSize);\n var x = ax.l2p(d.x);\n var thisLabel = selectTickLabel(this);\n var bb = Drawing.bBox(thisLabel.node());\n maxLines = Math.max(maxLines, svgTextUtils.lineCount(thisLabel));\n lbbArray.push({\n // ignore about y, just deal with x overlaps\n top: 0,\n bottom: 10,\n height: 10,\n left: x - bb.width / 2,\n // impose a 2px gap\n right: x + bb.width / 2 + 2,\n width: bb.width + 2\n });\n });\n var preventOverlapWithTick = (ax.tickson === \"boundaries\" || ax.showdividers) && !opts.secondary;\n var vLen = vals.length;\n var tickSpacing = Math.abs((vals[vLen - 1].x - vals[0].x) * ax._m) / (vLen - 1);\n var adjacent = preventOverlapWithTick ? tickSpacing / 2 : tickSpacing;\n var opposite = preventOverlapWithTick ? ax.ticklen : maxFontSize * 1.25 * maxLines;\n var hypotenuse = Math.sqrt(Math.pow(adjacent, 2) + Math.pow(opposite, 2));\n var maxCos = adjacent / hypotenuse;\n var autoTickAnglesRadians = ax.autotickangles.map(\n function(degrees3) {\n return degrees3 * Math.PI / 180;\n }\n );\n var angleRadians = autoTickAnglesRadians.find(\n function(angle) {\n return Math.abs(Math.cos(angle)) <= maxCos;\n }\n );\n if (angleRadians === void 0) {\n angleRadians = autoTickAnglesRadians.reduce(\n function(currentMax, nextAngle) {\n return Math.abs(Math.cos(currentMax)) < Math.abs(Math.cos(nextAngle)) ? currentMax : nextAngle;\n },\n autoTickAnglesRadians[0]\n );\n }\n var newAngle = angleRadians * (180 / Math.PI);\n if (preventOverlapWithTick) {\n var gap = 2;\n if (ax.ticks) gap += ax.tickwidth / 2;\n for (i = 0; i < lbbArray.length; i++) {\n var xbnd = vals[i].xbnd;\n var lbb = lbbArray[i];\n if (xbnd[0] !== null && lbb.left - ax.l2p(xbnd[0]) < gap || xbnd[1] !== null && ax.l2p(xbnd[1]) - lbb.right < gap) {\n autoangle = newAngle;\n break;\n }\n }\n } else {\n var ticklabelposition = ax.ticklabelposition || \"\";\n var has = function(str) {\n return ticklabelposition.indexOf(str) !== -1;\n };\n var isTop = has(\"top\");\n var isLeft = has(\"left\");\n var isRight = has(\"right\");\n var isBottom = has(\"bottom\");\n var isAligned = isBottom || isLeft || isTop || isRight;\n var pad = !isAligned ? 0 : (ax.tickwidth || 0) + 2 * TEXTPAD;\n for (i = 0; i < lbbArray.length - 1; i++) {\n if (Lib.bBoxIntersect(lbbArray[i], lbbArray[i + 1], pad)) {\n autoangle = newAngle;\n break;\n }\n }\n }\n if (autoangle) {\n positionLabels(tickLabels, autoangle);\n }\n }\n }\n if (ax._selections) {\n ax._selections[cls] = tickLabels;\n }\n var seq = [allLabelsReady];\n if (ax.automargin && fullLayout._redrawFromAutoMarginCount && prevAngle === 90) {\n autoangle = prevAngle;\n seq.push(function() {\n positionLabels(tickLabels, prevAngle);\n });\n } else {\n seq.push(fixLabelOverlaps);\n }\n if (ax._tickAngles) {\n seq.push(function() {\n ax._tickAngles[cls] = autoangle === null ? isNumeric(tickAngle) ? tickAngle : 0 : autoangle;\n });\n }\n var computeTickLabelBoundingBoxes = function() {\n var labelsMaxW = 0;\n var labelsMaxH = 0;\n tickLabels.each(function(d, i) {\n var thisLabel = selectTickLabel(this);\n var mathjaxGroup = thisLabel.select(\".text-math-group\");\n if (mathjaxGroup.empty()) {\n var bb;\n if (ax._vals[i]) {\n bb = ax._vals[i].bb || Drawing.bBox(thisLabel.node());\n ax._vals[i].bb = bb;\n }\n labelsMaxW = Math.max(labelsMaxW, bb.width);\n labelsMaxH = Math.max(labelsMaxH, bb.height);\n }\n });\n return {\n labelsMaxW,\n labelsMaxH\n };\n };\n var anchorAx = ax._anchorAxis;\n if (anchorAx && (anchorAx.autorange || anchorAx.insiderange) && insideTicklabelposition(ax) && !isLinked(fullLayout, ax._id)) {\n if (!fullLayout._insideTickLabelsUpdaterange) {\n fullLayout._insideTickLabelsUpdaterange = {};\n }\n if (anchorAx.autorange) {\n fullLayout._insideTickLabelsUpdaterange[anchorAx._name + \".autorange\"] = anchorAx.autorange;\n seq.push(computeTickLabelBoundingBoxes);\n }\n if (anchorAx.insiderange) {\n var BBs = computeTickLabelBoundingBoxes();\n var move = ax._id.charAt(0) === \"y\" ? BBs.labelsMaxW : BBs.labelsMaxH;\n move += 2 * TEXTPAD;\n if (ax.ticklabelposition === \"inside\") {\n move += ax.ticklen || 0;\n }\n var sgn = ax.side === \"right\" || ax.side === \"top\" ? 1 : -1;\n var index = sgn === 1 ? 1 : 0;\n var otherIndex = sgn === 1 ? 0 : 1;\n var newRange = [];\n newRange[otherIndex] = anchorAx.range[otherIndex];\n var anchorAxRange = anchorAx.range;\n var p0 = anchorAx.r2p(anchorAxRange[index]);\n var p1 = anchorAx.r2p(anchorAxRange[otherIndex]);\n var _tempNewRange = fullLayout._insideTickLabelsUpdaterange[anchorAx._name + \".range\"];\n if (_tempNewRange) {\n var q0 = anchorAx.r2p(_tempNewRange[index]);\n var q1 = anchorAx.r2p(_tempNewRange[otherIndex]);\n var dir = sgn * (ax._id.charAt(0) === \"y\" ? 1 : -1);\n if (dir * p0 < dir * q0) {\n p0 = q0;\n newRange[index] = anchorAxRange[index] = _tempNewRange[index];\n }\n if (dir * p1 > dir * q1) {\n p1 = q1;\n newRange[otherIndex] = anchorAxRange[otherIndex] = _tempNewRange[otherIndex];\n }\n }\n var dist = Math.abs(p1 - p0);\n if (dist - move > 0) {\n dist -= move;\n move *= 1 + move / dist;\n } else {\n move = 0;\n }\n if (ax._id.charAt(0) !== \"y\") move = -move;\n newRange[index] = anchorAx.p2r(\n anchorAx.r2p(anchorAxRange[index]) + sgn * move\n );\n if (anchorAx.autorange === \"min\" || anchorAx.autorange === \"max reversed\") {\n newRange[0] = null;\n anchorAx._rangeInitial0 = void 0;\n anchorAx._rangeInitial1 = void 0;\n } else if (anchorAx.autorange === \"max\" || anchorAx.autorange === \"min reversed\") {\n newRange[1] = null;\n anchorAx._rangeInitial0 = void 0;\n anchorAx._rangeInitial1 = void 0;\n }\n fullLayout._insideTickLabelsUpdaterange[anchorAx._name + \".range\"] = newRange;\n }\n }\n var done = Lib.syncOrAsync(seq);\n if (done && done.then) gd._promises.push(done);\n return done;\n };\n function drawDividers(gd, ax, opts) {\n var cls = ax._id + \"divider\";\n var vals = opts.vals;\n var dividers = opts.layer.selectAll(\"path.\" + cls).data(vals, tickDataFn);\n dividers.exit().remove();\n dividers.enter().insert(\"path\", \":first-child\").classed(cls, 1).classed(\"crisp\", 1).call(Color2.stroke, ax.dividercolor).style(\"stroke-width\", Drawing.crispRound(gd, ax.dividerwidth, 1) + \"px\");\n dividers.attr(\"transform\", opts.transFn).attr(\"d\", opts.path);\n }\n axes.getPxPosition = function(gd, ax) {\n var gs = gd._fullLayout._size;\n var axLetter = ax._id.charAt(0);\n var side = ax.side;\n var anchorAxis;\n if (ax.anchor !== \"free\") {\n anchorAxis = ax._anchorAxis;\n } else if (axLetter === \"x\") {\n anchorAxis = {\n _offset: gs.t + (1 - (ax.position || 0)) * gs.h,\n _length: 0\n };\n } else if (axLetter === \"y\") {\n anchorAxis = {\n _offset: gs.l + (ax.position || 0) * gs.w + ax._shift,\n _length: 0\n };\n }\n if (side === \"top\" || side === \"left\") {\n return anchorAxis._offset;\n } else if (side === \"bottom\" || side === \"right\") {\n return anchorAxis._offset + anchorAxis._length;\n }\n };\n function approxTitleDepth(ax) {\n var fontSize = ax.title.font.size;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if (ax.title.hasOwnProperty(\"standoff\")) {\n return fontSize * (CAP_SHIFT + extraLines * LINE_SPACING);\n } else {\n return extraLines ? fontSize * (extraLines + 1) * LINE_SPACING : fontSize;\n }\n }\n function drawTitle(gd, ax) {\n var fullLayout = gd._fullLayout;\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var fontSize = ax.title.font.size;\n var titleStandoff;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if (ax.title.hasOwnProperty(\"standoff\")) {\n if (ax.side === \"bottom\" || ax.side === \"right\") {\n titleStandoff = ax._depth + ax.title.standoff + fontSize * CAP_SHIFT;\n } else if (ax.side === \"top\" || ax.side === \"left\") {\n titleStandoff = ax._depth + ax.title.standoff + fontSize * (MID_SHIFT + extraLines * LINE_SPACING);\n }\n } else {\n var isInside = insideTicklabelposition(ax);\n if (ax.type === \"multicategory\") {\n titleStandoff = ax._depth;\n } else {\n var offsetBase = 1.5 * fontSize;\n if (isInside) {\n offsetBase = 0.5 * fontSize;\n if (ax.ticks === \"outside\") {\n offsetBase += ax.ticklen;\n }\n }\n titleStandoff = 10 + offsetBase + (ax.linewidth ? ax.linewidth - 1 : 0);\n }\n if (!isInside) {\n if (axLetter === \"x\") {\n titleStandoff += ax.side === \"top\" ? fontSize * (ax.showticklabels ? 1 : 0) : fontSize * (ax.showticklabels ? 1.5 : 0.5);\n } else {\n titleStandoff += ax.side === \"right\" ? fontSize * (ax.showticklabels ? 1 : 0.5) : fontSize * (ax.showticklabels ? 0.5 : 0);\n }\n }\n }\n var pos = axes.getPxPosition(gd, ax);\n var transform, x, y;\n if (axLetter === \"x\") {\n x = ax._offset + ax._length / 2;\n y = ax.side === \"top\" ? pos - titleStandoff : pos + titleStandoff;\n } else {\n y = ax._offset + ax._length / 2;\n x = ax.side === \"right\" ? pos + titleStandoff : pos - titleStandoff;\n transform = { rotate: \"-90\", offset: 0 };\n }\n var avoid;\n if (ax.type !== \"multicategory\") {\n var tickLabels = ax._selections[ax._id + \"tick\"];\n avoid = {\n selection: tickLabels,\n side: ax.side\n };\n if (tickLabels && tickLabels.node() && tickLabels.node().parentNode) {\n var translation = Drawing.getTranslate(tickLabels.node().parentNode);\n avoid.offsetLeft = translation.x;\n avoid.offsetTop = translation.y;\n }\n if (ax.title.hasOwnProperty(\"standoff\")) {\n avoid.pad = 0;\n }\n }\n ax._titleStandoff = titleStandoff;\n return Titles.draw(gd, axId + \"title\", {\n propContainer: ax,\n propName: ax._name + \".title.text\",\n placeholder: fullLayout._dfltTitle[axLetter],\n avoid,\n transform,\n attributes: { x, y, \"text-anchor\": \"middle\" }\n });\n }\n axes.shouldShowZeroLine = function(gd, ax, counterAxis) {\n var rng = Lib.simpleMap(ax.range, ax.r2l);\n return rng[0] * rng[1] <= 0 && ax.zeroline && (ax.type === \"linear\" || ax.type === \"-\") && !(ax.rangebreaks && ax.maskBreaks(0) === BADNUM) && (clipEnds(ax, 0) || !anyCounterAxLineAtZero(gd, ax, counterAxis, rng) || hasBarsOrFill(gd, ax));\n };\n axes.clipEnds = function(ax, vals) {\n return vals.filter(function(d) {\n return clipEnds(ax, d.x);\n });\n };\n function clipEnds(ax, l) {\n var p = ax.l2p(l);\n return p > 1 && p < ax._length - 1;\n }\n function anyCounterAxLineAtZero(gd, ax, counterAxis, rng) {\n var mainCounterAxis = counterAxis._mainAxis;\n if (!mainCounterAxis) return;\n var fullLayout = gd._fullLayout;\n var axLetter = ax._id.charAt(0);\n var counterLetter = axes.counterLetter(ax._id);\n var zeroPosition = ax._offset + (Math.abs(rng[0]) < Math.abs(rng[1]) === (axLetter === \"x\") ? 0 : ax._length);\n function lineNearZero(ax2) {\n if (!ax2.showline || !ax2.linewidth) return false;\n var tolerance = Math.max((ax2.linewidth + ax.zerolinewidth) / 2, 1);\n function closeEnough(pos2) {\n return typeof pos2 === \"number\" && Math.abs(pos2 - zeroPosition) < tolerance;\n }\n if (closeEnough(ax2._mainLinePosition) || closeEnough(ax2._mainMirrorPosition)) {\n return true;\n }\n var linePositions = ax2._linepositions || {};\n for (var k in linePositions) {\n if (closeEnough(linePositions[k][0]) || closeEnough(linePositions[k][1])) {\n return true;\n }\n }\n }\n var plotinfo = fullLayout._plots[counterAxis._mainSubplot];\n if (!(plotinfo.mainplotinfo || plotinfo).overlays.length) {\n return lineNearZero(counterAxis, zeroPosition);\n }\n var counterLetterAxes = axes.list(gd, counterLetter);\n for (var i = 0; i < counterLetterAxes.length; i++) {\n var counterAxis2 = counterLetterAxes[i];\n if (counterAxis2._mainAxis === mainCounterAxis && lineNearZero(counterAxis2, zeroPosition)) {\n return true;\n }\n }\n }\n function hasBarsOrFill(gd, ax) {\n var fullData = gd._fullData;\n var subplot = ax._mainSubplot;\n var axLetter = ax._id.charAt(0);\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible === true && trace.xaxis + trace.yaxis === subplot) {\n if (Registry.traceIs(trace, \"bar-like\") && trace.orientation === { x: \"h\", y: \"v\" }[axLetter]) return true;\n if (trace.fill && trace.fill.charAt(trace.fill.length - 1) === axLetter) return true;\n }\n }\n return false;\n }\n function selectTickLabel(gTick) {\n var s = d3.select(gTick);\n var mj = s.select(\".text-math-group\");\n return mj.empty() ? s.select(\"text\") : mj;\n }\n axes.allowAutoMargin = function(gd) {\n var axList = axes.list(gd, \"\", true);\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n if (ax.automargin) {\n Plots.allowAutoMargin(gd, axAutoMarginID(ax));\n if (ax.mirror) {\n Plots.allowAutoMargin(gd, axMirrorAutoMarginID(ax));\n }\n }\n if (Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(ax)) {\n Plots.allowAutoMargin(gd, rangeSliderAutoMarginID(ax));\n }\n }\n };\n function axAutoMarginID(ax) {\n return ax._id + \".automargin\";\n }\n function axMirrorAutoMarginID(ax) {\n return axAutoMarginID(ax) + \".mirror\";\n }\n function rangeSliderAutoMarginID(ax) {\n return ax._id + \".rangeslider\";\n }\n axes.swap = function(gd, traces) {\n var axGroups = makeAxisGroups(gd, traces);\n for (var i = 0; i < axGroups.length; i++) {\n swapAxisGroup(gd, axGroups[i].x, axGroups[i].y);\n }\n };\n function makeAxisGroups(gd, traces) {\n var groups = [];\n var i, j;\n for (i = 0; i < traces.length; i++) {\n var groupsi = [];\n var xi = gd._fullData[traces[i]].xaxis;\n var yi = gd._fullData[traces[i]].yaxis;\n if (!xi || !yi) continue;\n for (j = 0; j < groups.length; j++) {\n if (groups[j].x.indexOf(xi) !== -1 || groups[j].y.indexOf(yi) !== -1) {\n groupsi.push(j);\n }\n }\n if (!groupsi.length) {\n groups.push({ x: [xi], y: [yi] });\n continue;\n }\n var group0 = groups[groupsi[0]];\n var groupj;\n if (groupsi.length > 1) {\n for (j = 1; j < groupsi.length; j++) {\n groupj = groups[groupsi[j]];\n mergeAxisGroups(group0.x, groupj.x);\n mergeAxisGroups(group0.y, groupj.y);\n }\n }\n mergeAxisGroups(group0.x, [xi]);\n mergeAxisGroups(group0.y, [yi]);\n }\n return groups;\n }\n function mergeAxisGroups(intoSet, fromSet) {\n for (var i = 0; i < fromSet.length; i++) {\n if (intoSet.indexOf(fromSet[i]) === -1) intoSet.push(fromSet[i]);\n }\n }\n function swapAxisGroup(gd, xIds, yIds) {\n var xFullAxes = [];\n var yFullAxes = [];\n var layout = gd.layout;\n var i, j;\n for (i = 0; i < xIds.length; i++) xFullAxes.push(axes.getFromId(gd, xIds[i]));\n for (i = 0; i < yIds.length; i++) yFullAxes.push(axes.getFromId(gd, yIds[i]));\n var allAxKeys = Object.keys(axAttrs);\n var noSwapAttrs = [\n \"anchor\",\n \"domain\",\n \"overlaying\",\n \"position\",\n \"side\",\n \"tickangle\",\n \"editType\"\n ];\n var numericTypes = [\"linear\", \"log\"];\n for (i = 0; i < allAxKeys.length; i++) {\n var keyi = allAxKeys[i];\n var xVal = xFullAxes[0][keyi];\n var yVal = yFullAxes[0][keyi];\n var allEqual = true;\n var coerceLinearX = false;\n var coerceLinearY = false;\n if (keyi.charAt(0) === \"_\" || typeof xVal === \"function\" || noSwapAttrs.indexOf(keyi) !== -1) {\n continue;\n }\n for (j = 1; j < xFullAxes.length && allEqual; j++) {\n var xVali = xFullAxes[j][keyi];\n if (keyi === \"type\" && numericTypes.indexOf(xVal) !== -1 && numericTypes.indexOf(xVali) !== -1 && xVal !== xVali) {\n coerceLinearX = true;\n } else if (xVali !== xVal) allEqual = false;\n }\n for (j = 1; j < yFullAxes.length && allEqual; j++) {\n var yVali = yFullAxes[j][keyi];\n if (keyi === \"type\" && numericTypes.indexOf(yVal) !== -1 && numericTypes.indexOf(yVali) !== -1 && yVal !== yVali) {\n coerceLinearY = true;\n } else if (yFullAxes[j][keyi] !== yVal) allEqual = false;\n }\n if (allEqual) {\n if (coerceLinearX) layout[xFullAxes[0]._name].type = \"linear\";\n if (coerceLinearY) layout[yFullAxes[0]._name].type = \"linear\";\n swapAxisAttrs(layout, keyi, xFullAxes, yFullAxes, gd._fullLayout._dfltTitle);\n }\n }\n for (i = 0; i < gd._fullLayout.annotations.length; i++) {\n var ann = gd._fullLayout.annotations[i];\n if (xIds.indexOf(ann.xref) !== -1 && yIds.indexOf(ann.yref) !== -1) {\n Lib.swapAttrs(layout.annotations[i], [\"?\"]);\n }\n }\n }\n function swapAxisAttrs(layout, key, xFullAxes, yFullAxes, dfltTitle) {\n var np = Lib.nestedProperty;\n var xVal = np(layout[xFullAxes[0]._name], key).get();\n var yVal = np(layout[yFullAxes[0]._name], key).get();\n var i;\n if (key === \"title\") {\n if (xVal && xVal.text === dfltTitle.x) {\n xVal.text = dfltTitle.y;\n }\n if (yVal && yVal.text === dfltTitle.y) {\n yVal.text = dfltTitle.x;\n }\n }\n for (i = 0; i < xFullAxes.length; i++) {\n np(layout, xFullAxes[i]._name + \".\" + key).set(yVal);\n }\n for (i = 0; i < yFullAxes.length; i++) {\n np(layout, yFullAxes[i]._name + \".\" + key).set(xVal);\n }\n }\n function isAngular(ax) {\n return ax._id === \"angularaxis\";\n }\n function moveOutsideBreak(v, ax) {\n var len = ax._rangebreaks.length;\n for (var k = 0; k < len; k++) {\n var brk = ax._rangebreaks[k];\n if (v >= brk.min && v < brk.max) {\n return brk.max;\n }\n }\n return v;\n }\n function insideTicklabelposition(ax) {\n return (ax.ticklabelposition || \"\").indexOf(\"inside\") !== -1;\n }\n function hideCounterAxisInsideTickLabels(ax, opts) {\n if (insideTicklabelposition(ax._anchorAxis || {})) {\n if (ax._hideCounterAxisInsideTickLabels) {\n ax._hideCounterAxisInsideTickLabels(opts);\n }\n }\n }\n function incrementShift(ax, shiftVal, axShifts, normalize) {\n var overlay = ax.anchor !== \"free\" && (ax.overlaying === void 0 || ax.overlaying === false) ? ax._id : ax.overlaying;\n var shiftValAdj;\n if (normalize) {\n shiftValAdj = ax.side === \"right\" ? shiftVal : -shiftVal;\n } else {\n shiftValAdj = shiftVal;\n }\n if (!(overlay in axShifts)) {\n axShifts[overlay] = {};\n }\n if (!(ax.side in axShifts[overlay])) {\n axShifts[overlay][ax.side] = 0;\n }\n axShifts[overlay][ax.side] += shiftValAdj;\n }\n function setShiftVal(ax, axShifts) {\n return ax.autoshift ? axShifts[ax.overlaying][ax.side] : ax.shift || 0;\n }\n function periodCompatibleWithTickformat(period, tickformat) {\n return /%f/.test(tickformat) ? period >= ONEMICROSEC : /%L/.test(tickformat) ? period >= ONEMILLI : /%[SX]/.test(tickformat) ? period >= ONESEC : /%M/.test(tickformat) ? period >= ONEMIN : /%[HI]/.test(tickformat) ? period >= ONEHOUR : /%p/.test(tickformat) ? period >= HALFDAY : /%[Aadejuwx]/.test(tickformat) ? period >= ONEDAY : /%[UVW]/.test(tickformat) ? period >= ONEWEEK : /%[Bbm]/.test(tickformat) ? period >= ONEMINMONTH : /%[q]/.test(tickformat) ? period >= ONEMINQUARTER : /%[Yy]/.test(tickformat) ? period >= ONEMINYEAR : true;\n }\n }\n });\n\n // src/plots/cartesian/autorange_options_defaults.js\n var require_autorange_options_defaults = __commonJS({\n \"src/plots/cartesian/autorange_options_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleAutorangeOptionsDefaults(coerce, autorange, range) {\n var minRange, maxRange;\n if (range) {\n var isReversed = autorange === \"reversed\" || autorange === \"min reversed\" || autorange === \"max reversed\";\n minRange = range[isReversed ? 1 : 0];\n maxRange = range[isReversed ? 0 : 1];\n }\n var minallowed = coerce(\"autorangeoptions.minallowed\", maxRange === null ? minRange : void 0);\n var maxallowed = coerce(\"autorangeoptions.maxallowed\", minRange === null ? maxRange : void 0);\n if (minallowed === void 0) coerce(\"autorangeoptions.clipmin\");\n if (maxallowed === void 0) coerce(\"autorangeoptions.clipmax\");\n coerce(\"autorangeoptions.include\");\n };\n }\n });\n\n // src/plots/cartesian/range_defaults.js\n var require_range_defaults = __commonJS({\n \"src/plots/cartesian/range_defaults.js\"(exports, module) {\n \"use strict\";\n var handleAutorangeOptionsDefaults = require_autorange_options_defaults();\n module.exports = function handleRangeDefaults(containerIn, containerOut, coerce, options) {\n var axTemplate = containerOut._template || {};\n var axType = containerOut.type || axTemplate.type || \"-\";\n coerce(\"minallowed\");\n coerce(\"maxallowed\");\n var range = coerce(\"range\");\n if (!range) {\n var insiderange;\n if (!options.noInsiderange && axType !== \"log\") {\n insiderange = coerce(\"insiderange\");\n if (insiderange && (insiderange[0] === null || insiderange[1] === null)) {\n containerOut.insiderange = false;\n insiderange = void 0;\n }\n if (insiderange) range = coerce(\"range\", insiderange);\n }\n }\n var autorangeDflt = containerOut.getAutorangeDflt(range, options);\n var autorange = coerce(\"autorange\", autorangeDflt);\n var shouldAutorange;\n if (range && (range[0] === null && range[1] === null || (range[0] === null || range[1] === null) && (autorange === \"reversed\" || autorange === true) || range[0] !== null && (autorange === \"min\" || autorange === \"max reversed\") || range[1] !== null && (autorange === \"max\" || autorange === \"min reversed\"))) {\n range = void 0;\n delete containerOut.range;\n containerOut.autorange = true;\n shouldAutorange = true;\n }\n if (!shouldAutorange) {\n autorangeDflt = containerOut.getAutorangeDflt(range, options);\n autorange = coerce(\"autorange\", autorangeDflt);\n }\n if (autorange) {\n handleAutorangeOptionsDefaults(coerce, autorange, range);\n if (axType === \"linear\" || axType === \"-\") coerce(\"rangemode\");\n }\n containerOut.cleanRange();\n };\n }\n });\n\n // node_modules/mouse-event-offset/index.js\n var require_mouse_event_offset = __commonJS({\n \"node_modules/mouse-event-offset/index.js\"(exports, module) {\n var rootPosition = { left: 0, top: 0 };\n module.exports = mouseEventOffset;\n function mouseEventOffset(ev, target, out) {\n target = target || ev.currentTarget || ev.srcElement;\n if (!Array.isArray(out)) {\n out = [0, 0];\n }\n var cx = ev.clientX || 0;\n var cy = ev.clientY || 0;\n var rect = getBoundingClientOffset(target);\n out[0] = cx - rect.left;\n out[1] = cy - rect.top;\n return out;\n }\n function getBoundingClientOffset(element) {\n if (element === window || element === document || element === document.body) {\n return rootPosition;\n } else {\n return element.getBoundingClientRect();\n }\n }\n }\n });\n\n // node_modules/has-passive-events/index.js\n var require_has_passive_events = __commonJS({\n \"node_modules/has-passive-events/index.js\"(exports, module) {\n \"use strict\";\n var isBrowser = require_client();\n function detect() {\n var supported = false;\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get: function() {\n supported = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n window.removeEventListener(\"test\", null, opts);\n } catch (e) {\n supported = false;\n }\n return supported;\n }\n module.exports = isBrowser && detect();\n }\n });\n\n // src/components/dragelement/align.js\n var require_align = __commonJS({\n \"src/components/dragelement/align.js\"(exports, module) {\n \"use strict\";\n module.exports = function align(v, dv, v0, v1, anchor) {\n var vmin = (v - v0) / (v1 - v0);\n var vmax = vmin + dv / (v1 - v0);\n var vc = (vmin + vmax) / 2;\n if (anchor === \"left\" || anchor === \"bottom\") return vmin;\n if (anchor === \"center\" || anchor === \"middle\") return vc;\n if (anchor === \"right\" || anchor === \"top\") return vmax;\n if (vmin < 2 / 3 - vc) return vmin;\n if (vmax > 4 / 3 - vc) return vmax;\n return vc;\n };\n }\n });\n\n // src/components/dragelement/cursor.js\n var require_cursor = __commonJS({\n \"src/components/dragelement/cursor.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var cursorset = [\n [\"sw-resize\", \"s-resize\", \"se-resize\"],\n [\"w-resize\", \"move\", \"e-resize\"],\n [\"nw-resize\", \"n-resize\", \"ne-resize\"]\n ];\n module.exports = function getCursor(x, y, xanchor, yanchor) {\n if (xanchor === \"left\") x = 0;\n else if (xanchor === \"center\") x = 1;\n else if (xanchor === \"right\") x = 2;\n else x = Lib.constrain(Math.floor(x * 3), 0, 2);\n if (yanchor === \"bottom\") y = 0;\n else if (yanchor === \"middle\") y = 1;\n else if (yanchor === \"top\") y = 2;\n else y = Lib.constrain(Math.floor(y * 3), 0, 2);\n return cursorset[y][x];\n };\n }\n });\n\n // src/components/dragelement/unhover.js\n var require_unhover = __commonJS({\n \"src/components/dragelement/unhover.js\"(exports, module) {\n \"use strict\";\n var Events = require_events2();\n var throttle = require_throttle();\n var getGraphDiv = require_dom().getGraphDiv;\n var hoverConstants = require_constants();\n var unhover = module.exports = {};\n unhover.wrapped = function(gd, evt, subplot) {\n gd = getGraphDiv(gd);\n if (gd._fullLayout) {\n throttle.clear(gd._fullLayout._uid + hoverConstants.HOVERID);\n }\n unhover.raw(gd, evt, subplot);\n };\n unhover.raw = function raw(gd, evt) {\n var fullLayout = gd._fullLayout;\n var oldhoverdata = gd._hoverdata;\n if (!evt) evt = {};\n if (evt.target && !gd._dragged && Events.triggerHandler(gd, \"plotly_beforehover\", evt) === false) {\n return;\n }\n fullLayout._hoverlayer.selectAll(\"g\").remove();\n fullLayout._hoverlayer.selectAll(\"line\").remove();\n fullLayout._hoverlayer.selectAll(\"circle\").remove();\n gd._hoverdata = void 0;\n if (evt.target && oldhoverdata) {\n gd.emit(\"plotly_unhover\", {\n event: evt,\n points: oldhoverdata\n });\n }\n };\n }\n });\n\n // src/components/dragelement/index.js\n var require_dragelement = __commonJS({\n \"src/components/dragelement/index.js\"(exports, module) {\n \"use strict\";\n var mouseOffset = require_mouse_event_offset();\n var hasHover = require_has_hover();\n var supportsPassive = require_has_passive_events();\n var removeElement = require_lib().removeElement;\n var constants = require_constants2();\n var dragElement = module.exports = {};\n dragElement.align = require_align();\n dragElement.getCursor = require_cursor();\n var unhover = require_unhover();\n dragElement.unhover = unhover.wrapped;\n dragElement.unhoverRaw = unhover.raw;\n dragElement.init = function init(options) {\n var gd = options.gd;\n var numClicks = 1;\n var doubleClickDelay = gd._context.doubleClickDelay;\n var element = options.element;\n var startX, startY, newMouseDownTime, cursor, dragCover, initialEvent, initialTarget, rightClick;\n if (!gd._mouseDownTime) gd._mouseDownTime = 0;\n element.style.pointerEvents = \"all\";\n element.onmousedown = onStart;\n if (!supportsPassive) {\n element.ontouchstart = onStart;\n } else {\n if (element._ontouchstart) {\n element.removeEventListener(\"touchstart\", element._ontouchstart);\n }\n element._ontouchstart = onStart;\n element.addEventListener(\"touchstart\", onStart, { passive: false });\n }\n function _clampFn(dx, dy, minDrag) {\n if (Math.abs(dx) < minDrag) dx = 0;\n if (Math.abs(dy) < minDrag) dy = 0;\n return [dx, dy];\n }\n var clampFn = options.clampFn || _clampFn;\n function onStart(e) {\n gd._dragged = false;\n gd._dragging = true;\n var offset = pointerOffset(e);\n startX = offset[0];\n startY = offset[1];\n initialTarget = e.target;\n initialEvent = e;\n rightClick = e.buttons === 2 || e.ctrlKey;\n if (typeof e.clientX === \"undefined\" && typeof e.clientY === \"undefined\") {\n e.clientX = startX;\n e.clientY = startY;\n }\n newMouseDownTime = (/* @__PURE__ */ new Date()).getTime();\n if (newMouseDownTime - gd._mouseDownTime < doubleClickDelay) {\n numClicks += 1;\n } else {\n numClicks = 1;\n gd._mouseDownTime = newMouseDownTime;\n }\n if (options.prepFn) options.prepFn(e, startX, startY);\n if (hasHover && !rightClick) {\n dragCover = coverSlip();\n dragCover.style.cursor = window.getComputedStyle(element).cursor;\n } else if (!hasHover) {\n dragCover = document;\n cursor = window.getComputedStyle(document.documentElement).cursor;\n document.documentElement.style.cursor = window.getComputedStyle(element).cursor;\n }\n document.addEventListener(\"mouseup\", onDone);\n document.addEventListener(\"touchend\", onDone);\n if (options.dragmode !== false) {\n e.preventDefault();\n document.addEventListener(\"mousemove\", onMove);\n document.addEventListener(\"touchmove\", onMove, { passive: false });\n }\n return;\n }\n function onMove(e) {\n e.preventDefault();\n var offset = pointerOffset(e);\n var minDrag = options.minDrag || constants.MINDRAG;\n var dxdy = clampFn(offset[0] - startX, offset[1] - startY, minDrag);\n var dx = dxdy[0];\n var dy = dxdy[1];\n if (dx || dy) {\n gd._dragged = true;\n dragElement.unhover(gd, e);\n }\n if (gd._dragged && options.moveFn && !rightClick) {\n gd._dragdata = {\n element,\n dx,\n dy\n };\n options.moveFn(dx, dy);\n }\n return;\n }\n function onDone(e) {\n delete gd._dragdata;\n if (options.dragmode !== false) {\n e.preventDefault();\n document.removeEventListener(\"mousemove\", onMove);\n document.removeEventListener(\"touchmove\", onMove);\n }\n document.removeEventListener(\"mouseup\", onDone);\n document.removeEventListener(\"touchend\", onDone);\n if (hasHover) {\n removeElement(dragCover);\n } else if (cursor) {\n dragCover.documentElement.style.cursor = cursor;\n cursor = null;\n }\n if (!gd._dragging) {\n gd._dragged = false;\n return;\n }\n gd._dragging = false;\n if ((/* @__PURE__ */ new Date()).getTime() - gd._mouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n if (gd._dragged) {\n if (options.doneFn) options.doneFn();\n } else {\n var clickEvent;\n if (initialEvent.target === initialTarget) {\n clickEvent = initialEvent;\n } else {\n clickEvent = {\n target: initialTarget,\n srcElement: initialTarget,\n toElement: initialTarget\n };\n Object.keys(initialEvent).concat(Object.keys(initialEvent.__proto__)).forEach((k) => {\n var v = initialEvent[k];\n if (!clickEvent[k] && typeof v !== \"function\") {\n clickEvent[k] = v;\n }\n });\n }\n if (options.clickFn) options.clickFn(numClicks, clickEvent);\n if (!rightClick) {\n initialTarget.dispatchEvent(new MouseEvent(\"click\", e));\n }\n }\n gd._dragging = false;\n gd._dragged = false;\n return;\n }\n };\n function coverSlip() {\n var cover = document.createElement(\"div\");\n cover.className = \"dragcover\";\n var cStyle = cover.style;\n cStyle.position = \"fixed\";\n cStyle.left = 0;\n cStyle.right = 0;\n cStyle.top = 0;\n cStyle.bottom = 0;\n cStyle.zIndex = 999999999;\n cStyle.background = \"none\";\n document.body.appendChild(cover);\n return cover;\n }\n dragElement.coverSlip = coverSlip;\n function pointerOffset(e) {\n return mouseOffset(\n e.changedTouches ? e.changedTouches[0] : e,\n document.body\n );\n }\n }\n });\n\n // src/lib/setcursor.js\n var require_setcursor = __commonJS({\n \"src/lib/setcursor.js\"(exports, module) {\n \"use strict\";\n module.exports = function setCursor(el3, csr) {\n (el3.attr(\"class\") || \"\").split(\" \").forEach(function(cls) {\n if (cls.indexOf(\"cursor-\") === 0) el3.classed(cls, false);\n });\n if (csr) el3.classed(\"cursor-\" + csr, true);\n };\n }\n });\n\n // src/lib/override_cursor.js\n var require_override_cursor = __commonJS({\n \"src/lib/override_cursor.js\"(exports, module) {\n \"use strict\";\n var setCursor = require_setcursor();\n var STASHATTR = \"data-savedcursor\";\n var NO_CURSOR = \"!!\";\n module.exports = function overrideCursor(el3, csr) {\n var savedCursor = el3.attr(STASHATTR);\n if (csr) {\n if (!savedCursor) {\n var classes = (el3.attr(\"class\") || \"\").split(\" \");\n for (var i = 0; i < classes.length; i++) {\n var cls = classes[i];\n if (cls.indexOf(\"cursor-\") === 0) {\n el3.attr(STASHATTR, cls.substr(7)).classed(cls, false);\n }\n }\n if (!el3.attr(STASHATTR)) {\n el3.attr(STASHATTR, NO_CURSOR);\n }\n }\n setCursor(el3, csr);\n } else if (savedCursor) {\n el3.attr(STASHATTR, null);\n if (savedCursor === NO_CURSOR) setCursor(el3);\n else setCursor(el3, savedCursor);\n }\n };\n }\n });\n\n // src/components/legend/attributes.js\n var require_attributes9 = __commonJS({\n \"src/components/legend/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n module.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"legend\"\n },\n bgcolor: {\n valType: \"color\",\n editType: \"legend\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"legend\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"legend\"\n },\n font: fontAttrs({\n editType: \"legend\"\n }),\n grouptitlefont: fontAttrs({\n editType: \"legend\"\n }),\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"v\",\n editType: \"legend\"\n },\n traceorder: {\n valType: \"flaglist\",\n flags: [\"reversed\", \"grouped\"],\n extras: [\"normal\"],\n editType: \"legend\"\n },\n tracegroupgap: {\n valType: \"number\",\n min: 0,\n dflt: 10,\n editType: \"legend\"\n },\n entrywidth: {\n valType: \"number\",\n min: 0,\n editType: \"legend\"\n },\n entrywidthmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"pixels\",\n editType: \"legend\"\n },\n indentation: {\n valType: \"number\",\n min: -15,\n dflt: 0,\n editType: \"legend\"\n },\n itemsizing: {\n valType: \"enumerated\",\n values: [\"trace\", \"constant\"],\n dflt: \"trace\",\n editType: \"legend\"\n },\n itemwidth: {\n valType: \"number\",\n min: 30,\n dflt: 30,\n editType: \"legend\"\n },\n itemclick: {\n valType: \"enumerated\",\n values: [\"toggle\", \"toggleothers\", false],\n dflt: \"toggle\",\n editType: \"legend\"\n },\n itemdoubleclick: {\n valType: \"enumerated\",\n values: [\"toggle\", \"toggleothers\", false],\n dflt: \"toggleothers\",\n editType: \"legend\"\n },\n groupclick: {\n valType: \"enumerated\",\n values: [\"toggleitem\", \"togglegroup\"],\n dflt: \"togglegroup\",\n editType: \"legend\"\n },\n x: {\n valType: \"number\",\n editType: \"legend\"\n },\n xref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"left\",\n editType: \"legend\"\n },\n y: {\n valType: \"number\",\n editType: \"legend\"\n },\n yref: {\n valType: \"enumerated\",\n dflt: \"paper\",\n values: [\"container\", \"paper\"],\n editType: \"layoutstyle\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n editType: \"legend\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n valign: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n dflt: \"middle\",\n editType: \"legend\"\n },\n title: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"legend\"\n },\n font: fontAttrs({\n editType: \"legend\"\n }),\n side: {\n valType: \"enumerated\",\n values: [\"top\", \"left\", \"top left\", \"top center\", \"top right\"],\n editType: \"legend\"\n },\n editType: \"legend\"\n },\n editType: \"legend\"\n };\n }\n });\n\n // src/components/legend/helpers.js\n var require_helpers3 = __commonJS({\n \"src/components/legend/helpers.js\"(exports) {\n \"use strict\";\n exports.isGrouped = function isGrouped(legendLayout) {\n return (legendLayout.traceorder || \"\").indexOf(\"grouped\") !== -1;\n };\n exports.isVertical = function isVertical(legendLayout) {\n return legendLayout.orientation !== \"h\";\n };\n exports.isReversed = function isReversed(legendLayout) {\n return (legendLayout.traceorder || \"\").indexOf(\"reversed\") !== -1;\n };\n }\n });\n\n // src/components/legend/defaults.js\n var require_defaults3 = __commonJS({\n \"src/components/legend/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var Template = require_plot_template();\n var plotsAttrs = require_attributes2();\n var attributes = require_attributes9();\n var basePlotLayoutAttributes = require_layout_attributes2();\n var helpers = require_helpers3();\n function groupDefaults(legendId, layoutIn, layoutOut, fullData) {\n var containerIn = layoutIn[legendId] || {};\n var containerOut = Template.newContainer(layoutOut, legendId);\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n var itemFont = Lib.coerceFont(coerce, \"font\", layoutOut.font);\n coerce(\"bgcolor\", layoutOut.paper_bgcolor);\n coerce(\"bordercolor\");\n var visible = coerce(\"visible\");\n if (!visible) return;\n var trace;\n var traceCoerce = function(attr, dflt) {\n var traceIn = trace._input;\n var traceOut = trace;\n return Lib.coerce(traceIn, traceOut, plotsAttrs, attr, dflt);\n };\n var globalFont = layoutOut.font || {};\n var grouptitlefont = Lib.coerceFont(coerce, \"grouptitlefont\", globalFont, { overrideDflt: {\n size: Math.round(globalFont.size * 1.1)\n } });\n var legendTraceCount = 0;\n var legendReallyHasATrace = false;\n var defaultOrder = \"normal\";\n var shapesWithLegend = (layoutOut.shapes || []).filter(function(d) {\n return d.showlegend;\n });\n var allLegendItems = fullData.concat(shapesWithLegend).filter(function(d) {\n return legendId === (d.legend || \"legend\");\n });\n for (var i = 0; i < allLegendItems.length; i++) {\n trace = allLegendItems[i];\n if (!trace.visible) continue;\n var isShape = trace._isShape;\n if (trace.showlegend || trace._dfltShowLegend && !(trace._module && trace._module.attributes && trace._module.attributes.showlegend && trace._module.attributes.showlegend.dflt === false)) {\n legendTraceCount++;\n if (trace.showlegend) {\n legendReallyHasATrace = true;\n if (!isShape && Registry.traceIs(trace, \"pie-like\") || trace._input.showlegend === true) {\n legendTraceCount++;\n }\n }\n Lib.coerceFont(traceCoerce, \"legendgrouptitle.font\", grouptitlefont);\n }\n if (!isShape && Registry.traceIs(trace, \"bar\") && layoutOut.barmode === \"stack\" || [\"tonextx\", \"tonexty\"].indexOf(trace.fill) !== -1) {\n defaultOrder = helpers.isGrouped({ traceorder: defaultOrder }) ? \"grouped+reversed\" : \"reversed\";\n }\n if (trace.legendgroup !== void 0 && trace.legendgroup !== \"\") {\n defaultOrder = helpers.isReversed({ traceorder: defaultOrder }) ? \"reversed+grouped\" : \"grouped\";\n }\n }\n var showLegend = Lib.coerce(\n layoutIn,\n layoutOut,\n basePlotLayoutAttributes,\n \"showlegend\",\n legendReallyHasATrace && legendTraceCount > (legendId === \"legend\" ? 1 : 0)\n );\n if (showLegend === false) layoutOut[legendId] = void 0;\n if (showLegend === false && !containerIn.uirevision) return;\n coerce(\"uirevision\", layoutOut.uirevision);\n if (showLegend === false) return;\n coerce(\"borderwidth\");\n var orientation = coerce(\"orientation\");\n var yref = coerce(\"yref\");\n var xref = coerce(\"xref\");\n var isHorizontal = orientation === \"h\";\n var isPaperY = yref === \"paper\";\n var isPaperX = xref === \"paper\";\n var defaultX, defaultY, defaultYAnchor;\n var defaultXAnchor = \"left\";\n if (isHorizontal) {\n defaultX = 0;\n if (Registry.getComponentMethod(\"rangeslider\", \"isVisible\")(layoutIn.xaxis)) {\n if (isPaperY) {\n defaultY = 1.1;\n defaultYAnchor = \"bottom\";\n } else {\n defaultY = 1;\n defaultYAnchor = \"top\";\n }\n } else {\n if (isPaperY) {\n defaultY = -0.1;\n defaultYAnchor = \"top\";\n } else {\n defaultY = 0;\n defaultYAnchor = \"bottom\";\n }\n }\n } else {\n defaultY = 1;\n defaultYAnchor = \"auto\";\n if (isPaperX) {\n defaultX = 1.02;\n } else {\n defaultX = 1;\n defaultXAnchor = \"right\";\n }\n }\n Lib.coerce(containerIn, containerOut, {\n x: {\n valType: \"number\",\n editType: \"legend\",\n min: isPaperX ? -2 : 0,\n max: isPaperX ? 3 : 1,\n dflt: defaultX\n }\n }, \"x\");\n Lib.coerce(containerIn, containerOut, {\n y: {\n valType: \"number\",\n editType: \"legend\",\n min: isPaperY ? -2 : 0,\n max: isPaperY ? 3 : 1,\n dflt: defaultY\n }\n }, \"y\");\n coerce(\"traceorder\", defaultOrder);\n if (helpers.isGrouped(layoutOut[legendId])) coerce(\"tracegroupgap\");\n coerce(\"entrywidth\");\n coerce(\"entrywidthmode\");\n coerce(\"indentation\");\n coerce(\"itemsizing\");\n coerce(\"itemwidth\");\n coerce(\"itemclick\");\n coerce(\"itemdoubleclick\");\n coerce(\"groupclick\");\n coerce(\"xanchor\", defaultXAnchor);\n coerce(\"yanchor\", defaultYAnchor);\n coerce(\"valign\");\n Lib.noneOrAll(containerIn, containerOut, [\"x\", \"y\"]);\n var titleText = coerce(\"title.text\");\n if (titleText) {\n coerce(\"title.side\", isHorizontal ? \"left\" : \"top\");\n var dfltTitleFont = Lib.extendFlat({}, itemFont, {\n size: Lib.bigFont(itemFont.size)\n });\n Lib.coerceFont(coerce, \"title.font\", dfltTitleFont);\n }\n }\n module.exports = function legendDefaults(layoutIn, layoutOut, fullData) {\n var i;\n var allLegendsData = fullData.slice();\n var shapes = layoutOut.shapes;\n if (shapes) {\n for (i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (!shape.showlegend) continue;\n var mockTrace = {\n _input: shape._input,\n visible: shape.visible,\n showlegend: shape.showlegend,\n legend: shape.legend\n };\n allLegendsData.push(mockTrace);\n }\n }\n var legends = [\"legend\"];\n for (i = 0; i < allLegendsData.length; i++) {\n Lib.pushUnique(legends, allLegendsData[i].legend);\n }\n layoutOut._legends = [];\n for (i = 0; i < legends.length; i++) {\n var legendId = legends[i];\n groupDefaults(legendId, layoutIn, layoutOut, allLegendsData);\n if (layoutOut[legendId] && layoutOut[legendId].visible) {\n layoutOut[legendId]._id = legendId;\n }\n layoutOut._legends.push(legendId);\n }\n };\n }\n });\n\n // src/components/legend/handle_click.js\n var require_handle_click = __commonJS({\n \"src/components/legend/handle_click.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var pushUnique = Lib.pushUnique;\n var SHOWISOLATETIP = true;\n module.exports = function handleClick(g, gd, numClicks) {\n var fullLayout = gd._fullLayout;\n if (gd._dragged || gd._editing) return;\n var itemClick = fullLayout.legend.itemclick;\n var itemDoubleClick = fullLayout.legend.itemdoubleclick;\n var groupClick = fullLayout.legend.groupclick;\n if (numClicks === 1 && itemClick === \"toggle\" && itemDoubleClick === \"toggleothers\" && SHOWISOLATETIP && gd.data && gd._context.showTips) {\n Lib.notifier(Lib._(gd, \"Double-click on legend to isolate one trace\"), \"long\");\n SHOWISOLATETIP = false;\n } else {\n SHOWISOLATETIP = false;\n }\n var mode;\n if (numClicks === 1) mode = itemClick;\n else if (numClicks === 2) mode = itemDoubleClick;\n if (!mode) return;\n var toggleGroup = groupClick === \"togglegroup\";\n var hiddenSlices = fullLayout.hiddenlabels ? fullLayout.hiddenlabels.slice() : [];\n var legendItem = g.data()[0][0];\n if (legendItem.groupTitle && legendItem.noClick) return;\n var fullData = gd._fullData;\n var shapesWithLegend = (fullLayout.shapes || []).filter(function(d2) {\n return d2.showlegend;\n });\n var allLegendItems = fullData.concat(shapesWithLegend);\n var fullTrace = legendItem.trace;\n if (fullTrace._isShape) {\n fullTrace = fullTrace._fullInput;\n }\n var legendgroup = fullTrace.legendgroup;\n var i, j, kcont, key, keys, val;\n var dataUpdate = {};\n var dataIndices = [];\n var carrs = [];\n var carrIdx = [];\n function insertDataUpdate(traceIndex, value) {\n var attrIndex = dataIndices.indexOf(traceIndex);\n var valueArray = dataUpdate.visible;\n if (!valueArray) {\n valueArray = dataUpdate.visible = [];\n }\n if (dataIndices.indexOf(traceIndex) === -1) {\n dataIndices.push(traceIndex);\n attrIndex = dataIndices.length - 1;\n }\n valueArray[attrIndex] = value;\n return attrIndex;\n }\n var updatedShapes = (fullLayout.shapes || []).map(function(d2) {\n return d2._input;\n });\n var shapesUpdated = false;\n function insertShapesUpdate(shapeIndex, value) {\n updatedShapes[shapeIndex].visible = value;\n shapesUpdated = true;\n }\n function setVisibility(fullTrace2, visibility) {\n if (legendItem.groupTitle && !toggleGroup) return;\n var fullInput2 = fullTrace2._fullInput || fullTrace2;\n var isShape2 = fullInput2._isShape;\n var index = fullInput2.index;\n if (index === void 0) index = fullInput2._index;\n var nextVisibility2 = fullInput2.visible === false ? false : visibility;\n if (isShape2) {\n insertShapesUpdate(index, nextVisibility2);\n } else {\n insertDataUpdate(index, nextVisibility2);\n }\n }\n var thisLegend = fullTrace.legend;\n var fullInput = fullTrace._fullInput;\n var isShape = fullInput && fullInput._isShape;\n if (!isShape && Registry.traceIs(fullTrace, \"pie-like\")) {\n var thisLabel = legendItem.label;\n var thisLabelIndex = hiddenSlices.indexOf(thisLabel);\n if (mode === \"toggle\") {\n if (thisLabelIndex === -1) hiddenSlices.push(thisLabel);\n else hiddenSlices.splice(thisLabelIndex, 1);\n } else if (mode === \"toggleothers\") {\n var changed = thisLabelIndex !== -1;\n var unhideList = [];\n for (i = 0; i < gd.calcdata.length; i++) {\n var cdi = gd.calcdata[i];\n for (j = 0; j < cdi.length; j++) {\n var d = cdi[j];\n var dLabel = d.label;\n if (thisLegend === cdi[0].trace.legend) {\n if (thisLabel !== dLabel) {\n if (hiddenSlices.indexOf(dLabel) === -1) changed = true;\n pushUnique(hiddenSlices, dLabel);\n unhideList.push(dLabel);\n }\n }\n }\n }\n if (!changed) {\n for (var q = 0; q < unhideList.length; q++) {\n var pos = hiddenSlices.indexOf(unhideList[q]);\n if (pos !== -1) {\n hiddenSlices.splice(pos, 1);\n }\n }\n }\n }\n Registry.call(\"_guiRelayout\", gd, \"hiddenlabels\", hiddenSlices);\n } else {\n var hasLegendgroup = legendgroup && legendgroup.length;\n var traceIndicesInGroup = [];\n var tracei;\n if (hasLegendgroup) {\n for (i = 0; i < allLegendItems.length; i++) {\n tracei = allLegendItems[i];\n if (!tracei.visible) continue;\n if (tracei.legendgroup === legendgroup) {\n traceIndicesInGroup.push(i);\n }\n }\n }\n if (mode === \"toggle\") {\n var nextVisibility;\n switch (fullTrace.visible) {\n case true:\n nextVisibility = \"legendonly\";\n break;\n case false:\n nextVisibility = false;\n break;\n case \"legendonly\":\n nextVisibility = true;\n break;\n }\n if (hasLegendgroup) {\n if (toggleGroup) {\n for (i = 0; i < allLegendItems.length; i++) {\n var item = allLegendItems[i];\n if (item.visible !== false && item.legendgroup === legendgroup) {\n setVisibility(item, nextVisibility);\n }\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else {\n setVisibility(fullTrace, nextVisibility);\n }\n } else if (mode === \"toggleothers\") {\n var isClicked, isInGroup, notInLegend, otherState, _item;\n var isIsolated = true;\n for (i = 0; i < allLegendItems.length; i++) {\n _item = allLegendItems[i];\n isClicked = _item === fullTrace;\n notInLegend = _item.showlegend !== true;\n if (isClicked || notInLegend) continue;\n isInGroup = hasLegendgroup && _item.legendgroup === legendgroup;\n if (!isInGroup && _item.legend === thisLegend && _item.visible === true && !Registry.traceIs(_item, \"notLegendIsolatable\")) {\n isIsolated = false;\n break;\n }\n }\n for (i = 0; i < allLegendItems.length; i++) {\n _item = allLegendItems[i];\n if (_item.visible === false || _item.legend !== thisLegend) continue;\n if (Registry.traceIs(_item, \"notLegendIsolatable\")) {\n continue;\n }\n switch (fullTrace.visible) {\n case \"legendonly\":\n setVisibility(_item, true);\n break;\n case true:\n otherState = isIsolated ? true : \"legendonly\";\n isClicked = _item === fullTrace;\n notInLegend = _item.showlegend !== true && !_item.legendgroup;\n isInGroup = isClicked || hasLegendgroup && _item.legendgroup === legendgroup;\n setVisibility(_item, isInGroup || notInLegend ? true : otherState);\n break;\n }\n }\n }\n for (i = 0; i < carrs.length; i++) {\n kcont = carrs[i];\n if (!kcont) continue;\n var update = kcont.constructUpdate();\n var updateKeys = Object.keys(update);\n for (j = 0; j < updateKeys.length; j++) {\n key = updateKeys[j];\n val = dataUpdate[key] = dataUpdate[key] || [];\n val[carrIdx[i]] = update[key];\n }\n }\n keys = Object.keys(dataUpdate);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n for (j = 0; j < dataIndices.length; j++) {\n if (!dataUpdate[key].hasOwnProperty(j)) {\n dataUpdate[key][j] = void 0;\n }\n }\n }\n if (shapesUpdated) {\n Registry.call(\"_guiUpdate\", gd, dataUpdate, { shapes: updatedShapes }, dataIndices);\n } else {\n Registry.call(\"_guiRestyle\", gd, dataUpdate, dataIndices);\n }\n }\n };\n }\n });\n\n // src/components/legend/constants.js\n var require_constants3 = __commonJS({\n \"src/components/legend/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n scrollBarWidth: 6,\n scrollBarMinHeight: 20,\n scrollBarColor: \"#808BA4\",\n scrollBarMargin: 4,\n scrollBarEnterAttrs: { rx: 20, ry: 3, width: 0, height: 0 },\n // number of px between legend title and (left) side of legend (always in x direction and from inner border)\n titlePad: 2,\n // number of px between each legend item (x and/or y direction)\n itemGap: 5\n };\n }\n });\n\n // src/components/legend/get_legend_data.js\n var require_get_legend_data = __commonJS({\n \"src/components/legend/get_legend_data.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var helpers = require_helpers3();\n module.exports = function getLegendData(calcdata, opts, hasMultipleLegends) {\n var inHover = opts._inHover;\n var grouped = helpers.isGrouped(opts);\n var reversed = helpers.isReversed(opts);\n var lgroupToTraces = {};\n var lgroups = [];\n var hasOneNonBlankGroup = false;\n var slicesShown = {};\n var lgroupi = 0;\n var maxNameLength = 0;\n var i, j;\n function addOneItem(legendId, legendGroup, legendItem) {\n if (opts.visible === false) return;\n if (hasMultipleLegends && legendId !== opts._id) return;\n if (legendGroup === \"\" || !helpers.isGrouped(opts)) {\n var uniqueGroup = \"~~i\" + lgroupi;\n lgroups.push(uniqueGroup);\n lgroupToTraces[uniqueGroup] = [legendItem];\n lgroupi++;\n } else if (lgroups.indexOf(legendGroup) === -1) {\n lgroups.push(legendGroup);\n hasOneNonBlankGroup = true;\n lgroupToTraces[legendGroup] = [legendItem];\n } else {\n lgroupToTraces[legendGroup].push(legendItem);\n }\n }\n for (i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n var trace = cd0.trace;\n var lid = trace.legend;\n var lgroup = trace.legendgroup;\n if (!inHover && (!trace.visible || !trace.showlegend)) continue;\n if (Registry.traceIs(trace, \"pie-like\")) {\n if (!slicesShown[lgroup]) slicesShown[lgroup] = {};\n for (j = 0; j < cd.length; j++) {\n var labelj = cd[j].label;\n if (!slicesShown[lgroup][labelj]) {\n addOneItem(lid, lgroup, {\n label: labelj,\n color: cd[j].color,\n i: cd[j].i,\n trace,\n pts: cd[j].pts\n });\n slicesShown[lgroup][labelj] = true;\n maxNameLength = Math.max(maxNameLength, (labelj || \"\").length);\n }\n }\n } else {\n addOneItem(lid, lgroup, cd0);\n maxNameLength = Math.max(maxNameLength, (trace.name || \"\").length);\n }\n }\n if (!lgroups.length) return [];\n var shouldCollapse = !hasOneNonBlankGroup || !grouped;\n var legendData = [];\n for (i = 0; i < lgroups.length; i++) {\n var t = lgroupToTraces[lgroups[i]];\n if (shouldCollapse) {\n legendData.push(t[0]);\n } else {\n legendData.push(t);\n }\n }\n if (shouldCollapse) legendData = [legendData];\n for (i = 0; i < legendData.length; i++) {\n var groupMinRank = Infinity;\n for (j = 0; j < legendData[i].length; j++) {\n var rank = legendData[i][j].trace.legendrank;\n if (groupMinRank > rank) groupMinRank = rank;\n }\n legendData[i][0]._groupMinRank = groupMinRank;\n legendData[i][0]._preGroupSort = i;\n }\n var orderFn1 = function(a, b) {\n return a[0]._groupMinRank - b[0]._groupMinRank || a[0]._preGroupSort - b[0]._preGroupSort;\n };\n var orderFn2 = function(a, b) {\n return a.trace.legendrank - b.trace.legendrank || a._preSort - b._preSort;\n };\n legendData.forEach(function(a, k) {\n a[0]._preGroupSort = k;\n });\n legendData.sort(orderFn1);\n for (i = 0; i < legendData.length; i++) {\n legendData[i].forEach(function(a, k) {\n a._preSort = k;\n });\n legendData[i].sort(orderFn2);\n var firstItemTrace = legendData[i][0].trace;\n var groupTitle = null;\n for (j = 0; j < legendData[i].length; j++) {\n var gt = legendData[i][j].trace.legendgrouptitle;\n if (gt && gt.text) {\n groupTitle = gt;\n if (inHover) gt.font = opts._groupTitleFont;\n break;\n }\n }\n if (reversed) legendData[i].reverse();\n if (groupTitle) {\n var hasPieLike = false;\n for (j = 0; j < legendData[i].length; j++) {\n if (Registry.traceIs(legendData[i][j].trace, \"pie-like\")) {\n hasPieLike = true;\n break;\n }\n }\n legendData[i].unshift({\n i: -1,\n groupTitle,\n noClick: hasPieLike,\n trace: {\n showlegend: firstItemTrace.showlegend,\n legendgroup: firstItemTrace.legendgroup,\n visible: opts.groupclick === \"toggleitem\" ? true : firstItemTrace.visible\n }\n });\n }\n for (j = 0; j < legendData[i].length; j++) {\n legendData[i][j] = [\n legendData[i][j]\n ];\n }\n }\n opts._lgroupsLength = legendData.length;\n opts._maxNameLength = maxNameLength;\n return legendData;\n };\n }\n });\n\n // src/traces/pie/helpers.js\n var require_helpers4 = __commonJS({\n \"src/traces/pie/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n function format(vRounded) {\n return vRounded.indexOf(\"e\") !== -1 ? vRounded.replace(/[.]?0+e/, \"e\") : vRounded.indexOf(\".\") !== -1 ? vRounded.replace(/[.]?0+$/, \"\") : vRounded;\n }\n exports.formatPiePercent = function formatPiePercent(v, separators) {\n var vRounded = format((v * 100).toPrecision(3));\n return Lib.numSeparate(vRounded, separators) + \"%\";\n };\n exports.formatPieValue = function formatPieValue(v, separators) {\n var vRounded = format(v.toPrecision(10));\n return Lib.numSeparate(vRounded, separators);\n };\n exports.getFirstFilled = function getFirstFilled(array, indices) {\n if (!Lib.isArrayOrTypedArray(array)) return;\n for (var i = 0; i < indices.length; i++) {\n var v = array[indices[i]];\n if (v || v === 0 || v === \"\") return v;\n }\n };\n exports.castOption = function castOption(item, indices) {\n if (Lib.isArrayOrTypedArray(item)) return exports.getFirstFilled(item, indices);\n else if (item) return item;\n };\n exports.getRotationAngle = function(rotation) {\n return (rotation === \"auto\" ? 0 : rotation) * Math.PI / 180;\n };\n }\n });\n\n // src/traces/pie/fill_one.js\n var require_fill_one = __commonJS({\n \"src/traces/pie/fill_one.js\"(exports, module) {\n \"use strict\";\n var Drawing = require_drawing();\n var Color2 = require_color();\n module.exports = function fillOne(s, pt, trace, gd) {\n var pattern = trace.marker.pattern;\n if (pattern && pattern.shape) {\n Drawing.pointStyle(s, trace, gd, pt);\n } else {\n Color2.fill(s, pt.color);\n }\n };\n }\n });\n\n // src/traces/pie/style_one.js\n var require_style_one = __commonJS({\n \"src/traces/pie/style_one.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var castOption = require_helpers4().castOption;\n var fillOne = require_fill_one();\n module.exports = function styleOne(s, pt, trace, gd) {\n var line = trace.marker.line;\n var lineColor = castOption(line.color, pt.pts) || Color2.defaultLine;\n var lineWidth = castOption(line.width, pt.pts) || 0;\n s.call(fillOne, pt, trace, gd).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor);\n };\n }\n });\n\n // src/components/legend/style.js\n var require_style = __commonJS({\n \"src/components/legend/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var Color2 = require_color();\n var extractOpts = require_helpers().extractOpts;\n var subTypes = require_subtypes();\n var stylePie = require_style_one();\n var pieCastOption = require_helpers4().castOption;\n var constants = require_constants3();\n var CST_MARKER_SIZE = 12;\n var CST_LINE_WIDTH = 5;\n var CST_MARKER_LINE_WIDTH = 2;\n var MAX_LINE_WIDTH = 10;\n var MAX_MARKER_LINE_WIDTH = 5;\n module.exports = function style(s, gd, legend) {\n var fullLayout = gd._fullLayout;\n if (!legend) legend = fullLayout.legend;\n var constantItemSizing = legend.itemsizing === \"constant\";\n var itemWidth = legend.itemwidth;\n var centerPos = (itemWidth + constants.itemGap * 2) / 2;\n var centerTransform = strTranslate(centerPos, 0);\n var boundLineWidth = function(mlw, cont, max, cst) {\n var v;\n if (mlw + 1) {\n v = mlw;\n } else if (cont && cont.width > 0) {\n v = cont.width;\n } else {\n return 0;\n }\n return constantItemSizing ? cst : Math.min(v, max);\n };\n s.each(function(d) {\n var traceGroup = d3.select(this);\n var layers = Lib.ensureSingle(traceGroup, \"g\", \"layers\");\n layers.style(\"opacity\", d[0].trace.opacity);\n var indentation = legend.indentation;\n var valign = legend.valign;\n var lineHeight = d[0].lineHeight;\n var height = d[0].height;\n if (valign === \"middle\" && indentation === 0 || !lineHeight || !height) {\n layers.attr(\"transform\", null);\n } else {\n var factor = { top: 1, bottom: -1 }[valign];\n var markerOffsetY = factor * (0.5 * (lineHeight - height + 3)) || 0;\n var markerOffsetX = legend.indentation;\n layers.attr(\"transform\", strTranslate(markerOffsetX, markerOffsetY));\n }\n var fill = layers.selectAll(\"g.legendfill\").data([d]);\n fill.enter().append(\"g\").classed(\"legendfill\", true);\n var line = layers.selectAll(\"g.legendlines\").data([d]);\n line.enter().append(\"g\").classed(\"legendlines\", true);\n var symbol = layers.selectAll(\"g.legendsymbols\").data([d]);\n symbol.enter().append(\"g\").classed(\"legendsymbols\", true);\n symbol.selectAll(\"g.legendpoints\").data([d]).enter().append(\"g\").classed(\"legendpoints\", true);\n }).each(styleSpatial).each(styleWaterfalls).each(styleFunnels).each(styleBars).each(styleBoxes).each(styleFunnelareas).each(stylePies).each(styleLines).each(stylePoints).each(styleCandles).each(styleOHLC);\n function styleLines(d) {\n var styleGuide = getStyleGuide(d);\n var showFill = styleGuide.showFill;\n var showLine = styleGuide.showLine;\n var showGradientLine = styleGuide.showGradientLine;\n var showGradientFill = styleGuide.showGradientFill;\n var anyFill = styleGuide.anyFill;\n var anyLine = styleGuide.anyLine;\n var d0 = d[0];\n var trace = d0.trace;\n var dMod, tMod;\n var cOpts = extractOpts(trace);\n var colorscale = cOpts.colorscale;\n var reversescale = cOpts.reversescale;\n var fillStyle = function(s2) {\n if (s2.size()) {\n if (showFill) {\n Drawing.fillGroupStyle(s2, gd, true);\n } else {\n var gradientID = \"legendfill-\" + trace.uid;\n Drawing.gradient(\n s2,\n gd,\n gradientID,\n getGradientDirection(reversescale),\n colorscale,\n \"fill\"\n );\n }\n }\n };\n var lineGradient = function(s2) {\n if (s2.size()) {\n var gradientID = \"legendline-\" + trace.uid;\n Drawing.lineGroupStyle(s2);\n Drawing.gradient(\n s2,\n gd,\n gradientID,\n getGradientDirection(reversescale),\n colorscale,\n \"stroke\"\n );\n }\n };\n var pathStart = subTypes.hasMarkers(trace) || !anyFill ? \"M5,0\" : (\n // with a line leave it slightly below center, to leave room for the\n // line thickness and because the line is usually more prominent\n anyLine ? \"M5,-2\" : \"M5,-3\"\n );\n var this3 = d3.select(this);\n var fill = this3.select(\".legendfill\").selectAll(\"path\").data(showFill || showGradientFill ? [d] : []);\n fill.enter().append(\"path\").classed(\"js-fill\", true);\n fill.exit().remove();\n fill.attr(\"d\", pathStart + \"h\" + itemWidth + \"v6h-\" + itemWidth + \"z\").call(fillStyle);\n if (showLine || showGradientLine) {\n var lw = boundLineWidth(void 0, trace.line, MAX_LINE_WIDTH, CST_LINE_WIDTH);\n tMod = Lib.minExtend(trace, { line: { width: lw } });\n dMod = [Lib.minExtend(d0, { trace: tMod })];\n }\n var line = this3.select(\".legendlines\").selectAll(\"path\").data(showLine || showGradientLine ? [dMod] : []);\n line.enter().append(\"path\").classed(\"js-line\", true);\n line.exit().remove();\n line.attr(\"d\", pathStart + (showGradientLine ? \"l\" + itemWidth + \",0.0001\" : \"h\" + itemWidth)).call(showLine ? Drawing.lineGroupStyle : lineGradient);\n }\n function stylePoints(d) {\n var styleGuide = getStyleGuide(d);\n var anyFill = styleGuide.anyFill;\n var anyLine = styleGuide.anyLine;\n var showLine = styleGuide.showLine;\n var showMarker = styleGuide.showMarker;\n var d0 = d[0];\n var trace = d0.trace;\n var showText = !showMarker && !anyLine && !anyFill && subTypes.hasText(trace);\n var dMod, tMod;\n function boundVal(attrIn, arrayToValFn, bounds, cst) {\n var valIn = Lib.nestedProperty(trace, attrIn).get();\n var valToBound = Lib.isArrayOrTypedArray(valIn) && arrayToValFn ? arrayToValFn(valIn) : valIn;\n if (constantItemSizing && valToBound && cst !== void 0) {\n valToBound = cst;\n }\n if (bounds) {\n if (valToBound < bounds[0]) return bounds[0];\n else if (valToBound > bounds[1]) return bounds[1];\n }\n return valToBound;\n }\n function pickFirst(array) {\n if (d0._distinct && d0.index && array[d0.index]) return array[d0.index];\n return array[0];\n }\n if (showMarker || showText || showLine) {\n var dEdit = {};\n var tEdit = {};\n if (showMarker) {\n dEdit.mc = boundVal(\"marker.color\", pickFirst);\n dEdit.mx = boundVal(\"marker.symbol\", pickFirst);\n dEdit.mo = boundVal(\"marker.opacity\", Lib.mean, [0.2, 1]);\n dEdit.mlc = boundVal(\"marker.line.color\", pickFirst);\n dEdit.mlw = boundVal(\"marker.line.width\", Lib.mean, [0, 5], CST_MARKER_LINE_WIDTH);\n tEdit.marker = {\n sizeref: 1,\n sizemin: 1,\n sizemode: \"diameter\"\n };\n var ms = boundVal(\"marker.size\", Lib.mean, [2, 16], CST_MARKER_SIZE);\n dEdit.ms = ms;\n tEdit.marker.size = ms;\n }\n if (showLine) {\n tEdit.line = {\n width: boundVal(\"line.width\", pickFirst, [0, 10], CST_LINE_WIDTH)\n };\n }\n if (showText) {\n dEdit.tx = \"Aa\";\n dEdit.tp = boundVal(\"textposition\", pickFirst);\n dEdit.ts = 10;\n dEdit.tc = boundVal(\"textfont.color\", pickFirst);\n dEdit.tf = boundVal(\"textfont.family\", pickFirst);\n dEdit.tw = boundVal(\"textfont.weight\", pickFirst);\n dEdit.ty = boundVal(\"textfont.style\", pickFirst);\n dEdit.tv = boundVal(\"textfont.variant\", pickFirst);\n dEdit.tC = boundVal(\"textfont.textcase\", pickFirst);\n dEdit.tE = boundVal(\"textfont.lineposition\", pickFirst);\n dEdit.tS = boundVal(\"textfont.shadow\", pickFirst);\n }\n dMod = [Lib.minExtend(d0, dEdit)];\n tMod = Lib.minExtend(trace, tEdit);\n tMod.selectedpoints = null;\n tMod.texttemplate = null;\n }\n var ptgroup = d3.select(this).select(\"g.legendpoints\");\n var pts = ptgroup.selectAll(\"path.scatterpts\").data(showMarker ? dMod : []);\n pts.enter().insert(\"path\", \":first-child\").classed(\"scatterpts\", true).attr(\"transform\", centerTransform);\n pts.exit().remove();\n pts.call(Drawing.pointStyle, tMod, gd);\n if (showMarker) dMod[0].mrc = 3;\n var txt = ptgroup.selectAll(\"g.pointtext\").data(showText ? dMod : []);\n txt.enter().append(\"g\").classed(\"pointtext\", true).append(\"text\").attr(\"transform\", centerTransform);\n txt.exit().remove();\n txt.selectAll(\"text\").call(Drawing.textPointStyle, tMod, gd);\n }\n function styleWaterfalls(d) {\n var trace = d[0].trace;\n var isWaterfall = trace.type === \"waterfall\";\n if (d[0]._distinct && isWaterfall) {\n var cont = d[0].trace[d[0].dir].marker;\n d[0].mc = cont.color;\n d[0].mlw = cont.line.width;\n d[0].mlc = cont.line.color;\n return styleBarLike(d, this, \"waterfall\");\n }\n var ptsData = [];\n if (trace.visible && isWaterfall) {\n ptsData = d[0].hasTotals ? [[\"increasing\", \"M-6,-6V6H0Z\"], [\"totals\", \"M6,6H0L-6,-6H-0Z\"], [\"decreasing\", \"M6,6V-6H0Z\"]] : [[\"increasing\", \"M-6,-6V6H6Z\"], [\"decreasing\", \"M6,6V-6H-6Z\"]];\n }\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendwaterfall\").data(ptsData);\n pts.enter().append(\"path\").classed(\"legendwaterfall\", true).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(dd) {\n var pt = d3.select(this);\n var cont2 = trace[dd[0]].marker;\n var lw = boundLineWidth(void 0, cont2.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n pt.attr(\"d\", dd[1]).style(\"stroke-width\", lw + \"px\").call(Color2.fill, cont2.color);\n if (lw) {\n pt.call(Color2.stroke, cont2.line.color);\n }\n });\n }\n function styleBars(d) {\n styleBarLike(d, this);\n }\n function styleFunnels(d) {\n styleBarLike(d, this, \"funnel\");\n }\n function styleBarLike(d, lThis, desiredType) {\n var trace = d[0].trace;\n var marker = trace.marker || {};\n var markerLine = marker.line || {};\n var pathStr = marker.cornerradius ? \"M6,3a3,3,0,0,1-3,3H-3a3,3,0,0,1-3-3V-3a3,3,0,0,1,3-3H3a3,3,0,0,1,3,3Z\" : (\n // Square with rounded corners\n \"M6,6H-6V-6H6Z\"\n );\n var isVisible = !desiredType ? Registry.traceIs(trace, \"bar\") : trace.visible && trace.type === desiredType;\n var barpath = d3.select(lThis).select(\"g.legendpoints\").selectAll(\"path.legend\" + desiredType).data(isVisible ? [d] : []);\n barpath.enter().append(\"path\").classed(\"legend\" + desiredType, true).attr(\"d\", pathStr).attr(\"transform\", centerTransform);\n barpath.exit().remove();\n barpath.each(function(d2) {\n var p = d3.select(this);\n var d0 = d2[0];\n var w = boundLineWidth(d0.mlw, marker.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"stroke-width\", w + \"px\");\n var mcc = d0.mcc;\n if (!legend._inHover && \"mc\" in d0) {\n var cOpts = extractOpts(marker);\n var mid = cOpts.mid;\n if (mid === void 0) mid = (cOpts.max + cOpts.min) / 2;\n mcc = Drawing.tryColorscale(marker, \"\")(mid);\n }\n var fillColor = mcc || d0.mc || marker.color;\n var markerPattern = marker.pattern;\n var patternShape = markerPattern && Drawing.getPatternAttr(markerPattern.shape, 0, \"\");\n if (patternShape) {\n var patternBGColor = Drawing.getPatternAttr(markerPattern.bgcolor, 0, null);\n var patternFGColor = Drawing.getPatternAttr(markerPattern.fgcolor, 0, null);\n var patternFGOpacity = markerPattern.fgopacity;\n var patternSize = dimAttr(markerPattern.size, 8, 10);\n var patternSolidity = dimAttr(markerPattern.solidity, 0.5, 1);\n var patternID = \"legend-\" + trace.uid;\n p.call(\n Drawing.pattern,\n \"legend\",\n gd,\n patternID,\n patternShape,\n patternSize,\n patternSolidity,\n mcc,\n markerPattern.fillmode,\n patternBGColor,\n patternFGColor,\n patternFGOpacity\n );\n } else {\n p.call(Color2.fill, fillColor);\n }\n if (w) Color2.stroke(p, d0.mlc || markerLine.color);\n });\n }\n function styleBoxes(d) {\n var trace = d[0].trace;\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendbox\").data(trace.visible && Registry.traceIs(trace, \"box-violin\") ? [d] : []);\n pts.enter().append(\"path\").classed(\"legendbox\", true).attr(\"d\", \"M6,6H-6V-6H6Z\").attr(\"transform\", centerTransform);\n pts.exit().remove();\n pts.each(function() {\n var p = d3.select(this);\n if ((trace.boxpoints === \"all\" || trace.points === \"all\") && Color2.opacity(trace.fillcolor) === 0 && Color2.opacity((trace.line || {}).color) === 0) {\n var tMod = Lib.minExtend(trace, {\n marker: {\n size: constantItemSizing ? CST_MARKER_SIZE : Lib.constrain(trace.marker.size, 2, 16),\n sizeref: 1,\n sizemin: 1,\n sizemode: \"diameter\"\n }\n });\n pts.call(Drawing.pointStyle, tMod, gd);\n } else {\n var w = boundLineWidth(void 0, trace.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"stroke-width\", w + \"px\").call(Color2.fill, trace.fillcolor);\n if (w) Color2.stroke(p, trace.line.color);\n }\n });\n }\n function styleCandles(d) {\n var trace = d[0].trace;\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendcandle\").data(trace.visible && trace.type === \"candlestick\" ? [d, d] : []);\n pts.enter().append(\"path\").classed(\"legendcandle\", true).attr(\"d\", function(_, i) {\n if (i) return \"M-15,0H-8M-8,6V-6H8Z\";\n return \"M15,0H8M8,-6V6H-8Z\";\n }).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(_, i) {\n var p = d3.select(this);\n var cont = trace[i ? \"increasing\" : \"decreasing\"];\n var w = boundLineWidth(void 0, cont.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"stroke-width\", w + \"px\").call(Color2.fill, cont.fillcolor);\n if (w) Color2.stroke(p, cont.line.color);\n });\n }\n function styleOHLC(d) {\n var trace = d[0].trace;\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legendohlc\").data(trace.visible && trace.type === \"ohlc\" ? [d, d] : []);\n pts.enter().append(\"path\").classed(\"legendohlc\", true).attr(\"d\", function(_, i) {\n if (i) return \"M-15,0H0M-8,-6V0\";\n return \"M15,0H0M8,6V0\";\n }).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(_, i) {\n var p = d3.select(this);\n var cont = trace[i ? \"increasing\" : \"decreasing\"];\n var w = boundLineWidth(void 0, cont.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n p.style(\"fill\", \"none\").call(Drawing.dashLine, cont.line.dash, w);\n if (w) Color2.stroke(p, cont.line.color);\n });\n }\n function stylePies(d) {\n stylePieLike(d, this, \"pie\");\n }\n function styleFunnelareas(d) {\n stylePieLike(d, this, \"funnelarea\");\n }\n function stylePieLike(d, lThis, desiredType) {\n var d0 = d[0];\n var trace = d0.trace;\n var isVisible = !desiredType ? Registry.traceIs(trace, desiredType) : trace.visible && trace.type === desiredType;\n var pts = d3.select(lThis).select(\"g.legendpoints\").selectAll(\"path.legend\" + desiredType).data(isVisible ? [d] : []);\n pts.enter().append(\"path\").classed(\"legend\" + desiredType, true).attr(\"d\", \"M6,6H-6V-6H6Z\").attr(\"transform\", centerTransform);\n pts.exit().remove();\n if (pts.size()) {\n var cont = trace.marker || {};\n var lw = boundLineWidth(pieCastOption(cont.line.width, d0.pts), cont.line, MAX_MARKER_LINE_WIDTH, CST_MARKER_LINE_WIDTH);\n var opt = \"pieLike\";\n var tMod = Lib.minExtend(trace, { marker: { line: { width: lw } } }, opt);\n var d0Mod = Lib.minExtend(d0, { trace: tMod }, opt);\n stylePie(pts, d0Mod, tMod, gd);\n }\n }\n function styleSpatial(d) {\n var trace = d[0].trace;\n var useGradient;\n var ptsData = [];\n if (trace.visible) {\n switch (trace.type) {\n case \"histogram2d\":\n case \"heatmap\":\n ptsData = [\n [\"M-15,-2V4H15V-2Z\"]\n // similar to contour\n ];\n useGradient = true;\n break;\n case \"choropleth\":\n case \"choroplethmapbox\":\n case \"choroplethmap\":\n ptsData = [\n [\"M-6,-6V6H6V-6Z\"]\n ];\n useGradient = true;\n break;\n case \"densitymapbox\":\n case \"densitymap\":\n ptsData = [\n [\"M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0\"]\n ];\n useGradient = \"radial\";\n break;\n case \"cone\":\n ptsData = [\n [\"M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z\"],\n [\"M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z\"],\n [\"M-6,-2 A2,2 0 0,0 -6,2 L6,0Z\"]\n ];\n useGradient = false;\n break;\n case \"streamtube\":\n ptsData = [\n [\"M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z\"],\n [\"M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z\"],\n [\"M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z\"]\n ];\n useGradient = false;\n break;\n case \"surface\":\n ptsData = [\n [\"M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z\"],\n [\"M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z\"]\n ];\n useGradient = true;\n break;\n case \"mesh3d\":\n ptsData = [\n [\"M-6,6H0L-6,-6Z\"],\n [\"M6,6H0L6,-6Z\"],\n [\"M-6,-6H6L0,6Z\"]\n ];\n useGradient = false;\n break;\n case \"volume\":\n ptsData = [\n [\"M-6,6H0L-6,-6Z\"],\n [\"M6,6H0L6,-6Z\"],\n [\"M-6,-6H6L0,6Z\"]\n ];\n useGradient = true;\n break;\n case \"isosurface\":\n ptsData = [\n [\"M-6,6H0L-6,-6Z\"],\n [\"M6,6H0L6,-6Z\"],\n [\"M-6,-6 A12,24 0 0,0 6,-6 L0,6Z\"]\n ];\n useGradient = false;\n break;\n }\n }\n var pts = d3.select(this).select(\"g.legendpoints\").selectAll(\"path.legend3dandfriends\").data(ptsData);\n pts.enter().append(\"path\").classed(\"legend3dandfriends\", true).attr(\"transform\", centerTransform).style(\"stroke-miterlimit\", 1);\n pts.exit().remove();\n pts.each(function(dd, i) {\n var pt = d3.select(this);\n var cOpts = extractOpts(trace);\n var colorscale = cOpts.colorscale;\n var reversescale = cOpts.reversescale;\n var fillGradient = function(s2) {\n if (s2.size()) {\n var gradientID = \"legendfill-\" + trace.uid;\n Drawing.gradient(\n s2,\n gd,\n gradientID,\n getGradientDirection(reversescale, useGradient === \"radial\"),\n colorscale,\n \"fill\"\n );\n }\n };\n var fillColor;\n if (!colorscale) {\n var color2 = trace.vertexcolor || trace.facecolor || trace.color;\n fillColor = Lib.isArrayOrTypedArray(color2) ? color2[i] || color2[0] : color2;\n } else {\n if (!useGradient) {\n var len = colorscale.length;\n fillColor = i === 0 ? colorscale[reversescale ? len - 1 : 0][1] : (\n // minimum\n i === 1 ? colorscale[reversescale ? 0 : len - 1][1] : (\n // maximum\n colorscale[Math.floor((len - 1) / 2)][1]\n )\n );\n }\n }\n pt.attr(\"d\", dd[0]);\n if (fillColor) {\n pt.call(Color2.fill, fillColor);\n } else {\n pt.call(fillGradient);\n }\n });\n }\n };\n function getGradientDirection(reversescale, isRadial) {\n var str = isRadial ? \"radial\" : \"horizontal\";\n return str + (reversescale ? \"\" : \"reversed\");\n }\n function getStyleGuide(d) {\n var trace = d[0].trace;\n var contours = trace.contours;\n var showLine = subTypes.hasLines(trace);\n var showMarker = subTypes.hasMarkers(trace);\n var showFill = trace.visible && trace.fill && trace.fill !== \"none\";\n var showGradientLine = false;\n var showGradientFill = false;\n if (contours) {\n var coloring = contours.coloring;\n if (coloring === \"lines\") {\n showGradientLine = true;\n } else {\n showLine = coloring === \"none\" || coloring === \"heatmap\" || contours.showlines;\n }\n if (contours.type === \"constraint\") {\n showFill = contours._operation !== \"=\";\n } else if (coloring === \"fill\" || coloring === \"heatmap\") {\n showGradientFill = true;\n }\n }\n return {\n showMarker,\n showLine,\n showFill,\n showGradientLine,\n showGradientFill,\n anyLine: showLine || showGradientLine,\n anyFill: showFill || showGradientFill\n };\n }\n function dimAttr(v, dflt, max) {\n if (v && Lib.isArrayOrTypedArray(v)) return dflt;\n if (v > max) return max;\n return v;\n }\n }\n });\n\n // src/components/legend/draw.js\n var require_draw = __commonJS({\n \"src/components/legend/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Plots = require_plots();\n var Registry = require_registry();\n var Events = require_events2();\n var dragElement = require_dragelement();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var svgTextUtils = require_svg_text_utils();\n var handleClick = require_handle_click();\n var constants = require_constants3();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n var getLegendData = require_get_legend_data();\n var style = require_style();\n var helpers = require_helpers3();\n var MAIN_TITLE = 1;\n var LEGEND_PATTERN = /^legend[0-9]*$/;\n module.exports = function draw(gd, opts) {\n if (opts) {\n drawOne(gd, opts);\n } else {\n var fullLayout = gd._fullLayout;\n var newLegends = fullLayout._legends;\n var oldLegends = fullLayout._infolayer.selectAll('[class^=\"legend\"]');\n oldLegends.each(function() {\n var el = d3.select(this);\n var classes = el.attr(\"class\");\n var cls = classes.split(\" \")[0];\n if (cls.match(LEGEND_PATTERN) && newLegends.indexOf(cls) === -1) {\n el.remove();\n }\n });\n for (var i = 0; i < newLegends.length; i++) {\n var legendId = newLegends[i];\n var legendObj = gd._fullLayout[legendId];\n drawOne(gd, legendObj);\n }\n }\n };\n function horizontalAlignTitle(titleEl, legendObj, bw) {\n if (legendObj.title.side !== \"top center\" && legendObj.title.side !== \"top right\") return;\n var font = legendObj.title.font;\n var lineHeight = font.size * LINE_SPACING;\n var titleOffset = 0;\n var textNode = titleEl.node();\n var width = Drawing.bBox(textNode).width;\n if (legendObj.title.side === \"top center\") {\n titleOffset = 0.5 * (legendObj._width - 2 * bw - 2 * constants.titlePad - width);\n } else if (legendObj.title.side === \"top right\") {\n titleOffset = legendObj._width - 2 * bw - 2 * constants.titlePad - width;\n }\n svgTextUtils.positionText(\n titleEl,\n bw + constants.titlePad + titleOffset,\n bw + lineHeight\n );\n }\n function drawOne(gd, opts) {\n var legendObj = opts || {};\n var fullLayout = gd._fullLayout;\n var legendId = getId(legendObj);\n var clipId, layer;\n var inHover = legendObj._inHover;\n if (inHover) {\n layer = legendObj.layer;\n clipId = \"hover\";\n } else {\n layer = fullLayout._infolayer;\n clipId = legendId;\n }\n if (!layer) return;\n clipId += fullLayout._uid;\n if (!gd._legendMouseDownTime) gd._legendMouseDownTime = 0;\n var legendData;\n if (!inHover) {\n var calcdata = (gd.calcdata || []).slice();\n var shapes = fullLayout.shapes;\n for (var i = 0; i < shapes.length; i++) {\n var shape = shapes[i];\n if (!shape.showlegend) continue;\n var shapeLegend = {\n _isShape: true,\n _fullInput: shape,\n index: shape._index,\n name: shape.name || shape.label.text || \"shape \" + shape._index,\n legend: shape.legend,\n legendgroup: shape.legendgroup,\n legendgrouptitle: shape.legendgrouptitle,\n legendrank: shape.legendrank,\n legendwidth: shape.legendwidth,\n showlegend: shape.showlegend,\n visible: shape.visible,\n opacity: shape.opacity,\n mode: shape.type === \"line\" ? \"lines\" : \"markers\",\n line: shape.line,\n marker: {\n line: shape.line,\n color: shape.fillcolor,\n size: 12,\n symbol: shape.type === \"rect\" ? \"square\" : shape.type === \"circle\" ? \"circle\" : (\n // case of path\n \"hexagon2\"\n )\n }\n };\n calcdata.push([{ trace: shapeLegend }]);\n }\n legendData = fullLayout.showlegend && getLegendData(calcdata, legendObj, fullLayout._legends.length > 1);\n } else {\n if (!legendObj.entries) return;\n legendData = getLegendData(legendObj.entries, legendObj);\n }\n var hiddenSlices = fullLayout.hiddenlabels || [];\n if (!inHover && (!fullLayout.showlegend || !legendData.length)) {\n layer.selectAll(\".\" + legendId).remove();\n fullLayout._topdefs.select(\"#\" + clipId).remove();\n return Plots.autoMargin(gd, legendId);\n }\n var legend = Lib.ensureSingle(layer, \"g\", legendId, function(s) {\n if (!inHover) s.attr(\"pointer-events\", \"all\");\n });\n var clipPath = Lib.ensureSingleById(fullLayout._topdefs, \"clipPath\", clipId, function(s) {\n s.append(\"rect\");\n });\n var bg = Lib.ensureSingle(legend, \"rect\", \"bg\", function(s) {\n s.attr(\"shape-rendering\", \"crispEdges\");\n });\n bg.call(Color2.stroke, legendObj.bordercolor).call(Color2.fill, legendObj.bgcolor).style(\"stroke-width\", legendObj.borderwidth + \"px\");\n var scrollBox = Lib.ensureSingle(legend, \"g\", \"scrollbox\");\n var title = legendObj.title;\n legendObj._titleWidth = 0;\n legendObj._titleHeight = 0;\n var titleEl;\n if (title.text) {\n titleEl = Lib.ensureSingle(scrollBox, \"text\", legendId + \"titletext\");\n titleEl.attr(\"text-anchor\", \"start\").call(Drawing.font, title.font).text(title.text);\n textLayout(titleEl, scrollBox, gd, legendObj, MAIN_TITLE);\n } else {\n scrollBox.selectAll(\".\" + legendId + \"titletext\").remove();\n }\n var scrollBar = Lib.ensureSingle(legend, \"rect\", \"scrollbar\", function(s) {\n s.attr(constants.scrollBarEnterAttrs).call(Color2.fill, constants.scrollBarColor);\n });\n var groups = scrollBox.selectAll(\"g.groups\").data(legendData);\n groups.enter().append(\"g\").attr(\"class\", \"groups\");\n groups.exit().remove();\n var traces = groups.selectAll(\"g.traces\").data(Lib.identity);\n traces.enter().append(\"g\").attr(\"class\", \"traces\");\n traces.exit().remove();\n traces.style(\"opacity\", function(d) {\n var trace = d[0].trace;\n if (Registry.traceIs(trace, \"pie-like\")) {\n return hiddenSlices.indexOf(d[0].label) !== -1 ? 0.5 : 1;\n } else {\n return trace.visible === \"legendonly\" ? 0.5 : 1;\n }\n }).each(function() {\n d3.select(this).call(drawTexts, gd, legendObj);\n }).call(style, gd, legendObj).each(function() {\n if (!inHover) d3.select(this).call(setupTraceToggle, gd, legendId);\n });\n Lib.syncOrAsync([\n Plots.previousPromises,\n function() {\n return computeLegendDimensions(gd, groups, traces, legendObj);\n },\n function() {\n var gs = fullLayout._size;\n var bw = legendObj.borderwidth;\n var isPaperX = legendObj.xref === \"paper\";\n var isPaperY = legendObj.yref === \"paper\";\n if (title.text) {\n horizontalAlignTitle(titleEl, legendObj, bw);\n }\n if (!inHover) {\n var lx, ly;\n if (isPaperX) {\n lx = gs.l + gs.w * legendObj.x - FROM_TL[getXanchor(legendObj)] * legendObj._width;\n } else {\n lx = fullLayout.width * legendObj.x - FROM_TL[getXanchor(legendObj)] * legendObj._width;\n }\n if (isPaperY) {\n ly = gs.t + gs.h * (1 - legendObj.y) - FROM_TL[getYanchor(legendObj)] * legendObj._effHeight;\n } else {\n ly = fullLayout.height * (1 - legendObj.y) - FROM_TL[getYanchor(legendObj)] * legendObj._effHeight;\n }\n var expMargin = expandMargin(gd, legendId, lx, ly);\n if (expMargin) return;\n if (fullLayout.margin.autoexpand) {\n var lx0 = lx;\n var ly0 = ly;\n lx = isPaperX ? Lib.constrain(lx, 0, fullLayout.width - legendObj._width) : lx0;\n ly = isPaperY ? Lib.constrain(ly, 0, fullLayout.height - legendObj._effHeight) : ly0;\n if (lx !== lx0) {\n Lib.log(\"Constrain \" + legendId + \".x to make legend fit inside graph\");\n }\n if (ly !== ly0) {\n Lib.log(\"Constrain \" + legendId + \".y to make legend fit inside graph\");\n }\n }\n Drawing.setTranslate(legend, lx, ly);\n }\n scrollBar.on(\".drag\", null);\n legend.on(\"wheel\", null);\n if (inHover || legendObj._height <= legendObj._maxHeight || gd._context.staticPlot) {\n var height = legendObj._effHeight;\n if (inHover) height = legendObj._height;\n bg.attr({\n width: legendObj._width - bw,\n height: height - bw,\n x: bw / 2,\n y: bw / 2\n });\n Drawing.setTranslate(scrollBox, 0, 0);\n clipPath.select(\"rect\").attr({\n width: legendObj._width - 2 * bw,\n height: height - 2 * bw,\n x: bw,\n y: bw\n });\n Drawing.setClipUrl(scrollBox, clipId, gd);\n Drawing.setRect(scrollBar, 0, 0, 0, 0);\n delete legendObj._scrollY;\n } else {\n var scrollBarHeight = Math.max(\n constants.scrollBarMinHeight,\n legendObj._effHeight * legendObj._effHeight / legendObj._height\n );\n var scrollBarYMax = legendObj._effHeight - scrollBarHeight - 2 * constants.scrollBarMargin;\n var scrollBoxYMax = legendObj._height - legendObj._effHeight;\n var scrollRatio = scrollBarYMax / scrollBoxYMax;\n var scrollBoxY = Math.min(legendObj._scrollY || 0, scrollBoxYMax);\n bg.attr({\n width: legendObj._width - 2 * bw + constants.scrollBarWidth + constants.scrollBarMargin,\n height: legendObj._effHeight - bw,\n x: bw / 2,\n y: bw / 2\n });\n clipPath.select(\"rect\").attr({\n width: legendObj._width - 2 * bw + constants.scrollBarWidth + constants.scrollBarMargin,\n height: legendObj._effHeight - 2 * bw,\n x: bw,\n y: bw + scrollBoxY\n });\n Drawing.setClipUrl(scrollBox, clipId, gd);\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n legend.on(\"wheel\", function() {\n scrollBoxY = Lib.constrain(\n legendObj._scrollY + d3.event.deltaY / scrollBarYMax * scrollBoxYMax,\n 0,\n scrollBoxYMax\n );\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n if (scrollBoxY !== 0 && scrollBoxY !== scrollBoxYMax) {\n d3.event.preventDefault();\n }\n });\n var eventY0, eventY1, scrollBoxY0;\n var getScrollBarDragY = function(scrollBoxY02, eventY02, eventY12) {\n var y = (eventY12 - eventY02) / scrollRatio + scrollBoxY02;\n return Lib.constrain(y, 0, scrollBoxYMax);\n };\n var getNaturalDragY = function(scrollBoxY02, eventY02, eventY12) {\n var y = (eventY02 - eventY12) / scrollRatio + scrollBoxY02;\n return Lib.constrain(y, 0, scrollBoxYMax);\n };\n var scrollBarDrag = d3.behavior.drag().on(\"dragstart\", function() {\n var e = d3.event.sourceEvent;\n if (e.type === \"touchstart\") {\n eventY0 = e.changedTouches[0].clientY;\n } else {\n eventY0 = e.clientY;\n }\n scrollBoxY0 = scrollBoxY;\n }).on(\"drag\", function() {\n var e = d3.event.sourceEvent;\n if (e.buttons === 2 || e.ctrlKey) return;\n if (e.type === \"touchmove\") {\n eventY1 = e.changedTouches[0].clientY;\n } else {\n eventY1 = e.clientY;\n }\n scrollBoxY = getScrollBarDragY(scrollBoxY0, eventY0, eventY1);\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n });\n scrollBar.call(scrollBarDrag);\n var scrollBoxTouchDrag = d3.behavior.drag().on(\"dragstart\", function() {\n var e = d3.event.sourceEvent;\n if (e.type === \"touchstart\") {\n eventY0 = e.changedTouches[0].clientY;\n scrollBoxY0 = scrollBoxY;\n }\n }).on(\"drag\", function() {\n var e = d3.event.sourceEvent;\n if (e.type === \"touchmove\") {\n eventY1 = e.changedTouches[0].clientY;\n scrollBoxY = getNaturalDragY(scrollBoxY0, eventY0, eventY1);\n scrollHandler(scrollBoxY, scrollBarHeight, scrollRatio);\n }\n });\n scrollBox.call(scrollBoxTouchDrag);\n }\n function scrollHandler(scrollBoxY2, scrollBarHeight2, scrollRatio2) {\n legendObj._scrollY = gd._fullLayout[legendId]._scrollY = scrollBoxY2;\n Drawing.setTranslate(scrollBox, 0, -scrollBoxY2);\n Drawing.setRect(\n scrollBar,\n legendObj._width,\n constants.scrollBarMargin + scrollBoxY2 * scrollRatio2,\n constants.scrollBarWidth,\n scrollBarHeight2\n );\n clipPath.select(\"rect\").attr(\"y\", bw + scrollBoxY2);\n }\n if (gd._context.edits.legendPosition) {\n var xf, yf, x0, y0;\n legend.classed(\"cursor-move\", true);\n dragElement.init({\n element: legend.node(),\n gd,\n prepFn: function(e) {\n if (e.target === scrollBar.node()) {\n return;\n }\n var transform = Drawing.getTranslate(legend);\n x0 = transform.x;\n y0 = transform.y;\n },\n moveFn: function(dx, dy) {\n if (x0 !== void 0 && y0 !== void 0) {\n var newX = x0 + dx;\n var newY = y0 + dy;\n Drawing.setTranslate(legend, newX, newY);\n xf = dragElement.align(newX, legendObj._width, gs.l, gs.l + gs.w, legendObj.xanchor);\n yf = dragElement.align(newY + legendObj._height, -legendObj._height, gs.t + gs.h, gs.t, legendObj.yanchor);\n }\n },\n doneFn: function() {\n if (xf !== void 0 && yf !== void 0) {\n var obj = {};\n obj[legendId + \".x\"] = xf;\n obj[legendId + \".y\"] = yf;\n Registry.call(\"_guiRelayout\", gd, obj);\n }\n },\n clickFn: function(numClicks, e) {\n var clickedTrace = layer.selectAll(\"g.traces\").filter(function() {\n var bbox = this.getBoundingClientRect();\n return e.clientX >= bbox.left && e.clientX <= bbox.right && e.clientY >= bbox.top && e.clientY <= bbox.bottom;\n });\n if (clickedTrace.size() > 0) {\n clickOrDoubleClick(gd, legend, clickedTrace, numClicks, e);\n }\n }\n });\n }\n }\n ], gd);\n }\n function getTraceWidth(d, legendObj, textGap) {\n var legendItem = d[0];\n var legendWidth = legendItem.width;\n var mode = legendObj.entrywidthmode;\n var traceLegendWidth = legendItem.trace.legendwidth || legendObj.entrywidth;\n if (mode === \"fraction\") return legendObj._maxWidth * traceLegendWidth;\n return textGap + (traceLegendWidth || legendWidth);\n }\n function clickOrDoubleClick(gd, legend, legendItem, numClicks, evt) {\n var trace = legendItem.data()[0][0].trace;\n var evtData = {\n event: evt,\n node: legendItem.node(),\n curveNumber: trace.index,\n expandedIndex: trace.index,\n data: gd.data,\n layout: gd.layout,\n frames: gd._transitionData._frames,\n config: gd._context,\n fullData: gd._fullData,\n fullLayout: gd._fullLayout\n };\n if (trace._group) {\n evtData.group = trace._group;\n }\n if (Registry.traceIs(trace, \"pie-like\")) {\n evtData.label = legendItem.datum()[0].label;\n }\n var clickVal = Events.triggerHandler(gd, \"plotly_legendclick\", evtData);\n if (numClicks === 1) {\n if (clickVal === false) return;\n legend._clickTimeout = setTimeout(function() {\n if (!gd._fullLayout) return;\n handleClick(legendItem, gd, numClicks);\n }, gd._context.doubleClickDelay);\n } else if (numClicks === 2) {\n if (legend._clickTimeout) clearTimeout(legend._clickTimeout);\n gd._legendMouseDownTime = 0;\n var dblClickVal = Events.triggerHandler(gd, \"plotly_legenddoubleclick\", evtData);\n if (dblClickVal !== false && clickVal !== false) handleClick(legendItem, gd, numClicks);\n }\n }\n function drawTexts(g, gd, legendObj) {\n var legendId = getId(legendObj);\n var legendItem = g.data()[0][0];\n var trace = legendItem.trace;\n var isPieLike = Registry.traceIs(trace, \"pie-like\");\n var isEditable = !legendObj._inHover && gd._context.edits.legendText && !isPieLike;\n var maxNameLength = legendObj._maxNameLength;\n var name2, font;\n if (legendItem.groupTitle) {\n name2 = legendItem.groupTitle.text;\n font = legendItem.groupTitle.font;\n } else {\n font = legendObj.font;\n if (!legendObj.entries) {\n name2 = isPieLike ? legendItem.label : trace.name;\n if (trace._meta) {\n name2 = Lib.templateString(name2, trace._meta);\n }\n } else {\n name2 = legendItem.text;\n }\n }\n var textEl = Lib.ensureSingle(g, \"text\", legendId + \"text\");\n textEl.attr(\"text-anchor\", \"start\").call(Drawing.font, font).text(isEditable ? ensureLength(name2, maxNameLength) : name2);\n var textGap = legendObj.indentation + legendObj.itemwidth + constants.itemGap * 2;\n svgTextUtils.positionText(textEl, textGap, 0);\n if (isEditable) {\n textEl.call(svgTextUtils.makeEditable, { gd, text: name2 }).call(textLayout, g, gd, legendObj).on(\"edit\", function(newName) {\n this.text(ensureLength(newName, maxNameLength)).call(textLayout, g, gd, legendObj);\n var fullInput = legendItem.trace._fullInput || {};\n var update = {};\n update.name = newName;\n if (fullInput._isShape) {\n return Registry.call(\"_guiRelayout\", gd, \"shapes[\" + trace.index + \"].name\", update.name);\n } else {\n return Registry.call(\"_guiRestyle\", gd, update, trace.index);\n }\n });\n } else {\n textLayout(textEl, g, gd, legendObj);\n }\n }\n function ensureLength(str, maxLength) {\n var targetLength = Math.max(4, maxLength);\n if (str && str.trim().length >= targetLength / 2) return str;\n str = str || \"\";\n for (var i = targetLength - str.length; i > 0; i--) str += \" \";\n return str;\n }\n function setupTraceToggle(g, gd, legendId) {\n var doubleClickDelay = gd._context.doubleClickDelay;\n var newMouseDownTime;\n var numClicks = 1;\n var traceToggle = Lib.ensureSingle(g, \"rect\", legendId + \"toggle\", function(s) {\n if (!gd._context.staticPlot) {\n s.style(\"cursor\", \"pointer\").attr(\"pointer-events\", \"all\");\n }\n s.call(Color2.fill, \"rgba(0,0,0,0)\");\n });\n if (gd._context.staticPlot) return;\n traceToggle.on(\"mousedown\", function() {\n newMouseDownTime = (/* @__PURE__ */ new Date()).getTime();\n if (newMouseDownTime - gd._legendMouseDownTime < doubleClickDelay) {\n numClicks += 1;\n } else {\n numClicks = 1;\n gd._legendMouseDownTime = newMouseDownTime;\n }\n });\n traceToggle.on(\"mouseup\", function() {\n if (gd._dragged || gd._editing) return;\n var legend = gd._fullLayout[legendId];\n if ((/* @__PURE__ */ new Date()).getTime() - gd._legendMouseDownTime > doubleClickDelay) {\n numClicks = Math.max(numClicks - 1, 1);\n }\n clickOrDoubleClick(gd, legend, g, numClicks, d3.event);\n });\n }\n function textLayout(s, g, gd, legendObj, aTitle) {\n if (legendObj._inHover) s.attr(\"data-notex\", true);\n svgTextUtils.convertToTspans(s, gd, function() {\n computeTextDimensions(g, gd, legendObj, aTitle);\n });\n }\n function computeTextDimensions(g, gd, legendObj, aTitle) {\n var legendItem = g.data()[0][0];\n if (!legendObj._inHover && legendItem && !legendItem.trace.showlegend) {\n g.remove();\n return;\n }\n var mathjaxGroup = g.select(\"g[class*=math-group]\");\n var mathjaxNode = mathjaxGroup.node();\n var legendId = getId(legendObj);\n if (!legendObj) {\n legendObj = gd._fullLayout[legendId];\n }\n var bw = legendObj.borderwidth;\n var font;\n if (aTitle === MAIN_TITLE) {\n font = legendObj.title.font;\n } else if (legendItem.groupTitle) {\n font = legendItem.groupTitle.font;\n } else {\n font = legendObj.font;\n }\n var lineHeight = font.size * LINE_SPACING;\n var height, width;\n if (mathjaxNode) {\n var mathjaxBB = Drawing.bBox(mathjaxNode);\n height = mathjaxBB.height;\n width = mathjaxBB.width;\n if (aTitle === MAIN_TITLE) {\n Drawing.setTranslate(mathjaxGroup, bw, bw + height * 0.75);\n } else {\n Drawing.setTranslate(mathjaxGroup, 0, height * 0.25);\n }\n } else {\n var cls = \".\" + legendId + (aTitle === MAIN_TITLE ? \"title\" : \"\") + \"text\";\n var textEl = g.select(cls);\n var textLines = svgTextUtils.lineCount(textEl);\n var textNode = textEl.node();\n height = lineHeight * textLines;\n width = textNode ? Drawing.bBox(textNode).width : 0;\n if (aTitle === MAIN_TITLE) {\n if (legendObj.title.side === \"left\") {\n width += constants.itemGap * 2;\n }\n svgTextUtils.positionText(\n textEl,\n bw + constants.titlePad,\n bw + lineHeight\n );\n } else {\n var x = constants.itemGap * 2 + legendObj.indentation + legendObj.itemwidth;\n if (legendItem.groupTitle) {\n x = constants.itemGap;\n width -= legendObj.indentation + legendObj.itemwidth;\n }\n svgTextUtils.positionText(\n textEl,\n x,\n -lineHeight * ((textLines - 1) / 2 - 0.3)\n );\n }\n }\n if (aTitle === MAIN_TITLE) {\n legendObj._titleWidth = width;\n legendObj._titleHeight = height;\n } else {\n legendItem.lineHeight = lineHeight;\n legendItem.height = Math.max(height, 16) + 3;\n legendItem.width = width;\n }\n }\n function getTitleSize(legendObj) {\n var w = 0;\n var h = 0;\n var side = legendObj.title.side;\n if (side) {\n if (side.indexOf(\"left\") !== -1) {\n w = legendObj._titleWidth;\n }\n if (side.indexOf(\"top\") !== -1) {\n h = legendObj._titleHeight;\n }\n }\n return [w, h];\n }\n function computeLegendDimensions(gd, groups, traces, legendObj) {\n var fullLayout = gd._fullLayout;\n var legendId = getId(legendObj);\n if (!legendObj) {\n legendObj = fullLayout[legendId];\n }\n var gs = fullLayout._size;\n var isVertical = helpers.isVertical(legendObj);\n var isGrouped = helpers.isGrouped(legendObj);\n var isFraction = legendObj.entrywidthmode === \"fraction\";\n var bw = legendObj.borderwidth;\n var bw2 = 2 * bw;\n var itemGap = constants.itemGap;\n var textGap = legendObj.indentation + legendObj.itemwidth + itemGap * 2;\n var endPad = 2 * (bw + itemGap);\n var yanchor = getYanchor(legendObj);\n var isBelowPlotArea = legendObj.y < 0 || legendObj.y === 0 && yanchor === \"top\";\n var isAbovePlotArea = legendObj.y > 1 || legendObj.y === 1 && yanchor === \"bottom\";\n var traceGroupGap = legendObj.tracegroupgap;\n var legendGroupWidths = {};\n legendObj._maxHeight = Math.max(\n isBelowPlotArea || isAbovePlotArea ? fullLayout.height / 2 : gs.h,\n 30\n );\n var toggleRectWidth = 0;\n legendObj._width = 0;\n legendObj._height = 0;\n var titleSize = getTitleSize(legendObj);\n if (isVertical) {\n traces.each(function(d) {\n var h = d[0].height;\n Drawing.setTranslate(\n this,\n bw + titleSize[0],\n bw + titleSize[1] + legendObj._height + h / 2 + itemGap\n );\n legendObj._height += h;\n legendObj._width = Math.max(legendObj._width, d[0].width);\n });\n toggleRectWidth = textGap + legendObj._width;\n legendObj._width += itemGap + textGap + bw2;\n legendObj._height += endPad;\n if (isGrouped) {\n groups.each(function(d, i) {\n Drawing.setTranslate(this, 0, i * legendObj.tracegroupgap);\n });\n legendObj._height += (legendObj._lgroupsLength - 1) * legendObj.tracegroupgap;\n }\n } else {\n var xanchor = getXanchor(legendObj);\n var isLeftOfPlotArea = legendObj.x < 0 || legendObj.x === 0 && xanchor === \"right\";\n var isRightOfPlotArea = legendObj.x > 1 || legendObj.x === 1 && xanchor === \"left\";\n var isBeyondPlotAreaY = isAbovePlotArea || isBelowPlotArea;\n var hw = fullLayout.width / 2;\n legendObj._maxWidth = Math.max(\n isLeftOfPlotArea ? isBeyondPlotAreaY && xanchor === \"left\" ? gs.l + gs.w : hw : isRightOfPlotArea ? isBeyondPlotAreaY && xanchor === \"right\" ? gs.r + gs.w : hw : gs.w,\n 2 * textGap\n );\n var maxItemWidth = 0;\n var combinedItemWidth = 0;\n traces.each(function(d) {\n var w = getTraceWidth(d, legendObj, textGap);\n maxItemWidth = Math.max(maxItemWidth, w);\n combinedItemWidth += w;\n });\n toggleRectWidth = null;\n var maxRowWidth = 0;\n if (isGrouped) {\n var maxGroupHeightInRow = 0;\n var groupOffsetX = 0;\n var groupOffsetY = 0;\n groups.each(function() {\n var maxWidthInGroup = 0;\n var offsetY2 = 0;\n d3.select(this).selectAll(\"g.traces\").each(function(d) {\n var w = getTraceWidth(d, legendObj, textGap);\n var h = d[0].height;\n Drawing.setTranslate(\n this,\n titleSize[0],\n titleSize[1] + bw + itemGap + h / 2 + offsetY2\n );\n offsetY2 += h;\n maxWidthInGroup = Math.max(maxWidthInGroup, w);\n legendGroupWidths[d[0].trace.legendgroup] = maxWidthInGroup;\n });\n var next = maxWidthInGroup + itemGap;\n if (\n // not on the first column already\n groupOffsetX > 0 && // goes beyound limit\n next + bw + groupOffsetX > legendObj._maxWidth\n ) {\n maxRowWidth = Math.max(maxRowWidth, groupOffsetX);\n groupOffsetX = 0;\n groupOffsetY += maxGroupHeightInRow + traceGroupGap;\n maxGroupHeightInRow = offsetY2;\n } else {\n maxGroupHeightInRow = Math.max(maxGroupHeightInRow, offsetY2);\n }\n Drawing.setTranslate(this, groupOffsetX, groupOffsetY);\n groupOffsetX += next;\n });\n legendObj._width = Math.max(maxRowWidth, groupOffsetX) + bw;\n legendObj._height = groupOffsetY + maxGroupHeightInRow + endPad;\n } else {\n var nTraces = traces.size();\n var oneRowLegend = combinedItemWidth + bw2 + (nTraces - 1) * itemGap < legendObj._maxWidth;\n var maxItemHeightInRow = 0;\n var offsetX = 0;\n var offsetY = 0;\n var rowWidth = 0;\n traces.each(function(d) {\n var h = d[0].height;\n var w = getTraceWidth(d, legendObj, textGap, isGrouped);\n var next = oneRowLegend ? w : maxItemWidth;\n if (!isFraction) {\n next += itemGap;\n }\n if (next + bw + offsetX - itemGap >= legendObj._maxWidth) {\n maxRowWidth = Math.max(maxRowWidth, rowWidth);\n offsetX = 0;\n offsetY += maxItemHeightInRow;\n legendObj._height += maxItemHeightInRow;\n maxItemHeightInRow = 0;\n }\n Drawing.setTranslate(\n this,\n titleSize[0] + bw + offsetX,\n titleSize[1] + bw + offsetY + h / 2 + itemGap\n );\n rowWidth = offsetX + w + itemGap;\n offsetX += next;\n maxItemHeightInRow = Math.max(maxItemHeightInRow, h);\n });\n if (oneRowLegend) {\n legendObj._width = offsetX + bw2;\n legendObj._height = maxItemHeightInRow + endPad;\n } else {\n legendObj._width = Math.max(maxRowWidth, rowWidth) + bw2;\n legendObj._height += maxItemHeightInRow + endPad;\n }\n }\n }\n legendObj._width = Math.ceil(\n Math.max(\n legendObj._width + titleSize[0],\n legendObj._titleWidth + 2 * (bw + constants.titlePad)\n )\n );\n legendObj._height = Math.ceil(\n Math.max(\n legendObj._height + titleSize[1],\n legendObj._titleHeight + 2 * (bw + constants.itemGap)\n )\n );\n legendObj._effHeight = Math.min(legendObj._height, legendObj._maxHeight);\n var edits = gd._context.edits;\n var isEditable = edits.legendText || edits.legendPosition;\n traces.each(function(d) {\n var traceToggle = d3.select(this).select(\".\" + legendId + \"toggle\");\n var h = d[0].height;\n var legendgroup = d[0].trace.legendgroup;\n var traceWidth = getTraceWidth(d, legendObj, textGap);\n if (isGrouped && legendgroup !== \"\") {\n traceWidth = legendGroupWidths[legendgroup];\n }\n var w = isEditable ? textGap : toggleRectWidth || traceWidth;\n if (!isVertical && !isFraction) {\n w += itemGap / 2;\n }\n Drawing.setRect(traceToggle, 0, -h / 2, w, h);\n });\n }\n function expandMargin(gd, legendId, lx, ly) {\n var fullLayout = gd._fullLayout;\n var legendObj = fullLayout[legendId];\n var xanchor = getXanchor(legendObj);\n var yanchor = getYanchor(legendObj);\n var isPaperX = legendObj.xref === \"paper\";\n var isPaperY = legendObj.yref === \"paper\";\n gd._fullLayout._reservedMargin[legendId] = {};\n var sideY = legendObj.y < 0.5 ? \"b\" : \"t\";\n var sideX = legendObj.x < 0.5 ? \"l\" : \"r\";\n var possibleReservedMargins = {\n r: fullLayout.width - lx,\n l: lx + legendObj._width,\n b: fullLayout.height - ly,\n t: ly + legendObj._effHeight\n };\n if (isPaperX && isPaperY) {\n return Plots.autoMargin(gd, legendId, {\n x: legendObj.x,\n y: legendObj.y,\n l: legendObj._width * FROM_TL[xanchor],\n r: legendObj._width * FROM_BR[xanchor],\n b: legendObj._effHeight * FROM_BR[yanchor],\n t: legendObj._effHeight * FROM_TL[yanchor]\n });\n } else if (isPaperX) {\n gd._fullLayout._reservedMargin[legendId][sideY] = possibleReservedMargins[sideY];\n } else if (isPaperY) {\n gd._fullLayout._reservedMargin[legendId][sideX] = possibleReservedMargins[sideX];\n } else {\n if (legendObj.orientation === \"v\") {\n gd._fullLayout._reservedMargin[legendId][sideX] = possibleReservedMargins[sideX];\n } else {\n gd._fullLayout._reservedMargin[legendId][sideY] = possibleReservedMargins[sideY];\n }\n }\n }\n function getXanchor(legendObj) {\n return Lib.isRightAnchor(legendObj) ? \"right\" : Lib.isCenterAnchor(legendObj) ? \"center\" : \"left\";\n }\n function getYanchor(legendObj) {\n return Lib.isBottomAnchor(legendObj) ? \"bottom\" : Lib.isMiddleAnchor(legendObj) ? \"middle\" : \"top\";\n }\n function getId(legendObj) {\n return legendObj._id || \"legend\";\n }\n }\n });\n\n // src/components/fx/hover.js\n var require_hover = __commonJS({\n \"src/components/fx/hover.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var Lib = require_lib();\n var pushUnique = Lib.pushUnique;\n var strTranslate = Lib.strTranslate;\n var strRotate = Lib.strRotate;\n var Events = require_events2();\n var svgTextUtils = require_svg_text_utils();\n var overrideCursor = require_override_cursor();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var dragElement = require_dragelement();\n var Axes = require_axes();\n var zindexSeparator = require_constants2().zindexSeparator;\n var Registry = require_registry();\n var helpers = require_helpers2();\n var constants = require_constants();\n var legendSupplyDefaults = require_defaults3();\n var legendDraw = require_draw();\n var YANGLE = constants.YANGLE;\n var YA_RADIANS = Math.PI * YANGLE / 180;\n var YFACTOR = 1 / Math.sin(YA_RADIANS);\n var YSHIFTX = Math.cos(YA_RADIANS);\n var YSHIFTY = Math.sin(YA_RADIANS);\n var HOVERARROWSIZE = constants.HOVERARROWSIZE;\n var HOVERTEXTPAD = constants.HOVERTEXTPAD;\n var multipleHoverPoints = {\n box: true,\n ohlc: true,\n violin: true,\n candlestick: true\n };\n var cartesianScatterPoints = {\n scatter: true,\n scattergl: true,\n splom: true\n };\n function distanceSort(a, b) {\n return a.distance - b.distance;\n }\n exports.hover = function hover(gd, evt, subplot, noHoverEvent) {\n gd = Lib.getGraphDiv(gd);\n var eventTarget = evt.target;\n Lib.throttle(\n gd._fullLayout._uid + constants.HOVERID,\n constants.HOVERMINTIME,\n function() {\n _hover(gd, evt, subplot, noHoverEvent, eventTarget);\n }\n );\n };\n exports.loneHover = function loneHover(hoverItems, opts) {\n var multiHover = true;\n if (!Array.isArray(hoverItems)) {\n multiHover = false;\n hoverItems = [hoverItems];\n }\n var gd = opts.gd;\n var gTop = getTopOffset(gd);\n var gLeft = getLeftOffset(gd);\n var pointsData = hoverItems.map(function(hoverItem) {\n var _x0 = hoverItem._x0 || hoverItem.x0 || hoverItem.x || 0;\n var _x1 = hoverItem._x1 || hoverItem.x1 || hoverItem.x || 0;\n var _y0 = hoverItem._y0 || hoverItem.y0 || hoverItem.y || 0;\n var _y1 = hoverItem._y1 || hoverItem.y1 || hoverItem.y || 0;\n var eventData = hoverItem.eventData;\n if (eventData) {\n var x0 = Math.min(_x0, _x1);\n var x1 = Math.max(_x0, _x1);\n var y0 = Math.min(_y0, _y1);\n var y1 = Math.max(_y0, _y1);\n var trace = hoverItem.trace;\n if (Registry.traceIs(trace, \"gl3d\")) {\n var container = gd._fullLayout[trace.scene]._scene.container;\n var dx = container.offsetLeft;\n var dy = container.offsetTop;\n x0 += dx;\n x1 += dx;\n y0 += dy;\n y1 += dy;\n }\n eventData.bbox = {\n x0: x0 + gLeft,\n x1: x1 + gLeft,\n y0: y0 + gTop,\n y1: y1 + gTop\n };\n if (opts.inOut_bbox) {\n opts.inOut_bbox.push(eventData.bbox);\n }\n } else {\n eventData = false;\n }\n return {\n color: hoverItem.color || Color2.defaultLine,\n x0: hoverItem.x0 || hoverItem.x || 0,\n x1: hoverItem.x1 || hoverItem.x || 0,\n y0: hoverItem.y0 || hoverItem.y || 0,\n y1: hoverItem.y1 || hoverItem.y || 0,\n xLabel: hoverItem.xLabel,\n yLabel: hoverItem.yLabel,\n zLabel: hoverItem.zLabel,\n text: hoverItem.text,\n name: hoverItem.name,\n idealAlign: hoverItem.idealAlign,\n // optional extra bits of styling\n borderColor: hoverItem.borderColor,\n fontFamily: hoverItem.fontFamily,\n fontSize: hoverItem.fontSize,\n fontColor: hoverItem.fontColor,\n fontWeight: hoverItem.fontWeight,\n fontStyle: hoverItem.fontStyle,\n fontVariant: hoverItem.fontVariant,\n nameLength: hoverItem.nameLength,\n textAlign: hoverItem.textAlign,\n // filler to make createHoverText happy\n trace: hoverItem.trace || {\n index: 0,\n hoverinfo: \"\"\n },\n xa: { _offset: 0 },\n ya: { _offset: 0 },\n index: 0,\n hovertemplate: hoverItem.hovertemplate || false,\n hovertemplateLabels: hoverItem.hovertemplateLabels || false,\n eventData\n };\n });\n var rotateLabels = false;\n var hoverText = createHoverText(pointsData, {\n gd,\n hovermode: \"closest\",\n rotateLabels,\n bgColor: opts.bgColor || Color2.background,\n container: d3.select(opts.container),\n outerContainer: opts.outerContainer || opts.container\n });\n var hoverLabel = hoverText.hoverLabels;\n var tooltipSpacing = 5;\n var lastBottomY = 0;\n var anchor = 0;\n hoverLabel.sort(function(a, b) {\n return a.y0 - b.y0;\n }).each(function(d, i) {\n var topY = d.y0 - d.by / 2;\n if (topY - tooltipSpacing < lastBottomY) {\n d.offset = lastBottomY - topY + tooltipSpacing;\n } else {\n d.offset = 0;\n }\n lastBottomY = topY + d.by + d.offset;\n if (i === opts.anchorIndex || 0) anchor = d.offset;\n }).each(function(d) {\n d.offset -= anchor;\n });\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n alignHoverText(hoverLabel, rotateLabels, scaleX, scaleY);\n return multiHover ? hoverLabel : hoverLabel.node();\n };\n function _hover(gd, evt, subplot, noHoverEvent, eventTarget) {\n if (!subplot) subplot = \"xy\";\n if (typeof subplot === \"string\") {\n subplot = subplot.split(zindexSeparator)[0];\n }\n var subplots = Array.isArray(subplot) ? subplot : [subplot];\n var spId;\n var fullLayout = gd._fullLayout;\n var hoversubplots = fullLayout.hoversubplots;\n var plots = fullLayout._plots || [];\n var plotinfo = plots[subplot];\n var hasCartesian = fullLayout._has(\"cartesian\");\n var hovermode = evt.hovermode || fullLayout.hovermode;\n var hovermodeHasX = (hovermode || \"\").charAt(0) === \"x\";\n var hovermodeHasY = (hovermode || \"\").charAt(0) === \"y\";\n var firstXaxis;\n var firstYaxis;\n if (hasCartesian && (hovermodeHasX || hovermodeHasY) && hoversubplots === \"axis\") {\n var subplotsLength = subplots.length;\n for (var p = 0; p < subplotsLength; p++) {\n spId = subplots[p];\n if (plots[spId]) {\n firstXaxis = Axes.getFromId(gd, spId, \"x\");\n firstYaxis = Axes.getFromId(gd, spId, \"y\");\n var subplotsWith = (hovermodeHasX ? firstXaxis : firstYaxis)._subplotsWith;\n if (subplotsWith && subplotsWith.length) {\n for (var q = 0; q < subplotsWith.length; q++) {\n pushUnique(subplots, subplotsWith[q]);\n }\n }\n }\n }\n }\n if (plotinfo && hoversubplots !== \"single\") {\n var overlayedSubplots = plotinfo.overlays.map(function(pi) {\n return pi.id;\n });\n subplots = subplots.concat(overlayedSubplots);\n }\n var len = subplots.length;\n var xaArray = new Array(len);\n var yaArray = new Array(len);\n var supportsCompare = false;\n for (var i = 0; i < len; i++) {\n spId = subplots[i];\n if (plots[spId]) {\n supportsCompare = true;\n xaArray[i] = plots[spId].xaxis;\n yaArray[i] = plots[spId].yaxis;\n } else if (fullLayout[spId] && fullLayout[spId]._subplot) {\n var _subplot = fullLayout[spId]._subplot;\n xaArray[i] = _subplot.xaxis;\n yaArray[i] = _subplot.yaxis;\n } else {\n Lib.warn(\"Unrecognized subplot: \" + spId);\n return;\n }\n }\n if (hovermode && !supportsCompare) hovermode = \"closest\";\n if ([\"x\", \"y\", \"closest\", \"x unified\", \"y unified\"].indexOf(hovermode) === -1 || !gd.calcdata || gd.querySelector(\".zoombox\") || gd._dragging) {\n return dragElement.unhoverRaw(gd, evt);\n }\n var hoverdistance = fullLayout.hoverdistance;\n if (hoverdistance === -1) hoverdistance = Infinity;\n var spikedistance = fullLayout.spikedistance;\n if (spikedistance === -1) spikedistance = Infinity;\n var hoverData = [];\n var searchData = [];\n var xvalArray, yvalArray;\n var itemnum, curvenum, cd, trace, subplotId, subploti, _mode, xval, yval, pointData, closedataPreviousLength;\n var spikePoints = {\n hLinePoint: null,\n vLinePoint: null\n };\n var hasOneHorizontalTrace = false;\n if (Array.isArray(evt)) {\n hovermode = \"array\";\n for (itemnum = 0; itemnum < evt.length; itemnum++) {\n cd = gd.calcdata[evt[itemnum].curveNumber || 0];\n if (cd) {\n trace = cd[0].trace;\n if (cd[0].trace.hoverinfo !== \"skip\") {\n searchData.push(cd);\n if (trace.orientation === \"h\") {\n hasOneHorizontalTrace = true;\n }\n }\n }\n }\n } else {\n var zorderedCalcdata = gd.calcdata.slice();\n zorderedCalcdata.sort(function(a, b) {\n var aZorder = a[0].trace.zorder || 0;\n var bZorder = b[0].trace.zorder || 0;\n return aZorder - bZorder;\n });\n for (curvenum = 0; curvenum < zorderedCalcdata.length; curvenum++) {\n cd = zorderedCalcdata[curvenum];\n trace = cd[0].trace;\n if (trace.hoverinfo !== \"skip\" && helpers.isTraceInSubplots(trace, subplots)) {\n searchData.push(cd);\n if (trace.orientation === \"h\") {\n hasOneHorizontalTrace = true;\n }\n }\n }\n var hasUserCalledHover = !eventTarget;\n var xpx, ypx;\n if (hasUserCalledHover) {\n if (\"xpx\" in evt) xpx = evt.xpx;\n else xpx = xaArray[0]._length / 2;\n if (\"ypx\" in evt) ypx = evt.ypx;\n else ypx = yaArray[0]._length / 2;\n } else {\n if (Events.triggerHandler(gd, \"plotly_beforehover\", evt) === false) {\n return;\n }\n var dbb = eventTarget.getBoundingClientRect();\n xpx = evt.clientX - dbb.left;\n ypx = evt.clientY - dbb.top;\n fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(fullLayout._invTransform)(xpx, ypx);\n xpx = transformedCoords[0];\n ypx = transformedCoords[1];\n if (xpx < 0 || xpx > xaArray[0]._length || ypx < 0 || ypx > yaArray[0]._length) {\n return dragElement.unhoverRaw(gd, evt);\n }\n }\n evt.pointerX = xpx + xaArray[0]._offset;\n evt.pointerY = ypx + yaArray[0]._offset;\n if (\"xval\" in evt) xvalArray = helpers.flat(subplots, evt.xval);\n else xvalArray = helpers.p2c(xaArray, xpx);\n if (\"yval\" in evt) yvalArray = helpers.flat(subplots, evt.yval);\n else yvalArray = helpers.p2c(yaArray, ypx);\n if (!isNumeric(xvalArray[0]) || !isNumeric(yvalArray[0])) {\n Lib.warn(\"Fx.hover failed\", evt, gd);\n return dragElement.unhoverRaw(gd, evt);\n }\n }\n var distance = Infinity;\n function findHoverPoints(customXVal, customYVal) {\n for (curvenum = 0; curvenum < searchData.length; curvenum++) {\n cd = searchData[curvenum];\n if (!cd || !cd[0] || !cd[0].trace) continue;\n trace = cd[0].trace;\n if (trace.visible !== true || trace._length === 0) continue;\n if ([\"carpet\", \"contourcarpet\"].indexOf(trace._module.name) !== -1) continue;\n _mode = hovermode;\n if (helpers.isUnifiedHover(_mode)) {\n _mode = _mode.charAt(0);\n }\n if (trace.type === \"splom\") {\n subploti = 0;\n subplotId = subplots[subploti];\n } else {\n subplotId = helpers.getSubplot(trace);\n subploti = subplots.indexOf(subplotId);\n }\n pointData = {\n // trace properties\n cd,\n trace,\n xa: xaArray[subploti],\n ya: yaArray[subploti],\n // max distances for hover and spikes - for points that want to show but do not\n // want to override other points, set distance/spikeDistance equal to max*Distance\n // and it will not get filtered out but it will be guaranteed to have a greater\n // distance than any point that calculated a real distance.\n maxHoverDistance: hoverdistance,\n maxSpikeDistance: spikedistance,\n // point properties - override all of these\n index: false,\n // point index in trace - only used by plotly.js hoverdata consumers\n distance: Math.min(distance, hoverdistance),\n // pixel distance or pseudo-distance\n // distance/pseudo-distance for spikes. This distance should always be calculated\n // as if in \"closest\" mode, and should only be set if this point should\n // generate a spike.\n spikeDistance: Infinity,\n // in some cases the spikes have different positioning from the hover label\n // they don't need x0/x1, just one position\n xSpike: void 0,\n ySpike: void 0,\n // where and how to display the hover label\n color: Color2.defaultLine,\n // trace color\n name: trace.name,\n x0: void 0,\n x1: void 0,\n y0: void 0,\n y1: void 0,\n xLabelVal: void 0,\n yLabelVal: void 0,\n zLabelVal: void 0,\n text: void 0\n };\n if (fullLayout[subplotId]) {\n pointData.subplot = fullLayout[subplotId]._subplot;\n }\n if (fullLayout._splomScenes && fullLayout._splomScenes[trace.uid]) {\n pointData.scene = fullLayout._splomScenes[trace.uid];\n }\n if (_mode === \"array\") {\n var selection = evt[curvenum];\n if (\"pointNumber\" in selection) {\n pointData.index = selection.pointNumber;\n _mode = \"closest\";\n } else {\n _mode = \"\";\n if (\"xval\" in selection) {\n xval = selection.xval;\n _mode = \"x\";\n }\n if (\"yval\" in selection) {\n yval = selection.yval;\n _mode = _mode ? \"closest\" : \"y\";\n }\n }\n } else if (customXVal !== void 0 && customYVal !== void 0) {\n xval = customXVal;\n yval = customYVal;\n } else {\n xval = xvalArray[subploti];\n yval = yvalArray[subploti];\n }\n closedataPreviousLength = hoverData.length;\n if (hoverdistance !== 0) {\n if (trace._module && trace._module.hoverPoints) {\n var newPoints = trace._module.hoverPoints(pointData, xval, yval, _mode, {\n finiteRange: true,\n hoverLayer: fullLayout._hoverlayer,\n // options for splom when hovering on same axis\n hoversubplots,\n gd\n });\n if (newPoints) {\n var newPoint;\n for (var newPointNum = 0; newPointNum < newPoints.length; newPointNum++) {\n newPoint = newPoints[newPointNum];\n if (isNumeric(newPoint.x0) && isNumeric(newPoint.y0)) {\n hoverData.push(cleanPoint(newPoint, hovermode));\n }\n }\n }\n } else {\n Lib.log(\"Unrecognized trace type in hover:\", trace);\n }\n }\n if (hovermode === \"closest\" && hoverData.length > closedataPreviousLength) {\n hoverData.splice(0, closedataPreviousLength);\n distance = hoverData[0].distance;\n }\n if (hasCartesian && spikedistance !== 0) {\n if (hoverData.length === 0) {\n pointData.distance = spikedistance;\n pointData.index = false;\n var closestPoints = trace._module.hoverPoints(pointData, xval, yval, \"closest\", {\n hoverLayer: fullLayout._hoverlayer\n });\n if (closestPoints) {\n closestPoints = closestPoints.filter(function(point) {\n return point.spikeDistance <= spikedistance;\n });\n }\n if (closestPoints && closestPoints.length) {\n var tmpPoint;\n var closestVPoints = closestPoints.filter(function(point) {\n return point.xa.showspikes && point.xa.spikesnap !== \"hovered data\";\n });\n if (closestVPoints.length) {\n var closestVPt = closestVPoints[0];\n if (isNumeric(closestVPt.x0) && isNumeric(closestVPt.y0)) {\n tmpPoint = fillSpikePoint(closestVPt);\n if (!spikePoints.vLinePoint || spikePoints.vLinePoint.spikeDistance > tmpPoint.spikeDistance) {\n spikePoints.vLinePoint = tmpPoint;\n }\n }\n }\n var closestHPoints = closestPoints.filter(function(point) {\n return point.ya.showspikes && point.ya.spikesnap !== \"hovered data\";\n });\n if (closestHPoints.length) {\n var closestHPt = closestHPoints[0];\n if (isNumeric(closestHPt.x0) && isNumeric(closestHPt.y0)) {\n tmpPoint = fillSpikePoint(closestHPt);\n if (!spikePoints.hLinePoint || spikePoints.hLinePoint.spikeDistance > tmpPoint.spikeDistance) {\n spikePoints.hLinePoint = tmpPoint;\n }\n }\n }\n }\n }\n }\n }\n }\n findHoverPoints();\n function selectClosestPoint(pointsData, spikedistance2, spikeOnWinning2) {\n var resultPoint = null;\n var minDistance = Infinity;\n var thisSpikeDistance;\n for (var i2 = 0; i2 < pointsData.length; i2++) {\n if (firstXaxis && firstXaxis._id !== pointsData[i2].xa._id) continue;\n if (firstYaxis && firstYaxis._id !== pointsData[i2].ya._id) continue;\n thisSpikeDistance = pointsData[i2].spikeDistance;\n if (spikeOnWinning2 && i2 === 0) thisSpikeDistance = -Infinity;\n if (thisSpikeDistance <= minDistance && thisSpikeDistance <= spikedistance2) {\n resultPoint = pointsData[i2];\n minDistance = thisSpikeDistance;\n }\n }\n return resultPoint;\n }\n function fillSpikePoint(point) {\n if (!point) return null;\n return {\n xa: point.xa,\n ya: point.ya,\n x: point.xSpike !== void 0 ? point.xSpike : (point.x0 + point.x1) / 2,\n y: point.ySpike !== void 0 ? point.ySpike : (point.y0 + point.y1) / 2,\n distance: point.distance,\n spikeDistance: point.spikeDistance,\n curveNumber: point.trace.index,\n color: point.color,\n pointNumber: point.index\n };\n }\n var spikelineOpts = {\n fullLayout,\n container: fullLayout._hoverlayer,\n event: evt\n };\n var oldspikepoints = gd._spikepoints;\n var newspikepoints = {\n vLinePoint: spikePoints.vLinePoint,\n hLinePoint: spikePoints.hLinePoint\n };\n gd._spikepoints = newspikepoints;\n var sortHoverData = function() {\n var hoverDataInSubplot = hoverData.filter(function(a) {\n return firstXaxis && firstXaxis._id === a.xa._id && (firstYaxis && firstYaxis._id === a.ya._id);\n });\n var hoverDataOutSubplot = hoverData.filter(function(a) {\n return !(firstXaxis && firstXaxis._id === a.xa._id && (firstYaxis && firstYaxis._id === a.ya._id));\n });\n hoverDataInSubplot.sort(distanceSort);\n hoverDataOutSubplot.sort(distanceSort);\n hoverData = hoverDataInSubplot.concat(hoverDataOutSubplot);\n hoverData = orderRangePoints(hoverData, hovermode);\n };\n sortHoverData();\n var axLetter = hovermode.charAt(0);\n var spikeOnWinning = (axLetter === \"x\" || axLetter === \"y\") && hoverData[0] && cartesianScatterPoints[hoverData[0].trace.type];\n if (hasCartesian && spikedistance !== 0) {\n if (hoverData.length !== 0) {\n var tmpHPointData = hoverData.filter(function(point) {\n return point.ya.showspikes;\n });\n var tmpHPoint = selectClosestPoint(tmpHPointData, spikedistance, spikeOnWinning);\n spikePoints.hLinePoint = fillSpikePoint(tmpHPoint);\n var tmpVPointData = hoverData.filter(function(point) {\n return point.xa.showspikes;\n });\n var tmpVPoint = selectClosestPoint(tmpVPointData, spikedistance, spikeOnWinning);\n spikePoints.vLinePoint = fillSpikePoint(tmpVPoint);\n }\n }\n if (hoverData.length === 0) {\n var result = dragElement.unhoverRaw(gd, evt);\n if (hasCartesian && (spikePoints.hLinePoint !== null || spikePoints.vLinePoint !== null)) {\n if (spikesChanged(oldspikepoints)) {\n createSpikelines(gd, spikePoints, spikelineOpts);\n }\n }\n return result;\n }\n if (hasCartesian) {\n if (spikesChanged(oldspikepoints)) {\n createSpikelines(gd, spikePoints, spikelineOpts);\n }\n }\n if (helpers.isXYhover(_mode) && hoverData[0].length !== 0 && hoverData[0].trace.type !== \"splom\") {\n var winningPoint = hoverData[0];\n if (multipleHoverPoints[winningPoint.trace.type]) {\n hoverData = hoverData.filter(function(d) {\n return d.trace.index === winningPoint.trace.index;\n });\n } else {\n hoverData = [winningPoint];\n }\n var initLen = hoverData.length;\n var winX = getCoord(\"x\", winningPoint, fullLayout);\n var winY = getCoord(\"y\", winningPoint, fullLayout);\n findHoverPoints(winX, winY);\n var finalPoints = [];\n var seen = {};\n var id = 0;\n var insert = function(newHd) {\n var key = multipleHoverPoints[newHd.trace.type] ? hoverDataKey(newHd) : newHd.trace.index;\n if (!seen[key]) {\n id++;\n seen[key] = id;\n finalPoints.push(newHd);\n } else {\n var oldId = seen[key] - 1;\n var oldHd = finalPoints[oldId];\n if (oldId > 0 && Math.abs(newHd.distance) < Math.abs(oldHd.distance)) {\n finalPoints[oldId] = newHd;\n }\n }\n };\n var k;\n for (k = 0; k < initLen; k++) {\n insert(hoverData[k]);\n }\n for (k = hoverData.length - 1; k > initLen - 1; k--) {\n insert(hoverData[k]);\n }\n hoverData = finalPoints;\n sortHoverData();\n }\n var oldhoverdata = gd._hoverdata;\n var newhoverdata = [];\n var gTop = getTopOffset(gd);\n var gLeft = getLeftOffset(gd);\n for (itemnum = 0; itemnum < hoverData.length; itemnum++) {\n var pt = hoverData[itemnum];\n var eventData = helpers.makeEventData(pt, pt.trace, pt.cd);\n if (pt.hovertemplate !== false) {\n var ht = false;\n if (pt.cd[pt.index] && pt.cd[pt.index].ht) {\n ht = pt.cd[pt.index].ht;\n }\n pt.hovertemplate = ht || pt.trace.hovertemplate || false;\n }\n if (pt.xa && pt.ya) {\n var _x0 = pt.x0 + pt.xa._offset;\n var _x1 = pt.x1 + pt.xa._offset;\n var _y0 = pt.y0 + pt.ya._offset;\n var _y1 = pt.y1 + pt.ya._offset;\n var x0 = Math.min(_x0, _x1);\n var x1 = Math.max(_x0, _x1);\n var y0 = Math.min(_y0, _y1);\n var y1 = Math.max(_y0, _y1);\n eventData.bbox = {\n x0: x0 + gLeft,\n x1: x1 + gLeft,\n y0: y0 + gTop,\n y1: y1 + gTop\n };\n }\n pt.eventData = [eventData];\n newhoverdata.push(eventData);\n }\n gd._hoverdata = newhoverdata;\n var rotateLabels = hovermode === \"y\" && (searchData.length > 1 || hoverData.length > 1) || hovermode === \"closest\" && hasOneHorizontalTrace && hoverData.length > 1;\n var bgColor = Color2.combine(\n fullLayout.plot_bgcolor || Color2.background,\n fullLayout.paper_bgcolor\n );\n var hoverText = createHoverText(hoverData, {\n gd,\n hovermode,\n rotateLabels,\n bgColor,\n container: fullLayout._hoverlayer,\n outerContainer: fullLayout._paper.node(),\n commonLabelOpts: fullLayout.hoverlabel,\n hoverdistance: fullLayout.hoverdistance\n });\n var hoverLabels = hoverText.hoverLabels;\n if (!helpers.isUnifiedHover(hovermode)) {\n hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, hoverText.commonLabelBoundingBox);\n alignHoverText(hoverLabels, rotateLabels, fullLayout._invScaleX, fullLayout._invScaleY);\n }\n if (eventTarget && eventTarget.tagName) {\n var hasClickToShow = Registry.getComponentMethod(\"annotations\", \"hasClickToShow\")(gd, newhoverdata);\n overrideCursor(d3.select(eventTarget), hasClickToShow ? \"pointer\" : \"\");\n }\n if (!eventTarget || noHoverEvent || !hoverChanged(gd, evt, oldhoverdata)) return;\n if (oldhoverdata) {\n gd.emit(\"plotly_unhover\", {\n event: evt,\n points: oldhoverdata\n });\n }\n gd.emit(\"plotly_hover\", {\n event: evt,\n points: gd._hoverdata,\n xaxes: xaArray,\n yaxes: yaArray,\n xvals: xvalArray,\n yvals: yvalArray\n });\n }\n function hoverDataKey(d) {\n return [d.trace.index, d.index, d.x0, d.y0, d.name, d.attr, d.xa ? d.xa._id : \"\", d.ya ? d.ya._id : \"\"].join(\",\");\n }\n var EXTRA_STRING_REGEX = /([\\s\\S]*)<\\/extra>/;\n function createHoverText(hoverData, opts) {\n var gd = opts.gd;\n var fullLayout = gd._fullLayout;\n var hovermode = opts.hovermode;\n var rotateLabels = opts.rotateLabels;\n var bgColor = opts.bgColor;\n var container = opts.container;\n var outerContainer = opts.outerContainer;\n var commonLabelOpts = opts.commonLabelOpts || {};\n if (hoverData.length === 0) return [[]];\n var fontFamily = opts.fontFamily || constants.HOVERFONT;\n var fontSize = opts.fontSize || constants.HOVERFONTSIZE;\n var fontWeight = opts.fontWeight || fullLayout.font.weight;\n var fontStyle = opts.fontStyle || fullLayout.font.style;\n var fontVariant = opts.fontVariant || fullLayout.font.variant;\n var fontTextcase = opts.fontTextcase || fullLayout.font.textcase;\n var fontLineposition = opts.fontLineposition || fullLayout.font.lineposition;\n var fontShadow = opts.fontShadow || fullLayout.font.shadow;\n var c0 = hoverData[0];\n var xa = c0.xa;\n var ya = c0.ya;\n var axLetter = hovermode.charAt(0);\n var axLabel = axLetter + \"Label\";\n var t02 = c0[axLabel];\n if (t02 === void 0 && xa.type === \"multicategory\") {\n for (var q = 0; q < hoverData.length; q++) {\n t02 = hoverData[q][axLabel];\n if (t02 !== void 0) break;\n }\n }\n var outerContainerBB = getBoundingClientRect(gd, outerContainer);\n var outerTop = outerContainerBB.top;\n var outerWidth = outerContainerBB.width;\n var outerHeight = outerContainerBB.height;\n var showCommonLabel = t02 !== void 0 && c0.distance <= opts.hoverdistance && (hovermode === \"x\" || hovermode === \"y\");\n if (showCommonLabel) {\n var allHaveZ = true;\n var i, traceHoverinfo;\n for (i = 0; i < hoverData.length; i++) {\n if (allHaveZ && hoverData[i].zLabel === void 0) allHaveZ = false;\n traceHoverinfo = hoverData[i].hoverinfo || hoverData[i].trace.hoverinfo;\n if (traceHoverinfo) {\n var parts = Array.isArray(traceHoverinfo) ? traceHoverinfo : traceHoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") === -1 && parts.indexOf(hovermode) === -1) {\n showCommonLabel = false;\n break;\n }\n }\n }\n if (allHaveZ) showCommonLabel = false;\n }\n var commonLabel = container.selectAll(\"g.axistext\").data(showCommonLabel ? [0] : []);\n commonLabel.enter().append(\"g\").classed(\"axistext\", true);\n commonLabel.exit().remove();\n var commonLabelRect = {\n minX: 0,\n maxX: 0,\n minY: 0,\n maxY: 0\n };\n commonLabel.each(function() {\n var label = d3.select(this);\n var lpath = Lib.ensureSingle(label, \"path\", \"\", function(s) {\n s.style({ \"stroke-width\": \"1px\" });\n });\n var ltext = Lib.ensureSingle(label, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var commonBgColor = commonLabelOpts.bgcolor || Color2.defaultLine;\n var commonStroke = commonLabelOpts.bordercolor || Color2.contrast(commonBgColor);\n var contrastColor = Color2.contrast(commonBgColor);\n var commonLabelOptsFont = commonLabelOpts.font;\n var commonLabelFont = {\n weight: commonLabelOptsFont.weight || fontWeight,\n style: commonLabelOptsFont.style || fontStyle,\n variant: commonLabelOptsFont.variant || fontVariant,\n textcase: commonLabelOptsFont.textcase || fontTextcase,\n lineposition: commonLabelOptsFont.lineposition || fontLineposition,\n shadow: commonLabelOptsFont.shadow || fontShadow,\n family: commonLabelOptsFont.family || fontFamily,\n size: commonLabelOptsFont.size || fontSize,\n color: commonLabelOptsFont.color || contrastColor\n };\n lpath.style({\n fill: commonBgColor,\n stroke: commonStroke\n });\n ltext.text(t02).call(Drawing.font, commonLabelFont).call(svgTextUtils.positionText, 0, 0).call(svgTextUtils.convertToTspans, gd);\n label.attr(\"transform\", \"\");\n var tbb2 = getBoundingClientRect(gd, ltext.node());\n var lx2, ly2;\n if (hovermode === \"x\") {\n var topsign = xa.side === \"top\" ? \"-\" : \"\";\n ltext.attr(\"text-anchor\", \"middle\").call(svgTextUtils.positionText, 0, xa.side === \"top\" ? outerTop - tbb2.bottom - HOVERARROWSIZE - HOVERTEXTPAD : outerTop - tbb2.top + HOVERARROWSIZE + HOVERTEXTPAD);\n lx2 = xa._offset + (c0.x0 + c0.x1) / 2;\n ly2 = ya._offset + (xa.side === \"top\" ? 0 : ya._length);\n var halfWidth = tbb2.width / 2 + HOVERTEXTPAD;\n var tooltipMidX = lx2;\n if (lx2 < halfWidth) {\n tooltipMidX = halfWidth;\n } else if (lx2 > fullLayout.width - halfWidth) {\n tooltipMidX = fullLayout.width - halfWidth;\n }\n lpath.attr(\"d\", \"M\" + (lx2 - tooltipMidX) + \",0L\" + (lx2 - tooltipMidX + HOVERARROWSIZE) + \",\" + topsign + HOVERARROWSIZE + \"H\" + halfWidth + \"v\" + topsign + (HOVERTEXTPAD * 2 + tbb2.height) + \"H\" + -halfWidth + \"V\" + topsign + HOVERARROWSIZE + \"H\" + (lx2 - tooltipMidX - HOVERARROWSIZE) + \"Z\");\n lx2 = tooltipMidX;\n commonLabelRect.minX = lx2 - halfWidth;\n commonLabelRect.maxX = lx2 + halfWidth;\n if (xa.side === \"top\") {\n commonLabelRect.minY = ly2 - (HOVERTEXTPAD * 2 + tbb2.height);\n commonLabelRect.maxY = ly2 - HOVERTEXTPAD;\n } else {\n commonLabelRect.minY = ly2 + HOVERTEXTPAD;\n commonLabelRect.maxY = ly2 + (HOVERTEXTPAD * 2 + tbb2.height);\n }\n } else {\n var anchor;\n var sgn;\n var leftsign;\n if (ya.side === \"right\") {\n anchor = \"start\";\n sgn = 1;\n leftsign = \"\";\n lx2 = xa._offset + xa._length;\n } else {\n anchor = \"end\";\n sgn = -1;\n leftsign = \"-\";\n lx2 = xa._offset;\n }\n ly2 = ya._offset + (c0.y0 + c0.y1) / 2;\n ltext.attr(\"text-anchor\", anchor);\n lpath.attr(\"d\", \"M0,0L\" + leftsign + HOVERARROWSIZE + \",\" + HOVERARROWSIZE + \"V\" + (HOVERTEXTPAD + tbb2.height / 2) + \"h\" + leftsign + (HOVERTEXTPAD * 2 + tbb2.width) + \"V-\" + (HOVERTEXTPAD + tbb2.height / 2) + \"H\" + leftsign + HOVERARROWSIZE + \"V-\" + HOVERARROWSIZE + \"Z\");\n commonLabelRect.minY = ly2 - (HOVERTEXTPAD + tbb2.height / 2);\n commonLabelRect.maxY = ly2 + (HOVERTEXTPAD + tbb2.height / 2);\n if (ya.side === \"right\") {\n commonLabelRect.minX = lx2 + HOVERARROWSIZE;\n commonLabelRect.maxX = lx2 + HOVERARROWSIZE + (HOVERTEXTPAD * 2 + tbb2.width);\n } else {\n commonLabelRect.minX = lx2 - HOVERARROWSIZE - (HOVERTEXTPAD * 2 + tbb2.width);\n commonLabelRect.maxX = lx2 - HOVERARROWSIZE;\n }\n var halfHeight = tbb2.height / 2;\n var lty = outerTop - tbb2.top - halfHeight;\n var clipId = \"clip\" + fullLayout._uid + \"commonlabel\" + ya._id;\n var clipPath;\n if (lx2 < tbb2.width + 2 * HOVERTEXTPAD + HOVERARROWSIZE) {\n clipPath = \"M-\" + (HOVERARROWSIZE + HOVERTEXTPAD) + \"-\" + halfHeight + \"h-\" + (tbb2.width - HOVERTEXTPAD) + \"V\" + halfHeight + \"h\" + (tbb2.width - HOVERTEXTPAD) + \"Z\";\n var ltx = tbb2.width - lx2 + HOVERTEXTPAD;\n svgTextUtils.positionText(ltext, ltx, lty);\n if (anchor === \"end\") {\n ltext.selectAll(\"tspan\").each(function() {\n var s = d3.select(this);\n var dummy = Drawing.tester.append(\"text\").text(s.text()).call(Drawing.font, commonLabelFont);\n var dummyBB = getBoundingClientRect(gd, dummy.node());\n if (Math.round(dummyBB.width) < Math.round(tbb2.width)) {\n s.attr(\"x\", ltx - dummyBB.width);\n }\n dummy.remove();\n });\n }\n } else {\n svgTextUtils.positionText(ltext, sgn * (HOVERTEXTPAD + HOVERARROWSIZE), lty);\n clipPath = null;\n }\n var textClip = fullLayout._topclips.selectAll(\"#\" + clipId).data(clipPath ? [0] : []);\n textClip.enter().append(\"clipPath\").attr(\"id\", clipId).append(\"path\");\n textClip.exit().remove();\n textClip.select(\"path\").attr(\"d\", clipPath);\n Drawing.setClipUrl(ltext, clipPath ? clipId : null, gd);\n }\n label.attr(\"transform\", strTranslate(lx2, ly2));\n });\n if (helpers.isUnifiedHover(hovermode)) {\n container.selectAll(\"g.hovertext\").remove();\n var groupedHoverData = hoverData.filter(function(data) {\n return data.hoverinfo !== \"none\";\n });\n if (groupedHoverData.length === 0) return [];\n var hoverlabel = fullLayout.hoverlabel;\n var font = hoverlabel.font;\n var mockLayoutIn = {\n showlegend: true,\n legend: {\n title: { text: t02, font },\n font,\n bgcolor: hoverlabel.bgcolor,\n bordercolor: hoverlabel.bordercolor,\n borderwidth: 1,\n tracegroupgap: 7,\n traceorder: fullLayout.legend ? fullLayout.legend.traceorder : void 0,\n orientation: \"v\"\n }\n };\n var mockLayoutOut = {\n font\n };\n legendSupplyDefaults(mockLayoutIn, mockLayoutOut, gd._fullData);\n var mockLegend = mockLayoutOut.legend;\n mockLegend.entries = [];\n for (var j = 0; j < groupedHoverData.length; j++) {\n var pt = groupedHoverData[j];\n if (pt.hoverinfo === \"none\") continue;\n var texts = getHoverLabelText(pt, true, hovermode, fullLayout, t02);\n var text = texts[0];\n var name2 = texts[1];\n pt.name = name2;\n if (name2 !== \"\") {\n pt.text = name2 + \" : \" + text;\n } else {\n pt.text = text;\n }\n var cd = pt.cd[pt.index];\n if (cd) {\n if (cd.mc) pt.mc = cd.mc;\n if (cd.mcc) pt.mc = cd.mcc;\n if (cd.mlc) pt.mlc = cd.mlc;\n if (cd.mlcc) pt.mlc = cd.mlcc;\n if (cd.mlw) pt.mlw = cd.mlw;\n if (cd.mrc) pt.mrc = cd.mrc;\n if (cd.dir) pt.dir = cd.dir;\n }\n pt._distinct = true;\n mockLegend.entries.push([pt]);\n }\n mockLegend.entries.sort(function(a, b) {\n return a[0].trace.index - b[0].trace.index;\n });\n mockLegend.layer = container;\n mockLegend._inHover = true;\n mockLegend._groupTitleFont = hoverlabel.grouptitlefont;\n legendDraw(gd, mockLegend);\n var legendContainer = container.select(\"g.legend\");\n var tbb = getBoundingClientRect(gd, legendContainer.node());\n var tWidth = tbb.width + 2 * HOVERTEXTPAD;\n var tHeight = tbb.height + 2 * HOVERTEXTPAD;\n var winningPoint = groupedHoverData[0];\n var avgX = (winningPoint.x0 + winningPoint.x1) / 2;\n var avgY = (winningPoint.y0 + winningPoint.y1) / 2;\n var pointWon = !(Registry.traceIs(winningPoint.trace, \"bar-like\") || Registry.traceIs(winningPoint.trace, \"box-violin\"));\n var lyBottom, lyTop;\n if (axLetter === \"y\") {\n if (pointWon) {\n lyTop = avgY - HOVERTEXTPAD;\n lyBottom = avgY + HOVERTEXTPAD;\n } else {\n lyTop = Math.min.apply(null, groupedHoverData.map(function(c) {\n return Math.min(c.y0, c.y1);\n }));\n lyBottom = Math.max.apply(null, groupedHoverData.map(function(c) {\n return Math.max(c.y0, c.y1);\n }));\n }\n } else {\n lyTop = lyBottom = Lib.mean(groupedHoverData.map(function(c) {\n return (c.y0 + c.y1) / 2;\n })) - tHeight / 2;\n }\n var lxRight, lxLeft;\n if (axLetter === \"x\") {\n if (pointWon) {\n lxRight = avgX + HOVERTEXTPAD;\n lxLeft = avgX - HOVERTEXTPAD;\n } else {\n lxRight = Math.max.apply(null, groupedHoverData.map(function(c) {\n return Math.max(c.x0, c.x1);\n }));\n lxLeft = Math.min.apply(null, groupedHoverData.map(function(c) {\n return Math.min(c.x0, c.x1);\n }));\n }\n } else {\n lxRight = lxLeft = Lib.mean(groupedHoverData.map(function(c) {\n return (c.x0 + c.x1) / 2;\n })) - tWidth / 2;\n }\n var xOffset = xa._offset;\n var yOffset = ya._offset;\n lyBottom += yOffset;\n lxRight += xOffset;\n lxLeft += xOffset - tWidth;\n lyTop += yOffset - tHeight;\n var lx, ly;\n if (lxRight + tWidth < outerWidth && lxRight >= 0) {\n lx = lxRight;\n } else if (lxLeft + tWidth < outerWidth && lxLeft >= 0) {\n lx = lxLeft;\n } else if (xOffset + tWidth < outerWidth) {\n lx = xOffset;\n } else {\n if (lxRight - avgX < avgX - lxLeft + tWidth) {\n lx = outerWidth - tWidth;\n } else {\n lx = 0;\n }\n }\n lx += HOVERTEXTPAD;\n if (lyBottom + tHeight < outerHeight && lyBottom >= 0) {\n ly = lyBottom;\n } else if (lyTop + tHeight < outerHeight && lyTop >= 0) {\n ly = lyTop;\n } else if (yOffset + tHeight < outerHeight) {\n ly = yOffset;\n } else {\n if (lyBottom - avgY < avgY - lyTop + tHeight) {\n ly = outerHeight - tHeight;\n } else {\n ly = 0;\n }\n }\n ly += HOVERTEXTPAD;\n legendContainer.attr(\"transform\", strTranslate(lx - 1, ly - 1));\n return legendContainer;\n }\n var hoverLabels = container.selectAll(\"g.hovertext\").data(hoverData, function(d) {\n return hoverDataKey(d);\n });\n hoverLabels.enter().append(\"g\").classed(\"hovertext\", true).each(function() {\n var g = d3.select(this);\n g.append(\"rect\").call(Color2.fill, Color2.addOpacity(bgColor, 0.8));\n g.append(\"text\").classed(\"name\", true);\n g.append(\"path\").style(\"stroke-width\", \"1px\");\n g.append(\"text\").classed(\"nums\", true).call(Drawing.font, {\n weight: fontWeight,\n style: fontStyle,\n variant: fontVariant,\n textcase: fontTextcase,\n lineposition: fontLineposition,\n shadow: fontShadow,\n family: fontFamily,\n size: fontSize\n });\n });\n hoverLabels.exit().remove();\n hoverLabels.each(function(d) {\n var g = d3.select(this).attr(\"transform\", \"\");\n var dColor = d.color;\n if (Array.isArray(dColor)) {\n dColor = dColor[d.eventData[0].pointNumber];\n }\n var color0 = d.bgcolor || dColor;\n var numsColor = Color2.combine(\n Color2.opacity(color0) ? color0 : Color2.defaultLine,\n bgColor\n );\n var nameColor = Color2.combine(\n Color2.opacity(dColor) ? dColor : Color2.defaultLine,\n bgColor\n );\n var contrastColor = d.borderColor || Color2.contrast(numsColor);\n var texts2 = getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t02, g);\n var text2 = texts2[0];\n var name3 = texts2[1];\n var tx = g.select(\"text.nums\").call(Drawing.font, {\n family: d.fontFamily || fontFamily,\n size: d.fontSize || fontSize,\n color: d.fontColor || contrastColor,\n weight: d.fontWeight || fontWeight,\n style: d.fontStyle || fontStyle,\n variant: d.fontVariant || fontVariant,\n textcase: d.fontTextcase || fontTextcase,\n lineposition: d.fontLineposition || fontLineposition,\n shadow: d.fontShadow || fontShadow\n }).text(text2).attr(\"data-notex\", 1).call(svgTextUtils.positionText, 0, 0).call(svgTextUtils.convertToTspans, gd);\n var tx2 = g.select(\"text.name\");\n var tx2width = 0;\n var tx2height = 0;\n if (name3 && name3 !== text2) {\n tx2.call(Drawing.font, {\n family: d.fontFamily || fontFamily,\n size: d.fontSize || fontSize,\n color: nameColor,\n weight: d.fontWeight || fontWeight,\n style: d.fontStyle || fontStyle,\n variant: d.fontVariant || fontVariant,\n textcase: d.fontTextcase || fontTextcase,\n lineposition: d.fontLineposition || fontLineposition,\n shadow: d.fontShadow || fontShadow\n }).text(name3).attr(\"data-notex\", 1).call(svgTextUtils.positionText, 0, 0).call(svgTextUtils.convertToTspans, gd);\n var t2bb = getBoundingClientRect(gd, tx2.node());\n tx2width = t2bb.width + 2 * HOVERTEXTPAD;\n tx2height = t2bb.height + 2 * HOVERTEXTPAD;\n } else {\n tx2.remove();\n g.select(\"rect\").remove();\n }\n g.select(\"path\").style({\n fill: numsColor,\n stroke: contrastColor\n });\n var htx = d.xa._offset + (d.x0 + d.x1) / 2;\n var hty = d.ya._offset + (d.y0 + d.y1) / 2;\n var dx = Math.abs(d.x1 - d.x0);\n var dy = Math.abs(d.y1 - d.y0);\n var tbb2 = getBoundingClientRect(gd, tx.node());\n var tbbWidth = tbb2.width / fullLayout._invScaleX;\n var tbbHeight = tbb2.height / fullLayout._invScaleY;\n d.ty0 = (outerTop - tbb2.top) / fullLayout._invScaleY;\n d.bx = tbbWidth + 2 * HOVERTEXTPAD;\n d.by = Math.max(tbbHeight + 2 * HOVERTEXTPAD, tx2height);\n d.anchor = \"start\";\n d.txwidth = tbbWidth;\n d.tx2width = tx2width;\n d.offset = 0;\n var txTotalWidth = (tbbWidth + HOVERARROWSIZE + HOVERTEXTPAD + tx2width) * fullLayout._invScaleX;\n var anchorStartOK, anchorEndOK;\n if (rotateLabels) {\n d.pos = htx;\n anchorStartOK = hty + dy / 2 + txTotalWidth <= outerHeight;\n anchorEndOK = hty - dy / 2 - txTotalWidth >= 0;\n if ((d.idealAlign === \"top\" || !anchorStartOK) && anchorEndOK) {\n hty -= dy / 2;\n d.anchor = \"end\";\n } else if (anchorStartOK) {\n hty += dy / 2;\n d.anchor = \"start\";\n } else {\n d.anchor = \"middle\";\n }\n d.crossPos = hty;\n } else {\n d.pos = hty;\n anchorStartOK = htx + dx / 2 + txTotalWidth <= outerWidth;\n anchorEndOK = htx - dx / 2 - txTotalWidth >= 0;\n if ((d.idealAlign === \"left\" || !anchorStartOK) && anchorEndOK) {\n htx -= dx / 2;\n d.anchor = \"end\";\n } else if (anchorStartOK) {\n htx += dx / 2;\n d.anchor = \"start\";\n } else {\n d.anchor = \"middle\";\n var txHalfWidth = txTotalWidth / 2;\n var overflowR = htx + txHalfWidth - outerWidth;\n var overflowL = htx - txHalfWidth;\n if (overflowR > 0) htx -= overflowR;\n if (overflowL < 0) htx += -overflowL;\n }\n d.crossPos = htx;\n }\n tx.attr(\"text-anchor\", d.anchor);\n if (tx2width) tx2.attr(\"text-anchor\", d.anchor);\n g.attr(\"transform\", strTranslate(htx, hty) + (rotateLabels ? strRotate(YANGLE) : \"\"));\n });\n return {\n hoverLabels,\n commonLabelBoundingBox: commonLabelRect\n };\n }\n function getHoverLabelText(d, showCommonLabel, hovermode, fullLayout, t02, g) {\n var name2 = \"\";\n var text = \"\";\n if (d.nameOverride !== void 0) d.name = d.nameOverride;\n if (d.name) {\n if (d.trace._meta) {\n d.name = Lib.templateString(d.name, d.trace._meta);\n }\n name2 = plainText(d.name, d.nameLength);\n }\n var h0 = hovermode.charAt(0);\n var h1 = h0 === \"x\" ? \"y\" : \"x\";\n if (d.zLabel !== void 0) {\n if (d.xLabel !== void 0) text += \"x: \" + d.xLabel + \"
\";\n if (d.yLabel !== void 0) text += \"y: \" + d.yLabel + \"
\";\n if (d.trace.type !== \"choropleth\" && d.trace.type !== \"choroplethmapbox\" && d.trace.type !== \"choroplethmap\") {\n text += (text ? \"z: \" : \"\") + d.zLabel;\n }\n } else if (showCommonLabel && d[h0 + \"Label\"] === t02) {\n text = d[h1 + \"Label\"] || \"\";\n } else if (d.xLabel === void 0) {\n if (d.yLabel !== void 0 && d.trace.type !== \"scattercarpet\") {\n text = d.yLabel;\n }\n } else if (d.yLabel === void 0) text = d.xLabel;\n else text = \"(\" + d.xLabel + \", \" + d.yLabel + \")\";\n if ((d.text || d.text === 0) && !Array.isArray(d.text)) {\n text += (text ? \"
\" : \"\") + d.text;\n }\n if (d.extraText !== void 0) text += (text ? \"
\" : \"\") + d.extraText;\n if (g && text === \"\" && !d.hovertemplate) {\n if (name2 === \"\") g.remove();\n text = name2;\n }\n var hovertemplate = d.hovertemplate || false;\n if (hovertemplate) {\n var labels = d.hovertemplateLabels || d;\n if (d[h0 + \"Label\"] !== t02) {\n labels[h0 + \"other\"] = labels[h0 + \"Val\"];\n labels[h0 + \"otherLabel\"] = labels[h0 + \"Label\"];\n }\n text = Lib.hovertemplateString(\n hovertemplate,\n labels,\n fullLayout._d3locale,\n d.eventData[0] || {},\n d.trace._meta\n );\n text = text.replace(EXTRA_STRING_REGEX, function(match, extra) {\n name2 = plainText(extra, d.nameLength);\n return \"\";\n });\n }\n return [text, name2];\n }\n function hoverAvoidOverlaps(hoverLabels, rotateLabels, fullLayout, commonLabelBoundingBox) {\n var axKey = rotateLabels ? \"xa\" : \"ya\";\n var crossAxKey = rotateLabels ? \"ya\" : \"xa\";\n var nummoves = 0;\n var axSign = 1;\n var nLabels = hoverLabels.size();\n var pointgroups = new Array(nLabels);\n var k = 0;\n var axisLabelMinX = commonLabelBoundingBox.minX;\n var axisLabelMaxX = commonLabelBoundingBox.maxX;\n var axisLabelMinY = commonLabelBoundingBox.minY;\n var axisLabelMaxY = commonLabelBoundingBox.maxY;\n var pX = function(x) {\n return x * fullLayout._invScaleX;\n };\n var pY = function(y) {\n return y * fullLayout._invScaleY;\n };\n hoverLabels.each(function(d) {\n var ax = d[axKey];\n var crossAx = d[crossAxKey];\n var axIsX = ax._id.charAt(0) === \"x\";\n var rng = ax.range;\n if (k === 0 && rng && rng[0] > rng[1] !== axIsX) {\n axSign = -1;\n }\n var pmin = 0;\n var pmax = axIsX ? fullLayout.width : fullLayout.height;\n if (fullLayout.hovermode === \"x\" || fullLayout.hovermode === \"y\") {\n var offsets = getHoverLabelOffsets(d, rotateLabels);\n var anchor = d.anchor;\n var horzSign = anchor === \"end\" ? -1 : 1;\n var labelMin;\n var labelMax;\n if (anchor === \"middle\") {\n labelMin = d.crossPos + (axIsX ? pY(offsets.y - d.by / 2) : pX(d.bx / 2 + d.tx2width / 2));\n labelMax = labelMin + (axIsX ? pY(d.by) : pX(d.bx));\n } else {\n if (axIsX) {\n labelMin = d.crossPos + pY(HOVERARROWSIZE + offsets.y) - pY(d.by / 2 - HOVERARROWSIZE);\n labelMax = labelMin + pY(d.by);\n } else {\n var startX = pX(horzSign * HOVERARROWSIZE + offsets.x);\n var endX = startX + pX(horzSign * d.bx);\n labelMin = d.crossPos + Math.min(startX, endX);\n labelMax = d.crossPos + Math.max(startX, endX);\n }\n }\n if (axIsX) {\n if (axisLabelMinY !== void 0 && axisLabelMaxY !== void 0 && Math.min(labelMax, axisLabelMaxY) - Math.max(labelMin, axisLabelMinY) > 1) {\n if (crossAx.side === \"left\") {\n pmin = crossAx._mainLinePosition;\n pmax = fullLayout.width;\n } else {\n pmax = crossAx._mainLinePosition;\n }\n }\n } else {\n if (axisLabelMinX !== void 0 && axisLabelMaxX !== void 0 && Math.min(labelMax, axisLabelMaxX) - Math.max(labelMin, axisLabelMinX) > 1) {\n if (crossAx.side === \"top\") {\n pmin = crossAx._mainLinePosition;\n pmax = fullLayout.height;\n } else {\n pmax = crossAx._mainLinePosition;\n }\n }\n }\n }\n pointgroups[k++] = [{\n datum: d,\n traceIndex: d.trace.index,\n dp: 0,\n pos: d.pos,\n posref: d.posref,\n size: d.by * (axIsX ? YFACTOR : 1) / 2,\n pmin,\n pmax\n }];\n });\n pointgroups.sort(function(a, b) {\n return a[0].posref - b[0].posref || // for equal positions, sort trace indices increasing or decreasing\n // depending on whether the axis is reversed or not... so stacked\n // traces will generally keep their order even if one trace adds\n // nothing to the stack.\n axSign * (b[0].traceIndex - a[0].traceIndex);\n });\n var donepositioning, topOverlap, bottomOverlap, i, j, pti, sumdp;\n function constrainGroup(grp2) {\n var minPt = grp2[0];\n var maxPt = grp2[grp2.length - 1];\n topOverlap = minPt.pmin - minPt.pos - minPt.dp + minPt.size;\n bottomOverlap = maxPt.pos + maxPt.dp + maxPt.size - minPt.pmax;\n if (topOverlap > 0.01) {\n for (j = grp2.length - 1; j >= 0; j--) grp2[j].dp += topOverlap;\n donepositioning = false;\n }\n if (bottomOverlap < 0.01) return;\n if (topOverlap < -0.01) {\n for (j = grp2.length - 1; j >= 0; j--) grp2[j].dp -= bottomOverlap;\n donepositioning = false;\n }\n if (!donepositioning) return;\n var deleteCount = 0;\n for (i = 0; i < grp2.length; i++) {\n pti = grp2[i];\n if (pti.pos + pti.dp + pti.size > minPt.pmax) deleteCount++;\n }\n for (i = grp2.length - 1; i >= 0; i--) {\n if (deleteCount <= 0) break;\n pti = grp2[i];\n if (pti.pos > minPt.pmax - 1) {\n pti.del = true;\n deleteCount--;\n }\n }\n for (i = 0; i < grp2.length; i++) {\n if (deleteCount <= 0) break;\n pti = grp2[i];\n if (pti.pos < minPt.pmin + 1) {\n pti.del = true;\n deleteCount--;\n bottomOverlap = pti.size * 2;\n for (j = grp2.length - 1; j >= 0; j--) grp2[j].dp -= bottomOverlap;\n }\n }\n for (i = grp2.length - 1; i >= 0; i--) {\n if (deleteCount <= 0) break;\n pti = grp2[i];\n if (pti.pos + pti.dp + pti.size > minPt.pmax) {\n pti.del = true;\n deleteCount--;\n }\n }\n }\n while (!donepositioning && nummoves <= nLabels) {\n nummoves++;\n donepositioning = true;\n i = 0;\n while (i < pointgroups.length - 1) {\n var g0 = pointgroups[i];\n var g1 = pointgroups[i + 1];\n var p0 = g0[g0.length - 1];\n var p1 = g1[0];\n topOverlap = p0.pos + p0.dp + p0.size - p1.pos - p1.dp + p1.size;\n if (topOverlap > 0.01) {\n for (j = g1.length - 1; j >= 0; j--) g1[j].dp += topOverlap;\n g0.push.apply(g0, g1);\n pointgroups.splice(i + 1, 1);\n sumdp = 0;\n for (j = g0.length - 1; j >= 0; j--) sumdp += g0[j].dp;\n bottomOverlap = sumdp / g0.length;\n for (j = g0.length - 1; j >= 0; j--) g0[j].dp -= bottomOverlap;\n donepositioning = false;\n } else i++;\n }\n pointgroups.forEach(constrainGroup);\n }\n for (i = pointgroups.length - 1; i >= 0; i--) {\n var grp = pointgroups[i];\n for (j = grp.length - 1; j >= 0; j--) {\n var pt = grp[j];\n var hoverPt = pt.datum;\n hoverPt.offset = pt.dp;\n hoverPt.del = pt.del;\n }\n }\n }\n function getHoverLabelOffsets(hoverLabel, rotateLabels) {\n var offsetX = 0;\n var offsetY = hoverLabel.offset;\n if (rotateLabels) {\n offsetY *= -YSHIFTY;\n offsetX = hoverLabel.offset * YSHIFTX;\n }\n return {\n x: offsetX,\n y: offsetY\n };\n }\n function getTextShiftX(hoverLabel) {\n var alignShift = { start: 1, end: -1, middle: 0 }[hoverLabel.anchor];\n var textShiftX = alignShift * (HOVERARROWSIZE + HOVERTEXTPAD);\n var text2ShiftX = textShiftX + alignShift * (hoverLabel.txwidth + HOVERTEXTPAD);\n var isMiddle = hoverLabel.anchor === \"middle\";\n if (isMiddle) {\n textShiftX -= hoverLabel.tx2width / 2;\n text2ShiftX += hoverLabel.txwidth / 2 + HOVERTEXTPAD;\n }\n return {\n alignShift,\n textShiftX,\n text2ShiftX\n };\n }\n function alignHoverText(hoverLabels, rotateLabels, scaleX, scaleY) {\n var pX = function(x) {\n return x * scaleX;\n };\n var pY = function(y) {\n return y * scaleY;\n };\n hoverLabels.each(function(d) {\n var g = d3.select(this);\n if (d.del) return g.remove();\n var tx = g.select(\"text.nums\");\n var anchor = d.anchor;\n var horzSign = anchor === \"end\" ? -1 : 1;\n var shiftX = getTextShiftX(d);\n var offsets = getHoverLabelOffsets(d, rotateLabels);\n var offsetX = offsets.x;\n var offsetY = offsets.y;\n var isMiddle = anchor === \"middle\";\n g.select(\"path\").attr(\"d\", isMiddle ? (\n // middle aligned: rect centered on data\n \"M-\" + pX(d.bx / 2 + d.tx2width / 2) + \",\" + pY(offsetY - d.by / 2) + \"h\" + pX(d.bx) + \"v\" + pY(d.by) + \"h-\" + pX(d.bx) + \"Z\"\n ) : (\n // left or right aligned: side rect with arrow to data\n \"M0,0L\" + pX(horzSign * HOVERARROWSIZE + offsetX) + \",\" + pY(HOVERARROWSIZE + offsetY) + \"v\" + pY(d.by / 2 - HOVERARROWSIZE) + \"h\" + pX(horzSign * d.bx) + \"v-\" + pY(d.by) + \"H\" + pX(horzSign * HOVERARROWSIZE + offsetX) + \"V\" + pY(offsetY - HOVERARROWSIZE) + \"Z\"\n ));\n var posX = offsetX + shiftX.textShiftX;\n var posY = offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD;\n var textAlign = d.textAlign || \"auto\";\n if (textAlign !== \"auto\") {\n if (textAlign === \"left\" && anchor !== \"start\") {\n tx.attr(\"text-anchor\", \"start\");\n posX = isMiddle ? -d.bx / 2 - d.tx2width / 2 + HOVERTEXTPAD : -d.bx - HOVERTEXTPAD;\n } else if (textAlign === \"right\" && anchor !== \"end\") {\n tx.attr(\"text-anchor\", \"end\");\n posX = isMiddle ? d.bx / 2 - d.tx2width / 2 - HOVERTEXTPAD : d.bx + HOVERTEXTPAD;\n }\n }\n tx.call(svgTextUtils.positionText, pX(posX), pY(posY));\n if (d.tx2width) {\n g.select(\"text.name\").call(\n svgTextUtils.positionText,\n pX(shiftX.text2ShiftX + shiftX.alignShift * HOVERTEXTPAD + offsetX),\n pY(offsetY + d.ty0 - d.by / 2 + HOVERTEXTPAD)\n );\n g.select(\"rect\").call(\n Drawing.setRect,\n pX(shiftX.text2ShiftX + (shiftX.alignShift - 1) * d.tx2width / 2 + offsetX),\n pY(offsetY - d.by / 2 - 1),\n pX(d.tx2width),\n pY(d.by + 2)\n );\n }\n });\n }\n function cleanPoint(d, hovermode) {\n var index = d.index;\n var trace = d.trace || {};\n var cd0 = d.cd[0];\n var cd = d.cd[index] || {};\n function pass(v) {\n return v || isNumeric(v) && v === 0;\n }\n var getVal = Array.isArray(index) ? function(calcKey, traceKey) {\n var v = Lib.castOption(cd0, index, calcKey);\n return pass(v) ? v : Lib.extractOption({}, trace, \"\", traceKey);\n } : function(calcKey, traceKey) {\n return Lib.extractOption(cd, trace, calcKey, traceKey);\n };\n function fill(key, calcKey, traceKey) {\n var val = getVal(calcKey, traceKey);\n if (pass(val)) d[key] = val;\n }\n fill(\"hoverinfo\", \"hi\", \"hoverinfo\");\n fill(\"bgcolor\", \"hbg\", \"hoverlabel.bgcolor\");\n fill(\"borderColor\", \"hbc\", \"hoverlabel.bordercolor\");\n fill(\"fontFamily\", \"htf\", \"hoverlabel.font.family\");\n fill(\"fontSize\", \"hts\", \"hoverlabel.font.size\");\n fill(\"fontColor\", \"htc\", \"hoverlabel.font.color\");\n fill(\"fontWeight\", \"htw\", \"hoverlabel.font.weight\");\n fill(\"fontStyle\", \"hty\", \"hoverlabel.font.style\");\n fill(\"fontVariant\", \"htv\", \"hoverlabel.font.variant\");\n fill(\"nameLength\", \"hnl\", \"hoverlabel.namelength\");\n fill(\"textAlign\", \"hta\", \"hoverlabel.align\");\n d.posref = hovermode === \"y\" || hovermode === \"closest\" && trace.orientation === \"h\" ? d.xa._offset + (d.x0 + d.x1) / 2 : d.ya._offset + (d.y0 + d.y1) / 2;\n d.x0 = Lib.constrain(d.x0, 0, d.xa._length);\n d.x1 = Lib.constrain(d.x1, 0, d.xa._length);\n d.y0 = Lib.constrain(d.y0, 0, d.ya._length);\n d.y1 = Lib.constrain(d.y1, 0, d.ya._length);\n if (d.xLabelVal !== void 0) {\n d.xLabel = \"xLabel\" in d ? d.xLabel : Axes.hoverLabelText(d.xa, d.xLabelVal, trace.xhoverformat);\n d.xVal = d.xa.c2d(d.xLabelVal);\n }\n if (d.yLabelVal !== void 0) {\n d.yLabel = \"yLabel\" in d ? d.yLabel : Axes.hoverLabelText(d.ya, d.yLabelVal, trace.yhoverformat);\n d.yVal = d.ya.c2d(d.yLabelVal);\n }\n if (d.zLabelVal !== void 0 && d.zLabel === void 0) {\n d.zLabel = String(d.zLabelVal);\n }\n if (!isNaN(d.xerr) && !(d.xa.type === \"log\" && d.xerr <= 0)) {\n var xeText = Axes.tickText(d.xa, d.xa.c2l(d.xerr), \"hover\").text;\n if (d.xerrneg !== void 0) {\n d.xLabel += \" +\" + xeText + \" / -\" + Axes.tickText(d.xa, d.xa.c2l(d.xerrneg), \"hover\").text;\n } else d.xLabel += \" \\xB1 \" + xeText;\n if (hovermode === \"x\") d.distance += 1;\n }\n if (!isNaN(d.yerr) && !(d.ya.type === \"log\" && d.yerr <= 0)) {\n var yeText = Axes.tickText(d.ya, d.ya.c2l(d.yerr), \"hover\").text;\n if (d.yerrneg !== void 0) {\n d.yLabel += \" +\" + yeText + \" / -\" + Axes.tickText(d.ya, d.ya.c2l(d.yerrneg), \"hover\").text;\n } else d.yLabel += \" \\xB1 \" + yeText;\n if (hovermode === \"y\") d.distance += 1;\n }\n var infomode = d.hoverinfo || d.trace.hoverinfo;\n if (infomode && infomode !== \"all\") {\n infomode = Array.isArray(infomode) ? infomode : infomode.split(\"+\");\n if (infomode.indexOf(\"x\") === -1) d.xLabel = void 0;\n if (infomode.indexOf(\"y\") === -1) d.yLabel = void 0;\n if (infomode.indexOf(\"z\") === -1) d.zLabel = void 0;\n if (infomode.indexOf(\"text\") === -1) d.text = void 0;\n if (infomode.indexOf(\"name\") === -1) d.name = void 0;\n }\n return d;\n }\n function createSpikelines(gd, closestPoints, opts) {\n var container = opts.container;\n var fullLayout = opts.fullLayout;\n var gs = fullLayout._size;\n var evt = opts.event;\n var showY = !!closestPoints.hLinePoint;\n var showX = !!closestPoints.vLinePoint;\n var xa, ya;\n container.selectAll(\".spikeline\").remove();\n if (!(showX || showY)) return;\n var contrastColor = Color2.combine(fullLayout.plot_bgcolor, fullLayout.paper_bgcolor);\n if (showY) {\n var hLinePoint = closestPoints.hLinePoint;\n var hLinePointX, hLinePointY;\n xa = hLinePoint && hLinePoint.xa;\n ya = hLinePoint && hLinePoint.ya;\n var ySnap = ya.spikesnap;\n if (ySnap === \"cursor\") {\n hLinePointX = evt.pointerX;\n hLinePointY = evt.pointerY;\n } else {\n hLinePointX = xa._offset + hLinePoint.x;\n hLinePointY = ya._offset + hLinePoint.y;\n }\n var dfltHLineColor = tinycolor.readability(hLinePoint.color, contrastColor) < 1.5 ? Color2.contrast(contrastColor) : hLinePoint.color;\n var yMode = ya.spikemode;\n var yThickness = ya.spikethickness;\n var yColor = ya.spikecolor || dfltHLineColor;\n var xEdge = Axes.getPxPosition(gd, ya);\n var xBase, xEndSpike;\n if (yMode.indexOf(\"toaxis\") !== -1 || yMode.indexOf(\"across\") !== -1) {\n if (yMode.indexOf(\"toaxis\") !== -1) {\n xBase = xEdge;\n xEndSpike = hLinePointX;\n }\n if (yMode.indexOf(\"across\") !== -1) {\n var xAcross0 = ya._counterDomainMin;\n var xAcross1 = ya._counterDomainMax;\n if (ya.anchor === \"free\") {\n xAcross0 = Math.min(xAcross0, ya.position);\n xAcross1 = Math.max(xAcross1, ya.position);\n }\n xBase = gs.l + xAcross0 * gs.w;\n xEndSpike = gs.l + xAcross1 * gs.w;\n }\n container.insert(\"line\", \":first-child\").attr({\n x1: xBase,\n x2: xEndSpike,\n y1: hLinePointY,\n y2: hLinePointY,\n \"stroke-width\": yThickness,\n stroke: yColor,\n \"stroke-dasharray\": Drawing.dashStyle(ya.spikedash, yThickness)\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n container.insert(\"line\", \":first-child\").attr({\n x1: xBase,\n x2: xEndSpike,\n y1: hLinePointY,\n y2: hLinePointY,\n \"stroke-width\": yThickness + 2,\n stroke: contrastColor\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n }\n if (yMode.indexOf(\"marker\") !== -1) {\n container.insert(\"circle\", \":first-child\").attr({\n cx: xEdge + (ya.side !== \"right\" ? yThickness : -yThickness),\n cy: hLinePointY,\n r: yThickness,\n fill: yColor\n }).classed(\"spikeline\", true);\n }\n }\n if (showX) {\n var vLinePoint = closestPoints.vLinePoint;\n var vLinePointX, vLinePointY;\n xa = vLinePoint && vLinePoint.xa;\n ya = vLinePoint && vLinePoint.ya;\n var xSnap = xa.spikesnap;\n if (xSnap === \"cursor\") {\n vLinePointX = evt.pointerX;\n vLinePointY = evt.pointerY;\n } else {\n vLinePointX = xa._offset + vLinePoint.x;\n vLinePointY = ya._offset + vLinePoint.y;\n }\n var dfltVLineColor = tinycolor.readability(vLinePoint.color, contrastColor) < 1.5 ? Color2.contrast(contrastColor) : vLinePoint.color;\n var xMode = xa.spikemode;\n var xThickness = xa.spikethickness;\n var xColor = xa.spikecolor || dfltVLineColor;\n var yEdge = Axes.getPxPosition(gd, xa);\n var yBase, yEndSpike;\n if (xMode.indexOf(\"toaxis\") !== -1 || xMode.indexOf(\"across\") !== -1) {\n if (xMode.indexOf(\"toaxis\") !== -1) {\n yBase = yEdge;\n yEndSpike = vLinePointY;\n }\n if (xMode.indexOf(\"across\") !== -1) {\n var yAcross0 = xa._counterDomainMin;\n var yAcross1 = xa._counterDomainMax;\n if (xa.anchor === \"free\") {\n yAcross0 = Math.min(yAcross0, xa.position);\n yAcross1 = Math.max(yAcross1, xa.position);\n }\n yBase = gs.t + (1 - yAcross1) * gs.h;\n yEndSpike = gs.t + (1 - yAcross0) * gs.h;\n }\n container.insert(\"line\", \":first-child\").attr({\n x1: vLinePointX,\n x2: vLinePointX,\n y1: yBase,\n y2: yEndSpike,\n \"stroke-width\": xThickness,\n stroke: xColor,\n \"stroke-dasharray\": Drawing.dashStyle(xa.spikedash, xThickness)\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n container.insert(\"line\", \":first-child\").attr({\n x1: vLinePointX,\n x2: vLinePointX,\n y1: yBase,\n y2: yEndSpike,\n \"stroke-width\": xThickness + 2,\n stroke: contrastColor\n }).classed(\"spikeline\", true).classed(\"crisp\", true);\n }\n if (xMode.indexOf(\"marker\") !== -1) {\n container.insert(\"circle\", \":first-child\").attr({\n cx: vLinePointX,\n cy: yEdge - (xa.side !== \"top\" ? xThickness : -xThickness),\n r: xThickness,\n fill: xColor\n }).classed(\"spikeline\", true);\n }\n }\n }\n function hoverChanged(gd, evt, oldhoverdata) {\n if (!oldhoverdata || oldhoverdata.length !== gd._hoverdata.length) return true;\n for (var i = oldhoverdata.length - 1; i >= 0; i--) {\n var oldPt = oldhoverdata[i];\n var newPt = gd._hoverdata[i];\n if (oldPt.curveNumber !== newPt.curveNumber || String(oldPt.pointNumber) !== String(newPt.pointNumber) || String(oldPt.pointNumbers) !== String(newPt.pointNumbers)) {\n return true;\n }\n }\n return false;\n }\n function spikesChanged(gd, oldspikepoints) {\n if (!oldspikepoints) return true;\n if (oldspikepoints.vLinePoint !== gd._spikepoints.vLinePoint || oldspikepoints.hLinePoint !== gd._spikepoints.hLinePoint) return true;\n return false;\n }\n function plainText(s, len) {\n return svgTextUtils.plainText(s || \"\", {\n len,\n allowedTags: [\"br\", \"sub\", \"sup\", \"b\", \"i\", \"em\", \"s\", \"u\"]\n });\n }\n function orderRangePoints(hoverData, hovermode) {\n var axLetter = hovermode.charAt(0);\n var first = [];\n var second = [];\n var last = [];\n for (var i = 0; i < hoverData.length; i++) {\n var d = hoverData[i];\n if (Registry.traceIs(d.trace, \"bar-like\") || Registry.traceIs(d.trace, \"box-violin\")) {\n last.push(d);\n } else if (d.trace[axLetter + \"period\"]) {\n second.push(d);\n } else {\n first.push(d);\n }\n }\n return first.concat(second).concat(last);\n }\n function getCoord(axLetter, winningPoint, fullLayout) {\n var ax = winningPoint[axLetter + \"a\"];\n var val = winningPoint[axLetter + \"Val\"];\n var cd0 = winningPoint.cd[0];\n if (ax.type === \"category\" || ax.type === \"multicategory\") val = ax._categoriesMap[val];\n else if (ax.type === \"date\") {\n var periodalignment = winningPoint.trace[axLetter + \"periodalignment\"];\n if (periodalignment) {\n var d = winningPoint.cd[winningPoint.index];\n var start = d[axLetter + \"Start\"];\n if (start === void 0) start = d[axLetter];\n var end = d[axLetter + \"End\"];\n if (end === void 0) end = d[axLetter];\n var diff = end - start;\n if (periodalignment === \"end\") {\n val += diff;\n } else if (periodalignment === \"middle\") {\n val += diff / 2;\n }\n }\n val = ax.d2c(val);\n }\n if (cd0 && cd0.t && cd0.t.posLetter === ax._id) {\n if (fullLayout.boxmode === \"group\" || fullLayout.violinmode === \"group\") {\n val += cd0.t.dPos;\n }\n }\n return val;\n }\n function getTopOffset(gd) {\n return gd.offsetTop + gd.clientTop;\n }\n function getLeftOffset(gd) {\n return gd.offsetLeft + gd.clientLeft;\n }\n function getBoundingClientRect(gd, node) {\n var fullLayout = gd._fullLayout;\n var rect = node.getBoundingClientRect();\n var x0 = rect.left;\n var y0 = rect.top;\n var x1 = x0 + rect.width;\n var y1 = y0 + rect.height;\n var A2 = Lib.apply3DTransform(fullLayout._invTransform)(x0, y0);\n var B2 = Lib.apply3DTransform(fullLayout._invTransform)(x1, y1);\n var Ax = A2[0];\n var Ay = A2[1];\n var Bx = B2[0];\n var By = B2[1];\n return {\n x: Ax,\n y: Ay,\n width: Bx - Ax,\n height: By - Ay,\n top: Math.min(Ay, By),\n left: Math.min(Ax, Bx),\n right: Math.max(Ax, Bx),\n bottom: Math.max(Ay, By)\n };\n }\n }\n });\n\n // src/components/fx/hoverlabel_defaults.js\n var require_hoverlabel_defaults = __commonJS({\n \"src/components/fx/hoverlabel_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var isUnifiedHover = require_helpers2().isUnifiedHover;\n module.exports = function handleHoverLabelDefaults(contIn, contOut, coerce, opts) {\n opts = opts || {};\n var hasLegend = contOut.legend;\n function inheritFontAttr(attr) {\n if (!opts.font[attr]) {\n opts.font[attr] = hasLegend ? contOut.legend.font[attr] : contOut.font[attr];\n }\n }\n if (contOut && isUnifiedHover(contOut.hovermode)) {\n if (!opts.font) opts.font = {};\n inheritFontAttr(\"size\");\n inheritFontAttr(\"family\");\n inheritFontAttr(\"color\");\n inheritFontAttr(\"weight\");\n inheritFontAttr(\"style\");\n inheritFontAttr(\"variant\");\n if (hasLegend) {\n if (!opts.bgcolor) opts.bgcolor = Color2.combine(contOut.legend.bgcolor, contOut.paper_bgcolor);\n if (!opts.bordercolor) opts.bordercolor = contOut.legend.bordercolor;\n } else {\n if (!opts.bgcolor) opts.bgcolor = contOut.paper_bgcolor;\n }\n }\n coerce(\"hoverlabel.bgcolor\", opts.bgcolor);\n coerce(\"hoverlabel.bordercolor\", opts.bordercolor);\n coerce(\"hoverlabel.namelength\", opts.namelength);\n Lib.coerceFont(coerce, \"hoverlabel.font\", opts.font);\n coerce(\"hoverlabel.align\", opts.align);\n };\n }\n });\n\n // src/components/fx/layout_global_defaults.js\n var require_layout_global_defaults = __commonJS({\n \"src/components/fx/layout_global_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n var layoutAttributes = require_layout_attributes();\n module.exports = function supplyLayoutGlobalDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n handleHoverLabelDefaults(layoutIn, layoutOut, coerce);\n };\n }\n });\n\n // src/components/fx/defaults.js\n var require_defaults4 = __commonJS({\n \"src/components/fx/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes();\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var opts = Lib.extendFlat({}, layout.hoverlabel);\n if (traceOut.hovertemplate) opts.namelength = -1;\n handleHoverLabelDefaults(traceIn, traceOut, coerce, opts);\n };\n }\n });\n\n // src/components/fx/hovermode_defaults.js\n var require_hovermode_defaults = __commonJS({\n \"src/components/fx/hovermode_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes();\n module.exports = function handleHoverModeDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n if (layoutOut[attr] !== void 0) return layoutOut[attr];\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"clickmode\");\n coerce(\"hoversubplots\");\n return coerce(\"hovermode\");\n };\n }\n });\n\n // src/components/fx/layout_defaults.js\n var require_layout_defaults2 = __commonJS({\n \"src/components/fx/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes();\n var handleHoverModeDefaults = require_hovermode_defaults();\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n var hoverMode = handleHoverModeDefaults(layoutIn, layoutOut);\n if (hoverMode) {\n coerce(\"hoverdistance\");\n coerce(\"spikedistance\");\n }\n var dragMode = coerce(\"dragmode\");\n if (dragMode === \"select\") coerce(\"selectdirection\");\n var hasMapbox = layoutOut._has(\"mapbox\");\n var hasMap = layoutOut._has(\"map\");\n var hasGeo = layoutOut._has(\"geo\");\n var len = layoutOut._basePlotModules.length;\n if (layoutOut.dragmode === \"zoom\" && ((hasMapbox || hasMap || hasGeo) && len === 1 || (hasMapbox || hasMap) && hasGeo && len === 2)) {\n layoutOut.dragmode = \"pan\";\n }\n handleHoverLabelDefaults(layoutIn, layoutOut, coerce);\n Lib.coerceFont(coerce, \"hoverlabel.grouptitlefont\", layoutOut.hoverlabel.font);\n };\n }\n });\n\n // src/components/fx/calc.js\n var require_calc2 = __commonJS({\n \"src/components/fx/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n module.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n function makeCoerceHoverInfo(trace2) {\n return function(val) {\n return Lib.coerceHoverinfo({ hoverinfo: val }, { _module: trace2._module }, fullLayout);\n };\n }\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var trace = cd[0].trace;\n if (Registry.traceIs(trace, \"pie-like\")) continue;\n var fillFn = Registry.traceIs(trace, \"2dMap\") ? paste : Lib.fillArray;\n fillFn(trace.hoverinfo, cd, \"hi\", makeCoerceHoverInfo(trace));\n if (trace.hovertemplate) fillFn(trace.hovertemplate, cd, \"ht\");\n if (!trace.hoverlabel) continue;\n fillFn(trace.hoverlabel.bgcolor, cd, \"hbg\");\n fillFn(trace.hoverlabel.bordercolor, cd, \"hbc\");\n fillFn(trace.hoverlabel.font.size, cd, \"hts\");\n fillFn(trace.hoverlabel.font.color, cd, \"htc\");\n fillFn(trace.hoverlabel.font.family, cd, \"htf\");\n fillFn(trace.hoverlabel.font.weight, cd, \"htw\");\n fillFn(trace.hoverlabel.font.style, cd, \"hty\");\n fillFn(trace.hoverlabel.font.variant, cd, \"htv\");\n fillFn(trace.hoverlabel.namelength, cd, \"hnl\");\n fillFn(trace.hoverlabel.align, cd, \"hta\");\n }\n };\n function paste(traceAttr, cd, cdAttr, fn) {\n fn = fn || Lib.identity;\n if (Array.isArray(traceAttr)) {\n cd[0][cdAttr] = fn(traceAttr);\n }\n }\n }\n });\n\n // src/components/fx/click.js\n var require_click = __commonJS({\n \"src/components/fx/click.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var hover = require_hover().hover;\n module.exports = function click(gd, evt, subplot) {\n var annotationsDone = Registry.getComponentMethod(\"annotations\", \"onClick\")(gd, gd._hoverdata);\n if (subplot !== void 0) {\n hover(gd, evt, subplot, true);\n }\n function emitClick() {\n gd.emit(\"plotly_click\", { points: gd._hoverdata, event: evt });\n }\n if (gd._hoverdata && evt && evt.target) {\n if (annotationsDone && annotationsDone.then) {\n annotationsDone.then(emitClick);\n } else emitClick();\n if (evt.stopImmediatePropagation) evt.stopImmediatePropagation();\n }\n };\n }\n });\n\n // src/components/fx/index.js\n var require_fx = __commonJS({\n \"src/components/fx/index.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var dragElement = require_dragelement();\n var helpers = require_helpers2();\n var layoutAttributes = require_layout_attributes();\n var hoverModule = require_hover();\n module.exports = {\n moduleType: \"component\",\n name: \"fx\",\n constants: require_constants(),\n schema: {\n layout: layoutAttributes\n },\n attributes: require_attributes(),\n layoutAttributes,\n supplyLayoutGlobalDefaults: require_layout_global_defaults(),\n supplyDefaults: require_defaults4(),\n supplyLayoutDefaults: require_layout_defaults2(),\n calc: require_calc2(),\n getDistanceFunction: helpers.getDistanceFunction,\n getClosest: helpers.getClosest,\n inbox: helpers.inbox,\n quadrature: helpers.quadrature,\n appendArrayPointValue: helpers.appendArrayPointValue,\n castHoverOption,\n castHoverinfo,\n hover: hoverModule.hover,\n unhover: dragElement.unhover,\n loneHover: hoverModule.loneHover,\n loneUnhover,\n click: require_click()\n };\n function loneUnhover(containerOrSelection) {\n var selection = Lib.isD3Selection(containerOrSelection) ? containerOrSelection : d3.select(containerOrSelection);\n selection.selectAll(\"g.hovertext\").remove();\n selection.selectAll(\".spikeline\").remove();\n }\n function castHoverOption(trace, ptNumber, attr) {\n return Lib.castOption(trace, ptNumber, \"hoverlabel.\" + attr);\n }\n function castHoverinfo(trace, fullLayout, ptNumber) {\n function _coerce(val) {\n return Lib.coerceHoverinfo({ hoverinfo: val }, { _module: trace._module }, fullLayout);\n }\n return Lib.castOption(trace, ptNumber, \"hoverinfo\", _coerce);\n }\n }\n });\n\n // src/components/dragelement/helpers.js\n var require_helpers5 = __commonJS({\n \"src/components/dragelement/helpers.js\"(exports) {\n \"use strict\";\n exports.selectMode = function(dragmode) {\n return dragmode === \"lasso\" || dragmode === \"select\";\n };\n exports.drawMode = function(dragmode) {\n return dragmode === \"drawclosedpath\" || dragmode === \"drawopenpath\" || dragmode === \"drawline\" || dragmode === \"drawrect\" || dragmode === \"drawcircle\";\n };\n exports.openMode = function(dragmode) {\n return dragmode === \"drawline\" || dragmode === \"drawopenpath\";\n };\n exports.rectMode = function(dragmode) {\n return dragmode === \"select\" || dragmode === \"drawline\" || dragmode === \"drawrect\" || dragmode === \"drawcircle\";\n };\n exports.freeMode = function(dragmode) {\n return dragmode === \"lasso\" || dragmode === \"drawclosedpath\" || dragmode === \"drawopenpath\";\n };\n exports.selectingOrDrawing = function(dragmode) {\n return exports.freeMode(dragmode) || exports.rectMode(dragmode);\n };\n }\n });\n\n // src/lib/clear_gl_canvases.js\n var require_clear_gl_canvases = __commonJS({\n \"src/lib/clear_gl_canvases.js\"(exports, module) {\n \"use strict\";\n module.exports = function clearGlCanvases(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._glcanvas && fullLayout._glcanvas.size()) {\n fullLayout._glcanvas.each(function(d) {\n if (d.regl) d.regl.clear({ color: true, depth: true });\n });\n }\n };\n }\n });\n\n // src/fonts/ploticon.js\n var require_ploticon = __commonJS({\n \"src/fonts/ploticon.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n undo: {\n width: 857.1,\n height: 1e3,\n path: \"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n home: {\n width: 928.6,\n height: 1e3,\n path: \"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n \"camera-retro\": {\n width: 1e3,\n height: 1e3,\n path: \"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n zoombox: {\n width: 1e3,\n height: 1e3,\n path: \"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n pan: {\n width: 1e3,\n height: 1e3,\n path: \"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n zoom_plus: {\n width: 875,\n height: 1e3,\n path: \"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n zoom_minus: {\n width: 875,\n height: 1e3,\n path: \"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n autoscale: {\n width: 1e3,\n height: 1e3,\n path: \"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n tooltip_basic: {\n width: 1500,\n height: 1e3,\n path: \"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n tooltip_compare: {\n width: 1125,\n height: 1e3,\n path: \"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n plotlylogo: {\n width: 1542,\n height: 1e3,\n path: \"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n \"z-axis\": {\n width: 1e3,\n height: 1e3,\n path: \"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n \"3d_rotate\": {\n width: 1e3,\n height: 1e3,\n path: \"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n camera: {\n width: 1e3,\n height: 1e3,\n path: \"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n movie: {\n width: 1e3,\n height: 1e3,\n path: \"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n question: {\n width: 857.1,\n height: 1e3,\n path: \"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n disk: {\n width: 857.1,\n height: 1e3,\n path: \"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n drawopenpath: {\n width: 70,\n height: 70,\n path: \"M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z\",\n transform: \"matrix(1 0 0 1 -15 -15)\"\n },\n drawclosedpath: {\n width: 90,\n height: 90,\n path: \"M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z\",\n transform: \"matrix(1 0 0 1 -5 -5)\"\n },\n lasso: {\n width: 1031,\n height: 1e3,\n path: \"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n selectbox: {\n width: 1e3,\n height: 1e3,\n path: \"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z\",\n transform: \"matrix(1 0 0 -1 0 850)\"\n },\n drawline: {\n width: 70,\n height: 70,\n path: \"M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z\",\n transform: \"matrix(1 0 0 1 -15 -15)\"\n },\n drawrect: {\n width: 80,\n height: 80,\n path: \"M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z\",\n transform: \"matrix(1 0 0 1 -10 -10)\"\n },\n drawcircle: {\n width: 80,\n height: 80,\n path: \"M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z\",\n transform: \"matrix(1 0 0 1 -10 -10)\"\n },\n eraseshape: {\n width: 80,\n height: 80,\n path: \"M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z\",\n transform: \"matrix(1 0 0 1 -10 -10)\"\n },\n spikeline: {\n width: 1e3,\n height: 1e3,\n path: \"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z\",\n transform: \"matrix(1.5 0 0 -1.5 0 850)\"\n },\n pencil: {\n width: 1792,\n height: 1792,\n path: \"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z\",\n transform: \"matrix(1 0 0 1 0 1)\"\n },\n newplotlylogo: {\n name: \"newplotlylogo\",\n svg: [\n \"\",\n \" plotly-logomark\",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \" \",\n \"\"\n ].join(\"\")\n }\n };\n }\n });\n\n // src/components/shapes/draw_newshape/constants.js\n var require_constants4 = __commonJS({\n \"src/components/shapes/draw_newshape/constants.js\"(exports, module) {\n \"use strict\";\n var CIRCLE_SIDES = 32;\n module.exports = {\n CIRCLE_SIDES,\n i000: 0,\n i090: CIRCLE_SIDES / 4,\n i180: CIRCLE_SIDES / 2,\n i270: CIRCLE_SIDES / 4 * 3,\n cos45: Math.cos(Math.PI / 4),\n sin45: Math.sin(Math.PI / 4),\n SQRT2: Math.sqrt(2)\n };\n }\n });\n\n // src/components/selections/helpers.js\n var require_helpers6 = __commonJS({\n \"src/components/selections/helpers.js\"(exports, module) {\n \"use strict\";\n var strTranslate = require_lib().strTranslate;\n function p2r(ax, v) {\n switch (ax.type) {\n case \"log\":\n return ax.p2d(v);\n case \"date\":\n return ax.p2r(v, 0, ax.calendar);\n default:\n return ax.p2r(v);\n }\n }\n function r2p(ax, v) {\n switch (ax.type) {\n case \"log\":\n return ax.d2p(v);\n case \"date\":\n return ax.r2p(v, 0, ax.calendar);\n default:\n return ax.r2p(v);\n }\n }\n function axValue(ax) {\n var index = ax._id.charAt(0) === \"y\" ? 1 : 0;\n return function(v) {\n return p2r(ax, v[index]);\n };\n }\n function getTransform(plotinfo) {\n return strTranslate(\n plotinfo.xaxis._offset,\n plotinfo.yaxis._offset\n );\n }\n module.exports = {\n p2r,\n r2p,\n axValue,\n getTransform\n };\n }\n });\n\n // src/components/shapes/draw_newshape/helpers.js\n var require_helpers7 = __commonJS({\n \"src/components/shapes/draw_newshape/helpers.js\"(exports) {\n \"use strict\";\n var parseSvgPath = require_parse_svg_path();\n var constants = require_constants4();\n var CIRCLE_SIDES = constants.CIRCLE_SIDES;\n var SQRT2 = constants.SQRT2;\n var cartesianHelpers = require_helpers6();\n var p2r = cartesianHelpers.p2r;\n var r2p = cartesianHelpers.r2p;\n var iC = [0, 3, 4, 5, 6, 1, 2];\n var iQS = [0, 3, 4, 1, 2];\n exports.writePaths = function(polygons) {\n var nI = polygons.length;\n if (!nI) return \"M0,0Z\";\n var str = \"\";\n for (var i = 0; i < nI; i++) {\n var nJ = polygons[i].length;\n for (var j = 0; j < nJ; j++) {\n var w = polygons[i][j][0];\n if (w === \"Z\") {\n str += \"Z\";\n } else {\n var nK = polygons[i][j].length;\n for (var k = 0; k < nK; k++) {\n var realK = k;\n if (w === \"Q\" || w === \"S\") {\n realK = iQS[k];\n } else if (w === \"C\") {\n realK = iC[k];\n }\n str += polygons[i][j][realK];\n if (k > 0 && k < nK - 1) {\n str += \",\";\n }\n }\n }\n }\n }\n return str;\n };\n exports.readPaths = function(str, gd, plotinfo, isActiveShape) {\n var cmd = parseSvgPath(str);\n var polys = [];\n var n = -1;\n var newPoly = function() {\n n++;\n polys[n] = [];\n };\n var k;\n var x = 0;\n var y = 0;\n var initX;\n var initY;\n var recStart = function() {\n initX = x;\n initY = y;\n };\n recStart();\n for (var i = 0; i < cmd.length; i++) {\n var newPos = [];\n var x1, x2, y1, y2;\n var c = cmd[i][0];\n var w = c;\n switch (c) {\n case \"M\":\n newPoly();\n x = +cmd[i][1];\n y = +cmd[i][2];\n newPos.push([w, x, y]);\n recStart();\n break;\n case \"Q\":\n case \"S\":\n x1 = +cmd[i][1];\n y1 = +cmd[i][2];\n x = +cmd[i][3];\n y = +cmd[i][4];\n newPos.push([w, x, y, x1, y1]);\n break;\n case \"C\":\n x1 = +cmd[i][1];\n y1 = +cmd[i][2];\n x2 = +cmd[i][3];\n y2 = +cmd[i][4];\n x = +cmd[i][5];\n y = +cmd[i][6];\n newPos.push([w, x, y, x1, y1, x2, y2]);\n break;\n case \"T\":\n case \"L\":\n x = +cmd[i][1];\n y = +cmd[i][2];\n newPos.push([w, x, y]);\n break;\n case \"H\":\n w = \"L\";\n x = +cmd[i][1];\n newPos.push([w, x, y]);\n break;\n case \"V\":\n w = \"L\";\n y = +cmd[i][1];\n newPos.push([w, x, y]);\n break;\n case \"A\":\n w = \"L\";\n var rx = +cmd[i][1];\n var ry = +cmd[i][2];\n if (!+cmd[i][4]) {\n rx = -rx;\n ry = -ry;\n }\n var cenX = x - rx;\n var cenY = y;\n for (k = 1; k <= CIRCLE_SIDES / 2; k++) {\n var t = 2 * Math.PI * k / CIRCLE_SIDES;\n newPos.push([\n w,\n cenX + rx * Math.cos(t),\n cenY + ry * Math.sin(t)\n ]);\n }\n break;\n case \"Z\":\n if (x !== initX || y !== initY) {\n x = initX;\n y = initY;\n newPos.push([w, x, y]);\n }\n break;\n }\n var domain = (plotinfo || {}).domain;\n var size = gd._fullLayout._size;\n var xPixelSized = plotinfo && plotinfo.xsizemode === \"pixel\";\n var yPixelSized = plotinfo && plotinfo.ysizemode === \"pixel\";\n var noOffset = isActiveShape === false;\n for (var j = 0; j < newPos.length; j++) {\n for (k = 0; k + 2 < 7; k += 2) {\n var _x = newPos[j][k + 1];\n var _y = newPos[j][k + 2];\n if (_x === void 0 || _y === void 0) continue;\n x = _x;\n y = _y;\n if (plotinfo) {\n if (plotinfo.xaxis && plotinfo.xaxis.p2r) {\n if (noOffset) _x -= plotinfo.xaxis._offset;\n if (xPixelSized) {\n _x = r2p(plotinfo.xaxis, plotinfo.xanchor) + _x;\n } else {\n _x = p2r(plotinfo.xaxis, _x);\n }\n } else {\n if (noOffset) _x -= size.l;\n if (domain) _x = domain.x[0] + _x / size.w;\n else _x = _x / size.w;\n }\n if (plotinfo.yaxis && plotinfo.yaxis.p2r) {\n if (noOffset) _y -= plotinfo.yaxis._offset;\n if (yPixelSized) {\n _y = r2p(plotinfo.yaxis, plotinfo.yanchor) - _y;\n } else {\n _y = p2r(plotinfo.yaxis, _y);\n }\n } else {\n if (noOffset) _y -= size.t;\n if (domain) _y = domain.y[1] - _y / size.h;\n else _y = 1 - _y / size.h;\n }\n }\n newPos[j][k + 1] = _x;\n newPos[j][k + 2] = _y;\n }\n polys[n].push(\n newPos[j].slice()\n );\n }\n }\n return polys;\n };\n function almostEq(a, b) {\n return Math.abs(a - b) <= 1e-6;\n }\n function dist(a, b) {\n var dx = b[1] - a[1];\n var dy = b[2] - a[2];\n return Math.sqrt(\n dx * dx + dy * dy\n );\n }\n exports.pointsOnRectangle = function(cell) {\n var len = cell.length;\n if (len !== 5) return false;\n for (var j = 1; j < 3; j++) {\n var e01 = cell[0][j] - cell[1][j];\n var e32 = cell[3][j] - cell[2][j];\n if (!almostEq(e01, e32)) return false;\n var e03 = cell[0][j] - cell[3][j];\n var e12 = cell[1][j] - cell[2][j];\n if (!almostEq(e03, e12)) return false;\n }\n if (!almostEq(cell[0][1], cell[1][1]) && !almostEq(cell[0][1], cell[3][1])) return false;\n return !!(dist(cell[0], cell[1]) * dist(cell[0], cell[3]));\n };\n exports.pointsOnEllipse = function(cell) {\n var len = cell.length;\n if (len !== CIRCLE_SIDES + 1) return false;\n len = CIRCLE_SIDES;\n for (var i = 0; i < len; i++) {\n var k = (len * 2 - i) % len;\n var k2 = (len / 2 + k) % len;\n var i2 = (len / 2 + i) % len;\n if (!almostEq(\n dist(cell[i], cell[i2]),\n dist(cell[k], cell[k2])\n )) return false;\n }\n return true;\n };\n exports.handleEllipse = function(isEllipse, start, end) {\n if (!isEllipse) return [start, end];\n var pos = exports.ellipseOver({\n x0: start[0],\n y0: start[1],\n x1: end[0],\n y1: end[1]\n });\n var cx = (pos.x1 + pos.x0) / 2;\n var cy = (pos.y1 + pos.y0) / 2;\n var rx = (pos.x1 - pos.x0) / 2;\n var ry = (pos.y1 - pos.y0) / 2;\n if (!rx) rx = ry = ry / SQRT2;\n if (!ry) ry = rx = rx / SQRT2;\n var cell = [];\n for (var i = 0; i < CIRCLE_SIDES; i++) {\n var t = i * 2 * Math.PI / CIRCLE_SIDES;\n cell.push([\n cx + rx * Math.cos(t),\n cy + ry * Math.sin(t)\n ]);\n }\n return cell;\n };\n exports.ellipseOver = function(pos) {\n var x0 = pos.x0;\n var y0 = pos.y0;\n var x1 = pos.x1;\n var y1 = pos.y1;\n var dx = x1 - x0;\n var dy = y1 - y0;\n x0 -= dx;\n y0 -= dy;\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var scale = SQRT2;\n dx *= scale;\n dy *= scale;\n return {\n x0: cx - dx,\n y0: cy - dy,\n x1: cx + dx,\n y1: cy + dy\n };\n };\n exports.fixDatesForPaths = function(polygons, xaxis, yaxis) {\n var xIsDate = xaxis.type === \"date\";\n var yIsDate = yaxis.type === \"date\";\n if (!xIsDate && !yIsDate) return polygons;\n for (var i = 0; i < polygons.length; i++) {\n for (var j = 0; j < polygons[i].length; j++) {\n for (var k = 0; k + 2 < polygons[i][j].length; k += 2) {\n if (xIsDate) polygons[i][j][k + 1] = polygons[i][j][k + 1].replace(\" \", \"_\");\n if (yIsDate) polygons[i][j][k + 2] = polygons[i][j][k + 2].replace(\" \", \"_\");\n }\n }\n }\n return polygons;\n };\n }\n });\n\n // src/components/shapes/draw_newshape/newshapes.js\n var require_newshapes = __commonJS({\n \"src/components/shapes/draw_newshape/newshapes.js\"(exports, module) {\n \"use strict\";\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var openMode = dragHelpers.openMode;\n var constants = require_constants4();\n var i000 = constants.i000;\n var i090 = constants.i090;\n var i180 = constants.i180;\n var i270 = constants.i270;\n var cos45 = constants.cos45;\n var sin45 = constants.sin45;\n var cartesianHelpers = require_helpers6();\n var p2r = cartesianHelpers.p2r;\n var r2p = cartesianHelpers.r2p;\n var handleOutline = require_handle_outline();\n var clearOutline = handleOutline.clearOutline;\n var helpers = require_helpers7();\n var readPaths = helpers.readPaths;\n var writePaths = helpers.writePaths;\n var ellipseOver = helpers.ellipseOver;\n var fixDatesForPaths = helpers.fixDatesForPaths;\n function newShapes(outlines, dragOptions) {\n if (!outlines.length) return;\n var e = outlines[0][0];\n if (!e) return;\n var gd = dragOptions.gd;\n var isActiveShape = dragOptions.isActiveShape;\n var dragmode = dragOptions.dragmode;\n var shapes = (gd.layout || {}).shapes || [];\n if (!drawMode(dragmode) && isActiveShape !== void 0) {\n var id = gd._fullLayout._activeShapeIndex;\n if (id < shapes.length) {\n switch (gd._fullLayout.shapes[id].type) {\n case \"rect\":\n dragmode = \"drawrect\";\n break;\n case \"circle\":\n dragmode = \"drawcircle\";\n break;\n case \"line\":\n dragmode = \"drawline\";\n break;\n case \"path\":\n var path = shapes[id].path || \"\";\n if (path[path.length - 1] === \"Z\") {\n dragmode = \"drawclosedpath\";\n } else {\n dragmode = \"drawopenpath\";\n }\n break;\n }\n }\n }\n var newShape = createShapeObj(outlines, dragOptions, dragmode);\n clearOutline(gd);\n var editHelpers = dragOptions.editHelpers;\n var modifyItem = (editHelpers || {}).modifyItem;\n var allShapes = [];\n for (var q = 0; q < shapes.length; q++) {\n var beforeEdit = gd._fullLayout.shapes[q];\n allShapes[q] = beforeEdit._input;\n if (isActiveShape !== void 0 && q === gd._fullLayout._activeShapeIndex) {\n var afterEdit = newShape;\n switch (beforeEdit.type) {\n case \"line\":\n case \"rect\":\n case \"circle\":\n modifyItem(\"x0\", afterEdit.x0 - (beforeEdit.x0shift || 0));\n modifyItem(\"x1\", afterEdit.x1 - (beforeEdit.x1shift || 0));\n modifyItem(\"y0\", afterEdit.y0 - (beforeEdit.y0shift || 0));\n modifyItem(\"y1\", afterEdit.y1 - (beforeEdit.y1shift || 0));\n break;\n case \"path\":\n modifyItem(\"path\", afterEdit.path);\n break;\n }\n }\n }\n if (isActiveShape === void 0) {\n allShapes.push(newShape);\n return allShapes;\n }\n return editHelpers ? editHelpers.getUpdateObj() : {};\n }\n function createShapeObj(outlines, dragOptions, dragmode) {\n var e = outlines[0][0];\n var gd = dragOptions.gd;\n var d = e.getAttribute(\"d\");\n var newStyle = gd._fullLayout.newshape;\n var plotinfo = dragOptions.plotinfo;\n var isActiveShape = dragOptions.isActiveShape;\n var xaxis = plotinfo.xaxis;\n var yaxis = plotinfo.yaxis;\n var xPaper = !!plotinfo.domain || !plotinfo.xaxis;\n var yPaper = !!plotinfo.domain || !plotinfo.yaxis;\n var isOpenMode = openMode(dragmode);\n var polygons = readPaths(d, gd, plotinfo, isActiveShape);\n var newShape = {\n editable: true,\n visible: newStyle.visible,\n name: newStyle.name,\n showlegend: newStyle.showlegend,\n legend: newStyle.legend,\n legendwidth: newStyle.legendwidth,\n legendgroup: newStyle.legendgroup,\n legendgrouptitle: {\n text: newStyle.legendgrouptitle.text,\n font: newStyle.legendgrouptitle.font\n },\n legendrank: newStyle.legendrank,\n label: newStyle.label,\n xref: xPaper ? \"paper\" : xaxis._id,\n yref: yPaper ? \"paper\" : yaxis._id,\n layer: newStyle.layer,\n opacity: newStyle.opacity,\n line: {\n color: newStyle.line.color,\n width: newStyle.line.width,\n dash: newStyle.line.dash\n }\n };\n if (!isOpenMode) {\n newShape.fillcolor = newStyle.fillcolor;\n newShape.fillrule = newStyle.fillrule;\n }\n var cell;\n if (polygons.length === 1) cell = polygons[0];\n if (cell && cell.length === 5 && // ensure we only have 4 corners for a rect\n dragmode === \"drawrect\") {\n newShape.type = \"rect\";\n newShape.x0 = cell[0][1];\n newShape.y0 = cell[0][2];\n newShape.x1 = cell[2][1];\n newShape.y1 = cell[2][2];\n } else if (cell && dragmode === \"drawline\") {\n newShape.type = \"line\";\n newShape.x0 = cell[0][1];\n newShape.y0 = cell[0][2];\n newShape.x1 = cell[1][1];\n newShape.y1 = cell[1][2];\n } else if (cell && dragmode === \"drawcircle\") {\n newShape.type = \"circle\";\n var xA = cell[i000][1];\n var xB = cell[i090][1];\n var xC = cell[i180][1];\n var xD = cell[i270][1];\n var yA = cell[i000][2];\n var yB = cell[i090][2];\n var yC = cell[i180][2];\n var yD = cell[i270][2];\n var xDateOrLog = plotinfo.xaxis && (plotinfo.xaxis.type === \"date\" || plotinfo.xaxis.type === \"log\");\n var yDateOrLog = plotinfo.yaxis && (plotinfo.yaxis.type === \"date\" || plotinfo.yaxis.type === \"log\");\n if (xDateOrLog) {\n xA = r2p(plotinfo.xaxis, xA);\n xB = r2p(plotinfo.xaxis, xB);\n xC = r2p(plotinfo.xaxis, xC);\n xD = r2p(plotinfo.xaxis, xD);\n }\n if (yDateOrLog) {\n yA = r2p(plotinfo.yaxis, yA);\n yB = r2p(plotinfo.yaxis, yB);\n yC = r2p(plotinfo.yaxis, yC);\n yD = r2p(plotinfo.yaxis, yD);\n }\n var x0 = (xB + xD) / 2;\n var y0 = (yA + yC) / 2;\n var rx = (xD - xB + xC - xA) / 2;\n var ry = (yD - yB + yC - yA) / 2;\n var pos = ellipseOver({\n x0,\n y0,\n x1: x0 + rx * cos45,\n y1: y0 + ry * sin45\n });\n if (xDateOrLog) {\n pos.x0 = p2r(plotinfo.xaxis, pos.x0);\n pos.x1 = p2r(plotinfo.xaxis, pos.x1);\n }\n if (yDateOrLog) {\n pos.y0 = p2r(plotinfo.yaxis, pos.y0);\n pos.y1 = p2r(plotinfo.yaxis, pos.y1);\n }\n newShape.x0 = pos.x0;\n newShape.y0 = pos.y0;\n newShape.x1 = pos.x1;\n newShape.y1 = pos.y1;\n } else {\n newShape.type = \"path\";\n if (xaxis && yaxis) fixDatesForPaths(polygons, xaxis, yaxis);\n newShape.path = writePaths(polygons);\n cell = null;\n }\n return newShape;\n }\n module.exports = {\n newShapes,\n createShapeObj\n };\n }\n });\n\n // src/components/selections/draw_newselection/newselections.js\n var require_newselections = __commonJS({\n \"src/components/selections/draw_newselection/newselections.js\"(exports, module) {\n \"use strict\";\n var dragHelpers = require_helpers5();\n var selectMode = dragHelpers.selectMode;\n var handleOutline = require_handle_outline();\n var clearOutline = handleOutline.clearOutline;\n var helpers = require_helpers7();\n var readPaths = helpers.readPaths;\n var writePaths = helpers.writePaths;\n var fixDatesForPaths = helpers.fixDatesForPaths;\n module.exports = function newSelections(outlines, dragOptions) {\n if (!outlines.length) return;\n var e = outlines[0][0];\n if (!e) return;\n var d = e.getAttribute(\"d\");\n var gd = dragOptions.gd;\n var newStyle = gd._fullLayout.newselection;\n var plotinfo = dragOptions.plotinfo;\n var xaxis = plotinfo.xaxis;\n var yaxis = plotinfo.yaxis;\n var isActiveSelection = dragOptions.isActiveSelection;\n var dragmode = dragOptions.dragmode;\n var selections = (gd.layout || {}).selections || [];\n if (!selectMode(dragmode) && isActiveSelection !== void 0) {\n var id = gd._fullLayout._activeSelectionIndex;\n if (id < selections.length) {\n switch (gd._fullLayout.selections[id].type) {\n case \"rect\":\n dragmode = \"select\";\n break;\n case \"path\":\n dragmode = \"lasso\";\n break;\n }\n }\n }\n var polygons = readPaths(d, gd, plotinfo, isActiveSelection);\n var newSelection = {\n xref: xaxis._id,\n yref: yaxis._id,\n opacity: newStyle.opacity,\n line: {\n color: newStyle.line.color,\n width: newStyle.line.width,\n dash: newStyle.line.dash\n }\n };\n var cell;\n if (polygons.length === 1) cell = polygons[0];\n if (cell && cell.length === 5 && // ensure we only have 4 corners for a rect\n dragmode === \"select\") {\n newSelection.type = \"rect\";\n newSelection.x0 = cell[0][1];\n newSelection.y0 = cell[0][2];\n newSelection.x1 = cell[2][1];\n newSelection.y1 = cell[2][2];\n } else {\n newSelection.type = \"path\";\n if (xaxis && yaxis) fixDatesForPaths(polygons, xaxis, yaxis);\n newSelection.path = writePaths(polygons);\n cell = null;\n }\n clearOutline(gd);\n var editHelpers = dragOptions.editHelpers;\n var modifyItem = (editHelpers || {}).modifyItem;\n var allSelections = [];\n for (var q = 0; q < selections.length; q++) {\n var beforeEdit = gd._fullLayout.selections[q];\n if (!beforeEdit) {\n allSelections[q] = beforeEdit;\n continue;\n }\n allSelections[q] = beforeEdit._input;\n if (isActiveSelection !== void 0 && q === gd._fullLayout._activeSelectionIndex) {\n var afterEdit = newSelection;\n switch (beforeEdit.type) {\n case \"rect\":\n modifyItem(\"x0\", afterEdit.x0);\n modifyItem(\"x1\", afterEdit.x1);\n modifyItem(\"y0\", afterEdit.y0);\n modifyItem(\"y1\", afterEdit.y1);\n break;\n case \"path\":\n modifyItem(\"path\", afterEdit.path);\n break;\n }\n }\n }\n if (isActiveSelection === void 0) {\n allSelections.push(newSelection);\n return allSelections;\n }\n return editHelpers ? editHelpers.getUpdateObj() : {};\n };\n }\n });\n\n // src/components/shapes/constants.js\n var require_constants5 = __commonJS({\n \"src/components/shapes/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n segmentRE: /[MLHVQCTSZ][^MLHVQCTSZ]*/g,\n paramRE: /[^\\s,]+/g,\n // which numbers in each path segment are x (or y) values\n // drawn is which param is a drawn point, as opposed to a\n // control point (which doesn't count toward autorange.\n // TODO: this means curved paths could extend beyond the\n // autorange bounds. This is a bit tricky to get right\n // unless we revert to bounding boxes, but perhaps there's\n // a calculation we could do...)\n paramIsX: {\n M: { 0: true, drawn: 0 },\n L: { 0: true, drawn: 0 },\n H: { 0: true, drawn: 0 },\n V: {},\n Q: { 0: true, 2: true, drawn: 2 },\n C: { 0: true, 2: true, 4: true, drawn: 4 },\n T: { 0: true, drawn: 0 },\n S: { 0: true, 2: true, drawn: 2 },\n // A: {0: true, 5: true},\n Z: {}\n },\n paramIsY: {\n M: { 1: true, drawn: 1 },\n L: { 1: true, drawn: 1 },\n H: {},\n V: { 0: true, drawn: 0 },\n Q: { 1: true, 3: true, drawn: 3 },\n C: { 1: true, 3: true, 5: true, drawn: 5 },\n T: { 1: true, drawn: 1 },\n S: { 1: true, 3: true, drawn: 5 },\n // A: {1: true, 6: true},\n Z: {}\n },\n numParams: {\n M: 2,\n L: 2,\n H: 1,\n V: 1,\n Q: 4,\n C: 6,\n T: 2,\n S: 4,\n // A: 7,\n Z: 0\n }\n };\n }\n });\n\n // src/components/shapes/helpers.js\n var require_helpers8 = __commonJS({\n \"src/components/shapes/helpers.js\"(exports) {\n \"use strict\";\n var constants = require_constants5();\n var Lib = require_lib();\n var Axes = require_axes();\n exports.rangeToShapePosition = function(ax) {\n return ax.type === \"log\" ? ax.r2d : function(v) {\n return v;\n };\n };\n exports.shapePositionToRange = function(ax) {\n return ax.type === \"log\" ? ax.d2r : function(v) {\n return v;\n };\n };\n exports.decodeDate = function(convertToPx) {\n return function(v) {\n if (v.replace) v = v.replace(\"_\", \" \");\n return convertToPx(v);\n };\n };\n exports.encodeDate = function(convertToDate) {\n return function(v) {\n return convertToDate(v).replace(\" \", \"_\");\n };\n };\n exports.extractPathCoords = function(path, paramsToUse, isRaw) {\n var extractedCoordinates = [];\n var segments = path.match(constants.segmentRE);\n segments.forEach(function(segment) {\n var relevantParamIdx = paramsToUse[segment.charAt(0)].drawn;\n if (relevantParamIdx === void 0) return;\n var params = segment.substr(1).match(constants.paramRE);\n if (!params || params.length < relevantParamIdx) return;\n var str = params[relevantParamIdx];\n var pos = isRaw ? str : Lib.cleanNumber(str);\n extractedCoordinates.push(pos);\n });\n return extractedCoordinates;\n };\n exports.getDataToPixel = function(gd, axis, shift, isVertical, refType) {\n var gs = gd._fullLayout._size;\n var dataToPixel;\n if (axis) {\n if (refType === \"domain\") {\n dataToPixel = function(v) {\n return axis._length * (isVertical ? 1 - v : v) + axis._offset;\n };\n } else {\n var d2r = exports.shapePositionToRange(axis);\n dataToPixel = function(v) {\n var shiftPixels = getPixelShift(axis, shift);\n return axis._offset + axis.r2p(d2r(v, true)) + shiftPixels;\n };\n if (axis.type === \"date\") dataToPixel = exports.decodeDate(dataToPixel);\n }\n } else if (isVertical) {\n dataToPixel = function(v) {\n return gs.t + gs.h * (1 - v);\n };\n } else {\n dataToPixel = function(v) {\n return gs.l + gs.w * v;\n };\n }\n return dataToPixel;\n };\n exports.getPixelToData = function(gd, axis, isVertical, opt) {\n var gs = gd._fullLayout._size;\n var pixelToData;\n if (axis) {\n if (opt === \"domain\") {\n pixelToData = function(p) {\n var q = (p - axis._offset) / axis._length;\n return isVertical ? 1 - q : q;\n };\n } else {\n var r2d = exports.rangeToShapePosition(axis);\n pixelToData = function(p) {\n return r2d(axis.p2r(p - axis._offset));\n };\n }\n } else if (isVertical) {\n pixelToData = function(p) {\n return 1 - (p - gs.t) / gs.h;\n };\n } else {\n pixelToData = function(p) {\n return (p - gs.l) / gs.w;\n };\n }\n return pixelToData;\n };\n exports.roundPositionForSharpStrokeRendering = function(pos, strokeWidth) {\n var strokeWidthIsOdd = Math.round(strokeWidth % 2) === 1;\n var posValAsInt = Math.round(pos);\n return strokeWidthIsOdd ? posValAsInt + 0.5 : posValAsInt;\n };\n exports.makeShapesOptionsAndPlotinfo = function(gd, index) {\n var options = gd._fullLayout.shapes[index] || {};\n var plotinfo = gd._fullLayout._plots[options.xref + options.yref];\n var hasPlotinfo = !!plotinfo;\n if (hasPlotinfo) {\n plotinfo._hadPlotinfo = true;\n } else {\n plotinfo = {};\n if (options.xref && options.xref !== \"paper\") plotinfo.xaxis = gd._fullLayout[options.xref + \"axis\"];\n if (options.yref && options.yref !== \"paper\") plotinfo.yaxis = gd._fullLayout[options.yref + \"axis\"];\n }\n plotinfo.xsizemode = options.xsizemode;\n plotinfo.ysizemode = options.ysizemode;\n plotinfo.xanchor = options.xanchor;\n plotinfo.yanchor = options.yanchor;\n return {\n options,\n plotinfo\n };\n };\n exports.makeSelectionsOptionsAndPlotinfo = function(gd, index) {\n var options = gd._fullLayout.selections[index] || {};\n var plotinfo = gd._fullLayout._plots[options.xref + options.yref];\n var hasPlotinfo = !!plotinfo;\n if (hasPlotinfo) {\n plotinfo._hadPlotinfo = true;\n } else {\n plotinfo = {};\n if (options.xref) plotinfo.xaxis = gd._fullLayout[options.xref + \"axis\"];\n if (options.yref) plotinfo.yaxis = gd._fullLayout[options.yref + \"axis\"];\n }\n return {\n options,\n plotinfo\n };\n };\n exports.getPathString = function(gd, options) {\n var type = options.type;\n var xRefType = Axes.getRefType(options.xref);\n var yRefType = Axes.getRefType(options.yref);\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var gs = gd._fullLayout._size;\n var x2r, x2p, y2r, y2p;\n var xShiftStart = getPixelShift(xa, options.x0shift);\n var xShiftEnd = getPixelShift(xa, options.x1shift);\n var yShiftStart = getPixelShift(ya, options.y0shift);\n var yShiftEnd = getPixelShift(ya, options.y1shift);\n var x0, x1, y0, y1;\n if (xa) {\n if (xRefType === \"domain\") {\n x2p = function(v) {\n return xa._offset + xa._length * v;\n };\n } else {\n x2r = exports.shapePositionToRange(xa);\n x2p = function(v) {\n return xa._offset + xa.r2p(x2r(v, true));\n };\n }\n } else {\n x2p = function(v) {\n return gs.l + gs.w * v;\n };\n }\n if (ya) {\n if (yRefType === \"domain\") {\n y2p = function(v) {\n return ya._offset + ya._length * (1 - v);\n };\n } else {\n y2r = exports.shapePositionToRange(ya);\n y2p = function(v) {\n return ya._offset + ya.r2p(y2r(v, true));\n };\n }\n } else {\n y2p = function(v) {\n return gs.t + gs.h * (1 - v);\n };\n }\n if (type === \"path\") {\n if (xa && xa.type === \"date\") x2p = exports.decodeDate(x2p);\n if (ya && ya.type === \"date\") y2p = exports.decodeDate(y2p);\n return convertPath(options, x2p, y2p);\n }\n if (options.xsizemode === \"pixel\") {\n var xAnchorPos = x2p(options.xanchor);\n x0 = xAnchorPos + options.x0 + xShiftStart;\n x1 = xAnchorPos + options.x1 + xShiftEnd;\n } else {\n x0 = x2p(options.x0) + xShiftStart;\n x1 = x2p(options.x1) + xShiftEnd;\n }\n if (options.ysizemode === \"pixel\") {\n var yAnchorPos = y2p(options.yanchor);\n y0 = yAnchorPos - options.y0 + yShiftStart;\n y1 = yAnchorPos - options.y1 + yShiftEnd;\n } else {\n y0 = y2p(options.y0) + yShiftStart;\n y1 = y2p(options.y1) + yShiftEnd;\n }\n if (type === \"line\") return \"M\" + x0 + \",\" + y0 + \"L\" + x1 + \",\" + y1;\n if (type === \"rect\") return \"M\" + x0 + \",\" + y0 + \"H\" + x1 + \"V\" + y1 + \"H\" + x0 + \"Z\";\n var cx = (x0 + x1) / 2;\n var cy = (y0 + y1) / 2;\n var rx = Math.abs(cx - x0);\n var ry = Math.abs(cy - y0);\n var rArc = \"A\" + rx + \",\" + ry;\n var rightPt = cx + rx + \",\" + cy;\n var topPt = cx + \",\" + (cy - ry);\n return \"M\" + rightPt + rArc + \" 0 1,1 \" + topPt + rArc + \" 0 0,1 \" + rightPt + \"Z\";\n };\n function convertPath(options, x2p, y2p) {\n var pathIn = options.path;\n var xSizemode = options.xsizemode;\n var ySizemode = options.ysizemode;\n var xAnchor = options.xanchor;\n var yAnchor = options.yanchor;\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if (xParams[paramNumber]) {\n if (xSizemode === \"pixel\") param = x2p(xAnchor) + Number(param);\n else param = x2p(param);\n } else if (yParams[paramNumber]) {\n if (ySizemode === \"pixel\") param = y2p(yAnchor) - Number(param);\n else param = y2p(param);\n }\n paramNumber++;\n if (paramNumber > nParams) param = \"X\";\n return param;\n });\n if (paramNumber > nParams) {\n paramString = paramString.replace(/[\\s,]*X.*/, \"\");\n Lib.log(\"Ignoring extra params in segment \" + segment);\n }\n return segmentType + paramString;\n });\n }\n function getPixelShift(axis, shift) {\n shift = shift || 0;\n var shiftPixels = 0;\n if (shift && axis && (axis.type === \"category\" || axis.type === \"multicategory\")) {\n shiftPixels = (axis.r2p(1) - axis.r2p(0)) * shift;\n }\n return shiftPixels;\n }\n }\n });\n\n // src/components/shapes/display_labels.js\n var require_display_labels = __commonJS({\n \"src/components/shapes/display_labels.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var svgTextUtils = require_svg_text_utils();\n var Drawing = require_drawing();\n var readPaths = require_helpers7().readPaths;\n var helpers = require_helpers8();\n var getPathString = helpers.getPathString;\n var shapeLabelTexttemplateVars = require_label_texttemplate();\n var FROM_TL = require_alignment().FROM_TL;\n module.exports = function drawLabel(gd, index, options, shapeGroup) {\n shapeGroup.selectAll(\".shape-label\").remove();\n if (!(options.label.text || options.label.texttemplate)) return;\n var text;\n if (options.label.texttemplate) {\n var templateValues = {};\n if (options.type !== \"path\") {\n var _xa = Axes.getFromId(gd, options.xref);\n var _ya = Axes.getFromId(gd, options.yref);\n for (var key in shapeLabelTexttemplateVars) {\n var val = shapeLabelTexttemplateVars[key](options, _xa, _ya);\n if (val !== void 0) templateValues[key] = val;\n }\n }\n text = Lib.texttemplateStringForShapes(\n options.label.texttemplate,\n {},\n gd._fullLayout._d3locale,\n templateValues\n );\n } else {\n text = options.label.text;\n }\n var labelGroupAttrs = {\n \"data-index\": index\n };\n var font = options.label.font;\n var labelTextAttrs = {\n \"data-notex\": 1\n };\n var labelGroup = shapeGroup.append(\"g\").attr(labelGroupAttrs).classed(\"shape-label\", true);\n var labelText = labelGroup.append(\"text\").attr(labelTextAttrs).classed(\"shape-label-text\", true).text(text);\n var shapex0, shapex1, shapey0, shapey1;\n if (options.path) {\n var d = getPathString(gd, options);\n var polygons = readPaths(d, gd);\n shapex0 = Infinity;\n shapey0 = Infinity;\n shapex1 = -Infinity;\n shapey1 = -Infinity;\n for (var i = 0; i < polygons.length; i++) {\n for (var j = 0; j < polygons[i].length; j++) {\n var p = polygons[i][j];\n for (var k = 1; k < p.length; k += 2) {\n var _x = p[k];\n var _y = p[k + 1];\n shapex0 = Math.min(shapex0, _x);\n shapex1 = Math.max(shapex1, _x);\n shapey0 = Math.min(shapey0, _y);\n shapey1 = Math.max(shapey1, _y);\n }\n }\n }\n } else {\n var xa = Axes.getFromId(gd, options.xref);\n var xShiftStart = options.x0shift;\n var xShiftEnd = options.x1shift;\n var xRefType = Axes.getRefType(options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n var yShiftStart = options.y0shift;\n var yShiftEnd = options.y1shift;\n var yRefType = Axes.getRefType(options.yref);\n var x2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, xa, shift, false, xRefType);\n return dataToPixel(v);\n };\n var y2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, ya, shift, true, yRefType);\n return dataToPixel(v);\n };\n shapex0 = x2p(options.x0, xShiftStart);\n shapex1 = x2p(options.x1, xShiftEnd);\n shapey0 = y2p(options.y0, yShiftStart);\n shapey1 = y2p(options.y1, yShiftEnd);\n }\n var textangle = options.label.textangle;\n if (textangle === \"auto\") {\n if (options.type === \"line\") {\n textangle = calcTextAngle(shapex0, shapey0, shapex1, shapey1);\n } else {\n textangle = 0;\n }\n }\n labelText.call(function(s) {\n s.call(Drawing.font, font).attr({});\n svgTextUtils.convertToTspans(s, gd);\n return s;\n });\n var textBB = Drawing.bBox(labelText.node());\n var textPos = calcTextPosition(shapex0, shapey0, shapex1, shapey1, options, textangle, textBB);\n var textx = textPos.textx;\n var texty = textPos.texty;\n var xanchor = textPos.xanchor;\n labelText.attr({\n \"text-anchor\": {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n }[xanchor],\n y: texty,\n x: textx,\n transform: \"rotate(\" + textangle + \",\" + textx + \",\" + texty + \")\"\n }).call(svgTextUtils.positionText, textx, texty);\n };\n function calcTextAngle(shapex0, shapey0, shapex1, shapey1) {\n var dy, dx;\n dx = Math.abs(shapex1 - shapex0);\n if (shapex1 >= shapex0) {\n dy = shapey0 - shapey1;\n } else {\n dy = shapey1 - shapey0;\n }\n return -180 / Math.PI * Math.atan2(dy, dx);\n }\n function calcTextPosition(shapex0, shapey0, shapex1, shapey1, shapeOptions, actualTextAngle, textBB) {\n var textPosition = shapeOptions.label.textposition;\n var textAngle = shapeOptions.label.textangle;\n var textPadding = shapeOptions.label.padding;\n var shapeType = shapeOptions.type;\n var textAngleRad = Math.PI / 180 * actualTextAngle;\n var sinA = Math.sin(textAngleRad);\n var cosA = Math.cos(textAngleRad);\n var xanchor = shapeOptions.label.xanchor;\n var yanchor = shapeOptions.label.yanchor;\n var textx, texty, paddingX, paddingY;\n if (shapeType === \"line\") {\n if (textPosition === \"start\") {\n textx = shapex0;\n texty = shapey0;\n } else if (textPosition === \"end\") {\n textx = shapex1;\n texty = shapey1;\n } else {\n textx = (shapex0 + shapex1) / 2;\n texty = (shapey0 + shapey1) / 2;\n }\n if (xanchor === \"auto\") {\n if (textPosition === \"start\") {\n if (textAngle === \"auto\") {\n if (shapex1 > shapex0) xanchor = \"left\";\n else if (shapex1 < shapex0) xanchor = \"right\";\n else xanchor = \"center\";\n } else {\n if (shapex1 > shapex0) xanchor = \"right\";\n else if (shapex1 < shapex0) xanchor = \"left\";\n else xanchor = \"center\";\n }\n } else if (textPosition === \"end\") {\n if (textAngle === \"auto\") {\n if (shapex1 > shapex0) xanchor = \"right\";\n else if (shapex1 < shapex0) xanchor = \"left\";\n else xanchor = \"center\";\n } else {\n if (shapex1 > shapex0) xanchor = \"left\";\n else if (shapex1 < shapex0) xanchor = \"right\";\n else xanchor = \"center\";\n }\n } else {\n xanchor = \"center\";\n }\n }\n var paddingConstantsX = { left: 1, center: 0, right: -1 };\n var paddingConstantsY = { bottom: -1, middle: 0, top: 1 };\n if (textAngle === \"auto\") {\n var paddingDirection = paddingConstantsY[yanchor];\n paddingX = -textPadding * sinA * paddingDirection;\n paddingY = textPadding * cosA * paddingDirection;\n } else {\n var paddingDirectionX = paddingConstantsX[xanchor];\n var paddingDirectionY = paddingConstantsY[yanchor];\n paddingX = textPadding * paddingDirectionX;\n paddingY = textPadding * paddingDirectionY;\n }\n textx = textx + paddingX;\n texty = texty + paddingY;\n } else {\n paddingX = textPadding + 3;\n if (textPosition.indexOf(\"right\") !== -1) {\n textx = Math.max(shapex0, shapex1) - paddingX;\n if (xanchor === \"auto\") xanchor = \"right\";\n } else if (textPosition.indexOf(\"left\") !== -1) {\n textx = Math.min(shapex0, shapex1) + paddingX;\n if (xanchor === \"auto\") xanchor = \"left\";\n } else {\n textx = (shapex0 + shapex1) / 2;\n if (xanchor === \"auto\") xanchor = \"center\";\n }\n if (textPosition.indexOf(\"top\") !== -1) {\n texty = Math.min(shapey0, shapey1);\n } else if (textPosition.indexOf(\"bottom\") !== -1) {\n texty = Math.max(shapey0, shapey1);\n } else {\n texty = (shapey0 + shapey1) / 2;\n }\n paddingY = textPadding;\n if (yanchor === \"bottom\") {\n texty = texty - paddingY;\n } else if (yanchor === \"top\") {\n texty = texty + paddingY;\n }\n }\n var shiftFraction = FROM_TL[yanchor];\n var baselineAdjust = shapeOptions.label.font.size;\n var textHeight = textBB.height;\n var xshift = (textHeight * shiftFraction - baselineAdjust) * sinA;\n var yshift = -(textHeight * shiftFraction - baselineAdjust) * cosA;\n return { textx: textx + xshift, texty: texty + yshift, xanchor };\n }\n }\n });\n\n // src/components/shapes/display_outlines.js\n var require_display_outlines = __commonJS({\n \"src/components/shapes/display_outlines.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var dragElement = require_dragelement();\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var selectMode = dragHelpers.selectMode;\n var Registry = require_registry();\n var Color2 = require_color();\n var constants = require_constants4();\n var i000 = constants.i000;\n var i090 = constants.i090;\n var i180 = constants.i180;\n var i270 = constants.i270;\n var handleOutline = require_handle_outline();\n var clearOutlineControllers = handleOutline.clearOutlineControllers;\n var helpers = require_helpers7();\n var pointsOnRectangle = helpers.pointsOnRectangle;\n var pointsOnEllipse = helpers.pointsOnEllipse;\n var writePaths = helpers.writePaths;\n var newShapes = require_newshapes().newShapes;\n var createShapeObj = require_newshapes().createShapeObj;\n var newSelections = require_newselections();\n var drawLabel = require_display_labels();\n module.exports = function displayOutlines(polygons, outlines, dragOptions, nCalls) {\n if (!nCalls) nCalls = 0;\n var gd = dragOptions.gd;\n function redraw() {\n displayOutlines(polygons, outlines, dragOptions, nCalls++);\n if (pointsOnEllipse(polygons[0]) || dragOptions.hasText) {\n update({ redrawing: true });\n }\n }\n function update(opts) {\n var updateObject = {};\n if (dragOptions.isActiveShape !== void 0) {\n dragOptions.isActiveShape = false;\n updateObject = newShapes(outlines, dragOptions);\n }\n if (dragOptions.isActiveSelection !== void 0) {\n dragOptions.isActiveSelection = false;\n updateObject = newSelections(outlines, dragOptions);\n gd._fullLayout._reselect = true;\n }\n if (Object.keys(updateObject).length) {\n Registry.call((opts || {}).redrawing ? \"relayout\" : \"_guiRelayout\", gd, updateObject);\n }\n }\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var dragmode = dragOptions.dragmode;\n var isDrawMode = drawMode(dragmode);\n var isSelectMode = selectMode(dragmode);\n if (isDrawMode || isSelectMode) {\n gd._fullLayout._outlining = true;\n }\n clearOutlineControllers(gd);\n outlines.attr(\"d\", writePaths(polygons));\n var vertexDragOptions;\n var groupDragOptions;\n var indexI;\n var indexJ;\n var copyPolygons;\n if (!nCalls && (dragOptions.isActiveShape || dragOptions.isActiveSelection)) {\n copyPolygons = recordPositions([], polygons);\n var g = zoomLayer.append(\"g\").attr(\"class\", \"outline-controllers\");\n addVertexControllers(g);\n addGroupControllers();\n }\n if (isDrawMode && dragOptions.hasText) {\n var shapeGroup = zoomLayer.select(\".label-temp\");\n var shapeOptions = createShapeObj(outlines, dragOptions, dragOptions.dragmode);\n drawLabel(gd, \"label-temp\", shapeOptions, shapeGroup);\n }\n function startDragVertex(evt) {\n indexI = +evt.srcElement.getAttribute(\"data-i\");\n indexJ = +evt.srcElement.getAttribute(\"data-j\");\n vertexDragOptions[indexI][indexJ].moveFn = moveVertexController;\n }\n function moveVertexController(dx, dy) {\n if (!polygons.length) return;\n var x0 = copyPolygons[indexI][indexJ][1];\n var y0 = copyPolygons[indexI][indexJ][2];\n var cell = polygons[indexI];\n var len = cell.length;\n if (pointsOnRectangle(cell)) {\n var _dx = dx;\n var _dy = dy;\n if (dragOptions.isActiveSelection) {\n var nextPoint = getNextPoint(cell, indexJ);\n if (nextPoint[1] === cell[indexJ][1]) {\n _dy = 0;\n } else {\n _dx = 0;\n }\n }\n for (var q = 0; q < len; q++) {\n if (q === indexJ) continue;\n var pos = cell[q];\n if (pos[1] === cell[indexJ][1]) {\n pos[1] = x0 + _dx;\n }\n if (pos[2] === cell[indexJ][2]) {\n pos[2] = y0 + _dy;\n }\n }\n cell[indexJ][1] = x0 + _dx;\n cell[indexJ][2] = y0 + _dy;\n if (!pointsOnRectangle(cell)) {\n for (var j = 0; j < len; j++) {\n for (var k = 0; k < cell[j].length; k++) {\n cell[j][k] = copyPolygons[indexI][j][k];\n }\n }\n }\n } else {\n cell[indexJ][1] = x0 + dx;\n cell[indexJ][2] = y0 + dy;\n }\n redraw();\n }\n function endDragVertexController() {\n update();\n }\n function removeVertex() {\n if (!polygons.length) return;\n if (!polygons[indexI]) return;\n if (!polygons[indexI].length) return;\n var newPolygon = [];\n for (var j = 0; j < polygons[indexI].length; j++) {\n if (j !== indexJ) {\n newPolygon.push(\n polygons[indexI][j]\n );\n }\n }\n if (newPolygon.length > 1 && !(newPolygon.length === 2 && newPolygon[1][0] === \"Z\")) {\n if (indexJ === 0) {\n newPolygon[0][0] = \"M\";\n }\n polygons[indexI] = newPolygon;\n redraw();\n update();\n }\n }\n function clickVertexController(numClicks, evt) {\n if (numClicks === 2) {\n indexI = +evt.srcElement.getAttribute(\"data-i\");\n indexJ = +evt.srcElement.getAttribute(\"data-j\");\n var cell = polygons[indexI];\n if (!pointsOnRectangle(cell) && !pointsOnEllipse(cell)) {\n removeVertex();\n }\n }\n }\n function addVertexControllers(g2) {\n vertexDragOptions = [];\n for (var i = 0; i < polygons.length; i++) {\n var cell = polygons[i];\n var onRect = pointsOnRectangle(cell);\n var onEllipse = !onRect && pointsOnEllipse(cell);\n vertexDragOptions[i] = [];\n var len = cell.length;\n for (var j = 0; j < len; j++) {\n if (cell[j][0] === \"Z\") continue;\n if (onEllipse && j !== i000 && j !== i090 && j !== i180 && j !== i270) {\n continue;\n }\n var rectSelection = onRect && dragOptions.isActiveSelection;\n var nextPoint;\n if (rectSelection) nextPoint = getNextPoint(cell, j);\n var x = cell[j][1];\n var y = cell[j][2];\n var vertex = g2.append(rectSelection ? \"rect\" : \"circle\").attr(\"data-i\", i).attr(\"data-j\", j).style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1,\n \"shape-rendering\": \"crispEdges\"\n });\n if (rectSelection) {\n var dx = nextPoint[1] - x;\n var dy = nextPoint[2] - y;\n var width = dy ? 5 : Math.max(Math.min(25, Math.abs(dx) - 5), 5);\n var height = dx ? 5 : Math.max(Math.min(25, Math.abs(dy) - 5), 5);\n vertex.classed(dy ? \"cursor-ew-resize\" : \"cursor-ns-resize\", true).attr(\"width\", width).attr(\"height\", height).attr(\"x\", x - width / 2).attr(\"y\", y - height / 2).attr(\"transform\", strTranslate(dx / 2, dy / 2));\n } else {\n vertex.classed(\"cursor-grab\", true).attr(\"r\", 5).attr(\"cx\", x).attr(\"cy\", y);\n }\n vertexDragOptions[i][j] = {\n element: vertex.node(),\n gd,\n prepFn: startDragVertex,\n doneFn: endDragVertexController,\n clickFn: clickVertexController\n };\n dragElement.init(vertexDragOptions[i][j]);\n }\n }\n }\n function moveGroup(dx, dy) {\n if (!polygons.length) return;\n for (var i = 0; i < polygons.length; i++) {\n for (var j = 0; j < polygons[i].length; j++) {\n for (var k = 0; k + 2 < polygons[i][j].length; k += 2) {\n polygons[i][j][k + 1] = copyPolygons[i][j][k + 1] + dx;\n polygons[i][j][k + 2] = copyPolygons[i][j][k + 2] + dy;\n }\n }\n }\n }\n function moveGroupController(dx, dy) {\n moveGroup(dx, dy);\n redraw();\n }\n function startDragGroupController(evt) {\n indexI = +evt.srcElement.getAttribute(\"data-i\");\n if (!indexI) indexI = 0;\n groupDragOptions[indexI].moveFn = moveGroupController;\n }\n function endDragGroupController() {\n update();\n }\n function clickGroupController(numClicks) {\n if (numClicks === 2) {\n eraseActiveSelection(gd);\n }\n }\n function addGroupControllers() {\n groupDragOptions = [];\n if (!polygons.length) return;\n var i = 0;\n groupDragOptions[i] = {\n element: outlines[0][0],\n gd,\n prepFn: startDragGroupController,\n doneFn: endDragGroupController,\n clickFn: clickGroupController\n };\n dragElement.init(groupDragOptions[i]);\n }\n };\n function recordPositions(polygonsOut, polygonsIn) {\n for (var i = 0; i < polygonsIn.length; i++) {\n var cell = polygonsIn[i];\n polygonsOut[i] = [];\n for (var j = 0; j < cell.length; j++) {\n polygonsOut[i][j] = [];\n for (var k = 0; k < cell[j].length; k++) {\n polygonsOut[i][j][k] = cell[j][k];\n }\n }\n }\n return polygonsOut;\n }\n function getNextPoint(cell, j) {\n var x = cell[j][1];\n var y = cell[j][2];\n var len = cell.length;\n var nextJ, nextX, nextY;\n nextJ = (j + 1) % len;\n nextX = cell[nextJ][1];\n nextY = cell[nextJ][2];\n if (nextX === x && nextY === y) {\n nextJ = (j + 2) % len;\n nextX = cell[nextJ][1];\n nextY = cell[nextJ][2];\n }\n return [nextJ, nextX, nextY];\n }\n function eraseActiveSelection(gd) {\n if (!selectMode(gd._fullLayout.dragmode)) return;\n clearOutlineControllers(gd);\n var id = gd._fullLayout._activeSelectionIndex;\n var selections = (gd.layout || {}).selections || [];\n if (id < selections.length) {\n var list = [];\n for (var q = 0; q < selections.length; q++) {\n if (q !== id) {\n list.push(selections[q]);\n }\n }\n delete gd._fullLayout._activeSelectionIndex;\n var erasedSelection = gd._fullLayout.selections[id];\n gd._fullLayout._deselect = {\n xref: erasedSelection.xref,\n yref: erasedSelection.yref\n };\n Registry.call(\"_guiRelayout\", gd, {\n selections: list\n });\n }\n }\n }\n });\n\n // src/components/shapes/draw.js\n var require_draw2 = __commonJS({\n \"src/components/shapes/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var Axes = require_axes();\n var readPaths = require_helpers7().readPaths;\n var displayOutlines = require_display_outlines();\n var drawLabel = require_display_labels();\n var clearOutlineControllers = require_handle_outline().clearOutlineControllers;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var arrayEditor = require_plot_template().arrayEditor;\n var dragElement = require_dragelement();\n var setCursor = require_setcursor();\n var constants = require_constants5();\n var helpers = require_helpers8();\n var getPathString = helpers.getPathString;\n module.exports = {\n draw,\n drawOne,\n eraseActiveShape,\n drawLabel\n };\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n fullLayout._shapeUpperLayer.selectAll(\"path\").remove();\n fullLayout._shapeLowerLayer.selectAll(\"path\").remove();\n fullLayout._shapeUpperLayer.selectAll(\"text\").remove();\n fullLayout._shapeLowerLayer.selectAll(\"text\").remove();\n for (var k in fullLayout._plots) {\n var shapelayer = fullLayout._plots[k].shapelayer;\n if (shapelayer) {\n shapelayer.selectAll(\"path\").remove();\n shapelayer.selectAll(\"text\").remove();\n }\n }\n for (var i = 0; i < fullLayout.shapes.length; i++) {\n if (fullLayout.shapes[i].visible === true) {\n drawOne(gd, i);\n }\n }\n }\n function shouldSkipEdits(gd) {\n return !!gd._fullLayout._outlining;\n }\n function couldHaveActiveShape(gd) {\n return !gd._context.edits.shapePosition;\n }\n function drawOne(gd, index) {\n gd._fullLayout._paperdiv.selectAll('.shapelayer [data-index=\"' + index + '\"]').remove();\n var o = helpers.makeShapesOptionsAndPlotinfo(gd, index);\n var options = o.options;\n var plotinfo = o.plotinfo;\n if (!options._input || options.visible !== true) return;\n if (options.layer === \"above\") {\n drawShape(gd._fullLayout._shapeUpperLayer);\n } else if (options.xref === \"paper\" || options.yref === \"paper\") {\n drawShape(gd._fullLayout._shapeLowerLayer);\n } else if (options.layer === \"between\") {\n drawShape(plotinfo.shapelayerBetween);\n } else {\n if (plotinfo._hadPlotinfo) {\n var mainPlot = plotinfo.mainplotinfo || plotinfo;\n drawShape(mainPlot.shapelayer);\n } else {\n drawShape(gd._fullLayout._shapeLowerLayer);\n }\n }\n function drawShape(shapeLayer) {\n var d = getPathString(gd, options);\n var attrs = {\n \"data-index\": index,\n \"fill-rule\": options.fillrule,\n d\n };\n var opacity = options.opacity;\n var fillColor = options.fillcolor;\n var lineColor = options.line.width ? options.line.color : \"rgba(0,0,0,0)\";\n var lineWidth = options.line.width;\n var lineDash = options.line.dash;\n if (!lineWidth && options.editable === true) {\n lineWidth = 5;\n lineDash = \"solid\";\n }\n var isOpen = d[d.length - 1] !== \"Z\";\n var isActiveShape = couldHaveActiveShape(gd) && options.editable && gd._fullLayout._activeShapeIndex === index;\n if (isActiveShape) {\n fillColor = isOpen ? \"rgba(0,0,0,0)\" : gd._fullLayout.activeshape.fillcolor;\n opacity = gd._fullLayout.activeshape.opacity;\n }\n var shapeGroup = shapeLayer.append(\"g\").classed(\"shape-group\", true).attr({ \"data-index\": index });\n var path = shapeGroup.append(\"path\").attr(attrs).style(\"opacity\", opacity).call(Color2.stroke, lineColor).call(Color2.fill, fillColor).call(Drawing.dashLine, lineDash, lineWidth);\n setClipPath(shapeGroup, gd, options);\n drawLabel(gd, index, options, shapeGroup);\n var editHelpers;\n if (isActiveShape || gd._context.edits.shapePosition) editHelpers = arrayEditor(gd.layout, \"shapes\", options);\n if (isActiveShape) {\n path.style({\n cursor: \"move\"\n });\n var dragOptions = {\n element: path.node(),\n plotinfo,\n gd,\n editHelpers,\n hasText: options.label.text || options.label.texttemplate,\n isActiveShape: true\n // i.e. to enable controllers\n };\n var polygons = readPaths(d, gd);\n displayOutlines(polygons, path, dragOptions);\n } else {\n if (gd._context.edits.shapePosition) {\n setupDragElement(gd, path, options, index, shapeLayer, editHelpers);\n } else if (options.editable === true) {\n path.style(\n \"pointer-events\",\n isOpen || Color2.opacity(fillColor) * opacity <= 0.5 ? \"stroke\" : \"all\"\n );\n }\n }\n path.node().addEventListener(\"click\", function() {\n return activateShape(gd, path);\n });\n }\n }\n function setClipPath(shapePath, gd, shapeOptions) {\n var clipAxes = (shapeOptions.xref + shapeOptions.yref).replace(/paper/g, \"\").replace(/[xyz][1-9]* *domain/g, \"\");\n Drawing.setClipUrl(\n shapePath,\n clipAxes ? \"clip\" + gd._fullLayout._uid + clipAxes : null,\n gd\n );\n }\n function setupDragElement(gd, shapePath, shapeOptions, index, shapeLayer, editHelpers) {\n var MINWIDTH = 10;\n var MINHEIGHT = 10;\n var xPixelSized = shapeOptions.xsizemode === \"pixel\";\n var yPixelSized = shapeOptions.ysizemode === \"pixel\";\n var isLine = shapeOptions.type === \"line\";\n var isPath = shapeOptions.type === \"path\";\n var modifyItem = editHelpers.modifyItem;\n var x0, y0, x1, y1, xAnchor, yAnchor;\n var n0, s0, w0, e0, optN, optS, optW, optE;\n var pathIn;\n var shapeGroup = d3.select(shapePath.node().parentNode);\n var xa = Axes.getFromId(gd, shapeOptions.xref);\n var xRefType = Axes.getRefType(shapeOptions.xref);\n var ya = Axes.getFromId(gd, shapeOptions.yref);\n var yRefType = Axes.getRefType(shapeOptions.yref);\n var shiftXStart = shapeOptions.x0shift;\n var shiftXEnd = shapeOptions.x1shift;\n var shiftYStart = shapeOptions.y0shift;\n var shiftYEnd = shapeOptions.y1shift;\n var x2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, xa, shift, false, xRefType);\n return dataToPixel(v);\n };\n var y2p = function(v, shift) {\n var dataToPixel = helpers.getDataToPixel(gd, ya, shift, true, yRefType);\n return dataToPixel(v);\n };\n var p2x = helpers.getPixelToData(gd, xa, false, xRefType);\n var p2y = helpers.getPixelToData(gd, ya, true, yRefType);\n var sensoryElement = obtainSensoryElement();\n var dragOptions = {\n element: sensoryElement.node(),\n gd,\n prepFn: startDrag,\n doneFn: endDrag,\n clickFn: abortDrag\n };\n var dragMode;\n dragElement.init(dragOptions);\n sensoryElement.node().onmousemove = updateDragMode;\n function obtainSensoryElement() {\n return isLine ? createLineDragHandles() : shapePath;\n }\n function createLineDragHandles() {\n var minSensoryWidth = 10;\n var sensoryWidth = Math.max(shapeOptions.line.width, minSensoryWidth);\n var g = shapeLayer.append(\"g\").attr(\"data-index\", index).attr(\"drag-helper\", true);\n g.append(\"path\").attr(\"d\", shapePath.attr(\"d\")).style({\n cursor: \"move\",\n \"stroke-width\": sensoryWidth,\n \"stroke-opacity\": \"0\"\n // ensure not visible\n });\n var circleStyle = {\n \"fill-opacity\": \"0\"\n // ensure not visible\n };\n var circleRadius = Math.max(sensoryWidth / 2, minSensoryWidth);\n g.append(\"circle\").attr({\n \"data-line-point\": \"start-point\",\n cx: xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x0 : x2p(shapeOptions.x0, shiftXStart),\n cy: yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y0 : y2p(shapeOptions.y0, shiftYStart),\n r: circleRadius\n }).style(circleStyle).classed(\"cursor-grab\", true);\n g.append(\"circle\").attr({\n \"data-line-point\": \"end-point\",\n cx: xPixelSized ? x2p(shapeOptions.xanchor) + shapeOptions.x1 : x2p(shapeOptions.x1, shiftXEnd),\n cy: yPixelSized ? y2p(shapeOptions.yanchor) - shapeOptions.y1 : y2p(shapeOptions.y1, shiftYEnd),\n r: circleRadius\n }).style(circleStyle).classed(\"cursor-grab\", true);\n return g;\n }\n function updateDragMode(evt) {\n if (shouldSkipEdits(gd)) {\n dragMode = null;\n return;\n }\n if (isLine) {\n if (evt.target.tagName === \"path\") {\n dragMode = \"move\";\n } else {\n dragMode = evt.target.attributes[\"data-line-point\"].value === \"start-point\" ? \"resize-over-start-point\" : \"resize-over-end-point\";\n }\n } else {\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var w = dragBBox.right - dragBBox.left;\n var h = dragBBox.bottom - dragBBox.top;\n var x = evt.clientX - dragBBox.left;\n var y = evt.clientY - dragBBox.top;\n var cursor = !isPath && w > MINWIDTH && h > MINHEIGHT && !evt.shiftKey ? dragElement.getCursor(x / w, 1 - y / h) : \"move\";\n setCursor(shapePath, cursor);\n dragMode = cursor.split(\"-\")[0];\n }\n }\n function startDrag(evt) {\n if (shouldSkipEdits(gd)) return;\n if (xPixelSized) {\n xAnchor = x2p(shapeOptions.xanchor);\n }\n if (yPixelSized) {\n yAnchor = y2p(shapeOptions.yanchor);\n }\n if (shapeOptions.type === \"path\") {\n pathIn = shapeOptions.path;\n } else {\n x0 = xPixelSized ? shapeOptions.x0 : x2p(shapeOptions.x0);\n y0 = yPixelSized ? shapeOptions.y0 : y2p(shapeOptions.y0);\n x1 = xPixelSized ? shapeOptions.x1 : x2p(shapeOptions.x1);\n y1 = yPixelSized ? shapeOptions.y1 : y2p(shapeOptions.y1);\n }\n if (x0 < x1) {\n w0 = x0;\n optW = \"x0\";\n e0 = x1;\n optE = \"x1\";\n } else {\n w0 = x1;\n optW = \"x1\";\n e0 = x0;\n optE = \"x0\";\n }\n if (!yPixelSized && y0 < y1 || yPixelSized && y0 > y1) {\n n0 = y0;\n optN = \"y0\";\n s0 = y1;\n optS = \"y1\";\n } else {\n n0 = y1;\n optN = \"y1\";\n s0 = y0;\n optS = \"y0\";\n }\n updateDragMode(evt);\n renderVisualCues(shapeLayer, shapeOptions);\n deactivateClipPathTemporarily(shapePath, shapeOptions, gd);\n dragOptions.moveFn = dragMode === \"move\" ? moveShape : resizeShape;\n dragOptions.altKey = evt.altKey;\n }\n function endDrag() {\n if (shouldSkipEdits(gd)) return;\n setCursor(shapePath);\n removeVisualCues(shapeLayer);\n setClipPath(shapePath, gd, shapeOptions);\n Registry.call(\"_guiRelayout\", gd, editHelpers.getUpdateObj());\n }\n function abortDrag() {\n if (shouldSkipEdits(gd)) return;\n removeVisualCues(shapeLayer);\n }\n function moveShape(dx, dy) {\n if (shapeOptions.type === \"path\") {\n var noOp = function(coord) {\n return coord;\n };\n var moveX = noOp;\n var moveY = noOp;\n if (xPixelSized) {\n modifyItem(\"xanchor\", shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX2(x) {\n return p2x(x2p(x) + dx);\n };\n if (xa && xa.type === \"date\") moveX = helpers.encodeDate(moveX);\n }\n if (yPixelSized) {\n modifyItem(\"yanchor\", shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY2(y) {\n return p2y(y2p(y) + dy);\n };\n if (ya && ya.type === \"date\") moveY = helpers.encodeDate(moveY);\n }\n modifyItem(\"path\", shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else {\n if (xPixelSized) {\n modifyItem(\"xanchor\", shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n modifyItem(\"x0\", shapeOptions.x0 = p2x(x0 + dx));\n modifyItem(\"x1\", shapeOptions.x1 = p2x(x1 + dx));\n }\n if (yPixelSized) {\n modifyItem(\"yanchor\", shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n modifyItem(\"y0\", shapeOptions.y0 = p2y(y0 + dy));\n modifyItem(\"y1\", shapeOptions.y1 = p2y(y1 + dy));\n }\n }\n shapePath.attr(\"d\", getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n drawLabel(gd, index, shapeOptions, shapeGroup);\n }\n function resizeShape(dx, dy) {\n if (isPath) {\n var noOp = function(coord) {\n return coord;\n };\n var moveX = noOp;\n var moveY = noOp;\n if (xPixelSized) {\n modifyItem(\"xanchor\", shapeOptions.xanchor = p2x(xAnchor + dx));\n } else {\n moveX = function moveX2(x) {\n return p2x(x2p(x) + dx);\n };\n if (xa && xa.type === \"date\") moveX = helpers.encodeDate(moveX);\n }\n if (yPixelSized) {\n modifyItem(\"yanchor\", shapeOptions.yanchor = p2y(yAnchor + dy));\n } else {\n moveY = function moveY2(y) {\n return p2y(y2p(y) + dy);\n };\n if (ya && ya.type === \"date\") moveY = helpers.encodeDate(moveY);\n }\n modifyItem(\"path\", shapeOptions.path = movePath(pathIn, moveX, moveY));\n } else if (isLine) {\n if (dragMode === \"resize-over-start-point\") {\n var newX0 = x0 + dx;\n var newY0 = yPixelSized ? y0 - dy : y0 + dy;\n modifyItem(\"x0\", shapeOptions.x0 = xPixelSized ? newX0 : p2x(newX0));\n modifyItem(\"y0\", shapeOptions.y0 = yPixelSized ? newY0 : p2y(newY0));\n } else if (dragMode === \"resize-over-end-point\") {\n var newX1 = x1 + dx;\n var newY1 = yPixelSized ? y1 - dy : y1 + dy;\n modifyItem(\"x1\", shapeOptions.x1 = xPixelSized ? newX1 : p2x(newX1));\n modifyItem(\"y1\", shapeOptions.y1 = yPixelSized ? newY1 : p2y(newY1));\n }\n } else {\n var has = function(str) {\n return dragMode.indexOf(str) !== -1;\n };\n var hasN = has(\"n\");\n var hasS = has(\"s\");\n var hasW = has(\"w\");\n var hasE = has(\"e\");\n var newN = hasN ? n0 + dy : n0;\n var newS = hasS ? s0 + dy : s0;\n var newW = hasW ? w0 + dx : w0;\n var newE = hasE ? e0 + dx : e0;\n if (yPixelSized) {\n if (hasN) newN = n0 - dy;\n if (hasS) newS = s0 - dy;\n }\n if (!yPixelSized && newS - newN > MINHEIGHT || yPixelSized && newN - newS > MINHEIGHT) {\n modifyItem(optN, shapeOptions[optN] = yPixelSized ? newN : p2y(newN));\n modifyItem(optS, shapeOptions[optS] = yPixelSized ? newS : p2y(newS));\n }\n if (newE - newW > MINWIDTH) {\n modifyItem(optW, shapeOptions[optW] = xPixelSized ? newW : p2x(newW));\n modifyItem(optE, shapeOptions[optE] = xPixelSized ? newE : p2x(newE));\n }\n }\n shapePath.attr(\"d\", getPathString(gd, shapeOptions));\n renderVisualCues(shapeLayer, shapeOptions);\n drawLabel(gd, index, shapeOptions, shapeGroup);\n }\n function renderVisualCues(shapeLayer2, shapeOptions2) {\n if (xPixelSized || yPixelSized) {\n renderAnchor();\n }\n function renderAnchor() {\n var isNotPath = shapeOptions2.type !== \"path\";\n var visualCues = shapeLayer2.selectAll(\".visual-cue\").data([0]);\n var strokeWidth = 1;\n visualCues.enter().append(\"path\").attr({\n fill: \"#fff\",\n \"fill-rule\": \"evenodd\",\n stroke: \"#000\",\n \"stroke-width\": strokeWidth\n }).classed(\"visual-cue\", true);\n var posX = x2p(\n xPixelSized ? shapeOptions2.xanchor : Lib.midRange(\n isNotPath ? [shapeOptions2.x0, shapeOptions2.x1] : helpers.extractPathCoords(shapeOptions2.path, constants.paramIsX)\n )\n );\n var posY = y2p(\n yPixelSized ? shapeOptions2.yanchor : Lib.midRange(\n isNotPath ? [shapeOptions2.y0, shapeOptions2.y1] : helpers.extractPathCoords(shapeOptions2.path, constants.paramIsY)\n )\n );\n posX = helpers.roundPositionForSharpStrokeRendering(posX, strokeWidth);\n posY = helpers.roundPositionForSharpStrokeRendering(posY, strokeWidth);\n if (xPixelSized && yPixelSized) {\n var crossPath = \"M\" + (posX - 1 - strokeWidth) + \",\" + (posY - 1 - strokeWidth) + \"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z\";\n visualCues.attr(\"d\", crossPath);\n } else if (xPixelSized) {\n var vBarPath = \"M\" + (posX - 1 - strokeWidth) + \",\" + (posY - 9 - strokeWidth) + \"v18 h2 v-18 Z\";\n visualCues.attr(\"d\", vBarPath);\n } else {\n var hBarPath = \"M\" + (posX - 9 - strokeWidth) + \",\" + (posY - 1 - strokeWidth) + \"h18 v2 h-18 Z\";\n visualCues.attr(\"d\", hBarPath);\n }\n }\n }\n function removeVisualCues(shapeLayer2) {\n shapeLayer2.selectAll(\".visual-cue\").remove();\n }\n function deactivateClipPathTemporarily(shapePath2, shapeOptions2, gd2) {\n var xref = shapeOptions2.xref;\n var yref = shapeOptions2.yref;\n var xa2 = Axes.getFromId(gd2, xref);\n var ya2 = Axes.getFromId(gd2, yref);\n var clipAxes = \"\";\n if (xref !== \"paper\" && !xa2.autorange) clipAxes += xref;\n if (yref !== \"paper\" && !ya2.autorange) clipAxes += yref;\n Drawing.setClipUrl(\n shapePath2,\n clipAxes ? \"clip\" + gd2._fullLayout._uid + clipAxes : null,\n gd2\n );\n }\n }\n function movePath(pathIn, moveX, moveY) {\n return pathIn.replace(constants.segmentRE, function(segment) {\n var paramNumber = 0;\n var segmentType = segment.charAt(0);\n var xParams = constants.paramIsX[segmentType];\n var yParams = constants.paramIsY[segmentType];\n var nParams = constants.numParams[segmentType];\n var paramString = segment.substr(1).replace(constants.paramRE, function(param) {\n if (paramNumber >= nParams) return param;\n if (xParams[paramNumber]) param = moveX(param);\n else if (yParams[paramNumber]) param = moveY(param);\n paramNumber++;\n return param;\n });\n return segmentType + paramString;\n });\n }\n function activateShape(gd, path) {\n if (!couldHaveActiveShape(gd)) return;\n var element = path.node();\n var id = +element.getAttribute(\"data-index\");\n if (id >= 0) {\n if (id === gd._fullLayout._activeShapeIndex) {\n deactivateShape(gd);\n return;\n }\n gd._fullLayout._activeShapeIndex = id;\n gd._fullLayout._deactivateShape = deactivateShape;\n draw(gd);\n }\n }\n function deactivateShape(gd) {\n if (!couldHaveActiveShape(gd)) return;\n var id = gd._fullLayout._activeShapeIndex;\n if (id >= 0) {\n clearOutlineControllers(gd);\n delete gd._fullLayout._activeShapeIndex;\n draw(gd);\n }\n }\n function eraseActiveShape(gd) {\n if (!couldHaveActiveShape(gd)) return;\n clearOutlineControllers(gd);\n var id = gd._fullLayout._activeShapeIndex;\n var shapes = (gd.layout || {}).shapes || [];\n if (id < shapes.length) {\n var list = [];\n for (var q = 0; q < shapes.length; q++) {\n if (q !== id) {\n list.push(shapes[q]);\n }\n }\n delete gd._fullLayout._activeShapeIndex;\n return Registry.call(\"_guiRelayout\", gd, {\n shapes: list\n });\n }\n }\n }\n });\n\n // src/components/modebar/buttons.js\n var require_buttons = __commonJS({\n \"src/components/modebar/buttons.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Plots = require_plots();\n var axisIds = require_axis_ids();\n var Icons = require_ploticon();\n var eraseActiveShape = require_draw2().eraseActiveShape;\n var Lib = require_lib();\n var _ = Lib._;\n var modeBarButtons = module.exports = {};\n modeBarButtons.toImage = {\n name: \"toImage\",\n title: function(gd) {\n var opts = gd._context.toImageButtonOptions || {};\n var format = opts.format || \"png\";\n return format === \"png\" ? _(gd, \"Download plot as a png\") : (\n // legacy text\n _(gd, \"Download plot\")\n );\n },\n icon: Icons.camera,\n click: function(gd) {\n var toImageButtonOptions = gd._context.toImageButtonOptions;\n var opts = { format: toImageButtonOptions.format || \"png\" };\n Lib.notifier(_(gd, \"Taking snapshot - this may take a few seconds\"), \"long\");\n [\"filename\", \"width\", \"height\", \"scale\"].forEach(function(key) {\n if (key in toImageButtonOptions) {\n opts[key] = toImageButtonOptions[key];\n }\n });\n Registry.call(\"downloadImage\", gd, opts).then(function(filename) {\n Lib.notifier(_(gd, \"Snapshot succeeded\") + \" - \" + filename, \"long\");\n }).catch(function() {\n Lib.notifier(_(gd, \"Sorry, there was a problem downloading your snapshot!\"), \"long\");\n });\n }\n };\n modeBarButtons.sendDataToCloud = {\n name: \"sendDataToCloud\",\n title: function(gd) {\n return _(gd, \"Edit in Chart Studio\");\n },\n icon: Icons.disk,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n };\n modeBarButtons.editInChartStudio = {\n name: \"editInChartStudio\",\n title: function(gd) {\n return _(gd, \"Edit in Chart Studio\");\n },\n icon: Icons.pencil,\n click: function(gd) {\n Plots.sendDataToCloud(gd);\n }\n };\n modeBarButtons.zoom2d = {\n name: \"zoom2d\",\n _cat: \"zoom\",\n title: function(gd) {\n return _(gd, \"Zoom\");\n },\n attr: \"dragmode\",\n val: \"zoom\",\n icon: Icons.zoombox,\n click: handleCartesian\n };\n modeBarButtons.pan2d = {\n name: \"pan2d\",\n _cat: \"pan\",\n title: function(gd) {\n return _(gd, \"Pan\");\n },\n attr: \"dragmode\",\n val: \"pan\",\n icon: Icons.pan,\n click: handleCartesian\n };\n modeBarButtons.select2d = {\n name: \"select2d\",\n _cat: \"select\",\n title: function(gd) {\n return _(gd, \"Box Select\");\n },\n attr: \"dragmode\",\n val: \"select\",\n icon: Icons.selectbox,\n click: handleCartesian\n };\n modeBarButtons.lasso2d = {\n name: \"lasso2d\",\n _cat: \"lasso\",\n title: function(gd) {\n return _(gd, \"Lasso Select\");\n },\n attr: \"dragmode\",\n val: \"lasso\",\n icon: Icons.lasso,\n click: handleCartesian\n };\n modeBarButtons.drawclosedpath = {\n name: \"drawclosedpath\",\n title: function(gd) {\n return _(gd, \"Draw closed freeform\");\n },\n attr: \"dragmode\",\n val: \"drawclosedpath\",\n icon: Icons.drawclosedpath,\n click: handleCartesian\n };\n modeBarButtons.drawopenpath = {\n name: \"drawopenpath\",\n title: function(gd) {\n return _(gd, \"Draw open freeform\");\n },\n attr: \"dragmode\",\n val: \"drawopenpath\",\n icon: Icons.drawopenpath,\n click: handleCartesian\n };\n modeBarButtons.drawline = {\n name: \"drawline\",\n title: function(gd) {\n return _(gd, \"Draw line\");\n },\n attr: \"dragmode\",\n val: \"drawline\",\n icon: Icons.drawline,\n click: handleCartesian\n };\n modeBarButtons.drawrect = {\n name: \"drawrect\",\n title: function(gd) {\n return _(gd, \"Draw rectangle\");\n },\n attr: \"dragmode\",\n val: \"drawrect\",\n icon: Icons.drawrect,\n click: handleCartesian\n };\n modeBarButtons.drawcircle = {\n name: \"drawcircle\",\n title: function(gd) {\n return _(gd, \"Draw circle\");\n },\n attr: \"dragmode\",\n val: \"drawcircle\",\n icon: Icons.drawcircle,\n click: handleCartesian\n };\n modeBarButtons.eraseshape = {\n name: \"eraseshape\",\n title: function(gd) {\n return _(gd, \"Erase active shape\");\n },\n icon: Icons.eraseshape,\n click: eraseActiveShape\n };\n modeBarButtons.zoomIn2d = {\n name: \"zoomIn2d\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleCartesian\n };\n modeBarButtons.zoomOut2d = {\n name: \"zoomOut2d\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleCartesian\n };\n modeBarButtons.autoScale2d = {\n name: \"autoScale2d\",\n _cat: \"autoscale\",\n title: function(gd) {\n return _(gd, \"Autoscale\");\n },\n attr: \"zoom\",\n val: \"auto\",\n icon: Icons.autoscale,\n click: handleCartesian\n };\n modeBarButtons.resetScale2d = {\n name: \"resetScale2d\",\n _cat: \"resetscale\",\n title: function(gd) {\n return _(gd, \"Reset axes\");\n },\n attr: \"zoom\",\n val: \"reset\",\n icon: Icons.home,\n click: handleCartesian\n };\n modeBarButtons.hoverClosestCartesian = {\n name: \"hoverClosestCartesian\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Show closest data on hover\");\n },\n attr: \"hovermode\",\n val: \"closest\",\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: handleCartesian\n };\n modeBarButtons.hoverCompareCartesian = {\n name: \"hoverCompareCartesian\",\n _cat: \"hoverCompare\",\n title: function(gd) {\n return _(gd, \"Compare data on hover\");\n },\n attr: \"hovermode\",\n val: function(gd) {\n return gd._fullLayout._isHoriz ? \"y\" : \"x\";\n },\n icon: Icons.tooltip_compare,\n gravity: \"ne\",\n click: handleCartesian\n };\n function handleCartesian(gd, ev) {\n var button = ev.currentTarget;\n var astr = button.getAttribute(\"data-attr\");\n var val = button.getAttribute(\"data-val\") || true;\n var fullLayout = gd._fullLayout;\n var aobj = {};\n var axList = axisIds.list(gd, null, true);\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n var ax, i;\n if (astr === \"zoom\") {\n var mag = val === \"in\" ? 0.5 : 2;\n var r0 = (1 + mag) / 2;\n var r1 = (1 - mag) / 2;\n var axName;\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!ax.fixedrange) {\n axName = ax._name;\n if (val === \"auto\") {\n aobj[axName + \".autorange\"] = true;\n } else if (val === \"reset\") {\n if (ax._rangeInitial0 === void 0 && ax._rangeInitial1 === void 0) {\n aobj[axName + \".autorange\"] = true;\n } else if (ax._rangeInitial0 === void 0) {\n aobj[axName + \".autorange\"] = ax._autorangeInitial;\n aobj[axName + \".range\"] = [null, ax._rangeInitial1];\n } else if (ax._rangeInitial1 === void 0) {\n aobj[axName + \".range\"] = [ax._rangeInitial0, null];\n aobj[axName + \".autorange\"] = ax._autorangeInitial;\n } else {\n aobj[axName + \".range\"] = [ax._rangeInitial0, ax._rangeInitial1];\n }\n if (ax._showSpikeInitial !== void 0) {\n aobj[axName + \".showspikes\"] = ax._showSpikeInitial;\n if (allSpikesEnabled === \"on\" && !ax._showSpikeInitial) {\n allSpikesEnabled = \"off\";\n }\n }\n } else {\n var rangeNow = [\n ax.r2l(ax.range[0]),\n ax.r2l(ax.range[1])\n ];\n var rangeNew = [\n r0 * rangeNow[0] + r1 * rangeNow[1],\n r0 * rangeNow[1] + r1 * rangeNow[0]\n ];\n aobj[axName + \".range[0]\"] = ax.l2r(rangeNew[0]);\n aobj[axName + \".range[1]\"] = ax.l2r(rangeNew[1]);\n }\n }\n }\n } else {\n if (astr === \"hovermode\" && (val === \"x\" || val === \"y\")) {\n val = fullLayout._isHoriz ? \"y\" : \"x\";\n button.setAttribute(\"data-val\", val);\n }\n aobj[astr] = val;\n }\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled;\n Registry.call(\"_guiRelayout\", gd, aobj);\n }\n modeBarButtons.zoom3d = {\n name: \"zoom3d\",\n _cat: \"zoom\",\n title: function(gd) {\n return _(gd, \"Zoom\");\n },\n attr: \"scene.dragmode\",\n val: \"zoom\",\n icon: Icons.zoombox,\n click: handleDrag3d\n };\n modeBarButtons.pan3d = {\n name: \"pan3d\",\n _cat: \"pan\",\n title: function(gd) {\n return _(gd, \"Pan\");\n },\n attr: \"scene.dragmode\",\n val: \"pan\",\n icon: Icons.pan,\n click: handleDrag3d\n };\n modeBarButtons.orbitRotation = {\n name: \"orbitRotation\",\n title: function(gd) {\n return _(gd, \"Orbital rotation\");\n },\n attr: \"scene.dragmode\",\n val: \"orbit\",\n icon: Icons[\"3d_rotate\"],\n click: handleDrag3d\n };\n modeBarButtons.tableRotation = {\n name: \"tableRotation\",\n title: function(gd) {\n return _(gd, \"Turntable rotation\");\n },\n attr: \"scene.dragmode\",\n val: \"turntable\",\n icon: Icons[\"z-axis\"],\n click: handleDrag3d\n };\n function handleDrag3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute(\"data-attr\");\n var val = button.getAttribute(\"data-val\") || true;\n var sceneIds = gd._fullLayout._subplots.gl3d || [];\n var layoutUpdate = {};\n var parts = attr.split(\".\");\n for (var i = 0; i < sceneIds.length; i++) {\n layoutUpdate[sceneIds[i] + \".\" + parts[1]] = val;\n }\n var val2d = val === \"pan\" ? val : \"zoom\";\n layoutUpdate.dragmode = val2d;\n Registry.call(\"_guiRelayout\", gd, layoutUpdate);\n }\n modeBarButtons.resetCameraDefault3d = {\n name: \"resetCameraDefault3d\",\n _cat: \"resetCameraDefault\",\n title: function(gd) {\n return _(gd, \"Reset camera to default\");\n },\n attr: \"resetDefault\",\n icon: Icons.home,\n click: handleCamera3d\n };\n modeBarButtons.resetCameraLastSave3d = {\n name: \"resetCameraLastSave3d\",\n _cat: \"resetCameraLastSave\",\n title: function(gd) {\n return _(gd, \"Reset camera to last save\");\n },\n attr: \"resetLastSave\",\n icon: Icons.movie,\n click: handleCamera3d\n };\n function handleCamera3d(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute(\"data-attr\");\n var resetLastSave = attr === \"resetLastSave\";\n var resetDefault = attr === \"resetDefault\";\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var aobj = {};\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var camera = sceneId + \".camera\";\n var aspectratio = sceneId + \".aspectratio\";\n var aspectmode = sceneId + \".aspectmode\";\n var scene = fullLayout[sceneId]._scene;\n var didUpdate;\n if (resetLastSave) {\n aobj[camera + \".up\"] = scene.viewInitial.up;\n aobj[camera + \".eye\"] = scene.viewInitial.eye;\n aobj[camera + \".center\"] = scene.viewInitial.center;\n didUpdate = true;\n } else if (resetDefault) {\n aobj[camera + \".up\"] = null;\n aobj[camera + \".eye\"] = null;\n aobj[camera + \".center\"] = null;\n didUpdate = true;\n }\n if (didUpdate) {\n aobj[aspectratio + \".x\"] = scene.viewInitial.aspectratio.x;\n aobj[aspectratio + \".y\"] = scene.viewInitial.aspectratio.y;\n aobj[aspectratio + \".z\"] = scene.viewInitial.aspectratio.z;\n aobj[aspectmode] = scene.viewInitial.aspectmode;\n }\n }\n Registry.call(\"_guiRelayout\", gd, aobj);\n }\n modeBarButtons.hoverClosest3d = {\n name: \"hoverClosest3d\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: handleHover3d\n };\n function getNextHover3d(gd, ev) {\n var button = ev.currentTarget;\n var val = button._previousVal;\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d || [];\n var axes = [\"xaxis\", \"yaxis\", \"zaxis\"];\n var currentSpikes = {};\n var layoutUpdate = {};\n if (val) {\n layoutUpdate = val;\n button._previousVal = null;\n } else {\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var sceneLayout = fullLayout[sceneId];\n var hovermodeAStr = sceneId + \".hovermode\";\n currentSpikes[hovermodeAStr] = sceneLayout.hovermode;\n layoutUpdate[hovermodeAStr] = false;\n for (var j = 0; j < 3; j++) {\n var axis = axes[j];\n var spikeAStr = sceneId + \".\" + axis + \".showspikes\";\n layoutUpdate[spikeAStr] = false;\n currentSpikes[spikeAStr] = sceneLayout[axis].showspikes;\n }\n }\n button._previousVal = currentSpikes;\n }\n return layoutUpdate;\n }\n function handleHover3d(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n Registry.call(\"_guiRelayout\", gd, layoutUpdate);\n }\n modeBarButtons.zoomInGeo = {\n name: \"zoomInGeo\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleGeo\n };\n modeBarButtons.zoomOutGeo = {\n name: \"zoomOutGeo\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleGeo\n };\n modeBarButtons.resetGeo = {\n name: \"resetGeo\",\n _cat: \"reset\",\n title: function(gd) {\n return _(gd, \"Reset\");\n },\n attr: \"reset\",\n val: null,\n icon: Icons.autoscale,\n click: handleGeo\n };\n modeBarButtons.hoverClosestGeo = {\n name: \"hoverClosestGeo\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: toggleHover\n };\n function handleGeo(gd, ev) {\n var button = ev.currentTarget;\n var attr = button.getAttribute(\"data-attr\");\n var val = button.getAttribute(\"data-val\") || true;\n var fullLayout = gd._fullLayout;\n var geoIds = fullLayout._subplots.geo || [];\n for (var i = 0; i < geoIds.length; i++) {\n var id = geoIds[i];\n var geoLayout = fullLayout[id];\n if (attr === \"zoom\") {\n var scale = geoLayout.projection.scale;\n var newScale = val === \"in\" ? 2 * scale : 0.5 * scale;\n Registry.call(\"_guiRelayout\", gd, id + \".projection.scale\", newScale);\n }\n }\n if (attr === \"reset\") {\n resetView(gd, \"geo\");\n }\n }\n modeBarButtons.hoverClosestPie = {\n name: \"hoverClosestPie\",\n _cat: \"hoverclosest\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: \"closest\",\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: toggleHover\n };\n function getNextHover(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout.hovermode) return false;\n if (fullLayout._has(\"cartesian\")) {\n return fullLayout._isHoriz ? \"y\" : \"x\";\n }\n return \"closest\";\n }\n function toggleHover(gd) {\n var newHover = getNextHover(gd);\n Registry.call(\"_guiRelayout\", gd, \"hovermode\", newHover);\n }\n modeBarButtons.resetViewSankey = {\n name: \"resetSankeyGroup\",\n title: function(gd) {\n return _(gd, \"Reset view\");\n },\n icon: Icons.home,\n click: function(gd) {\n var aObj = {\n \"node.groups\": [],\n \"node.x\": [],\n \"node.y\": []\n };\n for (var i = 0; i < gd._fullData.length; i++) {\n var viewInitial = gd._fullData[i]._viewInitial;\n aObj[\"node.groups\"].push(viewInitial.node.groups.slice());\n aObj[\"node.x\"].push(viewInitial.node.x.slice());\n aObj[\"node.y\"].push(viewInitial.node.y.slice());\n }\n Registry.call(\"restyle\", gd, aObj);\n }\n };\n modeBarButtons.toggleHover = {\n name: \"toggleHover\",\n title: function(gd) {\n return _(gd, \"Toggle show closest data on hover\");\n },\n attr: \"hovermode\",\n val: null,\n toggle: true,\n icon: Icons.tooltip_basic,\n gravity: \"ne\",\n click: function(gd, ev) {\n var layoutUpdate = getNextHover3d(gd, ev);\n layoutUpdate.hovermode = getNextHover(gd);\n Registry.call(\"_guiRelayout\", gd, layoutUpdate);\n }\n };\n modeBarButtons.resetViews = {\n name: \"resetViews\",\n title: function(gd) {\n return _(gd, \"Reset views\");\n },\n icon: Icons.home,\n click: function(gd, ev) {\n var button = ev.currentTarget;\n button.setAttribute(\"data-attr\", \"zoom\");\n button.setAttribute(\"data-val\", \"reset\");\n handleCartesian(gd, ev);\n button.setAttribute(\"data-attr\", \"resetLastSave\");\n handleCamera3d(gd, ev);\n resetView(gd, \"geo\");\n resetView(gd, \"mapbox\");\n resetView(gd, \"map\");\n }\n };\n modeBarButtons.toggleSpikelines = {\n name: \"toggleSpikelines\",\n title: function(gd) {\n return _(gd, \"Toggle Spike Lines\");\n },\n icon: Icons.spikeline,\n attr: \"_cartesianSpikesEnabled\",\n val: \"on\",\n click: function(gd) {\n var fullLayout = gd._fullLayout;\n var allSpikesEnabled = fullLayout._cartesianSpikesEnabled;\n fullLayout._cartesianSpikesEnabled = allSpikesEnabled === \"on\" ? \"off\" : \"on\";\n Registry.call(\"_guiRelayout\", gd, setSpikelineVisibility(gd));\n }\n };\n function setSpikelineVisibility(gd) {\n var fullLayout = gd._fullLayout;\n var areSpikesOn = fullLayout._cartesianSpikesEnabled === \"on\";\n var axList = axisIds.list(gd, null, true);\n var aobj = {};\n for (var i = 0; i < axList.length; i++) {\n var ax = axList[i];\n aobj[ax._name + \".showspikes\"] = areSpikesOn ? true : ax._showSpikeInitial;\n }\n return aobj;\n }\n modeBarButtons.resetViewMapbox = {\n name: \"resetViewMapbox\",\n _cat: \"resetView\",\n title: function(gd) {\n return _(gd, \"Reset view\");\n },\n attr: \"reset\",\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, \"mapbox\");\n }\n };\n modeBarButtons.resetViewMap = {\n name: \"resetViewMap\",\n _cat: \"resetView\",\n title: function(gd) {\n return _(gd, \"Reset view\");\n },\n attr: \"reset\",\n icon: Icons.home,\n click: function(gd) {\n resetView(gd, \"map\");\n }\n };\n modeBarButtons.zoomInMapbox = {\n name: \"zoomInMapbox\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleMapboxZoom\n };\n modeBarButtons.zoomInMap = {\n name: \"zoomInMap\",\n _cat: \"zoomin\",\n title: function(gd) {\n return _(gd, \"Zoom in\");\n },\n attr: \"zoom\",\n val: \"in\",\n icon: Icons.zoom_plus,\n click: handleMapZoom\n };\n modeBarButtons.zoomOutMapbox = {\n name: \"zoomOutMapbox\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleMapboxZoom\n };\n modeBarButtons.zoomOutMap = {\n name: \"zoomOutMap\",\n _cat: \"zoomout\",\n title: function(gd) {\n return _(gd, \"Zoom out\");\n },\n attr: \"zoom\",\n val: \"out\",\n icon: Icons.zoom_minus,\n click: handleMapZoom\n };\n function handleMapboxZoom(gd, ev) {\n _handleMapZoom(gd, ev, \"mapbox\");\n }\n function handleMapZoom(gd, ev) {\n _handleMapZoom(gd, ev, \"map\");\n }\n function _handleMapZoom(gd, ev, mapType) {\n var button = ev.currentTarget;\n var val = button.getAttribute(\"data-val\");\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[mapType] || [];\n var scalar = 1.05;\n var aObj = {};\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var current = fullLayout[id].zoom;\n var next = val === \"in\" ? scalar * current : current / scalar;\n aObj[id + \".zoom\"] = next;\n }\n Registry.call(\"_guiRelayout\", gd, aObj);\n }\n function resetView(gd, subplotType) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[subplotType] || [];\n var aObj = {};\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotObj = fullLayout[id]._subplot;\n var viewInitial = subplotObj.viewInitial;\n var viewKeys = Object.keys(viewInitial);\n for (var j = 0; j < viewKeys.length; j++) {\n var key = viewKeys[j];\n aObj[id + \".\" + key] = viewInitial[key];\n }\n }\n Registry.call(\"_guiRelayout\", gd, aObj);\n }\n }\n });\n\n // src/components/modebar/constants.js\n var require_constants6 = __commonJS({\n \"src/components/modebar/constants.js\"(exports, module) {\n \"use strict\";\n var modeBarButtons = require_buttons();\n var buttonList = Object.keys(modeBarButtons);\n var DRAW_MODES = [\n \"drawline\",\n \"drawopenpath\",\n \"drawclosedpath\",\n \"drawcircle\",\n \"drawrect\",\n \"eraseshape\"\n ];\n var backButtons = [\n \"v1hovermode\",\n \"hoverclosest\",\n \"hovercompare\",\n \"togglehover\",\n \"togglespikelines\"\n ].concat(DRAW_MODES);\n var foreButtons = [];\n var addToForeButtons = function(b) {\n if (backButtons.indexOf(b._cat || b.name) !== -1) return;\n var name2 = b.name;\n var _cat = (b._cat || b.name).toLowerCase();\n if (foreButtons.indexOf(name2) === -1) foreButtons.push(name2);\n if (foreButtons.indexOf(_cat) === -1) foreButtons.push(_cat);\n };\n buttonList.forEach(function(k) {\n addToForeButtons(modeBarButtons[k]);\n });\n foreButtons.sort();\n module.exports = {\n DRAW_MODES,\n backButtons,\n foreButtons\n };\n }\n });\n\n // src/components/modebar/attributes.js\n var require_attributes10 = __commonJS({\n \"src/components/modebar/attributes.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants6();\n module.exports = {\n editType: \"modebar\",\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"h\",\n editType: \"modebar\"\n },\n bgcolor: {\n valType: \"color\",\n editType: \"modebar\"\n },\n color: {\n valType: \"color\",\n editType: \"modebar\"\n },\n activecolor: {\n valType: \"color\",\n editType: \"modebar\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n add: {\n valType: \"string\",\n arrayOk: true,\n dflt: \"\",\n editType: \"modebar\"\n },\n remove: {\n valType: \"string\",\n arrayOk: true,\n dflt: \"\",\n editType: \"modebar\"\n }\n };\n }\n });\n\n // src/components/modebar/defaults.js\n var require_defaults5 = __commonJS({\n \"src/components/modebar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var attributes = require_attributes10();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n var containerIn = layoutIn.modebar || {};\n var containerOut = Template.newContainer(layoutOut, \"modebar\");\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n coerce(\"orientation\");\n coerce(\"bgcolor\", Color2.addOpacity(layoutOut.paper_bgcolor, 0.5));\n var defaultColor = Color2.contrast(Color2.rgb(layoutOut.modebar.bgcolor));\n coerce(\"color\", Color2.addOpacity(defaultColor, 0.3));\n coerce(\"activecolor\", Color2.addOpacity(defaultColor, 0.7));\n coerce(\"uirevision\", layoutOut.uirevision);\n coerce(\"add\");\n coerce(\"remove\");\n };\n }\n });\n\n // src/components/modebar/modebar.js\n var require_modebar = __commonJS({\n \"src/components/modebar/modebar.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Icons = require_ploticon();\n var version = require_version().version;\n var Parser = new DOMParser();\n function ModeBar(opts) {\n this.container = opts.container;\n this.element = document.createElement(\"div\");\n this.update(opts.graphInfo, opts.buttons);\n this.container.appendChild(this.element);\n }\n var proto = ModeBar.prototype;\n proto.update = function(graphInfo, buttons) {\n this.graphInfo = graphInfo;\n var context = this.graphInfo._context;\n var fullLayout = this.graphInfo._fullLayout;\n var modeBarId = \"modebar-\" + fullLayout._uid;\n this.element.setAttribute(\"id\", modeBarId);\n this._uid = modeBarId;\n this.element.className = \"modebar\";\n if (context.displayModeBar === \"hover\") this.element.className += \" modebar--hover ease-bg\";\n if (fullLayout.modebar.orientation === \"v\") {\n this.element.className += \" vertical\";\n buttons = buttons.reverse();\n }\n var style = fullLayout.modebar;\n var groupSelector = \"#\" + modeBarId + \" .modebar-group\";\n document.querySelectorAll(groupSelector).forEach(function(group) {\n group.style.backgroundColor = style.bgcolor;\n });\n var needsNewButtons = !this.hasButtons(buttons);\n var needsNewLogo = this.hasLogo !== context.displaylogo;\n var needsNewLocale = this.locale !== context.locale;\n this.locale = context.locale;\n if (needsNewButtons || needsNewLogo || needsNewLocale) {\n this.removeAllButtons();\n this.updateButtons(buttons);\n if (context.watermark || context.displaylogo) {\n var logoGroup = this.getLogo();\n if (context.watermark) {\n logoGroup.className = logoGroup.className + \" watermark\";\n }\n if (fullLayout.modebar.orientation === \"v\") {\n this.element.insertBefore(logoGroup, this.element.childNodes[0]);\n } else {\n this.element.appendChild(logoGroup);\n }\n this.hasLogo = true;\n }\n }\n this.updateActiveButton();\n Lib.setStyleOnHover(\"#\" + modeBarId + \" .modebar-btn\", \".active\", \".icon path\", \"fill: \" + style.activecolor, \"fill: \" + style.color, this.element);\n };\n proto.updateButtons = function(buttons) {\n var _this = this;\n this.buttons = buttons;\n this.buttonElements = [];\n this.buttonsNames = [];\n this.buttons.forEach(function(buttonGroup) {\n var group = _this.createGroup();\n buttonGroup.forEach(function(buttonConfig) {\n var buttonName = buttonConfig.name;\n if (!buttonName) {\n throw new Error(\"must provide button 'name' in button config\");\n }\n if (_this.buttonsNames.indexOf(buttonName) !== -1) {\n throw new Error(\"button name '\" + buttonName + \"' is taken\");\n }\n _this.buttonsNames.push(buttonName);\n var button = _this.createButton(buttonConfig);\n _this.buttonElements.push(button);\n group.appendChild(button);\n });\n _this.element.appendChild(group);\n });\n };\n proto.createGroup = function() {\n var group = document.createElement(\"div\");\n group.className = \"modebar-group\";\n var style = this.graphInfo._fullLayout.modebar;\n group.style.backgroundColor = style.bgcolor;\n return group;\n };\n proto.createButton = function(config) {\n var _this = this;\n var button = document.createElement(\"a\");\n button.setAttribute(\"rel\", \"tooltip\");\n button.className = \"modebar-btn\";\n var title = config.title;\n if (title === void 0) title = config.name;\n else if (typeof title === \"function\") title = title(this.graphInfo);\n if (title || title === 0) button.setAttribute(\"data-title\", title);\n if (config.attr !== void 0) button.setAttribute(\"data-attr\", config.attr);\n var val = config.val;\n if (val !== void 0) {\n if (typeof val === \"function\") val = val(this.graphInfo);\n button.setAttribute(\"data-val\", val);\n }\n var click = config.click;\n if (typeof click !== \"function\") {\n throw new Error(\"must provide button 'click' function in button config\");\n } else {\n button.addEventListener(\"click\", function(ev) {\n config.click(_this.graphInfo, ev);\n _this.updateActiveButton(ev.currentTarget);\n });\n }\n button.setAttribute(\"data-toggle\", config.toggle || false);\n if (config.toggle) d3.select(button).classed(\"active\", true);\n var icon = config.icon;\n if (typeof icon === \"function\") {\n button.appendChild(icon());\n } else {\n button.appendChild(this.createIcon(icon || Icons.question));\n }\n button.setAttribute(\"data-gravity\", config.gravity || \"n\");\n return button;\n };\n proto.createIcon = function(thisIcon) {\n var iconHeight = isNumeric(thisIcon.height) ? Number(thisIcon.height) : thisIcon.ascent - thisIcon.descent;\n var svgNS = \"http://www.w3.org/2000/svg\";\n var icon;\n if (thisIcon.path) {\n icon = document.createElementNS(svgNS, \"svg\");\n icon.setAttribute(\"viewBox\", [0, 0, thisIcon.width, iconHeight].join(\" \"));\n icon.setAttribute(\"class\", \"icon\");\n var path = document.createElementNS(svgNS, \"path\");\n path.setAttribute(\"d\", thisIcon.path);\n if (thisIcon.transform) {\n path.setAttribute(\"transform\", thisIcon.transform);\n } else if (thisIcon.ascent !== void 0) {\n path.setAttribute(\"transform\", \"matrix(1 0 0 -1 0 \" + thisIcon.ascent + \")\");\n }\n icon.appendChild(path);\n }\n if (thisIcon.svg) {\n var svgDoc = Parser.parseFromString(thisIcon.svg, \"application/xml\");\n icon = svgDoc.childNodes[0];\n }\n icon.setAttribute(\"height\", \"1em\");\n icon.setAttribute(\"width\", \"1em\");\n return icon;\n };\n proto.updateActiveButton = function(buttonClicked) {\n var fullLayout = this.graphInfo._fullLayout;\n var dataAttrClicked = buttonClicked !== void 0 ? buttonClicked.getAttribute(\"data-attr\") : null;\n this.buttonElements.forEach(function(button) {\n var thisval = button.getAttribute(\"data-val\") || true;\n var dataAttr = button.getAttribute(\"data-attr\");\n var isToggleButton = button.getAttribute(\"data-toggle\") === \"true\";\n var button3 = d3.select(button);\n var updateButtonStyle = function(button2, isActive2) {\n var style = fullLayout.modebar;\n var childEl = button2.querySelector(\".icon path\");\n if (childEl) {\n if (isActive2 || button2.matches(\":hover\")) {\n childEl.style.fill = style.activecolor;\n } else {\n childEl.style.fill = style.color;\n }\n }\n };\n if (isToggleButton) {\n if (dataAttr === dataAttrClicked) {\n var isActive = !button3.classed(\"active\");\n button3.classed(\"active\", isActive);\n updateButtonStyle(button, isActive);\n }\n } else {\n var val = dataAttr === null ? dataAttr : Lib.nestedProperty(fullLayout, dataAttr).get();\n button3.classed(\"active\", val === thisval);\n updateButtonStyle(button, val === thisval);\n }\n });\n };\n proto.hasButtons = function(buttons) {\n var currentButtons = this.buttons;\n if (!currentButtons) return false;\n if (buttons.length !== currentButtons.length) return false;\n for (var i = 0; i < buttons.length; ++i) {\n if (buttons[i].length !== currentButtons[i].length) return false;\n for (var j = 0; j < buttons[i].length; j++) {\n if (buttons[i][j].name !== currentButtons[i][j].name) return false;\n }\n }\n return true;\n };\n function jsVersion(str) {\n return str + \" (v\" + version + \")\";\n }\n proto.getLogo = function() {\n var group = this.createGroup();\n var a = document.createElement(\"a\");\n a.href = \"https://plotly.com/\";\n a.target = \"_blank\";\n a.setAttribute(\"data-title\", jsVersion(Lib._(this.graphInfo, \"Produced with Plotly.js\")));\n a.className = \"modebar-btn plotlyjsicon modebar-btn--logo\";\n a.appendChild(this.createIcon(Icons.newplotlylogo));\n group.appendChild(a);\n return group;\n };\n proto.removeAllButtons = function() {\n while (this.element.firstChild) {\n this.element.removeChild(this.element.firstChild);\n }\n this.hasLogo = false;\n };\n proto.destroy = function() {\n Lib.removeElement(this.container.querySelector(\".modebar\"));\n };\n function createModeBar(gd, buttons) {\n var fullLayout = gd._fullLayout;\n var modeBar = new ModeBar({\n graphInfo: gd,\n container: fullLayout._modebardiv.node(),\n buttons\n });\n if (fullLayout._privateplot) {\n d3.select(modeBar.element).append(\"span\").classed(\"badge-private float--left\", true).text(\"PRIVATE\");\n }\n return modeBar;\n }\n module.exports = createModeBar;\n }\n });\n\n // src/components/modebar/manage.js\n var require_manage = __commonJS({\n \"src/components/modebar/manage.js\"(exports, module) {\n \"use strict\";\n var axisIds = require_axis_ids();\n var scatterSubTypes = require_subtypes();\n var Registry = require_registry();\n var isUnifiedHover = require_helpers2().isUnifiedHover;\n var createModeBar = require_modebar();\n var modeBarButtons = require_buttons();\n var DRAW_MODES = require_constants6().DRAW_MODES;\n var extendDeep = require_lib().extendDeep;\n module.exports = function manageModeBar(gd) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n var modeBar = fullLayout._modeBar;\n if (!context.displayModeBar && !context.watermark) {\n if (modeBar) {\n modeBar.destroy();\n delete fullLayout._modeBar;\n }\n return;\n }\n if (!Array.isArray(context.modeBarButtonsToRemove)) {\n throw new Error([\n \"*modeBarButtonsToRemove* configuration options\",\n \"must be an array.\"\n ].join(\" \"));\n }\n if (!Array.isArray(context.modeBarButtonsToAdd)) {\n throw new Error([\n \"*modeBarButtonsToAdd* configuration options\",\n \"must be an array.\"\n ].join(\" \"));\n }\n var customButtons = context.modeBarButtons;\n var buttonGroups;\n if (Array.isArray(customButtons) && customButtons.length) {\n buttonGroups = fillCustomButton(customButtons);\n } else if (!context.displayModeBar && context.watermark) {\n buttonGroups = [];\n } else {\n buttonGroups = getButtonGroups(gd);\n }\n if (modeBar) modeBar.update(gd, buttonGroups);\n else fullLayout._modeBar = createModeBar(gd, buttonGroups);\n };\n function getButtonGroups(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var context = gd._context;\n function match(name2, B2) {\n if (typeof B2 === \"string\") {\n if (B2.toLowerCase() === name2.toLowerCase()) return true;\n } else {\n var v0 = B2.name;\n var v1 = B2._cat || B2.name;\n if (v0 === name2 || v1 === name2.toLowerCase()) return true;\n }\n return false;\n }\n var layoutAdd = fullLayout.modebar.add;\n if (typeof layoutAdd === \"string\") layoutAdd = [layoutAdd];\n var layoutRemove = fullLayout.modebar.remove;\n if (typeof layoutRemove === \"string\") layoutRemove = [layoutRemove];\n var buttonsToAdd = context.modeBarButtonsToAdd.concat(\n layoutAdd.filter(function(e) {\n for (var i2 = 0; i2 < context.modeBarButtonsToRemove.length; i2++) {\n if (match(e, context.modeBarButtonsToRemove[i2])) return false;\n }\n return true;\n })\n );\n var buttonsToRemove = context.modeBarButtonsToRemove.concat(\n layoutRemove.filter(function(e) {\n for (var i2 = 0; i2 < context.modeBarButtonsToAdd.length; i2++) {\n if (match(e, context.modeBarButtonsToAdd[i2])) return false;\n }\n return true;\n })\n );\n var hasCartesian = fullLayout._has(\"cartesian\");\n var hasGL3D = fullLayout._has(\"gl3d\");\n var hasGeo = fullLayout._has(\"geo\");\n var hasPie = fullLayout._has(\"pie\");\n var hasFunnelarea = fullLayout._has(\"funnelarea\");\n var hasTernary = fullLayout._has(\"ternary\");\n var hasMapbox = fullLayout._has(\"mapbox\");\n var hasMap = fullLayout._has(\"map\");\n var hasPolar = fullLayout._has(\"polar\");\n var hasSmith = fullLayout._has(\"smith\");\n var hasSankey = fullLayout._has(\"sankey\");\n var allAxesFixed = areAllAxesFixed(fullLayout);\n var hasUnifiedHoverLabel = isUnifiedHover(fullLayout.hovermode);\n var groups = [];\n function addGroup(newGroup) {\n if (!newGroup.length) return;\n var out = [];\n for (var i2 = 0; i2 < newGroup.length; i2++) {\n var name2 = newGroup[i2];\n var B2 = modeBarButtons[name2];\n var v0 = B2.name.toLowerCase();\n var v1 = (B2._cat || B2.name).toLowerCase();\n var found = false;\n for (var q = 0; q < buttonsToRemove.length; q++) {\n var t = buttonsToRemove[q].toLowerCase();\n if (t === v0 || t === v1) {\n found = true;\n break;\n }\n }\n if (found) continue;\n out.push(modeBarButtons[name2]);\n }\n groups.push(out);\n }\n var commonGroup = [\"toImage\"];\n if (context.showEditInChartStudio) commonGroup.push(\"editInChartStudio\");\n else if (context.showSendToCloud) commonGroup.push(\"sendDataToCloud\");\n addGroup(commonGroup);\n var zoomGroup = [];\n var hoverGroup = [];\n var resetGroup = [];\n var dragModeGroup = [];\n if ((hasCartesian || hasPie || hasFunnelarea || hasTernary) + hasGeo + hasGL3D + hasMapbox + hasMap + hasPolar + hasSmith > 1) {\n hoverGroup = [\"toggleHover\"];\n resetGroup = [\"resetViews\"];\n } else if (hasGeo) {\n zoomGroup = [\"zoomInGeo\", \"zoomOutGeo\"];\n hoverGroup = [\"hoverClosestGeo\"];\n resetGroup = [\"resetGeo\"];\n } else if (hasGL3D) {\n hoverGroup = [\"hoverClosest3d\"];\n resetGroup = [\"resetCameraDefault3d\", \"resetCameraLastSave3d\"];\n } else if (hasMapbox) {\n zoomGroup = [\"zoomInMapbox\", \"zoomOutMapbox\"];\n hoverGroup = [\"toggleHover\"];\n resetGroup = [\"resetViewMapbox\"];\n } else if (hasMap) {\n zoomGroup = [\"zoomInMap\", \"zoomOutMap\"];\n hoverGroup = [\"toggleHover\"];\n resetGroup = [\"resetViewMap\"];\n } else if (hasPie) {\n hoverGroup = [\"hoverClosestPie\"];\n } else if (hasSankey) {\n hoverGroup = [\"hoverClosestCartesian\", \"hoverCompareCartesian\"];\n resetGroup = [\"resetViewSankey\"];\n } else {\n hoverGroup = [\"toggleHover\"];\n }\n if (hasCartesian) {\n hoverGroup.push(\"toggleSpikelines\", \"hoverClosestCartesian\", \"hoverCompareCartesian\");\n }\n if (hasNoHover(fullData) || hasUnifiedHoverLabel) {\n hoverGroup = [];\n }\n if (hasCartesian && !allAxesFixed) {\n zoomGroup = [\"zoomIn2d\", \"zoomOut2d\", \"autoScale2d\"];\n if (resetGroup[0] !== \"resetViews\") resetGroup = [\"resetScale2d\"];\n }\n if (hasGL3D) {\n dragModeGroup = [\"zoom3d\", \"pan3d\", \"orbitRotation\", \"tableRotation\"];\n } else if (hasCartesian && !allAxesFixed || hasTernary) {\n dragModeGroup = [\"zoom2d\", \"pan2d\"];\n } else if (hasMapbox || hasMap || hasGeo) {\n dragModeGroup = [\"pan2d\"];\n } else if (hasPolar) {\n dragModeGroup = [\"zoom2d\"];\n }\n if (isSelectable(fullData)) {\n dragModeGroup.push(\"select2d\", \"lasso2d\");\n }\n var enabledHoverGroup = [];\n var enableHover = function(a) {\n if (enabledHoverGroup.indexOf(a) !== -1) return;\n if (hoverGroup.indexOf(a) !== -1) {\n enabledHoverGroup.push(a);\n }\n };\n if (Array.isArray(buttonsToAdd)) {\n var newList = [];\n for (var i = 0; i < buttonsToAdd.length; i++) {\n var b = buttonsToAdd[i];\n if (typeof b === \"string\") {\n b = b.toLowerCase();\n if (DRAW_MODES.indexOf(b) !== -1) {\n if (fullLayout._has(\"mapbox\") || fullLayout._has(\"map\") || // draw shapes in paper coordinate (could be improved in future to support data coordinate, when there is no pitch)\n fullLayout._has(\"cartesian\")) {\n dragModeGroup.push(b);\n }\n } else if (b === \"togglespikelines\") {\n enableHover(\"toggleSpikelines\");\n } else if (b === \"togglehover\") {\n enableHover(\"toggleHover\");\n } else if (b === \"hovercompare\") {\n enableHover(\"hoverCompareCartesian\");\n } else if (b === \"hoverclosest\") {\n enableHover(\"hoverClosestCartesian\");\n enableHover(\"hoverClosestGeo\");\n enableHover(\"hoverClosest3d\");\n enableHover(\"hoverClosestPie\");\n } else if (b === \"v1hovermode\") {\n enableHover(\"hoverClosestCartesian\");\n enableHover(\"hoverCompareCartesian\");\n enableHover(\"hoverClosestGeo\");\n enableHover(\"hoverClosest3d\");\n enableHover(\"hoverClosestPie\");\n }\n } else newList.push(b);\n }\n buttonsToAdd = newList;\n }\n addGroup(dragModeGroup);\n addGroup(zoomGroup.concat(resetGroup));\n addGroup(enabledHoverGroup);\n return appendButtonsToGroups(groups, buttonsToAdd);\n }\n function areAllAxesFixed(fullLayout) {\n var axList = axisIds.list({ _fullLayout: fullLayout }, null, true);\n for (var i = 0; i < axList.length; i++) {\n if (!axList[i].fixedrange) {\n return false;\n }\n }\n return true;\n }\n function isSelectable(fullData) {\n var selectable = false;\n for (var i = 0; i < fullData.length; i++) {\n if (selectable) break;\n var trace = fullData[i];\n if (!trace._module || !trace._module.selectPoints) continue;\n if (Registry.traceIs(trace, \"scatter-like\")) {\n if (scatterSubTypes.hasMarkers(trace) || scatterSubTypes.hasText(trace)) {\n selectable = true;\n }\n } else if (Registry.traceIs(trace, \"box-violin\")) {\n if (trace.boxpoints === \"all\" || trace.points === \"all\") {\n selectable = true;\n }\n } else {\n selectable = true;\n }\n }\n return selectable;\n }\n function hasNoHover(fullData) {\n for (var i = 0; i < fullData.length; i++) {\n if (!Registry.traceIs(fullData[i], \"noHover\")) return false;\n }\n return true;\n }\n function appendButtonsToGroups(groups, buttons) {\n if (buttons.length) {\n if (Array.isArray(buttons[0])) {\n for (var i = 0; i < buttons.length; i++) {\n groups.push(buttons[i]);\n }\n } else groups.push(buttons);\n }\n return groups;\n }\n function fillCustomButton(originalModeBarButtons) {\n var customButtons = extendDeep([], originalModeBarButtons);\n for (var i = 0; i < customButtons.length; i++) {\n var buttonGroup = customButtons[i];\n for (var j = 0; j < buttonGroup.length; j++) {\n var button = buttonGroup[j];\n if (typeof button === \"string\") {\n if (modeBarButtons[button] !== void 0) {\n customButtons[i][j] = modeBarButtons[button];\n } else {\n throw new Error([\n \"*modeBarButtons* configuration options\",\n \"invalid button name\"\n ].join(\" \"));\n }\n }\n }\n }\n return customButtons;\n }\n }\n });\n\n // src/components/modebar/index.js\n var require_modebar2 = __commonJS({\n \"src/components/modebar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"modebar\",\n layoutAttributes: require_attributes10(),\n supplyLayoutDefaults: require_defaults5(),\n manage: require_manage()\n };\n }\n });\n\n // src/plots/cartesian/scale_zoom.js\n var require_scale_zoom = __commonJS({\n \"src/plots/cartesian/scale_zoom.js\"(exports, module) {\n \"use strict\";\n var FROM_BL = require_alignment().FROM_BL;\n module.exports = function scaleZoom(ax, factor, centerFraction) {\n if (centerFraction === void 0) {\n centerFraction = FROM_BL[ax.constraintoward || \"center\"];\n }\n var rangeLinear = [ax.r2l(ax.range[0]), ax.r2l(ax.range[1])];\n var center = rangeLinear[0] + (rangeLinear[1] - rangeLinear[0]) * centerFraction;\n ax.range = ax._input.range = [\n ax.l2r(center + (rangeLinear[0] - center) * factor),\n ax.l2r(center + (rangeLinear[1] - center) * factor)\n ];\n ax.setScale();\n };\n }\n });\n\n // src/plots/cartesian/constraints.js\n var require_constraints = __commonJS({\n \"src/plots/cartesian/constraints.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var autorange = require_autorange();\n var id2name = require_axis_ids().id2name;\n var layoutAttributes = require_layout_attributes4();\n var scaleZoom = require_scale_zoom();\n var setConvert = require_set_convert();\n var ALMOST_EQUAL = require_numerical().ALMOST_EQUAL;\n var FROM_BL = require_alignment().FROM_BL;\n exports.handleDefaults = function(layoutIn, layoutOut, opts) {\n var axIds = opts.axIds;\n var axHasImage = opts.axHasImage;\n var constraintGroups = layoutOut._axisConstraintGroups = [];\n var matchGroups = layoutOut._axisMatchGroups = [];\n var i, group, axId, axName, axIn, axOut, attr, val;\n for (i = 0; i < axIds.length; i++) {\n axName = id2name(axIds[i]);\n axIn = layoutIn[axName];\n axOut = layoutOut[axName];\n handleOneAxDefaults(axIn, axOut, {\n axIds,\n layoutOut,\n hasImage: axHasImage[axName]\n });\n }\n function stash(groups, stashAttr) {\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n for (axId in group) {\n layoutOut[id2name(axId)][stashAttr] = group;\n }\n }\n }\n stash(matchGroups, \"_matchGroup\");\n for (i = 0; i < constraintGroups.length; i++) {\n group = constraintGroups[i];\n for (axId in group) {\n axOut = layoutOut[id2name(axId)];\n if (axOut.fixedrange) {\n for (var axId2 in group) {\n var axName2 = id2name(axId2);\n if ((layoutIn[axName2] || {}).fixedrange === false) {\n Lib.warn(\n \"fixedrange was specified as false for axis \" + axName2 + \" but was overridden because another axis in its constraint group has fixedrange true\"\n );\n }\n layoutOut[axName2].fixedrange = true;\n }\n break;\n }\n }\n }\n i = 0;\n while (i < constraintGroups.length) {\n group = constraintGroups[i];\n for (axId in group) {\n axOut = layoutOut[id2name(axId)];\n if (axOut._matchGroup && Object.keys(axOut._matchGroup).length === Object.keys(group).length) {\n constraintGroups.splice(i, 1);\n i--;\n }\n break;\n }\n i++;\n }\n stash(constraintGroups, \"_constraintGroup\");\n var matchAttrs = [\n \"constrain\",\n \"range\",\n \"autorange\",\n \"rangemode\",\n \"rangebreaks\",\n \"categoryorder\",\n \"categoryarray\"\n ];\n var hasRange = false;\n var hasDayOfWeekBreaks = false;\n function setAttrVal() {\n val = axOut[attr];\n if (attr === \"rangebreaks\") {\n hasDayOfWeekBreaks = axOut._hasDayOfWeekBreaks;\n }\n }\n for (i = 0; i < matchGroups.length; i++) {\n group = matchGroups[i];\n for (var j = 0; j < matchAttrs.length; j++) {\n attr = matchAttrs[j];\n val = null;\n var baseAx;\n for (axId in group) {\n axName = id2name(axId);\n axIn = layoutIn[axName];\n axOut = layoutOut[axName];\n if (!(attr in axOut)) {\n continue;\n }\n if (!axOut.matches) {\n baseAx = axOut;\n if (attr in axIn) {\n setAttrVal();\n break;\n }\n }\n if (val === null && attr in axIn) {\n setAttrVal();\n }\n }\n if (attr === \"range\" && val && axIn.range && axIn.range.length === 2 && axIn.range[0] !== null && axIn.range[1] !== null) {\n hasRange = true;\n }\n if (attr === \"autorange\" && val === null && hasRange) {\n val = false;\n }\n if (val === null && attr in baseAx) {\n val = baseAx[attr];\n }\n if (val !== null) {\n for (axId in group) {\n axOut = layoutOut[id2name(axId)];\n axOut[attr] = attr === \"range\" ? val.slice() : val;\n if (attr === \"rangebreaks\") {\n axOut._hasDayOfWeekBreaks = hasDayOfWeekBreaks;\n setConvert(axOut, layoutOut);\n }\n }\n }\n }\n }\n };\n function handleOneAxDefaults(axIn, axOut, opts) {\n var axIds = opts.axIds;\n var layoutOut = opts.layoutOut;\n var hasImage = opts.hasImage;\n var constraintGroups = layoutOut._axisConstraintGroups;\n var matchGroups = layoutOut._axisMatchGroups;\n var axId = axOut._id;\n var axLetter = axId.charAt(0);\n var splomStash = ((layoutOut._splomAxes || {})[axLetter] || {})[axId] || {};\n var thisID = axOut._id;\n var isX = thisID.charAt(0) === \"x\";\n axOut._matchGroup = null;\n axOut._constraintGroup = null;\n function coerce(attr, dflt) {\n return Lib.coerce(axIn, axOut, layoutAttributes, attr, dflt);\n }\n coerce(\"constrain\", hasImage ? \"domain\" : \"range\");\n Lib.coerce(axIn, axOut, {\n constraintoward: {\n valType: \"enumerated\",\n values: isX ? [\"left\", \"center\", \"right\"] : [\"bottom\", \"middle\", \"top\"],\n dflt: isX ? \"center\" : \"middle\"\n }\n }, \"constraintoward\");\n var thisType = axOut.type;\n var i, idi;\n var linkableAxes = [];\n for (i = 0; i < axIds.length; i++) {\n idi = axIds[i];\n if (idi === thisID) continue;\n var axi = layoutOut[id2name(idi)];\n if (axi.type === thisType) {\n linkableAxes.push(idi);\n }\n }\n var thisGroup = getConstraintGroup(constraintGroups, thisID);\n if (thisGroup) {\n var linkableAxesNoLoops = [];\n for (i = 0; i < linkableAxes.length; i++) {\n idi = linkableAxes[i];\n if (!thisGroup[idi]) linkableAxesNoLoops.push(idi);\n }\n linkableAxes = linkableAxesNoLoops;\n }\n var canLink = linkableAxes.length;\n var matches, scaleanchor;\n if (canLink && (axIn.matches || splomStash.matches)) {\n matches = Lib.coerce(axIn, axOut, {\n matches: {\n valType: \"enumerated\",\n values: linkableAxes,\n dflt: linkableAxes.indexOf(splomStash.matches) !== -1 ? splomStash.matches : void 0\n }\n }, \"matches\");\n }\n var scaleanchorDflt = hasImage && !isX ? axOut.anchor : void 0;\n if (canLink && !matches && (axIn.scaleanchor || scaleanchorDflt)) {\n scaleanchor = Lib.coerce(axIn, axOut, {\n scaleanchor: {\n valType: \"enumerated\",\n values: linkableAxes.concat([false])\n }\n }, \"scaleanchor\", scaleanchorDflt);\n }\n if (matches) {\n axOut._matchGroup = updateConstraintGroups(matchGroups, thisID, matches, 1);\n var matchedAx = layoutOut[id2name(matches)];\n var matchRatio = extent(layoutOut, axOut) / extent(layoutOut, matchedAx);\n if (isX !== (matches.charAt(0) === \"x\")) {\n matchRatio = (isX ? \"x\" : \"y\") + matchRatio;\n }\n updateConstraintGroups(constraintGroups, thisID, matches, matchRatio);\n } else if (axIn.matches && axIds.indexOf(axIn.matches) !== -1) {\n Lib.warn(\"ignored \" + axOut._name + '.matches: \"' + axIn.matches + '\" to avoid an infinite loop');\n }\n if (scaleanchor) {\n var scaleratio = coerce(\"scaleratio\");\n if (!scaleratio) scaleratio = axOut.scaleratio = 1;\n updateConstraintGroups(constraintGroups, thisID, scaleanchor, scaleratio);\n } else if (axIn.scaleanchor && axIds.indexOf(axIn.scaleanchor) !== -1) {\n Lib.warn(\"ignored \" + axOut._name + '.scaleanchor: \"' + axIn.scaleanchor + '\" to avoid either an infinite loop and possibly inconsistent scaleratios, or because this axis declares a *matches* constraint.');\n }\n }\n function extent(layoutOut, ax) {\n var domain = ax.domain;\n if (!domain) {\n domain = layoutOut[id2name(ax.overlaying)].domain;\n }\n return domain[1] - domain[0];\n }\n function getConstraintGroup(groups, thisID) {\n for (var i = 0; i < groups.length; i++) {\n if (groups[i][thisID]) {\n return groups[i];\n }\n }\n return null;\n }\n function updateConstraintGroups(constraintGroups, thisID, thatID, scaleratio) {\n var i, j, groupi, keyj, thisGroupIndex;\n var thisGroup = getConstraintGroup(constraintGroups, thisID);\n if (thisGroup === null) {\n thisGroup = {};\n thisGroup[thisID] = 1;\n thisGroupIndex = constraintGroups.length;\n constraintGroups.push(thisGroup);\n } else {\n thisGroupIndex = constraintGroups.indexOf(thisGroup);\n }\n var thisGroupKeys = Object.keys(thisGroup);\n for (i = 0; i < constraintGroups.length; i++) {\n groupi = constraintGroups[i];\n if (i !== thisGroupIndex && groupi[thatID]) {\n var baseScale = groupi[thatID];\n for (j = 0; j < thisGroupKeys.length; j++) {\n keyj = thisGroupKeys[j];\n groupi[keyj] = multiplyScales(baseScale, multiplyScales(scaleratio, thisGroup[keyj]));\n }\n constraintGroups.splice(thisGroupIndex, 1);\n return;\n }\n }\n if (scaleratio !== 1) {\n for (j = 0; j < thisGroupKeys.length; j++) {\n var key = thisGroupKeys[j];\n thisGroup[key] = multiplyScales(scaleratio, thisGroup[key]);\n }\n }\n thisGroup[thatID] = 1;\n }\n function multiplyScales(a, b) {\n var aPrefix = \"\";\n var bPrefix = \"\";\n var aLen, bLen;\n if (typeof a === \"string\") {\n aPrefix = a.match(/^[xy]*/)[0];\n aLen = aPrefix.length;\n a = +a.substr(aLen);\n }\n if (typeof b === \"string\") {\n bPrefix = b.match(/^[xy]*/)[0];\n bLen = bPrefix.length;\n b = +b.substr(bLen);\n }\n var c = a * b;\n if (!aLen && !bLen) {\n return c;\n }\n if (!aLen || !bLen || aPrefix.charAt(0) === bPrefix.charAt(0)) {\n return aPrefix + bPrefix + a * b;\n }\n if (aLen === bLen) {\n return c;\n }\n return (aLen > bLen ? aPrefix.substr(bLen) : bPrefix.substr(aLen)) + c;\n }\n function finalRatios(group, fullLayout) {\n var size = fullLayout._size;\n var yRatio = size.h / size.w;\n var out = {};\n var keys = Object.keys(group);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = group[key];\n if (typeof val === \"string\") {\n var prefix = val.match(/^[xy]*/)[0];\n var pLen = prefix.length;\n val = +val.substr(pLen);\n var mult = prefix.charAt(0) === \"y\" ? yRatio : 1 / yRatio;\n for (var j = 0; j < pLen; j++) {\n val *= mult;\n }\n }\n out[key] = val;\n }\n return out;\n }\n exports.enforce = function enforce(gd) {\n var fullLayout = gd._fullLayout;\n var constraintGroups = fullLayout._axisConstraintGroups || [];\n var i, j, group, axisID, ax, normScale, mode, factor;\n for (i = 0; i < constraintGroups.length; i++) {\n group = finalRatios(constraintGroups[i], fullLayout);\n var axisIDs = Object.keys(group);\n var minScale = Infinity;\n var maxScale = 0;\n var matchScale = Infinity;\n var normScales = {};\n var axes = {};\n var hasAnyDomainConstraint = false;\n for (j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n axes[axisID] = ax = fullLayout[id2name(axisID)];\n if (ax._inputDomain) ax.domain = ax._inputDomain.slice();\n else ax._inputDomain = ax.domain.slice();\n if (!ax._inputRange) ax._inputRange = ax.range.slice();\n ax.setScale();\n normScales[axisID] = normScale = Math.abs(ax._m) / group[axisID];\n minScale = Math.min(minScale, normScale);\n if (ax.constrain === \"domain\" || !ax._constraintShrinkable) {\n matchScale = Math.min(matchScale, normScale);\n }\n delete ax._constraintShrinkable;\n maxScale = Math.max(maxScale, normScale);\n if (ax.constrain === \"domain\") hasAnyDomainConstraint = true;\n }\n if (minScale > ALMOST_EQUAL * maxScale && !hasAnyDomainConstraint) continue;\n for (j = 0; j < axisIDs.length; j++) {\n axisID = axisIDs[j];\n normScale = normScales[axisID];\n ax = axes[axisID];\n mode = ax.constrain;\n if (normScale !== matchScale || mode === \"domain\") {\n factor = normScale / matchScale;\n if (mode === \"range\") {\n scaleZoom(ax, factor);\n } else {\n var inputDomain = ax._inputDomain;\n var domainShrunk = (ax.domain[1] - ax.domain[0]) / (inputDomain[1] - inputDomain[0]);\n var rangeShrunk = (ax.r2l(ax.range[1]) - ax.r2l(ax.range[0])) / (ax.r2l(ax._inputRange[1]) - ax.r2l(ax._inputRange[0]));\n factor /= domainShrunk;\n if (factor * rangeShrunk < 1) {\n ax.domain = ax._input.domain = inputDomain.slice();\n scaleZoom(ax, factor);\n continue;\n }\n if (rangeShrunk < 1) {\n ax.range = ax._input.range = ax._inputRange.slice();\n factor *= rangeShrunk;\n }\n if (ax.autorange) {\n var rl0 = ax.r2l(ax.range[0]);\n var rl1 = ax.r2l(ax.range[1]);\n var rangeCenter = (rl0 + rl1) / 2;\n var rangeMin = rangeCenter;\n var rangeMax = rangeCenter;\n var halfRange = Math.abs(rl1 - rangeCenter);\n var outerMin = rangeCenter - halfRange * factor * 1.0001;\n var outerMax = rangeCenter + halfRange * factor * 1.0001;\n var getPadMin = autorange.makePadFn(fullLayout, ax, 0);\n var getPadMax = autorange.makePadFn(fullLayout, ax, 1);\n updateDomain(ax, factor);\n var m = Math.abs(ax._m);\n var extremes = autorange.concatExtremes(gd, ax);\n var minArray = extremes.min;\n var maxArray = extremes.max;\n var newVal;\n var k;\n for (k = 0; k < minArray.length; k++) {\n newVal = minArray[k].val - getPadMin(minArray[k]) / m;\n if (newVal > outerMin && newVal < rangeMin) {\n rangeMin = newVal;\n }\n }\n for (k = 0; k < maxArray.length; k++) {\n newVal = maxArray[k].val + getPadMax(maxArray[k]) / m;\n if (newVal < outerMax && newVal > rangeMax) {\n rangeMax = newVal;\n }\n }\n var domainExpand = (rangeMax - rangeMin) / (2 * halfRange);\n factor /= domainExpand;\n rangeMin = ax.l2r(rangeMin);\n rangeMax = ax.l2r(rangeMax);\n ax.range = ax._input.range = rl0 < rl1 ? [rangeMin, rangeMax] : [rangeMax, rangeMin];\n }\n updateDomain(ax, factor);\n }\n }\n }\n }\n };\n exports.getAxisGroup = function getAxisGroup(fullLayout, axId) {\n var matchGroups = fullLayout._axisMatchGroups;\n for (var i = 0; i < matchGroups.length; i++) {\n var group = matchGroups[i];\n if (group[axId]) return \"g\" + i;\n }\n return axId;\n };\n exports.clean = function clean(gd, ax) {\n if (ax._inputDomain) {\n var isConstrained = false;\n var axId = ax._id;\n var constraintGroups = gd._fullLayout._axisConstraintGroups;\n for (var j = 0; j < constraintGroups.length; j++) {\n if (constraintGroups[j][axId]) {\n isConstrained = true;\n break;\n }\n }\n if (!isConstrained || ax.constrain !== \"domain\") {\n ax._input.domain = ax.domain = ax._inputDomain;\n delete ax._inputDomain;\n }\n }\n };\n function updateDomain(ax, factor) {\n var inputDomain = ax._inputDomain;\n var centerFraction = FROM_BL[ax.constraintoward];\n var center = inputDomain[0] + (inputDomain[1] - inputDomain[0]) * centerFraction;\n ax.domain = ax._input.domain = [\n center + (inputDomain[0] - center) / factor,\n center + (inputDomain[1] - center) / factor\n ];\n ax.setScale();\n }\n }\n });\n\n // src/plot_api/subroutines.js\n var require_subroutines = __commonJS({\n \"src/plot_api/subroutines.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var clearGlCanvases = require_clear_gl_canvases();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Titles = require_titles();\n var ModeBar = require_modebar2();\n var Axes = require_axes();\n var alignmentConstants = require_alignment();\n var axisConstraints = require_constraints();\n var enforceAxisConstraints = axisConstraints.enforce;\n var cleanAxisConstraints = axisConstraints.clean;\n var doAutoRange = require_autorange().doAutoRange;\n var SVG_TEXT_ANCHOR_START = \"start\";\n var SVG_TEXT_ANCHOR_MIDDLE = \"middle\";\n var SVG_TEXT_ANCHOR_END = \"end\";\n var zindexSeparator = require_constants2().zindexSeparator;\n exports.layoutStyles = function(gd) {\n return Lib.syncOrAsync([Plots.doAutoMargin, lsInner], gd);\n };\n function overlappingDomain(xDomain, yDomain, domains) {\n for (var i = 0; i < domains.length; i++) {\n var existingX = domains[i][0];\n var existingY = domains[i][1];\n if (existingX[0] >= xDomain[1] || existingX[1] <= xDomain[0]) {\n continue;\n }\n if (existingY[0] < yDomain[1] && existingY[1] > yDomain[0]) {\n return true;\n }\n }\n return false;\n }\n function lsInner(gd) {\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var pad = gs.p;\n var axList = Axes.list(gd, \"\", true);\n var i, subplot, plotinfo, ax, xa, ya;\n fullLayout._paperdiv.style({\n width: gd._context.responsive && fullLayout.autosize && !gd._context._hasZeroWidth && !gd.layout.width ? \"100%\" : fullLayout.width + \"px\",\n height: gd._context.responsive && fullLayout.autosize && !gd._context._hasZeroHeight && !gd.layout.height ? \"100%\" : fullLayout.height + \"px\"\n }).selectAll(\".main-svg\").call(Drawing.setSize, fullLayout.width, fullLayout.height);\n gd._context.setBackground(gd, fullLayout.paper_bgcolor);\n exports.drawMainTitle(gd);\n ModeBar.manage(gd);\n if (!fullLayout._has(\"cartesian\")) {\n return Plots.previousPromises(gd);\n }\n function getLinePosition(ax2, counterAx2, side) {\n var lwHalf = ax2._lw / 2;\n if (ax2._id.charAt(0) === \"x\") {\n if (!counterAx2) return gs.t + gs.h * (1 - (ax2.position || 0)) + lwHalf % 1;\n else if (side === \"top\") return counterAx2._offset - pad - lwHalf;\n return counterAx2._offset + counterAx2._length + pad + lwHalf;\n }\n if (!counterAx2) return gs.l + gs.w * (ax2.position || 0) + lwHalf % 1;\n else if (side === \"right\") return counterAx2._offset + counterAx2._length + pad + lwHalf;\n return counterAx2._offset - pad - lwHalf;\n }\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n var counterAx = ax._anchorAxis;\n ax._linepositions = {};\n ax._lw = Drawing.crispRound(gd, ax.linewidth, 1);\n ax._mainLinePosition = getLinePosition(ax, counterAx, ax.side);\n ax._mainMirrorPosition = ax.mirror && counterAx ? getLinePosition(\n ax,\n counterAx,\n alignmentConstants.OPPOSITE_SIDE[ax.side]\n ) : null;\n }\n var lowerBackgroundIDs = [];\n var backgroundIds = [];\n var lowerDomains = [];\n var noNeedForBg = Color2.opacity(fullLayout.paper_bgcolor) === 1 && Color2.opacity(fullLayout.plot_bgcolor) === 1 && fullLayout.paper_bgcolor === fullLayout.plot_bgcolor;\n for (subplot in fullLayout._plots) {\n plotinfo = fullLayout._plots[subplot];\n if (plotinfo.mainplot) {\n if (plotinfo.bg) {\n plotinfo.bg.remove();\n }\n plotinfo.bg = void 0;\n } else {\n var xDomain = plotinfo.xaxis.domain;\n var yDomain = plotinfo.yaxis.domain;\n var plotgroup = plotinfo.plotgroup;\n if (overlappingDomain(xDomain, yDomain, lowerDomains) && subplot.indexOf(zindexSeparator) === -1) {\n var pgNode = plotgroup.node();\n var plotgroupBg = plotinfo.bg = Lib.ensureSingle(plotgroup, \"rect\", \"bg\");\n pgNode.insertBefore(plotgroupBg.node(), pgNode.childNodes[0]);\n backgroundIds.push(subplot);\n } else {\n plotgroup.select(\"rect.bg\").remove();\n lowerDomains.push([xDomain, yDomain]);\n if (!noNeedForBg) {\n lowerBackgroundIDs.push(subplot);\n backgroundIds.push(subplot);\n }\n }\n }\n }\n var lowerBackgrounds = fullLayout._bgLayer.selectAll(\".bg\").data(lowerBackgroundIDs);\n lowerBackgrounds.enter().append(\"rect\").classed(\"bg\", true);\n lowerBackgrounds.exit().remove();\n lowerBackgrounds.each(function(subplot2) {\n fullLayout._plots[subplot2].bg = d3.select(this);\n });\n for (i = 0; i < backgroundIds.length; i++) {\n plotinfo = fullLayout._plots[backgroundIds[i]];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n if (plotinfo.bg && xa._offset !== void 0 && ya._offset !== void 0) {\n plotinfo.bg.call(\n Drawing.setRect,\n xa._offset - pad,\n ya._offset - pad,\n xa._length + 2 * pad,\n ya._length + 2 * pad\n ).call(Color2.fill, fullLayout.plot_bgcolor).style(\"stroke-width\", 0);\n }\n }\n if (!fullLayout._hasOnlyLargeSploms) {\n for (subplot in fullLayout._plots) {\n plotinfo = fullLayout._plots[subplot];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var clipId = plotinfo.clipId = \"clip\" + fullLayout._uid + subplot + \"plot\";\n var plotClip = Lib.ensureSingleById(fullLayout._clips, \"clipPath\", clipId, function(s) {\n s.classed(\"plotclip\", true).append(\"rect\");\n });\n plotinfo.clipRect = plotClip.select(\"rect\").attr({\n width: xa._length,\n height: ya._length\n });\n Drawing.setTranslate(plotinfo.plot, xa._offset, ya._offset);\n var plotClipId;\n var layerClipId;\n if (plotinfo._hasClipOnAxisFalse) {\n plotClipId = null;\n layerClipId = clipId;\n } else {\n plotClipId = clipId;\n layerClipId = null;\n }\n Drawing.setClipUrl(plotinfo.plot, plotClipId, gd);\n plotinfo.layerClipId = layerClipId;\n }\n }\n var xLinesXLeft, xLinesXRight, xLinesYBottom, xLinesYTop, leftYLineWidth, rightYLineWidth;\n var yLinesYBottom, yLinesYTop, yLinesXLeft, yLinesXRight, connectYBottom, connectYTop;\n var extraSubplot;\n function xLinePath(y) {\n return \"M\" + xLinesXLeft + \",\" + y + \"H\" + xLinesXRight;\n }\n function xLinePathFree(y) {\n return \"M\" + xa._offset + \",\" + y + \"h\" + xa._length;\n }\n function yLinePath(x) {\n return \"M\" + x + \",\" + yLinesYTop + \"V\" + yLinesYBottom;\n }\n function yLinePathFree(x) {\n if (ya._shift !== void 0) {\n x += ya._shift;\n }\n return \"M\" + x + \",\" + ya._offset + \"v\" + ya._length;\n }\n function mainPath(ax2, pathFn, pathFnFree) {\n if (!ax2.showline || subplot !== ax2._mainSubplot) return \"\";\n if (!ax2._anchorAxis) return pathFnFree(ax2._mainLinePosition);\n var out = pathFn(ax2._mainLinePosition);\n if (ax2.mirror) out += pathFn(ax2._mainMirrorPosition);\n return out;\n }\n for (subplot in fullLayout._plots) {\n plotinfo = fullLayout._plots[subplot];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var xPath = \"M0,0\";\n if (shouldShowLinesOrTicks(xa, subplot)) {\n leftYLineWidth = findCounterAxisLineWidth(xa, \"left\", ya, axList);\n xLinesXLeft = xa._offset - (leftYLineWidth ? pad + leftYLineWidth : 0);\n rightYLineWidth = findCounterAxisLineWidth(xa, \"right\", ya, axList);\n xLinesXRight = xa._offset + xa._length + (rightYLineWidth ? pad + rightYLineWidth : 0);\n xLinesYBottom = getLinePosition(xa, ya, \"bottom\");\n xLinesYTop = getLinePosition(xa, ya, \"top\");\n extraSubplot = !xa._anchorAxis || subplot !== xa._mainSubplot;\n if (extraSubplot && (xa.mirror === \"allticks\" || xa.mirror === \"all\")) {\n xa._linepositions[subplot] = [xLinesYBottom, xLinesYTop];\n }\n xPath = mainPath(xa, xLinePath, xLinePathFree);\n if (extraSubplot && xa.showline && (xa.mirror === \"all\" || xa.mirror === \"allticks\")) {\n xPath += xLinePath(xLinesYBottom) + xLinePath(xLinesYTop);\n }\n plotinfo.xlines.style(\"stroke-width\", xa._lw + \"px\").call(Color2.stroke, xa.showline ? xa.linecolor : \"rgba(0,0,0,0)\");\n }\n plotinfo.xlines.attr(\"d\", xPath);\n var yPath = \"M0,0\";\n if (shouldShowLinesOrTicks(ya, subplot)) {\n connectYBottom = findCounterAxisLineWidth(ya, \"bottom\", xa, axList);\n yLinesYBottom = ya._offset + ya._length + (connectYBottom ? pad : 0);\n connectYTop = findCounterAxisLineWidth(ya, \"top\", xa, axList);\n yLinesYTop = ya._offset - (connectYTop ? pad : 0);\n yLinesXLeft = getLinePosition(ya, xa, \"left\");\n yLinesXRight = getLinePosition(ya, xa, \"right\");\n extraSubplot = !ya._anchorAxis || subplot !== ya._mainSubplot;\n if (extraSubplot && (ya.mirror === \"allticks\" || ya.mirror === \"all\")) {\n ya._linepositions[subplot] = [yLinesXLeft, yLinesXRight];\n }\n yPath = mainPath(ya, yLinePath, yLinePathFree);\n if (extraSubplot && ya.showline && (ya.mirror === \"all\" || ya.mirror === \"allticks\")) {\n yPath += yLinePath(yLinesXLeft) + yLinePath(yLinesXRight);\n }\n plotinfo.ylines.style(\"stroke-width\", ya._lw + \"px\").call(Color2.stroke, ya.showline ? ya.linecolor : \"rgba(0,0,0,0)\");\n }\n plotinfo.ylines.attr(\"d\", yPath);\n }\n Axes.makeClipPaths(gd);\n return Plots.previousPromises(gd);\n }\n function shouldShowLinesOrTicks(ax, subplot) {\n return (ax.ticks || ax.showline) && (subplot === ax._mainSubplot || ax.mirror === \"all\" || ax.mirror === \"allticks\");\n }\n function shouldShowLineThisSide(ax, side, counterAx) {\n if (!counterAx.showline || !counterAx._lw) return false;\n if (counterAx.mirror === \"all\" || counterAx.mirror === \"allticks\") return true;\n var anchorAx = counterAx._anchorAxis;\n if (!anchorAx) return false;\n var sideIndex = alignmentConstants.FROM_BL[side];\n if (counterAx.side === side) {\n return anchorAx.domain[sideIndex] === ax.domain[sideIndex];\n }\n return counterAx.mirror && anchorAx.domain[1 - sideIndex] === ax.domain[1 - sideIndex];\n }\n function findCounterAxisLineWidth(ax, side, counterAx, axList) {\n if (shouldShowLineThisSide(ax, side, counterAx)) {\n return counterAx._lw;\n }\n for (var i = 0; i < axList.length; i++) {\n var axi = axList[i];\n if (axi._mainAxis === counterAx._mainAxis && shouldShowLineThisSide(ax, side, axi)) {\n return axi._lw;\n }\n }\n return 0;\n }\n exports.drawMainTitle = function(gd) {\n var title = gd._fullLayout.title;\n var fullLayout = gd._fullLayout;\n var textAnchor = getMainTitleTextAnchor(fullLayout);\n var dy = getMainTitleDy(fullLayout);\n var y = getMainTitleY(fullLayout, dy);\n var x = getMainTitleX(fullLayout, textAnchor);\n Titles.draw(gd, \"gtitle\", {\n propContainer: fullLayout,\n propName: \"title.text\",\n subtitlePropName: \"title.subtitle.text\",\n placeholder: fullLayout._dfltTitle.plot,\n subtitlePlaceholder: fullLayout._dfltTitle.subtitle,\n attributes: {\n x,\n y,\n \"text-anchor\": textAnchor,\n dy\n }\n });\n if (title.text && title.automargin) {\n var titleObj = d3.selectAll(\".gtitle\");\n var titleHeight = Drawing.bBox(d3.selectAll(\".g-gtitle\").node()).height;\n var pushMargin = needsMarginPush(gd, title, titleHeight);\n if (pushMargin > 0) {\n applyTitleAutoMargin(gd, y, pushMargin, titleHeight);\n titleObj.attr({\n x,\n y,\n \"text-anchor\": textAnchor,\n dy: getMainTitleDyAdj(title.yanchor)\n }).call(svgTextUtils.positionText, x, y);\n var extraLines = (title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n if (extraLines) {\n var delta = alignmentConstants.LINE_SPACING * extraLines + alignmentConstants.MID_SHIFT;\n if (title.y === 0) {\n delta = -delta;\n }\n titleObj.selectAll(\".line\").each(function() {\n var newDy = +this.getAttribute(\"dy\").slice(0, -2) - delta + \"em\";\n this.setAttribute(\"dy\", newDy);\n });\n }\n var subtitleObj = d3.selectAll(\".gtitle-subtitle\");\n if (subtitleObj.node()) {\n var titleBB = titleObj.node().getBBox();\n var titleBottom = titleBB.y + titleBB.height;\n var subtitleY = titleBottom + Titles.SUBTITLE_PADDING_EM * title.subtitle.font.size;\n subtitleObj.attr({\n x,\n y: subtitleY,\n \"text-anchor\": textAnchor,\n dy: getMainTitleDyAdj(title.yanchor)\n }).call(svgTextUtils.positionText, x, subtitleY);\n }\n }\n }\n };\n function isOutsideContainer(gd, title, position, y, titleHeight) {\n var plotHeight = title.yref === \"paper\" ? gd._fullLayout._size.h : gd._fullLayout.height;\n var yPosTop = Lib.isTopAnchor(title) ? y : y - titleHeight;\n var yPosRel = position === \"b\" ? plotHeight - yPosTop : yPosTop;\n if (Lib.isTopAnchor(title) && position === \"t\" || Lib.isBottomAnchor(title) && position === \"b\") {\n return false;\n } else {\n return yPosRel < titleHeight;\n }\n }\n function containerPushVal(position, titleY, titleYanchor, height, titleDepth) {\n var push = 0;\n if (titleYanchor === \"middle\") {\n push += titleDepth / 2;\n }\n if (position === \"t\") {\n if (titleYanchor === \"top\") {\n push += titleDepth;\n }\n push += height - titleY * height;\n } else {\n if (titleYanchor === \"bottom\") {\n push += titleDepth;\n }\n push += titleY * height;\n }\n return push;\n }\n function needsMarginPush(gd, title, titleHeight) {\n var titleY = title.y;\n var titleYanchor = title.yanchor;\n var position = titleY > 0.5 ? \"t\" : \"b\";\n var curMargin = gd._fullLayout.margin[position];\n var pushMargin = 0;\n if (title.yref === \"paper\") {\n pushMargin = titleHeight + title.pad.t + title.pad.b;\n } else if (title.yref === \"container\") {\n pushMargin = containerPushVal(position, titleY, titleYanchor, gd._fullLayout.height, titleHeight) + title.pad.t + title.pad.b;\n }\n if (pushMargin > curMargin) {\n return pushMargin;\n }\n return 0;\n }\n function applyTitleAutoMargin(gd, y, pushMargin, titleHeight) {\n var titleID = \"title.automargin\";\n var title = gd._fullLayout.title;\n var position = title.y > 0.5 ? \"t\" : \"b\";\n var push = {\n x: title.x,\n y: title.y,\n t: 0,\n b: 0\n };\n var reservedPush = {};\n if (title.yref === \"paper\" && isOutsideContainer(gd, title, position, y, titleHeight)) {\n push[position] = pushMargin;\n } else if (title.yref === \"container\") {\n reservedPush[position] = pushMargin;\n gd._fullLayout._reservedMargin[titleID] = reservedPush;\n }\n Plots.allowAutoMargin(gd, titleID);\n Plots.autoMargin(gd, titleID, push);\n }\n function getMainTitleX(fullLayout, textAnchor) {\n var title = fullLayout.title;\n var gs = fullLayout._size;\n var hPadShift = 0;\n if (textAnchor === SVG_TEXT_ANCHOR_START) {\n hPadShift = title.pad.l;\n } else if (textAnchor === SVG_TEXT_ANCHOR_END) {\n hPadShift = -title.pad.r;\n }\n switch (title.xref) {\n case \"paper\":\n return gs.l + gs.w * title.x + hPadShift;\n case \"container\":\n default:\n return fullLayout.width * title.x + hPadShift;\n }\n }\n function getMainTitleY(fullLayout, dy) {\n var title = fullLayout.title;\n var gs = fullLayout._size;\n var vPadShift = 0;\n if (dy === \"0em\" || !dy) {\n vPadShift = -title.pad.b;\n } else if (dy === alignmentConstants.CAP_SHIFT + \"em\") {\n vPadShift = title.pad.t;\n }\n if (title.y === \"auto\") {\n return gs.t / 2;\n } else {\n switch (title.yref) {\n case \"paper\":\n return gs.t + gs.h - gs.h * title.y + vPadShift;\n case \"container\":\n default:\n return fullLayout.height - fullLayout.height * title.y + vPadShift;\n }\n }\n }\n function getMainTitleDyAdj(yanchor) {\n if (yanchor === \"top\") {\n return alignmentConstants.CAP_SHIFT + 0.3 + \"em\";\n } else if (yanchor === \"bottom\") {\n return \"-0.3em\";\n } else {\n return alignmentConstants.MID_SHIFT + \"em\";\n }\n }\n function getMainTitleTextAnchor(fullLayout) {\n var title = fullLayout.title;\n var textAnchor = SVG_TEXT_ANCHOR_MIDDLE;\n if (Lib.isRightAnchor(title)) {\n textAnchor = SVG_TEXT_ANCHOR_END;\n } else if (Lib.isLeftAnchor(title)) {\n textAnchor = SVG_TEXT_ANCHOR_START;\n }\n return textAnchor;\n }\n function getMainTitleDy(fullLayout) {\n var title = fullLayout.title;\n var dy = \"0em\";\n if (Lib.isTopAnchor(title)) {\n dy = alignmentConstants.CAP_SHIFT + \"em\";\n } else if (Lib.isMiddleAnchor(title)) {\n dy = alignmentConstants.MID_SHIFT + \"em\";\n }\n return dy;\n }\n exports.doTraceStyle = function(gd) {\n var calcdata = gd.calcdata;\n var editStyleCalls = [];\n var i;\n for (i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0] || {};\n var trace = cd0.trace || {};\n var _module = trace._module || {};\n var arraysToCalcdata = _module.arraysToCalcdata;\n if (arraysToCalcdata) arraysToCalcdata(cd, trace);\n var editStyle = _module.editStyle;\n if (editStyle) editStyleCalls.push({ fn: editStyle, cd0 });\n }\n if (editStyleCalls.length) {\n for (i = 0; i < editStyleCalls.length; i++) {\n var edit = editStyleCalls[i];\n edit.fn(gd, edit.cd0);\n }\n clearGlCanvases(gd);\n exports.redrawReglTraces(gd);\n }\n Plots.style(gd);\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n return Plots.previousPromises(gd);\n };\n exports.doColorBars = function(gd) {\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n return Plots.previousPromises(gd);\n };\n exports.layoutReplot = function(gd) {\n var layout = gd.layout;\n gd.layout = void 0;\n return Registry.call(\"_doPlot\", gd, \"\", layout);\n };\n exports.doLegend = function(gd) {\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n return Plots.previousPromises(gd);\n };\n exports.doTicksRelayout = function(gd) {\n Axes.draw(gd, \"redraw\");\n if (gd._fullLayout._hasOnlyLargeSploms) {\n Registry.subplotsRegistry.splom.updateGrid(gd);\n clearGlCanvases(gd);\n exports.redrawReglTraces(gd);\n }\n exports.drawMainTitle(gd);\n return Plots.previousPromises(gd);\n };\n exports.doModeBar = function(gd) {\n var fullLayout = gd._fullLayout;\n ModeBar.manage(gd);\n for (var i = 0; i < fullLayout._basePlotModules.length; i++) {\n var updateFx = fullLayout._basePlotModules[i].updateFx;\n if (updateFx) updateFx(gd);\n }\n return Plots.previousPromises(gd);\n };\n exports.doCamera = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots.gl3d;\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var scene = sceneLayout._scene;\n scene.setViewport(sceneLayout);\n }\n };\n exports.drawData = function(gd) {\n var fullLayout = gd._fullLayout;\n clearGlCanvases(gd);\n var basePlotModules = fullLayout._basePlotModules;\n for (var i = 0; i < basePlotModules.length; i++) {\n basePlotModules[i].plot(gd);\n }\n exports.redrawReglTraces(gd);\n Plots.style(gd);\n Registry.getComponentMethod(\"selections\", \"draw\")(gd);\n Registry.getComponentMethod(\"shapes\", \"draw\")(gd);\n Registry.getComponentMethod(\"annotations\", \"draw\")(gd);\n Registry.getComponentMethod(\"images\", \"draw\")(gd);\n fullLayout._replotting = false;\n return Plots.previousPromises(gd);\n };\n exports.redrawReglTraces = function(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._has(\"regl\")) {\n var fullData = gd._fullData;\n var cartesianIds = [];\n var polarIds = [];\n var i, sp;\n if (fullLayout._hasOnlyLargeSploms) {\n fullLayout._splomGrid.draw();\n }\n for (i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible === true && trace._length !== 0) {\n if (trace.type === \"splom\") {\n fullLayout._splomScenes[trace.uid].draw();\n } else if (trace.type === \"scattergl\") {\n Lib.pushUnique(cartesianIds, trace.xaxis + trace.yaxis);\n } else if (trace.type === \"scatterpolargl\") {\n Lib.pushUnique(polarIds, trace.subplot);\n }\n }\n }\n for (i = 0; i < cartesianIds.length; i++) {\n sp = fullLayout._plots[cartesianIds[i]];\n if (sp._scene) sp._scene.draw();\n }\n for (i = 0; i < polarIds.length; i++) {\n sp = fullLayout[polarIds[i]]._subplot;\n if (sp._scene) sp._scene.draw();\n }\n }\n };\n exports.doAutoRangeAndConstraints = function(gd) {\n var axList = Axes.list(gd, \"\", true);\n var ax;\n var autoRangeDone = {};\n for (var i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!autoRangeDone[ax._id]) {\n autoRangeDone[ax._id] = 1;\n cleanAxisConstraints(gd, ax);\n doAutoRange(gd, ax);\n var matchGroup = ax._matchGroup;\n if (matchGroup) {\n for (var id2 in matchGroup) {\n var ax2 = Axes.getFromId(gd, id2);\n doAutoRange(gd, ax2, ax.range);\n autoRangeDone[id2] = 1;\n }\n }\n }\n }\n enforceAxisConstraints(gd);\n };\n exports.finalDraw = function(gd) {\n Registry.getComponentMethod(\"rangeslider\", \"draw\")(gd);\n Registry.getComponentMethod(\"rangeselector\", \"draw\")(gd);\n };\n exports.drawMarginPushers = function(gd) {\n Registry.getComponentMethod(\"legend\", \"draw\")(gd);\n Registry.getComponentMethod(\"rangeselector\", \"draw\")(gd);\n Registry.getComponentMethod(\"sliders\", \"draw\")(gd);\n Registry.getComponentMethod(\"updatemenus\", \"draw\")(gd);\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n };\n }\n });\n\n // src/components/selections/draw.js\n var require_draw3 = __commonJS({\n \"src/components/selections/draw.js\"(exports, module) {\n \"use strict\";\n var readPaths = require_helpers7().readPaths;\n var displayOutlines = require_display_outlines();\n var clearOutlineControllers = require_handle_outline().clearOutlineControllers;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var arrayEditor = require_plot_template().arrayEditor;\n var helpers = require_helpers8();\n var getPathString = helpers.getPathString;\n module.exports = {\n draw,\n drawOne,\n activateLastSelection\n };\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n clearOutlineControllers(gd);\n fullLayout._selectionLayer.selectAll(\"path\").remove();\n for (var k in fullLayout._plots) {\n var selectionLayer = fullLayout._plots[k].selectionLayer;\n if (selectionLayer) selectionLayer.selectAll(\"path\").remove();\n }\n for (var i = 0; i < fullLayout.selections.length; i++) {\n drawOne(gd, i);\n }\n }\n function couldHaveActiveSelection(gd) {\n return gd._context.editSelection;\n }\n function drawOne(gd, index) {\n gd._fullLayout._paperdiv.selectAll('.selectionlayer [data-index=\"' + index + '\"]').remove();\n var o = helpers.makeSelectionsOptionsAndPlotinfo(gd, index);\n var options = o.options;\n var plotinfo = o.plotinfo;\n if (!options._input) return;\n drawSelection(gd._fullLayout._selectionLayer);\n function drawSelection(selectionLayer) {\n var d = getPathString(gd, options);\n var attrs = {\n \"data-index\": index,\n \"fill-rule\": \"evenodd\",\n d\n };\n var opacity = options.opacity;\n var fillColor = \"rgba(0,0,0,0)\";\n var lineColor = options.line.color || Color2.contrast(gd._fullLayout.plot_bgcolor);\n var lineWidth = options.line.width;\n var lineDash = options.line.dash;\n if (!lineWidth) {\n lineWidth = 5;\n lineDash = \"solid\";\n }\n var isActiveSelection = couldHaveActiveSelection(gd) && gd._fullLayout._activeSelectionIndex === index;\n if (isActiveSelection) {\n fillColor = gd._fullLayout.activeselection.fillcolor;\n opacity = gd._fullLayout.activeselection.opacity;\n }\n var allPaths = [];\n for (var sensory = 1; sensory >= 0; sensory--) {\n var path = selectionLayer.append(\"path\").attr(attrs).style(\"opacity\", sensory ? 0.1 : opacity).call(Color2.stroke, lineColor).call(Color2.fill, fillColor).call(\n Drawing.dashLine,\n sensory ? \"solid\" : lineDash,\n sensory ? 4 + lineWidth : lineWidth\n );\n setClipPath(path, gd, options);\n if (isActiveSelection) {\n var editHelpers = arrayEditor(gd.layout, \"selections\", options);\n path.style({\n cursor: \"move\"\n });\n var dragOptions = {\n element: path.node(),\n plotinfo,\n gd,\n editHelpers,\n isActiveSelection: true\n // i.e. to enable controllers\n };\n var polygons = readPaths(d, gd);\n displayOutlines(polygons, path, dragOptions);\n } else {\n path.style(\"pointer-events\", sensory ? \"all\" : \"none\");\n }\n allPaths[sensory] = path;\n }\n var forePath = allPaths[0];\n var backPath = allPaths[1];\n backPath.node().addEventListener(\"click\", function() {\n return activateSelection(gd, forePath);\n });\n }\n }\n function setClipPath(selectionPath, gd, selectionOptions) {\n var clipAxes = selectionOptions.xref + selectionOptions.yref;\n Drawing.setClipUrl(\n selectionPath,\n \"clip\" + gd._fullLayout._uid + clipAxes,\n gd\n );\n }\n function activateSelection(gd, path) {\n if (!couldHaveActiveSelection(gd)) return;\n var element = path.node();\n var id = +element.getAttribute(\"data-index\");\n if (id >= 0) {\n if (id === gd._fullLayout._activeSelectionIndex) {\n deactivateSelection(gd);\n return;\n }\n gd._fullLayout._activeSelectionIndex = id;\n gd._fullLayout._deactivateSelection = deactivateSelection;\n draw(gd);\n }\n }\n function activateLastSelection(gd) {\n if (!couldHaveActiveSelection(gd)) return;\n var id = gd._fullLayout.selections.length - 1;\n gd._fullLayout._activeSelectionIndex = id;\n gd._fullLayout._deactivateSelection = deactivateSelection;\n draw(gd);\n }\n function deactivateSelection(gd) {\n if (!couldHaveActiveSelection(gd)) return;\n var id = gd._fullLayout._activeSelectionIndex;\n if (id >= 0) {\n clearOutlineControllers(gd);\n delete gd._fullLayout._activeSelectionIndex;\n draw(gd);\n }\n }\n }\n });\n\n // node_modules/polybooljs/lib/build-log.js\n var require_build_log = __commonJS({\n \"node_modules/polybooljs/lib/build-log.js\"(exports, module) {\n function BuildLog() {\n var my;\n var nextSegmentId = 0;\n var curVert = false;\n function push(type, data) {\n my.list.push({\n type,\n data: data ? JSON.parse(JSON.stringify(data)) : void 0\n });\n return my;\n }\n my = {\n list: [],\n segmentId: function() {\n return nextSegmentId++;\n },\n checkIntersection: function(seg1, seg2) {\n return push(\"check\", { seg1, seg2 });\n },\n segmentChop: function(seg, end) {\n push(\"div_seg\", { seg, pt: end });\n return push(\"chop\", { seg, pt: end });\n },\n statusRemove: function(seg) {\n return push(\"pop_seg\", { seg });\n },\n segmentUpdate: function(seg) {\n return push(\"seg_update\", { seg });\n },\n segmentNew: function(seg, primary) {\n return push(\"new_seg\", { seg, primary });\n },\n segmentRemove: function(seg) {\n return push(\"rem_seg\", { seg });\n },\n tempStatus: function(seg, above, below) {\n return push(\"temp_status\", { seg, above, below });\n },\n rewind: function(seg) {\n return push(\"rewind\", { seg });\n },\n status: function(seg, above, below) {\n return push(\"status\", { seg, above, below });\n },\n vert: function(x) {\n if (x === curVert)\n return my;\n curVert = x;\n return push(\"vert\", { x });\n },\n log: function(data) {\n if (typeof data !== \"string\")\n data = JSON.stringify(data, false, \" \");\n return push(\"log\", { txt: data });\n },\n reset: function() {\n return push(\"reset\");\n },\n selected: function(segs) {\n return push(\"selected\", { segs });\n },\n chainStart: function(seg) {\n return push(\"chain_start\", { seg });\n },\n chainRemoveHead: function(index, pt) {\n return push(\"chain_rem_head\", { index, pt });\n },\n chainRemoveTail: function(index, pt) {\n return push(\"chain_rem_tail\", { index, pt });\n },\n chainNew: function(pt1, pt2) {\n return push(\"chain_new\", { pt1, pt2 });\n },\n chainMatch: function(index) {\n return push(\"chain_match\", { index });\n },\n chainClose: function(index) {\n return push(\"chain_close\", { index });\n },\n chainAddHead: function(index, pt) {\n return push(\"chain_add_head\", { index, pt });\n },\n chainAddTail: function(index, pt) {\n return push(\"chain_add_tail\", { index, pt });\n },\n chainConnect: function(index1, index2) {\n return push(\"chain_con\", { index1, index2 });\n },\n chainReverse: function(index) {\n return push(\"chain_rev\", { index });\n },\n chainJoin: function(index1, index2) {\n return push(\"chain_join\", { index1, index2 });\n },\n done: function() {\n return push(\"done\");\n }\n };\n return my;\n }\n module.exports = BuildLog;\n }\n });\n\n // node_modules/polybooljs/lib/epsilon.js\n var require_epsilon = __commonJS({\n \"node_modules/polybooljs/lib/epsilon.js\"(exports, module) {\n function Epsilon(eps) {\n if (typeof eps !== \"number\")\n eps = 1e-10;\n var my = {\n epsilon: function(v) {\n if (typeof v === \"number\")\n eps = v;\n return eps;\n },\n pointAboveOrOnLine: function(pt, left, right) {\n var Ax = left[0];\n var Ay = left[1];\n var Bx = right[0];\n var By = right[1];\n var Cx = pt[0];\n var Cy = pt[1];\n return (Bx - Ax) * (Cy - Ay) - (By - Ay) * (Cx - Ax) >= -eps;\n },\n pointBetween: function(p, left, right) {\n var d_py_ly = p[1] - left[1];\n var d_rx_lx = right[0] - left[0];\n var d_px_lx = p[0] - left[0];\n var d_ry_ly = right[1] - left[1];\n var dot = d_px_lx * d_rx_lx + d_py_ly * d_ry_ly;\n if (dot < eps)\n return false;\n var sqlen = d_rx_lx * d_rx_lx + d_ry_ly * d_ry_ly;\n if (dot - sqlen > -eps)\n return false;\n return true;\n },\n pointsSameX: function(p1, p2) {\n return Math.abs(p1[0] - p2[0]) < eps;\n },\n pointsSameY: function(p1, p2) {\n return Math.abs(p1[1] - p2[1]) < eps;\n },\n pointsSame: function(p1, p2) {\n return my.pointsSameX(p1, p2) && my.pointsSameY(p1, p2);\n },\n pointsCompare: function(p1, p2) {\n if (my.pointsSameX(p1, p2))\n return my.pointsSameY(p1, p2) ? 0 : p1[1] < p2[1] ? -1 : 1;\n return p1[0] < p2[0] ? -1 : 1;\n },\n pointsCollinear: function(pt1, pt2, pt3) {\n var dx1 = pt1[0] - pt2[0];\n var dy1 = pt1[1] - pt2[1];\n var dx2 = pt2[0] - pt3[0];\n var dy2 = pt2[1] - pt3[1];\n return Math.abs(dx1 * dy2 - dx2 * dy1) < eps;\n },\n linesIntersect: function(a0, a1, b0, b1) {\n var adx = a1[0] - a0[0];\n var ady = a1[1] - a0[1];\n var bdx = b1[0] - b0[0];\n var bdy = b1[1] - b0[1];\n var axb = adx * bdy - ady * bdx;\n if (Math.abs(axb) < eps)\n return false;\n var dx = a0[0] - b0[0];\n var dy = a0[1] - b0[1];\n var A2 = (bdx * dy - bdy * dx) / axb;\n var B2 = (adx * dy - ady * dx) / axb;\n var ret = {\n alongA: 0,\n alongB: 0,\n pt: [\n a0[0] + A2 * adx,\n a0[1] + A2 * ady\n ]\n };\n if (A2 <= -eps)\n ret.alongA = -2;\n else if (A2 < eps)\n ret.alongA = -1;\n else if (A2 - 1 <= -eps)\n ret.alongA = 0;\n else if (A2 - 1 < eps)\n ret.alongA = 1;\n else\n ret.alongA = 2;\n if (B2 <= -eps)\n ret.alongB = -2;\n else if (B2 < eps)\n ret.alongB = -1;\n else if (B2 - 1 <= -eps)\n ret.alongB = 0;\n else if (B2 - 1 < eps)\n ret.alongB = 1;\n else\n ret.alongB = 2;\n return ret;\n },\n pointInsideRegion: function(pt, region) {\n var x = pt[0];\n var y = pt[1];\n var last_x = region[region.length - 1][0];\n var last_y = region[region.length - 1][1];\n var inside = false;\n for (var i = 0; i < region.length; i++) {\n var curr_x = region[i][0];\n var curr_y = region[i][1];\n if (curr_y - y > eps != last_y - y > eps && (last_x - curr_x) * (y - curr_y) / (last_y - curr_y) + curr_x - x > eps)\n inside = !inside;\n last_x = curr_x;\n last_y = curr_y;\n }\n return inside;\n }\n };\n return my;\n }\n module.exports = Epsilon;\n }\n });\n\n // node_modules/polybooljs/lib/linked-list.js\n var require_linked_list = __commonJS({\n \"node_modules/polybooljs/lib/linked-list.js\"(exports, module) {\n var LinkedList = {\n create: function() {\n var my = {\n root: { root: true, next: null },\n exists: function(node) {\n if (node === null || node === my.root)\n return false;\n return true;\n },\n isEmpty: function() {\n return my.root.next === null;\n },\n getHead: function() {\n return my.root.next;\n },\n insertBefore: function(node, check) {\n var last = my.root;\n var here = my.root.next;\n while (here !== null) {\n if (check(here)) {\n node.prev = here.prev;\n node.next = here;\n here.prev.next = node;\n here.prev = node;\n return;\n }\n last = here;\n here = here.next;\n }\n last.next = node;\n node.prev = last;\n node.next = null;\n },\n findTransition: function(check) {\n var prev = my.root;\n var here = my.root.next;\n while (here !== null) {\n if (check(here))\n break;\n prev = here;\n here = here.next;\n }\n return {\n before: prev === my.root ? null : prev,\n after: here,\n insert: function(node) {\n node.prev = prev;\n node.next = here;\n prev.next = node;\n if (here !== null)\n here.prev = node;\n return node;\n }\n };\n }\n };\n return my;\n },\n node: function(data) {\n data.prev = null;\n data.next = null;\n data.remove = function() {\n data.prev.next = data.next;\n if (data.next)\n data.next.prev = data.prev;\n data.prev = null;\n data.next = null;\n };\n return data;\n }\n };\n module.exports = LinkedList;\n }\n });\n\n // node_modules/polybooljs/lib/intersecter.js\n var require_intersecter = __commonJS({\n \"node_modules/polybooljs/lib/intersecter.js\"(exports, module) {\n var LinkedList = require_linked_list();\n function Intersecter(selfIntersection, eps, buildLog) {\n function segmentNew(start, end) {\n return {\n id: buildLog ? buildLog.segmentId() : -1,\n start,\n end,\n myFill: {\n above: null,\n // is there fill above us?\n below: null\n // is there fill below us?\n },\n otherFill: null\n };\n }\n function segmentCopy(start, end, seg) {\n return {\n id: buildLog ? buildLog.segmentId() : -1,\n start,\n end,\n myFill: {\n above: seg.myFill.above,\n below: seg.myFill.below\n },\n otherFill: null\n };\n }\n var event_root = LinkedList.create();\n function eventCompare(p1_isStart, p1_1, p1_2, p2_isStart, p2_1, p2_2) {\n var comp = eps.pointsCompare(p1_1, p2_1);\n if (comp !== 0)\n return comp;\n if (eps.pointsSame(p1_2, p2_2))\n return 0;\n if (p1_isStart !== p2_isStart)\n return p1_isStart ? 1 : -1;\n return eps.pointAboveOrOnLine(\n p1_2,\n p2_isStart ? p2_1 : p2_2,\n // order matters\n p2_isStart ? p2_2 : p2_1\n ) ? 1 : -1;\n }\n function eventAdd(ev, other_pt) {\n event_root.insertBefore(ev, function(here) {\n var comp = eventCompare(\n ev.isStart,\n ev.pt,\n other_pt,\n here.isStart,\n here.pt,\n here.other.pt\n );\n return comp < 0;\n });\n }\n function eventAddSegmentStart(seg, primary) {\n var ev_start = LinkedList.node({\n isStart: true,\n pt: seg.start,\n seg,\n primary,\n other: null,\n status: null\n });\n eventAdd(ev_start, seg.end);\n return ev_start;\n }\n function eventAddSegmentEnd(ev_start, seg, primary) {\n var ev_end = LinkedList.node({\n isStart: false,\n pt: seg.end,\n seg,\n primary,\n other: ev_start,\n status: null\n });\n ev_start.other = ev_end;\n eventAdd(ev_end, ev_start.pt);\n }\n function eventAddSegment(seg, primary) {\n var ev_start = eventAddSegmentStart(seg, primary);\n eventAddSegmentEnd(ev_start, seg, primary);\n return ev_start;\n }\n function eventUpdateEnd(ev, end) {\n if (buildLog)\n buildLog.segmentChop(ev.seg, end);\n ev.other.remove();\n ev.seg.end = end;\n ev.other.pt = end;\n eventAdd(ev.other, ev.pt);\n }\n function eventDivide(ev, pt) {\n var ns = segmentCopy(pt, ev.seg.end, ev.seg);\n eventUpdateEnd(ev, pt);\n return eventAddSegment(ns, ev.primary);\n }\n function calculate(primaryPolyInverted, secondaryPolyInverted) {\n var status_root = LinkedList.create();\n function statusCompare(ev1, ev2) {\n var a1 = ev1.seg.start;\n var a2 = ev1.seg.end;\n var b1 = ev2.seg.start;\n var b2 = ev2.seg.end;\n if (eps.pointsCollinear(a1, b1, b2)) {\n if (eps.pointsCollinear(a2, b1, b2))\n return 1;\n return eps.pointAboveOrOnLine(a2, b1, b2) ? 1 : -1;\n }\n return eps.pointAboveOrOnLine(a1, b1, b2) ? 1 : -1;\n }\n function statusFindSurrounding(ev2) {\n return status_root.findTransition(function(here) {\n var comp = statusCompare(ev2, here.ev);\n return comp > 0;\n });\n }\n function checkIntersection(ev1, ev2) {\n var seg1 = ev1.seg;\n var seg2 = ev2.seg;\n var a1 = seg1.start;\n var a2 = seg1.end;\n var b1 = seg2.start;\n var b2 = seg2.end;\n if (buildLog)\n buildLog.checkIntersection(seg1, seg2);\n var i = eps.linesIntersect(a1, a2, b1, b2);\n if (i === false) {\n if (!eps.pointsCollinear(a1, a2, b1))\n return false;\n if (eps.pointsSame(a1, b2) || eps.pointsSame(a2, b1))\n return false;\n var a1_equ_b1 = eps.pointsSame(a1, b1);\n var a2_equ_b2 = eps.pointsSame(a2, b2);\n if (a1_equ_b1 && a2_equ_b2)\n return ev2;\n var a1_between = !a1_equ_b1 && eps.pointBetween(a1, b1, b2);\n var a2_between = !a2_equ_b2 && eps.pointBetween(a2, b1, b2);\n if (a1_equ_b1) {\n if (a2_between) {\n eventDivide(ev2, a2);\n } else {\n eventDivide(ev1, b2);\n }\n return ev2;\n } else if (a1_between) {\n if (!a2_equ_b2) {\n if (a2_between) {\n eventDivide(ev2, a2);\n } else {\n eventDivide(ev1, b2);\n }\n }\n eventDivide(ev2, a1);\n }\n } else {\n if (i.alongA === 0) {\n if (i.alongB === -1)\n eventDivide(ev1, b1);\n else if (i.alongB === 0)\n eventDivide(ev1, i.pt);\n else if (i.alongB === 1)\n eventDivide(ev1, b2);\n }\n if (i.alongB === 0) {\n if (i.alongA === -1)\n eventDivide(ev2, a1);\n else if (i.alongA === 0)\n eventDivide(ev2, i.pt);\n else if (i.alongA === 1)\n eventDivide(ev2, a2);\n }\n }\n return false;\n }\n var segments = [];\n while (!event_root.isEmpty()) {\n var ev = event_root.getHead();\n if (buildLog)\n buildLog.vert(ev.pt[0]);\n if (ev.isStart) {\n let checkBothIntersections2 = function() {\n if (above) {\n var eve2 = checkIntersection(ev, above);\n if (eve2)\n return eve2;\n }\n if (below)\n return checkIntersection(ev, below);\n return false;\n };\n var checkBothIntersections = checkBothIntersections2;\n if (buildLog)\n buildLog.segmentNew(ev.seg, ev.primary);\n var surrounding = statusFindSurrounding(ev);\n var above = surrounding.before ? surrounding.before.ev : null;\n var below = surrounding.after ? surrounding.after.ev : null;\n if (buildLog) {\n buildLog.tempStatus(\n ev.seg,\n above ? above.seg : false,\n below ? below.seg : false\n );\n }\n var eve = checkBothIntersections2();\n if (eve) {\n if (selfIntersection) {\n var toggle;\n if (ev.seg.myFill.below === null)\n toggle = true;\n else\n toggle = ev.seg.myFill.above !== ev.seg.myFill.below;\n if (toggle)\n eve.seg.myFill.above = !eve.seg.myFill.above;\n } else {\n eve.seg.otherFill = ev.seg.myFill;\n }\n if (buildLog)\n buildLog.segmentUpdate(eve.seg);\n ev.other.remove();\n ev.remove();\n }\n if (event_root.getHead() !== ev) {\n if (buildLog)\n buildLog.rewind(ev.seg);\n continue;\n }\n if (selfIntersection) {\n var toggle;\n if (ev.seg.myFill.below === null)\n toggle = true;\n else\n toggle = ev.seg.myFill.above !== ev.seg.myFill.below;\n if (!below) {\n ev.seg.myFill.below = primaryPolyInverted;\n } else {\n ev.seg.myFill.below = below.seg.myFill.above;\n }\n if (toggle)\n ev.seg.myFill.above = !ev.seg.myFill.below;\n else\n ev.seg.myFill.above = ev.seg.myFill.below;\n } else {\n if (ev.seg.otherFill === null) {\n var inside;\n if (!below) {\n inside = ev.primary ? secondaryPolyInverted : primaryPolyInverted;\n } else {\n if (ev.primary === below.primary)\n inside = below.seg.otherFill.above;\n else\n inside = below.seg.myFill.above;\n }\n ev.seg.otherFill = {\n above: inside,\n below: inside\n };\n }\n }\n if (buildLog) {\n buildLog.status(\n ev.seg,\n above ? above.seg : false,\n below ? below.seg : false\n );\n }\n ev.other.status = surrounding.insert(LinkedList.node({ ev }));\n } else {\n var st = ev.status;\n if (st === null) {\n throw new Error(\"PolyBool: Zero-length segment detected; your epsilon is probably too small or too large\");\n }\n if (status_root.exists(st.prev) && status_root.exists(st.next))\n checkIntersection(st.prev.ev, st.next.ev);\n if (buildLog)\n buildLog.statusRemove(st.ev.seg);\n st.remove();\n if (!ev.primary) {\n var s = ev.seg.myFill;\n ev.seg.myFill = ev.seg.otherFill;\n ev.seg.otherFill = s;\n }\n segments.push(ev.seg);\n }\n event_root.getHead().remove();\n }\n if (buildLog)\n buildLog.done();\n return segments;\n }\n if (!selfIntersection) {\n return {\n calculate: function(segments1, inverted1, segments2, inverted2) {\n segments1.forEach(function(seg) {\n eventAddSegment(segmentCopy(seg.start, seg.end, seg), true);\n });\n segments2.forEach(function(seg) {\n eventAddSegment(segmentCopy(seg.start, seg.end, seg), false);\n });\n return calculate(inverted1, inverted2);\n }\n };\n }\n return {\n addRegion: function(region) {\n var pt1;\n var pt2 = region[region.length - 1];\n for (var i = 0; i < region.length; i++) {\n pt1 = pt2;\n pt2 = region[i];\n var forward = eps.pointsCompare(pt1, pt2);\n if (forward === 0)\n continue;\n eventAddSegment(\n segmentNew(\n forward < 0 ? pt1 : pt2,\n forward < 0 ? pt2 : pt1\n ),\n true\n );\n }\n },\n calculate: function(inverted) {\n return calculate(inverted, false);\n }\n };\n }\n module.exports = Intersecter;\n }\n });\n\n // node_modules/polybooljs/lib/segment-chainer.js\n var require_segment_chainer = __commonJS({\n \"node_modules/polybooljs/lib/segment-chainer.js\"(exports, module) {\n function SegmentChainer(segments, eps, buildLog) {\n var chains = [];\n var regions = [];\n segments.forEach(function(seg) {\n var pt1 = seg.start;\n var pt2 = seg.end;\n if (eps.pointsSame(pt1, pt2)) {\n console.warn(\"PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large\");\n return;\n }\n if (buildLog)\n buildLog.chainStart(seg);\n var first_match = {\n index: 0,\n matches_head: false,\n matches_pt1: false\n };\n var second_match = {\n index: 0,\n matches_head: false,\n matches_pt1: false\n };\n var next_match = first_match;\n function setMatch(index2, matches_head, matches_pt1) {\n next_match.index = index2;\n next_match.matches_head = matches_head;\n next_match.matches_pt1 = matches_pt1;\n if (next_match === first_match) {\n next_match = second_match;\n return false;\n }\n next_match = null;\n return true;\n }\n for (var i = 0; i < chains.length; i++) {\n var chain = chains[i];\n var head = chain[0];\n var head2 = chain[1];\n var tail = chain[chain.length - 1];\n var tail2 = chain[chain.length - 2];\n if (eps.pointsSame(head, pt1)) {\n if (setMatch(i, true, true))\n break;\n } else if (eps.pointsSame(head, pt2)) {\n if (setMatch(i, true, false))\n break;\n } else if (eps.pointsSame(tail, pt1)) {\n if (setMatch(i, false, true))\n break;\n } else if (eps.pointsSame(tail, pt2)) {\n if (setMatch(i, false, false))\n break;\n }\n }\n if (next_match === first_match) {\n chains.push([pt1, pt2]);\n if (buildLog)\n buildLog.chainNew(pt1, pt2);\n return;\n }\n if (next_match === second_match) {\n if (buildLog)\n buildLog.chainMatch(first_match.index);\n var index = first_match.index;\n var pt = first_match.matches_pt1 ? pt2 : pt1;\n var addToHead = first_match.matches_head;\n var chain = chains[index];\n var grow = addToHead ? chain[0] : chain[chain.length - 1];\n var grow2 = addToHead ? chain[1] : chain[chain.length - 2];\n var oppo = addToHead ? chain[chain.length - 1] : chain[0];\n var oppo2 = addToHead ? chain[chain.length - 2] : chain[1];\n if (eps.pointsCollinear(grow2, grow, pt)) {\n if (addToHead) {\n if (buildLog)\n buildLog.chainRemoveHead(first_match.index, pt);\n chain.shift();\n } else {\n if (buildLog)\n buildLog.chainRemoveTail(first_match.index, pt);\n chain.pop();\n }\n grow = grow2;\n }\n if (eps.pointsSame(oppo, pt)) {\n chains.splice(index, 1);\n if (eps.pointsCollinear(oppo2, oppo, grow)) {\n if (addToHead) {\n if (buildLog)\n buildLog.chainRemoveTail(first_match.index, grow);\n chain.pop();\n } else {\n if (buildLog)\n buildLog.chainRemoveHead(first_match.index, grow);\n chain.shift();\n }\n }\n if (buildLog)\n buildLog.chainClose(first_match.index);\n regions.push(chain);\n return;\n }\n if (addToHead) {\n if (buildLog)\n buildLog.chainAddHead(first_match.index, pt);\n chain.unshift(pt);\n } else {\n if (buildLog)\n buildLog.chainAddTail(first_match.index, pt);\n chain.push(pt);\n }\n return;\n }\n function reverseChain(index2) {\n if (buildLog)\n buildLog.chainReverse(index2);\n chains[index2].reverse();\n }\n function appendChain(index1, index2) {\n var chain1 = chains[index1];\n var chain2 = chains[index2];\n var tail3 = chain1[chain1.length - 1];\n var tail22 = chain1[chain1.length - 2];\n var head3 = chain2[0];\n var head22 = chain2[1];\n if (eps.pointsCollinear(tail22, tail3, head3)) {\n if (buildLog)\n buildLog.chainRemoveTail(index1, tail3);\n chain1.pop();\n tail3 = tail22;\n }\n if (eps.pointsCollinear(tail3, head3, head22)) {\n if (buildLog)\n buildLog.chainRemoveHead(index2, head3);\n chain2.shift();\n }\n if (buildLog)\n buildLog.chainJoin(index1, index2);\n chains[index1] = chain1.concat(chain2);\n chains.splice(index2, 1);\n }\n var F = first_match.index;\n var S = second_match.index;\n if (buildLog)\n buildLog.chainConnect(F, S);\n var reverseF = chains[F].length < chains[S].length;\n if (first_match.matches_head) {\n if (second_match.matches_head) {\n if (reverseF) {\n reverseChain(F);\n appendChain(F, S);\n } else {\n reverseChain(S);\n appendChain(S, F);\n }\n } else {\n appendChain(S, F);\n }\n } else {\n if (second_match.matches_head) {\n appendChain(F, S);\n } else {\n if (reverseF) {\n reverseChain(F);\n appendChain(S, F);\n } else {\n reverseChain(S);\n appendChain(F, S);\n }\n }\n }\n });\n return regions;\n }\n module.exports = SegmentChainer;\n }\n });\n\n // node_modules/polybooljs/lib/segment-selector.js\n var require_segment_selector = __commonJS({\n \"node_modules/polybooljs/lib/segment-selector.js\"(exports, module) {\n function select(segments, selection, buildLog) {\n var result = [];\n segments.forEach(function(seg) {\n var index = (seg.myFill.above ? 8 : 0) + (seg.myFill.below ? 4 : 0) + (seg.otherFill && seg.otherFill.above ? 2 : 0) + (seg.otherFill && seg.otherFill.below ? 1 : 0);\n if (selection[index] !== 0) {\n result.push({\n id: buildLog ? buildLog.segmentId() : -1,\n start: seg.start,\n end: seg.end,\n myFill: {\n above: selection[index] === 1,\n // 1 if filled above\n below: selection[index] === 2\n // 2 if filled below\n },\n otherFill: null\n });\n }\n });\n if (buildLog)\n buildLog.selected(result);\n return result;\n }\n var SegmentSelector = {\n union: function(segments, buildLog) {\n return select(segments, [\n 0,\n 2,\n 1,\n 0,\n 2,\n 2,\n 0,\n 0,\n 1,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0\n ], buildLog);\n },\n intersect: function(segments, buildLog) {\n return select(segments, [\n 0,\n 0,\n 0,\n 0,\n 0,\n 2,\n 0,\n 2,\n 0,\n 0,\n 1,\n 1,\n 0,\n 2,\n 1,\n 0\n ], buildLog);\n },\n difference: function(segments, buildLog) {\n return select(segments, [\n 0,\n 0,\n 0,\n 0,\n 2,\n 0,\n 2,\n 0,\n 1,\n 1,\n 0,\n 0,\n 0,\n 1,\n 2,\n 0\n ], buildLog);\n },\n differenceRev: function(segments, buildLog) {\n return select(segments, [\n 0,\n 2,\n 1,\n 0,\n 0,\n 0,\n 1,\n 1,\n 0,\n 2,\n 0,\n 2,\n 0,\n 0,\n 0,\n 0\n ], buildLog);\n },\n xor: function(segments, buildLog) {\n return select(segments, [\n 0,\n 2,\n 1,\n 0,\n 2,\n 0,\n 0,\n 1,\n 1,\n 0,\n 0,\n 2,\n 0,\n 1,\n 2,\n 0\n ], buildLog);\n }\n };\n module.exports = SegmentSelector;\n }\n });\n\n // node_modules/polybooljs/lib/geojson.js\n var require_geojson = __commonJS({\n \"node_modules/polybooljs/lib/geojson.js\"(exports, module) {\n var GeoJSON = {\n // convert a GeoJSON object to a PolyBool polygon\n toPolygon: function(PolyBool, geojson) {\n function GeoPoly(coords) {\n if (coords.length <= 0)\n return PolyBool.segments({ inverted: false, regions: [] });\n function LineString(ls) {\n var reg = ls.slice(0, ls.length - 1);\n return PolyBool.segments({ inverted: false, regions: [reg] });\n }\n var out2 = LineString(coords[0]);\n for (var i2 = 1; i2 < coords.length; i2++)\n out2 = PolyBool.selectDifference(PolyBool.combine(out2, LineString(coords[i2])));\n return out2;\n }\n if (geojson.type === \"Polygon\") {\n return PolyBool.polygon(GeoPoly(geojson.coordinates));\n } else if (geojson.type === \"MultiPolygon\") {\n var out = PolyBool.segments({ inverted: false, regions: [] });\n for (var i = 0; i < geojson.coordinates.length; i++)\n out = PolyBool.selectUnion(PolyBool.combine(out, GeoPoly(geojson.coordinates[i])));\n return PolyBool.polygon(out);\n }\n throw new Error(\"PolyBool: Cannot convert GeoJSON object to PolyBool polygon\");\n },\n // convert a PolyBool polygon to a GeoJSON object\n fromPolygon: function(PolyBool, eps, poly) {\n poly = PolyBool.polygon(PolyBool.segments(poly));\n function regionInsideRegion(r1, r2) {\n return eps.pointInsideRegion([\n (r1[0][0] + r1[1][0]) * 0.5,\n (r1[0][1] + r1[1][1]) * 0.5\n ], r2);\n }\n function newNode(region2) {\n return {\n region: region2,\n children: []\n };\n }\n var roots = newNode(null);\n function addChild(root, region2) {\n for (var i2 = 0; i2 < root.children.length; i2++) {\n var child = root.children[i2];\n if (regionInsideRegion(region2, child.region)) {\n addChild(child, region2);\n return;\n }\n }\n var node = newNode(region2);\n for (var i2 = 0; i2 < root.children.length; i2++) {\n var child = root.children[i2];\n if (regionInsideRegion(child.region, region2)) {\n node.children.push(child);\n root.children.splice(i2, 1);\n i2--;\n }\n }\n root.children.push(node);\n }\n for (var i = 0; i < poly.regions.length; i++) {\n var region = poly.regions[i];\n if (region.length < 3)\n continue;\n addChild(roots, region);\n }\n function forceWinding(region2, clockwise) {\n var winding = 0;\n var last_x = region2[region2.length - 1][0];\n var last_y = region2[region2.length - 1][1];\n var copy = [];\n for (var i2 = 0; i2 < region2.length; i2++) {\n var curr_x = region2[i2][0];\n var curr_y = region2[i2][1];\n copy.push([curr_x, curr_y]);\n winding += curr_y * last_x - curr_x * last_y;\n last_x = curr_x;\n last_y = curr_y;\n }\n var isclockwise = winding < 0;\n if (isclockwise !== clockwise)\n copy.reverse();\n copy.push([copy[0][0], copy[0][1]]);\n return copy;\n }\n var geopolys = [];\n function addExterior(node) {\n var poly2 = [forceWinding(node.region, false)];\n geopolys.push(poly2);\n for (var i2 = 0; i2 < node.children.length; i2++)\n poly2.push(getInterior(node.children[i2]));\n }\n function getInterior(node) {\n for (var i2 = 0; i2 < node.children.length; i2++)\n addExterior(node.children[i2]);\n return forceWinding(node.region, true);\n }\n for (var i = 0; i < roots.children.length; i++)\n addExterior(roots.children[i]);\n if (geopolys.length <= 0)\n return { type: \"Polygon\", coordinates: [] };\n if (geopolys.length == 1)\n return { type: \"Polygon\", coordinates: geopolys[0] };\n return {\n // otherwise, use a GeoJSON MultiPolygon\n type: \"MultiPolygon\",\n coordinates: geopolys\n };\n }\n };\n module.exports = GeoJSON;\n }\n });\n\n // node_modules/polybooljs/index.js\n var require_polybooljs = __commonJS({\n \"node_modules/polybooljs/index.js\"(exports, module) {\n var BuildLog = require_build_log();\n var Epsilon = require_epsilon();\n var Intersecter = require_intersecter();\n var SegmentChainer = require_segment_chainer();\n var SegmentSelector = require_segment_selector();\n var GeoJSON = require_geojson();\n var buildLog = false;\n var epsilon = Epsilon();\n var PolyBool;\n PolyBool = {\n // getter/setter for buildLog\n buildLog: function(bl) {\n if (bl === true)\n buildLog = BuildLog();\n else if (bl === false)\n buildLog = false;\n return buildLog === false ? false : buildLog.list;\n },\n // getter/setter for epsilon\n epsilon: function(v) {\n return epsilon.epsilon(v);\n },\n // core API\n segments: function(poly) {\n var i = Intersecter(true, epsilon, buildLog);\n poly.regions.forEach(i.addRegion);\n return {\n segments: i.calculate(poly.inverted),\n inverted: poly.inverted\n };\n },\n combine: function(segments1, segments2) {\n var i3 = Intersecter(false, epsilon, buildLog);\n return {\n combined: i3.calculate(\n segments1.segments,\n segments1.inverted,\n segments2.segments,\n segments2.inverted\n ),\n inverted1: segments1.inverted,\n inverted2: segments2.inverted\n };\n },\n selectUnion: function(combined) {\n return {\n segments: SegmentSelector.union(combined.combined, buildLog),\n inverted: combined.inverted1 || combined.inverted2\n };\n },\n selectIntersect: function(combined) {\n return {\n segments: SegmentSelector.intersect(combined.combined, buildLog),\n inverted: combined.inverted1 && combined.inverted2\n };\n },\n selectDifference: function(combined) {\n return {\n segments: SegmentSelector.difference(combined.combined, buildLog),\n inverted: combined.inverted1 && !combined.inverted2\n };\n },\n selectDifferenceRev: function(combined) {\n return {\n segments: SegmentSelector.differenceRev(combined.combined, buildLog),\n inverted: !combined.inverted1 && combined.inverted2\n };\n },\n selectXor: function(combined) {\n return {\n segments: SegmentSelector.xor(combined.combined, buildLog),\n inverted: combined.inverted1 !== combined.inverted2\n };\n },\n polygon: function(segments) {\n return {\n regions: SegmentChainer(segments.segments, epsilon, buildLog),\n inverted: segments.inverted\n };\n },\n // GeoJSON converters\n polygonFromGeoJSON: function(geojson) {\n return GeoJSON.toPolygon(PolyBool, geojson);\n },\n polygonToGeoJSON: function(poly) {\n return GeoJSON.fromPolygon(PolyBool, epsilon, poly);\n },\n // helper functions for common operations\n union: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectUnion);\n },\n intersect: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectIntersect);\n },\n difference: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectDifference);\n },\n differenceRev: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectDifferenceRev);\n },\n xor: function(poly1, poly2) {\n return operate(poly1, poly2, PolyBool.selectXor);\n }\n };\n function operate(poly1, poly2, selector) {\n var seg1 = PolyBool.segments(poly1);\n var seg2 = PolyBool.segments(poly2);\n var comb = PolyBool.combine(seg1, seg2);\n var seg3 = selector(comb);\n return PolyBool.polygon(seg3);\n }\n if (typeof window === \"object\")\n window.PolyBool = PolyBool;\n module.exports = PolyBool;\n }\n });\n\n // node_modules/point-in-polygon/nested.js\n var require_nested = __commonJS({\n \"node_modules/point-in-polygon/nested.js\"(exports, module) {\n module.exports = function pointInPolygonNested(point, vs, start, end) {\n var x = point[0], y = point[1];\n var inside = false;\n if (start === void 0) start = 0;\n if (end === void 0) end = vs.length;\n var len = end - start;\n for (var i = 0, j = len - 1; i < len; j = i++) {\n var xi = vs[i + start][0], yi = vs[i + start][1];\n var xj = vs[j + start][0], yj = vs[j + start][1];\n var intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) inside = !inside;\n }\n return inside;\n };\n }\n });\n\n // src/lib/polygon.js\n var require_polygon = __commonJS({\n \"src/lib/polygon.js\"(exports, module) {\n \"use strict\";\n var dot = require_matrix().dot;\n var BADNUM = require_numerical().BADNUM;\n var polygon = module.exports = {};\n polygon.tester = function tester(ptsIn) {\n var pts = ptsIn.slice();\n var xmin = pts[0][0];\n var xmax = xmin;\n var ymin = pts[0][1];\n var ymax = ymin;\n var i;\n if (pts[pts.length - 1][0] !== pts[0][0] || pts[pts.length - 1][1] !== pts[0][1]) {\n pts.push(pts[0]);\n }\n for (i = 1; i < pts.length; i++) {\n xmin = Math.min(xmin, pts[i][0]);\n xmax = Math.max(xmax, pts[i][0]);\n ymin = Math.min(ymin, pts[i][1]);\n ymax = Math.max(ymax, pts[i][1]);\n }\n var isRect = false;\n var rectFirstEdgeTest;\n if (pts.length === 5) {\n if (pts[0][0] === pts[1][0]) {\n if (pts[2][0] === pts[3][0] && pts[0][1] === pts[3][1] && pts[1][1] === pts[2][1]) {\n isRect = true;\n rectFirstEdgeTest = function(pt) {\n return pt[0] === pts[0][0];\n };\n }\n } else if (pts[0][1] === pts[1][1]) {\n if (pts[2][1] === pts[3][1] && pts[0][0] === pts[3][0] && pts[1][0] === pts[2][0]) {\n isRect = true;\n rectFirstEdgeTest = function(pt) {\n return pt[1] === pts[0][1];\n };\n }\n }\n }\n function rectContains(pt, omitFirstEdge) {\n var x = pt[0];\n var y = pt[1];\n if (x === BADNUM || x < xmin || x > xmax || y === BADNUM || y < ymin || y > ymax) {\n return false;\n }\n if (omitFirstEdge && rectFirstEdgeTest(pt)) return false;\n return true;\n }\n function contains(pt, omitFirstEdge) {\n var x = pt[0];\n var y = pt[1];\n if (x === BADNUM || x < xmin || x > xmax || y === BADNUM || y < ymin || y > ymax) {\n return false;\n }\n var imax = pts.length;\n var x1 = pts[0][0];\n var y1 = pts[0][1];\n var crossings = 0;\n var i2;\n var x0;\n var y0;\n var xmini;\n var ycross;\n for (i2 = 1; i2 < imax; i2++) {\n x0 = x1;\n y0 = y1;\n x1 = pts[i2][0];\n y1 = pts[i2][1];\n xmini = Math.min(x0, x1);\n if (x < xmini || x > Math.max(x0, x1) || y > Math.max(y0, y1)) {\n continue;\n } else if (y < Math.min(y0, y1)) {\n if (x !== xmini) crossings++;\n } else {\n if (x1 === x0) ycross = y;\n else ycross = y0 + (x - x0) * (y1 - y0) / (x1 - x0);\n if (y === ycross) {\n if (i2 === 1 && omitFirstEdge) return false;\n return true;\n }\n if (y <= ycross && x !== xmini) crossings++;\n }\n }\n return crossings % 2 === 1;\n }\n var degenerate = true;\n var lastPt = pts[0];\n for (i = 1; i < pts.length; i++) {\n if (lastPt[0] !== pts[i][0] || lastPt[1] !== pts[i][1]) {\n degenerate = false;\n break;\n }\n }\n return {\n xmin,\n xmax,\n ymin,\n ymax,\n pts,\n contains: isRect ? rectContains : contains,\n isRect,\n degenerate\n };\n };\n polygon.isSegmentBent = function isSegmentBent(pts, start, end, tolerance) {\n var startPt = pts[start];\n var segment = [pts[end][0] - startPt[0], pts[end][1] - startPt[1]];\n var segmentSquared = dot(segment, segment);\n var segmentLen = Math.sqrt(segmentSquared);\n var unitPerp = [-segment[1] / segmentLen, segment[0] / segmentLen];\n var i;\n var part;\n var partParallel;\n for (i = start + 1; i < end; i++) {\n part = [pts[i][0] - startPt[0], pts[i][1] - startPt[1]];\n partParallel = dot(part, segment);\n if (partParallel < 0 || partParallel > segmentSquared || Math.abs(dot(part, unitPerp)) > tolerance) return true;\n }\n return false;\n };\n polygon.filter = function filter(pts, tolerance) {\n var ptsFiltered = [pts[0]];\n var doneRawIndex = 0;\n var doneFilteredIndex = 0;\n function addPt(pt) {\n pts.push(pt);\n var prevFilterLen = ptsFiltered.length;\n var iLast = doneRawIndex;\n ptsFiltered.splice(doneFilteredIndex + 1);\n for (var i = iLast + 1; i < pts.length; i++) {\n if (i === pts.length - 1 || polygon.isSegmentBent(pts, iLast, i + 1, tolerance)) {\n ptsFiltered.push(pts[i]);\n if (ptsFiltered.length < prevFilterLen - 2) {\n doneRawIndex = i;\n doneFilteredIndex = ptsFiltered.length - 1;\n }\n iLast = i;\n }\n }\n }\n if (pts.length > 1) {\n var lastPt = pts.pop();\n addPt(lastPt);\n }\n return {\n addPt,\n raw: pts,\n filtered: ptsFiltered\n };\n };\n }\n });\n\n // src/components/selections/constants.js\n var require_constants7 = __commonJS({\n \"src/components/selections/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // max pixels off straight before a lasso select line counts as bent\n BENDPX: 1.5,\n // smallest dimension allowed for a select box\n MINSELECT: 12,\n // throttling limit (ms) for selectPoints calls\n SELECTDELAY: 100,\n // cache ID suffix for throttle\n SELECTID: \"-select\"\n };\n }\n });\n\n // src/components/selections/select.js\n var require_select = __commonJS({\n \"src/components/selections/select.js\"(exports, module) {\n \"use strict\";\n var polybool = require_polybooljs();\n var pointInPolygon = require_nested();\n var Registry = require_registry();\n var dashStyle = require_drawing().dashStyle;\n var Color2 = require_color();\n var Fx = require_fx();\n var makeEventData = require_helpers2().makeEventData;\n var dragHelpers = require_helpers5();\n var freeMode = dragHelpers.freeMode;\n var rectMode = dragHelpers.rectMode;\n var drawMode = dragHelpers.drawMode;\n var openMode = dragHelpers.openMode;\n var selectMode = dragHelpers.selectMode;\n var shapeHelpers = require_helpers8();\n var shapeConstants = require_constants5();\n var displayOutlines = require_display_outlines();\n var clearOutline = require_handle_outline().clearOutline;\n var newShapeHelpers = require_helpers7();\n var handleEllipse = newShapeHelpers.handleEllipse;\n var readPaths = newShapeHelpers.readPaths;\n var newShapes = require_newshapes().newShapes;\n var newSelections = require_newselections();\n var activateLastSelection = require_draw3().activateLastSelection;\n var Lib = require_lib();\n var ascending = Lib.sorterAsc;\n var libPolygon = require_polygon();\n var throttle = require_throttle();\n var getFromId = require_axis_ids().getFromId;\n var clearGlCanvases = require_clear_gl_canvases();\n var redrawReglTraces = require_subroutines().redrawReglTraces;\n var constants = require_constants7();\n var MINSELECT = constants.MINSELECT;\n var filteredPolygon = libPolygon.filter;\n var polygonTester = libPolygon.tester;\n var helpers = require_helpers6();\n var p2r = helpers.p2r;\n var axValue = helpers.axValue;\n var getTransform = helpers.getTransform;\n function hasSubplot(dragOptions) {\n return dragOptions.subplot !== void 0;\n }\n function prepSelect(evt, startX, startY, dragOptions, mode) {\n var isCartesian = !hasSubplot(dragOptions);\n var isFreeMode = freeMode(mode);\n var isRectMode = rectMode(mode);\n var isOpenMode = openMode(mode);\n var isDrawMode = drawMode(mode);\n var isSelectMode = selectMode(mode);\n var isLine = mode === \"drawline\";\n var isEllipse = mode === \"drawcircle\";\n var isLineOrEllipse = isLine || isEllipse;\n var gd = dragOptions.gd;\n var fullLayout = gd._fullLayout;\n var immediateSelect = isSelectMode && fullLayout.newselection.mode === \"immediate\" && isCartesian;\n var zoomLayer = fullLayout._zoomlayer;\n var dragBBox = dragOptions.element.getBoundingClientRect();\n var plotinfo = dragOptions.plotinfo;\n var transform = getTransform(plotinfo);\n var x0 = startX - dragBBox.left;\n var y0 = startY - dragBBox.top;\n fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n var scaleX = fullLayout._invScaleX;\n var scaleY = fullLayout._invScaleY;\n var x1 = x0;\n var y1 = y0;\n var path0 = \"M\" + x0 + \",\" + y0;\n var xAxis = dragOptions.xaxes[0];\n var yAxis = dragOptions.yaxes[0];\n var pw = xAxis._length;\n var ph = yAxis._length;\n var subtract = evt.altKey && !(drawMode(mode) && isOpenMode);\n var filterPoly, selectionTesters, mergedPolygons, currentPolygon;\n var i, searchInfo, eventData;\n coerceSelectionsCache(evt, gd, dragOptions);\n if (isFreeMode) {\n filterPoly = filteredPolygon([[x0, y0]], constants.BENDPX);\n }\n var outlines = zoomLayer.selectAll(\"path.select-outline-\" + plotinfo.id).data([1]);\n var newStyle = isDrawMode ? fullLayout.newshape : fullLayout.newselection;\n if (isDrawMode) {\n dragOptions.hasText = newStyle.label.text || newStyle.label.texttemplate;\n }\n var fillC = isDrawMode && !isOpenMode ? newStyle.fillcolor : \"rgba(0,0,0,0)\";\n var strokeC = newStyle.line.color || (isCartesian ? Color2.contrast(gd._fullLayout.plot_bgcolor) : \"#7f7f7f\");\n outlines.enter().append(\"path\").attr(\"class\", \"select-outline select-outline-\" + plotinfo.id).style({\n opacity: isDrawMode ? newStyle.opacity / 2 : 1,\n \"stroke-dasharray\": dashStyle(newStyle.line.dash, newStyle.line.width),\n \"stroke-width\": newStyle.line.width + \"px\",\n \"shape-rendering\": \"crispEdges\"\n }).call(Color2.stroke, strokeC).call(Color2.fill, fillC).attr(\"fill-rule\", \"evenodd\").classed(\"cursor-move\", isDrawMode ? true : false).attr(\"transform\", transform).attr(\"d\", path0 + \"Z\");\n var corners = zoomLayer.append(\"path\").attr(\"class\", \"zoombox-corners\").style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1\n }).attr(\"transform\", transform).attr(\"d\", \"M0,0Z\");\n if (isDrawMode && dragOptions.hasText) {\n var shapeGroup = zoomLayer.select(\".label-temp\");\n if (shapeGroup.empty()) {\n shapeGroup = zoomLayer.append(\"g\").classed(\"label-temp\", true).classed(\"select-outline\", true).style({ opacity: 0.8 });\n }\n }\n var throttleID = fullLayout._uid + constants.SELECTID;\n var selection = [];\n var searchTraces = determineSearchTraces(\n gd,\n dragOptions.xaxes,\n dragOptions.yaxes,\n dragOptions.subplot\n );\n if (immediateSelect && !evt.shiftKey) {\n dragOptions._clearSubplotSelections = function() {\n if (!isCartesian) return;\n var xRef = xAxis._id;\n var yRef = yAxis._id;\n deselectSubplot(gd, xRef, yRef, searchTraces);\n var selections = (gd.layout || {}).selections || [];\n var list = [];\n var selectionErased = false;\n for (var q = 0; q < selections.length; q++) {\n var s = fullLayout.selections[q];\n if (!s || s.xref !== xRef || s.yref !== yRef) {\n list.push(selections[q]);\n } else {\n selectionErased = true;\n }\n }\n if (selectionErased) {\n gd._fullLayout._noEmitSelectedAtStart = true;\n Registry.call(\"_guiRelayout\", gd, {\n selections: list\n });\n }\n };\n }\n var fillRangeItems = getFillRangeItems(dragOptions);\n dragOptions.moveFn = function(dx0, dy0) {\n if (dragOptions._clearSubplotSelections) {\n dragOptions._clearSubplotSelections();\n dragOptions._clearSubplotSelections = void 0;\n }\n x1 = Math.max(0, Math.min(pw, scaleX * dx0 + x0));\n y1 = Math.max(0, Math.min(ph, scaleY * dy0 + y0));\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n if (isRectMode) {\n var direction;\n var start, end;\n if (isSelectMode) {\n var q = fullLayout.selectdirection;\n if (q === \"any\") {\n if (dy < Math.min(dx * 0.6, MINSELECT)) {\n direction = \"h\";\n } else if (dx < Math.min(dy * 0.6, MINSELECT)) {\n direction = \"v\";\n } else {\n direction = \"d\";\n }\n } else {\n direction = q;\n }\n switch (direction) {\n case \"h\":\n start = isEllipse ? ph / 2 : 0;\n end = ph;\n break;\n case \"v\":\n start = isEllipse ? pw / 2 : 0;\n end = pw;\n break;\n }\n }\n if (isDrawMode) {\n switch (fullLayout.newshape.drawdirection) {\n case \"vertical\":\n direction = \"h\";\n start = isEllipse ? ph / 2 : 0;\n end = ph;\n break;\n case \"horizontal\":\n direction = \"v\";\n start = isEllipse ? pw / 2 : 0;\n end = pw;\n break;\n case \"ortho\":\n if (dx < dy) {\n direction = \"h\";\n start = y0;\n end = y1;\n } else {\n direction = \"v\";\n start = x0;\n end = x1;\n }\n break;\n default:\n direction = \"d\";\n }\n }\n if (direction === \"h\") {\n currentPolygon = isLineOrEllipse ? handleEllipse(isEllipse, [x1, start], [x1, end]) : (\n // using x1 instead of x0 allows adjusting the line while drawing\n [[x0, start], [x0, end], [x1, end], [x1, start]]\n );\n currentPolygon.xmin = isLineOrEllipse ? x1 : Math.min(x0, x1);\n currentPolygon.xmax = isLineOrEllipse ? x1 : Math.max(x0, x1);\n currentPolygon.ymin = Math.min(start, end);\n currentPolygon.ymax = Math.max(start, end);\n corners.attr(\"d\", \"M\" + currentPolygon.xmin + \",\" + (y0 - MINSELECT) + \"h-4v\" + 2 * MINSELECT + \"h4ZM\" + (currentPolygon.xmax - 1) + \",\" + (y0 - MINSELECT) + \"h4v\" + 2 * MINSELECT + \"h-4Z\");\n } else if (direction === \"v\") {\n currentPolygon = isLineOrEllipse ? handleEllipse(isEllipse, [start, y1], [end, y1]) : (\n // using y1 instead of y0 allows adjusting the line while drawing\n [[start, y0], [start, y1], [end, y1], [end, y0]]\n );\n currentPolygon.xmin = Math.min(start, end);\n currentPolygon.xmax = Math.max(start, end);\n currentPolygon.ymin = isLineOrEllipse ? y1 : Math.min(y0, y1);\n currentPolygon.ymax = isLineOrEllipse ? y1 : Math.max(y0, y1);\n corners.attr(\"d\", \"M\" + (x0 - MINSELECT) + \",\" + currentPolygon.ymin + \"v-4h\" + 2 * MINSELECT + \"v4ZM\" + (x0 - MINSELECT) + \",\" + (currentPolygon.ymax - 1) + \"v4h\" + 2 * MINSELECT + \"v-4Z\");\n } else if (direction === \"d\") {\n currentPolygon = isLineOrEllipse ? handleEllipse(isEllipse, [x0, y0], [x1, y1]) : [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n currentPolygon.xmin = Math.min(x0, x1);\n currentPolygon.xmax = Math.max(x0, x1);\n currentPolygon.ymin = Math.min(y0, y1);\n currentPolygon.ymax = Math.max(y0, y1);\n corners.attr(\"d\", \"M0,0Z\");\n }\n } else if (isFreeMode) {\n filterPoly.addPt([x1, y1]);\n currentPolygon = filterPoly.filtered;\n }\n if (dragOptions.selectionDefs && dragOptions.selectionDefs.length) {\n mergedPolygons = mergePolygons(dragOptions.mergedPolygons, currentPolygon, subtract);\n currentPolygon.subtract = subtract;\n selectionTesters = multiTester(dragOptions.selectionDefs.concat([currentPolygon]));\n } else {\n mergedPolygons = [currentPolygon];\n selectionTesters = polygonTester(currentPolygon);\n }\n displayOutlines(convertPoly(mergedPolygons, isOpenMode), outlines, dragOptions);\n if (isSelectMode) {\n var _res = reselect(gd, false);\n var extraPoints = _res.eventData ? _res.eventData.points.slice() : [];\n _res = reselect(gd, false, selectionTesters, searchTraces, dragOptions);\n selectionTesters = _res.selectionTesters;\n eventData = _res.eventData;\n var poly;\n if (filterPoly) {\n poly = filterPoly.filtered;\n } else {\n poly = castMultiPolygon(mergedPolygons);\n }\n throttle.throttle(\n throttleID,\n constants.SELECTDELAY,\n function() {\n selection = _doSelect(selectionTesters, searchTraces);\n var newPoints = selection.slice();\n for (var w = 0; w < extraPoints.length; w++) {\n var p = extraPoints[w];\n var found = false;\n for (var u = 0; u < newPoints.length; u++) {\n if (newPoints[u].curveNumber === p.curveNumber && newPoints[u].pointNumber === p.pointNumber) {\n found = true;\n break;\n }\n }\n if (!found) newPoints.push(p);\n }\n if (newPoints.length) {\n if (!eventData) eventData = {};\n eventData.points = newPoints;\n }\n fillRangeItems(eventData, poly);\n emitSelecting(gd, eventData);\n }\n );\n }\n };\n dragOptions.clickFn = function(numClicks, evt2) {\n corners.remove();\n if (gd._fullLayout._activeShapeIndex >= 0) {\n gd._fullLayout._deactivateShape(gd);\n return;\n }\n if (isDrawMode) return;\n var clickmode = fullLayout.clickmode;\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if (numClicks === 2) {\n outlines.remove();\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n updateSelectedState(gd, searchTraces);\n clearSelectionsCache(dragOptions);\n emitDeselect(gd);\n if (searchTraces.length) {\n var clickedXaxis = searchTraces[0].xaxis;\n var clickedYaxis = searchTraces[0].yaxis;\n if (clickedXaxis && clickedYaxis) {\n var subSelections = [];\n var allSelections = gd._fullLayout.selections;\n for (var k = 0; k < allSelections.length; k++) {\n var s = allSelections[k];\n if (!s) continue;\n if (s.xref !== clickedXaxis._id || s.yref !== clickedYaxis._id) {\n subSelections.push(s);\n }\n }\n if (subSelections.length < allSelections.length) {\n gd._fullLayout._noEmitSelectedAtStart = true;\n Registry.call(\"_guiRelayout\", gd, {\n selections: subSelections\n });\n }\n }\n }\n } else {\n if (clickmode.indexOf(\"select\") > -1) {\n selectOnClick(\n evt2,\n gd,\n dragOptions.xaxes,\n dragOptions.yaxes,\n dragOptions.subplot,\n dragOptions,\n outlines\n );\n }\n if (clickmode === \"event\") {\n emitSelected(gd, void 0);\n }\n }\n Fx.click(gd, evt2, plotinfo.id);\n }).catch(Lib.error);\n };\n dragOptions.doneFn = function() {\n corners.remove();\n throttle.done(throttleID).then(function() {\n throttle.clear(throttleID);\n if (!immediateSelect && currentPolygon && dragOptions.selectionDefs) {\n currentPolygon.subtract = subtract;\n dragOptions.selectionDefs.push(currentPolygon);\n dragOptions.mergedPolygons.length = 0;\n [].push.apply(dragOptions.mergedPolygons, mergedPolygons);\n }\n if (immediateSelect || isDrawMode) {\n clearSelectionsCache(dragOptions, immediateSelect);\n }\n if (dragOptions.doneFnCompleted) {\n dragOptions.doneFnCompleted(selection);\n }\n if (isSelectMode) {\n emitSelected(gd, eventData);\n }\n }).catch(Lib.error);\n };\n }\n function selectOnClick(evt, gd, xAxes, yAxes, subplot, dragOptions, polygonOutlines) {\n var hoverData = gd._hoverdata;\n var fullLayout = gd._fullLayout;\n var clickmode = fullLayout.clickmode;\n var sendEvents = clickmode.indexOf(\"event\") > -1;\n var selection = [];\n var searchTraces, searchInfo, currentSelectionDef, selectionTesters, traceSelection;\n var thisTracesSelection, pointOrBinSelected, subtract, eventData, i;\n if (isHoverDataSet(hoverData)) {\n coerceSelectionsCache(evt, gd, dragOptions);\n searchTraces = determineSearchTraces(gd, xAxes, yAxes, subplot);\n var clickedPtInfo = extractClickedPtInfo(hoverData, searchTraces);\n var isBinnedTrace = clickedPtInfo.pointNumbers.length > 0;\n if (isBinnedTrace ? isOnlyThisBinSelected(searchTraces, clickedPtInfo) : isOnlyOnePointSelected(searchTraces) && (pointOrBinSelected = isPointOrBinSelected(clickedPtInfo))) {\n if (polygonOutlines) polygonOutlines.remove();\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n updateSelectedState(gd, searchTraces);\n clearSelectionsCache(dragOptions);\n if (sendEvents) {\n emitDeselect(gd);\n }\n } else {\n subtract = evt.shiftKey && (pointOrBinSelected !== void 0 ? pointOrBinSelected : isPointOrBinSelected(clickedPtInfo));\n currentSelectionDef = newPointSelectionDef(clickedPtInfo.pointNumber, clickedPtInfo.searchInfo, subtract);\n var allSelectionDefs = dragOptions.selectionDefs.concat([currentSelectionDef]);\n selectionTesters = multiTester(allSelectionDefs, selectionTesters);\n for (i = 0; i < searchTraces.length; i++) {\n traceSelection = searchTraces[i]._module.selectPoints(searchTraces[i], selectionTesters);\n thisTracesSelection = fillSelectionItem(traceSelection, searchTraces[i]);\n if (selection.length) {\n for (var j = 0; j < thisTracesSelection.length; j++) {\n selection.push(thisTracesSelection[j]);\n }\n } else selection = thisTracesSelection;\n }\n eventData = { points: selection };\n updateSelectedState(gd, searchTraces, eventData);\n if (currentSelectionDef && dragOptions) {\n dragOptions.selectionDefs.push(currentSelectionDef);\n }\n if (polygonOutlines) {\n var polygons = dragOptions.mergedPolygons;\n var isOpenMode = openMode(dragOptions.dragmode);\n displayOutlines(convertPoly(polygons, isOpenMode), polygonOutlines, dragOptions);\n }\n if (sendEvents) {\n emitSelected(gd, eventData);\n }\n }\n }\n }\n function newPointSelectionDef(pointNumber, searchInfo, subtract) {\n return {\n pointNumber,\n searchInfo,\n subtract: !!subtract\n };\n }\n function isPointSelectionDef(o) {\n return \"pointNumber\" in o && \"searchInfo\" in o;\n }\n function newPointNumTester(pointSelectionDef) {\n return {\n xmin: 0,\n xmax: 0,\n ymin: 0,\n ymax: 0,\n pts: [],\n contains: function(pt, omitFirstEdge, pointNumber, searchInfo) {\n var idxWantedTrace = pointSelectionDef.searchInfo.cd[0].trace.index;\n var idxActualTrace = searchInfo.cd[0].trace.index;\n return idxActualTrace === idxWantedTrace && pointNumber === pointSelectionDef.pointNumber;\n },\n isRect: false,\n degenerate: false,\n subtract: !!pointSelectionDef.subtract\n };\n }\n function multiTester(list) {\n if (!list.length) return;\n var testers = [];\n var xmin = isPointSelectionDef(list[0]) ? 0 : list[0][0][0];\n var xmax = xmin;\n var ymin = isPointSelectionDef(list[0]) ? 0 : list[0][0][1];\n var ymax = ymin;\n for (var i = 0; i < list.length; i++) {\n if (isPointSelectionDef(list[i])) {\n testers.push(newPointNumTester(list[i]));\n } else {\n var tester = polygonTester(list[i]);\n tester.subtract = !!list[i].subtract;\n testers.push(tester);\n xmin = Math.min(xmin, tester.xmin);\n xmax = Math.max(xmax, tester.xmax);\n ymin = Math.min(ymin, tester.ymin);\n ymax = Math.max(ymax, tester.ymax);\n }\n }\n function contains(pt, arg, pointNumber, searchInfo) {\n var contained = false;\n for (var i2 = 0; i2 < testers.length; i2++) {\n if (testers[i2].contains(pt, arg, pointNumber, searchInfo)) {\n contained = !testers[i2].subtract;\n }\n }\n return contained;\n }\n return {\n xmin,\n xmax,\n ymin,\n ymax,\n pts: [],\n contains,\n isRect: false,\n degenerate: false\n };\n }\n function coerceSelectionsCache(evt, gd, dragOptions) {\n var fullLayout = gd._fullLayout;\n var plotinfo = dragOptions.plotinfo;\n var dragmode = dragOptions.dragmode;\n var selectingOnSameSubplot = fullLayout._lastSelectedSubplot && fullLayout._lastSelectedSubplot === plotinfo.id;\n var hasModifierKey = (evt.shiftKey || evt.altKey) && !(drawMode(dragmode) && openMode(dragmode));\n if (selectingOnSameSubplot && hasModifierKey && plotinfo.selection && plotinfo.selection.selectionDefs && !dragOptions.selectionDefs) {\n dragOptions.selectionDefs = plotinfo.selection.selectionDefs;\n dragOptions.mergedPolygons = plotinfo.selection.mergedPolygons;\n } else if (!hasModifierKey || !plotinfo.selection) {\n clearSelectionsCache(dragOptions);\n }\n if (!selectingOnSameSubplot) {\n clearOutline(gd);\n fullLayout._lastSelectedSubplot = plotinfo.id;\n }\n }\n function hasActiveShape(gd) {\n return gd._fullLayout._activeShapeIndex >= 0;\n }\n function hasActiveSelection(gd) {\n return gd._fullLayout._activeSelectionIndex >= 0;\n }\n function clearSelectionsCache(dragOptions, immediateSelect) {\n var dragmode = dragOptions.dragmode;\n var plotinfo = dragOptions.plotinfo;\n var gd = dragOptions.gd;\n if (hasActiveShape(gd)) {\n gd._fullLayout._deactivateShape(gd);\n }\n if (hasActiveSelection(gd)) {\n gd._fullLayout._deactivateSelection(gd);\n }\n var fullLayout = gd._fullLayout;\n var zoomLayer = fullLayout._zoomlayer;\n var isDrawMode = drawMode(dragmode);\n var isSelectMode = selectMode(dragmode);\n if (isDrawMode || isSelectMode) {\n var outlines = zoomLayer.selectAll(\".select-outline-\" + plotinfo.id);\n if (outlines && gd._fullLayout._outlining) {\n var shapes;\n if (isDrawMode) {\n shapes = newShapes(outlines, dragOptions);\n }\n if (shapes) {\n Registry.call(\"_guiRelayout\", gd, {\n shapes\n });\n }\n var selections;\n if (isSelectMode && !hasSubplot(dragOptions)) {\n selections = newSelections(outlines, dragOptions);\n }\n if (selections) {\n gd._fullLayout._noEmitSelectedAtStart = true;\n Registry.call(\"_guiRelayout\", gd, {\n selections\n }).then(function() {\n if (immediateSelect) {\n activateLastSelection(gd);\n }\n });\n }\n gd._fullLayout._outlining = false;\n }\n }\n plotinfo.selection = {};\n plotinfo.selection.selectionDefs = dragOptions.selectionDefs = [];\n plotinfo.selection.mergedPolygons = dragOptions.mergedPolygons = [];\n }\n function getAxId(ax) {\n return ax._id;\n }\n function determineSearchTraces(gd, xAxes, yAxes, subplot) {\n if (!gd.calcdata) return [];\n var searchTraces = [];\n var xAxisIds = xAxes.map(getAxId);\n var yAxisIds = yAxes.map(getAxId);\n var cd, trace, i;\n for (i = 0; i < gd.calcdata.length; i++) {\n cd = gd.calcdata[i];\n trace = cd[0].trace;\n if (trace.visible !== true || !trace._module || !trace._module.selectPoints) continue;\n if (hasSubplot({ subplot }) && (trace.subplot === subplot || trace.geo === subplot)) {\n searchTraces.push(createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]));\n } else if (trace.type === \"splom\") {\n if (trace._xaxes[xAxisIds[0]] && trace._yaxes[yAxisIds[0]]) {\n var info = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n info.scene = gd._fullLayout._splomScenes[trace.uid];\n searchTraces.push(info);\n }\n } else if (trace.type === \"sankey\") {\n var sankeyInfo = createSearchInfo(trace._module, cd, xAxes[0], yAxes[0]);\n searchTraces.push(sankeyInfo);\n } else {\n if (xAxisIds.indexOf(trace.xaxis) === -1 && (!trace._xA || !trace._xA.overlaying)) continue;\n if (yAxisIds.indexOf(trace.yaxis) === -1 && (!trace._yA || !trace._yA.overlaying)) continue;\n searchTraces.push(createSearchInfo(\n trace._module,\n cd,\n getFromId(gd, trace.xaxis),\n getFromId(gd, trace.yaxis)\n ));\n }\n }\n return searchTraces;\n }\n function createSearchInfo(module2, calcData, xaxis, yaxis) {\n return {\n _module: module2,\n cd: calcData,\n xaxis,\n yaxis\n };\n }\n function isHoverDataSet(hoverData) {\n return hoverData && Array.isArray(hoverData) && hoverData[0].hoverOnBox !== true;\n }\n function extractClickedPtInfo(hoverData, searchTraces) {\n var hoverDatum = hoverData[0];\n var pointNumber = -1;\n var pointNumbers = [];\n var searchInfo, i;\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if (hoverDatum.fullData.index === searchInfo.cd[0].trace.index) {\n if (hoverDatum.hoverOnBox === true) {\n break;\n }\n if (hoverDatum.pointNumber !== void 0) {\n pointNumber = hoverDatum.pointNumber;\n } else if (hoverDatum.binNumber !== void 0) {\n pointNumber = hoverDatum.binNumber;\n pointNumbers = hoverDatum.pointNumbers;\n }\n break;\n }\n }\n return {\n pointNumber,\n pointNumbers,\n searchInfo\n };\n }\n function isPointOrBinSelected(clickedPtInfo) {\n var trace = clickedPtInfo.searchInfo.cd[0].trace;\n var ptNum = clickedPtInfo.pointNumber;\n var ptNums = clickedPtInfo.pointNumbers;\n var ptNumsSet = ptNums.length > 0;\n var ptNumToTest = ptNumsSet ? ptNums[0] : ptNum;\n return trace.selectedpoints ? trace.selectedpoints.indexOf(ptNumToTest) > -1 : false;\n }\n function isOnlyThisBinSelected(searchTraces, clickedPtInfo) {\n var tracesWithSelectedPts = [];\n var searchInfo, trace, isSameTrace, i;\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n if (searchInfo.cd[0].trace.selectedpoints && searchInfo.cd[0].trace.selectedpoints.length > 0) {\n tracesWithSelectedPts.push(searchInfo);\n }\n }\n if (tracesWithSelectedPts.length === 1) {\n isSameTrace = tracesWithSelectedPts[0] === clickedPtInfo.searchInfo;\n if (isSameTrace) {\n trace = clickedPtInfo.searchInfo.cd[0].trace;\n if (trace.selectedpoints.length === clickedPtInfo.pointNumbers.length) {\n for (i = 0; i < clickedPtInfo.pointNumbers.length; i++) {\n if (trace.selectedpoints.indexOf(clickedPtInfo.pointNumbers[i]) < 0) {\n return false;\n }\n }\n return true;\n }\n }\n }\n return false;\n }\n function isOnlyOnePointSelected(searchTraces) {\n var len = 0;\n var searchInfo, trace, i;\n for (i = 0; i < searchTraces.length; i++) {\n searchInfo = searchTraces[i];\n trace = searchInfo.cd[0].trace;\n if (trace.selectedpoints) {\n if (trace.selectedpoints.length > 1) return false;\n len += trace.selectedpoints.length;\n if (len > 1) return false;\n }\n }\n return len === 1;\n }\n function updateSelectedState(gd, searchTraces, eventData) {\n var i;\n for (i = 0; i < searchTraces.length; i++) {\n var fullInputTrace = searchTraces[i].cd[0].trace._fullInput;\n var tracePreGUI = gd._fullLayout._tracePreGUI[fullInputTrace.uid] || {};\n if (tracePreGUI.selectedpoints === void 0) {\n tracePreGUI.selectedpoints = fullInputTrace._input.selectedpoints || null;\n }\n }\n var trace;\n if (eventData) {\n var pts = eventData.points || [];\n for (i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n trace._input.selectedpoints = trace._fullInput.selectedpoints = [];\n if (trace._fullInput !== trace) trace.selectedpoints = [];\n }\n for (var k = 0; k < pts.length; k++) {\n var pt = pts[k];\n var data = pt.data;\n var fullData = pt.fullData;\n var pointIndex = pt.pointIndex;\n var pointIndices = pt.pointIndices;\n if (pointIndices) {\n [].push.apply(data.selectedpoints, pointIndices);\n if (trace._fullInput !== trace) {\n [].push.apply(fullData.selectedpoints, pointIndices);\n }\n } else {\n data.selectedpoints.push(pointIndex);\n if (trace._fullInput !== trace) {\n fullData.selectedpoints.push(pointIndex);\n }\n }\n }\n } else {\n for (i = 0; i < searchTraces.length; i++) {\n trace = searchTraces[i].cd[0].trace;\n delete trace.selectedpoints;\n delete trace._input.selectedpoints;\n if (trace._fullInput !== trace) {\n delete trace._fullInput.selectedpoints;\n }\n }\n }\n updateReglSelectedState(gd, searchTraces);\n }\n function updateReglSelectedState(gd, searchTraces) {\n var hasRegl = false;\n for (var i = 0; i < searchTraces.length; i++) {\n var searchInfo = searchTraces[i];\n var cd = searchInfo.cd;\n if (Registry.traceIs(cd[0].trace, \"regl\")) {\n hasRegl = true;\n }\n var _module = searchInfo._module;\n var fn = _module.styleOnSelect || _module.style;\n if (fn) {\n fn(gd, cd, cd[0].node3);\n if (cd[0].nodeRangePlot3) fn(gd, cd, cd[0].nodeRangePlot3);\n }\n }\n if (hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n function mergePolygons(list, poly, subtract) {\n var fn = subtract ? polybool.difference : polybool.union;\n var res = fn({\n regions: list\n }, {\n regions: [poly]\n });\n var allPolygons = res.regions.reverse();\n for (var i = 0; i < allPolygons.length; i++) {\n var polygon = allPolygons[i];\n polygon.subtract = getSubtract(polygon, allPolygons.slice(0, i));\n }\n return allPolygons;\n }\n function fillSelectionItem(selection, searchInfo) {\n if (Array.isArray(selection)) {\n var cd = searchInfo.cd;\n var trace = searchInfo.cd[0].trace;\n for (var i = 0; i < selection.length; i++) {\n selection[i] = makeEventData(selection[i], trace, cd);\n }\n }\n return selection;\n }\n function convertPoly(polygonsIn, isOpenMode) {\n var polygonsOut = [];\n for (var i = 0; i < polygonsIn.length; i++) {\n polygonsOut[i] = [];\n for (var j = 0; j < polygonsIn[i].length; j++) {\n polygonsOut[i][j] = [];\n polygonsOut[i][j][0] = j ? \"L\" : \"M\";\n for (var k = 0; k < polygonsIn[i][j].length; k++) {\n polygonsOut[i][j].push(\n polygonsIn[i][j][k]\n );\n }\n }\n if (!isOpenMode) {\n polygonsOut[i].push([\n \"Z\",\n polygonsOut[i][0][1],\n // initial x\n polygonsOut[i][0][2]\n // initial y\n ]);\n }\n }\n return polygonsOut;\n }\n function _doSelect(selectionTesters, searchTraces) {\n var allSelections = [];\n var thisSelection;\n var traceSelections = [];\n var traceSelection;\n for (var i = 0; i < searchTraces.length; i++) {\n var searchInfo = searchTraces[i];\n traceSelection = searchInfo._module.selectPoints(searchInfo, selectionTesters);\n traceSelections.push(traceSelection);\n thisSelection = fillSelectionItem(traceSelection, searchInfo);\n allSelections = allSelections.concat(thisSelection);\n }\n return allSelections;\n }\n function reselect(gd, mayEmitSelected, selectionTesters, searchTraces, dragOptions) {\n var hadSearchTraces = !!searchTraces;\n var plotinfo, xRef, yRef;\n if (dragOptions) {\n plotinfo = dragOptions.plotinfo;\n xRef = dragOptions.xaxes[0]._id;\n yRef = dragOptions.yaxes[0]._id;\n }\n var allSelections = [];\n var allSearchTraces = [];\n var layoutPolygons = getLayoutPolygons(gd);\n var fullLayout = gd._fullLayout;\n if (plotinfo) {\n var zoomLayer = fullLayout._zoomlayer;\n var mode = fullLayout.dragmode;\n var isDrawMode = drawMode(mode);\n var isSelectMode = selectMode(mode);\n if (isDrawMode || isSelectMode) {\n var xaxis = getFromId(gd, xRef, \"x\");\n var yaxis = getFromId(gd, yRef, \"y\");\n if (xaxis && yaxis) {\n var outlines = zoomLayer.selectAll(\".select-outline-\" + plotinfo.id);\n if (outlines && gd._fullLayout._outlining) {\n if (outlines.length) {\n var e = outlines[0][0];\n var d = e.getAttribute(\"d\");\n var outlinePolys = readPaths(d, gd, plotinfo);\n var draftPolygons = [];\n for (var u = 0; u < outlinePolys.length; u++) {\n var p = outlinePolys[u];\n var polygon = [];\n for (var t = 0; t < p.length; t++) {\n polygon.push([\n convert(xaxis, p[t][1]),\n convert(yaxis, p[t][2])\n ]);\n }\n polygon.xref = xRef;\n polygon.yref = yRef;\n polygon.subtract = getSubtract(polygon, draftPolygons);\n draftPolygons.push(polygon);\n }\n layoutPolygons = layoutPolygons.concat(draftPolygons);\n }\n }\n }\n }\n }\n var subplots = xRef && yRef ? [xRef + yRef] : fullLayout._subplots.cartesian;\n epmtySplomSelectionBatch(gd);\n var seenSplom = {};\n for (var i = 0; i < subplots.length; i++) {\n var subplot = subplots[i];\n var yAt = subplot.indexOf(\"y\");\n var _xRef = subplot.slice(0, yAt);\n var _yRef = subplot.slice(yAt);\n var _selectionTesters = xRef && yRef ? selectionTesters : void 0;\n _selectionTesters = addTester(layoutPolygons, _xRef, _yRef, _selectionTesters);\n if (_selectionTesters) {\n var _searchTraces = searchTraces;\n if (!hadSearchTraces) {\n var _xA = getFromId(gd, _xRef, \"x\");\n var _yA = getFromId(gd, _yRef, \"y\");\n _searchTraces = determineSearchTraces(\n gd,\n [_xA],\n [_yA],\n subplot\n );\n for (var w = 0; w < _searchTraces.length; w++) {\n var s = _searchTraces[w];\n var cd0 = s.cd[0];\n var trace = cd0.trace;\n if (s._module.name === \"scattergl\" && !cd0.t.xpx) {\n var x = trace.x;\n var y = trace.y;\n var len = trace._length;\n cd0.t.xpx = [];\n cd0.t.ypx = [];\n for (var j = 0; j < len; j++) {\n cd0.t.xpx[j] = _xA.c2p(x[j]);\n cd0.t.ypx[j] = _yA.c2p(y[j]);\n }\n }\n if (s._module.name === \"splom\") {\n if (!seenSplom[trace.uid]) {\n seenSplom[trace.uid] = true;\n }\n }\n }\n }\n var selection = _doSelect(_selectionTesters, _searchTraces);\n allSelections = allSelections.concat(selection);\n allSearchTraces = allSearchTraces.concat(_searchTraces);\n }\n }\n var eventData = { points: allSelections };\n updateSelectedState(gd, allSearchTraces, eventData);\n var clickmode = fullLayout.clickmode;\n var sendEvents = clickmode.indexOf(\"event\") > -1 && mayEmitSelected;\n if (!plotinfo && // get called from plot_api & plots\n mayEmitSelected) {\n var activePolygons = getLayoutPolygons(gd, true);\n if (activePolygons.length) {\n var xref = activePolygons[0].xref;\n var yref = activePolygons[0].yref;\n if (xref && yref) {\n var poly = castMultiPolygon(activePolygons);\n var fillRangeItems = makeFillRangeItems([\n getFromId(gd, xref, \"x\"),\n getFromId(gd, yref, \"y\")\n ]);\n fillRangeItems(eventData, poly);\n }\n }\n if (gd._fullLayout._noEmitSelectedAtStart) {\n gd._fullLayout._noEmitSelectedAtStart = false;\n } else {\n if (sendEvents) emitSelected(gd, eventData);\n }\n fullLayout._reselect = false;\n }\n if (!plotinfo && // get called from plot_api & plots\n fullLayout._deselect) {\n var deselect = fullLayout._deselect;\n xRef = deselect.xref;\n yRef = deselect.yref;\n if (!subplotSelected(xRef, yRef, allSearchTraces)) {\n deselectSubplot(gd, xRef, yRef, searchTraces);\n }\n if (sendEvents) {\n if (eventData.points.length) {\n emitSelected(gd, eventData);\n } else {\n emitDeselect(gd);\n }\n }\n fullLayout._deselect = false;\n }\n return {\n eventData,\n selectionTesters\n };\n }\n function epmtySplomSelectionBatch(gd) {\n var cd = gd.calcdata;\n if (!cd) return;\n for (var i = 0; i < cd.length; i++) {\n var cd0 = cd[i][0];\n var trace = cd0.trace;\n var splomScenes = gd._fullLayout._splomScenes;\n if (splomScenes) {\n var scene = splomScenes[trace.uid];\n if (scene) {\n scene.selectBatch = [];\n }\n }\n }\n }\n function subplotSelected(xRef, yRef, searchTraces) {\n for (var i = 0; i < searchTraces.length; i++) {\n var s = searchTraces[i];\n if (s.xaxis && s.xaxis._id === xRef && (s.yaxis && s.yaxis._id === yRef)) {\n return true;\n }\n }\n return false;\n }\n function deselectSubplot(gd, xRef, yRef, searchTraces) {\n searchTraces = determineSearchTraces(\n gd,\n [getFromId(gd, xRef, \"x\")],\n [getFromId(gd, yRef, \"y\")],\n xRef + yRef\n );\n for (var k = 0; k < searchTraces.length; k++) {\n var searchInfo = searchTraces[k];\n searchInfo._module.selectPoints(searchInfo, false);\n }\n updateSelectedState(gd, searchTraces);\n }\n function addTester(layoutPolygons, xRef, yRef, selectionTesters) {\n var mergedPolygons;\n for (var i = 0; i < layoutPolygons.length; i++) {\n var currentPolygon = layoutPolygons[i];\n if (xRef !== currentPolygon.xref || yRef !== currentPolygon.yref) continue;\n if (mergedPolygons) {\n var subtract = !!currentPolygon.subtract;\n mergedPolygons = mergePolygons(mergedPolygons, currentPolygon, subtract);\n selectionTesters = multiTester(mergedPolygons);\n } else {\n mergedPolygons = [currentPolygon];\n selectionTesters = polygonTester(currentPolygon);\n }\n }\n return selectionTesters;\n }\n function getLayoutPolygons(gd, onlyActiveOnes) {\n var allPolygons = [];\n var fullLayout = gd._fullLayout;\n var allSelections = fullLayout.selections;\n var len = allSelections.length;\n for (var i = 0; i < len; i++) {\n if (onlyActiveOnes && i !== fullLayout._activeSelectionIndex) continue;\n var selection = allSelections[i];\n if (!selection) continue;\n var xref = selection.xref;\n var yref = selection.yref;\n var xaxis = getFromId(gd, xref, \"x\");\n var yaxis = getFromId(gd, yref, \"y\");\n var xmin, xmax, ymin, ymax;\n var polygon;\n if (selection.type === \"rect\") {\n polygon = [];\n var x0 = convert(xaxis, selection.x0);\n var x1 = convert(xaxis, selection.x1);\n var y0 = convert(yaxis, selection.y0);\n var y1 = convert(yaxis, selection.y1);\n polygon = [[x0, y0], [x0, y1], [x1, y1], [x1, y0]];\n xmin = Math.min(x0, x1);\n xmax = Math.max(x0, x1);\n ymin = Math.min(y0, y1);\n ymax = Math.max(y0, y1);\n polygon.xmin = xmin;\n polygon.xmax = xmax;\n polygon.ymin = ymin;\n polygon.ymax = ymax;\n polygon.xref = xref;\n polygon.yref = yref;\n polygon.subtract = false;\n polygon.isRect = true;\n allPolygons.push(polygon);\n } else if (selection.type === \"path\") {\n var segments = selection.path.split(\"Z\");\n var multiPolygons = [];\n for (var j = 0; j < segments.length; j++) {\n var path = segments[j];\n if (!path) continue;\n path += \"Z\";\n var allX = shapeHelpers.extractPathCoords(path, shapeConstants.paramIsX, \"raw\");\n var allY = shapeHelpers.extractPathCoords(path, shapeConstants.paramIsY, \"raw\");\n xmin = Infinity;\n xmax = -Infinity;\n ymin = Infinity;\n ymax = -Infinity;\n polygon = [];\n for (var k = 0; k < allX.length; k++) {\n var x = convert(xaxis, allX[k]);\n var y = convert(yaxis, allY[k]);\n polygon.push([x, y]);\n xmin = Math.min(x, xmin);\n xmax = Math.max(x, xmax);\n ymin = Math.min(y, ymin);\n ymax = Math.max(y, ymax);\n }\n polygon.xmin = xmin;\n polygon.xmax = xmax;\n polygon.ymin = ymin;\n polygon.ymax = ymax;\n polygon.xref = xref;\n polygon.yref = yref;\n polygon.subtract = getSubtract(polygon, multiPolygons);\n multiPolygons.push(polygon);\n allPolygons.push(polygon);\n }\n }\n }\n return allPolygons;\n }\n function getSubtract(polygon, previousPolygons) {\n var subtract = false;\n for (var i = 0; i < previousPolygons.length; i++) {\n var previousPolygon = previousPolygons[i];\n for (var k = 0; k < polygon.length; k++) {\n if (pointInPolygon(polygon[k], previousPolygon)) {\n subtract = !subtract;\n break;\n }\n }\n }\n return subtract;\n }\n function convert(ax, d) {\n if (ax.type === \"date\") d = d.replace(\"_\", \" \");\n return ax.type === \"log\" ? ax.c2p(d) : ax.r2p(d, null, ax.calendar);\n }\n function castMultiPolygon(allPolygons) {\n var len = allPolygons.length;\n var p = [];\n for (var i = 0; i < len; i++) {\n var polygon = allPolygons[i];\n p = p.concat(polygon);\n p = p.concat([polygon[0]]);\n }\n return computeRectAndRanges(p);\n }\n function computeRectAndRanges(poly) {\n poly.isRect = poly.length === 5 && poly[0][0] === poly[4][0] && poly[0][1] === poly[4][1] && (poly[0][0] === poly[1][0] && poly[2][0] === poly[3][0] && poly[0][1] === poly[3][1] && poly[1][1] === poly[2][1]) || poly[0][1] === poly[1][1] && poly[2][1] === poly[3][1] && poly[0][0] === poly[3][0] && poly[1][0] === poly[2][0];\n if (poly.isRect) {\n poly.xmin = Math.min(poly[0][0], poly[2][0]);\n poly.xmax = Math.max(poly[0][0], poly[2][0]);\n poly.ymin = Math.min(poly[0][1], poly[2][1]);\n poly.ymax = Math.max(poly[0][1], poly[2][1]);\n }\n return poly;\n }\n function makeFillRangeItems(allAxes) {\n return function(eventData, poly) {\n var range;\n var lassoPoints;\n for (var i = 0; i < allAxes.length; i++) {\n var ax = allAxes[i];\n var id = ax._id;\n var axLetter = id.charAt(0);\n if (poly.isRect) {\n if (!range) range = {};\n var min = poly[axLetter + \"min\"];\n var max = poly[axLetter + \"max\"];\n if (min !== void 0 && max !== void 0) {\n range[id] = [\n p2r(ax, min),\n p2r(ax, max)\n ].sort(ascending);\n }\n } else {\n if (!lassoPoints) lassoPoints = {};\n lassoPoints[id] = poly.map(axValue(ax));\n }\n }\n if (range) {\n eventData.range = range;\n }\n if (lassoPoints) {\n eventData.lassoPoints = lassoPoints;\n }\n };\n }\n function getFillRangeItems(dragOptions) {\n var plotinfo = dragOptions.plotinfo;\n return plotinfo.fillRangeItems || // allow subplots (i.e. geo, mapbox, map, sankey) to override fillRangeItems routine\n makeFillRangeItems(dragOptions.xaxes.concat(dragOptions.yaxes));\n }\n function emitSelecting(gd, eventData) {\n gd.emit(\"plotly_selecting\", eventData);\n }\n function emitSelected(gd, eventData) {\n if (eventData) {\n eventData.selections = (gd.layout || {}).selections || [];\n }\n gd.emit(\"plotly_selected\", eventData);\n }\n function emitDeselect(gd) {\n gd.emit(\"plotly_deselect\", null);\n }\n module.exports = {\n reselect,\n prepSelect,\n clearOutline,\n clearSelectionsCache,\n selectOnClick\n };\n }\n });\n\n // src/components/annotations/arrow_paths.js\n var require_arrow_paths = __commonJS({\n \"src/components/annotations/arrow_paths.js\"(exports, module) {\n \"use strict\";\n module.exports = [\n // no arrow\n {\n path: \"\",\n backoff: 0\n },\n // wide with flat back\n {\n path: \"M-2.4,-3V3L0.6,0Z\",\n backoff: 0.6\n },\n // narrower with flat back\n {\n path: \"M-3.7,-2.5V2.5L1.3,0Z\",\n backoff: 1.3\n },\n // barbed\n {\n path: \"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z\",\n backoff: 1.55\n },\n // wide line-drawn\n {\n path: \"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z\",\n backoff: 1.6\n },\n // narrower line-drawn\n {\n path: \"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z\",\n backoff: 2\n },\n // circle\n {\n path: \"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z\",\n backoff: 0,\n noRotate: true\n },\n // square\n {\n path: \"M2,2V-2H-2V2Z\",\n backoff: 0,\n noRotate: true\n }\n ];\n }\n });\n\n // src/constants/axis_placeable_objects.js\n var require_axis_placeable_objects = __commonJS({\n \"src/constants/axis_placeable_objects.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n axisRefDescription: function(axisname, lower, upper) {\n return [\n \"If set to a\",\n axisname,\n \"axis id (e.g. *\" + axisname + \"* or\",\n \"*\" + axisname + \"2*), the `\" + axisname + \"` position refers to a\",\n axisname,\n \"coordinate. If set to *paper*, the `\" + axisname + \"`\",\n \"position refers to the distance from the\",\n lower,\n \"of the plotting\",\n \"area in normalized coordinates where *0* (*1*) corresponds to the\",\n lower,\n \"(\" + upper + \"). If set to a\",\n axisname,\n \"axis ID followed by\",\n \"*domain* (separated by a space), the position behaves like for\",\n \"*paper*, but refers to the distance in fractions of the domain\",\n \"length from the\",\n lower,\n \"of the domain of that axis: e.g.,\",\n \"*\" + axisname + \"2 domain* refers to the domain of the second\",\n axisname,\n \" axis and a\",\n axisname,\n \"position of 0.5 refers to the\",\n \"point between the\",\n lower,\n \"and the\",\n upper,\n \"of the domain of the\",\n \"second\",\n axisname,\n \"axis.\"\n ].join(\" \");\n }\n };\n }\n });\n\n // src/components/annotations/attributes.js\n var require_attributes11 = __commonJS({\n \"src/components/annotations/attributes.js\"(exports, module) {\n \"use strict\";\n var ARROWPATHS = require_arrow_paths();\n var fontAttrs = require_font_attributes();\n var cartesianConstants = require_constants2();\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n module.exports = templatedArray(\"annotation\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc+arraydraw\"\n },\n text: {\n valType: \"string\",\n editType: \"calc+arraydraw\"\n },\n textangle: {\n valType: \"angle\",\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n font: fontAttrs({\n editType: \"calc+arraydraw\",\n colorEditType: \"arraydraw\"\n }),\n width: {\n valType: \"number\",\n min: 1,\n dflt: null,\n editType: \"calc+arraydraw\"\n },\n height: {\n valType: \"number\",\n min: 1,\n dflt: null,\n editType: \"calc+arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"arraydraw\"\n },\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n dflt: \"center\",\n editType: \"arraydraw\"\n },\n valign: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n dflt: \"middle\",\n editType: \"arraydraw\"\n },\n bgcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"arraydraw\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"arraydraw\"\n },\n borderpad: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n // arrow\n showarrow: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc+arraydraw\"\n },\n arrowcolor: {\n valType: \"color\",\n editType: \"arraydraw\"\n },\n arrowhead: {\n valType: \"integer\",\n min: 0,\n max: ARROWPATHS.length,\n dflt: 1,\n editType: \"arraydraw\"\n },\n startarrowhead: {\n valType: \"integer\",\n min: 0,\n max: ARROWPATHS.length,\n dflt: 1,\n editType: \"arraydraw\"\n },\n arrowside: {\n valType: \"flaglist\",\n flags: [\"end\", \"start\"],\n extras: [\"none\"],\n dflt: \"end\",\n editType: \"arraydraw\"\n },\n arrowsize: {\n valType: \"number\",\n min: 0.3,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n startarrowsize: {\n valType: \"number\",\n min: 0.3,\n dflt: 1,\n editType: \"calc+arraydraw\"\n },\n arrowwidth: {\n valType: \"number\",\n min: 0.1,\n editType: \"calc+arraydraw\"\n },\n standoff: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n startstandoff: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n ax: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n ay: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n axref: {\n valType: \"enumerated\",\n dflt: \"pixel\",\n values: [\n \"pixel\",\n cartesianConstants.idRegex.x.toString()\n ],\n editType: \"calc\"\n },\n ayref: {\n valType: \"enumerated\",\n dflt: \"pixel\",\n values: [\n \"pixel\",\n cartesianConstants.idRegex.y.toString()\n ],\n editType: \"calc\"\n },\n // positioning\n xref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.x.toString()\n ],\n editType: \"calc\"\n },\n x: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n xshift: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n yref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.y.toString()\n ],\n editType: \"calc\"\n },\n y: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n yshift: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc+arraydraw\"\n },\n clicktoshow: {\n valType: \"enumerated\",\n values: [false, \"onoff\", \"onout\"],\n dflt: false,\n editType: \"arraydraw\"\n },\n xclick: {\n valType: \"any\",\n editType: \"arraydraw\"\n },\n yclick: {\n valType: \"any\",\n editType: \"arraydraw\"\n },\n hovertext: {\n valType: \"string\",\n editType: \"arraydraw\"\n },\n hoverlabel: {\n bgcolor: {\n valType: \"color\",\n editType: \"arraydraw\"\n },\n bordercolor: {\n valType: \"color\",\n editType: \"arraydraw\"\n },\n font: fontAttrs({\n editType: \"arraydraw\"\n }),\n editType: \"arraydraw\"\n },\n captureevents: {\n valType: \"boolean\",\n editType: \"arraydraw\"\n },\n editType: \"calc\"\n });\n }\n });\n\n // src/traces/scatter/constants.js\n var require_constants8 = __commonJS({\n \"src/traces/scatter/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n PTS_LINESONLY: 20,\n // fixed parameters of clustering and clipping algorithms\n // fraction of clustering tolerance \"so close we don't even consider it a new point\"\n minTolerance: 0.2,\n // how fast does clustering tolerance increase as you get away from the visible region\n toleranceGrowth: 10,\n // number of viewport sizes away from the visible region\n // at which we clip all lines to the perimeter\n maxScreensAway: 20,\n eventDataKeys: []\n };\n }\n });\n\n // src/traces/scatter/fillcolor_attribute.js\n var require_fillcolor_attribute = __commonJS({\n \"src/traces/scatter/fillcolor_attribute.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeFillcolorAttr(hasFillgradient) {\n return {\n valType: \"color\",\n editType: \"style\",\n anim: true\n };\n };\n }\n });\n\n // src/traces/scatter/attributes.js\n var require_attributes12 = __commonJS({\n \"src/traces/scatter/attributes.js\"(exports, module) {\n \"use strict\";\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var fontAttrs = require_font_attributes();\n var dash = require_attributes4().dash;\n var pattern = require_attributes4().pattern;\n var Drawing = require_drawing();\n var constants = require_constants8();\n var extendFlat = require_extend().extendFlat;\n var makeFillcolorAttr = require_fillcolor_attribute();\n function axisPeriod(axis) {\n return {\n valType: \"any\",\n dflt: 0,\n editType: \"calc\"\n };\n }\n function axisPeriod0(axis) {\n return {\n valType: \"any\",\n editType: \"calc\"\n };\n }\n function axisPeriodAlignment(axis) {\n return {\n valType: \"enumerated\",\n values: [\n \"start\",\n \"middle\",\n \"end\"\n ],\n dflt: \"middle\",\n editType: \"calc\"\n };\n }\n module.exports = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n x0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n dx: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\",\n anim: true\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n y0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\",\n anim: true\n },\n dy: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\",\n anim: true\n },\n xperiod: axisPeriod(\"x\"),\n yperiod: axisPeriod(\"y\"),\n xperiod0: axisPeriod0(\"x0\"),\n yperiod0: axisPeriod0(\"y0\"),\n xperiodalignment: axisPeriodAlignment(\"x\"),\n yperiodalignment: axisPeriodAlignment(\"y\"),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n offsetgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n alignmentgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n stackgroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n editType: \"calc\"\n },\n groupnorm: {\n valType: \"enumerated\",\n values: [\"\", \"fraction\", \"percent\"],\n dflt: \"\",\n editType: \"calc\"\n },\n stackgaps: {\n valType: \"enumerated\",\n values: [\"infer zero\", \"interpolate\"],\n dflt: \"infer zero\",\n editType: \"calc\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n texttemplate: texttemplateAttrs({}, {}),\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"style\"\n },\n mode: {\n valType: \"flaglist\",\n flags: [\"lines\", \"markers\", \"text\"],\n extras: [\"none\"],\n editType: \"calc\"\n },\n hoveron: {\n valType: \"flaglist\",\n flags: [\"points\", \"fills\"],\n editType: \"style\"\n },\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n line: {\n color: {\n valType: \"color\",\n editType: \"style\",\n anim: true\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\",\n anim: true\n },\n shape: {\n valType: \"enumerated\",\n values: [\"linear\", \"spline\", \"hv\", \"vh\", \"hvh\", \"vhv\"],\n dflt: \"linear\",\n editType: \"plot\"\n },\n smoothing: {\n valType: \"number\",\n min: 0,\n max: 1.3,\n dflt: 1,\n editType: \"plot\"\n },\n dash: extendFlat({}, dash, { editType: \"style\" }),\n backoff: {\n // we want to have a similar option for the start of the line\n valType: \"number\",\n min: 0,\n dflt: \"auto\",\n arrayOk: true,\n editType: \"plot\"\n },\n simplify: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n connectgaps: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n cliponaxis: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n fill: {\n valType: \"enumerated\",\n values: [\"none\", \"tozeroy\", \"tozerox\", \"tonexty\", \"tonextx\", \"toself\", \"tonext\"],\n editType: \"calc\"\n },\n fillcolor: makeFillcolorAttr(true),\n fillgradient: extendFlat({\n type: {\n valType: \"enumerated\",\n values: [\"radial\", \"horizontal\", \"vertical\", \"none\"],\n dflt: \"none\",\n editType: \"calc\"\n },\n start: {\n valType: \"number\",\n editType: \"calc\"\n },\n stop: {\n valType: \"number\",\n editType: \"calc\"\n },\n colorscale: {\n valType: \"colorscale\",\n editType: \"style\"\n },\n editType: \"calc\"\n }),\n fillpattern: pattern,\n marker: extendFlat(\n {\n symbol: {\n valType: \"enumerated\",\n values: Drawing.symbolList,\n dflt: \"circle\",\n arrayOk: true,\n editType: \"style\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n arrayOk: true,\n editType: \"style\",\n anim: true\n },\n angle: {\n valType: \"angle\",\n dflt: 0,\n arrayOk: true,\n editType: \"plot\",\n anim: false\n // TODO: possibly set to true in future\n },\n angleref: {\n valType: \"enumerated\",\n values: [\"previous\", \"up\"],\n dflt: \"up\",\n editType: \"plot\",\n anim: false\n },\n standoff: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n arrayOk: true,\n editType: \"plot\",\n anim: true\n },\n size: {\n valType: \"number\",\n min: 0,\n dflt: 6,\n arrayOk: true,\n editType: \"calc\",\n anim: true\n },\n maxdisplayed: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n sizeref: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n sizemin: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n sizemode: {\n valType: \"enumerated\",\n values: [\"diameter\", \"area\"],\n dflt: \"diameter\",\n editType: \"calc\"\n },\n line: extendFlat(\n {\n width: {\n valType: \"number\",\n min: 0,\n arrayOk: true,\n editType: \"style\",\n anim: true\n },\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker.line\", { anim: true })\n ),\n gradient: {\n type: {\n valType: \"enumerated\",\n values: [\"radial\", \"horizontal\", \"vertical\", \"none\"],\n arrayOk: true,\n dflt: \"none\",\n editType: \"calc\"\n },\n color: {\n valType: \"color\",\n arrayOk: true,\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", { anim: true })\n ),\n selected: {\n marker: {\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"style\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n size: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"style\"\n },\n textfont: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"style\"\n },\n unselected: {\n marker: {\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"style\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n size: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"style\"\n },\n textfont: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"style\"\n },\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\"\n ],\n dflt: \"middle center\",\n arrayOk: true,\n editType: \"calc\"\n },\n textfont: fontAttrs({\n editType: \"calc\",\n colorEditType: \"style\",\n arrayOk: true\n }),\n zorder: {\n valType: \"integer\",\n dflt: 0,\n editType: \"plot\"\n }\n };\n }\n });\n\n // src/components/selections/attributes.js\n var require_attributes13 = __commonJS({\n \"src/components/selections/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var scatterLineAttrs = require_attributes12().line;\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n module.exports = overrideAll(templatedArray(\"selection\", {\n type: {\n valType: \"enumerated\",\n values: [\"rect\", \"path\"]\n },\n xref: extendFlat({}, annAttrs.xref, {}),\n yref: extendFlat({}, annAttrs.yref, {}),\n x0: {\n valType: \"any\"\n },\n x1: {\n valType: \"any\"\n },\n y0: {\n valType: \"any\"\n },\n y1: {\n valType: \"any\"\n },\n path: {\n valType: \"string\",\n editType: \"arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.7,\n editType: \"arraydraw\"\n },\n line: {\n color: scatterLineAttrs.color,\n width: extendFlat({}, scatterLineAttrs.width, {\n min: 1,\n dflt: 1\n }),\n dash: extendFlat({}, dash, {\n dflt: \"dot\"\n })\n }\n }), \"arraydraw\", \"from-root\");\n }\n });\n\n // src/components/selections/defaults.js\n var require_defaults6 = __commonJS({\n \"src/components/selections/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes13();\n var helpers = require_helpers8();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: \"selections\",\n handleItemDefaults: handleSelectionDefaults\n });\n var selections = layoutOut.selections;\n for (var i = 0; i < selections.length; i++) {\n var selection = selections[i];\n if (!selection) continue;\n if (selection.path === void 0) {\n if (selection.x0 === void 0 || selection.x1 === void 0 || selection.y0 === void 0 || selection.y1 === void 0) {\n layoutOut.selections[i] = null;\n }\n }\n }\n };\n function handleSelectionDefaults(selectionIn, selectionOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(selectionIn, selectionOut, attributes, attr, dflt);\n }\n var path = coerce(\"path\");\n var dfltType = path ? \"path\" : \"rect\";\n var selectionType = coerce(\"type\", dfltType);\n var noPath = selectionType !== \"path\";\n if (noPath) delete selectionOut.path;\n coerce(\"opacity\");\n coerce(\"line.color\");\n coerce(\"line.width\");\n coerce(\"line.dash\");\n var axLetters = [\"x\", \"y\"];\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var gdMock = { _fullLayout: fullLayout };\n var ax;\n var pos2r;\n var r2pos;\n var axRef = Axes.coerceRef(selectionIn, selectionOut, gdMock, axLetter);\n ax = Axes.getFromId(gdMock, axRef);\n ax._selectionIndices.push(selectionOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n if (noPath) {\n var attr0 = axLetter + \"0\";\n var attr1 = axLetter + \"1\";\n var in0 = selectionIn[attr0];\n var in1 = selectionIn[attr1];\n selectionIn[attr0] = pos2r(selectionIn[attr0], true);\n selectionIn[attr1] = pos2r(selectionIn[attr1], true);\n Axes.coercePosition(selectionOut, gdMock, coerce, axRef, attr0);\n Axes.coercePosition(selectionOut, gdMock, coerce, axRef, attr1);\n var p0 = selectionOut[attr0];\n var p1 = selectionOut[attr1];\n if (p0 !== void 0 && p1 !== void 0) {\n selectionOut[attr0] = r2pos(p0);\n selectionOut[attr1] = r2pos(p1);\n selectionIn[attr0] = in0;\n selectionIn[attr1] = in1;\n }\n }\n }\n if (noPath) {\n Lib.noneOrAll(selectionIn, selectionOut, [\"x0\", \"x1\", \"y0\", \"y1\"]);\n }\n }\n }\n });\n\n // src/components/selections/draw_newselection/defaults.js\n var require_defaults7 = __commonJS({\n \"src/components/selections/draw_newselection/defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function supplyDrawNewSelectionDefaults(layoutIn, layoutOut, coerce) {\n coerce(\"newselection.mode\");\n var newselectionLineWidth = coerce(\"newselection.line.width\");\n if (newselectionLineWidth) {\n coerce(\"newselection.line.color\");\n coerce(\"newselection.line.dash\");\n }\n coerce(\"activeselection.fillcolor\");\n coerce(\"activeselection.opacity\");\n };\n }\n });\n\n // src/plots/cartesian/include_components.js\n var require_include_components = __commonJS({\n \"src/plots/cartesian/include_components.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var axisIds = require_axis_ids();\n module.exports = function makeIncludeComponents(containerArrayName) {\n return function includeComponents(layoutIn, layoutOut) {\n var array = layoutIn[containerArrayName];\n if (!Array.isArray(array)) return;\n var Cartesian = Registry.subplotsRegistry.cartesian;\n var idRegex = Cartesian.idRegex;\n var subplots = layoutOut._subplots;\n var xaList = subplots.xaxis;\n var yaList = subplots.yaxis;\n var cartesianList = subplots.cartesian;\n var hasCartesian = layoutOut._has(\"cartesian\");\n for (var i = 0; i < array.length; i++) {\n var itemi = array[i];\n if (!Lib.isPlainObject(itemi)) continue;\n var xref = axisIds.cleanId(itemi.xref, \"x\", false);\n var yref = axisIds.cleanId(itemi.yref, \"y\", false);\n var hasXref = idRegex.x.test(xref);\n var hasYref = idRegex.y.test(yref);\n if (hasXref || hasYref) {\n if (!hasCartesian) Lib.pushUnique(layoutOut._basePlotModules, Cartesian);\n var newAxis = false;\n if (hasXref && xaList.indexOf(xref) === -1) {\n xaList.push(xref);\n newAxis = true;\n }\n if (hasYref && yaList.indexOf(yref) === -1) {\n yaList.push(yref);\n newAxis = true;\n }\n if (newAxis && hasXref && hasYref) {\n cartesianList.push(xref + yref);\n }\n }\n }\n };\n };\n }\n });\n\n // src/components/selections/index.js\n var require_selections = __commonJS({\n \"src/components/selections/index.js\"(exports, module) {\n \"use strict\";\n var drawModule = require_draw3();\n var select = require_select();\n module.exports = {\n moduleType: \"component\",\n name: \"selections\",\n layoutAttributes: require_attributes13(),\n supplyLayoutDefaults: require_defaults6(),\n supplyDrawNewSelectionDefaults: require_defaults7(),\n includeBasePlot: require_include_components()(\"selections\"),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n reselect: select.reselect,\n prepSelect: select.prepSelect,\n clearOutline: select.clearOutline,\n clearSelectionsCache: select.clearSelectionsCache,\n selectOnClick: select.selectOnClick\n };\n }\n });\n\n // src/plots/cartesian/dragbox.js\n var require_dragbox = __commonJS({\n \"src/plots/cartesian/dragbox.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var tinycolor = require_tinycolor();\n var supportsPassive = require_has_passive_events();\n var Registry = require_registry();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Fx = require_fx();\n var Axes = require_axes();\n var setCursor = require_setcursor();\n var dragElement = require_dragelement();\n var helpers = require_helpers5();\n var selectingOrDrawing = helpers.selectingOrDrawing;\n var freeMode = helpers.freeMode;\n var FROM_TL = require_alignment().FROM_TL;\n var clearGlCanvases = require_clear_gl_canvases();\n var redrawReglTraces = require_subroutines().redrawReglTraces;\n var Plots = require_plots();\n var getFromId = require_axis_ids().getFromId;\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var selectOnClick = require_selections().selectOnClick;\n var scaleZoom = require_scale_zoom();\n var constants = require_constants2();\n var MINDRAG = constants.MINDRAG;\n var MINZOOM = constants.MINZOOM;\n var SHOWZOOMOUTTIP = true;\n function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) {\n var zoomlayer = gd._fullLayout._zoomlayer;\n var isMainDrag = ns + ew === \"nsew\";\n var singleEnd = (ns + ew).length === 1;\n var xa0, ya0;\n var xaHash, yaHash;\n var xaxes, yaxes;\n var xs, ys;\n var pw, ph;\n var links;\n var matches;\n var xActive, yActive;\n var allFixedRanges;\n var editX, editY;\n var hasScatterGl, hasSplom, hasSVG;\n var updates;\n var scaleX;\n var scaleY;\n x += plotinfo.yaxis._shift;\n function recomputeAxisLists() {\n xa0 = plotinfo.xaxis;\n ya0 = plotinfo.yaxis;\n pw = xa0._length;\n ph = ya0._length;\n xs = xa0._offset;\n ys = ya0._offset;\n xaHash = {};\n xaHash[xa0._id] = xa0;\n yaHash = {};\n yaHash[ya0._id] = ya0;\n if (ns && ew) {\n var overlays = plotinfo.overlays;\n for (var i = 0; i < overlays.length; i++) {\n var xa = overlays[i].xaxis;\n xaHash[xa._id] = xa;\n var ya = overlays[i].yaxis;\n yaHash[ya._id] = ya;\n }\n }\n xaxes = hashValues(xaHash);\n yaxes = hashValues(yaHash);\n xActive = isDirectionActive(xaxes, ew);\n yActive = isDirectionActive(yaxes, ns);\n allFixedRanges = !yActive && !xActive;\n matches = calcLinks(gd, gd._fullLayout._axisMatchGroups, xaHash, yaHash);\n links = calcLinks(gd, gd._fullLayout._axisConstraintGroups, xaHash, yaHash, matches);\n var spConstrained = links.isSubplotConstrained || matches.isSubplotConstrained;\n editX = ew || spConstrained;\n editY = ns || spConstrained;\n var fullLayout = gd._fullLayout;\n hasScatterGl = fullLayout._has(\"scattergl\");\n hasSplom = fullLayout._has(\"splom\");\n hasSVG = fullLayout._has(\"svg\");\n }\n recomputeAxisLists();\n var cursor = getDragCursor(yActive + xActive, gd._fullLayout.dragmode, isMainDrag);\n var dragger = makeRectDragger(plotinfo, ns + ew + \"drag\", cursor, x, y, w, h);\n if (allFixedRanges && !isMainDrag) {\n dragger.onmousedown = null;\n dragger.style.pointerEvents = \"none\";\n return dragger;\n }\n var dragOptions = {\n element: dragger,\n gd,\n plotinfo\n };\n dragOptions.prepFn = function(e, startX, startY) {\n var dragModePrev = dragOptions.dragmode;\n var dragModeNow = gd._fullLayout.dragmode;\n if (dragModeNow !== dragModePrev) {\n dragOptions.dragmode = dragModeNow;\n }\n recomputeAxisLists();\n scaleX = gd._fullLayout._invScaleX;\n scaleY = gd._fullLayout._invScaleY;\n if (!allFixedRanges) {\n if (isMainDrag) {\n if (e.shiftKey) {\n if (dragModeNow === \"pan\") dragModeNow = \"zoom\";\n else if (!selectingOrDrawing(dragModeNow)) dragModeNow = \"pan\";\n } else if (e.ctrlKey) {\n dragModeNow = \"pan\";\n }\n } else {\n dragModeNow = \"pan\";\n }\n }\n if (freeMode(dragModeNow)) dragOptions.minDrag = 1;\n else dragOptions.minDrag = void 0;\n if (selectingOrDrawing(dragModeNow)) {\n dragOptions.xaxes = xaxes;\n dragOptions.yaxes = yaxes;\n prepSelect(e, startX, startY, dragOptions, dragModeNow);\n } else {\n dragOptions.clickFn = clickFn;\n if (selectingOrDrawing(dragModePrev)) {\n clearAndResetSelect();\n }\n if (!allFixedRanges) {\n if (dragModeNow === \"zoom\") {\n dragOptions.moveFn = zoomMove;\n dragOptions.doneFn = zoomDone;\n dragOptions.minDrag = 1;\n zoomPrep(e, startX, startY);\n } else if (dragModeNow === \"pan\") {\n dragOptions.moveFn = plotDrag;\n dragOptions.doneFn = dragTail;\n }\n }\n }\n gd._fullLayout._redrag = function() {\n var dragDataNow = gd._dragdata;\n if (dragDataNow && dragDataNow.element === dragger) {\n var dragModeNow2 = gd._fullLayout.dragmode;\n if (!selectingOrDrawing(dragModeNow2)) {\n recomputeAxisLists();\n updateSubplots([0, 0, pw, ph]);\n dragOptions.moveFn(dragDataNow.dx, dragDataNow.dy);\n }\n }\n };\n };\n function clearAndResetSelect() {\n dragOptions.plotinfo.selection = false;\n clearOutline(gd);\n }\n function clickFn(numClicks, evt) {\n var gd2 = dragOptions.gd;\n if (gd2._fullLayout._activeShapeIndex >= 0) {\n gd2._fullLayout._deactivateShape(gd2);\n return;\n }\n var clickmode = gd2._fullLayout.clickmode;\n removeZoombox(gd2);\n if (numClicks === 2 && !singleEnd) doubleClick();\n if (isMainDrag) {\n if (clickmode.indexOf(\"select\") > -1) {\n selectOnClick(evt, gd2, xaxes, yaxes, plotinfo.id, dragOptions);\n }\n if (clickmode.indexOf(\"event\") > -1) {\n Fx.click(gd2, evt, plotinfo.id);\n }\n } else if (numClicks === 1 && singleEnd) {\n var ax = ns ? ya0 : xa0;\n var end = ns === \"s\" || ew === \"w\" ? 0 : 1;\n var attrStr = ax._name + \".range[\" + end + \"]\";\n var initialText = getEndText(ax, end);\n var hAlign = \"left\";\n var vAlign = \"middle\";\n if (ax.fixedrange) return;\n if (ns) {\n vAlign = ns === \"n\" ? \"top\" : \"bottom\";\n if (ax.side === \"right\") hAlign = \"right\";\n } else if (ew === \"e\") hAlign = \"right\";\n if (gd2._context.showAxisRangeEntryBoxes) {\n d3.select(dragger).call(svgTextUtils.makeEditable, {\n gd: gd2,\n immediate: true,\n background: gd2._fullLayout.paper_bgcolor,\n text: String(initialText),\n fill: ax.tickfont ? ax.tickfont.color : \"#444\",\n horizontalAlign: hAlign,\n verticalAlign: vAlign\n }).on(\"edit\", function(text) {\n var v = ax.d2r(text);\n if (v !== void 0) {\n Registry.call(\"_guiRelayout\", gd2, attrStr, v);\n }\n });\n }\n }\n }\n dragElement.init(dragOptions);\n var x0, y0;\n var box;\n var lum;\n var path0;\n var dimmed;\n var zoomMode;\n var zb;\n var corners;\n var zoomDragged;\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n gd._fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(gd._fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n box = { l: x0, r: x0, w: 0, t: y0, b: y0, h: 0 };\n lum = gd._hmpixcount ? gd._hmlumcount / gd._hmpixcount : tinycolor(gd._fullLayout.plot_bgcolor).getLuminance();\n path0 = \"M0,0H\" + pw + \"V\" + ph + \"H0V0\";\n dimmed = false;\n zoomMode = \"xy\";\n zoomDragged = false;\n zb = makeZoombox(zoomlayer, lum, xs, ys, path0);\n corners = makeCorners(zoomlayer, xs, ys);\n }\n function zoomMove(dx0, dy0) {\n if (gd._transitioningWithDuration) {\n return false;\n }\n var x1 = Math.max(0, Math.min(pw, scaleX * dx0 + x0));\n var y1 = Math.max(0, Math.min(ph, scaleY * dy0 + y0));\n var dx = Math.abs(x1 - x0);\n var dy = Math.abs(y1 - y0);\n box.l = Math.min(x0, x1);\n box.r = Math.max(x0, x1);\n box.t = Math.min(y0, y1);\n box.b = Math.max(y0, y1);\n function noZoom() {\n zoomMode = \"\";\n box.r = box.l;\n box.t = box.b;\n corners.attr(\"d\", \"M0,0Z\");\n }\n if (links.isSubplotConstrained) {\n if (dx > MINZOOM || dy > MINZOOM) {\n zoomMode = \"xy\";\n if (dx / pw > dy / ph) {\n dy = dx * ph / pw;\n if (y0 > y1) box.t = y0 - dy;\n else box.b = y0 + dy;\n } else {\n dx = dy * pw / ph;\n if (x0 > x1) box.l = x0 - dx;\n else box.r = x0 + dx;\n }\n corners.attr(\"d\", xyCorners(box));\n } else {\n noZoom();\n }\n } else if (matches.isSubplotConstrained) {\n if (dx > MINZOOM || dy > MINZOOM) {\n zoomMode = \"xy\";\n var r0 = Math.min(box.l / pw, (ph - box.b) / ph);\n var r1 = Math.max(box.r / pw, (ph - box.t) / ph);\n box.l = r0 * pw;\n box.r = r1 * pw;\n box.b = (1 - r0) * ph;\n box.t = (1 - r1) * ph;\n corners.attr(\"d\", xyCorners(box));\n } else {\n noZoom();\n }\n } else if (!yActive || dy < Math.min(Math.max(dx * 0.6, MINDRAG), MINZOOM)) {\n if (dx < MINDRAG || !xActive) {\n noZoom();\n } else {\n box.t = 0;\n box.b = ph;\n zoomMode = \"x\";\n corners.attr(\"d\", xCorners(box, y0));\n }\n } else if (!xActive || dx < Math.min(dy * 0.6, MINZOOM)) {\n box.l = 0;\n box.r = pw;\n zoomMode = \"y\";\n corners.attr(\"d\", yCorners(box, x0));\n } else {\n zoomMode = \"xy\";\n corners.attr(\"d\", xyCorners(box));\n }\n box.w = box.r - box.l;\n box.h = box.b - box.t;\n if (zoomMode) zoomDragged = true;\n gd._dragged = zoomDragged;\n updateZoombox(zb, corners, box, path0, dimmed, lum);\n computeZoomUpdates();\n gd.emit(\"plotly_relayouting\", updates);\n dimmed = true;\n }\n function computeZoomUpdates() {\n updates = {};\n if (zoomMode === \"xy\" || zoomMode === \"x\") {\n zoomAxRanges(xaxes, box.l / pw, box.r / pw, updates, links.xaxes);\n updateMatchedAxRange(\"x\", updates);\n }\n if (zoomMode === \"xy\" || zoomMode === \"y\") {\n zoomAxRanges(yaxes, (ph - box.b) / ph, (ph - box.t) / ph, updates, links.yaxes);\n updateMatchedAxRange(\"y\", updates);\n }\n }\n function zoomDone() {\n computeZoomUpdates();\n removeZoombox(gd);\n dragTail();\n showDoubleClickNotifier(gd);\n }\n var scrollViewBox = [0, 0, pw, ph];\n var redrawTimer = null;\n var REDRAWDELAY = constants.REDRAWDELAY;\n var mainplot = plotinfo.mainplot ? gd._fullLayout._plots[plotinfo.mainplot] : plotinfo;\n function zoomWheel(e) {\n if (!gd._context._scrollZoom.cartesian && !gd._fullLayout._enablescrollzoom) {\n return;\n }\n clearAndResetSelect();\n if (gd._transitioningWithDuration) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n recomputeAxisLists();\n clearTimeout(redrawTimer);\n var wheelDelta = -e.deltaY;\n if (!isFinite(wheelDelta)) wheelDelta = e.wheelDelta / 10;\n if (!isFinite(wheelDelta)) {\n Lib.log(\"Did not find wheel motion attributes: \", e);\n return;\n }\n var zoom = Math.exp(-Math.min(Math.max(wheelDelta, -20), 20) / 200);\n var gbb = mainplot.draglayer.select(\".nsewdrag\").node().getBoundingClientRect();\n var xfrac = (e.clientX - gbb.left) / gbb.width;\n var yfrac = (gbb.bottom - e.clientY) / gbb.height;\n var i;\n function zoomWheelOneAxis(ax, centerFraction, zoom2) {\n if (ax.fixedrange) return;\n var axRange = Lib.simpleMap(ax.range, ax.r2l);\n var v0 = axRange[0] + (axRange[1] - axRange[0]) * centerFraction;\n function doZoom(v) {\n return ax.l2r(v0 + (v - v0) * zoom2);\n }\n ax.range = axRange.map(doZoom);\n }\n if (editX) {\n if (!ew) xfrac = 0.5;\n for (i = 0; i < xaxes.length; i++) {\n zoomWheelOneAxis(xaxes[i], xfrac, zoom);\n }\n updateMatchedAxRange(\"x\");\n scrollViewBox[2] *= zoom;\n scrollViewBox[0] += scrollViewBox[2] * xfrac * (1 / zoom - 1);\n }\n if (editY) {\n if (!ns) yfrac = 0.5;\n for (i = 0; i < yaxes.length; i++) {\n zoomWheelOneAxis(yaxes[i], yfrac, zoom);\n }\n updateMatchedAxRange(\"y\");\n scrollViewBox[3] *= zoom;\n scrollViewBox[1] += scrollViewBox[3] * (1 - yfrac) * (1 / zoom - 1);\n }\n updateSubplots(scrollViewBox);\n ticksAndAnnotations();\n gd.emit(\"plotly_relayouting\", updates);\n redrawTimer = setTimeout(function() {\n if (!gd._fullLayout) return;\n scrollViewBox = [0, 0, pw, ph];\n dragTail();\n }, REDRAWDELAY);\n e.preventDefault();\n return;\n }\n if (ns.length * ew.length !== 1) {\n attachWheelEventHandler(dragger, zoomWheel);\n }\n function plotDrag(dx, dy) {\n dx = dx * scaleX;\n dy = dy * scaleY;\n if (gd._transitioningWithDuration) {\n return;\n }\n gd._fullLayout._replotting = true;\n if (xActive === \"ew\" || yActive === \"ns\") {\n var spDx = xActive ? -dx : 0;\n var spDy = yActive ? -dy : 0;\n if (matches.isSubplotConstrained) {\n if (xActive && yActive) {\n var frac = (dx / pw - dy / ph) / 2;\n dx = frac * pw;\n dy = -frac * ph;\n spDx = -dx;\n spDy = -dy;\n }\n if (yActive) {\n spDx = -spDy * pw / ph;\n } else {\n spDy = -spDx * ph / pw;\n }\n }\n if (xActive) {\n dragAxList(xaxes, dx);\n updateMatchedAxRange(\"x\");\n }\n if (yActive) {\n dragAxList(yaxes, dy);\n updateMatchedAxRange(\"y\");\n }\n updateSubplots([spDx, spDy, pw, ph]);\n ticksAndAnnotations();\n gd.emit(\"plotly_relayouting\", updates);\n return;\n }\n function dz(axArray, end, d) {\n var otherEnd = 1 - end;\n var movedAx;\n var newLinearizedEnd;\n for (var i2 = 0; i2 < axArray.length; i2++) {\n var axi = axArray[i2];\n if (axi.fixedrange) continue;\n movedAx = axi;\n newLinearizedEnd = axi._rl[otherEnd] + (axi._rl[end] - axi._rl[otherEnd]) / dZoom(d / axi._length);\n var newEnd = axi.l2r(newLinearizedEnd);\n if (newEnd !== false && newEnd !== void 0) axi.range[end] = newEnd;\n }\n return movedAx._length * (movedAx._rl[end] - newLinearizedEnd) / (movedAx._rl[end] - movedAx._rl[otherEnd]);\n }\n var dxySign = xActive === \"w\" === (yActive === \"n\") ? 1 : -1;\n if (xActive && yActive && (links.isSubplotConstrained || matches.isSubplotConstrained)) {\n var dxyFraction = (dx / pw + dxySign * dy / ph) / 2;\n dx = dxyFraction * pw;\n dy = dxySign * dxyFraction * ph;\n }\n var xStart, yStart;\n if (xActive === \"w\") dx = dz(xaxes, 0, dx);\n else if (xActive === \"e\") dx = dz(xaxes, 1, -dx);\n else if (!xActive) dx = 0;\n if (yActive === \"n\") dy = dz(yaxes, 1, dy);\n else if (yActive === \"s\") dy = dz(yaxes, 0, -dy);\n else if (!yActive) dy = 0;\n xStart = xActive === \"w\" ? dx : 0;\n yStart = yActive === \"n\" ? dy : 0;\n if (links.isSubplotConstrained && !matches.isSubplotConstrained || // NW or SE on matching axes - create a symmetric zoom\n matches.isSubplotConstrained && xActive && yActive && dxySign > 0) {\n var i;\n if (matches.isSubplotConstrained || !xActive && yActive.length === 1) {\n for (i = 0; i < xaxes.length; i++) {\n xaxes[i].range = xaxes[i]._r.slice();\n scaleZoom(xaxes[i], 1 - dy / ph);\n }\n dx = dy * pw / ph;\n xStart = dx / 2;\n }\n if (matches.isSubplotConstrained || !yActive && xActive.length === 1) {\n for (i = 0; i < yaxes.length; i++) {\n yaxes[i].range = yaxes[i]._r.slice();\n scaleZoom(yaxes[i], 1 - dx / pw);\n }\n dy = dx * ph / pw;\n yStart = dy / 2;\n }\n }\n if (!matches.isSubplotConstrained || !yActive) {\n updateMatchedAxRange(\"x\");\n }\n if (!matches.isSubplotConstrained || !xActive) {\n updateMatchedAxRange(\"y\");\n }\n var xSize = pw - dx;\n var ySize = ph - dy;\n if (matches.isSubplotConstrained && !(xActive && yActive)) {\n if (xActive) {\n yStart = xStart ? 0 : dx * ph / pw;\n ySize = xSize * ph / pw;\n } else {\n xStart = yStart ? 0 : dy * pw / ph;\n xSize = ySize * pw / ph;\n }\n }\n updateSubplots([xStart, yStart, xSize, ySize]);\n ticksAndAnnotations();\n gd.emit(\"plotly_relayouting\", updates);\n }\n function updateMatchedAxRange(axLetter, out) {\n var matchedAxes = matches.isSubplotConstrained ? { x: yaxes, y: xaxes }[axLetter] : matches[axLetter + \"axes\"];\n var constrainedAxes = matches.isSubplotConstrained ? { x: xaxes, y: yaxes }[axLetter] : [];\n for (var i = 0; i < matchedAxes.length; i++) {\n var ax = matchedAxes[i];\n var axId = ax._id;\n var axId2 = matches.xLinks[axId] || matches.yLinks[axId];\n var ax2 = constrainedAxes[0] || xaHash[axId2] || yaHash[axId2];\n if (ax2) {\n if (out) {\n out[ax._name + \".range[0]\"] = out[ax2._name + \".range[0]\"];\n out[ax._name + \".range[1]\"] = out[ax2._name + \".range[1]\"];\n } else {\n ax.range = ax2.range.slice();\n }\n }\n }\n }\n function ticksAndAnnotations() {\n var activeAxIds = [];\n var i;\n function pushActiveAxIds(axList) {\n for (i = 0; i < axList.length; i++) {\n if (!axList[i].fixedrange) activeAxIds.push(axList[i]._id);\n }\n }\n function pushActiveAxIdsSynced(axList, axisType) {\n for (i = 0; i < axList.length; i++) {\n var axListI = axList[i];\n var axListIType = axListI[axisType];\n if (!axListI.fixedrange && axListIType.tickmode === \"sync\") activeAxIds.push(axListIType._id);\n }\n }\n if (editX) {\n pushActiveAxIds(xaxes);\n pushActiveAxIds(links.xaxes);\n pushActiveAxIds(matches.xaxes);\n pushActiveAxIdsSynced(plotinfo.overlays, \"xaxis\");\n }\n if (editY) {\n pushActiveAxIds(yaxes);\n pushActiveAxIds(links.yaxes);\n pushActiveAxIds(matches.yaxes);\n pushActiveAxIdsSynced(plotinfo.overlays, \"yaxis\");\n }\n updates = {};\n for (i = 0; i < activeAxIds.length; i++) {\n var axId = activeAxIds[i];\n var ax = getFromId(gd, axId);\n Axes.drawOne(gd, ax, { skipTitle: true });\n updates[ax._name + \".range[0]\"] = ax.range[0];\n updates[ax._name + \".range[1]\"] = ax.range[1];\n }\n Axes.redrawComponents(gd, activeAxIds);\n }\n function doubleClick() {\n if (gd._transitioningWithDuration) return;\n var doubleClickConfig = gd._context.doubleClick;\n var axList = [];\n if (xActive) axList = axList.concat(xaxes);\n if (yActive) axList = axList.concat(yaxes);\n if (matches.xaxes) axList = axList.concat(matches.xaxes);\n if (matches.yaxes) axList = axList.concat(matches.yaxes);\n var attrs = {};\n var ax, i;\n if (doubleClickConfig === \"reset+autosize\") {\n doubleClickConfig = \"autosize\";\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n var r0 = ax._rangeInitial0;\n var r1 = ax._rangeInitial1;\n var hasRangeInitial = r0 !== void 0 || r1 !== void 0;\n if (hasRangeInitial && (r0 !== void 0 && r0 !== ax.range[0] || r1 !== void 0 && r1 !== ax.range[1]) || !hasRangeInitial && ax.autorange !== true) {\n doubleClickConfig = \"reset\";\n break;\n }\n }\n }\n if (doubleClickConfig === \"autosize\") {\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!ax.fixedrange) attrs[ax._name + \".autorange\"] = true;\n }\n } else if (doubleClickConfig === \"reset\") {\n if (xActive || links.isSubplotConstrained) axList = axList.concat(links.xaxes);\n if (yActive && !links.isSubplotConstrained) axList = axList.concat(links.yaxes);\n if (links.isSubplotConstrained) {\n if (!xActive) axList = axList.concat(xaxes);\n else if (!yActive) axList = axList.concat(yaxes);\n }\n for (i = 0; i < axList.length; i++) {\n ax = axList[i];\n if (!ax.fixedrange) {\n var axName = ax._name;\n var autorangeInitial = ax._autorangeInitial;\n if (ax._rangeInitial0 === void 0 && ax._rangeInitial1 === void 0) {\n attrs[axName + \".autorange\"] = true;\n } else if (ax._rangeInitial0 === void 0) {\n attrs[axName + \".autorange\"] = autorangeInitial;\n attrs[axName + \".range\"] = [null, ax._rangeInitial1];\n } else if (ax._rangeInitial1 === void 0) {\n attrs[axName + \".range\"] = [ax._rangeInitial0, null];\n attrs[axName + \".autorange\"] = autorangeInitial;\n } else {\n attrs[axName + \".range\"] = [ax._rangeInitial0, ax._rangeInitial1];\n }\n }\n }\n }\n gd.emit(\"plotly_doubleclick\", null);\n Registry.call(\"_guiRelayout\", gd, attrs);\n }\n function dragTail() {\n updateSubplots([0, 0, pw, ph]);\n Lib.syncOrAsync([\n Plots.previousPromises,\n function() {\n gd._fullLayout._replotting = false;\n Registry.call(\"_guiRelayout\", gd, updates);\n }\n ], gd);\n }\n function updateSubplots(viewBox) {\n var fullLayout = gd._fullLayout;\n var plotinfos = fullLayout._plots;\n var subplots = fullLayout._subplots.cartesian;\n var i, sp, xa, ya;\n if (hasSplom) {\n Registry.subplotsRegistry.splom.drag(gd);\n }\n if (hasScatterGl) {\n for (i = 0; i < subplots.length; i++) {\n sp = plotinfos[subplots[i]];\n xa = sp.xaxis;\n ya = sp.yaxis;\n if (sp._scene) {\n if (xa.limitRange) xa.limitRange();\n if (ya.limitRange) ya.limitRange();\n var xrng = Lib.simpleMap(xa.range, xa.r2l);\n var yrng = Lib.simpleMap(ya.range, ya.r2l);\n sp._scene.update({ range: [xrng[0], yrng[0], xrng[1], yrng[1]] });\n }\n }\n }\n if (hasSplom || hasScatterGl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n if (hasSVG) {\n var xScaleFactor = viewBox[2] / xa0._length;\n var yScaleFactor = viewBox[3] / ya0._length;\n for (i = 0; i < subplots.length; i++) {\n sp = plotinfos[subplots[i]];\n xa = sp.xaxis;\n ya = sp.yaxis;\n var editX2 = (editX || matches.isSubplotConstrained) && !xa.fixedrange && xaHash[xa._id];\n var editY2 = (editY || matches.isSubplotConstrained) && !ya.fixedrange && yaHash[ya._id];\n var xScaleFactor2, yScaleFactor2;\n var clipDx, clipDy;\n if (editX2) {\n xScaleFactor2 = xScaleFactor;\n clipDx = ew || matches.isSubplotConstrained ? viewBox[0] : getShift(xa, xScaleFactor2);\n } else if (matches.xaHash[xa._id]) {\n xScaleFactor2 = xScaleFactor;\n clipDx = viewBox[0] * xa._length / xa0._length;\n } else if (matches.yaHash[xa._id]) {\n xScaleFactor2 = yScaleFactor;\n clipDx = yActive === \"ns\" ? -viewBox[1] * xa._length / ya0._length : getShift(xa, xScaleFactor2, { n: \"top\", s: \"bottom\" }[yActive]);\n } else {\n xScaleFactor2 = getLinkedScaleFactor(xa, xScaleFactor, yScaleFactor);\n clipDx = scaleAndGetShift(xa, xScaleFactor2);\n }\n if (xScaleFactor2 > 1 && (xa.maxallowed !== void 0 && editX === (xa.range[0] < xa.range[1] ? \"e\" : \"w\") || xa.minallowed !== void 0 && editX === (xa.range[0] < xa.range[1] ? \"w\" : \"e\"))) {\n xScaleFactor2 = 1;\n clipDx = 0;\n }\n if (editY2) {\n yScaleFactor2 = yScaleFactor;\n clipDy = ns || matches.isSubplotConstrained ? viewBox[1] : getShift(ya, yScaleFactor2);\n } else if (matches.yaHash[ya._id]) {\n yScaleFactor2 = yScaleFactor;\n clipDy = viewBox[1] * ya._length / ya0._length;\n } else if (matches.xaHash[ya._id]) {\n yScaleFactor2 = xScaleFactor;\n clipDy = xActive === \"ew\" ? -viewBox[0] * ya._length / xa0._length : getShift(ya, yScaleFactor2, { e: \"right\", w: \"left\" }[xActive]);\n } else {\n yScaleFactor2 = getLinkedScaleFactor(ya, xScaleFactor, yScaleFactor);\n clipDy = scaleAndGetShift(ya, yScaleFactor2);\n }\n if (yScaleFactor2 > 1 && (ya.maxallowed !== void 0 && editY === (ya.range[0] < ya.range[1] ? \"n\" : \"s\") || ya.minallowed !== void 0 && editY === (ya.range[0] < ya.range[1] ? \"s\" : \"n\"))) {\n yScaleFactor2 = 1;\n clipDy = 0;\n }\n if (!xScaleFactor2 && !yScaleFactor2) {\n continue;\n }\n if (!xScaleFactor2) xScaleFactor2 = 1;\n if (!yScaleFactor2) yScaleFactor2 = 1;\n var plotDx = xa._offset - clipDx / xScaleFactor2;\n var plotDy = ya._offset - clipDy / yScaleFactor2;\n sp.clipRect.call(Drawing.setTranslate, clipDx, clipDy).call(Drawing.setScale, xScaleFactor2, yScaleFactor2);\n sp.plot.call(Drawing.setTranslate, plotDx, plotDy).call(Drawing.setScale, 1 / xScaleFactor2, 1 / yScaleFactor2);\n if (xScaleFactor2 !== sp.xScaleFactor || yScaleFactor2 !== sp.yScaleFactor) {\n Drawing.setPointGroupScale(sp.zoomScalePts, xScaleFactor2, yScaleFactor2);\n Drawing.setTextPointsScale(sp.zoomScaleTxt, xScaleFactor2, yScaleFactor2);\n }\n Drawing.hideOutsideRangePoints(sp.clipOnAxisFalseTraces, sp);\n sp.xScaleFactor = xScaleFactor2;\n sp.yScaleFactor = yScaleFactor2;\n }\n }\n }\n function getLinkedScaleFactor(ax, xScaleFactor, yScaleFactor) {\n if (ax.fixedrange) return 0;\n if (editX && links.xaHash[ax._id]) {\n return xScaleFactor;\n }\n if (editY && (links.isSubplotConstrained ? links.xaHash : links.yaHash)[ax._id]) {\n return yScaleFactor;\n }\n return 0;\n }\n function scaleAndGetShift(ax, scaleFactor) {\n if (scaleFactor) {\n ax.range = ax._r.slice();\n scaleZoom(ax, scaleFactor);\n return getShift(ax, scaleFactor);\n }\n return 0;\n }\n function getShift(ax, scaleFactor, from) {\n return ax._length * (1 - scaleFactor) * FROM_TL[from || ax.constraintoward || \"middle\"];\n }\n return dragger;\n }\n function makeDragger(plotinfo, nodeName, dragClass, cursor) {\n var dragger3 = Lib.ensureSingle(plotinfo.draglayer, nodeName, dragClass, function(s) {\n s.classed(\"drag\", true).style({ fill: \"transparent\", \"stroke-width\": 0 }).attr(\"data-subplot\", plotinfo.id);\n });\n dragger3.call(setCursor, cursor);\n return dragger3.node();\n }\n function makeRectDragger(plotinfo, dragClass, cursor, x, y, w, h) {\n var dragger = makeDragger(plotinfo, \"rect\", dragClass, cursor);\n d3.select(dragger).call(Drawing.setRect, x, y, w, h);\n return dragger;\n }\n function isDirectionActive(axList, activeVal) {\n for (var i = 0; i < axList.length; i++) {\n if (!axList[i].fixedrange) return activeVal;\n }\n return \"\";\n }\n function getEndText(ax, end) {\n var initialVal = ax.range[end];\n var diff = Math.abs(initialVal - ax.range[1 - end]);\n var dig;\n if (ax.type === \"date\") {\n return initialVal;\n } else if (ax.type === \"log\") {\n dig = Math.ceil(Math.max(0, -Math.log(diff) / Math.LN10)) + 3;\n return numberFormat(\".\" + dig + \"g\")(Math.pow(10, initialVal));\n } else {\n dig = Math.floor(Math.log(Math.abs(initialVal)) / Math.LN10) - Math.floor(Math.log(diff) / Math.LN10) + 4;\n return numberFormat(\".\" + String(dig) + \"g\")(initialVal);\n }\n }\n function zoomAxRanges(axList, r0Fraction, r1Fraction, updates, linkedAxes) {\n for (var i = 0; i < axList.length; i++) {\n var axi = axList[i];\n if (axi.fixedrange) continue;\n if (axi.rangebreaks) {\n var isY = axi._id.charAt(0) === \"y\";\n var r0F = isY ? 1 - r0Fraction : r0Fraction;\n var r1F = isY ? 1 - r1Fraction : r1Fraction;\n updates[axi._name + \".range[0]\"] = axi.l2r(axi.p2l(r0F * axi._length));\n updates[axi._name + \".range[1]\"] = axi.l2r(axi.p2l(r1F * axi._length));\n } else {\n var axRangeLinear0 = axi._rl[0];\n var axRangeLinearSpan = axi._rl[1] - axRangeLinear0;\n updates[axi._name + \".range[0]\"] = axi.l2r(axRangeLinear0 + axRangeLinearSpan * r0Fraction);\n updates[axi._name + \".range[1]\"] = axi.l2r(axRangeLinear0 + axRangeLinearSpan * r1Fraction);\n }\n }\n if (linkedAxes && linkedAxes.length) {\n var linkedR0Fraction = (r0Fraction + (1 - r1Fraction)) / 2;\n zoomAxRanges(linkedAxes, linkedR0Fraction, 1 - linkedR0Fraction, updates, []);\n }\n }\n function dragAxList(axList, pix) {\n for (var i = 0; i < axList.length; i++) {\n var axi = axList[i];\n if (!axi.fixedrange) {\n if (axi.rangebreaks) {\n var p0 = 0;\n var p1 = axi._length;\n var d0 = axi.p2l(p0 + pix) - axi.p2l(p0);\n var d1 = axi.p2l(p1 + pix) - axi.p2l(p1);\n var delta = (d0 + d1) / 2;\n axi.range = [\n axi.l2r(axi._rl[0] - delta),\n axi.l2r(axi._rl[1] - delta)\n ];\n } else {\n axi.range = [\n axi.l2r(axi._rl[0] - pix / axi._m),\n axi.l2r(axi._rl[1] - pix / axi._m)\n ];\n }\n if (axi.limitRange) axi.limitRange();\n }\n }\n }\n function dZoom(d) {\n return 1 - (d >= 0 ? Math.min(d, 0.9) : 1 / (1 / Math.max(d, -0.3) + 3.222));\n }\n function getDragCursor(nsew, dragmode, isMainDrag) {\n if (!nsew) return \"pointer\";\n if (nsew === \"nsew\") {\n if (isMainDrag) return \"\";\n if (dragmode === \"pan\") return \"move\";\n return \"crosshair\";\n }\n return nsew.toLowerCase() + \"-resize\";\n }\n function makeZoombox(zoomlayer, lum, xs, ys, path0) {\n return zoomlayer.append(\"path\").attr(\"class\", \"zoombox\").style({\n fill: lum > 0.2 ? \"rgba(0,0,0,0)\" : \"rgba(255,255,255,0)\",\n \"stroke-width\": 0\n }).attr(\"transform\", strTranslate(xs, ys)).attr(\"d\", path0 + \"Z\");\n }\n function makeCorners(zoomlayer, xs, ys) {\n return zoomlayer.append(\"path\").attr(\"class\", \"zoombox-corners\").style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1,\n opacity: 0\n }).attr(\"transform\", strTranslate(xs, ys)).attr(\"d\", \"M0,0Z\");\n }\n function updateZoombox(zb, corners, box, path0, dimmed, lum) {\n zb.attr(\n \"d\",\n path0 + \"M\" + box.l + \",\" + box.t + \"v\" + box.h + \"h\" + box.w + \"v-\" + box.h + \"h-\" + box.w + \"Z\"\n );\n transitionZoombox(zb, corners, dimmed, lum);\n }\n function transitionZoombox(zb, corners, dimmed, lum) {\n if (!dimmed) {\n zb.transition().style(\"fill\", lum > 0.2 ? \"rgba(0,0,0,0.4)\" : \"rgba(255,255,255,0.3)\").duration(200);\n corners.transition().style(\"opacity\", 1).duration(200);\n }\n }\n function removeZoombox(gd) {\n d3.select(gd).selectAll(\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\").remove();\n }\n function showDoubleClickNotifier(gd) {\n if (SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(Lib._(gd, \"Double-click to zoom back out\"), \"long\");\n SHOWZOOMOUTTIP = false;\n }\n }\n function xCorners(box, y0) {\n return \"M\" + (box.l - 0.5) + \",\" + (y0 - MINZOOM - 0.5) + \"h-3v\" + (2 * MINZOOM + 1) + \"h3ZM\" + (box.r + 0.5) + \",\" + (y0 - MINZOOM - 0.5) + \"h3v\" + (2 * MINZOOM + 1) + \"h-3Z\";\n }\n function yCorners(box, x0) {\n return \"M\" + (x0 - MINZOOM - 0.5) + \",\" + (box.t - 0.5) + \"v-3h\" + (2 * MINZOOM + 1) + \"v3ZM\" + (x0 - MINZOOM - 0.5) + \",\" + (box.b + 0.5) + \"v3h\" + (2 * MINZOOM + 1) + \"v-3Z\";\n }\n function xyCorners(box) {\n var clen = Math.floor(Math.min(box.b - box.t, box.r - box.l, MINZOOM) / 2);\n return \"M\" + (box.l - 3.5) + \",\" + (box.t - 0.5 + clen) + \"h3v\" + -clen + \"h\" + clen + \"v-3h-\" + (clen + 3) + \"ZM\" + (box.r + 3.5) + \",\" + (box.t - 0.5 + clen) + \"h-3v\" + -clen + \"h\" + -clen + \"v-3h\" + (clen + 3) + \"ZM\" + (box.r + 3.5) + \",\" + (box.b + 0.5 - clen) + \"h-3v\" + clen + \"h\" + -clen + \"v3h\" + (clen + 3) + \"ZM\" + (box.l - 3.5) + \",\" + (box.b + 0.5 - clen) + \"h3v\" + clen + \"h\" + clen + \"v3h-\" + (clen + 3) + \"Z\";\n }\n function calcLinks(gd, groups, xaHash, yaHash, exclude) {\n var isSubplotConstrained = false;\n var xLinks = {};\n var yLinks = {};\n var xID, yID, xLinkID, yLinkID;\n var xExclude = (exclude || {}).xaHash;\n var yExclude = (exclude || {}).yaHash;\n for (var i = 0; i < groups.length; i++) {\n var group = groups[i];\n for (xID in xaHash) {\n if (group[xID]) {\n for (xLinkID in group) {\n if (!(exclude && (xExclude[xLinkID] || yExclude[xLinkID])) && !(xLinkID.charAt(0) === \"x\" ? xaHash : yaHash)[xLinkID]) {\n xLinks[xLinkID] = xID;\n }\n }\n for (yID in yaHash) {\n if (!(exclude && (xExclude[yID] || yExclude[yID])) && group[yID]) {\n isSubplotConstrained = true;\n }\n }\n }\n }\n for (yID in yaHash) {\n if (group[yID]) {\n for (yLinkID in group) {\n if (!(exclude && (xExclude[yLinkID] || yExclude[yLinkID])) && !(yLinkID.charAt(0) === \"x\" ? xaHash : yaHash)[yLinkID]) {\n yLinks[yLinkID] = yID;\n }\n }\n }\n }\n }\n if (isSubplotConstrained) {\n Lib.extendFlat(xLinks, yLinks);\n yLinks = {};\n }\n var xaHashLinked = {};\n var xaxesLinked = [];\n for (xLinkID in xLinks) {\n var xa = getFromId(gd, xLinkID);\n xaxesLinked.push(xa);\n xaHashLinked[xa._id] = xa;\n }\n var yaHashLinked = {};\n var yaxesLinked = [];\n for (yLinkID in yLinks) {\n var ya = getFromId(gd, yLinkID);\n yaxesLinked.push(ya);\n yaHashLinked[ya._id] = ya;\n }\n return {\n xaHash: xaHashLinked,\n yaHash: yaHashLinked,\n xaxes: xaxesLinked,\n yaxes: yaxesLinked,\n xLinks,\n yLinks,\n isSubplotConstrained\n };\n }\n function attachWheelEventHandler(element, handler) {\n if (!supportsPassive) {\n if (element.onwheel !== void 0) element.onwheel = handler;\n else if (element.onmousewheel !== void 0) element.onmousewheel = handler;\n else if (!element.isAddedWheelEvent) {\n element.isAddedWheelEvent = true;\n element.addEventListener(\"wheel\", handler, { passive: false });\n }\n } else {\n var wheelEventName = element.onwheel !== void 0 ? \"wheel\" : \"mousewheel\";\n if (element._onwheel) {\n element.removeEventListener(wheelEventName, element._onwheel);\n }\n element._onwheel = handler;\n element.addEventListener(wheelEventName, handler, { passive: false });\n }\n }\n function hashValues(hash) {\n var out = [];\n for (var k in hash) out.push(hash[k]);\n return out;\n }\n module.exports = {\n makeDragBox,\n makeDragger,\n makeRectDragger,\n makeZoombox,\n makeCorners,\n updateZoombox,\n xyCorners,\n transitionZoombox,\n removeZoombox,\n showDoubleClickNotifier,\n attachWheelEventHandler\n };\n }\n });\n\n // src/plots/cartesian/graph_interact.js\n var require_graph_interact = __commonJS({\n \"src/plots/cartesian/graph_interact.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Fx = require_fx();\n var dragElement = require_dragelement();\n var setCursor = require_setcursor();\n var makeDragBox = require_dragbox().makeDragBox;\n var DRAGGERSIZE = require_constants2().DRAGGERSIZE;\n exports.initInteractions = function initInteractions(gd) {\n var fullLayout = gd._fullLayout;\n if (gd._context.staticPlot) {\n d3.select(gd).selectAll(\".drag\").remove();\n return;\n }\n if (!fullLayout._has(\"cartesian\") && !fullLayout._has(\"splom\")) return;\n var subplots = Object.keys(fullLayout._plots || {}).sort(function(a, b) {\n if ((fullLayout._plots[a].mainplot && true) === (fullLayout._plots[b].mainplot && true)) {\n var aParts = a.split(\"y\");\n var bParts = b.split(\"y\");\n return aParts[0] === bParts[0] ? Number(aParts[1] || 1) - Number(bParts[1] || 1) : Number(aParts[0] || 1) - Number(bParts[0] || 1);\n }\n return fullLayout._plots[a].mainplot ? 1 : -1;\n });\n subplots.forEach(function(subplot) {\n var plotinfo = fullLayout._plots[subplot];\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n if (!plotinfo.mainplot) {\n var maindrag = makeDragBox(\n gd,\n plotinfo,\n xa._offset,\n ya._offset,\n xa._length,\n ya._length,\n \"ns\",\n \"ew\"\n );\n maindrag.onmousemove = function(evt) {\n gd._fullLayout._rehover = function() {\n if (gd._fullLayout._hoversubplot === subplot && gd._fullLayout._plots[subplot]) {\n Fx.hover(gd, evt, subplot);\n }\n };\n Fx.hover(gd, evt, subplot);\n gd._fullLayout._lasthover = maindrag;\n gd._fullLayout._hoversubplot = subplot;\n };\n maindrag.onmouseout = function(evt) {\n if (gd._dragging) return;\n gd._fullLayout._hoversubplot = null;\n dragElement.unhover(gd, evt);\n };\n if (gd._context.showAxisDragHandles) {\n makeDragBox(\n gd,\n plotinfo,\n xa._offset - DRAGGERSIZE,\n ya._offset - DRAGGERSIZE,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"n\",\n \"w\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length,\n ya._offset - DRAGGERSIZE,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"n\",\n \"e\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset - DRAGGERSIZE,\n ya._offset + ya._length,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"s\",\n \"w\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length,\n ya._offset + ya._length,\n DRAGGERSIZE,\n DRAGGERSIZE,\n \"s\",\n \"e\"\n );\n }\n }\n if (gd._context.showAxisDragHandles) {\n if (subplot === xa._mainSubplot) {\n var y0 = xa._mainLinePosition;\n if (xa.side === \"top\") y0 -= DRAGGERSIZE;\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length * 0.1,\n y0,\n xa._length * 0.8,\n DRAGGERSIZE,\n \"\",\n \"ew\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset,\n y0,\n xa._length * 0.1,\n DRAGGERSIZE,\n \"\",\n \"w\"\n );\n makeDragBox(\n gd,\n plotinfo,\n xa._offset + xa._length * 0.9,\n y0,\n xa._length * 0.1,\n DRAGGERSIZE,\n \"\",\n \"e\"\n );\n }\n if (subplot === ya._mainSubplot) {\n var x0 = ya._mainLinePosition;\n if (ya.side !== \"right\") x0 -= DRAGGERSIZE;\n makeDragBox(\n gd,\n plotinfo,\n x0,\n ya._offset + ya._length * 0.1,\n DRAGGERSIZE,\n ya._length * 0.8,\n \"ns\",\n \"\"\n );\n makeDragBox(\n gd,\n plotinfo,\n x0,\n ya._offset + ya._length * 0.9,\n DRAGGERSIZE,\n ya._length * 0.1,\n \"s\",\n \"\"\n );\n makeDragBox(\n gd,\n plotinfo,\n x0,\n ya._offset,\n DRAGGERSIZE,\n ya._length * 0.1,\n \"n\",\n \"\"\n );\n }\n }\n });\n var hoverLayer = fullLayout._hoverlayer.node();\n hoverLayer.onmousemove = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.hover(gd, evt, fullLayout._hoversubplot);\n };\n hoverLayer.onclick = function(evt) {\n evt.target = gd._fullLayout._lasthover;\n Fx.click(gd, evt);\n };\n hoverLayer.onmousedown = function(evt) {\n gd._fullLayout._lasthover.onmousedown(evt);\n };\n exports.updateFx(gd);\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var cursor = fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\";\n setCursor(fullLayout._draggers, cursor);\n };\n }\n });\n\n // src/plot_api/container_array_match.js\n var require_container_array_match = __commonJS({\n \"src/plot_api/container_array_match.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n module.exports = function containerArrayMatch(astr) {\n var rootContainers = Registry.layoutArrayContainers;\n var regexpContainers = Registry.layoutArrayRegexes;\n var rootPart = astr.split(\"[\")[0];\n var arrayStr;\n var match;\n for (var i = 0; i < regexpContainers.length; i++) {\n match = astr.match(regexpContainers[i]);\n if (match && match.index === 0) {\n arrayStr = match[0];\n break;\n }\n }\n if (!arrayStr) arrayStr = rootContainers[rootContainers.indexOf(rootPart)];\n if (!arrayStr) return false;\n var tail = astr.substr(arrayStr.length);\n if (!tail) return { array: arrayStr, index: \"\", property: \"\" };\n match = tail.match(/^\\[(0|[1-9][0-9]*)\\](\\.(.+))?$/);\n if (!match) return false;\n return { array: arrayStr, index: Number(match[1]), property: match[3] || \"\" };\n };\n }\n });\n\n // src/plot_api/manage_arrays.js\n var require_manage_arrays = __commonJS({\n \"src/plot_api/manage_arrays.js\"(exports) {\n \"use strict\";\n var isPlainObject = require_is_plain_object();\n var noop = require_noop();\n var Loggers = require_loggers();\n var sorterAsc = require_search().sorterAsc;\n var Registry = require_registry();\n exports.containerArrayMatch = require_container_array_match();\n var isAddVal = exports.isAddVal = function isAddVal2(val) {\n return val === \"add\" || isPlainObject(val);\n };\n var isRemoveVal = exports.isRemoveVal = function isRemoveVal2(val) {\n return val === null || val === \"remove\";\n };\n exports.applyContainerArrayChanges = function applyContainerArrayChanges(gd, np, edits, flags, _nestedProperty) {\n var componentType = np.astr;\n var supplyComponentDefaults = Registry.getComponentMethod(componentType, \"supplyLayoutDefaults\");\n var draw = Registry.getComponentMethod(componentType, \"draw\");\n var drawOne = Registry.getComponentMethod(componentType, \"drawOne\");\n var replotLater = flags.replot || flags.recalc || supplyComponentDefaults === noop || draw === noop;\n var layout = gd.layout;\n var fullLayout = gd._fullLayout;\n if (edits[\"\"]) {\n if (Object.keys(edits).length > 1) {\n Loggers.warn(\n \"Full array edits are incompatible with other edits\",\n componentType\n );\n }\n var fullVal = edits[\"\"][\"\"];\n if (isRemoveVal(fullVal)) np.set(null);\n else if (Array.isArray(fullVal)) np.set(fullVal);\n else {\n Loggers.warn(\"Unrecognized full array edit value\", componentType, fullVal);\n return true;\n }\n if (replotLater) return false;\n supplyComponentDefaults(layout, fullLayout);\n draw(gd);\n return true;\n }\n var componentNums = Object.keys(edits).map(Number).sort(sorterAsc);\n var componentArrayIn = np.get();\n var componentArray = componentArrayIn || [];\n var componentArrayFull = _nestedProperty(fullLayout, componentType).get();\n var deletes = [];\n var firstIndexChange = -1;\n var maxIndex = componentArray.length;\n var i;\n var j;\n var componentNum;\n var objEdits;\n var objKeys;\n var objVal;\n var adding, prefix;\n for (i = 0; i < componentNums.length; i++) {\n componentNum = componentNums[i];\n objEdits = edits[componentNum];\n objKeys = Object.keys(objEdits);\n objVal = objEdits[\"\"], adding = isAddVal(objVal);\n if (componentNum < 0 || componentNum > componentArray.length - (adding ? 0 : 1)) {\n Loggers.warn(\"index out of range\", componentType, componentNum);\n continue;\n }\n if (objVal !== void 0) {\n if (objKeys.length > 1) {\n Loggers.warn(\n \"Insertion & removal are incompatible with edits to the same index.\",\n componentType,\n componentNum\n );\n }\n if (isRemoveVal(objVal)) {\n deletes.push(componentNum);\n } else if (adding) {\n if (objVal === \"add\") objVal = {};\n componentArray.splice(componentNum, 0, objVal);\n if (componentArrayFull) componentArrayFull.splice(componentNum, 0, {});\n } else {\n Loggers.warn(\n \"Unrecognized full object edit value\",\n componentType,\n componentNum,\n objVal\n );\n }\n if (firstIndexChange === -1) firstIndexChange = componentNum;\n } else {\n for (j = 0; j < objKeys.length; j++) {\n prefix = componentType + \"[\" + componentNum + \"].\";\n _nestedProperty(componentArray[componentNum], objKeys[j], prefix).set(objEdits[objKeys[j]]);\n }\n }\n }\n for (i = deletes.length - 1; i >= 0; i--) {\n componentArray.splice(deletes[i], 1);\n if (componentArrayFull) componentArrayFull.splice(deletes[i], 1);\n }\n if (!componentArray.length) np.set(null);\n else if (!componentArrayIn) np.set(componentArray);\n if (replotLater) return false;\n supplyComponentDefaults(layout, fullLayout);\n if (drawOne !== noop) {\n var indicesToDraw;\n if (firstIndexChange === -1) {\n indicesToDraw = componentNums;\n } else {\n maxIndex = Math.max(componentArray.length, maxIndex);\n indicesToDraw = [];\n for (i = 0; i < componentNums.length; i++) {\n componentNum = componentNums[i];\n if (componentNum >= firstIndexChange) break;\n indicesToDraw.push(componentNum);\n }\n for (i = firstIndexChange; i < maxIndex; i++) {\n indicesToDraw.push(i);\n }\n }\n for (i = 0; i < indicesToDraw.length; i++) {\n drawOne(gd, indicesToDraw[i]);\n }\n } else draw(gd);\n return true;\n };\n }\n });\n\n // src/plot_api/helpers.js\n var require_helpers9 = __commonJS({\n \"src/plot_api/helpers.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var m4FromQuat = require_fromQuat();\n var Registry = require_registry();\n var Lib = require_lib();\n var Plots = require_plots();\n var AxisIds = require_axis_ids();\n var Color2 = require_color();\n var cleanId = AxisIds.cleanId;\n var getFromTrace = AxisIds.getFromTrace;\n var traceIs = Registry.traceIs;\n exports.clearPromiseQueue = function(gd) {\n if (Array.isArray(gd._promises) && gd._promises.length > 0) {\n Lib.log(\"Clearing previous rejected promises from queue.\");\n }\n gd._promises = [];\n };\n exports.cleanLayout = function(layout) {\n var i, j;\n if (!layout) layout = {};\n if (layout.xaxis1) {\n if (!layout.xaxis) layout.xaxis = layout.xaxis1;\n delete layout.xaxis1;\n }\n if (layout.yaxis1) {\n if (!layout.yaxis) layout.yaxis = layout.yaxis1;\n delete layout.yaxis1;\n }\n if (layout.scene1) {\n if (!layout.scene) layout.scene = layout.scene1;\n delete layout.scene1;\n }\n var axisAttrRegex = (Plots.subplotsRegistry.cartesian || {}).attrRegex;\n var polarAttrRegex = (Plots.subplotsRegistry.polar || {}).attrRegex;\n var ternaryAttrRegex = (Plots.subplotsRegistry.ternary || {}).attrRegex;\n var sceneAttrRegex = (Plots.subplotsRegistry.gl3d || {}).attrRegex;\n var keys = Object.keys(layout);\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (axisAttrRegex && axisAttrRegex.test(key)) {\n var ax = layout[key];\n if (ax.anchor && ax.anchor !== \"free\") {\n ax.anchor = cleanId(ax.anchor);\n }\n if (ax.overlaying) ax.overlaying = cleanId(ax.overlaying);\n if (!ax.type) {\n if (ax.isdate) ax.type = \"date\";\n else if (ax.islog) ax.type = \"log\";\n else if (ax.isdate === false && ax.islog === false) ax.type = \"linear\";\n }\n if (ax.autorange === \"withzero\" || ax.autorange === \"tozero\") {\n ax.autorange = true;\n ax.rangemode = \"tozero\";\n }\n if (ax.insiderange) delete ax.range;\n delete ax.islog;\n delete ax.isdate;\n delete ax.categories;\n if (emptyContainer(ax, \"domain\")) delete ax.domain;\n }\n }\n var annotationsLen = Array.isArray(layout.annotations) ? layout.annotations.length : 0;\n for (i = 0; i < annotationsLen; i++) {\n var ann = layout.annotations[i];\n if (!Lib.isPlainObject(ann)) continue;\n cleanAxRef(ann, \"xref\");\n cleanAxRef(ann, \"yref\");\n }\n var shapesLen = Array.isArray(layout.shapes) ? layout.shapes.length : 0;\n for (i = 0; i < shapesLen; i++) {\n var shape = layout.shapes[i];\n if (!Lib.isPlainObject(shape)) continue;\n cleanAxRef(shape, \"xref\");\n cleanAxRef(shape, \"yref\");\n }\n var imagesLen = Array.isArray(layout.images) ? layout.images.length : 0;\n for (i = 0; i < imagesLen; i++) {\n var image = layout.images[i];\n if (!Lib.isPlainObject(image)) continue;\n cleanAxRef(image, \"xref\");\n cleanAxRef(image, \"yref\");\n }\n var legend = layout.legend;\n if (legend) {\n if (legend.x > 3) {\n legend.x = 1.02;\n legend.xanchor = \"left\";\n } else if (legend.x < -2) {\n legend.x = -0.02;\n legend.xanchor = \"right\";\n }\n if (legend.y > 3) {\n legend.y = 1.02;\n legend.yanchor = \"bottom\";\n } else if (legend.y < -2) {\n legend.y = -0.02;\n legend.yanchor = \"top\";\n }\n }\n if (layout.dragmode === \"rotate\") layout.dragmode = \"orbit\";\n Color2.clean(layout);\n if (layout.template && layout.template.layout) {\n exports.cleanLayout(layout.template.layout);\n }\n return layout;\n };\n function cleanAxRef(container, attr) {\n var valIn = container[attr];\n var axLetter = attr.charAt(0);\n if (valIn && valIn !== \"paper\") {\n container[attr] = cleanId(valIn, axLetter, true);\n }\n }\n exports.cleanData = function(data) {\n for (var tracei = 0; tracei < data.length; tracei++) {\n var trace = data[tracei];\n var i;\n if (trace.type === \"histogramy\" && \"xbins\" in trace && !(\"ybins\" in trace)) {\n trace.ybins = trace.xbins;\n delete trace.xbins;\n }\n if (trace.type === \"histogramy\") exports.swapXYData(trace);\n if (trace.type === \"histogramx\" || trace.type === \"histogramy\") {\n trace.type = \"histogram\";\n }\n if (\"scl\" in trace && !(\"colorscale\" in trace)) {\n trace.colorscale = trace.scl;\n delete trace.scl;\n }\n if (\"reversescl\" in trace && !(\"reversescale\" in trace)) {\n trace.reversescale = trace.reversescl;\n delete trace.reversescl;\n }\n if (trace.xaxis) trace.xaxis = cleanId(trace.xaxis, \"x\");\n if (trace.yaxis) trace.yaxis = cleanId(trace.yaxis, \"y\");\n if (traceIs(trace, \"gl3d\") && trace.scene) {\n trace.scene = Plots.subplotsRegistry.gl3d.cleanId(trace.scene);\n }\n if (!traceIs(trace, \"pie-like\") && !traceIs(trace, \"bar-like\")) {\n if (Array.isArray(trace.textposition)) {\n for (i = 0; i < trace.textposition.length; i++) {\n trace.textposition[i] = cleanTextPosition(trace.textposition[i]);\n }\n } else if (trace.textposition) {\n trace.textposition = cleanTextPosition(trace.textposition);\n }\n }\n var _module = Registry.getModule(trace);\n if (_module && _module.colorbar) {\n var containerName = _module.colorbar.container;\n var container = containerName ? trace[containerName] : trace;\n if (container && container.colorscale) {\n if (container.colorscale === \"YIGnBu\") container.colorscale = \"YlGnBu\";\n if (container.colorscale === \"YIOrRd\") container.colorscale = \"YlOrRd\";\n }\n }\n if (trace.type === \"surface\" && Lib.isPlainObject(trace.contours)) {\n var dims = [\"x\", \"y\", \"z\"];\n for (i = 0; i < dims.length; i++) {\n var opts = trace.contours[dims[i]];\n if (!Lib.isPlainObject(opts)) continue;\n if (opts.highlightColor) {\n opts.highlightcolor = opts.highlightColor;\n delete opts.highlightColor;\n }\n if (opts.highlightWidth) {\n opts.highlightwidth = opts.highlightWidth;\n delete opts.highlightWidth;\n }\n }\n }\n if (trace.type === \"candlestick\" || trace.type === \"ohlc\") {\n var increasingShowlegend = (trace.increasing || {}).showlegend !== false;\n var decreasingShowlegend = (trace.decreasing || {}).showlegend !== false;\n var increasingName = cleanFinanceDir(trace.increasing);\n var decreasingName = cleanFinanceDir(trace.decreasing);\n if (increasingName !== false && decreasingName !== false) {\n var newName = commonPrefix(\n increasingName,\n decreasingName,\n increasingShowlegend,\n decreasingShowlegend\n );\n if (newName) trace.name = newName;\n } else if ((increasingName || decreasingName) && !trace.name) {\n trace.name = increasingName || decreasingName;\n }\n }\n if (emptyContainer(trace, \"line\")) delete trace.line;\n if (\"marker\" in trace) {\n if (emptyContainer(trace.marker, \"line\")) delete trace.marker.line;\n if (emptyContainer(trace, \"marker\")) delete trace.marker;\n }\n Color2.clean(trace);\n if (trace.autobinx) {\n delete trace.autobinx;\n delete trace.xbins;\n }\n if (trace.autobiny) {\n delete trace.autobiny;\n delete trace.ybins;\n }\n }\n };\n function cleanFinanceDir(dirContainer) {\n if (!Lib.isPlainObject(dirContainer)) return false;\n var dirName = dirContainer.name;\n delete dirContainer.name;\n delete dirContainer.showlegend;\n return (typeof dirName === \"string\" || typeof dirName === \"number\") && String(dirName);\n }\n function commonPrefix(name1, name2, show1, show2) {\n if (show1 && !show2) return name1;\n if (show2 && !show1) return name2;\n if (!name1.trim()) return name2;\n if (!name2.trim()) return name1;\n var minLen = Math.min(name1.length, name2.length);\n var i;\n for (i = 0; i < minLen; i++) {\n if (name1.charAt(i) !== name2.charAt(i)) break;\n }\n var out = name1.substr(0, i);\n return out.trim();\n }\n function cleanTextPosition(textposition) {\n var posY = \"middle\";\n var posX = \"center\";\n if (typeof textposition === \"string\") {\n if (textposition.indexOf(\"top\") !== -1) posY = \"top\";\n else if (textposition.indexOf(\"bottom\") !== -1) posY = \"bottom\";\n if (textposition.indexOf(\"left\") !== -1) posX = \"left\";\n else if (textposition.indexOf(\"right\") !== -1) posX = \"right\";\n }\n return posY + \" \" + posX;\n }\n function emptyContainer(outer, innerStr) {\n return innerStr in outer && typeof outer[innerStr] === \"object\" && Object.keys(outer[innerStr]).length === 0;\n }\n exports.swapXYData = function(trace) {\n var i;\n Lib.swapAttrs(trace, [\"?\", \"?0\", \"d?\", \"?bins\", \"nbins?\", \"autobin?\", \"?src\", \"error_?\"]);\n if (Array.isArray(trace.z) && Array.isArray(trace.z[0])) {\n if (trace.transpose) delete trace.transpose;\n else trace.transpose = true;\n }\n if (trace.error_x && trace.error_y) {\n var errorY = trace.error_y;\n var copyYstyle = \"copy_ystyle\" in errorY ? errorY.copy_ystyle : !(errorY.color || errorY.thickness || errorY.width);\n Lib.swapAttrs(trace, [\"error_?.copy_ystyle\"]);\n if (copyYstyle) {\n Lib.swapAttrs(trace, [\"error_?.color\", \"error_?.thickness\", \"error_?.width\"]);\n }\n }\n if (typeof trace.hoverinfo === \"string\") {\n var hoverInfoParts = trace.hoverinfo.split(\"+\");\n for (i = 0; i < hoverInfoParts.length; i++) {\n if (hoverInfoParts[i] === \"x\") hoverInfoParts[i] = \"y\";\n else if (hoverInfoParts[i] === \"y\") hoverInfoParts[i] = \"x\";\n }\n trace.hoverinfo = hoverInfoParts.join(\"+\");\n }\n };\n exports.coerceTraceIndices = function(gd, traceIndices) {\n if (isNumeric(traceIndices)) {\n return [traceIndices];\n } else if (!Array.isArray(traceIndices) || !traceIndices.length) {\n return gd.data.map(function(_, i2) {\n return i2;\n });\n } else if (Array.isArray(traceIndices)) {\n var traceIndicesOut = [];\n for (var i = 0; i < traceIndices.length; i++) {\n if (Lib.isIndex(traceIndices[i], gd.data.length)) {\n traceIndicesOut.push(traceIndices[i]);\n } else {\n Lib.warn(\"trace index (\", traceIndices[i], \") is not a number or is out of bounds\");\n }\n }\n return traceIndicesOut;\n }\n return traceIndices;\n };\n exports.manageArrayContainers = function(np, newVal, undoit) {\n var obj = np.obj;\n var parts = np.parts;\n var pLength = parts.length;\n var pLast = parts[pLength - 1];\n var pLastIsNumber = isNumeric(pLast);\n if (pLastIsNumber && newVal === null) {\n var contPath = parts.slice(0, pLength - 1).join(\".\");\n var cont = Lib.nestedProperty(obj, contPath).get();\n cont.splice(pLast, 1);\n } else if (pLastIsNumber && np.get() === void 0) {\n if (np.get() === void 0) undoit[np.astr] = null;\n np.set(newVal);\n } else {\n np.set(newVal);\n }\n };\n var ATTR_TAIL_RE = /(\\.[^\\[\\]\\.]+|\\[[^\\[\\]\\.]+\\])$/;\n function getParent(attr) {\n var tail = attr.search(ATTR_TAIL_RE);\n if (tail > 0) return attr.substr(0, tail);\n }\n exports.hasParent = function(aobj, attr) {\n var attrParent = getParent(attr);\n while (attrParent) {\n if (attrParent in aobj) return true;\n attrParent = getParent(attrParent);\n }\n return false;\n };\n var axLetters = [\"x\", \"y\", \"z\"];\n exports.clearAxisTypes = function(gd, traces, layoutUpdate) {\n for (var i = 0; i < traces.length; i++) {\n var trace = gd._fullData[i];\n for (var j = 0; j < 3; j++) {\n var ax = getFromTrace(gd, trace, axLetters[j]);\n if (ax && ax.type !== \"log\") {\n var axAttr = ax._name;\n var sceneName = ax._id.substr(1);\n if (sceneName.substr(0, 5) === \"scene\") {\n if (layoutUpdate[sceneName] !== void 0) continue;\n axAttr = sceneName + \".\" + axAttr;\n }\n var typeAttr = axAttr + \".type\";\n if (layoutUpdate[axAttr] === void 0 && layoutUpdate[typeAttr] === void 0) {\n Lib.nestedProperty(gd.layout, typeAttr).set(null);\n }\n }\n }\n }\n };\n }\n });\n\n // src/plot_api/plot_api.js\n var require_plot_api = __commonJS({\n \"src/plot_api/plot_api.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var hasHover = require_has_hover();\n var Lib = require_lib();\n var nestedProperty = Lib.nestedProperty;\n var Events = require_events2();\n var Queue = require_queue();\n var Registry = require_registry();\n var PlotSchema = require_plot_schema();\n var Plots = require_plots();\n var Axes = require_axes();\n var handleRangeDefaults = require_range_defaults();\n var cartesianLayoutAttributes = require_layout_attributes4();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var initInteractions = require_graph_interact().initInteractions;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var clearOutline = require_selections().clearOutline;\n var dfltConfig = require_plot_config().dfltConfig;\n var manageArrays = require_manage_arrays();\n var helpers = require_helpers9();\n var subroutines = require_subroutines();\n var editTypes = require_edit_types();\n var AX_NAME_PATTERN = require_constants2().AX_NAME_PATTERN;\n var numericNameWarningCount = 0;\n var numericNameWarningCountLimit = 5;\n function _doPlot(gd, data, layout, config) {\n var frames;\n gd = Lib.getGraphDiv(gd);\n Events.init(gd);\n if (Lib.isPlainObject(data)) {\n var obj = data;\n data = obj.data;\n layout = obj.layout;\n config = obj.config;\n frames = obj.frames;\n }\n var okToPlot = Events.triggerHandler(gd, \"plotly_beforeplot\", [data, layout, config]);\n if (okToPlot === false) return Promise.reject();\n if (!data && !layout && !Lib.isPlotDiv(gd)) {\n Lib.warn(\"Calling _doPlot as if redrawing but this container doesn't yet have a plot.\", gd);\n }\n function addFrames2() {\n if (frames) {\n return exports.addFrames(gd, frames);\n }\n }\n setPlotContext(gd, config);\n if (!layout) layout = {};\n d3.select(gd).classed(\"js-plotly-plot\", true);\n Drawing.makeTester();\n if (!Array.isArray(gd._promises)) gd._promises = [];\n var graphWasEmpty = (gd.data || []).length === 0 && Array.isArray(data);\n if (Array.isArray(data)) {\n helpers.cleanData(data);\n if (graphWasEmpty) gd.data = data;\n else gd.data.push.apply(gd.data, data);\n gd.empty = false;\n }\n if (!gd.layout || graphWasEmpty) {\n gd.layout = helpers.cleanLayout(layout);\n }\n Plots.supplyDefaults(gd);\n var fullLayout = gd._fullLayout;\n var hasCartesian = fullLayout._has(\"cartesian\");\n fullLayout._replotting = true;\n if (graphWasEmpty || fullLayout._shouldCreateBgLayer) {\n makePlotFramework(gd);\n if (fullLayout._shouldCreateBgLayer) {\n delete fullLayout._shouldCreateBgLayer;\n }\n }\n Drawing.initGradients(gd);\n Drawing.initPatterns(gd);\n if (graphWasEmpty) Axes.saveShowSpikeInitial(gd);\n var recalc = !gd.calcdata || gd.calcdata.length !== (gd._fullData || []).length;\n if (recalc) Plots.doCalcdata(gd);\n for (var i = 0; i < gd.calcdata.length; i++) {\n gd.calcdata[i][0].trace = gd._fullData[i];\n }\n if (gd._context.responsive) {\n if (!gd._responsiveChartHandler) {\n gd._responsiveChartHandler = function() {\n if (!Lib.isHidden(gd)) Plots.resize(gd);\n };\n window.addEventListener(\"resize\", gd._responsiveChartHandler);\n }\n } else {\n Lib.clearResponsive(gd);\n }\n var oldMargins = Lib.extendFlat({}, fullLayout._size);\n var drawFrameworkCalls = 0;\n function drawFramework() {\n var basePlotModules = fullLayout._basePlotModules;\n for (var i2 = 0; i2 < basePlotModules.length; i2++) {\n if (basePlotModules[i2].drawFramework) {\n basePlotModules[i2].drawFramework(gd);\n }\n }\n if (!fullLayout._glcanvas && fullLayout._has(\"gl\")) {\n fullLayout._glcanvas = fullLayout._glcontainer.selectAll(\".gl-canvas\").data([{\n key: \"contextLayer\",\n context: true,\n pick: false\n }, {\n key: \"focusLayer\",\n context: false,\n pick: false\n }, {\n key: \"pickLayer\",\n context: false,\n pick: true\n }], function(d) {\n return d.key;\n });\n fullLayout._glcanvas.enter().append(\"canvas\").attr(\"class\", function(d) {\n return \"gl-canvas gl-canvas-\" + d.key.replace(\"Layer\", \"\");\n }).style({\n position: \"absolute\",\n top: 0,\n left: 0,\n overflow: \"visible\",\n \"pointer-events\": \"none\"\n });\n }\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n if (fullLayout._glcanvas) {\n fullLayout._glcanvas.attr(\"width\", fullLayout.width * plotGlPixelRatio).attr(\"height\", fullLayout.height * plotGlPixelRatio).style(\"width\", fullLayout.width + \"px\").style(\"height\", fullLayout.height + \"px\");\n var regl = fullLayout._glcanvas.data()[0].regl;\n if (regl) {\n if (Math.floor(fullLayout.width * plotGlPixelRatio) !== regl._gl.drawingBufferWidth || Math.floor(fullLayout.height * plotGlPixelRatio) !== regl._gl.drawingBufferHeight) {\n var msg = \"WebGL context buffer and canvas dimensions do not match due to browser/WebGL bug.\";\n if (drawFrameworkCalls) {\n Lib.error(msg);\n } else {\n Lib.log(msg + \" Clearing graph and plotting again.\");\n Plots.cleanPlot([], {}, gd._fullData, fullLayout);\n Plots.supplyDefaults(gd);\n fullLayout = gd._fullLayout;\n Plots.doCalcdata(gd);\n drawFrameworkCalls++;\n return drawFramework();\n }\n }\n }\n }\n if (fullLayout.modebar.orientation === \"h\") {\n fullLayout._modebardiv.style(\"height\", null).style(\"width\", \"100%\");\n } else {\n fullLayout._modebardiv.style(\"width\", null).style(\"height\", fullLayout.height + \"px\");\n }\n return Plots.previousPromises(gd);\n }\n function marginPushers() {\n Plots.clearAutoMarginIds(gd);\n subroutines.drawMarginPushers(gd);\n Axes.allowAutoMargin(gd);\n if (gd._fullLayout.title.text && gd._fullLayout.title.automargin) Plots.allowAutoMargin(gd, \"title.automargin\");\n if (fullLayout._has(\"pie\")) {\n var fullData = gd._fullData;\n for (var i2 = 0; i2 < fullData.length; i2++) {\n var trace = fullData[i2];\n if (trace.type === \"pie\" && trace.automargin) {\n Plots.allowAutoMargin(gd, \"pie.\" + trace.uid + \".automargin\");\n }\n }\n }\n Plots.doAutoMargin(gd);\n return Plots.previousPromises(gd);\n }\n function marginPushersAgain() {\n if (!Plots.didMarginChange(oldMargins, fullLayout._size)) return;\n return Lib.syncOrAsync([\n marginPushers,\n subroutines.layoutStyles\n ], gd);\n }\n function positionAndAutorange() {\n if (!recalc) {\n doAutoRangeAndConstraints();\n return;\n }\n return Lib.syncOrAsync([\n Registry.getComponentMethod(\"shapes\", \"calcAutorange\"),\n Registry.getComponentMethod(\"annotations\", \"calcAutorange\"),\n doAutoRangeAndConstraints\n ], gd);\n }\n function doAutoRangeAndConstraints() {\n if (gd._transitioning) return;\n subroutines.doAutoRangeAndConstraints(gd);\n if (graphWasEmpty) Axes.saveRangeInitial(gd);\n Registry.getComponentMethod(\"rangeslider\", \"calcAutorange\")(gd);\n }\n function drawAxes() {\n return Axes.draw(gd, graphWasEmpty ? \"\" : \"redraw\");\n }\n var seq = [\n Plots.previousPromises,\n addFrames2,\n drawFramework,\n marginPushers,\n marginPushersAgain\n ];\n if (hasCartesian) seq.push(positionAndAutorange);\n seq.push(subroutines.layoutStyles);\n if (hasCartesian) {\n seq.push(\n drawAxes,\n function insideTickLabelsAutorange(gd2) {\n var insideTickLabelsUpdaterange = gd2._fullLayout._insideTickLabelsUpdaterange;\n if (insideTickLabelsUpdaterange) {\n gd2._fullLayout._insideTickLabelsUpdaterange = void 0;\n return relayout(gd2, insideTickLabelsUpdaterange).then(function() {\n Axes.saveRangeInitial(gd2, true);\n });\n }\n }\n );\n }\n seq.push(\n subroutines.drawData,\n subroutines.finalDraw,\n initInteractions,\n Plots.addLinks,\n Plots.rehover,\n Plots.redrag,\n Plots.reselect,\n // TODO: doAutoMargin is only needed here for axis automargin, which\n // happens outside of marginPushers where all the other automargins are\n // calculated. Would be much better to separate margin calculations from\n // component drawing - see https://github.com/plotly/plotly.js/issues/2704\n Plots.doAutoMargin,\n Plots.previousPromises\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve();\n return plotDone.then(function() {\n emitAfterPlot(gd);\n return gd;\n });\n }\n function emitAfterPlot(gd) {\n var fullLayout = gd._fullLayout;\n if (fullLayout._redrawFromAutoMarginCount) {\n fullLayout._redrawFromAutoMarginCount--;\n } else {\n gd.emit(\"plotly_afterplot\");\n }\n }\n function setPlotConfig(obj) {\n return Lib.extendFlat(dfltConfig, obj);\n }\n function setBackground(gd, bgColor) {\n try {\n gd._fullLayout._paper.style(\"background\", bgColor);\n } catch (e) {\n Lib.error(e);\n }\n }\n function opaqueSetBackground(gd, bgColor) {\n var blend = Color2.combine(bgColor, \"white\");\n setBackground(gd, blend);\n }\n function setPlotContext(gd, config) {\n if (!gd._context) {\n gd._context = Lib.extendDeep({}, dfltConfig);\n var base = d3.select(\"base\");\n gd._context._baseUrl = base.size() && base.attr(\"href\") ? window.location.href.split(\"#\")[0] : \"\";\n }\n var context = gd._context;\n var i, keys, key;\n if (config) {\n keys = Object.keys(config);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n if (key === \"editable\" || key === \"edits\") continue;\n if (key in context) {\n if (key === \"setBackground\" && config[key] === \"opaque\") {\n context[key] = opaqueSetBackground;\n } else {\n context[key] = config[key];\n }\n }\n }\n var editable = config.editable;\n if (editable !== void 0) {\n context.editable = editable;\n keys = Object.keys(context.edits);\n for (i = 0; i < keys.length; i++) {\n context.edits[keys[i]] = editable;\n }\n }\n if (config.edits) {\n keys = Object.keys(config.edits);\n for (i = 0; i < keys.length; i++) {\n key = keys[i];\n if (key in context.edits) {\n context.edits[key] = config.edits[key];\n }\n }\n }\n context._exportedPlot = config._exportedPlot;\n }\n if (context.staticPlot) {\n context.editable = false;\n context.edits = {};\n context.autosizable = false;\n context.scrollZoom = false;\n context.doubleClick = false;\n context.showTips = false;\n context.showLink = false;\n context.displayModeBar = false;\n }\n if (context.displayModeBar === \"hover\" && !hasHover) {\n context.displayModeBar = true;\n }\n if (context.setBackground === \"transparent\" || typeof context.setBackground !== \"function\") {\n context.setBackground = setBackground;\n }\n context._hasZeroHeight = context._hasZeroHeight || gd.clientHeight === 0;\n context._hasZeroWidth = context._hasZeroWidth || gd.clientWidth === 0;\n var szIn = context.scrollZoom;\n var szOut = context._scrollZoom = {};\n if (szIn === true) {\n szOut.cartesian = 1;\n szOut.gl3d = 1;\n szOut.geo = 1;\n szOut.mapbox = 1;\n szOut.map = 1;\n } else if (typeof szIn === \"string\") {\n var parts = szIn.split(\"+\");\n for (i = 0; i < parts.length; i++) {\n szOut[parts[i]] = 1;\n }\n } else if (szIn !== false) {\n szOut.gl3d = 1;\n szOut.geo = 1;\n szOut.mapbox = 1;\n szOut.map = 1;\n }\n }\n function redraw(gd) {\n gd = Lib.getGraphDiv(gd);\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\"This element is not a Plotly plot: \" + gd);\n }\n helpers.cleanData(gd.data);\n helpers.cleanLayout(gd.layout);\n gd.calcdata = void 0;\n return exports._doPlot(gd).then(function() {\n gd.emit(\"plotly_redraw\");\n return gd;\n });\n }\n function newPlot(gd, data, layout, config) {\n gd = Lib.getGraphDiv(gd);\n Plots.cleanPlot([], {}, gd._fullData || [], gd._fullLayout || {});\n Plots.purge(gd);\n return exports._doPlot(gd, data, layout, config);\n }\n function positivifyIndices(indices, maxIndex) {\n var parentLength = maxIndex + 1;\n var positiveIndices = [];\n var i;\n var index;\n for (i = 0; i < indices.length; i++) {\n index = indices[i];\n if (index < 0) {\n positiveIndices.push(parentLength + index);\n } else {\n positiveIndices.push(index);\n }\n }\n return positiveIndices;\n }\n function assertIndexArray(gd, indices, arrayName) {\n var i, index;\n for (i = 0; i < indices.length; i++) {\n index = indices[i];\n if (index !== parseInt(index, 10)) {\n throw new Error(\"all values in \" + arrayName + \" must be integers\");\n }\n if (index >= gd.data.length || index < -gd.data.length) {\n throw new Error(arrayName + \" must be valid indices for gd.data.\");\n }\n if (indices.indexOf(index, i + 1) > -1 || index >= 0 && indices.indexOf(-gd.data.length + index) > -1 || index < 0 && indices.indexOf(gd.data.length + index) > -1) {\n throw new Error(\"each index in \" + arrayName + \" must be unique.\");\n }\n }\n }\n function checkMoveTracesArgs(gd, currentIndices, newIndices) {\n if (!Array.isArray(gd.data)) {\n throw new Error(\"gd.data must be an array.\");\n }\n if (typeof currentIndices === \"undefined\") {\n throw new Error(\"currentIndices is a required argument.\");\n } else if (!Array.isArray(currentIndices)) {\n currentIndices = [currentIndices];\n }\n assertIndexArray(gd, currentIndices, \"currentIndices\");\n if (typeof newIndices !== \"undefined\" && !Array.isArray(newIndices)) {\n newIndices = [newIndices];\n }\n if (typeof newIndices !== \"undefined\") {\n assertIndexArray(gd, newIndices, \"newIndices\");\n }\n if (typeof newIndices !== \"undefined\" && currentIndices.length !== newIndices.length) {\n throw new Error(\"current and new indices must be of equal length.\");\n }\n }\n function checkAddTracesArgs(gd, traces, newIndices) {\n var i, value;\n if (!Array.isArray(gd.data)) {\n throw new Error(\"gd.data must be an array.\");\n }\n if (typeof traces === \"undefined\") {\n throw new Error(\"traces must be defined.\");\n }\n if (!Array.isArray(traces)) {\n traces = [traces];\n }\n for (i = 0; i < traces.length; i++) {\n value = traces[i];\n if (typeof value !== \"object\" || (Array.isArray(value) || value === null)) {\n throw new Error(\"all values in traces array must be non-array objects\");\n }\n }\n if (typeof newIndices !== \"undefined\" && !Array.isArray(newIndices)) {\n newIndices = [newIndices];\n }\n if (typeof newIndices !== \"undefined\" && newIndices.length !== traces.length) {\n throw new Error(\n \"if indices is specified, traces.length must equal indices.length\"\n );\n }\n }\n function assertExtendTracesArgs(gd, update2, indices, maxPoints) {\n var maxPointsIsObject = Lib.isPlainObject(maxPoints);\n if (!Array.isArray(gd.data)) {\n throw new Error(\"gd.data must be an array\");\n }\n if (!Lib.isPlainObject(update2)) {\n throw new Error(\"update must be a key:value object\");\n }\n if (typeof indices === \"undefined\") {\n throw new Error(\"indices must be an integer or array of integers\");\n }\n assertIndexArray(gd, indices, \"indices\");\n for (var key in update2) {\n if (!Array.isArray(update2[key]) || update2[key].length !== indices.length) {\n throw new Error(\"attribute \" + key + \" must be an array of length equal to indices array length\");\n }\n if (maxPointsIsObject && (!(key in maxPoints) || !Array.isArray(maxPoints[key]) || maxPoints[key].length !== update2[key].length)) {\n throw new Error(\"when maxPoints is set as a key:value object it must contain a 1:1 corrispondence with the keys and number of traces in the update object\");\n }\n }\n }\n function getExtendProperties(gd, update2, indices, maxPoints) {\n var maxPointsIsObject = Lib.isPlainObject(maxPoints);\n var updateProps = [];\n var trace, target, prop, insert, maxp;\n if (!Array.isArray(indices)) indices = [indices];\n indices = positivifyIndices(indices, gd.data.length - 1);\n for (var key in update2) {\n for (var j = 0; j < indices.length; j++) {\n trace = gd.data[indices[j]];\n prop = nestedProperty(trace, key);\n target = prop.get();\n insert = update2[key][j];\n if (!Lib.isArrayOrTypedArray(insert)) {\n throw new Error(\"attribute: \" + key + \" index: \" + j + \" must be an array\");\n }\n if (!Lib.isArrayOrTypedArray(target)) {\n throw new Error(\"cannot extend missing or non-array attribute: \" + key);\n }\n if (target.constructor !== insert.constructor) {\n throw new Error(\"cannot extend array with an array of a different type: \" + key);\n }\n maxp = maxPointsIsObject ? maxPoints[key][j] : maxPoints;\n if (!isNumeric(maxp)) maxp = -1;\n updateProps.push({\n prop,\n target,\n insert,\n maxp: Math.floor(maxp)\n });\n }\n }\n return updateProps;\n }\n function spliceTraces(gd, update2, indices, maxPoints, updateArray) {\n assertExtendTracesArgs(gd, update2, indices, maxPoints);\n var updateProps = getExtendProperties(gd, update2, indices, maxPoints);\n var undoUpdate = {};\n var undoPoints = {};\n for (var i = 0; i < updateProps.length; i++) {\n var prop = updateProps[i].prop;\n var maxp = updateProps[i].maxp;\n var out = updateArray(updateProps[i].target, updateProps[i].insert, maxp);\n prop.set(out[0]);\n if (!Array.isArray(undoUpdate[prop.astr])) undoUpdate[prop.astr] = [];\n undoUpdate[prop.astr].push(out[1]);\n if (!Array.isArray(undoPoints[prop.astr])) undoPoints[prop.astr] = [];\n undoPoints[prop.astr].push(updateProps[i].target.length);\n }\n return { update: undoUpdate, maxPoints: undoPoints };\n }\n function concatTypedArray(arr0, arr1) {\n var arr2 = new arr0.constructor(arr0.length + arr1.length);\n arr2.set(arr0);\n arr2.set(arr1, arr0.length);\n return arr2;\n }\n function extendTraces(gd, update2, indices, maxPoints) {\n gd = Lib.getGraphDiv(gd);\n function updateArray(target, insert, maxp) {\n var newArray, remainder;\n if (Lib.isTypedArray(target)) {\n if (maxp < 0) {\n var none = new target.constructor(0);\n var both = concatTypedArray(target, insert);\n if (maxp < 0) {\n newArray = both;\n remainder = none;\n } else {\n newArray = none;\n remainder = both;\n }\n } else {\n newArray = new target.constructor(maxp);\n remainder = new target.constructor(target.length + insert.length - maxp);\n if (maxp === insert.length) {\n newArray.set(insert);\n remainder.set(target);\n } else if (maxp < insert.length) {\n var numberOfItemsFromInsert = insert.length - maxp;\n newArray.set(insert.subarray(numberOfItemsFromInsert));\n remainder.set(target);\n remainder.set(insert.subarray(0, numberOfItemsFromInsert), target.length);\n } else {\n var numberOfItemsFromTarget = maxp - insert.length;\n var targetBegin = target.length - numberOfItemsFromTarget;\n newArray.set(target.subarray(targetBegin));\n newArray.set(insert, numberOfItemsFromTarget);\n remainder.set(target.subarray(0, targetBegin));\n }\n }\n } else {\n newArray = target.concat(insert);\n remainder = maxp >= 0 && maxp < newArray.length ? newArray.splice(0, newArray.length - maxp) : [];\n }\n return [newArray, remainder];\n }\n var undo = spliceTraces(gd, update2, indices, maxPoints, updateArray);\n var promise = exports.redraw(gd);\n var undoArgs = [gd, undo.update, indices, undo.maxPoints];\n Queue.add(gd, exports.prependTraces, undoArgs, extendTraces, arguments);\n return promise;\n }\n function prependTraces(gd, update2, indices, maxPoints) {\n gd = Lib.getGraphDiv(gd);\n function updateArray(target, insert, maxp) {\n var newArray, remainder;\n if (Lib.isTypedArray(target)) {\n if (maxp <= 0) {\n var none = new target.constructor(0);\n var both = concatTypedArray(insert, target);\n if (maxp < 0) {\n newArray = both;\n remainder = none;\n } else {\n newArray = none;\n remainder = both;\n }\n } else {\n newArray = new target.constructor(maxp);\n remainder = new target.constructor(target.length + insert.length - maxp);\n if (maxp === insert.length) {\n newArray.set(insert);\n remainder.set(target);\n } else if (maxp < insert.length) {\n var numberOfItemsFromInsert = insert.length - maxp;\n newArray.set(insert.subarray(0, numberOfItemsFromInsert));\n remainder.set(insert.subarray(numberOfItemsFromInsert));\n remainder.set(target, numberOfItemsFromInsert);\n } else {\n var numberOfItemsFromTarget = maxp - insert.length;\n newArray.set(insert);\n newArray.set(target.subarray(0, numberOfItemsFromTarget), insert.length);\n remainder.set(target.subarray(numberOfItemsFromTarget));\n }\n }\n } else {\n newArray = insert.concat(target);\n remainder = maxp >= 0 && maxp < newArray.length ? newArray.splice(maxp, newArray.length) : [];\n }\n return [newArray, remainder];\n }\n var undo = spliceTraces(gd, update2, indices, maxPoints, updateArray);\n var promise = exports.redraw(gd);\n var undoArgs = [gd, undo.update, indices, undo.maxPoints];\n Queue.add(gd, exports.extendTraces, undoArgs, prependTraces, arguments);\n return promise;\n }\n function addTraces(gd, traces, newIndices) {\n gd = Lib.getGraphDiv(gd);\n var currentIndices = [];\n var undoFunc = exports.deleteTraces;\n var redoFunc = addTraces;\n var undoArgs = [gd, currentIndices];\n var redoArgs = [gd, traces];\n var i;\n var promise;\n checkAddTracesArgs(gd, traces, newIndices);\n if (!Array.isArray(traces)) {\n traces = [traces];\n }\n traces = traces.map(function(trace) {\n return Lib.extendFlat({}, trace);\n });\n helpers.cleanData(traces);\n for (i = 0; i < traces.length; i++) {\n gd.data.push(traces[i]);\n }\n for (i = 0; i < traces.length; i++) {\n currentIndices.push(-traces.length + i);\n }\n if (typeof newIndices === \"undefined\") {\n promise = exports.redraw(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return promise;\n }\n if (!Array.isArray(newIndices)) {\n newIndices = [newIndices];\n }\n try {\n checkMoveTracesArgs(gd, currentIndices, newIndices);\n } catch (error) {\n gd.data.splice(gd.data.length - traces.length, traces.length);\n throw error;\n }\n Queue.startSequence(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n promise = exports.moveTraces(gd, currentIndices, newIndices);\n Queue.stopSequence(gd);\n return promise;\n }\n function deleteTraces(gd, indices) {\n gd = Lib.getGraphDiv(gd);\n var traces = [];\n var undoFunc = exports.addTraces;\n var redoFunc = deleteTraces;\n var undoArgs = [gd, traces, indices];\n var redoArgs = [gd, indices];\n var i;\n var deletedTrace;\n if (typeof indices === \"undefined\") {\n throw new Error(\"indices must be an integer or array of integers.\");\n } else if (!Array.isArray(indices)) {\n indices = [indices];\n }\n assertIndexArray(gd, indices, \"indices\");\n indices = positivifyIndices(indices, gd.data.length - 1);\n indices.sort(Lib.sorterDes);\n for (i = 0; i < indices.length; i += 1) {\n deletedTrace = gd.data.splice(indices[i], 1)[0];\n traces.push(deletedTrace);\n }\n var promise = exports.redraw(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return promise;\n }\n function moveTraces(gd, currentIndices, newIndices) {\n gd = Lib.getGraphDiv(gd);\n var newData = [];\n var movingTraceMap = [];\n var undoFunc = moveTraces;\n var redoFunc = moveTraces;\n var undoArgs = [gd, newIndices, currentIndices];\n var redoArgs = [gd, currentIndices, newIndices];\n var i;\n checkMoveTracesArgs(gd, currentIndices, newIndices);\n currentIndices = Array.isArray(currentIndices) ? currentIndices : [currentIndices];\n if (typeof newIndices === \"undefined\") {\n newIndices = [];\n for (i = 0; i < currentIndices.length; i++) {\n newIndices.push(-currentIndices.length + i);\n }\n }\n newIndices = Array.isArray(newIndices) ? newIndices : [newIndices];\n currentIndices = positivifyIndices(currentIndices, gd.data.length - 1);\n newIndices = positivifyIndices(newIndices, gd.data.length - 1);\n for (i = 0; i < gd.data.length; i++) {\n if (currentIndices.indexOf(i) === -1) {\n newData.push(gd.data[i]);\n }\n }\n for (i = 0; i < currentIndices.length; i++) {\n movingTraceMap.push({ newIndex: newIndices[i], trace: gd.data[currentIndices[i]] });\n }\n movingTraceMap.sort(function(a, b) {\n return a.newIndex - b.newIndex;\n });\n for (i = 0; i < movingTraceMap.length; i += 1) {\n newData.splice(movingTraceMap[i].newIndex, 0, movingTraceMap[i].trace);\n }\n gd.data = newData;\n var promise = exports.redraw(gd);\n Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return promise;\n }\n function restyle(gd, astr, val, _traces) {\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n var aobj = {};\n if (typeof astr === \"string\") aobj[astr] = val;\n else if (Lib.isPlainObject(astr)) {\n aobj = Lib.extendFlat({}, astr);\n if (_traces === void 0) _traces = val;\n } else {\n Lib.warn(\"Restyle fail.\", astr, val, _traces);\n return Promise.reject();\n }\n if (Object.keys(aobj).length) gd.changed = true;\n var traces = helpers.coerceTraceIndices(gd, _traces);\n var specs = _restyle(gd, aobj, traces);\n var flags = specs.flags;\n if (flags.calc) gd.calcdata = void 0;\n if (flags.clearAxisTypes) helpers.clearAxisTypes(gd, traces, {});\n var seq = [];\n if (flags.fullReplot) {\n seq.push(exports._doPlot);\n } else {\n seq.push(Plots.previousPromises);\n Plots.supplyDefaults(gd);\n if (flags.markerSize) {\n Plots.doCalcdata(gd);\n addAxRangeSequence(seq);\n }\n if (flags.style) seq.push(subroutines.doTraceStyle);\n if (flags.colorbars) seq.push(subroutines.doColorBars);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n Queue.add(\n gd,\n restyle,\n [gd, specs.undoit, specs.traces],\n restyle,\n [gd, specs.redoit, specs.traces]\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve();\n return plotDone.then(function() {\n gd.emit(\"plotly_restyle\", specs.eventData);\n return gd;\n });\n }\n function undefinedToNull(val) {\n if (val === void 0) return null;\n return val;\n }\n function makeNP(preGUI, guiEditFlag) {\n if (!guiEditFlag) return nestedProperty;\n return function(container, attr, prefix) {\n var np = nestedProperty(container, attr);\n var npSet = np.set;\n np.set = function(val) {\n var fullAttr = (prefix || \"\") + attr;\n storeCurrent(fullAttr, np.get(), val, preGUI);\n npSet(val);\n };\n return np;\n };\n }\n function storeCurrent(attr, val, newVal, preGUI) {\n if (Array.isArray(val) || Array.isArray(newVal)) {\n var arrayVal = Array.isArray(val) ? val : [];\n var arrayNew = Array.isArray(newVal) ? newVal : [];\n var maxLen = Math.max(arrayVal.length, arrayNew.length);\n for (var i = 0; i < maxLen; i++) {\n storeCurrent(attr + \"[\" + i + \"]\", arrayVal[i], arrayNew[i], preGUI);\n }\n } else if (Lib.isPlainObject(val) || Lib.isPlainObject(newVal)) {\n var objVal = Lib.isPlainObject(val) ? val : {};\n var objNew = Lib.isPlainObject(newVal) ? newVal : {};\n var objBoth = Lib.extendFlat({}, objVal, objNew);\n for (var key in objBoth) {\n storeCurrent(attr + \".\" + key, objVal[key], objNew[key], preGUI);\n }\n } else if (preGUI[attr] === void 0) {\n preGUI[attr] = undefinedToNull(val);\n }\n }\n function _storeDirectGUIEdit(container, preGUI, edits) {\n for (var attr in edits) {\n var np = nestedProperty(container, attr);\n storeCurrent(attr, np.get(), edits[attr], preGUI);\n }\n }\n function _restyle(gd, aobj, traces) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var data = gd.data;\n var guiEditFlag = fullLayout._guiEditing;\n var layoutNP = makeNP(fullLayout._preGUI, guiEditFlag);\n var eventData = Lib.extendDeepAll({}, aobj);\n var i;\n var flags = editTypes.traceFlags();\n var redoit = {};\n var undoit = {};\n var axlist;\n function a0() {\n return traces.map(function() {\n return void 0;\n });\n }\n function addToAxlist(axid) {\n var axName = Axes.id2name(axid);\n if (axlist.indexOf(axName) === -1) axlist.push(axName);\n }\n function autorangeAttr(axName) {\n return \"LAYOUT\" + axName + \".autorange\";\n }\n function rangeAttr(axName) {\n return \"LAYOUT\" + axName + \".range\";\n }\n function getFullTrace(traceIndex) {\n for (var j = traceIndex; j < fullData.length; j++) {\n if (fullData[j]._input === data[traceIndex]) return fullData[j];\n }\n }\n function doextra(attr, val, i2) {\n if (Array.isArray(attr)) {\n attr.forEach(function(a) {\n doextra(a, val, i2);\n });\n return;\n }\n if (attr in aobj || helpers.hasParent(aobj, attr)) return;\n var extraparam;\n if (attr.substr(0, 6) === \"LAYOUT\") {\n extraparam = layoutNP(gd.layout, attr.replace(\"LAYOUT\", \"\"));\n } else {\n var tracei = traces[i2];\n var preGUI2 = fullLayout._tracePreGUI[getFullTrace(tracei)._fullInput.uid];\n extraparam = makeNP(preGUI2, guiEditFlag)(data[tracei], attr);\n }\n if (!(attr in undoit)) {\n undoit[attr] = a0();\n }\n if (undoit[attr][i2] === void 0) {\n undoit[attr][i2] = undefinedToNull(extraparam.get());\n }\n if (val !== void 0) {\n extraparam.set(val);\n }\n }\n function allBins(binAttr) {\n return function(j) {\n return fullData[j][binAttr];\n };\n }\n function arrayBins(binAttr) {\n return function(vij, j) {\n return vij === false ? fullData[traces[j]][binAttr] : null;\n };\n }\n for (var ai in aobj) {\n if (helpers.hasParent(aobj, ai)) {\n throw new Error(\"cannot set \" + ai + \" and a parent attribute simultaneously\");\n }\n var vi = aobj[ai];\n var cont;\n var contFull;\n var param;\n var oldVal;\n var newVal;\n var valObject;\n if (ai === \"autobinx\" || ai === \"autobiny\") {\n ai = ai.charAt(ai.length - 1) + \"bins\";\n if (Array.isArray(vi)) vi = vi.map(arrayBins(ai));\n else if (vi === false) vi = traces.map(allBins(ai));\n else vi = null;\n }\n redoit[ai] = vi;\n if (ai.substr(0, 6) === \"LAYOUT\") {\n param = layoutNP(gd.layout, ai.replace(\"LAYOUT\", \"\"));\n undoit[ai] = [undefinedToNull(param.get())];\n param.set(Array.isArray(vi) ? vi[0] : vi);\n flags.calc = true;\n continue;\n }\n undoit[ai] = a0();\n for (i = 0; i < traces.length; i++) {\n cont = data[traces[i]];\n contFull = getFullTrace(traces[i]);\n var preGUI = fullLayout._tracePreGUI[contFull._fullInput.uid];\n param = makeNP(preGUI, guiEditFlag)(cont, ai);\n oldVal = param.get();\n newVal = Array.isArray(vi) ? vi[i % vi.length] : vi;\n if (newVal === void 0) continue;\n var finalPart = param.parts[param.parts.length - 1];\n var prefix = ai.substr(0, ai.length - finalPart.length - 1);\n var prefixDot = prefix ? prefix + \".\" : \"\";\n var innerContFull = prefix ? nestedProperty(contFull, prefix).get() : contFull;\n valObject = PlotSchema.getTraceValObject(contFull, param.parts);\n if (valObject && valObject.impliedEdits && newVal !== null) {\n for (var impliedKey in valObject.impliedEdits) {\n doextra(Lib.relativeAttr(ai, impliedKey), valObject.impliedEdits[impliedKey], i);\n }\n } else if ((finalPart === \"thicknessmode\" || finalPart === \"lenmode\") && oldVal !== newVal && (newVal === \"fraction\" || newVal === \"pixels\") && innerContFull) {\n var gs = fullLayout._size;\n var orient = innerContFull.orient;\n var topOrBottom = orient === \"top\" || orient === \"bottom\";\n if (finalPart === \"thicknessmode\") {\n var thicknorm = topOrBottom ? gs.h : gs.w;\n doextra(prefixDot + \"thickness\", innerContFull.thickness * (newVal === \"fraction\" ? 1 / thicknorm : thicknorm), i);\n } else {\n var lennorm = topOrBottom ? gs.w : gs.h;\n doextra(prefixDot + \"len\", innerContFull.len * (newVal === \"fraction\" ? 1 / lennorm : lennorm), i);\n }\n } else if (ai === \"type\" && (newVal === \"pie\" !== (oldVal === \"pie\") || newVal === \"funnelarea\" !== (oldVal === \"funnelarea\"))) {\n var labelsTo = \"x\";\n var valuesTo = \"y\";\n if ((newVal === \"bar\" || oldVal === \"bar\") && cont.orientation === \"h\") {\n labelsTo = \"y\";\n valuesTo = \"x\";\n }\n Lib.swapAttrs(cont, [\"?\", \"?src\"], \"labels\", labelsTo);\n Lib.swapAttrs(cont, [\"d?\", \"?0\"], \"label\", labelsTo);\n Lib.swapAttrs(cont, [\"?\", \"?src\"], \"values\", valuesTo);\n if (oldVal === \"pie\" || oldVal === \"funnelarea\") {\n nestedProperty(cont, \"marker.color\").set(nestedProperty(cont, \"marker.colors\").get());\n fullLayout._pielayer.selectAll(\"g.trace\").remove();\n } else if (Registry.traceIs(cont, \"cartesian\")) {\n nestedProperty(cont, \"marker.colors\").set(nestedProperty(cont, \"marker.color\").get());\n }\n }\n undoit[ai][i] = undefinedToNull(oldVal);\n var swapAttrs = [\n \"swapxy\",\n \"swapxyaxes\",\n \"orientation\",\n \"orientationaxes\"\n ];\n if (swapAttrs.indexOf(ai) !== -1) {\n if (ai === \"orientation\") {\n param.set(newVal);\n var defaultOrientation = cont.x && !cont.y ? \"h\" : \"v\";\n if ((param.get() || defaultOrientation) === contFull.orientation) {\n continue;\n }\n } else if (ai === \"orientationaxes\") {\n cont.orientation = { v: \"h\", h: \"v\" }[contFull.orientation];\n }\n helpers.swapXYData(cont);\n flags.calc = flags.clearAxisTypes = true;\n } else if (Plots.dataArrayContainers.indexOf(param.parts[0]) !== -1) {\n helpers.manageArrayContainers(param, newVal, undoit);\n flags.calc = true;\n } else {\n if (valObject) {\n if (valObject.arrayOk && !Registry.traceIs(contFull, \"regl\") && (Lib.isArrayOrTypedArray(newVal) || Lib.isArrayOrTypedArray(oldVal))) {\n flags.calc = true;\n } else editTypes.update(flags, valObject);\n } else {\n flags.calc = true;\n }\n param.set(newVal);\n }\n }\n if ([\"swapxyaxes\", \"orientationaxes\"].indexOf(ai) !== -1) {\n Axes.swap(gd, traces);\n }\n if (ai === \"orientationaxes\") {\n var hovermode = nestedProperty(gd.layout, \"hovermode\");\n var h = hovermode.get();\n if (h === \"x\") {\n hovermode.set(\"y\");\n } else if (h === \"y\") {\n hovermode.set(\"x\");\n } else if (h === \"x unified\") {\n hovermode.set(\"y unified\");\n } else if (h === \"y unified\") {\n hovermode.set(\"x unified\");\n }\n }\n if ([\"orientation\", \"type\"].indexOf(ai) !== -1) {\n axlist = [];\n for (i = 0; i < traces.length; i++) {\n var trace = data[traces[i]];\n if (Registry.traceIs(trace, \"cartesian\")) {\n addToAxlist(trace.xaxis || \"x\");\n addToAxlist(trace.yaxis || \"y\");\n }\n }\n doextra(axlist.map(autorangeAttr), true, 0);\n doextra(axlist.map(rangeAttr), [0, 1], 0);\n }\n }\n if (flags.calc || flags.plot) {\n flags.fullReplot = true;\n }\n return {\n flags,\n undoit,\n redoit,\n traces,\n eventData: Lib.extendDeepNoArrays([], [eventData, traces])\n };\n }\n function relayout(gd, astr, val) {\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n var aobj = {};\n if (typeof astr === \"string\") {\n aobj[astr] = val;\n } else if (Lib.isPlainObject(astr)) {\n aobj = Lib.extendFlat({}, astr);\n } else {\n Lib.warn(\"Relayout fail.\", astr, val);\n return Promise.reject();\n }\n if (Object.keys(aobj).length) gd.changed = true;\n var specs = _relayout(gd, aobj);\n var flags = specs.flags;\n if (flags.calc) gd.calcdata = void 0;\n var seq = [Plots.previousPromises];\n if (flags.layoutReplot) {\n seq.push(subroutines.layoutReplot);\n } else if (Object.keys(aobj).length) {\n axRangeSupplyDefaultsByPass(gd, flags, specs) || Plots.supplyDefaults(gd);\n if (flags.legend) seq.push(subroutines.doLegend);\n if (flags.layoutstyle) seq.push(subroutines.layoutStyles);\n if (flags.axrange) addAxRangeSequence(seq, specs.rangesAltered);\n if (flags.ticks) seq.push(subroutines.doTicksRelayout);\n if (flags.modebar) seq.push(subroutines.doModeBar);\n if (flags.camera) seq.push(subroutines.doCamera);\n if (flags.colorbars) seq.push(subroutines.doColorBars);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n Queue.add(\n gd,\n relayout,\n [gd, specs.undoit],\n relayout,\n [gd, specs.redoit]\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve(gd);\n return plotDone.then(function() {\n gd.emit(\"plotly_relayout\", specs.eventData);\n return gd;\n });\n }\n function axRangeSupplyDefaultsByPass(gd, flags, specs) {\n var fullLayout = gd._fullLayout;\n if (!flags.axrange) return false;\n for (var k in flags) {\n if (k !== \"axrange\" && flags[k]) return false;\n }\n var axIn, axOut;\n var coerce = function(attr, dflt) {\n return Lib.coerce(axIn, axOut, cartesianLayoutAttributes, attr, dflt);\n };\n var options = {};\n for (var axId in specs.rangesAltered) {\n var axName = Axes.id2name(axId);\n axIn = gd.layout[axName];\n axOut = fullLayout[axName];\n handleRangeDefaults(axIn, axOut, coerce, options);\n if (axOut._matchGroup) {\n for (var axId2 in axOut._matchGroup) {\n if (axId2 !== axId) {\n var ax2 = fullLayout[Axes.id2name(axId2)];\n ax2.autorange = axOut.autorange;\n ax2.range = axOut.range.slice();\n ax2._input.range = axOut.range.slice();\n }\n }\n }\n }\n return true;\n }\n function addAxRangeSequence(seq, rangesAltered) {\n var drawAxes = rangesAltered ? function(gd) {\n var axIds = [];\n var skipTitle = true;\n for (var id in rangesAltered) {\n var ax = Axes.getFromId(gd, id);\n axIds.push(id);\n if ((ax.ticklabelposition || \"\").indexOf(\"inside\") !== -1) {\n if (ax._anchorAxis) {\n axIds.push(ax._anchorAxis._id);\n }\n }\n if (ax._matchGroup) {\n for (var id2 in ax._matchGroup) {\n if (!rangesAltered[id2]) {\n axIds.push(id2);\n }\n }\n }\n }\n return Axes.draw(gd, axIds, { skipTitle });\n } : function(gd) {\n return Axes.draw(gd, \"redraw\");\n };\n seq.push(\n clearOutline,\n subroutines.doAutoRangeAndConstraints,\n drawAxes,\n subroutines.drawData,\n subroutines.finalDraw\n );\n }\n var AX_RANGE_RE = /^[xyz]axis[0-9]*\\.range(\\[[0|1]\\])?$/;\n var AX_AUTORANGE_RE = /^[xyz]axis[0-9]*\\.autorange$/;\n var AX_DOMAIN_RE = /^[xyz]axis[0-9]*\\.domain(\\[[0|1]\\])?$/;\n function _relayout(gd, aobj) {\n var layout = gd.layout;\n var fullLayout = gd._fullLayout;\n var guiEditFlag = fullLayout._guiEditing;\n var layoutNP = makeNP(fullLayout._preGUI, guiEditFlag);\n var keys = Object.keys(aobj);\n var axes = Axes.list(gd);\n var eventData = Lib.extendDeepAll({}, aobj);\n var arrayEdits = {};\n var arrayStr, i, j;\n keys = Object.keys(aobj);\n for (i = 0; i < keys.length; i++) {\n if (keys[i].indexOf(\"allaxes\") === 0) {\n for (j = 0; j < axes.length; j++) {\n var scene = axes[j]._id.substr(1);\n var axisAttr = scene.indexOf(\"scene\") !== -1 ? scene + \".\" : \"\";\n var newkey = keys[i].replace(\"allaxes\", axisAttr + axes[j]._name);\n if (!aobj[newkey]) aobj[newkey] = aobj[keys[i]];\n }\n delete aobj[keys[i]];\n }\n }\n var flags = editTypes.layoutFlags();\n var redoit = {};\n var undoit = {};\n function doextra(attr, val) {\n if (Array.isArray(attr)) {\n attr.forEach(function(a) {\n doextra(a, val);\n });\n return;\n }\n if (attr in aobj || helpers.hasParent(aobj, attr)) return;\n var p2 = layoutNP(layout, attr);\n if (!(attr in undoit)) {\n undoit[attr] = undefinedToNull(p2.get());\n }\n if (val !== void 0) p2.set(val);\n }\n var rangesAltered = {};\n var ax;\n function recordAlteredAxis(pleafPlus2) {\n var axId2 = Axes.name2id(pleafPlus2.split(\".\")[0]);\n rangesAltered[axId2] = 1;\n return axId2;\n }\n for (var ai in aobj) {\n if (helpers.hasParent(aobj, ai)) {\n throw new Error(\"cannot set \" + ai + \" and a parent attribute simultaneously\");\n }\n var p = layoutNP(layout, ai);\n var vi = aobj[ai];\n var plen = p.parts.length;\n var pend = plen - 1;\n while (pend > 0 && typeof p.parts[pend] !== \"string\") pend--;\n var pleaf = p.parts[pend];\n var pleafPlus = p.parts[pend - 1] + \".\" + pleaf;\n var ptrunk = p.parts.slice(0, pend).join(\".\");\n var parentIn = nestedProperty(gd.layout, ptrunk).get();\n var parentFull = nestedProperty(fullLayout, ptrunk).get();\n var vOld = p.get();\n if (vi === void 0) continue;\n redoit[ai] = vi;\n undoit[ai] = pleaf === \"reverse\" ? vi : undefinedToNull(vOld);\n var valObject = PlotSchema.getLayoutValObject(fullLayout, p.parts);\n if (valObject && valObject.impliedEdits && vi !== null) {\n for (var impliedKey in valObject.impliedEdits) {\n doextra(Lib.relativeAttr(ai, impliedKey), valObject.impliedEdits[impliedKey]);\n }\n }\n if ([\"width\", \"height\"].indexOf(ai) !== -1) {\n if (vi) {\n doextra(\"autosize\", null);\n var oppositeAttr = ai === \"height\" ? \"width\" : \"height\";\n doextra(oppositeAttr, fullLayout[oppositeAttr]);\n } else {\n fullLayout[ai] = gd._initialAutoSize[ai];\n }\n } else if (ai === \"autosize\") {\n doextra(\"width\", vi ? null : fullLayout.width);\n doextra(\"height\", vi ? null : fullLayout.height);\n } else if (pleafPlus.match(AX_RANGE_RE)) {\n recordAlteredAxis(pleafPlus);\n nestedProperty(fullLayout, ptrunk + \"._inputRange\").set(null);\n } else if (pleafPlus.match(AX_AUTORANGE_RE)) {\n recordAlteredAxis(pleafPlus);\n nestedProperty(fullLayout, ptrunk + \"._inputRange\").set(null);\n var axFull = nestedProperty(fullLayout, ptrunk).get();\n if (axFull._inputDomain) {\n axFull._input.domain = axFull._inputDomain.slice();\n }\n } else if (pleafPlus.match(AX_DOMAIN_RE)) {\n nestedProperty(fullLayout, ptrunk + \"._inputDomain\").set(null);\n }\n if (pleaf === \"type\") {\n ax = parentIn;\n var toLog = parentFull.type === \"linear\" && vi === \"log\";\n var fromLog = parentFull.type === \"log\" && vi === \"linear\";\n if (toLog || fromLog) {\n if (!ax || !ax.range) {\n doextra(ptrunk + \".autorange\", true);\n } else if (!parentFull.autorange) {\n var r0 = ax.range[0];\n var r1 = ax.range[1];\n if (toLog) {\n if (r0 <= 0 && r1 <= 0) {\n doextra(ptrunk + \".autorange\", true);\n }\n if (r0 <= 0) r0 = r1 / 1e6;\n else if (r1 <= 0) r1 = r0 / 1e6;\n doextra(ptrunk + \".range[0]\", Math.log(r0) / Math.LN10);\n doextra(ptrunk + \".range[1]\", Math.log(r1) / Math.LN10);\n } else {\n doextra(ptrunk + \".range[0]\", Math.pow(10, r0));\n doextra(ptrunk + \".range[1]\", Math.pow(10, r1));\n }\n } else if (toLog) {\n ax.range = ax.range[1] > ax.range[0] ? [1, 2] : [2, 1];\n }\n if (Array.isArray(fullLayout._subplots.polar) && fullLayout._subplots.polar.length && fullLayout[p.parts[0]] && p.parts[1] === \"radialaxis\") {\n delete fullLayout[p.parts[0]]._subplot.viewInitial[\"radialaxis.range\"];\n }\n Registry.getComponentMethod(\"annotations\", \"convertCoords\")(gd, parentFull, vi, doextra);\n Registry.getComponentMethod(\"images\", \"convertCoords\")(gd, parentFull, vi, doextra);\n } else {\n doextra(ptrunk + \".autorange\", true);\n doextra(ptrunk + \".range\", null);\n }\n nestedProperty(fullLayout, ptrunk + \"._inputRange\").set(null);\n } else if (pleaf.match(AX_NAME_PATTERN)) {\n var fullProp = nestedProperty(fullLayout, ai).get();\n var newType = (vi || {}).type;\n if (!newType || newType === \"-\") newType = \"linear\";\n Registry.getComponentMethod(\"annotations\", \"convertCoords\")(gd, fullProp, newType, doextra);\n Registry.getComponentMethod(\"images\", \"convertCoords\")(gd, fullProp, newType, doextra);\n }\n var containerArrayMatch = manageArrays.containerArrayMatch(ai);\n if (containerArrayMatch) {\n arrayStr = containerArrayMatch.array;\n i = containerArrayMatch.index;\n var propStr = containerArrayMatch.property;\n var updateValObject = valObject || { editType: \"calc\" };\n if (i !== \"\" && propStr === \"\") {\n if (manageArrays.isAddVal(vi)) {\n undoit[ai] = null;\n } else if (manageArrays.isRemoveVal(vi)) {\n undoit[ai] = (nestedProperty(layout, arrayStr).get() || [])[i];\n } else {\n Lib.warn(\"unrecognized full object value\", aobj);\n }\n }\n editTypes.update(flags, updateValObject);\n if (!arrayEdits[arrayStr]) arrayEdits[arrayStr] = {};\n var objEdits = arrayEdits[arrayStr][i];\n if (!objEdits) objEdits = arrayEdits[arrayStr][i] = {};\n objEdits[propStr] = vi;\n delete aobj[ai];\n } else if (pleaf === \"reverse\") {\n if (parentIn.range) parentIn.range.reverse();\n else {\n doextra(ptrunk + \".autorange\", true);\n parentIn.range = [1, 0];\n }\n if (parentFull.autorange) flags.calc = true;\n else flags.plot = true;\n } else {\n if (ai === \"dragmode\" && (vi === false && vOld !== false || vi !== false && vOld === false)) {\n flags.plot = true;\n } else if (fullLayout._has(\"scatter-like\") && fullLayout._has(\"regl\") && (ai === \"dragmode\" && (vi === \"lasso\" || vi === \"select\") && !(vOld === \"lasso\" || vOld === \"select\"))) {\n flags.plot = true;\n } else if (valObject) editTypes.update(flags, valObject);\n else flags.calc = true;\n p.set(vi);\n }\n }\n for (arrayStr in arrayEdits) {\n var finished = manageArrays.applyContainerArrayChanges(\n gd,\n layoutNP(layout, arrayStr),\n arrayEdits[arrayStr],\n flags,\n layoutNP\n );\n if (!finished) flags.plot = true;\n }\n for (var axId in rangesAltered) {\n ax = Axes.getFromId(gd, axId);\n var group = ax && ax._constraintGroup;\n if (group) {\n flags.calc = true;\n for (var groupAxId in group) {\n if (!rangesAltered[groupAxId]) {\n Axes.getFromId(gd, groupAxId)._constraintShrinkable = true;\n }\n }\n }\n }\n if (updateAutosize(gd) || aobj.height || aobj.width) flags.plot = true;\n var shapes = fullLayout.shapes;\n for (i = 0; i < shapes.length; i++) {\n if (shapes[i].showlegend) {\n flags.calc = true;\n break;\n }\n }\n if (flags.plot || flags.calc) {\n flags.layoutReplot = true;\n }\n return {\n flags,\n rangesAltered,\n undoit,\n redoit,\n eventData\n };\n }\n function updateAutosize(gd) {\n var fullLayout = gd._fullLayout;\n var oldWidth = fullLayout.width;\n var oldHeight = fullLayout.height;\n if (gd.layout.autosize) Plots.plotAutoSize(gd, gd.layout, fullLayout);\n return fullLayout.width !== oldWidth || fullLayout.height !== oldHeight;\n }\n function update(gd, traceUpdate, layoutUpdate, _traces) {\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n if (!Lib.isPlainObject(traceUpdate)) traceUpdate = {};\n if (!Lib.isPlainObject(layoutUpdate)) layoutUpdate = {};\n if (Object.keys(traceUpdate).length) gd.changed = true;\n if (Object.keys(layoutUpdate).length) gd.changed = true;\n var traces = helpers.coerceTraceIndices(gd, _traces);\n var restyleSpecs = _restyle(gd, Lib.extendFlat({}, traceUpdate), traces);\n var restyleFlags = restyleSpecs.flags;\n var relayoutSpecs = _relayout(gd, Lib.extendFlat({}, layoutUpdate));\n var relayoutFlags = relayoutSpecs.flags;\n if (restyleFlags.calc || relayoutFlags.calc) gd.calcdata = void 0;\n if (restyleFlags.clearAxisTypes) helpers.clearAxisTypes(gd, traces, layoutUpdate);\n var seq = [];\n if (relayoutFlags.layoutReplot) {\n seq.push(subroutines.layoutReplot);\n } else if (restyleFlags.fullReplot) {\n seq.push(exports._doPlot);\n } else {\n seq.push(Plots.previousPromises);\n axRangeSupplyDefaultsByPass(gd, relayoutFlags, relayoutSpecs) || Plots.supplyDefaults(gd);\n if (restyleFlags.style) seq.push(subroutines.doTraceStyle);\n if (restyleFlags.colorbars || relayoutFlags.colorbars) seq.push(subroutines.doColorBars);\n if (relayoutFlags.legend) seq.push(subroutines.doLegend);\n if (relayoutFlags.layoutstyle) seq.push(subroutines.layoutStyles);\n if (relayoutFlags.axrange) addAxRangeSequence(seq, relayoutSpecs.rangesAltered);\n if (relayoutFlags.ticks) seq.push(subroutines.doTicksRelayout);\n if (relayoutFlags.modebar) seq.push(subroutines.doModeBar);\n if (relayoutFlags.camera) seq.push(subroutines.doCamera);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n Queue.add(\n gd,\n update,\n [gd, restyleSpecs.undoit, relayoutSpecs.undoit, restyleSpecs.traces],\n update,\n [gd, restyleSpecs.redoit, relayoutSpecs.redoit, restyleSpecs.traces]\n );\n var plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve(gd);\n return plotDone.then(function() {\n gd.emit(\"plotly_update\", {\n data: restyleSpecs.eventData,\n layout: relayoutSpecs.eventData\n });\n return gd;\n });\n }\n function guiEdit(func) {\n return function wrappedEdit(gd) {\n gd._fullLayout._guiEditing = true;\n var p = func.apply(null, arguments);\n gd._fullLayout._guiEditing = false;\n return p;\n };\n }\n var layoutUIControlPatterns = [\n { pattern: /^hiddenlabels/, attr: \"legend.uirevision\" },\n { pattern: /^((x|y)axis\\d*)\\.((auto)?range|title\\.text)/ },\n // showspikes and modes include those nested inside scenes\n { pattern: /axis\\d*\\.showspikes$/, attr: \"modebar.uirevision\" },\n { pattern: /(hover|drag)mode$/, attr: \"modebar.uirevision\" },\n { pattern: /^(scene\\d*)\\.camera/ },\n { pattern: /^(geo\\d*)\\.(projection|center|fitbounds)/ },\n { pattern: /^(ternary\\d*\\.[abc]axis)\\.(min|title\\.text)$/ },\n { pattern: /^(polar\\d*\\.radialaxis)\\.((auto)?range|angle|title\\.text)/ },\n { pattern: /^(polar\\d*\\.angularaxis)\\.rotation/ },\n { pattern: /^(mapbox\\d*)\\.(center|zoom|bearing|pitch)/ },\n { pattern: /^(map\\d*)\\.(center|zoom|bearing|pitch)/ },\n { pattern: /^legend\\.(x|y)$/, attr: \"editrevision\" },\n { pattern: /^(shapes|annotations)/, attr: \"editrevision\" },\n { pattern: /^title\\.text$/, attr: \"editrevision\" }\n ];\n var traceUIControlPatterns = [\n { pattern: /^selectedpoints$/, attr: \"selectionrevision\" },\n // \"visible\" includes trace.transforms[i].styles[j].value.visible\n { pattern: /(^|value\\.)visible$/, attr: \"legend.uirevision\" },\n { pattern: /^dimensions\\[\\d+\\]\\.constraintrange/ },\n { pattern: /^node\\.(x|y|groups)/ },\n // for Sankey nodes\n { pattern: /^level$/ },\n // for Sunburst, Treemap and Icicle traces\n // below this you must be in editable: true mode\n // TODO: I still put name and title with `trace.uirevision`\n // reasonable or should these be `editrevision`?\n // Also applies to axis titles up in the layout section\n // \"name\" also includes transform.styles\n { pattern: /(^|value\\.)name$/ },\n // including nested colorbar attributes (ie marker.colorbar)\n { pattern: /colorbar\\.title\\.text$/ },\n { pattern: /colorbar\\.(x|y)$/, attr: \"editrevision\" }\n ];\n function findUIPattern(key, patternSpecs) {\n for (var i = 0; i < patternSpecs.length; i++) {\n var spec = patternSpecs[i];\n var match = key.match(spec.pattern);\n if (match) {\n var head = match[1] || \"\";\n return { head, tail: key.substr(head.length + 1), attr: spec.attr };\n }\n }\n }\n function getNewRev(revAttr, container) {\n var newRev = nestedProperty(container, revAttr).get();\n if (newRev !== void 0) return newRev;\n var parts = revAttr.split(\".\");\n parts.pop();\n while (parts.length > 1) {\n parts.pop();\n newRev = nestedProperty(container, parts.join(\".\") + \".uirevision\").get();\n if (newRev !== void 0) return newRev;\n }\n return container.uirevision;\n }\n function getFullTraceIndexFromUid(uid, fullData) {\n for (var i = 0; i < fullData.length; i++) {\n if (fullData[i]._fullInput.uid === uid) return i;\n }\n return -1;\n }\n function getTraceIndexFromUid(uid, data, tracei) {\n for (var i = 0; i < data.length; i++) {\n if (data[i].uid === uid) return i;\n }\n return !data[tracei] || data[tracei].uid ? -1 : tracei;\n }\n function valsMatch(v1, v2) {\n var v1IsObj = Lib.isPlainObject(v1);\n var v1IsArray = Array.isArray(v1);\n if (v1IsObj || v1IsArray) {\n return (v1IsObj && Lib.isPlainObject(v2) || v1IsArray && Array.isArray(v2)) && JSON.stringify(v1) === JSON.stringify(v2);\n }\n return v1 === v2;\n }\n function applyUIRevisions(data, layout, oldFullData, oldFullLayout) {\n var layoutPreGUI = oldFullLayout._preGUI;\n var key, revAttr, oldRev, newRev, match, preGUIVal, newNP, newVal, head, tail;\n var bothInheritAutorange = [];\n var newAutorangeIn = {};\n var newRangeAccepted = {};\n for (key in layoutPreGUI) {\n match = findUIPattern(key, layoutUIControlPatterns);\n if (match) {\n head = match.head;\n tail = match.tail;\n revAttr = match.attr || head + \".uirevision\";\n oldRev = nestedProperty(oldFullLayout, revAttr).get();\n newRev = oldRev && getNewRev(revAttr, layout);\n if (newRev && newRev === oldRev) {\n preGUIVal = layoutPreGUI[key];\n if (preGUIVal === null) preGUIVal = void 0;\n newNP = nestedProperty(layout, key);\n newVal = newNP.get();\n if (valsMatch(newVal, preGUIVal)) {\n if (newVal === void 0 && tail === \"autorange\") {\n bothInheritAutorange.push(head);\n }\n newNP.set(undefinedToNull(nestedProperty(oldFullLayout, key).get()));\n continue;\n } else if (tail === \"autorange\" || tail.substr(0, 6) === \"range[\") {\n var pre0 = layoutPreGUI[head + \".range[0]\"];\n var pre1 = layoutPreGUI[head + \".range[1]\"];\n var preAuto = layoutPreGUI[head + \".autorange\"];\n if (preAuto || preAuto === null && pre0 === null && pre1 === null) {\n if (!(head in newAutorangeIn)) {\n var newContainer = nestedProperty(layout, head).get();\n newAutorangeIn[head] = newContainer && (newContainer.autorange || newContainer.autorange !== false && (!newContainer.range || newContainer.range.length !== 2));\n }\n if (newAutorangeIn[head]) {\n newNP.set(undefinedToNull(nestedProperty(oldFullLayout, key).get()));\n continue;\n }\n }\n }\n }\n } else {\n Lib.warn(\"unrecognized GUI edit: \" + key);\n }\n delete layoutPreGUI[key];\n if (match && match.tail.substr(0, 6) === \"range[\") {\n newRangeAccepted[match.head] = 1;\n }\n }\n for (var i = 0; i < bothInheritAutorange.length; i++) {\n var axAttr = bothInheritAutorange[i];\n if (newRangeAccepted[axAttr]) {\n var newAx = nestedProperty(layout, axAttr).get();\n if (newAx) delete newAx.autorange;\n }\n }\n var allTracePreGUI = oldFullLayout._tracePreGUI;\n for (var uid in allTracePreGUI) {\n var tracePreGUI = allTracePreGUI[uid];\n var newTrace = null;\n var fullInput;\n for (key in tracePreGUI) {\n if (!newTrace) {\n var fulli = getFullTraceIndexFromUid(uid, oldFullData);\n if (fulli < 0) {\n delete allTracePreGUI[uid];\n break;\n }\n var fullTrace = oldFullData[fulli];\n fullInput = fullTrace._fullInput;\n var newTracei = getTraceIndexFromUid(uid, data, fullInput.index);\n if (newTracei < 0) {\n delete allTracePreGUI[uid];\n break;\n }\n newTrace = data[newTracei];\n }\n match = findUIPattern(key, traceUIControlPatterns);\n if (match) {\n if (match.attr) {\n oldRev = nestedProperty(oldFullLayout, match.attr).get();\n newRev = oldRev && getNewRev(match.attr, layout);\n } else {\n oldRev = fullInput.uirevision;\n newRev = newTrace.uirevision;\n if (newRev === void 0) newRev = layout.uirevision;\n }\n if (newRev && newRev === oldRev) {\n preGUIVal = tracePreGUI[key];\n if (preGUIVal === null) preGUIVal = void 0;\n newNP = nestedProperty(newTrace, key);\n newVal = newNP.get();\n if (valsMatch(newVal, preGUIVal)) {\n newNP.set(undefinedToNull(nestedProperty(fullInput, key).get()));\n continue;\n }\n }\n } else {\n Lib.warn(\"unrecognized GUI edit: \" + key + \" in trace uid \" + uid);\n }\n delete tracePreGUI[key];\n }\n }\n }\n function react(gd, data, layout, config) {\n var frames, plotDone;\n function addFrames2() {\n return exports.addFrames(gd, frames);\n }\n gd = Lib.getGraphDiv(gd);\n helpers.clearPromiseQueue(gd);\n var oldFullData = gd._fullData;\n var oldFullLayout = gd._fullLayout;\n if (!Lib.isPlotDiv(gd) || !oldFullData || !oldFullLayout) {\n plotDone = exports.newPlot(gd, data, layout, config);\n } else {\n if (Lib.isPlainObject(data)) {\n var obj = data;\n data = obj.data;\n layout = obj.layout;\n config = obj.config;\n frames = obj.frames;\n }\n var configChanged = false;\n if (config) {\n var oldConfig = Lib.extendDeep({}, gd._context);\n gd._context = void 0;\n setPlotContext(gd, config);\n configChanged = diffConfig(oldConfig, gd._context);\n }\n gd.data = data || [];\n helpers.cleanData(gd.data);\n gd.layout = layout || {};\n helpers.cleanLayout(gd.layout);\n applyUIRevisions(gd.data, gd.layout, oldFullData, oldFullLayout);\n Plots.supplyDefaults(gd, { skipUpdateCalc: true });\n var newFullData = gd._fullData;\n var newFullLayout = gd._fullLayout;\n var immutable = newFullLayout.datarevision === void 0;\n var transition = newFullLayout.transition;\n var relayoutFlags = diffLayout(gd, oldFullLayout, newFullLayout, immutable, transition);\n var newDataRevision = relayoutFlags.newDataRevision;\n var restyleFlags = diffData(gd, oldFullData, newFullData, immutable, transition, newDataRevision);\n if (updateAutosize(gd)) relayoutFlags.layoutReplot = true;\n if (restyleFlags.calc || relayoutFlags.calc) {\n gd.calcdata = void 0;\n var allNames = Object.getOwnPropertyNames(newFullLayout);\n for (var q = 0; q < allNames.length; q++) {\n var name2 = allNames[q];\n var start = name2.substring(0, 5);\n if (start === \"xaxis\" || start === \"yaxis\") {\n var emptyCategories = newFullLayout[name2]._emptyCategories;\n if (emptyCategories) emptyCategories();\n }\n }\n } else {\n Plots.supplyDefaultsUpdateCalc(gd.calcdata, newFullData);\n }\n var seq = [];\n if (frames) {\n gd._transitionData = {};\n Plots.createTransitionData(gd);\n seq.push(addFrames2);\n }\n if (newFullLayout.transition && !configChanged && (restyleFlags.anim || relayoutFlags.anim)) {\n if (relayoutFlags.ticks) seq.push(subroutines.doTicksRelayout);\n Plots.doCalcdata(gd);\n subroutines.doAutoRangeAndConstraints(gd);\n seq.push(function() {\n return Plots.transitionFromReact(gd, restyleFlags, relayoutFlags, oldFullLayout);\n });\n } else if (restyleFlags.fullReplot || relayoutFlags.layoutReplot || configChanged) {\n gd._fullLayout._skipDefaults = true;\n seq.push(exports._doPlot);\n } else {\n for (var componentType in relayoutFlags.arrays) {\n var indices = relayoutFlags.arrays[componentType];\n if (indices.length) {\n var drawOne = Registry.getComponentMethod(componentType, \"drawOne\");\n if (drawOne !== Lib.noop) {\n for (var i = 0; i < indices.length; i++) {\n drawOne(gd, indices[i]);\n }\n } else {\n var draw = Registry.getComponentMethod(componentType, \"draw\");\n if (draw === Lib.noop) {\n throw new Error(\"cannot draw components: \" + componentType);\n }\n draw(gd);\n }\n }\n }\n seq.push(Plots.previousPromises);\n if (restyleFlags.style) seq.push(subroutines.doTraceStyle);\n if (restyleFlags.colorbars || relayoutFlags.colorbars) seq.push(subroutines.doColorBars);\n if (relayoutFlags.legend) seq.push(subroutines.doLegend);\n if (relayoutFlags.layoutstyle) seq.push(subroutines.layoutStyles);\n if (relayoutFlags.axrange) addAxRangeSequence(seq);\n if (relayoutFlags.ticks) seq.push(subroutines.doTicksRelayout);\n if (relayoutFlags.modebar) seq.push(subroutines.doModeBar);\n if (relayoutFlags.camera) seq.push(subroutines.doCamera);\n seq.push(emitAfterPlot);\n }\n seq.push(\n Plots.rehover,\n Plots.redrag,\n Plots.reselect\n );\n plotDone = Lib.syncOrAsync(seq, gd);\n if (!plotDone || !plotDone.then) plotDone = Promise.resolve(gd);\n }\n return plotDone.then(function() {\n gd.emit(\"plotly_react\", {\n data,\n layout\n });\n return gd;\n });\n }\n function diffData(gd, oldFullData, newFullData, immutable, transition, newDataRevision) {\n var sameTraceLength = oldFullData.length === newFullData.length;\n if (!transition && !sameTraceLength) {\n return {\n fullReplot: true,\n calc: true\n };\n }\n var flags = editTypes.traceFlags();\n flags.arrays = {};\n flags.nChanges = 0;\n flags.nChangesAnim = 0;\n var i, trace;\n function getTraceValObject(parts) {\n var out = PlotSchema.getTraceValObject(trace, parts);\n if (!trace._module.animatable && out.anim) {\n out.anim = false;\n }\n return out;\n }\n var diffOpts = {\n getValObject: getTraceValObject,\n flags,\n immutable,\n transition,\n newDataRevision,\n gd\n };\n var seenUIDs = {};\n for (i = 0; i < oldFullData.length; i++) {\n if (newFullData[i]) {\n trace = newFullData[i]._fullInput;\n if (seenUIDs[trace.uid]) continue;\n seenUIDs[trace.uid] = 1;\n getDiffFlags(oldFullData[i]._fullInput, trace, [], diffOpts);\n }\n }\n if (flags.calc || flags.plot) {\n flags.fullReplot = true;\n }\n if (transition && flags.nChanges && flags.nChangesAnim) {\n flags.anim = flags.nChanges === flags.nChangesAnim && sameTraceLength ? \"all\" : \"some\";\n }\n return flags;\n }\n function diffLayout(gd, oldFullLayout, newFullLayout, immutable, transition) {\n var flags = editTypes.layoutFlags();\n flags.arrays = {};\n flags.rangesAltered = {};\n flags.nChanges = 0;\n flags.nChangesAnim = 0;\n function getLayoutValObject(parts) {\n return PlotSchema.getLayoutValObject(newFullLayout, parts);\n }\n for (var key in newFullLayout) {\n if (!key.startsWith(\"xaxis\") && !key.startsWith(\"yaxis\")) {\n continue;\n }\n if (!oldFullLayout[key]) {\n continue;\n }\n var newDomain = newFullLayout[key].domain;\n var oldDomain = oldFullLayout[key].domain;\n var oldInputDomain = oldFullLayout[key]._inputDomain;\n if (oldFullLayout[key]._inputDomain) {\n if (newDomain[0] === oldInputDomain[0] && newDomain[1] === oldInputDomain[1]) {\n newFullLayout[key].domain = oldFullLayout[key].domain;\n } else if (newDomain[0] !== oldDomain[0] || newDomain[1] !== oldDomain[1]) {\n newFullLayout[key]._inputDomain = null;\n }\n }\n }\n var diffOpts = {\n getValObject: getLayoutValObject,\n flags,\n immutable,\n transition,\n gd\n };\n getDiffFlags(oldFullLayout, newFullLayout, [], diffOpts);\n if (flags.plot || flags.calc) {\n flags.layoutReplot = true;\n }\n if (transition && flags.nChanges && flags.nChangesAnim) {\n flags.anim = flags.nChanges === flags.nChangesAnim ? \"all\" : \"some\";\n }\n return flags;\n }\n function getDiffFlags(oldContainer, newContainer, outerparts, opts) {\n var valObject, key, astr;\n var getValObject = opts.getValObject;\n var flags = opts.flags;\n var immutable = opts.immutable;\n var inArray = opts.inArray;\n var arrayIndex = opts.arrayIndex;\n function changed() {\n var editType = valObject.editType;\n if (inArray && editType.indexOf(\"arraydraw\") !== -1) {\n Lib.pushUnique(flags.arrays[inArray], arrayIndex);\n return;\n }\n editTypes.update(flags, valObject);\n if (editType !== \"none\") {\n flags.nChanges++;\n }\n if (opts.transition && valObject.anim) {\n flags.nChangesAnim++;\n }\n if (AX_RANGE_RE.test(astr) || AX_AUTORANGE_RE.test(astr)) {\n flags.rangesAltered[outerparts[0]] = 1;\n }\n if (key === \"datarevision\") {\n flags.newDataRevision = 1;\n }\n }\n function valObjectCanBeDataArray(valObject2) {\n return valObject2.valType === \"data_array\" || valObject2.arrayOk;\n }\n for (key in oldContainer) {\n if (flags.calc && !opts.transition) return;\n var oldVal = oldContainer[key];\n var newVal = newContainer[key];\n var parts = outerparts.concat(key);\n astr = parts.join(\".\");\n if (key.charAt(0) === \"_\" || typeof oldVal === \"function\" || oldVal === newVal) continue;\n if ((key === \"tick0\" || key === \"dtick\") && outerparts[0] !== \"geo\") {\n var tickMode = newContainer.tickmode;\n if (tickMode === \"auto\" || tickMode === \"array\" || !tickMode) continue;\n }\n if (key === \"range\" && newContainer.autorange) continue;\n if ((key === \"zmin\" || key === \"zmax\") && newContainer.type === \"contourcarpet\") continue;\n valObject = getValObject(parts);\n if (!valObject) continue;\n if (valObject._compareAsJSON && JSON.stringify(oldVal) === JSON.stringify(newVal)) continue;\n var valType = valObject.valType;\n var i;\n var canBeDataArray = valObjectCanBeDataArray(valObject);\n var wasArray = Array.isArray(oldVal);\n var nowArray = Array.isArray(newVal);\n if (wasArray && nowArray) {\n var inputKey = \"_input_\" + key;\n var oldValIn = oldContainer[inputKey];\n var newValIn = newContainer[inputKey];\n if (Array.isArray(oldValIn) && oldValIn === newValIn) continue;\n }\n if (newVal === void 0) {\n if (canBeDataArray && wasArray) flags.calc = true;\n else changed();\n } else if (valObject._isLinkedToArray) {\n var arrayEditIndices = [];\n var extraIndices = false;\n if (!inArray) flags.arrays[key] = arrayEditIndices;\n var minLen = Math.min(oldVal.length, newVal.length);\n var maxLen = Math.max(oldVal.length, newVal.length);\n if (minLen !== maxLen) {\n if (valObject.editType === \"arraydraw\") {\n extraIndices = true;\n } else {\n changed();\n continue;\n }\n }\n for (i = 0; i < minLen; i++) {\n getDiffFlags(\n oldVal[i],\n newVal[i],\n parts.concat(i),\n // add array indices, but not if we're already in an array\n Lib.extendFlat({ inArray: key, arrayIndex: i }, opts)\n );\n }\n if (extraIndices) {\n for (i = minLen; i < maxLen; i++) {\n arrayEditIndices.push(i);\n }\n }\n } else if (!valType && Lib.isPlainObject(oldVal)) {\n getDiffFlags(oldVal, newVal, parts, opts);\n } else if (canBeDataArray) {\n if (wasArray && nowArray) {\n if (immutable) {\n flags.calc = true;\n }\n if (immutable || opts.newDataRevision) {\n changed();\n }\n } else if (wasArray !== nowArray) {\n flags.calc = true;\n } else changed();\n } else if (wasArray && nowArray) {\n if (oldVal.length !== newVal.length || String(oldVal) !== String(newVal)) {\n changed();\n }\n } else {\n changed();\n }\n }\n for (key in newContainer) {\n if (!(key in oldContainer || key.charAt(0) === \"_\" || typeof newContainer[key] === \"function\")) {\n valObject = getValObject(outerparts.concat(key));\n if (valObjectCanBeDataArray(valObject) && Array.isArray(newContainer[key])) {\n flags.calc = true;\n return;\n } else changed();\n }\n }\n }\n function diffConfig(oldConfig, newConfig) {\n var key;\n for (key in oldConfig) {\n if (key.charAt(0) === \"_\") continue;\n var oldVal = oldConfig[key];\n var newVal = newConfig[key];\n if (oldVal !== newVal) {\n if (Lib.isPlainObject(oldVal) && Lib.isPlainObject(newVal)) {\n if (diffConfig(oldVal, newVal)) {\n return true;\n }\n } else if (Array.isArray(oldVal) && Array.isArray(newVal)) {\n if (oldVal.length !== newVal.length) {\n return true;\n }\n for (var i = 0; i < oldVal.length; i++) {\n if (oldVal[i] !== newVal[i]) {\n if (Lib.isPlainObject(oldVal[i]) && Lib.isPlainObject(newVal[i])) {\n if (diffConfig(oldVal[i], newVal[i])) {\n return true;\n }\n } else {\n return true;\n }\n }\n }\n } else {\n return true;\n }\n }\n }\n }\n function animate(gd, frameOrGroupNameOrFrameList, animationOpts) {\n gd = Lib.getGraphDiv(gd);\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\n \"This element is not a Plotly plot: \" + gd + \". It's likely that you've failed to create a plot before animating it. For more details, see https://plotly.com/javascript/animations/\"\n );\n }\n var trans = gd._transitionData;\n if (!trans._frameQueue) {\n trans._frameQueue = [];\n }\n animationOpts = Plots.supplyAnimationDefaults(animationOpts);\n var transitionOpts = animationOpts.transition;\n var frameOpts = animationOpts.frame;\n if (trans._frameWaitingCnt === void 0) {\n trans._frameWaitingCnt = 0;\n }\n function getTransitionOpts(i) {\n if (Array.isArray(transitionOpts)) {\n if (i >= transitionOpts.length) {\n return transitionOpts[0];\n } else {\n return transitionOpts[i];\n }\n } else {\n return transitionOpts;\n }\n }\n function getFrameOpts(i) {\n if (Array.isArray(frameOpts)) {\n if (i >= frameOpts.length) {\n return frameOpts[0];\n } else {\n return frameOpts[i];\n }\n } else {\n return frameOpts;\n }\n }\n function callbackOnNthTime(cb, n) {\n var cnt = 0;\n return function() {\n if (cb && ++cnt === n) {\n return cb();\n }\n };\n }\n return new Promise(function(resolve, reject) {\n function discardExistingFrames() {\n if (trans._frameQueue.length === 0) {\n return;\n }\n while (trans._frameQueue.length) {\n var next = trans._frameQueue.pop();\n if (next.onInterrupt) {\n next.onInterrupt();\n }\n }\n gd.emit(\"plotly_animationinterrupted\", []);\n }\n function queueFrames(frameList2) {\n if (frameList2.length === 0) return;\n for (var i2 = 0; i2 < frameList2.length; i2++) {\n var computedFrame;\n if (frameList2[i2].type === \"byname\") {\n computedFrame = Plots.computeFrame(gd, frameList2[i2].name);\n } else {\n computedFrame = frameList2[i2].data;\n }\n var frameOpts2 = getFrameOpts(i2);\n var transitionOpts2 = getTransitionOpts(i2);\n transitionOpts2.duration = Math.min(transitionOpts2.duration, frameOpts2.duration);\n var nextFrame2 = {\n frame: computedFrame,\n name: frameList2[i2].name,\n frameOpts: frameOpts2,\n transitionOpts: transitionOpts2\n };\n if (i2 === frameList2.length - 1) {\n nextFrame2.onComplete = callbackOnNthTime(resolve, 2);\n nextFrame2.onInterrupt = reject;\n }\n trans._frameQueue.push(nextFrame2);\n }\n if (animationOpts.mode === \"immediate\") {\n trans._lastFrameAt = -Infinity;\n }\n if (!trans._animationRaf) {\n beginAnimationLoop();\n }\n }\n function stopAnimationLoop() {\n gd.emit(\"plotly_animated\");\n window.cancelAnimationFrame(trans._animationRaf);\n trans._animationRaf = null;\n }\n function nextFrame() {\n if (trans._currentFrame && trans._currentFrame.onComplete) {\n trans._currentFrame.onComplete();\n }\n var newFrame = trans._currentFrame = trans._frameQueue.shift();\n if (newFrame) {\n var stringName = newFrame.name ? newFrame.name.toString() : null;\n gd._fullLayout._currentFrame = stringName;\n trans._lastFrameAt = Date.now();\n trans._timeToNext = newFrame.frameOpts.duration;\n Plots.transition(\n gd,\n newFrame.frame.data,\n newFrame.frame.layout,\n helpers.coerceTraceIndices(gd, newFrame.frame.traces),\n newFrame.frameOpts,\n newFrame.transitionOpts\n ).then(function() {\n if (newFrame.onComplete) {\n newFrame.onComplete();\n }\n });\n gd.emit(\"plotly_animatingframe\", {\n name: stringName,\n frame: newFrame.frame,\n animation: {\n frame: newFrame.frameOpts,\n transition: newFrame.transitionOpts\n }\n });\n } else {\n stopAnimationLoop();\n }\n }\n function beginAnimationLoop() {\n gd.emit(\"plotly_animating\");\n trans._lastFrameAt = -Infinity;\n trans._timeToNext = 0;\n trans._runningTransitions = 0;\n trans._currentFrame = null;\n var doFrame = function() {\n trans._animationRaf = window.requestAnimationFrame(doFrame);\n if (Date.now() - trans._lastFrameAt > trans._timeToNext) {\n nextFrame();\n }\n };\n doFrame();\n }\n var configCounter = 0;\n function setTransitionConfig(frame2) {\n if (Array.isArray(transitionOpts)) {\n if (configCounter >= transitionOpts.length) {\n frame2.transitionOpts = transitionOpts[configCounter];\n } else {\n frame2.transitionOpts = transitionOpts[0];\n }\n } else {\n frame2.transitionOpts = transitionOpts;\n }\n configCounter++;\n return frame2;\n }\n var i, frame;\n var frameList = [];\n var allFrames = frameOrGroupNameOrFrameList === void 0 || frameOrGroupNameOrFrameList === null;\n var isFrameArray = Array.isArray(frameOrGroupNameOrFrameList);\n var isSingleFrame = !allFrames && !isFrameArray && Lib.isPlainObject(frameOrGroupNameOrFrameList);\n if (isSingleFrame) {\n frameList.push({\n type: \"object\",\n data: setTransitionConfig(Lib.extendFlat({}, frameOrGroupNameOrFrameList))\n });\n } else if (allFrames || [\"string\", \"number\"].indexOf(typeof frameOrGroupNameOrFrameList) !== -1) {\n for (i = 0; i < trans._frames.length; i++) {\n frame = trans._frames[i];\n if (!frame) continue;\n if (allFrames || String(frame.group) === String(frameOrGroupNameOrFrameList)) {\n frameList.push({\n type: \"byname\",\n name: String(frame.name),\n data: setTransitionConfig({ name: frame.name })\n });\n }\n }\n } else if (isFrameArray) {\n for (i = 0; i < frameOrGroupNameOrFrameList.length; i++) {\n var frameOrName = frameOrGroupNameOrFrameList[i];\n if ([\"number\", \"string\"].indexOf(typeof frameOrName) !== -1) {\n frameOrName = String(frameOrName);\n frameList.push({\n type: \"byname\",\n name: frameOrName,\n data: setTransitionConfig({ name: frameOrName })\n });\n } else if (Lib.isPlainObject(frameOrName)) {\n frameList.push({\n type: \"object\",\n data: setTransitionConfig(Lib.extendFlat({}, frameOrName))\n });\n }\n }\n }\n for (i = 0; i < frameList.length; i++) {\n frame = frameList[i];\n if (frame.type === \"byname\" && !trans._frameHash[frame.data.name]) {\n Lib.warn('animate failure: frame not found: \"' + frame.data.name + '\"');\n reject();\n return;\n }\n }\n if ([\"next\", \"immediate\"].indexOf(animationOpts.mode) !== -1) {\n discardExistingFrames();\n }\n if (animationOpts.direction === \"reverse\") {\n frameList.reverse();\n }\n var currentFrame = gd._fullLayout._currentFrame;\n if (currentFrame && animationOpts.fromcurrent) {\n var idx = -1;\n for (i = 0; i < frameList.length; i++) {\n frame = frameList[i];\n if (frame.type === \"byname\" && frame.name === currentFrame) {\n idx = i;\n break;\n }\n }\n if (idx > 0 && idx < frameList.length - 1) {\n var filteredFrameList = [];\n for (i = 0; i < frameList.length; i++) {\n frame = frameList[i];\n if (frameList[i].type !== \"byname\" || i > idx) {\n filteredFrameList.push(frame);\n }\n }\n frameList = filteredFrameList;\n }\n }\n if (frameList.length > 0) {\n queueFrames(frameList);\n } else {\n gd.emit(\"plotly_animated\");\n resolve();\n }\n });\n }\n function addFrames(gd, frameList, indices) {\n gd = Lib.getGraphDiv(gd);\n if (frameList === null || frameList === void 0) {\n return Promise.resolve();\n }\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\n \"This element is not a Plotly plot: \" + gd + \". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/\"\n );\n }\n var i, frame, j, idx;\n var _frames = gd._transitionData._frames;\n var _frameHash = gd._transitionData._frameHash;\n if (!Array.isArray(frameList)) {\n throw new Error(\"addFrames failure: frameList must be an Array of frame definitions\" + frameList);\n }\n var bigIndex = _frames.length + frameList.length * 2;\n var insertions = [];\n var _frameHashLocal = {};\n for (i = frameList.length - 1; i >= 0; i--) {\n if (!Lib.isPlainObject(frameList[i])) continue;\n var lookupName = frameList[i].name;\n var name2 = (_frameHash[lookupName] || _frameHashLocal[lookupName] || {}).name;\n var newName = frameList[i].name;\n var collisionPresent = _frameHash[name2] || _frameHashLocal[name2];\n if (name2 && newName && typeof newName === \"number\" && collisionPresent && numericNameWarningCount < numericNameWarningCountLimit) {\n numericNameWarningCount++;\n Lib.warn('addFrames: overwriting frame \"' + (_frameHash[name2] || _frameHashLocal[name2]).name + '\" with a frame whose name of type \"number\" also equates to \"' + name2 + '\". This is valid but may potentially lead to unexpected behavior since all plotly.js frame names are stored internally as strings.');\n if (numericNameWarningCount === numericNameWarningCountLimit) {\n Lib.warn(\"addFrames: This API call has yielded too many of these warnings. For the rest of this call, further warnings about numeric frame names will be suppressed.\");\n }\n }\n _frameHashLocal[lookupName] = { name: lookupName };\n insertions.push({\n frame: Plots.supplyFrameDefaults(frameList[i]),\n index: indices && indices[i] !== void 0 && indices[i] !== null ? indices[i] : bigIndex + i\n });\n }\n insertions.sort(function(a, b) {\n if (a.index > b.index) return -1;\n if (a.index < b.index) return 1;\n return 0;\n });\n var ops = [];\n var revops = [];\n var frameCount = _frames.length;\n for (i = insertions.length - 1; i >= 0; i--) {\n frame = insertions[i].frame;\n if (typeof frame.name === \"number\") {\n Lib.warn(\"Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings\");\n }\n if (!frame.name) {\n while (_frameHash[frame.name = \"frame \" + gd._transitionData._counter++]) ;\n }\n if (_frameHash[frame.name]) {\n for (j = 0; j < _frames.length; j++) {\n if ((_frames[j] || {}).name === frame.name) break;\n }\n ops.push({ type: \"replace\", index: j, value: frame });\n revops.unshift({ type: \"replace\", index: j, value: _frames[j] });\n } else {\n idx = Math.max(0, Math.min(insertions[i].index, frameCount));\n ops.push({ type: \"insert\", index: idx, value: frame });\n revops.unshift({ type: \"delete\", index: idx });\n frameCount++;\n }\n }\n var undoFunc = Plots.modifyFrames;\n var redoFunc = Plots.modifyFrames;\n var undoArgs = [gd, revops];\n var redoArgs = [gd, ops];\n if (Queue) Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return Plots.modifyFrames(gd, ops);\n }\n function deleteFrames(gd, frameList) {\n gd = Lib.getGraphDiv(gd);\n if (!Lib.isPlotDiv(gd)) {\n throw new Error(\"This element is not a Plotly plot: \" + gd);\n }\n var i, idx;\n var _frames = gd._transitionData._frames;\n var ops = [];\n var revops = [];\n if (!frameList) {\n frameList = [];\n for (i = 0; i < _frames.length; i++) {\n frameList.push(i);\n }\n }\n frameList = frameList.slice();\n frameList.sort();\n for (i = frameList.length - 1; i >= 0; i--) {\n idx = frameList[i];\n ops.push({ type: \"delete\", index: idx });\n revops.unshift({ type: \"insert\", index: idx, value: _frames[idx] });\n }\n var undoFunc = Plots.modifyFrames;\n var redoFunc = Plots.modifyFrames;\n var undoArgs = [gd, revops];\n var redoArgs = [gd, ops];\n if (Queue) Queue.add(gd, undoFunc, undoArgs, redoFunc, redoArgs);\n return Plots.modifyFrames(gd, ops);\n }\n function purge(gd) {\n gd = Lib.getGraphDiv(gd);\n var fullLayout = gd._fullLayout || {};\n var fullData = gd._fullData || [];\n Plots.cleanPlot([], {}, fullData, fullLayout);\n Plots.purge(gd);\n Events.purge(gd);\n if (fullLayout._container) fullLayout._container.remove();\n delete gd._context;\n return gd;\n }\n function calcInverseTransform(gd) {\n var fullLayout = gd._fullLayout;\n var newBBox = gd.getBoundingClientRect();\n if (Lib.equalDomRects(newBBox, fullLayout._lastBBox)) return;\n var m = fullLayout._invTransform = Lib.inverseTransformMatrix(Lib.getFullTransformMatrix(gd));\n fullLayout._invScaleX = Math.sqrt(m[0][0] * m[0][0] + m[0][1] * m[0][1] + m[0][2] * m[0][2]);\n fullLayout._invScaleY = Math.sqrt(m[1][0] * m[1][0] + m[1][1] * m[1][1] + m[1][2] * m[1][2]);\n fullLayout._lastBBox = newBBox;\n }\n function makePlotFramework(gd) {\n var gd3 = d3.select(gd);\n var fullLayout = gd._fullLayout;\n fullLayout._calcInverseTransform = calcInverseTransform;\n fullLayout._calcInverseTransform(gd);\n fullLayout._container = gd3.selectAll(\".plot-container\").data([0]);\n fullLayout._container.enter().insert(\"div\", \":first-child\").classed(\"plot-container\", true).classed(\"plotly\", true).style({\n width: \"100%\",\n height: \"100%\"\n });\n fullLayout._paperdiv = fullLayout._container.selectAll(\".svg-container\").data([0]);\n fullLayout._paperdiv.enter().append(\"div\").classed(\"user-select-none\", true).classed(\"svg-container\", true).style(\"position\", \"relative\");\n fullLayout._glcontainer = fullLayout._paperdiv.selectAll(\".gl-container\").data([{}]);\n fullLayout._glcontainer.enter().append(\"div\").classed(\"gl-container\", true);\n fullLayout._paperdiv.selectAll(\".main-svg\").remove();\n fullLayout._paperdiv.select(\".modebar-container\").remove();\n fullLayout._paper = fullLayout._paperdiv.insert(\"svg\", \":first-child\").classed(\"main-svg\", true);\n fullLayout._toppaper = fullLayout._paperdiv.append(\"svg\").classed(\"main-svg\", true);\n fullLayout._modebardiv = fullLayout._paperdiv.append(\"div\");\n delete fullLayout._modeBar;\n fullLayout._hoverpaper = fullLayout._paperdiv.append(\"svg\").classed(\"main-svg\", true);\n if (!fullLayout._uid) {\n var otherUids = {};\n d3.selectAll(\"defs\").each(function() {\n if (this.id) otherUids[this.id.split(\"-\")[1]] = 1;\n });\n fullLayout._uid = Lib.randstr(otherUids);\n }\n fullLayout._paperdiv.selectAll(\".main-svg\").attr(xmlnsNamespaces.svgAttrs);\n fullLayout._defs = fullLayout._paper.append(\"defs\").attr(\"id\", \"defs-\" + fullLayout._uid);\n fullLayout._clips = fullLayout._defs.append(\"g\").classed(\"clips\", true);\n fullLayout._topdefs = fullLayout._toppaper.append(\"defs\").attr(\"id\", \"topdefs-\" + fullLayout._uid);\n fullLayout._topclips = fullLayout._topdefs.append(\"g\").classed(\"clips\", true);\n fullLayout._bgLayer = fullLayout._paper.append(\"g\").classed(\"bglayer\", true);\n fullLayout._draggers = fullLayout._paper.append(\"g\").classed(\"draglayer\", true);\n var layerBelow = fullLayout._paper.append(\"g\").classed(\"layer-below\", true);\n fullLayout._imageLowerLayer = layerBelow.append(\"g\").classed(\"imagelayer\", true);\n fullLayout._shapeLowerLayer = layerBelow.append(\"g\").classed(\"shapelayer\", true);\n fullLayout._cartesianlayer = fullLayout._paper.append(\"g\").classed(\"cartesianlayer\", true);\n fullLayout._polarlayer = fullLayout._paper.append(\"g\").classed(\"polarlayer\", true);\n fullLayout._smithlayer = fullLayout._paper.append(\"g\").classed(\"smithlayer\", true);\n fullLayout._ternarylayer = fullLayout._paper.append(\"g\").classed(\"ternarylayer\", true);\n fullLayout._geolayer = fullLayout._paper.append(\"g\").classed(\"geolayer\", true);\n fullLayout._funnelarealayer = fullLayout._paper.append(\"g\").classed(\"funnelarealayer\", true);\n fullLayout._pielayer = fullLayout._paper.append(\"g\").classed(\"pielayer\", true);\n fullLayout._iciclelayer = fullLayout._paper.append(\"g\").classed(\"iciclelayer\", true);\n fullLayout._treemaplayer = fullLayout._paper.append(\"g\").classed(\"treemaplayer\", true);\n fullLayout._sunburstlayer = fullLayout._paper.append(\"g\").classed(\"sunburstlayer\", true);\n fullLayout._indicatorlayer = fullLayout._toppaper.append(\"g\").classed(\"indicatorlayer\", true);\n fullLayout._glimages = fullLayout._paper.append(\"g\").classed(\"glimages\", true);\n var layerAbove = fullLayout._toppaper.append(\"g\").classed(\"layer-above\", true);\n fullLayout._imageUpperLayer = layerAbove.append(\"g\").classed(\"imagelayer\", true);\n fullLayout._shapeUpperLayer = layerAbove.append(\"g\").classed(\"shapelayer\", true);\n fullLayout._selectionLayer = fullLayout._toppaper.append(\"g\").classed(\"selectionlayer\", true);\n fullLayout._infolayer = fullLayout._toppaper.append(\"g\").classed(\"infolayer\", true);\n fullLayout._menulayer = fullLayout._toppaper.append(\"g\").classed(\"menulayer\", true);\n fullLayout._zoomlayer = fullLayout._toppaper.append(\"g\").classed(\"zoomlayer\", true);\n fullLayout._hoverlayer = fullLayout._hoverpaper.append(\"g\").classed(\"hoverlayer\", true);\n fullLayout._modebardiv.classed(\"modebar-container\", true).style(\"position\", \"absolute\").style(\"top\", \"0px\").style(\"right\", \"0px\");\n gd.emit(\"plotly_framework\");\n }\n exports.animate = animate;\n exports.addFrames = addFrames;\n exports.deleteFrames = deleteFrames;\n exports.addTraces = addTraces;\n exports.deleteTraces = deleteTraces;\n exports.extendTraces = extendTraces;\n exports.moveTraces = moveTraces;\n exports.prependTraces = prependTraces;\n exports.newPlot = newPlot;\n exports._doPlot = _doPlot;\n exports.purge = purge;\n exports.react = react;\n exports.redraw = redraw;\n exports.relayout = relayout;\n exports.restyle = restyle;\n exports.setPlotConfig = setPlotConfig;\n exports.update = update;\n exports._guiRelayout = guiEdit(relayout);\n exports._guiRestyle = guiEdit(restyle);\n exports._guiUpdate = guiEdit(update);\n exports._storeDirectGUIEdit = _storeDirectGUIEdit;\n }\n });\n\n // src/snapshot/helpers.js\n var require_helpers10 = __commonJS({\n \"src/snapshot/helpers.js\"(exports) {\n \"use strict\";\n var Registry = require_registry();\n exports.getDelay = function(fullLayout) {\n if (!fullLayout._has) return 0;\n return fullLayout._has(\"gl3d\") || fullLayout._has(\"mapbox\") || fullLayout._has(\"map\") ? 500 : 0;\n };\n exports.getRedrawFunc = function(gd) {\n return function() {\n Registry.getComponentMethod(\"colorbar\", \"draw\")(gd);\n };\n };\n exports.encodeSVG = function(svg) {\n return \"data:image/svg+xml,\" + encodeURIComponent(svg);\n };\n exports.encodeJSON = function(json) {\n return \"data:application/json,\" + encodeURIComponent(json);\n };\n var DOM_URL = window.URL || window.webkitURL;\n exports.createObjectURL = function(blob) {\n return DOM_URL.createObjectURL(blob);\n };\n exports.revokeObjectURL = function(url) {\n return DOM_URL.revokeObjectURL(url);\n };\n exports.createBlob = function(url, format) {\n if (format === \"svg\") {\n return new window.Blob([url], { type: \"image/svg+xml;charset=utf-8\" });\n } else if (format === \"full-json\") {\n return new window.Blob([url], { type: \"application/json;charset=utf-8\" });\n } else {\n var binary = fixBinary(window.atob(url));\n return new window.Blob([binary], { type: \"image/\" + format });\n }\n };\n exports.octetStream = function(s) {\n document.location.href = \"data:application/octet-stream\" + s;\n };\n function fixBinary(b) {\n var len = b.length;\n var buf = new ArrayBuffer(len);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < len; i++) {\n arr[i] = b.charCodeAt(i);\n }\n return buf;\n }\n exports.IMAGE_URL_PREFIX = /^data:image\\/\\w+;base64,/;\n }\n });\n\n // src/snapshot/tosvg.js\n var require_tosvg = __commonJS({\n \"src/snapshot/tosvg.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var DOUBLEQUOTE_REGEX = /\"/g;\n var DUMMY_SUB = \"TOBESTRIPPED\";\n var DUMMY_REGEX = new RegExp('(\"' + DUMMY_SUB + \")|(\" + DUMMY_SUB + '\")', \"g\");\n function htmlEntityDecode(s) {\n var hiddenDiv = d3.select(\"body\").append(\"div\").style({ display: \"none\" }).html(\"\");\n var replaced = s.replace(/(&[^;]*;)/gi, function(d) {\n if (d === \"<\") {\n return \"<\";\n }\n if (d === \"&rt;\") {\n return \">\";\n }\n if (d.indexOf(\"<\") !== -1 || d.indexOf(\">\") !== -1) {\n return \"\";\n }\n return hiddenDiv.html(d).text();\n });\n hiddenDiv.remove();\n return replaced;\n }\n function xmlEntityEncode(str) {\n return str.replace(/&(?!\\w+;|\\#[0-9]+;| \\#x[0-9A-F]+;)/g, \"&\");\n }\n module.exports = function toSVG(gd, format, scale) {\n var fullLayout = gd._fullLayout;\n var svg = fullLayout._paper;\n var toppaper = fullLayout._toppaper;\n var width = fullLayout.width;\n var height = fullLayout.height;\n var i;\n svg.insert(\"rect\", \":first-child\").call(Drawing.setRect, 0, 0, width, height).call(Color2.fill, fullLayout.paper_bgcolor);\n var basePlotModules = fullLayout._basePlotModules || [];\n for (i = 0; i < basePlotModules.length; i++) {\n var _module = basePlotModules[i];\n if (_module.toSVG) _module.toSVG(gd);\n }\n if (toppaper) {\n var nodes = toppaper.node().childNodes;\n var topGroups = Array.prototype.slice.call(nodes);\n for (i = 0; i < topGroups.length; i++) {\n var topGroup = topGroups[i];\n if (topGroup.childNodes.length) svg.node().appendChild(topGroup);\n }\n }\n if (fullLayout._draggers) {\n fullLayout._draggers.remove();\n }\n svg.node().style.background = \"\";\n svg.selectAll(\"text\").attr({ \"data-unformatted\": null, \"data-math\": null }).each(function() {\n var txt = d3.select(this);\n if (this.style.visibility === \"hidden\" || this.style.display === \"none\") {\n txt.remove();\n return;\n } else {\n txt.style({ visibility: null, display: null });\n }\n var ff = this.style.fontFamily;\n if (ff && ff.indexOf('\"') !== -1) {\n txt.style(\"font-family\", ff.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));\n }\n var fw = this.style.fontWeight;\n if (fw && (fw === \"normal\" || fw === \"400\")) {\n txt.style(\"font-weight\", void 0);\n }\n var fs = this.style.fontStyle;\n if (fs && fs === \"normal\") {\n txt.style(\"font-style\", void 0);\n }\n var fv = this.style.fontVariant;\n if (fv && fv === \"normal\") {\n txt.style(\"font-variant\", void 0);\n }\n });\n svg.selectAll(\".gradient_filled,.pattern_filled\").each(function() {\n var pt = d3.select(this);\n var fill = this.style.fill;\n if (fill && fill.indexOf(\"url(\") !== -1) {\n pt.style(\"fill\", fill.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));\n }\n var stroke = this.style.stroke;\n if (stroke && stroke.indexOf(\"url(\") !== -1) {\n pt.style(\"stroke\", stroke.replace(DOUBLEQUOTE_REGEX, DUMMY_SUB));\n }\n });\n if (format === \"pdf\" || format === \"eps\") {\n svg.selectAll(\"#MathJax_SVG_glyphs path\").attr(\"stroke-width\", 0);\n }\n if (format === \"svg\" && scale) {\n svg.attr(\"width\", scale * width);\n svg.attr(\"height\", scale * height);\n svg.attr(\"viewBox\", \"0 0 \" + width + \" \" + height);\n }\n var s = new window.XMLSerializer().serializeToString(svg.node());\n s = htmlEntityDecode(s);\n s = xmlEntityEncode(s);\n s = s.replace(DUMMY_REGEX, \"'\");\n return s;\n };\n }\n });\n\n // src/snapshot/svgtoimg.js\n var require_svgtoimg = __commonJS({\n \"src/snapshot/svgtoimg.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var EventEmitter = require_events().EventEmitter;\n var helpers = require_helpers10();\n function svgToImg(opts) {\n var ev = opts.emitter || new EventEmitter();\n var promise = new Promise(function(resolve, reject) {\n var Image2 = window.Image;\n var svg = opts.svg;\n var format = opts.format || \"png\";\n var canvas = opts.canvas;\n var scale = opts.scale || 1;\n var w0 = opts.width || 300;\n var h0 = opts.height || 150;\n var w1 = scale * w0;\n var h1 = scale * h0;\n var ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n var img = new Image2();\n var svgBlob, url;\n if (format === \"svg\" || Lib.isSafari()) {\n url = helpers.encodeSVG(svg);\n } else {\n svgBlob = helpers.createBlob(svg, \"svg\");\n url = helpers.createObjectURL(svgBlob);\n }\n canvas.width = w1;\n canvas.height = h1;\n img.onload = function() {\n var imgData;\n svgBlob = null;\n helpers.revokeObjectURL(url);\n if (format !== \"svg\") {\n ctx.drawImage(img, 0, 0, w1, h1);\n }\n switch (format) {\n case \"jpeg\":\n imgData = canvas.toDataURL(\"image/jpeg\");\n break;\n case \"png\":\n imgData = canvas.toDataURL(\"image/png\");\n break;\n case \"webp\":\n imgData = canvas.toDataURL(\"image/webp\");\n break;\n case \"svg\":\n imgData = url;\n break;\n default:\n var errorMsg = \"Image format is not jpeg, png, svg or webp.\";\n reject(new Error(errorMsg));\n if (!opts.promise) {\n return ev.emit(\"error\", errorMsg);\n }\n }\n resolve(imgData);\n if (!opts.promise) {\n ev.emit(\"success\", imgData);\n }\n };\n img.onerror = function(err) {\n svgBlob = null;\n helpers.revokeObjectURL(url);\n reject(err);\n if (!opts.promise) {\n return ev.emit(\"error\", err);\n }\n };\n img.src = url;\n });\n if (opts.promise) {\n return promise;\n }\n return ev;\n }\n module.exports = svgToImg;\n }\n });\n\n // src/plot_api/to_image.js\n var require_to_image = __commonJS({\n \"src/plot_api/to_image.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var plotApi = require_plot_api();\n var plots = require_plots();\n var Lib = require_lib();\n var helpers = require_helpers10();\n var toSVG = require_tosvg();\n var svgToImg = require_svgtoimg();\n var version = require_version().version;\n var attrs = {\n format: {\n valType: \"enumerated\",\n values: [\"png\", \"jpeg\", \"webp\", \"svg\", \"full-json\"],\n dflt: \"png\"\n },\n width: {\n valType: \"number\",\n min: 1\n },\n height: {\n valType: \"number\",\n min: 1\n },\n scale: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n setBackground: {\n valType: \"any\",\n dflt: false\n },\n imageDataOnly: {\n valType: \"boolean\",\n dflt: false\n }\n };\n function toImage(gd, opts) {\n opts = opts || {};\n var data;\n var layout;\n var config;\n var fullLayout;\n if (Lib.isPlainObject(gd)) {\n data = gd.data || [];\n layout = gd.layout || {};\n config = gd.config || {};\n fullLayout = {};\n } else {\n gd = Lib.getGraphDiv(gd);\n data = Lib.extendDeep([], gd.data);\n layout = Lib.extendDeep({}, gd.layout);\n config = gd._context;\n fullLayout = gd._fullLayout || {};\n }\n function isImpliedOrValid(attr) {\n return !(attr in opts) || Lib.validate(opts[attr], attrs[attr]);\n }\n if (!isImpliedOrValid(\"width\") && opts.width !== null || !isImpliedOrValid(\"height\") && opts.height !== null) {\n throw new Error(\"Height and width should be pixel values.\");\n }\n if (!isImpliedOrValid(\"format\")) {\n throw new Error(\"Export format is not \" + Lib.join2(attrs.format.values, \", \", \" or \") + \".\");\n }\n var fullOpts = {};\n function coerce(attr, dflt) {\n return Lib.coerce(opts, fullOpts, attrs, attr, dflt);\n }\n var format = coerce(\"format\");\n var width = coerce(\"width\");\n var height = coerce(\"height\");\n var scale = coerce(\"scale\");\n var setBackground = coerce(\"setBackground\");\n var imageDataOnly = coerce(\"imageDataOnly\");\n var clonedGd = document.createElement(\"div\");\n clonedGd.style.position = \"absolute\";\n clonedGd.style.left = \"-5000px\";\n document.body.appendChild(clonedGd);\n var layoutImage = Lib.extendFlat({}, layout);\n if (width) {\n layoutImage.width = width;\n } else if (opts.width === null && isNumeric(fullLayout.width)) {\n layoutImage.width = fullLayout.width;\n }\n if (height) {\n layoutImage.height = height;\n } else if (opts.height === null && isNumeric(fullLayout.height)) {\n layoutImage.height = fullLayout.height;\n }\n var configImage = Lib.extendFlat({}, config, {\n _exportedPlot: true,\n staticPlot: true,\n setBackground\n });\n var redrawFunc = helpers.getRedrawFunc(clonedGd);\n function wait() {\n return new Promise(function(resolve) {\n setTimeout(resolve, helpers.getDelay(clonedGd._fullLayout));\n });\n }\n function convert() {\n return new Promise(function(resolve, reject) {\n var svg = toSVG(clonedGd, format, scale);\n var width2 = clonedGd._fullLayout.width;\n var height2 = clonedGd._fullLayout.height;\n function cleanup() {\n plotApi.purge(clonedGd);\n document.body.removeChild(clonedGd);\n }\n if (format === \"full-json\") {\n var json = plots.graphJson(clonedGd, false, \"keepdata\", \"object\", true, true);\n json.version = version;\n json = JSON.stringify(json);\n cleanup();\n if (imageDataOnly) {\n return resolve(json);\n } else {\n return resolve(helpers.encodeJSON(json));\n }\n }\n cleanup();\n if (format === \"svg\") {\n if (imageDataOnly) {\n return resolve(svg);\n } else {\n return resolve(helpers.encodeSVG(svg));\n }\n }\n var canvas = document.createElement(\"canvas\");\n canvas.id = Lib.randstr();\n svgToImg({\n format,\n width: width2,\n height: height2,\n scale,\n canvas,\n svg,\n // ask svgToImg to return a Promise\n // rather than EventEmitter\n // leave EventEmitter for backward\n // compatibility\n promise: true\n }).then(resolve).catch(reject);\n });\n }\n function urlToImageData(url) {\n if (imageDataOnly) {\n return url.replace(helpers.IMAGE_URL_PREFIX, \"\");\n } else {\n return url;\n }\n }\n return new Promise(function(resolve, reject) {\n plotApi.newPlot(clonedGd, data, layoutImage, configImage).then(redrawFunc).then(wait).then(convert).then(function(url) {\n resolve(urlToImageData(url));\n }).catch(function(err) {\n reject(err);\n });\n });\n }\n module.exports = toImage;\n }\n });\n\n // src/plot_api/validate.js\n var require_validate = __commonJS({\n \"src/plot_api/validate.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Plots = require_plots();\n var PlotSchema = require_plot_schema();\n var dfltConfig = require_plot_config().dfltConfig;\n var isPlainObject = Lib.isPlainObject;\n var isArray = Array.isArray;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n module.exports = function validate(data, layout) {\n if (data === void 0) data = [];\n if (layout === void 0) layout = {};\n var schema = PlotSchema.get();\n var errorList = [];\n var gd = { _context: Lib.extendFlat({}, dfltConfig) };\n var dataIn, layoutIn;\n if (isArray(data)) {\n gd.data = Lib.extendDeep([], data);\n dataIn = data;\n } else {\n gd.data = [];\n dataIn = [];\n errorList.push(format(\"array\", \"data\"));\n }\n if (isPlainObject(layout)) {\n gd.layout = Lib.extendDeep({}, layout);\n layoutIn = layout;\n } else {\n gd.layout = {};\n layoutIn = {};\n if (arguments.length > 1) {\n errorList.push(format(\"object\", \"layout\"));\n }\n }\n Plots.supplyDefaults(gd);\n var dataOut = gd._fullData;\n var len = dataIn.length;\n for (var i = 0; i < len; i++) {\n var traceIn = dataIn[i];\n var base = [\"data\", i];\n if (!isPlainObject(traceIn)) {\n errorList.push(format(\"object\", base));\n continue;\n }\n var traceOut = dataOut[i];\n var traceType = traceOut.type;\n var traceSchema = schema.traces[traceType].attributes;\n traceSchema.type = {\n valType: \"enumerated\",\n values: [traceType]\n };\n if (traceOut.visible === false && traceIn.visible !== false) {\n errorList.push(format(\"invisible\", base));\n }\n crawl(traceIn, traceOut, traceSchema, errorList, base);\n }\n var layoutOut = gd._fullLayout;\n var layoutSchema = fillLayoutSchema(schema, dataOut);\n crawl(layoutIn, layoutOut, layoutSchema, errorList, \"layout\");\n return errorList.length === 0 ? void 0 : errorList;\n };\n function crawl(objIn, objOut, schema, list, base, path) {\n path = path || [];\n var keys = Object.keys(objIn);\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n var p = path.slice();\n p.push(k);\n var valIn = objIn[k];\n var valOut = objOut[k];\n var nestedSchema = getNestedSchema(schema, k);\n var nestedValType = (nestedSchema || {}).valType;\n var isInfoArray = nestedValType === \"info_array\";\n var isColorscale = nestedValType === \"colorscale\";\n var items = (nestedSchema || {}).items;\n if (!isInSchema(schema, k)) {\n list.push(format(\"schema\", base, p));\n } else if (isPlainObject(valIn) && isPlainObject(valOut) && nestedValType !== \"any\") {\n crawl(valIn, valOut, nestedSchema, list, base, p);\n } else if (isInfoArray && isArray(valIn)) {\n if (valIn.length > valOut.length) {\n list.push(format(\"unused\", base, p.concat(valOut.length)));\n }\n var len = valOut.length;\n var arrayItems = Array.isArray(items);\n if (arrayItems) len = Math.min(len, items.length);\n var m, n, item, valInPart, valOutPart;\n if (nestedSchema.dimensions === 2) {\n for (n = 0; n < len; n++) {\n if (isArray(valIn[n])) {\n if (valIn[n].length > valOut[n].length) {\n list.push(format(\"unused\", base, p.concat(n, valOut[n].length)));\n }\n var len2 = valOut[n].length;\n for (m = 0; m < (arrayItems ? Math.min(len2, items[n].length) : len2); m++) {\n item = arrayItems ? items[n][m] : items;\n valInPart = valIn[n][m];\n valOutPart = valOut[n][m];\n if (!Lib.validate(valInPart, item)) {\n list.push(format(\"value\", base, p.concat(n, m), valInPart));\n } else if (valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format(\"dynamic\", base, p.concat(n, m), valInPart, valOutPart));\n }\n }\n } else {\n list.push(format(\"array\", base, p.concat(n), valIn[n]));\n }\n }\n } else {\n for (n = 0; n < len; n++) {\n item = arrayItems ? items[n] : items;\n valInPart = valIn[n];\n valOutPart = valOut[n];\n if (!Lib.validate(valInPart, item)) {\n list.push(format(\"value\", base, p.concat(n), valInPart));\n } else if (valOutPart !== valInPart && valOutPart !== +valInPart) {\n list.push(format(\"dynamic\", base, p.concat(n), valInPart, valOutPart));\n }\n }\n }\n } else if (nestedSchema.items && !isInfoArray && isArray(valIn)) {\n var _nestedSchema = items[Object.keys(items)[0]];\n var indexList = [];\n var j, _p;\n for (j = 0; j < valOut.length; j++) {\n var _index = valOut[j]._index || j;\n _p = p.slice();\n _p.push(_index);\n if (isPlainObject(valIn[_index]) && isPlainObject(valOut[j])) {\n indexList.push(_index);\n var valInj = valIn[_index];\n var valOutj = valOut[j];\n if (isPlainObject(valInj) && valInj.visible !== false && valOutj.visible === false) {\n list.push(format(\"invisible\", base, _p));\n } else crawl(valInj, valOutj, _nestedSchema, list, base, _p);\n }\n }\n for (j = 0; j < valIn.length; j++) {\n _p = p.slice();\n _p.push(j);\n if (!isPlainObject(valIn[j])) {\n list.push(format(\"object\", base, _p, valIn[j]));\n } else if (indexList.indexOf(j) === -1) {\n list.push(format(\"unused\", base, _p));\n }\n }\n } else if (!isPlainObject(valIn) && isPlainObject(valOut)) {\n list.push(format(\"object\", base, p, valIn));\n } else if (!isArrayOrTypedArray(valIn) && isArrayOrTypedArray(valOut) && !isInfoArray && !isColorscale) {\n list.push(format(\"array\", base, p, valIn));\n } else if (!(k in objOut)) {\n list.push(format(\"unused\", base, p, valIn));\n } else if (!Lib.validate(valIn, nestedSchema)) {\n list.push(format(\"value\", base, p, valIn));\n } else if (nestedSchema.valType === \"enumerated\" && (nestedSchema.coerceNumber && valIn !== +valOut || valIn !== valOut)) {\n list.push(format(\"dynamic\", base, p, valIn, valOut));\n }\n }\n return list;\n }\n function fillLayoutSchema(schema, dataOut) {\n var layoutSchema = schema.layout.layoutAttributes;\n for (var i = 0; i < dataOut.length; i++) {\n var traceOut = dataOut[i];\n var traceSchema = schema.traces[traceOut.type];\n var traceLayoutAttr = traceSchema.layoutAttributes;\n if (traceLayoutAttr) {\n if (traceOut.subplot) {\n Lib.extendFlat(layoutSchema[traceSchema.attributes.subplot.dflt], traceLayoutAttr);\n } else {\n Lib.extendFlat(layoutSchema, traceLayoutAttr);\n }\n }\n }\n return layoutSchema;\n }\n var code2msgFunc = {\n object: function(base, astr) {\n var prefix;\n if (base === \"layout\" && astr === \"\") prefix = \"The layout argument\";\n else if (base[0] === \"data\" && astr === \"\") {\n prefix = \"Trace \" + base[1] + \" in the data argument\";\n } else prefix = inBase(base) + \"key \" + astr;\n return prefix + \" must be linked to an object container\";\n },\n array: function(base, astr) {\n var prefix;\n if (base === \"data\") prefix = \"The data argument\";\n else prefix = inBase(base) + \"key \" + astr;\n return prefix + \" must be linked to an array container\";\n },\n schema: function(base, astr) {\n return inBase(base) + \"key \" + astr + \" is not part of the schema\";\n },\n unused: function(base, astr, valIn) {\n var target = isPlainObject(valIn) ? \"container\" : \"key\";\n return inBase(base) + target + \" \" + astr + \" did not get coerced\";\n },\n dynamic: function(base, astr, valIn, valOut) {\n return [\n inBase(base) + \"key\",\n astr,\n \"(set to '\" + valIn + \"')\",\n \"got reset to\",\n \"'\" + valOut + \"'\",\n \"during defaults.\"\n ].join(\" \");\n },\n invisible: function(base, astr) {\n return (astr ? inBase(base) + \"item \" + astr : \"Trace \" + base[1]) + \" got defaulted to be not visible\";\n },\n value: function(base, astr, valIn) {\n return [\n inBase(base) + \"key \" + astr,\n \"is set to an invalid value (\" + valIn + \")\"\n ].join(\" \");\n }\n };\n function inBase(base) {\n if (isArray(base)) return \"In data trace \" + base[1] + \", \";\n return \"In \" + base + \", \";\n }\n function format(code, base, path, valIn, valOut) {\n path = path || \"\";\n var container, trace;\n if (isArray(base)) {\n container = base[0];\n trace = base[1];\n } else {\n container = base;\n trace = null;\n }\n var astr = convertPathToAttributeString(path);\n var msg = code2msgFunc[code](base, astr, valIn, valOut);\n Lib.log(msg);\n return {\n code,\n container,\n trace,\n path,\n astr,\n msg\n };\n }\n function isInSchema(schema, key) {\n var parts = splitKey(key);\n var keyMinusId = parts.keyMinusId;\n var id = parts.id;\n if (keyMinusId in schema && schema[keyMinusId]._isSubplotObj && id) {\n return true;\n }\n return key in schema;\n }\n function getNestedSchema(schema, key) {\n if (key in schema) return schema[key];\n var parts = splitKey(key);\n return schema[parts.keyMinusId];\n }\n var idRegex = Lib.counterRegex(\"([a-z]+)\");\n function splitKey(key) {\n var idMatch = key.match(idRegex);\n return {\n keyMinusId: idMatch && idMatch[1],\n id: idMatch && idMatch[2]\n };\n }\n function convertPathToAttributeString(path) {\n if (!isArray(path)) return String(path);\n var astr = \"\";\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n if (typeof p === \"number\") {\n astr = astr.substr(0, astr.length - 1) + \"[\" + p + \"]\";\n } else {\n astr += p;\n }\n if (i < path.length - 1) astr += \".\";\n }\n return astr;\n }\n }\n });\n\n // src/snapshot/filesaver.js\n var require_filesaver = __commonJS({\n \"src/snapshot/filesaver.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var helpers = require_helpers10();\n function fileSaver(url, name2, format) {\n var saveLink = document.createElement(\"a\");\n var canUseSaveLink = \"download\" in saveLink;\n var promise = new Promise(function(resolve, reject) {\n var blob;\n var objectUrl;\n if (canUseSaveLink) {\n blob = helpers.createBlob(url, format);\n objectUrl = helpers.createObjectURL(blob);\n saveLink.href = objectUrl;\n saveLink.download = name2;\n document.body.appendChild(saveLink);\n saveLink.click();\n document.body.removeChild(saveLink);\n helpers.revokeObjectURL(objectUrl);\n blob = null;\n return resolve(name2);\n }\n if (Lib.isSafari()) {\n var prefix = format === \"svg\" ? \",\" : \";base64,\";\n helpers.octetStream(prefix + encodeURIComponent(url));\n return resolve(name2);\n }\n reject(new Error(\"download error\"));\n });\n return promise;\n }\n module.exports = fileSaver;\n }\n });\n\n // src/snapshot/download.js\n var require_download = __commonJS({\n \"src/snapshot/download.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var toImage = require_to_image();\n var fileSaver = require_filesaver();\n var helpers = require_helpers10();\n function downloadImage(gd, opts) {\n var _gd;\n if (!Lib.isPlainObject(gd)) _gd = Lib.getGraphDiv(gd);\n opts = opts || {};\n opts.format = opts.format || \"png\";\n opts.width = opts.width || null;\n opts.height = opts.height || null;\n opts.imageDataOnly = true;\n return new Promise(function(resolve, reject) {\n if (_gd && _gd._snapshotInProgress) {\n reject(new Error(\"Snapshotting already in progress.\"));\n }\n if (_gd) _gd._snapshotInProgress = true;\n var promise = toImage(gd, opts);\n var filename = opts.filename || gd.fn || \"newplot\";\n filename += \".\" + opts.format.replace(\"-\", \".\");\n promise.then(function(result) {\n if (_gd) _gd._snapshotInProgress = false;\n return fileSaver(result, filename, opts.format);\n }).then(function(name2) {\n resolve(name2);\n }).catch(function(err) {\n if (_gd) _gd._snapshotInProgress = false;\n reject(err);\n });\n });\n }\n module.exports = downloadImage;\n }\n });\n\n // src/plot_api/template_api.js\n var require_template_api = __commonJS({\n \"src/plot_api/template_api.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var isPlainObject = Lib.isPlainObject;\n var PlotSchema = require_plot_schema();\n var Plots = require_plots();\n var plotAttributes = require_attributes2();\n var Template = require_plot_template();\n var dfltConfig = require_plot_config().dfltConfig;\n exports.makeTemplate = function(figure) {\n figure = Lib.isPlainObject(figure) ? figure : Lib.getGraphDiv(figure);\n figure = Lib.extendDeep({ _context: dfltConfig }, { data: figure.data, layout: figure.layout });\n Plots.supplyDefaults(figure);\n var data = figure.data || [];\n var layout = figure.layout || {};\n layout._basePlotModules = figure._fullLayout._basePlotModules;\n layout._modules = figure._fullLayout._modules;\n var template = {\n data: {},\n layout: {}\n };\n data.forEach(function(trace) {\n var traceTemplate = {};\n walkStyleKeys(trace, traceTemplate, getTraceInfo.bind(null, trace));\n var traceType2 = Lib.coerce(trace, {}, plotAttributes, \"type\");\n var typeTemplates2 = template.data[traceType2];\n if (!typeTemplates2) typeTemplates2 = template.data[traceType2] = [];\n typeTemplates2.push(traceTemplate);\n });\n walkStyleKeys(layout, template.layout, getLayoutInfo.bind(null, layout));\n delete template.layout.template;\n var oldTemplate = layout.template;\n if (isPlainObject(oldTemplate)) {\n var oldLayoutTemplate = oldTemplate.layout;\n var i, traceType, oldTypeTemplates, oldTypeLen, typeTemplates, typeLen;\n if (isPlainObject(oldLayoutTemplate)) {\n mergeTemplates(oldLayoutTemplate, template.layout);\n }\n var oldDataTemplate = oldTemplate.data;\n if (isPlainObject(oldDataTemplate)) {\n for (traceType in template.data) {\n oldTypeTemplates = oldDataTemplate[traceType];\n if (Array.isArray(oldTypeTemplates)) {\n typeTemplates = template.data[traceType];\n typeLen = typeTemplates.length;\n oldTypeLen = oldTypeTemplates.length;\n for (i = 0; i < typeLen; i++) {\n mergeTemplates(oldTypeTemplates[i % oldTypeLen], typeTemplates[i]);\n }\n for (i = typeLen; i < oldTypeLen; i++) {\n typeTemplates.push(Lib.extendDeep({}, oldTypeTemplates[i]));\n }\n }\n }\n for (traceType in oldDataTemplate) {\n if (!(traceType in template.data)) {\n template.data[traceType] = Lib.extendDeep([], oldDataTemplate[traceType]);\n }\n }\n }\n }\n return template;\n };\n function mergeTemplates(oldTemplate, newTemplate) {\n oldTemplate = Lib.extendDeep({}, oldTemplate);\n var oldKeys = Object.keys(oldTemplate).sort();\n var i, j;\n function mergeOne(oldVal2, newVal, key3) {\n if (isPlainObject(newVal) && isPlainObject(oldVal2)) {\n mergeTemplates(oldVal2, newVal);\n } else if (Array.isArray(newVal) && Array.isArray(oldVal2)) {\n var templater = Template.arrayTemplater({ _template: oldTemplate }, key3);\n for (j = 0; j < newVal.length; j++) {\n var item = newVal[j];\n var oldItem = templater.newItem(item)._template;\n if (oldItem) mergeTemplates(oldItem, item);\n }\n var defaultItems = templater.defaultItems();\n for (j = 0; j < defaultItems.length; j++) newVal.push(defaultItems[j]._template);\n for (j = 0; j < newVal.length; j++) delete newVal[j].templateitemname;\n }\n }\n for (i = 0; i < oldKeys.length; i++) {\n var key = oldKeys[i];\n var oldVal = oldTemplate[key];\n if (key in newTemplate) {\n mergeOne(oldVal, newTemplate[key], key);\n } else newTemplate[key] = oldVal;\n if (getBaseKey(key) === key) {\n for (var key2 in newTemplate) {\n var baseKey2 = getBaseKey(key2);\n if (key2 !== baseKey2 && baseKey2 === key && !(key2 in oldTemplate)) {\n mergeOne(oldVal, newTemplate[key2], key);\n }\n }\n }\n }\n }\n function getBaseKey(key) {\n return key.replace(/[0-9]+$/, \"\");\n }\n function walkStyleKeys(parent, templateOut, getAttributeInfo, path, basePath) {\n var pathAttr = basePath && getAttributeInfo(basePath);\n for (var key in parent) {\n var child = parent[key];\n var nextPath = getNextPath(parent, key, path);\n var nextBasePath = getNextPath(parent, key, basePath);\n var attr = getAttributeInfo(nextBasePath);\n if (!attr) {\n var baseKey = getBaseKey(key);\n if (baseKey !== key) {\n nextBasePath = getNextPath(parent, baseKey, basePath);\n attr = getAttributeInfo(nextBasePath);\n }\n }\n if (pathAttr && pathAttr === attr) continue;\n if (!attr || attr._noTemplating || attr.valType === \"data_array\" || attr.arrayOk && Array.isArray(child)) {\n continue;\n }\n if (!attr.valType && isPlainObject(child)) {\n walkStyleKeys(child, templateOut, getAttributeInfo, nextPath, nextBasePath);\n } else if (attr._isLinkedToArray && Array.isArray(child)) {\n var dfltDone = false;\n var namedIndex = 0;\n var usedNames = {};\n for (var i = 0; i < child.length; i++) {\n var item = child[i];\n if (isPlainObject(item)) {\n var name2 = item.name;\n if (name2) {\n if (!usedNames[name2]) {\n walkStyleKeys(\n item,\n templateOut,\n getAttributeInfo,\n getNextPath(child, namedIndex, nextPath),\n getNextPath(child, namedIndex, nextBasePath)\n );\n namedIndex++;\n usedNames[name2] = 1;\n }\n } else if (!dfltDone) {\n var dfltKey = Template.arrayDefaultKey(key);\n var dfltPath = getNextPath(parent, dfltKey, path);\n var pathInArray = getNextPath(child, namedIndex, nextPath);\n walkStyleKeys(\n item,\n templateOut,\n getAttributeInfo,\n pathInArray,\n getNextPath(child, namedIndex, nextBasePath)\n );\n var itemPropInArray = Lib.nestedProperty(templateOut, pathInArray);\n var dfltProp = Lib.nestedProperty(templateOut, dfltPath);\n dfltProp.set(itemPropInArray.get());\n itemPropInArray.set(null);\n dfltDone = true;\n }\n }\n }\n } else {\n var templateProp = Lib.nestedProperty(templateOut, nextPath);\n templateProp.set(child);\n }\n }\n }\n function getLayoutInfo(layout, path) {\n return PlotSchema.getLayoutValObject(\n layout,\n Lib.nestedProperty({}, path).parts\n );\n }\n function getTraceInfo(trace, path) {\n return PlotSchema.getTraceValObject(\n trace,\n Lib.nestedProperty({}, path).parts\n );\n }\n function getNextPath(parent, key, path) {\n var nextPath;\n if (!path) nextPath = key;\n else if (Array.isArray(parent)) nextPath = path + \"[\" + key + \"]\";\n else nextPath = path + \".\" + key;\n return nextPath;\n }\n exports.validateTemplate = function(figureIn, template) {\n var figure = Lib.extendDeep({}, {\n _context: dfltConfig,\n data: figureIn.data,\n layout: figureIn.layout\n });\n var layout = figure.layout || {};\n if (!isPlainObject(template)) template = layout.template || {};\n var layoutTemplate = template.layout;\n var dataTemplate = template.data;\n var errorList = [];\n figure.layout = layout;\n figure.layout.template = template;\n Plots.supplyDefaults(figure);\n var fullLayout = figure._fullLayout;\n var fullData = figure._fullData;\n var layoutPaths = {};\n function crawlLayoutForContainers(obj, paths) {\n for (var key in obj) {\n if (key.charAt(0) !== \"_\" && isPlainObject(obj[key])) {\n var baseKey = getBaseKey(key);\n var nextPaths = [];\n var i2;\n for (i2 = 0; i2 < paths.length; i2++) {\n nextPaths.push(getNextPath(obj, key, paths[i2]));\n if (baseKey !== key) nextPaths.push(getNextPath(obj, baseKey, paths[i2]));\n }\n for (i2 = 0; i2 < nextPaths.length; i2++) {\n layoutPaths[nextPaths[i2]] = 1;\n }\n crawlLayoutForContainers(obj[key], nextPaths);\n }\n }\n }\n function crawlLayoutTemplateForContainers(obj, path) {\n for (var key in obj) {\n if (key.indexOf(\"defaults\") === -1 && isPlainObject(obj[key])) {\n var nextPath = getNextPath(obj, key, path);\n if (layoutPaths[nextPath]) {\n crawlLayoutTemplateForContainers(obj[key], nextPath);\n } else {\n errorList.push({ code: \"unused\", path: nextPath });\n }\n }\n }\n }\n if (!isPlainObject(layoutTemplate)) {\n errorList.push({ code: \"layout\" });\n } else {\n crawlLayoutForContainers(fullLayout, [\"layout\"]);\n crawlLayoutTemplateForContainers(layoutTemplate, \"layout\");\n }\n if (!isPlainObject(dataTemplate)) {\n errorList.push({ code: \"data\" });\n } else {\n var typeCount = {};\n var traceType;\n for (var i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n traceType = fullTrace.type;\n typeCount[traceType] = (typeCount[traceType] || 0) + 1;\n if (!fullTrace._fullInput._template) {\n errorList.push({\n code: \"missing\",\n index: fullTrace.index,\n traceType\n });\n }\n }\n for (traceType in dataTemplate) {\n var templateCount = dataTemplate[traceType].length;\n var dataCount = typeCount[traceType] || 0;\n if (templateCount > dataCount) {\n errorList.push({\n code: \"unused\",\n traceType,\n templateCount,\n dataCount\n });\n } else if (dataCount > templateCount) {\n errorList.push({\n code: \"reused\",\n traceType,\n templateCount,\n dataCount\n });\n }\n }\n }\n function crawlForMissingTemplates(obj, path) {\n for (var key in obj) {\n if (key.charAt(0) === \"_\") continue;\n var val = obj[key];\n var nextPath = getNextPath(obj, key, path);\n if (isPlainObject(val)) {\n if (Array.isArray(obj) && val._template === false && val.templateitemname) {\n errorList.push({\n code: \"missing\",\n path: nextPath,\n templateitemname: val.templateitemname\n });\n }\n crawlForMissingTemplates(val, nextPath);\n } else if (Array.isArray(val) && hasPlainObject(val)) {\n crawlForMissingTemplates(val, nextPath);\n }\n }\n }\n crawlForMissingTemplates({ data: fullData, layout: fullLayout }, \"\");\n if (errorList.length) return errorList.map(format);\n };\n function hasPlainObject(arr) {\n for (var i = 0; i < arr.length; i++) {\n if (isPlainObject(arr[i])) return true;\n }\n }\n function format(opts) {\n var msg;\n switch (opts.code) {\n case \"data\":\n msg = \"The template has no key data.\";\n break;\n case \"layout\":\n msg = \"The template has no key layout.\";\n break;\n case \"missing\":\n if (opts.path) {\n msg = \"There are no templates for item \" + opts.path + \" with name \" + opts.templateitemname;\n } else {\n msg = \"There are no templates for trace \" + opts.index + \", of type \" + opts.traceType + \".\";\n }\n break;\n case \"unused\":\n if (opts.path) {\n msg = \"The template item at \" + opts.path + \" was not used in constructing the plot.\";\n } else if (opts.dataCount) {\n msg = \"Some of the templates of type \" + opts.traceType + \" were not used. The template has \" + opts.templateCount + \" traces, the data only has \" + opts.dataCount + \" of this type.\";\n } else {\n msg = \"The template has \" + opts.templateCount + \" traces of type \" + opts.traceType + \" but there are none in the data.\";\n }\n break;\n case \"reused\":\n msg = \"Some of the templates of type \" + opts.traceType + \" were used more than once. The template has \" + opts.templateCount + \" traces, the data has \" + opts.dataCount + \" of this type.\";\n break;\n }\n opts.msg = msg;\n return opts;\n }\n }\n });\n\n // src/plot_api/index.js\n var require_plot_api2 = __commonJS({\n \"src/plot_api/index.js\"(exports) {\n \"use strict\";\n var main = require_plot_api();\n exports._doPlot = main._doPlot;\n exports.newPlot = main.newPlot;\n exports.restyle = main.restyle;\n exports.relayout = main.relayout;\n exports.redraw = main.redraw;\n exports.update = main.update;\n exports._guiRestyle = main._guiRestyle;\n exports._guiRelayout = main._guiRelayout;\n exports._guiUpdate = main._guiUpdate;\n exports._storeDirectGUIEdit = main._storeDirectGUIEdit;\n exports.react = main.react;\n exports.extendTraces = main.extendTraces;\n exports.prependTraces = main.prependTraces;\n exports.addTraces = main.addTraces;\n exports.deleteTraces = main.deleteTraces;\n exports.moveTraces = main.moveTraces;\n exports.purge = main.purge;\n exports.addFrames = main.addFrames;\n exports.deleteFrames = main.deleteFrames;\n exports.animate = main.animate;\n exports.setPlotConfig = main.setPlotConfig;\n var getGraphDiv = require_dom().getGraphDiv;\n var eraseActiveShape = require_draw2().eraseActiveShape;\n exports.deleteActiveShape = function(gd) {\n return eraseActiveShape(getGraphDiv(gd));\n };\n exports.toImage = require_to_image();\n exports.validate = require_validate();\n exports.downloadImage = require_download();\n var templateApi = require_template_api();\n exports.makeTemplate = templateApi.makeTemplate;\n exports.validateTemplate = templateApi.validateTemplate;\n }\n });\n\n // src/traces/scatter/xy_defaults.js\n var require_xy_defaults = __commonJS({\n \"src/traces/scatter/xy_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n module.exports = function handleXYDefaults(traceIn, traceOut, layout, coerce) {\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var len;\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n if (x) {\n var xlen = Lib.minRowLength(x);\n if (y) {\n len = Math.min(xlen, Lib.minRowLength(y));\n } else {\n len = xlen;\n coerce(\"y0\");\n coerce(\"dy\");\n }\n } else {\n if (!y) return 0;\n len = Lib.minRowLength(y);\n coerce(\"x0\");\n coerce(\"dx\");\n }\n traceOut._length = len;\n return len;\n };\n }\n });\n\n // src/traces/scatter/period_defaults.js\n var require_period_defaults = __commonJS({\n \"src/traces/scatter/period_defaults.js\"(exports, module) {\n \"use strict\";\n var dateTick0 = require_lib().dateTick0;\n var numConstants = require_numerical();\n var ONEWEEK = numConstants.ONEWEEK;\n function getPeriod0Dflt(period, calendar) {\n if (period % ONEWEEK === 0) {\n return dateTick0(calendar, 1);\n }\n return dateTick0(calendar, 0);\n }\n module.exports = function handlePeriodDefaults(traceIn, traceOut, layout, coerce, opts) {\n if (!opts) {\n opts = {\n x: true,\n y: true\n };\n }\n if (opts.x) {\n var xperiod = coerce(\"xperiod\");\n if (xperiod) {\n coerce(\"xperiod0\", getPeriod0Dflt(xperiod, traceOut.xcalendar));\n coerce(\"xperiodalignment\");\n }\n }\n if (opts.y) {\n var yperiod = coerce(\"yperiod\");\n if (yperiod) {\n coerce(\"yperiod0\", getPeriod0Dflt(yperiod, traceOut.ycalendar));\n coerce(\"yperiodalignment\");\n }\n }\n };\n }\n });\n\n // src/traces/scatter/stack_defaults.js\n var require_stack_defaults = __commonJS({\n \"src/traces/scatter/stack_defaults.js\"(exports, module) {\n \"use strict\";\n var perStackAttrs = [\"orientation\", \"groupnorm\", \"stackgaps\"];\n module.exports = function handleStackDefaults(traceIn, traceOut, layout, coerce) {\n var stackOpts = layout._scatterStackOpts;\n var stackGroup = coerce(\"stackgroup\");\n if (stackGroup) {\n var subplot = traceOut.xaxis + traceOut.yaxis;\n var subplotStackOpts = stackOpts[subplot];\n if (!subplotStackOpts) subplotStackOpts = stackOpts[subplot] = {};\n var groupOpts = subplotStackOpts[stackGroup];\n var firstTrace = false;\n if (groupOpts) {\n groupOpts.traces.push(traceOut);\n } else {\n groupOpts = subplotStackOpts[stackGroup] = {\n // keep track of trace indices for use during stacking calculations\n // this will be filled in during `calc` and used during `crossTraceCalc`\n // so it's OK if we don't recreate it during a non-calc edit\n traceIndices: [],\n // Hold on to the whole set of prior traces\n // First one is most important, so we can clear defaults\n // there if we find explicit values only in later traces.\n // We're only going to *use* the values stored in groupOpts,\n // but for the editor and validate we want things self-consistent\n // The full set of traces is used only to fix `fill` default if\n // we find `orientation: 'h'` beyond the first trace\n traces: [traceOut]\n };\n firstTrace = true;\n }\n var dflts = {\n orientation: traceOut.x && !traceOut.y ? \"h\" : \"v\"\n };\n for (var i = 0; i < perStackAttrs.length; i++) {\n var attr = perStackAttrs[i];\n var attrFound = attr + \"Found\";\n if (!groupOpts[attrFound]) {\n var traceHasAttr = traceIn[attr] !== void 0;\n var isOrientation = attr === \"orientation\";\n if (traceHasAttr || firstTrace) {\n groupOpts[attr] = coerce(attr, dflts[attr]);\n if (isOrientation) {\n groupOpts.fillDflt = groupOpts[attr] === \"h\" ? \"tonextx\" : \"tonexty\";\n }\n if (traceHasAttr) {\n groupOpts[attrFound] = true;\n if (!firstTrace) {\n delete groupOpts.traces[0][attr];\n if (isOrientation) {\n for (var j = 0; j < groupOpts.traces.length - 1; j++) {\n var trace2 = groupOpts.traces[j];\n if (trace2._input.fill !== trace2.fill) {\n trace2.fill = groupOpts.fillDflt;\n }\n }\n }\n }\n }\n }\n }\n }\n return groupOpts;\n }\n };\n }\n });\n\n // src/traces/scatter/marker_defaults.js\n var require_marker_defaults = __commonJS({\n \"src/traces/scatter/marker_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var subTypes = require_subtypes();\n module.exports = function markerDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n var isBubble = subTypes.isBubble(traceIn);\n var lineColor = (traceIn.line || {}).color;\n var defaultMLC;\n opts = opts || {};\n if (lineColor) defaultColor = lineColor;\n coerce(\"marker.symbol\");\n coerce(\"marker.opacity\", isBubble ? 0.7 : 1);\n coerce(\"marker.size\");\n if (!opts.noAngle) {\n coerce(\"marker.angle\");\n if (!opts.noAngleRef) {\n coerce(\"marker.angleref\");\n }\n if (!opts.noStandOff) {\n coerce(\"marker.standoff\");\n }\n }\n coerce(\"marker.color\", defaultColor);\n if (hasColorscale(traceIn, \"marker\")) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n }\n if (!opts.noSelect) {\n coerce(\"selected.marker.color\");\n coerce(\"unselected.marker.color\");\n coerce(\"selected.marker.size\");\n coerce(\"unselected.marker.size\");\n }\n if (!opts.noLine) {\n if (lineColor && !Array.isArray(lineColor) && traceOut.marker.color !== lineColor) {\n defaultMLC = lineColor;\n } else if (isBubble) defaultMLC = Color2.background;\n else defaultMLC = Color2.defaultLine;\n coerce(\"marker.line.color\", defaultMLC);\n if (hasColorscale(traceIn, \"marker.line\")) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.line.\", cLetter: \"c\" });\n }\n coerce(\"marker.line.width\", isBubble ? 1 : 0);\n }\n if (isBubble) {\n coerce(\"marker.sizeref\");\n coerce(\"marker.sizemin\");\n coerce(\"marker.sizemode\");\n }\n if (opts.gradient) {\n var gradientType = coerce(\"marker.gradient.type\");\n if (gradientType !== \"none\") {\n coerce(\"marker.gradient.color\");\n }\n }\n };\n }\n });\n\n // src/traces/scatter/line_defaults.js\n var require_line_defaults = __commonJS({\n \"src/traces/scatter/line_defaults.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n module.exports = function lineDefaults(traceIn, traceOut, defaultColor, layout, coerce, opts) {\n if (!opts) opts = {};\n var markerColor = (traceIn.marker || {}).color;\n if (markerColor && markerColor._inputArray) markerColor = markerColor._inputArray;\n coerce(\"line.color\", defaultColor);\n if (hasColorscale(traceIn, \"line\")) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"line.\", cLetter: \"c\" });\n } else {\n var lineColorDflt = (isArrayOrTypedArray(markerColor) ? false : markerColor) || defaultColor;\n coerce(\"line.color\", lineColorDflt);\n }\n coerce(\"line.width\");\n if (!opts.noDash) coerce(\"line.dash\");\n if (opts.backoff) coerce(\"line.backoff\");\n };\n }\n });\n\n // src/traces/scatter/line_shape_defaults.js\n var require_line_shape_defaults = __commonJS({\n \"src/traces/scatter/line_shape_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleLineShapeDefaults(traceIn, traceOut, coerce) {\n var shape = coerce(\"line.shape\");\n if (shape === \"spline\") coerce(\"line.smoothing\");\n };\n }\n });\n\n // src/traces/scatter/text_defaults.js\n var require_text_defaults = __commonJS({\n \"src/traces/scatter/text_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function(traceIn, traceOut, layout, coerce, opts) {\n opts = opts || {};\n coerce(\"textposition\");\n Lib.coerceFont(coerce, \"textfont\", opts.font || layout.font, opts);\n if (!opts.noSelect) {\n coerce(\"selected.textfont.color\");\n coerce(\"unselected.textfont.color\");\n }\n };\n }\n });\n\n // src/traces/scatter/fillcolor_defaults.js\n var require_fillcolor_defaults = __commonJS({\n \"src/traces/scatter/fillcolor_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n function averageColors(colorscale) {\n var color2 = Color2.interpolate(colorscale[0][1], colorscale[1][1], 0.5);\n for (var i = 2; i < colorscale.length; i++) {\n var averageColorI = Color2.interpolate(colorscale[i - 1][1], colorscale[i][1], 0.5);\n color2 = Color2.interpolate(color2, averageColorI, colorscale[i - 1][0] / colorscale[i][0]);\n }\n return color2;\n }\n module.exports = function fillColorDefaults(traceIn, traceOut, defaultColor, coerce, opts) {\n if (!opts) opts = {};\n var inheritColorFromMarker = false;\n if (traceOut.marker) {\n var markerColor = traceOut.marker.color;\n var markerLineColor = (traceOut.marker.line || {}).color;\n if (markerColor && !isArrayOrTypedArray(markerColor)) {\n inheritColorFromMarker = markerColor;\n } else if (markerLineColor && !isArrayOrTypedArray(markerLineColor)) {\n inheritColorFromMarker = markerLineColor;\n }\n }\n var averageGradientColor;\n if (opts.moduleHasFillgradient) {\n var gradientOrientation = coerce(\"fillgradient.type\");\n if (gradientOrientation !== \"none\") {\n coerce(\"fillgradient.start\");\n coerce(\"fillgradient.stop\");\n var gradientColorscale = coerce(\"fillgradient.colorscale\");\n if (gradientColorscale) {\n averageGradientColor = averageColors(gradientColorscale);\n }\n }\n }\n coerce(\"fillcolor\", Color2.addOpacity(\n (traceOut.line || {}).color || inheritColorFromMarker || averageGradientColor || defaultColor,\n 0.5\n ));\n };\n }\n });\n\n // src/traces/scatter/defaults.js\n var require_defaults8 = __commonJS({\n \"src/traces/scatter/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var attributes = require_attributes12();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleStackDefaults = require_stack_defaults();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var coercePattern = require_lib().coercePattern;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) traceOut.visible = false;\n if (!traceOut.visible) return;\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zorder\");\n var stackGroupOpts = handleStackDefaults(traceIn, traceOut, layout, coerce);\n if (layout.scattermode === \"group\" && traceOut.orientation === void 0) {\n coerce(\"orientation\", \"v\");\n }\n var defaultMode = !stackGroupOpts && len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n coerce(\"line.simplify\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\", stackGroupOpts ? stackGroupOpts.fillDflt : \"none\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce, {\n moduleHasFillgradient: true\n });\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n coercePattern(coerce, \"fillpattern\", traceOut.fillcolor, false);\n }\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"x\", inherit: \"y\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scatter/grouping_defaults.js\n var require_grouping_defaults = __commonJS({\n \"src/traces/scatter/grouping_defaults.js\"(exports, module) {\n \"use strict\";\n var getAxisGroup = require_constraints().getAxisGroup;\n module.exports = function handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, barmode) {\n var orientation = traceOut.orientation;\n var posAxId = traceOut[{ v: \"x\", h: \"y\" }[orientation] + \"axis\"];\n var groupId = getAxisGroup(fullLayout, posAxId) + orientation;\n var alignmentOpts = fullLayout._alignmentOpts || {};\n var alignmentgroup = coerce(\"alignmentgroup\");\n var alignmentGroups = alignmentOpts[groupId];\n if (!alignmentGroups) alignmentGroups = alignmentOpts[groupId] = {};\n var alignmentGroupOpts = alignmentGroups[alignmentgroup];\n if (alignmentGroupOpts) {\n alignmentGroupOpts.traces.push(traceOut);\n } else {\n alignmentGroupOpts = alignmentGroups[alignmentgroup] = {\n traces: [traceOut],\n alignmentIndex: Object.keys(alignmentGroups).length,\n offsetGroups: {}\n };\n }\n var offsetgroup = coerce(\"offsetgroup\") || \"\";\n var offsetGroups = alignmentGroupOpts.offsetGroups;\n var offsetGroupOpts = offsetGroups[offsetgroup];\n traceOut._offsetIndex = 0;\n if (barmode !== \"group\" || offsetgroup) {\n if (!offsetGroupOpts) {\n offsetGroupOpts = offsetGroups[offsetgroup] = {\n offsetIndex: Object.keys(offsetGroups).length\n };\n }\n traceOut._offsetIndex = offsetGroupOpts.offsetIndex;\n }\n };\n }\n });\n\n // src/traces/scatter/cross_trace_defaults.js\n var require_cross_trace_defaults2 = __commonJS({\n \"src/traces/scatter/cross_trace_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleGroupingDefaults = require_grouping_defaults();\n var attributes = require_attributes12();\n module.exports = function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut, i;\n var scattermode = fullLayout.scattermode;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n if (fullLayout.scattermode === \"group\") {\n for (i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceOut.type === \"scatter\") {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, scattermode);\n }\n }\n }\n for (i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if (tracei.type !== \"scatter\") continue;\n var filli = tracei.fill;\n if (filli === \"none\" || filli === \"toself\") continue;\n tracei.opacity = void 0;\n if (filli === \"tonexty\" || filli === \"tonextx\") {\n for (var j = i - 1; j >= 0; j--) {\n var tracej = fullData[j];\n if (tracej.type === \"scatter\" && tracej.xaxis === tracei.xaxis && tracej.yaxis === tracei.yaxis) {\n tracej.opacity = void 0;\n break;\n }\n }\n }\n }\n };\n }\n });\n\n // src/traces/scatter/layout_defaults.js\n var require_layout_defaults3 = __commonJS({\n \"src/traces/scatter/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes3();\n module.exports = function(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n var groupBarmode = layoutOut.barmode === \"group\";\n if (layoutOut.scattermode === \"group\") {\n coerce(\"scattergap\", groupBarmode ? layoutOut.bargap : 0.2);\n }\n };\n }\n });\n\n // src/plots/cartesian/align_period.js\n var require_align_period = __commonJS({\n \"src/plots/cartesian/align_period.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var dateTime2ms = Lib.dateTime2ms;\n var incrementMonth = Lib.incrementMonth;\n var constants = require_numerical();\n var ONEAVGMONTH = constants.ONEAVGMONTH;\n module.exports = function alignPeriod(trace, ax, axLetter, vals) {\n if (ax.type !== \"date\") return { vals };\n var alignment = trace[axLetter + \"periodalignment\"];\n if (!alignment) return { vals };\n var period = trace[axLetter + \"period\"];\n var mPeriod;\n if (isNumeric(period)) {\n period = +period;\n if (period <= 0) return { vals };\n } else if (typeof period === \"string\" && period.charAt(0) === \"M\") {\n var n = +period.substring(1);\n if (n > 0 && Math.round(n) === n) {\n mPeriod = n;\n } else return { vals };\n }\n var calendar = ax.calendar;\n var isStart = \"start\" === alignment;\n var isEnd = \"end\" === alignment;\n var period0 = trace[axLetter + \"period0\"];\n var base = dateTime2ms(period0, calendar) || 0;\n var newVals = [];\n var starts = [];\n var ends = [];\n var len = vals.length;\n for (var i = 0; i < len; i++) {\n var v = vals[i];\n var nEstimated, startTime, endTime;\n if (mPeriod) {\n nEstimated = Math.round((v - base) / (mPeriod * ONEAVGMONTH));\n endTime = incrementMonth(base, mPeriod * nEstimated, calendar);\n while (endTime > v) {\n endTime = incrementMonth(endTime, -mPeriod, calendar);\n }\n while (endTime <= v) {\n endTime = incrementMonth(endTime, mPeriod, calendar);\n }\n startTime = incrementMonth(endTime, -mPeriod, calendar);\n } else {\n nEstimated = Math.round((v - base) / period);\n endTime = base + nEstimated * period;\n while (endTime > v) {\n endTime -= period;\n }\n while (endTime <= v) {\n endTime += period;\n }\n startTime = endTime - period;\n }\n newVals[i] = isStart ? startTime : isEnd ? endTime : (startTime + endTime) / 2;\n starts[i] = startTime;\n ends[i] = endTime;\n }\n return {\n vals: newVals,\n starts,\n ends\n };\n };\n }\n });\n\n // src/traces/scatter/colorscale_calc.js\n var require_colorscale_calc = __commonJS({\n \"src/traces/scatter/colorscale_calc.js\"(exports, module) {\n \"use strict\";\n var hasColorscale = require_helpers().hasColorscale;\n var calcColorscale = require_calc();\n var subTypes = require_subtypes();\n module.exports = function calcMarkerColorscale(gd, trace) {\n if (subTypes.hasLines(trace) && hasColorscale(trace, \"line\")) {\n calcColorscale(gd, trace, {\n vals: trace.line.color,\n containerStr: \"line\",\n cLetter: \"c\"\n });\n }\n if (subTypes.hasMarkers(trace)) {\n if (hasColorscale(trace, \"marker\")) {\n calcColorscale(gd, trace, {\n vals: trace.marker.color,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n }\n if (hasColorscale(trace, \"marker.line\")) {\n calcColorscale(gd, trace, {\n vals: trace.marker.line.color,\n containerStr: \"marker.line\",\n cLetter: \"c\"\n });\n }\n }\n };\n }\n });\n\n // src/traces/scatter/arrays_to_calcdata.js\n var require_arrays_to_calcdata = __commonJS({\n \"src/traces/scatter/arrays_to_calcdata.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function arraysToCalcdata(cd, trace) {\n for (var i = 0; i < cd.length; i++) cd[i].i = i;\n Lib.mergeArray(trace.text, cd, \"tx\");\n Lib.mergeArray(trace.texttemplate, cd, \"txt\");\n Lib.mergeArray(trace.hovertext, cd, \"htx\");\n Lib.mergeArray(trace.customdata, cd, \"data\");\n Lib.mergeArray(trace.textposition, cd, \"tp\");\n if (trace.textfont) {\n Lib.mergeArrayCastPositive(trace.textfont.size, cd, \"ts\");\n Lib.mergeArray(trace.textfont.color, cd, \"tc\");\n Lib.mergeArray(trace.textfont.family, cd, \"tf\");\n Lib.mergeArray(trace.textfont.weight, cd, \"tw\");\n Lib.mergeArray(trace.textfont.style, cd, \"ty\");\n Lib.mergeArray(trace.textfont.variant, cd, \"tv\");\n Lib.mergeArray(trace.textfont.textcase, cd, \"tC\");\n Lib.mergeArray(trace.textfont.lineposition, cd, \"tE\");\n Lib.mergeArray(trace.textfont.shadow, cd, \"tS\");\n }\n var marker = trace.marker;\n if (marker) {\n Lib.mergeArrayCastPositive(marker.size, cd, \"ms\");\n Lib.mergeArrayCastPositive(marker.opacity, cd, \"mo\");\n Lib.mergeArray(marker.symbol, cd, \"mx\");\n Lib.mergeArray(marker.angle, cd, \"ma\");\n Lib.mergeArray(marker.standoff, cd, \"mf\");\n Lib.mergeArray(marker.color, cd, \"mc\");\n var markerLine = marker.line;\n if (marker.line) {\n Lib.mergeArray(markerLine.color, cd, \"mlc\");\n Lib.mergeArrayCastPositive(markerLine.width, cd, \"mlw\");\n }\n var markerGradient = marker.gradient;\n if (markerGradient && markerGradient.type !== \"none\") {\n Lib.mergeArray(markerGradient.type, cd, \"mgt\");\n Lib.mergeArray(markerGradient.color, cd, \"mgc\");\n }\n }\n };\n }\n });\n\n // src/traces/scatter/calc_selection.js\n var require_calc_selection = __commonJS({\n \"src/traces/scatter/calc_selection.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function calcSelection(cd, trace) {\n if (Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace);\n }\n };\n }\n });\n\n // src/traces/scatter/calc.js\n var require_calc3 = __commonJS({\n \"src/traces/scatter/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var BADNUM = require_numerical().BADNUM;\n var subTypes = require_subtypes();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = trace._xA = Axes.getFromId(gd, trace.xaxis || \"x\", \"x\");\n var ya = trace._yA = Axes.getFromId(gd, trace.yaxis || \"y\", \"y\");\n var origX = xa.makeCalcdata(trace, \"x\");\n var origY = ya.makeCalcdata(trace, \"y\");\n var xObj = alignPeriod(trace, xa, \"x\", origX);\n var yObj = alignPeriod(trace, ya, \"y\", origY);\n var x = xObj.vals;\n var y = yObj.vals;\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var ids = trace.ids;\n var stackGroupOpts = getStackOpts(trace, fullLayout, xa, ya);\n var interpolateGaps = false;\n var isV, i, j, k, interpolate, vali;\n setFirstScatter(fullLayout, trace);\n var xAttr = \"x\";\n var yAttr = \"y\";\n var posAttr;\n if (stackGroupOpts) {\n Lib.pushUnique(stackGroupOpts.traceIndices, trace.index);\n isV = stackGroupOpts.orientation === \"v\";\n if (isV) {\n yAttr = \"s\";\n posAttr = \"x\";\n } else {\n xAttr = \"s\";\n posAttr = \"y\";\n }\n interpolate = stackGroupOpts.stackgaps === \"interpolate\";\n } else {\n var ppad = calcMarkerSize(trace, serieslen);\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n }\n var hasPeriodX = !!trace.xperiodalignment;\n var hasPeriodY = !!trace.yperiodalignment;\n for (i = 0; i < serieslen; i++) {\n var cdi = cd[i] = {};\n var xValid = isNumeric(x[i]);\n var yValid = isNumeric(y[i]);\n if (xValid && yValid) {\n cdi[xAttr] = x[i];\n cdi[yAttr] = y[i];\n if (hasPeriodX) {\n cdi.orig_x = origX[i];\n cdi.xEnd = xObj.ends[i];\n cdi.xStart = xObj.starts[i];\n }\n if (hasPeriodY) {\n cdi.orig_y = origY[i];\n cdi.yEnd = yObj.ends[i];\n cdi.yStart = yObj.starts[i];\n }\n } else if (stackGroupOpts && (isV ? xValid : yValid)) {\n cdi[posAttr] = isV ? x[i] : y[i];\n cdi.gap = true;\n if (interpolate) {\n cdi.s = BADNUM;\n interpolateGaps = true;\n } else {\n cdi.s = 0;\n }\n } else {\n cdi[xAttr] = cdi[yAttr] = BADNUM;\n }\n if (ids) {\n cdi.id = String(ids[i]);\n }\n }\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n calcSelection(cd, trace);\n if (stackGroupOpts) {\n i = 0;\n while (i < cd.length) {\n if (cd[i][posAttr] === BADNUM) {\n cd.splice(i, 1);\n } else i++;\n }\n Lib.sort(cd, function(a, b) {\n return a[posAttr] - b[posAttr] || a.i - b.i;\n });\n if (interpolateGaps) {\n i = 0;\n while (i < cd.length - 1 && cd[i].gap) {\n i++;\n }\n vali = cd[i].s;\n if (!vali) vali = cd[i].s = 0;\n for (j = 0; j < i; j++) {\n cd[j].s = vali;\n }\n k = cd.length - 1;\n while (k > i && cd[k].gap) {\n k--;\n }\n vali = cd[k].s;\n for (j = cd.length - 1; j > k; j--) {\n cd[j].s = vali;\n }\n while (i < k) {\n i++;\n if (cd[i].gap) {\n j = i + 1;\n while (cd[j].gap) {\n j++;\n }\n var pos0 = cd[i - 1][posAttr];\n var size0 = cd[i - 1].s;\n var m = (cd[j].s - size0) / (cd[j][posAttr] - pos0);\n while (i < j) {\n cd[i].s = size0 + (cd[i][posAttr] - pos0) * m;\n i++;\n }\n }\n }\n }\n }\n return cd;\n }\n function calcAxisExpansion(gd, trace, xa, ya, x, y, ppad) {\n var serieslen = trace._length;\n var fullLayout = gd._fullLayout;\n var xId = xa._id;\n var yId = ya._id;\n var firstScatter = fullLayout._firstScatter[firstScatterGroup(trace)] === trace.uid;\n var stackOrientation = (getStackOpts(trace, fullLayout, xa, ya) || {}).orientation;\n var fill = trace.fill;\n xa._minDtick = 0;\n ya._minDtick = 0;\n var xOptions = { padded: true };\n var yOptions = { padded: true };\n if (ppad) {\n xOptions.ppad = yOptions.ppad = ppad;\n }\n var openEnded = serieslen < 2 || x[0] !== x[serieslen - 1] || y[0] !== y[serieslen - 1];\n if (openEnded && (fill === \"tozerox\" || fill === \"tonextx\" && (firstScatter || stackOrientation === \"h\"))) {\n xOptions.tozero = true;\n } else if (!(trace.error_y || {}).visible && // if no error bars, markers or text, or fill to y=0 remove x padding\n (fill === \"tonexty\" || fill === \"tozeroy\" || !subTypes.hasMarkers(trace) && !subTypes.hasText(trace))) {\n xOptions.padded = false;\n xOptions.ppad = 0;\n }\n if (openEnded && (fill === \"tozeroy\" || fill === \"tonexty\" && (firstScatter || stackOrientation === \"v\"))) {\n yOptions.tozero = true;\n } else if (fill === \"tonextx\" || fill === \"tozerox\") {\n yOptions.padded = false;\n }\n if (xId) trace._extremes[xId] = Axes.findExtremes(xa, x, xOptions);\n if (yId) trace._extremes[yId] = Axes.findExtremes(ya, y, yOptions);\n }\n function calcMarkerSize(trace, serieslen) {\n if (!subTypes.hasMarkers(trace)) return;\n var marker = trace.marker;\n var sizeref = 1.6 * (trace.marker.sizeref || 1);\n var markerTrans;\n if (trace.marker.sizemode === \"area\") {\n markerTrans = function(v) {\n return Math.max(Math.sqrt((v || 0) / sizeref), 3);\n };\n } else {\n markerTrans = function(v) {\n return Math.max((v || 0) / sizeref, 3);\n };\n }\n if (Lib.isArrayOrTypedArray(marker.size)) {\n var ax = { type: \"linear\" };\n Axes.setConvert(ax);\n var s = ax.makeCalcdata(trace.marker, \"size\");\n var sizeOut = new Array(serieslen);\n for (var i = 0; i < serieslen; i++) {\n sizeOut[i] = markerTrans(s[i]);\n }\n return sizeOut;\n } else {\n return markerTrans(marker.size);\n }\n }\n function setFirstScatter(fullLayout, trace) {\n var group = firstScatterGroup(trace);\n var firstScatter = fullLayout._firstScatter;\n if (!firstScatter[group]) firstScatter[group] = trace.uid;\n }\n function firstScatterGroup(trace) {\n var stackGroup = trace.stackgroup;\n return trace.xaxis + trace.yaxis + trace.type + (stackGroup ? \"-\" + stackGroup : \"\");\n }\n function getStackOpts(trace, fullLayout, xa, ya) {\n var stackGroup = trace.stackgroup;\n if (!stackGroup) return;\n var stackOpts = fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup];\n var stackAx = stackOpts.orientation === \"v\" ? ya : xa;\n if (stackAx.type === \"linear\" || stackAx.type === \"log\") return stackOpts;\n }\n module.exports = {\n calc,\n calcMarkerSize,\n calcAxisExpansion,\n setFirstScatter,\n getStackOpts\n };\n }\n });\n\n // src/traces/bar/sieve.js\n var require_sieve = __commonJS({\n \"src/traces/bar/sieve.js\"(exports, module) {\n \"use strict\";\n module.exports = Sieve;\n var distinctVals = require_lib().distinctVals;\n function Sieve(traces, opts) {\n this.traces = traces;\n this.sepNegVal = opts.sepNegVal;\n this.overlapNoMerge = opts.overlapNoMerge;\n var width1 = Infinity;\n var axLetter = opts.posAxis._id.charAt(0);\n var positions = [];\n for (var i = 0; i < traces.length; i++) {\n var trace = traces[i];\n for (var j = 0; j < trace.length; j++) {\n var bar = trace[j];\n var pos = bar.p;\n if (pos === void 0) {\n pos = bar[axLetter];\n }\n if (pos !== void 0) positions.push(pos);\n }\n if (trace[0] && trace[0].width1) {\n width1 = Math.min(trace[0].width1, width1);\n }\n }\n this.positions = positions;\n var dv = distinctVals(positions);\n this.distinctPositions = dv.vals;\n if (dv.vals.length === 1 && width1 !== Infinity) this.minDiff = width1;\n else this.minDiff = Math.min(dv.minDiff, width1);\n var type = (opts.posAxis || {}).type;\n if (type === \"category\" || type === \"multicategory\") {\n this.minDiff = 1;\n }\n this.binWidth = this.minDiff;\n this.bins = {};\n }\n Sieve.prototype.put = function put(position, group, value) {\n var label = this.getLabel(position, group, value);\n var oldValue = this.bins[label] || 0;\n this.bins[label] = oldValue + value;\n return oldValue;\n };\n Sieve.prototype.get = function get(position, group, value) {\n var label = this.getLabel(position, group, value);\n return this.bins[label] || 0;\n };\n Sieve.prototype.getLabel = function getLabel(position, group, value) {\n var prefix = value < 0 && this.sepNegVal ? \"v\" : \"^\";\n var label = this.overlapNoMerge ? position : Math.round(position / this.binWidth);\n return prefix + label + \"g\" + group;\n };\n }\n });\n\n // src/traces/bar/cross_trace_calc.js\n var require_cross_trace_calc = __commonJS({\n \"src/traces/bar/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var BADNUM = require_numerical().BADNUM;\n var Registry = require_registry();\n var Axes = require_axes();\n var getAxisGroup = require_constraints().getAxisGroup;\n var Sieve = require_sieve();\n function crossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n for (var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if (fullTrace.visible === true && Registry.traceIs(fullTrace, \"bar\") && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id) {\n if (fullTrace.orientation === \"h\") {\n calcTracesHorz.push(calcTraces[i]);\n } else {\n calcTracesVert.push(calcTraces[i]);\n }\n if (fullTrace._computePh) {\n var cd = gd.calcdata[i];\n for (var j = 0; j < cd.length; j++) {\n if (typeof cd[j].ph0 === \"function\") cd[j].ph0 = cd[j].ph0();\n if (typeof cd[j].ph1 === \"function\") cd[j].ph1 = cd[j].ph1();\n }\n }\n }\n }\n var opts = {\n xCat: xa.type === \"category\" || xa.type === \"multicategory\",\n yCat: ya.type === \"category\" || ya.type === \"multicategory\",\n mode: fullLayout.barmode,\n norm: fullLayout.barnorm,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n }\n function setGroupPositions(gd, pa, sa, calcTraces, opts) {\n if (!calcTraces.length) return;\n var excluded;\n var included;\n var i, calcTrace, fullTrace;\n initBase(sa, calcTraces);\n switch (opts.mode) {\n case \"overlay\":\n setGroupPositionsInOverlayMode(gd, pa, sa, calcTraces, opts);\n break;\n case \"group\":\n excluded = [];\n included = [];\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n if (fullTrace.offset === void 0) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n if (included.length) {\n setGroupPositionsInGroupMode(gd, pa, sa, included, opts);\n }\n if (excluded.length) {\n setGroupPositionsInOverlayMode(gd, pa, sa, excluded, opts);\n }\n break;\n case \"stack\":\n case \"relative\":\n excluded = [];\n included = [];\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n if (fullTrace.base === void 0) included.push(calcTrace);\n else excluded.push(calcTrace);\n }\n standardizeCornerradius(included);\n if (included.length) {\n setGroupPositionsInStackOrRelativeMode(gd, pa, sa, included, opts);\n }\n if (excluded.length) {\n setGroupPositionsInOverlayMode(gd, pa, sa, excluded, opts);\n }\n break;\n }\n setCornerradius(calcTraces);\n collectExtents(calcTraces, pa);\n }\n function setCornerradius(calcTraces) {\n var i, calcTrace, fullTrace, t, cr, crValue, crForm;\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n t = calcTrace[0].t;\n if (t.cornerradiusvalue === void 0) {\n cr = fullTrace.marker ? fullTrace.marker.cornerradius : void 0;\n if (cr !== void 0) {\n crValue = isNumeric(cr) ? +cr : +cr.slice(0, -1);\n crForm = isNumeric(cr) ? \"px\" : \"%\";\n t.cornerradiusvalue = crValue;\n t.cornerradiusform = crForm;\n }\n }\n }\n }\n function standardizeCornerradius(calcTraces) {\n if (calcTraces.length < 2) return;\n var i, calcTrace, fullTrace, t;\n var cr, crValue, crForm;\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n cr = fullTrace.marker ? fullTrace.marker.cornerradius : void 0;\n if (cr !== void 0) break;\n }\n if (cr !== void 0) {\n crValue = isNumeric(cr) ? +cr : +cr.slice(0, -1);\n crForm = isNumeric(cr) ? \"px\" : \"%\";\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n t = calcTrace[0].t;\n t.cornerradiusvalue = crValue;\n t.cornerradiusform = crForm;\n }\n }\n }\n function initBase(sa, calcTraces) {\n var i, j;\n for (i = 0; i < calcTraces.length; i++) {\n var cd = calcTraces[i];\n var trace = cd[0].trace;\n var base = trace.type === \"funnel\" ? trace._base : trace.base;\n var b;\n var scalendar = trace.orientation === \"h\" ? trace.xcalendar : trace.ycalendar;\n var d2c = sa.type === \"category\" || sa.type === \"multicategory\" ? function() {\n return null;\n } : sa.d2c;\n if (isArrayOrTypedArray(base)) {\n for (j = 0; j < Math.min(base.length, cd.length); j++) {\n b = d2c(base[j], 0, scalendar);\n if (isNumeric(b)) {\n cd[j].b = +b;\n cd[j].hasB = 1;\n } else cd[j].b = 0;\n }\n for (; j < cd.length; j++) {\n cd[j].b = 0;\n }\n } else {\n b = d2c(base, 0, scalendar);\n var hasBase = isNumeric(b);\n b = hasBase ? b : 0;\n for (j = 0; j < cd.length; j++) {\n cd[j].b = b;\n if (hasBase) cd[j].hasB = 1;\n }\n }\n }\n }\n function setGroupPositionsInOverlayMode(gd, pa, sa, calcTraces, opts) {\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var sieve = new Sieve([calcTrace], {\n posAxis: pa,\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n setOffsetAndWidth(gd, pa, sieve, opts);\n if (opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n }\n function setGroupPositionsInGroupMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n posAxis: pa,\n sepNegVal: false,\n overlapNoMerge: !opts.norm\n });\n setOffsetAndWidth(gd, pa, sieve, opts);\n unhideBarsWithinTrace(sieve, pa);\n if (opts.norm) {\n sieveBars(sieve);\n normalizeBars(sa, sieve, opts);\n } else {\n setBaseAndTop(sa, sieve);\n }\n }\n function setGroupPositionsInStackOrRelativeMode(gd, pa, sa, calcTraces, opts) {\n var sieve = new Sieve(calcTraces, {\n posAxis: pa,\n sepNegVal: opts.mode === \"relative\",\n overlapNoMerge: !(opts.norm || opts.mode === \"stack\" || opts.mode === \"relative\")\n });\n setOffsetAndWidth(gd, pa, sieve, opts);\n stackBars(sa, sieve, opts);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var offsetIndex = calcTrace[0].t.offsetindex;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n var isOutmostBar = bar.b + bar.s === sieve.get(bar.p, offsetIndex, bar.s);\n if (isOutmostBar) bar._outmost = true;\n }\n }\n }\n if (opts.norm) normalizeBars(sa, sieve, opts);\n }\n function setOffsetAndWidth(gd, pa, sieve, opts) {\n var fullLayout = gd._fullLayout;\n var positions = sieve.positions;\n var distinctPositions = sieve.distinctPositions;\n var minDiff = sieve.minDiff;\n var calcTraces = sieve.traces;\n var nTraces = calcTraces.length;\n var overlap = positions.length !== distinctPositions.length;\n var barGroupWidth = minDiff * (1 - opts.gap);\n var barWidthPlusGap;\n var barWidth;\n var offsetFromCenter;\n var alignmentGroups;\n if (pa._id === \"angularaxis\") {\n barWidthPlusGap = barGroupWidth;\n barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n offsetFromCenter = -barWidth / 2;\n } else {\n var groupId = getAxisGroup(fullLayout, pa._id) + calcTraces[0][0].trace.orientation;\n alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n }\n for (var i = 0; i < nTraces; i++) {\n var calcTrace = calcTraces[i];\n var trace = calcTrace[0].trace;\n if (pa._id !== \"angularaxis\") {\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n if (nOffsetGroups) {\n barWidthPlusGap = barGroupWidth / nOffsetGroups;\n } else {\n barWidthPlusGap = overlap ? barGroupWidth / nTraces : barGroupWidth;\n }\n barWidth = barWidthPlusGap * (1 - (opts.groupgap || 0));\n if (nOffsetGroups) {\n offsetFromCenter = ((2 * trace._offsetIndex + 1 - nOffsetGroups) * barWidthPlusGap - barWidth) / 2;\n } else {\n offsetFromCenter = overlap ? ((2 * i + 1 - nTraces) * barWidthPlusGap - barWidth) / 2 : -barWidth / 2;\n }\n }\n var t = calcTrace[0].t;\n t.barwidth = barWidth;\n t.offsetindex = trace._offsetIndex || 0;\n t.poffset = offsetFromCenter;\n t.bargroupwidth = barGroupWidth;\n t.bardelta = minDiff;\n }\n sieve.binWidth = calcTraces[0][0].t.barwidth / 100;\n applyAttributes(sieve);\n setBarCenterAndWidth(pa, sieve);\n if (pa._id === \"angularaxis\") {\n updatePositionAxis(pa, sieve);\n } else {\n updatePositionAxis(pa, sieve, overlap);\n }\n }\n function applyAttributes(sieve) {\n var calcTraces = sieve.traces;\n var i, j;\n for (i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var t = calcTrace0.t;\n var offset = fullTrace._offset || fullTrace.offset;\n var initialPoffset = t.poffset;\n var newPoffset;\n if (isArrayOrTypedArray(offset)) {\n newPoffset = Array.prototype.slice.call(offset, 0, calcTrace.length);\n for (j = 0; j < newPoffset.length; j++) {\n if (!isNumeric(newPoffset[j])) {\n newPoffset[j] = initialPoffset;\n }\n }\n for (j = newPoffset.length; j < calcTrace.length; j++) {\n newPoffset.push(initialPoffset);\n }\n t.poffset = newPoffset;\n } else if (offset !== void 0) {\n t.poffset = offset;\n }\n var width = fullTrace._width || fullTrace.width;\n var initialBarwidth = t.barwidth;\n if (isArrayOrTypedArray(width)) {\n var newBarwidth = Array.prototype.slice.call(width, 0, calcTrace.length);\n for (j = 0; j < newBarwidth.length; j++) {\n if (!isNumeric(newBarwidth[j])) newBarwidth[j] = initialBarwidth;\n }\n for (j = newBarwidth.length; j < calcTrace.length; j++) {\n newBarwidth.push(initialBarwidth);\n }\n t.barwidth = newBarwidth;\n if (offset === void 0) {\n newPoffset = [];\n for (j = 0; j < calcTrace.length; j++) {\n newPoffset.push(\n initialPoffset + (initialBarwidth - newBarwidth[j]) / 2\n );\n }\n t.poffset = newPoffset;\n }\n } else if (width !== void 0) {\n t.barwidth = width;\n if (offset === void 0) {\n t.poffset = initialPoffset + (initialBarwidth - width) / 2;\n }\n }\n }\n }\n function setBarCenterAndWidth(pa, sieve) {\n var calcTraces = sieve.traces;\n var pLetter = getAxisLetter(pa);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var t = calcTrace[0].t;\n var poffset = t.poffset;\n var poffsetIsArray = isArrayOrTypedArray(poffset);\n var barwidth = t.barwidth;\n var barwidthIsArray = isArrayOrTypedArray(barwidth);\n for (var j = 0; j < calcTrace.length; j++) {\n var calcBar = calcTrace[j];\n var width = calcBar.w = barwidthIsArray ? barwidth[j] : barwidth;\n if (calcBar.p === void 0) {\n calcBar.p = calcBar[pLetter];\n calcBar[\"orig_\" + pLetter] = calcBar[pLetter];\n }\n var delta = (poffsetIsArray ? poffset[j] : poffset) + width / 2;\n calcBar[pLetter] = calcBar.p + delta;\n }\n }\n }\n function updatePositionAxis(pa, sieve, allowMinDtick) {\n var calcTraces = sieve.traces;\n var minDiff = sieve.minDiff;\n var vpad = minDiff / 2;\n Axes.minDtick(pa, sieve.minDiff, sieve.distinctPositions[0], allowMinDtick);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var calcTrace0 = calcTrace[0];\n var fullTrace = calcTrace0.trace;\n var pts = [];\n var bar, l, r, j;\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n l = bar.p - vpad;\n r = bar.p + vpad;\n pts.push(l, r);\n }\n if (fullTrace.width || fullTrace.offset) {\n var t = calcTrace0.t;\n var poffset = t.poffset;\n var barwidth = t.barwidth;\n var poffsetIsArray = isArrayOrTypedArray(poffset);\n var barwidthIsArray = isArrayOrTypedArray(barwidth);\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n var calcBarOffset = poffsetIsArray ? poffset[j] : poffset;\n var calcBarWidth = barwidthIsArray ? barwidth[j] : barwidth;\n l = bar.p + calcBarOffset;\n r = l + calcBarWidth;\n pts.push(l, r);\n }\n }\n fullTrace._extremes[pa._id] = Axes.findExtremes(pa, pts, { padded: false });\n }\n }\n function setBaseAndTop(sa, sieve) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var isScatter = fullTrace.type === \"scatter\";\n var isVertical = fullTrace.orientation === \"v\";\n var pts = [];\n var tozero = false;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var base = isScatter ? 0 : bar.b;\n var top = isScatter ? isVertical ? bar.y : bar.x : base + bar.s;\n bar[sLetter] = top;\n pts.push(top);\n if (bar.hasB) pts.push(base);\n if (!bar.hasB || !bar.b) {\n tozero = true;\n }\n }\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero,\n padded: true\n });\n }\n }\n function stackBars(sa, sieve, opts) {\n var sLetter = getAxisLetter(sa);\n var calcTraces = sieve.traces;\n var calcTrace;\n var fullTrace;\n var isFunnel;\n var i, j;\n var bar;\n var offsetIndex;\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n if (fullTrace.type === \"funnel\") {\n offsetIndex = calcTrace[0].t.offsetindex;\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n sieve.put(bar.p, offsetIndex, -0.5 * bar.s);\n }\n }\n }\n }\n for (i = 0; i < calcTraces.length; i++) {\n calcTrace = calcTraces[i];\n fullTrace = calcTrace[0].trace;\n isFunnel = fullTrace.type === \"funnel\";\n offsetIndex = fullTrace.type === \"barpolar\" ? 0 : calcTrace[0].t.offsetindex;\n var pts = [];\n for (j = 0; j < calcTrace.length; j++) {\n bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n var value;\n if (isFunnel) {\n value = bar.s;\n } else {\n value = bar.s + bar.b;\n }\n var base = sieve.put(bar.p, offsetIndex, value);\n var top = base + value;\n bar.b = base;\n bar[sLetter] = top;\n if (!opts.norm) {\n pts.push(top);\n if (bar.hasB) {\n pts.push(base);\n }\n }\n }\n }\n if (!opts.norm) {\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n // N.B. we don't stack base with 'base',\n // so set tozero:true always!\n tozero: true,\n padded: true\n });\n }\n }\n }\n function sieveBars(sieve) {\n var calcTraces = sieve.traces;\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var offsetIndex = calcTrace[0].t.offsetindex;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n sieve.put(bar.p, offsetIndex, bar.b + bar.s);\n }\n }\n }\n }\n function unhideBarsWithinTrace(sieve, pa) {\n var calcTraces = sieve.traces;\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var fullTrace = calcTrace[0].trace;\n var offsetIndex = calcTrace[0].t.offsetindex;\n if (fullTrace.base === void 0) {\n var inTraceSieve = new Sieve([calcTrace], {\n posAxis: pa,\n sepNegVal: true,\n overlapNoMerge: true\n });\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.p !== BADNUM) {\n var base = inTraceSieve.put(bar.p, offsetIndex, bar.b + bar.s);\n if (base) bar.b = base;\n }\n }\n }\n }\n }\n function normalizeBars(sa, sieve, opts) {\n var calcTraces = sieve.traces;\n var sLetter = getAxisLetter(sa);\n var sTop = opts.norm === \"fraction\" ? 1 : 100;\n var sTiny = sTop / 1e9;\n var sMin = sa.l2c(sa.c2l(0));\n var sMax = opts.mode === \"stack\" ? sTop : sMin;\n function needsPadding(v) {\n return isNumeric(sa.c2l(v)) && (v < sMin - sTiny || v > sMax + sTiny || !isNumeric(sMin));\n }\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n var offsetIndex = calcTrace[0].t.offsetindex;\n var fullTrace = calcTrace[0].trace;\n var pts = [];\n var tozero = false;\n var padded = false;\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n if (bar.s !== BADNUM) {\n var scale = Math.abs(sTop / sieve.get(bar.p, offsetIndex, bar.s));\n bar.b *= scale;\n bar.s *= scale;\n var base = bar.b;\n var top = base + bar.s;\n bar[sLetter] = top;\n pts.push(top);\n padded = padded || needsPadding(top);\n if (bar.hasB) {\n pts.push(base);\n padded = padded || needsPadding(base);\n }\n if (!bar.hasB || !bar.b) {\n tozero = true;\n }\n }\n }\n fullTrace._extremes[sa._id] = Axes.findExtremes(sa, pts, {\n tozero,\n padded\n });\n }\n }\n function setHelperValuesForRoundedCorners(calcTraces, sMinByPos, sMaxByPos, pa) {\n var pLetter = getAxisLetter(pa);\n for (var i = 0; i < calcTraces.length; i++) {\n var calcTrace = calcTraces[i];\n for (var j = 0; j < calcTrace.length; j++) {\n var bar = calcTrace[j];\n var pos = bar[pLetter];\n bar._sMin = sMinByPos[pos];\n bar._sMax = sMaxByPos[pos];\n }\n }\n }\n function collectExtents(calcTraces, pa) {\n var pLetter = getAxisLetter(pa);\n var extents = {};\n var i, j, cd;\n var pMin = Infinity;\n var pMax = -Infinity;\n for (i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n for (j = 0; j < cd.length; j++) {\n var p = cd[j].p;\n if (isNumeric(p)) {\n pMin = Math.min(pMin, p);\n pMax = Math.max(pMax, p);\n }\n }\n }\n var roundFactor = 1e4 / (pMax - pMin);\n var round = extents.round = function(p2) {\n return String(Math.round(roundFactor * (p2 - pMin)));\n };\n var sMinByPos = {};\n var sMaxByPos = {};\n var anyTraceHasCornerradius = calcTraces.some(function(x) {\n var trace = x[0].trace;\n return \"marker\" in trace && trace.marker.cornerradius;\n });\n for (i = 0; i < calcTraces.length; i++) {\n cd = calcTraces[i];\n cd[0].t.extents = extents;\n var poffset = cd[0].t.poffset;\n var poffsetIsArray = isArrayOrTypedArray(poffset);\n for (j = 0; j < cd.length; j++) {\n var di = cd[j];\n var p0 = di[pLetter] - di.w / 2;\n if (isNumeric(p0)) {\n var p1 = di[pLetter] + di.w / 2;\n var pVal = round(di.p);\n if (extents[pVal]) {\n extents[pVal] = [Math.min(p0, extents[pVal][0]), Math.max(p1, extents[pVal][1])];\n } else {\n extents[pVal] = [p0, p1];\n }\n }\n di.p0 = di.p + (poffsetIsArray ? poffset[j] : poffset);\n di.p1 = di.p0 + di.w;\n di.s0 = di.b;\n di.s1 = di.s0 + di.s;\n if (anyTraceHasCornerradius) {\n var sMin = Math.min(di.s0, di.s1) || 0;\n var sMax = Math.max(di.s0, di.s1) || 0;\n var pos = di[pLetter];\n sMinByPos[pos] = pos in sMinByPos ? Math.min(sMinByPos[pos], sMin) : sMin;\n sMaxByPos[pos] = pos in sMaxByPos ? Math.max(sMaxByPos[pos], sMax) : sMax;\n }\n }\n }\n if (anyTraceHasCornerradius) {\n setHelperValuesForRoundedCorners(calcTraces, sMinByPos, sMaxByPos, pa);\n }\n }\n function getAxisLetter(ax) {\n return ax._id.charAt(0);\n }\n module.exports = {\n crossTraceCalc,\n setGroupPositions\n };\n }\n });\n\n // src/traces/scatter/cross_trace_calc.js\n var require_cross_trace_calc2 = __commonJS({\n \"src/traces/scatter/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var calc = require_calc3();\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n function groupCrossTraceCalc(gd, plotinfo) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var fullTraces = gd._fullData;\n var calcTraces = gd.calcdata;\n var calcTracesHorz = [];\n var calcTracesVert = [];\n for (var i = 0; i < fullTraces.length; i++) {\n var fullTrace = fullTraces[i];\n if (fullTrace.visible === true && fullTrace.type === \"scatter\" && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id) {\n if (fullTrace.orientation === \"h\") {\n calcTracesHorz.push(calcTraces[i]);\n } else if (fullTrace.orientation === \"v\") {\n calcTracesVert.push(calcTraces[i]);\n }\n }\n }\n var opts = {\n mode: fullLayout.scattermode,\n gap: fullLayout.scattergap\n };\n setGroupPositions(gd, xa, ya, calcTracesVert, opts);\n setGroupPositions(gd, ya, xa, calcTracesHorz, opts);\n }\n module.exports = function crossTraceCalc(gd, plotinfo) {\n if (gd._fullLayout.scattermode === \"group\") {\n groupCrossTraceCalc(gd, plotinfo);\n }\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var subplot = xa._id + ya._id;\n var subplotStackOpts = gd._fullLayout._scatterStackOpts[subplot];\n if (!subplotStackOpts) return;\n var calcTraces = gd.calcdata;\n var i, j, k, i2, cd, cd0, posj, sumj, norm;\n var groupOpts, interpolate, groupnorm, posAttr, valAttr;\n var hasAnyBlanks;\n for (var stackGroup in subplotStackOpts) {\n groupOpts = subplotStackOpts[stackGroup];\n var indices = groupOpts.traceIndices;\n if (!indices.length) continue;\n interpolate = groupOpts.stackgaps === \"interpolate\";\n groupnorm = groupOpts.groupnorm;\n if (groupOpts.orientation === \"v\") {\n posAttr = \"x\";\n valAttr = \"y\";\n } else {\n posAttr = \"y\";\n valAttr = \"x\";\n }\n hasAnyBlanks = new Array(indices.length);\n for (i = 0; i < hasAnyBlanks.length; i++) {\n hasAnyBlanks[i] = false;\n }\n cd0 = calcTraces[indices[0]];\n var allPositions = new Array(cd0.length);\n for (i = 0; i < cd0.length; i++) {\n allPositions[i] = cd0[i][posAttr];\n }\n for (i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n for (j = k = 0; j < cd.length; j++) {\n posj = cd[j][posAttr];\n for (; posj > allPositions[k] && k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n if (posj !== allPositions[k]) {\n for (i2 = 0; i2 < i; i2++) {\n insertBlank(calcTraces[indices[i2]], k, posj, i2, hasAnyBlanks, interpolate, posAttr);\n }\n allPositions.splice(k, 0, posj);\n }\n k++;\n }\n for (; k < allPositions.length; k++) {\n insertBlank(cd, j, allPositions[k], i, hasAnyBlanks, interpolate, posAttr);\n j++;\n }\n }\n var serieslen = allPositions.length;\n for (j = 0; j < cd0.length; j++) {\n sumj = cd0[j][valAttr] = cd0[j].s;\n for (i = 1; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n cd[0].trace._rawLength = cd[0].trace._length;\n cd[0].trace._length = serieslen;\n sumj += cd[j].s;\n cd[j][valAttr] = sumj;\n }\n if (groupnorm) {\n norm = (groupnorm === \"fraction\" ? sumj : sumj / 100) || 1;\n for (i = 0; i < indices.length; i++) {\n var cdj = calcTraces[indices[i]][j];\n cdj[valAttr] /= norm;\n cdj.sNorm = cdj.s / norm;\n }\n }\n }\n for (i = 0; i < indices.length; i++) {\n cd = calcTraces[indices[i]];\n var trace = cd[0].trace;\n var ppad = calc.calcMarkerSize(trace, trace._rawLength);\n var arrayPad = Array.isArray(ppad);\n if (ppad && hasAnyBlanks[i] || arrayPad) {\n var ppadRaw = ppad;\n ppad = new Array(serieslen);\n for (j = 0; j < serieslen; j++) {\n ppad[j] = cd[j].gap ? 0 : arrayPad ? ppadRaw[cd[j].i] : ppadRaw;\n }\n }\n var x = new Array(serieslen);\n var y = new Array(serieslen);\n for (j = 0; j < serieslen; j++) {\n x[j] = cd[j].x;\n y[j] = cd[j].y;\n }\n calc.calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n cd[0].t.orientation = groupOpts.orientation;\n }\n }\n };\n function insertBlank(calcTrace, index, position, traceIndex, hasAnyBlanks, interpolate, posAttr) {\n hasAnyBlanks[traceIndex] = true;\n var newEntry = {\n i: null,\n gap: true,\n s: 0\n };\n newEntry[posAttr] = position;\n calcTrace.splice(index, 0, newEntry);\n if (index && position === calcTrace[index - 1][posAttr]) {\n var prevEntry = calcTrace[index - 1];\n newEntry.s = prevEntry.s;\n newEntry.i = prevEntry.i;\n newEntry.gap = prevEntry.gap;\n } else if (interpolate) {\n newEntry.s = getInterp(calcTrace, index, position, posAttr);\n }\n if (!index) {\n calcTrace[0].t = calcTrace[1].t;\n calcTrace[0].trace = calcTrace[1].trace;\n delete calcTrace[1].t;\n delete calcTrace[1].trace;\n }\n }\n function getInterp(calcTrace, index, position, posAttr) {\n var pt0 = calcTrace[index - 1];\n var pt1 = calcTrace[index + 1];\n if (!pt1) return pt0.s;\n if (!pt0) return pt1.s;\n return pt0.s + (pt1.s - pt0.s) * (position - pt0[posAttr]) / (pt1[posAttr] - pt0[posAttr]);\n }\n }\n });\n\n // src/traces/scatter/line_points.js\n var require_line_points = __commonJS({\n \"src/traces/scatter/line_points.js\"(exports, module) {\n \"use strict\";\n var Drawing = require_drawing();\n var numConstants = require_numerical();\n var BADNUM = numConstants.BADNUM;\n var LOG_CLIP = numConstants.LOG_CLIP;\n var LOG_CLIP_PLUS = LOG_CLIP + 0.5;\n var LOG_CLIP_MINUS = LOG_CLIP - 0.5;\n var Lib = require_lib();\n var segmentsIntersect = Lib.segmentsIntersect;\n var constrain = Lib.constrain;\n var constants = require_constants8();\n module.exports = function linePoints(d, opts) {\n var trace = opts.trace || {};\n var xa = opts.xaxis;\n var ya = opts.yaxis;\n var xLog = xa.type === \"log\";\n var yLog = ya.type === \"log\";\n var xLen = xa._length;\n var yLen = ya._length;\n var backoff = opts.backoff;\n var marker = trace.marker;\n var connectGaps = opts.connectGaps;\n var baseTolerance = opts.baseTolerance;\n var shape = opts.shape;\n var linear2 = shape === \"linear\";\n var fill = trace.fill && trace.fill !== \"none\";\n var segments = [];\n var minTolerance = constants.minTolerance;\n var len = d.length;\n var pts = new Array(len);\n var pti = 0;\n var i;\n var clusterStartPt, clusterEndPt, clusterHighPt, clusterLowPt;\n var thisPt;\n var clusterHighFirst;\n var clusterUnitVector;\n var thisVector;\n var clusterRefDist, clusterHighVal, clusterLowVal, thisVal;\n var clusterMinDeviation, clusterMaxDeviation, thisDeviation;\n function getPt(index) {\n var di = d[index];\n if (!di) return false;\n var x = opts.linearized ? xa.l2p(di.x) : xa.c2p(di.x);\n var y = opts.linearized ? ya.l2p(di.y) : ya.c2p(di.y);\n if (x === BADNUM) {\n if (xLog) x = xa.c2p(di.x, true);\n if (x === BADNUM) return false;\n if (yLog && y === BADNUM) {\n x *= Math.abs(xa._m * yLen * (xa._m > 0 ? LOG_CLIP_PLUS : LOG_CLIP_MINUS) / (ya._m * xLen * (ya._m > 0 ? LOG_CLIP_PLUS : LOG_CLIP_MINUS)));\n }\n x *= 1e3;\n }\n if (y === BADNUM) {\n if (yLog) y = ya.c2p(di.y, true);\n if (y === BADNUM) return false;\n y *= 1e3;\n }\n return [x, y];\n }\n function crossesViewport(xFrac0, yFrac0, xFrac1, yFrac1) {\n var dx = xFrac1 - xFrac0;\n var dy = yFrac1 - yFrac0;\n var dx0 = 0.5 - xFrac0;\n var dy0 = 0.5 - yFrac0;\n var norm2 = dx * dx + dy * dy;\n var dot = dx * dx0 + dy * dy0;\n if (dot > 0 && dot < norm2) {\n var cross = dx0 * dy - dy0 * dx;\n if (cross * cross < norm2) return true;\n }\n }\n var latestXFrac, latestYFrac;\n function getTolerance(pt, nextPt2) {\n var xFrac = pt[0] / xLen;\n var yFrac = pt[1] / yLen;\n var offScreenFraction = Math.max(0, -xFrac, xFrac - 1, -yFrac, yFrac - 1);\n if (offScreenFraction && latestXFrac !== void 0 && crossesViewport(xFrac, yFrac, latestXFrac, latestYFrac)) {\n offScreenFraction = 0;\n }\n if (offScreenFraction && nextPt2 && crossesViewport(xFrac, yFrac, nextPt2[0] / xLen, nextPt2[1] / yLen)) {\n offScreenFraction = 0;\n }\n return (1 + constants.toleranceGrowth * offScreenFraction) * baseTolerance;\n }\n function ptDist(pt1, pt2) {\n var dx = pt1[0] - pt2[0];\n var dy = pt1[1] - pt2[1];\n return Math.sqrt(dx * dx + dy * dy);\n }\n var maxScreensAway = constants.maxScreensAway;\n var xEdge0 = -xLen * maxScreensAway;\n var xEdge1 = xLen * (1 + maxScreensAway);\n var yEdge0 = -yLen * maxScreensAway;\n var yEdge1 = yLen * (1 + maxScreensAway);\n var edges = [\n [xEdge0, yEdge0, xEdge1, yEdge0],\n [xEdge1, yEdge0, xEdge1, yEdge1],\n [xEdge1, yEdge1, xEdge0, yEdge1],\n [xEdge0, yEdge1, xEdge0, yEdge0]\n ];\n var xEdge, yEdge, lastXEdge, lastYEdge, lastFarPt, edgePt;\n function getLinearEdgeIntersections(pt1, pt2) {\n var out = [];\n var ptCount = 0;\n for (var i2 = 0; i2 < 4; i2++) {\n var edge = edges[i2];\n var ptInt = segmentsIntersect(\n pt1[0],\n pt1[1],\n pt2[0],\n pt2[1],\n edge[0],\n edge[1],\n edge[2],\n edge[3]\n );\n if (ptInt && (!ptCount || Math.abs(ptInt.x - out[0][0]) > 1 || Math.abs(ptInt.y - out[0][1]) > 1)) {\n ptInt = [ptInt.x, ptInt.y];\n if (ptCount && ptDist(ptInt, pt1) < ptDist(out[0], pt1)) out.unshift(ptInt);\n else out.push(ptInt);\n ptCount++;\n }\n }\n return out;\n }\n function onlyConstrainedPoint(pt) {\n if (pt[0] < xEdge0 || pt[0] > xEdge1 || pt[1] < yEdge0 || pt[1] > yEdge1) {\n return [constrain(pt[0], xEdge0, xEdge1), constrain(pt[1], yEdge0, yEdge1)];\n }\n }\n function sameEdge(pt1, pt2) {\n if (pt1[0] === pt2[0] && (pt1[0] === xEdge0 || pt1[0] === xEdge1)) return true;\n if (pt1[1] === pt2[1] && (pt1[1] === yEdge0 || pt1[1] === yEdge1)) return true;\n }\n function getHVEdgeIntersections(pt1, pt2) {\n var out = [];\n var ptInt1 = onlyConstrainedPoint(pt1);\n var ptInt2 = onlyConstrainedPoint(pt2);\n if (ptInt1 && ptInt2 && sameEdge(ptInt1, ptInt2)) return out;\n if (ptInt1) out.push(ptInt1);\n if (ptInt2) out.push(ptInt2);\n return out;\n }\n function getABAEdgeIntersections(dim, limit0, limit1) {\n return function(pt1, pt2) {\n var ptInt1 = onlyConstrainedPoint(pt1);\n var ptInt2 = onlyConstrainedPoint(pt2);\n var out = [];\n if (ptInt1 && ptInt2 && sameEdge(ptInt1, ptInt2)) return out;\n if (ptInt1) out.push(ptInt1);\n if (ptInt2) out.push(ptInt2);\n var midShift = 2 * Lib.constrain((pt1[dim] + pt2[dim]) / 2, limit0, limit1) - ((ptInt1 || pt1)[dim] + (ptInt2 || pt2)[dim]);\n if (midShift) {\n var ptToAlter;\n if (ptInt1 && ptInt2) {\n ptToAlter = midShift > 0 === ptInt1[dim] > ptInt2[dim] ? ptInt1 : ptInt2;\n } else ptToAlter = ptInt1 || ptInt2;\n ptToAlter[dim] += midShift;\n }\n return out;\n };\n }\n var getEdgeIntersections;\n if (shape === \"linear\" || shape === \"spline\") {\n getEdgeIntersections = getLinearEdgeIntersections;\n } else if (shape === \"hv\" || shape === \"vh\") {\n getEdgeIntersections = getHVEdgeIntersections;\n } else if (shape === \"hvh\") getEdgeIntersections = getABAEdgeIntersections(0, xEdge0, xEdge1);\n else if (shape === \"vhv\") getEdgeIntersections = getABAEdgeIntersections(1, yEdge0, yEdge1);\n function getClosestCorner(pt1, pt2) {\n var dx = pt2[0] - pt1[0];\n var m = (pt2[1] - pt1[1]) / dx;\n var b = (pt1[1] * pt2[0] - pt2[1] * pt1[0]) / dx;\n if (b > 0) return [m > 0 ? xEdge0 : xEdge1, yEdge1];\n else return [m > 0 ? xEdge1 : xEdge0, yEdge0];\n }\n function updateEdge(pt) {\n var x = pt[0];\n var y = pt[1];\n var xSame = x === pts[pti - 1][0];\n var ySame = y === pts[pti - 1][1];\n if (xSame && ySame) return;\n if (pti > 1) {\n var xSame2 = x === pts[pti - 2][0];\n var ySame2 = y === pts[pti - 2][1];\n if (xSame && (x === xEdge0 || x === xEdge1) && xSame2) {\n if (ySame2) pti--;\n else pts[pti - 1] = pt;\n } else if (ySame && (y === yEdge0 || y === yEdge1) && ySame2) {\n if (xSame2) pti--;\n else pts[pti - 1] = pt;\n } else pts[pti++] = pt;\n } else pts[pti++] = pt;\n }\n function updateEdgesForReentry(pt) {\n if (pts[pti - 1][0] !== pt[0] && pts[pti - 1][1] !== pt[1]) {\n updateEdge([lastXEdge, lastYEdge]);\n }\n updateEdge(pt);\n lastFarPt = null;\n lastXEdge = lastYEdge = 0;\n }\n var arrayMarker = Lib.isArrayOrTypedArray(marker);\n function addPt(pt) {\n if (pt && backoff) {\n pt.i = i;\n pt.d = d;\n pt.trace = trace;\n pt.marker = arrayMarker ? marker[pt.i] : marker;\n pt.backoff = backoff;\n }\n latestXFrac = pt[0] / xLen;\n latestYFrac = pt[1] / yLen;\n xEdge = pt[0] < xEdge0 ? xEdge0 : pt[0] > xEdge1 ? xEdge1 : 0;\n yEdge = pt[1] < yEdge0 ? yEdge0 : pt[1] > yEdge1 ? yEdge1 : 0;\n if (xEdge || yEdge) {\n if (!pti) {\n pts[pti++] = [xEdge || pt[0], yEdge || pt[1]];\n } else if (lastFarPt) {\n var intersections = getEdgeIntersections(lastFarPt, pt);\n if (intersections.length > 1) {\n updateEdgesForReentry(intersections[0]);\n pts[pti++] = intersections[1];\n }\n } else {\n edgePt = getEdgeIntersections(pts[pti - 1], pt)[0];\n pts[pti++] = edgePt;\n }\n var lastPt = pts[pti - 1];\n if (xEdge && yEdge && (lastPt[0] !== xEdge || lastPt[1] !== yEdge)) {\n if (lastFarPt) {\n if (lastXEdge !== xEdge && lastYEdge !== yEdge) {\n if (lastXEdge && lastYEdge) {\n updateEdge(getClosestCorner(lastFarPt, pt));\n } else {\n updateEdge([lastXEdge || xEdge, lastYEdge || yEdge]);\n }\n } else if (lastXEdge && lastYEdge) {\n updateEdge([lastXEdge, lastYEdge]);\n }\n }\n updateEdge([xEdge, yEdge]);\n } else if (lastXEdge - xEdge && lastYEdge - yEdge) {\n updateEdge([xEdge || lastXEdge, yEdge || lastYEdge]);\n }\n lastFarPt = pt;\n lastXEdge = xEdge;\n lastYEdge = yEdge;\n } else {\n if (lastFarPt) {\n updateEdgesForReentry(getEdgeIntersections(lastFarPt, pt)[0]);\n }\n pts[pti++] = pt;\n }\n }\n for (i = 0; i < len; i++) {\n clusterStartPt = getPt(i);\n if (!clusterStartPt) continue;\n pti = 0;\n lastFarPt = null;\n addPt(clusterStartPt);\n for (i++; i < len; i++) {\n clusterHighPt = getPt(i);\n if (!clusterHighPt) {\n if (connectGaps) continue;\n else break;\n }\n if (!linear2 || !opts.simplify) {\n addPt(clusterHighPt);\n continue;\n }\n var nextPt = getPt(i + 1);\n clusterRefDist = ptDist(clusterHighPt, clusterStartPt);\n if (!(fill && (pti === 0 || pti === len - 1)) && clusterRefDist < getTolerance(clusterHighPt, nextPt) * minTolerance) continue;\n clusterUnitVector = [\n (clusterHighPt[0] - clusterStartPt[0]) / clusterRefDist,\n (clusterHighPt[1] - clusterStartPt[1]) / clusterRefDist\n ];\n clusterLowPt = clusterStartPt;\n clusterHighVal = clusterRefDist;\n clusterLowVal = clusterMinDeviation = clusterMaxDeviation = 0;\n clusterHighFirst = false;\n clusterEndPt = clusterHighPt;\n for (i++; i < d.length; i++) {\n thisPt = nextPt;\n nextPt = getPt(i + 1);\n if (!thisPt) {\n if (connectGaps) continue;\n else break;\n }\n thisVector = [\n thisPt[0] - clusterStartPt[0],\n thisPt[1] - clusterStartPt[1]\n ];\n thisDeviation = thisVector[0] * clusterUnitVector[1] - thisVector[1] * clusterUnitVector[0];\n clusterMinDeviation = Math.min(clusterMinDeviation, thisDeviation);\n clusterMaxDeviation = Math.max(clusterMaxDeviation, thisDeviation);\n if (clusterMaxDeviation - clusterMinDeviation > getTolerance(thisPt, nextPt)) break;\n clusterEndPt = thisPt;\n thisVal = thisVector[0] * clusterUnitVector[0] + thisVector[1] * clusterUnitVector[1];\n if (thisVal > clusterHighVal) {\n clusterHighVal = thisVal;\n clusterHighPt = thisPt;\n clusterHighFirst = false;\n } else if (thisVal < clusterLowVal) {\n clusterLowVal = thisVal;\n clusterLowPt = thisPt;\n clusterHighFirst = true;\n }\n }\n if (clusterHighFirst) {\n addPt(clusterHighPt);\n if (clusterEndPt !== clusterLowPt) addPt(clusterLowPt);\n } else {\n if (clusterLowPt !== clusterStartPt) addPt(clusterLowPt);\n if (clusterEndPt !== clusterHighPt) addPt(clusterHighPt);\n }\n addPt(clusterEndPt);\n if (i >= d.length || !thisPt) break;\n addPt(thisPt);\n clusterStartPt = thisPt;\n }\n if (lastFarPt) updateEdge([lastXEdge || lastFarPt[0], lastYEdge || lastFarPt[1]]);\n segments.push(pts.slice(0, pti));\n }\n var lastShapeChar = shape.slice(shape.length - 1);\n if (backoff && lastShapeChar !== \"h\" && lastShapeChar !== \"v\") {\n var trimmed = false;\n var n = -1;\n var newSegments = [];\n for (var j = 0; j < segments.length; j++) {\n for (var k = 0; k < segments[j].length - 1; k++) {\n var start = segments[j][k];\n var end = segments[j][k + 1];\n var xy = Drawing.applyBackoff(end, start);\n if (xy[0] !== end[0] || xy[1] !== end[1]) {\n trimmed = true;\n }\n if (!newSegments[n + 1]) {\n n++;\n newSegments[n] = [\n start,\n [xy[0], xy[1]]\n ];\n }\n }\n }\n return trimmed ? newSegments : segments;\n }\n return segments;\n };\n }\n });\n\n // src/traces/scatter/link_traces.js\n var require_link_traces = __commonJS({\n \"src/traces/scatter/link_traces.js\"(exports, module) {\n \"use strict\";\n var LINKEDFILLS = { tonextx: 1, tonexty: 1, tonext: 1 };\n module.exports = function linkTraces(gd, plotinfo, cdscatter) {\n var trace, i, group, prevtrace, groupIndex;\n var groupIndices = {};\n var needsSort = false;\n var prevGroupIndex = -1;\n var nextGroupIndex = 0;\n var prevUnstackedGroupIndex = -1;\n for (i = 0; i < cdscatter.length; i++) {\n trace = cdscatter[i][0].trace;\n group = trace.stackgroup || \"\";\n if (group) {\n if (group in groupIndices) {\n groupIndex = groupIndices[group];\n } else {\n groupIndex = groupIndices[group] = nextGroupIndex;\n nextGroupIndex++;\n }\n } else if (trace.fill in LINKEDFILLS && prevUnstackedGroupIndex >= 0) {\n groupIndex = prevUnstackedGroupIndex;\n } else {\n groupIndex = prevUnstackedGroupIndex = nextGroupIndex;\n nextGroupIndex++;\n }\n if (groupIndex < prevGroupIndex) needsSort = true;\n trace._groupIndex = prevGroupIndex = groupIndex;\n }\n var cdscatterSorted = cdscatter.slice();\n if (needsSort) {\n cdscatterSorted.sort(function(a, b) {\n var traceA = a[0].trace;\n var traceB = b[0].trace;\n return traceA._groupIndex - traceB._groupIndex || traceA.index - traceB.index;\n });\n }\n var prevtraces = {};\n for (i = 0; i < cdscatterSorted.length; i++) {\n trace = cdscatterSorted[i][0].trace;\n group = trace.stackgroup || \"\";\n if (trace.visible === true) {\n trace._nexttrace = null;\n if (trace.fill in LINKEDFILLS) {\n prevtrace = prevtraces[group];\n trace._prevtrace = prevtrace || null;\n if (prevtrace) {\n prevtrace._nexttrace = trace;\n }\n }\n trace._ownfill = trace.fill && (trace.fill.substr(0, 6) === \"tozero\" || trace.fill === \"toself\" || trace.fill.substr(0, 2) === \"to\" && !trace._prevtrace);\n prevtraces[group] = trace;\n } else {\n trace._prevtrace = trace._nexttrace = trace._ownfill = null;\n }\n }\n return cdscatterSorted;\n };\n }\n });\n\n // src/traces/scatter/plot.js\n var require_plot = __commonJS({\n \"src/traces/scatter/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var ensureSingle = Lib.ensureSingle;\n var identity2 = Lib.identity;\n var Drawing = require_drawing();\n var subTypes = require_subtypes();\n var linePoints = require_line_points();\n var linkTraces = require_link_traces();\n var polygonTester = require_polygon().tester;\n module.exports = function plot(gd, plotinfo, cdscatter, scatterLayer, transitionOpts, makeOnCompleteCallback) {\n var join, onComplete;\n var isFullReplot = !transitionOpts;\n var hasTransition = !!transitionOpts && transitionOpts.duration > 0;\n var cdscatterSorted = linkTraces(gd, plotinfo, cdscatter);\n join = scatterLayer.selectAll(\"g.trace\").data(cdscatterSorted, function(d) {\n return d[0].trace.uid;\n });\n join.enter().append(\"g\").attr(\"class\", function(d) {\n return \"trace scatter trace\" + d[0].trace.uid;\n }).style(\"stroke-miterlimit\", 2);\n join.order();\n createFills(gd, join, plotinfo);\n if (hasTransition) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n var transition = d3.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n transition.each(function() {\n scatterLayer.selectAll(\"g.trace\").each(function(d, i) {\n plotOne(gd, i, plotinfo, d, cdscatterSorted, this, transitionOpts);\n });\n });\n } else {\n join.each(function(d, i) {\n plotOne(gd, i, plotinfo, d, cdscatterSorted, this, transitionOpts);\n });\n }\n if (isFullReplot) {\n join.exit().remove();\n }\n scatterLayer.selectAll(\"path:not([d])\").remove();\n };\n function createFills(gd, traceJoin, plotinfo) {\n traceJoin.each(function(d) {\n var fills = ensureSingle(d3.select(this), \"g\", \"fills\");\n Drawing.setClipUrl(fills, plotinfo.layerClipId, gd);\n var trace = d[0].trace;\n var fillData = [];\n if (trace._ownfill) fillData.push(\"_ownFill\");\n if (trace._nexttrace) fillData.push(\"_nextFill\");\n var fillJoin = fills.selectAll(\"g\").data(fillData, identity2);\n fillJoin.enter().append(\"g\");\n fillJoin.exit().each(function(d2) {\n trace[d2] = null;\n }).remove();\n fillJoin.order().each(function(d2) {\n trace[d2] = ensureSingle(d3.select(this), \"path\", \"js-fill\");\n });\n });\n }\n function plotOne(gd, idx, plotinfo, cdscatter, cdscatterAll, element, transitionOpts) {\n var isStatic = gd._context.staticPlot;\n var i;\n selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll);\n var hasTransition = !!transitionOpts && transitionOpts.duration > 0;\n function transition(selection) {\n return hasTransition ? selection.transition() : selection;\n }\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var trace = cdscatter[0].trace;\n var line = trace.line;\n var tr = d3.select(element);\n var errorBarGroup = ensureSingle(tr, \"g\", \"errorbars\");\n var lines = ensureSingle(tr, \"g\", \"lines\");\n var points = ensureSingle(tr, \"g\", \"points\");\n var text = ensureSingle(tr, \"g\", \"text\");\n Registry.getComponentMethod(\"errorbars\", \"plot\")(gd, errorBarGroup, plotinfo, transitionOpts);\n if (trace.visible !== true) return;\n transition(tr).style(\"opacity\", trace.opacity);\n var ownFillEl3, tonext;\n var ownFillDir = trace.fill.charAt(trace.fill.length - 1);\n if (ownFillDir !== \"x\" && ownFillDir !== \"y\") ownFillDir = \"\";\n var fillAxisIndex, fillAxisZero;\n if (ownFillDir === \"y\") {\n fillAxisIndex = 1;\n fillAxisZero = ya.c2p(0, true);\n } else if (ownFillDir === \"x\") {\n fillAxisIndex = 0;\n fillAxisZero = xa.c2p(0, true);\n }\n cdscatter[0][plotinfo.isRangePlot ? \"nodeRangePlot3\" : \"node3\"] = tr;\n var prevRevpath = \"\";\n var prevPolygons = [];\n var prevtrace = trace._prevtrace;\n var prevFillsegments = null;\n var prevFillElement = null;\n if (prevtrace) {\n prevRevpath = prevtrace._prevRevpath || \"\";\n tonext = prevtrace._nextFill;\n prevPolygons = prevtrace._ownPolygons;\n prevFillsegments = prevtrace._fillsegments;\n prevFillElement = prevtrace._fillElement;\n }\n var thispath;\n var thisrevpath;\n var fullpath = \"\";\n var revpath = \"\";\n var pathfn, revpathbase, revpathfn;\n var pt0, lastSegment, pt1;\n var thisPolygons = [];\n trace._polygons = [];\n var fillsegments = [];\n var segments = [];\n var makeUpdate = Lib.noop;\n ownFillEl3 = trace._ownFill;\n if (subTypes.hasLines(trace) || trace.fill !== \"none\") {\n if (tonext) {\n tonext.datum(cdscatter);\n }\n if ([\"hv\", \"vh\", \"hvh\", \"vhv\"].indexOf(line.shape) !== -1) {\n pathfn = Drawing.steps(line.shape);\n revpathbase = Drawing.steps(\n line.shape.split(\"\").reverse().join(\"\")\n );\n } else if (line.shape === \"spline\") {\n pathfn = revpathbase = function(pts2) {\n var pLast = pts2[pts2.length - 1];\n if (pts2.length > 1 && pts2[0][0] === pLast[0] && pts2[0][1] === pLast[1]) {\n return Drawing.smoothclosed(pts2.slice(1), line.smoothing);\n } else {\n return Drawing.smoothopen(pts2, line.smoothing);\n }\n };\n } else {\n pathfn = revpathbase = function(pts2) {\n return \"M\" + pts2.join(\"L\");\n };\n }\n revpathfn = function(pts2) {\n return revpathbase(pts2.reverse());\n };\n segments = linePoints(cdscatter, {\n xaxis: xa,\n yaxis: ya,\n trace,\n connectGaps: trace.connectgaps,\n baseTolerance: Math.max(line.width || 1, 3) / 4,\n shape: line.shape,\n backoff: line.backoff,\n simplify: line.simplify,\n fill: trace.fill\n });\n fillsegments = new Array(segments.length);\n var fillsegmentCount = 0;\n for (i = 0; i < segments.length; i++) {\n var curpoints;\n var pts = segments[i];\n if (!curpoints || !ownFillDir) {\n curpoints = pts.slice();\n fillsegments[fillsegmentCount] = curpoints;\n fillsegmentCount++;\n } else {\n curpoints.push.apply(curpoints, pts);\n }\n }\n trace._fillElement = null;\n trace._fillExclusionElement = prevFillElement;\n trace._fillsegments = fillsegments.slice(0, fillsegmentCount);\n fillsegments = trace._fillsegments;\n if (segments.length) {\n pt0 = segments[0][0].slice();\n lastSegment = segments[segments.length - 1];\n pt1 = lastSegment[lastSegment.length - 1].slice();\n }\n makeUpdate = function(isEnter) {\n return function(pts2) {\n thispath = pathfn(pts2);\n thisrevpath = revpathfn(pts2);\n if (!fullpath) {\n fullpath = thispath;\n revpath = thisrevpath;\n } else if (ownFillDir) {\n fullpath += \"L\" + thispath.substr(1);\n revpath = thisrevpath + (\"L\" + revpath.substr(1));\n } else {\n fullpath += \"Z\" + thispath;\n revpath = thisrevpath + \"Z\" + revpath;\n }\n if (subTypes.hasLines(trace)) {\n var el = d3.select(this);\n el.datum(cdscatter);\n if (isEnter) {\n transition(el.style(\"opacity\", 0).attr(\"d\", thispath).call(Drawing.lineGroupStyle)).style(\"opacity\", 1);\n } else {\n var sel = transition(el);\n sel.attr(\"d\", thispath);\n Drawing.singleLineStyle(cdscatter, sel);\n }\n }\n };\n };\n }\n var lineJoin = lines.selectAll(\".js-line\").data(segments);\n transition(lineJoin.exit()).style(\"opacity\", 0).remove();\n lineJoin.each(makeUpdate(false));\n lineJoin.enter().append(\"path\").classed(\"js-line\", true).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").call(Drawing.lineGroupStyle).each(makeUpdate(true));\n Drawing.setClipUrl(lineJoin, plotinfo.layerClipId, gd);\n function clearFill(selection) {\n transition(selection).attr(\"d\", \"M0,0Z\");\n }\n var makeSelfPolygons = function() {\n var polygons = new Array(fillsegments.length);\n for (i = 0; i < fillsegments.length; i++) {\n polygons[i] = polygonTester(fillsegments[i]);\n }\n return polygons;\n };\n var makePolygonsToPrevious = function(prevFillsegments2) {\n var polygons, i2;\n if (!prevFillsegments2 || prevFillsegments2.length === 0) {\n polygons = new Array(fillsegments.length);\n for (i2 = 0; i2 < fillsegments.length; i2++) {\n var pt02 = fillsegments[i2][0].slice();\n var pt12 = fillsegments[i2][fillsegments[i2].length - 1].slice();\n pt02[fillAxisIndex] = pt12[fillAxisIndex] = fillAxisZero;\n var zeropoints = [pt12, pt02];\n var polypoints = zeropoints.concat(fillsegments[i2]);\n polygons[i2] = polygonTester(polypoints);\n }\n } else {\n polygons = new Array(prevFillsegments2.length - 1 + fillsegments.length);\n for (i2 = 0; i2 < prevFillsegments2.length - 1; i2++) {\n polygons[i2] = polygonTester(prevFillsegments2[i2]);\n }\n var reversedPrevFillsegment = prevFillsegments2[prevFillsegments2.length - 1].slice();\n reversedPrevFillsegment.reverse();\n for (i2 = 0; i2 < fillsegments.length; i2++) {\n polygons[prevFillsegments2.length - 1 + i2] = polygonTester(fillsegments[i2].concat(reversedPrevFillsegment));\n }\n }\n return polygons;\n };\n if (segments.length) {\n if (ownFillEl3) {\n ownFillEl3.datum(cdscatter);\n if (pt0 && pt1) {\n if (ownFillDir) {\n pt0[fillAxisIndex] = pt1[fillAxisIndex] = fillAxisZero;\n transition(ownFillEl3).attr(\"d\", \"M\" + pt1 + \"L\" + pt0 + \"L\" + fullpath.substr(1)).call(Drawing.singleFillStyle, gd);\n thisPolygons = makePolygonsToPrevious(null);\n } else {\n transition(ownFillEl3).attr(\"d\", fullpath + \"Z\").call(Drawing.singleFillStyle, gd);\n thisPolygons = makeSelfPolygons();\n }\n }\n trace._polygons = thisPolygons;\n trace._fillElement = ownFillEl3;\n } else if (tonext) {\n if (trace.fill.substr(0, 6) === \"tonext\" && fullpath && prevRevpath) {\n if (trace.fill === \"tonext\") {\n transition(tonext).attr(\"d\", fullpath + \"Z\" + prevRevpath + \"Z\").call(Drawing.singleFillStyle, gd);\n thisPolygons = makeSelfPolygons();\n trace._polygons = thisPolygons.concat(prevPolygons);\n } else {\n transition(tonext).attr(\"d\", fullpath + \"L\" + prevRevpath.substr(1) + \"Z\").call(Drawing.singleFillStyle, gd);\n thisPolygons = makePolygonsToPrevious(prevFillsegments);\n trace._polygons = thisPolygons;\n }\n trace._fillElement = tonext;\n } else {\n clearFill(tonext);\n }\n }\n trace._prevRevpath = revpath;\n } else {\n if (ownFillEl3) clearFill(ownFillEl3);\n else if (tonext) clearFill(tonext);\n trace._prevRevpath = null;\n }\n trace._ownPolygons = thisPolygons;\n function visFilter(d) {\n return d.filter(function(v) {\n return !v.gap && v.vis;\n });\n }\n function visFilterWithGaps(d) {\n return d.filter(function(v) {\n return v.vis;\n });\n }\n function gapFilter(d) {\n return d.filter(function(v) {\n return !v.gap;\n });\n }\n function keyFunc(d) {\n return d.id;\n }\n function getKeyFunc(trace2) {\n if (trace2.ids) {\n return keyFunc;\n }\n }\n function hideFilter() {\n return false;\n }\n function makePoints(points2, text2, cdscatter2) {\n var join, selection, hasNode;\n var trace2 = cdscatter2[0].trace;\n var showMarkers = subTypes.hasMarkers(trace2);\n var showText = subTypes.hasText(trace2);\n var keyFunc2 = getKeyFunc(trace2);\n var markerFilter = hideFilter;\n var textFilter = hideFilter;\n if (showMarkers || showText) {\n var showFilter = identity2;\n var stackGroup = trace2.stackgroup;\n var isInferZero = stackGroup && gd._fullLayout._scatterStackOpts[xa._id + ya._id][stackGroup].stackgaps === \"infer zero\";\n if (trace2.marker.maxdisplayed || trace2._needsCull) {\n showFilter = isInferZero ? visFilterWithGaps : visFilter;\n } else if (stackGroup && !isInferZero) {\n showFilter = gapFilter;\n }\n if (showMarkers) markerFilter = showFilter;\n if (showText) textFilter = showFilter;\n }\n selection = points2.selectAll(\"path.point\");\n join = selection.data(markerFilter, keyFunc2);\n var enter = join.enter().append(\"path\").classed(\"point\", true);\n if (hasTransition) {\n enter.call(Drawing.pointStyle, trace2, gd).call(Drawing.translatePoints, xa, ya).style(\"opacity\", 0).transition().style(\"opacity\", 1);\n }\n join.order();\n var styleFns;\n if (showMarkers) {\n styleFns = Drawing.makePointStyleFns(trace2);\n }\n join.each(function(d) {\n var el = d3.select(this);\n var sel = transition(el);\n hasNode = Drawing.translatePoint(d, sel, xa, ya);\n if (hasNode) {\n Drawing.singlePointStyle(d, sel, trace2, styleFns, gd);\n if (plotinfo.layerClipId) {\n Drawing.hideOutsideRangePoint(d, sel, xa, ya, trace2.xcalendar, trace2.ycalendar);\n }\n if (trace2.customdata) {\n el.classed(\"plotly-customdata\", d.data !== null && d.data !== void 0);\n }\n } else {\n sel.remove();\n }\n });\n if (hasTransition) {\n join.exit().transition().style(\"opacity\", 0).remove();\n } else {\n join.exit().remove();\n }\n selection = text2.selectAll(\"g\");\n join = selection.data(textFilter, keyFunc2);\n join.enter().append(\"g\").classed(\"textpoint\", true).append(\"text\");\n join.order();\n join.each(function(d) {\n var g = d3.select(this);\n var sel = transition(g.select(\"text\"));\n hasNode = Drawing.translatePoint(d, sel, xa, ya);\n if (hasNode) {\n if (plotinfo.layerClipId) {\n Drawing.hideOutsideRangePoint(d, g, xa, ya, trace2.xcalendar, trace2.ycalendar);\n }\n } else {\n g.remove();\n }\n });\n join.selectAll(\"text\").call(Drawing.textPointStyle, trace2, gd).each(function(d) {\n var x = xa.c2p(d.x);\n var y = ya.c2p(d.y);\n d3.select(this).selectAll(\"tspan.line\").each(function() {\n transition(d3.select(this)).attr({ x, y });\n });\n });\n join.exit().remove();\n }\n points.datum(cdscatter);\n text.datum(cdscatter);\n makePoints(points, text, cdscatter);\n var hasClipOnAxisFalse = trace.cliponaxis === false;\n var clipUrl = hasClipOnAxisFalse ? null : plotinfo.layerClipId;\n Drawing.setClipUrl(points, clipUrl, gd);\n Drawing.setClipUrl(text, clipUrl, gd);\n }\n function selectMarkers(gd, idx, plotinfo, cdscatter, cdscatterAll) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xr = d3.extent(Lib.simpleMap(xa.range, xa.r2c));\n var yr = d3.extent(Lib.simpleMap(ya.range, ya.r2c));\n var trace = cdscatter[0].trace;\n if (!subTypes.hasMarkers(trace)) return;\n var mnum = trace.marker.maxdisplayed;\n if (mnum === 0) return;\n var cd = cdscatter.filter(function(v) {\n return v.x >= xr[0] && v.x <= xr[1] && v.y >= yr[0] && v.y <= yr[1];\n });\n var inc = Math.ceil(cd.length / mnum);\n var tnum = 0;\n cdscatterAll.forEach(function(cdj, j) {\n var tracei = cdj[0].trace;\n if (subTypes.hasMarkers(tracei) && tracei.marker.maxdisplayed > 0 && j < idx) {\n tnum++;\n }\n });\n var i0 = Math.round(tnum * inc / 3 + Math.floor(tnum / 3) * inc / 7.1);\n cdscatter.forEach(function(v) {\n delete v.vis;\n });\n cd.forEach(function(v, i) {\n if (Math.round((i + i0) % inc) === 0) v.vis = true;\n });\n }\n }\n });\n\n // src/traces/scatter/marker_colorbar.js\n var require_marker_colorbar = __commonJS({\n \"src/traces/scatter/marker_colorbar.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n container: \"marker\",\n min: \"cmin\",\n max: \"cmax\"\n };\n }\n });\n\n // src/traces/scatter/format_labels.js\n var require_format_labels = __commonJS({\n \"src/traces/scatter/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var mockGd = { _fullLayout: fullLayout };\n var xa = Axes.getFromTrace(mockGd, trace, \"x\");\n var ya = Axes.getFromTrace(mockGd, trace, \"y\");\n var x = cdi.orig_x;\n if (x === void 0) x = cdi.x;\n var y = cdi.orig_y;\n if (y === void 0) y = cdi.y;\n labels.xLabel = Axes.tickText(xa, xa.c2l(x), true).text;\n labels.yLabel = Axes.tickText(ya, ya.c2l(y), true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scatter/style.js\n var require_style2 = __commonJS({\n \"src/traces/scatter/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Registry = require_registry();\n function style(gd) {\n var s = d3.select(gd).selectAll(\"g.trace.scatter\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.selectAll(\"g.points\").each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n stylePoints(sel, trace, gd);\n });\n s.selectAll(\"g.text\").each(function(d) {\n var sel = d3.select(this);\n var trace = d.trace || d[0].trace;\n styleText(sel, trace, gd);\n });\n s.selectAll(\"g.trace path.js-line\").call(Drawing.lineGroupStyle);\n s.selectAll(\"g.trace path.js-fill\").call(Drawing.fillGroupStyle, gd, false);\n Registry.getComponentMethod(\"errorbars\", \"style\")(s);\n }\n function stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll(\"path.point\"), trace, gd);\n }\n function styleText(sel, trace, gd) {\n Drawing.textPointStyle(sel.selectAll(\"text\"), trace, gd);\n }\n function styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n if (trace.selectedpoints) {\n Drawing.selectedPointStyle(sel.selectAll(\"path.point\"), trace);\n Drawing.selectedTextStyle(sel.selectAll(\"text\"), trace);\n } else {\n stylePoints(sel, trace, gd);\n styleText(sel, trace, gd);\n }\n }\n module.exports = {\n style,\n stylePoints,\n styleText,\n styleOnSelect\n };\n }\n });\n\n // src/traces/scatter/get_trace_color.js\n var require_get_trace_color = __commonJS({\n \"src/traces/scatter/get_trace_color.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var subtypes = require_subtypes();\n module.exports = function getTraceColor(trace, di) {\n var lc, tc;\n if (trace.mode === \"lines\") {\n lc = trace.line.color;\n return lc && Color2.opacity(lc) ? lc : trace.fillcolor;\n } else if (trace.mode === \"none\") {\n return trace.fill ? trace.fillcolor : \"\";\n } else {\n var mc = di.mcc || (trace.marker || {}).color;\n var mlc = di.mlcc || ((trace.marker || {}).line || {}).color;\n tc = mc && Color2.opacity(mc) ? mc : mlc && Color2.opacity(mlc) && (di.mlw || ((trace.marker || {}).line || {}).width) ? mlc : \"\";\n if (tc) {\n if (Color2.opacity(tc) < 0.3) {\n return Color2.addOpacity(tc, 0.3);\n } else return tc;\n } else {\n lc = (trace.line || {}).color;\n return lc && Color2.opacity(lc) && subtypes.hasLines(trace) && trace.line.width ? lc : trace.fillcolor;\n }\n }\n };\n }\n });\n\n // src/traces/scatter/hover.js\n var require_hover2 = __commonJS({\n \"src/traces/scatter/hover.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Fx = require_fx();\n var Registry = require_registry();\n var getTraceColor = require_get_trace_color();\n var Color2 = require_color();\n var fillText = Lib.fillText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var pt = [xpx, ypx];\n var hoveron = trace.hoveron || \"\";\n var minRad = trace.mode.indexOf(\"markers\") !== -1 ? 3 : 0.5;\n var xPeriod = !!trace.xperiodalignment;\n var yPeriod = !!trace.yperiodalignment;\n if (hoveron.indexOf(\"points\") !== -1) {\n var dx = function(di2) {\n if (xPeriod) {\n var x0 = xa.c2p(di2.xStart);\n var x1 = xa.c2p(di2.xEnd);\n return xpx >= Math.min(x0, x1) && xpx <= Math.max(x0, x1) ? 0 : Infinity;\n }\n var rad2 = Math.max(3, di2.mrc || 0);\n var kink = 1 - 1 / rad2;\n var dxRaw = Math.abs(xa.c2p(di2.x) - xpx);\n return dxRaw < rad2 ? kink * dxRaw / rad2 : dxRaw - rad2 + kink;\n };\n var dy = function(di2) {\n if (yPeriod) {\n var y0 = ya.c2p(di2.yStart);\n var y1 = ya.c2p(di2.yEnd);\n return ypx >= Math.min(y0, y1) && ypx <= Math.max(y0, y1) ? 0 : Infinity;\n }\n var rad2 = Math.max(3, di2.mrc || 0);\n var kink = 1 - 1 / rad2;\n var dyRaw = Math.abs(ya.c2p(di2.y) - ypx);\n return dyRaw < rad2 ? kink * dyRaw / rad2 : dyRaw - rad2 + kink;\n };\n var dxy = function(di2) {\n var rad2 = Math.max(minRad, di2.mrc || 0);\n var dx2 = xa.c2p(di2.x) - xpx;\n var dy2 = ya.c2p(di2.y) - ypx;\n return Math.max(Math.sqrt(dx2 * dx2 + dy2 * dy2) - rad2, 1 - minRad / rad2);\n };\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index !== false) {\n var di = cd[pointData.index];\n var xc = xa.c2p(di.x, true);\n var yc = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n pointData.index = di.i;\n var orientation = cd[0].t.orientation;\n var sizeVal = orientation && (di.sNorm || di.s);\n var xLabelVal = orientation === \"h\" ? sizeVal : di.orig_x !== void 0 ? di.orig_x : di.x;\n var yLabelVal = orientation === \"v\" ? sizeVal : di.orig_y !== void 0 ? di.orig_y : di.y;\n Lib.extendFlat(pointData, {\n color: getTraceColor(trace, di),\n x0: xc - rad,\n x1: xc + rad,\n xLabelVal,\n y0: yc - rad,\n y1: yc + rad,\n yLabelVal,\n spikeDistance: dxy(di),\n hovertemplate: trace.hovertemplate\n });\n fillText(di, trace, pointData);\n Registry.getComponentMethod(\"errorbars\", \"hoverInfo\")(di, trace, pointData);\n return [pointData];\n }\n }\n function isHoverPointInFillElement(el) {\n if (!el) {\n return false;\n }\n var svgElement = el.node();\n try {\n var domPoint = new DOMPoint(pt[0], pt[1]);\n return svgElement.isPointInFill(domPoint);\n } catch (TypeError2) {\n var svgPoint = svgElement.ownerSVGElement.createSVGPoint();\n svgPoint.x = pt[0];\n svgPoint.y = pt[1];\n return svgElement.isPointInFill(svgPoint);\n }\n }\n function getHoverLabelPosition(polygons) {\n var i;\n var polygonsIn = [];\n var xmin = Infinity;\n var xmax = -Infinity;\n var ymin = Infinity;\n var ymax = -Infinity;\n var yPos;\n for (i = 0; i < polygons.length; i++) {\n var polygon = polygons[i];\n if (polygon.contains(pt)) {\n polygonsIn.push(polygon);\n ymin = Math.min(ymin, polygon.ymin);\n ymax = Math.max(ymax, polygon.ymax);\n }\n }\n if (polygonsIn.length === 0) {\n return null;\n }\n ymin = Math.max(ymin, 0);\n ymax = Math.min(ymax, ya._length);\n yPos = (ymin + ymax) / 2;\n var j, pts, xAtYPos, x0, x1, y0, y1;\n for (i = 0; i < polygonsIn.length; i++) {\n pts = polygonsIn[i].pts;\n for (j = 1; j < pts.length; j++) {\n y0 = pts[j - 1][1];\n y1 = pts[j][1];\n if (y0 > yPos !== y1 >= yPos) {\n x0 = pts[j - 1][0];\n x1 = pts[j][0];\n if (y1 - y0) {\n xAtYPos = x0 + (x1 - x0) * (yPos - y0) / (y1 - y0);\n xmin = Math.min(xmin, xAtYPos);\n xmax = Math.max(xmax, xAtYPos);\n }\n }\n }\n }\n xmin = Math.max(xmin, 0);\n xmax = Math.min(xmax, xa._length);\n return {\n x0: xmin,\n x1: xmax,\n y0: yPos,\n y1: yPos\n };\n }\n if (hoveron.indexOf(\"fills\") !== -1 && trace._fillElement) {\n var inside = isHoverPointInFillElement(trace._fillElement) && !isHoverPointInFillElement(trace._fillExclusionElement);\n if (inside) {\n var hoverLabelCoords = getHoverLabelPosition(trace._polygons);\n if (hoverLabelCoords === null) {\n hoverLabelCoords = {\n x0: pt[0],\n x1: pt[0],\n y0: pt[1],\n y1: pt[1]\n };\n }\n var color2 = Color2.defaultLine;\n if (Color2.opacity(trace.fillcolor)) color2 = trace.fillcolor;\n else if (Color2.opacity((trace.line || {}).color)) {\n color2 = trace.line.color;\n }\n Lib.extendFlat(pointData, {\n // never let a 2D override 1D type as closest point\n // also: no spikeDistance, it's not allowed for fills\n distance: pointData.maxHoverDistance,\n x0: hoverLabelCoords.x0,\n x1: hoverLabelCoords.x1,\n y0: hoverLabelCoords.y0,\n y1: hoverLabelCoords.y1,\n color: color2,\n hovertemplate: false\n });\n delete pointData.index;\n if (trace.text && !Lib.isArrayOrTypedArray(trace.text)) {\n pointData.text = String(trace.text);\n } else pointData.text = trace.name;\n return [pointData];\n }\n }\n };\n }\n });\n\n // src/traces/scatter/select.js\n var require_select2 = __commonJS({\n \"src/traces/scatter/select.js\"(exports, module) {\n \"use strict\";\n var subtypes = require_subtypes();\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n var di;\n var x;\n var y;\n var hasOnlyLines = !subtypes.hasMarkers(trace) && !subtypes.hasText(trace);\n if (hasOnlyLines) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n di = cd[i];\n x = xa.c2p(di.x);\n y = ya.c2p(di.y);\n if (di.i !== null && selectionTester.contains([x, y], false, i, searchInfo)) {\n selection.push({\n pointNumber: di.i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/plots/cartesian/attributes.js\n var require_attributes14 = __commonJS({\n \"src/plots/cartesian/attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n xaxis: {\n valType: \"subplotid\",\n dflt: \"x\",\n editType: \"calc+clearAxisTypes\"\n },\n yaxis: {\n valType: \"subplotid\",\n dflt: \"y\",\n editType: \"calc+clearAxisTypes\"\n }\n };\n }\n });\n\n // src/plots/cartesian/type_defaults.js\n var require_type_defaults = __commonJS({\n \"src/plots/cartesian/type_defaults.js\"(exports, module) {\n \"use strict\";\n var traceIs = require_registry().traceIs;\n var autoType = require_axis_autotype();\n module.exports = function handleTypeDefaults(containerIn, containerOut, coerce, options) {\n coerce(\"autotypenumbers\", options.autotypenumbersDflt);\n var axType = coerce(\"type\", (options.splomStash || {}).type);\n if (axType === \"-\") {\n setAutoType(containerOut, options.data);\n if (containerOut.type === \"-\") {\n containerOut.type = \"linear\";\n } else {\n containerIn.type = containerOut.type;\n }\n }\n };\n function setAutoType(ax, data) {\n if (ax.type !== \"-\") return;\n var id = ax._id;\n var axLetter = id.charAt(0);\n var i;\n if (id.indexOf(\"scene\") !== -1) id = axLetter;\n var d0 = getFirstNonEmptyTrace(data, id, axLetter);\n if (!d0) return;\n if (d0.type === \"histogram\" && axLetter === { v: \"y\", h: \"x\" }[d0.orientation || \"v\"]) {\n ax.type = \"linear\";\n return;\n }\n var calAttr = axLetter + \"calendar\";\n var calendar = d0[calAttr];\n var opts = { noMultiCategory: !traceIs(d0, \"cartesian\") || traceIs(d0, \"noMultiCategory\") };\n if (d0.type === \"box\" && d0._hasPreCompStats && axLetter === { h: \"x\", v: \"y\" }[d0.orientation || \"v\"]) {\n opts.noMultiCategory = true;\n }\n opts.autotypenumbers = ax.autotypenumbers;\n if (isBoxWithoutPositionCoords(d0, axLetter)) {\n var posLetter = getBoxPosLetter(d0);\n var boxPositions = [];\n for (i = 0; i < data.length; i++) {\n var trace = data[i];\n if (!traceIs(trace, \"box-violin\") || (trace[axLetter + \"axis\"] || axLetter) !== id) continue;\n if (trace[posLetter] !== void 0) boxPositions.push(trace[posLetter][0]);\n else if (trace.name !== void 0) boxPositions.push(trace.name);\n else boxPositions.push(\"text\");\n if (trace[calAttr] !== calendar) calendar = void 0;\n }\n ax.type = autoType(boxPositions, calendar, opts);\n } else if (d0.type === \"splom\") {\n var dimensions = d0.dimensions;\n var dim = dimensions[d0._axesDim[id]];\n if (dim.visible) ax.type = autoType(dim.values, calendar, opts);\n } else {\n ax.type = autoType(d0[axLetter] || [d0[axLetter + \"0\"]], calendar, opts);\n }\n }\n function getFirstNonEmptyTrace(data, id, axLetter) {\n for (var i = 0; i < data.length; i++) {\n var trace = data[i];\n if (trace.type === \"splom\" && trace._length > 0 && (trace[\"_\" + axLetter + \"axes\"] || {})[id]) {\n return trace;\n }\n if ((trace[axLetter + \"axis\"] || axLetter) === id) {\n if (isBoxWithoutPositionCoords(trace, axLetter)) {\n return trace;\n } else if ((trace[axLetter] || []).length || trace[axLetter + \"0\"]) {\n return trace;\n }\n }\n }\n }\n function getBoxPosLetter(trace) {\n return { v: \"x\", h: \"y\" }[trace.orientation || \"v\"];\n }\n function isBoxWithoutPositionCoords(trace, axLetter) {\n var posLetter = getBoxPosLetter(trace);\n var isBox = traceIs(trace, \"box-violin\");\n var isCandlestick = traceIs(trace._fullInput || {}, \"candlestick\");\n return isBox && !isCandlestick && axLetter === posLetter && trace[posLetter] === void 0 && trace[posLetter + \"0\"] === void 0;\n }\n }\n });\n\n // src/plots/cartesian/category_order_defaults.js\n var require_category_order_defaults = __commonJS({\n \"src/plots/cartesian/category_order_defaults.js\"(exports, module) {\n \"use strict\";\n var isTypedArraySpec = require_array().isTypedArraySpec;\n function findCategories(ax, opts) {\n var dataAttr = opts.dataAttr || ax._id.charAt(0);\n var lookup = {};\n var axData;\n var i, j;\n if (opts.axData) {\n axData = opts.axData;\n } else {\n axData = [];\n for (i = 0; i < opts.data.length; i++) {\n var trace = opts.data[i];\n if (trace[dataAttr + \"axis\"] === ax._id) {\n axData.push(trace);\n }\n }\n }\n for (i = 0; i < axData.length; i++) {\n var vals = axData[i][dataAttr];\n for (j = 0; j < vals.length; j++) {\n var v = vals[j];\n if (v !== null && v !== void 0) {\n lookup[v] = 1;\n }\n }\n }\n return Object.keys(lookup);\n }\n module.exports = function handleCategoryOrderDefaults(containerIn, containerOut, coerce, opts) {\n if (containerOut.type !== \"category\") return;\n var arrayIn = containerIn.categoryarray;\n var isValidArray = Array.isArray(arrayIn) && arrayIn.length > 0 || isTypedArraySpec(arrayIn);\n var orderDefault;\n if (isValidArray) orderDefault = \"array\";\n var order = coerce(\"categoryorder\", orderDefault);\n var array;\n if (order === \"array\") {\n array = coerce(\"categoryarray\");\n }\n if (!isValidArray && order === \"array\") {\n order = containerOut.categoryorder = \"trace\";\n }\n if (order === \"trace\") {\n containerOut._initialCategories = [];\n } else if (order === \"array\") {\n containerOut._initialCategories = array.slice();\n } else {\n array = findCategories(containerOut, opts).sort();\n if (order === \"category ascending\") {\n containerOut._initialCategories = array;\n } else if (order === \"category descending\") {\n containerOut._initialCategories = array.reverse();\n }\n }\n };\n }\n });\n\n // src/plots/cartesian/line_grid_defaults.js\n var require_line_grid_defaults = __commonJS({\n \"src/plots/cartesian/line_grid_defaults.js\"(exports, module) {\n \"use strict\";\n var colorMix = require_tinycolor().mix;\n var colorAttrs = require_attributes3();\n var Lib = require_lib();\n module.exports = function handleLineGridDefaults(containerIn, containerOut, coerce, opts) {\n opts = opts || {};\n var dfltColor = opts.dfltColor;\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, opts.attributes, attr, dflt);\n }\n var lineColor = coerce2(\"linecolor\", dfltColor);\n var lineWidth = coerce2(\"linewidth\");\n var showLine = coerce(\"showline\", opts.showLine || !!lineColor || !!lineWidth);\n if (!showLine) {\n delete containerOut.linecolor;\n delete containerOut.linewidth;\n }\n var gridColorDflt = colorMix(dfltColor, opts.bgColor, opts.blend || colorAttrs.lightFraction).toRgbString();\n var gridColor = coerce2(\"gridcolor\", gridColorDflt);\n var gridWidth = coerce2(\"gridwidth\");\n var gridDash = coerce2(\"griddash\");\n var showGridLines = coerce(\n \"showgrid\",\n opts.showGrid || !!gridColor || !!gridWidth || !!gridDash\n );\n if (!showGridLines) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n delete containerOut.griddash;\n }\n if (opts.hasMinor) {\n var minorGridColorDflt = colorMix(containerOut.gridcolor, opts.bgColor, 67).toRgbString();\n var minorGridColor = coerce2(\"minor.gridcolor\", minorGridColorDflt);\n var minorGridWidth = coerce2(\"minor.gridwidth\", containerOut.gridwidth || 1);\n var minorGridDash = coerce2(\"minor.griddash\", containerOut.griddash || \"solid\");\n var minorShowGridLines = coerce(\n \"minor.showgrid\",\n !!minorGridColor || !!minorGridWidth || !!minorGridDash\n );\n if (!minorShowGridLines) {\n delete containerOut.minor.gridcolor;\n delete containerOut.minor.gridwidth;\n delete containerOut.minor.griddash;\n }\n }\n if (!opts.noZeroLine) {\n var zeroLineColor = coerce2(\"zerolinecolor\", dfltColor);\n var zeroLineWidth = coerce2(\"zerolinewidth\");\n var showZeroLine = coerce(\"zeroline\", opts.showGrid || !!zeroLineColor || !!zeroLineWidth);\n if (!showZeroLine) {\n delete containerOut.zerolinecolor;\n delete containerOut.zerolinewidth;\n }\n }\n };\n }\n });\n\n // src/plots/cartesian/axis_defaults.js\n var require_axis_defaults = __commonJS({\n \"src/plots/cartesian/axis_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Registry = require_registry();\n var Lib = require_lib();\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var layoutAttributes = require_layout_attributes4();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleCategoryOrderDefaults = require_category_order_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var handleRangeDefaults = require_range_defaults();\n var setConvert = require_set_convert();\n var DAY_OF_WEEK = require_constants2().WEEKDAY_PATTERN;\n var HOUR = require_constants2().HOUR_PATTERN;\n module.exports = function handleAxisDefaults(containerIn, containerOut, coerce, options, layoutOut) {\n var letter = options.letter;\n var font = options.font || {};\n var splomStash = options.splomStash || {};\n var visible = coerce(\"visible\", !options.visibleDflt);\n var axTemplate = containerOut._template || {};\n var axType = containerOut.type || axTemplate.type || \"-\";\n var ticklabelmode;\n if (axType === \"date\") {\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleDefaults\");\n handleCalendarDefaults(containerIn, containerOut, \"calendar\", options.calendar);\n if (!options.noTicklabelmode) {\n ticklabelmode = coerce(\"ticklabelmode\");\n }\n }\n if (!options.noTicklabelindex && (axType === \"date\" || axType === \"linear\")) {\n coerce(\"ticklabelindex\");\n }\n var ticklabelposition = \"\";\n if (!options.noTicklabelposition || axType === \"multicategory\") {\n ticklabelposition = Lib.coerce(containerIn, containerOut, {\n ticklabelposition: {\n valType: \"enumerated\",\n dflt: \"outside\",\n values: ticklabelmode === \"period\" ? [\"outside\", \"inside\"] : letter === \"x\" ? [\n \"outside\",\n \"inside\",\n \"outside left\",\n \"inside left\",\n \"outside right\",\n \"inside right\"\n ] : [\n \"outside\",\n \"inside\",\n \"outside top\",\n \"inside top\",\n \"outside bottom\",\n \"inside bottom\"\n ]\n }\n }, \"ticklabelposition\");\n }\n if (!options.noTicklabeloverflow) {\n coerce(\n \"ticklabeloverflow\",\n ticklabelposition.indexOf(\"inside\") !== -1 ? \"hide past domain\" : axType === \"category\" || axType === \"multicategory\" ? \"allow\" : \"hide past div\"\n );\n }\n setConvert(containerOut, layoutOut);\n handleRangeDefaults(containerIn, containerOut, coerce, options);\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, options);\n if (axType !== \"category\" && !options.noHover) coerce(\"hoverformat\");\n var dfltColor = coerce(\"color\");\n var dfltFontColor = dfltColor !== layoutAttributes.color.dflt ? dfltColor : font.color;\n var dfltTitle = splomStash.label || layoutOut._dfltTitle[letter];\n handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options);\n if (!visible) return containerOut;\n coerce(\"title.text\", dfltTitle);\n Lib.coerceFont(coerce, \"title.font\", font, { overrideDflt: {\n size: Lib.bigFont(font.size),\n color: dfltFontColor\n } });\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n var hasMinor = options.hasMinor;\n if (hasMinor) {\n Template.newContainer(containerOut, \"minor\");\n handleTickValueDefaults(containerIn, containerOut, coerce, axType, { isMinor: true });\n }\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options);\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n if (hasMinor) {\n var keepIsMinor = options.isMinor;\n options.isMinor = true;\n handleTickMarkDefaults(containerIn, containerOut, coerce, options);\n options.isMinor = keepIsMinor;\n }\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor,\n bgColor: options.bgColor,\n showGrid: options.showGrid,\n hasMinor,\n attributes: layoutAttributes\n });\n if (hasMinor && !containerOut.minor.ticks && !containerOut.minor.showgrid) {\n delete containerOut.minor;\n }\n if (containerOut.showline || containerOut.ticks) coerce(\"mirror\");\n var isMultiCategory = axType === \"multicategory\";\n if (!options.noTickson && (axType === \"category\" || isMultiCategory) && (containerOut.ticks || containerOut.showgrid)) {\n var ticksonDflt;\n if (isMultiCategory) ticksonDflt = \"boundaries\";\n var tickson = coerce(\"tickson\", ticksonDflt);\n if (tickson === \"boundaries\") {\n delete containerOut.ticklabelposition;\n }\n }\n if (isMultiCategory) {\n var showDividers = coerce(\"showdividers\");\n if (showDividers) {\n coerce(\"dividercolor\");\n coerce(\"dividerwidth\");\n }\n }\n if (axType === \"date\") {\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"rangebreaks\",\n inclusionAttr: \"enabled\",\n handleItemDefaults: rangebreaksDefaults\n });\n if (!containerOut.rangebreaks.length) {\n delete containerOut.rangebreaks;\n } else {\n for (var k = 0; k < containerOut.rangebreaks.length; k++) {\n if (containerOut.rangebreaks[k].pattern === DAY_OF_WEEK) {\n containerOut._hasDayOfWeekBreaks = true;\n break;\n }\n }\n setConvert(containerOut, layoutOut);\n if (layoutOut._has(\"scattergl\") || layoutOut._has(\"splom\")) {\n for (var i = 0; i < options.data.length; i++) {\n var trace = options.data[i];\n if (trace.type === \"scattergl\" || trace.type === \"splom\") {\n trace.visible = false;\n Lib.warn(trace.type + \" traces do not work on axes with rangebreaks. Setting trace \" + trace.index + \" to `visible: false`.\");\n }\n }\n }\n }\n }\n return containerOut;\n };\n function rangebreaksDefaults(itemIn, itemOut, containerOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(itemIn, itemOut, layoutAttributes.rangebreaks, attr, dflt);\n }\n var enabled = coerce(\"enabled\");\n if (enabled) {\n var bnds = coerce(\"bounds\");\n if (bnds && bnds.length >= 2) {\n var dfltPattern = \"\";\n var i, q;\n if (bnds.length === 2) {\n for (i = 0; i < 2; i++) {\n q = indexOfDay(bnds[i]);\n if (q) {\n dfltPattern = DAY_OF_WEEK;\n break;\n }\n }\n }\n var pattern = coerce(\"pattern\", dfltPattern);\n if (pattern === DAY_OF_WEEK) {\n for (i = 0; i < 2; i++) {\n q = indexOfDay(bnds[i]);\n if (q) {\n itemOut.bounds[i] = bnds[i] = q - 1;\n }\n }\n }\n if (pattern) {\n for (i = 0; i < 2; i++) {\n q = bnds[i];\n switch (pattern) {\n case DAY_OF_WEEK:\n if (!isNumeric(q)) {\n itemOut.enabled = false;\n return;\n }\n q = +q;\n if (q !== Math.floor(q) || // don't accept fractional days for mow\n q < 0 || q >= 7) {\n itemOut.enabled = false;\n return;\n }\n itemOut.bounds[i] = bnds[i] = q;\n break;\n case HOUR:\n if (!isNumeric(q)) {\n itemOut.enabled = false;\n return;\n }\n q = +q;\n if (q < 0 || q > 24) {\n itemOut.enabled = false;\n return;\n }\n itemOut.bounds[i] = bnds[i] = q;\n break;\n }\n }\n }\n if (containerOut.autorange === false) {\n var rng = containerOut.range;\n if (rng[0] < rng[1]) {\n if (bnds[0] < rng[0] && bnds[1] > rng[1]) {\n itemOut.enabled = false;\n return;\n }\n } else if (bnds[0] > rng[0] && bnds[1] < rng[1]) {\n itemOut.enabled = false;\n return;\n }\n }\n } else {\n var values = coerce(\"values\");\n if (values && values.length) {\n coerce(\"dvalue\");\n } else {\n itemOut.enabled = false;\n return;\n }\n }\n }\n }\n var dayStrToNum = {\n sun: 1,\n mon: 2,\n tue: 3,\n wed: 4,\n thu: 5,\n fri: 6,\n sat: 7\n };\n function indexOfDay(v) {\n if (typeof v !== \"string\") return;\n return dayStrToNum[v.substr(0, 3).toLowerCase()];\n }\n }\n });\n\n // src/plots/cartesian/position_defaults.js\n var require_position_defaults = __commonJS({\n \"src/plots/cartesian/position_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n module.exports = function handlePositionDefaults(containerIn, containerOut, coerce, options) {\n var counterAxes = options.counterAxes || [];\n var overlayableAxes = options.overlayableAxes || [];\n var letter = options.letter;\n var grid = options.grid;\n var overlayingDomain = options.overlayingDomain;\n var dfltAnchor, dfltDomain, dfltSide, dfltPosition, dfltShift, dfltAutomargin;\n if (grid) {\n dfltDomain = grid._domains[letter][grid._axisMap[containerOut._id]];\n dfltAnchor = grid._anchors[containerOut._id];\n if (dfltDomain) {\n dfltSide = grid[letter + \"side\"].split(\" \")[0];\n dfltPosition = grid.domain[letter][dfltSide === \"right\" || dfltSide === \"top\" ? 1 : 0];\n }\n }\n dfltDomain = dfltDomain || [0, 1];\n dfltAnchor = dfltAnchor || (isNumeric(containerIn.position) ? \"free\" : counterAxes[0] || \"free\");\n dfltSide = dfltSide || (letter === \"x\" ? \"bottom\" : \"left\");\n dfltPosition = dfltPosition || 0;\n dfltShift = 0;\n dfltAutomargin = false;\n var anchor = Lib.coerce(containerIn, containerOut, {\n anchor: {\n valType: \"enumerated\",\n values: [\"free\"].concat(counterAxes),\n dflt: dfltAnchor\n }\n }, \"anchor\");\n var side = Lib.coerce(containerIn, containerOut, {\n side: {\n valType: \"enumerated\",\n values: letter === \"x\" ? [\"bottom\", \"top\"] : [\"left\", \"right\"],\n dflt: dfltSide\n }\n }, \"side\");\n if (anchor === \"free\") {\n if (letter === \"y\") {\n var autoshift = coerce(\"autoshift\");\n if (autoshift) {\n dfltPosition = side === \"left\" ? overlayingDomain[0] : overlayingDomain[1];\n dfltAutomargin = containerOut.automargin ? containerOut.automargin : true;\n dfltShift = side === \"left\" ? -3 : 3;\n }\n coerce(\"shift\", dfltShift);\n }\n coerce(\"position\", dfltPosition);\n }\n coerce(\"automargin\", dfltAutomargin);\n var overlaying = false;\n if (overlayableAxes.length) {\n overlaying = Lib.coerce(containerIn, containerOut, {\n overlaying: {\n valType: \"enumerated\",\n values: [false].concat(overlayableAxes),\n dflt: false\n }\n }, \"overlaying\");\n }\n if (!overlaying) {\n var domain = coerce(\"domain\", dfltDomain);\n if (domain[0] > domain[1] - 1 / 4096) containerOut.domain = dfltDomain;\n Lib.noneOrAll(containerIn.domain, containerOut.domain, dfltDomain);\n if (containerOut.tickmode === \"sync\") {\n containerOut.tickmode = \"auto\";\n }\n }\n coerce(\"layer\");\n return containerOut;\n };\n }\n });\n\n // src/plots/cartesian/layout_defaults.js\n var require_layout_defaults4 = __commonJS({\n \"src/plots/cartesian/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var isUnifiedHover = require_helpers2().isUnifiedHover;\n var handleHoverModeDefaults = require_hovermode_defaults();\n var Template = require_plot_template();\n var basePlotLayoutAttributes = require_layout_attributes2();\n var layoutAttributes = require_layout_attributes4();\n var handleTypeDefaults = require_type_defaults();\n var handleAxisDefaults = require_axis_defaults();\n var constraints = require_constraints();\n var handlePositionDefaults = require_position_defaults();\n var axisIds = require_axis_ids();\n var id2name = axisIds.id2name;\n var name2id = axisIds.name2id;\n var AX_ID_PATTERN = require_constants2().AX_ID_PATTERN;\n var Registry = require_registry();\n var traceIs = Registry.traceIs;\n var getComponentMethod = Registry.getComponentMethod;\n function appendList(cont, k, item) {\n if (Array.isArray(cont[k])) cont[k].push(item);\n else cont[k] = [item];\n }\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var autotypenumbersDflt = layoutOut.autotypenumbers;\n var ax2traces = {};\n var xaMayHide = {};\n var yaMayHide = {};\n var xaMustDisplay = {};\n var yaMustDisplay = {};\n var yaMustNotReverse = {};\n var yaMayReverse = {};\n var axHasImage = {};\n var outerTicks = {};\n var noGrids = {};\n var i, j;\n for (i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (!traceIs(trace, \"cartesian\")) continue;\n var xaName;\n if (trace.xaxis) {\n xaName = id2name(trace.xaxis);\n appendList(ax2traces, xaName, trace);\n } else if (trace.xaxes) {\n for (j = 0; j < trace.xaxes.length; j++) {\n appendList(ax2traces, id2name(trace.xaxes[j]), trace);\n }\n }\n var yaName;\n if (trace.yaxis) {\n yaName = id2name(trace.yaxis);\n appendList(ax2traces, yaName, trace);\n } else if (trace.yaxes) {\n for (j = 0; j < trace.yaxes.length; j++) {\n appendList(ax2traces, id2name(trace.yaxes[j]), trace);\n }\n }\n if (trace.type === \"funnel\") {\n if (trace.orientation === \"h\") {\n if (xaName) xaMayHide[xaName] = true;\n if (yaName) yaMayReverse[yaName] = true;\n } else {\n if (yaName) yaMayHide[yaName] = true;\n }\n } else if (trace.type === \"image\") {\n if (yaName) axHasImage[yaName] = true;\n if (xaName) axHasImage[xaName] = true;\n } else {\n if (yaName) {\n yaMustDisplay[yaName] = true;\n yaMustNotReverse[yaName] = true;\n }\n if (!traceIs(trace, \"carpet\") || trace.type === \"carpet\" && !trace._cheater) {\n if (xaName) xaMustDisplay[xaName] = true;\n }\n }\n if (trace.type === \"carpet\" && trace._cheater) {\n if (xaName) xaMayHide[xaName] = true;\n }\n if (traceIs(trace, \"2dMap\")) {\n outerTicks[xaName] = true;\n outerTicks[yaName] = true;\n }\n if (traceIs(trace, \"oriented\")) {\n var positionAxis = trace.orientation === \"h\" ? yaName : xaName;\n noGrids[positionAxis] = true;\n }\n }\n var subplots = layoutOut._subplots;\n var xIds = subplots.xaxis;\n var yIds = subplots.yaxis;\n var xNames = Lib.simpleMap(xIds, id2name);\n var yNames = Lib.simpleMap(yIds, id2name);\n var axNames = xNames.concat(yNames);\n var plotBgColor = Color2.background;\n if (xIds.length && yIds.length) {\n plotBgColor = Lib.coerce(layoutIn, layoutOut, basePlotLayoutAttributes, \"plot_bgcolor\");\n }\n var bgColor = Color2.combine(plotBgColor, layoutOut.paper_bgcolor);\n var axName;\n var axId;\n var axLetter;\n var axLayoutIn;\n var axLayoutOut;\n function newAxLayoutOut() {\n var traces = ax2traces[axName] || [];\n axLayoutOut._traceIndices = traces.map(function(t) {\n return t.index;\n });\n axLayoutOut._annIndices = [];\n axLayoutOut._shapeIndices = [];\n axLayoutOut._selectionIndices = [];\n axLayoutOut._imgIndices = [];\n axLayoutOut._subplotsWith = [];\n axLayoutOut._counterAxes = [];\n axLayoutOut._name = axLayoutOut._attr = axName;\n axLayoutOut._id = axId;\n }\n function coerce(attr, dflt) {\n return Lib.coerce(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(axLayoutIn, axLayoutOut, layoutAttributes, attr, dflt);\n }\n function getCounterAxes(axLetter2) {\n return axLetter2 === \"x\" ? yIds : xIds;\n }\n function getOverlayableAxes(axLetter2, axName2) {\n var list = axLetter2 === \"x\" ? xNames : yNames;\n var out = [];\n for (var j2 = 0; j2 < list.length; j2++) {\n var axName22 = list[j2];\n if (axName22 !== axName2 && !(layoutIn[axName22] || {}).overlaying) {\n out.push(name2id(axName22));\n }\n }\n return out;\n }\n var counterAxes = { x: getCounterAxes(\"x\"), y: getCounterAxes(\"y\") };\n var allAxisIds = counterAxes.x.concat(counterAxes.y);\n var missingMatchedAxisIdsLookup = {};\n var missingMatchedAxisIds = [];\n function addMissingMatchedAxis() {\n var matchesIn = axLayoutIn.matches;\n if (AX_ID_PATTERN.test(matchesIn) && allAxisIds.indexOf(matchesIn) === -1) {\n missingMatchedAxisIdsLookup[matchesIn] = axLayoutIn.type;\n missingMatchedAxisIds = Object.keys(missingMatchedAxisIdsLookup);\n }\n }\n var hovermode = handleHoverModeDefaults(layoutIn, layoutOut);\n var unifiedHover = isUnifiedHover(hovermode);\n for (i = 0; i < axNames.length; i++) {\n axName = axNames[i];\n axId = name2id(axName);\n axLetter = axName.charAt(0);\n if (!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + \"axis\");\n newAxLayoutOut();\n var visibleDflt = axLetter === \"x\" && !xaMustDisplay[axName] && xaMayHide[axName] || axLetter === \"y\" && !yaMustDisplay[axName] && yaMayHide[axName];\n var reverseDflt = axLetter === \"y\" && (!yaMustNotReverse[axName] && yaMayReverse[axName] || axHasImage[axName]);\n var defaultOptions = {\n hasMinor: true,\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: ax2traces[axName] || [],\n bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt,\n reverseDflt,\n autotypenumbersDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId],\n noAutotickangles: axLetter === \"y\"\n };\n coerce(\"uirevision\", layoutOut.uirevision);\n handleTypeDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions);\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions, layoutOut);\n var unifiedSpike = unifiedHover && axLetter === hovermode.charAt(0);\n var spikecolor = coerce2(\"spikecolor\", unifiedHover ? axLayoutOut.color : void 0);\n var spikethickness = coerce2(\"spikethickness\", unifiedHover ? 1.5 : void 0);\n var spikedash = coerce2(\"spikedash\", unifiedHover ? \"dot\" : void 0);\n var spikemode = coerce2(\"spikemode\", unifiedHover ? \"across\" : void 0);\n var spikesnap = coerce2(\"spikesnap\");\n var showSpikes = coerce(\"showspikes\", !!unifiedSpike || !!spikecolor || !!spikethickness || !!spikedash || !!spikemode || !!spikesnap);\n if (!showSpikes) {\n delete axLayoutOut.spikecolor;\n delete axLayoutOut.spikethickness;\n delete axLayoutOut.spikedash;\n delete axLayoutOut.spikemode;\n delete axLayoutOut.spikesnap;\n }\n var overlayingAxis = id2name(axLayoutIn.overlaying);\n var overlayingAnchorDomain = [0, 1];\n if (layoutOut[overlayingAxis] !== void 0) {\n var overlayingAnchor = id2name(layoutOut[overlayingAxis].anchor);\n if (layoutOut[overlayingAnchor] !== void 0) {\n overlayingAnchorDomain = layoutOut[overlayingAnchor].domain;\n }\n }\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: getOverlayableAxes(axLetter, axName),\n grid: layoutOut.grid,\n overlayingDomain: overlayingAnchorDomain\n });\n coerce(\"title.standoff\");\n addMissingMatchedAxis();\n axLayoutOut._input = axLayoutIn;\n }\n i = 0;\n while (i < missingMatchedAxisIds.length) {\n axId = missingMatchedAxisIds[i++];\n axName = id2name(axId);\n axLetter = axName.charAt(0);\n if (!Lib.isPlainObject(layoutIn[axName])) {\n layoutIn[axName] = {};\n }\n axLayoutIn = layoutIn[axName];\n axLayoutOut = Template.newContainer(layoutOut, axName, axLetter + \"axis\");\n newAxLayoutOut();\n var defaultOptions2 = {\n letter: axLetter,\n font: layoutOut.font,\n outerTicks: outerTicks[axName],\n showGrid: !noGrids[axName],\n data: [],\n bgColor,\n calendar: layoutOut.calendar,\n automargin: true,\n visibleDflt: false,\n reverseDflt: false,\n autotypenumbersDflt,\n splomStash: ((layoutOut._splomAxes || {})[axLetter] || {})[axId]\n };\n coerce(\"uirevision\", layoutOut.uirevision);\n axLayoutOut.type = missingMatchedAxisIdsLookup[axId] || \"linear\";\n handleAxisDefaults(axLayoutIn, axLayoutOut, coerce, defaultOptions2, layoutOut);\n handlePositionDefaults(axLayoutIn, axLayoutOut, coerce, {\n letter: axLetter,\n counterAxes: counterAxes[axLetter],\n overlayableAxes: getOverlayableAxes(axLetter, axName),\n grid: layoutOut.grid\n });\n coerce(\"fixedrange\");\n addMissingMatchedAxis();\n axLayoutOut._input = axLayoutIn;\n }\n var rangeSliderDefaults = getComponentMethod(\"rangeslider\", \"handleDefaults\");\n var rangeSelectorDefaults = getComponentMethod(\"rangeselector\", \"handleDefaults\");\n for (i = 0; i < xNames.length; i++) {\n axName = xNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n rangeSliderDefaults(layoutIn, layoutOut, axName);\n if (axLayoutOut.type === \"date\") {\n rangeSelectorDefaults(\n axLayoutIn,\n axLayoutOut,\n layoutOut,\n yNames,\n axLayoutOut.calendar\n );\n }\n coerce(\"fixedrange\");\n }\n for (i = 0; i < yNames.length; i++) {\n axName = yNames[i];\n axLayoutIn = layoutIn[axName];\n axLayoutOut = layoutOut[axName];\n var anchoredAxis = layoutOut[id2name(axLayoutOut.anchor)];\n var fixedRangeDflt = getComponentMethod(\"rangeslider\", \"isVisible\")(anchoredAxis);\n coerce(\"fixedrange\", fixedRangeDflt);\n }\n constraints.handleDefaults(layoutIn, layoutOut, {\n axIds: allAxisIds.concat(missingMatchedAxisIds).sort(axisIds.idSort),\n axHasImage\n });\n };\n }\n });\n\n // src/plots/cartesian/transition_axes.js\n var require_transition_axes = __commonJS({\n \"src/plots/cartesian/transition_axes.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var Axes = require_axes();\n module.exports = function transitionAxes(gd, edits, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n if (edits.length === 0) {\n Axes.redrawComponents(gd);\n return;\n }\n function unsetSubplotTransform(subplot) {\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n fullLayout._defs.select(\"#\" + subplot.clipId + \"> rect\").call(Drawing.setTranslate, 0, 0).call(Drawing.setScale, 1, 1);\n subplot.plot.call(Drawing.setTranslate, xa._offset, ya._offset).call(Drawing.setScale, 1, 1);\n var traceGroups = subplot.plot.selectAll(\".scatterlayer .trace\");\n traceGroups.selectAll(\".point\").call(Drawing.setPointGroupScale, 1, 1);\n traceGroups.selectAll(\".textpoint\").call(Drawing.setTextPointsScale, 1, 1);\n traceGroups.call(Drawing.hideOutsideRangePoints, subplot);\n }\n function updateSubplot(edit, progress) {\n var plotinfo = edit.plotinfo;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xlen = xa._length;\n var ylen = ya._length;\n var editX = !!edit.xr1;\n var editY = !!edit.yr1;\n var viewBox = [];\n if (editX) {\n var xr0 = Lib.simpleMap(edit.xr0, xa.r2l);\n var xr1 = Lib.simpleMap(edit.xr1, xa.r2l);\n var dx0 = xr0[1] - xr0[0];\n var dx1 = xr1[1] - xr1[0];\n viewBox[0] = (xr0[0] * (1 - progress) + progress * xr1[0] - xr0[0]) / (xr0[1] - xr0[0]) * xlen;\n viewBox[2] = xlen * (1 - progress + progress * dx1 / dx0);\n xa.range[0] = xa.l2r(xr0[0] * (1 - progress) + progress * xr1[0]);\n xa.range[1] = xa.l2r(xr0[1] * (1 - progress) + progress * xr1[1]);\n } else {\n viewBox[0] = 0;\n viewBox[2] = xlen;\n }\n if (editY) {\n var yr0 = Lib.simpleMap(edit.yr0, ya.r2l);\n var yr1 = Lib.simpleMap(edit.yr1, ya.r2l);\n var dy0 = yr0[1] - yr0[0];\n var dy1 = yr1[1] - yr1[0];\n viewBox[1] = (yr0[1] * (1 - progress) + progress * yr1[1] - yr0[1]) / (yr0[0] - yr0[1]) * ylen;\n viewBox[3] = ylen * (1 - progress + progress * dy1 / dy0);\n ya.range[0] = xa.l2r(yr0[0] * (1 - progress) + progress * yr1[0]);\n ya.range[1] = ya.l2r(yr0[1] * (1 - progress) + progress * yr1[1]);\n } else {\n viewBox[1] = 0;\n viewBox[3] = ylen;\n }\n Axes.drawOne(gd, xa, { skipTitle: true });\n Axes.drawOne(gd, ya, { skipTitle: true });\n Axes.redrawComponents(gd, [xa._id, ya._id]);\n var xScaleFactor = editX ? xlen / viewBox[2] : 1;\n var yScaleFactor = editY ? ylen / viewBox[3] : 1;\n var clipDx = editX ? viewBox[0] : 0;\n var clipDy = editY ? viewBox[1] : 0;\n var fracDx = editX ? viewBox[0] / viewBox[2] * xlen : 0;\n var fracDy = editY ? viewBox[1] / viewBox[3] * ylen : 0;\n var plotDx = xa._offset - fracDx;\n var plotDy = ya._offset - fracDy;\n plotinfo.clipRect.call(Drawing.setTranslate, clipDx, clipDy).call(Drawing.setScale, 1 / xScaleFactor, 1 / yScaleFactor);\n plotinfo.plot.call(Drawing.setTranslate, plotDx, plotDy).call(Drawing.setScale, xScaleFactor, yScaleFactor);\n Drawing.setPointGroupScale(plotinfo.zoomScalePts, 1 / xScaleFactor, 1 / yScaleFactor);\n Drawing.setTextPointsScale(plotinfo.zoomScaleTxt, 1 / xScaleFactor, 1 / yScaleFactor);\n }\n var onComplete;\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n function transitionComplete() {\n var aobj = {};\n for (var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if (edit.xr1) aobj[xa._name + \".range\"] = edit.xr1.slice();\n if (edit.yr1) aobj[ya._name + \".range\"] = edit.yr1.slice();\n }\n onComplete && onComplete();\n return Registry.call(\"relayout\", gd, aobj).then(function() {\n for (var i2 = 0; i2 < edits.length; i2++) {\n unsetSubplotTransform(edits[i2].plotinfo);\n }\n });\n }\n function transitionInterrupt() {\n var aobj = {};\n for (var i = 0; i < edits.length; i++) {\n var edit = edits[i];\n var xa = edit.plotinfo.xaxis;\n var ya = edit.plotinfo.yaxis;\n if (edit.xr0) aobj[xa._name + \".range\"] = edit.xr0.slice();\n if (edit.yr0) aobj[ya._name + \".range\"] = edit.yr0.slice();\n }\n return Registry.call(\"relayout\", gd, aobj).then(function() {\n for (var i2 = 0; i2 < edits.length; i2++) {\n unsetSubplotTransform(edits[i2].plotinfo);\n }\n });\n }\n var t12, t22, raf;\n var easeFn = d3.ease(transitionOpts.easing);\n gd._transitionData._interruptCallbacks.push(function() {\n window.cancelAnimationFrame(raf);\n raf = null;\n return transitionInterrupt();\n });\n function doFrame() {\n t22 = Date.now();\n var tInterp = Math.min(1, (t22 - t12) / transitionOpts.duration);\n var progress = easeFn(tInterp);\n for (var i = 0; i < edits.length; i++) {\n updateSubplot(edits[i], progress);\n }\n if (t22 - t12 > transitionOpts.duration) {\n transitionComplete();\n raf = window.cancelAnimationFrame(doFrame);\n } else {\n raf = window.requestAnimationFrame(doFrame);\n }\n }\n t12 = Date.now();\n raf = window.requestAnimationFrame(doFrame);\n return Promise.resolve();\n };\n }\n });\n\n // src/plots/cartesian/index.js\n var require_cartesian = __commonJS({\n \"src/plots/cartesian/index.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Lib = require_lib();\n var Plots = require_plots();\n var Drawing = require_drawing();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var axisIds = require_axis_ids();\n var constants = require_constants2();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var ensureSingle = Lib.ensureSingle;\n function ensureSingleAndAddDatum(parent, nodeType, className) {\n return Lib.ensureSingle(parent, nodeType, className, function(s) {\n s.datum(className);\n });\n }\n var zindexSeparator = constants.zindexSeparator;\n exports.name = \"cartesian\";\n exports.attr = [\"xaxis\", \"yaxis\"];\n exports.idRoot = [\"x\", \"y\"];\n exports.idRegex = constants.idRegex;\n exports.attrRegex = constants.attrRegex;\n exports.attributes = require_attributes14();\n exports.layoutAttributes = require_layout_attributes4();\n exports.supplyLayoutDefaults = require_layout_defaults4();\n exports.transitionAxes = require_transition_axes();\n exports.finalizeSubplots = function(layoutIn, layoutOut) {\n var subplots = layoutOut._subplots;\n var xList = subplots.xaxis;\n var yList = subplots.yaxis;\n var spSVG = subplots.cartesian;\n var spAll = spSVG;\n var allX = {};\n var allY = {};\n var i, xi, yi;\n for (i = 0; i < spAll.length; i++) {\n var parts = spAll[i].split(\"y\");\n allX[parts[0]] = 1;\n allY[\"y\" + parts[1]] = 1;\n }\n for (i = 0; i < xList.length; i++) {\n xi = xList[i];\n if (!allX[xi]) {\n yi = (layoutIn[axisIds.id2name(xi)] || {}).anchor;\n if (!constants.idRegex.y.test(yi)) yi = \"y\";\n spSVG.push(xi + yi);\n spAll.push(xi + yi);\n if (!allY[yi]) {\n allY[yi] = 1;\n Lib.pushUnique(yList, yi);\n }\n }\n }\n for (i = 0; i < yList.length; i++) {\n yi = yList[i];\n if (!allY[yi]) {\n xi = (layoutIn[axisIds.id2name(yi)] || {}).anchor;\n if (!constants.idRegex.x.test(xi)) xi = \"x\";\n spSVG.push(xi + yi);\n spAll.push(xi + yi);\n if (!allX[xi]) {\n allX[xi] = 1;\n Lib.pushUnique(xList, xi);\n }\n }\n }\n if (!spAll.length) {\n xi = \"\";\n yi = \"\";\n for (var ki in layoutIn) {\n if (constants.attrRegex.test(ki)) {\n var axLetter = ki.charAt(0);\n if (axLetter === \"x\") {\n if (!xi || +ki.substr(5) < +xi.substr(5)) {\n xi = ki;\n }\n } else if (!yi || +ki.substr(5) < +yi.substr(5)) {\n yi = ki;\n }\n }\n }\n xi = xi ? axisIds.name2id(xi) : \"x\";\n yi = yi ? axisIds.name2id(yi) : \"y\";\n xList.push(xi);\n yList.push(yi);\n spSVG.push(xi + yi);\n }\n };\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var subplots = fullLayout._subplots.cartesian;\n var calcdata = gd.calcdata;\n var i;\n if (!Array.isArray(traces)) {\n traces = [];\n for (i = 0; i < calcdata.length; i++) traces.push(i);\n }\n var zindices = fullLayout._zindices;\n for (var z = 0; z < zindices.length; z++) {\n var zorder = zindices[z];\n for (i = 0; i < subplots.length; i++) {\n var subplot = subplots[i];\n var subplotInfo = fullLayout._plots[subplot];\n if (z > 0) {\n var idWithZ = subplotInfo.id;\n if (idWithZ.indexOf(zindexSeparator) !== -1) continue;\n idWithZ += zindexSeparator + (z + 1);\n subplotInfo = Lib.extendFlat({}, subplotInfo, {\n id: idWithZ,\n plot: fullLayout._cartesianlayer.selectAll(\".subplot\").select(\".\" + idWithZ)\n });\n }\n var cdSubplot = [];\n var pcd;\n for (var j = 0; j < calcdata.length; j++) {\n var cd = calcdata[j];\n var trace = cd[0].trace;\n if (zorder !== (trace.zorder || 0)) continue;\n if (trace.xaxis + trace.yaxis === subplot) {\n if (traces.indexOf(trace.index) !== -1 || trace.carpet) {\n if (pcd && pcd[0].trace.xaxis + pcd[0].trace.yaxis === subplot && [\"tonextx\", \"tonexty\", \"tonext\"].indexOf(trace.fill) !== -1 && cdSubplot.indexOf(pcd) === -1) {\n cdSubplot.push(pcd);\n }\n cdSubplot.push(cd);\n }\n pcd = cd;\n }\n }\n plotOne(gd, subplotInfo, cdSubplot, transitionOpts, makeOnCompleteCallback);\n }\n }\n };\n function plotOne(gd, plotinfo, cdSubplot, transitionOpts, makeOnCompleteCallback) {\n var traceLayerClasses = constants.traceLayerClasses;\n var fullLayout = gd._fullLayout;\n var zindices = fullLayout._zindices;\n var modules = fullLayout._modules;\n var _module, cdModuleAndOthers, cdModule;\n var layerData = [];\n var zoomScaleQueryParts = [];\n for (var z = 0; z < zindices.length; z++) {\n var zorder = zindices[z];\n for (var i = 0; i < modules.length; i++) {\n _module = modules[i];\n var name2 = _module.name;\n var categories = Registry.modules[name2].categories;\n if (categories.svg) {\n var classBaseName = _module.layerName || name2 + \"layer\";\n var className = classBaseName + (z ? Number(z) + 1 : \"\");\n var plotMethod = _module.plot;\n cdModuleAndOthers = getModuleCalcData(cdSubplot, plotMethod, zorder);\n cdModule = cdModuleAndOthers[0];\n cdSubplot = cdModuleAndOthers[1];\n if (cdModule.length) {\n layerData.push({\n i: traceLayerClasses.indexOf(classBaseName),\n zindex: z,\n className,\n plotMethod,\n cdModule\n });\n }\n if (categories.zoomScale) {\n zoomScaleQueryParts.push(\".\" + className);\n }\n }\n }\n }\n layerData.sort(function(a, b) {\n return (a.zindex || 0) - (b.zindex || 0) || a.i - b.i;\n });\n var layers = plotinfo.plot.selectAll(\"g.mlayer\").data(layerData, function(d) {\n return d.className;\n });\n layers.enter().append(\"g\").attr(\"class\", function(d) {\n return d.className;\n }).classed(\"mlayer\", true).classed(\"rangeplot\", plotinfo.isRangePlot);\n layers.exit().remove();\n layers.order();\n layers.each(function(d) {\n var sel = d3.select(this);\n var className2 = d.className;\n d.plotMethod(\n gd,\n plotinfo,\n d.cdModule,\n sel,\n transitionOpts,\n makeOnCompleteCallback\n );\n if (constants.clipOnAxisFalseQuery.indexOf(\".\" + className2) === -1) {\n Drawing.setClipUrl(sel, plotinfo.layerClipId, gd);\n }\n });\n if (fullLayout._has(\"scattergl\")) {\n _module = Registry.getModule(\"scattergl\");\n cdModule = getModuleCalcData(cdSubplot, _module)[0];\n _module.plot(gd, plotinfo, cdModule);\n }\n if (!gd._context.staticPlot) {\n if (plotinfo._hasClipOnAxisFalse) {\n plotinfo.clipOnAxisFalseTraces = plotinfo.plot.selectAll(constants.clipOnAxisFalseQuery.join(\",\")).selectAll(\".trace\");\n }\n if (zoomScaleQueryParts.length) {\n var traces = plotinfo.plot.selectAll(zoomScaleQueryParts.join(\",\")).selectAll(\".trace\");\n plotinfo.zoomScalePts = traces.selectAll(\"path.point\");\n plotinfo.zoomScaleTxt = traces.selectAll(\".textpoint\");\n }\n }\n }\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldPlots = oldFullLayout._plots || {};\n var newPlots = newFullLayout._plots || {};\n var oldSubplotList = oldFullLayout._subplots || {};\n var plotinfo;\n var i, k;\n if (oldFullLayout._hasOnlyLargeSploms && !newFullLayout._hasOnlyLargeSploms) {\n for (k in oldPlots) {\n plotinfo = oldPlots[k];\n if (plotinfo.plotgroup) plotinfo.plotgroup.remove();\n }\n }\n var hadGl = oldFullLayout._has && oldFullLayout._has(\"gl\");\n var hasGl = newFullLayout._has && newFullLayout._has(\"gl\");\n if (hadGl && !hasGl) {\n for (k in oldPlots) {\n plotinfo = oldPlots[k];\n if (plotinfo._scene) plotinfo._scene.destroy();\n }\n }\n if (oldSubplotList.xaxis && oldSubplotList.yaxis) {\n var oldAxIDs = axisIds.listIds({ _fullLayout: oldFullLayout });\n for (i = 0; i < oldAxIDs.length; i++) {\n var oldAxId = oldAxIDs[i];\n if (!newFullLayout[axisIds.id2name(oldAxId)]) {\n oldFullLayout._infolayer.selectAll(\".g-\" + oldAxId + \"title\").remove();\n }\n }\n }\n var hadCartesian = oldFullLayout._has && oldFullLayout._has(\"cartesian\");\n var hasCartesian = newFullLayout._has && newFullLayout._has(\"cartesian\");\n if (hadCartesian && !hasCartesian) {\n purgeSubplotLayers(oldFullLayout._cartesianlayer.selectAll(\".subplot\"), oldFullLayout);\n oldFullLayout._defs.selectAll(\".axesclip\").remove();\n delete oldFullLayout._axisConstraintGroups;\n delete oldFullLayout._axisMatchGroups;\n } else if (oldSubplotList.cartesian) {\n for (i = 0; i < oldSubplotList.cartesian.length; i++) {\n var oldSubplotId = oldSubplotList.cartesian[i];\n if (oldSubplotId.indexOf(zindexSeparator) !== -1) continue;\n if (!newPlots[oldSubplotId]) {\n var selector = \".\" + oldSubplotId + \",.\" + oldSubplotId + \"-x,.\" + oldSubplotId + \"-y\";\n oldFullLayout._cartesianlayer.selectAll(selector).remove();\n removeSubplotExtras(oldSubplotId, oldFullLayout);\n }\n }\n }\n };\n exports.drawFramework = function(gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var i;\n var traceZorderGroups = {};\n for (i = 0; i < calcdata.length; i++) {\n var cdi = calcdata[i][0];\n var trace = cdi.trace;\n var zi = trace.zorder || 0;\n if (!traceZorderGroups[zi]) traceZorderGroups[zi] = [];\n traceZorderGroups[zi].push(cdi);\n }\n var zindices = Object.keys(traceZorderGroups).map(Number).sort(Lib.sorterAsc);\n if (!zindices.length) zindices = [0];\n fullLayout._zindices = zindices;\n var initialSubplotData = makeSubplotData(gd);\n var len = initialSubplotData.length;\n var subplotData = [];\n for (i = 0; i < len; i++) {\n subplotData[i] = initialSubplotData[i].slice();\n }\n for (var z = 1; z < zindices.length; z++) {\n var newSubplotData = [];\n for (i = 0; i < len; i++) {\n newSubplotData[i] = initialSubplotData[i].slice();\n newSubplotData[i][0] += zindexSeparator + (z + 1);\n }\n subplotData = subplotData.concat(newSubplotData);\n }\n var subplotLayers = fullLayout._cartesianlayer.selectAll(\".subplot\").data(subplotData, String);\n subplotLayers.enter().append(\"g\").attr(\"class\", function(d) {\n return \"subplot \" + d[0];\n });\n subplotLayers.order();\n subplotLayers.exit().call(purgeSubplotLayers, fullLayout);\n subplotLayers.each(function(d) {\n var id = d[0];\n var posZ = id.indexOf(zindexSeparator);\n var hasZ = posZ !== -1;\n var idWithoutZ = hasZ ? id.slice(0, posZ) : id;\n var plotinfo = fullLayout._plots[id];\n if (!plotinfo) {\n plotinfo = Lib.extendFlat({}, fullLayout._plots[idWithoutZ]);\n if (plotinfo) {\n plotinfo.id = id;\n fullLayout._plots[id] = plotinfo;\n fullLayout._subplots.cartesian.push(id);\n }\n }\n if (plotinfo) {\n plotinfo.plotgroup = d3.select(this);\n makeSubplotLayer(gd, plotinfo);\n if (!hasZ) {\n plotinfo.draglayer = ensureSingle(fullLayout._draggers, \"g\", id);\n }\n }\n });\n };\n exports.rangePlot = function(gd, plotinfo, cdSubplot) {\n makeSubplotLayer(gd, plotinfo);\n plotOne(gd, plotinfo, cdSubplot);\n Plots.style(gd);\n };\n function makeSubplotData(gd) {\n var fullLayout = gd._fullLayout;\n var numZ = fullLayout._zindices.length;\n var ids = fullLayout._subplots.cartesian;\n var len = ids.length;\n var i, j, id, plotinfo, xa, ya;\n var regulars = [];\n var overlays = [];\n for (i = 0; i < len; i++) {\n id = ids[i];\n plotinfo = fullLayout._plots[id];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var xa2 = xa._mainAxis;\n var ya2 = ya._mainAxis;\n var mainplot = xa2._id + ya2._id;\n var mainplotinfo = fullLayout._plots[mainplot];\n plotinfo.overlays = [];\n if (mainplot !== id && mainplotinfo) {\n plotinfo.mainplot = mainplot;\n plotinfo.mainplotinfo = mainplotinfo;\n overlays.push(id);\n } else {\n plotinfo.mainplot = void 0;\n plotinfo.mainplotinfo = void 0;\n regulars.push(id);\n }\n }\n for (i = 0; i < overlays.length; i++) {\n id = overlays[i];\n plotinfo = fullLayout._plots[id];\n plotinfo.mainplotinfo.overlays.push(plotinfo);\n }\n var subplotIds = regulars.concat(overlays);\n var subplotData = [];\n for (i = 0; i < len; i++) {\n id = subplotIds[i];\n plotinfo = fullLayout._plots[id];\n xa = plotinfo.xaxis;\n ya = plotinfo.yaxis;\n var d = [];\n for (var z = 1; z <= numZ; z++) {\n var zStr = \"\";\n if (z > 1) zStr += zindexSeparator + z;\n d.push(id + zStr);\n for (j = 0; j < plotinfo.overlays.length; j++) {\n d.push(plotinfo.overlays[j].id + zStr);\n }\n }\n d = d.concat([\n xa.layer,\n ya.layer,\n xa.overlaying || \"\",\n ya.overlaying || \"\"\n ]);\n subplotData.push(d);\n }\n return subplotData;\n }\n function makeSubplotLayer(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var plotgroup = plotinfo.plotgroup;\n var id = plotinfo.id;\n var posZ = id.indexOf(zindexSeparator);\n var hasZ = posZ !== -1;\n var xLayer = constants.layerValue2layerClass[plotinfo.xaxis.layer];\n var yLayer = constants.layerValue2layerClass[plotinfo.yaxis.layer];\n var hasOnlyLargeSploms = fullLayout._hasOnlyLargeSploms;\n var hasMultipleZ = fullLayout._zindices.length > 1;\n var mainplotinfo = plotinfo.mainplotinfo;\n if (!plotinfo.mainplot || hasMultipleZ) {\n if (hasOnlyLargeSploms) {\n plotinfo.xlines = ensureSingle(plotgroup, \"path\", \"xlines-above\");\n plotinfo.ylines = ensureSingle(plotgroup, \"path\", \"ylines-above\");\n plotinfo.xaxislayer = ensureSingle(plotgroup, \"g\", \"xaxislayer-above\");\n plotinfo.yaxislayer = ensureSingle(plotgroup, \"g\", \"yaxislayer-above\");\n } else {\n if (!hasZ) {\n var backLayer = ensureSingle(plotgroup, \"g\", \"layer-subplot\");\n plotinfo.shapelayer = ensureSingle(backLayer, \"g\", \"shapelayer\");\n plotinfo.imagelayer = ensureSingle(backLayer, \"g\", \"imagelayer\");\n if (mainplotinfo && hasMultipleZ) {\n plotinfo.minorGridlayer = mainplotinfo.minorGridlayer;\n plotinfo.gridlayer = mainplotinfo.gridlayer;\n plotinfo.zerolinelayer = mainplotinfo.zerolinelayer;\n } else {\n plotinfo.minorGridlayer = ensureSingle(plotgroup, \"g\", \"minor-gridlayer\");\n plotinfo.gridlayer = ensureSingle(plotgroup, \"g\", \"gridlayer\");\n plotinfo.zerolinelayer = ensureSingle(plotgroup, \"g\", \"zerolinelayer\");\n }\n var betweenLayer = ensureSingle(plotgroup, \"g\", \"layer-between\");\n plotinfo.shapelayerBetween = ensureSingle(betweenLayer, \"g\", \"shapelayer\");\n plotinfo.imagelayerBetween = ensureSingle(betweenLayer, \"g\", \"imagelayer\");\n ensureSingle(plotgroup, \"path\", \"xlines-below\");\n ensureSingle(plotgroup, \"path\", \"ylines-below\");\n plotinfo.overlinesBelow = ensureSingle(plotgroup, \"g\", \"overlines-below\");\n ensureSingle(plotgroup, \"g\", \"xaxislayer-below\");\n ensureSingle(plotgroup, \"g\", \"yaxislayer-below\");\n plotinfo.overaxesBelow = ensureSingle(plotgroup, \"g\", \"overaxes-below\");\n }\n plotinfo.overplot = ensureSingle(plotgroup, \"g\", \"overplot\");\n plotinfo.plot = ensureSingle(plotinfo.overplot, \"g\", id);\n if (!hasZ) {\n plotinfo.xlines = ensureSingle(plotgroup, \"path\", \"xlines-above\");\n plotinfo.ylines = ensureSingle(plotgroup, \"path\", \"ylines-above\");\n plotinfo.overlinesAbove = ensureSingle(plotgroup, \"g\", \"overlines-above\");\n ensureSingle(plotgroup, \"g\", \"xaxislayer-above\");\n ensureSingle(plotgroup, \"g\", \"yaxislayer-above\");\n plotinfo.overaxesAbove = ensureSingle(plotgroup, \"g\", \"overaxes-above\");\n plotinfo.xlines = plotgroup.select(\".xlines-\" + xLayer);\n plotinfo.ylines = plotgroup.select(\".ylines-\" + yLayer);\n plotinfo.xaxislayer = plotgroup.select(\".xaxislayer-\" + xLayer);\n plotinfo.yaxislayer = plotgroup.select(\".yaxislayer-\" + yLayer);\n }\n }\n } else {\n var mainplotgroup = mainplotinfo.plotgroup;\n var xId = id + \"-x\";\n var yId = id + \"-y\";\n plotinfo.minorGridlayer = mainplotinfo.minorGridlayer;\n plotinfo.gridlayer = mainplotinfo.gridlayer;\n plotinfo.zerolinelayer = mainplotinfo.zerolinelayer;\n ensureSingle(mainplotinfo.overlinesBelow, \"path\", xId);\n ensureSingle(mainplotinfo.overlinesBelow, \"path\", yId);\n ensureSingle(mainplotinfo.overaxesBelow, \"g\", xId);\n ensureSingle(mainplotinfo.overaxesBelow, \"g\", yId);\n plotinfo.plot = ensureSingle(mainplotinfo.overplot, \"g\", id);\n ensureSingle(mainplotinfo.overlinesAbove, \"path\", xId);\n ensureSingle(mainplotinfo.overlinesAbove, \"path\", yId);\n ensureSingle(mainplotinfo.overaxesAbove, \"g\", xId);\n ensureSingle(mainplotinfo.overaxesAbove, \"g\", yId);\n plotinfo.xlines = mainplotgroup.select(\".overlines-\" + xLayer).select(\".\" + xId);\n plotinfo.ylines = mainplotgroup.select(\".overlines-\" + yLayer).select(\".\" + yId);\n plotinfo.xaxislayer = mainplotgroup.select(\".overaxes-\" + xLayer).select(\".\" + xId);\n plotinfo.yaxislayer = mainplotgroup.select(\".overaxes-\" + yLayer).select(\".\" + yId);\n }\n if (!hasZ) {\n if (!hasOnlyLargeSploms) {\n ensureSingleAndAddDatum(plotinfo.minorGridlayer, \"g\", plotinfo.xaxis._id);\n ensureSingleAndAddDatum(plotinfo.minorGridlayer, \"g\", plotinfo.yaxis._id);\n plotinfo.minorGridlayer.selectAll(\"g\").map(function(d) {\n return d[0];\n }).sort(axisIds.idSort);\n ensureSingleAndAddDatum(plotinfo.gridlayer, \"g\", plotinfo.xaxis._id);\n ensureSingleAndAddDatum(plotinfo.gridlayer, \"g\", plotinfo.yaxis._id);\n plotinfo.gridlayer.selectAll(\"g\").map(function(d) {\n return d[0];\n }).sort(axisIds.idSort);\n }\n plotinfo.xlines.style(\"fill\", \"none\").classed(\"crisp\", true);\n plotinfo.ylines.style(\"fill\", \"none\").classed(\"crisp\", true);\n }\n }\n function purgeSubplotLayers(layers, fullLayout) {\n if (!layers) return;\n var overlayIdsToRemove = {};\n layers.each(function(d) {\n var id = d[0];\n var plotgroup = d3.select(this);\n plotgroup.remove();\n removeSubplotExtras(id, fullLayout);\n overlayIdsToRemove[id] = true;\n });\n for (var k in fullLayout._plots) {\n var subplotInfo = fullLayout._plots[k];\n var overlays = subplotInfo.overlays || [];\n for (var j = 0; j < overlays.length; j++) {\n var overlayInfo = overlays[j];\n if (overlayIdsToRemove[overlayInfo.id]) {\n overlayInfo.plot.selectAll(\".trace\").remove();\n }\n }\n }\n }\n function removeSubplotExtras(subplotId, fullLayout) {\n fullLayout._draggers.selectAll(\"g.\" + subplotId).remove();\n fullLayout._defs.select(\"#clip\" + fullLayout._uid + subplotId + \"plot\").remove();\n }\n exports.toSVG = function(gd) {\n var imageRoot = gd._fullLayout._glimages;\n var root = d3.select(gd).selectAll(\".svg-container\");\n var canvases = root.filter(function(d, i) {\n return i === root.size() - 1;\n }).selectAll(\".gl-canvas-context, .gl-canvas-focus\");\n function canvasToImage() {\n var canvas = this;\n var imageData = canvas.toDataURL(\"image/png\");\n var image = imageRoot.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n preserveAspectRatio: \"none\",\n x: 0,\n y: 0,\n width: canvas.style.width,\n height: canvas.style.height\n });\n }\n canvases.each(canvasToImage);\n };\n exports.updateFx = require_graph_interact().updateFx;\n }\n });\n\n // src/traces/scatter/index.js\n var require_scatter = __commonJS({\n \"src/traces/scatter/index.js\"(exports, module) {\n \"use strict\";\n var subtypes = require_subtypes();\n module.exports = {\n hasLines: subtypes.hasLines,\n hasMarkers: subtypes.hasMarkers,\n hasText: subtypes.hasText,\n isBubble: subtypes.isBubble,\n attributes: require_attributes12(),\n layoutAttributes: require_layout_attributes3(),\n supplyDefaults: require_defaults8(),\n crossTraceDefaults: require_cross_trace_defaults2(),\n supplyLayoutDefaults: require_layout_defaults3(),\n calc: require_calc3().calc,\n crossTraceCalc: require_cross_trace_calc2(),\n arraysToCalcdata: require_arrays_to_calcdata(),\n plot: require_plot(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover2(),\n selectPoints: require_select2(),\n animatable: true,\n moduleType: \"trace\",\n name: \"scatter\",\n basePlotModule: require_cartesian(),\n categories: [\n \"cartesian\",\n \"svg\",\n \"symbols\",\n \"errorBarsOK\",\n \"showLegend\",\n \"scatter-like\",\n \"zoomScale\"\n ],\n meta: {}\n };\n }\n });\n\n // src/components/annotations/draw_arrow_head.js\n var require_draw_arrow_head = __commonJS({\n \"src/components/annotations/draw_arrow_head.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var ARROWPATHS = require_arrow_paths();\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n module.exports = function drawArrowHead(el3, ends, options) {\n var el = el3.node();\n var headStyle = ARROWPATHS[options.arrowhead || 0];\n var startHeadStyle = ARROWPATHS[options.startarrowhead || 0];\n var scale = (options.arrowwidth || 1) * (options.arrowsize || 1);\n var startScale = (options.arrowwidth || 1) * (options.startarrowsize || 1);\n var doStart = ends.indexOf(\"start\") >= 0;\n var doEnd = ends.indexOf(\"end\") >= 0;\n var backOff = headStyle.backoff * scale + options.standoff;\n var startBackOff = startHeadStyle.backoff * startScale + options.startstandoff;\n var start, end, startRot, endRot;\n if (el.nodeName === \"line\") {\n start = { x: +el3.attr(\"x1\"), y: +el3.attr(\"y1\") };\n end = { x: +el3.attr(\"x2\"), y: +el3.attr(\"y2\") };\n var dx = start.x - end.x;\n var dy = start.y - end.y;\n startRot = Math.atan2(dy, dx);\n endRot = startRot + Math.PI;\n if (backOff && startBackOff) {\n if (backOff + startBackOff > Math.sqrt(dx * dx + dy * dy)) {\n hideLine();\n return;\n }\n }\n if (backOff) {\n if (backOff * backOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var backOffX = backOff * Math.cos(startRot);\n var backOffY = backOff * Math.sin(startRot);\n end.x += backOffX;\n end.y += backOffY;\n el3.attr({ x2: end.x, y2: end.y });\n }\n if (startBackOff) {\n if (startBackOff * startBackOff > dx * dx + dy * dy) {\n hideLine();\n return;\n }\n var startBackOffX = startBackOff * Math.cos(startRot);\n var startbackOffY = startBackOff * Math.sin(startRot);\n start.x -= startBackOffX;\n start.y -= startbackOffY;\n el3.attr({ x1: start.x, y1: start.y });\n }\n } else if (el.nodeName === \"path\") {\n var pathlen = el.getTotalLength();\n var dashArray = \"\";\n if (pathlen < backOff + startBackOff) {\n hideLine();\n return;\n }\n var start0 = el.getPointAtLength(0);\n var dstart = el.getPointAtLength(0.1);\n startRot = Math.atan2(start0.y - dstart.y, start0.x - dstart.x);\n start = el.getPointAtLength(Math.min(startBackOff, pathlen));\n dashArray = \"0px,\" + startBackOff + \"px,\";\n var end0 = el.getPointAtLength(pathlen);\n var dend = el.getPointAtLength(pathlen - 0.1);\n endRot = Math.atan2(end0.y - dend.y, end0.x - dend.x);\n end = el.getPointAtLength(Math.max(0, pathlen - backOff));\n var shortening = dashArray ? startBackOff + backOff : backOff;\n dashArray += pathlen - shortening + \"px,\" + pathlen + \"px\";\n el3.style(\"stroke-dasharray\", dashArray);\n }\n function hideLine() {\n el3.style(\"stroke-dasharray\", \"0px,100px\");\n }\n function drawhead(arrowHeadStyle, p, rot, arrowScale) {\n if (!arrowHeadStyle.path) return;\n if (arrowHeadStyle.noRotate) rot = 0;\n d3.select(el.parentNode).append(\"path\").attr({\n class: el3.attr(\"class\"),\n d: arrowHeadStyle.path,\n transform: strTranslate(p.x, p.y) + strRotate(rot * 180 / Math.PI) + strScale(arrowScale)\n }).style({\n fill: Color2.rgb(options.arrowcolor),\n \"stroke-width\": 0\n });\n }\n if (doStart) drawhead(startHeadStyle, start, startRot, startScale);\n if (doEnd) drawhead(headStyle, end, endRot, scale);\n };\n }\n });\n\n // src/components/annotations/draw.js\n var require_draw4 = __commonJS({\n \"src/components/annotations/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Axes = require_axes();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Fx = require_fx();\n var svgTextUtils = require_svg_text_utils();\n var setCursor = require_setcursor();\n var dragElement = require_dragelement();\n var arrayEditor = require_plot_template().arrayEditor;\n var drawArrowHead = require_draw_arrow_head();\n module.exports = {\n draw,\n drawOne,\n drawRaw\n };\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n fullLayout._infolayer.selectAll(\".annotation\").remove();\n for (var i = 0; i < fullLayout.annotations.length; i++) {\n if (fullLayout.annotations[i].visible) {\n drawOne(gd, i);\n }\n }\n return Plots.previousPromises(gd);\n }\n function drawOne(gd, index) {\n var fullLayout = gd._fullLayout;\n var options = fullLayout.annotations[index] || {};\n var xa = Axes.getFromId(gd, options.xref);\n var ya = Axes.getFromId(gd, options.yref);\n if (xa) xa.setScale();\n if (ya) ya.setScale();\n drawRaw(gd, options, index, false, xa, ya);\n }\n function shiftPosition(axa, dAx, axLetter, gs, options) {\n var optAx = options[axLetter];\n var axRef = options[axLetter + \"ref\"];\n var vertical = axLetter.indexOf(\"y\") !== -1;\n var axDomainRef = Axes.getRefType(axRef) === \"domain\";\n var gsDim = vertical ? gs.h : gs.w;\n if (axa) {\n if (axDomainRef) {\n return optAx + (vertical ? -dAx : dAx) / axa._length;\n } else {\n return axa.p2r(axa.r2p(optAx) + dAx);\n }\n } else {\n return optAx + (vertical ? -dAx : dAx) / gsDim;\n }\n }\n function drawRaw(gd, options, index, subplotId, xa, ya) {\n var fullLayout = gd._fullLayout;\n var gs = gd._fullLayout._size;\n var edits = gd._context.edits;\n var className, containerStr;\n if (subplotId) {\n className = \"annotation-\" + subplotId;\n containerStr = subplotId + \".annotations\";\n } else {\n className = \"annotation\";\n containerStr = \"annotations\";\n }\n var editHelpers = arrayEditor(gd.layout, containerStr, options);\n var modifyBase = editHelpers.modifyBase;\n var modifyItem = editHelpers.modifyItem;\n var getUpdateObj = editHelpers.getUpdateObj;\n fullLayout._infolayer.selectAll(\".\" + className + '[data-index=\"' + index + '\"]').remove();\n var annClipID = \"clip\" + fullLayout._uid + \"_ann\" + index;\n if (!options._input || options.visible === false) {\n d3.selectAll(\"#\" + annClipID).remove();\n return;\n }\n var annPosPx = { x: {}, y: {} };\n var textangle = +options.textangle || 0;\n var annGroup = fullLayout._infolayer.append(\"g\").classed(className, true).attr(\"data-index\", String(index)).style(\"opacity\", options.opacity);\n var annTextGroup = annGroup.append(\"g\").classed(\"annotation-text-g\", true);\n var editTextPosition = edits[options.showarrow ? \"annotationTail\" : \"annotationPosition\"];\n var textEvents = options.captureevents || edits.annotationText || editTextPosition;\n function makeEventData(initialEvent) {\n var eventData = {\n index,\n annotation: options._input,\n fullAnnotation: options,\n event: initialEvent\n };\n if (subplotId) {\n eventData.subplotId = subplotId;\n }\n return eventData;\n }\n var annTextGroupInner = annTextGroup.append(\"g\").style(\"pointer-events\", textEvents ? \"all\" : null).call(setCursor, \"pointer\").on(\"click\", function() {\n gd._dragging = false;\n gd.emit(\"plotly_clickannotation\", makeEventData(d3.event));\n });\n if (options.hovertext) {\n annTextGroupInner.on(\"mouseover\", function() {\n var hoverOptions = options.hoverlabel;\n var hoverFont = hoverOptions.font;\n var bBox = this.getBoundingClientRect();\n var bBoxRef = gd.getBoundingClientRect();\n Fx.loneHover({\n x0: bBox.left - bBoxRef.left,\n x1: bBox.right - bBoxRef.left,\n y: (bBox.top + bBox.bottom) / 2 - bBoxRef.top,\n text: options.hovertext,\n color: hoverOptions.bgcolor,\n borderColor: hoverOptions.bordercolor,\n fontFamily: hoverFont.family,\n fontSize: hoverFont.size,\n fontColor: hoverFont.color,\n fontWeight: hoverFont.weight,\n fontStyle: hoverFont.style,\n fontVariant: hoverFont.variant,\n fontShadow: hoverFont.fontShadow,\n fontLineposition: hoverFont.fontLineposition,\n fontTextcase: hoverFont.fontTextcase\n }, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n }).on(\"mouseout\", function() {\n Fx.loneUnhover(fullLayout._hoverlayer.node());\n });\n }\n var borderwidth = options.borderwidth;\n var borderpad = options.borderpad;\n var borderfull = borderwidth + borderpad;\n var annTextBG = annTextGroupInner.append(\"rect\").attr(\"class\", \"bg\").style(\"stroke-width\", borderwidth + \"px\").call(Color2.stroke, options.bordercolor).call(Color2.fill, options.bgcolor);\n var isSizeConstrained = options.width || options.height;\n var annTextClip = fullLayout._topclips.selectAll(\"#\" + annClipID).data(isSizeConstrained ? [0] : []);\n annTextClip.enter().append(\"clipPath\").classed(\"annclip\", true).attr(\"id\", annClipID).append(\"rect\");\n annTextClip.exit().remove();\n var font = options.font;\n var text = fullLayout._meta ? Lib.templateString(options.text, fullLayout._meta) : options.text;\n var annText = annTextGroupInner.append(\"text\").classed(\"annotation-text\", true).text(text);\n function textLayout(s) {\n s.call(Drawing.font, font).attr({\n \"text-anchor\": {\n left: \"start\",\n right: \"end\"\n }[options.align] || \"middle\"\n });\n svgTextUtils.convertToTspans(s, gd, drawGraphicalElements);\n return s;\n }\n function drawGraphicalElements() {\n var anchor3 = annText.selectAll(\"a\");\n if (anchor3.size() === 1 && anchor3.text() === annText.text()) {\n var wholeLink = annTextGroupInner.insert(\"a\", \":first-child\").attr({\n \"xlink:xlink:href\": anchor3.attr(\"xlink:href\"),\n \"xlink:xlink:show\": anchor3.attr(\"xlink:show\")\n }).style({ cursor: \"pointer\" });\n wholeLink.node().appendChild(annTextBG.node());\n }\n var mathjaxGroup = annTextGroupInner.select(\".annotation-text-math-group\");\n var hasMathjax = !mathjaxGroup.empty();\n var anntextBB = Drawing.bBox(\n (hasMathjax ? mathjaxGroup : annText).node()\n );\n var textWidth = anntextBB.width;\n var textHeight = anntextBB.height;\n var annWidth = options.width || textWidth;\n var annHeight = options.height || textHeight;\n var outerWidth = Math.round(annWidth + 2 * borderfull);\n var outerHeight = Math.round(annHeight + 2 * borderfull);\n function shiftFraction(v, anchor2) {\n if (anchor2 === \"auto\") {\n if (v < 1 / 3) anchor2 = \"left\";\n else if (v > 2 / 3) anchor2 = \"right\";\n else anchor2 = \"center\";\n }\n return {\n center: 0,\n middle: 0,\n left: 0.5,\n bottom: -0.5,\n right: -0.5,\n top: 0.5\n }[anchor2];\n }\n var annotationIsOffscreen = false;\n var letters = [\"x\", \"y\"];\n for (var i = 0; i < letters.length; i++) {\n var axLetter = letters[i];\n var axRef = options[axLetter + \"ref\"] || axLetter;\n var tailRef = options[\"a\" + axLetter + \"ref\"];\n var ax = { x: xa, y: ya }[axLetter];\n var dimAngle = (textangle + (axLetter === \"x\" ? 0 : -90)) * Math.PI / 180;\n var annSizeFromWidth = outerWidth * Math.cos(dimAngle);\n var annSizeFromHeight = outerHeight * Math.sin(dimAngle);\n var annSize = Math.abs(annSizeFromWidth) + Math.abs(annSizeFromHeight);\n var anchor = options[axLetter + \"anchor\"];\n var overallShift = options[axLetter + \"shift\"] * (axLetter === \"x\" ? 1 : -1);\n var posPx = annPosPx[axLetter];\n var basePx;\n var textPadShift;\n var alignPosition;\n var autoAlignFraction;\n var textShift;\n var axRefType = Axes.getRefType(axRef);\n if (ax && axRefType !== \"domain\") {\n var posFraction = ax.r2fraction(options[axLetter]);\n if (posFraction < 0 || posFraction > 1) {\n if (tailRef === axRef) {\n posFraction = ax.r2fraction(options[\"a\" + axLetter]);\n if (posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n }\n } else {\n annotationIsOffscreen = true;\n }\n }\n basePx = ax._offset + ax.r2p(options[axLetter]);\n autoAlignFraction = 0.5;\n } else {\n var axRefTypeEqDomain = axRefType === \"domain\";\n if (axLetter === \"x\") {\n alignPosition = options[axLetter];\n basePx = axRefTypeEqDomain ? ax._offset + ax._length * alignPosition : basePx = gs.l + gs.w * alignPosition;\n } else {\n alignPosition = 1 - options[axLetter];\n basePx = axRefTypeEqDomain ? ax._offset + ax._length * alignPosition : basePx = gs.t + gs.h * alignPosition;\n }\n autoAlignFraction = options.showarrow ? 0.5 : alignPosition;\n }\n if (options.showarrow) {\n posPx.head = basePx;\n var arrowLength = options[\"a\" + axLetter];\n textShift = annSizeFromWidth * shiftFraction(0.5, options.xanchor) - annSizeFromHeight * shiftFraction(0.5, options.yanchor);\n if (tailRef === axRef) {\n var tailRefType = Axes.getRefType(tailRef);\n if (tailRefType === \"domain\") {\n if (axLetter === \"y\") {\n arrowLength = 1 - arrowLength;\n }\n posPx.tail = ax._offset + ax._length * arrowLength;\n } else if (tailRefType === \"paper\") {\n if (axLetter === \"y\") {\n arrowLength = 1 - arrowLength;\n posPx.tail = gs.t + gs.h * arrowLength;\n } else {\n posPx.tail = gs.l + gs.w * arrowLength;\n }\n } else {\n posPx.tail = ax._offset + ax.r2p(arrowLength);\n }\n textPadShift = textShift;\n } else {\n posPx.tail = basePx + arrowLength;\n textPadShift = textShift + arrowLength;\n }\n posPx.text = posPx.tail + textShift;\n var maxPx = fullLayout[axLetter === \"x\" ? \"width\" : \"height\"];\n if (axRef === \"paper\") {\n posPx.head = Lib.constrain(posPx.head, 1, maxPx - 1);\n }\n if (tailRef === \"pixel\") {\n var shiftPlus = -Math.max(posPx.tail - 3, posPx.text);\n var shiftMinus = Math.min(posPx.tail + 3, posPx.text) - maxPx;\n if (shiftPlus > 0) {\n posPx.tail += shiftPlus;\n posPx.text += shiftPlus;\n } else if (shiftMinus > 0) {\n posPx.tail -= shiftMinus;\n posPx.text -= shiftMinus;\n }\n }\n posPx.tail += overallShift;\n posPx.head += overallShift;\n } else {\n textShift = annSize * shiftFraction(autoAlignFraction, anchor);\n textPadShift = textShift;\n posPx.text = basePx + textShift;\n }\n posPx.text += overallShift;\n textShift += overallShift;\n textPadShift += overallShift;\n options[\"_\" + axLetter + \"padplus\"] = annSize / 2 + textPadShift;\n options[\"_\" + axLetter + \"padminus\"] = annSize / 2 - textPadShift;\n options[\"_\" + axLetter + \"size\"] = annSize;\n options[\"_\" + axLetter + \"shift\"] = textShift;\n }\n if (annotationIsOffscreen) {\n annTextGroupInner.remove();\n return;\n }\n var xShift = 0;\n var yShift = 0;\n if (options.align !== \"left\") {\n xShift = (annWidth - textWidth) * (options.align === \"center\" ? 0.5 : 1);\n }\n if (options.valign !== \"top\") {\n yShift = (annHeight - textHeight) * (options.valign === \"middle\" ? 0.5 : 1);\n }\n if (hasMathjax) {\n mathjaxGroup.select(\"svg\").attr({\n x: borderfull + xShift - 1,\n y: borderfull + yShift\n }).call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n } else {\n var texty = borderfull + yShift - anntextBB.top;\n var textx = borderfull + xShift - anntextBB.left;\n annText.call(svgTextUtils.positionText, textx, texty).call(Drawing.setClipUrl, isSizeConstrained ? annClipID : null, gd);\n }\n annTextClip.select(\"rect\").call(\n Drawing.setRect,\n borderfull,\n borderfull,\n annWidth,\n annHeight\n );\n annTextBG.call(\n Drawing.setRect,\n borderwidth / 2,\n borderwidth / 2,\n outerWidth - borderwidth,\n outerHeight - borderwidth\n );\n annTextGroupInner.call(\n Drawing.setTranslate,\n Math.round(annPosPx.x.text - outerWidth / 2),\n Math.round(annPosPx.y.text - outerHeight / 2)\n );\n annTextGroup.attr({ transform: \"rotate(\" + textangle + \",\" + annPosPx.x.text + \",\" + annPosPx.y.text + \")\" });\n var drawArrow = function(dx, dy) {\n annGroup.selectAll(\".annotation-arrow-g\").remove();\n var headX = annPosPx.x.head;\n var headY = annPosPx.y.head;\n var tailX = annPosPx.x.tail + dx;\n var tailY = annPosPx.y.tail + dy;\n var textX = annPosPx.x.text + dx;\n var textY = annPosPx.y.text + dy;\n var transform = Lib.rotationXYMatrix(textangle, textX, textY);\n var applyTransform = Lib.apply2DTransform(transform);\n var applyTransform2 = Lib.apply2DTransform2(transform);\n var width = +annTextBG.attr(\"width\");\n var height = +annTextBG.attr(\"height\");\n var xLeft = textX - 0.5 * width;\n var xRight = xLeft + width;\n var yTop = textY - 0.5 * height;\n var yBottom = yTop + height;\n var edges = [\n [xLeft, yTop, xLeft, yBottom],\n [xLeft, yBottom, xRight, yBottom],\n [xRight, yBottom, xRight, yTop],\n [xRight, yTop, xLeft, yTop]\n ].map(applyTransform2);\n if (edges.reduce(function(a, x) {\n return a ^ !!Lib.segmentsIntersect(\n headX,\n headY,\n headX + 1e6,\n headY + 1e6,\n x[0],\n x[1],\n x[2],\n x[3]\n );\n }, false)) {\n return;\n }\n edges.forEach(function(x) {\n var p = Lib.segmentsIntersect(\n tailX,\n tailY,\n headX,\n headY,\n x[0],\n x[1],\n x[2],\n x[3]\n );\n if (p) {\n tailX = p.x;\n tailY = p.y;\n }\n });\n var strokewidth = options.arrowwidth;\n var arrowColor = options.arrowcolor;\n var arrowSide = options.arrowside;\n var arrowGroup = annGroup.append(\"g\").style({ opacity: Color2.opacity(arrowColor) }).classed(\"annotation-arrow-g\", true);\n var arrow = arrowGroup.append(\"path\").attr(\"d\", \"M\" + tailX + \",\" + tailY + \"L\" + headX + \",\" + headY).style(\"stroke-width\", strokewidth + \"px\").call(Color2.stroke, Color2.rgb(arrowColor));\n drawArrowHead(arrow, arrowSide, options);\n if (edits.annotationPosition && arrow.node().parentNode && !subplotId) {\n var arrowDragHeadX = headX;\n var arrowDragHeadY = headY;\n if (options.standoff) {\n var arrowLength2 = Math.sqrt(Math.pow(headX - tailX, 2) + Math.pow(headY - tailY, 2));\n arrowDragHeadX += options.standoff * (tailX - headX) / arrowLength2;\n arrowDragHeadY += options.standoff * (tailY - headY) / arrowLength2;\n }\n var arrowDrag = arrowGroup.append(\"path\").classed(\"annotation-arrow\", true).classed(\"anndrag\", true).classed(\"cursor-move\", true).attr({\n d: \"M3,3H-3V-3H3ZM0,0L\" + (tailX - arrowDragHeadX) + \",\" + (tailY - arrowDragHeadY),\n transform: strTranslate(arrowDragHeadX, arrowDragHeadY)\n }).style(\"stroke-width\", strokewidth + 6 + \"px\").call(Color2.stroke, \"rgba(0,0,0,0)\").call(Color2.fill, \"rgba(0,0,0,0)\");\n var annx0, anny0;\n dragElement.init({\n element: arrowDrag.node(),\n gd,\n prepFn: function() {\n var pos = Drawing.getTranslate(annTextGroupInner);\n annx0 = pos.x;\n anny0 = pos.y;\n if (xa && xa.autorange) {\n modifyBase(xa._name + \".autorange\", true);\n }\n if (ya && ya.autorange) {\n modifyBase(ya._name + \".autorange\", true);\n }\n },\n moveFn: function(dx2, dy2) {\n var annxy0 = applyTransform(annx0, anny0);\n var xcenter = annxy0[0] + dx2;\n var ycenter = annxy0[1] + dy2;\n annTextGroupInner.call(Drawing.setTranslate, xcenter, ycenter);\n modifyItem(\n \"x\",\n shiftPosition(xa, dx2, \"x\", gs, options)\n );\n modifyItem(\n \"y\",\n shiftPosition(ya, dy2, \"y\", gs, options)\n );\n if (options.axref === options.xref) {\n modifyItem(\"ax\", shiftPosition(xa, dx2, \"ax\", gs, options));\n }\n if (options.ayref === options.yref) {\n modifyItem(\"ay\", shiftPosition(ya, dy2, \"ay\", gs, options));\n }\n arrowGroup.attr(\"transform\", strTranslate(dx2, dy2));\n annTextGroup.attr({\n transform: \"rotate(\" + textangle + \",\" + xcenter + \",\" + ycenter + \")\"\n });\n },\n doneFn: function() {\n Registry.call(\"_guiRelayout\", gd, getUpdateObj());\n var notesBox = document.querySelector(\".js-notes-box-panel\");\n if (notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n };\n if (options.showarrow) drawArrow(0, 0);\n if (editTextPosition) {\n var baseTextTransform;\n dragElement.init({\n element: annTextGroupInner.node(),\n gd,\n prepFn: function() {\n baseTextTransform = annTextGroup.attr(\"transform\");\n },\n moveFn: function(dx, dy) {\n var csr = \"pointer\";\n if (options.showarrow) {\n if (options.axref === options.xref) {\n modifyItem(\"ax\", shiftPosition(xa, dx, \"ax\", gs, options));\n } else {\n modifyItem(\"ax\", options.ax + dx);\n }\n if (options.ayref === options.yref) {\n modifyItem(\"ay\", shiftPosition(ya, dy, \"ay\", gs.w, options));\n } else {\n modifyItem(\"ay\", options.ay + dy);\n }\n drawArrow(dx, dy);\n } else if (!subplotId) {\n var xUpdate, yUpdate;\n if (xa) {\n xUpdate = shiftPosition(xa, dx, \"x\", gs, options);\n } else {\n var widthFraction = options._xsize / gs.w;\n var xLeft = options.x + (options._xshift - options.xshift) / gs.w - widthFraction / 2;\n xUpdate = dragElement.align(\n xLeft + dx / gs.w,\n widthFraction,\n 0,\n 1,\n options.xanchor\n );\n }\n if (ya) {\n yUpdate = shiftPosition(ya, dy, \"y\", gs, options);\n } else {\n var heightFraction = options._ysize / gs.h;\n var yBottom = options.y - (options._yshift + options.yshift) / gs.h - heightFraction / 2;\n yUpdate = dragElement.align(\n yBottom - dy / gs.h,\n heightFraction,\n 0,\n 1,\n options.yanchor\n );\n }\n modifyItem(\"x\", xUpdate);\n modifyItem(\"y\", yUpdate);\n if (!xa || !ya) {\n csr = dragElement.getCursor(\n xa ? 0.5 : xUpdate,\n ya ? 0.5 : yUpdate,\n options.xanchor,\n options.yanchor\n );\n }\n } else return;\n annTextGroup.attr({\n transform: strTranslate(dx, dy) + baseTextTransform\n });\n setCursor(annTextGroupInner, csr);\n },\n clickFn: function(_, initialEvent) {\n if (options.captureevents) {\n gd.emit(\"plotly_clickannotation\", makeEventData(initialEvent));\n }\n },\n doneFn: function() {\n setCursor(annTextGroupInner);\n Registry.call(\"_guiRelayout\", gd, getUpdateObj());\n var notesBox = document.querySelector(\".js-notes-box-panel\");\n if (notesBox) notesBox.redraw(notesBox.selectedObj);\n }\n });\n }\n }\n if (edits.annotationText) {\n annText.call(svgTextUtils.makeEditable, { delegate: annTextGroupInner, gd }).call(textLayout).on(\"edit\", function(_text) {\n options.text = _text;\n this.call(textLayout);\n modifyItem(\"text\", _text);\n if (xa && xa.autorange) {\n modifyBase(xa._name + \".autorange\", true);\n }\n if (ya && ya.autorange) {\n modifyBase(ya._name + \".autorange\", true);\n }\n Registry.call(\"_guiRelayout\", gd, getUpdateObj());\n });\n } else annText.call(textLayout);\n }\n }\n });\n\n // src/components/annotations/click.js\n var require_click2 = __commonJS({\n \"src/components/annotations/click.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var arrayEditor = require_plot_template().arrayEditor;\n module.exports = {\n hasClickToShow,\n onClick\n };\n function hasClickToShow(gd, hoverData) {\n var sets = getToggleSets(gd, hoverData);\n return sets.on.length > 0 || sets.explicitOff.length > 0;\n }\n function onClick(gd, hoverData) {\n var toggleSets = getToggleSets(gd, hoverData);\n var onSet = toggleSets.on;\n var offSet = toggleSets.off.concat(toggleSets.explicitOff);\n var update = {};\n var annotationsOut = gd._fullLayout.annotations;\n var i, editHelpers;\n if (!(onSet.length || offSet.length)) return;\n for (i = 0; i < onSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, \"annotations\", annotationsOut[onSet[i]]);\n editHelpers.modifyItem(\"visible\", true);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n for (i = 0; i < offSet.length; i++) {\n editHelpers = arrayEditor(gd.layout, \"annotations\", annotationsOut[offSet[i]]);\n editHelpers.modifyItem(\"visible\", false);\n Lib.extendFlat(update, editHelpers.getUpdateObj());\n }\n return Registry.call(\"update\", gd, {}, update);\n }\n function getToggleSets(gd, hoverData) {\n var annotations = gd._fullLayout.annotations;\n var onSet = [];\n var offSet = [];\n var explicitOffSet = [];\n var hoverLen = (hoverData || []).length;\n var i, j, anni, showMode, pointj, xa, ya, toggleType;\n for (i = 0; i < annotations.length; i++) {\n anni = annotations[i];\n showMode = anni.clicktoshow;\n if (showMode) {\n for (j = 0; j < hoverLen; j++) {\n pointj = hoverData[j];\n xa = pointj.xaxis;\n ya = pointj.yaxis;\n if (xa._id === anni.xref && ya._id === anni.yref && xa.d2r(pointj.x) === clickData2r(anni._xclick, xa) && ya.d2r(pointj.y) === clickData2r(anni._yclick, ya)) {\n if (anni.visible) {\n if (showMode === \"onout\") toggleType = offSet;\n else toggleType = explicitOffSet;\n } else {\n toggleType = onSet;\n }\n toggleType.push(i);\n break;\n }\n }\n if (j === hoverLen) {\n if (anni.visible && showMode === \"onout\") offSet.push(i);\n }\n }\n }\n return { on: onSet, off: offSet, explicitOff: explicitOffSet };\n }\n function clickData2r(d, ax) {\n return ax.type === \"log\" ? ax.l2r(d) : ax.d2r(d);\n }\n }\n });\n\n // src/components/annotations/common_defaults.js\n var require_common_defaults = __commonJS({\n \"src/components/annotations/common_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n module.exports = function handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce) {\n coerce(\"opacity\");\n var bgColor = coerce(\"bgcolor\");\n var borderColor = coerce(\"bordercolor\");\n var borderOpacity = Color2.opacity(borderColor);\n coerce(\"borderpad\");\n var borderWidth = coerce(\"borderwidth\");\n var showArrow = coerce(\"showarrow\");\n coerce(\"text\", showArrow ? \" \" : fullLayout._dfltTitle.annotation);\n coerce(\"textangle\");\n Lib.coerceFont(coerce, \"font\", fullLayout.font);\n coerce(\"width\");\n coerce(\"align\");\n var h = coerce(\"height\");\n if (h) coerce(\"valign\");\n if (showArrow) {\n var arrowside = coerce(\"arrowside\");\n var arrowhead;\n var arrowsize;\n if (arrowside.indexOf(\"end\") !== -1) {\n arrowhead = coerce(\"arrowhead\");\n arrowsize = coerce(\"arrowsize\");\n }\n if (arrowside.indexOf(\"start\") !== -1) {\n coerce(\"startarrowhead\", arrowhead);\n coerce(\"startarrowsize\", arrowsize);\n }\n coerce(\"arrowcolor\", borderOpacity ? annOut.bordercolor : Color2.defaultLine);\n coerce(\"arrowwidth\", (borderOpacity && borderWidth || 1) * 2);\n coerce(\"standoff\");\n coerce(\"startstandoff\");\n }\n var hoverText = coerce(\"hovertext\");\n var globalHoverLabel = fullLayout.hoverlabel || {};\n if (hoverText) {\n var hoverBG = coerce(\n \"hoverlabel.bgcolor\",\n globalHoverLabel.bgcolor || (Color2.opacity(bgColor) ? Color2.rgb(bgColor) : Color2.defaultLine)\n );\n var hoverBorder = coerce(\n \"hoverlabel.bordercolor\",\n globalHoverLabel.bordercolor || Color2.contrast(hoverBG)\n );\n var fontDflt = Lib.extendFlat({}, globalHoverLabel.font);\n if (!fontDflt.color) {\n fontDflt.color = hoverBorder;\n }\n Lib.coerceFont(coerce, \"hoverlabel.font\", fontDflt);\n }\n coerce(\"captureevents\", !!hoverText);\n };\n }\n });\n\n // src/components/annotations/defaults.js\n var require_defaults9 = __commonJS({\n \"src/components/annotations/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var handleAnnotationCommonDefaults = require_common_defaults();\n var attributes = require_attributes11();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: \"annotations\",\n handleItemDefaults: handleAnnotationDefaults\n });\n };\n function handleAnnotationDefaults(annIn, annOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(annIn, annOut, attributes, attr, dflt);\n }\n var visible = coerce(\"visible\");\n var clickToShow = coerce(\"clicktoshow\");\n if (!(visible || clickToShow)) return;\n handleAnnotationCommonDefaults(annIn, annOut, fullLayout, coerce);\n var showArrow = annOut.showarrow;\n var axLetters = [\"x\", \"y\"];\n var arrowPosDflt = [-10, -30];\n var gdMock = { _fullLayout: fullLayout };\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var axRef = Axes.coerceRef(annIn, annOut, gdMock, axLetter, \"\", \"paper\");\n if (axRef !== \"paper\") {\n var ax = Axes.getFromId(gdMock, axRef);\n ax._annIndices.push(annOut._index);\n }\n Axes.coercePosition(annOut, gdMock, coerce, axRef, axLetter, 0.5);\n if (showArrow) {\n var arrowPosAttr = \"a\" + axLetter;\n var aaxRef = Axes.coerceRef(\n annIn,\n annOut,\n gdMock,\n arrowPosAttr,\n \"pixel\",\n [\"pixel\", \"paper\"]\n );\n if (aaxRef !== \"pixel\" && aaxRef !== axRef) {\n aaxRef = annOut[arrowPosAttr] = \"pixel\";\n }\n var aDflt = aaxRef === \"pixel\" ? arrowPosDflt[i] : 0.4;\n Axes.coercePosition(annOut, gdMock, coerce, aaxRef, arrowPosAttr, aDflt);\n }\n coerce(axLetter + \"anchor\");\n coerce(axLetter + \"shift\");\n }\n Lib.noneOrAll(annIn, annOut, [\"x\", \"y\"]);\n if (showArrow) {\n Lib.noneOrAll(annIn, annOut, [\"ax\", \"ay\"]);\n }\n if (clickToShow) {\n var xClick = coerce(\"xclick\");\n var yClick = coerce(\"yclick\");\n annOut._xclick = xClick === void 0 ? annOut.x : Axes.cleanPosition(xClick, gdMock, annOut.xref);\n annOut._yclick = yClick === void 0 ? annOut.y : Axes.cleanPosition(yClick, gdMock, annOut.yref);\n }\n }\n }\n });\n\n // src/components/annotations/calc_autorange.js\n var require_calc_autorange = __commonJS({\n \"src/components/annotations/calc_autorange.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var draw = require_draw4().draw;\n module.exports = function calcAutorange(gd) {\n var fullLayout = gd._fullLayout;\n var annotationList = Lib.filterVisible(fullLayout.annotations);\n if (annotationList.length && gd._fullData.length) {\n return Lib.syncOrAsync([draw, annAutorange], gd);\n }\n };\n function annAutorange(gd) {\n var fullLayout = gd._fullLayout;\n Lib.filterVisible(fullLayout.annotations).forEach(function(ann) {\n var xa = Axes.getFromId(gd, ann.xref);\n var ya = Axes.getFromId(gd, ann.yref);\n var xRefType = Axes.getRefType(ann.xref);\n var yRefType = Axes.getRefType(ann.yref);\n ann._extremes = {};\n if (xRefType === \"range\") calcAxisExpansion(ann, xa);\n if (yRefType === \"range\") calcAxisExpansion(ann, ya);\n });\n }\n function calcAxisExpansion(ann, ax) {\n var axId = ax._id;\n var letter = axId.charAt(0);\n var pos = ann[letter];\n var apos = ann[\"a\" + letter];\n var ref = ann[letter + \"ref\"];\n var aref = ann[\"a\" + letter + \"ref\"];\n var padplus = ann[\"_\" + letter + \"padplus\"];\n var padminus = ann[\"_\" + letter + \"padminus\"];\n var shift = { x: 1, y: -1 }[letter] * ann[letter + \"shift\"];\n var headSize = 3 * ann.arrowsize * ann.arrowwidth || 0;\n var headPlus = headSize + shift;\n var headMinus = headSize - shift;\n var startHeadSize = 3 * ann.startarrowsize * ann.arrowwidth || 0;\n var startHeadPlus = startHeadSize + shift;\n var startHeadMinus = startHeadSize - shift;\n var extremes;\n if (aref === ref) {\n var extremeArrowHead = Axes.findExtremes(ax, [ax.r2c(pos)], {\n ppadplus: headPlus,\n ppadminus: headMinus\n });\n var extremeText = Axes.findExtremes(ax, [ax.r2c(apos)], {\n ppadplus: Math.max(padplus, startHeadPlus),\n ppadminus: Math.max(padminus, startHeadMinus)\n });\n extremes = {\n min: [extremeArrowHead.min[0], extremeText.min[0]],\n max: [extremeArrowHead.max[0], extremeText.max[0]]\n };\n } else {\n startHeadPlus = apos ? startHeadPlus + apos : startHeadPlus;\n startHeadMinus = apos ? startHeadMinus - apos : startHeadMinus;\n extremes = Axes.findExtremes(ax, [ax.r2c(pos)], {\n ppadplus: Math.max(padplus, headPlus, startHeadPlus),\n ppadminus: Math.max(padminus, headMinus, startHeadMinus)\n });\n }\n ann._extremes[axId] = extremes;\n }\n }\n });\n\n // src/components/annotations/convert_coords.js\n var require_convert_coords = __commonJS({\n \"src/components/annotations/convert_coords.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var toLogRange = require_to_log_range();\n module.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n var toLog = newType === \"log\" && ax.type === \"linear\";\n var fromLog = newType === \"linear\" && ax.type === \"log\";\n if (!(toLog || fromLog)) return;\n var annotations = gd._fullLayout.annotations;\n var axLetter = ax._id.charAt(0);\n var ann;\n var attrPrefix;\n function convert(attr) {\n var currentVal = ann[attr];\n var newVal = null;\n if (toLog) newVal = toLogRange(currentVal, ax.range);\n else newVal = Math.pow(10, currentVal);\n if (!isNumeric(newVal)) newVal = null;\n doExtra(attrPrefix + attr, newVal);\n }\n for (var i = 0; i < annotations.length; i++) {\n ann = annotations[i];\n attrPrefix = \"annotations[\" + i + \"].\";\n if (ann[axLetter + \"ref\"] === ax._id) convert(axLetter);\n if (ann[\"a\" + axLetter + \"ref\"] === ax._id) convert(\"a\" + axLetter);\n }\n };\n }\n });\n\n // src/components/annotations/index.js\n var require_annotations = __commonJS({\n \"src/components/annotations/index.js\"(exports, module) {\n \"use strict\";\n var drawModule = require_draw4();\n var clickModule = require_click2();\n module.exports = {\n moduleType: \"component\",\n name: \"annotations\",\n layoutAttributes: require_attributes11(),\n supplyLayoutDefaults: require_defaults9(),\n includeBasePlot: require_include_components()(\"annotations\"),\n calcAutorange: require_calc_autorange(),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne,\n drawRaw: drawModule.drawRaw,\n hasClickToShow: clickModule.hasClickToShow,\n onClick: clickModule.onClick,\n convertCoords: require_convert_coords()\n };\n }\n });\n\n // src/components/annotations3d/attributes.js\n var require_attributes15 = __commonJS({\n \"src/components/annotations3d/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n module.exports = overrideAll(templatedArray(\"annotation\", {\n visible: annAttrs.visible,\n x: {\n valType: \"any\"\n },\n y: {\n valType: \"any\"\n },\n z: {\n valType: \"any\"\n },\n ax: {\n valType: \"number\"\n },\n ay: {\n valType: \"number\"\n },\n xanchor: annAttrs.xanchor,\n xshift: annAttrs.xshift,\n yanchor: annAttrs.yanchor,\n yshift: annAttrs.yshift,\n text: annAttrs.text,\n textangle: annAttrs.textangle,\n font: annAttrs.font,\n width: annAttrs.width,\n height: annAttrs.height,\n opacity: annAttrs.opacity,\n align: annAttrs.align,\n valign: annAttrs.valign,\n bgcolor: annAttrs.bgcolor,\n bordercolor: annAttrs.bordercolor,\n borderpad: annAttrs.borderpad,\n borderwidth: annAttrs.borderwidth,\n showarrow: annAttrs.showarrow,\n arrowcolor: annAttrs.arrowcolor,\n arrowhead: annAttrs.arrowhead,\n startarrowhead: annAttrs.startarrowhead,\n arrowside: annAttrs.arrowside,\n arrowsize: annAttrs.arrowsize,\n startarrowsize: annAttrs.startarrowsize,\n arrowwidth: annAttrs.arrowwidth,\n standoff: annAttrs.standoff,\n startstandoff: annAttrs.startstandoff,\n hovertext: annAttrs.hovertext,\n hoverlabel: annAttrs.hoverlabel,\n captureevents: annAttrs.captureevents\n // maybes later?\n // clicktoshow: annAttrs.clicktoshow,\n // xclick: annAttrs.xclick,\n // yclick: annAttrs.yclick,\n // not needed!\n // axref: 'pixel'\n // ayref: 'pixel'\n // xref: 'x'\n // yref: 'y\n // zref: 'z'\n }), \"calc\", \"from-root\");\n }\n });\n\n // src/components/annotations3d/defaults.js\n var require_defaults10 = __commonJS({\n \"src/components/annotations3d/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var handleAnnotationCommonDefaults = require_common_defaults();\n var attributes = require_attributes15();\n module.exports = function handleDefaults(sceneLayoutIn, sceneLayoutOut, opts) {\n handleArrayContainerDefaults(sceneLayoutIn, sceneLayoutOut, {\n name: \"annotations\",\n handleItemDefaults: handleAnnotationDefaults,\n fullLayout: opts.fullLayout\n });\n };\n function handleAnnotationDefaults(annIn, annOut, sceneLayout, opts) {\n function coerce(attr, dflt) {\n return Lib.coerce(annIn, annOut, attributes, attr, dflt);\n }\n function coercePosition(axLetter) {\n var axName = axLetter + \"axis\";\n var gdMock = { _fullLayout: {} };\n gdMock._fullLayout[axName] = sceneLayout[axName];\n return Axes.coercePosition(annOut, gdMock, coerce, axLetter, axLetter, 0.5);\n }\n var visible = coerce(\"visible\");\n if (!visible) return;\n handleAnnotationCommonDefaults(annIn, annOut, opts.fullLayout, coerce);\n coercePosition(\"x\");\n coercePosition(\"y\");\n coercePosition(\"z\");\n Lib.noneOrAll(annIn, annOut, [\"x\", \"y\", \"z\"]);\n annOut.xref = \"x\";\n annOut.yref = \"y\";\n annOut.zref = \"z\";\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"xshift\");\n coerce(\"yshift\");\n if (annOut.showarrow) {\n annOut.axref = \"pixel\";\n annOut.ayref = \"pixel\";\n coerce(\"ax\", -10);\n coerce(\"ay\", -30);\n Lib.noneOrAll(annIn, annOut, [\"ax\", \"ay\"]);\n }\n }\n }\n });\n\n // src/components/annotations3d/convert.js\n var require_convert = __commonJS({\n \"src/components/annotations3d/convert.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n module.exports = function convert(scene) {\n var fullSceneLayout = scene.fullSceneLayout;\n var anns = fullSceneLayout.annotations;\n for (var i = 0; i < anns.length; i++) {\n mockAnnAxes(anns[i], scene);\n }\n scene.fullLayout._infolayer.selectAll(\".annotation-\" + scene.id).remove();\n };\n function mockAnnAxes(ann, scene) {\n var fullSceneLayout = scene.fullSceneLayout;\n var domain = fullSceneLayout.domain;\n var size = scene.fullLayout._size;\n var base = {\n // this gets fill in on render\n pdata: null,\n // to get setConvert to not execute cleanly\n type: \"linear\",\n // don't try to update them on `editable: true`\n autorange: false,\n // set infinite range so that annotation draw routine\n // does not try to remove 'outside-range' annotations,\n // this case is handled in the render loop\n range: [-Infinity, Infinity]\n };\n ann._xa = {};\n Lib.extendFlat(ann._xa, base);\n Axes.setConvert(ann._xa);\n ann._xa._offset = size.l + domain.x[0] * size.w;\n ann._xa.l2p = function() {\n return 0.5 * (1 + ann._pdata[0] / ann._pdata[3]) * size.w * (domain.x[1] - domain.x[0]);\n };\n ann._ya = {};\n Lib.extendFlat(ann._ya, base);\n Axes.setConvert(ann._ya);\n ann._ya._offset = size.t + (1 - domain.y[1]) * size.h;\n ann._ya.l2p = function() {\n return 0.5 * (1 - ann._pdata[1] / ann._pdata[3]) * size.h * (domain.y[1] - domain.y[0]);\n };\n }\n }\n });\n\n // src/plots/gl3d/project.js\n var require_project = __commonJS({\n \"src/plots/gl3d/project.js\"(exports, module) {\n \"use strict\";\n function xformMatrix(m, v) {\n var out = [0, 0, 0, 0];\n var i, j;\n for (i = 0; i < 4; ++i) {\n for (j = 0; j < 4; ++j) {\n out[j] += m[4 * i + j] * v[i];\n }\n }\n return out;\n }\n function project(camera, v) {\n var p = xformMatrix(\n camera.projection,\n xformMatrix(\n camera.view,\n xformMatrix(camera.model, [v[0], v[1], v[2], 1])\n )\n );\n return p;\n }\n module.exports = project;\n }\n });\n\n // src/components/annotations3d/draw.js\n var require_draw5 = __commonJS({\n \"src/components/annotations3d/draw.js\"(exports, module) {\n \"use strict\";\n var drawRaw = require_draw4().drawRaw;\n var project = require_project();\n var axLetters = [\"x\", \"y\", \"z\"];\n module.exports = function draw(scene) {\n var fullSceneLayout = scene.fullSceneLayout;\n var dataScale = scene.dataScale;\n var anns = fullSceneLayout.annotations;\n for (var i = 0; i < anns.length; i++) {\n var ann = anns[i];\n var annotationIsOffscreen = false;\n for (var j = 0; j < 3; j++) {\n var axLetter = axLetters[j];\n var pos = ann[axLetter];\n var ax = fullSceneLayout[axLetter + \"axis\"];\n var posFraction = ax.r2fraction(pos);\n if (posFraction < 0 || posFraction > 1) {\n annotationIsOffscreen = true;\n break;\n }\n }\n if (annotationIsOffscreen) {\n scene.fullLayout._infolayer.select(\".annotation-\" + scene.id + '[data-index=\"' + i + '\"]').remove();\n } else {\n ann._pdata = project(scene.glplot.cameraParams, [\n fullSceneLayout.xaxis.r2l(ann.x) * dataScale[0],\n fullSceneLayout.yaxis.r2l(ann.y) * dataScale[1],\n fullSceneLayout.zaxis.r2l(ann.z) * dataScale[2]\n ]);\n drawRaw(scene.graphDiv, ann, i, scene.id, ann._xa, ann._ya);\n }\n }\n };\n }\n });\n\n // src/components/annotations3d/index.js\n var require_annotations3d = __commonJS({\n \"src/components/annotations3d/index.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n module.exports = {\n moduleType: \"component\",\n name: \"annotations3d\",\n schema: {\n subplots: {\n scene: { annotations: require_attributes15() }\n }\n },\n layoutAttributes: require_attributes15(),\n handleDefaults: require_defaults10(),\n includeBasePlot: includeGL3D,\n convert: require_convert(),\n draw: require_draw5()\n };\n function includeGL3D(layoutIn, layoutOut) {\n var GL3D = Registry.subplotsRegistry.gl3d;\n if (!GL3D) return;\n var attrRegex = GL3D.attrRegex;\n var keys = Object.keys(layoutIn);\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n if (attrRegex.test(k) && (layoutIn[k].annotations || []).length) {\n Lib.pushUnique(layoutOut._basePlotModules, GL3D);\n Lib.pushUnique(layoutOut._subplots.gl3d, k);\n }\n }\n }\n }\n });\n\n // src/components/shapes/attributes.js\n var require_attributes16 = __commonJS({\n \"src/components/shapes/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var fontAttrs = require_font_attributes();\n var scatterLineAttrs = require_attributes12().line;\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n var basePlotAttributes = require_attributes2();\n var shapeTexttemplateAttrs = require_template_attributes().shapeTexttemplateAttrs;\n var shapeLabelTexttemplateVars = require_label_texttemplate();\n module.exports = templatedArray(\"shape\", {\n visible: extendFlat({}, basePlotAttributes.visible, {\n editType: \"calc+arraydraw\"\n }),\n showlegend: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc+arraydraw\"\n },\n legend: extendFlat({}, basePlotAttributes.legend, {\n editType: \"calc+arraydraw\"\n }),\n legendgroup: extendFlat({}, basePlotAttributes.legendgroup, {\n editType: \"calc+arraydraw\"\n }),\n legendgrouptitle: {\n text: extendFlat({}, basePlotAttributes.legendgrouptitle.text, {\n editType: \"calc+arraydraw\"\n }),\n font: fontAttrs({\n editType: \"calc+arraydraw\"\n }),\n editType: \"calc+arraydraw\"\n },\n legendrank: extendFlat({}, basePlotAttributes.legendrank, {\n editType: \"calc+arraydraw\"\n }),\n legendwidth: extendFlat({}, basePlotAttributes.legendwidth, {\n editType: \"calc+arraydraw\"\n }),\n type: {\n valType: \"enumerated\",\n values: [\"circle\", \"rect\", \"path\", \"line\"],\n editType: \"calc+arraydraw\"\n },\n layer: {\n valType: \"enumerated\",\n values: [\"below\", \"above\", \"between\"],\n dflt: \"above\",\n editType: \"arraydraw\"\n },\n xref: extendFlat({}, annAttrs.xref, {}),\n xsizemode: {\n valType: \"enumerated\",\n values: [\"scaled\", \"pixel\"],\n dflt: \"scaled\",\n editType: \"calc+arraydraw\"\n },\n xanchor: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n x0: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n x1: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n x0shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n x1shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n yref: extendFlat({}, annAttrs.yref, {}),\n ysizemode: {\n valType: \"enumerated\",\n values: [\"scaled\", \"pixel\"],\n dflt: \"scaled\",\n editType: \"calc+arraydraw\"\n },\n yanchor: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n y0: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n y1: {\n valType: \"any\",\n editType: \"calc+arraydraw\"\n },\n y0shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n y1shift: {\n valType: \"number\",\n dflt: 0,\n min: -1,\n max: 1,\n editType: \"calc\"\n },\n path: {\n valType: \"string\",\n editType: \"calc+arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"arraydraw\"\n },\n line: {\n color: extendFlat({}, scatterLineAttrs.color, { editType: \"arraydraw\" }),\n width: extendFlat({}, scatterLineAttrs.width, { editType: \"calc+arraydraw\" }),\n dash: extendFlat({}, dash, { editType: \"arraydraw\" }),\n editType: \"calc+arraydraw\"\n },\n fillcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"arraydraw\"\n },\n fillrule: {\n valType: \"enumerated\",\n values: [\"evenodd\", \"nonzero\"],\n dflt: \"evenodd\",\n editType: \"arraydraw\"\n },\n editable: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc+arraydraw\"\n },\n label: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"arraydraw\"\n },\n texttemplate: shapeTexttemplateAttrs({}, { keys: Object.keys(shapeLabelTexttemplateVars) }),\n font: fontAttrs({\n editType: \"calc+arraydraw\",\n colorEditType: \"arraydraw\"\n }),\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\",\n \"start\",\n \"middle\",\n \"end\"\n ],\n editType: \"arraydraw\"\n },\n textangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"auto\",\n editType: \"calc+arraydraw\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n editType: \"calc+arraydraw\"\n },\n padding: {\n valType: \"number\",\n dflt: 3,\n min: 0,\n editType: \"arraydraw\"\n },\n editType: \"arraydraw\"\n },\n editType: \"arraydraw\"\n });\n }\n });\n\n // src/components/shapes/defaults.js\n var require_defaults11 = __commonJS({\n \"src/components/shapes/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes16();\n var helpers = require_helpers8();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: \"shapes\",\n handleItemDefaults: handleShapeDefaults\n });\n };\n function dfltLabelYanchor(isLine, labelTextPosition) {\n return isLine ? \"bottom\" : labelTextPosition.indexOf(\"top\") !== -1 ? \"top\" : labelTextPosition.indexOf(\"bottom\") !== -1 ? \"bottom\" : \"middle\";\n }\n function handleShapeDefaults(shapeIn, shapeOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(shapeIn, shapeOut, attributes, attr, dflt);\n }\n shapeOut._isShape = true;\n var visible = coerce(\"visible\");\n if (!visible) return;\n var showlegend = coerce(\"showlegend\");\n if (showlegend) {\n coerce(\"legend\");\n coerce(\"legendwidth\");\n coerce(\"legendgroup\");\n coerce(\"legendgrouptitle.text\");\n Lib.coerceFont(coerce, \"legendgrouptitle.font\");\n coerce(\"legendrank\");\n }\n var path = coerce(\"path\");\n var dfltType = path ? \"path\" : \"rect\";\n var shapeType = coerce(\"type\", dfltType);\n var noPath = shapeType !== \"path\";\n if (noPath) delete shapeOut.path;\n coerce(\"editable\");\n coerce(\"layer\");\n coerce(\"opacity\");\n coerce(\"fillcolor\");\n coerce(\"fillrule\");\n var lineWidth = coerce(\"line.width\");\n if (lineWidth) {\n coerce(\"line.color\");\n coerce(\"line.dash\");\n }\n var xSizeMode = coerce(\"xsizemode\");\n var ySizeMode = coerce(\"ysizemode\");\n var axLetters = [\"x\", \"y\"];\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var attrAnchor = axLetter + \"anchor\";\n var sizeMode = axLetter === \"x\" ? xSizeMode : ySizeMode;\n var gdMock = { _fullLayout: fullLayout };\n var ax;\n var pos2r;\n var r2pos;\n var axRef = Axes.coerceRef(\n shapeIn,\n shapeOut,\n gdMock,\n axLetter,\n void 0,\n \"paper\"\n );\n var axRefType = Axes.getRefType(axRef);\n if (axRefType === \"range\") {\n ax = Axes.getFromId(gdMock, axRef);\n ax._shapeIndices.push(shapeOut._index);\n r2pos = helpers.rangeToShapePosition(ax);\n pos2r = helpers.shapePositionToRange(ax);\n if (ax.type === \"category\" || ax.type === \"multicategory\") {\n coerce(axLetter + \"0shift\");\n coerce(axLetter + \"1shift\");\n }\n } else {\n pos2r = r2pos = Lib.identity;\n }\n if (noPath) {\n var dflt0 = 0.25;\n var dflt1 = 0.75;\n var attr0 = axLetter + \"0\";\n var attr1 = axLetter + \"1\";\n var in0 = shapeIn[attr0];\n var in1 = shapeIn[attr1];\n shapeIn[attr0] = pos2r(shapeIn[attr0], true);\n shapeIn[attr1] = pos2r(shapeIn[attr1], true);\n if (sizeMode === \"pixel\") {\n coerce(attr0, 0);\n coerce(attr1, 10);\n } else {\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr0, dflt0);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attr1, dflt1);\n }\n shapeOut[attr0] = r2pos(shapeOut[attr0]);\n shapeOut[attr1] = r2pos(shapeOut[attr1]);\n shapeIn[attr0] = in0;\n shapeIn[attr1] = in1;\n }\n if (sizeMode === \"pixel\") {\n var inAnchor = shapeIn[attrAnchor];\n shapeIn[attrAnchor] = pos2r(shapeIn[attrAnchor], true);\n Axes.coercePosition(shapeOut, gdMock, coerce, axRef, attrAnchor, 0.25);\n shapeOut[attrAnchor] = r2pos(shapeOut[attrAnchor]);\n shapeIn[attrAnchor] = inAnchor;\n }\n }\n if (noPath) {\n Lib.noneOrAll(shapeIn, shapeOut, [\"x0\", \"x1\", \"y0\", \"y1\"]);\n }\n var isLine = shapeType === \"line\";\n var labelTextTemplate, labelText;\n if (noPath) {\n labelTextTemplate = coerce(\"label.texttemplate\");\n }\n if (!labelTextTemplate) {\n labelText = coerce(\"label.text\");\n }\n if (labelText || labelTextTemplate) {\n coerce(\"label.textangle\");\n var labelTextPosition = coerce(\"label.textposition\", isLine ? \"middle\" : \"middle center\");\n coerce(\"label.xanchor\");\n coerce(\"label.yanchor\", dfltLabelYanchor(isLine, labelTextPosition));\n coerce(\"label.padding\");\n Lib.coerceFont(coerce, \"label.font\", fullLayout.font);\n }\n }\n }\n });\n\n // src/components/shapes/draw_newshape/defaults.js\n var require_defaults12 = __commonJS({\n \"src/components/shapes/draw_newshape/defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var Lib = require_lib();\n function dfltLabelYanchor(isLine, labelTextPosition) {\n return isLine ? \"bottom\" : labelTextPosition.indexOf(\"top\") !== -1 ? \"top\" : labelTextPosition.indexOf(\"bottom\") !== -1 ? \"bottom\" : \"middle\";\n }\n module.exports = function supplyDrawNewShapeDefaults(layoutIn, layoutOut, coerce) {\n coerce(\"newshape.visible\");\n coerce(\"newshape.name\");\n coerce(\"newshape.showlegend\");\n coerce(\"newshape.legend\");\n coerce(\"newshape.legendwidth\");\n coerce(\"newshape.legendgroup\");\n coerce(\"newshape.legendgrouptitle.text\");\n Lib.coerceFont(coerce, \"newshape.legendgrouptitle.font\");\n coerce(\"newshape.legendrank\");\n coerce(\"newshape.drawdirection\");\n coerce(\"newshape.layer\");\n coerce(\"newshape.fillcolor\");\n coerce(\"newshape.fillrule\");\n coerce(\"newshape.opacity\");\n var newshapeLineWidth = coerce(\"newshape.line.width\");\n if (newshapeLineWidth) {\n var bgcolor = (layoutIn || {}).plot_bgcolor || \"#FFF\";\n coerce(\"newshape.line.color\", Color2.contrast(bgcolor));\n coerce(\"newshape.line.dash\");\n }\n var isLine = layoutIn.dragmode === \"drawline\";\n var labelText = coerce(\"newshape.label.text\");\n var labelTextTemplate = coerce(\"newshape.label.texttemplate\");\n if (labelText || labelTextTemplate) {\n coerce(\"newshape.label.textangle\");\n var labelTextPosition = coerce(\"newshape.label.textposition\", isLine ? \"middle\" : \"middle center\");\n coerce(\"newshape.label.xanchor\");\n coerce(\"newshape.label.yanchor\", dfltLabelYanchor(isLine, labelTextPosition));\n coerce(\"newshape.label.padding\");\n Lib.coerceFont(coerce, \"newshape.label.font\", layoutOut.font);\n }\n coerce(\"activeshape.fillcolor\");\n coerce(\"activeshape.opacity\");\n };\n }\n });\n\n // src/components/shapes/calc_autorange.js\n var require_calc_autorange2 = __commonJS({\n \"src/components/shapes/calc_autorange.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var constants = require_constants5();\n var helpers = require_helpers8();\n module.exports = function calcAutorange(gd) {\n var fullLayout = gd._fullLayout;\n var shapeList = Lib.filterVisible(fullLayout.shapes);\n if (!shapeList.length || !gd._fullData.length) return;\n for (var i = 0; i < shapeList.length; i++) {\n var shape = shapeList[i];\n shape._extremes = {};\n var ax;\n var bounds;\n var xRefType = Axes.getRefType(shape.xref);\n var yRefType = Axes.getRefType(shape.yref);\n if (shape.xref !== \"paper\" && xRefType !== \"domain\") {\n ax = Axes.getFromId(gd, shape.xref);\n bounds = shapeBounds(ax, shape, constants.paramIsX);\n if (bounds) {\n shape._extremes[ax._id] = Axes.findExtremes(ax, bounds, calcXPaddingOptions(shape));\n }\n }\n if (shape.yref !== \"paper\" && yRefType !== \"domain\") {\n ax = Axes.getFromId(gd, shape.yref);\n bounds = shapeBounds(ax, shape, constants.paramIsY);\n if (bounds) {\n shape._extremes[ax._id] = Axes.findExtremes(ax, bounds, calcYPaddingOptions(shape));\n }\n }\n }\n };\n function calcXPaddingOptions(shape) {\n return calcPaddingOptions(shape.line.width, shape.xsizemode, shape.x0, shape.x1, shape.path, false);\n }\n function calcYPaddingOptions(shape) {\n return calcPaddingOptions(shape.line.width, shape.ysizemode, shape.y0, shape.y1, shape.path, true);\n }\n function calcPaddingOptions(lineWidth, sizeMode, v0, v1, path, isYAxis) {\n var ppad = lineWidth / 2;\n var axisDirectionReverted = isYAxis;\n if (sizeMode === \"pixel\") {\n var coords = path ? helpers.extractPathCoords(path, isYAxis ? constants.paramIsY : constants.paramIsX) : [v0, v1];\n var maxValue = Lib.aggNums(Math.max, null, coords);\n var minValue = Lib.aggNums(Math.min, null, coords);\n var beforePad = minValue < 0 ? Math.abs(minValue) + ppad : ppad;\n var afterPad = maxValue > 0 ? maxValue + ppad : ppad;\n return {\n ppad,\n ppadplus: axisDirectionReverted ? beforePad : afterPad,\n ppadminus: axisDirectionReverted ? afterPad : beforePad\n };\n } else {\n return { ppad };\n }\n }\n function shapeBounds(ax, shape, paramsToUse) {\n var dim = ax._id.charAt(0) === \"x\" ? \"x\" : \"y\";\n var isCategory = ax.type === \"category\" || ax.type === \"multicategory\";\n var v0;\n var v1;\n var shiftStart = 0;\n var shiftEnd = 0;\n var convertVal = isCategory ? ax.r2c : ax.d2c;\n var isSizeModeScale = shape[dim + \"sizemode\"] === \"scaled\";\n if (isSizeModeScale) {\n v0 = shape[dim + \"0\"];\n v1 = shape[dim + \"1\"];\n if (isCategory) {\n shiftStart = shape[dim + \"0shift\"];\n shiftEnd = shape[dim + \"1shift\"];\n }\n } else {\n v0 = shape[dim + \"anchor\"];\n v1 = shape[dim + \"anchor\"];\n }\n if (v0 !== void 0) return [convertVal(v0) + shiftStart, convertVal(v1) + shiftEnd];\n if (!shape.path) return;\n var min = Infinity;\n var max = -Infinity;\n var segments = shape.path.match(constants.segmentRE);\n var i;\n var segment;\n var drawnParam;\n var params;\n var val;\n if (ax.type === \"date\") convertVal = helpers.decodeDate(convertVal);\n for (i = 0; i < segments.length; i++) {\n segment = segments[i];\n drawnParam = paramsToUse[segment.charAt(0)].drawn;\n if (drawnParam === void 0) continue;\n params = segments[i].substr(1).match(constants.paramRE);\n if (!params || params.length < drawnParam) continue;\n val = convertVal(params[drawnParam]);\n if (val < min) min = val;\n if (val > max) max = val;\n }\n if (max >= min) return [min, max];\n }\n }\n });\n\n // src/components/shapes/index.js\n var require_shapes = __commonJS({\n \"src/components/shapes/index.js\"(exports, module) {\n \"use strict\";\n var drawModule = require_draw2();\n module.exports = {\n moduleType: \"component\",\n name: \"shapes\",\n layoutAttributes: require_attributes16(),\n supplyLayoutDefaults: require_defaults11(),\n supplyDrawNewShapeDefaults: require_defaults12(),\n includeBasePlot: require_include_components()(\"shapes\"),\n calcAutorange: require_calc_autorange2(),\n draw: drawModule.draw,\n drawOne: drawModule.drawOne\n };\n }\n });\n\n // src/components/images/attributes.js\n var require_attributes17 = __commonJS({\n \"src/components/images/attributes.js\"(exports, module) {\n \"use strict\";\n var cartesianConstants = require_constants2();\n var templatedArray = require_plot_template().templatedArray;\n var axisPlaceableObjs = require_axis_placeable_objects();\n module.exports = templatedArray(\"image\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"arraydraw\"\n },\n source: {\n valType: \"string\",\n editType: \"arraydraw\"\n },\n layer: {\n valType: \"enumerated\",\n values: [\"below\", \"above\"],\n dflt: \"above\",\n editType: \"arraydraw\"\n },\n sizex: {\n valType: \"number\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n sizey: {\n valType: \"number\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n sizing: {\n valType: \"enumerated\",\n values: [\"fill\", \"contain\", \"stretch\"],\n dflt: \"contain\",\n editType: \"arraydraw\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"arraydraw\"\n },\n x: {\n valType: \"any\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n y: {\n valType: \"any\",\n dflt: 0,\n editType: \"arraydraw\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n dflt: \"left\",\n editType: \"arraydraw\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"top\", \"middle\", \"bottom\"],\n dflt: \"top\",\n editType: \"arraydraw\"\n },\n xref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.x.toString()\n ],\n dflt: \"paper\",\n editType: \"arraydraw\"\n },\n yref: {\n valType: \"enumerated\",\n values: [\n \"paper\",\n cartesianConstants.idRegex.y.toString()\n ],\n dflt: \"paper\",\n editType: \"arraydraw\"\n },\n editType: \"arraydraw\"\n });\n }\n });\n\n // src/components/images/defaults.js\n var require_defaults13 = __commonJS({\n \"src/components/images/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes17();\n var name2 = \"images\";\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n var opts = {\n name: name2,\n handleItemDefaults: imageDefaults\n };\n handleArrayContainerDefaults(layoutIn, layoutOut, opts);\n };\n function imageDefaults(imageIn, imageOut, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(imageIn, imageOut, attributes, attr, dflt);\n }\n var source = coerce(\"source\");\n var visible = coerce(\"visible\", !!source);\n if (!visible) return imageOut;\n coerce(\"layer\");\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"sizex\");\n coerce(\"sizey\");\n coerce(\"sizing\");\n coerce(\"opacity\");\n var gdMock = { _fullLayout: fullLayout };\n var axLetters = [\"x\", \"y\"];\n for (var i = 0; i < 2; i++) {\n var axLetter = axLetters[i];\n var axRef = Axes.coerceRef(imageIn, imageOut, gdMock, axLetter, \"paper\", void 0);\n if (axRef !== \"paper\") {\n var ax = Axes.getFromId(gdMock, axRef);\n ax._imgIndices.push(imageOut._index);\n }\n Axes.coercePosition(imageOut, gdMock, coerce, axRef, axLetter, 0);\n }\n return imageOut;\n }\n }\n });\n\n // src/components/images/draw.js\n var require_draw6 = __commonJS({\n \"src/components/images/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Axes = require_axes();\n var axisIds = require_axis_ids();\n var xmlnsNamespaces = require_xmlns_namespaces();\n module.exports = function draw(gd) {\n var fullLayout = gd._fullLayout;\n var imageDataAbove = [];\n var imageDataSubplot = {};\n var imageDataBelow = [];\n var subplot;\n var i;\n for (i = 0; i < fullLayout.images.length; i++) {\n var img = fullLayout.images[i];\n if (img.visible) {\n if (img.layer === \"below\" && img.xref !== \"paper\" && img.yref !== \"paper\") {\n subplot = axisIds.ref2id(img.xref) + axisIds.ref2id(img.yref);\n var plotinfo = fullLayout._plots[subplot];\n if (!plotinfo) {\n imageDataBelow.push(img);\n continue;\n }\n if (plotinfo.mainplot) {\n subplot = plotinfo.mainplot.id;\n }\n if (!imageDataSubplot[subplot]) {\n imageDataSubplot[subplot] = [];\n }\n imageDataSubplot[subplot].push(img);\n } else if (img.layer === \"above\") {\n imageDataAbove.push(img);\n } else {\n imageDataBelow.push(img);\n }\n }\n }\n var anchors = {\n x: {\n left: { sizing: \"xMin\", offset: 0 },\n center: { sizing: \"xMid\", offset: -1 / 2 },\n right: { sizing: \"xMax\", offset: -1 }\n },\n y: {\n top: { sizing: \"YMin\", offset: 0 },\n middle: { sizing: \"YMid\", offset: -1 / 2 },\n bottom: { sizing: \"YMax\", offset: -1 }\n }\n };\n function setImage(d) {\n var thisImage = d3.select(this);\n if (this._imgSrc === d.source) {\n return;\n }\n thisImage.attr(\"xmlns\", xmlnsNamespaces.svg);\n if (!gd._context.staticPlot || d.source && d.source.slice(0, 5) === \"data:\") {\n thisImage.attr(\"xlink:href\", d.source);\n this._imgSrc = d.source;\n } else {\n var imagePromise = new Promise(function(resolve) {\n var img2 = new Image();\n this.img = img2;\n img2.setAttribute(\"crossOrigin\", \"anonymous\");\n img2.onerror = errorHandler;\n img2.onload = function() {\n var canvas = document.createElement(\"canvas\");\n canvas.width = this.width;\n canvas.height = this.height;\n var ctx = canvas.getContext(\"2d\", { willReadFrequently: true });\n ctx.drawImage(this, 0, 0);\n var dataURL = canvas.toDataURL(\"image/png\");\n thisImage.attr(\"xlink:href\", dataURL);\n resolve();\n };\n thisImage.on(\"error\", errorHandler);\n img2.src = d.source;\n this._imgSrc = d.source;\n function errorHandler() {\n thisImage.remove();\n resolve();\n }\n }.bind(this));\n gd._promises.push(imagePromise);\n }\n }\n function applyAttributes(d) {\n var thisImage = d3.select(this);\n var xa = Axes.getFromId(gd, d.xref);\n var ya = Axes.getFromId(gd, d.yref);\n var xIsDomain = Axes.getRefType(d.xref) === \"domain\";\n var yIsDomain = Axes.getRefType(d.yref) === \"domain\";\n var size = fullLayout._size;\n var width, height;\n if (xa !== void 0) {\n width = typeof d.xref === \"string\" && xIsDomain ? xa._length * d.sizex : Math.abs(xa.l2p(d.sizex) - xa.l2p(0));\n } else {\n width = d.sizex * size.w;\n }\n if (ya !== void 0) {\n height = typeof d.yref === \"string\" && yIsDomain ? ya._length * d.sizey : Math.abs(ya.l2p(d.sizey) - ya.l2p(0));\n } else {\n height = d.sizey * size.h;\n }\n var xOffset = width * anchors.x[d.xanchor].offset;\n var yOffset = height * anchors.y[d.yanchor].offset;\n var sizing = anchors.x[d.xanchor].sizing + anchors.y[d.yanchor].sizing;\n var xPos, yPos;\n if (xa !== void 0) {\n xPos = typeof d.xref === \"string\" && xIsDomain ? xa._length * d.x + xa._offset : xa.r2p(d.x) + xa._offset;\n } else {\n xPos = d.x * size.w + size.l;\n }\n xPos += xOffset;\n if (ya !== void 0) {\n yPos = typeof d.yref === \"string\" && yIsDomain ? (\n // consistent with \"paper\" yref value, where positive values\n // move up the page\n ya._length * (1 - d.y) + ya._offset\n ) : ya.r2p(d.y) + ya._offset;\n } else {\n yPos = size.h - d.y * size.h + size.t;\n }\n yPos += yOffset;\n switch (d.sizing) {\n case \"fill\":\n sizing += \" slice\";\n break;\n case \"stretch\":\n sizing = \"none\";\n break;\n }\n thisImage.attr({\n x: xPos,\n y: yPos,\n width,\n height,\n preserveAspectRatio: sizing,\n opacity: d.opacity\n });\n var xId = xa && Axes.getRefType(d.xref) !== \"domain\" ? xa._id : \"\";\n var yId = ya && Axes.getRefType(d.yref) !== \"domain\" ? ya._id : \"\";\n var clipAxes = xId + yId;\n Drawing.setClipUrl(\n thisImage,\n clipAxes ? \"clip\" + fullLayout._uid + clipAxes : null,\n gd\n );\n }\n function imgDataFunc(d) {\n return [d.xref, d.x, d.sizex, d.yref, d.y, d.sizey].join(\"_\");\n }\n function imgSort(a, b) {\n return a._index - b._index;\n }\n var imagesBelow = fullLayout._imageLowerLayer.selectAll(\"image\").data(imageDataBelow, imgDataFunc);\n var imagesAbove = fullLayout._imageUpperLayer.selectAll(\"image\").data(imageDataAbove, imgDataFunc);\n imagesBelow.enter().append(\"image\");\n imagesAbove.enter().append(\"image\");\n imagesBelow.exit().remove();\n imagesAbove.exit().remove();\n imagesBelow.each(function(d) {\n setImage.bind(this)(d);\n applyAttributes.bind(this)(d);\n });\n imagesAbove.each(function(d) {\n setImage.bind(this)(d);\n applyAttributes.bind(this)(d);\n });\n imagesBelow.sort(imgSort);\n imagesAbove.sort(imgSort);\n var allSubplots = Object.keys(fullLayout._plots);\n for (i = 0; i < allSubplots.length; i++) {\n subplot = allSubplots[i];\n var subplotObj = fullLayout._plots[subplot];\n if (!subplotObj.imagelayer) continue;\n var imagesOnSubplot = subplotObj.imagelayer.selectAll(\"image\").data(imageDataSubplot[subplot] || [], imgDataFunc);\n imagesOnSubplot.enter().append(\"image\");\n imagesOnSubplot.exit().remove();\n imagesOnSubplot.each(function(d) {\n setImage.bind(this)(d);\n applyAttributes.bind(this)(d);\n });\n imagesOnSubplot.sort(imgSort);\n }\n };\n }\n });\n\n // src/components/images/convert_coords.js\n var require_convert_coords2 = __commonJS({\n \"src/components/images/convert_coords.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var toLogRange = require_to_log_range();\n module.exports = function convertCoords(gd, ax, newType, doExtra) {\n ax = ax || {};\n var toLog = newType === \"log\" && ax.type === \"linear\";\n var fromLog = newType === \"linear\" && ax.type === \"log\";\n if (!(toLog || fromLog)) return;\n var images = gd._fullLayout.images;\n var axLetter = ax._id.charAt(0);\n var image;\n var attrPrefix;\n for (var i = 0; i < images.length; i++) {\n image = images[i];\n attrPrefix = \"images[\" + i + \"].\";\n if (image[axLetter + \"ref\"] === ax._id) {\n var currentPos = image[axLetter];\n var currentSize = image[\"size\" + axLetter];\n var newPos = null;\n var newSize = null;\n if (toLog) {\n newPos = toLogRange(currentPos, ax.range);\n var dx = currentSize / Math.pow(10, newPos) / 2;\n newSize = 2 * Math.log(dx + Math.sqrt(1 + dx * dx)) / Math.LN10;\n } else {\n newPos = Math.pow(10, currentPos);\n newSize = newPos * (Math.pow(10, currentSize / 2) - Math.pow(10, -currentSize / 2));\n }\n if (!isNumeric(newPos)) {\n newPos = null;\n newSize = null;\n } else if (!isNumeric(newSize)) newSize = null;\n doExtra(attrPrefix + axLetter, newPos);\n doExtra(attrPrefix + \"size\" + axLetter, newSize);\n }\n }\n };\n }\n });\n\n // src/components/images/index.js\n var require_images = __commonJS({\n \"src/components/images/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"images\",\n layoutAttributes: require_attributes17(),\n supplyLayoutDefaults: require_defaults13(),\n includeBasePlot: require_include_components()(\"images\"),\n draw: require_draw6(),\n convertCoords: require_convert_coords2()\n };\n }\n });\n\n // src/components/updatemenus/constants.js\n var require_constants9 = __commonJS({\n \"src/components/updatemenus/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // layout attribute name\n name: \"updatemenus\",\n // class names\n containerClassName: \"updatemenu-container\",\n headerGroupClassName: \"updatemenu-header-group\",\n headerClassName: \"updatemenu-header\",\n headerArrowClassName: \"updatemenu-header-arrow\",\n dropdownButtonGroupClassName: \"updatemenu-dropdown-button-group\",\n dropdownButtonClassName: \"updatemenu-dropdown-button\",\n buttonClassName: \"updatemenu-button\",\n itemRectClassName: \"updatemenu-item-rect\",\n itemTextClassName: \"updatemenu-item-text\",\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: \"updatemenu-active-index\",\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: \"updatemenu-\",\n // options when 'active: -1'\n blankHeaderOpts: { label: \" \" },\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n // padding around item text\n textPadX: 24,\n arrowPadX: 16,\n // item rect radii\n rx: 2,\n ry: 2,\n // item text x offset off left edge\n textOffsetX: 12,\n // item text y offset (w.r.t. middle)\n textOffsetY: 3,\n // arrow offset off right edge\n arrowOffsetX: 4,\n // gap between header and buttons\n gapButtonHeader: 5,\n // gap between between buttons\n gapButton: 2,\n // color given to active buttons\n activeColor: \"#F4FAFF\",\n // color given to hovered buttons\n hoverColor: \"#F4FAFF\",\n // symbol for menu open arrow\n arrowSymbol: {\n left: \"\\u25C4\",\n right: \"\\u25BA\",\n up: \"\\u25B2\",\n down: \"\\u25BC\"\n }\n };\n }\n });\n\n // src/components/updatemenus/attributes.js\n var require_attributes18 = __commonJS({\n \"src/components/updatemenus/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var padAttrs = require_pad_attributes();\n var templatedArray = require_plot_template().templatedArray;\n var buttonsAttrs = templatedArray(\"button\", {\n visible: {\n valType: \"boolean\"\n },\n method: {\n valType: \"enumerated\",\n values: [\"restyle\", \"relayout\", \"animate\", \"update\", \"skip\"],\n dflt: \"restyle\"\n },\n args: {\n valType: \"info_array\",\n freeLength: true,\n items: [\n { valType: \"any\" },\n { valType: \"any\" },\n { valType: \"any\" }\n ]\n },\n args2: {\n valType: \"info_array\",\n freeLength: true,\n items: [\n { valType: \"any\" },\n { valType: \"any\" },\n { valType: \"any\" }\n ]\n },\n label: {\n valType: \"string\",\n dflt: \"\"\n },\n execute: {\n valType: \"boolean\",\n dflt: true\n }\n });\n module.exports = overrideAll(templatedArray(\"updatemenu\", {\n _arrayAttrRegexps: [/^updatemenus\\[(0|[1-9][0-9]+)\\]\\.buttons/],\n visible: {\n valType: \"boolean\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"dropdown\", \"buttons\"],\n dflt: \"dropdown\"\n },\n direction: {\n valType: \"enumerated\",\n values: [\"left\", \"right\", \"up\", \"down\"],\n dflt: \"down\"\n },\n active: {\n valType: \"integer\",\n min: -1,\n dflt: 0\n },\n showactive: {\n valType: \"boolean\",\n dflt: true\n },\n buttons: buttonsAttrs,\n x: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: -0.05\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"right\"\n },\n y: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: 1\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"top\"\n },\n pad: extendFlat(padAttrs({ editType: \"arraydraw\" }), {}),\n font: fontAttrs({}),\n bgcolor: {\n valType: \"color\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.borderLine\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"arraydraw\"\n }\n }), \"arraydraw\", \"from-root\");\n }\n });\n\n // src/components/updatemenus/defaults.js\n var require_defaults14 = __commonJS({\n \"src/components/updatemenus/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes18();\n var constants = require_constants9();\n var name2 = constants.name;\n var buttonAttrs = attributes.buttons;\n module.exports = function updateMenusDefaults(layoutIn, layoutOut) {\n var opts = {\n name: name2,\n handleItemDefaults: menuDefaults\n };\n handleArrayContainerDefaults(layoutIn, layoutOut, opts);\n };\n function menuDefaults(menuIn, menuOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(menuIn, menuOut, attributes, attr, dflt);\n }\n var buttons = handleArrayContainerDefaults(menuIn, menuOut, {\n name: \"buttons\",\n handleItemDefaults: buttonDefaults\n });\n var visible = coerce(\"visible\", buttons.length > 0);\n if (!visible) return;\n coerce(\"active\");\n coerce(\"direction\");\n coerce(\"type\");\n coerce(\"showactive\");\n coerce(\"x\");\n coerce(\"y\");\n Lib.noneOrAll(menuIn, menuOut, [\"x\", \"y\"]);\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"pad.t\");\n coerce(\"pad.r\");\n coerce(\"pad.b\");\n coerce(\"pad.l\");\n Lib.coerceFont(coerce, \"font\", layoutOut.font);\n coerce(\"bgcolor\", layoutOut.paper_bgcolor);\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n }\n function buttonDefaults(buttonIn, buttonOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(buttonIn, buttonOut, buttonAttrs, attr, dflt);\n }\n var visible = coerce(\n \"visible\",\n buttonIn.method === \"skip\" || Array.isArray(buttonIn.args)\n );\n if (visible) {\n coerce(\"method\");\n coerce(\"args\");\n coerce(\"args2\");\n coerce(\"label\");\n coerce(\"execute\");\n }\n }\n }\n });\n\n // src/components/updatemenus/scrollbox.js\n var require_scrollbox = __commonJS({\n \"src/components/updatemenus/scrollbox.js\"(exports, module) {\n \"use strict\";\n module.exports = ScrollBox;\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n function ScrollBox(gd, container, id) {\n this.gd = gd;\n this.container = container;\n this.id = id;\n this.position = null;\n this.translateX = null;\n this.translateY = null;\n this.hbar = null;\n this.vbar = null;\n this.bg = this.container.selectAll(\"rect.scrollbox-bg\").data([0]);\n this.bg.exit().on(\".drag\", null).on(\"wheel\", null).remove();\n this.bg.enter().append(\"rect\").classed(\"scrollbox-bg\", true).style(\"pointer-events\", \"all\").attr({\n opacity: 0,\n x: 0,\n y: 0,\n width: 0,\n height: 0\n });\n }\n ScrollBox.barWidth = 2;\n ScrollBox.barLength = 20;\n ScrollBox.barRadius = 2;\n ScrollBox.barPad = 1;\n ScrollBox.barColor = \"#808BA4\";\n ScrollBox.prototype.enable = function enable(position, translateX, translateY) {\n var fullLayout = this.gd._fullLayout;\n var fullWidth = fullLayout.width;\n var fullHeight = fullLayout.height;\n this.position = position;\n var l = this.position.l;\n var w = this.position.w;\n var t = this.position.t;\n var h = this.position.h;\n var direction = this.position.direction;\n var isDown = direction === \"down\";\n var isLeft = direction === \"left\";\n var isRight = direction === \"right\";\n var isUp = direction === \"up\";\n var boxW = w;\n var boxH = h;\n var boxL, boxR;\n var boxT, boxB;\n if (!isDown && !isLeft && !isRight && !isUp) {\n this.position.direction = \"down\";\n isDown = true;\n }\n var isVertical = isDown || isUp;\n if (isVertical) {\n boxL = l;\n boxR = boxL + boxW;\n if (isDown) {\n boxT = t;\n boxB = Math.min(boxT + boxH, fullHeight);\n boxH = boxB - boxT;\n } else {\n boxB = t + boxH;\n boxT = Math.max(boxB - boxH, 0);\n boxH = boxB - boxT;\n }\n } else {\n boxT = t;\n boxB = boxT + boxH;\n if (isLeft) {\n boxR = l + boxW;\n boxL = Math.max(boxR - boxW, 0);\n boxW = boxR - boxL;\n } else {\n boxL = l;\n boxR = Math.min(boxL + boxW, fullWidth);\n boxW = boxR - boxL;\n }\n }\n this._box = {\n l: boxL,\n t: boxT,\n w: boxW,\n h: boxH\n };\n var needsHorizontalScrollBar = w > boxW;\n var hbarW = ScrollBox.barLength + 2 * ScrollBox.barPad;\n var hbarH = ScrollBox.barWidth + 2 * ScrollBox.barPad;\n var hbarL = l;\n var hbarT = t + h;\n if (hbarT + hbarH > fullHeight) hbarT = fullHeight - hbarH;\n var hbar = this.container.selectAll(\"rect.scrollbar-horizontal\").data(\n needsHorizontalScrollBar ? [0] : []\n );\n hbar.exit().on(\".drag\", null).remove();\n hbar.enter().append(\"rect\").classed(\"scrollbar-horizontal\", true).call(Color2.fill, ScrollBox.barColor);\n if (needsHorizontalScrollBar) {\n this.hbar = hbar.attr({\n rx: ScrollBox.barRadius,\n ry: ScrollBox.barRadius,\n x: hbarL,\n y: hbarT,\n width: hbarW,\n height: hbarH\n });\n this._hbarXMin = hbarL + hbarW / 2;\n this._hbarTranslateMax = boxW - hbarW;\n } else {\n delete this.hbar;\n delete this._hbarXMin;\n delete this._hbarTranslateMax;\n }\n var needsVerticalScrollBar = h > boxH;\n var vbarW = ScrollBox.barWidth + 2 * ScrollBox.barPad;\n var vbarH = ScrollBox.barLength + 2 * ScrollBox.barPad;\n var vbarL = l + w;\n var vbarT = t;\n if (vbarL + vbarW > fullWidth) vbarL = fullWidth - vbarW;\n var vbar = this.container.selectAll(\"rect.scrollbar-vertical\").data(\n needsVerticalScrollBar ? [0] : []\n );\n vbar.exit().on(\".drag\", null).remove();\n vbar.enter().append(\"rect\").classed(\"scrollbar-vertical\", true).call(Color2.fill, ScrollBox.barColor);\n if (needsVerticalScrollBar) {\n this.vbar = vbar.attr({\n rx: ScrollBox.barRadius,\n ry: ScrollBox.barRadius,\n x: vbarL,\n y: vbarT,\n width: vbarW,\n height: vbarH\n });\n this._vbarYMin = vbarT + vbarH / 2;\n this._vbarTranslateMax = boxH - vbarH;\n } else {\n delete this.vbar;\n delete this._vbarYMin;\n delete this._vbarTranslateMax;\n }\n var clipId = this.id;\n var clipL = boxL - 0.5;\n var clipR = needsVerticalScrollBar ? boxR + vbarW + 0.5 : boxR + 0.5;\n var clipT = boxT - 0.5;\n var clipB = needsHorizontalScrollBar ? boxB + hbarH + 0.5 : boxB + 0.5;\n var clipPath = fullLayout._topdefs.selectAll(\"#\" + clipId).data(needsHorizontalScrollBar || needsVerticalScrollBar ? [0] : []);\n clipPath.exit().remove();\n clipPath.enter().append(\"clipPath\").attr(\"id\", clipId).append(\"rect\");\n if (needsHorizontalScrollBar || needsVerticalScrollBar) {\n this._clipRect = clipPath.select(\"rect\").attr({\n x: Math.floor(clipL),\n y: Math.floor(clipT),\n width: Math.ceil(clipR) - Math.floor(clipL),\n height: Math.ceil(clipB) - Math.floor(clipT)\n });\n this.container.call(Drawing.setClipUrl, clipId, this.gd);\n this.bg.attr({\n x: l,\n y: t,\n width: w,\n height: h\n });\n } else {\n this.bg.attr({\n width: 0,\n height: 0\n });\n this.container.on(\"wheel\", null).on(\".drag\", null).call(Drawing.setClipUrl, null);\n delete this._clipRect;\n }\n if (needsHorizontalScrollBar || needsVerticalScrollBar) {\n var onBoxDrag = d3.behavior.drag().on(\"dragstart\", function() {\n d3.event.sourceEvent.preventDefault();\n }).on(\"drag\", this._onBoxDrag.bind(this));\n this.container.on(\"wheel\", null).on(\"wheel\", this._onBoxWheel.bind(this)).on(\".drag\", null).call(onBoxDrag);\n var onBarDrag = d3.behavior.drag().on(\"dragstart\", function() {\n d3.event.sourceEvent.preventDefault();\n d3.event.sourceEvent.stopPropagation();\n }).on(\"drag\", this._onBarDrag.bind(this));\n if (needsHorizontalScrollBar) {\n this.hbar.on(\".drag\", null).call(onBarDrag);\n }\n if (needsVerticalScrollBar) {\n this.vbar.on(\".drag\", null).call(onBarDrag);\n }\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype.disable = function disable() {\n if (this.hbar || this.vbar) {\n this.bg.attr({\n width: 0,\n height: 0\n });\n this.container.on(\"wheel\", null).on(\".drag\", null).call(Drawing.setClipUrl, null);\n delete this._clipRect;\n }\n if (this.hbar) {\n this.hbar.on(\".drag\", null);\n this.hbar.remove();\n delete this.hbar;\n delete this._hbarXMin;\n delete this._hbarTranslateMax;\n }\n if (this.vbar) {\n this.vbar.on(\".drag\", null);\n this.vbar.remove();\n delete this.vbar;\n delete this._vbarYMin;\n delete this._vbarTranslateMax;\n }\n };\n ScrollBox.prototype._onBoxDrag = function _onBoxDrag() {\n var translateX = this.translateX;\n var translateY = this.translateY;\n if (this.hbar) {\n translateX -= d3.event.dx;\n }\n if (this.vbar) {\n translateY -= d3.event.dy;\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype._onBoxWheel = function _onBoxWheel() {\n var translateX = this.translateX;\n var translateY = this.translateY;\n if (this.hbar) {\n translateX += d3.event.deltaY;\n }\n if (this.vbar) {\n translateY += d3.event.deltaY;\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype._onBarDrag = function _onBarDrag() {\n var translateX = this.translateX;\n var translateY = this.translateY;\n if (this.hbar) {\n var xMin = translateX + this._hbarXMin;\n var xMax = xMin + this._hbarTranslateMax;\n var x = Lib.constrain(d3.event.x, xMin, xMax);\n var xf = (x - xMin) / (xMax - xMin);\n var translateXMax = this.position.w - this._box.w;\n translateX = xf * translateXMax;\n }\n if (this.vbar) {\n var yMin = translateY + this._vbarYMin;\n var yMax = yMin + this._vbarTranslateMax;\n var y = Lib.constrain(d3.event.y, yMin, yMax);\n var yf = (y - yMin) / (yMax - yMin);\n var translateYMax = this.position.h - this._box.h;\n translateY = yf * translateYMax;\n }\n this.setTranslate(translateX, translateY);\n };\n ScrollBox.prototype.setTranslate = function setTranslate(translateX, translateY) {\n var translateXMax = this.position.w - this._box.w;\n var translateYMax = this.position.h - this._box.h;\n translateX = Lib.constrain(translateX || 0, 0, translateXMax);\n translateY = Lib.constrain(translateY || 0, 0, translateYMax);\n this.translateX = translateX;\n this.translateY = translateY;\n this.container.call(\n Drawing.setTranslate,\n this._box.l - this.position.l - translateX,\n this._box.t - this.position.t - translateY\n );\n if (this._clipRect) {\n this._clipRect.attr({\n x: Math.floor(this.position.l + translateX - 0.5),\n y: Math.floor(this.position.t + translateY - 0.5)\n });\n }\n if (this.hbar) {\n var xf = translateX / translateXMax;\n this.hbar.call(\n Drawing.setTranslate,\n translateX + xf * this._hbarTranslateMax,\n translateY\n );\n }\n if (this.vbar) {\n var yf = translateY / translateYMax;\n this.vbar.call(\n Drawing.setTranslate,\n translateX,\n translateY + yf * this._vbarTranslateMax\n );\n }\n };\n }\n });\n\n // src/components/updatemenus/draw.js\n var require_draw7 = __commonJS({\n \"src/components/updatemenus/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Plots = require_plots();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var arrayEditor = require_plot_template().arrayEditor;\n var LINE_SPACING = require_alignment().LINE_SPACING;\n var constants = require_constants9();\n var ScrollBox = require_scrollbox();\n module.exports = function draw(gd) {\n var fullLayout = gd._fullLayout;\n var menuData = Lib.filterVisible(fullLayout[constants.name]);\n function clearAutoMargin(menuOpts2) {\n Plots.autoMargin(gd, autoMarginId(menuOpts2));\n }\n var menus = fullLayout._menulayer.selectAll(\"g.\" + constants.containerClassName).data(menuData.length > 0 ? [0] : []);\n menus.enter().append(\"g\").classed(constants.containerClassName, true).style(\"cursor\", \"pointer\");\n menus.exit().each(function() {\n d3.select(this).selectAll(\"g.\" + constants.headerGroupClassName).each(clearAutoMargin);\n }).remove();\n if (menuData.length === 0) return;\n var headerGroups = menus.selectAll(\"g.\" + constants.headerGroupClassName).data(menuData, keyFunction);\n headerGroups.enter().append(\"g\").classed(constants.headerGroupClassName, true);\n var gButton = Lib.ensureSingle(menus, \"g\", constants.dropdownButtonGroupClassName, function(s) {\n s.style(\"pointer-events\", \"all\");\n });\n for (var i = 0; i < menuData.length; i++) {\n var menuOpts = menuData[i];\n findDimensions(gd, menuOpts);\n }\n var scrollBoxId = \"updatemenus\" + fullLayout._uid;\n var scrollBox = new ScrollBox(gd, gButton, scrollBoxId);\n if (headerGroups.enter().size()) {\n gButton.node().parentNode.appendChild(gButton.node());\n gButton.call(removeAllButtons);\n }\n headerGroups.exit().each(function(menuOpts2) {\n gButton.call(removeAllButtons);\n clearAutoMargin(menuOpts2);\n }).remove();\n headerGroups.each(function(menuOpts2) {\n var gHeader = d3.select(this);\n var _gButton = menuOpts2.type === \"dropdown\" ? gButton : null;\n Plots.manageCommandObserver(gd, menuOpts2, menuOpts2.buttons, function(data) {\n setActive(gd, menuOpts2, menuOpts2.buttons[data.index], gHeader, _gButton, scrollBox, data.index, true);\n });\n if (menuOpts2.type === \"dropdown\") {\n drawHeader(gd, gHeader, gButton, scrollBox, menuOpts2);\n if (isActive(gButton, menuOpts2)) {\n drawButtons(gd, gHeader, gButton, scrollBox, menuOpts2);\n }\n } else {\n drawButtons(gd, gHeader, null, null, menuOpts2);\n }\n });\n };\n function keyFunction(menuOpts) {\n return menuOpts._index;\n }\n function isFolded(gButton) {\n return +gButton.attr(constants.menuIndexAttrName) === -1;\n }\n function isActive(gButton, menuOpts) {\n return +gButton.attr(constants.menuIndexAttrName) === menuOpts._index;\n }\n function setActive(gd, menuOpts, buttonOpts, gHeader, gButton, scrollBox, buttonIndex, isSilentUpdate) {\n menuOpts.active = buttonIndex;\n arrayEditor(gd.layout, constants.name, menuOpts).applyUpdate(\"active\", buttonIndex);\n if (menuOpts.type === \"buttons\") {\n drawButtons(gd, gHeader, null, null, menuOpts);\n } else if (menuOpts.type === \"dropdown\") {\n gButton.attr(constants.menuIndexAttrName, \"-1\");\n drawHeader(gd, gHeader, gButton, scrollBox, menuOpts);\n if (!isSilentUpdate) {\n drawButtons(gd, gHeader, gButton, scrollBox, menuOpts);\n }\n }\n }\n function drawHeader(gd, gHeader, gButton, scrollBox, menuOpts) {\n var header = Lib.ensureSingle(gHeader, \"g\", constants.headerClassName, function(s) {\n s.style(\"pointer-events\", \"all\");\n });\n var dims = menuOpts._dims;\n var active = menuOpts.active;\n var headerOpts = menuOpts.buttons[active] || constants.blankHeaderOpts;\n var posOpts = { y: menuOpts.pad.t, yPad: 0, x: menuOpts.pad.l, xPad: 0, index: 0 };\n var positionOverrides = {\n width: dims.headerWidth,\n height: dims.headerHeight\n };\n header.call(drawItem, menuOpts, headerOpts, gd).call(setItemPosition, menuOpts, posOpts, positionOverrides);\n var arrow = Lib.ensureSingle(gHeader, \"text\", constants.headerArrowClassName, function(s) {\n s.attr(\"text-anchor\", \"end\").call(Drawing.font, menuOpts.font).text(constants.arrowSymbol[menuOpts.direction]);\n });\n arrow.attr({\n x: dims.headerWidth - constants.arrowOffsetX + menuOpts.pad.l,\n y: dims.headerHeight / 2 + constants.textOffsetY + menuOpts.pad.t\n });\n header.on(\"click\", function() {\n gButton.call(\n removeAllButtons,\n String(isActive(gButton, menuOpts) ? -1 : menuOpts._index)\n );\n drawButtons(gd, gHeader, gButton, scrollBox, menuOpts);\n });\n header.on(\"mouseover\", function() {\n header.call(styleOnMouseOver);\n });\n header.on(\"mouseout\", function() {\n header.call(styleOnMouseOut, menuOpts);\n });\n Drawing.setTranslate(gHeader, dims.lx, dims.ly);\n }\n function drawButtons(gd, gHeader, gButton, scrollBox, menuOpts) {\n if (!gButton) {\n gButton = gHeader;\n gButton.attr(\"pointer-events\", \"all\");\n }\n var buttonData = !isFolded(gButton) || menuOpts.type === \"buttons\" ? menuOpts.buttons : [];\n var klass = menuOpts.type === \"dropdown\" ? constants.dropdownButtonClassName : constants.buttonClassName;\n var buttons = gButton.selectAll(\"g.\" + klass).data(Lib.filterVisible(buttonData));\n var enter = buttons.enter().append(\"g\").classed(klass, true);\n var exit = buttons.exit();\n if (menuOpts.type === \"dropdown\") {\n enter.attr(\"opacity\", \"0\").transition().attr(\"opacity\", \"1\");\n exit.transition().attr(\"opacity\", \"0\").remove();\n } else {\n exit.remove();\n }\n var x0 = 0;\n var y0 = 0;\n var dims = menuOpts._dims;\n var isVertical = [\"up\", \"down\"].indexOf(menuOpts.direction) !== -1;\n if (menuOpts.type === \"dropdown\") {\n if (isVertical) {\n y0 = dims.headerHeight + constants.gapButtonHeader;\n } else {\n x0 = dims.headerWidth + constants.gapButtonHeader;\n }\n }\n if (menuOpts.type === \"dropdown\" && menuOpts.direction === \"up\") {\n y0 = -constants.gapButtonHeader + constants.gapButton - dims.openHeight;\n }\n if (menuOpts.type === \"dropdown\" && menuOpts.direction === \"left\") {\n x0 = -constants.gapButtonHeader + constants.gapButton - dims.openWidth;\n }\n var posOpts = {\n x: dims.lx + x0 + menuOpts.pad.l,\n y: dims.ly + y0 + menuOpts.pad.t,\n yPad: constants.gapButton,\n xPad: constants.gapButton,\n index: 0\n };\n var scrollBoxPosition = {\n l: posOpts.x + menuOpts.borderwidth,\n t: posOpts.y + menuOpts.borderwidth\n };\n buttons.each(function(buttonOpts, buttonIndex) {\n var button = d3.select(this);\n button.call(drawItem, menuOpts, buttonOpts, gd).call(setItemPosition, menuOpts, posOpts);\n button.on(\"click\", function() {\n if (d3.event.defaultPrevented) return;\n if (buttonOpts.execute) {\n if (buttonOpts.args2 && menuOpts.active === buttonIndex) {\n setActive(gd, menuOpts, buttonOpts, gHeader, gButton, scrollBox, -1);\n Plots.executeAPICommand(gd, buttonOpts.method, buttonOpts.args2);\n } else {\n setActive(gd, menuOpts, buttonOpts, gHeader, gButton, scrollBox, buttonIndex);\n Plots.executeAPICommand(gd, buttonOpts.method, buttonOpts.args);\n }\n }\n gd.emit(\"plotly_buttonclicked\", { menu: menuOpts, button: buttonOpts, active: menuOpts.active });\n });\n button.on(\"mouseover\", function() {\n button.call(styleOnMouseOver);\n });\n button.on(\"mouseout\", function() {\n button.call(styleOnMouseOut, menuOpts);\n buttons.call(styleButtons, menuOpts);\n });\n });\n buttons.call(styleButtons, menuOpts);\n if (isVertical) {\n scrollBoxPosition.w = Math.max(dims.openWidth, dims.headerWidth);\n scrollBoxPosition.h = posOpts.y - scrollBoxPosition.t;\n } else {\n scrollBoxPosition.w = posOpts.x - scrollBoxPosition.l;\n scrollBoxPosition.h = Math.max(dims.openHeight, dims.headerHeight);\n }\n scrollBoxPosition.direction = menuOpts.direction;\n if (scrollBox) {\n if (buttons.size()) {\n drawScrollBox(gd, gHeader, gButton, scrollBox, menuOpts, scrollBoxPosition);\n } else {\n hideScrollBox(scrollBox);\n }\n }\n }\n function drawScrollBox(gd, gHeader, gButton, scrollBox, menuOpts, position) {\n var direction = menuOpts.direction;\n var isVertical = direction === \"up\" || direction === \"down\";\n var dims = menuOpts._dims;\n var active = menuOpts.active;\n var translateX, translateY;\n var i;\n if (isVertical) {\n translateY = 0;\n for (i = 0; i < active; i++) {\n translateY += dims.heights[i] + constants.gapButton;\n }\n } else {\n translateX = 0;\n for (i = 0; i < active; i++) {\n translateX += dims.widths[i] + constants.gapButton;\n }\n }\n scrollBox.enable(position, translateX, translateY);\n if (scrollBox.hbar) {\n scrollBox.hbar.attr(\"opacity\", \"0\").transition().attr(\"opacity\", \"1\");\n }\n if (scrollBox.vbar) {\n scrollBox.vbar.attr(\"opacity\", \"0\").transition().attr(\"opacity\", \"1\");\n }\n }\n function hideScrollBox(scrollBox) {\n var hasHBar = !!scrollBox.hbar;\n var hasVBar = !!scrollBox.vbar;\n if (hasHBar) {\n scrollBox.hbar.transition().attr(\"opacity\", \"0\").each(\"end\", function() {\n hasHBar = false;\n if (!hasVBar) scrollBox.disable();\n });\n }\n if (hasVBar) {\n scrollBox.vbar.transition().attr(\"opacity\", \"0\").each(\"end\", function() {\n hasVBar = false;\n if (!hasHBar) scrollBox.disable();\n });\n }\n }\n function drawItem(item, menuOpts, itemOpts, gd) {\n item.call(drawItemRect, menuOpts).call(drawItemText, menuOpts, itemOpts, gd);\n }\n function drawItemRect(item, menuOpts) {\n var rect = Lib.ensureSingle(item, \"rect\", constants.itemRectClassName, function(s) {\n s.attr({\n rx: constants.rx,\n ry: constants.ry,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n rect.call(Color2.stroke, menuOpts.bordercolor).call(Color2.fill, menuOpts.bgcolor).style(\"stroke-width\", menuOpts.borderwidth + \"px\");\n }\n function drawItemText(item, menuOpts, itemOpts, gd) {\n var text = Lib.ensureSingle(item, \"text\", constants.itemTextClassName, function(s) {\n s.attr({\n \"text-anchor\": \"start\",\n \"data-notex\": 1\n });\n });\n var tx = itemOpts.label;\n var _meta = gd._fullLayout._meta;\n if (_meta) tx = Lib.templateString(tx, _meta);\n text.call(Drawing.font, menuOpts.font).text(tx).call(svgTextUtils.convertToTspans, gd);\n }\n function styleButtons(buttons, menuOpts) {\n var active = menuOpts.active;\n buttons.each(function(buttonOpts, i) {\n var button = d3.select(this);\n if (i === active && menuOpts.showactive) {\n button.select(\"rect.\" + constants.itemRectClassName).call(Color2.fill, constants.activeColor);\n }\n });\n }\n function styleOnMouseOver(item) {\n item.select(\"rect.\" + constants.itemRectClassName).call(Color2.fill, constants.hoverColor);\n }\n function styleOnMouseOut(item, menuOpts) {\n item.select(\"rect.\" + constants.itemRectClassName).call(Color2.fill, menuOpts.bgcolor);\n }\n function findDimensions(gd, menuOpts) {\n var dims = menuOpts._dims = {\n width1: 0,\n height1: 0,\n heights: [],\n widths: [],\n totalWidth: 0,\n totalHeight: 0,\n openWidth: 0,\n openHeight: 0,\n lx: 0,\n ly: 0\n };\n var fakeButtons = Drawing.tester.selectAll(\"g.\" + constants.dropdownButtonClassName).data(Lib.filterVisible(menuOpts.buttons));\n fakeButtons.enter().append(\"g\").classed(constants.dropdownButtonClassName, true);\n var isVertical = [\"up\", \"down\"].indexOf(menuOpts.direction) !== -1;\n fakeButtons.each(function(buttonOpts, i) {\n var button = d3.select(this);\n button.call(drawItem, menuOpts, buttonOpts, gd);\n var text = button.select(\".\" + constants.itemTextClassName);\n var tWidth = text.node() && Drawing.bBox(text.node()).width;\n var wEff = Math.max(tWidth + constants.textPadX, constants.minWidth);\n var tHeight = menuOpts.font.size * LINE_SPACING;\n var tLines = svgTextUtils.lineCount(text);\n var hEff = Math.max(tHeight * tLines, constants.minHeight) + constants.textOffsetY;\n hEff = Math.ceil(hEff);\n wEff = Math.ceil(wEff);\n dims.widths[i] = wEff;\n dims.heights[i] = hEff;\n dims.height1 = Math.max(dims.height1, hEff);\n dims.width1 = Math.max(dims.width1, wEff);\n if (isVertical) {\n dims.totalWidth = Math.max(dims.totalWidth, wEff);\n dims.openWidth = dims.totalWidth;\n dims.totalHeight += hEff + constants.gapButton;\n dims.openHeight += hEff + constants.gapButton;\n } else {\n dims.totalWidth += wEff + constants.gapButton;\n dims.openWidth += wEff + constants.gapButton;\n dims.totalHeight = Math.max(dims.totalHeight, hEff);\n dims.openHeight = dims.totalHeight;\n }\n });\n if (isVertical) {\n dims.totalHeight -= constants.gapButton;\n } else {\n dims.totalWidth -= constants.gapButton;\n }\n dims.headerWidth = dims.width1 + constants.arrowPadX;\n dims.headerHeight = dims.height1;\n if (menuOpts.type === \"dropdown\") {\n if (isVertical) {\n dims.width1 += constants.arrowPadX;\n dims.totalHeight = dims.height1;\n } else {\n dims.totalWidth = dims.width1;\n }\n dims.totalWidth += constants.arrowPadX;\n }\n fakeButtons.remove();\n var paddedWidth = dims.totalWidth + menuOpts.pad.l + menuOpts.pad.r;\n var paddedHeight = dims.totalHeight + menuOpts.pad.t + menuOpts.pad.b;\n var graphSize = gd._fullLayout._size;\n dims.lx = graphSize.l + graphSize.w * menuOpts.x;\n dims.ly = graphSize.t + graphSize.h * (1 - menuOpts.y);\n var xanchor = \"left\";\n if (Lib.isRightAnchor(menuOpts)) {\n dims.lx -= paddedWidth;\n xanchor = \"right\";\n }\n if (Lib.isCenterAnchor(menuOpts)) {\n dims.lx -= paddedWidth / 2;\n xanchor = \"center\";\n }\n var yanchor = \"top\";\n if (Lib.isBottomAnchor(menuOpts)) {\n dims.ly -= paddedHeight;\n yanchor = \"bottom\";\n }\n if (Lib.isMiddleAnchor(menuOpts)) {\n dims.ly -= paddedHeight / 2;\n yanchor = \"middle\";\n }\n dims.totalWidth = Math.ceil(dims.totalWidth);\n dims.totalHeight = Math.ceil(dims.totalHeight);\n dims.lx = Math.round(dims.lx);\n dims.ly = Math.round(dims.ly);\n Plots.autoMargin(gd, autoMarginId(menuOpts), {\n x: menuOpts.x,\n y: menuOpts.y,\n l: paddedWidth * ({ right: 1, center: 0.5 }[xanchor] || 0),\n r: paddedWidth * ({ left: 1, center: 0.5 }[xanchor] || 0),\n b: paddedHeight * ({ top: 1, middle: 0.5 }[yanchor] || 0),\n t: paddedHeight * ({ bottom: 1, middle: 0.5 }[yanchor] || 0)\n });\n }\n function autoMarginId(menuOpts) {\n return constants.autoMarginIdRoot + menuOpts._index;\n }\n function setItemPosition(item, menuOpts, posOpts, overrideOpts) {\n overrideOpts = overrideOpts || {};\n var rect = item.select(\".\" + constants.itemRectClassName);\n var text = item.select(\".\" + constants.itemTextClassName);\n var borderWidth = menuOpts.borderwidth;\n var index = posOpts.index;\n var dims = menuOpts._dims;\n Drawing.setTranslate(item, borderWidth + posOpts.x, borderWidth + posOpts.y);\n var isVertical = [\"up\", \"down\"].indexOf(menuOpts.direction) !== -1;\n var finalHeight = overrideOpts.height || (isVertical ? dims.heights[index] : dims.height1);\n rect.attr({\n x: 0,\n y: 0,\n width: overrideOpts.width || (isVertical ? dims.width1 : dims.widths[index]),\n height: finalHeight\n });\n var tHeight = menuOpts.font.size * LINE_SPACING;\n var tLines = svgTextUtils.lineCount(text);\n var spanOffset = (tLines - 1) * tHeight / 2;\n svgTextUtils.positionText(\n text,\n constants.textOffsetX,\n finalHeight / 2 - spanOffset + constants.textOffsetY\n );\n if (isVertical) {\n posOpts.y += dims.heights[index] + posOpts.yPad;\n } else {\n posOpts.x += dims.widths[index] + posOpts.xPad;\n }\n posOpts.index++;\n }\n function removeAllButtons(gButton, newMenuIndexAttr) {\n gButton.attr(constants.menuIndexAttrName, newMenuIndexAttr || \"-1\").selectAll(\"g.\" + constants.dropdownButtonClassName).remove();\n }\n }\n });\n\n // src/components/updatemenus/index.js\n var require_updatemenus = __commonJS({\n \"src/components/updatemenus/index.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants9();\n module.exports = {\n moduleType: \"component\",\n name: constants.name,\n layoutAttributes: require_attributes18(),\n supplyLayoutDefaults: require_defaults14(),\n draw: require_draw7()\n };\n }\n });\n\n // src/components/sliders/constants.js\n var require_constants10 = __commonJS({\n \"src/components/sliders/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // layout attribute name\n name: \"sliders\",\n // class names\n containerClassName: \"slider-container\",\n groupClassName: \"slider-group\",\n inputAreaClass: \"slider-input-area\",\n railRectClass: \"slider-rail-rect\",\n railTouchRectClass: \"slider-rail-touch-rect\",\n gripRectClass: \"slider-grip-rect\",\n tickRectClass: \"slider-tick-rect\",\n inputProxyClass: \"slider-input-proxy\",\n labelsClass: \"slider-labels\",\n labelGroupClass: \"slider-label-group\",\n labelClass: \"slider-label\",\n currentValueClass: \"slider-current-value\",\n railHeight: 5,\n // DOM attribute name in button group keeping track\n // of active update menu\n menuIndexAttrName: \"slider-active-index\",\n // id root pass to Plots.autoMargin\n autoMarginIdRoot: \"slider-\",\n // min item width / height\n minWidth: 30,\n minHeight: 30,\n // padding around item text\n textPadX: 40,\n // arrow offset off right edge\n arrowOffsetX: 4,\n railRadius: 2,\n railWidth: 5,\n railBorder: 4,\n railBorderWidth: 1,\n railBorderColor: \"#bec8d9\",\n railBgColor: \"#f8fafc\",\n // The distance of the rail from the edge of the touchable area\n // Slightly less than the step inset because of the curved edges\n // of the rail\n railInset: 8,\n // The distance from the extremal tick marks to the edge of the\n // touchable area. This is basically the same as the grip radius,\n // but for other styles it wouldn't really need to be.\n stepInset: 10,\n gripRadius: 10,\n gripWidth: 20,\n gripHeight: 20,\n gripBorder: 20,\n gripBorderWidth: 1,\n gripBorderColor: \"#bec8d9\",\n gripBgColor: \"#f6f8fa\",\n gripBgActiveColor: \"#dbdde0\",\n labelPadding: 8,\n labelOffset: 0,\n tickWidth: 1,\n tickColor: \"#333\",\n tickOffset: 25,\n tickLength: 7,\n minorTickOffset: 25,\n minorTickColor: \"#333\",\n minorTickLength: 4,\n // Extra space below the current value label:\n currentValuePadding: 8,\n currentValueInset: 0\n };\n }\n });\n\n // src/components/sliders/attributes.js\n var require_attributes19 = __commonJS({\n \"src/components/sliders/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var padAttrs = require_pad_attributes();\n var extendDeepAll = require_extend().extendDeepAll;\n var overrideAll = require_edit_types().overrideAll;\n var animationAttrs = require_animation_attributes();\n var templatedArray = require_plot_template().templatedArray;\n var constants = require_constants10();\n var stepsAttrs = templatedArray(\"step\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n method: {\n valType: \"enumerated\",\n values: [\"restyle\", \"relayout\", \"animate\", \"update\", \"skip\"],\n dflt: \"restyle\"\n },\n args: {\n valType: \"info_array\",\n freeLength: true,\n items: [\n { valType: \"any\" },\n { valType: \"any\" },\n { valType: \"any\" }\n ]\n },\n label: {\n valType: \"string\"\n },\n value: {\n valType: \"string\"\n },\n execute: {\n valType: \"boolean\",\n dflt: true\n }\n });\n module.exports = overrideAll(templatedArray(\"slider\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n active: {\n valType: \"number\",\n min: 0,\n dflt: 0\n },\n steps: stepsAttrs,\n lenmode: {\n valType: \"enumerated\",\n values: [\"fraction\", \"pixels\"],\n dflt: \"fraction\"\n },\n len: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n x: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: 0\n },\n pad: extendDeepAll(padAttrs({ editType: \"arraydraw\" }), {}, { t: { dflt: 20 } }),\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"left\"\n },\n y: {\n valType: \"number\",\n min: -2,\n max: 3,\n dflt: 0\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"top\"\n },\n transition: {\n duration: {\n valType: \"number\",\n min: 0,\n dflt: 150\n },\n easing: {\n valType: \"enumerated\",\n values: animationAttrs.transition.easing.values,\n dflt: \"cubic-in-out\"\n }\n },\n currentvalue: {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n dflt: \"left\"\n },\n offset: {\n valType: \"number\",\n dflt: 10\n },\n prefix: {\n valType: \"string\"\n },\n suffix: {\n valType: \"string\"\n },\n font: fontAttrs({})\n },\n font: fontAttrs({}),\n activebgcolor: {\n valType: \"color\",\n dflt: constants.gripBgActiveColor\n },\n bgcolor: {\n valType: \"color\",\n dflt: constants.railBgColor\n },\n bordercolor: {\n valType: \"color\",\n dflt: constants.railBorderColor\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: constants.railBorderWidth\n },\n ticklen: {\n valType: \"number\",\n min: 0,\n dflt: constants.tickLength\n },\n tickcolor: {\n valType: \"color\",\n dflt: constants.tickColor\n },\n tickwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n minorticklen: {\n valType: \"number\",\n min: 0,\n dflt: constants.minorTickLength\n }\n }), \"arraydraw\", \"from-root\");\n }\n });\n\n // src/components/sliders/defaults.js\n var require_defaults15 = __commonJS({\n \"src/components/sliders/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes19();\n var constants = require_constants10();\n var name2 = constants.name;\n var stepAttrs = attributes.steps;\n module.exports = function slidersDefaults(layoutIn, layoutOut) {\n handleArrayContainerDefaults(layoutIn, layoutOut, {\n name: name2,\n handleItemDefaults: sliderDefaults\n });\n };\n function sliderDefaults(sliderIn, sliderOut, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(sliderIn, sliderOut, attributes, attr, dflt);\n }\n var steps = handleArrayContainerDefaults(sliderIn, sliderOut, {\n name: \"steps\",\n handleItemDefaults: stepDefaults\n });\n var stepCount = 0;\n for (var i = 0; i < steps.length; i++) {\n if (steps[i].visible) stepCount++;\n }\n var visible;\n if (stepCount < 2) visible = sliderOut.visible = false;\n else visible = coerce(\"visible\");\n if (!visible) return;\n sliderOut._stepCount = stepCount;\n var visSteps = sliderOut._visibleSteps = Lib.filterVisible(steps);\n var active = coerce(\"active\");\n if (!(steps[active] || {}).visible) sliderOut.active = visSteps[0]._index;\n coerce(\"x\");\n coerce(\"y\");\n Lib.noneOrAll(sliderIn, sliderOut, [\"x\", \"y\"]);\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n coerce(\"len\");\n coerce(\"lenmode\");\n coerce(\"pad.t\");\n coerce(\"pad.r\");\n coerce(\"pad.b\");\n coerce(\"pad.l\");\n Lib.coerceFont(coerce, \"font\", layoutOut.font);\n var currentValueIsVisible = coerce(\"currentvalue.visible\");\n if (currentValueIsVisible) {\n coerce(\"currentvalue.xanchor\");\n coerce(\"currentvalue.prefix\");\n coerce(\"currentvalue.suffix\");\n coerce(\"currentvalue.offset\");\n Lib.coerceFont(coerce, \"currentvalue.font\", sliderOut.font);\n }\n coerce(\"transition.duration\");\n coerce(\"transition.easing\");\n coerce(\"bgcolor\");\n coerce(\"activebgcolor\");\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n coerce(\"ticklen\");\n coerce(\"tickwidth\");\n coerce(\"tickcolor\");\n coerce(\"minorticklen\");\n }\n function stepDefaults(valueIn, valueOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(valueIn, valueOut, stepAttrs, attr, dflt);\n }\n var visible;\n if (valueIn.method !== \"skip\" && !Array.isArray(valueIn.args)) {\n visible = valueOut.visible = false;\n } else visible = coerce(\"visible\");\n if (visible) {\n coerce(\"method\");\n coerce(\"args\");\n var label = coerce(\"label\", \"step-\" + valueOut._index);\n coerce(\"value\", label);\n coerce(\"execute\");\n }\n }\n }\n });\n\n // src/components/sliders/draw.js\n var require_draw8 = __commonJS({\n \"src/components/sliders/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Plots = require_plots();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var arrayEditor = require_plot_template().arrayEditor;\n var constants = require_constants10();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n module.exports = function draw(gd) {\n var staticPlot = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var sliderData = makeSliderData(fullLayout, gd);\n var sliders = fullLayout._infolayer.selectAll(\"g.\" + constants.containerClassName).data(sliderData.length > 0 ? [0] : []);\n sliders.enter().append(\"g\").classed(constants.containerClassName, true).style(\"cursor\", staticPlot ? null : \"ew-resize\");\n function clearSlider(sliderOpts2) {\n if (sliderOpts2._commandObserver) {\n sliderOpts2._commandObserver.remove();\n delete sliderOpts2._commandObserver;\n }\n Plots.autoMargin(gd, autoMarginId(sliderOpts2));\n }\n sliders.exit().each(function() {\n d3.select(this).selectAll(\"g.\" + constants.groupClassName).each(clearSlider);\n }).remove();\n if (sliderData.length === 0) return;\n var sliderGroups = sliders.selectAll(\"g.\" + constants.groupClassName).data(sliderData, keyFunction);\n sliderGroups.enter().append(\"g\").classed(constants.groupClassName, true);\n sliderGroups.exit().each(clearSlider).remove();\n for (var i = 0; i < sliderData.length; i++) {\n var sliderOpts = sliderData[i];\n findDimensions(gd, sliderOpts);\n }\n sliderGroups.each(function(sliderOpts2) {\n var gSlider = d3.select(this);\n computeLabelSteps(sliderOpts2);\n Plots.manageCommandObserver(gd, sliderOpts2, sliderOpts2._visibleSteps, function(data) {\n var opts = gSlider.data()[0];\n if (opts.active === data.index) return;\n if (opts._dragging) return;\n setActive(gd, gSlider, opts, data.index, false, true);\n });\n drawSlider(gd, d3.select(this), sliderOpts2);\n });\n };\n function autoMarginId(sliderOpts) {\n return constants.autoMarginIdRoot + sliderOpts._index;\n }\n function makeSliderData(fullLayout, gd) {\n var contOpts = fullLayout[constants.name];\n var sliderData = [];\n for (var i = 0; i < contOpts.length; i++) {\n var item = contOpts[i];\n if (!item.visible) continue;\n item._gd = gd;\n sliderData.push(item);\n }\n return sliderData;\n }\n function keyFunction(opts) {\n return opts._index;\n }\n function findDimensions(gd, sliderOpts) {\n var sliderLabels = Drawing.tester.selectAll(\"g.\" + constants.labelGroupClass).data(sliderOpts._visibleSteps);\n sliderLabels.enter().append(\"g\").classed(constants.labelGroupClass, true);\n var maxLabelWidth = 0;\n var labelHeight = 0;\n sliderLabels.each(function(stepOpts) {\n var labelGroup = d3.select(this);\n var text = drawLabel(labelGroup, { step: stepOpts }, sliderOpts);\n var textNode = text.node();\n if (textNode) {\n var bBox = Drawing.bBox(textNode);\n labelHeight = Math.max(labelHeight, bBox.height);\n maxLabelWidth = Math.max(maxLabelWidth, bBox.width);\n }\n });\n sliderLabels.remove();\n var dims = sliderOpts._dims = {};\n dims.inputAreaWidth = Math.max(\n constants.railWidth,\n constants.gripHeight\n );\n var graphSize = gd._fullLayout._size;\n dims.lx = graphSize.l + graphSize.w * sliderOpts.x;\n dims.ly = graphSize.t + graphSize.h * (1 - sliderOpts.y);\n if (sliderOpts.lenmode === \"fraction\") {\n dims.outerLength = Math.round(graphSize.w * sliderOpts.len);\n } else {\n dims.outerLength = sliderOpts.len;\n }\n dims.inputAreaStart = 0;\n dims.inputAreaLength = Math.round(dims.outerLength - sliderOpts.pad.l - sliderOpts.pad.r);\n var textableInputLength = dims.inputAreaLength - 2 * constants.stepInset;\n var availableSpacePerLabel = textableInputLength / (sliderOpts._stepCount - 1);\n var computedSpacePerLabel = maxLabelWidth + constants.labelPadding;\n dims.labelStride = Math.max(1, Math.ceil(computedSpacePerLabel / availableSpacePerLabel));\n dims.labelHeight = labelHeight;\n dims.currentValueMaxWidth = 0;\n dims.currentValueHeight = 0;\n dims.currentValueTotalHeight = 0;\n dims.currentValueMaxLines = 1;\n if (sliderOpts.currentvalue.visible) {\n var dummyGroup = Drawing.tester.append(\"g\");\n sliderLabels.each(function(stepOpts) {\n var curValPrefix = drawCurrentValue(dummyGroup, sliderOpts, stepOpts.label);\n var curValSize = curValPrefix.node() && Drawing.bBox(curValPrefix.node()) || { width: 0, height: 0 };\n var lines = svgTextUtils.lineCount(curValPrefix);\n dims.currentValueMaxWidth = Math.max(dims.currentValueMaxWidth, Math.ceil(curValSize.width));\n dims.currentValueHeight = Math.max(dims.currentValueHeight, Math.ceil(curValSize.height));\n dims.currentValueMaxLines = Math.max(dims.currentValueMaxLines, lines);\n });\n dims.currentValueTotalHeight = dims.currentValueHeight + sliderOpts.currentvalue.offset;\n dummyGroup.remove();\n }\n dims.height = dims.currentValueTotalHeight + constants.tickOffset + sliderOpts.ticklen + constants.labelOffset + dims.labelHeight + sliderOpts.pad.t + sliderOpts.pad.b;\n var xanchor = \"left\";\n if (Lib.isRightAnchor(sliderOpts)) {\n dims.lx -= dims.outerLength;\n xanchor = \"right\";\n }\n if (Lib.isCenterAnchor(sliderOpts)) {\n dims.lx -= dims.outerLength / 2;\n xanchor = \"center\";\n }\n var yanchor = \"top\";\n if (Lib.isBottomAnchor(sliderOpts)) {\n dims.ly -= dims.height;\n yanchor = \"bottom\";\n }\n if (Lib.isMiddleAnchor(sliderOpts)) {\n dims.ly -= dims.height / 2;\n yanchor = \"middle\";\n }\n dims.outerLength = Math.ceil(dims.outerLength);\n dims.height = Math.ceil(dims.height);\n dims.lx = Math.round(dims.lx);\n dims.ly = Math.round(dims.ly);\n var marginOpts = {\n y: sliderOpts.y,\n b: dims.height * FROM_BR[yanchor],\n t: dims.height * FROM_TL[yanchor]\n };\n if (sliderOpts.lenmode === \"fraction\") {\n marginOpts.l = 0;\n marginOpts.xl = sliderOpts.x - sliderOpts.len * FROM_TL[xanchor];\n marginOpts.r = 0;\n marginOpts.xr = sliderOpts.x + sliderOpts.len * FROM_BR[xanchor];\n } else {\n marginOpts.x = sliderOpts.x;\n marginOpts.l = dims.outerLength * FROM_TL[xanchor];\n marginOpts.r = dims.outerLength * FROM_BR[xanchor];\n }\n Plots.autoMargin(gd, autoMarginId(sliderOpts), marginOpts);\n }\n function drawSlider(gd, sliderGroup, sliderOpts) {\n if (!(sliderOpts.steps[sliderOpts.active] || {}).visible) {\n sliderOpts.active = sliderOpts._visibleSteps[0]._index;\n }\n sliderGroup.call(drawCurrentValue, sliderOpts).call(drawRail, sliderOpts).call(drawLabelGroup, sliderOpts).call(drawTicks, sliderOpts).call(drawTouchRect, gd, sliderOpts).call(drawGrip, gd, sliderOpts);\n var dims = sliderOpts._dims;\n Drawing.setTranslate(sliderGroup, dims.lx + sliderOpts.pad.l, dims.ly + sliderOpts.pad.t);\n sliderGroup.call(setGripPosition, sliderOpts, false);\n sliderGroup.call(drawCurrentValue, sliderOpts);\n }\n function drawCurrentValue(sliderGroup, sliderOpts, valueOverride) {\n if (!sliderOpts.currentvalue.visible) return;\n var dims = sliderOpts._dims;\n var x0, textAnchor;\n switch (sliderOpts.currentvalue.xanchor) {\n case \"right\":\n x0 = dims.inputAreaLength - constants.currentValueInset - dims.currentValueMaxWidth;\n textAnchor = \"left\";\n break;\n case \"center\":\n x0 = dims.inputAreaLength * 0.5;\n textAnchor = \"middle\";\n break;\n default:\n x0 = constants.currentValueInset;\n textAnchor = \"left\";\n }\n var text = Lib.ensureSingle(sliderGroup, \"text\", constants.labelClass, function(s) {\n s.attr({\n \"text-anchor\": textAnchor,\n \"data-notex\": 1\n });\n });\n var str = sliderOpts.currentvalue.prefix ? sliderOpts.currentvalue.prefix : \"\";\n if (typeof valueOverride === \"string\") {\n str += valueOverride;\n } else {\n var curVal = sliderOpts.steps[sliderOpts.active].label;\n var _meta = sliderOpts._gd._fullLayout._meta;\n if (_meta) curVal = Lib.templateString(curVal, _meta);\n str += curVal;\n }\n if (sliderOpts.currentvalue.suffix) {\n str += sliderOpts.currentvalue.suffix;\n }\n text.call(Drawing.font, sliderOpts.currentvalue.font).text(str).call(svgTextUtils.convertToTspans, sliderOpts._gd);\n var lines = svgTextUtils.lineCount(text);\n var y0 = (dims.currentValueMaxLines + 1 - lines) * sliderOpts.currentvalue.font.size * LINE_SPACING;\n svgTextUtils.positionText(text, x0, y0);\n return text;\n }\n function drawGrip(sliderGroup, gd, sliderOpts) {\n var grip = Lib.ensureSingle(sliderGroup, \"rect\", constants.gripRectClass, function(s) {\n s.call(attachGripEvents, gd, sliderGroup, sliderOpts).style(\"pointer-events\", \"all\");\n });\n grip.attr({\n width: constants.gripWidth,\n height: constants.gripHeight,\n rx: constants.gripRadius,\n ry: constants.gripRadius\n }).call(Color2.stroke, sliderOpts.bordercolor).call(Color2.fill, sliderOpts.bgcolor).style(\"stroke-width\", sliderOpts.borderwidth + \"px\");\n }\n function drawLabel(item, data, sliderOpts) {\n var text = Lib.ensureSingle(item, \"text\", constants.labelClass, function(s) {\n s.attr({\n \"text-anchor\": \"middle\",\n \"data-notex\": 1\n });\n });\n var tx = data.step.label;\n var _meta = sliderOpts._gd._fullLayout._meta;\n if (_meta) tx = Lib.templateString(tx, _meta);\n text.call(Drawing.font, sliderOpts.font).text(tx).call(svgTextUtils.convertToTspans, sliderOpts._gd);\n return text;\n }\n function drawLabelGroup(sliderGroup, sliderOpts) {\n var labels = Lib.ensureSingle(sliderGroup, \"g\", constants.labelsClass);\n var dims = sliderOpts._dims;\n var labelItems = labels.selectAll(\"g.\" + constants.labelGroupClass).data(dims.labelSteps);\n labelItems.enter().append(\"g\").classed(constants.labelGroupClass, true);\n labelItems.exit().remove();\n labelItems.each(function(d) {\n var item = d3.select(this);\n item.call(drawLabel, d, sliderOpts);\n Drawing.setTranslate(\n item,\n normalizedValueToPosition(sliderOpts, d.fraction),\n constants.tickOffset + sliderOpts.ticklen + // position is the baseline of the top line of text only, even\n // if the label spans multiple lines\n sliderOpts.font.size * LINE_SPACING + constants.labelOffset + dims.currentValueTotalHeight\n );\n });\n }\n function handleInput(gd, sliderGroup, sliderOpts, normalizedPosition, doTransition) {\n var quantizedPosition = Math.round(normalizedPosition * (sliderOpts._stepCount - 1));\n var quantizedIndex = sliderOpts._visibleSteps[quantizedPosition]._index;\n if (quantizedIndex !== sliderOpts.active) {\n setActive(gd, sliderGroup, sliderOpts, quantizedIndex, true, doTransition);\n }\n }\n function setActive(gd, sliderGroup, sliderOpts, index, doCallback, doTransition) {\n var previousActive = sliderOpts.active;\n sliderOpts.active = index;\n arrayEditor(gd.layout, constants.name, sliderOpts).applyUpdate(\"active\", index);\n var step = sliderOpts.steps[sliderOpts.active];\n sliderGroup.call(setGripPosition, sliderOpts, doTransition);\n sliderGroup.call(drawCurrentValue, sliderOpts);\n gd.emit(\"plotly_sliderchange\", {\n slider: sliderOpts,\n step: sliderOpts.steps[sliderOpts.active],\n interaction: doCallback,\n previousActive\n });\n if (step && step.method && doCallback) {\n if (sliderGroup._nextMethod) {\n sliderGroup._nextMethod.step = step;\n sliderGroup._nextMethod.doCallback = doCallback;\n sliderGroup._nextMethod.doTransition = doTransition;\n } else {\n sliderGroup._nextMethod = { step, doCallback, doTransition };\n sliderGroup._nextMethodRaf = window.requestAnimationFrame(function() {\n var _step = sliderGroup._nextMethod.step;\n if (!_step.method) return;\n if (_step.execute) {\n Plots.executeAPICommand(gd, _step.method, _step.args);\n }\n sliderGroup._nextMethod = null;\n sliderGroup._nextMethodRaf = null;\n });\n }\n }\n }\n function attachGripEvents(item, gd, sliderGroup) {\n if (gd._context.staticPlot) return;\n var node = sliderGroup.node();\n var $gd = d3.select(gd);\n function getSliderOpts() {\n return sliderGroup.data()[0];\n }\n function mouseDownHandler() {\n var sliderOpts = getSliderOpts();\n gd.emit(\"plotly_sliderstart\", { slider: sliderOpts });\n var grip = sliderGroup.select(\".\" + constants.gripRectClass);\n d3.event.stopPropagation();\n d3.event.preventDefault();\n grip.call(Color2.fill, sliderOpts.activebgcolor);\n var normalizedPosition = positionToNormalizedValue(sliderOpts, d3.mouse(node)[0]);\n handleInput(gd, sliderGroup, sliderOpts, normalizedPosition, true);\n sliderOpts._dragging = true;\n function mouseMoveHandler() {\n var sliderOpts2 = getSliderOpts();\n var normalizedPosition2 = positionToNormalizedValue(sliderOpts2, d3.mouse(node)[0]);\n handleInput(gd, sliderGroup, sliderOpts2, normalizedPosition2, false);\n }\n $gd.on(\"mousemove\", mouseMoveHandler);\n $gd.on(\"touchmove\", mouseMoveHandler);\n function mouseUpHandler() {\n var sliderOpts2 = getSliderOpts();\n sliderOpts2._dragging = false;\n grip.call(Color2.fill, sliderOpts2.bgcolor);\n $gd.on(\"mouseup\", null);\n $gd.on(\"mousemove\", null);\n $gd.on(\"touchend\", null);\n $gd.on(\"touchmove\", null);\n gd.emit(\"plotly_sliderend\", {\n slider: sliderOpts2,\n step: sliderOpts2.steps[sliderOpts2.active]\n });\n }\n $gd.on(\"mouseup\", mouseUpHandler);\n $gd.on(\"touchend\", mouseUpHandler);\n }\n item.on(\"mousedown\", mouseDownHandler);\n item.on(\"touchstart\", mouseDownHandler);\n }\n function drawTicks(sliderGroup, sliderOpts) {\n var tick = sliderGroup.selectAll(\"rect.\" + constants.tickRectClass).data(sliderOpts._visibleSteps);\n var dims = sliderOpts._dims;\n tick.enter().append(\"rect\").classed(constants.tickRectClass, true);\n tick.exit().remove();\n tick.attr({\n width: sliderOpts.tickwidth + \"px\",\n \"shape-rendering\": \"crispEdges\"\n });\n tick.each(function(d, i) {\n var isMajor = i % dims.labelStride === 0;\n var item = d3.select(this);\n item.attr({ height: isMajor ? sliderOpts.ticklen : sliderOpts.minorticklen }).call(Color2.fill, isMajor ? sliderOpts.tickcolor : sliderOpts.tickcolor);\n Drawing.setTranslate(\n item,\n normalizedValueToPosition(sliderOpts, i / (sliderOpts._stepCount - 1)) - 0.5 * sliderOpts.tickwidth,\n (isMajor ? constants.tickOffset : constants.minorTickOffset) + dims.currentValueTotalHeight\n );\n });\n }\n function computeLabelSteps(sliderOpts) {\n var dims = sliderOpts._dims;\n dims.labelSteps = [];\n var nsteps = sliderOpts._stepCount;\n for (var i = 0; i < nsteps; i += dims.labelStride) {\n dims.labelSteps.push({\n fraction: i / (nsteps - 1),\n step: sliderOpts._visibleSteps[i]\n });\n }\n }\n function setGripPosition(sliderGroup, sliderOpts, doTransition) {\n var grip = sliderGroup.select(\"rect.\" + constants.gripRectClass);\n var quantizedIndex = 0;\n for (var i = 0; i < sliderOpts._stepCount; i++) {\n if (sliderOpts._visibleSteps[i]._index === sliderOpts.active) {\n quantizedIndex = i;\n break;\n }\n }\n var x = normalizedValueToPosition(sliderOpts, quantizedIndex / (sliderOpts._stepCount - 1));\n if (sliderOpts._invokingCommand) return;\n var el = grip;\n if (doTransition && sliderOpts.transition.duration > 0) {\n el = el.transition().duration(sliderOpts.transition.duration).ease(sliderOpts.transition.easing);\n }\n el.attr(\"transform\", strTranslate(x - constants.gripWidth * 0.5, sliderOpts._dims.currentValueTotalHeight));\n }\n function normalizedValueToPosition(sliderOpts, normalizedPosition) {\n var dims = sliderOpts._dims;\n return dims.inputAreaStart + constants.stepInset + (dims.inputAreaLength - 2 * constants.stepInset) * Math.min(1, Math.max(0, normalizedPosition));\n }\n function positionToNormalizedValue(sliderOpts, position) {\n var dims = sliderOpts._dims;\n return Math.min(1, Math.max(0, (position - constants.stepInset - dims.inputAreaStart) / (dims.inputAreaLength - 2 * constants.stepInset - 2 * dims.inputAreaStart)));\n }\n function drawTouchRect(sliderGroup, gd, sliderOpts) {\n var dims = sliderOpts._dims;\n var rect = Lib.ensureSingle(sliderGroup, \"rect\", constants.railTouchRectClass, function(s) {\n s.call(attachGripEvents, gd, sliderGroup, sliderOpts).style(\"pointer-events\", \"all\");\n });\n rect.attr({\n width: dims.inputAreaLength,\n height: Math.max(dims.inputAreaWidth, constants.tickOffset + sliderOpts.ticklen + dims.labelHeight)\n }).call(Color2.fill, sliderOpts.bgcolor).attr(\"opacity\", 0);\n Drawing.setTranslate(rect, 0, dims.currentValueTotalHeight);\n }\n function drawRail(sliderGroup, sliderOpts) {\n var dims = sliderOpts._dims;\n var computedLength = dims.inputAreaLength - constants.railInset * 2;\n var rect = Lib.ensureSingle(sliderGroup, \"rect\", constants.railRectClass);\n rect.attr({\n width: computedLength,\n height: constants.railWidth,\n rx: constants.railRadius,\n ry: constants.railRadius,\n \"shape-rendering\": \"crispEdges\"\n }).call(Color2.stroke, sliderOpts.bordercolor).call(Color2.fill, sliderOpts.bgcolor).style(\"stroke-width\", sliderOpts.borderwidth + \"px\");\n Drawing.setTranslate(\n rect,\n constants.railInset,\n (dims.inputAreaWidth - constants.railWidth) * 0.5 + dims.currentValueTotalHeight\n );\n }\n }\n });\n\n // src/components/sliders/index.js\n var require_sliders = __commonJS({\n \"src/components/sliders/index.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants10();\n module.exports = {\n moduleType: \"component\",\n name: constants.name,\n layoutAttributes: require_attributes19(),\n supplyLayoutDefaults: require_defaults15(),\n draw: require_draw8()\n };\n }\n });\n\n // src/components/rangeslider/attributes.js\n var require_attributes20 = __commonJS({\n \"src/components/rangeslider/attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttributes = require_attributes3();\n module.exports = {\n bgcolor: {\n valType: \"color\",\n dflt: colorAttributes.background,\n editType: \"plot\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttributes.defaultLine,\n editType: \"plot\"\n },\n borderwidth: {\n valType: \"integer\",\n dflt: 0,\n min: 0,\n editType: \"plot\"\n },\n autorange: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\",\n impliedEdits: { \"range[0]\": void 0, \"range[1]\": void 0 }\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"calc\", impliedEdits: { \"^autorange\": false } },\n { valType: \"any\", editType: \"calc\", impliedEdits: { \"^autorange\": false } }\n ],\n editType: \"calc\",\n impliedEdits: { autorange: false }\n },\n thickness: {\n valType: \"number\",\n dflt: 0.15,\n min: 0,\n max: 1,\n editType: \"plot\"\n },\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/rangeslider/oppaxis_attributes.js\n var require_oppaxis_attributes = __commonJS({\n \"src/components/rangeslider/oppaxis_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // not really a 'subplot' attribute container,\n // but this is the flag we use to denote attributes that\n // support yaxis, yaxis2, yaxis3, ... counters\n _isSubplotObj: true,\n rangemode: {\n valType: \"enumerated\",\n values: [\"auto\", \"fixed\", \"match\"],\n dflt: \"match\",\n editType: \"calc\"\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"plot\" },\n { valType: \"any\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/rangeslider/constants.js\n var require_constants11 = __commonJS({\n \"src/components/rangeslider/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // attribute container name\n name: \"rangeslider\",\n // class names\n containerClassName: \"rangeslider-container\",\n bgClassName: \"rangeslider-bg\",\n rangePlotClassName: \"rangeslider-rangeplot\",\n maskMinClassName: \"rangeslider-mask-min\",\n maskMaxClassName: \"rangeslider-mask-max\",\n slideBoxClassName: \"rangeslider-slidebox\",\n grabberMinClassName: \"rangeslider-grabber-min\",\n grabAreaMinClassName: \"rangeslider-grabarea-min\",\n handleMinClassName: \"rangeslider-handle-min\",\n grabberMaxClassName: \"rangeslider-grabber-max\",\n grabAreaMaxClassName: \"rangeslider-grabarea-max\",\n handleMaxClassName: \"rangeslider-handle-max\",\n maskMinOppAxisClassName: \"rangeslider-mask-min-opp-axis\",\n maskMaxOppAxisClassName: \"rangeslider-mask-max-opp-axis\",\n // style constants\n maskColor: \"rgba(0,0,0,0.4)\",\n maskOppAxisColor: \"rgba(0,0,0,0.2)\",\n slideBoxFill: \"transparent\",\n slideBoxCursor: \"ew-resize\",\n grabAreaFill: \"transparent\",\n grabAreaCursor: \"col-resize\",\n grabAreaWidth: 10,\n handleWidth: 4,\n handleRadius: 1,\n handleStrokeWidth: 1,\n extraPad: 15\n };\n }\n });\n\n // src/components/rangeslider/helpers.js\n var require_helpers11 = __commonJS({\n \"src/components/rangeslider/helpers.js\"(exports) {\n \"use strict\";\n var axisIDs = require_axis_ids();\n var svgTextUtils = require_svg_text_utils();\n var constants = require_constants11();\n var LINE_SPACING = require_alignment().LINE_SPACING;\n var name2 = constants.name;\n function isVisible(ax) {\n var rangeSlider = ax && ax[name2];\n return rangeSlider && rangeSlider.visible;\n }\n exports.isVisible = isVisible;\n exports.makeData = function(fullLayout) {\n var axes = axisIDs.list({ _fullLayout: fullLayout }, \"x\", true);\n var margin = fullLayout.margin;\n var rangeSliderData = [];\n for (var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n if (isVisible(ax)) {\n rangeSliderData.push(ax);\n var opts = ax[name2];\n opts._id = name2 + ax._id;\n opts._height = (fullLayout.height - margin.b - margin.t) * opts.thickness;\n opts._offsetShift = Math.floor(opts.borderwidth / 2);\n }\n }\n fullLayout._rangeSliderData = rangeSliderData;\n };\n exports.autoMarginOpts = function(gd, ax) {\n var fullLayout = gd._fullLayout;\n var opts = ax[name2];\n var axLetter = ax._id.charAt(0);\n var bottomDepth = 0;\n var titleHeight = 0;\n if (ax.side === \"bottom\") {\n bottomDepth = ax._depth;\n if (ax.title.text !== fullLayout._dfltTitle[axLetter]) {\n titleHeight = 1.5 * ax.title.font.size + 10 + opts._offsetShift;\n var extraLines = (ax.title.text.match(svgTextUtils.BR_TAG_ALL) || []).length;\n titleHeight += extraLines * ax.title.font.size * LINE_SPACING;\n }\n }\n return {\n x: 0,\n y: ax._counterDomainMin,\n l: 0,\n r: 0,\n t: 0,\n b: opts._height + bottomDepth + Math.max(fullLayout.margin.b, titleHeight),\n pad: constants.extraPad + opts._offsetShift * 2\n };\n };\n }\n });\n\n // src/components/rangeslider/defaults.js\n var require_defaults16 = __commonJS({\n \"src/components/rangeslider/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var axisIds = require_axis_ids();\n var attributes = require_attributes20();\n var oppAxisAttrs = require_oppaxis_attributes();\n module.exports = function handleDefaults(layoutIn, layoutOut, axName) {\n var axIn = layoutIn[axName];\n var axOut = layoutOut[axName];\n if (!(axIn.rangeslider || layoutOut._requestRangeslider[axOut._id])) return;\n if (!Lib.isPlainObject(axIn.rangeslider)) {\n axIn.rangeslider = {};\n }\n var containerIn = axIn.rangeslider;\n var containerOut = Template.newContainer(axOut, \"rangeslider\");\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n var rangeContainerIn, rangeContainerOut;\n function coerceRange(attr, dflt) {\n return Lib.coerce(rangeContainerIn, rangeContainerOut, oppAxisAttrs, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (!visible) return;\n coerce(\"bgcolor\", layoutOut.plot_bgcolor);\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n coerce(\"thickness\");\n coerce(\"autorange\", !axOut.isValidRange(containerIn.range));\n coerce(\"range\");\n var subplots = layoutOut._subplots;\n if (subplots) {\n var yIds = subplots.cartesian.filter(function(subplotId) {\n return subplotId.substr(0, subplotId.indexOf(\"y\")) === axisIds.name2id(axName);\n }).map(function(subplotId) {\n return subplotId.substr(subplotId.indexOf(\"y\"), subplotId.length);\n });\n var yNames = Lib.simpleMap(yIds, axisIds.id2name);\n for (var i = 0; i < yNames.length; i++) {\n var yName = yNames[i];\n rangeContainerIn = containerIn[yName] || {};\n rangeContainerOut = Template.newContainer(containerOut, yName, \"yaxis\");\n var yAxOut = layoutOut[yName];\n var rangemodeDflt;\n if (rangeContainerIn.range && yAxOut.isValidRange(rangeContainerIn.range)) {\n rangemodeDflt = \"fixed\";\n }\n var rangeMode = coerceRange(\"rangemode\", rangemodeDflt);\n if (rangeMode !== \"match\") {\n coerceRange(\"range\", yAxOut.range.slice());\n }\n }\n }\n containerOut._input = containerIn;\n };\n }\n });\n\n // src/components/rangeslider/calc_autorange.js\n var require_calc_autorange3 = __commonJS({\n \"src/components/rangeslider/calc_autorange.js\"(exports, module) {\n \"use strict\";\n var listAxes = require_axis_ids().list;\n var getAutoRange = require_autorange().getAutoRange;\n var constants = require_constants11();\n module.exports = function calcAutorange(gd) {\n var axes = listAxes(gd, \"x\", true);\n for (var i = 0; i < axes.length; i++) {\n var ax = axes[i];\n var opts = ax[constants.name];\n if (opts && opts.visible && opts.autorange) {\n opts._input.autorange = true;\n opts._input.range = opts.range = getAutoRange(gd, ax);\n }\n }\n };\n }\n });\n\n // src/components/rangeslider/draw.js\n var require_draw9 = __commonJS({\n \"src/components/rangeslider/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var Color2 = require_color();\n var Titles = require_titles();\n var Cartesian = require_cartesian();\n var axisIDs = require_axis_ids();\n var dragElement = require_dragelement();\n var setCursor = require_setcursor();\n var constants = require_constants11();\n module.exports = function(gd) {\n var fullLayout = gd._fullLayout;\n var rangeSliderData = fullLayout._rangeSliderData;\n for (var i = 0; i < rangeSliderData.length; i++) {\n var opts = rangeSliderData[i][constants.name];\n opts._clipId = opts._id + \"-\" + fullLayout._uid;\n }\n function keyFunction(axisOpts) {\n return axisOpts._name;\n }\n var rangeSliders = fullLayout._infolayer.selectAll(\"g.\" + constants.containerClassName).data(rangeSliderData, keyFunction);\n rangeSliders.exit().each(function(axisOpts) {\n var opts2 = axisOpts[constants.name];\n fullLayout._topdefs.select(\"#\" + opts2._clipId).remove();\n }).remove();\n if (rangeSliderData.length === 0) return;\n rangeSliders.enter().append(\"g\").classed(constants.containerClassName, true).attr(\"pointer-events\", \"all\");\n rangeSliders.each(function(axisOpts) {\n var rangeSlider = d3.select(this);\n var opts2 = axisOpts[constants.name];\n var oppAxisOpts = fullLayout[axisIDs.id2name(axisOpts.anchor)];\n var oppAxisRangeOpts = opts2[axisIDs.id2name(axisOpts.anchor)];\n if (opts2.range) {\n var rng = Lib.simpleMap(opts2.range, axisOpts.r2l);\n var axRng = Lib.simpleMap(axisOpts.range, axisOpts.r2l);\n var newRng;\n if (axRng[0] < axRng[1]) {\n newRng = [\n Math.min(rng[0], axRng[0]),\n Math.max(rng[1], axRng[1])\n ];\n } else {\n newRng = [\n Math.max(rng[0], axRng[0]),\n Math.min(rng[1], axRng[1])\n ];\n }\n opts2.range = opts2._input.range = Lib.simpleMap(newRng, axisOpts.l2r);\n }\n axisOpts.cleanRange(\"rangeslider.range\");\n var gs = fullLayout._size;\n var domain = axisOpts.domain;\n opts2._width = gs.w * (domain[1] - domain[0]);\n var x = Math.round(gs.l + gs.w * domain[0]);\n var y = Math.round(\n gs.t + gs.h * (1 - axisOpts._counterDomainMin) + (axisOpts.side === \"bottom\" ? axisOpts._depth : 0) + opts2._offsetShift + constants.extraPad\n );\n rangeSlider.attr(\"transform\", strTranslate(x, y));\n opts2._rl = Lib.simpleMap(opts2.range, axisOpts.r2l);\n var rl0 = opts2._rl[0];\n var rl1 = opts2._rl[1];\n var drl = rl1 - rl0;\n opts2.p2d = function(v) {\n return v / opts2._width * drl + rl0;\n };\n opts2.d2p = function(v) {\n return (v - rl0) / drl * opts2._width;\n };\n if (axisOpts.rangebreaks) {\n var rsBreaks = axisOpts.locateBreaks(rl0, rl1);\n if (rsBreaks.length) {\n var j, brk;\n var lBreaks = 0;\n for (j = 0; j < rsBreaks.length; j++) {\n brk = rsBreaks[j];\n lBreaks += brk.max - brk.min;\n }\n var m2 = opts2._width / (rl1 - rl0 - lBreaks);\n var _B = [-m2 * rl0];\n for (j = 0; j < rsBreaks.length; j++) {\n brk = rsBreaks[j];\n _B.push(_B[_B.length - 1] - m2 * (brk.max - brk.min));\n }\n opts2.d2p = function(v) {\n var b = _B[0];\n for (var j2 = 0; j2 < rsBreaks.length; j2++) {\n var brk2 = rsBreaks[j2];\n if (v >= brk2.max) b = _B[j2 + 1];\n else if (v < brk2.min) break;\n }\n return b + m2 * v;\n };\n for (j = 0; j < rsBreaks.length; j++) {\n brk = rsBreaks[j];\n brk.pmin = opts2.d2p(brk.min);\n brk.pmax = opts2.d2p(brk.max);\n }\n opts2.p2d = function(v) {\n var b = _B[0];\n for (var j2 = 0; j2 < rsBreaks.length; j2++) {\n var brk2 = rsBreaks[j2];\n if (v >= brk2.pmax) b = _B[j2 + 1];\n else if (v < brk2.pmin) break;\n }\n return (v - b) / m2;\n };\n }\n }\n if (oppAxisRangeOpts.rangemode !== \"match\") {\n var range0OppAxis = oppAxisOpts.r2l(oppAxisRangeOpts.range[0]);\n var range1OppAxis = oppAxisOpts.r2l(oppAxisRangeOpts.range[1]);\n var distOppAxis = range1OppAxis - range0OppAxis;\n opts2.d2pOppAxis = function(v) {\n return (v - range0OppAxis) / distOppAxis * opts2._height;\n };\n }\n rangeSlider.call(drawBg, gd, axisOpts, opts2).call(addClipPath, gd, axisOpts, opts2).call(drawRangePlot, gd, axisOpts, opts2).call(drawMasks, gd, axisOpts, opts2, oppAxisRangeOpts).call(drawSlideBox, gd, axisOpts, opts2).call(drawGrabbers, gd, axisOpts, opts2);\n setupDragElement(rangeSlider, gd, axisOpts, opts2);\n setPixelRange(rangeSlider, gd, axisOpts, opts2, oppAxisOpts, oppAxisRangeOpts);\n if (axisOpts.side === \"bottom\") {\n Titles.draw(gd, axisOpts._id + \"title\", {\n propContainer: axisOpts,\n propName: axisOpts._name + \".title\",\n placeholder: fullLayout._dfltTitle.x,\n attributes: {\n x: axisOpts._offset + axisOpts._length / 2,\n y: y + opts2._height + opts2._offsetShift + 10 + 1.5 * axisOpts.title.font.size,\n \"text-anchor\": \"middle\"\n }\n });\n }\n });\n };\n function eventX(event) {\n if (typeof event.clientX === \"number\") {\n return event.clientX;\n }\n if (event.touches && event.touches.length > 0) {\n return event.touches[0].clientX;\n }\n return 0;\n }\n function setupDragElement(rangeSlider, gd, axisOpts, opts) {\n if (gd._context.staticPlot) return;\n var slideBox = rangeSlider.select(\"rect.\" + constants.slideBoxClassName).node();\n var grabAreaMin = rangeSlider.select(\"rect.\" + constants.grabAreaMinClassName).node();\n var grabAreaMax = rangeSlider.select(\"rect.\" + constants.grabAreaMaxClassName).node();\n function mouseDownHandler() {\n var event = d3.event;\n var target = event.target;\n var startX = eventX(event);\n var offsetX = startX - rangeSlider.node().getBoundingClientRect().left;\n var minVal = opts.d2p(axisOpts._rl[0]);\n var maxVal = opts.d2p(axisOpts._rl[1]);\n var dragCover = dragElement.coverSlip();\n this.addEventListener(\"touchmove\", mouseMove);\n this.addEventListener(\"touchend\", mouseUp);\n dragCover.addEventListener(\"mousemove\", mouseMove);\n dragCover.addEventListener(\"mouseup\", mouseUp);\n function mouseMove(e) {\n var clientX = eventX(e);\n var delta = +clientX - startX;\n var pixelMin, pixelMax, cursor;\n switch (target) {\n case slideBox:\n cursor = \"ew-resize\";\n if (minVal + delta > axisOpts._length || maxVal + delta < 0) {\n return;\n }\n pixelMin = minVal + delta;\n pixelMax = maxVal + delta;\n break;\n case grabAreaMin:\n cursor = \"col-resize\";\n if (minVal + delta > axisOpts._length) {\n return;\n }\n pixelMin = minVal + delta;\n pixelMax = maxVal;\n break;\n case grabAreaMax:\n cursor = \"col-resize\";\n if (maxVal + delta < 0) {\n return;\n }\n pixelMin = minVal;\n pixelMax = maxVal + delta;\n break;\n default:\n cursor = \"ew-resize\";\n pixelMin = offsetX;\n pixelMax = offsetX + delta;\n break;\n }\n if (pixelMax < pixelMin) {\n var tmp = pixelMax;\n pixelMax = pixelMin;\n pixelMin = tmp;\n }\n opts._pixelMin = pixelMin;\n opts._pixelMax = pixelMax;\n setCursor(d3.select(dragCover), cursor);\n setDataRange(rangeSlider, gd, axisOpts, opts);\n }\n function mouseUp() {\n dragCover.removeEventListener(\"mousemove\", mouseMove);\n dragCover.removeEventListener(\"mouseup\", mouseUp);\n this.removeEventListener(\"touchmove\", mouseMove);\n this.removeEventListener(\"touchend\", mouseUp);\n Lib.removeElement(dragCover);\n }\n }\n rangeSlider.on(\"mousedown\", mouseDownHandler);\n rangeSlider.on(\"touchstart\", mouseDownHandler);\n }\n function setDataRange(rangeSlider, gd, axisOpts, opts) {\n function clamp(v) {\n return axisOpts.l2r(Lib.constrain(v, opts._rl[0], opts._rl[1]));\n }\n var dataMin = clamp(opts.p2d(opts._pixelMin));\n var dataMax = clamp(opts.p2d(opts._pixelMax));\n window.requestAnimationFrame(function() {\n Registry.call(\"_guiRelayout\", gd, axisOpts._name + \".range\", [dataMin, dataMax]);\n });\n }\n function setPixelRange(rangeSlider, gd, axisOpts, opts, oppAxisOpts, oppAxisRangeOpts) {\n var hw2 = constants.handleWidth / 2;\n function clamp(v) {\n return Lib.constrain(v, 0, opts._width);\n }\n function clampOppAxis(v) {\n return Lib.constrain(v, 0, opts._height);\n }\n function clampHandle(v) {\n return Lib.constrain(v, -hw2, opts._width + hw2);\n }\n var pixelMin = clamp(opts.d2p(axisOpts._rl[0]));\n var pixelMax = clamp(opts.d2p(axisOpts._rl[1]));\n rangeSlider.select(\"rect.\" + constants.slideBoxClassName).attr(\"x\", pixelMin).attr(\"width\", pixelMax - pixelMin);\n rangeSlider.select(\"rect.\" + constants.maskMinClassName).attr(\"width\", pixelMin);\n rangeSlider.select(\"rect.\" + constants.maskMaxClassName).attr(\"x\", pixelMax).attr(\"width\", opts._width - pixelMax);\n if (oppAxisRangeOpts.rangemode !== \"match\") {\n var pixelMinOppAxis = opts._height - clampOppAxis(opts.d2pOppAxis(oppAxisOpts._rl[1]));\n var pixelMaxOppAxis = opts._height - clampOppAxis(opts.d2pOppAxis(oppAxisOpts._rl[0]));\n rangeSlider.select(\"rect.\" + constants.maskMinOppAxisClassName).attr(\"x\", pixelMin).attr(\"height\", pixelMinOppAxis).attr(\"width\", pixelMax - pixelMin);\n rangeSlider.select(\"rect.\" + constants.maskMaxOppAxisClassName).attr(\"x\", pixelMin).attr(\"y\", pixelMaxOppAxis).attr(\"height\", opts._height - pixelMaxOppAxis).attr(\"width\", pixelMax - pixelMin);\n rangeSlider.select(\"rect.\" + constants.slideBoxClassName).attr(\"y\", pixelMinOppAxis).attr(\"height\", pixelMaxOppAxis - pixelMinOppAxis);\n }\n var offset = 0.5;\n var xMin = Math.round(clampHandle(pixelMin - hw2)) - offset;\n var xMax = Math.round(clampHandle(pixelMax - hw2)) + offset;\n rangeSlider.select(\"g.\" + constants.grabberMinClassName).attr(\"transform\", strTranslate(xMin, offset));\n rangeSlider.select(\"g.\" + constants.grabberMaxClassName).attr(\"transform\", strTranslate(xMax, offset));\n }\n function drawBg(rangeSlider, gd, axisOpts, opts) {\n var bg = Lib.ensureSingle(rangeSlider, \"rect\", constants.bgClassName, function(s) {\n s.attr({\n x: 0,\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n var borderCorrect = opts.borderwidth % 2 === 0 ? opts.borderwidth : opts.borderwidth - 1;\n var offsetShift = -opts._offsetShift;\n var lw = Drawing.crispRound(gd, opts.borderwidth);\n bg.attr({\n width: opts._width + borderCorrect,\n height: opts._height + borderCorrect,\n transform: strTranslate(offsetShift, offsetShift),\n \"stroke-width\": lw\n }).call(Color2.stroke, opts.bordercolor).call(Color2.fill, opts.bgcolor);\n }\n function addClipPath(rangeSlider, gd, axisOpts, opts) {\n var fullLayout = gd._fullLayout;\n var clipPath = Lib.ensureSingleById(fullLayout._topdefs, \"clipPath\", opts._clipId, function(s) {\n s.append(\"rect\").attr({ x: 0, y: 0 });\n });\n clipPath.select(\"rect\").attr({\n width: opts._width,\n height: opts._height\n });\n }\n function drawRangePlot(rangeSlider, gd, axisOpts, opts) {\n var calcData = gd.calcdata;\n var rangePlots = rangeSlider.selectAll(\"g.\" + constants.rangePlotClassName).data(axisOpts._subplotsWith, Lib.identity);\n rangePlots.enter().append(\"g\").attr(\"class\", function(id) {\n return constants.rangePlotClassName + \" \" + id;\n }).call(Drawing.setClipUrl, opts._clipId, gd);\n rangePlots.order();\n rangePlots.exit().remove();\n var mainplotinfo;\n rangePlots.each(function(id, i) {\n var plotgroup = d3.select(this);\n var isMainPlot = i === 0;\n var oppAxisOpts = axisIDs.getFromId(gd, id, \"y\");\n var oppAxisName = oppAxisOpts._name;\n var oppAxisRangeOpts = opts[oppAxisName];\n var mockFigure = {\n data: [],\n layout: {\n xaxis: {\n type: axisOpts.type,\n domain: [0, 1],\n range: opts.range.slice(),\n calendar: axisOpts.calendar\n },\n width: opts._width,\n height: opts._height,\n margin: { t: 0, b: 0, l: 0, r: 0 }\n },\n _context: gd._context\n };\n if (axisOpts.rangebreaks) {\n mockFigure.layout.xaxis.rangebreaks = axisOpts.rangebreaks;\n }\n mockFigure.layout[oppAxisName] = {\n type: oppAxisOpts.type,\n domain: [0, 1],\n range: oppAxisRangeOpts.rangemode !== \"match\" ? oppAxisRangeOpts.range.slice() : oppAxisOpts.range.slice(),\n calendar: oppAxisOpts.calendar\n };\n if (oppAxisOpts.rangebreaks) {\n mockFigure.layout[oppAxisName].rangebreaks = oppAxisOpts.rangebreaks;\n }\n Plots.supplyDefaults(mockFigure);\n var xa = mockFigure._fullLayout.xaxis;\n var ya = mockFigure._fullLayout[oppAxisName];\n xa.clearCalc();\n xa.setScale();\n ya.clearCalc();\n ya.setScale();\n var plotinfo = {\n id,\n plotgroup,\n xaxis: xa,\n yaxis: ya,\n isRangePlot: true\n };\n if (isMainPlot) mainplotinfo = plotinfo;\n else {\n plotinfo.mainplot = \"xy\";\n plotinfo.mainplotinfo = mainplotinfo;\n }\n Cartesian.rangePlot(gd, plotinfo, filterRangePlotCalcData(calcData, id));\n });\n }\n function filterRangePlotCalcData(calcData, subplotId) {\n var out = [];\n for (var i = 0; i < calcData.length; i++) {\n var calcTrace = calcData[i];\n var trace = calcTrace[0].trace;\n if (trace.xaxis + trace.yaxis === subplotId) {\n out.push(calcTrace);\n }\n }\n return out;\n }\n function drawMasks(rangeSlider, gd, axisOpts, opts, oppAxisRangeOpts) {\n var maskMin = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMinClassName, function(s) {\n s.attr({\n x: 0,\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMin.attr(\"height\", opts._height).call(Color2.fill, constants.maskColor);\n var maskMax = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMaxClassName, function(s) {\n s.attr({\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMax.attr(\"height\", opts._height).call(Color2.fill, constants.maskColor);\n if (oppAxisRangeOpts.rangemode !== \"match\") {\n var maskMinOppAxis = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMinOppAxisClassName, function(s) {\n s.attr({\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMinOppAxis.attr(\"width\", opts._width).call(Color2.fill, constants.maskOppAxisColor);\n var maskMaxOppAxis = Lib.ensureSingle(rangeSlider, \"rect\", constants.maskMaxOppAxisClassName, function(s) {\n s.attr({\n y: 0,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n maskMaxOppAxis.attr(\"width\", opts._width).style(\"border-top\", constants.maskOppBorder).call(Color2.fill, constants.maskOppAxisColor);\n }\n }\n function drawSlideBox(rangeSlider, gd, axisOpts, opts) {\n if (gd._context.staticPlot) return;\n var slideBox = Lib.ensureSingle(rangeSlider, \"rect\", constants.slideBoxClassName, function(s) {\n s.attr({\n y: 0,\n cursor: constants.slideBoxCursor,\n \"shape-rendering\": \"crispEdges\"\n });\n });\n slideBox.attr({\n height: opts._height,\n fill: constants.slideBoxFill\n });\n }\n function drawGrabbers(rangeSlider, gd, axisOpts, opts) {\n var grabberMin = Lib.ensureSingle(rangeSlider, \"g\", constants.grabberMinClassName);\n var grabberMax = Lib.ensureSingle(rangeSlider, \"g\", constants.grabberMaxClassName);\n var handleFixAttrs = {\n x: 0,\n width: constants.handleWidth,\n rx: constants.handleRadius,\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": constants.handleStrokeWidth,\n \"shape-rendering\": \"crispEdges\"\n };\n var handleDynamicAttrs = {\n y: Math.round(opts._height / 4),\n height: Math.round(opts._height / 2)\n };\n var handleMin = Lib.ensureSingle(grabberMin, \"rect\", constants.handleMinClassName, function(s) {\n s.attr(handleFixAttrs);\n });\n handleMin.attr(handleDynamicAttrs);\n var handleMax = Lib.ensureSingle(grabberMax, \"rect\", constants.handleMaxClassName, function(s) {\n s.attr(handleFixAttrs);\n });\n handleMax.attr(handleDynamicAttrs);\n var grabAreaFixAttrs = {\n width: constants.grabAreaWidth,\n x: 0,\n y: 0,\n fill: constants.grabAreaFill,\n cursor: !gd._context.staticPlot ? constants.grabAreaCursor : void 0\n };\n var grabAreaMin = Lib.ensureSingle(grabberMin, \"rect\", constants.grabAreaMinClassName, function(s) {\n s.attr(grabAreaFixAttrs);\n });\n grabAreaMin.attr(\"height\", opts._height);\n var grabAreaMax = Lib.ensureSingle(grabberMax, \"rect\", constants.grabAreaMaxClassName, function(s) {\n s.attr(grabAreaFixAttrs);\n });\n grabAreaMax.attr(\"height\", opts._height);\n }\n }\n });\n\n // src/components/rangeslider/index.js\n var require_rangeslider = __commonJS({\n \"src/components/rangeslider/index.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attrs = require_attributes20();\n var oppAxisAttrs = require_oppaxis_attributes();\n var helpers = require_helpers11();\n module.exports = {\n moduleType: \"component\",\n name: \"rangeslider\",\n schema: {\n subplots: {\n xaxis: {\n rangeslider: Lib.extendFlat({}, attrs, {\n yaxis: oppAxisAttrs\n })\n }\n }\n },\n layoutAttributes: require_attributes20(),\n handleDefaults: require_defaults16(),\n calcAutorange: require_calc_autorange3(),\n draw: require_draw9(),\n isVisible: helpers.isVisible,\n makeData: helpers.makeData,\n autoMarginOpts: helpers.autoMarginOpts\n };\n }\n });\n\n // src/components/rangeselector/attributes.js\n var require_attributes21 = __commonJS({\n \"src/components/rangeselector/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var templatedArray = require_plot_template().templatedArray;\n var buttonAttrs = templatedArray(\"button\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n step: {\n valType: \"enumerated\",\n values: [\"month\", \"year\", \"day\", \"hour\", \"minute\", \"second\", \"all\"],\n dflt: \"month\",\n editType: \"plot\"\n },\n stepmode: {\n valType: \"enumerated\",\n values: [\"backward\", \"todate\"],\n dflt: \"backward\",\n editType: \"plot\"\n },\n count: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n label: {\n valType: \"string\",\n editType: \"plot\"\n },\n editType: \"plot\"\n });\n module.exports = {\n visible: {\n valType: \"boolean\",\n editType: \"plot\"\n },\n buttons: buttonAttrs,\n x: {\n valType: \"number\",\n min: -2,\n max: 3,\n editType: \"plot\"\n },\n xanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"left\", \"center\", \"right\"],\n dflt: \"left\",\n editType: \"plot\"\n },\n y: {\n valType: \"number\",\n min: -2,\n max: 3,\n editType: \"plot\"\n },\n yanchor: {\n valType: \"enumerated\",\n values: [\"auto\", \"top\", \"middle\", \"bottom\"],\n dflt: \"bottom\",\n editType: \"plot\"\n },\n font: fontAttrs({\n editType: \"plot\"\n }),\n bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.lightLine,\n editType: \"plot\"\n },\n activecolor: {\n valType: \"color\",\n editType: \"plot\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"plot\"\n };\n }\n });\n\n // src/components/rangeselector/constants.js\n var require_constants12 = __commonJS({\n \"src/components/rangeselector/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // 'y' position pad above counter axis domain\n yPad: 0.02,\n // minimum button width (regardless of text size)\n minButtonWidth: 30,\n // buttons rect radii\n rx: 3,\n ry: 3,\n // light fraction used to compute the 'activecolor' default\n lightAmount: 25,\n darkAmount: 10\n };\n }\n });\n\n // src/components/rangeselector/defaults.js\n var require_defaults17 = __commonJS({\n \"src/components/rangeselector/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes21();\n var constants = require_constants12();\n module.exports = function handleDefaults(containerIn, containerOut, layout, counterAxes, calendar) {\n var selectorIn = containerIn.rangeselector || {};\n var selectorOut = Template.newContainer(containerOut, \"rangeselector\");\n function coerce(attr, dflt) {\n return Lib.coerce(selectorIn, selectorOut, attributes, attr, dflt);\n }\n var buttons = handleArrayContainerDefaults(selectorIn, selectorOut, {\n name: \"buttons\",\n handleItemDefaults: buttonDefaults,\n calendar\n });\n var visible = coerce(\"visible\", buttons.length > 0);\n if (visible) {\n var posDflt = getPosDflt(containerOut, layout, counterAxes);\n coerce(\"x\", posDflt[0]);\n coerce(\"y\", posDflt[1]);\n Lib.noneOrAll(containerIn, containerOut, [\"x\", \"y\"]);\n coerce(\"xanchor\");\n coerce(\"yanchor\");\n Lib.coerceFont(coerce, \"font\", layout.font);\n var bgColor = coerce(\"bgcolor\");\n coerce(\"activecolor\", Color2.contrast(bgColor, constants.lightAmount, constants.darkAmount));\n coerce(\"bordercolor\");\n coerce(\"borderwidth\");\n }\n };\n function buttonDefaults(buttonIn, buttonOut, selectorOut, opts) {\n var calendar = opts.calendar;\n function coerce(attr, dflt) {\n return Lib.coerce(buttonIn, buttonOut, attributes.buttons, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (visible) {\n var step = coerce(\"step\");\n if (step !== \"all\") {\n if (calendar && calendar !== \"gregorian\" && (step === \"month\" || step === \"year\")) {\n buttonOut.stepmode = \"backward\";\n } else {\n coerce(\"stepmode\");\n }\n coerce(\"count\");\n }\n coerce(\"label\");\n }\n }\n function getPosDflt(containerOut, layout, counterAxes) {\n var anchoredList = counterAxes.filter(function(ax) {\n return layout[ax].anchor === containerOut._id;\n });\n var posY = 0;\n for (var i = 0; i < anchoredList.length; i++) {\n var domain = layout[anchoredList[i]].domain;\n if (domain) posY = Math.max(domain[1], posY);\n }\n return [containerOut.domain[0], posY + constants.yPad];\n }\n }\n });\n\n // src/components/rangeselector/get_update_object.js\n var require_get_update_object = __commonJS({\n \"src/components/rangeselector/get_update_object.js\"(exports, module) {\n \"use strict\";\n var d3Time = require_d3_time();\n var titleCase = require_lib().titleCase;\n module.exports = function getUpdateObject(axisLayout, buttonLayout) {\n var axName = axisLayout._name;\n var update = {};\n if (buttonLayout.step === \"all\") {\n update[axName + \".autorange\"] = true;\n } else {\n var xrange = getXRange(axisLayout, buttonLayout);\n update[axName + \".range[0]\"] = xrange[0];\n update[axName + \".range[1]\"] = xrange[1];\n }\n return update;\n };\n function getXRange(axisLayout, buttonLayout) {\n var currentRange = axisLayout.range;\n var base = new Date(axisLayout.r2l(currentRange[1]));\n var step = buttonLayout.step;\n var utcStep = d3Time[\"utc\" + titleCase(step)];\n var count = buttonLayout.count;\n var range0;\n switch (buttonLayout.stepmode) {\n case \"backward\":\n range0 = axisLayout.l2r(+utcStep.offset(base, -count));\n break;\n case \"todate\":\n var base2 = utcStep.offset(base, -count);\n range0 = axisLayout.l2r(+utcStep.ceil(base2));\n break;\n }\n var range1 = currentRange[1];\n return [range0, range1];\n }\n }\n });\n\n // src/components/rangeselector/draw.js\n var require_draw10 = __commonJS({\n \"src/components/rangeselector/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var Plots = require_plots();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var axisIds = require_axis_ids();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n var constants = require_constants12();\n var getUpdateObject = require_get_update_object();\n module.exports = function draw(gd) {\n var fullLayout = gd._fullLayout;\n var selectors = fullLayout._infolayer.selectAll(\".rangeselector\").data(makeSelectorData(gd), selectorKeyFunc);\n selectors.enter().append(\"g\").classed(\"rangeselector\", true);\n selectors.exit().remove();\n selectors.style({\n cursor: \"pointer\",\n \"pointer-events\": \"all\"\n });\n selectors.each(function(d) {\n var selector = d3.select(this);\n var axisLayout = d;\n var selectorLayout = axisLayout.rangeselector;\n var buttons = selector.selectAll(\"g.button\").data(Lib.filterVisible(selectorLayout.buttons));\n buttons.enter().append(\"g\").classed(\"button\", true);\n buttons.exit().remove();\n buttons.each(function(d2) {\n var button = d3.select(this);\n var update = getUpdateObject(axisLayout, d2);\n d2._isActive = isActive(axisLayout, d2, update);\n button.call(drawButtonRect, selectorLayout, d2);\n button.call(drawButtonText, selectorLayout, d2, gd);\n button.on(\"click\", function() {\n if (gd._dragged) return;\n Registry.call(\"_guiRelayout\", gd, update);\n });\n button.on(\"mouseover\", function() {\n d2._isHovered = true;\n button.call(drawButtonRect, selectorLayout, d2);\n });\n button.on(\"mouseout\", function() {\n d2._isHovered = false;\n button.call(drawButtonRect, selectorLayout, d2);\n });\n });\n reposition(gd, buttons, selectorLayout, axisLayout._name, selector);\n });\n };\n function makeSelectorData(gd) {\n var axes = axisIds.list(gd, \"x\", true);\n var data = [];\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i];\n if (axis.rangeselector && axis.rangeselector.visible) {\n data.push(axis);\n }\n }\n return data;\n }\n function selectorKeyFunc(d) {\n return d._id;\n }\n function isActive(axisLayout, opts, update) {\n if (opts.step === \"all\") {\n return axisLayout.autorange === true;\n } else {\n var keys = Object.keys(update);\n return axisLayout.range[0] === update[keys[0]] && axisLayout.range[1] === update[keys[1]];\n }\n }\n function drawButtonRect(button, selectorLayout, d) {\n var rect = Lib.ensureSingle(button, \"rect\", \"selector-rect\", function(s) {\n s.attr(\"shape-rendering\", \"crispEdges\");\n });\n rect.attr({\n rx: constants.rx,\n ry: constants.ry\n });\n rect.call(Color2.stroke, selectorLayout.bordercolor).call(Color2.fill, getFillColor(selectorLayout, d)).style(\"stroke-width\", selectorLayout.borderwidth + \"px\");\n }\n function getFillColor(selectorLayout, d) {\n return d._isActive || d._isHovered ? selectorLayout.activecolor : selectorLayout.bgcolor;\n }\n function drawButtonText(button, selectorLayout, d, gd) {\n function textLayout(s) {\n svgTextUtils.convertToTspans(s, gd);\n }\n var text = Lib.ensureSingle(button, \"text\", \"selector-text\", function(s) {\n s.attr(\"text-anchor\", \"middle\");\n });\n text.call(Drawing.font, selectorLayout.font).text(getLabel(d, gd._fullLayout._meta)).call(textLayout);\n }\n function getLabel(opts, _meta) {\n if (opts.label) {\n return _meta ? Lib.templateString(opts.label, _meta) : opts.label;\n }\n if (opts.step === \"all\") return \"all\";\n return opts.count + opts.step.charAt(0);\n }\n function reposition(gd, buttons, opts, axName, selector) {\n var width = 0;\n var height = 0;\n var borderWidth = opts.borderwidth;\n buttons.each(function() {\n var button = d3.select(this);\n var text = button.select(\".selector-text\");\n var tHeight = opts.font.size * LINE_SPACING;\n var hEff = Math.max(tHeight * svgTextUtils.lineCount(text), 16) + 3;\n height = Math.max(height, hEff);\n });\n buttons.each(function() {\n var button = d3.select(this);\n var rect = button.select(\".selector-rect\");\n var text = button.select(\".selector-text\");\n var tWidth = text.node() && Drawing.bBox(text.node()).width;\n var tHeight = opts.font.size * LINE_SPACING;\n var tLines = svgTextUtils.lineCount(text);\n var wEff = Math.max(tWidth + 10, constants.minButtonWidth);\n button.attr(\"transform\", strTranslate(borderWidth + width, borderWidth));\n rect.attr({\n x: 0,\n y: 0,\n width: wEff,\n height\n });\n svgTextUtils.positionText(\n text,\n wEff / 2,\n height / 2 - (tLines - 1) * tHeight / 2 + 3\n );\n width += wEff + 5;\n });\n var graphSize = gd._fullLayout._size;\n var lx = graphSize.l + graphSize.w * opts.x;\n var ly = graphSize.t + graphSize.h * (1 - opts.y);\n var xanchor = \"left\";\n if (Lib.isRightAnchor(opts)) {\n lx -= width;\n xanchor = \"right\";\n }\n if (Lib.isCenterAnchor(opts)) {\n lx -= width / 2;\n xanchor = \"center\";\n }\n var yanchor = \"top\";\n if (Lib.isBottomAnchor(opts)) {\n ly -= height;\n yanchor = \"bottom\";\n }\n if (Lib.isMiddleAnchor(opts)) {\n ly -= height / 2;\n yanchor = \"middle\";\n }\n width = Math.ceil(width);\n height = Math.ceil(height);\n lx = Math.round(lx);\n ly = Math.round(ly);\n Plots.autoMargin(gd, axName + \"-range-selector\", {\n x: opts.x,\n y: opts.y,\n l: width * FROM_TL[xanchor],\n r: width * FROM_BR[xanchor],\n b: height * FROM_BR[yanchor],\n t: height * FROM_TL[yanchor]\n });\n selector.attr(\"transform\", strTranslate(lx, ly));\n }\n }\n });\n\n // src/components/rangeselector/index.js\n var require_rangeselector = __commonJS({\n \"src/components/rangeselector/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"rangeselector\",\n schema: {\n subplots: {\n xaxis: { rangeselector: require_attributes21() }\n }\n },\n layoutAttributes: require_attributes21(),\n handleDefaults: require_defaults17(),\n draw: require_draw10()\n };\n }\n });\n\n // src/plots/domain.js\n var require_domain = __commonJS({\n \"src/plots/domain.js\"(exports) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n exports.attributes = function(opts, extra) {\n opts = opts || {};\n extra = extra || {};\n var base = {\n valType: \"info_array\",\n editType: opts.editType,\n items: [\n { valType: \"number\", min: 0, max: 1, editType: opts.editType },\n { valType: \"number\", min: 0, max: 1, editType: opts.editType }\n ],\n dflt: [0, 1]\n };\n var namePart = opts.name ? opts.name + \" \" : \"\";\n var contPart = opts.trace ? \"trace \" : \"subplot \";\n var descPart = extra.description ? \" \" + extra.description : \"\";\n var out = {\n x: extendFlat({}, base, {}),\n y: extendFlat({}, base, {}),\n editType: opts.editType\n };\n if (!opts.noGridCell) {\n out.row = {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: opts.editType\n };\n out.column = {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: opts.editType\n };\n }\n return out;\n };\n exports.defaults = function(containerOut, layout, coerce, dfltDomains) {\n var dfltX = dfltDomains && dfltDomains.x || [0, 1];\n var dfltY = dfltDomains && dfltDomains.y || [0, 1];\n var grid = layout.grid;\n if (grid) {\n var column = coerce(\"domain.column\");\n if (column !== void 0) {\n if (column < grid.columns) dfltX = grid._domains.x[column];\n else delete containerOut.domain.column;\n }\n var row = coerce(\"domain.row\");\n if (row !== void 0) {\n if (row < grid.rows) dfltY = grid._domains.y[row];\n else delete containerOut.domain.row;\n }\n }\n var x = coerce(\"domain.x\", dfltX);\n var y = coerce(\"domain.y\", dfltY);\n if (!(x[0] < x[1])) containerOut.domain.x = dfltX.slice();\n if (!(y[0] < y[1])) containerOut.domain.y = dfltY.slice();\n };\n }\n });\n\n // src/components/grid/index.js\n var require_grid = __commonJS({\n \"src/components/grid/index.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var counterRegex = require_regex().counter;\n var domainAttrs = require_domain().attributes;\n var cartesianIdRegex = require_constants2().idRegex;\n var Template = require_plot_template();\n var gridAttrs = {\n rows: {\n valType: \"integer\",\n min: 1,\n editType: \"plot\"\n },\n roworder: {\n valType: \"enumerated\",\n values: [\"top to bottom\", \"bottom to top\"],\n dflt: \"top to bottom\",\n editType: \"plot\"\n },\n columns: {\n valType: \"integer\",\n min: 1,\n editType: \"plot\"\n },\n subplots: {\n valType: \"info_array\",\n freeLength: true,\n dimensions: 2,\n items: { valType: \"enumerated\", values: [counterRegex(\"xy\").toString(), \"\"], editType: \"plot\" },\n editType: \"plot\"\n },\n xaxes: {\n valType: \"info_array\",\n freeLength: true,\n items: { valType: \"enumerated\", values: [cartesianIdRegex.x.toString(), \"\"], editType: \"plot\" },\n editType: \"plot\"\n },\n yaxes: {\n valType: \"info_array\",\n freeLength: true,\n items: { valType: \"enumerated\", values: [cartesianIdRegex.y.toString(), \"\"], editType: \"plot\" },\n editType: \"plot\"\n },\n pattern: {\n valType: \"enumerated\",\n values: [\"independent\", \"coupled\"],\n dflt: \"coupled\",\n editType: \"plot\"\n },\n xgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"plot\"\n },\n ygap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"plot\"\n },\n domain: domainAttrs({ name: \"grid\", editType: \"plot\", noGridCell: true }, {}),\n xside: {\n valType: \"enumerated\",\n values: [\"bottom\", \"bottom plot\", \"top plot\", \"top\"],\n dflt: \"bottom plot\",\n editType: \"plot\"\n },\n yside: {\n valType: \"enumerated\",\n values: [\"left\", \"left plot\", \"right plot\", \"right\"],\n dflt: \"left plot\",\n editType: \"plot\"\n },\n editType: \"plot\"\n };\n function getAxes(layout, grid, axLetter) {\n var gridVal = grid[axLetter + \"axes\"];\n var splomVal = Object.keys((layout._splomAxes || {})[axLetter] || {});\n if (Array.isArray(gridVal)) return gridVal;\n if (splomVal.length) return splomVal;\n }\n function sizeDefaults(layoutIn, layoutOut) {\n var gridIn = layoutIn.grid || {};\n var xAxes = getAxes(layoutOut, gridIn, \"x\");\n var yAxes = getAxes(layoutOut, gridIn, \"y\");\n if (!layoutIn.grid && !xAxes && !yAxes) return;\n var hasSubplotGrid = Array.isArray(gridIn.subplots) && Array.isArray(gridIn.subplots[0]);\n var hasXaxes = Array.isArray(xAxes);\n var hasYaxes = Array.isArray(yAxes);\n var isSplomGenerated = hasXaxes && xAxes !== gridIn.xaxes && hasYaxes && yAxes !== gridIn.yaxes;\n var dfltRows, dfltColumns;\n if (hasSubplotGrid) {\n dfltRows = gridIn.subplots.length;\n dfltColumns = gridIn.subplots[0].length;\n } else {\n if (hasYaxes) dfltRows = yAxes.length;\n if (hasXaxes) dfltColumns = xAxes.length;\n }\n var gridOut = Template.newContainer(layoutOut, \"grid\");\n function coerce(attr, dflt) {\n return Lib.coerce(gridIn, gridOut, gridAttrs, attr, dflt);\n }\n var rows = coerce(\"rows\", dfltRows);\n var columns = coerce(\"columns\", dfltColumns);\n if (!(rows * columns > 1)) {\n delete layoutOut.grid;\n return;\n }\n if (!hasSubplotGrid && !hasXaxes && !hasYaxes) {\n var useDefaultSubplots = coerce(\"pattern\") === \"independent\";\n if (useDefaultSubplots) hasSubplotGrid = true;\n }\n gridOut._hasSubplotGrid = hasSubplotGrid;\n var rowOrder = coerce(\"roworder\");\n var reversed = rowOrder === \"top to bottom\";\n var dfltGapX = hasSubplotGrid ? 0.2 : 0.1;\n var dfltGapY = hasSubplotGrid ? 0.3 : 0.1;\n var dfltSideX, dfltSideY;\n if (isSplomGenerated && layoutOut._splomGridDflt) {\n dfltSideX = layoutOut._splomGridDflt.xside;\n dfltSideY = layoutOut._splomGridDflt.yside;\n }\n gridOut._domains = {\n x: fillGridPositions(\"x\", coerce, dfltGapX, dfltSideX, columns),\n y: fillGridPositions(\"y\", coerce, dfltGapY, dfltSideY, rows, reversed)\n };\n }\n function fillGridPositions(axLetter, coerce, dfltGap, dfltSide, len, reversed) {\n var dirGap = coerce(axLetter + \"gap\", dfltGap);\n var domain = coerce(\"domain.\" + axLetter);\n coerce(axLetter + \"side\", dfltSide);\n var out = new Array(len);\n var start = domain[0];\n var step = (domain[1] - start) / (len - dirGap);\n var cellDomain = step * (1 - dirGap);\n for (var i = 0; i < len; i++) {\n var cellStart = start + step * i;\n out[reversed ? len - 1 - i : i] = [cellStart, cellStart + cellDomain];\n }\n return out;\n }\n function contentDefaults(layoutIn, layoutOut) {\n var gridOut = layoutOut.grid;\n if (!gridOut || !gridOut._domains) return;\n var gridIn = layoutIn.grid || {};\n var subplots = layoutOut._subplots;\n var hasSubplotGrid = gridOut._hasSubplotGrid;\n var rows = gridOut.rows;\n var columns = gridOut.columns;\n var useDefaultSubplots = gridOut.pattern === \"independent\";\n var i, j, xId, yId, subplotId, subplotsOut, yPos;\n var axisMap = gridOut._axisMap = {};\n if (hasSubplotGrid) {\n var subplotsIn = gridIn.subplots || [];\n subplotsOut = gridOut.subplots = new Array(rows);\n var index = 1;\n for (i = 0; i < rows; i++) {\n var rowOut = subplotsOut[i] = new Array(columns);\n var rowIn = subplotsIn[i] || [];\n for (j = 0; j < columns; j++) {\n if (useDefaultSubplots) {\n subplotId = index === 1 ? \"xy\" : \"x\" + index + \"y\" + index;\n index++;\n } else subplotId = rowIn[j];\n rowOut[j] = \"\";\n if (subplots.cartesian.indexOf(subplotId) !== -1) {\n yPos = subplotId.indexOf(\"y\");\n xId = subplotId.slice(0, yPos);\n yId = subplotId.slice(yPos);\n if (axisMap[xId] !== void 0 && axisMap[xId] !== j || axisMap[yId] !== void 0 && axisMap[yId] !== i) {\n continue;\n }\n rowOut[j] = subplotId;\n axisMap[xId] = j;\n axisMap[yId] = i;\n }\n }\n }\n } else {\n var xAxes = getAxes(layoutOut, gridIn, \"x\");\n var yAxes = getAxes(layoutOut, gridIn, \"y\");\n gridOut.xaxes = fillGridAxes(xAxes, subplots.xaxis, columns, axisMap, \"x\");\n gridOut.yaxes = fillGridAxes(yAxes, subplots.yaxis, rows, axisMap, \"y\");\n }\n var anchors = gridOut._anchors = {};\n var reversed = gridOut.roworder === \"top to bottom\";\n for (var axisId in axisMap) {\n var axLetter = axisId.charAt(0);\n var side = gridOut[axLetter + \"side\"];\n var i0, inc, iFinal;\n if (side.length < 8) {\n anchors[axisId] = \"free\";\n } else if (axLetter === \"x\") {\n if (side.charAt(0) === \"t\" === reversed) {\n i0 = 0;\n inc = 1;\n iFinal = rows;\n } else {\n i0 = rows - 1;\n inc = -1;\n iFinal = -1;\n }\n if (hasSubplotGrid) {\n var column = axisMap[axisId];\n for (i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[i][column];\n if (!subplotId) continue;\n yPos = subplotId.indexOf(\"y\");\n if (subplotId.slice(0, yPos) === axisId) {\n anchors[axisId] = subplotId.slice(yPos);\n break;\n }\n }\n } else {\n for (i = i0; i !== iFinal; i += inc) {\n yId = gridOut.yaxes[i];\n if (subplots.cartesian.indexOf(axisId + yId) !== -1) {\n anchors[axisId] = yId;\n break;\n }\n }\n }\n } else {\n if (side.charAt(0) === \"l\") {\n i0 = 0;\n inc = 1;\n iFinal = columns;\n } else {\n i0 = columns - 1;\n inc = -1;\n iFinal = -1;\n }\n if (hasSubplotGrid) {\n var row = axisMap[axisId];\n for (i = i0; i !== iFinal; i += inc) {\n subplotId = subplotsOut[row][i];\n if (!subplotId) continue;\n yPos = subplotId.indexOf(\"y\");\n if (subplotId.slice(yPos) === axisId) {\n anchors[axisId] = subplotId.slice(0, yPos);\n break;\n }\n }\n } else {\n for (i = i0; i !== iFinal; i += inc) {\n xId = gridOut.xaxes[i];\n if (subplots.cartesian.indexOf(xId + axisId) !== -1) {\n anchors[axisId] = xId;\n break;\n }\n }\n }\n }\n }\n }\n function fillGridAxes(axesIn, axesAllowed, len, axisMap, axLetter) {\n var out = new Array(len);\n var i;\n function fillOneAxis(i2, axisId) {\n if (axesAllowed.indexOf(axisId) !== -1 && axisMap[axisId] === void 0) {\n out[i2] = axisId;\n axisMap[axisId] = i2;\n } else out[i2] = \"\";\n }\n if (Array.isArray(axesIn)) {\n for (i = 0; i < len; i++) {\n fillOneAxis(i, axesIn[i]);\n }\n } else {\n fillOneAxis(0, axLetter);\n for (i = 1; i < len; i++) {\n fillOneAxis(i, axLetter + (i + 1));\n }\n }\n return out;\n }\n module.exports = {\n moduleType: \"component\",\n name: \"grid\",\n schema: {\n layout: { grid: gridAttrs }\n },\n layoutAttributes: gridAttrs,\n sizeDefaults,\n contentDefaults\n };\n }\n });\n\n // src/components/errorbars/attributes.js\n var require_attributes22 = __commonJS({\n \"src/components/errorbars/attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n visible: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"percent\", \"constant\", \"sqrt\", \"data\"],\n editType: \"calc\"\n },\n symmetric: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n array: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n arrayminus: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n value: {\n valType: \"number\",\n min: 0,\n dflt: 10,\n editType: \"calc\"\n },\n valueminus: {\n valType: \"number\",\n min: 0,\n dflt: 10,\n editType: \"calc\"\n },\n traceref: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"style\"\n },\n tracerefminus: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"style\"\n },\n copy_ystyle: {\n valType: \"boolean\",\n editType: \"plot\"\n },\n copy_zstyle: {\n valType: \"boolean\",\n editType: \"style\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n thickness: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/components/errorbars/defaults.js\n var require_defaults18 = __commonJS({\n \"src/components/errorbars/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Registry = require_registry();\n var Lib = require_lib();\n var Template = require_plot_template();\n var attributes = require_attributes22();\n module.exports = function(traceIn, traceOut, defaultColor, opts) {\n var objName = \"error_\" + opts.axis;\n var containerOut = Template.newContainer(traceOut, objName);\n var containerIn = traceIn[objName] || {};\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n var hasErrorBars = containerIn.array !== void 0 || containerIn.value !== void 0 || containerIn.type === \"sqrt\";\n var visible = coerce(\"visible\", hasErrorBars);\n if (visible === false) return;\n var type = coerce(\"type\", \"array\" in containerIn ? \"data\" : \"percent\");\n var symmetric = true;\n if (type !== \"sqrt\") {\n symmetric = coerce(\n \"symmetric\",\n !((type === \"data\" ? \"arrayminus\" : \"valueminus\") in containerIn)\n );\n }\n if (type === \"data\") {\n coerce(\"array\");\n coerce(\"traceref\");\n if (!symmetric) {\n coerce(\"arrayminus\");\n coerce(\"tracerefminus\");\n }\n } else if (type === \"percent\" || type === \"constant\") {\n coerce(\"value\");\n if (!symmetric) coerce(\"valueminus\");\n }\n var copyAttr = \"copy_\" + opts.inherit + \"style\";\n if (opts.inherit) {\n var inheritObj = traceOut[\"error_\" + opts.inherit];\n if ((inheritObj || {}).visible) {\n coerce(copyAttr, !(containerIn.color || isNumeric(containerIn.thickness) || isNumeric(containerIn.width)));\n }\n }\n if (!opts.inherit || !containerOut[copyAttr]) {\n coerce(\"color\", defaultColor);\n coerce(\"thickness\");\n coerce(\"width\", Registry.traceIs(traceOut, \"gl3d\") ? 0 : 4);\n }\n };\n }\n });\n\n // src/components/errorbars/compute_error.js\n var require_compute_error = __commonJS({\n \"src/components/errorbars/compute_error.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeComputeError(opts) {\n var type = opts.type;\n var symmetric = opts.symmetric;\n if (type === \"data\") {\n var array = opts.array || [];\n if (symmetric) {\n return function computeError(dataPt, index) {\n var val = +array[index];\n return [val, val];\n };\n } else {\n var arrayminus = opts.arrayminus || [];\n return function computeError(dataPt, index) {\n var val = +array[index];\n var valMinus = +arrayminus[index];\n if (!isNaN(val) || !isNaN(valMinus)) {\n return [valMinus || 0, val || 0];\n }\n return [NaN, NaN];\n };\n }\n } else {\n var computeErrorValue = makeComputeErrorValue(type, opts.value);\n var computeErrorValueMinus = makeComputeErrorValue(type, opts.valueminus);\n if (symmetric || opts.valueminus === void 0) {\n return function computeError(dataPt) {\n var val = computeErrorValue(dataPt);\n return [val, val];\n };\n } else {\n return function computeError(dataPt) {\n return [\n computeErrorValueMinus(dataPt),\n computeErrorValue(dataPt)\n ];\n };\n }\n }\n };\n function makeComputeErrorValue(type, value) {\n if (type === \"percent\") {\n return function(dataPt) {\n return Math.abs(dataPt * value / 100);\n };\n }\n if (type === \"constant\") {\n return function() {\n return Math.abs(value);\n };\n }\n if (type === \"sqrt\") {\n return function(dataPt) {\n return Math.sqrt(Math.abs(dataPt));\n };\n }\n }\n }\n });\n\n // src/components/errorbars/calc.js\n var require_calc4 = __commonJS({\n \"src/components/errorbars/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Registry = require_registry();\n var Axes = require_axes();\n var Lib = require_lib();\n var makeComputeError = require_compute_error();\n module.exports = function calc(gd) {\n var calcdata = gd.calcdata;\n for (var i = 0; i < calcdata.length; i++) {\n var calcTrace = calcdata[i];\n var trace = calcTrace[0].trace;\n if (trace.visible === true && Registry.traceIs(trace, \"errorBarsOK\")) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n calcOneAxis(calcTrace, trace, xa, \"x\");\n calcOneAxis(calcTrace, trace, ya, \"y\");\n }\n }\n };\n function calcOneAxis(calcTrace, trace, axis, coord) {\n var opts = trace[\"error_\" + coord] || {};\n var isVisible = opts.visible && [\"linear\", \"log\"].indexOf(axis.type) !== -1;\n var vals = [];\n if (!isVisible) return;\n var computeError = makeComputeError(opts);\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var iIn = calcPt.i;\n if (iIn === void 0) iIn = i;\n else if (iIn === null) continue;\n var calcCoord = calcPt[coord];\n if (!isNumeric(axis.c2l(calcCoord))) continue;\n var errors = computeError(calcCoord, iIn);\n if (isNumeric(errors[0]) && isNumeric(errors[1])) {\n var shoe = calcPt[coord + \"s\"] = calcCoord - errors[0];\n var hat = calcPt[coord + \"h\"] = calcCoord + errors[1];\n vals.push(shoe, hat);\n }\n }\n var axId = axis._id;\n var baseExtremes = trace._extremes[axId];\n var extremes = Axes.findExtremes(\n axis,\n vals,\n Lib.extendFlat({ tozero: baseExtremes.opts.tozero }, { padded: true })\n );\n baseExtremes.min = baseExtremes.min.concat(extremes.min);\n baseExtremes.max = baseExtremes.max.concat(extremes.max);\n }\n }\n });\n\n // src/components/errorbars/plot.js\n var require_plot2 = __commonJS({\n \"src/components/errorbars/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Drawing = require_drawing();\n var subTypes = require_subtypes();\n module.exports = function plot(gd, traces, plotinfo, transitionOpts) {\n var isNew;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var hasAnimation = transitionOpts && transitionOpts.duration > 0;\n var isStatic = gd._context.staticPlot;\n traces.each(function(d) {\n var trace = d[0].trace;\n var xObj = trace.error_x || {};\n var yObj = trace.error_y || {};\n var keyFunc;\n if (trace.ids) {\n keyFunc = function(d2) {\n return d2.id;\n };\n }\n var sparse = subTypes.hasMarkers(trace) && trace.marker.maxdisplayed > 0;\n if (!yObj.visible && !xObj.visible) d = [];\n var errorbars = d3.select(this).selectAll(\"g.errorbar\").data(d, keyFunc);\n errorbars.exit().remove();\n if (!d.length) return;\n if (!xObj.visible) errorbars.selectAll(\"path.xerror\").remove();\n if (!yObj.visible) errorbars.selectAll(\"path.yerror\").remove();\n errorbars.style(\"opacity\", 1);\n var enter = errorbars.enter().append(\"g\").classed(\"errorbar\", true);\n if (hasAnimation) {\n enter.style(\"opacity\", 0).transition().duration(transitionOpts.duration).style(\"opacity\", 1);\n }\n Drawing.setClipUrl(errorbars, plotinfo.layerClipId, gd);\n errorbars.each(function(d2) {\n var errorbar = d3.select(this);\n var coords = errorCoords(d2, xa, ya);\n if (sparse && !d2.vis) return;\n var path;\n var yerror = errorbar.select(\"path.yerror\");\n if (yObj.visible && isNumeric(coords.x) && isNumeric(coords.yh) && isNumeric(coords.ys)) {\n var yw = yObj.width;\n path = \"M\" + (coords.x - yw) + \",\" + coords.yh + \"h\" + 2 * yw + // hat\n \"m-\" + yw + \",0V\" + coords.ys;\n if (!coords.noYS) path += \"m-\" + yw + \",0h\" + 2 * yw;\n isNew = !yerror.size();\n if (isNew) {\n yerror = errorbar.append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").classed(\"yerror\", true);\n } else if (hasAnimation) {\n yerror = yerror.transition().duration(transitionOpts.duration).ease(transitionOpts.easing);\n }\n yerror.attr(\"d\", path);\n } else yerror.remove();\n var xerror = errorbar.select(\"path.xerror\");\n if (xObj.visible && isNumeric(coords.y) && isNumeric(coords.xh) && isNumeric(coords.xs)) {\n var xw = (xObj.copy_ystyle ? yObj : xObj).width;\n path = \"M\" + coords.xh + \",\" + (coords.y - xw) + \"v\" + 2 * xw + // hat\n \"m0,-\" + xw + \"H\" + coords.xs;\n if (!coords.noXS) path += \"m0,-\" + xw + \"v\" + 2 * xw;\n isNew = !xerror.size();\n if (isNew) {\n xerror = errorbar.append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").classed(\"xerror\", true);\n } else if (hasAnimation) {\n xerror = xerror.transition().duration(transitionOpts.duration).ease(transitionOpts.easing);\n }\n xerror.attr(\"d\", path);\n } else xerror.remove();\n });\n });\n };\n function errorCoords(d, xa, ya) {\n var out = {\n x: xa.c2p(d.x),\n y: ya.c2p(d.y)\n };\n if (d.yh !== void 0) {\n out.yh = ya.c2p(d.yh);\n out.ys = ya.c2p(d.ys);\n if (!isNumeric(out.ys)) {\n out.noYS = true;\n out.ys = ya.c2p(d.ys, true);\n }\n }\n if (d.xh !== void 0) {\n out.xh = xa.c2p(d.xh);\n out.xs = xa.c2p(d.xs);\n if (!isNumeric(out.xs)) {\n out.noXS = true;\n out.xs = xa.c2p(d.xs, true);\n }\n }\n return out;\n }\n }\n });\n\n // src/components/errorbars/style.js\n var require_style3 = __commonJS({\n \"src/components/errorbars/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n module.exports = function style(traces) {\n traces.each(function(d) {\n var trace = d[0].trace;\n var yObj = trace.error_y || {};\n var xObj = trace.error_x || {};\n var s = d3.select(this);\n s.selectAll(\"path.yerror\").style(\"stroke-width\", yObj.thickness + \"px\").call(Color2.stroke, yObj.color);\n if (xObj.copy_ystyle) xObj = yObj;\n s.selectAll(\"path.xerror\").style(\"stroke-width\", xObj.thickness + \"px\").call(Color2.stroke, xObj.color);\n });\n };\n }\n });\n\n // src/components/errorbars/index.js\n var require_errorbars = __commonJS({\n \"src/components/errorbars/index.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var overrideAll = require_edit_types().overrideAll;\n var attributes = require_attributes22();\n var xyAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes)\n };\n delete xyAttrs.error_x.copy_zstyle;\n delete xyAttrs.error_y.copy_zstyle;\n delete xyAttrs.error_y.copy_ystyle;\n var xyzAttrs = {\n error_x: Lib.extendFlat({}, attributes),\n error_y: Lib.extendFlat({}, attributes),\n error_z: Lib.extendFlat({}, attributes)\n };\n delete xyzAttrs.error_x.copy_ystyle;\n delete xyzAttrs.error_y.copy_ystyle;\n delete xyzAttrs.error_z.copy_ystyle;\n delete xyzAttrs.error_z.copy_zstyle;\n module.exports = {\n moduleType: \"component\",\n name: \"errorbars\",\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n histogram: xyAttrs,\n scatter3d: overrideAll(xyzAttrs, \"calc\", \"nested\"),\n scattergl: overrideAll(xyAttrs, \"calc\", \"nested\")\n }\n },\n supplyDefaults: require_defaults18(),\n calc: require_calc4(),\n makeComputeError: require_compute_error(),\n plot: require_plot2(),\n style: require_style3(),\n hoverInfo\n };\n function hoverInfo(calcPoint, trace, hoverPoint) {\n if ((trace.error_y || {}).visible) {\n hoverPoint.yerr = calcPoint.yh - calcPoint.y;\n if (!trace.error_y.symmetric) hoverPoint.yerrneg = calcPoint.y - calcPoint.ys;\n }\n if ((trace.error_x || {}).visible) {\n hoverPoint.xerr = calcPoint.xh - calcPoint.x;\n if (!trace.error_x.symmetric) hoverPoint.xerrneg = calcPoint.x - calcPoint.xs;\n }\n }\n }\n });\n\n // src/components/colorbar/constants.js\n var require_constants13 = __commonJS({\n \"src/components/colorbar/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n cn: {\n colorbar: \"colorbar\",\n cbbg: \"cbbg\",\n cbfill: \"cbfill\",\n cbfills: \"cbfills\",\n cbline: \"cbline\",\n cblines: \"cblines\",\n cbaxis: \"cbaxis\",\n cbtitleunshift: \"cbtitleunshift\",\n cbtitle: \"cbtitle\",\n cboutline: \"cboutline\",\n crisp: \"crisp\",\n jsPlaceholder: \"js-placeholder\"\n }\n };\n }\n });\n\n // src/components/colorbar/draw.js\n var require_draw11 = __commonJS({\n \"src/components/colorbar/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Plots = require_plots();\n var Registry = require_registry();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var extendFlat = require_extend().extendFlat;\n var setCursor = require_setcursor();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var Titles = require_titles();\n var svgTextUtils = require_svg_text_utils();\n var flipScale = require_helpers().flipScale;\n var handleAxisDefaults = require_axis_defaults();\n var handleAxisPositionDefaults = require_position_defaults();\n var axisLayoutAttrs = require_layout_attributes4();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var FROM_TL = alignmentConstants.FROM_TL;\n var FROM_BR = alignmentConstants.FROM_BR;\n var cn = require_constants13().cn;\n function draw(gd) {\n var fullLayout = gd._fullLayout;\n var colorBars = fullLayout._infolayer.selectAll(\"g.\" + cn.colorbar).data(makeColorBarData(gd), function(opts) {\n return opts._id;\n });\n colorBars.enter().append(\"g\").attr(\"class\", function(opts) {\n return opts._id;\n }).classed(cn.colorbar, true);\n colorBars.each(function(opts) {\n var g = d3.select(this);\n Lib.ensureSingle(g, \"rect\", cn.cbbg);\n Lib.ensureSingle(g, \"g\", cn.cbfills);\n Lib.ensureSingle(g, \"g\", cn.cblines);\n Lib.ensureSingle(g, \"g\", cn.cbaxis, function(s) {\n s.classed(cn.crisp, true);\n });\n Lib.ensureSingle(g, \"g\", cn.cbtitleunshift, function(s) {\n s.append(\"g\").classed(cn.cbtitle, true);\n });\n Lib.ensureSingle(g, \"rect\", cn.cboutline);\n var done = drawColorBar(g, opts, gd);\n if (done && done.then) (gd._promises || []).push(done);\n if (gd._context.edits.colorbarPosition) {\n makeEditable(g, opts, gd);\n }\n });\n colorBars.exit().each(function(opts) {\n Plots.autoMargin(gd, opts._id);\n }).remove();\n colorBars.order();\n }\n function makeColorBarData(gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var out = [];\n var opts;\n var cont;\n var trace;\n var cbOpt;\n function initOpts(opts2) {\n return extendFlat(opts2, {\n // fillcolor can be a d3 scale, domain is z values, range is colors\n // or leave it out for no fill,\n // or set to a string constant for single-color fill\n _fillcolor: null,\n // line.color has the same options as fillcolor\n _line: { color: null, width: null, dash: null },\n // levels of lines to draw.\n // note that this DOES NOT determine the extent of the bar\n // that's given by the domain of fillcolor\n // (or line.color if no fillcolor domain)\n _levels: { start: null, end: null, size: null },\n // separate fill levels (for example, heatmap coloring of a\n // contour map) if this is omitted, fillcolors will be\n // evaluated halfway between levels\n _filllevels: null,\n // for continuous colorscales: fill with a gradient instead of explicit levels\n // value should be the colorscale [[0, c0], [v1, c1], ..., [1, cEnd]]\n _fillgradient: null,\n // when using a gradient, we need the data range specified separately\n _zrange: null\n });\n }\n function calcOpts() {\n if (typeof cbOpt.calc === \"function\") {\n cbOpt.calc(gd, trace, opts);\n } else {\n opts._fillgradient = cont.reversescale ? flipScale(cont.colorscale) : cont.colorscale;\n opts._zrange = [cont[cbOpt.min], cont[cbOpt.max]];\n }\n }\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n trace = cd[0].trace;\n if (!trace._module) continue;\n var moduleOpts = trace._module.colorbar;\n if (trace.visible === true && moduleOpts) {\n var allowsMultiplotCbs = Array.isArray(moduleOpts);\n var cbOpts = allowsMultiplotCbs ? moduleOpts : [moduleOpts];\n for (var j = 0; j < cbOpts.length; j++) {\n cbOpt = cbOpts[j];\n var contName = cbOpt.container;\n cont = contName ? trace[contName] : trace;\n if (cont && cont.showscale) {\n opts = initOpts(cont.colorbar);\n opts._id = \"cb\" + trace.uid + (allowsMultiplotCbs && contName ? \"-\" + contName : \"\");\n opts._traceIndex = trace.index;\n opts._propPrefix = (contName ? contName + \".\" : \"\") + \"colorbar.\";\n opts._meta = trace._meta;\n calcOpts();\n out.push(opts);\n }\n }\n }\n }\n for (var k in fullLayout._colorAxes) {\n cont = fullLayout[k];\n if (cont.showscale) {\n var colorAxOpts = fullLayout._colorAxes[k];\n opts = initOpts(cont.colorbar);\n opts._id = \"cb\" + k;\n opts._propPrefix = k + \".colorbar.\";\n opts._meta = fullLayout._meta;\n cbOpt = { min: \"cmin\", max: \"cmax\" };\n if (colorAxOpts[0] !== \"heatmap\") {\n trace = colorAxOpts[1];\n cbOpt.calc = trace._module.colorbar.calc;\n }\n calcOpts();\n out.push(opts);\n }\n }\n return out;\n }\n function drawColorBar(g, opts, gd) {\n var isVertical = opts.orientation === \"v\";\n var len = opts.len;\n var lenmode = opts.lenmode;\n var thickness = opts.thickness;\n var thicknessmode = opts.thicknessmode;\n var outlinewidth = opts.outlinewidth;\n var borderwidth = opts.borderwidth;\n var bgcolor = opts.bgcolor;\n var xanchor = opts.xanchor;\n var yanchor = opts.yanchor;\n var xpad = opts.xpad;\n var ypad = opts.ypad;\n var optsX = opts.x;\n var optsY = isVertical ? opts.y : 1 - opts.y;\n var isPaperY = opts.yref === \"paper\";\n var isPaperX = opts.xref === \"paper\";\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var fillColor = opts._fillcolor;\n var line = opts._line;\n var title = opts.title;\n var titleSide = title.side;\n var zrange = opts._zrange || d3.extent((typeof fillColor === \"function\" ? fillColor : line.color).domain());\n var lineColormap = typeof line.color === \"function\" ? line.color : function() {\n return line.color;\n };\n var fillColormap = typeof fillColor === \"function\" ? fillColor : function() {\n return fillColor;\n };\n var levelsIn = opts._levels;\n var levelsOut = calcLevels(gd, opts, zrange);\n var fillLevels = levelsOut.fill;\n var lineLevels = levelsOut.line;\n var thickPx = Math.round(thickness * (thicknessmode === \"fraction\" ? isVertical ? gs.w : gs.h : 1));\n var thickFrac = thickPx / (isVertical ? gs.w : gs.h);\n var lenPx = Math.round(len * (lenmode === \"fraction\" ? isVertical ? gs.h : gs.w : 1));\n var lenFrac = lenPx / (isVertical ? gs.h : gs.w);\n var posW = isPaperX ? gs.w : gd._fullLayout.width;\n var posH = isPaperY ? gs.h : gd._fullLayout.height;\n var uPx = Math.round(\n isVertical ? optsX * posW + xpad : optsY * posH + ypad\n );\n var xRatio = { center: 0.5, right: 1 }[xanchor] || 0;\n var yRatio = { top: 1, middle: 0.5 }[yanchor] || 0;\n var uFrac = isVertical ? optsX - xRatio * thickFrac : optsY - yRatio * thickFrac;\n var vFrac = isVertical ? optsY - yRatio * lenFrac : optsX - xRatio * lenFrac;\n var vPx = Math.round(\n isVertical ? posH * (1 - vFrac) : posW * vFrac\n );\n opts._lenFrac = lenFrac;\n opts._thickFrac = thickFrac;\n opts._uFrac = uFrac;\n opts._vFrac = vFrac;\n var ax = opts._axis = mockColorBarAxis(gd, opts, zrange);\n ax.position = thickFrac + (isVertical ? optsX + xpad / gs.w : optsY + ypad / gs.h);\n var topOrBottom = [\"top\", \"bottom\"].indexOf(titleSide) !== -1;\n if (isVertical && topOrBottom) {\n ax.title.side = titleSide;\n ax.titlex = optsX + xpad / gs.w;\n ax.titley = vFrac + (title.side === \"top\" ? lenFrac - ypad / gs.h : ypad / gs.h);\n }\n if (!isVertical && !topOrBottom) {\n ax.title.side = titleSide;\n ax.titley = optsY + ypad / gs.h;\n ax.titlex = vFrac + xpad / gs.w;\n }\n if (line.color && opts.tickmode === \"auto\") {\n ax.tickmode = \"linear\";\n ax.tick0 = levelsIn.start;\n var dtick = levelsIn.size;\n var autoNtick = Lib.constrain(lenPx / 50, 4, 15) + 1;\n var dtFactor = (zrange[1] - zrange[0]) / ((opts.nticks || autoNtick) * dtick);\n if (dtFactor > 1) {\n var dtexp = Math.pow(10, Math.floor(Math.log(dtFactor) / Math.LN10));\n dtick *= dtexp * Lib.roundUp(dtFactor / dtexp, [2, 5, 10]);\n if ((Math.abs(levelsIn.start) / levelsIn.size + 1e-6) % 1 < 2e-6) {\n ax.tick0 = 0;\n }\n }\n ax.dtick = dtick;\n }\n ax.domain = isVertical ? [\n vFrac + ypad / gs.h,\n vFrac + lenFrac - ypad / gs.h\n ] : [\n vFrac + xpad / gs.w,\n vFrac + lenFrac - xpad / gs.w\n ];\n ax.setScale();\n g.attr(\"transform\", strTranslate(Math.round(gs.l), Math.round(gs.t)));\n var titleCont = g.select(\".\" + cn.cbtitleunshift).attr(\"transform\", strTranslate(-Math.round(gs.l), -Math.round(gs.t)));\n var ticklabelposition = ax.ticklabelposition;\n var titleFontSize = ax.title.font.size;\n var axLayer = g.select(\".\" + cn.cbaxis);\n var titleEl;\n var titleHeight = 0;\n var titleWidth = 0;\n function drawTitle(titleClass, titleOpts) {\n var dfltTitleOpts = {\n propContainer: ax,\n propName: opts._propPrefix + \"title\",\n traceIndex: opts._traceIndex,\n _meta: opts._meta,\n placeholder: fullLayout._dfltTitle.colorbar,\n containerGroup: g.select(\".\" + cn.cbtitle)\n };\n var otherClass = titleClass.charAt(0) === \"h\" ? titleClass.substr(1) : \"h\" + titleClass;\n g.selectAll(\".\" + otherClass + \",.\" + otherClass + \"-math-group\").remove();\n Titles.draw(gd, titleClass, extendFlat(dfltTitleOpts, titleOpts || {}));\n }\n function drawDummyTitle() {\n if (isVertical && topOrBottom || !isVertical && !topOrBottom) {\n var x, y;\n if (titleSide === \"top\") {\n x = xpad + gs.l + posW * optsX;\n y = ypad + gs.t + posH * (1 - vFrac - lenFrac) + 3 + titleFontSize * 0.75;\n }\n if (titleSide === \"bottom\") {\n x = xpad + gs.l + posW * optsX;\n y = ypad + gs.t + posH * (1 - vFrac) - 3 - titleFontSize * 0.25;\n }\n if (titleSide === \"right\") {\n y = ypad + gs.t + posH * optsY + 3 + titleFontSize * 0.75;\n x = xpad + gs.l + posW * vFrac;\n }\n drawTitle(ax._id + \"title\", {\n attributes: { x, y, \"text-anchor\": isVertical ? \"start\" : \"middle\" }\n });\n }\n }\n function drawCbTitle() {\n if (isVertical && !topOrBottom || !isVertical && topOrBottom) {\n var pos = ax.position || 0;\n var mid = ax._offset + ax._length / 2;\n var x, y;\n if (titleSide === \"right\") {\n y = mid;\n x = gs.l + posW * pos + 10 + titleFontSize * (ax.showticklabels ? 1 : 0.5);\n } else {\n x = mid;\n if (titleSide === \"bottom\") {\n y = gs.t + posH * pos + 10 + (ticklabelposition.indexOf(\"inside\") === -1 ? ax.tickfont.size : 0) + (ax.ticks !== \"intside\" ? opts.ticklen || 0 : 0);\n }\n if (titleSide === \"top\") {\n var nlines = title.text.split(\"
\").length;\n y = gs.t + posH * pos + 10 - thickPx - LINE_SPACING * titleFontSize * nlines;\n }\n }\n drawTitle((isVertical ? (\n // the 'h' + is a hack to get around the fact that\n // convertToTspans rotates any 'y...' class by 90 degrees.\n // TODO: find a better way to control this.\n \"h\"\n ) : \"v\") + ax._id + \"title\", {\n avoid: {\n selection: d3.select(gd).selectAll(\"g.\" + ax._id + \"tick\"),\n side: titleSide,\n offsetTop: isVertical ? 0 : gs.t,\n offsetLeft: isVertical ? gs.l : 0,\n maxShift: isVertical ? fullLayout.width : fullLayout.height\n },\n attributes: { x, y, \"text-anchor\": \"middle\" },\n transform: { rotate: isVertical ? -90 : 0, offset: 0 }\n });\n }\n }\n function drawAxis() {\n if (!isVertical && !topOrBottom || isVertical && topOrBottom) {\n var titleGroup = g.select(\".\" + cn.cbtitle);\n var titleText = titleGroup.select(\"text\");\n var titleTrans = [-outlinewidth / 2, outlinewidth / 2];\n var mathJaxNode = titleGroup.select(\".h\" + ax._id + \"title-math-group\").node();\n var lineSize = 15.6;\n if (titleText.node()) {\n lineSize = parseInt(titleText.node().style.fontSize, 10) * LINE_SPACING;\n }\n var bb;\n if (mathJaxNode) {\n bb = Drawing.bBox(mathJaxNode);\n titleWidth = bb.width;\n titleHeight = bb.height;\n if (titleHeight > lineSize) {\n titleTrans[1] -= (titleHeight - lineSize) / 2;\n }\n } else if (titleText.node() && !titleText.classed(cn.jsPlaceholder)) {\n bb = Drawing.bBox(titleText.node());\n titleWidth = bb.width;\n titleHeight = bb.height;\n }\n if (isVertical) {\n if (titleHeight) {\n titleHeight += 5;\n if (titleSide === \"top\") {\n ax.domain[1] -= titleHeight / gs.h;\n titleTrans[1] *= -1;\n } else {\n ax.domain[0] += titleHeight / gs.h;\n var nlines = svgTextUtils.lineCount(titleText);\n titleTrans[1] += (1 - nlines) * lineSize;\n }\n titleGroup.attr(\"transform\", strTranslate(titleTrans[0], titleTrans[1]));\n ax.setScale();\n }\n } else {\n if (titleWidth) {\n if (titleSide === \"right\") {\n ax.domain[0] += (titleWidth + titleFontSize / 2) / gs.w;\n }\n titleGroup.attr(\"transform\", strTranslate(titleTrans[0], titleTrans[1]));\n ax.setScale();\n }\n }\n }\n g.selectAll(\".\" + cn.cbfills + \",.\" + cn.cblines).attr(\n \"transform\",\n isVertical ? strTranslate(0, Math.round(gs.h * (1 - ax.domain[1]))) : strTranslate(Math.round(gs.w * ax.domain[0]), 0)\n );\n axLayer.attr(\n \"transform\",\n isVertical ? strTranslate(0, Math.round(-gs.t)) : strTranslate(Math.round(-gs.l), 0)\n );\n var fills = g.select(\".\" + cn.cbfills).selectAll(\"rect.\" + cn.cbfill).attr(\"style\", \"\").data(fillLevels);\n fills.enter().append(\"rect\").classed(cn.cbfill, true).attr(\"style\", \"\");\n fills.exit().remove();\n var zBounds = zrange.map(ax.c2p).map(Math.round).sort(function(a, b) {\n return a - b;\n });\n fills.each(function(d, i) {\n var z = [\n i === 0 ? zrange[0] : (fillLevels[i] + fillLevels[i - 1]) / 2,\n i === fillLevels.length - 1 ? zrange[1] : (fillLevels[i] + fillLevels[i + 1]) / 2\n ].map(ax.c2p).map(Math.round);\n if (isVertical) {\n z[1] = Lib.constrain(z[1] + (z[1] > z[0]) ? 1 : -1, zBounds[0], zBounds[1]);\n }\n var fillEl = d3.select(this).attr(isVertical ? \"x\" : \"y\", uPx).attr(isVertical ? \"y\" : \"x\", d3.min(z)).attr(isVertical ? \"width\" : \"height\", Math.max(thickPx, 2)).attr(isVertical ? \"height\" : \"width\", Math.max(d3.max(z) - d3.min(z), 2));\n if (opts._fillgradient) {\n Drawing.gradient(fillEl, gd, opts._id, isVertical ? \"vertical\" : \"horizontalreversed\", opts._fillgradient, \"fill\");\n } else {\n var colorString = fillColormap(d).replace(\"e-\", \"\");\n fillEl.attr(\"fill\", tinycolor(colorString).toHexString());\n }\n });\n var lines = g.select(\".\" + cn.cblines).selectAll(\"path.\" + cn.cbline).data(line.color && line.width ? lineLevels : []);\n lines.enter().append(\"path\").classed(cn.cbline, true);\n lines.exit().remove();\n lines.each(function(d) {\n var a = uPx;\n var b = Math.round(ax.c2p(d)) + line.width / 2 % 1;\n d3.select(this).attr(\n \"d\",\n \"M\" + (isVertical ? a + \",\" + b : b + \",\" + a) + (isVertical ? \"h\" : \"v\") + thickPx\n ).call(Drawing.lineGroupStyle, line.width, lineColormap(d), line.dash);\n });\n axLayer.selectAll(\"g.\" + ax._id + \"tick,path\").remove();\n var shift = uPx + thickPx + (outlinewidth || 0) / 2 - (opts.ticks === \"outside\" ? 1 : 0);\n var vals = Axes.calcTicks(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === \"inside\" ? Axes.clipEnds(ax, vals) : vals,\n layer: axLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn: Axes.makeTransTickFn(ax)\n });\n return Axes.drawLabels(gd, ax, {\n vals,\n layer: axLayer,\n transFn: Axes.makeTransTickLabelFn(ax),\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n function positionCB() {\n var bb;\n var innerThickness = thickPx + outlinewidth / 2;\n if (ticklabelposition.indexOf(\"inside\") === -1) {\n bb = Drawing.bBox(axLayer.node());\n innerThickness += isVertical ? bb.width : bb.height;\n }\n titleEl = titleCont.select(\"text\");\n var titleWidth2 = 0;\n var topSideVertical = isVertical && titleSide === \"top\";\n var rightSideHorizontal = !isVertical && titleSide === \"right\";\n var moveY = 0;\n if (titleEl.node() && !titleEl.classed(cn.jsPlaceholder)) {\n var _titleHeight;\n var mathJaxNode = titleCont.select(\".h\" + ax._id + \"title-math-group\").node();\n if (mathJaxNode && (isVertical && topOrBottom || !isVertical && !topOrBottom)) {\n bb = Drawing.bBox(mathJaxNode);\n titleWidth2 = bb.width;\n _titleHeight = bb.height;\n } else {\n bb = Drawing.bBox(titleCont.node());\n titleWidth2 = bb.right - gs.l - (isVertical ? uPx : vPx);\n _titleHeight = bb.bottom - gs.t - (isVertical ? vPx : uPx);\n if (!isVertical && titleSide === \"top\") {\n innerThickness += bb.height;\n moveY = bb.height;\n }\n }\n if (rightSideHorizontal) {\n titleEl.attr(\"transform\", strTranslate(titleWidth2 / 2 + titleFontSize / 2, 0));\n titleWidth2 *= 2;\n }\n innerThickness = Math.max(\n innerThickness,\n isVertical ? titleWidth2 : _titleHeight\n );\n }\n var outerThickness = (isVertical ? xpad : ypad) * 2 + innerThickness + borderwidth + outlinewidth / 2;\n var hColorbarMoveTitle = 0;\n if (!isVertical && title.text && yanchor === \"bottom\" && optsY <= 0) {\n hColorbarMoveTitle = outerThickness / 2;\n outerThickness += hColorbarMoveTitle;\n moveY += hColorbarMoveTitle;\n }\n fullLayout._hColorbarMoveTitle = hColorbarMoveTitle;\n fullLayout._hColorbarMoveCBTitle = moveY;\n var extraW = borderwidth + outlinewidth;\n var lx = (isVertical ? uPx : vPx) - extraW / 2 - (isVertical ? xpad : 0);\n var ly = (isVertical ? vPx : uPx) - (isVertical ? lenPx : ypad + moveY - hColorbarMoveTitle);\n g.select(\".\" + cn.cbbg).attr(\"x\", lx).attr(\"y\", ly).attr(isVertical ? \"width\" : \"height\", Math.max(outerThickness - hColorbarMoveTitle, 2)).attr(isVertical ? \"height\" : \"width\", Math.max(lenPx + extraW, 2)).call(Color2.fill, bgcolor).call(Color2.stroke, opts.bordercolor).style(\"stroke-width\", borderwidth);\n var moveX = rightSideHorizontal ? Math.max(titleWidth2 - 10, 0) : 0;\n g.selectAll(\".\" + cn.cboutline).attr(\"x\", (isVertical ? uPx : vPx + xpad) + moveX).attr(\"y\", (isVertical ? vPx + ypad - lenPx : uPx) + (topSideVertical ? titleHeight : 0)).attr(isVertical ? \"width\" : \"height\", Math.max(thickPx, 2)).attr(isVertical ? \"height\" : \"width\", Math.max(lenPx - (isVertical ? 2 * ypad + titleHeight : 2 * xpad + moveX), 2)).call(Color2.stroke, opts.outlinecolor).style({\n fill: \"none\",\n \"stroke-width\": outlinewidth\n });\n var xShift = isVertical ? xRatio * outerThickness : 0;\n var yShift = isVertical ? 0 : (1 - yRatio) * outerThickness - moveY;\n xShift = isPaperX ? gs.l - xShift : -xShift;\n yShift = isPaperY ? gs.t - yShift : -yShift;\n g.attr(\"transform\", strTranslate(\n xShift,\n yShift\n ));\n if (!isVertical && (borderwidth || tinycolor(bgcolor).getAlpha() && !tinycolor.equals(fullLayout.paper_bgcolor, bgcolor))) {\n var tickLabels = axLayer.selectAll(\"text\");\n var numTicks = tickLabels[0].length;\n var border = g.select(\".\" + cn.cbbg).node();\n var oBb = Drawing.bBox(border);\n var oTr = Drawing.getTranslate(g);\n var TEXTPAD = 2;\n tickLabels.each(function(d, i) {\n var first = 0;\n var last = numTicks - 1;\n if (i === first || i === last) {\n var iBb = Drawing.bBox(this);\n var iTr = Drawing.getTranslate(this);\n var deltaX;\n if (i === last) {\n var iRight = iBb.right + iTr.x;\n var oRight = oBb.right + oTr.x + vPx - borderwidth - TEXTPAD + optsX;\n deltaX = oRight - iRight;\n if (deltaX > 0) deltaX = 0;\n } else if (i === first) {\n var iLeft = iBb.left + iTr.x;\n var oLeft = oBb.left + oTr.x + vPx + borderwidth + TEXTPAD;\n deltaX = oLeft - iLeft;\n if (deltaX < 0) deltaX = 0;\n }\n if (deltaX) {\n if (numTicks < 3) {\n this.setAttribute(\n \"transform\",\n \"translate(\" + deltaX + \",0) \" + this.getAttribute(\"transform\")\n );\n } else {\n this.setAttribute(\"visibility\", \"hidden\");\n }\n }\n }\n });\n }\n var marginOpts = {};\n var lFrac = FROM_TL[xanchor];\n var rFrac = FROM_BR[xanchor];\n var tFrac = FROM_TL[yanchor];\n var bFrac = FROM_BR[yanchor];\n var extraThickness = outerThickness - thickPx;\n if (isVertical) {\n if (lenmode === \"pixels\") {\n marginOpts.y = optsY;\n marginOpts.t = lenPx * tFrac;\n marginOpts.b = lenPx * bFrac;\n } else {\n marginOpts.t = marginOpts.b = 0;\n marginOpts.yt = optsY + len * tFrac;\n marginOpts.yb = optsY - len * bFrac;\n }\n if (thicknessmode === \"pixels\") {\n marginOpts.x = optsX;\n marginOpts.l = outerThickness * lFrac;\n marginOpts.r = outerThickness * rFrac;\n } else {\n marginOpts.l = extraThickness * lFrac;\n marginOpts.r = extraThickness * rFrac;\n marginOpts.xl = optsX - thickness * lFrac;\n marginOpts.xr = optsX + thickness * rFrac;\n }\n } else {\n if (lenmode === \"pixels\") {\n marginOpts.x = optsX;\n marginOpts.l = lenPx * lFrac;\n marginOpts.r = lenPx * rFrac;\n } else {\n marginOpts.l = marginOpts.r = 0;\n marginOpts.xl = optsX + len * lFrac;\n marginOpts.xr = optsX - len * rFrac;\n }\n if (thicknessmode === \"pixels\") {\n marginOpts.y = 1 - optsY;\n marginOpts.t = outerThickness * tFrac;\n marginOpts.b = outerThickness * bFrac;\n } else {\n marginOpts.t = extraThickness * tFrac;\n marginOpts.b = extraThickness * bFrac;\n marginOpts.yt = optsY - thickness * tFrac;\n marginOpts.yb = optsY + thickness * bFrac;\n }\n }\n var sideY = opts.y < 0.5 ? \"b\" : \"t\";\n var sideX = opts.x < 0.5 ? \"l\" : \"r\";\n gd._fullLayout._reservedMargin[opts._id] = {};\n var possibleReservedMargins = {\n r: fullLayout.width - lx - xShift,\n l: lx + marginOpts.r,\n b: fullLayout.height - ly - yShift,\n t: ly + marginOpts.b\n };\n if (isPaperX && isPaperY) {\n Plots.autoMargin(gd, opts._id, marginOpts);\n } else if (isPaperX) {\n gd._fullLayout._reservedMargin[opts._id][sideY] = possibleReservedMargins[sideY];\n } else if (isPaperY) {\n gd._fullLayout._reservedMargin[opts._id][sideX] = possibleReservedMargins[sideX];\n } else {\n if (isVertical) {\n gd._fullLayout._reservedMargin[opts._id][sideX] = possibleReservedMargins[sideX];\n } else {\n gd._fullLayout._reservedMargin[opts._id][sideY] = possibleReservedMargins[sideY];\n }\n }\n }\n return Lib.syncOrAsync([\n Plots.previousPromises,\n drawDummyTitle,\n drawAxis,\n drawCbTitle,\n Plots.previousPromises,\n positionCB\n ], gd);\n }\n function makeEditable(g, opts, gd) {\n var isVertical = opts.orientation === \"v\";\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var t02, xf, yf;\n dragElement.init({\n element: g.node(),\n gd,\n prepFn: function() {\n t02 = g.attr(\"transform\");\n setCursor(g);\n },\n moveFn: function(dx, dy) {\n g.attr(\"transform\", t02 + strTranslate(dx, dy));\n xf = dragElement.align(\n (isVertical ? opts._uFrac : opts._vFrac) + dx / gs.w,\n isVertical ? opts._thickFrac : opts._lenFrac,\n 0,\n 1,\n opts.xanchor\n );\n yf = dragElement.align(\n (isVertical ? opts._vFrac : 1 - opts._uFrac) - dy / gs.h,\n isVertical ? opts._lenFrac : opts._thickFrac,\n 0,\n 1,\n opts.yanchor\n );\n var csr = dragElement.getCursor(xf, yf, opts.xanchor, opts.yanchor);\n setCursor(g, csr);\n },\n doneFn: function() {\n setCursor(g);\n if (xf !== void 0 && yf !== void 0) {\n var update = {};\n update[opts._propPrefix + \"x\"] = xf;\n update[opts._propPrefix + \"y\"] = yf;\n if (opts._traceIndex !== void 0) {\n Registry.call(\"_guiRestyle\", gd, update, opts._traceIndex);\n } else {\n Registry.call(\"_guiRelayout\", gd, update);\n }\n }\n }\n });\n }\n function calcLevels(gd, opts, zrange) {\n var levelsIn = opts._levels;\n var lineLevels = [];\n var fillLevels = [];\n var l;\n var i;\n var l0 = levelsIn.end + levelsIn.size / 100;\n var ls = levelsIn.size;\n var zr0 = 1.001 * zrange[0] - 1e-3 * zrange[1];\n var zr1 = 1.001 * zrange[1] - 1e-3 * zrange[0];\n for (i = 0; i < 1e5; i++) {\n l = levelsIn.start + i * ls;\n if (ls > 0 ? l >= l0 : l <= l0) break;\n if (l > zr0 && l < zr1) lineLevels.push(l);\n }\n if (opts._fillgradient) {\n fillLevels = [0];\n } else if (typeof opts._fillcolor === \"function\") {\n var fillLevelsIn = opts._filllevels;\n if (fillLevelsIn) {\n l0 = fillLevelsIn.end + fillLevelsIn.size / 100;\n ls = fillLevelsIn.size;\n for (i = 0; i < 1e5; i++) {\n l = fillLevelsIn.start + i * ls;\n if (ls > 0 ? l >= l0 : l <= l0) break;\n if (l > zrange[0] && l < zrange[1]) fillLevels.push(l);\n }\n } else {\n fillLevels = lineLevels.map(function(v) {\n return v - levelsIn.size / 2;\n });\n fillLevels.push(fillLevels[fillLevels.length - 1] + levelsIn.size);\n }\n } else if (opts._fillcolor && typeof opts._fillcolor === \"string\") {\n fillLevels = [0];\n }\n if (levelsIn.size < 0) {\n lineLevels.reverse();\n fillLevels.reverse();\n }\n return { line: lineLevels, fill: fillLevels };\n }\n function mockColorBarAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n var isVertical = opts.orientation === \"v\";\n var cbAxisIn = {\n type: \"linear\",\n range: zrange,\n tickmode: opts.tickmode,\n nticks: opts.nticks,\n tick0: opts.tick0,\n dtick: opts.dtick,\n tickvals: opts.tickvals,\n ticktext: opts.ticktext,\n ticks: opts.ticks,\n ticklen: opts.ticklen,\n tickwidth: opts.tickwidth,\n tickcolor: opts.tickcolor,\n showticklabels: opts.showticklabels,\n labelalias: opts.labelalias,\n ticklabelposition: opts.ticklabelposition,\n ticklabeloverflow: opts.ticklabeloverflow,\n ticklabelstep: opts.ticklabelstep,\n tickfont: opts.tickfont,\n tickangle: opts.tickangle,\n tickformat: opts.tickformat,\n exponentformat: opts.exponentformat,\n minexponent: opts.minexponent,\n separatethousands: opts.separatethousands,\n showexponent: opts.showexponent,\n showtickprefix: opts.showtickprefix,\n tickprefix: opts.tickprefix,\n showticksuffix: opts.showticksuffix,\n ticksuffix: opts.ticksuffix,\n title: opts.title,\n showline: true,\n anchor: \"free\",\n side: isVertical ? \"right\" : \"bottom\",\n position: 1\n };\n var letter = isVertical ? \"y\" : \"x\";\n var cbAxisOut = {\n type: \"linear\",\n _id: letter + opts._id\n };\n var axisOptions = {\n letter,\n font: fullLayout.font,\n noAutotickangles: letter === \"y\",\n noHover: true,\n noTickson: true,\n noTicklabelmode: true,\n noInsideRange: true,\n calendar: fullLayout.calendar\n // not really necessary (yet?)\n };\n function coerce(attr, dflt) {\n return Lib.coerce(cbAxisIn, cbAxisOut, axisLayoutAttrs, attr, dflt);\n }\n handleAxisDefaults(cbAxisIn, cbAxisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(cbAxisIn, cbAxisOut, coerce, axisOptions);\n return cbAxisOut;\n }\n module.exports = {\n draw\n };\n }\n });\n\n // src/components/colorbar/index.js\n var require_colorbar = __commonJS({\n \"src/components/colorbar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"colorbar\",\n attributes: require_attributes7(),\n supplyDefaults: require_defaults(),\n draw: require_draw11().draw,\n hasColorbar: require_has_colorbar()\n };\n }\n });\n\n // src/components/legend/index.js\n var require_legend = __commonJS({\n \"src/components/legend/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"component\",\n name: \"legend\",\n layoutAttributes: require_attributes9(),\n supplyLayoutDefaults: require_defaults3(),\n draw: require_draw(),\n style: require_style()\n };\n }\n });\n\n // src/locale-en.js\n var require_locale_en = __commonJS({\n \"src/locale-en.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"locale\",\n name: \"en\",\n dictionary: {\n \"Click to enter Colorscale title\": \"Click to enter Colourscale title\"\n },\n format: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n shortMonths: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n periods: [\"AM\", \"PM\"],\n dateTime: \"%a %b %e %X %Y\",\n date: \"%d/%m/%Y\",\n time: \"%H:%M:%S\",\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n year: \"%Y\",\n month: \"%b %Y\",\n dayMonth: \"%b %-d\",\n dayMonthYear: \"%b %-d, %Y\"\n }\n };\n }\n });\n\n // src/locale-en-us.js\n var require_locale_en_us = __commonJS({\n \"src/locale-en-us.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"locale\",\n name: \"en-US\",\n dictionary: {\n \"Click to enter Colorscale title\": \"Click to enter Colorscale title\"\n },\n format: {\n date: \"%m/%d/%Y\"\n }\n };\n }\n });\n\n // src/snapshot/cloneplot.js\n var require_cloneplot = __commonJS({\n \"src/snapshot/cloneplot.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var extendFlat = Lib.extendFlat;\n var extendDeep = Lib.extendDeep;\n function cloneLayoutOverride(tileClass) {\n var override;\n switch (tileClass) {\n case \"themes__thumb\":\n override = {\n autosize: true,\n width: 150,\n height: 150,\n title: { text: \"\" },\n showlegend: false,\n margin: { l: 5, r: 5, t: 5, b: 5, pad: 0 },\n annotations: []\n };\n break;\n case \"thumbnail\":\n override = {\n title: { text: \"\" },\n hidesources: true,\n showlegend: false,\n borderwidth: 0,\n bordercolor: \"\",\n margin: { l: 1, r: 1, t: 1, b: 1, pad: 0 },\n annotations: []\n };\n break;\n default:\n override = {};\n }\n return override;\n }\n function keyIsAxis(keyName) {\n var types = [\"xaxis\", \"yaxis\", \"zaxis\"];\n return types.indexOf(keyName.slice(0, 5)) > -1;\n }\n module.exports = function clonePlot(graphObj, options) {\n var i;\n var oldData = graphObj.data;\n var oldLayout = graphObj.layout;\n var newData = extendDeep([], oldData);\n var newLayout = extendDeep({}, oldLayout, cloneLayoutOverride(options.tileClass));\n var context = graphObj._context || {};\n if (options.width) newLayout.width = options.width;\n if (options.height) newLayout.height = options.height;\n if (options.tileClass === \"thumbnail\" || options.tileClass === \"themes__thumb\") {\n newLayout.annotations = [];\n var keys = Object.keys(newLayout);\n for (i = 0; i < keys.length; i++) {\n if (keyIsAxis(keys[i])) {\n newLayout[keys[i]].title = { text: \"\" };\n }\n }\n for (i = 0; i < newData.length; i++) {\n var trace = newData[i];\n trace.showscale = false;\n if (trace.marker) trace.marker.showscale = false;\n if (Registry.traceIs(trace, \"pie-like\")) trace.textposition = \"none\";\n }\n }\n if (Array.isArray(options.annotations)) {\n for (i = 0; i < options.annotations.length; i++) {\n newLayout.annotations.push(options.annotations[i]);\n }\n }\n var sceneIds = Object.keys(newLayout).filter(function(key) {\n return key.match(/^scene\\d*$/);\n });\n if (sceneIds.length) {\n var axesImageOverride = {};\n if (options.tileClass === \"thumbnail\") {\n axesImageOverride = {\n title: { text: \"\" },\n showaxeslabels: false,\n showticklabels: false,\n linetickenable: false\n };\n }\n for (i = 0; i < sceneIds.length; i++) {\n var scene = newLayout[sceneIds[i]];\n if (!scene.xaxis) {\n scene.xaxis = {};\n }\n if (!scene.yaxis) {\n scene.yaxis = {};\n }\n if (!scene.zaxis) {\n scene.zaxis = {};\n }\n extendFlat(scene.xaxis, axesImageOverride);\n extendFlat(scene.yaxis, axesImageOverride);\n extendFlat(scene.zaxis, axesImageOverride);\n scene._scene = null;\n }\n }\n var gd = document.createElement(\"div\");\n if (options.tileClass) gd.className = options.tileClass;\n var plotTile = {\n gd,\n td: gd,\n // for external (image server) compatibility\n layout: newLayout,\n data: newData,\n config: {\n staticPlot: options.staticPlot === void 0 ? true : options.staticPlot,\n plotGlPixelRatio: options.plotGlPixelRatio === void 0 ? 2 : options.plotGlPixelRatio,\n displaylogo: options.displaylogo || false,\n showLink: options.showLink || false,\n showTips: options.showTips || false,\n mapboxAccessToken: context.mapboxAccessToken\n }\n };\n if (options.setBackground !== \"transparent\") {\n plotTile.config.setBackground = options.setBackground || \"opaque\";\n }\n plotTile.gd.defaultLayout = cloneLayoutOverride(options.tileClass);\n return plotTile;\n };\n }\n });\n\n // src/snapshot/toimage.js\n var require_toimage = __commonJS({\n \"src/snapshot/toimage.js\"(exports, module) {\n \"use strict\";\n var EventEmitter = require_events().EventEmitter;\n var Registry = require_registry();\n var Lib = require_lib();\n var helpers = require_helpers10();\n var clonePlot = require_cloneplot();\n var toSVG = require_tosvg();\n var svgToImg = require_svgtoimg();\n function toImage(gd, opts) {\n var ev = new EventEmitter();\n var clone = clonePlot(gd, { format: \"png\" });\n var clonedGd = clone.gd;\n clonedGd.style.position = \"absolute\";\n clonedGd.style.left = \"-5000px\";\n document.body.appendChild(clonedGd);\n function wait() {\n var delay = helpers.getDelay(clonedGd._fullLayout);\n setTimeout(function() {\n var svg = toSVG(clonedGd);\n var canvas = document.createElement(\"canvas\");\n canvas.id = Lib.randstr();\n ev = svgToImg({\n format: opts.format,\n width: clonedGd._fullLayout.width,\n height: clonedGd._fullLayout.height,\n canvas,\n emitter: ev,\n svg\n });\n ev.clean = function() {\n if (clonedGd) document.body.removeChild(clonedGd);\n };\n }, delay);\n }\n var redrawFunc = helpers.getRedrawFunc(clonedGd);\n Registry.call(\"_doPlot\", clonedGd, clone.data, clone.layout, clone.config).then(redrawFunc).then(wait).catch(function(err) {\n ev.emit(\"error\", err);\n });\n return ev;\n }\n module.exports = toImage;\n }\n });\n\n // src/snapshot/index.js\n var require_snapshot = __commonJS({\n \"src/snapshot/index.js\"(exports, module) {\n \"use strict\";\n var helpers = require_helpers10();\n var Snapshot = {\n getDelay: helpers.getDelay,\n getRedrawFunc: helpers.getRedrawFunc,\n clone: require_cloneplot(),\n toSVG: require_tosvg(),\n svgToImg: require_svgtoimg(),\n toImage: require_toimage(),\n downloadImage: require_download()\n };\n module.exports = Snapshot;\n }\n });\n\n // src/core.js\n var require_core = __commonJS({\n \"src/core.js\"(exports) {\n \"use strict\";\n exports.version = require_version().version;\n require_npo_src();\n require_plotcss();\n var Registry = require_registry();\n var register = exports.register = Registry.register;\n var plotApi = require_plot_api2();\n var methodNames = Object.keys(plotApi);\n for (i = 0; i < methodNames.length; i++) {\n name2 = methodNames[i];\n if (name2.charAt(0) !== \"_\") exports[name2] = plotApi[name2];\n register({\n moduleType: \"apiMethod\",\n name: name2,\n fn: plotApi[name2]\n });\n }\n var name2;\n var i;\n register(require_scatter());\n register([\n require_annotations(),\n require_annotations3d(),\n require_selections(),\n require_shapes(),\n require_images(),\n require_updatemenus(),\n require_sliders(),\n require_rangeslider(),\n require_rangeselector(),\n require_grid(),\n require_errorbars(),\n require_colorscale(),\n require_colorbar(),\n require_legend(),\n // legend needs to come after shape | legend defaults depends on shapes\n require_fx(),\n // fx needs to come after legend | unified hover defaults depends on legends\n require_modebar2()\n ]);\n register([\n require_locale_en(),\n require_locale_en_us()\n ]);\n if (window.PlotlyLocales && Array.isArray(window.PlotlyLocales)) {\n register(window.PlotlyLocales);\n delete window.PlotlyLocales;\n }\n exports.Icons = require_ploticon();\n var Fx = require_fx();\n var Plots = require_plots();\n exports.Plots = {\n resize: Plots.resize,\n graphJson: Plots.graphJson,\n sendDataToCloud: Plots.sendDataToCloud\n };\n exports.Fx = {\n hover: Fx.hover,\n unhover: Fx.unhover,\n loneHover: Fx.loneHover,\n loneUnhover: Fx.loneUnhover\n };\n exports.Snapshot = require_snapshot();\n exports.PlotSchema = require_plot_schema();\n }\n });\n\n // lib/core.js\n var require_core2 = __commonJS({\n \"lib/core.js\"(exports, module) {\n \"use strict\";\n module.exports = require_core();\n }\n });\n\n // src/traces/bar/constants.js\n var require_constants14 = __commonJS({\n \"src/traces/bar/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // padding in pixels around text\n TEXTPAD: 3,\n // 'value' and 'label' are not really necessary for bar traces,\n // but they were made available to `texttemplate` (maybe by accident)\n // via tokens `%{value}` and `%{label}` starting in 1.50.0,\n // so let's include them in the event data also.\n eventDataKeys: [\"value\", \"label\"]\n };\n }\n });\n\n // src/traces/bar/attributes.js\n var require_attributes23 = __commonJS({\n \"src/traces/bar/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var fontAttrs = require_font_attributes();\n var constants = require_constants14();\n var pattern = require_attributes4().pattern;\n var extendFlat = require_extend().extendFlat;\n var textFontAttrs = fontAttrs({\n editType: \"calc\",\n arrayOk: true,\n colorEditType: \"style\"\n });\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var markerLineWidth = extendFlat(\n {},\n scatterMarkerLineAttrs.width,\n { dflt: 0 }\n );\n var markerLine = extendFlat({\n width: markerLineWidth,\n editType: \"calc\"\n }, colorScaleAttrs(\"marker.line\"));\n var marker = extendFlat({\n line: markerLine,\n editType: \"calc\"\n }, colorScaleAttrs(\"marker\"), {\n opacity: {\n valType: \"number\",\n arrayOk: true,\n dflt: 1,\n min: 0,\n max: 1,\n editType: \"style\"\n },\n pattern,\n cornerradius: {\n valType: \"any\",\n editType: \"calc\"\n }\n });\n module.exports = {\n x: scatterAttrs.x,\n x0: scatterAttrs.x0,\n dx: scatterAttrs.dx,\n y: scatterAttrs.y,\n y0: scatterAttrs.y0,\n dy: scatterAttrs.dy,\n xperiod: scatterAttrs.xperiod,\n yperiod: scatterAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n yperiodalignment: scatterAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n text: scatterAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys\n }),\n hovertext: scatterAttrs.hovertext,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textposition: {\n valType: \"enumerated\",\n values: [\"inside\", \"outside\", \"auto\", \"none\"],\n dflt: \"auto\",\n arrayOk: true,\n editType: \"calc\"\n },\n insidetextanchor: {\n valType: \"enumerated\",\n values: [\"end\", \"middle\", \"start\"],\n dflt: \"end\",\n editType: \"plot\"\n },\n textangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"plot\"\n },\n textfont: extendFlat({}, textFontAttrs, {}),\n insidetextfont: extendFlat({}, textFontAttrs, {}),\n outsidetextfont: extendFlat({}, textFontAttrs, {}),\n constraintext: {\n valType: \"enumerated\",\n values: [\"inside\", \"outside\", \"both\", \"none\"],\n dflt: \"both\",\n editType: \"calc\"\n },\n cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, {}),\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n editType: \"calc+clearAxisTypes\"\n },\n base: {\n valType: \"any\",\n dflt: null,\n arrayOk: true,\n editType: \"calc\"\n },\n offset: {\n valType: \"number\",\n dflt: null,\n arrayOk: true,\n editType: \"calc\"\n },\n width: {\n valType: \"number\",\n dflt: null,\n min: 0,\n arrayOk: true,\n editType: \"calc\"\n },\n marker,\n offsetgroup: scatterAttrs.offsetgroup,\n alignmentgroup: scatterAttrs.alignmentgroup,\n selected: {\n marker: {\n opacity: scatterAttrs.selected.marker.opacity,\n color: scatterAttrs.selected.marker.color,\n editType: \"style\"\n },\n textfont: scatterAttrs.selected.textfont,\n editType: \"style\"\n },\n unselected: {\n marker: {\n opacity: scatterAttrs.unselected.marker.opacity,\n color: scatterAttrs.unselected.marker.color,\n editType: \"style\"\n },\n textfont: scatterAttrs.unselected.textfont,\n editType: \"style\"\n },\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/bar/layout_attributes.js\n var require_layout_attributes6 = __commonJS({\n \"src/traces/bar/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n barmode: {\n valType: \"enumerated\",\n values: [\"stack\", \"group\", \"overlay\", \"relative\"],\n dflt: \"group\",\n editType: \"calc\"\n },\n barnorm: {\n valType: \"enumerated\",\n values: [\"\", \"fraction\", \"percent\"],\n dflt: \"\",\n editType: \"calc\"\n },\n bargap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n bargroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n },\n barcornerradius: {\n valType: \"any\",\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/bar/style_defaults.js\n var require_style_defaults = __commonJS({\n \"src/traces/bar/style_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var coercePattern = require_lib().coercePattern;\n module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout) {\n var markerColor = coerce(\"marker.color\", defaultColor);\n var hasMarkerColorscale = hasColorscale(traceIn, \"marker\");\n if (hasMarkerColorscale) {\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"marker.\", cLetter: \"c\" }\n );\n }\n coerce(\"marker.line.color\", Color2.defaultLine);\n if (hasColorscale(traceIn, \"marker.line\")) {\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"marker.line.\", cLetter: \"c\" }\n );\n }\n coerce(\"marker.line.width\");\n coerce(\"marker.opacity\");\n coercePattern(coerce, \"marker.pattern\", markerColor, hasMarkerColorscale);\n coerce(\"selected.marker.color\");\n coerce(\"unselected.marker.color\");\n };\n }\n });\n\n // src/traces/bar/defaults.js\n var require_defaults19 = __commonJS({\n \"src/traces/bar/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var Registry = require_registry();\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleStyleDefaults = require_style_defaults();\n var handleGroupingDefaults = require_grouping_defaults();\n var attributes = require_attributes23();\n var coerceFont = Lib.coerceFont;\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zorder\");\n coerce(\"orientation\", traceOut.x && !traceOut.y ? \"h\" : \"v\");\n coerce(\"base\");\n coerce(\"offset\");\n coerce(\"width\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n var lineColor = (traceOut.marker.line || {}).color;\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"x\", inherit: \"y\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr, dflt) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceOut.type === \"bar\") {\n traceIn = traceOut._input;\n var r = coerce(\"marker.cornerradius\", fullLayout.barcornerradius);\n if (traceOut.marker) {\n traceOut.marker.cornerradius = validateCornerradius(r);\n }\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, fullLayout.barmode);\n }\n }\n }\n function validateCornerradius(r) {\n if (isNumeric(r)) {\n r = +r;\n if (r >= 0) return r;\n } else if (typeof r === \"string\") {\n r = r.trim();\n if (r.slice(-1) === \"%\" && isNumeric(r.slice(0, -1))) {\n r = +r.slice(0, -1);\n if (r >= 0) return r + \"%\";\n }\n }\n return void 0;\n }\n function handleText(traceIn, traceOut, layout, coerce, textposition, opts) {\n opts = opts || {};\n var moduleHasSelected = !(opts.moduleHasSelected === false);\n var moduleHasUnselected = !(opts.moduleHasUnselected === false);\n var moduleHasConstrain = !(opts.moduleHasConstrain === false);\n var moduleHasCliponaxis = !(opts.moduleHasCliponaxis === false);\n var moduleHasTextangle = !(opts.moduleHasTextangle === false);\n var moduleHasInsideanchor = !(opts.moduleHasInsideanchor === false);\n var hasPathbar = !!opts.hasPathbar;\n var hasBoth = Array.isArray(textposition) || textposition === \"auto\";\n var hasInside = hasBoth || textposition === \"inside\";\n var hasOutside = hasBoth || textposition === \"outside\";\n if (hasInside || hasOutside) {\n var dfltFont = coerceFont(coerce, \"textfont\", layout.font);\n var insideTextFontDefault = Lib.extendFlat({}, dfltFont);\n var isTraceTextfontColorSet = traceIn.textfont && traceIn.textfont.color;\n var isColorInheritedFromLayoutFont = !isTraceTextfontColorSet;\n if (isColorInheritedFromLayoutFont) {\n delete insideTextFontDefault.color;\n }\n coerceFont(coerce, \"insidetextfont\", insideTextFontDefault);\n if (hasPathbar) {\n var pathbarTextFontDefault = Lib.extendFlat({}, dfltFont);\n if (isColorInheritedFromLayoutFont) {\n delete pathbarTextFontDefault.color;\n }\n coerceFont(coerce, \"pathbar.textfont\", pathbarTextFontDefault);\n }\n if (hasOutside) coerceFont(coerce, \"outsidetextfont\", dfltFont);\n if (moduleHasSelected) coerce(\"selected.textfont.color\");\n if (moduleHasUnselected) coerce(\"unselected.textfont.color\");\n if (moduleHasConstrain) coerce(\"constraintext\");\n if (moduleHasCliponaxis) coerce(\"cliponaxis\");\n if (moduleHasTextangle) coerce(\"textangle\");\n coerce(\"texttemplate\");\n }\n if (hasInside) {\n if (moduleHasInsideanchor) coerce(\"insidetextanchor\");\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults,\n handleText,\n validateCornerradius\n };\n }\n });\n\n // src/traces/bar/layout_defaults.js\n var require_layout_defaults5 = __commonJS({\n \"src/traces/bar/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Axes = require_axes();\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes6();\n var validateCornerradius = require_defaults19().validateCornerradius;\n module.exports = function(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n var hasBars = false;\n var shouldBeGapless = false;\n var gappedAnyway = false;\n var usedSubplots = {};\n var mode = coerce(\"barmode\");\n var isGroup = mode === \"group\";\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (Registry.traceIs(trace, \"bar\") && trace.visible) hasBars = true;\n else continue;\n var subploti = trace.xaxis + trace.yaxis;\n if (isGroup) {\n if (usedSubplots[subploti]) gappedAnyway = true;\n usedSubplots[subploti] = true;\n } else {\n subploti += trace._input.offsetgroup;\n if (usedSubplots.length > 0 && !usedSubplots[subploti]) gappedAnyway = true;\n usedSubplots[subploti] = true;\n }\n if (trace.visible && trace.type === \"histogram\") {\n var pa = Axes.getFromId(\n { _fullLayout: layoutOut },\n trace[trace.orientation === \"v\" ? \"xaxis\" : \"yaxis\"]\n );\n if (pa.type !== \"category\") shouldBeGapless = true;\n }\n }\n if (!hasBars) {\n delete layoutOut.barmode;\n return;\n }\n if (mode !== \"overlay\") coerce(\"barnorm\");\n coerce(\"bargap\", shouldBeGapless && !gappedAnyway ? 0 : 0.2);\n coerce(\"bargroupgap\");\n var r = coerce(\"barcornerradius\");\n layoutOut.barcornerradius = validateCornerradius(r);\n };\n }\n });\n\n // src/traces/bar/arrays_to_calcdata.js\n var require_arrays_to_calcdata2 = __commonJS({\n \"src/traces/bar/arrays_to_calcdata.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function arraysToCalcdata(cd, trace) {\n for (var i = 0; i < cd.length; i++) cd[i].i = i;\n Lib.mergeArray(trace.text, cd, \"tx\");\n Lib.mergeArray(trace.hovertext, cd, \"htx\");\n var marker = trace.marker;\n if (marker) {\n Lib.mergeArray(marker.opacity, cd, \"mo\", true);\n Lib.mergeArray(marker.color, cd, \"mc\");\n var markerLine = marker.line;\n if (markerLine) {\n Lib.mergeArray(markerLine.color, cd, \"mlc\");\n Lib.mergeArrayCastPositive(markerLine.width, cd, \"mlw\");\n }\n }\n };\n }\n });\n\n // src/traces/bar/calc.js\n var require_calc5 = __commonJS({\n \"src/traces/bar/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleCalc = require_calc();\n var arraysToCalcdata = require_arrays_to_calcdata2();\n var calcSelection = require_calc_selection();\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var size, pos, origPos, pObj, hasPeriod, pLetter;\n var sizeOpts = {\n msUTC: !!(trace.base || trace.base === 0)\n };\n if (trace.orientation === \"h\") {\n size = xa.makeCalcdata(trace, \"x\", sizeOpts);\n origPos = ya.makeCalcdata(trace, \"y\");\n pObj = alignPeriod(trace, ya, \"y\", origPos);\n hasPeriod = !!trace.yperiodalignment;\n pLetter = \"y\";\n } else {\n size = ya.makeCalcdata(trace, \"y\", sizeOpts);\n origPos = xa.makeCalcdata(trace, \"x\");\n pObj = alignPeriod(trace, xa, \"x\", origPos);\n hasPeriod = !!trace.xperiodalignment;\n pLetter = \"x\";\n }\n pos = pObj.vals;\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n for (var i = 0; i < serieslen; i++) {\n cd[i] = { p: pos[i], s: size[i] };\n if (hasPeriod) {\n cd[i].orig_p = origPos[i];\n cd[i][pLetter + \"End\"] = pObj.ends[i];\n cd[i][pLetter + \"Start\"] = pObj.starts[i];\n }\n if (trace.ids) {\n cd[i].id = String(trace.ids[i]);\n }\n }\n if (hasColorscale(trace, \"marker\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.color,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n }\n if (hasColorscale(trace, \"marker.line\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.line.color,\n containerStr: \"marker.line\",\n cLetter: \"c\"\n });\n }\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/bar/uniform_text.js\n var require_uniform_text = __commonJS({\n \"src/traces/bar/uniform_text.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n function resizeText(gd, gTrace, traceType) {\n var fullLayout = gd._fullLayout;\n var minSize = fullLayout[\"_\" + traceType + \"Text_minsize\"];\n if (minSize) {\n var shouldHide = fullLayout.uniformtext.mode === \"hide\";\n var selector;\n switch (traceType) {\n case \"funnelarea\":\n case \"pie\":\n case \"sunburst\":\n selector = \"g.slice\";\n break;\n case \"treemap\":\n case \"icicle\":\n selector = \"g.slice, g.pathbar\";\n break;\n default:\n selector = \"g.points > g.point\";\n }\n gTrace.selectAll(selector).each(function(d) {\n var transform = d.transform;\n if (transform) {\n transform.scale = shouldHide && transform.hide ? 0 : minSize / transform.fontSize;\n var el = d3.select(this).select(\"text\");\n Lib.setTransormAndDisplay(el, transform);\n }\n });\n }\n }\n function recordMinTextSize(traceType, transform, fullLayout) {\n if (fullLayout.uniformtext.mode) {\n var minKey = getMinKey(traceType);\n var minSize = fullLayout.uniformtext.minsize;\n var size = transform.scale * transform.fontSize;\n transform.hide = size < minSize;\n fullLayout[minKey] = fullLayout[minKey] || Infinity;\n if (!transform.hide) {\n fullLayout[minKey] = Math.min(\n fullLayout[minKey],\n Math.max(size, minSize)\n );\n }\n }\n }\n function clearMinTextSize(traceType, fullLayout) {\n var minKey = getMinKey(traceType);\n fullLayout[minKey] = void 0;\n }\n function getMinKey(traceType) {\n return \"_\" + traceType + \"Text_minsize\";\n }\n module.exports = {\n recordMinTextSize,\n clearMinTextSize,\n resizeText\n };\n }\n });\n\n // src/traces/bar/helpers.js\n var require_helpers12 = __commonJS({\n \"src/traces/bar/helpers.js\"(exports) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n exports.coerceString = function(attributeDefinition, value, defaultValue) {\n if (typeof value === \"string\") {\n if (value || !attributeDefinition.noBlank) return value;\n } else if (typeof value === \"number\" || value === true) {\n if (!attributeDefinition.strict) return String(value);\n }\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.coerceNumber = function(attributeDefinition, value, defaultValue) {\n if (isNumeric(value)) {\n value = +value;\n var min = attributeDefinition.min;\n var max = attributeDefinition.max;\n var isOutOfBounds = min !== void 0 && value < min || max !== void 0 && value > max;\n if (!isOutOfBounds) return value;\n }\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.coerceColor = function(attributeDefinition, value, defaultValue) {\n if (tinycolor(value).isValid()) return value;\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.coerceEnumerated = function(attributeDefinition, value, defaultValue) {\n if (attributeDefinition.coerceNumber) value = +value;\n if (attributeDefinition.values.indexOf(value) !== -1) return value;\n return defaultValue !== void 0 ? defaultValue : attributeDefinition.dflt;\n };\n exports.getValue = function(arrayOrScalar, index) {\n var value;\n if (!isArrayOrTypedArray(arrayOrScalar)) value = arrayOrScalar;\n else if (index < arrayOrScalar.length) value = arrayOrScalar[index];\n return value;\n };\n exports.getLineWidth = function(trace, di) {\n var w = 0 < di.mlw ? di.mlw : !isArrayOrTypedArray(trace.marker.line.width) ? trace.marker.line.width : 0;\n return w;\n };\n }\n });\n\n // src/traces/bar/style.js\n var require_style4 = __commonJS({\n \"src/traces/bar/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var Registry = require_registry();\n var resizeText = require_uniform_text().resizeText;\n var attributes = require_attributes23();\n var attributeTextFont = attributes.textfont;\n var attributeInsideTextFont = attributes.insidetextfont;\n var attributeOutsideTextFont = attributes.outsidetextfont;\n var helpers = require_helpers12();\n function style(gd) {\n var s = d3.select(gd).selectAll('g[class^=\"barlayer\"]').selectAll(\"g.trace\");\n resizeText(gd, s, \"bar\");\n var barcount = s.size();\n var fullLayout = gd._fullLayout;\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n }).each(function(d) {\n if (fullLayout.barmode === \"stack\" && barcount > 1 || fullLayout.bargap === 0 && fullLayout.bargroupgap === 0 && !d[0].trace.marker.line.width) {\n d3.select(this).attr(\"shape-rendering\", \"crispEdges\");\n }\n });\n s.selectAll(\"g.points\").each(function(d) {\n var sel = d3.select(this);\n var trace = d[0].trace;\n stylePoints(sel, trace, gd);\n });\n Registry.getComponentMethod(\"errorbars\", \"style\")(s);\n }\n function stylePoints(sel, trace, gd) {\n Drawing.pointStyle(sel.selectAll(\"path\"), trace, gd);\n styleTextPoints(sel, trace, gd);\n }\n function styleTextPoints(sel, trace, gd) {\n sel.selectAll(\"text\").each(function(d) {\n var tx = d3.select(this);\n var font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n Drawing.font(tx, font);\n });\n }\n function styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n if (trace.selectedpoints) {\n stylePointsInSelectionMode(sel, trace, gd);\n } else {\n stylePoints(sel, trace, gd);\n Registry.getComponentMethod(\"errorbars\", \"style\")(sel);\n }\n }\n function stylePointsInSelectionMode(s, trace, gd) {\n Drawing.selectedPointStyle(s.selectAll(\"path\"), trace);\n styleTextInSelectionMode(s.selectAll(\"text\"), trace, gd);\n }\n function styleTextInSelectionMode(txs, trace, gd) {\n txs.each(function(d) {\n var tx = d3.select(this);\n var font;\n if (d.selected) {\n font = Lib.ensureUniformFontSize(gd, determineFont(tx, d, trace, gd));\n var selectedFontColor = trace.selected.textfont && trace.selected.textfont.color;\n if (selectedFontColor) {\n font.color = selectedFontColor;\n }\n Drawing.font(tx, font);\n } else {\n Drawing.selectedTextStyle(tx, trace);\n }\n });\n }\n function determineFont(tx, d, trace, gd) {\n var layoutFont = gd._fullLayout.font;\n var textFont = trace.textfont;\n if (tx.classed(\"bartext-inside\")) {\n var barColor = getBarColor(d, trace);\n textFont = getInsideTextFont(trace, d.i, layoutFont, barColor);\n } else if (tx.classed(\"bartext-outside\")) {\n textFont = getOutsideTextFont(trace, d.i, layoutFont);\n }\n return textFont;\n }\n function getTextFont(trace, index, defaultValue) {\n return getFontValue(\n attributeTextFont,\n trace.textfont,\n index,\n defaultValue\n );\n }\n function getInsideTextFont(trace, index, layoutFont, barColor) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n var wouldFallBackToLayoutFont = trace._input.textfont === void 0 || trace._input.textfont.color === void 0 || Array.isArray(trace.textfont.color) && trace.textfont.color[index] === void 0;\n if (wouldFallBackToLayoutFont) {\n defaultFont = {\n color: Color2.contrast(barColor),\n family: defaultFont.family,\n size: defaultFont.size,\n weight: defaultFont.weight,\n style: defaultFont.style,\n variant: defaultFont.variant,\n textcase: defaultFont.textcase,\n lineposition: defaultFont.lineposition,\n shadow: defaultFont.shadow\n };\n }\n return getFontValue(\n attributeInsideTextFont,\n trace.insidetextfont,\n index,\n defaultFont\n );\n }\n function getOutsideTextFont(trace, index, layoutFont) {\n var defaultFont = getTextFont(trace, index, layoutFont);\n return getFontValue(\n attributeOutsideTextFont,\n trace.outsidetextfont,\n index,\n defaultFont\n );\n }\n function getFontValue(attributeDefinition, attributeValue, index, defaultValue) {\n attributeValue = attributeValue || {};\n var familyValue = helpers.getValue(attributeValue.family, index);\n var sizeValue = helpers.getValue(attributeValue.size, index);\n var colorValue = helpers.getValue(attributeValue.color, index);\n var weightValue = helpers.getValue(attributeValue.weight, index);\n var styleValue = helpers.getValue(attributeValue.style, index);\n var variantValue = helpers.getValue(attributeValue.variant, index);\n var textcaseValue = helpers.getValue(attributeValue.textcase, index);\n var linepositionValue = helpers.getValue(attributeValue.lineposition, index);\n var shadowValue = helpers.getValue(attributeValue.shadow, index);\n return {\n family: helpers.coerceString(\n attributeDefinition.family,\n familyValue,\n defaultValue.family\n ),\n size: helpers.coerceNumber(\n attributeDefinition.size,\n sizeValue,\n defaultValue.size\n ),\n color: helpers.coerceColor(\n attributeDefinition.color,\n colorValue,\n defaultValue.color\n ),\n weight: helpers.coerceString(\n attributeDefinition.weight,\n weightValue,\n defaultValue.weight\n ),\n style: helpers.coerceString(\n attributeDefinition.style,\n styleValue,\n defaultValue.style\n ),\n variant: helpers.coerceString(\n attributeDefinition.variant,\n variantValue,\n defaultValue.variant\n ),\n textcase: helpers.coerceString(\n attributeDefinition.variant,\n textcaseValue,\n defaultValue.textcase\n ),\n lineposition: helpers.coerceString(\n attributeDefinition.variant,\n linepositionValue,\n defaultValue.lineposition\n ),\n shadow: helpers.coerceString(\n attributeDefinition.variant,\n shadowValue,\n defaultValue.shadow\n )\n };\n }\n function getBarColor(cd, trace) {\n if (trace.type === \"waterfall\") {\n return trace[cd.dir].marker.color;\n }\n return cd.mcc || cd.mc || trace.marker.color;\n }\n module.exports = {\n style,\n styleTextPoints,\n styleOnSelect,\n getInsideTextFont,\n getOutsideTextFont,\n getBarColor,\n resizeText\n };\n }\n });\n\n // src/traces/bar/plot.js\n var require_plot3 = __commonJS({\n \"src/traces/bar/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Registry = require_registry();\n var tickText = require_axes().tickText;\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var style = require_style4();\n var helpers = require_helpers12();\n var constants = require_constants14();\n var attributes = require_attributes23();\n var attributeText = attributes.text;\n var attributeTextPosition = attributes.textposition;\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var TEXTPAD = constants.TEXTPAD;\n function keyFunc(d) {\n return d.id;\n }\n function getKeyFunc(trace) {\n if (trace.ids) {\n return keyFunc;\n }\n }\n function sign(v) {\n return (v > 0) - (v < 0);\n }\n function dirSign(a, b) {\n return a < b ? 1 : -1;\n }\n function getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n return isHorizontal ? [s, p] : [p, s];\n }\n function transition(selection, fullLayout, opts, makeOnCompleteCallback) {\n if (!fullLayout.uniformtext.mode && hasTransition(opts)) {\n var onComplete;\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n return selection.transition().duration(opts.duration).ease(opts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n } else {\n return selection;\n }\n }\n function hasTransition(transitionOpts) {\n return transitionOpts && transitionOpts.duration > 0;\n }\n function plot(gd, plotinfo, cdModule, traceLayer, opts, makeOnCompleteCallback) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var isStatic = gd._context.staticPlot;\n if (!opts) {\n opts = {\n mode: fullLayout.barmode,\n norm: fullLayout.barmode,\n gap: fullLayout.bargap,\n groupgap: fullLayout.bargroupgap\n };\n clearMinTextSize(\"bar\", fullLayout);\n }\n var bartraces = Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var t = cd[0].t;\n var isWaterfall = trace.type === \"waterfall\";\n var isFunnel = trace.type === \"funnel\";\n var isHistogram = trace.type === \"histogram\";\n var isBar = trace.type === \"bar\";\n var shouldDisplayZeros = isBar || isFunnel;\n var adjustPixel = 0;\n if (isWaterfall && trace.connector.visible && trace.connector.mode === \"between\") {\n adjustPixel = trace.connector.line.width / 2;\n }\n var isHorizontal = trace.orientation === \"h\";\n var withTransition = hasTransition(opts);\n var pointGroup = Lib.ensureSingle(plotGroup, \"g\", \"points\");\n var keyFunc2 = getKeyFunc(trace);\n var bars = pointGroup.selectAll(\"g.point\").data(Lib.identity, keyFunc2);\n bars.enter().append(\"g\").classed(\"point\", true);\n bars.exit().remove();\n bars.each(function(di, i) {\n var bar = d3.select(this);\n var xy = getXY(di, xa, ya, isHorizontal);\n var x0 = xy[0][0];\n var x1 = xy[0][1];\n var y0 = xy[1][0];\n var y1 = xy[1][1];\n var isBlank = (isHorizontal ? x1 - x0 : y1 - y0) === 0;\n if (isBlank && shouldDisplayZeros && helpers.getLineWidth(trace, di)) {\n isBlank = false;\n }\n if (!isBlank) {\n isBlank = !isNumeric(x0) || !isNumeric(x1) || !isNumeric(y0) || !isNumeric(y1);\n }\n di.isBlank = isBlank;\n if (isBlank) {\n if (isHorizontal) {\n x1 = x0;\n } else {\n y1 = y0;\n }\n }\n if (adjustPixel && !isBlank) {\n if (isHorizontal) {\n x0 -= dirSign(x0, x1) * adjustPixel;\n x1 += dirSign(x0, x1) * adjustPixel;\n } else {\n y0 -= dirSign(y0, y1) * adjustPixel;\n y1 += dirSign(y0, y1) * adjustPixel;\n }\n }\n var lw;\n var mc;\n if (trace.type === \"waterfall\") {\n if (!isBlank) {\n var cont = trace[di.dir].marker;\n lw = cont.line.width;\n mc = cont.color;\n }\n } else {\n lw = helpers.getLineWidth(trace, di);\n mc = di.mc || trace.marker.color;\n }\n function roundWithLine(v) {\n var offset = d3.round(lw / 2 % 1, 2);\n return opts.gap === 0 && opts.groupgap === 0 ? d3.round(Math.round(v) - offset, 2) : v;\n }\n function expandToVisible(v, vc, hideZeroSpan) {\n if (hideZeroSpan && v === vc) {\n return v;\n }\n return Math.abs(v - vc) >= 2 ? roundWithLine(v) : (\n // but if it's very thin, expand it so it's\n // necessarily visible, even if it might overlap\n // its neighbor\n v > vc ? Math.ceil(v) : Math.floor(v)\n );\n }\n var op = Color2.opacity(mc);\n var fixpx = op < 1 || lw > 0.01 ? roundWithLine : expandToVisible;\n if (!gd._context.staticPlot) {\n x0 = fixpx(x0, x1, isHorizontal);\n x1 = fixpx(x1, x0, isHorizontal);\n y0 = fixpx(y0, y1, !isHorizontal);\n y1 = fixpx(y1, y0, !isHorizontal);\n }\n var c2p = isHorizontal ? xa.c2p : ya.c2p;\n var outerBound;\n if (di.s0 > 0) {\n outerBound = di._sMax;\n } else if (di.s0 < 0) {\n outerBound = di._sMin;\n } else {\n outerBound = di.s1 > 0 ? di._sMax : di._sMin;\n }\n function calcCornerRadius(crValue, crForm) {\n if (!crValue) return 0;\n var barWidth = isHorizontal ? Math.abs(y1 - y0) : Math.abs(x1 - x0);\n var barLength = isHorizontal ? Math.abs(x1 - x0) : Math.abs(y1 - y0);\n var stackedBarTotalLength = fixpx(Math.abs(c2p(outerBound, true) - c2p(0, true)));\n var maxRadius = di.hasB ? Math.min(barWidth / 2, barLength / 2) : Math.min(barWidth / 2, stackedBarTotalLength);\n var crPx;\n if (crForm === \"%\") {\n var crPercent = Math.min(50, crValue);\n crPx = barWidth * (crPercent / 100);\n } else {\n crPx = crValue;\n }\n return fixpx(Math.max(Math.min(crPx, maxRadius), 0));\n }\n var r = isBar || isHistogram ? calcCornerRadius(t.cornerradiusvalue, t.cornerradiusform) : 0;\n var path, h;\n var rectanglePath = \"M\" + x0 + \",\" + y0 + \"V\" + y1 + \"H\" + x1 + \"V\" + y0 + \"Z\";\n var overhead = 0;\n if (r && di.s) {\n var refPoint = sign(di.s0) === 0 || sign(di.s) === sign(di.s0) ? di.s1 : di.s0;\n overhead = fixpx(!di.hasB ? Math.abs(c2p(outerBound, true) - c2p(refPoint, true)) : 0);\n if (overhead < r) {\n var xdir = dirSign(x0, x1);\n var ydir = dirSign(y0, y1);\n var cornersweep = xdir === -ydir ? 1 : 0;\n if (isHorizontal) {\n if (di.hasB) {\n path = \"M\" + (x0 + r * xdir) + \",\" + y0 + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x0 + \",\" + (y0 + r * ydir) + \"V\" + (y1 - r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x0 + r * xdir) + \",\" + y1 + \"H\" + (x1 - r * xdir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x1 + \",\" + (y1 - r * ydir) + \"V\" + (y0 + r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x1 - r * xdir) + \",\" + y0 + \"Z\";\n } else {\n h = Math.abs(x1 - x0) + overhead;\n var dy1 = h < r ? r - Math.sqrt(h * (2 * r - h)) : 0;\n var dy2 = overhead > 0 ? Math.sqrt(overhead * (2 * r - overhead)) : 0;\n var xminfunc = xdir > 0 ? Math.max : Math.min;\n path = \"M\" + x0 + \",\" + y0 + \"V\" + (y1 - dy1 * ydir) + \"H\" + xminfunc(x1 - (r - overhead) * xdir, x0) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x1 + \",\" + (y1 - r * ydir - dy2) + \"V\" + (y0 + r * ydir + dy2) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + xminfunc(x1 - (r - overhead) * xdir, x0) + \",\" + (y0 + dy1 * ydir) + \"Z\";\n }\n } else {\n if (di.hasB) {\n path = \"M\" + (x0 + r * xdir) + \",\" + y0 + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x0 + \",\" + (y0 + r * ydir) + \"V\" + (y1 - r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x0 + r * xdir) + \",\" + y1 + \"H\" + (x1 - r * xdir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + x1 + \",\" + (y1 - r * ydir) + \"V\" + (y0 + r * ydir) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x1 - r * xdir) + \",\" + y0 + \"Z\";\n } else {\n h = Math.abs(y1 - y0) + overhead;\n var dx1 = h < r ? r - Math.sqrt(h * (2 * r - h)) : 0;\n var dx2 = overhead > 0 ? Math.sqrt(overhead * (2 * r - overhead)) : 0;\n var yminfunc = ydir > 0 ? Math.max : Math.min;\n path = \"M\" + (x0 + dx1 * xdir) + \",\" + y0 + \"V\" + yminfunc(y1 - (r - overhead) * ydir, y0) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x0 + r * xdir - dx2) + \",\" + y1 + \"H\" + (x1 - r * xdir + dx2) + \"A \" + r + \",\" + r + \" 0 0 \" + cornersweep + \" \" + (x1 - dx1 * xdir) + \",\" + yminfunc(y1 - (r - overhead) * ydir, y0) + \"V\" + y0 + \"Z\";\n }\n }\n } else {\n path = rectanglePath;\n }\n } else {\n path = rectanglePath;\n }\n var sel = transition(Lib.ensureSingle(bar, \"path\"), fullLayout, opts, makeOnCompleteCallback);\n sel.style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").attr(\"d\", isNaN((x1 - x0) * (y1 - y0)) || isBlank && gd._context.staticPlot ? \"M0,0Z\" : path).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n if (!fullLayout.uniformtext.mode && withTransition) {\n var styleFns = Drawing.makePointStyleFns(trace);\n Drawing.singlePointStyle(di, sel, trace, styleFns, gd);\n }\n appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, r, overhead, opts, makeOnCompleteCallback);\n if (plotinfo.layerClipId) {\n Drawing.hideOutsideRangePoint(di, bar.select(\"text\"), xa, ya, trace.xcalendar, trace.ycalendar);\n }\n });\n var hasClipOnAxisFalse = trace.cliponaxis === false;\n Drawing.setClipUrl(plotGroup, hasClipOnAxisFalse ? null : plotinfo.layerClipId, gd);\n });\n Registry.getComponentMethod(\"errorbars\", \"plot\")(gd, bartraces, plotinfo, opts);\n }\n function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, r, overhead, opts, makeOnCompleteCallback) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var textPosition;\n function appendTextNode(bar2, text2, font2) {\n var textSelection2 = Lib.ensureSingle(bar2, \"text\").text(text2).attr({\n class: \"bartext bartext-\" + textPosition,\n \"text-anchor\": \"middle\",\n // prohibit tex interpretation until we can handle\n // tex and regular text together\n \"data-notex\": 1\n }).call(Drawing.font, font2).call(svgTextUtils.convertToTspans, gd);\n return textSelection2;\n }\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var text = getText(fullLayout, cd, i, xa, ya);\n textPosition = getTextPosition(trace, i);\n var inStackOrRelativeMode = opts.mode === \"stack\" || opts.mode === \"relative\";\n var calcBar = cd[i];\n var isOutmostBar = !inStackOrRelativeMode || calcBar._outmost;\n var hasB = calcBar.hasB;\n var barIsRounded = r && r - overhead > TEXTPAD;\n if (!text || textPosition === \"none\" || (calcBar.isBlank || x0 === x1 || y0 === y1) && (textPosition === \"auto\" || textPosition === \"inside\")) {\n bar.select(\"text\").remove();\n return;\n }\n var layoutFont = fullLayout.font;\n var barColor = style.getBarColor(cd[i], trace);\n var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor);\n var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont);\n var insidetextanchor = trace.insidetextanchor || \"end\";\n var di = bar.datum();\n if (isHorizontal) {\n if (xa.type === \"log\" && di.s0 <= 0) {\n if (xa.range[0] < xa.range[1]) {\n x0 = 0;\n } else {\n x0 = xa._length;\n }\n }\n } else {\n if (ya.type === \"log\" && di.s0 <= 0) {\n if (ya.range[0] < ya.range[1]) {\n y0 = ya._length;\n } else {\n y0 = 0;\n }\n }\n }\n var lx = Math.abs(x1 - x0);\n var ly = Math.abs(y1 - y0);\n var barWidth = lx - 2 * TEXTPAD;\n var barHeight = ly - 2 * TEXTPAD;\n var textSelection;\n var textBB;\n var textWidth;\n var textHeight;\n var font;\n if (textPosition === \"outside\") {\n if (!isOutmostBar && !calcBar.hasB) textPosition = \"inside\";\n }\n if (textPosition === \"auto\") {\n if (isOutmostBar) {\n textPosition = \"inside\";\n font = Lib.ensureUniformFontSize(gd, insideTextFont);\n textSelection = appendTextNode(bar, text, font);\n textBB = Drawing.bBox(textSelection.node());\n textWidth = textBB.width;\n textHeight = textBB.height;\n var textHasSize = textWidth > 0 && textHeight > 0;\n var fitsInside;\n if (barIsRounded) {\n if (hasB) {\n fitsInside = textfitsInsideBar(barWidth - 2 * r, barHeight, textWidth, textHeight, isHorizontal) || textfitsInsideBar(barWidth, barHeight - 2 * r, textWidth, textHeight, isHorizontal);\n } else if (isHorizontal) {\n fitsInside = textfitsInsideBar(barWidth - (r - overhead), barHeight, textWidth, textHeight, isHorizontal) || textfitsInsideBar(barWidth, barHeight - 2 * (r - overhead), textWidth, textHeight, isHorizontal);\n } else {\n fitsInside = textfitsInsideBar(barWidth, barHeight - (r - overhead), textWidth, textHeight, isHorizontal) || textfitsInsideBar(barWidth - 2 * (r - overhead), barHeight, textWidth, textHeight, isHorizontal);\n }\n } else {\n fitsInside = textfitsInsideBar(barWidth, barHeight, textWidth, textHeight, isHorizontal);\n }\n if (textHasSize && fitsInside) {\n textPosition = \"inside\";\n } else {\n textPosition = \"outside\";\n textSelection.remove();\n textSelection = null;\n }\n } else {\n textPosition = \"inside\";\n }\n }\n if (!textSelection) {\n font = Lib.ensureUniformFontSize(gd, textPosition === \"outside\" ? outsideTextFont : insideTextFont);\n textSelection = appendTextNode(bar, text, font);\n var currentTransform = textSelection.attr(\"transform\");\n textSelection.attr(\"transform\", \"\");\n textBB = Drawing.bBox(textSelection.node()), textWidth = textBB.width, textHeight = textBB.height;\n textSelection.attr(\"transform\", currentTransform);\n if (textWidth <= 0 || textHeight <= 0) {\n textSelection.remove();\n return;\n }\n }\n var angle = trace.textangle;\n var transform, constrained;\n if (textPosition === \"outside\") {\n constrained = trace.constraintext === \"both\" || trace.constraintext === \"outside\";\n transform = toMoveOutsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal,\n constrained,\n angle\n });\n } else {\n constrained = trace.constraintext === \"both\" || trace.constraintext === \"inside\";\n transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal,\n constrained,\n angle,\n anchor: insidetextanchor,\n hasB,\n r,\n overhead\n });\n }\n transform.fontSize = font.size;\n recordMinTextSize(trace.type === \"histogram\" ? \"bar\" : trace.type, transform, fullLayout);\n calcBar.transform = transform;\n var s = transition(textSelection, fullLayout, opts, makeOnCompleteCallback);\n Lib.setTransormAndDisplay(s, transform);\n }\n function textfitsInsideBar(barWidth, barHeight, textWidth, textHeight, isHorizontal) {\n if (barWidth < 0 || barHeight < 0) return false;\n var fitsInside = textWidth <= barWidth && textHeight <= barHeight;\n var fitsInsideIfRotated = textWidth <= barHeight && textHeight <= barWidth;\n var fitsInsideIfShrunk = isHorizontal ? barWidth >= textWidth * (barHeight / textHeight) : barHeight >= textHeight * (barWidth / textWidth);\n return fitsInside || fitsInsideIfRotated || fitsInsideIfShrunk;\n }\n function getRotateFromAngle(angle) {\n return angle === \"auto\" ? 0 : angle;\n }\n function getRotatedTextSize(textBB, rotate) {\n var a = Math.PI / 180 * rotate;\n var absSin = Math.abs(Math.sin(a));\n var absCos = Math.abs(Math.cos(a));\n return {\n x: textBB.width * absCos + textBB.height * absSin,\n y: textBB.width * absSin + textBB.height * absCos\n };\n }\n function toMoveInsideBar(x0, x1, y0, y1, textBB, opts) {\n var isHorizontal = !!opts.isHorizontal;\n var constrained = !!opts.constrained;\n var angle = opts.angle || 0;\n var anchor = opts.anchor;\n var isEnd = anchor === \"end\";\n var isStart = anchor === \"start\";\n var leftToRight = opts.leftToRight || 0;\n var toRight = (leftToRight + 1) / 2;\n var toLeft = 1 - toRight;\n var hasB = opts.hasB;\n var r = opts.r;\n var overhead = opts.overhead;\n var textWidth = textBB.width;\n var textHeight = textBB.height;\n var lx = Math.abs(x1 - x0);\n var ly = Math.abs(y1 - y0);\n var textpad = lx > 2 * TEXTPAD && ly > 2 * TEXTPAD ? TEXTPAD : 0;\n lx -= 2 * textpad;\n ly -= 2 * textpad;\n var rotate = getRotateFromAngle(angle);\n if (angle === \"auto\" && !(textWidth <= lx && textHeight <= ly) && (textWidth > lx || textHeight > ly) && (!(textWidth > ly || textHeight > lx) || textWidth < textHeight !== lx < ly)) {\n rotate += 90;\n }\n var t = getRotatedTextSize(textBB, rotate);\n var scale, padForRounding;\n if (r && r - overhead > TEXTPAD) {\n var scaleAndPad = scaleTextForRoundedBar(x0, x1, y0, y1, t, r, overhead, isHorizontal, hasB);\n scale = scaleAndPad.scale;\n padForRounding = scaleAndPad.pad;\n } else {\n scale = 1;\n if (constrained) {\n scale = Math.min(\n 1,\n lx / t.x,\n ly / t.y\n );\n }\n padForRounding = 0;\n }\n var textX = textBB.left * toLeft + textBB.right * toRight;\n var textY = (textBB.top + textBB.bottom) / 2;\n var targetX = (x0 + TEXTPAD) * toLeft + (x1 - TEXTPAD) * toRight;\n var targetY = (y0 + y1) / 2;\n var anchorX = 0;\n var anchorY = 0;\n if (isStart || isEnd) {\n var extrapad = (isHorizontal ? t.x : t.y) / 2;\n if (r && (isEnd || hasB)) {\n textpad += padForRounding;\n }\n var dir = isHorizontal ? dirSign(x0, x1) : dirSign(y0, y1);\n if (isHorizontal) {\n if (isStart) {\n targetX = x0 + dir * textpad;\n anchorX = -dir * extrapad;\n } else {\n targetX = x1 - dir * textpad;\n anchorX = dir * extrapad;\n }\n } else {\n if (isStart) {\n targetY = y0 + dir * textpad;\n anchorY = -dir * extrapad;\n } else {\n targetY = y1 - dir * textpad;\n anchorY = dir * extrapad;\n }\n }\n }\n return {\n textX,\n textY,\n targetX,\n targetY,\n anchorX,\n anchorY,\n scale,\n rotate\n };\n }\n function scaleTextForRoundedBar(x0, x1, y0, y1, t, r, overhead, isHorizontal, hasB) {\n var barWidth = Math.max(0, Math.abs(x1 - x0) - 2 * TEXTPAD);\n var barHeight = Math.max(0, Math.abs(y1 - y0) - 2 * TEXTPAD);\n var R = r - TEXTPAD;\n var clippedR = overhead ? R - Math.sqrt(R * R - (R - overhead) * (R - overhead)) : R;\n var rX = hasB ? R * 2 : isHorizontal ? R - overhead : 2 * clippedR;\n var rY = hasB ? R * 2 : isHorizontal ? 2 * clippedR : R - overhead;\n var a, b, c;\n var scale, pad;\n if (t.y / t.x >= barHeight / (barWidth - rX)) {\n scale = barHeight / t.y;\n } else if (t.y / t.x <= (barHeight - rY) / barWidth) {\n scale = barWidth / t.x;\n } else if (!hasB && isHorizontal) {\n a = t.x * t.x + t.y * t.y / 4;\n b = -2 * t.x * (barWidth - R) - t.y * (barHeight / 2 - R);\n c = (barWidth - R) * (barWidth - R) + (barHeight / 2 - R) * (barHeight / 2 - R) - R * R;\n scale = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n } else if (!hasB) {\n a = t.x * t.x / 4 + t.y * t.y;\n b = -t.x * (barWidth / 2 - R) - 2 * t.y * (barHeight - R);\n c = (barWidth / 2 - R) * (barWidth / 2 - R) + (barHeight - R) * (barHeight - R) - R * R;\n scale = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n } else {\n a = (t.x * t.x + t.y * t.y) / 4;\n b = -t.x * (barWidth / 2 - R) - t.y * (barHeight / 2 - R);\n c = (barWidth / 2 - R) * (barWidth / 2 - R) + (barHeight / 2 - R) * (barHeight / 2 - R) - R * R;\n scale = (-b + Math.sqrt(b * b - 4 * a * c)) / (2 * a);\n }\n scale = Math.min(1, scale);\n if (isHorizontal) {\n pad = Math.max(0, R - Math.sqrt(Math.max(0, R * R - (R - (barHeight - t.y * scale) / 2) * (R - (barHeight - t.y * scale) / 2))) - overhead);\n } else {\n pad = Math.max(0, R - Math.sqrt(Math.max(0, R * R - (R - (barWidth - t.x * scale) / 2) * (R - (barWidth - t.x * scale) / 2))) - overhead);\n }\n return { scale, pad };\n }\n function toMoveOutsideBar(x0, x1, y0, y1, textBB, opts) {\n var isHorizontal = !!opts.isHorizontal;\n var constrained = !!opts.constrained;\n var angle = opts.angle || 0;\n var textWidth = textBB.width;\n var textHeight = textBB.height;\n var lx = Math.abs(x1 - x0);\n var ly = Math.abs(y1 - y0);\n var textpad;\n if (isHorizontal) {\n textpad = ly > 2 * TEXTPAD ? TEXTPAD : 0;\n } else {\n textpad = lx > 2 * TEXTPAD ? TEXTPAD : 0;\n }\n var scale = 1;\n if (constrained) {\n scale = isHorizontal ? Math.min(1, ly / textHeight) : Math.min(1, lx / textWidth);\n }\n var rotate = getRotateFromAngle(angle);\n var t = getRotatedTextSize(textBB, rotate);\n var extrapad = (isHorizontal ? t.x : t.y) / 2;\n var textX = (textBB.left + textBB.right) / 2;\n var textY = (textBB.top + textBB.bottom) / 2;\n var targetX = (x0 + x1) / 2;\n var targetY = (y0 + y1) / 2;\n var anchorX = 0;\n var anchorY = 0;\n var dir = isHorizontal ? dirSign(x1, x0) : dirSign(y0, y1);\n if (isHorizontal) {\n targetX = x1 - dir * textpad;\n anchorX = dir * extrapad;\n } else {\n targetY = y1 + dir * textpad;\n anchorY = -dir * extrapad;\n }\n return {\n textX,\n textY,\n targetX,\n targetY,\n anchorX,\n anchorY,\n scale,\n rotate\n };\n }\n function getText(fullLayout, cd, index, xa, ya) {\n var trace = cd[0].trace;\n var texttemplate = trace.texttemplate;\n var value;\n if (texttemplate) {\n value = calcTexttemplate(fullLayout, cd, index, xa, ya);\n } else if (trace.textinfo) {\n value = calcTextinfo(cd, index, xa, ya);\n } else {\n value = helpers.getValue(trace.text, index);\n }\n return helpers.coerceString(attributeText, value);\n }\n function getTextPosition(trace, index) {\n var value = helpers.getValue(trace.textposition, index);\n return helpers.coerceEnumerated(attributeTextPosition, value);\n }\n function calcTexttemplate(fullLayout, cd, index, xa, ya) {\n var trace = cd[0].trace;\n var texttemplate = Lib.castOption(trace, index, \"texttemplate\");\n if (!texttemplate) return \"\";\n var isHistogram = trace.type === \"histogram\";\n var isWaterfall = trace.type === \"waterfall\";\n var isFunnel = trace.type === \"funnel\";\n var isHorizontal = trace.orientation === \"h\";\n var pLetter, pAxis;\n var vLetter, vAxis;\n if (isHorizontal) {\n pLetter = \"y\";\n pAxis = ya;\n vLetter = \"x\";\n vAxis = xa;\n } else {\n pLetter = \"x\";\n pAxis = xa;\n vLetter = \"y\";\n vAxis = ya;\n }\n function formatLabel(u) {\n return tickText(pAxis, pAxis.c2l(u), true).text;\n }\n function formatNumber(v) {\n return tickText(vAxis, vAxis.c2l(v), true).text;\n }\n var cdi = cd[index];\n var obj = {};\n obj.label = cdi.p;\n obj.labelLabel = obj[pLetter + \"Label\"] = formatLabel(cdi.p);\n var tx = Lib.castOption(trace, cdi.i, \"text\");\n if (tx === 0 || tx) obj.text = tx;\n obj.value = cdi.s;\n obj.valueLabel = obj[vLetter + \"Label\"] = formatNumber(cdi.s);\n var pt = {};\n appendArrayPointValue(pt, trace, cdi.i);\n if (isHistogram || pt.x === void 0) pt.x = isHorizontal ? obj.value : obj.label;\n if (isHistogram || pt.y === void 0) pt.y = isHorizontal ? obj.label : obj.value;\n if (isHistogram || pt.xLabel === void 0) pt.xLabel = isHorizontal ? obj.valueLabel : obj.labelLabel;\n if (isHistogram || pt.yLabel === void 0) pt.yLabel = isHorizontal ? obj.labelLabel : obj.valueLabel;\n if (isWaterfall) {\n obj.delta = +cdi.rawS || cdi.s;\n obj.deltaLabel = formatNumber(obj.delta);\n obj.final = cdi.v;\n obj.finalLabel = formatNumber(obj.final);\n obj.initial = obj.final - obj.delta;\n obj.initialLabel = formatNumber(obj.initial);\n }\n if (isFunnel) {\n obj.value = cdi.s;\n obj.valueLabel = formatNumber(obj.value);\n obj.percentInitial = cdi.begR;\n obj.percentInitialLabel = Lib.formatPercent(cdi.begR);\n obj.percentPrevious = cdi.difR;\n obj.percentPreviousLabel = Lib.formatPercent(cdi.difR);\n obj.percentTotal = cdi.sumR;\n obj.percenTotalLabel = Lib.formatPercent(cdi.sumR);\n }\n var customdata = Lib.castOption(trace, cdi.i, \"customdata\");\n if (customdata) obj.customdata = customdata;\n return Lib.texttemplateString(texttemplate, obj, fullLayout._d3locale, pt, obj, trace._meta || {});\n }\n function calcTextinfo(cd, index, xa, ya) {\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var isWaterfall = trace.type === \"waterfall\";\n var isFunnel = trace.type === \"funnel\";\n function formatLabel(u) {\n var pAxis = isHorizontal ? ya : xa;\n return tickText(pAxis, u, true).text;\n }\n function formatNumber(v) {\n var sAxis = isHorizontal ? xa : ya;\n return tickText(sAxis, +v, true).text;\n }\n var textinfo = trace.textinfo;\n var cdi = cd[index];\n var parts = textinfo.split(\"+\");\n var text = [];\n var tx;\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n if (hasFlag(\"label\")) {\n text.push(formatLabel(cd[index].p));\n }\n if (hasFlag(\"text\")) {\n tx = Lib.castOption(trace, cdi.i, \"text\");\n if (tx === 0 || tx) text.push(tx);\n }\n if (isWaterfall) {\n var delta = +cdi.rawS || cdi.s;\n var final = cdi.v;\n var initial = final - delta;\n if (hasFlag(\"initial\")) text.push(formatNumber(initial));\n if (hasFlag(\"delta\")) text.push(formatNumber(delta));\n if (hasFlag(\"final\")) text.push(formatNumber(final));\n }\n if (isFunnel) {\n if (hasFlag(\"value\")) text.push(formatNumber(cdi.s));\n var nPercent = 0;\n if (hasFlag(\"percent initial\")) nPercent++;\n if (hasFlag(\"percent previous\")) nPercent++;\n if (hasFlag(\"percent total\")) nPercent++;\n var hasMultiplePercents = nPercent > 1;\n if (hasFlag(\"percent initial\")) {\n tx = Lib.formatPercent(cdi.begR);\n if (hasMultiplePercents) tx += \" of initial\";\n text.push(tx);\n }\n if (hasFlag(\"percent previous\")) {\n tx = Lib.formatPercent(cdi.difR);\n if (hasMultiplePercents) tx += \" of previous\";\n text.push(tx);\n }\n if (hasFlag(\"percent total\")) {\n tx = Lib.formatPercent(cdi.sumR);\n if (hasMultiplePercents) tx += \" of total\";\n text.push(tx);\n }\n }\n return text.join(\"
\");\n }\n module.exports = {\n plot,\n toMoveInsideBar\n };\n }\n });\n\n // src/traces/bar/hover.js\n var require_hover3 = __commonJS({\n \"src/traces/bar/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Registry = require_registry();\n var Color2 = require_color();\n var fillText = require_lib().fillText;\n var getLineWidth = require_helpers12().getLineWidth;\n var hoverLabelText = require_axes().hoverLabelText;\n var BADNUM = require_numerical().BADNUM;\n function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var barPointData = hoverOnBars(pointData, xval, yval, hovermode, opts);\n if (barPointData) {\n var cd = barPointData.cd;\n var trace = cd[0].trace;\n var di = cd[barPointData.index];\n barPointData.color = getTraceColor(trace, di);\n Registry.getComponentMethod(\"errorbars\", \"hoverInfo\")(di, trace, barPointData);\n return [barPointData];\n }\n }\n function hoverOnBars(pointData, xval, yval, hovermode, opts) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var isClosest = hovermode === \"closest\";\n var isWaterfall = trace.type === \"waterfall\";\n var maxHoverDistance = pointData.maxHoverDistance;\n var maxSpikeDistance = pointData.maxSpikeDistance;\n var posVal, sizeVal, posLetter, sizeLetter, dx, dy, pRangeCalc;\n if (trace.orientation === \"h\") {\n posVal = yval;\n sizeVal = xval;\n posLetter = \"y\";\n sizeLetter = \"x\";\n dx = sizeFn;\n dy = positionFn;\n } else {\n posVal = xval;\n sizeVal = yval;\n posLetter = \"x\";\n sizeLetter = \"y\";\n dy = sizeFn;\n dx = positionFn;\n }\n var period = trace[posLetter + \"period\"];\n var isClosestOrPeriod = isClosest || period;\n function thisBarMinPos(di2) {\n return thisBarExtPos(di2, -1);\n }\n function thisBarMaxPos(di2) {\n return thisBarExtPos(di2, 1);\n }\n function thisBarExtPos(di2, sgn) {\n var w = di2.w;\n return di2[posLetter] + sgn * w / 2;\n }\n function periodLength(di2) {\n return di2[posLetter + \"End\"] - di2[posLetter + \"Start\"];\n }\n var minPos = isClosest ? thisBarMinPos : period ? function(di2) {\n return di2.p - periodLength(di2) / 2;\n } : function(di2) {\n return Math.min(thisBarMinPos(di2), di2.p - t.bardelta / 2);\n };\n var maxPos = isClosest ? thisBarMaxPos : period ? function(di2) {\n return di2.p + periodLength(di2) / 2;\n } : function(di2) {\n return Math.max(thisBarMaxPos(di2), di2.p + t.bardelta / 2);\n };\n function inbox(_minPos, _maxPos, maxDistance) {\n if (opts.finiteRange) maxDistance = 0;\n return Fx.inbox(\n _minPos - posVal,\n _maxPos - posVal,\n maxDistance + Math.min(1, Math.abs(_maxPos - _minPos) / pRangeCalc) - 1\n );\n }\n function positionFn(di2) {\n return inbox(minPos(di2), maxPos(di2), maxHoverDistance);\n }\n function thisBarPositionFn(di2) {\n return inbox(thisBarMinPos(di2), thisBarMaxPos(di2), maxSpikeDistance);\n }\n function getSize(di2) {\n var s = di2[sizeLetter];\n if (isWaterfall) {\n var rawS = Math.abs(di2.rawS) || 0;\n if (sizeVal > 0) {\n s += rawS;\n } else if (sizeVal < 0) {\n s -= rawS;\n }\n }\n return s;\n }\n function sizeFn(di2) {\n var v = sizeVal;\n var b = di2.b;\n var s = getSize(di2);\n return Fx.inbox(b - v, s - v, maxHoverDistance + (s - v) / (s - b) - 1);\n }\n function thisBarSizeFn(di2) {\n var v = sizeVal;\n var b = di2.b;\n var s = getSize(di2);\n return Fx.inbox(b - v, s - v, maxSpikeDistance + (s - v) / (s - b) - 1);\n }\n var pa = pointData[posLetter + \"a\"];\n var sa = pointData[sizeLetter + \"a\"];\n pRangeCalc = Math.abs(pa.r2c(pa.range[1]) - pa.r2c(pa.range[0]));\n function dxy(di2) {\n return (dx(di2) + dy(di2)) / 2;\n }\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index === false) return;\n if (cd[pointData.index].p === BADNUM) return;\n if (!isClosestOrPeriod) {\n minPos = function(di2) {\n return Math.min(thisBarMinPos(di2), di2.p - t.bargroupwidth / 2);\n };\n maxPos = function(di2) {\n return Math.max(thisBarMaxPos(di2), di2.p + t.bargroupwidth / 2);\n };\n }\n var index = pointData.index;\n var di = cd[index];\n var size = trace.base ? di.b + di.s : di.s;\n pointData[sizeLetter + \"0\"] = pointData[sizeLetter + \"1\"] = sa.c2p(di[sizeLetter], true);\n pointData[sizeLetter + \"LabelVal\"] = size;\n var extent = t.extents[t.extents.round(di.p)];\n pointData[posLetter + \"0\"] = pa.c2p(isClosest ? minPos(di) : extent[0], true);\n pointData[posLetter + \"1\"] = pa.c2p(isClosest ? maxPos(di) : extent[1], true);\n var hasPeriod = di.orig_p !== void 0;\n pointData[posLetter + \"LabelVal\"] = hasPeriod ? di.orig_p : di.p;\n pointData.labelLabel = hoverLabelText(pa, pointData[posLetter + \"LabelVal\"], trace[posLetter + \"hoverformat\"]);\n pointData.valueLabel = hoverLabelText(sa, pointData[sizeLetter + \"LabelVal\"], trace[sizeLetter + \"hoverformat\"]);\n pointData.baseLabel = hoverLabelText(sa, di.b, trace[sizeLetter + \"hoverformat\"]);\n pointData.spikeDistance = (thisBarSizeFn(di) + thisBarPositionFn(di)) / 2;\n pointData[posLetter + \"Spike\"] = pa.c2p(di.p, true);\n fillText(di, trace, pointData);\n pointData.hovertemplate = trace.hovertemplate;\n return pointData;\n }\n function getTraceColor(trace, di) {\n var mc = di.mcc || trace.marker.color;\n var mlc = di.mlcc || trace.marker.line.color;\n var mlw = getLineWidth(trace, di);\n if (Color2.opacity(mc)) return mc;\n else if (Color2.opacity(mlc) && mlw) return mlc;\n }\n module.exports = {\n hoverPoints,\n hoverOnBars,\n getTraceColor\n };\n }\n });\n\n // src/traces/bar/event_data.js\n var require_event_data = __commonJS({\n \"src/traces/bar/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (trace.orientation === \"h\") {\n out.label = out.y;\n out.value = out.x;\n } else {\n out.label = out.x;\n out.value = out.y;\n }\n return out;\n };\n }\n });\n\n // src/traces/bar/select.js\n var require_select3 = __commonJS({\n \"src/traces/bar/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var trace = cd[0].trace;\n var isFunnel = trace.type === \"funnel\";\n var isHorizontal = trace.orientation === \"h\";\n var selection = [];\n var i;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n var ct = \"ct\" in di ? di.ct : getCentroid(di, xa, ya, isHorizontal, isFunnel);\n if (selectionTester.contains(ct, false, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: xa.c2d(di.x),\n y: ya.c2d(di.y)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n function getCentroid(d, xa, ya, isHorizontal, isFunnel) {\n var x0 = xa.c2p(isHorizontal ? d.s0 : d.p0, true);\n var x1 = xa.c2p(isHorizontal ? d.s1 : d.p1, true);\n var y0 = ya.c2p(isHorizontal ? d.p0 : d.s0, true);\n var y1 = ya.c2p(isHorizontal ? d.p1 : d.s1, true);\n if (isFunnel) {\n return [(x0 + x1) / 2, (y0 + y1) / 2];\n } else {\n if (isHorizontal) {\n return [x1, (y0 + y1) / 2];\n } else {\n return [(x0 + x1) / 2, y1];\n }\n }\n }\n }\n });\n\n // src/traces/bar/index.js\n var require_bar = __commonJS({\n \"src/traces/bar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes23(),\n layoutAttributes: require_layout_attributes6(),\n supplyDefaults: require_defaults19().supplyDefaults,\n crossTraceDefaults: require_defaults19().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults5(),\n calc: require_calc5(),\n crossTraceCalc: require_cross_trace_calc().crossTraceCalc,\n colorbar: require_marker_colorbar(),\n arraysToCalcdata: require_arrays_to_calcdata2(),\n plot: require_plot3().plot,\n style: require_style4().style,\n styleOnSelect: require_style4().styleOnSelect,\n hoverPoints: require_hover3().hoverPoints,\n eventData: require_event_data(),\n selectPoints: require_select3(),\n moduleType: \"trace\",\n name: \"bar\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"bar\", \"oriented\", \"errorBarsOK\", \"showLegend\", \"zoomScale\"],\n animatable: true,\n meta: {}\n };\n }\n });\n\n // lib/bar.js\n var require_bar2 = __commonJS({\n \"lib/bar.js\"(exports, module) {\n \"use strict\";\n module.exports = require_bar();\n }\n });\n\n // src/traces/box/attributes.js\n var require_attributes24 = __commonJS({\n \"src/traces/box/attributes.js\"(exports, module) {\n \"use strict\";\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var barAttrs = require_attributes23();\n var colorAttrs = require_attributes3();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = {\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n x0: {\n valType: \"any\",\n editType: \"calc+clearAxisTypes\"\n },\n y0: {\n valType: \"any\",\n editType: \"calc+clearAxisTypes\"\n },\n dx: {\n valType: \"number\",\n editType: \"calc\"\n },\n dy: {\n valType: \"number\",\n editType: \"calc\"\n },\n xperiod: scatterAttrs.xperiod,\n yperiod: scatterAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n yperiodalignment: scatterAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n name: {\n valType: \"string\",\n editType: \"calc+clearAxisTypes\"\n },\n q1: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n median: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n q3: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n lowerfence: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n upperfence: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n notched: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n notchwidth: {\n valType: \"number\",\n min: 0,\n max: 0.5,\n dflt: 0.25,\n editType: \"calc\"\n },\n notchspan: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO\n // maybe add\n // - loweroutlierbound / upperoutlierbound\n // - lowersuspectedoutlierbound / uppersuspectedoutlierbound\n boxpoints: {\n valType: \"enumerated\",\n values: [\"all\", \"outliers\", \"suspectedoutliers\", false],\n editType: \"calc\"\n },\n jitter: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n pointpos: {\n valType: \"number\",\n min: -2,\n max: 2,\n editType: \"calc\"\n },\n sdmultiple: {\n valType: \"number\",\n min: 0,\n editType: \"calc\",\n dflt: 1\n },\n sizemode: {\n valType: \"enumerated\",\n values: [\"quartiles\", \"sd\"],\n editType: \"calc\",\n dflt: \"quartiles\"\n },\n boxmean: {\n valType: \"enumerated\",\n values: [true, \"sd\", false],\n editType: \"calc\"\n },\n mean: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n sd: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n editType: \"calc+clearAxisTypes\"\n },\n quartilemethod: {\n valType: \"enumerated\",\n values: [\"linear\", \"exclusive\", \"inclusive\"],\n dflt: \"linear\",\n editType: \"calc\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n marker: {\n outliercolor: {\n valType: \"color\",\n dflt: \"rgba(0, 0, 0, 0)\",\n editType: \"style\"\n },\n symbol: extendFlat(\n {},\n scatterMarkerAttrs.symbol,\n { arrayOk: false, editType: \"plot\" }\n ),\n opacity: extendFlat(\n {},\n scatterMarkerAttrs.opacity,\n { arrayOk: false, dflt: 1, editType: \"style\" }\n ),\n angle: extendFlat(\n {},\n scatterMarkerAttrs.angle,\n { arrayOk: false, editType: \"calc\" }\n ),\n size: extendFlat(\n {},\n scatterMarkerAttrs.size,\n { arrayOk: false, editType: \"calc\" }\n ),\n color: extendFlat(\n {},\n scatterMarkerAttrs.color,\n { arrayOk: false, editType: \"style\" }\n ),\n line: {\n color: extendFlat(\n {},\n scatterMarkerLineAttrs.color,\n { arrayOk: false, dflt: colorAttrs.defaultLine, editType: \"style\" }\n ),\n width: extendFlat(\n {},\n scatterMarkerLineAttrs.width,\n { arrayOk: false, dflt: 0, editType: \"style\" }\n ),\n outliercolor: {\n valType: \"color\",\n editType: \"style\"\n },\n outlierwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"plot\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\"\n },\n editType: \"plot\"\n },\n fillcolor: makeFillcolorAttr(),\n whiskerwidth: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5,\n editType: \"calc\"\n },\n showwhiskers: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n selected: {\n marker: scatterAttrs.selected.marker,\n editType: \"style\"\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n editType: \"style\"\n },\n text: extendFlat({}, scatterAttrs.text, {}),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n hovertemplate: hovertemplateAttrs({}),\n hoveron: {\n valType: \"flaglist\",\n flags: [\"boxes\", \"points\"],\n dflt: \"boxes+points\",\n editType: \"style\"\n },\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/box/layout_attributes.js\n var require_layout_attributes7 = __commonJS({\n \"src/traces/box/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n boxmode: {\n valType: \"enumerated\",\n values: [\"group\", \"overlay\"],\n dflt: \"overlay\",\n editType: \"calc\"\n },\n boxgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.3,\n editType: \"calc\"\n },\n boxgroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.3,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/box/defaults.js\n var require_defaults20 = __commonJS({\n \"src/traces/box/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var Color2 = require_color();\n var handlePeriodDefaults = require_period_defaults();\n var handleGroupingDefaults = require_grouping_defaults();\n var autoType = require_axis_autotype();\n var attributes = require_attributes24();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n var hasPreCompStats = traceOut._hasPreCompStats;\n if (hasPreCompStats) {\n coerce(\"lowerfence\");\n coerce(\"upperfence\");\n }\n coerce(\"line.color\", (traceIn.marker || {}).color || defaultColor);\n coerce(\"line.width\");\n coerce(\"fillcolor\", Color2.addOpacity(traceOut.line.color, 0.5));\n var boxmeanDflt = false;\n if (hasPreCompStats) {\n var mean = coerce(\"mean\");\n var sd = coerce(\"sd\");\n if (mean && mean.length) {\n boxmeanDflt = true;\n if (sd && sd.length) boxmeanDflt = \"sd\";\n }\n }\n coerce(\"whiskerwidth\");\n var sizemode = coerce(\"sizemode\");\n var boxmean;\n if (sizemode === \"quartiles\") {\n boxmean = coerce(\"boxmean\", boxmeanDflt);\n }\n coerce(\"showwhiskers\", sizemode === \"quartiles\");\n if (sizemode === \"sd\" || boxmean === \"sd\") {\n coerce(\"sdmultiple\");\n }\n coerce(\"width\");\n coerce(\"quartilemethod\");\n var notchedDflt = false;\n if (hasPreCompStats) {\n var notchspan = coerce(\"notchspan\");\n if (notchspan && notchspan.length) {\n notchedDflt = true;\n }\n } else if (Lib.validate(traceIn.notchwidth, attributes.notchwidth)) {\n notchedDflt = true;\n }\n var notched = coerce(\"notched\", notchedDflt);\n if (notched) coerce(\"notchwidth\");\n handlePointsDefaults(traceIn, traceOut, coerce, { prefix: \"box\" });\n coerce(\"zorder\");\n }\n function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n function getDims(arr) {\n var dims = 0;\n if (arr && arr.length) {\n dims += 1;\n if (Lib.isArrayOrTypedArray(arr[0]) && arr[0].length) {\n dims += 1;\n }\n }\n return dims;\n }\n function valid(astr) {\n return Lib.validate(traceIn[astr], attributes[astr]);\n }\n var y = coerce(\"y\");\n var x = coerce(\"x\");\n var sLen;\n if (traceOut.type === \"box\") {\n var q1 = coerce(\"q1\");\n var median = coerce(\"median\");\n var q3 = coerce(\"q3\");\n traceOut._hasPreCompStats = q1 && q1.length && median && median.length && q3 && q3.length;\n sLen = Math.min(\n Lib.minRowLength(q1),\n Lib.minRowLength(median),\n Lib.minRowLength(q3)\n );\n }\n var yDims = getDims(y);\n var xDims = getDims(x);\n var yLen = yDims && Lib.minRowLength(y);\n var xLen = xDims && Lib.minRowLength(x);\n var calendar = layout.calendar;\n var opts = {\n autotypenumbers: layout.autotypenumbers\n };\n var defaultOrientation, len;\n if (traceOut._hasPreCompStats) {\n switch (String(xDims) + String(yDims)) {\n // no x / no y\n case \"00\":\n var setInX = valid(\"x0\") || valid(\"dx\");\n var setInY = valid(\"y0\") || valid(\"dy\");\n if (setInY && !setInX) {\n defaultOrientation = \"h\";\n } else {\n defaultOrientation = \"v\";\n }\n len = sLen;\n break;\n // just x\n case \"10\":\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen);\n break;\n case \"20\":\n defaultOrientation = \"h\";\n len = Math.min(sLen, x.length);\n break;\n // just y\n case \"01\":\n defaultOrientation = \"h\";\n len = Math.min(sLen, yLen);\n break;\n case \"02\":\n defaultOrientation = \"v\";\n len = Math.min(sLen, y.length);\n break;\n // both\n case \"12\":\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen, y.length);\n break;\n case \"21\":\n defaultOrientation = \"h\";\n len = Math.min(sLen, x.length, yLen);\n break;\n case \"11\":\n len = 0;\n break;\n case \"22\":\n var hasCategories = false;\n var i;\n for (i = 0; i < x.length; i++) {\n if (autoType(x[i], calendar, opts) === \"category\") {\n hasCategories = true;\n break;\n }\n }\n if (hasCategories) {\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen, y.length);\n } else {\n for (i = 0; i < y.length; i++) {\n if (autoType(y[i], calendar, opts) === \"category\") {\n hasCategories = true;\n break;\n }\n }\n if (hasCategories) {\n defaultOrientation = \"h\";\n len = Math.min(sLen, x.length, yLen);\n } else {\n defaultOrientation = \"v\";\n len = Math.min(sLen, xLen, y.length);\n }\n }\n break;\n }\n } else if (yDims > 0) {\n defaultOrientation = \"v\";\n if (xDims > 0) {\n len = Math.min(xLen, yLen);\n } else {\n len = Math.min(yLen);\n }\n } else if (xDims > 0) {\n defaultOrientation = \"h\";\n len = Math.min(xLen);\n } else {\n len = 0;\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n var orientation = coerce(\"orientation\", defaultOrientation);\n if (traceOut._hasPreCompStats) {\n if (orientation === \"v\" && xDims === 0) {\n coerce(\"x0\", 0);\n coerce(\"dx\", 1);\n } else if (orientation === \"h\" && yDims === 0) {\n coerce(\"y0\", 0);\n coerce(\"dy\", 1);\n }\n } else {\n if (orientation === \"v\" && xDims === 0) {\n coerce(\"x0\");\n } else if (orientation === \"h\" && yDims === 0) {\n coerce(\"y0\");\n }\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n }\n function handlePointsDefaults(traceIn, traceOut, coerce, opts) {\n var prefix = opts.prefix;\n var outlierColorDflt = Lib.coerce2(traceIn, traceOut, attributes, \"marker.outliercolor\");\n var lineoutliercolor = coerce(\"marker.line.outliercolor\");\n var modeDflt = \"outliers\";\n if (traceOut._hasPreCompStats) {\n modeDflt = \"all\";\n } else if (outlierColorDflt || lineoutliercolor) {\n modeDflt = \"suspectedoutliers\";\n }\n var mode = coerce(prefix + \"points\", modeDflt);\n if (mode) {\n coerce(\"jitter\", mode === \"all\" ? 0.3 : 0);\n coerce(\"pointpos\", mode === \"all\" ? -1.5 : 0);\n coerce(\"marker.symbol\");\n coerce(\"marker.opacity\");\n coerce(\"marker.size\");\n coerce(\"marker.angle\");\n coerce(\"marker.color\", traceOut.line.color);\n coerce(\"marker.line.color\");\n coerce(\"marker.line.width\");\n if (mode === \"suspectedoutliers\") {\n coerce(\"marker.line.outliercolor\", traceOut.marker.color);\n coerce(\"marker.line.outlierwidth\");\n }\n coerce(\"selected.marker.color\");\n coerce(\"unselected.marker.color\");\n coerce(\"selected.marker.size\");\n coerce(\"unselected.marker.size\");\n coerce(\"text\");\n coerce(\"hovertext\");\n } else {\n delete traceOut.marker;\n }\n var hoveron = coerce(\"hoveron\");\n if (hoveron === \"all\" || hoveron.indexOf(\"points\") !== -1) {\n coerce(\"hovertemplate\");\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n var traceType = traceOut.type;\n if (traceType === \"box\" || traceType === \"violin\") {\n traceIn = traceOut._input;\n var mode = fullLayout[traceType + \"mode\"];\n if (mode === \"group\") {\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, mode);\n }\n }\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults,\n handleSampleDefaults,\n handlePointsDefaults\n };\n }\n });\n\n // src/traces/box/layout_defaults.js\n var require_layout_defaults6 = __commonJS({\n \"src/traces/box/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes7();\n function _supply(layoutIn, layoutOut, fullData, coerce, traceType) {\n var category = traceType + \"Layout\";\n var hasTraceType = false;\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (Registry.traceIs(trace, category)) {\n hasTraceType = true;\n break;\n }\n }\n if (!hasTraceType) return;\n coerce(traceType + \"mode\");\n coerce(traceType + \"gap\");\n coerce(traceType + \"groupgap\");\n }\n function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n _supply(layoutIn, layoutOut, fullData, coerce, \"box\");\n }\n module.exports = {\n supplyLayoutDefaults,\n _supply\n };\n }\n });\n\n // src/traces/box/calc.js\n var require_calc6 = __commonJS({\n \"src/traces/box/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var _ = Lib._;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var cd = [];\n var numKey = trace.type === \"violin\" ? \"_numViolins\" : \"_numBoxes\";\n var i, j;\n var valAxis, valLetter;\n var posAxis, posLetter;\n var hasPeriod;\n if (trace.orientation === \"h\") {\n valAxis = xa;\n valLetter = \"x\";\n posAxis = ya;\n posLetter = \"y\";\n hasPeriod = !!trace.yperiodalignment;\n } else {\n valAxis = ya;\n valLetter = \"y\";\n posAxis = xa;\n posLetter = \"x\";\n hasPeriod = !!trace.xperiodalignment;\n }\n var allPosArrays = getPosArrays(trace, posLetter, posAxis, fullLayout[numKey]);\n var posArray = allPosArrays[0];\n var origPos = allPosArrays[1];\n var dv = Lib.distinctVals(posArray, posAxis);\n var posDistinct = dv.vals;\n var dPos = dv.minDiff / 2;\n var cdi;\n var pts;\n var boxVals;\n var N;\n var pt;\n var v;\n var ptFilterFn = (trace.boxpoints || trace.points) === \"all\" ? Lib.identity : function(pt2) {\n return pt2.v < cdi.lf || pt2.v > cdi.uf;\n };\n if (trace._hasPreCompStats) {\n var valArrayRaw = trace[valLetter];\n var d2c = function(k) {\n return valAxis.d2c((trace[k] || [])[i]);\n };\n var minVal = Infinity;\n var maxVal = -Infinity;\n for (i = 0; i < trace._length; i++) {\n var posi = posArray[i];\n if (!isNumeric(posi)) continue;\n cdi = {};\n cdi.pos = cdi[posLetter] = posi;\n if (hasPeriod && origPos) {\n cdi.orig_p = origPos[i];\n }\n cdi.q1 = d2c(\"q1\");\n cdi.med = d2c(\"median\");\n cdi.q3 = d2c(\"q3\");\n pts = [];\n if (valArrayRaw && Lib.isArrayOrTypedArray(valArrayRaw[i])) {\n for (j = 0; j < valArrayRaw[i].length; j++) {\n v = valAxis.d2c(valArrayRaw[i][j]);\n if (v !== BADNUM) {\n pt = { v, i: [i, j] };\n arraysToCalcdata(pt, trace, [i, j]);\n pts.push(pt);\n }\n }\n }\n cdi.pts = pts.sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n if (cdi.med !== BADNUM && cdi.q1 !== BADNUM && cdi.q3 !== BADNUM && cdi.med >= cdi.q1 && cdi.q3 >= cdi.med) {\n var lf = d2c(\"lowerfence\");\n cdi.lf = lf !== BADNUM && lf <= cdi.q1 ? lf : computeLowerFence(cdi, boxVals, N);\n var uf = d2c(\"upperfence\");\n cdi.uf = uf !== BADNUM && uf >= cdi.q3 ? uf : computeUpperFence(cdi, boxVals, N);\n var mean = d2c(\"mean\");\n cdi.mean = mean !== BADNUM ? mean : N ? Lib.mean(boxVals, N) : (cdi.q1 + cdi.q3) / 2;\n var sd = d2c(\"sd\");\n cdi.sd = mean !== BADNUM && sd >= 0 ? sd : N ? Lib.stdev(boxVals, N, cdi.mean) : cdi.q3 - cdi.q1;\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n var ns = d2c(\"notchspan\");\n ns = ns !== BADNUM && ns > 0 ? ns : computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - ns;\n cdi.un = cdi.med + ns;\n var imin = cdi.lf;\n var imax = cdi.uf;\n if (trace.boxpoints && boxVals.length) {\n imin = Math.min(imin, boxVals[0]);\n imax = Math.max(imax, boxVals[N - 1]);\n }\n if (trace.notched) {\n imin = Math.min(imin, cdi.ln);\n imax = Math.max(imax, cdi.un);\n }\n cdi.min = imin;\n cdi.max = imax;\n } else {\n Lib.warn([\n \"Invalid input - make sure that q1 <= median <= q3\",\n \"q1 = \" + cdi.q1,\n \"median = \" + cdi.med,\n \"q3 = \" + cdi.q3\n ].join(\"\\n\"));\n var v0;\n if (cdi.med !== BADNUM) {\n v0 = cdi.med;\n } else if (cdi.q1 !== BADNUM) {\n if (cdi.q3 !== BADNUM) v0 = (cdi.q1 + cdi.q3) / 2;\n else v0 = cdi.q1;\n } else if (cdi.q3 !== BADNUM) {\n v0 = cdi.q3;\n } else {\n v0 = 0;\n }\n cdi.med = v0;\n cdi.q1 = cdi.q3 = v0;\n cdi.lf = cdi.uf = v0;\n cdi.mean = cdi.sd = v0;\n cdi.ln = cdi.un = v0;\n cdi.min = cdi.max = v0;\n }\n minVal = Math.min(minVal, cdi.min);\n maxVal = Math.max(maxVal, cdi.max);\n cdi.pts2 = pts.filter(ptFilterFn);\n cd.push(cdi);\n }\n trace._extremes[valAxis._id] = Axes.findExtremes(\n valAxis,\n [minVal, maxVal],\n { padded: true }\n );\n } else {\n var valArray = valAxis.makeCalcdata(trace, valLetter);\n var posBins = makeBins(posDistinct, dPos);\n var pLen = posDistinct.length;\n var ptsPerBin = initNestedArray(pLen);\n for (i = 0; i < trace._length; i++) {\n v = valArray[i];\n if (!isNumeric(v)) continue;\n var n = Lib.findBin(posArray[i], posBins);\n if (n >= 0 && n < pLen) {\n pt = { v, i };\n arraysToCalcdata(pt, trace, i);\n ptsPerBin[n].push(pt);\n }\n }\n var minLowerNotch = Infinity;\n var maxUpperNotch = -Infinity;\n var quartilemethod = trace.quartilemethod;\n var usesExclusive = quartilemethod === \"exclusive\";\n var usesInclusive = quartilemethod === \"inclusive\";\n for (i = 0; i < pLen; i++) {\n if (ptsPerBin[i].length > 0) {\n cdi = {};\n cdi.pos = cdi[posLetter] = posDistinct[i];\n pts = cdi.pts = ptsPerBin[i].sort(sortByVal);\n boxVals = cdi[valLetter] = pts.map(extractVal);\n N = boxVals.length;\n cdi.min = boxVals[0];\n cdi.max = boxVals[N - 1];\n cdi.mean = Lib.mean(boxVals, N);\n cdi.sd = Lib.stdev(boxVals, N, cdi.mean) * trace.sdmultiple;\n cdi.med = Lib.interp(boxVals, 0.5);\n if (N % 2 && (usesExclusive || usesInclusive)) {\n var lower;\n var upper;\n if (usesExclusive) {\n lower = boxVals.slice(0, N / 2);\n upper = boxVals.slice(N / 2 + 1);\n } else if (usesInclusive) {\n lower = boxVals.slice(0, N / 2 + 1);\n upper = boxVals.slice(N / 2);\n }\n cdi.q1 = Lib.interp(lower, 0.5);\n cdi.q3 = Lib.interp(upper, 0.5);\n } else {\n cdi.q1 = Lib.interp(boxVals, 0.25);\n cdi.q3 = Lib.interp(boxVals, 0.75);\n }\n cdi.lf = computeLowerFence(cdi, boxVals, N);\n cdi.uf = computeUpperFence(cdi, boxVals, N);\n cdi.lo = computeLowerOutlierBound(cdi);\n cdi.uo = computeUpperOutlierBound(cdi);\n var mci = computeNotchSpan(cdi, N);\n cdi.ln = cdi.med - mci;\n cdi.un = cdi.med + mci;\n minLowerNotch = Math.min(minLowerNotch, cdi.ln);\n maxUpperNotch = Math.max(maxUpperNotch, cdi.un);\n cdi.pts2 = pts.filter(ptFilterFn);\n cd.push(cdi);\n }\n }\n if (trace.notched && Lib.isTypedArray(valArray)) valArray = Array.from(valArray);\n trace._extremes[valAxis._id] = Axes.findExtremes(\n valAxis,\n trace.notched ? valArray.concat([minLowerNotch, maxUpperNotch]) : valArray,\n { padded: true }\n );\n }\n calcSelection(cd, trace);\n if (cd.length > 0) {\n cd[0].t = {\n num: fullLayout[numKey],\n dPos,\n posLetter,\n valLetter,\n labels: {\n med: _(gd, \"median:\"),\n min: _(gd, \"min:\"),\n q1: _(gd, \"q1:\"),\n q3: _(gd, \"q3:\"),\n max: _(gd, \"max:\"),\n mean: trace.boxmean === \"sd\" || trace.sizemode === \"sd\" ? _(gd, \"mean \\xB1 \\u03C3:\").replace(\"\\u03C3\", trace.sdmultiple === 1 ? \"\\u03C3\" : trace.sdmultiple + \"\\u03C3\") : (\n // displaying mean +- Nσ whilst supporting translations\n _(gd, \"mean:\")\n ),\n lf: _(gd, \"lower fence:\"),\n uf: _(gd, \"upper fence:\")\n }\n };\n fullLayout[numKey]++;\n return cd;\n } else {\n return [{ t: { empty: true } }];\n }\n };\n function getPosArrays(trace, posLetter, posAxis, num) {\n var hasPosArray = posLetter in trace;\n var hasPos0 = posLetter + \"0\" in trace;\n var hasPosStep = \"d\" + posLetter in trace;\n if (hasPosArray || hasPos0 && hasPosStep) {\n var origPos = posAxis.makeCalcdata(trace, posLetter);\n var pos = alignPeriod(trace, posAxis, posLetter, origPos).vals;\n return [pos, origPos];\n }\n var pos0;\n if (hasPos0) {\n pos0 = trace[posLetter + \"0\"];\n } else if (\"name\" in trace && (posAxis.type === \"category\" || isNumeric(trace.name) && [\"linear\", \"log\"].indexOf(posAxis.type) !== -1 || Lib.isDateTime(trace.name) && posAxis.type === \"date\")) {\n pos0 = trace.name;\n } else {\n pos0 = num;\n }\n var pos0c = posAxis.type === \"multicategory\" ? posAxis.r2c_just_indices(pos0) : posAxis.d2c(pos0, 0, trace[posLetter + \"calendar\"]);\n var len = trace._length;\n var out = new Array(len);\n for (var i = 0; i < len; i++) out[i] = pos0c;\n return [out];\n }\n function makeBins(x, dx) {\n var len = x.length;\n var bins = new Array(len + 1);\n for (var i = 0; i < len; i++) {\n bins[i] = x[i] - dx;\n }\n bins[len] = x[len - 1] + dx;\n return bins;\n }\n function initNestedArray(len) {\n var arr = new Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = [];\n }\n return arr;\n }\n var TRACE_TO_CALC = {\n text: \"tx\",\n hovertext: \"htx\"\n };\n function arraysToCalcdata(pt, trace, ptNumber) {\n for (var k in TRACE_TO_CALC) {\n if (Lib.isArrayOrTypedArray(trace[k])) {\n if (Array.isArray(ptNumber)) {\n if (Lib.isArrayOrTypedArray(trace[k][ptNumber[0]])) {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber[0]][ptNumber[1]];\n }\n } else {\n pt[TRACE_TO_CALC[k]] = trace[k][ptNumber];\n }\n }\n }\n }\n function calcSelection(cd, trace) {\n if (Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n for (var i = 0; i < cd.length; i++) {\n var pts = cd[i].pts || [];\n var ptNumber2cdIndex = {};\n for (var j = 0; j < pts.length; j++) {\n ptNumber2cdIndex[pts[j].i] = j;\n }\n Lib.tagSelected(pts, trace, ptNumber2cdIndex);\n }\n }\n }\n function sortByVal(a, b) {\n return a.v - b.v;\n }\n function extractVal(o) {\n return o.v;\n }\n function computeLowerFence(cdi, boxVals, N) {\n if (N === 0) return cdi.q1;\n return Math.min(\n cdi.q1,\n boxVals[Math.min(\n Lib.findBin(2.5 * cdi.q1 - 1.5 * cdi.q3, boxVals, true) + 1,\n N - 1\n )]\n );\n }\n function computeUpperFence(cdi, boxVals, N) {\n if (N === 0) return cdi.q3;\n return Math.max(\n cdi.q3,\n boxVals[Math.max(\n Lib.findBin(2.5 * cdi.q3 - 1.5 * cdi.q1, boxVals),\n 0\n )]\n );\n }\n function computeLowerOutlierBound(cdi) {\n return 4 * cdi.q1 - 3 * cdi.q3;\n }\n function computeUpperOutlierBound(cdi) {\n return 4 * cdi.q3 - 3 * cdi.q1;\n }\n function computeNotchSpan(cdi, N) {\n if (N === 0) return 0;\n return 1.57 * (cdi.q3 - cdi.q1) / Math.sqrt(N);\n }\n }\n });\n\n // src/traces/box/cross_trace_calc.js\n var require_cross_trace_calc3 = __commonJS({\n \"src/traces/box/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n var getAxisGroup = require_constraints().getAxisGroup;\n var orientations = [\"v\", \"h\"];\n function crossTraceCalc(gd, plotinfo) {\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n for (var i = 0; i < orientations.length; i++) {\n var orientation = orientations[i];\n var posAxis = orientation === \"h\" ? ya : xa;\n var boxList = [];\n for (var j = 0; j < calcdata.length; j++) {\n var cd = calcdata[j];\n var t = cd[0].t;\n var trace = cd[0].trace;\n if (trace.visible === true && (trace.type === \"box\" || trace.type === \"candlestick\") && !t.empty && (trace.orientation || \"v\") === orientation && trace.xaxis === xa._id && trace.yaxis === ya._id) {\n boxList.push(j);\n }\n }\n setPositionOffset(\"box\", gd, boxList, posAxis);\n }\n }\n function setPositionOffset(traceType, gd, boxList, posAxis) {\n var calcdata = gd.calcdata;\n var fullLayout = gd._fullLayout;\n var axId = posAxis._id;\n var axLetter = axId.charAt(0);\n var i, j, calcTrace;\n var pointList = [];\n var shownPts = 0;\n for (i = 0; i < boxList.length; i++) {\n calcTrace = calcdata[boxList[i]];\n for (j = 0; j < calcTrace.length; j++) {\n pointList.push(posAxis.c2l(calcTrace[j].pos, true));\n shownPts += (calcTrace[j].pts2 || []).length;\n }\n }\n if (!pointList.length) return;\n var boxdv = Lib.distinctVals(pointList);\n if (posAxis.type === \"category\" || posAxis.type === \"multicategory\") {\n boxdv.minDiff = 1;\n }\n var dPos0 = boxdv.minDiff / 2;\n Axes.minDtick(posAxis, boxdv.minDiff, boxdv.vals[0], true);\n var numKey = traceType === \"violin\" ? \"_numViolins\" : \"_numBoxes\";\n var numTotal = fullLayout[numKey];\n var group = fullLayout[traceType + \"mode\"] === \"group\" && numTotal > 1;\n var groupFraction = 1 - fullLayout[traceType + \"gap\"];\n var groupGapFraction = 1 - fullLayout[traceType + \"groupgap\"];\n for (i = 0; i < boxList.length; i++) {\n calcTrace = calcdata[boxList[i]];\n var trace = calcTrace[0].trace;\n var t = calcTrace[0].t;\n var width = trace.width;\n var side = trace.side;\n var dPos;\n var bdPos;\n var bPos;\n var wHover;\n if (width) {\n dPos = bdPos = wHover = width / 2;\n bPos = 0;\n } else {\n dPos = dPos0;\n if (group) {\n var groupId = getAxisGroup(fullLayout, posAxis._id) + trace.orientation;\n var alignmentGroups = fullLayout._alignmentOpts[groupId] || {};\n var alignmentGroupOpts = alignmentGroups[trace.alignmentgroup] || {};\n var nOffsetGroups = Object.keys(alignmentGroupOpts.offsetGroups || {}).length;\n var num = nOffsetGroups || numTotal;\n var shift = nOffsetGroups ? trace._offsetIndex : t.num;\n bdPos = dPos * groupFraction * groupGapFraction / num;\n bPos = 2 * dPos * (-0.5 + (shift + 0.5) / num) * groupFraction;\n wHover = dPos * groupFraction / num;\n } else {\n bdPos = dPos * groupFraction * groupGapFraction;\n bPos = 0;\n wHover = dPos;\n }\n }\n t.dPos = dPos;\n t.bPos = bPos;\n t.bdPos = bdPos;\n t.wHover = wHover;\n var pushplus;\n var pushminus;\n var edge = bPos + bdPos;\n var edgeplus;\n var edgeminus;\n var vpadplus;\n var vpadminus;\n var ppadplus;\n var ppadminus;\n var padded = Boolean(width);\n var hasPts = (trace.boxpoints || trace.points) && shownPts > 0;\n if (side === \"positive\") {\n pushplus = dPos * (width ? 1 : 0.5);\n edgeplus = edge;\n pushminus = edgeplus = bPos;\n } else if (side === \"negative\") {\n pushplus = edgeplus = bPos;\n pushminus = dPos * (width ? 1 : 0.5);\n edgeminus = edge;\n } else {\n pushplus = pushminus = dPos;\n edgeplus = edgeminus = edge;\n }\n if (hasPts) {\n var pointpos = trace.pointpos;\n var jitter = trace.jitter;\n var ms = trace.marker.size / 2;\n var pp = 0;\n if (pointpos + jitter >= 0) {\n pp = edge * (pointpos + jitter);\n if (pp > pushplus) {\n padded = true;\n ppadplus = ms;\n vpadplus = pp;\n } else if (pp > edgeplus) {\n ppadplus = ms;\n vpadplus = pushplus;\n }\n }\n if (pp <= pushplus) {\n vpadplus = pushplus;\n }\n var pm = 0;\n if (pointpos - jitter <= 0) {\n pm = -edge * (pointpos - jitter);\n if (pm > pushminus) {\n padded = true;\n ppadminus = ms;\n vpadminus = pm;\n } else if (pm > edgeminus) {\n ppadminus = ms;\n vpadminus = pushminus;\n }\n }\n if (pm <= pushminus) {\n vpadminus = pushminus;\n }\n } else {\n vpadplus = pushplus;\n vpadminus = pushminus;\n }\n var pos = new Array(calcTrace.length);\n for (j = 0; j < calcTrace.length; j++) {\n pos[j] = calcTrace[j].pos;\n }\n trace._extremes[axId] = Axes.findExtremes(posAxis, pos, {\n padded,\n vpadminus,\n vpadplus,\n vpadLinearized: true,\n // N.B. SVG px-space positive/negative\n ppadminus: { x: ppadminus, y: ppadplus }[axLetter],\n ppadplus: { x: ppadplus, y: ppadminus }[axLetter]\n });\n }\n }\n module.exports = {\n crossTraceCalc,\n setPositionOffset\n };\n }\n });\n\n // src/traces/box/plot.js\n var require_plot4 = __commonJS({\n \"src/traces/box/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var JITTERCOUNT = 5;\n var JITTERSPREAD = 0.01;\n function plot(gd, plotinfo, cdbox, boxLayer) {\n var isStatic = gd._context.staticPlot;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(boxLayer, cdbox, \"trace boxes\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n t.wdPos = t.bdPos * trace.whiskerwidth;\n if (trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n var posAxis, valAxis;\n if (trace.orientation === \"h\") {\n posAxis = ya;\n valAxis = xa;\n } else {\n posAxis = xa;\n valAxis = ya;\n }\n plotBoxAndWhiskers(plotGroup, { pos: posAxis, val: valAxis }, trace, t, isStatic);\n plotPoints(plotGroup, { x: xa, y: ya }, trace, t);\n plotBoxMean(plotGroup, { pos: posAxis, val: valAxis }, trace, t);\n });\n }\n function plotBoxAndWhiskers(sel, axes, trace, t, isStatic) {\n var isHorizontal = trace.orientation === \"h\";\n var valAxis = axes.val;\n var posAxis = axes.pos;\n var posHasRangeBreaks = !!posAxis.rangebreaks;\n var bPos = t.bPos;\n var wdPos = t.wdPos || 0;\n var bPosPxOffset = t.bPosPxOffset || 0;\n var whiskerWidth = trace.whiskerwidth || 0;\n var showWhiskers = trace.showwhiskers !== false;\n var notched = trace.notched || false;\n var nw = notched ? 1 - 2 * trace.notchwidth : 1;\n var bdPos0;\n var bdPos1;\n if (Array.isArray(t.bdPos)) {\n bdPos0 = t.bdPos[0];\n bdPos1 = t.bdPos[1];\n } else {\n bdPos0 = t.bdPos;\n bdPos1 = t.bdPos;\n }\n var paths = sel.selectAll(\"path.box\").data(trace.type !== \"violin\" || trace.box.visible ? Lib.identity : []);\n paths.enter().append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").attr(\"class\", \"box\");\n paths.exit().remove();\n paths.each(function(d) {\n if (d.empty) return d3.select(this).attr(\"d\", \"M0,0Z\");\n var lcenter = posAxis.c2l(d.pos + bPos, true);\n var pos0 = posAxis.l2p(lcenter - bdPos0) + bPosPxOffset;\n var pos1 = posAxis.l2p(lcenter + bdPos1) + bPosPxOffset;\n var posc = posHasRangeBreaks ? (pos0 + pos1) / 2 : posAxis.l2p(lcenter) + bPosPxOffset;\n var r = trace.whiskerwidth;\n var posw0 = posHasRangeBreaks ? pos0 * r + (1 - r) * posc : posAxis.l2p(lcenter - wdPos) + bPosPxOffset;\n var posw1 = posHasRangeBreaks ? pos1 * r + (1 - r) * posc : posAxis.l2p(lcenter + wdPos) + bPosPxOffset;\n var posm0 = posAxis.l2p(lcenter - bdPos0 * nw) + bPosPxOffset;\n var posm1 = posAxis.l2p(lcenter + bdPos1 * nw) + bPosPxOffset;\n var sdmode = trace.sizemode === \"sd\";\n var q1 = valAxis.c2p(sdmode ? d.mean - d.sd : d.q1, true);\n var q3 = sdmode ? valAxis.c2p(d.mean + d.sd, true) : valAxis.c2p(d.q3, true);\n var m = Lib.constrain(\n sdmode ? valAxis.c2p(d.mean, true) : valAxis.c2p(d.med, true),\n Math.min(q1, q3) + 1,\n Math.max(q1, q3) - 1\n );\n var useExtremes = d.lf === void 0 || trace.boxpoints === false || sdmode;\n var lf = valAxis.c2p(useExtremes ? d.min : d.lf, true);\n var uf = valAxis.c2p(useExtremes ? d.max : d.uf, true);\n var ln = valAxis.c2p(d.ln, true);\n var un = valAxis.c2p(d.un, true);\n if (isHorizontal) {\n d3.select(this).attr(\n \"d\",\n \"M\" + m + \",\" + posm0 + \"V\" + posm1 + // median line\n \"M\" + q1 + \",\" + pos0 + \"V\" + pos1 + // left edge\n (notched ? \"H\" + ln + \"L\" + m + \",\" + posm1 + \"L\" + un + \",\" + pos1 : \"\") + // top notched edge\n \"H\" + q3 + // end of the top edge\n \"V\" + pos0 + // right edge\n (notched ? \"H\" + un + \"L\" + m + \",\" + posm0 + \"L\" + ln + \",\" + pos0 : \"\") + // bottom notched edge\n \"Z\" + // end of the box\n (showWhiskers ? \"M\" + q1 + \",\" + posc + \"H\" + lf + \"M\" + q3 + \",\" + posc + \"H\" + uf + // whiskers\n (whiskerWidth === 0 ? \"\" : (\n // whisker caps\n \"M\" + lf + \",\" + posw0 + \"V\" + posw1 + \"M\" + uf + \",\" + posw0 + \"V\" + posw1\n )) : \"\")\n );\n } else {\n d3.select(this).attr(\n \"d\",\n \"M\" + posm0 + \",\" + m + \"H\" + posm1 + // median line\n \"M\" + pos0 + \",\" + q1 + \"H\" + pos1 + // top of the box\n (notched ? \"V\" + ln + \"L\" + posm1 + \",\" + m + \"L\" + pos1 + \",\" + un : \"\") + // notched right edge\n \"V\" + q3 + // end of the right edge\n \"H\" + pos0 + // bottom of the box\n (notched ? \"V\" + un + \"L\" + posm0 + \",\" + m + \"L\" + pos0 + \",\" + ln : \"\") + // notched left edge\n \"Z\" + // end of the box\n (showWhiskers ? \"M\" + posc + \",\" + q1 + \"V\" + lf + \"M\" + posc + \",\" + q3 + \"V\" + uf + // whiskers\n (whiskerWidth === 0 ? \"\" : (\n // whisker caps\n \"M\" + posw0 + \",\" + lf + \"H\" + posw1 + \"M\" + posw0 + \",\" + uf + \"H\" + posw1\n )) : \"\")\n );\n }\n });\n }\n function plotPoints(sel, axes, trace, t) {\n var xa = axes.x;\n var ya = axes.y;\n var bdPos = t.bdPos;\n var bPos = t.bPos;\n var mode = trace.boxpoints || trace.points;\n Lib.seedPseudoRandom();\n var fn = function(d) {\n d.forEach(function(v) {\n v.t = t;\n v.trace = trace;\n });\n return d;\n };\n var gPoints = sel.selectAll(\"g.points\").data(mode ? fn : []);\n gPoints.enter().append(\"g\").attr(\"class\", \"points\");\n gPoints.exit().remove();\n var paths = gPoints.selectAll(\"path\").data(function(d) {\n var i;\n var pts = d.pts2;\n var typicalSpread = Math.max((d.max - d.min) / 10, d.q3 - d.q1);\n var minSpread = typicalSpread * 1e-9;\n var spreadLimit = typicalSpread * JITTERSPREAD;\n var jitterFactors = [];\n var maxJitterFactor = 0;\n var newJitter;\n if (trace.jitter) {\n if (typicalSpread === 0) {\n maxJitterFactor = 1;\n jitterFactors = new Array(pts.length);\n for (i = 0; i < pts.length; i++) {\n jitterFactors[i] = 1;\n }\n } else {\n for (i = 0; i < pts.length; i++) {\n var i0 = Math.max(0, i - JITTERCOUNT);\n var pmin = pts[i0].v;\n var i1 = Math.min(pts.length - 1, i + JITTERCOUNT);\n var pmax = pts[i1].v;\n if (mode !== \"all\") {\n if (pts[i].v < d.lf) pmax = Math.min(pmax, d.lf);\n else pmin = Math.max(pmin, d.uf);\n }\n var jitterFactor = Math.sqrt(spreadLimit * (i1 - i0) / (pmax - pmin + minSpread)) || 0;\n jitterFactor = Lib.constrain(Math.abs(jitterFactor), 0, 1);\n jitterFactors.push(jitterFactor);\n maxJitterFactor = Math.max(jitterFactor, maxJitterFactor);\n }\n }\n newJitter = trace.jitter * 2 / (maxJitterFactor || 1);\n }\n for (i = 0; i < pts.length; i++) {\n var pt = pts[i];\n var v = pt.v;\n var jitterOffset = trace.jitter ? newJitter * jitterFactors[i] * (Lib.pseudoRandom() - 0.5) : 0;\n var posPx = d.pos + bPos + bdPos * (trace.pointpos + jitterOffset);\n if (trace.orientation === \"h\") {\n pt.y = posPx;\n pt.x = v;\n } else {\n pt.x = posPx;\n pt.y = v;\n }\n if (mode === \"suspectedoutliers\" && v < d.uo && v > d.lo) {\n pt.so = true;\n }\n }\n return pts;\n });\n paths.enter().append(\"path\").classed(\"point\", true);\n paths.exit().remove();\n paths.call(Drawing.translatePoints, xa, ya);\n }\n function plotBoxMean(sel, axes, trace, t) {\n var valAxis = axes.val;\n var posAxis = axes.pos;\n var posHasRangeBreaks = !!posAxis.rangebreaks;\n var bPos = t.bPos;\n var bPosPxOffset = t.bPosPxOffset || 0;\n var mode = trace.boxmean || (trace.meanline || {}).visible;\n var bdPos0;\n var bdPos1;\n if (Array.isArray(t.bdPos)) {\n bdPos0 = t.bdPos[0];\n bdPos1 = t.bdPos[1];\n } else {\n bdPos0 = t.bdPos;\n bdPos1 = t.bdPos;\n }\n var paths = sel.selectAll(\"path.mean\").data(trace.type === \"box\" && trace.boxmean || trace.type === \"violin\" && trace.box.visible && trace.meanline.visible ? Lib.identity : []);\n paths.enter().append(\"path\").attr(\"class\", \"mean\").style({\n fill: \"none\",\n \"vector-effect\": \"non-scaling-stroke\"\n });\n paths.exit().remove();\n paths.each(function(d) {\n var lcenter = posAxis.c2l(d.pos + bPos, true);\n var pos0 = posAxis.l2p(lcenter - bdPos0) + bPosPxOffset;\n var pos1 = posAxis.l2p(lcenter + bdPos1) + bPosPxOffset;\n var posc = posHasRangeBreaks ? (pos0 + pos1) / 2 : posAxis.l2p(lcenter) + bPosPxOffset;\n var m = valAxis.c2p(d.mean, true);\n var sl = valAxis.c2p(d.mean - d.sd, true);\n var sh = valAxis.c2p(d.mean + d.sd, true);\n if (trace.orientation === \"h\") {\n d3.select(this).attr(\n \"d\",\n \"M\" + m + \",\" + pos0 + \"V\" + pos1 + (mode === \"sd\" ? \"m0,0L\" + sl + \",\" + posc + \"L\" + m + \",\" + pos0 + \"L\" + sh + \",\" + posc + \"Z\" : \"\")\n );\n } else {\n d3.select(this).attr(\n \"d\",\n \"M\" + pos0 + \",\" + m + \"H\" + pos1 + (mode === \"sd\" ? \"m0,0L\" + posc + \",\" + sl + \"L\" + pos0 + \",\" + m + \"L\" + posc + \",\" + sh + \"Z\" : \"\")\n );\n }\n });\n }\n module.exports = {\n plot,\n plotBoxAndWhiskers,\n plotPoints,\n plotBoxMean\n };\n }\n });\n\n // src/traces/box/style.js\n var require_style5 = __commonJS({\n \"src/traces/box/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll(\"g.trace.boxes\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var el = d3.select(this);\n var trace = d[0].trace;\n var lineWidth = trace.line.width;\n function styleBox(boxSel, lineWidth2, lineColor, fillColor) {\n boxSel.style(\"stroke-width\", lineWidth2 + \"px\").call(Color2.stroke, lineColor).call(Color2.fill, fillColor);\n }\n var allBoxes = el.selectAll(\"path.box\");\n if (trace.type === \"candlestick\") {\n allBoxes.each(function(boxData) {\n if (boxData.empty) return;\n var thisBox = d3.select(this);\n var container = trace[boxData.dir];\n styleBox(thisBox, container.line.width, container.line.color, container.fillcolor);\n thisBox.style(\"opacity\", trace.selectedpoints && !boxData.selected ? 0.3 : 1);\n });\n } else {\n styleBox(allBoxes, lineWidth, trace.line.color, trace.fillcolor);\n el.selectAll(\"path.mean\").style({\n \"stroke-width\": lineWidth,\n \"stroke-dasharray\": 2 * lineWidth + \"px,\" + lineWidth + \"px\"\n }).call(Color2.stroke, trace.line.color);\n var pts = el.selectAll(\"path.point\");\n Drawing.pointStyle(pts, trace, gd);\n }\n });\n }\n function styleOnSelect(gd, cd, sel) {\n var trace = cd[0].trace;\n var pts = sel.selectAll(\"path.point\");\n if (trace.selectedpoints) {\n Drawing.selectedPointStyle(pts, trace);\n } else {\n Drawing.pointStyle(pts, trace, gd);\n }\n }\n module.exports = {\n style,\n styleOnSelect\n };\n }\n });\n\n // src/traces/box/hover.js\n var require_hover4 = __commonJS({\n \"src/traces/box/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n var Fx = require_fx();\n var Color2 = require_color();\n var fillText = Lib.fillText;\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var hoveron = trace.hoveron;\n var closeBoxData = [];\n var closePtData;\n if (hoveron.indexOf(\"boxes\") !== -1) {\n closeBoxData = closeBoxData.concat(hoverOnBoxes(pointData, xval, yval, hovermode));\n }\n if (hoveron.indexOf(\"points\") !== -1) {\n closePtData = hoverOnPoints(pointData, xval, yval);\n }\n if (hovermode === \"closest\") {\n if (closePtData) return [closePtData];\n return closeBoxData;\n }\n if (closePtData) {\n closeBoxData.push(closePtData);\n return closeBoxData;\n }\n return closeBoxData;\n }\n function hoverOnBoxes(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var isViolin = trace.type === \"violin\";\n var pLetter, vLetter, pAxis, vAxis, vVal, pVal, dx, dy, dPos, hoverPseudoDistance, spikePseudoDistance;\n var boxDelta = t.bdPos;\n var boxDeltaPos, boxDeltaNeg;\n var posAcceptance = t.wHover;\n var shiftPos = function(di2) {\n return pAxis.c2l(di2.pos) + t.bPos - pAxis.c2l(pVal);\n };\n if (isViolin && trace.side !== \"both\") {\n if (trace.side === \"positive\") {\n dPos = function(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos, pos + posAcceptance, hoverPseudoDistance);\n };\n boxDeltaPos = boxDelta;\n boxDeltaNeg = 0;\n }\n if (trace.side === \"negative\") {\n dPos = function(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos - posAcceptance, pos, hoverPseudoDistance);\n };\n boxDeltaPos = 0;\n boxDeltaNeg = boxDelta;\n }\n } else {\n dPos = function(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos - posAcceptance, pos + posAcceptance, hoverPseudoDistance);\n };\n boxDeltaPos = boxDeltaNeg = boxDelta;\n }\n var dVal;\n if (isViolin) {\n dVal = function(di2) {\n return Fx.inbox(di2.span[0] - vVal, di2.span[1] - vVal, hoverPseudoDistance);\n };\n } else {\n dVal = function(di2) {\n return Fx.inbox(di2.min - vVal, di2.max - vVal, hoverPseudoDistance);\n };\n }\n if (trace.orientation === \"h\") {\n vVal = xval;\n pVal = yval;\n dx = dVal;\n dy = dPos;\n pLetter = \"y\";\n pAxis = ya;\n vLetter = \"x\";\n vAxis = xa;\n } else {\n vVal = yval;\n pVal = xval;\n dx = dPos;\n dy = dVal;\n pLetter = \"x\";\n pAxis = xa;\n vLetter = \"y\";\n vAxis = ya;\n }\n var pseudoDistance = Math.min(1, boxDelta / Math.abs(pAxis.r2c(pAxis.range[1]) - pAxis.r2c(pAxis.range[0])));\n hoverPseudoDistance = pointData.maxHoverDistance - pseudoDistance;\n spikePseudoDistance = pointData.maxSpikeDistance - pseudoDistance;\n function dxy(di2) {\n return (dx(di2) + dy(di2)) / 2;\n }\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index === false) return [];\n var di = cd[pointData.index];\n var lc = trace.line.color;\n var mc = (trace.marker || {}).color;\n if (Color2.opacity(lc) && trace.line.width) pointData.color = lc;\n else if (Color2.opacity(mc) && trace.boxpoints) pointData.color = mc;\n else pointData.color = trace.fillcolor;\n pointData[pLetter + \"0\"] = pAxis.c2p(di.pos + t.bPos - boxDeltaNeg, true);\n pointData[pLetter + \"1\"] = pAxis.c2p(di.pos + t.bPos + boxDeltaPos, true);\n pointData[pLetter + \"LabelVal\"] = di.orig_p !== void 0 ? di.orig_p : di.pos;\n var spikePosAttr = pLetter + \"Spike\";\n pointData.spikeDistance = dxy(di) * spikePseudoDistance / hoverPseudoDistance;\n pointData[spikePosAttr] = pAxis.c2p(di.pos, true);\n var hasMean = trace.boxmean || trace.sizemode === \"sd\" || (trace.meanline || {}).visible;\n var hasFences = trace.boxpoints || trace.points;\n var attrs = hasFences && hasMean ? [\"max\", \"uf\", \"q3\", \"med\", \"mean\", \"q1\", \"lf\", \"min\"] : hasFences && !hasMean ? [\"max\", \"uf\", \"q3\", \"med\", \"q1\", \"lf\", \"min\"] : !hasFences && hasMean ? [\"max\", \"q3\", \"med\", \"mean\", \"q1\", \"min\"] : [\"max\", \"q3\", \"med\", \"q1\", \"min\"];\n var rev = vAxis.range[1] < vAxis.range[0];\n if (trace.orientation === (rev ? \"v\" : \"h\")) {\n attrs.reverse();\n }\n var spikeDistance = pointData.spikeDistance;\n var spikePosition = pointData[spikePosAttr];\n var closeBoxData = [];\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n if (!(attr in di)) continue;\n var val = di[attr];\n var valPx = vAxis.c2p(val, true);\n var pointData2 = Lib.extendFlat({}, pointData);\n pointData2.attr = attr;\n pointData2[vLetter + \"0\"] = pointData2[vLetter + \"1\"] = valPx;\n pointData2[vLetter + \"LabelVal\"] = val;\n pointData2[vLetter + \"Label\"] = (t.labels ? t.labels[attr] + \" \" : \"\") + Axes.hoverLabelText(vAxis, val, trace[vLetter + \"hoverformat\"]);\n pointData2.hoverOnBox = true;\n if (attr === \"mean\" && \"sd\" in di && (trace.boxmean === \"sd\" || trace.sizemode === \"sd\")) {\n pointData2[vLetter + \"err\"] = di.sd;\n }\n pointData2.hovertemplate = false;\n closeBoxData.push(pointData2);\n }\n pointData.name = \"\";\n pointData.spikeDistance = void 0;\n pointData[spikePosAttr] = void 0;\n for (var k = 0; k < closeBoxData.length; k++) {\n if (closeBoxData[k].attr !== \"med\") {\n closeBoxData[k].name = \"\";\n closeBoxData[k].spikeDistance = void 0;\n closeBoxData[k][spikePosAttr] = void 0;\n } else {\n closeBoxData[k].spikeDistance = spikeDistance;\n closeBoxData[k][spikePosAttr] = spikePosition;\n }\n }\n return closeBoxData;\n }\n function hoverOnPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var xPx = xa.c2p(xval);\n var yPx = ya.c2p(yval);\n var closePtData;\n var dx = function(di2) {\n var rad2 = Math.max(3, di2.mrc || 0);\n return Math.max(Math.abs(xa.c2p(di2.x) - xPx) - rad2, 1 - 3 / rad2);\n };\n var dy = function(di2) {\n var rad2 = Math.max(3, di2.mrc || 0);\n return Math.max(Math.abs(ya.c2p(di2.y) - yPx) - rad2, 1 - 3 / rad2);\n };\n var distfn = Fx.quadrature(dx, dy);\n var ijClosest = false;\n var di, pt;\n for (var i = 0; i < cd.length; i++) {\n di = cd[i];\n for (var j = 0; j < (di.pts || []).length; j++) {\n pt = di.pts[j];\n var newDistance = distfn(pt);\n if (newDistance <= pointData.distance) {\n pointData.distance = newDistance;\n ijClosest = [i, j];\n }\n }\n }\n if (!ijClosest) return false;\n di = cd[ijClosest[0]];\n pt = di.pts[ijClosest[1]];\n var xc = xa.c2p(pt.x, true);\n var yc = ya.c2p(pt.y, true);\n var rad = pt.mrc || 1;\n closePtData = Lib.extendFlat({}, pointData, {\n // corresponds to index in x/y input data array\n index: pt.i,\n color: (trace.marker || {}).color,\n name: trace.name,\n x0: xc - rad,\n x1: xc + rad,\n y0: yc - rad,\n y1: yc + rad,\n spikeDistance: pointData.distance,\n hovertemplate: trace.hovertemplate\n });\n var origPos = di.orig_p;\n var pos = origPos !== void 0 ? origPos : di.pos;\n var pa;\n if (trace.orientation === \"h\") {\n pa = ya;\n closePtData.xLabelVal = pt.x;\n closePtData.yLabelVal = pos;\n } else {\n pa = xa;\n closePtData.xLabelVal = pos;\n closePtData.yLabelVal = pt.y;\n }\n var pLetter = pa._id.charAt(0);\n closePtData[pLetter + \"Spike\"] = pa.c2p(di.pos, true);\n fillText(pt, trace, closePtData);\n return closePtData;\n }\n module.exports = {\n hoverPoints,\n hoverOnBoxes,\n hoverOnPoints\n };\n }\n });\n\n // src/traces/box/event_data.js\n var require_event_data2 = __commonJS({\n \"src/traces/box/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n if (pt.hoverOnBox) out.hoverOnBox = pt.hoverOnBox;\n if (\"xVal\" in pt) out.x = pt.xVal;\n if (\"yVal\" in pt) out.y = pt.yVal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n return out;\n };\n }\n });\n\n // src/traces/box/select.js\n var require_select4 = __commonJS({\n \"src/traces/box/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, j;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n for (j = 0; j < (cd[i].pts || []).length; j++) {\n cd[i].pts[j].selected = 0;\n }\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n for (j = 0; j < (cd[i].pts || []).length; j++) {\n var pt = cd[i].pts[j];\n var x = xa.c2p(pt.x);\n var y = ya.c2p(pt.y);\n if (selectionTester.contains([x, y], null, pt.i, searchInfo)) {\n selection.push({\n pointNumber: pt.i,\n x: xa.c2d(pt.x),\n y: ya.c2d(pt.y)\n });\n pt.selected = 1;\n } else {\n pt.selected = 0;\n }\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/box/index.js\n var require_box = __commonJS({\n \"src/traces/box/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes24(),\n layoutAttributes: require_layout_attributes7(),\n supplyDefaults: require_defaults20().supplyDefaults,\n crossTraceDefaults: require_defaults20().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults6().supplyLayoutDefaults,\n calc: require_calc6(),\n crossTraceCalc: require_cross_trace_calc3().crossTraceCalc,\n plot: require_plot4().plot,\n style: require_style5().style,\n styleOnSelect: require_style5().styleOnSelect,\n hoverPoints: require_hover4().hoverPoints,\n eventData: require_event_data2(),\n selectPoints: require_select4(),\n moduleType: \"trace\",\n name: \"box\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"symbols\", \"oriented\", \"box-violin\", \"showLegend\", \"boxLayout\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/box.js\n var require_box2 = __commonJS({\n \"lib/box.js\"(exports, module) {\n \"use strict\";\n module.exports = require_box();\n }\n });\n\n // src/traces/heatmap/attributes.js\n var require_attributes25 = __commonJS({\n \"src/traces/heatmap/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var fontAttrs = require_font_attributes();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n x: extendFlat({}, scatterAttrs.x, { impliedEdits: { xtype: \"array\" } }),\n x0: extendFlat({}, scatterAttrs.x0, { impliedEdits: { xtype: \"scaled\" } }),\n dx: extendFlat({}, scatterAttrs.dx, { impliedEdits: { xtype: \"scaled\" } }),\n y: extendFlat({}, scatterAttrs.y, { impliedEdits: { ytype: \"array\" } }),\n y0: extendFlat({}, scatterAttrs.y0, { impliedEdits: { ytype: \"scaled\" } }),\n dy: extendFlat({}, scatterAttrs.dy, { impliedEdits: { ytype: \"scaled\" } }),\n xperiod: extendFlat({}, scatterAttrs.xperiod, { impliedEdits: { xtype: \"scaled\" } }),\n yperiod: extendFlat({}, scatterAttrs.yperiod, { impliedEdits: { ytype: \"scaled\" } }),\n xperiod0: extendFlat({}, scatterAttrs.xperiod0, { impliedEdits: { xtype: \"scaled\" } }),\n yperiod0: extendFlat({}, scatterAttrs.yperiod0, { impliedEdits: { ytype: \"scaled\" } }),\n xperiodalignment: extendFlat({}, scatterAttrs.xperiodalignment, { impliedEdits: { xtype: \"scaled\" } }),\n yperiodalignment: extendFlat({}, scatterAttrs.yperiodalignment, { impliedEdits: { ytype: \"scaled\" } }),\n text: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n hovertext: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n transpose: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n xtype: {\n valType: \"enumerated\",\n values: [\"array\", \"scaled\"],\n editType: \"calc+clearAxisTypes\"\n },\n ytype: {\n valType: \"enumerated\",\n values: [\"array\", \"scaled\"],\n editType: \"calc+clearAxisTypes\"\n },\n zsmooth: {\n valType: \"enumerated\",\n values: [\"fast\", \"best\", false],\n dflt: false,\n editType: \"calc\"\n },\n hoverongaps: {\n valType: \"boolean\",\n dflt: true,\n editType: \"none\"\n },\n connectgaps: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n xgap: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n editType: \"plot\"\n },\n ygap: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n editType: \"plot\"\n },\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: hovertemplateAttrs(),\n texttemplate: texttemplateAttrs({\n arrayOk: false,\n editType: \"plot\"\n }, {\n keys: [\"x\", \"y\", \"z\", \"text\"]\n }),\n textfont: fontAttrs({\n editType: \"plot\",\n autoSize: true,\n autoColor: true,\n colorEditType: \"style\"\n }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false }),\n zorder: scatterAttrs.zorder\n },\n colorScaleAttrs(\"\", { cLetter: \"z\", autoColorDflt: false })\n );\n }\n });\n\n // src/traces/heatmap/xyz_defaults.js\n var require_xyz_defaults = __commonJS({\n \"src/traces/heatmap/xyz_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Registry = require_registry();\n module.exports = function handleXYZDefaults(traceIn, traceOut, coerce, layout, xName, yName) {\n var z = coerce(\"z\");\n xName = xName || \"x\";\n yName = yName || \"y\";\n var x, y;\n if (z === void 0 || !z.length) return 0;\n if (Lib.isArray1D(z)) {\n x = coerce(xName);\n y = coerce(yName);\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n if (xlen === 0 || ylen === 0) return 0;\n traceOut._length = Math.min(xlen, ylen, z.length);\n } else {\n x = coordDefaults(xName, coerce);\n y = coordDefaults(yName, coerce);\n if (!isValidZ(z)) return 0;\n coerce(\"transpose\");\n traceOut._length = null;\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [xName, yName], layout);\n return true;\n };\n function coordDefaults(coordStr, coerce) {\n var coord = coerce(coordStr);\n var coordType = coord ? coerce(coordStr + \"type\", \"array\") : \"scaled\";\n if (coordType === \"scaled\") {\n coerce(coordStr + \"0\");\n coerce(\"d\" + coordStr);\n }\n return coord;\n }\n function isValidZ(z) {\n var allRowsAreArrays = true;\n var oneRowIsFilled = false;\n var hasOneNumber = false;\n var zi;\n for (var i = 0; i < z.length; i++) {\n zi = z[i];\n if (!Lib.isArrayOrTypedArray(zi)) {\n allRowsAreArrays = false;\n break;\n }\n if (zi.length > 0) oneRowIsFilled = true;\n for (var j = 0; j < zi.length; j++) {\n if (isNumeric(zi[j])) {\n hasOneNumber = true;\n break;\n }\n }\n }\n return allRowsAreArrays && oneRowIsFilled && hasOneNumber;\n }\n }\n });\n\n // src/traces/heatmap/label_defaults.js\n var require_label_defaults = __commonJS({\n \"src/traces/heatmap/label_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function handleHeatmapLabelDefaults(coerce, layout) {\n coerce(\"texttemplate\");\n var fontDflt = Lib.extendFlat({}, layout.font, {\n color: \"auto\",\n size: \"auto\"\n });\n Lib.coerceFont(coerce, \"textfont\", fontDflt);\n };\n }\n });\n\n // src/traces/heatmap/style_defaults.js\n var require_style_defaults2 = __commonJS({\n \"src/traces/heatmap/style_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleStyleDefaults(traceIn, traceOut, coerce) {\n var zsmooth = coerce(\"zsmooth\");\n if (zsmooth === false) {\n coerce(\"xgap\");\n coerce(\"ygap\");\n }\n coerce(\"zhoverformat\");\n };\n }\n });\n\n // src/traces/heatmap/defaults.js\n var require_defaults21 = __commonJS({\n \"src/traces/heatmap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYZDefaults = require_xyz_defaults();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleStyleDefaults = require_style_defaults2();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes25();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var validData = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if (!validData) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n handleHeatmapLabelDefaults(coerce, layout);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce(\"hoverongaps\");\n coerce(\"connectgaps\", Lib.isArray1D(traceOut.z) && traceOut.zsmooth !== false);\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/histogram/bin_functions.js\n var require_bin_functions = __commonJS({\n \"src/traces/histogram/bin_functions.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n module.exports = {\n count: function(n, i, size) {\n size[n]++;\n return 1;\n },\n sum: function(n, i, size, counterData) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n return v;\n }\n return 0;\n },\n avg: function(n, i, size, counterData, counts) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n size[n] += v;\n counts[n]++;\n }\n return 0;\n },\n min: function(n, i, size, counterData) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n if (!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if (size[n] > v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n },\n max: function(n, i, size, counterData) {\n var v = counterData[i];\n if (isNumeric(v)) {\n v = Number(v);\n if (!isNumeric(size[n])) {\n size[n] = v;\n return v;\n } else if (size[n] < v) {\n var delta = v - size[n];\n size[n] = v;\n return delta;\n }\n }\n return 0;\n }\n };\n }\n });\n\n // src/traces/histogram/norm_functions.js\n var require_norm_functions = __commonJS({\n \"src/traces/histogram/norm_functions.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n percent: function(size, total) {\n var nMax = size.length;\n var norm = 100 / total;\n for (var n = 0; n < nMax; n++) size[n] *= norm;\n },\n probability: function(size, total) {\n var nMax = size.length;\n for (var n = 0; n < nMax; n++) size[n] /= total;\n },\n density: function(size, total, inc, yinc) {\n var nMax = size.length;\n yinc = yinc || 1;\n for (var n = 0; n < nMax; n++) size[n] *= inc[n] * yinc;\n },\n \"probability density\": function(size, total, inc, yinc) {\n var nMax = size.length;\n if (yinc) total /= yinc;\n for (var n = 0; n < nMax; n++) size[n] *= inc[n] / total;\n }\n };\n }\n });\n\n // src/traces/histogram/average.js\n var require_average = __commonJS({\n \"src/traces/histogram/average.js\"(exports, module) {\n \"use strict\";\n module.exports = function doAvg(size, counts) {\n var nMax = size.length;\n var total = 0;\n for (var i = 0; i < nMax; i++) {\n if (counts[i]) {\n size[i] /= counts[i];\n total += size[i];\n } else size[i] = null;\n }\n return total;\n };\n }\n });\n\n // src/traces/histogram/bin_label_vals.js\n var require_bin_label_vals = __commonJS({\n \"src/traces/histogram/bin_label_vals.js\"(exports, module) {\n \"use strict\";\n var numConstants = require_numerical();\n var oneYear = numConstants.ONEAVGYEAR;\n var oneMonth = numConstants.ONEAVGMONTH;\n var oneDay = numConstants.ONEDAY;\n var oneHour = numConstants.ONEHOUR;\n var oneMin = numConstants.ONEMIN;\n var oneSec = numConstants.ONESEC;\n var tickIncrement = require_axes().tickIncrement;\n module.exports = function getBinSpanLabelRound(leftGap, rightGap, binEdges, pa, calendar) {\n var dv0 = -1.1 * rightGap;\n var dv1 = -0.1 * rightGap;\n var dv2 = leftGap - dv1;\n var edge0 = binEdges[0];\n var edge1 = binEdges[1];\n var leftDigit = Math.min(\n biggestDigitChanged(edge0 + dv1, edge0 + dv2, pa, calendar),\n biggestDigitChanged(edge1 + dv1, edge1 + dv2, pa, calendar)\n );\n var rightDigit = Math.min(\n biggestDigitChanged(edge0 + dv0, edge0 + dv1, pa, calendar),\n biggestDigitChanged(edge1 + dv0, edge1 + dv1, pa, calendar)\n );\n var digit, disambiguateEdges;\n if (leftDigit > rightDigit && rightDigit < Math.abs(edge1 - edge0) / 4e3) {\n digit = leftDigit;\n disambiguateEdges = false;\n } else {\n digit = Math.min(leftDigit, rightDigit);\n disambiguateEdges = true;\n }\n if (pa.type === \"date\" && digit > oneDay) {\n var dashExclude = digit === oneYear ? 1 : 6;\n var increment = digit === oneYear ? \"M12\" : \"M1\";\n return function(v, isRightEdge) {\n var dateStr = pa.c2d(v, oneYear, calendar);\n var dashPos = dateStr.indexOf(\"-\", dashExclude);\n if (dashPos > 0) dateStr = dateStr.substr(0, dashPos);\n var roundedV = pa.d2c(dateStr, 0, calendar);\n if (roundedV < v) {\n var nextV = tickIncrement(roundedV, increment, false, calendar);\n if ((roundedV + nextV) / 2 < v + leftGap) roundedV = nextV;\n }\n if (isRightEdge && disambiguateEdges) {\n return tickIncrement(roundedV, increment, true, calendar);\n }\n return roundedV;\n };\n }\n return function(v, isRightEdge) {\n var roundedV = digit * Math.round(v / digit);\n if (roundedV + digit / 10 < v && roundedV + digit * 0.9 < v + leftGap) {\n roundedV += digit;\n }\n if (isRightEdge && disambiguateEdges) {\n roundedV -= digit;\n }\n return roundedV;\n };\n };\n function biggestDigitChanged(v1, v2, pa, calendar) {\n if (v1 * v2 <= 0) return Infinity;\n var dv = Math.abs(v2 - v1);\n var isDate = pa.type === \"date\";\n var digit = biggestGuaranteedDigitChanged(dv, isDate);\n for (var i = 0; i < 10; i++) {\n var nextDigit = biggestGuaranteedDigitChanged(digit * 80, isDate);\n if (digit === nextDigit) break;\n if (didDigitChange(nextDigit, v1, v2, isDate, pa, calendar)) digit = nextDigit;\n else break;\n }\n return digit;\n }\n function biggestGuaranteedDigitChanged(dv, isDate) {\n if (isDate && dv > oneSec) {\n if (dv > oneDay) {\n if (dv > oneYear * 1.1) return oneYear;\n if (dv > oneMonth * 1.1) return oneMonth;\n return oneDay;\n }\n if (dv > oneHour) return oneHour;\n if (dv > oneMin) return oneMin;\n return oneSec;\n }\n return Math.pow(10, Math.floor(Math.log(dv) / Math.LN10));\n }\n function didDigitChange(digit, v1, v2, isDate, pa, calendar) {\n if (isDate && digit > oneDay) {\n var dateParts1 = dateParts(v1, pa, calendar);\n var dateParts2 = dateParts(v2, pa, calendar);\n var parti = digit === oneYear ? 0 : 1;\n return dateParts1[parti] !== dateParts2[parti];\n }\n return Math.floor(v2 / digit) - Math.floor(v1 / digit) > 0.1;\n }\n function dateParts(v, pa, calendar) {\n var parts = pa.c2d(v, oneYear, calendar).split(\"-\");\n if (parts[0] === \"\") {\n parts.unshift();\n parts[0] = \"-\" + parts[0];\n }\n return parts;\n }\n }\n });\n\n // src/traces/histogram/calc.js\n var require_calc7 = __commonJS({\n \"src/traces/histogram/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Registry = require_registry();\n var Axes = require_axes();\n var arraysToCalcdata = require_arrays_to_calcdata2();\n var binFunctions = require_bin_functions();\n var normFunctions = require_norm_functions();\n var doAvg = require_average();\n var getBinSpanLabelRound = require_bin_label_vals();\n function calc(gd, trace) {\n var pos = [];\n var size = [];\n var isHorizontal = trace.orientation === \"h\";\n var pa = Axes.getFromId(gd, isHorizontal ? trace.yaxis : trace.xaxis);\n var mainData = isHorizontal ? \"y\" : \"x\";\n var counterData = { x: \"y\", y: \"x\" }[mainData];\n var calendar = trace[mainData + \"calendar\"];\n var cumulativeSpec = trace.cumulative;\n var i;\n var binsAndPos = calcAllAutoBins(gd, trace, pa, mainData);\n var binSpec = binsAndPos[0];\n var pos0 = binsAndPos[1];\n var nonuniformBins = typeof binSpec.size === \"string\";\n var binEdges = [];\n var bins = nonuniformBins ? binEdges : binSpec;\n var inc = [];\n var counts = [];\n var inputPoints = [];\n var total = 0;\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densityNorm = norm.indexOf(\"density\") !== -1;\n var i2, binEnd, n;\n if (cumulativeSpec.enabled && densityNorm) {\n norm = norm.replace(/ ?density$/, \"\");\n densityNorm = false;\n }\n var extremeFunc = func === \"max\" || func === \"min\";\n var sizeInit = extremeFunc ? null : 0;\n var binFunc = binFunctions.count;\n var normFunc = normFunctions[norm];\n var isAvg = false;\n var pr2c = function(v) {\n return pa.r2c(v, 0, calendar);\n };\n var rawCounterData;\n if (Lib.isArrayOrTypedArray(trace[counterData]) && func !== \"count\") {\n rawCounterData = trace[counterData];\n isAvg = func === \"avg\";\n binFunc = binFunctions[func];\n }\n i = pr2c(binSpec.start);\n binEnd = pr2c(binSpec.end) + (i - Axes.tickIncrement(i, binSpec.size, false, calendar)) / 1e6;\n while (i < binEnd && pos.length < 1e6) {\n i2 = Axes.tickIncrement(i, binSpec.size, false, calendar);\n pos.push((i + i2) / 2);\n size.push(sizeInit);\n inputPoints.push([]);\n binEdges.push(i);\n if (densityNorm) inc.push(1 / (i2 - i));\n if (isAvg) counts.push(0);\n if (i2 <= i) break;\n i = i2;\n }\n binEdges.push(i);\n if (!nonuniformBins && pa.type === \"date\") {\n bins = {\n start: pr2c(bins.start),\n end: pr2c(bins.end),\n size: bins.size\n };\n }\n if (!gd._fullLayout._roundFnOpts) gd._fullLayout._roundFnOpts = {};\n var groupName = trace[\"_\" + mainData + \"bingroup\"];\n var roundFnOpts = { leftGap: Infinity, rightGap: Infinity };\n if (groupName) {\n if (!gd._fullLayout._roundFnOpts[groupName]) gd._fullLayout._roundFnOpts[groupName] = roundFnOpts;\n roundFnOpts = gd._fullLayout._roundFnOpts[groupName];\n }\n var nMax = size.length;\n var uniqueValsPerBin = true;\n var leftGap = roundFnOpts.leftGap;\n var rightGap = roundFnOpts.rightGap;\n var ptNumber2cdIndex = {};\n for (i = 0; i < pos0.length; i++) {\n var posi = pos0[i];\n n = Lib.findBin(posi, bins);\n if (n >= 0 && n < nMax) {\n total += binFunc(n, i, size, rawCounterData, counts);\n if (uniqueValsPerBin && inputPoints[n].length && posi !== pos0[inputPoints[n][0]]) {\n uniqueValsPerBin = false;\n }\n inputPoints[n].push(i);\n ptNumber2cdIndex[i] = n;\n leftGap = Math.min(leftGap, posi - binEdges[n]);\n rightGap = Math.min(rightGap, binEdges[n + 1] - posi);\n }\n }\n roundFnOpts.leftGap = leftGap;\n roundFnOpts.rightGap = rightGap;\n var roundFn;\n if (!uniqueValsPerBin) {\n roundFn = function(v, isRightEdge) {\n return function() {\n var roundFnOpts2 = gd._fullLayout._roundFnOpts[groupName];\n return getBinSpanLabelRound(\n roundFnOpts2.leftGap,\n roundFnOpts2.rightGap,\n binEdges,\n pa,\n calendar\n )(v, isRightEdge);\n };\n };\n }\n if (isAvg) total = doAvg(size, counts);\n if (normFunc) normFunc(size, total, inc);\n if (cumulativeSpec.enabled) cdf(size, cumulativeSpec.direction, cumulativeSpec.currentbin);\n var seriesLen = Math.min(pos.length, size.length);\n var cd = [];\n var firstNonzero = 0;\n var lastNonzero = seriesLen - 1;\n for (i = 0; i < seriesLen; i++) {\n if (size[i]) {\n firstNonzero = i;\n break;\n }\n }\n for (i = seriesLen - 1; i >= firstNonzero; i--) {\n if (size[i]) {\n lastNonzero = i;\n break;\n }\n }\n for (i = firstNonzero; i <= lastNonzero; i++) {\n if (isNumeric(pos[i]) && isNumeric(size[i])) {\n var cdi = {\n p: pos[i],\n s: size[i],\n b: 0\n };\n if (!cumulativeSpec.enabled) {\n cdi.pts = inputPoints[i];\n if (uniqueValsPerBin) {\n cdi.ph0 = cdi.ph1 = inputPoints[i].length ? pos0[inputPoints[i][0]] : pos[i];\n } else {\n trace._computePh = true;\n cdi.ph0 = roundFn(binEdges[i]);\n cdi.ph1 = roundFn(binEdges[i + 1], true);\n }\n }\n cd.push(cdi);\n }\n }\n if (cd.length === 1) {\n cd[0].width1 = Axes.tickIncrement(cd[0].p, binSpec.size, false, calendar) - cd[0].p;\n }\n arraysToCalcdata(cd, trace);\n if (Lib.isArrayOrTypedArray(trace.selectedpoints)) {\n Lib.tagSelected(cd, trace, ptNumber2cdIndex);\n }\n return cd;\n }\n function calcAllAutoBins(gd, trace, pa, mainData, _overlayEdgeCase) {\n var binAttr = mainData + \"bins\";\n var fullLayout = gd._fullLayout;\n var groupName = trace[\"_\" + mainData + \"bingroup\"];\n var binOpts = fullLayout._histogramBinOpts[groupName];\n var isOverlay = fullLayout.barmode === \"overlay\";\n var i, traces, tracei, calendar, pos0, autoVals, cumulativeSpec;\n var r2c = function(v) {\n return pa.r2c(v, 0, calendar);\n };\n var c2r = function(v) {\n return pa.c2r(v, 0, calendar);\n };\n var cleanBound = pa.type === \"date\" ? function(v) {\n return v || v === 0 ? Lib.cleanDate(v, null, calendar) : null;\n } : function(v) {\n return isNumeric(v) ? Number(v) : null;\n };\n function setBound(attr, bins, newBins) {\n if (bins[attr + \"Found\"]) {\n bins[attr] = cleanBound(bins[attr]);\n if (bins[attr] === null) bins[attr] = newBins[attr];\n } else {\n autoVals[attr] = bins[attr] = newBins[attr];\n Lib.nestedProperty(traces[0], binAttr + \".\" + attr).set(newBins[attr]);\n }\n }\n if (trace[\"_\" + mainData + \"autoBinFinished\"]) {\n delete trace[\"_\" + mainData + \"autoBinFinished\"];\n } else {\n traces = binOpts.traces;\n var allPos = [];\n var isFirstVisible = true;\n var has2dMap = false;\n var hasHist2dContour = false;\n for (i = 0; i < traces.length; i++) {\n tracei = traces[i];\n if (tracei.visible) {\n var mainDatai = binOpts.dirs[i];\n pos0 = tracei[\"_\" + mainDatai + \"pos0\"] = pa.makeCalcdata(tracei, mainDatai);\n allPos = Lib.concat(allPos, pos0);\n delete tracei[\"_\" + mainData + \"autoBinFinished\"];\n if (trace.visible === true) {\n if (isFirstVisible) {\n isFirstVisible = false;\n } else {\n delete tracei._autoBin;\n tracei[\"_\" + mainData + \"autoBinFinished\"] = 1;\n }\n if (Registry.traceIs(tracei, \"2dMap\")) {\n has2dMap = true;\n }\n if (tracei.type === \"histogram2dcontour\") {\n hasHist2dContour = true;\n }\n }\n }\n }\n calendar = traces[0][mainData + \"calendar\"];\n var newBinSpec = Axes.autoBin(allPos, pa, binOpts.nbins, has2dMap, calendar, binOpts.sizeFound && binOpts.size);\n var autoBin = traces[0]._autoBin = {};\n autoVals = autoBin[binOpts.dirs[0]] = {};\n if (hasHist2dContour) {\n if (!binOpts.size) {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start),\n newBinSpec.size,\n true,\n calendar\n ));\n }\n if (binOpts.end === void 0) {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end),\n newBinSpec.size,\n false,\n calendar\n ));\n }\n }\n if (isOverlay && !Registry.traceIs(trace, \"2dMap\") && newBinSpec._dataSpan === 0 && pa.type !== \"category\" && pa.type !== \"multicategory\" && trace.bingroup === \"\" && typeof trace.xbins === \"undefined\") {\n if (_overlayEdgeCase) return [newBinSpec, pos0, true];\n newBinSpec = handleSingleValueOverlays(gd, trace, pa, mainData, binAttr);\n }\n cumulativeSpec = tracei.cumulative || {};\n if (cumulativeSpec.enabled && cumulativeSpec.currentbin !== \"include\") {\n if (cumulativeSpec.direction === \"decreasing\") {\n newBinSpec.start = c2r(Axes.tickIncrement(\n r2c(newBinSpec.start),\n newBinSpec.size,\n true,\n calendar\n ));\n } else {\n newBinSpec.end = c2r(Axes.tickIncrement(\n r2c(newBinSpec.end),\n newBinSpec.size,\n false,\n calendar\n ));\n }\n }\n binOpts.size = newBinSpec.size;\n if (!binOpts.sizeFound) {\n autoVals.size = newBinSpec.size;\n Lib.nestedProperty(traces[0], binAttr + \".size\").set(newBinSpec.size);\n }\n setBound(\"start\", binOpts, newBinSpec);\n setBound(\"end\", binOpts, newBinSpec);\n }\n pos0 = trace[\"_\" + mainData + \"pos0\"];\n delete trace[\"_\" + mainData + \"pos0\"];\n var traceInputBins = trace._input[binAttr] || {};\n var traceBinOptsCalc = Lib.extendFlat({}, binOpts);\n var mainStart = binOpts.start;\n var startIn = pa.r2l(traceInputBins.start);\n var hasStart = startIn !== void 0;\n if ((binOpts.startFound || hasStart) && startIn !== pa.r2l(mainStart)) {\n var traceStart = hasStart ? startIn : Lib.aggNums(Math.min, null, pos0);\n var dummyAx = {\n type: pa.type === \"category\" || pa.type === \"multicategory\" ? \"linear\" : pa.type,\n r2l: pa.r2l,\n dtick: binOpts.size,\n tick0: mainStart,\n calendar,\n range: [traceStart, Axes.tickIncrement(traceStart, binOpts.size, false, calendar)].map(pa.l2r)\n };\n var newStart = Axes.tickFirst(dummyAx);\n if (newStart > pa.r2l(traceStart)) {\n newStart = Axes.tickIncrement(newStart, binOpts.size, true, calendar);\n }\n traceBinOptsCalc.start = pa.l2r(newStart);\n if (!hasStart) Lib.nestedProperty(trace, binAttr + \".start\").set(traceBinOptsCalc.start);\n }\n var mainEnd = binOpts.end;\n var endIn = pa.r2l(traceInputBins.end);\n var hasEnd = endIn !== void 0;\n if ((binOpts.endFound || hasEnd) && endIn !== pa.r2l(mainEnd)) {\n var traceEnd = hasEnd ? endIn : Lib.aggNums(Math.max, null, pos0);\n traceBinOptsCalc.end = pa.l2r(traceEnd);\n if (!hasEnd) Lib.nestedProperty(trace, binAttr + \".start\").set(traceBinOptsCalc.end);\n }\n var autoBinAttr = \"autobin\" + mainData;\n if (trace._input[autoBinAttr] === false) {\n trace._input[binAttr] = Lib.extendFlat({}, trace[binAttr] || {});\n delete trace._input[autoBinAttr];\n delete trace[autoBinAttr];\n }\n return [traceBinOptsCalc, pos0];\n }\n function handleSingleValueOverlays(gd, trace, pa, mainData, binAttr) {\n var fullLayout = gd._fullLayout;\n var overlaidTraceGroup = getConnectedHistograms(gd, trace);\n var pastThisTrace = false;\n var minSize = Infinity;\n var singleValuedTraces = [trace];\n var i, tracei, binOpts;\n for (i = 0; i < overlaidTraceGroup.length; i++) {\n tracei = overlaidTraceGroup[i];\n if (tracei === trace) {\n pastThisTrace = true;\n } else if (!pastThisTrace) {\n binOpts = fullLayout._histogramBinOpts[tracei[\"_\" + mainData + \"bingroup\"]];\n minSize = Math.min(minSize, binOpts.size || tracei[binAttr].size);\n } else {\n var resulti = calcAllAutoBins(gd, tracei, pa, mainData, true);\n var binSpeci = resulti[0];\n var isSingleValued = resulti[2];\n tracei[\"_\" + mainData + \"autoBinFinished\"] = 1;\n tracei[\"_\" + mainData + \"pos0\"] = resulti[1];\n if (isSingleValued) {\n singleValuedTraces.push(tracei);\n } else {\n minSize = Math.min(minSize, binSpeci.size);\n }\n }\n }\n var dataVals = new Array(singleValuedTraces.length);\n for (i = 0; i < singleValuedTraces.length; i++) {\n var pos0 = singleValuedTraces[i][\"_\" + mainData + \"pos0\"];\n for (var j = 0; j < pos0.length; j++) {\n if (pos0[j] !== void 0) {\n dataVals[i] = pos0[j];\n break;\n }\n }\n }\n if (!isFinite(minSize)) {\n minSize = Lib.distinctVals(dataVals).minDiff;\n }\n for (i = 0; i < singleValuedTraces.length; i++) {\n tracei = singleValuedTraces[i];\n var calendar = tracei[mainData + \"calendar\"];\n var newBins = {\n start: pa.c2r(dataVals[i] - minSize / 2, 0, calendar),\n end: pa.c2r(dataVals[i] + minSize / 2, 0, calendar),\n size: minSize\n };\n tracei._input[binAttr] = tracei[binAttr] = newBins;\n binOpts = fullLayout._histogramBinOpts[tracei[\"_\" + mainData + \"bingroup\"]];\n if (binOpts) Lib.extendFlat(binOpts, newBins);\n }\n return trace[binAttr];\n }\n function getConnectedHistograms(gd, trace) {\n var xid = trace.xaxis;\n var yid = trace.yaxis;\n var orientation = trace.orientation;\n var out = [];\n var fullData = gd._fullData;\n for (var i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if (tracei.type === \"histogram\" && tracei.visible === true && tracei.orientation === orientation && tracei.xaxis === xid && tracei.yaxis === yid) {\n out.push(tracei);\n }\n }\n return out;\n }\n function cdf(size, direction, currentBin) {\n var i, vi, prevSum;\n function firstHalfPoint(i2) {\n prevSum = size[i2];\n size[i2] /= 2;\n }\n function nextHalfPoint(i2) {\n vi = size[i2];\n size[i2] = prevSum + vi / 2;\n prevSum += vi;\n }\n if (currentBin === \"half\") {\n if (direction === \"increasing\") {\n firstHalfPoint(0);\n for (i = 1; i < size.length; i++) {\n nextHalfPoint(i);\n }\n } else {\n firstHalfPoint(size.length - 1);\n for (i = size.length - 2; i >= 0; i--) {\n nextHalfPoint(i);\n }\n }\n } else if (direction === \"increasing\") {\n for (i = 1; i < size.length; i++) {\n size[i] += size[i - 1];\n }\n if (currentBin === \"exclude\") {\n size.unshift(0);\n size.pop();\n }\n } else {\n for (i = size.length - 2; i >= 0; i--) {\n size[i] += size[i + 1];\n }\n if (currentBin === \"exclude\") {\n size.push(0);\n size.shift();\n }\n }\n }\n module.exports = {\n calc,\n calcAllAutoBins\n };\n }\n });\n\n // src/traces/histogram2d/calc.js\n var require_calc8 = __commonJS({\n \"src/traces/histogram2d/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var binFunctions = require_bin_functions();\n var normFunctions = require_norm_functions();\n var doAvg = require_average();\n var getBinSpanLabelRound = require_bin_label_vals();\n var calcAllAutoBins = require_calc7().calcAllAutoBins;\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var xcalendar = trace.xcalendar;\n var ycalendar = trace.ycalendar;\n var xr2c = function(v) {\n return xa.r2c(v, 0, xcalendar);\n };\n var yr2c = function(v) {\n return ya.r2c(v, 0, ycalendar);\n };\n var xc2r = function(v) {\n return xa.c2r(v, 0, xcalendar);\n };\n var yc2r = function(v) {\n return ya.c2r(v, 0, ycalendar);\n };\n var i, j, n, m;\n var xBinsAndPos = calcAllAutoBins(gd, trace, xa, \"x\");\n var xBinSpec = xBinsAndPos[0];\n var xPos0 = xBinsAndPos[1];\n var yBinsAndPos = calcAllAutoBins(gd, trace, ya, \"y\");\n var yBinSpec = yBinsAndPos[0];\n var yPos0 = yBinsAndPos[1];\n var serieslen = trace._length;\n if (xPos0.length > serieslen) xPos0.splice(serieslen, xPos0.length - serieslen);\n if (yPos0.length > serieslen) yPos0.splice(serieslen, yPos0.length - serieslen);\n var z = [];\n var onecol = [];\n var zerocol = [];\n var nonuniformBinsX = typeof xBinSpec.size === \"string\";\n var nonuniformBinsY = typeof yBinSpec.size === \"string\";\n var xEdges = [];\n var yEdges = [];\n var xbins = nonuniformBinsX ? xEdges : xBinSpec;\n var ybins = nonuniformBinsY ? yEdges : yBinSpec;\n var total = 0;\n var counts = [];\n var inputPoints = [];\n var norm = trace.histnorm;\n var func = trace.histfunc;\n var densitynorm = norm.indexOf(\"density\") !== -1;\n var extremefunc = func === \"max\" || func === \"min\";\n var sizeinit = extremefunc ? null : 0;\n var binfunc = binFunctions.count;\n var normfunc = normFunctions[norm];\n var doavg = false;\n var xinc = [];\n var yinc = [];\n var rawCounterData = \"z\" in trace ? trace.z : \"marker\" in trace && Array.isArray(trace.marker.color) ? trace.marker.color : \"\";\n if (rawCounterData && func !== \"count\") {\n doavg = func === \"avg\";\n binfunc = binFunctions[func];\n }\n var xBinSize = xBinSpec.size;\n var xBinStart = xr2c(xBinSpec.start);\n var xBinEnd = xr2c(xBinSpec.end) + (xBinStart - Axes.tickIncrement(xBinStart, xBinSize, false, xcalendar)) / 1e6;\n for (i = xBinStart; i < xBinEnd; i = Axes.tickIncrement(i, xBinSize, false, xcalendar)) {\n onecol.push(sizeinit);\n xEdges.push(i);\n if (doavg) zerocol.push(0);\n }\n xEdges.push(i);\n var nx = onecol.length;\n var dx = (i - xBinStart) / nx;\n var x0 = xc2r(xBinStart + dx / 2);\n var yBinSize = yBinSpec.size;\n var yBinStart = yr2c(yBinSpec.start);\n var yBinEnd = yr2c(yBinSpec.end) + (yBinStart - Axes.tickIncrement(yBinStart, yBinSize, false, ycalendar)) / 1e6;\n for (i = yBinStart; i < yBinEnd; i = Axes.tickIncrement(i, yBinSize, false, ycalendar)) {\n z.push(onecol.slice());\n yEdges.push(i);\n var ipCol = new Array(nx);\n for (j = 0; j < nx; j++) ipCol[j] = [];\n inputPoints.push(ipCol);\n if (doavg) counts.push(zerocol.slice());\n }\n yEdges.push(i);\n var ny = z.length;\n var dy = (i - yBinStart) / ny;\n var y0 = yc2r(yBinStart + dy / 2);\n if (densitynorm) {\n xinc = makeIncrements(onecol.length, xbins, dx, nonuniformBinsX);\n yinc = makeIncrements(z.length, ybins, dy, nonuniformBinsY);\n }\n if (!nonuniformBinsX && xa.type === \"date\") xbins = binsToCalc(xr2c, xbins);\n if (!nonuniformBinsY && ya.type === \"date\") ybins = binsToCalc(yr2c, ybins);\n var uniqueValsPerX = true;\n var uniqueValsPerY = true;\n var xVals = new Array(nx);\n var yVals = new Array(ny);\n var xGapLow = Infinity;\n var xGapHigh = Infinity;\n var yGapLow = Infinity;\n var yGapHigh = Infinity;\n for (i = 0; i < serieslen; i++) {\n var xi = xPos0[i];\n var yi = yPos0[i];\n n = Lib.findBin(xi, xbins);\n m = Lib.findBin(yi, ybins);\n if (n >= 0 && n < nx && m >= 0 && m < ny) {\n total += binfunc(n, i, z[m], rawCounterData, counts[m]);\n inputPoints[m][n].push(i);\n if (uniqueValsPerX) {\n if (xVals[n] === void 0) xVals[n] = xi;\n else if (xVals[n] !== xi) uniqueValsPerX = false;\n }\n if (uniqueValsPerY) {\n if (yVals[m] === void 0) yVals[m] = yi;\n else if (yVals[m] !== yi) uniqueValsPerY = false;\n }\n xGapLow = Math.min(xGapLow, xi - xEdges[n]);\n xGapHigh = Math.min(xGapHigh, xEdges[n + 1] - xi);\n yGapLow = Math.min(yGapLow, yi - yEdges[m]);\n yGapHigh = Math.min(yGapHigh, yEdges[m + 1] - yi);\n }\n }\n if (doavg) {\n for (m = 0; m < ny; m++) total += doAvg(z[m], counts[m]);\n }\n if (normfunc) {\n for (m = 0; m < ny; m++) normfunc(z[m], total, xinc, yinc[m]);\n }\n return {\n x: xPos0,\n xRanges: getRanges(xEdges, uniqueValsPerX && xVals, xGapLow, xGapHigh, xa, xcalendar),\n x0,\n dx,\n y: yPos0,\n yRanges: getRanges(yEdges, uniqueValsPerY && yVals, yGapLow, yGapHigh, ya, ycalendar),\n y0,\n dy,\n z,\n pts: inputPoints\n };\n };\n function makeIncrements(len, bins, dv, nonuniform) {\n var out = new Array(len);\n var i;\n if (nonuniform) {\n for (i = 0; i < len; i++) out[i] = 1 / (bins[i + 1] - bins[i]);\n } else {\n var inc = 1 / dv;\n for (i = 0; i < len; i++) out[i] = inc;\n }\n return out;\n }\n function binsToCalc(r2c, bins) {\n return {\n start: r2c(bins.start),\n end: r2c(bins.end),\n size: bins.size\n };\n }\n function getRanges(edges, uniqueVals, gapLow, gapHigh, ax, calendar) {\n var i;\n var len = edges.length - 1;\n var out = new Array(len);\n var roundFn = getBinSpanLabelRound(gapLow, gapHigh, edges, ax, calendar);\n for (i = 0; i < len; i++) {\n var v = (uniqueVals || [])[i];\n out[i] = v === void 0 ? [roundFn(edges[i]), roundFn(edges[i + 1], true)] : [v, v];\n }\n return out;\n }\n }\n });\n\n // src/traces/heatmap/convert_column_xyz.js\n var require_convert_column_xyz = __commonJS({\n \"src/traces/heatmap/convert_column_xyz.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var alignPeriod = require_align_period();\n module.exports = function convertColumnData(trace, ax1, ax2, var1Name, var2Name, arrayVarNames) {\n var colLen = trace._length;\n var col1 = ax1.makeCalcdata(trace, var1Name);\n var col2 = ax2.makeCalcdata(trace, var2Name);\n col1 = alignPeriod(trace, ax1, var1Name, col1).vals;\n col2 = alignPeriod(trace, ax2, var2Name, col2).vals;\n var textCol = trace.text;\n var hasColumnText = textCol !== void 0 && Lib.isArray1D(textCol);\n var hoverTextCol = trace.hovertext;\n var hasColumnHoverText = hoverTextCol !== void 0 && Lib.isArray1D(hoverTextCol);\n var i, j;\n var col1dv = Lib.distinctVals(col1);\n var col1vals = col1dv.vals;\n var col2dv = Lib.distinctVals(col2);\n var col2vals = col2dv.vals;\n var newArrays = [];\n var text;\n var hovertext;\n var nI = col2vals.length;\n var nJ = col1vals.length;\n for (i = 0; i < arrayVarNames.length; i++) {\n newArrays[i] = Lib.init2dArray(nI, nJ);\n }\n if (hasColumnText) {\n text = Lib.init2dArray(nI, nJ);\n }\n if (hasColumnHoverText) {\n hovertext = Lib.init2dArray(nI, nJ);\n }\n var after2before = Lib.init2dArray(nI, nJ);\n for (i = 0; i < colLen; i++) {\n if (col1[i] !== BADNUM && col2[i] !== BADNUM) {\n var i1 = Lib.findBin(col1[i] + col1dv.minDiff / 2, col1vals);\n var i2 = Lib.findBin(col2[i] + col2dv.minDiff / 2, col2vals);\n for (j = 0; j < arrayVarNames.length; j++) {\n var arrayVarName = arrayVarNames[j];\n var arrayVar = trace[arrayVarName];\n var newArray = newArrays[j];\n newArray[i2][i1] = arrayVar[i];\n after2before[i2][i1] = i;\n }\n if (hasColumnText) text[i2][i1] = textCol[i];\n if (hasColumnHoverText) hovertext[i2][i1] = hoverTextCol[i];\n }\n }\n trace[\"_\" + var1Name] = col1vals;\n trace[\"_\" + var2Name] = col2vals;\n for (j = 0; j < arrayVarNames.length; j++) {\n trace[\"_\" + arrayVarNames[j]] = newArrays[j];\n }\n if (hasColumnText) trace._text = text;\n if (hasColumnHoverText) trace._hovertext = hovertext;\n if (ax1 && ax1.type === \"category\") {\n trace[\"_\" + var1Name + \"CategoryMap\"] = col1vals.map(function(v) {\n return ax1._categories[v];\n });\n }\n if (ax2 && ax2.type === \"category\") {\n trace[\"_\" + var2Name + \"CategoryMap\"] = col2vals.map(function(v) {\n return ax2._categories[v];\n });\n }\n trace._after2before = after2before;\n };\n }\n });\n\n // src/traces/heatmap/clean_2d_array.js\n var require_clean_2d_array = __commonJS({\n \"src/traces/heatmap/clean_2d_array.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function clean2dArray(zOld, trace, xa, ya) {\n var rowlen, collen, getCollen, old2new, i, j;\n function cleanZvalue(v) {\n if (!isNumeric(v)) return void 0;\n return +v;\n }\n if (trace && trace.transpose) {\n rowlen = 0;\n for (i = 0; i < zOld.length; i++) rowlen = Math.max(rowlen, zOld[i].length);\n if (rowlen === 0) return false;\n getCollen = function(zOld2) {\n return zOld2.length;\n };\n old2new = function(zOld2, i2, j2) {\n return (zOld2[j2] || [])[i2];\n };\n } else {\n rowlen = zOld.length;\n getCollen = function(zOld2, i2) {\n return zOld2[i2].length;\n };\n old2new = function(zOld2, i2, j2) {\n return (zOld2[i2] || [])[j2];\n };\n }\n var padOld2new = function(zOld2, i2, j2) {\n if (i2 === BADNUM || j2 === BADNUM) return BADNUM;\n return old2new(zOld2, i2, j2);\n };\n function axisMapping(ax) {\n if (trace && trace.type !== \"carpet\" && trace.type !== \"contourcarpet\" && ax && ax.type === \"category\" && trace[\"_\" + ax._id.charAt(0)].length) {\n var axLetter = ax._id.charAt(0);\n var axMapping = {};\n var traceCategories = trace[\"_\" + axLetter + \"CategoryMap\"] || trace[axLetter];\n for (i = 0; i < traceCategories.length; i++) {\n axMapping[traceCategories[i]] = i;\n }\n return function(i2) {\n var ind = axMapping[ax._categories[i2]];\n return ind + 1 ? ind : BADNUM;\n };\n } else {\n return Lib.identity;\n }\n }\n var xMap = axisMapping(xa);\n var yMap = axisMapping(ya);\n if (ya && ya.type === \"category\") rowlen = ya._categories.length;\n var zNew = new Array(rowlen);\n for (i = 0; i < rowlen; i++) {\n if (xa && xa.type === \"category\") {\n collen = xa._categories.length;\n } else {\n collen = getCollen(zOld, i);\n }\n zNew[i] = new Array(collen);\n for (j = 0; j < collen; j++) zNew[i][j] = cleanZvalue(padOld2new(zOld, yMap(i), xMap(j)));\n }\n return zNew;\n };\n }\n });\n\n // src/traces/heatmap/interp2d.js\n var require_interp2d = __commonJS({\n \"src/traces/heatmap/interp2d.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var INTERPTHRESHOLD = 0.01;\n var NEIGHBORSHIFTS = [[-1, 0], [1, 0], [0, -1], [0, 1]];\n function correctionOvershoot(maxFractionalChange) {\n return 0.5 - 0.25 * Math.min(1, maxFractionalChange * 0.5);\n }\n module.exports = function interp2d(z, emptyPoints) {\n var maxFractionalChange = 1;\n var i;\n iterateInterp2d(z, emptyPoints);\n for (i = 0; i < emptyPoints.length; i++) {\n if (emptyPoints[i][2] < 4) break;\n }\n emptyPoints = emptyPoints.slice(i);\n for (i = 0; i < 100 && maxFractionalChange > INTERPTHRESHOLD; i++) {\n maxFractionalChange = iterateInterp2d(\n z,\n emptyPoints,\n correctionOvershoot(maxFractionalChange)\n );\n }\n if (maxFractionalChange > INTERPTHRESHOLD) {\n Lib.log(\"interp2d didn't converge quickly\", maxFractionalChange);\n }\n return z;\n };\n function iterateInterp2d(z, emptyPoints, overshoot) {\n var maxFractionalChange = 0;\n var thisPt;\n var i;\n var j;\n var p;\n var q;\n var neighborShift;\n var neighborRow;\n var neighborVal;\n var neighborCount;\n var neighborSum;\n var initialVal;\n var minNeighbor;\n var maxNeighbor;\n for (p = 0; p < emptyPoints.length; p++) {\n thisPt = emptyPoints[p];\n i = thisPt[0];\n j = thisPt[1];\n initialVal = z[i][j];\n neighborSum = 0;\n neighborCount = 0;\n for (q = 0; q < 4; q++) {\n neighborShift = NEIGHBORSHIFTS[q];\n neighborRow = z[i + neighborShift[0]];\n if (!neighborRow) continue;\n neighborVal = neighborRow[j + neighborShift[1]];\n if (neighborVal !== void 0) {\n if (neighborSum === 0) {\n minNeighbor = maxNeighbor = neighborVal;\n } else {\n minNeighbor = Math.min(minNeighbor, neighborVal);\n maxNeighbor = Math.max(maxNeighbor, neighborVal);\n }\n neighborCount++;\n neighborSum += neighborVal;\n }\n }\n if (neighborCount === 0) {\n throw \"iterateInterp2d order is wrong: no defined neighbors\";\n }\n z[i][j] = neighborSum / neighborCount;\n if (initialVal === void 0) {\n if (neighborCount < 4) maxFractionalChange = 1;\n } else {\n z[i][j] = (1 + overshoot) * z[i][j] - overshoot * initialVal;\n if (maxNeighbor > minNeighbor) {\n maxFractionalChange = Math.max(\n maxFractionalChange,\n Math.abs(z[i][j] - initialVal) / (maxNeighbor - minNeighbor)\n );\n }\n }\n }\n return maxFractionalChange;\n }\n }\n });\n\n // src/traces/heatmap/find_empties.js\n var require_find_empties = __commonJS({\n \"src/traces/heatmap/find_empties.js\"(exports, module) {\n \"use strict\";\n var maxRowLength = require_lib().maxRowLength;\n module.exports = function findEmpties(z) {\n var empties = [];\n var neighborHash = {};\n var noNeighborList = [];\n var nextRow = z[0];\n var row = [];\n var blank = [0, 0, 0];\n var rowLength = maxRowLength(z);\n var prevRow;\n var i;\n var j;\n var thisPt;\n var p;\n var neighborCount;\n var newNeighborHash;\n var foundNewNeighbors;\n for (i = 0; i < z.length; i++) {\n prevRow = row;\n row = nextRow;\n nextRow = z[i + 1] || [];\n for (j = 0; j < rowLength; j++) {\n if (row[j] === void 0) {\n neighborCount = (row[j - 1] !== void 0 ? 1 : 0) + (row[j + 1] !== void 0 ? 1 : 0) + (prevRow[j] !== void 0 ? 1 : 0) + (nextRow[j] !== void 0 ? 1 : 0);\n if (neighborCount) {\n if (i === 0) neighborCount++;\n if (j === 0) neighborCount++;\n if (i === z.length - 1) neighborCount++;\n if (j === row.length - 1) neighborCount++;\n if (neighborCount < 4) {\n neighborHash[[i, j]] = [i, j, neighborCount];\n }\n empties.push([i, j, neighborCount]);\n } else noNeighborList.push([i, j]);\n }\n }\n }\n while (noNeighborList.length) {\n newNeighborHash = {};\n foundNewNeighbors = false;\n for (p = noNeighborList.length - 1; p >= 0; p--) {\n thisPt = noNeighborList[p];\n i = thisPt[0];\n j = thisPt[1];\n neighborCount = ((neighborHash[[i - 1, j]] || blank)[2] + (neighborHash[[i + 1, j]] || blank)[2] + (neighborHash[[i, j - 1]] || blank)[2] + (neighborHash[[i, j + 1]] || blank)[2]) / 20;\n if (neighborCount) {\n newNeighborHash[thisPt] = [i, j, neighborCount];\n noNeighborList.splice(p, 1);\n foundNewNeighbors = true;\n }\n }\n if (!foundNewNeighbors) {\n throw \"findEmpties iterated with no new neighbors\";\n }\n for (thisPt in newNeighborHash) {\n neighborHash[thisPt] = newNeighborHash[thisPt];\n empties.push(newNeighborHash[thisPt]);\n }\n }\n return empties.sort(function(a, b) {\n return b[2] - a[2];\n });\n };\n }\n });\n\n // src/traces/heatmap/make_bound_array.js\n var require_make_bound_array = __commonJS({\n \"src/traces/heatmap/make_bound_array.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function makeBoundArray(trace, arrayIn, v0In, dvIn, numbricks, ax) {\n var arrayOut = [];\n var isContour = Registry.traceIs(trace, \"contour\");\n var isHist = Registry.traceIs(trace, \"histogram\");\n var v0;\n var dv;\n var i;\n var isArrayOfTwoItemsOrMore = isArrayOrTypedArray(arrayIn) && arrayIn.length > 1;\n if (isArrayOfTwoItemsOrMore && !isHist && ax.type !== \"category\") {\n var len = arrayIn.length;\n if (len <= numbricks) {\n if (isContour) arrayOut = Array.from(arrayIn).slice(0, numbricks);\n else if (numbricks === 1) {\n if (ax.type === \"log\") {\n arrayOut = [0.5 * arrayIn[0], 2 * arrayIn[0]];\n } else {\n arrayOut = [arrayIn[0] - 0.5, arrayIn[0] + 0.5];\n }\n } else if (ax.type === \"log\") {\n arrayOut = [Math.pow(arrayIn[0], 1.5) / Math.pow(arrayIn[1], 0.5)];\n for (i = 1; i < len; i++) {\n arrayOut.push(Math.sqrt(arrayIn[i - 1] * arrayIn[i]));\n }\n arrayOut.push(Math.pow(arrayIn[len - 1], 1.5) / Math.pow(arrayIn[len - 2], 0.5));\n } else {\n arrayOut = [1.5 * arrayIn[0] - 0.5 * arrayIn[1]];\n for (i = 1; i < len; i++) {\n arrayOut.push((arrayIn[i - 1] + arrayIn[i]) * 0.5);\n }\n arrayOut.push(1.5 * arrayIn[len - 1] - 0.5 * arrayIn[len - 2]);\n }\n if (len < numbricks) {\n var lastPt = arrayOut[arrayOut.length - 1];\n var delta;\n if (ax.type === \"log\") {\n delta = lastPt / arrayOut[arrayOut.length - 2];\n for (i = len; i < numbricks; i++) {\n lastPt *= delta;\n arrayOut.push(lastPt);\n }\n } else {\n delta = lastPt - arrayOut[arrayOut.length - 2];\n for (i = len; i < numbricks; i++) {\n lastPt += delta;\n arrayOut.push(lastPt);\n }\n }\n }\n } else {\n return isContour ? arrayIn.slice(0, numbricks) : (\n // we must be strict for contours\n arrayIn.slice(0, numbricks + 1)\n );\n }\n } else {\n var calendar = trace[ax._id.charAt(0) + \"calendar\"];\n if (isHist) {\n v0 = ax.r2c(v0In, 0, calendar);\n } else {\n if (isArrayOrTypedArray(arrayIn) && arrayIn.length === 1) {\n v0 = arrayIn[0];\n } else if (v0In === void 0) {\n v0 = 0;\n } else {\n var fn = ax.type === \"log\" ? ax.d2c : ax.r2c;\n v0 = fn(v0In, 0, calendar);\n }\n }\n dv = dvIn || 1;\n for (i = isContour ? 0 : -0.5; i < numbricks; i++) {\n arrayOut.push(v0 + dv * i);\n }\n }\n return arrayOut;\n };\n }\n });\n\n // src/traces/heatmap/calc.js\n var require_calc9 = __commonJS({\n \"src/traces/heatmap/calc.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var histogram2dCalc = require_calc8();\n var colorscaleCalc = require_calc();\n var convertColumnData = require_convert_column_xyz();\n var clean2dArray = require_clean_2d_array();\n var interp2d = require_interp2d();\n var findEmpties = require_find_empties();\n var makeBoundArray = require_make_bound_array();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var isContour = Registry.traceIs(trace, \"contour\");\n var isHist = Registry.traceIs(trace, \"histogram\");\n var zsmooth = isContour ? \"best\" : trace.zsmooth;\n var x, x0, dx, origX;\n var y, y0, dy, origY;\n var z, i, binned;\n xa._minDtick = 0;\n ya._minDtick = 0;\n if (isHist) {\n binned = histogram2dCalc(gd, trace);\n origX = binned.orig_x;\n x = binned.x;\n x0 = binned.x0;\n dx = binned.dx;\n origY = binned.orig_y;\n y = binned.y;\n y0 = binned.y0;\n dy = binned.dy;\n z = binned.z;\n } else {\n var zIn = trace.z;\n if (Lib.isArray1D(zIn)) {\n convertColumnData(trace, xa, ya, \"x\", \"y\", [\"z\"]);\n x = trace._x;\n y = trace._y;\n zIn = trace._z;\n } else {\n origX = trace.x ? xa.makeCalcdata(trace, \"x\") : [];\n origY = trace.y ? ya.makeCalcdata(trace, \"y\") : [];\n x = alignPeriod(trace, xa, \"x\", origX).vals;\n y = alignPeriod(trace, ya, \"y\", origY).vals;\n trace._x = x;\n trace._y = y;\n }\n x0 = trace.x0;\n dx = trace.dx;\n y0 = trace.y0;\n dy = trace.dy;\n z = clean2dArray(zIn, trace, xa, ya);\n }\n if (xa.rangebreaks || ya.rangebreaks) {\n z = dropZonBreaks(x, y, z);\n if (!isHist) {\n x = skipBreaks(x);\n y = skipBreaks(y);\n trace._x = x;\n trace._y = y;\n }\n }\n if (!isHist && (isContour || trace.connectgaps)) {\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n }\n function noZsmooth(msg) {\n zsmooth = trace._input.zsmooth = trace.zsmooth = false;\n Lib.warn('cannot use zsmooth: \"fast\": ' + msg);\n }\n function scaleIsLinear(s) {\n if (s.length > 1) {\n var avgdx = (s[s.length - 1] - s[0]) / (s.length - 1);\n var maxErrX = Math.abs(avgdx / 100);\n for (i = 0; i < s.length - 1; i++) {\n if (Math.abs(s[i + 1] - s[i] - avgdx) > maxErrX) {\n return false;\n }\n }\n }\n return true;\n }\n trace._islinear = false;\n if (xa.type === \"log\" || ya.type === \"log\") {\n if (zsmooth === \"fast\") {\n noZsmooth(\"log axis found\");\n }\n } else if (!scaleIsLinear(x)) {\n if (zsmooth === \"fast\") noZsmooth(\"x scale is not linear\");\n } else if (!scaleIsLinear(y)) {\n if (zsmooth === \"fast\") noZsmooth(\"y scale is not linear\");\n } else {\n trace._islinear = true;\n }\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === \"scaled\" ? \"\" : x;\n var xArray = makeBoundArray(trace, xIn, x0, dx, xlen, xa);\n var yIn = trace.ytype === \"scaled\" ? \"\" : y;\n var yArray = makeBoundArray(trace, yIn, y0, dy, z.length, ya);\n trace._extremes[xa._id] = Axes.findExtremes(xa, xArray);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yArray);\n var cd0 = {\n x: xArray,\n y: yArray,\n z,\n text: trace._text || trace.text,\n hovertext: trace._hovertext || trace.hovertext\n };\n if (trace.xperiodalignment && origX) {\n cd0.orig_x = origX;\n }\n if (trace.yperiodalignment && origY) {\n cd0.orig_y = origY;\n }\n if (xIn && xIn.length === xArray.length - 1) cd0.xCenter = xIn;\n if (yIn && yIn.length === yArray.length - 1) cd0.yCenter = yIn;\n if (isHist) {\n cd0.xRanges = binned.xRanges;\n cd0.yRanges = binned.yRanges;\n cd0.pts = binned.pts;\n }\n if (!isContour) {\n colorscaleCalc(gd, trace, { vals: z, cLetter: \"z\" });\n }\n if (isContour && trace.contours && trace.contours.coloring === \"heatmap\") {\n var dummyTrace = {\n type: trace.type === \"contour\" ? \"heatmap\" : \"histogram2d\",\n xcalendar: trace.xcalendar,\n ycalendar: trace.ycalendar\n };\n cd0.xfill = makeBoundArray(dummyTrace, xIn, x0, dx, xlen, xa);\n cd0.yfill = makeBoundArray(dummyTrace, yIn, y0, dy, z.length, ya);\n }\n return [cd0];\n };\n function skipBreaks(a) {\n var b = [];\n var len = a.length;\n for (var i = 0; i < len; i++) {\n var v = a[i];\n if (v !== BADNUM) b.push(v);\n }\n return b;\n }\n function dropZonBreaks(x, y, z) {\n var newZ = [];\n var k = -1;\n for (var i = 0; i < z.length; i++) {\n if (y[i] === BADNUM) continue;\n k++;\n newZ[k] = [];\n for (var j = 0; j < z[i].length; j++) {\n if (x[j] === BADNUM) continue;\n newZ[k].push(z[i][j]);\n }\n }\n return newZ;\n }\n }\n });\n\n // src/constants/pixelated_image.js\n var require_pixelated_image = __commonJS({\n \"src/constants/pixelated_image.js\"(exports) {\n \"use strict\";\n exports.CSS_DECLARATIONS = [\n [\"image-rendering\", \"optimizeSpeed\"],\n [\"image-rendering\", \"-moz-crisp-edges\"],\n [\"image-rendering\", \"-o-crisp-edges\"],\n [\"image-rendering\", \"-webkit-optimize-contrast\"],\n [\"image-rendering\", \"optimize-contrast\"],\n [\"image-rendering\", \"crisp-edges\"],\n [\"image-rendering\", \"pixelated\"]\n ];\n exports.STYLE = exports.CSS_DECLARATIONS.map(function(d) {\n return d.join(\": \") + \"; \";\n }).join(\"\");\n }\n });\n\n // src/lib/supports_pixelated_image.js\n var require_supports_pixelated_image = __commonJS({\n \"src/lib/supports_pixelated_image.js\"(exports, module) {\n \"use strict\";\n var constants = require_pixelated_image();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var _supportsPixelated = null;\n function supportsPixelatedImage() {\n if (_supportsPixelated !== null) {\n return _supportsPixelated;\n }\n _supportsPixelated = false;\n var unsupportedBrowser = Lib.isSafari() || Lib.isIOS();\n if (window.navigator.userAgent && !unsupportedBrowser) {\n var declarations = Array.from(constants.CSS_DECLARATIONS).reverse();\n var supports = window.CSS && window.CSS.supports || window.supportsCSS;\n if (typeof supports === \"function\") {\n _supportsPixelated = declarations.some(function(d) {\n return supports.apply(null, d);\n });\n } else {\n var image3 = Drawing.tester.append(\"image\").attr(\"style\", constants.STYLE);\n var cStyles = window.getComputedStyle(image3.node());\n var imageRendering = cStyles.imageRendering;\n _supportsPixelated = declarations.some(function(d) {\n var value = d[1];\n return imageRendering === value || imageRendering === value.toLowerCase();\n });\n image3.remove();\n }\n }\n return _supportsPixelated;\n }\n module.exports = supportsPixelatedImage;\n }\n });\n\n // src/traces/heatmap/plot.js\n var require_plot5 = __commonJS({\n \"src/traces/heatmap/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Drawing = require_drawing();\n var Axes = require_axes();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var formatLabels = require_format_labels();\n var Color2 = require_color();\n var extractOpts = require_colorscale().extractOpts;\n var makeColorScaleFuncFromTrace = require_colorscale().makeColorScaleFuncFromTrace;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var alignmentConstants = require_alignment();\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var supportsPixelatedImage = require_supports_pixelated_image();\n var PIXELATED_IMAGE_STYLE = require_pixelated_image().STYLE;\n var labelClass = \"heatmap-label\";\n function selectLabels(plotGroup) {\n return plotGroup.selectAll(\"g.\" + labelClass);\n }\n function removeLabels(plotGroup) {\n selectLabels(plotGroup).remove();\n }\n module.exports = function(gd, plotinfo, cdheatmaps, heatmapLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(heatmapLayer, cdheatmaps, \"hm\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var xGap = trace.xgap || 0;\n var yGap = trace.ygap || 0;\n var z = cd0.z;\n var x = cd0.x;\n var y = cd0.y;\n var xc = cd0.xCenter;\n var yc = cd0.yCenter;\n var isContour = Registry.traceIs(trace, \"contour\");\n var zsmooth = isContour ? \"best\" : trace.zsmooth;\n var m = z.length;\n var n = Lib.maxRowLength(z);\n var xrev = false;\n var yrev = false;\n var left, right, temp, top, bottom, i, j, k;\n i = 0;\n while (left === void 0 && i < x.length - 1) {\n left = xa.c2p(x[i]);\n i++;\n }\n i = x.length - 1;\n while (right === void 0 && i > 0) {\n right = xa.c2p(x[i]);\n i--;\n }\n if (right < left) {\n temp = right;\n right = left;\n left = temp;\n xrev = true;\n }\n i = 0;\n while (top === void 0 && i < y.length - 1) {\n top = ya.c2p(y[i]);\n i++;\n }\n i = y.length - 1;\n while (bottom === void 0 && i > 0) {\n bottom = ya.c2p(y[i]);\n i--;\n }\n if (bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n yrev = true;\n }\n if (isContour) {\n xc = x;\n yc = y;\n x = cd0.xfill;\n y = cd0.yfill;\n }\n var drawingMethod = \"default\";\n if (zsmooth) {\n drawingMethod = zsmooth === \"best\" ? \"smooth\" : \"fast\";\n } else if (trace._islinear && xGap === 0 && yGap === 0 && supportsPixelatedImage()) {\n drawingMethod = \"fast\";\n }\n if (drawingMethod !== \"fast\") {\n var extra = zsmooth === \"best\" ? 0 : 0.5;\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n }\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n var isOffScreen = left >= xa._length || right <= 0 || top >= ya._length || bottom <= 0;\n if (isOffScreen) {\n var noImage = plotGroup.selectAll(\"image\").data([]);\n noImage.exit().remove();\n removeLabels(plotGroup);\n return;\n }\n var canvasW, canvasH;\n if (drawingMethod === \"fast\") {\n canvasW = n;\n canvasH = m;\n } else {\n canvasW = imageWidth;\n canvasH = imageHeight;\n }\n var canvas = document.createElement(\"canvas\");\n canvas.width = canvasW;\n canvas.height = canvasH;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n var sclFunc = makeColorScaleFuncFromTrace(trace, { noNumericCheck: true, returnArray: true });\n var xpx, ypx;\n if (drawingMethod === \"fast\") {\n xpx = xrev ? function(index) {\n return n - 1 - index;\n } : Lib.identity;\n ypx = yrev ? function(index) {\n return m - 1 - index;\n } : Lib.identity;\n } else {\n xpx = function(index) {\n return Lib.constrain(\n Math.round(xa.c2p(x[index]) - left),\n 0,\n imageWidth\n );\n };\n ypx = function(index) {\n return Lib.constrain(\n Math.round(ya.c2p(y[index]) - top),\n 0,\n imageHeight\n );\n };\n }\n var yi = ypx(0);\n var yb = [yi, yi];\n var xbi = xrev ? 0 : 1;\n var ybi = yrev ? 0 : 1;\n var pixcount = 0;\n var rcount = 0;\n var gcount = 0;\n var bcount = 0;\n var xb, xi, v, row, c;\n function setColor(v2, pixsize) {\n if (v2 !== void 0) {\n var c2 = sclFunc(v2);\n c2[0] = Math.round(c2[0]);\n c2[1] = Math.round(c2[1]);\n c2[2] = Math.round(c2[2]);\n pixcount += pixsize;\n rcount += c2[0] * pixsize;\n gcount += c2[1] * pixsize;\n bcount += c2[2] * pixsize;\n return c2;\n }\n return [0, 0, 0, 0];\n }\n function interpColor(r02, r12, xinterp, yinterp2) {\n var z00 = r02[xinterp.bin0];\n if (z00 === void 0) return setColor(void 0, 1);\n var z01 = r02[xinterp.bin1];\n var z10 = r12[xinterp.bin0];\n var z11 = r12[xinterp.bin1];\n var dx2 = z01 - z00 || 0;\n var dy2 = z10 - z00 || 0;\n var dxy;\n if (z01 === void 0) {\n if (z11 === void 0) dxy = 0;\n else if (z10 === void 0) dxy = 2 * (z11 - z00);\n else dxy = (2 * z11 - z10 - z00) * 2 / 3;\n } else if (z11 === void 0) {\n if (z10 === void 0) dxy = 0;\n else dxy = (2 * z00 - z01 - z10) * 2 / 3;\n } else if (z10 === void 0) dxy = (2 * z11 - z01 - z00) * 2 / 3;\n else dxy = z11 + z00 - z01 - z10;\n return setColor(z00 + xinterp.frac * dx2 + yinterp2.frac * (dy2 + xinterp.frac * dxy));\n }\n if (drawingMethod !== \"default\") {\n var pxIndex = 0;\n var pixels;\n try {\n pixels = new Uint8Array(canvasW * canvasH * 4);\n } catch (e) {\n pixels = new Array(canvasW * canvasH * 4);\n }\n if (drawingMethod === \"smooth\") {\n var xForPx = xc || x;\n var yForPx = yc || y;\n var xPixArray = new Array(xForPx.length);\n var yPixArray = new Array(yForPx.length);\n var xinterpArray = new Array(imageWidth);\n var findInterpX = xc ? findInterpFromCenters : findInterp;\n var findInterpY = yc ? findInterpFromCenters : findInterp;\n var yinterp, r0, r1;\n for (i = 0; i < xForPx.length; i++) xPixArray[i] = Math.round(xa.c2p(xForPx[i]) - left);\n for (i = 0; i < yForPx.length; i++) yPixArray[i] = Math.round(ya.c2p(yForPx[i]) - top);\n for (i = 0; i < imageWidth; i++) xinterpArray[i] = findInterpX(i, xPixArray);\n for (j = 0; j < imageHeight; j++) {\n yinterp = findInterpY(j, yPixArray);\n r0 = z[yinterp.bin0];\n r1 = z[yinterp.bin1];\n for (i = 0; i < imageWidth; i++, pxIndex += 4) {\n c = interpColor(r0, r1, xinterpArray[i], yinterp);\n putColor(pixels, pxIndex, c);\n }\n }\n } else {\n for (j = 0; j < m; j++) {\n row = z[j];\n yb = ypx(j);\n for (i = 0; i < n; i++) {\n c = setColor(row[i], 1);\n pxIndex = (yb * n + xpx(i)) * 4;\n putColor(pixels, pxIndex, c);\n }\n }\n }\n var imageData = context.createImageData(canvasW, canvasH);\n try {\n imageData.data.set(pixels);\n } catch (e) {\n var pxArray = imageData.data;\n var dlen = pxArray.length;\n for (j = 0; j < dlen; j++) {\n pxArray[j] = pixels[j];\n }\n }\n context.putImageData(imageData, 0, 0);\n } else {\n var xGapLeft = Math.floor(xGap / 2);\n var yGapTop = Math.floor(yGap / 2);\n for (j = 0; j < m; j++) {\n row = z[j];\n yb.reverse();\n yb[ybi] = ypx(j + 1);\n if (yb[0] === yb[1] || yb[0] === void 0 || yb[1] === void 0) {\n continue;\n }\n xi = xpx(0);\n xb = [xi, xi];\n for (i = 0; i < n; i++) {\n xb.reverse();\n xb[xbi] = xpx(i + 1);\n if (xb[0] === xb[1] || xb[0] === void 0 || xb[1] === void 0) {\n continue;\n }\n v = row[i];\n c = setColor(v, (xb[1] - xb[0]) * (yb[1] - yb[0]));\n context.fillStyle = \"rgba(\" + c.join(\",\") + \")\";\n context.fillRect(\n xb[0] + xGapLeft,\n yb[0] + yGapTop,\n xb[1] - xb[0] - xGap,\n yb[1] - yb[0] - yGap\n );\n }\n }\n }\n rcount = Math.round(rcount / pixcount);\n gcount = Math.round(gcount / pixcount);\n bcount = Math.round(bcount / pixcount);\n var avgColor = tinycolor(\"rgb(\" + rcount + \",\" + gcount + \",\" + bcount + \")\");\n gd._hmpixcount = (gd._hmpixcount || 0) + pixcount;\n gd._hmlumcount = (gd._hmlumcount || 0) + pixcount * avgColor.getLuminance();\n var image3 = plotGroup.selectAll(\"image\").data(cd);\n image3.enter().append(\"svg:image\").attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: \"none\"\n });\n image3.attr({\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top,\n \"xlink:href\": canvas.toDataURL(\"image/png\")\n });\n if (drawingMethod === \"fast\" && !zsmooth) {\n image3.attr(\"style\", PIXELATED_IMAGE_STYLE);\n }\n removeLabels(plotGroup);\n var texttemplate = trace.texttemplate;\n if (texttemplate) {\n var cOpts = extractOpts(trace);\n var dummyAx = {\n type: \"linear\",\n range: [cOpts.min, cOpts.max],\n _separators: xa._separators,\n _numFormat: xa._numFormat\n };\n var aHistogram2dContour = trace.type === \"histogram2dcontour\";\n var aContour = trace.type === \"contour\";\n var iStart = aContour ? 1 : 0;\n var iStop = aContour ? m - 1 : m;\n var jStart = aContour ? 1 : 0;\n var jStop = aContour ? n - 1 : n;\n var textData = [];\n for (i = iStart; i < iStop; i++) {\n var yVal;\n if (aContour) {\n yVal = cd0.y[i];\n } else if (aHistogram2dContour) {\n if (i === 0 || i === m - 1) continue;\n yVal = cd0.y[i];\n } else if (cd0.yCenter) {\n yVal = cd0.yCenter[i];\n } else {\n if (i + 1 === m && cd0.y[i + 1] === void 0) continue;\n yVal = (cd0.y[i] + cd0.y[i + 1]) / 2;\n }\n var _y = Math.round(ya.c2p(yVal));\n if (0 > _y || _y > ya._length) continue;\n for (j = jStart; j < jStop; j++) {\n var xVal;\n if (aContour) {\n xVal = cd0.x[j];\n } else if (aHistogram2dContour) {\n if (j === 0 || j === n - 1) continue;\n xVal = cd0.x[j];\n } else if (cd0.xCenter) {\n xVal = cd0.xCenter[j];\n } else {\n if (j + 1 === n && cd0.x[j + 1] === void 0) continue;\n xVal = (cd0.x[j] + cd0.x[j + 1]) / 2;\n }\n var _x = Math.round(xa.c2p(xVal));\n if (0 > _x || _x > xa._length) continue;\n var obj = formatLabels({\n x: xVal,\n y: yVal\n }, trace, gd._fullLayout);\n obj.x = xVal;\n obj.y = yVal;\n var zVal = cd0.z[i][j];\n if (zVal === void 0) {\n obj.z = \"\";\n obj.zLabel = \"\";\n } else {\n obj.z = zVal;\n obj.zLabel = Axes.tickText(dummyAx, zVal, \"hover\").text;\n }\n var theText = cd0.text && cd0.text[i] && cd0.text[i][j];\n if (theText === void 0 || theText === false) theText = \"\";\n obj.text = theText;\n var _t = Lib.texttemplateString(texttemplate, obj, gd._fullLayout._d3locale, obj, trace._meta || {});\n if (!_t) continue;\n var lines = _t.split(\"
\");\n var nL = lines.length;\n var nC = 0;\n for (k = 0; k < nL; k++) {\n nC = Math.max(nC, lines[k].length);\n }\n textData.push({\n l: nL,\n // number of lines\n c: nC,\n // maximum number of chars in a line\n t: _t,\n // text\n x: _x,\n y: _y,\n z: zVal\n });\n }\n }\n var font = trace.textfont;\n var fontSize = font.size;\n var globalFontSize = gd._fullLayout.font.size;\n if (!fontSize || fontSize === \"auto\") {\n var minW = Infinity;\n var minH = Infinity;\n var maxL = 0;\n var maxC = 0;\n for (k = 0; k < textData.length; k++) {\n var d = textData[k];\n maxL = Math.max(maxL, d.l);\n maxC = Math.max(maxC, d.c);\n if (k < textData.length - 1) {\n var nextD = textData[k + 1];\n var dx = Math.abs(nextD.x - d.x);\n var dy = Math.abs(nextD.y - d.y);\n if (dx) minW = Math.min(minW, dx);\n if (dy) minH = Math.min(minH, dy);\n }\n }\n if (!isFinite(minW) || !isFinite(minH)) {\n fontSize = globalFontSize;\n } else {\n minW -= xGap;\n minH -= yGap;\n minW /= maxC;\n minH /= maxL;\n minW /= LINE_SPACING / 2;\n minH /= LINE_SPACING;\n fontSize = Math.min(\n Math.floor(minW),\n Math.floor(minH),\n globalFontSize\n );\n }\n }\n if (fontSize <= 0 || !isFinite(fontSize)) return;\n var xFn = function(d2) {\n return d2.x;\n };\n var yFn = function(d2) {\n return d2.y - fontSize * (d2.l * LINE_SPACING / 2 - 1);\n };\n var labels = selectLabels(plotGroup).data(textData);\n labels.enter().append(\"g\").classed(labelClass, 1).append(\"text\").attr(\"text-anchor\", \"middle\").each(function(d2) {\n var thisLabel = d3.select(this);\n var fontColor = font.color;\n if (!fontColor || fontColor === \"auto\") {\n fontColor = Color2.contrast(\n d2.z === void 0 ? gd._fullLayout.plot_bgcolor : \"rgba(\" + sclFunc(d2.z).join() + \")\"\n );\n }\n thisLabel.attr(\"data-notex\", 1).call(svgTextUtils.positionText, xFn(d2), yFn(d2)).call(Drawing.font, {\n family: font.family,\n size: fontSize,\n color: fontColor,\n weight: font.weight,\n style: font.style,\n variant: font.variant,\n textcase: font.textcase,\n lineposition: font.lineposition,\n shadow: font.shadow\n }).text(d2.t).call(svgTextUtils.convertToTspans, gd);\n });\n }\n });\n };\n function findInterp(pixel, pixArray) {\n var maxBin = pixArray.length - 2;\n var bin = Lib.constrain(Lib.findBin(pixel, pixArray), 0, maxBin);\n var pix0 = pixArray[bin];\n var pix1 = pixArray[bin + 1];\n var interp = Lib.constrain(bin + (pixel - pix0) / (pix1 - pix0) - 0.5, 0, maxBin);\n var bin0 = Math.round(interp);\n var frac = Math.abs(interp - bin0);\n if (!interp || interp === maxBin || !frac) {\n return {\n bin0,\n bin1: bin0,\n frac: 0\n };\n }\n return {\n bin0,\n frac,\n bin1: Math.round(bin0 + frac / (interp - bin0))\n };\n }\n function findInterpFromCenters(pixel, centerPixArray) {\n var maxBin = centerPixArray.length - 1;\n var bin = Lib.constrain(Lib.findBin(pixel, centerPixArray), 0, maxBin);\n var pix0 = centerPixArray[bin];\n var pix1 = centerPixArray[bin + 1];\n var frac = (pixel - pix0) / (pix1 - pix0) || 0;\n if (frac <= 0) {\n return {\n bin0: bin,\n bin1: bin,\n frac: 0\n };\n }\n if (frac < 0.5) {\n return {\n bin0: bin,\n bin1: bin + 1,\n frac\n };\n }\n return {\n bin0: bin + 1,\n bin1: bin,\n frac: 1 - frac\n };\n }\n function putColor(pixels, pxIndex, c) {\n pixels[pxIndex] = c[0];\n pixels[pxIndex + 1] = c[1];\n pixels[pxIndex + 2] = c[2];\n pixels[pxIndex + 3] = Math.round(c[3] * 255);\n }\n }\n });\n\n // src/traces/heatmap/colorbar.js\n var require_colorbar2 = __commonJS({\n \"src/traces/heatmap/colorbar.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n min: \"zmin\",\n max: \"zmax\"\n };\n }\n });\n\n // src/traces/heatmap/style.js\n var require_style6 = __commonJS({\n \"src/traces/heatmap/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n module.exports = function style(gd) {\n d3.select(gd).selectAll(\".hm image\").style(\"opacity\", function(d) {\n return d.trace.opacity;\n });\n };\n }\n });\n\n // src/traces/heatmap/hover.js\n var require_hover5 = __commonJS({\n \"src/traces/heatmap/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var Axes = require_axes();\n var extractOpts = require_colorscale().extractOpts;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n var isContour = opts.isContour;\n var cd0 = pointData.cd[0];\n var trace = cd0.trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var x = cd0.x;\n var y = cd0.y;\n var z = cd0.z;\n var xc = cd0.xCenter;\n var yc = cd0.yCenter;\n var zmask = cd0.zmask;\n var zhoverformat = trace.zhoverformat;\n var x2 = x;\n var y2 = y;\n var xl, yl, nx, ny;\n if (pointData.index !== false) {\n try {\n nx = Math.round(pointData.index[1]);\n ny = Math.round(pointData.index[0]);\n } catch (e) {\n Lib.error(\"Error hovering on heatmap, pointNumber must be [row,col], found:\", pointData.index);\n return;\n }\n if (nx < 0 || nx >= z[0].length || ny < 0 || ny > z.length) {\n return;\n }\n } else if (Fx.inbox(xval - x[0], xval - x[x.length - 1], 0) > 0 || Fx.inbox(yval - y[0], yval - y[y.length - 1], 0) > 0) {\n return;\n } else {\n if (isContour) {\n var i2;\n x2 = [2 * x[0] - x[1]];\n for (i2 = 1; i2 < x.length; i2++) {\n x2.push((x[i2] + x[i2 - 1]) / 2);\n }\n x2.push([2 * x[x.length - 1] - x[x.length - 2]]);\n y2 = [2 * y[0] - y[1]];\n for (i2 = 1; i2 < y.length; i2++) {\n y2.push((y[i2] + y[i2 - 1]) / 2);\n }\n y2.push([2 * y[y.length - 1] - y[y.length - 2]]);\n }\n nx = Math.max(0, Math.min(x2.length - 2, Lib.findBin(xval, x2)));\n ny = Math.max(0, Math.min(y2.length - 2, Lib.findBin(yval, y2)));\n }\n var x0 = xa.c2p(x[nx]);\n var x1 = xa.c2p(x[nx + 1]);\n var y0 = ya.c2p(y[ny]);\n var y1 = ya.c2p(y[ny + 1]);\n var _x, _y;\n if (isContour) {\n _x = cd0.orig_x || x;\n _y = cd0.orig_y || y;\n x1 = x0;\n xl = _x[nx];\n y1 = y0;\n yl = _y[ny];\n } else {\n _x = cd0.orig_x || xc || x;\n _y = cd0.orig_y || yc || y;\n xl = xc ? _x[nx] : (_x[nx] + _x[nx + 1]) / 2;\n yl = yc ? _y[ny] : (_y[ny] + _y[ny + 1]) / 2;\n if (xa && xa.type === \"category\") xl = x[nx];\n if (ya && ya.type === \"category\") yl = y[ny];\n if (trace.zsmooth) {\n x0 = x1 = xa.c2p(xl);\n y0 = y1 = ya.c2p(yl);\n }\n }\n var zVal = z[ny][nx];\n if (zmask && !zmask[ny][nx]) zVal = void 0;\n if (zVal === void 0 && !trace.hoverongaps) return;\n var text;\n if (isArrayOrTypedArray(cd0.hovertext) && isArrayOrTypedArray(cd0.hovertext[ny])) {\n text = cd0.hovertext[ny][nx];\n } else if (isArrayOrTypedArray(cd0.text) && isArrayOrTypedArray(cd0.text[ny])) {\n text = cd0.text[ny][nx];\n }\n var cOpts = extractOpts(trace);\n var dummyAx = {\n type: \"linear\",\n range: [cOpts.min, cOpts.max],\n hoverformat: zhoverformat,\n _separators: xa._separators,\n _numFormat: xa._numFormat\n };\n var zLabel = Axes.tickText(dummyAx, zVal, \"hover\").text;\n return [Lib.extendFlat(pointData, {\n index: trace._after2before ? trace._after2before[ny][nx] : [ny, nx],\n // never let a 2D override 1D type as closest point\n distance: pointData.maxHoverDistance,\n spikeDistance: pointData.maxSpikeDistance,\n x0,\n x1,\n y0,\n y1,\n xLabelVal: xl,\n yLabelVal: yl,\n zLabelVal: zVal,\n zLabel,\n text\n })];\n };\n }\n });\n\n // src/traces/heatmap/index.js\n var require_heatmap = __commonJS({\n \"src/traces/heatmap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes25(),\n supplyDefaults: require_defaults21(),\n calc: require_calc9(),\n plot: require_plot5(),\n colorbar: require_colorbar2(),\n style: require_style6(),\n hoverPoints: require_hover5(),\n moduleType: \"trace\",\n name: \"heatmap\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/heatmap.js\n var require_heatmap2 = __commonJS({\n \"lib/heatmap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_heatmap();\n }\n });\n\n // src/traces/histogram/bin_attributes.js\n var require_bin_attributes = __commonJS({\n \"src/traces/histogram/bin_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeBinAttrs(axLetter, match) {\n return {\n start: {\n valType: \"any\",\n // for date axes\n editType: \"calc\"\n },\n end: {\n valType: \"any\",\n // for date axes\n editType: \"calc\"\n },\n size: {\n valType: \"any\",\n // for date axes\n editType: \"calc\"\n },\n editType: \"calc\"\n };\n };\n }\n });\n\n // src/traces/histogram/constants.js\n var require_constants15 = __commonJS({\n \"src/traces/histogram/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n eventDataKeys: [\"binNumber\"]\n };\n }\n });\n\n // src/traces/histogram/attributes.js\n var require_attributes26 = __commonJS({\n \"src/traces/histogram/attributes.js\"(exports, module) {\n \"use strict\";\n var barAttrs = require_attributes23();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var fontAttrs = require_font_attributes();\n var makeBinAttrs = require_bin_attributes();\n var constants = require_constants15();\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n text: extendFlat({}, barAttrs.text, {}),\n hovertext: extendFlat({}, barAttrs.hovertext, {}),\n orientation: barAttrs.orientation,\n histfunc: {\n valType: \"enumerated\",\n values: [\"count\", \"sum\", \"avg\", \"min\", \"max\"],\n dflt: \"count\",\n editType: \"calc\"\n },\n histnorm: {\n valType: \"enumerated\",\n values: [\"\", \"percent\", \"probability\", \"density\", \"probability density\"],\n dflt: \"\",\n editType: \"calc\"\n },\n cumulative: {\n enabled: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n direction: {\n valType: \"enumerated\",\n values: [\"increasing\", \"decreasing\"],\n dflt: \"increasing\",\n editType: \"calc\"\n },\n currentbin: {\n valType: \"enumerated\",\n values: [\"include\", \"exclude\", \"half\"],\n dflt: \"include\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n nbinsx: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n xbins: makeBinAttrs(\"x\", true),\n nbinsy: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n ybins: makeBinAttrs(\"y\", true),\n autobinx: {\n valType: \"boolean\",\n dflt: null,\n editType: \"calc\"\n },\n autobiny: {\n valType: \"boolean\",\n dflt: null,\n editType: \"calc\"\n },\n bingroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n texttemplate: texttemplateAttrs({\n arrayOk: false,\n editType: \"plot\"\n }, {\n keys: [\"label\", \"value\"]\n }),\n textposition: extendFlat({}, barAttrs.textposition, {\n arrayOk: false\n }),\n textfont: fontAttrs({\n arrayOk: false,\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n outsidetextfont: fontAttrs({\n arrayOk: false,\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n insidetextfont: fontAttrs({\n arrayOk: false,\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n insidetextanchor: barAttrs.insidetextanchor,\n textangle: barAttrs.textangle,\n cliponaxis: barAttrs.cliponaxis,\n constraintext: barAttrs.constraintext,\n marker: barAttrs.marker,\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n selected: barAttrs.selected,\n unselected: barAttrs.unselected,\n zorder: barAttrs.zorder\n };\n }\n });\n\n // src/traces/histogram/defaults.js\n var require_defaults22 = __commonJS({\n \"src/traces/histogram/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var Color2 = require_color();\n var handleText = require_defaults19().handleText;\n var handleStyleDefaults = require_style_defaults();\n var attributes = require_attributes26();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var cumulative = coerce(\"cumulative.enabled\");\n if (cumulative) {\n coerce(\"cumulative.direction\");\n coerce(\"cumulative.currentbin\");\n }\n coerce(\"text\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: true,\n moduleHasUnselected: true,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n var orientation = coerce(\"orientation\", y && !x ? \"h\" : \"v\");\n var sampleLetter = orientation === \"v\" ? \"x\" : \"y\";\n var aggLetter = orientation === \"v\" ? \"y\" : \"x\";\n var len = x && y ? Math.min(Lib.minRowLength(x) && Lib.minRowLength(y)) : Lib.minRowLength(traceOut[sampleLetter] || []);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n var hasAggregationData = traceOut[aggLetter];\n if (hasAggregationData) coerce(\"histfunc\");\n coerce(\"histnorm\");\n coerce(\"autobin\" + sampleLetter);\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n var lineColor = (traceOut.marker.line || {}).color;\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color2.defaultLine, { axis: \"x\", inherit: \"y\" });\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/histogram/cross_trace_defaults.js\n var require_cross_trace_defaults3 = __commonJS({\n \"src/traces/histogram/cross_trace_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var axisIds = require_axis_ids();\n var traceIs = require_registry().traceIs;\n var handleGroupingDefaults = require_grouping_defaults();\n var validateCornerradius = require_defaults19().validateCornerradius;\n var nestedProperty = Lib.nestedProperty;\n var getAxisGroup = require_constraints().getAxisGroup;\n var BINATTRS = [\n { aStr: { x: \"xbins.start\", y: \"ybins.start\" }, name: \"start\" },\n { aStr: { x: \"xbins.end\", y: \"ybins.end\" }, name: \"end\" },\n { aStr: { x: \"xbins.size\", y: \"ybins.size\" }, name: \"size\" },\n { aStr: { x: \"nbinsx\", y: \"nbinsy\" }, name: \"nbins\" }\n ];\n var BINDIRECTIONS = [\"x\", \"y\"];\n module.exports = function crossTraceDefaults(fullData, fullLayout) {\n var allBinOpts = fullLayout._histogramBinOpts = {};\n var histTraces = [];\n var mustMatchTracesLookup = {};\n var otherTracesList = [];\n var traceOut, traces, groupName, binDir;\n var i, j, k;\n function coerce(attr2, dflt) {\n return Lib.coerce(traceOut._input, traceOut, traceOut._module.attributes, attr2, dflt);\n }\n function orientation2binDir(traceOut2) {\n return traceOut2.orientation === \"v\" ? \"x\" : \"y\";\n }\n function getAxisType(traceOut2, binDir2) {\n var ax = axisIds.getFromTrace({ _fullLayout: fullLayout }, traceOut2, binDir2);\n return ax.type;\n }\n function fillBinOpts(traceOut2, groupName2, binDir2) {\n var fallbackGroupName = traceOut2.uid + \"__\" + binDir2;\n if (!groupName2) groupName2 = fallbackGroupName;\n var axType = getAxisType(traceOut2, binDir2);\n var calendar = traceOut2[binDir2 + \"calendar\"] || \"\";\n var binOpts2 = allBinOpts[groupName2];\n var needsNewItem = true;\n if (binOpts2) {\n if (axType === binOpts2.axType && calendar === binOpts2.calendar) {\n needsNewItem = false;\n binOpts2.traces.push(traceOut2);\n binOpts2.dirs.push(binDir2);\n } else {\n groupName2 = fallbackGroupName;\n if (axType !== binOpts2.axType) {\n Lib.warn([\n \"Attempted to group the bins of trace\",\n traceOut2.index,\n \"set on a\",\n \"type:\" + axType,\n \"axis\",\n \"with bins on\",\n \"type:\" + binOpts2.axType,\n \"axis.\"\n ].join(\" \"));\n }\n if (calendar !== binOpts2.calendar) {\n Lib.warn([\n \"Attempted to group the bins of trace\",\n traceOut2.index,\n \"set with a\",\n calendar,\n \"calendar\",\n \"with bins\",\n binOpts2.calendar ? \"on a \" + binOpts2.calendar + \" calendar\" : \"w/o a set calendar\"\n ].join(\" \"));\n }\n }\n }\n if (needsNewItem) {\n allBinOpts[groupName2] = {\n traces: [traceOut2],\n dirs: [binDir2],\n axType,\n calendar: traceOut2[binDir2 + \"calendar\"] || \"\"\n };\n }\n traceOut2[\"_\" + binDir2 + \"bingroup\"] = groupName2;\n }\n for (i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceIs(traceOut, \"histogram\")) {\n histTraces.push(traceOut);\n delete traceOut._xautoBinFinished;\n delete traceOut._yautoBinFinished;\n if (traceOut.type === \"histogram\") {\n var r = coerce(\"marker.cornerradius\", fullLayout.barcornerradius);\n if (traceOut.marker) {\n traceOut.marker.cornerradius = validateCornerradius(r);\n }\n }\n if (!traceIs(traceOut, \"2dMap\")) {\n handleGroupingDefaults(traceOut._input, traceOut, fullLayout, coerce, fullLayout.barmode);\n }\n }\n }\n var alignmentOpts = fullLayout._alignmentOpts || {};\n for (i = 0; i < histTraces.length; i++) {\n traceOut = histTraces[i];\n groupName = \"\";\n if (!traceIs(traceOut, \"2dMap\")) {\n binDir = orientation2binDir(traceOut);\n if (fullLayout.barmode === \"group\" && traceOut.alignmentgroup) {\n var pa = traceOut[binDir + \"axis\"];\n var aGroupId = getAxisGroup(fullLayout, pa) + traceOut.orientation;\n if ((alignmentOpts[aGroupId] || {})[traceOut.alignmentgroup]) {\n groupName = aGroupId;\n }\n }\n if (!groupName && fullLayout.barmode !== \"overlay\") {\n groupName = getAxisGroup(fullLayout, traceOut.xaxis) + getAxisGroup(fullLayout, traceOut.yaxis) + orientation2binDir(traceOut);\n }\n }\n if (groupName) {\n if (!mustMatchTracesLookup[groupName]) {\n mustMatchTracesLookup[groupName] = [];\n }\n mustMatchTracesLookup[groupName].push(traceOut);\n } else {\n otherTracesList.push(traceOut);\n }\n }\n for (groupName in mustMatchTracesLookup) {\n traces = mustMatchTracesLookup[groupName];\n if (traces.length === 1) {\n otherTracesList.push(traces[0]);\n continue;\n }\n var binGroupFound = false;\n if (traces.length) {\n traceOut = traces[0];\n binGroupFound = coerce(\"bingroup\");\n }\n groupName = binGroupFound || groupName;\n for (i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n var bingroupIn = traceOut._input.bingroup;\n if (bingroupIn && bingroupIn !== groupName) {\n Lib.warn([\n \"Trace\",\n traceOut.index,\n \"must match\",\n \"within bingroup\",\n groupName + \".\",\n \"Ignoring its bingroup:\",\n bingroupIn,\n \"setting.\"\n ].join(\" \"));\n }\n traceOut.bingroup = groupName;\n fillBinOpts(traceOut, groupName, orientation2binDir(traceOut));\n }\n }\n for (i = 0; i < otherTracesList.length; i++) {\n traceOut = otherTracesList[i];\n var binGroup = coerce(\"bingroup\");\n if (traceIs(traceOut, \"2dMap\")) {\n for (k = 0; k < 2; k++) {\n binDir = BINDIRECTIONS[k];\n var binGroupInDir = coerce(\n binDir + \"bingroup\",\n binGroup ? binGroup + \"__\" + binDir : null\n );\n fillBinOpts(traceOut, binGroupInDir, binDir);\n }\n } else {\n fillBinOpts(traceOut, binGroup, orientation2binDir(traceOut));\n }\n }\n for (groupName in allBinOpts) {\n var binOpts = allBinOpts[groupName];\n traces = binOpts.traces;\n for (j = 0; j < BINATTRS.length; j++) {\n var attrSpec = BINATTRS[j];\n var attr = attrSpec.name;\n var aStr;\n var autoVals;\n if (attr === \"nbins\" && binOpts.sizeFound) continue;\n for (i = 0; i < traces.length; i++) {\n traceOut = traces[i];\n binDir = binOpts.dirs[i];\n aStr = attrSpec.aStr[binDir];\n if (nestedProperty(traceOut._input, aStr).get() !== void 0) {\n binOpts[attr] = coerce(aStr);\n binOpts[attr + \"Found\"] = true;\n break;\n }\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n if (autoVals[attr]) {\n nestedProperty(traceOut, aStr).set(autoVals[attr]);\n }\n }\n if (attr === \"start\" || attr === \"end\") {\n for (; i < traces.length; i++) {\n traceOut = traces[i];\n if (traceOut[\"_\" + binDir + \"bingroup\"]) {\n autoVals = (traceOut._autoBin || {})[binDir] || {};\n coerce(aStr, autoVals[attr]);\n }\n }\n }\n if (attr === \"nbins\" && !binOpts.sizeFound && !binOpts.nbinsFound) {\n traceOut = traces[0];\n binOpts[attr] = coerce(aStr);\n }\n }\n }\n };\n }\n });\n\n // src/traces/histogram/hover.js\n var require_hover6 = __commonJS({\n \"src/traces/histogram/hover.js\"(exports, module) {\n \"use strict\";\n var barHover = require_hover3().hoverPoints;\n var hoverLabelText = require_axes().hoverLabelText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var pts = barHover(pointData, xval, yval, hovermode, opts);\n if (!pts) return;\n pointData = pts[0];\n var di = pointData.cd[pointData.index];\n var trace = pointData.cd[0].trace;\n if (!trace.cumulative.enabled) {\n var posLetter = trace.orientation === \"h\" ? \"y\" : \"x\";\n pointData[posLetter + \"Label\"] = hoverLabelText(pointData[posLetter + \"a\"], [di.ph0, di.ph1], trace[posLetter + \"hoverformat\"]);\n }\n return pts;\n };\n }\n });\n\n // src/traces/histogram/event_data.js\n var require_event_data3 = __commonJS({\n \"src/traces/histogram/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (\"zLabelVal\" in pt) out.z = pt.zLabelVal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (!(trace.cumulative || {}).enabled) {\n var pts = Array.isArray(pointNumber) ? cd[0].pts[pointNumber[0]][pointNumber[1]] : cd[pointNumber].pts;\n out.pointNumbers = pts;\n out.binNumber = out.pointNumber;\n delete out.pointNumber;\n delete out.pointIndex;\n var pointIndices;\n if (trace._indexToPoints) {\n pointIndices = [];\n for (var i = 0; i < pts.length; i++) {\n pointIndices = pointIndices.concat(trace._indexToPoints[pts[i]]);\n }\n } else {\n pointIndices = pts;\n }\n out.pointIndices = pointIndices;\n }\n return out;\n };\n }\n });\n\n // src/traces/histogram/index.js\n var require_histogram = __commonJS({\n \"src/traces/histogram/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes26(),\n layoutAttributes: require_layout_attributes6(),\n supplyDefaults: require_defaults22(),\n crossTraceDefaults: require_cross_trace_defaults3(),\n supplyLayoutDefaults: require_layout_defaults5(),\n calc: require_calc7().calc,\n crossTraceCalc: require_cross_trace_calc().crossTraceCalc,\n plot: require_plot3().plot,\n layerName: \"barlayer\",\n style: require_style4().style,\n styleOnSelect: require_style4().styleOnSelect,\n colorbar: require_marker_colorbar(),\n hoverPoints: require_hover6(),\n selectPoints: require_select3(),\n eventData: require_event_data3(),\n moduleType: \"trace\",\n name: \"histogram\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"bar\", \"histogram\", \"oriented\", \"errorBarsOK\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/histogram.js\n var require_histogram2 = __commonJS({\n \"lib/histogram.js\"(exports, module) {\n \"use strict\";\n module.exports = require_histogram();\n }\n });\n\n // src/traces/histogram2d/attributes.js\n var require_attributes27 = __commonJS({\n \"src/traces/histogram2d/attributes.js\"(exports, module) {\n \"use strict\";\n var histogramAttrs = require_attributes26();\n var makeBinAttrs = require_bin_attributes();\n var heatmapAttrs = require_attributes25();\n var baseAttrs = require_attributes2();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n x: histogramAttrs.x,\n y: histogramAttrs.y,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n marker: {\n color: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n histnorm: histogramAttrs.histnorm,\n histfunc: histogramAttrs.histfunc,\n nbinsx: histogramAttrs.nbinsx,\n xbins: makeBinAttrs(\"x\"),\n nbinsy: histogramAttrs.nbinsy,\n ybins: makeBinAttrs(\"y\"),\n autobinx: histogramAttrs.autobinx,\n autobiny: histogramAttrs.autobiny,\n bingroup: extendFlat({}, histogramAttrs.bingroup, {}),\n xbingroup: extendFlat({}, histogramAttrs.bingroup, {}),\n ybingroup: extendFlat({}, histogramAttrs.bingroup, {}),\n xgap: heatmapAttrs.xgap,\n ygap: heatmapAttrs.ygap,\n zsmooth: heatmapAttrs.zsmooth,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: hovertemplateAttrs({}, { keys: \"z\" }),\n texttemplate: texttemplateAttrs({\n arrayOk: false,\n editType: \"plot\"\n }, {\n keys: \"z\"\n }),\n textfont: heatmapAttrs.textfont,\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", { cLetter: \"z\", autoColorDflt: false })\n );\n }\n });\n\n // src/traces/histogram2d/sample_defaults.js\n var require_sample_defaults = __commonJS({\n \"src/traces/histogram2d/sample_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n module.exports = function handleSampleDefaults(traceIn, traceOut, coerce, layout) {\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var xlen = Lib.minRowLength(x);\n var ylen = Lib.minRowLength(y);\n if (!xlen || !ylen) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = Math.min(xlen, ylen);\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\"], layout);\n var hasAggregationData = coerce(\"z\") || coerce(\"marker.color\");\n if (hasAggregationData) coerce(\"histfunc\");\n coerce(\"histnorm\");\n coerce(\"autobinx\");\n coerce(\"autobiny\");\n };\n }\n });\n\n // src/traces/histogram2d/defaults.js\n var require_defaults23 = __commonJS({\n \"src/traces/histogram2d/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSampleDefaults = require_sample_defaults();\n var handleStyleDefaults = require_style_defaults2();\n var colorscaleDefaults = require_defaults2();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var attributes = require_attributes27();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n coerce(\"hovertemplate\");\n handleHeatmapLabelDefaults(coerce, layout);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n };\n }\n });\n\n // src/traces/histogram2d/hover.js\n var require_hover7 = __commonJS({\n \"src/traces/histogram2d/hover.js\"(exports, module) {\n \"use strict\";\n var heatmapHover = require_hover5();\n var hoverLabelText = require_axes().hoverLabelText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var pts = heatmapHover(pointData, xval, yval, hovermode, opts);\n if (!pts) return;\n pointData = pts[0];\n var indices = pointData.index;\n var ny = indices[0];\n var nx = indices[1];\n var cd0 = pointData.cd[0];\n var trace = cd0.trace;\n var xRange = cd0.xRanges[nx];\n var yRange = cd0.yRanges[ny];\n pointData.xLabel = hoverLabelText(pointData.xa, [xRange[0], xRange[1]], trace.xhoverformat);\n pointData.yLabel = hoverLabelText(pointData.ya, [yRange[0], yRange[1]], trace.yhoverformat);\n return pts;\n };\n }\n });\n\n // src/traces/histogram2d/index.js\n var require_histogram2d = __commonJS({\n \"src/traces/histogram2d/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes27(),\n supplyDefaults: require_defaults23(),\n crossTraceDefaults: require_cross_trace_defaults3(),\n calc: require_calc9(),\n plot: require_plot5(),\n layerName: \"heatmaplayer\",\n colorbar: require_colorbar2(),\n style: require_style6(),\n hoverPoints: require_hover7(),\n eventData: require_event_data3(),\n moduleType: \"trace\",\n name: \"histogram2d\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"histogram\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/histogram2d.js\n var require_histogram2d2 = __commonJS({\n \"lib/histogram2d.js\"(exports, module) {\n \"use strict\";\n module.exports = require_histogram2d();\n }\n });\n\n // src/constants/filter_ops.js\n var require_filter_ops = __commonJS({\n \"src/constants/filter_ops.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n COMPARISON_OPS: [\"=\", \"!=\", \"<\", \">=\", \">\", \"<=\"],\n COMPARISON_OPS2: [\"=\", \"<\", \">=\", \">\", \"<=\"],\n INTERVAL_OPS: [\"[]\", \"()\", \"[)\", \"(]\", \"][\", \")(\", \"](\", \")[\"],\n SET_OPS: [\"{}\", \"}{\"],\n CONSTRAINT_REDUCTION: {\n // for contour constraints, open/closed endpoints are equivalent\n \"=\": \"=\",\n \"<\": \"<\",\n \"<=\": \"<\",\n \">\": \">\",\n \">=\": \">\",\n \"[]\": \"[]\",\n \"()\": \"[]\",\n \"[)\": \"[]\",\n \"(]\": \"[]\",\n \"][\": \"][\",\n \")(\": \"][\",\n \"](\": \"][\",\n \")[\": \"][\"\n }\n };\n }\n });\n\n // src/traces/contour/attributes.js\n var require_attributes28 = __commonJS({\n \"src/traces/contour/attributes.js\"(exports, module) {\n \"use strict\";\n var heatmapAttrs = require_attributes25();\n var scatterAttrs = require_attributes12();\n var axisFormat = require_axis_format_attributes();\n var axisHoverFormat = axisFormat.axisHoverFormat;\n var descriptionOnlyNumbers = axisFormat.descriptionOnlyNumbers;\n var colorScaleAttrs = require_attributes8();\n var dash = require_attributes4().dash;\n var fontAttrs = require_font_attributes();\n var extendFlat = require_extend().extendFlat;\n var filterOps = require_filter_ops();\n var COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\n var INTERVAL_OPS = filterOps.INTERVAL_OPS;\n var scatterLineAttrs = scatterAttrs.line;\n module.exports = extendFlat(\n {\n z: heatmapAttrs.z,\n x: heatmapAttrs.x,\n x0: heatmapAttrs.x0,\n dx: heatmapAttrs.dx,\n y: heatmapAttrs.y,\n y0: heatmapAttrs.y0,\n dy: heatmapAttrs.dy,\n xperiod: heatmapAttrs.xperiod,\n yperiod: heatmapAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: heatmapAttrs.xperiodalignment,\n yperiodalignment: heatmapAttrs.yperiodalignment,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n xtype: heatmapAttrs.xtype,\n ytype: heatmapAttrs.ytype,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: heatmapAttrs.hovertemplate,\n texttemplate: extendFlat({}, heatmapAttrs.texttemplate, {}),\n textfont: extendFlat({}, heatmapAttrs.textfont, {}),\n hoverongaps: heatmapAttrs.hoverongaps,\n connectgaps: extendFlat({}, heatmapAttrs.connectgaps, {}),\n fillcolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n autocontour: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\",\n impliedEdits: {\n \"contours.start\": void 0,\n \"contours.end\": void 0,\n \"contours.size\": void 0\n }\n },\n ncontours: {\n valType: \"integer\",\n dflt: 15,\n min: 1,\n editType: \"calc\"\n },\n contours: {\n type: {\n valType: \"enumerated\",\n values: [\"levels\", \"constraint\"],\n dflt: \"levels\",\n editType: \"calc\"\n },\n start: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\",\n impliedEdits: { \"^autocontour\": false }\n },\n end: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\",\n impliedEdits: { \"^autocontour\": false }\n },\n size: {\n valType: \"number\",\n dflt: null,\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^autocontour\": false }\n },\n coloring: {\n valType: \"enumerated\",\n values: [\"fill\", \"heatmap\", \"lines\", \"none\"],\n dflt: \"fill\",\n editType: \"calc\"\n },\n showlines: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n showlabels: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n labelfont: fontAttrs({\n editType: \"plot\",\n colorEditType: \"style\"\n }),\n labelformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\",\n description: descriptionOnlyNumbers(\"contour label\")\n },\n operation: {\n valType: \"enumerated\",\n values: [].concat(COMPARISON_OPS2).concat(INTERVAL_OPS),\n dflt: \"=\",\n editType: \"calc\"\n },\n value: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc\"\n },\n editType: \"calc\",\n impliedEdits: { autocontour: false }\n },\n line: {\n color: extendFlat({}, scatterLineAttrs.color, {\n editType: \"style+colorbars\"\n }),\n width: {\n valType: \"number\",\n min: 0,\n editType: \"style+colorbars\"\n },\n dash,\n smoothing: extendFlat({}, scatterLineAttrs.smoothing, {}),\n editType: \"plot\"\n },\n zorder: scatterAttrs.zorder\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n autoColorDflt: false,\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/histogram2dcontour/attributes.js\n var require_attributes29 = __commonJS({\n \"src/traces/histogram2dcontour/attributes.js\"(exports, module) {\n \"use strict\";\n var histogram2dAttrs = require_attributes27();\n var contourAttrs = require_attributes28();\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n x: histogram2dAttrs.x,\n y: histogram2dAttrs.y,\n z: histogram2dAttrs.z,\n marker: histogram2dAttrs.marker,\n histnorm: histogram2dAttrs.histnorm,\n histfunc: histogram2dAttrs.histfunc,\n nbinsx: histogram2dAttrs.nbinsx,\n xbins: histogram2dAttrs.xbins,\n nbinsy: histogram2dAttrs.nbinsy,\n ybins: histogram2dAttrs.ybins,\n autobinx: histogram2dAttrs.autobinx,\n autobiny: histogram2dAttrs.autobiny,\n bingroup: histogram2dAttrs.bingroup,\n xbingroup: histogram2dAttrs.xbingroup,\n ybingroup: histogram2dAttrs.ybingroup,\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: contourAttrs.contours,\n line: {\n color: contourAttrs.line.color,\n width: extendFlat({}, contourAttrs.line.width, {\n dflt: 0.5\n }),\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: \"plot\"\n },\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\", 1),\n hovertemplate: histogram2dAttrs.hovertemplate,\n texttemplate: contourAttrs.texttemplate,\n textfont: contourAttrs.textfont\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/contour/contours_defaults.js\n var require_contours_defaults = __commonJS({\n \"src/traces/contour/contours_defaults.js\"(exports, module) {\n \"use strict\";\n module.exports = function handleContourDefaults(traceIn, traceOut, coerce, coerce2) {\n var contourStart = coerce2(\"contours.start\");\n var contourEnd = coerce2(\"contours.end\");\n var missingEnd = contourStart === false || contourEnd === false;\n var contourSize = coerce(\"contours.size\");\n var autoContour;\n if (missingEnd) autoContour = traceOut.autocontour = true;\n else autoContour = coerce(\"autocontour\", false);\n if (autoContour || !contourSize) coerce(\"ncontours\");\n };\n }\n });\n\n // src/traces/contour/label_defaults.js\n var require_label_defaults2 = __commonJS({\n \"src/traces/contour/label_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function handleLabelDefaults(coerce, layout, lineColor, opts) {\n if (!opts) opts = {};\n var showLabels = coerce(\"contours.showlabels\");\n if (showLabels) {\n var globalFont = layout.font;\n Lib.coerceFont(coerce, \"contours.labelfont\", globalFont, { overrideDflt: {\n color: lineColor\n } });\n coerce(\"contours.labelformat\");\n }\n if (opts.hasHover !== false) coerce(\"zhoverformat\");\n };\n }\n });\n\n // src/traces/contour/style_defaults.js\n var require_style_defaults3 = __commonJS({\n \"src/traces/contour/style_defaults.js\"(exports, module) {\n \"use strict\";\n var colorscaleDefaults = require_defaults2();\n var handleLabelDefaults = require_label_defaults2();\n module.exports = function handleStyleDefaults(traceIn, traceOut, coerce, layout, opts) {\n var coloring = coerce(\"contours.coloring\");\n var showLines;\n var lineColor = \"\";\n if (coloring === \"fill\") showLines = coerce(\"contours.showlines\");\n if (showLines !== false) {\n if (coloring !== \"lines\") lineColor = coerce(\"line.color\", \"#000\");\n coerce(\"line.width\", 0.5);\n coerce(\"line.dash\");\n }\n if (coloring !== \"none\") {\n if (traceIn.showlegend !== true) traceOut.showlegend = false;\n traceOut._dfltShowLegend = false;\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"\", cLetter: \"z\" }\n );\n }\n coerce(\"line.smoothing\");\n handleLabelDefaults(coerce, layout, lineColor, opts);\n };\n }\n });\n\n // src/traces/histogram2dcontour/defaults.js\n var require_defaults24 = __commonJS({\n \"src/traces/histogram2dcontour/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSampleDefaults = require_sample_defaults();\n var handleContoursDefaults = require_contours_defaults();\n var handleStyleDefaults = require_style_defaults3();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var attributes = require_attributes29();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"hovertemplate\");\n if (traceOut.contours && traceOut.contours.coloring === \"heatmap\") {\n handleHeatmapLabelDefaults(coerce, layout);\n }\n };\n }\n });\n\n // src/traces/contour/set_contours.js\n var require_set_contours = __commonJS({\n \"src/traces/contour/set_contours.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n module.exports = function setContours(trace, vals) {\n var contours = trace.contours;\n if (trace.autocontour) {\n var zmin = trace.zmin;\n var zmax = trace.zmax;\n if (trace.zauto || zmin === void 0) {\n zmin = Lib.aggNums(Math.min, null, vals);\n }\n if (trace.zauto || zmax === void 0) {\n zmax = Lib.aggNums(Math.max, null, vals);\n }\n var dummyAx = autoContours(zmin, zmax, trace.ncontours);\n contours.size = dummyAx.dtick;\n contours.start = Axes.tickFirst(dummyAx);\n dummyAx.range.reverse();\n contours.end = Axes.tickFirst(dummyAx);\n if (contours.start === zmin) contours.start += contours.size;\n if (contours.end === zmax) contours.end -= contours.size;\n if (contours.start > contours.end) {\n contours.start = contours.end = (contours.start + contours.end) / 2;\n }\n if (!trace._input.contours) trace._input.contours = {};\n Lib.extendFlat(trace._input.contours, {\n start: contours.start,\n end: contours.end,\n size: contours.size\n });\n trace._input.autocontour = true;\n } else if (contours.type !== \"constraint\") {\n var start = contours.start;\n var end = contours.end;\n var inputContours = trace._input.contours;\n if (start > end) {\n contours.start = inputContours.start = end;\n end = contours.end = inputContours.end = start;\n start = contours.start;\n }\n if (!(contours.size > 0)) {\n var sizeOut;\n if (start === end) sizeOut = 1;\n else sizeOut = autoContours(start, end, trace.ncontours).dtick;\n inputContours.size = contours.size = sizeOut;\n }\n }\n };\n function autoContours(start, end, ncontours) {\n var dummyAx = {\n type: \"linear\",\n range: [start, end]\n };\n Axes.autoTicks(\n dummyAx,\n (end - start) / (ncontours || 15)\n );\n return dummyAx;\n }\n }\n });\n\n // src/traces/contour/end_plus.js\n var require_end_plus = __commonJS({\n \"src/traces/contour/end_plus.js\"(exports, module) {\n \"use strict\";\n module.exports = function endPlus(contours) {\n return contours.end + contours.size / 1e6;\n };\n }\n });\n\n // src/traces/contour/calc.js\n var require_calc10 = __commonJS({\n \"src/traces/contour/calc.js\"(exports, module) {\n \"use strict\";\n var Colorscale = require_colorscale();\n var heatmapCalc = require_calc9();\n var setContours = require_set_contours();\n var endPlus = require_end_plus();\n module.exports = function calc(gd, trace) {\n var cd = heatmapCalc(gd, trace);\n var zOut = cd[0].z;\n setContours(trace, zOut);\n var contours = trace.contours;\n var cOpts = Colorscale.extractOpts(trace);\n var cVals;\n if (contours.coloring === \"heatmap\" && cOpts.auto && trace.autocontour === false) {\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n if (!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n var min0 = start - cs / 2;\n var max0 = min0 + nc * cs;\n cVals = [min0, max0];\n } else {\n cVals = zOut;\n }\n Colorscale.calc(gd, trace, { vals: cVals, cLetter: \"z\" });\n return cd;\n };\n }\n });\n\n // src/traces/contour/constants.js\n var require_constants16 = __commonJS({\n \"src/traces/contour/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // some constants to help with marching squares algorithm\n // where does the path start for each index?\n BOTTOMSTART: [1, 9, 13, 104, 713],\n TOPSTART: [4, 6, 7, 104, 713],\n LEFTSTART: [8, 12, 14, 208, 1114],\n RIGHTSTART: [2, 3, 11, 208, 1114],\n // which way [dx,dy] do we leave a given index?\n // saddles are already disambiguated\n NEWDELTA: [\n null,\n [-1, 0],\n [0, -1],\n [-1, 0],\n [1, 0],\n null,\n [0, -1],\n [-1, 0],\n [0, 1],\n [0, 1],\n null,\n [0, 1],\n [1, 0],\n [1, 0],\n [0, -1]\n ],\n // for each saddle, the first index here is used\n // for dx||dy<0, the second for dx||dy>0\n CHOOSESADDLE: {\n 104: [4, 1],\n 208: [2, 8],\n 713: [7, 13],\n 1114: [11, 14]\n },\n // after one index has been used for a saddle, which do we\n // substitute to be used up later?\n SADDLEREMAINDER: { 1: 4, 2: 8, 4: 1, 7: 13, 8: 2, 11: 14, 13: 7, 14: 11 },\n // length of a contour, as a multiple of the plot area diagonal, per label\n LABELDISTANCE: 2,\n // number of contour levels after which we start increasing the number of\n // labels we draw. Many contours means they will generally be close\n // together, so it will be harder to follow a long way to find a label\n LABELINCREASE: 10,\n // minimum length of a contour line, as a multiple of the label length,\n // at which we draw *any* labels\n LABELMIN: 3,\n // max number of labels to draw on a single contour path, no matter how long\n LABELMAX: 10,\n // constants for the label position cost function\n LABELOPTIMIZER: {\n // weight given to edge proximity\n EDGECOST: 1,\n // weight given to the angle off horizontal\n ANGLECOST: 1,\n // weight given to distance from already-placed labels\n NEIGHBORCOST: 5,\n // cost multiplier for labels on the same level\n SAMELEVELFACTOR: 10,\n // minimum distance (as a multiple of the label length)\n // for labels on the same level\n SAMELEVELDISTANCE: 5,\n // maximum cost before we won't even place the label\n MAXCOST: 100,\n // number of evenly spaced points to look at in the first\n // iteration of the search\n INITIALSEARCHPOINTS: 10,\n // number of binary search iterations after the initial wide search\n ITERATIONS: 5\n }\n };\n }\n });\n\n // src/traces/contour/make_crossings.js\n var require_make_crossings = __commonJS({\n \"src/traces/contour/make_crossings.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants16();\n module.exports = function makeCrossings(pathinfo) {\n var z = pathinfo[0].z;\n var m = z.length;\n var n = z[0].length;\n var twoWide = m === 2 || n === 2;\n var xi;\n var yi;\n var startIndices;\n var ystartIndices;\n var label;\n var corners;\n var mi;\n var pi;\n var i;\n for (yi = 0; yi < m - 1; yi++) {\n ystartIndices = [];\n if (yi === 0) ystartIndices = ystartIndices.concat(constants.BOTTOMSTART);\n if (yi === m - 2) ystartIndices = ystartIndices.concat(constants.TOPSTART);\n for (xi = 0; xi < n - 1; xi++) {\n startIndices = ystartIndices.slice();\n if (xi === 0) startIndices = startIndices.concat(constants.LEFTSTART);\n if (xi === n - 2) startIndices = startIndices.concat(constants.RIGHTSTART);\n label = xi + \",\" + yi;\n corners = [\n [z[yi][xi], z[yi][xi + 1]],\n [z[yi + 1][xi], z[yi + 1][xi + 1]]\n ];\n for (i = 0; i < pathinfo.length; i++) {\n pi = pathinfo[i];\n mi = getMarchingIndex(pi.level, corners);\n if (!mi) continue;\n pi.crossings[label] = mi;\n if (startIndices.indexOf(mi) !== -1) {\n pi.starts.push([xi, yi]);\n if (twoWide && startIndices.indexOf(\n mi,\n startIndices.indexOf(mi) + 1\n ) !== -1) {\n pi.starts.push([xi, yi]);\n }\n }\n }\n }\n }\n };\n function getMarchingIndex(val, corners) {\n var mi = (corners[0][0] > val ? 0 : 1) + (corners[0][1] > val ? 0 : 2) + (corners[1][1] > val ? 0 : 4) + (corners[1][0] > val ? 0 : 8);\n if (mi === 5 || mi === 10) {\n var avg = (corners[0][0] + corners[0][1] + corners[1][0] + corners[1][1]) / 4;\n if (val > avg) return mi === 5 ? 713 : 1114;\n return mi === 5 ? 104 : 208;\n }\n return mi === 15 ? 0 : mi;\n }\n }\n });\n\n // src/traces/contour/find_all_paths.js\n var require_find_all_paths = __commonJS({\n \"src/traces/contour/find_all_paths.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants16();\n module.exports = function findAllPaths(pathinfo, xtol, ytol) {\n var cnt, startLoc, i, pi, j;\n xtol = xtol || 0.01;\n ytol = ytol || 0.01;\n for (i = 0; i < pathinfo.length; i++) {\n pi = pathinfo[i];\n for (j = 0; j < pi.starts.length; j++) {\n startLoc = pi.starts[j];\n makePath(pi, startLoc, \"edge\", xtol, ytol);\n }\n cnt = 0;\n while (Object.keys(pi.crossings).length && cnt < 1e4) {\n cnt++;\n startLoc = Object.keys(pi.crossings)[0].split(\",\").map(Number);\n makePath(pi, startLoc, void 0, xtol, ytol);\n }\n if (cnt === 1e4) Lib.log(\"Infinite loop in contour?\");\n }\n };\n function equalPts(pt1, pt2, xtol, ytol) {\n return Math.abs(pt1[0] - pt2[0]) < xtol && Math.abs(pt1[1] - pt2[1]) < ytol;\n }\n function ptDist(pt1, pt2) {\n var dx = pt1[2] - pt2[2];\n var dy = pt1[3] - pt2[3];\n return Math.sqrt(dx * dx + dy * dy);\n }\n function makePath(pi, loc, edgeflag, xtol, ytol) {\n var locStr = loc.join(\",\");\n var mi = pi.crossings[locStr];\n var marchStep = getStartStep(mi, edgeflag, loc);\n var pts = [getInterpPx(pi, loc, [-marchStep[0], -marchStep[1]])];\n var m = pi.z.length;\n var n = pi.z[0].length;\n var startLoc = loc.slice();\n var startStep = marchStep.slice();\n var cnt;\n for (cnt = 0; cnt < 1e4; cnt++) {\n if (mi > 20) {\n mi = constants.CHOOSESADDLE[mi][(marchStep[0] || marchStep[1]) < 0 ? 0 : 1];\n pi.crossings[locStr] = constants.SADDLEREMAINDER[mi];\n } else {\n delete pi.crossings[locStr];\n }\n marchStep = constants.NEWDELTA[mi];\n if (!marchStep) {\n Lib.log(\"Found bad marching index:\", mi, loc, pi.level);\n break;\n }\n pts.push(getInterpPx(pi, loc, marchStep));\n loc[0] += marchStep[0];\n loc[1] += marchStep[1];\n locStr = loc.join(\",\");\n if (equalPts(pts[pts.length - 1], pts[pts.length - 2], xtol, ytol)) pts.pop();\n var atEdge = marchStep[0] && (loc[0] < 0 || loc[0] > n - 2) || marchStep[1] && (loc[1] < 0 || loc[1] > m - 2);\n var closedLoop = loc[0] === startLoc[0] && loc[1] === startLoc[1] && marchStep[0] === startStep[0] && marchStep[1] === startStep[1];\n if (closedLoop || edgeflag && atEdge) break;\n mi = pi.crossings[locStr];\n }\n if (cnt === 1e4) {\n Lib.log(\"Infinite loop in contour?\");\n }\n var closedpath = equalPts(pts[0], pts[pts.length - 1], xtol, ytol);\n var totaldist = 0;\n var distThresholdFactor = 0.2 * pi.smoothing;\n var alldists = [];\n var cropstart = 0;\n var distgroup, cnt2, cnt3, newpt, ptcnt, ptavg, thisdist, i, j, edgepathi, edgepathj;\n for (cnt = 1; cnt < pts.length; cnt++) {\n thisdist = ptDist(pts[cnt], pts[cnt - 1]);\n totaldist += thisdist;\n alldists.push(thisdist);\n }\n var distThreshold = totaldist / alldists.length * distThresholdFactor;\n function getpt(i2) {\n return pts[i2 % pts.length];\n }\n for (cnt = pts.length - 2; cnt >= cropstart; cnt--) {\n distgroup = alldists[cnt];\n if (distgroup < distThreshold) {\n cnt3 = 0;\n for (cnt2 = cnt - 1; cnt2 >= cropstart; cnt2--) {\n if (distgroup + alldists[cnt2] < distThreshold) {\n distgroup += alldists[cnt2];\n } else break;\n }\n if (closedpath && cnt === pts.length - 2) {\n for (cnt3 = 0; cnt3 < cnt2; cnt3++) {\n if (distgroup + alldists[cnt3] < distThreshold) {\n distgroup += alldists[cnt3];\n } else break;\n }\n }\n ptcnt = cnt - cnt2 + cnt3 + 1;\n ptavg = Math.floor((cnt + cnt2 + cnt3 + 2) / 2);\n if (!closedpath && cnt === pts.length - 2) newpt = pts[pts.length - 1];\n else if (!closedpath && cnt2 === -1) newpt = pts[0];\n else if (ptcnt % 2) newpt = getpt(ptavg);\n else {\n newpt = [\n (getpt(ptavg)[0] + getpt(ptavg + 1)[0]) / 2,\n (getpt(ptavg)[1] + getpt(ptavg + 1)[1]) / 2\n ];\n }\n pts.splice(cnt2 + 1, cnt - cnt2 + 1, newpt);\n cnt = cnt2 + 1;\n if (cnt3) cropstart = cnt3;\n if (closedpath) {\n if (cnt === pts.length - 2) pts[cnt3] = pts[pts.length - 1];\n else if (cnt === 0) pts[pts.length - 1] = pts[0];\n }\n }\n }\n pts.splice(0, cropstart);\n for (cnt = 0; cnt < pts.length; cnt++) pts[cnt].length = 2;\n if (pts.length < 2) return;\n else if (closedpath) {\n pts.pop();\n pi.paths.push(pts);\n } else {\n if (!edgeflag) {\n Lib.log(\n \"Unclosed interior contour?\",\n pi.level,\n startLoc.join(\",\"),\n pts.join(\"L\")\n );\n }\n var merged = false;\n for (i = 0; i < pi.edgepaths.length; i++) {\n edgepathi = pi.edgepaths[i];\n if (!merged && equalPts(edgepathi[0], pts[pts.length - 1], xtol, ytol)) {\n pts.pop();\n merged = true;\n var doublemerged = false;\n for (j = 0; j < pi.edgepaths.length; j++) {\n edgepathj = pi.edgepaths[j];\n if (equalPts(edgepathj[edgepathj.length - 1], pts[0], xtol, ytol)) {\n doublemerged = true;\n pts.shift();\n pi.edgepaths.splice(i, 1);\n if (j === i) {\n pi.paths.push(pts.concat(edgepathj));\n } else {\n if (j > i) j--;\n pi.edgepaths[j] = edgepathj.concat(pts, edgepathi);\n }\n break;\n }\n }\n if (!doublemerged) {\n pi.edgepaths[i] = pts.concat(edgepathi);\n }\n }\n }\n for (i = 0; i < pi.edgepaths.length; i++) {\n if (merged) break;\n edgepathi = pi.edgepaths[i];\n if (equalPts(edgepathi[edgepathi.length - 1], pts[0], xtol, ytol)) {\n pts.shift();\n pi.edgepaths[i] = edgepathi.concat(pts);\n merged = true;\n }\n }\n if (!merged) pi.edgepaths.push(pts);\n }\n }\n function getStartStep(mi, edgeflag, loc) {\n var dx = 0;\n var dy = 0;\n if (mi > 20 && edgeflag) {\n if (mi === 208 || mi === 1114) {\n dx = loc[0] === 0 ? 1 : -1;\n } else {\n dy = loc[1] === 0 ? 1 : -1;\n }\n } else if (constants.BOTTOMSTART.indexOf(mi) !== -1) dy = 1;\n else if (constants.LEFTSTART.indexOf(mi) !== -1) dx = 1;\n else if (constants.TOPSTART.indexOf(mi) !== -1) dy = -1;\n else dx = -1;\n return [dx, dy];\n }\n function getInterpPx(pi, loc, step) {\n var locx = loc[0] + Math.max(step[0], 0);\n var locy = loc[1] + Math.max(step[1], 0);\n var zxy = pi.z[locy][locx];\n var xa = pi.xaxis;\n var ya = pi.yaxis;\n if (step[1]) {\n var dx = (pi.level - zxy) / (pi.z[locy][locx + 1] - zxy);\n var dxl = (dx !== 1 ? (1 - dx) * xa.c2l(pi.x[locx]) : 0) + (dx !== 0 ? dx * xa.c2l(pi.x[locx + 1]) : 0);\n return [\n xa.c2p(xa.l2c(dxl), true),\n ya.c2p(pi.y[locy], true),\n locx + dx,\n locy\n ];\n } else {\n var dy = (pi.level - zxy) / (pi.z[locy + 1][locx] - zxy);\n var dyl = (dy !== 1 ? (1 - dy) * ya.c2l(pi.y[locy]) : 0) + (dy !== 0 ? dy * ya.c2l(pi.y[locy + 1]) : 0);\n return [\n xa.c2p(pi.x[locx], true),\n ya.c2p(ya.l2c(dyl), true),\n locx,\n locy + dy\n ];\n }\n }\n }\n });\n\n // src/traces/contour/constraint_mapping.js\n var require_constraint_mapping = __commonJS({\n \"src/traces/contour/constraint_mapping.js\"(exports, module) {\n \"use strict\";\n var filterOps = require_filter_ops();\n var isNumeric = require_fast_isnumeric();\n module.exports = {\n \"[]\": makeRangeSettings(\"[]\"),\n \"][\": makeRangeSettings(\"][\"),\n \">\": makeInequalitySettings(\">\"),\n \"<\": makeInequalitySettings(\"<\"),\n \"=\": makeInequalitySettings(\"=\")\n };\n function coerceValue(operation, value) {\n var hasArrayValue = Array.isArray(value);\n var coercedValue;\n function coerce(value2) {\n return isNumeric(value2) ? +value2 : null;\n }\n if (filterOps.COMPARISON_OPS2.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? coerce(value[0]) : coerce(value);\n } else if (filterOps.INTERVAL_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? [coerce(value[0]), coerce(value[1])] : [coerce(value), coerce(value)];\n } else if (filterOps.SET_OPS.indexOf(operation) !== -1) {\n coercedValue = hasArrayValue ? value.map(coerce) : [coerce(value)];\n }\n return coercedValue;\n }\n function makeRangeSettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n var min = Math.min(value[0], value[1]);\n var max = Math.max(value[0], value[1]);\n return {\n start: min,\n end: max,\n size: max - min\n };\n };\n }\n function makeInequalitySettings(operation) {\n return function(value) {\n value = coerceValue(operation, value);\n return {\n start: value,\n end: Infinity,\n size: Infinity\n };\n };\n }\n }\n });\n\n // src/traces/contour/empty_pathinfo.js\n var require_empty_pathinfo = __commonJS({\n \"src/traces/contour/empty_pathinfo.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constraintMapping = require_constraint_mapping();\n var endPlus = require_end_plus();\n module.exports = function emptyPathinfo(contours, plotinfo, cd0) {\n var contoursFinal = contours.type === \"constraint\" ? constraintMapping[contours._operation](contours.value) : contours;\n var cs = contoursFinal.size;\n var pathinfo = [];\n var end = endPlus(contoursFinal);\n var carpet = cd0.trace._carpetTrace;\n var basePathinfo = carpet ? {\n // store axes so we can convert to px\n xaxis: carpet.aaxis,\n yaxis: carpet.baxis,\n // full data arrays to use for interpolation\n x: cd0.a,\n y: cd0.b\n } : {\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y\n };\n for (var ci = contoursFinal.start; ci < end; ci += cs) {\n pathinfo.push(Lib.extendFlat({\n level: ci,\n // all the cells with nontrivial marching index\n crossings: {},\n // starting points on the edges of the lattice for each contour\n starts: [],\n // all unclosed paths (may have less items than starts,\n // if a path is closed by rounding)\n edgepaths: [],\n // all closed paths\n paths: [],\n z: cd0.z,\n smoothing: cd0.trace.line.smoothing\n }, basePathinfo));\n if (pathinfo.length > 1e3) {\n Lib.warn(\"Too many contours, clipping at 1000\", contours);\n break;\n }\n }\n return pathinfo;\n };\n }\n });\n\n // src/traces/contour/convert_to_constraints.js\n var require_convert_to_constraints = __commonJS({\n \"src/traces/contour/convert_to_constraints.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function(pathinfo, operation) {\n var i, pi0, pi1;\n var op0 = function(arr) {\n return arr.reverse();\n };\n var op1 = function(arr) {\n return arr;\n };\n switch (operation) {\n case \"=\":\n case \"<\":\n return pathinfo;\n case \">\":\n if (pathinfo.length !== 1) {\n Lib.warn(\"Contour data invalid for the specified inequality operation.\");\n }\n pi0 = pathinfo[0];\n for (i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for (i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for (i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n return pathinfo;\n case \"][\":\n var tmp = op0;\n op0 = op1;\n op1 = tmp;\n // It's a nice rule, except this definitely *is* what's intended here.\n /* eslint-disable: no-fallthrough */\n case \"[]\":\n if (pathinfo.length !== 2) {\n Lib.warn(\"Contour data invalid for the specified inequality range operation.\");\n }\n pi0 = copyPathinfo(pathinfo[0]);\n pi1 = copyPathinfo(pathinfo[1]);\n for (i = 0; i < pi0.edgepaths.length; i++) {\n pi0.edgepaths[i] = op0(pi0.edgepaths[i]);\n }\n for (i = 0; i < pi0.paths.length; i++) {\n pi0.paths[i] = op0(pi0.paths[i]);\n }\n for (i = 0; i < pi0.starts.length; i++) {\n pi0.starts[i] = op0(pi0.starts[i]);\n }\n while (pi1.edgepaths.length) {\n pi0.edgepaths.push(op1(pi1.edgepaths.shift()));\n }\n while (pi1.paths.length) {\n pi0.paths.push(op1(pi1.paths.shift()));\n }\n while (pi1.starts.length) {\n pi0.starts.push(op1(pi1.starts.shift()));\n }\n return [pi0];\n }\n };\n function copyPathinfo(pi) {\n return Lib.extendFlat({}, pi, {\n edgepaths: Lib.extendDeep([], pi.edgepaths),\n paths: Lib.extendDeep([], pi.paths),\n starts: Lib.extendDeep([], pi.starts)\n });\n }\n }\n });\n\n // src/traces/contour/close_boundaries.js\n var require_close_boundaries = __commonJS({\n \"src/traces/contour/close_boundaries.js\"(exports, module) {\n \"use strict\";\n module.exports = function(pathinfo, contours) {\n var pi0 = pathinfo[0];\n var z = pi0.z;\n var i;\n switch (contours.type) {\n case \"levels\":\n var edgeVal2 = Math.min(z[0][0], z[0][1]);\n for (i = 0; i < pathinfo.length; i++) {\n var pi = pathinfo[i];\n pi.prefixBoundary = !pi.edgepaths.length && (edgeVal2 > pi.level || pi.starts.length && edgeVal2 === pi.level);\n }\n break;\n case \"constraint\":\n pi0.prefixBoundary = false;\n if (pi0.edgepaths.length) return;\n var na = pi0.x.length;\n var nb = pi0.y.length;\n var boundaryMax = -Infinity;\n var boundaryMin = Infinity;\n for (i = 0; i < nb; i++) {\n boundaryMin = Math.min(boundaryMin, z[i][0]);\n boundaryMin = Math.min(boundaryMin, z[i][na - 1]);\n boundaryMax = Math.max(boundaryMax, z[i][0]);\n boundaryMax = Math.max(boundaryMax, z[i][na - 1]);\n }\n for (i = 1; i < na - 1; i++) {\n boundaryMin = Math.min(boundaryMin, z[0][i]);\n boundaryMin = Math.min(boundaryMin, z[nb - 1][i]);\n boundaryMax = Math.max(boundaryMax, z[0][i]);\n boundaryMax = Math.max(boundaryMax, z[nb - 1][i]);\n }\n var contoursValue = contours.value;\n var v1, v2;\n switch (contours._operation) {\n case \">\":\n if (contoursValue > boundaryMax) {\n pi0.prefixBoundary = true;\n }\n break;\n case \"<\":\n if (contoursValue < boundaryMin || pi0.starts.length && contoursValue === boundaryMin) {\n pi0.prefixBoundary = true;\n }\n break;\n case \"[]\":\n v1 = Math.min(contoursValue[0], contoursValue[1]);\n v2 = Math.max(contoursValue[0], contoursValue[1]);\n if (v2 < boundaryMin || v1 > boundaryMax || pi0.starts.length && v2 === boundaryMin) {\n pi0.prefixBoundary = true;\n }\n break;\n case \"][\":\n v1 = Math.min(contoursValue[0], contoursValue[1]);\n v2 = Math.max(contoursValue[0], contoursValue[1]);\n if (v1 < boundaryMin && v2 > boundaryMax) {\n pi0.prefixBoundary = true;\n }\n break;\n }\n break;\n }\n };\n }\n });\n\n // src/traces/contour/plot.js\n var require_plot6 = __commonJS({\n \"src/traces/contour/plot.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var Colorscale = require_colorscale();\n var svgTextUtils = require_svg_text_utils();\n var Axes = require_axes();\n var setConvert = require_set_convert();\n var heatmapPlot = require_plot5();\n var makeCrossings = require_make_crossings();\n var findAllPaths = require_find_all_paths();\n var emptyPathinfo = require_empty_pathinfo();\n var convertToConstraints = require_convert_to_constraints();\n var closeBoundaries = require_close_boundaries();\n var constants = require_constants16();\n var costConstants = constants.LABELOPTIMIZER;\n exports.plot = function plot(gd, plotinfo, cdcontours, contourLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(contourLayer, cdcontours, \"contour\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var x = cd0.x;\n var y = cd0.y;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n var heatmapColoringLayer = Lib.ensureSingle(plotGroup, \"g\", \"heatmapcoloring\");\n var cdheatmaps = [];\n if (contours.coloring === \"heatmap\") {\n cdheatmaps = [cd];\n }\n heatmapPlot(gd, plotinfo, cdheatmaps, heatmapColoringLayer);\n makeCrossings(pathinfo);\n findAllPaths(pathinfo);\n var leftedge = xa.c2p(x[0], true);\n var rightedge = xa.c2p(x[x.length - 1], true);\n var bottomedge = ya.c2p(y[0], true);\n var topedge = ya.c2p(y[y.length - 1], true);\n var perimeter = [\n [leftedge, topedge],\n [rightedge, topedge],\n [rightedge, bottomedge],\n [leftedge, bottomedge]\n ];\n var fillPathinfo = pathinfo;\n if (contours.type === \"constraint\") {\n fillPathinfo = convertToConstraints(pathinfo, contours._operation);\n }\n makeBackground(plotGroup, perimeter, contours);\n makeFills(plotGroup, fillPathinfo, perimeter, contours);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours);\n clipGaps(plotGroup, plotinfo, gd, cd0, perimeter);\n });\n };\n function makeBackground(plotgroup, perimeter, contours) {\n var bggroup = Lib.ensureSingle(plotgroup, \"g\", \"contourbg\");\n var bgfill = bggroup.selectAll(\"path\").data(contours.coloring === \"fill\" ? [0] : []);\n bgfill.enter().append(\"path\");\n bgfill.exit().remove();\n bgfill.attr(\"d\", \"M\" + perimeter.join(\"L\") + \"Z\").style(\"stroke\", \"none\");\n }\n function makeFills(plotgroup, pathinfo, perimeter, contours) {\n var hasFills = contours.coloring === \"fill\" || contours.type === \"constraint\" && contours._operation !== \"=\";\n var boundaryPath = \"M\" + perimeter.join(\"L\") + \"Z\";\n if (hasFills) {\n closeBoundaries(pathinfo, contours);\n }\n var fillgroup = Lib.ensureSingle(plotgroup, \"g\", \"contourfill\");\n var fillitems = fillgroup.selectAll(\"path\").data(hasFills ? pathinfo : []);\n fillitems.enter().append(\"path\");\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n var fullpath = (pi.prefixBoundary ? boundaryPath : \"\") + joinAllPaths(pi, perimeter);\n if (!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this).attr(\"d\", fullpath).style(\"stroke\", \"none\");\n }\n });\n }\n function joinAllPaths(pi, perimeter) {\n var fullpath = \"\";\n var i = 0;\n var startsleft = pi.edgepaths.map(function(v, i2) {\n return i2;\n });\n var newloop = true;\n var endpt;\n var newendpt;\n var cnt;\n var nexti;\n var possiblei;\n var addpath;\n function istop(pt) {\n return Math.abs(pt[1] - perimeter[0][1]) < 0.01;\n }\n function isbottom(pt) {\n return Math.abs(pt[1] - perimeter[2][1]) < 0.01;\n }\n function isleft(pt) {\n return Math.abs(pt[0] - perimeter[0][0]) < 0.01;\n }\n function isright(pt) {\n return Math.abs(pt[0] - perimeter[2][0]) < 0.01;\n }\n while (startsleft.length) {\n addpath = Drawing.smoothopen(pi.edgepaths[i], pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, \"L\");\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n for (cnt = 0; cnt < 4; cnt++) {\n if (!endpt) {\n Lib.log(\"Missing end?\", i, pi);\n break;\n }\n if (istop(endpt) && !isright(endpt)) newendpt = perimeter[1];\n else if (isleft(endpt)) newendpt = perimeter[0];\n else if (isbottom(endpt)) newendpt = perimeter[3];\n else if (isright(endpt)) newendpt = perimeter[2];\n for (possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n if (Math.abs(endpt[0] - newendpt[0]) < 0.01) {\n if (Math.abs(endpt[0] - ptNew[0]) < 0.01 && (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if (Math.abs(endpt[1] - newendpt[1]) < 0.01) {\n if (Math.abs(endpt[1] - ptNew[1]) < 0.01 && (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log(\n \"endpt to newendpt is not vert. or horz.\",\n endpt,\n newendpt,\n ptNew\n );\n }\n }\n endpt = newendpt;\n if (nexti >= 0) break;\n fullpath += \"L\" + newendpt;\n }\n if (nexti === pi.edgepaths.length) {\n Lib.log(\"unclosed perimeter path\");\n break;\n }\n i = nexti;\n newloop = startsleft.indexOf(i) === -1;\n if (newloop) {\n i = startsleft[0];\n fullpath += \"Z\";\n }\n }\n for (i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i], pi.smoothing);\n }\n return fullpath;\n }\n function makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours) {\n var isStatic = gd._context.staticPlot;\n var lineContainer = Lib.ensureSingle(plotgroup, \"g\", \"contourlines\");\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n var linegroup = exports.createLines(lineContainer, showLines || showLabels, pathinfo, isStatic);\n var lineClip = exports.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n var labelGroup = plotgroup.selectAll(\"g.contourlabels\").data(showLabels ? [0] : []);\n labelGroup.exit().remove();\n labelGroup.enter().append(\"g\").classed(\"contourlabels\", true);\n if (showLabels) {\n var labelClipPathData = [];\n var labelData = [];\n Lib.clearLocationCache();\n var contourFormat = exports.labelFormatter(gd, cd0);\n var dummyText = Drawing.tester.append(\"text\").attr(\"data-notex\", 1).call(Drawing.font, contours.labelfont);\n var xa = pathinfo[0].xaxis;\n var ya = pathinfo[0].yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var xRng = xa.range;\n var yRng = ya.range;\n var xMin = Lib.aggNums(Math.min, null, cd0.x);\n var xMax = Lib.aggNums(Math.max, null, cd0.x);\n var yMin = Lib.aggNums(Math.min, null, cd0.y);\n var yMax = Lib.aggNums(Math.max, null, cd0.y);\n var x0 = Math.max(xa.c2p(xMin, true), 0);\n var x1 = Math.min(xa.c2p(xMax, true), xLen);\n var y0 = Math.max(ya.c2p(yMax, true), 0);\n var y1 = Math.min(ya.c2p(yMin, true), yLen);\n var bounds = {};\n if (xRng[0] < xRng[1]) {\n bounds.left = x0;\n bounds.right = x1;\n } else {\n bounds.left = x1;\n bounds.right = x0;\n }\n if (yRng[0] < yRng[1]) {\n bounds.top = y0;\n bounds.bottom = y1;\n } else {\n bounds.top = y1;\n bounds.bottom = y0;\n }\n bounds.middle = (bounds.top + bounds.bottom) / 2;\n bounds.center = (bounds.left + bounds.right) / 2;\n labelClipPathData.push([\n [bounds.left, bounds.top],\n [bounds.right, bounds.top],\n [bounds.right, bounds.bottom],\n [bounds.left, bounds.bottom]\n ]);\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n var normLength = constants.LABELDISTANCE * plotDiagonal / Math.max(1, pathinfo.length / constants.LABELINCREASE);\n linegroup.each(function(d) {\n var textOpts = exports.calcTextOpts(d.level, contourFormat, dummyText, gd);\n d3.select(this).selectAll(\"path\").each(function() {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if (!pathBounds) return;\n if (pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n var maxLabels = Math.min(\n Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX\n );\n for (var i = 0; i < maxLabels; i++) {\n var loc = exports.findBestTextLocation(\n path,\n pathBounds,\n textOpts,\n labelData,\n bounds\n );\n if (!loc) break;\n exports.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n dummyText.remove();\n exports.drawLabels(\n labelGroup,\n labelData,\n gd,\n lineClip,\n clipLinesForLabels ? labelClipPathData : null\n );\n }\n if (showLabels && !showLines) linegroup.remove();\n }\n exports.createLines = function(lineContainer, makeLines, pathinfo, isStatic) {\n var smoothing = pathinfo[0].smoothing;\n var linegroup = lineContainer.selectAll(\"g.contourlevel\").data(makeLines ? pathinfo : []);\n linegroup.exit().remove();\n linegroup.enter().append(\"g\").classed(\"contourlevel\", true);\n if (makeLines) {\n var opencontourlines = linegroup.selectAll(\"path.openline\").data(function(d) {\n return d.pedgepaths || d.edgepaths;\n });\n opencontourlines.exit().remove();\n opencontourlines.enter().append(\"path\").classed(\"openline\", true);\n opencontourlines.attr(\"d\", function(d) {\n return Drawing.smoothopen(d, smoothing);\n }).style(\"stroke-miterlimit\", 1).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n var closedcontourlines = linegroup.selectAll(\"path.closedline\").data(function(d) {\n return d.ppaths || d.paths;\n });\n closedcontourlines.exit().remove();\n closedcontourlines.enter().append(\"path\").classed(\"closedline\", true);\n closedcontourlines.attr(\"d\", function(d) {\n return Drawing.smoothclosed(d, smoothing);\n }).style(\"stroke-miterlimit\", 1).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n }\n return linegroup;\n };\n exports.createLineClip = function(lineContainer, clipLinesForLabels, gd, uid) {\n var clips = gd._fullLayout._clips;\n var clipId = clipLinesForLabels ? \"clipline\" + uid : null;\n var lineClip = clips.selectAll(\"#\" + clipId).data(clipLinesForLabels ? [0] : []);\n lineClip.exit().remove();\n lineClip.enter().append(\"clipPath\").classed(\"contourlineclip\", true).attr(\"id\", clipId);\n Drawing.setClipUrl(lineContainer, clipId, gd);\n return lineClip;\n };\n exports.labelFormatter = function(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var contours = trace.contours;\n var formatAxis = {\n type: \"linear\",\n _id: \"ycontour\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n if (contours.labelformat) {\n formatAxis.tickformat = contours.labelformat;\n setConvert(formatAxis, fullLayout);\n } else {\n var cOpts = Colorscale.extractOpts(trace);\n if (cOpts && cOpts.colorbar && cOpts.colorbar._axis) {\n formatAxis = cOpts.colorbar._axis;\n } else {\n if (contours.type === \"constraint\") {\n var value = contours.value;\n if (Lib.isArrayOrTypedArray(value)) {\n formatAxis.range = [value[0], value[value.length - 1]];\n } else formatAxis.range = [value, value];\n } else {\n formatAxis.range = [contours.start, contours.end];\n formatAxis.nticks = (contours.end - contours.start) / contours.size;\n }\n if (formatAxis.range[0] === formatAxis.range[1]) {\n formatAxis.range[1] += formatAxis.range[0] || 1;\n }\n if (!formatAxis.nticks) formatAxis.nticks = 1e3;\n setConvert(formatAxis, fullLayout);\n Axes.prepTicks(formatAxis);\n formatAxis._tmin = null;\n formatAxis._tmax = null;\n }\n }\n return function(v) {\n return Axes.tickText(formatAxis, v).text;\n };\n };\n exports.calcTextOpts = function(level, contourFormat, dummyText, gd) {\n var text = contourFormat(level);\n dummyText.text(text).call(svgTextUtils.convertToTspans, gd);\n var el = dummyText.node();\n var bBox = Drawing.bBox(el, true);\n return {\n text,\n width: bBox.width,\n height: bBox.height,\n fontSize: +el.style[\"font-size\"].replace(\"px\", \"\"),\n level,\n dy: (bBox.top + bBox.bottom) / 2\n };\n };\n exports.findBestTextLocation = function(path, pathBounds, textOpts, labelData, plotBounds) {\n var textWidth = textOpts.width;\n var p0, dp, pMax, pMin, loc;\n if (pathBounds.isClosed) {\n dp = pathBounds.len / costConstants.INITIALSEARCHPOINTS;\n p0 = pathBounds.min + dp / 2;\n pMax = pathBounds.max;\n } else {\n dp = (pathBounds.len - textWidth) / (costConstants.INITIALSEARCHPOINTS + 1);\n p0 = pathBounds.min + dp + textWidth / 2;\n pMax = pathBounds.max - (dp + textWidth) / 2;\n }\n var cost = Infinity;\n for (var j = 0; j < costConstants.ITERATIONS; j++) {\n for (var p = p0; p < pMax; p += dp) {\n var newLocation = Lib.getTextLocation(path, pathBounds.total, p, textWidth);\n var newCost = locationCost(newLocation, textOpts, labelData, plotBounds);\n if (newCost < cost) {\n cost = newCost;\n loc = newLocation;\n pMin = p;\n }\n }\n if (cost > costConstants.MAXCOST * 2) break;\n if (j) dp /= 2;\n p0 = pMin - dp / 2;\n pMax = p0 + dp * 1.5;\n }\n if (cost <= costConstants.MAXCOST) return loc;\n };\n function locationCost(loc, textOpts, labelData, bounds) {\n var halfWidth = textOpts.width / 2;\n var halfHeight = textOpts.height / 2;\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var dx = Math.cos(theta) * halfWidth;\n var dy = Math.sin(theta) * halfWidth;\n var normX = (x > bounds.center ? bounds.right - x : x - bounds.left) / (dx + Math.abs(Math.sin(theta) * halfHeight));\n var normY = (y > bounds.middle ? bounds.bottom - y : y - bounds.top) / (Math.abs(dy) + Math.cos(theta) * halfHeight);\n if (normX < 1 || normY < 1) return Infinity;\n var cost = costConstants.EDGECOST * (1 / (normX - 1) + 1 / (normY - 1));\n cost += costConstants.ANGLECOST * theta * theta;\n var x1 = x - dx;\n var y1 = y - dy;\n var x2 = x + dx;\n var y2 = y + dy;\n for (var i = 0; i < labelData.length; i++) {\n var labeli = labelData[i];\n var dxd = Math.cos(labeli.theta) * labeli.width / 2;\n var dyd = Math.sin(labeli.theta) * labeli.width / 2;\n var dist = Lib.segmentDistance(\n x1,\n y1,\n x2,\n y2,\n labeli.x - dxd,\n labeli.y - dyd,\n labeli.x + dxd,\n labeli.y + dyd\n ) * 2 / (textOpts.height + labeli.height);\n var sameLevel = labeli.level === textOpts.level;\n var distOffset = sameLevel ? costConstants.SAMELEVELDISTANCE : 1;\n if (dist <= distOffset) return Infinity;\n var distFactor = costConstants.NEIGHBORCOST * (sameLevel ? costConstants.SAMELEVELFACTOR : 1);\n cost += distFactor / (dist - distOffset);\n }\n return cost;\n }\n exports.addLabelData = function(loc, textOpts, labelData, labelClipPathData) {\n var fontSize = textOpts.fontSize;\n var w = textOpts.width + fontSize / 3;\n var h = Math.max(0, textOpts.height - fontSize / 3);\n var x = loc.x;\n var y = loc.y;\n var theta = loc.theta;\n var sin = Math.sin(theta);\n var cos = Math.cos(theta);\n var rotateXY = function(dx, dy) {\n return [\n x + dx * cos - dy * sin,\n y + dx * sin + dy * cos\n ];\n };\n var bBoxPts = [\n rotateXY(-w / 2, -h / 2),\n rotateXY(-w / 2, h / 2),\n rotateXY(w / 2, h / 2),\n rotateXY(w / 2, -h / 2)\n ];\n labelData.push({\n text: textOpts.text,\n x,\n y,\n dy: textOpts.dy,\n theta,\n level: textOpts.level,\n width: w,\n height: h\n });\n labelClipPathData.push(bBoxPts);\n };\n exports.drawLabels = function(labelGroup, labelData, gd, lineClip, labelClipPathData) {\n var labels = labelGroup.selectAll(\"text\").data(labelData, function(d) {\n return d.text + \",\" + d.x + \",\" + d.y + \",\" + d.theta;\n });\n labels.exit().remove();\n labels.enter().append(\"text\").attr({\n \"data-notex\": 1,\n \"text-anchor\": \"middle\"\n }).each(function(d) {\n var x = d.x + Math.sin(d.theta) * d.dy;\n var y = d.y - Math.cos(d.theta) * d.dy;\n d3.select(this).text(d.text).attr({\n x,\n y,\n transform: \"rotate(\" + 180 * d.theta / Math.PI + \" \" + x + \" \" + y + \")\"\n }).call(svgTextUtils.convertToTspans, gd);\n });\n if (labelClipPathData) {\n var clipPath = \"\";\n for (var i = 0; i < labelClipPathData.length; i++) {\n clipPath += \"M\" + labelClipPathData[i].join(\"L\") + \"Z\";\n }\n var lineClipPath = Lib.ensureSingle(lineClip, \"path\", \"\");\n lineClipPath.attr(\"d\", clipPath);\n }\n };\n function clipGaps(plotGroup, plotinfo, gd, cd0, perimeter) {\n var trace = cd0.trace;\n var clips = gd._fullLayout._clips;\n var clipId = \"clip\" + trace.uid;\n var clipPath = clips.selectAll(\"#\" + clipId).data(trace.connectgaps ? [] : [0]);\n clipPath.enter().append(\"clipPath\").classed(\"contourclip\", true).attr(\"id\", clipId);\n clipPath.exit().remove();\n if (trace.connectgaps === false) {\n var clipPathInfo = {\n // fraction of the way from missing to present point\n // to draw the boundary.\n // if you make this 1 (or 1-epsilon) then a point in\n // a sea of missing data will disappear entirely.\n level: 0.9,\n crossings: {},\n starts: [],\n edgepaths: [],\n paths: [],\n xaxis: plotinfo.xaxis,\n yaxis: plotinfo.yaxis,\n x: cd0.x,\n y: cd0.y,\n // 0 = no data, 1 = data\n z: makeClipMask(cd0),\n smoothing: 0\n };\n makeCrossings([clipPathInfo]);\n findAllPaths([clipPathInfo]);\n closeBoundaries([clipPathInfo], { type: \"levels\" });\n var path = Lib.ensureSingle(clipPath, \"path\", \"\");\n path.attr(\n \"d\",\n (clipPathInfo.prefixBoundary ? \"M\" + perimeter.join(\"L\") + \"Z\" : \"\") + joinAllPaths(clipPathInfo, perimeter)\n );\n } else clipId = null;\n Drawing.setClipUrl(plotGroup, clipId, gd);\n }\n function makeClipMask(cd0) {\n var empties = cd0.trace._emptypoints;\n var z = [];\n var m = cd0.z.length;\n var n = cd0.z[0].length;\n var i;\n var row = [];\n var emptyPoint;\n for (i = 0; i < n; i++) row.push(1);\n for (i = 0; i < m; i++) z.push(row.slice());\n for (i = 0; i < empties.length; i++) {\n emptyPoint = empties[i];\n z[emptyPoint[0]][emptyPoint[1]] = 0;\n }\n cd0.zmask = z;\n return z;\n }\n }\n });\n\n // src/traces/contour/make_color_map.js\n var require_make_color_map = __commonJS({\n \"src/traces/contour/make_color_map.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Colorscale = require_colorscale();\n var endPlus = require_end_plus();\n module.exports = function makeColorMap(trace) {\n var contours = trace.contours;\n var start = contours.start;\n var end = endPlus(contours);\n var cs = contours.size || 1;\n var nc = Math.floor((end - start) / cs) + 1;\n var extra = contours.coloring === \"lines\" ? 0 : 1;\n var cOpts = Colorscale.extractOpts(trace);\n if (!isFinite(cs)) {\n cs = 1;\n nc = 1;\n }\n var scl = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n var len = scl.length;\n var domain = new Array(len);\n var range = new Array(len);\n var si, i;\n var zmin0 = cOpts.min;\n var zmax0 = cOpts.max;\n if (contours.coloring === \"heatmap\") {\n for (i = 0; i < len; i++) {\n si = scl[i];\n domain[i] = si[0] * (zmax0 - zmin0) + zmin0;\n range[i] = si[1];\n }\n var zRange = d3.extent([\n zmin0,\n zmax0,\n contours.start,\n contours.start + cs * (nc - 1)\n ]);\n var zmin = zRange[zmin0 < zmax0 ? 0 : 1];\n var zmax = zRange[zmin0 < zmax0 ? 1 : 0];\n if (zmin !== zmin0) {\n domain.splice(0, 0, zmin);\n range.splice(0, 0, range[0]);\n }\n if (zmax !== zmax0) {\n domain.push(zmax);\n range.push(range[range.length - 1]);\n }\n } else {\n var zRangeInput = trace._input && (typeof trace._input.zmin === \"number\" && typeof trace._input.zmax === \"number\");\n if (zRangeInput && (start <= zmin0 || end >= zmax0)) {\n if (start <= zmin0) start = zmin0;\n if (end >= zmax0) end = zmax0;\n nc = Math.floor((end - start) / cs) + 1;\n extra = 0;\n }\n for (i = 0; i < len; i++) {\n si = scl[i];\n domain[i] = (si[0] * (nc + extra - 1) - extra / 2) * cs + start;\n range[i] = si[1];\n }\n if (zRangeInput || trace.autocontour) {\n if (domain[0] > zmin0) {\n domain.unshift(zmin0);\n range.unshift(range[0]);\n }\n if (domain[domain.length - 1] < zmax0) {\n domain.push(zmax0);\n range.push(range[range.length - 1]);\n }\n }\n }\n return Colorscale.makeColorScaleFunc(\n { domain, range },\n { noNumericCheck: true }\n );\n };\n }\n });\n\n // src/traces/contour/style.js\n var require_style7 = __commonJS({\n \"src/traces/contour/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var heatmapStyle = require_style6();\n var makeColorMap = require_make_color_map();\n module.exports = function style(gd) {\n var contours = d3.select(gd).selectAll(\"g.contour\");\n contours.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n contours.each(function(d) {\n var c = d3.select(this);\n var trace = d[0].trace;\n var contours2 = trace.contours;\n var line = trace.line;\n var cs = contours2.size || 1;\n var start = contours2.start;\n var isConstraintType = contours2.type === \"constraint\";\n var colorLines = !isConstraintType && contours2.coloring === \"lines\";\n var colorFills = !isConstraintType && contours2.coloring === \"fill\";\n var colorMap = colorLines || colorFills ? makeColorMap(trace) : null;\n c.selectAll(\"g.contourlevel\").each(function(d2) {\n d3.select(this).selectAll(\"path\").call(\n Drawing.lineGroupStyle,\n line.width,\n colorLines ? colorMap(d2.level) : line.color,\n line.dash\n );\n });\n var labelFont = contours2.labelfont;\n c.selectAll(\"g.contourlabels text\").each(function(d2) {\n Drawing.font(d3.select(this), {\n weight: labelFont.weight,\n style: labelFont.style,\n variant: labelFont.variant,\n textcase: labelFont.textcase,\n lineposition: labelFont.lineposition,\n shadow: labelFont.shadow,\n family: labelFont.family,\n size: labelFont.size,\n color: labelFont.color || (colorLines ? colorMap(d2.level) : line.color)\n });\n });\n if (isConstraintType) {\n c.selectAll(\"g.contourfill path\").style(\"fill\", trace.fillcolor);\n } else if (colorFills) {\n var firstFill;\n c.selectAll(\"g.contourfill path\").style(\"fill\", function(d2) {\n if (firstFill === void 0) firstFill = d2.level;\n return colorMap(d2.level + 0.5 * cs);\n });\n if (firstFill === void 0) firstFill = start;\n c.selectAll(\"g.contourbg path\").style(\"fill\", colorMap(firstFill - 0.5 * cs));\n }\n });\n heatmapStyle(gd);\n };\n }\n });\n\n // src/traces/contour/colorbar.js\n var require_colorbar3 = __commonJS({\n \"src/traces/contour/colorbar.js\"(exports, module) {\n \"use strict\";\n var Colorscale = require_colorscale();\n var makeColorMap = require_make_color_map();\n var endPlus = require_end_plus();\n function calc(gd, trace, opts) {\n var contours = trace.contours;\n var line = trace.line;\n var cs = contours.size || 1;\n var coloring = contours.coloring;\n var colorMap = makeColorMap(trace, { isColorbar: true });\n if (coloring === \"heatmap\") {\n var cOpts = Colorscale.extractOpts(trace);\n opts._fillgradient = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n opts._zrange = [cOpts.min, cOpts.max];\n } else if (coloring === \"fill\") {\n opts._fillcolor = colorMap;\n }\n opts._line = {\n color: coloring === \"lines\" ? colorMap : line.color,\n width: contours.showlines !== false ? line.width : 0,\n dash: line.dash\n };\n opts._levels = {\n start: contours.start,\n end: endPlus(contours),\n size: cs\n };\n }\n module.exports = {\n min: \"zmin\",\n max: \"zmax\",\n calc\n };\n }\n });\n\n // src/traces/contour/hover.js\n var require_hover8 = __commonJS({\n \"src/traces/contour/hover.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var heatmapHoverPoints = require_hover5();\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n opts.isContour = true;\n var hoverData = heatmapHoverPoints(pointData, xval, yval, hovermode, opts);\n if (hoverData) {\n hoverData.forEach(function(hoverPt) {\n var trace = hoverPt.trace;\n if (trace.contours.type === \"constraint\") {\n if (trace.fillcolor && Color2.opacity(trace.fillcolor)) {\n hoverPt.color = Color2.addOpacity(trace.fillcolor, 1);\n } else if (trace.contours.showlines && Color2.opacity(trace.line.color)) {\n hoverPt.color = Color2.addOpacity(trace.line.color, 1);\n }\n }\n });\n }\n return hoverData;\n };\n }\n });\n\n // src/traces/histogram2dcontour/index.js\n var require_histogram2dcontour = __commonJS({\n \"src/traces/histogram2dcontour/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes29(),\n supplyDefaults: require_defaults24(),\n crossTraceDefaults: require_cross_trace_defaults3(),\n calc: require_calc10(),\n plot: require_plot6().plot,\n layerName: \"contourlayer\",\n style: require_style7(),\n colorbar: require_colorbar3(),\n hoverPoints: require_hover8(),\n moduleType: \"trace\",\n name: \"histogram2dcontour\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"contour\", \"histogram\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/histogram2dcontour.js\n var require_histogram2dcontour2 = __commonJS({\n \"lib/histogram2dcontour.js\"(exports, module) {\n \"use strict\";\n module.exports = require_histogram2dcontour();\n }\n });\n\n // src/traces/contour/constraint_defaults.js\n var require_constraint_defaults = __commonJS({\n \"src/traces/contour/constraint_defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var handleLabelDefaults = require_label_defaults2();\n var Color2 = require_color();\n var addOpacity = Color2.addOpacity;\n var opacity = Color2.opacity;\n var filterOps = require_filter_ops();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var CONSTRAINT_REDUCTION = filterOps.CONSTRAINT_REDUCTION;\n var COMPARISON_OPS2 = filterOps.COMPARISON_OPS2;\n module.exports = function handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor, opts) {\n var contours = traceOut.contours;\n var showLines, lineColor, fillColor;\n var operation = coerce(\"contours.operation\");\n contours._operation = CONSTRAINT_REDUCTION[operation];\n handleConstraintValueDefaults(coerce, contours);\n if (operation === \"=\") {\n showLines = contours.showlines = true;\n } else {\n showLines = coerce(\"contours.showlines\");\n fillColor = coerce(\"fillcolor\", addOpacity(\n (traceIn.line || {}).color || defaultColor,\n 0.5\n ));\n }\n if (showLines) {\n var lineDfltColor = fillColor && opacity(fillColor) ? addOpacity(traceOut.fillcolor, 1) : defaultColor;\n lineColor = coerce(\"line.color\", lineDfltColor);\n coerce(\"line.width\", 2);\n coerce(\"line.dash\");\n }\n coerce(\"line.smoothing\");\n handleLabelDefaults(coerce, layout, lineColor, opts);\n };\n function handleConstraintValueDefaults(coerce, contours) {\n var zvalue;\n if (COMPARISON_OPS2.indexOf(contours.operation) === -1) {\n coerce(\"contours.value\", [0, 1]);\n if (!isArrayOrTypedArray(contours.value)) {\n if (isNumeric(contours.value)) {\n zvalue = parseFloat(contours.value);\n contours.value = [zvalue, zvalue + 1];\n }\n } else if (contours.value.length > 2) {\n contours.value = contours.value.slice(2);\n } else if (contours.length === 0) {\n contours.value = [0, 1];\n } else if (contours.length < 2) {\n zvalue = parseFloat(contours.value[0]);\n contours.value = [zvalue, zvalue + 1];\n } else {\n contours.value = [\n parseFloat(contours.value[0]),\n parseFloat(contours.value[1])\n ];\n }\n } else {\n coerce(\"contours.value\", 0);\n if (!isNumeric(contours.value)) {\n if (isArrayOrTypedArray(contours.value)) {\n contours.value = parseFloat(contours.value[0]);\n } else {\n contours.value = 0;\n }\n }\n }\n }\n }\n });\n\n // src/traces/contour/defaults.js\n var require_defaults25 = __commonJS({\n \"src/traces/contour/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYZDefaults = require_xyz_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleConstraintDefaults = require_constraint_defaults();\n var handleContoursDefaults = require_contours_defaults();\n var handleStyleDefaults = require_style_defaults3();\n var handleHeatmapLabelDefaults = require_label_defaults();\n var attributes = require_attributes28();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hoverongaps\");\n coerce(\"hovertemplate\");\n var isConstraint = coerce(\"contours.type\") === \"constraint\";\n coerce(\"connectgaps\", Lib.isArray1D(traceOut.z));\n if (isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor);\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout);\n }\n if (traceOut.contours && traceOut.contours.coloring === \"heatmap\") {\n handleHeatmapLabelDefaults(coerce, layout);\n }\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/contour/index.js\n var require_contour = __commonJS({\n \"src/traces/contour/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes28(),\n supplyDefaults: require_defaults25(),\n calc: require_calc10(),\n plot: require_plot6().plot,\n style: require_style7(),\n colorbar: require_colorbar3(),\n hoverPoints: require_hover8(),\n moduleType: \"trace\",\n name: \"contour\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"contour\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/contour.js\n var require_contour2 = __commonJS({\n \"lib/contour.js\"(exports, module) {\n \"use strict\";\n module.exports = require_contour();\n }\n });\n\n // src/traces/scatterternary/attributes.js\n var require_attributes30 = __commonJS({\n \"src/traces/scatterternary/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var colorScaleAttrs = require_attributes8();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = {\n a: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n b: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n c: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n sum: {\n valType: \"number\",\n dflt: 0,\n min: 0,\n editType: \"calc\"\n },\n mode: extendFlat({}, scatterAttrs.mode, { dflt: \"markers\" }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"a\", \"b\", \"c\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash,\n backoff: scatterLineAttrs.backoff,\n shape: extendFlat(\n {},\n scatterLineAttrs.shape,\n { values: [\"linear\", \"spline\"] }\n ),\n smoothing: scatterLineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n cliponaxis: scatterAttrs.cliponaxis,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n marker: extendFlat(\n {\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n angle: scatterMarkerAttrs.angle,\n angleref: scatterMarkerAttrs.angleref,\n standoff: scatterMarkerAttrs.standoff,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat(\n {\n width: scatterMarkerLineAttrs.width,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker.line\")\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\")\n ),\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"a\", \"b\", \"c\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs()\n };\n }\n });\n\n // src/traces/scatterternary/defaults.js\n var require_defaults26 = __commonJS({\n \"src/traces/scatterternary/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes30();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var a = coerce(\"a\");\n var b = coerce(\"b\");\n var c = coerce(\"c\");\n var len;\n if (a) {\n len = a.length;\n if (b) {\n len = Math.min(len, b.length);\n if (c) len = Math.min(len, c.length);\n } else if (c) len = Math.min(len, c.length);\n else len = 0;\n } else if (b && c) {\n len = Math.min(b.length, c.length);\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"sum\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n var defaultMode = len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scatterternary/format_labels.js\n var require_format_labels2 = __commonJS({\n \"src/traces/scatterternary/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n labels.aLabel = Axes.tickText(subplot.aaxis, cdi.a, true).text;\n labels.bLabel = Axes.tickText(subplot.baxis, cdi.b, true).text;\n labels.cLabel = Axes.tickText(subplot.caxis, cdi.c, true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scatterternary/calc.js\n var require_calc11 = __commonJS({\n \"src/traces/scatterternary/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var dataArrays = [\"a\", \"b\", \"c\"];\n var arraysToFill = { a: [\"b\", \"c\"], b: [\"a\", \"c\"], c: [\"a\", \"b\"] };\n module.exports = function calc(gd, trace) {\n var ternary = gd._fullLayout[trace.subplot];\n var displaySum = ternary.sum;\n var normSum = trace.sum || displaySum;\n var arrays = { a: trace.a, b: trace.b, c: trace.c };\n var ids = trace.ids;\n var i, j, dataArray, newArray, fillArray1, fillArray2;\n for (i = 0; i < dataArrays.length; i++) {\n dataArray = dataArrays[i];\n if (arrays[dataArray]) continue;\n fillArray1 = arrays[arraysToFill[dataArray][0]];\n fillArray2 = arrays[arraysToFill[dataArray][1]];\n newArray = new Array(fillArray1.length);\n for (j = 0; j < fillArray1.length; j++) {\n newArray[j] = normSum - fillArray1[j] - fillArray2[j];\n }\n arrays[dataArray] = newArray;\n }\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var a, b, c, norm, x, y;\n for (i = 0; i < serieslen; i++) {\n a = arrays.a[i];\n b = arrays.b[i];\n c = arrays.c[i];\n if (isNumeric(a) && isNumeric(b) && isNumeric(c)) {\n a = +a;\n b = +b;\n c = +c;\n norm = displaySum / (a + b + c);\n if (norm !== 1) {\n a *= norm;\n b *= norm;\n c *= norm;\n }\n y = a;\n x = c - b;\n cd[i] = { x, y, a, b, c };\n if (ids) {\n cd[i].id = ids[i];\n }\n } else cd[i] = { x: false, y: false };\n }\n calcMarkerSize(trace, serieslen);\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scatterternary/plot.js\n var require_plot7 = __commonJS({\n \"src/traces/scatterternary/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n module.exports = function plot(gd, ternary, moduleCalcData) {\n var plotContainer = ternary.plotContainer;\n plotContainer.select(\".scatterlayer\").selectAll(\"*\").remove();\n var xa = ternary.xaxis;\n var ya = ternary.yaxis;\n var plotinfo = {\n xaxis: xa,\n yaxis: ya,\n plot: plotContainer,\n layerClipId: ternary._hasClipOnAxisFalse ? ternary.clipIdRelative : null\n };\n var scatterLayer = ternary.layers.frontplot.select(\"g.scatterlayer\");\n for (var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n if (cdi.length) {\n cdi[0].trace._xA = xa;\n cdi[0].trace._yA = ya;\n }\n }\n scatterPlot(gd, plotinfo, moduleCalcData, scatterLayer);\n };\n }\n });\n\n // src/traces/scatterternary/hover.js\n var require_hover9 = __commonJS({\n \"src/traces/scatterternary/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n module.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n var yFracUp = 1 - newPointData.y0 / pointData.ya._length;\n var xLen = pointData.xa._length;\n var xMin = xLen * yFracUp / 2;\n var xMax = xLen - xMin;\n newPointData.x0 = Math.max(Math.min(newPointData.x0, xMax), xMin);\n newPointData.x1 = Math.max(Math.min(newPointData.x1, xMax), xMin);\n return scatterPointData;\n }\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n var subplot = newPointData.subplot;\n newPointData.a = cdi.a;\n newPointData.b = cdi.b;\n newPointData.c = cdi.c;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(cdi, trace, fullLayout);\n newPointData.aLabel = labels.aLabel;\n newPointData.bLabel = labels.bLabel;\n newPointData.cLabel = labels.cLabel;\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var text = [];\n function textPart(ax, val) {\n text.push(ax._hovertitle + \": \" + val);\n }\n if (!trace.hovertemplate) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"a\", \"b\", \"c\"];\n if (parts.indexOf(\"a\") !== -1) textPart(subplot.aaxis, newPointData.aLabel);\n if (parts.indexOf(\"b\") !== -1) textPart(subplot.baxis, newPointData.bLabel);\n if (parts.indexOf(\"c\") !== -1) textPart(subplot.caxis, newPointData.cLabel);\n }\n newPointData.extraText = text.join(\"
\");\n newPointData.hovertemplate = trace.hovertemplate;\n return scatterPointData;\n };\n }\n });\n\n // src/traces/scatterternary/event_data.js\n var require_event_data4 = __commonJS({\n \"src/traces/scatterternary/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n if (cd[pointNumber]) {\n var cdi = cd[pointNumber];\n out.a = cdi.a;\n out.b = cdi.b;\n out.c = cdi.c;\n } else {\n out.a = pt.a;\n out.b = pt.b;\n out.c = pt.c;\n }\n return out;\n };\n }\n });\n\n // src/plots/ternary/ternary.js\n var require_ternary = __commonJS({\n \"src/plots/ternary/ternary.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var _ = Lib._;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var setConvert = require_set_convert();\n var extendFlat = require_extend().extendFlat;\n var Plots = require_plots();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var dragHelpers = require_helpers5();\n var freeMode = dragHelpers.freeMode;\n var rectMode = dragHelpers.rectMode;\n var Titles = require_titles();\n var prepSelect = require_selections().prepSelect;\n var selectOnClick = require_selections().selectOnClick;\n var clearOutline = require_selections().clearOutline;\n var clearSelectionsCache = require_selections().clearSelectionsCache;\n var constants = require_constants2();\n function Ternary(options, fullLayout) {\n this.id = options.id;\n this.graphDiv = options.graphDiv;\n this.init(fullLayout);\n this.makeFramework(fullLayout);\n this.updateFx(fullLayout);\n this.aTickLayout = null;\n this.bTickLayout = null;\n this.cTickLayout = null;\n }\n module.exports = Ternary;\n var proto = Ternary.prototype;\n proto.init = function(fullLayout) {\n this.container = fullLayout._ternarylayer;\n this.defs = fullLayout._defs;\n this.layoutId = fullLayout._uid;\n this.traceHash = {};\n this.layers = {};\n };\n proto.plot = function(ternaryCalcData, fullLayout) {\n var _this = this;\n var ternaryLayout = fullLayout[_this.id];\n var graphSize = fullLayout._size;\n _this._hasClipOnAxisFalse = false;\n for (var i = 0; i < ternaryCalcData.length; i++) {\n var trace = ternaryCalcData[i][0].trace;\n if (trace.cliponaxis === false) {\n _this._hasClipOnAxisFalse = true;\n break;\n }\n }\n _this.updateLayers(ternaryLayout);\n _this.adjustLayout(ternaryLayout, graphSize);\n Plots.generalUpdatePerTraceModule(_this.graphDiv, _this, ternaryCalcData, ternaryLayout);\n _this.layers.plotbg.select(\"path\").call(Color2.fill, ternaryLayout.bgcolor);\n };\n proto.makeFramework = function(fullLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var ternaryLayout = fullLayout[_this.id];\n var clipId = _this.clipId = \"clip\" + _this.layoutId + _this.id;\n var clipIdRelative = _this.clipIdRelative = \"clip-relative\" + _this.layoutId + _this.id;\n _this.clipDef = Lib.ensureSingleById(fullLayout._clips, \"clipPath\", clipId, function(s) {\n s.append(\"path\").attr(\"d\", \"M0,0Z\");\n });\n _this.clipDefRelative = Lib.ensureSingleById(fullLayout._clips, \"clipPath\", clipIdRelative, function(s) {\n s.append(\"path\").attr(\"d\", \"M0,0Z\");\n });\n _this.plotContainer = Lib.ensureSingle(_this.container, \"g\", _this.id);\n _this.updateLayers(ternaryLayout);\n Drawing.setClipUrl(_this.layers.backplot, clipId, gd);\n Drawing.setClipUrl(_this.layers.grids, clipId, gd);\n };\n proto.updateFx = function(fullLayout) {\n fullLayout._ternarylayer.selectAll(\"g.toplevel\").style(\"cursor\", fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\");\n };\n proto.updateLayers = function(ternaryLayout) {\n var _this = this;\n var layers = _this.layers;\n var plotLayers = [\"draglayer\", \"plotbg\", \"backplot\", \"grids\"];\n if (ternaryLayout.aaxis.layer === \"below traces\") {\n plotLayers.push(\"aaxis\", \"aline\");\n }\n if (ternaryLayout.baxis.layer === \"below traces\") {\n plotLayers.push(\"baxis\", \"bline\");\n }\n if (ternaryLayout.caxis.layer === \"below traces\") {\n plotLayers.push(\"caxis\", \"cline\");\n }\n plotLayers.push(\"frontplot\");\n if (ternaryLayout.aaxis.layer === \"above traces\") {\n plotLayers.push(\"aaxis\", \"aline\");\n }\n if (ternaryLayout.baxis.layer === \"above traces\") {\n plotLayers.push(\"baxis\", \"bline\");\n }\n if (ternaryLayout.caxis.layer === \"above traces\") {\n plotLayers.push(\"caxis\", \"cline\");\n }\n var toplevel = _this.plotContainer.selectAll(\"g.toplevel\").data(plotLayers, String);\n var grids = [\"agrid\", \"bgrid\", \"cgrid\"];\n toplevel.enter().append(\"g\").attr(\"class\", function(d) {\n return \"toplevel \" + d;\n }).each(function(d) {\n var s = d3.select(this);\n layers[d] = s;\n if (d === \"frontplot\") {\n s.append(\"g\").classed(\"scatterlayer\", true);\n } else if (d === \"backplot\") {\n s.append(\"g\").classed(\"maplayer\", true);\n } else if (d === \"plotbg\") {\n s.append(\"path\").attr(\"d\", \"M0,0Z\");\n } else if (d === \"aline\" || d === \"bline\" || d === \"cline\") {\n s.append(\"path\");\n } else if (d === \"grids\") {\n grids.forEach(function(d2) {\n layers[d2] = s.append(\"g\").classed(\"grid \" + d2, true);\n });\n }\n });\n toplevel.order();\n };\n var whRatio = Math.sqrt(4 / 3);\n proto.adjustLayout = function(ternaryLayout, graphSize) {\n var _this = this;\n var domain = ternaryLayout.domain;\n var xDomainCenter = (domain.x[0] + domain.x[1]) / 2;\n var yDomainCenter = (domain.y[0] + domain.y[1]) / 2;\n var xDomain = domain.x[1] - domain.x[0];\n var yDomain = domain.y[1] - domain.y[0];\n var wmax = xDomain * graphSize.w;\n var hmax = yDomain * graphSize.h;\n var sum = ternaryLayout.sum;\n var amin = ternaryLayout.aaxis.min;\n var bmin = ternaryLayout.baxis.min;\n var cmin = ternaryLayout.caxis.min;\n var x0, y0, w, h, xDomainFinal, yDomainFinal;\n if (wmax > whRatio * hmax) {\n h = hmax;\n w = h * whRatio;\n } else {\n w = wmax;\n h = w / whRatio;\n }\n xDomainFinal = xDomain * w / wmax;\n yDomainFinal = yDomain * h / hmax;\n x0 = graphSize.l + graphSize.w * xDomainCenter - w / 2;\n y0 = graphSize.t + graphSize.h * (1 - yDomainCenter) - h / 2;\n _this.x0 = x0;\n _this.y0 = y0;\n _this.w = w;\n _this.h = h;\n _this.sum = sum;\n _this.xaxis = {\n type: \"linear\",\n range: [amin + 2 * cmin - sum, sum - amin - 2 * bmin],\n domain: [\n xDomainCenter - xDomainFinal / 2,\n xDomainCenter + xDomainFinal / 2\n ],\n _id: \"x\"\n };\n setConvert(_this.xaxis, _this.graphDiv._fullLayout);\n _this.xaxis.setScale();\n _this.xaxis.isPtWithinRange = function(d) {\n return d.a >= _this.aaxis.range[0] && d.a <= _this.aaxis.range[1] && d.b >= _this.baxis.range[1] && d.b <= _this.baxis.range[0] && d.c >= _this.caxis.range[1] && d.c <= _this.caxis.range[0];\n };\n _this.yaxis = {\n type: \"linear\",\n range: [amin, sum - bmin - cmin],\n domain: [\n yDomainCenter - yDomainFinal / 2,\n yDomainCenter + yDomainFinal / 2\n ],\n _id: \"y\"\n };\n setConvert(_this.yaxis, _this.graphDiv._fullLayout);\n _this.yaxis.setScale();\n _this.yaxis.isPtWithinRange = function() {\n return true;\n };\n var yDomain0 = _this.yaxis.domain[0];\n var aaxis = _this.aaxis = extendFlat({}, ternaryLayout.aaxis, {\n range: [amin, sum - bmin - cmin],\n side: \"left\",\n // tickangle = 'auto' means 0 anyway for a y axis, need to coerce to 0 here\n // so we can shift by 30.\n tickangle: (+ternaryLayout.aaxis.tickangle || 0) - 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: \"free\",\n position: 0,\n _id: \"y\",\n _length: w\n });\n setConvert(aaxis, _this.graphDiv._fullLayout);\n aaxis.setScale();\n var baxis = _this.baxis = extendFlat({}, ternaryLayout.baxis, {\n range: [sum - amin - cmin, bmin],\n side: \"bottom\",\n domain: _this.xaxis.domain,\n anchor: \"free\",\n position: 0,\n _id: \"x\",\n _length: w\n });\n setConvert(baxis, _this.graphDiv._fullLayout);\n baxis.setScale();\n var caxis = _this.caxis = extendFlat({}, ternaryLayout.caxis, {\n range: [sum - amin - bmin, cmin],\n side: \"right\",\n tickangle: (+ternaryLayout.caxis.tickangle || 0) + 30,\n domain: [yDomain0, yDomain0 + yDomainFinal * whRatio],\n anchor: \"free\",\n position: 0,\n _id: \"y\",\n _length: w\n });\n setConvert(caxis, _this.graphDiv._fullLayout);\n caxis.setScale();\n var triangleClip = \"M\" + x0 + \",\" + (y0 + h) + \"h\" + w + \"l-\" + w / 2 + \",-\" + h + \"Z\";\n _this.clipDef.select(\"path\").attr(\"d\", triangleClip);\n _this.layers.plotbg.select(\"path\").attr(\"d\", triangleClip);\n var triangleClipRelative = \"M0,\" + h + \"h\" + w + \"l-\" + w / 2 + \",-\" + h + \"Z\";\n _this.clipDefRelative.select(\"path\").attr(\"d\", triangleClipRelative);\n var plotTransform = strTranslate(x0, y0);\n _this.plotContainer.selectAll(\".scatterlayer,.maplayer\").attr(\"transform\", plotTransform);\n _this.clipDefRelative.select(\"path\").attr(\"transform\", null);\n var bTransform = strTranslate(x0 - baxis._offset, y0 + h);\n _this.layers.baxis.attr(\"transform\", bTransform);\n _this.layers.bgrid.attr(\"transform\", bTransform);\n var aTransform = strTranslate(x0 + w / 2, y0) + \"rotate(30)\" + strTranslate(0, -aaxis._offset);\n _this.layers.aaxis.attr(\"transform\", aTransform);\n _this.layers.agrid.attr(\"transform\", aTransform);\n var cTransform = strTranslate(x0 + w / 2, y0) + \"rotate(-30)\" + strTranslate(0, -caxis._offset);\n _this.layers.caxis.attr(\"transform\", cTransform);\n _this.layers.cgrid.attr(\"transform\", cTransform);\n _this.drawAxes(true);\n _this.layers.aline.select(\"path\").attr(\"d\", aaxis.showline ? \"M\" + x0 + \",\" + (y0 + h) + \"l\" + w / 2 + \",-\" + h : \"M0,0\").call(Color2.stroke, aaxis.linecolor || \"#000\").style(\"stroke-width\", (aaxis.linewidth || 0) + \"px\");\n _this.layers.bline.select(\"path\").attr(\"d\", baxis.showline ? \"M\" + x0 + \",\" + (y0 + h) + \"h\" + w : \"M0,0\").call(Color2.stroke, baxis.linecolor || \"#000\").style(\"stroke-width\", (baxis.linewidth || 0) + \"px\");\n _this.layers.cline.select(\"path\").attr(\"d\", caxis.showline ? \"M\" + (x0 + w / 2) + \",\" + y0 + \"l\" + w / 2 + \",\" + h : \"M0,0\").call(Color2.stroke, caxis.linecolor || \"#000\").style(\"stroke-width\", (caxis.linewidth || 0) + \"px\");\n if (!_this.graphDiv._context.staticPlot) {\n _this.initInteractions();\n }\n Drawing.setClipUrl(\n _this.layers.frontplot,\n _this._hasClipOnAxisFalse ? null : _this.clipId,\n _this.graphDiv\n );\n };\n proto.drawAxes = function(doTitles) {\n var _this = this;\n var gd = _this.graphDiv;\n var titlesuffix = _this.id.substr(7) + \"title\";\n var layers = _this.layers;\n var aaxis = _this.aaxis;\n var baxis = _this.baxis;\n var caxis = _this.caxis;\n _this.drawAx(aaxis);\n _this.drawAx(baxis);\n _this.drawAx(caxis);\n if (doTitles) {\n var apad = Math.max(\n aaxis.showticklabels ? aaxis.tickfont.size / 2 : 0,\n (caxis.showticklabels ? caxis.tickfont.size * 0.75 : 0) + (caxis.ticks === \"outside\" ? caxis.ticklen * 0.87 : 0)\n );\n var bpad = (baxis.showticklabels ? baxis.tickfont.size : 0) + (baxis.ticks === \"outside\" ? baxis.ticklen : 0) + 3;\n layers[\"a-title\"] = Titles.draw(gd, \"a\" + titlesuffix, {\n propContainer: aaxis,\n propName: _this.id + \".aaxis.title\",\n placeholder: _(gd, \"Click to enter Component A title\"),\n attributes: {\n x: _this.x0 + _this.w / 2,\n y: _this.y0 - aaxis.title.font.size / 3 - apad,\n \"text-anchor\": \"middle\"\n }\n });\n layers[\"b-title\"] = Titles.draw(gd, \"b\" + titlesuffix, {\n propContainer: baxis,\n propName: _this.id + \".baxis.title\",\n placeholder: _(gd, \"Click to enter Component B title\"),\n attributes: {\n x: _this.x0 - bpad,\n y: _this.y0 + _this.h + baxis.title.font.size * 0.83 + bpad,\n \"text-anchor\": \"middle\"\n }\n });\n layers[\"c-title\"] = Titles.draw(gd, \"c\" + titlesuffix, {\n propContainer: caxis,\n propName: _this.id + \".caxis.title\",\n placeholder: _(gd, \"Click to enter Component C title\"),\n attributes: {\n x: _this.x0 + _this.w + bpad,\n y: _this.y0 + _this.h + caxis.title.font.size * 0.83 + bpad,\n \"text-anchor\": \"middle\"\n }\n });\n }\n };\n proto.drawAx = function(ax) {\n var _this = this;\n var gd = _this.graphDiv;\n var axName = ax._name;\n var axLetter = axName.charAt(0);\n var axId = ax._id;\n var axLayer = _this.layers[axName];\n var counterAngle = 30;\n var stashKey = axLetter + \"tickLayout\";\n var newTickLayout = strTickLayout(ax);\n if (_this[stashKey] !== newTickLayout) {\n axLayer.selectAll(\".\" + axId + \"tick\").remove();\n _this[stashKey] = newTickLayout;\n }\n ax.setScale();\n var vals = Axes.calcTicks(ax);\n var valsClipped = Axes.clipEnds(ax, vals);\n var transFn = Axes.makeTransTickFn(ax);\n var tickSign = Axes.getTickSigns(ax)[2];\n var caRad = Lib.deg2rad(counterAngle);\n var pad = tickSign * (ax.linewidth || 1) / 2;\n var len = tickSign * ax.ticklen;\n var w = _this.w;\n var h = _this.h;\n var tickPath = axLetter === \"b\" ? \"M0,\" + pad + \"l\" + Math.sin(caRad) * len + \",\" + Math.cos(caRad) * len : \"M\" + pad + \",0l\" + Math.cos(caRad) * len + \",\" + -Math.sin(caRad) * len;\n var gridPath = {\n a: \"M0,0l\" + h + \",-\" + w / 2,\n b: \"M0,0l-\" + w / 2 + \",-\" + h,\n c: \"M0,0l-\" + h + \",\" + w / 2\n }[axLetter];\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === \"inside\" ? valsClipped : vals,\n layer: axLayer,\n path: tickPath,\n transFn,\n crisp: false\n });\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: _this.layers[axLetter + \"grid\"],\n path: gridPath,\n transFn,\n crisp: false\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: axLayer,\n transFn,\n labelFns: Axes.makeLabelFns(ax, 0, counterAngle)\n });\n };\n function strTickLayout(axLayout) {\n return axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n }\n var CLEN = constants.MINZOOM / 2 + 0.87;\n var BLPATH = \"m-0.87,.5h\" + CLEN + \"v3h-\" + (CLEN + 5.2) + \"l\" + (CLEN / 2 + 2.6) + \",-\" + (CLEN * 0.87 + 4.5) + \"l2.6,1.5l-\" + CLEN / 2 + \",\" + CLEN * 0.87 + \"Z\";\n var BRPATH = \"m0.87,.5h-\" + CLEN + \"v3h\" + (CLEN + 5.2) + \"l-\" + (CLEN / 2 + 2.6) + \",-\" + (CLEN * 0.87 + 4.5) + \"l-2.6,1.5l\" + CLEN / 2 + \",\" + CLEN * 0.87 + \"Z\";\n var TOPPATH = \"m0,1l\" + CLEN / 2 + \",\" + CLEN * 0.87 + \"l2.6,-1.5l-\" + (CLEN / 2 + 2.6) + \",-\" + (CLEN * 0.87 + 4.5) + \"l-\" + (CLEN / 2 + 2.6) + \",\" + (CLEN * 0.87 + 4.5) + \"l2.6,1.5l\" + CLEN / 2 + \",-\" + CLEN * 0.87 + \"Z\";\n var STARTMARKER = \"m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z\";\n var SHOWZOOMOUTTIP = true;\n proto.clearOutline = function() {\n clearSelectionsCache(this.dragOptions);\n clearOutline(this.dragOptions.gd);\n };\n proto.initInteractions = function() {\n var _this = this;\n var dragger = _this.layers.plotbg.select(\"path\").node();\n var gd = _this.graphDiv;\n var zoomLayer = gd._fullLayout._zoomlayer;\n var scaleX;\n var scaleY;\n this.dragOptions = {\n element: dragger,\n gd,\n plotinfo: {\n id: _this.id,\n domain: gd._fullLayout[_this.id].domain,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n subplot: _this.id,\n prepFn: function(e, startX, startY) {\n _this.dragOptions.xaxes = [_this.xaxis];\n _this.dragOptions.yaxes = [_this.yaxis];\n scaleX = gd._fullLayout._invScaleX;\n scaleY = gd._fullLayout._invScaleY;\n var dragModeNow = _this.dragOptions.dragmode = gd._fullLayout.dragmode;\n if (freeMode(dragModeNow)) _this.dragOptions.minDrag = 1;\n else _this.dragOptions.minDrag = void 0;\n if (dragModeNow === \"zoom\") {\n _this.dragOptions.moveFn = zoomMove;\n _this.dragOptions.clickFn = clickZoomPan;\n _this.dragOptions.doneFn = zoomDone;\n zoomPrep(e, startX, startY);\n } else if (dragModeNow === \"pan\") {\n _this.dragOptions.moveFn = plotDrag;\n _this.dragOptions.clickFn = clickZoomPan;\n _this.dragOptions.doneFn = dragDone;\n panPrep();\n _this.clearOutline(gd);\n } else if (rectMode(dragModeNow) || freeMode(dragModeNow)) {\n prepSelect(e, startX, startY, _this.dragOptions, dragModeNow);\n }\n }\n };\n var x0, y0, mins0, span0, mins, lum, path0, dimmed, zb, corners;\n function makeUpdate(_mins) {\n var attrs = {};\n attrs[_this.id + \".aaxis.min\"] = _mins.a;\n attrs[_this.id + \".baxis.min\"] = _mins.b;\n attrs[_this.id + \".caxis.min\"] = _mins.c;\n return attrs;\n }\n function clickZoomPan(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n removeZoombox(gd);\n if (numClicks === 2) {\n gd.emit(\"plotly_doubleclick\", null);\n Registry.call(\"_guiRelayout\", gd, makeUpdate({ a: 0, b: 0, c: 0 }));\n }\n if (clickMode.indexOf(\"select\") > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, _this.dragOptions);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n function zoomPrep(e, startX, startY) {\n var dragBBox = dragger.getBoundingClientRect();\n x0 = startX - dragBBox.left;\n y0 = startY - dragBBox.top;\n gd._fullLayout._calcInverseTransform(gd);\n var inverse = gd._fullLayout._invTransform;\n var transformedCoords = Lib.apply3DTransform(inverse)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n span0 = _this.aaxis.range[1] - mins0.a;\n lum = tinycolor(_this.graphDiv._fullLayout[_this.id].bgcolor).getLuminance();\n path0 = \"M0,\" + _this.h + \"L\" + _this.w / 2 + \", 0L\" + _this.w + \",\" + _this.h + \"Z\";\n dimmed = false;\n zb = zoomLayer.append(\"path\").attr(\"class\", \"zoombox\").attr(\"transform\", strTranslate(_this.x0, _this.y0)).style({\n fill: lum > 0.2 ? \"rgba(0,0,0,0)\" : \"rgba(255,255,255,0)\",\n \"stroke-width\": 0\n }).attr(\"d\", path0);\n corners = zoomLayer.append(\"path\").attr(\"class\", \"zoombox-corners\").attr(\"transform\", strTranslate(_this.x0, _this.y0)).style({\n fill: Color2.background,\n stroke: Color2.defaultLine,\n \"stroke-width\": 1,\n opacity: 0\n }).attr(\"d\", \"M0,0Z\");\n _this.clearOutline(gd);\n }\n function getAFrac(x, y) {\n return 1 - y / _this.h;\n }\n function getBFrac(x, y) {\n return 1 - (x + (_this.h - y) / Math.sqrt(3)) / _this.w;\n }\n function getCFrac(x, y) {\n return (x - (_this.h - y) / Math.sqrt(3)) / _this.w;\n }\n function zoomMove(dx0, dy0) {\n var x1 = x0 + dx0 * scaleX;\n var y1 = y0 + dy0 * scaleY;\n var afrac = Math.max(0, Math.min(1, getAFrac(x0, y0), getAFrac(x1, y1)));\n var bfrac = Math.max(0, Math.min(1, getBFrac(x0, y0), getBFrac(x1, y1)));\n var cfrac = Math.max(0, Math.min(1, getCFrac(x0, y0), getCFrac(x1, y1)));\n var xLeft = (afrac / 2 + cfrac) * _this.w;\n var xRight = (1 - afrac / 2 - bfrac) * _this.w;\n var xCenter = (xLeft + xRight) / 2;\n var xSpan = xRight - xLeft;\n var yBottom = (1 - afrac) * _this.h;\n var yTop = yBottom - xSpan / whRatio;\n if (xSpan < constants.MINZOOM) {\n mins = mins0;\n zb.attr(\"d\", path0);\n corners.attr(\"d\", \"M0,0Z\");\n } else {\n mins = {\n a: mins0.a + afrac * span0,\n b: mins0.b + bfrac * span0,\n c: mins0.c + cfrac * span0\n };\n zb.attr(\"d\", path0 + \"M\" + xLeft + \",\" + yBottom + \"H\" + xRight + \"L\" + xCenter + \",\" + yTop + \"L\" + xLeft + \",\" + yBottom + \"Z\");\n corners.attr(\"d\", \"M\" + x0 + \",\" + y0 + STARTMARKER + \"M\" + xLeft + \",\" + yBottom + BLPATH + \"M\" + xRight + \",\" + yBottom + BRPATH + \"M\" + xCenter + \",\" + yTop + TOPPATH);\n }\n if (!dimmed) {\n zb.transition().style(\"fill\", lum > 0.2 ? \"rgba(0,0,0,0.4)\" : \"rgba(255,255,255,0.3)\").duration(200);\n corners.transition().style(\"opacity\", 1).duration(200);\n dimmed = true;\n }\n gd.emit(\"plotly_relayouting\", makeUpdate(mins));\n }\n function zoomDone() {\n removeZoombox(gd);\n if (mins === mins0) return;\n Registry.call(\"_guiRelayout\", gd, makeUpdate(mins));\n if (SHOWZOOMOUTTIP && gd.data && gd._context.showTips) {\n Lib.notifier(_(gd, \"Double-click to zoom back out\"), \"long\");\n SHOWZOOMOUTTIP = false;\n }\n }\n function panPrep() {\n mins0 = {\n a: _this.aaxis.range[0],\n b: _this.baxis.range[1],\n c: _this.caxis.range[1]\n };\n mins = mins0;\n }\n function plotDrag(dx, dy) {\n var dxScaled = dx / _this.xaxis._m;\n var dyScaled = dy / _this.yaxis._m;\n mins = {\n a: mins0.a - dyScaled,\n b: mins0.b + (dxScaled + dyScaled) / 2,\n c: mins0.c - (dxScaled - dyScaled) / 2\n };\n var minsorted = [mins.a, mins.b, mins.c].sort(Lib.sorterAsc);\n var minindices = {\n a: minsorted.indexOf(mins.a),\n b: minsorted.indexOf(mins.b),\n c: minsorted.indexOf(mins.c)\n };\n if (minsorted[0] < 0) {\n if (minsorted[1] + minsorted[0] / 2 < 0) {\n minsorted[2] += minsorted[0] + minsorted[1];\n minsorted[0] = minsorted[1] = 0;\n } else {\n minsorted[2] += minsorted[0] / 2;\n minsorted[1] += minsorted[0] / 2;\n minsorted[0] = 0;\n }\n mins = {\n a: minsorted[minindices.a],\n b: minsorted[minindices.b],\n c: minsorted[minindices.c]\n };\n dy = (mins0.a - mins.a) * _this.yaxis._m;\n dx = (mins0.c - mins.c - mins0.b + mins.b) * _this.xaxis._m;\n }\n var plotTransform = strTranslate(_this.x0 + dx, _this.y0 + dy);\n _this.plotContainer.selectAll(\".scatterlayer,.maplayer\").attr(\"transform\", plotTransform);\n var plotTransform2 = strTranslate(-dx, -dy);\n _this.clipDefRelative.select(\"path\").attr(\"transform\", plotTransform2);\n _this.aaxis.range = [mins.a, _this.sum - mins.b - mins.c];\n _this.baxis.range = [_this.sum - mins.a - mins.c, mins.b];\n _this.caxis.range = [_this.sum - mins.a - mins.b, mins.c];\n _this.drawAxes(false);\n if (_this._hasClipOnAxisFalse) {\n _this.plotContainer.select(\".scatterlayer\").selectAll(\".trace\").call(Drawing.hideOutsideRangePoints, _this);\n }\n gd.emit(\"plotly_relayouting\", makeUpdate(mins));\n }\n function dragDone() {\n Registry.call(\"_guiRelayout\", gd, makeUpdate(mins));\n }\n dragger.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = dragger;\n gd._fullLayout._hoversubplot = _this.id;\n };\n dragger.onmouseout = function(evt) {\n if (gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n dragElement.init(this.dragOptions);\n };\n function removeZoombox(gd) {\n d3.select(gd).selectAll(\".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners\").remove();\n }\n }\n });\n\n // src/plots/ternary/layout_attributes.js\n var require_layout_attributes8 = __commonJS({\n \"src/plots/ternary/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var domainAttrs = require_domain().attributes;\n var axesAttrs = require_layout_attributes4();\n var overrideAll = require_edit_types().overrideAll;\n var extendFlat = require_extend().extendFlat;\n var ternaryAxesAttrs = {\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n // TODO does standoff here make sense?\n },\n color: axesAttrs.color,\n // ticks\n tickmode: axesAttrs.minor.tickmode,\n nticks: extendFlat({}, axesAttrs.nticks, { dflt: 6, min: 1 }),\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: extendFlat({}, axesAttrs.showline, { dflt: true }),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, { dflt: true }),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n griddash: axesAttrs.griddash,\n layer: axesAttrs.layer,\n // range\n min: {\n valType: \"number\",\n dflt: 0,\n min: 0\n }\n };\n var attrs = module.exports = overrideAll({\n domain: domainAttrs({ name: \"ternary\" }),\n bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.background\n },\n sum: {\n valType: \"number\",\n dflt: 1,\n min: 0\n },\n aaxis: ternaryAxesAttrs,\n baxis: ternaryAxesAttrs,\n caxis: ternaryAxesAttrs\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n attrs.aaxis.uirevision = attrs.baxis.uirevision = attrs.caxis.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/plots/subplot_defaults.js\n var require_subplot_defaults = __commonJS({\n \"src/plots/subplot_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Template = require_plot_template();\n var handleDomainDefaults = require_domain().defaults;\n module.exports = function handleSubplotDefaults(layoutIn, layoutOut, fullData, opts) {\n var subplotType = opts.type;\n var subplotAttributes = opts.attributes;\n var handleDefaults = opts.handleDefaults;\n var partition = opts.partition || \"x\";\n var ids = layoutOut._subplots[subplotType];\n var idsLength = ids.length;\n var baseId = idsLength && ids[0].replace(/\\d+$/, \"\");\n var subplotLayoutIn, subplotLayoutOut;\n function coerce(attr, dflt) {\n return Lib.coerce(subplotLayoutIn, subplotLayoutOut, subplotAttributes, attr, dflt);\n }\n for (var i = 0; i < idsLength; i++) {\n var id = ids[i];\n if (layoutIn[id]) subplotLayoutIn = layoutIn[id];\n else subplotLayoutIn = layoutIn[id] = {};\n subplotLayoutOut = Template.newContainer(layoutOut, id, baseId);\n if (!opts.noUirevision) coerce(\"uirevision\", layoutOut.uirevision);\n var dfltDomains = {};\n dfltDomains[partition] = [i / idsLength, (i + 1) / idsLength];\n handleDomainDefaults(subplotLayoutOut, layoutOut, coerce, dfltDomains);\n opts.id = id;\n handleDefaults(subplotLayoutIn, subplotLayoutOut, coerce, opts);\n }\n };\n }\n });\n\n // src/plots/ternary/layout_defaults.js\n var require_layout_defaults7 = __commonJS({\n \"src/plots/ternary/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var Template = require_plot_template();\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var layoutAttributes = require_layout_attributes8();\n var axesNames = [\"aaxis\", \"baxis\", \"caxis\"];\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"ternary\",\n attributes: layoutAttributes,\n handleDefaults: handleTernaryDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor\n });\n };\n function handleTernaryDefaults(ternaryLayoutIn, ternaryLayoutOut, coerce, options) {\n var bgColor = coerce(\"bgcolor\");\n var sum = coerce(\"sum\");\n options.bgColor = Color2.combine(bgColor, options.paper_bgcolor);\n var axName, containerIn, containerOut;\n for (var j = 0; j < axesNames.length; j++) {\n axName = axesNames[j];\n containerIn = ternaryLayoutIn[axName] || {};\n containerOut = Template.newContainer(ternaryLayoutOut, axName);\n containerOut._name = axName;\n handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut);\n }\n var aaxis = ternaryLayoutOut.aaxis;\n var baxis = ternaryLayoutOut.baxis;\n var caxis = ternaryLayoutOut.caxis;\n if (aaxis.min + baxis.min + caxis.min >= sum) {\n aaxis.min = 0;\n baxis.min = 0;\n caxis.min = 0;\n if (ternaryLayoutIn.aaxis) delete ternaryLayoutIn.aaxis.min;\n if (ternaryLayoutIn.baxis) delete ternaryLayoutIn.baxis.min;\n if (ternaryLayoutIn.caxis) delete ternaryLayoutIn.caxis.min;\n }\n }\n function handleAxisDefaults(containerIn, containerOut, options, ternaryLayoutOut) {\n var axAttrs = layoutAttributes[containerOut._name];\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, axAttrs, attr, dflt);\n }\n coerce(\"uirevision\", ternaryLayoutOut.uirevision);\n containerOut.type = \"linear\";\n var dfltColor = coerce(\"color\");\n var dfltFontColor = dfltColor !== axAttrs.color.dflt ? dfltColor : options.font.color;\n var axName = containerOut._name;\n var letterUpper = axName.charAt(0).toUpperCase();\n var dfltTitle = \"Component \" + letterUpper;\n var title = coerce(\"title.text\", dfltTitle);\n containerOut._hovertitle = title === dfltTitle ? title : letterUpper;\n Lib.coerceFont(coerce, \"title.font\", options.font, { overrideDflt: {\n size: Lib.bigFont(options.font.size),\n color: dfltFontColor\n } });\n coerce(\"min\");\n handleTickValueDefaults(containerIn, containerOut, coerce, \"linear\");\n handlePrefixSuffixDefaults(containerIn, containerOut, coerce, \"linear\");\n handleTickLabelDefaults(containerIn, containerOut, coerce, \"linear\", {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true\n });\n handleTickMarkDefaults(\n containerIn,\n containerOut,\n coerce,\n { outerTicks: true }\n );\n var showTickLabels = coerce(\"showticklabels\");\n if (showTickLabels) {\n Lib.coerceFont(coerce, \"tickfont\", options.font, { overrideDflt: {\n color: dfltFontColor\n } });\n coerce(\"tickangle\");\n coerce(\"tickformat\");\n }\n handleLineGridDefaults(containerIn, containerOut, coerce, {\n dfltColor,\n bgColor: options.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: axAttrs\n });\n coerce(\"hoverformat\");\n coerce(\"layer\");\n }\n }\n });\n\n // src/plots/ternary/index.js\n var require_ternary2 = __commonJS({\n \"src/plots/ternary/index.js\"(exports) {\n \"use strict\";\n var Ternary = require_ternary();\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var TERNARY = \"ternary\";\n exports.name = TERNARY;\n var attr = exports.attr = \"subplot\";\n exports.idRoot = TERNARY;\n exports.idRegex = exports.attrRegex = counterRegex(TERNARY);\n var attributes = exports.attributes = {};\n attributes[attr] = {\n valType: \"subplotid\",\n dflt: \"ternary\",\n editType: \"calc\"\n };\n exports.layoutAttributes = require_layout_attributes8();\n exports.supplyLayoutDefaults = require_layout_defaults7();\n exports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var ternaryIds = fullLayout._subplots[TERNARY];\n for (var i = 0; i < ternaryIds.length; i++) {\n var ternaryId = ternaryIds[i];\n var ternaryCalcData = getSubplotCalcData(calcData, TERNARY, ternaryId);\n var ternary = fullLayout[ternaryId]._subplot;\n if (!ternary) {\n ternary = new Ternary(\n {\n id: ternaryId,\n graphDiv: gd,\n container: fullLayout._ternarylayer.node()\n },\n fullLayout\n );\n fullLayout[ternaryId]._subplot = ternary;\n }\n ternary.plot(ternaryCalcData, fullLayout, gd._promises);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldTernaryKeys = oldFullLayout._subplots[TERNARY] || [];\n for (var i = 0; i < oldTernaryKeys.length; i++) {\n var oldTernaryKey = oldTernaryKeys[i];\n var oldTernary = oldFullLayout[oldTernaryKey]._subplot;\n if (!newFullLayout[oldTernaryKey] && !!oldTernary) {\n oldTernary.plotContainer.remove();\n oldTernary.clipDef.remove();\n oldTernary.clipDefRelative.remove();\n oldTernary.layers[\"a-title\"].remove();\n oldTernary.layers[\"b-title\"].remove();\n oldTernary.layers[\"c-title\"].remove();\n }\n }\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n fullLayout._ternarylayer.selectAll(\"g.toplevel\").style(\"cursor\", fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\");\n };\n }\n });\n\n // src/traces/scatterternary/index.js\n var require_scatterternary = __commonJS({\n \"src/traces/scatterternary/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes30(),\n supplyDefaults: require_defaults26(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels2(),\n calc: require_calc11(),\n plot: require_plot7(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover9(),\n selectPoints: require_select2(),\n eventData: require_event_data4(),\n moduleType: \"trace\",\n name: \"scatterternary\",\n basePlotModule: require_ternary2(),\n categories: [\"ternary\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scatterternary.js\n var require_scatterternary2 = __commonJS({\n \"lib/scatterternary.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatterternary();\n }\n });\n\n // src/traces/violin/attributes.js\n var require_attributes31 = __commonJS({\n \"src/traces/violin/attributes.js\"(exports, module) {\n \"use strict\";\n var boxAttrs = require_attributes24();\n var extendFlat = require_extend().extendFlat;\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n module.exports = {\n y: boxAttrs.y,\n x: boxAttrs.x,\n x0: boxAttrs.x0,\n y0: boxAttrs.y0,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n name: extendFlat({}, boxAttrs.name, {}),\n orientation: extendFlat({}, boxAttrs.orientation, {}),\n bandwidth: {\n valType: \"number\",\n min: 0,\n editType: \"calc\"\n },\n scalegroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n scalemode: {\n valType: \"enumerated\",\n values: [\"width\", \"count\"],\n dflt: \"width\",\n editType: \"calc\"\n },\n spanmode: {\n valType: \"enumerated\",\n values: [\"soft\", \"hard\", \"manual\"],\n dflt: \"soft\",\n editType: \"calc\"\n },\n span: {\n valType: \"info_array\",\n items: [\n { valType: \"any\", editType: \"calc\" },\n { valType: \"any\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 2,\n editType: \"style\"\n },\n editType: \"plot\"\n },\n fillcolor: boxAttrs.fillcolor,\n points: extendFlat({}, boxAttrs.boxpoints, {}),\n jitter: extendFlat({}, boxAttrs.jitter, {}),\n pointpos: extendFlat({}, boxAttrs.pointpos, {}),\n width: extendFlat({}, boxAttrs.width, {}),\n marker: boxAttrs.marker,\n text: boxAttrs.text,\n hovertext: boxAttrs.hovertext,\n hovertemplate: boxAttrs.hovertemplate,\n quartilemethod: boxAttrs.quartilemethod,\n box: {\n visible: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n width: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.25,\n editType: \"plot\"\n },\n fillcolor: {\n valType: \"color\",\n editType: \"style\"\n },\n line: {\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"plot\"\n },\n meanline: {\n visible: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n editType: \"style\"\n },\n editType: \"plot\"\n },\n side: {\n valType: \"enumerated\",\n values: [\"both\", \"positive\", \"negative\"],\n dflt: \"both\",\n editType: \"calc\"\n },\n offsetgroup: boxAttrs.offsetgroup,\n alignmentgroup: boxAttrs.alignmentgroup,\n selected: boxAttrs.selected,\n unselected: boxAttrs.unselected,\n hoveron: {\n valType: \"flaglist\",\n flags: [\"violins\", \"points\", \"kde\"],\n dflt: \"violins+points+kde\",\n extras: [\"all\"],\n editType: \"style\"\n },\n zorder: boxAttrs.zorder\n };\n }\n });\n\n // src/traces/violin/layout_attributes.js\n var require_layout_attributes9 = __commonJS({\n \"src/traces/violin/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var boxLayoutAttrs = require_layout_attributes7();\n var extendFlat = require_lib().extendFlat;\n module.exports = {\n violinmode: extendFlat({}, boxLayoutAttrs.boxmode, {}),\n violingap: extendFlat({}, boxLayoutAttrs.boxgap, {}),\n violingroupgap: extendFlat({}, boxLayoutAttrs.boxgroupgap, {})\n };\n }\n });\n\n // src/traces/violin/defaults.js\n var require_defaults27 = __commonJS({\n \"src/traces/violin/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var boxDefaults = require_defaults20();\n var attributes = require_attributes31();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);\n }\n boxDefaults.handleSampleDefaults(traceIn, traceOut, coerce, layout);\n if (traceOut.visible === false) return;\n coerce(\"bandwidth\");\n coerce(\"side\");\n var width = coerce(\"width\");\n if (!width) {\n coerce(\"scalegroup\", traceOut.name);\n coerce(\"scalemode\");\n }\n var span = coerce(\"span\");\n var spanmodeDflt;\n if (Array.isArray(span)) spanmodeDflt = \"manual\";\n coerce(\"spanmode\", spanmodeDflt);\n var lineColor = coerce(\"line.color\", (traceIn.marker || {}).color || defaultColor);\n var lineWidth = coerce(\"line.width\");\n var fillColor = coerce(\"fillcolor\", Color2.addOpacity(traceOut.line.color, 0.5));\n boxDefaults.handlePointsDefaults(traceIn, traceOut, coerce, { prefix: \"\" });\n var boxWidth = coerce2(\"box.width\");\n var boxFillColor = coerce2(\"box.fillcolor\", fillColor);\n var boxLineColor = coerce2(\"box.line.color\", lineColor);\n var boxLineWidth = coerce2(\"box.line.width\", lineWidth);\n var boxVisible = coerce(\"box.visible\", Boolean(boxWidth || boxFillColor || boxLineColor || boxLineWidth));\n if (!boxVisible) traceOut.box = { visible: false };\n var meanLineColor = coerce2(\"meanline.color\", lineColor);\n var meanLineWidth = coerce2(\"meanline.width\", lineWidth);\n var meanLineVisible = coerce(\"meanline.visible\", Boolean(meanLineColor || meanLineWidth));\n if (!meanLineVisible) traceOut.meanline = { visible: false };\n coerce(\"quartilemethod\");\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/violin/layout_defaults.js\n var require_layout_defaults8 = __commonJS({\n \"src/traces/violin/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes9();\n var boxLayoutDefaults = require_layout_defaults6();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n boxLayoutDefaults._supply(layoutIn, layoutOut, fullData, coerce, \"violin\");\n };\n }\n });\n\n // src/traces/violin/helpers.js\n var require_helpers13 = __commonJS({\n \"src/traces/violin/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var kernels = {\n gaussian: function(v) {\n return 1 / Math.sqrt(2 * Math.PI) * Math.exp(-0.5 * v * v);\n }\n };\n exports.makeKDE = function(calcItem, trace, vals) {\n var len = vals.length;\n var kernel = kernels.gaussian;\n var bandwidth = calcItem.bandwidth;\n var factor = 1 / (len * bandwidth);\n return function(x) {\n var sum = 0;\n for (var i = 0; i < len; i++) {\n sum += kernel((x - vals[i]) / bandwidth);\n }\n return factor * sum;\n };\n };\n exports.getPositionOnKdePath = function(calcItem, trace, valuePx) {\n var posLetter, valLetter;\n if (trace.orientation === \"h\") {\n posLetter = \"y\";\n valLetter = \"x\";\n } else {\n posLetter = \"x\";\n valLetter = \"y\";\n }\n var pointOnPath = Lib.findPointOnPath(\n calcItem.path,\n valuePx,\n valLetter,\n { pathLength: calcItem.pathLength }\n );\n var posCenterPx = calcItem.posCenterPx;\n var posOnPath0 = pointOnPath[posLetter];\n var posOnPath1 = trace.side === \"both\" ? 2 * posCenterPx - posOnPath0 : posCenterPx;\n return [posOnPath0, posOnPath1];\n };\n exports.getKdeValue = function(calcItem, trace, valueDist) {\n var vals = calcItem.pts.map(exports.extractVal);\n var kde = exports.makeKDE(calcItem, trace, vals);\n return kde(valueDist) / calcItem.posDensityScale;\n };\n exports.extractVal = function(o) {\n return o.v;\n };\n }\n });\n\n // src/traces/violin/calc.js\n var require_calc12 = __commonJS({\n \"src/traces/violin/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var boxCalc = require_calc6();\n var helpers = require_helpers13();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function calc(gd, trace) {\n var cd = boxCalc(gd, trace);\n if (cd[0].t.empty) return cd;\n var fullLayout = gd._fullLayout;\n var valAxis = Axes.getFromId(\n gd,\n trace[trace.orientation === \"h\" ? \"xaxis\" : \"yaxis\"]\n );\n var spanMin = Infinity;\n var spanMax = -Infinity;\n var maxKDE = 0;\n var maxCount = 0;\n for (var i = 0; i < cd.length; i++) {\n var cdi = cd[i];\n var vals = cdi.pts.map(helpers.extractVal);\n var bandwidth = cdi.bandwidth = calcBandwidth(trace, cdi, vals);\n var span = cdi.span = calcSpan(trace, cdi, valAxis, bandwidth);\n if (cdi.min === cdi.max && bandwidth === 0) {\n span = cdi.span = [cdi.min, cdi.max];\n cdi.density = [{ v: 1, t: span[0] }];\n cdi.bandwidth = bandwidth;\n maxKDE = Math.max(maxKDE, 1);\n } else {\n var dist = span[1] - span[0];\n var n = Math.ceil(dist / (bandwidth / 3));\n var step = dist / n;\n if (!isFinite(step) || !isFinite(n)) {\n Lib.error(\"Something went wrong with computing the violin span\");\n cd[0].t.empty = true;\n return cd;\n }\n var kde = helpers.makeKDE(cdi, trace, vals);\n cdi.density = new Array(n);\n for (var k = 0, t = span[0]; t < span[1] + step / 2; k++, t += step) {\n var v = kde(t);\n cdi.density[k] = { v, t };\n maxKDE = Math.max(maxKDE, v);\n }\n }\n maxCount = Math.max(maxCount, vals.length);\n spanMin = Math.min(spanMin, span[0]);\n spanMax = Math.max(spanMax, span[1]);\n }\n var extremes = Axes.findExtremes(valAxis, [spanMin, spanMax], { padded: true });\n trace._extremes[valAxis._id] = extremes;\n if (trace.width) {\n cd[0].t.maxKDE = maxKDE;\n } else {\n var violinScaleGroupStats = fullLayout._violinScaleGroupStats;\n var scaleGroup = trace.scalegroup;\n var groupStats = violinScaleGroupStats[scaleGroup];\n if (groupStats) {\n groupStats.maxKDE = Math.max(groupStats.maxKDE, maxKDE);\n groupStats.maxCount = Math.max(groupStats.maxCount, maxCount);\n } else {\n violinScaleGroupStats[scaleGroup] = {\n maxKDE,\n maxCount\n };\n }\n }\n cd[0].t.labels.kde = Lib._(gd, \"kde:\");\n return cd;\n };\n function silvermanRule(len, ssd, iqr) {\n var a = Math.min(ssd, iqr / 1.349);\n return 1.059 * a * Math.pow(len, -0.2);\n }\n function calcBandwidth(trace, cdi, vals) {\n var span = cdi.max - cdi.min;\n if (!span) {\n if (trace.bandwidth) {\n return trace.bandwidth;\n } else {\n return 0;\n }\n }\n if (trace.bandwidth) {\n return Math.max(trace.bandwidth, span / 1e4);\n } else {\n var len = vals.length;\n var ssd = Lib.stdev(vals, len - 1, cdi.mean);\n return Math.max(\n silvermanRule(len, ssd, cdi.q3 - cdi.q1),\n span / 100\n );\n }\n }\n function calcSpan(trace, cdi, valAxis, bandwidth) {\n var spanmode = trace.spanmode;\n var spanIn = trace.span || [];\n var spanTight = [cdi.min, cdi.max];\n var spanLoose = [cdi.min - 2 * bandwidth, cdi.max + 2 * bandwidth];\n var spanOut;\n function calcSpanItem(index) {\n var s = spanIn[index];\n var sc = valAxis.type === \"multicategory\" ? valAxis.r2c(s) : valAxis.d2c(s, 0, trace[cdi.valLetter + \"calendar\"]);\n return sc === BADNUM ? spanLoose[index] : sc;\n }\n if (spanmode === \"soft\") {\n spanOut = spanLoose;\n } else if (spanmode === \"hard\") {\n spanOut = spanTight;\n } else {\n spanOut = [calcSpanItem(0), calcSpanItem(1)];\n }\n var dummyAx = {\n type: \"linear\",\n range: spanOut\n };\n Axes.setConvert(dummyAx);\n dummyAx.cleanRange();\n return spanOut;\n }\n }\n });\n\n // src/traces/violin/cross_trace_calc.js\n var require_cross_trace_calc4 = __commonJS({\n \"src/traces/violin/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var setPositionOffset = require_cross_trace_calc3().setPositionOffset;\n var orientations = [\"v\", \"h\"];\n module.exports = function crossTraceCalc(gd, plotinfo) {\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n for (var i = 0; i < orientations.length; i++) {\n var orientation = orientations[i];\n var posAxis = orientation === \"h\" ? ya : xa;\n var violinList = [];\n for (var j = 0; j < calcdata.length; j++) {\n var cd = calcdata[j];\n var t = cd[0].t;\n var trace = cd[0].trace;\n if (trace.visible === true && trace.type === \"violin\" && !t.empty && trace.orientation === orientation && trace.xaxis === xa._id && trace.yaxis === ya._id) {\n violinList.push(j);\n }\n }\n setPositionOffset(\"violin\", gd, violinList, posAxis);\n }\n };\n }\n });\n\n // src/traces/violin/plot.js\n var require_plot8 = __commonJS({\n \"src/traces/violin/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var boxPlot = require_plot4();\n var linePoints = require_line_points();\n var helpers = require_helpers13();\n module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n function makePath(pts, trace) {\n var segments = linePoints(pts, {\n xaxis: xa,\n yaxis: ya,\n trace,\n connectGaps: true,\n baseTolerance: 0.75,\n shape: \"spline\",\n simplify: true,\n linearized: true\n });\n return Drawing.smoothopen(segments[0], 1);\n }\n Lib.makeTraceGroups(violinLayer, cdViolins, \"trace violins\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n if (trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n var bPos = t.bPos;\n var bdPos = t.bdPos;\n var valAxis = plotinfo[t.valLetter + \"axis\"];\n var posAxis = plotinfo[t.posLetter + \"axis\"];\n var hasBothSides = trace.side === \"both\";\n var hasPositiveSide = hasBothSides || trace.side === \"positive\";\n var hasNegativeSide = hasBothSides || trace.side === \"negative\";\n var violins = plotGroup.selectAll(\"path.violin\").data(Lib.identity);\n violins.enter().append(\"path\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").attr(\"class\", \"violin\");\n violins.exit().remove();\n violins.each(function(d) {\n var pathSel = d3.select(this);\n var density = d.density;\n var len = density.length;\n var posCenter = posAxis.c2l(d.pos + bPos, true);\n var posCenterPx = posAxis.l2p(posCenter);\n var scale;\n if (trace.width) {\n scale = t.maxKDE / bdPos;\n } else {\n var groupStats = fullLayout._violinScaleGroupStats[trace.scalegroup];\n scale = trace.scalemode === \"count\" ? groupStats.maxKDE / bdPos * (groupStats.maxCount / d.pts.length) : groupStats.maxKDE / bdPos;\n }\n var pathPos, pathNeg, path;\n var i, k, pts, pt;\n if (hasPositiveSide) {\n pts = new Array(len);\n for (i = 0; i < len; i++) {\n pt = pts[i] = {};\n pt[t.posLetter] = posCenter + density[i].v / scale;\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathPos = makePath(pts, trace);\n }\n if (hasNegativeSide) {\n pts = new Array(len);\n for (k = 0, i = len - 1; k < len; k++, i--) {\n pt = pts[k] = {};\n pt[t.posLetter] = posCenter - density[i].v / scale;\n pt[t.valLetter] = valAxis.c2l(density[i].t, true);\n }\n pathNeg = makePath(pts, trace);\n }\n if (hasBothSides) {\n path = pathPos + \"L\" + pathNeg.substr(1) + \"Z\";\n } else {\n var startPt = [posCenterPx, valAxis.c2p(density[0].t)];\n var endPt = [posCenterPx, valAxis.c2p(density[len - 1].t)];\n if (trace.orientation === \"h\") {\n startPt.reverse();\n endPt.reverse();\n }\n if (hasPositiveSide) {\n path = \"M\" + startPt + \"L\" + pathPos.substr(1) + \"L\" + endPt;\n } else {\n path = \"M\" + endPt + \"L\" + pathNeg.substr(1) + \"L\" + startPt;\n }\n }\n pathSel.attr(\"d\", path);\n d.posCenterPx = posCenterPx;\n d.posDensityScale = scale * bdPos;\n d.path = pathSel.node();\n d.pathLength = d.path.getTotalLength() / (hasBothSides ? 2 : 1);\n });\n var boxAttrs = trace.box;\n var boxWidth = boxAttrs.width;\n var boxLineWidth = (boxAttrs.line || {}).width;\n var bdPosScaled;\n var bPosPxOffset;\n if (hasBothSides) {\n bdPosScaled = bdPos * boxWidth;\n bPosPxOffset = 0;\n } else if (hasPositiveSide) {\n bdPosScaled = [0, bdPos * boxWidth / 2];\n bPosPxOffset = boxLineWidth * { x: 1, y: -1 }[t.posLetter];\n } else {\n bdPosScaled = [bdPos * boxWidth / 2, 0];\n bPosPxOffset = boxLineWidth * { x: -1, y: 1 }[t.posLetter];\n }\n boxPlot.plotBoxAndWhiskers(plotGroup, { pos: posAxis, val: valAxis }, trace, {\n bPos,\n bdPos: bdPosScaled,\n bPosPxOffset\n });\n boxPlot.plotBoxMean(plotGroup, { pos: posAxis, val: valAxis }, trace, {\n bPos,\n bdPos: bdPosScaled,\n bPosPxOffset\n });\n var fn;\n if (!trace.box.visible && trace.meanline.visible) {\n fn = Lib.identity;\n }\n var meanPaths = plotGroup.selectAll(\"path.meanline\").data(fn || []);\n meanPaths.enter().append(\"path\").attr(\"class\", \"meanline\").style(\"fill\", \"none\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n meanPaths.exit().remove();\n meanPaths.each(function(d) {\n var v = valAxis.c2p(d.mean, true);\n var p = helpers.getPositionOnKdePath(d, trace, v);\n d3.select(this).attr(\n \"d\",\n trace.orientation === \"h\" ? \"M\" + v + \",\" + p[0] + \"V\" + p[1] : \"M\" + p[0] + \",\" + v + \"H\" + p[1]\n );\n });\n boxPlot.plotPoints(plotGroup, { x: xa, y: ya }, trace, t);\n });\n };\n }\n });\n\n // src/traces/violin/style.js\n var require_style8 = __commonJS({\n \"src/traces/violin/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var stylePoints = require_style2().stylePoints;\n module.exports = function style(gd) {\n var s = d3.select(gd).selectAll(\"g.trace.violins\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var trace = d[0].trace;\n var sel = d3.select(this);\n var box = trace.box || {};\n var boxLine = box.line || {};\n var meanline = trace.meanline || {};\n var meanLineWidth = meanline.width;\n sel.selectAll(\"path.violin\").style(\"stroke-width\", trace.line.width + \"px\").call(Color2.stroke, trace.line.color).call(Color2.fill, trace.fillcolor);\n sel.selectAll(\"path.box\").style(\"stroke-width\", boxLine.width + \"px\").call(Color2.stroke, boxLine.color).call(Color2.fill, box.fillcolor);\n var meanLineStyle = {\n \"stroke-width\": meanLineWidth + \"px\",\n \"stroke-dasharray\": 2 * meanLineWidth + \"px,\" + meanLineWidth + \"px\"\n };\n sel.selectAll(\"path.mean\").style(meanLineStyle).call(Color2.stroke, meanline.color);\n sel.selectAll(\"path.meanline\").style(meanLineStyle).call(Color2.stroke, meanline.color);\n stylePoints(sel, trace, gd);\n });\n };\n }\n });\n\n // src/traces/violin/hover.js\n var require_hover10 = __commonJS({\n \"src/traces/violin/hover.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var Lib = require_lib();\n var Axes = require_axes();\n var boxHoverPoints = require_hover4();\n var helpers = require_helpers13();\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n var hoverLayer = opts.hoverLayer;\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var hoveron = trace.hoveron;\n var hasHoveronViolins = hoveron.indexOf(\"violins\") !== -1;\n var hasHoveronKDE = hoveron.indexOf(\"kde\") !== -1;\n var closeData = [];\n var closePtData;\n var violinLineAttrs;\n if (hasHoveronViolins || hasHoveronKDE) {\n var closeBoxData = boxHoverPoints.hoverOnBoxes(pointData, xval, yval, hovermode);\n if (hasHoveronKDE && closeBoxData.length > 0) {\n var xa = pointData.xa;\n var ya = pointData.ya;\n var pLetter, vLetter, pAxis, vAxis, vVal;\n if (trace.orientation === \"h\") {\n vVal = xval;\n pLetter = \"y\";\n pAxis = ya;\n vLetter = \"x\";\n vAxis = xa;\n } else {\n vVal = yval;\n pLetter = \"x\";\n pAxis = xa;\n vLetter = \"y\";\n vAxis = ya;\n }\n var di = cd[pointData.index];\n if (vVal >= di.span[0] && vVal <= di.span[1]) {\n var kdePointData = Lib.extendFlat({}, pointData);\n var vValPx = vAxis.c2p(vVal, true);\n var kdeVal = helpers.getKdeValue(di, trace, vVal);\n var pOnPath = helpers.getPositionOnKdePath(di, trace, vValPx);\n var paOffset = pAxis._offset;\n var paLength = pAxis._length;\n kdePointData[pLetter + \"0\"] = pOnPath[0];\n kdePointData[pLetter + \"1\"] = pOnPath[1];\n kdePointData[vLetter + \"0\"] = kdePointData[vLetter + \"1\"] = vValPx;\n kdePointData[vLetter + \"Label\"] = vLetter + \": \" + Axes.hoverLabelText(vAxis, vVal, trace[vLetter + \"hoverformat\"]) + \", \" + cd[0].t.labels.kde + \" \" + kdeVal.toFixed(3);\n var medId = 0;\n for (var k = 0; k < closeBoxData.length; k++) {\n if (closeBoxData[k].attr === \"med\") {\n medId = k;\n break;\n }\n }\n kdePointData.spikeDistance = closeBoxData[medId].spikeDistance;\n var spikePosAttr = pLetter + \"Spike\";\n kdePointData[spikePosAttr] = closeBoxData[medId][spikePosAttr];\n closeBoxData[medId].spikeDistance = void 0;\n closeBoxData[medId][spikePosAttr] = void 0;\n kdePointData.hovertemplate = false;\n closeData.push(kdePointData);\n violinLineAttrs = {};\n violinLineAttrs[pLetter + \"1\"] = Lib.constrain(paOffset + pOnPath[0], paOffset, paOffset + paLength);\n violinLineAttrs[pLetter + \"2\"] = Lib.constrain(paOffset + pOnPath[1], paOffset, paOffset + paLength);\n violinLineAttrs[vLetter + \"1\"] = violinLineAttrs[vLetter + \"2\"] = vAxis._offset + vValPx;\n }\n }\n if (hasHoveronViolins) {\n closeData = closeData.concat(closeBoxData);\n }\n }\n if (hoveron.indexOf(\"points\") !== -1) {\n closePtData = boxHoverPoints.hoverOnPoints(pointData, xval, yval);\n }\n var violinLine = hoverLayer.selectAll(\".violinline-\" + trace.uid).data(violinLineAttrs ? [0] : []);\n violinLine.enter().append(\"line\").classed(\"violinline-\" + trace.uid, true).attr(\"stroke-width\", 1.5);\n violinLine.exit().remove();\n violinLine.attr(violinLineAttrs).call(Color2.stroke, pointData.color);\n if (hovermode === \"closest\") {\n if (closePtData) return [closePtData];\n return closeData;\n }\n if (closePtData) {\n closeData.push(closePtData);\n return closeData;\n }\n return closeData;\n };\n }\n });\n\n // src/traces/violin/index.js\n var require_violin = __commonJS({\n \"src/traces/violin/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes31(),\n layoutAttributes: require_layout_attributes9(),\n supplyDefaults: require_defaults27(),\n crossTraceDefaults: require_defaults20().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults8(),\n calc: require_calc12(),\n crossTraceCalc: require_cross_trace_calc4(),\n plot: require_plot8(),\n style: require_style8(),\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover10(),\n selectPoints: require_select4(),\n moduleType: \"trace\",\n name: \"violin\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"symbols\", \"oriented\", \"box-violin\", \"showLegend\", \"violinLayout\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/violin.js\n var require_violin2 = __commonJS({\n \"lib/violin.js\"(exports, module) {\n \"use strict\";\n module.exports = require_violin();\n }\n });\n\n // src/traces/funnel/constants.js\n var require_constants17 = __commonJS({\n \"src/traces/funnel/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n eventDataKeys: [\n \"percentInitial\",\n \"percentPrevious\",\n \"percentTotal\"\n ]\n };\n }\n });\n\n // src/traces/funnel/attributes.js\n var require_attributes32 = __commonJS({\n \"src/traces/funnel/attributes.js\"(exports, module) {\n \"use strict\";\n var barAttrs = require_attributes23();\n var lineAttrs = require_attributes12().line;\n var baseAttrs = require_attributes2();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var constants = require_constants17();\n var extendFlat = require_extend().extendFlat;\n var Color2 = require_color();\n module.exports = {\n x: barAttrs.x,\n x0: barAttrs.x0,\n dx: barAttrs.dx,\n y: barAttrs.y,\n y0: barAttrs.y0,\n dy: barAttrs.dy,\n xperiod: barAttrs.xperiod,\n yperiod: barAttrs.yperiod,\n xperiod0: barAttrs.xperiod0,\n yperiod0: barAttrs.yperiod0,\n xperiodalignment: barAttrs.xperiodalignment,\n yperiodalignment: barAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n hovertext: barAttrs.hovertext,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"name\", \"x\", \"y\", \"text\", \"percent initial\", \"percent previous\", \"percent total\"]\n }),\n textinfo: {\n valType: \"flaglist\",\n flags: [\"label\", \"text\", \"percent initial\", \"percent previous\", \"percent total\", \"value\"],\n extras: [\"none\"],\n editType: \"plot\",\n arrayOk: false\n },\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n text: barAttrs.text,\n textposition: barAttrs.textposition,\n insidetextanchor: extendFlat({}, barAttrs.insidetextanchor, { dflt: \"middle\" }),\n textangle: extendFlat({}, barAttrs.textangle, { dflt: 0 }),\n textfont: barAttrs.textfont,\n insidetextfont: barAttrs.insidetextfont,\n outsidetextfont: barAttrs.outsidetextfont,\n constraintext: barAttrs.constraintext,\n cliponaxis: barAttrs.cliponaxis,\n orientation: extendFlat({}, barAttrs.orientation, {}),\n offset: extendFlat({}, barAttrs.offset, { arrayOk: false }),\n width: extendFlat({}, barAttrs.width, { arrayOk: false }),\n marker: funnelMarker(),\n connector: {\n fillcolor: {\n valType: \"color\",\n editType: \"style\"\n },\n line: {\n color: extendFlat({}, lineAttrs.color, { dflt: Color2.defaultLine }),\n width: extendFlat({}, lineAttrs.width, {\n dflt: 0,\n editType: \"plot\"\n }),\n dash: lineAttrs.dash,\n editType: \"style\"\n },\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n zorder: barAttrs.zorder\n };\n function funnelMarker() {\n var marker = extendFlat({}, barAttrs.marker);\n delete marker.pattern;\n delete marker.cornerradius;\n return marker;\n }\n }\n });\n\n // src/traces/funnel/layout_attributes.js\n var require_layout_attributes10 = __commonJS({\n \"src/traces/funnel/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n funnelmode: {\n valType: \"enumerated\",\n values: [\"stack\", \"group\", \"overlay\"],\n dflt: \"stack\",\n editType: \"calc\"\n },\n funnelgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n funnelgroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/funnel/defaults.js\n var require_defaults28 = __commonJS({\n \"src/traces/funnel/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleGroupingDefaults = require_grouping_defaults();\n var handleText = require_defaults19().handleText;\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes32();\n var Color2 = require_color();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"orientation\", traceOut.y && !traceOut.x ? \"v\" : \"h\");\n coerce(\"offset\");\n coerce(\"width\");\n var text = coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n if (traceOut.textposition !== \"none\" && !traceOut.texttemplate) {\n coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+value\" : \"value\");\n }\n var markerColor = coerce(\"marker.color\", defaultColor);\n coerce(\"marker.line.color\", Color2.defaultLine);\n coerce(\"marker.line.width\");\n var connectorVisible = coerce(\"connector.visible\");\n if (connectorVisible) {\n coerce(\"connector.fillcolor\", defaultFillColor(markerColor));\n var connectorLineWidth = coerce(\"connector.line.width\");\n if (connectorLineWidth) {\n coerce(\"connector.line.color\");\n coerce(\"connector.line.dash\");\n }\n }\n coerce(\"zorder\");\n }\n function defaultFillColor(markerColor) {\n var cBase = Lib.isArrayOrTypedArray(markerColor) ? \"#000\" : markerColor;\n return Color2.addOpacity(cBase, 0.5 * Color2.opacity(cBase));\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n if (traceOut.type === \"funnel\") {\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, fullLayout.funnelmode);\n }\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults\n };\n }\n });\n\n // src/traces/funnel/layout_defaults.js\n var require_layout_defaults9 = __commonJS({\n \"src/traces/funnel/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes10();\n module.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible && trace.type === \"funnel\") {\n hasTraceType = true;\n break;\n }\n }\n if (hasTraceType) {\n coerce(\"funnelmode\");\n coerce(\"funnelgap\", 0.2);\n coerce(\"funnelgroupgap\");\n }\n };\n }\n });\n\n // src/traces/funnel/arrays_to_calcdata.js\n var require_arrays_to_calcdata3 = __commonJS({\n \"src/traces/funnel/arrays_to_calcdata.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function arraysToCalcdata(cd, trace) {\n for (var i = 0; i < cd.length; i++) cd[i].i = i;\n Lib.mergeArray(trace.text, cd, \"tx\");\n Lib.mergeArray(trace.hovertext, cd, \"htx\");\n var marker = trace.marker;\n if (marker) {\n Lib.mergeArray(marker.opacity, cd, \"mo\");\n Lib.mergeArray(marker.color, cd, \"mc\");\n var markerLine = marker.line;\n if (markerLine) {\n Lib.mergeArray(markerLine.color, cd, \"mlc\");\n Lib.mergeArrayCastPositive(markerLine.width, cd, \"mlw\");\n }\n }\n };\n }\n });\n\n // src/traces/funnel/calc.js\n var require_calc13 = __commonJS({\n \"src/traces/funnel/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var arraysToCalcdata = require_arrays_to_calcdata3();\n var calcSelection = require_calc_selection();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var size, pos, origPos, pObj, hasPeriod, pLetter, i, cdi;\n if (trace.orientation === \"h\") {\n size = xa.makeCalcdata(trace, \"x\");\n origPos = ya.makeCalcdata(trace, \"y\");\n pObj = alignPeriod(trace, ya, \"y\", origPos);\n hasPeriod = !!trace.yperiodalignment;\n pLetter = \"y\";\n } else {\n size = ya.makeCalcdata(trace, \"y\");\n origPos = xa.makeCalcdata(trace, \"x\");\n pObj = alignPeriod(trace, xa, \"x\", origPos);\n hasPeriod = !!trace.xperiodalignment;\n pLetter = \"x\";\n }\n pos = pObj.vals;\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n trace._base = [];\n for (i = 0; i < serieslen; i++) {\n if (size[i] < 0) size[i] = BADNUM;\n var connectToNext = false;\n if (size[i] !== BADNUM) {\n if (i + 1 < serieslen && size[i + 1] !== BADNUM) {\n connectToNext = true;\n }\n }\n cdi = cd[i] = {\n p: pos[i],\n s: size[i],\n cNext: connectToNext\n };\n trace._base[i] = -0.5 * cdi.s;\n if (hasPeriod) {\n cd[i].orig_p = origPos[i];\n cd[i][pLetter + \"End\"] = pObj.ends[i];\n cd[i][pLetter + \"Start\"] = pObj.starts[i];\n }\n if (trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n if (i === 0) cd[0].vTotal = 0;\n cd[0].vTotal += fixNum(cdi.s);\n cdi.begR = fixNum(cdi.s) / fixNum(cd[0].s);\n }\n var prevGoodNum;\n for (i = 0; i < serieslen; i++) {\n cdi = cd[i];\n if (cdi.s === BADNUM) continue;\n cdi.sumR = cdi.s / cd[0].vTotal;\n cdi.difR = prevGoodNum !== void 0 ? cdi.s / prevGoodNum : 1;\n prevGoodNum = cdi.s;\n }\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n function fixNum(a) {\n return a === BADNUM ? 0 : a;\n }\n }\n });\n\n // src/traces/funnel/cross_trace_calc.js\n var require_cross_trace_calc5 = __commonJS({\n \"src/traces/funnel/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n module.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var funnels = [];\n var funnelsVert = [];\n var funnelsHorz = [];\n var cd, i;\n for (i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n var isHorizontal = fullTrace.orientation === \"h\";\n if (fullTrace.visible === true && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id && fullTrace.type === \"funnel\") {\n cd = calcdata[i];\n if (isHorizontal) {\n funnelsHorz.push(cd);\n } else {\n funnelsVert.push(cd);\n }\n funnels.push(cd);\n }\n }\n var opts = {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelnorm,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n };\n setGroupPositions(gd, xa, ya, funnelsVert, opts);\n setGroupPositions(gd, ya, xa, funnelsHorz, opts);\n for (i = 0; i < funnels.length; i++) {\n cd = funnels[i];\n for (var j = 0; j < cd.length; j++) {\n if (j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n cd[j].nextP1 = cd[j + 1].p1;\n cd[j].nextS1 = cd[j + 1].s1;\n }\n }\n }\n };\n }\n });\n\n // src/traces/funnel/plot.js\n var require_plot9 = __commonJS({\n \"src/traces/funnel/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var BADNUM = require_numerical().BADNUM;\n var barPlot = require_plot3();\n var clearMinTextSize = require_uniform_text().clearMinTextSize;\n module.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n clearMinTextSize(\"funnel\", fullLayout);\n plotConnectorRegions(gd, plotinfo, cdModule, traceLayer);\n plotConnectorLines(gd, plotinfo, cdModule, traceLayer);\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.funnelmode,\n norm: fullLayout.funnelmode,\n gap: fullLayout.funnelgap,\n groupgap: fullLayout.funnelgroupgap\n });\n };\n function plotConnectorRegions(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var group = Lib.ensureSingle(plotGroup, \"g\", \"regions\");\n if (!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n var isHorizontal = trace.orientation === \"h\";\n var connectors = group.selectAll(\"g.region\").data(Lib.identity);\n connectors.enter().append(\"g\").classed(\"region\", true);\n connectors.exit().remove();\n var len = connectors.size();\n connectors.each(function(di, i) {\n if (i !== len - 1 && !di.cNext) return;\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n var shape = \"\";\n if (x[0] !== BADNUM && y[0] !== BADNUM && x[1] !== BADNUM && y[1] !== BADNUM && x[2] !== BADNUM && y[2] !== BADNUM && x[3] !== BADNUM && y[3] !== BADNUM) {\n if (isHorizontal) {\n shape += \"M\" + x[0] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[2] + \"H\" + x[3] + \"L\" + x[1] + \",\" + y[1] + \"Z\";\n } else {\n shape += \"M\" + x[1] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[3] + \"V\" + y[2] + \"L\" + x[1] + \",\" + y[0] + \"Z\";\n }\n }\n if (shape === \"\") shape = \"M0,0Z\";\n Lib.ensureSingle(d3.select(this), \"path\").attr(\"d\", shape).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n }\n function plotConnectorLines(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var group = Lib.ensureSingle(plotGroup, \"g\", \"lines\");\n if (!trace.connector || !trace.connector.visible || !trace.connector.line.width) {\n group.remove();\n return;\n }\n var isHorizontal = trace.orientation === \"h\";\n var connectors = group.selectAll(\"g.line\").data(Lib.identity);\n connectors.enter().append(\"g\").classed(\"line\", true);\n connectors.exit().remove();\n var len = connectors.size();\n connectors.each(function(di, i) {\n if (i !== len - 1 && !di.cNext) return;\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n var shape = \"\";\n if (x[3] !== void 0 && y[3] !== void 0) {\n if (isHorizontal) {\n shape += \"M\" + x[0] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[2];\n shape += \"M\" + x[1] + \",\" + y[1] + \"L\" + x[3] + \",\" + y[2];\n } else {\n shape += \"M\" + x[1] + \",\" + y[1] + \"L\" + x[2] + \",\" + y[3];\n shape += \"M\" + x[1] + \",\" + y[0] + \"L\" + x[2] + \",\" + y[2];\n }\n }\n if (shape === \"\") shape = \"M0,0Z\";\n Lib.ensureSingle(d3.select(this), \"path\").attr(\"d\", shape).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n }\n function getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n s[3] = sAxis.c2p(di.nextS1, true);\n p[3] = pAxis.c2p(di.nextP1, true);\n return isHorizontal ? [s, p] : [p, s];\n }\n }\n });\n\n // src/traces/funnel/style.js\n var require_style9 = __commonJS({\n \"src/traces/funnel/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var barStyle = require_style4();\n var resizeText = require_uniform_text().resizeText;\n var styleTextPoints = barStyle.styleTextPoints;\n function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g[class^=\"funnellayer\"]').selectAll(\"g.trace\");\n resizeText(gd, s, \"funnel\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n gTrace.selectAll(\".point > path\").each(function(di) {\n if (!di.isBlank) {\n var cont = trace.marker;\n d3.select(this).call(Color2.fill, di.mc || cont.color).call(Color2.stroke, di.mlc || cont.line.color).call(Drawing.dashLine, cont.line.dash, di.mlw || cont.line.width).style(\"opacity\", trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n styleTextPoints(gTrace, trace, gd);\n gTrace.selectAll(\".regions\").each(function() {\n d3.select(this).selectAll(\"path\").style(\"stroke-width\", 0).call(Color2.fill, trace.connector.fillcolor);\n });\n gTrace.selectAll(\".lines\").each(function() {\n var cont = trace.connector.line;\n Drawing.lineGroupStyle(\n d3.select(this).selectAll(\"path\"),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n }\n module.exports = {\n style\n };\n }\n });\n\n // src/traces/funnel/hover.js\n var require_hover11 = __commonJS({\n \"src/traces/funnel/hover.js\"(exports, module) {\n \"use strict\";\n var opacity = require_color().opacity;\n var hoverOnBars = require_hover3().hoverOnBars;\n var formatPercent = require_lib().formatPercent;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var point = hoverOnBars(pointData, xval, yval, hovermode, opts);\n if (!point) return;\n var cd = point.cd;\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var index = point.index;\n var di = cd[index];\n var sizeLetter = isHorizontal ? \"x\" : \"y\";\n point[sizeLetter + \"LabelVal\"] = di.s;\n point.percentInitial = di.begR;\n point.percentInitialLabel = formatPercent(di.begR, 1);\n point.percentPrevious = di.difR;\n point.percentPreviousLabel = formatPercent(di.difR, 1);\n point.percentTotal = di.sumR;\n point.percentTotalLabel = formatPercent(di.sumR, 1);\n var hoverinfo = di.hi || trace.hoverinfo;\n var text = [];\n if (hoverinfo && hoverinfo !== \"none\" && hoverinfo !== \"skip\") {\n var isAll = hoverinfo === \"all\";\n var parts = hoverinfo.split(\"+\");\n var hasFlag = function(flag) {\n return isAll || parts.indexOf(flag) !== -1;\n };\n if (hasFlag(\"percent initial\")) {\n text.push(point.percentInitialLabel + \" of initial\");\n }\n if (hasFlag(\"percent previous\")) {\n text.push(point.percentPreviousLabel + \" of previous\");\n }\n if (hasFlag(\"percent total\")) {\n text.push(point.percentTotalLabel + \" of total\");\n }\n }\n point.extraText = text.join(\"
\");\n point.color = getTraceColor(trace, di);\n return [point];\n };\n function getTraceColor(trace, di) {\n var cont = trace.marker;\n var mc = di.mc || cont.color;\n var mlc = di.mlc || cont.line.color;\n var mlw = di.mlw || cont.line.width;\n if (opacity(mc)) return mc;\n else if (opacity(mlc) && mlw) return mlc;\n }\n }\n });\n\n // src/traces/funnel/event_data.js\n var require_event_data5 = __commonJS({\n \"src/traces/funnel/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (\"percentInitial\" in pt) out.percentInitial = pt.percentInitial;\n if (\"percentPrevious\" in pt) out.percentPrevious = pt.percentPrevious;\n if (\"percentTotal\" in pt) out.percentTotal = pt.percentTotal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n return out;\n };\n }\n });\n\n // src/traces/funnel/index.js\n var require_funnel = __commonJS({\n \"src/traces/funnel/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes32(),\n layoutAttributes: require_layout_attributes10(),\n supplyDefaults: require_defaults28().supplyDefaults,\n crossTraceDefaults: require_defaults28().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults9(),\n calc: require_calc13(),\n crossTraceCalc: require_cross_trace_calc5(),\n plot: require_plot9(),\n style: require_style9().style,\n hoverPoints: require_hover11(),\n eventData: require_event_data5(),\n selectPoints: require_select3(),\n moduleType: \"trace\",\n name: \"funnel\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"oriented\", \"showLegend\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/funnel.js\n var require_funnel2 = __commonJS({\n \"lib/funnel.js\"(exports, module) {\n \"use strict\";\n module.exports = require_funnel();\n }\n });\n\n // src/traces/waterfall/constants.js\n var require_constants18 = __commonJS({\n \"src/traces/waterfall/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n eventDataKeys: [\n \"initial\",\n \"delta\",\n \"final\"\n ]\n };\n }\n });\n\n // src/traces/waterfall/attributes.js\n var require_attributes33 = __commonJS({\n \"src/traces/waterfall/attributes.js\"(exports, module) {\n \"use strict\";\n var barAttrs = require_attributes23();\n var lineAttrs = require_attributes12().line;\n var baseAttrs = require_attributes2();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var constants = require_constants18();\n var extendFlat = require_extend().extendFlat;\n var Color2 = require_color();\n function directionAttrs(dirTxt) {\n return {\n marker: {\n color: extendFlat({}, barAttrs.marker.color, {\n arrayOk: false,\n editType: \"style\"\n }),\n line: {\n color: extendFlat({}, barAttrs.marker.line.color, {\n arrayOk: false,\n editType: \"style\"\n }),\n width: extendFlat({}, barAttrs.marker.line.width, {\n arrayOk: false,\n editType: \"style\"\n }),\n editType: \"style\"\n },\n editType: \"style\"\n },\n editType: \"style\"\n };\n }\n module.exports = {\n measure: {\n valType: \"data_array\",\n dflt: [],\n editType: \"calc\"\n },\n base: {\n valType: \"number\",\n dflt: null,\n arrayOk: false,\n editType: \"calc\"\n },\n x: barAttrs.x,\n x0: barAttrs.x0,\n dx: barAttrs.dx,\n y: barAttrs.y,\n y0: barAttrs.y0,\n dy: barAttrs.dy,\n xperiod: barAttrs.xperiod,\n yperiod: barAttrs.yperiod,\n xperiod0: barAttrs.xperiod0,\n yperiod0: barAttrs.yperiod0,\n xperiodalignment: barAttrs.xperiodalignment,\n yperiodalignment: barAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n hovertext: barAttrs.hovertext,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"name\", \"x\", \"y\", \"text\", \"initial\", \"delta\", \"final\"]\n }),\n textinfo: {\n valType: \"flaglist\",\n flags: [\"label\", \"text\", \"initial\", \"delta\", \"final\"],\n extras: [\"none\"],\n editType: \"plot\",\n arrayOk: false\n },\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\"])\n }),\n text: barAttrs.text,\n textposition: barAttrs.textposition,\n insidetextanchor: barAttrs.insidetextanchor,\n textangle: barAttrs.textangle,\n textfont: barAttrs.textfont,\n insidetextfont: barAttrs.insidetextfont,\n outsidetextfont: barAttrs.outsidetextfont,\n constraintext: barAttrs.constraintext,\n cliponaxis: barAttrs.cliponaxis,\n orientation: barAttrs.orientation,\n offset: barAttrs.offset,\n width: barAttrs.width,\n increasing: directionAttrs(\"increasing\"),\n decreasing: directionAttrs(\"decreasing\"),\n totals: directionAttrs(\"intermediate sums and total\"),\n connector: {\n line: {\n color: extendFlat({}, lineAttrs.color, { dflt: Color2.defaultLine }),\n width: extendFlat({}, lineAttrs.width, {\n editType: \"plot\"\n // i.e. to adjust bars is mode: 'between'. See https://github.com/plotly/plotly.js/issues/3787\n }),\n dash: lineAttrs.dash,\n editType: \"plot\"\n },\n mode: {\n valType: \"enumerated\",\n values: [\"spanning\", \"between\"],\n dflt: \"between\",\n editType: \"plot\"\n },\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n offsetgroup: barAttrs.offsetgroup,\n alignmentgroup: barAttrs.alignmentgroup,\n zorder: barAttrs.zorder\n };\n }\n });\n\n // src/traces/waterfall/layout_attributes.js\n var require_layout_attributes11 = __commonJS({\n \"src/traces/waterfall/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n waterfallmode: {\n valType: \"enumerated\",\n values: [\"group\", \"overlay\"],\n dflt: \"group\",\n editType: \"calc\"\n },\n waterfallgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n editType: \"calc\"\n },\n waterfallgroupgap: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/constants/delta.js\n var require_delta = __commonJS({\n \"src/constants/delta.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n INCREASING: {\n COLOR: \"#3D9970\",\n SYMBOL: \"\\u25B2\"\n },\n DECREASING: {\n COLOR: \"#FF4136\",\n SYMBOL: \"\\u25BC\"\n }\n };\n }\n });\n\n // src/traces/waterfall/defaults.js\n var require_defaults29 = __commonJS({\n \"src/traces/waterfall/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleGroupingDefaults = require_grouping_defaults();\n var handleText = require_defaults19().handleText;\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes33();\n var Color2 = require_color();\n var delta = require_delta();\n var INCREASING_COLOR = delta.INCREASING.COLOR;\n var DECREASING_COLOR = delta.DECREASING.COLOR;\n var TOTALS_COLOR = \"#4499FF\";\n function handleDirection(coerce, direction, defaultColor) {\n coerce(direction + \".marker.color\", defaultColor);\n coerce(direction + \".marker.line.color\", Color2.defaultLine);\n coerce(direction + \".marker.line.width\");\n }\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"measure\");\n coerce(\"orientation\", traceOut.x && !traceOut.y ? \"h\" : \"v\");\n coerce(\"base\");\n coerce(\"offset\");\n coerce(\"width\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: true,\n moduleHasCliponaxis: true,\n moduleHasTextangle: true,\n moduleHasInsideanchor: true\n });\n if (traceOut.textposition !== \"none\") {\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\");\n }\n handleDirection(coerce, \"increasing\", INCREASING_COLOR);\n handleDirection(coerce, \"decreasing\", DECREASING_COLOR);\n handleDirection(coerce, \"totals\", TOTALS_COLOR);\n var connectorVisible = coerce(\"connector.visible\");\n if (connectorVisible) {\n coerce(\"connector.mode\");\n var connectorLineWidth = coerce(\"connector.line.width\");\n if (connectorLineWidth) {\n coerce(\"connector.line.color\");\n coerce(\"connector.line.dash\");\n }\n }\n coerce(\"zorder\");\n }\n function crossTraceDefaults(fullData, fullLayout) {\n var traceIn, traceOut;\n function coerce(attr) {\n return Lib.coerce(traceOut._input, traceOut, attributes, attr);\n }\n if (fullLayout.waterfallmode === \"group\") {\n for (var i = 0; i < fullData.length; i++) {\n traceOut = fullData[i];\n traceIn = traceOut._input;\n handleGroupingDefaults(traceIn, traceOut, fullLayout, coerce, fullLayout.waterfallmode);\n }\n }\n }\n module.exports = {\n supplyDefaults,\n crossTraceDefaults\n };\n }\n });\n\n // src/traces/waterfall/layout_defaults.js\n var require_layout_defaults10 = __commonJS({\n \"src/traces/waterfall/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes11();\n module.exports = function(layoutIn, layoutOut, fullData) {\n var hasTraceType = false;\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.visible && trace.type === \"waterfall\") {\n hasTraceType = true;\n break;\n }\n }\n if (hasTraceType) {\n coerce(\"waterfallmode\");\n coerce(\"waterfallgap\", 0.2);\n coerce(\"waterfallgroupgap\");\n }\n };\n }\n });\n\n // src/traces/waterfall/calc.js\n var require_calc14 = __commonJS({\n \"src/traces/waterfall/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var mergeArray = require_lib().mergeArray;\n var calcSelection = require_calc_selection();\n var BADNUM = require_numerical().BADNUM;\n function isAbsolute(a) {\n return a === \"a\" || a === \"absolute\";\n }\n function isTotal(a) {\n return a === \"t\" || a === \"total\";\n }\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var size, pos, origPos, pObj, hasPeriod, pLetter;\n if (trace.orientation === \"h\") {\n size = xa.makeCalcdata(trace, \"x\");\n origPos = ya.makeCalcdata(trace, \"y\");\n pObj = alignPeriod(trace, ya, \"y\", origPos);\n hasPeriod = !!trace.yperiodalignment;\n pLetter = \"y\";\n } else {\n size = ya.makeCalcdata(trace, \"y\");\n origPos = xa.makeCalcdata(trace, \"x\");\n pObj = alignPeriod(trace, xa, \"x\", origPos);\n hasPeriod = !!trace.xperiodalignment;\n pLetter = \"x\";\n }\n pos = pObj.vals;\n var serieslen = Math.min(pos.length, size.length);\n var cd = new Array(serieslen);\n var previousSum = 0;\n var newSize;\n var hasTotals = false;\n for (var i = 0; i < serieslen; i++) {\n var amount = size[i] || 0;\n var connectToNext = false;\n if (size[i] !== BADNUM || isTotal(trace.measure[i]) || isAbsolute(trace.measure[i])) {\n if (i + 1 < serieslen && (size[i + 1] !== BADNUM || isTotal(trace.measure[i + 1]) || isAbsolute(trace.measure[i + 1]))) {\n connectToNext = true;\n }\n }\n var cdi = cd[i] = {\n i,\n p: pos[i],\n s: amount,\n rawS: amount,\n cNext: connectToNext\n };\n if (isAbsolute(trace.measure[i])) {\n previousSum = cdi.s;\n cdi.isSum = true;\n cdi.dir = \"totals\";\n cdi.s = previousSum;\n } else if (isTotal(trace.measure[i])) {\n cdi.isSum = true;\n cdi.dir = \"totals\";\n cdi.s = previousSum;\n } else {\n cdi.isSum = false;\n cdi.dir = cdi.rawS < 0 ? \"decreasing\" : \"increasing\";\n newSize = cdi.s;\n cdi.s = previousSum + newSize;\n previousSum += newSize;\n }\n if (cdi.dir === \"totals\") {\n hasTotals = true;\n }\n if (hasPeriod) {\n cd[i].orig_p = origPos[i];\n cd[i][pLetter + \"End\"] = pObj.ends[i];\n cd[i][pLetter + \"Start\"] = pObj.starts[i];\n }\n if (trace.ids) {\n cdi.id = String(trace.ids[i]);\n }\n cdi.v = (trace.base || 0) + previousSum;\n }\n if (cd.length) cd[0].hasTotals = hasTotals;\n mergeArray(trace.text, cd, \"tx\");\n mergeArray(trace.hovertext, cd, \"htx\");\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/waterfall/cross_trace_calc.js\n var require_cross_trace_calc6 = __commonJS({\n \"src/traces/waterfall/cross_trace_calc.js\"(exports, module) {\n \"use strict\";\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n module.exports = function crossTraceCalc(gd, plotinfo) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var calcdata = gd.calcdata;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var waterfalls = [];\n var waterfallsVert = [];\n var waterfallsHorz = [];\n var cd, i;\n for (i = 0; i < fullData.length; i++) {\n var fullTrace = fullData[i];\n if (fullTrace.visible === true && fullTrace.xaxis === xa._id && fullTrace.yaxis === ya._id && fullTrace.type === \"waterfall\") {\n cd = calcdata[i];\n if (fullTrace.orientation === \"h\") {\n waterfallsHorz.push(cd);\n } else {\n waterfallsVert.push(cd);\n }\n waterfalls.push(cd);\n }\n }\n var opts = {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallnorm,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n };\n setGroupPositions(gd, xa, ya, waterfallsVert, opts);\n setGroupPositions(gd, ya, xa, waterfallsHorz, opts);\n for (i = 0; i < waterfalls.length; i++) {\n cd = waterfalls[i];\n for (var j = 0; j < cd.length; j++) {\n var di = cd[j];\n if (di.isSum === false) {\n di.s0 += j === 0 ? 0 : cd[j - 1].s;\n }\n if (j + 1 < cd.length) {\n cd[j].nextP0 = cd[j + 1].p0;\n cd[j].nextS0 = cd[j + 1].s0;\n }\n }\n }\n };\n }\n });\n\n // src/traces/waterfall/plot.js\n var require_plot10 = __commonJS({\n \"src/traces/waterfall/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var BADNUM = require_numerical().BADNUM;\n var barPlot = require_plot3();\n var clearMinTextSize = require_uniform_text().clearMinTextSize;\n module.exports = function plot(gd, plotinfo, cdModule, traceLayer) {\n var fullLayout = gd._fullLayout;\n clearMinTextSize(\"waterfall\", fullLayout);\n barPlot.plot(gd, plotinfo, cdModule, traceLayer, {\n mode: fullLayout.waterfallmode,\n norm: fullLayout.waterfallmode,\n gap: fullLayout.waterfallgap,\n groupgap: fullLayout.waterfallgroupgap\n });\n plotConnectors(gd, plotinfo, cdModule, traceLayer);\n };\n function plotConnectors(gd, plotinfo, cdModule, traceLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(traceLayer, cdModule, \"trace bars\").each(function(cd) {\n var plotGroup = d3.select(this);\n var trace = cd[0].trace;\n var group = Lib.ensureSingle(plotGroup, \"g\", \"lines\");\n if (!trace.connector || !trace.connector.visible) {\n group.remove();\n return;\n }\n var isHorizontal = trace.orientation === \"h\";\n var mode = trace.connector.mode;\n var connectors = group.selectAll(\"g.line\").data(Lib.identity);\n connectors.enter().append(\"g\").classed(\"line\", true);\n connectors.exit().remove();\n var len = connectors.size();\n connectors.each(function(di, i) {\n if (i !== len - 1 && !di.cNext) return;\n var xy = getXY(di, xa, ya, isHorizontal);\n var x = xy[0];\n var y = xy[1];\n var shape = \"\";\n if (x[0] !== BADNUM && y[0] !== BADNUM && x[1] !== BADNUM && y[1] !== BADNUM) {\n if (mode === \"spanning\") {\n if (!di.isSum && i > 0) {\n if (isHorizontal) {\n shape += \"M\" + x[0] + \",\" + y[1] + \"V\" + y[0];\n } else {\n shape += \"M\" + x[1] + \",\" + y[0] + \"H\" + x[0];\n }\n }\n }\n if (mode !== \"between\") {\n if (di.isSum || i < len - 1) {\n if (isHorizontal) {\n shape += \"M\" + x[1] + \",\" + y[0] + \"V\" + y[1];\n } else {\n shape += \"M\" + x[0] + \",\" + y[1] + \"H\" + x[1];\n }\n }\n }\n if (x[2] !== BADNUM && y[2] !== BADNUM) {\n if (isHorizontal) {\n shape += \"M\" + x[1] + \",\" + y[1] + \"V\" + y[2];\n } else {\n shape += \"M\" + x[1] + \",\" + y[1] + \"H\" + x[2];\n }\n }\n }\n if (shape === \"\") shape = \"M0,0Z\";\n Lib.ensureSingle(d3.select(this), \"path\").attr(\"d\", shape).call(Drawing.setClipUrl, plotinfo.layerClipId, gd);\n });\n });\n }\n function getXY(di, xa, ya, isHorizontal) {\n var s = [];\n var p = [];\n var sAxis = isHorizontal ? xa : ya;\n var pAxis = isHorizontal ? ya : xa;\n s[0] = sAxis.c2p(di.s0, true);\n p[0] = pAxis.c2p(di.p0, true);\n s[1] = sAxis.c2p(di.s1, true);\n p[1] = pAxis.c2p(di.p1, true);\n s[2] = sAxis.c2p(di.nextS0, true);\n p[2] = pAxis.c2p(di.nextP0, true);\n return isHorizontal ? [s, p] : [p, s];\n }\n }\n });\n\n // src/traces/waterfall/style.js\n var require_style10 = __commonJS({\n \"src/traces/waterfall/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var barStyle = require_style4();\n var resizeText = require_uniform_text().resizeText;\n var styleTextPoints = barStyle.styleTextPoints;\n function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll('g[class^=\"waterfalllayer\"]').selectAll(\"g.trace\");\n resizeText(gd, s, \"waterfall\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var gTrace = d3.select(this);\n var trace = d[0].trace;\n gTrace.selectAll(\".point > path\").each(function(di) {\n if (!di.isBlank) {\n var cont = trace[di.dir].marker;\n d3.select(this).call(Color2.fill, cont.color).call(Color2.stroke, cont.line.color).call(Drawing.dashLine, cont.line.dash, cont.line.width).style(\"opacity\", trace.selectedpoints && !di.selected ? DESELECTDIM : 1);\n }\n });\n styleTextPoints(gTrace, trace, gd);\n gTrace.selectAll(\".lines\").each(function() {\n var cont = trace.connector.line;\n Drawing.lineGroupStyle(\n d3.select(this).selectAll(\"path\"),\n cont.width,\n cont.color,\n cont.dash\n );\n });\n });\n }\n module.exports = {\n style\n };\n }\n });\n\n // src/traces/waterfall/hover.js\n var require_hover12 = __commonJS({\n \"src/traces/waterfall/hover.js\"(exports, module) {\n \"use strict\";\n var hoverLabelText = require_axes().hoverLabelText;\n var opacity = require_color().opacity;\n var hoverOnBars = require_hover3().hoverOnBars;\n var delta = require_delta();\n var DIRSYMBOL = {\n increasing: delta.INCREASING.SYMBOL,\n decreasing: delta.DECREASING.SYMBOL\n };\n module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {\n var point = hoverOnBars(pointData, xval, yval, hovermode, opts);\n if (!point) return;\n var cd = point.cd;\n var trace = cd[0].trace;\n var isHorizontal = trace.orientation === \"h\";\n var vLetter = isHorizontal ? \"x\" : \"y\";\n var vAxis = isHorizontal ? pointData.xa : pointData.ya;\n function formatNumber(a) {\n return hoverLabelText(vAxis, a, trace[vLetter + \"hoverformat\"]);\n }\n var index = point.index;\n var di = cd[index];\n var size = di.isSum ? di.b + di.s : di.rawS;\n point.initial = di.b + di.s - size;\n point.delta = size;\n point.final = point.initial + point.delta;\n var v = formatNumber(Math.abs(point.delta));\n point.deltaLabel = size < 0 ? \"(\" + v + \")\" : v;\n point.finalLabel = formatNumber(point.final);\n point.initialLabel = formatNumber(point.initial);\n var hoverinfo = di.hi || trace.hoverinfo;\n var text = [];\n if (hoverinfo && hoverinfo !== \"none\" && hoverinfo !== \"skip\") {\n var isAll = hoverinfo === \"all\";\n var parts = hoverinfo.split(\"+\");\n var hasFlag = function(flag) {\n return isAll || parts.indexOf(flag) !== -1;\n };\n if (!di.isSum) {\n if (hasFlag(\"final\") && (isHorizontal ? !hasFlag(\"x\") : !hasFlag(\"y\"))) {\n text.push(point.finalLabel);\n }\n if (hasFlag(\"delta\")) {\n if (size < 0) {\n text.push(point.deltaLabel + \" \" + DIRSYMBOL.decreasing);\n } else {\n text.push(point.deltaLabel + \" \" + DIRSYMBOL.increasing);\n }\n }\n if (hasFlag(\"initial\")) {\n text.push(\"Initial: \" + point.initialLabel);\n }\n }\n }\n if (text.length) point.extraText = text.join(\"
\");\n point.color = getTraceColor(trace, di);\n return [point];\n };\n function getTraceColor(trace, di) {\n var cont = trace[di.dir].marker;\n var mc = cont.color;\n var mlc = cont.line.color;\n var mlw = cont.line.width;\n if (opacity(mc)) return mc;\n else if (opacity(mlc) && mlw) return mlc;\n }\n }\n });\n\n // src/traces/waterfall/event_data.js\n var require_event_data6 = __commonJS({\n \"src/traces/waterfall/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.x = \"xVal\" in pt ? pt.xVal : pt.x;\n out.y = \"yVal\" in pt ? pt.yVal : pt.y;\n if (\"initial\" in pt) out.initial = pt.initial;\n if (\"delta\" in pt) out.delta = pt.delta;\n if (\"final\" in pt) out.final = pt.final;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n return out;\n };\n }\n });\n\n // src/traces/waterfall/index.js\n var require_waterfall = __commonJS({\n \"src/traces/waterfall/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes33(),\n layoutAttributes: require_layout_attributes11(),\n supplyDefaults: require_defaults29().supplyDefaults,\n crossTraceDefaults: require_defaults29().crossTraceDefaults,\n supplyLayoutDefaults: require_layout_defaults10(),\n calc: require_calc14(),\n crossTraceCalc: require_cross_trace_calc6(),\n plot: require_plot10(),\n style: require_style10().style,\n hoverPoints: require_hover12(),\n eventData: require_event_data6(),\n selectPoints: require_select3(),\n moduleType: \"trace\",\n name: \"waterfall\",\n basePlotModule: require_cartesian(),\n categories: [\"bar-like\", \"cartesian\", \"svg\", \"oriented\", \"showLegend\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/waterfall.js\n var require_waterfall2 = __commonJS({\n \"lib/waterfall.js\"(exports, module) {\n \"use strict\";\n module.exports = require_waterfall();\n }\n });\n\n // src/traces/image/constants.js\n var require_constants19 = __commonJS({\n \"src/traces/image/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n colormodel: {\n // min and max define the numerical range accepted in CSS\n // If z(min|max)Dflt are not defined, z(min|max) will default to min/max\n rgb: {\n min: [0, 0, 0],\n max: [255, 255, 255],\n fmt: function(c) {\n return c.slice(0, 3);\n },\n suffix: [\"\", \"\", \"\"]\n },\n rgba: {\n min: [0, 0, 0, 0],\n max: [255, 255, 255, 1],\n fmt: function(c) {\n return c.slice(0, 4);\n },\n suffix: [\"\", \"\", \"\", \"\"]\n },\n rgba256: {\n colormodel: \"rgba\",\n // because rgba256 is not an accept colormodel in CSS\n zminDflt: [0, 0, 0, 0],\n zmaxDflt: [255, 255, 255, 255],\n min: [0, 0, 0, 0],\n max: [255, 255, 255, 1],\n fmt: function(c) {\n return c.slice(0, 4);\n },\n suffix: [\"\", \"\", \"\", \"\"]\n },\n hsl: {\n min: [0, 0, 0],\n max: [360, 100, 100],\n fmt: function(c) {\n var p = c.slice(0, 3);\n p[1] = p[1] + \"%\";\n p[2] = p[2] + \"%\";\n return p;\n },\n suffix: [\"\\xB0\", \"%\", \"%\"]\n },\n hsla: {\n min: [0, 0, 0, 0],\n max: [360, 100, 100, 1],\n fmt: function(c) {\n var p = c.slice(0, 4);\n p[1] = p[1] + \"%\";\n p[2] = p[2] + \"%\";\n return p;\n },\n suffix: [\"\\xB0\", \"%\", \"%\", \"\"]\n }\n }\n };\n }\n });\n\n // src/traces/image/attributes.js\n var require_attributes34 = __commonJS({\n \"src/traces/image/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var zorder = require_attributes12().zorder;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var colormodel = require_constants19().colormodel;\n var cm = [\"rgb\", \"rgba\", \"rgba256\", \"hsl\", \"hsla\"];\n var zminDesc = [];\n var zmaxDesc = [];\n for (i = 0; i < cm.length; i++) {\n cr = colormodel[cm[i]];\n zminDesc.push(\"For the `\" + cm[i] + \"` colormodel, it is [\" + (cr.zminDflt || cr.min).join(\", \") + \"].\");\n zmaxDesc.push(\"For the `\" + cm[i] + \"` colormodel, it is [\" + (cr.zmaxDflt || cr.max).join(\", \") + \"].\");\n }\n var cr;\n var i;\n module.exports = extendFlat({\n source: {\n valType: \"string\",\n editType: \"calc\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n colormodel: {\n valType: \"enumerated\",\n values: cm,\n editType: \"calc\"\n },\n zsmooth: {\n valType: \"enumerated\",\n values: [\"fast\", false],\n dflt: false,\n editType: \"plot\"\n },\n zmin: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n zmax: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" },\n { valType: \"number\", editType: \"calc\" }\n ],\n editType: \"calc\"\n },\n x0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n y0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n dx: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n dy: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n text: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n hovertext: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"x\", \"y\", \"z\", \"color\", \"name\", \"text\"],\n dflt: \"x+y+z+text+name\"\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"z\", \"color\", \"colormodel\"]\n }),\n zorder\n });\n }\n });\n\n // src/traces/image/defaults.js\n var require_defaults30 = __commonJS({\n \"src/traces/image/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes34();\n var constants = require_constants19();\n var dataUri = require_helpers10().IMAGE_URL_PREFIX;\n module.exports = function supplyDefaults(traceIn, traceOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n coerce(\"source\");\n if (traceOut.source && !traceOut.source.match(dataUri)) delete traceOut.source;\n traceOut._hasSource = !!traceOut.source;\n var z = coerce(\"z\");\n traceOut._hasZ = !(z === void 0 || !z.length || !z[0] || !z[0].length);\n if (!traceOut._hasZ && !traceOut._hasSource) {\n traceOut.visible = false;\n return;\n }\n coerce(\"x0\");\n coerce(\"y0\");\n coerce(\"dx\");\n coerce(\"dy\");\n var cm;\n if (traceOut._hasZ) {\n coerce(\"colormodel\", \"rgb\");\n cm = constants.colormodel[traceOut.colormodel];\n coerce(\"zmin\", cm.zminDflt || cm.min);\n coerce(\"zmax\", cm.zmaxDflt || cm.max);\n } else if (traceOut._hasSource) {\n traceOut.colormodel = \"rgba256\";\n cm = constants.colormodel[traceOut.colormodel];\n traceOut.zmin = cm.zminDflt;\n traceOut.zmax = cm.zmaxDflt;\n }\n coerce(\"zsmooth\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n traceOut._length = null;\n coerce(\"zorder\");\n };\n }\n });\n\n // node_modules/inherits/inherits_browser.js\n var require_inherits_browser = __commonJS({\n \"node_modules/inherits/inherits_browser.js\"(exports, module) {\n if (typeof Object.create === \"function\") {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n } else {\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js\n var require_stream_browser = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js\"(exports, module) {\n module.exports = require_events().EventEmitter;\n }\n });\n\n // node_modules/base64-js/index.js\n var require_base64_js = __commonJS({\n \"node_modules/base64-js/index.js\"(exports) {\n \"use strict\";\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n for (i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n var i;\n var len;\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n }\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join(\"\");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(\n uint8,\n i2,\n i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength\n ));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\"\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\"\n );\n }\n return parts.join(\"\");\n }\n }\n });\n\n // node_modules/ieee754/index.js\n var require_ieee754 = __commonJS({\n \"node_modules/ieee754/index.js\"(exports) {\n exports.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n });\n\n // node_modules/buffer/index.js\n var require_buffer = __commonJS({\n \"node_modules/buffer/index.js\"(exports) {\n \"use strict\";\n var base64 = require_base64_js();\n var ieee754 = require_ieee754();\n var customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") : null;\n exports.Buffer = Buffer2;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n var K_MAX_LENGTH = 2147483647;\n exports.kMaxLength = K_MAX_LENGTH;\n Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(\n \"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"\n );\n }\n function typedArraySupport() {\n try {\n const arr = new Uint8Array(1);\n const proto = { foo: function() {\n return 42;\n } };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer2.prototype, \"parent\", {\n enumerable: true,\n get: function() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer2.prototype, \"offset\", {\n enumerable: true,\n get: function() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n }\n const buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function Buffer2(arg, encodingOrOffset, length) {\n if (typeof arg === \"number\") {\n if (typeof encodingOrOffset === \"string\") {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n );\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer2.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof value\n );\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === \"number\") {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n );\n }\n const valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer2.from(valueOf, encodingOrOffset, length);\n }\n const b = fromObject(value);\n if (b) return b;\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer2.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n throw new TypeError(\n \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof value\n );\n }\n Buffer2.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer2, Uint8Array);\n function assertSize(size) {\n if (typeof size !== \"number\") {\n throw new TypeError('\"size\" argument must be of type number');\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer2.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer2.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer2.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n if (!Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n const length = byteLength(string, encoding) | 0;\n let buf = createBuffer(length);\n const actual = buf.write(string, encoding);\n if (actual !== length) {\n buf = buf.slice(0, actual);\n }\n return buf;\n }\n function fromArrayLike(array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0;\n const buf = createBuffer(length);\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n return buf;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds');\n }\n let buf;\n if (byteOffset === void 0 && length === void 0) {\n buf = new Uint8Array(array);\n } else if (length === void 0) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function fromObject(obj) {\n if (Buffer2.isBuffer(obj)) {\n const len = checked(obj.length) | 0;\n const buf = createBuffer(len);\n if (buf.length === 0) {\n return buf;\n }\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer2.alloc(+length);\n }\n Buffer2.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer2.prototype;\n };\n Buffer2.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer2.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer2.from(b, b.offset, b.byteLength);\n if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n );\n }\n if (a === b) return 0;\n let x = a.length;\n let y = b.length;\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer2.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return true;\n default:\n return false;\n }\n };\n Buffer2.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer2.alloc(0);\n }\n let i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n const buffer = Buffer2.allocUnsafe(length);\n let pos = 0;\n for (i = 0; i < list.length; ++i) {\n let buf = list[i];\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer2.isBuffer(buf)) buf = Buffer2.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n );\n }\n } else if (!Buffer2.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n } else {\n buf.copy(buffer, pos);\n }\n pos += buf.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer2.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== \"string\") {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string\n );\n }\n const len = string.length;\n const mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0;\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n case \"hex\":\n return len >>> 1;\n case \"base64\":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n let loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return \"\";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return \"\";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return \"\";\n }\n if (!encoding) encoding = \"utf8\";\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n case \"ascii\":\n return asciiSlice(this, start, end);\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n case \"base64\":\n return base64Slice(this, start, end);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.prototype._isBuffer = true;\n function swap(b, n, m) {\n const i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer2.prototype.swap16 = function swap16() {\n const len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer2.prototype.swap32 = function swap32() {\n const len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer2.prototype.swap64 = function swap64() {\n const len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer2.prototype.toString = function toString() {\n const length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer2.prototype.toLocaleString = Buffer2.prototype.toString;\n Buffer2.prototype.equals = function equals(b) {\n if (!Buffer2.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer2.compare(this, b) === 0;\n };\n Buffer2.prototype.inspect = function inspect() {\n let str = \"\";\n const max = exports.INSPECT_MAX_BYTES;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"\";\n };\n if (customInspectSymbol) {\n Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect;\n }\n Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer2.from(target, target.offset, target.byteLength);\n }\n if (!Buffer2.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target\n );\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n let x = thisEnd - thisStart;\n let y = end - start;\n const len = Math.min(x, y);\n const thisCopy = this.slice(thisStart, thisEnd);\n const targetCopy = target.slice(start, end);\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0) return -1;\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1;\n }\n if (typeof val === \"string\") {\n val = Buffer2.from(val, encoding);\n }\n if (Buffer2.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === \"function\") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n let indexSize = 1;\n let arrLength = arr.length;\n let valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || encoding === \"utf16le\" || encoding === \"utf-16le\") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i2) {\n if (indexSize === 1) {\n return buf[i2];\n } else {\n return buf.readUInt16BE(i2 * indexSize);\n }\n }\n let i;\n if (dir) {\n let foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n let found = true;\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i;\n }\n }\n return -1;\n }\n Buffer2.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer2.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n const remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n const strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n let i;\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer2.prototype.write = function write(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0) encoding = \"utf8\";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error(\n \"Buffer.write(string, encoding, offset[, length]) is no longer supported\"\n );\n }\n const remaining = this.length - offset;\n if (length === void 0 || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n if (!encoding) encoding = \"utf8\";\n let loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n case \"base64\":\n return base64Write(this, string, offset, length);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer2.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n const res = [];\n let i = start;\n while (i < end) {\n const firstByte = buf[i];\n let codePoint = null;\n let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n const len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n let res = \"\";\n let i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res;\n }\n function asciiSlice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n let ret = \"\";\n end = Math.min(buf.length, end);\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n const len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n let out = \"\";\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n const bytes = buf.slice(start, end);\n let res = \"\";\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer2.prototype.slice = function slice(start, end) {\n const len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n const newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer2.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n let val = this[offset + --byteLength2];\n let mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer2.prototype.readUint16LE = Buffer2.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer2.prototype.readUint16BE = Buffer2.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer2.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer2.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n let val = this[offset];\n let mul = 1;\n let i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n let i = byteLength2;\n let mul = 1;\n let val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer2.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n const val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer2.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n });\n Buffer2.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n const first = this[offset];\n const last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n });\n Buffer2.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n Buffer2.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n Buffer2.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n Buffer2.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer2.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let mul = 1;\n let i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n let lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = 0;\n let mul = 1;\n let sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n const limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n let i = byteLength2 - 1;\n let mul = 1;\n let sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer2.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer2.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\");\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n const len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n );\n }\n return len;\n };\n Buffer2.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n if (typeof encoding === \"string\" && !Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0);\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val) val = 0;\n let i;\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n const bytes = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding);\n const len = bytes.length;\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E2(sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor() {\n super();\n Object.defineProperty(this, \"message\", {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n });\n this.name = `${this.name} [${sym}]`;\n this.stack;\n delete this.name;\n }\n get code() {\n return sym;\n }\n set code(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n toString() {\n return `${this.name} [${sym}]: ${this.message}`;\n }\n };\n }\n E2(\n \"ERR_BUFFER_OUT_OF_BOUNDS\",\n function(name2) {\n if (name2) {\n return `${name2} is outside of buffer bounds`;\n }\n return \"Attempt to access memory outside buffer bounds\";\n },\n RangeError\n );\n E2(\n \"ERR_INVALID_ARG_TYPE\",\n function(name2, actual) {\n return `The \"${name2}\" argument must be of type number. Received type ${typeof actual}`;\n },\n TypeError\n );\n E2(\n \"ERR_OUT_OF_RANGE\",\n function(str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`;\n let received = input;\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === \"bigint\") {\n received = String(input);\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += \"n\";\n }\n msg += ` It must be ${range}. Received ${received}`;\n return msg;\n },\n RangeError\n );\n function addNumericalSeparator(val) {\n let res = \"\";\n let i = val.length;\n const start = val[0] === \"-\" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`;\n }\n return `${val.slice(0, i)}${res}`;\n }\n function checkBounds(buf, offset, byteLength2) {\n validateNumber(offset, \"offset\");\n if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) {\n boundsError(offset, buf.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf, offset, byteLength2) {\n if (value > max || value < min) {\n const n = typeof min === \"bigint\" ? \"n\" : \"\";\n let range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n } else {\n range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`;\n }\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n checkBounds(buf, offset, byteLength2);\n }\n function validateNumber(value, name2) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name2, \"number\", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", \"an integer\", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(\n type || \"offset\",\n `>= ${type ? 1 : 0} and <= ${length}`,\n value\n );\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split(\"=\")[0];\n str = str.trim().replace(INVALID_BASE64_RE, \"\");\n if (str.length < 2) return \"\";\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n let codePoint;\n const length = string.length;\n let leadSurrogate = null;\n const bytes = [];\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(\n codePoint >> 6 | 192,\n codePoint & 63 | 128\n );\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(\n codePoint >> 12 | 224,\n codePoint >> 6 & 63 | 128,\n codePoint & 63 | 128\n );\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(\n codePoint >> 18 | 240,\n codePoint >> 12 & 63 | 128,\n codePoint >> 6 & 63 | 128,\n codePoint & 63 | 128\n );\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n let c, hi, lo;\n const byteArray = [];\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n let i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n const alphabet = \"0123456789abcdef\";\n const table = new Array(256);\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16;\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n }\n });\n\n // node_modules/has-symbols/shams.js\n var require_shams = __commonJS({\n \"node_modules/has-symbols/shams.js\"(exports, module) {\n \"use strict\";\n module.exports = function hasSymbols() {\n if (typeof Symbol !== \"function\" || typeof Object.getOwnPropertySymbols !== \"function\") {\n return false;\n }\n if (typeof Symbol.iterator === \"symbol\") {\n return true;\n }\n var obj = {};\n var sym = Symbol(\"test\");\n var symObj = Object(sym);\n if (typeof sym === \"string\") {\n return false;\n }\n if (Object.prototype.toString.call(sym) !== \"[object Symbol]\") {\n return false;\n }\n if (Object.prototype.toString.call(symObj) !== \"[object Symbol]\") {\n return false;\n }\n var symVal = 42;\n obj[sym] = symVal;\n for (sym in obj) {\n return false;\n }\n if (typeof Object.keys === \"function\" && Object.keys(obj).length !== 0) {\n return false;\n }\n if (typeof Object.getOwnPropertyNames === \"function\" && Object.getOwnPropertyNames(obj).length !== 0) {\n return false;\n }\n var syms = Object.getOwnPropertySymbols(obj);\n if (syms.length !== 1 || syms[0] !== sym) {\n return false;\n }\n if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) {\n return false;\n }\n if (typeof Object.getOwnPropertyDescriptor === \"function\") {\n var descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n if (descriptor.value !== symVal || descriptor.enumerable !== true) {\n return false;\n }\n }\n return true;\n };\n }\n });\n\n // node_modules/has-tostringtag/shams.js\n var require_shams2 = __commonJS({\n \"node_modules/has-tostringtag/shams.js\"(exports, module) {\n \"use strict\";\n var hasSymbols = require_shams();\n module.exports = function hasToStringTagShams() {\n return hasSymbols() && !!Symbol.toStringTag;\n };\n }\n });\n\n // node_modules/es-errors/index.js\n var require_es_errors = __commonJS({\n \"node_modules/es-errors/index.js\"(exports, module) {\n \"use strict\";\n module.exports = Error;\n }\n });\n\n // node_modules/es-errors/eval.js\n var require_eval = __commonJS({\n \"node_modules/es-errors/eval.js\"(exports, module) {\n \"use strict\";\n module.exports = EvalError;\n }\n });\n\n // node_modules/es-errors/range.js\n var require_range = __commonJS({\n \"node_modules/es-errors/range.js\"(exports, module) {\n \"use strict\";\n module.exports = RangeError;\n }\n });\n\n // node_modules/es-errors/ref.js\n var require_ref = __commonJS({\n \"node_modules/es-errors/ref.js\"(exports, module) {\n \"use strict\";\n module.exports = ReferenceError;\n }\n });\n\n // node_modules/es-errors/syntax.js\n var require_syntax = __commonJS({\n \"node_modules/es-errors/syntax.js\"(exports, module) {\n \"use strict\";\n module.exports = SyntaxError;\n }\n });\n\n // node_modules/es-errors/type.js\n var require_type = __commonJS({\n \"node_modules/es-errors/type.js\"(exports, module) {\n \"use strict\";\n module.exports = TypeError;\n }\n });\n\n // node_modules/es-errors/uri.js\n var require_uri = __commonJS({\n \"node_modules/es-errors/uri.js\"(exports, module) {\n \"use strict\";\n module.exports = URIError;\n }\n });\n\n // node_modules/has-symbols/index.js\n var require_has_symbols = __commonJS({\n \"node_modules/has-symbols/index.js\"(exports, module) {\n \"use strict\";\n var origSymbol = typeof Symbol !== \"undefined\" && Symbol;\n var hasSymbolSham = require_shams();\n module.exports = function hasNativeSymbols() {\n if (typeof origSymbol !== \"function\") {\n return false;\n }\n if (typeof Symbol !== \"function\") {\n return false;\n }\n if (typeof origSymbol(\"foo\") !== \"symbol\") {\n return false;\n }\n if (typeof Symbol(\"bar\") !== \"symbol\") {\n return false;\n }\n return hasSymbolSham();\n };\n }\n });\n\n // node_modules/has-proto/index.js\n var require_has_proto = __commonJS({\n \"node_modules/has-proto/index.js\"(exports, module) {\n \"use strict\";\n var test = {\n foo: {}\n };\n var $Object = Object;\n module.exports = function hasProto() {\n return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n };\n }\n });\n\n // node_modules/function-bind/implementation.js\n var require_implementation = __commonJS({\n \"node_modules/function-bind/implementation.js\"(exports, module) {\n \"use strict\";\n var ERROR_MESSAGE = \"Function.prototype.bind called on incompatible \";\n var toStr = Object.prototype.toString;\n var max = Math.max;\n var funcType = \"[object Function]\";\n var concatty = function concatty2(a, b) {\n var arr = [];\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n return arr;\n };\n var slicy = function slicy2(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n };\n var joiny = function(arr, joiner) {\n var str = \"\";\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n };\n module.exports = function bind(that) {\n var target = this;\n if (typeof target !== \"function\" || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n var bound;\n var binder = function() {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n };\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = \"$\" + i;\n }\n bound = Function(\"binder\", \"return function (\" + joiny(boundArgs, \",\") + \"){ return binder.apply(this,arguments); }\")(binder);\n if (target.prototype) {\n var Empty = function Empty2() {\n };\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n return bound;\n };\n }\n });\n\n // node_modules/function-bind/index.js\n var require_function_bind = __commonJS({\n \"node_modules/function-bind/index.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation();\n module.exports = Function.prototype.bind || implementation;\n }\n });\n\n // node_modules/hasown/index.js\n var require_hasown = __commonJS({\n \"node_modules/hasown/index.js\"(exports, module) {\n \"use strict\";\n var call = Function.prototype.call;\n var $hasOwn = Object.prototype.hasOwnProperty;\n var bind = require_function_bind();\n module.exports = bind.call(call, $hasOwn);\n }\n });\n\n // node_modules/get-intrinsic/index.js\n var require_get_intrinsic = __commonJS({\n \"node_modules/get-intrinsic/index.js\"(exports, module) {\n \"use strict\";\n var undefined2;\n var $Error = require_es_errors();\n var $EvalError = require_eval();\n var $RangeError = require_range();\n var $ReferenceError = require_ref();\n var $SyntaxError = require_syntax();\n var $TypeError = require_type();\n var $URIError = require_uri();\n var $Function = Function;\n var getEvalledConstructor = function(expressionSyntax) {\n try {\n return $Function('\"use strict\"; return (' + expressionSyntax + \").constructor;\")();\n } catch (e) {\n }\n };\n var $gOPD = Object.getOwnPropertyDescriptor;\n if ($gOPD) {\n try {\n $gOPD({}, \"\");\n } catch (e) {\n $gOPD = null;\n }\n }\n var throwTypeError = function() {\n throw new $TypeError();\n };\n var ThrowTypeError = $gOPD ? function() {\n try {\n arguments.callee;\n return throwTypeError;\n } catch (calleeThrows) {\n try {\n return $gOPD(arguments, \"callee\").get;\n } catch (gOPDthrows) {\n return throwTypeError;\n }\n }\n }() : throwTypeError;\n var hasSymbols = require_has_symbols()();\n var hasProto = require_has_proto()();\n var getProto = Object.getPrototypeOf || (hasProto ? function(x) {\n return x.__proto__;\n } : null);\n var needsEval = {};\n var TypedArray = typeof Uint8Array === \"undefined\" || !getProto ? undefined2 : getProto(Uint8Array);\n var INTRINSICS = {\n __proto__: null,\n \"%AggregateError%\": typeof AggregateError === \"undefined\" ? undefined2 : AggregateError,\n \"%Array%\": Array,\n \"%ArrayBuffer%\": typeof ArrayBuffer === \"undefined\" ? undefined2 : ArrayBuffer,\n \"%ArrayIteratorPrototype%\": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2,\n \"%AsyncFromSyncIteratorPrototype%\": undefined2,\n \"%AsyncFunction%\": needsEval,\n \"%AsyncGenerator%\": needsEval,\n \"%AsyncGeneratorFunction%\": needsEval,\n \"%AsyncIteratorPrototype%\": needsEval,\n \"%Atomics%\": typeof Atomics === \"undefined\" ? undefined2 : Atomics,\n \"%BigInt%\": typeof BigInt === \"undefined\" ? undefined2 : BigInt,\n \"%BigInt64Array%\": typeof BigInt64Array === \"undefined\" ? undefined2 : BigInt64Array,\n \"%BigUint64Array%\": typeof BigUint64Array === \"undefined\" ? undefined2 : BigUint64Array,\n \"%Boolean%\": Boolean,\n \"%DataView%\": typeof DataView === \"undefined\" ? undefined2 : DataView,\n \"%Date%\": Date,\n \"%decodeURI%\": decodeURI,\n \"%decodeURIComponent%\": decodeURIComponent,\n \"%encodeURI%\": encodeURI,\n \"%encodeURIComponent%\": encodeURIComponent,\n \"%Error%\": $Error,\n \"%eval%\": eval,\n // eslint-disable-line no-eval\n \"%EvalError%\": $EvalError,\n \"%Float32Array%\": typeof Float32Array === \"undefined\" ? undefined2 : Float32Array,\n \"%Float64Array%\": typeof Float64Array === \"undefined\" ? undefined2 : Float64Array,\n \"%FinalizationRegistry%\": typeof FinalizationRegistry === \"undefined\" ? undefined2 : FinalizationRegistry,\n \"%Function%\": $Function,\n \"%GeneratorFunction%\": needsEval,\n \"%Int8Array%\": typeof Int8Array === \"undefined\" ? undefined2 : Int8Array,\n \"%Int16Array%\": typeof Int16Array === \"undefined\" ? undefined2 : Int16Array,\n \"%Int32Array%\": typeof Int32Array === \"undefined\" ? undefined2 : Int32Array,\n \"%isFinite%\": isFinite,\n \"%isNaN%\": isNaN,\n \"%IteratorPrototype%\": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2,\n \"%JSON%\": typeof JSON === \"object\" ? JSON : undefined2,\n \"%Map%\": typeof Map === \"undefined\" ? undefined2 : Map,\n \"%MapIteratorPrototype%\": typeof Map === \"undefined\" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()),\n \"%Math%\": Math,\n \"%Number%\": Number,\n \"%Object%\": Object,\n \"%parseFloat%\": parseFloat,\n \"%parseInt%\": parseInt,\n \"%Promise%\": typeof Promise === \"undefined\" ? undefined2 : Promise,\n \"%Proxy%\": typeof Proxy === \"undefined\" ? undefined2 : Proxy,\n \"%RangeError%\": $RangeError,\n \"%ReferenceError%\": $ReferenceError,\n \"%Reflect%\": typeof Reflect === \"undefined\" ? undefined2 : Reflect,\n \"%RegExp%\": RegExp,\n \"%Set%\": typeof Set === \"undefined\" ? undefined2 : Set,\n \"%SetIteratorPrototype%\": typeof Set === \"undefined\" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()),\n \"%SharedArrayBuffer%\": typeof SharedArrayBuffer === \"undefined\" ? undefined2 : SharedArrayBuffer,\n \"%String%\": String,\n \"%StringIteratorPrototype%\": hasSymbols && getProto ? getProto(\"\"[Symbol.iterator]()) : undefined2,\n \"%Symbol%\": hasSymbols ? Symbol : undefined2,\n \"%SyntaxError%\": $SyntaxError,\n \"%ThrowTypeError%\": ThrowTypeError,\n \"%TypedArray%\": TypedArray,\n \"%TypeError%\": $TypeError,\n \"%Uint8Array%\": typeof Uint8Array === \"undefined\" ? undefined2 : Uint8Array,\n \"%Uint8ClampedArray%\": typeof Uint8ClampedArray === \"undefined\" ? undefined2 : Uint8ClampedArray,\n \"%Uint16Array%\": typeof Uint16Array === \"undefined\" ? undefined2 : Uint16Array,\n \"%Uint32Array%\": typeof Uint32Array === \"undefined\" ? undefined2 : Uint32Array,\n \"%URIError%\": $URIError,\n \"%WeakMap%\": typeof WeakMap === \"undefined\" ? undefined2 : WeakMap,\n \"%WeakRef%\": typeof WeakRef === \"undefined\" ? undefined2 : WeakRef,\n \"%WeakSet%\": typeof WeakSet === \"undefined\" ? undefined2 : WeakSet\n };\n if (getProto) {\n try {\n null.error;\n } catch (e) {\n errorProto = getProto(getProto(e));\n INTRINSICS[\"%Error.prototype%\"] = errorProto;\n }\n }\n var errorProto;\n var doEval = function doEval2(name2) {\n var value;\n if (name2 === \"%AsyncFunction%\") {\n value = getEvalledConstructor(\"async function () {}\");\n } else if (name2 === \"%GeneratorFunction%\") {\n value = getEvalledConstructor(\"function* () {}\");\n } else if (name2 === \"%AsyncGeneratorFunction%\") {\n value = getEvalledConstructor(\"async function* () {}\");\n } else if (name2 === \"%AsyncGenerator%\") {\n var fn = doEval2(\"%AsyncGeneratorFunction%\");\n if (fn) {\n value = fn.prototype;\n }\n } else if (name2 === \"%AsyncIteratorPrototype%\") {\n var gen = doEval2(\"%AsyncGenerator%\");\n if (gen && getProto) {\n value = getProto(gen.prototype);\n }\n }\n INTRINSICS[name2] = value;\n return value;\n };\n var LEGACY_ALIASES = {\n __proto__: null,\n \"%ArrayBufferPrototype%\": [\"ArrayBuffer\", \"prototype\"],\n \"%ArrayPrototype%\": [\"Array\", \"prototype\"],\n \"%ArrayProto_entries%\": [\"Array\", \"prototype\", \"entries\"],\n \"%ArrayProto_forEach%\": [\"Array\", \"prototype\", \"forEach\"],\n \"%ArrayProto_keys%\": [\"Array\", \"prototype\", \"keys\"],\n \"%ArrayProto_values%\": [\"Array\", \"prototype\", \"values\"],\n \"%AsyncFunctionPrototype%\": [\"AsyncFunction\", \"prototype\"],\n \"%AsyncGenerator%\": [\"AsyncGeneratorFunction\", \"prototype\"],\n \"%AsyncGeneratorPrototype%\": [\"AsyncGeneratorFunction\", \"prototype\", \"prototype\"],\n \"%BooleanPrototype%\": [\"Boolean\", \"prototype\"],\n \"%DataViewPrototype%\": [\"DataView\", \"prototype\"],\n \"%DatePrototype%\": [\"Date\", \"prototype\"],\n \"%ErrorPrototype%\": [\"Error\", \"prototype\"],\n \"%EvalErrorPrototype%\": [\"EvalError\", \"prototype\"],\n \"%Float32ArrayPrototype%\": [\"Float32Array\", \"prototype\"],\n \"%Float64ArrayPrototype%\": [\"Float64Array\", \"prototype\"],\n \"%FunctionPrototype%\": [\"Function\", \"prototype\"],\n \"%Generator%\": [\"GeneratorFunction\", \"prototype\"],\n \"%GeneratorPrototype%\": [\"GeneratorFunction\", \"prototype\", \"prototype\"],\n \"%Int8ArrayPrototype%\": [\"Int8Array\", \"prototype\"],\n \"%Int16ArrayPrototype%\": [\"Int16Array\", \"prototype\"],\n \"%Int32ArrayPrototype%\": [\"Int32Array\", \"prototype\"],\n \"%JSONParse%\": [\"JSON\", \"parse\"],\n \"%JSONStringify%\": [\"JSON\", \"stringify\"],\n \"%MapPrototype%\": [\"Map\", \"prototype\"],\n \"%NumberPrototype%\": [\"Number\", \"prototype\"],\n \"%ObjectPrototype%\": [\"Object\", \"prototype\"],\n \"%ObjProto_toString%\": [\"Object\", \"prototype\", \"toString\"],\n \"%ObjProto_valueOf%\": [\"Object\", \"prototype\", \"valueOf\"],\n \"%PromisePrototype%\": [\"Promise\", \"prototype\"],\n \"%PromiseProto_then%\": [\"Promise\", \"prototype\", \"then\"],\n \"%Promise_all%\": [\"Promise\", \"all\"],\n \"%Promise_reject%\": [\"Promise\", \"reject\"],\n \"%Promise_resolve%\": [\"Promise\", \"resolve\"],\n \"%RangeErrorPrototype%\": [\"RangeError\", \"prototype\"],\n \"%ReferenceErrorPrototype%\": [\"ReferenceError\", \"prototype\"],\n \"%RegExpPrototype%\": [\"RegExp\", \"prototype\"],\n \"%SetPrototype%\": [\"Set\", \"prototype\"],\n \"%SharedArrayBufferPrototype%\": [\"SharedArrayBuffer\", \"prototype\"],\n \"%StringPrototype%\": [\"String\", \"prototype\"],\n \"%SymbolPrototype%\": [\"Symbol\", \"prototype\"],\n \"%SyntaxErrorPrototype%\": [\"SyntaxError\", \"prototype\"],\n \"%TypedArrayPrototype%\": [\"TypedArray\", \"prototype\"],\n \"%TypeErrorPrototype%\": [\"TypeError\", \"prototype\"],\n \"%Uint8ArrayPrototype%\": [\"Uint8Array\", \"prototype\"],\n \"%Uint8ClampedArrayPrototype%\": [\"Uint8ClampedArray\", \"prototype\"],\n \"%Uint16ArrayPrototype%\": [\"Uint16Array\", \"prototype\"],\n \"%Uint32ArrayPrototype%\": [\"Uint32Array\", \"prototype\"],\n \"%URIErrorPrototype%\": [\"URIError\", \"prototype\"],\n \"%WeakMapPrototype%\": [\"WeakMap\", \"prototype\"],\n \"%WeakSetPrototype%\": [\"WeakSet\", \"prototype\"]\n };\n var bind = require_function_bind();\n var hasOwn = require_hasown();\n var $concat = bind.call(Function.call, Array.prototype.concat);\n var $spliceApply = bind.call(Function.apply, Array.prototype.splice);\n var $replace = bind.call(Function.call, String.prototype.replace);\n var $strSlice = bind.call(Function.call, String.prototype.slice);\n var $exec = bind.call(Function.call, RegExp.prototype.exec);\n var rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\n var reEscapeChar = /\\\\(\\\\)?/g;\n var stringToPath = function stringToPath2(string) {\n var first = $strSlice(string, 0, 1);\n var last = $strSlice(string, -1);\n if (first === \"%\" && last !== \"%\") {\n throw new $SyntaxError(\"invalid intrinsic syntax, expected closing `%`\");\n } else if (last === \"%\" && first !== \"%\") {\n throw new $SyntaxError(\"invalid intrinsic syntax, expected opening `%`\");\n }\n var result = [];\n $replace(string, rePropName, function(match, number, quote, subString) {\n result[result.length] = quote ? $replace(subString, reEscapeChar, \"$1\") : number || match;\n });\n return result;\n };\n var getBaseIntrinsic = function getBaseIntrinsic2(name2, allowMissing) {\n var intrinsicName = name2;\n var alias;\n if (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n alias = LEGACY_ALIASES[intrinsicName];\n intrinsicName = \"%\" + alias[0] + \"%\";\n }\n if (hasOwn(INTRINSICS, intrinsicName)) {\n var value = INTRINSICS[intrinsicName];\n if (value === needsEval) {\n value = doEval(intrinsicName);\n }\n if (typeof value === \"undefined\" && !allowMissing) {\n throw new $TypeError(\"intrinsic \" + name2 + \" exists, but is not available. Please file an issue!\");\n }\n return {\n alias,\n name: intrinsicName,\n value\n };\n }\n throw new $SyntaxError(\"intrinsic \" + name2 + \" does not exist!\");\n };\n module.exports = function GetIntrinsic(name2, allowMissing) {\n if (typeof name2 !== \"string\" || name2.length === 0) {\n throw new $TypeError(\"intrinsic name must be a non-empty string\");\n }\n if (arguments.length > 1 && typeof allowMissing !== \"boolean\") {\n throw new $TypeError('\"allowMissing\" argument must be a boolean');\n }\n if ($exec(/^%?[^%]*%?$/, name2) === null) {\n throw new $SyntaxError(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");\n }\n var parts = stringToPath(name2);\n var intrinsicBaseName = parts.length > 0 ? parts[0] : \"\";\n var intrinsic = getBaseIntrinsic(\"%\" + intrinsicBaseName + \"%\", allowMissing);\n var intrinsicRealName = intrinsic.name;\n var value = intrinsic.value;\n var skipFurtherCaching = false;\n var alias = intrinsic.alias;\n if (alias) {\n intrinsicBaseName = alias[0];\n $spliceApply(parts, $concat([0, 1], alias));\n }\n for (var i = 1, isOwn = true; i < parts.length; i += 1) {\n var part = parts[i];\n var first = $strSlice(part, 0, 1);\n var last = $strSlice(part, -1);\n if ((first === '\"' || first === \"'\" || first === \"`\" || (last === '\"' || last === \"'\" || last === \"`\")) && first !== last) {\n throw new $SyntaxError(\"property names with quotes must have matching quotes\");\n }\n if (part === \"constructor\" || !isOwn) {\n skipFurtherCaching = true;\n }\n intrinsicBaseName += \".\" + part;\n intrinsicRealName = \"%\" + intrinsicBaseName + \"%\";\n if (hasOwn(INTRINSICS, intrinsicRealName)) {\n value = INTRINSICS[intrinsicRealName];\n } else if (value != null) {\n if (!(part in value)) {\n if (!allowMissing) {\n throw new $TypeError(\"base intrinsic for \" + name2 + \" exists, but the property is not available.\");\n }\n return void 0;\n }\n if ($gOPD && i + 1 >= parts.length) {\n var desc = $gOPD(value, part);\n isOwn = !!desc;\n if (isOwn && \"get\" in desc && !(\"originalValue\" in desc.get)) {\n value = desc.get;\n } else {\n value = value[part];\n }\n } else {\n isOwn = hasOwn(value, part);\n value = value[part];\n }\n if (isOwn && !skipFurtherCaching) {\n INTRINSICS[intrinsicRealName] = value;\n }\n }\n }\n return value;\n };\n }\n });\n\n // node_modules/es-define-property/index.js\n var require_es_define_property = __commonJS({\n \"node_modules/es-define-property/index.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var $defineProperty = GetIntrinsic(\"%Object.defineProperty%\", true) || false;\n if ($defineProperty) {\n try {\n $defineProperty({}, \"a\", { value: 1 });\n } catch (e) {\n $defineProperty = false;\n }\n }\n module.exports = $defineProperty;\n }\n });\n\n // node_modules/gopd/index.js\n var require_gopd = __commonJS({\n \"node_modules/gopd/index.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var $gOPD = GetIntrinsic(\"%Object.getOwnPropertyDescriptor%\", true);\n if ($gOPD) {\n try {\n $gOPD([], \"length\");\n } catch (e) {\n $gOPD = null;\n }\n }\n module.exports = $gOPD;\n }\n });\n\n // node_modules/define-data-property/index.js\n var require_define_data_property = __commonJS({\n \"node_modules/define-data-property/index.js\"(exports, module) {\n \"use strict\";\n var $defineProperty = require_es_define_property();\n var $SyntaxError = require_syntax();\n var $TypeError = require_type();\n var gopd = require_gopd();\n module.exports = function defineDataProperty(obj, property, value) {\n if (!obj || typeof obj !== \"object\" && typeof obj !== \"function\") {\n throw new $TypeError(\"`obj` must be an object or a function`\");\n }\n if (typeof property !== \"string\" && typeof property !== \"symbol\") {\n throw new $TypeError(\"`property` must be a string or a symbol`\");\n }\n if (arguments.length > 3 && typeof arguments[3] !== \"boolean\" && arguments[3] !== null) {\n throw new $TypeError(\"`nonEnumerable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 4 && typeof arguments[4] !== \"boolean\" && arguments[4] !== null) {\n throw new $TypeError(\"`nonWritable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 5 && typeof arguments[5] !== \"boolean\" && arguments[5] !== null) {\n throw new $TypeError(\"`nonConfigurable`, if provided, must be a boolean or null\");\n }\n if (arguments.length > 6 && typeof arguments[6] !== \"boolean\") {\n throw new $TypeError(\"`loose`, if provided, must be a boolean\");\n }\n var nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n var nonWritable = arguments.length > 4 ? arguments[4] : null;\n var nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n var loose = arguments.length > 6 ? arguments[6] : false;\n var desc = !!gopd && gopd(obj, property);\n if ($defineProperty) {\n $defineProperty(obj, property, {\n configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n value,\n writable: nonWritable === null && desc ? desc.writable : !nonWritable\n });\n } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) {\n obj[property] = value;\n } else {\n throw new $SyntaxError(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\");\n }\n };\n }\n });\n\n // node_modules/has-property-descriptors/index.js\n var require_has_property_descriptors = __commonJS({\n \"node_modules/has-property-descriptors/index.js\"(exports, module) {\n \"use strict\";\n var $defineProperty = require_es_define_property();\n var hasPropertyDescriptors = function hasPropertyDescriptors2() {\n return !!$defineProperty;\n };\n hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n if (!$defineProperty) {\n return null;\n }\n try {\n return $defineProperty([], \"length\", { value: 1 }).length !== 1;\n } catch (e) {\n return true;\n }\n };\n module.exports = hasPropertyDescriptors;\n }\n });\n\n // node_modules/set-function-length/index.js\n var require_set_function_length = __commonJS({\n \"node_modules/set-function-length/index.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var define2 = require_define_data_property();\n var hasDescriptors = require_has_property_descriptors()();\n var gOPD = require_gopd();\n var $TypeError = require_type();\n var $floor = GetIntrinsic(\"%Math.floor%\");\n module.exports = function setFunctionLength(fn, length) {\n if (typeof fn !== \"function\") {\n throw new $TypeError(\"`fn` is not a function\");\n }\n if (typeof length !== \"number\" || length < 0 || length > 4294967295 || $floor(length) !== length) {\n throw new $TypeError(\"`length` must be a positive 32-bit integer\");\n }\n var loose = arguments.length > 2 && !!arguments[2];\n var functionLengthIsConfigurable = true;\n var functionLengthIsWritable = true;\n if (\"length\" in fn && gOPD) {\n var desc = gOPD(fn, \"length\");\n if (desc && !desc.configurable) {\n functionLengthIsConfigurable = false;\n }\n if (desc && !desc.writable) {\n functionLengthIsWritable = false;\n }\n }\n if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n if (hasDescriptors) {\n define2(\n /** @type {Parameters[0]} */\n fn,\n \"length\",\n length,\n true,\n true\n );\n } else {\n define2(\n /** @type {Parameters[0]} */\n fn,\n \"length\",\n length\n );\n }\n }\n return fn;\n };\n }\n });\n\n // node_modules/call-bind/index.js\n var require_call_bind = __commonJS({\n \"node_modules/call-bind/index.js\"(exports, module) {\n \"use strict\";\n var bind = require_function_bind();\n var GetIntrinsic = require_get_intrinsic();\n var setFunctionLength = require_set_function_length();\n var $TypeError = require_type();\n var $apply = GetIntrinsic(\"%Function.prototype.apply%\");\n var $call = GetIntrinsic(\"%Function.prototype.call%\");\n var $reflectApply = GetIntrinsic(\"%Reflect.apply%\", true) || bind.call($call, $apply);\n var $defineProperty = require_es_define_property();\n var $max = GetIntrinsic(\"%Math.max%\");\n module.exports = function callBind(originalFunction) {\n if (typeof originalFunction !== \"function\") {\n throw new $TypeError(\"a function is required\");\n }\n var func = $reflectApply(bind, $call, arguments);\n return setFunctionLength(\n func,\n 1 + $max(0, originalFunction.length - (arguments.length - 1)),\n true\n );\n };\n var applyBind = function applyBind2() {\n return $reflectApply(bind, $apply, arguments);\n };\n if ($defineProperty) {\n $defineProperty(module.exports, \"apply\", { value: applyBind });\n } else {\n module.exports.apply = applyBind;\n }\n }\n });\n\n // node_modules/call-bind/callBound.js\n var require_callBound = __commonJS({\n \"node_modules/call-bind/callBound.js\"(exports, module) {\n \"use strict\";\n var GetIntrinsic = require_get_intrinsic();\n var callBind = require_call_bind();\n var $indexOf = callBind(GetIntrinsic(\"String.prototype.indexOf\"));\n module.exports = function callBoundIntrinsic(name2, allowMissing) {\n var intrinsic = GetIntrinsic(name2, !!allowMissing);\n if (typeof intrinsic === \"function\" && $indexOf(name2, \".prototype.\") > -1) {\n return callBind(intrinsic);\n }\n return intrinsic;\n };\n }\n });\n\n // node_modules/is-arguments/index.js\n var require_is_arguments = __commonJS({\n \"node_modules/is-arguments/index.js\"(exports, module) {\n \"use strict\";\n var hasToStringTag = require_shams2()();\n var callBound = require_callBound();\n var $toString = callBound(\"Object.prototype.toString\");\n var isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === \"object\" && Symbol.toStringTag in value) {\n return false;\n }\n return $toString(value) === \"[object Arguments]\";\n };\n var isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n return value !== null && typeof value === \"object\" && typeof value.length === \"number\" && value.length >= 0 && $toString(value) !== \"[object Array]\" && $toString(value.callee) === \"[object Function]\";\n };\n var supportsStandardArguments = function() {\n return isStandardArguments(arguments);\n }();\n isStandardArguments.isLegacyArguments = isLegacyArguments;\n module.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n }\n });\n\n // node_modules/is-generator-function/index.js\n var require_is_generator_function = __commonJS({\n \"node_modules/is-generator-function/index.js\"(exports, module) {\n \"use strict\";\n var toStr = Object.prototype.toString;\n var fnToStr = Function.prototype.toString;\n var isFnRegex = /^\\s*(?:function)?\\*/;\n var hasToStringTag = require_shams2()();\n var getProto = Object.getPrototypeOf;\n var getGeneratorFunc = function() {\n if (!hasToStringTag) {\n return false;\n }\n try {\n return Function(\"return function*() {}\")();\n } catch (e) {\n }\n };\n var GeneratorFunction;\n module.exports = function isGeneratorFunction(fn) {\n if (typeof fn !== \"function\") {\n return false;\n }\n if (isFnRegex.test(fnToStr.call(fn))) {\n return true;\n }\n if (!hasToStringTag) {\n var str = toStr.call(fn);\n return str === \"[object GeneratorFunction]\";\n }\n if (!getProto) {\n return false;\n }\n if (typeof GeneratorFunction === \"undefined\") {\n var generatorFunc = getGeneratorFunc();\n GeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n }\n return getProto(fn) === GeneratorFunction;\n };\n }\n });\n\n // node_modules/is-callable/index.js\n var require_is_callable = __commonJS({\n \"node_modules/is-callable/index.js\"(exports, module) {\n \"use strict\";\n var fnToStr = Function.prototype.toString;\n var reflectApply = typeof Reflect === \"object\" && Reflect !== null && Reflect.apply;\n var badArrayLike;\n var isCallableMarker;\n if (typeof reflectApply === \"function\" && typeof Object.defineProperty === \"function\") {\n try {\n badArrayLike = Object.defineProperty({}, \"length\", {\n get: function() {\n throw isCallableMarker;\n }\n });\n isCallableMarker = {};\n reflectApply(function() {\n throw 42;\n }, null, badArrayLike);\n } catch (_) {\n if (_ !== isCallableMarker) {\n reflectApply = null;\n }\n }\n } else {\n reflectApply = null;\n }\n var constructorRegex = /^\\s*class\\b/;\n var isES6ClassFn = function isES6ClassFunction(value) {\n try {\n var fnStr = fnToStr.call(value);\n return constructorRegex.test(fnStr);\n } catch (e) {\n return false;\n }\n };\n var tryFunctionObject = function tryFunctionToStr(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n };\n var toStr = Object.prototype.toString;\n var objectClass = \"[object Object]\";\n var fnClass = \"[object Function]\";\n var genClass = \"[object GeneratorFunction]\";\n var ddaClass = \"[object HTMLAllCollection]\";\n var ddaClass2 = \"[object HTML document.all class]\";\n var ddaClass3 = \"[object HTMLCollection]\";\n var hasToStringTag = typeof Symbol === \"function\" && !!Symbol.toStringTag;\n var isIE68 = !(0 in [,]);\n var isDDA = function isDocumentDotAll() {\n return false;\n };\n if (typeof document === \"object\") {\n all = document.all;\n if (toStr.call(all) === toStr.call(document.all)) {\n isDDA = function isDocumentDotAll(value) {\n if ((isIE68 || !value) && (typeof value === \"undefined\" || typeof value === \"object\")) {\n try {\n var str = toStr.call(value);\n return (str === ddaClass || str === ddaClass2 || str === ddaClass3 || str === objectClass) && value(\"\") == null;\n } catch (e) {\n }\n }\n return false;\n };\n }\n }\n var all;\n module.exports = reflectApply ? function isCallable(value) {\n if (isDDA(value)) {\n return true;\n }\n if (!value) {\n return false;\n }\n if (typeof value !== \"function\" && typeof value !== \"object\") {\n return false;\n }\n try {\n reflectApply(value, null, badArrayLike);\n } catch (e) {\n if (e !== isCallableMarker) {\n return false;\n }\n }\n return !isES6ClassFn(value) && tryFunctionObject(value);\n } : function isCallable(value) {\n if (isDDA(value)) {\n return true;\n }\n if (!value) {\n return false;\n }\n if (typeof value !== \"function\" && typeof value !== \"object\") {\n return false;\n }\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n if (isES6ClassFn(value)) {\n return false;\n }\n var strClass = toStr.call(value);\n if (strClass !== fnClass && strClass !== genClass && !/^\\[object HTML/.test(strClass)) {\n return false;\n }\n return tryFunctionObject(value);\n };\n }\n });\n\n // node_modules/for-each/index.js\n var require_for_each = __commonJS({\n \"node_modules/for-each/index.js\"(exports, module) {\n \"use strict\";\n var isCallable = require_is_callable();\n var toStr = Object.prototype.toString;\n var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n var forEachArray = function forEachArray2(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty2.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n };\n var forEachString = function forEachString2(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n };\n var forEachObject = function forEachObject2(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty2.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n };\n var forEach = function forEach2(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError(\"iterator must be a function\");\n }\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n if (toStr.call(list) === \"[object Array]\") {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === \"string\") {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n };\n module.exports = forEach;\n }\n });\n\n // node_modules/available-typed-arrays/index.js\n var require_available_typed_arrays = __commonJS({\n \"node_modules/available-typed-arrays/index.js\"(exports, module) {\n \"use strict\";\n var possibleNames = [\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int16Array\",\n \"Int32Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\"\n ];\n var g = typeof globalThis === \"undefined\" ? window : globalThis;\n module.exports = function availableTypedArrays() {\n var out = [];\n for (var i = 0; i < possibleNames.length; i++) {\n if (typeof g[possibleNames[i]] === \"function\") {\n out[out.length] = possibleNames[i];\n }\n }\n return out;\n };\n }\n });\n\n // node_modules/which-typed-array/index.js\n var require_which_typed_array = __commonJS({\n \"node_modules/which-typed-array/index.js\"(exports, module) {\n \"use strict\";\n var forEach = require_for_each();\n var availableTypedArrays = require_available_typed_arrays();\n var callBind = require_call_bind();\n var callBound = require_callBound();\n var gOPD = require_gopd();\n var $toString = callBound(\"Object.prototype.toString\");\n var hasToStringTag = require_shams2()();\n var g = typeof globalThis === \"undefined\" ? window : globalThis;\n var typedArrays = availableTypedArrays();\n var $slice = callBound(\"String.prototype.slice\");\n var getPrototypeOf = Object.getPrototypeOf;\n var $indexOf = callBound(\"Array.prototype.indexOf\", true) || /** @type {(array: readonly unknown[], value: unknown) => keyof array} */\n function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n };\n var cache = { __proto__: null };\n if (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function(typedArray) {\n var arr = new g[typedArray]();\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n cache[\"$\" + typedArray] = callBind(descriptor.get);\n }\n });\n } else {\n forEach(typedArrays, function(typedArray) {\n var arr = new g[typedArray]();\n var fn = arr.slice || arr.set;\n if (fn) {\n cache[\"$\" + typedArray] = callBind(fn);\n }\n });\n }\n var tryTypedArrays = function tryAllTypedArrays(value) {\n var found = false;\n forEach(\n // eslint-disable-next-line no-extra-parens\n /** @type {Record<`\\$${TypedArrayName}`, typeof cache>} */\n /** @type {any} */\n cache,\n /** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */\n function(getter, typedArray) {\n if (!found) {\n try {\n if (\"$\" + getter(value) === typedArray) {\n found = $slice(typedArray, 1);\n }\n } catch (e) {\n }\n }\n }\n );\n return found;\n };\n var trySlices = function tryAllSlices(value) {\n var found = false;\n forEach(\n // eslint-disable-next-line no-extra-parens\n /** @type {any} */\n cache,\n /** @type {(getter: typeof cache, name: `\\$${TypedArrayName}`) => void} */\n function(getter, name2) {\n if (!found) {\n try {\n getter(value);\n found = $slice(name2, 1);\n } catch (e) {\n }\n }\n }\n );\n return found;\n };\n module.exports = function whichTypedArray(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (!hasToStringTag) {\n var tag = $slice($toString(value), 8, -1);\n if ($indexOf(typedArrays, tag) > -1) {\n return tag;\n }\n if (tag !== \"Object\") {\n return false;\n }\n return trySlices(value);\n }\n if (!gOPD) {\n return null;\n }\n return tryTypedArrays(value);\n };\n }\n });\n\n // node_modules/is-typed-array/index.js\n var require_is_typed_array = __commonJS({\n \"node_modules/is-typed-array/index.js\"(exports, module) {\n \"use strict\";\n var forEach = require_for_each();\n var availableTypedArrays = require_available_typed_arrays();\n var callBound = require_callBound();\n var $toString = callBound(\"Object.prototype.toString\");\n var hasToStringTag = require_shams2()();\n var gOPD = require_gopd();\n var g = typeof globalThis === \"undefined\" ? window : globalThis;\n var typedArrays = availableTypedArrays();\n var $indexOf = callBound(\"Array.prototype.indexOf\", true) || function indexOf(array, value) {\n for (var i = 0; i < array.length; i += 1) {\n if (array[i] === value) {\n return i;\n }\n }\n return -1;\n };\n var $slice = callBound(\"String.prototype.slice\");\n var toStrTags = {};\n var getPrototypeOf = Object.getPrototypeOf;\n if (hasToStringTag && gOPD && getPrototypeOf) {\n forEach(typedArrays, function(typedArray) {\n var arr = new g[typedArray]();\n if (Symbol.toStringTag in arr) {\n var proto = getPrototypeOf(arr);\n var descriptor = gOPD(proto, Symbol.toStringTag);\n if (!descriptor) {\n var superProto = getPrototypeOf(proto);\n descriptor = gOPD(superProto, Symbol.toStringTag);\n }\n toStrTags[typedArray] = descriptor.get;\n }\n });\n }\n var tryTypedArrays = function tryAllTypedArrays(value) {\n var anyTrue = false;\n forEach(toStrTags, function(getter, typedArray) {\n if (!anyTrue) {\n try {\n anyTrue = getter.call(value) === typedArray;\n } catch (e) {\n }\n }\n });\n return anyTrue;\n };\n module.exports = function isTypedArray(value) {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n if (!hasToStringTag || !(Symbol.toStringTag in value)) {\n var tag = $slice($toString(value), 8, -1);\n return $indexOf(typedArrays, tag) > -1;\n }\n if (!gOPD) {\n return false;\n }\n return tryTypedArrays(value);\n };\n }\n });\n\n // node_modules/util/support/types.js\n var require_types = __commonJS({\n \"node_modules/util/support/types.js\"(exports) {\n \"use strict\";\n var isArgumentsObject = require_is_arguments();\n var isGeneratorFunction = require_is_generator_function();\n var whichTypedArray = require_which_typed_array();\n var isTypedArray = require_is_typed_array();\n function uncurryThis(f) {\n return f.call.bind(f);\n }\n var BigIntSupported = typeof BigInt !== \"undefined\";\n var SymbolSupported = typeof Symbol !== \"undefined\";\n var ObjectToString = uncurryThis(Object.prototype.toString);\n var numberValue = uncurryThis(Number.prototype.valueOf);\n var stringValue = uncurryThis(String.prototype.valueOf);\n var booleanValue = uncurryThis(Boolean.prototype.valueOf);\n if (BigIntSupported) {\n bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n }\n var bigIntValue;\n if (SymbolSupported) {\n symbolValue = uncurryThis(Symbol.prototype.valueOf);\n }\n var symbolValue;\n function checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== \"object\") {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch (e) {\n return false;\n }\n }\n exports.isArgumentsObject = isArgumentsObject;\n exports.isGeneratorFunction = isGeneratorFunction;\n exports.isTypedArray = isTypedArray;\n function isPromise(input) {\n return typeof Promise !== \"undefined\" && input instanceof Promise || input !== null && typeof input === \"object\" && typeof input.then === \"function\" && typeof input.catch === \"function\";\n }\n exports.isPromise = isPromise;\n function isArrayBufferView(value) {\n if (typeof ArrayBuffer !== \"undefined\" && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n return isTypedArray(value) || isDataView(value);\n }\n exports.isArrayBufferView = isArrayBufferView;\n function isUint8Array(value) {\n return whichTypedArray(value) === \"Uint8Array\";\n }\n exports.isUint8Array = isUint8Array;\n function isUint8ClampedArray(value) {\n return whichTypedArray(value) === \"Uint8ClampedArray\";\n }\n exports.isUint8ClampedArray = isUint8ClampedArray;\n function isUint16Array(value) {\n return whichTypedArray(value) === \"Uint16Array\";\n }\n exports.isUint16Array = isUint16Array;\n function isUint32Array(value) {\n return whichTypedArray(value) === \"Uint32Array\";\n }\n exports.isUint32Array = isUint32Array;\n function isInt8Array(value) {\n return whichTypedArray(value) === \"Int8Array\";\n }\n exports.isInt8Array = isInt8Array;\n function isInt16Array(value) {\n return whichTypedArray(value) === \"Int16Array\";\n }\n exports.isInt16Array = isInt16Array;\n function isInt32Array(value) {\n return whichTypedArray(value) === \"Int32Array\";\n }\n exports.isInt32Array = isInt32Array;\n function isFloat32Array(value) {\n return whichTypedArray(value) === \"Float32Array\";\n }\n exports.isFloat32Array = isFloat32Array;\n function isFloat64Array(value) {\n return whichTypedArray(value) === \"Float64Array\";\n }\n exports.isFloat64Array = isFloat64Array;\n function isBigInt64Array(value) {\n return whichTypedArray(value) === \"BigInt64Array\";\n }\n exports.isBigInt64Array = isBigInt64Array;\n function isBigUint64Array(value) {\n return whichTypedArray(value) === \"BigUint64Array\";\n }\n exports.isBigUint64Array = isBigUint64Array;\n function isMapToString(value) {\n return ObjectToString(value) === \"[object Map]\";\n }\n isMapToString.working = typeof Map !== \"undefined\" && isMapToString(/* @__PURE__ */ new Map());\n function isMap(value) {\n if (typeof Map === \"undefined\") {\n return false;\n }\n return isMapToString.working ? isMapToString(value) : value instanceof Map;\n }\n exports.isMap = isMap;\n function isSetToString(value) {\n return ObjectToString(value) === \"[object Set]\";\n }\n isSetToString.working = typeof Set !== \"undefined\" && isSetToString(/* @__PURE__ */ new Set());\n function isSet(value) {\n if (typeof Set === \"undefined\") {\n return false;\n }\n return isSetToString.working ? isSetToString(value) : value instanceof Set;\n }\n exports.isSet = isSet;\n function isWeakMapToString(value) {\n return ObjectToString(value) === \"[object WeakMap]\";\n }\n isWeakMapToString.working = typeof WeakMap !== \"undefined\" && isWeakMapToString(/* @__PURE__ */ new WeakMap());\n function isWeakMap(value) {\n if (typeof WeakMap === \"undefined\") {\n return false;\n }\n return isWeakMapToString.working ? isWeakMapToString(value) : value instanceof WeakMap;\n }\n exports.isWeakMap = isWeakMap;\n function isWeakSetToString(value) {\n return ObjectToString(value) === \"[object WeakSet]\";\n }\n isWeakSetToString.working = typeof WeakSet !== \"undefined\" && isWeakSetToString(/* @__PURE__ */ new WeakSet());\n function isWeakSet(value) {\n return isWeakSetToString(value);\n }\n exports.isWeakSet = isWeakSet;\n function isArrayBufferToString(value) {\n return ObjectToString(value) === \"[object ArrayBuffer]\";\n }\n isArrayBufferToString.working = typeof ArrayBuffer !== \"undefined\" && isArrayBufferToString(new ArrayBuffer());\n function isArrayBuffer(value) {\n if (typeof ArrayBuffer === \"undefined\") {\n return false;\n }\n return isArrayBufferToString.working ? isArrayBufferToString(value) : value instanceof ArrayBuffer;\n }\n exports.isArrayBuffer = isArrayBuffer;\n function isDataViewToString(value) {\n return ObjectToString(value) === \"[object DataView]\";\n }\n isDataViewToString.working = typeof ArrayBuffer !== \"undefined\" && typeof DataView !== \"undefined\" && isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1));\n function isDataView(value) {\n if (typeof DataView === \"undefined\") {\n return false;\n }\n return isDataViewToString.working ? isDataViewToString(value) : value instanceof DataView;\n }\n exports.isDataView = isDataView;\n var SharedArrayBufferCopy = typeof SharedArrayBuffer !== \"undefined\" ? SharedArrayBuffer : void 0;\n function isSharedArrayBufferToString(value) {\n return ObjectToString(value) === \"[object SharedArrayBuffer]\";\n }\n function isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === \"undefined\") {\n return false;\n }\n if (typeof isSharedArrayBufferToString.working === \"undefined\") {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n return isSharedArrayBufferToString.working ? isSharedArrayBufferToString(value) : value instanceof SharedArrayBufferCopy;\n }\n exports.isSharedArrayBuffer = isSharedArrayBuffer;\n function isAsyncFunction(value) {\n return ObjectToString(value) === \"[object AsyncFunction]\";\n }\n exports.isAsyncFunction = isAsyncFunction;\n function isMapIterator(value) {\n return ObjectToString(value) === \"[object Map Iterator]\";\n }\n exports.isMapIterator = isMapIterator;\n function isSetIterator(value) {\n return ObjectToString(value) === \"[object Set Iterator]\";\n }\n exports.isSetIterator = isSetIterator;\n function isGeneratorObject(value) {\n return ObjectToString(value) === \"[object Generator]\";\n }\n exports.isGeneratorObject = isGeneratorObject;\n function isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === \"[object WebAssembly.Module]\";\n }\n exports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n function isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n }\n exports.isNumberObject = isNumberObject;\n function isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n }\n exports.isStringObject = isStringObject;\n function isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n }\n exports.isBooleanObject = isBooleanObject;\n function isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n }\n exports.isBigIntObject = isBigIntObject;\n function isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n }\n exports.isSymbolObject = isSymbolObject;\n function isBoxedPrimitive(value) {\n return isNumberObject(value) || isStringObject(value) || isBooleanObject(value) || isBigIntObject(value) || isSymbolObject(value);\n }\n exports.isBoxedPrimitive = isBoxedPrimitive;\n function isAnyArrayBuffer(value) {\n return typeof Uint8Array !== \"undefined\" && (isArrayBuffer(value) || isSharedArrayBuffer(value));\n }\n exports.isAnyArrayBuffer = isAnyArrayBuffer;\n [\"isProxy\", \"isExternal\", \"isModuleNamespaceObject\"].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + \" is not supported in userland\");\n }\n });\n });\n }\n });\n\n // node_modules/util/support/isBufferBrowser.js\n var require_isBufferBrowser = __commonJS({\n \"node_modules/util/support/isBufferBrowser.js\"(exports, module) {\n module.exports = function isBuffer(arg) {\n return arg && typeof arg === \"object\" && typeof arg.copy === \"function\" && typeof arg.fill === \"function\" && typeof arg.readUInt8 === \"function\";\n };\n }\n });\n\n // (disabled):node_modules/util/util.js\n var require_util = __commonJS({\n \"(disabled):node_modules/util/util.js\"(exports) {\n var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n var formatRegExp = /%[sdj%]/g;\n exports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(\" \");\n }\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x2) {\n if (x2 === \"%%\") return \"%\";\n if (i >= len) return x2;\n switch (x2) {\n case \"%s\":\n return String(args[i++]);\n case \"%d\":\n return Number(args[i++]);\n case \"%j\":\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return \"[Circular]\";\n }\n default:\n return x2;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += \" \" + x;\n } else {\n str += \" \" + inspect(x);\n }\n }\n return str;\n };\n exports.deprecate = function(fn, msg) {\n if (typeof process !== \"undefined\" && process.noDeprecation === true) {\n return fn;\n }\n if (typeof process === \"undefined\") {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n };\n var debugs = {};\n var debugEnvRegex = /^$/;\n if (\"false\") {\n debugEnv = \"false\";\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\").replace(/\\*/g, \".*\").replace(/,/g, \"$|^\").toUpperCase();\n debugEnvRegex = new RegExp(\"^\" + debugEnv + \"$\", \"i\");\n }\n var debugEnv;\n exports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error(\"%s %d: %s\", set, pid, msg);\n };\n } else {\n debugs[set] = function() {\n };\n }\n }\n return debugs[set];\n };\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n ctx.showHidden = opts;\n } else if (opts) {\n exports._extend(ctx, opts);\n }\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n exports.inspect = inspect;\n inspect.colors = {\n \"bold\": [1, 22],\n \"italic\": [3, 23],\n \"underline\": [4, 24],\n \"inverse\": [7, 27],\n \"white\": [37, 39],\n \"grey\": [90, 39],\n \"black\": [30, 39],\n \"blue\": [34, 39],\n \"cyan\": [36, 39],\n \"green\": [32, 39],\n \"magenta\": [35, 39],\n \"red\": [31, 39],\n \"yellow\": [33, 39]\n };\n inspect.styles = {\n \"special\": \"cyan\",\n \"number\": \"yellow\",\n \"boolean\": \"yellow\",\n \"undefined\": \"grey\",\n \"null\": \"bold\",\n \"string\": \"green\",\n \"date\": \"magenta\",\n // \"name\": intentionally not styling\n \"regexp\": \"red\"\n };\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + \"m\" + str + \"\\x1B[\" + inspect.colors[style][1] + \"m\";\n } else {\n return str;\n }\n }\n function stylizeNoColor(str, styleType) {\n return str;\n }\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n function formatValue(ctx, value, recurseTimes) {\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n if (isError(value) && (keys.indexOf(\"message\") >= 0 || keys.indexOf(\"description\") >= 0)) {\n return formatError(value);\n }\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name2 = value.name ? \": \" + value.name : \"\";\n return ctx.stylize(\"[Function\" + name2 + \"]\", \"special\");\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), \"date\");\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n var base = \"\", array = false, braces = [\"{\", \"}\"];\n if (isArray(value)) {\n array = true;\n braces = [\"[\", \"]\"];\n }\n if (isFunction(value)) {\n var n = value.name ? \": \" + value.name : \"\";\n base = \" [Function\" + n + \"]\";\n }\n if (isRegExp(value)) {\n base = \" \" + RegExp.prototype.toString.call(value);\n }\n if (isDate(value)) {\n base = \" \" + Date.prototype.toUTCString.call(value);\n }\n if (isError(value)) {\n base = \" \" + formatError(value);\n }\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n } else {\n return ctx.stylize(\"[Object]\", \"special\");\n }\n }\n ctx.seen.push(value);\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n function formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize(\"undefined\", \"undefined\");\n if (isString(value)) {\n var simple = \"'\" + JSON.stringify(value).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + \"'\";\n return ctx.stylize(simple, \"string\");\n }\n if (isNumber(value))\n return ctx.stylize(\"\" + value, \"number\");\n if (isBoolean(value))\n return ctx.stylize(\"\" + value, \"boolean\");\n if (isNull(value))\n return ctx.stylize(\"null\", \"null\");\n }\n function formatError(value) {\n return \"[\" + Error.prototype.toString.call(value) + \"]\";\n }\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty2(value, String(i))) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true\n ));\n } else {\n output.push(\"\");\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n true\n ));\n }\n });\n return output;\n }\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name2, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize(\"[Getter/Setter]\", \"special\");\n } else {\n str = ctx.stylize(\"[Getter]\", \"special\");\n }\n } else {\n if (desc.set) {\n str = ctx.stylize(\"[Setter]\", \"special\");\n }\n }\n if (!hasOwnProperty2(visibleKeys, key)) {\n name2 = \"[\" + key + \"]\";\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf(\"\\n\") > -1) {\n if (array) {\n str = str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\").slice(2);\n } else {\n str = \"\\n\" + str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\");\n }\n }\n } else {\n str = ctx.stylize(\"[Circular]\", \"special\");\n }\n }\n if (isUndefined(name2)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name2 = JSON.stringify(\"\" + key);\n if (name2.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name2 = name2.slice(1, -1);\n name2 = ctx.stylize(name2, \"name\");\n } else {\n name2 = name2.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name2 = ctx.stylize(name2, \"string\");\n }\n }\n return name2 + \": \" + str;\n }\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf(\"\\n\") >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n }, 0);\n if (length > 60) {\n return braces[0] + (base === \"\" ? \"\" : base + \"\\n \") + \" \" + output.join(\",\\n \") + \" \" + braces[1];\n }\n return braces[0] + base + \" \" + output.join(\", \") + \" \" + braces[1];\n }\n exports.types = require_types();\n function isArray(ar) {\n return Array.isArray(ar);\n }\n exports.isArray = isArray;\n function isBoolean(arg) {\n return typeof arg === \"boolean\";\n }\n exports.isBoolean = isBoolean;\n function isNull(arg) {\n return arg === null;\n }\n exports.isNull = isNull;\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n exports.isNullOrUndefined = isNullOrUndefined;\n function isNumber(arg) {\n return typeof arg === \"number\";\n }\n exports.isNumber = isNumber;\n function isString(arg) {\n return typeof arg === \"string\";\n }\n exports.isString = isString;\n function isSymbol(arg) {\n return typeof arg === \"symbol\";\n }\n exports.isSymbol = isSymbol;\n function isUndefined(arg) {\n return arg === void 0;\n }\n exports.isUndefined = isUndefined;\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === \"[object RegExp]\";\n }\n exports.isRegExp = isRegExp;\n exports.types.isRegExp = isRegExp;\n function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n }\n exports.isObject = isObject;\n function isDate(d) {\n return isObject(d) && objectToString(d) === \"[object Date]\";\n }\n exports.isDate = isDate;\n exports.types.isDate = isDate;\n function isError(e) {\n return isObject(e) && (objectToString(e) === \"[object Error]\" || e instanceof Error);\n }\n exports.isError = isError;\n exports.types.isNativeError = isError;\n function isFunction(arg) {\n return typeof arg === \"function\";\n }\n exports.isFunction = isFunction;\n function isPrimitive(arg) {\n return arg === null || typeof arg === \"boolean\" || typeof arg === \"number\" || typeof arg === \"string\" || typeof arg === \"symbol\" || // ES6 symbol\n typeof arg === \"undefined\";\n }\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = require_isBufferBrowser();\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n function pad(n) {\n return n < 10 ? \"0\" + n.toString(10) : n.toString(10);\n }\n var months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n function timestamp() {\n var d = /* @__PURE__ */ new Date();\n var time = [\n pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())\n ].join(\":\");\n return [d.getDate(), months[d.getMonth()], time].join(\" \");\n }\n exports.log = function() {\n console.log(\"%s - %s\", timestamp(), exports.format.apply(exports, arguments));\n };\n exports.inherits = require_inherits_browser();\n exports._extend = function(origin, add) {\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n };\n function hasOwnProperty2(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var kCustomPromisifiedSymbol = typeof Symbol !== \"undefined\" ? Symbol(\"util.promisify.custom\") : void 0;\n exports.promisify = function promisify(original) {\n if (typeof original !== \"function\")\n throw new TypeError('The \"original\" argument must be of type Function');\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== \"function\") {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function(resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function(err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n return promise;\n }\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n };\n exports.promisify.custom = kCustomPromisifiedSymbol;\n function callbackifyOnRejected(reason, cb) {\n if (!reason) {\n var newReason = new Error(\"Promise was rejected with a falsy value\");\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n }\n function callbackify(original) {\n if (typeof original !== \"function\") {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n var maybeCb = args.pop();\n if (typeof maybeCb !== \"function\") {\n throw new TypeError(\"The last argument must be of type Function\");\n }\n var self2 = this;\n var cb = function() {\n return maybeCb.apply(self2, arguments);\n };\n original.apply(this, args).then(\n function(ret) {\n process.nextTick(cb.bind(null, null, ret));\n },\n function(rej) {\n process.nextTick(callbackifyOnRejected.bind(null, rej, cb));\n }\n );\n }\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(\n callbackified,\n getOwnPropertyDescriptors(original)\n );\n return callbackified;\n }\n exports.callbackify = callbackify;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js\n var require_buffer_list = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js\"(exports, module) {\n \"use strict\";\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function(key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n return target;\n }\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n var _require = require_buffer();\n var Buffer2 = _require.Buffer;\n var _require2 = require_util();\n var inspect = _require2.inspect;\n var custom = inspect && inspect.custom || \"inspect\";\n function copyBuffer(src, target, offset) {\n Buffer2.prototype.copy.call(src, target, offset);\n }\n module.exports = /* @__PURE__ */ function() {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;\n else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return \"\";\n var p = this.head;\n var ret = \"\" + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer2.alloc(0);\n var ret = Buffer2.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n ret = this.shift();\n } else {\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;\n else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;\n else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer2.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;\n else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n }();\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js\n var require_destroy = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js\"(exports, module) {\n \"use strict\";\n function destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function(err2) {\n if (!cb && err2) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err2);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n }\n function emitErrorAndCloseNT(self2, err) {\n emitErrorNT(self2, err);\n emitCloseNT(self2);\n }\n function emitCloseNT(self2) {\n if (self2._writableState && !self2._writableState.emitClose) return;\n if (self2._readableState && !self2._readableState.emitClose) return;\n self2.emit(\"close\");\n }\n function undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n }\n function emitErrorNT(self2, err) {\n self2.emit(\"error\", err);\n }\n function errorOrDestroy(stream, err) {\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);\n else stream.emit(\"error\", err);\n }\n module.exports = {\n destroy,\n undestroy,\n errorOrDestroy\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\n var require_errors_browser = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\"(exports, module) {\n \"use strict\";\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n var codes = {};\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === \"string\") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inheritsLoose(NodeError2, _Base);\n function NodeError2(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n return NodeError2;\n }(Base);\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(\", \"), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== \"number\") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType(\"ERR_INVALID_OPT_VALUE\", function(name2, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name2 + '\"';\n }, TypeError);\n createErrorType(\"ERR_INVALID_ARG_TYPE\", function(name2, expected, actual) {\n var determiner;\n if (typeof expected === \"string\" && startsWith(expected, \"not \")) {\n determiner = \"must not be\";\n expected = expected.replace(/^not /, \"\");\n } else {\n determiner = \"must be\";\n }\n var msg;\n if (endsWith(name2, \" argument\")) {\n msg = \"The \".concat(name2, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n } else {\n var type = includes(name2, \".\") ? \"property\" : \"argument\";\n msg = 'The \"'.concat(name2, '\" ').concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n }\n msg += \". Received type \".concat(typeof actual);\n return msg;\n }, TypeError);\n createErrorType(\"ERR_STREAM_PUSH_AFTER_EOF\", \"stream.push() after EOF\");\n createErrorType(\"ERR_METHOD_NOT_IMPLEMENTED\", function(name2) {\n return \"The \" + name2 + \" method is not implemented\";\n });\n createErrorType(\"ERR_STREAM_PREMATURE_CLOSE\", \"Premature close\");\n createErrorType(\"ERR_STREAM_DESTROYED\", function(name2) {\n return \"Cannot call \" + name2 + \" after a stream was destroyed\";\n });\n createErrorType(\"ERR_MULTIPLE_CALLBACK\", \"Callback called multiple times\");\n createErrorType(\"ERR_STREAM_CANNOT_PIPE\", \"Cannot pipe, not readable\");\n createErrorType(\"ERR_STREAM_WRITE_AFTER_END\", \"write after end\");\n createErrorType(\"ERR_STREAM_NULL_VALUES\", \"May not write null values to stream\", TypeError);\n createErrorType(\"ERR_UNKNOWN_ENCODING\", function(arg) {\n return \"Unknown encoding: \" + arg;\n }, TypeError);\n createErrorType(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\", \"stream.unshift() after end event\");\n module.exports.codes = codes;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js\n var require_state = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js\"(exports, module) {\n \"use strict\";\n var ERR_INVALID_OPT_VALUE = require_errors_browser().codes.ERR_INVALID_OPT_VALUE;\n function highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n }\n function getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name2 = isDuplex ? duplexKey : \"highWaterMark\";\n throw new ERR_INVALID_OPT_VALUE(name2, hwm);\n }\n return Math.floor(hwm);\n }\n return state.objectMode ? 16 : 16 * 1024;\n }\n module.exports = {\n getHighWaterMark\n };\n }\n });\n\n // node_modules/util-deprecate/browser.js\n var require_browser = __commonJS({\n \"node_modules/util-deprecate/browser.js\"(exports, module) {\n module.exports = deprecate;\n function deprecate(fn, msg) {\n if (config(\"noDeprecation\")) {\n return fn;\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config(\"throwDeprecation\")) {\n throw new Error(msg);\n } else if (config(\"traceDeprecation\")) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n }\n function config(name2) {\n try {\n if (!window.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = window.localStorage[name2];\n if (null == val) return false;\n return String(val).toLowerCase() === \"true\";\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js\n var require_stream_writable = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js\"(exports, module) {\n \"use strict\";\n module.exports = Writable;\n function CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function() {\n onCorkedFinish(_this, state);\n };\n }\n var Duplex;\n Writable.WritableState = WritableState;\n var internalUtil = {\n deprecate: require_browser()\n };\n var Stream = require_stream_browser();\n var Buffer2 = require_buffer().Buffer;\n var OurUint8Array = window.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer2.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n var ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES;\n var ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END;\n var ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n require_inherits_browser()(Writable, Stream);\n function nop() {\n }\n function WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, \"writableHighWaterMark\", isDuplex);\n this.finalCalled = false;\n this.needDrain = false;\n this.ending = false;\n this.ended = false;\n this.finished = false;\n this.destroyed = false;\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n this.defaultEncoding = options.defaultEncoding || \"utf8\";\n this.length = 0;\n this.writing = false;\n this.corked = 0;\n this.sync = true;\n this.bufferProcessing = false;\n this.onwrite = function(er) {\n onwrite(stream, er);\n };\n this.writecb = null;\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n this.pendingcb = 0;\n this.prefinished = false;\n this.errorEmitted = false;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.bufferedRequestCount = 0;\n this.corkedRequestsFree = new CorkedRequest(this);\n }\n WritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n };\n (function() {\n try {\n Object.defineProperty(WritableState.prototype, \"buffer\", {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, \"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.\", \"DEP0003\")\n });\n } catch (_) {\n }\n })();\n var realHasInstance;\n if (typeof Symbol === \"function\" && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === \"function\") {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n } else {\n realHasInstance = function realHasInstance2(object) {\n return object instanceof this;\n };\n }\n function Writable(options) {\n Duplex = Duplex || require_stream_duplex();\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n this.writable = true;\n if (options) {\n if (typeof options.write === \"function\") this._write = options.write;\n if (typeof options.writev === \"function\") this._writev = options.writev;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n if (typeof options.final === \"function\") this._final = options.final;\n }\n Stream.call(this);\n }\n Writable.prototype.pipe = function() {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n };\n function writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n }\n function validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== \"string\" && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\"], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n }\n Writable.prototype.write = function(chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer2.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = \"buffer\";\n else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== \"function\") cb = nop;\n if (state.ending) writeAfterEnd(this, cb);\n else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n };\n Writable.prototype.cork = function() {\n this._writableState.corked++;\n };\n Writable.prototype.uncork = function() {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n };\n Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n if (typeof encoding === \"string\") encoding = encoding.toLowerCase();\n if (!([\"hex\", \"utf8\", \"utf-8\", \"ascii\", \"binary\", \"base64\", \"ucs2\", \"ucs-2\", \"utf16le\", \"utf-16le\", \"raw\"].indexOf((encoding + \"\").toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n };\n Object.defineProperty(Writable.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n function decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === \"string\") {\n chunk = Buffer2.from(chunk, encoding);\n }\n return chunk;\n }\n Object.defineProperty(Writable.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = \"buffer\";\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk,\n encoding,\n isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n }\n function doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED(\"write\"));\n else if (writev) stream._writev(chunk, state.onwrite);\n else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n }\n function onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n process.nextTick(cb, er);\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n finishMaybe(stream, state);\n }\n }\n function onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n }\n function onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== \"function\") throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);\n else {\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n }\n function afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n }\n function onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit(\"drain\");\n }\n }\n function clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, \"\", holder.finish);\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n }\n Writable.prototype._write = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_write()\"));\n };\n Writable.prototype._writev = null;\n Writable.prototype.end = function(chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === \"function\") {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === \"function\") {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== void 0) this.write(chunk, encoding);\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n if (!state.ending) endWritable(this, state, cb);\n return this;\n };\n Object.defineProperty(Writable.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n }\n function callFinal(stream, state) {\n stream._final(function(err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit(\"prefinish\");\n finishMaybe(stream, state);\n });\n }\n function prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === \"function\" && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit(\"prefinish\");\n }\n }\n }\n function finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit(\"finish\");\n if (state.autoDestroy) {\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n }\n function endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);\n else stream.once(\"finish\", cb);\n }\n state.ended = true;\n stream.writable = false;\n }\n function onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n state.corkedRequestsFree.next = corkReq;\n }\n Object.defineProperty(Writable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === void 0) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n if (!this._writableState) {\n return;\n }\n this._writableState.destroyed = value;\n }\n });\n Writable.prototype.destroy = destroyImpl.destroy;\n Writable.prototype._undestroy = destroyImpl.undestroy;\n Writable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\n var require_stream_duplex = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\"(exports, module) {\n \"use strict\";\n var objectKeys = Object.keys || function(obj) {\n var keys2 = [];\n for (var key in obj) {\n keys2.push(key);\n }\n return keys2;\n };\n module.exports = Duplex;\n var Readable = require_stream_readable();\n var Writable = require_stream_writable();\n require_inherits_browser()(Duplex, Readable);\n {\n keys = objectKeys(Writable.prototype);\n for (v = 0; v < keys.length; v++) {\n method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n }\n var keys;\n var method;\n var v;\n function Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once(\"end\", onend);\n }\n }\n }\n Object.defineProperty(Duplex.prototype, \"writableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n });\n Object.defineProperty(Duplex.prototype, \"writableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n });\n function onend() {\n if (this._writableState.ended) return;\n process.nextTick(onEndNT, this);\n }\n function onEndNT(self2) {\n self2.end();\n }\n Object.defineProperty(Duplex.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n if (this._readableState === void 0 || this._writableState === void 0) {\n return;\n }\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n });\n }\n });\n\n // node_modules/safe-buffer/index.js\n var require_safe_buffer = __commonJS({\n \"node_modules/safe-buffer/index.js\"(exports, module) {\n var buffer = require_buffer();\n var Buffer2 = buffer.Buffer;\n function copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n }\n if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) {\n module.exports = buffer;\n } else {\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n }\n function SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer2(arg, encodingOrOffset, length);\n }\n SafeBuffer.prototype = Object.create(Buffer2.prototype);\n copyProps(Buffer2, SafeBuffer);\n SafeBuffer.from = function(arg, encodingOrOffset, length) {\n if (typeof arg === \"number\") {\n throw new TypeError(\"Argument must not be a number\");\n }\n return Buffer2(arg, encodingOrOffset, length);\n };\n SafeBuffer.alloc = function(size, fill, encoding) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n var buf = Buffer2(size);\n if (fill !== void 0) {\n if (typeof encoding === \"string\") {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n return buf;\n };\n SafeBuffer.allocUnsafe = function(size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n return Buffer2(size);\n };\n SafeBuffer.allocUnsafeSlow = function(size) {\n if (typeof size !== \"number\") {\n throw new TypeError(\"Argument must be a number\");\n }\n return buffer.SlowBuffer(size);\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js\n var require_string_decoder = __commonJS({\n \"node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js\"(exports) {\n \"use strict\";\n var Buffer2 = require_safe_buffer().Buffer;\n var isEncoding = Buffer2.isEncoding || function(encoding) {\n encoding = \"\" + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n case \"raw\":\n return true;\n default:\n return false;\n }\n };\n function _normalizeEncoding(enc) {\n if (!enc) return \"utf8\";\n var retried;\n while (true) {\n switch (enc) {\n case \"utf8\":\n case \"utf-8\":\n return \"utf8\";\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return \"utf16le\";\n case \"latin1\":\n case \"binary\":\n return \"latin1\";\n case \"base64\":\n case \"ascii\":\n case \"hex\":\n return enc;\n default:\n if (retried) return;\n enc = (\"\" + enc).toLowerCase();\n retried = true;\n }\n }\n }\n function normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== \"string\" && (Buffer2.isEncoding === isEncoding || !isEncoding(enc))) throw new Error(\"Unknown encoding: \" + enc);\n return nenc || enc;\n }\n exports.StringDecoder = StringDecoder;\n function StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case \"utf16le\":\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case \"utf8\":\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case \"base64\":\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer2.allocUnsafe(nb);\n }\n StringDecoder.prototype.write = function(buf) {\n if (buf.length === 0) return \"\";\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === void 0) return \"\";\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || \"\";\n };\n StringDecoder.prototype.end = utf8End;\n StringDecoder.prototype.text = utf8Text;\n StringDecoder.prototype.fillLast = function(buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n };\n function utf8CheckByte(byte) {\n if (byte <= 127) return 0;\n else if (byte >> 5 === 6) return 2;\n else if (byte >> 4 === 14) return 3;\n else if (byte >> 3 === 30) return 4;\n return byte >> 6 === 2 ? -1 : -2;\n }\n function utf8CheckIncomplete(self2, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self2.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self2.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;\n else self2.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n }\n function utf8CheckExtraBytes(self2, buf, p) {\n if ((buf[0] & 192) !== 128) {\n self2.lastNeed = 0;\n return \"\\uFFFD\";\n }\n if (self2.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 192) !== 128) {\n self2.lastNeed = 1;\n return \"\\uFFFD\";\n }\n if (self2.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 192) !== 128) {\n self2.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n }\n function utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== void 0) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n }\n function utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString(\"utf8\", i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString(\"utf8\", i, end);\n }\n function utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n }\n function utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString(\"utf16le\", i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 55296 && c <= 56319) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString(\"utf16le\", i, buf.length - 1);\n }\n function utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString(\"utf16le\", 0, end);\n }\n return r;\n }\n function base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString(\"base64\", i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString(\"base64\", i, buf.length - n);\n }\n function base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : \"\";\n if (this.lastNeed) return r + this.lastChar.toString(\"base64\", 0, 3 - this.lastNeed);\n return r;\n }\n function simpleWrite(buf) {\n return buf.toString(this.encoding);\n }\n function simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : \"\";\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\n var require_end_of_stream = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\"(exports, module) {\n \"use strict\";\n var ERR_STREAM_PREMATURE_CLOSE = require_errors_browser().codes.ERR_STREAM_PREMATURE_CLOSE;\n function once(callback) {\n var called = false;\n return function() {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n }\n function noop() {\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n function eos(stream, opts, callback) {\n if (typeof opts === \"function\") return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish2() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish2() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend2() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror2(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose2() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest2() {\n stream.req.on(\"finish\", onfinish);\n };\n if (isRequest(stream)) {\n stream.on(\"complete\", onfinish);\n stream.on(\"abort\", onclose);\n if (stream.req) onrequest();\n else stream.on(\"request\", onrequest);\n } else if (writable && !stream._writableState) {\n stream.on(\"end\", onlegacyfinish);\n stream.on(\"close\", onlegacyfinish);\n }\n stream.on(\"end\", onend);\n stream.on(\"finish\", onfinish);\n if (opts.error !== false) stream.on(\"error\", onerror);\n stream.on(\"close\", onclose);\n return function() {\n stream.removeListener(\"complete\", onfinish);\n stream.removeListener(\"abort\", onclose);\n stream.removeListener(\"request\", onrequest);\n if (stream.req) stream.req.removeListener(\"finish\", onfinish);\n stream.removeListener(\"end\", onlegacyfinish);\n stream.removeListener(\"close\", onlegacyfinish);\n stream.removeListener(\"finish\", onfinish);\n stream.removeListener(\"end\", onend);\n stream.removeListener(\"error\", onerror);\n stream.removeListener(\"close\", onclose);\n };\n }\n module.exports = eos;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js\n var require_async_iterator = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js\"(exports, module) {\n \"use strict\";\n var _Object$setPrototypeO;\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n var finished = require_end_of_stream();\n var kLastResolve = Symbol(\"lastResolve\");\n var kLastReject = Symbol(\"lastReject\");\n var kError = Symbol(\"error\");\n var kEnded = Symbol(\"ended\");\n var kLastPromise = Symbol(\"lastPromise\");\n var kHandlePromise = Symbol(\"handlePromise\");\n var kStream = Symbol(\"stream\");\n function createIterResult(value, done) {\n return {\n value,\n done\n };\n }\n function readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n }\n function onReadable(iter) {\n process.nextTick(readAndResolve, iter);\n }\n function wrapForNext(lastPromise, iter) {\n return function(resolve, reject) {\n lastPromise.then(function() {\n if (iter[kEnded]) {\n resolve(createIterResult(void 0, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n }\n var AsyncIteratorPrototype = Object.getPrototypeOf(function() {\n });\n var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(void 0, true));\n }\n if (this[kStream].destroyed) {\n return new Promise(function(resolve, reject) {\n process.nextTick(function() {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(void 0, true));\n }\n });\n });\n }\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n }, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function() {\n return this;\n }), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n return new Promise(function(resolve, reject) {\n _this2[kStream].destroy(null, function(err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(void 0, true));\n });\n });\n }), _Object$setPrototypeO), AsyncIteratorPrototype);\n var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator2(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function(err) {\n if (err && err.code !== \"ERR_STREAM_PREMATURE_CLOSE\") {\n var reject = iterator[kLastReject];\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(void 0, true));\n }\n iterator[kEnded] = true;\n });\n stream.on(\"readable\", onReadable.bind(null, iterator));\n return iterator;\n };\n module.exports = createReadableStreamAsyncIterator;\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js\n var require_from_browser = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js\"(exports, module) {\n module.exports = function() {\n throw new Error(\"Readable.from is not available in the browser\");\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js\n var require_stream_readable = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js\"(exports, module) {\n \"use strict\";\n module.exports = Readable;\n var Duplex;\n Readable.ReadableState = ReadableState;\n var EE = require_events().EventEmitter;\n var EElistenerCount = function EElistenerCount2(emitter, type) {\n return emitter.listeners(type).length;\n };\n var Stream = require_stream_browser();\n var Buffer2 = require_buffer().Buffer;\n var OurUint8Array = window.Uint8Array || function() {\n };\n function _uint8ArrayToBuffer(chunk) {\n return Buffer2.from(chunk);\n }\n function _isUint8Array(obj) {\n return Buffer2.isBuffer(obj) || obj instanceof OurUint8Array;\n }\n var debugUtil = require_util();\n var debug;\n if (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog(\"stream\");\n } else {\n debug = function debug2() {\n };\n }\n var BufferList = require_buffer_list();\n var destroyImpl = require_destroy();\n var _require = require_state();\n var getHighWaterMark = _require.getHighWaterMark;\n var _require$codes = require_errors_browser().codes;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n var StringDecoder;\n var createReadableStreamAsyncIterator;\n var from;\n require_inherits_browser()(Readable, Stream);\n var errorOrDestroy = destroyImpl.errorOrDestroy;\n var kProxyEvents = [\"error\", \"close\", \"destroy\", \"pause\", \"resume\"];\n function prependListener(emitter, event, fn) {\n if (typeof emitter.prependListener === \"function\") return emitter.prependListener(event, fn);\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);\n else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);\n else emitter._events[event] = [fn, emitter._events[event]];\n }\n function ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require_stream_duplex();\n options = options || {};\n if (typeof isDuplex !== \"boolean\") isDuplex = stream instanceof Duplex;\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n this.highWaterMark = getHighWaterMark(this, options, \"readableHighWaterMark\", isDuplex);\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n this.sync = true;\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n this.emitClose = options.emitClose !== false;\n this.autoDestroy = !!options.autoDestroy;\n this.destroyed = false;\n this.defaultEncoding = options.defaultEncoding || \"utf8\";\n this.awaitDrain = 0;\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n }\n function Readable(options) {\n Duplex = Duplex || require_stream_duplex();\n if (!(this instanceof Readable)) return new Readable(options);\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n this.readable = true;\n if (options) {\n if (typeof options.read === \"function\") this._read = options.read;\n if (typeof options.destroy === \"function\") this._destroy = options.destroy;\n }\n Stream.call(this);\n }\n Object.defineProperty(Readable.prototype, \"destroyed\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === void 0) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n if (!this._readableState) {\n return;\n }\n this._readableState.destroyed = value;\n }\n });\n Readable.prototype.destroy = destroyImpl.destroy;\n Readable.prototype._undestroy = destroyImpl.undestroy;\n Readable.prototype._destroy = function(err, cb) {\n cb(err);\n };\n Readable.prototype.push = function(chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === \"string\") {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer2.from(chunk, encoding);\n encoding = \"\";\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n };\n Readable.prototype.unshift = function(chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n };\n function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug(\"readableAddChunk\", chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== \"string\" && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer2.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());\n else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);\n else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n }\n function addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit(\"data\", chunk);\n } else {\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);\n else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n }\n function chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== \"string\" && chunk !== void 0 && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE(\"chunk\", [\"string\", \"Buffer\", \"Uint8Array\"], chunk);\n }\n return er;\n }\n Readable.prototype.isPaused = function() {\n return this._readableState.flowing === false;\n };\n Readable.prototype.setEncoding = function(enc) {\n if (!StringDecoder) StringDecoder = require_string_decoder().StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n this._readableState.encoding = this._readableState.decoder.encoding;\n var p = this._readableState.buffer.head;\n var content = \"\";\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== \"\") this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n };\n var MAX_HWM = 1073741824;\n function computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n }\n function howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n if (state.flowing && state.length) return state.buffer.head.data.length;\n else return state.length;\n }\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n }\n Readable.prototype.read = function(n) {\n debug(\"read\", n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug(\"read: emitReadable\", state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);\n else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n var doRead = state.needReadable;\n debug(\"need readable\", doRead);\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug(\"length less than watermark\", doRead);\n }\n if (state.ended || state.reading) {\n doRead = false;\n debug(\"reading or ended\", doRead);\n } else if (doRead) {\n debug(\"do read\");\n state.reading = true;\n state.sync = true;\n if (state.length === 0) state.needReadable = true;\n this._read(state.highWaterMark);\n state.sync = false;\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);\n else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n if (!state.ended) state.needReadable = true;\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit(\"data\", ret);\n return ret;\n };\n function onEofChunk(stream, state) {\n debug(\"onEofChunk\");\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n emitReadable(stream);\n } else {\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n }\n function emitReadable(stream) {\n var state = stream._readableState;\n debug(\"emitReadable\", state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug(\"emitReadable\", state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n }\n function emitReadable_(stream) {\n var state = stream._readableState;\n debug(\"emitReadable_\", state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit(\"readable\");\n state.emittedReadable = false;\n }\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n }\n function maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n }\n function maybeReadMore_(stream, state) {\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug(\"maybeReadMore read 0\");\n stream.read(0);\n if (len === state.length)\n break;\n }\n state.readingMore = false;\n }\n Readable.prototype._read = function(n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED(\"_read()\"));\n };\n Readable.prototype.pipe = function(dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug(\"pipe count=%d opts=%j\", state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);\n else src.once(\"end\", endFn);\n dest.on(\"unpipe\", onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug(\"onunpipe\");\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug(\"onend\");\n dest.end();\n }\n var ondrain = pipeOnDrain(src);\n dest.on(\"drain\", ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug(\"cleanup\");\n dest.removeListener(\"close\", onclose);\n dest.removeListener(\"finish\", onfinish);\n dest.removeListener(\"drain\", ondrain);\n dest.removeListener(\"error\", onerror);\n dest.removeListener(\"unpipe\", onunpipe);\n src.removeListener(\"end\", onend);\n src.removeListener(\"end\", unpipe);\n src.removeListener(\"data\", ondata);\n cleanedUp = true;\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on(\"data\", ondata);\n function ondata(chunk) {\n debug(\"ondata\");\n var ret = dest.write(chunk);\n debug(\"dest.write\", ret);\n if (ret === false) {\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug(\"false write response, pause\", state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n function onerror(er) {\n debug(\"onerror\", er);\n unpipe();\n dest.removeListener(\"error\", onerror);\n if (EElistenerCount(dest, \"error\") === 0) errorOrDestroy(dest, er);\n }\n prependListener(dest, \"error\", onerror);\n function onclose() {\n dest.removeListener(\"finish\", onfinish);\n unpipe();\n }\n dest.once(\"close\", onclose);\n function onfinish() {\n debug(\"onfinish\");\n dest.removeListener(\"close\", onclose);\n unpipe();\n }\n dest.once(\"finish\", onfinish);\n function unpipe() {\n debug(\"unpipe\");\n src.unpipe(dest);\n }\n dest.emit(\"pipe\", src);\n if (!state.flowing) {\n debug(\"pipe resume\");\n src.resume();\n }\n return dest;\n };\n function pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug(\"pipeOnDrain\", state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, \"data\")) {\n state.flowing = true;\n flow(src);\n }\n };\n }\n Readable.prototype.unpipe = function(dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n if (state.pipesCount === 0) return this;\n if (state.pipesCount === 1) {\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n }\n if (!dest) {\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) {\n dests[i].emit(\"unpipe\", this, {\n hasUnpiped: false\n });\n }\n return this;\n }\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit(\"unpipe\", this, unpipeInfo);\n return this;\n };\n Readable.prototype.on = function(ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === \"data\") {\n state.readableListening = this.listenerCount(\"readable\") > 0;\n if (state.flowing !== false) this.resume();\n } else if (ev === \"readable\") {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug(\"on readable\", state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n };\n Readable.prototype.addListener = Readable.prototype.on;\n Readable.prototype.removeListener = function(ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === \"readable\") {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n Readable.prototype.removeAllListeners = function(ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === \"readable\" || ev === void 0) {\n process.nextTick(updateReadableListening, this);\n }\n return res;\n };\n function updateReadableListening(self2) {\n var state = self2._readableState;\n state.readableListening = self2.listenerCount(\"readable\") > 0;\n if (state.resumeScheduled && !state.paused) {\n state.flowing = true;\n } else if (self2.listenerCount(\"data\") > 0) {\n self2.resume();\n }\n }\n function nReadingNextTick(self2) {\n debug(\"readable nexttick read 0\");\n self2.read(0);\n }\n Readable.prototype.resume = function() {\n var state = this._readableState;\n if (!state.flowing) {\n debug(\"resume\");\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n };\n function resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n }\n function resume_(stream, state) {\n debug(\"resume\", state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit(\"resume\");\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n }\n Readable.prototype.pause = function() {\n debug(\"call pause flowing=%j\", this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug(\"pause\");\n this._readableState.flowing = false;\n this.emit(\"pause\");\n }\n this._readableState.paused = true;\n return this;\n };\n function flow(stream) {\n var state = stream._readableState;\n debug(\"flow\", state.flowing);\n while (state.flowing && stream.read() !== null) {\n ;\n }\n }\n Readable.prototype.wrap = function(stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on(\"end\", function() {\n debug(\"wrapped end\");\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on(\"data\", function(chunk) {\n debug(\"wrapped data\");\n if (state.decoder) chunk = state.decoder.write(chunk);\n if (state.objectMode && (chunk === null || chunk === void 0)) return;\n else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n for (var i in stream) {\n if (this[i] === void 0 && typeof stream[i] === \"function\") {\n this[i] = /* @__PURE__ */ function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n this._read = function(n2) {\n debug(\"wrapped _read\", n2);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n };\n if (typeof Symbol === \"function\") {\n Readable.prototype[Symbol.asyncIterator] = function() {\n if (createReadableStreamAsyncIterator === void 0) {\n createReadableStreamAsyncIterator = require_async_iterator();\n }\n return createReadableStreamAsyncIterator(this);\n };\n }\n Object.defineProperty(Readable.prototype, \"readableHighWaterMark\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableBuffer\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n });\n Object.defineProperty(Readable.prototype, \"readableFlowing\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n });\n Readable._fromList = fromList;\n Object.defineProperty(Readable.prototype, \"readableLength\", {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n });\n function fromList(n, state) {\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();\n else if (!n || n >= state.length) {\n if (state.decoder) ret = state.buffer.join(\"\");\n else if (state.buffer.length === 1) ret = state.buffer.first();\n else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n }\n function endReadable(stream) {\n var state = stream._readableState;\n debug(\"endReadable\", state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n }\n function endReadableNT(state, stream) {\n debug(\"endReadableNT\", state.endEmitted, state.length);\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit(\"end\");\n if (state.autoDestroy) {\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n }\n if (typeof Symbol === \"function\") {\n Readable.from = function(iterable, opts) {\n if (from === void 0) {\n from = require_from_browser();\n }\n return from(Readable, iterable, opts);\n };\n }\n function indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js\n var require_stream_transform = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js\"(exports, module) {\n \"use strict\";\n module.exports = Transform;\n var _require$codes = require_errors_browser().codes;\n var ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED;\n var ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK;\n var ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING;\n var ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n var Duplex = require_stream_duplex();\n require_inherits_browser()(Transform, Duplex);\n function afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit(\"error\", new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n }\n function Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n this._readableState.needReadable = true;\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === \"function\") this._transform = options.transform;\n if (typeof options.flush === \"function\") this._flush = options.flush;\n }\n this.on(\"prefinish\", prefinish);\n }\n function prefinish() {\n var _this = this;\n if (typeof this._flush === \"function\" && !this._readableState.destroyed) {\n this._flush(function(er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n }\n Transform.prototype.push = function(chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n };\n Transform.prototype._transform = function(chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\"));\n };\n Transform.prototype._write = function(chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n };\n Transform.prototype._read = function(n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n ts.needTransform = true;\n }\n };\n Transform.prototype._destroy = function(err, cb) {\n Duplex.prototype._destroy.call(this, err, function(err2) {\n cb(err2);\n });\n };\n function done(stream, er, data) {\n if (er) return stream.emit(\"error\", er);\n if (data != null)\n stream.push(data);\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n }\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js\n var require_stream_passthrough = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js\"(exports, module) {\n \"use strict\";\n module.exports = PassThrough;\n var Transform = require_stream_transform();\n require_inherits_browser()(PassThrough, Transform);\n function PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n }\n PassThrough.prototype._transform = function(chunk, encoding, cb) {\n cb(null, chunk);\n };\n }\n });\n\n // node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js\n var require_pipeline = __commonJS({\n \"node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js\"(exports, module) {\n \"use strict\";\n var eos;\n function once(callback) {\n var called = false;\n return function() {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n }\n var _require$codes = require_errors_browser().codes;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n function noop(err) {\n if (err) throw err;\n }\n function isRequest(stream) {\n return stream.setHeader && typeof stream.abort === \"function\";\n }\n function destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on(\"close\", function() {\n closed = true;\n });\n if (eos === void 0) eos = require_end_of_stream();\n eos(stream, {\n readable: reading,\n writable: writing\n }, function(err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function(err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === \"function\") return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED(\"pipe\"));\n };\n }\n function call(fn) {\n fn();\n }\n function pipe(from, to) {\n return from.pipe(to);\n }\n function popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== \"function\") return noop;\n return streams.pop();\n }\n function pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS(\"streams\");\n }\n var error;\n var destroys = streams.map(function(stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function(err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n }\n module.exports = pipeline;\n }\n });\n\n // node_modules/stream-browserify/index.js\n var require_stream_browserify = __commonJS({\n \"node_modules/stream-browserify/index.js\"(exports, module) {\n module.exports = Stream;\n var EE = require_events().EventEmitter;\n var inherits = require_inherits_browser();\n inherits(Stream, EE);\n Stream.Readable = require_stream_readable();\n Stream.Writable = require_stream_writable();\n Stream.Duplex = require_stream_duplex();\n Stream.Transform = require_stream_transform();\n Stream.PassThrough = require_stream_passthrough();\n Stream.finished = require_end_of_stream();\n Stream.pipeline = require_pipeline();\n Stream.Stream = Stream;\n function Stream() {\n EE.call(this);\n }\n Stream.prototype.pipe = function(dest, options) {\n var source = this;\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n source.on(\"data\", ondata);\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n dest.on(\"drain\", ondrain);\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on(\"end\", onend);\n source.on(\"close\", onclose);\n }\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n dest.end();\n }\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n if (typeof dest.destroy === \"function\") dest.destroy();\n }\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, \"error\") === 0) {\n throw er;\n }\n }\n source.on(\"error\", onerror);\n dest.on(\"error\", onerror);\n function cleanup() {\n source.removeListener(\"data\", ondata);\n dest.removeListener(\"drain\", ondrain);\n source.removeListener(\"end\", onend);\n source.removeListener(\"close\", onclose);\n source.removeListener(\"error\", onerror);\n dest.removeListener(\"error\", onerror);\n source.removeListener(\"end\", cleanup);\n source.removeListener(\"close\", cleanup);\n dest.removeListener(\"close\", cleanup);\n }\n source.on(\"end\", cleanup);\n source.on(\"close\", cleanup);\n dest.on(\"close\", cleanup);\n dest.emit(\"pipe\", source);\n return dest;\n };\n }\n });\n\n // node_modules/util/util.js\n var require_util2 = __commonJS({\n \"node_modules/util/util.js\"(exports) {\n var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors2(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n var formatRegExp = /%[sdj%]/g;\n exports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(\" \");\n }\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x2) {\n if (x2 === \"%%\") return \"%\";\n if (i >= len) return x2;\n switch (x2) {\n case \"%s\":\n return String(args[i++]);\n case \"%d\":\n return Number(args[i++]);\n case \"%j\":\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return \"[Circular]\";\n }\n default:\n return x2;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += \" \" + x;\n } else {\n str += \" \" + inspect(x);\n }\n }\n return str;\n };\n exports.deprecate = function(fn, msg) {\n if (typeof process !== \"undefined\" && process.noDeprecation === true) {\n return fn;\n }\n if (typeof process === \"undefined\") {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n return deprecated;\n };\n var debugs = {};\n var debugEnvRegex = /^$/;\n if (\"false\") {\n debugEnv = \"false\";\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, \"\\\\$&\").replace(/\\*/g, \".*\").replace(/,/g, \"$|^\").toUpperCase();\n debugEnvRegex = new RegExp(\"^\" + debugEnv + \"$\", \"i\");\n }\n var debugEnv;\n exports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error(\"%s %d: %s\", set, pid, msg);\n };\n } else {\n debugs[set] = function() {\n };\n }\n }\n return debugs[set];\n };\n function inspect(obj, opts) {\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n ctx.showHidden = opts;\n } else if (opts) {\n exports._extend(ctx, opts);\n }\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n exports.inspect = inspect;\n inspect.colors = {\n \"bold\": [1, 22],\n \"italic\": [3, 23],\n \"underline\": [4, 24],\n \"inverse\": [7, 27],\n \"white\": [37, 39],\n \"grey\": [90, 39],\n \"black\": [30, 39],\n \"blue\": [34, 39],\n \"cyan\": [36, 39],\n \"green\": [32, 39],\n \"magenta\": [35, 39],\n \"red\": [31, 39],\n \"yellow\": [33, 39]\n };\n inspect.styles = {\n \"special\": \"cyan\",\n \"number\": \"yellow\",\n \"boolean\": \"yellow\",\n \"undefined\": \"grey\",\n \"null\": \"bold\",\n \"string\": \"green\",\n \"date\": \"magenta\",\n // \"name\": intentionally not styling\n \"regexp\": \"red\"\n };\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + \"m\" + str + \"\\x1B[\" + inspect.colors[style][1] + \"m\";\n } else {\n return str;\n }\n }\n function stylizeNoColor(str, styleType) {\n return str;\n }\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n function formatValue(ctx, value, recurseTimes) {\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n if (isError(value) && (keys.indexOf(\"message\") >= 0 || keys.indexOf(\"description\") >= 0)) {\n return formatError(value);\n }\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name2 = value.name ? \": \" + value.name : \"\";\n return ctx.stylize(\"[Function\" + name2 + \"]\", \"special\");\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), \"date\");\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n var base = \"\", array = false, braces = [\"{\", \"}\"];\n if (isArray(value)) {\n array = true;\n braces = [\"[\", \"]\"];\n }\n if (isFunction(value)) {\n var n = value.name ? \": \" + value.name : \"\";\n base = \" [Function\" + n + \"]\";\n }\n if (isRegExp(value)) {\n base = \" \" + RegExp.prototype.toString.call(value);\n }\n if (isDate(value)) {\n base = \" \" + Date.prototype.toUTCString.call(value);\n }\n if (isError(value)) {\n base = \" \" + formatError(value);\n }\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), \"regexp\");\n } else {\n return ctx.stylize(\"[Object]\", \"special\");\n }\n }\n ctx.seen.push(value);\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n function formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize(\"undefined\", \"undefined\");\n if (isString(value)) {\n var simple = \"'\" + JSON.stringify(value).replace(/^\"|\"$/g, \"\").replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + \"'\";\n return ctx.stylize(simple, \"string\");\n }\n if (isNumber(value))\n return ctx.stylize(\"\" + value, \"number\");\n if (isBoolean(value))\n return ctx.stylize(\"\" + value, \"boolean\");\n if (isNull(value))\n return ctx.stylize(\"null\", \"null\");\n }\n function formatError(value) {\n return \"[\" + Error.prototype.toString.call(value) + \"]\";\n }\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty2(value, String(i))) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n String(i),\n true\n ));\n } else {\n output.push(\"\");\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(\n ctx,\n value,\n recurseTimes,\n visibleKeys,\n key,\n true\n ));\n }\n });\n return output;\n }\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name2, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize(\"[Getter/Setter]\", \"special\");\n } else {\n str = ctx.stylize(\"[Getter]\", \"special\");\n }\n } else {\n if (desc.set) {\n str = ctx.stylize(\"[Setter]\", \"special\");\n }\n }\n if (!hasOwnProperty2(visibleKeys, key)) {\n name2 = \"[\" + key + \"]\";\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf(\"\\n\") > -1) {\n if (array) {\n str = str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\").slice(2);\n } else {\n str = \"\\n\" + str.split(\"\\n\").map(function(line) {\n return \" \" + line;\n }).join(\"\\n\");\n }\n }\n } else {\n str = ctx.stylize(\"[Circular]\", \"special\");\n }\n }\n if (isUndefined(name2)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name2 = JSON.stringify(\"\" + key);\n if (name2.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name2 = name2.slice(1, -1);\n name2 = ctx.stylize(name2, \"name\");\n } else {\n name2 = name2.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name2 = ctx.stylize(name2, \"string\");\n }\n }\n return name2 + \": \" + str;\n }\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf(\"\\n\") >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, \"\").length + 1;\n }, 0);\n if (length > 60) {\n return braces[0] + (base === \"\" ? \"\" : base + \"\\n \") + \" \" + output.join(\",\\n \") + \" \" + braces[1];\n }\n return braces[0] + base + \" \" + output.join(\", \") + \" \" + braces[1];\n }\n exports.types = require_types();\n function isArray(ar) {\n return Array.isArray(ar);\n }\n exports.isArray = isArray;\n function isBoolean(arg) {\n return typeof arg === \"boolean\";\n }\n exports.isBoolean = isBoolean;\n function isNull(arg) {\n return arg === null;\n }\n exports.isNull = isNull;\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n exports.isNullOrUndefined = isNullOrUndefined;\n function isNumber(arg) {\n return typeof arg === \"number\";\n }\n exports.isNumber = isNumber;\n function isString(arg) {\n return typeof arg === \"string\";\n }\n exports.isString = isString;\n function isSymbol(arg) {\n return typeof arg === \"symbol\";\n }\n exports.isSymbol = isSymbol;\n function isUndefined(arg) {\n return arg === void 0;\n }\n exports.isUndefined = isUndefined;\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === \"[object RegExp]\";\n }\n exports.isRegExp = isRegExp;\n exports.types.isRegExp = isRegExp;\n function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n }\n exports.isObject = isObject;\n function isDate(d) {\n return isObject(d) && objectToString(d) === \"[object Date]\";\n }\n exports.isDate = isDate;\n exports.types.isDate = isDate;\n function isError(e) {\n return isObject(e) && (objectToString(e) === \"[object Error]\" || e instanceof Error);\n }\n exports.isError = isError;\n exports.types.isNativeError = isError;\n function isFunction(arg) {\n return typeof arg === \"function\";\n }\n exports.isFunction = isFunction;\n function isPrimitive(arg) {\n return arg === null || typeof arg === \"boolean\" || typeof arg === \"number\" || typeof arg === \"string\" || typeof arg === \"symbol\" || // ES6 symbol\n typeof arg === \"undefined\";\n }\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = require_isBufferBrowser();\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n function pad(n) {\n return n < 10 ? \"0\" + n.toString(10) : n.toString(10);\n }\n var months = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ];\n function timestamp() {\n var d = /* @__PURE__ */ new Date();\n var time = [\n pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())\n ].join(\":\");\n return [d.getDate(), months[d.getMonth()], time].join(\" \");\n }\n exports.log = function() {\n console.log(\"%s - %s\", timestamp(), exports.format.apply(exports, arguments));\n };\n exports.inherits = require_inherits_browser();\n exports._extend = function(origin, add) {\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n };\n function hasOwnProperty2(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n var kCustomPromisifiedSymbol = typeof Symbol !== \"undefined\" ? Symbol(\"util.promisify.custom\") : void 0;\n exports.promisify = function promisify(original) {\n if (typeof original !== \"function\")\n throw new TypeError('The \"original\" argument must be of type Function');\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== \"function\") {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function(resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function(err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n return promise;\n }\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n };\n exports.promisify.custom = kCustomPromisifiedSymbol;\n function callbackifyOnRejected(reason, cb) {\n if (!reason) {\n var newReason = new Error(\"Promise was rejected with a falsy value\");\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n }\n function callbackify(original) {\n if (typeof original !== \"function\") {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n var maybeCb = args.pop();\n if (typeof maybeCb !== \"function\") {\n throw new TypeError(\"The last argument must be of type Function\");\n }\n var self2 = this;\n var cb = function() {\n return maybeCb.apply(self2, arguments);\n };\n original.apply(this, args).then(\n function(ret) {\n process.nextTick(cb.bind(null, null, ret));\n },\n function(rej) {\n process.nextTick(callbackifyOnRejected.bind(null, rej, cb));\n }\n );\n }\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(\n callbackified,\n getOwnPropertyDescriptors(original)\n );\n return callbackified;\n }\n exports.callbackify = callbackify;\n }\n });\n\n // node_modules/assert/build/internal/errors.js\n var require_errors = __commonJS({\n \"node_modules/assert/build/internal/errors.js\"(exports, module) {\n \"use strict\";\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self2, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self2);\n }\n function _assertThisInitialized(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n }\n var codes = {};\n var assert;\n var util;\n function createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === \"string\") {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /* @__PURE__ */ function(_Base) {\n _inherits(NodeError2, _Base);\n var _super = _createSuper(NodeError2);\n function NodeError2(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError2);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError2);\n }(Base);\n codes[code] = NodeError;\n }\n function oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function(i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(\", \"), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n }\n function startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n }\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function includes(str, search, start) {\n if (typeof start !== \"number\") {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n }\n createErrorType(\"ERR_AMBIGUOUS_ARGUMENT\", 'The \"%s\" argument is ambiguous. %s', TypeError);\n createErrorType(\"ERR_INVALID_ARG_TYPE\", function(name2, expected, actual) {\n if (assert === void 0) assert = require_assert();\n assert(typeof name2 === \"string\", \"'name' must be a string\");\n var determiner;\n if (typeof expected === \"string\" && startsWith(expected, \"not \")) {\n determiner = \"must not be\";\n expected = expected.replace(/^not /, \"\");\n } else {\n determiner = \"must be\";\n }\n var msg;\n if (endsWith(name2, \" argument\")) {\n msg = \"The \".concat(name2, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n } else {\n var type = includes(name2, \".\") ? \"property\" : \"argument\";\n msg = 'The \"'.concat(name2, '\" ').concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, \"type\"));\n }\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n }, TypeError);\n createErrorType(\"ERR_INVALID_ARG_VALUE\", function(name2, value) {\n var reason = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : \"is invalid\";\n if (util === void 0) util = require_util2();\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name2, \"' \").concat(reason, \". Received \").concat(inspected);\n }, TypeError, RangeError);\n createErrorType(\"ERR_INVALID_RETURN_VALUE\", function(input, name2, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, ' to be returned from the \"').concat(name2, '\"') + \" function but got \".concat(type, \".\");\n }, TypeError);\n createErrorType(\"ERR_MISSING_ARGS\", function() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === void 0) assert = require_assert();\n assert(args.length > 0, \"At least one arg needs to be specified\");\n var msg = \"The \";\n var len = args.length;\n args = args.map(function(a) {\n return '\"'.concat(a, '\"');\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(\", \");\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n }, TypeError);\n module.exports.codes = codes;\n }\n });\n\n // node_modules/assert/build/internal/assert/assertion_error.js\n var require_assertion_error = __commonJS({\n \"node_modules/assert/build/internal/assert/assertion_error.js\"(exports, module) {\n \"use strict\";\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n function _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return _possibleConstructorReturn(this, result);\n };\n }\n function _possibleConstructorReturn(self2, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return _assertThisInitialized(self2);\n }\n function _assertThisInitialized(self2) {\n if (self2 === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self2;\n }\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? /* @__PURE__ */ new Map() : void 0;\n _wrapNativeSuper = function _wrapNativeSuper2(Class2) {\n if (Class2 === null || !_isNativeFunction(Class2)) return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2)) return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _getPrototypeOf(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } });\n return _setPrototypeOf(Wrapper, Class2);\n };\n return _wrapNativeSuper(Class);\n }\n function _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n _construct = function _construct2(Parent2, args2, Class2) {\n var a = [null];\n a.push.apply(a, args2);\n var Constructor = Function.bind.apply(Parent2, a);\n var instance = new Constructor();\n if (Class2) _setPrototypeOf(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n }\n function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n return true;\n } catch (e) {\n return false;\n }\n }\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n }\n function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf2(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _setPrototypeOf(o, p);\n }\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf2(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _getPrototypeOf(o);\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n var _require = require_util2();\n var inspect = _require.inspect;\n var _require2 = require_errors();\n var ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n function endsWith(str, search, this_len) {\n if (this_len === void 0 || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n }\n function repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return \"\";\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n }\n var blue = \"\";\n var green = \"\";\n var red = \"\";\n var white = \"\";\n var kReadableOperator = {\n deepStrictEqual: \"Expected values to be strictly deep-equal:\",\n strictEqual: \"Expected values to be strictly equal:\",\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: \"Expected values to be loosely deep-equal:\",\n equal: \"Expected values to be loosely equal:\",\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: \"Values identical but not reference-equal:\"\n };\n var kMaxShortLength = 10;\n function copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function(key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, \"message\", {\n value: source.message\n });\n return target;\n }\n function inspectValue(val) {\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1e3,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n }\n function createErrDiff(actual, expected, operator) {\n var other = \"\";\n var res = \"\";\n var lastPos = 0;\n var end = \"\";\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split(\"\\n\");\n var expectedLines = inspectValue(expected).split(\"\\n\");\n var i = 0;\n var indicator = \"\";\n if (operator === \"strictEqual\" && _typeof(actual) === \"object\" && _typeof(expected) === \"object\" && actual !== null && expected !== null) {\n operator = \"strictEqualObject\";\n }\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== \"object\" || actual === null) && (_typeof(expected) !== \"object\" || expected === null) && (actual !== 0 || expected !== 0)) {\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== \"strictEqualObject\") {\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n if (i > 2) {\n indicator = \"\\n \".concat(repeat(\" \", i), \"^\");\n i = 0;\n }\n }\n }\n }\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n if (maxLines === 0) {\n var _actualLines = actualInspected.split(\"\\n\");\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join(\"\\n\"), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== \"\") {\n end = \"\\n \".concat(other).concat(end);\n other = \"\";\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n lastPos = i;\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n } else if (expectedLines.length < i + 1) {\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n lastPos = i;\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, \",\") || actualLine.slice(0, -1) !== expectedLine);\n if (divergingLines && endsWith(expectedLine, \",\") && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += \",\";\n }\n if (divergingLines) {\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n lastPos = i;\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n } else {\n res += other;\n other = \"\";\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : \"\", \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n }\n var AssertionError = /* @__PURE__ */ function(_Error, _inspect$custom) {\n _inherits(AssertionError2, _Error);\n var _super = _createSuper(AssertionError2);\n function AssertionError2(options) {\n var _this;\n _classCallCheck(this, AssertionError2);\n if (_typeof(options) !== \"object\" || options === null) {\n throw new ERR_INVALID_ARG_TYPE(\"options\", \"Object\", options);\n }\n var message = options.message, operator = options.operator, stackStartFn = options.stackStartFn;\n var actual = options.actual, expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = \"\";\n green = \"\";\n white = \"\";\n red = \"\";\n }\n }\n if (_typeof(actual) === \"object\" && actual !== null && _typeof(expected) === \"object\" && expected !== null && \"stack\" in actual && actual instanceof Error && \"stack\" in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === \"deepStrictEqual\" || operator === \"strictEqual\") {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === \"notDeepStrictEqual\" || operator === \"notStrictEqual\") {\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split(\"\\n\");\n if (operator === \"notStrictEqual\" && _typeof(actual) === \"object\" && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join(\"\\n\"), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = \"\";\n var knownOperators = kReadableOperator[operator];\n if (operator === \"notDeepEqual\" || operator === \"notEqual\") {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === \"deepEqual\" || operator === \"equal\") {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), \"name\", {\n value: \"AssertionError [ERR_ASSERTION]\",\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = \"ERR_ASSERTION\";\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n _this.stack;\n _this.name = \"AssertionError\";\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError2, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError2;\n }(/* @__PURE__ */ _wrapNativeSuper(Error), inspect.custom);\n module.exports = AssertionError;\n }\n });\n\n // node_modules/object-keys/isArguments.js\n var require_isArguments = __commonJS({\n \"node_modules/object-keys/isArguments.js\"(exports, module) {\n \"use strict\";\n var toStr = Object.prototype.toString;\n module.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === \"[object Arguments]\";\n if (!isArgs) {\n isArgs = str !== \"[object Array]\" && value !== null && typeof value === \"object\" && typeof value.length === \"number\" && value.length >= 0 && toStr.call(value.callee) === \"[object Function]\";\n }\n return isArgs;\n };\n }\n });\n\n // node_modules/object-keys/implementation.js\n var require_implementation2 = __commonJS({\n \"node_modules/object-keys/implementation.js\"(exports, module) {\n \"use strict\";\n var keysShim;\n if (!Object.keys) {\n has = Object.prototype.hasOwnProperty;\n toStr = Object.prototype.toString;\n isArgs = require_isArguments();\n isEnumerable = Object.prototype.propertyIsEnumerable;\n hasDontEnumBug = !isEnumerable.call({ toString: null }, \"toString\");\n hasProtoEnumBug = isEnumerable.call(function() {\n }, \"prototype\");\n dontEnums = [\n \"toString\",\n \"toLocaleString\",\n \"valueOf\",\n \"hasOwnProperty\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"constructor\"\n ];\n equalsConstructorPrototype = function(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n hasAutomationEqualityBug = function() {\n if (typeof window === \"undefined\") {\n return false;\n }\n for (var k in window) {\n try {\n if (!excludedKeys[\"$\" + k] && has.call(window, k) && window[k] !== null && typeof window[k] === \"object\") {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n return false;\n }();\n equalsConstructorPrototypeIfNotBuggy = function(o) {\n if (typeof window === \"undefined\" || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === \"object\";\n var isFunction = toStr.call(object) === \"[object Function]\";\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === \"[object String]\";\n var theKeys = [];\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError(\"Object.keys called on a non-object\");\n }\n var skipProto = hasProtoEnumBug && isFunction;\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name2 in object) {\n if (!(skipProto && name2 === \"prototype\") && has.call(object, name2)) {\n theKeys.push(String(name2));\n }\n }\n }\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === \"constructor\") && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n return theKeys;\n };\n }\n var has;\n var toStr;\n var isArgs;\n var isEnumerable;\n var hasDontEnumBug;\n var hasProtoEnumBug;\n var dontEnums;\n var equalsConstructorPrototype;\n var excludedKeys;\n var hasAutomationEqualityBug;\n var equalsConstructorPrototypeIfNotBuggy;\n module.exports = keysShim;\n }\n });\n\n // node_modules/object-keys/index.js\n var require_object_keys = __commonJS({\n \"node_modules/object-keys/index.js\"(exports, module) {\n \"use strict\";\n var slice = Array.prototype.slice;\n var isArgs = require_isArguments();\n var origKeys = Object.keys;\n var keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n } : require_implementation2();\n var originalKeys = Object.keys;\n keysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function() {\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n return Object.keys || keysShim;\n };\n module.exports = keysShim;\n }\n });\n\n // node_modules/object.assign/implementation.js\n var require_implementation3 = __commonJS({\n \"node_modules/object.assign/implementation.js\"(exports, module) {\n \"use strict\";\n var objectKeys = require_object_keys();\n var hasSymbols = require_shams()();\n var callBound = require_callBound();\n var toObject = Object;\n var $push = callBound(\"Array.prototype.push\");\n var $propIsEnumerable = callBound(\"Object.prototype.propertyIsEnumerable\");\n var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n module.exports = function assign(target, source1) {\n if (target == null) {\n throw new TypeError(\"target must be an object\");\n }\n var to = toObject(target);\n if (arguments.length === 1) {\n return to;\n }\n for (var s = 1; s < arguments.length; ++s) {\n var from = toObject(arguments[s]);\n var keys = objectKeys(from);\n var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n if (getSymbols) {\n var syms = getSymbols(from);\n for (var j = 0; j < syms.length; ++j) {\n var key = syms[j];\n if ($propIsEnumerable(from, key)) {\n $push(keys, key);\n }\n }\n }\n for (var i = 0; i < keys.length; ++i) {\n var nextKey = keys[i];\n if ($propIsEnumerable(from, nextKey)) {\n var propValue = from[nextKey];\n to[nextKey] = propValue;\n }\n }\n }\n return to;\n };\n }\n });\n\n // node_modules/object.assign/polyfill.js\n var require_polyfill = __commonJS({\n \"node_modules/object.assign/polyfill.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation3();\n var lacksProperEnumerationOrder = function() {\n if (!Object.assign) {\n return false;\n }\n var str = \"abcdefghijklmnopqrst\";\n var letters = str.split(\"\");\n var map = {};\n for (var i = 0; i < letters.length; ++i) {\n map[letters[i]] = letters[i];\n }\n var obj = Object.assign({}, map);\n var actual = \"\";\n for (var k in obj) {\n actual += k;\n }\n return str !== actual;\n };\n var assignHasPendingExceptions = function() {\n if (!Object.assign || !Object.preventExtensions) {\n return false;\n }\n var thrower = Object.preventExtensions({ 1: 2 });\n try {\n Object.assign(thrower, \"xy\");\n } catch (e) {\n return thrower[1] === \"y\";\n }\n return false;\n };\n module.exports = function getPolyfill() {\n if (!Object.assign) {\n return implementation;\n }\n if (lacksProperEnumerationOrder()) {\n return implementation;\n }\n if (assignHasPendingExceptions()) {\n return implementation;\n }\n return Object.assign;\n };\n }\n });\n\n // node_modules/object-is/implementation.js\n var require_implementation4 = __commonJS({\n \"node_modules/object-is/implementation.js\"(exports, module) {\n \"use strict\";\n var numberIsNaN = function(value) {\n return value !== value;\n };\n module.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n if (a === b) {\n return true;\n }\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n return false;\n };\n }\n });\n\n // node_modules/object-is/polyfill.js\n var require_polyfill2 = __commonJS({\n \"node_modules/object-is/polyfill.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation4();\n module.exports = function getPolyfill() {\n return typeof Object.is === \"function\" ? Object.is : implementation;\n };\n }\n });\n\n // node_modules/define-properties/index.js\n var require_define_properties = __commonJS({\n \"node_modules/define-properties/index.js\"(exports, module) {\n \"use strict\";\n var keys = require_object_keys();\n var hasSymbols = typeof Symbol === \"function\" && typeof Symbol(\"foo\") === \"symbol\";\n var toStr = Object.prototype.toString;\n var concat = Array.prototype.concat;\n var origDefineProperty = Object.defineProperty;\n var isFunction = function(fn) {\n return typeof fn === \"function\" && toStr.call(fn) === \"[object Function]\";\n };\n var hasPropertyDescriptors = require_has_property_descriptors()();\n var supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n var defineProperty = function(object, name2, value, predicate) {\n if (name2 in object) {\n if (predicate === true) {\n if (object[name2] === value) {\n return;\n }\n } else if (!isFunction(predicate) || !predicate()) {\n return;\n }\n }\n if (supportsDescriptors) {\n origDefineProperty(object, name2, {\n configurable: true,\n enumerable: false,\n value,\n writable: true\n });\n } else {\n object[name2] = value;\n }\n };\n var defineProperties = function(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n };\n defineProperties.supportsDescriptors = !!supportsDescriptors;\n module.exports = defineProperties;\n }\n });\n\n // node_modules/object-is/shim.js\n var require_shim = __commonJS({\n \"node_modules/object-is/shim.js\"(exports, module) {\n \"use strict\";\n var getPolyfill = require_polyfill2();\n var define2 = require_define_properties();\n module.exports = function shimObjectIs() {\n var polyfill = getPolyfill();\n define2(Object, { is: polyfill }, {\n is: function testObjectIs() {\n return Object.is !== polyfill;\n }\n });\n return polyfill;\n };\n }\n });\n\n // node_modules/object-is/index.js\n var require_object_is = __commonJS({\n \"node_modules/object-is/index.js\"(exports, module) {\n \"use strict\";\n var define2 = require_define_properties();\n var callBind = require_call_bind();\n var implementation = require_implementation4();\n var getPolyfill = require_polyfill2();\n var shim = require_shim();\n var polyfill = callBind(getPolyfill(), Object);\n define2(polyfill, {\n getPolyfill,\n implementation,\n shim\n });\n module.exports = polyfill;\n }\n });\n\n // node_modules/is-nan/implementation.js\n var require_implementation5 = __commonJS({\n \"node_modules/is-nan/implementation.js\"(exports, module) {\n \"use strict\";\n module.exports = function isNaN2(value) {\n return value !== value;\n };\n }\n });\n\n // node_modules/is-nan/polyfill.js\n var require_polyfill3 = __commonJS({\n \"node_modules/is-nan/polyfill.js\"(exports, module) {\n \"use strict\";\n var implementation = require_implementation5();\n module.exports = function getPolyfill() {\n if (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN(\"a\")) {\n return Number.isNaN;\n }\n return implementation;\n };\n }\n });\n\n // node_modules/is-nan/shim.js\n var require_shim2 = __commonJS({\n \"node_modules/is-nan/shim.js\"(exports, module) {\n \"use strict\";\n var define2 = require_define_properties();\n var getPolyfill = require_polyfill3();\n module.exports = function shimNumberIsNaN() {\n var polyfill = getPolyfill();\n define2(Number, { isNaN: polyfill }, {\n isNaN: function testIsNaN() {\n return Number.isNaN !== polyfill;\n }\n });\n return polyfill;\n };\n }\n });\n\n // node_modules/is-nan/index.js\n var require_is_nan = __commonJS({\n \"node_modules/is-nan/index.js\"(exports, module) {\n \"use strict\";\n var callBind = require_call_bind();\n var define2 = require_define_properties();\n var implementation = require_implementation5();\n var getPolyfill = require_polyfill3();\n var shim = require_shim2();\n var polyfill = callBind(getPolyfill(), Number);\n define2(polyfill, {\n getPolyfill,\n implementation,\n shim\n });\n module.exports = polyfill;\n }\n });\n\n // node_modules/assert/build/internal/util/comparisons.js\n var require_comparisons = __commonJS({\n \"node_modules/assert/build/internal/util/comparisons.js\"(exports, module) {\n \"use strict\";\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e, n, i, u, a = [], f = true, o = false;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = false;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = true) ;\n } catch (r2) {\n o = true, n = r2;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n var regexFlagsSupported = /a/g.flags !== void 0;\n var arrayFromSet = function arrayFromSet2(set) {\n var array = [];\n set.forEach(function(value) {\n return array.push(value);\n });\n return array;\n };\n var arrayFromMap = function arrayFromMap2(map) {\n var array = [];\n map.forEach(function(value, key) {\n return array.push([key, value]);\n });\n return array;\n };\n var objectIs = Object.is ? Object.is : require_object_is();\n var objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function() {\n return [];\n };\n var numberIsNaN = Number.isNaN ? Number.isNaN : require_is_nan();\n function uncurryThis(f) {\n return f.call.bind(f);\n }\n var hasOwnProperty2 = uncurryThis(Object.prototype.hasOwnProperty);\n var propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\n var objectToString = uncurryThis(Object.prototype.toString);\n var _require$types = require_util2().types;\n var isAnyArrayBuffer = _require$types.isAnyArrayBuffer;\n var isArrayBufferView = _require$types.isArrayBufferView;\n var isDate = _require$types.isDate;\n var isMap = _require$types.isMap;\n var isRegExp = _require$types.isRegExp;\n var isSet = _require$types.isSet;\n var isNativeError = _require$types.isNativeError;\n var isBoxedPrimitive = _require$types.isBoxedPrimitive;\n var isNumberObject = _require$types.isNumberObject;\n var isStringObject = _require$types.isStringObject;\n var isBooleanObject = _require$types.isBooleanObject;\n var isBigIntObject = _require$types.isBigIntObject;\n var isSymbolObject = _require$types.isSymbolObject;\n var isFloat32Array = _require$types.isFloat32Array;\n var isFloat64Array = _require$types.isFloat64Array;\n function isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n return key.length === 10 && key >= Math.pow(2, 32);\n }\n function getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n }\n function compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n }\n var ONLY_ENUMERABLE = void 0;\n var kStrict = true;\n var kLoose = false;\n var kNoIterator = 0;\n var kIsArray = 1;\n var kIsSet = 2;\n var kIsMap = 3;\n function areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n }\n function areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n }\n function areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n }\n function areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n }\n function isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n }\n function innerDeepEqual(val1, val2, strict, memos) {\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n if (strict) {\n if (_typeof(val1) !== \"object\") {\n return typeof val1 === \"number\" && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== \"object\" || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== \"object\") {\n if (val2 === null || _typeof(val2) !== \"object\") {\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== \"object\") {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n if (val1Tag === \"[object Object]\") {\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n }\n function getEnumerables(val, keys) {\n return keys.filter(function(k) {\n return propertyIsEnumerable(val, k);\n });\n }\n function keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty2(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n if (memos === void 0) {\n memos = {\n val1: /* @__PURE__ */ new Map(),\n val2: /* @__PURE__ */ new Map(),\n position: 0\n };\n } else {\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== void 0) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== void 0) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n }\n function setHasEqualElement(set, val1, strict, memo) {\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n set.delete(val2);\n return true;\n }\n }\n return false;\n }\n function findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case \"undefined\":\n return null;\n case \"object\":\n return void 0;\n case \"symbol\":\n return false;\n case \"string\":\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case \"number\":\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n }\n function setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n }\n function mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === void 0 && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n }\n function setEquiv(a, b, strict, memo) {\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n if (_typeof(val) === \"object\" && val !== null) {\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n if (_typeof(_val) === \"object\" && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n }\n function mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n }\n function mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2), key = _aEntries$i[0], item1 = _aEntries$i[1];\n if (_typeof(key) === \"object\" && key !== null) {\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(key);\n } else {\n var item2 = b.get(key);\n if (item2 === void 0 && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = /* @__PURE__ */ new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2), _key = _bEntries$_i[0], item = _bEntries$_i[1];\n if (_typeof(_key) === \"object\" && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n }\n function objEquiv(a, b, strict, keys, memos, iterationType) {\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty2(a, i)) {\n if (!hasOwnProperty2(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty2(b, i)) {\n return false;\n } else {\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty2(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n }\n function isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n }\n function isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n }\n module.exports = {\n isDeepEqual,\n isDeepStrictEqual\n };\n }\n });\n\n // node_modules/assert/build/assert.js\n var require_assert = __commonJS({\n \"node_modules/assert/build/assert.js\"(exports, module) {\n \"use strict\";\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n }\n function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== void 0) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n var _require = require_errors();\n var _require$codes = _require.codes;\n var ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT;\n var ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE;\n var ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE;\n var ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE;\n var ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n var AssertionError = require_assertion_error();\n var _require2 = require_util2();\n var inspect = _require2.inspect;\n var _require$types = require_util2().types;\n var isPromise = _require$types.isPromise;\n var isRegExp = _require$types.isRegExp;\n var objectAssign = require_polyfill()();\n var objectIs = require_polyfill2()();\n var RegExpPrototypeTest = require_callBound()(\"RegExp.prototype.test\");\n var isDeepEqual;\n var isDeepStrictEqual;\n function lazyLoadComparison() {\n var comparison = require_comparisons();\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n }\n var warned = false;\n var assert = module.exports = ok;\n var NO_EXCEPTION_SENTINEL = {};\n function innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n }\n function fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = \"Failed\";\n } else if (argsLen === 1) {\n message = actual;\n actual = void 0;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn(\"assert.fail() with more than one argument is deprecated. Please use assert.strictEqual() instead or only pass a message.\", \"DeprecationWarning\", \"DEP0094\");\n }\n if (argsLen === 2) operator = \"!=\";\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual,\n expected,\n operator: operator === void 0 ? \"fail\" : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== void 0) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n }\n assert.fail = fail;\n assert.AssertionError = AssertionError;\n function innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = \"No value argument passed to `assert.ok()`\";\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message,\n operator: \"==\",\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n }\n function ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n }\n assert.ok = ok;\n assert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (actual != expected) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"==\",\n stackStartFn: equal\n });\n }\n };\n assert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (actual == expected) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"!=\",\n stackStartFn: notEqual\n });\n }\n };\n assert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"deepEqual\",\n stackStartFn: deepEqual\n });\n }\n };\n assert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"notDeepEqual\",\n stackStartFn: notDeepEqual\n });\n }\n };\n assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"deepStrictEqual\",\n stackStartFn: deepStrictEqual\n });\n }\n };\n assert.notDeepStrictEqual = notDeepStrictEqual;\n function notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"notDeepStrictEqual\",\n stackStartFn: notDeepStrictEqual\n });\n }\n }\n assert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"strictEqual\",\n stackStartFn: strictEqual\n });\n }\n };\n assert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS(\"actual\", \"expected\");\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual,\n expected,\n message,\n operator: \"notStrictEqual\",\n stackStartFn: notStrictEqual\n });\n }\n };\n var Comparison = /* @__PURE__ */ _createClass(function Comparison2(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison2);\n keys.forEach(function(key) {\n if (key in obj) {\n if (actual !== void 0 && typeof actual[key] === \"string\" && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n });\n function compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: \"deepStrictEqual\",\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual,\n expected,\n message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n }\n function expectedException(actual, expected, msg, fn) {\n if (typeof expected !== \"function\") {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE(\"expected\", [\"Function\", \"RegExp\"], expected);\n }\n if (_typeof(actual) !== \"object\" || actual === null) {\n var err = new AssertionError({\n actual,\n expected,\n message: msg,\n operator: \"deepStrictEqual\",\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n if (expected instanceof Error) {\n keys.push(\"name\", \"message\");\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE(\"error\", expected, \"may not be an empty object\");\n }\n if (isDeepEqual === void 0) lazyLoadComparison();\n keys.forEach(function(key) {\n if (typeof actual[key] === \"string\" && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n if (expected.prototype !== void 0 && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n }\n function getActual(fn) {\n if (typeof fn !== \"function\") {\n throw new ERR_INVALID_ARG_TYPE(\"fn\", \"Function\", fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n }\n function checkIsPromise(obj) {\n return isPromise(obj) || obj !== null && _typeof(obj) === \"object\" && typeof obj.then === \"function\" && typeof obj.catch === \"function\";\n }\n function waitForActual(promiseFn) {\n return Promise.resolve().then(function() {\n var resultPromise;\n if (typeof promiseFn === \"function\") {\n resultPromise = promiseFn();\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE(\"instance of Promise\", \"promiseFn\", resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE(\"promiseFn\", [\"Function\", \"Promise\"], promiseFn);\n }\n return Promise.resolve().then(function() {\n return resultPromise;\n }).then(function() {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function(e) {\n return e;\n });\n });\n }\n function expectsError(stackStartFn, actual, error, message) {\n if (typeof error === \"string\") {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE(\"error\", [\"Object\", \"Error\", \"Function\", \"RegExp\"], error);\n }\n if (_typeof(actual) === \"object\" && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT(\"error/message\", 'The error message \"'.concat(actual.message, '\" is identical to the message.'));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT(\"error/message\", 'The error \"'.concat(actual, '\" is identical to the message.'));\n }\n message = error;\n error = void 0;\n } else if (error != null && _typeof(error) !== \"object\" && typeof error !== \"function\") {\n throw new ERR_INVALID_ARG_TYPE(\"error\", [\"Object\", \"Error\", \"Function\", \"RegExp\"], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = \"\";\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : \".\";\n var fnType = stackStartFn.name === \"rejects\" ? \"rejection\" : \"exception\";\n innerFail({\n actual: void 0,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n }\n function expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === \"string\") {\n message = error;\n error = void 0;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : \".\";\n var fnType = stackStartFn.name === \"doesNotReject\" ? \"rejection\" : \"exception\";\n innerFail({\n actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + 'Actual message: \"'.concat(actual && actual.message, '\"'),\n stackStartFn\n });\n }\n throw actual;\n }\n assert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n };\n assert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function(result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n };\n assert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n };\n assert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function(result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n };\n assert.ifError = function ifError(err) {\n if (err !== null && err !== void 0) {\n var message = \"ifError got unwanted exception: \";\n if (_typeof(err) === \"object\" && typeof err.message === \"string\") {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: \"ifError\",\n message,\n stackStartFn: ifError\n });\n var origStack = err.stack;\n if (typeof origStack === \"string\") {\n var tmp2 = origStack.split(\"\\n\");\n tmp2.shift();\n var tmp1 = newErr.stack.split(\"\\n\");\n for (var i = 0; i < tmp2.length; i++) {\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join(\"\\n\"), \"\\n\").concat(tmp2.join(\"\\n\"));\n }\n throw newErr;\n }\n };\n function internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE(\"regexp\", \"RegExp\", regexp);\n }\n var match = fnName === \"match\";\n if (typeof string !== \"string\" || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n message = message || (typeof string !== \"string\" ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? \"The input did not match the regular expression \" : \"The input was expected to not match the regular expression \") + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n }\n assert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, \"match\");\n };\n assert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, \"doesNotMatch\");\n };\n function strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n }\n assert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n });\n assert.strict.strict = assert.strict;\n }\n });\n\n // node_modules/stream-parser/node_modules/ms/index.js\n var require_ms = __commonJS({\n \"node_modules/stream-parser/node_modules/ms/index.js\"(exports, module) {\n var s = 1e3;\n var m = s * 60;\n var h = m * 60;\n var d = h * 24;\n var y = d * 365.25;\n module.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === \"string\" && val.length > 0) {\n return parse2(val);\n } else if (type === \"number\" && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n \"val is not a non-empty string or a valid number. val=\" + JSON.stringify(val)\n );\n };\n function parse2(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || \"ms\").toLowerCase();\n switch (type) {\n case \"years\":\n case \"year\":\n case \"yrs\":\n case \"yr\":\n case \"y\":\n return n * y;\n case \"days\":\n case \"day\":\n case \"d\":\n return n * d;\n case \"hours\":\n case \"hour\":\n case \"hrs\":\n case \"hr\":\n case \"h\":\n return n * h;\n case \"minutes\":\n case \"minute\":\n case \"mins\":\n case \"min\":\n case \"m\":\n return n * m;\n case \"seconds\":\n case \"second\":\n case \"secs\":\n case \"sec\":\n case \"s\":\n return n * s;\n case \"milliseconds\":\n case \"millisecond\":\n case \"msecs\":\n case \"msec\":\n case \"ms\":\n return n;\n default:\n return void 0;\n }\n }\n function fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + \"d\";\n }\n if (ms >= h) {\n return Math.round(ms / h) + \"h\";\n }\n if (ms >= m) {\n return Math.round(ms / m) + \"m\";\n }\n if (ms >= s) {\n return Math.round(ms / s) + \"s\";\n }\n return ms + \"ms\";\n }\n function fmtLong(ms) {\n return plural(ms, d, \"day\") || plural(ms, h, \"hour\") || plural(ms, m, \"minute\") || plural(ms, s, \"second\") || ms + \" ms\";\n }\n function plural(ms, n, name2) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + \" \" + name2;\n }\n return Math.ceil(ms / n) + \" \" + name2 + \"s\";\n }\n }\n });\n\n // node_modules/stream-parser/node_modules/debug/src/debug.js\n var require_debug = __commonJS({\n \"node_modules/stream-parser/node_modules/debug/src/debug.js\"(exports, module) {\n exports = module.exports = createDebug.debug = createDebug[\"default\"] = createDebug;\n exports.coerce = coerce;\n exports.disable = disable;\n exports.enable = enable;\n exports.enabled = enabled;\n exports.humanize = require_ms();\n exports.names = [];\n exports.skips = [];\n exports.formatters = {};\n var prevTime;\n function selectColor(namespace) {\n var hash = 0, i;\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0;\n }\n return exports.colors[Math.abs(hash) % exports.colors.length];\n }\n function createDebug(namespace) {\n function debug() {\n if (!debug.enabled) return;\n var self2 = debug;\n var curr = +/* @__PURE__ */ new Date();\n var ms = curr - (prevTime || curr);\n self2.diff = ms;\n self2.prev = prevTime;\n self2.curr = curr;\n prevTime = curr;\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n args[0] = exports.coerce(args[0]);\n if (\"string\" !== typeof args[0]) {\n args.unshift(\"%O\");\n }\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n if (match === \"%%\") return match;\n index++;\n var formatter = exports.formatters[format];\n if (\"function\" === typeof formatter) {\n var val = args[index];\n match = formatter.call(self2, val);\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n exports.formatArgs.call(self2, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self2, args);\n }\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n if (\"function\" === typeof exports.init) {\n exports.init(debug);\n }\n return debug;\n }\n function enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var split = (typeof namespaces === \"string\" ? namespaces : \"\").split(/[\\s,]+/);\n var len = split.length;\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue;\n namespaces = split[i].replace(/\\*/g, \".*?\");\n if (namespaces[0] === \"-\") {\n exports.skips.push(new RegExp(\"^\" + namespaces.substr(1) + \"$\"));\n } else {\n exports.names.push(new RegExp(\"^\" + namespaces + \"$\"));\n }\n }\n }\n function disable() {\n exports.enable(\"\");\n }\n function enabled(name2) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name2)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name2)) {\n return true;\n }\n }\n return false;\n }\n function coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n }\n }\n });\n\n // node_modules/stream-parser/node_modules/debug/src/browser.js\n var require_browser2 = __commonJS({\n \"node_modules/stream-parser/node_modules/debug/src/browser.js\"(exports, module) {\n exports = module.exports = require_debug();\n exports.log = log;\n exports.formatArgs = formatArgs;\n exports.save = save;\n exports.load = load;\n exports.useColors = useColors;\n exports.storage = \"undefined\" != typeof chrome && \"undefined\" != typeof chrome.storage ? chrome.storage.local : localstorage();\n exports.colors = [\n \"lightseagreen\",\n \"forestgreen\",\n \"goldenrod\",\n \"dodgerblue\",\n \"darkorchid\",\n \"crimson\"\n ];\n function useColors() {\n if (typeof window !== \"undefined\" && window.process && window.process.type === \"renderer\") {\n return true;\n }\n return typeof document !== \"undefined\" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== \"undefined\" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== \"undefined\" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n }\n exports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return \"[UnexpectedJSONParseError]: \" + err.message;\n }\n };\n function formatArgs(args) {\n var useColors2 = this.useColors;\n args[0] = (useColors2 ? \"%c\" : \"\") + this.namespace + (useColors2 ? \" %c\" : \" \") + args[0] + (useColors2 ? \"%c \" : \" \") + \"+\" + exports.humanize(this.diff);\n if (!useColors2) return;\n var c = \"color: \" + this.color;\n args.splice(1, 0, c, \"color: inherit\");\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if (\"%%\" === match) return;\n index++;\n if (\"%c\" === match) {\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n }\n function log() {\n return \"object\" === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n }\n function save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem(\"debug\");\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {\n }\n }\n function load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch (e) {\n }\n if (!r && typeof process !== \"undefined\" && \"env\" in process) {\n r = process.env.DEBUG;\n }\n return r;\n }\n exports.enable(load());\n function localstorage() {\n try {\n return window.localStorage;\n } catch (e) {\n }\n }\n }\n });\n\n // node_modules/stream-parser/index.js\n var require_stream_parser = __commonJS({\n \"node_modules/stream-parser/index.js\"(exports, module) {\n var assert = require_assert();\n var debug = require_browser2()(\"stream-parser\");\n module.exports = Parser;\n var INIT = -1;\n var BUFFERING = 0;\n var SKIPPING = 1;\n var PASSTHROUGH = 2;\n function Parser(stream) {\n var isTransform = stream && \"function\" == typeof stream._transform;\n var isWritable = stream && \"function\" == typeof stream._write;\n if (!isTransform && !isWritable) throw new Error(\"must pass a Writable or Transform stream in\");\n debug(\"extending Parser into stream\");\n stream._bytes = _bytes;\n stream._skipBytes = _skipBytes;\n if (isTransform) stream._passthrough = _passthrough;\n if (isTransform) {\n stream._transform = transform;\n } else {\n stream._write = write;\n }\n }\n function init(stream) {\n debug(\"initializing parser stream\");\n stream._parserBytesLeft = 0;\n stream._parserBuffers = [];\n stream._parserBuffered = 0;\n stream._parserState = INIT;\n stream._parserCallback = null;\n if (\"function\" == typeof stream.push) {\n stream._parserOutput = stream.push.bind(stream);\n }\n stream._parserInit = true;\n }\n function _bytes(n, fn) {\n assert(!this._parserCallback, 'there is already a \"callback\" set!');\n assert(isFinite(n) && n > 0, 'can only buffer a finite number of bytes > 0, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug(\"buffering %o bytes\", n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = BUFFERING;\n }\n function _skipBytes(n, fn) {\n assert(!this._parserCallback, 'there is already a \"callback\" set!');\n assert(n > 0, 'can only skip > 0 bytes, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug(\"skipping %o bytes\", n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = SKIPPING;\n }\n function _passthrough(n, fn) {\n assert(!this._parserCallback, 'There is already a \"callback\" set!');\n assert(n > 0, 'can only pass through > 0 bytes, got \"' + n + '\"');\n if (!this._parserInit) init(this);\n debug(\"passing through %o bytes\", n);\n this._parserBytesLeft = n;\n this._parserCallback = fn;\n this._parserState = PASSTHROUGH;\n }\n function write(chunk, encoding, fn) {\n if (!this._parserInit) init(this);\n debug(\"write(%o bytes)\", chunk.length);\n if (\"function\" == typeof encoding) fn = encoding;\n data(this, chunk, null, fn);\n }\n function transform(chunk, output, fn) {\n if (!this._parserInit) init(this);\n debug(\"transform(%o bytes)\", chunk.length);\n if (\"function\" != typeof output) {\n output = this._parserOutput;\n }\n data(this, chunk, output, fn);\n }\n function _data(stream, chunk, output, fn) {\n if (stream._parserBytesLeft <= 0) {\n return fn(new Error(\"got data but not currently parsing anything\"));\n }\n if (chunk.length <= stream._parserBytesLeft) {\n return function() {\n return process2(stream, chunk, output, fn);\n };\n } else {\n return function() {\n var b = chunk.slice(0, stream._parserBytesLeft);\n return process2(stream, b, output, function(err) {\n if (err) return fn(err);\n if (chunk.length > b.length) {\n return function() {\n return _data(stream, chunk.slice(b.length), output, fn);\n };\n }\n });\n };\n }\n }\n function process2(stream, chunk, output, fn) {\n stream._parserBytesLeft -= chunk.length;\n debug(\"%o bytes left for stream piece\", stream._parserBytesLeft);\n if (stream._parserState === BUFFERING) {\n stream._parserBuffers.push(chunk);\n stream._parserBuffered += chunk.length;\n } else if (stream._parserState === PASSTHROUGH) {\n output(chunk);\n }\n if (0 === stream._parserBytesLeft) {\n var cb = stream._parserCallback;\n if (cb && stream._parserState === BUFFERING && stream._parserBuffers.length > 1) {\n chunk = Buffer.concat(stream._parserBuffers, stream._parserBuffered);\n }\n if (stream._parserState !== BUFFERING) {\n chunk = null;\n }\n stream._parserCallback = null;\n stream._parserBuffered = 0;\n stream._parserState = INIT;\n stream._parserBuffers.splice(0);\n if (cb) {\n var args = [];\n if (chunk) {\n args.push(chunk);\n } else {\n }\n if (output) {\n args.push(output);\n }\n var async = cb.length > args.length;\n if (async) {\n args.push(trampoline(fn));\n }\n var rtn = cb.apply(stream, args);\n if (!async || fn === rtn) return fn;\n }\n } else {\n return fn;\n }\n }\n var data = trampoline(_data);\n function trampoline(fn) {\n return function() {\n var result = fn.apply(this, arguments);\n while (\"function\" == typeof result) {\n result = result();\n }\n return result;\n };\n }\n }\n });\n\n // node_modules/probe-image-size/lib/common.js\n var require_common = __commonJS({\n \"node_modules/probe-image-size/lib/common.js\"(exports) {\n \"use strict\";\n var Transform = require_stream_browserify().Transform;\n var streamParser = require_stream_parser();\n function ParserStream() {\n Transform.call(this, { readableObjectMode: true });\n }\n ParserStream.prototype = Object.create(Transform.prototype);\n ParserStream.prototype.constructor = ParserStream;\n streamParser(ParserStream.prototype);\n exports.ParserStream = ParserStream;\n exports.sliceEq = function(src, start, dest) {\n for (var i = start, j = 0; j < dest.length; ) {\n if (src[i++] !== dest[j++]) return false;\n }\n return true;\n };\n exports.str2arr = function(str, format) {\n var arr = [], i = 0;\n if (format && format === \"hex\") {\n while (i < str.length) {\n arr.push(parseInt(str.slice(i, i + 2), 16));\n i += 2;\n }\n } else {\n for (; i < str.length; i++) {\n arr.push(str.charCodeAt(i) & 255);\n }\n }\n return arr;\n };\n exports.readUInt16LE = function(data, offset) {\n return data[offset] | data[offset + 1] << 8;\n };\n exports.readUInt16BE = function(data, offset) {\n return data[offset + 1] | data[offset] << 8;\n };\n exports.readUInt32LE = function(data, offset) {\n return data[offset] | data[offset + 1] << 8 | data[offset + 2] << 16 | data[offset + 3] * 16777216;\n };\n exports.readUInt32BE = function(data, offset) {\n return data[offset + 3] | data[offset + 2] << 8 | data[offset + 1] << 16 | data[offset] * 16777216;\n };\n function ProbeError(message, code, statusCode) {\n Error.call(this);\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = new Error().stack || \"\";\n }\n this.name = this.constructor.name;\n this.message = message;\n if (code) this.code = code;\n if (statusCode) this.statusCode = statusCode;\n }\n ProbeError.prototype = Object.create(Error.prototype);\n ProbeError.prototype.constructor = ProbeError;\n exports.ProbeError = ProbeError;\n }\n });\n\n // node_modules/probe-image-size/lib/miaf_utils.js\n var require_miaf_utils = __commonJS({\n \"node_modules/probe-image-size/lib/miaf_utils.js\"(exports, module) {\n \"use strict\";\n var readUInt16BE = require_common().readUInt16BE;\n var readUInt32BE = require_common().readUInt32BE;\n function unbox(data, offset) {\n if (data.length < 4 + offset) return null;\n var size = readUInt32BE(data, offset);\n if (data.length < size + offset || size < 8) return null;\n return {\n boxtype: String.fromCharCode.apply(null, data.slice(offset + 4, offset + 8)),\n data: data.slice(offset + 8, offset + size),\n end: offset + size\n };\n }\n module.exports.unbox = unbox;\n function scan_ipco(data, sandbox) {\n var offset = 0;\n for (; ; ) {\n var box = unbox(data, offset);\n if (!box) break;\n switch (box.boxtype) {\n case \"ispe\":\n sandbox.sizes.push({\n width: readUInt32BE(box.data, 4),\n height: readUInt32BE(box.data, 8)\n });\n break;\n case \"irot\":\n sandbox.transforms.push({\n type: \"irot\",\n value: box.data[0] & 3\n });\n break;\n case \"imir\":\n sandbox.transforms.push({\n type: \"imir\",\n value: box.data[0] & 1\n });\n break;\n }\n offset = box.end;\n }\n }\n function readUIntBE(data, offset, size) {\n var result = 0;\n for (var i = 0; i < size; i++) {\n result = result * 256 + (data[offset + i] || 0);\n }\n return result;\n }\n function scan_iloc(data, sandbox) {\n var offset_size = data[4] >> 4 & 15;\n var length_size = data[4] & 15;\n var base_offset_size = data[5] >> 4 & 15;\n var item_count = readUInt16BE(data, 6);\n var offset = 8;\n for (var i = 0; i < item_count; i++) {\n var item_ID = readUInt16BE(data, offset);\n offset += 2;\n var data_reference_index = readUInt16BE(data, offset);\n offset += 2;\n var base_offset = readUIntBE(data, offset, base_offset_size);\n offset += base_offset_size;\n var extent_count = readUInt16BE(data, offset);\n offset += 2;\n if (data_reference_index === 0 && extent_count === 1) {\n var first_extent_offset = readUIntBE(data, offset, offset_size);\n var first_extent_length = readUIntBE(data, offset + offset_size, length_size);\n sandbox.item_loc[item_ID] = { length: first_extent_length, offset: first_extent_offset + base_offset };\n }\n offset += extent_count * (offset_size + length_size);\n }\n }\n function scan_iinf(data, sandbox) {\n var item_count = readUInt16BE(data, 4);\n var offset = 6;\n for (var i = 0; i < item_count; i++) {\n var box = unbox(data, offset);\n if (!box) break;\n if (box.boxtype === \"infe\") {\n var item_id = readUInt16BE(box.data, 4);\n var item_name = \"\";\n for (var pos = 8; pos < box.data.length && box.data[pos]; pos++) {\n item_name += String.fromCharCode(box.data[pos]);\n }\n sandbox.item_inf[item_name] = item_id;\n }\n offset = box.end;\n }\n }\n function scan_iprp(data, sandbox) {\n var offset = 0;\n for (; ; ) {\n var box = unbox(data, offset);\n if (!box) break;\n if (box.boxtype === \"ipco\") scan_ipco(box.data, sandbox);\n offset = box.end;\n }\n }\n function scan_meta(data, sandbox) {\n var offset = 4;\n for (; ; ) {\n var box = unbox(data, offset);\n if (!box) break;\n if (box.boxtype === \"iprp\") scan_iprp(box.data, sandbox);\n if (box.boxtype === \"iloc\") scan_iloc(box.data, sandbox);\n if (box.boxtype === \"iinf\") scan_iinf(box.data, sandbox);\n offset = box.end;\n }\n }\n function getMaxSize(sizes) {\n var maxWidthSize = sizes.reduce(function(a, b) {\n return a.width > b.width || a.width === b.width && a.height > b.height ? a : b;\n });\n var maxHeightSize = sizes.reduce(function(a, b) {\n return a.height > b.height || a.height === b.height && a.width > b.width ? a : b;\n });\n var maxSize;\n if (maxWidthSize.width > maxHeightSize.height || maxWidthSize.width === maxHeightSize.height && maxWidthSize.height > maxHeightSize.width) {\n maxSize = maxWidthSize;\n } else {\n maxSize = maxHeightSize;\n }\n return maxSize;\n }\n module.exports.readSizeFromMeta = function(data) {\n var sandbox = {\n sizes: [],\n transforms: [],\n item_inf: {},\n item_loc: {}\n };\n scan_meta(data, sandbox);\n if (!sandbox.sizes.length) return;\n var maxSize = getMaxSize(sandbox.sizes);\n var orientation = 1;\n sandbox.transforms.forEach(function(transform) {\n var rotate_ccw = { 1: 6, 2: 5, 3: 8, 4: 7, 5: 4, 6: 3, 7: 2, 8: 1 };\n var mirror_vert = { 1: 4, 2: 3, 3: 2, 4: 1, 5: 6, 6: 5, 7: 8, 8: 7 };\n if (transform.type === \"imir\") {\n if (transform.value === 0) {\n orientation = mirror_vert[orientation];\n } else {\n orientation = mirror_vert[orientation];\n orientation = rotate_ccw[orientation];\n orientation = rotate_ccw[orientation];\n }\n }\n if (transform.type === \"irot\") {\n for (var i = 0; i < transform.value; i++) {\n orientation = rotate_ccw[orientation];\n }\n }\n });\n var exif_location = null;\n if (sandbox.item_inf.Exif) {\n exif_location = sandbox.item_loc[sandbox.item_inf.Exif];\n }\n return {\n width: maxSize.width,\n height: maxSize.height,\n orientation: sandbox.transforms.length ? orientation : null,\n variants: sandbox.sizes,\n exif_location\n };\n };\n module.exports.getMimeType = function(data) {\n var brand = String.fromCharCode.apply(null, data.slice(0, 4));\n var compat = {};\n compat[brand] = true;\n for (var i = 8; i < data.length; i += 4) {\n compat[String.fromCharCode.apply(null, data.slice(i, i + 4))] = true;\n }\n if (!compat.mif1 && !compat.msf1 && !compat.miaf) return;\n if (brand === \"avif\" || brand === \"avis\" || brand === \"avio\") {\n return { type: \"avif\", mime: \"image/avif\" };\n }\n if (brand === \"heic\" || brand === \"heix\") {\n return { type: \"heic\", mime: \"image/heic\" };\n }\n if (brand === \"hevc\" || brand === \"hevx\") {\n return { type: \"heic\", mime: \"image/heic-sequence\" };\n }\n if (compat.avif || compat.avis) {\n return { type: \"avif\", mime: \"image/avif\" };\n }\n if (compat.heic || compat.heix || compat.hevc || compat.hevx || compat.heis) {\n if (compat.msf1) {\n return { type: \"heif\", mime: \"image/heif-sequence\" };\n }\n return { type: \"heif\", mime: \"image/heif\" };\n }\n return { type: \"avif\", mime: \"image/avif\" };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/exif_utils.js\n var require_exif_utils = __commonJS({\n \"node_modules/probe-image-size/lib/exif_utils.js\"(exports, module) {\n \"use strict\";\n function error(message, code) {\n var err = new Error(message);\n err.code = code;\n return err;\n }\n function utf8_decode(str) {\n try {\n return decodeURIComponent(escape(str));\n } catch (_) {\n return str;\n }\n }\n function ExifParser(jpeg_bin, exif_start, exif_end) {\n this.input = jpeg_bin.subarray(exif_start, exif_end);\n this.start = exif_start;\n var sig = String.fromCharCode.apply(null, this.input.subarray(0, 4));\n if (sig !== \"II*\\0\" && sig !== \"MM\\0*\") {\n throw error(\"invalid TIFF signature\", \"EBADDATA\");\n }\n this.big_endian = sig[0] === \"M\";\n }\n ExifParser.prototype.each = function(on_entry) {\n this.aborted = false;\n var offset = this.read_uint32(4);\n this.ifds_to_read = [{\n id: 0,\n offset\n }];\n while (this.ifds_to_read.length > 0 && !this.aborted) {\n var i = this.ifds_to_read.shift();\n if (!i.offset) continue;\n this.scan_ifd(i.id, i.offset, on_entry);\n }\n };\n ExifParser.prototype.read_uint16 = function(offset) {\n var d = this.input;\n if (offset + 2 > d.length) throw error(\"unexpected EOF\", \"EBADDATA\");\n return this.big_endian ? d[offset] * 256 + d[offset + 1] : d[offset] + d[offset + 1] * 256;\n };\n ExifParser.prototype.read_uint32 = function(offset) {\n var d = this.input;\n if (offset + 4 > d.length) throw error(\"unexpected EOF\", \"EBADDATA\");\n return this.big_endian ? d[offset] * 16777216 + d[offset + 1] * 65536 + d[offset + 2] * 256 + d[offset + 3] : d[offset] + d[offset + 1] * 256 + d[offset + 2] * 65536 + d[offset + 3] * 16777216;\n };\n ExifParser.prototype.is_subifd_link = function(ifd, tag) {\n return ifd === 0 && tag === 34665 || // SubIFD\n ifd === 0 && tag === 34853 || // GPS Info\n ifd === 34665 && tag === 40965;\n };\n ExifParser.prototype.exif_format_length = function(format) {\n switch (format) {\n case 1:\n // byte\n case 2:\n // ascii\n case 6:\n // sbyte\n case 7:\n return 1;\n case 3:\n // short\n case 8:\n return 2;\n case 4:\n // long\n case 9:\n // slong\n case 11:\n return 4;\n case 5:\n // rational\n case 10:\n // srational\n case 12:\n return 8;\n default:\n return 0;\n }\n };\n ExifParser.prototype.exif_format_read = function(format, offset) {\n var v;\n switch (format) {\n case 1:\n // byte\n case 2:\n v = this.input[offset];\n return v;\n case 6:\n v = this.input[offset];\n return v | (v & 128) * 33554430;\n case 3:\n v = this.read_uint16(offset);\n return v;\n case 8:\n v = this.read_uint16(offset);\n return v | (v & 32768) * 131070;\n case 4:\n v = this.read_uint32(offset);\n return v;\n case 9:\n v = this.read_uint32(offset);\n return v | 0;\n case 5:\n // rational\n case 10:\n // srational\n case 11:\n // float\n case 12:\n return null;\n // not implemented\n case 7:\n return null;\n // blob\n default:\n return null;\n }\n };\n ExifParser.prototype.scan_ifd = function(ifd_no, offset, on_entry) {\n var entry_count = this.read_uint16(offset);\n offset += 2;\n for (var i = 0; i < entry_count; i++) {\n var tag = this.read_uint16(offset);\n var format = this.read_uint16(offset + 2);\n var count = this.read_uint32(offset + 4);\n var comp_length = this.exif_format_length(format);\n var data_length = count * comp_length;\n var data_offset = data_length <= 4 ? offset + 8 : this.read_uint32(offset + 8);\n var is_subifd_link = false;\n if (data_offset + data_length > this.input.length) {\n throw error(\"unexpected EOF\", \"EBADDATA\");\n }\n var value = [];\n var comp_offset = data_offset;\n for (var j = 0; j < count; j++, comp_offset += comp_length) {\n var item = this.exif_format_read(format, comp_offset);\n if (item === null) {\n value = null;\n break;\n }\n value.push(item);\n }\n if (Array.isArray(value) && format === 2) {\n value = utf8_decode(String.fromCharCode.apply(null, value));\n if (value && value[value.length - 1] === \"\\0\") value = value.slice(0, -1);\n }\n if (this.is_subifd_link(ifd_no, tag)) {\n if (Array.isArray(value) && Number.isInteger(value[0]) && value[0] > 0) {\n this.ifds_to_read.push({\n id: tag,\n offset: value[0]\n });\n is_subifd_link = true;\n }\n }\n var entry = {\n is_big_endian: this.big_endian,\n ifd: ifd_no,\n tag,\n format,\n count,\n entry_offset: offset + this.start,\n data_length,\n data_offset: data_offset + this.start,\n value,\n is_subifd_link\n };\n if (on_entry(entry) === false) {\n this.aborted = true;\n return;\n }\n offset += 12;\n }\n if (ifd_no === 0) {\n this.ifds_to_read.push({\n id: 1,\n offset: this.read_uint32(offset)\n });\n }\n };\n module.exports.ExifParser = ExifParser;\n module.exports.get_orientation = function(data) {\n var orientation = 0;\n try {\n new ExifParser(data, 0, data.length).each(function(entry) {\n if (entry.ifd === 0 && entry.tag === 274 && Array.isArray(entry.value)) {\n orientation = entry.value[0];\n return false;\n }\n });\n return orientation;\n } catch (err) {\n return -1;\n }\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/avif.js\n var require_avif = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/avif.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt32BE = require_common().readUInt32BE;\n var miaf = require_miaf_utils();\n var exif = require_exif_utils();\n var SIG_FTYP = str2arr(\"ftyp\");\n module.exports = function(data) {\n if (!sliceEq(data, 4, SIG_FTYP)) return;\n var firstBox = miaf.unbox(data, 0);\n if (!firstBox) return;\n var fileType = miaf.getMimeType(firstBox.data);\n if (!fileType) return;\n var meta, offset = firstBox.end;\n for (; ; ) {\n var box = miaf.unbox(data, offset);\n if (!box) break;\n offset = box.end;\n if (box.boxtype === \"mdat\") return;\n if (box.boxtype === \"meta\") {\n meta = box.data;\n break;\n }\n }\n if (!meta) return;\n var imgSize = miaf.readSizeFromMeta(meta);\n if (!imgSize) return;\n var result = {\n width: imgSize.width,\n height: imgSize.height,\n type: fileType.type,\n mime: fileType.mime,\n wUnits: \"px\",\n hUnits: \"px\"\n };\n if (imgSize.variants.length > 1) {\n result.variants = imgSize.variants;\n }\n if (imgSize.orientation) {\n result.orientation = imgSize.orientation;\n }\n if (imgSize.exif_location && imgSize.exif_location.offset + imgSize.exif_location.length <= data.length) {\n var sig_offset = readUInt32BE(data, imgSize.exif_location.offset);\n var exif_data = data.slice(\n imgSize.exif_location.offset + sig_offset + 4,\n imgSize.exif_location.offset + imgSize.exif_location.length\n );\n var orientation = exif.get_orientation(exif_data);\n if (orientation > 0) result.orientation = orientation;\n }\n return result;\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/bmp.js\n var require_bmp = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/bmp.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var SIG_BM = str2arr(\"BM\");\n module.exports = function(data) {\n if (data.length < 26) return;\n if (!sliceEq(data, 0, SIG_BM)) return;\n return {\n width: readUInt16LE(data, 18),\n height: readUInt16LE(data, 22),\n type: \"bmp\",\n mime: \"image/bmp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/gif.js\n var require_gif = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/gif.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var SIG_GIF87a = str2arr(\"GIF87a\");\n var SIG_GIF89a = str2arr(\"GIF89a\");\n module.exports = function(data) {\n if (data.length < 10) return;\n if (!sliceEq(data, 0, SIG_GIF87a) && !sliceEq(data, 0, SIG_GIF89a)) return;\n return {\n width: readUInt16LE(data, 6),\n height: readUInt16LE(data, 8),\n type: \"gif\",\n mime: \"image/gif\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/ico.js\n var require_ico = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/ico.js\"(exports, module) {\n \"use strict\";\n var readUInt16LE = require_common().readUInt16LE;\n var HEADER = 0;\n var TYPE_ICO = 1;\n var INDEX_SIZE = 16;\n module.exports = function(data) {\n var header = readUInt16LE(data, 0);\n var type = readUInt16LE(data, 2);\n var numImages = readUInt16LE(data, 4);\n if (header !== HEADER || type !== TYPE_ICO || !numImages) {\n return;\n }\n var variants = [];\n var maxSize = { width: 0, height: 0 };\n for (var i = 0; i < numImages; i++) {\n var width = data[6 + INDEX_SIZE * i] || 256;\n var height = data[6 + INDEX_SIZE * i + 1] || 256;\n var size = { width, height };\n variants.push(size);\n if (width > maxSize.width || height > maxSize.height) {\n maxSize = size;\n }\n }\n return {\n width: maxSize.width,\n height: maxSize.height,\n variants,\n type: \"ico\",\n mime: \"image/x-icon\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/jpeg.js\n var require_jpeg = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/jpeg.js\"(exports, module) {\n \"use strict\";\n var readUInt16BE = require_common().readUInt16BE;\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var exif = require_exif_utils();\n var SIG_EXIF = str2arr(\"Exif\\0\\0\");\n module.exports = function(data) {\n if (data.length < 2) return;\n if (data[0] !== 255 || data[1] !== 216 || data[2] !== 255) return;\n var offset = 2;\n for (; ; ) {\n for (; ; ) {\n if (data.length - offset < 2) return;\n if (data[offset++] === 255) break;\n }\n var code = data[offset++];\n var length;\n while (code === 255) code = data[offset++];\n if (208 <= code && code <= 217 || code === 1) {\n length = 0;\n } else if (192 <= code && code <= 254) {\n if (data.length - offset < 2) return;\n length = readUInt16BE(data, offset) - 2;\n offset += 2;\n } else {\n return;\n }\n if (code === 217 || code === 218) {\n return;\n }\n var orientation;\n if (code === 225 && length >= 10 && sliceEq(data, offset, SIG_EXIF)) {\n orientation = exif.get_orientation(data.slice(offset + 6, offset + length));\n }\n if (length >= 5 && (192 <= code && code <= 207) && code !== 196 && code !== 200 && code !== 204) {\n if (data.length - offset < length) return;\n var result = {\n width: readUInt16BE(data, offset + 3),\n height: readUInt16BE(data, offset + 1),\n type: \"jpg\",\n mime: \"image/jpeg\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n if (orientation > 0) {\n result.orientation = orientation;\n }\n return result;\n }\n offset += length;\n }\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/png.js\n var require_png = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/png.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt32BE = require_common().readUInt32BE;\n var SIG_PNG = str2arr(\"\\x89PNG\\r\\n\u001a\\n\");\n var SIG_IHDR = str2arr(\"IHDR\");\n module.exports = function(data) {\n if (data.length < 24) return;\n if (!sliceEq(data, 0, SIG_PNG)) return;\n if (!sliceEq(data, 12, SIG_IHDR)) return;\n return {\n width: readUInt32BE(data, 16),\n height: readUInt32BE(data, 20),\n type: \"png\",\n mime: \"image/png\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/psd.js\n var require_psd = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/psd.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt32BE = require_common().readUInt32BE;\n var SIG_8BPS = str2arr(\"8BPS\\0\u0001\");\n module.exports = function(data) {\n if (data.length < 6 + 16) return;\n if (!sliceEq(data, 0, SIG_8BPS)) return;\n return {\n width: readUInt32BE(data, 6 + 12),\n height: readUInt32BE(data, 6 + 8),\n type: \"psd\",\n mime: \"image/vnd.adobe.photoshop\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/svg.js\n var require_svg = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/svg.js\"(exports, module) {\n \"use strict\";\n function isWhiteSpace(chr) {\n return chr === 32 || chr === 9 || chr === 13 || chr === 10;\n }\n function isFinitePositive(val) {\n return typeof val === \"number\" && isFinite(val) && val > 0;\n }\n function canBeSvg(buf) {\n var i = 0, max = buf.length;\n if (buf[0] === 239 && buf[1] === 187 && buf[2] === 191) i = 3;\n while (i < max && isWhiteSpace(buf[i])) i++;\n if (i === max) return false;\n return buf[i] === 60;\n }\n var SVG_HEADER_RE = /<[-_.:a-zA-Z0-9][^>]*>/;\n var SVG_TAG_RE = /^<([-_.:a-zA-Z0-9]+:)?svg\\s/;\n var SVG_WIDTH_RE = /[^-]\\bwidth=\"([^%]+?)\"|[^-]\\bwidth='([^%]+?)'/;\n var SVG_HEIGHT_RE = /\\bheight=\"([^%]+?)\"|\\bheight='([^%]+?)'/;\n var SVG_VIEWBOX_RE = /\\bview[bB]ox=\"(.+?)\"|\\bview[bB]ox='(.+?)'/;\n var SVG_UNITS_RE = /in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;\n function svgAttrs(str) {\n var width = str.match(SVG_WIDTH_RE);\n var height = str.match(SVG_HEIGHT_RE);\n var viewbox = str.match(SVG_VIEWBOX_RE);\n return {\n width: width && (width[1] || width[2]),\n height: height && (height[1] || height[2]),\n viewbox: viewbox && (viewbox[1] || viewbox[2])\n };\n }\n function units(str) {\n if (!SVG_UNITS_RE.test(str)) return \"px\";\n return str.match(SVG_UNITS_RE)[0];\n }\n module.exports = function(data) {\n if (!canBeSvg(data)) return;\n var str = \"\";\n for (var i = 0; i < data.length; i++) {\n str += String.fromCharCode(data[i]);\n }\n var svgTag = (str.match(SVG_HEADER_RE) || [\"\"])[0];\n if (!SVG_TAG_RE.test(svgTag)) return;\n var attrs = svgAttrs(svgTag);\n var width = parseFloat(attrs.width);\n var height = parseFloat(attrs.height);\n if (attrs.width && attrs.height) {\n if (!isFinitePositive(width) || !isFinitePositive(height)) return;\n return {\n width,\n height,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(attrs.width),\n hUnits: units(attrs.height)\n };\n }\n var parts = (attrs.viewbox || \"\").split(\" \");\n var viewbox = {\n width: parts[2],\n height: parts[3]\n };\n var vbWidth = parseFloat(viewbox.width);\n var vbHeight = parseFloat(viewbox.height);\n if (!isFinitePositive(vbWidth) || !isFinitePositive(vbHeight)) return;\n if (units(viewbox.width) !== units(viewbox.height)) return;\n var ratio = vbWidth / vbHeight;\n if (attrs.width) {\n if (!isFinitePositive(width)) return;\n return {\n width,\n height: width / ratio,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(attrs.width),\n hUnits: units(attrs.width)\n };\n }\n if (attrs.height) {\n if (!isFinitePositive(height)) return;\n return {\n width: height * ratio,\n height,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(attrs.height),\n hUnits: units(attrs.height)\n };\n }\n return {\n width: vbWidth,\n height: vbHeight,\n type: \"svg\",\n mime: \"image/svg+xml\",\n wUnits: units(viewbox.width),\n hUnits: units(viewbox.height)\n };\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/tiff.js\n var require_tiff = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/tiff.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var readUInt16BE = require_common().readUInt16BE;\n var readUInt32LE = require_common().readUInt32LE;\n var readUInt32BE = require_common().readUInt32BE;\n var SIG_1 = str2arr(\"II*\\0\");\n var SIG_2 = str2arr(\"MM\\0*\");\n function readUInt16(buffer, offset, is_big_endian) {\n return is_big_endian ? readUInt16BE(buffer, offset) : readUInt16LE(buffer, offset);\n }\n function readUInt32(buffer, offset, is_big_endian) {\n return is_big_endian ? readUInt32BE(buffer, offset) : readUInt32LE(buffer, offset);\n }\n function readIFDValue(data, data_offset, is_big_endian) {\n var type = readUInt16(data, data_offset + 2, is_big_endian);\n var values = readUInt32(data, data_offset + 4, is_big_endian);\n if (values !== 1 || type !== 3 && type !== 4) return null;\n if (type === 3) {\n return readUInt16(data, data_offset + 8, is_big_endian);\n }\n return readUInt32(data, data_offset + 8, is_big_endian);\n }\n module.exports = function(data) {\n if (data.length < 8) return;\n if (!sliceEq(data, 0, SIG_1) && !sliceEq(data, 0, SIG_2)) return;\n var is_big_endian = data[0] === 77;\n var count = readUInt32(data, 4, is_big_endian) - 8;\n if (count < 0) return;\n var offset = count + 8;\n if (data.length - offset < 2) return;\n var ifd_size = readUInt16(data, offset + 0, is_big_endian) * 12;\n if (ifd_size <= 0) return;\n offset += 2;\n if (data.length - offset < ifd_size) return;\n var i, width, height, tag;\n for (i = 0; i < ifd_size; i += 12) {\n tag = readUInt16(data, offset + i, is_big_endian);\n if (tag === 256) {\n width = readIFDValue(data, offset + i, is_big_endian);\n } else if (tag === 257) {\n height = readIFDValue(data, offset + i, is_big_endian);\n }\n }\n if (width && height) {\n return {\n width,\n height,\n type: \"tiff\",\n mime: \"image/tiff\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parse_sync/webp.js\n var require_webp = __commonJS({\n \"node_modules/probe-image-size/lib/parse_sync/webp.js\"(exports, module) {\n \"use strict\";\n var str2arr = require_common().str2arr;\n var sliceEq = require_common().sliceEq;\n var readUInt16LE = require_common().readUInt16LE;\n var readUInt32LE = require_common().readUInt32LE;\n var exif = require_exif_utils();\n var SIG_RIFF = str2arr(\"RIFF\");\n var SIG_WEBP = str2arr(\"WEBP\");\n function parseVP8(data, offset) {\n if (data[offset + 3] !== 157 || data[offset + 4] !== 1 || data[offset + 5] !== 42) {\n return;\n }\n return {\n width: readUInt16LE(data, offset + 6) & 16383,\n height: readUInt16LE(data, offset + 8) & 16383,\n type: \"webp\",\n mime: \"image/webp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n function parseVP8L(data, offset) {\n if (data[offset] !== 47) return;\n var bits = readUInt32LE(data, offset + 1);\n return {\n width: (bits & 16383) + 1,\n height: (bits >> 14 & 16383) + 1,\n type: \"webp\",\n mime: \"image/webp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n function parseVP8X(data, offset) {\n return {\n // TODO: replace with `data.readUIntLE(8, 3) + 1`\n // when 0.10 support is dropped\n width: (data[offset + 6] << 16 | data[offset + 5] << 8 | data[offset + 4]) + 1,\n height: (data[offset + 9] << offset | data[offset + 8] << 8 | data[offset + 7]) + 1,\n type: \"webp\",\n mime: \"image/webp\",\n wUnits: \"px\",\n hUnits: \"px\"\n };\n }\n module.exports = function(data) {\n if (data.length < 16) return;\n if (!sliceEq(data, 0, SIG_RIFF) && !sliceEq(data, 8, SIG_WEBP)) return;\n var offset = 12;\n var result = null;\n var exif_orientation = 0;\n var fileLength = readUInt32LE(data, 4) + 8;\n if (fileLength > data.length) return;\n while (offset + 8 < fileLength) {\n if (data[offset] === 0) {\n offset++;\n continue;\n }\n var header = String.fromCharCode.apply(null, data.slice(offset, offset + 4));\n var length = readUInt32LE(data, offset + 4);\n if (header === \"VP8 \" && length >= 10) {\n result = result || parseVP8(data, offset + 8);\n } else if (header === \"VP8L\" && length >= 9) {\n result = result || parseVP8L(data, offset + 8);\n } else if (header === \"VP8X\" && length >= 10) {\n result = result || parseVP8X(data, offset + 8);\n } else if (header === \"EXIF\") {\n exif_orientation = exif.get_orientation(data.slice(offset + 8, offset + 8 + length));\n offset = Infinity;\n }\n offset += 8 + length;\n }\n if (!result) return;\n if (exif_orientation > 0) {\n result.orientation = exif_orientation;\n }\n return result;\n };\n }\n });\n\n // node_modules/probe-image-size/lib/parsers_sync.js\n var require_parsers_sync = __commonJS({\n \"node_modules/probe-image-size/lib/parsers_sync.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n avif: require_avif(),\n bmp: require_bmp(),\n gif: require_gif(),\n ico: require_ico(),\n jpeg: require_jpeg(),\n png: require_png(),\n psd: require_psd(),\n svg: require_svg(),\n tiff: require_tiff(),\n webp: require_webp()\n };\n }\n });\n\n // node_modules/probe-image-size/sync.js\n var require_sync = __commonJS({\n \"node_modules/probe-image-size/sync.js\"(exports, module) {\n \"use strict\";\n var parsers = require_parsers_sync();\n function probeBuffer(buffer) {\n var parser_names = Object.keys(parsers);\n for (var i = 0; i < parser_names.length; i++) {\n var result = parsers[parser_names[i]](buffer);\n if (result) return result;\n }\n return null;\n }\n module.exports = function get_image_size(src) {\n return probeBuffer(src);\n };\n module.exports.parsers = parsers;\n }\n });\n\n // src/traces/image/helpers.js\n var require_helpers14 = __commonJS({\n \"src/traces/image/helpers.js\"(exports) {\n \"use strict\";\n var probeSync = require_sync();\n var dataUri = require_helpers10().IMAGE_URL_PREFIX;\n var Buffer2 = require_buffer().Buffer;\n exports.getImageSize = function(src) {\n var data = src.replace(dataUri, \"\");\n var buff = new Buffer2(data, \"base64\");\n return probeSync(buff);\n };\n }\n });\n\n // src/traces/image/calc.js\n var require_calc15 = __commonJS({\n \"src/traces/image/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants19();\n var isNumeric = require_fast_isnumeric();\n var Axes = require_axes();\n var maxRowLength = require_lib().maxRowLength;\n var getImageSize = require_helpers14().getImageSize;\n module.exports = function calc(gd, trace) {\n var h;\n var w;\n if (trace._hasZ) {\n h = trace.z.length;\n w = maxRowLength(trace.z);\n } else if (trace._hasSource) {\n var size = getImageSize(trace.source);\n h = size.height;\n w = size.width;\n }\n var xa = Axes.getFromId(gd, trace.xaxis || \"x\");\n var ya = Axes.getFromId(gd, trace.yaxis || \"y\");\n var x0 = xa.d2c(trace.x0) - trace.dx / 2;\n var y0 = ya.d2c(trace.y0) - trace.dy / 2;\n var i;\n var xrange = [x0, x0 + w * trace.dx];\n var yrange = [y0, y0 + h * trace.dy];\n if (xa && xa.type === \"log\") for (i = 0; i < w; i++) xrange.push(x0 + i * trace.dx);\n if (ya && ya.type === \"log\") for (i = 0; i < h; i++) yrange.push(y0 + i * trace.dy);\n trace._extremes[xa._id] = Axes.findExtremes(xa, xrange);\n trace._extremes[ya._id] = Axes.findExtremes(ya, yrange);\n trace._scaler = makeScaler(trace);\n var cd0 = {\n x0,\n y0,\n z: trace.z,\n w,\n h\n };\n return [cd0];\n };\n function scale(zero2, ratio, min, max) {\n return function(c) {\n return Lib.constrain((c - zero2) * ratio, min, max);\n };\n }\n function constrain(min, max) {\n return function(c) {\n return Lib.constrain(c, min, max);\n };\n }\n function makeScaler(trace) {\n var cr = constants.colormodel[trace.colormodel];\n var colormodel = cr.colormodel || trace.colormodel;\n var n = colormodel.length;\n trace._sArray = [];\n for (var k = 0; k < n; k++) {\n if (cr.min[k] !== trace.zmin[k] || cr.max[k] !== trace.zmax[k]) {\n trace._sArray.push(scale(\n trace.zmin[k],\n (cr.max[k] - cr.min[k]) / (trace.zmax[k] - trace.zmin[k]),\n cr.min[k],\n cr.max[k]\n ));\n } else {\n trace._sArray.push(constrain(cr.min[k], cr.max[k]));\n }\n }\n return function(pixel) {\n var c = pixel.slice(0, n);\n for (var k2 = 0; k2 < n; k2++) {\n var ck = c[k2];\n if (!isNumeric(ck)) return false;\n c[k2] = trace._sArray[k2](ck);\n }\n return c;\n };\n }\n }\n });\n\n // src/traces/image/plot.js\n var require_plot11 = __commonJS({\n \"src/traces/image/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var constants = require_constants19();\n var supportsPixelatedImage = require_supports_pixelated_image();\n var PIXELATED_IMAGE_STYLE = require_pixelated_image().STYLE;\n module.exports = function plot(gd, plotinfo, cdimage, imageLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var supportsPixelated = !gd._context._exportedPlot && supportsPixelatedImage();\n Lib.makeTraceGroups(imageLayer, cdimage, \"im\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var realImage = (trace.zsmooth === \"fast\" || trace.zsmooth === false && supportsPixelated) && !trace._hasZ && trace._hasSource && xa.type === \"linear\" && ya.type === \"linear\";\n trace._realImage = realImage;\n var z = cd0.z;\n var x0 = cd0.x0;\n var y0 = cd0.y0;\n var w = cd0.w;\n var h = cd0.h;\n var dx = trace.dx;\n var dy = trace.dy;\n var left, right, temp, top, bottom, i;\n i = 0;\n while (left === void 0 && i < w) {\n left = xa.c2p(x0 + i * dx);\n i++;\n }\n i = w;\n while (right === void 0 && i > 0) {\n right = xa.c2p(x0 + i * dx);\n i--;\n }\n i = 0;\n while (top === void 0 && i < h) {\n top = ya.c2p(y0 + i * dy);\n i++;\n }\n i = h;\n while (bottom === void 0 && i > 0) {\n bottom = ya.c2p(y0 + i * dy);\n i--;\n }\n if (right < left) {\n temp = right;\n right = left;\n left = temp;\n }\n if (bottom < top) {\n temp = top;\n top = bottom;\n bottom = temp;\n }\n if (!realImage) {\n var extra = 0.5;\n left = Math.max(-extra * xa._length, left);\n right = Math.min((1 + extra) * xa._length, right);\n top = Math.max(-extra * ya._length, top);\n bottom = Math.min((1 + extra) * ya._length, bottom);\n }\n var imageWidth = Math.round(right - left);\n var imageHeight = Math.round(bottom - top);\n var isOffScreen = imageWidth <= 0 || imageHeight <= 0;\n if (isOffScreen) {\n var noImage = plotGroup.selectAll(\"image\").data([]);\n noImage.exit().remove();\n return;\n }\n function drawMagnifiedPixelsOnCanvas(readPixel) {\n var canvas = document.createElement(\"canvas\");\n canvas.width = imageWidth;\n canvas.height = imageHeight;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n var ipx = function(i2) {\n return Lib.constrain(Math.round(xa.c2p(x0 + i2 * dx) - left), 0, imageWidth);\n };\n var jpx = function(j2) {\n return Lib.constrain(Math.round(ya.c2p(y0 + j2 * dy) - top), 0, imageHeight);\n };\n var cr = constants.colormodel[trace.colormodel];\n var colormodel = cr.colormodel || trace.colormodel;\n var fmt = cr.fmt;\n var c;\n for (i = 0; i < cd0.w; i++) {\n var ipx0 = ipx(i);\n var ipx1 = ipx(i + 1);\n if (ipx1 === ipx0 || isNaN(ipx1) || isNaN(ipx0)) continue;\n for (var j = 0; j < cd0.h; j++) {\n var jpx0 = jpx(j);\n var jpx1 = jpx(j + 1);\n if (jpx1 === jpx0 || isNaN(jpx1) || isNaN(jpx0) || !readPixel(i, j)) continue;\n c = trace._scaler(readPixel(i, j));\n if (c) {\n context.fillStyle = colormodel + \"(\" + fmt(c).join(\",\") + \")\";\n } else {\n context.fillStyle = \"rgba(0,0,0,0)\";\n }\n context.fillRect(ipx0, jpx0, ipx1 - ipx0, jpx1 - jpx0);\n }\n }\n return canvas;\n }\n var image3 = plotGroup.selectAll(\"image\").data([cd]);\n image3.enter().append(\"svg:image\").attr({\n xmlns: xmlnsNamespaces.svg,\n preserveAspectRatio: \"none\"\n });\n image3.exit().remove();\n var style = trace.zsmooth === false ? PIXELATED_IMAGE_STYLE : \"\";\n if (realImage) {\n var xRange = Lib.simpleMap(xa.range, xa.r2l);\n var yRange = Lib.simpleMap(ya.range, ya.r2l);\n var flipX = xRange[1] < xRange[0];\n var flipY = yRange[1] > yRange[0];\n if (flipX || flipY) {\n var tx = left + imageWidth / 2;\n var ty = top + imageHeight / 2;\n style += \"transform:\" + strTranslate(tx + \"px\", ty + \"px\") + \"scale(\" + (flipX ? -1 : 1) + \",\" + (flipY ? -1 : 1) + \")\" + strTranslate(-tx + \"px\", -ty + \"px\") + \";\";\n }\n }\n image3.attr(\"style\", style);\n var p = new Promise(function(resolve) {\n if (trace._hasZ) {\n resolve();\n } else if (trace._hasSource) {\n if (trace._canvas && trace._canvas.el.width === w && trace._canvas.el.height === h && trace._canvas.source === trace.source) {\n resolve();\n } else {\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n trace._image = trace._image || new Image();\n var image = trace._image;\n image.onload = function() {\n context.drawImage(image, 0, 0);\n trace._canvas = {\n el: canvas,\n source: trace.source\n };\n resolve();\n };\n image.setAttribute(\"src\", trace.source);\n }\n }\n }).then(function() {\n var href, canvas;\n if (trace._hasZ) {\n canvas = drawMagnifiedPixelsOnCanvas(function(i2, j) {\n var _z = z[j][i2];\n if (Lib.isTypedArray(_z)) _z = Array.from(_z);\n return _z;\n });\n href = canvas.toDataURL(\"image/png\");\n } else if (trace._hasSource) {\n if (realImage) {\n href = trace.source;\n } else {\n var context = trace._canvas.el.getContext(\"2d\", { willReadFrequently: true });\n var data = context.getImageData(0, 0, w, h).data;\n canvas = drawMagnifiedPixelsOnCanvas(function(i2, j) {\n var index = 4 * (j * w + i2);\n return [\n data[index],\n data[index + 1],\n data[index + 2],\n data[index + 3]\n ];\n });\n href = canvas.toDataURL(\"image/png\");\n }\n }\n image3.attr({\n \"xlink:href\": href,\n height: imageHeight,\n width: imageWidth,\n x: left,\n y: top\n });\n });\n gd._promises.push(p);\n });\n };\n }\n });\n\n // src/traces/image/style.js\n var require_style11 = __commonJS({\n \"src/traces/image/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n module.exports = function style(gd) {\n d3.select(gd).selectAll(\".im image\").style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n };\n }\n });\n\n // src/traces/image/hover.js\n var require_hover13 = __commonJS({\n \"src/traces/image/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var constants = require_constants19();\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd0 = pointData.cd[0];\n var trace = cd0.trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n if (Fx.inbox(xval - cd0.x0, xval - (cd0.x0 + cd0.w * trace.dx), 0) > 0 || Fx.inbox(yval - cd0.y0, yval - (cd0.y0 + cd0.h * trace.dy), 0) > 0) {\n return;\n }\n var nx = Math.floor((xval - cd0.x0) / trace.dx);\n var ny = Math.floor(Math.abs(yval - cd0.y0) / trace.dy);\n var pixel;\n if (trace._hasZ) {\n pixel = cd0.z[ny][nx];\n } else if (trace._hasSource) {\n pixel = trace._canvas.el.getContext(\"2d\", { willReadFrequently: true }).getImageData(nx, ny, 1, 1).data;\n }\n if (!pixel) return;\n var hoverinfo = cd0.hi || trace.hoverinfo;\n var fmtColor;\n if (hoverinfo) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"color\"];\n if (parts.indexOf(\"color\") !== -1) fmtColor = true;\n }\n var cr = constants.colormodel[trace.colormodel];\n var colormodel = cr.colormodel || trace.colormodel;\n var dims = colormodel.length;\n var c = trace._scaler(pixel);\n var s = cr.suffix;\n var colorstring = [];\n if (trace.hovertemplate || fmtColor) {\n colorstring.push(\"[\" + [c[0] + s[0], c[1] + s[1], c[2] + s[2]].join(\", \"));\n if (dims === 4) colorstring.push(\", \" + c[3] + s[3]);\n colorstring.push(\"]\");\n colorstring = colorstring.join(\"\");\n pointData.extraText = colormodel.toUpperCase() + \": \" + colorstring;\n }\n var text;\n if (isArrayOrTypedArray(trace.hovertext) && isArrayOrTypedArray(trace.hovertext[ny])) {\n text = trace.hovertext[ny][nx];\n } else if (isArrayOrTypedArray(trace.text) && isArrayOrTypedArray(trace.text[ny])) {\n text = trace.text[ny][nx];\n }\n var py = ya.c2p(cd0.y0 + (ny + 0.5) * trace.dy);\n var xVal = cd0.x0 + (nx + 0.5) * trace.dx;\n var yVal = cd0.y0 + (ny + 0.5) * trace.dy;\n var zLabel = \"[\" + pixel.slice(0, trace.colormodel.length).join(\", \") + \"]\";\n return [Lib.extendFlat(pointData, {\n index: [ny, nx],\n x0: xa.c2p(cd0.x0 + nx * trace.dx),\n x1: xa.c2p(cd0.x0 + (nx + 1) * trace.dx),\n y0: py,\n y1: py,\n color: c,\n xVal,\n xLabelVal: xVal,\n yVal,\n yLabelVal: yVal,\n zLabelVal: zLabel,\n text,\n hovertemplateLabels: {\n zLabel,\n colorLabel: colorstring,\n \"color[0]Label\": c[0] + s[0],\n \"color[1]Label\": c[1] + s[1],\n \"color[2]Label\": c[2] + s[2],\n \"color[3]Label\": c[3] + s[3]\n }\n })];\n };\n }\n });\n\n // src/traces/image/event_data.js\n var require_event_data7 = __commonJS({\n \"src/traces/image/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n if (\"xVal\" in pt) out.x = pt.xVal;\n if (\"yVal\" in pt) out.y = pt.yVal;\n if (pt.xa) out.xaxis = pt.xa;\n if (pt.ya) out.yaxis = pt.ya;\n out.color = pt.color;\n out.colormodel = pt.trace.colormodel;\n if (!out.z) out.z = pt.color;\n return out;\n };\n }\n });\n\n // src/traces/image/index.js\n var require_image = __commonJS({\n \"src/traces/image/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes34(),\n supplyDefaults: require_defaults30(),\n calc: require_calc15(),\n plot: require_plot11(),\n style: require_style11(),\n hoverPoints: require_hover13(),\n eventData: require_event_data7(),\n moduleType: \"trace\",\n name: \"image\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"2dMap\", \"noSortingByValue\"],\n animatable: false,\n meta: {}\n };\n }\n });\n\n // lib/image.js\n var require_image2 = __commonJS({\n \"lib/image.js\"(exports, module) {\n \"use strict\";\n module.exports = require_image();\n }\n });\n\n // src/traces/pie/attributes.js\n var require_attributes35 = __commonJS({\n \"src/traces/pie/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var domainAttrs = require_domain().attributes;\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n var textFontAttrs = fontAttrs({\n editType: \"plot\",\n arrayOk: true,\n colorEditType: \"plot\"\n });\n module.exports = {\n labels: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // equivalent of x0 and dx, if label is missing\n label0: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc\"\n },\n dlabel: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n marker: {\n colors: {\n valType: \"data_array\",\n // TODO 'color_array' ?\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n arrayOk: true,\n editType: \"style\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n arrayOk: true,\n editType: \"style\"\n },\n editType: \"calc\"\n },\n pattern,\n editType: \"calc\"\n },\n text: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"style\"\n },\n // 'see eg:'\n // 'https://www.e-education.psu.edu/natureofgeoinfo/sites/www.e-education.psu.edu.natureofgeoinfo/files/image/hisp_pies.gif',\n // '(this example involves a map too - may someday be a whole trace type',\n // 'of its own. but the point is the size of the whole pie is important.)'\n scalegroup: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n // labels (legend is handled by plots.attributes.showlegend and layout.hiddenlabels)\n textinfo: {\n valType: \"flaglist\",\n flags: [\"label\", \"text\", \"value\", \"percent\"],\n extras: [\"none\"],\n editType: \"calc\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"label\", \"text\", \"value\", \"percent\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"label\", \"color\", \"value\", \"percent\", \"text\"]\n }),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"label\", \"color\", \"value\", \"percent\", \"text\"]\n }),\n textposition: {\n valType: \"enumerated\",\n values: [\"inside\", \"outside\", \"auto\", \"none\"],\n dflt: \"auto\",\n arrayOk: true,\n editType: \"plot\"\n },\n textfont: extendFlat({}, textFontAttrs, {}),\n insidetextorientation: {\n valType: \"enumerated\",\n values: [\"horizontal\", \"radial\", \"tangential\", \"auto\"],\n dflt: \"auto\",\n editType: \"plot\"\n },\n insidetextfont: extendFlat({}, textFontAttrs, {}),\n outsidetextfont: extendFlat({}, textFontAttrs, {}),\n automargin: {\n valType: \"boolean\",\n dflt: false,\n editType: \"plot\"\n },\n title: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n font: extendFlat({}, textFontAttrs, {}),\n position: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle center\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\"\n ],\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n // position and shape\n domain: domainAttrs({ name: \"pie\", trace: true, editType: \"calc\" }),\n hole: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"calc\"\n },\n // ordering and direction\n sort: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n direction: {\n /**\n * there are two common conventions, both of which place the first\n * (largest, if sorted) slice with its left edge at 12 o'clock but\n * succeeding slices follow either cw or ccw from there.\n *\n * see http://visage.co/data-visualization-101-pie-charts/\n */\n valType: \"enumerated\",\n values: [\"clockwise\", \"counterclockwise\"],\n dflt: \"counterclockwise\",\n editType: \"calc\"\n },\n rotation: {\n valType: \"angle\",\n dflt: 0,\n editType: \"calc\"\n },\n pull: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n arrayOk: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/pie/defaults.js\n var require_defaults31 = __commonJS({\n \"src/traces/pie/defaults.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var attributes = require_attributes35();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var coercePattern = require_lib().coercePattern;\n function handleLabelsAndValues(labels, values) {\n var hasLabels = Lib.isArrayOrTypedArray(labels);\n var hasValues = Lib.isArrayOrTypedArray(values);\n var len = Math.min(\n hasLabels ? labels.length : Infinity,\n hasValues ? values.length : Infinity\n );\n if (!isFinite(len)) len = 0;\n if (len && hasValues) {\n var hasPositive;\n for (var i = 0; i < len; i++) {\n var v = values[i];\n if (isNumeric(v) && v > 0) {\n hasPositive = true;\n break;\n }\n }\n if (!hasPositive) len = 0;\n }\n return {\n hasLabels,\n hasValues,\n len\n };\n }\n function handleMarkerDefaults(traceIn, traceOut, layout, coerce, isPie) {\n var lineWidth = coerce(\"marker.line.width\");\n if (lineWidth) {\n coerce(\n \"marker.line.color\",\n isPie ? void 0 : layout.paper_bgcolor\n // case of funnelarea, sunburst, icicle, treemap\n );\n }\n var markerColors = coerce(\"marker.colors\");\n coercePattern(coerce, \"marker.pattern\", markerColors);\n if (traceIn.marker && !traceOut.marker.pattern.fgcolor) traceOut.marker.pattern.fgcolor = traceIn.marker.colors;\n if (!traceOut.marker.pattern.bgcolor) traceOut.marker.pattern.bgcolor = layout.paper_bgcolor;\n }\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var values = coerce(\"values\");\n var res = handleLabelsAndValues(labels, values);\n var len = res.len;\n traceOut._hasLabels = res.hasLabels;\n traceOut._hasValues = res.hasValues;\n if (!traceOut._hasLabels && traceOut._hasValues) {\n coerce(\"label0\");\n coerce(\"dlabel\");\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n handleMarkerDefaults(traceIn, traceOut, layout, coerce, true);\n coerce(\"scalegroup\");\n var textData = coerce(\"text\");\n var textTemplate = coerce(\"texttemplate\");\n var textInfo;\n if (!textTemplate) textInfo = coerce(\"textinfo\", Lib.isArrayOrTypedArray(textData) ? \"text+percent\" : \"percent\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n if (textTemplate || textInfo && textInfo !== \"none\") {\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n var hasBoth = Array.isArray(textposition) || textposition === \"auto\";\n var hasOutside = hasBoth || textposition === \"outside\";\n if (hasOutside) {\n coerce(\"automargin\");\n }\n if (textposition === \"inside\" || textposition === \"auto\" || Array.isArray(textposition)) {\n coerce(\"insidetextorientation\");\n }\n } else if (textInfo === \"none\") {\n coerce(\"textposition\", \"none\");\n }\n handleDomainDefaults(traceOut, layout, coerce);\n var hole = coerce(\"hole\");\n var title = coerce(\"title.text\");\n if (title) {\n var titlePosition = coerce(\"title.position\", hole ? \"middle center\" : \"top center\");\n if (!hole && titlePosition === \"middle center\") traceOut.title.position = \"top center\";\n Lib.coerceFont(coerce, \"title.font\", layout.font);\n }\n coerce(\"sort\");\n coerce(\"direction\");\n coerce(\"rotation\");\n coerce(\"pull\");\n }\n module.exports = {\n handleLabelsAndValues,\n handleMarkerDefaults,\n supplyDefaults\n };\n }\n });\n\n // src/traces/pie/layout_attributes.js\n var require_layout_attributes12 = __commonJS({\n \"src/traces/pie/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n hiddenlabels: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n piecolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendpiecolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/pie/layout_defaults.js\n var require_layout_defaults11 = __commonJS({\n \"src/traces/pie/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes12();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"hiddenlabels\");\n coerce(\"piecolorway\", layoutOut.colorway);\n coerce(\"extendpiecolors\");\n };\n }\n });\n\n // src/traces/pie/calc.js\n var require_calc16 = __commonJS({\n \"src/traces/pie/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var Color2 = require_color();\n var extendedColorWayList = {};\n function calc(gd, trace) {\n var cd = [];\n var fullLayout = gd._fullLayout;\n var hiddenLabels = fullLayout.hiddenlabels || [];\n var labels = trace.labels;\n var colors = trace.marker.colors || [];\n var vals = trace.values;\n var len = trace._length;\n var hasValues = trace._hasValues && len;\n var i, pt;\n if (trace.dlabel) {\n labels = new Array(len);\n for (i = 0; i < len; i++) {\n labels[i] = String(trace.label0 + i * trace.dlabel);\n }\n }\n var allThisTraceLabels = {};\n var pullColor = makePullColorFn(fullLayout[\"_\" + trace.type + \"colormap\"]);\n var vTotal = 0;\n var isAggregated = false;\n for (i = 0; i < len; i++) {\n var v, label, hidden;\n if (hasValues) {\n v = vals[i];\n if (!isNumeric(v)) continue;\n v = +v;\n } else v = 1;\n label = labels[i];\n if (label === void 0 || label === \"\") label = i;\n label = String(label);\n var thisLabelIndex = allThisTraceLabels[label];\n if (thisLabelIndex === void 0) {\n allThisTraceLabels[label] = cd.length;\n hidden = hiddenLabels.indexOf(label) !== -1;\n if (!hidden) vTotal += v;\n cd.push({\n v,\n label,\n color: pullColor(colors[i], label),\n i,\n pts: [i],\n hidden\n });\n } else {\n isAggregated = true;\n pt = cd[thisLabelIndex];\n pt.v += v;\n pt.pts.push(i);\n if (!pt.hidden) vTotal += v;\n if (pt.color === false && colors[i]) {\n pt.color = pullColor(colors[i], label);\n }\n }\n }\n cd = cd.filter(function(elem) {\n return elem.v >= 0;\n });\n var shouldSort = trace.type === \"funnelarea\" ? isAggregated : trace.sort;\n if (shouldSort) cd.sort(function(a, b) {\n return b.v - a.v;\n });\n if (cd[0]) cd[0].vTotal = vTotal;\n return cd;\n }\n function makePullColorFn(colorMap) {\n return function pullColor(color2, id) {\n if (!color2) return false;\n color2 = tinycolor(color2);\n if (!color2.isValid()) return false;\n color2 = Color2.addOpacity(color2, color2.getAlpha());\n if (!colorMap[id]) colorMap[id] = color2;\n return color2;\n };\n }\n function crossTraceCalc(gd, plotinfo) {\n var desiredType = (plotinfo || {}).type;\n if (!desiredType) desiredType = \"pie\";\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + \"colorway\"];\n var colorMap = fullLayout[\"_\" + desiredType + \"colormap\"];\n if (fullLayout[\"extend\" + desiredType + \"colors\"]) {\n colorWay = generateExtendedColors(colorWay, extendedColorWayList);\n }\n var dfltColorCount = 0;\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var traceType = cd[0].trace.type;\n if (traceType !== desiredType) continue;\n for (var j = 0; j < cd.length; j++) {\n var pt = cd[j];\n if (pt.color === false) {\n if (colorMap[pt.label]) {\n pt.color = colorMap[pt.label];\n } else {\n colorMap[pt.label] = pt.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n }\n }\n }\n }\n function generateExtendedColors(colorList, extendedColorWays) {\n var i;\n var colorString = JSON.stringify(colorList);\n var colors = extendedColorWays[colorString];\n if (!colors) {\n colors = colorList.slice();\n for (i = 0; i < colorList.length; i++) {\n colors.push(tinycolor(colorList[i]).lighten(20).toHexString());\n }\n for (i = 0; i < colorList.length; i++) {\n colors.push(tinycolor(colorList[i]).darken(20).toHexString());\n }\n extendedColorWays[colorString] = colors;\n }\n return colors;\n }\n module.exports = {\n calc,\n crossTraceCalc,\n makePullColorFn,\n generateExtendedColors\n };\n }\n });\n\n // src/traces/pie/event_data.js\n var require_event_data8 = __commonJS({\n \"src/traces/pie/event_data.js\"(exports, module) {\n \"use strict\";\n var appendArrayMultiPointValues = require_helpers2().appendArrayMultiPointValues;\n module.exports = function eventData(pt, trace) {\n var out = {\n curveNumber: trace.index,\n pointNumbers: pt.pts,\n data: trace._input,\n fullData: trace,\n label: pt.label,\n color: pt.color,\n value: pt.v,\n percent: pt.percent,\n text: pt.text,\n bbox: pt.bbox,\n // pt.v (and pt.i below) for backward compatibility\n v: pt.v\n };\n if (pt.pts.length === 1) out.pointNumber = out.i = pt.pts[0];\n appendArrayMultiPointValues(out, trace, pt.pts);\n if (trace.type === \"funnelarea\") {\n delete out.v;\n delete out.i;\n }\n return out;\n };\n }\n });\n\n // src/traces/pie/plot.js\n var require_plot12 = __commonJS({\n \"src/traces/pie/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Plots = require_plots();\n var Fx = require_fx();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var TEXTPAD = require_constants14().TEXTPAD;\n var helpers = require_helpers4();\n var eventData = require_event_data8();\n var isValidTextValue = require_lib().isValidTextValue;\n function plot(gd, cdModule) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n clearMinTextSize(\"pie\", fullLayout);\n prerenderTitles(cdModule, gd);\n layoutAreas(cdModule, gs);\n var plotGroups = Lib.makeTraceGroups(fullLayout._pielayer, cdModule, \"trace\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n setCoords(cd);\n plotGroup.attr(\"stroke-linejoin\", \"round\");\n plotGroup.each(function() {\n var slices = d3.select(this).selectAll(\"g.slice\").data(cd);\n slices.enter().append(\"g\").classed(\"slice\", true);\n slices.exit().remove();\n var quadrants = [\n [[], []],\n // y<0: x<0, x>=0\n [[], []]\n // y>=0: x<0, x>=0\n ];\n var hasOutsideText = false;\n slices.each(function(pt, i) {\n if (pt.hidden) {\n d3.select(this).selectAll(\"path,g\").remove();\n return;\n }\n pt.pointNumber = pt.i;\n pt.curveNumber = trace.index;\n quadrants[pt.pxmid[1] < 0 ? 0 : 1][pt.pxmid[0] < 0 ? 0 : 1].push(pt);\n var cx = cd0.cx;\n var cy = cd0.cy;\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.selectAll(\"path.surface\").data([pt]);\n slicePath.enter().append(\"path\").classed(\"surface\", true).style({ \"pointer-events\": isStatic ? \"none\" : \"all\" });\n sliceTop.call(attachFxHandlers, gd, cd);\n if (trace.pull) {\n var pull = +helpers.castOption(trace.pull, pt.pts) || 0;\n if (pull > 0) {\n cx += pull * pt.pxmid[0];\n cy += pull * pt.pxmid[1];\n }\n }\n pt.cxFinal = cx;\n pt.cyFinal = cy;\n function arc(start, finish, cw, scale) {\n var dx = scale * (finish[0] - start[0]);\n var dy = scale * (finish[1] - start[1]);\n return \"a\" + scale * cd0.r + \",\" + scale * cd0.r + \" 0 \" + pt.largeArc + (cw ? \" 1 \" : \" 0 \") + dx + \",\" + dy;\n }\n var hole = trace.hole;\n if (pt.v === cd0.vTotal) {\n var outerCircle = \"M\" + (cx + pt.px0[0]) + \",\" + (cy + pt.px0[1]) + arc(pt.px0, pt.pxmid, true, 1) + arc(pt.pxmid, pt.px0, true, 1) + \"Z\";\n if (hole) {\n slicePath.attr(\n \"d\",\n \"M\" + (cx + hole * pt.px0[0]) + \",\" + (cy + hole * pt.px0[1]) + arc(pt.px0, pt.pxmid, false, hole) + arc(pt.pxmid, pt.px0, false, hole) + \"Z\" + outerCircle\n );\n } else slicePath.attr(\"d\", outerCircle);\n } else {\n var outerArc = arc(pt.px0, pt.px1, true, 1);\n if (hole) {\n var rim = 1 - hole;\n slicePath.attr(\n \"d\",\n \"M\" + (cx + hole * pt.px1[0]) + \",\" + (cy + hole * pt.px1[1]) + arc(pt.px1, pt.px0, false, hole) + \"l\" + rim * pt.px0[0] + \",\" + rim * pt.px0[1] + outerArc + \"Z\"\n );\n } else {\n slicePath.attr(\n \"d\",\n \"M\" + cx + \",\" + cy + \"l\" + pt.px0[0] + \",\" + pt.px0[1] + outerArc + \"Z\"\n );\n }\n }\n formatSliceLabel(gd, pt, cd0);\n var textPosition = helpers.castOption(trace.textposition, pt.pts);\n var sliceTextGroup = sliceTop.selectAll(\"g.slicetext\").data(pt.text && textPosition !== \"none\" ? [0] : []);\n sliceTextGroup.enter().append(\"g\").classed(\"slicetext\", true);\n sliceTextGroup.exit().remove();\n sliceTextGroup.each(function() {\n var sliceText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(\n gd,\n textPosition === \"outside\" ? determineOutsideTextFont(trace, pt, fullLayout.font) : determineInsideTextFont(trace, pt, fullLayout.font)\n );\n sliceText.text(pt.text).attr({\n class: \"slicetext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n var textBB = Drawing.bBox(sliceText.node());\n var transform;\n if (textPosition === \"outside\") {\n transform = transformOutsideText(textBB, pt);\n } else {\n transform = transformInsideText(textBB, pt, cd0);\n if (textPosition === \"auto\" && transform.scale < 1) {\n var newFont = Lib.ensureUniformFontSize(gd, trace.outsidetextfont);\n sliceText.call(Drawing.font, newFont);\n textBB = Drawing.bBox(sliceText.node());\n transform = transformOutsideText(textBB, pt);\n }\n }\n var textPosAngle = transform.textPosAngle;\n var textXY = textPosAngle === void 0 ? pt.pxmid : getCoords(cd0.r, textPosAngle);\n transform.targetX = cx + textXY[0] * transform.rCenter + (transform.x || 0);\n transform.targetY = cy + textXY[1] * transform.rCenter + (transform.y || 0);\n computeTransform(transform, textBB);\n if (transform.outside) {\n var targetY = transform.targetY;\n pt.yLabelMin = targetY - textBB.height / 2;\n pt.yLabelMid = targetY;\n pt.yLabelMax = targetY + textBB.height / 2;\n pt.labelExtraX = 0;\n pt.labelExtraY = 0;\n hasOutsideText = true;\n }\n transform.fontSize = font.size;\n recordMinTextSize(trace.type, transform, fullLayout);\n cd[i].transform = transform;\n Lib.setTransormAndDisplay(sliceText, transform);\n });\n });\n var titleTextGroup = d3.select(this).selectAll(\"g.titletext\").data(trace.title.text ? [0] : []);\n titleTextGroup.enter().append(\"g\").classed(\"titletext\", true);\n titleTextGroup.exit().remove();\n titleTextGroup.each(function() {\n var titleText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var txt = trace.title.text;\n if (trace._meta) {\n txt = Lib.templateString(txt, trace._meta);\n }\n titleText.text(txt).attr({\n class: \"titletext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n var transform;\n if (trace.title.position === \"middle center\") {\n transform = positionTitleInside(cd0);\n } else {\n transform = positionTitleOutside(cd0, gs);\n }\n titleText.attr(\n \"transform\",\n strTranslate(transform.x, transform.y) + strScale(Math.min(1, transform.scale)) + strTranslate(transform.tx, transform.ty)\n );\n });\n if (hasOutsideText) scootLabels(quadrants, trace);\n plotTextLines(slices, trace);\n if (hasOutsideText && trace.automargin) {\n var traceBbox = Drawing.bBox(plotGroup.node());\n var domain = trace.domain;\n var vpw = gs.w * (domain.x[1] - domain.x[0]);\n var vph = gs.h * (domain.y[1] - domain.y[0]);\n var xgap = (0.5 * vpw - cd0.r) / gs.w;\n var ygap = (0.5 * vph - cd0.r) / gs.h;\n Plots.autoMargin(gd, \"pie.\" + trace.uid + \".automargin\", {\n xl: domain.x[0] - xgap,\n xr: domain.x[1] + xgap,\n yb: domain.y[0] - ygap,\n yt: domain.y[1] + ygap,\n l: Math.max(cd0.cx - cd0.r - traceBbox.left, 0),\n r: Math.max(traceBbox.right - (cd0.cx + cd0.r), 0),\n b: Math.max(traceBbox.bottom - (cd0.cy + cd0.r), 0),\n t: Math.max(cd0.cy - cd0.r - traceBbox.top, 0),\n pad: 5\n });\n }\n });\n });\n setTimeout(function() {\n plotGroups.selectAll(\"tspan\").each(function() {\n var s = d3.select(this);\n if (s.attr(\"dy\")) s.attr(\"dy\", s.attr(\"dy\"));\n });\n }, 0);\n }\n function plotTextLines(slices, trace) {\n slices.each(function(pt) {\n var sliceTop = d3.select(this);\n if (!pt.labelExtraX && !pt.labelExtraY) {\n sliceTop.select(\"path.textline\").remove();\n return;\n }\n var sliceText = sliceTop.select(\"g.slicetext text\");\n pt.transform.targetX += pt.labelExtraX;\n pt.transform.targetY += pt.labelExtraY;\n Lib.setTransormAndDisplay(sliceText, pt.transform);\n var lineStartX = pt.cxFinal + pt.pxmid[0];\n var lineStartY = pt.cyFinal + pt.pxmid[1];\n var textLinePath = \"M\" + lineStartX + \",\" + lineStartY;\n var finalX = (pt.yLabelMax - pt.yLabelMin) * (pt.pxmid[0] < 0 ? -1 : 1) / 4;\n if (pt.labelExtraX) {\n var yFromX = pt.labelExtraX * pt.pxmid[1] / pt.pxmid[0];\n var yNet = pt.yLabelMid + pt.labelExtraY - (pt.cyFinal + pt.pxmid[1]);\n if (Math.abs(yFromX) > Math.abs(yNet)) {\n textLinePath += \"l\" + yNet * pt.pxmid[0] / pt.pxmid[1] + \",\" + yNet + \"H\" + (lineStartX + pt.labelExtraX + finalX);\n } else {\n textLinePath += \"l\" + pt.labelExtraX + \",\" + yFromX + \"v\" + (yNet - yFromX) + \"h\" + finalX;\n }\n } else {\n textLinePath += \"V\" + (pt.yLabelMid + pt.labelExtraY) + \"h\" + finalX;\n }\n Lib.ensureSingle(sliceTop, \"path\", \"textline\").call(Color2.stroke, trace.outsidetextfont.color).attr({\n \"stroke-width\": Math.min(2, trace.outsidetextfont.size / 8),\n d: textLinePath,\n fill: \"none\"\n });\n });\n }\n function attachFxHandlers(sliceTop, gd, cd) {\n var cd0 = cd[0];\n var cx = cd0.cx;\n var cy = cd0.cy;\n var trace = cd0.trace;\n var isFunnelArea = trace.type === \"funnelarea\";\n if (!(\"_hasHoverLabel\" in trace)) trace._hasHoverLabel = false;\n if (!(\"_hasHoverEvent\" in trace)) trace._hasHoverEvent = false;\n sliceTop.on(\"mouseover\", function(pt) {\n var fullLayout2 = gd._fullLayout;\n var trace2 = gd._fullData[trace.index];\n if (gd._dragging || fullLayout2.hovermode === false) return;\n var hoverinfo = trace2.hoverinfo;\n if (Array.isArray(hoverinfo)) {\n hoverinfo = Fx.castHoverinfo({\n hoverinfo: [helpers.castOption(hoverinfo, pt.pts)],\n _module: trace._module\n }, fullLayout2, 0);\n }\n if (hoverinfo === \"all\") hoverinfo = \"label+text+value+percent+name\";\n if (trace2.hovertemplate || hoverinfo !== \"none\" && hoverinfo !== \"skip\" && hoverinfo) {\n var rInscribed = pt.rInscribed || 0;\n var hoverCenterX = cx + pt.pxmid[0] * (1 - rInscribed);\n var hoverCenterY = cy + pt.pxmid[1] * (1 - rInscribed);\n var separators = fullLayout2.separators;\n var text = [];\n if (hoverinfo && hoverinfo.indexOf(\"label\") !== -1) text.push(pt.label);\n pt.text = helpers.castOption(trace2.hovertext || trace2.text, pt.pts);\n if (hoverinfo && hoverinfo.indexOf(\"text\") !== -1) {\n var tx = pt.text;\n if (Lib.isValidTextValue(tx)) text.push(tx);\n }\n pt.value = pt.v;\n pt.valueLabel = helpers.formatPieValue(pt.v, separators);\n if (hoverinfo && hoverinfo.indexOf(\"value\") !== -1) text.push(pt.valueLabel);\n pt.percent = pt.v / cd0.vTotal;\n pt.percentLabel = helpers.formatPiePercent(pt.percent, separators);\n if (hoverinfo && hoverinfo.indexOf(\"percent\") !== -1) text.push(pt.percentLabel);\n var hoverLabel = trace2.hoverlabel;\n var hoverFont = hoverLabel.font;\n var bbox = [];\n Fx.loneHover({\n trace,\n x0: hoverCenterX - rInscribed * cd0.r,\n x1: hoverCenterX + rInscribed * cd0.r,\n y: hoverCenterY,\n _x0: isFunnelArea ? cx + pt.TL[0] : hoverCenterX - rInscribed * cd0.r,\n _x1: isFunnelArea ? cx + pt.TR[0] : hoverCenterX + rInscribed * cd0.r,\n _y0: isFunnelArea ? cy + pt.TL[1] : hoverCenterY - rInscribed * cd0.r,\n _y1: isFunnelArea ? cy + pt.BL[1] : hoverCenterY + rInscribed * cd0.r,\n text: text.join(\"
\"),\n name: trace2.hovertemplate || hoverinfo.indexOf(\"name\") !== -1 ? trace2.name : void 0,\n idealAlign: pt.pxmid[0] < 0 ? \"left\" : \"right\",\n color: helpers.castOption(hoverLabel.bgcolor, pt.pts) || pt.color,\n borderColor: helpers.castOption(hoverLabel.bordercolor, pt.pts),\n fontFamily: helpers.castOption(hoverFont.family, pt.pts),\n fontSize: helpers.castOption(hoverFont.size, pt.pts),\n fontColor: helpers.castOption(hoverFont.color, pt.pts),\n nameLength: helpers.castOption(hoverLabel.namelength, pt.pts),\n textAlign: helpers.castOption(hoverLabel.align, pt.pts),\n hovertemplate: helpers.castOption(trace2.hovertemplate, pt.pts),\n hovertemplateLabels: pt,\n eventData: [eventData(pt, trace2)]\n }, {\n container: fullLayout2._hoverlayer.node(),\n outerContainer: fullLayout2._paper.node(),\n gd,\n inOut_bbox: bbox\n });\n pt.bbox = bbox[0];\n trace._hasHoverLabel = true;\n }\n trace._hasHoverEvent = true;\n gd.emit(\"plotly_hover\", {\n points: [eventData(pt, trace2)],\n event: d3.event\n });\n });\n sliceTop.on(\"mouseout\", function(evt) {\n var fullLayout2 = gd._fullLayout;\n var trace2 = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n if (trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit(\"plotly_unhover\", {\n points: [eventData(pt, trace2)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n if (trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayout2._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n });\n sliceTop.on(\"click\", function(pt) {\n var fullLayout2 = gd._fullLayout;\n var trace2 = gd._fullData[trace.index];\n if (gd._dragging || fullLayout2.hovermode === false) return;\n gd._hoverdata = [eventData(pt, trace2)];\n Fx.click(gd, d3.event);\n });\n }\n function determineOutsideTextFont(trace, pt, layoutFont) {\n var color2 = helpers.castOption(trace.outsidetextfont.color, pt.pts) || helpers.castOption(trace.textfont.color, pt.pts) || layoutFont.color;\n var family = helpers.castOption(trace.outsidetextfont.family, pt.pts) || helpers.castOption(trace.textfont.family, pt.pts) || layoutFont.family;\n var size = helpers.castOption(trace.outsidetextfont.size, pt.pts) || helpers.castOption(trace.textfont.size, pt.pts) || layoutFont.size;\n var weight = helpers.castOption(trace.outsidetextfont.weight, pt.pts) || helpers.castOption(trace.textfont.weight, pt.pts) || layoutFont.weight;\n var style = helpers.castOption(trace.outsidetextfont.style, pt.pts) || helpers.castOption(trace.textfont.style, pt.pts) || layoutFont.style;\n var variant = helpers.castOption(trace.outsidetextfont.variant, pt.pts) || helpers.castOption(trace.textfont.variant, pt.pts) || layoutFont.variant;\n var textcase = helpers.castOption(trace.outsidetextfont.textcase, pt.pts) || helpers.castOption(trace.textfont.textcase, pt.pts) || layoutFont.textcase;\n var lineposition = helpers.castOption(trace.outsidetextfont.lineposition, pt.pts) || helpers.castOption(trace.textfont.lineposition, pt.pts) || layoutFont.lineposition;\n var shadow = helpers.castOption(trace.outsidetextfont.shadow, pt.pts) || helpers.castOption(trace.textfont.shadow, pt.pts) || layoutFont.shadow;\n return {\n color: color2,\n family,\n size,\n weight,\n style,\n variant,\n textcase,\n lineposition,\n shadow\n };\n }\n function determineInsideTextFont(trace, pt, layoutFont) {\n var customColor = helpers.castOption(trace.insidetextfont.color, pt.pts);\n if (!customColor && trace._input.textfont) {\n customColor = helpers.castOption(trace._input.textfont.color, pt.pts);\n }\n var family = helpers.castOption(trace.insidetextfont.family, pt.pts) || helpers.castOption(trace.textfont.family, pt.pts) || layoutFont.family;\n var size = helpers.castOption(trace.insidetextfont.size, pt.pts) || helpers.castOption(trace.textfont.size, pt.pts) || layoutFont.size;\n var weight = helpers.castOption(trace.insidetextfont.weight, pt.pts) || helpers.castOption(trace.textfont.weight, pt.pts) || layoutFont.weight;\n var style = helpers.castOption(trace.insidetextfont.style, pt.pts) || helpers.castOption(trace.textfont.style, pt.pts) || layoutFont.style;\n var variant = helpers.castOption(trace.insidetextfont.variant, pt.pts) || helpers.castOption(trace.textfont.variant, pt.pts) || layoutFont.variant;\n var textcase = helpers.castOption(trace.insidetextfont.textcase, pt.pts) || helpers.castOption(trace.textfont.textcase, pt.pts) || layoutFont.textcase;\n var lineposition = helpers.castOption(trace.insidetextfont.lineposition, pt.pts) || helpers.castOption(trace.textfont.lineposition, pt.pts) || layoutFont.lineposition;\n var shadow = helpers.castOption(trace.insidetextfont.shadow, pt.pts) || helpers.castOption(trace.textfont.shadow, pt.pts) || layoutFont.shadow;\n return {\n color: customColor || Color2.contrast(pt.color),\n family,\n size,\n weight,\n style,\n variant,\n textcase,\n lineposition,\n shadow\n };\n }\n function prerenderTitles(cdModule, gd) {\n var cd0, trace;\n for (var i = 0; i < cdModule.length; i++) {\n cd0 = cdModule[i][0];\n trace = cd0.trace;\n if (trace.title.text) {\n var txt = trace.title.text;\n if (trace._meta) {\n txt = Lib.templateString(txt, trace._meta);\n }\n var dummyTitle = Drawing.tester.append(\"text\").attr(\"data-notex\", 1).text(txt).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n var bBox = Drawing.bBox(dummyTitle.node(), true);\n cd0.titleBox = {\n width: bBox.width,\n height: bBox.height\n };\n dummyTitle.remove();\n }\n }\n }\n function transformInsideText(textBB, pt, cd0) {\n var r = cd0.r || pt.rpx1;\n var rInscribed = pt.rInscribed;\n var isEmpty = pt.startangle === pt.stopangle;\n if (isEmpty) {\n return {\n rCenter: 1 - rInscribed,\n scale: 0,\n rotate: 0,\n textPosAngle: 0\n };\n }\n var ring = pt.ring;\n var isCircle = ring === 1 && Math.abs(pt.startangle - pt.stopangle) === Math.PI * 2;\n var halfAngle = pt.halfangle;\n var midAngle = pt.midangle;\n var orientation = cd0.trace.insidetextorientation;\n var isHorizontal = orientation === \"horizontal\";\n var isTangential = orientation === \"tangential\";\n var isRadial = orientation === \"radial\";\n var isAuto = orientation === \"auto\";\n var allTransforms = [];\n var newT;\n if (!isAuto) {\n var considerCrossing = function(angle, key) {\n if (isCrossing(pt, angle)) {\n var dStart = Math.abs(angle - pt.startangle);\n var dStop = Math.abs(angle - pt.stopangle);\n var closestEdge = dStart < dStop ? dStart : dStop;\n if (key === \"tan\") {\n newT = calcTanTransform(textBB, r, ring, closestEdge, 0);\n } else {\n newT = calcRadTransform(textBB, r, ring, closestEdge, Math.PI / 2);\n }\n newT.textPosAngle = angle;\n allTransforms.push(newT);\n }\n };\n var i;\n if (isHorizontal || isTangential) {\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * i, \"tan\");\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1), \"tan\");\n }\n if (isHorizontal || isRadial) {\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 1.5), \"rad\");\n for (i = 4; i >= -4; i -= 2) considerCrossing(Math.PI * (i + 0.5), \"rad\");\n }\n }\n if (isCircle || isAuto || isHorizontal) {\n var textDiameter = Math.sqrt(textBB.width * textBB.width + textBB.height * textBB.height);\n newT = {\n scale: rInscribed * r * 2 / textDiameter,\n // and the center position and rotation in this case\n rCenter: 1 - rInscribed,\n rotate: 0\n };\n newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;\n if (newT.scale >= 1) return newT;\n allTransforms.push(newT);\n }\n if (isAuto || isRadial) {\n newT = calcRadTransform(textBB, r, ring, halfAngle, midAngle);\n newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;\n allTransforms.push(newT);\n }\n if (isAuto || isTangential) {\n newT = calcTanTransform(textBB, r, ring, halfAngle, midAngle);\n newT.textPosAngle = (pt.startangle + pt.stopangle) / 2;\n allTransforms.push(newT);\n }\n var id = 0;\n var maxScale = 0;\n for (var k = 0; k < allTransforms.length; k++) {\n var s = allTransforms[k].scale;\n if (maxScale < s) {\n maxScale = s;\n id = k;\n }\n if (!isAuto && maxScale >= 1) {\n break;\n }\n }\n return allTransforms[id];\n }\n function isCrossing(pt, angle) {\n var start = pt.startangle;\n var stop = pt.stopangle;\n return start > angle && angle > stop || start < angle && angle < stop;\n }\n function calcRadTransform(textBB, r, ring, halfAngle, midAngle) {\n r = Math.max(0, r - 2 * TEXTPAD);\n var a = textBB.width / textBB.height;\n var s = calcMaxHalfSize(a, halfAngle, r, ring);\n return {\n scale: s * 2 / textBB.height,\n rCenter: calcRCenter(a, s / r),\n rotate: calcRotate(midAngle)\n };\n }\n function calcTanTransform(textBB, r, ring, halfAngle, midAngle) {\n r = Math.max(0, r - 2 * TEXTPAD);\n var a = textBB.height / textBB.width;\n var s = calcMaxHalfSize(a, halfAngle, r, ring);\n return {\n scale: s * 2 / textBB.width,\n rCenter: calcRCenter(a, s / r),\n rotate: calcRotate(midAngle + Math.PI / 2)\n };\n }\n function calcRCenter(a, b) {\n return Math.cos(b) - a * b;\n }\n function calcRotate(t) {\n return (180 / Math.PI * t + 720) % 180 - 90;\n }\n function calcMaxHalfSize(a, halfAngle, r, ring) {\n var q = a + 1 / (2 * Math.tan(halfAngle));\n return r * Math.min(\n 1 / (Math.sqrt(q * q + 0.5) + q),\n ring / (Math.sqrt(a * a + ring / 2) + a)\n );\n }\n function getInscribedRadiusFraction(pt, cd0) {\n if (pt.v === cd0.vTotal && !cd0.trace.hole) return 1;\n return Math.min(1 / (1 + 1 / Math.sin(pt.halfangle)), pt.ring / 2);\n }\n function transformOutsideText(textBB, pt) {\n var x = pt.pxmid[0];\n var y = pt.pxmid[1];\n var dx = textBB.width / 2;\n var dy = textBB.height / 2;\n if (x < 0) dx *= -1;\n if (y < 0) dy *= -1;\n return {\n scale: 1,\n rCenter: 1,\n rotate: 0,\n x: dx + Math.abs(dy) * (dx > 0 ? 1 : -1) / 2,\n y: dy / (1 + x * x / (y * y)),\n outside: true\n };\n }\n function positionTitleInside(cd0) {\n var textDiameter = Math.sqrt(cd0.titleBox.width * cd0.titleBox.width + cd0.titleBox.height * cd0.titleBox.height);\n return {\n x: cd0.cx,\n y: cd0.cy,\n scale: cd0.trace.hole * cd0.r * 2 / textDiameter,\n tx: 0,\n ty: -cd0.titleBox.height / 2 + cd0.trace.title.font.size\n };\n }\n function positionTitleOutside(cd0, plotSize) {\n var scaleX = 1;\n var scaleY = 1;\n var maxPull;\n var trace = cd0.trace;\n var topMiddle = {\n x: cd0.cx,\n y: cd0.cy\n };\n var translate = {\n tx: 0,\n ty: 0\n };\n translate.ty += trace.title.font.size;\n maxPull = getMaxPull(trace);\n if (trace.title.position.indexOf(\"top\") !== -1) {\n topMiddle.y -= (1 + maxPull) * cd0.r;\n translate.ty -= cd0.titleBox.height;\n } else if (trace.title.position.indexOf(\"bottom\") !== -1) {\n topMiddle.y += (1 + maxPull) * cd0.r;\n }\n var rx = applyAspectRatio(cd0.r, cd0.trace.aspectratio);\n var maxWidth = plotSize.w * (trace.domain.x[1] - trace.domain.x[0]) / 2;\n if (trace.title.position.indexOf(\"left\") !== -1) {\n maxWidth = maxWidth + rx;\n topMiddle.x -= (1 + maxPull) * rx;\n translate.tx += cd0.titleBox.width / 2;\n } else if (trace.title.position.indexOf(\"center\") !== -1) {\n maxWidth *= 2;\n } else if (trace.title.position.indexOf(\"right\") !== -1) {\n maxWidth = maxWidth + rx;\n topMiddle.x += (1 + maxPull) * rx;\n translate.tx -= cd0.titleBox.width / 2;\n }\n scaleX = maxWidth / cd0.titleBox.width;\n scaleY = getTitleSpace(cd0, plotSize) / cd0.titleBox.height;\n return {\n x: topMiddle.x,\n y: topMiddle.y,\n scale: Math.min(scaleX, scaleY),\n tx: translate.tx,\n ty: translate.ty\n };\n }\n function applyAspectRatio(x, aspectratio) {\n return x / (aspectratio === void 0 ? 1 : aspectratio);\n }\n function getTitleSpace(cd0, plotSize) {\n var trace = cd0.trace;\n var pieBoxHeight = plotSize.h * (trace.domain.y[1] - trace.domain.y[0]);\n return Math.min(cd0.titleBox.height, pieBoxHeight / 2);\n }\n function getMaxPull(trace) {\n var maxPull = trace.pull;\n if (!maxPull) return 0;\n var j;\n if (Lib.isArrayOrTypedArray(maxPull)) {\n maxPull = 0;\n for (j = 0; j < trace.pull.length; j++) {\n if (trace.pull[j] > maxPull) maxPull = trace.pull[j];\n }\n }\n return maxPull;\n }\n function scootLabels(quadrants, trace) {\n var xHalf, yHalf, equatorFirst, farthestX, farthestY, xDiffSign, yDiffSign, thisQuad, oppositeQuad, wholeSide, i, thisQuadOutside, firstOppositeOutsidePt;\n function topFirst(a, b) {\n return a.pxmid[1] - b.pxmid[1];\n }\n function bottomFirst(a, b) {\n return b.pxmid[1] - a.pxmid[1];\n }\n function scootOneLabel(thisPt, prevPt2) {\n if (!prevPt2) prevPt2 = {};\n var prevOuterY = prevPt2.labelExtraY + (yHalf ? prevPt2.yLabelMax : prevPt2.yLabelMin);\n var thisInnerY = yHalf ? thisPt.yLabelMin : thisPt.yLabelMax;\n var thisOuterY = yHalf ? thisPt.yLabelMax : thisPt.yLabelMin;\n var thisSliceOuterY = thisPt.cyFinal + farthestY(thisPt.px0[1], thisPt.px1[1]);\n var newExtraY = prevOuterY - thisInnerY;\n var xBuffer, i2, otherPt, otherOuterY, otherOuterX, newExtraX;\n if (newExtraY * yDiffSign > 0) thisPt.labelExtraY = newExtraY;\n if (!Lib.isArrayOrTypedArray(trace.pull)) return;\n for (i2 = 0; i2 < wholeSide.length; i2++) {\n otherPt = wholeSide[i2];\n if (otherPt === thisPt || (helpers.castOption(trace.pull, thisPt.pts) || 0) >= (helpers.castOption(trace.pull, otherPt.pts) || 0)) {\n continue;\n }\n if ((thisPt.pxmid[1] - otherPt.pxmid[1]) * yDiffSign > 0) {\n otherOuterY = otherPt.cyFinal + farthestY(otherPt.px0[1], otherPt.px1[1]);\n newExtraY = otherOuterY - thisInnerY - thisPt.labelExtraY;\n if (newExtraY * yDiffSign > 0) thisPt.labelExtraY += newExtraY;\n } else if ((thisOuterY + thisPt.labelExtraY - thisSliceOuterY) * yDiffSign > 0) {\n xBuffer = 3 * xDiffSign * Math.abs(i2 - wholeSide.indexOf(thisPt));\n otherOuterX = otherPt.cxFinal + farthestX(otherPt.px0[0], otherPt.px1[0]);\n newExtraX = otherOuterX + xBuffer - (thisPt.cxFinal + thisPt.pxmid[0]) - thisPt.labelExtraX;\n if (newExtraX * xDiffSign > 0) thisPt.labelExtraX += newExtraX;\n }\n }\n }\n for (yHalf = 0; yHalf < 2; yHalf++) {\n equatorFirst = yHalf ? topFirst : bottomFirst;\n farthestY = yHalf ? Math.max : Math.min;\n yDiffSign = yHalf ? 1 : -1;\n for (xHalf = 0; xHalf < 2; xHalf++) {\n farthestX = xHalf ? Math.max : Math.min;\n xDiffSign = xHalf ? 1 : -1;\n thisQuad = quadrants[yHalf][xHalf];\n thisQuad.sort(equatorFirst);\n oppositeQuad = quadrants[1 - yHalf][xHalf];\n wholeSide = oppositeQuad.concat(thisQuad);\n thisQuadOutside = [];\n for (i = 0; i < thisQuad.length; i++) {\n if (thisQuad[i].yLabelMid !== void 0) thisQuadOutside.push(thisQuad[i]);\n }\n firstOppositeOutsidePt = false;\n for (i = 0; yHalf && i < oppositeQuad.length; i++) {\n if (oppositeQuad[i].yLabelMid !== void 0) {\n firstOppositeOutsidePt = oppositeQuad[i];\n break;\n }\n }\n for (i = 0; i < thisQuadOutside.length; i++) {\n var prevPt = i && thisQuadOutside[i - 1];\n if (firstOppositeOutsidePt && !i) prevPt = firstOppositeOutsidePt;\n scootOneLabel(thisQuadOutside[i], prevPt);\n }\n }\n }\n }\n function layoutAreas(cdModule, plotSize) {\n var scaleGroups = [];\n for (var i = 0; i < cdModule.length; i++) {\n var cd0 = cdModule[i][0];\n var trace = cd0.trace;\n var domain = trace.domain;\n var width = plotSize.w * (domain.x[1] - domain.x[0]);\n var height = plotSize.h * (domain.y[1] - domain.y[0]);\n if (trace.title.text && trace.title.position !== \"middle center\") {\n height -= getTitleSpace(cd0, plotSize);\n }\n var rx = width / 2;\n var ry = height / 2;\n if (trace.type === \"funnelarea\" && !trace.scalegroup) {\n ry /= trace.aspectratio;\n }\n cd0.r = Math.min(rx, ry) / (1 + getMaxPull(trace));\n cd0.cx = plotSize.l + plotSize.w * (trace.domain.x[1] + trace.domain.x[0]) / 2;\n cd0.cy = plotSize.t + plotSize.h * (1 - trace.domain.y[0]) - height / 2;\n if (trace.title.text && trace.title.position.indexOf(\"bottom\") !== -1) {\n cd0.cy -= getTitleSpace(cd0, plotSize);\n }\n if (trace.scalegroup && scaleGroups.indexOf(trace.scalegroup) === -1) {\n scaleGroups.push(trace.scalegroup);\n }\n }\n groupScale(cdModule, scaleGroups);\n }\n function groupScale(cdModule, scaleGroups) {\n var cd0, i, trace;\n for (var k = 0; k < scaleGroups.length; k++) {\n var min = Infinity;\n var g = scaleGroups[k];\n for (i = 0; i < cdModule.length; i++) {\n cd0 = cdModule[i][0];\n trace = cd0.trace;\n if (trace.scalegroup === g) {\n var area;\n if (trace.type === \"pie\") {\n area = cd0.r * cd0.r;\n } else if (trace.type === \"funnelarea\") {\n var rx, ry;\n if (trace.aspectratio > 1) {\n rx = cd0.r;\n ry = rx / trace.aspectratio;\n } else {\n ry = cd0.r;\n rx = ry * trace.aspectratio;\n }\n rx *= (1 + trace.baseratio) / 2;\n area = rx * ry;\n }\n min = Math.min(min, area / cd0.vTotal);\n }\n }\n for (i = 0; i < cdModule.length; i++) {\n cd0 = cdModule[i][0];\n trace = cd0.trace;\n if (trace.scalegroup === g) {\n var v = min * cd0.vTotal;\n if (trace.type === \"funnelarea\") {\n v /= (1 + trace.baseratio) / 2;\n v /= trace.aspectratio;\n }\n cd0.r = Math.sqrt(v);\n }\n }\n }\n }\n function setCoords(cd) {\n var cd0 = cd[0];\n var r = cd0.r;\n var trace = cd0.trace;\n var currentAngle = helpers.getRotationAngle(trace.rotation);\n var angleFactor = 2 * Math.PI / cd0.vTotal;\n var firstPt = \"px0\";\n var lastPt = \"px1\";\n var i, cdi, currentCoords;\n if (trace.direction === \"counterclockwise\") {\n for (i = 0; i < cd.length; i++) {\n if (!cd[i].hidden) break;\n }\n if (i === cd.length) return;\n currentAngle += angleFactor * cd[i].v;\n angleFactor *= -1;\n firstPt = \"px1\";\n lastPt = \"px0\";\n }\n currentCoords = getCoords(r, currentAngle);\n for (i = 0; i < cd.length; i++) {\n cdi = cd[i];\n if (cdi.hidden) continue;\n cdi[firstPt] = currentCoords;\n cdi.startangle = currentAngle;\n currentAngle += angleFactor * cdi.v / 2;\n cdi.pxmid = getCoords(r, currentAngle);\n cdi.midangle = currentAngle;\n currentAngle += angleFactor * cdi.v / 2;\n currentCoords = getCoords(r, currentAngle);\n cdi.stopangle = currentAngle;\n cdi[lastPt] = currentCoords;\n cdi.largeArc = cdi.v > cd0.vTotal / 2 ? 1 : 0;\n cdi.halfangle = Math.PI * Math.min(cdi.v / cd0.vTotal, 0.5);\n cdi.ring = 1 - trace.hole;\n cdi.rInscribed = getInscribedRadiusFraction(cdi, cd0);\n }\n }\n function getCoords(r, angle) {\n return [r * Math.sin(angle), -r * Math.cos(angle)];\n }\n function formatSliceLabel(gd, pt, cd0) {\n var fullLayout = gd._fullLayout;\n var trace = cd0.trace;\n var texttemplate = trace.texttemplate;\n var textinfo = trace.textinfo;\n if (!texttemplate && textinfo && textinfo !== \"none\") {\n var parts = textinfo.split(\"+\");\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n var hasLabel = hasFlag(\"label\");\n var hasText = hasFlag(\"text\");\n var hasValue = hasFlag(\"value\");\n var hasPercent = hasFlag(\"percent\");\n var separators = fullLayout.separators;\n var text;\n text = hasLabel ? [pt.label] : [];\n if (hasText) {\n var tx = helpers.getFirstFilled(trace.text, pt.pts);\n if (isValidTextValue(tx)) text.push(tx);\n }\n if (hasValue) text.push(helpers.formatPieValue(pt.v, separators));\n if (hasPercent) text.push(helpers.formatPiePercent(pt.v / cd0.vTotal, separators));\n pt.text = text.join(\"
\");\n }\n function makeTemplateVariables(pt2) {\n return {\n label: pt2.label,\n value: pt2.v,\n valueLabel: helpers.formatPieValue(pt2.v, fullLayout.separators),\n percent: pt2.v / cd0.vTotal,\n percentLabel: helpers.formatPiePercent(pt2.v / cd0.vTotal, fullLayout.separators),\n color: pt2.color,\n text: pt2.text,\n customdata: Lib.castOption(trace, pt2.i, \"customdata\")\n };\n }\n if (texttemplate) {\n var txt = Lib.castOption(trace, pt.i, \"texttemplate\");\n if (!txt) {\n pt.text = \"\";\n } else {\n var obj = makeTemplateVariables(pt);\n var ptTx = helpers.getFirstFilled(trace.text, pt.pts);\n if (isValidTextValue(ptTx) || ptTx === \"\") obj.text = ptTx;\n pt.text = Lib.texttemplateString(txt, obj, gd._fullLayout._d3locale, obj, trace._meta || {});\n }\n }\n }\n function computeTransform(transform, textBB) {\n var a = transform.rotate * Math.PI / 180;\n var cosA = Math.cos(a);\n var sinA = Math.sin(a);\n var midX = (textBB.left + textBB.right) / 2;\n var midY = (textBB.top + textBB.bottom) / 2;\n transform.textX = midX * cosA - midY * sinA;\n transform.textY = midX * sinA + midY * cosA;\n transform.noCenter = true;\n }\n module.exports = {\n plot,\n formatSliceLabel,\n transformInsideText,\n determineInsideTextFont,\n positionTitleOutside,\n prerenderTitles,\n layoutAreas,\n attachFxHandlers,\n computeTransform\n };\n }\n });\n\n // src/traces/pie/style.js\n var require_style12 = __commonJS({\n \"src/traces/pie/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var styleOne = require_style_one();\n var resizeText = require_uniform_text().resizeText;\n module.exports = function style(gd) {\n var s = gd._fullLayout._pielayer.selectAll(\".trace\");\n resizeText(gd, s, \"pie\");\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n traceSelection.style({ opacity: trace.opacity });\n traceSelection.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n };\n }\n });\n\n // src/traces/pie/base_plot.js\n var require_base_plot = __commonJS({\n \"src/traces/pie/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"pie\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/pie/index.js\n var require_pie = __commonJS({\n \"src/traces/pie/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes35(),\n supplyDefaults: require_defaults31().supplyDefaults,\n supplyLayoutDefaults: require_layout_defaults11(),\n layoutAttributes: require_layout_attributes12(),\n calc: require_calc16().calc,\n crossTraceCalc: require_calc16().crossTraceCalc,\n plot: require_plot12().plot,\n style: require_style12(),\n styleOne: require_style_one(),\n moduleType: \"trace\",\n name: \"pie\",\n basePlotModule: require_base_plot(),\n categories: [\"pie-like\", \"pie\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/pie.js\n var require_pie2 = __commonJS({\n \"lib/pie.js\"(exports, module) {\n \"use strict\";\n module.exports = require_pie();\n }\n });\n\n // src/traces/sunburst/base_plot.js\n var require_base_plot2 = __commonJS({\n \"src/traces/sunburst/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"sunburst\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/sunburst/constants.js\n var require_constants20 = __commonJS({\n \"src/traces/sunburst/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: \"linear\",\n eventDataKeys: [\n // string\n \"currentPath\",\n \"root\",\n \"entry\",\n // no need to add 'parent' here\n // percentages i.e. ratios\n \"percentRoot\",\n \"percentEntry\",\n \"percentParent\"\n ]\n };\n }\n });\n\n // src/traces/sunburst/attributes.js\n var require_attributes36 = __commonJS({\n \"src/traces/sunburst/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var domainAttrs = require_domain().attributes;\n var pieAttrs = require_attributes35();\n var constants = require_constants20();\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n module.exports = {\n labels: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n parents: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n branchvalues: {\n valType: \"enumerated\",\n values: [\"remainder\", \"total\"],\n dflt: \"remainder\",\n editType: \"calc\"\n },\n count: {\n valType: \"flaglist\",\n flags: [\n \"branches\",\n \"leaves\"\n ],\n dflt: \"leaves\",\n editType: \"calc\"\n },\n level: {\n valType: \"any\",\n editType: \"plot\",\n anim: true\n },\n maxdepth: {\n valType: \"integer\",\n editType: \"plot\",\n dflt: -1\n },\n marker: extendFlat(\n {\n colors: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // colorinheritance: {\n // valType: 'enumerated',\n // values: ['per-branch', 'per-label', false]\n // },\n line: {\n color: extendFlat({}, pieAttrs.marker.line.color, {\n dflt: null\n }),\n width: extendFlat({}, pieAttrs.marker.line.width, { dflt: 1 }),\n editType: \"calc\"\n },\n pattern,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", {\n colorAttr: \"colors\",\n anim: false\n // TODO: set to anim: true?\n })\n ),\n leaf: {\n opacity: {\n valType: \"number\",\n editType: \"style\",\n min: 0,\n max: 1\n },\n editType: \"plot\"\n },\n text: pieAttrs.text,\n textinfo: {\n valType: \"flaglist\",\n flags: [\n \"label\",\n \"text\",\n \"value\",\n \"current path\",\n \"percent root\",\n \"percent entry\",\n \"percent parent\"\n ],\n extras: [\"none\"],\n editType: \"plot\"\n },\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n hovertext: pieAttrs.hovertext,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\n \"label\",\n \"text\",\n \"value\",\n \"name\",\n \"current path\",\n \"percent root\",\n \"percent entry\",\n \"percent parent\"\n ],\n dflt: \"label+text+value+name\"\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textfont: pieAttrs.textfont,\n insidetextorientation: pieAttrs.insidetextorientation,\n insidetextfont: pieAttrs.insidetextfont,\n outsidetextfont: extendFlat({}, pieAttrs.outsidetextfont, {}),\n rotation: {\n valType: \"angle\",\n dflt: 0,\n editType: \"plot\"\n },\n sort: pieAttrs.sort,\n root: {\n color: {\n valType: \"color\",\n editType: \"calc\",\n dflt: \"rgba(0,0,0,0)\"\n },\n editType: \"calc\"\n },\n domain: domainAttrs({ name: \"sunburst\", trace: true, editType: \"calc\" })\n };\n }\n });\n\n // src/traces/sunburst/layout_attributes.js\n var require_layout_attributes13 = __commonJS({\n \"src/traces/sunburst/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n sunburstcolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendsunburstcolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/sunburst/defaults.js\n var require_defaults32 = __commonJS({\n \"src/traces/sunburst/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes36();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n var Colorscale = require_colorscale();\n var hasColorscale = Colorscale.hasColorscale;\n var colorscaleDefaults = Colorscale.handleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var parents = coerce(\"parents\");\n if (!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n var vals = coerce(\"values\");\n if (vals && vals.length) {\n coerce(\"branchvalues\");\n } else {\n coerce(\"count\");\n }\n coerce(\"level\");\n coerce(\"maxdepth\");\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n var withColorscale = traceOut._hasColorscale = hasColorscale(traceIn, \"marker\", \"colors\") || (traceIn.marker || {}).coloraxis;\n if (withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n }\n coerce(\"leaf.opacity\", withColorscale ? 1 : 0.7);\n var text = coerce(\"text\");\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+label\" : \"label\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var textposition = \"auto\";\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce(\"insidetextorientation\");\n coerce(\"sort\");\n coerce(\"rotation\");\n coerce(\"root.color\");\n handleDomainDefaults(traceOut, layout, coerce);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/sunburst/layout_defaults.js\n var require_layout_defaults12 = __commonJS({\n \"src/traces/sunburst/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes13();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"sunburstcolorway\", layoutOut.colorway);\n coerce(\"extendsunburstcolors\");\n };\n }\n });\n\n // node_modules/d3-hierarchy/dist/d3-hierarchy.js\n var require_d3_hierarchy = __commonJS({\n \"node_modules/d3-hierarchy/dist/d3-hierarchy.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n }\n function meanX(children) {\n return children.reduce(meanXReduce, 0) / children.length;\n }\n function meanXReduce(x, c) {\n return x + c.x;\n }\n function maxY(children) {\n return 1 + children.reduce(maxYReduce, 0);\n }\n function maxYReduce(y, c) {\n return Math.max(y, c.y);\n }\n function leafLeft(node) {\n var children;\n while (children = node.children) node = children[0];\n return node;\n }\n function leafRight(node) {\n var children;\n while (children = node.children) node = children[children.length - 1];\n return node;\n }\n function cluster() {\n var separation = defaultSeparation, dx = 1, dy = 1, nodeSize = false;\n function cluster2(root) {\n var previousNode, x = 0;\n root.eachAfter(function(node) {\n var children = node.children;\n if (children) {\n node.x = meanX(children);\n node.y = maxY(children);\n } else {\n node.x = previousNode ? x += separation(node, previousNode) : 0;\n node.y = 0;\n previousNode = node;\n }\n });\n var left = leafLeft(root), right = leafRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;\n return root.eachAfter(nodeSize ? function(node) {\n node.x = (node.x - root.x) * dx;\n node.y = (root.y - node.y) * dy;\n } : function(node) {\n node.x = (node.x - x0) / (x1 - x0) * dx;\n node.y = (1 - (root.y ? node.y / root.y : 1)) * dy;\n });\n }\n cluster2.separation = function(x) {\n return arguments.length ? (separation = x, cluster2) : separation;\n };\n cluster2.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], cluster2) : nodeSize ? null : [dx, dy];\n };\n cluster2.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], cluster2) : nodeSize ? [dx, dy] : null;\n };\n return cluster2;\n }\n function count(node) {\n var sum = 0, children = node.children, i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n }\n function node_count() {\n return this.eachAfter(count);\n }\n function node_each(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n }\n function node_eachBefore(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n }\n function node_eachAfter(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n }\n function node_sum(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0, children = node.children, i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n }\n function node_sort(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n }\n function node_path(end) {\n var start = this, ancestor = leastCommonAncestor(start, end), nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n }\n function leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(), bNodes = b.ancestors(), c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n }\n function node_ancestors() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n }\n function node_descendants() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n }\n function node_leaves() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n }\n function node_links() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) {\n links.push({ source: node.parent, target: node });\n }\n });\n return links;\n }\n function hierarchy(data, children) {\n var root = new Node(data), valued = +data.value && (root.value = data.value), node, nodes = [root], child, childs, i, n;\n if (children == null) children = defaultChildren;\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n return root.eachBefore(computeHeight);\n }\n function node_copy() {\n return hierarchy(this).eachBefore(copyData);\n }\n function defaultChildren(d) {\n return d.children;\n }\n function copyData(node) {\n node.data = node.data.data;\n }\n function computeHeight(node) {\n var height = 0;\n do\n node.height = height;\n while ((node = node.parent) && node.height < ++height);\n }\n function Node(data) {\n this.data = data;\n this.depth = this.height = 0;\n this.parent = null;\n }\n Node.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n };\n var slice = Array.prototype.slice;\n function shuffle(array) {\n var m = array.length, t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array[m];\n array[m] = array[i];\n array[i] = t;\n }\n return array;\n }\n function enclose(circles) {\n var i = 0, n = (circles = shuffle(slice.call(circles))).length, B2 = [], p, e;\n while (i < n) {\n p = circles[i];\n if (e && enclosesWeak(e, p)) ++i;\n else e = encloseBasis(B2 = extendBasis(B2, p)), i = 0;\n }\n return e;\n }\n function extendBasis(B2, p) {\n var i, j;\n if (enclosesWeakAll(p, B2)) return [p];\n for (i = 0; i < B2.length; ++i) {\n if (enclosesNot(p, B2[i]) && enclosesWeakAll(encloseBasis2(B2[i], p), B2)) {\n return [B2[i], p];\n }\n }\n for (i = 0; i < B2.length - 1; ++i) {\n for (j = i + 1; j < B2.length; ++j) {\n if (enclosesNot(encloseBasis2(B2[i], B2[j]), p) && enclosesNot(encloseBasis2(B2[i], p), B2[j]) && enclosesNot(encloseBasis2(B2[j], p), B2[i]) && enclosesWeakAll(encloseBasis3(B2[i], B2[j], p), B2)) {\n return [B2[i], B2[j], p];\n }\n }\n }\n throw new Error();\n }\n function enclosesNot(a, b) {\n var dr = a.r - b.r, dx = b.x - a.x, dy = b.y - a.y;\n return dr < 0 || dr * dr < dx * dx + dy * dy;\n }\n function enclosesWeak(a, b) {\n var dr = a.r - b.r + 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n }\n function enclosesWeakAll(a, B2) {\n for (var i = 0; i < B2.length; ++i) {\n if (!enclosesWeak(a, B2[i])) {\n return false;\n }\n }\n return true;\n }\n function encloseBasis(B2) {\n switch (B2.length) {\n case 1:\n return encloseBasis1(B2[0]);\n case 2:\n return encloseBasis2(B2[0], B2[1]);\n case 3:\n return encloseBasis3(B2[0], B2[1], B2[2]);\n }\n }\n function encloseBasis1(a) {\n return {\n x: a.x,\n y: a.y,\n r: a.r\n };\n }\n function encloseBasis2(a, b) {\n var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x21 = x2 - x1, y21 = y2 - y1, r21 = r2 - r1, l = Math.sqrt(x21 * x21 + y21 * y21);\n return {\n x: (x1 + x2 + x21 / l * r21) / 2,\n y: (y1 + y2 + y21 / l * r21) / 2,\n r: (l + r1 + r2) / 2\n };\n }\n function encloseBasis3(a, b, c) {\n var x1 = a.x, y1 = a.y, r1 = a.r, x2 = b.x, y2 = b.y, r2 = b.r, x3 = c.x, y3 = c.y, r3 = c.r, a2 = x1 - x2, a3 = x1 - x3, b2 = y1 - y2, b3 = y1 - y3, c2 = r2 - r1, c3 = r3 - r1, d1 = x1 * x1 + y1 * y1 - r1 * r1, d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2, d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3, ab = a3 * b2 - a2 * b3, xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1, xb = (b3 * c2 - b2 * c3) / ab, ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1, yb = (a2 * c3 - a3 * c2) / ab, A2 = xb * xb + yb * yb - 1, B2 = 2 * (r1 + xa * xb + ya * yb), C2 = xa * xa + ya * ya - r1 * r1, r = -(A2 ? (B2 + Math.sqrt(B2 * B2 - 4 * A2 * C2)) / (2 * A2) : C2 / B2);\n return {\n x: x1 + xa + xb * r,\n y: y1 + ya + yb * r,\n r\n };\n }\n function place(b, a, c) {\n var dx = b.x - a.x, x, a2, dy = b.y - a.y, y, b2, d2 = dx * dx + dy * dy;\n if (d2) {\n a2 = a.r + c.r, a2 *= a2;\n b2 = b.r + c.r, b2 *= b2;\n if (a2 > b2) {\n x = (d2 + b2 - a2) / (2 * d2);\n y = Math.sqrt(Math.max(0, b2 / d2 - x * x));\n c.x = b.x - x * dx - y * dy;\n c.y = b.y - x * dy + y * dx;\n } else {\n x = (d2 + a2 - b2) / (2 * d2);\n y = Math.sqrt(Math.max(0, a2 / d2 - x * x));\n c.x = a.x + x * dx - y * dy;\n c.y = a.y + x * dy + y * dx;\n }\n } else {\n c.x = a.x + c.r;\n c.y = a.y;\n }\n }\n function intersects(a, b) {\n var dr = a.r + b.r - 1e-6, dx = b.x - a.x, dy = b.y - a.y;\n return dr > 0 && dr * dr > dx * dx + dy * dy;\n }\n function score(node) {\n var a = node._, b = node.next._, ab = a.r + b.r, dx = (a.x * b.r + b.x * a.r) / ab, dy = (a.y * b.r + b.y * a.r) / ab;\n return dx * dx + dy * dy;\n }\n function Node$1(circle) {\n this._ = circle;\n this.next = null;\n this.previous = null;\n }\n function packEnclose(circles) {\n if (!(n = circles.length)) return 0;\n var a, b, c, n, aa, ca, i, j, k, sj, sk;\n a = circles[0], a.x = 0, a.y = 0;\n if (!(n > 1)) return a.r;\n b = circles[1], a.x = -b.r, b.x = a.r, b.y = 0;\n if (!(n > 2)) return a.r + b.r;\n place(b, a, c = circles[2]);\n a = new Node$1(a), b = new Node$1(b), c = new Node$1(c);\n a.next = c.previous = b;\n b.next = a.previous = c;\n c.next = b.previous = a;\n pack: for (i = 3; i < n; ++i) {\n place(a._, b._, c = circles[i]), c = new Node$1(c);\n j = b.next, k = a.previous, sj = b._.r, sk = a._.r;\n do {\n if (sj <= sk) {\n if (intersects(j._, c._)) {\n b = j, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sj += j._.r, j = j.next;\n } else {\n if (intersects(k._, c._)) {\n a = k, a.next = b, b.previous = a, --i;\n continue pack;\n }\n sk += k._.r, k = k.previous;\n }\n } while (j !== k.next);\n c.previous = a, c.next = b, a.next = b.previous = b = c;\n aa = score(a);\n while ((c = c.next) !== b) {\n if ((ca = score(c)) < aa) {\n a = c, aa = ca;\n }\n }\n b = a.next;\n }\n a = [b._], c = b;\n while ((c = c.next) !== b) a.push(c._);\n c = enclose(a);\n for (i = 0; i < n; ++i) a = circles[i], a.x -= c.x, a.y -= c.y;\n return c.r;\n }\n function siblings(circles) {\n packEnclose(circles);\n return circles;\n }\n function optional(f) {\n return f == null ? null : required(f);\n }\n function required(f) {\n if (typeof f !== \"function\") throw new Error();\n return f;\n }\n function constantZero() {\n return 0;\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n function defaultRadius(d) {\n return Math.sqrt(d.value);\n }\n function index() {\n var radius = null, dx = 1, dy = 1, padding = constantZero;\n function pack(root) {\n root.x = dx / 2, root.y = dy / 2;\n if (radius) {\n root.eachBefore(radiusLeaf(radius)).eachAfter(packChildren(padding, 0.5)).eachBefore(translateChild(1));\n } else {\n root.eachBefore(radiusLeaf(defaultRadius)).eachAfter(packChildren(constantZero, 1)).eachAfter(packChildren(padding, root.r / Math.min(dx, dy))).eachBefore(translateChild(Math.min(dx, dy) / (2 * root.r)));\n }\n return root;\n }\n pack.radius = function(x) {\n return arguments.length ? (radius = optional(x), pack) : radius;\n };\n pack.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], pack) : [dx, dy];\n };\n pack.padding = function(x) {\n return arguments.length ? (padding = typeof x === \"function\" ? x : constant(+x), pack) : padding;\n };\n return pack;\n }\n function radiusLeaf(radius) {\n return function(node) {\n if (!node.children) {\n node.r = Math.max(0, +radius(node) || 0);\n }\n };\n }\n function packChildren(padding, k) {\n return function(node) {\n if (children = node.children) {\n var children, i, n = children.length, r = padding(node) * k || 0, e;\n if (r) for (i = 0; i < n; ++i) children[i].r += r;\n e = packEnclose(children);\n if (r) for (i = 0; i < n; ++i) children[i].r -= r;\n node.r = e + r;\n }\n };\n }\n function translateChild(k) {\n return function(node) {\n var parent = node.parent;\n node.r *= k;\n if (parent) {\n node.x = parent.x + k * node.x;\n node.y = parent.y + k * node.y;\n }\n };\n }\n function roundNode(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n }\n function treemapDice(parent, x0, y0, x1, y1) {\n var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (x1 - x0) / parent.value;\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n }\n function partition() {\n var dx = 1, dy = 1, padding = 0, round = false;\n function partition2(root) {\n var n = root.height + 1;\n root.x0 = root.y0 = padding;\n root.x1 = dx;\n root.y1 = dy / n;\n root.eachBefore(positionNode(dy, n));\n if (round) root.eachBefore(roundNode);\n return root;\n }\n function positionNode(dy2, n) {\n return function(node) {\n if (node.children) {\n treemapDice(node, node.x0, dy2 * (node.depth + 1) / n, node.x1, dy2 * (node.depth + 2) / n);\n }\n var x0 = node.x0, y0 = node.y0, x1 = node.x1 - padding, y1 = node.y1 - padding;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n };\n }\n partition2.round = function(x) {\n return arguments.length ? (round = !!x, partition2) : round;\n };\n partition2.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], partition2) : [dx, dy];\n };\n partition2.padding = function(x) {\n return arguments.length ? (padding = +x, partition2) : padding;\n };\n return partition2;\n }\n var keyPrefix = \"$\", preroot = { depth: -1 }, ambiguous = {};\n function defaultId(d) {\n return d.id;\n }\n function defaultParentId(d) {\n return d.parentId;\n }\n function stratify() {\n var id = defaultId, parentId = defaultParentId;\n function stratify2(data) {\n var d, i, n = data.length, root, parent, node, nodes = new Array(n), nodeId, nodeKey, nodeByKey = {};\n for (i = 0; i < n; ++i) {\n d = data[i], node = nodes[i] = new Node(d);\n if ((nodeId = id(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = keyPrefix + (node.id = nodeId);\n nodeByKey[nodeKey] = nodeKey in nodeByKey ? ambiguous : node;\n }\n }\n for (i = 0; i < n; ++i) {\n node = nodes[i], nodeId = parentId(data[i], i, data);\n if (nodeId == null || !(nodeId += \"\")) {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n } else {\n parent = nodeByKey[keyPrefix + nodeId];\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n }\n }\n if (!root) throw new Error(\"no root\");\n root.parent = preroot;\n root.eachBefore(function(node2) {\n node2.depth = node2.parent.depth + 1;\n --n;\n }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n return root;\n }\n stratify2.id = function(x) {\n return arguments.length ? (id = required(x), stratify2) : id;\n };\n stratify2.parentId = function(x) {\n return arguments.length ? (parentId = required(x), stratify2) : parentId;\n };\n return stratify2;\n }\n function defaultSeparation$1(a, b) {\n return a.parent === b.parent ? 1 : 2;\n }\n function nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n }\n function nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n }\n function moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n }\n function executeShifts(v) {\n var shift = 0, change = 0, children = v.children, i = children.length, w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n }\n function nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n }\n function TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null;\n this.a = this;\n this.z = 0;\n this.m = 0;\n this.c = 0;\n this.s = 0;\n this.t = null;\n this.i = i;\n }\n TreeNode.prototype = Object.create(Node.prototype);\n function treeRoot(root) {\n var tree2 = new TreeNode(root, 0), node, nodes = [tree2], child, children, i, n;\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n (tree2.parent = new TreeNode(null, 0)).children = [tree2];\n return tree2;\n }\n function tree() {\n var separation = defaultSeparation$1, dx = 1, dy = 1, nodeSize = null;\n function tree2(root) {\n var t = treeRoot(root);\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n if (nodeSize) root.eachBefore(sizeNode);\n else {\n var left = root, right = root, bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2, tx = s - left.x, kx = dx / (right.x + s + tx), ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n return root;\n }\n function firstWalk(v) {\n var children = v.children, siblings2 = v.parent.children, w = v.i ? siblings2[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings2[0]);\n }\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v, vop = v, vim = w, vom = vip.parent.children[0], sip = vip.m, sop = vop.m, sim = vim.m, som = vom.m, shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n tree2.separation = function(x) {\n return arguments.length ? (separation = x, tree2) : separation;\n };\n tree2.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree2) : nodeSize ? null : [dx, dy];\n };\n tree2.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree2) : nodeSize ? [dx, dy] : null;\n };\n return tree2;\n }\n function treemapSlice(parent, x0, y0, x1, y1) {\n var nodes = parent.children, node, i = -1, n = nodes.length, k = parent.value && (y1 - y0) / parent.value;\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n }\n var phi = (1 + Math.sqrt(5)) / 2;\n function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [], nodes = parent.children, row, nodeValue, i0 = 0, i1 = 0, n = nodes.length, dx, dy, value = parent.value, sumValue, minValue, maxValue, newRatio, minRatio, alpha, beta;\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n do\n sumValue = nodes[i1++].value;\n while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) {\n sumValue -= nodeValue;\n break;\n }\n minRatio = newRatio;\n }\n rows.push(row = { value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1) });\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n return rows;\n }\n var squarify = function custom(ratio) {\n function squarify2(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n squarify2.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n return squarify2;\n }(phi);\n function index$1() {\n var tile = squarify, round = false, dx = 1, dy = 1, paddingStack = [0], paddingInner = constantZero, paddingTop = constantZero, paddingRight = constantZero, paddingBottom = constantZero, paddingLeft = constantZero;\n function treemap(root) {\n root.x0 = root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n function positionNode(node) {\n var p = paddingStack[node.depth], x0 = node.x0 + p, y0 = node.y0 + p, x1 = node.x1 - p, y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n return treemap;\n }\n function binary(parent, x0, y0, x1, y1) {\n var nodes = parent.children, i, n = nodes.length, sum, sums = new Array(n + 1);\n for (sums[0] = sum = i = 0; i < n; ++i) {\n sums[i + 1] = sum += nodes[i].value;\n }\n partition2(0, n, parent.value, x0, y0, x1, y1);\n function partition2(i2, j, value, x02, y02, x12, y12) {\n if (i2 >= j - 1) {\n var node = nodes[i2];\n node.x0 = x02, node.y0 = y02;\n node.x1 = x12, node.y1 = y12;\n return;\n }\n var valueOffset = sums[i2], valueTarget = value / 2 + valueOffset, k = i2 + 1, hi = j - 1;\n while (k < hi) {\n var mid = k + hi >>> 1;\n if (sums[mid] < valueTarget) k = mid + 1;\n else hi = mid;\n }\n if (valueTarget - sums[k - 1] < sums[k] - valueTarget && i2 + 1 < k) --k;\n var valueLeft = sums[k] - valueOffset, valueRight = value - valueLeft;\n if (x12 - x02 > y12 - y02) {\n var xk = (x02 * valueRight + x12 * valueLeft) / value;\n partition2(i2, k, valueLeft, x02, y02, xk, y12);\n partition2(k, j, valueRight, xk, y02, x12, y12);\n } else {\n var yk = (y02 * valueRight + y12 * valueLeft) / value;\n partition2(i2, k, valueLeft, x02, y02, x12, yk);\n partition2(k, j, valueRight, x02, yk, x12, y12);\n }\n }\n }\n function sliceDice(parent, x0, y0, x1, y1) {\n (parent.depth & 1 ? treemapSlice : treemapDice)(parent, x0, y0, x1, y1);\n }\n var resquarify = function custom(ratio) {\n function resquarify2(parent, x0, y0, x1, y1) {\n if ((rows = parent._squarify) && rows.ratio === ratio) {\n var rows, row, nodes, i, j = -1, n, m = rows.length, value = parent.value;\n while (++j < m) {\n row = rows[j], nodes = row.children;\n for (i = row.value = 0, n = nodes.length; i < n; ++i) row.value += nodes[i].value;\n if (row.dice) treemapDice(row, x0, y0, x1, y0 += (y1 - y0) * row.value / value);\n else treemapSlice(row, x0, y0, x0 += (x1 - x0) * row.value / value, y1);\n value -= row.value;\n }\n } else {\n parent._squarify = rows = squarifyRatio(ratio, parent, x0, y0, x1, y1);\n rows.ratio = ratio;\n }\n }\n resquarify2.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n return resquarify2;\n }(phi);\n exports2.cluster = cluster;\n exports2.hierarchy = hierarchy;\n exports2.pack = index;\n exports2.packEnclose = enclose;\n exports2.packSiblings = siblings;\n exports2.partition = partition;\n exports2.stratify = stratify;\n exports2.tree = tree;\n exports2.treemap = index$1;\n exports2.treemapBinary = binary;\n exports2.treemapDice = treemapDice;\n exports2.treemapResquarify = resquarify;\n exports2.treemapSlice = treemapSlice;\n exports2.treemapSliceDice = sliceDice;\n exports2.treemapSquarify = squarify;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/traces/sunburst/calc.js\n var require_calc17 = __commonJS({\n \"src/traces/sunburst/calc.js\"(exports) {\n \"use strict\";\n var d3Hierarchy = require_d3_hierarchy();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var makeColorScaleFn = require_colorscale().makeColorScaleFuncFromTrace;\n var makePullColorFn = require_calc16().makePullColorFn;\n var generateExtendedColors = require_calc16().generateExtendedColors;\n var colorscaleCalc = require_colorscale().calc;\n var ALMOST_EQUAL = require_numerical().ALMOST_EQUAL;\n var sunburstExtendedColorWays = {};\n var treemapExtendedColorWays = {};\n var icicleExtendedColorWays = {};\n exports.calc = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var ids = trace.ids;\n var hasIds = Lib.isArrayOrTypedArray(ids);\n var labels = trace.labels;\n var parents = trace.parents;\n var values = trace.values;\n var hasValues = Lib.isArrayOrTypedArray(values);\n var cd = [];\n var parent2children = {};\n var refs = {};\n var addToLookup = function(parent, v) {\n if (parent2children[parent]) parent2children[parent].push(v);\n else parent2children[parent] = [v];\n refs[v] = 1;\n };\n var isValidKey = function(k2) {\n return k2 || typeof k2 === \"number\";\n };\n var isValidVal = function(i2) {\n return !hasValues || isNumeric(values[i2]) && values[i2] >= 0;\n };\n var len;\n var isValid;\n var getId;\n if (hasIds) {\n len = Math.min(ids.length, parents.length);\n isValid = function(i2) {\n return isValidKey(ids[i2]) && isValidVal(i2);\n };\n getId = function(i2) {\n return String(ids[i2]);\n };\n } else {\n len = Math.min(labels.length, parents.length);\n isValid = function(i2) {\n return isValidKey(labels[i2]) && isValidVal(i2);\n };\n getId = function(i2) {\n return String(labels[i2]);\n };\n }\n if (hasValues) len = Math.min(len, values.length);\n for (var i = 0; i < len; i++) {\n if (isValid(i)) {\n var id = getId(i);\n var pid = isValidKey(parents[i]) ? String(parents[i]) : \"\";\n var cdi = {\n i,\n id,\n pid,\n label: isValidKey(labels[i]) ? String(labels[i]) : \"\"\n };\n if (hasValues) cdi.v = +values[i];\n cd.push(cdi);\n addToLookup(pid, id);\n }\n }\n if (!parent2children[\"\"]) {\n var impliedRoots = [];\n var k;\n for (k in parent2children) {\n if (!refs[k]) {\n impliedRoots.push(k);\n }\n }\n if (impliedRoots.length === 1) {\n k = impliedRoots[0];\n cd.unshift({\n hasImpliedRoot: true,\n id: k,\n pid: \"\",\n label: k\n });\n } else {\n return Lib.warn([\n \"Multiple implied roots, cannot build\",\n trace.type,\n \"hierarchy of\",\n trace.name + \".\",\n \"These roots include:\",\n impliedRoots.join(\", \")\n ].join(\" \"));\n }\n } else if (parent2children[\"\"].length > 1) {\n var dummyId = Lib.randstr();\n for (var j = 0; j < cd.length; j++) {\n if (cd[j].pid === \"\") {\n cd[j].pid = dummyId;\n }\n }\n cd.unshift({\n hasMultipleRoots: true,\n id: dummyId,\n pid: \"\",\n label: \"\"\n });\n }\n var root;\n try {\n root = d3Hierarchy.stratify().id(function(d) {\n return d.id;\n }).parentId(function(d) {\n return d.pid;\n })(cd);\n } catch (e) {\n return Lib.warn([\n \"Failed to build\",\n trace.type,\n \"hierarchy of\",\n trace.name + \".\",\n \"Error:\",\n e.message\n ].join(\" \"));\n }\n var hierarchy = d3Hierarchy.hierarchy(root);\n var failed = false;\n if (hasValues) {\n switch (trace.branchvalues) {\n case \"remainder\":\n hierarchy.sum(function(d) {\n return d.data.v;\n });\n break;\n case \"total\":\n hierarchy.each(function(d) {\n var cdi2 = d.data.data;\n var v = cdi2.v;\n if (d.children) {\n var partialSum = d.children.reduce(function(a, c) {\n return a + c.data.data.v;\n }, 0);\n if (cdi2.hasImpliedRoot || cdi2.hasMultipleRoots) {\n v = partialSum;\n }\n if (v < partialSum * ALMOST_EQUAL) {\n failed = true;\n return Lib.warn([\n \"Total value for node\",\n d.data.data.id,\n \"of\",\n trace.name,\n \"is smaller than the sum of its children.\",\n \"\\nparent value =\",\n v,\n \"\\nchildren sum =\",\n partialSum\n ].join(\" \"));\n }\n }\n d.value = v;\n });\n break;\n }\n } else {\n countDescendants(hierarchy, trace, {\n branches: trace.count.indexOf(\"branches\") !== -1,\n leaves: trace.count.indexOf(\"leaves\") !== -1\n });\n }\n if (failed) return;\n if (trace.sort) {\n hierarchy.sort(function(a, b) {\n return b.value - a.value;\n });\n }\n var pullColor;\n var scaleColor;\n var colors = trace.marker.colors || [];\n var hasColors = !!colors.length;\n if (trace._hasColorscale) {\n if (!hasColors) {\n colors = hasValues ? trace.values : trace._values;\n }\n colorscaleCalc(gd, trace, {\n vals: colors,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n scaleColor = makeColorScaleFn(trace.marker);\n } else {\n pullColor = makePullColorFn(fullLayout[\"_\" + trace.type + \"colormap\"]);\n }\n hierarchy.each(function(d) {\n var cdi2 = d.data.data;\n cdi2.color = trace._hasColorscale ? scaleColor(colors[cdi2.i]) : pullColor(colors[cdi2.i], cdi2.id);\n });\n cd[0].hierarchy = hierarchy;\n return cd;\n };\n exports._runCrossTraceCalc = function(desiredType, gd) {\n var fullLayout = gd._fullLayout;\n var calcdata = gd.calcdata;\n var colorWay = fullLayout[desiredType + \"colorway\"];\n var colorMap = fullLayout[\"_\" + desiredType + \"colormap\"];\n if (fullLayout[\"extend\" + desiredType + \"colors\"]) {\n colorWay = generateExtendedColors(\n colorWay,\n desiredType === \"icicle\" ? icicleExtendedColorWays : desiredType === \"treemap\" ? treemapExtendedColorWays : sunburstExtendedColorWays\n );\n }\n var dfltColorCount = 0;\n var rootColor;\n function pickColor(d) {\n var cdi = d.data.data;\n var id = cdi.id;\n if (cdi.color === false) {\n if (colorMap[id]) {\n cdi.color = colorMap[id];\n } else if (d.parent) {\n if (d.parent.parent) {\n cdi.color = d.parent.data.data.color;\n } else {\n colorMap[id] = cdi.color = colorWay[dfltColorCount % colorWay.length];\n dfltColorCount++;\n }\n } else {\n cdi.color = rootColor;\n }\n }\n }\n for (var i = 0; i < calcdata.length; i++) {\n var cd = calcdata[i];\n var cd0 = cd[0];\n if (cd0.trace.type === desiredType && cd0.hierarchy) {\n rootColor = cd0.trace.root.color;\n cd0.hierarchy.each(pickColor);\n }\n }\n };\n exports.crossTraceCalc = function(gd) {\n return exports._runCrossTraceCalc(\"sunburst\", gd);\n };\n function countDescendants(node, trace, opts) {\n var nChild = 0;\n var children = node.children;\n if (children) {\n var len = children.length;\n for (var i = 0; i < len; i++) {\n nChild += countDescendants(children[i], trace, opts);\n }\n if (opts.branches) nChild++;\n } else {\n if (opts.leaves) nChild++;\n }\n node.value = node.data.data.value = nChild;\n if (!trace._values) trace._values = [];\n trace._values[node.data.data.i] = nChild;\n return nChild;\n }\n }\n });\n\n // node_modules/d3-color/src/define.js\n function define_default(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n }\n function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n }\n var init_define = __esm({\n \"node_modules/d3-color/src/define.js\"() {\n }\n });\n\n // node_modules/d3-color/src/color.js\n function Color() {\n }\n function color_formatHex() {\n return this.rgb().formatHex();\n }\n function color_formatHex8() {\n return this.rgb().formatHex8();\n }\n function color_formatHsl() {\n return hslConvert(this).formatHsl();\n }\n function color_formatRgb() {\n return this.rgb().formatRgb();\n }\n function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format) ? rgbn(named[format]) : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0) : null;\n }\n function rgbn(n) {\n return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);\n }\n function rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n }\n function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb();\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n }\n function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n }\n function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n }\n function rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n }\n function rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n }\n function rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n }\n function clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n }\n function clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n }\n function hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n }\n function hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n }\n function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl();\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), h = NaN, s = max - min, l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n }\n function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n }\n function Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n }\n function clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n }\n function clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n }\n function hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;\n }\n var darker, brighter, reI, reN, reP, reHex, reRgbInteger, reRgbPercent, reRgbaInteger, reRgbaPercent, reHslPercent, reHslaPercent, named;\n var init_color = __esm({\n \"node_modules/d3-color/src/color.js\"() {\n init_define();\n darker = 0.7;\n brighter = 1 / darker;\n reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\";\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\";\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\";\n reHex = /^#([0-9a-f]{3,8})$/;\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`);\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`);\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`);\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`);\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`);\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n named = {\n aliceblue: 15792383,\n antiquewhite: 16444375,\n aqua: 65535,\n aquamarine: 8388564,\n azure: 15794175,\n beige: 16119260,\n bisque: 16770244,\n black: 0,\n blanchedalmond: 16772045,\n blue: 255,\n blueviolet: 9055202,\n brown: 10824234,\n burlywood: 14596231,\n cadetblue: 6266528,\n chartreuse: 8388352,\n chocolate: 13789470,\n coral: 16744272,\n cornflowerblue: 6591981,\n cornsilk: 16775388,\n crimson: 14423100,\n cyan: 65535,\n darkblue: 139,\n darkcyan: 35723,\n darkgoldenrod: 12092939,\n darkgray: 11119017,\n darkgreen: 25600,\n darkgrey: 11119017,\n darkkhaki: 12433259,\n darkmagenta: 9109643,\n darkolivegreen: 5597999,\n darkorange: 16747520,\n darkorchid: 10040012,\n darkred: 9109504,\n darksalmon: 15308410,\n darkseagreen: 9419919,\n darkslateblue: 4734347,\n darkslategray: 3100495,\n darkslategrey: 3100495,\n darkturquoise: 52945,\n darkviolet: 9699539,\n deeppink: 16716947,\n deepskyblue: 49151,\n dimgray: 6908265,\n dimgrey: 6908265,\n dodgerblue: 2003199,\n firebrick: 11674146,\n floralwhite: 16775920,\n forestgreen: 2263842,\n fuchsia: 16711935,\n gainsboro: 14474460,\n ghostwhite: 16316671,\n gold: 16766720,\n goldenrod: 14329120,\n gray: 8421504,\n green: 32768,\n greenyellow: 11403055,\n grey: 8421504,\n honeydew: 15794160,\n hotpink: 16738740,\n indianred: 13458524,\n indigo: 4915330,\n ivory: 16777200,\n khaki: 15787660,\n lavender: 15132410,\n lavenderblush: 16773365,\n lawngreen: 8190976,\n lemonchiffon: 16775885,\n lightblue: 11393254,\n lightcoral: 15761536,\n lightcyan: 14745599,\n lightgoldenrodyellow: 16448210,\n lightgray: 13882323,\n lightgreen: 9498256,\n lightgrey: 13882323,\n lightpink: 16758465,\n lightsalmon: 16752762,\n lightseagreen: 2142890,\n lightskyblue: 8900346,\n lightslategray: 7833753,\n lightslategrey: 7833753,\n lightsteelblue: 11584734,\n lightyellow: 16777184,\n lime: 65280,\n limegreen: 3329330,\n linen: 16445670,\n magenta: 16711935,\n maroon: 8388608,\n mediumaquamarine: 6737322,\n mediumblue: 205,\n mediumorchid: 12211667,\n mediumpurple: 9662683,\n mediumseagreen: 3978097,\n mediumslateblue: 8087790,\n mediumspringgreen: 64154,\n mediumturquoise: 4772300,\n mediumvioletred: 13047173,\n midnightblue: 1644912,\n mintcream: 16121850,\n mistyrose: 16770273,\n moccasin: 16770229,\n navajowhite: 16768685,\n navy: 128,\n oldlace: 16643558,\n olive: 8421376,\n olivedrab: 7048739,\n orange: 16753920,\n orangered: 16729344,\n orchid: 14315734,\n palegoldenrod: 15657130,\n palegreen: 10025880,\n paleturquoise: 11529966,\n palevioletred: 14381203,\n papayawhip: 16773077,\n peachpuff: 16767673,\n peru: 13468991,\n pink: 16761035,\n plum: 14524637,\n powderblue: 11591910,\n purple: 8388736,\n rebeccapurple: 6697881,\n red: 16711680,\n rosybrown: 12357519,\n royalblue: 4286945,\n saddlebrown: 9127187,\n salmon: 16416882,\n sandybrown: 16032864,\n seagreen: 3050327,\n seashell: 16774638,\n sienna: 10506797,\n silver: 12632256,\n skyblue: 8900331,\n slateblue: 6970061,\n slategray: 7372944,\n slategrey: 7372944,\n snow: 16775930,\n springgreen: 65407,\n steelblue: 4620980,\n tan: 13808780,\n teal: 32896,\n thistle: 14204888,\n tomato: 16737095,\n turquoise: 4251856,\n violet: 15631086,\n wheat: 16113331,\n white: 16777215,\n whitesmoke: 16119285,\n yellow: 16776960,\n yellowgreen: 10145074\n };\n define_default(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor(), this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n });\n define_default(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex,\n // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n }));\n define_default(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n }));\n }\n });\n\n // node_modules/d3-color/src/math.js\n var radians, degrees;\n var init_math = __esm({\n \"node_modules/d3-color/src/math.js\"() {\n radians = Math.PI / 180;\n degrees = 180 / Math.PI;\n }\n });\n\n // node_modules/d3-color/src/lab.js\n function labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r), g = rgb2lrgb(o.g), b = rgb2lrgb(o.b), y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y;\n else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n }\n function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n }\n function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n }\n function xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n }\n function lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n }\n function lrgb2rgb(x) {\n return 255 * (x <= 31308e-7 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n }\n function rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n }\n function hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * degrees;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n }\n function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n }\n function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n }\n function hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * radians;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n var K, Xn, Yn, Zn, t0, t1, t2, t3;\n var init_lab = __esm({\n \"node_modules/d3-color/src/lab.js\"() {\n init_define();\n init_color();\n init_math();\n K = 18;\n Xn = 0.96422;\n Yn = 1;\n Zn = 0.82521;\n t0 = 4 / 29;\n t1 = 6 / 29;\n t2 = 3 * t1 * t1;\n t3 = t1 * t1 * t1;\n define_default(Lab, lab, extend(Color, {\n brighter(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb() {\n var y = (this.l + 16) / 116, x = isNaN(this.a) ? y : y + this.a / 500, z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb(3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.033454 * z),\n lrgb2rgb(0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n }));\n define_default(Hcl, hcl, extend(Color, {\n brighter(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb() {\n return hcl2lab(this).rgb();\n }\n }));\n }\n });\n\n // node_modules/d3-color/src/cubehelix.js\n function cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255, g = o.g / 255, b = o.b / 255, l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB), bl = b - l, k = (E * (g - l) - C * bl) / D, s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), h = s ? Math.atan2(k, bl) * degrees - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n }\n function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n }\n function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n }\n var A, B, C, D, E, ED, EB, BC_DA;\n var init_cubehelix = __esm({\n \"node_modules/d3-color/src/cubehelix.js\"() {\n init_define();\n init_color();\n init_math();\n A = -0.14861;\n B = 1.78277;\n C = -0.29227;\n D = -0.90649;\n E = 1.97294;\n ED = E * D;\n EB = E * B;\n BC_DA = B * C - D * A;\n define_default(Cubehelix, cubehelix, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * radians, l = +this.l, a = isNaN(this.s) ? 0 : this.s * l * (1 - l), cosh2 = Math.cos(h), sinh2 = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh2 + B * sinh2)),\n 255 * (l + a * (C * cosh2 + D * sinh2)),\n 255 * (l + a * (E * cosh2)),\n this.opacity\n );\n }\n }));\n }\n });\n\n // node_modules/d3-color/src/index.js\n var init_src = __esm({\n \"node_modules/d3-color/src/index.js\"() {\n init_color();\n init_lab();\n init_cubehelix();\n }\n });\n\n // node_modules/d3-interpolate/src/basis.js\n function basis(t12, v0, v1, v2, v3) {\n var t22 = t12 * t12, t32 = t22 * t12;\n return ((1 - 3 * t12 + 3 * t22 - t32) * v0 + (4 - 6 * t22 + 3 * t32) * v1 + (1 + 3 * t12 + 3 * t22 - 3 * t32) * v2 + t32 * v3) / 6;\n }\n function basis_default(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? t = 0 : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n), v1 = values[i], v2 = values[i + 1], v0 = i > 0 ? values[i - 1] : 2 * v1 - v2, v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n }\n var init_basis = __esm({\n \"node_modules/d3-interpolate/src/basis.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/basisClosed.js\n function basisClosed_default(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n), v0 = values[(i + n - 1) % n], v1 = values[i % n], v2 = values[(i + 1) % n], v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n }\n var init_basisClosed = __esm({\n \"node_modules/d3-interpolate/src/basisClosed.js\"() {\n init_basis();\n }\n });\n\n // node_modules/d3-interpolate/src/constant.js\n var constant_default;\n var init_constant = __esm({\n \"node_modules/d3-interpolate/src/constant.js\"() {\n constant_default = (x) => () => x;\n }\n });\n\n // node_modules/d3-interpolate/src/color.js\n function linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n }\n function exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n }\n function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant_default(isNaN(a) ? b : a);\n }\n function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant_default(isNaN(a) ? b : a);\n };\n }\n function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant_default(isNaN(a) ? b : a);\n }\n var init_color2 = __esm({\n \"node_modules/d3-interpolate/src/color.js\"() {\n init_constant();\n }\n });\n\n // node_modules/d3-interpolate/src/rgb.js\n function rgbSpline(spline) {\n return function(colors) {\n var n = colors.length, r = new Array(n), g = new Array(n), b = new Array(n), i, color2;\n for (i = 0; i < n; ++i) {\n color2 = rgb(colors[i]);\n r[i] = color2.r || 0;\n g[i] = color2.g || 0;\n b[i] = color2.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color2.opacity = 1;\n return function(t) {\n color2.r = r(t);\n color2.g = g(t);\n color2.b = b(t);\n return color2 + \"\";\n };\n };\n }\n var rgb_default, rgbBasis, rgbBasisClosed;\n var init_rgb = __esm({\n \"node_modules/d3-interpolate/src/rgb.js\"() {\n init_src();\n init_basis();\n init_basisClosed();\n init_color2();\n rgb_default = function rgbGamma(y) {\n var color2 = gamma(y);\n function rgb2(start, end) {\n var r = color2((start = rgb(start)).r, (end = rgb(end)).r), g = color2(start.g, end.g), b = color2(start.b, end.b), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n rgb2.gamma = rgbGamma;\n return rgb2;\n }(1);\n rgbBasis = rgbSpline(basis_default);\n rgbBasisClosed = rgbSpline(basisClosed_default);\n }\n });\n\n // node_modules/d3-interpolate/src/numberArray.js\n function numberArray_default(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0, c = b.slice(), i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n }\n function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n }\n var init_numberArray = __esm({\n \"node_modules/d3-interpolate/src/numberArray.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/array.js\n function array_default(a, b) {\n return (isNumberArray(b) ? numberArray_default : genericArray)(a, b);\n }\n function genericArray(a, b) {\n var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x = new Array(na), c = new Array(nb), i;\n for (i = 0; i < na; ++i) x[i] = value_default(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n }\n var init_array = __esm({\n \"node_modules/d3-interpolate/src/array.js\"() {\n init_value();\n init_numberArray();\n }\n });\n\n // node_modules/d3-interpolate/src/date.js\n function date_default(a, b) {\n var d = /* @__PURE__ */ new Date();\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n }\n var init_date = __esm({\n \"node_modules/d3-interpolate/src/date.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/number.js\n function number_default(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n }\n var init_number = __esm({\n \"node_modules/d3-interpolate/src/number.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/object.js\n function object_default(a, b) {\n var i = {}, c = {}, k;\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n for (k in b) {\n if (k in a) {\n i[k] = value_default(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n }\n var init_object = __esm({\n \"node_modules/d3-interpolate/src/object.js\"() {\n init_value();\n }\n });\n\n // node_modules/d3-interpolate/src/string.js\n function zero(b) {\n return function() {\n return b;\n };\n }\n function one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n }\n function string_default(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i = -1, s = [], q = [];\n a = a + \"\", b = b + \"\";\n while ((am = reA.exec(a)) && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) {\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) {\n if (s[i]) s[i] += bm;\n else s[++i] = bm;\n } else {\n s[++i] = null;\n q.push({ i, x: number_default(am, bm) });\n }\n bi = reB.lastIndex;\n }\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs;\n else s[++i] = bs;\n }\n return s.length < 2 ? q[0] ? one(q[0].x) : zero(b) : (b = q.length, function(t) {\n for (var i2 = 0, o; i2 < b; ++i2) s[(o = q[i2]).i] = o.x(t);\n return s.join(\"\");\n });\n }\n var reA, reB;\n var init_string = __esm({\n \"node_modules/d3-interpolate/src/string.js\"() {\n init_number();\n reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;\n reB = new RegExp(reA.source, \"g\");\n }\n });\n\n // node_modules/d3-interpolate/src/value.js\n function value_default(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant_default(b) : (t === \"number\" ? number_default : t === \"string\" ? (c = color(b)) ? (b = c, rgb_default) : string_default : b instanceof color ? rgb_default : b instanceof Date ? date_default : isNumberArray(b) ? numberArray_default : Array.isArray(b) ? genericArray : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object_default : number_default)(a, b);\n }\n var init_value = __esm({\n \"node_modules/d3-interpolate/src/value.js\"() {\n init_src();\n init_rgb();\n init_array();\n init_date();\n init_number();\n init_object();\n init_string();\n init_constant();\n init_numberArray();\n }\n });\n\n // node_modules/d3-interpolate/src/discrete.js\n function discrete_default(range) {\n var n = range.length;\n return function(t) {\n return range[Math.max(0, Math.min(n - 1, Math.floor(t * n)))];\n };\n }\n var init_discrete = __esm({\n \"node_modules/d3-interpolate/src/discrete.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/hue.js\n function hue_default(a, b) {\n var i = hue(+a, +b);\n return function(t) {\n var x = i(t);\n return x - 360 * Math.floor(x / 360);\n };\n }\n var init_hue = __esm({\n \"node_modules/d3-interpolate/src/hue.js\"() {\n init_color2();\n }\n });\n\n // node_modules/d3-interpolate/src/round.js\n function round_default(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n }\n var init_round = __esm({\n \"node_modules/d3-interpolate/src/round.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/transform/decompose.js\n function decompose_default(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees2,\n skewX: Math.atan(skewX) * degrees2,\n scaleX,\n scaleY\n };\n }\n var degrees2, identity;\n var init_decompose = __esm({\n \"node_modules/d3-interpolate/src/transform/decompose.js\"() {\n degrees2 = 180 / Math.PI;\n identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n };\n }\n });\n\n // node_modules/d3-interpolate/src/transform/parse.js\n function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose_default(m.a, m.b, m.c, m.d, m.e, m.f);\n }\n function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose_default(value.a, value.b, value.c, value.d, value.e, value.f);\n }\n var svgNode;\n var init_parse = __esm({\n \"node_modules/d3-interpolate/src/transform/parse.js\"() {\n init_decompose();\n }\n });\n\n // node_modules/d3-interpolate/src/transform/index.js\n function interpolateTransform(parse2, pxComma, pxParen, degParen) {\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) });\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360;\n else if (b - a > 180) a += 360;\n q.push({ i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number_default(a, b) });\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({ i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number_default(a, b) });\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({ i: i - 4, x: number_default(xa, xb) }, { i: i - 2, x: number_default(ya, yb) });\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n return function(a, b) {\n var s = [], q = [];\n a = parse2(a), b = parse2(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null;\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n }\n var interpolateTransformCss, interpolateTransformSvg;\n var init_transform = __esm({\n \"node_modules/d3-interpolate/src/transform/index.js\"() {\n init_number();\n init_parse();\n interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\n interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n }\n });\n\n // node_modules/d3-interpolate/src/zoom.js\n function cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n }\n function sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n }\n function tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n }\n var epsilon2, zoom_default;\n var init_zoom = __esm({\n \"node_modules/d3-interpolate/src/zoom.js\"() {\n epsilon2 = 1e-12;\n zoom_default = function zoomRho(rho, rho2, rho4) {\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S;\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n };\n } else {\n var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1), b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S, coshr0 = cosh(r0), u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n };\n }\n i.duration = S * 1e3 * rho / Math.SQRT2;\n return i;\n }\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n return zoom;\n }(Math.SQRT2, 2, 4);\n }\n });\n\n // node_modules/d3-interpolate/src/hsl.js\n function hsl2(hue2) {\n return function(start, end) {\n var h = hue2((start = hsl(start)).h, (end = hsl(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n }\n var hsl_default, hslLong;\n var init_hsl = __esm({\n \"node_modules/d3-interpolate/src/hsl.js\"() {\n init_src();\n init_color2();\n hsl_default = hsl2(hue);\n hslLong = hsl2(nogamma);\n }\n });\n\n // node_modules/d3-interpolate/src/lab.js\n function lab2(start, end) {\n var l = nogamma((start = lab(start)).l, (end = lab(end)).l), a = nogamma(start.a, end.a), b = nogamma(start.b, end.b), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.l = l(t);\n start.a = a(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n var init_lab2 = __esm({\n \"node_modules/d3-interpolate/src/lab.js\"() {\n init_src();\n init_color2();\n }\n });\n\n // node_modules/d3-interpolate/src/hcl.js\n function hcl2(hue2) {\n return function(start, end) {\n var h = hue2((start = hcl(start)).h, (end = hcl(end)).h), c = nogamma(start.c, end.c), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n };\n }\n var hcl_default, hclLong;\n var init_hcl = __esm({\n \"node_modules/d3-interpolate/src/hcl.js\"() {\n init_src();\n init_color2();\n hcl_default = hcl2(hue);\n hclLong = hcl2(nogamma);\n }\n });\n\n // node_modules/d3-interpolate/src/cubehelix.js\n function cubehelix2(hue2) {\n return function cubehelixGamma(y) {\n y = +y;\n function cubehelix3(start, end) {\n var h = hue2((start = cubehelix(start)).h, (end = cubehelix(end)).h), s = nogamma(start.s, end.s), l = nogamma(start.l, end.l), opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n cubehelix3.gamma = cubehelixGamma;\n return cubehelix3;\n }(1);\n }\n var cubehelix_default, cubehelixLong;\n var init_cubehelix2 = __esm({\n \"node_modules/d3-interpolate/src/cubehelix.js\"() {\n init_src();\n init_color2();\n cubehelix_default = cubehelix2(hue);\n cubehelixLong = cubehelix2(nogamma);\n }\n });\n\n // node_modules/d3-interpolate/src/piecewise.js\n function piecewise(interpolate, values) {\n if (values === void 0) values = interpolate, interpolate = value_default;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i2 = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i2](t - i2);\n };\n }\n var init_piecewise = __esm({\n \"node_modules/d3-interpolate/src/piecewise.js\"() {\n init_value();\n }\n });\n\n // node_modules/d3-interpolate/src/quantize.js\n function quantize_default(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n }\n var init_quantize = __esm({\n \"node_modules/d3-interpolate/src/quantize.js\"() {\n }\n });\n\n // node_modules/d3-interpolate/src/index.js\n var src_exports = {};\n __export(src_exports, {\n interpolate: () => value_default,\n interpolateArray: () => array_default,\n interpolateBasis: () => basis_default,\n interpolateBasisClosed: () => basisClosed_default,\n interpolateCubehelix: () => cubehelix_default,\n interpolateCubehelixLong: () => cubehelixLong,\n interpolateDate: () => date_default,\n interpolateDiscrete: () => discrete_default,\n interpolateHcl: () => hcl_default,\n interpolateHclLong: () => hclLong,\n interpolateHsl: () => hsl_default,\n interpolateHslLong: () => hslLong,\n interpolateHue: () => hue_default,\n interpolateLab: () => lab2,\n interpolateNumber: () => number_default,\n interpolateNumberArray: () => numberArray_default,\n interpolateObject: () => object_default,\n interpolateRgb: () => rgb_default,\n interpolateRgbBasis: () => rgbBasis,\n interpolateRgbBasisClosed: () => rgbBasisClosed,\n interpolateRound: () => round_default,\n interpolateString: () => string_default,\n interpolateTransformCss: () => interpolateTransformCss,\n interpolateTransformSvg: () => interpolateTransformSvg,\n interpolateZoom: () => zoom_default,\n piecewise: () => piecewise,\n quantize: () => quantize_default\n });\n var init_src2 = __esm({\n \"node_modules/d3-interpolate/src/index.js\"() {\n init_value();\n init_array();\n init_basis();\n init_basisClosed();\n init_date();\n init_discrete();\n init_hue();\n init_number();\n init_numberArray();\n init_object();\n init_round();\n init_string();\n init_transform();\n init_zoom();\n init_rgb();\n init_hsl();\n init_lab2();\n init_hcl();\n init_cubehelix2();\n init_piecewise();\n init_quantize();\n }\n });\n\n // src/traces/sunburst/fill_one.js\n var require_fill_one2 = __commonJS({\n \"src/traces/sunburst/fill_one.js\"(exports, module) {\n \"use strict\";\n var Drawing = require_drawing();\n var Color2 = require_color();\n module.exports = function fillOne(s, pt, trace, gd, fadedColor) {\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var color2 = fadedColor || cdi.color;\n if (ptNumber >= 0) {\n pt.i = cdi.i;\n var marker = trace.marker;\n if (marker.pattern) {\n if (!marker.colors || !marker.pattern.shape) {\n marker.color = color2;\n pt.color = color2;\n }\n } else {\n marker.color = color2;\n pt.color = color2;\n }\n Drawing.pointStyle(s, trace, gd, pt);\n } else {\n Color2.fill(s, color2);\n }\n };\n }\n });\n\n // src/traces/sunburst/style.js\n var require_style13 = __commonJS({\n \"src/traces/sunburst/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Lib = require_lib();\n var resizeText = require_uniform_text().resizeText;\n var fillOne = require_fill_one2();\n function style(gd) {\n var s = gd._fullLayout._sunburstlayer.selectAll(\".trace\");\n resizeText(gd, s, \"sunburst\");\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n gTrace.style(\"opacity\", trace.opacity);\n gTrace.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n }\n function styleOne(s, pt, trace, gd) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, \"marker.line.color\") || Color2.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, \"marker.line.width\") || 0;\n s.call(fillOne, pt, trace, gd).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor).style(\"opacity\", isLeaf ? trace.leaf.opacity : null);\n }\n module.exports = {\n style,\n styleOne\n };\n }\n });\n\n // src/traces/sunburst/helpers.js\n var require_helpers15 = __commonJS({\n \"src/traces/sunburst/helpers.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var setCursor = require_setcursor();\n var pieHelpers = require_helpers4();\n exports.findEntryWithLevel = function(hierarchy, level) {\n var out;\n if (level) {\n hierarchy.eachAfter(function(pt) {\n if (exports.getPtId(pt) === level) {\n return out = pt.copy();\n }\n });\n }\n return out || hierarchy;\n };\n exports.findEntryWithChild = function(hierarchy, childId) {\n var out;\n hierarchy.eachAfter(function(pt) {\n var children = pt.children || [];\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n if (exports.getPtId(child) === childId) {\n return out = pt.copy();\n }\n }\n });\n return out || hierarchy;\n };\n exports.isEntry = function(pt) {\n return !pt.parent;\n };\n exports.isLeaf = function(pt) {\n return !pt.children;\n };\n exports.getPtId = function(pt) {\n return pt.data.data.id;\n };\n exports.getPtLabel = function(pt) {\n return pt.data.data.label;\n };\n exports.getValue = function(d) {\n return d.value;\n };\n exports.isHierarchyRoot = function(pt) {\n return getParentId(pt) === \"\";\n };\n exports.setSliceCursor = function(sliceTop, gd, opts) {\n var hide = opts.isTransitioning;\n if (!hide) {\n var pt = sliceTop.datum();\n hide = opts.hideOnRoot && exports.isHierarchyRoot(pt) || opts.hideOnLeaves && exports.isLeaf(pt);\n }\n setCursor(sliceTop, hide ? null : \"pointer\");\n };\n function determineOutsideTextFont(trace, pt, layoutFont) {\n return {\n color: exports.getOutsideTextFontKey(\"color\", trace, pt, layoutFont),\n family: exports.getOutsideTextFontKey(\"family\", trace, pt, layoutFont),\n size: exports.getOutsideTextFontKey(\"size\", trace, pt, layoutFont),\n weight: exports.getOutsideTextFontKey(\"weight\", trace, pt, layoutFont),\n style: exports.getOutsideTextFontKey(\"style\", trace, pt, layoutFont),\n variant: exports.getOutsideTextFontKey(\"variant\", trace, pt, layoutFont),\n textcase: exports.getOutsideTextFontKey(\"textcase\", trace, pt, layoutFont),\n lineposition: exports.getOutsideTextFontKey(\"lineposition\", trace, pt, layoutFont),\n shadow: exports.getOutsideTextFontKey(\"shadow\", trace, pt, layoutFont)\n };\n }\n function determineInsideTextFont(trace, pt, layoutFont, opts) {\n var onPathbar = (opts || {}).onPathbar;\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var customColor = Lib.castOption(\n trace,\n ptNumber,\n (onPathbar ? \"pathbar.textfont\" : \"insidetextfont\") + \".color\"\n );\n if (!customColor && trace._input.textfont) {\n customColor = Lib.castOption(trace._input, ptNumber, \"textfont.color\");\n }\n return {\n color: customColor || Color2.contrast(cdi.color),\n family: exports.getInsideTextFontKey(\"family\", trace, pt, layoutFont, opts),\n size: exports.getInsideTextFontKey(\"size\", trace, pt, layoutFont, opts),\n weight: exports.getInsideTextFontKey(\"weight\", trace, pt, layoutFont, opts),\n style: exports.getInsideTextFontKey(\"style\", trace, pt, layoutFont, opts),\n variant: exports.getInsideTextFontKey(\"variant\", trace, pt, layoutFont, opts),\n textcase: exports.getInsideTextFontKey(\"textcase\", trace, pt, layoutFont, opts),\n lineposition: exports.getInsideTextFontKey(\"lineposition\", trace, pt, layoutFont, opts),\n shadow: exports.getInsideTextFontKey(\"shadow\", trace, pt, layoutFont, opts)\n };\n }\n exports.getInsideTextFontKey = function(keyStr, trace, pt, layoutFont, opts) {\n var onPathbar = (opts || {}).onPathbar;\n var cont = onPathbar ? \"pathbar.textfont\" : \"insidetextfont\";\n var ptNumber = pt.data.data.i;\n return Lib.castOption(trace, ptNumber, cont + \".\" + keyStr) || Lib.castOption(trace, ptNumber, \"textfont.\" + keyStr) || layoutFont.size;\n };\n exports.getOutsideTextFontKey = function(keyStr, trace, pt, layoutFont) {\n var ptNumber = pt.data.data.i;\n return Lib.castOption(trace, ptNumber, \"outsidetextfont.\" + keyStr) || Lib.castOption(trace, ptNumber, \"textfont.\" + keyStr) || layoutFont.size;\n };\n exports.isOutsideText = function(trace, pt) {\n return !trace._hasColorscale && exports.isHierarchyRoot(pt);\n };\n exports.determineTextFont = function(trace, pt, layoutFont, opts) {\n return exports.isOutsideText(trace, pt) ? determineOutsideTextFont(trace, pt, layoutFont) : determineInsideTextFont(trace, pt, layoutFont, opts);\n };\n exports.hasTransition = function(transitionOpts) {\n return !!(transitionOpts && transitionOpts.duration > 0);\n };\n exports.getMaxDepth = function(trace) {\n return trace.maxdepth >= 0 ? trace.maxdepth : Infinity;\n };\n exports.isHeader = function(pt, trace) {\n return !(exports.isLeaf(pt) || pt.depth === trace._maxDepth - 1);\n };\n function getParentId(pt) {\n return pt.data.data.pid;\n }\n exports.getParent = function(hierarchy, pt) {\n return exports.findEntryWithLevel(hierarchy, getParentId(pt));\n };\n exports.listPath = function(d, keyStr) {\n var parent = d.parent;\n if (!parent) return [];\n var list = keyStr ? [parent.data[keyStr]] : [parent];\n return exports.listPath(parent, keyStr).concat(list);\n };\n exports.getPath = function(d) {\n return exports.listPath(d, \"label\").join(\"/\") + \"/\";\n };\n exports.formatValue = pieHelpers.formatPieValue;\n exports.formatPercent = function(v, separators) {\n var tx = Lib.formatPercent(v, 0);\n if (tx === \"0%\") tx = pieHelpers.formatPiePercent(v, separators);\n return tx;\n };\n }\n });\n\n // src/traces/sunburst/fx.js\n var require_fx2 = __commonJS({\n \"src/traces/sunburst/fx.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Registry = require_registry();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var Fx = require_fx();\n var Lib = require_lib();\n var Events = require_events2();\n var helpers = require_helpers15();\n var pieHelpers = require_helpers4();\n var formatValue = pieHelpers.formatPieValue;\n module.exports = function attachFxHandlers(sliceTop, entry, gd, cd, opts) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n var isSunburst = trace.type === \"sunburst\";\n var isTreemapOrIcicle = trace.type === \"treemap\" || trace.type === \"icicle\";\n if (!(\"_hasHoverLabel\" in trace)) trace._hasHoverLabel = false;\n if (!(\"_hasHoverEvent\" in trace)) trace._hasHoverEvent = false;\n var onMouseOver = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n if (gd._dragging || fullLayoutNow.hovermode === false) return;\n var traceNow = gd._fullData[trace.index];\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n var val = helpers.getValue(pt);\n var _cast = function(astr) {\n return Lib.castOption(traceNow, ptNumber, astr);\n };\n var hovertemplate = _cast(\"hovertemplate\");\n var hoverinfo = Fx.castHoverinfo(traceNow, fullLayoutNow, ptNumber);\n var separators = fullLayoutNow.separators;\n var eventData;\n if (hovertemplate || hoverinfo && hoverinfo !== \"none\" && hoverinfo !== \"skip\") {\n var hoverCenterX;\n var hoverCenterY;\n if (isSunburst) {\n hoverCenterX = cd0.cx + pt.pxmid[0] * (1 - pt.rInscribed);\n hoverCenterY = cd0.cy + pt.pxmid[1] * (1 - pt.rInscribed);\n }\n if (isTreemapOrIcicle) {\n hoverCenterX = pt._hoverX;\n hoverCenterY = pt._hoverY;\n }\n var hoverPt = {};\n var parts = [];\n var thisText = [];\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n if (hoverinfo) {\n parts = hoverinfo === \"all\" ? traceNow._module.attributes.hoverinfo.flags : hoverinfo.split(\"+\");\n }\n hoverPt.label = cdi.label;\n if (hasFlag(\"label\") && hoverPt.label) thisText.push(hoverPt.label);\n if (cdi.hasOwnProperty(\"v\")) {\n hoverPt.value = cdi.v;\n hoverPt.valueLabel = formatValue(hoverPt.value, separators);\n if (hasFlag(\"value\")) thisText.push(hoverPt.valueLabel);\n }\n hoverPt.currentPath = pt.currentPath = helpers.getPath(pt.data);\n if (hasFlag(\"current path\") && !isRoot) {\n thisText.push(hoverPt.currentPath);\n }\n var tx;\n var allPercents = [];\n var insertPercent = function() {\n if (allPercents.indexOf(tx) === -1) {\n thisText.push(tx);\n allPercents.push(tx);\n }\n };\n hoverPt.percentParent = pt.percentParent = val / helpers.getValue(parent);\n hoverPt.parent = pt.parentString = helpers.getPtLabel(parent);\n if (hasFlag(\"percent parent\")) {\n tx = helpers.formatPercent(hoverPt.percentParent, separators) + \" of \" + hoverPt.parent;\n insertPercent();\n }\n hoverPt.percentEntry = pt.percentEntry = val / helpers.getValue(entry);\n hoverPt.entry = pt.entry = helpers.getPtLabel(entry);\n if (hasFlag(\"percent entry\") && !isRoot && !pt.onPathbar) {\n tx = helpers.formatPercent(hoverPt.percentEntry, separators) + \" of \" + hoverPt.entry;\n insertPercent();\n }\n hoverPt.percentRoot = pt.percentRoot = val / helpers.getValue(hierarchy);\n hoverPt.root = pt.root = helpers.getPtLabel(hierarchy);\n if (hasFlag(\"percent root\") && !isRoot) {\n tx = helpers.formatPercent(hoverPt.percentRoot, separators) + \" of \" + hoverPt.root;\n insertPercent();\n }\n hoverPt.text = _cast(\"hovertext\") || _cast(\"text\");\n if (hasFlag(\"text\")) {\n tx = hoverPt.text;\n if (Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n eventData = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n var hoverItems = {\n trace: traceNow,\n y: hoverCenterY,\n _x0: pt._x0,\n _x1: pt._x1,\n _y0: pt._y0,\n _y1: pt._y1,\n text: thisText.join(\"
\"),\n name: hovertemplate || hasFlag(\"name\") ? traceNow.name : void 0,\n color: _cast(\"hoverlabel.bgcolor\") || cdi.color,\n borderColor: _cast(\"hoverlabel.bordercolor\"),\n fontFamily: _cast(\"hoverlabel.font.family\"),\n fontSize: _cast(\"hoverlabel.font.size\"),\n fontColor: _cast(\"hoverlabel.font.color\"),\n fontWeight: _cast(\"hoverlabel.font.weight\"),\n fontStyle: _cast(\"hoverlabel.font.style\"),\n fontVariant: _cast(\"hoverlabel.font.variant\"),\n nameLength: _cast(\"hoverlabel.namelength\"),\n textAlign: _cast(\"hoverlabel.align\"),\n hovertemplate,\n hovertemplateLabels: hoverPt,\n eventData\n };\n if (isSunburst) {\n hoverItems.x0 = hoverCenterX - pt.rInscribed * pt.rpx1;\n hoverItems.x1 = hoverCenterX + pt.rInscribed * pt.rpx1;\n hoverItems.idealAlign = pt.pxmid[0] < 0 ? \"left\" : \"right\";\n }\n if (isTreemapOrIcicle) {\n hoverItems.x = hoverCenterX;\n hoverItems.idealAlign = hoverCenterX < 0 ? \"left\" : \"right\";\n }\n var bbox = [];\n Fx.loneHover(hoverItems, {\n container: fullLayoutNow._hoverlayer.node(),\n outerContainer: fullLayoutNow._paper.node(),\n gd,\n inOut_bbox: bbox\n });\n eventData[0].bbox = bbox[0];\n trace._hasHoverLabel = true;\n }\n if (isTreemapOrIcicle) {\n var slice = sliceTop.select(\"path.surface\");\n opts.styleOne(slice, pt, traceNow, gd, {\n hovered: true\n });\n }\n trace._hasHoverEvent = true;\n gd.emit(\"plotly_hover\", {\n points: eventData || [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n };\n var onMouseOut = function(evt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var pt = d3.select(this).datum();\n if (trace._hasHoverEvent) {\n evt.originalEvent = d3.event;\n gd.emit(\"plotly_unhover\", {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n });\n trace._hasHoverEvent = false;\n }\n if (trace._hasHoverLabel) {\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n trace._hasHoverLabel = false;\n }\n if (isTreemapOrIcicle) {\n var slice = sliceTop.select(\"path.surface\");\n opts.styleOne(slice, pt, traceNow, gd, {\n hovered: false\n });\n }\n };\n var onClick = function(pt) {\n var fullLayoutNow = gd._fullLayout;\n var traceNow = gd._fullData[trace.index];\n var noTransition = isSunburst && (helpers.isHierarchyRoot(pt) || helpers.isLeaf(pt));\n var id = helpers.getPtId(pt);\n var nextEntry = helpers.isEntry(pt) ? helpers.findEntryWithChild(hierarchy, id) : helpers.findEntryWithLevel(hierarchy, id);\n var nextLevel = helpers.getPtId(nextEntry);\n var typeClickEvtData = {\n points: [makeEventData(pt, traceNow, opts.eventDataKeys)],\n event: d3.event\n };\n if (!noTransition) typeClickEvtData.nextLevel = nextLevel;\n var clickVal = Events.triggerHandler(gd, \"plotly_\" + trace.type + \"click\", typeClickEvtData);\n if (clickVal !== false && fullLayoutNow.hovermode) {\n gd._hoverdata = [makeEventData(pt, traceNow, opts.eventDataKeys)];\n Fx.click(gd, d3.event);\n }\n if (noTransition) return;\n if (clickVal === false) return;\n if (gd._dragging) return;\n if (gd._transitioning) return;\n Registry.call(\"_storeDirectGUIEdit\", traceNow, fullLayoutNow._tracePreGUI[traceNow.uid], {\n level: traceNow.level\n });\n var frame = {\n data: [{ level: nextLevel }],\n traces: [trace.index]\n };\n var animOpts = {\n frame: {\n redraw: false,\n duration: opts.transitionTime\n },\n transition: {\n duration: opts.transitionTime,\n easing: opts.transitionEasing\n },\n mode: \"immediate\",\n fromcurrent: true\n };\n Fx.loneUnhover(fullLayoutNow._hoverlayer.node());\n Registry.call(\"animate\", gd, frame, animOpts);\n };\n sliceTop.on(\"mouseover\", onMouseOver);\n sliceTop.on(\"mouseout\", onMouseOut);\n sliceTop.on(\"click\", onClick);\n };\n function makeEventData(pt, trace, keys) {\n var cdi = pt.data.data;\n var out = {\n curveNumber: trace.index,\n pointNumber: cdi.i,\n data: trace._input,\n fullData: trace\n // TODO more things like 'children', 'siblings', 'hierarchy?\n };\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (key in pt) out[key] = pt[key];\n }\n if (\"parentString\" in pt && !helpers.isHierarchyRoot(pt)) out.parent = pt.parentString;\n appendArrayPointValue(out, trace, cdi.i);\n return out;\n }\n }\n });\n\n // src/traces/sunburst/plot.js\n var require_plot13 = __commonJS({\n \"src/traces/sunburst/plot.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var d3Hierarchy = require_d3_hierarchy();\n var interpolate = (init_src2(), __toCommonJS(src_exports)).interpolate;\n var Drawing = require_drawing();\n var Lib = require_lib();\n var svgTextUtils = require_svg_text_utils();\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var piePlot = require_plot12();\n var getRotationAngle = require_helpers4().getRotationAngle;\n var computeTransform = piePlot.computeTransform;\n var transformInsideText = piePlot.transformInsideText;\n var styleOne = require_style13().styleOne;\n var resizeText = require_style4().resizeText;\n var attachFxHandlers = require_fx2();\n var constants = require_constants20();\n var helpers = require_helpers15();\n exports.plot = function(gd, cdmodule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var layer = fullLayout._sunburstlayer;\n var join, onComplete;\n var isFullReplot = !transitionOpts;\n var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);\n clearMinTextSize(\"sunburst\", fullLayout);\n join = layer.selectAll(\"g.trace.sunburst\").data(cdmodule, function(cd) {\n return cd[0].trace.uid;\n });\n join.enter().append(\"g\").classed(\"trace\", true).classed(\"sunburst\", true).attr(\"stroke-linejoin\", \"round\");\n join.order();\n if (hasTransition) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n var transition = d3.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n transition.each(function() {\n layer.selectAll(\"g.trace\").each(function(cd) {\n plotOne(gd, cd, this, transitionOpts);\n });\n });\n } else {\n join.each(function(cd) {\n plotOne(gd, cd, this, transitionOpts);\n });\n if (fullLayout.uniformtext.mode) {\n resizeText(gd, fullLayout._sunburstlayer.selectAll(\".trace\"), \"sunburst\");\n }\n }\n if (isFullReplot) {\n join.exit().remove();\n }\n };\n function plotOne(gd, cd, element, transitionOpts) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);\n var gTrace = d3.select(element);\n var slices = gTrace.selectAll(\"g.slice\");\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n var entry = helpers.findEntryWithLevel(hierarchy, trace.level);\n var maxDepth = helpers.getMaxDepth(trace);\n var gs = fullLayout._size;\n var domain = trace.domain;\n var vpw = gs.w * (domain.x[1] - domain.x[0]);\n var vph = gs.h * (domain.y[1] - domain.y[0]);\n var rMax = 0.5 * Math.min(vpw, vph);\n var cx = cd0.cx = gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cy = cd0.cy = gs.t + gs.h * (1 - domain.y[0]) - vph / 2;\n if (!entry) {\n return slices.remove();\n }\n var prevEntry = null;\n var prevLookup = {};\n if (hasTransition) {\n slices.each(function(pt) {\n prevLookup[helpers.getPtId(pt)] = {\n rpx0: pt.rpx0,\n rpx1: pt.rpx1,\n x0: pt.x0,\n x1: pt.x1,\n transform: pt.transform\n };\n if (!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n var sliceData = partition(entry).descendants();\n var maxHeight = entry.height + 1;\n var yOffset = 0;\n var cutoff = maxDepth;\n if (cd0.hasMultipleRoots && helpers.isHierarchyRoot(entry)) {\n sliceData = sliceData.slice(1);\n maxHeight -= 1;\n yOffset = 1;\n cutoff += 1;\n }\n sliceData = sliceData.filter(function(pt) {\n return pt.y1 <= cutoff;\n });\n var baseX = getRotationAngle(trace.rotation);\n if (baseX) {\n sliceData.forEach(function(pt) {\n pt.x0 += baseX;\n pt.x1 += baseX;\n });\n }\n var maxY = Math.min(maxHeight, maxDepth);\n var y2rpx = function(y) {\n return (y - yOffset) / maxY * rMax;\n };\n var rx2px = function(r, x) {\n return [r * Math.cos(x), -r * Math.sin(x)];\n };\n var pathSlice = function(d) {\n return Lib.pathAnnulus(d.rpx0, d.rpx1, d.x0, d.x1, cx, cy);\n };\n var getTargetX = function(d) {\n return cx + getTextXY(d)[0] * (d.transform.rCenter || 0) + (d.transform.x || 0);\n };\n var getTargetY = function(d) {\n return cy + getTextXY(d)[1] * (d.transform.rCenter || 0) + (d.transform.y || 0);\n };\n slices = slices.data(sliceData, helpers.getPtId);\n slices.enter().append(\"g\").classed(\"slice\", true);\n if (hasTransition) {\n slices.exit().transition().each(function() {\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.select(\"path.surface\");\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeExitSliceInterpolator(pt2);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n var sliceTextGroup = sliceTop.select(\"g.slicetext\");\n sliceTextGroup.attr(\"opacity\", 0);\n }).remove();\n } else {\n slices.exit().remove();\n }\n slices.order();\n var nextX1ofPrevEntry = null;\n if (hasTransition && prevEntry) {\n var prevEntryId = helpers.getPtId(prevEntry);\n slices.each(function(pt) {\n if (nextX1ofPrevEntry === null && helpers.getPtId(pt) === prevEntryId) {\n nextX1ofPrevEntry = pt.x1;\n }\n });\n }\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: true,\n hideOnLeaves: true,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n pt.rpx0 = y2rpx(pt.y0);\n pt.rpx1 = y2rpx(pt.y1);\n pt.xmid = (pt.x0 + pt.x1) / 2;\n pt.pxmid = rx2px(pt.rpx1, pt.xmid);\n pt.midangle = -(pt.xmid - Math.PI / 2);\n pt.startangle = -(pt.x0 - Math.PI / 2);\n pt.stopangle = -(pt.x1 - Math.PI / 2);\n pt.halfangle = 0.5 * Math.min(Lib.angleDelta(pt.x0, pt.x1) || Math.PI, Math.PI);\n pt.ring = 1 - pt.rpx0 / pt.rpx1;\n pt.rInscribed = getInscribedRadiusFraction(pt, trace);\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, {\n hideOnRoot: true,\n hideOnLeaves: true,\n isTransitioning: gd._transitioning\n });\n slicePath.call(styleOne, pt, trace, gd);\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));\n sliceText.text(exports.formatSliceLabel(pt, entry, trace, cd, fullLayout)).classed(\"slicetext\", true).attr(\"text-anchor\", \"middle\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n var textBB = Drawing.bBox(sliceText.node());\n pt.transform = transformInsideText(textBB, pt, cd0);\n pt.transform.targetX = getTargetX(pt);\n pt.transform.targetY = getTargetY(pt);\n var strTransform = function(d, textBB2) {\n var transform = d.transform;\n computeTransform(transform, textBB2);\n transform.fontSize = font.size;\n recordMinTextSize(trace.type, transform, fullLayout);\n return Lib.getTextTransform(transform);\n };\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2);\n return function(t) {\n return strTransform(interp(t), textBB);\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt, textBB));\n }\n });\n function makeExitSliceInterpolator(pt) {\n var id = helpers.getPtId(pt);\n var prev = prevLookup[id];\n var entryPrev = prevLookup[helpers.getPtId(entry)];\n var next;\n if (entryPrev) {\n var a = (pt.x1 > entryPrev.x1 ? 2 * Math.PI : 0) + baseX;\n next = pt.rpx1 < entryPrev.rpx1 ? { x0: pt.x0, x1: pt.x1, rpx0: 0, rpx1: 0 } : { x0: a, x1: a, rpx0: pt.rpx0, rpx1: pt.rpx1 };\n } else {\n var parent;\n var parentId = helpers.getPtId(pt.parent);\n slices.each(function(pt2) {\n if (helpers.getPtId(pt2) === parentId) {\n return parent = pt2;\n }\n });\n var parentChildren = parent.children;\n var ci;\n parentChildren.forEach(function(pt2, i) {\n if (helpers.getPtId(pt2) === id) {\n return ci = i;\n }\n });\n var n = parentChildren.length;\n var interp = interpolate(parent.x0, parent.x1);\n next = {\n rpx0: rMax,\n rpx1: rMax,\n x0: interp(ci / n),\n x1: interp((ci + 1) / n)\n };\n }\n return interpolate(prev, next);\n }\n function makeUpdateSliceInterpolator(pt) {\n var prev0 = prevLookup[helpers.getPtId(pt)];\n var prev;\n var next = { x0: pt.x0, x1: pt.x1, rpx0: pt.rpx0, rpx1: pt.rpx1 };\n if (prev0) {\n prev = prev0;\n } else {\n if (prevEntry) {\n if (pt.parent) {\n if (nextX1ofPrevEntry) {\n var a = (pt.x1 > nextX1ofPrevEntry ? 2 * Math.PI : 0) + baseX;\n prev = { x0: a, x1: a };\n } else {\n prev = { rpx0: rMax, rpx1: rMax };\n Lib.extendFlat(prev, interpX0X1FromParent(pt));\n }\n } else {\n prev = { rpx0: 0, rpx1: 0 };\n }\n } else {\n prev = { x0: baseX, x1: baseX };\n }\n }\n return interpolate(prev, next);\n }\n function makeUpdateTextInterpolator(pt) {\n var prev0 = prevLookup[helpers.getPtId(pt)];\n var prev;\n var transform = pt.transform;\n if (prev0) {\n prev = prev0;\n } else {\n prev = {\n rpx1: pt.rpx1,\n transform: {\n textPosAngle: transform.textPosAngle,\n scale: 0,\n rotate: transform.rotate,\n rCenter: transform.rCenter,\n x: transform.x,\n y: transform.y\n }\n };\n if (prevEntry) {\n if (pt.parent) {\n if (nextX1ofPrevEntry) {\n var a = pt.x1 > nextX1ofPrevEntry ? 2 * Math.PI : 0;\n prev.x0 = prev.x1 = a;\n } else {\n Lib.extendFlat(prev, interpX0X1FromParent(pt));\n }\n } else {\n prev.x0 = prev.x1 = baseX;\n }\n } else {\n prev.x0 = prev.x1 = baseX;\n }\n }\n var textPosAngleFn = interpolate(prev.transform.textPosAngle, pt.transform.textPosAngle);\n var rpx1Fn = interpolate(prev.rpx1, pt.rpx1);\n var x0Fn = interpolate(prev.x0, pt.x0);\n var x1Fn = interpolate(prev.x1, pt.x1);\n var scaleFn = interpolate(prev.transform.scale, transform.scale);\n var rotateFn = interpolate(prev.transform.rotate, transform.rotate);\n var pow = transform.rCenter === 0 ? 3 : prev.transform.rCenter === 0 ? 1 / 3 : 1;\n var _rCenterFn = interpolate(prev.transform.rCenter, transform.rCenter);\n var rCenterFn = function(t) {\n return _rCenterFn(Math.pow(t, pow));\n };\n return function(t) {\n var rpx1 = rpx1Fn(t);\n var x0 = x0Fn(t);\n var x1 = x1Fn(t);\n var rCenter = rCenterFn(t);\n var pxmid = rx2px(rpx1, (x0 + x1) / 2);\n var textPosAngle = textPosAngleFn(t);\n var d = {\n pxmid,\n rpx1,\n transform: {\n textPosAngle,\n rCenter,\n x: transform.x,\n y: transform.y\n }\n };\n recordMinTextSize(trace.type, transform, fullLayout);\n return {\n transform: {\n targetX: getTargetX(d),\n targetY: getTargetY(d),\n scale: scaleFn(t),\n rotate: rotateFn(t),\n rCenter\n }\n };\n };\n }\n function interpX0X1FromParent(pt) {\n var parent = pt.parent;\n var parentPrev = prevLookup[helpers.getPtId(parent)];\n var out = {};\n if (parentPrev) {\n var parentChildren = parent.children;\n var ci = parentChildren.indexOf(pt);\n var n = parentChildren.length;\n var interp = interpolate(parentPrev.x0, parentPrev.x1);\n out.x0 = interp(ci / n);\n out.x1 = interp(ci / n);\n } else {\n out.x0 = out.x1 = 0;\n }\n return out;\n }\n }\n function partition(entry) {\n return d3Hierarchy.partition().size([2 * Math.PI, entry.height + 1])(entry);\n }\n exports.formatSliceLabel = function(pt, entry, trace, cd, fullLayout) {\n var texttemplate = trace.texttemplate;\n var textinfo = trace.textinfo;\n if (!texttemplate && (!textinfo || textinfo === \"none\")) {\n return \"\";\n }\n var separators = fullLayout.separators;\n var cd0 = cd[0];\n var cdi = pt.data.data;\n var hierarchy = cd0.hierarchy;\n var isRoot = helpers.isHierarchyRoot(pt);\n var parent = helpers.getParent(hierarchy, pt);\n var val = helpers.getValue(pt);\n if (!texttemplate) {\n var parts = textinfo.split(\"+\");\n var hasFlag = function(flag) {\n return parts.indexOf(flag) !== -1;\n };\n var thisText = [];\n var tx;\n if (hasFlag(\"label\") && cdi.label) {\n thisText.push(cdi.label);\n }\n if (cdi.hasOwnProperty(\"v\") && hasFlag(\"value\")) {\n thisText.push(helpers.formatValue(cdi.v, separators));\n }\n if (!isRoot) {\n if (hasFlag(\"current path\")) {\n thisText.push(helpers.getPath(pt.data));\n }\n var nPercent = 0;\n if (hasFlag(\"percent parent\")) nPercent++;\n if (hasFlag(\"percent entry\")) nPercent++;\n if (hasFlag(\"percent root\")) nPercent++;\n var hasMultiplePercents = nPercent > 1;\n if (nPercent) {\n var percent;\n var addPercent = function(key) {\n tx = helpers.formatPercent(percent, separators);\n if (hasMultiplePercents) tx += \" of \" + key;\n thisText.push(tx);\n };\n if (hasFlag(\"percent parent\") && !isRoot) {\n percent = val / helpers.getValue(parent);\n addPercent(\"parent\");\n }\n if (hasFlag(\"percent entry\")) {\n percent = val / helpers.getValue(entry);\n addPercent(\"entry\");\n }\n if (hasFlag(\"percent root\")) {\n percent = val / helpers.getValue(hierarchy);\n addPercent(\"root\");\n }\n }\n }\n if (hasFlag(\"text\")) {\n tx = Lib.castOption(trace, cdi.i, \"text\");\n if (Lib.isValidTextValue(tx)) thisText.push(tx);\n }\n return thisText.join(\"
\");\n }\n var txt = Lib.castOption(trace, cdi.i, \"texttemplate\");\n if (!txt) return \"\";\n var obj = {};\n if (cdi.label) obj.label = cdi.label;\n if (cdi.hasOwnProperty(\"v\")) {\n obj.value = cdi.v;\n obj.valueLabel = helpers.formatValue(cdi.v, separators);\n }\n obj.currentPath = helpers.getPath(pt.data);\n if (!isRoot) {\n obj.percentParent = val / helpers.getValue(parent);\n obj.percentParentLabel = helpers.formatPercent(\n obj.percentParent,\n separators\n );\n obj.parent = helpers.getPtLabel(parent);\n }\n obj.percentEntry = val / helpers.getValue(entry);\n obj.percentEntryLabel = helpers.formatPercent(\n obj.percentEntry,\n separators\n );\n obj.entry = helpers.getPtLabel(entry);\n obj.percentRoot = val / helpers.getValue(hierarchy);\n obj.percentRootLabel = helpers.formatPercent(\n obj.percentRoot,\n separators\n );\n obj.root = helpers.getPtLabel(hierarchy);\n if (cdi.hasOwnProperty(\"color\")) {\n obj.color = cdi.color;\n }\n var ptTx = Lib.castOption(trace, cdi.i, \"text\");\n if (Lib.isValidTextValue(ptTx) || ptTx === \"\") obj.text = ptTx;\n obj.customdata = Lib.castOption(trace, cdi.i, \"customdata\");\n return Lib.texttemplateString(txt, obj, fullLayout._d3locale, obj, trace._meta || {});\n };\n function getInscribedRadiusFraction(pt) {\n if (pt.rpx0 === 0 && Lib.isFullCircle([pt.x0, pt.x1])) {\n return 1;\n } else {\n return Math.max(0, Math.min(\n 1 / (1 + 1 / Math.sin(pt.halfangle)),\n pt.ring / 2\n ));\n }\n }\n function getTextXY(d) {\n return getCoords(d.rpx1, d.transform.textPosAngle);\n }\n function getCoords(r, angle) {\n return [r * Math.sin(angle), -r * Math.cos(angle)];\n }\n }\n });\n\n // src/traces/sunburst/index.js\n var require_sunburst = __commonJS({\n \"src/traces/sunburst/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"sunburst\",\n basePlotModule: require_base_plot2(),\n categories: [],\n animatable: true,\n attributes: require_attributes36(),\n layoutAttributes: require_layout_attributes13(),\n supplyDefaults: require_defaults32(),\n supplyLayoutDefaults: require_layout_defaults12(),\n calc: require_calc17().calc,\n crossTraceCalc: require_calc17().crossTraceCalc,\n plot: require_plot13().plot,\n style: require_style13().style,\n colorbar: require_marker_colorbar(),\n meta: {}\n };\n }\n });\n\n // lib/sunburst.js\n var require_sunburst2 = __commonJS({\n \"lib/sunburst.js\"(exports, module) {\n \"use strict\";\n module.exports = require_sunburst();\n }\n });\n\n // src/traces/treemap/base_plot.js\n var require_base_plot3 = __commonJS({\n \"src/traces/treemap/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"treemap\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/treemap/constants.js\n var require_constants21 = __commonJS({\n \"src/traces/treemap/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n CLICK_TRANSITION_TIME: 750,\n CLICK_TRANSITION_EASING: \"poly\",\n eventDataKeys: [\n // string\n \"currentPath\",\n \"root\",\n \"entry\",\n // no need to add 'parent' here\n // percentages i.e. ratios\n \"percentRoot\",\n \"percentEntry\",\n \"percentParent\"\n ],\n gapWithPathbar: 1\n // i.e. one pixel\n };\n }\n });\n\n // src/traces/treemap/attributes.js\n var require_attributes37 = __commonJS({\n \"src/traces/treemap/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var domainAttrs = require_domain().attributes;\n var pieAttrs = require_attributes35();\n var sunburstAttrs = require_attributes36();\n var constants = require_constants21();\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n module.exports = {\n labels: sunburstAttrs.labels,\n parents: sunburstAttrs.parents,\n values: sunburstAttrs.values,\n branchvalues: sunburstAttrs.branchvalues,\n count: sunburstAttrs.count,\n level: sunburstAttrs.level,\n maxdepth: sunburstAttrs.maxdepth,\n tiling: {\n packing: {\n valType: \"enumerated\",\n values: [\n \"squarify\",\n \"binary\",\n \"dice\",\n \"slice\",\n \"slice-dice\",\n \"dice-slice\"\n ],\n dflt: \"squarify\",\n editType: \"plot\"\n },\n squarifyratio: {\n valType: \"number\",\n min: 1,\n dflt: 1,\n editType: \"plot\"\n },\n flip: {\n valType: \"flaglist\",\n flags: [\n \"x\",\n \"y\"\n ],\n dflt: \"\",\n editType: \"plot\"\n },\n pad: {\n valType: \"number\",\n min: 0,\n dflt: 3,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n marker: extendFlat(\n {\n pad: {\n t: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n l: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n r: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n b: {\n valType: \"number\",\n min: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n colors: sunburstAttrs.marker.colors,\n pattern,\n depthfade: {\n valType: \"enumerated\",\n values: [true, false, \"reversed\"],\n editType: \"style\"\n },\n line: sunburstAttrs.marker.line,\n cornerradius: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", {\n colorAttr: \"colors\",\n anim: false\n // TODO: set to anim: true?\n })\n ),\n pathbar: {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n side: {\n valType: \"enumerated\",\n values: [\n \"top\",\n \"bottom\"\n ],\n dflt: \"top\",\n editType: \"plot\"\n },\n edgeshape: {\n valType: \"enumerated\",\n values: [\n \">\",\n \"<\",\n \"|\",\n \"/\",\n \"\\\\\"\n ],\n dflt: \">\",\n editType: \"plot\"\n },\n thickness: {\n valType: \"number\",\n min: 12,\n editType: \"plot\"\n },\n textfont: extendFlat({}, pieAttrs.textfont, {}),\n editType: \"calc\"\n },\n text: pieAttrs.text,\n textinfo: sunburstAttrs.textinfo,\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n hovertext: pieAttrs.hovertext,\n hoverinfo: sunburstAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textfont: pieAttrs.textfont,\n insidetextfont: pieAttrs.insidetextfont,\n outsidetextfont: extendFlat({}, pieAttrs.outsidetextfont, {}),\n textposition: {\n valType: \"enumerated\",\n values: [\n \"top left\",\n \"top center\",\n \"top right\",\n \"middle left\",\n \"middle center\",\n \"middle right\",\n \"bottom left\",\n \"bottom center\",\n \"bottom right\"\n ],\n dflt: \"top left\",\n editType: \"plot\"\n },\n sort: pieAttrs.sort,\n root: sunburstAttrs.root,\n domain: domainAttrs({ name: \"treemap\", trace: true, editType: \"calc\" })\n };\n }\n });\n\n // src/traces/treemap/layout_attributes.js\n var require_layout_attributes14 = __commonJS({\n \"src/traces/treemap/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n treemapcolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendtreemapcolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/treemap/defaults.js\n var require_defaults33 = __commonJS({\n \"src/traces/treemap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes37();\n var Color2 = require_color();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var TEXTPAD = require_constants14().TEXTPAD;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n var Colorscale = require_colorscale();\n var hasColorscale = Colorscale.hasColorscale;\n var colorscaleDefaults = Colorscale.handleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var parents = coerce(\"parents\");\n if (!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n var vals = coerce(\"values\");\n if (vals && vals.length) {\n coerce(\"branchvalues\");\n } else {\n coerce(\"count\");\n }\n coerce(\"level\");\n coerce(\"maxdepth\");\n var packing = coerce(\"tiling.packing\");\n if (packing === \"squarify\") {\n coerce(\"tiling.squarifyratio\");\n }\n coerce(\"tiling.flip\");\n coerce(\"tiling.pad\");\n var text = coerce(\"text\");\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+label\" : \"label\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var hasPathbar = coerce(\"pathbar.visible\");\n var textposition = \"auto\";\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce(\"textposition\");\n var bottomText = traceOut.textposition.indexOf(\"bottom\") !== -1;\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n var withColorscale = traceOut._hasColorscale = hasColorscale(traceIn, \"marker\", \"colors\") || (traceIn.marker || {}).coloraxis;\n if (withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n } else {\n coerce(\"marker.depthfade\", !(traceOut.marker.colors || []).length);\n }\n var headerSize = traceOut.textfont.size * 2;\n coerce(\"marker.pad.t\", bottomText ? headerSize / 4 : headerSize);\n coerce(\"marker.pad.l\", headerSize / 4);\n coerce(\"marker.pad.r\", headerSize / 4);\n coerce(\"marker.pad.b\", bottomText ? headerSize : headerSize / 4);\n coerce(\"marker.cornerradius\");\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color2.contrast(layout.paper_bgcolor)\n }\n }\n };\n if (hasPathbar) {\n coerce(\"pathbar.thickness\", traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n coerce(\"pathbar.side\");\n coerce(\"pathbar.edgeshape\");\n }\n coerce(\"sort\");\n coerce(\"root.color\");\n handleDomainDefaults(traceOut, layout, coerce);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/treemap/layout_defaults.js\n var require_layout_defaults13 = __commonJS({\n \"src/traces/treemap/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes14();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"treemapcolorway\", layoutOut.colorway);\n coerce(\"extendtreemapcolors\");\n };\n }\n });\n\n // src/traces/treemap/calc.js\n var require_calc18 = __commonJS({\n \"src/traces/treemap/calc.js\"(exports) {\n \"use strict\";\n var calc = require_calc17();\n exports.calc = function(gd, trace) {\n return calc.calc(gd, trace);\n };\n exports.crossTraceCalc = function(gd) {\n return calc._runCrossTraceCalc(\"treemap\", gd);\n };\n }\n });\n\n // src/traces/treemap/flip_tree.js\n var require_flip_tree = __commonJS({\n \"src/traces/treemap/flip_tree.js\"(exports, module) {\n \"use strict\";\n module.exports = function flipTree(node, size, opts) {\n var tmp;\n if (opts.swapXY) {\n tmp = node.x0;\n node.x0 = node.y0;\n node.y0 = tmp;\n tmp = node.x1;\n node.x1 = node.y1;\n node.y1 = tmp;\n }\n if (opts.flipX) {\n tmp = node.x0;\n node.x0 = size[0] - node.x1;\n node.x1 = size[0] - tmp;\n }\n if (opts.flipY) {\n tmp = node.y0;\n node.y0 = size[1] - node.y1;\n node.y1 = size[1] - tmp;\n }\n var children = node.children;\n if (children) {\n for (var i = 0; i < children.length; i++) {\n flipTree(children[i], size, opts);\n }\n }\n };\n }\n });\n\n // src/traces/treemap/partition.js\n var require_partition = __commonJS({\n \"src/traces/treemap/partition.js\"(exports, module) {\n \"use strict\";\n var d3Hierarchy = require_d3_hierarchy();\n var flipTree = require_flip_tree();\n module.exports = function partition(entry, size, opts) {\n var flipX = opts.flipX;\n var flipY = opts.flipY;\n var swapXY = opts.packing === \"dice-slice\";\n var top = opts.pad[flipY ? \"bottom\" : \"top\"];\n var left = opts.pad[flipX ? \"right\" : \"left\"];\n var right = opts.pad[flipX ? \"left\" : \"right\"];\n var bottom = opts.pad[flipY ? \"top\" : \"bottom\"];\n var tmp;\n if (swapXY) {\n tmp = left;\n left = top;\n top = tmp;\n tmp = right;\n right = bottom;\n bottom = tmp;\n }\n var result = d3Hierarchy.treemap().tile(getTilingMethod(opts.packing, opts.squarifyratio)).paddingInner(opts.pad.inner).paddingLeft(left).paddingRight(right).paddingTop(top).paddingBottom(bottom).size(\n swapXY ? [size[1], size[0]] : size\n )(entry);\n if (swapXY || flipX || flipY) {\n flipTree(result, size, {\n swapXY,\n flipX,\n flipY\n });\n }\n return result;\n };\n function getTilingMethod(key, squarifyratio) {\n switch (key) {\n case \"squarify\":\n return d3Hierarchy.treemapSquarify.ratio(squarifyratio);\n case \"binary\":\n return d3Hierarchy.treemapBinary;\n case \"dice\":\n return d3Hierarchy.treemapDice;\n case \"slice\":\n return d3Hierarchy.treemapSlice;\n default:\n return d3Hierarchy.treemapSliceDice;\n }\n }\n }\n });\n\n // src/traces/treemap/style.js\n var require_style14 = __commonJS({\n \"src/traces/treemap/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Lib = require_lib();\n var helpers = require_helpers15();\n var resizeText = require_uniform_text().resizeText;\n var fillOne = require_fill_one2();\n function style(gd) {\n var s = gd._fullLayout._treemaplayer.selectAll(\".trace\");\n resizeText(gd, s, \"treemap\");\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n gTrace.style(\"opacity\", trace.opacity);\n gTrace.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd, {\n hovered: false\n });\n });\n });\n }\n function styleOne(s, pt, trace, gd, opts) {\n var hovered = (opts || {}).hovered;\n var cdi = pt.data.data;\n var ptNumber = cdi.i;\n var lineColor;\n var lineWidth;\n var fillColor = cdi.color;\n var isRoot = helpers.isHierarchyRoot(pt);\n var opacity = 1;\n if (hovered) {\n lineColor = trace._hovered.marker.line.color;\n lineWidth = trace._hovered.marker.line.width;\n } else {\n if (isRoot && fillColor === trace.root.color) {\n opacity = 100;\n lineColor = \"rgba(0,0,0,0)\";\n lineWidth = 0;\n } else {\n lineColor = Lib.castOption(trace, ptNumber, \"marker.line.color\") || Color2.defaultLine;\n lineWidth = Lib.castOption(trace, ptNumber, \"marker.line.width\") || 0;\n if (!trace._hasColorscale && !pt.onPathbar) {\n var depthfade = trace.marker.depthfade;\n if (depthfade) {\n var fadedColor = Color2.combine(Color2.addOpacity(trace._backgroundColor, 0.75), fillColor);\n var n;\n if (depthfade === true) {\n var maxDepth = helpers.getMaxDepth(trace);\n if (isFinite(maxDepth)) {\n if (helpers.isLeaf(pt)) {\n n = 0;\n } else {\n n = trace._maxVisibleLayers - (pt.data.depth - trace._entryDepth);\n }\n } else {\n n = pt.data.height + 1;\n }\n } else {\n n = pt.data.depth - trace._entryDepth;\n if (!trace._atRootLevel) n++;\n }\n if (n > 0) {\n for (var i = 0; i < n; i++) {\n var ratio = 0.5 * i / n;\n fillColor = Color2.combine(Color2.addOpacity(fadedColor, ratio), fillColor);\n }\n }\n }\n }\n }\n }\n s.call(fillOne, pt, trace, gd, fillColor).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor).style(\"opacity\", opacity);\n }\n module.exports = {\n style,\n styleOne\n };\n }\n });\n\n // src/traces/treemap/draw_ancestors.js\n var require_draw_ancestors = __commonJS({\n \"src/traces/treemap/draw_ancestors.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var partition = require_partition();\n var styleOne = require_style14().styleOne;\n var constants = require_constants21();\n var helpers = require_helpers15();\n var attachFxHandlers = require_fx2();\n var onPathbar = true;\n module.exports = function drawAncestors(gd, cd, entry, slices, opts) {\n var barDifY = opts.barDifY;\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var refRect = {};\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hierarchy = cd0.hierarchy;\n var eachWidth = width / trace._entryDepth;\n var pathIds = helpers.listPath(entry.data, \"id\");\n var sliceData = partition(hierarchy.copy(), [width, height], {\n packing: \"dice\",\n pad: {\n inner: 0,\n top: 0,\n left: 0,\n right: 0,\n bottom: 0\n }\n }).descendants();\n sliceData = sliceData.filter(function(pt) {\n var level = pathIds.indexOf(pt.data.id);\n if (level === -1) return false;\n pt.x0 = eachWidth * level;\n pt.x1 = eachWidth * (level + 1);\n pt.y0 = barDifY;\n pt.y1 = barDifY + height;\n pt.onPathbar = true;\n return true;\n });\n sliceData.reverse();\n slices = slices.data(sliceData, helpers.getPtId);\n slices.enter().append(\"g\").classed(\"pathbar\", true);\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n slices.order();\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n pt._x0 = viewX(pt.x0);\n pt._x1 = viewX(pt.x1);\n pt._y0 = viewY(pt.y0);\n pt._y1 = viewY(pt.y1);\n pt._hoverX = viewX(pt.x1 - Math.min(width, height) / 2);\n pt._hoverY = viewY(pt.y1 - height / 2);\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, {\n hideOnRoot: false,\n hideOnLeaves: false,\n isTransitioning: gd._transitioning\n });\n slicePath.call(styleOne, pt, trace, gd, {\n hovered: false\n });\n pt._text = (helpers.getPtLabel(pt) || \"\").split(\"
\").join(\" \") || \"\";\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font, {\n onPathbar: true\n }));\n sliceText.text(pt._text || \" \").classed(\"slicetext\", true).attr(\"text-anchor\", \"start\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n onPathbar: true\n });\n pt.transform.fontSize = font.size;\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) {\n return strTransform(interp(t));\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt));\n }\n });\n };\n }\n });\n\n // src/traces/treemap/plot_one.js\n var require_plot_one = __commonJS({\n \"src/traces/treemap/plot_one.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var interpolate = (init_src2(), __toCommonJS(src_exports)).interpolate;\n var helpers = require_helpers15();\n var Lib = require_lib();\n var TEXTPAD = require_constants14().TEXTPAD;\n var barPlot = require_plot3();\n var toMoveInsideBar = barPlot.toMoveInsideBar;\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var constants = require_constants21();\n var drawAncestors = require_draw_ancestors();\n function getKey(pt) {\n return helpers.isHierarchyRoot(pt) ? \"\" : (\n // don't use the dummyId\n helpers.getPtId(pt)\n );\n }\n module.exports = function plotOne(gd, cd, element, transitionOpts, drawDescendants) {\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var type = trace.type;\n var isIcicle = type === \"icicle\";\n var hierarchy = cd0.hierarchy;\n var entry = helpers.findEntryWithLevel(hierarchy, trace.level);\n var gTrace = d3.select(element);\n var selAncestors = gTrace.selectAll(\"g.pathbar\");\n var selDescendants = gTrace.selectAll(\"g.slice\");\n if (!entry) {\n selAncestors.remove();\n selDescendants.remove();\n return;\n }\n var isRoot = helpers.isHierarchyRoot(entry);\n var hasTransition = !fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts);\n var maxDepth = helpers.getMaxDepth(trace);\n var hasVisibleDepth = function(pt) {\n return pt.data.depth - entry.data.depth < maxDepth;\n };\n var gs = fullLayout._size;\n var domain = trace.domain;\n var vpw = gs.w * (domain.x[1] - domain.x[0]);\n var vph = gs.h * (domain.y[1] - domain.y[0]);\n var barW = vpw;\n var barH = trace.pathbar.thickness;\n var barPad = trace.marker.line.width + constants.gapWithPathbar;\n var barDifY = !trace.pathbar.visible ? 0 : trace.pathbar.side.indexOf(\"bottom\") > -1 ? vph + barPad : -(barH + barPad);\n var pathbarOrigin = {\n x0: barW,\n // slide to the right\n x1: barW,\n y0: barDifY,\n y1: barDifY + barH\n };\n var findClosestEdge = function(pt, ref, size) {\n var e = trace.tiling.pad;\n var isLeftOfRect = function(x) {\n return x - e <= ref.x0;\n };\n var isRightOfRect = function(x) {\n return x + e >= ref.x1;\n };\n var isBottomOfRect = function(y) {\n return y - e <= ref.y0;\n };\n var isTopOfRect = function(y) {\n return y + e >= ref.y1;\n };\n if (pt.x0 === ref.x0 && pt.x1 === ref.x1 && pt.y0 === ref.y0 && pt.y1 === ref.y1) {\n return {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n }\n return {\n x0: isLeftOfRect(pt.x0 - e) ? 0 : isRightOfRect(pt.x0 - e) ? size[0] : pt.x0,\n x1: isLeftOfRect(pt.x1 + e) ? 0 : isRightOfRect(pt.x1 + e) ? size[0] : pt.x1,\n y0: isBottomOfRect(pt.y0 - e) ? 0 : isTopOfRect(pt.y0 - e) ? size[1] : pt.y0,\n y1: isBottomOfRect(pt.y1 + e) ? 0 : isTopOfRect(pt.y1 + e) ? size[1] : pt.y1\n };\n };\n var prevEntry = null;\n var prevLookupPathbar = {};\n var prevLookupSlices = {};\n var nextOfPrevEntry = null;\n var getPrev = function(pt, onPathbar) {\n return onPathbar ? prevLookupPathbar[getKey(pt)] : prevLookupSlices[getKey(pt)];\n };\n var getOrigin = function(pt, onPathbar, refRect, size) {\n if (onPathbar) {\n return prevLookupPathbar[getKey(hierarchy)] || pathbarOrigin;\n } else {\n var ref = prevLookupSlices[trace.level] || refRect;\n if (hasVisibleDepth(pt)) {\n return findClosestEdge(pt, ref, size);\n }\n }\n return {};\n };\n if (cd0.hasMultipleRoots && isRoot) {\n maxDepth++;\n }\n trace._maxDepth = maxDepth;\n trace._backgroundColor = fullLayout.paper_bgcolor;\n trace._entryDepth = entry.data.depth;\n trace._atRootLevel = isRoot;\n var cenX = -vpw / 2 + gs.l + gs.w * (domain.x[1] + domain.x[0]) / 2;\n var cenY = -vph / 2 + gs.t + gs.h * (1 - (domain.y[1] + domain.y[0]) / 2);\n var viewMapX = function(x) {\n return cenX + x;\n };\n var viewMapY = function(y) {\n return cenY + y;\n };\n var barY0 = viewMapY(0);\n var barX0 = viewMapX(0);\n var viewBarX = function(x) {\n return barX0 + x;\n };\n var viewBarY = function(y) {\n return barY0 + y;\n };\n function pos(x, y) {\n return x + \",\" + y;\n }\n var xStart = viewBarX(0);\n var limitX0 = function(p) {\n p.x = Math.max(xStart, p.x);\n };\n var edgeshape = trace.pathbar.edgeshape;\n var pathAncestor = function(d) {\n var _x0 = viewBarX(Math.max(Math.min(d.x0, d.x0), 0));\n var _x1 = viewBarX(Math.min(Math.max(d.x1, d.x1), barW));\n var _y0 = viewBarY(d.y0);\n var _y1 = viewBarY(d.y1);\n var halfH = barH / 2;\n var pL = {};\n var pR = {};\n pL.x = _x0;\n pR.x = _x1;\n pL.y = pR.y = (_y0 + _y1) / 2;\n var pA = { x: _x0, y: _y0 };\n var pB = { x: _x1, y: _y0 };\n var pC = { x: _x1, y: _y1 };\n var pD = { x: _x0, y: _y1 };\n if (edgeshape === \">\") {\n pA.x -= halfH;\n pB.x -= halfH;\n pC.x -= halfH;\n pD.x -= halfH;\n } else if (edgeshape === \"/\") {\n pC.x -= halfH;\n pD.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if (edgeshape === \"\\\\\") {\n pA.x -= halfH;\n pB.x -= halfH;\n pL.x -= halfH / 2;\n pR.x -= halfH / 2;\n } else if (edgeshape === \"<\") {\n pL.x -= halfH;\n pR.x -= halfH;\n }\n limitX0(pA);\n limitX0(pD);\n limitX0(pL);\n limitX0(pB);\n limitX0(pC);\n limitX0(pR);\n return \"M\" + pos(pA.x, pA.y) + \"L\" + pos(pB.x, pB.y) + \"L\" + pos(pR.x, pR.y) + \"L\" + pos(pC.x, pC.y) + \"L\" + pos(pD.x, pD.y) + \"L\" + pos(pL.x, pL.y) + \"Z\";\n };\n var pad = trace[isIcicle ? \"tiling\" : \"marker\"].pad;\n var hasFlag = function(f) {\n return trace.textposition.indexOf(f) !== -1;\n };\n var hasTop = hasFlag(\"top\");\n var hasLeft = hasFlag(\"left\");\n var hasRight = hasFlag(\"right\");\n var hasBottom = hasFlag(\"bottom\");\n var pathDescendant = function(d) {\n var _x0 = viewMapX(d.x0);\n var _x1 = viewMapX(d.x1);\n var _y0 = viewMapY(d.y0);\n var _y1 = viewMapY(d.y1);\n var dx = _x1 - _x0;\n var dy = _y1 - _y0;\n if (!dx || !dy) return \"\";\n var cornerradius = trace.marker.cornerradius || 0;\n var r = Math.min(cornerradius, dx / 2, dy / 2);\n if (r && d.data && d.data.data && d.data.data.label) {\n if (hasTop) r = Math.min(r, pad.t);\n if (hasLeft) r = Math.min(r, pad.l);\n if (hasRight) r = Math.min(r, pad.r);\n if (hasBottom) r = Math.min(r, pad.b);\n }\n var arc = function(rx, ry) {\n return r ? \"a\" + pos(r, r) + \" 0 0 1 \" + pos(rx, ry) : \"\";\n };\n return \"M\" + pos(_x0, _y0 + r) + arc(r, -r) + \"L\" + pos(_x1 - r, _y0) + arc(r, r) + \"L\" + pos(_x1, _y1 - r) + arc(-r, r) + \"L\" + pos(_x0 + r, _y1) + arc(-r, -r) + \"Z\";\n };\n var toMoveInsideSlice = function(pt, opts) {\n var x0 = pt.x0;\n var x1 = pt.x1;\n var y0 = pt.y0;\n var y1 = pt.y1;\n var textBB = pt.textBB;\n var _hasTop = hasTop || opts.isHeader && !hasBottom;\n var anchor = _hasTop ? \"start\" : hasBottom ? \"end\" : \"middle\";\n var _hasRight = hasFlag(\"right\");\n var _hasLeft = hasFlag(\"left\") || opts.onPathbar;\n var leftToRight = _hasLeft ? -1 : _hasRight ? 1 : 0;\n if (opts.isHeader) {\n x0 += (isIcicle ? pad : pad.l) - TEXTPAD;\n x1 -= (isIcicle ? pad : pad.r) - TEXTPAD;\n if (x0 >= x1) {\n var mid = (x0 + x1) / 2;\n x0 = mid;\n x1 = mid;\n }\n var limY;\n if (hasBottom) {\n limY = y1 - (isIcicle ? pad : pad.b);\n if (y0 < limY && limY < y1) y0 = limY;\n } else {\n limY = y0 + (isIcicle ? pad : pad.t);\n if (y0 < limY && limY < y1) y1 = limY;\n }\n }\n var transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: false,\n constrained: true,\n angle: 0,\n anchor,\n leftToRight\n });\n transform.fontSize = opts.fontSize;\n transform.targetX = viewMapX(transform.targetX);\n transform.targetY = viewMapY(transform.targetY);\n if (isNaN(transform.targetX) || isNaN(transform.targetY)) {\n return {};\n }\n if (x0 !== x1 && y0 !== y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n return {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n };\n };\n var interpFromParent = function(pt, onPathbar) {\n var parentPrev;\n var i = 0;\n var Q = pt;\n while (!parentPrev && i < maxDepth) {\n i++;\n Q = Q.parent;\n if (Q) {\n parentPrev = getPrev(Q, onPathbar);\n } else i = maxDepth;\n }\n return parentPrev || {};\n };\n var makeExitSliceInterpolator = function(pt, onPathbar, refRect, size) {\n var prev = getPrev(pt, onPathbar);\n var next;\n if (onPathbar) {\n next = pathbarOrigin;\n } else {\n var entryPrev = getPrev(entry, onPathbar);\n if (entryPrev) {\n next = findClosestEdge(pt, entryPrev, size);\n } else {\n next = {};\n }\n }\n return interpolate(prev, next);\n };\n var makeUpdateSliceInterpolator = function(pt, onPathbar, refRect, size, opts) {\n var prev0 = getPrev(pt, onPathbar);\n var prev;\n if (prev0) {\n prev = prev0;\n } else {\n if (onPathbar) {\n prev = pathbarOrigin;\n } else {\n if (prevEntry) {\n if (pt.parent) {\n var ref = nextOfPrevEntry || refRect;\n if (ref && !onPathbar) {\n prev = findClosestEdge(pt, ref, size);\n } else {\n prev = {};\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n } else {\n prev = Lib.extendFlat({}, pt);\n if (isIcicle) {\n if (opts.orientation === \"h\") {\n if (opts.flipX) prev.x0 = pt.x1;\n else prev.x1 = 0;\n } else {\n if (opts.flipY) prev.y0 = pt.y1;\n else prev.y1 = 0;\n }\n }\n }\n } else {\n prev = {};\n }\n }\n }\n return interpolate(prev, {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n });\n };\n var makeUpdateTextInterpolator = function(pt, onPathbar, refRect, size) {\n var prev0 = getPrev(pt, onPathbar);\n var prev = {};\n var origin = getOrigin(pt, onPathbar, refRect, size);\n Lib.extendFlat(prev, {\n transform: toMoveInsideSlice({\n x0: origin.x0,\n x1: origin.x1,\n y0: origin.y0,\n y1: origin.y1,\n textBB: pt.textBB,\n _text: pt._text\n }, {\n isHeader: helpers.isHeader(pt, trace)\n })\n });\n if (prev0) {\n prev = prev0;\n } else {\n if (pt.parent) {\n Lib.extendFlat(prev, interpFromParent(pt, onPathbar));\n }\n }\n var transform = pt.transform;\n if (pt.x0 !== pt.x1 && pt.y0 !== pt.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n return interpolate(prev, {\n transform: {\n scale: transform.scale,\n rotate: transform.rotate,\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY\n }\n });\n };\n var handleSlicesExit = function(slices, onPathbar, refRect, size, pathSlice) {\n var width = size[0];\n var height = size[1];\n if (hasTransition) {\n slices.exit().transition().each(function() {\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.select(\"path.surface\");\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeExitSliceInterpolator(pt2, onPathbar, refRect, [width, height]);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n var sliceTextGroup = sliceTop.select(\"g.slicetext\");\n sliceTextGroup.attr(\"opacity\", 0);\n }).remove();\n } else {\n slices.exit().remove();\n }\n };\n var strTransform = function(d) {\n var transform = d.transform;\n if (d.x0 !== d.x1 && d.y0 !== d.y1) {\n recordMinTextSize(trace.type, transform, fullLayout);\n }\n return Lib.getTextTransform({\n textX: transform.textX,\n textY: transform.textY,\n anchorX: transform.anchorX,\n anchorY: transform.anchorY,\n targetX: transform.targetX,\n targetY: transform.targetY,\n scale: transform.scale,\n rotate: transform.rotate\n });\n };\n if (hasTransition) {\n selAncestors.each(function(pt) {\n prevLookupPathbar[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n if (pt.transform) {\n prevLookupPathbar[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n });\n selDescendants.each(function(pt) {\n prevLookupSlices[getKey(pt)] = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n if (pt.transform) {\n prevLookupSlices[getKey(pt)].transform = {\n textX: pt.transform.textX,\n textY: pt.transform.textY,\n anchorX: pt.transform.anchorX,\n anchorY: pt.transform.anchorY,\n targetX: pt.transform.targetX,\n targetY: pt.transform.targetY,\n scale: pt.transform.scale,\n rotate: pt.transform.rotate\n };\n }\n if (!prevEntry && helpers.isEntry(pt)) {\n prevEntry = pt;\n }\n });\n }\n nextOfPrevEntry = drawDescendants(gd, cd, entry, selDescendants, {\n width: vpw,\n height: vph,\n viewX: viewMapX,\n viewY: viewMapY,\n pathSlice: pathDescendant,\n toMoveInsideSlice,\n prevEntry,\n makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator,\n handleSlicesExit,\n hasTransition,\n strTransform\n });\n if (trace.pathbar.visible) {\n drawAncestors(gd, cd, entry, selAncestors, {\n barDifY,\n width: barW,\n height: barH,\n viewX: viewBarX,\n viewY: viewBarY,\n pathSlice: pathAncestor,\n toMoveInsideSlice,\n makeUpdateSliceInterpolator,\n makeUpdateTextInterpolator,\n handleSlicesExit,\n hasTransition,\n strTransform\n });\n } else {\n selAncestors.remove();\n }\n };\n }\n });\n\n // src/traces/treemap/draw.js\n var require_draw12 = __commonJS({\n \"src/traces/treemap/draw.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var helpers = require_helpers15();\n var uniformText = require_uniform_text();\n var clearMinTextSize = uniformText.clearMinTextSize;\n var resizeText = require_style4().resizeText;\n var plotOne = require_plot_one();\n module.exports = function _plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback, opts) {\n var type = opts.type;\n var drawDescendants = opts.drawDescendants;\n var fullLayout = gd._fullLayout;\n var layer = fullLayout[\"_\" + type + \"layer\"];\n var join, onComplete;\n var isFullReplot = !transitionOpts;\n clearMinTextSize(type, fullLayout);\n join = layer.selectAll(\"g.trace.\" + type).data(cdmodule, function(cd) {\n return cd[0].trace.uid;\n });\n join.enter().append(\"g\").classed(\"trace\", true).classed(type, true);\n join.order();\n if (!fullLayout.uniformtext.mode && helpers.hasTransition(transitionOpts)) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n var transition = d3.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n });\n transition.each(function() {\n layer.selectAll(\"g.trace\").each(function(cd) {\n plotOne(gd, cd, this, transitionOpts, drawDescendants);\n });\n });\n } else {\n join.each(function(cd) {\n plotOne(gd, cd, this, transitionOpts, drawDescendants);\n });\n if (fullLayout.uniformtext.mode) {\n resizeText(gd, layer.selectAll(\".trace\"), type);\n }\n }\n if (isFullReplot) {\n join.exit().remove();\n }\n };\n }\n });\n\n // src/traces/treemap/draw_descendants.js\n var require_draw_descendants = __commonJS({\n \"src/traces/treemap/draw_descendants.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var partition = require_partition();\n var styleOne = require_style14().styleOne;\n var constants = require_constants21();\n var helpers = require_helpers15();\n var attachFxHandlers = require_fx2();\n var formatSliceLabel = require_plot13().formatSliceLabel;\n var onPathbar = false;\n module.exports = function drawDescendants(gd, cd, entry, slices, opts) {\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var prevEntry = opts.prevEntry;\n var refRect = {};\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hasLeft = trace.textposition.indexOf(\"left\") !== -1;\n var hasRight = trace.textposition.indexOf(\"right\") !== -1;\n var hasBottom = trace.textposition.indexOf(\"bottom\") !== -1;\n var noRoomForHeader = !hasBottom && !trace.marker.pad.t || hasBottom && !trace.marker.pad.b;\n var allData = partition(entry, [width, height], {\n packing: trace.tiling.packing,\n squarifyratio: trace.tiling.squarifyratio,\n flipX: trace.tiling.flip.indexOf(\"x\") > -1,\n flipY: trace.tiling.flip.indexOf(\"y\") > -1,\n pad: {\n inner: trace.tiling.pad,\n top: trace.marker.pad.t,\n left: trace.marker.pad.l,\n right: trace.marker.pad.r,\n bottom: trace.marker.pad.b\n }\n });\n var sliceData = allData.descendants();\n var minVisibleDepth = Infinity;\n var maxVisibleDepth = -Infinity;\n sliceData.forEach(function(pt) {\n var depth = pt.depth;\n if (depth >= trace._maxDepth) {\n pt.x0 = pt.x1 = (pt.x0 + pt.x1) / 2;\n pt.y0 = pt.y1 = (pt.y0 + pt.y1) / 2;\n } else {\n minVisibleDepth = Math.min(minVisibleDepth, depth);\n maxVisibleDepth = Math.max(maxVisibleDepth, depth);\n }\n });\n slices = slices.data(sliceData, helpers.getPtId);\n trace._maxVisibleLayers = isFinite(maxVisibleDepth) ? maxVisibleDepth - minVisibleDepth + 1 : 0;\n slices.enter().append(\"g\").classed(\"slice\", true);\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n slices.order();\n var nextOfPrevEntry = null;\n if (hasTransition && prevEntry) {\n var prevEntryId = helpers.getPtId(prevEntry);\n slices.each(function(pt) {\n if (nextOfPrevEntry === null && helpers.getPtId(pt) === prevEntryId) {\n nextOfPrevEntry = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n }\n });\n }\n var getRefRect = function() {\n return nextOfPrevEntry || {\n x0: 0,\n x1: width,\n y0: 0,\n y1: height\n };\n };\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: true,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n var isHeader = helpers.isHeader(pt, trace);\n pt._x0 = viewX(pt.x0);\n pt._x1 = viewX(pt.x1);\n pt._y0 = viewY(pt.y0);\n pt._y1 = viewY(pt.y1);\n pt._hoverX = viewX(pt.x1 - trace.marker.pad.r), pt._hoverY = hasBottom ? viewY(pt.y1 - trace.marker.pad.b / 2) : viewY(pt.y0 + trace.marker.pad.t / 2);\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(pt2, onPathbar, getRefRect(), [width, height]);\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, { isTransitioning: gd._transitioning });\n slicePath.call(styleOne, pt, trace, gd, {\n hovered: false\n });\n if (pt.x0 === pt.x1 || pt.y0 === pt.y1) {\n pt._text = \"\";\n } else {\n if (isHeader) {\n pt._text = noRoomForHeader ? \"\" : helpers.getPtLabel(pt) || \"\";\n } else {\n pt._text = formatSliceLabel(pt, entry, trace, cd, fullLayout) || \"\";\n }\n }\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));\n var text = pt._text || \" \";\n var singleLineHeader = isHeader && text.indexOf(\"
\") === -1;\n sliceText.text(text).classed(\"slicetext\", true).attr(\"text-anchor\", hasRight ? \"end\" : hasLeft || singleLineHeader ? \"start\" : \"middle\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size,\n isHeader\n });\n pt.transform.fontSize = font.size;\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, getRefRect(), [width, height]);\n return function(t) {\n return strTransform(interp(t));\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt));\n }\n });\n return nextOfPrevEntry;\n };\n }\n });\n\n // src/traces/treemap/plot.js\n var require_plot14 = __commonJS({\n \"src/traces/treemap/plot.js\"(exports, module) {\n \"use strict\";\n var draw = require_draw12();\n var drawDescendants = require_draw_descendants();\n module.exports = function _plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback) {\n return draw(gd, cdmodule, transitionOpts, makeOnCompleteCallback, {\n type: \"treemap\",\n drawDescendants\n });\n };\n }\n });\n\n // src/traces/treemap/index.js\n var require_treemap = __commonJS({\n \"src/traces/treemap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"treemap\",\n basePlotModule: require_base_plot3(),\n categories: [],\n animatable: true,\n attributes: require_attributes37(),\n layoutAttributes: require_layout_attributes14(),\n supplyDefaults: require_defaults33(),\n supplyLayoutDefaults: require_layout_defaults13(),\n calc: require_calc18().calc,\n crossTraceCalc: require_calc18().crossTraceCalc,\n plot: require_plot14(),\n style: require_style14().style,\n colorbar: require_marker_colorbar(),\n meta: {}\n };\n }\n });\n\n // lib/treemap.js\n var require_treemap2 = __commonJS({\n \"lib/treemap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_treemap();\n }\n });\n\n // src/traces/icicle/base_plot.js\n var require_base_plot4 = __commonJS({\n \"src/traces/icicle/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"icicle\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/icicle/attributes.js\n var require_attributes38 = __commonJS({\n \"src/traces/icicle/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var domainAttrs = require_domain().attributes;\n var pieAttrs = require_attributes35();\n var sunburstAttrs = require_attributes36();\n var treemapAttrs = require_attributes37();\n var constants = require_constants21();\n var extendFlat = require_extend().extendFlat;\n var pattern = require_attributes4().pattern;\n module.exports = {\n labels: sunburstAttrs.labels,\n parents: sunburstAttrs.parents,\n values: sunburstAttrs.values,\n branchvalues: sunburstAttrs.branchvalues,\n count: sunburstAttrs.count,\n level: sunburstAttrs.level,\n maxdepth: sunburstAttrs.maxdepth,\n tiling: {\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"h\",\n editType: \"plot\"\n },\n flip: treemapAttrs.tiling.flip,\n pad: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n marker: extendFlat(\n {\n colors: sunburstAttrs.marker.colors,\n line: sunburstAttrs.marker.line,\n pattern,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\", {\n colorAttr: \"colors\",\n anim: false\n // TODO: set to anim: true?\n })\n ),\n leaf: sunburstAttrs.leaf,\n pathbar: treemapAttrs.pathbar,\n text: pieAttrs.text,\n textinfo: sunburstAttrs.textinfo,\n // TODO: incorporate `label` and `value` in the eventData\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: constants.eventDataKeys.concat([\"label\", \"value\"])\n }),\n hovertext: pieAttrs.hovertext,\n hoverinfo: sunburstAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, {\n keys: constants.eventDataKeys\n }),\n textfont: pieAttrs.textfont,\n insidetextfont: pieAttrs.insidetextfont,\n outsidetextfont: treemapAttrs.outsidetextfont,\n textposition: treemapAttrs.textposition,\n sort: pieAttrs.sort,\n root: sunburstAttrs.root,\n domain: domainAttrs({ name: \"icicle\", trace: true, editType: \"calc\" })\n };\n }\n });\n\n // src/traces/icicle/layout_attributes.js\n var require_layout_attributes15 = __commonJS({\n \"src/traces/icicle/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n iciclecolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendiciclecolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/icicle/defaults.js\n var require_defaults34 = __commonJS({\n \"src/traces/icicle/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes38();\n var Color2 = require_color();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var TEXTPAD = require_constants14().TEXTPAD;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n var Colorscale = require_colorscale();\n var hasColorscale = Colorscale.hasColorscale;\n var colorscaleDefaults = Colorscale.handleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var parents = coerce(\"parents\");\n if (!labels || !labels.length || !parents || !parents.length) {\n traceOut.visible = false;\n return;\n }\n var vals = coerce(\"values\");\n if (vals && vals.length) {\n coerce(\"branchvalues\");\n } else {\n coerce(\"count\");\n }\n coerce(\"level\");\n coerce(\"maxdepth\");\n coerce(\"tiling.orientation\");\n coerce(\"tiling.flip\");\n coerce(\"tiling.pad\");\n var text = coerce(\"text\");\n coerce(\"texttemplate\");\n if (!traceOut.texttemplate) coerce(\"textinfo\", Lib.isArrayOrTypedArray(text) ? \"text+label\" : \"label\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var hasPathbar = coerce(\"pathbar.visible\");\n var textposition = \"auto\";\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n hasPathbar,\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n coerce(\"textposition\");\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n var withColorscale = traceOut._hasColorscale = hasColorscale(traceIn, \"marker\", \"colors\") || (traceIn.marker || {}).coloraxis;\n if (withColorscale) {\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"marker.\", cLetter: \"c\" });\n }\n coerce(\"leaf.opacity\", withColorscale ? 1 : 0.7);\n traceOut._hovered = {\n marker: {\n line: {\n width: 2,\n color: Color2.contrast(layout.paper_bgcolor)\n }\n }\n };\n if (hasPathbar) {\n coerce(\"pathbar.thickness\", traceOut.pathbar.textfont.size + 2 * TEXTPAD);\n coerce(\"pathbar.side\");\n coerce(\"pathbar.edgeshape\");\n }\n coerce(\"sort\");\n coerce(\"root.color\");\n handleDomainDefaults(traceOut, layout, coerce);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/icicle/layout_defaults.js\n var require_layout_defaults14 = __commonJS({\n \"src/traces/icicle/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes15();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"iciclecolorway\", layoutOut.colorway);\n coerce(\"extendiciclecolors\");\n };\n }\n });\n\n // src/traces/icicle/calc.js\n var require_calc19 = __commonJS({\n \"src/traces/icicle/calc.js\"(exports) {\n \"use strict\";\n var calc = require_calc17();\n exports.calc = function(gd, trace) {\n return calc.calc(gd, trace);\n };\n exports.crossTraceCalc = function(gd) {\n return calc._runCrossTraceCalc(\"icicle\", gd);\n };\n }\n });\n\n // src/traces/icicle/partition.js\n var require_partition2 = __commonJS({\n \"src/traces/icicle/partition.js\"(exports, module) {\n \"use strict\";\n var d3Hierarchy = require_d3_hierarchy();\n var flipTree = require_flip_tree();\n module.exports = function partition(entry, size, opts) {\n var flipX = opts.flipX;\n var flipY = opts.flipY;\n var swapXY = opts.orientation === \"h\";\n var maxDepth = opts.maxDepth;\n var newWidth = size[0];\n var newHeight = size[1];\n if (maxDepth) {\n newWidth = (entry.height + 1) * size[0] / Math.min(entry.height + 1, maxDepth);\n newHeight = (entry.height + 1) * size[1] / Math.min(entry.height + 1, maxDepth);\n }\n var result = d3Hierarchy.partition().padding(opts.pad.inner).size(\n swapXY ? [size[1], newWidth] : [size[0], newHeight]\n )(entry);\n if (swapXY || flipX || flipY) {\n flipTree(result, size, {\n swapXY,\n flipX,\n flipY\n });\n }\n return result;\n };\n }\n });\n\n // src/traces/icicle/style.js\n var require_style15 = __commonJS({\n \"src/traces/icicle/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Lib = require_lib();\n var resizeText = require_uniform_text().resizeText;\n var fillOne = require_fill_one2();\n function style(gd) {\n var s = gd._fullLayout._iciclelayer.selectAll(\".trace\");\n resizeText(gd, s, \"icicle\");\n s.each(function(cd) {\n var gTrace = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n gTrace.style(\"opacity\", trace.opacity);\n gTrace.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n }\n function styleOne(s, pt, trace, gd) {\n var cdi = pt.data.data;\n var isLeaf = !pt.children;\n var ptNumber = cdi.i;\n var lineColor = Lib.castOption(trace, ptNumber, \"marker.line.color\") || Color2.defaultLine;\n var lineWidth = Lib.castOption(trace, ptNumber, \"marker.line.width\") || 0;\n s.call(fillOne, pt, trace, gd).style(\"stroke-width\", lineWidth).call(Color2.stroke, lineColor).style(\"opacity\", isLeaf ? trace.leaf.opacity : null);\n }\n module.exports = {\n style,\n styleOne\n };\n }\n });\n\n // src/traces/icicle/draw_descendants.js\n var require_draw_descendants2 = __commonJS({\n \"src/traces/icicle/draw_descendants.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var partition = require_partition2();\n var styleOne = require_style15().styleOne;\n var constants = require_constants21();\n var helpers = require_helpers15();\n var attachFxHandlers = require_fx2();\n var formatSliceLabel = require_plot13().formatSliceLabel;\n var onPathbar = false;\n module.exports = function drawDescendants(gd, cd, entry, slices, opts) {\n var width = opts.width;\n var height = opts.height;\n var viewX = opts.viewX;\n var viewY = opts.viewY;\n var pathSlice = opts.pathSlice;\n var toMoveInsideSlice = opts.toMoveInsideSlice;\n var strTransform = opts.strTransform;\n var hasTransition = opts.hasTransition;\n var handleSlicesExit = opts.handleSlicesExit;\n var makeUpdateSliceInterpolator = opts.makeUpdateSliceInterpolator;\n var makeUpdateTextInterpolator = opts.makeUpdateTextInterpolator;\n var prevEntry = opts.prevEntry;\n var refRect = {};\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var hasLeft = trace.textposition.indexOf(\"left\") !== -1;\n var hasRight = trace.textposition.indexOf(\"right\") !== -1;\n var hasBottom = trace.textposition.indexOf(\"bottom\") !== -1;\n var allData = partition(entry, [width, height], {\n flipX: trace.tiling.flip.indexOf(\"x\") > -1,\n flipY: trace.tiling.flip.indexOf(\"y\") > -1,\n orientation: trace.tiling.orientation,\n pad: {\n inner: trace.tiling.pad\n },\n maxDepth: trace._maxDepth\n });\n var sliceData = allData.descendants();\n var minVisibleDepth = Infinity;\n var maxVisibleDepth = -Infinity;\n sliceData.forEach(function(pt) {\n var depth = pt.depth;\n if (depth >= trace._maxDepth) {\n pt.x0 = pt.x1 = (pt.x0 + pt.x1) / 2;\n pt.y0 = pt.y1 = (pt.y0 + pt.y1) / 2;\n } else {\n minVisibleDepth = Math.min(minVisibleDepth, depth);\n maxVisibleDepth = Math.max(maxVisibleDepth, depth);\n }\n });\n slices = slices.data(sliceData, helpers.getPtId);\n trace._maxVisibleLayers = isFinite(maxVisibleDepth) ? maxVisibleDepth - minVisibleDepth + 1 : 0;\n slices.enter().append(\"g\").classed(\"slice\", true);\n handleSlicesExit(slices, onPathbar, refRect, [width, height], pathSlice);\n slices.order();\n var nextOfPrevEntry = null;\n if (hasTransition && prevEntry) {\n var prevEntryId = helpers.getPtId(prevEntry);\n slices.each(function(pt) {\n if (nextOfPrevEntry === null && helpers.getPtId(pt) === prevEntryId) {\n nextOfPrevEntry = {\n x0: pt.x0,\n x1: pt.x1,\n y0: pt.y0,\n y1: pt.y1\n };\n }\n });\n }\n var getRefRect = function() {\n return nextOfPrevEntry || {\n x0: 0,\n x1: width,\n y0: 0,\n y1: height\n };\n };\n var updateSlices = slices;\n if (hasTransition) {\n updateSlices = updateSlices.transition().each(\"end\", function() {\n var sliceTop = d3.select(this);\n helpers.setSliceCursor(sliceTop, gd, {\n hideOnRoot: true,\n hideOnLeaves: false,\n isTransitioning: false\n });\n });\n }\n updateSlices.each(function(pt) {\n pt._x0 = viewX(pt.x0);\n pt._x1 = viewX(pt.x1);\n pt._y0 = viewY(pt.y0);\n pt._y1 = viewY(pt.y1);\n pt._hoverX = viewX(pt.x1 - trace.tiling.pad), pt._hoverY = hasBottom ? viewY(pt.y1 - trace.tiling.pad / 2) : viewY(pt.y0 + trace.tiling.pad / 2);\n var sliceTop = d3.select(this);\n var slicePath = Lib.ensureSingle(sliceTop, \"path\", \"surface\", function(s) {\n s.style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n });\n if (hasTransition) {\n slicePath.transition().attrTween(\"d\", function(pt2) {\n var interp = makeUpdateSliceInterpolator(\n pt2,\n onPathbar,\n getRefRect(),\n [width, height],\n {\n orientation: trace.tiling.orientation,\n flipX: trace.tiling.flip.indexOf(\"x\") > -1,\n flipY: trace.tiling.flip.indexOf(\"y\") > -1\n }\n );\n return function(t) {\n return pathSlice(interp(t));\n };\n });\n } else {\n slicePath.attr(\"d\", pathSlice);\n }\n sliceTop.call(attachFxHandlers, entry, gd, cd, {\n styleOne,\n eventDataKeys: constants.eventDataKeys,\n transitionTime: constants.CLICK_TRANSITION_TIME,\n transitionEasing: constants.CLICK_TRANSITION_EASING\n }).call(helpers.setSliceCursor, gd, { isTransitioning: gd._transitioning });\n slicePath.call(styleOne, pt, trace, gd, {\n hovered: false\n });\n if (pt.x0 === pt.x1 || pt.y0 === pt.y1) {\n pt._text = \"\";\n } else {\n pt._text = formatSliceLabel(pt, entry, trace, cd, fullLayout) || \"\";\n }\n var sliceTextGroup = Lib.ensureSingle(sliceTop, \"g\", \"slicetext\");\n var sliceText = Lib.ensureSingle(sliceTextGroup, \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, helpers.determineTextFont(trace, pt, fullLayout.font));\n sliceText.text(pt._text || \" \").classed(\"slicetext\", true).attr(\"text-anchor\", hasRight ? \"end\" : hasLeft ? \"start\" : \"middle\").call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n pt.textBB = Drawing.bBox(sliceText.node());\n pt.transform = toMoveInsideSlice(pt, {\n fontSize: font.size\n });\n pt.transform.fontSize = font.size;\n if (hasTransition) {\n sliceText.transition().attrTween(\"transform\", function(pt2) {\n var interp = makeUpdateTextInterpolator(pt2, onPathbar, getRefRect(), [width, height]);\n return function(t) {\n return strTransform(interp(t));\n };\n });\n } else {\n sliceText.attr(\"transform\", strTransform(pt));\n }\n });\n return nextOfPrevEntry;\n };\n }\n });\n\n // src/traces/icicle/plot.js\n var require_plot15 = __commonJS({\n \"src/traces/icicle/plot.js\"(exports, module) {\n \"use strict\";\n var draw = require_draw12();\n var drawDescendants = require_draw_descendants2();\n module.exports = function _plot(gd, cdmodule, transitionOpts, makeOnCompleteCallback) {\n return draw(gd, cdmodule, transitionOpts, makeOnCompleteCallback, {\n type: \"icicle\",\n drawDescendants\n });\n };\n }\n });\n\n // src/traces/icicle/index.js\n var require_icicle = __commonJS({\n \"src/traces/icicle/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"icicle\",\n basePlotModule: require_base_plot4(),\n categories: [],\n animatable: true,\n attributes: require_attributes38(),\n layoutAttributes: require_layout_attributes15(),\n supplyDefaults: require_defaults34(),\n supplyLayoutDefaults: require_layout_defaults14(),\n calc: require_calc19().calc,\n crossTraceCalc: require_calc19().crossTraceCalc,\n plot: require_plot15(),\n style: require_style15().style,\n colorbar: require_marker_colorbar(),\n meta: {}\n };\n }\n });\n\n // lib/icicle.js\n var require_icicle2 = __commonJS({\n \"lib/icicle.js\"(exports, module) {\n \"use strict\";\n module.exports = require_icicle();\n }\n });\n\n // src/traces/funnelarea/base_plot.js\n var require_base_plot5 = __commonJS({\n \"src/traces/funnelarea/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"funnelarea\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/funnelarea/attributes.js\n var require_attributes39 = __commonJS({\n \"src/traces/funnelarea/attributes.js\"(exports, module) {\n \"use strict\";\n var pieAttrs = require_attributes35();\n var baseAttrs = require_attributes2();\n var domainAttrs = require_domain().attributes;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n labels: pieAttrs.labels,\n // equivalent of x0 and dx, if label is missing\n label0: pieAttrs.label0,\n dlabel: pieAttrs.dlabel,\n values: pieAttrs.values,\n marker: {\n colors: pieAttrs.marker.colors,\n line: {\n color: extendFlat({}, pieAttrs.marker.line.color, {\n dflt: null\n }),\n width: extendFlat({}, pieAttrs.marker.line.width, { dflt: 1 }),\n editType: \"calc\"\n },\n pattern: pieAttrs.marker.pattern,\n editType: \"calc\"\n },\n text: pieAttrs.text,\n hovertext: pieAttrs.hovertext,\n scalegroup: extendFlat({}, pieAttrs.scalegroup, {}),\n textinfo: extendFlat({}, pieAttrs.textinfo, {\n flags: [\"label\", \"text\", \"value\", \"percent\"]\n }),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"label\", \"color\", \"value\", \"text\", \"percent\"]\n }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"label\", \"text\", \"value\", \"percent\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"label\", \"color\", \"value\", \"text\", \"percent\"]\n }),\n textposition: extendFlat({}, pieAttrs.textposition, {\n values: [\"inside\", \"none\"],\n dflt: \"inside\"\n }),\n textfont: pieAttrs.textfont,\n insidetextfont: pieAttrs.insidetextfont,\n title: {\n text: pieAttrs.title.text,\n font: pieAttrs.title.font,\n position: extendFlat({}, pieAttrs.title.position, {\n values: [\"top left\", \"top center\", \"top right\"],\n dflt: \"top center\"\n }),\n editType: \"plot\"\n },\n domain: domainAttrs({ name: \"funnelarea\", trace: true, editType: \"calc\" }),\n aspectratio: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n baseratio: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.333,\n editType: \"plot\"\n }\n };\n }\n });\n\n // src/traces/funnelarea/layout_attributes.js\n var require_layout_attributes16 = __commonJS({\n \"src/traces/funnelarea/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var hiddenlabels = require_layout_attributes12().hiddenlabels;\n module.exports = {\n hiddenlabels,\n funnelareacolorway: {\n valType: \"colorlist\",\n editType: \"calc\"\n },\n extendfunnelareacolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/funnelarea/defaults.js\n var require_defaults35 = __commonJS({\n \"src/traces/funnelarea/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes39();\n var handleDomainDefaults = require_domain().defaults;\n var handleText = require_defaults19().handleText;\n var handleLabelsAndValues = require_defaults31().handleLabelsAndValues;\n var handleMarkerDefaults = require_defaults31().handleMarkerDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var labels = coerce(\"labels\");\n var values = coerce(\"values\");\n var res = handleLabelsAndValues(labels, values);\n var len = res.len;\n traceOut._hasLabels = res.hasLabels;\n traceOut._hasValues = res.hasValues;\n if (!traceOut._hasLabels && traceOut._hasValues) {\n coerce(\"label0\");\n coerce(\"dlabel\");\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n handleMarkerDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"scalegroup\");\n var textData = coerce(\"text\");\n var textTemplate = coerce(\"texttemplate\");\n var textInfo;\n if (!textTemplate) textInfo = coerce(\"textinfo\", Array.isArray(textData) ? \"text+percent\" : \"percent\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n if (textTemplate || textInfo && textInfo !== \"none\") {\n var textposition = coerce(\"textposition\");\n handleText(traceIn, traceOut, layout, coerce, textposition, {\n moduleHasSelected: false,\n moduleHasUnselected: false,\n moduleHasConstrain: false,\n moduleHasCliponaxis: false,\n moduleHasTextangle: false,\n moduleHasInsideanchor: false\n });\n } else if (textInfo === \"none\") {\n coerce(\"textposition\", \"none\");\n }\n handleDomainDefaults(traceOut, layout, coerce);\n var title = coerce(\"title.text\");\n if (title) {\n coerce(\"title.position\");\n Lib.coerceFont(coerce, \"title.font\", layout.font);\n }\n coerce(\"aspectratio\");\n coerce(\"baseratio\");\n };\n }\n });\n\n // src/traces/funnelarea/layout_defaults.js\n var require_layout_defaults15 = __commonJS({\n \"src/traces/funnelarea/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var layoutAttributes = require_layout_attributes16();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);\n }\n coerce(\"hiddenlabels\");\n coerce(\"funnelareacolorway\", layoutOut.colorway);\n coerce(\"extendfunnelareacolors\");\n };\n }\n });\n\n // src/traces/funnelarea/calc.js\n var require_calc20 = __commonJS({\n \"src/traces/funnelarea/calc.js\"(exports, module) {\n \"use strict\";\n var pieCalc = require_calc16();\n function calc(gd, trace) {\n return pieCalc.calc(gd, trace);\n }\n function crossTraceCalc(gd) {\n pieCalc.crossTraceCalc(gd, { type: \"funnelarea\" });\n }\n module.exports = {\n calc,\n crossTraceCalc\n };\n }\n });\n\n // src/traces/funnelarea/plot.js\n var require_plot16 = __commonJS({\n \"src/traces/funnelarea/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var barPlot = require_plot3();\n var toMoveInsideBar = barPlot.toMoveInsideBar;\n var uniformText = require_uniform_text();\n var recordMinTextSize = uniformText.recordMinTextSize;\n var clearMinTextSize = uniformText.clearMinTextSize;\n var pieHelpers = require_helpers4();\n var piePlot = require_plot12();\n var attachFxHandlers = piePlot.attachFxHandlers;\n var determineInsideTextFont = piePlot.determineInsideTextFont;\n var layoutAreas = piePlot.layoutAreas;\n var prerenderTitles = piePlot.prerenderTitles;\n var positionTitleOutside = piePlot.positionTitleOutside;\n var formatSliceLabel = piePlot.formatSliceLabel;\n module.exports = function plot(gd, cdModule) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n clearMinTextSize(\"funnelarea\", fullLayout);\n prerenderTitles(cdModule, gd);\n layoutAreas(cdModule, fullLayout._size);\n Lib.makeTraceGroups(fullLayout._funnelarealayer, cdModule, \"trace\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n setCoords(cd);\n plotGroup.each(function() {\n var slices = d3.select(this).selectAll(\"g.slice\").data(cd);\n slices.enter().append(\"g\").classed(\"slice\", true);\n slices.exit().remove();\n slices.each(function(pt, i) {\n if (pt.hidden) {\n d3.select(this).selectAll(\"path,g\").remove();\n return;\n }\n pt.pointNumber = pt.i;\n pt.curveNumber = trace.index;\n var cx = cd0.cx;\n var cy = cd0.cy;\n var sliceTop = d3.select(this);\n var slicePath = sliceTop.selectAll(\"path.surface\").data([pt]);\n slicePath.enter().append(\"path\").classed(\"surface\", true).style({ \"pointer-events\": isStatic ? \"none\" : \"all\" });\n sliceTop.call(attachFxHandlers, gd, cd);\n var shape = \"M\" + (cx + pt.TR[0]) + \",\" + (cy + pt.TR[1]) + line(pt.TR, pt.BR) + line(pt.BR, pt.BL) + line(pt.BL, pt.TL) + \"Z\";\n slicePath.attr(\"d\", shape);\n formatSliceLabel(gd, pt, cd0);\n var textPosition = pieHelpers.castOption(trace.textposition, pt.pts);\n var sliceTextGroup = sliceTop.selectAll(\"g.slicetext\").data(pt.text && textPosition !== \"none\" ? [0] : []);\n sliceTextGroup.enter().append(\"g\").classed(\"slicetext\", true);\n sliceTextGroup.exit().remove();\n sliceTextGroup.each(function() {\n var sliceText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var font = Lib.ensureUniformFontSize(gd, determineInsideTextFont(trace, pt, fullLayout.font));\n sliceText.text(pt.text).attr({\n class: \"slicetext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, font).call(svgTextUtils.convertToTspans, gd);\n var textBB = Drawing.bBox(sliceText.node());\n var transform;\n var x0, x1;\n var y0 = Math.min(pt.BL[1], pt.BR[1]) + cy;\n var y1 = Math.max(pt.TL[1], pt.TR[1]) + cy;\n x0 = Math.max(pt.TL[0], pt.BL[0]) + cx;\n x1 = Math.min(pt.TR[0], pt.BR[0]) + cx;\n transform = toMoveInsideBar(x0, x1, y0, y1, textBB, {\n isHorizontal: true,\n constrained: true,\n angle: 0,\n anchor: \"middle\"\n });\n transform.fontSize = font.size;\n recordMinTextSize(trace.type, transform, fullLayout);\n cd[i].transform = transform;\n Lib.setTransormAndDisplay(sliceText, transform);\n });\n });\n var titleTextGroup = d3.select(this).selectAll(\"g.titletext\").data(trace.title.text ? [0] : []);\n titleTextGroup.enter().append(\"g\").classed(\"titletext\", true);\n titleTextGroup.exit().remove();\n titleTextGroup.each(function() {\n var titleText = Lib.ensureSingle(d3.select(this), \"text\", \"\", function(s) {\n s.attr(\"data-notex\", 1);\n });\n var txt = trace.title.text;\n if (trace._meta) {\n txt = Lib.templateString(txt, trace._meta);\n }\n titleText.text(txt).attr({\n class: \"titletext\",\n transform: \"\",\n \"text-anchor\": \"middle\"\n }).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n var transform = positionTitleOutside(cd0, fullLayout._size);\n titleText.attr(\n \"transform\",\n strTranslate(transform.x, transform.y) + strScale(Math.min(1, transform.scale)) + strTranslate(transform.tx, transform.ty)\n );\n });\n });\n });\n };\n function line(a, b) {\n var dx = b[0] - a[0];\n var dy = b[1] - a[1];\n return \"l\" + dx + \",\" + dy;\n }\n function getBetween(a, b) {\n return [\n 0.5 * (a[0] + b[0]),\n 0.5 * (a[1] + b[1])\n ];\n }\n function setCoords(cd) {\n if (!cd.length) return;\n var cd0 = cd[0];\n var trace = cd0.trace;\n var aspectratio = trace.aspectratio;\n var h = trace.baseratio;\n if (h > 0.999) h = 0.999;\n var h2 = Math.pow(h, 2);\n var v1 = cd0.vTotal;\n var v0 = v1 * h2 / (1 - h2);\n var totalValues = v1;\n var sumSteps = v0 / v1;\n function calcPos() {\n var q = Math.sqrt(sumSteps);\n return {\n x: q,\n y: -q\n };\n }\n function getPoint() {\n var pos = calcPos();\n return [pos.x, pos.y];\n }\n var p;\n var allPoints = [];\n allPoints.push(getPoint());\n var i, cdi;\n for (i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if (cdi.hidden) continue;\n var step = cdi.v / totalValues;\n sumSteps += step;\n allPoints.push(getPoint());\n }\n var minY = Infinity;\n var maxY = -Infinity;\n for (i = 0; i < allPoints.length; i++) {\n p = allPoints[i];\n minY = Math.min(minY, p[1]);\n maxY = Math.max(maxY, p[1]);\n }\n for (i = 0; i < allPoints.length; i++) {\n allPoints[i][1] -= (maxY + minY) / 2;\n }\n var lastX = allPoints[allPoints.length - 1][0];\n var r = cd0.r;\n var rY = (maxY - minY) / 2;\n var scaleX = r / lastX;\n var scaleY = r / rY * aspectratio;\n cd0.r = scaleY * rY;\n for (i = 0; i < allPoints.length; i++) {\n allPoints[i][0] *= scaleX;\n allPoints[i][1] *= scaleY;\n }\n p = allPoints[0];\n var prevLeft = [-p[0], p[1]];\n var prevRight = [p[0], p[1]];\n var n = 0;\n for (i = cd.length - 1; i > -1; i--) {\n cdi = cd[i];\n if (cdi.hidden) continue;\n n += 1;\n var x = allPoints[n][0];\n var y = allPoints[n][1];\n cdi.TL = [-x, y];\n cdi.TR = [x, y];\n cdi.BL = prevLeft;\n cdi.BR = prevRight;\n cdi.pxmid = getBetween(cdi.TR, cdi.BR);\n prevLeft = cdi.TL;\n prevRight = cdi.TR;\n }\n }\n }\n });\n\n // src/traces/funnelarea/style.js\n var require_style16 = __commonJS({\n \"src/traces/funnelarea/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var styleOne = require_style_one();\n var resizeText = require_uniform_text().resizeText;\n module.exports = function style(gd) {\n var s = gd._fullLayout._funnelarealayer.selectAll(\".trace\");\n resizeText(gd, s, \"funnelarea\");\n s.each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var traceSelection = d3.select(this);\n traceSelection.style({ opacity: trace.opacity });\n traceSelection.selectAll(\"path.surface\").each(function(pt) {\n d3.select(this).call(styleOne, pt, trace, gd);\n });\n });\n };\n }\n });\n\n // src/traces/funnelarea/index.js\n var require_funnelarea = __commonJS({\n \"src/traces/funnelarea/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"funnelarea\",\n basePlotModule: require_base_plot5(),\n categories: [\"pie-like\", \"funnelarea\", \"showLegend\"],\n attributes: require_attributes39(),\n layoutAttributes: require_layout_attributes16(),\n supplyDefaults: require_defaults35(),\n supplyLayoutDefaults: require_layout_defaults15(),\n calc: require_calc20().calc,\n crossTraceCalc: require_calc20().crossTraceCalc,\n plot: require_plot16(),\n style: require_style16(),\n styleOne: require_style_one(),\n meta: {}\n };\n }\n });\n\n // lib/funnelarea.js\n var require_funnelarea2 = __commonJS({\n \"lib/funnelarea.js\"(exports, module) {\n \"use strict\";\n module.exports = require_funnelarea();\n }\n });\n\n // stackgl_modules/index.js\n var require_stackgl_modules = __commonJS({\n \"stackgl_modules/index.js\"(exports, module) {\n (function() {\n var __webpack_modules__ = {\n /***/\n 1964: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = {\n alpha_shape: __webpack_require__2(3502),\n convex_hull: __webpack_require__2(7352),\n delaunay_triangulate: __webpack_require__2(7642),\n gl_cone3d: __webpack_require__2(6405),\n gl_error3d: __webpack_require__2(9165),\n gl_line3d: __webpack_require__2(5714),\n gl_mesh3d: __webpack_require__2(7201),\n gl_plot3d: __webpack_require__2(4100),\n gl_scatter3d: __webpack_require__2(8418),\n gl_streamtube3d: __webpack_require__2(7815),\n gl_surface3d: __webpack_require__2(9499),\n ndarray: __webpack_require__2(9618),\n ndarray_linear_interpolate: __webpack_require__2(4317)\n };\n }\n ),\n /***/\n 4793: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var __webpack_unused_export__;\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || false, o.configurable = true, \"value\" in o && (o.writable = true), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: false }), e;\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n }\n function _toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _callSuper(t, o, e) {\n return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));\n }\n function _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return _assertThisInitialized(t);\n }\n function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n }\n function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n } catch (t4) {\n }\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct2() {\n return !!t;\n })();\n }\n function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function(t4) {\n return t4.__proto__ || Object.getPrototypeOf(t4);\n }, _getPrototypeOf(t);\n }\n function _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: true, configurable: true } }), Object.defineProperty(t, \"prototype\", { writable: false }), e && _setPrototypeOf(t, e);\n }\n function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function(t4, e2) {\n return t4.__proto__ = e2, t4;\n }, _setPrototypeOf(t, e);\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function(o2) {\n return typeof o2;\n } : function(o2) {\n return o2 && \"function\" == typeof Symbol && o2.constructor === Symbol && o2 !== Symbol.prototype ? \"symbol\" : typeof o2;\n }, _typeof(o);\n }\n var base64 = __webpack_require__2(7507);\n var ieee754 = __webpack_require__2(3778);\n var customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") : null;\n exports2.hp = Buffer2;\n __webpack_unused_export__ = SlowBuffer;\n exports2.IS = 50;\n var K_MAX_LENGTH = 2147483647;\n __webpack_unused_export__ = K_MAX_LENGTH;\n Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport();\n if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(\"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\");\n }\n function typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n var proto = {\n foo: function foo() {\n return 42;\n }\n };\n Object.setPrototypeOf(proto, Uint8Array.prototype);\n Object.setPrototypeOf(arr, proto);\n return arr.foo() === 42;\n } catch (e) {\n return false;\n }\n }\n Object.defineProperty(Buffer2.prototype, \"parent\", {\n enumerable: true,\n get: function get() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.buffer;\n }\n });\n Object.defineProperty(Buffer2.prototype, \"offset\", {\n enumerable: true,\n get: function get() {\n if (!Buffer2.isBuffer(this)) return void 0;\n return this.byteOffset;\n }\n });\n function createBuffer(length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n }\n var buf = new Uint8Array(length);\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function Buffer2(arg, encodingOrOffset, length) {\n if (typeof arg === \"number\") {\n if (typeof encodingOrOffset === \"string\") {\n throw new TypeError('The \"string\" argument must be of type string. Received type number');\n }\n return allocUnsafe(arg);\n }\n return from(arg, encodingOrOffset, length);\n }\n Buffer2.poolSize = 8192;\n function from(value, encodingOrOffset, length) {\n if (typeof value === \"string\") {\n return fromString(value, encodingOrOffset);\n }\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value);\n }\n if (value == null) {\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + _typeof(value));\n }\n if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length);\n }\n if (typeof value === \"number\") {\n throw new TypeError('The \"value\" argument must not be of type number. Received type number');\n }\n var valueOf = value.valueOf && value.valueOf();\n if (valueOf != null && valueOf !== value) {\n return Buffer2.from(valueOf, encodingOrOffset, length);\n }\n var b = fromObject(value);\n if (b) return b;\n if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n return Buffer2.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n }\n throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + _typeof(value));\n }\n Buffer2.from = function(value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length);\n };\n Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype);\n Object.setPrototypeOf(Buffer2, Uint8Array);\n function assertSize(size) {\n if (typeof size !== \"number\") {\n throw new TypeError('\"size\" argument must be of type number');\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n }\n }\n function alloc(size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(size);\n }\n if (fill !== void 0) {\n return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n }\n return createBuffer(size);\n }\n Buffer2.alloc = function(size, fill, encoding) {\n return alloc(size, fill, encoding);\n };\n function allocUnsafe(size) {\n assertSize(size);\n return createBuffer(size < 0 ? 0 : checked(size) | 0);\n }\n Buffer2.allocUnsafe = function(size) {\n return allocUnsafe(size);\n };\n Buffer2.allocUnsafeSlow = function(size) {\n return allocUnsafe(size);\n };\n function fromString(string, encoding) {\n if (typeof encoding !== \"string\" || encoding === \"\") {\n encoding = \"utf8\";\n }\n if (!Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n var length = byteLength(string, encoding) | 0;\n var buf = createBuffer(length);\n var actual = buf.write(string, encoding);\n if (actual !== length) {\n buf = buf.slice(0, actual);\n }\n return buf;\n }\n function fromArrayLike(array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n var buf = createBuffer(length);\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255;\n }\n return buf;\n }\n function fromArrayView(arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView);\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n }\n return fromArrayLike(arrayView);\n }\n function fromArrayBuffer(array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds');\n }\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds');\n }\n var buf;\n if (byteOffset === void 0 && length === void 0) {\n buf = new Uint8Array(array);\n } else if (length === void 0) {\n buf = new Uint8Array(array, byteOffset);\n } else {\n buf = new Uint8Array(array, byteOffset, length);\n }\n Object.setPrototypeOf(buf, Buffer2.prototype);\n return buf;\n }\n function fromObject(obj) {\n if (Buffer2.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n var buf = createBuffer(len);\n if (buf.length === 0) {\n return buf;\n }\n obj.copy(buf, 0, 0, len);\n return buf;\n }\n if (obj.length !== void 0) {\n if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n return createBuffer(0);\n }\n return fromArrayLike(obj);\n }\n if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data);\n }\n }\n function checked(length) {\n if (length >= K_MAX_LENGTH) {\n throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n }\n return length | 0;\n }\n function SlowBuffer(length) {\n if (+length != length) {\n length = 0;\n }\n return Buffer2.alloc(+length);\n }\n Buffer2.isBuffer = function isBuffer(b) {\n return b != null && b._isBuffer === true && b !== Buffer2.prototype;\n };\n Buffer2.compare = function compare(a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer2.from(a, a.offset, a.byteLength);\n if (isInstance(b, Uint8Array)) b = Buffer2.from(b, b.offset, b.byteLength);\n if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) {\n throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');\n }\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n Buffer2.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return true;\n default:\n return false;\n }\n };\n Buffer2.concat = function concat(list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n if (list.length === 0) {\n return Buffer2.alloc(0);\n }\n var i;\n if (length === void 0) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n var buffer = Buffer2.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer2.isBuffer(buf)) buf = Buffer2.from(buf);\n buf.copy(buffer, pos);\n } else {\n Uint8Array.prototype.set.call(buffer, buf, pos);\n }\n } else if (!Buffer2.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n } else {\n buf.copy(buffer, pos);\n }\n pos += buf.length;\n }\n return buffer;\n };\n function byteLength(string, encoding) {\n if (Buffer2.isBuffer(string)) {\n return string.length;\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength;\n }\n if (typeof string !== \"string\") {\n throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + _typeof(string));\n }\n var len = string.length;\n var mustMatch = arguments.length > 2 && arguments[2] === true;\n if (!mustMatch && len === 0) return 0;\n var loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return len;\n case \"utf8\":\n case \"utf-8\":\n return utf8ToBytes(string).length;\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return len * 2;\n case \"hex\":\n return len >>> 1;\n case \"base64\":\n return base64ToBytes(string).length;\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length;\n }\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.byteLength = byteLength;\n function slowToString(encoding, start, end) {\n var loweredCase = false;\n if (start === void 0 || start < 0) {\n start = 0;\n }\n if (start > this.length) {\n return \"\";\n }\n if (end === void 0 || end > this.length) {\n end = this.length;\n }\n if (end <= 0) {\n return \"\";\n }\n end >>>= 0;\n start >>>= 0;\n if (end <= start) {\n return \"\";\n }\n if (!encoding) encoding = \"utf8\";\n while (true) {\n switch (encoding) {\n case \"hex\":\n return hexSlice(this, start, end);\n case \"utf8\":\n case \"utf-8\":\n return utf8Slice(this, start, end);\n case \"ascii\":\n return asciiSlice(this, start, end);\n case \"latin1\":\n case \"binary\":\n return latin1Slice(this, start, end);\n case \"base64\":\n return base64Slice(this, start, end);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return utf16leSlice(this, start, end);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (encoding + \"\").toLowerCase();\n loweredCase = true;\n }\n }\n }\n Buffer2.prototype._isBuffer = true;\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n Buffer2.prototype.swap16 = function swap16() {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this;\n };\n Buffer2.prototype.swap32 = function swap32() {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this;\n };\n Buffer2.prototype.swap64 = function swap64() {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this;\n };\n Buffer2.prototype.toString = function toString() {\n var length = this.length;\n if (length === 0) return \"\";\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n Buffer2.prototype.toLocaleString = Buffer2.prototype.toString;\n Buffer2.prototype.equals = function equals(b) {\n if (!Buffer2.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n if (this === b) return true;\n return Buffer2.compare(this, b) === 0;\n };\n Buffer2.prototype.inspect = function inspect() {\n var str = \"\";\n var max = exports2.IS;\n str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n if (this.length > max) str += \" ... \";\n return \"\";\n };\n if (customInspectSymbol) {\n Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect;\n }\n Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer2.from(target, target.offset, target.byteLength);\n }\n if (!Buffer2.isBuffer(target)) {\n throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + _typeof(target));\n }\n if (start === void 0) {\n start = 0;\n }\n if (end === void 0) {\n end = target ? target.length : 0;\n }\n if (thisStart === void 0) {\n thisStart = 0;\n }\n if (thisEnd === void 0) {\n thisEnd = this.length;\n }\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError(\"out of range index\");\n }\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n if (thisStart >= thisEnd) {\n return -1;\n }\n if (start >= end) {\n return 1;\n }\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n if (buffer.length === 0) return -1;\n if (typeof byteOffset === \"string\") {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 2147483647) {\n byteOffset = 2147483647;\n } else if (byteOffset < -2147483648) {\n byteOffset = -2147483648;\n }\n byteOffset = +byteOffset;\n if (numberIsNaN(byteOffset)) {\n byteOffset = dir ? 0 : buffer.length - 1;\n }\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1;\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1;\n }\n if (typeof val === \"string\") {\n val = Buffer2.from(val, encoding);\n }\n if (Buffer2.isBuffer(val)) {\n if (val.length === 0) {\n return -1;\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === \"number\") {\n val = val & 255;\n if (typeof Uint8Array.prototype.indexOf === \"function\") {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n if (encoding !== void 0) {\n encoding = String(encoding).toLowerCase();\n if (encoding === \"ucs2\" || encoding === \"ucs-2\" || encoding === \"utf16le\" || encoding === \"utf-16le\") {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n function read(buf, i2) {\n if (indexSize === 1) {\n return buf[i2];\n } else {\n return buf.readUInt16BE(i2 * indexSize);\n }\n }\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n if (found) return i;\n }\n }\n return -1;\n }\n Buffer2.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n Buffer2.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n var strLen = string.length;\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n var i;\n for (i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (numberIsNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n return i;\n }\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n Buffer2.prototype.write = function write(string, offset, length, encoding) {\n if (offset === void 0) {\n encoding = \"utf8\";\n length = this.length;\n offset = 0;\n } else if (length === void 0 && typeof offset === \"string\") {\n encoding = offset;\n length = this.length;\n offset = 0;\n } else if (isFinite(offset)) {\n offset = offset >>> 0;\n if (isFinite(length)) {\n length = length >>> 0;\n if (encoding === void 0) encoding = \"utf8\";\n } else {\n encoding = length;\n length = void 0;\n }\n } else {\n throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n }\n var remaining = this.length - offset;\n if (length === void 0 || length > remaining) length = remaining;\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError(\"Attempt to write outside buffer bounds\");\n }\n if (!encoding) encoding = \"utf8\";\n var loweredCase = false;\n for (; ; ) {\n switch (encoding) {\n case \"hex\":\n return hexWrite(this, string, offset, length);\n case \"utf8\":\n case \"utf-8\":\n return utf8Write(this, string, offset, length);\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return asciiWrite(this, string, offset, length);\n case \"base64\":\n return base64Write(this, string, offset, length);\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return ucs2Write(this, string, offset, length);\n default:\n if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n encoding = (\"\" + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n Buffer2.prototype.toJSON = function toJSON() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n if (i + bytesPerSequence <= end) {\n var secondByte = void 0, thirdByte = void 0, fourthByte = void 0, tempCodePoint = void 0;\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 128) {\n codePoint = firstByte;\n }\n break;\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 192) === 128) {\n tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n if (tempCodePoint > 127) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\n codePoint = tempCodePoint;\n }\n }\n break;\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n if (codePoint === null) {\n codePoint = 65533;\n bytesPerSequence = 1;\n } else if (codePoint > 65535) {\n codePoint -= 65536;\n res.push(codePoint >>> 10 & 1023 | 55296);\n codePoint = 56320 | codePoint & 1023;\n }\n res.push(codePoint);\n i += bytesPerSequence;\n }\n return decodeCodePointsArray(res);\n }\n var MAX_ARGUMENTS_LENGTH = 4096;\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints);\n }\n var res = \"\";\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n return res;\n }\n function asciiSlice(buf, start, end) {\n var ret = \"\";\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 127);\n }\n return ret;\n }\n function latin1Slice(buf, start, end) {\n var ret = \"\";\n end = Math.min(buf.length, end);\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret;\n }\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = \"\";\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]];\n }\n return out;\n }\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = \"\";\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res;\n }\n Buffer2.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === void 0 ? len : ~~end;\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n if (end < start) end = start;\n var newBuf = this.subarray(start, end);\n Object.setPrototypeOf(newBuf, Buffer2.prototype);\n return newBuf;\n };\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError(\"offset is not uint\");\n if (offset + ext > length) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n checkOffset(offset, byteLength2, this.length);\n }\n var val = this[offset + --byteLength2];\n var mul = 1;\n while (byteLength2 > 0 && (mul *= 256)) {\n val += this[offset + --byteLength2] * mul;\n }\n return val;\n };\n Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n Buffer2.prototype.readUint16LE = Buffer2.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n Buffer2.prototype.readUint16BE = Buffer2.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n };\n Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n Buffer2.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var lo = first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24);\n var hi = this[++offset] + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + last * Math.pow(2, 24);\n return BigInt(lo) + (BigInt(hi) << BigInt(32));\n });\n Buffer2.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var hi = first * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n var lo = this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last;\n return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n });\n Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength2 && (mul *= 256)) {\n val += this[offset + i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) checkOffset(offset, byteLength2, this.length);\n var i = byteLength2;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 256)) {\n val += this[offset + --i] * mul;\n }\n mul *= 128;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n return val;\n };\n Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 128)) return this[offset];\n return (255 - this[offset] + 1) * -1;\n };\n Buffer2.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 32768 ? val | 4294901760 : val;\n };\n Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n Buffer2.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var val = this[offset + 4] + this[offset + 5] * Math.pow(2, 8) + this[offset + 6] * Math.pow(2, 16) + (last << 24);\n return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * Math.pow(2, 8) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 24));\n });\n Buffer2.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n offset = offset >>> 0;\n validateNumber(offset, \"offset\");\n var first = this[offset];\n var last = this[offset + 7];\n if (first === void 0 || last === void 0) {\n boundsError(offset, this.length - 8);\n }\n var val = (first << 24) + // Overflow\n this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + this[++offset];\n return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * Math.pow(2, 24) + this[++offset] * Math.pow(2, 16) + this[++offset] * Math.pow(2, 8) + last);\n });\n Buffer2.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n Buffer2.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n Buffer2.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n Buffer2.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n offset = offset >>> 0;\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer2.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n }\n Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n var mul = 1;\n var i = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n byteLength2 = byteLength2 >>> 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n checkInt(this, value, offset, byteLength2, maxBytes, 0);\n }\n var i = byteLength2 - 1;\n var mul = 1;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n this[offset + i] = value / mul & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n function wrtBigUInt64LE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n var lo = Number(value & BigInt(4294967295));\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n lo = lo >> 8;\n buf[offset++] = lo;\n var hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n hi = hi >> 8;\n buf[offset++] = hi;\n return offset;\n }\n function wrtBigUInt64BE(buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7);\n var lo = Number(value & BigInt(4294967295));\n buf[offset + 7] = lo;\n lo = lo >> 8;\n buf[offset + 6] = lo;\n lo = lo >> 8;\n buf[offset + 5] = lo;\n lo = lo >> 8;\n buf[offset + 4] = lo;\n var hi = Number(value >> BigInt(32) & BigInt(4294967295));\n buf[offset + 3] = hi;\n hi = hi >> 8;\n buf[offset + 2] = hi;\n hi = hi >> 8;\n buf[offset + 1] = hi;\n hi = hi >> 8;\n buf[offset] = hi;\n return offset + 8;\n }\n Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n });\n Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 255;\n while (++i < byteLength2 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength2 - 1);\n checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n }\n var i = byteLength2 - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 255;\n while (--i >= 0 && (mul *= 256)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = (value / mul >> 0) - sub & 255;\n }\n return offset + byteLength2;\n };\n Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n if (value < 0) value = 255 + value + 1;\n this[offset] = value & 255;\n return offset + 1;\n };\n Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n return offset + 2;\n };\n Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n this[offset] = value >>> 8;\n this[offset + 1] = value & 255;\n return offset + 2;\n };\n Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n this[offset] = value & 255;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n return offset + 4;\n };\n Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n if (value < 0) value = 4294967295 + value + 1;\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 255;\n return offset + 4;\n };\n Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value) {\n var offset = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;\n return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n });\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError(\"Index out of range\");\n if (offset < 0) throw new RangeError(\"Index out of range\");\n }\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n value = +value;\n offset = offset >>> 0;\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n };\n Buffer2.prototype.copy = function copy(target, targetStart, start, end) {\n if (!Buffer2.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0;\n if (targetStart < 0) {\n throw new RangeError(\"targetStart out of bounds\");\n }\n if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n if (end < 0) throw new RangeError(\"sourceEnd out of bounds\");\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n var len = end - start;\n if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n this.copyWithin(targetStart, start, end);\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, end), targetStart);\n }\n return len;\n };\n Buffer2.prototype.fill = function fill(val, start, end, encoding) {\n if (typeof val === \"string\") {\n if (typeof start === \"string\") {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === \"string\") {\n encoding = end;\n end = this.length;\n }\n if (encoding !== void 0 && typeof encoding !== \"string\") {\n throw new TypeError(\"encoding must be a string\");\n }\n if (typeof encoding === \"string\" && !Buffer2.isEncoding(encoding)) {\n throw new TypeError(\"Unknown encoding: \" + encoding);\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n val = code;\n }\n }\n } else if (typeof val === \"number\") {\n val = val & 255;\n } else if (typeof val === \"boolean\") {\n val = Number(val);\n }\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError(\"Out of range index\");\n }\n if (end <= start) {\n return this;\n }\n start = start >>> 0;\n end = end === void 0 ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n if (typeof val === \"number\") {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding);\n var len = bytes.length;\n if (len === 0) {\n throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n return this;\n };\n var errors = {};\n function E2(sym, getMessage, Base) {\n errors[sym] = /* @__PURE__ */ function(_Base) {\n function NodeError() {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _callSuper(this, NodeError);\n Object.defineProperty(_this, \"message\", {\n value: getMessage.apply(_this, arguments),\n writable: true,\n configurable: true\n });\n _this.name = \"\".concat(_this.name, \" [\").concat(sym, \"]\");\n _this.stack;\n delete _this.name;\n return _this;\n }\n _inherits(NodeError, _Base);\n return _createClass(NodeError, [{\n key: \"code\",\n get: function get() {\n return sym;\n },\n set: function set(value) {\n Object.defineProperty(this, \"code\", {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n });\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(sym, \"]: \").concat(this.message);\n }\n }]);\n }(Base);\n }\n E2(\"ERR_BUFFER_OUT_OF_BOUNDS\", function(name2) {\n if (name2) {\n return \"\".concat(name2, \" is outside of buffer bounds\");\n }\n return \"Attempt to access memory outside buffer bounds\";\n }, RangeError);\n E2(\"ERR_INVALID_ARG_TYPE\", function(name2, actual) {\n return 'The \"'.concat(name2, '\" argument must be of type number. Received type ').concat(_typeof(actual));\n }, TypeError);\n E2(\"ERR_OUT_OF_RANGE\", function(str, range, input) {\n var msg = 'The value of \"'.concat(str, '\" is out of range.');\n var received = input;\n if (Number.isInteger(input) && Math.abs(input) > Math.pow(2, 32)) {\n received = addNumericalSeparator(String(input));\n } else if (typeof input === \"bigint\") {\n received = String(input);\n if (input > Math.pow(BigInt(2), BigInt(32)) || input < -Math.pow(BigInt(2), BigInt(32))) {\n received = addNumericalSeparator(received);\n }\n received += \"n\";\n }\n msg += \" It must be \".concat(range, \". Received \").concat(received);\n return msg;\n }, RangeError);\n function addNumericalSeparator(val) {\n var res = \"\";\n var i = val.length;\n var start = val[0] === \"-\" ? 1 : 0;\n for (; i >= start + 4; i -= 3) {\n res = \"_\".concat(val.slice(i - 3, i)).concat(res);\n }\n return \"\".concat(val.slice(0, i)).concat(res);\n }\n function checkBounds(buf, offset, byteLength2) {\n validateNumber(offset, \"offset\");\n if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) {\n boundsError(offset, buf.length - (byteLength2 + 1));\n }\n }\n function checkIntBI(value, min, max, buf, offset, byteLength2) {\n if (value > max || value < min) {\n var n = typeof min === \"bigint\" ? \"n\" : \"\";\n var range;\n if (byteLength2 > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = \">= 0\".concat(n, \" and < 2\").concat(n, \" ** \").concat((byteLength2 + 1) * 8).concat(n);\n } else {\n range = \">= -(2\".concat(n, \" ** \").concat((byteLength2 + 1) * 8 - 1).concat(n, \") and < 2 ** \") + \"\".concat((byteLength2 + 1) * 8 - 1).concat(n);\n }\n } else {\n range = \">= \".concat(min).concat(n, \" and <= \").concat(max).concat(n);\n }\n throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n }\n checkBounds(buf, offset, byteLength2);\n }\n function validateNumber(value, name2) {\n if (typeof value !== \"number\") {\n throw new errors.ERR_INVALID_ARG_TYPE(name2, \"number\", value);\n }\n }\n function boundsError(value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type);\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", \"an integer\", value);\n }\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n }\n throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", \">= \".concat(type ? 1 : 0, \" and <= \").concat(length), value);\n }\n var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n function base64clean(str) {\n str = str.split(\"=\")[0];\n str = str.trim().replace(INVALID_BASE64_RE, \"\");\n if (str.length < 2) return \"\";\n while (str.length % 4 !== 0) {\n str = str + \"=\";\n }\n return str;\n }\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n if (codePoint > 55295 && codePoint < 57344) {\n if (!leadSurrogate) {\n if (codePoint > 56319) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n } else if (i + 1 === length) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n continue;\n }\n leadSurrogate = codePoint;\n continue;\n }\n if (codePoint < 56320) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n leadSurrogate = codePoint;\n continue;\n }\n codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n } else if (leadSurrogate) {\n if ((units -= 3) > -1) bytes.push(239, 191, 189);\n }\n leadSurrogate = null;\n if (codePoint < 128) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 2048) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 6 | 192, codePoint & 63 | 128);\n } else if (codePoint < 65536) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 12 | 224, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else if (codePoint < 1114112) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 18 | 240, codePoint >> 12 & 63 | 128, codePoint >> 6 & 63 | 128, codePoint & 63 | 128);\n } else {\n throw new Error(\"Invalid code point\");\n }\n }\n return bytes;\n }\n function asciiToBytes(str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n byteArray.push(str.charCodeAt(i) & 255);\n }\n return byteArray;\n }\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n return byteArray;\n }\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n function blitBuffer(src, dst, offset, length) {\n var i;\n for (i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n return i;\n }\n function isInstance(obj, type) {\n return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n }\n function numberIsNaN(obj) {\n return obj !== obj;\n }\n var hexSliceLookupTable = function() {\n var alphabet = \"0123456789abcdef\";\n var table = new Array(256);\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16;\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j];\n }\n }\n return table;\n }();\n function defineBigIntMethod(fn) {\n return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n }\n function BufferBigIntNotDefined() {\n throw new Error(\"BigInt not supported\");\n }\n }\n ),\n /***/\n 9216: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = isMobile;\n module2.exports.isMobile = isMobile;\n module2.exports[\"default\"] = isMobile;\n var mobileRE = /(android|bb\\d+|meego).+mobile|armv7l|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i;\n var notMobileRE = /CrOS/;\n var tabletRE = /android|ipad|playbook|silk/i;\n function isMobile(opts) {\n if (!opts) opts = {};\n var ua = opts.ua;\n if (!ua && typeof navigator !== \"undefined\") ua = navigator.userAgent;\n if (ua && ua.headers && typeof ua.headers[\"user-agent\"] === \"string\") {\n ua = ua.headers[\"user-agent\"];\n }\n if (typeof ua !== \"string\") return false;\n var result = mobileRE.test(ua) && !notMobileRE.test(ua) || !!opts.tablet && tabletRE.test(ua);\n if (!result && opts.tablet && opts.featureDetect && navigator && navigator.maxTouchPoints > 1 && ua.indexOf(\"Macintosh\") !== -1 && ua.indexOf(\"Safari\") !== -1) {\n result = true;\n }\n return result;\n }\n }\n ),\n /***/\n 6296: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createViewController;\n var createTurntable = __webpack_require__2(7261);\n var createOrbit = __webpack_require__2(9977);\n var createMatrix = __webpack_require__2(1811);\n function ViewController(controllers, mode) {\n this._controllerNames = Object.keys(controllers);\n this._controllerList = this._controllerNames.map(function(n) {\n return controllers[n];\n });\n this._mode = mode;\n this._active = controllers[mode];\n if (!this._active) {\n this._mode = \"turntable\";\n this._active = controllers.turntable;\n }\n this.modes = this._controllerNames;\n this.computedMatrix = this._active.computedMatrix;\n this.computedEye = this._active.computedEye;\n this.computedUp = this._active.computedUp;\n this.computedCenter = this._active.computedCenter;\n this.computedRadius = this._active.computedRadius;\n }\n var proto = ViewController.prototype;\n proto.flush = function(a0) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].flush(a0);\n }\n };\n proto.idle = function(a0) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].idle(a0);\n }\n };\n proto.lookAt = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].lookAt(a0, a1, a2, a3);\n }\n };\n proto.rotate = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].rotate(a0, a1, a2, a3);\n }\n };\n proto.pan = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].pan(a0, a1, a2, a3);\n }\n };\n proto.translate = function(a0, a1, a2, a3) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].translate(a0, a1, a2, a3);\n }\n };\n proto.setMatrix = function(a0, a1) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].setMatrix(a0, a1);\n }\n };\n proto.setDistanceLimits = function(a0, a1) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].setDistanceLimits(a0, a1);\n }\n };\n proto.setDistance = function(a0, a1) {\n var cc = this._controllerList;\n for (var i = 0; i < cc.length; ++i) {\n cc[i].setDistance(a0, a1);\n }\n };\n proto.recalcMatrix = function(t) {\n this._active.recalcMatrix(t);\n };\n proto.getDistance = function(t) {\n return this._active.getDistance(t);\n };\n proto.getDistanceLimits = function(out) {\n return this._active.getDistanceLimits(out);\n };\n proto.lastT = function() {\n return this._active.lastT();\n };\n proto.setMode = function(mode) {\n if (mode === this._mode) {\n return;\n }\n var idx = this._controllerNames.indexOf(mode);\n if (idx < 0) {\n return;\n }\n var prev = this._active;\n var next = this._controllerList[idx];\n var lastT = Math.max(prev.lastT(), next.lastT());\n prev.recalcMatrix(lastT);\n next.setMatrix(lastT, prev.computedMatrix);\n this._active = next;\n this._mode = mode;\n this.computedMatrix = this._active.computedMatrix;\n this.computedEye = this._active.computedEye;\n this.computedUp = this._active.computedUp;\n this.computedCenter = this._active.computedCenter;\n this.computedRadius = this._active.computedRadius;\n };\n proto.getMode = function() {\n return this._mode;\n };\n function createViewController(options) {\n options = options || {};\n var eye = options.eye || [0, 0, 1];\n var center = options.center || [0, 0, 0];\n var up = options.up || [0, 1, 0];\n var limits = options.distanceLimits || [0, Infinity];\n var mode = options.mode || \"turntable\";\n var turntable = createTurntable();\n var orbit = createOrbit();\n var matrix = createMatrix();\n turntable.setDistanceLimits(limits[0], limits[1]);\n turntable.lookAt(0, eye, center, up);\n orbit.setDistanceLimits(limits[0], limits[1]);\n orbit.lookAt(0, eye, center, up);\n matrix.setDistanceLimits(limits[0], limits[1]);\n matrix.lookAt(0, eye, center, up);\n return new ViewController({\n turntable,\n orbit,\n matrix\n }, mode);\n }\n }\n ),\n /***/\n 7169: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var weakMap = typeof WeakMap === \"undefined\" ? __webpack_require__2(1538) : WeakMap;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var TriangleCache = new weakMap();\n function createABigTriangle(gl2) {\n var triangleVAO = TriangleCache.get(gl2);\n var handle = triangleVAO && (triangleVAO._triangleBuffer.handle || triangleVAO._triangleBuffer.buffer);\n if (!handle || !gl2.isBuffer(handle)) {\n var buf = createBuffer(gl2, new Float32Array([-1, -1, -1, 4, 4, -1]));\n triangleVAO = createVAO(gl2, [\n {\n buffer: buf,\n type: gl2.FLOAT,\n size: 2\n }\n ]);\n triangleVAO._triangleBuffer = buf;\n TriangleCache.set(gl2, triangleVAO);\n }\n triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, 3);\n triangleVAO.unbind();\n }\n module2.exports = createABigTriangle;\n }\n ),\n /***/\n 1085: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var padLeft = __webpack_require__2(1371);\n module2.exports = addLineNumbers;\n function addLineNumbers(string, start, delim) {\n start = typeof start === \"number\" ? start : 1;\n delim = delim || \": \";\n var lines = string.split(/\\r?\\n/);\n var totalDigits = String(lines.length + start - 1).length;\n return lines.map(function(line, i) {\n var c = i + start;\n var digits = String(c).length;\n var prefix = padLeft(c, totalDigits - digits);\n return prefix + delim + line;\n }).join(\"\\n\");\n }\n }\n ),\n /***/\n 3952: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = affineHull;\n var orient = __webpack_require__2(3250);\n function linearlyIndependent(points, d) {\n var nhull = new Array(d + 1);\n for (var i = 0; i < points.length; ++i) {\n nhull[i] = points[i];\n }\n for (var i = 0; i <= points.length; ++i) {\n for (var j = points.length; j <= d; ++j) {\n var x = new Array(d);\n for (var k = 0; k < d; ++k) {\n x[k] = Math.pow(j + 1 - i, k);\n }\n nhull[j] = x;\n }\n var o = orient.apply(void 0, nhull);\n if (o) {\n return true;\n }\n }\n return false;\n }\n function affineHull(points) {\n var n = points.length;\n if (n === 0) {\n return [];\n }\n if (n === 1) {\n return [0];\n }\n var d = points[0].length;\n var frame = [points[0]];\n var index = [0];\n for (var i = 1; i < n; ++i) {\n frame.push(points[i]);\n if (!linearlyIndependent(frame, d)) {\n frame.pop();\n continue;\n }\n index.push(i);\n if (index.length === d + 1) {\n return index;\n }\n }\n return index;\n }\n }\n ),\n /***/\n 5995: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = alphaComplex;\n var delaunay = __webpack_require__2(7642);\n var circumradius = __webpack_require__2(6037);\n function alphaComplex(alpha, points) {\n return delaunay(points).filter(function(cell) {\n var simplex = new Array(cell.length);\n for (var i = 0; i < cell.length; ++i) {\n simplex[i] = points[cell[i]];\n }\n return circumradius(simplex) * alpha < 1;\n });\n }\n }\n ),\n /***/\n 3502: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = alphaShape;\n var ac = __webpack_require__2(5995);\n var bnd = __webpack_require__2(9127);\n function alphaShape(alpha, points) {\n return bnd(ac(alpha, points));\n }\n }\n ),\n /***/\n 6468: (\n /***/\n function(module2) {\n module2.exports = function _atob(str) {\n return atob(str);\n };\n }\n ),\n /***/\n 2642: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = barycentric;\n var solve = __webpack_require__2(727);\n function reduce(x) {\n var r = 0;\n for (var i = 0; i < x.length; ++i) {\n r += x[i];\n }\n return r;\n }\n function barycentric(simplex, point) {\n var d = point.length;\n var A2 = new Array(d + 1);\n for (var i = 0; i < d; ++i) {\n var row = new Array(d + 1);\n for (var j = 0; j <= d; ++j) {\n row[j] = simplex[j][i];\n }\n A2[i] = row;\n }\n A2[d] = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n A2[d][i] = 1;\n }\n var b = new Array(d + 1);\n for (var i = 0; i < d; ++i) {\n b[i] = point[i];\n }\n b[d] = 1;\n var x = solve(A2, b);\n var w = reduce(x[d + 1]);\n if (w === 0) {\n w = 1;\n }\n var y = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n y[i] = reduce(x[i]) / w;\n }\n return y;\n }\n }\n ),\n /***/\n 7507: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n exports2.byteLength = byteLength;\n exports2.toByteArray = toByteArray;\n exports2.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n revLookup[\"-\".charCodeAt(0)] = 62;\n revLookup[\"_\".charCodeAt(0)] = 63;\n function getLens(b64) {\n var len2 = b64.length;\n if (len2 % 4 > 0) {\n throw new Error(\"Invalid string. Length must be a multiple of 4\");\n }\n var validLen = b64.indexOf(\"=\");\n if (validLen === -1) validLen = len2;\n var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n }\n function byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n }\n function toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0;\n var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i2;\n for (i2 = 0; i2 < len2; i2 += 4) {\n tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n arr[curByte++] = tmp >> 16 & 255;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n arr[curByte++] = tmp & 255;\n }\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 255;\n arr[curByte++] = tmp & 255;\n }\n return arr;\n }\n function tripletToBase64(num) {\n return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n }\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n for (var i2 = start; i2 < end; i2 += 3) {\n tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n output.push(tripletToBase64(tmp));\n }\n return output.join(\"\");\n }\n function fromByteArray(uint8) {\n var tmp;\n var len2 = uint8.length;\n var extraBytes = len2 % 3;\n var parts = [];\n var maxChunkLength = 16383;\n for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n }\n if (extraBytes === 1) {\n tmp = uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\"\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n parts.push(\n lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\"\n );\n }\n return parts.join(\"\");\n }\n }\n ),\n /***/\n 3865: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = add;\n function add(a, b) {\n return rationalize(\n a[0].mul(b[1]).add(b[0].mul(a[1])),\n a[1].mul(b[1])\n );\n }\n }\n ),\n /***/\n 1318: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = cmp;\n function cmp(a, b) {\n return a[0].mul(b[1]).cmp(b[0].mul(a[1]));\n }\n }\n ),\n /***/\n 8697: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = div;\n function div(a, b) {\n return rationalize(a[0].mul(b[1]), a[1].mul(b[0]));\n }\n }\n ),\n /***/\n 7842: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isRat = __webpack_require__2(6330);\n var isBN = __webpack_require__2(1533);\n var num2bn = __webpack_require__2(2651);\n var str2bn = __webpack_require__2(6768);\n var rationalize = __webpack_require__2(869);\n var div = __webpack_require__2(8697);\n module2.exports = makeRational;\n function makeRational(numer, denom) {\n if (isRat(numer)) {\n if (denom) {\n return div(numer, makeRational(denom));\n }\n return [numer[0].clone(), numer[1].clone()];\n }\n var shift = 0;\n var a, b;\n if (isBN(numer)) {\n a = numer.clone();\n } else if (typeof numer === \"string\") {\n a = str2bn(numer);\n } else if (numer === 0) {\n return [num2bn(0), num2bn(1)];\n } else if (numer === Math.floor(numer)) {\n a = num2bn(numer);\n } else {\n while (numer !== Math.floor(numer)) {\n numer = numer * Math.pow(2, 256);\n shift -= 256;\n }\n a = num2bn(numer);\n }\n if (isRat(denom)) {\n a.mul(denom[1]);\n b = denom[0].clone();\n } else if (isBN(denom)) {\n b = denom.clone();\n } else if (typeof denom === \"string\") {\n b = str2bn(denom);\n } else if (!denom) {\n b = num2bn(1);\n } else if (denom === Math.floor(denom)) {\n b = num2bn(denom);\n } else {\n while (denom !== Math.floor(denom)) {\n denom = denom * Math.pow(2, 256);\n shift += 256;\n }\n b = num2bn(denom);\n }\n if (shift > 0) {\n a = a.ushln(shift);\n } else if (shift < 0) {\n b = b.ushln(-shift);\n }\n return rationalize(a, b);\n }\n }\n ),\n /***/\n 6330: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isBN = __webpack_require__2(1533);\n module2.exports = isRat;\n function isRat(x) {\n return Array.isArray(x) && x.length === 2 && isBN(x[0]) && isBN(x[1]);\n }\n }\n ),\n /***/\n 5716: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n module2.exports = sign;\n function sign(x) {\n return x.cmp(new BN(0));\n }\n }\n ),\n /***/\n 1369: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var sign = __webpack_require__2(5716);\n module2.exports = bn2num;\n function bn2num(b) {\n var l = b.length;\n var words = b.words;\n var out = 0;\n if (l === 1) {\n out = words[0];\n } else if (l === 2) {\n out = words[0] + words[1] * 67108864;\n } else {\n for (var i = 0; i < l; i++) {\n var w = words[i];\n out += w * Math.pow(67108864, i);\n }\n }\n return sign(b) * out;\n }\n }\n ),\n /***/\n 4025: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var db = __webpack_require__2(2361);\n var ctz = __webpack_require__2(8828).countTrailingZeros;\n module2.exports = ctzNumber;\n function ctzNumber(x) {\n var l = ctz(db.lo(x));\n if (l < 32) {\n return l;\n }\n var h = ctz(db.hi(x));\n if (h > 20) {\n return 52;\n }\n return h + 32;\n }\n }\n ),\n /***/\n 1533: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n module2.exports = isBN;\n function isBN(x) {\n return x && typeof x === \"object\" && Boolean(x.words);\n }\n }\n ),\n /***/\n 2651: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n var db = __webpack_require__2(2361);\n module2.exports = num2bn;\n function num2bn(x) {\n var e = db.exponent(x);\n if (e < 52) {\n return new BN(x);\n } else {\n return new BN(x * Math.pow(2, 52 - e)).ushln(e - 52);\n }\n }\n }\n ),\n /***/\n 869: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var num2bn = __webpack_require__2(2651);\n var sign = __webpack_require__2(5716);\n module2.exports = rationalize;\n function rationalize(numer, denom) {\n var snumer = sign(numer);\n var sdenom = sign(denom);\n if (snumer === 0) {\n return [num2bn(0), num2bn(1)];\n }\n if (sdenom === 0) {\n return [num2bn(0), num2bn(0)];\n }\n if (sdenom < 0) {\n numer = numer.neg();\n denom = denom.neg();\n }\n var d = numer.gcd(denom);\n if (d.cmpn(1)) {\n return [numer.div(d), denom.div(d)];\n }\n return [numer, denom];\n }\n }\n ),\n /***/\n 6768: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var BN = __webpack_require__2(6859);\n module2.exports = str2BN;\n function str2BN(x) {\n return new BN(x);\n }\n }\n ),\n /***/\n 6504: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = mul;\n function mul(a, b) {\n return rationalize(a[0].mul(b[0]), a[1].mul(b[1]));\n }\n }\n ),\n /***/\n 7721: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bnsign = __webpack_require__2(5716);\n module2.exports = sign;\n function sign(x) {\n return bnsign(x[0]) * bnsign(x[1]);\n }\n }\n ),\n /***/\n 5572: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rationalize = __webpack_require__2(869);\n module2.exports = sub;\n function sub(a, b) {\n return rationalize(a[0].mul(b[1]).sub(a[1].mul(b[0])), a[1].mul(b[1]));\n }\n }\n ),\n /***/\n 946: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bn2num = __webpack_require__2(1369);\n var ctz = __webpack_require__2(4025);\n module2.exports = roundRat;\n function roundRat(f) {\n var a = f[0];\n var b = f[1];\n if (a.cmpn(0) === 0) {\n return 0;\n }\n var h = a.abs().divmod(b.abs());\n var iv = h.div;\n var x = bn2num(iv);\n var ir = h.mod;\n var sgn = a.negative !== b.negative ? -1 : 1;\n if (ir.cmpn(0) === 0) {\n return sgn * x;\n }\n if (x) {\n var s = ctz(x) + 4;\n var y = bn2num(ir.ushln(s).divRound(b));\n return sgn * (x + y * Math.pow(2, -s));\n } else {\n var ybits = b.bitLength() - ir.bitLength() + 53;\n var y = bn2num(ir.ushln(ybits).divRound(b));\n if (ybits < 1023) {\n return sgn * y * Math.pow(2, -ybits);\n }\n y *= Math.pow(2, -1023);\n return sgn * y * Math.pow(2, 1023 - ybits);\n }\n }\n }\n ),\n /***/\n 2478: (\n /***/\n function(module2) {\n \"use strict\";\n function ge(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n ;\n function gt(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n ;\n function lt(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n ;\n function le(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n ;\n function eq(a, y, c, l, h) {\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p === 0) {\n return m;\n }\n if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n }\n ;\n function norm(a, y, c, l, h, f) {\n if (typeof c === \"function\") {\n return f(a, y, c, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0);\n }\n return f(a, y, void 0, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0);\n }\n module2.exports = {\n ge: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, ge);\n },\n gt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, gt);\n },\n lt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, lt);\n },\n le: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, le);\n },\n eq: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, eq);\n }\n };\n }\n ),\n /***/\n 8828: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n \"use restrict\";\n var INT_BITS = 32;\n exports2.INT_BITS = INT_BITS;\n exports2.INT_MAX = 2147483647;\n exports2.INT_MIN = -1 << INT_BITS - 1;\n exports2.sign = function(v) {\n return (v > 0) - (v < 0);\n };\n exports2.abs = function(v) {\n var mask = v >> INT_BITS - 1;\n return (v ^ mask) - mask;\n };\n exports2.min = function(x, y) {\n return y ^ (x ^ y) & -(x < y);\n };\n exports2.max = function(x, y) {\n return x ^ (x ^ y) & -(x < y);\n };\n exports2.isPow2 = function(v) {\n return !(v & v - 1) && !!v;\n };\n exports2.log2 = function(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n };\n exports2.log10 = function(v) {\n return v >= 1e9 ? 9 : v >= 1e8 ? 8 : v >= 1e7 ? 7 : v >= 1e6 ? 6 : v >= 1e5 ? 5 : v >= 1e4 ? 4 : v >= 1e3 ? 3 : v >= 100 ? 2 : v >= 10 ? 1 : 0;\n };\n exports2.popCount = function(v) {\n v = v - (v >>> 1 & 1431655765);\n v = (v & 858993459) + (v >>> 2 & 858993459);\n return (v + (v >>> 4) & 252645135) * 16843009 >>> 24;\n };\n function countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 65535) c -= 16;\n if (v & 16711935) c -= 8;\n if (v & 252645135) c -= 4;\n if (v & 858993459) c -= 2;\n if (v & 1431655765) c -= 1;\n return c;\n }\n exports2.countTrailingZeros = countTrailingZeros;\n exports2.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n };\n exports2.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v >>> 1);\n };\n exports2.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 15;\n return 27030 >>> v & 1;\n };\n var REVERSE_TABLE = new Array(256);\n (function(tab) {\n for (var i = 0; i < 256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = r << s & 255;\n }\n })(REVERSE_TABLE);\n exports2.reverse = function(v) {\n return REVERSE_TABLE[v & 255] << 24 | REVERSE_TABLE[v >>> 8 & 255] << 16 | REVERSE_TABLE[v >>> 16 & 255] << 8 | REVERSE_TABLE[v >>> 24 & 255];\n };\n exports2.interleave2 = function(x, y) {\n x &= 65535;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y &= 65535;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n };\n exports2.deinterleave2 = function(v, n) {\n v = v >>> n & 1431655765;\n v = (v | v >>> 1) & 858993459;\n v = (v | v >>> 2) & 252645135;\n v = (v | v >>> 4) & 16711935;\n v = (v | v >>> 16) & 65535;\n return v << 16 >> 16;\n };\n exports2.interleave3 = function(x, y, z) {\n x &= 1023;\n x = (x | x << 16) & 4278190335;\n x = (x | x << 8) & 251719695;\n x = (x | x << 4) & 3272356035;\n x = (x | x << 2) & 1227133513;\n y &= 1023;\n y = (y | y << 16) & 4278190335;\n y = (y | y << 8) & 251719695;\n y = (y | y << 4) & 3272356035;\n y = (y | y << 2) & 1227133513;\n x |= y << 1;\n z &= 1023;\n z = (z | z << 16) & 4278190335;\n z = (z | z << 8) & 251719695;\n z = (z | z << 4) & 3272356035;\n z = (z | z << 2) & 1227133513;\n return x | z << 2;\n };\n exports2.deinterleave3 = function(v, n) {\n v = v >>> n & 1227133513;\n v = (v | v >>> 2) & 3272356035;\n v = (v | v >>> 4) & 251719695;\n v = (v | v >>> 8) & 4278190335;\n v = (v | v >>> 16) & 1023;\n return v << 22 >> 22;\n };\n exports2.nextCombination = function(v) {\n var t = v | v - 1;\n return t + 1 | (~t & -~t) - 1 >>> countTrailingZeros(v) + 1;\n };\n }\n ),\n /***/\n 6859: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2 = __webpack_require__2.nmd(module2);\n (function(module3, exports2) {\n \"use strict\";\n function assert(val, msg) {\n if (!val) throw new Error(msg || \"Assertion failed\");\n }\n function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function() {\n };\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n function BN(number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n this.negative = 0;\n this.words = null;\n this.length = 0;\n this.red = null;\n if (number !== null) {\n if (base === \"le\" || base === \"be\") {\n endian = base;\n base = 10;\n }\n this._init(number || 0, base || 10, endian || \"be\");\n }\n }\n if (typeof module3 === \"object\") {\n module3.exports = BN;\n } else {\n exports2.BN = BN;\n }\n BN.BN = BN;\n BN.wordSize = 26;\n var Buffer2;\n try {\n if (typeof window !== \"undefined\" && typeof window.Buffer !== \"undefined\") {\n Buffer2 = window.Buffer;\n } else {\n Buffer2 = __webpack_require__2(7790).Buffer;\n }\n } catch (e) {\n }\n BN.isBN = function isBN(num) {\n if (num instanceof BN) {\n return true;\n }\n return num !== null && typeof num === \"object\" && num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n BN.max = function max(left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n BN.min = function min(left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n BN.prototype._init = function init(number, base, endian) {\n if (typeof number === \"number\") {\n return this._initNumber(number, base, endian);\n }\n if (typeof number === \"object\") {\n return this._initArray(number, base, endian);\n }\n if (base === \"hex\") {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n number = number.toString().replace(/\\s+/g, \"\");\n var start = 0;\n if (number[0] === \"-\") {\n start++;\n this.negative = 1;\n }\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === \"le\") {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n BN.prototype._initNumber = function _initNumber(number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 67108864) {\n this.words = [number & 67108863];\n this.length = 1;\n } else if (number < 4503599627370496) {\n this.words = [\n number & 67108863,\n number / 67108864 & 67108863\n ];\n this.length = 2;\n } else {\n assert(number < 9007199254740992);\n this.words = [\n number & 67108863,\n number / 67108864 & 67108863,\n 1\n ];\n this.length = 3;\n }\n if (endian !== \"le\") return;\n this._initArray(this.toArray(), base, endian);\n };\n BN.prototype._initArray = function _initArray(number, base, endian) {\n assert(typeof number.length === \"number\");\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n var j, w;\n var off = 0;\n if (endian === \"be\") {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | number[i - 1] << 8 | number[i - 2] << 16;\n this.words[j] |= w << off & 67108863;\n this.words[j + 1] = w >>> 26 - off & 67108863;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === \"le\") {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | number[i + 1] << 8 | number[i + 2] << 16;\n this.words[j] |= w << off & 67108863;\n this.words[j + 1] = w >>> 26 - off & 67108863;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n function parseHex4Bits(string, index) {\n var c = string.charCodeAt(index);\n if (c >= 65 && c <= 70) {\n return c - 55;\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n return c - 48 & 15;\n }\n }\n function parseHexByte(string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n BN.prototype._parseHex = function _parseHex(number, start, endian) {\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n var off = 0;\n var j = 0;\n var w;\n if (endian === \"be\") {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 67108863;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 67108863;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n this.strip();\n };\n function parseBase(str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n r *= mul;\n if (c >= 49) {\n r += c - 49 + 10;\n } else if (c >= 17) {\n r += c - 17 + 10;\n } else {\n r += c;\n }\n }\n return r;\n }\n BN.prototype._parseBase = function _parseBase(number, base, start) {\n this.words = [0];\n this.length = 1;\n for (var limbLen = 0, limbPow = 1; limbPow <= 67108863; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = limbPow / base | 0;\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n this.imuln(limbPow);\n if (this.words[0] + word < 67108864) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n this.imuln(pow);\n if (this.words[0] + word < 67108864) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n this.strip();\n };\n BN.prototype.copy = function copy(dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n BN.prototype.clone = function clone() {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n BN.prototype._expand = function _expand(size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n BN.prototype.strip = function strip() {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n BN.prototype._normSign = function _normSign() {\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n BN.prototype.inspect = function inspect() {\n return (this.red ? \"\";\n };\n var zeros = [\n \"\",\n \"0\",\n \"00\",\n \"000\",\n \"0000\",\n \"00000\",\n \"000000\",\n \"0000000\",\n \"00000000\",\n \"000000000\",\n \"0000000000\",\n \"00000000000\",\n \"000000000000\",\n \"0000000000000\",\n \"00000000000000\",\n \"000000000000000\",\n \"0000000000000000\",\n \"00000000000000000\",\n \"000000000000000000\",\n \"0000000000000000000\",\n \"00000000000000000000\",\n \"000000000000000000000\",\n \"0000000000000000000000\",\n \"00000000000000000000000\",\n \"000000000000000000000000\",\n \"0000000000000000000000000\"\n ];\n var groupSizes = [\n 0,\n 0,\n 25,\n 16,\n 12,\n 11,\n 10,\n 9,\n 8,\n 8,\n 7,\n 7,\n 7,\n 7,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 6,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5,\n 5\n ];\n var groupBases = [\n 0,\n 0,\n 33554432,\n 43046721,\n 16777216,\n 48828125,\n 60466176,\n 40353607,\n 16777216,\n 43046721,\n 1e7,\n 19487171,\n 35831808,\n 62748517,\n 7529536,\n 11390625,\n 16777216,\n 24137569,\n 34012224,\n 47045881,\n 64e6,\n 4084101,\n 5153632,\n 6436343,\n 7962624,\n 9765625,\n 11881376,\n 14348907,\n 17210368,\n 20511149,\n 243e5,\n 28629151,\n 33554432,\n 39135393,\n 45435424,\n 52521875,\n 60466176\n ];\n BN.prototype.toString = function toString(base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n var out;\n if (base === 16 || base === \"hex\") {\n out = \"\";\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = ((w << off | carry) & 16777215).toString(16);\n carry = w >>> 24 - off & 16777215;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = \"0\" + out;\n }\n if (this.negative !== 0) {\n out = \"-\" + out;\n }\n return out;\n }\n if (base === (base | 0) && base >= 2 && base <= 36) {\n var groupSize = groupSizes[base];\n var groupBase = groupBases[base];\n out = \"\";\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = \"0\" + out;\n }\n while (out.length % padding !== 0) {\n out = \"0\" + out;\n }\n if (this.negative !== 0) {\n out = \"-\" + out;\n }\n return out;\n }\n assert(false, \"Base should be between 2 and 36\");\n };\n BN.prototype.toNumber = function toNumber() {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 67108864;\n } else if (this.length === 3 && this.words[2] === 1) {\n ret += 4503599627370496 + this.words[1] * 67108864;\n } else if (this.length > 2) {\n assert(false, \"Number can only safely store up to 53 bits\");\n }\n return this.negative !== 0 ? -ret : ret;\n };\n BN.prototype.toJSON = function toJSON() {\n return this.toString(16);\n };\n BN.prototype.toBuffer = function toBuffer(endian, length) {\n assert(typeof Buffer2 !== \"undefined\");\n return this.toArrayLike(Buffer2, endian, length);\n };\n BN.prototype.toArray = function toArray(endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n BN.prototype.toArrayLike = function toArrayLike(ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, \"byte array longer than desired length\");\n assert(reqLength > 0, \"Requested array length <= 0\");\n this.strip();\n var littleEndian = endian === \"le\";\n var res = new ArrayType(reqLength);\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(255);\n q.iushrn(8);\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(255);\n q.iushrn(8);\n res[i] = b;\n }\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n return res;\n };\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits(w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits(w) {\n var t = w;\n var r = 0;\n if (t >= 4096) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 64) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 2) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n BN.prototype._zeroBits = function _zeroBits(w) {\n if (w === 0) return 26;\n var t = w;\n var r = 0;\n if ((t & 8191) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 127) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 15) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 1) === 0) {\n r++;\n }\n return r;\n };\n BN.prototype.bitLength = function bitLength() {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n function toBitArray(num) {\n var w = new Array(num.bitLength());\n for (var bit = 0; bit < w.length; bit++) {\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n w[bit] = (num.words[off] & 1 << wbit) >>> wbit;\n }\n return w;\n }\n BN.prototype.zeroBits = function zeroBits() {\n if (this.isZero()) return 0;\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n BN.prototype.byteLength = function byteLength() {\n return Math.ceil(this.bitLength() / 8);\n };\n BN.prototype.toTwos = function toTwos(width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n BN.prototype.fromTwos = function fromTwos(width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n BN.prototype.isNeg = function isNeg() {\n return this.negative !== 0;\n };\n BN.prototype.neg = function neg() {\n return this.clone().ineg();\n };\n BN.prototype.ineg = function ineg() {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n return this;\n };\n BN.prototype.iuor = function iuor(num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n return this.strip();\n };\n BN.prototype.ior = function ior(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n BN.prototype.or = function or(num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n BN.prototype.uor = function uor(num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n BN.prototype.iuand = function iuand(num) {\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n this.length = b.length;\n return this.strip();\n };\n BN.prototype.iand = function iand(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n BN.prototype.and = function and(num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n BN.prototype.uand = function uand(num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n BN.prototype.iuxor = function iuxor(num) {\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n this.length = a.length;\n return this.strip();\n };\n BN.prototype.ixor = function ixor(num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n BN.prototype.xor = function xor(num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n BN.prototype.uxor = function uxor(num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n BN.prototype.inotn = function inotn(width) {\n assert(typeof width === \"number\" && width >= 0);\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n this._expand(bytesNeeded);\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 67108863;\n }\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & 67108863 >> 26 - bitsLeft;\n }\n return this.strip();\n };\n BN.prototype.notn = function notn(width) {\n return this.clone().inotn(width);\n };\n BN.prototype.setn = function setn(bit, val) {\n assert(typeof bit === \"number\" && bit >= 0);\n var off = bit / 26 | 0;\n var wbit = bit % 26;\n this._expand(off + 1);\n if (val) {\n this.words[off] = this.words[off] | 1 << wbit;\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n return this.strip();\n };\n BN.prototype.iadd = function iadd(num) {\n var r;\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 67108863;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 67108863;\n carry = r >>> 26;\n }\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n return this;\n };\n BN.prototype.add = function add(num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n if (this.length > num.length) return this.clone().iadd(num);\n return num.clone().iadd(this);\n };\n BN.prototype.isub = function isub(num) {\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n var cmp = this.cmp(num);\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 67108863;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 67108863;\n }\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n this.length = Math.max(this.length, i);\n if (a !== this) {\n this.negative = 1;\n }\n return this.strip();\n };\n BN.prototype.sub = function sub(num) {\n return this.clone().isub(num);\n };\n function smallMulTo(self2, num, out) {\n out.negative = num.negative ^ self2.negative;\n var len = self2.length + num.length | 0;\n out.length = len;\n len = len - 1 | 0;\n var a = self2.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n var lo = r & 67108863;\n var carry = r / 67108864 | 0;\n out.words[0] = lo;\n for (var k = 1; k < len; k++) {\n var ncarry = carry >>> 26;\n var rword = carry & 67108863;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {\n var i = k - j | 0;\n a = self2.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += r / 67108864 | 0;\n rword = r & 67108863;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n return out.strip();\n }\n var comb10MulTo = function comb10MulTo2(self2, num, out) {\n var a = self2.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 8191;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 8191;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 8191;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 8191;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 8191;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 8191;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 8191;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 8191;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 8191;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 8191;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 8191;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 8191;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 8191;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 8191;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 8191;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 8191;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 8191;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 8191;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 8191;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 8191;\n var bh9 = b9 >>> 13;\n out.negative = self2.negative ^ num.negative;\n out.length = 19;\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = mid + Math.imul(ah0, bl0) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w0 >>> 26) | 0;\n w0 &= 67108863;\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = mid + Math.imul(ah1, bl0) | 0;\n hi = Math.imul(ah1, bh0);\n lo = lo + Math.imul(al0, bl1) | 0;\n mid = mid + Math.imul(al0, bh1) | 0;\n mid = mid + Math.imul(ah0, bl1) | 0;\n hi = hi + Math.imul(ah0, bh1) | 0;\n var w1 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w1 >>> 26) | 0;\n w1 &= 67108863;\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = mid + Math.imul(ah2, bl0) | 0;\n hi = Math.imul(ah2, bh0);\n lo = lo + Math.imul(al1, bl1) | 0;\n mid = mid + Math.imul(al1, bh1) | 0;\n mid = mid + Math.imul(ah1, bl1) | 0;\n hi = hi + Math.imul(ah1, bh1) | 0;\n lo = lo + Math.imul(al0, bl2) | 0;\n mid = mid + Math.imul(al0, bh2) | 0;\n mid = mid + Math.imul(ah0, bl2) | 0;\n hi = hi + Math.imul(ah0, bh2) | 0;\n var w2 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w2 >>> 26) | 0;\n w2 &= 67108863;\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = mid + Math.imul(ah3, bl0) | 0;\n hi = Math.imul(ah3, bh0);\n lo = lo + Math.imul(al2, bl1) | 0;\n mid = mid + Math.imul(al2, bh1) | 0;\n mid = mid + Math.imul(ah2, bl1) | 0;\n hi = hi + Math.imul(ah2, bh1) | 0;\n lo = lo + Math.imul(al1, bl2) | 0;\n mid = mid + Math.imul(al1, bh2) | 0;\n mid = mid + Math.imul(ah1, bl2) | 0;\n hi = hi + Math.imul(ah1, bh2) | 0;\n lo = lo + Math.imul(al0, bl3) | 0;\n mid = mid + Math.imul(al0, bh3) | 0;\n mid = mid + Math.imul(ah0, bl3) | 0;\n hi = hi + Math.imul(ah0, bh3) | 0;\n var w3 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w3 >>> 26) | 0;\n w3 &= 67108863;\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = mid + Math.imul(ah4, bl0) | 0;\n hi = Math.imul(ah4, bh0);\n lo = lo + Math.imul(al3, bl1) | 0;\n mid = mid + Math.imul(al3, bh1) | 0;\n mid = mid + Math.imul(ah3, bl1) | 0;\n hi = hi + Math.imul(ah3, bh1) | 0;\n lo = lo + Math.imul(al2, bl2) | 0;\n mid = mid + Math.imul(al2, bh2) | 0;\n mid = mid + Math.imul(ah2, bl2) | 0;\n hi = hi + Math.imul(ah2, bh2) | 0;\n lo = lo + Math.imul(al1, bl3) | 0;\n mid = mid + Math.imul(al1, bh3) | 0;\n mid = mid + Math.imul(ah1, bl3) | 0;\n hi = hi + Math.imul(ah1, bh3) | 0;\n lo = lo + Math.imul(al0, bl4) | 0;\n mid = mid + Math.imul(al0, bh4) | 0;\n mid = mid + Math.imul(ah0, bl4) | 0;\n hi = hi + Math.imul(ah0, bh4) | 0;\n var w4 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w4 >>> 26) | 0;\n w4 &= 67108863;\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = mid + Math.imul(ah5, bl0) | 0;\n hi = Math.imul(ah5, bh0);\n lo = lo + Math.imul(al4, bl1) | 0;\n mid = mid + Math.imul(al4, bh1) | 0;\n mid = mid + Math.imul(ah4, bl1) | 0;\n hi = hi + Math.imul(ah4, bh1) | 0;\n lo = lo + Math.imul(al3, bl2) | 0;\n mid = mid + Math.imul(al3, bh2) | 0;\n mid = mid + Math.imul(ah3, bl2) | 0;\n hi = hi + Math.imul(ah3, bh2) | 0;\n lo = lo + Math.imul(al2, bl3) | 0;\n mid = mid + Math.imul(al2, bh3) | 0;\n mid = mid + Math.imul(ah2, bl3) | 0;\n hi = hi + Math.imul(ah2, bh3) | 0;\n lo = lo + Math.imul(al1, bl4) | 0;\n mid = mid + Math.imul(al1, bh4) | 0;\n mid = mid + Math.imul(ah1, bl4) | 0;\n hi = hi + Math.imul(ah1, bh4) | 0;\n lo = lo + Math.imul(al0, bl5) | 0;\n mid = mid + Math.imul(al0, bh5) | 0;\n mid = mid + Math.imul(ah0, bl5) | 0;\n hi = hi + Math.imul(ah0, bh5) | 0;\n var w5 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w5 >>> 26) | 0;\n w5 &= 67108863;\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = mid + Math.imul(ah6, bl0) | 0;\n hi = Math.imul(ah6, bh0);\n lo = lo + Math.imul(al5, bl1) | 0;\n mid = mid + Math.imul(al5, bh1) | 0;\n mid = mid + Math.imul(ah5, bl1) | 0;\n hi = hi + Math.imul(ah5, bh1) | 0;\n lo = lo + Math.imul(al4, bl2) | 0;\n mid = mid + Math.imul(al4, bh2) | 0;\n mid = mid + Math.imul(ah4, bl2) | 0;\n hi = hi + Math.imul(ah4, bh2) | 0;\n lo = lo + Math.imul(al3, bl3) | 0;\n mid = mid + Math.imul(al3, bh3) | 0;\n mid = mid + Math.imul(ah3, bl3) | 0;\n hi = hi + Math.imul(ah3, bh3) | 0;\n lo = lo + Math.imul(al2, bl4) | 0;\n mid = mid + Math.imul(al2, bh4) | 0;\n mid = mid + Math.imul(ah2, bl4) | 0;\n hi = hi + Math.imul(ah2, bh4) | 0;\n lo = lo + Math.imul(al1, bl5) | 0;\n mid = mid + Math.imul(al1, bh5) | 0;\n mid = mid + Math.imul(ah1, bl5) | 0;\n hi = hi + Math.imul(ah1, bh5) | 0;\n lo = lo + Math.imul(al0, bl6) | 0;\n mid = mid + Math.imul(al0, bh6) | 0;\n mid = mid + Math.imul(ah0, bl6) | 0;\n hi = hi + Math.imul(ah0, bh6) | 0;\n var w6 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w6 >>> 26) | 0;\n w6 &= 67108863;\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = mid + Math.imul(ah7, bl0) | 0;\n hi = Math.imul(ah7, bh0);\n lo = lo + Math.imul(al6, bl1) | 0;\n mid = mid + Math.imul(al6, bh1) | 0;\n mid = mid + Math.imul(ah6, bl1) | 0;\n hi = hi + Math.imul(ah6, bh1) | 0;\n lo = lo + Math.imul(al5, bl2) | 0;\n mid = mid + Math.imul(al5, bh2) | 0;\n mid = mid + Math.imul(ah5, bl2) | 0;\n hi = hi + Math.imul(ah5, bh2) | 0;\n lo = lo + Math.imul(al4, bl3) | 0;\n mid = mid + Math.imul(al4, bh3) | 0;\n mid = mid + Math.imul(ah4, bl3) | 0;\n hi = hi + Math.imul(ah4, bh3) | 0;\n lo = lo + Math.imul(al3, bl4) | 0;\n mid = mid + Math.imul(al3, bh4) | 0;\n mid = mid + Math.imul(ah3, bl4) | 0;\n hi = hi + Math.imul(ah3, bh4) | 0;\n lo = lo + Math.imul(al2, bl5) | 0;\n mid = mid + Math.imul(al2, bh5) | 0;\n mid = mid + Math.imul(ah2, bl5) | 0;\n hi = hi + Math.imul(ah2, bh5) | 0;\n lo = lo + Math.imul(al1, bl6) | 0;\n mid = mid + Math.imul(al1, bh6) | 0;\n mid = mid + Math.imul(ah1, bl6) | 0;\n hi = hi + Math.imul(ah1, bh6) | 0;\n lo = lo + Math.imul(al0, bl7) | 0;\n mid = mid + Math.imul(al0, bh7) | 0;\n mid = mid + Math.imul(ah0, bl7) | 0;\n hi = hi + Math.imul(ah0, bh7) | 0;\n var w7 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w7 >>> 26) | 0;\n w7 &= 67108863;\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = mid + Math.imul(ah8, bl0) | 0;\n hi = Math.imul(ah8, bh0);\n lo = lo + Math.imul(al7, bl1) | 0;\n mid = mid + Math.imul(al7, bh1) | 0;\n mid = mid + Math.imul(ah7, bl1) | 0;\n hi = hi + Math.imul(ah7, bh1) | 0;\n lo = lo + Math.imul(al6, bl2) | 0;\n mid = mid + Math.imul(al6, bh2) | 0;\n mid = mid + Math.imul(ah6, bl2) | 0;\n hi = hi + Math.imul(ah6, bh2) | 0;\n lo = lo + Math.imul(al5, bl3) | 0;\n mid = mid + Math.imul(al5, bh3) | 0;\n mid = mid + Math.imul(ah5, bl3) | 0;\n hi = hi + Math.imul(ah5, bh3) | 0;\n lo = lo + Math.imul(al4, bl4) | 0;\n mid = mid + Math.imul(al4, bh4) | 0;\n mid = mid + Math.imul(ah4, bl4) | 0;\n hi = hi + Math.imul(ah4, bh4) | 0;\n lo = lo + Math.imul(al3, bl5) | 0;\n mid = mid + Math.imul(al3, bh5) | 0;\n mid = mid + Math.imul(ah3, bl5) | 0;\n hi = hi + Math.imul(ah3, bh5) | 0;\n lo = lo + Math.imul(al2, bl6) | 0;\n mid = mid + Math.imul(al2, bh6) | 0;\n mid = mid + Math.imul(ah2, bl6) | 0;\n hi = hi + Math.imul(ah2, bh6) | 0;\n lo = lo + Math.imul(al1, bl7) | 0;\n mid = mid + Math.imul(al1, bh7) | 0;\n mid = mid + Math.imul(ah1, bl7) | 0;\n hi = hi + Math.imul(ah1, bh7) | 0;\n lo = lo + Math.imul(al0, bl8) | 0;\n mid = mid + Math.imul(al0, bh8) | 0;\n mid = mid + Math.imul(ah0, bl8) | 0;\n hi = hi + Math.imul(ah0, bh8) | 0;\n var w8 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w8 >>> 26) | 0;\n w8 &= 67108863;\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = mid + Math.imul(ah9, bl0) | 0;\n hi = Math.imul(ah9, bh0);\n lo = lo + Math.imul(al8, bl1) | 0;\n mid = mid + Math.imul(al8, bh1) | 0;\n mid = mid + Math.imul(ah8, bl1) | 0;\n hi = hi + Math.imul(ah8, bh1) | 0;\n lo = lo + Math.imul(al7, bl2) | 0;\n mid = mid + Math.imul(al7, bh2) | 0;\n mid = mid + Math.imul(ah7, bl2) | 0;\n hi = hi + Math.imul(ah7, bh2) | 0;\n lo = lo + Math.imul(al6, bl3) | 0;\n mid = mid + Math.imul(al6, bh3) | 0;\n mid = mid + Math.imul(ah6, bl3) | 0;\n hi = hi + Math.imul(ah6, bh3) | 0;\n lo = lo + Math.imul(al5, bl4) | 0;\n mid = mid + Math.imul(al5, bh4) | 0;\n mid = mid + Math.imul(ah5, bl4) | 0;\n hi = hi + Math.imul(ah5, bh4) | 0;\n lo = lo + Math.imul(al4, bl5) | 0;\n mid = mid + Math.imul(al4, bh5) | 0;\n mid = mid + Math.imul(ah4, bl5) | 0;\n hi = hi + Math.imul(ah4, bh5) | 0;\n lo = lo + Math.imul(al3, bl6) | 0;\n mid = mid + Math.imul(al3, bh6) | 0;\n mid = mid + Math.imul(ah3, bl6) | 0;\n hi = hi + Math.imul(ah3, bh6) | 0;\n lo = lo + Math.imul(al2, bl7) | 0;\n mid = mid + Math.imul(al2, bh7) | 0;\n mid = mid + Math.imul(ah2, bl7) | 0;\n hi = hi + Math.imul(ah2, bh7) | 0;\n lo = lo + Math.imul(al1, bl8) | 0;\n mid = mid + Math.imul(al1, bh8) | 0;\n mid = mid + Math.imul(ah1, bl8) | 0;\n hi = hi + Math.imul(ah1, bh8) | 0;\n lo = lo + Math.imul(al0, bl9) | 0;\n mid = mid + Math.imul(al0, bh9) | 0;\n mid = mid + Math.imul(ah0, bl9) | 0;\n hi = hi + Math.imul(ah0, bh9) | 0;\n var w9 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w9 >>> 26) | 0;\n w9 &= 67108863;\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = mid + Math.imul(ah9, bl1) | 0;\n hi = Math.imul(ah9, bh1);\n lo = lo + Math.imul(al8, bl2) | 0;\n mid = mid + Math.imul(al8, bh2) | 0;\n mid = mid + Math.imul(ah8, bl2) | 0;\n hi = hi + Math.imul(ah8, bh2) | 0;\n lo = lo + Math.imul(al7, bl3) | 0;\n mid = mid + Math.imul(al7, bh3) | 0;\n mid = mid + Math.imul(ah7, bl3) | 0;\n hi = hi + Math.imul(ah7, bh3) | 0;\n lo = lo + Math.imul(al6, bl4) | 0;\n mid = mid + Math.imul(al6, bh4) | 0;\n mid = mid + Math.imul(ah6, bl4) | 0;\n hi = hi + Math.imul(ah6, bh4) | 0;\n lo = lo + Math.imul(al5, bl5) | 0;\n mid = mid + Math.imul(al5, bh5) | 0;\n mid = mid + Math.imul(ah5, bl5) | 0;\n hi = hi + Math.imul(ah5, bh5) | 0;\n lo = lo + Math.imul(al4, bl6) | 0;\n mid = mid + Math.imul(al4, bh6) | 0;\n mid = mid + Math.imul(ah4, bl6) | 0;\n hi = hi + Math.imul(ah4, bh6) | 0;\n lo = lo + Math.imul(al3, bl7) | 0;\n mid = mid + Math.imul(al3, bh7) | 0;\n mid = mid + Math.imul(ah3, bl7) | 0;\n hi = hi + Math.imul(ah3, bh7) | 0;\n lo = lo + Math.imul(al2, bl8) | 0;\n mid = mid + Math.imul(al2, bh8) | 0;\n mid = mid + Math.imul(ah2, bl8) | 0;\n hi = hi + Math.imul(ah2, bh8) | 0;\n lo = lo + Math.imul(al1, bl9) | 0;\n mid = mid + Math.imul(al1, bh9) | 0;\n mid = mid + Math.imul(ah1, bl9) | 0;\n hi = hi + Math.imul(ah1, bh9) | 0;\n var w10 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w10 >>> 26) | 0;\n w10 &= 67108863;\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = mid + Math.imul(ah9, bl2) | 0;\n hi = Math.imul(ah9, bh2);\n lo = lo + Math.imul(al8, bl3) | 0;\n mid = mid + Math.imul(al8, bh3) | 0;\n mid = mid + Math.imul(ah8, bl3) | 0;\n hi = hi + Math.imul(ah8, bh3) | 0;\n lo = lo + Math.imul(al7, bl4) | 0;\n mid = mid + Math.imul(al7, bh4) | 0;\n mid = mid + Math.imul(ah7, bl4) | 0;\n hi = hi + Math.imul(ah7, bh4) | 0;\n lo = lo + Math.imul(al6, bl5) | 0;\n mid = mid + Math.imul(al6, bh5) | 0;\n mid = mid + Math.imul(ah6, bl5) | 0;\n hi = hi + Math.imul(ah6, bh5) | 0;\n lo = lo + Math.imul(al5, bl6) | 0;\n mid = mid + Math.imul(al5, bh6) | 0;\n mid = mid + Math.imul(ah5, bl6) | 0;\n hi = hi + Math.imul(ah5, bh6) | 0;\n lo = lo + Math.imul(al4, bl7) | 0;\n mid = mid + Math.imul(al4, bh7) | 0;\n mid = mid + Math.imul(ah4, bl7) | 0;\n hi = hi + Math.imul(ah4, bh7) | 0;\n lo = lo + Math.imul(al3, bl8) | 0;\n mid = mid + Math.imul(al3, bh8) | 0;\n mid = mid + Math.imul(ah3, bl8) | 0;\n hi = hi + Math.imul(ah3, bh8) | 0;\n lo = lo + Math.imul(al2, bl9) | 0;\n mid = mid + Math.imul(al2, bh9) | 0;\n mid = mid + Math.imul(ah2, bl9) | 0;\n hi = hi + Math.imul(ah2, bh9) | 0;\n var w11 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w11 >>> 26) | 0;\n w11 &= 67108863;\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = mid + Math.imul(ah9, bl3) | 0;\n hi = Math.imul(ah9, bh3);\n lo = lo + Math.imul(al8, bl4) | 0;\n mid = mid + Math.imul(al8, bh4) | 0;\n mid = mid + Math.imul(ah8, bl4) | 0;\n hi = hi + Math.imul(ah8, bh4) | 0;\n lo = lo + Math.imul(al7, bl5) | 0;\n mid = mid + Math.imul(al7, bh5) | 0;\n mid = mid + Math.imul(ah7, bl5) | 0;\n hi = hi + Math.imul(ah7, bh5) | 0;\n lo = lo + Math.imul(al6, bl6) | 0;\n mid = mid + Math.imul(al6, bh6) | 0;\n mid = mid + Math.imul(ah6, bl6) | 0;\n hi = hi + Math.imul(ah6, bh6) | 0;\n lo = lo + Math.imul(al5, bl7) | 0;\n mid = mid + Math.imul(al5, bh7) | 0;\n mid = mid + Math.imul(ah5, bl7) | 0;\n hi = hi + Math.imul(ah5, bh7) | 0;\n lo = lo + Math.imul(al4, bl8) | 0;\n mid = mid + Math.imul(al4, bh8) | 0;\n mid = mid + Math.imul(ah4, bl8) | 0;\n hi = hi + Math.imul(ah4, bh8) | 0;\n lo = lo + Math.imul(al3, bl9) | 0;\n mid = mid + Math.imul(al3, bh9) | 0;\n mid = mid + Math.imul(ah3, bl9) | 0;\n hi = hi + Math.imul(ah3, bh9) | 0;\n var w12 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w12 >>> 26) | 0;\n w12 &= 67108863;\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = mid + Math.imul(ah9, bl4) | 0;\n hi = Math.imul(ah9, bh4);\n lo = lo + Math.imul(al8, bl5) | 0;\n mid = mid + Math.imul(al8, bh5) | 0;\n mid = mid + Math.imul(ah8, bl5) | 0;\n hi = hi + Math.imul(ah8, bh5) | 0;\n lo = lo + Math.imul(al7, bl6) | 0;\n mid = mid + Math.imul(al7, bh6) | 0;\n mid = mid + Math.imul(ah7, bl6) | 0;\n hi = hi + Math.imul(ah7, bh6) | 0;\n lo = lo + Math.imul(al6, bl7) | 0;\n mid = mid + Math.imul(al6, bh7) | 0;\n mid = mid + Math.imul(ah6, bl7) | 0;\n hi = hi + Math.imul(ah6, bh7) | 0;\n lo = lo + Math.imul(al5, bl8) | 0;\n mid = mid + Math.imul(al5, bh8) | 0;\n mid = mid + Math.imul(ah5, bl8) | 0;\n hi = hi + Math.imul(ah5, bh8) | 0;\n lo = lo + Math.imul(al4, bl9) | 0;\n mid = mid + Math.imul(al4, bh9) | 0;\n mid = mid + Math.imul(ah4, bl9) | 0;\n hi = hi + Math.imul(ah4, bh9) | 0;\n var w13 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w13 >>> 26) | 0;\n w13 &= 67108863;\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = mid + Math.imul(ah9, bl5) | 0;\n hi = Math.imul(ah9, bh5);\n lo = lo + Math.imul(al8, bl6) | 0;\n mid = mid + Math.imul(al8, bh6) | 0;\n mid = mid + Math.imul(ah8, bl6) | 0;\n hi = hi + Math.imul(ah8, bh6) | 0;\n lo = lo + Math.imul(al7, bl7) | 0;\n mid = mid + Math.imul(al7, bh7) | 0;\n mid = mid + Math.imul(ah7, bl7) | 0;\n hi = hi + Math.imul(ah7, bh7) | 0;\n lo = lo + Math.imul(al6, bl8) | 0;\n mid = mid + Math.imul(al6, bh8) | 0;\n mid = mid + Math.imul(ah6, bl8) | 0;\n hi = hi + Math.imul(ah6, bh8) | 0;\n lo = lo + Math.imul(al5, bl9) | 0;\n mid = mid + Math.imul(al5, bh9) | 0;\n mid = mid + Math.imul(ah5, bl9) | 0;\n hi = hi + Math.imul(ah5, bh9) | 0;\n var w14 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w14 >>> 26) | 0;\n w14 &= 67108863;\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = mid + Math.imul(ah9, bl6) | 0;\n hi = Math.imul(ah9, bh6);\n lo = lo + Math.imul(al8, bl7) | 0;\n mid = mid + Math.imul(al8, bh7) | 0;\n mid = mid + Math.imul(ah8, bl7) | 0;\n hi = hi + Math.imul(ah8, bh7) | 0;\n lo = lo + Math.imul(al7, bl8) | 0;\n mid = mid + Math.imul(al7, bh8) | 0;\n mid = mid + Math.imul(ah7, bl8) | 0;\n hi = hi + Math.imul(ah7, bh8) | 0;\n lo = lo + Math.imul(al6, bl9) | 0;\n mid = mid + Math.imul(al6, bh9) | 0;\n mid = mid + Math.imul(ah6, bl9) | 0;\n hi = hi + Math.imul(ah6, bh9) | 0;\n var w15 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w15 >>> 26) | 0;\n w15 &= 67108863;\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = mid + Math.imul(ah9, bl7) | 0;\n hi = Math.imul(ah9, bh7);\n lo = lo + Math.imul(al8, bl8) | 0;\n mid = mid + Math.imul(al8, bh8) | 0;\n mid = mid + Math.imul(ah8, bl8) | 0;\n hi = hi + Math.imul(ah8, bh8) | 0;\n lo = lo + Math.imul(al7, bl9) | 0;\n mid = mid + Math.imul(al7, bh9) | 0;\n mid = mid + Math.imul(ah7, bl9) | 0;\n hi = hi + Math.imul(ah7, bh9) | 0;\n var w16 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w16 >>> 26) | 0;\n w16 &= 67108863;\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = mid + Math.imul(ah9, bl8) | 0;\n hi = Math.imul(ah9, bh8);\n lo = lo + Math.imul(al8, bl9) | 0;\n mid = mid + Math.imul(al8, bh9) | 0;\n mid = mid + Math.imul(ah8, bl9) | 0;\n hi = hi + Math.imul(ah8, bh9) | 0;\n var w17 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w17 >>> 26) | 0;\n w17 &= 67108863;\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = mid + Math.imul(ah9, bl9) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (c + lo | 0) + ((mid & 8191) << 13) | 0;\n c = (hi + (mid >>> 13) | 0) + (w18 >>> 26) | 0;\n w18 &= 67108863;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n function bigMulTo(self2, num, out) {\n out.negative = num.negative ^ self2.negative;\n out.length = self2.length + num.length;\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 67108863;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self2.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self2.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n var lo = r & 67108863;\n ncarry = ncarry + (r / 67108864 | 0) | 0;\n lo = lo + rword | 0;\n rword = lo & 67108863;\n ncarry = ncarry + (lo >>> 26) | 0;\n hncarry += ncarry >>> 26;\n ncarry &= 67108863;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n return out.strip();\n }\n function jumboMulTo(self2, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self2, num, out);\n }\n BN.prototype.mulTo = function mulTo(num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n return res;\n };\n function FFTM(x, y) {\n this.x = x;\n this.y = y;\n }\n FFTM.prototype.makeRBT = function makeRBT(N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n return t;\n };\n FFTM.prototype.revBin = function revBin(x, l, N) {\n if (x === 0 || x === N - 1) return x;\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << l - i - 1;\n x >>= 1;\n }\n return rb;\n };\n FFTM.prototype.permute = function permute(rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n FFTM.prototype.transform = function transform(rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n var rx = rtwdf_ * ro - itwdf_ * io;\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n FFTM.prototype.guessLen13b = function guessLen13b(n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n return 1 << i + 1 + odd;\n };\n FFTM.prototype.conjugate = function conjugate(rws, iws, N) {\n if (N <= 1) return;\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n t = iws[i];\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n FFTM.prototype.normalize13b = function normalize13b(ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 8192 + Math.round(ws[2 * i] / N) + carry;\n ws[i] = w & 67108863;\n if (w < 67108864) {\n carry = 0;\n } else {\n carry = w / 67108864 | 0;\n }\n }\n return ws;\n };\n FFTM.prototype.convert13b = function convert13b(ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n rws[2 * i] = carry & 8191;\n carry = carry >>> 13;\n rws[2 * i + 1] = carry & 8191;\n carry = carry >>> 13;\n }\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n assert(carry === 0);\n assert((carry & ~8191) === 0);\n };\n FFTM.prototype.stub = function stub(N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n return ph;\n };\n FFTM.prototype.mulp = function mulp(x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n var rbt = this.makeRBT(N);\n var _ = this.stub(N);\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n var rmws = out.words;\n rmws.length = N;\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n BN.prototype.mul = function mul(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n BN.prototype.mulf = function mulf(num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n BN.prototype.imul = function imul(num) {\n return this.clone().mulTo(num, this);\n };\n BN.prototype.imuln = function imuln(num) {\n assert(typeof num === \"number\");\n assert(num < 67108864);\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 67108863) + (carry & 67108863);\n carry >>= 26;\n carry += w / 67108864 | 0;\n carry += lo >>> 26;\n this.words[i] = lo & 67108863;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n BN.prototype.muln = function muln(num) {\n return this.clone().imuln(num);\n };\n BN.prototype.sqr = function sqr() {\n return this.mul(this);\n };\n BN.prototype.isqr = function isqr() {\n return this.imul(this.clone());\n };\n BN.prototype.pow = function pow(num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n res = res.mul(q);\n }\n }\n return res;\n };\n BN.prototype.iushln = function iushln(bits) {\n assert(typeof bits === \"number\" && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = 67108863 >>> 26 - r << 26 - r;\n var i;\n if (r !== 0) {\n var carry = 0;\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = (this.words[i] | 0) - newCarry << r;\n this.words[i] = c | carry;\n carry = newCarry >>> 26 - r;\n }\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n this.length += s;\n }\n return this.strip();\n };\n BN.prototype.ishln = function ishln(bits) {\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n BN.prototype.iushrn = function iushrn(bits, hint, extended) {\n assert(typeof bits === \"number\" && bits >= 0);\n var h;\n if (hint) {\n h = (hint - hint % 26) / 26;\n } else {\n h = 0;\n }\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 67108863 ^ 67108863 >>> r << r;\n var maskedWords = extended;\n h -= s;\n h = Math.max(0, h);\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n if (s === 0) {\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = carry << 26 - r | word >>> r;\n carry = word & mask;\n }\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n return this.strip();\n };\n BN.prototype.ishrn = function ishrn(bits, hint, extended) {\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n BN.prototype.shln = function shln(bits) {\n return this.clone().ishln(bits);\n };\n BN.prototype.ushln = function ushln(bits) {\n return this.clone().iushln(bits);\n };\n BN.prototype.shrn = function shrn(bits) {\n return this.clone().ishrn(bits);\n };\n BN.prototype.ushrn = function ushrn(bits) {\n return this.clone().iushrn(bits);\n };\n BN.prototype.testn = function testn(bit) {\n assert(typeof bit === \"number\" && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n if (this.length <= s) return false;\n var w = this.words[s];\n return !!(w & q);\n };\n BN.prototype.imaskn = function imaskn(bits) {\n assert(typeof bits === \"number\" && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n assert(this.negative === 0, \"imaskn works only with positive numbers\");\n if (this.length <= s) {\n return this;\n }\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n if (r !== 0) {\n var mask = 67108863 ^ 67108863 >>> r << r;\n this.words[this.length - 1] &= mask;\n }\n return this.strip();\n };\n BN.prototype.maskn = function maskn(bits) {\n return this.clone().imaskn(bits);\n };\n BN.prototype.iaddn = function iaddn(num) {\n assert(typeof num === \"number\");\n assert(num < 67108864);\n if (num < 0) return this.isubn(-num);\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n return this._iaddn(num);\n };\n BN.prototype._iaddn = function _iaddn(num) {\n this.words[0] += num;\n for (var i = 0; i < this.length && this.words[i] >= 67108864; i++) {\n this.words[i] -= 67108864;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n return this;\n };\n BN.prototype.isubn = function isubn(num) {\n assert(typeof num === \"number\");\n assert(num < 67108864);\n if (num < 0) return this.iaddn(-num);\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n this.words[0] -= num;\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 67108864;\n this.words[i + 1] -= 1;\n }\n }\n return this.strip();\n };\n BN.prototype.addn = function addn(num) {\n return this.clone().iaddn(num);\n };\n BN.prototype.subn = function subn(num) {\n return this.clone().isubn(num);\n };\n BN.prototype.iabs = function iabs() {\n this.negative = 0;\n return this;\n };\n BN.prototype.abs = function abs() {\n return this.clone().iabs();\n };\n BN.prototype._ishlnsubmul = function _ishlnsubmul(num, mul, shift) {\n var len = num.length + shift;\n var i;\n this._expand(len);\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 67108863;\n carry = (w >> 26) - (right / 67108864 | 0);\n this.words[i + shift] = w & 67108863;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 67108863;\n }\n if (carry === 0) return this.strip();\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 67108863;\n }\n this.negative = 1;\n return this.strip();\n };\n BN.prototype._wordDiv = function _wordDiv(num, mode) {\n var shift = this.length - num.length;\n var a = this.clone();\n var b = num;\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n var m = a.length - b.length;\n var q;\n if (mode !== \"mod\") {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 67108864 + (a.words[b.length + j - 1] | 0);\n qj = Math.min(qj / bhi | 0, 67108863);\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n if (mode !== \"div\" && shift !== 0) {\n a.iushrn(shift);\n }\n return {\n div: q || null,\n mod: a\n };\n };\n BN.prototype.divmod = function divmod(num, mode, positive) {\n assert(!num.isZero());\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n if (mode !== \"mod\") {\n div = res.div.neg();\n }\n if (mode !== \"div\") {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n return {\n div,\n mod\n };\n }\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n if (mode !== \"mod\") {\n div = res.div.neg();\n }\n return {\n div,\n mod: res.mod\n };\n }\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n if (mode !== \"div\") {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n return {\n div: res.div,\n mod\n };\n }\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n if (num.length === 1) {\n if (mode === \"div\") {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n if (mode === \"mod\") {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n return this._wordDiv(num, mode);\n };\n BN.prototype.div = function div(num) {\n return this.divmod(num, \"div\", false).div;\n };\n BN.prototype.mod = function mod(num) {\n return this.divmod(num, \"mod\", false).mod;\n };\n BN.prototype.umod = function umod(num) {\n return this.divmod(num, \"mod\", true).mod;\n };\n BN.prototype.divRound = function divRound(num) {\n var dm = this.divmod(num);\n if (dm.mod.isZero()) return dm.div;\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n BN.prototype.modn = function modn(num) {\n assert(num <= 67108863);\n var p = (1 << 26) % num;\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n return acc;\n };\n BN.prototype.idivn = function idivn(num) {\n assert(num <= 67108863);\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 67108864;\n this.words[i] = w / num | 0;\n carry = w % num;\n }\n return this.strip();\n };\n BN.prototype.divn = function divn(num) {\n return this.clone().idivn(num);\n };\n BN.prototype.egcd = function egcd(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var x = this;\n var y = p.clone();\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n var A2 = new BN(1);\n var B2 = new BN(0);\n var C2 = new BN(0);\n var D2 = new BN(1);\n var g = 0;\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n var yp = y.clone();\n var xp = x.clone();\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1) ;\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A2.isOdd() || B2.isOdd()) {\n A2.iadd(yp);\n B2.isub(xp);\n }\n A2.iushrn(1);\n B2.iushrn(1);\n }\n }\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) ;\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C2.isOdd() || D2.isOdd()) {\n C2.iadd(yp);\n D2.isub(xp);\n }\n C2.iushrn(1);\n D2.iushrn(1);\n }\n }\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A2.isub(C2);\n B2.isub(D2);\n } else {\n y.isub(x);\n C2.isub(A2);\n D2.isub(B2);\n }\n }\n return {\n a: C2,\n b: D2,\n gcd: y.iushln(g)\n };\n };\n BN.prototype._invmp = function _invmp(p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n var a = this;\n var b = p.clone();\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n var x1 = new BN(1);\n var x2 = new BN(0);\n var delta = b.clone();\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1) ;\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n x1.iushrn(1);\n }\n }\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1) ;\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n x2.iushrn(1);\n }\n }\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n return res;\n };\n BN.prototype.gcd = function gcd(num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n var r = a.cmp(b);\n if (r < 0) {\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n a.isub(b);\n } while (true);\n return b.iushln(shift);\n };\n BN.prototype.invm = function invm(num) {\n return this.egcd(num).a.umod(num);\n };\n BN.prototype.isEven = function isEven() {\n return (this.words[0] & 1) === 0;\n };\n BN.prototype.isOdd = function isOdd() {\n return (this.words[0] & 1) === 1;\n };\n BN.prototype.andln = function andln(num) {\n return this.words[0] & num;\n };\n BN.prototype.bincn = function bincn(bit) {\n assert(typeof bit === \"number\");\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 67108863;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n BN.prototype.isZero = function isZero() {\n return this.length === 1 && this.words[0] === 0;\n };\n BN.prototype.cmpn = function cmpn(num) {\n var negative = num < 0;\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n this.strip();\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n assert(num <= 67108863, \"Number is too big\");\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n BN.prototype.cmp = function cmp(num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n BN.prototype.ucmp = function ucmp(num) {\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n BN.prototype.gtn = function gtn(num) {\n return this.cmpn(num) === 1;\n };\n BN.prototype.gt = function gt(num) {\n return this.cmp(num) === 1;\n };\n BN.prototype.gten = function gten(num) {\n return this.cmpn(num) >= 0;\n };\n BN.prototype.gte = function gte(num) {\n return this.cmp(num) >= 0;\n };\n BN.prototype.ltn = function ltn(num) {\n return this.cmpn(num) === -1;\n };\n BN.prototype.lt = function lt(num) {\n return this.cmp(num) === -1;\n };\n BN.prototype.lten = function lten(num) {\n return this.cmpn(num) <= 0;\n };\n BN.prototype.lte = function lte(num) {\n return this.cmp(num) <= 0;\n };\n BN.prototype.eqn = function eqn(num) {\n return this.cmpn(num) === 0;\n };\n BN.prototype.eq = function eq(num) {\n return this.cmp(num) === 0;\n };\n BN.red = function red(num) {\n return new Red(num);\n };\n BN.prototype.toRed = function toRed(ctx) {\n assert(!this.red, \"Already a number in reduction context\");\n assert(this.negative === 0, \"red works only with positives\");\n return ctx.convertTo(this)._forceRed(ctx);\n };\n BN.prototype.fromRed = function fromRed() {\n assert(this.red, \"fromRed works only with numbers in reduction context\");\n return this.red.convertFrom(this);\n };\n BN.prototype._forceRed = function _forceRed(ctx) {\n this.red = ctx;\n return this;\n };\n BN.prototype.forceRed = function forceRed(ctx) {\n assert(!this.red, \"Already a number in reduction context\");\n return this._forceRed(ctx);\n };\n BN.prototype.redAdd = function redAdd(num) {\n assert(this.red, \"redAdd works only with red numbers\");\n return this.red.add(this, num);\n };\n BN.prototype.redIAdd = function redIAdd(num) {\n assert(this.red, \"redIAdd works only with red numbers\");\n return this.red.iadd(this, num);\n };\n BN.prototype.redSub = function redSub(num) {\n assert(this.red, \"redSub works only with red numbers\");\n return this.red.sub(this, num);\n };\n BN.prototype.redISub = function redISub(num) {\n assert(this.red, \"redISub works only with red numbers\");\n return this.red.isub(this, num);\n };\n BN.prototype.redShl = function redShl(num) {\n assert(this.red, \"redShl works only with red numbers\");\n return this.red.shl(this, num);\n };\n BN.prototype.redMul = function redMul(num) {\n assert(this.red, \"redMul works only with red numbers\");\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n BN.prototype.redIMul = function redIMul(num) {\n assert(this.red, \"redMul works only with red numbers\");\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n BN.prototype.redSqr = function redSqr() {\n assert(this.red, \"redSqr works only with red numbers\");\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n BN.prototype.redISqr = function redISqr() {\n assert(this.red, \"redISqr works only with red numbers\");\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n BN.prototype.redSqrt = function redSqrt() {\n assert(this.red, \"redSqrt works only with red numbers\");\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n BN.prototype.redInvm = function redInvm() {\n assert(this.red, \"redInvm works only with red numbers\");\n this.red._verify1(this);\n return this.red.invm(this);\n };\n BN.prototype.redNeg = function redNeg() {\n assert(this.red, \"redNeg works only with red numbers\");\n this.red._verify1(this);\n return this.red.neg(this);\n };\n BN.prototype.redPow = function redPow(num) {\n assert(this.red && !num.red, \"redPow(normalNum)\");\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n function MPrime(name2, p) {\n this.name = name2;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n this.tmp = this._tmp();\n }\n MPrime.prototype._tmp = function _tmp() {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n MPrime.prototype.ireduce = function ireduce(num) {\n var r = num;\n var rlen;\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== void 0) {\n r.strip();\n } else {\n r._strip();\n }\n }\n return r;\n };\n MPrime.prototype.split = function split(input, out) {\n input.iushrn(this.n, 0, out);\n };\n MPrime.prototype.imulK = function imulK(num) {\n return num.imul(this.k);\n };\n function K256() {\n MPrime.call(\n this,\n \"k256\",\n \"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\"\n );\n }\n inherits(K256, MPrime);\n K256.prototype.split = function split(input, output) {\n var mask = 4194303;\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = (next & mask) << 4 | prev >>> 22;\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n K256.prototype.imulK = function imulK(num) {\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 977;\n num.words[i] = lo & 67108863;\n lo = w * 64 + (lo / 67108864 | 0);\n }\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n function P224() {\n MPrime.call(\n this,\n \"p224\",\n \"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\"\n );\n }\n inherits(P224, MPrime);\n function P192() {\n MPrime.call(\n this,\n \"p192\",\n \"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\"\n );\n }\n inherits(P192, MPrime);\n function P25519() {\n MPrime.call(\n this,\n \"25519\",\n \"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\"\n );\n }\n inherits(P25519, MPrime);\n P25519.prototype.imulK = function imulK(num) {\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 19 + carry;\n var lo = hi & 67108863;\n hi >>>= 26;\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n BN._prime = function prime(name2) {\n if (primes[name2]) return primes[name2];\n var prime2;\n if (name2 === \"k256\") {\n prime2 = new K256();\n } else if (name2 === \"p224\") {\n prime2 = new P224();\n } else if (name2 === \"p192\") {\n prime2 = new P192();\n } else if (name2 === \"p25519\") {\n prime2 = new P25519();\n } else {\n throw new Error(\"Unknown prime \" + name2);\n }\n primes[name2] = prime2;\n return prime2;\n };\n function Red(m) {\n if (typeof m === \"string\") {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), \"modulus must be greater than 1\");\n this.m = m;\n this.prime = null;\n }\n }\n Red.prototype._verify1 = function _verify1(a) {\n assert(a.negative === 0, \"red works only with positives\");\n assert(a.red, \"red works only with red numbers\");\n };\n Red.prototype._verify2 = function _verify2(a, b) {\n assert((a.negative | b.negative) === 0, \"red works only with positives\");\n assert(\n a.red && a.red === b.red,\n \"red works only with red numbers\"\n );\n };\n Red.prototype.imod = function imod(a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n Red.prototype.neg = function neg(a) {\n if (a.isZero()) {\n return a.clone();\n }\n return this.m.sub(a)._forceRed(this);\n };\n Red.prototype.add = function add(a, b) {\n this._verify2(a, b);\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n Red.prototype.iadd = function iadd(a, b) {\n this._verify2(a, b);\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n Red.prototype.sub = function sub(a, b) {\n this._verify2(a, b);\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n Red.prototype.isub = function isub(a, b) {\n this._verify2(a, b);\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n Red.prototype.shl = function shl(a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n Red.prototype.imul = function imul(a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n Red.prototype.mul = function mul(a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n Red.prototype.isqr = function isqr(a) {\n return this.imul(a, a.clone());\n };\n Red.prototype.sqr = function sqr(a) {\n return this.mul(a, a);\n };\n Red.prototype.sqrt = function sqrt(a) {\n if (a.isZero()) return a.clone();\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n var one2 = new BN(1).toRed(this);\n var nOne = one2.redNeg();\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one2) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one2) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n return r;\n };\n Red.prototype.invm = function invm(a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n Red.prototype.pow = function pow(a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = word >> j & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n return res;\n };\n Red.prototype.convertTo = function convertTo(num) {\n var r = num.umod(this.m);\n return r === num ? r.clone() : r;\n };\n Red.prototype.convertFrom = function convertFrom(num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n BN.mont = function mont(num) {\n return new Mont(num);\n };\n function Mont(m) {\n Red.call(this, m);\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - this.shift % 26;\n }\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n Mont.prototype.convertTo = function convertTo(num) {\n return this.imod(num.ushln(this.shift));\n };\n Mont.prototype.convertFrom = function convertFrom(num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n Mont.prototype.imul = function imul(a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n return res._forceRed(this);\n };\n Mont.prototype.mul = function mul(a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n return res._forceRed(this);\n };\n Mont.prototype.invm = function invm(a) {\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n })(module2, this);\n }\n ),\n /***/\n 6204: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = boundary;\n function boundary(cells) {\n var i, j, k;\n var n = cells.length;\n var sz = 0;\n for (i = 0; i < n; ++i) {\n sz += cells[i].length;\n }\n var result = new Array(sz);\n var ptr = 0;\n for (i = 0; i < n; ++i) {\n var c = cells[i];\n var d = c.length;\n for (j = 0; j < d; ++j) {\n var b = result[ptr++] = new Array(d - 1);\n var p = 0;\n for (k = 0; k < d; ++k) {\n if (k === j) {\n continue;\n }\n b[p++] = c[k];\n }\n if (j & 1) {\n var tmp = b[1];\n b[1] = b[0];\n b[0] = tmp;\n }\n }\n }\n return result;\n }\n }\n ),\n /***/\n 6867: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = boxIntersectWrapper;\n var pool = __webpack_require__2(1888);\n var sweep = __webpack_require__2(855);\n var boxIntersectIter = __webpack_require__2(7150);\n function boxEmpty(d, box) {\n for (var j = 0; j < d; ++j) {\n if (!(box[j] <= box[j + d])) {\n return true;\n }\n }\n return false;\n }\n function convertBoxes(boxes, d, data, ids) {\n var ptr = 0;\n var count = 0;\n for (var i = 0, n = boxes.length; i < n; ++i) {\n var b = boxes[i];\n if (boxEmpty(d, b)) {\n continue;\n }\n for (var j = 0; j < 2 * d; ++j) {\n data[ptr++] = b[j];\n }\n ids[count++] = i;\n }\n return count;\n }\n function boxIntersect(red, blue, visit, full) {\n var n = red.length;\n var m = blue.length;\n if (n <= 0 || m <= 0) {\n return;\n }\n var d = red[0].length >>> 1;\n if (d <= 0) {\n return;\n }\n var retval;\n var redList = pool.mallocDouble(2 * d * n);\n var redIds = pool.mallocInt32(n);\n n = convertBoxes(red, d, redList, redIds);\n if (n > 0) {\n if (d === 1 && full) {\n sweep.init(n);\n retval = sweep.sweepComplete(\n d,\n visit,\n 0,\n n,\n redList,\n redIds,\n 0,\n n,\n redList,\n redIds\n );\n } else {\n var blueList = pool.mallocDouble(2 * d * m);\n var blueIds = pool.mallocInt32(m);\n m = convertBoxes(blue, d, blueList, blueIds);\n if (m > 0) {\n sweep.init(n + m);\n if (d === 1) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n 0,\n n,\n redList,\n redIds,\n 0,\n m,\n blueList,\n blueIds\n );\n } else {\n retval = boxIntersectIter(\n d,\n visit,\n full,\n n,\n redList,\n redIds,\n m,\n blueList,\n blueIds\n );\n }\n pool.free(blueList);\n pool.free(blueIds);\n }\n }\n pool.free(redList);\n pool.free(redIds);\n }\n return retval;\n }\n var RESULT;\n function appendItem(i, j) {\n RESULT.push([i, j]);\n }\n function intersectFullArray(x) {\n RESULT = [];\n boxIntersect(x, x, appendItem, true);\n return RESULT;\n }\n function intersectBipartiteArray(x, y) {\n RESULT = [];\n boxIntersect(x, y, appendItem, false);\n return RESULT;\n }\n function boxIntersectWrapper(arg0, arg1, arg2) {\n switch (arguments.length) {\n case 1:\n return intersectFullArray(arg0);\n case 2:\n if (typeof arg1 === \"function\") {\n return boxIntersect(arg0, arg0, arg1, true);\n } else {\n return intersectBipartiteArray(arg0, arg1);\n }\n case 3:\n return boxIntersect(arg0, arg1, arg2, false);\n default:\n throw new Error(\"box-intersect: Invalid arguments\");\n }\n }\n }\n ),\n /***/\n 2455: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n function full() {\n function bruteForceRedFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n Q: for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], y1 = bb[ax + bp + d], yi = bi[j];\n if (y1 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceBlueFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], y1 = bb[ax + bp + d], yi = bi[j];\n Q: for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n if (y1 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n if (re - rs > be - bs) {\n return bruteForceRedFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n } else {\n return bruteForceBlueFull(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n }\n }\n return bruteForceFull;\n }\n function partial() {\n function bruteForceRedFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n Q: for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n if (y0 <= x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(yi, xi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceRed(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n Q: for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n if (y0 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceBlueFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n Q: for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n if (y0 <= x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(yi, xi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForceBlue(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi) {\n var es = 2 * d;\n for (var j = bs, bp = es * bs; j < be; ++j, bp += es) {\n var y0 = bb[ax + bp], yi = bi[j];\n Q: for (var i = rs, rp = es * rs; i < re; ++i, rp += es) {\n var x0 = rb[ax + rp], x1 = rb[ax + rp + d], xi = ri[i];\n if (y0 < x0 || x1 < y0) continue;\n for (var k = ax + 1; k < d; ++k) {\n var r0 = rb[k + rp], r1 = rb[k + d + rp], b0 = bb[k + bp], b1 = bb[k + d + bp];\n if (r1 < b0 || b1 < r0) continue Q;\n }\n var rv = vv(xi, yi);\n if (rv !== void 0) return rv;\n }\n }\n }\n function bruteForcePartial(d, ax, vv, fp, rs, re, rb, ri, bs, be, bb, bi) {\n if (re - rs > be - bs) {\n if (fp) {\n return bruteForceRedFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n } else {\n return bruteForceRed(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n }\n } else {\n if (fp) {\n return bruteForceBlueFlip(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n } else {\n return bruteForceBlue(d, ax, vv, rs, re, rb, ri, bs, be, bb, bi);\n }\n }\n }\n return bruteForcePartial;\n }\n function bruteForcePlanner(isFull) {\n return isFull ? full() : partial();\n }\n exports2.partial = bruteForcePlanner(false);\n exports2.full = bruteForcePlanner(true);\n }\n ),\n /***/\n 7150: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = boxIntersectIter;\n var pool = __webpack_require__2(1888);\n var bits = __webpack_require__2(8828);\n var bruteForce = __webpack_require__2(2455);\n var bruteForcePartial = bruteForce.partial;\n var bruteForceFull = bruteForce.full;\n var sweep = __webpack_require__2(855);\n var findMedian = __webpack_require__2(3545);\n var genPartition = __webpack_require__2(8105);\n var BRUTE_FORCE_CUTOFF = 128;\n var SCAN_CUTOFF = 1 << 22;\n var SCAN_COMPLETE_CUTOFF = 1 << 22;\n var partitionInteriorContainsInterval = genPartition(\n \"!(lo>=p0)&&!(p1>=hi)\"\n );\n var partitionStartEqual = genPartition(\n \"lo===p0\"\n );\n var partitionStartLessThan = genPartition(\n \"lo 0) {\n top -= 1;\n var iptr = top * IFRAME_SIZE;\n var axis = BOX_ISTACK[iptr];\n var redStart = BOX_ISTACK[iptr + 1];\n var redEnd = BOX_ISTACK[iptr + 2];\n var blueStart = BOX_ISTACK[iptr + 3];\n var blueEnd = BOX_ISTACK[iptr + 4];\n var state = BOX_ISTACK[iptr + 5];\n var dptr = top * DFRAME_SIZE;\n var lo = BOX_DSTACK[dptr];\n var hi = BOX_DSTACK[dptr + 1];\n var flip = state & 1;\n var full = !!(state & 16);\n var red = xBoxes;\n var redIndex = xIndex;\n var blue = yBoxes;\n var blueIndex = yIndex;\n if (flip) {\n red = yBoxes;\n redIndex = yIndex;\n blue = xBoxes;\n blueIndex = xIndex;\n }\n if (state & 2) {\n redEnd = partitionStartLessThan(\n d,\n axis,\n redStart,\n redEnd,\n red,\n redIndex,\n hi\n );\n if (redStart >= redEnd) {\n continue;\n }\n }\n if (state & 4) {\n redStart = partitionEndLessThanEqual(\n d,\n axis,\n redStart,\n redEnd,\n red,\n redIndex,\n lo\n );\n if (redStart >= redEnd) {\n continue;\n }\n }\n var redCount = redEnd - redStart;\n var blueCount = blueEnd - blueStart;\n if (full) {\n if (d * redCount * (redCount + blueCount) < SCAN_COMPLETE_CUTOFF) {\n retval = sweep.scanComplete(\n d,\n axis,\n visit,\n redStart,\n redEnd,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n continue;\n }\n } else {\n if (d * Math.min(redCount, blueCount) < BRUTE_FORCE_CUTOFF) {\n retval = bruteForcePartial(\n d,\n axis,\n visit,\n flip,\n redStart,\n redEnd,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n continue;\n } else if (d * redCount * blueCount < SCAN_CUTOFF) {\n retval = sweep.scanBipartite(\n d,\n axis,\n visit,\n flip,\n redStart,\n redEnd,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n continue;\n }\n }\n var red0 = partitionInteriorContainsInterval(\n d,\n axis,\n redStart,\n redEnd,\n red,\n redIndex,\n lo,\n hi\n );\n if (redStart < red0) {\n if (d * (red0 - redStart) < BRUTE_FORCE_CUTOFF) {\n retval = bruteForceFull(\n d,\n axis + 1,\n visit,\n redStart,\n red0,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n } else if (axis === d - 2) {\n if (flip) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n blueStart,\n blueEnd,\n blue,\n blueIndex,\n redStart,\n red0,\n red,\n redIndex\n );\n } else {\n retval = sweep.sweepBipartite(\n d,\n visit,\n redStart,\n red0,\n red,\n redIndex,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n }\n if (retval !== void 0) {\n return retval;\n }\n } else {\n iterPush(\n top++,\n axis + 1,\n redStart,\n red0,\n blueStart,\n blueEnd,\n flip,\n -Infinity,\n Infinity\n );\n iterPush(\n top++,\n axis + 1,\n blueStart,\n blueEnd,\n redStart,\n red0,\n flip ^ 1,\n -Infinity,\n Infinity\n );\n }\n }\n if (red0 < redEnd) {\n var blue0 = findMedian(\n d,\n axis,\n blueStart,\n blueEnd,\n blue,\n blueIndex\n );\n var mid = blue[elemSize * blue0 + axis];\n var blue1 = partitionStartEqual(\n d,\n axis,\n blue0,\n blueEnd,\n blue,\n blueIndex,\n mid\n );\n if (blue1 < blueEnd) {\n iterPush(\n top++,\n axis,\n red0,\n redEnd,\n blue1,\n blueEnd,\n (flip | 4) + (full ? 16 : 0),\n mid,\n hi\n );\n }\n if (blueStart < blue0) {\n iterPush(\n top++,\n axis,\n red0,\n redEnd,\n blueStart,\n blue0,\n (flip | 2) + (full ? 16 : 0),\n lo,\n mid\n );\n }\n if (blue0 + 1 === blue1) {\n if (full) {\n retval = onePointFull(\n d,\n axis,\n visit,\n red0,\n redEnd,\n red,\n redIndex,\n blue0,\n blue,\n blueIndex[blue0]\n );\n } else {\n retval = onePointPartial(\n d,\n axis,\n visit,\n flip,\n red0,\n redEnd,\n red,\n redIndex,\n blue0,\n blue,\n blueIndex[blue0]\n );\n }\n if (retval !== void 0) {\n return retval;\n }\n } else if (blue0 < blue1) {\n var red1;\n if (full) {\n red1 = partitionContainsPoint(\n d,\n axis,\n red0,\n redEnd,\n red,\n redIndex,\n mid\n );\n if (red0 < red1) {\n var redX = partitionStartEqual(\n d,\n axis,\n red0,\n red1,\n red,\n redIndex,\n mid\n );\n if (axis === d - 2) {\n if (red0 < redX) {\n retval = sweep.sweepComplete(\n d,\n visit,\n red0,\n redX,\n red,\n redIndex,\n blue0,\n blue1,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n }\n if (redX < red1) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n redX,\n red1,\n red,\n redIndex,\n blue0,\n blue1,\n blue,\n blueIndex\n );\n if (retval !== void 0) {\n return retval;\n }\n }\n } else {\n if (red0 < redX) {\n iterPush(\n top++,\n axis + 1,\n red0,\n redX,\n blue0,\n blue1,\n 16,\n -Infinity,\n Infinity\n );\n }\n if (redX < red1) {\n iterPush(\n top++,\n axis + 1,\n redX,\n red1,\n blue0,\n blue1,\n 0,\n -Infinity,\n Infinity\n );\n iterPush(\n top++,\n axis + 1,\n blue0,\n blue1,\n redX,\n red1,\n 1,\n -Infinity,\n Infinity\n );\n }\n }\n }\n } else {\n if (flip) {\n red1 = partitionContainsPointProper(\n d,\n axis,\n red0,\n redEnd,\n red,\n redIndex,\n mid\n );\n } else {\n red1 = partitionContainsPoint(\n d,\n axis,\n red0,\n redEnd,\n red,\n redIndex,\n mid\n );\n }\n if (red0 < red1) {\n if (axis === d - 2) {\n if (flip) {\n retval = sweep.sweepBipartite(\n d,\n visit,\n blue0,\n blue1,\n blue,\n blueIndex,\n red0,\n red1,\n red,\n redIndex\n );\n } else {\n retval = sweep.sweepBipartite(\n d,\n visit,\n red0,\n red1,\n red,\n redIndex,\n blue0,\n blue1,\n blue,\n blueIndex\n );\n }\n } else {\n iterPush(\n top++,\n axis + 1,\n red0,\n red1,\n blue0,\n blue1,\n flip,\n -Infinity,\n Infinity\n );\n iterPush(\n top++,\n axis + 1,\n blue0,\n blue1,\n red0,\n red1,\n flip ^ 1,\n -Infinity,\n Infinity\n );\n }\n }\n }\n }\n }\n }\n }\n }\n ),\n /***/\n 3545: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = findMedian;\n var genPartition = __webpack_require__2(8105);\n var partitionStartLessThan = genPartition(\"lo start && boxes[ptr + axis] > x; --j, ptr -= elemSize) {\n var aPtr = ptr;\n var bPtr = ptr + elemSize;\n for (var k = 0; k < elemSize; ++k, ++aPtr, ++bPtr) {\n var y = boxes[aPtr];\n boxes[aPtr] = boxes[bPtr];\n boxes[bPtr] = y;\n }\n var tmp = ids[j];\n ids[j] = ids[j - 1];\n ids[j - 1] = tmp;\n }\n }\n }\n function findMedian(d, axis, start, end, boxes, ids) {\n if (end <= start + 1) {\n return start;\n }\n var lo = start;\n var hi = end;\n var mid = end + start >>> 1;\n var elemSize = 2 * d;\n var pivot = mid;\n var value = boxes[elemSize * mid + axis];\n while (lo < hi) {\n if (hi - lo < PARTITION_THRESHOLD) {\n insertionSort(d, axis, lo, hi, boxes, ids);\n value = boxes[elemSize * mid + axis];\n break;\n }\n var count = hi - lo;\n var pivot0 = Math.random() * count + lo | 0;\n var value0 = boxes[elemSize * pivot0 + axis];\n var pivot1 = Math.random() * count + lo | 0;\n var value1 = boxes[elemSize * pivot1 + axis];\n var pivot2 = Math.random() * count + lo | 0;\n var value2 = boxes[elemSize * pivot2 + axis];\n if (value0 <= value1) {\n if (value2 >= value1) {\n pivot = pivot1;\n value = value1;\n } else if (value0 >= value2) {\n pivot = pivot0;\n value = value0;\n } else {\n pivot = pivot2;\n value = value2;\n }\n } else {\n if (value1 >= value2) {\n pivot = pivot1;\n value = value1;\n } else if (value2 >= value0) {\n pivot = pivot0;\n value = value0;\n } else {\n pivot = pivot2;\n value = value2;\n }\n }\n var aPtr = elemSize * (hi - 1);\n var bPtr = elemSize * pivot;\n for (var i = 0; i < elemSize; ++i, ++aPtr, ++bPtr) {\n var x = boxes[aPtr];\n boxes[aPtr] = boxes[bPtr];\n boxes[bPtr] = x;\n }\n var y = ids[hi - 1];\n ids[hi - 1] = ids[pivot];\n ids[pivot] = y;\n pivot = partitionStartLessThan(\n d,\n axis,\n lo,\n hi - 1,\n boxes,\n ids,\n value\n );\n var aPtr = elemSize * (hi - 1);\n var bPtr = elemSize * pivot;\n for (var i = 0; i < elemSize; ++i, ++aPtr, ++bPtr) {\n var x = boxes[aPtr];\n boxes[aPtr] = boxes[bPtr];\n boxes[bPtr] = x;\n }\n var y = ids[hi - 1];\n ids[hi - 1] = ids[pivot];\n ids[pivot] = y;\n if (mid < pivot) {\n hi = pivot - 1;\n while (lo < hi && boxes[elemSize * (hi - 1) + axis] === value) {\n hi -= 1;\n }\n hi += 1;\n } else if (pivot < mid) {\n lo = pivot + 1;\n while (lo < hi && boxes[elemSize * lo + axis] === value) {\n lo += 1;\n }\n } else {\n break;\n }\n }\n return partitionStartLessThan(\n d,\n axis,\n start,\n mid,\n boxes,\n ids,\n boxes[elemSize * mid + axis]\n );\n }\n }\n ),\n /***/\n 8105: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = genPartition;\n var P2F = {\n \"lo===p0\": lo_equal_p0,\n \"lo=p0)&&!(p1>=hi)\": lo_lessThan_p0_and_p1_lessThan_hi\n };\n function genPartition(predicate) {\n return P2F[predicate];\n }\n function lo_equal_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n];\n if (lo === p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessThan_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n];\n if (lo < p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessOrEqual_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var hi = e[k + o];\n if (hi <= p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function hi_lessOrEqual_p0(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var hi = e[k + o];\n if (hi <= p0) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lassOrEqual_p0_and_p0_lessOrEqual_hi(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n], hi = e[k + o];\n if (lo <= p0 && p0 <= hi) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessThan_p0_and_p0_lessOrEqual_hi(a, b, c, d, e, f, p0) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n], hi = e[k + o];\n if (lo < p0 && p0 <= hi) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n function lo_lessThan_p0_and_p1_lessThan_hi(a, b, c, d, e, f, p0, p1) {\n for (var j = 2 * a, k = j * c, l = k, m = c, n = b, o = a + b, p = c; d > p; ++p, k += j) {\n var lo = e[k + n], hi = e[k + o];\n if (!(lo >= p0) && !(p1 >= hi)) if (m === p) m += 1, l += j;\n else {\n for (var s = 0; j > s; ++s) {\n var t = e[k + s];\n e[k + s] = e[l], e[l++] = t;\n }\n var u = f[p];\n f[p] = f[m], f[m++] = u;\n }\n }\n return m;\n }\n }\n ),\n /***/\n 4192: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = wrapper;\n var INSERT_SORT_CUTOFF = 32;\n function wrapper(data, n0) {\n if (n0 <= 4 * INSERT_SORT_CUTOFF) {\n insertionSort(0, n0 - 1, data);\n } else {\n quickSort(0, n0 - 1, data);\n }\n }\n function insertionSort(left, right, data) {\n var ptr = 2 * (left + 1);\n for (var i = left + 1; i <= right; ++i) {\n var a = data[ptr++];\n var b = data[ptr++];\n var j = i;\n var jptr = ptr - 2;\n while (j-- > left) {\n var x = data[jptr - 2];\n var y = data[jptr - 1];\n if (x < a) {\n break;\n } else if (x === a && y < b) {\n break;\n }\n data[jptr] = x;\n data[jptr + 1] = y;\n jptr -= 2;\n }\n data[jptr] = a;\n data[jptr + 1] = b;\n }\n }\n function swap(i, j, data) {\n i *= 2;\n j *= 2;\n var x = data[i];\n var y = data[i + 1];\n data[i] = data[j];\n data[i + 1] = data[j + 1];\n data[j] = x;\n data[j + 1] = y;\n }\n function move(i, j, data) {\n i *= 2;\n j *= 2;\n data[i] = data[j];\n data[i + 1] = data[j + 1];\n }\n function rotate(i, j, k, data) {\n i *= 2;\n j *= 2;\n k *= 2;\n var x = data[i];\n var y = data[i + 1];\n data[i] = data[j];\n data[i + 1] = data[j + 1];\n data[j] = data[k];\n data[j + 1] = data[k + 1];\n data[k] = x;\n data[k + 1] = y;\n }\n function shufflePivot(i, j, px, py, data) {\n i *= 2;\n j *= 2;\n data[i] = data[j];\n data[j] = px;\n data[i + 1] = data[j + 1];\n data[j + 1] = py;\n }\n function compare(i, j, data) {\n i *= 2;\n j *= 2;\n var x = data[i], y = data[j];\n if (x < y) {\n return false;\n } else if (x === y) {\n return data[i + 1] > data[j + 1];\n }\n return true;\n }\n function comparePivot(i, y, b, data) {\n i *= 2;\n var x = data[i];\n if (x < y) {\n return true;\n } else if (x === y) {\n return data[i + 1] < b;\n }\n return false;\n }\n function quickSort(left, right, data) {\n var sixth = (right - left + 1) / 6 | 0, index1 = left + sixth, index5 = right - sixth, index3 = left + right >> 1, index2 = index3 - sixth, index4 = index3 + sixth, el1 = index1, el2 = index2, el3 = index3, el4 = index4, el5 = index5, less = left + 1, great = right - 1, tmp = 0;\n if (compare(el1, el2, data)) {\n tmp = el1;\n el1 = el2;\n el2 = tmp;\n }\n if (compare(el4, el5, data)) {\n tmp = el4;\n el4 = el5;\n el5 = tmp;\n }\n if (compare(el1, el3, data)) {\n tmp = el1;\n el1 = el3;\n el3 = tmp;\n }\n if (compare(el2, el3, data)) {\n tmp = el2;\n el2 = el3;\n el3 = tmp;\n }\n if (compare(el1, el4, data)) {\n tmp = el1;\n el1 = el4;\n el4 = tmp;\n }\n if (compare(el3, el4, data)) {\n tmp = el3;\n el3 = el4;\n el4 = tmp;\n }\n if (compare(el2, el5, data)) {\n tmp = el2;\n el2 = el5;\n el5 = tmp;\n }\n if (compare(el2, el3, data)) {\n tmp = el2;\n el2 = el3;\n el3 = tmp;\n }\n if (compare(el4, el5, data)) {\n tmp = el4;\n el4 = el5;\n el5 = tmp;\n }\n var pivot1X = data[2 * el2];\n var pivot1Y = data[2 * el2 + 1];\n var pivot2X = data[2 * el4];\n var pivot2Y = data[2 * el4 + 1];\n var ptr0 = 2 * el1;\n var ptr2 = 2 * el3;\n var ptr4 = 2 * el5;\n var ptr5 = 2 * index1;\n var ptr6 = 2 * index3;\n var ptr7 = 2 * index5;\n for (var i1 = 0; i1 < 2; ++i1) {\n var x = data[ptr0 + i1];\n var y = data[ptr2 + i1];\n var z = data[ptr4 + i1];\n data[ptr5 + i1] = x;\n data[ptr6 + i1] = y;\n data[ptr7 + i1] = z;\n }\n move(index2, left, data);\n move(index4, right, data);\n for (var k = less; k <= great; ++k) {\n if (comparePivot(k, pivot1X, pivot1Y, data)) {\n if (k !== less) {\n swap(k, less, data);\n }\n ++less;\n } else {\n if (!comparePivot(k, pivot2X, pivot2Y, data)) {\n while (true) {\n if (!comparePivot(great, pivot2X, pivot2Y, data)) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n if (comparePivot(great, pivot1X, pivot1Y, data)) {\n rotate(k, less, great, data);\n ++less;\n --great;\n } else {\n swap(k, great, data);\n --great;\n }\n break;\n }\n }\n }\n }\n }\n shufflePivot(left, less - 1, pivot1X, pivot1Y, data);\n shufflePivot(right, great + 1, pivot2X, pivot2Y, data);\n if (less - 2 - left <= INSERT_SORT_CUTOFF) {\n insertionSort(left, less - 2, data);\n } else {\n quickSort(left, less - 2, data);\n }\n if (right - (great + 2) <= INSERT_SORT_CUTOFF) {\n insertionSort(great + 2, right, data);\n } else {\n quickSort(great + 2, right, data);\n }\n if (great - less <= INSERT_SORT_CUTOFF) {\n insertionSort(less, great, data);\n } else {\n quickSort(less, great, data);\n }\n }\n }\n ),\n /***/\n 855: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = {\n init: sqInit,\n sweepBipartite,\n sweepComplete,\n scanBipartite,\n scanComplete\n };\n var pool = __webpack_require__2(1888);\n var bits = __webpack_require__2(8828);\n var isort = __webpack_require__2(4192);\n var BLUE_FLAG = 1 << 28;\n var INIT_CAPACITY = 1024;\n var RED_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY);\n var RED_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY);\n var BLUE_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY);\n var BLUE_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY);\n var COMMON_SWEEP_QUEUE = pool.mallocInt32(INIT_CAPACITY);\n var COMMON_SWEEP_INDEX = pool.mallocInt32(INIT_CAPACITY);\n var SWEEP_EVENTS = pool.mallocDouble(INIT_CAPACITY * 8);\n function sqInit(count) {\n var rcount = bits.nextPow2(count);\n if (RED_SWEEP_QUEUE.length < rcount) {\n pool.free(RED_SWEEP_QUEUE);\n RED_SWEEP_QUEUE = pool.mallocInt32(rcount);\n }\n if (RED_SWEEP_INDEX.length < rcount) {\n pool.free(RED_SWEEP_INDEX);\n RED_SWEEP_INDEX = pool.mallocInt32(rcount);\n }\n if (BLUE_SWEEP_QUEUE.length < rcount) {\n pool.free(BLUE_SWEEP_QUEUE);\n BLUE_SWEEP_QUEUE = pool.mallocInt32(rcount);\n }\n if (BLUE_SWEEP_INDEX.length < rcount) {\n pool.free(BLUE_SWEEP_INDEX);\n BLUE_SWEEP_INDEX = pool.mallocInt32(rcount);\n }\n if (COMMON_SWEEP_QUEUE.length < rcount) {\n pool.free(COMMON_SWEEP_QUEUE);\n COMMON_SWEEP_QUEUE = pool.mallocInt32(rcount);\n }\n if (COMMON_SWEEP_INDEX.length < rcount) {\n pool.free(COMMON_SWEEP_INDEX);\n COMMON_SWEEP_INDEX = pool.mallocInt32(rcount);\n }\n var eventLength = 8 * rcount;\n if (SWEEP_EVENTS.length < eventLength) {\n pool.free(SWEEP_EVENTS);\n SWEEP_EVENTS = pool.mallocDouble(eventLength);\n }\n }\n function sqPop(queue, index, count, item) {\n var idx = index[item];\n var top = queue[count - 1];\n queue[idx] = top;\n index[top] = idx;\n }\n function sqPush(queue, index, count, item) {\n queue[count] = item;\n index[item] = count;\n }\n function sweepBipartite(d, visit, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = d - 1;\n var iend = elemSize - 1;\n for (var i = redStart; i < redEnd; ++i) {\n var idx = redIndex[i];\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -(idx + 1);\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = blueIndex[i] + BLUE_FLAG;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n var blueActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n if (e >= BLUE_FLAG) {\n e = e - BLUE_FLAG | 0;\n sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, e);\n } else if (e >= 0) {\n sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, e);\n } else if (e <= -BLUE_FLAG) {\n e = -e - BLUE_FLAG | 0;\n for (var j = 0; j < redActive; ++j) {\n var retval = visit(RED_SWEEP_QUEUE[j], e);\n if (retval !== void 0) {\n return retval;\n }\n }\n sqPush(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive++, e);\n } else {\n e = -e - 1 | 0;\n for (var j = 0; j < blueActive; ++j) {\n var retval = visit(e, BLUE_SWEEP_QUEUE[j]);\n if (retval !== void 0) {\n return retval;\n }\n }\n sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, e);\n }\n }\n }\n function sweepComplete(d, visit, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = d - 1;\n var iend = elemSize - 1;\n for (var i = redStart; i < redEnd; ++i) {\n var idx = redIndex[i] + 1 << 1;\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = blueIndex[i] + 1 << 1;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx | 1;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + iend];\n SWEEP_EVENTS[ptr++] = idx | 1;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n var blueActive = 0;\n var commonActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n var color2 = e & 1;\n if (i < n - 1 && e >> 1 === SWEEP_EVENTS[2 * i + 3] >> 1) {\n color2 = 2;\n i += 1;\n }\n if (e < 0) {\n var id = -(e >> 1) - 1;\n for (var j = 0; j < commonActive; ++j) {\n var retval = visit(COMMON_SWEEP_QUEUE[j], id);\n if (retval !== void 0) {\n return retval;\n }\n }\n if (color2 !== 0) {\n for (var j = 0; j < redActive; ++j) {\n var retval = visit(RED_SWEEP_QUEUE[j], id);\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n if (color2 !== 1) {\n for (var j = 0; j < blueActive; ++j) {\n var retval = visit(BLUE_SWEEP_QUEUE[j], id);\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n if (color2 === 0) {\n sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, id);\n } else if (color2 === 1) {\n sqPush(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive++, id);\n } else if (color2 === 2) {\n sqPush(COMMON_SWEEP_QUEUE, COMMON_SWEEP_INDEX, commonActive++, id);\n }\n } else {\n var id = (e >> 1) - 1;\n if (color2 === 0) {\n sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, id);\n } else if (color2 === 1) {\n sqPop(BLUE_SWEEP_QUEUE, BLUE_SWEEP_INDEX, blueActive--, id);\n } else if (color2 === 2) {\n sqPop(COMMON_SWEEP_QUEUE, COMMON_SWEEP_INDEX, commonActive--, id);\n }\n }\n }\n }\n function scanBipartite(d, axis, visit, flip, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = axis;\n var iend = axis + d;\n var redShift = 1;\n var blueShift = 1;\n if (flip) {\n blueShift = BLUE_FLAG;\n } else {\n redShift = BLUE_FLAG;\n }\n for (var i = redStart; i < redEnd; ++i) {\n var idx = i + redShift;\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = i + blueShift;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n if (e < 0) {\n var idx = -e;\n var isRed = false;\n if (idx >= BLUE_FLAG) {\n isRed = !flip;\n idx -= BLUE_FLAG;\n } else {\n isRed = !!flip;\n idx -= 1;\n }\n if (isRed) {\n sqPush(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive++, idx);\n } else {\n var blueId = blueIndex[idx];\n var bluePtr = elemSize * idx;\n var b0 = blue[bluePtr + axis + 1];\n var b1 = blue[bluePtr + axis + 1 + d];\n red_loop:\n for (var j = 0; j < redActive; ++j) {\n var oidx = RED_SWEEP_QUEUE[j];\n var redPtr = elemSize * oidx;\n if (b1 < red[redPtr + axis + 1] || red[redPtr + axis + 1 + d] < b0) {\n continue;\n }\n for (var k = axis + 2; k < d; ++k) {\n if (blue[bluePtr + k + d] < red[redPtr + k] || red[redPtr + k + d] < blue[bluePtr + k]) {\n continue red_loop;\n }\n }\n var redId = redIndex[oidx];\n var retval;\n if (flip) {\n retval = visit(blueId, redId);\n } else {\n retval = visit(redId, blueId);\n }\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n } else {\n sqPop(RED_SWEEP_QUEUE, RED_SWEEP_INDEX, redActive--, e - redShift);\n }\n }\n }\n function scanComplete(d, axis, visit, redStart, redEnd, red, redIndex, blueStart, blueEnd, blue, blueIndex) {\n var ptr = 0;\n var elemSize = 2 * d;\n var istart = axis;\n var iend = axis + d;\n for (var i = redStart; i < redEnd; ++i) {\n var idx = i + BLUE_FLAG;\n var redOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = red[redOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n SWEEP_EVENTS[ptr++] = red[redOffset + iend];\n SWEEP_EVENTS[ptr++] = idx;\n }\n for (var i = blueStart; i < blueEnd; ++i) {\n var idx = i + 1;\n var blueOffset = elemSize * i;\n SWEEP_EVENTS[ptr++] = blue[blueOffset + istart];\n SWEEP_EVENTS[ptr++] = -idx;\n }\n var n = ptr >>> 1;\n isort(SWEEP_EVENTS, n);\n var redActive = 0;\n for (var i = 0; i < n; ++i) {\n var e = SWEEP_EVENTS[2 * i + 1] | 0;\n if (e < 0) {\n var idx = -e;\n if (idx >= BLUE_FLAG) {\n RED_SWEEP_QUEUE[redActive++] = idx - BLUE_FLAG;\n } else {\n idx -= 1;\n var blueId = blueIndex[idx];\n var bluePtr = elemSize * idx;\n var b0 = blue[bluePtr + axis + 1];\n var b1 = blue[bluePtr + axis + 1 + d];\n red_loop:\n for (var j = 0; j < redActive; ++j) {\n var oidx = RED_SWEEP_QUEUE[j];\n var redId = redIndex[oidx];\n if (redId === blueId) {\n break;\n }\n var redPtr = elemSize * oidx;\n if (b1 < red[redPtr + axis + 1] || red[redPtr + axis + 1 + d] < b0) {\n continue;\n }\n for (var k = axis + 2; k < d; ++k) {\n if (blue[bluePtr + k + d] < red[redPtr + k] || red[redPtr + k + d] < blue[bluePtr + k]) {\n continue red_loop;\n }\n }\n var retval = visit(redId, blueId);\n if (retval !== void 0) {\n return retval;\n }\n }\n }\n } else {\n var idx = e - BLUE_FLAG;\n for (var j = redActive - 1; j >= 0; --j) {\n if (RED_SWEEP_QUEUE[j] === idx) {\n for (var k = j + 1; k < redActive; ++k) {\n RED_SWEEP_QUEUE[k - 1] = RED_SWEEP_QUEUE[k];\n }\n break;\n }\n }\n --redActive;\n }\n }\n }\n }\n ),\n /***/\n 2538: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var monotoneTriangulate = __webpack_require__2(8902);\n var makeIndex = __webpack_require__2(5542);\n var delaunayFlip = __webpack_require__2(2272);\n var filterTriangulation = __webpack_require__2(5023);\n module2.exports = cdt2d;\n function canonicalizeEdge(e) {\n return [Math.min(e[0], e[1]), Math.max(e[0], e[1])];\n }\n function compareEdge(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n function canonicalizeEdges(edges) {\n return edges.map(canonicalizeEdge).sort(compareEdge);\n }\n function getDefault(options, property, dflt) {\n if (property in options) {\n return options[property];\n }\n return dflt;\n }\n function cdt2d(points, edges, options) {\n if (!Array.isArray(edges)) {\n options = edges || {};\n edges = [];\n } else {\n options = options || {};\n edges = edges || [];\n }\n var delaunay = !!getDefault(options, \"delaunay\", true);\n var interior = !!getDefault(options, \"interior\", true);\n var exterior = !!getDefault(options, \"exterior\", true);\n var infinity = !!getDefault(options, \"infinity\", false);\n if (!interior && !exterior || points.length === 0) {\n return [];\n }\n var cells = monotoneTriangulate(points, edges);\n if (delaunay || interior !== exterior || infinity) {\n var triangulation = makeIndex(points.length, canonicalizeEdges(edges));\n for (var i = 0; i < cells.length; ++i) {\n var f = cells[i];\n triangulation.addTriangle(f[0], f[1], f[2]);\n }\n if (delaunay) {\n delaunayFlip(points, triangulation);\n }\n if (!exterior) {\n return filterTriangulation(triangulation, -1);\n } else if (!interior) {\n return filterTriangulation(triangulation, 1, infinity);\n } else if (infinity) {\n return filterTriangulation(triangulation, 0, infinity);\n } else {\n return triangulation.cells();\n }\n } else {\n return cells;\n }\n }\n }\n ),\n /***/\n 2272: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var inCircle = __webpack_require__2(2646)[4];\n var bsearch = __webpack_require__2(2478);\n module2.exports = delaunayRefine;\n function testFlip(points, triangulation, stack, a, b, x) {\n var y = triangulation.opposite(a, b);\n if (y < 0) {\n return;\n }\n if (b < a) {\n var tmp = a;\n a = b;\n b = tmp;\n tmp = x;\n x = y;\n y = tmp;\n }\n if (triangulation.isConstraint(a, b)) {\n return;\n }\n if (inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b);\n }\n }\n function delaunayRefine(points, triangulation) {\n var stack = [];\n var numPoints = points.length;\n var stars = triangulation.stars;\n for (var a = 0; a < numPoints; ++a) {\n var star = stars[a];\n for (var j = 1; j < star.length; j += 2) {\n var b = star[j];\n if (b < a) {\n continue;\n }\n if (triangulation.isConstraint(a, b)) {\n continue;\n }\n var x = star[j - 1], y = -1;\n for (var k = 1; k < star.length; k += 2) {\n if (star[k - 1] === b) {\n y = star[k];\n break;\n }\n }\n if (y < 0) {\n continue;\n }\n if (inCircle(points[a], points[b], points[x], points[y]) < 0) {\n stack.push(a, b);\n }\n }\n }\n while (stack.length > 0) {\n var b = stack.pop();\n var a = stack.pop();\n var x = -1, y = -1;\n var star = stars[a];\n for (var i = 1; i < star.length; i += 2) {\n var s = star[i - 1];\n var t = star[i];\n if (s === b) {\n y = t;\n } else if (t === b) {\n x = s;\n }\n }\n if (x < 0 || y < 0) {\n continue;\n }\n if (inCircle(points[a], points[b], points[x], points[y]) >= 0) {\n continue;\n }\n triangulation.flip(a, b);\n testFlip(points, triangulation, stack, x, a, y);\n testFlip(points, triangulation, stack, a, y, x);\n testFlip(points, triangulation, stack, y, b, x);\n testFlip(points, triangulation, stack, b, x, y);\n }\n }\n }\n ),\n /***/\n 5023: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n module2.exports = classifyFaces;\n function FaceIndex(cells, neighbor, constraint, flags, active, next, boundary) {\n this.cells = cells;\n this.neighbor = neighbor;\n this.flags = flags;\n this.constraint = constraint;\n this.active = active;\n this.next = next;\n this.boundary = boundary;\n }\n var proto = FaceIndex.prototype;\n function compareCell(a, b) {\n return a[0] - b[0] || a[1] - b[1] || a[2] - b[2];\n }\n proto.locate = /* @__PURE__ */ function() {\n var key = [0, 0, 0];\n return function(a, b, c) {\n var x = a, y = b, z = c;\n if (b < c) {\n if (b < a) {\n x = b;\n y = c;\n z = a;\n }\n } else if (c < a) {\n x = c;\n y = a;\n z = b;\n }\n if (x < 0) {\n return -1;\n }\n key[0] = x;\n key[1] = y;\n key[2] = z;\n return bsearch.eq(this.cells, key, compareCell);\n };\n }();\n function indexCells(triangulation, infinity) {\n var cells = triangulation.cells();\n var nc = cells.length;\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n var x = c[0], y = c[1], z = c[2];\n if (y < z) {\n if (y < x) {\n c[0] = y;\n c[1] = z;\n c[2] = x;\n }\n } else if (z < x) {\n c[0] = z;\n c[1] = x;\n c[2] = y;\n }\n }\n cells.sort(compareCell);\n var flags = new Array(nc);\n for (var i = 0; i < flags.length; ++i) {\n flags[i] = 0;\n }\n var active = [];\n var next = [];\n var neighbor = new Array(3 * nc);\n var constraint = new Array(3 * nc);\n var boundary = null;\n if (infinity) {\n boundary = [];\n }\n var index = new FaceIndex(\n cells,\n neighbor,\n constraint,\n flags,\n active,\n next,\n boundary\n );\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n for (var j = 0; j < 3; ++j) {\n var x = c[j], y = c[(j + 1) % 3];\n var a = neighbor[3 * i + j] = index.locate(y, x, triangulation.opposite(y, x));\n var b = constraint[3 * i + j] = triangulation.isConstraint(x, y);\n if (a < 0) {\n if (b) {\n next.push(i);\n } else {\n active.push(i);\n flags[i] = 1;\n }\n if (infinity) {\n boundary.push([y, x, -1]);\n }\n }\n }\n }\n return index;\n }\n function filterCells(cells, flags, target) {\n var ptr = 0;\n for (var i = 0; i < cells.length; ++i) {\n if (flags[i] === target) {\n cells[ptr++] = cells[i];\n }\n }\n cells.length = ptr;\n return cells;\n }\n function classifyFaces(triangulation, target, infinity) {\n var index = indexCells(triangulation, infinity);\n if (target === 0) {\n if (infinity) {\n return index.cells.concat(index.boundary);\n } else {\n return index.cells;\n }\n }\n var side = 1;\n var active = index.active;\n var next = index.next;\n var flags = index.flags;\n var cells = index.cells;\n var constraint = index.constraint;\n var neighbor = index.neighbor;\n while (active.length > 0 || next.length > 0) {\n while (active.length > 0) {\n var t = active.pop();\n if (flags[t] === -side) {\n continue;\n }\n flags[t] = side;\n var c = cells[t];\n for (var j = 0; j < 3; ++j) {\n var f = neighbor[3 * t + j];\n if (f >= 0 && flags[f] === 0) {\n if (constraint[3 * t + j]) {\n next.push(f);\n } else {\n active.push(f);\n flags[f] = side;\n }\n }\n }\n }\n var tmp = next;\n next = active;\n active = tmp;\n next.length = 0;\n side = -side;\n }\n var result = filterCells(cells, flags, target);\n if (infinity) {\n return result.concat(index.boundary);\n }\n return result;\n }\n }\n ),\n /***/\n 8902: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n var orient = __webpack_require__2(3250)[3];\n var EVENT_POINT = 0;\n var EVENT_END = 1;\n var EVENT_START = 2;\n module2.exports = monotoneTriangulate;\n function PartialHull(a, b, idx, lowerIds, upperIds) {\n this.a = a;\n this.b = b;\n this.idx = idx;\n this.lowerIds = lowerIds;\n this.upperIds = upperIds;\n }\n function Event(a, b, type, idx) {\n this.a = a;\n this.b = b;\n this.type = type;\n this.idx = idx;\n }\n function compareEvent(a, b) {\n var d = a.a[0] - b.a[0] || a.a[1] - b.a[1] || a.type - b.type;\n if (d) {\n return d;\n }\n if (a.type !== EVENT_POINT) {\n d = orient(a.a, a.b, b.b);\n if (d) {\n return d;\n }\n }\n return a.idx - b.idx;\n }\n function testPoint(hull, p) {\n return orient(hull.a, hull.b, p);\n }\n function addPoint(cells, hulls, points, p, idx) {\n var lo = bsearch.lt(hulls, p, testPoint);\n var hi = bsearch.gt(hulls, p, testPoint);\n for (var i = lo; i < hi; ++i) {\n var hull = hulls[i];\n var lowerIds = hull.lowerIds;\n var m = lowerIds.length;\n while (m > 1 && orient(\n points[lowerIds[m - 2]],\n points[lowerIds[m - 1]],\n p\n ) > 0) {\n cells.push(\n [\n lowerIds[m - 1],\n lowerIds[m - 2],\n idx\n ]\n );\n m -= 1;\n }\n lowerIds.length = m;\n lowerIds.push(idx);\n var upperIds = hull.upperIds;\n var m = upperIds.length;\n while (m > 1 && orient(\n points[upperIds[m - 2]],\n points[upperIds[m - 1]],\n p\n ) < 0) {\n cells.push(\n [\n upperIds[m - 2],\n upperIds[m - 1],\n idx\n ]\n );\n m -= 1;\n }\n upperIds.length = m;\n upperIds.push(idx);\n }\n }\n function findSplit(hull, edge) {\n var d;\n if (hull.a[0] < edge.a[0]) {\n d = orient(hull.a, hull.b, edge.a);\n } else {\n d = orient(edge.b, edge.a, hull.a);\n }\n if (d) {\n return d;\n }\n if (edge.b[0] < hull.b[0]) {\n d = orient(hull.a, hull.b, edge.b);\n } else {\n d = orient(edge.b, edge.a, hull.b);\n }\n return d || hull.idx - edge.idx;\n }\n function splitHulls(hulls, points, event) {\n var splitIdx = bsearch.le(hulls, event, findSplit);\n var hull = hulls[splitIdx];\n var upperIds = hull.upperIds;\n var x = upperIds[upperIds.length - 1];\n hull.upperIds = [x];\n hulls.splice(\n splitIdx + 1,\n 0,\n new PartialHull(event.a, event.b, event.idx, [x], upperIds)\n );\n }\n function mergeHulls(hulls, points, event) {\n var tmp = event.a;\n event.a = event.b;\n event.b = tmp;\n var mergeIdx = bsearch.eq(hulls, event, findSplit);\n var upper = hulls[mergeIdx];\n var lower = hulls[mergeIdx - 1];\n lower.upperIds = upper.upperIds;\n hulls.splice(mergeIdx, 1);\n }\n function monotoneTriangulate(points, edges) {\n var numPoints = points.length;\n var numEdges = edges.length;\n var events = [];\n for (var i = 0; i < numPoints; ++i) {\n events.push(new Event(\n points[i],\n null,\n EVENT_POINT,\n i\n ));\n }\n for (var i = 0; i < numEdges; ++i) {\n var e = edges[i];\n var a = points[e[0]];\n var b = points[e[1]];\n if (a[0] < b[0]) {\n events.push(\n new Event(a, b, EVENT_START, i),\n new Event(b, a, EVENT_END, i)\n );\n } else if (a[0] > b[0]) {\n events.push(\n new Event(b, a, EVENT_START, i),\n new Event(a, b, EVENT_END, i)\n );\n }\n }\n events.sort(compareEvent);\n var minX = events[0].a[0] - (1 + Math.abs(events[0].a[0])) * Math.pow(2, -52);\n var hull = [new PartialHull([minX, 1], [minX, 0], -1, [], [], [], [])];\n var cells = [];\n for (var i = 0, numEvents = events.length; i < numEvents; ++i) {\n var event = events[i];\n var type = event.type;\n if (type === EVENT_POINT) {\n addPoint(cells, hull, points, event.a, event.idx);\n } else if (type === EVENT_START) {\n splitHulls(hull, points, event);\n } else {\n mergeHulls(hull, points, event);\n }\n }\n return cells;\n }\n }\n ),\n /***/\n 5542: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n module2.exports = createTriangulation;\n function Triangulation(stars, edges) {\n this.stars = stars;\n this.edges = edges;\n }\n var proto = Triangulation.prototype;\n function removePair(list, j, k) {\n for (var i = 1, n = list.length; i < n; i += 2) {\n if (list[i - 1] === j && list[i] === k) {\n list[i - 1] = list[n - 2];\n list[i] = list[n - 1];\n list.length = n - 2;\n return;\n }\n }\n }\n proto.isConstraint = /* @__PURE__ */ function() {\n var e = [0, 0];\n function compareLex(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n return function(i, j) {\n e[0] = Math.min(i, j);\n e[1] = Math.max(i, j);\n return bsearch.eq(this.edges, e, compareLex) >= 0;\n };\n }();\n proto.removeTriangle = function(i, j, k) {\n var stars = this.stars;\n removePair(stars[i], j, k);\n removePair(stars[j], k, i);\n removePair(stars[k], i, j);\n };\n proto.addTriangle = function(i, j, k) {\n var stars = this.stars;\n stars[i].push(j, k);\n stars[j].push(k, i);\n stars[k].push(i, j);\n };\n proto.opposite = function(j, i) {\n var list = this.stars[i];\n for (var k = 1, n = list.length; k < n; k += 2) {\n if (list[k] === j) {\n return list[k - 1];\n }\n }\n return -1;\n };\n proto.flip = function(i, j) {\n var a = this.opposite(i, j);\n var b = this.opposite(j, i);\n this.removeTriangle(i, j, a);\n this.removeTriangle(j, i, b);\n this.addTriangle(i, b, a);\n this.addTriangle(j, a, b);\n };\n proto.edges = function() {\n var stars = this.stars;\n var result = [];\n for (var i = 0, n = stars.length; i < n; ++i) {\n var list = stars[i];\n for (var j = 0, m = list.length; j < m; j += 2) {\n result.push([list[j], list[j + 1]]);\n }\n }\n return result;\n };\n proto.cells = function() {\n var stars = this.stars;\n var result = [];\n for (var i = 0, n = stars.length; i < n; ++i) {\n var list = stars[i];\n for (var j = 0, m = list.length; j < m; j += 2) {\n var s = list[j];\n var t = list[j + 1];\n if (i < Math.min(s, t)) {\n result.push([i, s, t]);\n }\n }\n }\n return result;\n };\n function createTriangulation(numVerts, edges) {\n var stars = new Array(numVerts);\n for (var i = 0; i < numVerts; ++i) {\n stars[i] = [];\n }\n return new Triangulation(stars, edges);\n }\n }\n ),\n /***/\n 2419: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = orientation;\n function orientation(s) {\n var p = 1;\n for (var i = 1; i < s.length; ++i) {\n for (var j = 0; j < i; ++j) {\n if (s[i] < s[j]) {\n p = -p;\n } else if (s[j] === s[i]) {\n return 0;\n }\n }\n }\n return p;\n }\n }\n ),\n /***/\n 3628: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var dup = __webpack_require__2(1338);\n var solve = __webpack_require__2(727);\n function dot(a, b) {\n var s = 0;\n var d = a.length;\n for (var i = 0; i < d; ++i) {\n s += a[i] * b[i];\n }\n return s;\n }\n function barycentricCircumcenter(points) {\n var N = points.length;\n if (N === 0) {\n return [];\n }\n var D2 = points[0].length;\n var A2 = dup([points.length + 1, points.length + 1], 1);\n var b = dup([points.length + 1], 1);\n A2[N][N] = 0;\n for (var i = 0; i < N; ++i) {\n for (var j = 0; j <= i; ++j) {\n A2[j][i] = A2[i][j] = 2 * dot(points[i], points[j]);\n }\n b[i] = dot(points[i], points[i]);\n }\n var x = solve(A2, b);\n var denom = 0;\n var h = x[N + 1];\n for (var i = 0; i < h.length; ++i) {\n denom += h[i];\n }\n var y = new Array(N);\n for (var i = 0; i < N; ++i) {\n var h = x[i];\n var numer = 0;\n for (var j = 0; j < h.length; ++j) {\n numer += h[j];\n }\n y[i] = numer / denom;\n }\n return y;\n }\n function circumcenter(points) {\n if (points.length === 0) {\n return [];\n }\n var D2 = points[0].length;\n var result = dup([D2]);\n var weights = barycentricCircumcenter(points);\n for (var i = 0; i < points.length; ++i) {\n for (var j = 0; j < D2; ++j) {\n result[j] += points[i][j] * weights[i];\n }\n }\n return result;\n }\n circumcenter.barycenetric = barycentricCircumcenter;\n module2.exports = circumcenter;\n }\n ),\n /***/\n 6037: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = circumradius;\n var circumcenter = __webpack_require__2(3628);\n function circumradius(points) {\n var center = circumcenter(points);\n var avgDist = 0;\n for (var i = 0; i < points.length; ++i) {\n var p = points[i];\n for (var j = 0; j < center.length; ++j) {\n avgDist += Math.pow(p[j] - center[j], 2);\n }\n }\n return Math.sqrt(avgDist / points.length);\n }\n }\n ),\n /***/\n 332: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = cleanPSLG;\n var UnionFind = __webpack_require__2(1755);\n var boxIntersect = __webpack_require__2(6867);\n var segseg = __webpack_require__2(1125);\n var rat = __webpack_require__2(7842);\n var ratCmp = __webpack_require__2(1318);\n var ratToFloat = __webpack_require__2(946);\n var ratVec = __webpack_require__2(5838);\n var nextafter = __webpack_require__2(1278);\n var solveIntersection = __webpack_require__2(3637);\n function boundRat(r) {\n var f = ratToFloat(r);\n return [\n nextafter(f, -Infinity),\n nextafter(f, Infinity)\n ];\n }\n function boundEdges(points, edges) {\n var bounds = new Array(edges.length);\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n var a = points[e[0]];\n var b = points[e[1]];\n bounds[i] = [\n nextafter(Math.min(a[0], b[0]), -Infinity),\n nextafter(Math.min(a[1], b[1]), -Infinity),\n nextafter(Math.max(a[0], b[0]), Infinity),\n nextafter(Math.max(a[1], b[1]), Infinity)\n ];\n }\n return bounds;\n }\n function boundPoints(points) {\n var bounds = new Array(points.length);\n for (var i = 0; i < points.length; ++i) {\n var p = points[i];\n bounds[i] = [\n nextafter(p[0], -Infinity),\n nextafter(p[1], -Infinity),\n nextafter(p[0], Infinity),\n nextafter(p[1], Infinity)\n ];\n }\n return bounds;\n }\n function getCrossings(points, edges, edgeBounds) {\n var result = [];\n boxIntersect(edgeBounds, function(i, j) {\n var e = edges[i];\n var f = edges[j];\n if (e[0] === f[0] || e[0] === f[1] || e[1] === f[0] || e[1] === f[1]) {\n return;\n }\n var a = points[e[0]];\n var b = points[e[1]];\n var c = points[f[0]];\n var d = points[f[1]];\n if (segseg(a, b, c, d)) {\n result.push([i, j]);\n }\n });\n return result;\n }\n function getTJunctions(points, edges, edgeBounds, vertBounds) {\n var result = [];\n boxIntersect(edgeBounds, vertBounds, function(i, v) {\n var e = edges[i];\n if (e[0] === v || e[1] === v) {\n return;\n }\n var p = points[v];\n var a = points[e[0]];\n var b = points[e[1]];\n if (segseg(a, b, p, p)) {\n result.push([i, v]);\n }\n });\n return result;\n }\n function cutEdges(floatPoints, edges, crossings, junctions, useColor) {\n var i, e;\n var ratPoints = floatPoints.map(function(p) {\n return [\n rat(p[0]),\n rat(p[1])\n ];\n });\n for (i = 0; i < crossings.length; ++i) {\n var crossing = crossings[i];\n e = crossing[0];\n var f = crossing[1];\n var ee = edges[e];\n var ef = edges[f];\n var x = solveIntersection(\n ratVec(floatPoints[ee[0]]),\n ratVec(floatPoints[ee[1]]),\n ratVec(floatPoints[ef[0]]),\n ratVec(floatPoints[ef[1]])\n );\n if (!x) {\n continue;\n }\n var idx = floatPoints.length;\n floatPoints.push([ratToFloat(x[0]), ratToFloat(x[1])]);\n ratPoints.push(x);\n junctions.push([e, idx], [f, idx]);\n }\n junctions.sort(function(a2, b2) {\n if (a2[0] !== b2[0]) {\n return a2[0] - b2[0];\n }\n var u = ratPoints[a2[1]];\n var v = ratPoints[b2[1]];\n return ratCmp(u[0], v[0]) || ratCmp(u[1], v[1]);\n });\n for (i = junctions.length - 1; i >= 0; --i) {\n var junction = junctions[i];\n e = junction[0];\n var edge = edges[e];\n var s = edge[0];\n var t = edge[1];\n var a = floatPoints[s];\n var b = floatPoints[t];\n if ((a[0] - b[0] || a[1] - b[1]) < 0) {\n var tmp = s;\n s = t;\n t = tmp;\n }\n edge[0] = s;\n var last = edge[1] = junction[1];\n var color2;\n if (useColor) {\n color2 = edge[2];\n }\n while (i > 0 && junctions[i - 1][0] === e) {\n var junction = junctions[--i];\n var next = junction[1];\n if (useColor) {\n edges.push([last, next, color2]);\n } else {\n edges.push([last, next]);\n }\n last = next;\n }\n if (useColor) {\n edges.push([last, t, color2]);\n } else {\n edges.push([last, t]);\n }\n }\n return ratPoints;\n }\n function dedupPoints(floatPoints, ratPoints, floatBounds) {\n var numPoints = ratPoints.length;\n var uf = new UnionFind(numPoints);\n var bounds = [];\n for (var i = 0; i < ratPoints.length; ++i) {\n var p = ratPoints[i];\n var xb = boundRat(p[0]);\n var yb = boundRat(p[1]);\n bounds.push([\n nextafter(xb[0], -Infinity),\n nextafter(yb[0], -Infinity),\n nextafter(xb[1], Infinity),\n nextafter(yb[1], Infinity)\n ]);\n }\n boxIntersect(bounds, function(i2, j2) {\n uf.link(i2, j2);\n });\n var noDupes = true;\n var labels = new Array(numPoints);\n for (var i = 0; i < numPoints; ++i) {\n var j = uf.find(i);\n if (j !== i) {\n noDupes = false;\n floatPoints[j] = [\n Math.min(floatPoints[i][0], floatPoints[j][0]),\n Math.min(floatPoints[i][1], floatPoints[j][1])\n ];\n }\n }\n if (noDupes) {\n return null;\n }\n var ptr = 0;\n for (var i = 0; i < numPoints; ++i) {\n var j = uf.find(i);\n if (j === i) {\n labels[i] = ptr;\n floatPoints[ptr++] = floatPoints[i];\n } else {\n labels[i] = -1;\n }\n }\n floatPoints.length = ptr;\n for (var i = 0; i < numPoints; ++i) {\n if (labels[i] < 0) {\n labels[i] = labels[uf.find(i)];\n }\n }\n return labels;\n }\n function compareLex2(a, b) {\n return a[0] - b[0] || a[1] - b[1];\n }\n function compareLex3(a, b) {\n var d = a[0] - b[0] || a[1] - b[1];\n if (d) {\n return d;\n }\n if (a[2] < b[2]) {\n return -1;\n } else if (a[2] > b[2]) {\n return 1;\n }\n return 0;\n }\n function dedupEdges(edges, labels, useColor) {\n if (edges.length === 0) {\n return;\n }\n if (labels) {\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n var a = labels[e[0]];\n var b = labels[e[1]];\n e[0] = Math.min(a, b);\n e[1] = Math.max(a, b);\n }\n } else {\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n var a = e[0];\n var b = e[1];\n e[0] = Math.min(a, b);\n e[1] = Math.max(a, b);\n }\n }\n if (useColor) {\n edges.sort(compareLex3);\n } else {\n edges.sort(compareLex2);\n }\n var ptr = 1;\n for (var i = 1; i < edges.length; ++i) {\n var prev = edges[i - 1];\n var next = edges[i];\n if (next[0] === prev[0] && next[1] === prev[1] && (!useColor || next[2] === prev[2])) {\n continue;\n }\n edges[ptr++] = next;\n }\n edges.length = ptr;\n }\n function preRound(points, edges, useColor) {\n var labels = dedupPoints(points, [], boundPoints(points));\n dedupEdges(edges, labels, useColor);\n return !!labels;\n }\n function snapRound(points, edges, useColor) {\n var edgeBounds = boundEdges(points, edges);\n var crossings = getCrossings(points, edges, edgeBounds);\n var vertBounds = boundPoints(points);\n var tjunctions = getTJunctions(points, edges, edgeBounds, vertBounds);\n var ratPoints = cutEdges(points, edges, crossings, tjunctions, useColor);\n var labels = dedupPoints(points, ratPoints, vertBounds);\n dedupEdges(edges, labels, useColor);\n if (!labels) {\n return crossings.length > 0 || tjunctions.length > 0;\n }\n return true;\n }\n function cleanPSLG(points, edges, colors) {\n var prevEdges;\n if (colors) {\n prevEdges = edges;\n var augEdges = new Array(edges.length);\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n augEdges[i] = [e[0], e[1], colors[i]];\n }\n edges = augEdges;\n }\n var modified = preRound(points, edges, !!colors);\n while (snapRound(points, edges, !!colors)) {\n modified = true;\n }\n if (!!colors && modified) {\n prevEdges.length = 0;\n colors.length = 0;\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n prevEdges.push([e[0], e[1]]);\n colors.push(e[2]);\n }\n }\n return modified;\n }\n }\n ),\n /***/\n 3637: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = solveIntersection;\n var ratMul = __webpack_require__2(6504);\n var ratDiv = __webpack_require__2(8697);\n var ratSub = __webpack_require__2(5572);\n var ratSign = __webpack_require__2(7721);\n var rvSub = __webpack_require__2(544);\n var rvAdd = __webpack_require__2(2653);\n var rvMuls = __webpack_require__2(8987);\n function ratPerp(a, b) {\n return ratSub(ratMul(a[0], b[1]), ratMul(a[1], b[0]));\n }\n function solveIntersection(a, b, c, d) {\n var ba = rvSub(b, a);\n var dc = rvSub(d, c);\n var baXdc = ratPerp(ba, dc);\n if (ratSign(baXdc) === 0) {\n return null;\n }\n var ac = rvSub(a, c);\n var dcXac = ratPerp(dc, ac);\n var t = ratDiv(dcXac, baXdc);\n var s = rvMuls(ba, t);\n var r = rvAdd(a, s);\n return r;\n }\n }\n ),\n /***/\n 3642: (\n /***/\n function(module2) {\n module2.exports = {\n \"jet\": [{ \"index\": 0, \"rgb\": [0, 0, 131] }, { \"index\": 0.125, \"rgb\": [0, 60, 170] }, { \"index\": 0.375, \"rgb\": [5, 255, 255] }, { \"index\": 0.625, \"rgb\": [255, 255, 0] }, { \"index\": 0.875, \"rgb\": [250, 0, 0] }, { \"index\": 1, \"rgb\": [128, 0, 0] }],\n \"hsv\": [{ \"index\": 0, \"rgb\": [255, 0, 0] }, { \"index\": 0.169, \"rgb\": [253, 255, 2] }, { \"index\": 0.173, \"rgb\": [247, 255, 2] }, { \"index\": 0.337, \"rgb\": [0, 252, 4] }, { \"index\": 0.341, \"rgb\": [0, 252, 10] }, { \"index\": 0.506, \"rgb\": [1, 249, 255] }, { \"index\": 0.671, \"rgb\": [2, 0, 253] }, { \"index\": 0.675, \"rgb\": [8, 0, 253] }, { \"index\": 0.839, \"rgb\": [255, 0, 251] }, { \"index\": 0.843, \"rgb\": [255, 0, 245] }, { \"index\": 1, \"rgb\": [255, 0, 6] }],\n \"hot\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.3, \"rgb\": [230, 0, 0] }, { \"index\": 0.6, \"rgb\": [255, 210, 0] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"spring\": [{ \"index\": 0, \"rgb\": [255, 0, 255] }, { \"index\": 1, \"rgb\": [255, 255, 0] }],\n \"summer\": [{ \"index\": 0, \"rgb\": [0, 128, 102] }, { \"index\": 1, \"rgb\": [255, 255, 102] }],\n \"autumn\": [{ \"index\": 0, \"rgb\": [255, 0, 0] }, { \"index\": 1, \"rgb\": [255, 255, 0] }],\n \"winter\": [{ \"index\": 0, \"rgb\": [0, 0, 255] }, { \"index\": 1, \"rgb\": [0, 255, 128] }],\n \"bone\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.376, \"rgb\": [84, 84, 116] }, { \"index\": 0.753, \"rgb\": [169, 200, 200] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"copper\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.804, \"rgb\": [255, 160, 102] }, { \"index\": 1, \"rgb\": [255, 199, 127] }],\n \"greys\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"yignbu\": [{ \"index\": 0, \"rgb\": [8, 29, 88] }, { \"index\": 0.125, \"rgb\": [37, 52, 148] }, { \"index\": 0.25, \"rgb\": [34, 94, 168] }, { \"index\": 0.375, \"rgb\": [29, 145, 192] }, { \"index\": 0.5, \"rgb\": [65, 182, 196] }, { \"index\": 0.625, \"rgb\": [127, 205, 187] }, { \"index\": 0.75, \"rgb\": [199, 233, 180] }, { \"index\": 0.875, \"rgb\": [237, 248, 217] }, { \"index\": 1, \"rgb\": [255, 255, 217] }],\n \"greens\": [{ \"index\": 0, \"rgb\": [0, 68, 27] }, { \"index\": 0.125, \"rgb\": [0, 109, 44] }, { \"index\": 0.25, \"rgb\": [35, 139, 69] }, { \"index\": 0.375, \"rgb\": [65, 171, 93] }, { \"index\": 0.5, \"rgb\": [116, 196, 118] }, { \"index\": 0.625, \"rgb\": [161, 217, 155] }, { \"index\": 0.75, \"rgb\": [199, 233, 192] }, { \"index\": 0.875, \"rgb\": [229, 245, 224] }, { \"index\": 1, \"rgb\": [247, 252, 245] }],\n \"yiorrd\": [{ \"index\": 0, \"rgb\": [128, 0, 38] }, { \"index\": 0.125, \"rgb\": [189, 0, 38] }, { \"index\": 0.25, \"rgb\": [227, 26, 28] }, { \"index\": 0.375, \"rgb\": [252, 78, 42] }, { \"index\": 0.5, \"rgb\": [253, 141, 60] }, { \"index\": 0.625, \"rgb\": [254, 178, 76] }, { \"index\": 0.75, \"rgb\": [254, 217, 118] }, { \"index\": 0.875, \"rgb\": [255, 237, 160] }, { \"index\": 1, \"rgb\": [255, 255, 204] }],\n \"bluered\": [{ \"index\": 0, \"rgb\": [0, 0, 255] }, { \"index\": 1, \"rgb\": [255, 0, 0] }],\n \"rdbu\": [{ \"index\": 0, \"rgb\": [5, 10, 172] }, { \"index\": 0.35, \"rgb\": [106, 137, 247] }, { \"index\": 0.5, \"rgb\": [190, 190, 190] }, { \"index\": 0.6, \"rgb\": [220, 170, 132] }, { \"index\": 0.7, \"rgb\": [230, 145, 90] }, { \"index\": 1, \"rgb\": [178, 10, 28] }],\n \"picnic\": [{ \"index\": 0, \"rgb\": [0, 0, 255] }, { \"index\": 0.1, \"rgb\": [51, 153, 255] }, { \"index\": 0.2, \"rgb\": [102, 204, 255] }, { \"index\": 0.3, \"rgb\": [153, 204, 255] }, { \"index\": 0.4, \"rgb\": [204, 204, 255] }, { \"index\": 0.5, \"rgb\": [255, 255, 255] }, { \"index\": 0.6, \"rgb\": [255, 204, 255] }, { \"index\": 0.7, \"rgb\": [255, 153, 255] }, { \"index\": 0.8, \"rgb\": [255, 102, 204] }, { \"index\": 0.9, \"rgb\": [255, 102, 102] }, { \"index\": 1, \"rgb\": [255, 0, 0] }],\n \"rainbow\": [{ \"index\": 0, \"rgb\": [150, 0, 90] }, { \"index\": 0.125, \"rgb\": [0, 0, 200] }, { \"index\": 0.25, \"rgb\": [0, 25, 255] }, { \"index\": 0.375, \"rgb\": [0, 152, 255] }, { \"index\": 0.5, \"rgb\": [44, 255, 150] }, { \"index\": 0.625, \"rgb\": [151, 255, 0] }, { \"index\": 0.75, \"rgb\": [255, 234, 0] }, { \"index\": 0.875, \"rgb\": [255, 111, 0] }, { \"index\": 1, \"rgb\": [255, 0, 0] }],\n \"portland\": [{ \"index\": 0, \"rgb\": [12, 51, 131] }, { \"index\": 0.25, \"rgb\": [10, 136, 186] }, { \"index\": 0.5, \"rgb\": [242, 211, 56] }, { \"index\": 0.75, \"rgb\": [242, 143, 56] }, { \"index\": 1, \"rgb\": [217, 30, 30] }],\n \"blackbody\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.2, \"rgb\": [230, 0, 0] }, { \"index\": 0.4, \"rgb\": [230, 210, 0] }, { \"index\": 0.7, \"rgb\": [255, 255, 255] }, { \"index\": 1, \"rgb\": [160, 200, 255] }],\n \"earth\": [{ \"index\": 0, \"rgb\": [0, 0, 130] }, { \"index\": 0.1, \"rgb\": [0, 180, 180] }, { \"index\": 0.2, \"rgb\": [40, 210, 40] }, { \"index\": 0.4, \"rgb\": [230, 230, 50] }, { \"index\": 0.6, \"rgb\": [120, 70, 20] }, { \"index\": 1, \"rgb\": [255, 255, 255] }],\n \"electric\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.15, \"rgb\": [30, 0, 100] }, { \"index\": 0.4, \"rgb\": [120, 0, 100] }, { \"index\": 0.6, \"rgb\": [160, 90, 0] }, { \"index\": 0.8, \"rgb\": [230, 200, 0] }, { \"index\": 1, \"rgb\": [255, 250, 220] }],\n \"alpha\": [{ \"index\": 0, \"rgb\": [255, 255, 255, 0] }, { \"index\": 1, \"rgb\": [255, 255, 255, 1] }],\n \"viridis\": [{ \"index\": 0, \"rgb\": [68, 1, 84] }, { \"index\": 0.13, \"rgb\": [71, 44, 122] }, { \"index\": 0.25, \"rgb\": [59, 81, 139] }, { \"index\": 0.38, \"rgb\": [44, 113, 142] }, { \"index\": 0.5, \"rgb\": [33, 144, 141] }, { \"index\": 0.63, \"rgb\": [39, 173, 129] }, { \"index\": 0.75, \"rgb\": [92, 200, 99] }, { \"index\": 0.88, \"rgb\": [170, 220, 50] }, { \"index\": 1, \"rgb\": [253, 231, 37] }],\n \"inferno\": [{ \"index\": 0, \"rgb\": [0, 0, 4] }, { \"index\": 0.13, \"rgb\": [31, 12, 72] }, { \"index\": 0.25, \"rgb\": [85, 15, 109] }, { \"index\": 0.38, \"rgb\": [136, 34, 106] }, { \"index\": 0.5, \"rgb\": [186, 54, 85] }, { \"index\": 0.63, \"rgb\": [227, 89, 51] }, { \"index\": 0.75, \"rgb\": [249, 140, 10] }, { \"index\": 0.88, \"rgb\": [249, 201, 50] }, { \"index\": 1, \"rgb\": [252, 255, 164] }],\n \"magma\": [{ \"index\": 0, \"rgb\": [0, 0, 4] }, { \"index\": 0.13, \"rgb\": [28, 16, 68] }, { \"index\": 0.25, \"rgb\": [79, 18, 123] }, { \"index\": 0.38, \"rgb\": [129, 37, 129] }, { \"index\": 0.5, \"rgb\": [181, 54, 122] }, { \"index\": 0.63, \"rgb\": [229, 80, 100] }, { \"index\": 0.75, \"rgb\": [251, 135, 97] }, { \"index\": 0.88, \"rgb\": [254, 194, 135] }, { \"index\": 1, \"rgb\": [252, 253, 191] }],\n \"plasma\": [{ \"index\": 0, \"rgb\": [13, 8, 135] }, { \"index\": 0.13, \"rgb\": [75, 3, 161] }, { \"index\": 0.25, \"rgb\": [125, 3, 168] }, { \"index\": 0.38, \"rgb\": [168, 34, 150] }, { \"index\": 0.5, \"rgb\": [203, 70, 121] }, { \"index\": 0.63, \"rgb\": [229, 107, 93] }, { \"index\": 0.75, \"rgb\": [248, 148, 65] }, { \"index\": 0.88, \"rgb\": [253, 195, 40] }, { \"index\": 1, \"rgb\": [240, 249, 33] }],\n \"warm\": [{ \"index\": 0, \"rgb\": [125, 0, 179] }, { \"index\": 0.13, \"rgb\": [172, 0, 187] }, { \"index\": 0.25, \"rgb\": [219, 0, 170] }, { \"index\": 0.38, \"rgb\": [255, 0, 130] }, { \"index\": 0.5, \"rgb\": [255, 63, 74] }, { \"index\": 0.63, \"rgb\": [255, 123, 0] }, { \"index\": 0.75, \"rgb\": [234, 176, 0] }, { \"index\": 0.88, \"rgb\": [190, 228, 0] }, { \"index\": 1, \"rgb\": [147, 255, 0] }],\n \"cool\": [{ \"index\": 0, \"rgb\": [125, 0, 179] }, { \"index\": 0.13, \"rgb\": [116, 0, 218] }, { \"index\": 0.25, \"rgb\": [98, 74, 237] }, { \"index\": 0.38, \"rgb\": [68, 146, 231] }, { \"index\": 0.5, \"rgb\": [0, 204, 197] }, { \"index\": 0.63, \"rgb\": [0, 247, 146] }, { \"index\": 0.75, \"rgb\": [0, 255, 88] }, { \"index\": 0.88, \"rgb\": [40, 255, 8] }, { \"index\": 1, \"rgb\": [147, 255, 0] }],\n \"rainbow-soft\": [{ \"index\": 0, \"rgb\": [125, 0, 179] }, { \"index\": 0.1, \"rgb\": [199, 0, 180] }, { \"index\": 0.2, \"rgb\": [255, 0, 121] }, { \"index\": 0.3, \"rgb\": [255, 108, 0] }, { \"index\": 0.4, \"rgb\": [222, 194, 0] }, { \"index\": 0.5, \"rgb\": [150, 255, 0] }, { \"index\": 0.6, \"rgb\": [0, 255, 55] }, { \"index\": 0.7, \"rgb\": [0, 246, 150] }, { \"index\": 0.8, \"rgb\": [50, 167, 222] }, { \"index\": 0.9, \"rgb\": [103, 51, 235] }, { \"index\": 1, \"rgb\": [124, 0, 186] }],\n \"bathymetry\": [{ \"index\": 0, \"rgb\": [40, 26, 44] }, { \"index\": 0.13, \"rgb\": [59, 49, 90] }, { \"index\": 0.25, \"rgb\": [64, 76, 139] }, { \"index\": 0.38, \"rgb\": [63, 110, 151] }, { \"index\": 0.5, \"rgb\": [72, 142, 158] }, { \"index\": 0.63, \"rgb\": [85, 174, 163] }, { \"index\": 0.75, \"rgb\": [120, 206, 163] }, { \"index\": 0.88, \"rgb\": [187, 230, 172] }, { \"index\": 1, \"rgb\": [253, 254, 204] }],\n \"cdom\": [{ \"index\": 0, \"rgb\": [47, 15, 62] }, { \"index\": 0.13, \"rgb\": [87, 23, 86] }, { \"index\": 0.25, \"rgb\": [130, 28, 99] }, { \"index\": 0.38, \"rgb\": [171, 41, 96] }, { \"index\": 0.5, \"rgb\": [206, 67, 86] }, { \"index\": 0.63, \"rgb\": [230, 106, 84] }, { \"index\": 0.75, \"rgb\": [242, 149, 103] }, { \"index\": 0.88, \"rgb\": [249, 193, 135] }, { \"index\": 1, \"rgb\": [254, 237, 176] }],\n \"chlorophyll\": [{ \"index\": 0, \"rgb\": [18, 36, 20] }, { \"index\": 0.13, \"rgb\": [25, 63, 41] }, { \"index\": 0.25, \"rgb\": [24, 91, 59] }, { \"index\": 0.38, \"rgb\": [13, 119, 72] }, { \"index\": 0.5, \"rgb\": [18, 148, 80] }, { \"index\": 0.63, \"rgb\": [80, 173, 89] }, { \"index\": 0.75, \"rgb\": [132, 196, 122] }, { \"index\": 0.88, \"rgb\": [175, 221, 162] }, { \"index\": 1, \"rgb\": [215, 249, 208] }],\n \"density\": [{ \"index\": 0, \"rgb\": [54, 14, 36] }, { \"index\": 0.13, \"rgb\": [89, 23, 80] }, { \"index\": 0.25, \"rgb\": [110, 45, 132] }, { \"index\": 0.38, \"rgb\": [120, 77, 178] }, { \"index\": 0.5, \"rgb\": [120, 113, 213] }, { \"index\": 0.63, \"rgb\": [115, 151, 228] }, { \"index\": 0.75, \"rgb\": [134, 185, 227] }, { \"index\": 0.88, \"rgb\": [177, 214, 227] }, { \"index\": 1, \"rgb\": [230, 241, 241] }],\n \"freesurface-blue\": [{ \"index\": 0, \"rgb\": [30, 4, 110] }, { \"index\": 0.13, \"rgb\": [47, 14, 176] }, { \"index\": 0.25, \"rgb\": [41, 45, 236] }, { \"index\": 0.38, \"rgb\": [25, 99, 212] }, { \"index\": 0.5, \"rgb\": [68, 131, 200] }, { \"index\": 0.63, \"rgb\": [114, 156, 197] }, { \"index\": 0.75, \"rgb\": [157, 181, 203] }, { \"index\": 0.88, \"rgb\": [200, 208, 216] }, { \"index\": 1, \"rgb\": [241, 237, 236] }],\n \"freesurface-red\": [{ \"index\": 0, \"rgb\": [60, 9, 18] }, { \"index\": 0.13, \"rgb\": [100, 17, 27] }, { \"index\": 0.25, \"rgb\": [142, 20, 29] }, { \"index\": 0.38, \"rgb\": [177, 43, 27] }, { \"index\": 0.5, \"rgb\": [192, 87, 63] }, { \"index\": 0.63, \"rgb\": [205, 125, 105] }, { \"index\": 0.75, \"rgb\": [216, 162, 148] }, { \"index\": 0.88, \"rgb\": [227, 199, 193] }, { \"index\": 1, \"rgb\": [241, 237, 236] }],\n \"oxygen\": [{ \"index\": 0, \"rgb\": [64, 5, 5] }, { \"index\": 0.13, \"rgb\": [106, 6, 15] }, { \"index\": 0.25, \"rgb\": [144, 26, 7] }, { \"index\": 0.38, \"rgb\": [168, 64, 3] }, { \"index\": 0.5, \"rgb\": [188, 100, 4] }, { \"index\": 0.63, \"rgb\": [206, 136, 11] }, { \"index\": 0.75, \"rgb\": [220, 174, 25] }, { \"index\": 0.88, \"rgb\": [231, 215, 44] }, { \"index\": 1, \"rgb\": [248, 254, 105] }],\n \"par\": [{ \"index\": 0, \"rgb\": [51, 20, 24] }, { \"index\": 0.13, \"rgb\": [90, 32, 35] }, { \"index\": 0.25, \"rgb\": [129, 44, 34] }, { \"index\": 0.38, \"rgb\": [159, 68, 25] }, { \"index\": 0.5, \"rgb\": [182, 99, 19] }, { \"index\": 0.63, \"rgb\": [199, 134, 22] }, { \"index\": 0.75, \"rgb\": [212, 171, 35] }, { \"index\": 0.88, \"rgb\": [221, 210, 54] }, { \"index\": 1, \"rgb\": [225, 253, 75] }],\n \"phase\": [{ \"index\": 0, \"rgb\": [145, 105, 18] }, { \"index\": 0.13, \"rgb\": [184, 71, 38] }, { \"index\": 0.25, \"rgb\": [186, 58, 115] }, { \"index\": 0.38, \"rgb\": [160, 71, 185] }, { \"index\": 0.5, \"rgb\": [110, 97, 218] }, { \"index\": 0.63, \"rgb\": [50, 123, 164] }, { \"index\": 0.75, \"rgb\": [31, 131, 110] }, { \"index\": 0.88, \"rgb\": [77, 129, 34] }, { \"index\": 1, \"rgb\": [145, 105, 18] }],\n \"salinity\": [{ \"index\": 0, \"rgb\": [42, 24, 108] }, { \"index\": 0.13, \"rgb\": [33, 50, 162] }, { \"index\": 0.25, \"rgb\": [15, 90, 145] }, { \"index\": 0.38, \"rgb\": [40, 118, 137] }, { \"index\": 0.5, \"rgb\": [59, 146, 135] }, { \"index\": 0.63, \"rgb\": [79, 175, 126] }, { \"index\": 0.75, \"rgb\": [120, 203, 104] }, { \"index\": 0.88, \"rgb\": [193, 221, 100] }, { \"index\": 1, \"rgb\": [253, 239, 154] }],\n \"temperature\": [{ \"index\": 0, \"rgb\": [4, 35, 51] }, { \"index\": 0.13, \"rgb\": [23, 51, 122] }, { \"index\": 0.25, \"rgb\": [85, 59, 157] }, { \"index\": 0.38, \"rgb\": [129, 79, 143] }, { \"index\": 0.5, \"rgb\": [175, 95, 130] }, { \"index\": 0.63, \"rgb\": [222, 112, 101] }, { \"index\": 0.75, \"rgb\": [249, 146, 66] }, { \"index\": 0.88, \"rgb\": [249, 196, 65] }, { \"index\": 1, \"rgb\": [232, 250, 91] }],\n \"turbidity\": [{ \"index\": 0, \"rgb\": [34, 31, 27] }, { \"index\": 0.13, \"rgb\": [65, 50, 41] }, { \"index\": 0.25, \"rgb\": [98, 69, 52] }, { \"index\": 0.38, \"rgb\": [131, 89, 57] }, { \"index\": 0.5, \"rgb\": [161, 112, 59] }, { \"index\": 0.63, \"rgb\": [185, 140, 66] }, { \"index\": 0.75, \"rgb\": [202, 174, 88] }, { \"index\": 0.88, \"rgb\": [216, 209, 126] }, { \"index\": 1, \"rgb\": [233, 246, 171] }],\n \"velocity-blue\": [{ \"index\": 0, \"rgb\": [17, 32, 64] }, { \"index\": 0.13, \"rgb\": [35, 52, 116] }, { \"index\": 0.25, \"rgb\": [29, 81, 156] }, { \"index\": 0.38, \"rgb\": [31, 113, 162] }, { \"index\": 0.5, \"rgb\": [50, 144, 169] }, { \"index\": 0.63, \"rgb\": [87, 173, 176] }, { \"index\": 0.75, \"rgb\": [149, 196, 189] }, { \"index\": 0.88, \"rgb\": [203, 221, 211] }, { \"index\": 1, \"rgb\": [254, 251, 230] }],\n \"velocity-green\": [{ \"index\": 0, \"rgb\": [23, 35, 19] }, { \"index\": 0.13, \"rgb\": [24, 64, 38] }, { \"index\": 0.25, \"rgb\": [11, 95, 45] }, { \"index\": 0.38, \"rgb\": [39, 123, 35] }, { \"index\": 0.5, \"rgb\": [95, 146, 12] }, { \"index\": 0.63, \"rgb\": [152, 165, 18] }, { \"index\": 0.75, \"rgb\": [201, 186, 69] }, { \"index\": 0.88, \"rgb\": [233, 216, 137] }, { \"index\": 1, \"rgb\": [255, 253, 205] }],\n \"cubehelix\": [{ \"index\": 0, \"rgb\": [0, 0, 0] }, { \"index\": 0.07, \"rgb\": [22, 5, 59] }, { \"index\": 0.13, \"rgb\": [60, 4, 105] }, { \"index\": 0.2, \"rgb\": [109, 1, 135] }, { \"index\": 0.27, \"rgb\": [161, 0, 147] }, { \"index\": 0.33, \"rgb\": [210, 2, 142] }, { \"index\": 0.4, \"rgb\": [251, 11, 123] }, { \"index\": 0.47, \"rgb\": [255, 29, 97] }, { \"index\": 0.53, \"rgb\": [255, 54, 69] }, { \"index\": 0.6, \"rgb\": [255, 85, 46] }, { \"index\": 0.67, \"rgb\": [255, 120, 34] }, { \"index\": 0.73, \"rgb\": [255, 157, 37] }, { \"index\": 0.8, \"rgb\": [241, 191, 57] }, { \"index\": 0.87, \"rgb\": [224, 220, 93] }, { \"index\": 0.93, \"rgb\": [218, 241, 142] }, { \"index\": 1, \"rgb\": [227, 253, 198] }]\n };\n }\n ),\n /***/\n 6729: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var colorScale = __webpack_require__2(3642);\n var lerp = __webpack_require__2(395);\n module2.exports = createColormap;\n function createColormap(spec) {\n var indicies, fromrgba, torgba, nsteps, cmap, colormap, format, nshades, colors, alpha, i;\n if (!spec) spec = {};\n nshades = (spec.nshades || 72) - 1;\n format = spec.format || \"hex\";\n colormap = spec.colormap;\n if (!colormap) colormap = \"jet\";\n if (typeof colormap === \"string\") {\n colormap = colormap.toLowerCase();\n if (!colorScale[colormap]) {\n throw Error(colormap + \" not a supported colorscale\");\n }\n cmap = colorScale[colormap];\n } else if (Array.isArray(colormap)) {\n cmap = colormap.slice();\n } else {\n throw Error(\"unsupported colormap option\", colormap);\n }\n if (cmap.length > nshades + 1) {\n throw new Error(\n colormap + \" map requires nshades to be at least size \" + cmap.length\n );\n }\n if (!Array.isArray(spec.alpha)) {\n if (typeof spec.alpha === \"number\") {\n alpha = [spec.alpha, spec.alpha];\n } else {\n alpha = [1, 1];\n }\n } else if (spec.alpha.length !== 2) {\n alpha = [1, 1];\n } else {\n alpha = spec.alpha.slice();\n }\n indicies = cmap.map(function(c) {\n return Math.round(c.index * nshades);\n });\n alpha[0] = Math.min(Math.max(alpha[0], 0), 1);\n alpha[1] = Math.min(Math.max(alpha[1], 0), 1);\n var steps = cmap.map(function(c, i2) {\n var index = cmap[i2].index;\n var rgba3 = cmap[i2].rgb.slice();\n if (rgba3.length === 4 && rgba3[3] >= 0 && rgba3[3] <= 1) {\n return rgba3;\n }\n rgba3[3] = alpha[0] + (alpha[1] - alpha[0]) * index;\n return rgba3;\n });\n var colors = [];\n for (i = 0; i < indicies.length - 1; ++i) {\n nsteps = indicies[i + 1] - indicies[i];\n fromrgba = steps[i];\n torgba = steps[i + 1];\n for (var j = 0; j < nsteps; j++) {\n var amt = j / nsteps;\n colors.push([\n Math.round(lerp(fromrgba[0], torgba[0], amt)),\n Math.round(lerp(fromrgba[1], torgba[1], amt)),\n Math.round(lerp(fromrgba[2], torgba[2], amt)),\n lerp(fromrgba[3], torgba[3], amt)\n ]);\n }\n }\n colors.push(cmap[cmap.length - 1].rgb.concat(alpha[1]));\n if (format === \"hex\") colors = colors.map(rgb2hex);\n else if (format === \"rgbaString\") colors = colors.map(rgbaStr);\n else if (format === \"float\") colors = colors.map(rgb2float);\n return colors;\n }\n ;\n function rgb2float(rgba3) {\n return [\n rgba3[0] / 255,\n rgba3[1] / 255,\n rgba3[2] / 255,\n rgba3[3]\n ];\n }\n function rgb2hex(rgba3) {\n var dig, hex2 = \"#\";\n for (var i = 0; i < 3; ++i) {\n dig = rgba3[i];\n dig = dig.toString(16);\n hex2 += (\"00\" + dig).substr(dig.length);\n }\n return hex2;\n }\n function rgbaStr(rgba3) {\n return \"rgba(\" + rgba3.join(\",\") + \")\";\n }\n }\n ),\n /***/\n 3140: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = compareAngle;\n var orient = __webpack_require__2(3250);\n var sgn = __webpack_require__2(8572);\n var twoSum = __webpack_require__2(9362);\n var robustProduct = __webpack_require__2(5382);\n var robustSum = __webpack_require__2(8210);\n function testInterior(a, b, c) {\n var x0 = twoSum(a[0], -b[0]);\n var y0 = twoSum(a[1], -b[1]);\n var x1 = twoSum(c[0], -b[0]);\n var y1 = twoSum(c[1], -b[1]);\n var d = robustSum(\n robustProduct(x0, x1),\n robustProduct(y0, y1)\n );\n return d[d.length - 1] >= 0;\n }\n function compareAngle(a, b, c, d) {\n var bcd = orient(b, c, d);\n if (bcd === 0) {\n var sabc = sgn(orient(a, b, c));\n var sabd = sgn(orient(a, b, d));\n if (sabc === sabd) {\n if (sabc === 0) {\n var ic = testInterior(a, b, c);\n var id = testInterior(a, b, d);\n if (ic === id) {\n return 0;\n } else if (ic) {\n return 1;\n } else {\n return -1;\n }\n }\n return 0;\n } else if (sabd === 0) {\n if (sabc > 0) {\n return -1;\n } else if (testInterior(a, b, d)) {\n return -1;\n } else {\n return 1;\n }\n } else if (sabc === 0) {\n if (sabd > 0) {\n return 1;\n } else if (testInterior(a, b, c)) {\n return 1;\n } else {\n return -1;\n }\n }\n return sgn(sabd - sabc);\n }\n var abc = orient(a, b, c);\n if (abc > 0) {\n if (bcd > 0 && orient(a, b, d) > 0) {\n return 1;\n }\n return -1;\n } else if (abc < 0) {\n if (bcd > 0 || orient(a, b, d) > 0) {\n return 1;\n }\n return -1;\n } else {\n var abd = orient(a, b, d);\n if (abd > 0) {\n return 1;\n } else {\n if (testInterior(a, b, c)) {\n return 1;\n } else {\n return -1;\n }\n }\n }\n }\n }\n ),\n /***/\n 8572: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = function signum(x) {\n if (x < 0) {\n return -1;\n }\n if (x > 0) {\n return 1;\n }\n return 0;\n };\n }\n ),\n /***/\n 8507: (\n /***/\n function(module2) {\n module2.exports = compareCells;\n var min = Math.min;\n function compareInt(a, b) {\n return a - b;\n }\n function compareCells(a, b) {\n var n = a.length, t = a.length - b.length;\n if (t) {\n return t;\n }\n switch (n) {\n case 0:\n return 0;\n case 1:\n return a[0] - b[0];\n case 2:\n return a[0] + a[1] - b[0] - b[1] || min(a[0], a[1]) - min(b[0], b[1]);\n case 3:\n var l1 = a[0] + a[1], m1 = b[0] + b[1];\n t = l1 + a[2] - (m1 + b[2]);\n if (t) {\n return t;\n }\n var l0 = min(a[0], a[1]), m0 = min(b[0], b[1]);\n return min(l0, a[2]) - min(m0, b[2]) || min(l0 + a[2], l1) - min(m0 + b[2], m1);\n case 4:\n var aw = a[0], ax = a[1], ay = a[2], az = a[3], bw = b[0], bx = b[1], by = b[2], bz = b[3];\n return aw + ax + ay + az - (bw + bx + by + bz) || min(aw, ax, ay, az) - min(bw, bx, by, bz, bw) || min(aw + ax, aw + ay, aw + az, ax + ay, ax + az, ay + az) - min(bw + bx, bw + by, bw + bz, bx + by, bx + bz, by + bz) || min(aw + ax + ay, aw + ax + az, aw + ay + az, ax + ay + az) - min(bw + bx + by, bw + bx + bz, bw + by + bz, bx + by + bz);\n default:\n var as = a.slice().sort(compareInt);\n var bs = b.slice().sort(compareInt);\n for (var i = 0; i < n; ++i) {\n t = as[i] - bs[i];\n if (t) {\n return t;\n }\n }\n return 0;\n }\n }\n }\n ),\n /***/\n 3788: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var compareCells = __webpack_require__2(8507);\n var parity = __webpack_require__2(2419);\n module2.exports = compareOrientedCells;\n function compareOrientedCells(a, b) {\n return compareCells(a, b) || parity(a) - parity(b);\n }\n }\n ),\n /***/\n 7352: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var convexHull1d = __webpack_require__2(5721);\n var convexHull2d = __webpack_require__2(4750);\n var convexHullnd = __webpack_require__2(2690);\n module2.exports = convexHull;\n function convexHull(points) {\n var n = points.length;\n if (n === 0) {\n return [];\n } else if (n === 1) {\n return [[0]];\n }\n var d = points[0].length;\n if (d === 0) {\n return [];\n } else if (d === 1) {\n return convexHull1d(points);\n } else if (d === 2) {\n return convexHull2d(points);\n }\n return convexHullnd(points, d);\n }\n }\n ),\n /***/\n 5721: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = convexHull1d;\n function convexHull1d(points) {\n var lo = 0;\n var hi = 0;\n for (var i = 1; i < points.length; ++i) {\n if (points[i][0] < points[lo][0]) {\n lo = i;\n }\n if (points[i][0] > points[hi][0]) {\n hi = i;\n }\n }\n if (lo < hi) {\n return [[lo], [hi]];\n } else if (lo > hi) {\n return [[hi], [lo]];\n } else {\n return [[lo]];\n }\n }\n }\n ),\n /***/\n 4750: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = convexHull2D;\n var monotoneHull = __webpack_require__2(3090);\n function convexHull2D(points) {\n var hull = monotoneHull(points);\n var h = hull.length;\n if (h <= 2) {\n return [];\n }\n var edges = new Array(h);\n var a = hull[h - 1];\n for (var i = 0; i < h; ++i) {\n var b = hull[i];\n edges[i] = [a, b];\n a = b;\n }\n return edges;\n }\n }\n ),\n /***/\n 2690: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = convexHullnD;\n var ich = __webpack_require__2(8954);\n var aff = __webpack_require__2(3952);\n function permute(points, front) {\n var n = points.length;\n var npoints = new Array(n);\n for (var i = 0; i < front.length; ++i) {\n npoints[i] = points[front[i]];\n }\n var ptr = front.length;\n for (var i = 0; i < n; ++i) {\n if (front.indexOf(i) < 0) {\n npoints[ptr++] = points[i];\n }\n }\n return npoints;\n }\n function invPermute(cells, front) {\n var nc = cells.length;\n var nf = front.length;\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n var x = c[j];\n if (x < nf) {\n c[j] = front[x];\n } else {\n x = x - nf;\n for (var k = 0; k < nf; ++k) {\n if (x >= front[k]) {\n x += 1;\n }\n }\n c[j] = x;\n }\n }\n }\n return cells;\n }\n function convexHullnD(points, d) {\n try {\n return ich(points, true);\n } catch (e) {\n var ah = aff(points);\n if (ah.length <= d) {\n return [];\n }\n var npoints = permute(points, ah);\n var nhull = ich(npoints, true);\n return invPermute(nhull, ah);\n }\n }\n }\n ),\n /***/\n 4769: (\n /***/\n function(module2) {\n \"use strict\";\n function dcubicHermite(p0, v0, p1, v1, t, f) {\n var dh00 = 6 * t * t - 6 * t, dh10 = 3 * t * t - 4 * t + 1, dh01 = -6 * t * t + 6 * t, dh11 = 3 * t * t - 2 * t;\n if (p0.length) {\n if (!f) {\n f = new Array(p0.length);\n }\n for (var i = p0.length - 1; i >= 0; --i) {\n f[i] = dh00 * p0[i] + dh10 * v0[i] + dh01 * p1[i] + dh11 * v1[i];\n }\n return f;\n }\n return dh00 * p0 + dh10 * v0 + dh01 * p1[i] + dh11 * v1;\n }\n function cubicHermite(p0, v0, p1, v1, t, f) {\n var ti = t - 1, t22 = t * t, ti2 = ti * ti, h00 = (1 + 2 * t) * ti2, h10 = t * ti2, h01 = t22 * (3 - 2 * t), h11 = t22 * ti;\n if (p0.length) {\n if (!f) {\n f = new Array(p0.length);\n }\n for (var i = p0.length - 1; i >= 0; --i) {\n f[i] = h00 * p0[i] + h10 * v0[i] + h01 * p1[i] + h11 * v1[i];\n }\n return f;\n }\n return h00 * p0 + h10 * v0 + h01 * p1 + h11 * v1;\n }\n module2.exports = cubicHermite;\n module2.exports.derivative = dcubicHermite;\n }\n ),\n /***/\n 7642: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var ch = __webpack_require__2(8954);\n var uniq = __webpack_require__2(1682);\n module2.exports = triangulate;\n function LiftedPoint(p, i) {\n this.point = p;\n this.index = i;\n }\n function compareLifted(a, b) {\n var ap = a.point;\n var bp = b.point;\n var d = ap.length;\n for (var i = 0; i < d; ++i) {\n var s = bp[i] - ap[i];\n if (s) {\n return s;\n }\n }\n return 0;\n }\n function triangulate1D(n, points, includePointAtInfinity) {\n if (n === 1) {\n if (includePointAtInfinity) {\n return [[-1, 0]];\n } else {\n return [];\n }\n }\n var lifted = points.map(function(p, i2) {\n return [p[0], i2];\n });\n lifted.sort(function(a2, b2) {\n return a2[0] - b2[0];\n });\n var cells = new Array(n - 1);\n for (var i = 1; i < n; ++i) {\n var a = lifted[i - 1];\n var b = lifted[i];\n cells[i - 1] = [a[1], b[1]];\n }\n if (includePointAtInfinity) {\n cells.push(\n [-1, cells[0][1]],\n [cells[n - 1][1], -1]\n );\n }\n return cells;\n }\n function triangulate(points, includePointAtInfinity) {\n var n = points.length;\n if (n === 0) {\n return [];\n }\n var d = points[0].length;\n if (d < 1) {\n return [];\n }\n if (d === 1) {\n return triangulate1D(n, points, includePointAtInfinity);\n }\n var lifted = new Array(n);\n var upper = 1;\n for (var i = 0; i < n; ++i) {\n var p = points[i];\n var x = new Array(d + 1);\n var l = 0;\n for (var j = 0; j < d; ++j) {\n var v = p[j];\n x[j] = v;\n l += v * v;\n }\n x[d] = l;\n lifted[i] = new LiftedPoint(x, i);\n upper = Math.max(l, upper);\n }\n uniq(lifted, compareLifted);\n n = lifted.length;\n var dpoints = new Array(n + d + 1);\n var dindex = new Array(n + d + 1);\n var u = (d + 1) * (d + 1) * upper;\n var y = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n y[i] = 0;\n }\n y[d] = u;\n dpoints[0] = y.slice();\n dindex[0] = -1;\n for (var i = 0; i <= d; ++i) {\n var x = y.slice();\n x[i] = 1;\n dpoints[i + 1] = x;\n dindex[i + 1] = -1;\n }\n for (var i = 0; i < n; ++i) {\n var h = lifted[i];\n dpoints[i + d + 1] = h.point;\n dindex[i + d + 1] = h.index;\n }\n var hull = ch(dpoints, false);\n if (includePointAtInfinity) {\n hull = hull.filter(function(cell) {\n var count = 0;\n for (var j2 = 0; j2 <= d; ++j2) {\n var v2 = dindex[cell[j2]];\n if (v2 < 0) {\n if (++count >= 2) {\n return false;\n }\n }\n cell[j2] = v2;\n }\n return true;\n });\n } else {\n hull = hull.filter(function(cell) {\n for (var i2 = 0; i2 <= d; ++i2) {\n var v2 = dindex[cell[i2]];\n if (v2 < 0) {\n return false;\n }\n cell[i2] = v2;\n }\n return true;\n });\n }\n if (d & 1) {\n for (var i = 0; i < hull.length; ++i) {\n var h = hull[i];\n var x = h[0];\n h[0] = h[1];\n h[1] = x;\n }\n }\n return hull;\n }\n }\n ),\n /***/\n 2361: (\n /***/\n function(module2) {\n var hasTypedArrays = false;\n if (typeof Float64Array !== \"undefined\") {\n var DOUBLE_VIEW = new Float64Array(1), UINT_VIEW = new Uint32Array(DOUBLE_VIEW.buffer);\n DOUBLE_VIEW[0] = 1;\n hasTypedArrays = true;\n if (UINT_VIEW[1] === 1072693248) {\n let toDoubleLE2 = function(lo, hi) {\n UINT_VIEW[0] = lo;\n UINT_VIEW[1] = hi;\n return DOUBLE_VIEW[0];\n }, lowUintLE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[0];\n }, highUintLE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[1];\n };\n var toDoubleLE = toDoubleLE2, lowUintLE = lowUintLE2, highUintLE = highUintLE2;\n module2.exports = function doubleBitsLE(n) {\n DOUBLE_VIEW[0] = n;\n return [UINT_VIEW[0], UINT_VIEW[1]];\n };\n module2.exports.pack = toDoubleLE2;\n module2.exports.lo = lowUintLE2;\n module2.exports.hi = highUintLE2;\n } else if (UINT_VIEW[0] === 1072693248) {\n let toDoubleBE2 = function(lo, hi) {\n UINT_VIEW[1] = lo;\n UINT_VIEW[0] = hi;\n return DOUBLE_VIEW[0];\n }, lowUintBE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[1];\n }, highUintBE2 = function(n) {\n DOUBLE_VIEW[0] = n;\n return UINT_VIEW[0];\n };\n var toDoubleBE = toDoubleBE2, lowUintBE = lowUintBE2, highUintBE = highUintBE2;\n module2.exports = function doubleBitsBE(n) {\n DOUBLE_VIEW[0] = n;\n return [UINT_VIEW[1], UINT_VIEW[0]];\n };\n module2.exports.pack = toDoubleBE2;\n module2.exports.lo = lowUintBE2;\n module2.exports.hi = highUintBE2;\n } else {\n hasTypedArrays = false;\n }\n }\n if (!hasTypedArrays) {\n let toDouble2 = function(lo, hi) {\n buffer.writeUInt32LE(lo, 0, true);\n buffer.writeUInt32LE(hi, 4, true);\n return buffer.readDoubleLE(0, true);\n }, lowUint2 = function(n) {\n buffer.writeDoubleLE(n, 0, true);\n return buffer.readUInt32LE(0, true);\n }, highUint2 = function(n) {\n buffer.writeDoubleLE(n, 0, true);\n return buffer.readUInt32LE(4, true);\n };\n var toDouble = toDouble2, lowUint = lowUint2, highUint = highUint2;\n var buffer = new Buffer(8);\n module2.exports = function doubleBits(n) {\n buffer.writeDoubleLE(n, 0, true);\n return [buffer.readUInt32LE(0, true), buffer.readUInt32LE(4, true)];\n };\n module2.exports.pack = toDouble2;\n module2.exports.lo = lowUint2;\n module2.exports.hi = highUint2;\n }\n module2.exports.sign = function(n) {\n return module2.exports.hi(n) >>> 31;\n };\n module2.exports.exponent = function(n) {\n var b = module2.exports.hi(n);\n return (b << 1 >>> 21) - 1023;\n };\n module2.exports.fraction = function(n) {\n var lo = module2.exports.lo(n);\n var hi = module2.exports.hi(n);\n var b = hi & (1 << 20) - 1;\n if (hi & 2146435072) {\n b += 1 << 20;\n }\n return [lo, b];\n };\n module2.exports.denormalized = function(n) {\n var hi = module2.exports.hi(n);\n return !(hi & 2146435072);\n };\n }\n ),\n /***/\n 1338: (\n /***/\n function(module2) {\n \"use strict\";\n function dupe_array(count, value, i) {\n var c = count[i] | 0;\n if (c <= 0) {\n return [];\n }\n var result = new Array(c), j;\n if (i === count.length - 1) {\n for (j = 0; j < c; ++j) {\n result[j] = value;\n }\n } else {\n for (j = 0; j < c; ++j) {\n result[j] = dupe_array(count, value, i + 1);\n }\n }\n return result;\n }\n function dupe_number(count, value) {\n var result, i;\n result = new Array(count);\n for (i = 0; i < count; ++i) {\n result[i] = value;\n }\n return result;\n }\n function dupe(count, value) {\n if (typeof value === \"undefined\") {\n value = 0;\n }\n switch (typeof count) {\n case \"number\":\n if (count > 0) {\n return dupe_number(count | 0, value);\n }\n break;\n case \"object\":\n if (typeof count.length === \"number\") {\n return dupe_array(count, value, 0);\n }\n break;\n }\n return [];\n }\n module2.exports = dupe;\n }\n ),\n /***/\n 3134: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = edgeToAdjacency;\n var uniq = __webpack_require__2(1682);\n function edgeToAdjacency(edges, numVertices) {\n var numEdges = edges.length;\n if (typeof numVertices !== \"number\") {\n numVertices = 0;\n for (var i = 0; i < numEdges; ++i) {\n var e = edges[i];\n numVertices = Math.max(numVertices, e[0], e[1]);\n }\n numVertices = (numVertices | 0) + 1;\n }\n numVertices = numVertices | 0;\n var adj = new Array(numVertices);\n for (var i = 0; i < numVertices; ++i) {\n adj[i] = [];\n }\n for (var i = 0; i < numEdges; ++i) {\n var e = edges[i];\n adj[e[0]].push(e[1]);\n adj[e[1]].push(e[0]);\n }\n for (var j = 0; j < numVertices; ++j) {\n uniq(adj[j], function(a, b) {\n return a - b;\n });\n }\n return adj;\n }\n }\n ),\n /***/\n 5033: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = extractPlanes;\n function extractPlanes(M, zNear, zFar) {\n var z = zNear || 0;\n var zf = zFar || 1;\n return [\n [M[12] + M[0], M[13] + M[1], M[14] + M[2], M[15] + M[3]],\n [M[12] - M[0], M[13] - M[1], M[14] - M[2], M[15] - M[3]],\n [M[12] + M[4], M[13] + M[5], M[14] + M[6], M[15] + M[7]],\n [M[12] - M[4], M[13] - M[5], M[14] - M[6], M[15] - M[7]],\n [z * M[12] + M[8], z * M[13] + M[9], z * M[14] + M[10], z * M[15] + M[11]],\n [zf * M[12] - M[8], zf * M[13] - M[9], zf * M[14] - M[10], zf * M[15] - M[11]]\n ];\n }\n }\n ),\n /***/\n 9215: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createFilteredVector;\n var cubicHermite = __webpack_require__2(4769);\n var bsearch = __webpack_require__2(2478);\n function clamp(lo, hi, x) {\n return Math.min(hi, Math.max(lo, x));\n }\n function FilteredVector(state0, velocity0, t02) {\n this.dimension = state0.length;\n this.bounds = [new Array(this.dimension), new Array(this.dimension)];\n for (var i = 0; i < this.dimension; ++i) {\n this.bounds[0][i] = -Infinity;\n this.bounds[1][i] = Infinity;\n }\n this._state = state0.slice().reverse();\n this._velocity = velocity0.slice().reverse();\n this._time = [t02];\n this._scratch = [state0.slice(), state0.slice(), state0.slice(), state0.slice(), state0.slice()];\n }\n var proto = FilteredVector.prototype;\n proto.flush = function(t) {\n var idx = bsearch.gt(this._time, t) - 1;\n if (idx <= 0) {\n return;\n }\n this._time.splice(0, idx);\n this._state.splice(0, idx * this.dimension);\n this._velocity.splice(0, idx * this.dimension);\n };\n proto.curve = function(t) {\n var time = this._time;\n var n = time.length;\n var idx = bsearch.le(time, t);\n var result = this._scratch[0];\n var state = this._state;\n var velocity = this._velocity;\n var d = this.dimension;\n var bounds = this.bounds;\n if (idx < 0) {\n var ptr = d - 1;\n for (var i = 0; i < d; ++i, --ptr) {\n result[i] = state[ptr];\n }\n } else if (idx >= n - 1) {\n var ptr = state.length - 1;\n var tf = t - time[n - 1];\n for (var i = 0; i < d; ++i, --ptr) {\n result[i] = state[ptr] + tf * velocity[ptr];\n }\n } else {\n var ptr = d * (idx + 1) - 1;\n var t02 = time[idx];\n var t12 = time[idx + 1];\n var dt = t12 - t02 || 1;\n var x0 = this._scratch[1];\n var x1 = this._scratch[2];\n var v0 = this._scratch[3];\n var v1 = this._scratch[4];\n var steady = true;\n for (var i = 0; i < d; ++i, --ptr) {\n x0[i] = state[ptr];\n v0[i] = velocity[ptr] * dt;\n x1[i] = state[ptr + d];\n v1[i] = velocity[ptr + d] * dt;\n steady = steady && (x0[i] === x1[i] && v0[i] === v1[i] && v0[i] === 0);\n }\n if (steady) {\n for (var i = 0; i < d; ++i) {\n result[i] = x0[i];\n }\n } else {\n cubicHermite(x0, v0, x1, v1, (t - t02) / dt, result);\n }\n }\n var lo = bounds[0];\n var hi = bounds[1];\n for (var i = 0; i < d; ++i) {\n result[i] = clamp(lo[i], hi[i], result[i]);\n }\n return result;\n };\n proto.dcurve = function(t) {\n var time = this._time;\n var n = time.length;\n var idx = bsearch.le(time, t);\n var result = this._scratch[0];\n var state = this._state;\n var velocity = this._velocity;\n var d = this.dimension;\n if (idx >= n - 1) {\n var ptr = state.length - 1;\n var tf = t - time[n - 1];\n for (var i = 0; i < d; ++i, --ptr) {\n result[i] = velocity[ptr];\n }\n } else {\n var ptr = d * (idx + 1) - 1;\n var t02 = time[idx];\n var t12 = time[idx + 1];\n var dt = t12 - t02 || 1;\n var x0 = this._scratch[1];\n var x1 = this._scratch[2];\n var v0 = this._scratch[3];\n var v1 = this._scratch[4];\n var steady = true;\n for (var i = 0; i < d; ++i, --ptr) {\n x0[i] = state[ptr];\n v0[i] = velocity[ptr] * dt;\n x1[i] = state[ptr + d];\n v1[i] = velocity[ptr + d] * dt;\n steady = steady && (x0[i] === x1[i] && v0[i] === v1[i] && v0[i] === 0);\n }\n if (steady) {\n for (var i = 0; i < d; ++i) {\n result[i] = 0;\n }\n } else {\n cubicHermite.derivative(x0, v0, x1, v1, (t - t02) / dt, result);\n for (var i = 0; i < d; ++i) {\n result[i] /= dt;\n }\n }\n }\n return result;\n };\n proto.lastT = function() {\n var time = this._time;\n return time[time.length - 1];\n };\n proto.stable = function() {\n var velocity = this._velocity;\n var ptr = velocity.length;\n for (var i = this.dimension - 1; i >= 0; --i) {\n if (velocity[--ptr]) {\n return false;\n }\n }\n return true;\n };\n proto.jump = function(t) {\n var t02 = this.lastT();\n var d = this.dimension;\n if (t < t02 || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var ptr = state.length - this.dimension;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n this._time.push(t02, t);\n for (var j = 0; j < 2; ++j) {\n for (var i = 0; i < d; ++i) {\n state.push(state[ptr++]);\n velocity.push(0);\n }\n }\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n state.push(clamp(lo[i - 1], hi[i - 1], arguments[i]));\n velocity.push(0);\n }\n };\n proto.push = function(t) {\n var t02 = this.lastT();\n var d = this.dimension;\n if (t < t02 || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var ptr = state.length - this.dimension;\n var dt = t - t02;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n var sf = dt > 1e-6 ? 1 / dt : 0;\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n var xc = clamp(lo[i - 1], hi[i - 1], arguments[i]);\n state.push(xc);\n velocity.push((xc - state[ptr++]) * sf);\n }\n };\n proto.set = function(t) {\n var d = this.dimension;\n if (t < this.lastT() || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n state.push(clamp(lo[i - 1], hi[i - 1], arguments[i]));\n velocity.push(0);\n }\n };\n proto.move = function(t) {\n var t02 = this.lastT();\n var d = this.dimension;\n if (t <= t02 || arguments.length !== d + 1) {\n return;\n }\n var state = this._state;\n var velocity = this._velocity;\n var statePtr = state.length - this.dimension;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n var dt = t - t02;\n var sf = dt > 1e-6 ? 1 / dt : 0;\n this._time.push(t);\n for (var i = d; i > 0; --i) {\n var dx = arguments[i];\n state.push(clamp(lo[i - 1], hi[i - 1], state[statePtr++] + dx));\n velocity.push(dx * sf);\n }\n };\n proto.idle = function(t) {\n var t02 = this.lastT();\n if (t < t02) {\n return;\n }\n var d = this.dimension;\n var state = this._state;\n var velocity = this._velocity;\n var statePtr = state.length - d;\n var bounds = this.bounds;\n var lo = bounds[0];\n var hi = bounds[1];\n var dt = t - t02;\n this._time.push(t);\n for (var i = d - 1; i >= 0; --i) {\n state.push(clamp(lo[i], hi[i], state[statePtr] + dt * velocity[statePtr]));\n velocity.push(0);\n statePtr += 1;\n }\n };\n function getZero(d) {\n var result = new Array(d);\n for (var i = 0; i < d; ++i) {\n result[i] = 0;\n }\n return result;\n }\n function createFilteredVector(initState, initVelocity, initTime) {\n switch (arguments.length) {\n case 0:\n return new FilteredVector([0], [0], 0);\n case 1:\n if (typeof initState === \"number\") {\n var zero2 = getZero(initState);\n return new FilteredVector(zero2, zero2, 0);\n } else {\n return new FilteredVector(initState, getZero(initState.length), 0);\n }\n case 2:\n if (typeof initVelocity === \"number\") {\n var zero2 = getZero(initState.length);\n return new FilteredVector(initState, zero2, +initVelocity);\n } else {\n initTime = 0;\n }\n case 3:\n if (initState.length !== initVelocity.length) {\n throw new Error(\"state and velocity lengths must match\");\n }\n return new FilteredVector(initState, initVelocity, initTime);\n }\n }\n }\n ),\n /***/\n 3840: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = createRBTree;\n var RED = 0;\n var BLACK = 1;\n function RBNode(color2, key, value, left, right, count) {\n this._color = color2;\n this.key = key;\n this.value = value;\n this.left = left;\n this.right = right;\n this._count = count;\n }\n function cloneNode(node) {\n return new RBNode(node._color, node.key, node.value, node.left, node.right, node._count);\n }\n function repaint(color2, node) {\n return new RBNode(color2, node.key, node.value, node.left, node.right, node._count);\n }\n function recount(node) {\n node._count = 1 + (node.left ? node.left._count : 0) + (node.right ? node.right._count : 0);\n }\n function RedBlackTree(compare, root) {\n this._compare = compare;\n this.root = root;\n }\n var proto = RedBlackTree.prototype;\n Object.defineProperty(proto, \"keys\", {\n get: function() {\n var result = [];\n this.forEach(function(k, v) {\n result.push(k);\n });\n return result;\n }\n });\n Object.defineProperty(proto, \"values\", {\n get: function() {\n var result = [];\n this.forEach(function(k, v) {\n result.push(v);\n });\n return result;\n }\n });\n Object.defineProperty(proto, \"length\", {\n get: function() {\n if (this.root) {\n return this.root._count;\n }\n return 0;\n }\n });\n proto.insert = function(key, value) {\n var cmp = this._compare;\n var n = this.root;\n var n_stack = [];\n var d_stack = [];\n while (n) {\n var d = cmp(key, n.key);\n n_stack.push(n);\n d_stack.push(d);\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n n_stack.push(new RBNode(RED, key, value, null, null, 1));\n for (var s = n_stack.length - 2; s >= 0; --s) {\n var n = n_stack[s];\n if (d_stack[s] <= 0) {\n n_stack[s] = new RBNode(n._color, n.key, n.value, n_stack[s + 1], n.right, n._count + 1);\n } else {\n n_stack[s] = new RBNode(n._color, n.key, n.value, n.left, n_stack[s + 1], n._count + 1);\n }\n }\n for (var s = n_stack.length - 1; s > 1; --s) {\n var p = n_stack[s - 1];\n var n = n_stack[s];\n if (p._color === BLACK || n._color === BLACK) {\n break;\n }\n var pp = n_stack[s - 2];\n if (pp.left === p) {\n if (p.left === n) {\n var y = pp.right;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.right = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n pp._color = RED;\n pp.left = p.right;\n p._color = BLACK;\n p.right = pp;\n n_stack[s - 2] = p;\n n_stack[s - 1] = n;\n recount(pp);\n recount(p);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.left === pp) {\n ppp.left = p;\n } else {\n ppp.right = p;\n }\n }\n break;\n }\n } else {\n var y = pp.right;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.right = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n p.right = n.left;\n pp._color = RED;\n pp.left = n.right;\n n._color = BLACK;\n n.left = p;\n n.right = pp;\n n_stack[s - 2] = n;\n n_stack[s - 1] = p;\n recount(pp);\n recount(p);\n recount(n);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.left === pp) {\n ppp.left = n;\n } else {\n ppp.right = n;\n }\n }\n break;\n }\n }\n } else {\n if (p.right === n) {\n var y = pp.left;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.left = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n pp._color = RED;\n pp.right = p.left;\n p._color = BLACK;\n p.left = pp;\n n_stack[s - 2] = p;\n n_stack[s - 1] = n;\n recount(pp);\n recount(p);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.right === pp) {\n ppp.right = p;\n } else {\n ppp.left = p;\n }\n }\n break;\n }\n } else {\n var y = pp.left;\n if (y && y._color === RED) {\n p._color = BLACK;\n pp.left = repaint(BLACK, y);\n pp._color = RED;\n s -= 1;\n } else {\n p.left = n.right;\n pp._color = RED;\n pp.right = n.left;\n n._color = BLACK;\n n.right = p;\n n.left = pp;\n n_stack[s - 2] = n;\n n_stack[s - 1] = p;\n recount(pp);\n recount(p);\n recount(n);\n if (s >= 3) {\n var ppp = n_stack[s - 3];\n if (ppp.right === pp) {\n ppp.right = n;\n } else {\n ppp.left = n;\n }\n }\n break;\n }\n }\n }\n }\n n_stack[0]._color = BLACK;\n return new RedBlackTree(cmp, n_stack[0]);\n };\n function doVisitFull(visit, node) {\n if (node.left) {\n var v = doVisitFull(visit, node.left);\n if (v) {\n return v;\n }\n }\n var v = visit(node.key, node.value);\n if (v) {\n return v;\n }\n if (node.right) {\n return doVisitFull(visit, node.right);\n }\n }\n function doVisitHalf(lo, compare, visit, node) {\n var l = compare(lo, node.key);\n if (l <= 0) {\n if (node.left) {\n var v = doVisitHalf(lo, compare, visit, node.left);\n if (v) {\n return v;\n }\n }\n var v = visit(node.key, node.value);\n if (v) {\n return v;\n }\n }\n if (node.right) {\n return doVisitHalf(lo, compare, visit, node.right);\n }\n }\n function doVisit(lo, hi, compare, visit, node) {\n var l = compare(lo, node.key);\n var h = compare(hi, node.key);\n var v;\n if (l <= 0) {\n if (node.left) {\n v = doVisit(lo, hi, compare, visit, node.left);\n if (v) {\n return v;\n }\n }\n if (h > 0) {\n v = visit(node.key, node.value);\n if (v) {\n return v;\n }\n }\n }\n if (h > 0 && node.right) {\n return doVisit(lo, hi, compare, visit, node.right);\n }\n }\n proto.forEach = function rbTreeForEach(visit, lo, hi) {\n if (!this.root) {\n return;\n }\n switch (arguments.length) {\n case 1:\n return doVisitFull(visit, this.root);\n break;\n case 2:\n return doVisitHalf(lo, this._compare, visit, this.root);\n break;\n case 3:\n if (this._compare(lo, hi) >= 0) {\n return;\n }\n return doVisit(lo, hi, this._compare, visit, this.root);\n break;\n }\n };\n Object.defineProperty(proto, \"begin\", {\n get: function() {\n var stack = [];\n var n = this.root;\n while (n) {\n stack.push(n);\n n = n.left;\n }\n return new RedBlackTreeIterator(this, stack);\n }\n });\n Object.defineProperty(proto, \"end\", {\n get: function() {\n var stack = [];\n var n = this.root;\n while (n) {\n stack.push(n);\n n = n.right;\n }\n return new RedBlackTreeIterator(this, stack);\n }\n });\n proto.at = function(idx) {\n if (idx < 0) {\n return new RedBlackTreeIterator(this, []);\n }\n var n = this.root;\n var stack = [];\n while (true) {\n stack.push(n);\n if (n.left) {\n if (idx < n.left._count) {\n n = n.left;\n continue;\n }\n idx -= n.left._count;\n }\n if (!idx) {\n return new RedBlackTreeIterator(this, stack);\n }\n idx -= 1;\n if (n.right) {\n if (idx >= n.right._count) {\n break;\n }\n n = n.right;\n } else {\n break;\n }\n }\n return new RedBlackTreeIterator(this, []);\n };\n proto.ge = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d <= 0) {\n last_ptr = stack.length;\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.gt = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d < 0) {\n last_ptr = stack.length;\n }\n if (d < 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.lt = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d > 0) {\n last_ptr = stack.length;\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.le = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n var last_ptr = 0;\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d >= 0) {\n last_ptr = stack.length;\n }\n if (d < 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n stack.length = last_ptr;\n return new RedBlackTreeIterator(this, stack);\n };\n proto.find = function(key) {\n var cmp = this._compare;\n var n = this.root;\n var stack = [];\n while (n) {\n var d = cmp(key, n.key);\n stack.push(n);\n if (d === 0) {\n return new RedBlackTreeIterator(this, stack);\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n return new RedBlackTreeIterator(this, []);\n };\n proto.remove = function(key) {\n var iter = this.find(key);\n if (iter) {\n return iter.remove();\n }\n return this;\n };\n proto.get = function(key) {\n var cmp = this._compare;\n var n = this.root;\n while (n) {\n var d = cmp(key, n.key);\n if (d === 0) {\n return n.value;\n }\n if (d <= 0) {\n n = n.left;\n } else {\n n = n.right;\n }\n }\n return;\n };\n function RedBlackTreeIterator(tree, stack) {\n this.tree = tree;\n this._stack = stack;\n }\n var iproto = RedBlackTreeIterator.prototype;\n Object.defineProperty(iproto, \"valid\", {\n get: function() {\n return this._stack.length > 0;\n }\n });\n Object.defineProperty(iproto, \"node\", {\n get: function() {\n if (this._stack.length > 0) {\n return this._stack[this._stack.length - 1];\n }\n return null;\n },\n enumerable: true\n });\n iproto.clone = function() {\n return new RedBlackTreeIterator(this.tree, this._stack.slice());\n };\n function swapNode(n, v) {\n n.key = v.key;\n n.value = v.value;\n n.left = v.left;\n n.right = v.right;\n n._color = v._color;\n n._count = v._count;\n }\n function fixDoubleBlack(stack) {\n var n, p, s, z;\n for (var i = stack.length - 1; i >= 0; --i) {\n n = stack[i];\n if (i === 0) {\n n._color = BLACK;\n return;\n }\n p = stack[i - 1];\n if (p.left === n) {\n s = p.right;\n if (s.right && s.right._color === RED) {\n s = p.right = cloneNode(s);\n z = s.right = cloneNode(s.right);\n p.right = s.left;\n s.left = p;\n s.right = z;\n s._color = p._color;\n n._color = BLACK;\n p._color = BLACK;\n z._color = BLACK;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.left === p) {\n pp.left = s;\n } else {\n pp.right = s;\n }\n }\n stack[i - 1] = s;\n return;\n } else if (s.left && s.left._color === RED) {\n s = p.right = cloneNode(s);\n z = s.left = cloneNode(s.left);\n p.right = z.left;\n s.left = z.right;\n z.left = p;\n z.right = s;\n z._color = p._color;\n p._color = BLACK;\n s._color = BLACK;\n n._color = BLACK;\n recount(p);\n recount(s);\n recount(z);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.left === p) {\n pp.left = z;\n } else {\n pp.right = z;\n }\n }\n stack[i - 1] = z;\n return;\n }\n if (s._color === BLACK) {\n if (p._color === RED) {\n p._color = BLACK;\n p.right = repaint(RED, s);\n return;\n } else {\n p.right = repaint(RED, s);\n continue;\n }\n } else {\n s = cloneNode(s);\n p.right = s.left;\n s.left = p;\n s._color = p._color;\n p._color = RED;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.left === p) {\n pp.left = s;\n } else {\n pp.right = s;\n }\n }\n stack[i - 1] = s;\n stack[i] = p;\n if (i + 1 < stack.length) {\n stack[i + 1] = n;\n } else {\n stack.push(n);\n }\n i = i + 2;\n }\n } else {\n s = p.left;\n if (s.left && s.left._color === RED) {\n s = p.left = cloneNode(s);\n z = s.left = cloneNode(s.left);\n p.left = s.right;\n s.right = p;\n s.left = z;\n s._color = p._color;\n n._color = BLACK;\n p._color = BLACK;\n z._color = BLACK;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.right === p) {\n pp.right = s;\n } else {\n pp.left = s;\n }\n }\n stack[i - 1] = s;\n return;\n } else if (s.right && s.right._color === RED) {\n s = p.left = cloneNode(s);\n z = s.right = cloneNode(s.right);\n p.left = z.right;\n s.right = z.left;\n z.right = p;\n z.left = s;\n z._color = p._color;\n p._color = BLACK;\n s._color = BLACK;\n n._color = BLACK;\n recount(p);\n recount(s);\n recount(z);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.right === p) {\n pp.right = z;\n } else {\n pp.left = z;\n }\n }\n stack[i - 1] = z;\n return;\n }\n if (s._color === BLACK) {\n if (p._color === RED) {\n p._color = BLACK;\n p.left = repaint(RED, s);\n return;\n } else {\n p.left = repaint(RED, s);\n continue;\n }\n } else {\n s = cloneNode(s);\n p.left = s.right;\n s.right = p;\n s._color = p._color;\n p._color = RED;\n recount(p);\n recount(s);\n if (i > 1) {\n var pp = stack[i - 2];\n if (pp.right === p) {\n pp.right = s;\n } else {\n pp.left = s;\n }\n }\n stack[i - 1] = s;\n stack[i] = p;\n if (i + 1 < stack.length) {\n stack[i + 1] = n;\n } else {\n stack.push(n);\n }\n i = i + 2;\n }\n }\n }\n }\n iproto.remove = function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return this.tree;\n }\n var cstack = new Array(stack.length);\n var n = stack[stack.length - 1];\n cstack[cstack.length - 1] = new RBNode(n._color, n.key, n.value, n.left, n.right, n._count);\n for (var i = stack.length - 2; i >= 0; --i) {\n var n = stack[i];\n if (n.left === stack[i + 1]) {\n cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i + 1], n.right, n._count);\n } else {\n cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);\n }\n }\n n = cstack[cstack.length - 1];\n if (n.left && n.right) {\n var split = cstack.length;\n n = n.left;\n while (n.right) {\n cstack.push(n);\n n = n.right;\n }\n var v = cstack[split - 1];\n cstack.push(new RBNode(n._color, v.key, v.value, n.left, n.right, n._count));\n cstack[split - 1].key = n.key;\n cstack[split - 1].value = n.value;\n for (var i = cstack.length - 2; i >= split; --i) {\n n = cstack[i];\n cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);\n }\n cstack[split - 1].left = cstack[split];\n }\n n = cstack[cstack.length - 1];\n if (n._color === RED) {\n var p = cstack[cstack.length - 2];\n if (p.left === n) {\n p.left = null;\n } else if (p.right === n) {\n p.right = null;\n }\n cstack.pop();\n for (var i = 0; i < cstack.length; ++i) {\n cstack[i]._count--;\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n } else {\n if (n.left || n.right) {\n if (n.left) {\n swapNode(n, n.left);\n } else if (n.right) {\n swapNode(n, n.right);\n }\n n._color = BLACK;\n for (var i = 0; i < cstack.length - 1; ++i) {\n cstack[i]._count--;\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n } else if (cstack.length === 1) {\n return new RedBlackTree(this.tree._compare, null);\n } else {\n for (var i = 0; i < cstack.length; ++i) {\n cstack[i]._count--;\n }\n var parent = cstack[cstack.length - 2];\n fixDoubleBlack(cstack);\n if (parent.left === n) {\n parent.left = null;\n } else {\n parent.right = null;\n }\n }\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n };\n Object.defineProperty(iproto, \"key\", {\n get: function() {\n if (this._stack.length > 0) {\n return this._stack[this._stack.length - 1].key;\n }\n return;\n },\n enumerable: true\n });\n Object.defineProperty(iproto, \"value\", {\n get: function() {\n if (this._stack.length > 0) {\n return this._stack[this._stack.length - 1].value;\n }\n return;\n },\n enumerable: true\n });\n Object.defineProperty(iproto, \"index\", {\n get: function() {\n var idx = 0;\n var stack = this._stack;\n if (stack.length === 0) {\n var r = this.tree.root;\n if (r) {\n return r._count;\n }\n return 0;\n } else if (stack[stack.length - 1].left) {\n idx = stack[stack.length - 1].left._count;\n }\n for (var s = stack.length - 2; s >= 0; --s) {\n if (stack[s + 1] === stack[s].right) {\n ++idx;\n if (stack[s].left) {\n idx += stack[s].left._count;\n }\n }\n }\n return idx;\n },\n enumerable: true\n });\n iproto.next = function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return;\n }\n var n = stack[stack.length - 1];\n if (n.right) {\n n = n.right;\n while (n) {\n stack.push(n);\n n = n.left;\n }\n } else {\n stack.pop();\n while (stack.length > 0 && stack[stack.length - 1].right === n) {\n n = stack[stack.length - 1];\n stack.pop();\n }\n }\n };\n Object.defineProperty(iproto, \"hasNext\", {\n get: function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return false;\n }\n if (stack[stack.length - 1].right) {\n return true;\n }\n for (var s = stack.length - 1; s > 0; --s) {\n if (stack[s - 1].left === stack[s]) {\n return true;\n }\n }\n return false;\n }\n });\n iproto.update = function(value) {\n var stack = this._stack;\n if (stack.length === 0) {\n throw new Error(\"Can't update empty node!\");\n }\n var cstack = new Array(stack.length);\n var n = stack[stack.length - 1];\n cstack[cstack.length - 1] = new RBNode(n._color, n.key, value, n.left, n.right, n._count);\n for (var i = stack.length - 2; i >= 0; --i) {\n n = stack[i];\n if (n.left === stack[i + 1]) {\n cstack[i] = new RBNode(n._color, n.key, n.value, cstack[i + 1], n.right, n._count);\n } else {\n cstack[i] = new RBNode(n._color, n.key, n.value, n.left, cstack[i + 1], n._count);\n }\n }\n return new RedBlackTree(this.tree._compare, cstack[0]);\n };\n iproto.prev = function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return;\n }\n var n = stack[stack.length - 1];\n if (n.left) {\n n = n.left;\n while (n) {\n stack.push(n);\n n = n.right;\n }\n } else {\n stack.pop();\n while (stack.length > 0 && stack[stack.length - 1].left === n) {\n n = stack[stack.length - 1];\n stack.pop();\n }\n }\n };\n Object.defineProperty(iproto, \"hasPrev\", {\n get: function() {\n var stack = this._stack;\n if (stack.length === 0) {\n return false;\n }\n if (stack[stack.length - 1].left) {\n return true;\n }\n for (var s = stack.length - 1; s > 0; --s) {\n if (stack[s - 1].right === stack[s]) {\n return true;\n }\n }\n return false;\n }\n });\n function defaultCompare(a, b) {\n if (a < b) {\n return -1;\n }\n if (a > b) {\n return 1;\n }\n return 0;\n }\n function createRBTree(compare) {\n return new RedBlackTree(compare || defaultCompare, null);\n }\n }\n ),\n /***/\n 3837: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createAxes;\n var createText = __webpack_require__2(4935);\n var createLines = __webpack_require__2(501);\n var createBackground = __webpack_require__2(5304);\n var getCubeProperties = __webpack_require__2(6429);\n var Ticks = __webpack_require__2(6444);\n var identity2 = new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var ab = ArrayBuffer;\n var dv = DataView;\n function isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n }\n function isArrayOrTypedArray(a) {\n return Array.isArray(a) || isTypedArray(a);\n }\n function copyVec3(a, b) {\n a[0] = b[0];\n a[1] = b[1];\n a[2] = b[2];\n return a;\n }\n function Axes(gl2) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n this.ticks = [[], [], []];\n this.autoTicks = true;\n this.tickSpacing = [1, 1, 1];\n this.tickEnable = [true, true, true];\n this.tickFont = [\"sans-serif\", \"sans-serif\", \"sans-serif\"];\n this.tickFontStyle = [\"normal\", \"normal\", \"normal\"];\n this.tickFontWeight = [\"normal\", \"normal\", \"normal\"];\n this.tickFontVariant = [\"normal\", \"normal\", \"normal\"];\n this.tickSize = [12, 12, 12];\n this.tickAngle = [0, 0, 0];\n this.tickAlign = [\"auto\", \"auto\", \"auto\"];\n this.tickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.tickPad = [10, 10, 10];\n this.lastCubeProps = {\n cubeEdges: [0, 0, 0],\n axis: [0, 0, 0]\n };\n this.labels = [\"x\", \"y\", \"z\"];\n this.labelEnable = [true, true, true];\n this.labelFont = [\"sans-serif\", \"sans-serif\", \"sans-serif\"];\n this.labelFontStyle = [\"normal\", \"normal\", \"normal\"];\n this.labelFontWeight = [\"normal\", \"normal\", \"normal\"];\n this.labelFontVariant = [\"normal\", \"normal\", \"normal\"];\n this.labelSize = [20, 20, 20];\n this.labelAngle = [0, 0, 0];\n this.labelAlign = [\"auto\", \"auto\", \"auto\"];\n this.labelColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.labelPad = [10, 10, 10];\n this.lineEnable = [true, true, true];\n this.lineMirror = [false, false, false];\n this.lineWidth = [1, 1, 1];\n this.lineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.lineTickEnable = [true, true, true];\n this.lineTickMirror = [false, false, false];\n this.lineTickLength = [0, 0, 0];\n this.lineTickWidth = [1, 1, 1];\n this.lineTickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.gridEnable = [true, true, true];\n this.gridWidth = [1, 1, 1];\n this.gridColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroEnable = [true, true, true];\n this.zeroLineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroLineWidth = [2, 2, 2];\n this.backgroundEnable = [false, false, false];\n this.backgroundColor = [\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5]\n ];\n this._firstInit = true;\n this._text = null;\n this._lines = null;\n this._background = createBackground(gl2);\n }\n var proto = Axes.prototype;\n proto.update = function(options) {\n options = options || {};\n function parseOption(nest, cons, name2) {\n if (name2 in options) {\n var opt = options[name2];\n var prev = this[name2];\n var next;\n if (nest ? isArrayOrTypedArray(opt) && isArrayOrTypedArray(opt[0]) : isArrayOrTypedArray(opt)) {\n this[name2] = next = [cons(opt[0]), cons(opt[1]), cons(opt[2])];\n } else {\n this[name2] = next = [cons(opt), cons(opt), cons(opt)];\n }\n for (var i2 = 0; i2 < 3; ++i2) {\n if (next[i2] !== prev[i2]) {\n return true;\n }\n }\n }\n return false;\n }\n var NUMBER = parseOption.bind(this, false, Number);\n var BOOLEAN = parseOption.bind(this, false, Boolean);\n var STRING = parseOption.bind(this, false, String);\n var COLOR = parseOption.bind(this, true, function(v) {\n if (isArrayOrTypedArray(v)) {\n if (v.length === 3) {\n return [+v[0], +v[1], +v[2], 1];\n } else if (v.length === 4) {\n return [+v[0], +v[1], +v[2], +v[3]];\n }\n }\n return [0, 0, 0, 1];\n });\n var nextTicks;\n var ticksUpdate = false;\n var boundsChanged = false;\n if (\"bounds\" in options) {\n var bounds = options.bounds;\n i_loop:\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 3; ++j) {\n if (bounds[i][j] !== this.bounds[i][j]) {\n boundsChanged = true;\n }\n this.bounds[i][j] = bounds[i][j];\n }\n }\n }\n if (\"ticks\" in options) {\n nextTicks = options.ticks;\n ticksUpdate = true;\n this.autoTicks = false;\n for (var i = 0; i < 3; ++i) {\n this.tickSpacing[i] = 0;\n }\n } else if (NUMBER(\"tickSpacing\")) {\n this.autoTicks = true;\n boundsChanged = true;\n }\n if (this._firstInit) {\n if (!(\"ticks\" in options || \"tickSpacing\" in options)) {\n this.autoTicks = true;\n }\n boundsChanged = true;\n ticksUpdate = true;\n this._firstInit = false;\n }\n if (boundsChanged && this.autoTicks) {\n nextTicks = Ticks.create(this.bounds, this.tickSpacing);\n ticksUpdate = true;\n }\n if (ticksUpdate) {\n for (var i = 0; i < 3; ++i) {\n nextTicks[i].sort(function(a, b) {\n return a.x - b.x;\n });\n }\n if (Ticks.equal(nextTicks, this.ticks)) {\n ticksUpdate = false;\n } else {\n this.ticks = nextTicks;\n }\n }\n BOOLEAN(\"tickEnable\");\n if (STRING(\"tickFont\")) ticksUpdate = true;\n if (STRING(\"tickFontStyle\")) ticksUpdate = true;\n if (STRING(\"tickFontWeight\")) ticksUpdate = true;\n if (STRING(\"tickFontVariant\")) ticksUpdate = true;\n NUMBER(\"tickSize\");\n NUMBER(\"tickAngle\");\n NUMBER(\"tickPad\");\n COLOR(\"tickColor\");\n var labelUpdate = STRING(\"labels\");\n if (STRING(\"labelFont\")) labelUpdate = true;\n if (STRING(\"labelFontStyle\")) labelUpdate = true;\n if (STRING(\"labelFontWeight\")) labelUpdate = true;\n if (STRING(\"labelFontVariant\")) labelUpdate = true;\n BOOLEAN(\"labelEnable\");\n NUMBER(\"labelSize\");\n NUMBER(\"labelPad\");\n COLOR(\"labelColor\");\n BOOLEAN(\"lineEnable\");\n BOOLEAN(\"lineMirror\");\n NUMBER(\"lineWidth\");\n COLOR(\"lineColor\");\n BOOLEAN(\"lineTickEnable\");\n BOOLEAN(\"lineTickMirror\");\n NUMBER(\"lineTickLength\");\n NUMBER(\"lineTickWidth\");\n COLOR(\"lineTickColor\");\n BOOLEAN(\"gridEnable\");\n NUMBER(\"gridWidth\");\n COLOR(\"gridColor\");\n BOOLEAN(\"zeroEnable\");\n COLOR(\"zeroLineColor\");\n NUMBER(\"zeroLineWidth\");\n BOOLEAN(\"backgroundEnable\");\n COLOR(\"backgroundColor\");\n var labelFontOpts = [\n {\n family: this.labelFont[0],\n style: this.labelFontStyle[0],\n weight: this.labelFontWeight[0],\n variant: this.labelFontVariant[0]\n },\n {\n family: this.labelFont[1],\n style: this.labelFontStyle[1],\n weight: this.labelFontWeight[1],\n variant: this.labelFontVariant[1]\n },\n {\n family: this.labelFont[2],\n style: this.labelFontStyle[2],\n weight: this.labelFontWeight[2],\n variant: this.labelFontVariant[2]\n }\n ];\n var tickFontOpts = [\n {\n family: this.tickFont[0],\n style: this.tickFontStyle[0],\n weight: this.tickFontWeight[0],\n variant: this.tickFontVariant[0]\n },\n {\n family: this.tickFont[1],\n style: this.tickFontStyle[1],\n weight: this.tickFontWeight[1],\n variant: this.tickFontVariant[1]\n },\n {\n family: this.tickFont[2],\n style: this.tickFontStyle[2],\n weight: this.tickFontWeight[2],\n variant: this.tickFontVariant[2]\n }\n ];\n if (!this._text) {\n this._text = createText(\n this.gl,\n this.bounds,\n this.labels,\n labelFontOpts,\n this.ticks,\n tickFontOpts\n );\n } else if (this._text && (labelUpdate || ticksUpdate)) {\n this._text.update(\n this.bounds,\n this.labels,\n labelFontOpts,\n this.ticks,\n tickFontOpts\n );\n }\n if (this._lines && ticksUpdate) {\n this._lines.dispose();\n this._lines = null;\n }\n if (!this._lines) {\n this._lines = createLines(this.gl, this.bounds, this.ticks);\n }\n };\n function OffsetInfo() {\n this.primalOffset = [0, 0, 0];\n this.primalMinor = [0, 0, 0];\n this.mirrorOffset = [0, 0, 0];\n this.mirrorMinor = [0, 0, 0];\n }\n var LINE_OFFSET = [new OffsetInfo(), new OffsetInfo(), new OffsetInfo()];\n function computeLineOffset(result, i, bounds, cubeEdges, cubeAxis) {\n var primalOffset = result.primalOffset;\n var primalMinor = result.primalMinor;\n var dualOffset = result.mirrorOffset;\n var dualMinor = result.mirrorMinor;\n var e = cubeEdges[i];\n for (var j = 0; j < 3; ++j) {\n if (i === j) {\n continue;\n }\n var a = primalOffset, b = dualOffset, c = primalMinor, d = dualMinor;\n if (e & 1 << j) {\n a = dualOffset;\n b = primalOffset;\n c = dualMinor;\n d = primalMinor;\n }\n a[j] = bounds[0][j];\n b[j] = bounds[1][j];\n if (cubeAxis[j] > 0) {\n c[j] = -1;\n d[j] = 0;\n } else {\n c[j] = 0;\n d[j] = 1;\n }\n }\n }\n var CUBE_ENABLE = [0, 0, 0];\n var DEFAULT_PARAMS = {\n model: identity2,\n view: identity2,\n projection: identity2,\n _ortho: false\n };\n proto.isOpaque = function() {\n return true;\n };\n proto.isTransparent = function() {\n return false;\n };\n proto.drawTransparent = function(params) {\n };\n var ALIGN_OPTION_AUTO = 0;\n var PRIMAL_MINOR = [0, 0, 0];\n var MIRROR_MINOR = [0, 0, 0];\n var PRIMAL_OFFSET = [0, 0, 0];\n proto.draw = function(params) {\n params = params || DEFAULT_PARAMS;\n var gl2 = this.gl;\n var model = params.model || identity2;\n var view = params.view || identity2;\n var projection = params.projection || identity2;\n var bounds = this.bounds;\n var isOrtho = params._ortho || false;\n var cubeParams = getCubeProperties(model, view, projection, bounds, isOrtho);\n var cubeEdges = cubeParams.cubeEdges;\n var cubeAxis = cubeParams.axis;\n var cx = view[12];\n var cy = view[13];\n var cz = view[14];\n var cw = view[15];\n var orthoFix = isOrtho ? 2 : 1;\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3] * cx + projection[7] * cy + projection[11] * cz + projection[15] * cw) / gl2.drawingBufferHeight;\n for (var i = 0; i < 3; ++i) {\n this.lastCubeProps.cubeEdges[i] = cubeEdges[i];\n this.lastCubeProps.axis[i] = cubeAxis[i];\n }\n var lineOffset = LINE_OFFSET;\n for (var i = 0; i < 3; ++i) {\n computeLineOffset(\n LINE_OFFSET[i],\n i,\n this.bounds,\n cubeEdges,\n cubeAxis\n );\n }\n var gl2 = this.gl;\n var cubeEnable = CUBE_ENABLE;\n for (var i = 0; i < 3; ++i) {\n if (this.backgroundEnable[i]) {\n cubeEnable[i] = cubeAxis[i];\n } else {\n cubeEnable[i] = 0;\n }\n }\n this._background.draw(\n model,\n view,\n projection,\n bounds,\n cubeEnable,\n this.backgroundColor\n );\n this._lines.bind(\n model,\n view,\n projection,\n this\n );\n for (var i = 0; i < 3; ++i) {\n var x = [0, 0, 0];\n if (cubeAxis[i] > 0) {\n x[i] = bounds[1][i];\n } else {\n x[i] = bounds[0][i];\n }\n for (var j = 0; j < 2; ++j) {\n var u = (i + 1 + j) % 3;\n var v = (i + 1 + (j ^ 1)) % 3;\n if (this.gridEnable[u]) {\n this._lines.drawGrid(u, v, this.bounds, x, this.gridColor[u], this.gridWidth[u] * this.pixelRatio);\n }\n }\n for (var j = 0; j < 2; ++j) {\n var u = (i + 1 + j) % 3;\n var v = (i + 1 + (j ^ 1)) % 3;\n if (this.zeroEnable[v]) {\n if (Math.min(bounds[0][v], bounds[1][v]) <= 0 && Math.max(bounds[0][v], bounds[1][v]) >= 0) {\n this._lines.drawZero(u, v, this.bounds, x, this.zeroLineColor[v], this.zeroLineWidth[v] * this.pixelRatio);\n }\n }\n }\n }\n for (var i = 0; i < 3; ++i) {\n if (this.lineEnable[i]) {\n this._lines.drawAxisLine(i, this.bounds, lineOffset[i].primalOffset, this.lineColor[i], this.lineWidth[i] * this.pixelRatio);\n }\n if (this.lineMirror[i]) {\n this._lines.drawAxisLine(i, this.bounds, lineOffset[i].mirrorOffset, this.lineColor[i], this.lineWidth[i] * this.pixelRatio);\n }\n var primalMinor = copyVec3(PRIMAL_MINOR, lineOffset[i].primalMinor);\n var mirrorMinor = copyVec3(MIRROR_MINOR, lineOffset[i].mirrorMinor);\n var tickLength = this.lineTickLength;\n for (var j = 0; j < 3; ++j) {\n var scaleFactor = pixelScaleF / model[5 * j];\n primalMinor[j] *= tickLength[j] * scaleFactor;\n mirrorMinor[j] *= tickLength[j] * scaleFactor;\n }\n if (this.lineTickEnable[i]) {\n this._lines.drawAxisTicks(i, lineOffset[i].primalOffset, primalMinor, this.lineTickColor[i], this.lineTickWidth[i] * this.pixelRatio);\n }\n if (this.lineTickMirror[i]) {\n this._lines.drawAxisTicks(i, lineOffset[i].mirrorOffset, mirrorMinor, this.lineTickColor[i], this.lineTickWidth[i] * this.pixelRatio);\n }\n }\n this._lines.unbind();\n this._text.bind(\n model,\n view,\n projection,\n this.pixelRatio\n );\n var alignOpt;\n var hv_ratio = 0.5;\n var enableAlign;\n var alignDir;\n function alignTo(i2) {\n alignDir = [0, 0, 0];\n alignDir[i2] = 1;\n }\n function solveTickAlignments(i2, minor2, major2) {\n var i1 = (i2 + 1) % 3;\n var i22 = (i2 + 2) % 3;\n var A2 = minor2[i1];\n var B2 = minor2[i22];\n var C2 = major2[i1];\n var D2 = major2[i22];\n if (A2 > 0 && D2 > 0) {\n alignTo(i1);\n return;\n } else if (A2 > 0 && D2 < 0) {\n alignTo(i1);\n return;\n } else if (A2 < 0 && D2 > 0) {\n alignTo(i1);\n return;\n } else if (A2 < 0 && D2 < 0) {\n alignTo(i1);\n return;\n } else if (B2 > 0 && C2 > 0) {\n alignTo(i22);\n return;\n } else if (B2 > 0 && C2 < 0) {\n alignTo(i22);\n return;\n } else if (B2 < 0 && C2 > 0) {\n alignTo(i22);\n return;\n } else if (B2 < 0 && C2 < 0) {\n alignTo(i22);\n return;\n }\n }\n for (var i = 0; i < 3; ++i) {\n var minor = lineOffset[i].primalMinor;\n var major = lineOffset[i].mirrorMinor;\n var offset = copyVec3(PRIMAL_OFFSET, lineOffset[i].primalOffset);\n for (var j = 0; j < 3; ++j) {\n if (this.lineTickEnable[i]) {\n offset[j] += pixelScaleF * minor[j] * Math.max(this.lineTickLength[j], 0) / model[5 * j];\n }\n }\n var axis = [0, 0, 0];\n axis[i] = 1;\n if (this.tickEnable[i]) {\n if (this.tickAngle[i] === -3600) {\n this.tickAngle[i] = 0;\n this.tickAlign[i] = \"auto\";\n } else {\n this.tickAlign[i] = -1;\n }\n enableAlign = 1;\n alignOpt = [this.tickAlign[i], hv_ratio, enableAlign];\n if (alignOpt[0] === \"auto\") alignOpt[0] = ALIGN_OPTION_AUTO;\n else alignOpt[0] = parseInt(\"\" + alignOpt[0]);\n alignDir = [0, 0, 0];\n solveTickAlignments(i, minor, major);\n for (var j = 0; j < 3; ++j) {\n offset[j] += pixelScaleF * minor[j] * this.tickPad[j] / model[5 * j];\n }\n this._text.drawTicks(\n i,\n this.tickSize[i],\n this.tickAngle[i],\n offset,\n this.tickColor[i],\n axis,\n alignDir,\n alignOpt\n );\n }\n if (this.labelEnable[i]) {\n enableAlign = 0;\n alignDir = [0, 0, 0];\n if (this.labels[i].length > 4) {\n alignTo(i);\n enableAlign = 1;\n }\n alignOpt = [this.labelAlign[i], hv_ratio, enableAlign];\n if (alignOpt[0] === \"auto\") alignOpt[0] = ALIGN_OPTION_AUTO;\n else alignOpt[0] = parseInt(\"\" + alignOpt[0]);\n for (var j = 0; j < 3; ++j) {\n offset[j] += pixelScaleF * minor[j] * this.labelPad[j] / model[5 * j];\n }\n offset[i] += 0.5 * (bounds[0][i] + bounds[1][i]);\n this._text.drawLabel(\n i,\n this.labelSize[i],\n this.labelAngle[i],\n offset,\n this.labelColor[i],\n [0, 0, 0],\n alignDir,\n alignOpt\n );\n }\n }\n this._text.unbind();\n };\n proto.dispose = function() {\n this._text.dispose();\n this._lines.dispose();\n this._background.dispose();\n this._lines = null;\n this._text = null;\n this._background = null;\n this.gl = null;\n };\n function createAxes(gl2, options) {\n var axes = new Axes(gl2);\n axes.update(options);\n return axes;\n }\n }\n ),\n /***/\n 5304: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createBackgroundCube;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(1879).bg;\n function BackgroundCube(gl2, buffer, vao, shader) {\n this.gl = gl2;\n this.buffer = buffer;\n this.vao = vao;\n this.shader = shader;\n }\n var proto = BackgroundCube.prototype;\n proto.draw = function(model, view, projection, bounds, enable, colors) {\n var needsBG = false;\n for (var i = 0; i < 3; ++i) {\n needsBG = needsBG || enable[i];\n }\n if (!needsBG) {\n return;\n }\n var gl2 = this.gl;\n gl2.enable(gl2.POLYGON_OFFSET_FILL);\n gl2.polygonOffset(1, 2);\n this.shader.bind();\n this.shader.uniforms = {\n model,\n view,\n projection,\n bounds,\n enable,\n colors\n };\n this.vao.bind();\n this.vao.draw(this.gl.TRIANGLES, 36);\n this.vao.unbind();\n gl2.disable(gl2.POLYGON_OFFSET_FILL);\n };\n proto.dispose = function() {\n this.vao.dispose();\n this.buffer.dispose();\n this.shader.dispose();\n };\n function createBackgroundCube(gl2) {\n var vertices = [];\n var indices = [];\n var ptr = 0;\n for (var d = 0; d < 3; ++d) {\n var u = (d + 1) % 3;\n var v = (d + 2) % 3;\n var x = [0, 0, 0];\n var c = [0, 0, 0];\n for (var s = -1; s <= 1; s += 2) {\n indices.push(\n ptr,\n ptr + 2,\n ptr + 1,\n ptr + 1,\n ptr + 2,\n ptr + 3\n );\n x[d] = s;\n c[d] = s;\n for (var i = -1; i <= 1; i += 2) {\n x[u] = i;\n for (var j = -1; j <= 1; j += 2) {\n x[v] = j;\n vertices.push(\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2]\n );\n ptr += 1;\n }\n }\n var tt = u;\n u = v;\n v = tt;\n }\n }\n var buffer = createBuffer(gl2, new Float32Array(vertices));\n var elements = createBuffer(gl2, new Uint16Array(indices), gl2.ELEMENT_ARRAY_BUFFER);\n var vao = createVAO(gl2, [\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 0,\n stride: 24\n },\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 12,\n stride: 24\n }\n ], elements);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.normal.location = 1;\n return new BackgroundCube(gl2, buffer, vao, shader);\n }\n }\n ),\n /***/\n 6429: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = getCubeEdges;\n var bits = __webpack_require__2(8828);\n var multiply = __webpack_require__2(6760);\n var splitPoly = __webpack_require__2(5202);\n var orient = __webpack_require__2(3250);\n var mvp = new Array(16);\n var pCubeVerts = new Array(8);\n var cubeVerts = new Array(8);\n var x = new Array(3);\n var zero3 = [0, 0, 0];\n (function() {\n for (var i = 0; i < 8; ++i) {\n pCubeVerts[i] = [1, 1, 1, 1];\n cubeVerts[i] = [1, 1, 1];\n }\n })();\n function transformHg(result, x2, mat) {\n for (var i = 0; i < 4; ++i) {\n result[i] = mat[12 + i];\n for (var j = 0; j < 3; ++j) {\n result[i] += x2[j] * mat[4 * j + i];\n }\n }\n }\n var FRUSTUM_PLANES = [\n [0, 0, 1, 0, 0],\n [0, 0, -1, 1, 0],\n [0, -1, 0, 1, 0],\n [0, 1, 0, 1, 0],\n [-1, 0, 0, 1, 0],\n [1, 0, 0, 1, 0]\n ];\n function polygonArea(p) {\n for (var i = 0; i < FRUSTUM_PLANES.length; ++i) {\n p = splitPoly.positive(p, FRUSTUM_PLANES[i]);\n if (p.length < 3) {\n return 0;\n }\n }\n var base = p[0];\n var ax = base[0] / base[3];\n var ay = base[1] / base[3];\n var area = 0;\n for (var i = 1; i + 1 < p.length; ++i) {\n var b = p[i];\n var c = p[i + 1];\n var bx = b[0] / b[3];\n var by = b[1] / b[3];\n var cx = c[0] / c[3];\n var cy = c[1] / c[3];\n var ux = bx - ax;\n var uy = by - ay;\n var vx = cx - ax;\n var vy = cy - ay;\n area += Math.abs(ux * vy - uy * vx);\n }\n return area;\n }\n var CUBE_EDGES = [1, 1, 1];\n var CUBE_AXIS = [0, 0, 0];\n var CUBE_RESULT = {\n cubeEdges: CUBE_EDGES,\n axis: CUBE_AXIS\n };\n function getCubeEdges(model, view, projection, bounds, ortho) {\n multiply(mvp, view, model);\n multiply(mvp, projection, mvp);\n var ptr = 0;\n for (var i = 0; i < 2; ++i) {\n x[2] = bounds[i][2];\n for (var j = 0; j < 2; ++j) {\n x[1] = bounds[j][1];\n for (var k = 0; k < 2; ++k) {\n x[0] = bounds[k][0];\n transformHg(pCubeVerts[ptr], x, mvp);\n ptr += 1;\n }\n }\n }\n var closest = -1;\n for (var i = 0; i < 8; ++i) {\n var w = pCubeVerts[i][3];\n for (var l = 0; l < 3; ++l) {\n cubeVerts[i][l] = pCubeVerts[i][l] / w;\n }\n if (ortho) cubeVerts[i][2] *= -1;\n if (w < 0) {\n if (closest < 0) {\n closest = i;\n } else if (cubeVerts[i][2] < cubeVerts[closest][2]) {\n closest = i;\n }\n }\n }\n if (closest < 0) {\n closest = 0;\n for (var d = 0; d < 3; ++d) {\n var u = (d + 2) % 3;\n var v = (d + 1) % 3;\n var o0 = -1;\n var o1 = -1;\n for (var s = 0; s < 2; ++s) {\n var f0 = s << d;\n var f1 = f0 + (s << u) + (1 - s << v);\n var f2 = f0 + (1 - s << u) + (s << v);\n if (orient(cubeVerts[f0], cubeVerts[f1], cubeVerts[f2], zero3) < 0) {\n continue;\n }\n if (s) {\n o0 = 1;\n } else {\n o1 = 1;\n }\n }\n if (o0 < 0 || o1 < 0) {\n if (o1 > o0) {\n closest |= 1 << d;\n }\n continue;\n }\n for (var s = 0; s < 2; ++s) {\n var f0 = s << d;\n var f1 = f0 + (s << u) + (1 - s << v);\n var f2 = f0 + (1 - s << u) + (s << v);\n var o = polygonArea([\n pCubeVerts[f0],\n pCubeVerts[f1],\n pCubeVerts[f2],\n pCubeVerts[f0 + (1 << u) + (1 << v)]\n ]);\n if (s) {\n o0 = o;\n } else {\n o1 = o;\n }\n }\n if (o1 > o0) {\n closest |= 1 << d;\n continue;\n }\n }\n }\n var farthest = 7 ^ closest;\n var bottom = -1;\n for (var i = 0; i < 8; ++i) {\n if (i === closest || i === farthest) {\n continue;\n }\n if (bottom < 0) {\n bottom = i;\n } else if (cubeVerts[bottom][1] > cubeVerts[i][1]) {\n bottom = i;\n }\n }\n var left = -1;\n for (var i = 0; i < 3; ++i) {\n var idx = bottom ^ 1 << i;\n if (idx === closest || idx === farthest) {\n continue;\n }\n if (left < 0) {\n left = idx;\n }\n var v = cubeVerts[idx];\n if (v[0] < cubeVerts[left][0]) {\n left = idx;\n }\n }\n var right = -1;\n for (var i = 0; i < 3; ++i) {\n var idx = bottom ^ 1 << i;\n if (idx === closest || idx === farthest || idx === left) {\n continue;\n }\n if (right < 0) {\n right = idx;\n }\n var v = cubeVerts[idx];\n if (v[0] > cubeVerts[right][0]) {\n right = idx;\n }\n }\n var cubeEdges = CUBE_EDGES;\n cubeEdges[0] = cubeEdges[1] = cubeEdges[2] = 0;\n cubeEdges[bits.log2(left ^ bottom)] = bottom & left;\n cubeEdges[bits.log2(bottom ^ right)] = bottom & right;\n var top = right ^ 7;\n if (top === closest || top === farthest) {\n top = left ^ 7;\n cubeEdges[bits.log2(right ^ top)] = top & right;\n } else {\n cubeEdges[bits.log2(left ^ top)] = top & left;\n }\n var axis = CUBE_AXIS;\n var cutCorner = closest;\n for (var d = 0; d < 3; ++d) {\n if (cutCorner & 1 << d) {\n axis[d] = -1;\n } else {\n axis[d] = 1;\n }\n }\n return CUBE_RESULT;\n }\n }\n ),\n /***/\n 501: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createLines;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(1879).n;\n var MAJOR_AXIS = [0, 0, 0];\n var MINOR_AXIS = [0, 0, 0];\n var SCREEN_AXIS = [0, 0, 0];\n var OFFSET_VEC = [0, 0, 0];\n var SHAPE = [1, 1];\n function zeroVec(a) {\n a[0] = a[1] = a[2] = 0;\n return a;\n }\n function copyVec(a, b) {\n a[0] = b[0];\n a[1] = b[1];\n a[2] = b[2];\n return a;\n }\n function Lines(gl2, vertBuffer, vao, shader, tickCount, tickOffset, gridCount, gridOffset) {\n this.gl = gl2;\n this.vertBuffer = vertBuffer;\n this.vao = vao;\n this.shader = shader;\n this.tickCount = tickCount;\n this.tickOffset = tickOffset;\n this.gridCount = gridCount;\n this.gridOffset = gridOffset;\n }\n var proto = Lines.prototype;\n proto.bind = function(model, view, projection) {\n this.shader.bind();\n this.shader.uniforms.model = model;\n this.shader.uniforms.view = view;\n this.shader.uniforms.projection = projection;\n SHAPE[0] = this.gl.drawingBufferWidth;\n SHAPE[1] = this.gl.drawingBufferHeight;\n this.shader.uniforms.screenShape = SHAPE;\n this.vao.bind();\n };\n proto.unbind = function() {\n this.vao.unbind();\n };\n proto.drawAxisLine = function(j, bounds, offset, color2, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS);\n this.shader.uniforms.majorAxis = MINOR_AXIS;\n minorAxis[j] = bounds[1][j] - bounds[0][j];\n this.shader.uniforms.minorAxis = minorAxis;\n var noffset = copyVec(OFFSET_VEC, offset);\n noffset[j] += bounds[0][j];\n this.shader.uniforms.offset = noffset;\n this.shader.uniforms.lineWidth = lineWidth;\n this.shader.uniforms.color = color2;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[(j + 2) % 3] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.vao.draw(this.gl.TRIANGLES, 6);\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[(j + 1) % 3] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.vao.draw(this.gl.TRIANGLES, 6);\n };\n proto.drawAxisTicks = function(j, offset, minorAxis, color2, lineWidth) {\n if (!this.tickCount[j]) {\n return;\n }\n var majorAxis = zeroVec(MAJOR_AXIS);\n majorAxis[j] = 1;\n this.shader.uniforms.majorAxis = majorAxis;\n this.shader.uniforms.offset = offset;\n this.shader.uniforms.minorAxis = minorAxis;\n this.shader.uniforms.color = color2;\n this.shader.uniforms.lineWidth = lineWidth;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[j] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[j], this.tickOffset[j]);\n };\n proto.drawGrid = function(i, j, bounds, offset, color2, lineWidth) {\n if (!this.gridCount[i]) {\n return;\n }\n var minorAxis = zeroVec(MINOR_AXIS);\n minorAxis[j] = bounds[1][j] - bounds[0][j];\n this.shader.uniforms.minorAxis = minorAxis;\n var noffset = copyVec(OFFSET_VEC, offset);\n noffset[j] += bounds[0][j];\n this.shader.uniforms.offset = noffset;\n var majorAxis = zeroVec(MAJOR_AXIS);\n majorAxis[i] = 1;\n this.shader.uniforms.majorAxis = majorAxis;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[i] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.shader.uniforms.lineWidth = lineWidth;\n this.shader.uniforms.color = color2;\n this.vao.draw(this.gl.TRIANGLES, this.gridCount[i], this.gridOffset[i]);\n };\n proto.drawZero = function(j, i, bounds, offset, color2, lineWidth) {\n var minorAxis = zeroVec(MINOR_AXIS);\n this.shader.uniforms.majorAxis = minorAxis;\n minorAxis[j] = bounds[1][j] - bounds[0][j];\n this.shader.uniforms.minorAxis = minorAxis;\n var noffset = copyVec(OFFSET_VEC, offset);\n noffset[j] += bounds[0][j];\n this.shader.uniforms.offset = noffset;\n var screenAxis = zeroVec(SCREEN_AXIS);\n screenAxis[i] = 1;\n this.shader.uniforms.screenAxis = screenAxis;\n this.shader.uniforms.lineWidth = lineWidth;\n this.shader.uniforms.color = color2;\n this.vao.draw(this.gl.TRIANGLES, 6);\n };\n proto.dispose = function() {\n this.vao.dispose();\n this.vertBuffer.dispose();\n this.shader.dispose();\n };\n function createLines(gl2, bounds, ticks) {\n var vertices = [];\n var tickOffset = [0, 0, 0];\n var tickCount = [0, 0, 0];\n var gridOffset = [0, 0, 0];\n var gridCount = [0, 0, 0];\n vertices.push(\n 0,\n 0,\n 1,\n 0,\n 1,\n 1,\n 0,\n 0,\n -1,\n 0,\n 0,\n -1,\n 0,\n 1,\n 1,\n 0,\n 1,\n -1\n );\n for (var i = 0; i < 3; ++i) {\n var start = vertices.length / 3 | 0;\n for (var j = 0; j < ticks[i].length; ++j) {\n var x = +ticks[i][j].x;\n vertices.push(\n x,\n 0,\n 1,\n x,\n 1,\n 1,\n x,\n 0,\n -1,\n x,\n 0,\n -1,\n x,\n 1,\n 1,\n x,\n 1,\n -1\n );\n }\n var end = vertices.length / 3 | 0;\n tickOffset[i] = start;\n tickCount[i] = end - start;\n var start = vertices.length / 3 | 0;\n for (var k = 0; k < ticks[i].length; ++k) {\n var x = +ticks[i][k].x;\n vertices.push(\n x,\n 0,\n 1,\n x,\n 1,\n 1,\n x,\n 0,\n -1,\n x,\n 0,\n -1,\n x,\n 1,\n 1,\n x,\n 1,\n -1\n );\n }\n var end = vertices.length / 3 | 0;\n gridOffset[i] = start;\n gridCount[i] = end - start;\n }\n var vertBuf = createBuffer(gl2, new Float32Array(vertices));\n var vao = createVAO(gl2, [\n {\n \"buffer\": vertBuf,\n \"type\": gl2.FLOAT,\n \"size\": 3,\n \"stride\": 0,\n \"offset\": 0\n }\n ]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n return new Lines(gl2, vertBuf, vao, shader, tickCount, tickOffset, gridCount, gridOffset);\n }\n }\n ),\n /***/\n 1879: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var lineVert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 offset, majorAxis, minorAxis, screenAxis;\\nuniform float lineWidth;\\nuniform vec2 screenShape;\\n\\nvec3 project(vec3 p) {\\n vec4 pp = projection * (view * (model * vec4(p, 1.0)));\\n return pp.xyz / max(pp.w, 0.0001);\\n}\\n\\nvoid main() {\\n vec3 major = position.x * majorAxis;\\n vec3 minor = position.y * minorAxis;\\n\\n vec3 vPosition = major + minor + offset;\\n vec3 pPosition = project(vPosition);\\n vec3 offset = project(vPosition + screenAxis * position.z);\\n\\n vec2 screen = normalize((offset - pPosition).xy * screenShape) / screenShape;\\n\\n gl_Position = vec4(pPosition + vec3(0.5 * screen * lineWidth, 0), 1.0);\\n}\\n\"]);\n var lineFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = color;\\n}\"]);\n exports2.n = function(gl2) {\n return createShader(gl2, lineVert, lineFrag, null, [\n { name: \"position\", type: \"vec3\" }\n ]);\n };\n var textVert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 offset, axis, alignDir, alignOpt;\\nuniform float scale, angle, pixelScale;\\nuniform vec2 resolution;\\n\\nvec3 project(vec3 p) {\\n vec4 pp = projection * (view * (model * vec4(p, 1.0)));\\n return pp.xyz / max(pp.w, 0.0001);\\n}\\n\\nfloat computeViewAngle(vec3 a, vec3 b) {\\n vec3 A = project(a);\\n vec3 B = project(b);\\n\\n return atan(\\n (B.y - A.y) * resolution.y,\\n (B.x - A.x) * resolution.x\\n );\\n}\\n\\nconst float PI = 3.141592;\\nconst float TWO_PI = 2.0 * PI;\\nconst float HALF_PI = 0.5 * PI;\\nconst float ONE_AND_HALF_PI = 1.5 * PI;\\n\\nint option = int(floor(alignOpt.x + 0.001));\\nfloat hv_ratio = alignOpt.y;\\nbool enableAlign = (alignOpt.z != 0.0);\\n\\nfloat mod_angle(float a) {\\n return mod(a, PI);\\n}\\n\\nfloat positive_angle(float a) {\\n return mod_angle((a < 0.0) ?\\n a + TWO_PI :\\n a\\n );\\n}\\n\\nfloat look_upwards(float a) {\\n float b = positive_angle(a);\\n return ((b > HALF_PI) && (b <= ONE_AND_HALF_PI)) ?\\n b - PI :\\n b;\\n}\\n\\nfloat look_horizontal_or_vertical(float a, float ratio) {\\n // ratio controls the ratio between being horizontal to (vertical + horizontal)\\n // if ratio is set to 0.5 then it is 50%, 50%.\\n // when using a higher ratio e.g. 0.75 the result would\\n // likely be more horizontal than vertical.\\n\\n float b = positive_angle(a);\\n\\n return\\n (b < ( ratio) * HALF_PI) ? 0.0 :\\n (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI :\\n (b < (2.0 + ratio) * HALF_PI) ? 0.0 :\\n (b < (4.0 - ratio) * HALF_PI) ? HALF_PI :\\n 0.0;\\n}\\n\\nfloat roundTo(float a, float b) {\\n return float(b * floor((a + 0.5 * b) / b));\\n}\\n\\nfloat look_round_n_directions(float a, int n) {\\n float b = positive_angle(a);\\n float div = TWO_PI / float(n);\\n float c = roundTo(b, div);\\n return look_upwards(c);\\n}\\n\\nfloat applyAlignOption(float rawAngle, float delta) {\\n return\\n (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions\\n (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical\\n (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis\\n (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards\\n (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal\\n rawAngle; // otherwise return back raw input angle\\n}\\n\\nbool isAxisTitle = (axis.x == 0.0) &&\\n (axis.y == 0.0) &&\\n (axis.z == 0.0);\\n\\nvoid main() {\\n //Compute world offset\\n float axisDistance = position.z;\\n vec3 dataPosition = axisDistance * axis + offset;\\n\\n float beta = angle; // i.e. user defined attributes for each tick\\n\\n float axisAngle;\\n float clipAngle;\\n float flip;\\n\\n if (enableAlign) {\\n axisAngle = (isAxisTitle) ? HALF_PI :\\n computeViewAngle(dataPosition, dataPosition + axis);\\n clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir);\\n\\n axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0;\\n clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0;\\n\\n flip = (dot(vec2(cos(axisAngle), sin(axisAngle)),\\n vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0;\\n\\n beta += applyAlignOption(clipAngle, flip * PI);\\n }\\n\\n //Compute plane offset\\n vec2 planeCoord = position.xy * pixelScale;\\n\\n mat2 planeXform = scale * mat2(\\n cos(beta), sin(beta),\\n -sin(beta), cos(beta)\\n );\\n\\n vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution;\\n\\n //Compute clip position\\n vec3 clipPosition = project(dataPosition);\\n\\n //Apply text offset in clip coordinates\\n clipPosition += vec3(viewOffset, 0.0);\\n\\n //Done\\n gl_Position = vec4(clipPosition, 1.0);\\n}\\n\"]);\n var textFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 color;\\nvoid main() {\\n gl_FragColor = color;\\n}\"]);\n exports2.Q = function(gl2) {\n return createShader(gl2, textVert, textFrag, null, [\n { name: \"position\", type: \"vec3\" }\n ]);\n };\n var bgVert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec3 normal;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 enable;\\nuniform vec3 bounds[2];\\n\\nvarying vec3 colorChannel;\\n\\nvoid main() {\\n\\n vec3 signAxis = sign(bounds[1] - bounds[0]);\\n\\n vec3 realNormal = signAxis * normal;\\n\\n if(dot(realNormal, enable) > 0.0) {\\n vec3 minRange = min(bounds[0], bounds[1]);\\n vec3 maxRange = max(bounds[0], bounds[1]);\\n vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0));\\n gl_Position = projection * (view * (model * vec4(nPosition, 1.0)));\\n } else {\\n gl_Position = vec4(0,0,0,0);\\n }\\n\\n colorChannel = abs(realNormal);\\n}\\n\"]);\n var bgFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec4 colors[3];\\n\\nvarying vec3 colorChannel;\\n\\nvoid main() {\\n gl_FragColor = colorChannel.x * colors[0] +\\n colorChannel.y * colors[1] +\\n colorChannel.z * colors[2];\\n}\"]);\n exports2.bg = function(gl2) {\n return createShader(gl2, bgVert, bgFrag, null, [\n { name: \"position\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" }\n ]);\n };\n }\n ),\n /***/\n 4935: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createTextSprites;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var vectorizeText = __webpack_require__2(4359);\n var createShader = __webpack_require__2(1879).Q;\n var globals = window || process.global || {};\n var __TEXT_CACHE = globals.__TEXT_CACHE || {};\n globals.__TEXT_CACHE = {};\n var VERTEX_SIZE = 3;\n function TextSprites(gl2, shader, buffer, vao) {\n this.gl = gl2;\n this.shader = shader;\n this.buffer = buffer;\n this.vao = vao;\n this.tickOffset = this.tickCount = this.labelOffset = this.labelCount = null;\n }\n var proto = TextSprites.prototype;\n var SHAPE = [0, 0];\n proto.bind = function(model, view, projection, pixelScale) {\n this.vao.bind();\n this.shader.bind();\n var uniforms = this.shader.uniforms;\n uniforms.model = model;\n uniforms.view = view;\n uniforms.projection = projection;\n uniforms.pixelScale = pixelScale;\n SHAPE[0] = this.gl.drawingBufferWidth;\n SHAPE[1] = this.gl.drawingBufferHeight;\n this.shader.uniforms.resolution = SHAPE;\n };\n proto.unbind = function() {\n this.vao.unbind();\n };\n proto.update = function(bounds, labels, labelFont, ticks, tickFont) {\n var data = [];\n function addItem(t, text, font2, size, lineSpacing2, styletags2) {\n var fontKey = [\n font2.style,\n font2.weight,\n font2.variant,\n font2.family\n ].join(\"_\");\n var fontcache = __TEXT_CACHE[fontKey];\n if (!fontcache) {\n fontcache = __TEXT_CACHE[fontKey] = {};\n }\n var mesh = fontcache[text];\n if (!mesh) {\n mesh = fontcache[text] = tryVectorizeText(text, {\n triangles: true,\n font: font2.family,\n fontStyle: font2.style,\n fontWeight: font2.weight,\n fontVariant: font2.variant,\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineSpacing: lineSpacing2,\n styletags: styletags2\n });\n }\n var scale = (size || 12) / 12;\n var positions = mesh.positions;\n var cells = mesh.cells;\n for (var i2 = 0, nc = cells.length; i2 < nc; ++i2) {\n var c = cells[i2];\n for (var j = 2; j >= 0; --j) {\n var p = positions[c[j]];\n data.push(scale * p[0], -scale * p[1], t);\n }\n }\n }\n var tickOffset = [0, 0, 0];\n var tickCount = [0, 0, 0];\n var labelOffset = [0, 0, 0];\n var labelCount = [0, 0, 0];\n var lineSpacing = 1.25;\n var styletags = {\n breaklines: true,\n bolds: true,\n italics: true,\n subscripts: true,\n superscripts: true\n };\n for (var d = 0; d < 3; ++d) {\n labelOffset[d] = data.length / VERTEX_SIZE | 0;\n addItem(\n 0.5 * (bounds[0][d] + bounds[1][d]),\n labels[d],\n labelFont[d],\n 12,\n // labelFontSize\n lineSpacing,\n styletags\n );\n labelCount[d] = (data.length / VERTEX_SIZE | 0) - labelOffset[d];\n tickOffset[d] = data.length / VERTEX_SIZE | 0;\n for (var i = 0; i < ticks[d].length; ++i) {\n if (!ticks[d][i].text) {\n continue;\n }\n var font = {\n family: ticks[d][i].font || tickFont[d].family,\n style: tickFont[d].fontStyle || tickFont[d].style,\n weight: tickFont[d].fontWeight || tickFont[d].weight,\n variant: tickFont[d].fontVariant || tickFont[d].variant\n };\n addItem(\n ticks[d][i].x,\n ticks[d][i].text,\n font,\n ticks[d][i].fontSize || 12,\n lineSpacing,\n styletags\n );\n }\n tickCount[d] = (data.length / VERTEX_SIZE | 0) - tickOffset[d];\n }\n this.buffer.update(data);\n this.tickOffset = tickOffset;\n this.tickCount = tickCount;\n this.labelOffset = labelOffset;\n this.labelCount = labelCount;\n };\n proto.drawTicks = function(d, scale, angle, offset, color2, axis, alignDir, alignOpt) {\n if (!this.tickCount[d]) {\n return;\n }\n this.shader.uniforms.axis = axis;\n this.shader.uniforms.color = color2;\n this.shader.uniforms.angle = angle;\n this.shader.uniforms.scale = scale;\n this.shader.uniforms.offset = offset;\n this.shader.uniforms.alignDir = alignDir;\n this.shader.uniforms.alignOpt = alignOpt;\n this.vao.draw(this.gl.TRIANGLES, this.tickCount[d], this.tickOffset[d]);\n };\n proto.drawLabel = function(d, scale, angle, offset, color2, axis, alignDir, alignOpt) {\n if (!this.labelCount[d]) {\n return;\n }\n this.shader.uniforms.axis = axis;\n this.shader.uniforms.color = color2;\n this.shader.uniforms.angle = angle;\n this.shader.uniforms.scale = scale;\n this.shader.uniforms.offset = offset;\n this.shader.uniforms.alignDir = alignDir;\n this.shader.uniforms.alignOpt = alignOpt;\n this.vao.draw(this.gl.TRIANGLES, this.labelCount[d], this.labelOffset[d]);\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.vao.dispose();\n this.buffer.dispose();\n };\n function tryVectorizeText(text, options) {\n try {\n return vectorizeText(text, options);\n } catch (e) {\n console.warn('error vectorizing text:\"' + text + '\" error:', e);\n return {\n cells: [],\n positions: []\n };\n }\n }\n function createTextSprites(gl2, bounds, labels, labelFont, ticks, tickFont) {\n var buffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n \"buffer\": buffer,\n \"size\": 3\n }\n ]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n var result = new TextSprites(\n gl2,\n shader,\n buffer,\n vao\n );\n result.update(bounds, labels, labelFont, ticks, tickFont);\n return result;\n }\n }\n ),\n /***/\n 6444: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n exports2.create = defaultTicks;\n exports2.equal = ticksEqual;\n function prettyPrint(spacing, i) {\n var stepStr = spacing + \"\";\n var u = stepStr.indexOf(\".\");\n var sigFigs = 0;\n if (u >= 0) {\n sigFigs = stepStr.length - u - 1;\n }\n var shift = Math.pow(10, sigFigs);\n var x = Math.round(spacing * i * shift);\n var xstr = x + \"\";\n if (xstr.indexOf(\"e\") >= 0) {\n return xstr;\n }\n var xi = x / shift, xf = x % shift;\n if (x < 0) {\n xi = -Math.ceil(xi) | 0;\n xf = -xf | 0;\n } else {\n xi = Math.floor(xi) | 0;\n xf = xf | 0;\n }\n var xis = \"\" + xi;\n if (x < 0) {\n xis = \"-\" + xis;\n }\n if (sigFigs) {\n var xs = \"\" + xf;\n while (xs.length < sigFigs) {\n xs = \"0\" + xs;\n }\n return xis + \".\" + xs;\n } else {\n return xis;\n }\n }\n function defaultTicks(bounds, tickSpacing) {\n var array = [];\n for (var d = 0; d < 3; ++d) {\n var ticks = [];\n var m = 0.5 * (bounds[0][d] + bounds[1][d]);\n for (var t = 0; t * tickSpacing[d] <= bounds[1][d]; ++t) {\n ticks.push({ x: t * tickSpacing[d], text: prettyPrint(tickSpacing[d], t) });\n }\n for (var t = -1; t * tickSpacing[d] >= bounds[0][d]; --t) {\n ticks.push({ x: t * tickSpacing[d], text: prettyPrint(tickSpacing[d], t) });\n }\n array.push(ticks);\n }\n return array;\n }\n function ticksEqual(ticksA, ticksB) {\n for (var i = 0; i < 3; ++i) {\n if (ticksA[i].length !== ticksB[i].length) {\n return false;\n }\n for (var j = 0; j < ticksA[i].length; ++j) {\n var a = ticksA[i][j];\n var b = ticksB[i][j];\n if (a.x !== b.x || a.text !== b.text || a.font !== b.font || a.fontColor !== b.fontColor || a.fontSize !== b.fontSize || a.dx !== b.dx || a.dy !== b.dy) {\n return false;\n }\n }\n }\n return true;\n }\n }\n ),\n /***/\n 5445: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = axesProperties;\n var getPlanes = __webpack_require__2(5033);\n var splitPoly = __webpack_require__2(5202);\n var cubeParams = __webpack_require__2(6429);\n var m4mul = __webpack_require__2(6760);\n var m4transpose = __webpack_require__2(5665);\n var v4transformMat4 = __webpack_require__2(5352);\n var identity2 = new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n var mvp = new Float32Array(16);\n function AxesRange3D(lo, hi, pixelsPerDataUnit) {\n this.lo = lo;\n this.hi = hi;\n this.pixelsPerDataUnit = pixelsPerDataUnit;\n }\n var SCRATCH_P = [0, 0, 0, 1];\n var SCRATCH_Q = [0, 0, 0, 1];\n function gradient(result, M, v, width, height) {\n for (var i = 0; i < 3; ++i) {\n var p = SCRATCH_P;\n var q = SCRATCH_Q;\n for (var j = 0; j < 3; ++j) {\n q[j] = p[j] = v[j];\n }\n q[3] = p[3] = 1;\n q[i] += 1;\n v4transformMat4(q, q, M);\n if (q[3] < 0) {\n result[i] = Infinity;\n }\n p[i] -= 1;\n v4transformMat4(p, p, M);\n if (p[3] < 0) {\n result[i] = Infinity;\n }\n var dx = (p[0] / p[3] - q[0] / q[3]) * width;\n var dy = (p[1] / p[3] - q[1] / q[3]) * height;\n result[i] = 0.25 * Math.sqrt(dx * dx + dy * dy);\n }\n return result;\n }\n var RANGES = [\n new AxesRange3D(Infinity, -Infinity, Infinity),\n new AxesRange3D(Infinity, -Infinity, Infinity),\n new AxesRange3D(Infinity, -Infinity, Infinity)\n ];\n var SCRATCH_X = [0, 0, 0];\n function axesProperties(axes, camera, width, height, params) {\n var model = camera.model || identity2;\n var view = camera.view || identity2;\n var projection = camera.projection || identity2;\n var isOrtho = camera._ortho || false;\n var bounds = axes.bounds;\n var params = params || cubeParams(model, view, projection, bounds, isOrtho);\n var axis = params.axis;\n m4mul(mvp, view, model);\n m4mul(mvp, projection, mvp);\n var ranges = RANGES;\n for (var i = 0; i < 3; ++i) {\n ranges[i].lo = Infinity;\n ranges[i].hi = -Infinity;\n ranges[i].pixelsPerDataUnit = Infinity;\n }\n var frustum = getPlanes(m4transpose(mvp, mvp));\n m4transpose(mvp, mvp);\n for (var d = 0; d < 3; ++d) {\n var u = (d + 1) % 3;\n var v = (d + 2) % 3;\n var x = SCRATCH_X;\n i_loop:\n for (var i = 0; i < 2; ++i) {\n var poly = [];\n if (axis[d] < 0 === !!i) {\n continue;\n }\n x[d] = bounds[i][d];\n for (var j = 0; j < 2; ++j) {\n x[u] = bounds[j ^ i][u];\n for (var k = 0; k < 2; ++k) {\n x[v] = bounds[k ^ j ^ i][v];\n poly.push(x.slice());\n }\n }\n var Q = isOrtho ? 5 : 4;\n for (var j = Q; j === Q; ++j) {\n if (poly.length === 0) {\n continue i_loop;\n }\n poly = splitPoly.positive(poly, frustum[j]);\n }\n for (var j = 0; j < poly.length; ++j) {\n var v = poly[j];\n var grad = gradient(SCRATCH_X, mvp, v, width, height);\n for (var k = 0; k < 3; ++k) {\n ranges[k].lo = Math.min(ranges[k].lo, v[k]);\n ranges[k].hi = Math.max(ranges[k].hi, v[k]);\n if (k !== d) {\n ranges[k].pixelsPerDataUnit = Math.min(ranges[k].pixelsPerDataUnit, Math.abs(grad[k]));\n }\n }\n }\n }\n }\n return ranges;\n }\n }\n ),\n /***/\n 2762: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var pool = __webpack_require__2(1888);\n var ops = __webpack_require__2(5298);\n var ndarray = __webpack_require__2(9618);\n var SUPPORTED_TYPES = [\n \"uint8\",\n \"uint8_clamped\",\n \"uint16\",\n \"uint32\",\n \"int8\",\n \"int16\",\n \"int32\",\n \"float32\"\n ];\n function GLBuffer(gl2, type, handle, length, usage) {\n this.gl = gl2;\n this.type = type;\n this.handle = handle;\n this.length = length;\n this.usage = usage;\n }\n var proto = GLBuffer.prototype;\n proto.bind = function() {\n this.gl.bindBuffer(this.type, this.handle);\n };\n proto.unbind = function() {\n this.gl.bindBuffer(this.type, null);\n };\n proto.dispose = function() {\n this.gl.deleteBuffer(this.handle);\n };\n function updateTypeArray(gl2, type, len, usage, data, offset) {\n var dataLen = data.length * data.BYTES_PER_ELEMENT;\n if (offset < 0) {\n gl2.bufferData(type, data, usage);\n return dataLen;\n }\n if (dataLen + offset > len) {\n throw new Error(\"gl-buffer: If resizing buffer, must not specify offset\");\n }\n gl2.bufferSubData(type, offset, data);\n return len;\n }\n function makeScratchTypeArray(array, dtype) {\n var res = pool.malloc(array.length, dtype);\n var n = array.length;\n for (var i = 0; i < n; ++i) {\n res[i] = array[i];\n }\n return res;\n }\n function isPacked(shape, stride) {\n var n = 1;\n for (var i = stride.length - 1; i >= 0; --i) {\n if (stride[i] !== n) {\n return false;\n }\n n *= shape[i];\n }\n return true;\n }\n proto.update = function(array, offset) {\n if (typeof offset !== \"number\") {\n offset = -1;\n }\n this.bind();\n if (typeof array === \"object\" && typeof array.shape !== \"undefined\") {\n var dtype = array.dtype;\n if (SUPPORTED_TYPES.indexOf(dtype) < 0) {\n dtype = \"float32\";\n }\n if (this.type === this.gl.ELEMENT_ARRAY_BUFFER) {\n var ext = gl.getExtension(\"OES_element_index_uint\");\n if (ext && dtype !== \"uint16\") {\n dtype = \"uint32\";\n } else {\n dtype = \"uint16\";\n }\n }\n if (dtype === array.dtype && isPacked(array.shape, array.stride)) {\n if (array.offset === 0 && array.data.length === array.shape[0]) {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data, offset);\n } else {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array.data.subarray(array.offset, array.shape[0]), offset);\n }\n } else {\n var tmp = pool.malloc(array.size, dtype);\n var ndt = ndarray(tmp, array.shape);\n ops.assign(ndt, array);\n if (offset < 0) {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp, offset);\n } else {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, tmp.subarray(0, array.size), offset);\n }\n pool.free(tmp);\n }\n } else if (Array.isArray(array)) {\n var t;\n if (this.type === this.gl.ELEMENT_ARRAY_BUFFER) {\n t = makeScratchTypeArray(array, \"uint16\");\n } else {\n t = makeScratchTypeArray(array, \"float32\");\n }\n if (offset < 0) {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t, offset);\n } else {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, t.subarray(0, array.length), offset);\n }\n pool.free(t);\n } else if (typeof array === \"object\" && typeof array.length === \"number\") {\n this.length = updateTypeArray(this.gl, this.type, this.length, this.usage, array, offset);\n } else if (typeof array === \"number\" || array === void 0) {\n if (offset >= 0) {\n throw new Error(\"gl-buffer: Cannot specify offset when resizing buffer\");\n }\n array = array | 0;\n if (array <= 0) {\n array = 1;\n }\n this.gl.bufferData(this.type, array | 0, this.usage);\n this.length = array;\n } else {\n throw new Error(\"gl-buffer: Invalid data type\");\n }\n };\n function createBuffer(gl2, data, type, usage) {\n type = type || gl2.ARRAY_BUFFER;\n usage = usage || gl2.DYNAMIC_DRAW;\n if (type !== gl2.ARRAY_BUFFER && type !== gl2.ELEMENT_ARRAY_BUFFER) {\n throw new Error(\"gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER\");\n }\n if (usage !== gl2.DYNAMIC_DRAW && usage !== gl2.STATIC_DRAW && usage !== gl2.STREAM_DRAW) {\n throw new Error(\"gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW\");\n }\n var handle = gl2.createBuffer();\n var result = new GLBuffer(gl2, type, handle, 0, usage);\n result.update(data);\n return result;\n }\n module2.exports = createBuffer;\n }\n ),\n /***/\n 6405: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var vec3 = __webpack_require__2(2931);\n module2.exports = function(vectorfield, bounds) {\n var positions = vectorfield.positions;\n var vectors = vectorfield.vectors;\n var geo = {\n positions: [],\n vertexIntensity: [],\n vertexIntensityBounds: vectorfield.vertexIntensityBounds,\n vectors: [],\n cells: [],\n coneOffset: vectorfield.coneOffset,\n colormap: vectorfield.colormap\n };\n if (vectorfield.positions.length === 0) {\n if (bounds) {\n bounds[0] = [0, 0, 0];\n bounds[1] = [0, 0, 0];\n }\n return geo;\n }\n var maxNorm = 0;\n var minX = Infinity, maxX = -Infinity;\n var minY = Infinity, maxY = -Infinity;\n var minZ = Infinity, maxZ = -Infinity;\n var p2 = null;\n var u2 = null;\n var positionVectors = [];\n var vectorScale = Infinity;\n var skipIt = false;\n var rawSizemodemode = vectorfield.coneSizemode === \"raw\";\n for (var i = 0; i < positions.length; i++) {\n var p = positions[i];\n minX = Math.min(p[0], minX);\n maxX = Math.max(p[0], maxX);\n minY = Math.min(p[1], minY);\n maxY = Math.max(p[1], maxY);\n minZ = Math.min(p[2], minZ);\n maxZ = Math.max(p[2], maxZ);\n var u = vectors[i];\n if (vec3.length(u) > maxNorm) {\n maxNorm = vec3.length(u);\n }\n if (i && !rawSizemodemode) {\n var q = 2 * vec3.distance(p2, p) / (vec3.length(u2) + vec3.length(u));\n if (q) {\n vectorScale = Math.min(vectorScale, q);\n skipIt = false;\n } else {\n skipIt = true;\n }\n }\n if (!skipIt) {\n p2 = p;\n u2 = u;\n }\n positionVectors.push(u);\n }\n var minV = [minX, minY, minZ];\n var maxV = [maxX, maxY, maxZ];\n if (bounds) {\n bounds[0] = minV;\n bounds[1] = maxV;\n }\n if (maxNorm === 0) {\n maxNorm = 1;\n }\n var invertedMaxNorm = 1 / maxNorm;\n if (!isFinite(vectorScale)) {\n vectorScale = 1;\n }\n geo.vectorScale = vectorScale;\n var coneScale = vectorfield.coneSize || (rawSizemodemode ? 1 : 0.5);\n if (vectorfield.absoluteConeSize) {\n coneScale = vectorfield.absoluteConeSize * invertedMaxNorm;\n }\n geo.coneScale = coneScale;\n for (var i = 0, j = 0; i < positions.length; i++) {\n var p = positions[i];\n var x = p[0], y = p[1], z = p[2];\n var d = positionVectors[i];\n var intensity = vec3.length(d) * invertedMaxNorm;\n for (var k = 0, l = 8; k < l; k++) {\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.positions.push([x, y, z, j++]);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vectors.push(d);\n geo.vertexIntensity.push(intensity, intensity, intensity);\n geo.vertexIntensity.push(intensity, intensity, intensity);\n var m = geo.positions.length;\n geo.cells.push([m - 6, m - 5, m - 4], [m - 3, m - 2, m - 1]);\n }\n }\n return geo;\n };\n var shaders = __webpack_require__2(614);\n module2.exports.createMesh = __webpack_require__2(9060);\n module2.exports.createConeMesh = function(gl2, params) {\n return module2.exports.createMesh(gl2, params, {\n shaders,\n traceType: \"cone\"\n });\n };\n }\n ),\n /***/\n 9060: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createShader = __webpack_require__2(9405);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var multiply = __webpack_require__2(6760);\n var invert = __webpack_require__2(7608);\n var ndarray = __webpack_require__2(9618);\n var colormap = __webpack_require__2(6729);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function VectorMesh(gl2, texture, triShader, pickShader, trianglePositions, triangleVectors, triangleIds, triangleColors, triangleUVs, triangleVAO, traceType) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.cells = [];\n this.positions = [];\n this.intensity = [];\n this.texture = texture;\n this.dirty = true;\n this.triShader = triShader;\n this.pickShader = pickShader;\n this.trianglePositions = trianglePositions;\n this.triangleVectors = triangleVectors;\n this.triangleColors = triangleColors;\n this.triangleUVs = triangleUVs;\n this.triangleIds = triangleIds;\n this.triangleVAO = triangleVAO;\n this.triangleCount = 0;\n this.pickId = 1;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.lightPosition = [1e5, 1e5, 0];\n this.ambientLight = 0.8;\n this.diffuseLight = 0.8;\n this.specularLight = 2;\n this.roughness = 0.5;\n this.fresnel = 1.5;\n this.opacity = 1;\n this.traceType = traceType;\n this.tubeScale = 1;\n this.coneScale = 2;\n this.vectorScale = 1;\n this.coneOffset = 0.25;\n this._model = IDENTITY;\n this._view = IDENTITY;\n this._projection = IDENTITY;\n this._resolution = [1, 1];\n }\n var proto = VectorMesh.prototype;\n proto.isOpaque = function() {\n return this.opacity >= 1;\n };\n proto.isTransparent = function() {\n return this.opacity < 1;\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n function genColormap(param) {\n var colors = colormap({\n colormap: param,\n nshades: 256,\n format: \"rgba\"\n });\n var result = new Uint8Array(256 * 4);\n for (var i = 0; i < 256; ++i) {\n var c = colors[i];\n for (var j = 0; j < 3; ++j) {\n result[4 * i + j] = c[j];\n }\n result[4 * i + 3] = c[3] * 255;\n }\n return ndarray(result, [256, 256, 4], [4, 0, 1]);\n }\n function takeZComponent(array) {\n var n = array.length;\n var result = new Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = array[i][2];\n }\n return result;\n }\n proto.update = function(params) {\n params = params || {};\n var gl2 = this.gl;\n this.dirty = true;\n if (\"lightPosition\" in params) {\n this.lightPosition = params.lightPosition;\n }\n if (\"opacity\" in params) {\n this.opacity = params.opacity;\n }\n if (\"ambient\" in params) {\n this.ambientLight = params.ambient;\n }\n if (\"diffuse\" in params) {\n this.diffuseLight = params.diffuse;\n }\n if (\"specular\" in params) {\n this.specularLight = params.specular;\n }\n if (\"roughness\" in params) {\n this.roughness = params.roughness;\n }\n if (\"fresnel\" in params) {\n this.fresnel = params.fresnel;\n }\n if (params.tubeScale !== void 0) {\n this.tubeScale = params.tubeScale;\n }\n if (params.vectorScale !== void 0) {\n this.vectorScale = params.vectorScale;\n }\n if (params.coneScale !== void 0) {\n this.coneScale = params.coneScale;\n }\n if (params.coneOffset !== void 0) {\n this.coneOffset = params.coneOffset;\n }\n if (params.colormap) {\n this.texture.shape = [256, 256];\n this.texture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n this.texture.magFilter = gl2.LINEAR;\n this.texture.setPixels(genColormap(params.colormap));\n this.texture.generateMipmap();\n }\n var cells = params.cells;\n var positions = params.positions;\n var vectors = params.vectors;\n if (!positions || !cells || !vectors) {\n return;\n }\n var tPos = [];\n var tVec = [];\n var tCol = [];\n var tUVs = [];\n var tIds = [];\n this.cells = cells;\n this.positions = positions;\n this.vectors = vectors;\n var meshColor = params.meshColor || [1, 1, 1, 1];\n var vertexIntensity = params.vertexIntensity;\n var intensityLo = Infinity;\n var intensityHi = -Infinity;\n if (vertexIntensity) {\n if (params.vertexIntensityBounds) {\n intensityLo = +params.vertexIntensityBounds[0];\n intensityHi = +params.vertexIntensityBounds[1];\n } else {\n for (var i = 0; i < vertexIntensity.length; ++i) {\n var f = vertexIntensity[i];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n } else {\n for (var i = 0; i < positions.length; ++i) {\n var f = positions[i][2];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n if (vertexIntensity) {\n this.intensity = vertexIntensity;\n } else {\n this.intensity = takeZComponent(positions);\n }\n this.bounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n for (var i = 0; i < positions.length; ++i) {\n var p = positions[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(p[j]) || !isFinite(p[j])) {\n continue;\n }\n this.bounds[0][j] = Math.min(this.bounds[0][j], p[j]);\n this.bounds[1][j] = Math.max(this.bounds[1][j], p[j]);\n }\n }\n var triangleCount = 0;\n fill_loop:\n for (var i = 0; i < cells.length; ++i) {\n var cell = cells[i];\n switch (cell.length) {\n case 3:\n for (var j = 0; j < 3; ++j) {\n var v = cell[j];\n var p = positions[v];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue fill_loop;\n }\n }\n }\n for (var j = 0; j < 3; ++j) {\n var v = cell[2 - j];\n var p = positions[v];\n tPos.push(p[0], p[1], p[2], p[3]);\n var w = vectors[v];\n tVec.push(w[0], w[1], w[2], w[3] || 0);\n var c = meshColor;\n if (c.length === 3) {\n tCol.push(c[0], c[1], c[2], 1);\n } else {\n tCol.push(c[0], c[1], c[2], c[3]);\n }\n var uv;\n if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n tUVs.push(uv[0], uv[1]);\n tIds.push(i);\n }\n triangleCount += 1;\n break;\n default:\n break;\n }\n }\n this.triangleCount = triangleCount;\n this.trianglePositions.update(tPos);\n this.triangleVectors.update(tVec);\n this.triangleColors.update(tCol);\n this.triangleUVs.update(tUVs);\n this.triangleIds.update(new Uint32Array(tIds));\n };\n proto.drawTransparent = proto.draw = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n var uniforms = {\n model,\n view,\n projection,\n inverseModel: IDENTITY.slice(),\n clipBounds,\n kambient: this.ambientLight,\n kdiffuse: this.diffuseLight,\n kspecular: this.specularLight,\n roughness: this.roughness,\n fresnel: this.fresnel,\n eyePosition: [0, 0, 0],\n lightPosition: [0, 0, 0],\n opacity: this.opacity,\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n texture: 0\n };\n uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model);\n gl2.disable(gl2.CULL_FACE);\n this.texture.bind(0);\n var invCameraMatrix = new Array(16);\n multiply(invCameraMatrix, uniforms.view, uniforms.model);\n multiply(invCameraMatrix, uniforms.projection, invCameraMatrix);\n invert(invCameraMatrix, invCameraMatrix);\n for (var i = 0; i < 3; ++i) {\n uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15];\n }\n var w = invCameraMatrix[15];\n for (var i = 0; i < 3; ++i) {\n w += this.lightPosition[i] * invCameraMatrix[4 * i + 3];\n }\n for (var i = 0; i < 3; ++i) {\n var s = invCameraMatrix[12 + i];\n for (var j = 0; j < 3; ++j) {\n s += invCameraMatrix[4 * j + i] * this.lightPosition[j];\n }\n uniforms.lightPosition[i] = s / w;\n }\n if (this.triangleCount > 0) {\n var shader = this.triShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n };\n proto.drawPick = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n this._model = [].slice.call(model);\n this._view = [].slice.call(view);\n this._projection = [].slice.call(projection);\n this._resolution = [gl2.drawingBufferWidth, gl2.drawingBufferHeight];\n var uniforms = {\n model,\n view,\n projection,\n clipBounds,\n tubeScale: this.tubeScale,\n vectorScale: this.vectorScale,\n coneScale: this.coneScale,\n coneOffset: this.coneOffset,\n pickId: this.pickId / 255\n };\n var shader = this.pickShader;\n shader.bind();\n shader.uniforms = uniforms;\n if (this.triangleCount > 0) {\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n };\n proto.pick = function(pickData) {\n if (!pickData) {\n return null;\n }\n if (pickData.id !== this.pickId) {\n return null;\n }\n var cellId = pickData.value[0] + 256 * pickData.value[1] + 65536 * pickData.value[2];\n var cell = this.cells[cellId];\n var pos = this.positions[cell[1]].slice(0, 3);\n var result = {\n position: pos,\n dataCoordinate: pos,\n index: Math.floor(cell[1] / 48)\n };\n if (this.traceType === \"cone\") {\n result.index = Math.floor(cell[1] / 48);\n } else if (this.traceType === \"streamtube\") {\n result.intensity = this.intensity[cell[1]];\n result.velocity = this.vectors[cell[1]].slice(0, 3);\n result.divergence = this.vectors[cell[1]][3];\n result.index = cellId;\n }\n return result;\n };\n proto.dispose = function() {\n this.texture.dispose();\n this.triShader.dispose();\n this.pickShader.dispose();\n this.triangleVAO.dispose();\n this.trianglePositions.dispose();\n this.triangleVectors.dispose();\n this.triangleColors.dispose();\n this.triangleUVs.dispose();\n this.triangleIds.dispose();\n };\n function createMeshShader(gl2, shaders) {\n var shader = createShader(\n gl2,\n shaders.meshShader.vertex,\n shaders.meshShader.fragment,\n null,\n shaders.meshShader.attributes\n );\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n shader.attributes.vector.location = 4;\n return shader;\n }\n function createPickShader(gl2, shaders) {\n var shader = createShader(\n gl2,\n shaders.pickShader.vertex,\n shaders.pickShader.fragment,\n null,\n shaders.pickShader.attributes\n );\n shader.attributes.position.location = 0;\n shader.attributes.id.location = 1;\n shader.attributes.vector.location = 4;\n return shader;\n }\n function createVectorMesh(gl2, params, opts) {\n var shaders = opts.shaders;\n if (arguments.length === 1) {\n params = gl2;\n gl2 = params.gl;\n }\n var triShader = createMeshShader(gl2, shaders);\n var pickShader = createPickShader(gl2, shaders);\n var meshTexture = createTexture(\n gl2,\n ndarray(new Uint8Array([255, 255, 255, 255]), [1, 1, 4])\n );\n meshTexture.generateMipmap();\n meshTexture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n meshTexture.magFilter = gl2.LINEAR;\n var trianglePositions = createBuffer(gl2);\n var triangleVectors = createBuffer(gl2);\n var triangleColors = createBuffer(gl2);\n var triangleUVs = createBuffer(gl2);\n var triangleIds = createBuffer(gl2);\n var triangleVAO = createVAO(gl2, [\n {\n buffer: trianglePositions,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: triangleIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: triangleColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: triangleUVs,\n type: gl2.FLOAT,\n size: 2\n },\n {\n buffer: triangleVectors,\n type: gl2.FLOAT,\n size: 4\n }\n ]);\n var mesh = new VectorMesh(\n gl2,\n meshTexture,\n triShader,\n pickShader,\n trianglePositions,\n triangleVectors,\n triangleIds,\n triangleColors,\n triangleUVs,\n triangleVAO,\n opts.traceType || \"cone\"\n );\n mesh.update(params);\n return mesh;\n }\n module2.exports = createVectorMesh;\n }\n ),\n /***/\n 614: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var triVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the cone vertex and normal at the given index.\\n//\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\n// pointing in the direction of the vector attribute.\\n//\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\n// These vertices are used to make up the triangles of the cone by the following:\\n// segment + 0 top vertex\\n// segment + 1 perimeter vertex a+1\\n// segment + 2 perimeter vertex a\\n// segment + 3 center base vertex\\n// segment + 4 perimeter vertex a\\n// segment + 5 perimeter vertex a+1\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\n// To go from index to segment, floor(index / 6)\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\n// To go from index to segment index, index - (segment*6)\\n//\\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\\n\\n const float segmentCount = 8.0;\\n\\n float index = rawIndex - floor(rawIndex /\\n (segmentCount * 6.0)) *\\n (segmentCount * 6.0);\\n\\n float segment = floor(0.001 + index/6.0);\\n float segmentIndex = index - (segment*6.0);\\n\\n normal = -normalize(d);\\n\\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\\n return mix(vec3(0.0), -d, coneOffset);\\n }\\n\\n float nextAngle = (\\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\\n (segmentIndex > 4.99 && segmentIndex < 5.01)\\n ) ? 1.0 : 0.0;\\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\n\\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\\n vec3 v2 = v1 - d;\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d)*0.25;\\n vec3 y = v * sin(angle) * length(d)*0.25;\\n vec3 v3 = v2 + x + y;\\n if (segmentIndex < 3.0) {\\n vec3 tx = u * sin(angle);\\n vec3 ty = v * -cos(angle);\\n vec3 tangent = tx + ty;\\n normal = normalize(cross(v3 - v1, tangent));\\n }\\n\\n if (segmentIndex == 0.0) {\\n return mix(d, vec3(0.0), coneOffset);\\n }\\n return v3;\\n}\\n\\nattribute vec3 vector;\\nattribute vec4 color, position;\\nattribute vec2 uv;\\n\\nuniform float vectorScale, coneScale, coneOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 eyePosition, lightPosition;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n // Scale the vector magnitude to stay constant with\\n // model & view changes.\\n vec3 normal;\\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal);\\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * conePosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n // vec4 m_position = model * vec4(conePosition, 1.0);\\n vec4 t_position = view * conePosition;\\n gl_Position = projection * t_position;\\n\\n f_color = color;\\n f_data = conePosition.xyz;\\n f_position = position.xyz;\\n f_uv = uv;\\n}\\n\"]);\n var triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * opacity;\\n}\\n\"]);\n var pickVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the cone vertex and normal at the given index.\\n//\\n// The returned vertex is for a cone with its top at origin and height of 1.0,\\n// pointing in the direction of the vector attribute.\\n//\\n// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices.\\n// These vertices are used to make up the triangles of the cone by the following:\\n// segment + 0 top vertex\\n// segment + 1 perimeter vertex a+1\\n// segment + 2 perimeter vertex a\\n// segment + 3 center base vertex\\n// segment + 4 perimeter vertex a\\n// segment + 5 perimeter vertex a+1\\n// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment.\\n// To go from index to segment, floor(index / 6)\\n// To go from segment to angle, 2*pi * (segment/segmentCount)\\n// To go from index to segment index, index - (segment*6)\\n//\\nvec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) {\\n\\n const float segmentCount = 8.0;\\n\\n float index = rawIndex - floor(rawIndex /\\n (segmentCount * 6.0)) *\\n (segmentCount * 6.0);\\n\\n float segment = floor(0.001 + index/6.0);\\n float segmentIndex = index - (segment*6.0);\\n\\n normal = -normalize(d);\\n\\n if (segmentIndex > 2.99 && segmentIndex < 3.01) {\\n return mix(vec3(0.0), -d, coneOffset);\\n }\\n\\n float nextAngle = (\\n (segmentIndex > 0.99 && segmentIndex < 1.01) ||\\n (segmentIndex > 4.99 && segmentIndex < 5.01)\\n ) ? 1.0 : 0.0;\\n float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount);\\n\\n vec3 v1 = mix(d, vec3(0.0), coneOffset);\\n vec3 v2 = v1 - d;\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d)*0.25;\\n vec3 y = v * sin(angle) * length(d)*0.25;\\n vec3 v3 = v2 + x + y;\\n if (segmentIndex < 3.0) {\\n vec3 tx = u * sin(angle);\\n vec3 ty = v * -cos(angle);\\n vec3 tangent = tx + ty;\\n normal = normalize(cross(v3 - v1, tangent));\\n }\\n\\n if (segmentIndex == 0.0) {\\n return mix(d, vec3(0.0), coneOffset);\\n }\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform float vectorScale, coneScale, coneOffset;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n vec3 normal;\\n vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal);\\n vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n gl_Position = projection * (view * conePosition);\\n f_id = id;\\n f_position = position.xyz;\\n}\\n\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);\n exports2.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" },\n { name: \"vector\", type: \"vec3\" }\n ]\n };\n exports2.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"id\", type: \"vec4\" },\n { name: \"vector\", type: \"vec3\" }\n ]\n };\n }\n ),\n /***/\n 737: (\n /***/\n function(module2) {\n module2.exports = {\n 0: \"NONE\",\n 1: \"ONE\",\n 2: \"LINE_LOOP\",\n 3: \"LINE_STRIP\",\n 4: \"TRIANGLES\",\n 5: \"TRIANGLE_STRIP\",\n 6: \"TRIANGLE_FAN\",\n 256: \"DEPTH_BUFFER_BIT\",\n 512: \"NEVER\",\n 513: \"LESS\",\n 514: \"EQUAL\",\n 515: \"LEQUAL\",\n 516: \"GREATER\",\n 517: \"NOTEQUAL\",\n 518: \"GEQUAL\",\n 519: \"ALWAYS\",\n 768: \"SRC_COLOR\",\n 769: \"ONE_MINUS_SRC_COLOR\",\n 770: \"SRC_ALPHA\",\n 771: \"ONE_MINUS_SRC_ALPHA\",\n 772: \"DST_ALPHA\",\n 773: \"ONE_MINUS_DST_ALPHA\",\n 774: \"DST_COLOR\",\n 775: \"ONE_MINUS_DST_COLOR\",\n 776: \"SRC_ALPHA_SATURATE\",\n 1024: \"STENCIL_BUFFER_BIT\",\n 1028: \"FRONT\",\n 1029: \"BACK\",\n 1032: \"FRONT_AND_BACK\",\n 1280: \"INVALID_ENUM\",\n 1281: \"INVALID_VALUE\",\n 1282: \"INVALID_OPERATION\",\n 1285: \"OUT_OF_MEMORY\",\n 1286: \"INVALID_FRAMEBUFFER_OPERATION\",\n 2304: \"CW\",\n 2305: \"CCW\",\n 2849: \"LINE_WIDTH\",\n 2884: \"CULL_FACE\",\n 2885: \"CULL_FACE_MODE\",\n 2886: \"FRONT_FACE\",\n 2928: \"DEPTH_RANGE\",\n 2929: \"DEPTH_TEST\",\n 2930: \"DEPTH_WRITEMASK\",\n 2931: \"DEPTH_CLEAR_VALUE\",\n 2932: \"DEPTH_FUNC\",\n 2960: \"STENCIL_TEST\",\n 2961: \"STENCIL_CLEAR_VALUE\",\n 2962: \"STENCIL_FUNC\",\n 2963: \"STENCIL_VALUE_MASK\",\n 2964: \"STENCIL_FAIL\",\n 2965: \"STENCIL_PASS_DEPTH_FAIL\",\n 2966: \"STENCIL_PASS_DEPTH_PASS\",\n 2967: \"STENCIL_REF\",\n 2968: \"STENCIL_WRITEMASK\",\n 2978: \"VIEWPORT\",\n 3024: \"DITHER\",\n 3042: \"BLEND\",\n 3088: \"SCISSOR_BOX\",\n 3089: \"SCISSOR_TEST\",\n 3106: \"COLOR_CLEAR_VALUE\",\n 3107: \"COLOR_WRITEMASK\",\n 3317: \"UNPACK_ALIGNMENT\",\n 3333: \"PACK_ALIGNMENT\",\n 3379: \"MAX_TEXTURE_SIZE\",\n 3386: \"MAX_VIEWPORT_DIMS\",\n 3408: \"SUBPIXEL_BITS\",\n 3410: \"RED_BITS\",\n 3411: \"GREEN_BITS\",\n 3412: \"BLUE_BITS\",\n 3413: \"ALPHA_BITS\",\n 3414: \"DEPTH_BITS\",\n 3415: \"STENCIL_BITS\",\n 3553: \"TEXTURE_2D\",\n 4352: \"DONT_CARE\",\n 4353: \"FASTEST\",\n 4354: \"NICEST\",\n 5120: \"BYTE\",\n 5121: \"UNSIGNED_BYTE\",\n 5122: \"SHORT\",\n 5123: \"UNSIGNED_SHORT\",\n 5124: \"INT\",\n 5125: \"UNSIGNED_INT\",\n 5126: \"FLOAT\",\n 5386: \"INVERT\",\n 5890: \"TEXTURE\",\n 6401: \"STENCIL_INDEX\",\n 6402: \"DEPTH_COMPONENT\",\n 6406: \"ALPHA\",\n 6407: \"RGB\",\n 6408: \"RGBA\",\n 6409: \"LUMINANCE\",\n 6410: \"LUMINANCE_ALPHA\",\n 7680: \"KEEP\",\n 7681: \"REPLACE\",\n 7682: \"INCR\",\n 7683: \"DECR\",\n 7936: \"VENDOR\",\n 7937: \"RENDERER\",\n 7938: \"VERSION\",\n 9728: \"NEAREST\",\n 9729: \"LINEAR\",\n 9984: \"NEAREST_MIPMAP_NEAREST\",\n 9985: \"LINEAR_MIPMAP_NEAREST\",\n 9986: \"NEAREST_MIPMAP_LINEAR\",\n 9987: \"LINEAR_MIPMAP_LINEAR\",\n 10240: \"TEXTURE_MAG_FILTER\",\n 10241: \"TEXTURE_MIN_FILTER\",\n 10242: \"TEXTURE_WRAP_S\",\n 10243: \"TEXTURE_WRAP_T\",\n 10497: \"REPEAT\",\n 10752: \"POLYGON_OFFSET_UNITS\",\n 16384: \"COLOR_BUFFER_BIT\",\n 32769: \"CONSTANT_COLOR\",\n 32770: \"ONE_MINUS_CONSTANT_COLOR\",\n 32771: \"CONSTANT_ALPHA\",\n 32772: \"ONE_MINUS_CONSTANT_ALPHA\",\n 32773: \"BLEND_COLOR\",\n 32774: \"FUNC_ADD\",\n 32777: \"BLEND_EQUATION_RGB\",\n 32778: \"FUNC_SUBTRACT\",\n 32779: \"FUNC_REVERSE_SUBTRACT\",\n 32819: \"UNSIGNED_SHORT_4_4_4_4\",\n 32820: \"UNSIGNED_SHORT_5_5_5_1\",\n 32823: \"POLYGON_OFFSET_FILL\",\n 32824: \"POLYGON_OFFSET_FACTOR\",\n 32854: \"RGBA4\",\n 32855: \"RGB5_A1\",\n 32873: \"TEXTURE_BINDING_2D\",\n 32926: \"SAMPLE_ALPHA_TO_COVERAGE\",\n 32928: \"SAMPLE_COVERAGE\",\n 32936: \"SAMPLE_BUFFERS\",\n 32937: \"SAMPLES\",\n 32938: \"SAMPLE_COVERAGE_VALUE\",\n 32939: \"SAMPLE_COVERAGE_INVERT\",\n 32968: \"BLEND_DST_RGB\",\n 32969: \"BLEND_SRC_RGB\",\n 32970: \"BLEND_DST_ALPHA\",\n 32971: \"BLEND_SRC_ALPHA\",\n 33071: \"CLAMP_TO_EDGE\",\n 33170: \"GENERATE_MIPMAP_HINT\",\n 33189: \"DEPTH_COMPONENT16\",\n 33306: \"DEPTH_STENCIL_ATTACHMENT\",\n 33635: \"UNSIGNED_SHORT_5_6_5\",\n 33648: \"MIRRORED_REPEAT\",\n 33901: \"ALIASED_POINT_SIZE_RANGE\",\n 33902: \"ALIASED_LINE_WIDTH_RANGE\",\n 33984: \"TEXTURE0\",\n 33985: \"TEXTURE1\",\n 33986: \"TEXTURE2\",\n 33987: \"TEXTURE3\",\n 33988: \"TEXTURE4\",\n 33989: \"TEXTURE5\",\n 33990: \"TEXTURE6\",\n 33991: \"TEXTURE7\",\n 33992: \"TEXTURE8\",\n 33993: \"TEXTURE9\",\n 33994: \"TEXTURE10\",\n 33995: \"TEXTURE11\",\n 33996: \"TEXTURE12\",\n 33997: \"TEXTURE13\",\n 33998: \"TEXTURE14\",\n 33999: \"TEXTURE15\",\n 34e3: \"TEXTURE16\",\n 34001: \"TEXTURE17\",\n 34002: \"TEXTURE18\",\n 34003: \"TEXTURE19\",\n 34004: \"TEXTURE20\",\n 34005: \"TEXTURE21\",\n 34006: \"TEXTURE22\",\n 34007: \"TEXTURE23\",\n 34008: \"TEXTURE24\",\n 34009: \"TEXTURE25\",\n 34010: \"TEXTURE26\",\n 34011: \"TEXTURE27\",\n 34012: \"TEXTURE28\",\n 34013: \"TEXTURE29\",\n 34014: \"TEXTURE30\",\n 34015: \"TEXTURE31\",\n 34016: \"ACTIVE_TEXTURE\",\n 34024: \"MAX_RENDERBUFFER_SIZE\",\n 34041: \"DEPTH_STENCIL\",\n 34055: \"INCR_WRAP\",\n 34056: \"DECR_WRAP\",\n 34067: \"TEXTURE_CUBE_MAP\",\n 34068: \"TEXTURE_BINDING_CUBE_MAP\",\n 34069: \"TEXTURE_CUBE_MAP_POSITIVE_X\",\n 34070: \"TEXTURE_CUBE_MAP_NEGATIVE_X\",\n 34071: \"TEXTURE_CUBE_MAP_POSITIVE_Y\",\n 34072: \"TEXTURE_CUBE_MAP_NEGATIVE_Y\",\n 34073: \"TEXTURE_CUBE_MAP_POSITIVE_Z\",\n 34074: \"TEXTURE_CUBE_MAP_NEGATIVE_Z\",\n 34076: \"MAX_CUBE_MAP_TEXTURE_SIZE\",\n 34338: \"VERTEX_ATTRIB_ARRAY_ENABLED\",\n 34339: \"VERTEX_ATTRIB_ARRAY_SIZE\",\n 34340: \"VERTEX_ATTRIB_ARRAY_STRIDE\",\n 34341: \"VERTEX_ATTRIB_ARRAY_TYPE\",\n 34342: \"CURRENT_VERTEX_ATTRIB\",\n 34373: \"VERTEX_ATTRIB_ARRAY_POINTER\",\n 34466: \"NUM_COMPRESSED_TEXTURE_FORMATS\",\n 34467: \"COMPRESSED_TEXTURE_FORMATS\",\n 34660: \"BUFFER_SIZE\",\n 34661: \"BUFFER_USAGE\",\n 34816: \"STENCIL_BACK_FUNC\",\n 34817: \"STENCIL_BACK_FAIL\",\n 34818: \"STENCIL_BACK_PASS_DEPTH_FAIL\",\n 34819: \"STENCIL_BACK_PASS_DEPTH_PASS\",\n 34877: \"BLEND_EQUATION_ALPHA\",\n 34921: \"MAX_VERTEX_ATTRIBS\",\n 34922: \"VERTEX_ATTRIB_ARRAY_NORMALIZED\",\n 34930: \"MAX_TEXTURE_IMAGE_UNITS\",\n 34962: \"ARRAY_BUFFER\",\n 34963: \"ELEMENT_ARRAY_BUFFER\",\n 34964: \"ARRAY_BUFFER_BINDING\",\n 34965: \"ELEMENT_ARRAY_BUFFER_BINDING\",\n 34975: \"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING\",\n 35040: \"STREAM_DRAW\",\n 35044: \"STATIC_DRAW\",\n 35048: \"DYNAMIC_DRAW\",\n 35632: \"FRAGMENT_SHADER\",\n 35633: \"VERTEX_SHADER\",\n 35660: \"MAX_VERTEX_TEXTURE_IMAGE_UNITS\",\n 35661: \"MAX_COMBINED_TEXTURE_IMAGE_UNITS\",\n 35663: \"SHADER_TYPE\",\n 35664: \"FLOAT_VEC2\",\n 35665: \"FLOAT_VEC3\",\n 35666: \"FLOAT_VEC4\",\n 35667: \"INT_VEC2\",\n 35668: \"INT_VEC3\",\n 35669: \"INT_VEC4\",\n 35670: \"BOOL\",\n 35671: \"BOOL_VEC2\",\n 35672: \"BOOL_VEC3\",\n 35673: \"BOOL_VEC4\",\n 35674: \"FLOAT_MAT2\",\n 35675: \"FLOAT_MAT3\",\n 35676: \"FLOAT_MAT4\",\n 35678: \"SAMPLER_2D\",\n 35680: \"SAMPLER_CUBE\",\n 35712: \"DELETE_STATUS\",\n 35713: \"COMPILE_STATUS\",\n 35714: \"LINK_STATUS\",\n 35715: \"VALIDATE_STATUS\",\n 35716: \"INFO_LOG_LENGTH\",\n 35717: \"ATTACHED_SHADERS\",\n 35718: \"ACTIVE_UNIFORMS\",\n 35719: \"ACTIVE_UNIFORM_MAX_LENGTH\",\n 35720: \"SHADER_SOURCE_LENGTH\",\n 35721: \"ACTIVE_ATTRIBUTES\",\n 35722: \"ACTIVE_ATTRIBUTE_MAX_LENGTH\",\n 35724: \"SHADING_LANGUAGE_VERSION\",\n 35725: \"CURRENT_PROGRAM\",\n 36003: \"STENCIL_BACK_REF\",\n 36004: \"STENCIL_BACK_VALUE_MASK\",\n 36005: \"STENCIL_BACK_WRITEMASK\",\n 36006: \"FRAMEBUFFER_BINDING\",\n 36007: \"RENDERBUFFER_BINDING\",\n 36048: \"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE\",\n 36049: \"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME\",\n 36050: \"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL\",\n 36051: \"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE\",\n 36053: \"FRAMEBUFFER_COMPLETE\",\n 36054: \"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\",\n 36055: \"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\",\n 36057: \"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\",\n 36061: \"FRAMEBUFFER_UNSUPPORTED\",\n 36064: \"COLOR_ATTACHMENT0\",\n 36096: \"DEPTH_ATTACHMENT\",\n 36128: \"STENCIL_ATTACHMENT\",\n 36160: \"FRAMEBUFFER\",\n 36161: \"RENDERBUFFER\",\n 36162: \"RENDERBUFFER_WIDTH\",\n 36163: \"RENDERBUFFER_HEIGHT\",\n 36164: \"RENDERBUFFER_INTERNAL_FORMAT\",\n 36168: \"STENCIL_INDEX8\",\n 36176: \"RENDERBUFFER_RED_SIZE\",\n 36177: \"RENDERBUFFER_GREEN_SIZE\",\n 36178: \"RENDERBUFFER_BLUE_SIZE\",\n 36179: \"RENDERBUFFER_ALPHA_SIZE\",\n 36180: \"RENDERBUFFER_DEPTH_SIZE\",\n 36181: \"RENDERBUFFER_STENCIL_SIZE\",\n 36194: \"RGB565\",\n 36336: \"LOW_FLOAT\",\n 36337: \"MEDIUM_FLOAT\",\n 36338: \"HIGH_FLOAT\",\n 36339: \"LOW_INT\",\n 36340: \"MEDIUM_INT\",\n 36341: \"HIGH_INT\",\n 36346: \"SHADER_COMPILER\",\n 36347: \"MAX_VERTEX_UNIFORM_VECTORS\",\n 36348: \"MAX_VARYING_VECTORS\",\n 36349: \"MAX_FRAGMENT_UNIFORM_VECTORS\",\n 37440: \"UNPACK_FLIP_Y_WEBGL\",\n 37441: \"UNPACK_PREMULTIPLY_ALPHA_WEBGL\",\n 37442: \"CONTEXT_LOST_WEBGL\",\n 37443: \"UNPACK_COLORSPACE_CONVERSION_WEBGL\",\n 37444: \"BROWSER_DEFAULT_WEBGL\"\n };\n }\n ),\n /***/\n 5171: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var gl10 = __webpack_require__2(737);\n module2.exports = function lookupConstant(number) {\n return gl10[number];\n };\n }\n ),\n /***/\n 9165: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createErrorBars;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(3436);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function ErrorBars(gl2, buffer, vao, shader) {\n this.gl = gl2;\n this.shader = shader;\n this.buffer = buffer;\n this.vao = vao;\n this.pixelRatio = 1;\n this.bounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n this.clipBounds = [[-Infinity, -Infinity, -Infinity], [Infinity, Infinity, Infinity]];\n this.lineWidth = [1, 1, 1];\n this.capSize = [10, 10, 10];\n this.lineCount = [0, 0, 0];\n this.lineOffset = [0, 0, 0];\n this.opacity = 1;\n this.hasAlpha = false;\n }\n var proto = ErrorBars.prototype;\n proto.isOpaque = function() {\n return !this.hasAlpha;\n };\n proto.isTransparent = function() {\n return this.hasAlpha;\n };\n proto.drawTransparent = proto.draw = function(cameraParams) {\n var gl2 = this.gl;\n var uniforms = this.shader.uniforms;\n this.shader.bind();\n var view = uniforms.view = cameraParams.view || IDENTITY;\n var projection = uniforms.projection = cameraParams.projection || IDENTITY;\n uniforms.model = cameraParams.model || IDENTITY;\n uniforms.clipBounds = this.clipBounds;\n uniforms.opacity = this.opacity;\n var cx = view[12];\n var cy = view[13];\n var cz = view[14];\n var cw = view[15];\n var isOrtho = cameraParams._ortho || false;\n var orthoFix = isOrtho ? 2 : 1;\n var pixelScaleF = orthoFix * this.pixelRatio * (projection[3] * cx + projection[7] * cy + projection[11] * cz + projection[15] * cw) / gl2.drawingBufferHeight;\n this.vao.bind();\n for (var i = 0; i < 3; ++i) {\n gl2.lineWidth(this.lineWidth[i] * this.pixelRatio);\n uniforms.capSize = this.capSize[i] * pixelScaleF;\n if (this.lineCount[i]) {\n gl2.drawArrays(gl2.LINES, this.lineOffset[i], this.lineCount[i]);\n }\n }\n this.vao.unbind();\n };\n function updateBounds(bounds, point) {\n for (var i = 0; i < 3; ++i) {\n bounds[0][i] = Math.min(bounds[0][i], point[i]);\n bounds[1][i] = Math.max(bounds[1][i], point[i]);\n }\n }\n var FACE_TABLE = function() {\n var table = new Array(3);\n for (var d = 0; d < 3; ++d) {\n var row = [];\n for (var j = 1; j <= 2; ++j) {\n for (var s = -1; s <= 1; s += 2) {\n var u = (j + d) % 3;\n var y = [0, 0, 0];\n y[u] = s;\n row.push(y);\n }\n }\n table[d] = row;\n }\n return table;\n }();\n function emitFace(verts, x, c, d) {\n var offsets = FACE_TABLE[d];\n for (var i = 0; i < offsets.length; ++i) {\n var o = offsets[i];\n verts.push(\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2],\n c[3],\n o[0],\n o[1],\n o[2]\n );\n }\n return offsets.length;\n }\n proto.update = function(options) {\n options = options || {};\n if (\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth;\n if (!Array.isArray(this.lineWidth)) {\n this.lineWidth = [this.lineWidth, this.lineWidth, this.lineWidth];\n }\n }\n if (\"capSize\" in options) {\n this.capSize = options.capSize;\n if (!Array.isArray(this.capSize)) {\n this.capSize = [this.capSize, this.capSize, this.capSize];\n }\n }\n this.hasAlpha = false;\n if (\"opacity\" in options) {\n this.opacity = +options.opacity;\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n var color2 = options.color || [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n var position = options.position;\n var error = options.error;\n if (!Array.isArray(color2[0])) {\n color2 = [color2, color2, color2];\n }\n if (position && error) {\n var verts = [];\n var n = position.length;\n var vertexCount = 0;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.lineCount = [0, 0, 0];\n for (var j = 0; j < 3; ++j) {\n this.lineOffset[j] = vertexCount;\n i_loop:\n for (var i = 0; i < n; ++i) {\n var p = position[i];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue i_loop;\n }\n }\n var e = error[i];\n var c = color2[j];\n if (Array.isArray(c[0])) {\n c = color2[i];\n }\n if (c.length === 3) {\n c = [c[0], c[1], c[2], 1];\n } else if (c.length === 4) {\n c = [c[0], c[1], c[2], c[3]];\n if (!this.hasAlpha && c[3] < 1) this.hasAlpha = true;\n }\n if (isNaN(e[0][j]) || isNaN(e[1][j])) {\n continue;\n }\n if (e[0][j] < 0) {\n var x = p.slice();\n x[j] += e[0][j];\n verts.push(\n p[0],\n p[1],\n p[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0,\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0\n );\n updateBounds(this.bounds, x);\n vertexCount += 2 + emitFace(verts, x, c, j);\n }\n if (e[1][j] > 0) {\n var x = p.slice();\n x[j] += e[1][j];\n verts.push(\n p[0],\n p[1],\n p[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0,\n x[0],\n x[1],\n x[2],\n c[0],\n c[1],\n c[2],\n c[3],\n 0,\n 0,\n 0\n );\n updateBounds(this.bounds, x);\n vertexCount += 2 + emitFace(verts, x, c, j);\n }\n }\n this.lineCount[j] = vertexCount - this.lineOffset[j];\n }\n this.buffer.update(verts);\n }\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.buffer.dispose();\n this.vao.dispose();\n };\n function createErrorBars(options) {\n var gl2 = options.gl;\n var buffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 0,\n stride: 40\n },\n {\n buffer,\n type: gl2.FLOAT,\n size: 4,\n offset: 12,\n stride: 40\n },\n {\n buffer,\n type: gl2.FLOAT,\n size: 3,\n offset: 28,\n stride: 40\n }\n ]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 1;\n shader.attributes.offset.location = 2;\n var result = new ErrorBars(gl2, buffer, vao, shader);\n result.update(options);\n return result;\n }\n }\n ),\n /***/\n 3436: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, offset;\\nattribute vec4 color;\\nuniform mat4 model, view, projection;\\nuniform float capSize;\\nvarying vec4 fragColor;\\nvarying vec3 fragPosition;\\n\\nvoid main() {\\n vec4 worldPosition = model * vec4(position, 1.0);\\n worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0);\\n gl_Position = projection * (view * worldPosition);\\n fragColor = color;\\n fragPosition = position;\\n}\"]);\n var fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float opacity;\\nvarying vec3 fragPosition;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], fragPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n gl_FragColor = opacity * fragColor;\\n}\"]);\n module2.exports = function(gl2) {\n return createShader(gl2, vertSrc, fragSrc, null, [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"offset\", type: \"vec3\" }\n ]);\n };\n }\n ),\n /***/\n 2260: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createTexture = __webpack_require__2(7766);\n module2.exports = createFBO;\n var colorAttachmentArrays = null;\n var FRAMEBUFFER_UNSUPPORTED;\n var FRAMEBUFFER_INCOMPLETE_ATTACHMENT;\n var FRAMEBUFFER_INCOMPLETE_DIMENSIONS;\n var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;\n function saveFBOState(gl2) {\n var fbo = gl2.getParameter(gl2.FRAMEBUFFER_BINDING);\n var rbo = gl2.getParameter(gl2.RENDERBUFFER_BINDING);\n var tex = gl2.getParameter(gl2.TEXTURE_BINDING_2D);\n return [fbo, rbo, tex];\n }\n function restoreFBOState(gl2, data) {\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, data[0]);\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, data[1]);\n gl2.bindTexture(gl2.TEXTURE_2D, data[2]);\n }\n function lazyInitColorAttachments(gl2, ext) {\n var maxColorAttachments = gl2.getParameter(ext.MAX_COLOR_ATTACHMENTS_WEBGL);\n colorAttachmentArrays = new Array(maxColorAttachments + 1);\n for (var i = 0; i <= maxColorAttachments; ++i) {\n var x = new Array(maxColorAttachments);\n for (var j = 0; j < i; ++j) {\n x[j] = gl2.COLOR_ATTACHMENT0 + j;\n }\n for (var j = i; j < maxColorAttachments; ++j) {\n x[j] = gl2.NONE;\n }\n colorAttachmentArrays[i] = x;\n }\n }\n function throwFBOError(status) {\n switch (status) {\n case FRAMEBUFFER_UNSUPPORTED:\n throw new Error(\"gl-fbo: Framebuffer unsupported\");\n case FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n throw new Error(\"gl-fbo: Framebuffer incomplete attachment\");\n case FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n throw new Error(\"gl-fbo: Framebuffer incomplete dimensions\");\n case FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n throw new Error(\"gl-fbo: Framebuffer incomplete missing attachment\");\n default:\n throw new Error(\"gl-fbo: Framebuffer failed for unspecified reason\");\n }\n }\n function initTexture(gl2, width, height, type, format, attachment) {\n if (!type) {\n return null;\n }\n var result = createTexture(gl2, width, height, format, type);\n result.magFilter = gl2.NEAREST;\n result.minFilter = gl2.NEAREST;\n result.mipSamples = 1;\n result.bind();\n gl2.framebufferTexture2D(gl2.FRAMEBUFFER, attachment, gl2.TEXTURE_2D, result.handle, 0);\n return result;\n }\n function initRenderBuffer(gl2, width, height, component, attachment) {\n var result = gl2.createRenderbuffer();\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, result);\n gl2.renderbufferStorage(gl2.RENDERBUFFER, component, width, height);\n gl2.framebufferRenderbuffer(gl2.FRAMEBUFFER, attachment, gl2.RENDERBUFFER, result);\n return result;\n }\n function rebuildFBO(fbo) {\n var state = saveFBOState(fbo.gl);\n var gl2 = fbo.gl;\n var handle = fbo.handle = gl2.createFramebuffer();\n var width = fbo._shape[0];\n var height = fbo._shape[1];\n var numColors = fbo.color.length;\n var ext = fbo._ext;\n var useStencil = fbo._useStencil;\n var useDepth = fbo._useDepth;\n var colorType = fbo._colorType;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, handle);\n for (var i = 0; i < numColors; ++i) {\n fbo.color[i] = initTexture(gl2, width, height, colorType, gl2.RGBA, gl2.COLOR_ATTACHMENT0 + i);\n }\n if (numColors === 0) {\n fbo._color_rb = initRenderBuffer(gl2, width, height, gl2.RGBA4, gl2.COLOR_ATTACHMENT0);\n if (ext) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[0]);\n }\n } else if (numColors > 1) {\n ext.drawBuffersWEBGL(colorAttachmentArrays[numColors]);\n }\n var WEBGL_depth_texture = gl2.getExtension(\"WEBGL_depth_texture\");\n if (WEBGL_depth_texture) {\n if (useStencil) {\n fbo.depth = initTexture(\n gl2,\n width,\n height,\n WEBGL_depth_texture.UNSIGNED_INT_24_8_WEBGL,\n gl2.DEPTH_STENCIL,\n gl2.DEPTH_STENCIL_ATTACHMENT\n );\n } else if (useDepth) {\n fbo.depth = initTexture(\n gl2,\n width,\n height,\n gl2.UNSIGNED_SHORT,\n gl2.DEPTH_COMPONENT,\n gl2.DEPTH_ATTACHMENT\n );\n }\n } else {\n if (useDepth && useStencil) {\n fbo._depth_rb = initRenderBuffer(gl2, width, height, gl2.DEPTH_STENCIL, gl2.DEPTH_STENCIL_ATTACHMENT);\n } else if (useDepth) {\n fbo._depth_rb = initRenderBuffer(gl2, width, height, gl2.DEPTH_COMPONENT16, gl2.DEPTH_ATTACHMENT);\n } else if (useStencil) {\n fbo._depth_rb = initRenderBuffer(gl2, width, height, gl2.STENCIL_INDEX, gl2.STENCIL_ATTACHMENT);\n }\n }\n var status = gl2.checkFramebufferStatus(gl2.FRAMEBUFFER);\n if (status !== gl2.FRAMEBUFFER_COMPLETE) {\n fbo._destroyed = true;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n gl2.deleteFramebuffer(fbo.handle);\n fbo.handle = null;\n if (fbo.depth) {\n fbo.depth.dispose();\n fbo.depth = null;\n }\n if (fbo._depth_rb) {\n gl2.deleteRenderbuffer(fbo._depth_rb);\n fbo._depth_rb = null;\n }\n for (var i = 0; i < fbo.color.length; ++i) {\n fbo.color[i].dispose();\n fbo.color[i] = null;\n }\n if (fbo._color_rb) {\n gl2.deleteRenderbuffer(fbo._color_rb);\n fbo._color_rb = null;\n }\n restoreFBOState(gl2, state);\n throwFBOError(status);\n }\n restoreFBOState(gl2, state);\n }\n function Framebuffer(gl2, width, height, colorType, numColors, useDepth, useStencil, ext) {\n this.gl = gl2;\n this._shape = [width | 0, height | 0];\n this._destroyed = false;\n this._ext = ext;\n this.color = new Array(numColors);\n for (var i = 0; i < numColors; ++i) {\n this.color[i] = null;\n }\n this._color_rb = null;\n this.depth = null;\n this._depth_rb = null;\n this._colorType = colorType;\n this._useDepth = useDepth;\n this._useStencil = useStencil;\n var parent = this;\n var shapeVector = [width | 0, height | 0];\n Object.defineProperties(shapeVector, {\n 0: {\n get: function() {\n return parent._shape[0];\n },\n set: function(w) {\n return parent.width = w;\n }\n },\n 1: {\n get: function() {\n return parent._shape[1];\n },\n set: function(h) {\n return parent.height = h;\n }\n }\n });\n this._shapeVector = shapeVector;\n rebuildFBO(this);\n }\n var proto = Framebuffer.prototype;\n function reshapeFBO(fbo, w, h) {\n if (fbo._destroyed) {\n throw new Error(\"gl-fbo: Can't resize destroyed FBO\");\n }\n if (fbo._shape[0] === w && fbo._shape[1] === h) {\n return;\n }\n var gl2 = fbo.gl;\n var maxFBOSize = gl2.getParameter(gl2.MAX_RENDERBUFFER_SIZE);\n if (w < 0 || w > maxFBOSize || h < 0 || h > maxFBOSize) {\n throw new Error(\"gl-fbo: Can't resize FBO, invalid dimensions\");\n }\n fbo._shape[0] = w;\n fbo._shape[1] = h;\n var state = saveFBOState(gl2);\n for (var i = 0; i < fbo.color.length; ++i) {\n fbo.color[i].shape = fbo._shape;\n }\n if (fbo._color_rb) {\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, fbo._color_rb);\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.RGBA4, fbo._shape[0], fbo._shape[1]);\n }\n if (fbo.depth) {\n fbo.depth.shape = fbo._shape;\n }\n if (fbo._depth_rb) {\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, fbo._depth_rb);\n if (fbo._useDepth && fbo._useStencil) {\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.DEPTH_STENCIL, fbo._shape[0], fbo._shape[1]);\n } else if (fbo._useDepth) {\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.DEPTH_COMPONENT16, fbo._shape[0], fbo._shape[1]);\n } else if (fbo._useStencil) {\n gl2.renderbufferStorage(gl2.RENDERBUFFER, gl2.STENCIL_INDEX, fbo._shape[0], fbo._shape[1]);\n }\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, fbo.handle);\n var status = gl2.checkFramebufferStatus(gl2.FRAMEBUFFER);\n if (status !== gl2.FRAMEBUFFER_COMPLETE) {\n fbo.dispose();\n restoreFBOState(gl2, state);\n throwFBOError(status);\n }\n restoreFBOState(gl2, state);\n }\n Object.defineProperties(proto, {\n \"shape\": {\n get: function() {\n if (this._destroyed) {\n return [0, 0];\n }\n return this._shapeVector;\n },\n set: function(x) {\n if (!Array.isArray(x)) {\n x = [x | 0, x | 0];\n }\n if (x.length !== 2) {\n throw new Error(\"gl-fbo: Shape vector must be length 2\");\n }\n var w = x[0] | 0;\n var h = x[1] | 0;\n reshapeFBO(this, w, h);\n return [w, h];\n },\n enumerable: false\n },\n \"width\": {\n get: function() {\n if (this._destroyed) {\n return 0;\n }\n return this._shape[0];\n },\n set: function(w) {\n w = w | 0;\n reshapeFBO(this, w, this._shape[1]);\n return w;\n },\n enumerable: false\n },\n \"height\": {\n get: function() {\n if (this._destroyed) {\n return 0;\n }\n return this._shape[1];\n },\n set: function(h) {\n h = h | 0;\n reshapeFBO(this, this._shape[0], h);\n return h;\n },\n enumerable: false\n }\n });\n proto.bind = function() {\n if (this._destroyed) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, this.handle);\n gl2.viewport(0, 0, this._shape[0], this._shape[1]);\n };\n proto.dispose = function() {\n if (this._destroyed) {\n return;\n }\n this._destroyed = true;\n var gl2 = this.gl;\n gl2.deleteFramebuffer(this.handle);\n this.handle = null;\n if (this.depth) {\n this.depth.dispose();\n this.depth = null;\n }\n if (this._depth_rb) {\n gl2.deleteRenderbuffer(this._depth_rb);\n this._depth_rb = null;\n }\n for (var i = 0; i < this.color.length; ++i) {\n this.color[i].dispose();\n this.color[i] = null;\n }\n if (this._color_rb) {\n gl2.deleteRenderbuffer(this._color_rb);\n this._color_rb = null;\n }\n };\n function createFBO(gl2, width, height, options) {\n if (!FRAMEBUFFER_UNSUPPORTED) {\n FRAMEBUFFER_UNSUPPORTED = gl2.FRAMEBUFFER_UNSUPPORTED;\n FRAMEBUFFER_INCOMPLETE_ATTACHMENT = gl2.FRAMEBUFFER_INCOMPLETE_ATTACHMENT;\n FRAMEBUFFER_INCOMPLETE_DIMENSIONS = gl2.FRAMEBUFFER_INCOMPLETE_DIMENSIONS;\n FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = gl2.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;\n }\n var WEBGL_draw_buffers = gl2.getExtension(\"WEBGL_draw_buffers\");\n if (!colorAttachmentArrays && WEBGL_draw_buffers) {\n lazyInitColorAttachments(gl2, WEBGL_draw_buffers);\n }\n if (Array.isArray(width)) {\n options = height;\n height = width[1] | 0;\n width = width[0] | 0;\n }\n if (typeof width !== \"number\") {\n throw new Error(\"gl-fbo: Missing shape parameter\");\n }\n var maxFBOSize = gl2.getParameter(gl2.MAX_RENDERBUFFER_SIZE);\n if (width < 0 || width > maxFBOSize || height < 0 || height > maxFBOSize) {\n throw new Error(\"gl-fbo: Parameters are too large for FBO\");\n }\n options = options || {};\n var numColors = 1;\n if (\"color\" in options) {\n numColors = Math.max(options.color | 0, 0);\n if (numColors < 0) {\n throw new Error(\"gl-fbo: Must specify a nonnegative number of colors\");\n }\n if (numColors > 1) {\n if (!WEBGL_draw_buffers) {\n throw new Error(\"gl-fbo: Multiple draw buffer extension not supported\");\n } else if (numColors > gl2.getParameter(WEBGL_draw_buffers.MAX_COLOR_ATTACHMENTS_WEBGL)) {\n throw new Error(\"gl-fbo: Context does not support \" + numColors + \" draw buffers\");\n }\n }\n }\n var colorType = gl2.UNSIGNED_BYTE;\n var OES_texture_float = gl2.getExtension(\"OES_texture_float\");\n if (options.float && numColors > 0) {\n if (!OES_texture_float) {\n throw new Error(\"gl-fbo: Context does not support floating point textures\");\n }\n colorType = gl2.FLOAT;\n } else if (options.preferFloat && numColors > 0) {\n if (OES_texture_float) {\n colorType = gl2.FLOAT;\n }\n }\n var useDepth = true;\n if (\"depth\" in options) {\n useDepth = !!options.depth;\n }\n var useStencil = false;\n if (\"stencil\" in options) {\n useStencil = !!options.stencil;\n }\n return new Framebuffer(\n gl2,\n width,\n height,\n colorType,\n numColors,\n useDepth,\n useStencil,\n WEBGL_draw_buffers\n );\n }\n }\n ),\n /***/\n 2992: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var sprintf = __webpack_require__2(3387).sprintf;\n var glConstants = __webpack_require__2(5171);\n var shaderName = __webpack_require__2(1848);\n var addLineNumbers = __webpack_require__2(1085);\n module2.exports = formatCompilerError;\n function formatCompilerError(errLog, src, type) {\n \"use strict\";\n var name2 = shaderName(src) || \"of unknown name (see npm glsl-shader-name)\";\n var typeName = \"unknown type\";\n if (type !== void 0) {\n typeName = type === glConstants.FRAGMENT_SHADER ? \"fragment\" : \"vertex\";\n }\n var longForm = sprintf(\"Error compiling %s shader %s:\\n\", typeName, name2);\n var shortForm = sprintf(\"%s%s\", longForm, errLog);\n var errorStrings = errLog.split(\"\\n\");\n var errors = {};\n for (var i = 0; i < errorStrings.length; i++) {\n var errorString = errorStrings[i];\n if (errorString === \"\" || errorString === \"\\0\") continue;\n var lineNo = parseInt(errorString.split(\":\")[2]);\n if (isNaN(lineNo)) {\n throw new Error(sprintf(\"Could not parse error: %s\", errorString));\n }\n errors[lineNo] = errorString;\n }\n var lines = addLineNumbers(src).split(\"\\n\");\n for (var i = 0; i < lines.length; i++) {\n if (!errors[i + 3] && !errors[i + 2] && !errors[i + 1]) continue;\n var line = lines[i];\n longForm += line + \"\\n\";\n if (errors[i + 1]) {\n var e = errors[i + 1];\n e = e.substr(e.split(\":\", 3).join(\":\").length + 1).trim();\n longForm += sprintf(\"^^^ %s\\n\\n\", e);\n }\n }\n return {\n long: longForm.trim(),\n short: shortForm.trim()\n };\n }\n }\n ),\n /***/\n 7319: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, nextPosition;\\nattribute float arcLength, lineWidth;\\nattribute vec4 color;\\n\\nuniform vec2 screenShape;\\nuniform float pixelRatio;\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 fragColor;\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\n\\nvec4 project(vec3 p) {\\n return projection * (view * (model * vec4(p, 1.0)));\\n}\\n\\nvoid main() {\\n vec4 startPoint = project(position);\\n vec4 endPoint = project(nextPosition);\\n\\n vec2 A = startPoint.xy / startPoint.w;\\n vec2 B = endPoint.xy / endPoint.w;\\n\\n float clipAngle = atan(\\n (B.y - A.y) * screenShape.y,\\n (B.x - A.x) * screenShape.x\\n );\\n\\n vec2 offset = 0.5 * pixelRatio * lineWidth * vec2(\\n sin(clipAngle),\\n -cos(clipAngle)\\n ) / screenShape;\\n\\n gl_Position = vec4(startPoint.xy + startPoint.w * offset, startPoint.zw);\\n\\n worldPosition = position;\\n pixelArcLength = arcLength;\\n fragColor = color;\\n}\\n\"]);\n var forwardFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D dashTexture;\\nuniform float dashScale;\\nuniform float opacity;\\n\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (\\n outOfRange(clipBounds[0], clipBounds[1], worldPosition) ||\\n fragColor.a * opacity == 0.\\n ) discard;\\n\\n float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r;\\n if(dashWeight < 0.5) {\\n discard;\\n }\\n gl_FragColor = fragColor * opacity;\\n}\\n\"]);\n var pickFrag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\n#define FLOAT_MAX 1.70141184e38\\n#define FLOAT_MIN 1.17549435e-38\\n\\n// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl\\nvec4 packFloat(float v) {\\n float av = abs(v);\\n\\n //Handle special cases\\n if(av < FLOAT_MIN) {\\n return vec4(0.0, 0.0, 0.0, 0.0);\\n } else if(v > FLOAT_MAX) {\\n return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;\\n } else if(v < -FLOAT_MAX) {\\n return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;\\n }\\n\\n vec4 c = vec4(0,0,0,0);\\n\\n //Compute exponent and mantissa\\n float e = floor(log2(av));\\n float m = av * pow(2.0, -e) - 1.0;\\n\\n //Unpack mantissa\\n c[1] = floor(128.0 * m);\\n m -= c[1] / 128.0;\\n c[2] = floor(32768.0 * m);\\n m -= c[2] / 32768.0;\\n c[3] = floor(8388608.0 * m);\\n\\n //Unpack exponent\\n float ebias = e + 127.0;\\n c[0] = floor(ebias / 2.0);\\n ebias -= c[0] * 2.0;\\n c[1] += floor(ebias) * 128.0;\\n\\n //Unpack sign bit\\n c[0] += 128.0 * step(0.0, -v);\\n\\n //Scale back to range\\n return c / 255.0;\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform float pickId;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 worldPosition;\\nvarying float pixelArcLength;\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard;\\n\\n gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz);\\n}\"]);\n var ATTRIBUTES = [\n { name: \"position\", type: \"vec3\" },\n { name: \"nextPosition\", type: \"vec3\" },\n { name: \"arcLength\", type: \"float\" },\n { name: \"lineWidth\", type: \"float\" },\n { name: \"color\", type: \"vec4\" }\n ];\n exports2.createShader = function(gl2) {\n return createShader(gl2, vertSrc, forwardFrag, null, ATTRIBUTES);\n };\n exports2.createPickShader = function(gl2) {\n return createShader(gl2, vertSrc, pickFrag, null, ATTRIBUTES);\n };\n }\n ),\n /***/\n 5714: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createLinePlot;\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var UINT8_VIEW = new Uint8Array(4);\n var FLOAT_VIEW = new Float32Array(UINT8_VIEW.buffer);\n function unpackFloat(x, y, z, w) {\n UINT8_VIEW[0] = w;\n UINT8_VIEW[1] = z;\n UINT8_VIEW[2] = y;\n UINT8_VIEW[3] = x;\n return FLOAT_VIEW[0];\n }\n var bsearch = __webpack_require__2(2478);\n var ndarray = __webpack_require__2(9618);\n var shaders = __webpack_require__2(7319);\n var createShader = shaders.createShader;\n var createPickShader = shaders.createPickShader;\n var identity2 = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function distance(a, b) {\n var s = 0;\n for (var i = 0; i < 3; ++i) {\n var d = a[i] - b[i];\n s += d * d;\n }\n return Math.sqrt(s);\n }\n function filterClipBounds(bounds) {\n var result = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n result[0][i] = Math.max(bounds[0][i], result[0][i]);\n result[1][i] = Math.min(bounds[1][i], result[1][i]);\n }\n return result;\n }\n function PickResult(tau, position, index, dataCoordinate) {\n this.arcLength = tau;\n this.position = position;\n this.index = index;\n this.dataCoordinate = dataCoordinate;\n }\n function LinePlot(gl2, shader, pickShader, buffer, vao, texture) {\n this.gl = gl2;\n this.shader = shader;\n this.pickShader = pickShader;\n this.buffer = buffer;\n this.vao = vao;\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.points = [];\n this.arcLength = [];\n this.vertexCount = 0;\n this.bounds = [[0, 0, 0], [0, 0, 0]];\n this.pickId = 0;\n this.lineWidth = 1;\n this.texture = texture;\n this.dashScale = 1;\n this.opacity = 1;\n this.hasAlpha = false;\n this.dirty = true;\n this.pixelRatio = 1;\n }\n var proto = LinePlot.prototype;\n proto.isTransparent = function() {\n return this.hasAlpha;\n };\n proto.isOpaque = function() {\n return !this.hasAlpha;\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n proto.drawTransparent = proto.draw = function(camera) {\n if (!this.vertexCount) return;\n var gl2 = this.gl;\n var shader = this.shader;\n var vao = this.vao;\n shader.bind();\n shader.uniforms = {\n model: camera.model || identity2,\n view: camera.view || identity2,\n projection: camera.projection || identity2,\n clipBounds: filterClipBounds(this.clipBounds),\n dashTexture: this.texture.bind(),\n dashScale: this.dashScale / this.arcLength[this.arcLength.length - 1],\n opacity: this.opacity,\n screenShape: [gl2.drawingBufferWidth, gl2.drawingBufferHeight],\n pixelRatio: this.pixelRatio\n };\n vao.bind();\n vao.draw(gl2.TRIANGLE_STRIP, this.vertexCount);\n vao.unbind();\n };\n proto.drawPick = function(camera) {\n if (!this.vertexCount) return;\n var gl2 = this.gl;\n var shader = this.pickShader;\n var vao = this.vao;\n shader.bind();\n shader.uniforms = {\n model: camera.model || identity2,\n view: camera.view || identity2,\n projection: camera.projection || identity2,\n pickId: this.pickId,\n clipBounds: filterClipBounds(this.clipBounds),\n screenShape: [gl2.drawingBufferWidth, gl2.drawingBufferHeight],\n pixelRatio: this.pixelRatio\n };\n vao.bind();\n vao.draw(gl2.TRIANGLE_STRIP, this.vertexCount);\n vao.unbind();\n };\n proto.update = function(options) {\n var i, j;\n this.dirty = true;\n var connectGaps = !!options.connectGaps;\n if (\"dashScale\" in options) {\n this.dashScale = options.dashScale;\n }\n this.hasAlpha = false;\n if (\"opacity\" in options) {\n this.opacity = +options.opacity;\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n var buffer = [];\n var arcLengthArray = [];\n var pointArray = [];\n var arcLength = 0;\n var vertexCount = 0;\n var bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n var positions = options.position || options.positions;\n if (positions) {\n var colors = options.color || options.colors || [0, 0, 0, 1];\n var lineWidth = options.lineWidth || 1;\n var hadGap = false;\n fill_loop:\n for (i = 1; i < positions.length; ++i) {\n var a = positions[i - 1];\n var b = positions[i];\n arcLengthArray.push(arcLength);\n pointArray.push(a.slice());\n for (j = 0; j < 3; ++j) {\n if (isNaN(a[j]) || isNaN(b[j]) || !isFinite(a[j]) || !isFinite(b[j])) {\n if (!connectGaps && buffer.length > 0) {\n for (var k = 0; k < 24; ++k) {\n buffer.push(buffer[buffer.length - 12]);\n }\n vertexCount += 2;\n hadGap = true;\n }\n continue fill_loop;\n }\n bounds[0][j] = Math.min(bounds[0][j], a[j], b[j]);\n bounds[1][j] = Math.max(bounds[1][j], a[j], b[j]);\n }\n var acolor, bcolor;\n if (Array.isArray(colors[0])) {\n acolor = colors.length > i - 1 ? colors[i - 1] : (\n // using index value\n colors.length > 0 ? colors[colors.length - 1] : (\n // using last item\n [0, 0, 0, 1]\n )\n );\n bcolor = colors.length > i ? colors[i] : (\n // using index value\n colors.length > 0 ? colors[colors.length - 1] : (\n // using last item\n [0, 0, 0, 1]\n )\n );\n } else {\n acolor = bcolor = colors;\n }\n if (acolor.length === 3) {\n acolor = [acolor[0], acolor[1], acolor[2], 1];\n }\n if (bcolor.length === 3) {\n bcolor = [bcolor[0], bcolor[1], bcolor[2], 1];\n }\n if (!this.hasAlpha && acolor[3] < 1) this.hasAlpha = true;\n var w0;\n if (Array.isArray(lineWidth)) {\n w0 = lineWidth.length > i - 1 ? lineWidth[i - 1] : (\n // using index value\n lineWidth.length > 0 ? lineWidth[lineWidth.length - 1] : (\n // using last item\n [0, 0, 0, 1]\n )\n );\n } else {\n w0 = lineWidth;\n }\n var t02 = arcLength;\n arcLength += distance(a, b);\n if (hadGap) {\n for (j = 0; j < 2; ++j) {\n buffer.push(\n a[0],\n a[1],\n a[2],\n b[0],\n b[1],\n b[2],\n t02,\n w0,\n acolor[0],\n acolor[1],\n acolor[2],\n acolor[3]\n );\n }\n vertexCount += 2;\n hadGap = false;\n }\n buffer.push(\n a[0],\n a[1],\n a[2],\n b[0],\n b[1],\n b[2],\n t02,\n w0,\n acolor[0],\n acolor[1],\n acolor[2],\n acolor[3],\n a[0],\n a[1],\n a[2],\n b[0],\n b[1],\n b[2],\n t02,\n -w0,\n acolor[0],\n acolor[1],\n acolor[2],\n acolor[3],\n b[0],\n b[1],\n b[2],\n a[0],\n a[1],\n a[2],\n arcLength,\n -w0,\n bcolor[0],\n bcolor[1],\n bcolor[2],\n bcolor[3],\n b[0],\n b[1],\n b[2],\n a[0],\n a[1],\n a[2],\n arcLength,\n w0,\n bcolor[0],\n bcolor[1],\n bcolor[2],\n bcolor[3]\n );\n vertexCount += 4;\n }\n }\n this.buffer.update(buffer);\n arcLengthArray.push(arcLength);\n pointArray.push(positions[positions.length - 1].slice());\n this.bounds = bounds;\n this.vertexCount = vertexCount;\n this.points = pointArray;\n this.arcLength = arcLengthArray;\n if (\"dashes\" in options) {\n var dashArray = options.dashes;\n var prefixSum = dashArray.slice();\n prefixSum.unshift(0);\n for (i = 1; i < prefixSum.length; ++i) {\n prefixSum[i] = prefixSum[i - 1] + prefixSum[i];\n }\n var dashTexture = ndarray(new Array(256 * 4), [256, 1, 4]);\n for (i = 0; i < 256; ++i) {\n for (j = 0; j < 4; ++j) {\n dashTexture.set(i, 0, j, 0);\n }\n if (bsearch.le(prefixSum, prefixSum[prefixSum.length - 1] * i / 255) & 1) {\n dashTexture.set(i, 0, 0, 0);\n } else {\n dashTexture.set(i, 0, 0, 255);\n }\n }\n this.texture.setPixels(dashTexture);\n }\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.vao.dispose();\n this.buffer.dispose();\n };\n proto.pick = function(selection) {\n if (!selection) {\n return null;\n }\n if (selection.id !== this.pickId) {\n return null;\n }\n var tau = unpackFloat(\n selection.value[0],\n selection.value[1],\n selection.value[2],\n 0\n );\n var index = bsearch.le(this.arcLength, tau);\n if (index < 0) {\n return null;\n }\n if (index === this.arcLength.length - 1) {\n return new PickResult(\n this.arcLength[this.arcLength.length - 1],\n this.points[this.points.length - 1].slice(),\n index\n );\n }\n var a = this.points[index];\n var b = this.points[Math.min(index + 1, this.points.length - 1)];\n var t = (tau - this.arcLength[index]) / (this.arcLength[index + 1] - this.arcLength[index]);\n var ti = 1 - t;\n var x = [0, 0, 0];\n for (var i = 0; i < 3; ++i) {\n x[i] = ti * a[i] + t * b[i];\n }\n var dataIndex = Math.min(t < 0.5 ? index : index + 1, this.points.length - 1);\n return new PickResult(\n tau,\n x,\n dataIndex,\n this.points[dataIndex]\n );\n };\n function createLinePlot(options) {\n var gl2 = options.gl || options.scene && options.scene.gl;\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.nextPosition.location = 1;\n shader.attributes.arcLength.location = 2;\n shader.attributes.lineWidth.location = 3;\n shader.attributes.color.location = 4;\n var pickShader = createPickShader(gl2);\n pickShader.attributes.position.location = 0;\n pickShader.attributes.nextPosition.location = 1;\n pickShader.attributes.arcLength.location = 2;\n pickShader.attributes.lineWidth.location = 3;\n pickShader.attributes.color.location = 4;\n var buffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n \"buffer\": buffer,\n \"size\": 3,\n \"offset\": 0,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 3,\n \"offset\": 12,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 1,\n \"offset\": 24,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 1,\n \"offset\": 28,\n \"stride\": 48\n },\n {\n \"buffer\": buffer,\n \"size\": 4,\n \"offset\": 32,\n \"stride\": 48\n }\n ]);\n var defaultTexture = ndarray(new Array(256 * 4), [256, 1, 4]);\n for (var i = 0; i < 256 * 4; ++i) {\n defaultTexture.data[i] = 255;\n }\n var texture = createTexture(gl2, defaultTexture);\n texture.wrap = gl2.REPEAT;\n var linePlot = new LinePlot(gl2, shader, pickShader, buffer, vao, texture);\n linePlot.update(options);\n return linePlot;\n }\n }\n ),\n /***/\n 1903: (\n /***/\n function(module2) {\n module2.exports = clone;\n function clone(a) {\n var out = new Float32Array(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n ;\n }\n ),\n /***/\n 6864: (\n /***/\n function(module2) {\n module2.exports = create;\n function create() {\n var out = new Float32Array(16);\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 9921: (\n /***/\n function(module2) {\n module2.exports = determinant;\n function determinant(a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32;\n return b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n }\n ;\n }\n ),\n /***/\n 7399: (\n /***/\n function(module2) {\n module2.exports = fromQuat;\n function fromQuat(out, q) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, yx = y * x2, yy = y * y2, zx = z * x2, zy = z * y2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - yy - zz;\n out[1] = yx + wz;\n out[2] = zx - wy;\n out[3] = 0;\n out[4] = yx - wz;\n out[5] = 1 - xx - zz;\n out[6] = zy + wx;\n out[7] = 0;\n out[8] = zx + wy;\n out[9] = zy - wx;\n out[10] = 1 - xx - yy;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 6743: (\n /***/\n function(module2) {\n module2.exports = fromRotationTranslation;\n function fromRotationTranslation(out, q, v) {\n var x = q[0], y = q[1], z = q[2], w = q[3], x2 = x + x, y2 = y + y, z2 = z + z, xx = x * x2, xy = x * y2, xz = x * z2, yy = y * y2, yz = y * z2, zz = z * z2, wx = w * x2, wy = w * y2, wz = w * z2;\n out[0] = 1 - (yy + zz);\n out[1] = xy + wz;\n out[2] = xz - wy;\n out[3] = 0;\n out[4] = xy - wz;\n out[5] = 1 - (xx + zz);\n out[6] = yz + wx;\n out[7] = 0;\n out[8] = xz + wy;\n out[9] = yz - wx;\n out[10] = 1 - (xx + yy);\n out[11] = 0;\n out[12] = v[0];\n out[13] = v[1];\n out[14] = v[2];\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 7894: (\n /***/\n function(module2) {\n module2.exports = identity2;\n function identity2(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 7608: (\n /***/\n function(module2) {\n module2.exports = invert;\n function invert(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15], b00 = a00 * a11 - a01 * a10, b01 = a00 * a12 - a02 * a10, b02 = a00 * a13 - a03 * a10, b03 = a01 * a12 - a02 * a11, b04 = a01 * a13 - a03 * a11, b05 = a02 * a13 - a03 * a12, b06 = a20 * a31 - a21 * a30, b07 = a20 * a32 - a22 * a30, b08 = a20 * a33 - a23 * a30, b09 = a21 * a32 - a22 * a31, b10 = a21 * a33 - a23 * a31, b11 = a22 * a33 - a23 * a32, det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n ;\n }\n ),\n /***/\n 6582: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var identity2 = __webpack_require__2(7894);\n module2.exports = lookAt;\n function lookAt(out, eye, center, up) {\n var x0, x1, x2, y0, y1, y2, z0, z1, z2, len, eyex = eye[0], eyey = eye[1], eyez = eye[2], upx = up[0], upy = up[1], upz = up[2], centerx = center[0], centery = center[1], centerz = center[2];\n if (Math.abs(eyex - centerx) < 1e-6 && Math.abs(eyey - centery) < 1e-6 && Math.abs(eyez - centerz) < 1e-6) {\n return identity2(out);\n }\n z0 = eyex - centerx;\n z1 = eyey - centery;\n z2 = eyez - centerz;\n len = 1 / Math.sqrt(z0 * z0 + z1 * z1 + z2 * z2);\n z0 *= len;\n z1 *= len;\n z2 *= len;\n x0 = upy * z2 - upz * z1;\n x1 = upz * z0 - upx * z2;\n x2 = upx * z1 - upy * z0;\n len = Math.sqrt(x0 * x0 + x1 * x1 + x2 * x2);\n if (!len) {\n x0 = 0;\n x1 = 0;\n x2 = 0;\n } else {\n len = 1 / len;\n x0 *= len;\n x1 *= len;\n x2 *= len;\n }\n y0 = z1 * x2 - z2 * x1;\n y1 = z2 * x0 - z0 * x2;\n y2 = z0 * x1 - z1 * x0;\n len = Math.sqrt(y0 * y0 + y1 * y1 + y2 * y2);\n if (!len) {\n y0 = 0;\n y1 = 0;\n y2 = 0;\n } else {\n len = 1 / len;\n y0 *= len;\n y1 *= len;\n y2 *= len;\n }\n out[0] = x0;\n out[1] = y0;\n out[2] = z0;\n out[3] = 0;\n out[4] = x1;\n out[5] = y1;\n out[6] = z1;\n out[7] = 0;\n out[8] = x2;\n out[9] = y2;\n out[10] = z2;\n out[11] = 0;\n out[12] = -(x0 * eyex + x1 * eyey + x2 * eyez);\n out[13] = -(y0 * eyex + y1 * eyey + y2 * eyez);\n out[14] = -(z0 * eyex + z1 * eyey + z2 * eyez);\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 6760: (\n /***/\n function(module2) {\n module2.exports = multiply;\n function multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11], a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n }\n ;\n }\n ),\n /***/\n 4040: (\n /***/\n function(module2) {\n module2.exports = ortho;\n function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right), bt = 1 / (bottom - top), nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n }\n ;\n }\n ),\n /***/\n 4772: (\n /***/\n function(module2) {\n module2.exports = perspective;\n function perspective(out, fovy, aspect, near, far) {\n var f = 1 / Math.tan(fovy / 2), nf = 1 / (near - far);\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = (far + near) * nf;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[14] = 2 * far * near * nf;\n out[15] = 0;\n return out;\n }\n ;\n }\n ),\n /***/\n 6079: (\n /***/\n function(module2) {\n module2.exports = rotate;\n function rotate(out, a, rad, axis) {\n var x = axis[0], y = axis[1], z = axis[2], len = Math.sqrt(x * x + y * y + z * z), s, c, t, a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23, b00, b01, b02, b10, b11, b12, b20, b21, b22;\n if (Math.abs(len) < 1e-6) {\n return null;\n }\n len = 1 / len;\n x *= len;\n y *= len;\n z *= len;\n s = Math.sin(rad);\n c = Math.cos(rad);\n t = 1 - c;\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n b00 = x * x * t + c;\n b01 = y * x * t + z * s;\n b02 = z * x * t - y * s;\n b10 = x * y * t - z * s;\n b11 = y * y * t + c;\n b12 = z * y * t + x * s;\n b20 = x * z * t + y * s;\n b21 = y * z * t - x * s;\n b22 = z * z * t + c;\n out[0] = a00 * b00 + a10 * b01 + a20 * b02;\n out[1] = a01 * b00 + a11 * b01 + a21 * b02;\n out[2] = a02 * b00 + a12 * b01 + a22 * b02;\n out[3] = a03 * b00 + a13 * b01 + a23 * b02;\n out[4] = a00 * b10 + a10 * b11 + a20 * b12;\n out[5] = a01 * b10 + a11 * b11 + a21 * b12;\n out[6] = a02 * b10 + a12 * b11 + a22 * b12;\n out[7] = a03 * b10 + a13 * b11 + a23 * b12;\n out[8] = a00 * b20 + a10 * b21 + a20 * b22;\n out[9] = a01 * b20 + a11 * b21 + a21 * b22;\n out[10] = a02 * b20 + a12 * b21 + a22 * b22;\n out[11] = a03 * b20 + a13 * b21 + a23 * b22;\n if (a !== out) {\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n return out;\n }\n ;\n }\n ),\n /***/\n 5567: (\n /***/\n function(module2) {\n module2.exports = rotateX;\n function rotateX(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n }\n ;\n }\n ),\n /***/\n 2408: (\n /***/\n function(module2) {\n module2.exports = rotateY;\n function rotateY(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n if (a !== out) {\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c - a20 * s;\n out[1] = a01 * c - a21 * s;\n out[2] = a02 * c - a22 * s;\n out[3] = a03 * c - a23 * s;\n out[8] = a00 * s + a20 * c;\n out[9] = a01 * s + a21 * c;\n out[10] = a02 * s + a22 * c;\n out[11] = a03 * s + a23 * c;\n return out;\n }\n ;\n }\n ),\n /***/\n 7089: (\n /***/\n function(module2) {\n module2.exports = rotateZ;\n function rotateZ(out, a, rad) {\n var s = Math.sin(rad), c = Math.cos(rad), a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3], a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n if (a !== out) {\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n }\n ;\n }\n ),\n /***/\n 2504: (\n /***/\n function(module2) {\n module2.exports = scale;\n function scale(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n ;\n }\n ),\n /***/\n 7656: (\n /***/\n function(module2) {\n module2.exports = translate;\n function translate(out, a, v) {\n var x = v[0], y = v[1], z = v[2], a00, a01, a02, a03, a10, a11, a12, a13, a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n ;\n }\n ),\n /***/\n 5665: (\n /***/\n function(module2) {\n module2.exports = transpose;\n function transpose(out, a) {\n if (out === a) {\n var a01 = a[1], a02 = a[2], a03 = a[3], a12 = a[6], a13 = a[7], a23 = a[11];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a01;\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a02;\n out[9] = a12;\n out[11] = a[14];\n out[12] = a03;\n out[13] = a13;\n out[14] = a23;\n } else {\n out[0] = a[0];\n out[1] = a[4];\n out[2] = a[8];\n out[3] = a[12];\n out[4] = a[1];\n out[5] = a[5];\n out[6] = a[9];\n out[7] = a[13];\n out[8] = a[2];\n out[9] = a[6];\n out[10] = a[10];\n out[11] = a[14];\n out[12] = a[3];\n out[13] = a[7];\n out[14] = a[11];\n out[15] = a[15];\n }\n return out;\n }\n ;\n }\n ),\n /***/\n 7626: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var barycentric = __webpack_require__2(2642);\n var closestPointToTriangle = __webpack_require__2(9346);\n module2.exports = closestPointToPickLocation;\n function xformMatrix(m, v) {\n var out = [0, 0, 0, 0];\n for (var i = 0; i < 4; ++i) {\n for (var j = 0; j < 4; ++j) {\n out[j] += m[4 * i + j] * v[i];\n }\n }\n return out;\n }\n function projectVertex(v, model, view, projection, resolution) {\n var p = xformMatrix(\n projection,\n xformMatrix(\n view,\n xformMatrix(model, [v[0], v[1], v[2], 1])\n )\n );\n for (var i = 0; i < 3; ++i) {\n p[i] /= p[3];\n }\n return [0.5 * resolution[0] * (1 + p[0]), 0.5 * resolution[1] * (1 - p[1])];\n }\n function barycentricCoord(simplex, point) {\n if (simplex.length === 2) {\n var d0 = 0;\n var d1 = 0;\n for (var i = 0; i < 2; ++i) {\n d0 += Math.pow(point[i] - simplex[0][i], 2);\n d1 += Math.pow(point[i] - simplex[1][i], 2);\n }\n d0 = Math.sqrt(d0);\n d1 = Math.sqrt(d1);\n if (d0 + d1 < 1e-6) {\n return [1, 0];\n }\n return [d1 / (d0 + d1), d0 / (d1 + d0)];\n } else if (simplex.length === 3) {\n var closestPoint = [0, 0];\n closestPointToTriangle(simplex[0], simplex[1], simplex[2], point, closestPoint);\n return barycentric(simplex, closestPoint);\n }\n return [];\n }\n function interpolate(simplex, weights) {\n var result = [0, 0, 0];\n for (var i = 0; i < simplex.length; ++i) {\n var p = simplex[i];\n var w = weights[i];\n for (var j = 0; j < 3; ++j) {\n result[j] += w * p[j];\n }\n }\n return result;\n }\n function closestPointToPickLocation(simplex, pixelCoord, model, view, projection, resolution) {\n if (simplex.length === 1) {\n return [0, simplex[0].slice()];\n }\n var simplex2D = new Array(simplex.length);\n for (var i = 0; i < simplex.length; ++i) {\n simplex2D[i] = projectVertex(simplex[i], model, view, projection, resolution);\n }\n var closestIndex = 0;\n var closestDist = Infinity;\n for (var i = 0; i < simplex2D.length; ++i) {\n var d2 = 0;\n for (var j = 0; j < 2; ++j) {\n d2 += Math.pow(simplex2D[i][j] - pixelCoord[j], 2);\n }\n if (d2 < closestDist) {\n closestDist = d2;\n closestIndex = i;\n }\n }\n var weights = barycentricCoord(simplex2D, pixelCoord);\n var s = 0;\n for (var i = 0; i < 3; ++i) {\n if (weights[i] < -1e-3 || weights[i] > 1.0001) {\n return null;\n }\n s += weights[i];\n }\n if (Math.abs(s - 1) > 1e-3) {\n return null;\n }\n return [closestIndex, interpolate(simplex, weights), weights];\n }\n }\n ),\n /***/\n 840: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var triVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, normal;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model\\n , view\\n , projection\\n , inverseModel;\\nuniform vec3 eyePosition\\n , lightPosition;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvec4 project(vec3 p) {\\n return projection * (view * (model * vec4(p, 1.0)));\\n}\\n\\nvoid main() {\\n gl_Position = project(position);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * vec4(position , 1.0);\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\\n\"]);\n var triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\n//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness\\n , fresnel\\n , kambient\\n , kdiffuse\\n , kspecular;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal\\n , f_lightDirection\\n , f_eyeDirection\\n , f_data;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (f_color.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], f_data)\\n ) discard;\\n\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d\\n\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * f_color.a;\\n}\\n\"]);\n var edgeVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n f_color = color;\\n f_data = position;\\n f_uv = uv;\\n}\"]);\n var edgeFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec3 f_data;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard;\\n\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"]);\n var pointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 uv;\\nattribute float pointSize;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0);\\n } else {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n }\\n gl_PointSize = pointSize;\\n f_color = color;\\n f_uv = uv;\\n}\"]);\n var pointFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D texture;\\nuniform float opacity;\\n\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5);\\n if(dot(pointR, pointR) > 0.25) {\\n discard;\\n }\\n gl_FragColor = f_color * texture2D(texture, f_uv) * opacity;\\n}\"]);\n var pickVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n f_id = id;\\n f_position = position;\\n}\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);\n var pickPointVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute float pointSize;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0.0, 0.0, 0.0, 0.0);\\n } else {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n gl_PointSize = pointSize;\\n }\\n f_id = id;\\n f_position = position;\\n}\"]);\n var contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position;\\n\\nuniform mat4 model, view, projection;\\n\\nvoid main() {\\n gl_Position = projection * (view * (model * vec4(position, 1.0)));\\n}\"]);\n var contourFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform vec3 contourColor;\\n\\nvoid main() {\\n gl_FragColor = vec4(contourColor, 1.0);\\n}\\n\"]);\n exports2.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" }\n ]\n };\n exports2.wireShader = {\n vertex: edgeVertSrc,\n fragment: edgeFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" }\n ]\n };\n exports2.pointShader = {\n vertex: pointVertSrc,\n fragment: pointFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" },\n { name: \"pointSize\", type: \"float\" }\n ]\n };\n exports2.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"id\", type: \"vec4\" }\n ]\n };\n exports2.pointPickShader = {\n vertex: pickPointVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" },\n { name: \"pointSize\", type: \"float\" },\n { name: \"id\", type: \"vec4\" }\n ]\n };\n exports2.contourShader = {\n vertex: contourVertSrc,\n fragment: contourFragSrc,\n attributes: [\n { name: \"position\", type: \"vec3\" }\n ]\n };\n }\n ),\n /***/\n 7201: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var DEFAULT_VERTEX_NORMALS_EPSILON = 1e-6;\n var DEFAULT_FACE_NORMALS_EPSILON = 1e-6;\n var createShader = __webpack_require__2(9405);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var normals = __webpack_require__2(8406);\n var multiply = __webpack_require__2(6760);\n var invert = __webpack_require__2(7608);\n var ndarray = __webpack_require__2(9618);\n var colormap = __webpack_require__2(6729);\n var getContour = __webpack_require__2(7765);\n var pool = __webpack_require__2(1888);\n var shaders = __webpack_require__2(840);\n var closestPoint = __webpack_require__2(7626);\n var meshShader = shaders.meshShader;\n var wireShader = shaders.wireShader;\n var pointShader = shaders.pointShader;\n var pickShader = shaders.pickShader;\n var pointPickShader = shaders.pointPickShader;\n var contourShader = shaders.contourShader;\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function SimplicialMesh(gl2, texture, triShader, lineShader, pointShader2, pickShader2, pointPickShader2, contourShader2, trianglePositions, triangleIds, triangleColors, triangleUVs, triangleNormals, triangleVAO, edgePositions, edgeIds, edgeColors, edgeUVs, edgeVAO, pointPositions, pointIds, pointColors, pointUVs, pointSizes, pointVAO, contourPositions, contourVAO) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.cells = [];\n this.positions = [];\n this.intensity = [];\n this.texture = texture;\n this.dirty = true;\n this.triShader = triShader;\n this.lineShader = lineShader;\n this.pointShader = pointShader2;\n this.pickShader = pickShader2;\n this.pointPickShader = pointPickShader2;\n this.contourShader = contourShader2;\n this.trianglePositions = trianglePositions;\n this.triangleColors = triangleColors;\n this.triangleNormals = triangleNormals;\n this.triangleUVs = triangleUVs;\n this.triangleIds = triangleIds;\n this.triangleVAO = triangleVAO;\n this.triangleCount = 0;\n this.lineWidth = 1;\n this.edgePositions = edgePositions;\n this.edgeColors = edgeColors;\n this.edgeUVs = edgeUVs;\n this.edgeIds = edgeIds;\n this.edgeVAO = edgeVAO;\n this.edgeCount = 0;\n this.pointPositions = pointPositions;\n this.pointColors = pointColors;\n this.pointUVs = pointUVs;\n this.pointSizes = pointSizes;\n this.pointIds = pointIds;\n this.pointVAO = pointVAO;\n this.pointCount = 0;\n this.contourLineWidth = 1;\n this.contourPositions = contourPositions;\n this.contourVAO = contourVAO;\n this.contourCount = 0;\n this.contourColor = [0, 0, 0];\n this.contourEnable = true;\n this.pickVertex = true;\n this.pickId = 1;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.lightPosition = [1e5, 1e5, 0];\n this.ambientLight = 0.8;\n this.diffuseLight = 0.8;\n this.specularLight = 2;\n this.roughness = 0.5;\n this.fresnel = 1.5;\n this.opacity = 1;\n this.hasAlpha = false;\n this.opacityscale = false;\n this._model = IDENTITY;\n this._view = IDENTITY;\n this._projection = IDENTITY;\n this._resolution = [1, 1];\n }\n var proto = SimplicialMesh.prototype;\n proto.isOpaque = function() {\n return !this.hasAlpha;\n };\n proto.isTransparent = function() {\n return this.hasAlpha;\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n function getOpacityFromScale(ratio, opacityscale) {\n if (!opacityscale) return 1;\n if (!opacityscale.length) return 1;\n for (var i = 0; i < opacityscale.length; ++i) {\n if (opacityscale.length < 2) return 1;\n if (opacityscale[i][0] === ratio) return opacityscale[i][1];\n if (opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]);\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1];\n }\n }\n return 1;\n }\n function genColormap(param, opacityscale) {\n var colors = colormap({\n colormap: param,\n nshades: 256,\n format: \"rgba\"\n });\n var result = new Uint8Array(256 * 4);\n for (var i = 0; i < 256; ++i) {\n var c = colors[i];\n for (var j = 0; j < 3; ++j) {\n result[4 * i + j] = c[j];\n }\n if (!opacityscale) {\n result[4 * i + 3] = 255 * c[3];\n } else {\n result[4 * i + 3] = 255 * getOpacityFromScale(i / 255, opacityscale);\n }\n }\n return ndarray(result, [256, 256, 4], [4, 0, 1]);\n }\n function takeZComponent(array) {\n var n = array.length;\n var result = new Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = array[i][2];\n }\n return result;\n }\n proto.highlight = function(selection) {\n if (!selection || !this.contourEnable) {\n this.contourCount = 0;\n return;\n }\n var level = getContour(this.cells, this.intensity, selection.intensity);\n var cells = level.cells;\n var vertexIds = level.vertexIds;\n var vertexWeights = level.vertexWeights;\n var numCells = cells.length;\n var result = pool.mallocFloat32(2 * 3 * numCells);\n var ptr = 0;\n for (var i = 0; i < numCells; ++i) {\n var c = cells[i];\n for (var j = 0; j < 2; ++j) {\n var v = c[0];\n if (c.length === 2) {\n v = c[j];\n }\n var a = vertexIds[v][0];\n var b = vertexIds[v][1];\n var w = vertexWeights[v];\n var wi = 1 - w;\n var pa = this.positions[a];\n var pb = this.positions[b];\n for (var k = 0; k < 3; ++k) {\n result[ptr++] = w * pa[k] + wi * pb[k];\n }\n }\n }\n this.contourCount = ptr / 3 | 0;\n this.contourPositions.update(result.subarray(0, ptr));\n pool.free(result);\n };\n proto.update = function(params) {\n params = params || {};\n var gl2 = this.gl;\n this.dirty = true;\n if (\"contourEnable\" in params) {\n this.contourEnable = params.contourEnable;\n }\n if (\"contourColor\" in params) {\n this.contourColor = params.contourColor;\n }\n if (\"lineWidth\" in params) {\n this.lineWidth = params.lineWidth;\n }\n if (\"lightPosition\" in params) {\n this.lightPosition = params.lightPosition;\n }\n this.hasAlpha = false;\n if (\"opacity\" in params) {\n this.opacity = params.opacity;\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n if (\"opacityscale\" in params) {\n this.opacityscale = params.opacityscale;\n this.hasAlpha = true;\n }\n if (\"ambient\" in params) {\n this.ambientLight = params.ambient;\n }\n if (\"diffuse\" in params) {\n this.diffuseLight = params.diffuse;\n }\n if (\"specular\" in params) {\n this.specularLight = params.specular;\n }\n if (\"roughness\" in params) {\n this.roughness = params.roughness;\n }\n if (\"fresnel\" in params) {\n this.fresnel = params.fresnel;\n }\n if (params.texture) {\n this.texture.dispose();\n this.texture = createTexture(gl2, params.texture);\n } else if (params.colormap) {\n this.texture.shape = [256, 256];\n this.texture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n this.texture.magFilter = gl2.LINEAR;\n this.texture.setPixels(genColormap(params.colormap, this.opacityscale));\n this.texture.generateMipmap();\n }\n var cells = params.cells;\n var positions = params.positions;\n if (!positions || !cells) {\n return;\n }\n var tPos = [];\n var tCol = [];\n var tNor = [];\n var tUVs = [];\n var tIds = [];\n var ePos = [];\n var eCol = [];\n var eUVs = [];\n var eIds = [];\n var pPos = [];\n var pCol = [];\n var pUVs = [];\n var pSiz = [];\n var pIds = [];\n this.cells = cells;\n this.positions = positions;\n var vertexNormals = params.vertexNormals;\n var cellNormals = params.cellNormals;\n var vertexNormalsEpsilon = params.vertexNormalsEpsilon === void 0 ? DEFAULT_VERTEX_NORMALS_EPSILON : params.vertexNormalsEpsilon;\n var faceNormalsEpsilon = params.faceNormalsEpsilon === void 0 ? DEFAULT_FACE_NORMALS_EPSILON : params.faceNormalsEpsilon;\n if (params.useFacetNormals && !cellNormals) {\n cellNormals = normals.faceNormals(cells, positions, faceNormalsEpsilon);\n }\n if (!cellNormals && !vertexNormals) {\n vertexNormals = normals.vertexNormals(cells, positions, vertexNormalsEpsilon);\n }\n var vertexColors = params.vertexColors;\n var cellColors = params.cellColors;\n var meshColor = params.meshColor || [1, 1, 1, 1];\n var vertexUVs = params.vertexUVs;\n var vertexIntensity = params.vertexIntensity;\n var cellUVs = params.cellUVs;\n var cellIntensity = params.cellIntensity;\n var intensityLo = Infinity;\n var intensityHi = -Infinity;\n if (!vertexUVs && !cellUVs) {\n if (vertexIntensity) {\n if (params.vertexIntensityBounds) {\n intensityLo = +params.vertexIntensityBounds[0];\n intensityHi = +params.vertexIntensityBounds[1];\n } else {\n for (var i = 0; i < vertexIntensity.length; ++i) {\n var f = vertexIntensity[i];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n } else if (cellIntensity) {\n if (params.cellIntensityBounds) {\n intensityLo = +params.cellIntensityBounds[0];\n intensityHi = +params.cellIntensityBounds[1];\n } else {\n for (var i = 0; i < cellIntensity.length; ++i) {\n var f = cellIntensity[i];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n } else {\n for (var i = 0; i < positions.length; ++i) {\n var f = positions[i][2];\n intensityLo = Math.min(intensityLo, f);\n intensityHi = Math.max(intensityHi, f);\n }\n }\n }\n if (vertexIntensity) {\n this.intensity = vertexIntensity;\n } else if (cellIntensity) {\n this.intensity = cellIntensity;\n } else {\n this.intensity = takeZComponent(positions);\n }\n this.pickVertex = !(cellIntensity || cellColors);\n var pointSizes = params.pointSizes;\n var meshPointSize = params.pointSize || 1;\n this.bounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n for (var i = 0; i < positions.length; ++i) {\n var p = positions[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(p[j]) || !isFinite(p[j])) {\n continue;\n }\n this.bounds[0][j] = Math.min(this.bounds[0][j], p[j]);\n this.bounds[1][j] = Math.max(this.bounds[1][j], p[j]);\n }\n }\n var triangleCount = 0;\n var edgeCount = 0;\n var pointCount = 0;\n fill_loop:\n for (var i = 0; i < cells.length; ++i) {\n var cell = cells[i];\n switch (cell.length) {\n case 1:\n var v = cell[0];\n var p = positions[v];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(p[j]) || !isFinite(p[j])) {\n continue fill_loop;\n }\n }\n pPos.push(p[0], p[1], p[2]);\n var c;\n if (vertexColors) {\n c = vertexColors[v];\n } else if (cellColors) {\n c = cellColors[i];\n } else {\n c = meshColor;\n }\n if (this.opacityscale && vertexIntensity) {\n tCol.push(\n c[0],\n c[1],\n c[2],\n this.opacity * getOpacityFromScale(\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n this.opacityscale\n )\n );\n } else if (c.length === 3) {\n pCol.push(c[0], c[1], c[2], this.opacity);\n } else {\n pCol.push(c[0], c[1], c[2], c[3] * this.opacity);\n if (c[3] < 1) this.hasAlpha = true;\n }\n var uv;\n if (vertexUVs) {\n uv = vertexUVs[v];\n } else if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else if (cellUVs) {\n uv = cellUVs[i];\n } else if (cellIntensity) {\n uv = [\n (cellIntensity[i] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n pUVs.push(uv[0], uv[1]);\n if (pointSizes) {\n pSiz.push(pointSizes[v]);\n } else {\n pSiz.push(meshPointSize);\n }\n pIds.push(i);\n pointCount += 1;\n break;\n case 2:\n for (var j = 0; j < 2; ++j) {\n var v = cell[j];\n var p = positions[v];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue fill_loop;\n }\n }\n }\n for (var j = 0; j < 2; ++j) {\n var v = cell[j];\n var p = positions[v];\n ePos.push(p[0], p[1], p[2]);\n var c;\n if (vertexColors) {\n c = vertexColors[v];\n } else if (cellColors) {\n c = cellColors[i];\n } else {\n c = meshColor;\n }\n if (this.opacityscale && vertexIntensity) {\n tCol.push(\n c[0],\n c[1],\n c[2],\n this.opacity * getOpacityFromScale(\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n this.opacityscale\n )\n );\n } else if (c.length === 3) {\n eCol.push(c[0], c[1], c[2], this.opacity);\n } else {\n eCol.push(c[0], c[1], c[2], c[3] * this.opacity);\n if (c[3] < 1) this.hasAlpha = true;\n }\n var uv;\n if (vertexUVs) {\n uv = vertexUVs[v];\n } else if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else if (cellUVs) {\n uv = cellUVs[i];\n } else if (cellIntensity) {\n uv = [\n (cellIntensity[i] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n eUVs.push(uv[0], uv[1]);\n eIds.push(i);\n }\n edgeCount += 1;\n break;\n case 3:\n for (var j = 0; j < 3; ++j) {\n var v = cell[j];\n var p = positions[v];\n for (var k = 0; k < 3; ++k) {\n if (isNaN(p[k]) || !isFinite(p[k])) {\n continue fill_loop;\n }\n }\n }\n for (var j = 0; j < 3; ++j) {\n var v = cell[2 - j];\n var p = positions[v];\n tPos.push(p[0], p[1], p[2]);\n var c;\n if (vertexColors) {\n c = vertexColors[v];\n } else if (cellColors) {\n c = cellColors[i];\n } else {\n c = meshColor;\n }\n if (!c) {\n tCol.push(0.5, 0.5, 0.5, 1);\n } else if (this.opacityscale && vertexIntensity) {\n tCol.push(\n c[0],\n c[1],\n c[2],\n this.opacity * getOpacityFromScale(\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n this.opacityscale\n )\n );\n } else if (c.length === 3) {\n tCol.push(c[0], c[1], c[2], this.opacity);\n } else {\n tCol.push(c[0], c[1], c[2], c[3] * this.opacity);\n if (c[3] < 1) this.hasAlpha = true;\n }\n var uv;\n if (vertexUVs) {\n uv = vertexUVs[v];\n } else if (vertexIntensity) {\n uv = [\n (vertexIntensity[v] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else if (cellUVs) {\n uv = cellUVs[i];\n } else if (cellIntensity) {\n uv = [\n (cellIntensity[i] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n } else {\n uv = [\n (p[2] - intensityLo) / (intensityHi - intensityLo),\n 0\n ];\n }\n tUVs.push(uv[0], uv[1]);\n var q;\n if (vertexNormals) {\n q = vertexNormals[v];\n } else {\n q = cellNormals[i];\n }\n tNor.push(q[0], q[1], q[2]);\n tIds.push(i);\n }\n triangleCount += 1;\n break;\n default:\n break;\n }\n }\n this.pointCount = pointCount;\n this.edgeCount = edgeCount;\n this.triangleCount = triangleCount;\n this.pointPositions.update(pPos);\n this.pointColors.update(pCol);\n this.pointUVs.update(pUVs);\n this.pointSizes.update(pSiz);\n this.pointIds.update(new Uint32Array(pIds));\n this.edgePositions.update(ePos);\n this.edgeColors.update(eCol);\n this.edgeUVs.update(eUVs);\n this.edgeIds.update(new Uint32Array(eIds));\n this.trianglePositions.update(tPos);\n this.triangleColors.update(tCol);\n this.triangleUVs.update(tUVs);\n this.triangleNormals.update(tNor);\n this.triangleIds.update(new Uint32Array(tIds));\n };\n proto.drawTransparent = proto.draw = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n var uniforms = {\n model,\n view,\n projection,\n inverseModel: IDENTITY.slice(),\n clipBounds,\n kambient: this.ambientLight,\n kdiffuse: this.diffuseLight,\n kspecular: this.specularLight,\n roughness: this.roughness,\n fresnel: this.fresnel,\n eyePosition: [0, 0, 0],\n lightPosition: [0, 0, 0],\n contourColor: this.contourColor,\n texture: 0\n };\n uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model);\n gl2.disable(gl2.CULL_FACE);\n this.texture.bind(0);\n var invCameraMatrix = new Array(16);\n multiply(invCameraMatrix, uniforms.view, uniforms.model);\n multiply(invCameraMatrix, uniforms.projection, invCameraMatrix);\n invert(invCameraMatrix, invCameraMatrix);\n for (var i = 0; i < 3; ++i) {\n uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15];\n }\n var w = invCameraMatrix[15];\n for (var i = 0; i < 3; ++i) {\n w += this.lightPosition[i] * invCameraMatrix[4 * i + 3];\n }\n for (var i = 0; i < 3; ++i) {\n var s = invCameraMatrix[12 + i];\n for (var j = 0; j < 3; ++j) {\n s += invCameraMatrix[4 * j + i] * this.lightPosition[j];\n }\n uniforms.lightPosition[i] = s / w;\n }\n if (this.triangleCount > 0) {\n var shader = this.triShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n if (this.edgeCount > 0 && this.lineWidth > 0) {\n var shader = this.lineShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.edgeVAO.bind();\n gl2.lineWidth(this.lineWidth * this.pixelRatio);\n gl2.drawArrays(gl2.LINES, 0, this.edgeCount * 2);\n this.edgeVAO.unbind();\n }\n if (this.pointCount > 0) {\n var shader = this.pointShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.pointVAO.bind();\n gl2.drawArrays(gl2.POINTS, 0, this.pointCount);\n this.pointVAO.unbind();\n }\n if (this.contourEnable && this.contourCount > 0 && this.contourLineWidth > 0) {\n var shader = this.contourShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.contourVAO.bind();\n gl2.drawArrays(gl2.LINES, 0, this.contourCount);\n this.contourVAO.unbind();\n }\n };\n proto.drawPick = function(params) {\n params = params || {};\n var gl2 = this.gl;\n var model = params.model || IDENTITY;\n var view = params.view || IDENTITY;\n var projection = params.projection || IDENTITY;\n var clipBounds = [[-1e6, -1e6, -1e6], [1e6, 1e6, 1e6]];\n for (var i = 0; i < 3; ++i) {\n clipBounds[0][i] = Math.max(clipBounds[0][i], this.clipBounds[0][i]);\n clipBounds[1][i] = Math.min(clipBounds[1][i], this.clipBounds[1][i]);\n }\n this._model = [].slice.call(model);\n this._view = [].slice.call(view);\n this._projection = [].slice.call(projection);\n this._resolution = [gl2.drawingBufferWidth, gl2.drawingBufferHeight];\n var uniforms = {\n model,\n view,\n projection,\n clipBounds,\n pickId: this.pickId / 255\n };\n var shader = this.pickShader;\n shader.bind();\n shader.uniforms = uniforms;\n if (this.triangleCount > 0) {\n this.triangleVAO.bind();\n gl2.drawArrays(gl2.TRIANGLES, 0, this.triangleCount * 3);\n this.triangleVAO.unbind();\n }\n if (this.edgeCount > 0) {\n this.edgeVAO.bind();\n gl2.lineWidth(this.lineWidth * this.pixelRatio);\n gl2.drawArrays(gl2.LINES, 0, this.edgeCount * 2);\n this.edgeVAO.unbind();\n }\n if (this.pointCount > 0) {\n var shader = this.pointPickShader;\n shader.bind();\n shader.uniforms = uniforms;\n this.pointVAO.bind();\n gl2.drawArrays(gl2.POINTS, 0, this.pointCount);\n this.pointVAO.unbind();\n }\n };\n proto.pick = function(pickData) {\n if (!pickData) {\n return null;\n }\n if (pickData.id !== this.pickId) {\n return null;\n }\n var cellId = pickData.value[0] + 256 * pickData.value[1] + 65536 * pickData.value[2];\n var cell = this.cells[cellId];\n var positions = this.positions;\n var simplex = new Array(cell.length);\n for (var i = 0; i < cell.length; ++i) {\n simplex[i] = positions[cell[i]];\n }\n var x = pickData.coord[0];\n var y = pickData.coord[1];\n if (!this.pickVertex) {\n var A2 = this.positions[cell[0]];\n var B2 = this.positions[cell[1]];\n var C2 = this.positions[cell[2]];\n var dataCoordinate = [\n (A2[0] + B2[0] + C2[0]) / 3,\n (A2[1] + B2[1] + C2[1]) / 3,\n (A2[2] + B2[2] + C2[2]) / 3\n ];\n return {\n _cellCenter: true,\n position: [x, y],\n index: cellId,\n cell,\n cellId,\n intensity: this.intensity[cellId],\n dataCoordinate\n };\n }\n var data = closestPoint(\n simplex,\n [x * this.pixelRatio, this._resolution[1] - y * this.pixelRatio],\n this._model,\n this._view,\n this._projection,\n this._resolution\n );\n if (!data) {\n return null;\n }\n var weights = data[2];\n var interpIntensity = 0;\n for (var i = 0; i < cell.length; ++i) {\n interpIntensity += weights[i] * this.intensity[cell[i]];\n }\n return {\n position: data[1],\n index: cell[data[0]],\n cell,\n cellId,\n intensity: interpIntensity,\n dataCoordinate: this.positions[cell[data[0]]]\n };\n };\n proto.dispose = function() {\n this.texture.dispose();\n this.triShader.dispose();\n this.lineShader.dispose();\n this.pointShader.dispose();\n this.pickShader.dispose();\n this.pointPickShader.dispose();\n this.triangleVAO.dispose();\n this.trianglePositions.dispose();\n this.triangleColors.dispose();\n this.triangleUVs.dispose();\n this.triangleNormals.dispose();\n this.triangleIds.dispose();\n this.edgeVAO.dispose();\n this.edgePositions.dispose();\n this.edgeColors.dispose();\n this.edgeUVs.dispose();\n this.edgeIds.dispose();\n this.pointVAO.dispose();\n this.pointPositions.dispose();\n this.pointColors.dispose();\n this.pointUVs.dispose();\n this.pointSizes.dispose();\n this.pointIds.dispose();\n this.contourVAO.dispose();\n this.contourPositions.dispose();\n this.contourShader.dispose();\n };\n function createMeshShader(gl2) {\n var shader = createShader(gl2, meshShader.vertex, meshShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n shader.attributes.normal.location = 4;\n return shader;\n }\n function createWireShader(gl2) {\n var shader = createShader(gl2, wireShader.vertex, wireShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n return shader;\n }\n function createPointShader(gl2) {\n var shader = createShader(gl2, pointShader.vertex, pointShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 2;\n shader.attributes.uv.location = 3;\n shader.attributes.pointSize.location = 4;\n return shader;\n }\n function createPickShader(gl2) {\n var shader = createShader(gl2, pickShader.vertex, pickShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.id.location = 1;\n return shader;\n }\n function createPointPickShader(gl2) {\n var shader = createShader(gl2, pointPickShader.vertex, pointPickShader.fragment);\n shader.attributes.position.location = 0;\n shader.attributes.id.location = 1;\n shader.attributes.pointSize.location = 4;\n return shader;\n }\n function createContourShader(gl2) {\n var shader = createShader(gl2, contourShader.vertex, contourShader.fragment);\n shader.attributes.position.location = 0;\n return shader;\n }\n function createSimplicialMesh(gl2, params) {\n if (arguments.length === 1) {\n params = gl2;\n gl2 = params.gl;\n }\n var ext = gl2.getExtension(\"OES_standard_derivatives\") || gl2.getExtension(\"MOZ_OES_standard_derivatives\") || gl2.getExtension(\"WEBKIT_OES_standard_derivatives\");\n if (!ext)\n throw new Error(\"derivatives not supported\");\n var triShader = createMeshShader(gl2);\n var lineShader = createWireShader(gl2);\n var pointShader2 = createPointShader(gl2);\n var pickShader2 = createPickShader(gl2);\n var pointPickShader2 = createPointPickShader(gl2);\n var contourShader2 = createContourShader(gl2);\n var meshTexture = createTexture(\n gl2,\n ndarray(new Uint8Array([255, 255, 255, 255]), [1, 1, 4])\n );\n meshTexture.generateMipmap();\n meshTexture.minFilter = gl2.LINEAR_MIPMAP_LINEAR;\n meshTexture.magFilter = gl2.LINEAR;\n var trianglePositions = createBuffer(gl2);\n var triangleColors = createBuffer(gl2);\n var triangleUVs = createBuffer(gl2);\n var triangleNormals = createBuffer(gl2);\n var triangleIds = createBuffer(gl2);\n var triangleVAO = createVAO(gl2, [\n {\n buffer: trianglePositions,\n type: gl2.FLOAT,\n size: 3\n },\n {\n buffer: triangleIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: triangleColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: triangleUVs,\n type: gl2.FLOAT,\n size: 2\n },\n {\n buffer: triangleNormals,\n type: gl2.FLOAT,\n size: 3\n }\n ]);\n var edgePositions = createBuffer(gl2);\n var edgeColors = createBuffer(gl2);\n var edgeUVs = createBuffer(gl2);\n var edgeIds = createBuffer(gl2);\n var edgeVAO = createVAO(gl2, [\n {\n buffer: edgePositions,\n type: gl2.FLOAT,\n size: 3\n },\n {\n buffer: edgeIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: edgeColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: edgeUVs,\n type: gl2.FLOAT,\n size: 2\n }\n ]);\n var pointPositions = createBuffer(gl2);\n var pointColors = createBuffer(gl2);\n var pointUVs = createBuffer(gl2);\n var pointSizes = createBuffer(gl2);\n var pointIds = createBuffer(gl2);\n var pointVAO = createVAO(gl2, [\n {\n buffer: pointPositions,\n type: gl2.FLOAT,\n size: 3\n },\n {\n buffer: pointIds,\n type: gl2.UNSIGNED_BYTE,\n size: 4,\n normalized: true\n },\n {\n buffer: pointColors,\n type: gl2.FLOAT,\n size: 4\n },\n {\n buffer: pointUVs,\n type: gl2.FLOAT,\n size: 2\n },\n {\n buffer: pointSizes,\n type: gl2.FLOAT,\n size: 1\n }\n ]);\n var contourPositions = createBuffer(gl2);\n var contourVAO = createVAO(gl2, [\n {\n buffer: contourPositions,\n type: gl2.FLOAT,\n size: 3\n }\n ]);\n var mesh = new SimplicialMesh(\n gl2,\n meshTexture,\n triShader,\n lineShader,\n pointShader2,\n pickShader2,\n pointPickShader2,\n contourShader2,\n trianglePositions,\n triangleIds,\n triangleColors,\n triangleUVs,\n triangleNormals,\n triangleVAO,\n edgePositions,\n edgeIds,\n edgeColors,\n edgeUVs,\n edgeVAO,\n pointPositions,\n pointIds,\n pointColors,\n pointUVs,\n pointSizes,\n pointVAO,\n contourPositions,\n contourVAO\n );\n mesh.update(params);\n return mesh;\n }\n module2.exports = createSimplicialMesh;\n }\n ),\n /***/\n 4437: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createCamera;\n var now = __webpack_require__2(3025);\n var createView = __webpack_require__2(6296);\n var mouseChange = __webpack_require__2(351);\n var mouseWheel = __webpack_require__2(8512);\n var mouseOffset = __webpack_require__2(24);\n var hasPassive = __webpack_require__2(7520);\n function createCamera(element, options) {\n element = element || document.body;\n options = options || {};\n var limits = [0.01, Infinity];\n if (\"distanceLimits\" in options) {\n limits[0] = options.distanceLimits[0];\n limits[1] = options.distanceLimits[1];\n }\n if (\"zoomMin\" in options) {\n limits[0] = options.zoomMin;\n }\n if (\"zoomMax\" in options) {\n limits[1] = options.zoomMax;\n }\n var view = createView({\n center: options.center || [0, 0, 0],\n up: options.up || [0, 1, 0],\n eye: options.eye || [0, 0, 10],\n mode: options.mode || \"orbit\",\n distanceLimits: limits\n });\n var pmatrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n var distance = 0;\n var width = element.clientWidth;\n var height = element.clientHeight;\n var camera = {\n keyBindingMode: \"rotate\",\n enableWheel: true,\n view,\n element,\n delay: options.delay || 16,\n rotateSpeed: options.rotateSpeed || 1,\n zoomSpeed: options.zoomSpeed || 1,\n translateSpeed: options.translateSpeed || 1,\n flipX: !!options.flipX,\n flipY: !!options.flipY,\n modes: view.modes,\n _ortho: options._ortho || options.projection && options.projection.type === \"orthographic\" || false,\n tick: function() {\n var t = now();\n var delay = this.delay;\n var ctime = t - 2 * delay;\n view.idle(t - delay);\n view.recalcMatrix(ctime);\n view.flush(t - (100 + delay * 2));\n var allEqual = true;\n var matrix = view.computedMatrix;\n for (var i = 0; i < 16; ++i) {\n allEqual = allEqual && pmatrix[i] === matrix[i];\n pmatrix[i] = matrix[i];\n }\n var sizeChanged = element.clientWidth === width && element.clientHeight === height;\n width = element.clientWidth;\n height = element.clientHeight;\n if (allEqual) {\n return !sizeChanged;\n }\n distance = Math.exp(view.computedRadius[0]);\n return true;\n },\n lookAt: function(eye, center, up) {\n view.lookAt(view.lastT(), eye, center, up);\n },\n rotate: function(pitch, yaw, roll) {\n view.rotate(view.lastT(), pitch, yaw, roll);\n },\n pan: function(dx, dy, dz) {\n view.pan(view.lastT(), dx, dy, dz);\n },\n translate: function(dx, dy, dz) {\n view.translate(view.lastT(), dx, dy, dz);\n }\n };\n Object.defineProperties(camera, {\n matrix: {\n get: function() {\n return view.computedMatrix;\n },\n set: function(mat) {\n view.setMatrix(view.lastT(), mat);\n return view.computedMatrix;\n },\n enumerable: true\n },\n mode: {\n get: function() {\n return view.getMode();\n },\n set: function(mode) {\n var curUp = view.computedUp.slice();\n var curEye = view.computedEye.slice();\n var curCenter = view.computedCenter.slice();\n view.setMode(mode);\n if (mode === \"turntable\") {\n var t02 = now();\n view._active.lookAt(t02, curEye, curCenter, curUp);\n view._active.lookAt(t02 + 500, curEye, curCenter, [0, 0, 1]);\n view._active.flush(t02);\n }\n return view.getMode();\n },\n enumerable: true\n },\n center: {\n get: function() {\n return view.computedCenter;\n },\n set: function(ncenter) {\n view.lookAt(view.lastT(), null, ncenter);\n return view.computedCenter;\n },\n enumerable: true\n },\n eye: {\n get: function() {\n return view.computedEye;\n },\n set: function(neye) {\n view.lookAt(view.lastT(), neye);\n return view.computedEye;\n },\n enumerable: true\n },\n up: {\n get: function() {\n return view.computedUp;\n },\n set: function(nup) {\n view.lookAt(view.lastT(), null, null, nup);\n return view.computedUp;\n },\n enumerable: true\n },\n distance: {\n get: function() {\n return distance;\n },\n set: function(d) {\n view.setDistance(view.lastT(), d);\n return d;\n },\n enumerable: true\n },\n distanceLimits: {\n get: function() {\n return view.getDistanceLimits(limits);\n },\n set: function(v) {\n view.setDistanceLimits(v);\n return v;\n },\n enumerable: true\n }\n });\n element.addEventListener(\"contextmenu\", function(ev) {\n ev.preventDefault();\n return false;\n });\n camera._lastX = -1;\n camera._lastY = -1;\n camera._lastMods = { shift: false, control: false, alt: false, meta: false };\n camera.enableMouseListeners = function() {\n camera.mouseListener = mouseChange(element, handleInteraction);\n element.addEventListener(\"touchstart\", function(ev) {\n var xy = mouseOffset(ev.changedTouches[0], element);\n handleInteraction(0, xy[0], xy[1], camera._lastMods);\n handleInteraction(1, xy[0], xy[1], camera._lastMods);\n }, hasPassive ? { passive: true } : false);\n element.addEventListener(\"touchmove\", function(ev) {\n var xy = mouseOffset(ev.changedTouches[0], element);\n handleInteraction(1, xy[0], xy[1], camera._lastMods);\n ev.preventDefault();\n }, hasPassive ? { passive: false } : false);\n element.addEventListener(\"touchend\", function(ev) {\n handleInteraction(0, camera._lastX, camera._lastY, camera._lastMods);\n }, hasPassive ? { passive: true } : false);\n function handleInteraction(buttons, x, y, mods) {\n var keyBindingMode = camera.keyBindingMode;\n if (keyBindingMode === false) return;\n var rotate = keyBindingMode === \"rotate\";\n var pan = keyBindingMode === \"pan\";\n var zoom = keyBindingMode === \"zoom\";\n var ctrl = !!mods.control;\n var alt = !!mods.alt;\n var shift = !!mods.shift;\n var left = !!(buttons & 1);\n var right = !!(buttons & 2);\n var middle = !!(buttons & 4);\n var scale = 1 / element.clientHeight;\n var dx = scale * (x - camera._lastX);\n var dy = scale * (y - camera._lastY);\n var flipX = camera.flipX ? 1 : -1;\n var flipY = camera.flipY ? 1 : -1;\n var drot = Math.PI * camera.rotateSpeed;\n var t = now();\n if (camera._lastX !== -1 && camera._lastY !== -1) {\n if (rotate && left && !ctrl && !alt && !shift || left && !ctrl && !alt && shift) {\n view.rotate(t, flipX * drot * dx, -flipY * drot * dy, 0);\n }\n if (pan && left && !ctrl && !alt && !shift || right || left && ctrl && !alt && !shift) {\n view.pan(t, -camera.translateSpeed * dx * distance, camera.translateSpeed * dy * distance, 0);\n }\n if (zoom && left && !ctrl && !alt && !shift || middle || left && !ctrl && alt && !shift) {\n var kzoom = -camera.zoomSpeed * dy / window.innerHeight * (t - view.lastT()) * 100;\n view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1));\n }\n }\n camera._lastX = x;\n camera._lastY = y;\n camera._lastMods = mods;\n return true;\n }\n camera.wheelListener = mouseWheel(element, function(dx, dy) {\n if (camera.keyBindingMode === false) return;\n if (!camera.enableWheel) return;\n var flipX = camera.flipX ? 1 : -1;\n var flipY = camera.flipY ? 1 : -1;\n var t = now();\n if (Math.abs(dx) > Math.abs(dy)) {\n view.rotate(t, 0, 0, -dx * flipX * Math.PI * camera.rotateSpeed / window.innerWidth);\n } else {\n if (!camera._ortho) {\n var kzoom = -camera.zoomSpeed * flipY * dy / window.innerHeight * (t - view.lastT()) / 20;\n view.pan(t, 0, 0, distance * (Math.exp(kzoom) - 1));\n }\n }\n }, true);\n };\n camera.enableMouseListeners();\n return camera;\n }\n }\n ),\n /***/\n 799: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main() {\\n uv = position;\\n gl_Position = vec4(position, 0, 1);\\n}\"]);\n var fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nuniform sampler2D accumBuffer;\\nvarying vec2 uv;\\n\\nvoid main() {\\n vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0));\\n gl_FragColor = min(vec4(1,1,1,1), accum);\\n}\"]);\n module2.exports = function(gl2) {\n return createShader(gl2, vertSrc, fragSrc, null, [{ name: \"position\", type: \"vec2\" }]);\n };\n }\n ),\n /***/\n 4100: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createCamera = __webpack_require__2(4437);\n var createAxes = __webpack_require__2(3837);\n var axesRanges = __webpack_require__2(5445);\n var createSpikes = __webpack_require__2(4449);\n var createSelect = __webpack_require__2(3589);\n var createFBO = __webpack_require__2(2260);\n var drawTriangle = __webpack_require__2(7169);\n var mouseChange = __webpack_require__2(351);\n var perspective = __webpack_require__2(4772);\n var ortho = __webpack_require__2(4040);\n var createShader = __webpack_require__2(799);\n var isMobile = __webpack_require__2(9216)({ tablet: true, featureDetect: true });\n module2.exports = {\n createScene,\n createCamera\n };\n function MouseSelect() {\n this.mouse = [-1, -1];\n this.screen = null;\n this.distance = Infinity;\n this.index = null;\n this.dataCoordinate = null;\n this.dataPosition = null;\n this.object = null;\n this.data = null;\n }\n function getContext(canvas, options) {\n var gl2 = null;\n try {\n gl2 = canvas.getContext(\"webgl\", options);\n if (!gl2) {\n gl2 = canvas.getContext(\"experimental-webgl\", options);\n }\n } catch (e) {\n return null;\n }\n return gl2;\n }\n function roundUpPow10(x) {\n var y = Math.round(Math.log(Math.abs(x)) / Math.log(10));\n if (y < 0) {\n var base = Math.round(Math.pow(10, -y));\n return Math.ceil(x * base) / base;\n } else if (y > 0) {\n var base = Math.round(Math.pow(10, y));\n return Math.ceil(x / base) * base;\n }\n return Math.ceil(x);\n }\n function defaultBool(x) {\n if (typeof x === \"boolean\") {\n return x;\n }\n return true;\n }\n function createScene(options) {\n options = options || {};\n options.camera = options.camera || {};\n var canvas = options.canvas;\n if (!canvas) {\n canvas = document.createElement(\"canvas\");\n if (options.container) {\n var container = options.container;\n container.appendChild(canvas);\n } else {\n document.body.appendChild(canvas);\n }\n }\n var gl2 = options.gl;\n if (!gl2) {\n if (options.glOptions) {\n isMobile = !!options.glOptions.preserveDrawingBuffer;\n }\n gl2 = getContext(\n canvas,\n options.glOptions || {\n premultipliedAlpha: true,\n antialias: true,\n preserveDrawingBuffer: isMobile\n }\n );\n }\n if (!gl2) {\n throw new Error(\"webgl not supported\");\n }\n var bounds = options.bounds || [[-10, -10, -10], [10, 10, 10]];\n var selection = new MouseSelect();\n var accumBuffer = createFBO(\n gl2,\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight,\n {\n preferFloat: !isMobile\n }\n );\n var accumShader = createShader(gl2);\n var isOrtho = options.cameraObject && options.cameraObject._ortho === true || options.camera.projection && options.camera.projection.type === \"orthographic\" || false;\n var cameraOptions = {\n eye: options.camera.eye || [2, 0, 0],\n center: options.camera.center || [0, 0, 0],\n up: options.camera.up || [0, 1, 0],\n zoomMin: options.camera.zoomMax || 0.1,\n zoomMax: options.camera.zoomMin || 100,\n mode: options.camera.mode || \"turntable\",\n _ortho: isOrtho\n };\n var axesOptions = options.axes || {};\n var axes = createAxes(gl2, axesOptions);\n axes.enable = !axesOptions.disable;\n var spikeOptions = options.spikes || {};\n var spikes = createSpikes(gl2, spikeOptions);\n var objects = [];\n var pickBufferIds = [];\n var pickBufferCount = [];\n var pickBuffers = [];\n var dirty = true;\n var pickDirty = true;\n var projection = new Array(16);\n var model = new Array(16);\n var cameraParams = {\n view: null,\n projection,\n model,\n _ortho: false\n };\n var pickDirty = true;\n var viewShape = [gl2.drawingBufferWidth, gl2.drawingBufferHeight];\n var camera = options.cameraObject || createCamera(canvas, cameraOptions);\n var scene = {\n gl: gl2,\n contextLost: false,\n pixelRatio: options.pixelRatio || 1,\n canvas,\n selection,\n camera,\n axes,\n axesPixels: null,\n spikes,\n bounds,\n objects,\n shape: viewShape,\n aspect: options.aspectRatio || [1, 1, 1],\n pickRadius: options.pickRadius || 10,\n zNear: options.zNear || 0.01,\n zFar: options.zFar || 1e3,\n fovy: options.fovy || Math.PI / 4,\n clearColor: options.clearColor || [0, 0, 0, 0],\n autoResize: defaultBool(options.autoResize),\n autoBounds: defaultBool(options.autoBounds),\n autoScale: !!options.autoScale,\n autoCenter: defaultBool(options.autoCenter),\n clipToBounds: defaultBool(options.clipToBounds),\n snapToData: !!options.snapToData,\n onselect: options.onselect || null,\n onrender: options.onrender || null,\n onclick: options.onclick || null,\n cameraParams,\n oncontextloss: null,\n mouseListener: null,\n _stopped: false,\n getAspectratio: function() {\n return {\n x: this.aspect[0],\n y: this.aspect[1],\n z: this.aspect[2]\n };\n },\n setAspectratio: function(aspectratio) {\n this.aspect[0] = aspectratio.x;\n this.aspect[1] = aspectratio.y;\n this.aspect[2] = aspectratio.z;\n pickDirty = true;\n },\n setBounds: function(axisIndex, range) {\n this.bounds[0][axisIndex] = range.min;\n this.bounds[1][axisIndex] = range.max;\n },\n setClearColor: function(clearColor) {\n this.clearColor = clearColor;\n },\n clearRGBA: function() {\n this.gl.clearColor(\n this.clearColor[0],\n this.clearColor[1],\n this.clearColor[2],\n this.clearColor[3]\n );\n this.gl.clear(\n this.gl.COLOR_BUFFER_BIT | this.gl.DEPTH_BUFFER_BIT\n );\n }\n };\n var pickShape = [gl2.drawingBufferWidth / scene.pixelRatio | 0, gl2.drawingBufferHeight / scene.pixelRatio | 0];\n function resizeListener() {\n if (scene._stopped) {\n return;\n }\n if (!scene.autoResize) {\n return;\n }\n var parent = canvas.parentNode;\n var width = 1;\n var height = 1;\n if (parent && parent !== document.body) {\n width = parent.clientWidth;\n height = parent.clientHeight;\n } else {\n width = window.innerWidth;\n height = window.innerHeight;\n }\n var nextWidth = Math.ceil(width * scene.pixelRatio) | 0;\n var nextHeight = Math.ceil(height * scene.pixelRatio) | 0;\n if (nextWidth !== canvas.width || nextHeight !== canvas.height) {\n canvas.width = nextWidth;\n canvas.height = nextHeight;\n var style = canvas.style;\n style.position = style.position || \"absolute\";\n style.left = \"0px\";\n style.top = \"0px\";\n style.width = width + \"px\";\n style.height = height + \"px\";\n dirty = true;\n }\n }\n if (scene.autoResize) {\n resizeListener();\n }\n window.addEventListener(\"resize\", resizeListener);\n function reallocPickIds() {\n var numObjs = objects.length;\n var numPick = pickBuffers.length;\n for (var i = 0; i < numPick; ++i) {\n pickBufferCount[i] = 0;\n }\n obj_loop:\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n var pickCount = obj.pickSlots;\n if (!pickCount) {\n pickBufferIds[i] = -1;\n continue;\n }\n for (var j = 0; j < numPick; ++j) {\n if (pickBufferCount[j] + pickCount < 255) {\n pickBufferIds[i] = j;\n obj.setPickBase(pickBufferCount[j] + 1);\n pickBufferCount[j] += pickCount;\n continue obj_loop;\n }\n }\n var nbuffer = createSelect(gl2, viewShape);\n pickBufferIds[i] = numPick;\n pickBuffers.push(nbuffer);\n pickBufferCount.push(pickCount);\n obj.setPickBase(1);\n numPick += 1;\n }\n while (numPick > 0 && pickBufferCount[numPick - 1] === 0) {\n pickBufferCount.pop();\n pickBuffers.pop().dispose();\n }\n }\n scene.update = function(options2) {\n if (scene._stopped) {\n return;\n }\n options2 = options2 || {};\n dirty = true;\n pickDirty = true;\n };\n scene.add = function(obj) {\n if (scene._stopped) {\n return;\n }\n obj.axes = axes;\n objects.push(obj);\n pickBufferIds.push(-1);\n dirty = true;\n pickDirty = true;\n reallocPickIds();\n };\n scene.remove = function(obj) {\n if (scene._stopped) {\n return;\n }\n var idx = objects.indexOf(obj);\n if (idx < 0) {\n return;\n }\n objects.splice(idx, 1);\n pickBufferIds.pop();\n dirty = true;\n pickDirty = true;\n reallocPickIds();\n };\n scene.dispose = function() {\n if (scene._stopped) {\n return;\n }\n scene._stopped = true;\n window.removeEventListener(\"resize\", resizeListener);\n canvas.removeEventListener(\"webglcontextlost\", checkContextLoss);\n scene.mouseListener.enabled = false;\n if (scene.contextLost) {\n return;\n }\n axes.dispose();\n spikes.dispose();\n for (var i = 0; i < objects.length; ++i) {\n objects[i].dispose();\n }\n accumBuffer.dispose();\n for (var i = 0; i < pickBuffers.length; ++i) {\n pickBuffers[i].dispose();\n }\n accumShader.dispose();\n gl2 = null;\n axes = null;\n spikes = null;\n objects = [];\n };\n scene._mouseRotating = false;\n scene._prevButtons = 0;\n scene.enableMouseListeners = function() {\n scene.mouseListener = mouseChange(canvas, function(buttons, x, y) {\n if (scene._stopped) {\n return;\n }\n var numPick = pickBuffers.length;\n var numObjs = objects.length;\n var prevObj = selection.object;\n selection.distance = Infinity;\n selection.mouse[0] = x;\n selection.mouse[1] = y;\n selection.object = null;\n selection.screen = null;\n selection.dataCoordinate = selection.dataPosition = null;\n var change = false;\n if (buttons && scene._prevButtons) {\n scene._mouseRotating = true;\n } else {\n if (scene._mouseRotating) {\n pickDirty = true;\n }\n scene._mouseRotating = false;\n for (var i = 0; i < numPick; ++i) {\n var result = pickBuffers[i].query(x, pickShape[1] - y - 1, scene.pickRadius);\n if (result) {\n if (result.distance > selection.distance) {\n continue;\n }\n for (var j = 0; j < numObjs; ++j) {\n var obj = objects[j];\n if (pickBufferIds[j] !== i) {\n continue;\n }\n var objPick = obj.pick(result);\n if (objPick) {\n selection.buttons = buttons;\n selection.screen = result.coord;\n selection.distance = result.distance;\n selection.object = obj;\n selection.index = objPick.distance;\n selection.dataPosition = objPick.position;\n selection.dataCoordinate = objPick.dataCoordinate;\n selection.data = objPick;\n change = true;\n }\n }\n }\n }\n }\n if (prevObj && prevObj !== selection.object) {\n if (prevObj.highlight) {\n prevObj.highlight(null);\n }\n dirty = true;\n }\n if (selection.object) {\n if (selection.object.highlight) {\n selection.object.highlight(selection.data);\n }\n dirty = true;\n }\n change = change || selection.object !== prevObj;\n if (change && scene.onselect) {\n scene.onselect(selection);\n }\n if (buttons & 1 && !(scene._prevButtons & 1) && scene.onclick) {\n scene.onclick(selection);\n }\n scene._prevButtons = buttons;\n });\n };\n function checkContextLoss() {\n if (scene.contextLost) {\n return true;\n }\n if (gl2.isContextLost()) {\n scene.contextLost = true;\n scene.mouseListener.enabled = false;\n scene.selection.object = null;\n if (scene.oncontextloss) {\n scene.oncontextloss();\n }\n }\n }\n canvas.addEventListener(\"webglcontextlost\", checkContextLoss);\n function renderPick() {\n if (checkContextLoss()) {\n return;\n }\n gl2.colorMask(true, true, true, true);\n gl2.depthMask(true);\n gl2.disable(gl2.BLEND);\n gl2.enable(gl2.DEPTH_TEST);\n gl2.depthFunc(gl2.LEQUAL);\n var numObjs = objects.length;\n var numPick = pickBuffers.length;\n for (var j = 0; j < numPick; ++j) {\n var buf = pickBuffers[j];\n buf.shape = pickShape;\n buf.begin();\n for (var i = 0; i < numObjs; ++i) {\n if (pickBufferIds[i] !== j) {\n continue;\n }\n var obj = objects[i];\n if (obj.drawPick) {\n obj.pixelRatio = 1;\n obj.drawPick(cameraParams);\n }\n }\n buf.end();\n }\n }\n var nBounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n var prevBounds = [nBounds[0].slice(), nBounds[1].slice()];\n function redraw() {\n if (checkContextLoss()) {\n return;\n }\n resizeListener();\n var cameraMoved = scene.camera.tick();\n cameraParams.view = scene.camera.matrix;\n dirty = dirty || cameraMoved;\n pickDirty = pickDirty || cameraMoved;\n axes.pixelRatio = scene.pixelRatio;\n spikes.pixelRatio = scene.pixelRatio;\n var numObjs = objects.length;\n var lo = nBounds[0];\n var hi = nBounds[1];\n lo[0] = lo[1] = lo[2] = Infinity;\n hi[0] = hi[1] = hi[2] = -Infinity;\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n obj.pixelRatio = scene.pixelRatio;\n obj.axes = scene.axes;\n dirty = dirty || !!obj.dirty;\n pickDirty = pickDirty || !!obj.dirty;\n var obb = obj.bounds;\n if (obb) {\n var olo = obb[0];\n var ohi = obb[1];\n for (var j = 0; j < 3; ++j) {\n lo[j] = Math.min(lo[j], olo[j]);\n hi[j] = Math.max(hi[j], ohi[j]);\n }\n }\n }\n var bounds2 = scene.bounds;\n if (scene.autoBounds) {\n for (var j = 0; j < 3; ++j) {\n if (hi[j] < lo[j]) {\n lo[j] = -1;\n hi[j] = 1;\n } else {\n if (lo[j] === hi[j]) {\n lo[j] -= 1;\n hi[j] += 1;\n }\n var padding = 0.05 * (hi[j] - lo[j]);\n lo[j] = lo[j] - padding;\n hi[j] = hi[j] + padding;\n }\n bounds2[0][j] = lo[j];\n bounds2[1][j] = hi[j];\n }\n }\n var boundsChanged = false;\n for (var j = 0; j < 3; ++j) {\n boundsChanged = boundsChanged || prevBounds[0][j] !== bounds2[0][j] || prevBounds[1][j] !== bounds2[1][j];\n prevBounds[0][j] = bounds2[0][j];\n prevBounds[1][j] = bounds2[1][j];\n }\n pickDirty = pickDirty || boundsChanged;\n dirty = dirty || boundsChanged;\n if (!dirty) {\n return;\n }\n if (boundsChanged) {\n var tickSpacing = [0, 0, 0];\n for (var i = 0; i < 3; ++i) {\n tickSpacing[i] = roundUpPow10((bounds2[1][i] - bounds2[0][i]) / 10);\n }\n if (axes.autoTicks) {\n axes.update({\n bounds: bounds2,\n tickSpacing\n });\n } else {\n axes.update({\n bounds: bounds2\n });\n }\n }\n var width = gl2.drawingBufferWidth;\n var height = gl2.drawingBufferHeight;\n viewShape[0] = width;\n viewShape[1] = height;\n pickShape[0] = Math.max(width / scene.pixelRatio, 1) | 0;\n pickShape[1] = Math.max(height / scene.pixelRatio, 1) | 0;\n calcCameraParams(scene, isOrtho);\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n obj.axesBounds = bounds2;\n if (scene.clipToBounds) {\n obj.clipBounds = bounds2;\n }\n }\n if (selection.object) {\n if (scene.snapToData) {\n spikes.position = selection.dataCoordinate;\n } else {\n spikes.position = selection.dataPosition;\n }\n spikes.bounds = bounds2;\n }\n if (pickDirty) {\n pickDirty = false;\n renderPick();\n }\n scene.axesPixels = axesRanges(scene.axes, cameraParams, width, height);\n if (scene.onrender) {\n scene.onrender();\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n gl2.viewport(0, 0, width, height);\n scene.clearRGBA();\n gl2.depthMask(true);\n gl2.colorMask(true, true, true, true);\n gl2.enable(gl2.DEPTH_TEST);\n gl2.depthFunc(gl2.LEQUAL);\n gl2.disable(gl2.BLEND);\n gl2.disable(gl2.CULL_FACE);\n var hasTransparent = false;\n if (axes.enable) {\n hasTransparent = hasTransparent || axes.isTransparent();\n axes.draw(cameraParams);\n }\n spikes.axes = axes;\n if (selection.object) {\n spikes.draw(cameraParams);\n }\n gl2.disable(gl2.CULL_FACE);\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n obj.axes = axes;\n obj.pixelRatio = scene.pixelRatio;\n if (obj.isOpaque && obj.isOpaque()) {\n obj.draw(cameraParams);\n }\n if (obj.isTransparent && obj.isTransparent()) {\n hasTransparent = true;\n }\n }\n if (hasTransparent) {\n accumBuffer.shape = viewShape;\n accumBuffer.bind();\n gl2.clear(gl2.DEPTH_BUFFER_BIT);\n gl2.colorMask(false, false, false, false);\n gl2.depthMask(true);\n gl2.depthFunc(gl2.LESS);\n if (axes.enable && axes.isTransparent()) {\n axes.drawTransparent(cameraParams);\n }\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n if (obj.isOpaque && obj.isOpaque()) {\n obj.draw(cameraParams);\n }\n }\n gl2.enable(gl2.BLEND);\n gl2.blendEquation(gl2.FUNC_ADD);\n gl2.blendFunc(gl2.ONE, gl2.ONE_MINUS_SRC_ALPHA);\n gl2.colorMask(true, true, true, true);\n gl2.depthMask(false);\n gl2.clearColor(0, 0, 0, 0);\n gl2.clear(gl2.COLOR_BUFFER_BIT);\n if (axes.isTransparent()) {\n axes.drawTransparent(cameraParams);\n }\n for (var i = 0; i < numObjs; ++i) {\n var obj = objects[i];\n if (obj.isTransparent && obj.isTransparent()) {\n obj.drawTransparent(cameraParams);\n }\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n gl2.blendFunc(gl2.ONE, gl2.ONE_MINUS_SRC_ALPHA);\n gl2.disable(gl2.DEPTH_TEST);\n accumShader.bind();\n accumBuffer.color[0].bind(0);\n accumShader.uniforms.accumBuffer = 0;\n drawTriangle(gl2);\n gl2.disable(gl2.BLEND);\n }\n dirty = false;\n for (var i = 0; i < numObjs; ++i) {\n objects[i].dirty = false;\n }\n }\n function render() {\n if (scene._stopped || scene.contextLost) {\n return;\n }\n redraw();\n requestAnimationFrame(render);\n }\n scene.enableMouseListeners();\n render();\n scene.redraw = function() {\n if (scene._stopped) {\n return;\n }\n dirty = true;\n redraw();\n };\n return scene;\n }\n function calcCameraParams(scene, isOrtho) {\n var bounds = scene.bounds;\n var cameraParams = scene.cameraParams;\n var projection = cameraParams.projection;\n var model = cameraParams.model;\n var width = scene.gl.drawingBufferWidth;\n var height = scene.gl.drawingBufferHeight;\n var zNear = scene.zNear;\n var zFar = scene.zFar;\n var fovy = scene.fovy;\n var r = width / height;\n if (isOrtho) {\n ortho(\n projection,\n -r,\n r,\n -1,\n 1,\n zNear,\n zFar\n );\n cameraParams._ortho = true;\n } else {\n perspective(\n projection,\n fovy,\n r,\n zNear,\n zFar\n );\n cameraParams._ortho = false;\n }\n for (var i = 0; i < 16; ++i) {\n model[i] = 0;\n }\n model[15] = 1;\n var maxS = 0;\n for (var i = 0; i < 3; ++i) {\n maxS = Math.max(maxS, bounds[1][i] - bounds[0][i]);\n }\n for (var i = 0; i < 3; ++i) {\n if (scene.autoScale) {\n model[5 * i] = scene.aspect[i] / (bounds[1][i] - bounds[0][i]);\n } else {\n model[5 * i] = 1 / maxS;\n }\n if (scene.autoCenter) {\n model[12 + i] = -model[5 * i] * 0.5 * (bounds[0][i] + bounds[1][i]);\n }\n }\n }\n }\n ),\n /***/\n 783: (\n /***/\n function(module2) {\n module2.exports = slerp;\n function slerp(out, a, b, t) {\n var ax = a[0], ay = a[1], az = a[2], aw = a[3], bx = b[0], by = b[1], bz = b[2], bw = b[3];\n var omega, cosom, sinom, scale0, scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n if (cosom < 0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n if (1 - cosom > 1e-6) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1 - t;\n scale1 = t;\n }\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n }\n ),\n /***/\n 5964: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = function(a) {\n return !a && a !== 0 ? \"\" : a.toString();\n };\n }\n ),\n /***/\n 9366: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var vectorizeText = __webpack_require__2(4359);\n module2.exports = getGlyph;\n var GLYPH_CACHE = {};\n function getGlyph(symbol, font, pixelRatio) {\n var fontKey = [\n font.style,\n font.weight,\n font.variant,\n font.family\n ].join(\"_\");\n var fontCache = GLYPH_CACHE[fontKey];\n if (!fontCache) {\n fontCache = GLYPH_CACHE[fontKey] = {};\n }\n if (symbol in fontCache) {\n return fontCache[symbol];\n }\n var config = {\n textAlign: \"center\",\n textBaseline: \"middle\",\n lineHeight: 1,\n font: font.family,\n fontStyle: font.style,\n fontWeight: font.weight,\n fontVariant: font.variant,\n lineSpacing: 1.25,\n styletags: {\n breaklines: true,\n bolds: true,\n italics: true,\n subscripts: true,\n superscripts: true\n }\n };\n config.triangles = true;\n var triSymbol = vectorizeText(symbol, config);\n config.triangles = false;\n var lineSymbol = vectorizeText(symbol, config);\n var i, j;\n if (pixelRatio && pixelRatio !== 1) {\n for (i = 0; i < triSymbol.positions.length; ++i) {\n for (j = 0; j < triSymbol.positions[i].length; ++j) {\n triSymbol.positions[i][j] /= pixelRatio;\n }\n }\n for (i = 0; i < lineSymbol.positions.length; ++i) {\n for (j = 0; j < lineSymbol.positions[i].length; ++j) {\n lineSymbol.positions[i][j] /= pixelRatio;\n }\n }\n }\n var bounds = [[Infinity, Infinity], [-Infinity, -Infinity]];\n var n = lineSymbol.positions.length;\n for (i = 0; i < n; ++i) {\n var p = lineSymbol.positions[i];\n for (j = 0; j < 2; ++j) {\n bounds[0][j] = Math.min(bounds[0][j], p[j]);\n bounds[1][j] = Math.max(bounds[1][j], p[j]);\n }\n }\n return fontCache[symbol] = [triSymbol, lineSymbol, bounds];\n }\n }\n ),\n /***/\n 1283: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var createShaderWrapper = __webpack_require__2(9405);\n var glslify = __webpack_require__2(3236);\n var perspectiveVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform vec4 highlightId;\\nuniform float highlightScale;\\nuniform mat4 model, view, projection;\\nuniform vec3 clipBounds[2];\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = 1.0;\\n if(distance(highlightId, id) < 0.0001) {\\n scale = highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1);\\n vec4 viewPosition = view * worldPosition;\\n viewPosition = viewPosition / viewPosition.w;\\n vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"]);\n var orthographicVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float highlightScale, pixelRatio;\\nuniform vec4 highlightId;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float scale = pixelRatio;\\n if(distance(highlightId.bgr, id.bgr) < 0.001) {\\n scale *= highlightScale;\\n }\\n\\n vec4 worldPosition = model * vec4(position, 1.0);\\n vec4 viewPosition = view * worldPosition;\\n vec4 clipPosition = projection * viewPosition;\\n clipPosition /= clipPosition.w;\\n\\n gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0);\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = position;\\n }\\n}\"]);\n var projectionVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute vec2 glyph;\\nattribute vec4 id;\\n\\nuniform float highlightScale;\\nuniform vec4 highlightId;\\nuniform vec3 axes[2];\\nuniform mat4 model, view, projection;\\nuniform vec2 screenSize;\\nuniform vec3 clipBounds[2];\\nuniform float scale, pixelRatio;\\n\\nvarying vec4 interpColor;\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], position)) {\\n\\n gl_Position = vec4(0,0,0,0);\\n } else {\\n float lscale = pixelRatio * scale;\\n if(distance(highlightId, id) < 0.0001) {\\n lscale *= highlightScale;\\n }\\n\\n vec4 clipCenter = projection * (view * (model * vec4(position, 1)));\\n vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y;\\n vec4 clipPosition = projection * (view * (model * vec4(dataPosition, 1)));\\n\\n gl_Position = clipPosition;\\n interpColor = color;\\n pickId = id;\\n dataCoordinate = dataPosition;\\n }\\n}\\n\"]);\n var drawFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float opacity;\\n\\nvarying vec4 interpColor;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (\\n outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) ||\\n interpColor.a * opacity == 0.\\n ) discard;\\n gl_FragColor = interpColor * opacity;\\n}\\n\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 fragClipBounds[2];\\nuniform float pickGroup;\\n\\nvarying vec4 pickId;\\nvarying vec3 dataCoordinate;\\n\\nvoid main() {\\n if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard;\\n\\n gl_FragColor = vec4(pickGroup, pickId.bgr);\\n}\"]);\n var ATTRIBUTES = [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"glyph\", type: \"vec2\" },\n { name: \"id\", type: \"vec4\" }\n ];\n var perspective = {\n vertex: perspectiveVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n }, ortho = {\n vertex: orthographicVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n }, project = {\n vertex: projectionVertSrc,\n fragment: drawFragSrc,\n attributes: ATTRIBUTES\n }, pickPerspective = {\n vertex: perspectiveVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }, pickOrtho = {\n vertex: orthographicVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n }, pickProject = {\n vertex: projectionVertSrc,\n fragment: pickFragSrc,\n attributes: ATTRIBUTES\n };\n function createShader(gl2, src) {\n var shader = createShaderWrapper(gl2, src);\n var attr = shader.attributes;\n attr.position.location = 0;\n attr.color.location = 1;\n attr.glyph.location = 2;\n attr.id.location = 3;\n return shader;\n }\n exports2.createPerspective = function(gl2) {\n return createShader(gl2, perspective);\n };\n exports2.createOrtho = function(gl2) {\n return createShader(gl2, ortho);\n };\n exports2.createProject = function(gl2) {\n return createShader(gl2, project);\n };\n exports2.createPickPerspective = function(gl2) {\n return createShader(gl2, pickPerspective);\n };\n exports2.createPickOrtho = function(gl2) {\n return createShader(gl2, pickOrtho);\n };\n exports2.createPickProject = function(gl2) {\n return createShader(gl2, pickProject);\n };\n }\n ),\n /***/\n 8418: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isAllBlank = __webpack_require__2(5219);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var pool = __webpack_require__2(1888);\n var mat4mult = __webpack_require__2(6760);\n var shaders = __webpack_require__2(1283);\n var getGlyph = __webpack_require__2(9366);\n var getSimpleString = __webpack_require__2(5964);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n var ab = ArrayBuffer;\n var dv = DataView;\n function isTypedArray(a) {\n return ab.isView(a) && !(a instanceof dv);\n }\n function isArrayOrTypedArray(a) {\n return Array.isArray(a) || isTypedArray(a);\n }\n module2.exports = createPointCloud;\n function transformMat4(x, m) {\n var x0 = x[0];\n var x1 = x[1];\n var x2 = x[2];\n var x3 = x[3];\n x[0] = m[0] * x0 + m[4] * x1 + m[8] * x2 + m[12] * x3;\n x[1] = m[1] * x0 + m[5] * x1 + m[9] * x2 + m[13] * x3;\n x[2] = m[2] * x0 + m[6] * x1 + m[10] * x2 + m[14] * x3;\n x[3] = m[3] * x0 + m[7] * x1 + m[11] * x2 + m[15] * x3;\n return x;\n }\n function project(p, v, m, x) {\n transformMat4(x, x, m);\n transformMat4(x, x, v);\n return transformMat4(x, x, p);\n }\n function ScatterPlotPickResult(index, position) {\n this.index = index;\n this.dataCoordinate = this.position = position;\n }\n function fixOpacity(a) {\n if (a === true) return 1;\n if (a > 1) return 1;\n return a;\n }\n function PointCloud(gl2, shader, orthoShader, projectShader, pointBuffer, colorBuffer, glyphBuffer, idBuffer, vao, pickPerspectiveShader, pickOrthoShader, pickProjectShader) {\n this.gl = gl2;\n this.pixelRatio = 1;\n this.shader = shader;\n this.orthoShader = orthoShader;\n this.projectShader = projectShader;\n this.pointBuffer = pointBuffer;\n this.colorBuffer = colorBuffer;\n this.glyphBuffer = glyphBuffer;\n this.idBuffer = idBuffer;\n this.vao = vao;\n this.vertexCount = 0;\n this.lineVertexCount = 0;\n this.opacity = 1;\n this.hasAlpha = false;\n this.lineWidth = 0;\n this.projectScale = [2 / 3, 2 / 3, 2 / 3];\n this.projectOpacity = [1, 1, 1];\n this.projectHasAlpha = false;\n this.pickId = 0;\n this.pickPerspectiveShader = pickPerspectiveShader;\n this.pickOrthoShader = pickOrthoShader;\n this.pickProjectShader = pickProjectShader;\n this.points = [];\n this._selectResult = new ScatterPlotPickResult(0, [0, 0, 0]);\n this.useOrtho = true;\n this.bounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n this.axesProject = [true, true, true];\n this.axesBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.highlightId = [1, 1, 1, 1];\n this.highlightScale = 2;\n this.clipBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.dirty = true;\n }\n var proto = PointCloud.prototype;\n proto.pickSlots = 1;\n proto.setPickBase = function(pickBase) {\n this.pickId = pickBase;\n };\n proto.isTransparent = function() {\n if (this.hasAlpha) {\n return true;\n }\n for (var i = 0; i < 3; ++i) {\n if (this.axesProject[i] && this.projectHasAlpha) {\n return true;\n }\n }\n return false;\n };\n proto.isOpaque = function() {\n if (!this.hasAlpha) {\n return true;\n }\n for (var i = 0; i < 3; ++i) {\n if (this.axesProject[i] && !this.projectHasAlpha) {\n return true;\n }\n }\n return false;\n };\n var VIEW_SHAPE = [0, 0];\n var U_VEC = [0, 0, 0];\n var V_VEC = [0, 0, 0];\n var MU_VEC = [0, 0, 0, 1];\n var MV_VEC = [0, 0, 0, 1];\n var SCRATCH_MATRIX = IDENTITY.slice();\n var SCRATCH_VEC = [0, 0, 0];\n var CLIP_BOUNDS = [[0, 0, 0], [0, 0, 0]];\n function zeroVec(a) {\n a[0] = a[1] = a[2] = 0;\n return a;\n }\n function augment(hg, af) {\n hg[0] = af[0];\n hg[1] = af[1];\n hg[2] = af[2];\n hg[3] = 1;\n return hg;\n }\n function setComponent(out, v, i, x) {\n out[0] = v[0];\n out[1] = v[1];\n out[2] = v[2];\n out[i] = x;\n return out;\n }\n function getClipBounds(bounds) {\n var result = CLIP_BOUNDS;\n for (var i = 0; i < 2; ++i) {\n for (var j = 0; j < 3; ++j) {\n result[i][j] = Math.max(Math.min(bounds[i][j], 1e8), -1e8);\n }\n }\n return result;\n }\n function drawProject(shader, points, camera, pixelRatio) {\n var axesProject = points.axesProject;\n var gl2 = points.gl;\n var uniforms = shader.uniforms;\n var model = camera.model || IDENTITY;\n var view = camera.view || IDENTITY;\n var projection = camera.projection || IDENTITY;\n var bounds = points.axesBounds;\n var clipBounds = getClipBounds(points.clipBounds);\n var cubeAxis;\n if (points.axes && points.axes.lastCubeProps) {\n cubeAxis = points.axes.lastCubeProps.axis;\n } else {\n cubeAxis = [1, 1, 1];\n }\n VIEW_SHAPE[0] = 2 / gl2.drawingBufferWidth;\n VIEW_SHAPE[1] = 2 / gl2.drawingBufferHeight;\n shader.bind();\n uniforms.view = view;\n uniforms.projection = projection;\n uniforms.screenSize = VIEW_SHAPE;\n uniforms.highlightId = points.highlightId;\n uniforms.highlightScale = points.highlightScale;\n uniforms.clipBounds = clipBounds;\n uniforms.pickGroup = points.pickId / 255;\n uniforms.pixelRatio = pixelRatio;\n for (var i = 0; i < 3; ++i) {\n if (!axesProject[i]) {\n continue;\n }\n uniforms.scale = points.projectScale[i];\n uniforms.opacity = points.projectOpacity[i];\n var pmodel = SCRATCH_MATRIX;\n for (var j = 0; j < 16; ++j) {\n pmodel[j] = 0;\n }\n for (var j = 0; j < 4; ++j) {\n pmodel[5 * j] = 1;\n }\n pmodel[5 * i] = 0;\n if (cubeAxis[i] < 0) {\n pmodel[12 + i] = bounds[0][i];\n } else {\n pmodel[12 + i] = bounds[1][i];\n }\n mat4mult(pmodel, model, pmodel);\n uniforms.model = pmodel;\n var u = (i + 1) % 3;\n var v = (i + 2) % 3;\n var du = zeroVec(U_VEC);\n var dv2 = zeroVec(V_VEC);\n du[u] = 1;\n dv2[v] = 1;\n var mdu = project(projection, view, model, augment(MU_VEC, du));\n var mdv = project(projection, view, model, augment(MV_VEC, dv2));\n if (Math.abs(mdu[1]) > Math.abs(mdv[1])) {\n var tmp = mdu;\n mdu = mdv;\n mdv = tmp;\n tmp = du;\n du = dv2;\n dv2 = tmp;\n var t = u;\n u = v;\n v = t;\n }\n if (mdu[0] < 0) {\n du[u] = -1;\n }\n if (mdv[1] > 0) {\n dv2[v] = -1;\n }\n var su = 0;\n var sv = 0;\n for (var j = 0; j < 4; ++j) {\n su += Math.pow(model[4 * u + j], 2);\n sv += Math.pow(model[4 * v + j], 2);\n }\n du[u] /= Math.sqrt(su);\n dv2[v] /= Math.sqrt(sv);\n uniforms.axes[0] = du;\n uniforms.axes[1] = dv2;\n uniforms.fragClipBounds[0] = setComponent(SCRATCH_VEC, clipBounds[0], i, -1e8);\n uniforms.fragClipBounds[1] = setComponent(SCRATCH_VEC, clipBounds[1], i, 1e8);\n points.vao.bind();\n points.vao.draw(gl2.TRIANGLES, points.vertexCount);\n if (points.lineWidth > 0) {\n gl2.lineWidth(points.lineWidth * pixelRatio);\n points.vao.draw(gl2.LINES, points.lineVertexCount, points.vertexCount);\n }\n points.vao.unbind();\n }\n }\n var NEG_INFINITY3 = [-1e8, -1e8, -1e8];\n var POS_INFINITY3 = [1e8, 1e8, 1e8];\n var CLIP_GROUP = [NEG_INFINITY3, POS_INFINITY3];\n function drawFull(shader, pshader, points, camera, pixelRatio, transparent, forceDraw) {\n var gl2 = points.gl;\n if (transparent === points.projectHasAlpha || forceDraw) {\n drawProject(pshader, points, camera, pixelRatio);\n }\n if (transparent === points.hasAlpha || forceDraw) {\n shader.bind();\n var uniforms = shader.uniforms;\n uniforms.model = camera.model || IDENTITY;\n uniforms.view = camera.view || IDENTITY;\n uniforms.projection = camera.projection || IDENTITY;\n VIEW_SHAPE[0] = 2 / gl2.drawingBufferWidth;\n VIEW_SHAPE[1] = 2 / gl2.drawingBufferHeight;\n uniforms.screenSize = VIEW_SHAPE;\n uniforms.highlightId = points.highlightId;\n uniforms.highlightScale = points.highlightScale;\n uniforms.fragClipBounds = CLIP_GROUP;\n uniforms.clipBounds = points.axes.bounds;\n uniforms.opacity = points.opacity;\n uniforms.pickGroup = points.pickId / 255;\n uniforms.pixelRatio = pixelRatio;\n points.vao.bind();\n points.vao.draw(gl2.TRIANGLES, points.vertexCount);\n if (points.lineWidth > 0) {\n gl2.lineWidth(points.lineWidth * pixelRatio);\n points.vao.draw(gl2.LINES, points.lineVertexCount, points.vertexCount);\n }\n points.vao.unbind();\n }\n }\n proto.draw = function(camera) {\n var shader = this.useOrtho ? this.orthoShader : this.shader;\n drawFull(shader, this.projectShader, this, camera, this.pixelRatio, false, false);\n };\n proto.drawTransparent = function(camera) {\n var shader = this.useOrtho ? this.orthoShader : this.shader;\n drawFull(shader, this.projectShader, this, camera, this.pixelRatio, true, false);\n };\n proto.drawPick = function(camera) {\n var shader = this.useOrtho ? this.pickOrthoShader : this.pickPerspectiveShader;\n drawFull(shader, this.pickProjectShader, this, camera, 1, true, true);\n };\n proto.pick = function(selected) {\n if (!selected) {\n return null;\n }\n if (selected.id !== this.pickId) {\n return null;\n }\n var x = selected.value[2] + (selected.value[1] << 8) + (selected.value[0] << 16);\n if (x >= this.pointCount || x < 0) {\n return null;\n }\n var coord = this.points[x];\n var result = this._selectResult;\n result.index = x;\n for (var i = 0; i < 3; ++i) {\n result.position[i] = result.dataCoordinate[i] = coord[i];\n }\n return result;\n };\n proto.highlight = function(selection) {\n if (!selection) {\n this.highlightId = [1, 1, 1, 1];\n } else {\n var pointId = selection.index;\n var a0 = pointId & 255;\n var a1 = pointId >> 8 & 255;\n var a2 = pointId >> 16 & 255;\n this.highlightId = [a0 / 255, a1 / 255, a2 / 255, 0];\n }\n };\n function get_glyphData(glyphs, index, font, pixelRatio) {\n var str;\n if (isArrayOrTypedArray(glyphs)) {\n if (index < glyphs.length) {\n str = glyphs[index];\n } else {\n str = void 0;\n }\n } else {\n str = glyphs;\n }\n str = getSimpleString(str);\n var visible = true;\n if (isAllBlank(str)) {\n str = \"\\u25BC\";\n visible = false;\n }\n if (!font) font = {};\n var family = font.family;\n if (isArrayOrTypedArray(family)) family = family[index];\n if (!family) family = \"normal\";\n var weight = font.weight;\n if (isArrayOrTypedArray(weight)) weight = weight[index];\n if (!weight) weight = \"normal\";\n var style = font.style;\n if (isArrayOrTypedArray(style)) style = style[index];\n if (!style) style = \"normal\";\n var variant = font.variant;\n if (isArrayOrTypedArray(variant)) variant = variant[index];\n if (!variant) variant = \"normal\";\n var glyph = getGlyph(str, {\n family,\n weight,\n style,\n variant\n }, pixelRatio);\n var glyph = getGlyph(str, font, pixelRatio);\n return {\n mesh: glyph[0],\n lines: glyph[1],\n bounds: glyph[2],\n visible\n };\n }\n proto.update = function(options) {\n options = options || {};\n if (\"perspective\" in options) {\n this.useOrtho = !options.perspective;\n }\n if (\"orthographic\" in options) {\n this.useOrtho = !!options.orthographic;\n }\n if (\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth;\n }\n if (\"project\" in options) {\n if (isArrayOrTypedArray(options.project)) {\n this.axesProject = options.project;\n } else {\n var v = !!options.project;\n this.axesProject = [v, v, v];\n }\n }\n if (\"projectScale\" in options) {\n if (isArrayOrTypedArray(options.projectScale)) {\n this.projectScale = options.projectScale.slice();\n } else {\n var s = +options.projectScale;\n this.projectScale = [s, s, s];\n }\n }\n this.projectHasAlpha = false;\n if (\"projectOpacity\" in options) {\n if (isArrayOrTypedArray(options.projectOpacity)) {\n this.projectOpacity = options.projectOpacity.slice();\n } else {\n var s = +options.projectOpacity;\n this.projectOpacity = [s, s, s];\n }\n for (var i = 0; i < 3; ++i) {\n this.projectOpacity[i] = fixOpacity(this.projectOpacity[i]);\n if (this.projectOpacity[i] < 1) {\n this.projectHasAlpha = true;\n }\n }\n }\n this.hasAlpha = false;\n if (\"opacity\" in options) {\n this.opacity = fixOpacity(options.opacity);\n if (this.opacity < 1) {\n this.hasAlpha = true;\n }\n }\n this.dirty = true;\n var points = options.position;\n var font = {\n family: options.font || \"normal\",\n style: options.fontStyle || \"normal\",\n weight: options.fontWeight || \"normal\",\n variant: options.fontVariant || \"normal\"\n };\n var alignment = options.alignment || [0, 0];\n var alignmentX;\n var alignmentY;\n if (alignment.length === 2) {\n alignmentX = alignment[0];\n alignmentY = alignment[1];\n } else {\n alignmentX = [];\n alignmentY = [];\n for (var i = 0; i < alignment.length; ++i) {\n alignmentX[i] = alignment[i][0];\n alignmentY[i] = alignment[i][1];\n }\n }\n var lowerBound = [Infinity, Infinity, Infinity];\n var upperBound = [-Infinity, -Infinity, -Infinity];\n var glyphs = options.glyph;\n var colors = options.color;\n var sizes = options.size;\n var angles = options.angle;\n var lineColors = options.lineColor;\n var pickCounter = -1;\n var triVertexCount = 0;\n var lineVertexCount = 0;\n var numPoints = 0;\n if (points.length) {\n numPoints = points.length;\n count_loop:\n for (var i = 0; i < numPoints; ++i) {\n var x = points[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(x[j]) || !isFinite(x[j])) {\n continue count_loop;\n }\n }\n var glyphData = get_glyphData(glyphs, i, font, this.pixelRatio);\n var glyphMesh = glyphData.mesh;\n var glyphLines = glyphData.lines;\n var glyphBounds = glyphData.bounds;\n triVertexCount += glyphMesh.cells.length * 3;\n lineVertexCount += glyphLines.edges.length * 2;\n }\n }\n var vertexCount = triVertexCount + lineVertexCount;\n var positionArray = pool.mallocFloat(3 * vertexCount);\n var colorArray = pool.mallocFloat(4 * vertexCount);\n var glyphArray = pool.mallocFloat(2 * vertexCount);\n var idArray = pool.mallocUint32(vertexCount);\n if (vertexCount > 0) {\n var triOffset = 0;\n var lineOffset = triVertexCount;\n var color2 = [0, 0, 0, 1];\n var lineColor = [0, 0, 0, 1];\n var isColorArray = isArrayOrTypedArray(colors) && isArrayOrTypedArray(colors[0]);\n var isLineColorArray = isArrayOrTypedArray(lineColors) && isArrayOrTypedArray(lineColors[0]);\n fill_loop:\n for (var i = 0; i < numPoints; ++i) {\n pickCounter += 1;\n var x = points[i];\n for (var j = 0; j < 3; ++j) {\n if (isNaN(x[j]) || !isFinite(x[j])) {\n continue fill_loop;\n }\n upperBound[j] = Math.max(upperBound[j], x[j]);\n lowerBound[j] = Math.min(lowerBound[j], x[j]);\n }\n var glyphData = get_glyphData(glyphs, i, font, this.pixelRatio);\n var glyphMesh = glyphData.mesh;\n var glyphLines = glyphData.lines;\n var glyphBounds = glyphData.bounds;\n var glyphVisible = glyphData.visible;\n if (!glyphVisible) color2 = [1, 1, 1, 0];\n else if (isArrayOrTypedArray(colors)) {\n var c;\n if (isColorArray) {\n if (i < colors.length) {\n c = colors[i];\n } else {\n c = [0, 0, 0, 0];\n }\n } else {\n c = colors;\n }\n if (c.length === 3) {\n for (var j = 0; j < 3; ++j) {\n color2[j] = c[j];\n }\n color2[3] = 1;\n } else if (c.length === 4) {\n for (var j = 0; j < 4; ++j) {\n color2[j] = c[j];\n }\n if (!this.hasAlpha && c[3] < 1) this.hasAlpha = true;\n }\n } else {\n color2[0] = color2[1] = color2[2] = 0;\n color2[3] = 1;\n }\n if (!glyphVisible) lineColor = [1, 1, 1, 0];\n else if (isArrayOrTypedArray(lineColors)) {\n var c;\n if (isLineColorArray) {\n if (i < lineColors.length) {\n c = lineColors[i];\n } else {\n c = [0, 0, 0, 0];\n }\n } else {\n c = lineColors;\n }\n if (c.length === 3) {\n for (var j = 0; j < 3; ++j) {\n lineColor[j] = c[j];\n }\n lineColor[j] = 1;\n } else if (c.length === 4) {\n for (var j = 0; j < 4; ++j) {\n lineColor[j] = c[j];\n }\n if (!this.hasAlpha && c[3] < 1) this.hasAlpha = true;\n }\n } else {\n lineColor[0] = lineColor[1] = lineColor[2] = 0;\n lineColor[3] = 1;\n }\n var size = 0.5;\n if (!glyphVisible) size = 0;\n else if (isArrayOrTypedArray(sizes)) {\n if (i < sizes.length) {\n size = +sizes[i];\n } else {\n size = 12;\n }\n } else if (sizes) {\n size = +sizes;\n } else if (this.useOrtho) {\n size = 12;\n }\n var angle = 0;\n if (isArrayOrTypedArray(angles)) {\n if (i < angles.length) {\n angle = +angles[i];\n } else {\n angle = 0;\n }\n } else if (angles) {\n angle = +angles;\n }\n var cos = Math.cos(angle);\n var sin = Math.sin(angle);\n var x = points[i];\n for (var j = 0; j < 3; ++j) {\n upperBound[j] = Math.max(upperBound[j], x[j]);\n lowerBound[j] = Math.min(lowerBound[j], x[j]);\n }\n var textOffsetX = alignmentX;\n var textOffsetY = alignmentY;\n var textOffsetX = 0;\n if (isArrayOrTypedArray(alignmentX)) {\n if (i < alignmentX.length) {\n textOffsetX = alignmentX[i];\n } else {\n textOffsetX = 0;\n }\n } else if (alignmentX) {\n textOffsetX = alignmentX;\n }\n var textOffsetY = 0;\n if (isArrayOrTypedArray(alignmentY)) {\n if (i < alignmentY.length) {\n textOffsetY = alignmentY[i];\n } else {\n textOffsetY = 0;\n }\n } else if (alignmentY) {\n textOffsetY = alignmentY;\n }\n textOffsetX *= textOffsetX > 0 ? 1 - glyphBounds[0][0] : textOffsetX < 0 ? 1 + glyphBounds[1][0] : 1;\n textOffsetY *= textOffsetY > 0 ? 1 - glyphBounds[0][1] : textOffsetY < 0 ? 1 + glyphBounds[1][1] : 1;\n var textOffset = [textOffsetX, textOffsetY];\n var cells = glyphMesh.cells || [];\n var verts = glyphMesh.positions || [];\n for (var j = 0; j < cells.length; ++j) {\n var cell = cells[j];\n for (var k = 0; k < 3; ++k) {\n for (var l = 0; l < 3; ++l) {\n positionArray[3 * triOffset + l] = x[l];\n }\n for (var l = 0; l < 4; ++l) {\n colorArray[4 * triOffset + l] = color2[l];\n }\n idArray[triOffset] = pickCounter;\n var p = verts[cell[k]];\n glyphArray[2 * triOffset] = size * (cos * p[0] - sin * p[1] + textOffset[0]);\n glyphArray[2 * triOffset + 1] = size * (sin * p[0] + cos * p[1] + textOffset[1]);\n triOffset += 1;\n }\n }\n var cells = glyphLines.edges;\n var verts = glyphLines.positions;\n for (var j = 0; j < cells.length; ++j) {\n var cell = cells[j];\n for (var k = 0; k < 2; ++k) {\n for (var l = 0; l < 3; ++l) {\n positionArray[3 * lineOffset + l] = x[l];\n }\n for (var l = 0; l < 4; ++l) {\n colorArray[4 * lineOffset + l] = lineColor[l];\n }\n idArray[lineOffset] = pickCounter;\n var p = verts[cell[k]];\n glyphArray[2 * lineOffset] = size * (cos * p[0] - sin * p[1] + textOffset[0]);\n glyphArray[2 * lineOffset + 1] = size * (sin * p[0] + cos * p[1] + textOffset[1]);\n lineOffset += 1;\n }\n }\n }\n }\n this.bounds = [lowerBound, upperBound];\n this.points = points;\n this.pointCount = points.length;\n this.vertexCount = triVertexCount;\n this.lineVertexCount = lineVertexCount;\n this.pointBuffer.update(positionArray);\n this.colorBuffer.update(colorArray);\n this.glyphBuffer.update(glyphArray);\n this.idBuffer.update(idArray);\n pool.free(positionArray);\n pool.free(colorArray);\n pool.free(glyphArray);\n pool.free(idArray);\n };\n proto.dispose = function() {\n this.shader.dispose();\n this.orthoShader.dispose();\n this.pickPerspectiveShader.dispose();\n this.pickOrthoShader.dispose();\n this.vao.dispose();\n this.pointBuffer.dispose();\n this.colorBuffer.dispose();\n this.glyphBuffer.dispose();\n this.idBuffer.dispose();\n };\n function createPointCloud(options) {\n var gl2 = options.gl;\n var shader = shaders.createPerspective(gl2);\n var orthoShader = shaders.createOrtho(gl2);\n var projectShader = shaders.createProject(gl2);\n var pickPerspectiveShader = shaders.createPickPerspective(gl2);\n var pickOrthoShader = shaders.createPickOrtho(gl2);\n var pickProjectShader = shaders.createPickProject(gl2);\n var pointBuffer = createBuffer(gl2);\n var colorBuffer = createBuffer(gl2);\n var glyphBuffer = createBuffer(gl2);\n var idBuffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n buffer: pointBuffer,\n size: 3,\n type: gl2.FLOAT\n },\n {\n buffer: colorBuffer,\n size: 4,\n type: gl2.FLOAT\n },\n {\n buffer: glyphBuffer,\n size: 2,\n type: gl2.FLOAT\n },\n {\n buffer: idBuffer,\n size: 4,\n type: gl2.UNSIGNED_BYTE,\n normalized: true\n }\n ]);\n var pointCloud = new PointCloud(\n gl2,\n shader,\n orthoShader,\n projectShader,\n pointBuffer,\n colorBuffer,\n glyphBuffer,\n idBuffer,\n vao,\n pickPerspectiveShader,\n pickOrthoShader,\n pickProjectShader\n );\n pointCloud.update(options);\n return pointCloud;\n }\n }\n ),\n /***/\n 3589: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createSelectBuffer;\n var createFBO = __webpack_require__2(2260);\n var pool = __webpack_require__2(1888);\n var ndarray = __webpack_require__2(9618);\n var nextPow2 = __webpack_require__2(8828).nextPow2;\n var selectRange = function(arr, x, y) {\n var closestD2 = 1e8;\n var closestX = -1;\n var closestY = -1;\n var ni = arr.shape[0];\n var nj = arr.shape[1];\n for (var i = 0; i < ni; i++) {\n for (var j = 0; j < nj; j++) {\n var r = arr.get(i, j, 0);\n var g = arr.get(i, j, 1);\n var b = arr.get(i, j, 2);\n var a = arr.get(i, j, 3);\n if (r < 255 || g < 255 || b < 255 || a < 255) {\n var dx = x - i;\n var dy = y - j;\n var d2 = dx * dx + dy * dy;\n if (d2 < closestD2) {\n closestD2 = d2;\n closestX = i;\n closestY = j;\n }\n }\n }\n }\n return [closestX, closestY, closestD2];\n };\n function SelectResult(x, y, id, value, distance) {\n this.coord = [x, y];\n this.id = id;\n this.value = value;\n this.distance = distance;\n }\n function SelectBuffer(gl2, fbo, buffer) {\n this.gl = gl2;\n this.fbo = fbo;\n this.buffer = buffer;\n this._readTimeout = null;\n var self2 = this;\n this._readCallback = function() {\n if (!self2.gl) {\n return;\n }\n fbo.bind();\n gl2.readPixels(0, 0, fbo.shape[0], fbo.shape[1], gl2.RGBA, gl2.UNSIGNED_BYTE, self2.buffer);\n self2._readTimeout = null;\n };\n }\n var proto = SelectBuffer.prototype;\n Object.defineProperty(proto, \"shape\", {\n get: function() {\n if (!this.gl) {\n return [0, 0];\n }\n return this.fbo.shape.slice();\n },\n set: function(v) {\n if (!this.gl) {\n return;\n }\n this.fbo.shape = v;\n var c = this.fbo.shape[0];\n var r = this.fbo.shape[1];\n if (r * c * 4 > this.buffer.length) {\n pool.free(this.buffer);\n var buffer = this.buffer = pool.mallocUint8(nextPow2(r * c * 4));\n for (var i = 0; i < r * c * 4; ++i) {\n buffer[i] = 255;\n }\n }\n return v;\n }\n });\n proto.begin = function() {\n var gl2 = this.gl;\n var shape = this.shape;\n if (!gl2) {\n return;\n }\n this.fbo.bind();\n gl2.clearColor(1, 1, 1, 1);\n gl2.clear(gl2.COLOR_BUFFER_BIT | gl2.DEPTH_BUFFER_BIT);\n };\n proto.end = function() {\n var gl2 = this.gl;\n if (!gl2) {\n return;\n }\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n if (!this._readTimeout) {\n clearTimeout(this._readTimeout);\n }\n this._readTimeout = setTimeout(this._readCallback, 1);\n };\n proto.query = function(x, y, radius) {\n if (!this.gl) {\n return null;\n }\n var shape = this.fbo.shape.slice();\n x = x | 0;\n y = y | 0;\n if (typeof radius !== \"number\") {\n radius = 1;\n }\n var x0 = Math.min(Math.max(x - radius, 0), shape[0]) | 0;\n var x1 = Math.min(Math.max(x + radius, 0), shape[0]) | 0;\n var y0 = Math.min(Math.max(y - radius, 0), shape[1]) | 0;\n var y1 = Math.min(Math.max(y + radius, 0), shape[1]) | 0;\n if (x1 <= x0 || y1 <= y0) {\n return null;\n }\n var dims = [x1 - x0, y1 - y0];\n var region = ndarray(\n this.buffer,\n [dims[0], dims[1], 4],\n [4, shape[0] * 4, 1],\n 4 * (x0 + shape[0] * y0)\n );\n var closest = selectRange(region.hi(dims[0], dims[1], 1), radius, radius);\n var dx = closest[0];\n var dy = closest[1];\n if (dx < 0 || Math.pow(this.radius, 2) < closest[2]) {\n return null;\n }\n var c0 = region.get(dx, dy, 0);\n var c1 = region.get(dx, dy, 1);\n var c2 = region.get(dx, dy, 2);\n var c3 = region.get(dx, dy, 3);\n return new SelectResult(\n dx + x0 | 0,\n dy + y0 | 0,\n c0,\n [c1, c2, c3],\n Math.sqrt(closest[2])\n );\n };\n proto.dispose = function() {\n if (!this.gl) {\n return;\n }\n this.fbo.dispose();\n pool.free(this.buffer);\n this.gl = null;\n if (this._readTimeout) {\n clearTimeout(this._readTimeout);\n }\n };\n function createSelectBuffer(gl2, shape) {\n var width = shape[0];\n var height = shape[1];\n var options = {};\n var fbo = createFBO(gl2, width, height, options);\n var buffer = pool.mallocUint8(width * height * 4);\n return new SelectBuffer(gl2, fbo, buffer);\n }\n }\n ),\n /***/\n 9405: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createUniformWrapper = __webpack_require__2(3327);\n var createAttributeWrapper = __webpack_require__2(8731);\n var makeReflect = __webpack_require__2(216);\n var shaderCache = __webpack_require__2(5091);\n var runtime = __webpack_require__2(2145);\n var GLError = __webpack_require__2(8866);\n function Shader(gl2) {\n this.gl = gl2;\n this.gl.lastAttribCount = 0;\n this._vref = this._fref = this._relink = this.vertShader = this.fragShader = this.program = this.attributes = this.uniforms = this.types = null;\n }\n var proto = Shader.prototype;\n proto.bind = function() {\n if (!this.program) {\n this._relink();\n }\n var i;\n var newAttribCount = this.gl.getProgramParameter(this.program, this.gl.ACTIVE_ATTRIBUTES);\n var oldAttribCount = this.gl.lastAttribCount;\n if (newAttribCount > oldAttribCount) {\n for (i = oldAttribCount; i < newAttribCount; i++) {\n this.gl.enableVertexAttribArray(i);\n }\n } else if (oldAttribCount > newAttribCount) {\n for (i = newAttribCount; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i);\n }\n }\n this.gl.lastAttribCount = newAttribCount;\n this.gl.useProgram(this.program);\n };\n proto.dispose = function() {\n var oldAttribCount = this.gl.lastAttribCount;\n for (var i = 0; i < oldAttribCount; i++) {\n this.gl.disableVertexAttribArray(i);\n }\n this.gl.lastAttribCount = 0;\n if (this._fref) {\n this._fref.dispose();\n }\n if (this._vref) {\n this._vref.dispose();\n }\n this.attributes = this.types = this.vertShader = this.fragShader = this.program = this._relink = this._fref = this._vref = null;\n };\n function compareAttributes(a, b) {\n if (a.name < b.name) {\n return -1;\n }\n return 1;\n }\n proto.update = function(vertSource, fragSource, uniforms, attributes) {\n if (!fragSource || arguments.length === 1) {\n var obj = vertSource;\n vertSource = obj.vertex;\n fragSource = obj.fragment;\n uniforms = obj.uniforms;\n attributes = obj.attributes;\n }\n var wrapper = this;\n var gl2 = wrapper.gl;\n var pvref = wrapper._vref;\n wrapper._vref = shaderCache.shader(gl2, gl2.VERTEX_SHADER, vertSource);\n if (pvref) {\n pvref.dispose();\n }\n wrapper.vertShader = wrapper._vref.shader;\n var pfref = this._fref;\n wrapper._fref = shaderCache.shader(gl2, gl2.FRAGMENT_SHADER, fragSource);\n if (pfref) {\n pfref.dispose();\n }\n wrapper.fragShader = wrapper._fref.shader;\n if (!uniforms || !attributes) {\n var testProgram = gl2.createProgram();\n gl2.attachShader(testProgram, wrapper.fragShader);\n gl2.attachShader(testProgram, wrapper.vertShader);\n gl2.linkProgram(testProgram);\n if (!gl2.getProgramParameter(testProgram, gl2.LINK_STATUS)) {\n var errLog = gl2.getProgramInfoLog(testProgram);\n throw new GLError(errLog, \"Error linking program:\" + errLog);\n }\n uniforms = uniforms || runtime.uniforms(gl2, testProgram);\n attributes = attributes || runtime.attributes(gl2, testProgram);\n gl2.deleteProgram(testProgram);\n }\n attributes = attributes.slice();\n attributes.sort(compareAttributes);\n var attributeUnpacked = [];\n var attributeNames = [];\n var attributeLocations = [];\n var i;\n for (i = 0; i < attributes.length; ++i) {\n var attr = attributes[i];\n if (attr.type.indexOf(\"mat\") >= 0) {\n var size = attr.type.charAt(attr.type.length - 1) | 0;\n var locVector = new Array(size);\n for (var j = 0; j < size; ++j) {\n locVector[j] = attributeLocations.length;\n attributeNames.push(attr.name + \"[\" + j + \"]\");\n if (typeof attr.location === \"number\") {\n attributeLocations.push(attr.location + j);\n } else if (Array.isArray(attr.location) && attr.location.length === size && typeof attr.location[j] === \"number\") {\n attributeLocations.push(attr.location[j] | 0);\n } else {\n attributeLocations.push(-1);\n }\n }\n attributeUnpacked.push({\n name: attr.name,\n type: attr.type,\n locations: locVector\n });\n } else {\n attributeUnpacked.push({\n name: attr.name,\n type: attr.type,\n locations: [attributeLocations.length]\n });\n attributeNames.push(attr.name);\n if (typeof attr.location === \"number\") {\n attributeLocations.push(attr.location | 0);\n } else {\n attributeLocations.push(-1);\n }\n }\n }\n var curLocation = 0;\n for (i = 0; i < attributeLocations.length; ++i) {\n if (attributeLocations[i] < 0) {\n while (attributeLocations.indexOf(curLocation) >= 0) {\n curLocation += 1;\n }\n attributeLocations[i] = curLocation;\n }\n }\n var uniformLocations = new Array(uniforms.length);\n function relink() {\n wrapper.program = shaderCache.program(\n gl2,\n wrapper._vref,\n wrapper._fref,\n attributeNames,\n attributeLocations\n );\n for (var i2 = 0; i2 < uniforms.length; ++i2) {\n uniformLocations[i2] = gl2.getUniformLocation(\n wrapper.program,\n uniforms[i2].name\n );\n }\n }\n relink();\n wrapper._relink = relink;\n wrapper.types = {\n uniforms: makeReflect(uniforms),\n attributes: makeReflect(attributes)\n };\n wrapper.attributes = createAttributeWrapper(\n gl2,\n wrapper,\n attributeUnpacked,\n attributeLocations\n );\n Object.defineProperty(wrapper, \"uniforms\", createUniformWrapper(\n gl2,\n wrapper,\n uniforms,\n uniformLocations\n ));\n };\n function createShader(gl2, vertSource, fragSource, uniforms, attributes) {\n var shader = new Shader(gl2);\n shader.update(\n vertSource,\n fragSource,\n uniforms,\n attributes\n );\n return shader;\n }\n module2.exports = createShader;\n }\n ),\n /***/\n 8866: (\n /***/\n function(module2) {\n function GLError(rawError, shortMessage, longMessage) {\n this.shortMessage = shortMessage || \"\";\n this.longMessage = longMessage || \"\";\n this.rawError = rawError || \"\";\n this.message = \"gl-shader: \" + (shortMessage || rawError || \"\") + (longMessage ? \"\\n\" + longMessage : \"\");\n this.stack = new Error().stack;\n }\n GLError.prototype = new Error();\n GLError.prototype.name = \"GLError\";\n GLError.prototype.constructor = GLError;\n module2.exports = GLError;\n }\n ),\n /***/\n 8731: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createAttributeWrapper;\n var GLError = __webpack_require__2(8866);\n function ShaderAttribute(gl2, wrapper, index, locations, dimension, constFunc) {\n this._gl = gl2;\n this._wrapper = wrapper;\n this._index = index;\n this._locations = locations;\n this._dimension = dimension;\n this._constFunc = constFunc;\n }\n var proto = ShaderAttribute.prototype;\n proto.pointer = function setAttribPointer(type, normalized, stride, offset) {\n var self2 = this;\n var gl2 = self2._gl;\n var location2 = self2._locations[self2._index];\n gl2.vertexAttribPointer(\n location2,\n self2._dimension,\n type || gl2.FLOAT,\n !!normalized,\n stride || 0,\n offset || 0\n );\n gl2.enableVertexAttribArray(location2);\n };\n proto.set = function(x0, x1, x2, x3) {\n return this._constFunc(this._locations[this._index], x0, x1, x2, x3);\n };\n Object.defineProperty(proto, \"location\", {\n get: function() {\n return this._locations[this._index];\n },\n set: function(v) {\n if (v !== this._locations[this._index]) {\n this._locations[this._index] = v | 0;\n this._wrapper.program = null;\n }\n return v | 0;\n }\n });\n var allFns = [\n function(gl2, v, x0) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib1f(v, x0);\n } else {\n return gl2.vertexAttrib1fv(v, x0);\n }\n },\n function(gl2, v, x0, x1) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib2f(v, x0, x1);\n } else {\n return gl2.vertexAttrib2fv(v, x0);\n }\n },\n function(gl2, v, x0, x1, x2) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib3f(v, x0, x1, x2);\n } else {\n return gl2.vertexAttrib3fv(v, x0);\n }\n },\n function(gl2, v, x0, x1, x2, x3) {\n if (x0.length === void 0) {\n return gl2.vertexAttrib4f(v, x0, x1, x2, x3);\n } else {\n return gl2.vertexAttrib4fv(v, x0);\n }\n }\n ];\n function addVectorAttribute(gl2, wrapper, index, locations, dimension, obj, name2) {\n var constFunc = allFns[dimension];\n var attr = new ShaderAttribute(\n gl2,\n wrapper,\n index,\n locations,\n dimension,\n constFunc\n );\n Object.defineProperty(obj, name2, {\n set: function(x) {\n gl2.disableVertexAttribArray(locations[index]);\n constFunc(gl2, locations[index], x);\n return x;\n },\n get: function() {\n return attr;\n },\n enumerable: true\n });\n }\n function addMatrixAttribute(gl2, wrapper, index, locations, dimension, obj, name2) {\n var parts = new Array(dimension);\n var attrs = new Array(dimension);\n for (var i = 0; i < dimension; ++i) {\n addVectorAttribute(\n gl2,\n wrapper,\n index[i],\n locations,\n dimension,\n parts,\n i\n );\n attrs[i] = parts[i];\n }\n Object.defineProperty(parts, \"location\", {\n set: function(v) {\n if (Array.isArray(v)) {\n for (var i2 = 0; i2 < dimension; ++i2) {\n attrs[i2].location = v[i2];\n }\n } else {\n for (var i2 = 0; i2 < dimension; ++i2) {\n attrs[i2].location = v + i2;\n }\n }\n return v;\n },\n get: function() {\n var result = new Array(dimension);\n for (var i2 = 0; i2 < dimension; ++i2) {\n result[i2] = locations[index[i2]];\n }\n return result;\n },\n enumerable: true\n });\n parts.pointer = function(type, normalized, stride, offset) {\n type = type || gl2.FLOAT;\n normalized = !!normalized;\n stride = stride || dimension * dimension;\n offset = offset || 0;\n for (var i2 = 0; i2 < dimension; ++i2) {\n var location2 = locations[index[i2]];\n gl2.vertexAttribPointer(\n location2,\n dimension,\n type,\n normalized,\n stride,\n offset + i2 * dimension\n );\n gl2.enableVertexAttribArray(location2);\n }\n };\n var scratch = new Array(dimension);\n var vertexAttrib = gl2[\"vertexAttrib\" + dimension + \"fv\"];\n Object.defineProperty(obj, name2, {\n set: function(x) {\n for (var i2 = 0; i2 < dimension; ++i2) {\n var loc = locations[index[i2]];\n gl2.disableVertexAttribArray(loc);\n if (Array.isArray(x[0])) {\n vertexAttrib.call(gl2, loc, x[i2]);\n } else {\n for (var j = 0; j < dimension; ++j) {\n scratch[j] = x[dimension * i2 + j];\n }\n vertexAttrib.call(gl2, loc, scratch);\n }\n }\n return x;\n },\n get: function() {\n return parts;\n },\n enumerable: true\n });\n }\n function createAttributeWrapper(gl2, wrapper, attributes, locations) {\n var obj = {};\n for (var i = 0, n = attributes.length; i < n; ++i) {\n var a = attributes[i];\n var name2 = a.name;\n var type = a.type;\n var locs = a.locations;\n switch (type) {\n case \"bool\":\n case \"int\":\n case \"float\":\n addVectorAttribute(\n gl2,\n wrapper,\n locs[0],\n locations,\n 1,\n obj,\n name2\n );\n break;\n default:\n if (type.indexOf(\"vec\") >= 0) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type for attribute \" + name2 + \": \" + type);\n }\n addVectorAttribute(\n gl2,\n wrapper,\n locs[0],\n locations,\n d,\n obj,\n name2\n );\n } else if (type.indexOf(\"mat\") >= 0) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type for attribute \" + name2 + \": \" + type);\n }\n addMatrixAttribute(\n gl2,\n wrapper,\n locs,\n locations,\n d,\n obj,\n name2\n );\n } else {\n throw new GLError(\"\", \"Unknown data type for attribute \" + name2 + \": \" + type);\n }\n break;\n }\n }\n return obj;\n }\n }\n ),\n /***/\n 3327: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var coallesceUniforms = __webpack_require__2(216);\n var GLError = __webpack_require__2(8866);\n module2.exports = createUniformWrapper;\n function identity2(x) {\n return function() {\n return x;\n };\n }\n function makeVector(length, fill) {\n var result = new Array(length);\n for (var i = 0; i < length; ++i) {\n result[i] = fill;\n }\n return result;\n }\n function createUniformWrapper(gl2, wrapper, uniforms, locations) {\n function makeGetter(idx) {\n return function(gl3, wrapper2, locations2) {\n return gl3.getUniform(wrapper2.program, locations2[idx]);\n };\n }\n function makeSetter(type) {\n return function updateProperty(obj) {\n var indices = enumerateIndices(\"\", type);\n for (var i = 0; i < indices.length; ++i) {\n var item = indices[i];\n var path = item[0];\n var idx = item[1];\n if (locations[idx]) {\n var objPath = obj;\n if (typeof path === \"string\" && (path.indexOf(\".\") === 0 || path.indexOf(\"[\") === 0)) {\n var key = path;\n if (path.indexOf(\".\") === 0) {\n key = path.slice(1);\n }\n if (key.indexOf(\"]\") === key.length - 1) {\n var j = key.indexOf(\"[\");\n var k1 = key.slice(0, j);\n var k2 = key.slice(j + 1, key.length - 1);\n objPath = k1 ? obj[k1][k2] : obj[k2];\n } else {\n objPath = obj[key];\n }\n }\n var t = uniforms[idx].type;\n var d;\n switch (t) {\n case \"bool\":\n case \"int\":\n case \"sampler2D\":\n case \"samplerCube\":\n gl2.uniform1i(locations[idx], objPath);\n break;\n case \"float\":\n gl2.uniform1f(locations[idx], objPath);\n break;\n default:\n var vidx = t.indexOf(\"vec\");\n if (0 <= vidx && vidx <= 1 && t.length === 4 + vidx) {\n d = t.charCodeAt(t.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type\");\n }\n switch (t.charAt(0)) {\n case \"b\":\n case \"i\":\n gl2[\"uniform\" + d + \"iv\"](locations[idx], objPath);\n break;\n case \"v\":\n gl2[\"uniform\" + d + \"fv\"](locations[idx], objPath);\n break;\n default:\n throw new GLError(\"\", \"Unrecognized data type for vector \" + name + \": \" + t);\n }\n } else if (t.indexOf(\"mat\") === 0 && t.length === 4) {\n d = t.charCodeAt(t.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid uniform dimension type for matrix \" + name + \": \" + t);\n }\n gl2[\"uniformMatrix\" + d + \"fv\"](locations[idx], false, objPath);\n break;\n } else {\n throw new GLError(\"\", \"Unknown uniform data type for \" + name + \": \" + t);\n }\n }\n }\n }\n };\n }\n function enumerateIndices(prefix, type) {\n if (typeof type !== \"object\") {\n return [[prefix, type]];\n }\n var indices = [];\n for (var id in type) {\n var prop = type[id];\n var tprefix = prefix;\n if (parseInt(id) + \"\" === id) {\n tprefix += \"[\" + id + \"]\";\n } else {\n tprefix += \".\" + id;\n }\n if (typeof prop === \"object\") {\n indices.push.apply(indices, enumerateIndices(tprefix, prop));\n } else {\n indices.push([tprefix, prop]);\n }\n }\n return indices;\n }\n function defaultValue(type) {\n switch (type) {\n case \"bool\":\n return false;\n case \"int\":\n case \"sampler2D\":\n case \"samplerCube\":\n return 0;\n case \"float\":\n return 0;\n default:\n var vidx = type.indexOf(\"vec\");\n if (0 <= vidx && vidx <= 1 && type.length === 4 + vidx) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid data type\");\n }\n if (type.charAt(0) === \"b\") {\n return makeVector(d, false);\n }\n return makeVector(d, 0);\n } else if (type.indexOf(\"mat\") === 0 && type.length === 4) {\n var d = type.charCodeAt(type.length - 1) - 48;\n if (d < 2 || d > 4) {\n throw new GLError(\"\", \"Invalid uniform dimension type for matrix \" + name + \": \" + type);\n }\n return makeVector(d * d, 0);\n } else {\n throw new GLError(\"\", \"Unknown uniform data type for \" + name + \": \" + type);\n }\n }\n }\n function storeProperty(obj, prop, type) {\n if (typeof type === \"object\") {\n var child = processObject(type);\n Object.defineProperty(obj, prop, {\n get: identity2(child),\n set: makeSetter(type),\n enumerable: true,\n configurable: false\n });\n } else {\n if (locations[type]) {\n Object.defineProperty(obj, prop, {\n get: makeGetter(type),\n set: makeSetter(type),\n enumerable: true,\n configurable: false\n });\n } else {\n obj[prop] = defaultValue(uniforms[type].type);\n }\n }\n }\n function processObject(obj) {\n var result;\n if (Array.isArray(obj)) {\n result = new Array(obj.length);\n for (var i = 0; i < obj.length; ++i) {\n storeProperty(result, i, obj[i]);\n }\n } else {\n result = {};\n for (var id in obj) {\n storeProperty(result, id, obj[id]);\n }\n }\n return result;\n }\n var coallesced = coallesceUniforms(uniforms, true);\n return {\n get: identity2(processObject(coallesced)),\n set: makeSetter(coallesced),\n enumerable: true,\n configurable: true\n };\n }\n }\n ),\n /***/\n 216: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = makeReflectTypes;\n function makeReflectTypes(uniforms, useIndex) {\n var obj = {};\n for (var i = 0; i < uniforms.length; ++i) {\n var n = uniforms[i].name;\n var parts = n.split(\".\");\n var o = obj;\n for (var j = 0; j < parts.length; ++j) {\n var x = parts[j].split(\"[\");\n if (x.length > 1) {\n if (!(x[0] in o)) {\n o[x[0]] = [];\n }\n o = o[x[0]];\n for (var k = 1; k < x.length; ++k) {\n var y = parseInt(x[k]);\n if (k < x.length - 1 || j < parts.length - 1) {\n if (!(y in o)) {\n if (k < x.length - 1) {\n o[y] = [];\n } else {\n o[y] = {};\n }\n }\n o = o[y];\n } else {\n if (useIndex) {\n o[y] = i;\n } else {\n o[y] = uniforms[i].type;\n }\n }\n }\n } else if (j < parts.length - 1) {\n if (!(x[0] in o)) {\n o[x[0]] = {};\n }\n o = o[x[0]];\n } else {\n if (useIndex) {\n o[x[0]] = i;\n } else {\n o[x[0]] = uniforms[i].type;\n }\n }\n }\n }\n return obj;\n }\n }\n ),\n /***/\n 2145: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n exports2.uniforms = runtimeUniforms;\n exports2.attributes = runtimeAttributes;\n var GL_TO_GLSL_TYPES = {\n \"FLOAT\": \"float\",\n \"FLOAT_VEC2\": \"vec2\",\n \"FLOAT_VEC3\": \"vec3\",\n \"FLOAT_VEC4\": \"vec4\",\n \"INT\": \"int\",\n \"INT_VEC2\": \"ivec2\",\n \"INT_VEC3\": \"ivec3\",\n \"INT_VEC4\": \"ivec4\",\n \"BOOL\": \"bool\",\n \"BOOL_VEC2\": \"bvec2\",\n \"BOOL_VEC3\": \"bvec3\",\n \"BOOL_VEC4\": \"bvec4\",\n \"FLOAT_MAT2\": \"mat2\",\n \"FLOAT_MAT3\": \"mat3\",\n \"FLOAT_MAT4\": \"mat4\",\n \"SAMPLER_2D\": \"sampler2D\",\n \"SAMPLER_CUBE\": \"samplerCube\"\n };\n var GL_TABLE = null;\n function getType(gl2, type) {\n if (!GL_TABLE) {\n var typeNames = Object.keys(GL_TO_GLSL_TYPES);\n GL_TABLE = {};\n for (var i = 0; i < typeNames.length; ++i) {\n var tn = typeNames[i];\n GL_TABLE[gl2[tn]] = GL_TO_GLSL_TYPES[tn];\n }\n }\n return GL_TABLE[type];\n }\n function runtimeUniforms(gl2, program) {\n var numUniforms = gl2.getProgramParameter(program, gl2.ACTIVE_UNIFORMS);\n var result = [];\n for (var i = 0; i < numUniforms; ++i) {\n var info = gl2.getActiveUniform(program, i);\n if (info) {\n var type = getType(gl2, info.type);\n if (info.size > 1) {\n for (var j = 0; j < info.size; ++j) {\n result.push({\n name: info.name.replace(\"[0]\", \"[\" + j + \"]\"),\n type\n });\n }\n } else {\n result.push({\n name: info.name,\n type\n });\n }\n }\n }\n return result;\n }\n function runtimeAttributes(gl2, program) {\n var numAttributes = gl2.getProgramParameter(program, gl2.ACTIVE_ATTRIBUTES);\n var result = [];\n for (var i = 0; i < numAttributes; ++i) {\n var info = gl2.getActiveAttrib(program, i);\n if (info) {\n result.push({\n name: info.name,\n type: getType(gl2, info.type)\n });\n }\n }\n return result;\n }\n }\n ),\n /***/\n 5091: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n exports2.shader = getShaderReference;\n exports2.program = createProgram;\n var GLError = __webpack_require__2(8866);\n var formatCompilerError = __webpack_require__2(2992);\n var weakMap = typeof WeakMap === \"undefined\" ? __webpack_require__2(606) : WeakMap;\n var CACHE = new weakMap();\n var SHADER_COUNTER = 0;\n function ShaderReference(id, src, type, shader, programs, count, cache) {\n this.id = id;\n this.src = src;\n this.type = type;\n this.shader = shader;\n this.count = count;\n this.programs = [];\n this.cache = cache;\n }\n ShaderReference.prototype.dispose = function() {\n if (--this.count === 0) {\n var cache = this.cache;\n var gl2 = cache.gl;\n var programs = this.programs;\n for (var i = 0, n = programs.length; i < n; ++i) {\n var p = cache.programs[programs[i]];\n if (p) {\n delete cache.programs[i];\n gl2.deleteProgram(p);\n }\n }\n gl2.deleteShader(this.shader);\n delete cache.shaders[this.type === gl2.FRAGMENT_SHADER | 0][this.src];\n }\n };\n function ContextCache(gl2) {\n this.gl = gl2;\n this.shaders = [{}, {}];\n this.programs = {};\n }\n var proto = ContextCache.prototype;\n function compileShader(gl2, type, src) {\n var shader = gl2.createShader(type);\n gl2.shaderSource(shader, src);\n gl2.compileShader(shader);\n if (!gl2.getShaderParameter(shader, gl2.COMPILE_STATUS)) {\n var errLog = gl2.getShaderInfoLog(shader);\n try {\n var fmt = formatCompilerError(errLog, src, type);\n } catch (e) {\n console.warn(\"Failed to format compiler error: \" + e);\n throw new GLError(errLog, \"Error compiling shader:\\n\" + errLog);\n }\n throw new GLError(errLog, fmt.short, fmt.long);\n }\n return shader;\n }\n proto.getShaderReference = function(type, src) {\n var gl2 = this.gl;\n var shaders = this.shaders[type === gl2.FRAGMENT_SHADER | 0];\n var shader = shaders[src];\n if (!shader || !gl2.isShader(shader.shader)) {\n var shaderObj = compileShader(gl2, type, src);\n shader = shaders[src] = new ShaderReference(\n SHADER_COUNTER++,\n src,\n type,\n shaderObj,\n [],\n 1,\n this\n );\n } else {\n shader.count += 1;\n }\n return shader;\n };\n function linkProgram(gl2, vshader, fshader, attribs, locations) {\n var program = gl2.createProgram();\n gl2.attachShader(program, vshader);\n gl2.attachShader(program, fshader);\n for (var i = 0; i < attribs.length; ++i) {\n gl2.bindAttribLocation(program, locations[i], attribs[i]);\n }\n gl2.linkProgram(program);\n if (!gl2.getProgramParameter(program, gl2.LINK_STATUS)) {\n var errLog = gl2.getProgramInfoLog(program);\n throw new GLError(errLog, \"Error linking program: \" + errLog);\n }\n return program;\n }\n proto.getProgram = function(vref, fref, attribs, locations) {\n var token = [vref.id, fref.id, attribs.join(\":\"), locations.join(\":\")].join(\"@\");\n var prog = this.programs[token];\n if (!prog || !this.gl.isProgram(prog)) {\n this.programs[token] = prog = linkProgram(\n this.gl,\n vref.shader,\n fref.shader,\n attribs,\n locations\n );\n vref.programs.push(token);\n fref.programs.push(token);\n }\n return prog;\n };\n function getCache(gl2) {\n var ctxCache = CACHE.get(gl2);\n if (!ctxCache) {\n ctxCache = new ContextCache(gl2);\n CACHE.set(gl2, ctxCache);\n }\n return ctxCache;\n }\n function getShaderReference(gl2, type, src) {\n return getCache(gl2).getShaderReference(type, src);\n }\n function createProgram(gl2, vref, fref, attribs, locations) {\n return getCache(gl2).getProgram(vref, fref, attribs, locations);\n }\n }\n ),\n /***/\n 1493: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var glslify = __webpack_require__2(3236);\n var createShader = __webpack_require__2(9405);\n var vertSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nattribute vec3 position, color;\\nattribute float weight;\\n\\nuniform mat4 model, view, projection;\\nuniform vec3 coordinates[3];\\nuniform vec4 colors[3];\\nuniform vec2 screenShape;\\nuniform float lineWidth;\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n vec3 vertexPosition = mix(coordinates[0],\\n mix(coordinates[2], coordinates[1], 0.5 * (position + 1.0)), abs(position));\\n\\n vec4 clipPos = projection * (view * (model * vec4(vertexPosition, 1.0)));\\n vec2 clipOffset = (projection * (view * (model * vec4(color, 0.0)))).xy;\\n vec2 delta = weight * clipOffset * screenShape;\\n vec2 lineOffset = normalize(vec2(delta.y, -delta.x)) / screenShape;\\n\\n gl_Position = vec4(clipPos.xy + clipPos.w * 0.5 * lineWidth * lineOffset, clipPos.z, clipPos.w);\\n fragColor = color.x * colors[0] + color.y * colors[1] + color.z * colors[2];\\n}\\n\"]);\n var fragSrc = glslify([\"precision mediump float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor;\\n\\nvoid main() {\\n gl_FragColor = fragColor;\\n}\"]);\n module2.exports = function(gl2) {\n return createShader(gl2, vertSrc, fragSrc, null, [\n { name: \"position\", type: \"vec3\" },\n { name: \"color\", type: \"vec3\" },\n { name: \"weight\", type: \"float\" }\n ]);\n };\n }\n ),\n /***/\n 4449: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createShader = __webpack_require__2(1493);\n module2.exports = createSpikes;\n var identity2 = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n function AxisSpikes(gl2, buffer, vao, shader) {\n this.gl = gl2;\n this.buffer = buffer;\n this.vao = vao;\n this.shader = shader;\n this.pixelRatio = 1;\n this.bounds = [[-1e3, -1e3, -1e3], [1e3, 1e3, 1e3]];\n this.position = [0, 0, 0];\n this.lineWidth = [2, 2, 2];\n this.colors = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.enabled = [true, true, true];\n this.drawSides = [true, true, true];\n this.axes = null;\n }\n var proto = AxisSpikes.prototype;\n var OUTER_FACE = [0, 0, 0];\n var INNER_FACE = [0, 0, 0];\n var SHAPE = [0, 0];\n proto.isTransparent = function() {\n return false;\n };\n proto.drawTransparent = function(camera) {\n };\n proto.draw = function(camera) {\n var gl2 = this.gl;\n var vao = this.vao;\n var shader = this.shader;\n vao.bind();\n shader.bind();\n var model = camera.model || identity2;\n var view = camera.view || identity2;\n var projection = camera.projection || identity2;\n var axis;\n if (this.axes) {\n axis = this.axes.lastCubeProps.axis;\n }\n var outerFace = OUTER_FACE;\n var innerFace = INNER_FACE;\n for (var i = 0; i < 3; ++i) {\n if (axis && axis[i] < 0) {\n outerFace[i] = this.bounds[0][i];\n innerFace[i] = this.bounds[1][i];\n } else {\n outerFace[i] = this.bounds[1][i];\n innerFace[i] = this.bounds[0][i];\n }\n }\n SHAPE[0] = gl2.drawingBufferWidth;\n SHAPE[1] = gl2.drawingBufferHeight;\n shader.uniforms.model = model;\n shader.uniforms.view = view;\n shader.uniforms.projection = projection;\n shader.uniforms.coordinates = [this.position, outerFace, innerFace];\n shader.uniforms.colors = this.colors;\n shader.uniforms.screenShape = SHAPE;\n for (var i = 0; i < 3; ++i) {\n shader.uniforms.lineWidth = this.lineWidth[i] * this.pixelRatio;\n if (this.enabled[i]) {\n vao.draw(gl2.TRIANGLES, 6, 6 * i);\n if (this.drawSides[i]) {\n vao.draw(gl2.TRIANGLES, 12, 18 + 12 * i);\n }\n }\n }\n vao.unbind();\n };\n proto.update = function(options) {\n if (!options) {\n return;\n }\n if (\"bounds\" in options) {\n this.bounds = options.bounds;\n }\n if (\"position\" in options) {\n this.position = options.position;\n }\n if (\"lineWidth\" in options) {\n this.lineWidth = options.lineWidth;\n }\n if (\"colors\" in options) {\n this.colors = options.colors;\n }\n if (\"enabled\" in options) {\n this.enabled = options.enabled;\n }\n if (\"drawSides\" in options) {\n this.drawSides = options.drawSides;\n }\n };\n proto.dispose = function() {\n this.vao.dispose();\n this.buffer.dispose();\n this.shader.dispose();\n };\n function createSpikes(gl2, options) {\n var data = [];\n function line(x, y, z, i, l, h) {\n var row = [x, y, z, 0, 0, 0, 1];\n row[i + 3] = 1;\n row[i] = l;\n data.push.apply(data, row);\n row[6] = -1;\n data.push.apply(data, row);\n row[i] = h;\n data.push.apply(data, row);\n data.push.apply(data, row);\n row[6] = 1;\n data.push.apply(data, row);\n row[i] = l;\n data.push.apply(data, row);\n }\n line(0, 0, 0, 0, 0, 1);\n line(0, 0, 0, 1, 0, 1);\n line(0, 0, 0, 2, 0, 1);\n line(1, 0, 0, 1, -1, 1);\n line(1, 0, 0, 2, -1, 1);\n line(0, 1, 0, 0, -1, 1);\n line(0, 1, 0, 2, -1, 1);\n line(0, 0, 1, 0, -1, 1);\n line(0, 0, 1, 1, -1, 1);\n var buffer = createBuffer(gl2, data);\n var vao = createVAO(gl2, [{\n type: gl2.FLOAT,\n buffer,\n size: 3,\n offset: 0,\n stride: 28\n }, {\n type: gl2.FLOAT,\n buffer,\n size: 3,\n offset: 12,\n stride: 28\n }, {\n type: gl2.FLOAT,\n buffer,\n size: 1,\n offset: 24,\n stride: 28\n }]);\n var shader = createShader(gl2);\n shader.attributes.position.location = 0;\n shader.attributes.color.location = 1;\n shader.attributes.weight.location = 2;\n var spikes = new AxisSpikes(gl2, buffer, vao, shader);\n spikes.update(options);\n return spikes;\n }\n }\n ),\n /***/\n 6740: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var glslify = __webpack_require__2(3236);\n var triVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the tube vertex and normal at the given index.\\n//\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\n//\\n// Each tube segment is made up of a ring of vertices.\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\n// The indexes of tube segments run from 0 to 8.\\n//\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\n float segmentCount = 8.0;\\n\\n float angle = 2.0 * 3.14159 * (index / segmentCount);\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d);\\n vec3 y = v * sin(angle) * length(d);\\n vec3 v3 = x + y;\\n\\n normal = normalize(v3);\\n\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 color, position;\\nattribute vec2 uv;\\n\\nuniform float vectorScale, tubeScale;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 eyePosition, lightPosition;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n // Scale the vector magnitude to stay constant with\\n // model & view changes.\\n vec3 normal;\\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * tubePosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n f_lightDirection = lightPosition - cameraCoordinate.xyz;\\n f_eyeDirection = eyePosition - cameraCoordinate.xyz;\\n f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz);\\n\\n // vec4 m_position = model * vec4(tubePosition, 1.0);\\n vec4 t_position = view * tubePosition;\\n gl_Position = projection * t_position;\\n\\n f_color = color;\\n f_data = tubePosition.xyz;\\n f_position = position.xyz;\\n f_uv = uv;\\n}\\n\"]);\n var triFragSrc = glslify([\"#extension GL_OES_standard_derivatives : enable\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat cookTorranceSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness,\\n float fresnel) {\\n\\n float VdotN = max(dot(viewDirection, surfaceNormal), 0.0);\\n float LdotN = max(dot(lightDirection, surfaceNormal), 0.0);\\n\\n //Half angle vector\\n vec3 H = normalize(lightDirection + viewDirection);\\n\\n //Geometric term\\n float NdotH = max(dot(surfaceNormal, H), 0.0);\\n float VdotH = max(dot(viewDirection, H), 0.000001);\\n float LdotH = max(dot(lightDirection, H), 0.000001);\\n float G1 = (2.0 * NdotH * VdotN) / VdotH;\\n float G2 = (2.0 * NdotH * LdotN) / LdotH;\\n float G = min(1.0, min(G1, G2));\\n \\n //Distribution term\\n float D = beckmannDistribution(NdotH, roughness);\\n\\n //Fresnel term\\n float F = pow(1.0 - VdotN, fresnel);\\n\\n //Multiply terms and done\\n return G * F * D / max(3.14159265 * VdotN, 0.000001);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform sampler2D texture;\\n\\nvarying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position;\\nvarying vec4 f_color;\\nvarying vec2 f_uv;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n vec3 N = normalize(f_normal);\\n vec3 L = normalize(f_lightDirection);\\n vec3 V = normalize(f_eyeDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel)));\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n vec4 surfaceColor = f_color * texture2D(texture, f_uv);\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = litColor * opacity;\\n}\\n\"]);\n var pickVertSrc = glslify([\"precision highp float;\\n\\nprecision highp float;\\n#define GLSLIFY 1\\n\\nvec3 getOrthogonalVector(vec3 v) {\\n // Return up-vector for only-z vector.\\n // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0).\\n // From the above if-statement we have ||a|| > 0 U ||b|| > 0.\\n // Assign z = 0, x = -b, y = a:\\n // a*-b + b*a + c*0 = -ba + ba + 0 = 0\\n if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) {\\n return normalize(vec3(-v.y, v.x, 0.0));\\n } else {\\n return normalize(vec3(0.0, v.z, -v.y));\\n }\\n}\\n\\n// Calculate the tube vertex and normal at the given index.\\n//\\n// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d.\\n//\\n// Each tube segment is made up of a ring of vertices.\\n// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array.\\n// The indexes of tube segments run from 0 to 8.\\n//\\nvec3 getTubePosition(vec3 d, float index, out vec3 normal) {\\n float segmentCount = 8.0;\\n\\n float angle = 2.0 * 3.14159 * (index / segmentCount);\\n\\n vec3 u = getOrthogonalVector(d);\\n vec3 v = normalize(cross(u, d));\\n\\n vec3 x = u * cos(angle) * length(d);\\n vec3 y = v * sin(angle) * length(d);\\n vec3 v3 = x + y;\\n\\n normal = normalize(v3);\\n\\n return v3;\\n}\\n\\nattribute vec4 vector;\\nattribute vec4 position;\\nattribute vec4 id;\\n\\nuniform mat4 model, view, projection;\\nuniform float tubeScale;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n vec3 normal;\\n vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal);\\n vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0);\\n\\n gl_Position = projection * (view * tubePosition);\\n f_id = id;\\n f_position = position.xyz;\\n}\\n\"]);\n var pickFragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying vec3 f_position;\\nvarying vec4 f_id;\\n\\nvoid main() {\\n if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard;\\n\\n gl_FragColor = vec4(pickId, f_id.xyz);\\n}\"]);\n exports2.meshShader = {\n vertex: triVertSrc,\n fragment: triFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"color\", type: \"vec4\" },\n { name: \"uv\", type: \"vec2\" },\n { name: \"vector\", type: \"vec4\" }\n ]\n };\n exports2.pickShader = {\n vertex: pickVertSrc,\n fragment: pickFragSrc,\n attributes: [\n { name: \"position\", type: \"vec4\" },\n { name: \"id\", type: \"vec4\" },\n { name: \"vector\", type: \"vec4\" }\n ]\n };\n }\n ),\n /***/\n 7815: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var vec3 = __webpack_require__2(2931);\n var vec4 = __webpack_require__2(9970);\n var GRID_TYPES = [\"xyz\", \"xzy\", \"yxz\", \"yzx\", \"zxy\", \"zyx\"];\n var streamToTube = function(stream, maxDivergence, minDistance, maxNorm) {\n var points = stream.points;\n var velocities = stream.velocities;\n var divergences = stream.divergences;\n var verts = [];\n var faces = [];\n var vectors = [];\n var previousVerts = [];\n var currentVerts = [];\n var intensities = [];\n var previousIntensity = 0;\n var currentIntensity = 0;\n var currentVector = vec4.create();\n var previousVector = vec4.create();\n var facets = 8;\n for (var i = 0; i < points.length; i++) {\n var p = points[i];\n var fwd = velocities[i];\n var r = divergences[i];\n if (maxDivergence === 0) {\n r = minDistance * 0.05;\n }\n currentIntensity = vec3.length(fwd) / maxNorm;\n currentVector = vec4.create();\n vec3.copy(currentVector, fwd);\n currentVector[3] = r;\n for (var a = 0; a < facets; a++) {\n currentVerts[a] = [p[0], p[1], p[2], a];\n }\n if (previousVerts.length > 0) {\n for (var a = 0; a < facets; a++) {\n var a1 = (a + 1) % facets;\n verts.push(\n previousVerts[a],\n currentVerts[a],\n currentVerts[a1],\n currentVerts[a1],\n previousVerts[a1],\n previousVerts[a]\n );\n vectors.push(\n previousVector,\n currentVector,\n currentVector,\n currentVector,\n previousVector,\n previousVector\n );\n intensities.push(\n previousIntensity,\n currentIntensity,\n currentIntensity,\n currentIntensity,\n previousIntensity,\n previousIntensity\n );\n var len = verts.length;\n faces.push(\n [len - 6, len - 5, len - 4],\n [len - 3, len - 2, len - 1]\n );\n }\n }\n var tmp1 = previousVerts;\n previousVerts = currentVerts;\n currentVerts = tmp1;\n var tmp2 = previousVector;\n previousVector = currentVector;\n currentVector = tmp2;\n var tmp3 = previousIntensity;\n previousIntensity = currentIntensity;\n currentIntensity = tmp3;\n }\n return {\n positions: verts,\n cells: faces,\n vectors,\n vertexIntensity: intensities\n };\n };\n var createTubes = function(streams, colormap, maxDivergence, minDistance) {\n var maxNorm = 0;\n for (var i = 0; i < streams.length; i++) {\n var velocities = streams[i].velocities;\n for (var j = 0; j < velocities.length; j++) {\n maxNorm = Math.max(\n maxNorm,\n vec3.length(velocities[j])\n );\n }\n }\n var tubes = streams.map(function(s) {\n return streamToTube(s, maxDivergence, minDistance, maxNorm);\n });\n var positions = [];\n var cells = [];\n var vectors = [];\n var vertexIntensity = [];\n for (var i = 0; i < tubes.length; i++) {\n var tube = tubes[i];\n var offset = positions.length;\n positions = positions.concat(tube.positions);\n vectors = vectors.concat(tube.vectors);\n vertexIntensity = vertexIntensity.concat(tube.vertexIntensity);\n for (var j = 0; j < tube.cells.length; j++) {\n var cell = tube.cells[j];\n var newCell = [];\n cells.push(newCell);\n for (var k = 0; k < cell.length; k++) {\n newCell.push(cell[k] + offset);\n }\n }\n }\n return {\n positions,\n cells,\n vectors,\n vertexIntensity,\n colormap\n };\n };\n var findLastSmallerIndex = function(points, v) {\n var len = points.length;\n var i;\n for (i = 0; i < len; i++) {\n var p = points[i];\n if (p === v) return i;\n else if (p > v) return i - 1;\n }\n return i;\n };\n var clamp = function(v, min, max) {\n return v < min ? min : v > max ? max : v;\n };\n var sampleMeshgrid = function(point, vectorField, gridInfo) {\n var vectors = vectorField.vectors;\n var meshgrid = vectorField.meshgrid;\n var x = point[0];\n var y = point[1];\n var z = point[2];\n var w = meshgrid[0].length;\n var h = meshgrid[1].length;\n var d = meshgrid[2].length;\n var x0 = findLastSmallerIndex(meshgrid[0], x);\n var y0 = findLastSmallerIndex(meshgrid[1], y);\n var z0 = findLastSmallerIndex(meshgrid[2], z);\n var x1 = x0 + 1;\n var y1 = y0 + 1;\n var z1 = z0 + 1;\n x0 = clamp(x0, 0, w - 1);\n x1 = clamp(x1, 0, w - 1);\n y0 = clamp(y0, 0, h - 1);\n y1 = clamp(y1, 0, h - 1);\n z0 = clamp(z0, 0, d - 1);\n z1 = clamp(z1, 0, d - 1);\n if (x0 < 0 || y0 < 0 || z0 < 0 || x1 > w - 1 || y1 > h - 1 || z1 > d - 1) {\n return vec3.create();\n }\n var mX0 = meshgrid[0][x0];\n var mX1 = meshgrid[0][x1];\n var mY0 = meshgrid[1][y0];\n var mY1 = meshgrid[1][y1];\n var mZ0 = meshgrid[2][z0];\n var mZ1 = meshgrid[2][z1];\n var xf = (x - mX0) / (mX1 - mX0);\n var yf = (y - mY0) / (mY1 - mY0);\n var zf = (z - mZ0) / (mZ1 - mZ0);\n if (!isFinite(xf)) xf = 0.5;\n if (!isFinite(yf)) yf = 0.5;\n if (!isFinite(zf)) zf = 0.5;\n var x0off;\n var x1off;\n var y0off;\n var y1off;\n var z0off;\n var z1off;\n if (gridInfo.reversedX) {\n x0 = w - 1 - x0;\n x1 = w - 1 - x1;\n }\n if (gridInfo.reversedY) {\n y0 = h - 1 - y0;\n y1 = h - 1 - y1;\n }\n if (gridInfo.reversedZ) {\n z0 = d - 1 - z0;\n z1 = d - 1 - z1;\n }\n switch (gridInfo.filled) {\n case 5:\n z0off = z0;\n z1off = z1;\n y0off = y0 * d;\n y1off = y1 * d;\n x0off = x0 * d * h;\n x1off = x1 * d * h;\n break;\n case 4:\n z0off = z0;\n z1off = z1;\n x0off = x0 * d;\n x1off = x1 * d;\n y0off = y0 * d * w;\n y1off = y1 * d * w;\n break;\n case 3:\n y0off = y0;\n y1off = y1;\n z0off = z0 * h;\n z1off = z1 * h;\n x0off = x0 * h * d;\n x1off = x1 * h * d;\n break;\n case 2:\n y0off = y0;\n y1off = y1;\n x0off = x0 * h;\n x1off = x1 * h;\n z0off = z0 * h * w;\n z1off = z1 * h * w;\n break;\n case 1:\n x0off = x0;\n x1off = x1;\n z0off = z0 * w;\n z1off = z1 * w;\n y0off = y0 * w * d;\n y1off = y1 * w * d;\n break;\n default:\n x0off = x0;\n x1off = x1;\n y0off = y0 * w;\n y1off = y1 * w;\n z0off = z0 * w * h;\n z1off = z1 * w * h;\n break;\n }\n var v000 = vectors[x0off + y0off + z0off];\n var v001 = vectors[x0off + y0off + z1off];\n var v010 = vectors[x0off + y1off + z0off];\n var v011 = vectors[x0off + y1off + z1off];\n var v100 = vectors[x1off + y0off + z0off];\n var v101 = vectors[x1off + y0off + z1off];\n var v110 = vectors[x1off + y1off + z0off];\n var v111 = vectors[x1off + y1off + z1off];\n var c00 = vec3.create();\n var c01 = vec3.create();\n var c10 = vec3.create();\n var c11 = vec3.create();\n vec3.lerp(c00, v000, v100, xf);\n vec3.lerp(c01, v001, v101, xf);\n vec3.lerp(c10, v010, v110, xf);\n vec3.lerp(c11, v011, v111, xf);\n var c0 = vec3.create();\n var c1 = vec3.create();\n vec3.lerp(c0, c00, c10, yf);\n vec3.lerp(c1, c01, c11, yf);\n var c = vec3.create();\n vec3.lerp(c, c0, c1, zf);\n return c;\n };\n var vabs = function(dst, v) {\n var x = v[0];\n var y = v[1];\n var z = v[2];\n dst[0] = x < 0 ? -x : x;\n dst[1] = y < 0 ? -y : y;\n dst[2] = z < 0 ? -z : z;\n return dst;\n };\n var findMinSeparation = function(xs) {\n var minSeparation = Infinity;\n xs.sort(function(a, b) {\n return a - b;\n });\n var len = xs.length;\n for (var i = 1; i < len; i++) {\n var d = Math.abs(xs[i] - xs[i - 1]);\n if (d < minSeparation) {\n minSeparation = d;\n }\n }\n return minSeparation;\n };\n var calculateMinPositionDistance = function(positions) {\n var xs = [], ys = [], zs = [];\n var xi = {}, yi = {}, zi = {};\n var len = positions.length;\n for (var i = 0; i < len; i++) {\n var p = positions[i];\n var x = p[0], y = p[1], z = p[2];\n if (!xi[x]) {\n xs.push(x);\n xi[x] = true;\n }\n if (!yi[y]) {\n ys.push(y);\n yi[y] = true;\n }\n if (!zi[z]) {\n zs.push(z);\n zi[z] = true;\n }\n }\n var xSep = findMinSeparation(xs);\n var ySep = findMinSeparation(ys);\n var zSep = findMinSeparation(zs);\n var minSeparation = Math.min(xSep, ySep, zSep);\n return isFinite(minSeparation) ? minSeparation : 1;\n };\n module2.exports = function(vectorField, bounds) {\n var positions = vectorField.startingPositions;\n var maxLength = vectorField.maxLength || 1e3;\n var tubeSize = vectorField.tubeSize || 1;\n var absoluteTubeSize = vectorField.absoluteTubeSize;\n var gridFill = vectorField.gridFill || \"+x+y+z\";\n var gridInfo = {};\n if (gridFill.indexOf(\"-x\") !== -1) {\n gridInfo.reversedX = true;\n }\n if (gridFill.indexOf(\"-y\") !== -1) {\n gridInfo.reversedY = true;\n }\n if (gridFill.indexOf(\"-z\") !== -1) {\n gridInfo.reversedZ = true;\n }\n gridInfo.filled = GRID_TYPES.indexOf(gridFill.replace(/-/g, \"\").replace(/\\+/g, \"\"));\n var getVelocity = vectorField.getVelocity || function(p2) {\n return sampleMeshgrid(p2, vectorField, gridInfo);\n };\n var getDivergence = vectorField.getDivergence || function(p2, v0) {\n var dp = vec3.create();\n var e = 1e-4;\n vec3.add(dp, p2, [e, 0, 0]);\n var vx = getVelocity(dp);\n vec3.subtract(vx, vx, v0);\n vec3.scale(vx, vx, 1 / e);\n vec3.add(dp, p2, [0, e, 0]);\n var vy = getVelocity(dp);\n vec3.subtract(vy, vy, v0);\n vec3.scale(vy, vy, 1 / e);\n vec3.add(dp, p2, [0, 0, e]);\n var vz = getVelocity(dp);\n vec3.subtract(vz, vz, v0);\n vec3.scale(vz, vz, 1 / e);\n vec3.add(dp, vx, vy);\n vec3.add(dp, dp, vz);\n return dp;\n };\n var streams = [];\n var minX = bounds[0][0], minY = bounds[0][1], minZ = bounds[0][2];\n var maxX = bounds[1][0], maxY = bounds[1][1], maxZ = bounds[1][2];\n var inBounds = function(p2) {\n var x = p2[0];\n var y = p2[1];\n var z = p2[2];\n return !(x < minX || x > maxX || y < minY || y > maxY || z < minZ || z > maxZ);\n };\n var boundsSize = vec3.distance(bounds[0], bounds[1]);\n var maxStepSize = 10 * boundsSize / maxLength;\n var maxStepSizeSq = maxStepSize * maxStepSize;\n var minDistance = 1;\n var maxDivergence = 0;\n var len = positions.length;\n if (len > 1) {\n minDistance = calculateMinPositionDistance(positions);\n }\n for (var i = 0; i < len; i++) {\n var p = vec3.create();\n vec3.copy(p, positions[i]);\n var stream = [p];\n var velocities = [];\n var v = getVelocity(p);\n var op = p;\n velocities.push(v);\n var divergences = [];\n var dv = getDivergence(p, v);\n var dvLength = vec3.length(dv);\n if (isFinite(dvLength) && dvLength > maxDivergence) {\n maxDivergence = dvLength;\n }\n divergences.push(dvLength);\n streams.push({ points: stream, velocities, divergences });\n var j = 0;\n while (j < maxLength * 100 && stream.length < maxLength && inBounds(p)) {\n j++;\n var np = vec3.clone(v);\n var sqLen = vec3.squaredLength(np);\n if (sqLen === 0) {\n break;\n } else if (sqLen > maxStepSizeSq) {\n vec3.scale(np, np, maxStepSize / Math.sqrt(sqLen));\n }\n vec3.add(np, np, p);\n v = getVelocity(np);\n if (vec3.squaredDistance(op, np) - maxStepSizeSq > -1e-4 * maxStepSizeSq) {\n stream.push(np);\n op = np;\n velocities.push(v);\n var dv = getDivergence(np, v);\n var dvLength = vec3.length(dv);\n if (isFinite(dvLength) && dvLength > maxDivergence) {\n maxDivergence = dvLength;\n }\n divergences.push(dvLength);\n }\n p = np;\n }\n }\n var tubes = createTubes(streams, vectorField.colormap, maxDivergence, minDistance);\n if (absoluteTubeSize) {\n tubes.tubeScale = absoluteTubeSize;\n } else {\n if (maxDivergence === 0) {\n maxDivergence = 1;\n }\n tubes.tubeScale = tubeSize * 0.5 * minDistance / maxDivergence;\n }\n return tubes;\n };\n var shaders = __webpack_require__2(6740);\n var createMesh = __webpack_require__2(6405).createMesh;\n module2.exports.createTubeMesh = function(gl2, params) {\n return createMesh(gl2, params, {\n shaders,\n traceType: \"streamtube\"\n });\n };\n }\n ),\n /***/\n 990: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n var createShader = __webpack_require__2(9405);\n var glslify = __webpack_require__2(3236);\n var vertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute vec3 f;\\nattribute vec3 normal;\\n\\nuniform vec3 objectOffset;\\nuniform mat4 model, view, projection, inverseModel;\\nuniform vec3 lightPosition, eyePosition;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 localCoordinate = vec3(uv.zw, f.x);\\n worldCoordinate = objectOffset + localCoordinate;\\n mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0));\\n vec4 worldPosition = (model * objectOffsetTranslation) * vec4(localCoordinate, 1.0);\\n vec4 clipPosition = projection * (view * worldPosition);\\n gl_Position = clipPosition;\\n kill = f.y;\\n value = f.z;\\n planeCoordinate = uv.xy;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Lighting geometry parameters\\n vec4 cameraCoordinate = view * worldPosition;\\n cameraCoordinate.xyz /= cameraCoordinate.w;\\n lightDirection = lightPosition - cameraCoordinate.xyz;\\n eyeDirection = eyePosition - cameraCoordinate.xyz;\\n surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz);\\n}\\n\"]);\n var fragSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nfloat beckmannDistribution(float x, float roughness) {\\n float NdotH = max(x, 0.0001);\\n float cos2Alpha = NdotH * NdotH;\\n float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha;\\n float roughness2 = roughness * roughness;\\n float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha;\\n return exp(tan2Alpha / roughness2) / denom;\\n}\\n\\nfloat beckmannSpecular(\\n vec3 lightDirection,\\n vec3 viewDirection,\\n vec3 surfaceNormal,\\n float roughness) {\\n return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness);\\n}\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec3 lowerBound, upperBound;\\nuniform float contourTint;\\nuniform vec4 contourColor;\\nuniform sampler2D colormap;\\nuniform vec3 clipBounds[2];\\nuniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity;\\nuniform float vertexColor;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n if (\\n kill > 0.0 ||\\n vColor.a == 0.0 ||\\n outOfRange(clipBounds[0], clipBounds[1], worldCoordinate)\\n ) discard;\\n\\n vec3 N = normalize(surfaceNormal);\\n vec3 V = normalize(eyeDirection);\\n vec3 L = normalize(lightDirection);\\n\\n if(gl_FrontFacing) {\\n N = -N;\\n }\\n\\n float specular = max(beckmannSpecular(L, V, N, roughness), 0.);\\n float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0);\\n\\n //decide how to interpolate color \\u2014 in vertex or in fragment\\n vec4 surfaceColor =\\n step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) +\\n step(.5, vertexColor) * vColor;\\n\\n vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0);\\n\\n gl_FragColor = mix(litColor, contourColor, contourTint) * opacity;\\n}\\n\"]);\n var contourVertSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute vec4 uv;\\nattribute float f;\\n\\nuniform vec3 objectOffset;\\nuniform mat3 permutation;\\nuniform mat4 model, view, projection;\\nuniform float height, zOffset;\\nuniform sampler2D colormap;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 lightDirection, eyeDirection, surfaceNormal;\\nvarying vec4 vColor;\\n\\nvoid main() {\\n vec3 dataCoordinate = permutation * vec3(uv.xy, height);\\n worldCoordinate = objectOffset + dataCoordinate;\\n mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0));\\n vec4 worldPosition = (model * objectOffsetTranslation) * vec4(dataCoordinate, 1.0);\\n\\n vec4 clipPosition = projection * (view * worldPosition);\\n clipPosition.z += zOffset;\\n\\n gl_Position = clipPosition;\\n value = f + objectOffset.z;\\n kill = -1.0;\\n planeCoordinate = uv.zw;\\n\\n vColor = texture2D(colormap, vec2(value, value));\\n\\n //Don't do lighting for contours\\n surfaceNormal = vec3(1,0,0);\\n eyeDirection = vec3(0,1,0);\\n lightDirection = vec3(0,0,1);\\n}\\n\"]);\n var pickSrc = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nbool outOfRange(float a, float b, float p) {\\n return ((p > max(a, b)) || \\n (p < min(a, b)));\\n}\\n\\nbool outOfRange(vec2 a, vec2 b, vec2 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y));\\n}\\n\\nbool outOfRange(vec3 a, vec3 b, vec3 p) {\\n return (outOfRange(a.x, b.x, p.x) ||\\n outOfRange(a.y, b.y, p.y) ||\\n outOfRange(a.z, b.z, p.z));\\n}\\n\\nbool outOfRange(vec4 a, vec4 b, vec4 p) {\\n return outOfRange(a.xyz, b.xyz, p.xyz);\\n}\\n\\nuniform vec2 shape;\\nuniform vec3 clipBounds[2];\\nuniform float pickId;\\n\\nvarying float value, kill;\\nvarying vec3 worldCoordinate;\\nvarying vec2 planeCoordinate;\\nvarying vec3 surfaceNormal;\\n\\nvec2 splitFloat(float v) {\\n float vh = 255.0 * v;\\n float upper = floor(vh);\\n float lower = fract(vh);\\n return vec2(upper / 255.0, floor(lower * 16.0) / 16.0);\\n}\\n\\nvoid main() {\\n if ((kill > 0.0) ||\\n (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard;\\n\\n vec2 ux = splitFloat(planeCoordinate.x / shape.x);\\n vec2 uy = splitFloat(planeCoordinate.y / shape.y);\\n gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0));\\n}\\n\"]);\n exports2.createShader = function(gl2) {\n var shader = createShader(gl2, vertSrc, fragSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n shader.attributes.normal.location = 2;\n return shader;\n };\n exports2.createPickShader = function(gl2) {\n var shader = createShader(gl2, vertSrc, pickSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"vec3\" },\n { name: \"normal\", type: \"vec3\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n shader.attributes.normal.location = 2;\n return shader;\n };\n exports2.createContourShader = function(gl2) {\n var shader = createShader(gl2, contourVertSrc, fragSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"float\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n return shader;\n };\n exports2.createPickContourShader = function(gl2) {\n var shader = createShader(gl2, contourVertSrc, pickSrc, null, [\n { name: \"uv\", type: \"vec4\" },\n { name: \"f\", type: \"float\" }\n ]);\n shader.attributes.uv.location = 0;\n shader.attributes.f.location = 1;\n return shader;\n };\n }\n ),\n /***/\n 9499: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createSurfacePlot;\n var bits = __webpack_require__2(8828);\n var createBuffer = __webpack_require__2(2762);\n var createVAO = __webpack_require__2(8116);\n var createTexture = __webpack_require__2(7766);\n var pool = __webpack_require__2(1888);\n var colormap = __webpack_require__2(6729);\n var ops = __webpack_require__2(5298);\n var pack = __webpack_require__2(9994);\n var ndarray = __webpack_require__2(9618);\n var surfaceNets = __webpack_require__2(3711);\n var multiply = __webpack_require__2(6760);\n var invert = __webpack_require__2(7608);\n var bsearch = __webpack_require__2(2478);\n var gradient = __webpack_require__2(6199);\n var shaders = __webpack_require__2(990);\n var createShader = shaders.createShader;\n var createContourShader = shaders.createContourShader;\n var createPickShader = shaders.createPickShader;\n var createPickContourShader = shaders.createPickContourShader;\n var SURFACE_VERTEX_SIZE = 4 * (4 + 3 + 3);\n var IDENTITY = [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n var QUAD = [\n [0, 0],\n [0, 1],\n [1, 0],\n [1, 1],\n [1, 0],\n [0, 1]\n ];\n var PERMUTATIONS = [\n [0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0],\n [0, 0, 0, 0, 0, 0, 0, 0, 0]\n ];\n (function() {\n for (var i = 0; i < 3; ++i) {\n var p = PERMUTATIONS[i];\n var u = (i + 1) % 3;\n var v = (i + 2) % 3;\n p[u + 0] = 1;\n p[v + 3] = 1;\n p[i + 6] = 1;\n }\n })();\n function SurfacePickResult(position, index, uv, level, dataCoordinate) {\n this.position = position;\n this.index = index;\n this.uv = uv;\n this.level = level;\n this.dataCoordinate = dataCoordinate;\n }\n var N_COLORS = 256;\n function SurfacePlot(gl2, shape, bounds, shader, pickShader, coordinates, vao, colorMap, contourShader, contourPickShader, contourBuffer, contourVAO, dynamicBuffer, dynamicVAO, objectOffset) {\n this.gl = gl2;\n this.shape = shape;\n this.bounds = bounds;\n this.objectOffset = objectOffset;\n this.intensityBounds = [];\n this._shader = shader;\n this._pickShader = pickShader;\n this._coordinateBuffer = coordinates;\n this._vao = vao;\n this._colorMap = colorMap;\n this._contourShader = contourShader;\n this._contourPickShader = contourPickShader;\n this._contourBuffer = contourBuffer;\n this._contourVAO = contourVAO;\n this._contourOffsets = [[], [], []];\n this._contourCounts = [[], [], []];\n this._vertexCount = 0;\n this._pickResult = new SurfacePickResult([0, 0, 0], [0, 0], [0, 0], [0, 0, 0], [0, 0, 0]);\n this._dynamicBuffer = dynamicBuffer;\n this._dynamicVAO = dynamicVAO;\n this._dynamicOffsets = [0, 0, 0];\n this._dynamicCounts = [0, 0, 0];\n this.contourWidth = [1, 1, 1];\n this.contourLevels = [[1], [1], [1]];\n this.contourTint = [0, 0, 0];\n this.contourColor = [[0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1], [0.5, 0.5, 0.5, 1]];\n this.showContour = true;\n this.showSurface = true;\n this.enableHighlight = [true, true, true];\n this.highlightColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.highlightTint = [1, 1, 1];\n this.highlightLevel = [-1, -1, -1];\n this.enableDynamic = [true, true, true];\n this.dynamicLevel = [NaN, NaN, NaN];\n this.dynamicColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.dynamicTint = [1, 1, 1];\n this.dynamicWidth = [1, 1, 1];\n this.axesBounds = [[Infinity, Infinity, Infinity], [-Infinity, -Infinity, -Infinity]];\n this.surfaceProject = [false, false, false];\n this.contourProject = [\n [false, false, false],\n [false, false, false],\n [false, false, false]\n ];\n this.colorBounds = [false, false];\n this._field = [\n ndarray(pool.mallocFloat(1024), [0, 0]),\n ndarray(pool.mallocFloat(1024), [0, 0]),\n ndarray(pool.mallocFloat(1024), [0, 0])\n ];\n this.pickId = 1;\n this.clipBounds = [[-Infinity, -Infinity, -Infinity], [Infinity, Infinity, Infinity]];\n this.snapToData = false;\n this.pixelRatio = 1;\n this.opacity = 1;\n this.lightPosition = [10, 1e4, 0];\n this.ambientLight = 0.8;\n this.diffuseLight = 0.8;\n this.specularLight = 2;\n this.roughness = 0.5;\n this.fresnel = 1.5;\n this.vertexColor = 0;\n this.dirty = true;\n }\n var proto = SurfacePlot.prototype;\n proto.genColormap = function(name2, opacityscale) {\n var hasAlpha = false;\n var x = pack([colormap({\n colormap: name2,\n nshades: N_COLORS,\n format: \"rgba\"\n }).map(function(c, i) {\n var a = opacityscale ? getOpacityFromScale(i / 255, opacityscale) : c[3];\n if (a < 1) hasAlpha = true;\n return [c[0], c[1], c[2], 255 * a];\n })]);\n ops.divseq(x, 255);\n this.hasAlphaScale = hasAlpha;\n return x;\n };\n proto.isTransparent = function() {\n return this.opacity < 1 || this.hasAlphaScale;\n };\n proto.isOpaque = function() {\n return !this.isTransparent();\n };\n proto.pickSlots = 1;\n proto.setPickBase = function(id) {\n this.pickId = id;\n };\n function getOpacityFromScale(ratio, opacityscale) {\n if (!opacityscale) return 1;\n if (!opacityscale.length) return 1;\n for (var i = 0; i < opacityscale.length; ++i) {\n if (opacityscale.length < 2) return 1;\n if (opacityscale[i][0] === ratio) return opacityscale[i][1];\n if (opacityscale[i][0] > ratio && i > 0) {\n var d = (opacityscale[i][0] - ratio) / (opacityscale[i][0] - opacityscale[i - 1][0]);\n return opacityscale[i][1] * (1 - d) + d * opacityscale[i - 1][1];\n }\n }\n return 1;\n }\n var ZERO_VEC = [0, 0, 0];\n var PROJECT_DATA = {\n showSurface: false,\n showContour: false,\n projections: [IDENTITY.slice(), IDENTITY.slice(), IDENTITY.slice()],\n clipBounds: [\n [[0, 0, 0], [0, 0, 0]],\n [[0, 0, 0], [0, 0, 0]],\n [[0, 0, 0], [0, 0, 0]]\n ]\n };\n function computeProjectionData(camera, obj) {\n var i, j, k;\n var cubeAxis = obj.axes && obj.axes.lastCubeProps.axis || ZERO_VEC;\n var showSurface = obj.showSurface;\n var showContour = obj.showContour;\n for (i = 0; i < 3; ++i) {\n showSurface = showSurface || obj.surfaceProject[i];\n for (j = 0; j < 3; ++j) {\n showContour = showContour || obj.contourProject[i][j];\n }\n }\n for (i = 0; i < 3; ++i) {\n var axisSquish = PROJECT_DATA.projections[i];\n for (j = 0; j < 16; ++j) {\n axisSquish[j] = 0;\n }\n for (j = 0; j < 4; ++j) {\n axisSquish[5 * j] = 1;\n }\n axisSquish[5 * i] = 0;\n axisSquish[12 + i] = obj.axesBounds[+(cubeAxis[i] > 0)][i];\n multiply(axisSquish, camera.model, axisSquish);\n var nclipBounds = PROJECT_DATA.clipBounds[i];\n for (k = 0; k < 2; ++k) {\n for (j = 0; j < 3; ++j) {\n nclipBounds[k][j] = camera.clipBounds[k][j];\n }\n }\n nclipBounds[0][i] = -1e8;\n nclipBounds[1][i] = 1e8;\n }\n PROJECT_DATA.showSurface = showSurface;\n PROJECT_DATA.showContour = showContour;\n return PROJECT_DATA;\n }\n var UNIFORMS = {\n model: IDENTITY,\n view: IDENTITY,\n projection: IDENTITY,\n inverseModel: IDENTITY.slice(),\n lowerBound: [0, 0, 0],\n upperBound: [0, 0, 0],\n colorMap: 0,\n clipBounds: [[0, 0, 0], [0, 0, 0]],\n height: 0,\n contourTint: 0,\n contourColor: [0, 0, 0, 1],\n permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1],\n zOffset: -1e-4,\n objectOffset: [0, 0, 0],\n kambient: 1,\n kdiffuse: 1,\n kspecular: 1,\n lightPosition: [1e3, 1e3, 1e3],\n eyePosition: [0, 0, 0],\n roughness: 1,\n fresnel: 1,\n opacity: 1,\n vertexColor: 0\n };\n var MATRIX_INVERSE = IDENTITY.slice();\n var DEFAULT_PERM = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n function drawCore(params, transparent) {\n params = params || {};\n var gl2 = this.gl;\n gl2.disable(gl2.CULL_FACE);\n this._colorMap.bind(0);\n var uniforms = UNIFORMS;\n uniforms.model = params.model || IDENTITY;\n uniforms.view = params.view || IDENTITY;\n uniforms.projection = params.projection || IDENTITY;\n uniforms.lowerBound = [this.bounds[0][0], this.bounds[0][1], this.colorBounds[0] || this.bounds[0][2]];\n uniforms.upperBound = [this.bounds[1][0], this.bounds[1][1], this.colorBounds[1] || this.bounds[1][2]];\n uniforms.objectOffset = this.objectOffset;\n uniforms.contourColor = this.contourColor[0];\n uniforms.inverseModel = invert(uniforms.inverseModel, uniforms.model);\n for (var i = 0; i < 2; ++i) {\n var clipClamped = uniforms.clipBounds[i];\n for (var j = 0; j < 3; ++j) {\n clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8);\n }\n }\n uniforms.kambient = this.ambientLight;\n uniforms.kdiffuse = this.diffuseLight;\n uniforms.kspecular = this.specularLight;\n uniforms.roughness = this.roughness;\n uniforms.fresnel = this.fresnel;\n uniforms.opacity = this.opacity;\n uniforms.height = 0;\n uniforms.permutation = DEFAULT_PERM;\n uniforms.vertexColor = this.vertexColor;\n var invCameraMatrix = MATRIX_INVERSE;\n multiply(invCameraMatrix, uniforms.view, uniforms.model);\n multiply(invCameraMatrix, uniforms.projection, invCameraMatrix);\n invert(invCameraMatrix, invCameraMatrix);\n for (i = 0; i < 3; ++i) {\n uniforms.eyePosition[i] = invCameraMatrix[12 + i] / invCameraMatrix[15];\n }\n var w = invCameraMatrix[15];\n for (i = 0; i < 3; ++i) {\n w += this.lightPosition[i] * invCameraMatrix[4 * i + 3];\n }\n for (i = 0; i < 3; ++i) {\n var s = invCameraMatrix[12 + i];\n for (j = 0; j < 3; ++j) {\n s += invCameraMatrix[4 * j + i] * this.lightPosition[j];\n }\n uniforms.lightPosition[i] = s / w;\n }\n var projectData = computeProjectionData(uniforms, this);\n if (projectData.showSurface) {\n this._shader.bind();\n this._shader.uniforms = uniforms;\n this._vao.bind();\n if (this.showSurface && this._vertexCount) {\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n }\n for (i = 0; i < 3; ++i) {\n if (!this.surfaceProject[i] || !this.vertexCount) {\n continue;\n }\n this._shader.uniforms.model = projectData.projections[i];\n this._shader.uniforms.clipBounds = projectData.clipBounds[i];\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n }\n this._vao.unbind();\n }\n if (projectData.showContour) {\n var shader = this._contourShader;\n uniforms.kambient = 1;\n uniforms.kdiffuse = 0;\n uniforms.kspecular = 0;\n uniforms.opacity = 1;\n shader.bind();\n shader.uniforms = uniforms;\n var vao = this._contourVAO;\n vao.bind();\n for (i = 0; i < 3; ++i) {\n shader.uniforms.permutation = PERMUTATIONS[i];\n gl2.lineWidth(this.contourWidth[i] * this.pixelRatio);\n for (j = 0; j < this.contourLevels[i].length; ++j) {\n if (j === this.highlightLevel[i]) {\n shader.uniforms.contourColor = this.highlightColor[i];\n shader.uniforms.contourTint = this.highlightTint[i];\n } else if (j === 0 || j - 1 === this.highlightLevel[i]) {\n shader.uniforms.contourColor = this.contourColor[i];\n shader.uniforms.contourTint = this.contourTint[i];\n }\n if (!this._contourCounts[i][j]) {\n continue;\n }\n shader.uniforms.height = this.contourLevels[i][j];\n vao.draw(gl2.LINES, this._contourCounts[i][j], this._contourOffsets[i][j]);\n }\n }\n for (i = 0; i < 3; ++i) {\n shader.uniforms.model = projectData.projections[i];\n shader.uniforms.clipBounds = projectData.clipBounds[i];\n for (j = 0; j < 3; ++j) {\n if (!this.contourProject[i][j]) {\n continue;\n }\n shader.uniforms.permutation = PERMUTATIONS[j];\n gl2.lineWidth(this.contourWidth[j] * this.pixelRatio);\n for (var k = 0; k < this.contourLevels[j].length; ++k) {\n if (k === this.highlightLevel[j]) {\n shader.uniforms.contourColor = this.highlightColor[j];\n shader.uniforms.contourTint = this.highlightTint[j];\n } else if (k === 0 || k - 1 === this.highlightLevel[j]) {\n shader.uniforms.contourColor = this.contourColor[j];\n shader.uniforms.contourTint = this.contourTint[j];\n }\n if (!this._contourCounts[j][k]) {\n continue;\n }\n shader.uniforms.height = this.contourLevels[j][k];\n vao.draw(gl2.LINES, this._contourCounts[j][k], this._contourOffsets[j][k]);\n }\n }\n }\n vao.unbind();\n vao = this._dynamicVAO;\n vao.bind();\n for (i = 0; i < 3; ++i) {\n if (this._dynamicCounts[i] === 0) {\n continue;\n }\n shader.uniforms.model = uniforms.model;\n shader.uniforms.clipBounds = uniforms.clipBounds;\n shader.uniforms.permutation = PERMUTATIONS[i];\n gl2.lineWidth(this.dynamicWidth[i] * this.pixelRatio);\n shader.uniforms.contourColor = this.dynamicColor[i];\n shader.uniforms.contourTint = this.dynamicTint[i];\n shader.uniforms.height = this.dynamicLevel[i];\n vao.draw(gl2.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]);\n for (j = 0; j < 3; ++j) {\n if (!this.contourProject[j][i]) {\n continue;\n }\n shader.uniforms.model = projectData.projections[j];\n shader.uniforms.clipBounds = projectData.clipBounds[j];\n vao.draw(gl2.LINES, this._dynamicCounts[i], this._dynamicOffsets[i]);\n }\n }\n vao.unbind();\n }\n }\n proto.draw = function(params) {\n return drawCore.call(this, params, false);\n };\n proto.drawTransparent = function(params) {\n return drawCore.call(this, params, true);\n };\n var PICK_UNIFORMS = {\n model: IDENTITY,\n view: IDENTITY,\n projection: IDENTITY,\n inverseModel: IDENTITY,\n clipBounds: [[0, 0, 0], [0, 0, 0]],\n height: 0,\n shape: [0, 0],\n pickId: 0,\n lowerBound: [0, 0, 0],\n upperBound: [0, 0, 0],\n zOffset: 0,\n objectOffset: [0, 0, 0],\n permutation: [1, 0, 0, 0, 1, 0, 0, 0, 1],\n lightPosition: [0, 0, 0],\n eyePosition: [0, 0, 0]\n };\n proto.drawPick = function(params) {\n params = params || {};\n var gl2 = this.gl;\n gl2.disable(gl2.CULL_FACE);\n var uniforms = PICK_UNIFORMS;\n uniforms.model = params.model || IDENTITY;\n uniforms.view = params.view || IDENTITY;\n uniforms.projection = params.projection || IDENTITY;\n uniforms.shape = this._field[2].shape;\n uniforms.pickId = this.pickId / 255;\n uniforms.lowerBound = this.bounds[0];\n uniforms.upperBound = this.bounds[1];\n uniforms.objectOffset = this.objectOffset;\n uniforms.permutation = DEFAULT_PERM;\n for (var i = 0; i < 2; ++i) {\n var clipClamped = uniforms.clipBounds[i];\n for (var j = 0; j < 3; ++j) {\n clipClamped[j] = Math.min(Math.max(this.clipBounds[i][j], -1e8), 1e8);\n }\n }\n var projectData = computeProjectionData(uniforms, this);\n if (projectData.showSurface) {\n this._pickShader.bind();\n this._pickShader.uniforms = uniforms;\n this._vao.bind();\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n for (i = 0; i < 3; ++i) {\n if (!this.surfaceProject[i]) {\n continue;\n }\n this._pickShader.uniforms.model = projectData.projections[i];\n this._pickShader.uniforms.clipBounds = projectData.clipBounds[i];\n this._vao.draw(gl2.TRIANGLES, this._vertexCount);\n }\n this._vao.unbind();\n }\n if (projectData.showContour) {\n var shader = this._contourPickShader;\n shader.bind();\n shader.uniforms = uniforms;\n var vao = this._contourVAO;\n vao.bind();\n for (j = 0; j < 3; ++j) {\n gl2.lineWidth(this.contourWidth[j] * this.pixelRatio);\n shader.uniforms.permutation = PERMUTATIONS[j];\n for (i = 0; i < this.contourLevels[j].length; ++i) {\n if (this._contourCounts[j][i]) {\n shader.uniforms.height = this.contourLevels[j][i];\n vao.draw(gl2.LINES, this._contourCounts[j][i], this._contourOffsets[j][i]);\n }\n }\n }\n for (i = 0; i < 3; ++i) {\n shader.uniforms.model = projectData.projections[i];\n shader.uniforms.clipBounds = projectData.clipBounds[i];\n for (j = 0; j < 3; ++j) {\n if (!this.contourProject[i][j]) {\n continue;\n }\n shader.uniforms.permutation = PERMUTATIONS[j];\n gl2.lineWidth(this.contourWidth[j] * this.pixelRatio);\n for (var k = 0; k < this.contourLevels[j].length; ++k) {\n if (this._contourCounts[j][k]) {\n shader.uniforms.height = this.contourLevels[j][k];\n vao.draw(gl2.LINES, this._contourCounts[j][k], this._contourOffsets[j][k]);\n }\n }\n }\n }\n vao.unbind();\n }\n };\n proto.pick = function(selection) {\n if (!selection) {\n return null;\n }\n if (selection.id !== this.pickId) {\n return null;\n }\n var shape = this._field[2].shape;\n var result = this._pickResult;\n var x = shape[0] * (selection.value[0] + (selection.value[2] >> 4) / 16) / 255;\n var ix = Math.floor(x);\n var fx = x - ix;\n var y = shape[1] * (selection.value[1] + (selection.value[2] & 15) / 16) / 255;\n var iy = Math.floor(y);\n var fy = y - iy;\n ix += 1;\n iy += 1;\n var pos = result.position;\n pos[0] = pos[1] = pos[2] = 0;\n for (var dx = 0; dx < 2; ++dx) {\n var s = dx ? fx : 1 - fx;\n for (var dy = 0; dy < 2; ++dy) {\n var t = dy ? fy : 1 - fy;\n var r = ix + dx;\n var c = iy + dy;\n var w = s * t;\n for (var i = 0; i < 3; ++i) {\n pos[i] += this._field[i].get(r, c) * w;\n }\n }\n }\n var levelIndex = this._pickResult.level;\n for (var j = 0; j < 3; ++j) {\n levelIndex[j] = bsearch.le(this.contourLevels[j], pos[j]);\n if (levelIndex[j] < 0) {\n if (this.contourLevels[j].length > 0) {\n levelIndex[j] = 0;\n }\n } else if (levelIndex[j] < this.contourLevels[j].length - 1) {\n var a = this.contourLevels[j][levelIndex[j]];\n var b = this.contourLevels[j][levelIndex[j] + 1];\n if (Math.abs(a - pos[j]) > Math.abs(b - pos[j])) {\n levelIndex[j] += 1;\n }\n }\n }\n result.index[0] = fx < 0.5 ? ix : ix + 1;\n result.index[1] = fy < 0.5 ? iy : iy + 1;\n result.uv[0] = x / shape[0];\n result.uv[1] = y / shape[1];\n for (i = 0; i < 3; ++i) {\n result.dataCoordinate[i] = this._field[i].get(result.index[0], result.index[1]);\n }\n return result;\n };\n proto.padField = function(dstField, srcField) {\n var srcShape = srcField.shape.slice();\n var dstShape = dstField.shape.slice();\n ops.assign(dstField.lo(1, 1).hi(srcShape[0], srcShape[1]), srcField);\n ops.assign(\n dstField.lo(1).hi(srcShape[0], 1),\n srcField.hi(srcShape[0], 1)\n );\n ops.assign(\n dstField.lo(1, dstShape[1] - 1).hi(srcShape[0], 1),\n srcField.lo(0, srcShape[1] - 1).hi(srcShape[0], 1)\n );\n ops.assign(\n dstField.lo(0, 1).hi(1, srcShape[1]),\n srcField.hi(1)\n );\n ops.assign(\n dstField.lo(dstShape[0] - 1, 1).hi(1, srcShape[1]),\n srcField.lo(srcShape[0] - 1)\n );\n dstField.set(0, 0, srcField.get(0, 0));\n dstField.set(0, dstShape[1] - 1, srcField.get(0, srcShape[1] - 1));\n dstField.set(dstShape[0] - 1, 0, srcField.get(srcShape[0] - 1, 0));\n dstField.set(dstShape[0] - 1, dstShape[1] - 1, srcField.get(srcShape[0] - 1, srcShape[1] - 1));\n };\n function handleArray(param, ctor) {\n if (Array.isArray(param)) {\n return [ctor(param[0]), ctor(param[1]), ctor(param[2])];\n }\n return [ctor(param), ctor(param), ctor(param)];\n }\n function toColor(x) {\n if (Array.isArray(x)) {\n if (x.length === 3) {\n return [x[0], x[1], x[2], 1];\n }\n return [x[0], x[1], x[2], x[3]];\n }\n return [0, 0, 0, 1];\n }\n function handleColor(param) {\n if (Array.isArray(param)) {\n if (Array.isArray(param)) {\n return [\n toColor(param[0]),\n toColor(param[1]),\n toColor(param[2])\n ];\n } else {\n var c = toColor(param);\n return [\n c.slice(),\n c.slice(),\n c.slice()\n ];\n }\n }\n }\n proto.update = function(params) {\n params = params || {};\n this.objectOffset = params.objectOffset || this.objectOffset;\n this.dirty = true;\n if (\"contourWidth\" in params) {\n this.contourWidth = handleArray(params.contourWidth, Number);\n }\n if (\"showContour\" in params) {\n this.showContour = handleArray(params.showContour, Boolean);\n }\n if (\"showSurface\" in params) {\n this.showSurface = !!params.showSurface;\n }\n if (\"contourTint\" in params) {\n this.contourTint = handleArray(params.contourTint, Boolean);\n }\n if (\"contourColor\" in params) {\n this.contourColor = handleColor(params.contourColor);\n }\n if (\"contourProject\" in params) {\n this.contourProject = handleArray(params.contourProject, function(x2) {\n return handleArray(x2, Boolean);\n });\n }\n if (\"surfaceProject\" in params) {\n this.surfaceProject = params.surfaceProject;\n }\n if (\"dynamicColor\" in params) {\n this.dynamicColor = handleColor(params.dynamicColor);\n }\n if (\"dynamicTint\" in params) {\n this.dynamicTint = handleArray(params.dynamicTint, Number);\n }\n if (\"dynamicWidth\" in params) {\n this.dynamicWidth = handleArray(params.dynamicWidth, Number);\n }\n if (\"opacity\" in params) {\n this.opacity = params.opacity;\n }\n if (\"opacityscale\" in params) {\n this.opacityscale = params.opacityscale;\n }\n if (\"colorBounds\" in params) {\n this.colorBounds = params.colorBounds;\n }\n if (\"vertexColor\" in params) {\n this.vertexColor = params.vertexColor ? 1 : 0;\n }\n if (\"colormap\" in params) {\n this._colorMap.setPixels(this.genColormap(params.colormap, this.opacityscale));\n }\n var field = params.field || params.coords && params.coords[2] || null;\n var levelsChanged = false;\n if (!field) {\n if (this._field[2].shape[0] || this._field[2].shape[2]) {\n field = this._field[2].lo(1, 1).hi(this._field[2].shape[0] - 2, this._field[2].shape[1] - 2);\n } else {\n field = this._field[2].hi(0, 0);\n }\n }\n if (\"field\" in params || \"coords\" in params) {\n var fsize = (field.shape[0] + 2) * (field.shape[1] + 2);\n if (fsize > this._field[2].data.length) {\n pool.freeFloat(this._field[2].data);\n this._field[2].data = pool.mallocFloat(bits.nextPow2(fsize));\n }\n this._field[2] = ndarray(this._field[2].data, [field.shape[0] + 2, field.shape[1] + 2]);\n this.padField(this._field[2], field);\n this.shape = field.shape.slice();\n var shape = this.shape;\n for (var i = 0; i < 2; ++i) {\n if (this._field[2].size > this._field[i].data.length) {\n pool.freeFloat(this._field[i].data);\n this._field[i].data = pool.mallocFloat(this._field[2].size);\n }\n this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2]);\n }\n if (params.coords) {\n var coords = params.coords;\n if (!Array.isArray(coords) || coords.length !== 3) {\n throw new Error(\"gl-surface: invalid coordinates for x/y\");\n }\n for (i = 0; i < 2; ++i) {\n var coord = coords[i];\n for (j = 0; j < 2; ++j) {\n if (coord.shape[j] !== shape[j]) {\n throw new Error(\"gl-surface: coords have incorrect shape\");\n }\n }\n this.padField(this._field[i], coord);\n }\n } else if (params.ticks) {\n var ticks = params.ticks;\n if (!Array.isArray(ticks) || ticks.length !== 2) {\n throw new Error(\"gl-surface: invalid ticks\");\n }\n for (i = 0; i < 2; ++i) {\n var tick = ticks[i];\n if (Array.isArray(tick) || tick.length) {\n tick = ndarray(tick);\n }\n if (tick.shape[0] !== shape[i]) {\n throw new Error(\"gl-surface: invalid tick length\");\n }\n var tick2 = ndarray(tick.data, shape);\n tick2.stride[i] = tick.stride[0];\n tick2.stride[i ^ 1] = 0;\n this.padField(this._field[i], tick2);\n }\n } else {\n for (i = 0; i < 2; ++i) {\n var offset = [0, 0];\n offset[i] = 1;\n this._field[i] = ndarray(this._field[i].data, [shape[0] + 2, shape[1] + 2], offset, 0);\n }\n this._field[0].set(0, 0, 0);\n for (var j = 0; j < shape[0]; ++j) {\n this._field[0].set(j + 1, 0, j);\n }\n this._field[0].set(shape[0] + 1, 0, shape[0] - 1);\n this._field[1].set(0, 0, 0);\n for (j = 0; j < shape[1]; ++j) {\n this._field[1].set(0, j + 1, j);\n }\n this._field[1].set(0, shape[1] + 1, shape[1] - 1);\n }\n var fields = this._field;\n var dfields = ndarray(pool.mallocFloat(fields[2].size * 3 * 2), [3, shape[0] + 2, shape[1] + 2, 2]);\n for (i = 0; i < 3; ++i) {\n gradient(dfields.pick(i), fields[i], \"mirror\");\n }\n var normals = ndarray(pool.mallocFloat(fields[2].size * 3), [shape[0] + 2, shape[1] + 2, 3]);\n for (i = 0; i < shape[0] + 2; ++i) {\n for (j = 0; j < shape[1] + 2; ++j) {\n var dxdu = dfields.get(0, i, j, 0);\n var dxdv = dfields.get(0, i, j, 1);\n var dydu = dfields.get(1, i, j, 0);\n var dydv = dfields.get(1, i, j, 1);\n var dzdu = dfields.get(2, i, j, 0);\n var dzdv = dfields.get(2, i, j, 1);\n var nx = dydu * dzdv - dydv * dzdu;\n var ny = dzdu * dxdv - dzdv * dxdu;\n var nz = dxdu * dydv - dxdv * dydu;\n var nl = Math.sqrt(nx * nx + ny * ny + nz * nz);\n if (nl < 1e-8) {\n nl = Math.max(Math.abs(nx), Math.abs(ny), Math.abs(nz));\n if (nl < 1e-8) {\n nz = 1;\n ny = nx = 0;\n nl = 1;\n } else {\n nl = 1 / nl;\n }\n } else {\n nl = 1 / Math.sqrt(nl);\n }\n normals.set(i, j, 0, nx * nl);\n normals.set(i, j, 1, ny * nl);\n normals.set(i, j, 2, nz * nl);\n }\n }\n pool.free(dfields.data);\n var lo = [Infinity, Infinity, Infinity];\n var hi = [-Infinity, -Infinity, -Infinity];\n var lo_intensity = Infinity;\n var hi_intensity = -Infinity;\n var count = (shape[0] - 1) * (shape[1] - 1) * 6;\n var tverts = pool.mallocFloat(bits.nextPow2(10 * count));\n var tptr = 0;\n var vertexCount = 0;\n for (i = 0; i < shape[0] - 1; ++i) {\n j_loop:\n for (j = 0; j < shape[1] - 1; ++j) {\n for (var dx = 0; dx < 2; ++dx) {\n for (var dy = 0; dy < 2; ++dy) {\n for (var k = 0; k < 3; ++k) {\n var f = this._field[k].get(1 + i + dx, 1 + j + dy);\n if (isNaN(f) || !isFinite(f)) {\n continue j_loop;\n }\n }\n }\n }\n for (k = 0; k < 6; ++k) {\n var r = i + QUAD[k][0];\n var c = j + QUAD[k][1];\n var tx = this._field[0].get(r + 1, c + 1);\n var ty = this._field[1].get(r + 1, c + 1);\n f = this._field[2].get(r + 1, c + 1);\n nx = normals.get(r + 1, c + 1, 0);\n ny = normals.get(r + 1, c + 1, 1);\n nz = normals.get(r + 1, c + 1, 2);\n if (params.intensity) {\n vf = params.intensity.get(r, c);\n }\n var vf = params.intensity ? params.intensity.get(r, c) : f + this.objectOffset[2];\n tverts[tptr++] = r;\n tverts[tptr++] = c;\n tverts[tptr++] = tx;\n tverts[tptr++] = ty;\n tverts[tptr++] = f;\n tverts[tptr++] = 0;\n tverts[tptr++] = vf;\n tverts[tptr++] = nx;\n tverts[tptr++] = ny;\n tverts[tptr++] = nz;\n lo[0] = Math.min(lo[0], tx + this.objectOffset[0]);\n lo[1] = Math.min(lo[1], ty + this.objectOffset[1]);\n lo[2] = Math.min(lo[2], f + this.objectOffset[2]);\n lo_intensity = Math.min(lo_intensity, vf);\n hi[0] = Math.max(hi[0], tx + this.objectOffset[0]);\n hi[1] = Math.max(hi[1], ty + this.objectOffset[1]);\n hi[2] = Math.max(hi[2], f + this.objectOffset[2]);\n hi_intensity = Math.max(hi_intensity, vf);\n vertexCount += 1;\n }\n }\n }\n if (params.intensityBounds) {\n lo_intensity = +params.intensityBounds[0];\n hi_intensity = +params.intensityBounds[1];\n }\n for (i = 6; i < tptr; i += 10) {\n tverts[i] = (tverts[i] - lo_intensity) / (hi_intensity - lo_intensity);\n }\n this._vertexCount = vertexCount;\n this._coordinateBuffer.update(tverts.subarray(0, tptr));\n pool.freeFloat(tverts);\n pool.free(normals.data);\n this.bounds = [lo, hi];\n this.intensity = params.intensity || this._field[2];\n if (this.intensityBounds[0] !== lo_intensity || this.intensityBounds[1] !== hi_intensity) {\n levelsChanged = true;\n }\n this.intensityBounds = [lo_intensity, hi_intensity];\n }\n if (\"levels\" in params) {\n var levels = params.levels;\n if (!Array.isArray(levels[0])) {\n levels = [[], [], levels];\n } else {\n levels = levels.slice();\n }\n for (i = 0; i < 3; ++i) {\n levels[i] = levels[i].slice();\n levels[i].sort(function(a, b) {\n return a - b;\n });\n }\n for (i = 0; i < 3; ++i) {\n for (j = 0; j < levels[i].length; ++j) {\n levels[i][j] -= this.objectOffset[i];\n }\n }\n change_test:\n for (i = 0; i < 3; ++i) {\n if (levels[i].length !== this.contourLevels[i].length) {\n levelsChanged = true;\n break;\n }\n for (j = 0; j < levels[i].length; ++j) {\n if (levels[i][j] !== this.contourLevels[i][j]) {\n levelsChanged = true;\n break change_test;\n }\n }\n }\n this.contourLevels = levels;\n }\n if (levelsChanged) {\n fields = this._field;\n shape = this.shape;\n var contourVerts = [];\n for (var dim = 0; dim < 3; ++dim) {\n var contourLevel = this.contourLevels[dim];\n var levelOffsets = [];\n var levelCounts = [];\n var parts = [0, 0, 0];\n for (i = 0; i < contourLevel.length; ++i) {\n var graph = surfaceNets(this._field[dim], contourLevel[i]);\n levelOffsets.push(contourVerts.length / 5 | 0);\n vertexCount = 0;\n edge_loop:\n for (j = 0; j < graph.cells.length; ++j) {\n var e = graph.cells[j];\n for (k = 0; k < 2; ++k) {\n var p = graph.positions[e[k]];\n var x = p[0];\n var ix = Math.floor(x) | 0;\n var fx = x - ix;\n var y = p[1];\n var iy = Math.floor(y) | 0;\n var fy = y - iy;\n var hole = false;\n axis_loop:\n for (var axis = 0; axis < 3; ++axis) {\n parts[axis] = 0;\n var iu = (dim + axis + 1) % 3;\n for (dx = 0; dx < 2; ++dx) {\n var s = dx ? fx : 1 - fx;\n r = Math.min(Math.max(ix + dx, 0), shape[0]) | 0;\n for (dy = 0; dy < 2; ++dy) {\n var t = dy ? fy : 1 - fy;\n c = Math.min(Math.max(iy + dy, 0), shape[1]) | 0;\n if (axis < 2) {\n f = this._field[iu].get(r, c);\n } else {\n f = (this.intensity.get(r, c) - this.intensityBounds[0]) / (this.intensityBounds[1] - this.intensityBounds[0]);\n }\n if (!isFinite(f) || isNaN(f)) {\n hole = true;\n break axis_loop;\n }\n var w = s * t;\n parts[axis] += w * f;\n }\n }\n }\n if (!hole) {\n contourVerts.push(\n parts[0],\n parts[1],\n p[0],\n p[1],\n parts[2]\n );\n vertexCount += 1;\n } else {\n if (k > 0) {\n for (var l = 0; l < 5; ++l) {\n contourVerts.pop();\n }\n vertexCount -= 1;\n }\n continue edge_loop;\n }\n }\n }\n levelCounts.push(vertexCount);\n }\n this._contourOffsets[dim] = levelOffsets;\n this._contourCounts[dim] = levelCounts;\n }\n var floatBuffer = pool.mallocFloat(contourVerts.length);\n for (i = 0; i < contourVerts.length; ++i) {\n floatBuffer[i] = contourVerts[i];\n }\n this._contourBuffer.update(floatBuffer);\n pool.freeFloat(floatBuffer);\n }\n };\n proto.dispose = function() {\n this._shader.dispose();\n this._vao.dispose();\n this._coordinateBuffer.dispose();\n this._colorMap.dispose();\n this._contourBuffer.dispose();\n this._contourVAO.dispose();\n this._contourShader.dispose();\n this._contourPickShader.dispose();\n this._dynamicBuffer.dispose();\n this._dynamicVAO.dispose();\n for (var i = 0; i < 3; ++i) {\n pool.freeFloat(this._field[i].data);\n }\n };\n proto.highlight = function(selection) {\n var i;\n if (!selection) {\n this._dynamicCounts = [0, 0, 0];\n this.dyanamicLevel = [NaN, NaN, NaN];\n this.highlightLevel = [-1, -1, -1];\n return;\n }\n for (i = 0; i < 3; ++i) {\n if (this.enableHighlight[i]) {\n this.highlightLevel[i] = selection.level[i];\n } else {\n this.highlightLevel[i] = -1;\n }\n }\n var levels;\n if (this.snapToData) {\n levels = selection.dataCoordinate;\n } else {\n levels = selection.position;\n }\n for (i = 0; i < 3; ++i) {\n levels[i] -= this.objectOffset[i];\n }\n if ((!this.enableDynamic[0] || levels[0] === this.dynamicLevel[0]) && (!this.enableDynamic[1] || levels[1] === this.dynamicLevel[1]) && (!this.enableDynamic[2] || levels[2] === this.dynamicLevel[2])) {\n return;\n }\n var vertexCount = 0;\n var shape = this.shape;\n var scratchBuffer = pool.mallocFloat(12 * shape[0] * shape[1]);\n for (var d = 0; d < 3; ++d) {\n if (!this.enableDynamic[d]) {\n this.dynamicLevel[d] = NaN;\n this._dynamicCounts[d] = 0;\n continue;\n }\n this.dynamicLevel[d] = levels[d];\n var u = (d + 1) % 3;\n var v = (d + 2) % 3;\n var f = this._field[d];\n var g = this._field[u];\n var h = this._field[v];\n var graph = surfaceNets(f, levels[d]);\n var edges = graph.cells;\n var positions = graph.positions;\n this._dynamicOffsets[d] = vertexCount;\n for (i = 0; i < edges.length; ++i) {\n var e = edges[i];\n for (var j = 0; j < 2; ++j) {\n var p = positions[e[j]];\n var x = +p[0];\n var ix = x | 0;\n var jx = Math.min(ix + 1, shape[0]) | 0;\n var fx = x - ix;\n var hx = 1 - fx;\n var y = +p[1];\n var iy = y | 0;\n var jy = Math.min(iy + 1, shape[1]) | 0;\n var fy = y - iy;\n var hy = 1 - fy;\n var w00 = hx * hy;\n var w01 = hx * fy;\n var w10 = fx * hy;\n var w11 = fx * fy;\n var cu = w00 * g.get(ix, iy) + w01 * g.get(ix, jy) + w10 * g.get(jx, iy) + w11 * g.get(jx, jy);\n var cv = w00 * h.get(ix, iy) + w01 * h.get(ix, jy) + w10 * h.get(jx, iy) + w11 * h.get(jx, jy);\n if (isNaN(cu) || isNaN(cv)) {\n if (j) {\n vertexCount -= 1;\n }\n break;\n }\n scratchBuffer[2 * vertexCount + 0] = cu;\n scratchBuffer[2 * vertexCount + 1] = cv;\n vertexCount += 1;\n }\n }\n this._dynamicCounts[d] = vertexCount - this._dynamicOffsets[d];\n }\n this._dynamicBuffer.update(scratchBuffer.subarray(0, 2 * vertexCount));\n pool.freeFloat(scratchBuffer);\n };\n function createSurfacePlot(params) {\n var gl2 = params.gl;\n var shader = createShader(gl2);\n var pickShader = createPickShader(gl2);\n var contourShader = createContourShader(gl2);\n var contourPickShader = createPickContourShader(gl2);\n var coordinateBuffer = createBuffer(gl2);\n var vao = createVAO(gl2, [\n {\n buffer: coordinateBuffer,\n size: 4,\n stride: SURFACE_VERTEX_SIZE,\n offset: 0\n },\n {\n buffer: coordinateBuffer,\n size: 3,\n stride: SURFACE_VERTEX_SIZE,\n offset: 16\n },\n {\n buffer: coordinateBuffer,\n size: 3,\n stride: SURFACE_VERTEX_SIZE,\n offset: 28\n }\n ]);\n var contourBuffer = createBuffer(gl2);\n var contourVAO = createVAO(gl2, [\n {\n buffer: contourBuffer,\n size: 4,\n stride: 20,\n offset: 0\n },\n {\n buffer: contourBuffer,\n size: 1,\n stride: 20,\n offset: 16\n }\n ]);\n var dynamicBuffer = createBuffer(gl2);\n var dynamicVAO = createVAO(gl2, [\n {\n buffer: dynamicBuffer,\n size: 2,\n type: gl2.FLOAT\n }\n ]);\n var cmap = createTexture(gl2, 1, N_COLORS, gl2.RGBA, gl2.UNSIGNED_BYTE);\n cmap.minFilter = gl2.LINEAR;\n cmap.magFilter = gl2.LINEAR;\n var surface = new SurfacePlot(\n gl2,\n [0, 0],\n // shape\n [[0, 0, 0], [0, 0, 0]],\n // bounds\n shader,\n pickShader,\n coordinateBuffer,\n vao,\n cmap,\n contourShader,\n contourPickShader,\n contourBuffer,\n contourVAO,\n dynamicBuffer,\n dynamicVAO,\n [0, 0, 0]\n // objectOffset\n );\n var nparams = {\n levels: [[], [], []]\n };\n for (var id in params) {\n nparams[id] = params[id];\n }\n nparams.colormap = nparams.colormap || \"jet\";\n surface.update(nparams);\n return surface;\n }\n }\n ),\n /***/\n 7766: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var ndarray = __webpack_require__2(9618);\n var ops = __webpack_require__2(5298);\n var pool = __webpack_require__2(1888);\n module2.exports = createTexture2D;\n var linearTypes = null;\n var filterTypes = null;\n var wrapTypes = null;\n function lazyInitLinearTypes(gl2) {\n linearTypes = [\n gl2.LINEAR,\n gl2.NEAREST_MIPMAP_LINEAR,\n gl2.LINEAR_MIPMAP_NEAREST,\n gl2.LINEAR_MIPMAP_NEAREST\n ];\n filterTypes = [\n gl2.NEAREST,\n gl2.LINEAR,\n gl2.NEAREST_MIPMAP_NEAREST,\n gl2.NEAREST_MIPMAP_LINEAR,\n gl2.LINEAR_MIPMAP_NEAREST,\n gl2.LINEAR_MIPMAP_LINEAR\n ];\n wrapTypes = [\n gl2.REPEAT,\n gl2.CLAMP_TO_EDGE,\n gl2.MIRRORED_REPEAT\n ];\n }\n function acceptTextureDOM(obj) {\n return \"undefined\" != typeof HTMLCanvasElement && obj instanceof HTMLCanvasElement || \"undefined\" != typeof HTMLImageElement && obj instanceof HTMLImageElement || \"undefined\" != typeof HTMLVideoElement && obj instanceof HTMLVideoElement || \"undefined\" != typeof ImageData && obj instanceof ImageData;\n }\n var convertFloatToUint8 = function(out, inp) {\n ops.muls(out, inp, 255);\n };\n function reshapeTexture(tex, w, h) {\n var gl2 = tex.gl;\n var maxSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n if (w < 0 || w > maxSize || h < 0 || h > maxSize) {\n throw new Error(\"gl-texture2d: Invalid texture size\");\n }\n tex._shape = [w, h];\n tex.bind();\n gl2.texImage2D(gl2.TEXTURE_2D, 0, tex.format, w, h, 0, tex.format, tex.type, null);\n tex._mipLevels = [0];\n return tex;\n }\n function Texture2D(gl2, handle, width, height, format, type) {\n this.gl = gl2;\n this.handle = handle;\n this.format = format;\n this.type = type;\n this._shape = [width, height];\n this._mipLevels = [0];\n this._magFilter = gl2.NEAREST;\n this._minFilter = gl2.NEAREST;\n this._wrapS = gl2.CLAMP_TO_EDGE;\n this._wrapT = gl2.CLAMP_TO_EDGE;\n this._anisoSamples = 1;\n var parent = this;\n var wrapVector = [this._wrapS, this._wrapT];\n Object.defineProperties(wrapVector, [\n {\n get: function() {\n return parent._wrapS;\n },\n set: function(v) {\n return parent.wrapS = v;\n }\n },\n {\n get: function() {\n return parent._wrapT;\n },\n set: function(v) {\n return parent.wrapT = v;\n }\n }\n ]);\n this._wrapVector = wrapVector;\n var shapeVector = [this._shape[0], this._shape[1]];\n Object.defineProperties(shapeVector, [\n {\n get: function() {\n return parent._shape[0];\n },\n set: function(v) {\n return parent.width = v;\n }\n },\n {\n get: function() {\n return parent._shape[1];\n },\n set: function(v) {\n return parent.height = v;\n }\n }\n ]);\n this._shapeVector = shapeVector;\n }\n var proto = Texture2D.prototype;\n Object.defineProperties(proto, {\n minFilter: {\n get: function() {\n return this._minFilter;\n },\n set: function(v) {\n this.bind();\n var gl2 = this.gl;\n if (this.type === gl2.FLOAT && linearTypes.indexOf(v) >= 0) {\n if (!gl2.getExtension(\"OES_texture_float_linear\")) {\n v = gl2.NEAREST;\n }\n }\n if (filterTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown filter mode \" + v);\n }\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, v);\n return this._minFilter = v;\n }\n },\n magFilter: {\n get: function() {\n return this._magFilter;\n },\n set: function(v) {\n this.bind();\n var gl2 = this.gl;\n if (this.type === gl2.FLOAT && linearTypes.indexOf(v) >= 0) {\n if (!gl2.getExtension(\"OES_texture_float_linear\")) {\n v = gl2.NEAREST;\n }\n }\n if (filterTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown filter mode \" + v);\n }\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, v);\n return this._magFilter = v;\n }\n },\n mipSamples: {\n get: function() {\n return this._anisoSamples;\n },\n set: function(i) {\n var psamples = this._anisoSamples;\n this._anisoSamples = Math.max(i, 1) | 0;\n if (psamples !== this._anisoSamples) {\n var ext = this.gl.getExtension(\"EXT_texture_filter_anisotropic\");\n if (ext) {\n this.gl.texParameterf(this.gl.TEXTURE_2D, ext.TEXTURE_MAX_ANISOTROPY_EXT, this._anisoSamples);\n }\n }\n return this._anisoSamples;\n }\n },\n wrapS: {\n get: function() {\n return this._wrapS;\n },\n set: function(v) {\n this.bind();\n if (wrapTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown wrap mode \" + v);\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_S, v);\n return this._wrapS = v;\n }\n },\n wrapT: {\n get: function() {\n return this._wrapT;\n },\n set: function(v) {\n this.bind();\n if (wrapTypes.indexOf(v) < 0) {\n throw new Error(\"gl-texture2d: Unknown wrap mode \" + v);\n }\n this.gl.texParameteri(this.gl.TEXTURE_2D, this.gl.TEXTURE_WRAP_T, v);\n return this._wrapT = v;\n }\n },\n wrap: {\n get: function() {\n return this._wrapVector;\n },\n set: function(v) {\n if (!Array.isArray(v)) {\n v = [v, v];\n }\n if (v.length !== 2) {\n throw new Error(\"gl-texture2d: Must specify wrap mode for rows and columns\");\n }\n for (var i = 0; i < 2; ++i) {\n if (wrapTypes.indexOf(v[i]) < 0) {\n throw new Error(\"gl-texture2d: Unknown wrap mode \" + v);\n }\n }\n this._wrapS = v[0];\n this._wrapT = v[1];\n var gl2 = this.gl;\n this.bind();\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, this._wrapS);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, this._wrapT);\n return v;\n }\n },\n shape: {\n get: function() {\n return this._shapeVector;\n },\n set: function(x) {\n if (!Array.isArray(x)) {\n x = [x | 0, x | 0];\n } else {\n if (x.length !== 2) {\n throw new Error(\"gl-texture2d: Invalid texture shape\");\n }\n }\n reshapeTexture(this, x[0] | 0, x[1] | 0);\n return [x[0] | 0, x[1] | 0];\n }\n },\n width: {\n get: function() {\n return this._shape[0];\n },\n set: function(w) {\n w = w | 0;\n reshapeTexture(this, w, this._shape[1]);\n return w;\n }\n },\n height: {\n get: function() {\n return this._shape[1];\n },\n set: function(h) {\n h = h | 0;\n reshapeTexture(this, this._shape[0], h);\n return h;\n }\n }\n });\n proto.bind = function(unit) {\n var gl2 = this.gl;\n if (unit !== void 0) {\n gl2.activeTexture(gl2.TEXTURE0 + (unit | 0));\n }\n gl2.bindTexture(gl2.TEXTURE_2D, this.handle);\n if (unit !== void 0) {\n return unit | 0;\n }\n return gl2.getParameter(gl2.ACTIVE_TEXTURE) - gl2.TEXTURE0;\n };\n proto.dispose = function() {\n this.gl.deleteTexture(this.handle);\n };\n proto.generateMipmap = function() {\n this.bind();\n this.gl.generateMipmap(this.gl.TEXTURE_2D);\n var l = Math.min(this._shape[0], this._shape[1]);\n for (var i = 0; l > 0; ++i, l >>>= 1) {\n if (this._mipLevels.indexOf(i) < 0) {\n this._mipLevels.push(i);\n }\n }\n };\n proto.setPixels = function(data, x_off, y_off, mip_level) {\n var gl2 = this.gl;\n this.bind();\n if (Array.isArray(x_off)) {\n mip_level = y_off;\n y_off = x_off[1] | 0;\n x_off = x_off[0] | 0;\n } else {\n x_off = x_off || 0;\n y_off = y_off || 0;\n }\n mip_level = mip_level || 0;\n var directData = acceptTextureDOM(data) ? data : data.raw;\n if (directData) {\n var needsMip = this._mipLevels.indexOf(mip_level) < 0;\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, this.format, this.format, this.type, directData);\n this._mipLevels.push(mip_level);\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, this.format, this.type, directData);\n }\n } else if (data.shape && data.stride && data.data) {\n if (data.shape.length < 2 || x_off + data.shape[1] > this._shape[1] >>> mip_level || y_off + data.shape[0] > this._shape[0] >>> mip_level || x_off < 0 || y_off < 0) {\n throw new Error(\"gl-texture2d: Texture dimensions are out of bounds\");\n }\n texSubImageArray(gl2, x_off, y_off, mip_level, this.format, this.type, this._mipLevels, data);\n } else {\n throw new Error(\"gl-texture2d: Unsupported data type\");\n }\n };\n function isPacked(shape, stride) {\n if (shape.length === 3) {\n return stride[2] === 1 && stride[1] === shape[0] * shape[2] && stride[0] === shape[2];\n }\n return stride[0] === 1 && stride[1] === shape[0];\n }\n function texSubImageArray(gl2, x_off, y_off, mip_level, cformat, ctype, mipLevels, array) {\n var dtype = array.dtype;\n var shape = array.shape.slice();\n if (shape.length < 2 || shape.length > 3) {\n throw new Error(\"gl-texture2d: Invalid ndarray, must be 2d or 3d\");\n }\n var type = 0, format = 0;\n var packed = isPacked(shape, array.stride.slice());\n if (dtype === \"float32\") {\n type = gl2.FLOAT;\n } else if (dtype === \"float64\") {\n type = gl2.FLOAT;\n packed = false;\n dtype = \"float32\";\n } else if (dtype === \"uint8\") {\n type = gl2.UNSIGNED_BYTE;\n } else {\n type = gl2.UNSIGNED_BYTE;\n packed = false;\n dtype = \"uint8\";\n }\n var channels = 1;\n if (shape.length === 2) {\n format = gl2.LUMINANCE;\n shape = [shape[0], shape[1], 1];\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset);\n } else if (shape.length === 3) {\n if (shape[2] === 1) {\n format = gl2.ALPHA;\n } else if (shape[2] === 2) {\n format = gl2.LUMINANCE_ALPHA;\n } else if (shape[2] === 3) {\n format = gl2.RGB;\n } else if (shape[2] === 4) {\n format = gl2.RGBA;\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for pixel coords\");\n }\n channels = shape[2];\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for texture\");\n }\n if ((format === gl2.LUMINANCE || format === gl2.ALPHA) && (cformat === gl2.LUMINANCE || cformat === gl2.ALPHA)) {\n format = cformat;\n }\n if (format !== cformat) {\n throw new Error(\"gl-texture2d: Incompatible texture format for setPixels\");\n }\n var size = array.size;\n var needsMip = mipLevels.indexOf(mip_level) < 0;\n if (needsMip) {\n mipLevels.push(mip_level);\n }\n if (type === ctype && packed) {\n if (array.offset === 0 && array.data.length === size) {\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data);\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data);\n }\n } else {\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, array.data.subarray(array.offset, array.offset + size));\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, array.data.subarray(array.offset, array.offset + size));\n }\n }\n } else {\n var pack_buffer;\n if (ctype === gl2.FLOAT) {\n pack_buffer = pool.mallocFloat32(size);\n } else {\n pack_buffer = pool.mallocUint8(size);\n }\n var pack_view = ndarray(pack_buffer, shape, [shape[2], shape[2] * shape[0], 1]);\n if (type === gl2.FLOAT && ctype === gl2.UNSIGNED_BYTE) {\n convertFloatToUint8(pack_view, array);\n } else {\n ops.assign(pack_view, array);\n }\n if (needsMip) {\n gl2.texImage2D(gl2.TEXTURE_2D, mip_level, cformat, shape[0], shape[1], 0, cformat, ctype, pack_buffer.subarray(0, size));\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, mip_level, x_off, y_off, shape[0], shape[1], cformat, ctype, pack_buffer.subarray(0, size));\n }\n if (ctype === gl2.FLOAT) {\n pool.freeFloat32(pack_buffer);\n } else {\n pool.freeUint8(pack_buffer);\n }\n }\n }\n function initTexture(gl2) {\n var tex = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, tex);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.NEAREST);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.NEAREST);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.CLAMP_TO_EDGE);\n return tex;\n }\n function createTextureShape(gl2, width, height, format, type) {\n var maxTextureSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n if (width < 0 || width > maxTextureSize || height < 0 || height > maxTextureSize) {\n throw new Error(\"gl-texture2d: Invalid texture shape\");\n }\n if (type === gl2.FLOAT && !gl2.getExtension(\"OES_texture_float\")) {\n throw new Error(\"gl-texture2d: Floating point textures not supported on this platform\");\n }\n var tex = initTexture(gl2);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, format, width, height, 0, format, type, null);\n return new Texture2D(gl2, tex, width, height, format, type);\n }\n function createTextureDOM(gl2, directData, width, height, format, type) {\n var tex = initTexture(gl2);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, format, format, type, directData);\n return new Texture2D(gl2, tex, width, height, format, type);\n }\n function createTextureArray(gl2, array) {\n var dtype = array.dtype;\n var shape = array.shape.slice();\n var maxSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n if (shape[0] < 0 || shape[0] > maxSize || shape[1] < 0 || shape[1] > maxSize) {\n throw new Error(\"gl-texture2d: Invalid texture size\");\n }\n var packed = isPacked(shape, array.stride.slice());\n var type = 0;\n if (dtype === \"float32\") {\n type = gl2.FLOAT;\n } else if (dtype === \"float64\") {\n type = gl2.FLOAT;\n packed = false;\n dtype = \"float32\";\n } else if (dtype === \"uint8\") {\n type = gl2.UNSIGNED_BYTE;\n } else {\n type = gl2.UNSIGNED_BYTE;\n packed = false;\n dtype = \"uint8\";\n }\n var format = 0;\n if (shape.length === 2) {\n format = gl2.LUMINANCE;\n shape = [shape[0], shape[1], 1];\n array = ndarray(array.data, shape, [array.stride[0], array.stride[1], 1], array.offset);\n } else if (shape.length === 3) {\n if (shape[2] === 1) {\n format = gl2.ALPHA;\n } else if (shape[2] === 2) {\n format = gl2.LUMINANCE_ALPHA;\n } else if (shape[2] === 3) {\n format = gl2.RGB;\n } else if (shape[2] === 4) {\n format = gl2.RGBA;\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for pixel coords\");\n }\n } else {\n throw new Error(\"gl-texture2d: Invalid shape for texture\");\n }\n if (type === gl2.FLOAT && !gl2.getExtension(\"OES_texture_float\")) {\n type = gl2.UNSIGNED_BYTE;\n packed = false;\n }\n var buffer, buf_store;\n var size = array.size;\n if (!packed) {\n var stride = [shape[2], shape[2] * shape[0], 1];\n buf_store = pool.malloc(size, dtype);\n var buf_array = ndarray(buf_store, shape, stride, 0);\n if ((dtype === \"float32\" || dtype === \"float64\") && type === gl2.UNSIGNED_BYTE) {\n convertFloatToUint8(buf_array, array);\n } else {\n ops.assign(buf_array, array);\n }\n buffer = buf_store.subarray(0, size);\n } else if (array.offset === 0 && array.data.length === size) {\n buffer = array.data;\n } else {\n buffer = array.data.subarray(array.offset, array.offset + size);\n }\n var tex = initTexture(gl2);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, format, shape[0], shape[1], 0, format, type, buffer);\n if (!packed) {\n pool.free(buf_store);\n }\n return new Texture2D(gl2, tex, shape[0], shape[1], format, type);\n }\n function createTexture2D(gl2) {\n if (arguments.length <= 1) {\n throw new Error(\"gl-texture2d: Missing arguments for texture2d constructor\");\n }\n if (!linearTypes) {\n lazyInitLinearTypes(gl2);\n }\n if (typeof arguments[1] === \"number\") {\n return createTextureShape(gl2, arguments[1], arguments[2], arguments[3] || gl2.RGBA, arguments[4] || gl2.UNSIGNED_BYTE);\n }\n if (Array.isArray(arguments[1])) {\n return createTextureShape(gl2, arguments[1][0] | 0, arguments[1][1] | 0, arguments[2] || gl2.RGBA, arguments[3] || gl2.UNSIGNED_BYTE);\n }\n if (typeof arguments[1] === \"object\") {\n var obj = arguments[1];\n var directData = acceptTextureDOM(obj) ? obj : obj.raw;\n if (directData) {\n return createTextureDOM(gl2, directData, obj.width | 0, obj.height | 0, arguments[2] || gl2.RGBA, arguments[3] || gl2.UNSIGNED_BYTE);\n } else if (obj.shape && obj.data && obj.stride) {\n return createTextureArray(gl2, obj);\n }\n }\n throw new Error(\"gl-texture2d: Invalid arguments for texture2d constructor\");\n }\n }\n ),\n /***/\n 1433: (\n /***/\n function(module2) {\n \"use strict\";\n function doBind(gl2, elements, attributes) {\n if (elements) {\n elements.bind();\n } else {\n gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, null);\n }\n var nattribs = gl2.getParameter(gl2.MAX_VERTEX_ATTRIBS) | 0;\n if (attributes) {\n if (attributes.length > nattribs) {\n throw new Error(\"gl-vao: Too many vertex attributes\");\n }\n for (var i = 0; i < attributes.length; ++i) {\n var attrib = attributes[i];\n if (attrib.buffer) {\n var buffer = attrib.buffer;\n var size = attrib.size || 4;\n var type = attrib.type || gl2.FLOAT;\n var normalized = !!attrib.normalized;\n var stride = attrib.stride || 0;\n var offset = attrib.offset || 0;\n buffer.bind();\n gl2.enableVertexAttribArray(i);\n gl2.vertexAttribPointer(i, size, type, normalized, stride, offset);\n } else {\n if (typeof attrib === \"number\") {\n gl2.vertexAttrib1f(i, attrib);\n } else if (attrib.length === 1) {\n gl2.vertexAttrib1f(i, attrib[0]);\n } else if (attrib.length === 2) {\n gl2.vertexAttrib2f(i, attrib[0], attrib[1]);\n } else if (attrib.length === 3) {\n gl2.vertexAttrib3f(i, attrib[0], attrib[1], attrib[2]);\n } else if (attrib.length === 4) {\n gl2.vertexAttrib4f(i, attrib[0], attrib[1], attrib[2], attrib[3]);\n } else {\n throw new Error(\"gl-vao: Invalid vertex attribute\");\n }\n gl2.disableVertexAttribArray(i);\n }\n }\n for (; i < nattribs; ++i) {\n gl2.disableVertexAttribArray(i);\n }\n } else {\n gl2.bindBuffer(gl2.ARRAY_BUFFER, null);\n for (var i = 0; i < nattribs; ++i) {\n gl2.disableVertexAttribArray(i);\n }\n }\n }\n module2.exports = doBind;\n }\n ),\n /***/\n 870: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bindAttribs = __webpack_require__2(1433);\n function VAOEmulated(gl2) {\n this.gl = gl2;\n this._elements = null;\n this._attributes = null;\n this._elementsType = gl2.UNSIGNED_SHORT;\n }\n VAOEmulated.prototype.bind = function() {\n bindAttribs(this.gl, this._elements, this._attributes);\n };\n VAOEmulated.prototype.update = function(attributes, elements, elementsType) {\n this._elements = elements;\n this._attributes = attributes;\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT;\n };\n VAOEmulated.prototype.dispose = function() {\n };\n VAOEmulated.prototype.unbind = function() {\n };\n VAOEmulated.prototype.draw = function(mode, count, offset) {\n offset = offset || 0;\n var gl2 = this.gl;\n if (this._elements) {\n gl2.drawElements(mode, count, this._elementsType, offset);\n } else {\n gl2.drawArrays(mode, offset, count);\n }\n };\n function createVAOEmulated(gl2) {\n return new VAOEmulated(gl2);\n }\n module2.exports = createVAOEmulated;\n }\n ),\n /***/\n 7518: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bindAttribs = __webpack_require__2(1433);\n function VertexAttribute(location2, dimension, a, b, c, d) {\n this.location = location2;\n this.dimension = dimension;\n this.a = a;\n this.b = b;\n this.c = c;\n this.d = d;\n }\n VertexAttribute.prototype.bind = function(gl2) {\n switch (this.dimension) {\n case 1:\n gl2.vertexAttrib1f(this.location, this.a);\n break;\n case 2:\n gl2.vertexAttrib2f(this.location, this.a, this.b);\n break;\n case 3:\n gl2.vertexAttrib3f(this.location, this.a, this.b, this.c);\n break;\n case 4:\n gl2.vertexAttrib4f(this.location, this.a, this.b, this.c, this.d);\n break;\n }\n };\n function VAONative(gl2, ext, handle) {\n this.gl = gl2;\n this._ext = ext;\n this.handle = handle;\n this._attribs = [];\n this._useElements = false;\n this._elementsType = gl2.UNSIGNED_SHORT;\n }\n VAONative.prototype.bind = function() {\n this._ext.bindVertexArrayOES(this.handle);\n for (var i = 0; i < this._attribs.length; ++i) {\n this._attribs[i].bind(this.gl);\n }\n };\n VAONative.prototype.unbind = function() {\n this._ext.bindVertexArrayOES(null);\n };\n VAONative.prototype.dispose = function() {\n this._ext.deleteVertexArrayOES(this.handle);\n };\n VAONative.prototype.update = function(attributes, elements, elementsType) {\n this.bind();\n bindAttribs(this.gl, elements, attributes);\n this.unbind();\n this._attribs.length = 0;\n if (attributes)\n for (var i = 0; i < attributes.length; ++i) {\n var a = attributes[i];\n if (typeof a === \"number\") {\n this._attribs.push(new VertexAttribute(i, 1, a));\n } else if (Array.isArray(a)) {\n this._attribs.push(new VertexAttribute(i, a.length, a[0], a[1], a[2], a[3]));\n }\n }\n this._useElements = !!elements;\n this._elementsType = elementsType || this.gl.UNSIGNED_SHORT;\n };\n VAONative.prototype.draw = function(mode, count, offset) {\n offset = offset || 0;\n var gl2 = this.gl;\n if (this._useElements) {\n gl2.drawElements(mode, count, this._elementsType, offset);\n } else {\n gl2.drawArrays(mode, offset, count);\n }\n };\n function createVAONative(gl2, ext) {\n return new VAONative(gl2, ext, ext.createVertexArrayOES());\n }\n module2.exports = createVAONative;\n }\n ),\n /***/\n 8116: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var createVAONative = __webpack_require__2(7518);\n var createVAOEmulated = __webpack_require__2(870);\n function ExtensionShim(gl2) {\n this.bindVertexArrayOES = gl2.bindVertexArray.bind(gl2);\n this.createVertexArrayOES = gl2.createVertexArray.bind(gl2);\n this.deleteVertexArrayOES = gl2.deleteVertexArray.bind(gl2);\n }\n function createVAO(gl2, attributes, elements, elementsType) {\n var ext = gl2.createVertexArray ? new ExtensionShim(gl2) : gl2.getExtension(\"OES_vertex_array_object\");\n var vao;\n if (ext) {\n vao = createVAONative(gl2, ext);\n } else {\n vao = createVAOEmulated(gl2);\n }\n vao.update(attributes, elements, elementsType);\n return vao;\n }\n module2.exports = createVAO;\n }\n ),\n /***/\n 5632: (\n /***/\n function(module2) {\n module2.exports = add;\n function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n }\n }\n ),\n /***/\n 8192: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = angle;\n var fromValues = __webpack_require__2(2825);\n var normalize = __webpack_require__2(3536);\n var dot = __webpack_require__2(244);\n function angle(a, b) {\n var tempA = fromValues(a[0], a[1], a[2]);\n var tempB = fromValues(b[0], b[1], b[2]);\n normalize(tempA, tempA);\n normalize(tempB, tempB);\n var cosine = dot(tempA, tempB);\n if (cosine > 1) {\n return 0;\n } else {\n return Math.acos(cosine);\n }\n }\n }\n ),\n /***/\n 9226: (\n /***/\n function(module2) {\n module2.exports = ceil;\n function ceil(out, a) {\n out[0] = Math.ceil(a[0]);\n out[1] = Math.ceil(a[1]);\n out[2] = Math.ceil(a[2]);\n return out;\n }\n }\n ),\n /***/\n 3126: (\n /***/\n function(module2) {\n module2.exports = clone;\n function clone(a) {\n var out = new Float32Array(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n }\n ),\n /***/\n 3990: (\n /***/\n function(module2) {\n module2.exports = copy;\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n }\n ),\n /***/\n 1091: (\n /***/\n function(module2) {\n module2.exports = create;\n function create() {\n var out = new Float32Array(3);\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n return out;\n }\n }\n ),\n /***/\n 5911: (\n /***/\n function(module2) {\n module2.exports = cross;\n function cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2], bx = b[0], by = b[1], bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n }\n }\n ),\n /***/\n 5455: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(7056);\n }\n ),\n /***/\n 7056: (\n /***/\n function(module2) {\n module2.exports = distance;\n function distance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2];\n return Math.sqrt(x * x + y * y + z * z);\n }\n }\n ),\n /***/\n 4008: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(6690);\n }\n ),\n /***/\n 6690: (\n /***/\n function(module2) {\n module2.exports = divide;\n function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n return out;\n }\n }\n ),\n /***/\n 244: (\n /***/\n function(module2) {\n module2.exports = dot;\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n }\n ),\n /***/\n 2613: (\n /***/\n function(module2) {\n module2.exports = 1e-6;\n }\n ),\n /***/\n 9922: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = equals;\n var EPSILON = __webpack_require__2(2613);\n function equals(a, b) {\n var a0 = a[0];\n var a1 = a[1];\n var a2 = a[2];\n var b0 = b[0];\n var b1 = b[1];\n var b2 = b[2];\n return Math.abs(a0 - b0) <= EPSILON * Math.max(1, Math.abs(a0), Math.abs(b0)) && Math.abs(a1 - b1) <= EPSILON * Math.max(1, Math.abs(a1), Math.abs(b1)) && Math.abs(a2 - b2) <= EPSILON * Math.max(1, Math.abs(a2), Math.abs(b2));\n }\n }\n ),\n /***/\n 9265: (\n /***/\n function(module2) {\n module2.exports = exactEquals;\n function exactEquals(a, b) {\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2];\n }\n }\n ),\n /***/\n 2681: (\n /***/\n function(module2) {\n module2.exports = floor;\n function floor(out, a) {\n out[0] = Math.floor(a[0]);\n out[1] = Math.floor(a[1]);\n out[2] = Math.floor(a[2]);\n return out;\n }\n }\n ),\n /***/\n 5137: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = forEach;\n var vec = __webpack_require__2(1091)();\n function forEach(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 3;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n }\n }\n ),\n /***/\n 2825: (\n /***/\n function(module2) {\n module2.exports = fromValues;\n function fromValues(x, y, z) {\n var out = new Float32Array(3);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n }\n }\n ),\n /***/\n 2931: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = {\n EPSILON: __webpack_require__2(2613),\n create: __webpack_require__2(1091),\n clone: __webpack_require__2(3126),\n angle: __webpack_require__2(8192),\n fromValues: __webpack_require__2(2825),\n copy: __webpack_require__2(3990),\n set: __webpack_require__2(1463),\n equals: __webpack_require__2(9922),\n exactEquals: __webpack_require__2(9265),\n add: __webpack_require__2(5632),\n subtract: __webpack_require__2(6843),\n sub: __webpack_require__2(2229),\n multiply: __webpack_require__2(5847),\n mul: __webpack_require__2(4505),\n divide: __webpack_require__2(6690),\n div: __webpack_require__2(4008),\n min: __webpack_require__2(8107),\n max: __webpack_require__2(7417),\n floor: __webpack_require__2(2681),\n ceil: __webpack_require__2(9226),\n round: __webpack_require__2(2447),\n scale: __webpack_require__2(6621),\n scaleAndAdd: __webpack_require__2(8489),\n distance: __webpack_require__2(7056),\n dist: __webpack_require__2(5455),\n squaredDistance: __webpack_require__2(2953),\n sqrDist: __webpack_require__2(6141),\n length: __webpack_require__2(1387),\n len: __webpack_require__2(868),\n squaredLength: __webpack_require__2(3066),\n sqrLen: __webpack_require__2(5486),\n negate: __webpack_require__2(5093),\n inverse: __webpack_require__2(811),\n normalize: __webpack_require__2(3536),\n dot: __webpack_require__2(244),\n cross: __webpack_require__2(5911),\n lerp: __webpack_require__2(6658),\n random: __webpack_require__2(7636),\n transformMat4: __webpack_require__2(5673),\n transformMat3: __webpack_require__2(492),\n transformQuat: __webpack_require__2(264),\n rotateX: __webpack_require__2(6894),\n rotateY: __webpack_require__2(109),\n rotateZ: __webpack_require__2(8692),\n forEach: __webpack_require__2(5137)\n };\n }\n ),\n /***/\n 811: (\n /***/\n function(module2) {\n module2.exports = inverse;\n function inverse(out, a) {\n out[0] = 1 / a[0];\n out[1] = 1 / a[1];\n out[2] = 1 / a[2];\n return out;\n }\n }\n ),\n /***/\n 868: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(1387);\n }\n ),\n /***/\n 1387: (\n /***/\n function(module2) {\n module2.exports = length;\n function length(a) {\n var x = a[0], y = a[1], z = a[2];\n return Math.sqrt(x * x + y * y + z * z);\n }\n }\n ),\n /***/\n 6658: (\n /***/\n function(module2) {\n module2.exports = lerp;\n function lerp(out, a, b, t) {\n var ax = a[0], ay = a[1], az = a[2];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n return out;\n }\n }\n ),\n /***/\n 7417: (\n /***/\n function(module2) {\n module2.exports = max;\n function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n return out;\n }\n }\n ),\n /***/\n 8107: (\n /***/\n function(module2) {\n module2.exports = min;\n function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n return out;\n }\n }\n ),\n /***/\n 4505: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(5847);\n }\n ),\n /***/\n 5847: (\n /***/\n function(module2) {\n module2.exports = multiply;\n function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n return out;\n }\n }\n ),\n /***/\n 5093: (\n /***/\n function(module2) {\n module2.exports = negate;\n function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n return out;\n }\n }\n ),\n /***/\n 3536: (\n /***/\n function(module2) {\n module2.exports = normalize;\n function normalize(out, a) {\n var x = a[0], y = a[1], z = a[2];\n var len = x * x + y * y + z * z;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n }\n return out;\n }\n }\n ),\n /***/\n 7636: (\n /***/\n function(module2) {\n module2.exports = random;\n function random(out, scale) {\n scale = scale || 1;\n var r = Math.random() * 2 * Math.PI;\n var z = Math.random() * 2 - 1;\n var zScale = Math.sqrt(1 - z * z) * scale;\n out[0] = Math.cos(r) * zScale;\n out[1] = Math.sin(r) * zScale;\n out[2] = z * scale;\n return out;\n }\n }\n ),\n /***/\n 6894: (\n /***/\n function(module2) {\n module2.exports = rotateX;\n function rotateX(out, a, b, c) {\n var by = b[1];\n var bz = b[2];\n var py = a[1] - by;\n var pz = a[2] - bz;\n var sc = Math.sin(c);\n var cc = Math.cos(c);\n out[0] = a[0];\n out[1] = by + py * cc - pz * sc;\n out[2] = bz + py * sc + pz * cc;\n return out;\n }\n }\n ),\n /***/\n 109: (\n /***/\n function(module2) {\n module2.exports = rotateY;\n function rotateY(out, a, b, c) {\n var bx = b[0];\n var bz = b[2];\n var px = a[0] - bx;\n var pz = a[2] - bz;\n var sc = Math.sin(c);\n var cc = Math.cos(c);\n out[0] = bx + pz * sc + px * cc;\n out[1] = a[1];\n out[2] = bz + pz * cc - px * sc;\n return out;\n }\n }\n ),\n /***/\n 8692: (\n /***/\n function(module2) {\n module2.exports = rotateZ;\n function rotateZ(out, a, b, c) {\n var bx = b[0];\n var by = b[1];\n var px = a[0] - bx;\n var py = a[1] - by;\n var sc = Math.sin(c);\n var cc = Math.cos(c);\n out[0] = bx + px * cc - py * sc;\n out[1] = by + px * sc + py * cc;\n out[2] = a[2];\n return out;\n }\n }\n ),\n /***/\n 2447: (\n /***/\n function(module2) {\n module2.exports = round;\n function round(out, a) {\n out[0] = Math.round(a[0]);\n out[1] = Math.round(a[1]);\n out[2] = Math.round(a[2]);\n return out;\n }\n }\n ),\n /***/\n 6621: (\n /***/\n function(module2) {\n module2.exports = scale;\n function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n }\n }\n ),\n /***/\n 8489: (\n /***/\n function(module2) {\n module2.exports = scaleAndAdd;\n function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n return out;\n }\n }\n ),\n /***/\n 1463: (\n /***/\n function(module2) {\n module2.exports = set;\n function set(out, x, y, z) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n return out;\n }\n }\n ),\n /***/\n 6141: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(2953);\n }\n ),\n /***/\n 5486: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(3066);\n }\n ),\n /***/\n 2953: (\n /***/\n function(module2) {\n module2.exports = squaredDistance;\n function squaredDistance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2];\n return x * x + y * y + z * z;\n }\n }\n ),\n /***/\n 3066: (\n /***/\n function(module2) {\n module2.exports = squaredLength;\n function squaredLength(a) {\n var x = a[0], y = a[1], z = a[2];\n return x * x + y * y + z * z;\n }\n }\n ),\n /***/\n 2229: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(6843);\n }\n ),\n /***/\n 6843: (\n /***/\n function(module2) {\n module2.exports = subtract;\n function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n }\n }\n ),\n /***/\n 492: (\n /***/\n function(module2) {\n module2.exports = transformMat3;\n function transformMat3(out, a, m) {\n var x = a[0], y = a[1], z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n }\n }\n ),\n /***/\n 5673: (\n /***/\n function(module2) {\n module2.exports = transformMat4;\n function transformMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = m[3] * x + m[7] * y + m[11] * z + m[15];\n w = w || 1;\n out[0] = (m[0] * x + m[4] * y + m[8] * z + m[12]) / w;\n out[1] = (m[1] * x + m[5] * y + m[9] * z + m[13]) / w;\n out[2] = (m[2] * x + m[6] * y + m[10] * z + m[14]) / w;\n return out;\n }\n }\n ),\n /***/\n 264: (\n /***/\n function(module2) {\n module2.exports = transformQuat;\n function transformQuat(out, a, q) {\n var x = a[0], y = a[1], z = a[2], qx = q[0], qy = q[1], qz = q[2], qw = q[3], ix = qw * x + qy * z - qz * y, iy = qw * y + qz * x - qx * z, iz = qw * z + qx * y - qy * x, iw = -qx * x - qy * y - qz * z;\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n return out;\n }\n }\n ),\n /***/\n 4361: (\n /***/\n function(module2) {\n module2.exports = add;\n function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n return out;\n }\n }\n ),\n /***/\n 2335: (\n /***/\n function(module2) {\n module2.exports = clone;\n function clone(a) {\n var out = new Float32Array(4);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n }\n }\n ),\n /***/\n 2933: (\n /***/\n function(module2) {\n module2.exports = copy;\n function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n return out;\n }\n }\n ),\n /***/\n 7536: (\n /***/\n function(module2) {\n module2.exports = create;\n function create() {\n var out = new Float32Array(4);\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n return out;\n }\n }\n ),\n /***/\n 4691: (\n /***/\n function(module2) {\n module2.exports = distance;\n function distance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2], w = b[3] - a[3];\n return Math.sqrt(x * x + y * y + z * z + w * w);\n }\n }\n ),\n /***/\n 1373: (\n /***/\n function(module2) {\n module2.exports = divide;\n function divide(out, a, b) {\n out[0] = a[0] / b[0];\n out[1] = a[1] / b[1];\n out[2] = a[2] / b[2];\n out[3] = a[3] / b[3];\n return out;\n }\n }\n ),\n /***/\n 3750: (\n /***/\n function(module2) {\n module2.exports = dot;\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n }\n ),\n /***/\n 3390: (\n /***/\n function(module2) {\n module2.exports = fromValues;\n function fromValues(x, y, z, w) {\n var out = new Float32Array(4);\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n }\n }\n ),\n /***/\n 9970: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = {\n create: __webpack_require__2(7536),\n clone: __webpack_require__2(2335),\n fromValues: __webpack_require__2(3390),\n copy: __webpack_require__2(2933),\n set: __webpack_require__2(4578),\n add: __webpack_require__2(4361),\n subtract: __webpack_require__2(6860),\n multiply: __webpack_require__2(3576),\n divide: __webpack_require__2(1373),\n min: __webpack_require__2(2334),\n max: __webpack_require__2(160),\n scale: __webpack_require__2(9288),\n scaleAndAdd: __webpack_require__2(4844),\n distance: __webpack_require__2(4691),\n squaredDistance: __webpack_require__2(7960),\n length: __webpack_require__2(6808),\n squaredLength: __webpack_require__2(483),\n negate: __webpack_require__2(1498),\n inverse: __webpack_require__2(4494),\n normalize: __webpack_require__2(5177),\n dot: __webpack_require__2(3750),\n lerp: __webpack_require__2(2573),\n random: __webpack_require__2(9131),\n transformMat4: __webpack_require__2(5352),\n transformQuat: __webpack_require__2(4041)\n };\n }\n ),\n /***/\n 4494: (\n /***/\n function(module2) {\n module2.exports = inverse;\n function inverse(out, a) {\n out[0] = 1 / a[0];\n out[1] = 1 / a[1];\n out[2] = 1 / a[2];\n out[3] = 1 / a[3];\n return out;\n }\n }\n ),\n /***/\n 6808: (\n /***/\n function(module2) {\n module2.exports = length;\n function length(a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n return Math.sqrt(x * x + y * y + z * z + w * w);\n }\n }\n ),\n /***/\n 2573: (\n /***/\n function(module2) {\n module2.exports = lerp;\n function lerp(out, a, b, t) {\n var ax = a[0], ay = a[1], az = a[2], aw = a[3];\n out[0] = ax + t * (b[0] - ax);\n out[1] = ay + t * (b[1] - ay);\n out[2] = az + t * (b[2] - az);\n out[3] = aw + t * (b[3] - aw);\n return out;\n }\n }\n ),\n /***/\n 160: (\n /***/\n function(module2) {\n module2.exports = max;\n function max(out, a, b) {\n out[0] = Math.max(a[0], b[0]);\n out[1] = Math.max(a[1], b[1]);\n out[2] = Math.max(a[2], b[2]);\n out[3] = Math.max(a[3], b[3]);\n return out;\n }\n }\n ),\n /***/\n 2334: (\n /***/\n function(module2) {\n module2.exports = min;\n function min(out, a, b) {\n out[0] = Math.min(a[0], b[0]);\n out[1] = Math.min(a[1], b[1]);\n out[2] = Math.min(a[2], b[2]);\n out[3] = Math.min(a[3], b[3]);\n return out;\n }\n }\n ),\n /***/\n 3576: (\n /***/\n function(module2) {\n module2.exports = multiply;\n function multiply(out, a, b) {\n out[0] = a[0] * b[0];\n out[1] = a[1] * b[1];\n out[2] = a[2] * b[2];\n out[3] = a[3] * b[3];\n return out;\n }\n }\n ),\n /***/\n 1498: (\n /***/\n function(module2) {\n module2.exports = negate;\n function negate(out, a) {\n out[0] = -a[0];\n out[1] = -a[1];\n out[2] = -a[2];\n out[3] = -a[3];\n return out;\n }\n }\n ),\n /***/\n 5177: (\n /***/\n function(module2) {\n module2.exports = normalize;\n function normalize(out, a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n var len = x * x + y * y + z * z + w * w;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n out[0] = x * len;\n out[1] = y * len;\n out[2] = z * len;\n out[3] = w * len;\n }\n return out;\n }\n }\n ),\n /***/\n 9131: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var vecNormalize = __webpack_require__2(5177);\n var vecScale = __webpack_require__2(9288);\n module2.exports = random;\n function random(out, scale) {\n scale = scale || 1;\n out[0] = Math.random();\n out[1] = Math.random();\n out[2] = Math.random();\n out[3] = Math.random();\n vecNormalize(out, out);\n vecScale(out, out, scale);\n return out;\n }\n }\n ),\n /***/\n 9288: (\n /***/\n function(module2) {\n module2.exports = scale;\n function scale(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n }\n }\n ),\n /***/\n 4844: (\n /***/\n function(module2) {\n module2.exports = scaleAndAdd;\n function scaleAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n return out;\n }\n }\n ),\n /***/\n 4578: (\n /***/\n function(module2) {\n module2.exports = set;\n function set(out, x, y, z, w) {\n out[0] = x;\n out[1] = y;\n out[2] = z;\n out[3] = w;\n return out;\n }\n }\n ),\n /***/\n 7960: (\n /***/\n function(module2) {\n module2.exports = squaredDistance;\n function squaredDistance(a, b) {\n var x = b[0] - a[0], y = b[1] - a[1], z = b[2] - a[2], w = b[3] - a[3];\n return x * x + y * y + z * z + w * w;\n }\n }\n ),\n /***/\n 483: (\n /***/\n function(module2) {\n module2.exports = squaredLength;\n function squaredLength(a) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n return x * x + y * y + z * z + w * w;\n }\n }\n ),\n /***/\n 6860: (\n /***/\n function(module2) {\n module2.exports = subtract;\n function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n return out;\n }\n }\n ),\n /***/\n 5352: (\n /***/\n function(module2) {\n module2.exports = transformMat4;\n function transformMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n }\n }\n ),\n /***/\n 4041: (\n /***/\n function(module2) {\n module2.exports = transformQuat;\n function transformQuat(out, a, q) {\n var x = a[0], y = a[1], z = a[2], qx = q[0], qy = q[1], qz = q[2], qw = q[3], ix = qw * x + qy * z - qz * y, iy = qw * y + qz * x - qx * z, iz = qw * z + qx * y - qy * x, iw = -qx * x - qy * y - qz * z;\n out[0] = ix * qw + iw * -qx + iy * -qz - iz * -qy;\n out[1] = iy * qw + iw * -qy + iz * -qx - ix * -qz;\n out[2] = iz * qw + iw * -qz + ix * -qy - iy * -qx;\n out[3] = a[3];\n return out;\n }\n }\n ),\n /***/\n 1848: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var tokenize = __webpack_require__2(4905);\n var atob2 = __webpack_require__2(6468);\n module2.exports = getName;\n function getName(src) {\n var tokens = Array.isArray(src) ? src : tokenize(src);\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (token.type !== \"preprocessor\") continue;\n var match = token.data.match(/\\#define\\s+SHADER_NAME(_B64)?\\s+(.+)$/);\n if (!match) continue;\n if (!match[2]) continue;\n var b64 = match[1];\n var name2 = match[2];\n return (b64 ? atob2(name2) : name2).trim();\n }\n }\n }\n ),\n /***/\n 5874: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = tokenize;\n var literals100 = __webpack_require__2(620), operators = __webpack_require__2(7827), builtins100 = __webpack_require__2(6852), literals300es = __webpack_require__2(7932), builtins300es = __webpack_require__2(3508);\n var NORMAL = 999, TOKEN = 9999, BLOCK_COMMENT = 0, LINE_COMMENT = 1, PREPROCESSOR = 2, OPERATOR = 3, INTEGER = 4, FLOAT = 5, IDENT = 6, BUILTIN = 7, KEYWORD = 8, WHITESPACE = 9, EOF = 10, HEX = 11;\n var map = [\n \"block-comment\",\n \"line-comment\",\n \"preprocessor\",\n \"operator\",\n \"integer\",\n \"float\",\n \"ident\",\n \"builtin\",\n \"keyword\",\n \"whitespace\",\n \"eof\",\n \"integer\"\n ];\n function tokenize(opt) {\n var i = 0, total = 0, mode = NORMAL, c, last, content = [], tokens = [], token_idx = 0, token_offs = 0, line = 1, col = 0, start = 0, isnum = false, isoperator = false, input = \"\", len;\n opt = opt || {};\n var allBuiltins = builtins100;\n var allLiterals = literals100;\n if (opt.version === \"300 es\") {\n allBuiltins = builtins300es;\n allLiterals = literals300es;\n }\n var builtinsDict = {}, literalsDict = {};\n for (var i = 0; i < allBuiltins.length; i++) {\n builtinsDict[allBuiltins[i]] = true;\n }\n for (var i = 0; i < allLiterals.length; i++) {\n literalsDict[allLiterals[i]] = true;\n }\n return function(data) {\n tokens = [];\n if (data !== null) return write(data);\n return end();\n };\n function token(data) {\n if (data.length) {\n tokens.push({\n type: map[mode],\n data,\n position: start,\n line,\n column: col\n });\n }\n }\n function write(chunk) {\n i = 0;\n if (chunk.toString) chunk = chunk.toString();\n input += chunk.replace(/\\r\\n/g, \"\\n\");\n len = input.length;\n var last2;\n while (c = input[i], i < len) {\n last2 = i;\n switch (mode) {\n case BLOCK_COMMENT:\n i = block_comment();\n break;\n case LINE_COMMENT:\n i = line_comment();\n break;\n case PREPROCESSOR:\n i = preprocessor();\n break;\n case OPERATOR:\n i = operator();\n break;\n case INTEGER:\n i = integer();\n break;\n case HEX:\n i = hex2();\n break;\n case FLOAT:\n i = decimal();\n break;\n case TOKEN:\n i = readtoken();\n break;\n case WHITESPACE:\n i = whitespace();\n break;\n case NORMAL:\n i = normal();\n break;\n }\n if (last2 !== i) {\n switch (input[last2]) {\n case \"\\n\":\n col = 0;\n ++line;\n break;\n default:\n ++col;\n break;\n }\n }\n }\n total += i;\n input = input.slice(i);\n return tokens;\n }\n function end(chunk) {\n if (content.length) {\n token(content.join(\"\"));\n }\n mode = EOF;\n token(\"(eof)\");\n return tokens;\n }\n function normal() {\n content = content.length ? [] : content;\n if (last === \"/\" && c === \"*\") {\n start = total + i - 1;\n mode = BLOCK_COMMENT;\n last = c;\n return i + 1;\n }\n if (last === \"/\" && c === \"/\") {\n start = total + i - 1;\n mode = LINE_COMMENT;\n last = c;\n return i + 1;\n }\n if (c === \"#\") {\n mode = PREPROCESSOR;\n start = total + i;\n return i;\n }\n if (/\\s/.test(c)) {\n mode = WHITESPACE;\n start = total + i;\n return i;\n }\n isnum = /\\d/.test(c);\n isoperator = /[^\\w_]/.test(c);\n start = total + i;\n mode = isnum ? INTEGER : isoperator ? OPERATOR : TOKEN;\n return i;\n }\n function whitespace() {\n if (/[^\\s]/g.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function preprocessor() {\n if ((c === \"\\r\" || c === \"\\n\") && last !== \"\\\\\") {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function line_comment() {\n return preprocessor();\n }\n function block_comment() {\n if (c === \"/\" && last === \"*\") {\n content.push(c);\n token(content.join(\"\"));\n mode = NORMAL;\n return i + 1;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function operator() {\n if (last === \".\" && /\\d/.test(c)) {\n mode = FLOAT;\n return i;\n }\n if (last === \"/\" && c === \"*\") {\n mode = BLOCK_COMMENT;\n return i;\n }\n if (last === \"/\" && c === \"/\") {\n mode = LINE_COMMENT;\n return i;\n }\n if (c === \".\" && content.length) {\n while (determine_operator(content)) ;\n mode = FLOAT;\n return i;\n }\n if (c === \";\" || c === \")\" || c === \"(\") {\n if (content.length) while (determine_operator(content)) ;\n token(c);\n mode = NORMAL;\n return i + 1;\n }\n var is_composite_operator = content.length === 2 && c !== \"=\";\n if (/[\\w_\\d\\s]/.test(c) || is_composite_operator) {\n while (determine_operator(content)) ;\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function determine_operator(buf) {\n var j = 0, idx, res;\n do {\n idx = operators.indexOf(buf.slice(0, buf.length + j).join(\"\"));\n res = operators[idx];\n if (idx === -1) {\n if (j-- + buf.length > 0) continue;\n res = buf.slice(0, 1).join(\"\");\n }\n token(res);\n start += res.length;\n content = content.slice(res.length);\n return content.length;\n } while (1);\n }\n function hex2() {\n if (/[^a-fA-F0-9]/.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function integer() {\n if (c === \".\") {\n content.push(c);\n mode = FLOAT;\n last = c;\n return i + 1;\n }\n if (/[eE]/.test(c)) {\n content.push(c);\n mode = FLOAT;\n last = c;\n return i + 1;\n }\n if (c === \"x\" && content.length === 1 && content[0] === \"0\") {\n mode = HEX;\n content.push(c);\n last = c;\n return i + 1;\n }\n if (/[^\\d]/.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function decimal() {\n if (c === \"f\") {\n content.push(c);\n last = c;\n i += 1;\n }\n if (/[eE]/.test(c)) {\n content.push(c);\n last = c;\n return i + 1;\n }\n if ((c === \"-\" || c === \"+\") && /[eE]/.test(last)) {\n content.push(c);\n last = c;\n return i + 1;\n }\n if (/[^\\d]/.test(c)) {\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n function readtoken() {\n if (/[^\\d\\w_]/.test(c)) {\n var contentstr = content.join(\"\");\n if (literalsDict[contentstr]) {\n mode = KEYWORD;\n } else if (builtinsDict[contentstr]) {\n mode = BUILTIN;\n } else {\n mode = IDENT;\n }\n token(content.join(\"\"));\n mode = NORMAL;\n return i;\n }\n content.push(c);\n last = c;\n return i + 1;\n }\n }\n }\n ),\n /***/\n 3508: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var v100 = __webpack_require__2(6852);\n v100 = v100.slice().filter(function(b) {\n return !/^(gl\\_|texture)/.test(b);\n });\n module2.exports = v100.concat([\n // the updated gl_ constants\n \"gl_VertexID\",\n \"gl_InstanceID\",\n \"gl_Position\",\n \"gl_PointSize\",\n \"gl_FragCoord\",\n \"gl_FrontFacing\",\n \"gl_FragDepth\",\n \"gl_PointCoord\",\n \"gl_MaxVertexAttribs\",\n \"gl_MaxVertexUniformVectors\",\n \"gl_MaxVertexOutputVectors\",\n \"gl_MaxFragmentInputVectors\",\n \"gl_MaxVertexTextureImageUnits\",\n \"gl_MaxCombinedTextureImageUnits\",\n \"gl_MaxTextureImageUnits\",\n \"gl_MaxFragmentUniformVectors\",\n \"gl_MaxDrawBuffers\",\n \"gl_MinProgramTexelOffset\",\n \"gl_MaxProgramTexelOffset\",\n \"gl_DepthRangeParameters\",\n \"gl_DepthRange\",\n \"trunc\",\n \"round\",\n \"roundEven\",\n \"isnan\",\n \"isinf\",\n \"floatBitsToInt\",\n \"floatBitsToUint\",\n \"intBitsToFloat\",\n \"uintBitsToFloat\",\n \"packSnorm2x16\",\n \"unpackSnorm2x16\",\n \"packUnorm2x16\",\n \"unpackUnorm2x16\",\n \"packHalf2x16\",\n \"unpackHalf2x16\",\n \"outerProduct\",\n \"transpose\",\n \"determinant\",\n \"inverse\",\n \"texture\",\n \"textureSize\",\n \"textureProj\",\n \"textureLod\",\n \"textureOffset\",\n \"texelFetch\",\n \"texelFetchOffset\",\n \"textureProjOffset\",\n \"textureLodOffset\",\n \"textureProjLod\",\n \"textureProjLodOffset\",\n \"textureGrad\",\n \"textureGradOffset\",\n \"textureProjGrad\",\n \"textureProjGradOffset\"\n ]);\n }\n ),\n /***/\n 6852: (\n /***/\n function(module2) {\n module2.exports = [\n // Keep this list sorted\n \"abs\",\n \"acos\",\n \"all\",\n \"any\",\n \"asin\",\n \"atan\",\n \"ceil\",\n \"clamp\",\n \"cos\",\n \"cross\",\n \"dFdx\",\n \"dFdy\",\n \"degrees\",\n \"distance\",\n \"dot\",\n \"equal\",\n \"exp\",\n \"exp2\",\n \"faceforward\",\n \"floor\",\n \"fract\",\n \"gl_BackColor\",\n \"gl_BackLightModelProduct\",\n \"gl_BackLightProduct\",\n \"gl_BackMaterial\",\n \"gl_BackSecondaryColor\",\n \"gl_ClipPlane\",\n \"gl_ClipVertex\",\n \"gl_Color\",\n \"gl_DepthRange\",\n \"gl_DepthRangeParameters\",\n \"gl_EyePlaneQ\",\n \"gl_EyePlaneR\",\n \"gl_EyePlaneS\",\n \"gl_EyePlaneT\",\n \"gl_Fog\",\n \"gl_FogCoord\",\n \"gl_FogFragCoord\",\n \"gl_FogParameters\",\n \"gl_FragColor\",\n \"gl_FragCoord\",\n \"gl_FragData\",\n \"gl_FragDepth\",\n \"gl_FragDepthEXT\",\n \"gl_FrontColor\",\n \"gl_FrontFacing\",\n \"gl_FrontLightModelProduct\",\n \"gl_FrontLightProduct\",\n \"gl_FrontMaterial\",\n \"gl_FrontSecondaryColor\",\n \"gl_LightModel\",\n \"gl_LightModelParameters\",\n \"gl_LightModelProducts\",\n \"gl_LightProducts\",\n \"gl_LightSource\",\n \"gl_LightSourceParameters\",\n \"gl_MaterialParameters\",\n \"gl_MaxClipPlanes\",\n \"gl_MaxCombinedTextureImageUnits\",\n \"gl_MaxDrawBuffers\",\n \"gl_MaxFragmentUniformComponents\",\n \"gl_MaxLights\",\n \"gl_MaxTextureCoords\",\n \"gl_MaxTextureImageUnits\",\n \"gl_MaxTextureUnits\",\n \"gl_MaxVaryingFloats\",\n \"gl_MaxVertexAttribs\",\n \"gl_MaxVertexTextureImageUnits\",\n \"gl_MaxVertexUniformComponents\",\n \"gl_ModelViewMatrix\",\n \"gl_ModelViewMatrixInverse\",\n \"gl_ModelViewMatrixInverseTranspose\",\n \"gl_ModelViewMatrixTranspose\",\n \"gl_ModelViewProjectionMatrix\",\n \"gl_ModelViewProjectionMatrixInverse\",\n \"gl_ModelViewProjectionMatrixInverseTranspose\",\n \"gl_ModelViewProjectionMatrixTranspose\",\n \"gl_MultiTexCoord0\",\n \"gl_MultiTexCoord1\",\n \"gl_MultiTexCoord2\",\n \"gl_MultiTexCoord3\",\n \"gl_MultiTexCoord4\",\n \"gl_MultiTexCoord5\",\n \"gl_MultiTexCoord6\",\n \"gl_MultiTexCoord7\",\n \"gl_Normal\",\n \"gl_NormalMatrix\",\n \"gl_NormalScale\",\n \"gl_ObjectPlaneQ\",\n \"gl_ObjectPlaneR\",\n \"gl_ObjectPlaneS\",\n \"gl_ObjectPlaneT\",\n \"gl_Point\",\n \"gl_PointCoord\",\n \"gl_PointParameters\",\n \"gl_PointSize\",\n \"gl_Position\",\n \"gl_ProjectionMatrix\",\n \"gl_ProjectionMatrixInverse\",\n \"gl_ProjectionMatrixInverseTranspose\",\n \"gl_ProjectionMatrixTranspose\",\n \"gl_SecondaryColor\",\n \"gl_TexCoord\",\n \"gl_TextureEnvColor\",\n \"gl_TextureMatrix\",\n \"gl_TextureMatrixInverse\",\n \"gl_TextureMatrixInverseTranspose\",\n \"gl_TextureMatrixTranspose\",\n \"gl_Vertex\",\n \"greaterThan\",\n \"greaterThanEqual\",\n \"inversesqrt\",\n \"length\",\n \"lessThan\",\n \"lessThanEqual\",\n \"log\",\n \"log2\",\n \"matrixCompMult\",\n \"max\",\n \"min\",\n \"mix\",\n \"mod\",\n \"normalize\",\n \"not\",\n \"notEqual\",\n \"pow\",\n \"radians\",\n \"reflect\",\n \"refract\",\n \"sign\",\n \"sin\",\n \"smoothstep\",\n \"sqrt\",\n \"step\",\n \"tan\",\n \"texture2D\",\n \"texture2DLod\",\n \"texture2DProj\",\n \"texture2DProjLod\",\n \"textureCube\",\n \"textureCubeLod\",\n \"texture2DLodEXT\",\n \"texture2DProjLodEXT\",\n \"textureCubeLodEXT\",\n \"texture2DGradEXT\",\n \"texture2DProjGradEXT\",\n \"textureCubeGradEXT\"\n ];\n }\n ),\n /***/\n 7932: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var v100 = __webpack_require__2(620);\n module2.exports = v100.slice().concat([\n \"layout\",\n \"centroid\",\n \"smooth\",\n \"case\",\n \"mat2x2\",\n \"mat2x3\",\n \"mat2x4\",\n \"mat3x2\",\n \"mat3x3\",\n \"mat3x4\",\n \"mat4x2\",\n \"mat4x3\",\n \"mat4x4\",\n \"uvec2\",\n \"uvec3\",\n \"uvec4\",\n \"samplerCubeShadow\",\n \"sampler2DArray\",\n \"sampler2DArrayShadow\",\n \"isampler2D\",\n \"isampler3D\",\n \"isamplerCube\",\n \"isampler2DArray\",\n \"usampler2D\",\n \"usampler3D\",\n \"usamplerCube\",\n \"usampler2DArray\",\n \"coherent\",\n \"restrict\",\n \"readonly\",\n \"writeonly\",\n \"resource\",\n \"atomic_uint\",\n \"noperspective\",\n \"patch\",\n \"sample\",\n \"subroutine\",\n \"common\",\n \"partition\",\n \"active\",\n \"filter\",\n \"image1D\",\n \"image2D\",\n \"image3D\",\n \"imageCube\",\n \"iimage1D\",\n \"iimage2D\",\n \"iimage3D\",\n \"iimageCube\",\n \"uimage1D\",\n \"uimage2D\",\n \"uimage3D\",\n \"uimageCube\",\n \"image1DArray\",\n \"image2DArray\",\n \"iimage1DArray\",\n \"iimage2DArray\",\n \"uimage1DArray\",\n \"uimage2DArray\",\n \"image1DShadow\",\n \"image2DShadow\",\n \"image1DArrayShadow\",\n \"image2DArrayShadow\",\n \"imageBuffer\",\n \"iimageBuffer\",\n \"uimageBuffer\",\n \"sampler1DArray\",\n \"sampler1DArrayShadow\",\n \"isampler1D\",\n \"isampler1DArray\",\n \"usampler1D\",\n \"usampler1DArray\",\n \"isampler2DRect\",\n \"usampler2DRect\",\n \"samplerBuffer\",\n \"isamplerBuffer\",\n \"usamplerBuffer\",\n \"sampler2DMS\",\n \"isampler2DMS\",\n \"usampler2DMS\",\n \"sampler2DMSArray\",\n \"isampler2DMSArray\",\n \"usampler2DMSArray\"\n ]);\n }\n ),\n /***/\n 620: (\n /***/\n function(module2) {\n module2.exports = [\n // current\n \"precision\",\n \"highp\",\n \"mediump\",\n \"lowp\",\n \"attribute\",\n \"const\",\n \"uniform\",\n \"varying\",\n \"break\",\n \"continue\",\n \"do\",\n \"for\",\n \"while\",\n \"if\",\n \"else\",\n \"in\",\n \"out\",\n \"inout\",\n \"float\",\n \"int\",\n \"uint\",\n \"void\",\n \"bool\",\n \"true\",\n \"false\",\n \"discard\",\n \"return\",\n \"mat2\",\n \"mat3\",\n \"mat4\",\n \"vec2\",\n \"vec3\",\n \"vec4\",\n \"ivec2\",\n \"ivec3\",\n \"ivec4\",\n \"bvec2\",\n \"bvec3\",\n \"bvec4\",\n \"sampler1D\",\n \"sampler2D\",\n \"sampler3D\",\n \"samplerCube\",\n \"sampler1DShadow\",\n \"sampler2DShadow\",\n \"struct\",\n \"asm\",\n \"class\",\n \"union\",\n \"enum\",\n \"typedef\",\n \"template\",\n \"this\",\n \"packed\",\n \"goto\",\n \"switch\",\n \"default\",\n \"inline\",\n \"noinline\",\n \"volatile\",\n \"public\",\n \"static\",\n \"extern\",\n \"external\",\n \"interface\",\n \"long\",\n \"short\",\n \"double\",\n \"half\",\n \"fixed\",\n \"unsigned\",\n \"input\",\n \"output\",\n \"hvec2\",\n \"hvec3\",\n \"hvec4\",\n \"dvec2\",\n \"dvec3\",\n \"dvec4\",\n \"fvec2\",\n \"fvec3\",\n \"fvec4\",\n \"sampler2DRect\",\n \"sampler3DRect\",\n \"sampler2DRectShadow\",\n \"sizeof\",\n \"cast\",\n \"namespace\",\n \"using\"\n ];\n }\n ),\n /***/\n 7827: (\n /***/\n function(module2) {\n module2.exports = [\n \"<<=\",\n \">>=\",\n \"++\",\n \"--\",\n \"<<\",\n \">>\",\n \"<=\",\n \">=\",\n \"==\",\n \"!=\",\n \"&&\",\n \"||\",\n \"+=\",\n \"-=\",\n \"*=\",\n \"/=\",\n \"%=\",\n \"&=\",\n \"^^\",\n \"^=\",\n \"|=\",\n \"(\",\n \")\",\n \"[\",\n \"]\",\n \".\",\n \"!\",\n \"~\",\n \"*\",\n \"/\",\n \"%\",\n \"+\",\n \"-\",\n \"<\",\n \">\",\n \"&\",\n \"^\",\n \"|\",\n \"?\",\n \":\",\n \"=\",\n \",\",\n \";\",\n \"{\",\n \"}\"\n ];\n }\n ),\n /***/\n 4905: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var tokenize = __webpack_require__2(5874);\n module2.exports = tokenizeString;\n function tokenizeString(str, opt) {\n var generator = tokenize(opt);\n var tokens = [];\n tokens = tokens.concat(generator(str));\n tokens = tokens.concat(generator(null));\n return tokens;\n }\n }\n ),\n /***/\n 3236: (\n /***/\n function(module2) {\n module2.exports = function(strings) {\n if (typeof strings === \"string\") strings = [strings];\n var exprs = [].slice.call(arguments, 1);\n var parts = [];\n for (var i = 0; i < strings.length - 1; i++) {\n parts.push(strings[i], exprs[i] || \"\");\n }\n parts.push(strings[i]);\n return parts.join(\"\");\n };\n }\n ),\n /***/\n 7520: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var isBrowser = __webpack_require__2(9507);\n function detect() {\n var supported = false;\n try {\n var opts = Object.defineProperty({}, \"passive\", {\n get: function() {\n supported = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n window.removeEventListener(\"test\", null, opts);\n } catch (e) {\n supported = false;\n }\n return supported;\n }\n module2.exports = isBrowser && detect();\n }\n ),\n /***/\n 3778: (\n /***/\n function(__unused_webpack_module, exports2) {\n exports2.read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n exports2.write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n }\n ),\n /***/\n 8954: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = incrementalConvexHull;\n var orient = __webpack_require__2(3250);\n var compareCell = __webpack_require__2(6803).Fw;\n function Simplex(vertices, adjacent, boundary) {\n this.vertices = vertices;\n this.adjacent = adjacent;\n this.boundary = boundary;\n this.lastVisited = -1;\n }\n Simplex.prototype.flip = function() {\n var t = this.vertices[0];\n this.vertices[0] = this.vertices[1];\n this.vertices[1] = t;\n var u = this.adjacent[0];\n this.adjacent[0] = this.adjacent[1];\n this.adjacent[1] = u;\n };\n function GlueFacet(vertices, cell, index) {\n this.vertices = vertices;\n this.cell = cell;\n this.index = index;\n }\n function compareGlue(a, b) {\n return compareCell(a.vertices, b.vertices);\n }\n function wrapper(test) {\n return function() {\n var tuple = this.tuple;\n return test.apply(this, tuple);\n };\n }\n function bakeOrient(d) {\n var test = orient[d + 1];\n if (!test) {\n test = orient;\n }\n return wrapper(test);\n }\n var BAKED = [];\n function Triangulation(dimension, vertices, simplices) {\n this.dimension = dimension;\n this.vertices = vertices;\n this.simplices = simplices;\n this.interior = simplices.filter(function(c) {\n return !c.boundary;\n });\n this.tuple = new Array(dimension + 1);\n for (var i = 0; i <= dimension; ++i) {\n this.tuple[i] = this.vertices[i];\n }\n var o = BAKED[dimension];\n if (!o) {\n o = BAKED[dimension] = bakeOrient(dimension);\n }\n this.orient = o;\n }\n var proto = Triangulation.prototype;\n proto.handleBoundaryDegeneracy = function(cell, point) {\n var d = this.dimension;\n var n = this.vertices.length - 1;\n var tuple = this.tuple;\n var verts = this.vertices;\n var toVisit = [cell];\n cell.lastVisited = -n;\n while (toVisit.length > 0) {\n cell = toVisit.pop();\n var cellAdj = cell.adjacent;\n for (var i = 0; i <= d; ++i) {\n var neighbor = cellAdj[i];\n if (!neighbor.boundary || neighbor.lastVisited <= -n) {\n continue;\n }\n var nv = neighbor.vertices;\n for (var j = 0; j <= d; ++j) {\n var vv = nv[j];\n if (vv < 0) {\n tuple[j] = point;\n } else {\n tuple[j] = verts[vv];\n }\n }\n var o = this.orient();\n if (o > 0) {\n return neighbor;\n }\n neighbor.lastVisited = -n;\n if (o === 0) {\n toVisit.push(neighbor);\n }\n }\n }\n return null;\n };\n proto.walk = function(point, random) {\n var n = this.vertices.length - 1;\n var d = this.dimension;\n var verts = this.vertices;\n var tuple = this.tuple;\n var initIndex = random ? this.interior.length * Math.random() | 0 : this.interior.length - 1;\n var cell = this.interior[initIndex];\n outerLoop:\n while (!cell.boundary) {\n var cellVerts = cell.vertices;\n var cellAdj = cell.adjacent;\n for (var i = 0; i <= d; ++i) {\n tuple[i] = verts[cellVerts[i]];\n }\n cell.lastVisited = n;\n for (var i = 0; i <= d; ++i) {\n var neighbor = cellAdj[i];\n if (neighbor.lastVisited >= n) {\n continue;\n }\n var prev = tuple[i];\n tuple[i] = point;\n var o = this.orient();\n tuple[i] = prev;\n if (o < 0) {\n cell = neighbor;\n continue outerLoop;\n } else {\n if (!neighbor.boundary) {\n neighbor.lastVisited = n;\n } else {\n neighbor.lastVisited = -n;\n }\n }\n }\n return;\n }\n return cell;\n };\n proto.addPeaks = function(point, cell) {\n var n = this.vertices.length - 1;\n var d = this.dimension;\n var verts = this.vertices;\n var tuple = this.tuple;\n var interior = this.interior;\n var simplices = this.simplices;\n var tovisit = [cell];\n cell.lastVisited = n;\n cell.vertices[cell.vertices.indexOf(-1)] = n;\n cell.boundary = false;\n interior.push(cell);\n var glueFacets = [];\n while (tovisit.length > 0) {\n var cell = tovisit.pop();\n var cellVerts = cell.vertices;\n var cellAdj = cell.adjacent;\n var indexOfN = cellVerts.indexOf(n);\n if (indexOfN < 0) {\n continue;\n }\n for (var i = 0; i <= d; ++i) {\n if (i === indexOfN) {\n continue;\n }\n var neighbor = cellAdj[i];\n if (!neighbor.boundary || neighbor.lastVisited >= n) {\n continue;\n }\n var nv = neighbor.vertices;\n if (neighbor.lastVisited !== -n) {\n var indexOfNeg1 = 0;\n for (var j = 0; j <= d; ++j) {\n if (nv[j] < 0) {\n indexOfNeg1 = j;\n tuple[j] = point;\n } else {\n tuple[j] = verts[nv[j]];\n }\n }\n var o = this.orient();\n if (o > 0) {\n nv[indexOfNeg1] = n;\n neighbor.boundary = false;\n interior.push(neighbor);\n tovisit.push(neighbor);\n neighbor.lastVisited = n;\n continue;\n } else {\n neighbor.lastVisited = -n;\n }\n }\n var na = neighbor.adjacent;\n var vverts = cellVerts.slice();\n var vadj = cellAdj.slice();\n var ncell = new Simplex(vverts, vadj, true);\n simplices.push(ncell);\n var opposite = na.indexOf(cell);\n if (opposite < 0) {\n continue;\n }\n na[opposite] = ncell;\n vadj[indexOfN] = neighbor;\n vverts[i] = -1;\n vadj[i] = cell;\n cellAdj[i] = ncell;\n ncell.flip();\n for (var j = 0; j <= d; ++j) {\n var uu = vverts[j];\n if (uu < 0 || uu === n) {\n continue;\n }\n var nface = new Array(d - 1);\n var nptr = 0;\n for (var k = 0; k <= d; ++k) {\n var vv = vverts[k];\n if (vv < 0 || k === j) {\n continue;\n }\n nface[nptr++] = vv;\n }\n glueFacets.push(new GlueFacet(nface, ncell, j));\n }\n }\n }\n glueFacets.sort(compareGlue);\n for (var i = 0; i + 1 < glueFacets.length; i += 2) {\n var a = glueFacets[i];\n var b = glueFacets[i + 1];\n var ai = a.index;\n var bi = b.index;\n if (ai < 0 || bi < 0) {\n continue;\n }\n a.cell.adjacent[a.index] = b.cell;\n b.cell.adjacent[b.index] = a.cell;\n }\n };\n proto.insert = function(point, random) {\n var verts = this.vertices;\n verts.push(point);\n var cell = this.walk(point, random);\n if (!cell) {\n return;\n }\n var d = this.dimension;\n var tuple = this.tuple;\n for (var i = 0; i <= d; ++i) {\n var vv = cell.vertices[i];\n if (vv < 0) {\n tuple[i] = point;\n } else {\n tuple[i] = verts[vv];\n }\n }\n var o = this.orient(tuple);\n if (o < 0) {\n return;\n } else if (o === 0) {\n cell = this.handleBoundaryDegeneracy(cell, point);\n if (!cell) {\n return;\n }\n }\n this.addPeaks(point, cell);\n };\n proto.boundary = function() {\n var d = this.dimension;\n var boundary = [];\n var cells = this.simplices;\n var nc = cells.length;\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n if (c.boundary) {\n var bcell = new Array(d);\n var cv = c.vertices;\n var ptr = 0;\n var parity = 0;\n for (var j = 0; j <= d; ++j) {\n if (cv[j] >= 0) {\n bcell[ptr++] = cv[j];\n } else {\n parity = j & 1;\n }\n }\n if (parity === (d & 1)) {\n var t = bcell[0];\n bcell[0] = bcell[1];\n bcell[1] = t;\n }\n boundary.push(bcell);\n }\n }\n return boundary;\n };\n function incrementalConvexHull(points, randomSearch) {\n var n = points.length;\n if (n === 0) {\n throw new Error(\"Must have at least d+1 points\");\n }\n var d = points[0].length;\n if (n <= d) {\n throw new Error(\"Must input at least d+1 points\");\n }\n var initialSimplex = points.slice(0, d + 1);\n var o = orient.apply(void 0, initialSimplex);\n if (o === 0) {\n throw new Error(\"Input not in general position\");\n }\n var initialCoords = new Array(d + 1);\n for (var i = 0; i <= d; ++i) {\n initialCoords[i] = i;\n }\n if (o < 0) {\n initialCoords[0] = 1;\n initialCoords[1] = 0;\n }\n var initialCell = new Simplex(initialCoords, new Array(d + 1), false);\n var boundary = initialCell.adjacent;\n var list = new Array(d + 2);\n for (var i = 0; i <= d; ++i) {\n var verts = initialCoords.slice();\n for (var j = 0; j <= d; ++j) {\n if (j === i) {\n verts[j] = -1;\n }\n }\n var t = verts[0];\n verts[0] = verts[1];\n verts[1] = t;\n var cell = new Simplex(verts, new Array(d + 1), true);\n boundary[i] = cell;\n list[i] = cell;\n }\n list[d + 1] = initialCell;\n for (var i = 0; i <= d; ++i) {\n var verts = boundary[i].vertices;\n var adj = boundary[i].adjacent;\n for (var j = 0; j <= d; ++j) {\n var v = verts[j];\n if (v < 0) {\n adj[j] = initialCell;\n continue;\n }\n for (var k = 0; k <= d; ++k) {\n if (boundary[k].vertices.indexOf(v) < 0) {\n adj[j] = boundary[k];\n }\n }\n }\n }\n var triangles = new Triangulation(d, initialSimplex, list);\n var useRandom = !!randomSearch;\n for (var i = d + 1; i < n; ++i) {\n triangles.insert(points[i], useRandom);\n }\n return triangles.boundary();\n }\n }\n ),\n /***/\n 3352: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bounds = __webpack_require__2(2478);\n var NOT_FOUND = 0;\n var SUCCESS = 1;\n var EMPTY = 2;\n module2.exports = createWrapper;\n function IntervalTreeNode(mid, left, right, leftPoints, rightPoints) {\n this.mid = mid;\n this.left = left;\n this.right = right;\n this.leftPoints = leftPoints;\n this.rightPoints = rightPoints;\n this.count = (left ? left.count : 0) + (right ? right.count : 0) + leftPoints.length;\n }\n var proto = IntervalTreeNode.prototype;\n function copy(a, b) {\n a.mid = b.mid;\n a.left = b.left;\n a.right = b.right;\n a.leftPoints = b.leftPoints;\n a.rightPoints = b.rightPoints;\n a.count = b.count;\n }\n function rebuild(node, intervals) {\n var ntree = createIntervalTree(intervals);\n node.mid = ntree.mid;\n node.left = ntree.left;\n node.right = ntree.right;\n node.leftPoints = ntree.leftPoints;\n node.rightPoints = ntree.rightPoints;\n node.count = ntree.count;\n }\n function rebuildWithInterval(node, interval) {\n var intervals = node.intervals([]);\n intervals.push(interval);\n rebuild(node, intervals);\n }\n function rebuildWithoutInterval(node, interval) {\n var intervals = node.intervals([]);\n var idx = intervals.indexOf(interval);\n if (idx < 0) {\n return NOT_FOUND;\n }\n intervals.splice(idx, 1);\n rebuild(node, intervals);\n return SUCCESS;\n }\n proto.intervals = function(result) {\n result.push.apply(result, this.leftPoints);\n if (this.left) {\n this.left.intervals(result);\n }\n if (this.right) {\n this.right.intervals(result);\n }\n return result;\n };\n proto.insert = function(interval) {\n var weight = this.count - this.leftPoints.length;\n this.count += 1;\n if (interval[1] < this.mid) {\n if (this.left) {\n if (4 * (this.left.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.left.insert(interval);\n }\n } else {\n this.left = createIntervalTree([interval]);\n }\n } else if (interval[0] > this.mid) {\n if (this.right) {\n if (4 * (this.right.count + 1) > 3 * (weight + 1)) {\n rebuildWithInterval(this, interval);\n } else {\n this.right.insert(interval);\n }\n } else {\n this.right = createIntervalTree([interval]);\n }\n } else {\n var l = bounds.ge(this.leftPoints, interval, compareBegin);\n var r = bounds.ge(this.rightPoints, interval, compareEnd);\n this.leftPoints.splice(l, 0, interval);\n this.rightPoints.splice(r, 0, interval);\n }\n };\n proto.remove = function(interval) {\n var weight = this.count - this.leftPoints;\n if (interval[1] < this.mid) {\n if (!this.left) {\n return NOT_FOUND;\n }\n var rw = this.right ? this.right.count : 0;\n if (4 * rw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.left.remove(interval);\n if (r === EMPTY) {\n this.left = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else if (interval[0] > this.mid) {\n if (!this.right) {\n return NOT_FOUND;\n }\n var lw = this.left ? this.left.count : 0;\n if (4 * lw > 3 * (weight - 1)) {\n return rebuildWithoutInterval(this, interval);\n }\n var r = this.right.remove(interval);\n if (r === EMPTY) {\n this.right = null;\n this.count -= 1;\n return SUCCESS;\n } else if (r === SUCCESS) {\n this.count -= 1;\n }\n return r;\n } else {\n if (this.count === 1) {\n if (this.leftPoints[0] === interval) {\n return EMPTY;\n } else {\n return NOT_FOUND;\n }\n }\n if (this.leftPoints.length === 1 && this.leftPoints[0] === interval) {\n if (this.left && this.right) {\n var p = this;\n var n = this.left;\n while (n.right) {\n p = n;\n n = n.right;\n }\n if (p === this) {\n n.right = this.right;\n } else {\n var l = this.left;\n var r = this.right;\n p.count -= n.count;\n p.right = n.left;\n n.left = l;\n n.right = r;\n }\n copy(this, n);\n this.count = (this.left ? this.left.count : 0) + (this.right ? this.right.count : 0) + this.leftPoints.length;\n } else if (this.left) {\n copy(this, this.left);\n } else {\n copy(this, this.right);\n }\n return SUCCESS;\n }\n for (var l = bounds.ge(this.leftPoints, interval, compareBegin); l < this.leftPoints.length; ++l) {\n if (this.leftPoints[l][0] !== interval[0]) {\n break;\n }\n if (this.leftPoints[l] === interval) {\n this.count -= 1;\n this.leftPoints.splice(l, 1);\n for (var r = bounds.ge(this.rightPoints, interval, compareEnd); r < this.rightPoints.length; ++r) {\n if (this.rightPoints[r][1] !== interval[1]) {\n break;\n } else if (this.rightPoints[r] === interval) {\n this.rightPoints.splice(r, 1);\n return SUCCESS;\n }\n }\n }\n }\n return NOT_FOUND;\n }\n };\n function reportLeftRange(arr, hi, cb) {\n for (var i = 0; i < arr.length && arr[i][0] <= hi; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n }\n function reportRightRange(arr, lo, cb) {\n for (var i = arr.length - 1; i >= 0 && arr[i][1] >= lo; --i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n }\n function reportRange(arr, cb) {\n for (var i = 0; i < arr.length; ++i) {\n var r = cb(arr[i]);\n if (r) {\n return r;\n }\n }\n }\n proto.queryPoint = function(x, cb) {\n if (x < this.mid) {\n if (this.left) {\n var r = this.left.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportLeftRange(this.leftPoints, x, cb);\n } else if (x > this.mid) {\n if (this.right) {\n var r = this.right.queryPoint(x, cb);\n if (r) {\n return r;\n }\n }\n return reportRightRange(this.rightPoints, x, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n };\n proto.queryInterval = function(lo, hi, cb) {\n if (lo < this.mid && this.left) {\n var r = this.left.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi > this.mid && this.right) {\n var r = this.right.queryInterval(lo, hi, cb);\n if (r) {\n return r;\n }\n }\n if (hi < this.mid) {\n return reportLeftRange(this.leftPoints, hi, cb);\n } else if (lo > this.mid) {\n return reportRightRange(this.rightPoints, lo, cb);\n } else {\n return reportRange(this.leftPoints, cb);\n }\n };\n function compareNumbers(a, b) {\n return a - b;\n }\n function compareBegin(a, b) {\n var d = a[0] - b[0];\n if (d) {\n return d;\n }\n return a[1] - b[1];\n }\n function compareEnd(a, b) {\n var d = a[1] - b[1];\n if (d) {\n return d;\n }\n return a[0] - b[0];\n }\n function createIntervalTree(intervals) {\n if (intervals.length === 0) {\n return null;\n }\n var pts = [];\n for (var i = 0; i < intervals.length; ++i) {\n pts.push(intervals[i][0], intervals[i][1]);\n }\n pts.sort(compareNumbers);\n var mid = pts[pts.length >> 1];\n var leftIntervals = [];\n var rightIntervals = [];\n var centerIntervals = [];\n for (var i = 0; i < intervals.length; ++i) {\n var s = intervals[i];\n if (s[1] < mid) {\n leftIntervals.push(s);\n } else if (mid < s[0]) {\n rightIntervals.push(s);\n } else {\n centerIntervals.push(s);\n }\n }\n var leftPoints = centerIntervals;\n var rightPoints = centerIntervals.slice();\n leftPoints.sort(compareBegin);\n rightPoints.sort(compareEnd);\n return new IntervalTreeNode(\n mid,\n createIntervalTree(leftIntervals),\n createIntervalTree(rightIntervals),\n leftPoints,\n rightPoints\n );\n }\n function IntervalTree(root) {\n this.root = root;\n }\n var tproto = IntervalTree.prototype;\n tproto.insert = function(interval) {\n if (this.root) {\n this.root.insert(interval);\n } else {\n this.root = new IntervalTreeNode(interval[0], null, null, [interval], [interval]);\n }\n };\n tproto.remove = function(interval) {\n if (this.root) {\n var r = this.root.remove(interval);\n if (r === EMPTY) {\n this.root = null;\n }\n return r !== NOT_FOUND;\n }\n return false;\n };\n tproto.queryPoint = function(p, cb) {\n if (this.root) {\n return this.root.queryPoint(p, cb);\n }\n };\n tproto.queryInterval = function(lo, hi, cb) {\n if (lo <= hi && this.root) {\n return this.root.queryInterval(lo, hi, cb);\n }\n };\n Object.defineProperty(tproto, \"count\", {\n get: function() {\n if (this.root) {\n return this.root.count;\n }\n return 0;\n }\n });\n Object.defineProperty(tproto, \"intervals\", {\n get: function() {\n if (this.root) {\n return this.root.intervals([]);\n }\n return [];\n }\n });\n function createWrapper(intervals) {\n if (!intervals || intervals.length === 0) {\n return new IntervalTree(null);\n }\n return new IntervalTree(createIntervalTree(intervals));\n }\n }\n ),\n /***/\n 9507: (\n /***/\n function(module2) {\n module2.exports = true;\n }\n ),\n /***/\n 7163: (\n /***/\n function(module2) {\n module2.exports = function(obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer);\n };\n function isBuffer(obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === \"function\" && obj.constructor.isBuffer(obj);\n }\n function isSlowBuffer(obj) {\n return typeof obj.readFloatLE === \"function\" && typeof obj.slice === \"function\" && isBuffer(obj.slice(0, 0));\n }\n }\n ),\n /***/\n 5219: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = function(str) {\n var l = str.length, a;\n for (var i = 0; i < l; i++) {\n a = str.charCodeAt(i);\n if ((a < 9 || a > 13) && a !== 32 && a !== 133 && a !== 160 && a !== 5760 && a !== 6158 && (a < 8192 || a > 8205) && a !== 8232 && a !== 8233 && a !== 8239 && a !== 8287 && a !== 8288 && a !== 12288 && a !== 65279) {\n return false;\n }\n }\n return true;\n };\n }\n ),\n /***/\n 395: (\n /***/\n function(module2) {\n function lerp(v0, v1, t) {\n return v0 * (1 - t) + v1 * t;\n }\n module2.exports = lerp;\n }\n ),\n /***/\n 2652: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var normalize = __webpack_require__2(4335);\n var create = __webpack_require__2(6864);\n var clone = __webpack_require__2(1903);\n var determinant = __webpack_require__2(9921);\n var invert = __webpack_require__2(7608);\n var transpose = __webpack_require__2(5665);\n var vec3 = {\n length: __webpack_require__2(1387),\n normalize: __webpack_require__2(3536),\n dot: __webpack_require__2(244),\n cross: __webpack_require__2(5911)\n };\n var tmp = create();\n var perspectiveMatrix = create();\n var tmpVec4 = [0, 0, 0, 0];\n var row = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n var pdum3 = [0, 0, 0];\n module2.exports = function decomposeMat4(matrix, translation, scale, skew, perspective, quaternion) {\n if (!translation) translation = [0, 0, 0];\n if (!scale) scale = [0, 0, 0];\n if (!skew) skew = [0, 0, 0];\n if (!perspective) perspective = [0, 0, 0, 1];\n if (!quaternion) quaternion = [0, 0, 0, 1];\n if (!normalize(tmp, matrix))\n return false;\n clone(perspectiveMatrix, tmp);\n perspectiveMatrix[3] = 0;\n perspectiveMatrix[7] = 0;\n perspectiveMatrix[11] = 0;\n perspectiveMatrix[15] = 1;\n if (Math.abs(determinant(perspectiveMatrix) < 1e-8))\n return false;\n var a03 = tmp[3], a13 = tmp[7], a23 = tmp[11], a30 = tmp[12], a31 = tmp[13], a32 = tmp[14], a33 = tmp[15];\n if (a03 !== 0 || a13 !== 0 || a23 !== 0) {\n tmpVec4[0] = a03;\n tmpVec4[1] = a13;\n tmpVec4[2] = a23;\n tmpVec4[3] = a33;\n var ret = invert(perspectiveMatrix, perspectiveMatrix);\n if (!ret) return false;\n transpose(perspectiveMatrix, perspectiveMatrix);\n vec4multMat4(perspective, tmpVec4, perspectiveMatrix);\n } else {\n perspective[0] = perspective[1] = perspective[2] = 0;\n perspective[3] = 1;\n }\n translation[0] = a30;\n translation[1] = a31;\n translation[2] = a32;\n mat3from4(row, tmp);\n scale[0] = vec3.length(row[0]);\n vec3.normalize(row[0], row[0]);\n skew[0] = vec3.dot(row[0], row[1]);\n combine(row[1], row[1], row[0], 1, -skew[0]);\n scale[1] = vec3.length(row[1]);\n vec3.normalize(row[1], row[1]);\n skew[0] /= scale[1];\n skew[1] = vec3.dot(row[0], row[2]);\n combine(row[2], row[2], row[0], 1, -skew[1]);\n skew[2] = vec3.dot(row[1], row[2]);\n combine(row[2], row[2], row[1], 1, -skew[2]);\n scale[2] = vec3.length(row[2]);\n vec3.normalize(row[2], row[2]);\n skew[1] /= scale[2];\n skew[2] /= scale[2];\n vec3.cross(pdum3, row[1], row[2]);\n if (vec3.dot(row[0], pdum3) < 0) {\n for (var i = 0; i < 3; i++) {\n scale[i] *= -1;\n row[i][0] *= -1;\n row[i][1] *= -1;\n row[i][2] *= -1;\n }\n }\n quaternion[0] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] - row[1][1] - row[2][2], 0));\n quaternion[1] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] + row[1][1] - row[2][2], 0));\n quaternion[2] = 0.5 * Math.sqrt(Math.max(1 - row[0][0] - row[1][1] + row[2][2], 0));\n quaternion[3] = 0.5 * Math.sqrt(Math.max(1 + row[0][0] + row[1][1] + row[2][2], 0));\n if (row[2][1] > row[1][2])\n quaternion[0] = -quaternion[0];\n if (row[0][2] > row[2][0])\n quaternion[1] = -quaternion[1];\n if (row[1][0] > row[0][1])\n quaternion[2] = -quaternion[2];\n return true;\n };\n function vec4multMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n }\n function mat3from4(out, mat4x4) {\n out[0][0] = mat4x4[0];\n out[0][1] = mat4x4[1];\n out[0][2] = mat4x4[2];\n out[1][0] = mat4x4[4];\n out[1][1] = mat4x4[5];\n out[1][2] = mat4x4[6];\n out[2][0] = mat4x4[8];\n out[2][1] = mat4x4[9];\n out[2][2] = mat4x4[10];\n }\n function combine(out, a, b, scale1, scale2) {\n out[0] = a[0] * scale1 + b[0] * scale2;\n out[1] = a[1] * scale1 + b[1] * scale2;\n out[2] = a[2] * scale1 + b[2] * scale2;\n }\n }\n ),\n /***/\n 4335: (\n /***/\n function(module2) {\n module2.exports = function normalize(out, mat) {\n var m44 = mat[15];\n if (m44 === 0)\n return false;\n var scale = 1 / m44;\n for (var i = 0; i < 16; i++)\n out[i] = mat[i] * scale;\n return true;\n };\n }\n ),\n /***/\n 7442: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var lerp = __webpack_require__2(6658);\n var recompose = __webpack_require__2(7182);\n var decompose = __webpack_require__2(2652);\n var determinant = __webpack_require__2(9921);\n var slerp = __webpack_require__2(8648);\n var state0 = state();\n var state1 = state();\n var tmp = state();\n module2.exports = interpolate;\n function interpolate(out, start, end, alpha) {\n if (determinant(start) === 0 || determinant(end) === 0)\n return false;\n var r0 = decompose(start, state0.translate, state0.scale, state0.skew, state0.perspective, state0.quaternion);\n var r1 = decompose(end, state1.translate, state1.scale, state1.skew, state1.perspective, state1.quaternion);\n if (!r0 || !r1)\n return false;\n lerp(tmp.translate, state0.translate, state1.translate, alpha);\n lerp(tmp.skew, state0.skew, state1.skew, alpha);\n lerp(tmp.scale, state0.scale, state1.scale, alpha);\n lerp(tmp.perspective, state0.perspective, state1.perspective, alpha);\n slerp(tmp.quaternion, state0.quaternion, state1.quaternion, alpha);\n recompose(out, tmp.translate, tmp.scale, tmp.skew, tmp.perspective, tmp.quaternion);\n return true;\n }\n function state() {\n return {\n translate: vec3(),\n scale: vec3(1),\n skew: vec3(),\n perspective: vec4(),\n quaternion: vec4()\n };\n }\n function vec3(n) {\n return [n || 0, n || 0, n || 0];\n }\n function vec4() {\n return [0, 0, 0, 1];\n }\n }\n ),\n /***/\n 7182: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var mat4 = {\n identity: __webpack_require__2(7894),\n translate: __webpack_require__2(7656),\n multiply: __webpack_require__2(6760),\n create: __webpack_require__2(6864),\n scale: __webpack_require__2(2504),\n fromRotationTranslation: __webpack_require__2(6743)\n };\n var rotationMatrix = mat4.create();\n var temp = mat4.create();\n module2.exports = function recomposeMat4(matrix, translation, scale, skew, perspective, quaternion) {\n mat4.identity(matrix);\n mat4.fromRotationTranslation(matrix, quaternion, translation);\n matrix[3] = perspective[0];\n matrix[7] = perspective[1];\n matrix[11] = perspective[2];\n matrix[15] = perspective[3];\n mat4.identity(temp);\n if (skew[2] !== 0) {\n temp[9] = skew[2];\n mat4.multiply(matrix, matrix, temp);\n }\n if (skew[1] !== 0) {\n temp[9] = 0;\n temp[8] = skew[1];\n mat4.multiply(matrix, matrix, temp);\n }\n if (skew[0] !== 0) {\n temp[8] = 0;\n temp[4] = skew[0];\n mat4.multiply(matrix, matrix, temp);\n }\n mat4.scale(matrix, matrix, scale);\n return matrix;\n };\n }\n ),\n /***/\n 1811: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bsearch = __webpack_require__2(2478);\n var m4interp = __webpack_require__2(7442);\n var invert44 = __webpack_require__2(7608);\n var rotateX = __webpack_require__2(5567);\n var rotateY = __webpack_require__2(2408);\n var rotateZ = __webpack_require__2(7089);\n var lookAt = __webpack_require__2(6582);\n var translate = __webpack_require__2(7656);\n var scale = __webpack_require__2(2504);\n var normalize = __webpack_require__2(3536);\n var DEFAULT_CENTER = [0, 0, 0];\n module2.exports = createMatrixCameraController;\n function MatrixCameraController(initialMatrix) {\n this._components = initialMatrix.slice();\n this._time = [0];\n this.prevMatrix = initialMatrix.slice();\n this.nextMatrix = initialMatrix.slice();\n this.computedMatrix = initialMatrix.slice();\n this.computedInverse = initialMatrix.slice();\n this.computedEye = [0, 0, 0];\n this.computedUp = [0, 0, 0];\n this.computedCenter = [0, 0, 0];\n this.computedRadius = [0];\n this._limits = [-Infinity, Infinity];\n }\n var proto = MatrixCameraController.prototype;\n proto.recalcMatrix = function(t) {\n var time = this._time;\n var tidx = bsearch.le(time, t);\n var mat = this.computedMatrix;\n if (tidx < 0) {\n return;\n }\n var comps = this._components;\n if (tidx === time.length - 1) {\n var ptr = 16 * tidx;\n for (var i = 0; i < 16; ++i) {\n mat[i] = comps[ptr++];\n }\n } else {\n var dt = time[tidx + 1] - time[tidx];\n var ptr = 16 * tidx;\n var prev = this.prevMatrix;\n var allEqual = true;\n for (var i = 0; i < 16; ++i) {\n prev[i] = comps[ptr++];\n }\n var next = this.nextMatrix;\n for (var i = 0; i < 16; ++i) {\n next[i] = comps[ptr++];\n allEqual = allEqual && prev[i] === next[i];\n }\n if (dt < 1e-6 || allEqual) {\n for (var i = 0; i < 16; ++i) {\n mat[i] = prev[i];\n }\n } else {\n m4interp(mat, prev, next, (t - time[tidx]) / dt);\n }\n }\n var up = this.computedUp;\n up[0] = mat[1];\n up[1] = mat[5];\n up[2] = mat[9];\n normalize(up, up);\n var imat = this.computedInverse;\n invert44(imat, mat);\n var eye = this.computedEye;\n var w = imat[15];\n eye[0] = imat[12] / w;\n eye[1] = imat[13] / w;\n eye[2] = imat[14] / w;\n var center = this.computedCenter;\n var radius = Math.exp(this.computedRadius[0]);\n for (var i = 0; i < 3; ++i) {\n center[i] = eye[i] - mat[2 + 4 * i] * radius;\n }\n };\n proto.idle = function(t) {\n if (t < this.lastT()) {\n return;\n }\n var mc = this._components;\n var ptr = mc.length - 16;\n for (var i = 0; i < 16; ++i) {\n mc.push(mc[ptr++]);\n }\n this._time.push(t);\n };\n proto.flush = function(t) {\n var idx = bsearch.gt(this._time, t) - 2;\n if (idx < 0) {\n return;\n }\n this._time.splice(0, idx);\n this._components.splice(0, 16 * idx);\n };\n proto.lastT = function() {\n return this._time[this._time.length - 1];\n };\n proto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t);\n eye = eye || this.computedEye;\n center = center || DEFAULT_CENTER;\n up = up || this.computedUp;\n this.setMatrix(t, lookAt(this.computedMatrix, eye, center, up));\n var d2 = 0;\n for (var i = 0; i < 3; ++i) {\n d2 += Math.pow(center[i] - eye[i], 2);\n }\n d2 = Math.log(Math.sqrt(d2));\n this.computedRadius[0] = d2;\n };\n proto.rotate = function(t, yaw, pitch, roll) {\n this.recalcMatrix(t);\n var mat = this.computedInverse;\n if (yaw) rotateY(mat, mat, yaw);\n if (pitch) rotateX(mat, mat, pitch);\n if (roll) rotateZ(mat, mat, roll);\n this.setMatrix(t, invert44(this.computedMatrix, mat));\n };\n var tvec = [0, 0, 0];\n proto.pan = function(t, dx, dy, dz) {\n tvec[0] = -(dx || 0);\n tvec[1] = -(dy || 0);\n tvec[2] = -(dz || 0);\n this.recalcMatrix(t);\n var mat = this.computedInverse;\n translate(mat, mat, tvec);\n this.setMatrix(t, invert44(mat, mat));\n };\n proto.translate = function(t, dx, dy, dz) {\n tvec[0] = dx || 0;\n tvec[1] = dy || 0;\n tvec[2] = dz || 0;\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n translate(mat, mat, tvec);\n this.setMatrix(t, mat);\n };\n proto.setMatrix = function(t, mat) {\n if (t < this.lastT()) {\n return;\n }\n this._time.push(t);\n for (var i = 0; i < 16; ++i) {\n this._components.push(mat[i]);\n }\n };\n proto.setDistance = function(t, d) {\n this.computedRadius[0] = d;\n };\n proto.setDistanceLimits = function(a, b) {\n var lim = this._limits;\n lim[0] = a;\n lim[1] = b;\n };\n proto.getDistanceLimits = function(out) {\n var lim = this._limits;\n if (out) {\n out[0] = lim[0];\n out[1] = lim[1];\n return out;\n }\n return lim;\n };\n function createMatrixCameraController(options) {\n options = options || {};\n var matrix = options.matrix || [\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ];\n return new MatrixCameraController(matrix);\n }\n }\n ),\n /***/\n 3090: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = monotoneConvexHull2D;\n var orient = __webpack_require__2(3250)[3];\n function monotoneConvexHull2D(points) {\n var n = points.length;\n if (n < 3) {\n var result = new Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = i;\n }\n if (n === 2 && points[0][0] === points[1][0] && points[0][1] === points[1][1]) {\n return [0];\n }\n return result;\n }\n var sorted = new Array(n);\n for (var i = 0; i < n; ++i) {\n sorted[i] = i;\n }\n sorted.sort(function(a, b) {\n var d = points[a][0] - points[b][0];\n if (d) {\n return d;\n }\n return points[a][1] - points[b][1];\n });\n var lower = [sorted[0], sorted[1]];\n var upper = [sorted[0], sorted[1]];\n for (var i = 2; i < n; ++i) {\n var idx = sorted[i];\n var p = points[idx];\n var m = lower.length;\n while (m > 1 && orient(\n points[lower[m - 2]],\n points[lower[m - 1]],\n p\n ) <= 0) {\n m -= 1;\n lower.pop();\n }\n lower.push(idx);\n m = upper.length;\n while (m > 1 && orient(\n points[upper[m - 2]],\n points[upper[m - 1]],\n p\n ) >= 0) {\n m -= 1;\n upper.pop();\n }\n upper.push(idx);\n }\n var result = new Array(upper.length + lower.length - 2);\n var ptr = 0;\n for (var i = 0, nl = lower.length; i < nl; ++i) {\n result[ptr++] = lower[i];\n }\n for (var j = upper.length - 2; j > 0; --j) {\n result[ptr++] = upper[j];\n }\n return result;\n }\n }\n ),\n /***/\n 351: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = mouseListen;\n var mouse = __webpack_require__2(4687);\n function mouseListen(element, callback) {\n if (!callback) {\n callback = element;\n element = window;\n }\n var buttonState = 0;\n var x = 0;\n var y = 0;\n var mods = {\n shift: false,\n alt: false,\n control: false,\n meta: false\n };\n var attached = false;\n function updateMods(ev) {\n var changed = false;\n if (\"altKey\" in ev) {\n changed = changed || ev.altKey !== mods.alt;\n mods.alt = !!ev.altKey;\n }\n if (\"shiftKey\" in ev) {\n changed = changed || ev.shiftKey !== mods.shift;\n mods.shift = !!ev.shiftKey;\n }\n if (\"ctrlKey\" in ev) {\n changed = changed || ev.ctrlKey !== mods.control;\n mods.control = !!ev.ctrlKey;\n }\n if (\"metaKey\" in ev) {\n changed = changed || ev.metaKey !== mods.meta;\n mods.meta = !!ev.metaKey;\n }\n return changed;\n }\n function handleEvent(nextButtons, ev) {\n var nextX = mouse.x(ev);\n var nextY = mouse.y(ev);\n if (\"buttons\" in ev) {\n nextButtons = ev.buttons | 0;\n }\n if (nextButtons !== buttonState || nextX !== x || nextY !== y || updateMods(ev)) {\n buttonState = nextButtons | 0;\n x = nextX || 0;\n y = nextY || 0;\n callback && callback(buttonState, x, y, mods);\n }\n }\n function clearState(ev) {\n handleEvent(0, ev);\n }\n function handleBlur() {\n if (buttonState || x || y || mods.shift || mods.alt || mods.meta || mods.control) {\n x = y = 0;\n buttonState = 0;\n mods.shift = mods.alt = mods.control = mods.meta = false;\n callback && callback(0, 0, 0, mods);\n }\n }\n function handleMods(ev) {\n if (updateMods(ev)) {\n callback && callback(buttonState, x, y, mods);\n }\n }\n function handleMouseMove(ev) {\n if (mouse.buttons(ev) === 0) {\n handleEvent(0, ev);\n } else {\n handleEvent(buttonState, ev);\n }\n }\n function handleMouseDown(ev) {\n handleEvent(buttonState | mouse.buttons(ev), ev);\n }\n function handleMouseUp(ev) {\n handleEvent(buttonState & ~mouse.buttons(ev), ev);\n }\n function attachListeners() {\n if (attached) {\n return;\n }\n attached = true;\n element.addEventListener(\"mousemove\", handleMouseMove);\n element.addEventListener(\"mousedown\", handleMouseDown);\n element.addEventListener(\"mouseup\", handleMouseUp);\n element.addEventListener(\"mouseleave\", clearState);\n element.addEventListener(\"mouseenter\", clearState);\n element.addEventListener(\"mouseout\", clearState);\n element.addEventListener(\"mouseover\", clearState);\n element.addEventListener(\"blur\", handleBlur);\n element.addEventListener(\"keyup\", handleMods);\n element.addEventListener(\"keydown\", handleMods);\n element.addEventListener(\"keypress\", handleMods);\n if (element !== window) {\n window.addEventListener(\"blur\", handleBlur);\n window.addEventListener(\"keyup\", handleMods);\n window.addEventListener(\"keydown\", handleMods);\n window.addEventListener(\"keypress\", handleMods);\n }\n }\n function detachListeners() {\n if (!attached) {\n return;\n }\n attached = false;\n element.removeEventListener(\"mousemove\", handleMouseMove);\n element.removeEventListener(\"mousedown\", handleMouseDown);\n element.removeEventListener(\"mouseup\", handleMouseUp);\n element.removeEventListener(\"mouseleave\", clearState);\n element.removeEventListener(\"mouseenter\", clearState);\n element.removeEventListener(\"mouseout\", clearState);\n element.removeEventListener(\"mouseover\", clearState);\n element.removeEventListener(\"blur\", handleBlur);\n element.removeEventListener(\"keyup\", handleMods);\n element.removeEventListener(\"keydown\", handleMods);\n element.removeEventListener(\"keypress\", handleMods);\n if (element !== window) {\n window.removeEventListener(\"blur\", handleBlur);\n window.removeEventListener(\"keyup\", handleMods);\n window.removeEventListener(\"keydown\", handleMods);\n window.removeEventListener(\"keypress\", handleMods);\n }\n }\n attachListeners();\n var result = {\n element\n };\n Object.defineProperties(result, {\n enabled: {\n get: function() {\n return attached;\n },\n set: function(f) {\n if (f) {\n attachListeners();\n } else {\n detachListeners();\n }\n },\n enumerable: true\n },\n buttons: {\n get: function() {\n return buttonState;\n },\n enumerable: true\n },\n x: {\n get: function() {\n return x;\n },\n enumerable: true\n },\n y: {\n get: function() {\n return y;\n },\n enumerable: true\n },\n mods: {\n get: function() {\n return mods;\n },\n enumerable: true\n }\n });\n return result;\n }\n }\n ),\n /***/\n 24: (\n /***/\n function(module2) {\n var rootPosition = { left: 0, top: 0 };\n module2.exports = mouseEventOffset;\n function mouseEventOffset(ev, target, out) {\n target = target || ev.currentTarget || ev.srcElement;\n if (!Array.isArray(out)) {\n out = [0, 0];\n }\n var cx = ev.clientX || 0;\n var cy = ev.clientY || 0;\n var rect = getBoundingClientOffset(target);\n out[0] = cx - rect.left;\n out[1] = cy - rect.top;\n return out;\n }\n function getBoundingClientOffset(element) {\n if (element === window || element === document || element === document.body) {\n return rootPosition;\n } else {\n return element.getBoundingClientRect();\n }\n }\n }\n ),\n /***/\n 4687: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n function mouseButtons(ev) {\n if (typeof ev === \"object\") {\n if (\"buttons\" in ev) {\n return ev.buttons;\n } else if (\"which\" in ev) {\n var b = ev.which;\n if (b === 2) {\n return 4;\n } else if (b === 3) {\n return 2;\n } else if (b > 0) {\n return 1 << b - 1;\n }\n } else if (\"button\" in ev) {\n var b = ev.button;\n if (b === 1) {\n return 4;\n } else if (b === 2) {\n return 2;\n } else if (b >= 0) {\n return 1 << b;\n }\n }\n }\n return 0;\n }\n exports2.buttons = mouseButtons;\n function mouseElement(ev) {\n return ev.target || ev.srcElement || window;\n }\n exports2.element = mouseElement;\n function mouseRelativeX(ev) {\n if (typeof ev === \"object\") {\n if (\"offsetX\" in ev) {\n return ev.offsetX;\n }\n var target = mouseElement(ev);\n var bounds = target.getBoundingClientRect();\n return ev.clientX - bounds.left;\n }\n return 0;\n }\n exports2.x = mouseRelativeX;\n function mouseRelativeY(ev) {\n if (typeof ev === \"object\") {\n if (\"offsetY\" in ev) {\n return ev.offsetY;\n }\n var target = mouseElement(ev);\n var bounds = target.getBoundingClientRect();\n return ev.clientY - bounds.top;\n }\n return 0;\n }\n exports2.y = mouseRelativeY;\n }\n ),\n /***/\n 8512: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var toPX = __webpack_require__2(665);\n module2.exports = mouseWheelListen;\n function mouseWheelListen(element, callback, noScroll) {\n if (typeof element === \"function\") {\n noScroll = !!callback;\n callback = element;\n element = window;\n }\n var lineHeight = toPX(\"ex\", element);\n var listener = function(ev) {\n if (noScroll) {\n ev.preventDefault();\n }\n var dx = ev.deltaX || 0;\n var dy = ev.deltaY || 0;\n var dz = ev.deltaZ || 0;\n var mode = ev.deltaMode;\n var scale = 1;\n switch (mode) {\n case 1:\n scale = lineHeight;\n break;\n case 2:\n scale = window.innerHeight;\n break;\n }\n dx *= scale;\n dy *= scale;\n dz *= scale;\n if (dx || dy || dz) {\n return callback(dx, dy, dz, ev);\n }\n };\n element.addEventListener(\"wheel\", listener);\n return listener;\n }\n }\n ),\n /***/\n 2640: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var pool = __webpack_require__2(1888);\n module2.exports = createSurfaceExtractor;\n var allFns = {\n \"false,0,1\": function surfaceProcedure(vertex, face, phase, mallocUint32, freeUint32) {\n return function extractContour0_1(a0, x0, x1, x2) {\n var s0 = a0.shape[0] | 0, s1 = a0.shape[1] | 0, d0 = a0.data, o0 = a0.offset | 0, t0_0 = a0.stride[0] | 0, t0_1 = a0.stride[1] | 0, p0 = o0, c0_0, d0_1 = -t0_0 | 0, c0_1 = 0, d0_2 = -t0_1 | 0, c0_2 = 0, d0_3 = -t0_0 - t0_1 | 0, c0_3 = 0, u0_0 = t0_0 | 0, u0_1 = t0_1 - t0_0 * s0 | 0, i0 = 0, i1 = 0, N = 0, Q = 2 * s0 | 0, P = mallocUint32(Q), V = mallocUint32(Q), X = 0, b0 = 0, e1 = -1 | 0, y1 = -1 | 0, b1 = 0, e2 = -s0 | 0, y2 = s0 | 0, b2 = 0, e3 = -s0 - 1 | 0, y3 = s0 - 1 | 0, b3 = 0, v0 = 0, T = 0;\n for (i0 = 0; i0 < s0; ++i0) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_0;\n }\n p0 += u0_1;\n if (s1 > 0) {\n i1 = 1;\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_0;\n if (s0 > 0) {\n i0 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n }\n X += 1;\n p0 += u0_0;\n for (i0 = 2; i0 < s0; ++i0) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_0;\n }\n }\n p0 += u0_1;\n X = 0;\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n for (i1 = 2; i1 < s1; ++i1) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_0;\n if (s0 > 0) {\n i0 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_0;\n for (i0 = 2; i0 < s0; ++i0) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_0;\n }\n }\n if (i1 & 1) {\n X = 0;\n }\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n p0 += u0_1;\n }\n }\n freeUint32(V);\n freeUint32(P);\n };\n },\n \"false,1,0\": function anonymous(vertex, face, phase, mallocUint32, freeUint32) {\n return function extractContour1_0(a0, x0, x1, x2) {\n var s0 = a0.shape[0] | 0, s1 = a0.shape[1] | 0, d0 = a0.data, o0 = a0.offset | 0, t0_0 = a0.stride[0] | 0, t0_1 = a0.stride[1] | 0, p0 = o0, c0_0, d0_1 = -t0_0 | 0, c0_1 = 0, d0_2 = -t0_1 | 0, c0_2 = 0, d0_3 = -t0_0 - t0_1 | 0, c0_3 = 0, u0_1 = t0_1 | 0, u0_0 = t0_0 - t0_1 * s1 | 0, i0 = 0, i1 = 0, N = 0, Q = 2 * s1 | 0, P = mallocUint32(Q), V = mallocUint32(Q), X = 0, b0 = 0, e2 = -1 | 0, y2 = -1 | 0, b2 = 0, e1 = -s1 | 0, y1 = s1 | 0, b1 = 0, e3 = -s1 - 1 | 0, y3 = s1 - 1 | 0, b3 = 0, v0 = 0, T = 0;\n for (i1 = 0; i1 < s1; ++i1) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_1;\n }\n p0 += u0_0;\n if (s0 > 0) {\n i0 = 1;\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_1;\n if (s1 > 0) {\n i1 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n }\n X += 1;\n p0 += u0_1;\n for (i1 = 2; i1 < s1; ++i1) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_1;\n }\n }\n p0 += u0_0;\n X = 0;\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n for (i0 = 2; i0 < s0; ++i0) {\n P[X++] = phase(d0[p0], x0, x1, x2);\n p0 += u0_1;\n if (s1 > 0) {\n i1 = 1;\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_1;\n for (i1 = 2; i1 < s1; ++i1) {\n c0_0 = d0[p0];\n b0 = P[X] = phase(c0_0, x0, x1, x2);\n b1 = P[X + e1];\n b2 = P[X + e2];\n b3 = P[X + e3];\n if (b0 !== b1 || b0 !== b2 || b0 !== b3) {\n c0_1 = d0[p0 + d0_1];\n c0_2 = d0[p0 + d0_2];\n c0_3 = d0[p0 + d0_3];\n vertex(i0, i1, c0_0, c0_1, c0_2, c0_3, b0, b1, b2, b3, x0, x1, x2);\n v0 = V[X] = N++;\n if (b3 !== b2) {\n face(V[X + e2], v0, c0_2, c0_3, b2, b3, x0, x1, x2);\n }\n if (b3 !== b1) {\n face(V[X + e1], v0, c0_3, c0_1, b3, b1, x0, x1, x2);\n }\n }\n X += 1;\n p0 += u0_1;\n }\n }\n if (i0 & 1) {\n X = 0;\n }\n T = e1;\n e1 = y1;\n y1 = T;\n T = e2;\n e2 = y2;\n y2 = T;\n T = e3;\n e3 = y3;\n y3 = T;\n p0 += u0_0;\n }\n }\n freeUint32(V);\n freeUint32(P);\n };\n }\n };\n function compileSurfaceProcedure(vertexFunc, faceFunc, phaseFunc, scalarArgs, order, typesig) {\n var key = [typesig, order].join(\",\");\n var proc = allFns[key];\n return proc(\n vertexFunc,\n faceFunc,\n phaseFunc,\n pool.mallocUint32,\n pool.freeUint32\n );\n }\n function createSurfaceExtractor(args) {\n function error(msg) {\n throw new Error(\"ndarray-extract-contour: \" + msg);\n }\n if (typeof args !== \"object\") {\n error(\"Must specify arguments\");\n }\n var order = args.order;\n if (!Array.isArray(order)) {\n error(\"Must specify order\");\n }\n var arrays = args.arrayArguments || 1;\n if (arrays < 1) {\n error(\"Must have at least one array argument\");\n }\n var scalars = args.scalarArguments || 0;\n if (scalars < 0) {\n error(\"Scalar arg count must be > 0\");\n }\n if (typeof args.vertex !== \"function\") {\n error(\"Must specify vertex creation function\");\n }\n if (typeof args.cell !== \"function\") {\n error(\"Must specify cell creation function\");\n }\n if (typeof args.phase !== \"function\") {\n error(\"Must specify phase function\");\n }\n var getters = args.getters || [];\n var typesig = new Array(arrays);\n for (var i = 0; i < arrays; ++i) {\n if (getters.indexOf(i) >= 0) {\n typesig[i] = true;\n } else {\n typesig[i] = false;\n }\n }\n return compileSurfaceProcedure(\n args.vertex,\n args.cell,\n args.phase,\n scalars,\n order,\n typesig\n );\n }\n }\n ),\n /***/\n 6199: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var dup = __webpack_require__2(1338);\n var CACHED_CWiseOp = {\n zero: function(SS, a0, t02, p0) {\n var s0 = SS[0], t0p0 = t02[0];\n p0 |= 0;\n var i0 = 0, d0s0 = t0p0;\n for (i0 = 0; i0 < s0; ++i0) {\n a0[p0] = 0;\n p0 += d0s0;\n }\n },\n fdTemplate1: function(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], t0p0 = t02[0], t1p0 = t12[0], q0 = -1 * t0p0, q1 = t0p0;\n p0 |= 0;\n p1 |= 0;\n var i0 = 0, d0s0 = t0p0, d1s0 = t1p0;\n for (i0 = 0; i0 < s0; ++i0) {\n a1[p1] = 0.5 * (a0[p0 + q0] - a0[p0 + q1]);\n p0 += d0s0;\n p1 += d1s0;\n }\n },\n fdTemplate2: function(SS, a0, t02, p0, a1, t12, p1, a2, t22, p2) {\n var s0 = SS[0], s1 = SS[1], t0p0 = t02[0], t0p1 = t02[1], t1p0 = t12[0], t1p1 = t12[1], t2p0 = t22[0], t2p1 = t22[1], q0 = -1 * t0p0, q1 = t0p0, q2 = -1 * t0p1, q3 = t0p1;\n p0 |= 0;\n p1 |= 0;\n p2 |= 0;\n var i0 = 0, i1 = 0, d0s0 = t0p1, d0s1 = t0p0 - s1 * t0p1, d1s0 = t1p1, d1s1 = t1p0 - s1 * t1p1, d2s0 = t2p1, d2s1 = t2p0 - s1 * t2p1;\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s1; ++i0) {\n a1[p1] = 0.5 * (a0[p0 + q0] - a0[p0 + q1]);\n a2[p2] = 0.5 * (a0[p0 + q2] - a0[p0 + q3]);\n p0 += d0s0;\n p1 += d1s0;\n p2 += d2s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n p2 += d2s1;\n }\n }\n };\n var CACHED_thunk = {\n cdiff: function(compile2) {\n var CACHED = {};\n return function cdiff_cwise_thunk(array0, array1, array2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t22 = array2.dtype, r2 = array2.order, type = [t02, r0.join(), t12, r1.join(), t22, r2.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t22, r2]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, array1.data, array1.stride, array1.offset | 0, array2.data, array2.stride, array2.offset | 0);\n };\n },\n zero: function(compile2) {\n var CACHED = {};\n return function zero_cwise_thunk(array0) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0);\n };\n },\n fdTemplate1: function(compile2) {\n var CACHED = {};\n return function fdTemplate1_cwise_thunk(array0, array1) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, array1.data, array1.stride, array1.offset | 0);\n };\n },\n fdTemplate2: function(compile2) {\n var CACHED = {};\n return function fdTemplate2_cwise_thunk(array0, array1, array4) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t4 = array4.dtype, r4 = array4.order, type = [t02, r0.join(), t12, r1.join(), t4, r4.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t4, r4]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, array1.data, array1.stride, array1.offset | 0, array4.data, array4.stride, array4.offset | 0);\n };\n }\n };\n function createThunk(proc) {\n var thunk = CACHED_thunk[proc.funcName];\n return thunk(compile.bind(void 0, proc));\n }\n function compile(proc) {\n return CACHED_CWiseOp[proc.funcName];\n }\n function cwiseCompiler(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n var TEMPLATE_CACHE = {};\n var GRADIENT_CACHE = {};\n var EmptyProc = {\n body: \"\",\n args: [],\n thisVars: [],\n localVars: []\n };\n var centralDiff = cwiseCompiler({\n funcName: \"cdiff\"\n });\n var zeroOut = cwiseCompiler({\n funcName: \"zero\"\n });\n function generateTemplate(d) {\n if (d in TEMPLATE_CACHE) {\n return TEMPLATE_CACHE[d];\n }\n return TEMPLATE_CACHE[d] = cwiseCompiler({\n funcName: \"fdTemplate\" + d\n });\n }\n function CACHED_link(diff, zero2, grad1, grad2) {\n return function(dst, src) {\n var s = src.shape.slice();\n if (s[0] > 2 && s[1] > 2) {\n grad2(\n src.pick(-1, -1).lo(1, 1).hi(s[0] - 2, s[1] - 2),\n dst.pick(-1, -1, 0).lo(1, 1).hi(s[0] - 2, s[1] - 2),\n dst.pick(-1, -1, 1).lo(1, 1).hi(s[0] - 2, s[1] - 2)\n );\n }\n if (s[1] > 2) {\n grad1(\n src.pick(0, -1).lo(1).hi(s[1] - 2),\n dst.pick(0, -1, 1).lo(1).hi(s[1] - 2)\n );\n zero2(\n dst.pick(0, -1, 0).lo(1).hi(s[1] - 2)\n );\n }\n if (s[1] > 2) {\n grad1(\n src.pick(s[0] - 1, -1).lo(1).hi(s[1] - 2),\n dst.pick(s[0] - 1, -1, 1).lo(1).hi(s[1] - 2)\n );\n zero2(\n dst.pick(s[0] - 1, -1, 0).lo(1).hi(s[1] - 2)\n );\n }\n if (s[0] > 2) {\n grad1(\n src.pick(-1, 0).lo(1).hi(s[0] - 2),\n dst.pick(-1, 0, 0).lo(1).hi(s[0] - 2)\n );\n zero2(\n dst.pick(-1, 0, 1).lo(1).hi(s[0] - 2)\n );\n }\n if (s[0] > 2) {\n grad1(\n src.pick(-1, s[1] - 1).lo(1).hi(s[0] - 2),\n dst.pick(-1, s[1] - 1, 0).lo(1).hi(s[0] - 2)\n );\n zero2(\n dst.pick(-1, s[1] - 1, 1).lo(1).hi(s[0] - 2)\n );\n }\n dst.set(0, 0, 0, 0);\n dst.set(0, 0, 1, 0);\n dst.set(s[0] - 1, 0, 0, 0);\n dst.set(s[0] - 1, 0, 1, 0);\n dst.set(0, s[1] - 1, 0, 0);\n dst.set(0, s[1] - 1, 1, 0);\n dst.set(s[0] - 1, s[1] - 1, 0, 0);\n dst.set(s[0] - 1, s[1] - 1, 1, 0);\n return dst;\n };\n }\n function generateGradient(boundaryConditions) {\n var token = boundaryConditions.join();\n var proc = GRADIENT_CACHE[token];\n if (proc) {\n return proc;\n }\n var d = boundaryConditions.length;\n var linkArgs = [centralDiff, zeroOut];\n for (var i = 1; i <= d; ++i) {\n linkArgs.push(generateTemplate(i));\n }\n var link = CACHED_link;\n var proc = link.apply(void 0, linkArgs);\n GRADIENT_CACHE[token] = proc;\n return proc;\n }\n module2.exports = function gradient(out, inp, bc) {\n if (!Array.isArray(bc)) {\n if (typeof bc === \"string\") {\n bc = dup(inp.dimension, bc);\n } else {\n bc = dup(inp.dimension, \"clamp\");\n }\n }\n if (inp.size === 0) {\n return out;\n }\n if (inp.dimension === 0) {\n out.set(0);\n return out;\n }\n var cached = generateGradient(bc);\n return cached(out, inp);\n };\n }\n ),\n /***/\n 4317: (\n /***/\n function(module2) {\n \"use strict\";\n function interp1d(arr, x) {\n var ix = Math.floor(x), fx = x - ix, s0 = 0 <= ix && ix < arr.shape[0], s1 = 0 <= ix + 1 && ix + 1 < arr.shape[0], w0 = s0 ? +arr.get(ix) : 0, w1 = s1 ? +arr.get(ix + 1) : 0;\n return (1 - fx) * w0 + fx * w1;\n }\n function interp2d(arr, x, y) {\n var ix = Math.floor(x), fx = x - ix, s0 = 0 <= ix && ix < arr.shape[0], s1 = 0 <= ix + 1 && ix + 1 < arr.shape[0], iy = Math.floor(y), fy = y - iy, t02 = 0 <= iy && iy < arr.shape[1], t12 = 0 <= iy + 1 && iy + 1 < arr.shape[1], w00 = s0 && t02 ? arr.get(ix, iy) : 0, w01 = s0 && t12 ? arr.get(ix, iy + 1) : 0, w10 = s1 && t02 ? arr.get(ix + 1, iy) : 0, w11 = s1 && t12 ? arr.get(ix + 1, iy + 1) : 0;\n return (1 - fy) * ((1 - fx) * w00 + fx * w10) + fy * ((1 - fx) * w01 + fx * w11);\n }\n function interp3d(arr, x, y, z) {\n var ix = Math.floor(x), fx = x - ix, s0 = 0 <= ix && ix < arr.shape[0], s1 = 0 <= ix + 1 && ix + 1 < arr.shape[0], iy = Math.floor(y), fy = y - iy, t02 = 0 <= iy && iy < arr.shape[1], t12 = 0 <= iy + 1 && iy + 1 < arr.shape[1], iz = Math.floor(z), fz = z - iz, u0 = 0 <= iz && iz < arr.shape[2], u1 = 0 <= iz + 1 && iz + 1 < arr.shape[2], w000 = s0 && t02 && u0 ? arr.get(ix, iy, iz) : 0, w010 = s0 && t12 && u0 ? arr.get(ix, iy + 1, iz) : 0, w100 = s1 && t02 && u0 ? arr.get(ix + 1, iy, iz) : 0, w110 = s1 && t12 && u0 ? arr.get(ix + 1, iy + 1, iz) : 0, w001 = s0 && t02 && u1 ? arr.get(ix, iy, iz + 1) : 0, w011 = s0 && t12 && u1 ? arr.get(ix, iy + 1, iz + 1) : 0, w101 = s1 && t02 && u1 ? arr.get(ix + 1, iy, iz + 1) : 0, w111 = s1 && t12 && u1 ? arr.get(ix + 1, iy + 1, iz + 1) : 0;\n return (1 - fz) * ((1 - fy) * ((1 - fx) * w000 + fx * w100) + fy * ((1 - fx) * w010 + fx * w110)) + fz * ((1 - fy) * ((1 - fx) * w001 + fx * w101) + fy * ((1 - fx) * w011 + fx * w111));\n }\n function interpNd(arr) {\n var d = arr.shape.length | 0, ix = new Array(d), fx = new Array(d), s0 = new Array(d), s1 = new Array(d), i, t;\n for (i = 0; i < d; ++i) {\n t = +arguments[i + 1];\n ix[i] = Math.floor(t);\n fx[i] = t - ix[i];\n s0[i] = 0 <= ix[i] && ix[i] < arr.shape[i];\n s1[i] = 0 <= ix[i] + 1 && ix[i] + 1 < arr.shape[i];\n }\n var r = 0, j, w, idx;\n i_loop:\n for (i = 0; i < 1 << d; ++i) {\n w = 1;\n idx = arr.offset;\n for (j = 0; j < d; ++j) {\n if (i & 1 << j) {\n if (!s1[j]) {\n continue i_loop;\n }\n w *= fx[j];\n idx += arr.stride[j] * (ix[j] + 1);\n } else {\n if (!s0[j]) {\n continue i_loop;\n }\n w *= 1 - fx[j];\n idx += arr.stride[j] * ix[j];\n }\n }\n r += w * arr.data[idx];\n }\n return r;\n }\n function interpolate(arr, x, y, z) {\n switch (arr.shape.length) {\n case 0:\n return 0;\n case 1:\n return interp1d(arr, x);\n case 2:\n return interp2d(arr, x, y);\n case 3:\n return interp3d(arr, x, y, z);\n default:\n return interpNd.apply(void 0, arguments);\n }\n }\n module2.exports = interpolate;\n module2.exports.d1 = interp1d;\n module2.exports.d2 = interp2d;\n module2.exports.d3 = interp3d;\n }\n ),\n /***/\n 5298: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n var CACHED_CWiseOp = {\n \"float64,2,1,0\": function() {\n return function divseq_cwise_loop_2s1s0m3f64(SS, a0, t02, p0, Y0) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2];\n p0 |= 0;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p1 - s2 * t0p2, d0s2 = t0p0 - s1 * t0p1;\n for (i2 = 0; i2 < s0; ++i2) {\n for (i1 = 0; i1 < s1; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] /= Y0;\n p0 += d0s0;\n }\n p0 += d0s1;\n }\n p0 += d0s2;\n }\n };\n },\n \"uint8,2,0,1,float64,2,1,0\": function() {\n return function muls_cwise_loop_2s0s1m1u8f64(SS, a0, t02, p0, a1, t12, p1, Y0) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], t1p0 = t12[0], t1p1 = t12[1], t1p2 = t12[2];\n p0 |= 0;\n p1 |= 0;\n var offset0 = p0;\n var offset1 = p1;\n for (var j1 = SS[0] | 0; j1 > 0; ) {\n if (j1 < 64) {\n s0 = j1;\n j1 = 0;\n } else {\n s0 = 64;\n j1 -= 64;\n }\n for (var j2 = SS[1] | 0; j2 > 0; ) {\n if (j2 < 64) {\n s1 = j2;\n j2 = 0;\n } else {\n s1 = 64;\n j2 -= 64;\n }\n p0 = offset0 + j1 * t0p0 + j2 * t0p1;\n p1 = offset1 + j1 * t1p0 + j2 * t1p1;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p0 - s2 * t0p2, d0s2 = t0p1 - s0 * t0p0, d1s0 = t1p2, d1s1 = t1p0 - s2 * t1p2, d1s2 = t1p1 - s0 * t1p0;\n for (i2 = 0; i2 < s1; ++i2) {\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] = a1[p1] * Y0;\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n p0 += d0s2;\n p1 += d1s2;\n }\n }\n }\n };\n },\n \"float32,1,0,float32,1,0\": function() {\n return function assign_cwise_loop_1s0m2f32(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], t0p0 = t02[0], t0p1 = t02[1], t1p0 = t12[0], t1p1 = t12[1];\n p0 |= 0;\n p1 |= 0;\n var i0 = 0, i1 = 0, d0s0 = t0p1, d0s1 = t0p0 - s1 * t0p1, d1s0 = t1p1, d1s1 = t1p0 - s1 * t1p1;\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s1; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n };\n },\n \"float32,1,0,float32,0,1\": function() {\n return function assign_cwise_loop_1s0m0f32(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], t0p0 = t02[0], t0p1 = t02[1], t1p0 = t12[0], t1p1 = t12[1];\n p0 |= 0;\n p1 |= 0;\n var offset0 = p0;\n var offset1 = p1;\n for (var j0 = SS[1] | 0; j0 > 0; ) {\n if (j0 < 64) {\n s1 = j0;\n j0 = 0;\n } else {\n s1 = 64;\n j0 -= 64;\n }\n for (var j1 = SS[0] | 0; j1 > 0; ) {\n if (j1 < 64) {\n s0 = j1;\n j1 = 0;\n } else {\n s0 = 64;\n j1 -= 64;\n }\n p0 = offset0 + j0 * t0p1 + j1 * t0p0;\n p1 = offset1 + j0 * t1p1 + j1 * t1p0;\n var i0 = 0, i1 = 0, d0s0 = t0p1, d0s1 = t0p0 - s1 * t0p1, d1s0 = t1p1, d1s1 = t1p0 - s1 * t1p1;\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s1; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n }\n }\n };\n },\n \"uint8,2,0,1,uint8,1,2,0\": function() {\n return function assign_cwise_loop_2s0s1m0u8(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], t1p0 = t12[0], t1p1 = t12[1], t1p2 = t12[2];\n p0 |= 0;\n p1 |= 0;\n var offset0 = p0;\n var offset1 = p1;\n for (var j0 = SS[2] | 0; j0 > 0; ) {\n if (j0 < 64) {\n s2 = j0;\n j0 = 0;\n } else {\n s2 = 64;\n j0 -= 64;\n }\n for (var j1 = SS[0] | 0; j1 > 0; ) {\n if (j1 < 64) {\n s0 = j1;\n j1 = 0;\n } else {\n s0 = 64;\n j1 -= 64;\n }\n for (var j2 = SS[1] | 0; j2 > 0; ) {\n if (j2 < 64) {\n s1 = j2;\n j2 = 0;\n } else {\n s1 = 64;\n j2 -= 64;\n }\n p0 = offset0 + j0 * t0p2 + j1 * t0p0 + j2 * t0p1;\n p1 = offset1 + j0 * t1p2 + j1 * t1p0 + j2 * t1p1;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p0 - s2 * t0p2, d0s2 = t0p1 - s0 * t0p0, d1s0 = t1p2, d1s1 = t1p0 - s2 * t1p2, d1s2 = t1p1 - s0 * t1p0;\n for (i2 = 0; i2 < s1; ++i2) {\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n p0 += d0s2;\n p1 += d1s2;\n }\n }\n }\n }\n };\n },\n \"uint8,2,0,1,array,2,0,1\": function() {\n return function assign_cwise_loop_2s0s1m3u8a(SS, a0, t02, p0, a1, t12, p1) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], t1p0 = t12[0], t1p1 = t12[1], t1p2 = t12[2];\n p0 |= 0;\n p1 |= 0;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p0 - s2 * t0p2, d0s2 = t0p1 - s0 * t0p0, d1s0 = t1p2, d1s1 = t1p0 - s2 * t1p2, d1s2 = t1p1 - s0 * t1p0;\n for (i2 = 0; i2 < s1; ++i2) {\n for (i1 = 0; i1 < s0; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n a0[p0] = a1[p1];\n p0 += d0s0;\n p1 += d1s0;\n }\n p0 += d0s1;\n p1 += d1s1;\n }\n p0 += d0s2;\n p1 += d1s2;\n }\n };\n }\n };\n function generateCWiseOp(proc, typesig) {\n var key = typesig.join(\",\");\n var f = CACHED_CWiseOp[key];\n return f();\n }\n var compile = generateCWiseOp;\n var CACHED_thunk = {\n mul: function(compile2) {\n var CACHED = {};\n return function mul_cwise_thunk(array0, array1, array2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t22 = array2.dtype, r2 = array2.order, type = [t02, r0.join(), t12, r1.join(), t22, r2.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t22, r2]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n array2.data,\n array2.stride,\n array2.offset | 0\n );\n };\n },\n muls: function(compile2) {\n var CACHED = {};\n return function muls_cwise_thunk(array0, array1, scalar2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n scalar2\n );\n };\n },\n mulseq: function(compile2) {\n var CACHED = {};\n return function mulseq_cwise_thunk(array0, scalar1) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, scalar1);\n };\n },\n div: function(compile2) {\n var CACHED = {};\n return function div_cwise_thunk(array0, array1, array2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, t22 = array2.dtype, r2 = array2.order, type = [t02, r0.join(), t12, r1.join(), t22, r2.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1, t22, r2]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n array2.data,\n array2.stride,\n array2.offset | 0\n );\n };\n },\n divs: function(compile2) {\n var CACHED = {};\n return function divs_cwise_thunk(array0, array1, scalar2) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0,\n scalar2\n );\n };\n },\n divseq: function(compile2) {\n var CACHED = {};\n return function divseq_cwise_thunk(array0, scalar1) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, scalar1);\n };\n },\n assign: function(compile2) {\n var CACHED = {};\n return function assign_cwise_thunk(array0, array1) {\n var t02 = array0.dtype, r0 = array0.order, t12 = array1.dtype, r1 = array1.order, type = [t02, r0.join(), t12, r1.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0, t12, r1]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n array1.data,\n array1.stride,\n array1.offset | 0\n );\n };\n }\n };\n function createThunk(proc) {\n var thunk = CACHED_thunk[proc.funcName];\n return thunk(compile.bind(void 0, proc));\n }\n function makeOp(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n var assign_ops = {\n mul: \"*\",\n div: \"/\"\n };\n (function() {\n for (var id in assign_ops) {\n exports2[id] = makeOp({\n funcName: id\n });\n exports2[id + \"s\"] = makeOp({\n funcName: id + \"s\"\n });\n exports2[id + \"seq\"] = makeOp({\n funcName: id + \"seq\"\n });\n }\n })();\n exports2.assign = makeOp({\n funcName: \"assign\"\n });\n }\n ),\n /***/\n 9994: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var ndarray = __webpack_require__2(9618);\n var do_convert = __webpack_require__2(8277);\n module2.exports = function convert(arr, result) {\n var shape = [], c = arr, sz = 1;\n while (Array.isArray(c)) {\n shape.push(c.length);\n sz *= c.length;\n c = c[0];\n }\n if (shape.length === 0) {\n return ndarray();\n }\n if (!result) {\n result = ndarray(new Float64Array(sz), shape);\n }\n do_convert(result, arr);\n return result;\n };\n }\n ),\n /***/\n 8277: (\n /***/\n function(module2) {\n \"use strict\";\n function CwiseOp() {\n return function(SS, a0, t02, p0, Y0) {\n var s0 = SS[0], s1 = SS[1], s2 = SS[2], t0p0 = t02[0], t0p1 = t02[1], t0p2 = t02[2], index = [0, 0, 0];\n p0 |= 0;\n var i0 = 0, i1 = 0, i2 = 0, d0s0 = t0p2, d0s1 = t0p1 - s2 * t0p2, d0s2 = t0p0 - s1 * t0p1;\n for (i2 = 0; i2 < s0; ++i2) {\n for (i1 = 0; i1 < s1; ++i1) {\n for (i0 = 0; i0 < s2; ++i0) {\n {\n var _inline_1_v = Y0, _inline_1_i;\n for (_inline_1_i = 0; _inline_1_i < index.length - 1; ++_inline_1_i) {\n _inline_1_v = _inline_1_v[index[_inline_1_i]];\n }\n a0[p0] = _inline_1_v[index[index.length - 1]];\n }\n p0 += d0s0;\n ++index[2];\n }\n p0 += d0s1;\n index[2] -= s2;\n ++index[1];\n }\n p0 += d0s2;\n index[1] -= s1;\n ++index[0];\n }\n };\n }\n function generateCWiseOp() {\n return CwiseOp();\n }\n var compile = generateCWiseOp;\n function thunk(compile2) {\n var CACHED = {};\n return function convert_cwise_thunk(array0, scalar1) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(\n array0.shape.slice(0),\n array0.data,\n array0.stride,\n array0.offset | 0,\n scalar1\n );\n };\n }\n function createThunk(proc) {\n return thunk(compile.bind(void 0, proc));\n }\n function compileCwise(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n module2.exports = compileCwise({\n funcName: \"convert\"\n });\n }\n ),\n /***/\n 7640: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var pool = __webpack_require__2(1888);\n function getMallocFree(dtype) {\n switch (dtype) {\n case \"uint32\":\n return [pool.mallocUint32, pool.freeUint32];\n default:\n return null;\n }\n }\n var CACHED_insertionSort = {\n \"uint32,1,0\": function(malloc, free) {\n return function ndarrayInsertionSort1d0uint32(left, right, data, offset, s0, s1, n0, n1, d1, e1, f1) {\n var i, j, cptr, ptr = left * s0 + offset, i1, scratch = malloc(n1), dptr, sptr, a, b;\n for (i = left + 1; i <= right; ++i) {\n j = i;\n ptr += s0;\n cptr = ptr;\n dptr = 0;\n sptr = ptr;\n for (i1 = 0; i1 < n1; ++i1) {\n scratch[dptr++] = data[sptr];\n sptr += d1;\n }\n __g: while (j-- > left) {\n dptr = 0;\n sptr = cptr - s0;\n __l: for (i1 = 0; i1 < n1; ++i1) {\n a = data[sptr];\n b = scratch[dptr];\n if (a < b) {\n break __g;\n }\n if (a > b) {\n break __l;\n }\n sptr += e1;\n dptr += f1;\n }\n dptr = cptr;\n sptr = cptr - s0;\n for (i1 = 0; i1 < n1; ++i1) {\n data[dptr] = data[sptr];\n dptr += d1;\n sptr += d1;\n }\n cptr -= s0;\n }\n dptr = cptr;\n sptr = 0;\n for (i1 = 0; i1 < n1; ++i1) {\n data[dptr] = scratch[sptr++];\n dptr += d1;\n }\n }\n free(scratch);\n };\n }\n };\n function createInsertionSort(order, dtype) {\n var allocator = getMallocFree(dtype);\n var key = [dtype, order].join(\",\");\n var result = CACHED_insertionSort[key];\n if (allocator) {\n return result(allocator[0], allocator[1]);\n } else {\n return result();\n }\n }\n var CACHED_quickSort = {\n \"uint32,1,0\": function(insertionSort, malloc, free) {\n return function ndarrayQuickSort1d0uint32(left, right, data, offset, s0, s1, n0, n1, d1, e1, f1) {\n var sixth = (right - left + 1) / 6 | 0, index1 = left + sixth, index5 = right - sixth, index3 = left + right >> 1, index2 = index3 - sixth, index4 = index3 + sixth, el1 = index1, el2 = index2, el3 = index3, el4 = index4, el5 = index5, less = left + 1, great = right - 1, pivots_are_equal = true, tmp, tmp0, x, y, z, k, ptr0, ptr1, ptr2, comp_pivot1 = 0, comp_pivot2 = 0, comp = 0, i1, b_ptr0, b_ptr1, b_ptr2, b_ptr3, b_ptr4, b_ptr5, b_ptr6, b_ptr7, ptr3, ptr4, ptr5, ptr6, ptr7, pivot_ptr, ptr_shift, elementSize = n1, pivot1 = malloc(elementSize), pivot2 = malloc(elementSize);\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el2;\n ptr_shift = offset;\n __l1: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el1;\n el1 = el2;\n el2 = tmp0;\n break __l1;\n }\n if (comp < 0) {\n break __l1;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el4;\n b_ptr1 = s0 * el5;\n ptr_shift = offset;\n __l2: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el4;\n el4 = el5;\n el5 = tmp0;\n break __l2;\n }\n if (comp < 0) {\n break __l2;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el3;\n ptr_shift = offset;\n __l3: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el1;\n el1 = el3;\n el3 = tmp0;\n break __l3;\n }\n if (comp < 0) {\n break __l3;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el2;\n b_ptr1 = s0 * el3;\n ptr_shift = offset;\n __l4: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el2;\n el2 = el3;\n el3 = tmp0;\n break __l4;\n }\n if (comp < 0) {\n break __l4;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el4;\n ptr_shift = offset;\n __l5: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el1;\n el1 = el4;\n el4 = tmp0;\n break __l5;\n }\n if (comp < 0) {\n break __l5;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el3;\n b_ptr1 = s0 * el4;\n ptr_shift = offset;\n __l6: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el3;\n el3 = el4;\n el4 = tmp0;\n break __l6;\n }\n if (comp < 0) {\n break __l6;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el2;\n b_ptr1 = s0 * el5;\n ptr_shift = offset;\n __l7: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el2;\n el2 = el5;\n el5 = tmp0;\n break __l7;\n }\n if (comp < 0) {\n break __l7;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el2;\n b_ptr1 = s0 * el3;\n ptr_shift = offset;\n __l8: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el2;\n el2 = el3;\n el3 = tmp0;\n break __l8;\n }\n if (comp < 0) {\n break __l8;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el4;\n b_ptr1 = s0 * el5;\n ptr_shift = offset;\n __l9: for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n comp = data[ptr0] - data[ptr1];\n if (comp > 0) {\n tmp0 = el4;\n el4 = el5;\n el5 = tmp0;\n break __l9;\n }\n if (comp < 0) {\n break __l9;\n }\n ptr_shift += e1;\n }\n b_ptr0 = s0 * el1;\n b_ptr1 = s0 * el2;\n b_ptr2 = s0 * el3;\n b_ptr3 = s0 * el4;\n b_ptr4 = s0 * el5;\n b_ptr5 = s0 * index1;\n b_ptr6 = s0 * index3;\n b_ptr7 = s0 * index5;\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n ptr3 = b_ptr3 + ptr_shift;\n ptr4 = b_ptr4 + ptr_shift;\n ptr5 = b_ptr5 + ptr_shift;\n ptr6 = b_ptr6 + ptr_shift;\n ptr7 = b_ptr7 + ptr_shift;\n pivot1[pivot_ptr] = data[ptr1];\n pivot2[pivot_ptr] = data[ptr3];\n pivots_are_equal = pivots_are_equal && pivot1[pivot_ptr] === pivot2[pivot_ptr];\n x = data[ptr0];\n y = data[ptr2];\n z = data[ptr4];\n data[ptr5] = x;\n data[ptr6] = y;\n data[ptr7] = z;\n ++pivot_ptr;\n ptr_shift += d1;\n }\n b_ptr0 = s0 * index2;\n b_ptr1 = s0 * left;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n ptr_shift += d1;\n }\n b_ptr0 = s0 * index4;\n b_ptr1 = s0 * right;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n ptr_shift += d1;\n }\n if (pivots_are_equal) {\n for (k = less; k <= great; ++k) {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l10: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l10;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp === 0) {\n continue;\n }\n if (comp < 0) {\n if (k !== less) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n }\n ++less;\n } else {\n while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l11: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l11;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp > 0) {\n great--;\n } else if (comp < 0) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n b_ptr2 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = data[ptr2];\n data[ptr2] = tmp;\n ptr_shift += d1;\n }\n ++less;\n --great;\n break;\n } else {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n --great;\n break;\n }\n }\n }\n }\n } else {\n for (k = less; k <= great; ++k) {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l12: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot1 = data[ptr0] - pivot1[pivot_ptr];\n if (comp_pivot1 !== 0) {\n break __l12;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot1 < 0) {\n if (k !== less) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n }\n ++less;\n } else {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l13: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot2 = data[ptr0] - pivot2[pivot_ptr];\n if (comp_pivot2 !== 0) {\n break __l13;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot2 > 0) {\n while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l14: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot2[pivot_ptr];\n if (comp !== 0) {\n break __l14;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp > 0) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l15: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l15;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp < 0) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n b_ptr2 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = data[ptr2];\n data[ptr2] = tmp;\n ptr_shift += d1;\n }\n ++less;\n --great;\n } else {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n --great;\n }\n break;\n }\n }\n }\n }\n }\n }\n b_ptr0 = s0 * left;\n b_ptr1 = s0 * (less - 1);\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n data[ptr1] = pivot1[pivot_ptr];\n ++pivot_ptr;\n ptr_shift += d1;\n }\n b_ptr0 = s0 * right;\n b_ptr1 = s0 * (great + 1);\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n data[ptr0] = data[ptr1];\n data[ptr1] = pivot2[pivot_ptr];\n ++pivot_ptr;\n ptr_shift += d1;\n }\n if (less - 2 - left <= 32) {\n insertionSort(left, less - 2, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n ndarrayQuickSort1d0uint32(left, less - 2, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n if (right - (great + 2) <= 32) {\n insertionSort(great + 2, right, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n ndarrayQuickSort1d0uint32(great + 2, right, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n if (pivots_are_equal) {\n free(pivot1);\n free(pivot2);\n return;\n }\n if (less < index1 && great > index5) {\n __l16: while (true) {\n ptr0 = offset + less * s0;\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n if (data[ptr0] !== pivot1[pivot_ptr]) {\n break __l16;\n }\n ++pivot_ptr;\n ptr0 += d1;\n }\n ++less;\n }\n __l17: while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n if (data[ptr0] !== pivot2[pivot_ptr]) {\n break __l17;\n }\n ++pivot_ptr;\n ptr0 += d1;\n }\n --great;\n }\n for (k = less; k <= great; ++k) {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l18: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot1 = data[ptr0] - pivot1[pivot_ptr];\n if (comp_pivot1 !== 0) {\n break __l18;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot1 === 0) {\n if (k !== less) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n }\n ++less;\n } else {\n ptr0 = offset + k * s0;\n pivot_ptr = 0;\n __l19: for (i1 = 0; i1 < n1; ++i1) {\n comp_pivot2 = data[ptr0] - pivot2[pivot_ptr];\n if (comp_pivot2 !== 0) {\n break __l19;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp_pivot2 === 0) {\n while (true) {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l20: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot2[pivot_ptr];\n if (comp !== 0) {\n break __l20;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp === 0) {\n if (--great < k) {\n break;\n }\n continue;\n } else {\n ptr0 = offset + great * s0;\n pivot_ptr = 0;\n __l21: for (i1 = 0; i1 < n1; ++i1) {\n comp = data[ptr0] - pivot1[pivot_ptr];\n if (comp !== 0) {\n break __l21;\n }\n pivot_ptr += f1;\n ptr0 += e1;\n }\n if (comp < 0) {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * less;\n b_ptr2 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n ptr2 = b_ptr2 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = data[ptr2];\n data[ptr2] = tmp;\n ptr_shift += d1;\n }\n ++less;\n --great;\n } else {\n b_ptr0 = s0 * k;\n b_ptr1 = s0 * great;\n ptr_shift = offset;\n for (i1 = 0; i1 < n1; ++i1) {\n ptr0 = b_ptr0 + ptr_shift;\n ptr1 = b_ptr1 + ptr_shift;\n tmp = data[ptr0];\n data[ptr0] = data[ptr1];\n data[ptr1] = tmp;\n ptr_shift += d1;\n }\n --great;\n }\n break;\n }\n }\n }\n }\n }\n }\n free(pivot1);\n free(pivot2);\n if (great - less <= 32) {\n insertionSort(less, great, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n ndarrayQuickSort1d0uint32(less, great, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n };\n }\n };\n function createQuickSort(order, dtype, insertionSort) {\n var allocator = getMallocFree(dtype);\n var key = [dtype, order].join(\",\");\n var result = CACHED_quickSort[key];\n if (order.length > 1 && allocator) {\n return result(insertionSort, allocator[0], allocator[1]);\n } else {\n return result(insertionSort);\n }\n }\n var CACHED_sort = {\n \"uint32,1,0\": function(insertionSort, quickSort) {\n return function(array) {\n var data = array.data, offset = array.offset | 0, shape = array.shape, stride = array.stride, s0 = stride[0] | 0, n0 = shape[0] | 0, s1 = stride[1] | 0, n1 = shape[1] | 0, d1 = s1, e1 = s1, f1 = 1;\n if (n0 <= 32) {\n insertionSort(0, n0 - 1, data, offset, s0, s1, n0, n1, d1, e1, f1);\n } else {\n quickSort(0, n0 - 1, data, offset, s0, s1, n0, n1, d1, e1, f1);\n }\n };\n }\n };\n function compileSort(order, dtype) {\n var key = [dtype, order].join(\",\");\n var result = CACHED_sort[key];\n var insertionSort = createInsertionSort(order, dtype);\n var quickSort = createQuickSort(order, dtype, insertionSort);\n return result(insertionSort, quickSort);\n }\n module2.exports = compileSort;\n }\n ),\n /***/\n 446: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var compile = __webpack_require__2(7640);\n var CACHE = {};\n function sort(array) {\n var order = array.order;\n var dtype = array.dtype;\n var typeSig = [order, dtype];\n var typeName = typeSig.join(\":\");\n var compiled = CACHE[typeName];\n if (!compiled) {\n CACHE[typeName] = compiled = compile(order, dtype);\n }\n compiled(array);\n return array;\n }\n module2.exports = sort;\n }\n ),\n /***/\n 9618: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var isBuffer = __webpack_require__2(7163);\n var hasTypedArrays = typeof Float64Array !== \"undefined\";\n function compare1st(a, b) {\n return a[0] - b[0];\n }\n function order() {\n var stride = this.stride;\n var terms = new Array(stride.length);\n var i;\n for (i = 0; i < terms.length; ++i) {\n terms[i] = [Math.abs(stride[i]), i];\n }\n terms.sort(compare1st);\n var result = new Array(terms.length);\n for (i = 0; i < result.length; ++i) {\n result[i] = terms[i][1];\n }\n return result;\n }\n var allFns = {\n // Special case for trivial arrays\n T: function(dtype) {\n function View(a) {\n this.data = a;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.index = function() {\n return -1;\n };\n proto.size = 0;\n proto.dimension = -1;\n proto.shape = proto.stride = proto.order = [];\n proto.lo = proto.hi = proto.transpose = proto.step = function() {\n return new View(this.data);\n };\n proto.get = proto.set = function() {\n };\n proto.pick = function() {\n return null;\n };\n return function construct(a) {\n return new View(a);\n };\n },\n // Special case for 0d arrays\n 0: function(dtype, TrivialArray) {\n function View(a, d) {\n this.data = a;\n this.offset = d;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.index = function() {\n return this.offset;\n };\n proto.dimension = 0;\n proto.size = 1;\n proto.shape = proto.stride = proto.order = [];\n proto.lo = proto.hi = proto.transpose = proto.step = function copy() {\n return new View(this.data, this.offset);\n };\n proto.pick = function pick() {\n return TrivialArray(this.data);\n };\n proto.valueOf = proto.get = function get() {\n return dtype === \"generic\" ? this.data.get(this.offset) : this.data[this.offset];\n };\n proto.set = function set(v) {\n return dtype === \"generic\" ? this.data.set(this.offset, v) : this.data[this.offset] = v;\n };\n return function construct(a, b, c, d) {\n return new View(a, d);\n };\n },\n 1: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, c0, d) {\n this.data = a;\n this.shape = [b0];\n this.stride = [c0];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 1;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0];\n }\n });\n proto.order = [0];\n proto.set = function set(i0, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0, v) : this.data[this.offset + this.stride[0] * i0] = v;\n };\n proto.get = function get(i0) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0) : this.data[this.offset + this.stride[0] * i0];\n };\n proto.index = function index(i0) {\n return this.offset + this.stride[0] * i0;\n };\n proto.hi = function hi(i0) {\n return new View(this.data, typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0, this.stride[0], this.offset);\n };\n proto.lo = function lo(i0) {\n var b = this.offset, d = 0, a0 = this.shape[0], c0 = this.stride[0];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n return new View(this.data, a0, c0, b);\n };\n proto.step = function step(i0) {\n var a0 = this.shape[0], b0 = this.stride[0], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n return new View(this.data, a0, b0, c);\n };\n proto.transpose = function transpose(i0) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], b[i0], this.offset);\n };\n proto.pick = function pick(i0) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], stride[0], offset);\n };\n },\n 2: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, c0, c1, d) {\n this.data = a;\n this.shape = [b0, b1];\n this.stride = [c0, c1];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 2;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1];\n }\n });\n Object.defineProperty(proto, \"order\", {\n get: function order2() {\n return Math.abs(this.stride[0]) > Math.abs(this.stride[1]) ? [1, 0] : [0, 1];\n }\n });\n proto.set = function set(i0, i1, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0 + this.stride[1] * i1, v) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1] = v;\n };\n proto.get = function get(i0, i1) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0 + this.stride[1] * i1) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1];\n };\n proto.index = function index(i0, i1) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1;\n };\n proto.hi = function hi(i0, i1) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n this.stride[0],\n this.stride[1],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], c0 = this.stride[0], c1 = this.stride[1];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n return new View(this.data, a0, a1, c0, c1, b);\n };\n proto.step = function step(i0, i1) {\n var a0 = this.shape[0], a1 = this.shape[1], b0 = this.stride[0], b1 = this.stride[1], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n return new View(this.data, a0, a1, b0, b1, c);\n };\n proto.transpose = function transpose(i0, i1) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], b[i0], b[i1], this.offset);\n };\n proto.pick = function pick(i0, i1) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], shape[1], stride[0], stride[1], offset);\n };\n },\n 3: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, b2, c0, c1, c2, d) {\n this.data = a;\n this.shape = [b0, b1, b2];\n this.stride = [c0, c1, c2];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 3;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1] * this.shape[2];\n }\n });\n Object.defineProperty(proto, \"order\", {\n get: function order2() {\n var s0 = Math.abs(this.stride[0]), s1 = Math.abs(this.stride[1]), s2 = Math.abs(this.stride[2]);\n if (s0 > s1) {\n if (s1 > s2) {\n return [2, 1, 0];\n } else if (s0 > s2) {\n return [1, 2, 0];\n } else {\n return [1, 0, 2];\n }\n } else if (s0 > s2) {\n return [2, 0, 1];\n } else if (s2 > s1) {\n return [0, 1, 2];\n } else {\n return [0, 2, 1];\n }\n }\n });\n proto.set = function set(i0, i1, i2, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2, v) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2] = v;\n };\n proto.get = function get(i0, i1, i2) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2];\n };\n proto.index = function index(i0, i1, i2) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2;\n };\n proto.hi = function hi(i0, i1, i2) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n typeof i2 !== \"number\" || i2 < 0 ? this.shape[2] : i2 | 0,\n this.stride[0],\n this.stride[1],\n this.stride[2],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1, i2) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], c0 = this.stride[0], c1 = this.stride[1], c2 = this.stride[2];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n d = i2 | 0;\n b += c2 * d;\n a2 -= d;\n }\n return new View(this.data, a0, a1, a2, c0, c1, c2, b);\n };\n proto.step = function step(i0, i1, i2) {\n var a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], b0 = this.stride[0], b1 = this.stride[1], b2 = this.stride[2], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n if (typeof i2 === \"number\") {\n d = i2 | 0;\n if (d < 0) {\n c += b2 * (a2 - 1);\n a2 = ceil(-a2 / d);\n } else {\n a2 = ceil(a2 / d);\n }\n b2 *= d;\n }\n return new View(this.data, a0, a1, a2, b0, b1, b2, c);\n };\n proto.transpose = function transpose(i0, i1, i2) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n i2 = i2 === void 0 ? 2 : i2 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], a[i2], b[i0], b[i1], b[i2], this.offset);\n };\n proto.pick = function pick(i0, i1, i2) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n c = c + this.stride[2] * i2 | 0;\n } else {\n a.push(this.shape[2]);\n b.push(this.stride[2]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], shape[1], shape[2], stride[0], stride[1], stride[2], offset);\n };\n },\n 4: function(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, b2, b3, c0, c1, c2, c3, d) {\n this.data = a;\n this.shape = [b0, b1, b2, b3];\n this.stride = [c0, c1, c2, c3];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 4;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1] * this.shape[2] * this.shape[3];\n }\n });\n Object.defineProperty(proto, \"order\", { get: ORDER });\n proto.set = function set(i0, i1, i2, i3, v) {\n return dtype === \"generic\" ? this.data.set(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3, v) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3] = v;\n };\n proto.get = function get(i0, i1, i2, i3) {\n return dtype === \"generic\" ? this.data.get(this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3];\n };\n proto.index = function index(i0, i1, i2, i3) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3;\n };\n proto.hi = function hi(i0, i1, i2, i3) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n typeof i2 !== \"number\" || i2 < 0 ? this.shape[2] : i2 | 0,\n typeof i3 !== \"number\" || i3 < 0 ? this.shape[3] : i3 | 0,\n this.stride[0],\n this.stride[1],\n this.stride[2],\n this.stride[3],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1, i2, i3) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], c0 = this.stride[0], c1 = this.stride[1], c2 = this.stride[2], c3 = this.stride[3];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n d = i2 | 0;\n b += c2 * d;\n a2 -= d;\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n d = i3 | 0;\n b += c3 * d;\n a3 -= d;\n }\n return new View(this.data, a0, a1, a2, a3, c0, c1, c2, c3, b);\n };\n proto.step = function step(i0, i1, i2, i3) {\n var a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], b0 = this.stride[0], b1 = this.stride[1], b2 = this.stride[2], b3 = this.stride[3], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n if (typeof i2 === \"number\") {\n d = i2 | 0;\n if (d < 0) {\n c += b2 * (a2 - 1);\n a2 = ceil(-a2 / d);\n } else {\n a2 = ceil(a2 / d);\n }\n b2 *= d;\n }\n if (typeof i3 === \"number\") {\n d = i3 | 0;\n if (d < 0) {\n c += b3 * (a3 - 1);\n a3 = ceil(-a3 / d);\n } else {\n a3 = ceil(a3 / d);\n }\n b3 *= d;\n }\n return new View(this.data, a0, a1, a2, a3, b0, b1, b2, b3, c);\n };\n proto.transpose = function transpose(i0, i1, i2, i3) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n i2 = i2 === void 0 ? 2 : i2 | 0;\n i3 = i3 === void 0 ? 3 : i3 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], a[i2], a[i3], b[i0], b[i1], b[i2], b[i3], this.offset);\n };\n proto.pick = function pick(i0, i1, i2, i3) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n c = c + this.stride[2] * i2 | 0;\n } else {\n a.push(this.shape[2]);\n b.push(this.stride[2]);\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n c = c + this.stride[3] * i3 | 0;\n } else {\n a.push(this.shape[3]);\n b.push(this.stride[3]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(data, shape[0], shape[1], shape[2], shape[3], stride[0], stride[1], stride[2], stride[3], offset);\n };\n },\n 5: function anonymous(dtype, CTOR_LIST, ORDER) {\n function View(a, b0, b1, b2, b3, b4, c0, c1, c2, c3, c4, d) {\n this.data = a;\n this.shape = [b0, b1, b2, b3, b4];\n this.stride = [c0, c1, c2, c3, c4];\n this.offset = d | 0;\n }\n var proto = View.prototype;\n proto.dtype = dtype;\n proto.dimension = 5;\n Object.defineProperty(proto, \"size\", {\n get: function size() {\n return this.shape[0] * this.shape[1] * this.shape[2] * this.shape[3] * this.shape[4];\n }\n });\n Object.defineProperty(proto, \"order\", { get: ORDER });\n proto.set = function set(i0, i1, i2, i3, i4, v) {\n return dtype === \"generic\" ? this.data.set(\n this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4,\n v\n ) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4] = v;\n };\n proto.get = function get(i0, i1, i2, i3, i4) {\n return dtype === \"generic\" ? this.data.get(\n this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4\n ) : this.data[this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4];\n };\n proto.index = function index(i0, i1, i2, i3, i4) {\n return this.offset + this.stride[0] * i0 + this.stride[1] * i1 + this.stride[2] * i2 + this.stride[3] * i3 + this.stride[4] * i4;\n };\n proto.hi = function hi(i0, i1, i2, i3, i4) {\n return new View(\n this.data,\n typeof i0 !== \"number\" || i0 < 0 ? this.shape[0] : i0 | 0,\n typeof i1 !== \"number\" || i1 < 0 ? this.shape[1] : i1 | 0,\n typeof i2 !== \"number\" || i2 < 0 ? this.shape[2] : i2 | 0,\n typeof i3 !== \"number\" || i3 < 0 ? this.shape[3] : i3 | 0,\n typeof i4 !== \"number\" || i4 < 0 ? this.shape[4] : i4 | 0,\n this.stride[0],\n this.stride[1],\n this.stride[2],\n this.stride[3],\n this.stride[4],\n this.offset\n );\n };\n proto.lo = function lo(i0, i1, i2, i3, i4) {\n var b = this.offset, d = 0, a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], a4 = this.shape[4], c0 = this.stride[0], c1 = this.stride[1], c2 = this.stride[2], c3 = this.stride[3], c4 = this.stride[4];\n if (typeof i0 === \"number\" && i0 >= 0) {\n d = i0 | 0;\n b += c0 * d;\n a0 -= d;\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n d = i1 | 0;\n b += c1 * d;\n a1 -= d;\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n d = i2 | 0;\n b += c2 * d;\n a2 -= d;\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n d = i3 | 0;\n b += c3 * d;\n a3 -= d;\n }\n if (typeof i4 === \"number\" && i4 >= 0) {\n d = i4 | 0;\n b += c4 * d;\n a4 -= d;\n }\n return new View(this.data, a0, a1, a2, a3, a4, c0, c1, c2, c3, c4, b);\n };\n proto.step = function step(i0, i1, i2, i3, i4) {\n var a0 = this.shape[0], a1 = this.shape[1], a2 = this.shape[2], a3 = this.shape[3], a4 = this.shape[4], b0 = this.stride[0], b1 = this.stride[1], b2 = this.stride[2], b3 = this.stride[3], b4 = this.stride[4], c = this.offset, d = 0, ceil = Math.ceil;\n if (typeof i0 === \"number\") {\n d = i0 | 0;\n if (d < 0) {\n c += b0 * (a0 - 1);\n a0 = ceil(-a0 / d);\n } else {\n a0 = ceil(a0 / d);\n }\n b0 *= d;\n }\n if (typeof i1 === \"number\") {\n d = i1 | 0;\n if (d < 0) {\n c += b1 * (a1 - 1);\n a1 = ceil(-a1 / d);\n } else {\n a1 = ceil(a1 / d);\n }\n b1 *= d;\n }\n if (typeof i2 === \"number\") {\n d = i2 | 0;\n if (d < 0) {\n c += b2 * (a2 - 1);\n a2 = ceil(-a2 / d);\n } else {\n a2 = ceil(a2 / d);\n }\n b2 *= d;\n }\n if (typeof i3 === \"number\") {\n d = i3 | 0;\n if (d < 0) {\n c += b3 * (a3 - 1);\n a3 = ceil(-a3 / d);\n } else {\n a3 = ceil(a3 / d);\n }\n b3 *= d;\n }\n if (typeof i4 === \"number\") {\n d = i4 | 0;\n if (d < 0) {\n c += b4 * (a4 - 1);\n a4 = ceil(-a4 / d);\n } else {\n a4 = ceil(a4 / d);\n }\n b4 *= d;\n }\n return new View(this.data, a0, a1, a2, a3, a4, b0, b1, b2, b3, b4, c);\n };\n proto.transpose = function transpose(i0, i1, i2, i3, i4) {\n i0 = i0 === void 0 ? 0 : i0 | 0;\n i1 = i1 === void 0 ? 1 : i1 | 0;\n i2 = i2 === void 0 ? 2 : i2 | 0;\n i3 = i3 === void 0 ? 3 : i3 | 0;\n i4 = i4 === void 0 ? 4 : i4 | 0;\n var a = this.shape, b = this.stride;\n return new View(this.data, a[i0], a[i1], a[i2], a[i3], a[i4], b[i0], b[i1], b[i2], b[i3], b[i4], this.offset);\n };\n proto.pick = function pick(i0, i1, i2, i3, i4) {\n var a = [], b = [], c = this.offset;\n if (typeof i0 === \"number\" && i0 >= 0) {\n c = c + this.stride[0] * i0 | 0;\n } else {\n a.push(this.shape[0]);\n b.push(this.stride[0]);\n }\n if (typeof i1 === \"number\" && i1 >= 0) {\n c = c + this.stride[1] * i1 | 0;\n } else {\n a.push(this.shape[1]);\n b.push(this.stride[1]);\n }\n if (typeof i2 === \"number\" && i2 >= 0) {\n c = c + this.stride[2] * i2 | 0;\n } else {\n a.push(this.shape[2]);\n b.push(this.stride[2]);\n }\n if (typeof i3 === \"number\" && i3 >= 0) {\n c = c + this.stride[3] * i3 | 0;\n } else {\n a.push(this.shape[3]);\n b.push(this.stride[3]);\n }\n if (typeof i4 === \"number\" && i4 >= 0) {\n c = c + this.stride[4] * i4 | 0;\n } else {\n a.push(this.shape[4]);\n b.push(this.stride[4]);\n }\n var ctor = CTOR_LIST[a.length + 1];\n return ctor(this.data, a, b, c);\n };\n return function construct(data, shape, stride, offset) {\n return new View(\n data,\n shape[0],\n shape[1],\n shape[2],\n shape[3],\n shape[4],\n stride[0],\n stride[1],\n stride[2],\n stride[3],\n stride[4],\n offset\n );\n };\n }\n };\n function compileConstructor(inType, inDimension) {\n var dKey = inDimension === -1 ? \"T\" : String(inDimension);\n var procedure = allFns[dKey];\n if (inDimension === -1) {\n return procedure(inType);\n } else if (inDimension === 0) {\n return procedure(inType, CACHED_CONSTRUCTORS[inType][0]);\n }\n return procedure(inType, CACHED_CONSTRUCTORS[inType], order);\n }\n function arrayDType(data) {\n if (isBuffer(data)) {\n return \"buffer\";\n }\n if (hasTypedArrays) {\n switch (Object.prototype.toString.call(data)) {\n case \"[object Float64Array]\":\n return \"float64\";\n case \"[object Float32Array]\":\n return \"float32\";\n case \"[object Int8Array]\":\n return \"int8\";\n case \"[object Int16Array]\":\n return \"int16\";\n case \"[object Int32Array]\":\n return \"int32\";\n case \"[object Uint8ClampedArray]\":\n return \"uint8_clamped\";\n case \"[object Uint8Array]\":\n return \"uint8\";\n case \"[object Uint16Array]\":\n return \"uint16\";\n case \"[object Uint32Array]\":\n return \"uint32\";\n case \"[object BigInt64Array]\":\n return \"bigint64\";\n case \"[object BigUint64Array]\":\n return \"biguint64\";\n }\n }\n if (Array.isArray(data)) {\n return \"array\";\n }\n return \"generic\";\n }\n var CACHED_CONSTRUCTORS = {\n \"generic\": [],\n \"buffer\": [],\n \"array\": [],\n // typed arrays\n \"float32\": [],\n \"float64\": [],\n \"int8\": [],\n \"int16\": [],\n \"int32\": [],\n \"uint8_clamped\": [],\n \"uint8\": [],\n \"uint16\": [],\n \"uint32\": [],\n \"bigint64\": [],\n \"biguint64\": []\n };\n (function() {\n for (var id in CACHED_CONSTRUCTORS) {\n CACHED_CONSTRUCTORS[id].push(compileConstructor(id, -1));\n }\n });\n function wrappedNDArrayCtor(data, shape, stride, offset) {\n if (data === void 0) {\n var ctor = CACHED_CONSTRUCTORS.array[0];\n return ctor([]);\n } else if (typeof data === \"number\") {\n data = [data];\n }\n if (shape === void 0) {\n shape = [data.length];\n }\n var d = shape.length;\n if (stride === void 0) {\n stride = new Array(d);\n for (var i = d - 1, sz = 1; i >= 0; --i) {\n stride[i] = sz;\n sz *= shape[i];\n }\n }\n if (offset === void 0) {\n offset = 0;\n for (var i = 0; i < d; ++i) {\n if (stride[i] < 0) {\n offset -= (shape[i] - 1) * stride[i];\n }\n }\n }\n var inType = arrayDType(data);\n var ctor_list = CACHED_CONSTRUCTORS[inType];\n while (ctor_list.length <= d + 1) {\n ctor_list.push(compileConstructor(inType, ctor_list.length - 1));\n }\n var ctor = ctor_list[d + 1];\n return ctor(data, shape, stride, offset);\n }\n module2.exports = wrappedNDArrayCtor;\n }\n ),\n /***/\n 1278: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var doubleBits = __webpack_require__2(2361);\n var SMALLEST_DENORM = Math.pow(2, -1074);\n var UINT_MAX = -1 >>> 0;\n module2.exports = nextafter;\n function nextafter(x, y) {\n if (isNaN(x) || isNaN(y)) {\n return NaN;\n }\n if (x === y) {\n return x;\n }\n if (x === 0) {\n if (y < 0) {\n return -SMALLEST_DENORM;\n } else {\n return SMALLEST_DENORM;\n }\n }\n var hi = doubleBits.hi(x);\n var lo = doubleBits.lo(x);\n if (y > x === x > 0) {\n if (lo === UINT_MAX) {\n hi += 1;\n lo = 0;\n } else {\n lo += 1;\n }\n } else {\n if (lo === 0) {\n lo = UINT_MAX;\n hi -= 1;\n } else {\n lo -= 1;\n }\n }\n return doubleBits.pack(lo, hi);\n }\n }\n ),\n /***/\n 8406: (\n /***/\n function(__unused_webpack_module, exports2) {\n var DEFAULT_NORMALS_EPSILON = 1e-6;\n var DEFAULT_FACE_EPSILON = 1e-6;\n exports2.vertexNormals = function(faces, positions, specifiedEpsilon) {\n var N = positions.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void 0 ? DEFAULT_NORMALS_EPSILON : specifiedEpsilon;\n for (var i = 0; i < N; ++i) {\n normals[i] = [0, 0, 0];\n }\n for (var i = 0; i < faces.length; ++i) {\n var f = faces[i];\n var p = 0;\n var c = f[f.length - 1];\n var n = f[0];\n for (var j = 0; j < f.length; ++j) {\n p = c;\n c = n;\n n = f[(j + 1) % f.length];\n var v0 = positions[p];\n var v1 = positions[c];\n var v2 = positions[n];\n var d01 = new Array(3);\n var m01 = 0;\n var d21 = new Array(3);\n var m21 = 0;\n for (var k = 0; k < 3; ++k) {\n d01[k] = v0[k] - v1[k];\n m01 += d01[k] * d01[k];\n d21[k] = v2[k] - v1[k];\n m21 += d21[k] * d21[k];\n }\n if (m01 * m21 > epsilon) {\n var norm = normals[c];\n var w = 1 / Math.sqrt(m01 * m21);\n for (var k = 0; k < 3; ++k) {\n var u = (k + 1) % 3;\n var v = (k + 2) % 3;\n norm[k] += w * (d21[u] * d01[v] - d21[v] * d01[u]);\n }\n }\n }\n }\n for (var i = 0; i < N; ++i) {\n var norm = normals[i];\n var m = 0;\n for (var k = 0; k < 3; ++k) {\n m += norm[k] * norm[k];\n }\n if (m > epsilon) {\n var w = 1 / Math.sqrt(m);\n for (var k = 0; k < 3; ++k) {\n norm[k] *= w;\n }\n } else {\n for (var k = 0; k < 3; ++k) {\n norm[k] = 0;\n }\n }\n }\n return normals;\n };\n exports2.faceNormals = function(faces, positions, specifiedEpsilon) {\n var N = faces.length;\n var normals = new Array(N);\n var epsilon = specifiedEpsilon === void 0 ? DEFAULT_FACE_EPSILON : specifiedEpsilon;\n for (var i = 0; i < N; ++i) {\n var f = faces[i];\n var pos = new Array(3);\n for (var j = 0; j < 3; ++j) {\n pos[j] = positions[f[j]];\n }\n var d01 = new Array(3);\n var d21 = new Array(3);\n for (var j = 0; j < 3; ++j) {\n d01[j] = pos[1][j] - pos[0][j];\n d21[j] = pos[2][j] - pos[0][j];\n }\n var n = new Array(3);\n var l = 0;\n for (var j = 0; j < 3; ++j) {\n var u = (j + 1) % 3;\n var v = (j + 2) % 3;\n n[j] = d01[u] * d21[v] - d01[v] * d21[u];\n l += n[j] * n[j];\n }\n if (l > epsilon) {\n l = 1 / Math.sqrt(l);\n } else {\n l = 0;\n }\n for (var j = 0; j < 3; ++j) {\n n[j] *= l;\n }\n normals[i] = n;\n }\n return normals;\n };\n }\n ),\n /***/\n 4081: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = quatFromFrame;\n function quatFromFrame(out, rx, ry, rz, ux, uy, uz, fx, fy, fz) {\n var tr = rx + uy + fz;\n if (l > 0) {\n var l = Math.sqrt(tr + 1);\n out[0] = 0.5 * (uz - fy) / l;\n out[1] = 0.5 * (fx - rz) / l;\n out[2] = 0.5 * (ry - uy) / l;\n out[3] = 0.5 * l;\n } else {\n var tf = Math.max(rx, uy, fz);\n var l = Math.sqrt(2 * tf - tr + 1);\n if (rx >= tf) {\n out[0] = 0.5 * l;\n out[1] = 0.5 * (ux + ry) / l;\n out[2] = 0.5 * (fx + rz) / l;\n out[3] = 0.5 * (uz - fy) / l;\n } else if (uy >= tf) {\n out[0] = 0.5 * (ry + ux) / l;\n out[1] = 0.5 * l;\n out[2] = 0.5 * (fy + uz) / l;\n out[3] = 0.5 * (fx - rz) / l;\n } else {\n out[0] = 0.5 * (rz + fx) / l;\n out[1] = 0.5 * (uz + fy) / l;\n out[2] = 0.5 * l;\n out[3] = 0.5 * (ry - ux) / l;\n }\n }\n return out;\n }\n }\n ),\n /***/\n 9977: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createOrbitController;\n var filterVector = __webpack_require__2(9215);\n var lookAt = __webpack_require__2(6582);\n var mat4FromQuat = __webpack_require__2(7399);\n var invert44 = __webpack_require__2(7608);\n var quatFromFrame = __webpack_require__2(4081);\n function len3(x, y, z) {\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));\n }\n function len4(w, x, y, z) {\n return Math.sqrt(Math.pow(w, 2) + Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));\n }\n function normalize4(out, a) {\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var al = len4(ax, ay, az, aw);\n if (al > 1e-6) {\n out[0] = ax / al;\n out[1] = ay / al;\n out[2] = az / al;\n out[3] = aw / al;\n } else {\n out[0] = out[1] = out[2] = 0;\n out[3] = 1;\n }\n }\n function OrbitCameraController(initQuat, initCenter, initRadius) {\n this.radius = filterVector([initRadius]);\n this.center = filterVector(initCenter);\n this.rotation = filterVector(initQuat);\n this.computedRadius = this.radius.curve(0);\n this.computedCenter = this.center.curve(0);\n this.computedRotation = this.rotation.curve(0);\n this.computedUp = [0.1, 0, 0];\n this.computedEye = [0.1, 0, 0];\n this.computedMatrix = [0.1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n this.recalcMatrix(0);\n }\n var proto = OrbitCameraController.prototype;\n proto.lastT = function() {\n return Math.max(\n this.radius.lastT(),\n this.center.lastT(),\n this.rotation.lastT()\n );\n };\n proto.recalcMatrix = function(t) {\n this.radius.curve(t);\n this.center.curve(t);\n this.rotation.curve(t);\n var quat = this.computedRotation;\n normalize4(quat, quat);\n var mat = this.computedMatrix;\n mat4FromQuat(mat, quat);\n var center = this.computedCenter;\n var eye = this.computedEye;\n var up = this.computedUp;\n var radius = Math.exp(this.computedRadius[0]);\n eye[0] = center[0] + radius * mat[2];\n eye[1] = center[1] + radius * mat[6];\n eye[2] = center[2] + radius * mat[10];\n up[0] = mat[1];\n up[1] = mat[5];\n up[2] = mat[9];\n for (var i = 0; i < 3; ++i) {\n var rr = 0;\n for (var j = 0; j < 3; ++j) {\n rr += mat[i + 4 * j] * eye[j];\n }\n mat[12 + i] = -rr;\n }\n };\n proto.getMatrix = function(t, result) {\n this.recalcMatrix(t);\n var m = this.computedMatrix;\n if (result) {\n for (var i = 0; i < 16; ++i) {\n result[i] = m[i];\n }\n return result;\n }\n return m;\n };\n proto.idle = function(t) {\n this.center.idle(t);\n this.radius.idle(t);\n this.rotation.idle(t);\n };\n proto.flush = function(t) {\n this.center.flush(t);\n this.radius.flush(t);\n this.rotation.flush(t);\n };\n proto.pan = function(t, dx, dy, dz) {\n dx = dx || 0;\n dy = dy || 0;\n dz = dz || 0;\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n var ux = mat[1];\n var uy = mat[5];\n var uz = mat[9];\n var ul = len3(ux, uy, uz);\n ux /= ul;\n uy /= ul;\n uz /= ul;\n var rx = mat[0];\n var ry = mat[4];\n var rz = mat[8];\n var ru = rx * ux + ry * uy + rz * uz;\n rx -= ux * ru;\n ry -= uy * ru;\n rz -= uz * ru;\n var rl = len3(rx, ry, rz);\n rx /= rl;\n ry /= rl;\n rz /= rl;\n var fx = mat[2];\n var fy = mat[6];\n var fz = mat[10];\n var fu = fx * ux + fy * uy + fz * uz;\n var fr = fx * rx + fy * ry + fz * rz;\n fx -= fu * ux + fr * rx;\n fy -= fu * uy + fr * ry;\n fz -= fu * uz + fr * rz;\n var fl = len3(fx, fy, fz);\n fx /= fl;\n fy /= fl;\n fz /= fl;\n var vx = rx * dx + ux * dy;\n var vy = ry * dx + uy * dy;\n var vz = rz * dx + uz * dy;\n this.center.move(t, vx, vy, vz);\n var radius = Math.exp(this.computedRadius[0]);\n radius = Math.max(1e-4, radius + dz);\n this.radius.set(t, Math.log(radius));\n };\n proto.rotate = function(t, dx, dy, dz) {\n this.recalcMatrix(t);\n dx = dx || 0;\n dy = dy || 0;\n var mat = this.computedMatrix;\n var rx = mat[0];\n var ry = mat[4];\n var rz = mat[8];\n var ux = mat[1];\n var uy = mat[5];\n var uz = mat[9];\n var fx = mat[2];\n var fy = mat[6];\n var fz = mat[10];\n var qx = dx * rx + dy * ux;\n var qy = dx * ry + dy * uy;\n var qz = dx * rz + dy * uz;\n var bx = -(fy * qz - fz * qy);\n var by = -(fz * qx - fx * qz);\n var bz = -(fx * qy - fy * qx);\n var bw = Math.sqrt(Math.max(0, 1 - Math.pow(bx, 2) - Math.pow(by, 2) - Math.pow(bz, 2)));\n var bl = len4(bx, by, bz, bw);\n if (bl > 1e-6) {\n bx /= bl;\n by /= bl;\n bz /= bl;\n bw /= bl;\n } else {\n bx = by = bz = 0;\n bw = 1;\n }\n var rotation = this.computedRotation;\n var ax = rotation[0];\n var ay = rotation[1];\n var az = rotation[2];\n var aw = rotation[3];\n var cx = ax * bw + aw * bx + ay * bz - az * by;\n var cy = ay * bw + aw * by + az * bx - ax * bz;\n var cz = az * bw + aw * bz + ax * by - ay * bx;\n var cw = aw * bw - ax * bx - ay * by - az * bz;\n if (dz) {\n bx = fx;\n by = fy;\n bz = fz;\n var s = Math.sin(dz) / len3(bx, by, bz);\n bx *= s;\n by *= s;\n bz *= s;\n bw = Math.cos(dx);\n cx = cx * bw + cw * bx + cy * bz - cz * by;\n cy = cy * bw + cw * by + cz * bx - cx * bz;\n cz = cz * bw + cw * bz + cx * by - cy * bx;\n cw = cw * bw - cx * bx - cy * by - cz * bz;\n }\n var cl = len4(cx, cy, cz, cw);\n if (cl > 1e-6) {\n cx /= cl;\n cy /= cl;\n cz /= cl;\n cw /= cl;\n } else {\n cx = cy = cz = 0;\n cw = 1;\n }\n this.rotation.set(t, cx, cy, cz, cw);\n };\n proto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t);\n center = center || this.computedCenter;\n eye = eye || this.computedEye;\n up = up || this.computedUp;\n var mat = this.computedMatrix;\n lookAt(mat, eye, center, up);\n var rotation = this.computedRotation;\n quatFromFrame(\n rotation,\n mat[0],\n mat[1],\n mat[2],\n mat[4],\n mat[5],\n mat[6],\n mat[8],\n mat[9],\n mat[10]\n );\n normalize4(rotation, rotation);\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]);\n var fl = 0;\n for (var i = 0; i < 3; ++i) {\n fl += Math.pow(center[i] - eye[i], 2);\n }\n this.radius.set(t, 0.5 * Math.log(Math.max(fl, 1e-6)));\n this.center.set(t, center[0], center[1], center[2]);\n };\n proto.translate = function(t, dx, dy, dz) {\n this.center.move(\n t,\n dx || 0,\n dy || 0,\n dz || 0\n );\n };\n proto.setMatrix = function(t, matrix) {\n var rotation = this.computedRotation;\n quatFromFrame(\n rotation,\n matrix[0],\n matrix[1],\n matrix[2],\n matrix[4],\n matrix[5],\n matrix[6],\n matrix[8],\n matrix[9],\n matrix[10]\n );\n normalize4(rotation, rotation);\n this.rotation.set(t, rotation[0], rotation[1], rotation[2], rotation[3]);\n var mat = this.computedMatrix;\n invert44(mat, matrix);\n var w = mat[15];\n if (Math.abs(w) > 1e-6) {\n var cx = mat[12] / w;\n var cy = mat[13] / w;\n var cz = mat[14] / w;\n this.recalcMatrix(t);\n var r = Math.exp(this.computedRadius[0]);\n this.center.set(t, cx - mat[2] * r, cy - mat[6] * r, cz - mat[10] * r);\n this.radius.idle(t);\n } else {\n this.center.idle(t);\n this.radius.idle(t);\n }\n };\n proto.setDistance = function(t, d) {\n if (d > 0) {\n this.radius.set(t, Math.log(d));\n }\n };\n proto.setDistanceLimits = function(lo, hi) {\n if (lo > 0) {\n lo = Math.log(lo);\n } else {\n lo = -Infinity;\n }\n if (hi > 0) {\n hi = Math.log(hi);\n } else {\n hi = Infinity;\n }\n hi = Math.max(hi, lo);\n this.radius.bounds[0][0] = lo;\n this.radius.bounds[1][0] = hi;\n };\n proto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds;\n if (out) {\n out[0] = Math.exp(bounds[0][0]);\n out[1] = Math.exp(bounds[1][0]);\n return out;\n }\n return [Math.exp(bounds[0][0]), Math.exp(bounds[1][0])];\n };\n proto.toJSON = function() {\n this.recalcMatrix(this.lastT());\n return {\n center: this.computedCenter.slice(),\n rotation: this.computedRotation.slice(),\n distance: Math.log(this.computedRadius[0]),\n zoomMin: this.radius.bounds[0][0],\n zoomMax: this.radius.bounds[1][0]\n };\n };\n proto.fromJSON = function(options) {\n var t = this.lastT();\n var c = options.center;\n if (c) {\n this.center.set(t, c[0], c[1], c[2]);\n }\n var r = options.rotation;\n if (r) {\n this.rotation.set(t, r[0], r[1], r[2], r[3]);\n }\n var d = options.distance;\n if (d && d > 0) {\n this.radius.set(t, Math.log(d));\n }\n this.setDistanceLimits(options.zoomMin, options.zoomMax);\n };\n function createOrbitController(options) {\n options = options || {};\n var center = options.center || [0, 0, 0];\n var rotation = options.rotation || [0, 0, 0, 1];\n var radius = options.radius || 1;\n center = [].slice.call(center, 0, 3);\n rotation = [].slice.call(rotation, 0, 4);\n normalize4(rotation, rotation);\n var result = new OrbitCameraController(\n rotation,\n center,\n Math.log(radius)\n );\n result.setDistanceLimits(options.zoomMin, options.zoomMax);\n if (\"eye\" in options || \"up\" in options) {\n result.lookAt(0, options.eye, options.center, options.up);\n }\n return result;\n }\n }\n ),\n /***/\n 1371: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var repeat = __webpack_require__2(3233);\n module2.exports = function padLeft(str, num, ch) {\n ch = typeof ch !== \"undefined\" ? ch + \"\" : \" \";\n return repeat(ch, num) + str;\n };\n }\n ),\n /***/\n 3202: (\n /***/\n function(module2) {\n module2.exports = function parseUnit(str, out) {\n if (!out)\n out = [0, \"\"];\n str = String(str);\n var num = parseFloat(str, 10);\n out[0] = num;\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || \"\";\n return out;\n };\n }\n ),\n /***/\n 3088: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = planarDual;\n var compareAngle = __webpack_require__2(3140);\n function planarDual(cells, positions) {\n var numVertices = positions.length | 0;\n var numEdges = cells.length;\n var adj = [new Array(numVertices), new Array(numVertices)];\n for (var i = 0; i < numVertices; ++i) {\n adj[0][i] = [];\n adj[1][i] = [];\n }\n for (var i = 0; i < numEdges; ++i) {\n var c = cells[i];\n adj[0][c[0]].push(c);\n adj[1][c[1]].push(c);\n }\n var cycles = [];\n for (var i = 0; i < numVertices; ++i) {\n if (adj[0][i].length + adj[1][i].length === 0) {\n cycles.push([i]);\n }\n }\n function cut(c2, i2) {\n var a = adj[i2][c2[i2]];\n a.splice(a.indexOf(c2), 1);\n }\n function next(a, b, noCut) {\n var nextCell, nextVertex, nextDir;\n for (var i2 = 0; i2 < 2; ++i2) {\n if (adj[i2][b].length > 0) {\n nextCell = adj[i2][b][0];\n nextDir = i2;\n break;\n }\n }\n nextVertex = nextCell[nextDir ^ 1];\n for (var dir = 0; dir < 2; ++dir) {\n var nbhd = adj[dir][b];\n for (var k = 0; k < nbhd.length; ++k) {\n var e = nbhd[k];\n var p = e[dir ^ 1];\n var cmp = compareAngle(\n positions[a],\n positions[b],\n positions[nextVertex],\n positions[p]\n );\n if (cmp > 0) {\n nextCell = e;\n nextVertex = p;\n nextDir = dir;\n }\n }\n }\n if (noCut) {\n return nextVertex;\n }\n if (nextCell) {\n cut(nextCell, nextDir);\n }\n return nextVertex;\n }\n function extractCycle(v, dir) {\n var e0 = adj[dir][v][0];\n var cycle = [v];\n cut(e0, dir);\n var u = e0[dir ^ 1];\n var d0 = dir;\n while (true) {\n while (u !== v) {\n cycle.push(u);\n u = next(cycle[cycle.length - 2], u, false);\n }\n if (adj[0][v].length + adj[1][v].length === 0) {\n break;\n }\n var a = cycle[cycle.length - 1];\n var b = v;\n var c2 = cycle[1];\n var d = next(a, b, true);\n if (compareAngle(positions[a], positions[b], positions[c2], positions[d]) < 0) {\n break;\n }\n cycle.push(v);\n u = next(a, b);\n }\n return cycle;\n }\n function shouldGlue(pcycle2, ncycle2) {\n return ncycle2[1] === ncycle2[ncycle2.length - 1];\n }\n for (var i = 0; i < numVertices; ++i) {\n for (var j = 0; j < 2; ++j) {\n var pcycle = [];\n while (adj[j][i].length > 0) {\n var ni = adj[0][i].length;\n var ncycle = extractCycle(i, j);\n if (shouldGlue(pcycle, ncycle)) {\n pcycle.push.apply(pcycle, ncycle);\n } else {\n if (pcycle.length > 0) {\n cycles.push(pcycle);\n }\n pcycle = ncycle;\n }\n }\n if (pcycle.length > 0) {\n cycles.push(pcycle);\n }\n }\n }\n return cycles;\n }\n }\n ),\n /***/\n 5609: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = trimLeaves;\n var e2a = __webpack_require__2(3134);\n function trimLeaves(edges, positions) {\n var adj = e2a(edges, positions.length);\n var live = new Array(positions.length);\n var nbhd = new Array(positions.length);\n var dead = [];\n for (var i = 0; i < positions.length; ++i) {\n var count = adj[i].length;\n nbhd[i] = count;\n live[i] = true;\n if (count <= 1) {\n dead.push(i);\n }\n }\n while (dead.length > 0) {\n var v = dead.pop();\n live[v] = false;\n var n = adj[v];\n for (var i = 0; i < n.length; ++i) {\n var u = n[i];\n if (--nbhd[u] === 0) {\n dead.push(u);\n }\n }\n }\n var newIndex = new Array(positions.length);\n var npositions = [];\n for (var i = 0; i < positions.length; ++i) {\n if (live[i]) {\n var v = npositions.length;\n newIndex[i] = v;\n npositions.push(positions[i]);\n } else {\n newIndex[i] = -1;\n }\n }\n var nedges = [];\n for (var i = 0; i < edges.length; ++i) {\n var e = edges[i];\n if (live[e[0]] && live[e[1]]) {\n nedges.push([newIndex[e[0]], newIndex[e[1]]]);\n }\n }\n return [nedges, npositions];\n }\n }\n ),\n /***/\n 2095: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = planarGraphToPolyline;\n var e2a = __webpack_require__2(3134);\n var planarDual = __webpack_require__2(3088);\n var preprocessPolygon = __webpack_require__2(5085);\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var uniq = __webpack_require__2(1682);\n var trimLeaves = __webpack_require__2(5609);\n function makeArray(length, fill) {\n var result = new Array(length);\n for (var i = 0; i < length; ++i) {\n result[i] = fill;\n }\n return result;\n }\n function makeArrayOfArrays(length) {\n var result = new Array(length);\n for (var i = 0; i < length; ++i) {\n result[i] = [];\n }\n return result;\n }\n function planarGraphToPolyline(edges, positions) {\n var result = trimLeaves(edges, positions);\n edges = result[0];\n positions = result[1];\n var numVertices = positions.length;\n var numEdges = edges.length;\n var adj = e2a(edges, positions.length);\n for (var i = 0; i < numVertices; ++i) {\n if (adj[i].length % 2 === 1) {\n throw new Error(\"planar-graph-to-polyline: graph must be manifold\");\n }\n }\n var faces = planarDual(edges, positions);\n function ccw(c2) {\n var n2 = c2.length;\n var area = [0];\n for (var j2 = 0; j2 < n2; ++j2) {\n var a2 = positions[c2[j2]];\n var b2 = positions[c2[(j2 + 1) % n2]];\n var t00 = twoProduct(-a2[0], a2[1]);\n var t01 = twoProduct(-a2[0], b2[1]);\n var t10 = twoProduct(b2[0], a2[1]);\n var t11 = twoProduct(b2[0], b2[1]);\n area = robustSum(area, robustSum(robustSum(t00, t01), robustSum(t10, t11)));\n }\n return area[area.length - 1] > 0;\n }\n faces = faces.filter(ccw);\n var numFaces = faces.length;\n var parent = new Array(numFaces);\n var containment = new Array(numFaces);\n for (var i = 0; i < numFaces; ++i) {\n parent[i] = i;\n var row = new Array(numFaces);\n var loopVertices = faces[i].map(function(v) {\n return positions[v];\n });\n var pmc = preprocessPolygon([loopVertices]);\n var count = 0;\n outer:\n for (var j = 0; j < numFaces; ++j) {\n row[j] = 0;\n if (i === j) {\n continue;\n }\n var c = faces[j];\n var n = c.length;\n for (var k = 0; k < n; ++k) {\n var d = pmc(positions[c[k]]);\n if (d !== 0) {\n if (d < 0) {\n row[j] = 1;\n count += 1;\n }\n continue outer;\n }\n }\n row[j] = 1;\n count += 1;\n }\n containment[i] = [count, i, row];\n }\n containment.sort(function(a2, b2) {\n return b2[0] - a2[0];\n });\n for (var i = 0; i < numFaces; ++i) {\n var row = containment[i];\n var idx = row[1];\n var children = row[2];\n for (var j = 0; j < numFaces; ++j) {\n if (children[j]) {\n parent[j] = idx;\n }\n }\n }\n var fadj = makeArrayOfArrays(numFaces);\n for (var i = 0; i < numFaces; ++i) {\n fadj[i].push(parent[i]);\n fadj[parent[i]].push(i);\n }\n var edgeAdjacency = {};\n var internalVertices = makeArray(numVertices, false);\n for (var i = 0; i < numFaces; ++i) {\n var c = faces[i];\n var n = c.length;\n for (var j = 0; j < n; ++j) {\n var a = c[j];\n var b = c[(j + 1) % n];\n var key = Math.min(a, b) + \":\" + Math.max(a, b);\n if (key in edgeAdjacency) {\n var neighbor = edgeAdjacency[key];\n fadj[neighbor].push(i);\n fadj[i].push(neighbor);\n internalVertices[a] = internalVertices[b] = true;\n } else {\n edgeAdjacency[key] = i;\n }\n }\n }\n function sharedBoundary(c2) {\n var n2 = c2.length;\n for (var i2 = 0; i2 < n2; ++i2) {\n if (!internalVertices[c2[i2]]) {\n return false;\n }\n }\n return true;\n }\n var toVisit = [];\n var parity = makeArray(numFaces, -1);\n for (var i = 0; i < numFaces; ++i) {\n if (parent[i] === i && !sharedBoundary(faces[i])) {\n toVisit.push(i);\n parity[i] = 0;\n } else {\n parity[i] = -1;\n }\n }\n var result = [];\n while (toVisit.length > 0) {\n var top = toVisit.pop();\n var nbhd = fadj[top];\n uniq(nbhd, function(a2, b2) {\n return a2 - b2;\n });\n var nnbhr = nbhd.length;\n var p = parity[top];\n var polyline;\n if (p === 0) {\n var c = faces[top];\n polyline = [c];\n }\n for (var i = 0; i < nnbhr; ++i) {\n var f = nbhd[i];\n if (parity[f] >= 0) {\n continue;\n }\n parity[f] = p ^ 1;\n toVisit.push(f);\n if (p === 0) {\n var c = faces[f];\n if (!sharedBoundary(c)) {\n c.reverse();\n polyline.push(c);\n }\n }\n }\n if (p === 0) {\n result.push(polyline);\n }\n }\n return result;\n }\n }\n ),\n /***/\n 5085: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = preprocessPolygon;\n var orient = __webpack_require__2(3250)[3];\n var makeSlabs = __webpack_require__2(4209);\n var makeIntervalTree = __webpack_require__2(3352);\n var bsearch = __webpack_require__2(2478);\n function visitInterval() {\n return true;\n }\n function intervalSearch(table) {\n return function(x, y) {\n var tree = table[x];\n if (tree) {\n return !!tree.queryPoint(y, visitInterval);\n }\n return false;\n };\n }\n function buildVerticalIndex(segments) {\n var table = {};\n for (var i = 0; i < segments.length; ++i) {\n var s = segments[i];\n var x = s[0][0];\n var y0 = s[0][1];\n var y1 = s[1][1];\n var p = [Math.min(y0, y1), Math.max(y0, y1)];\n if (x in table) {\n table[x].push(p);\n } else {\n table[x] = [p];\n }\n }\n var intervalTable = {};\n var keys = Object.keys(table);\n for (var i = 0; i < keys.length; ++i) {\n var segs = table[keys[i]];\n intervalTable[keys[i]] = makeIntervalTree(segs);\n }\n return intervalSearch(intervalTable);\n }\n function buildSlabSearch(slabs, coordinates) {\n return function(p) {\n var bucket = bsearch.le(coordinates, p[0]);\n if (bucket < 0) {\n return 1;\n }\n var root = slabs[bucket];\n if (!root) {\n if (bucket > 0 && coordinates[bucket] === p[0]) {\n root = slabs[bucket - 1];\n } else {\n return 1;\n }\n }\n var lastOrientation = 1;\n while (root) {\n var s = root.key;\n var o = orient(p, s[0], s[1]);\n if (s[0][0] < s[1][0]) {\n if (o < 0) {\n root = root.left;\n } else if (o > 0) {\n lastOrientation = -1;\n root = root.right;\n } else {\n return 0;\n }\n } else {\n if (o > 0) {\n root = root.left;\n } else if (o < 0) {\n lastOrientation = 1;\n root = root.right;\n } else {\n return 0;\n }\n }\n }\n return lastOrientation;\n };\n }\n function classifyEmpty(p) {\n return 1;\n }\n function createClassifyVertical(testVertical) {\n return function classify(p) {\n if (testVertical(p[0], p[1])) {\n return 0;\n }\n return 1;\n };\n }\n function createClassifyPointDegen(testVertical, testNormal) {\n return function classify(p) {\n if (testVertical(p[0], p[1])) {\n return 0;\n }\n return testNormal(p);\n };\n }\n function preprocessPolygon(loops) {\n var numLoops = loops.length;\n var segments = [];\n var vsegments = [];\n var ptr = 0;\n for (var i = 0; i < numLoops; ++i) {\n var loop = loops[i];\n var numVertices = loop.length;\n for (var s = numVertices - 1, t = 0; t < numVertices; s = t++) {\n var a = loop[s];\n var b = loop[t];\n if (a[0] === b[0]) {\n vsegments.push([a, b]);\n } else {\n segments.push([a, b]);\n }\n }\n }\n if (segments.length === 0) {\n if (vsegments.length === 0) {\n return classifyEmpty;\n } else {\n return createClassifyVertical(buildVerticalIndex(vsegments));\n }\n }\n var slabs = makeSlabs(segments);\n var testSlab = buildSlabSearch(slabs.slabs, slabs.coordinates);\n if (vsegments.length === 0) {\n return testSlab;\n } else {\n return createClassifyPointDegen(\n buildVerticalIndex(vsegments),\n testSlab\n );\n }\n }\n }\n ),\n /***/\n 9346: (\n /***/\n function(module2) {\n \"use strict\";\n var diff = new Float64Array(4);\n var edge0 = new Float64Array(4);\n var edge1 = new Float64Array(4);\n function closestPoint2d(V0, V1, V2, point, result) {\n if (diff.length < point.length) {\n diff = new Float64Array(point.length);\n edge0 = new Float64Array(point.length);\n edge1 = new Float64Array(point.length);\n }\n for (var i = 0; i < point.length; ++i) {\n diff[i] = V0[i] - point[i];\n edge0[i] = V1[i] - V0[i];\n edge1[i] = V2[i] - V0[i];\n }\n var a00 = 0, a01 = 0, a11 = 0, b0 = 0, b1 = 0, c = 0;\n for (var i = 0; i < point.length; ++i) {\n var e0 = edge0[i], e1 = edge1[i], d = diff[i];\n a00 += e0 * e0;\n a01 += e0 * e1;\n a11 += e1 * e1;\n b0 += d * e0;\n b1 += d * e1;\n c += d * d;\n }\n var det = Math.abs(a00 * a11 - a01 * a01);\n var s = a01 * b1 - a11 * b0;\n var t = a01 * b0 - a00 * b1;\n var sqrDistance;\n if (s + t <= det) {\n if (s < 0) {\n if (t < 0) {\n if (b0 < 0) {\n t = 0;\n if (-b0 >= a00) {\n s = 1;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = -b0 / a00;\n sqrDistance = b0 * s + c;\n }\n } else {\n s = 0;\n if (b1 >= 0) {\n t = 0;\n sqrDistance = c;\n } else if (-b1 >= a11) {\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n t = -b1 / a11;\n sqrDistance = b1 * t + c;\n }\n }\n } else {\n s = 0;\n if (b1 >= 0) {\n t = 0;\n sqrDistance = c;\n } else if (-b1 >= a11) {\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n t = -b1 / a11;\n sqrDistance = b1 * t + c;\n }\n }\n } else if (t < 0) {\n t = 0;\n if (b0 >= 0) {\n s = 0;\n sqrDistance = c;\n } else if (-b0 >= a00) {\n s = 1;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = -b0 / a00;\n sqrDistance = b0 * s + c;\n }\n } else {\n var invDet = 1 / det;\n s *= invDet;\n t *= invDet;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n } else {\n var tmp0, tmp1, numer, denom;\n if (s < 0) {\n tmp0 = a01 + b0;\n tmp1 = a11 + b1;\n if (tmp1 > tmp0) {\n numer = tmp1 - tmp0;\n denom = a00 - 2 * a01 + a11;\n if (numer >= denom) {\n s = 1;\n t = 0;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = numer / denom;\n t = 1 - s;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n } else {\n s = 0;\n if (tmp1 <= 0) {\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else if (b1 >= 0) {\n t = 0;\n sqrDistance = c;\n } else {\n t = -b1 / a11;\n sqrDistance = b1 * t + c;\n }\n }\n } else if (t < 0) {\n tmp0 = a01 + b1;\n tmp1 = a00 + b0;\n if (tmp1 > tmp0) {\n numer = tmp1 - tmp0;\n denom = a00 - 2 * a01 + a11;\n if (numer >= denom) {\n t = 1;\n s = 0;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n t = numer / denom;\n s = 1 - t;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n } else {\n t = 0;\n if (tmp1 <= 0) {\n s = 1;\n sqrDistance = a00 + 2 * b0 + c;\n } else if (b0 >= 0) {\n s = 0;\n sqrDistance = c;\n } else {\n s = -b0 / a00;\n sqrDistance = b0 * s + c;\n }\n }\n } else {\n numer = a11 + b1 - a01 - b0;\n if (numer <= 0) {\n s = 0;\n t = 1;\n sqrDistance = a11 + 2 * b1 + c;\n } else {\n denom = a00 - 2 * a01 + a11;\n if (numer >= denom) {\n s = 1;\n t = 0;\n sqrDistance = a00 + 2 * b0 + c;\n } else {\n s = numer / denom;\n t = 1 - s;\n sqrDistance = s * (a00 * s + a01 * t + 2 * b0) + t * (a01 * s + a11 * t + 2 * b1) + c;\n }\n }\n }\n }\n var u = 1 - s - t;\n for (var i = 0; i < point.length; ++i) {\n result[i] = u * V0[i] + s * V1[i] + t * V2[i];\n }\n if (sqrDistance < 0) {\n return 0;\n }\n return sqrDistance;\n }\n module2.exports = closestPoint2d;\n }\n ),\n /***/\n 8648: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2(783);\n }\n ),\n /***/\n 2653: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bnadd = __webpack_require__2(3865);\n module2.exports = add;\n function add(a, b) {\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = bnadd(a[i], b[i]);\n }\n return r;\n }\n }\n ),\n /***/\n 5838: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = float2rat;\n var rat = __webpack_require__2(7842);\n function float2rat(v) {\n var result = new Array(v.length);\n for (var i = 0; i < v.length; ++i) {\n result[i] = rat(v[i]);\n }\n return result;\n }\n }\n ),\n /***/\n 8987: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var rat = __webpack_require__2(7842);\n var mul = __webpack_require__2(6504);\n module2.exports = muls;\n function muls(a, x) {\n var s = rat(x);\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = mul(a[i], s);\n }\n return r;\n }\n }\n ),\n /***/\n 544: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var bnsub = __webpack_require__2(5572);\n module2.exports = sub;\n function sub(a, b) {\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = bnsub(a[i], b[i]);\n }\n return r;\n }\n }\n ),\n /***/\n 5771: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var compareCell = __webpack_require__2(8507);\n var compareOrientedCell = __webpack_require__2(3788);\n var orientation = __webpack_require__2(2419);\n module2.exports = reduceCellComplex;\n function reduceCellComplex(cells) {\n cells.sort(compareOrientedCell);\n var n = cells.length;\n var ptr = 0;\n for (var i = 0; i < n; ++i) {\n var c = cells[i];\n var o = orientation(c);\n if (o === 0) {\n continue;\n }\n if (ptr > 0) {\n var f = cells[ptr - 1];\n if (compareCell(c, f) === 0 && orientation(f) !== o) {\n ptr -= 1;\n continue;\n }\n }\n cells[ptr++] = c;\n }\n cells.length = ptr;\n return cells;\n }\n }\n ),\n /***/\n 3233: (\n /***/\n function(module2) {\n \"use strict\";\n var res = \"\";\n var cache;\n module2.exports = repeat;\n function repeat(str, num) {\n if (typeof str !== \"string\") {\n throw new TypeError(\"expected a string\");\n }\n if (num === 1) return str;\n if (num === 2) return str + str;\n var max = str.length * num;\n if (cache !== str || typeof cache === \"undefined\") {\n cache = str;\n res = \"\";\n } else if (res.length >= max) {\n return res.substr(0, max);\n }\n while (max > res.length && num > 1) {\n if (num & 1) {\n res += str;\n }\n num >>= 1;\n str += str;\n }\n res += str;\n res = res.substr(0, max);\n return res;\n }\n }\n ),\n /***/\n 3025: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = __webpack_require__2.g.performance && __webpack_require__2.g.performance.now ? function now() {\n return performance.now();\n } : Date.now || function now() {\n return +/* @__PURE__ */ new Date();\n };\n }\n ),\n /***/\n 7004: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = compressExpansion;\n function compressExpansion(e) {\n var m = e.length;\n var Q = e[e.length - 1];\n var bottom = m;\n for (var i = m - 2; i >= 0; --i) {\n var a = Q;\n var b = e[i];\n Q = a + b;\n var bv = Q - a;\n var q = b - bv;\n if (q) {\n e[--bottom] = Q;\n Q = q;\n }\n }\n var top = 0;\n for (var i = bottom; i < m; ++i) {\n var a = e[i];\n var b = Q;\n Q = a + b;\n var bv = Q - a;\n var q = b - bv;\n if (q) {\n e[top++] = q;\n }\n }\n e[top++] = Q;\n e.length = top;\n return e;\n }\n }\n ),\n /***/\n 2962: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var robustScale = __webpack_require__2(3012);\n var compress = __webpack_require__2(7004);\n var NUM_EXPANDED = 6;\n function determinant_2(sum, scale, prod, compress2) {\n return function robustDeterminant2(m) {\n return compress2(sum(prod(m[0][0], m[1][1]), prod(-m[0][1], m[1][0])));\n };\n }\n function determinant_3(sum, scale, prod, compress2) {\n return function robustDeterminant3(m) {\n return compress2(sum(scale(sum(prod(m[1][1], m[2][2]), prod(-m[1][2], m[2][1])), m[0][0]), sum(scale(sum(prod(m[1][0], m[2][2]), prod(-m[1][2], m[2][0])), -m[0][1]), scale(sum(prod(m[1][0], m[2][1]), prod(-m[1][1], m[2][0])), m[0][2]))));\n };\n }\n function determinant_4(sum, scale, prod, compress2) {\n return function robustDeterminant4(m) {\n return compress2(sum(sum(scale(sum(scale(sum(prod(m[2][2], m[3][3]), prod(-m[2][3], m[3][2])), m[1][1]), sum(scale(sum(prod(m[2][1], m[3][3]), prod(-m[2][3], m[3][1])), -m[1][2]), scale(sum(prod(m[2][1], m[3][2]), prod(-m[2][2], m[3][1])), m[1][3]))), m[0][0]), scale(sum(scale(sum(prod(m[2][2], m[3][3]), prod(-m[2][3], m[3][2])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][3]), prod(-m[2][3], m[3][0])), -m[1][2]), scale(sum(prod(m[2][0], m[3][2]), prod(-m[2][2], m[3][0])), m[1][3]))), -m[0][1])), sum(scale(sum(scale(sum(prod(m[2][1], m[3][3]), prod(-m[2][3], m[3][1])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][3]), prod(-m[2][3], m[3][0])), -m[1][1]), scale(sum(prod(m[2][0], m[3][1]), prod(-m[2][1], m[3][0])), m[1][3]))), m[0][2]), scale(sum(scale(sum(prod(m[2][1], m[3][2]), prod(-m[2][2], m[3][1])), m[1][0]), sum(scale(sum(prod(m[2][0], m[3][2]), prod(-m[2][2], m[3][0])), -m[1][1]), scale(sum(prod(m[2][0], m[3][1]), prod(-m[2][1], m[3][0])), m[1][2]))), -m[0][3]))));\n };\n }\n function determinant_5(sum, scale, prod, compress2) {\n return function robustDeterminant5(m) {\n return compress2(sum(sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][2]), sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), -m[2][3]), scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][4]))), m[1][1]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][3]), scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][4]))), -m[1][2])), sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][3]))), -m[1][4]))), m[0][0]), scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][2]), sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), -m[2][3]), scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][3]), scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), m[2][4]))), -m[1][2])), sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][3]))), -m[1][4]))), -m[0][1])), sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][3]), scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][3], m[4][4]), prod(-m[3][4], m[4][3])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][3]), scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), m[2][4]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][4]))), m[1][3]), scale(sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][3]))), -m[1][4]))), m[0][2]), sum(scale(sum(sum(scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][4]))), m[1][0]), scale(sum(scale(sum(prod(m[3][2], m[4][4]), prod(-m[3][4], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][4]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][4]), prod(-m[3][4], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][4]), prod(-m[3][4], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][4]))), m[1][2]), scale(sum(scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][2]))), -m[1][4]))), -m[0][3]), scale(sum(sum(scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][1]), sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), -m[2][2]), scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][3]))), m[1][0]), scale(sum(scale(sum(prod(m[3][2], m[4][3]), prod(-m[3][3], m[4][2])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][2]), scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), m[2][3]))), -m[1][1])), sum(scale(sum(scale(sum(prod(m[3][1], m[4][3]), prod(-m[3][3], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][3]), prod(-m[3][3], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][3]))), m[1][2]), scale(sum(scale(sum(prod(m[3][1], m[4][2]), prod(-m[3][2], m[4][1])), m[2][0]), sum(scale(sum(prod(m[3][0], m[4][2]), prod(-m[3][2], m[4][0])), -m[2][1]), scale(sum(prod(m[3][0], m[4][1]), prod(-m[3][1], m[4][0])), m[2][2]))), -m[1][3]))), m[0][4])))));\n };\n }\n function compileDeterminant(n) {\n var fn = n === 2 ? determinant_2 : n === 3 ? determinant_3 : n === 4 ? determinant_4 : n === 5 ? determinant_5 : void 0;\n return fn(robustSum, robustScale, twoProduct, compress);\n }\n var CACHE = [\n function robustDeterminant0() {\n return [0];\n },\n function robustDeterminant1(m) {\n return [m[0][0]];\n }\n ];\n function proc(det0, det1, det2, det3, det4, det5, CACHE2, gen) {\n return function robustDeterminant(m) {\n switch (m.length) {\n case 0:\n return det0(m);\n case 1:\n return det1(m);\n case 2:\n return det2(m);\n case 3:\n return det3(m);\n case 4:\n return det4(m);\n case 5:\n return det5(m);\n }\n var det = CACHE2[m.length];\n if (!det) det = CACHE2[m.length] = gen(m.length);\n return det(m);\n };\n }\n function generateDispatch() {\n while (CACHE.length < NUM_EXPANDED) {\n CACHE.push(compileDeterminant(CACHE.length));\n }\n module2.exports = proc.apply(void 0, CACHE.concat([CACHE, compileDeterminant]));\n for (var i = 0; i < CACHE.length; ++i) {\n module2.exports[i] = CACHE[i];\n }\n }\n generateDispatch();\n }\n ),\n /***/\n 1944: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n module2.exports = robustDotProduct;\n function robustDotProduct(a, b) {\n var r = twoProduct(a[0], b[0]);\n for (var i = 1; i < a.length; ++i) {\n r = robustSum(r, twoProduct(a[i], b[i]));\n }\n return r;\n }\n }\n ),\n /***/\n 2646: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var robustDiff = __webpack_require__2(8545);\n var robustScale = __webpack_require__2(3012);\n var NUM_EXPAND = 6;\n function orientation(n) {\n var fn = n === 3 ? inSphere3 : n === 4 ? inSphere4 : n === 5 ? inSphere5 : inSphere6;\n return fn(robustSum, robustDiff, twoProduct, robustScale);\n }\n function inSphere0() {\n return 0;\n }\n function inSphere1() {\n return 0;\n }\n function inSphere2() {\n return 0;\n }\n function inSphere3(sum, diff, prod, scale) {\n function exactInSphere3(m0, m1, m2) {\n var w0 = prod(m0[0], m0[0]);\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w1 = prod(m1[0], m1[0]);\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w2 = prod(m2[0], m2[0]);\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var p = sum(diff(w2m1, w1m2), diff(w1m0, w0m1));\n var n = diff(w2m0, w0m2);\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere3;\n }\n function inSphere4(sum, diff, prod, scale) {\n function exactInSphere4(m0, m1, m2, m3) {\n var w0 = sum(prod(m0[0], m0[0]), prod(m0[1], m0[1]));\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w0m3 = scale(w0, m3[0]);\n var w1 = sum(prod(m1[0], m1[0]), prod(m1[1], m1[1]));\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w1m3 = scale(w1, m3[0]);\n var w2 = sum(prod(m2[0], m2[0]), prod(m2[1], m2[1]));\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var w2m3 = scale(w2, m3[0]);\n var w3 = sum(prod(m3[0], m3[0]), prod(m3[1], m3[1]));\n var w3m0 = scale(w3, m0[0]);\n var w3m1 = scale(w3, m1[0]);\n var w3m2 = scale(w3, m2[0]);\n var p = sum(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))));\n var n = sum(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))));\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere4;\n }\n function inSphere5(sum, diff, prod, scale) {\n function exactInSphere5(m0, m1, m2, m3, m4) {\n var w0 = sum(prod(m0[0], m0[0]), sum(prod(m0[1], m0[1]), prod(m0[2], m0[2])));\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w0m3 = scale(w0, m3[0]);\n var w0m4 = scale(w0, m4[0]);\n var w1 = sum(prod(m1[0], m1[0]), sum(prod(m1[1], m1[1]), prod(m1[2], m1[2])));\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w1m3 = scale(w1, m3[0]);\n var w1m4 = scale(w1, m4[0]);\n var w2 = sum(prod(m2[0], m2[0]), sum(prod(m2[1], m2[1]), prod(m2[2], m2[2])));\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var w2m3 = scale(w2, m3[0]);\n var w2m4 = scale(w2, m4[0]);\n var w3 = sum(prod(m3[0], m3[0]), sum(prod(m3[1], m3[1]), prod(m3[2], m3[2])));\n var w3m0 = scale(w3, m0[0]);\n var w3m1 = scale(w3, m1[0]);\n var w3m2 = scale(w3, m2[0]);\n var w3m4 = scale(w3, m4[0]);\n var w4 = sum(prod(m4[0], m4[0]), sum(prod(m4[1], m4[1]), prod(m4[2], m4[2])));\n var w4m0 = scale(w4, m0[0]);\n var w4m1 = scale(w4, m1[0]);\n var w4m2 = scale(w4, m2[0]);\n var w4m3 = scale(w4, m3[0]);\n var p = sum(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m1[2]), sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m2[2]), scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m3[2]))), sum(scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m4[2]), sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m1[2])))), sum(sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m3[2]), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m4[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), m0[2]))), sum(scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m1[2]), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m3[2])))));\n var n = sum(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m4[2]))), sum(sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m0[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m4[2]))));\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere5;\n }\n function inSphere6(sum, diff, prod, scale) {\n function exactInSphere6(m0, m1, m2, m3, m4, m5) {\n var w0 = sum(sum(prod(m0[0], m0[0]), prod(m0[1], m0[1])), sum(prod(m0[2], m0[2]), prod(m0[3], m0[3])));\n var w0m1 = scale(w0, m1[0]);\n var w0m2 = scale(w0, m2[0]);\n var w0m3 = scale(w0, m3[0]);\n var w0m4 = scale(w0, m4[0]);\n var w0m5 = scale(w0, m5[0]);\n var w1 = sum(sum(prod(m1[0], m1[0]), prod(m1[1], m1[1])), sum(prod(m1[2], m1[2]), prod(m1[3], m1[3])));\n var w1m0 = scale(w1, m0[0]);\n var w1m2 = scale(w1, m2[0]);\n var w1m3 = scale(w1, m3[0]);\n var w1m4 = scale(w1, m4[0]);\n var w1m5 = scale(w1, m5[0]);\n var w2 = sum(sum(prod(m2[0], m2[0]), prod(m2[1], m2[1])), sum(prod(m2[2], m2[2]), prod(m2[3], m2[3])));\n var w2m0 = scale(w2, m0[0]);\n var w2m1 = scale(w2, m1[0]);\n var w2m3 = scale(w2, m3[0]);\n var w2m4 = scale(w2, m4[0]);\n var w2m5 = scale(w2, m5[0]);\n var w3 = sum(sum(prod(m3[0], m3[0]), prod(m3[1], m3[1])), sum(prod(m3[2], m3[2]), prod(m3[3], m3[3])));\n var w3m0 = scale(w3, m0[0]);\n var w3m1 = scale(w3, m1[0]);\n var w3m2 = scale(w3, m2[0]);\n var w3m4 = scale(w3, m4[0]);\n var w3m5 = scale(w3, m5[0]);\n var w4 = sum(sum(prod(m4[0], m4[0]), prod(m4[1], m4[1])), sum(prod(m4[2], m4[2]), prod(m4[3], m4[3])));\n var w4m0 = scale(w4, m0[0]);\n var w4m1 = scale(w4, m1[0]);\n var w4m2 = scale(w4, m2[0]);\n var w4m3 = scale(w4, m3[0]);\n var w4m5 = scale(w4, m5[0]);\n var w5 = sum(sum(prod(m5[0], m5[0]), prod(m5[1], m5[1])), sum(prod(m5[2], m5[2]), prod(m5[3], m5[3])));\n var w5m0 = scale(w5, m0[0]);\n var w5m1 = scale(w5, m1[0]);\n var w5m2 = scale(w5, m2[0]);\n var w5m3 = scale(w5, m3[0]);\n var w5m4 = scale(w5, m4[0]);\n var p = sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m2[2]), scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), -m5[2]))), m1[3]), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m5[2]))), -m2[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), -m5[2]))), m3[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m1[2]), scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m5[2]))), -m4[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m1[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m4[2]))), m5[3])), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m5[2]))), m0[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m5[2]))), -m1[3])))), sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m4[2]), scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), -m5[2]))), m3[3]), scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m5[2]))), -m4[3])), sum(scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m4[2]))), m5[3]), scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m1[2]), scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m5[2]))), m0[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m5[2]))), -m1[3]), scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m3[1]), scale(diff(w3m1, w1m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m5[2]))), m2[3])), sum(scale(sum(sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m0[2]), scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m5[2]))), -m3[3]), scale(sum(sum(scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), m0[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m1[2])), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m3[2]))), m5[3])))));\n var n = sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m2[2]), scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), -m5[2]))), m0[3]), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m3[1]), sum(scale(diff(w5m3, w3m5), -m4[1]), scale(diff(w4m3, w3m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m3[2])), sum(scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), m4[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m5[2]))), -m2[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m5[2]))), m3[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m3, w3m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m3[1]), scale(diff(w3m2, w2m3), m5[1]))), m0[2]), scale(sum(scale(diff(w5m3, w3m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m3[1]), scale(diff(w3m0, w0m3), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m5[2]))), -m4[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m4[2]))), m5[3])), sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m1[2]), scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), -m5[2]))), m0[3]), scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m2[1]), sum(scale(diff(w5m2, w2m5), -m4[1]), scale(diff(w4m2, w2m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m2[2])), sum(scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), m4[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m5[2]))), -m1[3])))), sum(sum(sum(scale(sum(sum(scale(sum(scale(diff(w5m4, w4m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m4[1]), scale(diff(w4m1, w1m4), m5[1]))), m0[2]), scale(sum(scale(diff(w5m4, w4m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m4[1]), scale(diff(w4m0, w0m4), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m4[2]), scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), -m5[2]))), m2[3]), scale(sum(sum(scale(sum(scale(diff(w5m2, w2m5), m1[1]), sum(scale(diff(w5m1, w1m5), -m2[1]), scale(diff(w2m1, w1m2), m5[1]))), m0[2]), scale(sum(scale(diff(w5m2, w2m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m2[1]), scale(diff(w2m0, w0m2), m5[1]))), -m1[2])), sum(scale(sum(scale(diff(w5m1, w1m5), m0[1]), sum(scale(diff(w5m0, w0m5), -m1[1]), scale(diff(w1m0, w0m1), m5[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m5[2]))), -m4[3])), sum(scale(sum(sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m0[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m4[2]))), m5[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m1[2]), scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), -m4[2]))), m0[3]))), sum(sum(scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m2[1]), sum(scale(diff(w4m2, w2m4), -m3[1]), scale(diff(w3m2, w2m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m2[2])), sum(scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), m3[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m4[2]))), -m1[3]), scale(sum(sum(scale(sum(scale(diff(w4m3, w3m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m3[1]), scale(diff(w3m1, w1m3), m4[1]))), m0[2]), scale(sum(scale(diff(w4m3, w3m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m3[1]), scale(diff(w3m0, w0m3), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m3[2]), scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), -m4[2]))), m2[3])), sum(scale(sum(sum(scale(sum(scale(diff(w4m2, w2m4), m1[1]), sum(scale(diff(w4m1, w1m4), -m2[1]), scale(diff(w2m1, w1m2), m4[1]))), m0[2]), scale(sum(scale(diff(w4m2, w2m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m2[1]), scale(diff(w2m0, w0m2), m4[1]))), -m1[2])), sum(scale(sum(scale(diff(w4m1, w1m4), m0[1]), sum(scale(diff(w4m0, w0m4), -m1[1]), scale(diff(w1m0, w0m1), m4[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m4[2]))), -m3[3]), scale(sum(sum(scale(sum(scale(diff(w3m2, w2m3), m1[1]), sum(scale(diff(w3m1, w1m3), -m2[1]), scale(diff(w2m1, w1m2), m3[1]))), m0[2]), scale(sum(scale(diff(w3m2, w2m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m2[1]), scale(diff(w2m0, w0m2), m3[1]))), -m1[2])), sum(scale(sum(scale(diff(w3m1, w1m3), m0[1]), sum(scale(diff(w3m0, w0m3), -m1[1]), scale(diff(w1m0, w0m1), m3[1]))), m2[2]), scale(sum(scale(diff(w2m1, w1m2), m0[1]), sum(scale(diff(w2m0, w0m2), -m1[1]), scale(diff(w1m0, w0m1), m2[1]))), -m3[2]))), m4[3])))));\n var d = diff(p, n);\n return d[d.length - 1];\n }\n return exactInSphere6;\n }\n var CACHED = [\n inSphere0,\n inSphere1,\n inSphere2\n ];\n function slowInSphere(args) {\n var proc2 = CACHED[args.length];\n if (!proc2) {\n proc2 = CACHED[args.length] = orientation(args.length);\n }\n return proc2.apply(void 0, args);\n }\n function proc(slow, o0, o1, o2, o3, o4, o5, o6) {\n function testInSphere(a0, a1, a2, a3, a4, a5) {\n switch (arguments.length) {\n case 0:\n case 1:\n return 0;\n case 2:\n return o2(a0, a1);\n case 3:\n return o3(a0, a1, a2);\n case 4:\n return o4(a0, a1, a2, a3);\n case 5:\n return o5(a0, a1, a2, a3, a4);\n case 6:\n return o6(a0, a1, a2, a3, a4, a5);\n }\n var s = new Array(arguments.length);\n for (var i = 0; i < arguments.length; ++i) {\n s[i] = arguments[i];\n }\n return slow(s);\n }\n return testInSphere;\n }\n function generateInSphereTest() {\n while (CACHED.length <= NUM_EXPAND) {\n CACHED.push(orientation(CACHED.length));\n }\n module2.exports = proc.apply(void 0, [slowInSphere].concat(CACHED));\n for (var i = 0; i <= NUM_EXPAND; ++i) {\n module2.exports[i] = CACHED[i];\n }\n }\n generateInSphereTest();\n }\n ),\n /***/\n 727: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var determinant = __webpack_require__2(2962);\n var NUM_EXPAND = 6;\n function generateSolver(n) {\n var fn = n === 2 ? solve2d : n === 3 ? solve3d : n === 4 ? solve4d : n === 5 ? solve5d : solve6d;\n if (n < 6) {\n return fn(determinant[n]);\n }\n return fn(determinant);\n }\n function robustLinearSolve0d() {\n return [[0]];\n }\n function robustLinearSolve1d(A2, b) {\n return [[b[0]], [A2[0][0]]];\n }\n function solve2d(det) {\n return function robustLinearSolve2d(A2, b) {\n return [det([[+b[0], +A2[0][1]], [+b[1], +A2[1][1]]]), det([[+A2[0][0], +b[0]], [+A2[1][0], +b[1]]]), det(A2)];\n };\n }\n function solve3d(det) {\n return function robustLinearSolve3d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2]], [+b[1], +A2[1][1], +A2[1][2]], [+b[2], +A2[2][1], +A2[2][2]]]), det([[+A2[0][0], +b[0], +A2[0][2]], [+A2[1][0], +b[1], +A2[1][2]], [+A2[2][0], +b[2], +A2[2][2]]]), det([[+A2[0][0], +A2[0][1], +b[0]], [+A2[1][0], +A2[1][1], +b[1]], [+A2[2][0], +A2[2][1], +b[2]]]), det(A2)];\n };\n }\n function solve4d(det) {\n return function robustLinearSolve4d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2], +A2[0][3]], [+b[1], +A2[1][1], +A2[1][2], +A2[1][3]], [+b[2], +A2[2][1], +A2[2][2], +A2[2][3]], [+b[3], +A2[3][1], +A2[3][2], +A2[3][3]]]), det([[+A2[0][0], +b[0], +A2[0][2], +A2[0][3]], [+A2[1][0], +b[1], +A2[1][2], +A2[1][3]], [+A2[2][0], +b[2], +A2[2][2], +A2[2][3]], [+A2[3][0], +b[3], +A2[3][2], +A2[3][3]]]), det([[+A2[0][0], +A2[0][1], +b[0], +A2[0][3]], [+A2[1][0], +A2[1][1], +b[1], +A2[1][3]], [+A2[2][0], +A2[2][1], +b[2], +A2[2][3]], [+A2[3][0], +A2[3][1], +b[3], +A2[3][3]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +b[0]], [+A2[1][0], +A2[1][1], +A2[1][2], +b[1]], [+A2[2][0], +A2[2][1], +A2[2][2], +b[2]], [+A2[3][0], +A2[3][1], +A2[3][2], +b[3]]]), det(A2)];\n };\n }\n function solve5d(det) {\n return function robustLinearSolve5d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2], +A2[0][3], +A2[0][4]], [+b[1], +A2[1][1], +A2[1][2], +A2[1][3], +A2[1][4]], [+b[2], +A2[2][1], +A2[2][2], +A2[2][3], +A2[2][4]], [+b[3], +A2[3][1], +A2[3][2], +A2[3][3], +A2[3][4]], [+b[4], +A2[4][1], +A2[4][2], +A2[4][3], +A2[4][4]]]), det([[+A2[0][0], +b[0], +A2[0][2], +A2[0][3], +A2[0][4]], [+A2[1][0], +b[1], +A2[1][2], +A2[1][3], +A2[1][4]], [+A2[2][0], +b[2], +A2[2][2], +A2[2][3], +A2[2][4]], [+A2[3][0], +b[3], +A2[3][2], +A2[3][3], +A2[3][4]], [+A2[4][0], +b[4], +A2[4][2], +A2[4][3], +A2[4][4]]]), det([[+A2[0][0], +A2[0][1], +b[0], +A2[0][3], +A2[0][4]], [+A2[1][0], +A2[1][1], +b[1], +A2[1][3], +A2[1][4]], [+A2[2][0], +A2[2][1], +b[2], +A2[2][3], +A2[2][4]], [+A2[3][0], +A2[3][1], +b[3], +A2[3][3], +A2[3][4]], [+A2[4][0], +A2[4][1], +b[4], +A2[4][3], +A2[4][4]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +b[0], +A2[0][4]], [+A2[1][0], +A2[1][1], +A2[1][2], +b[1], +A2[1][4]], [+A2[2][0], +A2[2][1], +A2[2][2], +b[2], +A2[2][4]], [+A2[3][0], +A2[3][1], +A2[3][2], +b[3], +A2[3][4]], [+A2[4][0], +A2[4][1], +A2[4][2], +b[4], +A2[4][4]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +A2[0][3], +b[0]], [+A2[1][0], +A2[1][1], +A2[1][2], +A2[1][3], +b[1]], [+A2[2][0], +A2[2][1], +A2[2][2], +A2[2][3], +b[2]], [+A2[3][0], +A2[3][1], +A2[3][2], +A2[3][3], +b[3]], [+A2[4][0], +A2[4][1], +A2[4][2], +A2[4][3], +b[4]]]), det(A2)];\n };\n }\n function solve6d(det) {\n return function robustLinearSolve6d(A2, b) {\n return [det([[+b[0], +A2[0][1], +A2[0][2], +A2[0][3], +A2[0][4], +A2[0][5]], [+b[1], +A2[1][1], +A2[1][2], +A2[1][3], +A2[1][4], +A2[1][5]], [+b[2], +A2[2][1], +A2[2][2], +A2[2][3], +A2[2][4], +A2[2][5]], [+b[3], +A2[3][1], +A2[3][2], +A2[3][3], +A2[3][4], +A2[3][5]], [+b[4], +A2[4][1], +A2[4][2], +A2[4][3], +A2[4][4], +A2[4][5]], [+b[5], +A2[5][1], +A2[5][2], +A2[5][3], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +b[0], +A2[0][2], +A2[0][3], +A2[0][4], +A2[0][5]], [+A2[1][0], +b[1], +A2[1][2], +A2[1][3], +A2[1][4], +A2[1][5]], [+A2[2][0], +b[2], +A2[2][2], +A2[2][3], +A2[2][4], +A2[2][5]], [+A2[3][0], +b[3], +A2[3][2], +A2[3][3], +A2[3][4], +A2[3][5]], [+A2[4][0], +b[4], +A2[4][2], +A2[4][3], +A2[4][4], +A2[4][5]], [+A2[5][0], +b[5], +A2[5][2], +A2[5][3], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +b[0], +A2[0][3], +A2[0][4], +A2[0][5]], [+A2[1][0], +A2[1][1], +b[1], +A2[1][3], +A2[1][4], +A2[1][5]], [+A2[2][0], +A2[2][1], +b[2], +A2[2][3], +A2[2][4], +A2[2][5]], [+A2[3][0], +A2[3][1], +b[3], +A2[3][3], +A2[3][4], +A2[3][5]], [+A2[4][0], +A2[4][1], +b[4], +A2[4][3], +A2[4][4], +A2[4][5]], [+A2[5][0], +A2[5][1], +b[5], +A2[5][3], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +b[0], +A2[0][4], +A2[0][5]], [+A2[1][0], +A2[1][1], +A2[1][2], +b[1], +A2[1][4], +A2[1][5]], [+A2[2][0], +A2[2][1], +A2[2][2], +b[2], +A2[2][4], +A2[2][5]], [+A2[3][0], +A2[3][1], +A2[3][2], +b[3], +A2[3][4], +A2[3][5]], [+A2[4][0], +A2[4][1], +A2[4][2], +b[4], +A2[4][4], +A2[4][5]], [+A2[5][0], +A2[5][1], +A2[5][2], +b[5], +A2[5][4], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +A2[0][3], +b[0], +A2[0][5]], [+A2[1][0], +A2[1][1], +A2[1][2], +A2[1][3], +b[1], +A2[1][5]], [+A2[2][0], +A2[2][1], +A2[2][2], +A2[2][3], +b[2], +A2[2][5]], [+A2[3][0], +A2[3][1], +A2[3][2], +A2[3][3], +b[3], +A2[3][5]], [+A2[4][0], +A2[4][1], +A2[4][2], +A2[4][3], +b[4], +A2[4][5]], [+A2[5][0], +A2[5][1], +A2[5][2], +A2[5][3], +b[5], +A2[5][5]]]), det([[+A2[0][0], +A2[0][1], +A2[0][2], +A2[0][3], +A2[0][4], +b[0]], [+A2[1][0], +A2[1][1], +A2[1][2], +A2[1][3], +A2[1][4], +b[1]], [+A2[2][0], +A2[2][1], +A2[2][2], +A2[2][3], +A2[2][4], +b[2]], [+A2[3][0], +A2[3][1], +A2[3][2], +A2[3][3], +A2[3][4], +b[3]], [+A2[4][0], +A2[4][1], +A2[4][2], +A2[4][3], +A2[4][4], +b[4]], [+A2[5][0], +A2[5][1], +A2[5][2], +A2[5][3], +A2[5][4], +b[5]]]), det(A2)];\n };\n }\n var CACHE = [\n robustLinearSolve0d,\n robustLinearSolve1d\n ];\n function proc(s0, s1, s2, s3, s4, s5, CACHE2, g) {\n return function dispatchLinearSolve(A2, b) {\n switch (A2.length) {\n case 0:\n return s0(A2, b);\n case 1:\n return s1(A2, b);\n case 2:\n return s2(A2, b);\n case 3:\n return s3(A2, b);\n case 4:\n return s4(A2, b);\n case 5:\n return s5(A2, b);\n }\n var s = CACHE2[A2.length];\n if (!s) s = CACHE2[A2.length] = g(A2.length);\n return s(A2, b);\n };\n }\n function generateDispatch() {\n while (CACHE.length < NUM_EXPAND) {\n CACHE.push(generateSolver(CACHE.length));\n }\n module2.exports = proc.apply(void 0, CACHE.concat([CACHE, generateSolver]));\n for (var i = 0; i < NUM_EXPAND; ++i) {\n module2.exports[i] = CACHE[i];\n }\n }\n generateDispatch();\n }\n ),\n /***/\n 3250: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var robustSum = __webpack_require__2(8210);\n var robustScale = __webpack_require__2(3012);\n var robustSubtract = __webpack_require__2(8545);\n var NUM_EXPAND = 5;\n var EPSILON = 11102230246251565e-32;\n var ERRBOUND3 = (3 + 16 * EPSILON) * EPSILON;\n var ERRBOUND4 = (7 + 56 * EPSILON) * EPSILON;\n function orientation_3(sum, prod, scale, sub) {\n return function orientation3Exact2(m0, m1, m2) {\n var p = sum(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])));\n var n = sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0]));\n var d = sub(p, n);\n return d[d.length - 1];\n };\n }\n function orientation_4(sum, prod, scale, sub) {\n return function orientation4Exact2(m0, m1, m2, m3) {\n var p = sum(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m3[2]))), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m3[2]))));\n var n = sum(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m3[2]))), sum(scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m2[2]))));\n var d = sub(p, n);\n return d[d.length - 1];\n };\n }\n function orientation_5(sum, prod, scale, sub) {\n return function orientation5Exact(m0, m1, m2, m3, m4) {\n var p = sum(sum(sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m2[2]), sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), -m3[2]), scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m4[2]))), m1[3]), sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m3[2]), scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m4[2]))), -m2[3]), scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m4[2]))), m3[3]))), sum(scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m3[2]))), -m4[3]), sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m3[2]), scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m4[2]))), m0[3]), scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m3[2]), scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), m4[2]))), -m1[3])))), sum(sum(scale(sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m4[2]))), m3[3]), sum(scale(sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m3[2]))), -m4[3]), scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m3[2]))), m0[3]))), sum(scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m3[2]))), -m1[3]), sum(scale(sum(scale(sum(prod(m1[1], m3[0]), prod(-m3[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m3[2]))), m2[3]), scale(sum(scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m2[2]))), -m3[3])))));\n var n = sum(sum(sum(scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m2[2]), sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), -m3[2]), scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m4[2]))), m0[3]), scale(sum(scale(sum(prod(m3[1], m4[0]), prod(-m4[1], m3[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m3[2]), scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), m4[2]))), -m2[3])), sum(scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m4[2]))), m3[3]), scale(sum(scale(sum(prod(m2[1], m3[0]), prod(-m3[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m3[0]), prod(-m3[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m3[2]))), -m4[3]))), sum(sum(scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m1[2]), sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), -m2[2]), scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m4[2]))), m0[3]), scale(sum(scale(sum(prod(m2[1], m4[0]), prod(-m4[1], m2[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m2[2]), scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), m4[2]))), -m1[3])), sum(scale(sum(scale(sum(prod(m1[1], m4[0]), prod(-m4[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m4[0]), prod(-m4[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m4[2]))), m2[3]), scale(sum(scale(sum(prod(m1[1], m2[0]), prod(-m2[1], m1[0])), m0[2]), sum(scale(sum(prod(m0[1], m2[0]), prod(-m2[1], m0[0])), -m1[2]), scale(sum(prod(m0[1], m1[0]), prod(-m1[1], m0[0])), m2[2]))), -m4[3]))));\n var d = sub(p, n);\n return d[d.length - 1];\n };\n }\n function orientation(n) {\n var fn = n === 3 ? orientation_3 : n === 4 ? orientation_4 : orientation_5;\n return fn(robustSum, twoProduct, robustScale, robustSubtract);\n }\n var orientation3Exact = orientation(3);\n var orientation4Exact = orientation(4);\n var CACHED = [\n function orientation0() {\n return 0;\n },\n function orientation1() {\n return 0;\n },\n function orientation2(a, b) {\n return b[0] - a[0];\n },\n function orientation3(a, b, c) {\n var l = (a[1] - c[1]) * (b[0] - c[0]);\n var r = (a[0] - c[0]) * (b[1] - c[1]);\n var det = l - r;\n var s;\n if (l > 0) {\n if (r <= 0) {\n return det;\n } else {\n s = l + r;\n }\n } else if (l < 0) {\n if (r >= 0) {\n return det;\n } else {\n s = -(l + r);\n }\n } else {\n return det;\n }\n var tol = ERRBOUND3 * s;\n if (det >= tol || det <= -tol) {\n return det;\n }\n return orientation3Exact(a, b, c);\n },\n function orientation4(a, b, c, d) {\n var adx = a[0] - d[0];\n var bdx = b[0] - d[0];\n var cdx = c[0] - d[0];\n var ady = a[1] - d[1];\n var bdy = b[1] - d[1];\n var cdy = c[1] - d[1];\n var adz = a[2] - d[2];\n var bdz = b[2] - d[2];\n var cdz = c[2] - d[2];\n var bdxcdy = bdx * cdy;\n var cdxbdy = cdx * bdy;\n var cdxady = cdx * ady;\n var adxcdy = adx * cdy;\n var adxbdy = adx * bdy;\n var bdxady = bdx * ady;\n var det = adz * (bdxcdy - cdxbdy) + bdz * (cdxady - adxcdy) + cdz * (adxbdy - bdxady);\n var permanent = (Math.abs(bdxcdy) + Math.abs(cdxbdy)) * Math.abs(adz) + (Math.abs(cdxady) + Math.abs(adxcdy)) * Math.abs(bdz) + (Math.abs(adxbdy) + Math.abs(bdxady)) * Math.abs(cdz);\n var tol = ERRBOUND4 * permanent;\n if (det > tol || -det > tol) {\n return det;\n }\n return orientation4Exact(a, b, c, d);\n }\n ];\n function slowOrient(args) {\n var proc2 = CACHED[args.length];\n if (!proc2) {\n proc2 = CACHED[args.length] = orientation(args.length);\n }\n return proc2.apply(void 0, args);\n }\n function proc(slow, o0, o1, o2, o3, o4, o5) {\n return function getOrientation(a0, a1, a2, a3, a4) {\n switch (arguments.length) {\n case 0:\n case 1:\n return 0;\n case 2:\n return o2(a0, a1);\n case 3:\n return o3(a0, a1, a2);\n case 4:\n return o4(a0, a1, a2, a3);\n case 5:\n return o5(a0, a1, a2, a3, a4);\n }\n var s = new Array(arguments.length);\n for (var i = 0; i < arguments.length; ++i) {\n s[i] = arguments[i];\n }\n return slow(s);\n };\n }\n function generateOrientationProc() {\n while (CACHED.length <= NUM_EXPAND) {\n CACHED.push(orientation(CACHED.length));\n }\n module2.exports = proc.apply(void 0, [slowOrient].concat(CACHED));\n for (var i = 0; i <= NUM_EXPAND; ++i) {\n module2.exports[i] = CACHED[i];\n }\n }\n generateOrientationProc();\n }\n ),\n /***/\n 5382: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var robustSum = __webpack_require__2(8210);\n var robustScale = __webpack_require__2(3012);\n module2.exports = robustProduct;\n function robustProduct(a, b) {\n if (a.length === 1) {\n return robustScale(b, a[0]);\n }\n if (b.length === 1) {\n return robustScale(a, b[0]);\n }\n if (a.length === 0 || b.length === 0) {\n return [0];\n }\n var r = [0];\n if (a.length < b.length) {\n for (var i = 0; i < a.length; ++i) {\n r = robustSum(r, robustScale(b, a[i]));\n }\n } else {\n for (var i = 0; i < b.length; ++i) {\n r = robustSum(r, robustScale(a, b[i]));\n }\n }\n return r;\n }\n }\n ),\n /***/\n 3012: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var twoProduct = __webpack_require__2(5250);\n var twoSum = __webpack_require__2(9362);\n module2.exports = scaleLinearExpansion;\n function scaleLinearExpansion(e, scale) {\n var n = e.length;\n if (n === 1) {\n var ts = twoProduct(e[0], scale);\n if (ts[0]) {\n return ts;\n }\n return [ts[1]];\n }\n var g = new Array(2 * n);\n var q = [0.1, 0.1];\n var t = [0.1, 0.1];\n var count = 0;\n twoProduct(e[0], scale, q);\n if (q[0]) {\n g[count++] = q[0];\n }\n for (var i = 1; i < n; ++i) {\n twoProduct(e[i], scale, t);\n var pq = q[1];\n twoSum(pq, t[0], q);\n if (q[0]) {\n g[count++] = q[0];\n }\n var a = t[1];\n var b = q[1];\n var x = a + b;\n var bv = x - a;\n var y = b - bv;\n q[1] = x;\n if (y) {\n g[count++] = y;\n }\n }\n if (q[1]) {\n g[count++] = q[1];\n }\n if (count === 0) {\n g[count++] = 0;\n }\n g.length = count;\n return g;\n }\n }\n ),\n /***/\n 1125: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = segmentsIntersect;\n var orient = __webpack_require__2(3250)[3];\n function checkCollinear(a0, a1, b0, b1) {\n for (var d = 0; d < 2; ++d) {\n var x0 = a0[d];\n var y0 = a1[d];\n var l0 = Math.min(x0, y0);\n var h0 = Math.max(x0, y0);\n var x1 = b0[d];\n var y1 = b1[d];\n var l1 = Math.min(x1, y1);\n var h1 = Math.max(x1, y1);\n if (h1 < l0 || h0 < l1) {\n return false;\n }\n }\n return true;\n }\n function segmentsIntersect(a0, a1, b0, b1) {\n var x0 = orient(a0, b0, b1);\n var y0 = orient(a1, b0, b1);\n if (x0 > 0 && y0 > 0 || x0 < 0 && y0 < 0) {\n return false;\n }\n var x1 = orient(b0, a0, a1);\n var y1 = orient(b1, a0, a1);\n if (x1 > 0 && y1 > 0 || x1 < 0 && y1 < 0) {\n return false;\n }\n if (x0 === 0 && y0 === 0 && x1 === 0 && y1 === 0) {\n return checkCollinear(a0, a1, b0, b1);\n }\n return true;\n }\n }\n ),\n /***/\n 8545: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = robustSubtract;\n function scalarScalar(a, b) {\n var x = a + b;\n var bv = x - a;\n var av = x - bv;\n var br = b - bv;\n var ar = a - av;\n var y = ar + br;\n if (y) {\n return [y, x];\n }\n return [x];\n }\n function robustSubtract(e, f) {\n var ne = e.length | 0;\n var nf = f.length | 0;\n if (ne === 1 && nf === 1) {\n return scalarScalar(e[0], -f[0]);\n }\n var n = ne + nf;\n var g = new Array(n);\n var count = 0;\n var eptr = 0;\n var fptr = 0;\n var abs = Math.abs;\n var ei = e[eptr];\n var ea = abs(ei);\n var fi = -f[fptr];\n var fa = abs(fi);\n var a, b;\n if (ea < fa) {\n b = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n b = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n fa = abs(fi);\n }\n }\n if (eptr < ne && ea < fa || fptr >= nf) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n fa = abs(fi);\n }\n }\n var x = a + b;\n var bv = x - a;\n var y = b - bv;\n var q0 = y;\n var q1 = x;\n var _x, _bv, _av, _br, _ar;\n while (eptr < ne && fptr < nf) {\n if (ea < fa) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n fa = abs(fi);\n }\n }\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n }\n while (eptr < ne) {\n a = ei;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n }\n }\n while (fptr < nf) {\n a = fi;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n fptr += 1;\n if (fptr < nf) {\n fi = -f[fptr];\n }\n }\n if (q0) {\n g[count++] = q0;\n }\n if (q1) {\n g[count++] = q1;\n }\n if (!count) {\n g[count++] = 0;\n }\n g.length = count;\n return g;\n }\n }\n ),\n /***/\n 8210: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = linearExpansionSum;\n function scalarScalar(a, b) {\n var x = a + b;\n var bv = x - a;\n var av = x - bv;\n var br = b - bv;\n var ar = a - av;\n var y = ar + br;\n if (y) {\n return [y, x];\n }\n return [x];\n }\n function linearExpansionSum(e, f) {\n var ne = e.length | 0;\n var nf = f.length | 0;\n if (ne === 1 && nf === 1) {\n return scalarScalar(e[0], f[0]);\n }\n var n = ne + nf;\n var g = new Array(n);\n var count = 0;\n var eptr = 0;\n var fptr = 0;\n var abs = Math.abs;\n var ei = e[eptr];\n var ea = abs(ei);\n var fi = f[fptr];\n var fa = abs(fi);\n var a, b;\n if (ea < fa) {\n b = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n b = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n fa = abs(fi);\n }\n }\n if (eptr < ne && ea < fa || fptr >= nf) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n fa = abs(fi);\n }\n }\n var x = a + b;\n var bv = x - a;\n var y = b - bv;\n var q0 = y;\n var q1 = x;\n var _x, _bv, _av, _br, _ar;\n while (eptr < ne && fptr < nf) {\n if (ea < fa) {\n a = ei;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n ea = abs(ei);\n }\n } else {\n a = fi;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n fa = abs(fi);\n }\n }\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n }\n while (eptr < ne) {\n a = ei;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n eptr += 1;\n if (eptr < ne) {\n ei = e[eptr];\n }\n }\n while (fptr < nf) {\n a = fi;\n b = q0;\n x = a + b;\n bv = x - a;\n y = b - bv;\n if (y) {\n g[count++] = y;\n }\n _x = q1 + x;\n _bv = _x - q1;\n _av = _x - _bv;\n _br = x - _bv;\n _ar = q1 - _av;\n q0 = _ar + _br;\n q1 = _x;\n fptr += 1;\n if (fptr < nf) {\n fi = f[fptr];\n }\n }\n if (q0) {\n g[count++] = q0;\n }\n if (q1) {\n g[count++] = q1;\n }\n if (!count) {\n g[count++] = 0;\n }\n g.length = count;\n return g;\n }\n }\n ),\n /***/\n 9127: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = boundary;\n var bnd = __webpack_require__2(6204);\n var reduce = __webpack_require__2(5771);\n function boundary(cells) {\n return reduce(bnd(cells));\n }\n }\n ),\n /***/\n 7765: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = extractContour;\n var ndarray = __webpack_require__2(9618);\n var pool = __webpack_require__2(1888);\n var ndsort = __webpack_require__2(446);\n var contourAlgorithm = __webpack_require__2(1570);\n function getDimension(cells) {\n var numCells = cells.length;\n var d = 0;\n for (var i = 0; i < numCells; ++i) {\n d = Math.max(d, cells[i].length) | 0;\n }\n return d - 1;\n }\n function getSigns(values, level) {\n var numVerts = values.length;\n var vertexSigns = pool.mallocUint8(numVerts);\n for (var i = 0; i < numVerts; ++i) {\n vertexSigns[i] = values[i] < level | 0;\n }\n return vertexSigns;\n }\n function getEdges(cells, d) {\n var numCells = cells.length;\n var maxEdges = d * (d + 1) / 2 * numCells | 0;\n var edges = pool.mallocUint32(maxEdges * 2);\n var ePtr = 0;\n for (var i = 0; i < numCells; ++i) {\n var c = cells[i];\n var d = c.length;\n for (var j = 0; j < d; ++j) {\n for (var k = 0; k < j; ++k) {\n var a = c[k];\n var b = c[j];\n edges[ePtr++] = Math.min(a, b) | 0;\n edges[ePtr++] = Math.max(a, b) | 0;\n }\n }\n }\n var nedges = ePtr / 2 | 0;\n ndsort(ndarray(edges, [nedges, 2]));\n var ptr = 2;\n for (var i = 2; i < ePtr; i += 2) {\n if (edges[i - 2] === edges[i] && edges[i - 1] === edges[i + 1]) {\n continue;\n }\n edges[ptr++] = edges[i];\n edges[ptr++] = edges[i + 1];\n }\n return ndarray(edges, [ptr / 2 | 0, 2]);\n }\n function getCrossingWeights(edges, values, signs, level) {\n var edata = edges.data;\n var numEdges = edges.shape[0];\n var weights = pool.mallocDouble(numEdges);\n var ptr = 0;\n for (var i = 0; i < numEdges; ++i) {\n var a = edata[2 * i];\n var b = edata[2 * i + 1];\n if (signs[a] === signs[b]) {\n continue;\n }\n var va = values[a];\n var vb = values[b];\n edata[2 * ptr] = a;\n edata[2 * ptr + 1] = b;\n weights[ptr++] = (vb - level) / (vb - va);\n }\n edges.shape[0] = ptr;\n return ndarray(weights, [ptr]);\n }\n function getCascade(edges, numVerts) {\n var result = pool.mallocInt32(numVerts * 2);\n var numEdges = edges.shape[0];\n var edata = edges.data;\n result[0] = 0;\n var lastV = 0;\n for (var i = 0; i < numEdges; ++i) {\n var a = edata[2 * i];\n if (a !== lastV) {\n result[2 * lastV + 1] = i;\n while (++lastV < a) {\n result[2 * lastV] = i;\n result[2 * lastV + 1] = i;\n }\n result[2 * lastV] = i;\n }\n }\n result[2 * lastV + 1] = numEdges;\n while (++lastV < numVerts) {\n result[2 * lastV] = result[2 * lastV + 1] = numEdges;\n }\n return result;\n }\n function unpackEdges(edges) {\n var ne = edges.shape[0] | 0;\n var edata = edges.data;\n var result = new Array(ne);\n for (var i = 0; i < ne; ++i) {\n result[i] = [edata[2 * i], edata[2 * i + 1]];\n }\n return result;\n }\n function extractContour(cells, values, level, d) {\n level = level || 0;\n if (typeof d === \"undefined\") {\n d = getDimension(cells);\n }\n var numCells = cells.length;\n if (numCells === 0 || d < 1) {\n return {\n cells: [],\n vertexIds: [],\n vertexWeights: []\n };\n }\n var vertexSigns = getSigns(values, +level);\n var edges = getEdges(cells, d);\n var weights = getCrossingWeights(edges, values, vertexSigns, +level);\n var vcascade = getCascade(edges, values.length | 0);\n var faces = contourAlgorithm(d)(cells, edges.data, vcascade, vertexSigns);\n var uedges = unpackEdges(edges);\n var uweights = [].slice.call(weights.data, 0, weights.shape[0]);\n pool.free(vertexSigns);\n pool.free(edges.data);\n pool.free(weights.data);\n pool.free(vcascade);\n return {\n cells: faces,\n vertexIds: uedges,\n vertexWeights: uweights\n };\n }\n }\n ),\n /***/\n 1570: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = getPolygonizer;\n var allFns = [\n function cellPolygonizer_0() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour0d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n }\n return R;\n }\n return getContour0d;\n },\n function cellPolygonizer_1() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour1d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n if (l === 2) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1);\n if (M === 0 || M === 3) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0])]);\n break;\n case 3:\n break;\n }\n }\n }\n return R;\n }\n return getContour1d;\n },\n function cellPolygonizer_2() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour2d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n if (l === 3) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1) + (S[c[2]] << 2);\n if (M === 0 || M === 7) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[2])]);\n break;\n case 3:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[1], c[2])]);\n break;\n case 4:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[0])]);\n break;\n case 5:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[0], c[1])]);\n break;\n case 6:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[2], c[0])]);\n break;\n case 7:\n break;\n }\n } else if (l === 2) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1);\n if (M === 0 || M === 3) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0])]);\n break;\n case 3:\n break;\n }\n }\n }\n return R;\n }\n return getContour2d;\n },\n function cellPolygonizer_3() {\n function B2(C2, E2, i, j) {\n var a = Math.min(i, j) | 0, b = Math.max(i, j) | 0, l = C2[2 * a], h = C2[2 * a + 1];\n while (l < h) {\n var m = l + h >> 1, v = E2[2 * m + 1];\n if (v === b) {\n return m;\n }\n if (b < v) {\n h = m;\n } else {\n l = m + 1;\n }\n }\n return l;\n }\n function getContour3d(F, E2, C2, S) {\n var n = F.length, R = [];\n for (var i = 0; i < n; ++i) {\n var c = F[i], l = c.length;\n if (l === 4) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1) + (S[c[2]] << 2) + (S[c[3]] << 3);\n if (M === 0 || M === 15) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1]), B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[3])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[2]), B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[3])]);\n break;\n case 3:\n R.push([B2(C2, E2, c[1], c[2]), B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[3])], [B2(C2, E2, c[1], c[3]), B2(C2, E2, c[1], c[2]), B2(C2, E2, c[0], c[3])]);\n break;\n case 4:\n R.push([B2(C2, E2, c[2], c[0]), B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[3])]);\n break;\n case 5:\n R.push([B2(C2, E2, c[0], c[1]), B2(C2, E2, c[2], c[1]), B2(C2, E2, c[0], c[3])], [B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[3]), B2(C2, E2, c[0], c[3])]);\n break;\n case 6:\n R.push([B2(C2, E2, c[2], c[0]), B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[3])], [B2(C2, E2, c[2], c[3]), B2(C2, E2, c[2], c[0]), B2(C2, E2, c[1], c[3])]);\n break;\n case 7:\n R.push([B2(C2, E2, c[0], c[3]), B2(C2, E2, c[1], c[3]), B2(C2, E2, c[2], c[3])]);\n break;\n case 8:\n R.push([B2(C2, E2, c[3], c[1]), B2(C2, E2, c[3], c[0]), B2(C2, E2, c[3], c[2])]);\n break;\n case 9:\n R.push([B2(C2, E2, c[3], c[1]), B2(C2, E2, c[0], c[1]), B2(C2, E2, c[0], c[2])], [B2(C2, E2, c[3], c[2]), B2(C2, E2, c[3], c[1]), B2(C2, E2, c[0], c[2])]);\n break;\n case 10:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[3], c[0]), B2(C2, E2, c[1], c[2])], [B2(C2, E2, c[3], c[0]), B2(C2, E2, c[3], c[2]), B2(C2, E2, c[1], c[2])]);\n break;\n case 11:\n R.push([B2(C2, E2, c[1], c[2]), B2(C2, E2, c[0], c[2]), B2(C2, E2, c[3], c[2])]);\n break;\n case 12:\n R.push([B2(C2, E2, c[3], c[0]), B2(C2, E2, c[2], c[0]), B2(C2, E2, c[2], c[1])], [B2(C2, E2, c[3], c[1]), B2(C2, E2, c[3], c[0]), B2(C2, E2, c[2], c[1])]);\n break;\n case 13:\n R.push([B2(C2, E2, c[0], c[1]), B2(C2, E2, c[2], c[1]), B2(C2, E2, c[3], c[1])]);\n break;\n case 14:\n R.push([B2(C2, E2, c[2], c[0]), B2(C2, E2, c[1], c[0]), B2(C2, E2, c[3], c[0])]);\n break;\n case 15:\n break;\n }\n } else if (l === 3) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1) + (S[c[2]] << 2);\n if (M === 0 || M === 7) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[1], c[2])]);\n break;\n case 3:\n R.push([B2(C2, E2, c[0], c[2]), B2(C2, E2, c[1], c[2])]);\n break;\n case 4:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[2], c[0])]);\n break;\n case 5:\n R.push([B2(C2, E2, c[2], c[1]), B2(C2, E2, c[0], c[1])]);\n break;\n case 6:\n R.push([B2(C2, E2, c[1], c[0]), B2(C2, E2, c[2], c[0])]);\n break;\n case 7:\n break;\n }\n } else if (l === 2) {\n var M = (S[c[0]] << 0) + (S[c[1]] << 1);\n if (M === 0 || M === 3) {\n continue;\n }\n switch (M) {\n case 0:\n break;\n case 1:\n R.push([B2(C2, E2, c[0], c[1])]);\n break;\n case 2:\n R.push([B2(C2, E2, c[1], c[0])]);\n break;\n case 3:\n break;\n }\n }\n }\n return R;\n }\n return getContour3d;\n }\n ];\n function getPolygonizer(d) {\n return allFns[d]();\n }\n }\n ),\n /***/\n 6803: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var __webpack_unused_export__;\n \"use restrict\";\n var bits = __webpack_require__2(8828), UnionFind = __webpack_require__2(1755);\n function dimension(cells) {\n var d = 0, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n d = max(d, cells[i].length);\n }\n return d - 1;\n }\n __webpack_unused_export__ = dimension;\n function countVertices(cells) {\n var vc = -1, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, jl = c.length; j < jl; ++j) {\n vc = max(vc, c[j]);\n }\n }\n return vc + 1;\n }\n __webpack_unused_export__ = countVertices;\n function cloneCells(cells) {\n var ncells = new Array(cells.length);\n for (var i = 0, il = cells.length; i < il; ++i) {\n ncells[i] = cells[i].slice(0);\n }\n return ncells;\n }\n __webpack_unused_export__ = cloneCells;\n function compareCells(a, b) {\n var n = a.length, t = a.length - b.length, min = Math.min;\n if (t) {\n return t;\n }\n switch (n) {\n case 0:\n return 0;\n case 1:\n return a[0] - b[0];\n case 2:\n var d = a[0] + a[1] - b[0] - b[1];\n if (d) {\n return d;\n }\n return min(a[0], a[1]) - min(b[0], b[1]);\n case 3:\n var l1 = a[0] + a[1], m1 = b[0] + b[1];\n d = l1 + a[2] - (m1 + b[2]);\n if (d) {\n return d;\n }\n var l0 = min(a[0], a[1]), m0 = min(b[0], b[1]), d = min(l0, a[2]) - min(m0, b[2]);\n if (d) {\n return d;\n }\n return min(l0 + a[2], l1) - min(m0 + b[2], m1);\n //TODO: Maybe optimize n=4 as well?\n default:\n var as = a.slice(0);\n as.sort();\n var bs = b.slice(0);\n bs.sort();\n for (var i = 0; i < n; ++i) {\n t = as[i] - bs[i];\n if (t) {\n return t;\n }\n }\n return 0;\n }\n }\n exports2.Fw = compareCells;\n function compareZipped(a, b) {\n return compareCells(a[0], b[0]);\n }\n function normalize(cells, attr) {\n if (attr) {\n var len = cells.length;\n var zipped = new Array(len);\n for (var i = 0; i < len; ++i) {\n zipped[i] = [cells[i], attr[i]];\n }\n zipped.sort(compareZipped);\n for (var i = 0; i < len; ++i) {\n cells[i] = zipped[i][0];\n attr[i] = zipped[i][1];\n }\n return cells;\n } else {\n cells.sort(compareCells);\n return cells;\n }\n }\n __webpack_unused_export__ = normalize;\n function unique(cells) {\n if (cells.length === 0) {\n return [];\n }\n var ptr = 1, len = cells.length;\n for (var i = 1; i < len; ++i) {\n var a = cells[i];\n if (compareCells(a, cells[i - 1])) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n cells[ptr++] = a;\n }\n }\n cells.length = ptr;\n return cells;\n }\n __webpack_unused_export__ = unique;\n function findCell(cells, c) {\n var lo = 0, hi = cells.length - 1, r = -1;\n while (lo <= hi) {\n var mid = lo + hi >> 1, s = compareCells(cells[mid], c);\n if (s <= 0) {\n if (s === 0) {\n r = mid;\n }\n lo = mid + 1;\n } else if (s > 0) {\n hi = mid - 1;\n }\n }\n return r;\n }\n __webpack_unused_export__ = findCell;\n function incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length);\n for (var i = 0, il = index.length; i < il; ++i) {\n index[i] = [];\n }\n var b = [];\n for (var i = 0, n = to_cells.length; i < n; ++i) {\n var c = to_cells[i];\n var cl = c.length;\n for (var k = 1, kn = 1 << cl; k < kn; ++k) {\n b.length = bits.popCount(k);\n var l = 0;\n for (var j = 0; j < cl; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n var idx = findCell(from_cells, b);\n if (idx < 0) {\n continue;\n }\n while (true) {\n index[idx++].push(i);\n if (idx >= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break;\n }\n }\n }\n }\n return index;\n }\n __webpack_unused_export__ = incidence;\n function dual(cells, vertex_count) {\n if (!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0);\n }\n var res = new Array(vertex_count);\n for (var i = 0; i < vertex_count; ++i) {\n res[i] = [];\n }\n for (var i = 0, len = cells.length; i < len; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n res[c[j]].push(i);\n }\n }\n return res;\n }\n __webpack_unused_export__ = dual;\n function explode(cells) {\n var result = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i], cl = c.length | 0;\n for (var j = 1, jl = 1 << cl; j < jl; ++j) {\n var b = [];\n for (var k = 0; k < cl; ++k) {\n if (j >>> k & 1) {\n b.push(c[k]);\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n __webpack_unused_export__ = explode;\n function skeleton(cells, n) {\n if (n < 0) {\n return [];\n }\n var result = [], k0 = (1 << n + 1) - 1;\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var k = k0; k < 1 << c.length; k = bits.nextCombination(k)) {\n var b = new Array(n + 1), l = 0;\n for (var j = 0; j < c.length; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n __webpack_unused_export__ = skeleton;\n function boundary(cells) {\n var res = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n var b = new Array(c.length - 1);\n for (var k = 0, l = 0; k < cl; ++k) {\n if (k !== j) {\n b[l++] = c[k];\n }\n }\n res.push(b);\n }\n }\n return normalize(res);\n }\n __webpack_unused_export__ = boundary;\n function connectedComponents_dense(cells, vertex_count) {\n var labels = new UnionFind(vertex_count);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(c[j], c[k]);\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(cells[i][0]);\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents_sparse(cells) {\n var vertices = unique(normalize(skeleton(cells, 0))), labels = new UnionFind(vertices.length);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n var vj = findCell(vertices, [c[j]]);\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(vj, findCell(vertices, [c[k]]));\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(findCell(vertices, [cells[i][0]]));\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents(cells, vertex_count) {\n if (vertex_count) {\n return connectedComponents_dense(cells, vertex_count);\n }\n return connectedComponents_sparse(cells);\n }\n __webpack_unused_export__ = connectedComponents;\n }\n ),\n /***/\n 3105: (\n /***/\n function(__unused_webpack_module, exports2) {\n \"use strict\";\n \"use restrict\";\n var INT_BITS = 32;\n exports2.INT_BITS = INT_BITS;\n exports2.INT_MAX = 2147483647;\n exports2.INT_MIN = -1 << INT_BITS - 1;\n exports2.sign = function(v) {\n return (v > 0) - (v < 0);\n };\n exports2.abs = function(v) {\n var mask = v >> INT_BITS - 1;\n return (v ^ mask) - mask;\n };\n exports2.min = function(x, y) {\n return y ^ (x ^ y) & -(x < y);\n };\n exports2.max = function(x, y) {\n return x ^ (x ^ y) & -(x < y);\n };\n exports2.isPow2 = function(v) {\n return !(v & v - 1) && !!v;\n };\n exports2.log2 = function(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n };\n exports2.log10 = function(v) {\n return v >= 1e9 ? 9 : v >= 1e8 ? 8 : v >= 1e7 ? 7 : v >= 1e6 ? 6 : v >= 1e5 ? 5 : v >= 1e4 ? 4 : v >= 1e3 ? 3 : v >= 100 ? 2 : v >= 10 ? 1 : 0;\n };\n exports2.popCount = function(v) {\n v = v - (v >>> 1 & 1431655765);\n v = (v & 858993459) + (v >>> 2 & 858993459);\n return (v + (v >>> 4) & 252645135) * 16843009 >>> 24;\n };\n function countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 65535) c -= 16;\n if (v & 16711935) c -= 8;\n if (v & 252645135) c -= 4;\n if (v & 858993459) c -= 2;\n if (v & 1431655765) c -= 1;\n return c;\n }\n exports2.countTrailingZeros = countTrailingZeros;\n exports2.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n };\n exports2.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v >>> 1);\n };\n exports2.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 15;\n return 27030 >>> v & 1;\n };\n var REVERSE_TABLE = new Array(256);\n (function(tab) {\n for (var i = 0; i < 256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = r << s & 255;\n }\n })(REVERSE_TABLE);\n exports2.reverse = function(v) {\n return REVERSE_TABLE[v & 255] << 24 | REVERSE_TABLE[v >>> 8 & 255] << 16 | REVERSE_TABLE[v >>> 16 & 255] << 8 | REVERSE_TABLE[v >>> 24 & 255];\n };\n exports2.interleave2 = function(x, y) {\n x &= 65535;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y &= 65535;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n };\n exports2.deinterleave2 = function(v, n) {\n v = v >>> n & 1431655765;\n v = (v | v >>> 1) & 858993459;\n v = (v | v >>> 2) & 252645135;\n v = (v | v >>> 4) & 16711935;\n v = (v | v >>> 16) & 65535;\n return v << 16 >> 16;\n };\n exports2.interleave3 = function(x, y, z) {\n x &= 1023;\n x = (x | x << 16) & 4278190335;\n x = (x | x << 8) & 251719695;\n x = (x | x << 4) & 3272356035;\n x = (x | x << 2) & 1227133513;\n y &= 1023;\n y = (y | y << 16) & 4278190335;\n y = (y | y << 8) & 251719695;\n y = (y | y << 4) & 3272356035;\n y = (y | y << 2) & 1227133513;\n x |= y << 1;\n z &= 1023;\n z = (z | z << 16) & 4278190335;\n z = (z | z << 8) & 251719695;\n z = (z | z << 4) & 3272356035;\n z = (z | z << 2) & 1227133513;\n return x | z << 2;\n };\n exports2.deinterleave3 = function(v, n) {\n v = v >>> n & 1227133513;\n v = (v | v >>> 2) & 3272356035;\n v = (v | v >>> 4) & 251719695;\n v = (v | v >>> 8) & 4278190335;\n v = (v | v >>> 16) & 1023;\n return v << 22 >> 22;\n };\n exports2.nextCombination = function(v) {\n var t = v | v - 1;\n return t + 1 | (~t & -~t) - 1 >>> countTrailingZeros(v) + 1;\n };\n }\n ),\n /***/\n 2014: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n \"use restrict\";\n var bits = __webpack_require__2(3105), UnionFind = __webpack_require__2(4623);\n function dimension(cells) {\n var d = 0, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n d = max(d, cells[i].length);\n }\n return d - 1;\n }\n exports2.dimension = dimension;\n function countVertices(cells) {\n var vc = -1, max = Math.max;\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, jl = c.length; j < jl; ++j) {\n vc = max(vc, c[j]);\n }\n }\n return vc + 1;\n }\n exports2.countVertices = countVertices;\n function cloneCells(cells) {\n var ncells = new Array(cells.length);\n for (var i = 0, il = cells.length; i < il; ++i) {\n ncells[i] = cells[i].slice(0);\n }\n return ncells;\n }\n exports2.cloneCells = cloneCells;\n function compareCells(a, b) {\n var n = a.length, t = a.length - b.length, min = Math.min;\n if (t) {\n return t;\n }\n switch (n) {\n case 0:\n return 0;\n case 1:\n return a[0] - b[0];\n case 2:\n var d = a[0] + a[1] - b[0] - b[1];\n if (d) {\n return d;\n }\n return min(a[0], a[1]) - min(b[0], b[1]);\n case 3:\n var l1 = a[0] + a[1], m1 = b[0] + b[1];\n d = l1 + a[2] - (m1 + b[2]);\n if (d) {\n return d;\n }\n var l0 = min(a[0], a[1]), m0 = min(b[0], b[1]), d = min(l0, a[2]) - min(m0, b[2]);\n if (d) {\n return d;\n }\n return min(l0 + a[2], l1) - min(m0 + b[2], m1);\n //TODO: Maybe optimize n=4 as well?\n default:\n var as = a.slice(0);\n as.sort();\n var bs = b.slice(0);\n bs.sort();\n for (var i = 0; i < n; ++i) {\n t = as[i] - bs[i];\n if (t) {\n return t;\n }\n }\n return 0;\n }\n }\n exports2.compareCells = compareCells;\n function compareZipped(a, b) {\n return compareCells(a[0], b[0]);\n }\n function normalize(cells, attr) {\n if (attr) {\n var len = cells.length;\n var zipped = new Array(len);\n for (var i = 0; i < len; ++i) {\n zipped[i] = [cells[i], attr[i]];\n }\n zipped.sort(compareZipped);\n for (var i = 0; i < len; ++i) {\n cells[i] = zipped[i][0];\n attr[i] = zipped[i][1];\n }\n return cells;\n } else {\n cells.sort(compareCells);\n return cells;\n }\n }\n exports2.normalize = normalize;\n function unique(cells) {\n if (cells.length === 0) {\n return [];\n }\n var ptr = 1, len = cells.length;\n for (var i = 1; i < len; ++i) {\n var a = cells[i];\n if (compareCells(a, cells[i - 1])) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n cells[ptr++] = a;\n }\n }\n cells.length = ptr;\n return cells;\n }\n exports2.unique = unique;\n function findCell(cells, c) {\n var lo = 0, hi = cells.length - 1, r = -1;\n while (lo <= hi) {\n var mid = lo + hi >> 1, s = compareCells(cells[mid], c);\n if (s <= 0) {\n if (s === 0) {\n r = mid;\n }\n lo = mid + 1;\n } else if (s > 0) {\n hi = mid - 1;\n }\n }\n return r;\n }\n exports2.findCell = findCell;\n function incidence(from_cells, to_cells) {\n var index = new Array(from_cells.length);\n for (var i = 0, il = index.length; i < il; ++i) {\n index[i] = [];\n }\n var b = [];\n for (var i = 0, n = to_cells.length; i < n; ++i) {\n var c = to_cells[i];\n var cl = c.length;\n for (var k = 1, kn = 1 << cl; k < kn; ++k) {\n b.length = bits.popCount(k);\n var l = 0;\n for (var j = 0; j < cl; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n var idx = findCell(from_cells, b);\n if (idx < 0) {\n continue;\n }\n while (true) {\n index[idx++].push(i);\n if (idx >= from_cells.length || compareCells(from_cells[idx], b) !== 0) {\n break;\n }\n }\n }\n }\n return index;\n }\n exports2.incidence = incidence;\n function dual(cells, vertex_count) {\n if (!vertex_count) {\n return incidence(unique(skeleton(cells, 0)), cells, 0);\n }\n var res = new Array(vertex_count);\n for (var i = 0; i < vertex_count; ++i) {\n res[i] = [];\n }\n for (var i = 0, len = cells.length; i < len; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n res[c[j]].push(i);\n }\n }\n return res;\n }\n exports2.dual = dual;\n function explode(cells) {\n var result = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i], cl = c.length | 0;\n for (var j = 1, jl = 1 << cl; j < jl; ++j) {\n var b = [];\n for (var k = 0; k < cl; ++k) {\n if (j >>> k & 1) {\n b.push(c[k]);\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n exports2.explode = explode;\n function skeleton(cells, n) {\n if (n < 0) {\n return [];\n }\n var result = [], k0 = (1 << n + 1) - 1;\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var k = k0; k < 1 << c.length; k = bits.nextCombination(k)) {\n var b = new Array(n + 1), l = 0;\n for (var j = 0; j < c.length; ++j) {\n if (k & 1 << j) {\n b[l++] = c[j];\n }\n }\n result.push(b);\n }\n }\n return normalize(result);\n }\n exports2.skeleton = skeleton;\n function boundary(cells) {\n var res = [];\n for (var i = 0, il = cells.length; i < il; ++i) {\n var c = cells[i];\n for (var j = 0, cl = c.length; j < cl; ++j) {\n var b = new Array(c.length - 1);\n for (var k = 0, l = 0; k < cl; ++k) {\n if (k !== j) {\n b[l++] = c[k];\n }\n }\n res.push(b);\n }\n }\n return normalize(res);\n }\n exports2.boundary = boundary;\n function connectedComponents_dense(cells, vertex_count) {\n var labels = new UnionFind(vertex_count);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(c[j], c[k]);\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(cells[i][0]);\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents_sparse(cells) {\n var vertices = unique(normalize(skeleton(cells, 0))), labels = new UnionFind(vertices.length);\n for (var i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n var vj = findCell(vertices, [c[j]]);\n for (var k = j + 1; k < c.length; ++k) {\n labels.link(vj, findCell(vertices, [c[k]]));\n }\n }\n }\n var components = [], component_labels = labels.ranks;\n for (var i = 0; i < component_labels.length; ++i) {\n component_labels[i] = -1;\n }\n for (var i = 0; i < cells.length; ++i) {\n var l = labels.find(findCell(vertices, [cells[i][0]]));\n if (component_labels[l] < 0) {\n component_labels[l] = components.length;\n components.push([cells[i].slice(0)]);\n } else {\n components[component_labels[l]].push(cells[i].slice(0));\n }\n }\n return components;\n }\n function connectedComponents(cells, vertex_count) {\n if (vertex_count) {\n return connectedComponents_dense(cells, vertex_count);\n }\n return connectedComponents_sparse(cells);\n }\n exports2.connectedComponents = connectedComponents;\n }\n ),\n /***/\n 4623: (\n /***/\n function(module2) {\n \"use strict\";\n \"use restrict\";\n module2.exports = UnionFind;\n function UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n for (var i = 0; i < count; ++i) {\n this.roots[i] = i;\n this.ranks[i] = 0;\n }\n }\n UnionFind.prototype.length = function() {\n return this.roots.length;\n };\n UnionFind.prototype.makeSet = function() {\n var n = this.roots.length;\n this.roots.push(n);\n this.ranks.push(0);\n return n;\n };\n UnionFind.prototype.find = function(x) {\n var roots = this.roots;\n while (roots[x] !== x) {\n var y = roots[x];\n roots[x] = roots[y];\n x = y;\n }\n return x;\n };\n UnionFind.prototype.link = function(x, y) {\n var xr = this.find(x), yr = this.find(y);\n if (xr === yr) {\n return;\n }\n var ranks = this.ranks, roots = this.roots, xd = ranks[xr], yd = ranks[yr];\n if (xd < yd) {\n roots[xr] = yr;\n } else if (yd < xd) {\n roots[yr] = xr;\n } else {\n roots[yr] = xr;\n ++ranks[xr];\n }\n };\n }\n ),\n /***/\n 5878: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = simplifyPolygon;\n var orient = __webpack_require__2(3250);\n var sc = __webpack_require__2(2014);\n function errorWeight(base, a, b) {\n var area = Math.abs(orient(base, a, b));\n var perim = Math.sqrt(Math.pow(a[0] - b[0], 2) + Math.pow(a[1] - b[1], 2));\n return area / perim;\n }\n function simplifyPolygon(cells, positions, minArea) {\n var n = positions.length;\n var nc = cells.length;\n var inv = new Array(n);\n var outv = new Array(n);\n var weights = new Array(n);\n var dead = new Array(n);\n for (var i = 0; i < n; ++i) {\n inv[i] = outv[i] = -1;\n weights[i] = Infinity;\n dead[i] = false;\n }\n for (var i = 0; i < nc; ++i) {\n var c = cells[i];\n if (c.length !== 2) {\n throw new Error(\"Input must be a graph\");\n }\n var s = c[1];\n var t = c[0];\n if (outv[t] !== -1) {\n outv[t] = -2;\n } else {\n outv[t] = s;\n }\n if (inv[s] !== -1) {\n inv[s] = -2;\n } else {\n inv[s] = t;\n }\n }\n function computeWeight(i2) {\n if (dead[i2]) {\n return Infinity;\n }\n var s2 = inv[i2];\n var t4 = outv[i2];\n if (s2 < 0 || t4 < 0) {\n return Infinity;\n } else {\n return errorWeight(positions[i2], positions[s2], positions[t4]);\n }\n }\n function heapSwap(i2, j) {\n var a = heap[i2];\n var b = heap[j];\n heap[i2] = b;\n heap[j] = a;\n index[a] = j;\n index[b] = i2;\n }\n function heapWeight(i2) {\n return weights[heap[i2]];\n }\n function heapParent(i2) {\n if (i2 & 1) {\n return i2 - 1 >> 1;\n }\n return (i2 >> 1) - 1;\n }\n function heapDown(i2) {\n var w2 = heapWeight(i2);\n while (true) {\n var tw = w2;\n var left = 2 * i2 + 1;\n var right = 2 * (i2 + 1);\n var next = i2;\n if (left < heapCount) {\n var lw = heapWeight(left);\n if (lw < tw) {\n next = left;\n tw = lw;\n }\n }\n if (right < heapCount) {\n var rw = heapWeight(right);\n if (rw < tw) {\n next = right;\n }\n }\n if (next === i2) {\n return i2;\n }\n heapSwap(i2, next);\n i2 = next;\n }\n }\n function heapUp(i2) {\n var w2 = heapWeight(i2);\n while (i2 > 0) {\n var parent = heapParent(i2);\n if (parent >= 0) {\n var pw = heapWeight(parent);\n if (w2 < pw) {\n heapSwap(i2, parent);\n i2 = parent;\n continue;\n }\n }\n return i2;\n }\n }\n function heapPop() {\n if (heapCount > 0) {\n var head = heap[0];\n heapSwap(0, heapCount - 1);\n heapCount -= 1;\n heapDown(0);\n return head;\n }\n return -1;\n }\n function heapUpdate(i2, w2) {\n var a = heap[i2];\n if (weights[a] === w2) {\n return i2;\n }\n weights[a] = -Infinity;\n heapUp(i2);\n heapPop();\n weights[a] = w2;\n heapCount += 1;\n return heapUp(heapCount - 1);\n }\n function kill(i2) {\n if (dead[i2]) {\n return;\n }\n dead[i2] = true;\n var s2 = inv[i2];\n var t4 = outv[i2];\n if (inv[t4] >= 0) {\n inv[t4] = s2;\n }\n if (outv[s2] >= 0) {\n outv[s2] = t4;\n }\n if (index[s2] >= 0) {\n heapUpdate(index[s2], computeWeight(s2));\n }\n if (index[t4] >= 0) {\n heapUpdate(index[t4], computeWeight(t4));\n }\n }\n var heap = [];\n var index = new Array(n);\n for (var i = 0; i < n; ++i) {\n var w = weights[i] = computeWeight(i);\n if (w < Infinity) {\n index[i] = heap.length;\n heap.push(i);\n } else {\n index[i] = -1;\n }\n }\n var heapCount = heap.length;\n for (var i = heapCount >> 1; i >= 0; --i) {\n heapDown(i);\n }\n while (true) {\n var hmin = heapPop();\n if (hmin < 0 || weights[hmin] > minArea) {\n break;\n }\n kill(hmin);\n }\n var npositions = [];\n for (var i = 0; i < n; ++i) {\n if (!dead[i]) {\n index[i] = npositions.length;\n npositions.push(positions[i].slice());\n }\n }\n var nv = npositions.length;\n function tortoiseHare(seq, start) {\n if (seq[start] < 0) {\n return start;\n }\n var t4 = start;\n var h = start;\n do {\n var nh = seq[h];\n if (!dead[h] || nh < 0 || nh === h) {\n break;\n }\n h = nh;\n nh = seq[h];\n if (!dead[h] || nh < 0 || nh === h) {\n break;\n }\n h = nh;\n t4 = seq[t4];\n } while (t4 !== h);\n for (var v = start; v !== h; v = seq[v]) {\n seq[v] = h;\n }\n return h;\n }\n var ncells = [];\n cells.forEach(function(c2) {\n var tin = tortoiseHare(inv, c2[0]);\n var tout = tortoiseHare(outv, c2[1]);\n if (tin >= 0 && tout >= 0 && tin !== tout) {\n var cin = index[tin];\n var cout = index[tout];\n if (cin !== cout) {\n ncells.push([cin, cout]);\n }\n }\n });\n sc.unique(sc.normalize(ncells));\n return {\n positions: npositions,\n edges: ncells\n };\n }\n }\n ),\n /***/\n 1303: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = orderSegments;\n var orient = __webpack_require__2(3250);\n function horizontalOrder(a, b) {\n var bl, br;\n if (b[0][0] < b[1][0]) {\n bl = b[0];\n br = b[1];\n } else if (b[0][0] > b[1][0]) {\n bl = b[1];\n br = b[0];\n } else {\n var alo = Math.min(a[0][1], a[1][1]);\n var ahi = Math.max(a[0][1], a[1][1]);\n var blo = Math.min(b[0][1], b[1][1]);\n var bhi = Math.max(b[0][1], b[1][1]);\n if (ahi < blo) {\n return ahi - blo;\n }\n if (alo > bhi) {\n return alo - bhi;\n }\n return ahi - bhi;\n }\n var al, ar;\n if (a[0][1] < a[1][1]) {\n al = a[0];\n ar = a[1];\n } else {\n al = a[1];\n ar = a[0];\n }\n var d = orient(br, bl, al);\n if (d) {\n return d;\n }\n d = orient(br, bl, ar);\n if (d) {\n return d;\n }\n return ar - br;\n }\n function orderSegments(b, a) {\n var al, ar;\n if (a[0][0] < a[1][0]) {\n al = a[0];\n ar = a[1];\n } else if (a[0][0] > a[1][0]) {\n al = a[1];\n ar = a[0];\n } else {\n return horizontalOrder(a, b);\n }\n var bl, br;\n if (b[0][0] < b[1][0]) {\n bl = b[0];\n br = b[1];\n } else if (b[0][0] > b[1][0]) {\n bl = b[1];\n br = b[0];\n } else {\n return -horizontalOrder(b, a);\n }\n var d1 = orient(al, ar, br);\n var d2 = orient(al, ar, bl);\n if (d1 < 0) {\n if (d2 <= 0) {\n return d1;\n }\n } else if (d1 > 0) {\n if (d2 >= 0) {\n return d1;\n }\n } else if (d2) {\n return d2;\n }\n d1 = orient(br, bl, ar);\n d2 = orient(br, bl, al);\n if (d1 < 0) {\n if (d2 <= 0) {\n return d1;\n }\n } else if (d1 > 0) {\n if (d2 >= 0) {\n return d1;\n }\n } else if (d2) {\n return d2;\n }\n return ar[0] - br[0];\n }\n }\n ),\n /***/\n 4209: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createSlabDecomposition;\n var bounds = __webpack_require__2(2478);\n var createRBTree = __webpack_require__2(3840);\n var orient = __webpack_require__2(3250);\n var orderSegments = __webpack_require__2(1303);\n function SlabDecomposition(slabs, coordinates, horizontal) {\n this.slabs = slabs;\n this.coordinates = coordinates;\n this.horizontal = horizontal;\n }\n var proto = SlabDecomposition.prototype;\n function compareHorizontal(e, y) {\n return e.y - y;\n }\n function searchBucket(root, p) {\n var lastNode = null;\n while (root) {\n var seg = root.key;\n var l, r;\n if (seg[0][0] < seg[1][0]) {\n l = seg[0];\n r = seg[1];\n } else {\n l = seg[1];\n r = seg[0];\n }\n var o = orient(l, r, p);\n if (o < 0) {\n root = root.left;\n } else if (o > 0) {\n if (p[0] !== seg[1][0]) {\n lastNode = root;\n root = root.right;\n } else {\n var val = searchBucket(root.right, p);\n if (val) {\n return val;\n }\n root = root.left;\n }\n } else {\n if (p[0] !== seg[1][0]) {\n return root;\n } else {\n var val = searchBucket(root.right, p);\n if (val) {\n return val;\n }\n root = root.left;\n }\n }\n }\n return lastNode;\n }\n proto.castUp = function(p) {\n var bucket = bounds.le(this.coordinates, p[0]);\n if (bucket < 0) {\n return -1;\n }\n var root = this.slabs[bucket];\n var hitNode = searchBucket(this.slabs[bucket], p);\n var lastHit = -1;\n if (hitNode) {\n lastHit = hitNode.value;\n }\n if (this.coordinates[bucket] === p[0]) {\n var lastSegment = null;\n if (hitNode) {\n lastSegment = hitNode.key;\n }\n if (bucket > 0) {\n var otherHitNode = searchBucket(this.slabs[bucket - 1], p);\n if (otherHitNode) {\n if (lastSegment) {\n if (orderSegments(otherHitNode.key, lastSegment) > 0) {\n lastSegment = otherHitNode.key;\n lastHit = otherHitNode.value;\n }\n } else {\n lastHit = otherHitNode.value;\n lastSegment = otherHitNode.key;\n }\n }\n }\n var horiz = this.horizontal[bucket];\n if (horiz.length > 0) {\n var hbucket = bounds.ge(horiz, p[1], compareHorizontal);\n if (hbucket < horiz.length) {\n var e = horiz[hbucket];\n if (p[1] === e.y) {\n if (e.closed) {\n return e.index;\n } else {\n while (hbucket < horiz.length - 1 && horiz[hbucket + 1].y === p[1]) {\n hbucket = hbucket + 1;\n e = horiz[hbucket];\n if (e.closed) {\n return e.index;\n }\n }\n if (e.y === p[1] && !e.start) {\n hbucket = hbucket + 1;\n if (hbucket >= horiz.length) {\n return lastHit;\n }\n e = horiz[hbucket];\n }\n }\n }\n if (e.start) {\n if (lastSegment) {\n var o = orient(lastSegment[0], lastSegment[1], [p[0], e.y]);\n if (lastSegment[0][0] > lastSegment[1][0]) {\n o = -o;\n }\n if (o > 0) {\n lastHit = e.index;\n }\n } else {\n lastHit = e.index;\n }\n } else if (e.y !== p[1]) {\n lastHit = e.index;\n }\n }\n }\n }\n return lastHit;\n };\n function IntervalSegment(y, index, start, closed) {\n this.y = y;\n this.index = index;\n this.start = start;\n this.closed = closed;\n }\n function Event(x, segment, create, index) {\n this.x = x;\n this.segment = segment;\n this.create = create;\n this.index = index;\n }\n function createSlabDecomposition(segments) {\n var numSegments = segments.length;\n var numEvents = 2 * numSegments;\n var events = new Array(numEvents);\n for (var i = 0; i < numSegments; ++i) {\n var s = segments[i];\n var f = s[0][0] < s[1][0];\n events[2 * i] = new Event(s[0][0], s, f, i);\n events[2 * i + 1] = new Event(s[1][0], s, !f, i);\n }\n events.sort(function(a, b) {\n var d = a.x - b.x;\n if (d) {\n return d;\n }\n d = a.create - b.create;\n if (d) {\n return d;\n }\n return Math.min(a.segment[0][1], a.segment[1][1]) - Math.min(b.segment[0][1], b.segment[1][1]);\n });\n var tree = createRBTree(orderSegments);\n var slabs = [];\n var lines = [];\n var horizontal = [];\n var lastX = -Infinity;\n for (var i = 0; i < numEvents; ) {\n var x = events[i].x;\n var horiz = [];\n while (i < numEvents) {\n var e = events[i];\n if (e.x !== x) {\n break;\n }\n i += 1;\n if (e.segment[0][0] === e.x && e.segment[1][0] === e.x) {\n if (e.create) {\n if (e.segment[0][1] < e.segment[1][1]) {\n horiz.push(new IntervalSegment(\n e.segment[0][1],\n e.index,\n true,\n true\n ));\n horiz.push(new IntervalSegment(\n e.segment[1][1],\n e.index,\n false,\n false\n ));\n } else {\n horiz.push(new IntervalSegment(\n e.segment[1][1],\n e.index,\n true,\n false\n ));\n horiz.push(new IntervalSegment(\n e.segment[0][1],\n e.index,\n false,\n true\n ));\n }\n }\n } else {\n if (e.create) {\n tree = tree.insert(e.segment, e.index);\n } else {\n tree = tree.remove(e.segment);\n }\n }\n }\n slabs.push(tree.root);\n lines.push(x);\n horizontal.push(horiz);\n }\n return new SlabDecomposition(slabs, lines, horizontal);\n }\n }\n ),\n /***/\n 5202: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var robustDot = __webpack_require__2(1944);\n var robustSum = __webpack_require__2(8210);\n module2.exports = splitPolygon;\n module2.exports.positive = positive;\n module2.exports.negative = negative;\n function planeT(p, plane) {\n var r = robustSum(robustDot(p, plane), [plane[plane.length - 1]]);\n return r[r.length - 1];\n }\n function lerpW(a, wa, b, wb) {\n var d = wb - wa;\n var t = -wa / d;\n if (t < 0) {\n t = 0;\n } else if (t > 1) {\n t = 1;\n }\n var ti = 1 - t;\n var n = a.length;\n var r = new Array(n);\n for (var i = 0; i < n; ++i) {\n r[i] = t * a[i] + ti * b[i];\n }\n return r;\n }\n function splitPolygon(points, plane) {\n var pos = [];\n var neg = [];\n var a = planeT(points[points.length - 1], plane);\n for (var s = points[points.length - 1], t = points[0], i = 0; i < points.length; ++i, s = t) {\n t = points[i];\n var b = planeT(t, plane);\n if (a < 0 && b > 0 || a > 0 && b < 0) {\n var p = lerpW(s, b, t, a);\n pos.push(p);\n neg.push(p.slice());\n }\n if (b < 0) {\n neg.push(t.slice());\n } else if (b > 0) {\n pos.push(t.slice());\n } else {\n pos.push(t.slice());\n neg.push(t.slice());\n }\n a = b;\n }\n return { positive: pos, negative: neg };\n }\n function positive(points, plane) {\n var pos = [];\n var a = planeT(points[points.length - 1], plane);\n for (var s = points[points.length - 1], t = points[0], i = 0; i < points.length; ++i, s = t) {\n t = points[i];\n var b = planeT(t, plane);\n if (a < 0 && b > 0 || a > 0 && b < 0) {\n pos.push(lerpW(s, b, t, a));\n }\n if (b >= 0) {\n pos.push(t.slice());\n }\n a = b;\n }\n return pos;\n }\n function negative(points, plane) {\n var neg = [];\n var a = planeT(points[points.length - 1], plane);\n for (var s = points[points.length - 1], t = points[0], i = 0; i < points.length; ++i, s = t) {\n t = points[i];\n var b = planeT(t, plane);\n if (a < 0 && b > 0 || a > 0 && b < 0) {\n neg.push(lerpW(s, b, t, a));\n }\n if (b <= 0) {\n neg.push(t.slice());\n }\n a = b;\n }\n return neg;\n }\n }\n ),\n /***/\n 3387: (\n /***/\n function(module2, exports2, __webpack_require__2) {\n var __WEBPACK_AMD_DEFINE_RESULT__;\n !function() {\n \"use strict\";\n var re = {\n not_string: /[^s]/,\n not_bool: /[^t]/,\n not_type: /[^T]/,\n not_primitive: /[^v]/,\n number: /[diefg]/,\n numeric_arg: /[bcdiefguxX]/,\n json: /[j]/,\n not_json: /[^j]/,\n text: /^[^\\x25]+/,\n modulo: /^\\x25{2}/,\n placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n key: /^([a-z_][a-z_\\d]*)/i,\n key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n index_access: /^\\[(\\d+)\\]/,\n sign: /^[+-]/\n };\n function sprintf(key) {\n return sprintf_format(sprintf_parse(key), arguments);\n }\n function vsprintf(fmt, argv) {\n return sprintf.apply(null, [fmt].concat(argv || []));\n }\n function sprintf_format(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, arg, output = \"\", i, k, ph, pad, pad_character, pad_length, is_positive, sign;\n for (i = 0; i < tree_length; i++) {\n if (typeof parse_tree[i] === \"string\") {\n output += parse_tree[i];\n } else if (typeof parse_tree[i] === \"object\") {\n ph = parse_tree[i];\n if (ph.keys) {\n arg = argv[cursor];\n for (k = 0; k < ph.keys.length; k++) {\n if (arg == void 0) {\n throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k - 1]));\n }\n arg = arg[ph.keys[k]];\n }\n } else if (ph.param_no) {\n arg = argv[ph.param_no];\n } else {\n arg = argv[cursor++];\n }\n if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n arg = arg();\n }\n if (re.numeric_arg.test(ph.type) && (typeof arg !== \"number\" && isNaN(arg))) {\n throw new TypeError(sprintf(\"[sprintf] expecting number but found %T\", arg));\n }\n if (re.number.test(ph.type)) {\n is_positive = arg >= 0;\n }\n switch (ph.type) {\n case \"b\":\n arg = parseInt(arg, 10).toString(2);\n break;\n case \"c\":\n arg = String.fromCharCode(parseInt(arg, 10));\n break;\n case \"d\":\n case \"i\":\n arg = parseInt(arg, 10);\n break;\n case \"j\":\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0);\n break;\n case \"e\":\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential();\n break;\n case \"f\":\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg);\n break;\n case \"g\":\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg);\n break;\n case \"o\":\n arg = (parseInt(arg, 10) >>> 0).toString(8);\n break;\n case \"s\":\n arg = String(arg);\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"t\":\n arg = String(!!arg);\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"T\":\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase();\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"u\":\n arg = parseInt(arg, 10) >>> 0;\n break;\n case \"v\":\n arg = arg.valueOf();\n arg = ph.precision ? arg.substring(0, ph.precision) : arg;\n break;\n case \"x\":\n arg = (parseInt(arg, 10) >>> 0).toString(16);\n break;\n case \"X\":\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase();\n break;\n }\n if (re.json.test(ph.type)) {\n output += arg;\n } else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? \"+\" : \"-\";\n arg = arg.toString().replace(re.sign, \"\");\n } else {\n sign = \"\";\n }\n pad_character = ph.pad_char ? ph.pad_char === \"0\" ? \"0\" : ph.pad_char.charAt(1) : \" \";\n pad_length = ph.width - (sign + arg).length;\n pad = ph.width ? pad_length > 0 ? pad_character.repeat(pad_length) : \"\" : \"\";\n output += ph.align ? sign + arg + pad : pad_character === \"0\" ? sign + pad + arg : pad + sign + arg;\n }\n }\n }\n return output;\n }\n var sprintf_cache = /* @__PURE__ */ Object.create(null);\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt];\n }\n var _fmt = fmt, match, parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n } else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push(\"%\");\n } else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== \"\") {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n } else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n } else {\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\");\n }\n }\n } else {\n throw new SyntaxError(\"[sprintf] failed to parse named argument key\");\n }\n match[2] = field_list;\n } else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");\n }\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n );\n } else {\n throw new SyntaxError(\"[sprintf] unexpected placeholder\");\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return sprintf_cache[fmt] = parse_tree;\n }\n if (true) {\n exports2.sprintf = sprintf;\n exports2.vsprintf = vsprintf;\n }\n if (typeof window !== \"undefined\") {\n window[\"sprintf\"] = sprintf;\n window[\"vsprintf\"] = vsprintf;\n if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n return {\n \"sprintf\": sprintf,\n \"vsprintf\": vsprintf\n };\n }.call(exports2, __webpack_require__2, exports2, module2), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module2.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n }\n }\n }();\n }\n ),\n /***/\n 3711: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = surfaceNets;\n var generateContourExtractor = __webpack_require__2(2640);\n var zeroCrossings = __webpack_require__2(781);\n var allFns = {\n \"2d\": function(genContour, order, dtype) {\n var contour = genContour({\n order,\n scalarArguments: 3,\n getters: dtype === \"generic\" ? [0] : void 0,\n phase: function phaseFunc(p, a, b, c) {\n return p > c | 0;\n },\n vertex: function vertexFunc(d0, d1, v0, v1, v2, v3, p0, p1, p2, p3, a, b, c) {\n var m = (p0 << 0) + (p1 << 1) + (p2 << 2) + (p3 << 3) | 0;\n if (m === 0 || m === 15) {\n return;\n }\n switch (m) {\n case 0:\n a.push([d0 - 0.5, d1 - 0.5]);\n break;\n case 1:\n a.push([d0 - 0.25 - 0.25 * (v1 + v0 - 2 * c) / (v0 - v1), d1 - 0.25 - 0.25 * (v2 + v0 - 2 * c) / (v0 - v2)]);\n break;\n case 2:\n a.push([d0 - 0.75 - 0.25 * (-v1 - v0 + 2 * c) / (v1 - v0), d1 - 0.25 - 0.25 * (v3 + v1 - 2 * c) / (v1 - v3)]);\n break;\n case 3:\n a.push([d0 - 0.5, d1 - 0.5 - 0.5 * (v2 + v0 + v3 + v1 - 4 * c) / (v0 - v2 + v1 - v3)]);\n break;\n case 4:\n a.push([d0 - 0.25 - 0.25 * (v3 + v2 - 2 * c) / (v2 - v3), d1 - 0.75 - 0.25 * (-v2 - v0 + 2 * c) / (v2 - v0)]);\n break;\n case 5:\n a.push([d0 - 0.5 - 0.5 * (v1 + v0 + v3 + v2 - 4 * c) / (v0 - v1 + v2 - v3), d1 - 0.5]);\n break;\n case 6:\n a.push([d0 - 0.5 - 0.25 * (-v1 - v0 + v3 + v2) / (v1 - v0 + v2 - v3), d1 - 0.5 - 0.25 * (-v2 - v0 + v3 + v1) / (v2 - v0 + v1 - v3)]);\n break;\n case 7:\n a.push([d0 - 0.75 - 0.25 * (v3 + v2 - 2 * c) / (v2 - v3), d1 - 0.75 - 0.25 * (v3 + v1 - 2 * c) / (v1 - v3)]);\n break;\n case 8:\n a.push([d0 - 0.75 - 0.25 * (-v3 - v2 + 2 * c) / (v3 - v2), d1 - 0.75 - 0.25 * (-v3 - v1 + 2 * c) / (v3 - v1)]);\n break;\n case 9:\n a.push([d0 - 0.5 - 0.25 * (v1 + v0 + -v3 - v2) / (v0 - v1 + v3 - v2), d1 - 0.5 - 0.25 * (v2 + v0 + -v3 - v1) / (v0 - v2 + v3 - v1)]);\n break;\n case 10:\n a.push([d0 - 0.5 - 0.5 * (-v1 - v0 + -v3 - v2 + 4 * c) / (v1 - v0 + v3 - v2), d1 - 0.5]);\n break;\n case 11:\n a.push([d0 - 0.25 - 0.25 * (-v3 - v2 + 2 * c) / (v3 - v2), d1 - 0.75 - 0.25 * (v2 + v0 - 2 * c) / (v0 - v2)]);\n break;\n case 12:\n a.push([d0 - 0.5, d1 - 0.5 - 0.5 * (-v2 - v0 + -v3 - v1 + 4 * c) / (v2 - v0 + v3 - v1)]);\n break;\n case 13:\n a.push([d0 - 0.75 - 0.25 * (v1 + v0 - 2 * c) / (v0 - v1), d1 - 0.25 - 0.25 * (-v3 - v1 + 2 * c) / (v3 - v1)]);\n break;\n case 14:\n a.push([d0 - 0.25 - 0.25 * (-v1 - v0 + 2 * c) / (v1 - v0), d1 - 0.25 - 0.25 * (-v2 - v0 + 2 * c) / (v2 - v0)]);\n break;\n case 15:\n a.push([d0 - 0.5, d1 - 0.5]);\n break;\n }\n },\n cell: function cellFunc(v0, v1, c0, c1, p0, p1, a, b, c) {\n if (p0) {\n b.push([v0, v1]);\n } else {\n b.push([v1, v0]);\n }\n }\n });\n return function(array, level) {\n var verts = [], cells = [];\n contour(array, verts, cells, level);\n return { positions: verts, cells };\n };\n }\n };\n function buildSurfaceNets(order, dtype) {\n var inKey = order.length + \"d\";\n var fn = allFns[inKey];\n if (fn) return fn(generateContourExtractor, order, dtype);\n }\n function mesh1D(array, level) {\n var zc = zeroCrossings(array, level);\n var n = zc.length;\n var npos = new Array(n);\n var ncel = new Array(n);\n for (var i = 0; i < n; ++i) {\n npos[i] = [zc[i]];\n ncel[i] = [i];\n }\n return {\n positions: npos,\n cells: ncel\n };\n }\n var CACHE = {};\n function surfaceNets(array, level) {\n if (array.dimension <= 0) {\n return { positions: [], cells: [] };\n } else if (array.dimension === 1) {\n return mesh1D(array, level);\n }\n var typesig = array.order.join() + \"-\" + array.dtype;\n var proc = CACHE[typesig];\n var level = +level || 0;\n if (!proc) {\n proc = CACHE[typesig] = buildSurfaceNets(array.order, array.dtype);\n }\n return proc(array, level);\n }\n }\n ),\n /***/\n 665: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n var parseUnit = __webpack_require__2(3202);\n module2.exports = toPX;\n var PIXELS_PER_INCH = 96;\n function getPropertyInPX(element, prop) {\n var parts = parseUnit(getComputedStyle(element).getPropertyValue(prop));\n return parts[0] * toPX(parts[1], element);\n }\n function getSizeBrutal(unit, element) {\n var testDIV = document.createElement(\"div\");\n testDIV.style[\"font-size\"] = \"128\" + unit;\n element.appendChild(testDIV);\n var size = getPropertyInPX(testDIV, \"font-size\") / 128;\n element.removeChild(testDIV);\n return size;\n }\n function toPX(str, element) {\n element = element || document.body;\n str = (str || \"px\").trim().toLowerCase();\n if (element === window || element === document) {\n element = document.body;\n }\n switch (str) {\n case \"%\":\n return element.clientHeight / 100;\n case \"ch\":\n case \"ex\":\n return getSizeBrutal(str, element);\n case \"em\":\n return getPropertyInPX(element, \"font-size\");\n case \"rem\":\n return getPropertyInPX(document.body, \"font-size\");\n case \"vw\":\n return window.innerWidth / 100;\n case \"vh\":\n return window.innerHeight / 100;\n case \"vmin\":\n return Math.min(window.innerWidth, window.innerHeight) / 100;\n case \"vmax\":\n return Math.max(window.innerWidth, window.innerHeight) / 100;\n case \"in\":\n return PIXELS_PER_INCH;\n case \"cm\":\n return PIXELS_PER_INCH / 2.54;\n case \"mm\":\n return PIXELS_PER_INCH / 25.4;\n case \"pt\":\n return PIXELS_PER_INCH / 72;\n case \"pc\":\n return PIXELS_PER_INCH / 6;\n }\n return 1;\n }\n }\n ),\n /***/\n 7261: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createTurntableController;\n var filterVector = __webpack_require__2(9215);\n var invert44 = __webpack_require__2(7608);\n var rotateM = __webpack_require__2(6079);\n var cross = __webpack_require__2(5911);\n var normalize3 = __webpack_require__2(3536);\n var dot3 = __webpack_require__2(244);\n function len3(x, y, z) {\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2) + Math.pow(z, 2));\n }\n function clamp1(x) {\n return Math.min(1, Math.max(-1, x));\n }\n function findOrthoPair(v) {\n var vx = Math.abs(v[0]);\n var vy = Math.abs(v[1]);\n var vz = Math.abs(v[2]);\n var u = [0, 0, 0];\n if (vx > Math.max(vy, vz)) {\n u[2] = 1;\n } else if (vy > Math.max(vx, vz)) {\n u[0] = 1;\n } else {\n u[1] = 1;\n }\n var vv = 0;\n var uv = 0;\n for (var i = 0; i < 3; ++i) {\n vv += v[i] * v[i];\n uv += u[i] * v[i];\n }\n for (var i = 0; i < 3; ++i) {\n u[i] -= uv / vv * v[i];\n }\n normalize3(u, u);\n return u;\n }\n function TurntableController(zoomMin, zoomMax, center, up, right, radius, theta, phi) {\n this.center = filterVector(center);\n this.up = filterVector(up);\n this.right = filterVector(right);\n this.radius = filterVector([radius]);\n this.angle = filterVector([theta, phi]);\n this.angle.bounds = [[-Infinity, -Math.PI / 2], [Infinity, Math.PI / 2]];\n this.setDistanceLimits(zoomMin, zoomMax);\n this.computedCenter = this.center.curve(0);\n this.computedUp = this.up.curve(0);\n this.computedRight = this.right.curve(0);\n this.computedRadius = this.radius.curve(0);\n this.computedAngle = this.angle.curve(0);\n this.computedToward = [0, 0, 0];\n this.computedEye = [0, 0, 0];\n this.computedMatrix = new Array(16);\n for (var i = 0; i < 16; ++i) {\n this.computedMatrix[i] = 0.5;\n }\n this.recalcMatrix(0);\n }\n var proto = TurntableController.prototype;\n proto.setDistanceLimits = function(minDist, maxDist) {\n if (minDist > 0) {\n minDist = Math.log(minDist);\n } else {\n minDist = -Infinity;\n }\n if (maxDist > 0) {\n maxDist = Math.log(maxDist);\n } else {\n maxDist = Infinity;\n }\n maxDist = Math.max(maxDist, minDist);\n this.radius.bounds[0][0] = minDist;\n this.radius.bounds[1][0] = maxDist;\n };\n proto.getDistanceLimits = function(out) {\n var bounds = this.radius.bounds[0];\n if (out) {\n out[0] = Math.exp(bounds[0][0]);\n out[1] = Math.exp(bounds[1][0]);\n return out;\n }\n return [Math.exp(bounds[0][0]), Math.exp(bounds[1][0])];\n };\n proto.recalcMatrix = function(t) {\n this.center.curve(t);\n this.up.curve(t);\n this.right.curve(t);\n this.radius.curve(t);\n this.angle.curve(t);\n var up = this.computedUp;\n var right = this.computedRight;\n var uu = 0;\n var ur = 0;\n for (var i = 0; i < 3; ++i) {\n ur += up[i] * right[i];\n uu += up[i] * up[i];\n }\n var ul = Math.sqrt(uu);\n var rr = 0;\n for (var i = 0; i < 3; ++i) {\n right[i] -= up[i] * ur / uu;\n rr += right[i] * right[i];\n up[i] /= ul;\n }\n var rl = Math.sqrt(rr);\n for (var i = 0; i < 3; ++i) {\n right[i] /= rl;\n }\n var toward = this.computedToward;\n cross(toward, up, right);\n normalize3(toward, toward);\n var radius = Math.exp(this.computedRadius[0]);\n var theta = this.computedAngle[0];\n var phi = this.computedAngle[1];\n var ctheta = Math.cos(theta);\n var stheta = Math.sin(theta);\n var cphi = Math.cos(phi);\n var sphi = Math.sin(phi);\n var center = this.computedCenter;\n var wx = ctheta * cphi;\n var wy = stheta * cphi;\n var wz = sphi;\n var sx = -ctheta * sphi;\n var sy = -stheta * sphi;\n var sz = cphi;\n var eye = this.computedEye;\n var mat = this.computedMatrix;\n for (var i = 0; i < 3; ++i) {\n var x = wx * right[i] + wy * toward[i] + wz * up[i];\n mat[4 * i + 1] = sx * right[i] + sy * toward[i] + sz * up[i];\n mat[4 * i + 2] = x;\n mat[4 * i + 3] = 0;\n }\n var ax = mat[1];\n var ay = mat[5];\n var az = mat[9];\n var bx = mat[2];\n var by = mat[6];\n var bz = mat[10];\n var cx = ay * bz - az * by;\n var cy = az * bx - ax * bz;\n var cz = ax * by - ay * bx;\n var cl = len3(cx, cy, cz);\n cx /= cl;\n cy /= cl;\n cz /= cl;\n mat[0] = cx;\n mat[4] = cy;\n mat[8] = cz;\n for (var i = 0; i < 3; ++i) {\n eye[i] = center[i] + mat[2 + 4 * i] * radius;\n }\n for (var i = 0; i < 3; ++i) {\n var rr = 0;\n for (var j = 0; j < 3; ++j) {\n rr += mat[i + 4 * j] * eye[j];\n }\n mat[12 + i] = -rr;\n }\n mat[15] = 1;\n };\n proto.getMatrix = function(t, result) {\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n if (result) {\n for (var i = 0; i < 16; ++i) {\n result[i] = mat[i];\n }\n return result;\n }\n return mat;\n };\n var zAxis = [0, 0, 0];\n proto.rotate = function(t, dtheta, dphi, droll) {\n this.angle.move(t, dtheta, dphi);\n if (droll) {\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n zAxis[0] = mat[2];\n zAxis[1] = mat[6];\n zAxis[2] = mat[10];\n var up = this.computedUp;\n var right = this.computedRight;\n var toward = this.computedToward;\n for (var i = 0; i < 3; ++i) {\n mat[4 * i] = up[i];\n mat[4 * i + 1] = right[i];\n mat[4 * i + 2] = toward[i];\n }\n rotateM(mat, mat, droll, zAxis);\n for (var i = 0; i < 3; ++i) {\n up[i] = mat[4 * i];\n right[i] = mat[4 * i + 1];\n }\n this.up.set(t, up[0], up[1], up[2]);\n this.right.set(t, right[0], right[1], right[2]);\n }\n };\n proto.pan = function(t, dx, dy, dz) {\n dx = dx || 0;\n dy = dy || 0;\n dz = dz || 0;\n this.recalcMatrix(t);\n var mat = this.computedMatrix;\n var dist = Math.exp(this.computedRadius[0]);\n var ux = mat[1];\n var uy = mat[5];\n var uz = mat[9];\n var ul = len3(ux, uy, uz);\n ux /= ul;\n uy /= ul;\n uz /= ul;\n var rx = mat[0];\n var ry = mat[4];\n var rz = mat[8];\n var ru = rx * ux + ry * uy + rz * uz;\n rx -= ux * ru;\n ry -= uy * ru;\n rz -= uz * ru;\n var rl = len3(rx, ry, rz);\n rx /= rl;\n ry /= rl;\n rz /= rl;\n var vx = rx * dx + ux * dy;\n var vy = ry * dx + uy * dy;\n var vz = rz * dx + uz * dy;\n this.center.move(t, vx, vy, vz);\n var radius = Math.exp(this.computedRadius[0]);\n radius = Math.max(1e-4, radius + dz);\n this.radius.set(t, Math.log(radius));\n };\n proto.translate = function(t, dx, dy, dz) {\n this.center.move(\n t,\n dx || 0,\n dy || 0,\n dz || 0\n );\n };\n proto.setMatrix = function(t, mat, axes, noSnap) {\n var ushift = 1;\n if (typeof axes === \"number\") {\n ushift = axes | 0;\n }\n if (ushift < 0 || ushift > 3) {\n ushift = 1;\n }\n var vshift = (ushift + 2) % 3;\n var fshift = (ushift + 1) % 3;\n if (!mat) {\n this.recalcMatrix(t);\n mat = this.computedMatrix;\n }\n var ux = mat[ushift];\n var uy = mat[ushift + 4];\n var uz = mat[ushift + 8];\n if (!noSnap) {\n var ul = len3(ux, uy, uz);\n ux /= ul;\n uy /= ul;\n uz /= ul;\n } else {\n var ax = Math.abs(ux);\n var ay = Math.abs(uy);\n var az = Math.abs(uz);\n var am = Math.max(ax, ay, az);\n if (ax === am) {\n ux = ux < 0 ? -1 : 1;\n uy = uz = 0;\n } else if (az === am) {\n uz = uz < 0 ? -1 : 1;\n ux = uy = 0;\n } else {\n uy = uy < 0 ? -1 : 1;\n ux = uz = 0;\n }\n }\n var rx = mat[vshift];\n var ry = mat[vshift + 4];\n var rz = mat[vshift + 8];\n var ru = rx * ux + ry * uy + rz * uz;\n rx -= ux * ru;\n ry -= uy * ru;\n rz -= uz * ru;\n var rl = len3(rx, ry, rz);\n rx /= rl;\n ry /= rl;\n rz /= rl;\n var fx = uy * rz - uz * ry;\n var fy = uz * rx - ux * rz;\n var fz = ux * ry - uy * rx;\n var fl = len3(fx, fy, fz);\n fx /= fl;\n fy /= fl;\n fz /= fl;\n this.center.jump(t, ex, ey, ez);\n this.radius.idle(t);\n this.up.jump(t, ux, uy, uz);\n this.right.jump(t, rx, ry, rz);\n var phi, theta;\n if (ushift === 2) {\n var cx = mat[1];\n var cy = mat[5];\n var cz = mat[9];\n var cr = cx * rx + cy * ry + cz * rz;\n var cf = cx * fx + cy * fy + cz * fz;\n if (tu < 0) {\n phi = -Math.PI / 2;\n } else {\n phi = Math.PI / 2;\n }\n theta = Math.atan2(cf, cr);\n } else {\n var tx = mat[2];\n var ty = mat[6];\n var tz = mat[10];\n var tu = tx * ux + ty * uy + tz * uz;\n var tr = tx * rx + ty * ry + tz * rz;\n var tf = tx * fx + ty * fy + tz * fz;\n phi = Math.asin(clamp1(tu));\n theta = Math.atan2(tf, tr);\n }\n this.angle.jump(t, theta, phi);\n this.recalcMatrix(t);\n var dx = mat[2];\n var dy = mat[6];\n var dz = mat[10];\n var imat = this.computedMatrix;\n invert44(imat, mat);\n var w = imat[15];\n var ex = imat[12] / w;\n var ey = imat[13] / w;\n var ez = imat[14] / w;\n var gs = Math.exp(this.computedRadius[0]);\n this.center.jump(t, ex - dx * gs, ey - dy * gs, ez - dz * gs);\n };\n proto.lastT = function() {\n return Math.max(\n this.center.lastT(),\n this.up.lastT(),\n this.right.lastT(),\n this.radius.lastT(),\n this.angle.lastT()\n );\n };\n proto.idle = function(t) {\n this.center.idle(t);\n this.up.idle(t);\n this.right.idle(t);\n this.radius.idle(t);\n this.angle.idle(t);\n };\n proto.flush = function(t) {\n this.center.flush(t);\n this.up.flush(t);\n this.right.flush(t);\n this.radius.flush(t);\n this.angle.flush(t);\n };\n proto.setDistance = function(t, d) {\n if (d > 0) {\n this.radius.set(t, Math.log(d));\n }\n };\n proto.lookAt = function(t, eye, center, up) {\n this.recalcMatrix(t);\n eye = eye || this.computedEye;\n center = center || this.computedCenter;\n up = up || this.computedUp;\n var ux = up[0];\n var uy = up[1];\n var uz = up[2];\n var ul = len3(ux, uy, uz);\n if (ul < 1e-6) {\n return;\n }\n ux /= ul;\n uy /= ul;\n uz /= ul;\n var tx = eye[0] - center[0];\n var ty = eye[1] - center[1];\n var tz = eye[2] - center[2];\n var tl = len3(tx, ty, tz);\n if (tl < 1e-6) {\n return;\n }\n tx /= tl;\n ty /= tl;\n tz /= tl;\n var right = this.computedRight;\n var rx = right[0];\n var ry = right[1];\n var rz = right[2];\n var ru = ux * rx + uy * ry + uz * rz;\n rx -= ru * ux;\n ry -= ru * uy;\n rz -= ru * uz;\n var rl = len3(rx, ry, rz);\n if (rl < 0.01) {\n rx = uy * tz - uz * ty;\n ry = uz * tx - ux * tz;\n rz = ux * ty - uy * tx;\n rl = len3(rx, ry, rz);\n if (rl < 1e-6) {\n return;\n }\n }\n rx /= rl;\n ry /= rl;\n rz /= rl;\n this.up.set(t, ux, uy, uz);\n this.right.set(t, rx, ry, rz);\n this.center.set(t, center[0], center[1], center[2]);\n this.radius.set(t, Math.log(tl));\n var fx = uy * rz - uz * ry;\n var fy = uz * rx - ux * rz;\n var fz = ux * ry - uy * rx;\n var fl = len3(fx, fy, fz);\n fx /= fl;\n fy /= fl;\n fz /= fl;\n var tu = ux * tx + uy * ty + uz * tz;\n var tr = rx * tx + ry * ty + rz * tz;\n var tf = fx * tx + fy * ty + fz * tz;\n var phi = Math.asin(clamp1(tu));\n var theta = Math.atan2(tf, tr);\n var angleState = this.angle._state;\n var lastTheta = angleState[angleState.length - 1];\n var lastPhi = angleState[angleState.length - 2];\n lastTheta = lastTheta % (2 * Math.PI);\n var dp = Math.abs(lastTheta + 2 * Math.PI - theta);\n var d0 = Math.abs(lastTheta - theta);\n var dn = Math.abs(lastTheta - 2 * Math.PI - theta);\n if (dp < d0) {\n lastTheta += 2 * Math.PI;\n }\n if (dn < d0) {\n lastTheta -= 2 * Math.PI;\n }\n this.angle.jump(this.angle.lastT(), lastTheta, lastPhi);\n this.angle.set(t, theta, phi);\n };\n function createTurntableController(options) {\n options = options || {};\n var center = options.center || [0, 0, 0];\n var up = options.up || [0, 1, 0];\n var right = options.right || findOrthoPair(up);\n var radius = options.radius || 1;\n var theta = options.theta || 0;\n var phi = options.phi || 0;\n center = [].slice.call(center, 0, 3);\n up = [].slice.call(up, 0, 3);\n normalize3(up, up);\n right = [].slice.call(right, 0, 3);\n normalize3(right, right);\n if (\"eye\" in options) {\n var eye = options.eye;\n var toward = [\n eye[0] - center[0],\n eye[1] - center[1],\n eye[2] - center[2]\n ];\n cross(right, toward, up);\n if (len3(right[0], right[1], right[2]) < 1e-6) {\n right = findOrthoPair(up);\n } else {\n normalize3(right, right);\n }\n radius = len3(toward[0], toward[1], toward[2]);\n var ut = dot3(up, toward) / radius;\n var rt = dot3(right, toward) / radius;\n phi = Math.acos(ut);\n theta = Math.acos(rt);\n }\n radius = Math.log(radius);\n return new TurntableController(\n options.zoomMin,\n options.zoomMax,\n center,\n up,\n right,\n radius,\n theta,\n phi\n );\n }\n }\n ),\n /***/\n 5250: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = twoProduct;\n var SPLITTER = +(Math.pow(2, 27) + 1);\n function twoProduct(a, b, result) {\n var x = a * b;\n var c = SPLITTER * a;\n var abig = c - a;\n var ahi = c - abig;\n var alo = a - ahi;\n var d = SPLITTER * b;\n var bbig = d - b;\n var bhi = d - bbig;\n var blo = b - bhi;\n var err1 = x - ahi * bhi;\n var err2 = err1 - alo * bhi;\n var err3 = err2 - ahi * blo;\n var y = alo * blo - err3;\n if (result) {\n result[0] = y;\n result[1] = x;\n return result;\n }\n return [y, x];\n }\n }\n ),\n /***/\n 9362: (\n /***/\n function(module2) {\n \"use strict\";\n module2.exports = fastTwoSum;\n function fastTwoSum(a, b, result) {\n var x = a + b;\n var bv = x - a;\n var av = x - bv;\n var br = b - bv;\n var ar = a - av;\n if (result) {\n result[0] = ar + br;\n result[1] = x;\n return result;\n }\n return [ar + br, x];\n }\n }\n ),\n /***/\n 1888: (\n /***/\n function(__unused_webpack_module, exports2, __webpack_require__2) {\n \"use strict\";\n var bits = __webpack_require__2(8828);\n var dup = __webpack_require__2(1338);\n var Buffer2 = __webpack_require__2(4793).hp;\n if (!__webpack_require__2.g.__TYPEDARRAY_POOL) {\n __webpack_require__2.g.__TYPEDARRAY_POOL = {\n UINT8: dup([32, 0]),\n UINT16: dup([32, 0]),\n UINT32: dup([32, 0]),\n BIGUINT64: dup([32, 0]),\n INT8: dup([32, 0]),\n INT16: dup([32, 0]),\n INT32: dup([32, 0]),\n BIGINT64: dup([32, 0]),\n FLOAT: dup([32, 0]),\n DOUBLE: dup([32, 0]),\n DATA: dup([32, 0]),\n UINT8C: dup([32, 0]),\n BUFFER: dup([32, 0])\n };\n }\n var hasUint8C = typeof Uint8ClampedArray !== \"undefined\";\n var hasBigUint64 = typeof BigUint64Array !== \"undefined\";\n var hasBigInt64 = typeof BigInt64Array !== \"undefined\";\n var POOL = __webpack_require__2.g.__TYPEDARRAY_POOL;\n if (!POOL.UINT8C) {\n POOL.UINT8C = dup([32, 0]);\n }\n if (!POOL.BIGUINT64) {\n POOL.BIGUINT64 = dup([32, 0]);\n }\n if (!POOL.BIGINT64) {\n POOL.BIGINT64 = dup([32, 0]);\n }\n if (!POOL.BUFFER) {\n POOL.BUFFER = dup([32, 0]);\n }\n var DATA = POOL.DATA, BUFFER = POOL.BUFFER;\n exports2.free = function free(array) {\n if (Buffer2.isBuffer(array)) {\n BUFFER[bits.log2(array.length)].push(array);\n } else {\n if (Object.prototype.toString.call(array) !== \"[object ArrayBuffer]\") {\n array = array.buffer;\n }\n if (!array) {\n return;\n }\n var n = array.length || array.byteLength;\n var log_n = bits.log2(n) | 0;\n DATA[log_n].push(array);\n }\n };\n function freeArrayBuffer(buffer) {\n if (!buffer) {\n return;\n }\n var n = buffer.length || buffer.byteLength;\n var log_n = bits.log2(n);\n DATA[log_n].push(buffer);\n }\n function freeTypedArray(array) {\n freeArrayBuffer(array.buffer);\n }\n exports2.freeUint8 = exports2.freeUint16 = exports2.freeUint32 = exports2.freeBigUint64 = exports2.freeInt8 = exports2.freeInt16 = exports2.freeInt32 = exports2.freeBigInt64 = exports2.freeFloat32 = exports2.freeFloat = exports2.freeFloat64 = exports2.freeDouble = exports2.freeUint8Clamped = exports2.freeDataView = freeTypedArray;\n exports2.freeArrayBuffer = freeArrayBuffer;\n exports2.freeBuffer = function freeBuffer(array) {\n BUFFER[bits.log2(array.length)].push(array);\n };\n exports2.malloc = function malloc(n, dtype) {\n if (dtype === void 0 || dtype === \"arraybuffer\") {\n return mallocArrayBuffer(n);\n } else {\n switch (dtype) {\n case \"uint8\":\n return mallocUint8(n);\n case \"uint16\":\n return mallocUint16(n);\n case \"uint32\":\n return mallocUint32(n);\n case \"int8\":\n return mallocInt8(n);\n case \"int16\":\n return mallocInt16(n);\n case \"int32\":\n return mallocInt32(n);\n case \"float\":\n case \"float32\":\n return mallocFloat(n);\n case \"double\":\n case \"float64\":\n return mallocDouble(n);\n case \"uint8_clamped\":\n return mallocUint8Clamped(n);\n case \"bigint64\":\n return mallocBigInt64(n);\n case \"biguint64\":\n return mallocBigUint64(n);\n case \"buffer\":\n return mallocBuffer(n);\n case \"data\":\n case \"dataview\":\n return mallocDataView(n);\n default:\n return null;\n }\n }\n return null;\n };\n function mallocArrayBuffer(n) {\n var n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var d = DATA[log_n];\n if (d.length > 0) {\n return d.pop();\n }\n return new ArrayBuffer(n);\n }\n exports2.mallocArrayBuffer = mallocArrayBuffer;\n function mallocUint8(n) {\n return new Uint8Array(mallocArrayBuffer(n), 0, n);\n }\n exports2.mallocUint8 = mallocUint8;\n function mallocUint16(n) {\n return new Uint16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports2.mallocUint16 = mallocUint16;\n function mallocUint32(n) {\n return new Uint32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports2.mallocUint32 = mallocUint32;\n function mallocInt8(n) {\n return new Int8Array(mallocArrayBuffer(n), 0, n);\n }\n exports2.mallocInt8 = mallocInt8;\n function mallocInt16(n) {\n return new Int16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports2.mallocInt16 = mallocInt16;\n function mallocInt32(n) {\n return new Int32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports2.mallocInt32 = mallocInt32;\n function mallocFloat(n) {\n return new Float32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports2.mallocFloat32 = exports2.mallocFloat = mallocFloat;\n function mallocDouble(n) {\n return new Float64Array(mallocArrayBuffer(8 * n), 0, n);\n }\n exports2.mallocFloat64 = exports2.mallocDouble = mallocDouble;\n function mallocUint8Clamped(n) {\n if (hasUint8C) {\n return new Uint8ClampedArray(mallocArrayBuffer(n), 0, n);\n } else {\n return mallocUint8(n);\n }\n }\n exports2.mallocUint8Clamped = mallocUint8Clamped;\n function mallocBigUint64(n) {\n if (hasBigUint64) {\n return new BigUint64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports2.mallocBigUint64 = mallocBigUint64;\n function mallocBigInt64(n) {\n if (hasBigInt64) {\n return new BigInt64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports2.mallocBigInt64 = mallocBigInt64;\n function mallocDataView(n) {\n return new DataView(mallocArrayBuffer(n), 0, n);\n }\n exports2.mallocDataView = mallocDataView;\n function mallocBuffer(n) {\n n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var cache = BUFFER[log_n];\n if (cache.length > 0) {\n return cache.pop();\n }\n return new Buffer2(n);\n }\n exports2.mallocBuffer = mallocBuffer;\n exports2.clearCache = function clearCache() {\n for (var i = 0; i < 32; ++i) {\n POOL.UINT8[i].length = 0;\n POOL.UINT16[i].length = 0;\n POOL.UINT32[i].length = 0;\n POOL.INT8[i].length = 0;\n POOL.INT16[i].length = 0;\n POOL.INT32[i].length = 0;\n POOL.FLOAT[i].length = 0;\n POOL.DOUBLE[i].length = 0;\n POOL.BIGUINT64[i].length = 0;\n POOL.BIGINT64[i].length = 0;\n POOL.UINT8C[i].length = 0;\n DATA[i].length = 0;\n BUFFER[i].length = 0;\n }\n };\n }\n ),\n /***/\n 1755: (\n /***/\n function(module2) {\n \"use strict\";\n \"use restrict\";\n module2.exports = UnionFind;\n function UnionFind(count) {\n this.roots = new Array(count);\n this.ranks = new Array(count);\n for (var i = 0; i < count; ++i) {\n this.roots[i] = i;\n this.ranks[i] = 0;\n }\n }\n var proto = UnionFind.prototype;\n Object.defineProperty(proto, \"length\", {\n \"get\": function() {\n return this.roots.length;\n }\n });\n proto.makeSet = function() {\n var n = this.roots.length;\n this.roots.push(n);\n this.ranks.push(0);\n return n;\n };\n proto.find = function(x) {\n var x0 = x;\n var roots = this.roots;\n while (roots[x] !== x) {\n x = roots[x];\n }\n while (roots[x0] !== x) {\n var y = roots[x0];\n roots[x0] = x;\n x0 = y;\n }\n return x;\n };\n proto.link = function(x, y) {\n var xr = this.find(x), yr = this.find(y);\n if (xr === yr) {\n return;\n }\n var ranks = this.ranks, roots = this.roots, xd = ranks[xr], yd = ranks[yr];\n if (xd < yd) {\n roots[xr] = yr;\n } else if (yd < xd) {\n roots[yr] = xr;\n } else {\n roots[yr] = xr;\n ++ranks[xr];\n }\n };\n }\n ),\n /***/\n 1682: (\n /***/\n function(module2) {\n \"use strict\";\n function unique_pred(list, compare) {\n var ptr = 1, len = list.length, a = list[0], b = list[0];\n for (var i = 1; i < len; ++i) {\n b = a;\n a = list[i];\n if (compare(a, b)) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n list[ptr++] = a;\n }\n }\n list.length = ptr;\n return list;\n }\n function unique_eq(list) {\n var ptr = 1, len = list.length, a = list[0], b = list[0];\n for (var i = 1; i < len; ++i, b = a) {\n b = a;\n a = list[i];\n if (a !== b) {\n if (i === ptr) {\n ptr++;\n continue;\n }\n list[ptr++] = a;\n }\n }\n list.length = ptr;\n return list;\n }\n function unique(list, compare, sorted) {\n if (list.length === 0) {\n return list;\n }\n if (compare) {\n if (!sorted) {\n list.sort(compare);\n }\n return unique_pred(list, compare);\n }\n if (!sorted) {\n list.sort();\n }\n return unique_eq(list);\n }\n module2.exports = unique;\n }\n ),\n /***/\n 4359: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = createText;\n var vectorizeText = __webpack_require__2(7718);\n var defaultCanvas = null;\n var defaultContext = null;\n if (typeof document !== \"undefined\") {\n defaultCanvas = document.createElement(\"canvas\");\n defaultCanvas.width = 8192;\n defaultCanvas.height = 1024;\n defaultContext = defaultCanvas.getContext(\"2d\");\n }\n function createText(str, options) {\n if (typeof options !== \"object\" || options === null) {\n options = {};\n }\n return vectorizeText(\n str,\n options.canvas || defaultCanvas,\n options.context || defaultContext,\n options\n );\n }\n }\n ),\n /***/\n 7718: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n module2.exports = vectorizeText;\n module2.exports.processPixels = processPixels;\n var surfaceNets = __webpack_require__2(3711);\n var ndarray = __webpack_require__2(9618);\n var simplify = __webpack_require__2(5878);\n var cleanPSLG = __webpack_require__2(332);\n var cdt2d = __webpack_require__2(2538);\n var toPolygonCrappy = __webpack_require__2(2095);\n var TAG_bold = \"b\";\n var CHR_bold = \"b|\";\n var TAG_italic = \"i\";\n var CHR_italic = \"i|\";\n var TAG_super = \"sup\";\n var CHR_super0 = \"+\";\n var CHR_super = \"+1\";\n var TAG_sub = \"sub\";\n var CHR_sub0 = \"-\";\n var CHR_sub = \"-1\";\n function parseTag(tag, TAG_CHR, str, map) {\n var opnTag = \"<\" + tag + \">\";\n var clsTag = \"\";\n var nOPN = opnTag.length;\n var nCLS = clsTag.length;\n var isRecursive = TAG_CHR[0] === CHR_super0 || TAG_CHR[0] === CHR_sub0;\n var a = 0;\n var b = -nCLS;\n while (a > -1) {\n a = str.indexOf(opnTag, a);\n if (a === -1) break;\n b = str.indexOf(clsTag, a + nOPN);\n if (b === -1) break;\n if (b <= a) break;\n for (var i = a; i < b + nCLS; ++i) {\n if (i < a + nOPN || i >= b) {\n map[i] = null;\n str = str.substr(0, i) + \" \" + str.substr(i + 1);\n } else {\n if (map[i] !== null) {\n var pos = map[i].indexOf(TAG_CHR[0]);\n if (pos === -1) {\n map[i] += TAG_CHR;\n } else {\n if (isRecursive) {\n map[i] = map[i].substr(0, pos + 1) + (1 + parseInt(map[i][pos + 1])) + map[i].substr(pos + 2);\n }\n }\n }\n }\n }\n var start = a + nOPN;\n var remainingStr = str.substr(start, b - start);\n var c = remainingStr.indexOf(opnTag);\n if (c !== -1) a = c;\n else a = b + nCLS;\n }\n return map;\n }\n function transformPositions(positions, options, size) {\n var align = options.textAlign || \"start\";\n var baseline = options.textBaseline || \"alphabetic\";\n var lo = [1 << 30, 1 << 30];\n var hi = [0, 0];\n var n = positions.length;\n for (var i = 0; i < n; ++i) {\n var p = positions[i];\n for (var j = 0; j < 2; ++j) {\n lo[j] = Math.min(lo[j], p[j]) | 0;\n hi[j] = Math.max(hi[j], p[j]) | 0;\n }\n }\n var xShift = 0;\n switch (align) {\n case \"center\":\n xShift = -0.5 * (lo[0] + hi[0]);\n break;\n case \"right\":\n case \"end\":\n xShift = -hi[0];\n break;\n case \"left\":\n case \"start\":\n xShift = -lo[0];\n break;\n default:\n throw new Error(\"vectorize-text: Unrecognized textAlign: '\" + align + \"'\");\n }\n var yShift = 0;\n switch (baseline) {\n case \"hanging\":\n case \"top\":\n yShift = -lo[1];\n break;\n case \"middle\":\n yShift = -0.5 * (lo[1] + hi[1]);\n break;\n case \"alphabetic\":\n case \"ideographic\":\n yShift = -3 * size;\n break;\n case \"bottom\":\n yShift = -hi[1];\n break;\n default:\n throw new Error(\"vectorize-text: Unrecoginized textBaseline: '\" + baseline + \"'\");\n }\n var scale = 1 / size;\n if (\"lineHeight\" in options) {\n scale *= +options.lineHeight;\n } else if (\"width\" in options) {\n scale = options.width / (hi[0] - lo[0]);\n } else if (\"height\" in options) {\n scale = options.height / (hi[1] - lo[1]);\n }\n return positions.map(function(p2) {\n return [scale * (p2[0] + xShift), scale * (p2[1] + yShift)];\n });\n }\n function getPixels(canvas, context, rawString, fontSize, lineSpacing, styletags) {\n rawString = rawString.replace(/\\n/g, \"\");\n if (styletags.breaklines === true) {\n rawString = rawString.replace(/\\/g, \"\\n\");\n } else {\n rawString = rawString.replace(/\\/g, \" \");\n }\n var activeStyle = \"\";\n var map = [];\n for (j = 0; j < rawString.length; ++j) {\n map[j] = activeStyle;\n }\n if (styletags.bolds === true) map = parseTag(TAG_bold, CHR_bold, rawString, map);\n if (styletags.italics === true) map = parseTag(TAG_italic, CHR_italic, rawString, map);\n if (styletags.superscripts === true) map = parseTag(TAG_super, CHR_super, rawString, map);\n if (styletags.subscripts === true) map = parseTag(TAG_sub, CHR_sub, rawString, map);\n var allStyles = [];\n var plainText = \"\";\n for (j = 0; j < rawString.length; ++j) {\n if (map[j] !== null) {\n plainText += rawString[j];\n allStyles.push(map[j]);\n }\n }\n var allTexts = plainText.split(\"\\n\");\n var numberOfLines = allTexts.length;\n var lineHeight = Math.round(lineSpacing * fontSize);\n var offsetX = fontSize;\n var offsetY = fontSize * 2;\n var maxWidth = 0;\n var minHeight = numberOfLines * lineHeight + offsetY;\n if (canvas.height < minHeight) {\n canvas.height = minHeight;\n }\n context.fillStyle = \"#000\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.fillStyle = \"#fff\";\n var i, j, xPos, yPos, zPos;\n var nDone = 0;\n var buffer = \"\";\n function writeBuffer() {\n if (buffer !== \"\") {\n var delta = context.measureText(buffer).width;\n context.fillText(buffer, offsetX + xPos, offsetY + yPos);\n xPos += delta;\n }\n }\n function getTextFontSize() {\n return \"\" + Math.round(zPos) + \"px \";\n }\n function changeStyle(oldStyle, newStyle) {\n var ctxFont = \"\" + context.font;\n if (styletags.subscripts === true) {\n var oldIndex_Sub = oldStyle.indexOf(CHR_sub0);\n var newIndex_Sub = newStyle.indexOf(CHR_sub0);\n var oldSub = oldIndex_Sub > -1 ? parseInt(oldStyle[1 + oldIndex_Sub]) : 0;\n var newSub = newIndex_Sub > -1 ? parseInt(newStyle[1 + newIndex_Sub]) : 0;\n if (oldSub !== newSub) {\n ctxFont = ctxFont.replace(getTextFontSize(), \"?px \");\n zPos *= Math.pow(0.75, newSub - oldSub);\n ctxFont = ctxFont.replace(\"?px \", getTextFontSize());\n }\n yPos += 0.25 * lineHeight * (newSub - oldSub);\n }\n if (styletags.superscripts === true) {\n var oldIndex_Super = oldStyle.indexOf(CHR_super0);\n var newIndex_Super = newStyle.indexOf(CHR_super0);\n var oldSuper = oldIndex_Super > -1 ? parseInt(oldStyle[1 + oldIndex_Super]) : 0;\n var newSuper = newIndex_Super > -1 ? parseInt(newStyle[1 + newIndex_Super]) : 0;\n if (oldSuper !== newSuper) {\n ctxFont = ctxFont.replace(getTextFontSize(), \"?px \");\n zPos *= Math.pow(0.75, newSuper - oldSuper);\n ctxFont = ctxFont.replace(\"?px \", getTextFontSize());\n }\n yPos -= 0.25 * lineHeight * (newSuper - oldSuper);\n }\n if (styletags.bolds === true) {\n var wasBold = oldStyle.indexOf(CHR_bold) > -1;\n var is_Bold = newStyle.indexOf(CHR_bold) > -1;\n if (!wasBold && is_Bold) {\n if (wasItalic) {\n ctxFont = ctxFont.replace(\"italic \", \"italic bold \");\n } else {\n ctxFont = \"bold \" + ctxFont;\n }\n }\n if (wasBold && !is_Bold) {\n ctxFont = ctxFont.replace(\"bold \", \"\");\n }\n }\n if (styletags.italics === true) {\n var wasItalic = oldStyle.indexOf(CHR_italic) > -1;\n var is_Italic = newStyle.indexOf(CHR_italic) > -1;\n if (!wasItalic && is_Italic) {\n ctxFont = \"italic \" + ctxFont;\n }\n if (wasItalic && !is_Italic) {\n ctxFont = ctxFont.replace(\"italic \", \"\");\n }\n }\n context.font = ctxFont;\n }\n for (i = 0; i < numberOfLines; ++i) {\n var txt = allTexts[i] + \"\\n\";\n xPos = 0;\n yPos = i * lineHeight;\n zPos = fontSize;\n buffer = \"\";\n for (j = 0; j < txt.length; ++j) {\n var style = j + nDone < allStyles.length ? allStyles[j + nDone] : allStyles[allStyles.length - 1];\n if (activeStyle === style) {\n buffer += txt[j];\n } else {\n writeBuffer();\n buffer = txt[j];\n if (style !== void 0) {\n changeStyle(activeStyle, style);\n activeStyle = style;\n }\n }\n }\n writeBuffer();\n nDone += txt.length;\n var width = Math.round(xPos + 2 * offsetX) | 0;\n if (maxWidth < width) maxWidth = width;\n }\n var xCut = maxWidth;\n var yCut = offsetY + lineHeight * numberOfLines;\n var pixels = ndarray(context.getImageData(0, 0, xCut, yCut).data, [yCut, xCut, 4]);\n return pixels.pick(-1, -1, 0).transpose(1, 0);\n }\n function getContour(pixels, doSimplify) {\n var contour = surfaceNets(pixels, 128);\n if (doSimplify) {\n return simplify(contour.cells, contour.positions, 0.25);\n }\n return {\n edges: contour.cells,\n positions: contour.positions\n };\n }\n function processPixelsImpl(pixels, options, size, simplify2) {\n var contour = getContour(pixels, simplify2);\n var positions = transformPositions(contour.positions, options, size);\n var edges = contour.edges;\n var flip = \"ccw\" === options.orientation;\n cleanPSLG(positions, edges);\n if (options.polygons || options.polygon || options.polyline) {\n var result = toPolygonCrappy(edges, positions);\n var nresult = new Array(result.length);\n for (var i = 0; i < result.length; ++i) {\n var loops = result[i];\n var nloops = new Array(loops.length);\n for (var j = 0; j < loops.length; ++j) {\n var loop = loops[j];\n var nloop = new Array(loop.length);\n for (var k = 0; k < loop.length; ++k) {\n nloop[k] = positions[loop[k]].slice();\n }\n if (flip) {\n nloop.reverse();\n }\n nloops[j] = nloop;\n }\n nresult[i] = nloops;\n }\n return nresult;\n } else if (options.triangles || options.triangulate || options.triangle) {\n return {\n cells: cdt2d(positions, edges, {\n delaunay: false,\n exterior: false,\n interior: true\n }),\n positions\n };\n } else {\n return {\n edges,\n positions\n };\n }\n }\n function processPixels(pixels, options, size) {\n try {\n return processPixelsImpl(pixels, options, size, true);\n } catch (e) {\n }\n try {\n return processPixelsImpl(pixels, options, size, false);\n } catch (e) {\n }\n if (options.polygons || options.polyline || options.polygon) {\n return [];\n }\n if (options.triangles || options.triangulate || options.triangle) {\n return {\n cells: [],\n positions: []\n };\n }\n return {\n edges: [],\n positions: []\n };\n }\n function vectorizeText(str, canvas, context, options) {\n var size = 64;\n var lineSpacing = 1.25;\n var styletags = {\n breaklines: false,\n bolds: false,\n italics: false,\n subscripts: false,\n superscripts: false\n };\n if (options) {\n if (options.size && options.size > 0) size = options.size;\n if (options.lineSpacing && options.lineSpacing > 0) lineSpacing = options.lineSpacing;\n if (options.styletags && options.styletags.breaklines) styletags.breaklines = options.styletags.breaklines ? true : false;\n if (options.styletags && options.styletags.bolds) styletags.bolds = options.styletags.bolds ? true : false;\n if (options.styletags && options.styletags.italics) styletags.italics = options.styletags.italics ? true : false;\n if (options.styletags && options.styletags.subscripts) styletags.subscripts = options.styletags.subscripts ? true : false;\n if (options.styletags && options.styletags.superscripts) styletags.superscripts = options.styletags.superscripts ? true : false;\n }\n context.font = [\n options.fontStyle,\n options.fontVariant,\n options.fontWeight,\n size + \"px\",\n options.font\n ].filter(function(d) {\n return d;\n }).join(\" \");\n context.textAlign = \"start\";\n context.textBaseline = \"alphabetic\";\n context.direction = \"ltr\";\n var pixels = getPixels(canvas, context, str, size, lineSpacing, styletags);\n return processPixels(pixels, options, size);\n }\n }\n ),\n /***/\n 1538: (\n /***/\n function(module2) {\n (function WeakMapModule() {\n \"use strict\";\n if (typeof ses !== \"undefined\" && ses.ok && !ses.ok()) {\n return;\n }\n function weakMapPermitHostObjects(map) {\n if (map.permitHostObjects___) {\n map.permitHostObjects___(weakMapPermitHostObjects);\n }\n }\n if (typeof ses !== \"undefined\") {\n ses.weakMapPermitHostObjects = weakMapPermitHostObjects;\n }\n var doubleWeakMapCheckSilentFailure = false;\n if (typeof WeakMap === \"function\") {\n var HostWeakMap = WeakMap;\n if (typeof navigator !== \"undefined\" && /Firefox/.test(navigator.userAgent)) {\n } else {\n var testMap = new HostWeakMap();\n var testObject = Object.freeze({});\n testMap.set(testObject, 1);\n if (testMap.get(testObject) !== 1) {\n doubleWeakMapCheckSilentFailure = true;\n } else {\n module2.exports = WeakMap;\n return;\n }\n }\n }\n var hop = Object.prototype.hasOwnProperty;\n var gopn = Object.getOwnPropertyNames;\n var defProp = Object.defineProperty;\n var isExtensible = Object.isExtensible;\n var HIDDEN_NAME_PREFIX = \"weakmap:\";\n var HIDDEN_NAME = HIDDEN_NAME_PREFIX + \"ident:\" + Math.random() + \"___\";\n if (typeof crypto !== \"undefined\" && typeof crypto.getRandomValues === \"function\" && typeof ArrayBuffer === \"function\" && typeof Uint8Array === \"function\") {\n var ab = new ArrayBuffer(25);\n var u8s = new Uint8Array(ab);\n crypto.getRandomValues(u8s);\n HIDDEN_NAME = HIDDEN_NAME_PREFIX + \"rand:\" + Array.prototype.map.call(u8s, function(u8) {\n return (u8 % 36).toString(36);\n }).join(\"\") + \"___\";\n }\n function isNotHiddenName(name2) {\n return !(name2.substr(0, HIDDEN_NAME_PREFIX.length) == HIDDEN_NAME_PREFIX && name2.substr(name2.length - 3) === \"___\");\n }\n defProp(Object, \"getOwnPropertyNames\", {\n value: function fakeGetOwnPropertyNames(obj) {\n return gopn(obj).filter(isNotHiddenName);\n }\n });\n if (\"getPropertyNames\" in Object) {\n var originalGetPropertyNames = Object.getPropertyNames;\n defProp(Object, \"getPropertyNames\", {\n value: function fakeGetPropertyNames(obj) {\n return originalGetPropertyNames(obj).filter(isNotHiddenName);\n }\n });\n }\n function getHiddenRecord(key) {\n if (key !== Object(key)) {\n throw new TypeError(\"Not an object: \" + key);\n }\n var hiddenRecord = key[HIDDEN_NAME];\n if (hiddenRecord && hiddenRecord.key === key) {\n return hiddenRecord;\n }\n if (!isExtensible(key)) {\n return void 0;\n }\n hiddenRecord = { key };\n try {\n defProp(key, HIDDEN_NAME, {\n value: hiddenRecord,\n writable: false,\n enumerable: false,\n configurable: false\n });\n return hiddenRecord;\n } catch (error) {\n return void 0;\n }\n }\n (function() {\n var oldFreeze = Object.freeze;\n defProp(Object, \"freeze\", {\n value: function identifyingFreeze(obj) {\n getHiddenRecord(obj);\n return oldFreeze(obj);\n }\n });\n var oldSeal = Object.seal;\n defProp(Object, \"seal\", {\n value: function identifyingSeal(obj) {\n getHiddenRecord(obj);\n return oldSeal(obj);\n }\n });\n var oldPreventExtensions = Object.preventExtensions;\n defProp(Object, \"preventExtensions\", {\n value: function identifyingPreventExtensions(obj) {\n getHiddenRecord(obj);\n return oldPreventExtensions(obj);\n }\n });\n })();\n function constFunc(func) {\n func.prototype = null;\n return Object.freeze(func);\n }\n var calledAsFunctionWarningDone = false;\n function calledAsFunctionWarning() {\n if (!calledAsFunctionWarningDone && typeof console !== \"undefined\") {\n calledAsFunctionWarningDone = true;\n console.warn(\"WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future.\");\n }\n }\n var nextId = 0;\n var OurWeakMap = function() {\n if (!(this instanceof OurWeakMap)) {\n calledAsFunctionWarning();\n }\n var keys = [];\n var values = [];\n var id = nextId++;\n function get___(key, opt_default) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord ? hiddenRecord[id] : opt_default;\n } else {\n index = keys.indexOf(key);\n return index >= 0 ? values[index] : opt_default;\n }\n }\n function has___(key) {\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n return id in hiddenRecord;\n } else {\n return keys.indexOf(key) >= 0;\n }\n }\n function set___(key, value) {\n var index;\n var hiddenRecord = getHiddenRecord(key);\n if (hiddenRecord) {\n hiddenRecord[id] = value;\n } else {\n index = keys.indexOf(key);\n if (index >= 0) {\n values[index] = value;\n } else {\n index = keys.length;\n values[index] = value;\n keys[index] = key;\n }\n }\n return this;\n }\n function delete___(key) {\n var hiddenRecord = getHiddenRecord(key);\n var index, lastIndex;\n if (hiddenRecord) {\n return id in hiddenRecord && delete hiddenRecord[id];\n } else {\n index = keys.indexOf(key);\n if (index < 0) {\n return false;\n }\n lastIndex = keys.length - 1;\n keys[index] = void 0;\n values[index] = values[lastIndex];\n keys[index] = keys[lastIndex];\n keys.length = lastIndex;\n values.length = lastIndex;\n return true;\n }\n }\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(get___) },\n has___: { value: constFunc(has___) },\n set___: { value: constFunc(set___) },\n delete___: { value: constFunc(delete___) }\n });\n };\n OurWeakMap.prototype = Object.create(Object.prototype, {\n get: {\n /**\n * Return the value most recently associated with key, or\n * opt_default if none.\n */\n value: function get(key, opt_default) {\n return this.get___(key, opt_default);\n },\n writable: true,\n configurable: true\n },\n has: {\n /**\n * Is there a value associated with key in this WeakMap?\n */\n value: function has(key) {\n return this.has___(key);\n },\n writable: true,\n configurable: true\n },\n set: {\n /**\n * Associate value with key in this WeakMap, overwriting any\n * previous association if present.\n */\n value: function set(key, value) {\n return this.set___(key, value);\n },\n writable: true,\n configurable: true\n },\n \"delete\": {\n /**\n * Remove any association for key in this WeakMap, returning\n * whether there was one.\n *\n *

Note that the boolean return here does not work like the\n * {@code delete} operator. The {@code delete} operator returns\n * whether the deletion succeeds at bringing about a state in\n * which the deleted property is absent. The {@code delete}\n * operator therefore returns true if the property was already\n * absent, whereas this {@code delete} method returns false if\n * the association was already absent.\n */\n value: function remove(key) {\n return this.delete___(key);\n },\n writable: true,\n configurable: true\n }\n });\n if (typeof HostWeakMap === \"function\") {\n (function() {\n if (doubleWeakMapCheckSilentFailure && typeof Proxy !== \"undefined\") {\n Proxy = void 0;\n }\n function DoubleWeakMap() {\n if (!(this instanceof OurWeakMap)) {\n calledAsFunctionWarning();\n }\n var hmap = new HostWeakMap();\n var omap = void 0;\n var enableSwitching = false;\n function dget(key, opt_default) {\n if (omap) {\n return hmap.has(key) ? hmap.get(key) : omap.get___(key, opt_default);\n } else {\n return hmap.get(key, opt_default);\n }\n }\n function dhas(key) {\n return hmap.has(key) || (omap ? omap.has___(key) : false);\n }\n var dset;\n if (doubleWeakMapCheckSilentFailure) {\n dset = function(key, value) {\n hmap.set(key, value);\n if (!hmap.has(key)) {\n if (!omap) {\n omap = new OurWeakMap();\n }\n omap.set(key, value);\n }\n return this;\n };\n } else {\n dset = function(key, value) {\n if (enableSwitching) {\n try {\n hmap.set(key, value);\n } catch (e) {\n if (!omap) {\n omap = new OurWeakMap();\n }\n omap.set___(key, value);\n }\n } else {\n hmap.set(key, value);\n }\n return this;\n };\n }\n function ddelete(key) {\n var result = !!hmap[\"delete\"](key);\n if (omap) {\n return omap.delete___(key) || result;\n }\n return result;\n }\n return Object.create(OurWeakMap.prototype, {\n get___: { value: constFunc(dget) },\n has___: { value: constFunc(dhas) },\n set___: { value: constFunc(dset) },\n delete___: { value: constFunc(ddelete) },\n permitHostObjects___: { value: constFunc(function(token) {\n if (token === weakMapPermitHostObjects) {\n enableSwitching = true;\n } else {\n throw new Error(\"bogus call to permitHostObjects___\");\n }\n }) }\n });\n }\n DoubleWeakMap.prototype = OurWeakMap.prototype;\n module2.exports = DoubleWeakMap;\n Object.defineProperty(WeakMap.prototype, \"constructor\", {\n value: WeakMap,\n enumerable: false,\n // as default .constructor is\n configurable: true,\n writable: true\n });\n })();\n } else {\n if (typeof Proxy !== \"undefined\") {\n Proxy = void 0;\n }\n module2.exports = OurWeakMap;\n }\n })();\n }\n ),\n /***/\n 236: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var hiddenStore = __webpack_require__2(8284);\n module2.exports = createStore;\n function createStore() {\n var key = {};\n return function(obj) {\n if ((typeof obj !== \"object\" || obj === null) && typeof obj !== \"function\") {\n throw new Error(\"Weakmap-shim: Key must be object\");\n }\n var store = obj.valueOf(key);\n return store && store.identity === key ? store : hiddenStore(obj, key);\n };\n }\n }\n ),\n /***/\n 8284: (\n /***/\n function(module2) {\n module2.exports = hiddenStore;\n function hiddenStore(obj, key) {\n var store = { identity: key };\n var valueOf = obj.valueOf;\n Object.defineProperty(obj, \"valueOf\", {\n value: function(value) {\n return value !== key ? valueOf.apply(this, arguments) : store;\n },\n writable: true\n });\n return store;\n }\n }\n ),\n /***/\n 606: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n var createStore = __webpack_require__2(236);\n module2.exports = weakMap;\n function weakMap() {\n var privates = createStore();\n return {\n \"get\": function(key, fallback) {\n var store = privates(key);\n return store.hasOwnProperty(\"value\") ? store.value : fallback;\n },\n \"set\": function(key, value) {\n privates(key).value = value;\n return this;\n },\n \"has\": function(key) {\n return \"value\" in privates(key);\n },\n \"delete\": function(key) {\n return delete privates(key).value;\n }\n };\n }\n }\n ),\n /***/\n 3349: (\n /***/\n function(module2) {\n \"use strict\";\n function CWiseOp() {\n return function(SS, a0, t02, p0, Y0, Y1) {\n var s0 = SS[0], t0p0 = t02[0], index = [0], q0 = t0p0;\n p0 |= 0;\n var i0 = 0, d0s0 = t0p0;\n for (i0 = 0; i0 < s0; ++i0) {\n {\n var da = a0[p0] - Y1;\n var db = a0[p0 + q0] - Y1;\n if (da >= 0 !== db >= 0) {\n Y0.push(index[0] + 0.5 + 0.5 * (da + db) / (da - db));\n }\n }\n p0 += d0s0;\n ++index[0];\n }\n };\n }\n function generateCWiseOp() {\n return CWiseOp();\n }\n var compile = generateCWiseOp;\n function thunk(compile2) {\n var CACHED = {};\n return function zeroCrossings_cwise_thunk(array0, scalar2, scalar3) {\n var t02 = array0.dtype, r0 = array0.order, type = [t02, r0.join()].join(), proc = CACHED[type];\n if (!proc) {\n CACHED[type] = proc = compile2([t02, r0]);\n }\n return proc(array0.shape.slice(0), array0.data, array0.stride, array0.offset | 0, scalar2, scalar3);\n };\n }\n function createThunk(proc) {\n return thunk(compile.bind(void 0, proc));\n }\n function compileCwise(user_args) {\n return createThunk({\n funcName: user_args.funcName\n });\n }\n module2.exports = compileCwise({\n funcName: \"zeroCrossings\"\n });\n }\n ),\n /***/\n 781: (\n /***/\n function(module2, __unused_webpack_exports, __webpack_require__2) {\n \"use strict\";\n module2.exports = findZeroCrossings;\n var core = __webpack_require__2(3349);\n function findZeroCrossings(array, level) {\n var cross = [];\n level = +level || 0;\n core(array.hi(array.shape[0] - 1), cross, level);\n return cross;\n }\n }\n ),\n /***/\n 7790: (\n /***/\n function() {\n }\n )\n /******/\n };\n var __webpack_module_cache__ = {};\n function __webpack_require__(moduleId) {\n var cachedModule = __webpack_module_cache__[moduleId];\n if (cachedModule !== void 0) {\n return cachedModule.exports;\n }\n var module2 = __webpack_module_cache__[moduleId] = {\n /******/\n id: moduleId,\n /******/\n loaded: false,\n /******/\n exports: {}\n /******/\n };\n __webpack_modules__[moduleId].call(module2.exports, module2, module2.exports, __webpack_require__);\n module2.loaded = true;\n return module2.exports;\n }\n !function() {\n __webpack_require__.g = function() {\n if (typeof globalThis === \"object\") return globalThis;\n try {\n return this || new Function(\"return this\")();\n } catch (e) {\n if (typeof window === \"object\") return window;\n }\n }();\n }();\n !function() {\n __webpack_require__.nmd = function(module2) {\n module2.paths = [];\n if (!module2.children) module2.children = [];\n return module2;\n };\n }();\n var __webpack_exports__ = __webpack_require__(1964);\n module.exports = __webpack_exports__;\n })();\n }\n });\n\n // node_modules/color-name/index.js\n var require_color_name = __commonJS({\n \"node_modules/color-name/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n \"aliceblue\": [240, 248, 255],\n \"antiquewhite\": [250, 235, 215],\n \"aqua\": [0, 255, 255],\n \"aquamarine\": [127, 255, 212],\n \"azure\": [240, 255, 255],\n \"beige\": [245, 245, 220],\n \"bisque\": [255, 228, 196],\n \"black\": [0, 0, 0],\n \"blanchedalmond\": [255, 235, 205],\n \"blue\": [0, 0, 255],\n \"blueviolet\": [138, 43, 226],\n \"brown\": [165, 42, 42],\n \"burlywood\": [222, 184, 135],\n \"cadetblue\": [95, 158, 160],\n \"chartreuse\": [127, 255, 0],\n \"chocolate\": [210, 105, 30],\n \"coral\": [255, 127, 80],\n \"cornflowerblue\": [100, 149, 237],\n \"cornsilk\": [255, 248, 220],\n \"crimson\": [220, 20, 60],\n \"cyan\": [0, 255, 255],\n \"darkblue\": [0, 0, 139],\n \"darkcyan\": [0, 139, 139],\n \"darkgoldenrod\": [184, 134, 11],\n \"darkgray\": [169, 169, 169],\n \"darkgreen\": [0, 100, 0],\n \"darkgrey\": [169, 169, 169],\n \"darkkhaki\": [189, 183, 107],\n \"darkmagenta\": [139, 0, 139],\n \"darkolivegreen\": [85, 107, 47],\n \"darkorange\": [255, 140, 0],\n \"darkorchid\": [153, 50, 204],\n \"darkred\": [139, 0, 0],\n \"darksalmon\": [233, 150, 122],\n \"darkseagreen\": [143, 188, 143],\n \"darkslateblue\": [72, 61, 139],\n \"darkslategray\": [47, 79, 79],\n \"darkslategrey\": [47, 79, 79],\n \"darkturquoise\": [0, 206, 209],\n \"darkviolet\": [148, 0, 211],\n \"deeppink\": [255, 20, 147],\n \"deepskyblue\": [0, 191, 255],\n \"dimgray\": [105, 105, 105],\n \"dimgrey\": [105, 105, 105],\n \"dodgerblue\": [30, 144, 255],\n \"firebrick\": [178, 34, 34],\n \"floralwhite\": [255, 250, 240],\n \"forestgreen\": [34, 139, 34],\n \"fuchsia\": [255, 0, 255],\n \"gainsboro\": [220, 220, 220],\n \"ghostwhite\": [248, 248, 255],\n \"gold\": [255, 215, 0],\n \"goldenrod\": [218, 165, 32],\n \"gray\": [128, 128, 128],\n \"green\": [0, 128, 0],\n \"greenyellow\": [173, 255, 47],\n \"grey\": [128, 128, 128],\n \"honeydew\": [240, 255, 240],\n \"hotpink\": [255, 105, 180],\n \"indianred\": [205, 92, 92],\n \"indigo\": [75, 0, 130],\n \"ivory\": [255, 255, 240],\n \"khaki\": [240, 230, 140],\n \"lavender\": [230, 230, 250],\n \"lavenderblush\": [255, 240, 245],\n \"lawngreen\": [124, 252, 0],\n \"lemonchiffon\": [255, 250, 205],\n \"lightblue\": [173, 216, 230],\n \"lightcoral\": [240, 128, 128],\n \"lightcyan\": [224, 255, 255],\n \"lightgoldenrodyellow\": [250, 250, 210],\n \"lightgray\": [211, 211, 211],\n \"lightgreen\": [144, 238, 144],\n \"lightgrey\": [211, 211, 211],\n \"lightpink\": [255, 182, 193],\n \"lightsalmon\": [255, 160, 122],\n \"lightseagreen\": [32, 178, 170],\n \"lightskyblue\": [135, 206, 250],\n \"lightslategray\": [119, 136, 153],\n \"lightslategrey\": [119, 136, 153],\n \"lightsteelblue\": [176, 196, 222],\n \"lightyellow\": [255, 255, 224],\n \"lime\": [0, 255, 0],\n \"limegreen\": [50, 205, 50],\n \"linen\": [250, 240, 230],\n \"magenta\": [255, 0, 255],\n \"maroon\": [128, 0, 0],\n \"mediumaquamarine\": [102, 205, 170],\n \"mediumblue\": [0, 0, 205],\n \"mediumorchid\": [186, 85, 211],\n \"mediumpurple\": [147, 112, 219],\n \"mediumseagreen\": [60, 179, 113],\n \"mediumslateblue\": [123, 104, 238],\n \"mediumspringgreen\": [0, 250, 154],\n \"mediumturquoise\": [72, 209, 204],\n \"mediumvioletred\": [199, 21, 133],\n \"midnightblue\": [25, 25, 112],\n \"mintcream\": [245, 255, 250],\n \"mistyrose\": [255, 228, 225],\n \"moccasin\": [255, 228, 181],\n \"navajowhite\": [255, 222, 173],\n \"navy\": [0, 0, 128],\n \"oldlace\": [253, 245, 230],\n \"olive\": [128, 128, 0],\n \"olivedrab\": [107, 142, 35],\n \"orange\": [255, 165, 0],\n \"orangered\": [255, 69, 0],\n \"orchid\": [218, 112, 214],\n \"palegoldenrod\": [238, 232, 170],\n \"palegreen\": [152, 251, 152],\n \"paleturquoise\": [175, 238, 238],\n \"palevioletred\": [219, 112, 147],\n \"papayawhip\": [255, 239, 213],\n \"peachpuff\": [255, 218, 185],\n \"peru\": [205, 133, 63],\n \"pink\": [255, 192, 203],\n \"plum\": [221, 160, 221],\n \"powderblue\": [176, 224, 230],\n \"purple\": [128, 0, 128],\n \"rebeccapurple\": [102, 51, 153],\n \"red\": [255, 0, 0],\n \"rosybrown\": [188, 143, 143],\n \"royalblue\": [65, 105, 225],\n \"saddlebrown\": [139, 69, 19],\n \"salmon\": [250, 128, 114],\n \"sandybrown\": [244, 164, 96],\n \"seagreen\": [46, 139, 87],\n \"seashell\": [255, 245, 238],\n \"sienna\": [160, 82, 45],\n \"silver\": [192, 192, 192],\n \"skyblue\": [135, 206, 235],\n \"slateblue\": [106, 90, 205],\n \"slategray\": [112, 128, 144],\n \"slategrey\": [112, 128, 144],\n \"snow\": [255, 250, 250],\n \"springgreen\": [0, 255, 127],\n \"steelblue\": [70, 130, 180],\n \"tan\": [210, 180, 140],\n \"teal\": [0, 128, 128],\n \"thistle\": [216, 191, 216],\n \"tomato\": [255, 99, 71],\n \"turquoise\": [64, 224, 208],\n \"violet\": [238, 130, 238],\n \"wheat\": [245, 222, 179],\n \"white\": [255, 255, 255],\n \"whitesmoke\": [245, 245, 245],\n \"yellow\": [255, 255, 0],\n \"yellowgreen\": [154, 205, 50]\n };\n }\n });\n\n // node_modules/color-normalize/node_modules/color-parse/index.js\n var require_color_parse = __commonJS({\n \"node_modules/color-normalize/node_modules/color-parse/index.js\"(exports, module) {\n \"use strict\";\n var names2 = require_color_name();\n module.exports = parse2;\n var baseHues2 = {\n red: 0,\n orange: 60,\n yellow: 120,\n green: 180,\n blue: 240,\n purple: 300\n };\n function parse2(cstr) {\n var m, parts = [], alpha = 1, space;\n if (typeof cstr === \"string\") {\n cstr = cstr.toLowerCase();\n if (names2[cstr]) {\n parts = names2[cstr].slice();\n space = \"rgb\";\n } else if (cstr === \"transparent\") {\n alpha = 0;\n space = \"rgb\";\n parts = [0, 0, 0];\n } else if (/^#[A-Fa-f0-9]+$/.test(cstr)) {\n var base = cstr.slice(1);\n var size = base.length;\n var isShort = size <= 4;\n alpha = 1;\n if (isShort) {\n parts = [\n parseInt(base[0] + base[0], 16),\n parseInt(base[1] + base[1], 16),\n parseInt(base[2] + base[2], 16)\n ];\n if (size === 4) {\n alpha = parseInt(base[3] + base[3], 16) / 255;\n }\n } else {\n parts = [\n parseInt(base[0] + base[1], 16),\n parseInt(base[2] + base[3], 16),\n parseInt(base[4] + base[5], 16)\n ];\n if (size === 8) {\n alpha = parseInt(base[6] + base[7], 16) / 255;\n }\n }\n if (!parts[0]) parts[0] = 0;\n if (!parts[1]) parts[1] = 0;\n if (!parts[2]) parts[2] = 0;\n space = \"rgb\";\n } else if (m = /^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\\s*\\(([^\\)]*)\\)/.exec(cstr)) {\n var name2 = m[1];\n var isRGB = name2 === \"rgb\";\n var base = name2.replace(/a$/, \"\");\n space = base;\n var size = base === \"cmyk\" ? 4 : base === \"gray\" ? 1 : 3;\n parts = m[2].trim().split(/\\s*[,\\/]\\s*|\\s+/).map(function(x, i) {\n if (/%$/.test(x)) {\n if (i === size) return parseFloat(x) / 100;\n if (base === \"rgb\") return parseFloat(x) * 255 / 100;\n return parseFloat(x);\n } else if (base[i] === \"h\") {\n if (/deg$/.test(x)) {\n return parseFloat(x);\n } else if (baseHues2[x] !== void 0) {\n return baseHues2[x];\n }\n }\n return parseFloat(x);\n });\n if (name2 === base) parts.push(1);\n alpha = isRGB ? 1 : parts[size] === void 0 ? 1 : parts[size];\n parts = parts.slice(0, size);\n } else if (cstr.length > 10 && /[0-9](?:\\s|\\/)/.test(cstr)) {\n parts = cstr.match(/([0-9]+)/g).map(function(value) {\n return parseFloat(value);\n });\n space = cstr.match(/([a-z])/ig).join(\"\").toLowerCase();\n }\n } else if (!isNaN(cstr)) {\n space = \"rgb\";\n parts = [cstr >>> 16, (cstr & 65280) >>> 8, cstr & 255];\n } else if (Array.isArray(cstr) || cstr.length) {\n parts = [cstr[0], cstr[1], cstr[2]];\n space = \"rgb\";\n alpha = cstr.length === 4 ? cstr[3] : 1;\n } else if (cstr instanceof Object) {\n if (cstr.r != null || cstr.red != null || cstr.R != null) {\n space = \"rgb\";\n parts = [\n cstr.r || cstr.red || cstr.R || 0,\n cstr.g || cstr.green || cstr.G || 0,\n cstr.b || cstr.blue || cstr.B || 0\n ];\n } else {\n space = \"hsl\";\n parts = [\n cstr.h || cstr.hue || cstr.H || 0,\n cstr.s || cstr.saturation || cstr.S || 0,\n cstr.l || cstr.lightness || cstr.L || cstr.b || cstr.brightness\n ];\n }\n alpha = cstr.a || cstr.alpha || cstr.opacity || 1;\n if (cstr.opacity != null) alpha /= 100;\n }\n return {\n space,\n values: parts,\n alpha\n };\n }\n }\n });\n\n // node_modules/color-normalize/node_modules/color-rgba/index.js\n var require_color_rgba = __commonJS({\n \"node_modules/color-normalize/node_modules/color-rgba/index.js\"(exports, module) {\n \"use strict\";\n var parse2 = require_color_parse();\n module.exports = function rgba3(color2) {\n if (Array.isArray(color2) && color2.raw) color2 = String.raw.apply(null, arguments);\n var values, i, l;\n var parsed = parse2(color2);\n if (!parsed.space) return [];\n var min = [0, 0, 0], max = parsed.space[0] === \"h\" ? [360, 100, 100] : [255, 255, 255];\n values = Array(3);\n values[0] = Math.min(Math.max(parsed.values[0], min[0]), max[0]);\n values[1] = Math.min(Math.max(parsed.values[1], min[1]), max[1]);\n values[2] = Math.min(Math.max(parsed.values[2], min[2]), max[2]);\n if (parsed.space[0] === \"h\") values = hsl2rgb2(values);\n values.push(Math.min(Math.max(parsed.alpha, 0), 1));\n return values;\n };\n function hsl2rgb2(hsl3) {\n var h = hsl3[0] / 360, s = hsl3[1] / 100, l = hsl3[2] / 100, t12, t22, t32, rgb2, val, i = 0;\n if (s === 0) return val = l * 255, [val, val, val];\n t22 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n t12 = 2 * l - t22;\n rgb2 = [0, 0, 0];\n for (; i < 3; ) {\n t32 = h + 1 / 3 * -(i - 1);\n t32 < 0 ? t32++ : t32 > 1 && t32--;\n val = 6 * t32 < 1 ? t12 + (t22 - t12) * 6 * t32 : 2 * t32 < 1 ? t22 : 3 * t32 < 2 ? t12 + (t22 - t12) * (2 / 3 - t32) * 6 : t12;\n rgb2[i++] = val * 255;\n }\n return rgb2;\n }\n }\n });\n\n // node_modules/clamp/index.js\n var require_clamp = __commonJS({\n \"node_modules/clamp/index.js\"(exports, module) {\n module.exports = clamp;\n function clamp(value, min, max) {\n return min < max ? value < min ? min : value > max ? max : value : value < max ? max : value > min ? min : value;\n }\n }\n });\n\n // node_modules/dtype/index.js\n var require_dtype = __commonJS({\n \"node_modules/dtype/index.js\"(exports, module) {\n module.exports = function(dtype) {\n switch (dtype) {\n case \"int8\":\n return Int8Array;\n case \"int16\":\n return Int16Array;\n case \"int32\":\n return Int32Array;\n case \"uint8\":\n return Uint8Array;\n case \"uint16\":\n return Uint16Array;\n case \"uint32\":\n return Uint32Array;\n case \"float32\":\n return Float32Array;\n case \"float64\":\n return Float64Array;\n case \"array\":\n return Array;\n case \"uint8_clamped\":\n return Uint8ClampedArray;\n }\n };\n }\n });\n\n // node_modules/color-normalize/index.js\n var require_color_normalize = __commonJS({\n \"node_modules/color-normalize/index.js\"(exports, module) {\n \"use strict\";\n var rgba3 = require_color_rgba();\n var clamp = require_clamp();\n var dtype = require_dtype();\n module.exports = function normalize(color2, type) {\n if (type === \"float\" || !type) type = \"array\";\n if (type === \"uint\") type = \"uint8\";\n if (type === \"uint_clamped\") type = \"uint8_clamped\";\n var Ctor = dtype(type);\n var output = new Ctor(4);\n var normalize2 = type !== \"uint8\" && type !== \"uint8_clamped\";\n if (!color2.length || typeof color2 === \"string\") {\n color2 = rgba3(color2);\n color2[0] /= 255;\n color2[1] /= 255;\n color2[2] /= 255;\n }\n if (isInt(color2)) {\n output[0] = color2[0];\n output[1] = color2[1];\n output[2] = color2[2];\n output[3] = color2[3] != null ? color2[3] : 255;\n if (normalize2) {\n output[0] /= 255;\n output[1] /= 255;\n output[2] /= 255;\n output[3] /= 255;\n }\n return output;\n }\n if (!normalize2) {\n output[0] = clamp(Math.floor(color2[0] * 255), 0, 255);\n output[1] = clamp(Math.floor(color2[1] * 255), 0, 255);\n output[2] = clamp(Math.floor(color2[2] * 255), 0, 255);\n output[3] = color2[3] == null ? 255 : clamp(Math.floor(color2[3] * 255), 0, 255);\n } else {\n output[0] = color2[0];\n output[1] = color2[1];\n output[2] = color2[2];\n output[3] = color2[3] != null ? color2[3] : 1;\n }\n return output;\n };\n function isInt(color2) {\n if (color2 instanceof Uint8Array || color2 instanceof Uint8ClampedArray) return true;\n if (Array.isArray(color2) && (color2[0] > 1 || color2[0] === 0) && (color2[1] > 1 || color2[1] === 0) && (color2[2] > 1 || color2[2] === 0) && (!color2[3] || color2[3] > 1)) return true;\n return false;\n }\n }\n });\n\n // src/lib/str2rgbarray.js\n var require_str2rgbarray = __commonJS({\n \"src/lib/str2rgbarray.js\"(exports, module) {\n \"use strict\";\n var rgba3 = require_color_normalize();\n function str2RgbaArray(color2) {\n if (!color2) return [0, 0, 0, 1];\n return rgba3(color2);\n }\n module.exports = str2RgbaArray;\n }\n });\n\n // src/lib/gl_format_color.js\n var require_gl_format_color = __commonJS({\n \"src/lib/gl_format_color.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var tinycolor = require_tinycolor();\n var rgba3 = require_color_normalize();\n var Colorscale = require_colorscale();\n var colorDflt = require_attributes3().defaultLine;\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n var colorDfltRgba = rgba3(colorDflt);\n var opacityDflt = 1;\n function calculateColor(colorIn, opacityIn) {\n var colorOut = colorIn;\n colorOut[3] *= opacityIn;\n return colorOut;\n }\n function validateColor(colorIn) {\n if (isNumeric(colorIn)) return colorDfltRgba;\n var colorOut = rgba3(colorIn);\n return colorOut.length ? colorOut : colorDfltRgba;\n }\n function validateOpacity(opacityIn) {\n return isNumeric(opacityIn) ? opacityIn : opacityDflt;\n }\n function formatColor(containerIn, opacityIn, len) {\n var colorIn = containerIn.color;\n if (colorIn && colorIn._inputArray) colorIn = colorIn._inputArray;\n var isArrayColorIn = isArrayOrTypedArray(colorIn);\n var isArrayOpacityIn = isArrayOrTypedArray(opacityIn);\n var cOpts = Colorscale.extractOpts(containerIn);\n var colorOut = [];\n var sclFunc, getColor, getOpacity, colori, opacityi;\n if (cOpts.colorscale !== void 0) {\n sclFunc = Colorscale.makeColorScaleFuncFromTrace(containerIn);\n } else {\n sclFunc = validateColor;\n }\n if (isArrayColorIn) {\n getColor = function(c, i2) {\n return c[i2] === void 0 ? colorDfltRgba : rgba3(sclFunc(c[i2]));\n };\n } else getColor = validateColor;\n if (isArrayOpacityIn) {\n getOpacity = function(o, i2) {\n return o[i2] === void 0 ? opacityDflt : validateOpacity(o[i2]);\n };\n } else getOpacity = validateOpacity;\n if (isArrayColorIn || isArrayOpacityIn) {\n for (var i = 0; i < len; i++) {\n colori = getColor(colorIn, i);\n opacityi = getOpacity(opacityIn, i);\n colorOut[i] = calculateColor(colori, opacityi);\n }\n } else colorOut = calculateColor(rgba3(colorIn), opacityIn);\n return colorOut;\n }\n function parseColorScale(cont) {\n var cOpts = Colorscale.extractOpts(cont);\n var colorscale = cOpts.colorscale;\n if (cOpts.reversescale) colorscale = Colorscale.flipScale(cOpts.colorscale);\n return colorscale.map(function(elem) {\n var index = elem[0];\n var color2 = tinycolor(elem[1]);\n var rgb2 = color2.toRgb();\n return {\n index,\n rgb: [rgb2.r, rgb2.g, rgb2.b, rgb2.a]\n };\n });\n }\n module.exports = {\n formatColor,\n parseColorScale\n };\n }\n });\n\n // src/constants/gl3d_dashes.js\n var require_gl3d_dashes = __commonJS({\n \"src/constants/gl3d_dashes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n solid: [[], 0],\n dot: [[0.5, 1], 200],\n dash: [[0.5, 1], 50],\n longdash: [[0.5, 1], 10],\n dashdot: [[0.5, 0.625, 0.875, 1], 50],\n longdashdot: [[0.5, 0.7, 0.8, 1], 10]\n };\n }\n });\n\n // src/constants/gl3d_markers.js\n var require_gl3d_markers = __commonJS({\n \"src/constants/gl3d_markers.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n circle: \"\\u25CF\",\n \"circle-open\": \"\\u25CB\",\n square: \"\\u25A0\",\n \"square-open\": \"\\u25A1\",\n diamond: \"\\u25C6\",\n \"diamond-open\": \"\\u25C7\",\n cross: \"+\",\n x: \"\\u274C\"\n };\n }\n });\n\n // src/traces/scatter3d/calc_errors.js\n var require_calc_errors = __commonJS({\n \"src/traces/scatter3d/calc_errors.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n function calculateAxisErrors(data, params, scaleFactor, axis) {\n if (!params || !params.visible) return null;\n var computeError = Registry.getComponentMethod(\"errorbars\", \"makeComputeError\")(params);\n var result = new Array(data.length);\n for (var i = 0; i < data.length; i++) {\n var errors = computeError(+data[i], i);\n if (axis.type === \"log\") {\n var point = axis.c2l(data[i]);\n var min = data[i] - errors[0];\n var max = data[i] + errors[1];\n result[i] = [\n (axis.c2l(min, true) - point) * scaleFactor,\n (axis.c2l(max, true) - point) * scaleFactor\n ];\n if (min > 0) {\n var lower = axis.c2l(min);\n if (!axis._lowerLogErrorBound) axis._lowerLogErrorBound = lower;\n axis._lowerErrorBound = Math.min(axis._lowerLogErrorBound, lower);\n }\n } else {\n result[i] = [\n -errors[0] * scaleFactor,\n errors[1] * scaleFactor\n ];\n }\n }\n return result;\n }\n function dataLength(array) {\n for (var i = 0; i < array.length; i++) {\n if (array[i]) return array[i].length;\n }\n return 0;\n }\n function calculateErrors(data, scaleFactor, sceneLayout) {\n var errors = [\n calculateAxisErrors(data.x, data.error_x, scaleFactor[0], sceneLayout.xaxis),\n calculateAxisErrors(data.y, data.error_y, scaleFactor[1], sceneLayout.yaxis),\n calculateAxisErrors(data.z, data.error_z, scaleFactor[2], sceneLayout.zaxis)\n ];\n var n = dataLength(errors);\n if (n === 0) return null;\n var errorBounds = new Array(n);\n for (var i = 0; i < n; i++) {\n var bound = [[0, 0, 0], [0, 0, 0]];\n for (var j = 0; j < 3; j++) {\n if (errors[j]) {\n for (var k = 0; k < 2; k++) {\n bound[k][j] = errors[j][i][k];\n }\n }\n }\n errorBounds[i] = bound;\n }\n return errorBounds;\n }\n module.exports = calculateErrors;\n }\n });\n\n // src/traces/scatter3d/convert.js\n var require_convert2 = __commonJS({\n \"src/traces/scatter3d/convert.js\"(exports, module) {\n \"use strict\";\n var createLinePlot = require_stackgl_modules().gl_line3d;\n var createScatterPlot = require_stackgl_modules().gl_scatter3d;\n var createErrorBars = require_stackgl_modules().gl_error3d;\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var triangulate = require_stackgl_modules().delaunay_triangulate;\n var Lib = require_lib();\n var str2RgbaArray = require_str2rgbarray();\n var formatColor = require_gl_format_color().formatColor;\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var DASH_PATTERNS = require_gl3d_dashes();\n var MARKER_SYMBOLS = require_gl3d_markers();\n var Axes = require_axes();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var calculateError = require_calc_errors();\n function LineWithMarkers(scene, uid) {\n this.scene = scene;\n this.uid = uid;\n this.linePlot = null;\n this.scatterPlot = null;\n this.errorBars = null;\n this.textMarkers = null;\n this.delaunayMesh = null;\n this.color = null;\n this.mode = \"\";\n this.dataPoints = [];\n this.axesBounds = [\n [-Infinity, -Infinity, -Infinity],\n [Infinity, Infinity, Infinity]\n ];\n this.textLabels = null;\n this.data = null;\n }\n var proto = LineWithMarkers.prototype;\n proto.handlePick = function(selection) {\n if (selection.object && (selection.object === this.linePlot || selection.object === this.delaunayMesh || selection.object === this.textMarkers || selection.object === this.scatterPlot)) {\n var ind = selection.index = selection.data.index;\n if (selection.object.highlight) {\n selection.object.highlight(null);\n }\n if (this.scatterPlot) {\n selection.object = this.scatterPlot;\n this.scatterPlot.highlight(selection.data);\n }\n selection.textLabel = \"\";\n if (this.textLabels) {\n if (Lib.isArrayOrTypedArray(this.textLabels)) {\n if (this.textLabels[ind] || this.textLabels[ind] === 0) {\n selection.textLabel = this.textLabels[ind];\n }\n } else {\n selection.textLabel = this.textLabels;\n }\n }\n selection.traceCoordinate = [\n this.data.x[ind],\n this.data.y[ind],\n this.data.z[ind]\n ];\n return true;\n }\n };\n function constructDelaunay(points, color2, axis) {\n var u = (axis + 1) % 3;\n var v = (axis + 2) % 3;\n var filteredPoints = [];\n var filteredIds = [];\n var i;\n for (i = 0; i < points.length; ++i) {\n var p = points[i];\n if (isNaN(p[u]) || !isFinite(p[u]) || isNaN(p[v]) || !isFinite(p[v])) {\n continue;\n }\n filteredPoints.push([p[u], p[v]]);\n filteredIds.push(i);\n }\n var cells = triangulate(filteredPoints);\n for (i = 0; i < cells.length; ++i) {\n var c = cells[i];\n for (var j = 0; j < c.length; ++j) {\n c[j] = filteredIds[c[j]];\n }\n }\n return {\n positions: points,\n cells,\n meshColor: color2\n };\n }\n function calculateErrorParams(errors) {\n var capSize = [0, 0, 0];\n var color2 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]];\n var lineWidth = [1, 1, 1];\n for (var i = 0; i < 3; i++) {\n var e = errors[i];\n if (e && e.copy_zstyle !== false && errors[2].visible !== false) e = errors[2];\n if (!e || !e.visible) continue;\n capSize[i] = e.width / 2;\n color2[i] = str2RgbaArray(e.color);\n lineWidth[i] = e.thickness;\n }\n return { capSize, color: color2, lineWidth };\n }\n function parseAlignmentX(a) {\n if (a === null || a === void 0) return 0;\n return a.indexOf(\"left\") > -1 ? -1 : a.indexOf(\"right\") > -1 ? 1 : 0;\n }\n function parseAlignmentY(a) {\n if (a === null || a === void 0) return 0;\n return a.indexOf(\"top\") > -1 ? -1 : a.indexOf(\"bottom\") > -1 ? 1 : 0;\n }\n function calculateTextOffset(tp) {\n var defaultAlignmentX = 0;\n var defaultAlignmentY = 0;\n var textOffset = [\n defaultAlignmentX,\n defaultAlignmentY\n ];\n if (Array.isArray(tp)) {\n for (var i = 0; i < tp.length; i++) {\n textOffset[i] = [\n defaultAlignmentX,\n defaultAlignmentY\n ];\n if (tp[i]) {\n textOffset[i][0] = parseAlignmentX(tp[i]);\n textOffset[i][1] = parseAlignmentY(tp[i]);\n }\n }\n } else {\n textOffset[0] = parseAlignmentX(tp);\n textOffset[1] = parseAlignmentY(tp);\n }\n return textOffset;\n }\n function calculateSize(sizeIn, sizeFn) {\n return sizeFn(sizeIn * 4);\n }\n function calculateSymbol(symbolIn) {\n return MARKER_SYMBOLS[symbolIn];\n }\n function formatParam(paramIn, len, calculate, dflt, extraFn) {\n var paramOut = null;\n if (Lib.isArrayOrTypedArray(paramIn)) {\n paramOut = [];\n for (var i = 0; i < len; i++) {\n if (paramIn[i] === void 0) paramOut[i] = dflt;\n else paramOut[i] = calculate(paramIn[i], extraFn);\n }\n } else paramOut = calculate(paramIn, Lib.identity);\n return paramOut;\n }\n function convertPlotlyOptions(scene, data) {\n var points = [];\n var sceneLayout = scene.fullSceneLayout;\n var scaleFactor = scene.dataScale;\n var xaxis = sceneLayout.xaxis;\n var yaxis = sceneLayout.yaxis;\n var zaxis = sceneLayout.zaxis;\n var marker = data.marker;\n var line = data.line;\n var x = data.x || [];\n var y = data.y || [];\n var z = data.z || [];\n var len = x.length;\n var xcalendar = data.xcalendar;\n var ycalendar = data.ycalendar;\n var zcalendar = data.zcalendar;\n var xc, yc, zc;\n var params, i;\n var text;\n for (i = 0; i < len; i++) {\n xc = xaxis.d2l(x[i], 0, xcalendar) * scaleFactor[0];\n yc = yaxis.d2l(y[i], 0, ycalendar) * scaleFactor[1];\n zc = zaxis.d2l(z[i], 0, zcalendar) * scaleFactor[2];\n points[i] = [xc, yc, zc];\n }\n if (Array.isArray(data.text)) {\n text = data.text;\n } else if (Lib.isTypedArray(data.text)) {\n text = Array.from(data.text);\n } else if (data.text !== void 0) {\n text = new Array(len);\n for (i = 0; i < len; i++) text[i] = data.text;\n }\n function formatter(axName, val) {\n var ax = sceneLayout[axName];\n return Axes.tickText(ax, ax.d2l(val), true).text;\n }\n var texttemplate = data.texttemplate;\n if (texttemplate) {\n var fullLayout = scene.fullLayout;\n var d3locale = fullLayout._d3locale;\n var isArray = Array.isArray(texttemplate);\n var N = isArray ? Math.min(texttemplate.length, len) : len;\n var txt = isArray ? function(i2) {\n return texttemplate[i2];\n } : function() {\n return texttemplate;\n };\n text = new Array(N);\n for (i = 0; i < N; i++) {\n var d = { x: x[i], y: y[i], z: z[i] };\n var labels = {\n xLabel: formatter(\"xaxis\", x[i]),\n yLabel: formatter(\"yaxis\", y[i]),\n zLabel: formatter(\"zaxis\", z[i])\n };\n var pointValues = {};\n appendArrayPointValue(pointValues, data, i);\n var meta = data._meta || {};\n text[i] = Lib.texttemplateString(txt(i), labels, d3locale, pointValues, d, meta);\n }\n }\n params = {\n position: points,\n mode: data.mode,\n text\n };\n if (\"line\" in data) {\n params.lineColor = formatColor(line, 1, len);\n params.lineWidth = line.width;\n params.lineDashes = line.dash;\n }\n if (\"marker\" in data) {\n var sizeFn = makeBubbleSizeFn(data);\n params.scatterColor = formatColor(marker, 1, len);\n params.scatterSize = formatParam(marker.size, len, calculateSize, 20, sizeFn);\n params.scatterMarker = formatParam(marker.symbol, len, calculateSymbol, \"\\u25CF\");\n params.scatterLineWidth = marker.line.width;\n params.scatterLineColor = formatColor(marker.line, 1, len);\n params.scatterAngle = 0;\n }\n if (\"textposition\" in data) {\n params.textOffset = calculateTextOffset(data.textposition);\n params.textColor = formatColor(data.textfont, 1, len);\n params.textSize = formatParam(data.textfont.size, len, Lib.identity, 12);\n params.textFontFamily = data.textfont.family;\n params.textFontWeight = data.textfont.weight;\n params.textFontStyle = data.textfont.style;\n params.textFontVariant = data.textfont.variant;\n params.textAngle = 0;\n }\n var dims = [\"x\", \"y\", \"z\"];\n params.project = [false, false, false];\n params.projectScale = [1, 1, 1];\n params.projectOpacity = [1, 1, 1];\n for (i = 0; i < 3; ++i) {\n var projection = data.projection[dims[i]];\n if (params.project[i] = projection.show) {\n params.projectOpacity[i] = projection.opacity;\n params.projectScale[i] = projection.scale;\n }\n }\n params.errorBounds = calculateError(data, scaleFactor, sceneLayout);\n var errorParams = calculateErrorParams([data.error_x, data.error_y, data.error_z]);\n params.errorColor = errorParams.color;\n params.errorLineWidth = errorParams.lineWidth;\n params.errorCapSize = errorParams.capSize;\n params.delaunayAxis = data.surfaceaxis;\n params.delaunayColor = str2RgbaArray(data.surfacecolor);\n return params;\n }\n function _arrayToColor(color2) {\n if (Lib.isArrayOrTypedArray(color2)) {\n var c = color2[0];\n if (Lib.isArrayOrTypedArray(c)) color2 = c;\n return \"rgb(\" + color2.slice(0, 3).map(function(x) {\n return Math.round(x * 255);\n }) + \")\";\n }\n return null;\n }\n function arrayToColor(colors) {\n if (!Lib.isArrayOrTypedArray(colors)) {\n return null;\n }\n if (colors.length === 4 && typeof colors[0] === \"number\") {\n return _arrayToColor(colors);\n }\n return colors.map(_arrayToColor);\n }\n proto.update = function(data) {\n var gl2 = this.scene.glplot.gl;\n var lineOptions;\n var scatterOptions;\n var errorOptions;\n var textOptions;\n var dashPattern = DASH_PATTERNS.solid;\n this.data = data;\n var options = convertPlotlyOptions(this.scene, data);\n if (\"mode\" in options) {\n this.mode = options.mode;\n }\n if (\"lineDashes\" in options) {\n if (options.lineDashes in DASH_PATTERNS) {\n dashPattern = DASH_PATTERNS[options.lineDashes];\n }\n }\n this.color = arrayToColor(options.scatterColor) || arrayToColor(options.lineColor);\n this.dataPoints = options.position;\n lineOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n color: options.lineColor,\n lineWidth: options.lineWidth || 1,\n dashes: dashPattern[0],\n dashScale: dashPattern[1],\n opacity: data.opacity,\n connectGaps: data.connectgaps\n };\n if (this.mode.indexOf(\"lines\") !== -1) {\n if (this.linePlot) this.linePlot.update(lineOptions);\n else {\n this.linePlot = createLinePlot(lineOptions);\n this.linePlot._trace = this;\n this.scene.glplot.add(this.linePlot);\n }\n } else if (this.linePlot) {\n this.scene.glplot.remove(this.linePlot);\n this.linePlot.dispose();\n this.linePlot = null;\n }\n var scatterOpacity = data.opacity;\n if (data.marker && data.marker.opacity !== void 0) scatterOpacity *= data.marker.opacity;\n scatterOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n color: options.scatterColor,\n size: options.scatterSize,\n glyph: options.scatterMarker,\n opacity: scatterOpacity,\n orthographic: true,\n lineWidth: options.scatterLineWidth,\n lineColor: options.scatterLineColor,\n project: options.project,\n projectScale: options.projectScale,\n projectOpacity: options.projectOpacity\n };\n if (this.mode.indexOf(\"markers\") !== -1) {\n if (this.scatterPlot) this.scatterPlot.update(scatterOptions);\n else {\n this.scatterPlot = createScatterPlot(scatterOptions);\n this.scatterPlot._trace = this;\n this.scatterPlot.highlightScale = 1;\n this.scene.glplot.add(this.scatterPlot);\n }\n } else if (this.scatterPlot) {\n this.scene.glplot.remove(this.scatterPlot);\n this.scatterPlot.dispose();\n this.scatterPlot = null;\n }\n textOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n glyph: options.text,\n color: options.textColor,\n size: options.textSize,\n angle: options.textAngle,\n alignment: options.textOffset,\n font: options.textFontFamily,\n fontWeight: options.textFontWeight,\n fontStyle: options.textFontStyle,\n fontVariant: options.textFontVariant,\n orthographic: true,\n lineWidth: 0,\n project: false,\n opacity: data.opacity\n };\n this.textLabels = data.hovertext || data.text;\n if (this.mode.indexOf(\"text\") !== -1) {\n if (this.textMarkers) this.textMarkers.update(textOptions);\n else {\n this.textMarkers = createScatterPlot(textOptions);\n this.textMarkers._trace = this;\n this.textMarkers.highlightScale = 1;\n this.scene.glplot.add(this.textMarkers);\n }\n } else if (this.textMarkers) {\n this.scene.glplot.remove(this.textMarkers);\n this.textMarkers.dispose();\n this.textMarkers = null;\n }\n errorOptions = {\n gl: this.scene.glplot.gl,\n position: options.position,\n color: options.errorColor,\n error: options.errorBounds,\n lineWidth: options.errorLineWidth,\n capSize: options.errorCapSize,\n opacity: data.opacity\n };\n if (this.errorBars) {\n if (options.errorBounds) {\n this.errorBars.update(errorOptions);\n } else {\n this.scene.glplot.remove(this.errorBars);\n this.errorBars.dispose();\n this.errorBars = null;\n }\n } else if (options.errorBounds) {\n this.errorBars = createErrorBars(errorOptions);\n this.errorBars._trace = this;\n this.scene.glplot.add(this.errorBars);\n }\n if (options.delaunayAxis >= 0) {\n var delaunayOptions = constructDelaunay(\n options.position,\n options.delaunayColor,\n options.delaunayAxis\n );\n delaunayOptions.opacity = data.opacity;\n if (this.delaunayMesh) {\n this.delaunayMesh.update(delaunayOptions);\n } else {\n delaunayOptions.gl = gl2;\n this.delaunayMesh = createMesh(delaunayOptions);\n this.delaunayMesh._trace = this;\n this.scene.glplot.add(this.delaunayMesh);\n }\n } else if (this.delaunayMesh) {\n this.scene.glplot.remove(this.delaunayMesh);\n this.delaunayMesh.dispose();\n this.delaunayMesh = null;\n }\n };\n proto.dispose = function() {\n if (this.linePlot) {\n this.scene.glplot.remove(this.linePlot);\n this.linePlot.dispose();\n }\n if (this.scatterPlot) {\n this.scene.glplot.remove(this.scatterPlot);\n this.scatterPlot.dispose();\n }\n if (this.errorBars) {\n this.scene.glplot.remove(this.errorBars);\n this.errorBars.dispose();\n }\n if (this.textMarkers) {\n this.scene.glplot.remove(this.textMarkers);\n this.textMarkers.dispose();\n }\n if (this.delaunayMesh) {\n this.scene.glplot.remove(this.delaunayMesh);\n this.delaunayMesh.dispose();\n }\n };\n function createLineWithMarkers(scene, data) {\n var plot = new LineWithMarkers(scene, data.uid);\n plot.update(data);\n return plot;\n }\n module.exports = createLineWithMarkers;\n }\n });\n\n // src/traces/scatter3d/attributes.js\n var require_attributes40 = __commonJS({\n \"src/traces/scatter3d/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var fontAttrs = require_font_attributes();\n var colorAttributes = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var baseAttrs = require_attributes2();\n var DASHES = require_gl3d_dashes();\n var MARKER_SYMBOLS = require_gl3d_markers();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var sortObjectKeys = require_sort_object_keys();\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var lineAttrs = extendFlat({\n width: scatterLineAttrs.width,\n dash: {\n valType: \"enumerated\",\n values: sortObjectKeys(DASHES),\n dflt: \"solid\"\n }\n }, colorAttributes(\"line\"));\n function makeProjectionAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n scale: {\n valType: \"number\",\n min: 0,\n max: 10,\n dflt: 2 / 3\n }\n };\n }\n var attrs = module.exports = overrideAll({\n x: scatterAttrs.x,\n y: scatterAttrs.y,\n z: {\n valType: \"data_array\"\n },\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({}, {}),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n mode: extendFlat(\n {},\n scatterAttrs.mode,\n // shouldn't this be on-par with 2D?\n { dflt: \"lines+markers\" }\n ),\n surfaceaxis: {\n valType: \"enumerated\",\n values: [-1, 0, 1, 2],\n dflt: -1\n },\n surfacecolor: {\n valType: \"color\"\n },\n projection: {\n x: makeProjectionAttr(\"x\"),\n y: makeProjectionAttr(\"y\"),\n z: makeProjectionAttr(\"z\")\n },\n connectgaps: scatterAttrs.connectgaps,\n line: lineAttrs,\n marker: extendFlat(\n {\n // Parity with scatter.js?\n symbol: {\n valType: \"enumerated\",\n values: sortObjectKeys(MARKER_SYMBOLS),\n dflt: \"circle\",\n arrayOk: true\n },\n size: extendFlat({}, scatterMarkerAttrs.size, { dflt: 8 }),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: extendFlat({}, scatterMarkerAttrs.opacity, {\n arrayOk: false\n }),\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat(\n {\n width: extendFlat({}, scatterMarkerLineAttrs.width, { arrayOk: false })\n },\n colorAttributes(\"marker.line\")\n )\n },\n colorAttributes(\"marker\")\n ),\n textposition: extendFlat({}, scatterAttrs.textposition, { dflt: \"top center\" }),\n textfont: fontAttrs({\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n editType: \"calc\",\n colorEditType: \"style\",\n arrayOk: true,\n variantValues: [\"normal\", \"small-caps\"]\n }),\n opacity: baseAttrs.opacity,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo)\n }, \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.z.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/scatter3d/defaults.js\n var require_defaults36 = __commonJS({\n \"src/traces/scatter3d/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var attributes = require_attributes40();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n coerce(\"mode\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noSelect: true, noAngle: true });\n }\n if (subTypes.hasLines(traceOut)) {\n coerce(\"connectgaps\");\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce, {\n noSelect: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n }\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n if (coerce(\"surfaceaxis\") >= 0) coerce(\"surfacecolor\", lineColor || markerColor);\n var dims = [\"x\", \"y\", \"z\"];\n for (var i = 0; i < 3; ++i) {\n var projection = \"projection.\" + dims[i];\n if (coerce(projection + \".show\")) {\n coerce(projection + \".opacity\");\n coerce(projection + \".scale\");\n }\n }\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"z\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"y\", inherit: \"z\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"x\", inherit: \"z\" });\n };\n function handleXYZDefaults(traceIn, traceOut, coerce, layout) {\n var len = 0;\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n if (x && y && z) {\n len = Math.min(x.length, y.length, z.length);\n traceOut._length = traceOut._xlength = traceOut._ylength = traceOut._zlength = len;\n }\n return len;\n }\n }\n });\n\n // src/traces/scatter3d/calc.js\n var require_calc21 = __commonJS({\n \"src/traces/scatter3d/calc.js\"(exports, module) {\n \"use strict\";\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcColorscale = require_colorscale_calc();\n module.exports = function calc(gd, trace) {\n var cd = [{ x: false, y: false, trace, t: {} }];\n arraysToCalcdata(cd, trace);\n calcColorscale(gd, trace);\n return cd;\n };\n }\n });\n\n // node_modules/get-canvas-context/index.js\n var require_get_canvas_context = __commonJS({\n \"node_modules/get-canvas-context/index.js\"(exports, module) {\n module.exports = getCanvasContext;\n function getCanvasContext(type, opts) {\n if (typeof type !== \"string\") {\n throw new TypeError(\"must specify type string\");\n }\n opts = opts || {};\n if (typeof document === \"undefined\" && !opts.canvas) {\n return null;\n }\n var canvas = opts.canvas || document.createElement(\"canvas\");\n if (typeof opts.width === \"number\") {\n canvas.width = opts.width;\n }\n if (typeof opts.height === \"number\") {\n canvas.height = opts.height;\n }\n var attribs = opts;\n var gl2;\n try {\n var names2 = [type];\n if (type.indexOf(\"webgl\") === 0) {\n names2.push(\"experimental-\" + type);\n }\n for (var i = 0; i < names2.length; i++) {\n gl2 = canvas.getContext(names2[i], attribs);\n if (gl2) return gl2;\n }\n } catch (e) {\n gl2 = null;\n }\n return gl2 || null;\n }\n }\n });\n\n // node_modules/webgl-context/index.js\n var require_webgl_context = __commonJS({\n \"node_modules/webgl-context/index.js\"(exports, module) {\n var getContext = require_get_canvas_context();\n module.exports = function getWebGLContext(opt) {\n return getContext(\"webgl\", opt);\n };\n }\n });\n\n // src/lib/show_no_webgl_msg.js\n var require_show_no_webgl_msg = __commonJS({\n \"src/lib/show_no_webgl_msg.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var noop = function() {\n };\n module.exports = function showNoWebGlMsg(scene) {\n for (var prop in scene) {\n if (typeof scene[prop] === \"function\") scene[prop] = noop;\n }\n scene.destroy = function() {\n scene.container.parentNode.removeChild(scene.container);\n };\n var div = document.createElement(\"div\");\n div.className = \"no-webgl\";\n div.style.cursor = \"pointer\";\n div.style.fontSize = \"24px\";\n div.style.color = Color2.defaults[0];\n div.style.position = \"absolute\";\n div.style.left = div.style.top = \"0px\";\n div.style.width = div.style.height = \"100%\";\n div.style[\"background-color\"] = Color2.lightLine;\n div.style[\"z-index\"] = 30;\n var p = document.createElement(\"p\");\n p.textContent = \"WebGL is not supported by your browser - visit https://get.webgl.org for more info\";\n p.style.position = \"relative\";\n p.style.top = \"50%\";\n p.style.left = \"50%\";\n p.style.height = \"30%\";\n p.style.width = \"50%\";\n p.style.margin = \"-15% 0 0 -25%\";\n div.appendChild(p);\n scene.container.appendChild(div);\n scene.container.style.background = \"#FFFFFF\";\n scene.container.onclick = function() {\n window.open(\"https://get.webgl.org\");\n };\n return false;\n };\n }\n });\n\n // src/plots/gl3d/layout/convert.js\n var require_convert3 = __commonJS({\n \"src/plots/gl3d/layout/convert.js\"(exports, module) {\n \"use strict\";\n var str2RgbaArray = require_str2rgbarray();\n var Lib = require_lib();\n var AXES_NAMES = [\"xaxis\", \"yaxis\", \"zaxis\"];\n function AxesOptions() {\n this.bounds = [\n [-10, -10, -10],\n [10, 10, 10]\n ];\n this.ticks = [[], [], []];\n this.tickEnable = [true, true, true];\n this.tickFont = [\"sans-serif\", \"sans-serif\", \"sans-serif\"];\n this.tickSize = [12, 12, 12];\n this.tickFontWeight = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.tickFontStyle = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.tickFontVariant = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.tickAngle = [0, 0, 0];\n this.tickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.tickPad = [18, 18, 18];\n this.labels = [\"x\", \"y\", \"z\"];\n this.labelEnable = [true, true, true];\n this.labelFont = [\"Open Sans\", \"Open Sans\", \"Open Sans\"];\n this.labelSize = [20, 20, 20];\n this.labelFontWeight = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.labelFontStyle = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.labelFontVariant = [\"normal\", \"normal\", \"normal\", \"normal\"];\n this.labelColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.labelPad = [30, 30, 30];\n this.lineEnable = [true, true, true];\n this.lineMirror = [false, false, false];\n this.lineWidth = [1, 1, 1];\n this.lineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.lineTickEnable = [true, true, true];\n this.lineTickMirror = [false, false, false];\n this.lineTickLength = [10, 10, 10];\n this.lineTickWidth = [1, 1, 1];\n this.lineTickColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.gridEnable = [true, true, true];\n this.gridWidth = [1, 1, 1];\n this.gridColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroEnable = [true, true, true];\n this.zeroLineColor = [[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 1]];\n this.zeroLineWidth = [2, 2, 2];\n this.backgroundEnable = [true, true, true];\n this.backgroundColor = [\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5],\n [0.8, 0.8, 0.8, 0.5]\n ];\n this._defaultTickPad = this.tickPad.slice();\n this._defaultLabelPad = this.labelPad.slice();\n this._defaultLineTickLength = this.lineTickLength.slice();\n }\n var proto = AxesOptions.prototype;\n proto.merge = function(fullLayout, sceneLayout) {\n var opts = this;\n for (var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n if (!axes.visible) {\n opts.tickEnable[i] = false;\n opts.labelEnable[i] = false;\n opts.lineEnable[i] = false;\n opts.lineTickEnable[i] = false;\n opts.gridEnable[i] = false;\n opts.zeroEnable[i] = false;\n opts.backgroundEnable[i] = false;\n continue;\n }\n opts.labels[i] = fullLayout._meta ? Lib.templateString(axes.title.text, fullLayout._meta) : axes.title.text;\n if (\"font\" in axes.title) {\n if (axes.title.font.color) opts.labelColor[i] = str2RgbaArray(axes.title.font.color);\n if (axes.title.font.family) opts.labelFont[i] = axes.title.font.family;\n if (axes.title.font.size) opts.labelSize[i] = axes.title.font.size;\n if (axes.title.font.weight) opts.labelFontWeight[i] = axes.title.font.weight;\n if (axes.title.font.style) opts.labelFontStyle[i] = axes.title.font.style;\n if (axes.title.font.variant) opts.labelFontVariant[i] = axes.title.font.variant;\n }\n if (\"showline\" in axes) opts.lineEnable[i] = axes.showline;\n if (\"linecolor\" in axes) opts.lineColor[i] = str2RgbaArray(axes.linecolor);\n if (\"linewidth\" in axes) opts.lineWidth[i] = axes.linewidth;\n if (\"showgrid\" in axes) opts.gridEnable[i] = axes.showgrid;\n if (\"gridcolor\" in axes) opts.gridColor[i] = str2RgbaArray(axes.gridcolor);\n if (\"gridwidth\" in axes) opts.gridWidth[i] = axes.gridwidth;\n if (axes.type === \"log\") opts.zeroEnable[i] = false;\n else if (\"zeroline\" in axes) opts.zeroEnable[i] = axes.zeroline;\n if (\"zerolinecolor\" in axes) opts.zeroLineColor[i] = str2RgbaArray(axes.zerolinecolor);\n if (\"zerolinewidth\" in axes) opts.zeroLineWidth[i] = axes.zerolinewidth;\n if (\"ticks\" in axes && !!axes.ticks) opts.lineTickEnable[i] = true;\n else opts.lineTickEnable[i] = false;\n if (\"ticklen\" in axes) {\n opts.lineTickLength[i] = opts._defaultLineTickLength[i] = axes.ticklen;\n }\n if (\"tickcolor\" in axes) opts.lineTickColor[i] = str2RgbaArray(axes.tickcolor);\n if (\"tickwidth\" in axes) opts.lineTickWidth[i] = axes.tickwidth;\n if (\"tickangle\" in axes) {\n opts.tickAngle[i] = axes.tickangle === \"auto\" ? -3600 : (\n // i.e. special number to set auto option\n Math.PI * -axes.tickangle / 180\n );\n }\n if (\"showticklabels\" in axes) opts.tickEnable[i] = axes.showticklabels;\n if (\"tickfont\" in axes) {\n if (axes.tickfont.color) opts.tickColor[i] = str2RgbaArray(axes.tickfont.color);\n if (axes.tickfont.family) opts.tickFont[i] = axes.tickfont.family;\n if (axes.tickfont.size) opts.tickSize[i] = axes.tickfont.size;\n if (axes.tickfont.weight) opts.tickFontWeight[i] = axes.tickfont.weight;\n if (axes.tickfont.style) opts.tickFontStyle[i] = axes.tickfont.style;\n if (axes.tickfont.variant) opts.tickFontVariant[i] = axes.tickfont.variant;\n }\n if (\"mirror\" in axes) {\n if ([\"ticks\", \"all\", \"allticks\"].indexOf(axes.mirror) !== -1) {\n opts.lineTickMirror[i] = true;\n opts.lineMirror[i] = true;\n } else if (axes.mirror === true) {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = true;\n } else {\n opts.lineTickMirror[i] = false;\n opts.lineMirror[i] = false;\n }\n } else opts.lineMirror[i] = false;\n if (\"showbackground\" in axes && axes.showbackground !== false) {\n opts.backgroundEnable[i] = true;\n opts.backgroundColor[i] = str2RgbaArray(axes.backgroundcolor);\n } else opts.backgroundEnable[i] = false;\n }\n };\n function createAxesOptions(fullLayout, sceneLayout) {\n var result = new AxesOptions();\n result.merge(fullLayout, sceneLayout);\n return result;\n }\n module.exports = createAxesOptions;\n }\n });\n\n // src/plots/gl3d/layout/spikes.js\n var require_spikes = __commonJS({\n \"src/plots/gl3d/layout/spikes.js\"(exports, module) {\n \"use strict\";\n var str2RGBArray = require_str2rgbarray();\n var AXES_NAMES = [\"xaxis\", \"yaxis\", \"zaxis\"];\n function SpikeOptions() {\n this.enabled = [true, true, true];\n this.colors = [\n [0, 0, 0, 1],\n [0, 0, 0, 1],\n [0, 0, 0, 1]\n ];\n this.drawSides = [true, true, true];\n this.lineWidth = [1, 1, 1];\n }\n var proto = SpikeOptions.prototype;\n proto.merge = function(sceneLayout) {\n for (var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n if (!axes.visible) {\n this.enabled[i] = false;\n this.drawSides[i] = false;\n continue;\n }\n this.enabled[i] = axes.showspikes;\n this.colors[i] = str2RGBArray(axes.spikecolor);\n this.drawSides[i] = axes.spikesides;\n this.lineWidth[i] = axes.spikethickness;\n }\n };\n function createSpikeOptions(layout) {\n var result = new SpikeOptions();\n result.merge(layout);\n return result;\n }\n module.exports = createSpikeOptions;\n }\n });\n\n // src/plots/gl3d/layout/tick_marks.js\n var require_tick_marks = __commonJS({\n \"src/plots/gl3d/layout/tick_marks.js\"(exports, module) {\n \"use strict\";\n module.exports = computeTickMarks;\n var Axes = require_axes();\n var Lib = require_lib();\n var AXES_NAMES = [\"xaxis\", \"yaxis\", \"zaxis\"];\n var centerPoint = [0, 0, 0];\n function contourLevelsFromTicks(ticks) {\n var result = new Array(3);\n for (var i = 0; i < 3; ++i) {\n var tlevel = ticks[i];\n var clevel = new Array(tlevel.length);\n for (var j = 0; j < tlevel.length; ++j) {\n clevel[j] = tlevel[j].x;\n }\n result[i] = clevel;\n }\n return result;\n }\n function computeTickMarks(scene) {\n var axesOptions = scene.axesOptions;\n var glRange = scene.glplot.axesPixels;\n var sceneLayout = scene.fullSceneLayout;\n var ticks = [[], [], []];\n for (var i = 0; i < 3; ++i) {\n var axes = sceneLayout[AXES_NAMES[i]];\n axes._length = (glRange[i].hi - glRange[i].lo) * glRange[i].pixelsPerDataUnit / scene.dataScale[i];\n if (Math.abs(axes._length) === Infinity || isNaN(axes._length)) {\n ticks[i] = [];\n } else {\n axes._input_range = axes.range.slice();\n axes.range[0] = glRange[i].lo / scene.dataScale[i];\n axes.range[1] = glRange[i].hi / scene.dataScale[i];\n axes._m = 1 / (scene.dataScale[i] * glRange[i].pixelsPerDataUnit);\n if (axes.range[0] === axes.range[1]) {\n axes.range[0] -= 1;\n axes.range[1] += 1;\n }\n var tickModeCached = axes.tickmode;\n if (axes.tickmode === \"auto\") {\n axes.tickmode = \"linear\";\n var nticks = axes.nticks || Lib.constrain(axes._length / 40, 4, 9);\n Axes.autoTicks(axes, Math.abs(axes.range[1] - axes.range[0]) / nticks);\n }\n var dataTicks = Axes.calcTicks(axes, { msUTC: true });\n for (var j = 0; j < dataTicks.length; ++j) {\n dataTicks[j].x = dataTicks[j].x * scene.dataScale[i];\n if (axes.type === \"date\") {\n dataTicks[j].text = dataTicks[j].text.replace(/\\/g, \" \");\n }\n }\n ticks[i] = dataTicks;\n axes.tickmode = tickModeCached;\n }\n }\n axesOptions.ticks = ticks;\n for (var i = 0; i < 3; ++i) {\n centerPoint[i] = 0.5 * (scene.glplot.bounds[0][i] + scene.glplot.bounds[1][i]);\n for (var j = 0; j < 2; ++j) {\n axesOptions.bounds[j][i] = scene.glplot.bounds[j][i];\n }\n }\n scene.contourLevels = contourLevelsFromTicks(ticks);\n }\n }\n });\n\n // src/plots/gl3d/scene.js\n var require_scene = __commonJS({\n \"src/plots/gl3d/scene.js\"(exports, module) {\n \"use strict\";\n var glPlot3d = require_stackgl_modules().gl_plot3d;\n var createCamera = glPlot3d.createCamera;\n var createPlot = glPlot3d.createScene;\n var getContext = require_webgl_context();\n var passiveSupported = require_has_passive_events();\n var Registry = require_registry();\n var Lib = require_lib();\n var preserveDrawingBuffer = Lib.preserveDrawingBuffer();\n var Axes = require_axes();\n var Fx = require_fx();\n var str2RGBAarray = require_str2rgbarray();\n var showNoWebGlMsg = require_show_no_webgl_msg();\n var project = require_project();\n var createAxesOptions = require_convert3();\n var createSpikeOptions = require_spikes();\n var computeTickMarks = require_tick_marks();\n var applyAutorangeOptions = require_autorange().applyAutorangeOptions;\n var STATIC_CANVAS;\n var STATIC_CONTEXT;\n var tabletmode = false;\n function Scene(options, fullLayout) {\n var sceneContainer = document.createElement(\"div\");\n var plotContainer = options.container;\n this.graphDiv = options.graphDiv;\n var svgContainer = document.createElementNS(\n \"http://www.w3.org/2000/svg\",\n \"svg\"\n );\n svgContainer.style.position = \"absolute\";\n svgContainer.style.top = svgContainer.style.left = \"0px\";\n svgContainer.style.width = svgContainer.style.height = \"100%\";\n svgContainer.style[\"z-index\"] = 20;\n svgContainer.style[\"pointer-events\"] = \"none\";\n sceneContainer.appendChild(svgContainer);\n this.svgContainer = svgContainer;\n sceneContainer.id = options.id;\n sceneContainer.style.position = \"absolute\";\n sceneContainer.style.top = sceneContainer.style.left = \"0px\";\n sceneContainer.style.width = sceneContainer.style.height = \"100%\";\n plotContainer.appendChild(sceneContainer);\n this.fullLayout = fullLayout;\n this.id = options.id || \"scene\";\n this.fullSceneLayout = fullLayout[this.id];\n this.plotArgs = [[], {}, {}];\n this.axesOptions = createAxesOptions(fullLayout, fullLayout[this.id]);\n this.spikeOptions = createSpikeOptions(fullLayout[this.id]);\n this.container = sceneContainer;\n this.staticMode = !!options.staticPlot;\n this.pixelRatio = this.pixelRatio || options.plotGlPixelRatio || 2;\n this.dataScale = [1, 1, 1];\n this.contourLevels = [[], [], []];\n this.convertAnnotations = Registry.getComponentMethod(\"annotations3d\", \"convert\");\n this.drawAnnotations = Registry.getComponentMethod(\"annotations3d\", \"draw\");\n this.initializeGLPlot();\n }\n var proto = Scene.prototype;\n proto.prepareOptions = function() {\n var scene = this;\n var opts = {\n canvas: scene.canvas,\n gl: scene.gl,\n glOptions: {\n preserveDrawingBuffer,\n premultipliedAlpha: true,\n antialias: true\n },\n container: scene.container,\n axes: scene.axesOptions,\n spikes: scene.spikeOptions,\n pickRadius: 10,\n snapToData: true,\n autoScale: true,\n autoBounds: false,\n cameraObject: scene.camera,\n pixelRatio: scene.pixelRatio\n };\n if (scene.staticMode) {\n if (!STATIC_CONTEXT) {\n STATIC_CANVAS = document.createElement(\"canvas\");\n STATIC_CONTEXT = getContext({\n canvas: STATIC_CANVAS,\n preserveDrawingBuffer: true,\n premultipliedAlpha: true,\n antialias: true\n });\n if (!STATIC_CONTEXT) {\n throw new Error(\"error creating static canvas/context for image server\");\n }\n }\n opts.gl = STATIC_CONTEXT;\n opts.canvas = STATIC_CANVAS;\n }\n return opts;\n };\n var firstInit = true;\n proto.tryCreatePlot = function() {\n var scene = this;\n var opts = scene.prepareOptions();\n var success = true;\n try {\n scene.glplot = createPlot(opts);\n } catch (e) {\n if (scene.staticMode || !firstInit || preserveDrawingBuffer) {\n success = false;\n } else {\n Lib.warn([\n \"webgl setup failed possibly due to\",\n \"false preserveDrawingBuffer config.\",\n \"The mobile/tablet device may not be detected by is-mobile module.\",\n \"Enabling preserveDrawingBuffer in second attempt to create webgl scene...\"\n ].join(\" \"));\n try {\n preserveDrawingBuffer = opts.glOptions.preserveDrawingBuffer = true;\n scene.glplot = createPlot(opts);\n } catch (e2) {\n preserveDrawingBuffer = opts.glOptions.preserveDrawingBuffer = false;\n success = false;\n }\n }\n }\n firstInit = false;\n return success;\n };\n proto.initializeGLCamera = function() {\n var scene = this;\n var cameraData = scene.fullSceneLayout.camera;\n var isOrtho = cameraData.projection.type === \"orthographic\";\n scene.camera = createCamera(scene.container, {\n center: [cameraData.center.x, cameraData.center.y, cameraData.center.z],\n eye: [cameraData.eye.x, cameraData.eye.y, cameraData.eye.z],\n up: [cameraData.up.x, cameraData.up.y, cameraData.up.z],\n _ortho: isOrtho,\n zoomMin: 0.01,\n zoomMax: 100,\n mode: \"orbit\"\n });\n };\n proto.initializeGLPlot = function() {\n var scene = this;\n scene.initializeGLCamera();\n var success = scene.tryCreatePlot();\n if (!success) return showNoWebGlMsg(scene);\n scene.traces = {};\n scene.make4thDimension();\n var gd = scene.graphDiv;\n var layout = gd.layout;\n var makeUpdate = function() {\n var update = {};\n if (scene.isCameraChanged(layout)) {\n update[scene.id + \".camera\"] = scene.getCamera();\n }\n if (scene.isAspectChanged(layout)) {\n update[scene.id + \".aspectratio\"] = scene.glplot.getAspectratio();\n if (layout[scene.id].aspectmode !== \"manual\") {\n scene.fullSceneLayout.aspectmode = layout[scene.id].aspectmode = update[scene.id + \".aspectmode\"] = \"manual\";\n }\n }\n return update;\n };\n var relayoutCallback = function(scene2) {\n if (scene2.fullSceneLayout.dragmode === false) return;\n var update = makeUpdate();\n scene2.saveLayout(layout);\n scene2.graphDiv.emit(\"plotly_relayout\", update);\n };\n if (scene.glplot.canvas) {\n scene.glplot.canvas.addEventListener(\"mouseup\", function() {\n relayoutCallback(scene);\n });\n scene.glplot.canvas.addEventListener(\"touchstart\", function() {\n tabletmode = true;\n });\n scene.glplot.canvas.addEventListener(\"wheel\", function(e) {\n if (gd._context._scrollZoom.gl3d) {\n if (scene.camera._ortho) {\n var s = e.deltaX > e.deltaY ? 1.1 : 1 / 1.1;\n var o = scene.glplot.getAspectratio();\n scene.glplot.setAspectratio({\n x: s * o.x,\n y: s * o.y,\n z: s * o.z\n });\n }\n relayoutCallback(scene);\n }\n }, passiveSupported ? { passive: false } : false);\n scene.glplot.canvas.addEventListener(\"mousemove\", function() {\n if (scene.fullSceneLayout.dragmode === false) return;\n if (scene.camera.mouseListener.buttons === 0) return;\n var update = makeUpdate();\n scene.graphDiv.emit(\"plotly_relayouting\", update);\n });\n if (!scene.staticMode) {\n scene.glplot.canvas.addEventListener(\"webglcontextlost\", function(event) {\n if (gd && gd.emit) {\n gd.emit(\"plotly_webglcontextlost\", {\n event,\n layer: scene.id\n });\n }\n }, false);\n }\n }\n scene.glplot.oncontextloss = function() {\n scene.recoverContext();\n };\n scene.glplot.onrender = function() {\n scene.render();\n };\n return true;\n };\n proto.render = function() {\n var scene = this;\n var gd = scene.graphDiv;\n var trace;\n var svgContainer = scene.svgContainer;\n var clientRect = scene.container.getBoundingClientRect();\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var width = clientRect.width * scaleX;\n var height = clientRect.height * scaleY;\n svgContainer.setAttributeNS(null, \"viewBox\", \"0 0 \" + width + \" \" + height);\n svgContainer.setAttributeNS(null, \"width\", width);\n svgContainer.setAttributeNS(null, \"height\", height);\n computeTickMarks(scene);\n scene.glplot.axes.update(scene.axesOptions);\n var keys = Object.keys(scene.traces);\n var lastPicked = null;\n var selection = scene.glplot.selection;\n for (var i = 0; i < keys.length; ++i) {\n trace = scene.traces[keys[i]];\n if (trace.data.hoverinfo !== \"skip\" && trace.handlePick(selection)) {\n lastPicked = trace;\n }\n if (trace.setContourLevels) trace.setContourLevels();\n }\n function formatter(axLetter, val, hoverformat) {\n var ax = scene.fullSceneLayout[axLetter + \"axis\"];\n if (ax.type !== \"log\") {\n val = ax.d2l(val);\n }\n return Axes.hoverLabelText(ax, val, hoverformat);\n }\n if (lastPicked !== null) {\n var pdata = project(scene.glplot.cameraParams, selection.dataCoordinate);\n trace = lastPicked.data;\n var traceNow = gd._fullData[trace.index];\n var ptNumber = selection.index;\n var labels = {\n xLabel: formatter(\"x\", selection.traceCoordinate[0], trace.xhoverformat),\n yLabel: formatter(\"y\", selection.traceCoordinate[1], trace.yhoverformat),\n zLabel: formatter(\"z\", selection.traceCoordinate[2], trace.zhoverformat)\n };\n var hoverinfo = Fx.castHoverinfo(traceNow, scene.fullLayout, ptNumber);\n var hoverinfoParts = (hoverinfo || \"\").split(\"+\");\n var isHoverinfoAll = hoverinfo && hoverinfo === \"all\";\n if (!traceNow.hovertemplate && !isHoverinfoAll) {\n if (hoverinfoParts.indexOf(\"x\") === -1) labels.xLabel = void 0;\n if (hoverinfoParts.indexOf(\"y\") === -1) labels.yLabel = void 0;\n if (hoverinfoParts.indexOf(\"z\") === -1) labels.zLabel = void 0;\n if (hoverinfoParts.indexOf(\"text\") === -1) selection.textLabel = void 0;\n if (hoverinfoParts.indexOf(\"name\") === -1) lastPicked.name = void 0;\n }\n var tx;\n var vectorTx = [];\n if (trace.type === \"cone\" || trace.type === \"streamtube\") {\n labels.uLabel = formatter(\"x\", selection.traceCoordinate[3], trace.uhoverformat);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"u\") !== -1) {\n vectorTx.push(\"u: \" + labels.uLabel);\n }\n labels.vLabel = formatter(\"y\", selection.traceCoordinate[4], trace.vhoverformat);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"v\") !== -1) {\n vectorTx.push(\"v: \" + labels.vLabel);\n }\n labels.wLabel = formatter(\"z\", selection.traceCoordinate[5], trace.whoverformat);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"w\") !== -1) {\n vectorTx.push(\"w: \" + labels.wLabel);\n }\n labels.normLabel = selection.traceCoordinate[6].toPrecision(3);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"norm\") !== -1) {\n vectorTx.push(\"norm: \" + labels.normLabel);\n }\n if (trace.type === \"streamtube\") {\n labels.divergenceLabel = selection.traceCoordinate[7].toPrecision(3);\n if (isHoverinfoAll || hoverinfoParts.indexOf(\"divergence\") !== -1) {\n vectorTx.push(\"divergence: \" + labels.divergenceLabel);\n }\n }\n if (selection.textLabel) {\n vectorTx.push(selection.textLabel);\n }\n tx = vectorTx.join(\"
\");\n } else if (trace.type === \"isosurface\" || trace.type === \"volume\") {\n labels.valueLabel = Axes.hoverLabelText(scene._mockAxis, scene._mockAxis.d2l(selection.traceCoordinate[3]), trace.valuehoverformat);\n vectorTx.push(\"value: \" + labels.valueLabel);\n if (selection.textLabel) {\n vectorTx.push(selection.textLabel);\n }\n tx = vectorTx.join(\"
\");\n } else {\n tx = selection.textLabel;\n }\n var pointData = {\n x: selection.traceCoordinate[0],\n y: selection.traceCoordinate[1],\n z: selection.traceCoordinate[2],\n data: traceNow._input,\n fullData: traceNow,\n curveNumber: traceNow.index,\n pointNumber: ptNumber\n };\n Fx.appendArrayPointValue(pointData, traceNow, ptNumber);\n if (trace._module.eventData) {\n pointData = traceNow._module.eventData(pointData, selection, traceNow, {}, ptNumber);\n }\n var eventData = { points: [pointData] };\n if (scene.fullSceneLayout.hovermode) {\n var bbox = [];\n Fx.loneHover({\n trace: traceNow,\n x: (0.5 + 0.5 * pdata[0] / pdata[3]) * width,\n y: (0.5 - 0.5 * pdata[1] / pdata[3]) * height,\n xLabel: labels.xLabel,\n yLabel: labels.yLabel,\n zLabel: labels.zLabel,\n text: tx,\n name: lastPicked.name,\n color: Fx.castHoverOption(traceNow, ptNumber, \"bgcolor\") || lastPicked.color,\n borderColor: Fx.castHoverOption(traceNow, ptNumber, \"bordercolor\"),\n fontFamily: Fx.castHoverOption(traceNow, ptNumber, \"font.family\"),\n fontSize: Fx.castHoverOption(traceNow, ptNumber, \"font.size\"),\n fontColor: Fx.castHoverOption(traceNow, ptNumber, \"font.color\"),\n nameLength: Fx.castHoverOption(traceNow, ptNumber, \"namelength\"),\n textAlign: Fx.castHoverOption(traceNow, ptNumber, \"align\"),\n hovertemplate: Lib.castOption(traceNow, ptNumber, \"hovertemplate\"),\n hovertemplateLabels: Lib.extendFlat({}, pointData, labels),\n eventData: [pointData]\n }, {\n container: svgContainer,\n gd,\n inOut_bbox: bbox\n });\n pointData.bbox = bbox[0];\n }\n if (selection.distance < 5 && (selection.buttons || tabletmode)) {\n gd.emit(\"plotly_click\", eventData);\n } else {\n gd.emit(\"plotly_hover\", eventData);\n }\n this.oldEventData = eventData;\n } else {\n Fx.loneUnhover(svgContainer);\n if (this.oldEventData) gd.emit(\"plotly_unhover\", this.oldEventData);\n this.oldEventData = void 0;\n }\n scene.drawAnnotations(scene);\n };\n proto.recoverContext = function() {\n var scene = this;\n scene.glplot.dispose();\n var tryRecover = function() {\n if (scene.glplot.gl.isContextLost()) {\n requestAnimationFrame(tryRecover);\n return;\n }\n if (!scene.initializeGLPlot()) {\n Lib.error(\"Catastrophic and unrecoverable WebGL error. Context lost.\");\n return;\n }\n scene.plot.apply(scene, scene.plotArgs);\n };\n requestAnimationFrame(tryRecover);\n };\n var axisProperties = [\"xaxis\", \"yaxis\", \"zaxis\"];\n function computeTraceBounds(scene, trace, bounds) {\n var fullSceneLayout = scene.fullSceneLayout;\n for (var d = 0; d < 3; d++) {\n var axisName = axisProperties[d];\n var axLetter = axisName.charAt(0);\n var ax = fullSceneLayout[axisName];\n var coords = trace[axLetter];\n var calendar = trace[axLetter + \"calendar\"];\n var len = trace[\"_\" + axLetter + \"length\"];\n if (!Lib.isArrayOrTypedArray(coords)) {\n bounds[0][d] = Math.min(bounds[0][d], 0);\n bounds[1][d] = Math.max(bounds[1][d], len - 1);\n } else {\n var v;\n for (var i = 0; i < (len || coords.length); i++) {\n if (Lib.isArrayOrTypedArray(coords[i])) {\n for (var j = 0; j < coords[i].length; ++j) {\n v = ax.d2l(coords[i][j], 0, calendar);\n if (!isNaN(v) && isFinite(v)) {\n bounds[0][d] = Math.min(bounds[0][d], v);\n bounds[1][d] = Math.max(bounds[1][d], v);\n }\n }\n } else {\n v = ax.d2l(coords[i], 0, calendar);\n if (!isNaN(v) && isFinite(v)) {\n bounds[0][d] = Math.min(bounds[0][d], v);\n bounds[1][d] = Math.max(bounds[1][d], v);\n }\n }\n }\n }\n }\n }\n function computeAnnotationBounds(scene, bounds) {\n var fullSceneLayout = scene.fullSceneLayout;\n var annotations = fullSceneLayout.annotations || [];\n for (var d = 0; d < 3; d++) {\n var axisName = axisProperties[d];\n var axLetter = axisName.charAt(0);\n var ax = fullSceneLayout[axisName];\n for (var j = 0; j < annotations.length; j++) {\n var ann = annotations[j];\n if (ann.visible) {\n var pos = ax.r2l(ann[axLetter]);\n if (!isNaN(pos) && isFinite(pos)) {\n bounds[0][d] = Math.min(bounds[0][d], pos);\n bounds[1][d] = Math.max(bounds[1][d], pos);\n }\n }\n }\n }\n }\n proto.plot = function(sceneData, fullLayout, layout) {\n var scene = this;\n scene.plotArgs = [sceneData, fullLayout, layout];\n if (scene.glplot.contextLost) return;\n var data, trace;\n var i, j, axis, axisType;\n var fullSceneLayout = fullLayout[scene.id];\n var sceneLayout = layout[scene.id];\n scene.fullLayout = fullLayout;\n scene.fullSceneLayout = fullSceneLayout;\n scene.axesOptions.merge(fullLayout, fullSceneLayout);\n scene.spikeOptions.merge(fullSceneLayout);\n scene.setViewport(fullSceneLayout);\n scene.updateFx(fullSceneLayout.dragmode, fullSceneLayout.hovermode);\n scene.camera.enableWheel = scene.graphDiv._context._scrollZoom.gl3d;\n scene.glplot.setClearColor(str2RGBAarray(fullSceneLayout.bgcolor));\n scene.setConvert(axis);\n if (!sceneData) sceneData = [];\n else if (!Array.isArray(sceneData)) sceneData = [sceneData];\n var dataBounds = [\n [Infinity, Infinity, Infinity],\n [-Infinity, -Infinity, -Infinity]\n ];\n for (i = 0; i < sceneData.length; ++i) {\n data = sceneData[i];\n if (data.visible !== true || data._length === 0) continue;\n computeTraceBounds(this, data, dataBounds);\n }\n computeAnnotationBounds(this, dataBounds);\n var dataScale = [1, 1, 1];\n for (j = 0; j < 3; ++j) {\n if (dataBounds[1][j] === dataBounds[0][j]) {\n dataScale[j] = 1;\n } else {\n dataScale[j] = 1 / (dataBounds[1][j] - dataBounds[0][j]);\n }\n }\n scene.dataScale = dataScale;\n scene.convertAnnotations(this);\n for (i = 0; i < sceneData.length; ++i) {\n data = sceneData[i];\n if (data.visible !== true || data._length === 0) {\n continue;\n }\n trace = scene.traces[data.uid];\n if (trace) {\n if (trace.data.type === data.type) {\n trace.update(data);\n } else {\n trace.dispose();\n trace = data._module.plot(this, data);\n scene.traces[data.uid] = trace;\n }\n } else {\n trace = data._module.plot(this, data);\n scene.traces[data.uid] = trace;\n }\n trace.name = data.name;\n }\n var traceIds = Object.keys(scene.traces);\n traceIdLoop:\n for (i = 0; i < traceIds.length; ++i) {\n for (j = 0; j < sceneData.length; ++j) {\n if (sceneData[j].uid === traceIds[i] && (sceneData[j].visible === true && sceneData[j]._length !== 0)) {\n continue traceIdLoop;\n }\n }\n trace = scene.traces[traceIds[i]];\n trace.dispose();\n delete scene.traces[traceIds[i]];\n }\n scene.glplot.objects.sort(function(a, b) {\n return a._trace.data.index - b._trace.data.index;\n });\n var sceneBounds = [[0, 0, 0], [0, 0, 0]];\n var axisDataRange = [];\n var axisTypeRatios = {};\n for (i = 0; i < 3; ++i) {\n axis = fullSceneLayout[axisProperties[i]];\n axisType = axis.type;\n if (axisType in axisTypeRatios) {\n axisTypeRatios[axisType].acc *= dataScale[i];\n axisTypeRatios[axisType].count += 1;\n } else {\n axisTypeRatios[axisType] = {\n acc: dataScale[i],\n count: 1\n };\n }\n var range;\n if (axis.autorange) {\n sceneBounds[0][i] = Infinity;\n sceneBounds[1][i] = -Infinity;\n var objects = scene.glplot.objects;\n var annotations = scene.fullSceneLayout.annotations || [];\n var axLetter = axis._name.charAt(0);\n for (j = 0; j < objects.length; j++) {\n var obj = objects[j];\n var objBounds = obj.bounds;\n var pad = obj._trace.data._pad || 0;\n if (obj.constructor.name === \"ErrorBars\" && axis._lowerLogErrorBound) {\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], axis._lowerLogErrorBound);\n } else {\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], objBounds[0][i] / dataScale[i] - pad);\n }\n sceneBounds[1][i] = Math.max(sceneBounds[1][i], objBounds[1][i] / dataScale[i] + pad);\n }\n for (j = 0; j < annotations.length; j++) {\n var ann = annotations[j];\n if (ann.visible) {\n var pos = axis.r2l(ann[axLetter]);\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], pos);\n sceneBounds[1][i] = Math.max(sceneBounds[1][i], pos);\n }\n }\n if (\"rangemode\" in axis && axis.rangemode === \"tozero\") {\n sceneBounds[0][i] = Math.min(sceneBounds[0][i], 0);\n sceneBounds[1][i] = Math.max(sceneBounds[1][i], 0);\n }\n if (sceneBounds[0][i] > sceneBounds[1][i]) {\n sceneBounds[0][i] = -1;\n sceneBounds[1][i] = 1;\n } else {\n var d = sceneBounds[1][i] - sceneBounds[0][i];\n sceneBounds[0][i] -= d / 32;\n sceneBounds[1][i] += d / 32;\n }\n range = [\n sceneBounds[0][i],\n sceneBounds[1][i]\n ];\n range = applyAutorangeOptions(range, axis);\n sceneBounds[0][i] = range[0];\n sceneBounds[1][i] = range[1];\n if (axis.isReversed()) {\n var tmp = sceneBounds[0][i];\n sceneBounds[0][i] = sceneBounds[1][i];\n sceneBounds[1][i] = tmp;\n }\n } else {\n range = axis.range;\n sceneBounds[0][i] = axis.r2l(range[0]);\n sceneBounds[1][i] = axis.r2l(range[1]);\n }\n if (sceneBounds[0][i] === sceneBounds[1][i]) {\n sceneBounds[0][i] -= 1;\n sceneBounds[1][i] += 1;\n }\n axisDataRange[i] = sceneBounds[1][i] - sceneBounds[0][i];\n axis.range = [\n sceneBounds[0][i],\n sceneBounds[1][i]\n ];\n axis.limitRange();\n scene.glplot.setBounds(i, {\n min: axis.range[0] * dataScale[i],\n max: axis.range[1] * dataScale[i]\n });\n }\n var aspectRatio;\n var aspectmode = fullSceneLayout.aspectmode;\n if (aspectmode === \"cube\") {\n aspectRatio = [1, 1, 1];\n } else if (aspectmode === \"manual\") {\n var userRatio = fullSceneLayout.aspectratio;\n aspectRatio = [userRatio.x, userRatio.y, userRatio.z];\n } else if (aspectmode === \"auto\" || aspectmode === \"data\") {\n var axesScaleRatio = [1, 1, 1];\n for (i = 0; i < 3; ++i) {\n axis = fullSceneLayout[axisProperties[i]];\n axisType = axis.type;\n var axisRatio = axisTypeRatios[axisType];\n axesScaleRatio[i] = Math.pow(axisRatio.acc, 1 / axisRatio.count) / dataScale[i];\n }\n if (aspectmode === \"data\") {\n aspectRatio = axesScaleRatio;\n } else {\n if (Math.max.apply(null, axesScaleRatio) / Math.min.apply(null, axesScaleRatio) <= 4) {\n aspectRatio = axesScaleRatio;\n } else {\n aspectRatio = [1, 1, 1];\n }\n }\n } else {\n throw new Error(\"scene.js aspectRatio was not one of the enumerated types\");\n }\n fullSceneLayout.aspectratio.x = sceneLayout.aspectratio.x = aspectRatio[0];\n fullSceneLayout.aspectratio.y = sceneLayout.aspectratio.y = aspectRatio[1];\n fullSceneLayout.aspectratio.z = sceneLayout.aspectratio.z = aspectRatio[2];\n scene.glplot.setAspectratio(fullSceneLayout.aspectratio);\n if (!scene.viewInitial.aspectratio) {\n scene.viewInitial.aspectratio = {\n x: fullSceneLayout.aspectratio.x,\n y: fullSceneLayout.aspectratio.y,\n z: fullSceneLayout.aspectratio.z\n };\n }\n if (!scene.viewInitial.aspectmode) {\n scene.viewInitial.aspectmode = fullSceneLayout.aspectmode;\n }\n var domain = fullSceneLayout.domain || null;\n var size = fullLayout._size || null;\n if (domain && size) {\n var containerStyle = scene.container.style;\n containerStyle.position = \"absolute\";\n containerStyle.left = size.l + domain.x[0] * size.w + \"px\";\n containerStyle.top = size.t + (1 - domain.y[1]) * size.h + \"px\";\n containerStyle.width = size.w * (domain.x[1] - domain.x[0]) + \"px\";\n containerStyle.height = size.h * (domain.y[1] - domain.y[0]) + \"px\";\n }\n scene.glplot.redraw();\n };\n proto.destroy = function() {\n var scene = this;\n if (!scene.glplot) return;\n scene.camera.mouseListener.enabled = false;\n scene.container.removeEventListener(\"wheel\", scene.camera.wheelListener);\n scene.camera = null;\n scene.glplot.dispose();\n scene.container.parentNode.removeChild(scene.container);\n scene.glplot = null;\n };\n function getCameraArrays(camera) {\n return [\n [camera.eye.x, camera.eye.y, camera.eye.z],\n [camera.center.x, camera.center.y, camera.center.z],\n [camera.up.x, camera.up.y, camera.up.z]\n ];\n }\n function getLayoutCamera(camera) {\n return {\n up: { x: camera.up[0], y: camera.up[1], z: camera.up[2] },\n center: { x: camera.center[0], y: camera.center[1], z: camera.center[2] },\n eye: { x: camera.eye[0], y: camera.eye[1], z: camera.eye[2] },\n projection: { type: camera._ortho === true ? \"orthographic\" : \"perspective\" }\n };\n }\n proto.getCamera = function() {\n var scene = this;\n scene.camera.view.recalcMatrix(scene.camera.view.lastT());\n return getLayoutCamera(scene.camera);\n };\n proto.setViewport = function(sceneLayout) {\n var scene = this;\n var cameraData = sceneLayout.camera;\n scene.camera.lookAt.apply(this, getCameraArrays(cameraData));\n scene.glplot.setAspectratio(sceneLayout.aspectratio);\n var newOrtho = cameraData.projection.type === \"orthographic\";\n var oldOrtho = scene.camera._ortho;\n if (newOrtho !== oldOrtho) {\n scene.glplot.redraw();\n scene.glplot.clearRGBA();\n scene.glplot.dispose();\n scene.initializeGLPlot();\n }\n };\n proto.isCameraChanged = function(layout) {\n var scene = this;\n var cameraData = scene.getCamera();\n var cameraNestedProp = Lib.nestedProperty(layout, scene.id + \".camera\");\n var cameraDataLastSave = cameraNestedProp.get();\n function same(x, y, i2, j2) {\n var vectors = [\"up\", \"center\", \"eye\"];\n var components = [\"x\", \"y\", \"z\"];\n return y[vectors[i2]] && x[vectors[i2]][components[j2]] === y[vectors[i2]][components[j2]];\n }\n var changed = false;\n if (cameraDataLastSave === void 0) {\n changed = true;\n } else {\n for (var i = 0; i < 3; i++) {\n for (var j = 0; j < 3; j++) {\n if (!same(cameraData, cameraDataLastSave, i, j)) {\n changed = true;\n break;\n }\n }\n }\n if (!cameraDataLastSave.projection || cameraData.projection && cameraData.projection.type !== cameraDataLastSave.projection.type) {\n changed = true;\n }\n }\n return changed;\n };\n proto.isAspectChanged = function(layout) {\n var scene = this;\n var aspectData = scene.glplot.getAspectratio();\n var aspectNestedProp = Lib.nestedProperty(layout, scene.id + \".aspectratio\");\n var aspectDataLastSave = aspectNestedProp.get();\n return aspectDataLastSave === void 0 || (aspectDataLastSave.x !== aspectData.x || aspectDataLastSave.y !== aspectData.y || aspectDataLastSave.z !== aspectData.z);\n };\n proto.saveLayout = function(layout) {\n var scene = this;\n var fullLayout = scene.fullLayout;\n var cameraData;\n var cameraNestedProp;\n var cameraDataLastSave;\n var aspectData;\n var aspectNestedProp;\n var aspectDataLastSave;\n var cameraChanged = scene.isCameraChanged(layout);\n var aspectChanged = scene.isAspectChanged(layout);\n var hasChanged = cameraChanged || aspectChanged;\n if (hasChanged) {\n var preGUI = {};\n if (cameraChanged) {\n cameraData = scene.getCamera();\n cameraNestedProp = Lib.nestedProperty(layout, scene.id + \".camera\");\n cameraDataLastSave = cameraNestedProp.get();\n preGUI[scene.id + \".camera\"] = cameraDataLastSave;\n }\n if (aspectChanged) {\n aspectData = scene.glplot.getAspectratio();\n aspectNestedProp = Lib.nestedProperty(layout, scene.id + \".aspectratio\");\n aspectDataLastSave = aspectNestedProp.get();\n preGUI[scene.id + \".aspectratio\"] = aspectDataLastSave;\n }\n Registry.call(\"_storeDirectGUIEdit\", layout, fullLayout._preGUI, preGUI);\n if (cameraChanged) {\n cameraNestedProp.set(cameraData);\n var cameraFullNP = Lib.nestedProperty(fullLayout, scene.id + \".camera\");\n cameraFullNP.set(cameraData);\n }\n if (aspectChanged) {\n aspectNestedProp.set(aspectData);\n var aspectFullNP = Lib.nestedProperty(fullLayout, scene.id + \".aspectratio\");\n aspectFullNP.set(aspectData);\n scene.glplot.redraw();\n }\n }\n return hasChanged;\n };\n proto.updateFx = function(dragmode, hovermode) {\n var scene = this;\n var camera = scene.camera;\n if (camera) {\n if (dragmode === \"orbit\") {\n camera.mode = \"orbit\";\n camera.keyBindingMode = \"rotate\";\n } else if (dragmode === \"turntable\") {\n camera.up = [0, 0, 1];\n camera.mode = \"turntable\";\n camera.keyBindingMode = \"rotate\";\n var gd = scene.graphDiv;\n var fullLayout = gd._fullLayout;\n var fullCamera = scene.fullSceneLayout.camera;\n var x = fullCamera.up.x;\n var y = fullCamera.up.y;\n var z = fullCamera.up.z;\n if (z / Math.sqrt(x * x + y * y + z * z) < 0.999) {\n var attr = scene.id + \".camera.up\";\n var zUp = { x: 0, y: 0, z: 1 };\n var edits = {};\n edits[attr] = zUp;\n var layout = gd.layout;\n Registry.call(\"_storeDirectGUIEdit\", layout, fullLayout._preGUI, edits);\n fullCamera.up = zUp;\n Lib.nestedProperty(layout, attr).set(zUp);\n }\n } else {\n camera.keyBindingMode = dragmode;\n }\n }\n scene.fullSceneLayout.hovermode = hovermode;\n };\n function flipPixels(pixels, w, h) {\n for (var i = 0, q = h - 1; i < q; ++i, --q) {\n for (var j = 0; j < w; ++j) {\n for (var k = 0; k < 4; ++k) {\n var a = 4 * (w * i + j) + k;\n var b = 4 * (w * q + j) + k;\n var tmp = pixels[a];\n pixels[a] = pixels[b];\n pixels[b] = tmp;\n }\n }\n }\n }\n function correctRGB(pixels, w, h) {\n for (var i = 0; i < h; ++i) {\n for (var j = 0; j < w; ++j) {\n var k = 4 * (w * i + j);\n var a = pixels[k + 3];\n if (a > 0) {\n var q = 255 / a;\n for (var l = 0; l < 3; ++l) {\n pixels[k + l] = Math.min(q * pixels[k + l], 255);\n }\n }\n }\n }\n }\n proto.toImage = function(format) {\n var scene = this;\n if (!format) format = \"png\";\n if (scene.staticMode) scene.container.appendChild(STATIC_CANVAS);\n scene.glplot.redraw();\n var gl2 = scene.glplot.gl;\n var w = gl2.drawingBufferWidth;\n var h = gl2.drawingBufferHeight;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, null);\n var pixels = new Uint8Array(w * h * 4);\n gl2.readPixels(0, 0, w, h, gl2.RGBA, gl2.UNSIGNED_BYTE, pixels);\n flipPixels(pixels, w, h);\n correctRGB(pixels, w, h);\n var canvas = document.createElement(\"canvas\");\n canvas.width = w;\n canvas.height = h;\n var context = canvas.getContext(\"2d\", { willReadFrequently: true });\n var imageData = context.createImageData(w, h);\n imageData.data.set(pixels);\n context.putImageData(imageData, 0, 0);\n var dataURL;\n switch (format) {\n case \"jpeg\":\n dataURL = canvas.toDataURL(\"image/jpeg\");\n break;\n case \"webp\":\n dataURL = canvas.toDataURL(\"image/webp\");\n break;\n default:\n dataURL = canvas.toDataURL(\"image/png\");\n }\n if (scene.staticMode) scene.container.removeChild(STATIC_CANVAS);\n return dataURL;\n };\n proto.setConvert = function() {\n var scene = this;\n for (var i = 0; i < 3; i++) {\n var ax = scene.fullSceneLayout[axisProperties[i]];\n Axes.setConvert(ax, scene.fullLayout);\n ax.setScale = Lib.noop;\n }\n };\n proto.make4thDimension = function() {\n var scene = this;\n var gd = scene.graphDiv;\n var fullLayout = gd._fullLayout;\n scene._mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(scene._mockAxis, fullLayout);\n };\n module.exports = Scene;\n }\n });\n\n // src/plots/gl3d/layout/attributes.js\n var require_attributes41 = __commonJS({\n \"src/plots/gl3d/layout/attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n scene: {\n valType: \"subplotid\",\n dflt: \"scene\",\n editType: \"calc+clearAxisTypes\"\n }\n };\n }\n });\n\n // src/plots/gl3d/layout/axis_attributes.js\n var require_axis_attributes = __commonJS({\n \"src/plots/gl3d/layout/axis_attributes.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var axesAttrs = require_layout_attributes4();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n module.exports = overrideAll({\n visible: axesAttrs.visible,\n showspikes: {\n valType: \"boolean\",\n dflt: true\n },\n spikesides: {\n valType: \"boolean\",\n dflt: true\n },\n spikethickness: {\n valType: \"number\",\n min: 0,\n dflt: 2\n },\n spikecolor: {\n valType: \"color\",\n dflt: Color2.defaultLine\n },\n showbackground: {\n valType: \"boolean\",\n dflt: false\n },\n backgroundcolor: {\n valType: \"color\",\n dflt: \"rgba(204, 204, 204, 0.5)\"\n },\n showaxeslabels: {\n valType: \"boolean\",\n dflt: true\n },\n color: axesAttrs.color,\n categoryorder: axesAttrs.categoryorder,\n categoryarray: axesAttrs.categoryarray,\n title: {\n text: axesAttrs.title.text,\n font: axesAttrs.title.font\n },\n type: extendFlat({}, axesAttrs.type, {\n values: [\"-\", \"linear\", \"log\", \"date\", \"category\"]\n }),\n autotypenumbers: axesAttrs.autotypenumbers,\n autorange: axesAttrs.autorange,\n autorangeoptions: {\n minallowed: axesAttrs.autorangeoptions.minallowed,\n maxallowed: axesAttrs.autorangeoptions.maxallowed,\n clipmin: axesAttrs.autorangeoptions.clipmin,\n clipmax: axesAttrs.autorangeoptions.clipmax,\n include: axesAttrs.autorangeoptions.include,\n editType: \"plot\"\n },\n rangemode: axesAttrs.rangemode,\n minallowed: axesAttrs.minallowed,\n maxallowed: axesAttrs.maxallowed,\n range: extendFlat({}, axesAttrs.range, {\n items: [\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } },\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } }\n ],\n anim: false\n }),\n // ticks\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n mirror: axesAttrs.mirror,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n separatethousands: axesAttrs.separatethousands,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n hoverformat: axesAttrs.hoverformat,\n // lines and grids\n showline: axesAttrs.showline,\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: axesAttrs.showgrid,\n gridcolor: extendFlat(\n {},\n axesAttrs.gridcolor,\n // shouldn't this be on-par with 2D?\n { dflt: \"rgb(204, 204, 204)\" }\n ),\n gridwidth: axesAttrs.gridwidth,\n zeroline: axesAttrs.zeroline,\n zerolinecolor: axesAttrs.zerolinecolor,\n zerolinewidth: axesAttrs.zerolinewidth\n }, \"plot\", \"from-root\");\n }\n });\n\n // src/plots/gl3d/layout/layout_attributes.js\n var require_layout_attributes17 = __commonJS({\n \"src/plots/gl3d/layout/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var gl3dAxisAttrs = require_axis_attributes();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_extend().extendFlat;\n var counterRegex = require_lib().counterRegex;\n function makeCameraVector(x, y, z) {\n return {\n x: {\n valType: \"number\",\n dflt: x,\n editType: \"camera\"\n },\n y: {\n valType: \"number\",\n dflt: y,\n editType: \"camera\"\n },\n z: {\n valType: \"number\",\n dflt: z,\n editType: \"camera\"\n },\n editType: \"camera\"\n };\n }\n module.exports = {\n _arrayAttrRegexps: [counterRegex(\"scene\", \".annotations\", true)],\n bgcolor: {\n valType: \"color\",\n dflt: \"rgba(0,0,0,0)\",\n editType: \"plot\"\n },\n camera: {\n up: extendFlat(makeCameraVector(0, 0, 1), {}),\n center: extendFlat(makeCameraVector(0, 0, 0), {}),\n eye: extendFlat(makeCameraVector(1.25, 1.25, 1.25), {}),\n projection: {\n type: {\n valType: \"enumerated\",\n values: [\"perspective\", \"orthographic\"],\n dflt: \"perspective\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n editType: \"camera\"\n },\n domain: domainAttrs({ name: \"scene\", editType: \"plot\" }),\n aspectmode: {\n valType: \"enumerated\",\n values: [\"auto\", \"cube\", \"data\", \"manual\"],\n dflt: \"auto\",\n editType: \"plot\",\n impliedEdits: {\n \"aspectratio.x\": void 0,\n \"aspectratio.y\": void 0,\n \"aspectratio.z\": void 0\n }\n },\n aspectratio: {\n // must be positive (0's are coerced to 1)\n x: {\n valType: \"number\",\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^aspectmode\": \"manual\" }\n },\n y: {\n valType: \"number\",\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^aspectmode\": \"manual\" }\n },\n z: {\n valType: \"number\",\n min: 0,\n editType: \"plot\",\n impliedEdits: { \"^aspectmode\": \"manual\" }\n },\n editType: \"plot\",\n impliedEdits: { aspectmode: \"manual\" }\n },\n xaxis: gl3dAxisAttrs,\n yaxis: gl3dAxisAttrs,\n zaxis: gl3dAxisAttrs,\n dragmode: {\n valType: \"enumerated\",\n values: [\"orbit\", \"turntable\", \"zoom\", \"pan\", false],\n editType: \"plot\"\n },\n hovermode: {\n valType: \"enumerated\",\n values: [\"closest\", false],\n dflt: \"closest\",\n editType: \"modebar\"\n },\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"plot\"\n };\n }\n });\n\n // src/plots/gl3d/layout/axis_defaults.js\n var require_axis_defaults2 = __commonJS({\n \"src/plots/gl3d/layout/axis_defaults.js\"(exports, module) {\n \"use strict\";\n var colorMix = require_tinycolor().mix;\n var Lib = require_lib();\n var Template = require_plot_template();\n var layoutAttributes = require_axis_attributes();\n var handleTypeDefaults = require_type_defaults();\n var handleAxisDefaults = require_axis_defaults();\n var axesNames = [\"xaxis\", \"yaxis\", \"zaxis\"];\n var gridLightness = 100 * (204 - 68) / (255 - 68);\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, options) {\n var containerIn, containerOut;\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, layoutAttributes, attr, dflt);\n }\n for (var j = 0; j < axesNames.length; j++) {\n var axName = axesNames[j];\n containerIn = layoutIn[axName] || {};\n containerOut = Template.newContainer(layoutOut, axName);\n containerOut._id = axName[0] + options.scene;\n containerOut._name = axName;\n handleTypeDefaults(containerIn, containerOut, coerce, options);\n handleAxisDefaults(\n containerIn,\n containerOut,\n coerce,\n {\n font: options.font,\n letter: axName[0],\n data: options.data,\n showGrid: true,\n noAutotickangles: true,\n noTicklabelindex: true,\n noTickson: true,\n noTicklabelmode: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n noTicklabelstep: true,\n noTicklabelposition: true,\n noTicklabeloverflow: true,\n noInsiderange: true,\n bgColor: options.bgColor,\n calendar: options.calendar\n },\n options.fullLayout\n );\n coerce(\"gridcolor\", colorMix(containerOut.color, options.bgColor, gridLightness).toRgbString());\n coerce(\"title.text\", axName[0]);\n containerOut.setScale = Lib.noop;\n if (coerce(\"showspikes\")) {\n coerce(\"spikesides\");\n coerce(\"spikethickness\");\n coerce(\"spikecolor\", containerOut.color);\n }\n coerce(\"showaxeslabels\");\n if (coerce(\"showbackground\")) coerce(\"backgroundcolor\");\n }\n };\n }\n });\n\n // src/plots/gl3d/layout/defaults.js\n var require_defaults37 = __commonJS({\n \"src/plots/gl3d/layout/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Registry = require_registry();\n var handleSubplotDefaults = require_subplot_defaults();\n var supplyGl3dAxisLayoutDefaults = require_axis_defaults2();\n var layoutAttributes = require_layout_attributes17();\n var getSubplotData = require_get_data().getSubplotData;\n var GL3D = \"gl3d\";\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n var hasNon3D = layoutOut._basePlotModules.length > 1;\n function getDfltFromLayout(attr) {\n if (hasNon3D) return;\n var isValid = Lib.validate(layoutIn[attr], layoutAttributes[attr]);\n if (isValid) return layoutIn[attr];\n }\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: GL3D,\n attributes: layoutAttributes,\n handleDefaults: handleGl3dDefaults,\n fullLayout: layoutOut,\n font: layoutOut.font,\n fullData,\n getDfltFromLayout,\n autotypenumbersDflt: layoutOut.autotypenumbers,\n paper_bgcolor: layoutOut.paper_bgcolor,\n calendar: layoutOut.calendar\n });\n };\n function handleGl3dDefaults(sceneLayoutIn, sceneLayoutOut, coerce, opts) {\n var bgcolor = coerce(\"bgcolor\");\n var bgColorCombined = Color2.combine(bgcolor, opts.paper_bgcolor);\n var cameraKeys = [\"up\", \"center\", \"eye\"];\n for (var j = 0; j < cameraKeys.length; j++) {\n coerce(\"camera.\" + cameraKeys[j] + \".x\");\n coerce(\"camera.\" + cameraKeys[j] + \".y\");\n coerce(\"camera.\" + cameraKeys[j] + \".z\");\n }\n coerce(\"camera.projection.type\");\n var hasAspect = !!coerce(\"aspectratio.x\") && !!coerce(\"aspectratio.y\") && !!coerce(\"aspectratio.z\");\n var defaultAspectMode = hasAspect ? \"manual\" : \"auto\";\n var aspectMode = coerce(\"aspectmode\", defaultAspectMode);\n if (!hasAspect) {\n sceneLayoutIn.aspectratio = sceneLayoutOut.aspectratio = { x: 1, y: 1, z: 1 };\n if (aspectMode === \"manual\") sceneLayoutOut.aspectmode = \"auto\";\n sceneLayoutIn.aspectmode = sceneLayoutOut.aspectmode;\n }\n var fullGl3dData = getSubplotData(opts.fullData, GL3D, opts.id);\n supplyGl3dAxisLayoutDefaults(sceneLayoutIn, sceneLayoutOut, {\n font: opts.font,\n scene: opts.id,\n data: fullGl3dData,\n bgColor: bgColorCombined,\n calendar: opts.calendar,\n autotypenumbersDflt: opts.autotypenumbersDflt,\n fullLayout: opts.fullLayout\n });\n Registry.getComponentMethod(\"annotations3d\", \"handleDefaults\")(\n sceneLayoutIn,\n sceneLayoutOut,\n opts\n );\n var dragmode = opts.getDfltFromLayout(\"dragmode\");\n if (dragmode !== false) {\n if (!dragmode) {\n dragmode = \"orbit\";\n if (sceneLayoutIn.camera && sceneLayoutIn.camera.up) {\n var x = sceneLayoutIn.camera.up.x;\n var y = sceneLayoutIn.camera.up.y;\n var z = sceneLayoutIn.camera.up.z;\n if (z !== 0) {\n if (!x || !y || !z) {\n dragmode = \"turntable\";\n } else if (z / Math.sqrt(x * x + y * y + z * z) > 0.999) {\n dragmode = \"turntable\";\n }\n }\n } else {\n dragmode = \"turntable\";\n }\n }\n }\n coerce(\"dragmode\", dragmode);\n coerce(\"hovermode\", opts.getDfltFromLayout(\"hovermode\"));\n }\n }\n });\n\n // src/plots/gl3d/index.js\n var require_gl3d = __commonJS({\n \"src/plots/gl3d/index.js\"(exports) {\n \"use strict\";\n var overrideAll = require_edit_types().overrideAll;\n var fxAttrs = require_layout_attributes();\n var Scene = require_scene();\n var getSubplotData = require_get_data().getSubplotData;\n var Lib = require_lib();\n var xmlnsNamespaces = require_xmlns_namespaces();\n var GL3D = \"gl3d\";\n var SCENE = \"scene\";\n exports.name = GL3D;\n exports.attr = SCENE;\n exports.idRoot = SCENE;\n exports.idRegex = exports.attrRegex = Lib.counterRegex(\"scene\");\n exports.attributes = require_attributes41();\n exports.layoutAttributes = require_layout_attributes17();\n exports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n }, \"plot\", \"nested\");\n exports.supplyLayoutDefaults = require_defaults37();\n exports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var fullData = gd._fullData;\n var sceneIds = fullLayout._subplots[GL3D];\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneId = sceneIds[i];\n var fullSceneData = getSubplotData(fullData, GL3D, sceneId);\n var sceneLayout = fullLayout[sceneId];\n var camera = sceneLayout.camera;\n var scene = sceneLayout._scene;\n if (!scene) {\n scene = new Scene(\n {\n id: sceneId,\n graphDiv: gd,\n container: gd.querySelector(\".gl-container\"),\n staticPlot: gd._context.staticPlot,\n plotGlPixelRatio: gd._context.plotGlPixelRatio,\n camera\n },\n fullLayout\n );\n sceneLayout._scene = scene;\n }\n if (!scene.viewInitial) {\n scene.viewInitial = {\n up: {\n x: camera.up.x,\n y: camera.up.y,\n z: camera.up.z\n },\n eye: {\n x: camera.eye.x,\n y: camera.eye.y,\n z: camera.eye.z\n },\n center: {\n x: camera.center.x,\n y: camera.center.y,\n z: camera.center.z\n }\n };\n }\n scene.plot(fullSceneData, fullLayout, gd.layout);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldSceneKeys = oldFullLayout._subplots[GL3D] || [];\n for (var i = 0; i < oldSceneKeys.length; i++) {\n var oldSceneKey = oldSceneKeys[i];\n if (!newFullLayout[oldSceneKey] && !!oldFullLayout[oldSceneKey]._scene) {\n oldFullLayout[oldSceneKey]._scene.destroy();\n if (oldFullLayout._infolayer) {\n oldFullLayout._infolayer.selectAll(\".annotation-\" + oldSceneKey).remove();\n }\n }\n }\n };\n exports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var sceneIds = fullLayout._subplots[GL3D];\n var size = fullLayout._size;\n for (var i = 0; i < sceneIds.length; i++) {\n var sceneLayout = fullLayout[sceneIds[i]];\n var domain = sceneLayout.domain;\n var scene = sceneLayout._scene;\n var imageData = scene.toImage(\"png\");\n var image = fullLayout._glimages.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: \"none\"\n });\n scene.destroy();\n }\n };\n exports.cleanId = function cleanId(id) {\n if (!id.match(/^scene[0-9]*$/)) return;\n var sceneNum = id.substr(5);\n if (sceneNum === \"1\") sceneNum = \"\";\n return SCENE + sceneNum;\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GL3D];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._scene;\n subplotObj.updateFx(fullLayout.dragmode, fullLayout.hovermode);\n }\n };\n }\n });\n\n // src/traces/scatter3d/index.js\n var require_scatter3d = __commonJS({\n \"src/traces/scatter3d/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n plot: require_convert2(),\n attributes: require_attributes40(),\n markerSymbols: require_gl3d_markers(),\n supplyDefaults: require_defaults36(),\n colorbar: [\n {\n container: \"marker\",\n min: \"cmin\",\n max: \"cmax\"\n },\n {\n container: \"line\",\n min: \"cmin\",\n max: \"cmax\"\n }\n ],\n calc: require_calc21(),\n moduleType: \"trace\",\n name: \"scatter3d\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scatter3d.js\n var require_scatter3d2 = __commonJS({\n \"lib/scatter3d.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatter3d();\n }\n });\n\n // src/traces/surface/attributes.js\n var require_attributes42 = __commonJS({\n \"src/traces/surface/attributes.js\"(exports, module) {\n \"use strict\";\n var Color2 = require_color();\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n function makeContourProjAttr(axLetter) {\n return {\n valType: \"boolean\",\n dflt: false\n };\n }\n function makeContourAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n start: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\"\n // impliedEdits: {'^autocontour': false},\n },\n end: {\n valType: \"number\",\n dflt: null,\n editType: \"plot\"\n // impliedEdits: {'^autocontour': false},\n },\n size: {\n valType: \"number\",\n dflt: null,\n min: 0,\n editType: \"plot\"\n // impliedEdits: {'^autocontour': false},\n },\n project: {\n x: makeContourProjAttr(\"x\"),\n y: makeContourProjAttr(\"y\"),\n z: makeContourProjAttr(\"z\")\n },\n color: {\n valType: \"color\",\n dflt: Color2.defaultLine\n },\n usecolormap: {\n valType: \"boolean\",\n dflt: false\n },\n width: {\n valType: \"number\",\n min: 1,\n max: 16,\n dflt: 2\n },\n highlight: {\n valType: \"boolean\",\n dflt: true\n },\n highlightcolor: {\n valType: \"color\",\n dflt: Color2.defaultLine\n },\n highlightwidth: {\n valType: \"number\",\n min: 1,\n max: 16,\n dflt: 2\n }\n };\n }\n var attrs = module.exports = overrideAll(extendFlat(\n {\n z: {\n valType: \"data_array\"\n },\n x: {\n valType: \"data_array\"\n },\n y: {\n valType: \"data_array\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n connectgaps: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n surfacecolor: {\n valType: \"data_array\"\n }\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"z or surfacecolor\",\n showScaleDflt: true,\n autoColorDflt: false,\n editTypeOverride: \"calc\"\n }),\n {\n contours: {\n x: makeContourAttr(\"x\"),\n y: makeContourAttr(\"y\"),\n z: makeContourAttr(\"z\")\n },\n hidesurface: {\n valType: \"boolean\",\n dflt: false\n },\n lightposition: {\n x: {\n valType: \"number\",\n min: -1e5,\n max: 1e5,\n dflt: 10\n },\n y: {\n valType: \"number\",\n min: -1e5,\n max: 1e5,\n dflt: 1e4\n },\n z: {\n valType: \"number\",\n min: -1e5,\n max: 1e5,\n dflt: 0\n }\n },\n lighting: {\n ambient: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.8\n },\n diffuse: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.8\n },\n specular: {\n valType: \"number\",\n min: 0,\n max: 2,\n dflt: 0.05\n },\n roughness: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.5\n },\n fresnel: {\n valType: \"number\",\n min: 0,\n max: 5,\n dflt: 0.2\n }\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n opacityscale: {\n valType: \"any\",\n editType: \"calc\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n }\n ), \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.z.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/surface/defaults.js\n var require_defaults38 = __commonJS({\n \"src/traces/surface/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes42();\n var MIN = 0.1;\n function createWave(n, minOpacity) {\n var arr = [];\n var steps = 32;\n for (var i = 0; i < steps; i++) {\n var u = i / (steps - 1);\n var v = minOpacity + (1 - minOpacity) * (1 - Math.pow(Math.sin(n * u * Math.PI), 2));\n arr.push([\n u,\n Math.max(0, Math.min(1, v))\n ]);\n }\n return arr;\n }\n function isValidScaleArray(scl) {\n var highestVal = 0;\n if (!Array.isArray(scl) || scl.length < 2) return false;\n if (!scl[0] || !scl[scl.length - 1]) return false;\n if (+scl[0][0] !== 0 || +scl[scl.length - 1][0] !== 1) return false;\n for (var i = 0; i < scl.length; i++) {\n var si = scl[i];\n if (si.length !== 2 || +si[0] < highestVal) {\n return false;\n }\n highestVal = +si[0];\n }\n return true;\n }\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n var i, j;\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n if (!z || !z.length || (x ? x.length < 1 : false) || (y ? y.length < 1 : false)) {\n traceOut.visible = false;\n return;\n }\n traceOut._xlength = Array.isArray(x) && Lib.isArrayOrTypedArray(x[0]) ? z.length : z[0].length;\n traceOut._ylength = z.length;\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n [\n \"lighting.ambient\",\n \"lighting.diffuse\",\n \"lighting.specular\",\n \"lighting.roughness\",\n \"lighting.fresnel\",\n \"lightposition.x\",\n \"lightposition.y\",\n \"lightposition.z\",\n \"hidesurface\",\n \"connectgaps\",\n \"opacity\"\n ].forEach(function(x2) {\n coerce(x2);\n });\n var surfaceColor = coerce(\"surfacecolor\");\n var dims = [\"x\", \"y\", \"z\"];\n for (i = 0; i < 3; ++i) {\n var contourDim = \"contours.\" + dims[i];\n var show = coerce(contourDim + \".show\");\n var highlight = coerce(contourDim + \".highlight\");\n if (show || highlight) {\n for (j = 0; j < 3; ++j) {\n coerce(contourDim + \".project.\" + dims[j]);\n }\n }\n if (show) {\n coerce(contourDim + \".color\");\n coerce(contourDim + \".width\");\n coerce(contourDim + \".usecolormap\");\n }\n if (highlight) {\n coerce(contourDim + \".highlightcolor\");\n coerce(contourDim + \".highlightwidth\");\n }\n coerce(contourDim + \".start\");\n coerce(contourDim + \".end\");\n coerce(contourDim + \".size\");\n }\n colorscaleDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n { prefix: \"\", cLetter: \"c\" }\n );\n opacityscaleDefaults(traceIn, traceOut, layout, coerce);\n traceOut._length = null;\n }\n function opacityscaleDefaults(traceIn, traceOut, layout, coerce) {\n var opacityscale = coerce(\"opacityscale\");\n if (opacityscale === \"max\") {\n traceOut.opacityscale = [[0, MIN], [1, 1]];\n } else if (opacityscale === \"min\") {\n traceOut.opacityscale = [[0, 1], [1, MIN]];\n } else if (opacityscale === \"extremes\") {\n traceOut.opacityscale = createWave(1, MIN);\n } else if (!isValidScaleArray(opacityscale)) {\n traceOut.opacityscale = void 0;\n }\n }\n module.exports = {\n supplyDefaults,\n opacityscaleDefaults\n };\n }\n });\n\n // src/traces/surface/calc.js\n var require_calc22 = __commonJS({\n \"src/traces/surface/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n module.exports = function calc(gd, trace) {\n if (trace.surfacecolor) {\n colorscaleCalc(gd, trace, {\n vals: trace.surfacecolor,\n containerStr: \"\",\n cLetter: \"c\"\n });\n } else {\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: \"\",\n cLetter: \"c\"\n });\n }\n };\n }\n });\n\n // src/traces/surface/convert.js\n var require_convert4 = __commonJS({\n \"src/traces/surface/convert.js\"(exports, module) {\n \"use strict\";\n var createSurface = require_stackgl_modules().gl_surface3d;\n var ndarray = require_stackgl_modules().ndarray;\n var ndarrayInterp2d = require_stackgl_modules().ndarray_linear_interpolate.d2;\n var interp2d = require_interp2d();\n var findEmpties = require_find_empties();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n function SurfaceTrace(scene, surface, uid) {\n this.scene = scene;\n this.uid = uid;\n this.surface = surface;\n this.data = null;\n this.showContour = [false, false, false];\n this.contourStart = [null, null, null];\n this.contourEnd = [null, null, null];\n this.contourSize = [0, 0, 0];\n this.minValues = [Infinity, Infinity, Infinity];\n this.maxValues = [-Infinity, -Infinity, -Infinity];\n this.dataScaleX = 1;\n this.dataScaleY = 1;\n this.refineData = true;\n this.objectOffset = [0, 0, 0];\n }\n var proto = SurfaceTrace.prototype;\n proto.getXat = function(a, b, calendar, axis) {\n var v = !isArrayOrTypedArray(this.data.x) ? a : isArrayOrTypedArray(this.data.x[0]) ? this.data.x[b][a] : this.data.x[a];\n return calendar === void 0 ? v : axis.d2l(v, 0, calendar);\n };\n proto.getYat = function(a, b, calendar, axis) {\n var v = !isArrayOrTypedArray(this.data.y) ? b : isArrayOrTypedArray(this.data.y[0]) ? this.data.y[b][a] : this.data.y[b];\n return calendar === void 0 ? v : axis.d2l(v, 0, calendar);\n };\n proto.getZat = function(a, b, calendar, axis) {\n var v = this.data.z[b][a];\n if (v === null && this.data.connectgaps && this.data._interpolatedZ) {\n v = this.data._interpolatedZ[b][a];\n }\n return calendar === void 0 ? v : axis.d2l(v, 0, calendar);\n };\n proto.handlePick = function(selection) {\n if (selection.object === this.surface) {\n var xRatio = (selection.data.index[0] - 1) / this.dataScaleX - 1;\n var yRatio = (selection.data.index[1] - 1) / this.dataScaleY - 1;\n var j = Math.max(Math.min(Math.round(xRatio), this.data.z[0].length - 1), 0);\n var k = Math.max(Math.min(Math.round(yRatio), this.data._ylength - 1), 0);\n selection.index = [j, k];\n selection.traceCoordinate = [\n this.getXat(j, k),\n this.getYat(j, k),\n this.getZat(j, k)\n ];\n selection.dataCoordinate = [\n this.getXat(j, k, this.data.xcalendar, this.scene.fullSceneLayout.xaxis),\n this.getYat(j, k, this.data.ycalendar, this.scene.fullSceneLayout.yaxis),\n this.getZat(j, k, this.data.zcalendar, this.scene.fullSceneLayout.zaxis)\n ];\n for (var i = 0; i < 3; i++) {\n var v = selection.dataCoordinate[i];\n if (v !== null && v !== void 0) {\n selection.dataCoordinate[i] *= this.scene.dataScale[i];\n }\n }\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[k] && text[k][j] !== void 0) {\n selection.textLabel = text[k][j];\n } else if (text) {\n selection.textLabel = text;\n } else {\n selection.textLabel = \"\";\n }\n selection.data.dataCoordinate = selection.dataCoordinate.slice();\n this.surface.highlight(selection.data);\n this.scene.glplot.spikes.position = selection.dataCoordinate;\n return true;\n }\n };\n function isColormapCircular(colormap) {\n var first = colormap[0].rgb;\n var last = colormap[colormap.length - 1].rgb;\n return first[0] === last[0] && first[1] === last[1] && first[2] === last[2] && first[3] === last[3];\n }\n var shortPrimes = [\n 2,\n 3,\n 5,\n 7,\n 11,\n 13,\n 17,\n 19,\n 23,\n 29,\n 31,\n 37,\n 41,\n 43,\n 47,\n 53,\n 59,\n 61,\n 67,\n 71,\n 73,\n 79,\n 83,\n 89,\n 97,\n 101,\n 103,\n 107,\n 109,\n 113,\n 127,\n 131,\n 137,\n 139,\n 149,\n 151,\n 157,\n 163,\n 167,\n 173,\n 179,\n 181,\n 191,\n 193,\n 197,\n 199,\n 211,\n 223,\n 227,\n 229,\n 233,\n 239,\n 241,\n 251,\n 257,\n 263,\n 269,\n 271,\n 277,\n 281,\n 283,\n 293,\n 307,\n 311,\n 313,\n 317,\n 331,\n 337,\n 347,\n 349,\n 353,\n 359,\n 367,\n 373,\n 379,\n 383,\n 389,\n 397,\n 401,\n 409,\n 419,\n 421,\n 431,\n 433,\n 439,\n 443,\n 449,\n 457,\n 461,\n 463,\n 467,\n 479,\n 487,\n 491,\n 499,\n 503,\n 509,\n 521,\n 523,\n 541,\n 547,\n 557,\n 563,\n 569,\n 571,\n 577,\n 587,\n 593,\n 599,\n 601,\n 607,\n 613,\n 617,\n 619,\n 631,\n 641,\n 643,\n 647,\n 653,\n 659,\n 661,\n 673,\n 677,\n 683,\n 691,\n 701,\n 709,\n 719,\n 727,\n 733,\n 739,\n 743,\n 751,\n 757,\n 761,\n 769,\n 773,\n 787,\n 797,\n 809,\n 811,\n 821,\n 823,\n 827,\n 829,\n 839,\n 853,\n 857,\n 859,\n 863,\n 877,\n 881,\n 883,\n 887,\n 907,\n 911,\n 919,\n 929,\n 937,\n 941,\n 947,\n 953,\n 967,\n 971,\n 977,\n 983,\n 991,\n 997,\n 1009,\n 1013,\n 1019,\n 1021,\n 1031,\n 1033,\n 1039,\n 1049,\n 1051,\n 1061,\n 1063,\n 1069,\n 1087,\n 1091,\n 1093,\n 1097,\n 1103,\n 1109,\n 1117,\n 1123,\n 1129,\n 1151,\n 1153,\n 1163,\n 1171,\n 1181,\n 1187,\n 1193,\n 1201,\n 1213,\n 1217,\n 1223,\n 1229,\n 1231,\n 1237,\n 1249,\n 1259,\n 1277,\n 1279,\n 1283,\n 1289,\n 1291,\n 1297,\n 1301,\n 1303,\n 1307,\n 1319,\n 1321,\n 1327,\n 1361,\n 1367,\n 1373,\n 1381,\n 1399,\n 1409,\n 1423,\n 1427,\n 1429,\n 1433,\n 1439,\n 1447,\n 1451,\n 1453,\n 1459,\n 1471,\n 1481,\n 1483,\n 1487,\n 1489,\n 1493,\n 1499,\n 1511,\n 1523,\n 1531,\n 1543,\n 1549,\n 1553,\n 1559,\n 1567,\n 1571,\n 1579,\n 1583,\n 1597,\n 1601,\n 1607,\n 1609,\n 1613,\n 1619,\n 1621,\n 1627,\n 1637,\n 1657,\n 1663,\n 1667,\n 1669,\n 1693,\n 1697,\n 1699,\n 1709,\n 1721,\n 1723,\n 1733,\n 1741,\n 1747,\n 1753,\n 1759,\n 1777,\n 1783,\n 1787,\n 1789,\n 1801,\n 1811,\n 1823,\n 1831,\n 1847,\n 1861,\n 1867,\n 1871,\n 1873,\n 1877,\n 1879,\n 1889,\n 1901,\n 1907,\n 1913,\n 1931,\n 1933,\n 1949,\n 1951,\n 1973,\n 1979,\n 1987,\n 1993,\n 1997,\n 1999,\n 2003,\n 2011,\n 2017,\n 2027,\n 2029,\n 2039,\n 2053,\n 2063,\n 2069,\n 2081,\n 2083,\n 2087,\n 2089,\n 2099,\n 2111,\n 2113,\n 2129,\n 2131,\n 2137,\n 2141,\n 2143,\n 2153,\n 2161,\n 2179,\n 2203,\n 2207,\n 2213,\n 2221,\n 2237,\n 2239,\n 2243,\n 2251,\n 2267,\n 2269,\n 2273,\n 2281,\n 2287,\n 2293,\n 2297,\n 2309,\n 2311,\n 2333,\n 2339,\n 2341,\n 2347,\n 2351,\n 2357,\n 2371,\n 2377,\n 2381,\n 2383,\n 2389,\n 2393,\n 2399,\n 2411,\n 2417,\n 2423,\n 2437,\n 2441,\n 2447,\n 2459,\n 2467,\n 2473,\n 2477,\n 2503,\n 2521,\n 2531,\n 2539,\n 2543,\n 2549,\n 2551,\n 2557,\n 2579,\n 2591,\n 2593,\n 2609,\n 2617,\n 2621,\n 2633,\n 2647,\n 2657,\n 2659,\n 2663,\n 2671,\n 2677,\n 2683,\n 2687,\n 2689,\n 2693,\n 2699,\n 2707,\n 2711,\n 2713,\n 2719,\n 2729,\n 2731,\n 2741,\n 2749,\n 2753,\n 2767,\n 2777,\n 2789,\n 2791,\n 2797,\n 2801,\n 2803,\n 2819,\n 2833,\n 2837,\n 2843,\n 2851,\n 2857,\n 2861,\n 2879,\n 2887,\n 2897,\n 2903,\n 2909,\n 2917,\n 2927,\n 2939,\n 2953,\n 2957,\n 2963,\n 2969,\n 2971,\n 2999\n ];\n function getPow(a, b) {\n if (a < b) return 0;\n var n = 0;\n while (Math.floor(a % b) === 0) {\n a /= b;\n n++;\n }\n return n;\n }\n function getFactors(a) {\n var powers = [];\n for (var i = 0; i < shortPrimes.length; i++) {\n var b = shortPrimes[i];\n powers.push(\n getPow(a, b)\n );\n }\n return powers;\n }\n function smallestDivisor(a) {\n var A2 = getFactors(a);\n var result = a;\n for (var i = 0; i < shortPrimes.length; i++) {\n if (A2[i] > 0) {\n result = shortPrimes[i];\n break;\n }\n }\n return result;\n }\n function leastCommonMultiple(a, b) {\n if (a < 1 || b < 1) return void 0;\n var A2 = getFactors(a);\n var B2 = getFactors(b);\n var n = 1;\n for (var i = 0; i < shortPrimes.length; i++) {\n n *= Math.pow(\n shortPrimes[i],\n Math.max(A2[i], B2[i])\n );\n }\n return n;\n }\n function arrayLCM(A2) {\n if (A2.length === 0) return void 0;\n var n = 1;\n for (var i = 0; i < A2.length; i++) {\n n = leastCommonMultiple(n, A2[i]);\n }\n return n;\n }\n proto.calcXnums = function(xlen) {\n var i;\n var nums = [];\n for (i = 1; i < xlen; i++) {\n var a = this.getXat(i - 1, 0);\n var b = this.getXat(i, 0);\n if (b !== a && a !== void 0 && a !== null && b !== void 0 && b !== null) {\n nums[i - 1] = Math.abs(b - a);\n } else {\n nums[i - 1] = 0;\n }\n }\n var totalDist = 0;\n for (i = 1; i < xlen; i++) {\n totalDist += nums[i - 1];\n }\n for (i = 1; i < xlen; i++) {\n if (nums[i - 1] === 0) {\n nums[i - 1] = 1;\n } else {\n nums[i - 1] = Math.round(totalDist / nums[i - 1]);\n }\n }\n return nums;\n };\n proto.calcYnums = function(ylen) {\n var i;\n var nums = [];\n for (i = 1; i < ylen; i++) {\n var a = this.getYat(0, i - 1);\n var b = this.getYat(0, i);\n if (b !== a && a !== void 0 && a !== null && b !== void 0 && b !== null) {\n nums[i - 1] = Math.abs(b - a);\n } else {\n nums[i - 1] = 0;\n }\n }\n var totalDist = 0;\n for (i = 1; i < ylen; i++) {\n totalDist += nums[i - 1];\n }\n for (i = 1; i < ylen; i++) {\n if (nums[i - 1] === 0) {\n nums[i - 1] = 1;\n } else {\n nums[i - 1] = Math.round(totalDist / nums[i - 1]);\n }\n }\n return nums;\n };\n var highlyComposites = [1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260];\n var MIN_RESOLUTION = highlyComposites[9];\n var MAX_RESOLUTION = highlyComposites[13];\n proto.estimateScale = function(resSrc, axis) {\n var nums = axis === 0 ? this.calcXnums(resSrc) : this.calcYnums(resSrc);\n var resDst = 1 + arrayLCM(nums);\n while (resDst < MIN_RESOLUTION) {\n resDst *= 2;\n }\n while (resDst > MAX_RESOLUTION) {\n resDst--;\n resDst /= smallestDivisor(resDst);\n resDst++;\n if (resDst < MIN_RESOLUTION) {\n resDst = MAX_RESOLUTION;\n }\n }\n var scale = Math.round(resDst / resSrc);\n return scale > 1 ? scale : 1;\n };\n function fnHomography(out, inp, X) {\n var w = X[8] + X[2] * inp[0] + X[5] * inp[1];\n out[0] = (X[6] + X[0] * inp[0] + X[3] * inp[1]) / w;\n out[1] = (X[7] + X[1] * inp[0] + X[4] * inp[1]) / w;\n return out;\n }\n function homography(dest, src, X) {\n warp(dest, src, fnHomography, X);\n return dest;\n }\n function warp(dest, src, func, X) {\n var warped = [0, 0];\n var ni = dest.shape[0];\n var nj = dest.shape[1];\n for (var i = 0; i < ni; i++) {\n for (var j = 0; j < nj; j++) {\n func(warped, [i, j], X);\n dest.set(i, j, ndarrayInterp2d(src, warped[0], warped[1]));\n }\n }\n return dest;\n }\n proto.refineCoords = function(coords) {\n var scaleW = this.dataScaleX;\n var scaleH = this.dataScaleY;\n var width = coords[0].shape[0];\n var height = coords[0].shape[1];\n var newWidth = Math.floor(coords[0].shape[0] * scaleW + 1) | 0;\n var newHeight = Math.floor(coords[0].shape[1] * scaleH + 1) | 0;\n var padWidth = 1 + width + 1;\n var padHeight = 1 + height + 1;\n var padImg = ndarray(new Float32Array(padWidth * padHeight), [padWidth, padHeight]);\n var X = [\n 1 / scaleW,\n 0,\n 0,\n 0,\n 1 / scaleH,\n 0,\n 0,\n 0,\n 1\n ];\n for (var i = 0; i < coords.length; ++i) {\n this.surface.padField(padImg, coords[i]);\n var scaledImg = ndarray(new Float32Array(newWidth * newHeight), [newWidth, newHeight]);\n homography(scaledImg, padImg, X);\n coords[i] = scaledImg;\n }\n };\n function insertIfNewLevel(arr, newValue) {\n var found = false;\n for (var k = 0; k < arr.length; k++) {\n if (newValue === arr[k]) {\n found = true;\n break;\n }\n }\n if (found === false) arr.push(newValue);\n }\n proto.setContourLevels = function() {\n var newLevels = [[], [], []];\n var useNewLevels = [false, false, false];\n var needsUpdate = false;\n var i, j, value;\n for (i = 0; i < 3; ++i) {\n if (this.showContour[i]) {\n needsUpdate = true;\n if (this.contourSize[i] > 0 && this.contourStart[i] !== null && this.contourEnd[i] !== null && this.contourEnd[i] > this.contourStart[i]) {\n useNewLevels[i] = true;\n for (j = this.contourStart[i]; j < this.contourEnd[i]; j += this.contourSize[i]) {\n value = j * this.scene.dataScale[i];\n insertIfNewLevel(newLevels[i], value);\n }\n }\n }\n }\n if (needsUpdate) {\n var allLevels = [[], [], []];\n for (i = 0; i < 3; ++i) {\n if (this.showContour[i]) {\n allLevels[i] = useNewLevels[i] ? newLevels[i] : this.scene.contourLevels[i];\n }\n }\n this.surface.update({ levels: allLevels });\n }\n };\n proto.update = function(data) {\n var scene = this.scene;\n var sceneLayout = scene.fullSceneLayout;\n var surface = this.surface;\n var colormap = parseColorScale(data);\n var scaleFactor = scene.dataScale;\n var xlen = data.z[0].length;\n var ylen = data._ylength;\n var contourLevels = scene.contourLevels;\n this.data = data;\n var i, j, k, v;\n var rawCoords = [];\n for (i = 0; i < 3; i++) {\n rawCoords[i] = [];\n for (j = 0; j < xlen; j++) {\n rawCoords[i][j] = [];\n }\n }\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n rawCoords[0][j][k] = this.getXat(j, k, data.xcalendar, sceneLayout.xaxis);\n rawCoords[1][j][k] = this.getYat(j, k, data.ycalendar, sceneLayout.yaxis);\n rawCoords[2][j][k] = this.getZat(j, k, data.zcalendar, sceneLayout.zaxis);\n }\n }\n if (data.connectgaps) {\n data._emptypoints = findEmpties(rawCoords[2]);\n interp2d(rawCoords[2], data._emptypoints);\n data._interpolatedZ = [];\n for (j = 0; j < xlen; j++) {\n data._interpolatedZ[j] = [];\n for (k = 0; k < ylen; k++) {\n data._interpolatedZ[j][k] = rawCoords[2][j][k];\n }\n }\n }\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n v = rawCoords[i][j][k];\n if (v === null || v === void 0) {\n rawCoords[i][j][k] = NaN;\n } else {\n v = rawCoords[i][j][k] *= scaleFactor[i];\n }\n }\n }\n }\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n v = rawCoords[i][j][k];\n if (v !== null && v !== void 0) {\n if (this.minValues[i] > v) {\n this.minValues[i] = v;\n }\n if (this.maxValues[i] < v) {\n this.maxValues[i] = v;\n }\n }\n }\n }\n }\n for (i = 0; i < 3; i++) {\n this.objectOffset[i] = 0.5 * (this.minValues[i] + this.maxValues[i]);\n }\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n v = rawCoords[i][j][k];\n if (v !== null && v !== void 0) {\n rawCoords[i][j][k] -= this.objectOffset[i];\n }\n }\n }\n }\n var coords = [\n ndarray(new Float32Array(xlen * ylen), [xlen, ylen]),\n ndarray(new Float32Array(xlen * ylen), [xlen, ylen]),\n ndarray(new Float32Array(xlen * ylen), [xlen, ylen])\n ];\n for (i = 0; i < 3; i++) {\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n coords[i].set(j, k, rawCoords[i][j][k]);\n }\n }\n }\n rawCoords = [];\n var params = {\n colormap,\n levels: [[], [], []],\n showContour: [true, true, true],\n showSurface: !data.hidesurface,\n contourProject: [\n [false, false, false],\n [false, false, false],\n [false, false, false]\n ],\n contourWidth: [1, 1, 1],\n contourColor: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]],\n contourTint: [1, 1, 1],\n dynamicColor: [[1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1]],\n dynamicWidth: [1, 1, 1],\n dynamicTint: [1, 1, 1],\n opacityscale: data.opacityscale,\n opacity: data.opacity\n };\n var cOpts = extractOpts(data);\n params.intensityBounds = [cOpts.min, cOpts.max];\n if (data.surfacecolor) {\n var intensity = ndarray(new Float32Array(xlen * ylen), [xlen, ylen]);\n for (j = 0; j < xlen; j++) {\n for (k = 0; k < ylen; k++) {\n intensity.set(j, k, data.surfacecolor[k][j]);\n }\n }\n coords.push(intensity);\n } else {\n params.intensityBounds[0] *= scaleFactor[2];\n params.intensityBounds[1] *= scaleFactor[2];\n }\n if (MAX_RESOLUTION < coords[0].shape[0] || MAX_RESOLUTION < coords[0].shape[1]) {\n this.refineData = false;\n }\n if (this.refineData === true) {\n this.dataScaleX = this.estimateScale(coords[0].shape[0], 0);\n this.dataScaleY = this.estimateScale(coords[0].shape[1], 1);\n if (this.dataScaleX !== 1 || this.dataScaleY !== 1) {\n this.refineCoords(coords);\n }\n }\n if (data.surfacecolor) {\n params.intensity = coords.pop();\n }\n var highlightEnable = [true, true, true];\n var axis = [\"x\", \"y\", \"z\"];\n for (i = 0; i < 3; ++i) {\n var contourParams = data.contours[axis[i]];\n highlightEnable[i] = contourParams.highlight;\n params.showContour[i] = contourParams.show || contourParams.highlight;\n if (!params.showContour[i]) continue;\n params.contourProject[i] = [\n contourParams.project.x,\n contourParams.project.y,\n contourParams.project.z\n ];\n if (contourParams.show) {\n this.showContour[i] = true;\n params.levels[i] = contourLevels[i];\n surface.highlightColor[i] = params.contourColor[i] = str2RgbaArray(contourParams.color);\n if (contourParams.usecolormap) {\n surface.highlightTint[i] = params.contourTint[i] = 0;\n } else {\n surface.highlightTint[i] = params.contourTint[i] = 1;\n }\n params.contourWidth[i] = contourParams.width;\n this.contourStart[i] = contourParams.start;\n this.contourEnd[i] = contourParams.end;\n this.contourSize[i] = contourParams.size;\n } else {\n this.showContour[i] = false;\n this.contourStart[i] = null;\n this.contourEnd[i] = null;\n this.contourSize[i] = 0;\n }\n if (contourParams.highlight) {\n params.dynamicColor[i] = str2RgbaArray(contourParams.highlightcolor);\n params.dynamicWidth[i] = contourParams.highlightwidth;\n }\n }\n if (isColormapCircular(colormap)) {\n params.vertexColor = true;\n }\n params.objectOffset = this.objectOffset;\n params.coords = coords;\n surface.update(params);\n surface.visible = data.visible;\n surface.enableDynamic = highlightEnable;\n surface.enableHighlight = highlightEnable;\n surface.snapToData = true;\n if (\"lighting\" in data) {\n surface.ambientLight = data.lighting.ambient;\n surface.diffuseLight = data.lighting.diffuse;\n surface.specularLight = data.lighting.specular;\n surface.roughness = data.lighting.roughness;\n surface.fresnel = data.lighting.fresnel;\n }\n if (\"lightposition\" in data) {\n surface.lightPosition = [data.lightposition.x, data.lightposition.y, data.lightposition.z];\n }\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.surface);\n this.surface.dispose();\n };\n function createSurfaceTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var surface = createSurface({ gl: gl2 });\n var result = new SurfaceTrace(scene, surface, data.uid);\n surface._trace = result;\n result.update(data);\n scene.glplot.add(surface);\n return result;\n }\n module.exports = createSurfaceTrace;\n }\n });\n\n // src/traces/surface/index.js\n var require_surface = __commonJS({\n \"src/traces/surface/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes42(),\n supplyDefaults: require_defaults38().supplyDefaults,\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n calc: require_calc22(),\n plot: require_convert4(),\n moduleType: \"trace\",\n name: \"surface\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"2dMap\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/surface.js\n var require_surface2 = __commonJS({\n \"lib/surface.js\"(exports, module) {\n \"use strict\";\n module.exports = require_surface();\n }\n });\n\n // src/traces/mesh3d/attributes.js\n var require_attributes43 = __commonJS({\n \"src/traces/mesh3d/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var surfaceAttrs = require_attributes42();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n i: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n j: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n k: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({ editType: \"calc\" }),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n delaunayaxis: {\n valType: \"enumerated\",\n values: [\"x\", \"y\", \"z\"],\n dflt: \"z\",\n editType: \"calc\"\n },\n alphahull: {\n valType: \"number\",\n dflt: -1,\n editType: \"calc\"\n },\n intensity: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n intensitymode: {\n valType: \"enumerated\",\n values: [\"vertex\", \"cell\"],\n dflt: \"vertex\",\n editType: \"calc\"\n },\n // Color field\n color: {\n valType: \"color\",\n editType: \"calc\"\n },\n vertexcolor: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n facecolor: {\n valType: \"data_array\",\n editType: \"calc\"\n }\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"`intensity`\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }),\n {\n opacity: surfaceAttrs.opacity,\n // Flat shaded mode\n flatshading: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n contour: {\n show: extendFlat({}, surfaceAttrs.contours.x.show, {}),\n color: surfaceAttrs.contours.x.color,\n width: surfaceAttrs.contours.x.width,\n editType: \"calc\"\n },\n lightposition: {\n x: extendFlat({}, surfaceAttrs.lightposition.x, { dflt: 1e5 }),\n y: extendFlat({}, surfaceAttrs.lightposition.y, { dflt: 1e5 }),\n z: extendFlat({}, surfaceAttrs.lightposition.z, { dflt: 0 }),\n editType: \"calc\"\n },\n lighting: extendFlat({\n vertexnormalsepsilon: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1e-12,\n // otherwise finely tessellated things eg. the brain will have no specular light reflection\n editType: \"calc\"\n },\n facenormalsepsilon: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1e-6,\n // even the brain model doesn't appear to need finer than this\n editType: \"calc\"\n },\n editType: \"calc\"\n }, surfaceAttrs.lighting),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, { editType: \"calc\" }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n }\n );\n }\n });\n\n // src/traces/isosurface/attributes.js\n var require_attributes44 = __commonJS({\n \"src/traces/isosurface/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var meshAttrs = require_attributes43();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n function makeSliceAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n locations: {\n valType: \"data_array\",\n dflt: []\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n }\n };\n }\n function makeCapAttr(axLetter) {\n return {\n show: {\n valType: \"boolean\",\n dflt: true\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n }\n };\n }\n var attrs = module.exports = overrideAll(extendFlat(\n {\n x: {\n valType: \"data_array\"\n },\n y: {\n valType: \"data_array\"\n },\n z: {\n valType: \"data_array\"\n },\n value: {\n valType: \"data_array\"\n },\n isomin: {\n valType: \"number\"\n },\n isomax: {\n valType: \"number\"\n },\n surface: {\n show: {\n valType: \"boolean\",\n dflt: true\n },\n count: {\n valType: \"integer\",\n dflt: 2,\n min: 1\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n pattern: {\n valType: \"flaglist\",\n flags: [\"A\", \"B\", \"C\", \"D\", \"E\"],\n extras: [\"all\", \"odd\", \"even\"],\n dflt: \"all\"\n }\n },\n spaceframe: {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0.15\n }\n },\n slices: {\n x: makeSliceAttr(\"x\"),\n y: makeSliceAttr(\"y\"),\n z: makeSliceAttr(\"z\")\n },\n caps: {\n x: makeCapAttr(\"x\"),\n y: makeCapAttr(\"y\"),\n z: makeCapAttr(\"z\")\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true\n },\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n valuehoverformat: axisHoverFormat(\"value\", 1),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"`value`\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }),\n {\n opacity: meshAttrs.opacity,\n lightposition: meshAttrs.lightposition,\n lighting: meshAttrs.lighting,\n flatshading: meshAttrs.flatshading,\n contour: meshAttrs.contour,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo)\n }\n ), \"calc\", \"nested\");\n attrs.flatshading.dflt = true;\n attrs.lighting.facenormalsepsilon.dflt = 0;\n attrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/isosurface/defaults.js\n var require_defaults39 = __commonJS({\n \"src/traces/isosurface/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var attributes = require_attributes44();\n var colorscaleDefaults = require_defaults2();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n }\n function supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var isomin = coerce(\"isomin\");\n var isomax = coerce(\"isomax\");\n if (isomax !== void 0 && isomax !== null && isomin !== void 0 && isomin !== null && isomin > isomax) {\n traceOut.isomin = null;\n traceOut.isomax = null;\n }\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n var value = coerce(\"value\");\n if (!x || !x.length || !y || !y.length || !z || !z.length || !value || !value.length) {\n traceOut.visible = false;\n return;\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n coerce(\"valuehoverformat\");\n [\"x\", \"y\", \"z\"].forEach(function(dim) {\n coerce(dim + \"hoverformat\");\n var capDim = \"caps.\" + dim;\n var showCap = coerce(capDim + \".show\");\n if (showCap) {\n coerce(capDim + \".fill\");\n }\n var sliceDim = \"slices.\" + dim;\n var showSlice = coerce(sliceDim + \".show\");\n if (showSlice) {\n coerce(sliceDim + \".fill\");\n coerce(sliceDim + \".locations\");\n }\n });\n var showSpaceframe = coerce(\"spaceframe.show\");\n if (showSpaceframe) {\n coerce(\"spaceframe.fill\");\n }\n var showSurface = coerce(\"surface.show\");\n if (showSurface) {\n coerce(\"surface.count\");\n coerce(\"surface.fill\");\n coerce(\"surface.pattern\");\n }\n var showContour = coerce(\"contour.show\");\n if (showContour) {\n coerce(\"contour.color\");\n coerce(\"contour.width\");\n }\n [\n \"text\",\n \"hovertext\",\n \"hovertemplate\",\n \"lighting.ambient\",\n \"lighting.diffuse\",\n \"lighting.specular\",\n \"lighting.roughness\",\n \"lighting.fresnel\",\n \"lighting.vertexnormalsepsilon\",\n \"lighting.facenormalsepsilon\",\n \"lightposition.x\",\n \"lightposition.y\",\n \"lightposition.z\",\n \"flatshading\",\n \"opacity\"\n ].forEach(function(x2) {\n coerce(x2);\n });\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n traceOut._length = null;\n }\n module.exports = {\n supplyDefaults,\n supplyIsoDefaults\n };\n }\n });\n\n // src/traces/streamtube/calc.js\n var require_calc23 = __commonJS({\n \"src/traces/streamtube/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleCalc = require_calc();\n function calc(gd, trace) {\n trace._len = Math.min(\n trace.u.length,\n trace.v.length,\n trace.w.length,\n trace.x.length,\n trace.y.length,\n trace.z.length\n );\n trace._u = filter(trace.u, trace._len);\n trace._v = filter(trace.v, trace._len);\n trace._w = filter(trace.w, trace._len);\n trace._x = filter(trace.x, trace._len);\n trace._y = filter(trace.y, trace._len);\n trace._z = filter(trace.z, trace._len);\n var grid = processGrid(trace);\n trace._gridFill = grid.fill;\n trace._Xs = grid.Xs;\n trace._Ys = grid.Ys;\n trace._Zs = grid.Zs;\n trace._len = grid.len;\n var slen = 0;\n var startx, starty, startz;\n if (trace.starts) {\n startx = filter(trace.starts.x || []);\n starty = filter(trace.starts.y || []);\n startz = filter(trace.starts.z || []);\n slen = Math.min(startx.length, starty.length, startz.length);\n }\n trace._startsX = startx || [];\n trace._startsY = starty || [];\n trace._startsZ = startz || [];\n var normMax = 0;\n var normMin = Infinity;\n var i;\n for (i = 0; i < trace._len; i++) {\n var u = trace._u[i];\n var v = trace._v[i];\n var w = trace._w[i];\n var norm = Math.sqrt(u * u + v * v + w * w);\n normMax = Math.max(normMax, norm);\n normMin = Math.min(normMin, norm);\n }\n colorscaleCalc(gd, trace, {\n vals: [normMin, normMax],\n containerStr: \"\",\n cLetter: \"c\"\n });\n for (i = 0; i < slen; i++) {\n var sx = startx[i];\n grid.xMax = Math.max(grid.xMax, sx);\n grid.xMin = Math.min(grid.xMin, sx);\n var sy = starty[i];\n grid.yMax = Math.max(grid.yMax, sy);\n grid.yMin = Math.min(grid.yMin, sy);\n var sz = startz[i];\n grid.zMax = Math.max(grid.zMax, sz);\n grid.zMin = Math.min(grid.zMin, sz);\n }\n trace._slen = slen;\n trace._normMax = normMax;\n trace._xbnds = [grid.xMin, grid.xMax];\n trace._ybnds = [grid.yMin, grid.yMax];\n trace._zbnds = [grid.zMin, grid.zMax];\n }\n function processGrid(trace) {\n var x = trace._x;\n var y = trace._y;\n var z = trace._z;\n var len = trace._len;\n var i, j, k;\n var xMax = -Infinity;\n var xMin = Infinity;\n var yMax = -Infinity;\n var yMin = Infinity;\n var zMax = -Infinity;\n var zMin = Infinity;\n var gridFill = \"\";\n var filledX;\n var filledY;\n var filledZ;\n var firstX, lastX;\n var firstY, lastY;\n var firstZ, lastZ;\n if (len) {\n firstX = x[0];\n firstY = y[0];\n firstZ = z[0];\n }\n if (len > 1) {\n lastX = x[len - 1];\n lastY = y[len - 1];\n lastZ = z[len - 1];\n }\n for (i = 0; i < len; i++) {\n xMax = Math.max(xMax, x[i]);\n xMin = Math.min(xMin, x[i]);\n yMax = Math.max(yMax, y[i]);\n yMin = Math.min(yMin, y[i]);\n zMax = Math.max(zMax, z[i]);\n zMin = Math.min(zMin, z[i]);\n if (!filledX && x[i] !== firstX) {\n filledX = true;\n gridFill += \"x\";\n }\n if (!filledY && y[i] !== firstY) {\n filledY = true;\n gridFill += \"y\";\n }\n if (!filledZ && z[i] !== firstZ) {\n filledZ = true;\n gridFill += \"z\";\n }\n }\n if (!filledX) gridFill += \"x\";\n if (!filledY) gridFill += \"y\";\n if (!filledZ) gridFill += \"z\";\n var Xs = distinctVals(trace._x);\n var Ys = distinctVals(trace._y);\n var Zs = distinctVals(trace._z);\n gridFill = gridFill.replace(\"x\", (firstX > lastX ? \"-\" : \"+\") + \"x\");\n gridFill = gridFill.replace(\"y\", (firstY > lastY ? \"-\" : \"+\") + \"y\");\n gridFill = gridFill.replace(\"z\", (firstZ > lastZ ? \"-\" : \"+\") + \"z\");\n var empty = function() {\n len = 0;\n Xs = [];\n Ys = [];\n Zs = [];\n };\n if (!len || len < Xs.length * Ys.length * Zs.length) empty();\n var getArray = function(c) {\n return c === \"x\" ? x : c === \"y\" ? y : z;\n };\n var getVals = function(c) {\n return c === \"x\" ? Xs : c === \"y\" ? Ys : Zs;\n };\n var getDir = function(c) {\n return c[len - 1] < c[0] ? -1 : 1;\n };\n var arrK = getArray(gridFill[1]);\n var arrJ = getArray(gridFill[3]);\n var arrI = getArray(gridFill[5]);\n var nk = getVals(gridFill[1]).length;\n var nj = getVals(gridFill[3]).length;\n var ni = getVals(gridFill[5]).length;\n var arbitrary = false;\n var getIndex = function(_i, _j, _k) {\n return nk * (nj * _i + _j) + _k;\n };\n var dirK = getDir(getArray(gridFill[1]));\n var dirJ = getDir(getArray(gridFill[3]));\n var dirI = getDir(getArray(gridFill[5]));\n for (i = 0; i < ni - 1; i++) {\n for (j = 0; j < nj - 1; j++) {\n for (k = 0; k < nk - 1; k++) {\n var q000 = getIndex(i, j, k);\n var q001 = getIndex(i, j, k + 1);\n var q010 = getIndex(i, j + 1, k);\n var q100 = getIndex(i + 1, j, k);\n if (!(arrK[q000] * dirK < arrK[q001] * dirK) || !(arrJ[q000] * dirJ < arrJ[q010] * dirJ) || !(arrI[q000] * dirI < arrI[q100] * dirI)) {\n arbitrary = true;\n }\n if (arbitrary) break;\n }\n if (arbitrary) break;\n }\n if (arbitrary) break;\n }\n if (arbitrary) {\n Lib.warn(\"Encountered arbitrary coordinates! Unable to input data grid.\");\n empty();\n }\n return {\n xMin,\n yMin,\n zMin,\n xMax,\n yMax,\n zMax,\n Xs,\n Ys,\n Zs,\n len,\n fill: gridFill\n };\n }\n function distinctVals(col) {\n return Lib.distinctVals(col).vals;\n }\n function filter(arr, len) {\n if (len === void 0) len = arr.length;\n if (Lib.isTypedArray(arr)) return arr.subarray(0, len);\n var values = [];\n for (var i = 0; i < len; i++) {\n values[i] = +arr[i];\n }\n return values;\n }\n module.exports = {\n calc,\n filter,\n processGrid\n };\n }\n });\n\n // src/traces/isosurface/calc.js\n var require_calc24 = __commonJS({\n \"src/traces/isosurface/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n var processGrid = require_calc23().processGrid;\n var filter = require_calc23().filter;\n module.exports = function calc(gd, trace) {\n trace._len = Math.min(\n trace.x.length,\n trace.y.length,\n trace.z.length,\n trace.value.length\n );\n trace._x = filter(trace.x, trace._len);\n trace._y = filter(trace.y, trace._len);\n trace._z = filter(trace.z, trace._len);\n trace._value = filter(trace.value, trace._len);\n var grid = processGrid(trace);\n trace._gridFill = grid.fill;\n trace._Xs = grid.Xs;\n trace._Ys = grid.Ys;\n trace._Zs = grid.Zs;\n trace._len = grid.len;\n var min = Infinity;\n var max = -Infinity;\n for (var i = 0; i < trace._len; i++) {\n var v = trace._value[i];\n min = Math.min(min, v);\n max = Math.max(max, v);\n }\n trace._minValues = min;\n trace._maxValues = max;\n trace._vMin = trace.isomin === void 0 || trace.isomin === null ? min : trace.isomin;\n trace._vMax = trace.isomax === void 0 || trace.isomax === null ? max : trace.isomax;\n colorscaleCalc(gd, trace, {\n vals: [trace._vMin, trace._vMax],\n containerStr: \"\",\n cLetter: \"c\"\n });\n };\n }\n });\n\n // src/plots/gl3d/zip3.js\n var require_zip3 = __commonJS({\n \"src/plots/gl3d/zip3.js\"(exports, module) {\n \"use strict\";\n module.exports = function zip3(x, y, z, len) {\n len = len || x.length;\n var result = new Array(len);\n for (var i = 0; i < len; i++) {\n result[i] = [x[i], y[i], z[i]];\n }\n return result;\n };\n }\n });\n\n // src/traces/isosurface/convert.js\n var require_convert5 = __commonJS({\n \"src/traces/isosurface/convert.js\"(exports, module) {\n \"use strict\";\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n var findNearestOnAxis = function(w, arr) {\n for (var q = arr.length - 1; q > 0; q--) {\n var min = Math.min(arr[q], arr[q - 1]);\n var max = Math.max(arr[q], arr[q - 1]);\n if (max > min && min < w && w <= max) {\n return {\n id: q,\n distRatio: (max - w) / (max - min)\n };\n }\n }\n return {\n id: 0,\n distRatio: 0\n };\n };\n function IsosurfaceTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = \"\";\n this.data = null;\n this.showContour = false;\n }\n var proto = IsosurfaceTrace.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var rawId = selection.data.index;\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n proto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n this.data = generateIsoMeshes(data);\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar)\n );\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n var config = {\n positions,\n cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n this.mesh.update(config);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n var GRID_TYPES = [\"xyz\", \"xzy\", \"yxz\", \"yzx\", \"zxy\", \"zyx\"];\n function generateIsoMeshes(data) {\n data._meshI = [];\n data._meshJ = [];\n data._meshK = [];\n var showSurface = data.surface.show;\n var showSpaceframe = data.spaceframe.show;\n var surfaceFill = data.surface.fill;\n var spaceframeFill = data.spaceframe.fill;\n var drawingSurface = false;\n var drawingSpaceframe = false;\n var numFaces = 0;\n var numVertices;\n var beginVertextLength;\n var Xs = data._Xs;\n var Ys = data._Ys;\n var Zs = data._Zs;\n var width = Xs.length;\n var height = Ys.length;\n var depth = Zs.length;\n var filled = GRID_TYPES.indexOf(data._gridFill.replace(/-/g, \"\").replace(/\\+/g, \"\"));\n var getIndex = function(i, j, k) {\n switch (filled) {\n case 5:\n return k + depth * j + depth * height * i;\n case 4:\n return k + depth * i + depth * width * j;\n case 3:\n return j + height * k + height * depth * i;\n case 2:\n return j + height * i + height * width * k;\n case 1:\n return i + width * k + width * depth * j;\n default:\n return i + width * j + width * height * k;\n }\n };\n var minValues = data._minValues;\n var maxValues = data._maxValues;\n var vMin = data._vMin;\n var vMax = data._vMax;\n var allXs;\n var allYs;\n var allZs;\n var allVs;\n function findVertexId(x, y, z) {\n var len = allVs.length;\n for (var f = beginVertextLength; f < len; f++) {\n if (x === allXs[f] && y === allYs[f] && z === allZs[f]) {\n return f;\n }\n }\n return -1;\n }\n function beginGroup() {\n beginVertextLength = numVertices;\n }\n function emptyVertices() {\n allXs = [];\n allYs = [];\n allZs = [];\n allVs = [];\n numVertices = 0;\n beginGroup();\n }\n function addVertex(x, y, z, v) {\n allXs.push(x);\n allYs.push(y);\n allZs.push(z);\n allVs.push(v);\n numVertices++;\n return numVertices - 1;\n }\n function addFace(a, b, c) {\n data._meshI.push(a);\n data._meshJ.push(b);\n data._meshK.push(c);\n numFaces++;\n return numFaces - 1;\n }\n function getCenter(A2, B2, C2) {\n var M = [];\n for (var i = 0; i < A2.length; i++) {\n M[i] = (A2[i] + B2[i] + C2[i]) / 3;\n }\n return M;\n }\n function getBetween(A2, B2, r) {\n var M = [];\n for (var i = 0; i < A2.length; i++) {\n M[i] = A2[i] * (1 - r) + r * B2[i];\n }\n return M;\n }\n var activeFill;\n function setFill(fill) {\n activeFill = fill;\n }\n function createOpenTri(xyzv, abc) {\n var A2 = xyzv[0];\n var B2 = xyzv[1];\n var C2 = xyzv[2];\n var G = getCenter(A2, B2, C2);\n var r = Math.sqrt(1 - activeFill);\n var p1 = getBetween(G, A2, r);\n var p2 = getBetween(G, B2, r);\n var p3 = getBetween(G, C2, r);\n var a = abc[0];\n var b = abc[1];\n var c = abc[2];\n return {\n xyzv: [\n [A2, B2, p2],\n [p2, p1, A2],\n [B2, C2, p3],\n [p3, p2, B2],\n [C2, A2, p1],\n [p1, p3, C2]\n ],\n abc: [\n [a, b, -1],\n [-1, -1, a],\n [b, c, -1],\n [-1, -1, b],\n [c, a, -1],\n [-1, -1, c]\n ]\n };\n }\n function styleIncludes(style, char) {\n if (style === \"all\" || style === null) return true;\n return style.indexOf(char) > -1;\n }\n function mapValue(style, value) {\n if (style === null) return value;\n return style;\n }\n function drawTri(style, xyzv, abc) {\n beginGroup();\n var allXYZVs = [xyzv];\n var allABCs = [abc];\n if (activeFill >= 1) {\n allXYZVs = [xyzv];\n allABCs = [abc];\n } else if (activeFill > 0) {\n var openTri = createOpenTri(xyzv, abc);\n allXYZVs = openTri.xyzv;\n allABCs = openTri.abc;\n }\n for (var f = 0; f < allXYZVs.length; f++) {\n xyzv = allXYZVs[f];\n abc = allABCs[f];\n var pnts = [];\n for (var i = 0; i < 3; i++) {\n var x = xyzv[i][0];\n var y = xyzv[i][1];\n var z = xyzv[i][2];\n var v = xyzv[i][3];\n var id = abc[i] > -1 ? abc[i] : findVertexId(x, y, z);\n if (id > -1) {\n pnts[i] = id;\n } else {\n pnts[i] = addVertex(x, y, z, mapValue(style, v));\n }\n }\n addFace(pnts[0], pnts[1], pnts[2]);\n }\n }\n function drawQuad(style, xyzv, abcd) {\n var makeTri = function(i, j, k) {\n drawTri(style, [xyzv[i], xyzv[j], xyzv[k]], [abcd[i], abcd[j], abcd[k]]);\n };\n makeTri(0, 1, 2);\n makeTri(2, 3, 0);\n }\n function drawTetra(style, xyzv, abcd) {\n var makeTri = function(i, j, k) {\n drawTri(style, [xyzv[i], xyzv[j], xyzv[k]], [abcd[i], abcd[j], abcd[k]]);\n };\n makeTri(0, 1, 2);\n makeTri(3, 0, 1);\n makeTri(2, 3, 0);\n makeTri(1, 2, 3);\n }\n function calcIntersection(pointOut, pointIn, min, max) {\n var value = pointOut[3];\n if (value < min) value = min;\n if (value > max) value = max;\n var ratio = (pointOut[3] - value) / (pointOut[3] - pointIn[3] + 1e-9);\n var result = [];\n for (var s = 0; s < 4; s++) {\n result[s] = (1 - ratio) * pointOut[s] + ratio * pointIn[s];\n }\n return result;\n }\n function inRange(value, min, max) {\n return value >= min && value <= max;\n }\n function almostInFinalRange(value) {\n var vErr = 1e-3 * (vMax - vMin);\n return value >= vMin - vErr && value <= vMax + vErr;\n }\n function getXYZV(indecies) {\n var xyzv = [];\n for (var q = 0; q < 4; q++) {\n var index = indecies[q];\n xyzv.push(\n [\n data._x[index],\n data._y[index],\n data._z[index],\n data._value[index]\n ]\n );\n }\n return xyzv;\n }\n var MAX_PASS = 3;\n function tryCreateTri(style, xyzv, abc, min, max, nPass) {\n if (!nPass) nPass = 1;\n abc = [-1, -1, -1];\n var result = false;\n var ok = [\n inRange(xyzv[0][3], min, max),\n inRange(xyzv[1][3], min, max),\n inRange(xyzv[2][3], min, max)\n ];\n if (!ok[0] && !ok[1] && !ok[2]) {\n return false;\n }\n var tryDrawTri = function(style2, xyzv2, abc2) {\n if (\n // we check here if the points are in `real` iso-min/max range\n almostInFinalRange(xyzv2[0][3]) && almostInFinalRange(xyzv2[1][3]) && almostInFinalRange(xyzv2[2][3])\n ) {\n drawTri(style2, xyzv2, abc2);\n return true;\n } else if (nPass < MAX_PASS) {\n return tryCreateTri(style2, xyzv2, abc2, vMin, vMax, ++nPass);\n }\n return false;\n };\n if (ok[0] && ok[1] && ok[2]) {\n return tryDrawTri(style, xyzv, abc) || result;\n }\n var interpolated = false;\n [\n [0, 1, 2],\n [2, 0, 1],\n [1, 2, 0]\n ].forEach(function(e) {\n if (ok[e[0]] && ok[e[1]] && !ok[e[2]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var p1 = calcIntersection(C2, A2, min, max);\n var p2 = calcIntersection(C2, B2, min, max);\n result = tryDrawTri(style, [p2, p1, A2], [-1, -1, abc[e[0]]]) || result;\n result = tryDrawTri(style, [A2, B2, p2], [abc[e[0]], abc[e[1]], -1]) || result;\n interpolated = true;\n }\n });\n if (interpolated) return result;\n [\n [0, 1, 2],\n [1, 2, 0],\n [2, 0, 1]\n ].forEach(function(e) {\n if (ok[e[0]] && !ok[e[1]] && !ok[e[2]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var p1 = calcIntersection(B2, A2, min, max);\n var p2 = calcIntersection(C2, A2, min, max);\n result = tryDrawTri(style, [p2, p1, A2], [-1, -1, abc[e[0]]]) || result;\n interpolated = true;\n }\n });\n return result;\n }\n function tryCreateTetra(style, abcd, min, max) {\n var result = false;\n var xyzv = getXYZV(abcd);\n var ok = [\n inRange(xyzv[0][3], min, max),\n inRange(xyzv[1][3], min, max),\n inRange(xyzv[2][3], min, max),\n inRange(xyzv[3][3], min, max)\n ];\n if (!ok[0] && !ok[1] && !ok[2] && !ok[3]) {\n return result;\n }\n if (ok[0] && ok[1] && ok[2] && ok[3]) {\n if (drawingSpaceframe) {\n result = drawTetra(style, xyzv, abcd) || result;\n }\n return result;\n }\n var interpolated = false;\n [\n [0, 1, 2, 3],\n [3, 0, 1, 2],\n [2, 3, 0, 1],\n [1, 2, 3, 0]\n ].forEach(function(e) {\n if (ok[e[0]] && ok[e[1]] && ok[e[2]] && !ok[e[3]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var D2 = xyzv[e[3]];\n if (drawingSpaceframe) {\n result = drawTri(style, [A2, B2, C2], [abcd[e[0]], abcd[e[1]], abcd[e[2]]]) || result;\n } else {\n var p1 = calcIntersection(D2, A2, min, max);\n var p2 = calcIntersection(D2, B2, min, max);\n var p3 = calcIntersection(D2, C2, min, max);\n result = drawTri(null, [p1, p2, p3], [-1, -1, -1]) || result;\n }\n interpolated = true;\n }\n });\n if (interpolated) return result;\n [\n [0, 1, 2, 3],\n [1, 2, 3, 0],\n [2, 3, 0, 1],\n [3, 0, 1, 2],\n [0, 2, 3, 1],\n [1, 3, 2, 0]\n ].forEach(function(e) {\n if (ok[e[0]] && ok[e[1]] && !ok[e[2]] && !ok[e[3]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var D2 = xyzv[e[3]];\n var p1 = calcIntersection(C2, A2, min, max);\n var p2 = calcIntersection(C2, B2, min, max);\n var p3 = calcIntersection(D2, B2, min, max);\n var p4 = calcIntersection(D2, A2, min, max);\n if (drawingSpaceframe) {\n result = drawTri(style, [A2, p4, p1], [abcd[e[0]], -1, -1]) || result;\n result = drawTri(style, [B2, p2, p3], [abcd[e[1]], -1, -1]) || result;\n } else {\n result = drawQuad(null, [p1, p2, p3, p4], [-1, -1, -1, -1]) || result;\n }\n interpolated = true;\n }\n });\n if (interpolated) return result;\n [\n [0, 1, 2, 3],\n [1, 2, 3, 0],\n [2, 3, 0, 1],\n [3, 0, 1, 2]\n ].forEach(function(e) {\n if (ok[e[0]] && !ok[e[1]] && !ok[e[2]] && !ok[e[3]]) {\n var A2 = xyzv[e[0]];\n var B2 = xyzv[e[1]];\n var C2 = xyzv[e[2]];\n var D2 = xyzv[e[3]];\n var p1 = calcIntersection(B2, A2, min, max);\n var p2 = calcIntersection(C2, A2, min, max);\n var p3 = calcIntersection(D2, A2, min, max);\n if (drawingSpaceframe) {\n result = drawTri(style, [A2, p1, p2], [abcd[e[0]], -1, -1]) || result;\n result = drawTri(style, [A2, p2, p3], [abcd[e[0]], -1, -1]) || result;\n result = drawTri(style, [A2, p3, p1], [abcd[e[0]], -1, -1]) || result;\n } else {\n result = drawTri(null, [p1, p2, p3], [-1, -1, -1]) || result;\n }\n interpolated = true;\n }\n });\n return result;\n }\n function addCube(style, p000, p001, p010, p011, p100, p101, p110, p111, min, max) {\n var result = false;\n if (drawingSurface) {\n if (styleIncludes(style, \"A\")) {\n result = tryCreateTetra(null, [p000, p001, p010, p100], min, max) || result;\n }\n if (styleIncludes(style, \"B\")) {\n result = tryCreateTetra(null, [p001, p010, p011, p111], min, max) || result;\n }\n if (styleIncludes(style, \"C\")) {\n result = tryCreateTetra(null, [p001, p100, p101, p111], min, max) || result;\n }\n if (styleIncludes(style, \"D\")) {\n result = tryCreateTetra(null, [p010, p100, p110, p111], min, max) || result;\n }\n if (styleIncludes(style, \"E\")) {\n result = tryCreateTetra(null, [p001, p010, p100, p111], min, max) || result;\n }\n }\n if (drawingSpaceframe) {\n result = tryCreateTetra(style, [p001, p010, p100, p111], min, max) || result;\n }\n return result;\n }\n function addRect(style, a, b, c, d, min, max, previousResult) {\n return [\n previousResult[0] === true ? true : tryCreateTri(style, getXYZV([a, b, c]), [a, b, c], min, max),\n previousResult[1] === true ? true : tryCreateTri(style, getXYZV([c, d, a]), [c, d, a], min, max)\n ];\n }\n function begin2dCell(style, p00, p01, p10, p11, min, max, isEven, previousResult) {\n if (isEven) {\n return addRect(style, p00, p01, p11, p10, min, max, previousResult);\n } else {\n return addRect(style, p01, p11, p10, p00, min, max, previousResult);\n }\n }\n function beginSection(style, i, j, k, min, max, distRatios) {\n var result = false;\n var A2, B2, C2, D2;\n var makeSection = function() {\n result = tryCreateTri(style, [A2, B2, C2], [-1, -1, -1], min, max) || result;\n result = tryCreateTri(style, [C2, D2, A2], [-1, -1, -1], min, max) || result;\n };\n var rX = distRatios[0];\n var rY = distRatios[1];\n var rZ = distRatios[2];\n if (rX) {\n A2 = getBetween(getXYZV([getIndex(i, j - 0, k - 0)])[0], getXYZV([getIndex(i - 1, j - 0, k - 0)])[0], rX);\n B2 = getBetween(getXYZV([getIndex(i, j - 0, k - 1)])[0], getXYZV([getIndex(i - 1, j - 0, k - 1)])[0], rX);\n C2 = getBetween(getXYZV([getIndex(i, j - 1, k - 1)])[0], getXYZV([getIndex(i - 1, j - 1, k - 1)])[0], rX);\n D2 = getBetween(getXYZV([getIndex(i, j - 1, k - 0)])[0], getXYZV([getIndex(i - 1, j - 1, k - 0)])[0], rX);\n makeSection();\n }\n if (rY) {\n A2 = getBetween(getXYZV([getIndex(i - 0, j, k - 0)])[0], getXYZV([getIndex(i - 0, j - 1, k - 0)])[0], rY);\n B2 = getBetween(getXYZV([getIndex(i - 0, j, k - 1)])[0], getXYZV([getIndex(i - 0, j - 1, k - 1)])[0], rY);\n C2 = getBetween(getXYZV([getIndex(i - 1, j, k - 1)])[0], getXYZV([getIndex(i - 1, j - 1, k - 1)])[0], rY);\n D2 = getBetween(getXYZV([getIndex(i - 1, j, k - 0)])[0], getXYZV([getIndex(i - 1, j - 1, k - 0)])[0], rY);\n makeSection();\n }\n if (rZ) {\n A2 = getBetween(getXYZV([getIndex(i - 0, j - 0, k)])[0], getXYZV([getIndex(i - 0, j - 0, k - 1)])[0], rZ);\n B2 = getBetween(getXYZV([getIndex(i - 0, j - 1, k)])[0], getXYZV([getIndex(i - 0, j - 1, k - 1)])[0], rZ);\n C2 = getBetween(getXYZV([getIndex(i - 1, j - 1, k)])[0], getXYZV([getIndex(i - 1, j - 1, k - 1)])[0], rZ);\n D2 = getBetween(getXYZV([getIndex(i - 1, j - 0, k)])[0], getXYZV([getIndex(i - 1, j - 0, k - 1)])[0], rZ);\n makeSection();\n }\n return result;\n }\n function begin3dCell(style, p000, p001, p010, p011, p100, p101, p110, p111, min, max, isEven) {\n var cellStyle = style;\n if (isEven) {\n if (drawingSurface && style === \"even\") cellStyle = null;\n return addCube(cellStyle, p000, p001, p010, p011, p100, p101, p110, p111, min, max);\n } else {\n if (drawingSurface && style === \"odd\") cellStyle = null;\n return addCube(cellStyle, p111, p110, p101, p100, p011, p010, p001, p000, min, max);\n }\n }\n function draw2dX(style, items, min, max, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var i = items[q];\n for (var k = 1; k < depth; k++) {\n for (var j = 1; j < height; j++) {\n result.push(\n begin2dCell(\n style,\n getIndex(i, j - 1, k - 1),\n getIndex(i, j - 1, k),\n getIndex(i, j, k - 1),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2,\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function draw2dY(style, items, min, max, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var j = items[q];\n for (var i = 1; i < width; i++) {\n for (var k = 1; k < depth; k++) {\n result.push(\n begin2dCell(\n style,\n getIndex(i - 1, j, k - 1),\n getIndex(i, j, k - 1),\n getIndex(i - 1, j, k),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2,\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function draw2dZ(style, items, min, max, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var k = items[q];\n for (var j = 1; j < height; j++) {\n for (var i = 1; i < width; i++) {\n result.push(\n begin2dCell(\n style,\n getIndex(i - 1, j - 1, k),\n getIndex(i - 1, j, k),\n getIndex(i, j - 1, k),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2,\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function draw3d(style, min, max) {\n for (var k = 1; k < depth; k++) {\n for (var j = 1; j < height; j++) {\n for (var i = 1; i < width; i++) {\n begin3dCell(\n style,\n getIndex(i - 1, j - 1, k - 1),\n getIndex(i - 1, j - 1, k),\n getIndex(i - 1, j, k - 1),\n getIndex(i - 1, j, k),\n getIndex(i, j - 1, k - 1),\n getIndex(i, j - 1, k),\n getIndex(i, j, k - 1),\n getIndex(i, j, k),\n min,\n max,\n (i + j + k) % 2\n );\n }\n }\n }\n }\n function drawSpaceframe(style, min, max) {\n drawingSpaceframe = true;\n draw3d(style, min, max);\n drawingSpaceframe = false;\n }\n function drawSurface(style, min, max) {\n drawingSurface = true;\n draw3d(style, min, max);\n drawingSurface = false;\n }\n function drawSectionX(style, items, min, max, distRatios, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var i = items[q];\n for (var k = 1; k < depth; k++) {\n for (var j = 1; j < height; j++) {\n result.push(\n beginSection(\n style,\n i,\n j,\n k,\n min,\n max,\n distRatios[q],\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function drawSectionY(style, items, min, max, distRatios, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var j = items[q];\n for (var i = 1; i < width; i++) {\n for (var k = 1; k < depth; k++) {\n result.push(\n beginSection(\n style,\n i,\n j,\n k,\n min,\n max,\n distRatios[q],\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function drawSectionZ(style, items, min, max, distRatios, previousResult) {\n var result = [];\n var n = 0;\n for (var q = 0; q < items.length; q++) {\n var k = items[q];\n for (var j = 1; j < height; j++) {\n for (var i = 1; i < width; i++) {\n result.push(\n beginSection(\n style,\n i,\n j,\n k,\n min,\n max,\n distRatios[q],\n previousResult && previousResult[n] ? previousResult[n] : []\n )\n );\n n++;\n }\n }\n }\n return result;\n }\n function createRange(a, b) {\n var range = [];\n for (var q = a; q < b; q++) {\n range.push(q);\n }\n return range;\n }\n function insertGridPoints() {\n for (var i = 0; i < width; i++) {\n for (var j = 0; j < height; j++) {\n for (var k = 0; k < depth; k++) {\n var index = getIndex(i, j, k);\n addVertex(\n data._x[index],\n data._y[index],\n data._z[index],\n data._value[index]\n );\n }\n }\n }\n }\n function drawAll() {\n emptyVertices();\n insertGridPoints();\n var activeStyle = null;\n if (showSpaceframe && spaceframeFill) {\n setFill(spaceframeFill);\n drawSpaceframe(activeStyle, vMin, vMax);\n }\n if (showSurface && surfaceFill) {\n setFill(surfaceFill);\n var surfacePattern = data.surface.pattern;\n var surfaceCount = data.surface.count;\n for (var q = 0; q < surfaceCount; q++) {\n var ratio = surfaceCount === 1 ? 0.5 : q / (surfaceCount - 1);\n var level = (1 - ratio) * vMin + ratio * vMax;\n var d1 = Math.abs(level - minValues);\n var d2 = Math.abs(level - maxValues);\n var ranges = d1 > d2 ? [minValues, level] : [level, maxValues];\n drawSurface(surfacePattern, ranges[0], ranges[1]);\n }\n }\n var setupMinMax = [\n [Math.min(vMin, maxValues), Math.max(vMin, maxValues)],\n [Math.min(minValues, vMax), Math.max(minValues, vMax)]\n ];\n [\"x\", \"y\", \"z\"].forEach(function(e) {\n var preRes = [];\n for (var s = 0; s < setupMinMax.length; s++) {\n var count = 0;\n var activeMin = setupMinMax[s][0];\n var activeMax = setupMinMax[s][1];\n var slice = data.slices[e];\n if (slice.show && slice.fill) {\n setFill(slice.fill);\n var exactIndices = [];\n var ceilIndices = [];\n var distRatios = [];\n if (slice.locations.length) {\n for (var q2 = 0; q2 < slice.locations.length; q2++) {\n var near = findNearestOnAxis(\n slice.locations[q2],\n e === \"x\" ? Xs : e === \"y\" ? Ys : Zs\n );\n if (near.distRatio === 0) {\n exactIndices.push(near.id);\n } else if (near.id > 0) {\n ceilIndices.push(near.id);\n if (e === \"x\") {\n distRatios.push([near.distRatio, 0, 0]);\n } else if (e === \"y\") {\n distRatios.push([0, near.distRatio, 0]);\n } else {\n distRatios.push([0, 0, near.distRatio]);\n }\n }\n }\n } else {\n if (e === \"x\") {\n exactIndices = createRange(1, width - 1);\n } else if (e === \"y\") {\n exactIndices = createRange(1, height - 1);\n } else {\n exactIndices = createRange(1, depth - 1);\n }\n }\n if (ceilIndices.length > 0) {\n if (e === \"x\") {\n preRes[count] = drawSectionX(activeStyle, ceilIndices, activeMin, activeMax, distRatios, preRes[count]);\n } else if (e === \"y\") {\n preRes[count] = drawSectionY(activeStyle, ceilIndices, activeMin, activeMax, distRatios, preRes[count]);\n } else {\n preRes[count] = drawSectionZ(activeStyle, ceilIndices, activeMin, activeMax, distRatios, preRes[count]);\n }\n count++;\n }\n if (exactIndices.length > 0) {\n if (e === \"x\") {\n preRes[count] = draw2dX(activeStyle, exactIndices, activeMin, activeMax, preRes[count]);\n } else if (e === \"y\") {\n preRes[count] = draw2dY(activeStyle, exactIndices, activeMin, activeMax, preRes[count]);\n } else {\n preRes[count] = draw2dZ(activeStyle, exactIndices, activeMin, activeMax, preRes[count]);\n }\n count++;\n }\n }\n var cap = data.caps[e];\n if (cap.show && cap.fill) {\n setFill(cap.fill);\n if (e === \"x\") {\n preRes[count] = draw2dX(activeStyle, [0, width - 1], activeMin, activeMax, preRes[count]);\n } else if (e === \"y\") {\n preRes[count] = draw2dY(activeStyle, [0, height - 1], activeMin, activeMax, preRes[count]);\n } else {\n preRes[count] = draw2dZ(activeStyle, [0, depth - 1], activeMin, activeMax, preRes[count]);\n }\n count++;\n }\n }\n });\n if (numFaces === 0) {\n emptyVertices();\n }\n data._meshX = allXs;\n data._meshY = allYs;\n data._meshZ = allZs;\n data._meshIntensity = allVs;\n data._Xs = Xs;\n data._Ys = Ys;\n data._Zs = Zs;\n }\n drawAll();\n return data;\n }\n function createIsosurfaceTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var mesh = createMesh({ gl: gl2 });\n var result = new IsosurfaceTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n }\n module.exports = {\n findNearestOnAxis,\n generateIsoMeshes,\n createIsosurfaceTrace\n };\n }\n });\n\n // src/traces/isosurface/index.js\n var require_isosurface = __commonJS({\n \"src/traces/isosurface/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes44(),\n supplyDefaults: require_defaults39().supplyDefaults,\n calc: require_calc24(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n plot: require_convert5().createIsosurfaceTrace,\n moduleType: \"trace\",\n name: \"isosurface\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/isosurface.js\n var require_isosurface2 = __commonJS({\n \"lib/isosurface.js\"(exports, module) {\n \"use strict\";\n module.exports = require_isosurface();\n }\n });\n\n // src/traces/volume/attributes.js\n var require_attributes45 = __commonJS({\n \"src/traces/volume/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var isosurfaceAttrs = require_attributes44();\n var surfaceAttrs = require_attributes42();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var attrs = module.exports = overrideAll(extendFlat(\n {\n x: isosurfaceAttrs.x,\n y: isosurfaceAttrs.y,\n z: isosurfaceAttrs.z,\n value: isosurfaceAttrs.value,\n isomin: isosurfaceAttrs.isomin,\n isomax: isosurfaceAttrs.isomax,\n surface: isosurfaceAttrs.surface,\n spaceframe: {\n show: {\n valType: \"boolean\",\n dflt: false\n },\n fill: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n }\n },\n slices: isosurfaceAttrs.slices,\n caps: isosurfaceAttrs.caps,\n text: isosurfaceAttrs.text,\n hovertext: isosurfaceAttrs.hovertext,\n xhoverformat: isosurfaceAttrs.xhoverformat,\n yhoverformat: isosurfaceAttrs.yhoverformat,\n zhoverformat: isosurfaceAttrs.zhoverformat,\n valuehoverformat: isosurfaceAttrs.valuehoverformat,\n hovertemplate: isosurfaceAttrs.hovertemplate\n },\n colorScaleAttrs(\"\", {\n colorAttr: \"`value`\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }),\n {\n colorbar: isosurfaceAttrs.colorbar,\n opacity: isosurfaceAttrs.opacity,\n opacityscale: surfaceAttrs.opacityscale,\n lightposition: isosurfaceAttrs.lightposition,\n lighting: isosurfaceAttrs.lighting,\n flatshading: isosurfaceAttrs.flatshading,\n contour: isosurfaceAttrs.contour,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n }\n ), \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.z.editType = attrs.value.editType = \"calc+clearAxisTypes\";\n }\n });\n\n // src/traces/volume/defaults.js\n var require_defaults40 = __commonJS({\n \"src/traces/volume/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes45();\n var supplyIsoDefaults = require_defaults39().supplyIsoDefaults;\n var opacityscaleDefaults = require_defaults38().opacityscaleDefaults;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n supplyIsoDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n opacityscaleDefaults(traceIn, traceOut, layout, coerce);\n };\n }\n });\n\n // src/traces/volume/convert.js\n var require_convert6 = __commonJS({\n \"src/traces/volume/convert.js\"(exports, module) {\n \"use strict\";\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n var findNearestOnAxis = require_convert5().findNearestOnAxis;\n var generateIsoMeshes = require_convert5().generateIsoMeshes;\n function VolumeTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = \"\";\n this.data = null;\n this.showContour = false;\n }\n var proto = VolumeTrace.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var rawId = selection.data.index;\n var x = this.data._meshX[rawId];\n var y = this.data._meshY[rawId];\n var z = this.data._meshZ[rawId];\n var height = this.data._Ys.length;\n var depth = this.data._Zs.length;\n var i = findNearestOnAxis(x, this.data._Xs).id;\n var j = findNearestOnAxis(y, this.data._Ys).id;\n var k = findNearestOnAxis(z, this.data._Zs).id;\n var selectIndex = selection.index = k + depth * j + depth * height * i;\n selection.traceCoordinate = [\n this.data._meshX[selectIndex],\n this.data._meshY[selectIndex],\n this.data._meshZ[selectIndex],\n this.data._value[selectIndex]\n ];\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n proto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n this.data = generateIsoMeshes(data);\n function toDataCoords(axis, coord, scale, calendar) {\n return coord.map(function(x) {\n return axis.d2l(x, 0, calendar) * scale;\n });\n }\n var positions = zip3(\n toDataCoords(layout.xaxis, data._meshX, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data._meshY, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data._meshZ, scene.dataScale[2], data.zcalendar)\n );\n var cells = zip3(data._meshI, data._meshJ, data._meshK);\n var config = {\n positions,\n cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n opacityscale: data.opacityscale,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n var cOpts = extractOpts(data);\n config.vertexIntensity = data._meshIntensity;\n config.vertexIntensityBounds = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n this.mesh.update(config);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createVolumeTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var mesh = createMesh({ gl: gl2 });\n var result = new VolumeTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n }\n module.exports = createVolumeTrace;\n }\n });\n\n // src/traces/volume/index.js\n var require_volume = __commonJS({\n \"src/traces/volume/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes45(),\n supplyDefaults: require_defaults40(),\n calc: require_calc24(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n plot: require_convert6(),\n moduleType: \"trace\",\n name: \"volume\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/volume.js\n var require_volume2 = __commonJS({\n \"lib/volume.js\"(exports, module) {\n \"use strict\";\n module.exports = require_volume();\n }\n });\n\n // src/traces/mesh3d/defaults.js\n var require_defaults41 = __commonJS({\n \"src/traces/mesh3d/defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes43();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function readComponents(array) {\n var ret = array.map(function(attr) {\n var result = coerce(attr);\n if (result && Lib.isArrayOrTypedArray(result)) return result;\n return null;\n });\n return ret.every(function(x) {\n return x && x.length === ret[0].length;\n }) && ret;\n }\n var coords = readComponents([\"x\", \"y\", \"z\"]);\n if (!coords) {\n traceOut.visible = false;\n return;\n }\n readComponents([\"i\", \"j\", \"k\"]);\n if (traceOut.i && (!traceOut.j || !traceOut.k) || traceOut.j && (!traceOut.k || !traceOut.i) || traceOut.k && (!traceOut.i || !traceOut.j)) {\n traceOut.visible = false;\n return;\n }\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\", \"y\", \"z\"], layout);\n [\n \"lighting.ambient\",\n \"lighting.diffuse\",\n \"lighting.specular\",\n \"lighting.roughness\",\n \"lighting.fresnel\",\n \"lighting.vertexnormalsepsilon\",\n \"lighting.facenormalsepsilon\",\n \"lightposition.x\",\n \"lightposition.y\",\n \"lightposition.z\",\n \"flatshading\",\n \"alphahull\",\n \"delaunayaxis\",\n \"opacity\"\n ].forEach(function(x) {\n coerce(x);\n });\n var showContour = coerce(\"contour.show\");\n if (showContour) {\n coerce(\"contour.color\");\n coerce(\"contour.width\");\n }\n if (\"intensity\" in traceIn) {\n coerce(\"intensity\");\n coerce(\"intensitymode\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n } else {\n traceOut.showscale = false;\n if (\"facecolor\" in traceIn) coerce(\"facecolor\");\n else if (\"vertexcolor\" in traceIn) coerce(\"vertexcolor\");\n else coerce(\"color\", defaultColor);\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/mesh3d/calc.js\n var require_calc25 = __commonJS({\n \"src/traces/mesh3d/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n module.exports = function calc(gd, trace) {\n if (trace.intensity) {\n colorscaleCalc(gd, trace, {\n vals: trace.intensity,\n containerStr: \"\",\n cLetter: \"c\"\n });\n }\n };\n }\n });\n\n // src/traces/mesh3d/convert.js\n var require_convert7 = __commonJS({\n \"src/traces/mesh3d/convert.js\"(exports, module) {\n \"use strict\";\n var createMesh = require_stackgl_modules().gl_mesh3d;\n var triangulate = require_stackgl_modules().delaunay_triangulate;\n var alphaShape = require_stackgl_modules().alpha_shape;\n var convexHull = require_stackgl_modules().convex_hull;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var str2RgbaArray = require_str2rgbarray();\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n function Mesh3DTrace(scene, mesh, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = mesh;\n this.name = \"\";\n this.color = \"#fff\";\n this.data = null;\n this.showContour = false;\n }\n var proto = Mesh3DTrace.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var selectIndex = selection.index = selection.data.index;\n if (selection.data._cellCenter) {\n selection.traceCoordinate = selection.data.dataCoordinate;\n } else {\n selection.traceCoordinate = [\n this.data.x[selectIndex],\n this.data.y[selectIndex],\n this.data.z[selectIndex]\n ];\n }\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n function parseColorArray(colors) {\n var b = [];\n var len = colors.length;\n for (var i = 0; i < len; i++) {\n b[i] = str2RgbaArray(colors[i]);\n }\n return b;\n }\n function toDataCoords(axis, coord, scale, calendar) {\n var b = [];\n var len = coord.length;\n for (var i = 0; i < len; i++) {\n b[i] = axis.d2l(coord[i], 0, calendar) * scale;\n }\n return b;\n }\n function toRoundIndex(a) {\n var b = [];\n var len = a.length;\n for (var i = 0; i < len; i++) {\n b[i] = Math.round(a[i]);\n }\n return b;\n }\n function delaunayCells(delaunayaxis, positions) {\n var d = [\"x\", \"y\", \"z\"].indexOf(delaunayaxis);\n var b = [];\n var len = positions.length;\n for (var i = 0; i < len; i++) {\n b[i] = [positions[i][(d + 1) % 3], positions[i][(d + 2) % 3]];\n }\n return triangulate(b);\n }\n function hasValidIndices(list, numVertices) {\n var len = list.length;\n for (var i = 0; i < len; i++) {\n if (list[i] <= -0.5 || list[i] >= numVertices - 0.5) {\n return false;\n }\n }\n return true;\n }\n proto.update = function(data) {\n var scene = this.scene;\n var layout = scene.fullSceneLayout;\n this.data = data;\n var numVertices = data.x.length;\n var positions = zip3(\n toDataCoords(layout.xaxis, data.x, scene.dataScale[0], data.xcalendar),\n toDataCoords(layout.yaxis, data.y, scene.dataScale[1], data.ycalendar),\n toDataCoords(layout.zaxis, data.z, scene.dataScale[2], data.zcalendar)\n );\n var cells;\n if (data.i && data.j && data.k) {\n if (data.i.length !== data.j.length || data.j.length !== data.k.length || !hasValidIndices(data.i, numVertices) || !hasValidIndices(data.j, numVertices) || !hasValidIndices(data.k, numVertices)) {\n return;\n }\n cells = zip3(\n toRoundIndex(data.i),\n toRoundIndex(data.j),\n toRoundIndex(data.k)\n );\n } else if (data.alphahull === 0) {\n cells = convexHull(positions);\n } else if (data.alphahull > 0) {\n cells = alphaShape(data.alphahull, positions);\n } else {\n cells = delaunayCells(data.delaunayaxis, positions);\n }\n var config = {\n positions,\n cells,\n lightPosition: [data.lightposition.x, data.lightposition.y, data.lightposition.z],\n ambient: data.lighting.ambient,\n diffuse: data.lighting.diffuse,\n specular: data.lighting.specular,\n roughness: data.lighting.roughness,\n fresnel: data.lighting.fresnel,\n vertexNormalsEpsilon: data.lighting.vertexnormalsepsilon,\n faceNormalsEpsilon: data.lighting.facenormalsepsilon,\n opacity: data.opacity,\n contourEnable: data.contour.show,\n contourColor: str2RgbaArray(data.contour.color).slice(0, 3),\n contourWidth: data.contour.width,\n useFacetNormals: data.flatshading\n };\n if (data.intensity) {\n var cOpts = extractOpts(data);\n this.color = \"#fff\";\n var mode = data.intensitymode;\n config[mode + \"Intensity\"] = data.intensity;\n config[mode + \"IntensityBounds\"] = [cOpts.min, cOpts.max];\n config.colormap = parseColorScale(data);\n } else if (data.vertexcolor) {\n this.color = data.vertexcolor[0];\n config.vertexColors = parseColorArray(data.vertexcolor);\n } else if (data.facecolor) {\n this.color = data.facecolor[0];\n config.cellColors = parseColorArray(data.facecolor);\n } else {\n this.color = data.color;\n config.meshColor = str2RgbaArray(data.color);\n }\n this.mesh.update(config);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createMesh3DTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var mesh = createMesh({ gl: gl2 });\n var result = new Mesh3DTrace(scene, mesh, data.uid);\n mesh._trace = result;\n result.update(data);\n scene.glplot.add(mesh);\n return result;\n }\n module.exports = createMesh3DTrace;\n }\n });\n\n // src/traces/mesh3d/index.js\n var require_mesh3d = __commonJS({\n \"src/traces/mesh3d/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes43(),\n supplyDefaults: require_defaults41(),\n calc: require_calc25(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n plot: require_convert7(),\n moduleType: \"trace\",\n name: \"mesh3d\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/mesh3d.js\n var require_mesh3d2 = __commonJS({\n \"lib/mesh3d.js\"(exports, module) {\n \"use strict\";\n module.exports = require_mesh3d();\n }\n });\n\n // src/traces/cone/attributes.js\n var require_attributes46 = __commonJS({\n \"src/traces/cone/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var mesh3dAttrs = require_attributes43();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var attrs = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n u: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n v: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n w: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO add way to specify cone positions independently of the vector field\n // provided, similar to MATLAB's coneplot Cx/Cy/Cz meshgrids,\n // see https://www.mathworks.com/help/matlab/ref/coneplot.html\n //\n // Alternatively, if our goal is only to 'fill in gaps' in the vector data,\n // we could try to extend the heatmap 'connectgaps' algorithm to 3D.\n // From AJ: this particular algorithm which amounts to a Poisson equation,\n // both for interpolation and extrapolation - is the right one to use for\n // cones too. It makes a field with zero divergence, which is a good\n // baseline assumption for vector fields.\n //\n // cones: {\n // // potential attributes to add:\n // //\n // // - meshmode: 'cartesian-product', 'pts', 'grid'\n // //\n // // under `meshmode: 'grid'`\n // // - (x|y|z)grid.start\n // // - (x|y|z)grid.end\n // // - (x|y|z)grid.size\n //\n // x: {\n // valType: 'data_array',\n // editType: 'calc',\n //\n // },\n // y: {\n // valType: 'data_array',\n // editType: 'calc',\n //\n // },\n // z: {\n // valType: 'data_array',\n // editType: 'calc',\n //\n // },\n //\n // editType: 'calc',\n //\n // },\n sizemode: {\n valType: \"enumerated\",\n values: [\"scaled\", \"absolute\", \"raw\"],\n editType: \"calc\",\n dflt: \"scaled\"\n },\n sizeref: {\n valType: \"number\",\n editType: \"calc\",\n min: 0\n },\n anchor: {\n valType: \"enumerated\",\n editType: \"calc\",\n values: [\"tip\", \"tail\", \"cm\", \"center\"],\n dflt: \"cm\"\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({ editType: \"calc\" }, { keys: [\"norm\"] }),\n uhoverformat: axisHoverFormat(\"u\", 1),\n vhoverformat: axisHoverFormat(\"v\", 1),\n whoverformat: axisHoverFormat(\"w\", 1),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n };\n extendFlat(attrs, colorScaleAttrs(\"\", {\n colorAttr: \"u/v/w norm\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }));\n var fromMesh3d = [\"opacity\", \"lightposition\", \"lighting\"];\n fromMesh3d.forEach(function(k) {\n attrs[k] = mesh3dAttrs[k];\n });\n attrs.hoverinfo = extendFlat({}, baseAttrs.hoverinfo, {\n editType: \"calc\",\n flags: [\"x\", \"y\", \"z\", \"u\", \"v\", \"w\", \"norm\", \"text\", \"name\"],\n dflt: \"x+y+z+norm+text+name\"\n });\n module.exports = attrs;\n }\n });\n\n // src/traces/cone/defaults.js\n var require_defaults42 = __commonJS({\n \"src/traces/cone/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes46();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var u = coerce(\"u\");\n var v = coerce(\"v\");\n var w = coerce(\"w\");\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n if (!u || !u.length || !v || !v.length || !w || !w.length || !x || !x.length || !y || !y.length || !z || !z.length) {\n traceOut.visible = false;\n return;\n }\n var sizemode = coerce(\"sizemode\");\n coerce(\"sizeref\", sizemode === \"raw\" ? 1 : 0.5);\n coerce(\"anchor\");\n coerce(\"lighting.ambient\");\n coerce(\"lighting.diffuse\");\n coerce(\"lighting.specular\");\n coerce(\"lighting.roughness\");\n coerce(\"lighting.fresnel\");\n coerce(\"lightposition.x\");\n coerce(\"lightposition.y\");\n coerce(\"lightposition.z\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"uhoverformat\");\n coerce(\"vhoverformat\");\n coerce(\"whoverformat\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/cone/calc.js\n var require_calc26 = __commonJS({\n \"src/traces/cone/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n module.exports = function calc(gd, trace) {\n var u = trace.u;\n var v = trace.v;\n var w = trace.w;\n var len = Math.min(\n trace.x.length,\n trace.y.length,\n trace.z.length,\n u.length,\n v.length,\n w.length\n );\n var normMax = -Infinity;\n var normMin = Infinity;\n for (var i = 0; i < len; i++) {\n var uu = u[i];\n var vv = v[i];\n var ww = w[i];\n var norm = Math.sqrt(uu * uu + vv * vv + ww * ww);\n normMax = Math.max(normMax, norm);\n normMin = Math.min(normMin, norm);\n }\n trace._len = len;\n trace._normMax = normMax;\n colorscaleCalc(gd, trace, {\n vals: [normMin, normMax],\n containerStr: \"\",\n cLetter: \"c\"\n });\n };\n }\n });\n\n // src/traces/cone/convert.js\n var require_convert8 = __commonJS({\n \"src/traces/cone/convert.js\"(exports, module) {\n \"use strict\";\n var conePlot = require_stackgl_modules().gl_cone3d;\n var createConeMesh = require_stackgl_modules().gl_cone3d.createConeMesh;\n var simpleMap = require_lib().simpleMap;\n var parseColorScale = require_gl_format_color().parseColorScale;\n var extractOpts = require_colorscale().extractOpts;\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var zip3 = require_zip3();\n function Cone(scene, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = null;\n this.data = null;\n }\n var proto = Cone.prototype;\n proto.handlePick = function(selection) {\n if (selection.object === this.mesh) {\n var selectIndex = selection.index = selection.data.index;\n var xx = this.data.x[selectIndex];\n var yy = this.data.y[selectIndex];\n var zz = this.data.z[selectIndex];\n var uu = this.data.u[selectIndex];\n var vv = this.data.v[selectIndex];\n var ww = this.data.w[selectIndex];\n selection.traceCoordinate = [\n xx,\n yy,\n zz,\n uu,\n vv,\n ww,\n Math.sqrt(uu * uu + vv * vv + ww * ww)\n ];\n var text = this.data.hovertext || this.data.text;\n if (isArrayOrTypedArray(text) && text[selectIndex] !== void 0) {\n selection.textLabel = text[selectIndex];\n } else if (text) {\n selection.textLabel = text;\n }\n return true;\n }\n };\n var axisName2scaleIndex = { xaxis: 0, yaxis: 1, zaxis: 2 };\n var anchor2coneOffset = { tip: 1, tail: 0, cm: 0.25, center: 0.5 };\n var anchor2coneSpan = { tip: 1, tail: 1, cm: 0.75, center: 0.5 };\n function convert(scene, trace) {\n var sceneLayout = scene.fullSceneLayout;\n var dataScale = scene.dataScale;\n var coneOpts = {};\n function toDataCoords(arr, axisName) {\n var ax = sceneLayout[axisName];\n var scale = dataScale[axisName2scaleIndex[axisName]];\n return simpleMap(arr, function(v) {\n return ax.d2l(v) * scale;\n });\n }\n coneOpts.vectors = zip3(\n toDataCoords(trace.u, \"xaxis\"),\n toDataCoords(trace.v, \"yaxis\"),\n toDataCoords(trace.w, \"zaxis\"),\n trace._len\n );\n coneOpts.positions = zip3(\n toDataCoords(trace.x, \"xaxis\"),\n toDataCoords(trace.y, \"yaxis\"),\n toDataCoords(trace.z, \"zaxis\"),\n trace._len\n );\n var cOpts = extractOpts(trace);\n coneOpts.colormap = parseColorScale(trace);\n coneOpts.vertexIntensityBounds = [cOpts.min / trace._normMax, cOpts.max / trace._normMax];\n coneOpts.coneOffset = anchor2coneOffset[trace.anchor];\n var sizemode = trace.sizemode;\n if (sizemode === \"scaled\") {\n coneOpts.coneSize = trace.sizeref || 0.5;\n } else if (sizemode === \"absolute\") {\n coneOpts.coneSize = trace.sizeref && trace._normMax ? trace.sizeref / trace._normMax : 0.5;\n } else if (sizemode === \"raw\") {\n coneOpts.coneSize = trace.sizeref;\n }\n coneOpts.coneSizemode = sizemode;\n var meshData = conePlot(coneOpts);\n var lp = trace.lightposition;\n meshData.lightPosition = [lp.x, lp.y, lp.z];\n meshData.ambient = trace.lighting.ambient;\n meshData.diffuse = trace.lighting.diffuse;\n meshData.specular = trace.lighting.specular;\n meshData.roughness = trace.lighting.roughness;\n meshData.fresnel = trace.lighting.fresnel;\n meshData.opacity = trace.opacity;\n trace._pad = anchor2coneSpan[trace.anchor] * meshData.vectorScale * meshData.coneScale * trace._normMax;\n return meshData;\n }\n proto.update = function(data) {\n this.data = data;\n var meshData = convert(this.scene, data);\n this.mesh.update(meshData);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createConeTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var meshData = convert(scene, data);\n var mesh = createConeMesh(gl2, meshData);\n var cone = new Cone(scene, data.uid);\n cone.mesh = mesh;\n cone.data = data;\n mesh._trace = cone;\n scene.glplot.add(mesh);\n return cone;\n }\n module.exports = createConeTrace;\n }\n });\n\n // src/traces/cone/index.js\n var require_cone = __commonJS({\n \"src/traces/cone/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"cone\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n attributes: require_attributes46(),\n supplyDefaults: require_defaults42(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n calc: require_calc26(),\n plot: require_convert8(),\n eventData: function(out, pt) {\n out.norm = pt.traceCoordinate[6];\n return out;\n },\n meta: {}\n };\n }\n });\n\n // lib/cone.js\n var require_cone2 = __commonJS({\n \"lib/cone.js\"(exports, module) {\n \"use strict\";\n module.exports = require_cone();\n }\n });\n\n // src/traces/streamtube/attributes.js\n var require_attributes47 = __commonJS({\n \"src/traces/streamtube/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var mesh3dAttrs = require_attributes43();\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n var attrs = {\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n u: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n v: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n w: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n starts: {\n x: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n maxdisplayed: {\n valType: \"integer\",\n min: 0,\n dflt: 1e3,\n editType: \"calc\"\n },\n // TODO\n //\n // Should add 'absolute' (like cone traces have), but currently gl-streamtube3d's\n // `absoluteTubeSize` doesn't behave well enough for our needs.\n //\n // 'fixed' would be a nice addition to plot stream 'lines', see\n // https://github.com/plotly/plotly.js/commit/812be20750e21e0a1831975001c248d365850f73#r29129877\n //\n // sizemode: {\n // valType: 'enumerated',\n // values: ['scaled', 'absolute', 'fixed'],\n // dflt: 'scaled',\n // editType: 'calc',\n //\n // },\n sizeref: {\n valType: \"number\",\n editType: \"calc\",\n min: 0,\n dflt: 1\n },\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n hovertemplate: hovertemplateAttrs({ editType: \"calc\" }, {\n keys: [\n \"tubex\",\n \"tubey\",\n \"tubez\",\n \"tubeu\",\n \"tubev\",\n \"tubew\",\n \"norm\",\n \"divergence\"\n ]\n }),\n uhoverformat: axisHoverFormat(\"u\", 1),\n vhoverformat: axisHoverFormat(\"v\", 1),\n whoverformat: axisHoverFormat(\"w\", 1),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n zhoverformat: axisHoverFormat(\"z\"),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n };\n extendFlat(attrs, colorScaleAttrs(\"\", {\n colorAttr: \"u/v/w norm\",\n showScaleDflt: true,\n editTypeOverride: \"calc\"\n }));\n var fromMesh3d = [\"opacity\", \"lightposition\", \"lighting\"];\n fromMesh3d.forEach(function(k) {\n attrs[k] = mesh3dAttrs[k];\n });\n attrs.hoverinfo = extendFlat({}, baseAttrs.hoverinfo, {\n editType: \"calc\",\n flags: [\"x\", \"y\", \"z\", \"u\", \"v\", \"w\", \"norm\", \"divergence\", \"text\", \"name\"],\n dflt: \"x+y+z+norm+text+name\"\n });\n module.exports = attrs;\n }\n });\n\n // src/traces/streamtube/defaults.js\n var require_defaults43 = __commonJS({\n \"src/traces/streamtube/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes47();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var u = coerce(\"u\");\n var v = coerce(\"v\");\n var w = coerce(\"w\");\n var x = coerce(\"x\");\n var y = coerce(\"y\");\n var z = coerce(\"z\");\n if (!u || !u.length || !v || !v.length || !w || !w.length || !x || !x.length || !y || !y.length || !z || !z.length) {\n traceOut.visible = false;\n return;\n }\n coerce(\"starts.x\");\n coerce(\"starts.y\");\n coerce(\"starts.z\");\n coerce(\"maxdisplayed\");\n coerce(\"sizeref\");\n coerce(\"lighting.ambient\");\n coerce(\"lighting.diffuse\");\n coerce(\"lighting.specular\");\n coerce(\"lighting.roughness\");\n coerce(\"lighting.fresnel\");\n coerce(\"lightposition.x\");\n coerce(\"lightposition.y\");\n coerce(\"lightposition.z\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"c\" });\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"uhoverformat\");\n coerce(\"vhoverformat\");\n coerce(\"whoverformat\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"zhoverformat\");\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/streamtube/convert.js\n var require_convert9 = __commonJS({\n \"src/traces/streamtube/convert.js\"(exports, module) {\n \"use strict\";\n var tube2mesh = require_stackgl_modules().gl_streamtube3d;\n var createTubeMesh = tube2mesh.createTubeMesh;\n var Lib = require_lib();\n var parseColorScale = require_gl_format_color().parseColorScale;\n var extractOpts = require_colorscale().extractOpts;\n var zip3 = require_zip3();\n var axisName2scaleIndex = { xaxis: 0, yaxis: 1, zaxis: 2 };\n function Streamtube(scene, uid) {\n this.scene = scene;\n this.uid = uid;\n this.mesh = null;\n this.data = null;\n }\n var proto = Streamtube.prototype;\n proto.handlePick = function(selection) {\n var sceneLayout = this.scene.fullSceneLayout;\n var dataScale = this.scene.dataScale;\n function fromDataScale(v, axisName) {\n var ax = sceneLayout[axisName];\n var scale = dataScale[axisName2scaleIndex[axisName]];\n return ax.l2c(v) / scale;\n }\n if (selection.object === this.mesh) {\n var pos = selection.data.position;\n var uvx = selection.data.velocity;\n selection.traceCoordinate = [\n fromDataScale(pos[0], \"xaxis\"),\n fromDataScale(pos[1], \"yaxis\"),\n fromDataScale(pos[2], \"zaxis\"),\n fromDataScale(uvx[0], \"xaxis\"),\n fromDataScale(uvx[1], \"yaxis\"),\n fromDataScale(uvx[2], \"zaxis\"),\n // u/v/w norm\n selection.data.intensity * this.data._normMax,\n // divergence\n selection.data.divergence\n ];\n selection.textLabel = this.data.hovertext || this.data.text;\n return true;\n }\n };\n function getDfltStartingPositions(vec) {\n var len = vec.length;\n var s;\n if (len > 2) {\n s = vec.slice(1, len - 1);\n } else if (len === 2) {\n s = [(vec[0] + vec[1]) / 2];\n } else {\n s = vec;\n }\n return s;\n }\n function getBoundPads(vec) {\n var len = vec.length;\n if (len === 1) {\n return [0.5, 0.5];\n } else {\n return [vec[1] - vec[0], vec[len - 1] - vec[len - 2]];\n }\n }\n function convert(scene, trace) {\n var sceneLayout = scene.fullSceneLayout;\n var dataScale = scene.dataScale;\n var len = trace._len;\n var tubeOpts = {};\n function toDataCoords(arr, axisName) {\n var ax = sceneLayout[axisName];\n var scale = dataScale[axisName2scaleIndex[axisName]];\n return Lib.simpleMap(arr, function(v) {\n return ax.d2l(v) * scale;\n });\n }\n tubeOpts.vectors = zip3(\n toDataCoords(trace._u, \"xaxis\"),\n toDataCoords(trace._v, \"yaxis\"),\n toDataCoords(trace._w, \"zaxis\"),\n len\n );\n if (!len) {\n return {\n positions: [],\n cells: []\n };\n }\n var meshx = toDataCoords(trace._Xs, \"xaxis\");\n var meshy = toDataCoords(trace._Ys, \"yaxis\");\n var meshz = toDataCoords(trace._Zs, \"zaxis\");\n tubeOpts.meshgrid = [meshx, meshy, meshz];\n tubeOpts.gridFill = trace._gridFill;\n var slen = trace._slen;\n if (slen) {\n tubeOpts.startingPositions = zip3(\n toDataCoords(trace._startsX, \"xaxis\"),\n toDataCoords(trace._startsY, \"yaxis\"),\n toDataCoords(trace._startsZ, \"zaxis\")\n );\n } else {\n var sy0 = meshy[0];\n var sx = getDfltStartingPositions(meshx);\n var sz = getDfltStartingPositions(meshz);\n var startingPositions = new Array(sx.length * sz.length);\n var m = 0;\n for (var i = 0; i < sx.length; i++) {\n for (var k = 0; k < sz.length; k++) {\n startingPositions[m++] = [sx[i], sy0, sz[k]];\n }\n }\n tubeOpts.startingPositions = startingPositions;\n }\n tubeOpts.colormap = parseColorScale(trace);\n tubeOpts.tubeSize = trace.sizeref;\n tubeOpts.maxLength = trace.maxdisplayed;\n var xbnds = toDataCoords(trace._xbnds, \"xaxis\");\n var ybnds = toDataCoords(trace._ybnds, \"yaxis\");\n var zbnds = toDataCoords(trace._zbnds, \"zaxis\");\n var xpads = getBoundPads(meshx);\n var ypads = getBoundPads(meshy);\n var zpads = getBoundPads(meshz);\n var bounds = [\n [xbnds[0] - xpads[0], ybnds[0] - ypads[0], zbnds[0] - zpads[0]],\n [xbnds[1] + xpads[1], ybnds[1] + ypads[1], zbnds[1] + zpads[1]]\n ];\n var meshData = tube2mesh(tubeOpts, bounds);\n var cOpts = extractOpts(trace);\n meshData.vertexIntensityBounds = [cOpts.min / trace._normMax, cOpts.max / trace._normMax];\n var lp = trace.lightposition;\n meshData.lightPosition = [lp.x, lp.y, lp.z];\n meshData.ambient = trace.lighting.ambient;\n meshData.diffuse = trace.lighting.diffuse;\n meshData.specular = trace.lighting.specular;\n meshData.roughness = trace.lighting.roughness;\n meshData.fresnel = trace.lighting.fresnel;\n meshData.opacity = trace.opacity;\n trace._pad = meshData.tubeScale * trace.sizeref * 2;\n return meshData;\n }\n proto.update = function(data) {\n this.data = data;\n var meshData = convert(this.scene, data);\n this.mesh.update(meshData);\n };\n proto.dispose = function() {\n this.scene.glplot.remove(this.mesh);\n this.mesh.dispose();\n };\n function createStreamtubeTrace(scene, data) {\n var gl2 = scene.glplot.gl;\n var meshData = convert(scene, data);\n var mesh = createTubeMesh(gl2, meshData);\n var streamtube = new Streamtube(scene, data.uid);\n streamtube.mesh = mesh;\n streamtube.data = data;\n mesh._trace = streamtube;\n scene.glplot.add(mesh);\n return streamtube;\n }\n module.exports = createStreamtubeTrace;\n }\n });\n\n // src/traces/streamtube/index.js\n var require_streamtube = __commonJS({\n \"src/traces/streamtube/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"streamtube\",\n basePlotModule: require_gl3d(),\n categories: [\"gl3d\", \"showLegend\"],\n attributes: require_attributes47(),\n supplyDefaults: require_defaults43(),\n colorbar: {\n min: \"cmin\",\n max: \"cmax\"\n },\n calc: require_calc23().calc,\n plot: require_convert9(),\n eventData: function(out, pt) {\n out.tubex = out.x;\n out.tubey = out.y;\n out.tubez = out.z;\n out.tubeu = pt.traceCoordinate[3];\n out.tubev = pt.traceCoordinate[4];\n out.tubew = pt.traceCoordinate[5];\n out.norm = pt.traceCoordinate[6];\n out.divergence = pt.traceCoordinate[7];\n delete out.x;\n delete out.y;\n delete out.z;\n return out;\n },\n meta: {}\n };\n }\n });\n\n // lib/streamtube.js\n var require_streamtube2 = __commonJS({\n \"lib/streamtube.js\"(exports, module) {\n \"use strict\";\n module.exports = require_streamtube();\n }\n });\n\n // src/traces/scattergeo/attributes.js\n var require_attributes48 = __commonJS({\n \"src/traces/scattergeo/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var colorAttributes = require_attributes8();\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = overrideAll({\n lon: {\n valType: \"data_array\"\n },\n lat: {\n valType: \"data_array\"\n },\n locations: {\n valType: \"data_array\"\n },\n locationmode: {\n valType: \"enumerated\",\n values: [\"ISO-3\", \"USA-states\", \"country names\", \"geojson-id\"],\n dflt: \"ISO-3\"\n },\n geojson: {\n valType: \"any\",\n editType: \"calc\"\n },\n featureidkey: {\n valType: \"string\",\n editType: \"calc\",\n dflt: \"id\"\n },\n mode: extendFlat({}, scatterAttrs.mode, { dflt: \"markers\" }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"lat\", \"lon\", \"location\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: extendFlat(\n {\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n angle: scatterMarkerAttrs.angle,\n angleref: extendFlat({}, scatterMarkerAttrs.angleref, {\n values: [\"previous\", \"up\", \"north\"]\n }),\n standoff: scatterMarkerAttrs.standoff,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat(\n {\n width: scatterMarkerLineAttrs.width\n },\n colorAttributes(\"marker.line\")\n ),\n gradient: scatterMarkerAttrs.gradient\n },\n colorAttributes(\"marker\")\n ),\n fill: {\n valType: \"enumerated\",\n values: [\"none\", \"toself\"],\n dflt: \"none\"\n },\n fillcolor: makeFillcolorAttr(),\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"location\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs()\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/scattergeo/defaults.js\n var require_defaults44 = __commonJS({\n \"src/traces/scattergeo/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes48();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var len;\n if (locations && locations.length) {\n var geojson = coerce(\"geojson\");\n var locationmodeDflt;\n if (typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson)) {\n locationmodeDflt = \"geojson-id\";\n }\n var locationMode = coerce(\"locationmode\", locationmodeDflt);\n if (locationMode === \"geojson-id\") {\n coerce(\"featureidkey\");\n }\n len = locations.length;\n } else {\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n len = Math.min(lon.length, lat.length);\n }\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scattergeo/format_labels.js\n var require_format_labels3 = __commonJS({\n \"src/traces/scattergeo/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var geo = fullLayout[trace.geo]._subplot;\n var ax = geo.mockAxis;\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scattergeo/calc.js\n var require_calc27 = __commonJS({\n \"src/traces/scattergeo/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var calcMarkerColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var _ = require_lib()._;\n function isNonBlankString(v) {\n return v && typeof v === \"string\";\n }\n module.exports = function calc(gd, trace) {\n var hasLocationData = isArrayOrTypedArray(trace.locations);\n var len = hasLocationData ? trace.locations.length : trace._length;\n var calcTrace = new Array(len);\n var isValidLoc;\n if (trace.geojson) {\n isValidLoc = function(v) {\n return isNonBlankString(v) || isNumeric(v);\n };\n } else {\n isValidLoc = isNonBlankString;\n }\n for (var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n if (hasLocationData) {\n var loc = trace.locations[i];\n calcPt.loc = isValidLoc(loc) ? loc : null;\n } else {\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n if (isNumeric(lon) && isNumeric(lat)) calcPt.lonlat = [+lon, +lat];\n else calcPt.lonlat = [BADNUM, BADNUM];\n }\n }\n arraysToCalcdata(calcTrace, trace);\n calcMarkerColorscale(gd, trace);\n calcSelection(calcTrace, trace);\n if (len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, \"lat:\") + \" \",\n lon: _(gd, \"lon:\") + \" \"\n }\n };\n }\n return calcTrace;\n };\n }\n });\n\n // src/plots/geo/constants.js\n var require_constants22 = __commonJS({\n \"src/plots/geo/constants.js\"(exports) {\n \"use strict\";\n exports.projNames = {\n airy: \"airy\",\n aitoff: \"aitoff\",\n \"albers usa\": \"albersUsa\",\n albers: \"albers\",\n // 'armadillo': 'armadillo',\n august: \"august\",\n \"azimuthal equal area\": \"azimuthalEqualArea\",\n \"azimuthal equidistant\": \"azimuthalEquidistant\",\n baker: \"baker\",\n // 'berghaus': 'berghaus',\n bertin1953: \"bertin1953\",\n boggs: \"boggs\",\n bonne: \"bonne\",\n bottomley: \"bottomley\",\n bromley: \"bromley\",\n // 'chamberlin africa': 'chamberlinAfrica',\n // 'chamberlin': 'chamberlin',\n collignon: \"collignon\",\n \"conic conformal\": \"conicConformal\",\n \"conic equal area\": \"conicEqualArea\",\n \"conic equidistant\": \"conicEquidistant\",\n craig: \"craig\",\n craster: \"craster\",\n \"cylindrical equal area\": \"cylindricalEqualArea\",\n \"cylindrical stereographic\": \"cylindricalStereographic\",\n eckert1: \"eckert1\",\n eckert2: \"eckert2\",\n eckert3: \"eckert3\",\n eckert4: \"eckert4\",\n eckert5: \"eckert5\",\n eckert6: \"eckert6\",\n eisenlohr: \"eisenlohr\",\n \"equal earth\": \"equalEarth\",\n equirectangular: \"equirectangular\",\n fahey: \"fahey\",\n \"foucaut sinusoidal\": \"foucautSinusoidal\",\n foucaut: \"foucaut\",\n // 'gilbert': 'gilbert',\n // 'gingery': 'gingery',\n ginzburg4: \"ginzburg4\",\n ginzburg5: \"ginzburg5\",\n ginzburg6: \"ginzburg6\",\n ginzburg8: \"ginzburg8\",\n ginzburg9: \"ginzburg9\",\n gnomonic: \"gnomonic\",\n \"gringorten quincuncial\": \"gringortenQuincuncial\",\n gringorten: \"gringorten\",\n guyou: \"guyou\",\n // 'hammer retroazimuthal': 'hammerRetroazimuthal',\n hammer: \"hammer\",\n // 'healpix': 'healpix',\n hill: \"hill\",\n homolosine: \"homolosine\",\n hufnagel: \"hufnagel\",\n hyperelliptical: \"hyperelliptical\",\n // 'interrupted boggs': 'interruptedBoggs',\n // 'interrupted homolosine': 'interruptedHomolosine',\n // 'interrupted mollweide hemispheres': 'interruptedMollweideHemispheres',\n // 'interrupted mollweide': 'interruptedMollweide',\n // 'interrupted quartic authalic': 'interruptedQuarticAuthalic',\n // 'interrupted sinu mollweide': 'interruptedSinuMollweide',\n // 'interrupted sinusoidal': 'interruptedSinusoidal',\n kavrayskiy7: \"kavrayskiy7\",\n lagrange: \"lagrange\",\n larrivee: \"larrivee\",\n laskowski: \"laskowski\",\n // 'littrow': 'littrow',\n loximuthal: \"loximuthal\",\n mercator: \"mercator\",\n miller: \"miller\",\n // 'modified stereographic alaska': 'modifiedStereographicAlaska',\n // 'modified stereographic gs48': 'modifiedStereographicGs48',\n // 'modified stereographic gs50': 'modifiedStereographicGs50',\n // 'modified stereographic lee': 'modifiedStereographicLee',\n // 'modified stereographic miller': 'modifiedStereographicMiller',\n // 'modified stereographic': 'modifiedStereographic',\n mollweide: \"mollweide\",\n \"mt flat polar parabolic\": \"mtFlatPolarParabolic\",\n \"mt flat polar quartic\": \"mtFlatPolarQuartic\",\n \"mt flat polar sinusoidal\": \"mtFlatPolarSinusoidal\",\n \"natural earth\": \"naturalEarth\",\n \"natural earth1\": \"naturalEarth1\",\n \"natural earth2\": \"naturalEarth2\",\n \"nell hammer\": \"nellHammer\",\n nicolosi: \"nicolosi\",\n orthographic: \"orthographic\",\n patterson: \"patterson\",\n \"peirce quincuncial\": \"peirceQuincuncial\",\n polyconic: \"polyconic\",\n // 'polyhedral butterfly': 'polyhedralButterfly',\n // 'polyhedral collignon': 'polyhedralCollignon',\n // 'polyhedral waterman': 'polyhedralWaterman',\n \"rectangular polyconic\": \"rectangularPolyconic\",\n robinson: \"robinson\",\n satellite: \"satellite\",\n \"sinu mollweide\": \"sinuMollweide\",\n sinusoidal: \"sinusoidal\",\n stereographic: \"stereographic\",\n times: \"times\",\n \"transverse mercator\": \"transverseMercator\",\n // 'two point azimuthalUsa': 'twoPointAzimuthalUsa',\n // 'two point azimuthal': 'twoPointAzimuthal',\n // 'two point equidistantUsa': 'twoPointEquidistantUsa',\n // 'two point equidistant': 'twoPointEquidistant',\n \"van der grinten\": \"vanDerGrinten\",\n \"van der grinten2\": \"vanDerGrinten2\",\n \"van der grinten3\": \"vanDerGrinten3\",\n \"van der grinten4\": \"vanDerGrinten4\",\n wagner4: \"wagner4\",\n wagner6: \"wagner6\",\n // 'wagner7': 'wagner7',\n // 'wagner': 'wagner',\n wiechel: \"wiechel\",\n \"winkel tripel\": \"winkel3\",\n winkel3: \"winkel3\"\n };\n exports.axesNames = [\"lonaxis\", \"lataxis\"];\n exports.lonaxisSpan = {\n orthographic: 180,\n \"azimuthal equal area\": 360,\n \"azimuthal equidistant\": 360,\n \"conic conformal\": 180,\n gnomonic: 160,\n stereographic: 180,\n \"transverse mercator\": 180,\n \"*\": 360\n };\n exports.lataxisSpan = {\n \"conic conformal\": 150,\n stereographic: 179.5,\n \"*\": 180\n };\n exports.scopeDefaults = {\n world: {\n lonaxisRange: [-180, 180],\n lataxisRange: [-90, 90],\n projType: \"equirectangular\",\n projRotate: [0, 0, 0]\n },\n usa: {\n lonaxisRange: [-180, -50],\n lataxisRange: [15, 80],\n projType: \"albers usa\"\n },\n europe: {\n lonaxisRange: [-30, 60],\n lataxisRange: [30, 85],\n projType: \"conic conformal\",\n projRotate: [15, 0, 0],\n projParallels: [0, 60]\n },\n asia: {\n lonaxisRange: [22, 160],\n lataxisRange: [-15, 55],\n projType: \"mercator\",\n projRotate: [0, 0, 0]\n },\n africa: {\n lonaxisRange: [-30, 60],\n lataxisRange: [-40, 40],\n projType: \"mercator\",\n projRotate: [0, 0, 0]\n },\n \"north america\": {\n lonaxisRange: [-180, -45],\n lataxisRange: [5, 85],\n projType: \"conic conformal\",\n projRotate: [-100, 0, 0],\n projParallels: [29.5, 45.5]\n },\n \"south america\": {\n lonaxisRange: [-100, -30],\n lataxisRange: [-60, 15],\n projType: \"mercator\",\n projRotate: [0, 0, 0]\n }\n };\n exports.clipPad = 1e-3;\n exports.precision = 0.1;\n exports.landColor = \"#F0DC82\";\n exports.waterColor = \"#3399FF\";\n exports.locationmodeToLayer = {\n \"ISO-3\": \"countries\",\n \"USA-states\": \"subunits\",\n \"country names\": \"countries\"\n };\n exports.sphereSVG = { type: \"Sphere\" };\n exports.fillLayers = {\n ocean: 1,\n land: 1,\n lakes: 1\n };\n exports.lineLayers = {\n subunits: 1,\n countries: 1,\n coastlines: 1,\n rivers: 1,\n frame: 1\n };\n exports.layers = [\n \"bg\",\n \"ocean\",\n \"land\",\n \"lakes\",\n \"subunits\",\n \"countries\",\n \"coastlines\",\n \"rivers\",\n \"lataxis\",\n \"lonaxis\",\n \"frame\",\n \"backplot\",\n \"frontplot\"\n ];\n exports.layersForChoropleth = [\n \"bg\",\n \"ocean\",\n \"land\",\n \"subunits\",\n \"countries\",\n \"coastlines\",\n \"lataxis\",\n \"lonaxis\",\n \"frame\",\n \"backplot\",\n \"rivers\",\n \"lakes\",\n \"frontplot\"\n ];\n exports.layerNameToAdjective = {\n ocean: \"ocean\",\n land: \"land\",\n lakes: \"lake\",\n subunits: \"subunit\",\n countries: \"country\",\n coastlines: \"coastline\",\n rivers: \"river\",\n frame: \"frame\"\n };\n }\n });\n\n // node_modules/topojson-client/dist/topojson-client.js\n var require_topojson_client = __commonJS({\n \"node_modules/topojson-client/dist/topojson-client.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.topojson = global2.topojson || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function identity2(x) {\n return x;\n }\n function transform(transform2) {\n if (transform2 == null) return identity2;\n var x0, y0, kx = transform2.scale[0], ky = transform2.scale[1], dx = transform2.translate[0], dy = transform2.translate[1];\n return function(input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2, n = input.length, output = new Array(n);\n output[0] = (x0 += input[0]) * kx + dx;\n output[1] = (y0 += input[1]) * ky + dy;\n while (j < n) output[j] = input[j], ++j;\n return output;\n };\n }\n function bbox(topology) {\n var t = transform(topology.transform), key, x0 = Infinity, y0 = x0, x1 = -x0, y1 = -x0;\n function bboxPoint(p) {\n p = t(p);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n function bboxGeometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(bboxGeometry);\n break;\n case \"Point\":\n bboxPoint(o.coordinates);\n break;\n case \"MultiPoint\":\n o.coordinates.forEach(bboxPoint);\n break;\n }\n }\n topology.arcs.forEach(function(arc) {\n var i = -1, n = arc.length, p;\n while (++i < n) {\n p = t(arc[i], i);\n if (p[0] < x0) x0 = p[0];\n if (p[0] > x1) x1 = p[0];\n if (p[1] < y0) y0 = p[1];\n if (p[1] > y1) y1 = p[1];\n }\n });\n for (key in topology.objects) {\n bboxGeometry(topology.objects[key]);\n }\n return [x0, y0, x1, y1];\n }\n function reverse(array, n) {\n var t, j = array.length, i = j - n;\n while (i < --j) t = array[i], array[i++] = array[j], array[j] = t;\n }\n function feature(topology, o) {\n if (typeof o === \"string\") o = topology.objects[o];\n return o.type === \"GeometryCollection\" ? { type: \"FeatureCollection\", features: o.geometries.map(function(o2) {\n return feature$1(topology, o2);\n }) } : feature$1(topology, o);\n }\n function feature$1(topology, o) {\n var id = o.id, bbox2 = o.bbox, properties = o.properties == null ? {} : o.properties, geometry = object(topology, o);\n return id == null && bbox2 == null ? { type: \"Feature\", properties, geometry } : bbox2 == null ? { type: \"Feature\", id, properties, geometry } : { type: \"Feature\", id, bbox: bbox2, properties, geometry };\n }\n function object(topology, o) {\n var transformPoint = transform(topology.transform), arcs = topology.arcs;\n function arc(i, points) {\n if (points.length) points.pop();\n for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length; k < n; ++k) {\n points.push(transformPoint(a[k], k));\n }\n if (i < 0) reverse(points, n);\n }\n function point(p) {\n return transformPoint(p);\n }\n function line(arcs2) {\n var points = [];\n for (var i = 0, n = arcs2.length; i < n; ++i) arc(arcs2[i], points);\n if (points.length < 2) points.push(points[0]);\n return points;\n }\n function ring(arcs2) {\n var points = line(arcs2);\n while (points.length < 4) points.push(points[0]);\n return points;\n }\n function polygon(arcs2) {\n return arcs2.map(ring);\n }\n function geometry(o2) {\n var type = o2.type, coordinates;\n switch (type) {\n case \"GeometryCollection\":\n return { type, geometries: o2.geometries.map(geometry) };\n case \"Point\":\n coordinates = point(o2.coordinates);\n break;\n case \"MultiPoint\":\n coordinates = o2.coordinates.map(point);\n break;\n case \"LineString\":\n coordinates = line(o2.arcs);\n break;\n case \"MultiLineString\":\n coordinates = o2.arcs.map(line);\n break;\n case \"Polygon\":\n coordinates = polygon(o2.arcs);\n break;\n case \"MultiPolygon\":\n coordinates = o2.arcs.map(polygon);\n break;\n default:\n return null;\n }\n return { type, coordinates };\n }\n return geometry(o);\n }\n function stitch(topology, arcs) {\n var stitchedArcs = {}, fragmentByStart = {}, fragmentByEnd = {}, fragments = [], emptyIndex = -1;\n arcs.forEach(function(i, j) {\n var arc = topology.arcs[i < 0 ? ~i : i], t;\n if (arc.length < 3 && !arc[1][0] && !arc[1][1]) {\n t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t;\n }\n });\n arcs.forEach(function(i) {\n var e = ends(i), start = e[0], end = e[1], f, g;\n if (f = fragmentByEnd[start]) {\n delete fragmentByEnd[f.end];\n f.push(i);\n f.end = end;\n if (g = fragmentByStart[end]) {\n delete fragmentByStart[g.start];\n var fg = g === f ? f : f.concat(g);\n fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else if (f = fragmentByStart[end]) {\n delete fragmentByStart[f.start];\n f.unshift(i);\n f.start = start;\n if (g = fragmentByEnd[start]) {\n delete fragmentByEnd[g.end];\n var gf = g === f ? f : g.concat(f);\n fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf;\n } else {\n fragmentByStart[f.start] = fragmentByEnd[f.end] = f;\n }\n } else {\n f = [i];\n fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f;\n }\n });\n function ends(i) {\n var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1;\n if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) {\n p1[0] += dp[0], p1[1] += dp[1];\n });\n else p1 = arc[arc.length - 1];\n return i < 0 ? [p1, p0] : [p0, p1];\n }\n function flush(fragmentByEnd2, fragmentByStart2) {\n for (var k in fragmentByEnd2) {\n var f = fragmentByEnd2[k];\n delete fragmentByStart2[f.start];\n delete f.start;\n delete f.end;\n f.forEach(function(i) {\n stitchedArcs[i < 0 ? ~i : i] = 1;\n });\n fragments.push(f);\n }\n }\n flush(fragmentByEnd, fragmentByStart);\n flush(fragmentByStart, fragmentByEnd);\n arcs.forEach(function(i) {\n if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]);\n });\n return fragments;\n }\n function mesh(topology) {\n return object(topology, meshArcs.apply(this, arguments));\n }\n function meshArcs(topology, object2, filter) {\n var arcs, i, n;\n if (arguments.length > 1) arcs = extractArcs(topology, object2, filter);\n else for (i = 0, arcs = new Array(n = topology.arcs.length); i < n; ++i) arcs[i] = i;\n return { type: \"MultiLineString\", arcs: stitch(topology, arcs) };\n }\n function extractArcs(topology, object2, filter) {\n var arcs = [], geomsByArc = [], geom;\n function extract0(i) {\n var j = i < 0 ? ~i : i;\n (geomsByArc[j] || (geomsByArc[j] = [])).push({ i, g: geom });\n }\n function extract1(arcs2) {\n arcs2.forEach(extract0);\n }\n function extract2(arcs2) {\n arcs2.forEach(extract1);\n }\n function extract3(arcs2) {\n arcs2.forEach(extract2);\n }\n function geometry(o) {\n switch (geom = o, o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n case \"LineString\":\n extract1(o.arcs);\n break;\n case \"MultiLineString\":\n case \"Polygon\":\n extract2(o.arcs);\n break;\n case \"MultiPolygon\":\n extract3(o.arcs);\n break;\n }\n }\n geometry(object2);\n geomsByArc.forEach(filter == null ? function(geoms) {\n arcs.push(geoms[0].i);\n } : function(geoms) {\n if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i);\n });\n return arcs;\n }\n function planarRingArea(ring) {\n var i = -1, n = ring.length, a, b = ring[n - 1], area = 0;\n while (++i < n) a = b, b = ring[i], area += a[0] * b[1] - a[1] * b[0];\n return Math.abs(area);\n }\n function merge(topology) {\n return object(topology, mergeArcs.apply(this, arguments));\n }\n function mergeArcs(topology, objects) {\n var polygonsByArc = {}, polygons = [], groups = [];\n objects.forEach(geometry);\n function geometry(o) {\n switch (o.type) {\n case \"GeometryCollection\":\n o.geometries.forEach(geometry);\n break;\n case \"Polygon\":\n extract(o.arcs);\n break;\n case \"MultiPolygon\":\n o.arcs.forEach(extract);\n break;\n }\n }\n function extract(polygon) {\n polygon.forEach(function(ring) {\n ring.forEach(function(arc) {\n (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon);\n });\n });\n polygons.push(polygon);\n }\n function area(ring) {\n return planarRingArea(object(topology, { type: \"Polygon\", arcs: [ring] }).coordinates[0]);\n }\n polygons.forEach(function(polygon) {\n if (!polygon._) {\n var group = [], neighbors2 = [polygon];\n polygon._ = 1;\n groups.push(group);\n while (polygon = neighbors2.pop()) {\n group.push(polygon);\n polygon.forEach(function(ring) {\n ring.forEach(function(arc) {\n polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon2) {\n if (!polygon2._) {\n polygon2._ = 1;\n neighbors2.push(polygon2);\n }\n });\n });\n });\n }\n }\n });\n polygons.forEach(function(polygon) {\n delete polygon._;\n });\n return {\n type: \"MultiPolygon\",\n arcs: groups.map(function(polygons2) {\n var arcs = [], n;\n polygons2.forEach(function(polygon) {\n polygon.forEach(function(ring) {\n ring.forEach(function(arc) {\n if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) {\n arcs.push(arc);\n }\n });\n });\n });\n arcs = stitch(topology, arcs);\n if ((n = arcs.length) > 1) {\n for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) {\n if ((ki = area(arcs[i])) > k) {\n t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki;\n }\n }\n }\n return arcs;\n }).filter(function(arcs) {\n return arcs.length > 0;\n })\n };\n }\n function bisect(a, x) {\n var lo = 0, hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (a[mid] < x) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n }\n function neighbors(objects) {\n var indexesByArc = {}, neighbors2 = objects.map(function() {\n return [];\n });\n function line(arcs, i2) {\n arcs.forEach(function(a) {\n if (a < 0) a = ~a;\n var o = indexesByArc[a];\n if (o) o.push(i2);\n else indexesByArc[a] = [i2];\n });\n }\n function polygon(arcs, i2) {\n arcs.forEach(function(arc) {\n line(arc, i2);\n });\n }\n function geometry(o, i2) {\n if (o.type === \"GeometryCollection\") o.geometries.forEach(function(o2) {\n geometry(o2, i2);\n });\n else if (o.type in geometryType) geometryType[o.type](o.arcs, i2);\n }\n var geometryType = {\n LineString: line,\n MultiLineString: polygon,\n Polygon: polygon,\n MultiPolygon: function(arcs, i2) {\n arcs.forEach(function(arc) {\n polygon(arc, i2);\n });\n }\n };\n objects.forEach(geometry);\n for (var i in indexesByArc) {\n for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) {\n for (var k = j + 1; k < m; ++k) {\n var ij = indexes[j], ik = indexes[k], n;\n if ((n = neighbors2[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik);\n if ((n = neighbors2[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij);\n }\n }\n }\n return neighbors2;\n }\n function untransform(transform2) {\n if (transform2 == null) return identity2;\n var x0, y0, kx = transform2.scale[0], ky = transform2.scale[1], dx = transform2.translate[0], dy = transform2.translate[1];\n return function(input, i) {\n if (!i) x0 = y0 = 0;\n var j = 2, n = input.length, output = new Array(n), x1 = Math.round((input[0] - dx) / kx), y1 = Math.round((input[1] - dy) / ky);\n output[0] = x1 - x0, x0 = x1;\n output[1] = y1 - y0, y0 = y1;\n while (j < n) output[j] = input[j], ++j;\n return output;\n };\n }\n function quantize(topology, transform2) {\n if (topology.transform) throw new Error(\"already quantized\");\n if (!transform2 || !transform2.scale) {\n if (!((n = Math.floor(transform2)) >= 2)) throw new Error(\"n must be \\u22652\");\n box = topology.bbox || bbox(topology);\n var x0 = box[0], y0 = box[1], x1 = box[2], y1 = box[3], n;\n transform2 = { scale: [x1 - x0 ? (x1 - x0) / (n - 1) : 1, y1 - y0 ? (y1 - y0) / (n - 1) : 1], translate: [x0, y0] };\n } else {\n box = topology.bbox;\n }\n var t = untransform(transform2), box, key, inputs = topology.objects, outputs = {};\n function quantizePoint(point) {\n return t(point);\n }\n function quantizeGeometry(input) {\n var output;\n switch (input.type) {\n case \"GeometryCollection\":\n output = { type: \"GeometryCollection\", geometries: input.geometries.map(quantizeGeometry) };\n break;\n case \"Point\":\n output = { type: \"Point\", coordinates: quantizePoint(input.coordinates) };\n break;\n case \"MultiPoint\":\n output = { type: \"MultiPoint\", coordinates: input.coordinates.map(quantizePoint) };\n break;\n default:\n return input;\n }\n if (input.id != null) output.id = input.id;\n if (input.bbox != null) output.bbox = input.bbox;\n if (input.properties != null) output.properties = input.properties;\n return output;\n }\n function quantizeArc(input) {\n var i = 0, j = 1, n2 = input.length, p, output = new Array(n2);\n output[0] = t(input[0], 0);\n while (++i < n2) if ((p = t(input[i], i))[0] || p[1]) output[j++] = p;\n if (j === 1) output[j++] = [0, 0];\n output.length = j;\n return output;\n }\n for (key in inputs) outputs[key] = quantizeGeometry(inputs[key]);\n return {\n type: \"Topology\",\n bbox: box,\n transform: transform2,\n objects: outputs,\n arcs: topology.arcs.map(quantizeArc)\n };\n }\n exports2.bbox = bbox;\n exports2.feature = feature;\n exports2.merge = merge;\n exports2.mergeArcs = mergeArcs;\n exports2.mesh = mesh;\n exports2.meshArcs = meshArcs;\n exports2.neighbors = neighbors;\n exports2.quantize = quantize;\n exports2.transform = transform;\n exports2.untransform = untransform;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/lib/topojson_utils.js\n var require_topojson_utils = __commonJS({\n \"src/lib/topojson_utils.js\"(exports, module) {\n \"use strict\";\n var topojsonUtils = module.exports = {};\n var locationmodeToLayer = require_constants22().locationmodeToLayer;\n var topojsonFeature = require_topojson_client().feature;\n topojsonUtils.getTopojsonName = function(geoLayout) {\n return [\n geoLayout.scope.replace(/ /g, \"-\"),\n \"_\",\n geoLayout.resolution.toString(),\n \"m\"\n ].join(\"\");\n };\n topojsonUtils.getTopojsonPath = function(topojsonURL, topojsonName) {\n return topojsonURL + topojsonName + \".json\";\n };\n topojsonUtils.getTopojsonFeatures = function(trace, topojson) {\n var layer = locationmodeToLayer[trace.locationmode];\n var obj = topojson.objects[layer];\n return topojsonFeature(topojson, obj).features;\n };\n }\n });\n\n // src/lib/geojson_utils.js\n var require_geojson_utils = __commonJS({\n \"src/lib/geojson_utils.js\"(exports) {\n \"use strict\";\n var BADNUM = require_numerical().BADNUM;\n exports.calcTraceToLineCoords = function(calcTrace) {\n var trace = calcTrace[0].trace;\n var connectgaps = trace.connectgaps;\n var coords = [];\n var lineString = [];\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n if (lonlat[0] !== BADNUM) {\n lineString.push(lonlat);\n } else if (!connectgaps && lineString.length > 0) {\n coords.push(lineString);\n lineString = [];\n }\n }\n if (lineString.length > 0) {\n coords.push(lineString);\n }\n return coords;\n };\n exports.makeLine = function(coords) {\n if (coords.length === 1) {\n return {\n type: \"LineString\",\n coordinates: coords[0]\n };\n } else {\n return {\n type: \"MultiLineString\",\n coordinates: coords\n };\n }\n };\n exports.makePolygon = function(coords) {\n if (coords.length === 1) {\n return {\n type: \"Polygon\",\n coordinates: coords\n };\n } else {\n var _coords = new Array(coords.length);\n for (var i = 0; i < coords.length; i++) {\n _coords[i] = [coords[i]];\n }\n return {\n type: \"MultiPolygon\",\n coordinates: _coords\n };\n }\n };\n exports.makeBlank = function() {\n return {\n type: \"Point\",\n coordinates: []\n };\n };\n }\n });\n\n // node_modules/country-regex/index.js\n var require_country_regex = __commonJS({\n \"node_modules/country-regex/index.js\"(exports, module) {\n module.exports = {\n AFG: \"afghan\",\n ALA: \"\\\\b\\\\wland\",\n ALB: \"albania\",\n DZA: \"algeria\",\n ASM: \"^(?=.*americ).*samoa\",\n AND: \"andorra\",\n AGO: \"angola\",\n AIA: \"anguill?a\",\n ATA: \"antarctica\",\n ATG: \"antigua\",\n ARG: \"argentin\",\n ARM: \"armenia\",\n ABW: \"^(?!.*bonaire).*\\\\baruba\",\n AUS: \"australia\",\n AUT: \"^(?!.*hungary).*austria|\\\\baustri.*\\\\bemp\",\n AZE: \"azerbaijan\",\n BHS: \"bahamas\",\n BHR: \"bahrain\",\n BGD: \"bangladesh|^(?=.*east).*paki?stan\",\n BRB: \"barbados\",\n BLR: \"belarus|byelo\",\n BEL: \"^(?!.*luxem).*belgium\",\n BLZ: \"belize|^(?=.*british).*honduras\",\n BEN: \"benin|dahome\",\n BMU: \"bermuda\",\n BTN: \"bhutan\",\n BOL: \"bolivia\",\n BES: \"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\\\bbes.?islands\",\n BIH: \"herzegovina|bosnia\",\n BWA: \"botswana|bechuana\",\n BVT: \"bouvet\",\n BRA: \"brazil\",\n IOT: \"british.?indian.?ocean\",\n BRN: \"brunei\",\n BGR: \"bulgaria\",\n BFA: \"burkina|\\\\bfaso|upper.?volta\",\n BDI: \"burundi\",\n CPV: \"verde\",\n KHM: \"cambodia|kampuchea|khmer\",\n CMR: \"cameroon\",\n CAN: \"canada\",\n CYM: \"cayman\",\n CAF: \"\\\\bcentral.african.republic\",\n TCD: \"\\\\bchad\",\n CHL: \"\\\\bchile\",\n CHN: \"^(?!.*\\\\bmac)(?!.*\\\\bhong)(?!.*\\\\btai)(?!.*\\\\brep).*china|^(?=.*peo)(?=.*rep).*china\",\n CXR: \"christmas\",\n CCK: \"\\\\bcocos|keeling\",\n COL: \"colombia\",\n COM: \"comoro\",\n COG: \"^(?!.*\\\\bdem)(?!.*\\\\bd[\\\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\\\bcongo\",\n COK: \"\\\\bcook\",\n CRI: \"costa.?rica\",\n CIV: \"ivoire|ivory\",\n HRV: \"croatia\",\n CUB: \"\\\\bcuba\",\n CUW: \"^(?!.*bonaire).*\\\\bcura(c|\\xE7)ao\",\n CYP: \"cyprus\",\n CSK: \"czechoslovakia\",\n CZE: \"^(?=.*rep).*czech|czechia|bohemia\",\n COD: \"\\\\bdem.*congo|congo.*\\\\bdem|congo.*\\\\bd[\\\\.]?r|\\\\bd[\\\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc\",\n DNK: \"denmark\",\n DJI: \"djibouti\",\n DMA: \"dominica(?!n)\",\n DOM: \"dominican.rep\",\n ECU: \"ecuador\",\n EGY: \"egypt\",\n SLV: \"el.?salvador\",\n GNQ: \"guine.*eq|eq.*guine|^(?=.*span).*guinea\",\n ERI: \"eritrea\",\n EST: \"estonia\",\n ETH: \"ethiopia|abyssinia\",\n FLK: \"falkland|malvinas\",\n FRO: \"faroe|faeroe\",\n FJI: \"fiji\",\n FIN: \"finland\",\n FRA: \"^(?!.*\\\\bdep)(?!.*martinique).*france|french.?republic|\\\\bgaul\",\n GUF: \"^(?=.*french).*guiana\",\n PYF: \"french.?polynesia|tahiti\",\n ATF: \"french.?southern\",\n GAB: \"gabon\",\n GMB: \"gambia\",\n GEO: \"^(?!.*south).*georgia\",\n DDR: \"german.?democratic.?republic|democratic.?republic.*germany|east.germany\",\n DEU: \"^(?!.*east).*germany|^(?=.*\\\\bfed.*\\\\brep).*german\",\n GHA: \"ghana|gold.?coast\",\n GIB: \"gibraltar\",\n GRC: \"greece|hellenic|hellas\",\n GRL: \"greenland\",\n GRD: \"grenada\",\n GLP: \"guadeloupe\",\n GUM: \"\\\\bguam\",\n GTM: \"guatemala\",\n GGY: \"guernsey\",\n GIN: \"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea\",\n GNB: \"bissau|^(?=.*portu).*guinea\",\n GUY: \"guyana|british.?guiana\",\n HTI: \"haiti\",\n HMD: \"heard.*mcdonald\",\n VAT: \"holy.?see|vatican|papal.?st\",\n HND: \"^(?!.*brit).*honduras\",\n HKG: \"hong.?kong\",\n HUN: \"^(?!.*austr).*hungary\",\n ISL: \"iceland\",\n IND: \"india(?!.*ocea)\",\n IDN: \"indonesia\",\n IRN: \"\\\\biran|persia\",\n IRQ: \"\\\\biraq|mesopotamia\",\n IRL: \"(^ireland)|(^republic.*ireland)\",\n IMN: \"^(?=.*isle).*\\\\bman\",\n ISR: \"israel\",\n ITA: \"italy\",\n JAM: \"jamaica\",\n JPN: \"japan\",\n JEY: \"jersey\",\n JOR: \"jordan\",\n KAZ: \"kazak\",\n KEN: \"kenya|british.?east.?africa|east.?africa.?prot\",\n KIR: \"kiribati\",\n PRK: \"^(?=.*democrat|people|north|d.*p.*.r).*\\\\bkorea|dprk|korea.*(d.*p.*r)\",\n KWT: \"kuwait\",\n KGZ: \"kyrgyz|kirghiz\",\n LAO: \"\\\\blaos?\\\\b\",\n LVA: \"latvia\",\n LBN: \"lebanon\",\n LSO: \"lesotho|basuto\",\n LBR: \"liberia\",\n LBY: \"libya\",\n LIE: \"liechtenstein\",\n LTU: \"lithuania\",\n LUX: \"^(?!.*belg).*luxem\",\n MAC: \"maca(o|u)\",\n MDG: \"madagascar|malagasy\",\n MWI: \"malawi|nyasa\",\n MYS: \"malaysia\",\n MDV: \"maldive\",\n MLI: \"\\\\bmali\\\\b\",\n MLT: \"\\\\bmalta\",\n MHL: \"marshall\",\n MTQ: \"martinique\",\n MRT: \"mauritania\",\n MUS: \"mauritius\",\n MYT: \"\\\\bmayotte\",\n MEX: \"\\\\bmexic\",\n FSM: \"fed.*micronesia|micronesia.*fed\",\n MCO: \"monaco\",\n MNG: \"mongolia\",\n MNE: \"^(?!.*serbia).*montenegro\",\n MSR: \"montserrat\",\n MAR: \"morocco|\\\\bmaroc\",\n MOZ: \"mozambique\",\n MMR: \"myanmar|burma\",\n NAM: \"namibia\",\n NRU: \"nauru\",\n NPL: \"nepal\",\n NLD: \"^(?!.*\\\\bant)(?!.*\\\\bcarib).*netherlands\",\n ANT: \"^(?=.*\\\\bant).*(nether|dutch)\",\n NCL: \"new.?caledonia\",\n NZL: \"new.?zealand\",\n NIC: \"nicaragua\",\n NER: \"\\\\bniger(?!ia)\",\n NGA: \"nigeria\",\n NIU: \"niue\",\n NFK: \"norfolk\",\n MNP: \"mariana\",\n NOR: \"norway\",\n OMN: \"\\\\boman|trucial\",\n PAK: \"^(?!.*east).*paki?stan\",\n PLW: \"palau\",\n PSE: \"palestin|\\\\bgaza|west.?bank\",\n PAN: \"panama\",\n PNG: \"papua|new.?guinea\",\n PRY: \"paraguay\",\n PER: \"peru\",\n PHL: \"philippines\",\n PCN: \"pitcairn\",\n POL: \"poland\",\n PRT: \"portugal\",\n PRI: \"puerto.?rico\",\n QAT: \"qatar\",\n KOR: \"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\\\bkorea(?!.*d.*p.*r)\",\n MDA: \"moldov|b(a|e)ssarabia\",\n REU: \"r(e|\\xE9)union\",\n ROU: \"r(o|u|ou)mania\",\n RUS: \"\\\\brussia|soviet.?union|u\\\\.?s\\\\.?s\\\\.?r|socialist.?republics\",\n RWA: \"rwanda\",\n BLM: \"barth(e|\\xE9)lemy\",\n SHN: \"helena\",\n KNA: \"kitts|\\\\bnevis\",\n LCA: \"\\\\blucia\",\n MAF: \"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)\",\n SPM: \"miquelon\",\n VCT: \"vincent\",\n WSM: \"^(?!.*amer).*samoa\",\n SMR: \"san.?marino\",\n STP: \"\\\\bs(a|\\xE3)o.?tom(e|\\xE9)\",\n SAU: \"\\\\bsa\\\\w*.?arabia\",\n SEN: \"senegal\",\n SRB: \"^(?!.*monte).*serbia\",\n SYC: \"seychell\",\n SLE: \"sierra\",\n SGP: \"singapore\",\n SXM: \"^(?!.*martin)(?!.*saba).*maarten\",\n SVK: \"^(?!.*cze).*slovak\",\n SVN: \"slovenia\",\n SLB: \"solomon\",\n SOM: \"somali\",\n ZAF: \"south.africa|s\\\\\\\\..?africa\",\n SGS: \"south.?georgia|sandwich\",\n SSD: \"\\\\bs\\\\w*.?sudan\",\n ESP: \"spain\",\n LKA: \"sri.?lanka|ceylon\",\n SDN: \"^(?!.*\\\\bs(?!u)).*sudan\",\n SUR: \"surinam|dutch.?guiana\",\n SJM: \"svalbard\",\n SWZ: \"swaziland\",\n SWE: \"sweden\",\n CHE: \"switz|swiss\",\n SYR: \"syria\",\n TWN: \"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china\",\n TJK: \"tajik\",\n THA: \"thailand|\\\\bsiam\",\n MKD: \"macedonia|fyrom\",\n TLS: \"^(?=.*leste).*timor|^(?=.*east).*timor\",\n TGO: \"togo\",\n TKL: \"tokelau\",\n TON: \"tonga\",\n TTO: \"trinidad|tobago\",\n TUN: \"tunisia\",\n TUR: \"turkey\",\n TKM: \"turkmen\",\n TCA: \"turks\",\n TUV: \"tuvalu\",\n UGA: \"uganda\",\n UKR: \"ukrain\",\n ARE: \"emirates|^u\\\\.?a\\\\.?e\\\\.?$|united.?arab.?em\",\n GBR: \"united.?kingdom|britain|^u\\\\.?k\\\\.?$\",\n TZA: \"tanzania\",\n USA: \"united.?states\\\\b(?!.*islands)|\\\\bu\\\\.?s\\\\.?a\\\\.?\\\\b|^\\\\s*u\\\\.?s\\\\.?\\\\b(?!.*islands)\",\n UMI: \"minor.?outlying.?is\",\n URY: \"uruguay\",\n UZB: \"uzbek\",\n VUT: \"vanuatu|new.?hebrides\",\n VEN: \"venezuela\",\n VNM: \"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam\",\n VGB: \"^(?=.*\\\\bu\\\\.?\\\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin\",\n VIR: \"^(?=.*\\\\bu\\\\.?\\\\s?s).*virgin|^(?=.*states).*virgin\",\n WLF: \"futuna|wallis\",\n ESH: \"western.sahara\",\n YEM: \"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\\\bp\\\\.?d\\\\.?r).*yemen\",\n YMD: \"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\\\bp\\\\.?d\\\\.?r).*yemen\",\n YUG: \"yugoslavia\",\n ZMB: \"zambia|northern.?rhodesia\",\n EAZ: \"zanzibar\",\n ZWE: \"zimbabwe|^(?!.*northern).*rhodesia\"\n };\n }\n });\n\n // node_modules/@turf/helpers/dist/cjs/index.cjs\n var require_cjs = __commonJS({\n \"node_modules/@turf/helpers/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var earthRadius = 63710088e-1;\n var factors = {\n centimeters: earthRadius * 100,\n centimetres: earthRadius * 100,\n degrees: 360 / (2 * Math.PI),\n feet: earthRadius * 3.28084,\n inches: earthRadius * 39.37,\n kilometers: earthRadius / 1e3,\n kilometres: earthRadius / 1e3,\n meters: earthRadius,\n metres: earthRadius,\n miles: earthRadius / 1609.344,\n millimeters: earthRadius * 1e3,\n millimetres: earthRadius * 1e3,\n nauticalmiles: earthRadius / 1852,\n radians: 1,\n yards: earthRadius * 1.0936\n };\n var areaFactors = {\n acres: 247105e-9,\n centimeters: 1e4,\n centimetres: 1e4,\n feet: 10.763910417,\n hectares: 1e-4,\n inches: 1550.003100006,\n kilometers: 1e-6,\n kilometres: 1e-6,\n meters: 1,\n metres: 1,\n miles: 386e-9,\n nauticalmiles: 29155334959812285e-23,\n millimeters: 1e6,\n millimetres: 1e6,\n yards: 1.195990046\n };\n function feature(geom, properties, options = {}) {\n const feat = { type: \"Feature\" };\n if (options.id === 0 || options.id) {\n feat.id = options.id;\n }\n if (options.bbox) {\n feat.bbox = options.bbox;\n }\n feat.properties = properties || {};\n feat.geometry = geom;\n return feat;\n }\n function geometry(type, coordinates, _options = {}) {\n switch (type) {\n case \"Point\":\n return point(coordinates).geometry;\n case \"LineString\":\n return lineString(coordinates).geometry;\n case \"Polygon\":\n return polygon(coordinates).geometry;\n case \"MultiPoint\":\n return multiPoint(coordinates).geometry;\n case \"MultiLineString\":\n return multiLineString(coordinates).geometry;\n case \"MultiPolygon\":\n return multiPolygon(coordinates).geometry;\n default:\n throw new Error(type + \" is invalid\");\n }\n }\n function point(coordinates, properties, options = {}) {\n if (!coordinates) {\n throw new Error(\"coordinates is required\");\n }\n if (!Array.isArray(coordinates)) {\n throw new Error(\"coordinates must be an Array\");\n }\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be at least 2 numbers long\");\n }\n if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n throw new Error(\"coordinates must contain numbers\");\n }\n const geom = {\n type: \"Point\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function points(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return point(coords, properties);\n }),\n options\n );\n }\n function polygon(coordinates, properties, options = {}) {\n for (const ring of coordinates) {\n if (ring.length < 4) {\n throw new Error(\n \"Each LinearRing of a Polygon must have 4 or more Positions.\"\n );\n }\n if (ring[ring.length - 1].length !== ring[0].length) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n for (let j = 0; j < ring[ring.length - 1].length; j++) {\n if (ring[ring.length - 1][j] !== ring[0][j]) {\n throw new Error(\"First and last Position are not equivalent.\");\n }\n }\n }\n const geom = {\n type: \"Polygon\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function polygons(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return polygon(coords, properties);\n }),\n options\n );\n }\n function lineString(coordinates, properties, options = {}) {\n if (coordinates.length < 2) {\n throw new Error(\"coordinates must be an array of two or more positions\");\n }\n const geom = {\n type: \"LineString\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function lineStrings(coordinates, properties, options = {}) {\n return featureCollection(\n coordinates.map((coords) => {\n return lineString(coords, properties);\n }),\n options\n );\n }\n function featureCollection(features, options = {}) {\n const fc = { type: \"FeatureCollection\" };\n if (options.id) {\n fc.id = options.id;\n }\n if (options.bbox) {\n fc.bbox = options.bbox;\n }\n fc.features = features;\n return fc;\n }\n function multiLineString(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiLineString\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function multiPoint(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPoint\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function multiPolygon(coordinates, properties, options = {}) {\n const geom = {\n type: \"MultiPolygon\",\n coordinates\n };\n return feature(geom, properties, options);\n }\n function geometryCollection(geometries, properties, options = {}) {\n const geom = {\n type: \"GeometryCollection\",\n geometries\n };\n return feature(geom, properties, options);\n }\n function round(num, precision = 0) {\n if (precision && !(precision >= 0)) {\n throw new Error(\"precision must be a positive number\");\n }\n const multiplier = Math.pow(10, precision || 0);\n return Math.round(num * multiplier) / multiplier;\n }\n function radiansToLength(radians2, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return radians2 * factor;\n }\n function lengthToRadians(distance, units = \"kilometers\") {\n const factor = factors[units];\n if (!factor) {\n throw new Error(units + \" units is invalid\");\n }\n return distance / factor;\n }\n function lengthToDegrees(distance, units) {\n return radiansToDegrees(lengthToRadians(distance, units));\n }\n function bearingToAzimuth(bearing) {\n let angle = bearing % 360;\n if (angle < 0) {\n angle += 360;\n }\n return angle;\n }\n function azimuthToBearing(angle) {\n angle = angle % 360;\n if (angle > 0)\n return angle > 180 ? angle - 360 : angle;\n return angle < -180 ? angle + 360 : angle;\n }\n function radiansToDegrees(radians2) {\n const degrees3 = radians2 % (2 * Math.PI);\n return degrees3 * 180 / Math.PI;\n }\n function degreesToRadians(degrees3) {\n const radians2 = degrees3 % 360;\n return radians2 * Math.PI / 180;\n }\n function convertLength(length, originalUnit = \"kilometers\", finalUnit = \"kilometers\") {\n if (!(length >= 0)) {\n throw new Error(\"length must be a positive number\");\n }\n return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n }\n function convertArea(area, originalUnit = \"meters\", finalUnit = \"kilometers\") {\n if (!(area >= 0)) {\n throw new Error(\"area must be a positive number\");\n }\n const startFactor = areaFactors[originalUnit];\n if (!startFactor) {\n throw new Error(\"invalid original units\");\n }\n const finalFactor = areaFactors[finalUnit];\n if (!finalFactor) {\n throw new Error(\"invalid final units\");\n }\n return area / startFactor * finalFactor;\n }\n function isNumber(num) {\n return !isNaN(num) && num !== null && !Array.isArray(num);\n }\n function isObject(input) {\n return input !== null && typeof input === \"object\" && !Array.isArray(input);\n }\n function validateBBox(bbox) {\n if (!bbox) {\n throw new Error(\"bbox is required\");\n }\n if (!Array.isArray(bbox)) {\n throw new Error(\"bbox must be an Array\");\n }\n if (bbox.length !== 4 && bbox.length !== 6) {\n throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n }\n bbox.forEach((num) => {\n if (!isNumber(num)) {\n throw new Error(\"bbox must only contain numbers\");\n }\n });\n }\n function validateId(id) {\n if (!id) {\n throw new Error(\"id is required\");\n }\n if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n throw new Error(\"id must be a number or a string\");\n }\n }\n exports.areaFactors = areaFactors;\n exports.azimuthToBearing = azimuthToBearing;\n exports.bearingToAzimuth = bearingToAzimuth;\n exports.convertArea = convertArea;\n exports.convertLength = convertLength;\n exports.degreesToRadians = degreesToRadians;\n exports.earthRadius = earthRadius;\n exports.factors = factors;\n exports.feature = feature;\n exports.featureCollection = featureCollection;\n exports.geometry = geometry;\n exports.geometryCollection = geometryCollection;\n exports.isNumber = isNumber;\n exports.isObject = isObject;\n exports.lengthToDegrees = lengthToDegrees;\n exports.lengthToRadians = lengthToRadians;\n exports.lineString = lineString;\n exports.lineStrings = lineStrings;\n exports.multiLineString = multiLineString;\n exports.multiPoint = multiPoint;\n exports.multiPolygon = multiPolygon;\n exports.point = point;\n exports.points = points;\n exports.polygon = polygon;\n exports.polygons = polygons;\n exports.radiansToDegrees = radiansToDegrees;\n exports.radiansToLength = radiansToLength;\n exports.round = round;\n exports.validateBBox = validateBBox;\n exports.validateId = validateId;\n }\n });\n\n // node_modules/@turf/meta/dist/cjs/index.cjs\n var require_cjs2 = __commonJS({\n \"node_modules/@turf/meta/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _helpers = require_cjs();\n function coordEach(geojson, callback, excludeWrapCoord) {\n if (geojson === null)\n return;\n var j, k, l, geometry, stopG, coords, geometryMaybeCollection, wrapShrink = 0, coordIndex = 0, isGeometryCollection, type = geojson.type, isFeatureCollection = type === \"FeatureCollection\", isFeature = type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : geojson;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n var multiFeatureIndex = 0;\n var geometryIndex = 0;\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n if (geometry === null)\n continue;\n coords = geometry.coordinates;\n var geomType = geometry.type;\n wrapShrink = excludeWrapCoord && (geomType === \"Polygon\" || geomType === \"MultiPolygon\") ? 1 : 0;\n switch (geomType) {\n case null:\n break;\n case \"Point\":\n if (callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n multiFeatureIndex++;\n break;\n case \"LineString\":\n case \"MultiPoint\":\n for (j = 0; j < coords.length; j++) {\n if (callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n if (geomType === \"MultiPoint\")\n multiFeatureIndex++;\n }\n if (geomType === \"LineString\")\n multiFeatureIndex++;\n break;\n case \"Polygon\":\n case \"MultiLineString\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length - wrapShrink; k++) {\n if (callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n }\n if (geomType === \"MultiLineString\")\n multiFeatureIndex++;\n if (geomType === \"Polygon\")\n geometryIndex++;\n }\n if (geomType === \"Polygon\")\n multiFeatureIndex++;\n break;\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n geometryIndex = 0;\n for (k = 0; k < coords[j].length; k++) {\n for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n if (callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n coordIndex++;\n }\n geometryIndex++;\n }\n multiFeatureIndex++;\n }\n break;\n case \"GeometryCollection\":\n for (j = 0; j < geometry.geometries.length; j++)\n if (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false)\n return false;\n break;\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n }\n }\n function coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n var previousValue = initialValue;\n coordEach(\n geojson,\n function(currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n if (coordIndex === 0 && initialValue === void 0)\n previousValue = currentCoord;\n else\n previousValue = callback(\n previousValue,\n currentCoord,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n },\n excludeWrapCoord\n );\n return previousValue;\n }\n function propEach(geojson, callback) {\n var i;\n switch (geojson.type) {\n case \"FeatureCollection\":\n for (i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i].properties, i) === false)\n break;\n }\n break;\n case \"Feature\":\n callback(geojson.properties, 0);\n break;\n }\n }\n function propReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n propEach(geojson, function(currentProperties, featureIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentProperties;\n else\n previousValue = callback(previousValue, currentProperties, featureIndex);\n });\n return previousValue;\n }\n function featureEach(geojson, callback) {\n if (geojson.type === \"Feature\") {\n callback(geojson, 0);\n } else if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; i++) {\n if (callback(geojson.features[i], i) === false)\n break;\n }\n }\n }\n function featureReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n featureEach(geojson, function(currentFeature, featureIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentFeature;\n else\n previousValue = callback(previousValue, currentFeature, featureIndex);\n });\n return previousValue;\n }\n function coordAll(geojson) {\n var coords = [];\n coordEach(geojson, function(coord) {\n coords.push(coord);\n });\n return coords;\n }\n function geomEach(geojson, callback) {\n var i, j, g, geometry, stopG, geometryMaybeCollection, isGeometryCollection, featureProperties, featureBBox, featureId, featureIndex = 0, isFeatureCollection = geojson.type === \"FeatureCollection\", isFeature = geojson.type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n for (i = 0; i < stop; i++) {\n geometryMaybeCollection = isFeatureCollection ? geojson.features[i].geometry : isFeature ? geojson.geometry : geojson;\n featureProperties = isFeatureCollection ? geojson.features[i].properties : isFeature ? geojson.properties : {};\n featureBBox = isFeatureCollection ? geojson.features[i].bbox : isFeature ? geojson.bbox : void 0;\n featureId = isFeatureCollection ? geojson.features[i].id : isFeature ? geojson.id : void 0;\n isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n for (g = 0; g < stopG; g++) {\n geometry = isGeometryCollection ? geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n if (geometry === null) {\n if (callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n continue;\n }\n switch (geometry.type) {\n case \"Point\":\n case \"LineString\":\n case \"MultiPoint\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\": {\n if (callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n }\n break;\n }\n default:\n throw new Error(\"Unknown Geometry Type\");\n }\n }\n featureIndex++;\n }\n }\n function geomReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n geomEach(\n geojson,\n function(currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentGeometry;\n else\n previousValue = callback(\n previousValue,\n currentGeometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n );\n }\n );\n return previousValue;\n }\n function flattenEach(geojson, callback) {\n geomEach(geojson, function(geometry, featureIndex, properties, bbox, id) {\n var type = geometry === null ? null : geometry.type;\n switch (type) {\n case null:\n case \"Point\":\n case \"LineString\":\n case \"Polygon\":\n if (callback(\n _helpers.feature.call(void 0, geometry, properties, { bbox, id }),\n featureIndex,\n 0\n ) === false)\n return false;\n return;\n }\n var geomType;\n switch (type) {\n case \"MultiPoint\":\n geomType = \"Point\";\n break;\n case \"MultiLineString\":\n geomType = \"LineString\";\n break;\n case \"MultiPolygon\":\n geomType = \"Polygon\";\n break;\n }\n for (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(_helpers.feature.call(void 0, geom, properties), featureIndex, multiFeatureIndex) === false)\n return false;\n }\n });\n }\n function flattenReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n flattenEach(\n geojson,\n function(currentFeature, featureIndex, multiFeatureIndex) {\n if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === void 0)\n previousValue = currentFeature;\n else\n previousValue = callback(\n previousValue,\n currentFeature,\n featureIndex,\n multiFeatureIndex\n );\n }\n );\n return previousValue;\n }\n function segmentEach(geojson, callback) {\n flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n var segmentIndex = 0;\n if (!feature2.geometry)\n return;\n var type = feature2.geometry.type;\n if (type === \"Point\" || type === \"MultiPoint\")\n return;\n var previousCoords;\n var previousFeatureIndex = 0;\n var previousMultiIndex = 0;\n var prevGeomIndex = 0;\n if (coordEach(\n feature2,\n function(currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n if (previousCoords === void 0 || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = _helpers.lineString.call(\n void 0,\n [previousCoords, currentCoord],\n feature2.properties\n );\n if (callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false)\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false)\n return false;\n });\n }\n function segmentReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n var started = false;\n segmentEach(\n geojson,\n function(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n if (started === false && initialValue === void 0)\n previousValue = currentSegment;\n else\n previousValue = callback(\n previousValue,\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n );\n started = true;\n }\n );\n return previousValue;\n }\n function lineEach(geojson, callback) {\n if (!geojson)\n throw new Error(\"geojson is required\");\n flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n if (feature2.geometry === null)\n return;\n var type = feature2.geometry.type;\n var coords = feature2.geometry.coordinates;\n switch (type) {\n case \"LineString\":\n if (callback(feature2, featureIndex, multiFeatureIndex, 0, 0) === false)\n return false;\n break;\n case \"Polygon\":\n for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n if (callback(\n _helpers.lineString.call(void 0, coords[geometryIndex], feature2.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\n return false;\n }\n break;\n }\n });\n }\n function lineReduce(geojson, callback, initialValue) {\n var previousValue = initialValue;\n lineEach(\n geojson,\n function(currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n if (featureIndex === 0 && initialValue === void 0)\n previousValue = currentLine;\n else\n previousValue = callback(\n previousValue,\n currentLine,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n );\n }\n );\n return previousValue;\n }\n function findSegment(geojson, options) {\n options = options || {};\n if (!_helpers.isObject.call(void 0, options))\n throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var segmentIndex = options.segmentIndex || 0;\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n if (geometry === null)\n return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n if (segmentIndex < 0)\n segmentIndex = coords.length + segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [coords[segmentIndex], coords[segmentIndex + 1]],\n properties,\n options\n );\n case \"Polygon\":\n if (geometryIndex < 0)\n geometryIndex = coords.length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [\n coords[geometryIndex][segmentIndex],\n coords[geometryIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [\n coords[multiFeatureIndex][segmentIndex],\n coords[multiFeatureIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (segmentIndex < 0)\n segmentIndex = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return _helpers.lineString.call(\n void 0,\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\n coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]\n ],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n }\n function findPoint(geojson, options) {\n options = options || {};\n if (!_helpers.isObject.call(void 0, options))\n throw new Error(\"options is invalid\");\n var featureIndex = options.featureIndex || 0;\n var multiFeatureIndex = options.multiFeatureIndex || 0;\n var geometryIndex = options.geometryIndex || 0;\n var coordIndex = options.coordIndex || 0;\n var properties = options.properties;\n var geometry;\n switch (geojson.type) {\n case \"FeatureCollection\":\n if (featureIndex < 0)\n featureIndex = geojson.features.length + featureIndex;\n properties = properties || geojson.features[featureIndex].properties;\n geometry = geojson.features[featureIndex].geometry;\n break;\n case \"Feature\":\n properties = properties || geojson.properties;\n geometry = geojson.geometry;\n break;\n case \"Point\":\n case \"MultiPoint\":\n return null;\n case \"LineString\":\n case \"Polygon\":\n case \"MultiLineString\":\n case \"MultiPolygon\":\n geometry = geojson;\n break;\n default:\n throw new Error(\"geojson is invalid\");\n }\n if (geometry === null)\n return null;\n var coords = geometry.coordinates;\n switch (geometry.type) {\n case \"Point\":\n return _helpers.point.call(void 0, coords, properties, options);\n case \"MultiPoint\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n return _helpers.point.call(void 0, coords[multiFeatureIndex], properties, options);\n case \"LineString\":\n if (coordIndex < 0)\n coordIndex = coords.length + coordIndex;\n return _helpers.point.call(void 0, coords[coordIndex], properties, options);\n case \"Polygon\":\n if (geometryIndex < 0)\n geometryIndex = coords.length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[geometryIndex].length + coordIndex;\n return _helpers.point.call(void 0, coords[geometryIndex][coordIndex], properties, options);\n case \"MultiLineString\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex].length + coordIndex;\n return _helpers.point.call(void 0, coords[multiFeatureIndex][coordIndex], properties, options);\n case \"MultiPolygon\":\n if (multiFeatureIndex < 0)\n multiFeatureIndex = coords.length + multiFeatureIndex;\n if (geometryIndex < 0)\n geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n if (coordIndex < 0)\n coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n return _helpers.point.call(\n void 0,\n coords[multiFeatureIndex][geometryIndex][coordIndex],\n properties,\n options\n );\n }\n throw new Error(\"geojson is invalid\");\n }\n exports.coordAll = coordAll;\n exports.coordEach = coordEach;\n exports.coordReduce = coordReduce;\n exports.featureEach = featureEach;\n exports.featureReduce = featureReduce;\n exports.findPoint = findPoint;\n exports.findSegment = findSegment;\n exports.flattenEach = flattenEach;\n exports.flattenReduce = flattenReduce;\n exports.geomEach = geomEach;\n exports.geomReduce = geomReduce;\n exports.lineEach = lineEach;\n exports.lineReduce = lineReduce;\n exports.propEach = propEach;\n exports.propReduce = propReduce;\n exports.segmentEach = segmentEach;\n exports.segmentReduce = segmentReduce;\n }\n });\n\n // node_modules/@turf/area/dist/cjs/index.cjs\n var require_cjs3 = __commonJS({\n \"node_modules/@turf/area/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _helpers = require_cjs();\n var _meta = require_cjs2();\n function area(geojson) {\n return _meta.geomReduce.call(\n void 0,\n geojson,\n (value, geom) => {\n return value + calculateArea(geom);\n },\n 0\n );\n }\n function calculateArea(geom) {\n let total = 0;\n let i;\n switch (geom.type) {\n case \"Polygon\":\n return polygonArea(geom.coordinates);\n case \"MultiPolygon\":\n for (i = 0; i < geom.coordinates.length; i++) {\n total += polygonArea(geom.coordinates[i]);\n }\n return total;\n case \"Point\":\n case \"MultiPoint\":\n case \"LineString\":\n case \"MultiLineString\":\n return 0;\n }\n return 0;\n }\n function polygonArea(coords) {\n let total = 0;\n if (coords && coords.length > 0) {\n total += Math.abs(ringArea(coords[0]));\n for (let i = 1; i < coords.length; i++) {\n total -= Math.abs(ringArea(coords[i]));\n }\n }\n return total;\n }\n var FACTOR = _helpers.earthRadius * _helpers.earthRadius / 2;\n var PI_OVER_180 = Math.PI / 180;\n function ringArea(coords) {\n const coordsLength = coords.length - 1;\n if (coordsLength <= 2)\n return 0;\n let total = 0;\n let i = 0;\n while (i < coordsLength) {\n const lower = coords[i];\n const middle = coords[i + 1 === coordsLength ? 0 : i + 1];\n const upper = coords[i + 2 >= coordsLength ? (i + 2) % coordsLength : i + 2];\n const lowerX = lower[0] * PI_OVER_180;\n const middleY = middle[1] * PI_OVER_180;\n const upperX = upper[0] * PI_OVER_180;\n total += (upperX - lowerX) * Math.sin(middleY);\n i++;\n }\n return total * FACTOR;\n }\n var turf_area_default = area;\n exports.area = area;\n exports.default = turf_area_default;\n }\n });\n\n // node_modules/@turf/centroid/dist/cjs/index.cjs\n var require_cjs4 = __commonJS({\n \"node_modules/@turf/centroid/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _helpers = require_cjs();\n var _meta = require_cjs2();\n function centroid(geojson, options = {}) {\n let xSum = 0;\n let ySum = 0;\n let len = 0;\n _meta.coordEach.call(\n void 0,\n geojson,\n function(coord) {\n xSum += coord[0];\n ySum += coord[1];\n len++;\n },\n true\n );\n return _helpers.point.call(void 0, [xSum / len, ySum / len], options.properties);\n }\n var turf_centroid_default = centroid;\n exports.centroid = centroid;\n exports.default = turf_centroid_default;\n }\n });\n\n // node_modules/@turf/bbox/dist/cjs/index.cjs\n var require_cjs5 = __commonJS({\n \"node_modules/@turf/bbox/dist/cjs/index.cjs\"(exports) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n var _meta = require_cjs2();\n function bbox(geojson, options = {}) {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result = [Infinity, Infinity, -Infinity, -Infinity];\n _meta.coordEach.call(void 0, geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n }\n var turf_bbox_default = bbox;\n exports.bbox = bbox;\n exports.default = turf_bbox_default;\n }\n });\n\n // src/lib/geo_location_utils.js\n var require_geo_location_utils = __commonJS({\n \"src/lib/geo_location_utils.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var countryRegex = require_country_regex();\n var { area: turfArea } = require_cjs3();\n var { centroid: turfCentroid } = require_cjs4();\n var { bbox: turfBbox } = require_cjs5();\n var identity2 = require_identity2();\n var loggers = require_loggers();\n var isPlainObject = require_is_plain_object();\n var nestedProperty = require_nested_property();\n var polygon = require_polygon();\n var countryIds = Object.keys(countryRegex);\n var locationmodeToIdFinder = {\n \"ISO-3\": identity2,\n \"USA-states\": identity2,\n \"country names\": countryNameToISO3\n };\n function countryNameToISO3(countryName) {\n for (var i = 0; i < countryIds.length; i++) {\n var iso3 = countryIds[i];\n var regex = new RegExp(countryRegex[iso3]);\n if (regex.test(countryName.trim().toLowerCase())) return iso3;\n }\n loggers.log(\"Unrecognized country name: \" + countryName + \".\");\n return false;\n }\n function locationToFeature(locationmode, location2, features) {\n if (!location2 || typeof location2 !== \"string\") return false;\n var locationId = locationmodeToIdFinder[locationmode](location2);\n var filteredFeatures;\n var f, i;\n if (locationId) {\n if (locationmode === \"USA-states\") {\n filteredFeatures = [];\n for (i = 0; i < features.length; i++) {\n f = features[i];\n if (f.properties && f.properties.gu && f.properties.gu === \"USA\") {\n filteredFeatures.push(f);\n }\n }\n } else {\n filteredFeatures = features;\n }\n for (i = 0; i < filteredFeatures.length; i++) {\n f = filteredFeatures[i];\n if (f.id === locationId) return f;\n }\n loggers.log([\n \"Location with id\",\n locationId,\n \"does not have a matching topojson feature at this resolution.\"\n ].join(\" \"));\n }\n return false;\n }\n function feature2polygons(feature) {\n var geometry = feature.geometry;\n var coords = geometry.coordinates;\n var loc = feature.id;\n var polygons = [];\n var appendPolygon, j, k, m;\n function doesCrossAntiMerdian(pts) {\n for (var l = 0; l < pts.length - 1; l++) {\n if (pts[l][0] > 0 && pts[l + 1][0] < 0) return l;\n }\n return null;\n }\n if (loc === \"RUS\" || loc === \"FJI\") {\n appendPolygon = function(_pts) {\n var pts;\n if (doesCrossAntiMerdian(_pts) === null) {\n pts = _pts;\n } else {\n pts = new Array(_pts.length);\n for (m = 0; m < _pts.length; m++) {\n pts[m] = [\n _pts[m][0] < 0 ? _pts[m][0] + 360 : _pts[m][0],\n _pts[m][1]\n ];\n }\n }\n polygons.push(polygon.tester(pts));\n };\n } else if (loc === \"ATA\") {\n appendPolygon = function(pts) {\n var crossAntiMeridianIndex = doesCrossAntiMerdian(pts);\n if (crossAntiMeridianIndex === null) {\n return polygons.push(polygon.tester(pts));\n }\n var stitch = new Array(pts.length + 1);\n var si = 0;\n for (m = 0; m < pts.length; m++) {\n if (m > crossAntiMeridianIndex) {\n stitch[si++] = [pts[m][0] + 360, pts[m][1]];\n } else if (m === crossAntiMeridianIndex) {\n stitch[si++] = pts[m];\n stitch[si++] = [pts[m][0], -90];\n } else {\n stitch[si++] = pts[m];\n }\n }\n var tester = polygon.tester(stitch);\n tester.pts.pop();\n polygons.push(tester);\n };\n } else {\n appendPolygon = function(pts) {\n polygons.push(polygon.tester(pts));\n };\n }\n switch (geometry.type) {\n case \"MultiPolygon\":\n for (j = 0; j < coords.length; j++) {\n for (k = 0; k < coords[j].length; k++) {\n appendPolygon(coords[j][k]);\n }\n }\n break;\n case \"Polygon\":\n for (j = 0; j < coords.length; j++) {\n appendPolygon(coords[j]);\n }\n break;\n }\n return polygons;\n }\n function getTraceGeojson(trace) {\n var g = trace.geojson;\n var PlotlyGeoAssets2 = window.PlotlyGeoAssets || {};\n var geojsonIn = typeof g === \"string\" ? PlotlyGeoAssets2[g] : g;\n if (!isPlainObject(geojsonIn)) {\n loggers.error(\"Oops ... something went wrong when fetching \" + g);\n return false;\n }\n return geojsonIn;\n }\n function extractTraceFeature(calcTrace) {\n var trace = calcTrace[0].trace;\n var geojsonIn = getTraceGeojson(trace);\n if (!geojsonIn) return false;\n var lookup = {};\n var featuresOut = [];\n var i;\n for (i = 0; i < trace._length; i++) {\n var cdi = calcTrace[i];\n if (cdi.loc || cdi.loc === 0) {\n lookup[cdi.loc] = cdi;\n }\n }\n function appendFeature(fIn) {\n var id = nestedProperty(fIn, trace.featureidkey || \"id\").get();\n var cdi2 = lookup[id];\n if (cdi2) {\n var geometry = fIn.geometry;\n if (geometry.type === \"Polygon\" || geometry.type === \"MultiPolygon\") {\n var fOut = {\n type: \"Feature\",\n id,\n geometry,\n properties: {}\n };\n if (fOut.geometry.coordinates.length > 0) {\n fOut.properties.ct = findCentroid(fOut);\n } else {\n fOut.properties.ct = [NaN, NaN];\n }\n cdi2.fIn = fIn;\n cdi2.fOut = fOut;\n featuresOut.push(fOut);\n } else {\n loggers.log([\n \"Location\",\n cdi2.loc,\n \"does not have a valid GeoJSON geometry.\",\n \"Traces with locationmode *geojson-id* only support\",\n \"*Polygon* and *MultiPolygon* geometries.\"\n ].join(\" \"));\n }\n }\n delete lookup[id];\n }\n switch (geojsonIn.type) {\n case \"FeatureCollection\":\n var featuresIn = geojsonIn.features;\n for (i = 0; i < featuresIn.length; i++) {\n appendFeature(featuresIn[i]);\n }\n break;\n case \"Feature\":\n appendFeature(geojsonIn);\n break;\n default:\n loggers.warn([\n \"Invalid GeoJSON type\",\n (geojsonIn.type || \"none\") + \".\",\n \"Traces with locationmode *geojson-id* only support\",\n \"*FeatureCollection* and *Feature* types.\"\n ].join(\" \"));\n return false;\n }\n for (var loc in lookup) {\n loggers.log([\n \"Location *\" + loc + \"*\",\n \"does not have a matching feature with id-key\",\n \"*\" + trace.featureidkey + \"*.\"\n ].join(\" \"));\n }\n return featuresOut;\n }\n function findCentroid(feature) {\n var geometry = feature.geometry;\n var poly;\n if (geometry.type === \"MultiPolygon\") {\n var coords = geometry.coordinates;\n var maxArea = 0;\n for (var i = 0; i < coords.length; i++) {\n var polyi = { type: \"Polygon\", coordinates: coords[i] };\n var area = turfArea(polyi);\n if (area > maxArea) {\n maxArea = area;\n poly = polyi;\n }\n }\n } else {\n poly = geometry;\n }\n return turfCentroid(poly).geometry.coordinates;\n }\n function fetchTraceGeoData(calcData) {\n var PlotlyGeoAssets2 = window.PlotlyGeoAssets || {};\n var promises = [];\n function fetch2(url2) {\n return new Promise(function(resolve, reject) {\n d3.json(url2, function(err, d) {\n if (err) {\n delete PlotlyGeoAssets2[url2];\n var msg = err.status === 404 ? 'GeoJSON at URL \"' + url2 + '\" does not exist.' : \"Unexpected error while fetching from \" + url2;\n return reject(new Error(msg));\n }\n PlotlyGeoAssets2[url2] = d;\n return resolve(d);\n });\n });\n }\n function wait(url2) {\n return new Promise(function(resolve, reject) {\n var cnt = 0;\n var interval = setInterval(function() {\n if (PlotlyGeoAssets2[url2] && PlotlyGeoAssets2[url2] !== \"pending\") {\n clearInterval(interval);\n return resolve(PlotlyGeoAssets2[url2]);\n }\n if (cnt > 100) {\n clearInterval(interval);\n return reject(\"Unexpected error while fetching from \" + url2);\n }\n cnt++;\n }, 50);\n });\n }\n for (var i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var url = trace.geojson;\n if (typeof url === \"string\") {\n if (!PlotlyGeoAssets2[url]) {\n PlotlyGeoAssets2[url] = \"pending\";\n promises.push(fetch2(url));\n } else if (PlotlyGeoAssets2[url] === \"pending\") {\n promises.push(wait(url));\n }\n }\n }\n return promises;\n }\n function computeBbox(d) {\n return turfBbox(d);\n }\n module.exports = {\n locationToFeature,\n feature2polygons,\n getTraceGeojson,\n extractTraceFeature,\n fetchTraceGeoData,\n computeBbox\n };\n }\n });\n\n // src/traces/scattergeo/style.js\n var require_style17 = __commonJS({\n \"src/traces/scattergeo/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n var scatterStyle = require_style2();\n var stylePoints = scatterStyle.stylePoints;\n var styleText = scatterStyle.styleText;\n module.exports = function style(gd, calcTrace) {\n if (calcTrace) styleTrace(gd, calcTrace);\n };\n function styleTrace(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var s = calcTrace[0].node3;\n s.style(\"opacity\", calcTrace[0].trace.opacity);\n stylePoints(s, trace, gd);\n styleText(s, trace, gd);\n s.selectAll(\"path.js-line\").style(\"fill\", \"none\").each(function(d) {\n var path = d3.select(this);\n var trace2 = d.trace;\n var line = trace2.line || {};\n path.call(Color2.stroke, line.color).call(Drawing.dashLine, line.dash || \"\", line.width || 0);\n if (trace2.fill !== \"none\") {\n path.call(Color2.fill, trace2.fillcolor);\n }\n });\n }\n }\n });\n\n // src/traces/scattergeo/plot.js\n var require_plot17 = __commonJS({\n \"src/traces/scattergeo/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var getTopojsonFeatures = require_topojson_utils().getTopojsonFeatures;\n var geoJsonUtils = require_geojson_utils();\n var geoUtils = require_geo_location_utils();\n var findExtremes = require_autorange().findExtremes;\n var BADNUM = require_numerical().BADNUM;\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var subTypes = require_subtypes();\n var style = require_style17();\n function plot(gd, geo, calcData) {\n var scatterLayer = geo.layers.frontplot.select(\".scatterlayer\");\n var gTraces = Lib.makeTraceGroups(scatterLayer, calcData, \"trace scattergeo\");\n function removeBADNUM(d, node) {\n if (d.lonlat[0] === BADNUM) {\n d3.select(node).remove();\n }\n }\n gTraces.selectAll(\"*\").remove();\n gTraces.each(function(calcTrace) {\n var s = d3.select(this);\n var trace = calcTrace[0].trace;\n if (subTypes.hasLines(trace) || trace.fill !== \"none\") {\n var lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace);\n var lineData = trace.fill !== \"none\" ? geoJsonUtils.makePolygon(lineCoords) : geoJsonUtils.makeLine(lineCoords);\n s.selectAll(\"path.js-line\").data([{ geojson: lineData, trace }]).enter().append(\"path\").classed(\"js-line\", true).style(\"stroke-miterlimit\", 2);\n }\n if (subTypes.hasMarkers(trace)) {\n s.selectAll(\"path.point\").data(Lib.identity).enter().append(\"path\").classed(\"point\", true).each(function(calcPt) {\n removeBADNUM(calcPt, this);\n });\n }\n if (subTypes.hasText(trace)) {\n s.selectAll(\"g\").data(Lib.identity).enter().append(\"g\").append(\"text\").each(function(calcPt) {\n removeBADNUM(calcPt, this);\n });\n }\n style(gd, calcTrace);\n });\n }\n function calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var len = trace._length;\n var i, calcPt;\n if (Lib.isArrayOrTypedArray(trace.locations)) {\n var locationmode = trace.locationmode;\n var features = locationmode === \"geojson-id\" ? geoUtils.extractTraceFeature(calcTrace) : getTopojsonFeatures(trace, geo.topojson);\n for (i = 0; i < len; i++) {\n calcPt = calcTrace[i];\n var feature = locationmode === \"geojson-id\" ? calcPt.fOut : geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n calcPt.lonlat = feature ? feature.properties.ct : [BADNUM, BADNUM];\n }\n }\n var opts = { padded: true };\n var lonArray;\n var latArray;\n if (geoLayout.fitbounds === \"geojson\" && trace.locationmode === \"geojson-id\") {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n } else {\n lonArray = new Array(len);\n latArray = new Array(len);\n for (i = 0; i < len; i++) {\n calcPt = calcTrace[i];\n lonArray[i] = calcPt.lonlat[0];\n latArray[i] = calcPt.lonlat[1];\n }\n opts.ppad = calcMarkerSize(trace, len);\n }\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n }\n module.exports = {\n calcGeoJSON,\n plot\n };\n }\n });\n\n // src/traces/scattergeo/hover.js\n var require_hover14 = __commonJS({\n \"src/traces/scattergeo/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var BADNUM = require_numerical().BADNUM;\n var getTraceColor = require_get_trace_color();\n var fillText = require_lib().fillText;\n var attributes = require_attributes48();\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var geo = pointData.subplot;\n var isLonLatOverEdges = geo.projection.isLonLatOverEdges;\n var project = geo.project;\n function distFn(d) {\n var lonlat2 = d.lonlat;\n if (lonlat2[0] === BADNUM) return Infinity;\n if (isLonLatOverEdges(lonlat2)) return Infinity;\n var pt = project(lonlat2);\n var px = project([xval, yval]);\n var dx = Math.abs(pt[0] - px[0]);\n var dy = Math.abs(pt[1] - px[1]);\n var rad2 = Math.max(3, d.mrc || 0);\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad2, 1 - 3 / rad2);\n }\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var pos = [xa.c2p(lonlat), ya.c2p(lonlat)];\n var rad = di.mrc || 1;\n pointData.x0 = pos[0] - rad;\n pointData.x1 = pos[0] + rad;\n pointData.y0 = pos[1] - rad;\n pointData.y1 = pos[1] + rad;\n pointData.loc = di.loc;\n pointData.lon = lonlat[0];\n pointData.lat = lonlat[1];\n var fullLayout = {};\n fullLayout[trace.geo] = { _subplot: geo };\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, pointData, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n return [pointData];\n };\n function getExtraText(trace, pt, pointData, labels) {\n if (trace.hovertemplate) return;\n var hoverinfo = pt.hi || trace.hoverinfo;\n var parts = hoverinfo === \"all\" ? attributes.hoverinfo.flags : hoverinfo.split(\"+\");\n var hasLocation = parts.indexOf(\"location\") !== -1 && Array.isArray(trace.locations);\n var hasLon = parts.indexOf(\"lon\") !== -1;\n var hasLat = parts.indexOf(\"lat\") !== -1;\n var hasText = parts.indexOf(\"text\") !== -1;\n var text = [];\n function format(val) {\n return val + \"\\xB0\";\n }\n if (hasLocation) {\n text.push(pt.loc);\n } else if (hasLon && hasLat) {\n text.push(\"(\" + format(pointData.latLabel) + \", \" + format(pointData.lonLabel) + \")\");\n } else if (hasLon) {\n text.push(labels.lon + format(pointData.lonLabel));\n } else if (hasLat) {\n text.push(labels.lat + format(pointData.latLabel));\n }\n if (hasText) {\n fillText(pt, trace, text);\n }\n return text.join(\"
\");\n }\n }\n });\n\n // src/traces/scattergeo/event_data.js\n var require_event_data9 = __commonJS({\n \"src/traces/scattergeo/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.location = pt.loc ? pt.loc : null;\n var cdi = cd[pointNumber];\n if (cdi.fIn && cdi.fIn.properties) {\n out.properties = cdi.fIn.properties;\n }\n return out;\n };\n }\n });\n\n // src/traces/scattergeo/select.js\n var require_select5 = __commonJS({\n \"src/traces/scattergeo/select.js\"(exports, module) {\n \"use strict\";\n var subtypes = require_subtypes();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var di, lonlat, x, y, i;\n var hasOnlyLines = !subtypes.hasMarkers(trace) && !subtypes.hasText(trace);\n if (hasOnlyLines) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n di = cd[i];\n lonlat = di.lonlat;\n if (lonlat[0] === BADNUM) continue;\n x = xa.c2p(lonlat);\n y = ya.c2p(lonlat);\n if (selectionTester.contains([x, y], null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // node_modules/d3-array/dist/d3-array.js\n var require_d3_array = __commonJS({\n \"node_modules/d3-array/dist/d3-array.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : factory(global2.d3 = global2.d3 || {});\n })(exports, function(exports2) {\n \"use strict\";\n function ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n }\n function bisector(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n }\n function ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n }\n var ascendingBisect = bisector(ascending);\n var bisectRight = ascendingBisect.right;\n var bisectLeft = ascendingBisect.left;\n function pairs(array2, f) {\n if (f == null) f = pair;\n var i = 0, n = array2.length - 1, p = array2[0], pairs2 = new Array(n < 0 ? 0 : n);\n while (i < n) pairs2[i] = f(p, p = array2[++i]);\n return pairs2;\n }\n function pair(a, b) {\n return [a, b];\n }\n function cross(values0, values1, reduce) {\n var n0 = values0.length, n1 = values1.length, values = new Array(n0 * n1), i0, i1, i, value0;\n if (reduce == null) reduce = pair;\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n return values;\n }\n function descending(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n }\n function number(x) {\n return x === null ? NaN : +x;\n }\n function variance(values, valueof) {\n var n = values.length, m = 0, i = -1, mean2 = 0, value, delta, sum2 = 0;\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n delta = value - mean2;\n mean2 += delta / ++m;\n sum2 += delta * (value - mean2);\n }\n }\n } else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n delta = value - mean2;\n mean2 += delta / ++m;\n sum2 += delta * (value - mean2);\n }\n }\n }\n if (m > 1) return sum2 / (m - 1);\n }\n function deviation(array2, f) {\n var v = variance(array2, f);\n return v ? Math.sqrt(v) : v;\n }\n function extent(values, valueof) {\n var n = values.length, i = -1, value, min2, max2;\n if (valueof == null) {\n while (++i < n) {\n if ((value = values[i]) != null && value >= value) {\n min2 = max2 = value;\n while (++i < n) {\n if ((value = values[i]) != null) {\n if (min2 > value) min2 = value;\n if (max2 < value) max2 = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min2 = max2 = value;\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null) {\n if (min2 > value) min2 = value;\n if (max2 < value) max2 = value;\n }\n }\n }\n }\n }\n return [min2, max2];\n }\n var array = Array.prototype;\n var slice = array.slice;\n var map = array.map;\n function constant(x) {\n return function() {\n return x;\n };\n }\n function identity2(x) {\n return x;\n }\n function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n var i = -1, n = Math.max(0, Math.ceil((stop - start) / step)) | 0, range2 = new Array(n);\n while (++i < n) {\n range2[i] = start + i * step;\n }\n return range2;\n }\n var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);\n function ticks(start, stop, count) {\n var reverse, i = -1, n, ticks2, step;\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks2 = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks2[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks2 = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks2[i] = (start - i) / step;\n }\n if (reverse) ticks2.reverse();\n return ticks2;\n }\n function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power);\n return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n }\n function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n }\n function sturges(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n }\n function histogram() {\n var value = identity2, domain = extent, threshold = sturges;\n function histogram2(data) {\n var i, n = data.length, x, values = new Array(n);\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n var xz = domain(values), x0 = xz[0], x1 = xz[1], tz = threshold(values, x0, x1);\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz);\n }\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n var bins = new Array(m + 1), bin;\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisectRight(tz, x, 0, m)].push(data[i]);\n }\n }\n return bins;\n }\n histogram2.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram2) : value;\n };\n histogram2.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram2) : domain;\n };\n histogram2.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram2) : threshold;\n };\n return histogram2;\n }\n function quantile(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n, i = (n - 1) * p, i0 = Math.floor(i), value0 = +valueof(values[i0], i0, values), value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n }\n function freedmanDiaconis(values, min2, max2) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max2 - min2) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n }\n function scott(values, min2, max2) {\n return Math.ceil((max2 - min2) / (3.5 * deviation(values) * Math.pow(values.length, -1 / 3)));\n }\n function max(values, valueof) {\n var n = values.length, i = -1, value, max2;\n if (valueof == null) {\n while (++i < n) {\n if ((value = values[i]) != null && value >= value) {\n max2 = value;\n while (++i < n) {\n if ((value = values[i]) != null && value > max2) {\n max2 = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max2 = value;\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value > max2) {\n max2 = value;\n }\n }\n }\n }\n }\n return max2;\n }\n function mean(values, valueof) {\n var n = values.length, m = n, i = -1, value, sum2 = 0;\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) sum2 += value;\n else --m;\n }\n } else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) sum2 += value;\n else --m;\n }\n }\n if (m) return sum2 / m;\n }\n function median(values, valueof) {\n var n = values.length, i = -1, value, numbers = [];\n if (valueof == null) {\n while (++i < n) {\n if (!isNaN(value = number(values[i]))) {\n numbers.push(value);\n }\n }\n } else {\n while (++i < n) {\n if (!isNaN(value = number(valueof(values[i], i, values)))) {\n numbers.push(value);\n }\n }\n }\n return quantile(numbers.sort(ascending), 0.5);\n }\n function merge(arrays) {\n var n = arrays.length, m, i = -1, j = 0, merged, array2;\n while (++i < n) j += arrays[i].length;\n merged = new Array(j);\n while (--n >= 0) {\n array2 = arrays[n];\n m = array2.length;\n while (--m >= 0) {\n merged[--j] = array2[m];\n }\n }\n return merged;\n }\n function min(values, valueof) {\n var n = values.length, i = -1, value, min2;\n if (valueof == null) {\n while (++i < n) {\n if ((value = values[i]) != null && value >= value) {\n min2 = value;\n while (++i < n) {\n if ((value = values[i]) != null && min2 > value) {\n min2 = value;\n }\n }\n }\n }\n } else {\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min2 = value;\n while (++i < n) {\n if ((value = valueof(values[i], i, values)) != null && min2 > value) {\n min2 = value;\n }\n }\n }\n }\n }\n return min2;\n }\n function permute(array2, indexes) {\n var i = indexes.length, permutes = new Array(i);\n while (i--) permutes[i] = array2[indexes[i]];\n return permutes;\n }\n function scan(values, compare) {\n if (!(n = values.length)) return;\n var n, i = 0, j = 0, xi, xj = values[j];\n if (compare == null) compare = ascending;\n while (++i < n) {\n if (compare(xi = values[i], xj) < 0 || compare(xj, xj) !== 0) {\n xj = xi, j = i;\n }\n }\n if (compare(xj, xj) === 0) return j;\n }\n function shuffle(array2, i0, i1) {\n var m = (i1 == null ? array2.length : i1) - (i0 = i0 == null ? 0 : +i0), t, i;\n while (m) {\n i = Math.random() * m-- | 0;\n t = array2[m + i0];\n array2[m + i0] = array2[i + i0];\n array2[i + i0] = t;\n }\n return array2;\n }\n function sum(values, valueof) {\n var n = values.length, i = -1, value, sum2 = 0;\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum2 += value;\n }\n } else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum2 += value;\n }\n }\n return sum2;\n }\n function transpose(matrix) {\n if (!(n = matrix.length)) return [];\n for (var i = -1, m = min(matrix, length), transpose2 = new Array(m); ++i < m; ) {\n for (var j = -1, n, row = transpose2[i] = new Array(n); ++j < n; ) {\n row[j] = matrix[j][i];\n }\n }\n return transpose2;\n }\n function length(d) {\n return d.length;\n }\n function zip() {\n return transpose(arguments);\n }\n exports2.bisect = bisectRight;\n exports2.bisectRight = bisectRight;\n exports2.bisectLeft = bisectLeft;\n exports2.ascending = ascending;\n exports2.bisector = bisector;\n exports2.cross = cross;\n exports2.descending = descending;\n exports2.deviation = deviation;\n exports2.extent = extent;\n exports2.histogram = histogram;\n exports2.thresholdFreedmanDiaconis = freedmanDiaconis;\n exports2.thresholdScott = scott;\n exports2.thresholdSturges = sturges;\n exports2.max = max;\n exports2.mean = mean;\n exports2.median = median;\n exports2.merge = merge;\n exports2.min = min;\n exports2.pairs = pairs;\n exports2.permute = permute;\n exports2.quantile = quantile;\n exports2.range = range;\n exports2.scan = scan;\n exports2.shuffle = shuffle;\n exports2.sum = sum;\n exports2.ticks = ticks;\n exports2.tickIncrement = tickIncrement;\n exports2.tickStep = tickStep;\n exports2.transpose = transpose;\n exports2.variance = variance;\n exports2.zip = zip;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-geo/dist/d3-geo.js\n var require_d3_geo = __commonJS({\n \"node_modules/d3-geo/dist/d3-geo.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_array()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-array\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}, global2.d3));\n })(exports, function(exports2, d3Array) {\n \"use strict\";\n function adder() {\n return new Adder();\n }\n function Adder() {\n this.reset();\n }\n Adder.prototype = {\n constructor: Adder,\n reset: function() {\n this.s = // rounded value\n this.t = 0;\n },\n add: function(y) {\n add(temp, y, this.t);\n add(this, temp.s, this.s);\n if (this.s) this.t += temp.t;\n else this.s = temp.t;\n },\n valueOf: function() {\n return this.s;\n }\n };\n var temp = new Adder();\n function add(adder2, a, b) {\n var x = adder2.s = a + b, bv = x - a, av = x - bv;\n adder2.t = a - av + (b - bv);\n }\n var epsilon = 1e-6;\n var epsilon22 = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var quarterPi = pi / 4;\n var tau = pi * 2;\n var degrees3 = 180 / pi;\n var radians2 = pi / 180;\n var abs = Math.abs;\n var atan = Math.atan;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var ceil = Math.ceil;\n var exp = Math.exp;\n var log = Math.log;\n var pow = Math.pow;\n var sin = Math.sin;\n var sign = Math.sign || function(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n };\n var sqrt = Math.sqrt;\n var tan = Math.tan;\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n }\n function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n }\n function haversin(x) {\n return (x = sin(x / 2)) * x;\n }\n function noop() {\n }\n function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n }\n var streamObjectType = {\n Feature: function(object2, stream) {\n streamGeometry(object2.geometry, stream);\n },\n FeatureCollection: function(object2, stream) {\n var features = object2.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n };\n var streamGeometryType = {\n Sphere: function(object2, stream) {\n stream.sphere();\n },\n Point: function(object2, stream) {\n object2 = object2.coordinates;\n stream.point(object2[0], object2[1], object2[2]);\n },\n MultiPoint: function(object2, stream) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) object2 = coordinates2[i], stream.point(object2[0], object2[1], object2[2]);\n },\n LineString: function(object2, stream) {\n streamLine(object2.coordinates, stream, 0);\n },\n MultiLineString: function(object2, stream) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) streamLine(coordinates2[i], stream, 0);\n },\n Polygon: function(object2, stream) {\n streamPolygon(object2.coordinates, stream);\n },\n MultiPolygon: function(object2, stream) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) streamPolygon(coordinates2[i], stream);\n },\n GeometryCollection: function(object2, stream) {\n var geometries = object2.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n };\n function streamLine(coordinates2, stream, closed) {\n var i = -1, n = coordinates2.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates2[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n }\n function streamPolygon(coordinates2, stream) {\n var i = -1, n = coordinates2.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates2[i], stream, 1);\n stream.polygonEnd();\n }\n function geoStream(object2, stream) {\n if (object2 && streamObjectType.hasOwnProperty(object2.type)) {\n streamObjectType[object2.type](object2, stream);\n } else {\n streamGeometry(object2, stream);\n }\n }\n var areaRingSum = adder();\n var areaSum = adder(), lambda00, phi00, lambda0, cosPhi0, sinPhi0;\n var areaStream = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaRingSum.reset();\n areaStream.lineStart = areaRingStart;\n areaStream.lineEnd = areaRingEnd;\n },\n polygonEnd: function() {\n var areaRing = +areaRingSum;\n areaSum.add(areaRing < 0 ? tau + areaRing : areaRing);\n this.lineStart = this.lineEnd = this.point = noop;\n },\n sphere: function() {\n areaSum.add(tau);\n }\n };\n function areaRingStart() {\n areaStream.point = areaPointFirst;\n }\n function areaRingEnd() {\n areaPoint(lambda00, phi00);\n }\n function areaPointFirst(lambda, phi) {\n areaStream.point = areaPoint;\n lambda00 = lambda, phi00 = phi;\n lambda *= radians2, phi *= radians2;\n lambda0 = lambda, cosPhi0 = cos(phi = phi / 2 + quarterPi), sinPhi0 = sin(phi);\n }\n function areaPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n phi = phi / 2 + quarterPi;\n var dLambda = lambda - lambda0, sdLambda = dLambda >= 0 ? 1 : -1, adLambda = sdLambda * dLambda, cosPhi = cos(phi), sinPhi = sin(phi), k = sinPhi0 * sinPhi, u = cosPhi0 * cosPhi + k * cos(adLambda), v = k * sdLambda * sin(adLambda);\n areaRingSum.add(atan2(v, u));\n lambda0 = lambda, cosPhi0 = cosPhi, sinPhi0 = sinPhi;\n }\n function area(object2) {\n areaSum.reset();\n geoStream(object2, areaStream);\n return areaSum * 2;\n }\n function spherical(cartesian2) {\n return [atan2(cartesian2[1], cartesian2[0]), asin(cartesian2[2])];\n }\n function cartesian(spherical2) {\n var lambda = spherical2[0], phi = spherical2[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n }\n function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n }\n function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n }\n function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n }\n var lambda0$1, phi0, lambda1, phi1, lambda2, lambda00$1, phi00$1, p0, deltaSum = adder(), ranges, range;\n var boundsStream = {\n point: boundsPoint,\n lineStart: boundsLineStart,\n lineEnd: boundsLineEnd,\n polygonStart: function() {\n boundsStream.point = boundsRingPoint;\n boundsStream.lineStart = boundsRingStart;\n boundsStream.lineEnd = boundsRingEnd;\n deltaSum.reset();\n areaStream.polygonStart();\n },\n polygonEnd: function() {\n areaStream.polygonEnd();\n boundsStream.point = boundsPoint;\n boundsStream.lineStart = boundsLineStart;\n boundsStream.lineEnd = boundsLineEnd;\n if (areaRingSum < 0) lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n else if (deltaSum > epsilon) phi1 = 90;\n else if (deltaSum < -epsilon) phi0 = -90;\n range[0] = lambda0$1, range[1] = lambda1;\n },\n sphere: function() {\n lambda0$1 = -(lambda1 = 180), phi0 = -(phi1 = 90);\n }\n };\n function boundsPoint(lambda, phi) {\n ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n function linePoint(lambda, phi) {\n var p = cartesian([lambda * radians2, phi * radians2]);\n if (p0) {\n var normal = cartesianCross(p0, p), equatorial = [normal[1], -normal[0], 0], inflection = cartesianCross(equatorial, normal);\n cartesianNormalizeInPlace(inflection);\n inflection = spherical(inflection);\n var delta = lambda - lambda2, sign2 = delta > 0 ? 1 : -1, lambdai = inflection[0] * degrees3 * sign2, phii, antimeridian = abs(delta) > 180;\n if (antimeridian ^ (sign2 * lambda2 < lambdai && lambdai < sign2 * lambda)) {\n phii = inflection[1] * degrees3;\n if (phii > phi1) phi1 = phii;\n } else if (lambdai = (lambdai + 360) % 360 - 180, antimeridian ^ (sign2 * lambda2 < lambdai && lambdai < sign2 * lambda)) {\n phii = -inflection[1] * degrees3;\n if (phii < phi0) phi0 = phii;\n } else {\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n }\n if (antimeridian) {\n if (lambda < lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n } else {\n if (lambda1 >= lambda0$1) {\n if (lambda < lambda0$1) lambda0$1 = lambda;\n if (lambda > lambda1) lambda1 = lambda;\n } else {\n if (lambda > lambda2) {\n if (angle(lambda0$1, lambda) > angle(lambda0$1, lambda1)) lambda1 = lambda;\n } else {\n if (angle(lambda, lambda1) > angle(lambda0$1, lambda1)) lambda0$1 = lambda;\n }\n }\n }\n } else {\n ranges.push(range = [lambda0$1 = lambda, lambda1 = lambda]);\n }\n if (phi < phi0) phi0 = phi;\n if (phi > phi1) phi1 = phi;\n p0 = p, lambda2 = lambda;\n }\n function boundsLineStart() {\n boundsStream.point = linePoint;\n }\n function boundsLineEnd() {\n range[0] = lambda0$1, range[1] = lambda1;\n boundsStream.point = boundsPoint;\n p0 = null;\n }\n function boundsRingPoint(lambda, phi) {\n if (p0) {\n var delta = lambda - lambda2;\n deltaSum.add(abs(delta) > 180 ? delta + (delta > 0 ? 360 : -360) : delta);\n } else {\n lambda00$1 = lambda, phi00$1 = phi;\n }\n areaStream.point(lambda, phi);\n linePoint(lambda, phi);\n }\n function boundsRingStart() {\n areaStream.lineStart();\n }\n function boundsRingEnd() {\n boundsRingPoint(lambda00$1, phi00$1);\n areaStream.lineEnd();\n if (abs(deltaSum) > epsilon) lambda0$1 = -(lambda1 = 180);\n range[0] = lambda0$1, range[1] = lambda1;\n p0 = null;\n }\n function angle(lambda02, lambda12) {\n return (lambda12 -= lambda02) < 0 ? lambda12 + 360 : lambda12;\n }\n function rangeCompare(a, b) {\n return a[0] - b[0];\n }\n function rangeContains(range2, x) {\n return range2[0] <= range2[1] ? range2[0] <= x && x <= range2[1] : x < range2[0] || range2[1] < x;\n }\n function bounds(feature) {\n var i, n, a, b, merged, deltaMax, delta;\n phi1 = lambda1 = -(lambda0$1 = phi0 = Infinity);\n ranges = [];\n geoStream(feature, boundsStream);\n if (n = ranges.length) {\n ranges.sort(rangeCompare);\n for (i = 1, a = ranges[0], merged = [a]; i < n; ++i) {\n b = ranges[i];\n if (rangeContains(a, b[0]) || rangeContains(a, b[1])) {\n if (angle(a[0], b[1]) > angle(a[0], a[1])) a[1] = b[1];\n if (angle(b[0], a[1]) > angle(a[0], a[1])) a[0] = b[0];\n } else {\n merged.push(a = b);\n }\n }\n for (deltaMax = -Infinity, n = merged.length - 1, i = 0, a = merged[n]; i <= n; a = b, ++i) {\n b = merged[i];\n if ((delta = angle(a[1], b[0])) > deltaMax) deltaMax = delta, lambda0$1 = b[0], lambda1 = a[1];\n }\n }\n ranges = range = null;\n return lambda0$1 === Infinity || phi0 === Infinity ? [[NaN, NaN], [NaN, NaN]] : [[lambda0$1, phi0], [lambda1, phi1]];\n }\n var W0, W1, X0, Y0, Z0, X1, Y1, Z1, X2, Y2, Z2, lambda00$2, phi00$2, x0, y0, z0;\n var centroidStream = {\n sphere: noop,\n point: centroidPoint,\n lineStart: centroidLineStart,\n lineEnd: centroidLineEnd,\n polygonStart: function() {\n centroidStream.lineStart = centroidRingStart;\n centroidStream.lineEnd = centroidRingEnd;\n },\n polygonEnd: function() {\n centroidStream.lineStart = centroidLineStart;\n centroidStream.lineEnd = centroidLineEnd;\n }\n };\n function centroidPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi);\n centroidPointCartesian(cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi));\n }\n function centroidPointCartesian(x, y, z) {\n ++W0;\n X0 += (x - X0) / W0;\n Y0 += (y - Y0) / W0;\n Z0 += (z - Z0) / W0;\n }\n function centroidLineStart() {\n centroidStream.point = centroidLinePointFirst;\n }\n function centroidLinePointFirst(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidStream.point = centroidLinePoint;\n centroidPointCartesian(x0, y0, z0);\n }\n function centroidLinePoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi), x = cosPhi * cos(lambda), y = cosPhi * sin(lambda), z = sin(phi), w = atan2(sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n }\n function centroidLineEnd() {\n centroidStream.point = centroidPoint;\n }\n function centroidRingStart() {\n centroidStream.point = centroidRingPointFirst;\n }\n function centroidRingEnd() {\n centroidRingPoint(lambda00$2, phi00$2);\n centroidStream.point = centroidPoint;\n }\n function centroidRingPointFirst(lambda, phi) {\n lambda00$2 = lambda, phi00$2 = phi;\n lambda *= radians2, phi *= radians2;\n centroidStream.point = centroidRingPoint;\n var cosPhi = cos(phi);\n x0 = cosPhi * cos(lambda);\n y0 = cosPhi * sin(lambda);\n z0 = sin(phi);\n centroidPointCartesian(x0, y0, z0);\n }\n function centroidRingPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var cosPhi = cos(phi), x = cosPhi * cos(lambda), y = cosPhi * sin(lambda), z = sin(phi), cx = y0 * z - z0 * y, cy = z0 * x - x0 * z, cz = x0 * y - y0 * x, m = sqrt(cx * cx + cy * cy + cz * cz), w = asin(m), v = m && -w / m;\n X2 += v * cx;\n Y2 += v * cy;\n Z2 += v * cz;\n W1 += w;\n X1 += w * (x0 + (x0 = x));\n Y1 += w * (y0 + (y0 = y));\n Z1 += w * (z0 + (z0 = z));\n centroidPointCartesian(x0, y0, z0);\n }\n function centroid(object2) {\n W0 = W1 = X0 = Y0 = Z0 = X1 = Y1 = Z1 = X2 = Y2 = Z2 = 0;\n geoStream(object2, centroidStream);\n var x = X2, y = Y2, z = Z2, m = x * x + y * y + z * z;\n if (m < epsilon22) {\n x = X1, y = Y1, z = Z1;\n if (W1 < epsilon) x = X0, y = Y0, z = Z0;\n m = x * x + y * y + z * z;\n if (m < epsilon22) return [NaN, NaN];\n }\n return [atan2(y, x) * degrees3, asin(z / sqrt(m)) * degrees3];\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n function compose(a, b) {\n function compose2(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n if (a.invert && b.invert) compose2.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n return compose2;\n }\n function rotationIdentity(lambda, phi) {\n return [abs(lambda) > pi ? lambda + Math.round(-lambda / tau) * tau : lambda, phi];\n }\n rotationIdentity.invert = rotationIdentity;\n function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma)) : rotationLambda(deltaLambda) : deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma) : rotationIdentity;\n }\n function forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n return lambda += deltaLambda, [lambda > pi ? lambda - tau : lambda < -pi ? lambda + tau : lambda, phi];\n };\n }\n function rotationLambda(deltaLambda) {\n var rotation2 = forwardRotationLambda(deltaLambda);\n rotation2.invert = forwardRotationLambda(-deltaLambda);\n return rotation2;\n }\n function rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi), sinDeltaPhi = sin(deltaPhi), cosDeltaGamma = cos(deltaGamma), sinDeltaGamma = sin(deltaGamma);\n function rotation2(lambda, phi) {\n var cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(phi), k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n rotation2.invert = function(lambda, phi) {\n var cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(phi), k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n return rotation2;\n }\n function rotation(rotate) {\n rotate = rotateRadians(rotate[0] * radians2, rotate[1] * radians2, rotate.length > 2 ? rotate[2] * radians2 : 0);\n function forward(coordinates2) {\n coordinates2 = rotate(coordinates2[0] * radians2, coordinates2[1] * radians2);\n return coordinates2[0] *= degrees3, coordinates2[1] *= degrees3, coordinates2;\n }\n forward.invert = function(coordinates2) {\n coordinates2 = rotate.invert(coordinates2[0] * radians2, coordinates2[1] * radians2);\n return coordinates2[0] *= degrees3, coordinates2[1] *= degrees3, coordinates2;\n };\n return forward;\n }\n function circleStream(stream, radius, delta, direction, t02, t12) {\n if (!delta) return;\n var cosRadius = cos(radius), sinRadius = sin(radius), step = direction * delta;\n if (t02 == null) {\n t02 = radius + direction * tau;\n t12 = radius - step / 2;\n } else {\n t02 = circleRadius(cosRadius, t02);\n t12 = circleRadius(cosRadius, t12);\n if (direction > 0 ? t02 < t12 : t02 > t12) t02 += direction * tau;\n }\n for (var point, t = t02; direction > 0 ? t > t12 : t < t12; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n }\n function circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n }\n function circle() {\n var center = constant([0, 0]), radius = constant(90), precision = constant(6), ring, rotate, stream = { point };\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees3, x[1] *= degrees3;\n }\n function circle2() {\n var c = center.apply(this, arguments), r = radius.apply(this, arguments) * radians2, p = precision.apply(this, arguments) * radians2;\n ring = [];\n rotate = rotateRadians(-c[0] * radians2, -c[1] * radians2, 0).invert;\n circleStream(stream, r, p, 1);\n c = { type: \"Polygon\", coordinates: [ring] };\n ring = rotate = null;\n return c;\n }\n circle2.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle2) : center;\n };\n circle2.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle2) : radius;\n };\n circle2.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle2) : precision;\n };\n return circle2;\n }\n function clipBuffer() {\n var lines = [], line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n }\n function pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n }\n function Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other;\n this.e = entry;\n this.v = false;\n this.n = this.p = null;\n }\n function clipRejoin(segments, compareIntersection2, startInside, interpolate2, stream) {\n var subject = [], clip2 = [], i, n;\n segments.forEach(function(segment) {\n if ((n2 = segment.length - 1) <= 0) return;\n var n2, p02 = segment[0], p1 = segment[n2], x;\n if (pointEqual(p02, p1)) {\n if (!p02[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n2; ++i) stream.point((p02 = segment[i])[0], p02[1]);\n stream.lineEnd();\n return;\n }\n p1[0] += 2 * epsilon;\n }\n subject.push(x = new Intersection(p02, segment, null, true));\n clip2.push(x.o = new Intersection(p02, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip2.push(x.o = new Intersection(p1, null, x, true));\n });\n if (!subject.length) return;\n clip2.sort(compareIntersection2);\n link(subject);\n link(clip2);\n for (i = 0, n = clip2.length; i < n; ++i) {\n clip2[i].e = startInside = !startInside;\n }\n var start = subject[0], points, point;\n while (1) {\n var current = start, isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate2(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate2(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n }\n function link(array) {\n if (!(n = array.length)) return;\n var n, i = 0, a = array[0], b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n }\n var sum = adder();\n function longitude(point) {\n if (abs(point[0]) <= pi)\n return point[0];\n else\n return sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n }\n function polygonContains(polygon, point) {\n var lambda = longitude(point), phi = point[1], sinPhi = sin(phi), normal = [sin(lambda), -cos(lambda), 0], angle2 = 0, winding = 0;\n sum.reset();\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring, m, point0 = ring[m - 1], lambda02 = longitude(point0), phi02 = point0[1] / 2 + quarterPi, sinPhi02 = sin(phi02), cosPhi02 = cos(phi02);\n for (var j = 0; j < m; ++j, lambda02 = lambda12, sinPhi02 = sinPhi1, cosPhi02 = cosPhi1, point0 = point1) {\n var point1 = ring[j], lambda12 = longitude(point1), phi12 = point1[1] / 2 + quarterPi, sinPhi1 = sin(phi12), cosPhi1 = cos(phi12), delta = lambda12 - lambda02, sign2 = delta >= 0 ? 1 : -1, absDelta = sign2 * delta, antimeridian = absDelta > pi, k = sinPhi02 * sinPhi1;\n sum.add(atan2(k * sign2 * sin(absDelta), cosPhi02 * cosPhi1 + k * cos(absDelta)));\n angle2 += antimeridian ? delta + sign2 * tau : delta;\n if (antimeridian ^ lambda02 >= lambda ^ lambda12 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n return (angle2 < -epsilon || angle2 < epsilon && sum < -epsilon) ^ winding & 1;\n }\n function clip(pointVisible, clipLine2, interpolate2, start) {\n return function(sink) {\n var line = clipLine2(sink), ringBuffer = clipBuffer(), ringSink = clipLine2(ringBuffer), polygonStarted = false, polygon, segments, ring;\n var clip2 = {\n point,\n lineStart,\n lineEnd,\n polygonStart: function() {\n clip2.point = pointRing;\n clip2.lineStart = ringStart;\n clip2.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip2.point = point;\n clip2.lineStart = lineStart;\n clip2.lineEnd = lineEnd;\n segments = d3Array.merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate2, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate2(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate2(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n function lineStart() {\n clip2.point = pointLine;\n line.lineStart();\n }\n function lineEnd() {\n clip2.point = point;\n line.lineEnd();\n }\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n var clean = ringSink.clean(), ringSegments = ringBuffer.result(), i, n = ringSegments.length, m, segment, point2;\n ring.pop();\n polygon.push(ring);\n ring = null;\n if (!n) return;\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point2 = segment[i])[0], point2[1]);\n sink.lineEnd();\n }\n return;\n }\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n segments.push(ringSegments.filter(validSegment));\n }\n return clip2;\n };\n }\n function validSegment(segment) {\n return segment.length > 1;\n }\n function compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1]) - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n }\n var clipAntimeridian = clip(\n function() {\n return true;\n },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n );\n function clipAntimeridianLine(stream) {\n var lambda02 = NaN, phi02 = NaN, sign0 = NaN, clean;\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda12, phi12) {\n var sign1 = lambda12 > 0 ? pi : -pi, delta = abs(lambda12 - lambda02);\n if (abs(delta - pi) < epsilon) {\n stream.point(lambda02, phi02 = (phi02 + phi12) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi02);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi02);\n stream.point(lambda12, phi02);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) {\n if (abs(lambda02 - sign0) < epsilon) lambda02 -= sign0 * epsilon;\n if (abs(lambda12 - sign1) < epsilon) lambda12 -= sign1 * epsilon;\n phi02 = clipAntimeridianIntersect(lambda02, phi02, lambda12, phi12);\n stream.point(sign0, phi02);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi02);\n clean = 0;\n }\n stream.point(lambda02 = lambda12, phi02 = phi12);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda02 = phi02 = NaN;\n },\n clean: function() {\n return 2 - clean;\n }\n };\n }\n function clipAntimeridianIntersect(lambda02, phi02, lambda12, phi12) {\n var cosPhi02, cosPhi1, sinLambda0Lambda1 = sin(lambda02 - lambda12);\n return abs(sinLambda0Lambda1) > epsilon ? atan((sin(phi02) * (cosPhi1 = cos(phi12)) * sin(lambda12) - sin(phi12) * (cosPhi02 = cos(phi02)) * sin(lambda02)) / (cosPhi02 * cosPhi1 * sinLambda0Lambda1)) : (phi02 + phi12) / 2;\n }\n function clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n function clipCircle(radius) {\n var cr = cos(radius), delta = 6 * radians2, smallRadius = cr > 0, notHemisphere = abs(cr) > epsilon;\n function interpolate2(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n function clipLine2(stream) {\n var point0, c0, v0, v00, clean;\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi], point2, v = visible(lambda, phi), c = smallRadius ? v ? 0 : code(lambda, phi) : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | (v00 && v0) << 1;\n }\n };\n }\n function intersect(a, b, two) {\n var pa = cartesian(a), pb = cartesian(b);\n var n1 = [1, 0, 0], n2 = cartesianCross(pa, pb), n2n2 = cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;\n if (!determinant) return !two && a;\n var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = cartesianCross(n1, n2), A5 = cartesianScale(n1, c1), B2 = cartesianScale(n2, c2);\n cartesianAddInPlace(A5, B2);\n var u = n1xn2, w = cartesianDot(A5, u), uu = cartesianDot(u, u), t22 = w * w - uu * (cartesianDot(A5, A5) - 1);\n if (t22 < 0) return;\n var t = sqrt(t22), q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A5);\n q = spherical(q);\n if (!two) return q;\n var lambda02 = a[0], lambda12 = b[0], phi02 = a[1], phi12 = b[1], z;\n if (lambda12 < lambda02) z = lambda02, lambda02 = lambda12, lambda12 = z;\n var delta2 = lambda12 - lambda02, polar = abs(delta2 - pi) < epsilon, meridian = polar || delta2 < epsilon;\n if (!polar && phi12 < phi02) z = phi02, phi02 = phi12, phi12 = z;\n if (meridian ? polar ? phi02 + phi12 > 0 ^ q[1] < (abs(q[0] - lambda02) < epsilon ? phi02 : phi12) : phi02 <= q[1] && q[1] <= phi12 : delta2 > pi ^ (lambda02 <= q[0] && q[0] <= lambda12)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A5);\n return [q, spherical(q1)];\n }\n }\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius, code2 = 0;\n if (lambda < -r) code2 |= 1;\n else if (lambda > r) code2 |= 2;\n if (phi < -r) code2 |= 4;\n else if (phi > r) code2 |= 8;\n return code2;\n }\n return clip(visible, clipLine2, interpolate2, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n }\n function clipLine(a, b, x02, y02, x12, y12) {\n var ax = a[0], ay = a[1], bx = b[0], by = b[1], t02 = 0, t12 = 1, dx = bx - ax, dy = by - ay, r;\n r = x02 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dx > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = x12 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dx > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n r = y02 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n } else if (dy > 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n }\n r = y12 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t12) return;\n if (r > t02) t02 = r;\n } else if (dy > 0) {\n if (r < t02) return;\n if (r < t12) t12 = r;\n }\n if (t02 > 0) a[0] = ax + t02 * dx, a[1] = ay + t02 * dy;\n if (t12 < 1) b[0] = ax + t12 * dx, b[1] = ay + t12 * dy;\n return true;\n }\n var clipMax = 1e9, clipMin = -clipMax;\n function clipRectangle(x02, y02, x12, y12) {\n function visible(x, y) {\n return x02 <= x && x <= x12 && y02 <= y && y <= y12;\n }\n function interpolate2(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null || (a = corner(from, direction)) !== (a1 = corner(to, direction)) || comparePoint(from, to) < 0 ^ direction > 0) {\n do\n stream.point(a === 0 || a === 3 ? x02 : x12, a > 1 ? y12 : y02);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n function corner(p, direction) {\n return abs(p[0] - x02) < epsilon ? direction > 0 ? 0 : 3 : abs(p[0] - x12) < epsilon ? direction > 0 ? 2 : 1 : abs(p[1] - y02) < epsilon ? direction > 0 ? 1 : 0 : direction > 0 ? 3 : 2;\n }\n function compareIntersection2(a, b) {\n return comparePoint(a.x, b.x);\n }\n function comparePoint(a, b) {\n var ca = corner(a, 1), cb = corner(b, 1);\n return ca !== cb ? ca - cb : ca === 0 ? b[1] - a[1] : ca === 1 ? a[0] - b[0] : ca === 2 ? a[1] - b[1] : b[0] - a[0];\n }\n return function(stream) {\n var activeStream = stream, bufferStream = clipBuffer(), segments, polygon, ring, x__, y__, v__, x_, y_, v_, first, clean;\n var clipStream = {\n point,\n lineStart,\n lineEnd,\n polygonStart,\n polygonEnd\n };\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n function polygonInside() {\n var winding = 0;\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring2 = polygon[i], j = 1, m = ring2.length, point2 = ring2[0], a0, a1, b0 = point2[0], b1 = point2[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point2 = ring2[j], b0 = point2[0], b1 = point2[1];\n if (a1 <= y12) {\n if (b1 > y12 && (b0 - a0) * (y12 - a1) > (b1 - a1) * (x02 - a0)) ++winding;\n } else {\n if (b1 <= y12 && (b0 - a0) * (y12 - a1) < (b1 - a1) * (x02 - a0)) --winding;\n }\n }\n }\n return winding;\n }\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n function polygonEnd() {\n var startInside = polygonInside(), cleanInside = clean && startInside, visible2 = (segments = d3Array.merge(segments)).length;\n if (cleanInside || visible2) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate2(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible2) {\n clipRejoin(segments, compareIntersection2, startInside, interpolate2, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n function lineStart() {\n clipStream.point = linePoint2;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n function lineEnd() {\n if (segments) {\n linePoint2(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n function linePoint2(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))], b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x02, y02, x12, y12)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n return clipStream;\n };\n }\n function extent() {\n var x02 = 0, y02 = 0, x12 = 960, y12 = 500, cache, cacheStream, clip2;\n return clip2 = {\n stream: function(stream) {\n return cache && cacheStream === stream ? cache : cache = clipRectangle(x02, y02, x12, y12)(cacheStream = stream);\n },\n extent: function(_) {\n return arguments.length ? (x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1], cache = cacheStream = null, clip2) : [[x02, y02], [x12, y12]];\n }\n };\n }\n var lengthSum = adder(), lambda0$2, sinPhi0$1, cosPhi0$1;\n var lengthStream = {\n sphere: noop,\n point: noop,\n lineStart: lengthLineStart,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop\n };\n function lengthLineStart() {\n lengthStream.point = lengthPointFirst;\n lengthStream.lineEnd = lengthLineEnd;\n }\n function lengthLineEnd() {\n lengthStream.point = lengthStream.lineEnd = noop;\n }\n function lengthPointFirst(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n lambda0$2 = lambda, sinPhi0$1 = sin(phi), cosPhi0$1 = cos(phi);\n lengthStream.point = lengthPoint;\n }\n function lengthPoint(lambda, phi) {\n lambda *= radians2, phi *= radians2;\n var sinPhi = sin(phi), cosPhi = cos(phi), delta = abs(lambda - lambda0$2), cosDelta = cos(delta), sinDelta = sin(delta), x = cosPhi * sinDelta, y = cosPhi0$1 * sinPhi - sinPhi0$1 * cosPhi * cosDelta, z = sinPhi0$1 * sinPhi + cosPhi0$1 * cosPhi * cosDelta;\n lengthSum.add(atan2(sqrt(x * x + y * y), z));\n lambda0$2 = lambda, sinPhi0$1 = sinPhi, cosPhi0$1 = cosPhi;\n }\n function length(object2) {\n lengthSum.reset();\n geoStream(object2, lengthStream);\n return +lengthSum;\n }\n var coordinates = [null, null], object = { type: \"LineString\", coordinates };\n function distance(a, b) {\n coordinates[0] = a;\n coordinates[1] = b;\n return length(object);\n }\n var containsObjectType = {\n Feature: function(object2, point) {\n return containsGeometry(object2.geometry, point);\n },\n FeatureCollection: function(object2, point) {\n var features = object2.features, i = -1, n = features.length;\n while (++i < n) if (containsGeometry(features[i].geometry, point)) return true;\n return false;\n }\n };\n var containsGeometryType = {\n Sphere: function() {\n return true;\n },\n Point: function(object2, point) {\n return containsPoint(object2.coordinates, point);\n },\n MultiPoint: function(object2, point) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) if (containsPoint(coordinates2[i], point)) return true;\n return false;\n },\n LineString: function(object2, point) {\n return containsLine(object2.coordinates, point);\n },\n MultiLineString: function(object2, point) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) if (containsLine(coordinates2[i], point)) return true;\n return false;\n },\n Polygon: function(object2, point) {\n return containsPolygon(object2.coordinates, point);\n },\n MultiPolygon: function(object2, point) {\n var coordinates2 = object2.coordinates, i = -1, n = coordinates2.length;\n while (++i < n) if (containsPolygon(coordinates2[i], point)) return true;\n return false;\n },\n GeometryCollection: function(object2, point) {\n var geometries = object2.geometries, i = -1, n = geometries.length;\n while (++i < n) if (containsGeometry(geometries[i], point)) return true;\n return false;\n }\n };\n function containsGeometry(geometry, point) {\n return geometry && containsGeometryType.hasOwnProperty(geometry.type) ? containsGeometryType[geometry.type](geometry, point) : false;\n }\n function containsPoint(coordinates2, point) {\n return distance(coordinates2, point) === 0;\n }\n function containsLine(coordinates2, point) {\n var ao, bo, ab;\n for (var i = 0, n = coordinates2.length; i < n; i++) {\n bo = distance(coordinates2[i], point);\n if (bo === 0) return true;\n if (i > 0) {\n ab = distance(coordinates2[i], coordinates2[i - 1]);\n if (ab > 0 && ao <= ab && bo <= ab && (ao + bo - ab) * (1 - Math.pow((ao - bo) / ab, 2)) < epsilon22 * ab)\n return true;\n }\n ao = bo;\n }\n return false;\n }\n function containsPolygon(coordinates2, point) {\n return !!polygonContains(coordinates2.map(ringRadians), pointRadians(point));\n }\n function ringRadians(ring) {\n return ring = ring.map(pointRadians), ring.pop(), ring;\n }\n function pointRadians(point) {\n return [point[0] * radians2, point[1] * radians2];\n }\n function contains(object2, point) {\n return (object2 && containsObjectType.hasOwnProperty(object2.type) ? containsObjectType[object2.type] : containsGeometry)(object2, point);\n }\n function graticuleX(y02, y12, dy) {\n var y = d3Array.range(y02, y12 - epsilon, dy).concat(y12);\n return function(x) {\n return y.map(function(y2) {\n return [x, y2];\n });\n };\n }\n function graticuleY(x02, x12, dx) {\n var x = d3Array.range(x02, x12 - epsilon, dx).concat(x12);\n return function(y) {\n return x.map(function(x2) {\n return [x2, y];\n });\n };\n }\n function graticule() {\n var x12, x02, X12, X02, y12, y02, Y12, Y02, dx = 10, dy = dx, DX = 90, DY = 360, x, y, X, Y, precision = 2.5;\n function graticule2() {\n return { type: \"MultiLineString\", coordinates: lines() };\n }\n function lines() {\n return d3Array.range(ceil(X02 / DX) * DX, X12, DX).map(X).concat(d3Array.range(ceil(Y02 / DY) * DY, Y12, DY).map(Y)).concat(d3Array.range(ceil(x02 / dx) * dx, x12, dx).filter(function(x2) {\n return abs(x2 % DX) > epsilon;\n }).map(x)).concat(d3Array.range(ceil(y02 / dy) * dy, y12, dy).filter(function(y2) {\n return abs(y2 % DY) > epsilon;\n }).map(y));\n }\n graticule2.lines = function() {\n return lines().map(function(coordinates2) {\n return { type: \"LineString\", coordinates: coordinates2 };\n });\n };\n graticule2.outline = function() {\n return {\n type: \"Polygon\",\n coordinates: [\n X(X02).concat(\n Y(Y12).slice(1),\n X(X12).reverse().slice(1),\n Y(Y02).reverse().slice(1)\n )\n ]\n };\n };\n graticule2.extent = function(_) {\n if (!arguments.length) return graticule2.extentMinor();\n return graticule2.extentMajor(_).extentMinor(_);\n };\n graticule2.extentMajor = function(_) {\n if (!arguments.length) return [[X02, Y02], [X12, Y12]];\n X02 = +_[0][0], X12 = +_[1][0];\n Y02 = +_[0][1], Y12 = +_[1][1];\n if (X02 > X12) _ = X02, X02 = X12, X12 = _;\n if (Y02 > Y12) _ = Y02, Y02 = Y12, Y12 = _;\n return graticule2.precision(precision);\n };\n graticule2.extentMinor = function(_) {\n if (!arguments.length) return [[x02, y02], [x12, y12]];\n x02 = +_[0][0], x12 = +_[1][0];\n y02 = +_[0][1], y12 = +_[1][1];\n if (x02 > x12) _ = x02, x02 = x12, x12 = _;\n if (y02 > y12) _ = y02, y02 = y12, y12 = _;\n return graticule2.precision(precision);\n };\n graticule2.step = function(_) {\n if (!arguments.length) return graticule2.stepMinor();\n return graticule2.stepMajor(_).stepMinor(_);\n };\n graticule2.stepMajor = function(_) {\n if (!arguments.length) return [DX, DY];\n DX = +_[0], DY = +_[1];\n return graticule2;\n };\n graticule2.stepMinor = function(_) {\n if (!arguments.length) return [dx, dy];\n dx = +_[0], dy = +_[1];\n return graticule2;\n };\n graticule2.precision = function(_) {\n if (!arguments.length) return precision;\n precision = +_;\n x = graticuleX(y02, y12, 90);\n y = graticuleY(x02, x12, precision);\n X = graticuleX(Y02, Y12, 90);\n Y = graticuleY(X02, X12, precision);\n return graticule2;\n };\n return graticule2.extentMajor([[-180, -90 + epsilon], [180, 90 - epsilon]]).extentMinor([[-180, -80 - epsilon], [180, 80 + epsilon]]);\n }\n function graticule10() {\n return graticule()();\n }\n function interpolate(a, b) {\n var x02 = a[0] * radians2, y02 = a[1] * radians2, x12 = b[0] * radians2, y12 = b[1] * radians2, cy0 = cos(y02), sy0 = sin(y02), cy1 = cos(y12), sy1 = sin(y12), kx0 = cy0 * cos(x02), ky0 = cy0 * sin(x02), kx1 = cy1 * cos(x12), ky1 = cy1 * sin(x12), d = 2 * asin(sqrt(haversin(y12 - y02) + cy0 * cy1 * haversin(x12 - x02))), k = sin(d);\n var interpolate2 = d ? function(t) {\n var B2 = sin(t *= d) / k, A5 = sin(d - t) / k, x = A5 * kx0 + B2 * kx1, y = A5 * ky0 + B2 * ky1, z = A5 * sy0 + B2 * sy1;\n return [\n atan2(y, x) * degrees3,\n atan2(z, sqrt(x * x + y * y)) * degrees3\n ];\n } : function() {\n return [x02 * degrees3, y02 * degrees3];\n };\n interpolate2.distance = d;\n return interpolate2;\n }\n function identity2(x) {\n return x;\n }\n var areaSum$1 = adder(), areaRingSum$1 = adder(), x00, y00, x0$1, y0$1;\n var areaStream$1 = {\n point: noop,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: function() {\n areaStream$1.lineStart = areaRingStart$1;\n areaStream$1.lineEnd = areaRingEnd$1;\n },\n polygonEnd: function() {\n areaStream$1.lineStart = areaStream$1.lineEnd = areaStream$1.point = noop;\n areaSum$1.add(abs(areaRingSum$1));\n areaRingSum$1.reset();\n },\n result: function() {\n var area2 = areaSum$1 / 2;\n areaSum$1.reset();\n return area2;\n }\n };\n function areaRingStart$1() {\n areaStream$1.point = areaPointFirst$1;\n }\n function areaPointFirst$1(x, y) {\n areaStream$1.point = areaPoint$1;\n x00 = x0$1 = x, y00 = y0$1 = y;\n }\n function areaPoint$1(x, y) {\n areaRingSum$1.add(y0$1 * x - x0$1 * y);\n x0$1 = x, y0$1 = y;\n }\n function areaRingEnd$1() {\n areaPoint$1(x00, y00);\n }\n var x0$2 = Infinity, y0$2 = x0$2, x1 = -x0$2, y1 = x1;\n var boundsStream$1 = {\n point: boundsPoint$1,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds2 = [[x0$2, y0$2], [x1, y1]];\n x1 = y1 = -(y0$2 = x0$2 = Infinity);\n return bounds2;\n }\n };\n function boundsPoint$1(x, y) {\n if (x < x0$2) x0$2 = x;\n if (x > x1) x1 = x;\n if (y < y0$2) y0$2 = y;\n if (y > y1) y1 = y;\n }\n var X0$1 = 0, Y0$1 = 0, Z0$1 = 0, X1$1 = 0, Y1$1 = 0, Z1$1 = 0, X2$1 = 0, Y2$1 = 0, Z2$1 = 0, x00$1, y00$1, x0$3, y0$3;\n var centroidStream$1 = {\n point: centroidPoint$1,\n lineStart: centroidLineStart$1,\n lineEnd: centroidLineEnd$1,\n polygonStart: function() {\n centroidStream$1.lineStart = centroidRingStart$1;\n centroidStream$1.lineEnd = centroidRingEnd$1;\n },\n polygonEnd: function() {\n centroidStream$1.point = centroidPoint$1;\n centroidStream$1.lineStart = centroidLineStart$1;\n centroidStream$1.lineEnd = centroidLineEnd$1;\n },\n result: function() {\n var centroid2 = Z2$1 ? [X2$1 / Z2$1, Y2$1 / Z2$1] : Z1$1 ? [X1$1 / Z1$1, Y1$1 / Z1$1] : Z0$1 ? [X0$1 / Z0$1, Y0$1 / Z0$1] : [NaN, NaN];\n X0$1 = Y0$1 = Z0$1 = X1$1 = Y1$1 = Z1$1 = X2$1 = Y2$1 = Z2$1 = 0;\n return centroid2;\n }\n };\n function centroidPoint$1(x, y) {\n X0$1 += x;\n Y0$1 += y;\n ++Z0$1;\n }\n function centroidLineStart$1() {\n centroidStream$1.point = centroidPointFirstLine;\n }\n function centroidPointFirstLine(x, y) {\n centroidStream$1.point = centroidPointLine;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n function centroidPointLine(x, y) {\n var dx = x - x0$3, dy = y - y0$3, z = sqrt(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n function centroidLineEnd$1() {\n centroidStream$1.point = centroidPoint$1;\n }\n function centroidRingStart$1() {\n centroidStream$1.point = centroidPointFirstRing;\n }\n function centroidRingEnd$1() {\n centroidPointRing(x00$1, y00$1);\n }\n function centroidPointFirstRing(x, y) {\n centroidStream$1.point = centroidPointRing;\n centroidPoint$1(x00$1 = x0$3 = x, y00$1 = y0$3 = y);\n }\n function centroidPointRing(x, y) {\n var dx = x - x0$3, dy = y - y0$3, z = sqrt(dx * dx + dy * dy);\n X1$1 += z * (x0$3 + x) / 2;\n Y1$1 += z * (y0$3 + y) / 2;\n Z1$1 += z;\n z = y0$3 * x - x0$3 * y;\n X2$1 += z * (x0$3 + x);\n Y2$1 += z * (y0$3 + y);\n Z2$1 += z * 3;\n centroidPoint$1(x0$3 = x, y0$3 = y);\n }\n function PathContext(context) {\n this._context = context;\n }\n PathContext.prototype = {\n _radius: 4.5,\n pointRadius: function(_) {\n return this._radius = _, this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._context.closePath();\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._context.moveTo(x, y);\n this._point = 1;\n break;\n }\n case 1: {\n this._context.lineTo(x, y);\n break;\n }\n default: {\n this._context.moveTo(x + this._radius, y);\n this._context.arc(x, y, this._radius, 0, tau);\n break;\n }\n }\n },\n result: noop\n };\n var lengthSum$1 = adder(), lengthRing, x00$2, y00$2, x0$4, y0$4;\n var lengthStream$1 = {\n point: noop,\n lineStart: function() {\n lengthStream$1.point = lengthPointFirst$1;\n },\n lineEnd: function() {\n if (lengthRing) lengthPoint$1(x00$2, y00$2);\n lengthStream$1.point = noop;\n },\n polygonStart: function() {\n lengthRing = true;\n },\n polygonEnd: function() {\n lengthRing = null;\n },\n result: function() {\n var length2 = +lengthSum$1;\n lengthSum$1.reset();\n return length2;\n }\n };\n function lengthPointFirst$1(x, y) {\n lengthStream$1.point = lengthPoint$1;\n x00$2 = x0$4 = x, y00$2 = y0$4 = y;\n }\n function lengthPoint$1(x, y) {\n x0$4 -= x, y0$4 -= y;\n lengthSum$1.add(sqrt(x0$4 * x0$4 + y0$4 * y0$4));\n x0$4 = x, y0$4 = y;\n }\n function PathString() {\n this._string = [];\n }\n PathString.prototype = {\n _radius: 4.5,\n _circle: circle$1(4.5),\n pointRadius: function(_) {\n if ((_ = +_) !== this._radius) this._radius = _, this._circle = null;\n return this;\n },\n polygonStart: function() {\n this._line = 0;\n },\n polygonEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line === 0) this._string.push(\"Z\");\n this._point = NaN;\n },\n point: function(x, y) {\n switch (this._point) {\n case 0: {\n this._string.push(\"M\", x, \",\", y);\n this._point = 1;\n break;\n }\n case 1: {\n this._string.push(\"L\", x, \",\", y);\n break;\n }\n default: {\n if (this._circle == null) this._circle = circle$1(this._radius);\n this._string.push(\"M\", x, \",\", y, this._circle);\n break;\n }\n }\n },\n result: function() {\n if (this._string.length) {\n var result = this._string.join(\"\");\n this._string = [];\n return result;\n } else {\n return null;\n }\n }\n };\n function circle$1(radius) {\n return \"m0,\" + radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + -2 * radius + \"a\" + radius + \",\" + radius + \" 0 1,1 0,\" + 2 * radius + \"z\";\n }\n function index(projection2, context) {\n var pointRadius = 4.5, projectionStream, contextStream;\n function path(object2) {\n if (object2) {\n if (typeof pointRadius === \"function\") contextStream.pointRadius(+pointRadius.apply(this, arguments));\n geoStream(object2, projectionStream(contextStream));\n }\n return contextStream.result();\n }\n path.area = function(object2) {\n geoStream(object2, projectionStream(areaStream$1));\n return areaStream$1.result();\n };\n path.measure = function(object2) {\n geoStream(object2, projectionStream(lengthStream$1));\n return lengthStream$1.result();\n };\n path.bounds = function(object2) {\n geoStream(object2, projectionStream(boundsStream$1));\n return boundsStream$1.result();\n };\n path.centroid = function(object2) {\n geoStream(object2, projectionStream(centroidStream$1));\n return centroidStream$1.result();\n };\n path.projection = function(_) {\n return arguments.length ? (projectionStream = _ == null ? (projection2 = null, identity2) : (projection2 = _).stream, path) : projection2;\n };\n path.context = function(_) {\n if (!arguments.length) return context;\n contextStream = _ == null ? (context = null, new PathString()) : new PathContext(context = _);\n if (typeof pointRadius !== \"function\") contextStream.pointRadius(pointRadius);\n return path;\n };\n path.pointRadius = function(_) {\n if (!arguments.length) return pointRadius;\n pointRadius = typeof _ === \"function\" ? _ : (contextStream.pointRadius(+_), +_);\n return path;\n };\n return path.projection(projection2).context(context);\n }\n function transform(methods) {\n return {\n stream: transformer(methods)\n };\n }\n function transformer(methods) {\n return function(stream) {\n var s = new TransformStream();\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n }\n function TransformStream() {\n }\n TransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) {\n this.stream.point(x, y);\n },\n sphere: function() {\n this.stream.sphere();\n },\n lineStart: function() {\n this.stream.lineStart();\n },\n lineEnd: function() {\n this.stream.lineEnd();\n },\n polygonStart: function() {\n this.stream.polygonStart();\n },\n polygonEnd: function() {\n this.stream.polygonEnd();\n }\n };\n function fit(projection2, fitBounds, object2) {\n var clip2 = projection2.clipExtent && projection2.clipExtent();\n projection2.scale(150).translate([0, 0]);\n if (clip2 != null) projection2.clipExtent(null);\n geoStream(object2, projection2.stream(boundsStream$1));\n fitBounds(boundsStream$1.result());\n if (clip2 != null) projection2.clipExtent(clip2);\n return projection2;\n }\n function fitExtent(projection2, extent2, object2) {\n return fit(projection2, function(b) {\n var w = extent2[1][0] - extent2[0][0], h = extent2[1][1] - extent2[0][1], k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])), x = +extent2[0][0] + (w - k * (b[1][0] + b[0][0])) / 2, y = +extent2[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection2.scale(150 * k).translate([x, y]);\n }, object2);\n }\n function fitSize(projection2, size, object2) {\n return fitExtent(projection2, [[0, 0], size], object2);\n }\n function fitWidth(projection2, width, object2) {\n return fit(projection2, function(b) {\n var w = +width, k = w / (b[1][0] - b[0][0]), x = (w - k * (b[1][0] + b[0][0])) / 2, y = -k * b[0][1];\n projection2.scale(150 * k).translate([x, y]);\n }, object2);\n }\n function fitHeight(projection2, height, object2) {\n return fit(projection2, function(b) {\n var h = +height, k = h / (b[1][1] - b[0][1]), x = -k * b[0][0], y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection2.scale(150 * k).translate([x, y]);\n }, object2);\n }\n var maxDepth = 16, cosMinDistance = cos(30 * radians2);\n function resample(project, delta2) {\n return +delta2 ? resample$1(project, delta2) : resampleNone(project);\n }\n function resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n }\n function resample$1(project, delta2) {\n function resampleLineTo(x02, y02, lambda02, a0, b0, c0, x12, y12, lambda12, a1, b1, c1, depth, stream) {\n var dx = x12 - x02, dy = y12 - y02, d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = sqrt(a * a + b * b + c * c), phi2 = asin(c /= m), lambda22 = abs(abs(c) - 1) < epsilon || abs(lambda02 - lambda12) < epsilon ? (lambda02 + lambda12) / 2 : atan2(b, a), p = project(lambda22, phi2), x2 = p[0], y2 = p[1], dx2 = x2 - x02, dy2 = y2 - y02, dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) {\n resampleLineTo(x02, y02, lambda02, a0, b0, c0, x2, y2, lambda22, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda22, a, b, c, x12, y12, lambda12, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda002, x002, y002, a00, b00, c00, lambda02, x02, y02, a0, b0, c0;\n var resampleStream = {\n point,\n lineStart,\n lineEnd,\n polygonStart: function() {\n stream.polygonStart();\n resampleStream.lineStart = ringStart;\n },\n polygonEnd: function() {\n stream.polygonEnd();\n resampleStream.lineStart = lineStart;\n }\n };\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n function lineStart() {\n x02 = NaN;\n resampleStream.point = linePoint2;\n stream.lineStart();\n }\n function linePoint2(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x02, y02, lambda02, a0, b0, c0, x02 = p[0], y02 = p[1], lambda02 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x02, y02);\n }\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n function ringPoint(lambda, phi) {\n linePoint2(lambda002 = lambda, phi), x002 = x02, y002 = y02, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint2;\n }\n function ringEnd() {\n resampleLineTo(x02, y02, lambda02, a0, b0, c0, x002, y002, lambda002, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n return resampleStream;\n };\n }\n var transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians2, y * radians2);\n }\n });\n function transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n }\n function scaleTranslate(k, dx, dy, sx, sy) {\n function transform2(x, y) {\n x *= sx;\n y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform2.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform2;\n }\n function scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n var cosAlpha = cos(alpha), sinAlpha = sin(alpha), a = cosAlpha * k, b = sinAlpha * k, ai = cosAlpha / k, bi = sinAlpha / k, ci = (sinAlpha * dy - cosAlpha * dx) / k, fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform2(x, y) {\n x *= sx;\n y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform2.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform2;\n }\n function projection(project) {\n return projectionMutator(function() {\n return project;\n })();\n }\n function projectionMutator(projectAt) {\n var project, k = 150, x = 480, y = 250, lambda = 0, phi = 0, deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, alpha = 0, sx = 1, sy = 1, theta = null, preclip = clipAntimeridian, x02 = null, y02, x12, y12, postclip = identity2, delta2 = 0.5, projectResample, projectTransform, projectRotateTransform, cache, cacheStream;\n function projection2(point) {\n return projectRotateTransform(point[0] * radians2, point[1] * radians2);\n }\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees3, point[1] * degrees3];\n }\n projection2.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n projection2.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = void 0, reset()) : preclip;\n };\n projection2.postclip = function(_) {\n return arguments.length ? (postclip = _, x02 = y02 = x12 = y12 = null, reset()) : postclip;\n };\n projection2.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians2) : (theta = null, clipAntimeridian), reset()) : theta * degrees3;\n };\n projection2.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x02 = y02 = x12 = y12 = null, identity2) : clipRectangle(x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1]), reset()) : x02 == null ? null : [[x02, y02], [x12, y12]];\n };\n projection2.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n projection2.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n projection2.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians2, phi = _[1] % 360 * radians2, recenter()) : [lambda * degrees3, phi * degrees3];\n };\n projection2.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians2, deltaPhi = _[1] % 360 * radians2, deltaGamma = _.length > 2 ? _[2] % 360 * radians2 : 0, recenter()) : [deltaLambda * degrees3, deltaPhi * degrees3, deltaGamma * degrees3];\n };\n projection2.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians2, recenter()) : alpha * degrees3;\n };\n projection2.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n projection2.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n projection2.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n projection2.fitExtent = function(extent2, object2) {\n return fitExtent(projection2, extent2, object2);\n };\n projection2.fitSize = function(size, object2) {\n return fitSize(projection2, size, object2);\n };\n projection2.fitWidth = function(width, object2) {\n return fitWidth(projection2, width, object2);\n };\n projection2.fitHeight = function(height, object2) {\n return fitHeight(projection2, height, object2);\n };\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)), transform2 = (alpha ? scaleTranslateRotate : scaleTranslate)(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform2);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n function reset() {\n cache = cacheStream = null;\n return projection2;\n }\n return function() {\n project = projectAt.apply(this, arguments);\n projection2.invert = project.invert && invert;\n return recenter();\n };\n }\n function conicProjection(projectAt) {\n var phi02 = 0, phi12 = pi / 3, m = projectionMutator(projectAt), p = m(phi02, phi12);\n p.parallels = function(_) {\n return arguments.length ? m(phi02 = _[0] * radians2, phi12 = _[1] * radians2) : [phi02 * degrees3, phi12 * degrees3];\n };\n return p;\n }\n function cylindricalEqualAreaRaw(phi02) {\n var cosPhi02 = cos(phi02);\n function forward(lambda, phi) {\n return [lambda * cosPhi02, sin(phi) / cosPhi02];\n }\n forward.invert = function(x, y) {\n return [x / cosPhi02, asin(y * cosPhi02)];\n };\n return forward;\n }\n function conicEqualAreaRaw(y02, y12) {\n var sy0 = sin(y02), n = (sy0 + sin(y12)) / 2;\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y02);\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n project.invert = function(x, y) {\n var r0y = r0 - y, l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n return project;\n }\n function conicEqualArea() {\n return conicProjection(conicEqualAreaRaw).scale(155.424).center([0, 33.6442]);\n }\n function albers() {\n return conicEqualArea().parallels([29.5, 45.5]).scale(1070).translate([480, 250]).rotate([96, 0]).center([-0.6, 38.7]);\n }\n function multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) {\n var i = -1;\n while (++i < n) streams[i].point(x, y);\n },\n sphere: function() {\n var i = -1;\n while (++i < n) streams[i].sphere();\n },\n lineStart: function() {\n var i = -1;\n while (++i < n) streams[i].lineStart();\n },\n lineEnd: function() {\n var i = -1;\n while (++i < n) streams[i].lineEnd();\n },\n polygonStart: function() {\n var i = -1;\n while (++i < n) streams[i].polygonStart();\n },\n polygonEnd: function() {\n var i = -1;\n while (++i < n) streams[i].polygonEnd();\n }\n };\n }\n function albersUsa() {\n var cache, cacheStream, lower48 = albers(), lower48Point, alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, point, pointStream = { point: function(x, y) {\n point = [x, y];\n } };\n function albersUsa2(coordinates2) {\n var x = coordinates2[0], y = coordinates2[1];\n return point = null, (lower48Point.point(x, y), point) || (alaskaPoint.point(x, y), point) || (hawaiiPoint.point(x, y), point);\n }\n albersUsa2.invert = function(coordinates2) {\n var k = lower48.scale(), t = lower48.translate(), x = (coordinates2[0] - t[0]) / k, y = (coordinates2[1] - t[1]) / k;\n return (y >= 0.12 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii : lower48).invert(coordinates2);\n };\n albersUsa2.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n albersUsa2.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n albersUsa2.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa2.translate(lower48.translate());\n };\n albersUsa2.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n lower48Point = lower48.translate(_).clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]]).stream(pointStream);\n alaskaPoint = alaska.translate([x - 0.307 * k, y + 0.201 * k]).clipExtent([[x - 0.425 * k + epsilon, y + 0.12 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n hawaiiPoint = hawaii.translate([x - 0.205 * k, y + 0.212 * k]).clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]]).stream(pointStream);\n return reset();\n };\n albersUsa2.fitExtent = function(extent2, object2) {\n return fitExtent(albersUsa2, extent2, object2);\n };\n albersUsa2.fitSize = function(size, object2) {\n return fitSize(albersUsa2, size, object2);\n };\n albersUsa2.fitWidth = function(width, object2) {\n return fitWidth(albersUsa2, width, object2);\n };\n albersUsa2.fitHeight = function(height, object2) {\n return fitHeight(albersUsa2, height, object2);\n };\n function reset() {\n cache = cacheStream = null;\n return albersUsa2;\n }\n return albersUsa2.scale(1070);\n }\n function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x), cy = cos(y), k = scale(cx * cy);\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n };\n }\n function azimuthalInvert(angle2) {\n return function(x, y) {\n var z = sqrt(x * x + y * y), c = angle2(z), sc = sin(c), cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n };\n }\n var azimuthalEqualAreaRaw = azimuthalRaw(function(cxcy) {\n return sqrt(2 / (1 + cxcy));\n });\n azimuthalEqualAreaRaw.invert = azimuthalInvert(function(z) {\n return 2 * asin(z / 2);\n });\n function azimuthalEqualArea() {\n return projection(azimuthalEqualAreaRaw).scale(124.75).clipAngle(180 - 1e-3);\n }\n var azimuthalEquidistantRaw = azimuthalRaw(function(c) {\n return (c = acos(c)) && c / sin(c);\n });\n azimuthalEquidistantRaw.invert = azimuthalInvert(function(z) {\n return z;\n });\n function azimuthalEquidistant() {\n return projection(azimuthalEquidistantRaw).scale(79.4188).clipAngle(180 - 1e-3);\n }\n function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n }\n mercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n };\n function mercator() {\n return mercatorProjection(mercatorRaw).scale(961 / tau);\n }\n function mercatorProjection(project) {\n var m = projection(project), center = m.center, scale = m.scale, translate = m.translate, clipExtent = m.clipExtent, x02 = null, y02, x12, y12;\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n m.clipExtent = function(_) {\n return arguments.length ? (_ == null ? x02 = y02 = x12 = y12 = null : (x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1]), reclip()) : x02 == null ? null : [[x02, y02], [x12, y12]];\n };\n function reclip() {\n var k = pi * scale(), t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x02 == null ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw ? [[Math.max(t[0] - k, x02), y02], [Math.min(t[0] + k, x12), y12]] : [[x02, Math.max(t[1] - k, y02)], [x12, Math.min(t[1] + k, y12)]]);\n }\n return reclip();\n }\n function tany(y) {\n return tan((halfPi + y) / 2);\n }\n function conicConformalRaw(y02, y12) {\n var cy0 = cos(y02), n = y02 === y12 ? sin(y02) : log(cy0 / cos(y12)) / log(tany(y12) / tany(y02)), f = cy0 * pow(tany(y02), n) / n;\n if (!n) return mercatorRaw;\n function project(x, y) {\n if (f > 0) {\n if (y < -halfPi + epsilon) y = -halfPi + epsilon;\n } else {\n if (y > halfPi - epsilon) y = halfPi - epsilon;\n }\n var r = f / pow(tany(y), n);\n return [r * sin(n * x), f - r * cos(n * x)];\n }\n project.invert = function(x, y) {\n var fy = f - y, r = sign(n) * sqrt(x * x + fy * fy), l = atan2(x, abs(fy)) * sign(fy);\n if (fy * n < 0)\n l -= pi * sign(x) * sign(fy);\n return [l / n, 2 * atan(pow(f / r, 1 / n)) - halfPi];\n };\n return project;\n }\n function conicConformal() {\n return conicProjection(conicConformalRaw).scale(109.5).parallels([30, 30]);\n }\n function equirectangularRaw(lambda, phi) {\n return [lambda, phi];\n }\n equirectangularRaw.invert = equirectangularRaw;\n function equirectangular() {\n return projection(equirectangularRaw).scale(152.63);\n }\n function conicEquidistantRaw(y02, y12) {\n var cy0 = cos(y02), n = y02 === y12 ? sin(y02) : (cy0 - cos(y12)) / (y12 - y02), g = cy0 / n + y02;\n if (abs(n) < epsilon) return equirectangularRaw;\n function project(x, y) {\n var gy = g - y, nx = n * x;\n return [gy * sin(nx), g - gy * cos(nx)];\n }\n project.invert = function(x, y) {\n var gy = g - y, l = atan2(x, abs(gy)) * sign(gy);\n if (gy * n < 0)\n l -= pi * sign(x) * sign(gy);\n return [l / n, g - sign(n) * sqrt(x * x + gy * gy)];\n };\n return project;\n }\n function conicEquidistant() {\n return conicProjection(conicEquidistantRaw).scale(131.154).center([0, 13.9389]);\n }\n var A1 = 1.340264, A2 = -0.081106, A3 = 893e-6, A4 = 3796e-6, M = sqrt(3) / 2, iterations = 12;\n function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n }\n equalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon22) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n };\n function equalEarth() {\n return projection(equalEarthRaw).scale(177.158);\n }\n function gnomonicRaw(x, y) {\n var cy = cos(y), k = cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n }\n gnomonicRaw.invert = azimuthalInvert(atan);\n function gnomonic() {\n return projection(gnomonicRaw).scale(144.049).clipAngle(60);\n }\n function identity$1() {\n var k = 1, tx = 0, ty = 0, sx = 1, sy = 1, alpha = 0, ca, sa, x02 = null, y02, x12, y12, kx = 1, ky = 1, transform2 = transformer({\n point: function(x, y) {\n var p = projection2([x, y]);\n this.stream.point(p[0], p[1]);\n }\n }), postclip = identity2, cache, cacheStream;\n function reset() {\n kx = k * sx;\n ky = k * sy;\n cache = cacheStream = null;\n return projection2;\n }\n function projection2(p) {\n var x = p[0] * kx, y = p[1] * ky;\n if (alpha) {\n var t = y * ca - x * sa;\n x = x * ca + y * sa;\n y = t;\n }\n return [x + tx, y + ty];\n }\n projection2.invert = function(p) {\n var x = p[0] - tx, y = p[1] - ty;\n if (alpha) {\n var t = y * ca + x * sa;\n x = x * ca - y * sa;\n y = t;\n }\n return [x / kx, y / ky];\n };\n projection2.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transform2(postclip(cacheStream = stream));\n };\n projection2.postclip = function(_) {\n return arguments.length ? (postclip = _, x02 = y02 = x12 = y12 = null, reset()) : postclip;\n };\n projection2.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x02 = y02 = x12 = y12 = null, identity2) : clipRectangle(x02 = +_[0][0], y02 = +_[0][1], x12 = +_[1][0], y12 = +_[1][1]), reset()) : x02 == null ? null : [[x02, y02], [x12, y12]];\n };\n projection2.scale = function(_) {\n return arguments.length ? (k = +_, reset()) : k;\n };\n projection2.translate = function(_) {\n return arguments.length ? (tx = +_[0], ty = +_[1], reset()) : [tx, ty];\n };\n projection2.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians2, sa = sin(alpha), ca = cos(alpha), reset()) : alpha * degrees3;\n };\n projection2.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, reset()) : sx < 0;\n };\n projection2.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, reset()) : sy < 0;\n };\n projection2.fitExtent = function(extent2, object2) {\n return fitExtent(projection2, extent2, object2);\n };\n projection2.fitSize = function(size, object2) {\n return fitSize(projection2, size, object2);\n };\n projection2.fitWidth = function(width, object2) {\n return fitWidth(projection2, width, object2);\n };\n projection2.fitHeight = function(height, object2) {\n return fitHeight(projection2, height, object2);\n };\n return projection2;\n }\n function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (3971e-6 * phi2 - 1529e-6 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 5916e-6 * phi4)))\n ];\n }\n naturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 5916e-6 * phi4))) - y) / (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 5916e-6 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (3971e-6 - 1529e-6 * phi2)))),\n phi\n ];\n };\n function naturalEarth1() {\n return projection(naturalEarth1Raw).scale(175.295);\n }\n function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n }\n orthographicRaw.invert = azimuthalInvert(asin);\n function orthographic() {\n return projection(orthographicRaw).scale(249.5).clipAngle(90 + epsilon);\n }\n function stereographicRaw(x, y) {\n var cy = cos(y), k = 1 + cos(x) * cy;\n return [cy * sin(x) / k, sin(y) / k];\n }\n stereographicRaw.invert = azimuthalInvert(function(z) {\n return 2 * atan(z);\n });\n function stereographic() {\n return projection(stereographicRaw).scale(250).clipAngle(142);\n }\n function transverseMercatorRaw(lambda, phi) {\n return [log(tan((halfPi + phi) / 2)), -lambda];\n }\n transverseMercatorRaw.invert = function(x, y) {\n return [-y, 2 * atan(exp(x)) - halfPi];\n };\n function transverseMercator() {\n var m = mercatorProjection(transverseMercatorRaw), center = m.center, rotate = m.rotate;\n m.center = function(_) {\n return arguments.length ? center([-_[1], _[0]]) : (_ = center(), [_[1], -_[0]]);\n };\n m.rotate = function(_) {\n return arguments.length ? rotate([_[0], _[1], _.length > 2 ? _[2] + 90 : 90]) : (_ = rotate(), [_[0], _[1], _[2] - 90]);\n };\n return rotate([0, 0, 90]).scale(159.155);\n }\n exports2.geoAlbers = albers;\n exports2.geoAlbersUsa = albersUsa;\n exports2.geoArea = area;\n exports2.geoAzimuthalEqualArea = azimuthalEqualArea;\n exports2.geoAzimuthalEqualAreaRaw = azimuthalEqualAreaRaw;\n exports2.geoAzimuthalEquidistant = azimuthalEquidistant;\n exports2.geoAzimuthalEquidistantRaw = azimuthalEquidistantRaw;\n exports2.geoBounds = bounds;\n exports2.geoCentroid = centroid;\n exports2.geoCircle = circle;\n exports2.geoClipAntimeridian = clipAntimeridian;\n exports2.geoClipCircle = clipCircle;\n exports2.geoClipExtent = extent;\n exports2.geoClipRectangle = clipRectangle;\n exports2.geoConicConformal = conicConformal;\n exports2.geoConicConformalRaw = conicConformalRaw;\n exports2.geoConicEqualArea = conicEqualArea;\n exports2.geoConicEqualAreaRaw = conicEqualAreaRaw;\n exports2.geoConicEquidistant = conicEquidistant;\n exports2.geoConicEquidistantRaw = conicEquidistantRaw;\n exports2.geoContains = contains;\n exports2.geoDistance = distance;\n exports2.geoEqualEarth = equalEarth;\n exports2.geoEqualEarthRaw = equalEarthRaw;\n exports2.geoEquirectangular = equirectangular;\n exports2.geoEquirectangularRaw = equirectangularRaw;\n exports2.geoGnomonic = gnomonic;\n exports2.geoGnomonicRaw = gnomonicRaw;\n exports2.geoGraticule = graticule;\n exports2.geoGraticule10 = graticule10;\n exports2.geoIdentity = identity$1;\n exports2.geoInterpolate = interpolate;\n exports2.geoLength = length;\n exports2.geoMercator = mercator;\n exports2.geoMercatorRaw = mercatorRaw;\n exports2.geoNaturalEarth1 = naturalEarth1;\n exports2.geoNaturalEarth1Raw = naturalEarth1Raw;\n exports2.geoOrthographic = orthographic;\n exports2.geoOrthographicRaw = orthographicRaw;\n exports2.geoPath = index;\n exports2.geoProjection = projection;\n exports2.geoProjectionMutator = projectionMutator;\n exports2.geoRotation = rotation;\n exports2.geoStereographic = stereographic;\n exports2.geoStereographicRaw = stereographicRaw;\n exports2.geoStream = geoStream;\n exports2.geoTransform = transform;\n exports2.geoTransverseMercator = transverseMercator;\n exports2.geoTransverseMercatorRaw = transverseMercatorRaw;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-geo-projection/dist/d3-geo-projection.js\n var require_d3_geo_projection = __commonJS({\n \"node_modules/d3-geo-projection/dist/d3-geo-projection.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_geo(), require_d3_array()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-geo\", \"d3-array\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3);\n })(exports, function(exports2, d3Geo, d3Array) {\n \"use strict\";\n var abs = Math.abs;\n var atan = Math.atan;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var exp = Math.exp;\n var floor = Math.floor;\n var log = Math.log;\n var max = Math.max;\n var min = Math.min;\n var pow = Math.pow;\n var round = Math.round;\n var sign = Math.sign || function(x) {\n return x > 0 ? 1 : x < 0 ? -1 : 0;\n };\n var sin = Math.sin;\n var tan = Math.tan;\n var epsilon = 1e-6;\n var epsilon22 = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var quarterPi = pi / 4;\n var sqrt1_2 = Math.SQRT1_2;\n var sqrt2 = sqrt(2);\n var sqrtPi = sqrt(pi);\n var tau = pi * 2;\n var degrees3 = 180 / pi;\n var radians2 = pi / 180;\n function sinci(x) {\n return x ? x / Math.sin(x) : 1;\n }\n function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n }\n function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n }\n function sqrt(x) {\n return x > 0 ? Math.sqrt(x) : 0;\n }\n function tanh2(x) {\n x = exp(2 * x);\n return (x - 1) / (x + 1);\n }\n function sinh2(x) {\n return (exp(x) - exp(-x)) / 2;\n }\n function cosh2(x) {\n return (exp(x) + exp(-x)) / 2;\n }\n function arsinh(x) {\n return log(x + sqrt(x * x + 1));\n }\n function arcosh(x) {\n return log(x + sqrt(x * x - 1));\n }\n function airyRaw(beta) {\n var tanBeta_2 = tan(beta / 2), b = 2 * log(cos(beta / 2)) / (tanBeta_2 * tanBeta_2);\n function forward(x, y) {\n var cosx = cos(x), cosy = cos(y), siny = sin(y), cosz = cosy * cosx, k2 = -((1 - cosz ? log((1 + cosz) / 2) / (1 - cosz) : -0.5) + b / (1 + cosz));\n return [k2 * cosy * sin(x), k2 * siny];\n }\n forward.invert = function(x, y) {\n var r = sqrt(x * x + y * y), z = -beta / 2, i = 50, delta;\n if (!r) return [0, 0];\n do {\n var z_2 = z / 2, cosz_2 = cos(z_2), sinz_2 = sin(z_2), tanz_2 = sinz_2 / cosz_2, lnsecz_2 = -log(abs(cosz_2));\n z -= delta = (2 / tanz_2 * lnsecz_2 - b * tanz_2 - r) / (-lnsecz_2 / (sinz_2 * sinz_2) + 1 - b / (2 * cosz_2 * cosz_2)) * (cosz_2 < 0 ? 0.7 : 1);\n } while (abs(delta) > epsilon && --i > 0);\n var sinz = sin(z);\n return [atan2(x * sinz, r * cos(z)), asin(y * sinz / r)];\n };\n return forward;\n }\n function airy() {\n var beta = halfPi, m = d3Geo.geoProjectionMutator(airyRaw), p = m(beta);\n p.radius = function(_) {\n return arguments.length ? m(beta = _ * radians2) : beta * degrees3;\n };\n return p.scale(179.976).clipAngle(147);\n }\n function aitoffRaw(x, y) {\n var cosy = cos(y), sincia = sinci(acos(cosy * cos(x /= 2)));\n return [2 * cosy * sin(x) * sincia, sin(y) * sincia];\n }\n aitoffRaw.invert = function(x, y) {\n if (x * x + 4 * y * y > pi * pi + epsilon) return;\n var x12 = x, y12 = y, i = 25;\n do {\n var sinx = sin(x12), sinx_2 = sin(x12 / 2), cosx_2 = cos(x12 / 2), siny = sin(y12), cosy = cos(y12), sin_2y = sin(2 * y12), sin2y = siny * siny, cos2y = cosy * cosy, sin2x_2 = sinx_2 * sinx_2, c = 1 - cos2y * cosx_2 * cosx_2, e = c ? acos(cosy * cosx_2) * sqrt(f = 1 / c) : f = 0, f, fx = 2 * e * cosy * sinx_2 - x, fy = e * siny - y, dxdx = f * (cos2y * sin2x_2 + e * cosy * cosx_2 * sin2y), dxdy = f * (0.5 * sinx * sin_2y - e * 2 * siny * sinx_2), dydx = f * 0.25 * (sin_2y * sinx_2 - e * siny * cos2y * sinx), dydy = f * (sin2y * cosx_2 + e * sin2x_2 * cosy), z = dxdy * dydx - dydy * dxdx;\n if (!z) break;\n var dx = (fy * dxdy - fx * dydy) / z, dy = (fx * dydx - fy * dxdx) / z;\n x12 -= dx, y12 -= dy;\n } while ((abs(dx) > epsilon || abs(dy) > epsilon) && --i > 0);\n return [x12, y12];\n };\n function aitoff() {\n return d3Geo.geoProjection(aitoffRaw).scale(152.63);\n }\n function armadilloRaw(phi02) {\n var sinPhi0 = sin(phi02), cosPhi0 = cos(phi02), sPhi0 = phi02 >= 0 ? 1 : -1, tanPhi0 = tan(sPhi0 * phi02), k2 = (1 + sinPhi0 - cosPhi0) / 2;\n function forward(lambda, phi) {\n var cosPhi = cos(phi), cosLambda = cos(lambda /= 2);\n return [\n (1 + cosPhi) * sin(lambda),\n (sPhi0 * phi > -atan2(cosLambda, tanPhi0) - 1e-3 ? 0 : -sPhi0 * 10) + k2 + sin(phi) * cosPhi0 - (1 + cosPhi) * sinPhi0 * cosLambda\n // TODO D3 core should allow null or [NaN, NaN] to be returned.\n ];\n }\n forward.invert = function(x, y) {\n var lambda = 0, phi = 0, i = 50;\n do {\n var cosLambda = cos(lambda), sinLambda = sin(lambda), cosPhi = cos(phi), sinPhi = sin(phi), A3 = 1 + cosPhi, fx = A3 * sinLambda - x, fy = k2 + sinPhi * cosPhi0 - A3 * sinPhi0 * cosLambda - y, dxdLambda = A3 * cosLambda / 2, dxdPhi = -sinLambda * sinPhi, dydLambda = sinPhi0 * A3 * sinLambda / 2, dydPhi = cosPhi0 * cosPhi + sinPhi0 * cosLambda * sinPhi, denominator = dxdPhi * dydLambda - dydPhi * dxdLambda, dLambda = (fy * dxdPhi - fx * dydPhi) / denominator / 2, dPhi = (fx * dydLambda - fy * dxdLambda) / denominator;\n if (abs(dPhi) > 2) dPhi /= 2;\n lambda -= dLambda, phi -= dPhi;\n } while ((abs(dLambda) > epsilon || abs(dPhi) > epsilon) && --i > 0);\n return sPhi0 * phi > -atan2(cos(lambda), tanPhi0) - 1e-3 ? [lambda * 2, phi] : null;\n };\n return forward;\n }\n function armadillo() {\n var phi02 = 20 * radians2, sPhi0 = phi02 >= 0 ? 1 : -1, tanPhi0 = tan(sPhi0 * phi02), m = d3Geo.geoProjectionMutator(armadilloRaw), p = m(phi02), stream_ = p.stream;\n p.parallel = function(_) {\n if (!arguments.length) return phi02 * degrees3;\n tanPhi0 = tan((sPhi0 = (phi02 = _ * radians2) >= 0 ? 1 : -1) * phi02);\n return m(phi02);\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream)), precision = p.precision();\n p.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart(), sphereStream.lineStart();\n for (var lambda = sPhi0 * -180; sPhi0 * lambda < 180; lambda += sPhi0 * 90)\n sphereStream.point(lambda, sPhi0 * 90);\n if (phi02) while (sPhi0 * (lambda -= 3 * sPhi0 * precision) >= -180) {\n sphereStream.point(lambda, sPhi0 * -atan2(cos(lambda * radians2 / 2), tanPhi0) * degrees3);\n }\n sphereStream.lineEnd(), sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return p.scale(218.695).center([0, 28.0974]);\n }\n function augustRaw(lambda, phi) {\n var tanPhi = tan(phi / 2), k2 = sqrt(1 - tanPhi * tanPhi), c = 1 + k2 * cos(lambda /= 2), x = sin(lambda) * k2 / c, y = tanPhi / c, x2 = x * x, y2 = y * y;\n return [\n 4 / 3 * x * (3 + x2 - 3 * y2),\n 4 / 3 * y * (3 + 3 * x2 - y2)\n ];\n }\n augustRaw.invert = function(x, y) {\n x *= 3 / 8, y *= 3 / 8;\n if (!x && abs(y) > 1) return null;\n var x2 = x * x, y2 = y * y, s = 1 + x2 + y2, sin3Eta = sqrt((s - sqrt(s * s - 4 * y * y)) / 2), eta = asin(sin3Eta) / 3, xi = sin3Eta ? arcosh(abs(y / sin3Eta)) / 3 : arsinh(abs(x)) / 3, cosEta = cos(eta), coshXi = cosh2(xi), d = coshXi * coshXi - cosEta * cosEta;\n return [\n sign(x) * 2 * atan2(sinh2(xi) * cosEta, 0.25 - d),\n sign(y) * 2 * atan2(coshXi * sin(eta), 0.25 + d)\n ];\n };\n function august() {\n return d3Geo.geoProjection(augustRaw).scale(66.1603);\n }\n var sqrt8 = sqrt(8), phi0 = log(1 + sqrt2);\n function bakerRaw(lambda, phi) {\n var phi02 = abs(phi);\n return phi02 < quarterPi ? [lambda, log(tan(quarterPi + phi / 2))] : [lambda * cos(phi02) * (2 * sqrt2 - 1 / sin(phi02)), sign(phi) * (2 * sqrt2 * (phi02 - quarterPi) - log(tan(phi02 / 2)))];\n }\n bakerRaw.invert = function(x, y) {\n if ((y02 = abs(y)) < phi0) return [x, 2 * atan(exp(y)) - halfPi];\n var phi = quarterPi, i = 25, delta, y02;\n do {\n var cosPhi_2 = cos(phi / 2), tanPhi_2 = tan(phi / 2);\n phi -= delta = (sqrt8 * (phi - quarterPi) - log(tanPhi_2) - y02) / (sqrt8 - cosPhi_2 * cosPhi_2 / (2 * tanPhi_2));\n } while (abs(delta) > epsilon22 && --i > 0);\n return [x / (cos(phi) * (sqrt8 - 1 / sin(phi))), sign(y) * phi];\n };\n function baker() {\n return d3Geo.geoProjection(bakerRaw).scale(112.314);\n }\n function berghausRaw(lobes2) {\n var k2 = 2 * pi / lobes2;\n function forward(lambda, phi) {\n var p = d3Geo.geoAzimuthalEquidistantRaw(lambda, phi);\n if (abs(lambda) > halfPi) {\n var theta = atan2(p[1], p[0]), r = sqrt(p[0] * p[0] + p[1] * p[1]), theta0 = k2 * round((theta - halfPi) / k2) + halfPi, alpha = atan2(sin(theta -= theta0), 2 - cos(theta));\n theta = theta0 + asin(pi / r * sin(alpha)) - alpha;\n p[0] = r * cos(theta);\n p[1] = r * sin(theta);\n }\n return p;\n }\n forward.invert = function(x, y) {\n var r = sqrt(x * x + y * y);\n if (r > halfPi) {\n var theta = atan2(y, x), theta0 = k2 * round((theta - halfPi) / k2) + halfPi, s = theta > theta0 ? -1 : 1, A3 = r * cos(theta0 - theta), cotAlpha = 1 / tan(s * acos((A3 - pi) / sqrt(pi * (pi - 2 * A3) + r * r)));\n theta = theta0 + 2 * atan((cotAlpha + s * sqrt(cotAlpha * cotAlpha - 3)) / 3);\n x = r * cos(theta), y = r * sin(theta);\n }\n return d3Geo.geoAzimuthalEquidistantRaw.invert(x, y);\n };\n return forward;\n }\n function berghaus() {\n var lobes2 = 5, m = d3Geo.geoProjectionMutator(berghausRaw), p = m(lobes2), projectionStream = p.stream, epsilon$$1 = 0.01, cr = -cos(epsilon$$1 * radians2), sr = sin(epsilon$$1 * radians2);\n p.lobes = function(_) {\n return arguments.length ? m(lobes2 = +_) : lobes2;\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = projectionStream(stream), sphereStream = (p.rotate([0, 0]), projectionStream(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart(), sphereStream.lineStart();\n for (var i = 0, delta = 360 / lobes2, delta0 = 2 * pi / lobes2, phi = 90 - 180 / lobes2, phi02 = halfPi; i < lobes2; ++i, phi -= delta, phi02 -= delta0) {\n sphereStream.point(atan2(sr * cos(phi02), cr) * degrees3, asin(sr * sin(phi02)) * degrees3);\n if (phi < -90) {\n sphereStream.point(-90, -180 - phi - epsilon$$1);\n sphereStream.point(-90, -180 - phi + epsilon$$1);\n } else {\n sphereStream.point(90, phi + epsilon$$1);\n sphereStream.point(90, phi - epsilon$$1);\n }\n }\n sphereStream.lineEnd(), sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return p.scale(87.8076).center([0, 17.1875]).clipAngle(180 - 1e-3);\n }\n function hammerRaw(A3, B3) {\n if (arguments.length < 2) B3 = A3;\n if (B3 === 1) return d3Geo.geoAzimuthalEqualAreaRaw;\n if (B3 === Infinity) return hammerQuarticAuthalicRaw;\n function forward(lambda, phi) {\n var coordinates = d3Geo.geoAzimuthalEqualAreaRaw(lambda / B3, phi);\n coordinates[0] *= A3;\n return coordinates;\n }\n forward.invert = function(x, y) {\n var coordinates = d3Geo.geoAzimuthalEqualAreaRaw.invert(x / A3, y);\n coordinates[0] *= B3;\n return coordinates;\n };\n return forward;\n }\n function hammerQuarticAuthalicRaw(lambda, phi) {\n return [\n lambda * cos(phi) / cos(phi /= 2),\n 2 * sin(phi)\n ];\n }\n hammerQuarticAuthalicRaw.invert = function(x, y) {\n var phi = 2 * asin(y / 2);\n return [\n x * cos(phi / 2) / cos(phi),\n phi\n ];\n };\n function hammer() {\n var B3 = 2, m = d3Geo.geoProjectionMutator(hammerRaw), p = m(B3);\n p.coefficient = function(_) {\n if (!arguments.length) return B3;\n return m(B3 = +_);\n };\n return p.scale(169.529);\n }\n function solve(f, y, x) {\n var steps = 100, delta, f0, f1;\n x = x === void 0 ? 0 : +x;\n y = +y;\n do {\n f0 = f(x);\n f1 = f(x + epsilon);\n if (f0 === f1) f1 = f0 + epsilon;\n x -= delta = -1 * epsilon * (f0 - y) / (f0 - f1);\n } while (steps-- > 0 && abs(delta) > epsilon);\n return steps < 0 ? NaN : x;\n }\n function solve2d(f, MAX_ITERATIONS, eps) {\n if (MAX_ITERATIONS === void 0) MAX_ITERATIONS = 40;\n if (eps === void 0) eps = epsilon22;\n return function(x, y, a, b) {\n var err2, da, db;\n a = a === void 0 ? 0 : +a;\n b = b === void 0 ? 0 : +b;\n for (var i = 0; i < MAX_ITERATIONS; i++) {\n var p = f(a, b), tx = p[0] - x, ty = p[1] - y;\n if (abs(tx) < eps && abs(ty) < eps) break;\n var h = tx * tx + ty * ty;\n if (h > err2) {\n a -= da /= 2;\n b -= db /= 2;\n continue;\n }\n err2 = h;\n var ea = (a > 0 ? -1 : 1) * eps, eb = (b > 0 ? -1 : 1) * eps, pa = f(a + ea, b), pb = f(a, b + eb), dxa = (pa[0] - p[0]) / ea, dya = (pa[1] - p[1]) / ea, dxb = (pb[0] - p[0]) / eb, dyb = (pb[1] - p[1]) / eb, D2 = dyb * dxa - dya * dxb, l = (abs(D2) < 0.5 ? 0.5 : 1) / D2;\n da = (ty * dxb - tx * dyb) * l;\n db = (tx * dya - ty * dxa) * l;\n a += da;\n b += db;\n if (abs(da) < eps && abs(db) < eps) break;\n }\n return [a, b];\n };\n }\n function bertin1953Raw() {\n var hammer$$1 = hammerRaw(1.68, 2), fu = 1.4, k2 = 12;\n function forward(lambda, phi) {\n if (lambda + phi < -fu) {\n var u = (lambda - phi + 1.6) * (lambda + phi + fu) / 8;\n lambda += u;\n phi -= 0.8 * u * sin(phi + pi / 2);\n }\n var r = hammer$$1(lambda, phi);\n var d = (1 - cos(lambda * phi)) / k2;\n if (r[1] < 0) {\n r[0] *= 1 + d;\n }\n if (r[1] > 0) {\n r[1] *= 1 + d / 1.5 * r[0] * r[0];\n }\n return r;\n }\n forward.invert = solve2d(forward);\n return forward;\n }\n function bertin() {\n return d3Geo.geoProjection(bertin1953Raw()).rotate([-16.5, -42]).scale(176.57).center([7.93, 0.09]);\n }\n function mollweideBromleyTheta(cp, phi) {\n var cpsinPhi = cp * sin(phi), i = 30, delta;\n do\n phi -= delta = (phi + sin(phi) - cpsinPhi) / (1 + cos(phi));\n while (abs(delta) > epsilon && --i > 0);\n return phi / 2;\n }\n function mollweideBromleyRaw(cx, cy, cp) {\n function forward(lambda, phi) {\n return [cx * lambda * cos(phi = mollweideBromleyTheta(cp, phi)), cy * sin(phi)];\n }\n forward.invert = function(x, y) {\n return y = asin(y / cy), [x / (cx * cos(y)), asin((2 * y + sin(2 * y)) / cp)];\n };\n return forward;\n }\n var mollweideRaw = mollweideBromleyRaw(sqrt2 / halfPi, sqrt2, pi);\n function mollweide() {\n return d3Geo.geoProjection(mollweideRaw).scale(169.529);\n }\n var k = 2.00276, w = 1.11072;\n function boggsRaw(lambda, phi) {\n var theta = mollweideBromleyTheta(pi, phi);\n return [k * lambda / (1 / cos(phi) + w / cos(theta)), (phi + sqrt2 * sin(theta)) / k];\n }\n boggsRaw.invert = function(x, y) {\n var ky = k * y, theta = y < 0 ? -quarterPi : quarterPi, i = 25, delta, phi;\n do {\n phi = ky - sqrt2 * sin(theta);\n theta -= delta = (sin(2 * theta) + 2 * theta - pi * sin(phi)) / (2 * cos(2 * theta) + 2 + pi * cos(phi) * sqrt2 * cos(theta));\n } while (abs(delta) > epsilon && --i > 0);\n phi = ky - sqrt2 * sin(theta);\n return [x * (1 / cos(phi) + w / cos(theta)) / k, phi];\n };\n function boggs() {\n return d3Geo.geoProjection(boggsRaw).scale(160.857);\n }\n function parallel1(projectAt) {\n var phi02 = 0, m = d3Geo.geoProjectionMutator(projectAt), p = m(phi02);\n p.parallel = function(_) {\n return arguments.length ? m(phi02 = _ * radians2) : phi02 * degrees3;\n };\n return p;\n }\n function sinusoidalRaw(lambda, phi) {\n return [lambda * cos(phi), phi];\n }\n sinusoidalRaw.invert = function(x, y) {\n return [x / cos(y), y];\n };\n function sinusoidal() {\n return d3Geo.geoProjection(sinusoidalRaw).scale(152.63);\n }\n function bonneRaw(phi02) {\n if (!phi02) return sinusoidalRaw;\n var cotPhi0 = 1 / tan(phi02);\n function forward(lambda, phi) {\n var rho = cotPhi0 + phi02 - phi, e = rho ? lambda * cos(phi) / rho : rho;\n return [rho * sin(e), cotPhi0 - rho * cos(e)];\n }\n forward.invert = function(x, y) {\n var rho = sqrt(x * x + (y = cotPhi0 - y) * y), phi = cotPhi0 + phi02 - rho;\n return [rho / cos(phi) * atan2(x, y), phi];\n };\n return forward;\n }\n function bonne() {\n return parallel1(bonneRaw).scale(123.082).center([0, 26.1441]).parallel(45);\n }\n function bottomleyRaw(sinPsi) {\n function forward(lambda, phi) {\n var rho = halfPi - phi, eta = rho ? lambda * sinPsi * sin(rho) / rho : rho;\n return [rho * sin(eta) / sinPsi, halfPi - rho * cos(eta)];\n }\n forward.invert = function(x, y) {\n var x12 = x * sinPsi, y12 = halfPi - y, rho = sqrt(x12 * x12 + y12 * y12), eta = atan2(x12, y12);\n return [(rho ? rho / sin(rho) : 1) * eta / sinPsi, halfPi - rho];\n };\n return forward;\n }\n function bottomley() {\n var sinPsi = 0.5, m = d3Geo.geoProjectionMutator(bottomleyRaw), p = m(sinPsi);\n p.fraction = function(_) {\n return arguments.length ? m(sinPsi = +_) : sinPsi;\n };\n return p.scale(158.837);\n }\n var bromleyRaw = mollweideBromleyRaw(1, 4 / pi, pi);\n function bromley() {\n return d3Geo.geoProjection(bromleyRaw).scale(152.63);\n }\n function distance(dPhi, c1, s1, c2, s2, dLambda) {\n var cosdLambda = cos(dLambda), r;\n if (abs(dPhi) > 1 || abs(dLambda) > 1) {\n r = acos(s1 * s2 + c1 * c2 * cosdLambda);\n } else {\n var sindPhi = sin(dPhi / 2), sindLambda = sin(dLambda / 2);\n r = 2 * asin(sqrt(sindPhi * sindPhi + c1 * c2 * sindLambda * sindLambda));\n }\n return abs(r) > epsilon ? [r, atan2(c2 * sin(dLambda), c1 * s2 - s1 * c2 * cosdLambda)] : [0, 0];\n }\n function angle(b, c, a) {\n return acos((b * b + c * c - a * a) / (2 * b * c));\n }\n function longitude(lambda) {\n return lambda - 2 * pi * floor((lambda + pi) / (2 * pi));\n }\n function chamberlinRaw(p0, p1, p2) {\n var points2 = [\n [p0[0], p0[1], sin(p0[1]), cos(p0[1])],\n [p1[0], p1[1], sin(p1[1]), cos(p1[1])],\n [p2[0], p2[1], sin(p2[1]), cos(p2[1])]\n ];\n for (var a = points2[2], b, i = 0; i < 3; ++i, a = b) {\n b = points2[i];\n a.v = distance(b[1] - a[1], a[3], a[2], b[3], b[2], b[0] - a[0]);\n a.point = [0, 0];\n }\n var beta0 = angle(points2[0].v[0], points2[2].v[0], points2[1].v[0]), beta1 = angle(points2[0].v[0], points2[1].v[0], points2[2].v[0]), beta2 = pi - beta0;\n points2[2].point[1] = 0;\n points2[0].point[0] = -(points2[1].point[0] = points2[0].v[0] / 2);\n var mean = [\n points2[2].point[0] = points2[0].point[0] + points2[2].v[0] * cos(beta0),\n 2 * (points2[0].point[1] = points2[1].point[1] = points2[2].v[0] * sin(beta0))\n ];\n function forward(lambda, phi) {\n var sinPhi = sin(phi), cosPhi = cos(phi), v = new Array(3), i2;\n for (i2 = 0; i2 < 3; ++i2) {\n var p = points2[i2];\n v[i2] = distance(phi - p[1], p[3], p[2], cosPhi, sinPhi, lambda - p[0]);\n if (!v[i2][0]) return p.point;\n v[i2][1] = longitude(v[i2][1] - p.v[1]);\n }\n var point = mean.slice();\n for (i2 = 0; i2 < 3; ++i2) {\n var j = i2 == 2 ? 0 : i2 + 1;\n var a2 = angle(points2[i2].v[0], v[i2][0], v[j][0]);\n if (v[i2][1] < 0) a2 = -a2;\n if (!i2) {\n point[0] += v[i2][0] * cos(a2);\n point[1] -= v[i2][0] * sin(a2);\n } else if (i2 == 1) {\n a2 = beta1 - a2;\n point[0] -= v[i2][0] * cos(a2);\n point[1] -= v[i2][0] * sin(a2);\n } else {\n a2 = beta2 - a2;\n point[0] += v[i2][0] * cos(a2);\n point[1] += v[i2][0] * sin(a2);\n }\n }\n point[0] /= 3, point[1] /= 3;\n return point;\n }\n return forward;\n }\n function pointRadians(p) {\n return p[0] *= radians2, p[1] *= radians2, p;\n }\n function chamberlinAfrica() {\n return chamberlin([0, 22], [45, 22], [22.5, -22]).scale(380).center([22.5, 2]);\n }\n function chamberlin(p0, p1, p2) {\n var c = d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: [p0, p1, p2] }), R = [-c[0], -c[1]], r = d3Geo.geoRotation(R), f = chamberlinRaw(pointRadians(r(p0)), pointRadians(r(p1)), pointRadians(r(p2)));\n f.invert = solve2d(f);\n var p = d3Geo.geoProjection(f).rotate(R), center = p.center;\n delete p.rotate;\n p.center = function(_) {\n return arguments.length ? center(r(_)) : r.invert(center());\n };\n return p.clipAngle(90);\n }\n function collignonRaw(lambda, phi) {\n var alpha = sqrt(1 - sin(phi));\n return [2 / sqrtPi * lambda * alpha, sqrtPi * (1 - alpha)];\n }\n collignonRaw.invert = function(x, y) {\n var lambda = (lambda = y / sqrtPi - 1) * lambda;\n return [lambda > 0 ? x * sqrt(pi / lambda) / 2 : 0, asin(1 - lambda)];\n };\n function collignon() {\n return d3Geo.geoProjection(collignonRaw).scale(95.6464).center([0, 30]);\n }\n function craigRaw(phi02) {\n var tanPhi0 = tan(phi02);\n function forward(lambda, phi) {\n return [lambda, (lambda ? lambda / sin(lambda) : 1) * (sin(phi) * cos(lambda) - tanPhi0 * cos(phi))];\n }\n forward.invert = tanPhi0 ? function(x, y) {\n if (x) y *= sin(x) / x;\n var cosLambda = cos(x);\n return [x, 2 * atan2(sqrt(cosLambda * cosLambda + tanPhi0 * tanPhi0 - y * y) - cosLambda, tanPhi0 - y)];\n } : function(x, y) {\n return [x, asin(x ? y * tan(x) / x : y)];\n };\n return forward;\n }\n function craig() {\n return parallel1(craigRaw).scale(249.828).clipAngle(90);\n }\n var sqrt3 = sqrt(3);\n function crasterRaw(lambda, phi) {\n return [sqrt3 * lambda * (2 * cos(2 * phi / 3) - 1) / sqrtPi, sqrt3 * sqrtPi * sin(phi / 3)];\n }\n crasterRaw.invert = function(x, y) {\n var phi = 3 * asin(y / (sqrt3 * sqrtPi));\n return [sqrtPi * x / (sqrt3 * (2 * cos(2 * phi / 3) - 1)), phi];\n };\n function craster() {\n return d3Geo.geoProjection(crasterRaw).scale(156.19);\n }\n function cylindricalEqualAreaRaw(phi02) {\n var cosPhi0 = cos(phi02);\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n return forward;\n }\n function cylindricalEqualArea() {\n return parallel1(cylindricalEqualAreaRaw).parallel(38.58).scale(195.044);\n }\n function cylindricalStereographicRaw(phi02) {\n var cosPhi0 = cos(phi02);\n function forward(lambda, phi) {\n return [lambda * cosPhi0, (1 + cosPhi0) * tan(phi / 2)];\n }\n forward.invert = function(x, y) {\n return [x / cosPhi0, atan(y / (1 + cosPhi0)) * 2];\n };\n return forward;\n }\n function cylindricalStereographic() {\n return parallel1(cylindricalStereographicRaw).scale(124.75);\n }\n function eckert1Raw(lambda, phi) {\n var alpha = sqrt(8 / (3 * pi));\n return [\n alpha * lambda * (1 - abs(phi) / pi),\n alpha * phi\n ];\n }\n eckert1Raw.invert = function(x, y) {\n var alpha = sqrt(8 / (3 * pi)), phi = y / alpha;\n return [\n x / (alpha * (1 - abs(phi) / pi)),\n phi\n ];\n };\n function eckert1() {\n return d3Geo.geoProjection(eckert1Raw).scale(165.664);\n }\n function eckert2Raw(lambda, phi) {\n var alpha = sqrt(4 - 3 * sin(abs(phi)));\n return [\n 2 / sqrt(6 * pi) * lambda * alpha,\n sign(phi) * sqrt(2 * pi / 3) * (2 - alpha)\n ];\n }\n eckert2Raw.invert = function(x, y) {\n var alpha = 2 - abs(y) / sqrt(2 * pi / 3);\n return [\n x * sqrt(6 * pi) / (2 * alpha),\n sign(y) * asin((4 - alpha * alpha) / 3)\n ];\n };\n function eckert2() {\n return d3Geo.geoProjection(eckert2Raw).scale(165.664);\n }\n function eckert3Raw(lambda, phi) {\n var k2 = sqrt(pi * (4 + pi));\n return [\n 2 / k2 * lambda * (1 + sqrt(1 - 4 * phi * phi / (pi * pi))),\n 4 / k2 * phi\n ];\n }\n eckert3Raw.invert = function(x, y) {\n var k2 = sqrt(pi * (4 + pi)) / 2;\n return [\n x * k2 / (1 + sqrt(1 - y * y * (4 + pi) / (4 * pi))),\n y * k2 / 2\n ];\n };\n function eckert3() {\n return d3Geo.geoProjection(eckert3Raw).scale(180.739);\n }\n function eckert4Raw(lambda, phi) {\n var k2 = (2 + halfPi) * sin(phi);\n phi /= 2;\n for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; i++) {\n var cosPhi = cos(phi);\n phi -= delta = (phi + sin(phi) * (cosPhi + 2) - k2) / (2 * cosPhi * (1 + cosPhi));\n }\n return [\n 2 / sqrt(pi * (4 + pi)) * lambda * (1 + cos(phi)),\n 2 * sqrt(pi / (4 + pi)) * sin(phi)\n ];\n }\n eckert4Raw.invert = function(x, y) {\n var A3 = y * sqrt((4 + pi) / pi) / 2, k2 = asin(A3), c = cos(k2);\n return [\n x / (2 / sqrt(pi * (4 + pi)) * (1 + c)),\n asin((k2 + A3 * (c + 2)) / (2 + halfPi))\n ];\n };\n function eckert4() {\n return d3Geo.geoProjection(eckert4Raw).scale(180.739);\n }\n function eckert5Raw(lambda, phi) {\n return [\n lambda * (1 + cos(phi)) / sqrt(2 + pi),\n 2 * phi / sqrt(2 + pi)\n ];\n }\n eckert5Raw.invert = function(x, y) {\n var k2 = sqrt(2 + pi), phi = y * k2 / 2;\n return [\n k2 * x / (1 + cos(phi)),\n phi\n ];\n };\n function eckert5() {\n return d3Geo.geoProjection(eckert5Raw).scale(173.044);\n }\n function eckert6Raw(lambda, phi) {\n var k2 = (1 + halfPi) * sin(phi);\n for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; i++) {\n phi -= delta = (phi + sin(phi) - k2) / (1 + cos(phi));\n }\n k2 = sqrt(2 + pi);\n return [\n lambda * (1 + cos(phi)) / k2,\n 2 * phi / k2\n ];\n }\n eckert6Raw.invert = function(x, y) {\n var j = 1 + halfPi, k2 = sqrt(j / 2);\n return [\n x * 2 * k2 / (1 + cos(y *= k2)),\n asin((y + sin(y)) / j)\n ];\n };\n function eckert6() {\n return d3Geo.geoProjection(eckert6Raw).scale(173.044);\n }\n var eisenlohrK = 3 + 2 * sqrt2;\n function eisenlohrRaw(lambda, phi) {\n var s0 = sin(lambda /= 2), c0 = cos(lambda), k2 = sqrt(cos(phi)), c1 = cos(phi /= 2), t = sin(phi) / (c1 + sqrt2 * c0 * k2), c = sqrt(2 / (1 + t * t)), v = sqrt((sqrt2 * c1 + (c0 + s0) * k2) / (sqrt2 * c1 + (c0 - s0) * k2));\n return [\n eisenlohrK * (c * (v - 1 / v) - 2 * log(v)),\n eisenlohrK * (c * t * (v + 1 / v) - 2 * atan(t))\n ];\n }\n eisenlohrRaw.invert = function(x, y) {\n if (!(p = augustRaw.invert(x / 1.2, y * 1.065))) return null;\n var lambda = p[0], phi = p[1], i = 20, p;\n x /= eisenlohrK, y /= eisenlohrK;\n do {\n var _0 = lambda / 2, _1 = phi / 2, s0 = sin(_0), c0 = cos(_0), s1 = sin(_1), c1 = cos(_1), cos1 = cos(phi), k2 = sqrt(cos1), t = s1 / (c1 + sqrt2 * c0 * k2), t22 = t * t, c = sqrt(2 / (1 + t22)), v0 = sqrt2 * c1 + (c0 + s0) * k2, v1 = sqrt2 * c1 + (c0 - s0) * k2, v2 = v0 / v1, v = sqrt(v2), vm1v = v - 1 / v, vp1v = v + 1 / v, fx = c * vm1v - 2 * log(v) - x, fy = c * t * vp1v - 2 * atan(t) - y, deltatDeltaLambda = s1 && sqrt1_2 * k2 * s0 * t22 / s1, deltatDeltaPhi = (sqrt2 * c0 * c1 + k2) / (2 * (c1 + sqrt2 * c0 * k2) * (c1 + sqrt2 * c0 * k2) * k2), deltacDeltat = -0.5 * t * c * c * c, deltacDeltaLambda = deltacDeltat * deltatDeltaLambda, deltacDeltaPhi = deltacDeltat * deltatDeltaPhi, A3 = (A3 = 2 * c1 + sqrt2 * k2 * (c0 - s0)) * A3 * v, deltavDeltaLambda = (sqrt2 * c0 * c1 * k2 + cos1) / A3, deltavDeltaPhi = -(sqrt2 * s0 * s1) / (k2 * A3), deltaxDeltaLambda = vm1v * deltacDeltaLambda - 2 * deltavDeltaLambda / v + c * (deltavDeltaLambda + deltavDeltaLambda / v2), deltaxDeltaPhi = vm1v * deltacDeltaPhi - 2 * deltavDeltaPhi / v + c * (deltavDeltaPhi + deltavDeltaPhi / v2), deltayDeltaLambda = t * vp1v * deltacDeltaLambda - 2 * deltatDeltaLambda / (1 + t22) + c * vp1v * deltatDeltaLambda + c * t * (deltavDeltaLambda - deltavDeltaLambda / v2), deltayDeltaPhi = t * vp1v * deltacDeltaPhi - 2 * deltatDeltaPhi / (1 + t22) + c * vp1v * deltatDeltaPhi + c * t * (deltavDeltaPhi - deltavDeltaPhi / v2), denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda;\n if (!denominator) break;\n var deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator, deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n lambda -= deltaLambda;\n phi = max(-halfPi, min(halfPi, phi - deltaPhi));\n } while ((abs(deltaLambda) > epsilon || abs(deltaPhi) > epsilon) && --i > 0);\n return abs(abs(phi) - halfPi) < epsilon ? [0, phi] : i && [lambda, phi];\n };\n function eisenlohr() {\n return d3Geo.geoProjection(eisenlohrRaw).scale(62.5271);\n }\n var faheyK = cos(35 * radians2);\n function faheyRaw(lambda, phi) {\n var t = tan(phi / 2);\n return [lambda * faheyK * sqrt(1 - t * t), (1 + faheyK) * t];\n }\n faheyRaw.invert = function(x, y) {\n var t = y / (1 + faheyK);\n return [x && x / (faheyK * sqrt(1 - t * t)), 2 * atan(t)];\n };\n function fahey() {\n return d3Geo.geoProjection(faheyRaw).scale(137.152);\n }\n function foucautRaw(lambda, phi) {\n var k2 = phi / 2, cosk = cos(k2);\n return [2 * lambda / sqrtPi * cos(phi) * cosk * cosk, sqrtPi * tan(k2)];\n }\n foucautRaw.invert = function(x, y) {\n var k2 = atan(y / sqrtPi), cosk = cos(k2), phi = 2 * k2;\n return [x * sqrtPi / 2 / (cos(phi) * cosk * cosk), phi];\n };\n function foucaut() {\n return d3Geo.geoProjection(foucautRaw).scale(135.264);\n }\n function foucautSinusoidalRaw(alpha) {\n var beta = 1 - alpha, equatorial = raw(pi, 0)[0] - raw(-pi, 0)[0], polar = raw(0, halfPi)[1] - raw(0, -halfPi)[1], ratio = sqrt(2 * polar / equatorial);\n function raw(lambda, phi) {\n var cosphi = cos(phi), sinphi = sin(phi);\n return [\n cosphi / (beta + alpha * cosphi) * lambda,\n beta * phi + alpha * sinphi\n ];\n }\n function forward(lambda, phi) {\n var p = raw(lambda, phi);\n return [p[0] * ratio, p[1] / ratio];\n }\n function forwardMeridian(phi) {\n return forward(0, phi)[1];\n }\n forward.invert = function(x, y) {\n var phi = solve(forwardMeridian, y), lambda = x / ratio * (alpha + beta / cos(phi));\n return [lambda, phi];\n };\n return forward;\n }\n function foucautSinusoidal() {\n var alpha = 0.5, m = d3Geo.geoProjectionMutator(foucautSinusoidalRaw), p = m(alpha);\n p.alpha = function(_) {\n return arguments.length ? m(alpha = +_) : alpha;\n };\n return p.scale(168.725);\n }\n function gilbertForward(point) {\n return [point[0] / 2, asin(tan(point[1] / 2 * radians2)) * degrees3];\n }\n function gilbertInvert(point) {\n return [point[0] * 2, 2 * atan(sin(point[1] * radians2)) * degrees3];\n }\n function gilbert(projectionType) {\n if (projectionType == null) projectionType = d3Geo.geoOrthographic;\n var projection = projectionType(), equirectangular = d3Geo.geoEquirectangular().scale(degrees3).precision(0).clipAngle(null).translate([0, 0]);\n function gilbert2(point) {\n return projection(gilbertForward(point));\n }\n if (projection.invert) gilbert2.invert = function(point) {\n return gilbertInvert(projection.invert(point));\n };\n gilbert2.stream = function(stream) {\n var s1 = projection.stream(stream), s0 = equirectangular.stream({\n point: function(lambda, phi) {\n s1.point(lambda / 2, asin(tan(-phi / 2 * radians2)) * degrees3);\n },\n lineStart: function() {\n s1.lineStart();\n },\n lineEnd: function() {\n s1.lineEnd();\n },\n polygonStart: function() {\n s1.polygonStart();\n },\n polygonEnd: function() {\n s1.polygonEnd();\n }\n });\n s0.sphere = s1.sphere;\n return s0;\n };\n function property(name2) {\n gilbert2[name2] = function() {\n return arguments.length ? (projection[name2].apply(projection, arguments), gilbert2) : projection[name2]();\n };\n }\n gilbert2.rotate = function(_) {\n return arguments.length ? (equirectangular.rotate(_), gilbert2) : equirectangular.rotate();\n };\n gilbert2.center = function(_) {\n return arguments.length ? (projection.center(gilbertForward(_)), gilbert2) : gilbertInvert(projection.center());\n };\n property(\"angle\");\n property(\"clipAngle\");\n property(\"clipExtent\");\n property(\"fitExtent\");\n property(\"fitHeight\");\n property(\"fitSize\");\n property(\"fitWidth\");\n property(\"scale\");\n property(\"translate\");\n property(\"precision\");\n return gilbert2.scale(249.5);\n }\n function gingeryRaw(rho, n) {\n var k2 = 2 * pi / n, rho2 = rho * rho;\n function forward(lambda, phi) {\n var p = d3Geo.geoAzimuthalEquidistantRaw(lambda, phi), x = p[0], y = p[1], r2 = x * x + y * y;\n if (r2 > rho2) {\n var r = sqrt(r2), theta = atan2(y, x), theta0 = k2 * round(theta / k2), alpha = theta - theta0, rhoCosAlpha = rho * cos(alpha), k_ = (rho * sin(alpha) - alpha * sin(rhoCosAlpha)) / (halfPi - rhoCosAlpha), s_ = gingeryLength(alpha, k_), e = (pi - rho) / gingeryIntegrate(s_, rhoCosAlpha, pi);\n x = r;\n var i = 50, delta;\n do {\n x -= delta = (rho + gingeryIntegrate(s_, rhoCosAlpha, x) * e - r) / (s_(x) * e);\n } while (abs(delta) > epsilon && --i > 0);\n y = alpha * sin(x);\n if (x < halfPi) y -= k_ * (x - halfPi);\n var s = sin(theta0), c = cos(theta0);\n p[0] = x * c - y * s;\n p[1] = x * s + y * c;\n }\n return p;\n }\n forward.invert = function(x, y) {\n var r2 = x * x + y * y;\n if (r2 > rho2) {\n var r = sqrt(r2), theta = atan2(y, x), theta0 = k2 * round(theta / k2), dTheta = theta - theta0;\n x = r * cos(dTheta);\n y = r * sin(dTheta);\n var x_halfPi = x - halfPi, sinx = sin(x), alpha = y / sinx, delta = x < halfPi ? Infinity : 0, i = 10;\n while (true) {\n var rhosinAlpha = rho * sin(alpha), rhoCosAlpha = rho * cos(alpha), sinRhoCosAlpha = sin(rhoCosAlpha), halfPi_RhoCosAlpha = halfPi - rhoCosAlpha, k_ = (rhosinAlpha - alpha * sinRhoCosAlpha) / halfPi_RhoCosAlpha, s_ = gingeryLength(alpha, k_);\n if (abs(delta) < epsilon22 || !--i) break;\n alpha -= delta = (alpha * sinx - k_ * x_halfPi - y) / (sinx - x_halfPi * 2 * (halfPi_RhoCosAlpha * (rhoCosAlpha + alpha * rhosinAlpha * cos(rhoCosAlpha) - sinRhoCosAlpha) - rhosinAlpha * (rhosinAlpha - alpha * sinRhoCosAlpha)) / (halfPi_RhoCosAlpha * halfPi_RhoCosAlpha));\n }\n r = rho + gingeryIntegrate(s_, rhoCosAlpha, x) * (pi - rho) / gingeryIntegrate(s_, rhoCosAlpha, pi);\n theta = theta0 + alpha;\n x = r * cos(theta);\n y = r * sin(theta);\n }\n return d3Geo.geoAzimuthalEquidistantRaw.invert(x, y);\n };\n return forward;\n }\n function gingeryLength(alpha, k2) {\n return function(x) {\n var y_ = alpha * cos(x);\n if (x < halfPi) y_ -= k2;\n return sqrt(1 + y_ * y_);\n };\n }\n function gingeryIntegrate(f, a, b) {\n var n = 50, h = (b - a) / n, s = f(a) + f(b);\n for (var i = 1, x = a; i < n; ++i) s += 2 * f(x += h);\n return s * 0.5 * h;\n }\n function gingery() {\n var n = 6, rho = 30 * radians2, cRho = cos(rho), sRho = sin(rho), m = d3Geo.geoProjectionMutator(gingeryRaw), p = m(rho, n), stream_ = p.stream, epsilon$$1 = 0.01, cr = -cos(epsilon$$1 * radians2), sr = sin(epsilon$$1 * radians2);\n p.radius = function(_) {\n if (!arguments.length) return rho * degrees3;\n cRho = cos(rho = _ * radians2);\n sRho = sin(rho);\n return m(rho, n);\n };\n p.lobes = function(_) {\n if (!arguments.length) return n;\n return m(rho, n = +_);\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart(), sphereStream.lineStart();\n for (var i = 0, delta = 2 * pi / n, phi = 0; i < n; ++i, phi -= delta) {\n sphereStream.point(atan2(sr * cos(phi), cr) * degrees3, asin(sr * sin(phi)) * degrees3);\n sphereStream.point(atan2(sRho * cos(phi - delta / 2), cRho) * degrees3, asin(sRho * sin(phi - delta / 2)) * degrees3);\n }\n sphereStream.lineEnd(), sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return p.rotate([90, -40]).scale(91.7095).clipAngle(180 - 1e-3);\n }\n function ginzburgPolyconicRaw(a, b, c, d, e, f, g, h) {\n if (arguments.length < 8) h = 0;\n function forward(lambda, phi) {\n if (!phi) return [a * lambda / pi, 0];\n var phi2 = phi * phi, xB = a + phi2 * (b + phi2 * (c + phi2 * d)), yB = phi * (e - 1 + phi2 * (f - h + phi2 * g)), m = (xB * xB + yB * yB) / (2 * yB), alpha = lambda * asin(xB / m) / pi;\n return [m * sin(alpha), phi * (1 + phi2 * h) + m * (1 - cos(alpha))];\n }\n forward.invert = function(x, y) {\n var lambda = pi * x / a, phi = y, deltaLambda, deltaPhi, i = 50;\n do {\n var phi2 = phi * phi, xB = a + phi2 * (b + phi2 * (c + phi2 * d)), yB = phi * (e - 1 + phi2 * (f - h + phi2 * g)), p = xB * xB + yB * yB, q = 2 * yB, m = p / q, m2 = m * m, dAlphadLambda = asin(xB / m) / pi, alpha = lambda * dAlphadLambda, xB2 = xB * xB, dxBdPhi = (2 * b + phi2 * (4 * c + phi2 * 6 * d)) * phi, dyBdPhi = e + phi2 * (3 * f + phi2 * 5 * g), dpdPhi = 2 * (xB * dxBdPhi + yB * (dyBdPhi - 1)), dqdPhi = 2 * (dyBdPhi - 1), dmdPhi = (dpdPhi * q - p * dqdPhi) / (q * q), cosAlpha = cos(alpha), sinAlpha = sin(alpha), mcosAlpha = m * cosAlpha, msinAlpha = m * sinAlpha, dAlphadPhi = lambda / pi * (1 / sqrt(1 - xB2 / m2)) * (dxBdPhi * m - xB * dmdPhi) / m2, fx = msinAlpha - x, fy = phi * (1 + phi2 * h) + m - mcosAlpha - y, deltaxDeltaPhi = dmdPhi * sinAlpha + mcosAlpha * dAlphadPhi, deltaxDeltaLambda = mcosAlpha * dAlphadLambda, deltayDeltaPhi = 1 + dmdPhi - (dmdPhi * cosAlpha - msinAlpha * dAlphadPhi), deltayDeltaLambda = msinAlpha * dAlphadLambda, denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda;\n if (!denominator) break;\n lambda -= deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator;\n phi -= deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n } while ((abs(deltaLambda) > epsilon || abs(deltaPhi) > epsilon) && --i > 0);\n return [lambda, phi];\n };\n return forward;\n }\n var ginzburg4Raw = ginzburgPolyconicRaw(2.8284, -1.6988, 0.75432, -0.18071, 1.76003, -0.38914, 0.042555);\n function ginzburg4() {\n return d3Geo.geoProjection(ginzburg4Raw).scale(149.995);\n }\n var ginzburg5Raw = ginzburgPolyconicRaw(2.583819, -0.835827, 0.170354, -0.038094, 1.543313, -0.411435, 0.082742);\n function ginzburg5() {\n return d3Geo.geoProjection(ginzburg5Raw).scale(153.93);\n }\n var ginzburg6Raw = ginzburgPolyconicRaw(5 / 6 * pi, -0.62636, -0.0344, 0, 1.3493, -0.05524, 0, 0.045);\n function ginzburg6() {\n return d3Geo.geoProjection(ginzburg6Raw).scale(130.945);\n }\n function ginzburg8Raw(lambda, phi) {\n var lambda2 = lambda * lambda, phi2 = phi * phi;\n return [\n lambda * (1 - 0.162388 * phi2) * (0.87 - 952426e-9 * lambda2 * lambda2),\n phi * (1 + phi2 / 12)\n ];\n }\n ginzburg8Raw.invert = function(x, y) {\n var lambda = x, phi = y, i = 50, delta;\n do {\n var phi2 = phi * phi;\n phi -= delta = (phi * (1 + phi2 / 12) - y) / (1 + phi2 / 4);\n } while (abs(delta) > epsilon && --i > 0);\n i = 50;\n x /= 1 - 0.162388 * phi2;\n do {\n var lambda4 = (lambda4 = lambda * lambda) * lambda4;\n lambda -= delta = (lambda * (0.87 - 952426e-9 * lambda4) - x) / (0.87 - 476213e-8 * lambda4);\n } while (abs(delta) > epsilon && --i > 0);\n return [lambda, phi];\n };\n function ginzburg8() {\n return d3Geo.geoProjection(ginzburg8Raw).scale(131.747);\n }\n var ginzburg9Raw = ginzburgPolyconicRaw(2.6516, -0.76534, 0.19123, -0.047094, 1.36289, -0.13965, 0.031762);\n function ginzburg9() {\n return d3Geo.geoProjection(ginzburg9Raw).scale(131.087);\n }\n function squareRaw(project) {\n var dx = project(halfPi, 0)[0] - project(-halfPi, 0)[0];\n function projectSquare(lambda, phi) {\n var s = lambda > 0 ? -0.5 : 0.5, point = project(lambda + s * pi, phi);\n point[0] -= s * dx;\n return point;\n }\n if (project.invert) projectSquare.invert = function(x, y) {\n var s = x > 0 ? -0.5 : 0.5, location2 = project.invert(x + s * dx, y), lambda = location2[0] - s * pi;\n if (lambda < -pi) lambda += 2 * pi;\n else if (lambda > pi) lambda -= 2 * pi;\n location2[0] = lambda;\n return location2;\n };\n return projectSquare;\n }\n function gringortenRaw(lambda, phi) {\n var sLambda = sign(lambda), sPhi = sign(phi), cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(sPhi * phi);\n lambda = abs(atan2(y, z));\n phi = asin(x);\n if (abs(lambda - halfPi) > epsilon) lambda %= halfPi;\n var point = gringortenHexadecant(lambda > pi / 4 ? halfPi - lambda : lambda, phi);\n if (lambda > pi / 4) z = point[0], point[0] = -point[1], point[1] = -z;\n return point[0] *= sLambda, point[1] *= -sPhi, point;\n }\n gringortenRaw.invert = function(x, y) {\n if (abs(x) > 1) x = sign(x) * 2 - x;\n if (abs(y) > 1) y = sign(y) * 2 - y;\n var sx = sign(x), sy = sign(y), x02 = -sx * x, y02 = -sy * y, t = y02 / x02 < 1, p = gringortenHexadecantInvert(t ? y02 : x02, t ? x02 : y02), lambda = p[0], phi = p[1], cosPhi = cos(phi);\n if (t) lambda = -halfPi - lambda;\n return [sx * (atan2(sin(lambda) * cosPhi, -sin(phi)) + pi), sy * asin(cos(lambda) * cosPhi)];\n };\n function gringortenHexadecant(lambda, phi) {\n if (phi === halfPi) return [0, 0];\n var sinPhi = sin(phi), r = sinPhi * sinPhi, r2 = r * r, j = 1 + r2, k2 = 1 + 3 * r2, q = 1 - r2, z = asin(1 / sqrt(j)), v = q + r * j * z, p2 = (1 - sinPhi) / v, p = sqrt(p2), a2 = p2 * j, a = sqrt(a2), h = p * q, x, i;\n if (lambda === 0) return [0, -(h + r * a)];\n var cosPhi = cos(phi), secPhi = 1 / cosPhi, drdPhi = 2 * sinPhi * cosPhi, dvdPhi = (-3 * r + z * k2) * drdPhi, dp2dPhi = (-v * cosPhi - (1 - sinPhi) * dvdPhi) / (v * v), dpdPhi = 0.5 * dp2dPhi / p, dhdPhi = q * dpdPhi - 2 * r * p * drdPhi, dra2dPhi = r * j * dp2dPhi + p2 * k2 * drdPhi, mu = -secPhi * drdPhi, nu = -secPhi * dra2dPhi, zeta = -2 * secPhi * dhdPhi, lambda1 = 4 * lambda / pi, delta;\n if (lambda > 0.222 * pi || phi < pi / 4 && lambda > 0.175 * pi) {\n x = (h + r * sqrt(a2 * (1 + r2) - h * h)) / (1 + r2);\n if (lambda > pi / 4) return [x, x];\n var x12 = x, x02 = 0.5 * x;\n x = 0.5 * (x02 + x12), i = 50;\n do {\n var g = sqrt(a2 - x * x), f = x * (zeta + mu * g) + nu * asin(x / a) - lambda1;\n if (!f) break;\n if (f < 0) x02 = x;\n else x12 = x;\n x = 0.5 * (x02 + x12);\n } while (abs(x12 - x02) > epsilon && --i > 0);\n } else {\n x = epsilon, i = 25;\n do {\n var x2 = x * x, g2 = sqrt(a2 - x2), zetaMug = zeta + mu * g2, f2 = x * zetaMug + nu * asin(x / a) - lambda1, df = zetaMug + (nu - mu * x2) / g2;\n x -= delta = g2 ? f2 / df : 0;\n } while (abs(delta) > epsilon && --i > 0);\n }\n return [x, -h - r * sqrt(a2 - x * x)];\n }\n function gringortenHexadecantInvert(x, y) {\n var x02 = 0, x12 = 1, r = 0.5, i = 50;\n while (true) {\n var r2 = r * r, sinPhi = sqrt(r), z = asin(1 / sqrt(1 + r2)), v = 1 - r2 + r * (1 + r2) * z, p2 = (1 - sinPhi) / v, p = sqrt(p2), a2 = p2 * (1 + r2), h = p * (1 - r2), g2 = a2 - x * x, g = sqrt(g2), y02 = y + h + r * g;\n if (abs(x12 - x02) < epsilon22 || --i === 0 || y02 === 0) break;\n if (y02 > 0) x02 = r;\n else x12 = r;\n r = 0.5 * (x02 + x12);\n }\n if (!i) return null;\n var phi = asin(sinPhi), cosPhi = cos(phi), secPhi = 1 / cosPhi, drdPhi = 2 * sinPhi * cosPhi, dvdPhi = (-3 * r + z * (1 + 3 * r2)) * drdPhi, dp2dPhi = (-v * cosPhi - (1 - sinPhi) * dvdPhi) / (v * v), dpdPhi = 0.5 * dp2dPhi / p, dhdPhi = (1 - r2) * dpdPhi - 2 * r * p * drdPhi, zeta = -2 * secPhi * dhdPhi, mu = -secPhi * drdPhi, nu = -secPhi * (r * (1 + r2) * dp2dPhi + p2 * (1 + 3 * r2) * drdPhi);\n return [pi / 4 * (x * (zeta + mu * g) + nu * asin(x / sqrt(a2))), phi];\n }\n function gringorten() {\n return d3Geo.geoProjection(squareRaw(gringortenRaw)).scale(239.75);\n }\n function ellipticJi(u, v, m) {\n var a, b, c;\n if (!u) {\n b = ellipticJ(v, 1 - m);\n return [\n [0, b[0] / b[1]],\n [1 / b[1], 0],\n [b[2] / b[1], 0]\n ];\n }\n a = ellipticJ(u, m);\n if (!v) return [[a[0], 0], [a[1], 0], [a[2], 0]];\n b = ellipticJ(v, 1 - m);\n c = b[1] * b[1] + m * a[0] * a[0] * b[0] * b[0];\n return [\n [a[0] * b[2] / c, a[1] * a[2] * b[0] * b[1] / c],\n [a[1] * b[1] / c, -a[0] * a[2] * b[0] * b[2] / c],\n [a[2] * b[1] * b[2] / c, -m * a[0] * a[1] * b[0] / c]\n ];\n }\n function ellipticJ(u, m) {\n var ai, b, phi, t, twon;\n if (m < epsilon) {\n t = sin(u);\n b = cos(u);\n ai = m * (u - t * b) / 4;\n return [\n t - ai * b,\n b + ai * t,\n 1 - m * t * t / 2,\n u - ai\n ];\n }\n if (m >= 1 - epsilon) {\n ai = (1 - m) / 4;\n b = cosh2(u);\n t = tanh2(u);\n phi = 1 / b;\n twon = b * sinh2(u);\n return [\n t + ai * (twon - u) / (b * b),\n phi - ai * t * phi * (twon - u),\n phi + ai * t * phi * (twon + u),\n 2 * atan(exp(u)) - halfPi + ai * (twon - u) / b\n ];\n }\n var a = [1, 0, 0, 0, 0, 0, 0, 0, 0], c = [sqrt(m), 0, 0, 0, 0, 0, 0, 0, 0], i = 0;\n b = sqrt(1 - m);\n twon = 1;\n while (abs(c[i] / a[i]) > epsilon && i < 8) {\n ai = a[i++];\n c[i] = (ai - b) / 2;\n a[i] = (ai + b) / 2;\n b = sqrt(ai * b);\n twon *= 2;\n }\n phi = twon * a[i] * u;\n do {\n t = c[i] * sin(b = phi) / a[i];\n phi = (asin(t) + phi) / 2;\n } while (--i);\n return [sin(phi), t = cos(phi), t / cos(phi - b), phi];\n }\n function ellipticFi(phi, psi, m) {\n var r = abs(phi), i = abs(psi), sinhPsi = sinh2(i);\n if (r) {\n var cscPhi = 1 / sin(r), cotPhi2 = 1 / (tan(r) * tan(r)), b = -(cotPhi2 + m * (sinhPsi * sinhPsi * cscPhi * cscPhi) - 1 + m), c = (m - 1) * cotPhi2, cotLambda2 = (-b + sqrt(b * b - 4 * c)) / 2;\n return [\n ellipticF(atan(1 / sqrt(cotLambda2)), m) * sign(phi),\n ellipticF(atan(sqrt((cotLambda2 / cotPhi2 - 1) / m)), 1 - m) * sign(psi)\n ];\n }\n return [\n 0,\n ellipticF(atan(sinhPsi), 1 - m) * sign(psi)\n ];\n }\n function ellipticF(phi, m) {\n if (!m) return phi;\n if (m === 1) return log(tan(phi / 2 + quarterPi));\n var a = 1, b = sqrt(1 - m), c = sqrt(m);\n for (var i = 0; abs(c) > epsilon; i++) {\n if (phi % pi) {\n var dPhi = atan(b * tan(phi) / a);\n if (dPhi < 0) dPhi += pi;\n phi += dPhi + ~~(phi / pi) * pi;\n } else phi += phi;\n c = (a + b) / 2;\n b = sqrt(a * b);\n c = ((a = c) - b) / 2;\n }\n return phi / (pow(2, i) * a);\n }\n function guyouRaw(lambda, phi) {\n var k_ = (sqrt2 - 1) / (sqrt2 + 1), k2 = sqrt(1 - k_ * k_), K3 = ellipticF(halfPi, k2 * k2), f = -1, psi = log(tan(pi / 4 + abs(phi) / 2)), r = exp(f * psi) / sqrt(k_), at = guyouComplexAtan(r * cos(f * lambda), r * sin(f * lambda)), t = ellipticFi(at[0], at[1], k2 * k2);\n return [-t[1], (phi >= 0 ? 1 : -1) * (0.5 * K3 - t[0])];\n }\n function guyouComplexAtan(x, y) {\n var x2 = x * x, y_1 = y + 1, t = 1 - x2 - y * y;\n return [\n 0.5 * ((x >= 0 ? halfPi : -halfPi) - atan2(t, 2 * x)),\n -0.25 * log(t * t + 4 * x2) + 0.5 * log(y_1 * y_1 + x2)\n ];\n }\n function guyouComplexDivide(a, b) {\n var denominator = b[0] * b[0] + b[1] * b[1];\n return [\n (a[0] * b[0] + a[1] * b[1]) / denominator,\n (a[1] * b[0] - a[0] * b[1]) / denominator\n ];\n }\n guyouRaw.invert = function(x, y) {\n var k_ = (sqrt2 - 1) / (sqrt2 + 1), k2 = sqrt(1 - k_ * k_), K3 = ellipticF(halfPi, k2 * k2), f = -1, j = ellipticJi(0.5 * K3 - y, -x, k2 * k2), tn = guyouComplexDivide(j[0], j[1]), lambda = atan2(tn[1], tn[0]) / f;\n return [\n lambda,\n 2 * atan(exp(0.5 / f * log(k_ * tn[0] * tn[0] + k_ * tn[1] * tn[1]))) - halfPi\n ];\n };\n function guyou() {\n return d3Geo.geoProjection(squareRaw(guyouRaw)).scale(151.496);\n }\n function hammerRetroazimuthalRaw(phi02) {\n var sinPhi0 = sin(phi02), cosPhi0 = cos(phi02), rotate = hammerRetroazimuthalRotation(phi02);\n rotate.invert = hammerRetroazimuthalRotation(-phi02);\n function forward(lambda, phi) {\n var p = rotate(lambda, phi);\n lambda = p[0], phi = p[1];\n var sinPhi = sin(phi), cosPhi = cos(phi), cosLambda = cos(lambda), z = acos(sinPhi0 * sinPhi + cosPhi0 * cosPhi * cosLambda), sinz = sin(z), K3 = abs(sinz) > epsilon ? z / sinz : 1;\n return [\n K3 * cosPhi0 * sin(lambda),\n (abs(lambda) > halfPi ? K3 : -K3) * (sinPhi0 * cosPhi - cosPhi0 * sinPhi * cosLambda)\n ];\n }\n forward.invert = function(x, y) {\n var rho = sqrt(x * x + y * y), sinz = -sin(rho), cosz = cos(rho), a = rho * cosz, b = -y * sinz, c = rho * sinPhi0, d = sqrt(a * a + b * b - c * c), phi = atan2(a * c + b * d, b * c - a * d), lambda = (rho > halfPi ? -1 : 1) * atan2(x * sinz, rho * cos(phi) * cosz + y * sin(phi) * sinz);\n return rotate.invert(lambda, phi);\n };\n return forward;\n }\n function hammerRetroazimuthalRotation(phi02) {\n var sinPhi0 = sin(phi02), cosPhi0 = cos(phi02);\n return function(lambda, phi) {\n var cosPhi = cos(phi), x = cos(lambda) * cosPhi, y = sin(lambda) * cosPhi, z = sin(phi);\n return [\n atan2(y, x * cosPhi0 - z * sinPhi0),\n asin(z * cosPhi0 + x * sinPhi0)\n ];\n };\n }\n function hammerRetroazimuthal() {\n var phi02 = 0, m = d3Geo.geoProjectionMutator(hammerRetroazimuthalRaw), p = m(phi02), rotate_ = p.rotate, stream_ = p.stream, circle = d3Geo.geoCircle();\n p.parallel = function(_) {\n if (!arguments.length) return phi02 * degrees3;\n var r = p.rotate();\n return m(phi02 = _ * radians2).rotate(r);\n };\n p.rotate = function(_) {\n if (!arguments.length) return _ = rotate_.call(p), _[1] += phi02 * degrees3, _;\n rotate_.call(p, [_[0], _[1] - phi02 * degrees3]);\n circle.center([-_[0], -_[1]]);\n return p;\n };\n p.stream = function(stream) {\n stream = stream_(stream);\n stream.sphere = function() {\n stream.polygonStart();\n var epsilon$$1 = 0.01, ring = circle.radius(90 - epsilon$$1)().coordinates[0], n = ring.length - 1, i = -1, p2;\n stream.lineStart();\n while (++i < n) stream.point((p2 = ring[i])[0], p2[1]);\n stream.lineEnd();\n ring = circle.radius(90 + epsilon$$1)().coordinates[0];\n n = ring.length - 1;\n stream.lineStart();\n while (--i >= 0) stream.point((p2 = ring[i])[0], p2[1]);\n stream.lineEnd();\n stream.polygonEnd();\n };\n return stream;\n };\n return p.scale(79.4187).parallel(45).clipAngle(180 - 1e-3);\n }\n var K2 = 3, healpixParallel = asin(1 - 1 / K2) * degrees3, healpixLambert = cylindricalEqualAreaRaw(0);\n function healpixRaw(H) {\n var phi02 = healpixParallel * radians2, dx = collignonRaw(pi, phi02)[0] - collignonRaw(-pi, phi02)[0], y02 = healpixLambert(0, phi02)[1], y12 = collignonRaw(0, phi02)[1], dy1 = sqrtPi - y12, k2 = tau / H, w2 = 4 / tau, h = y02 + dy1 * dy1 * 4 / tau;\n function forward(lambda, phi) {\n var point, phi2 = abs(phi);\n if (phi2 > phi02) {\n var i = min(H - 1, max(0, floor((lambda + pi) / k2)));\n lambda += pi * (H - 1) / H - i * k2;\n point = collignonRaw(lambda, phi2);\n point[0] = point[0] * tau / dx - tau * (H - 1) / (2 * H) + i * tau / H;\n point[1] = y02 + (point[1] - y12) * 4 * dy1 / tau;\n if (phi < 0) point[1] = -point[1];\n } else {\n point = healpixLambert(lambda, phi);\n }\n point[0] *= w2, point[1] /= h;\n return point;\n }\n forward.invert = function(x, y) {\n x /= w2, y *= h;\n var y2 = abs(y);\n if (y2 > y02) {\n var i = min(H - 1, max(0, floor((x + pi) / k2)));\n x = (x + pi * (H - 1) / H - i * k2) * dx / tau;\n var point = collignonRaw.invert(x, 0.25 * (y2 - y02) * tau / dy1 + y12);\n point[0] -= pi * (H - 1) / H - i * k2;\n if (y < 0) point[1] = -point[1];\n return point;\n }\n return healpixLambert.invert(x, y);\n };\n return forward;\n }\n function sphereTop(x, i) {\n return [x, i & 1 ? 90 - epsilon : healpixParallel];\n }\n function sphereBottom(x, i) {\n return [x, i & 1 ? -90 + epsilon : -healpixParallel];\n }\n function sphereNudge(d) {\n return [d[0] * (1 - epsilon), d[1]];\n }\n function sphere(step) {\n var c = [].concat(\n d3Array.range(-180, 180 + step / 2, step).map(sphereTop),\n d3Array.range(180, -180 - step / 2, -step).map(sphereBottom)\n );\n return {\n type: \"Polygon\",\n coordinates: [step === 180 ? c.map(sphereNudge) : c]\n };\n }\n function healpix() {\n var H = 4, m = d3Geo.geoProjectionMutator(healpixRaw), p = m(H), stream_ = p.stream;\n p.lobes = function(_) {\n return arguments.length ? m(H = +_) : H;\n };\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n d3Geo.geoStream(sphere(180 / H), sphereStream);\n };\n return rotateStream;\n };\n return p.scale(239.75);\n }\n function hillRaw(K3) {\n var L = 1 + K3, sinBt = sin(1 / L), Bt = asin(sinBt), A3 = 2 * sqrt(pi / (B3 = pi + 4 * Bt * L)), B3, rho0 = 0.5 * A3 * (L + sqrt(K3 * (2 + K3))), K22 = K3 * K3, L2 = L * L;\n function forward(lambda, phi) {\n var t = 1 - sin(phi), rho, omega;\n if (t && t < 2) {\n var theta = halfPi - phi, i = 25, delta;\n do {\n var sinTheta = sin(theta), cosTheta = cos(theta), Bt_Bt1 = Bt + atan2(sinTheta, L - cosTheta), C2 = 1 + L2 - 2 * L * cosTheta;\n theta -= delta = (theta - K22 * Bt - L * sinTheta + C2 * Bt_Bt1 - 0.5 * t * B3) / (2 * L * sinTheta * Bt_Bt1);\n } while (abs(delta) > epsilon22 && --i > 0);\n rho = A3 * sqrt(C2);\n omega = lambda * Bt_Bt1 / pi;\n } else {\n rho = A3 * (K3 + t);\n omega = lambda * Bt / pi;\n }\n return [\n rho * sin(omega),\n rho0 - rho * cos(omega)\n ];\n }\n forward.invert = function(x, y) {\n var rho2 = x * x + (y -= rho0) * y, cosTheta = (1 + L2 - rho2 / (A3 * A3)) / (2 * L), theta = acos(cosTheta), sinTheta = sin(theta), Bt_Bt1 = Bt + atan2(sinTheta, L - cosTheta);\n return [\n asin(x / sqrt(rho2)) * pi / Bt_Bt1,\n asin(1 - 2 * (theta - K22 * Bt - L * sinTheta + (1 + L2 - 2 * L * cosTheta) * Bt_Bt1) / B3)\n ];\n };\n return forward;\n }\n function hill() {\n var K3 = 1, m = d3Geo.geoProjectionMutator(hillRaw), p = m(K3);\n p.ratio = function(_) {\n return arguments.length ? m(K3 = +_) : K3;\n };\n return p.scale(167.774).center([0, 18.67]);\n }\n var sinuMollweidePhi = 0.7109889596207567;\n var sinuMollweideY = 0.0528035274542;\n function sinuMollweideRaw(lambda, phi) {\n return phi > -sinuMollweidePhi ? (lambda = mollweideRaw(lambda, phi), lambda[1] += sinuMollweideY, lambda) : sinusoidalRaw(lambda, phi);\n }\n sinuMollweideRaw.invert = function(x, y) {\n return y > -sinuMollweidePhi ? mollweideRaw.invert(x, y - sinuMollweideY) : sinusoidalRaw.invert(x, y);\n };\n function sinuMollweide() {\n return d3Geo.geoProjection(sinuMollweideRaw).rotate([-20, -55]).scale(164.263).center([0, -5.4036]);\n }\n function homolosineRaw(lambda, phi) {\n return abs(phi) > sinuMollweidePhi ? (lambda = mollweideRaw(lambda, phi), lambda[1] -= phi > 0 ? sinuMollweideY : -sinuMollweideY, lambda) : sinusoidalRaw(lambda, phi);\n }\n homolosineRaw.invert = function(x, y) {\n return abs(y) > sinuMollweidePhi ? mollweideRaw.invert(x, y + (y > 0 ? sinuMollweideY : -sinuMollweideY)) : sinusoidalRaw.invert(x, y);\n };\n function homolosine() {\n return d3Geo.geoProjection(homolosineRaw).scale(152.63);\n }\n function hufnagelRaw(a, b, psiMax, ratio) {\n var k2 = sqrt(\n 4 * pi / (2 * psiMax + (1 + a - b / 2) * sin(2 * psiMax) + (a + b) / 2 * sin(4 * psiMax) + b / 2 * sin(6 * psiMax))\n ), c = sqrt(\n ratio * sin(psiMax) * sqrt((1 + a * cos(2 * psiMax) + b * cos(4 * psiMax)) / (1 + a + b))\n ), M = psiMax * mapping(1);\n function radius(psi) {\n return sqrt(1 + a * cos(2 * psi) + b * cos(4 * psi));\n }\n function mapping(t) {\n var psi = t * psiMax;\n return (2 * psi + (1 + a - b / 2) * sin(2 * psi) + (a + b) / 2 * sin(4 * psi) + b / 2 * sin(6 * psi)) / psiMax;\n }\n function inversemapping(psi) {\n return radius(psi) * sin(psi);\n }\n var forward = function(lambda, phi) {\n var psi = psiMax * solve(mapping, M * sin(phi) / psiMax, phi / pi);\n if (isNaN(psi)) psi = psiMax * sign(phi);\n var kr = k2 * radius(psi);\n return [kr * c * lambda / pi * cos(psi), kr / c * sin(psi)];\n };\n forward.invert = function(x, y) {\n var psi = solve(inversemapping, y * c / k2);\n return [\n x * pi / (cos(psi) * k2 * c * radius(psi)),\n asin(psiMax * mapping(psi / psiMax) / M)\n ];\n };\n if (psiMax === 0) {\n k2 = sqrt(ratio / pi);\n forward = function(lambda, phi) {\n return [lambda * k2, sin(phi) / k2];\n };\n forward.invert = function(x, y) {\n return [x / k2, asin(y * k2)];\n };\n }\n return forward;\n }\n function hufnagel() {\n var a = 1, b = 0, psiMax = 45 * radians2, ratio = 2, mutate = d3Geo.geoProjectionMutator(hufnagelRaw), projection = mutate(a, b, psiMax, ratio);\n projection.a = function(_) {\n return arguments.length ? mutate(a = +_, b, psiMax, ratio) : a;\n };\n projection.b = function(_) {\n return arguments.length ? mutate(a, b = +_, psiMax, ratio) : b;\n };\n projection.psiMax = function(_) {\n return arguments.length ? mutate(a, b, psiMax = +_ * radians2, ratio) : psiMax * degrees3;\n };\n projection.ratio = function(_) {\n return arguments.length ? mutate(a, b, psiMax, ratio = +_) : ratio;\n };\n return projection.scale(180.739);\n }\n function adsimp(f, a, b, fa, fm, fb, V0, tol, maxdepth, depth, state) {\n if (state.nanEncountered) {\n return NaN;\n }\n var h, f1, f2, sl, sr, s2, m, V1, V2, err;\n h = b - a;\n f1 = f(a + h * 0.25);\n f2 = f(b - h * 0.25);\n if (isNaN(f1)) {\n state.nanEncountered = true;\n return;\n }\n if (isNaN(f2)) {\n state.nanEncountered = true;\n return;\n }\n sl = h * (fa + 4 * f1 + fm) / 12;\n sr = h * (fm + 4 * f2 + fb) / 12;\n s2 = sl + sr;\n err = (s2 - V0) / 15;\n if (depth > maxdepth) {\n state.maxDepthCount++;\n return s2 + err;\n } else if (Math.abs(err) < tol) {\n return s2 + err;\n } else {\n m = a + h * 0.5;\n V1 = adsimp(f, a, m, fa, f1, fm, sl, tol * 0.5, maxdepth, depth + 1, state);\n if (isNaN(V1)) {\n state.nanEncountered = true;\n return NaN;\n }\n V2 = adsimp(f, m, b, fm, f2, fb, sr, tol * 0.5, maxdepth, depth + 1, state);\n if (isNaN(V2)) {\n state.nanEncountered = true;\n return NaN;\n }\n return V1 + V2;\n }\n }\n function integrate(f, a, b, tol, maxdepth) {\n var state = {\n maxDepthCount: 0,\n nanEncountered: false\n };\n if (tol === void 0) {\n tol = 1e-8;\n }\n if (maxdepth === void 0) {\n maxdepth = 20;\n }\n var fa = f(a);\n var fm = f(0.5 * (a + b));\n var fb = f(b);\n var V0 = (fa + 4 * fm + fb) * (b - a) / 6;\n var result = adsimp(f, a, b, fa, fm, fb, V0, tol, maxdepth, 1, state);\n return result;\n }\n function hyperellipticalRaw(alpha, k2, gamma2) {\n function elliptic(f) {\n return alpha + (1 - alpha) * pow(1 - pow(f, k2), 1 / k2);\n }\n function z(f) {\n return integrate(elliptic, 0, f, 1e-4);\n }\n var G = 1 / z(1), n = 1e3, m = (1 + 1e-8) * G, approx = [];\n for (var i = 0; i <= n; i++)\n approx.push(z(i / n) * m);\n function Y(sinphi) {\n var rmin = 0, rmax = n, r = n >> 1;\n do {\n if (approx[r] > sinphi) rmax = r;\n else rmin = r;\n r = rmin + rmax >> 1;\n } while (r > rmin);\n var u = approx[r + 1] - approx[r];\n if (u) u = (sinphi - approx[r + 1]) / u;\n return (r + 1 + u) / n;\n }\n var ratio = 2 * Y(1) / pi * G / gamma2;\n var forward = function(lambda, phi) {\n var y = Y(abs(sin(phi))), x = elliptic(y) * lambda;\n y /= ratio;\n return [x, phi >= 0 ? y : -y];\n };\n forward.invert = function(x, y) {\n var phi;\n y *= ratio;\n if (abs(y) < 1) phi = sign(y) * asin(z(abs(y)) * G);\n return [x / elliptic(abs(y)), phi];\n };\n return forward;\n }\n function hyperelliptical() {\n var alpha = 0, k2 = 2.5, gamma2 = 1.183136, m = d3Geo.geoProjectionMutator(hyperellipticalRaw), p = m(alpha, k2, gamma2);\n p.alpha = function(_) {\n return arguments.length ? m(alpha = +_, k2, gamma2) : alpha;\n };\n p.k = function(_) {\n return arguments.length ? m(alpha, k2 = +_, gamma2) : k2;\n };\n p.gamma = function(_) {\n return arguments.length ? m(alpha, k2, gamma2 = +_) : gamma2;\n };\n return p.scale(152.63);\n }\n function pointEqual(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n }\n function interpolateLine(coordinates, m) {\n var i = -1, n = coordinates.length, p0 = coordinates[0], p1, dx, dy, resampled = [];\n while (++i < n) {\n p1 = coordinates[i];\n dx = (p1[0] - p0[0]) / m;\n dy = (p1[1] - p0[1]) / m;\n for (var j = 0; j < m; ++j) resampled.push([p0[0] + j * dx, p0[1] + j * dy]);\n p0 = p1;\n }\n resampled.push(p1);\n return resampled;\n }\n function interpolateSphere(lobes2) {\n var coordinates = [], lobe, lambda0, phi02, phi1, lambda2, phi2, i, n = lobes2[0].length;\n for (i = 0; i < n; ++i) {\n lobe = lobes2[0][i];\n lambda0 = lobe[0][0], phi02 = lobe[0][1], phi1 = lobe[1][1];\n lambda2 = lobe[2][0], phi2 = lobe[2][1];\n coordinates.push(interpolateLine([\n [lambda0 + epsilon, phi02 + epsilon],\n [lambda0 + epsilon, phi1 - epsilon],\n [lambda2 - epsilon, phi1 - epsilon],\n [lambda2 - epsilon, phi2 + epsilon]\n ], 30));\n }\n for (i = lobes2[1].length - 1; i >= 0; --i) {\n lobe = lobes2[1][i];\n lambda0 = lobe[0][0], phi02 = lobe[0][1], phi1 = lobe[1][1];\n lambda2 = lobe[2][0], phi2 = lobe[2][1];\n coordinates.push(interpolateLine([\n [lambda2 - epsilon, phi2 - epsilon],\n [lambda2 - epsilon, phi1 + epsilon],\n [lambda0 + epsilon, phi1 + epsilon],\n [lambda0 + epsilon, phi02 - epsilon]\n ], 30));\n }\n return {\n type: \"Polygon\",\n coordinates: [d3Array.merge(coordinates)]\n };\n }\n function interrupt(project, lobes2, inverse2) {\n var sphere2, bounds;\n function forward(lambda, phi) {\n var sign$$1 = phi < 0 ? -1 : 1, lobe = lobes2[+(phi < 0)];\n for (var i = 0, n = lobe.length - 1; i < n && lambda > lobe[i][2][0]; ++i) ;\n var p2 = project(lambda - lobe[i][1][0], phi);\n p2[0] += project(lobe[i][1][0], sign$$1 * phi > sign$$1 * lobe[i][0][1] ? lobe[i][0][1] : phi)[0];\n return p2;\n }\n if (inverse2) {\n forward.invert = inverse2(forward);\n } else if (project.invert) {\n forward.invert = function(x, y) {\n var bound = bounds[+(y < 0)], lobe = lobes2[+(y < 0)];\n for (var i = 0, n = bound.length; i < n; ++i) {\n var b = bound[i];\n if (b[0][0] <= x && x < b[1][0] && b[0][1] <= y && y < b[1][1]) {\n var p2 = project.invert(x - project(lobe[i][1][0], 0)[0], y);\n p2[0] += lobe[i][1][0];\n return pointEqual(forward(p2[0], p2[1]), [x, y]) ? p2 : null;\n }\n }\n };\n }\n var p = d3Geo.geoProjection(forward), stream_ = p.stream;\n p.stream = function(stream) {\n var rotate = p.rotate(), rotateStream = stream_(stream), sphereStream = (p.rotate([0, 0]), stream_(stream));\n p.rotate(rotate);\n rotateStream.sphere = function() {\n d3Geo.geoStream(sphere2, sphereStream);\n };\n return rotateStream;\n };\n p.lobes = function(_) {\n if (!arguments.length) return lobes2.map(function(lobe) {\n return lobe.map(function(l) {\n return [\n [l[0][0] * degrees3, l[0][1] * degrees3],\n [l[1][0] * degrees3, l[1][1] * degrees3],\n [l[2][0] * degrees3, l[2][1] * degrees3]\n ];\n });\n });\n sphere2 = interpolateSphere(_);\n lobes2 = _.map(function(lobe) {\n return lobe.map(function(l) {\n return [\n [l[0][0] * radians2, l[0][1] * radians2],\n [l[1][0] * radians2, l[1][1] * radians2],\n [l[2][0] * radians2, l[2][1] * radians2]\n ];\n });\n });\n bounds = lobes2.map(function(lobe) {\n return lobe.map(function(l) {\n var x02 = project(l[0][0], l[0][1])[0], x12 = project(l[2][0], l[2][1])[0], y02 = project(l[1][0], l[0][1])[1], y12 = project(l[1][0], l[1][1])[1], t;\n if (y02 > y12) t = y02, y02 = y12, y12 = t;\n return [[x02, y02], [x12, y12]];\n });\n });\n return p;\n };\n if (lobes2 != null) p.lobes(lobes2);\n return p;\n }\n var lobes = [[\n // northern hemisphere\n [[-180, 0], [-100, 90], [-40, 0]],\n [[-40, 0], [30, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-160, -90], [-100, 0]],\n [[-100, 0], [-60, -90], [-20, 0]],\n [[-20, 0], [20, -90], [80, 0]],\n [[80, 0], [140, -90], [180, 0]]\n ]];\n function boggs$1() {\n return interrupt(boggsRaw, lobes).scale(160.857);\n }\n var lobes$1 = [[\n // northern hemisphere\n [[-180, 0], [-100, 90], [-40, 0]],\n [[-40, 0], [30, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-160, -90], [-100, 0]],\n [[-100, 0], [-60, -90], [-20, 0]],\n [[-20, 0], [20, -90], [80, 0]],\n [[80, 0], [140, -90], [180, 0]]\n ]];\n function homolosine$1() {\n return interrupt(homolosineRaw, lobes$1).scale(152.63);\n }\n var lobes$2 = [[\n // northern hemisphere\n [[-180, 0], [-100, 90], [-40, 0]],\n [[-40, 0], [30, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-160, -90], [-100, 0]],\n [[-100, 0], [-60, -90], [-20, 0]],\n [[-20, 0], [20, -90], [80, 0]],\n [[80, 0], [140, -90], [180, 0]]\n ]];\n function mollweide$1() {\n return interrupt(mollweideRaw, lobes$2).scale(169.529);\n }\n var lobes$3 = [[\n // northern hemisphere\n [[-180, 0], [-90, 90], [0, 0]],\n [[0, 0], [90, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-90, -90], [0, 0]],\n [[0, 0], [90, -90], [180, 0]]\n ]];\n function mollweideHemispheres() {\n return interrupt(mollweideRaw, lobes$3).scale(169.529).rotate([20, 0]);\n }\n var lobes$4 = [[\n // northern hemisphere\n [[-180, 35], [-30, 90], [0, 35]],\n [[0, 35], [30, 90], [180, 35]]\n ], [\n // southern hemisphere\n [[-180, -10], [-102, -90], [-65, -10]],\n [[-65, -10], [5, -90], [77, -10]],\n [[77, -10], [103, -90], [180, -10]]\n ]];\n function sinuMollweide$1() {\n return interrupt(sinuMollweideRaw, lobes$4, solve2d).rotate([-20, -55]).scale(164.263).center([0, -5.4036]);\n }\n var lobes$5 = [[\n // northern hemisphere\n [[-180, 0], [-110, 90], [-40, 0]],\n [[-40, 0], [0, 90], [40, 0]],\n [[40, 0], [110, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-110, -90], [-40, 0]],\n [[-40, 0], [0, -90], [40, 0]],\n [[40, 0], [110, -90], [180, 0]]\n ]];\n function sinusoidal$1() {\n return interrupt(sinusoidalRaw, lobes$5).scale(152.63).rotate([-20, 0]);\n }\n function kavrayskiy7Raw(lambda, phi) {\n return [3 / tau * lambda * sqrt(pi * pi / 3 - phi * phi), phi];\n }\n kavrayskiy7Raw.invert = function(x, y) {\n return [tau / 3 * x / sqrt(pi * pi / 3 - y * y), y];\n };\n function kavrayskiy7() {\n return d3Geo.geoProjection(kavrayskiy7Raw).scale(158.837);\n }\n function lagrangeRaw(n) {\n function forward(lambda, phi) {\n if (abs(abs(phi) - halfPi) < epsilon) return [0, phi < 0 ? -2 : 2];\n var sinPhi = sin(phi), v = pow((1 + sinPhi) / (1 - sinPhi), n / 2), c = 0.5 * (v + 1 / v) + cos(lambda *= n);\n return [\n 2 * sin(lambda) / c,\n (v - 1 / v) / c\n ];\n }\n forward.invert = function(x, y) {\n var y02 = abs(y);\n if (abs(y02 - 2) < epsilon) return x ? null : [0, sign(y) * halfPi];\n if (y02 > 2) return null;\n x /= 2, y /= 2;\n var x2 = x * x, y2 = y * y, t = 2 * y / (1 + x2 + y2);\n t = pow((1 + t) / (1 - t), 1 / n);\n return [\n atan2(2 * x, 1 - x2 - y2) / n,\n asin((t - 1) / (t + 1))\n ];\n };\n return forward;\n }\n function lagrange() {\n var n = 0.5, m = d3Geo.geoProjectionMutator(lagrangeRaw), p = m(n);\n p.spacing = function(_) {\n return arguments.length ? m(n = +_) : n;\n };\n return p.scale(124.75);\n }\n var pi_sqrt2 = pi / sqrt2;\n function larriveeRaw(lambda, phi) {\n return [\n lambda * (1 + sqrt(cos(phi))) / 2,\n phi / (cos(phi / 2) * cos(lambda / 6))\n ];\n }\n larriveeRaw.invert = function(x, y) {\n var x02 = abs(x), y02 = abs(y), lambda = epsilon, phi = halfPi;\n if (y02 < pi_sqrt2) phi *= y02 / pi_sqrt2;\n else lambda += 6 * acos(pi_sqrt2 / y02);\n for (var i = 0; i < 25; i++) {\n var sinPhi = sin(phi), sqrtcosPhi = sqrt(cos(phi)), sinPhi_2 = sin(phi / 2), cosPhi_2 = cos(phi / 2), sinLambda_6 = sin(lambda / 6), cosLambda_6 = cos(lambda / 6), f0 = 0.5 * lambda * (1 + sqrtcosPhi) - x02, f1 = phi / (cosPhi_2 * cosLambda_6) - y02, df0dPhi = sqrtcosPhi ? -0.25 * lambda * sinPhi / sqrtcosPhi : 0, df0dLambda = 0.5 * (1 + sqrtcosPhi), df1dPhi = (1 + 0.5 * phi * sinPhi_2 / cosPhi_2) / (cosPhi_2 * cosLambda_6), df1dLambda = phi / cosPhi_2 * (sinLambda_6 / 6) / (cosLambda_6 * cosLambda_6), denom = df0dPhi * df1dLambda - df1dPhi * df0dLambda, dPhi = (f0 * df1dLambda - f1 * df0dLambda) / denom, dLambda = (f1 * df0dPhi - f0 * df1dPhi) / denom;\n phi -= dPhi;\n lambda -= dLambda;\n if (abs(dPhi) < epsilon && abs(dLambda) < epsilon) break;\n }\n return [x < 0 ? -lambda : lambda, y < 0 ? -phi : phi];\n };\n function larrivee() {\n return d3Geo.geoProjection(larriveeRaw).scale(97.2672);\n }\n function laskowskiRaw(lambda, phi) {\n var lambda2 = lambda * lambda, phi2 = phi * phi;\n return [\n lambda * (0.975534 + phi2 * (-0.119161 + lambda2 * -0.0143059 + phi2 * -0.0547009)),\n phi * (1.00384 + lambda2 * (0.0802894 + phi2 * -0.02855 + lambda2 * 199025e-9) + phi2 * (0.0998909 + phi2 * -0.0491032))\n ];\n }\n laskowskiRaw.invert = function(x, y) {\n var lambda = sign(x) * pi, phi = y / 2, i = 50;\n do {\n var lambda2 = lambda * lambda, phi2 = phi * phi, lambdaPhi = lambda * phi, fx = lambda * (0.975534 + phi2 * (-0.119161 + lambda2 * -0.0143059 + phi2 * -0.0547009)) - x, fy = phi * (1.00384 + lambda2 * (0.0802894 + phi2 * -0.02855 + lambda2 * 199025e-9) + phi2 * (0.0998909 + phi2 * -0.0491032)) - y, deltaxDeltaLambda = 0.975534 - phi2 * (0.119161 + 3 * lambda2 * 0.0143059 + phi2 * 0.0547009), deltaxDeltaPhi = -lambdaPhi * (2 * 0.119161 + 4 * 0.0547009 * phi2 + 2 * 0.0143059 * lambda2), deltayDeltaLambda = lambdaPhi * (2 * 0.0802894 + 4 * 199025e-9 * lambda2 + 2 * -0.02855 * phi2), deltayDeltaPhi = 1.00384 + lambda2 * (0.0802894 + 199025e-9 * lambda2) + phi2 * (3 * (0.0998909 - 0.02855 * lambda2) - 5 * 0.0491032 * phi2), denominator = deltaxDeltaPhi * deltayDeltaLambda - deltayDeltaPhi * deltaxDeltaLambda, deltaLambda = (fy * deltaxDeltaPhi - fx * deltayDeltaPhi) / denominator, deltaPhi = (fx * deltayDeltaLambda - fy * deltaxDeltaLambda) / denominator;\n lambda -= deltaLambda, phi -= deltaPhi;\n } while ((abs(deltaLambda) > epsilon || abs(deltaPhi) > epsilon) && --i > 0);\n return i && [lambda, phi];\n };\n function laskowski() {\n return d3Geo.geoProjection(laskowskiRaw).scale(139.98);\n }\n function littrowRaw(lambda, phi) {\n return [\n sin(lambda) / cos(phi),\n tan(phi) * cos(lambda)\n ];\n }\n littrowRaw.invert = function(x, y) {\n var x2 = x * x, y2 = y * y, y2_1 = y2 + 1, x2_y2_1 = x2 + y2_1, cosPhi = x ? sqrt1_2 * sqrt((x2_y2_1 - sqrt(x2_y2_1 * x2_y2_1 - 4 * x2)) / x2) : 1 / sqrt(y2_1);\n return [\n asin(x * cosPhi),\n sign(y) * acos(cosPhi)\n ];\n };\n function littrow() {\n return d3Geo.geoProjection(littrowRaw).scale(144.049).clipAngle(90 - 1e-3);\n }\n function loximuthalRaw(phi02) {\n var cosPhi0 = cos(phi02), tanPhi0 = tan(quarterPi + phi02 / 2);\n function forward(lambda, phi) {\n var y = phi - phi02, x = abs(y) < epsilon ? lambda * cosPhi0 : abs(x = quarterPi + phi / 2) < epsilon || abs(abs(x) - halfPi) < epsilon ? 0 : lambda * y / log(tan(x) / tanPhi0);\n return [x, y];\n }\n forward.invert = function(x, y) {\n var lambda, phi = y + phi02;\n return [\n abs(y) < epsilon ? x / cosPhi0 : abs(lambda = quarterPi + phi / 2) < epsilon || abs(abs(lambda) - halfPi) < epsilon ? 0 : x * log(tan(lambda) / tanPhi0) / y,\n phi\n ];\n };\n return forward;\n }\n function loximuthal() {\n return parallel1(loximuthalRaw).parallel(40).scale(158.837);\n }\n function millerRaw(lambda, phi) {\n return [lambda, 1.25 * log(tan(quarterPi + 0.4 * phi))];\n }\n millerRaw.invert = function(x, y) {\n return [x, 2.5 * atan(exp(0.8 * y)) - 0.625 * pi];\n };\n function miller() {\n return d3Geo.geoProjection(millerRaw).scale(108.318);\n }\n function modifiedStereographicRaw(C2) {\n var m = C2.length - 1;\n function forward(lambda, phi) {\n var cosPhi = cos(phi), k2 = 2 / (1 + cosPhi * cos(lambda)), zr = k2 * cosPhi * sin(lambda), zi = k2 * sin(phi), i = m, w2 = C2[i], ar = w2[0], ai = w2[1], t;\n while (--i >= 0) {\n w2 = C2[i];\n ar = w2[0] + zr * (t = ar) - zi * ai;\n ai = w2[1] + zr * ai + zi * t;\n }\n ar = zr * (t = ar) - zi * ai;\n ai = zr * ai + zi * t;\n return [ar, ai];\n }\n forward.invert = function(x, y) {\n var i = 20, zr = x, zi = y;\n do {\n var j = m, w2 = C2[j], ar = w2[0], ai = w2[1], br = 0, bi = 0, t;\n while (--j >= 0) {\n w2 = C2[j];\n br = ar + zr * (t = br) - zi * bi;\n bi = ai + zr * bi + zi * t;\n ar = w2[0] + zr * (t = ar) - zi * ai;\n ai = w2[1] + zr * ai + zi * t;\n }\n br = ar + zr * (t = br) - zi * bi;\n bi = ai + zr * bi + zi * t;\n ar = zr * (t = ar) - zi * ai - x;\n ai = zr * ai + zi * t - y;\n var denominator = br * br + bi * bi, deltar, deltai;\n zr -= deltar = (ar * br + ai * bi) / denominator;\n zi -= deltai = (ai * br - ar * bi) / denominator;\n } while (abs(deltar) + abs(deltai) > epsilon * epsilon && --i > 0);\n if (i) {\n var rho = sqrt(zr * zr + zi * zi), c = 2 * atan(rho * 0.5), sinc = sin(c);\n return [atan2(zr * sinc, rho * cos(c)), rho ? asin(zi * sinc / rho) : 0];\n }\n };\n return forward;\n }\n var alaska = [[0.9972523, 0], [52513e-7, -41175e-7], [74606e-7, 48125e-7], [-0.0153783, -0.1968253], [0.0636871, -0.1408027], [0.3660976, -0.2937382]], gs48 = [[0.98879, 0], [0, 0], [-0.050909, 0], [0, 0], [0.075528, 0]], gs50 = [[0.984299, 0], [0.0211642, 37608e-7], [-0.1036018, -0.0575102], [-0.0329095, -0.0320119], [0.0499471, 0.1223335], [0.026046, 0.0899805], [7388e-7, -0.1435792], [75848e-7, -0.1334108], [-0.0216473, 0.0776645], [-0.0225161, 0.0853673]], miller$1 = [[0.9245, 0], [0, 0], [0.01943, 0]], lee = [[0.721316, 0], [0, 0], [-881625e-8, -617325e-8]];\n function modifiedStereographicAlaska() {\n return modifiedStereographic(alaska, [152, -64]).scale(1400).center([-160.908, 62.4864]).clipAngle(30).angle(7.8);\n }\n function modifiedStereographicGs48() {\n return modifiedStereographic(gs48, [95, -38]).scale(1e3).clipAngle(55).center([-96.5563, 38.8675]);\n }\n function modifiedStereographicGs50() {\n return modifiedStereographic(gs50, [120, -45]).scale(359.513).clipAngle(55).center([-117.474, 53.0628]);\n }\n function modifiedStereographicMiller() {\n return modifiedStereographic(miller$1, [-20, -18]).scale(209.091).center([20, 16.7214]).clipAngle(82);\n }\n function modifiedStereographicLee() {\n return modifiedStereographic(lee, [165, 10]).scale(250).clipAngle(130).center([-165, -10]);\n }\n function modifiedStereographic(coefficients, rotate) {\n var p = d3Geo.geoProjection(modifiedStereographicRaw(coefficients)).rotate(rotate).clipAngle(90), r = d3Geo.geoRotation(rotate), center = p.center;\n delete p.rotate;\n p.center = function(_) {\n return arguments.length ? center(r(_)) : r.invert(center());\n };\n return p;\n }\n var sqrt6 = sqrt(6), sqrt7 = sqrt(7);\n function mtFlatPolarParabolicRaw(lambda, phi) {\n var theta = asin(7 * sin(phi) / (3 * sqrt6));\n return [\n sqrt6 * lambda * (2 * cos(2 * theta / 3) - 1) / sqrt7,\n 9 * sin(theta / 3) / sqrt7\n ];\n }\n mtFlatPolarParabolicRaw.invert = function(x, y) {\n var theta = 3 * asin(y * sqrt7 / 9);\n return [\n x * sqrt7 / (sqrt6 * (2 * cos(2 * theta / 3) - 1)),\n asin(sin(theta) * 3 * sqrt6 / 7)\n ];\n };\n function mtFlatPolarParabolic() {\n return d3Geo.geoProjection(mtFlatPolarParabolicRaw).scale(164.859);\n }\n function mtFlatPolarQuarticRaw(lambda, phi) {\n var k2 = (1 + sqrt1_2) * sin(phi), theta = phi;\n for (var i = 0, delta; i < 25; i++) {\n theta -= delta = (sin(theta / 2) + sin(theta) - k2) / (0.5 * cos(theta / 2) + cos(theta));\n if (abs(delta) < epsilon) break;\n }\n return [\n lambda * (1 + 2 * cos(theta) / cos(theta / 2)) / (3 * sqrt2),\n 2 * sqrt(3) * sin(theta / 2) / sqrt(2 + sqrt2)\n ];\n }\n mtFlatPolarQuarticRaw.invert = function(x, y) {\n var sinTheta_2 = y * sqrt(2 + sqrt2) / (2 * sqrt(3)), theta = 2 * asin(sinTheta_2);\n return [\n 3 * sqrt2 * x / (1 + 2 * cos(theta) / cos(theta / 2)),\n asin((sinTheta_2 + sin(theta)) / (1 + sqrt1_2))\n ];\n };\n function mtFlatPolarQuartic() {\n return d3Geo.geoProjection(mtFlatPolarQuarticRaw).scale(188.209);\n }\n function mtFlatPolarSinusoidalRaw(lambda, phi) {\n var A3 = sqrt(6 / (4 + pi)), k2 = (1 + pi / 4) * sin(phi), theta = phi / 2;\n for (var i = 0, delta; i < 25; i++) {\n theta -= delta = (theta / 2 + sin(theta) - k2) / (0.5 + cos(theta));\n if (abs(delta) < epsilon) break;\n }\n return [\n A3 * (0.5 + cos(theta)) * lambda / 1.5,\n A3 * theta\n ];\n }\n mtFlatPolarSinusoidalRaw.invert = function(x, y) {\n var A3 = sqrt(6 / (4 + pi)), theta = y / A3;\n if (abs(abs(theta) - halfPi) < epsilon) theta = theta < 0 ? -halfPi : halfPi;\n return [\n 1.5 * x / (A3 * (0.5 + cos(theta))),\n asin((theta / 2 + sin(theta)) / (1 + pi / 4))\n ];\n };\n function mtFlatPolarSinusoidal() {\n return d3Geo.geoProjection(mtFlatPolarSinusoidalRaw).scale(166.518);\n }\n function naturalEarth2Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2, phi6 = phi2 * phi4;\n return [\n lambda * (0.84719 - 0.13063 * phi2 + phi6 * phi6 * (-0.04515 + 0.05494 * phi2 - 0.02326 * phi4 + 331e-5 * phi6)),\n phi * (1.01183 + phi4 * phi4 * (-0.02625 + 0.01926 * phi2 - 396e-5 * phi4))\n ];\n }\n naturalEarth2Raw.invert = function(x, y) {\n var phi = y, i = 25, delta, phi2, phi4, phi6;\n do {\n phi2 = phi * phi;\n phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.01183 + phi4 * phi4 * (-0.02625 + 0.01926 * phi2 - 396e-5 * phi4)) - y) / (1.01183 + phi4 * phi4 * (9 * -0.02625 + 11 * 0.01926 * phi2 + 13 * -396e-5 * phi4));\n } while (abs(delta) > epsilon22 && --i > 0);\n phi2 = phi * phi;\n phi4 = phi2 * phi2;\n phi6 = phi2 * phi4;\n return [\n x / (0.84719 - 0.13063 * phi2 + phi6 * phi6 * (-0.04515 + 0.05494 * phi2 - 0.02326 * phi4 + 331e-5 * phi6)),\n phi\n ];\n };\n function naturalEarth2() {\n return d3Geo.geoProjection(naturalEarth2Raw).scale(175.295);\n }\n function nellHammerRaw(lambda, phi) {\n return [\n lambda * (1 + cos(phi)) / 2,\n 2 * (phi - tan(phi / 2))\n ];\n }\n nellHammerRaw.invert = function(x, y) {\n var p = y / 2;\n for (var i = 0, delta = Infinity; i < 10 && abs(delta) > epsilon; ++i) {\n var c = cos(y / 2);\n y -= delta = (y - tan(y / 2) - p) / (1 - 0.5 / (c * c));\n }\n return [\n 2 * x / (1 + cos(y)),\n y\n ];\n };\n function nellHammer() {\n return d3Geo.geoProjection(nellHammerRaw).scale(152.63);\n }\n var lobes$6 = [[\n // northern hemisphere\n [[-180, 0], [-90, 90], [0, 0]],\n [[0, 0], [90, 90], [180, 0]]\n ], [\n // southern hemisphere\n [[-180, 0], [-90, -90], [0, 0]],\n [[0, 0], [90, -90], [180, 0]]\n ]];\n function quarticAuthalic() {\n return interrupt(hammerRaw(Infinity), lobes$6).rotate([20, 0]).scale(152.63);\n }\n function nicolosiRaw(lambda, phi) {\n var sinPhi = sin(phi), q = cos(phi), s = sign(lambda);\n if (lambda === 0 || abs(phi) === halfPi) return [0, phi];\n else if (phi === 0) return [lambda, 0];\n else if (abs(lambda) === halfPi) return [lambda * q, halfPi * sinPhi];\n var b = pi / (2 * lambda) - 2 * lambda / pi, c = 2 * phi / pi, d = (1 - c * c) / (sinPhi - c);\n var b2 = b * b, d2 = d * d, b2d2 = 1 + b2 / d2, d2b2 = 1 + d2 / b2;\n var M = (b * sinPhi / d - b / 2) / b2d2, N = (d2 * sinPhi / b2 + d / 2) / d2b2, m = M * M + q * q / b2d2, n = N * N - (d2 * sinPhi * sinPhi / b2 + d * sinPhi - 1) / d2b2;\n return [\n halfPi * (M + sqrt(m) * s),\n halfPi * (N + sqrt(n < 0 ? 0 : n) * sign(-phi * b) * s)\n ];\n }\n nicolosiRaw.invert = function(x, y) {\n x /= halfPi;\n y /= halfPi;\n var x2 = x * x, y2 = y * y, x2y2 = x2 + y2, pi2 = pi * pi;\n return [\n x ? (x2y2 - 1 + sqrt((1 - x2y2) * (1 - x2y2) + 4 * x2)) / (2 * x) * halfPi : 0,\n solve(function(phi) {\n return x2y2 * (pi * sin(phi) - 2 * phi) * pi + 4 * phi * phi * (y - sin(phi)) + 2 * pi * phi - pi2 * y;\n }, 0)\n ];\n };\n function nicolosi() {\n return d3Geo.geoProjection(nicolosiRaw).scale(127.267);\n }\n var pattersonK1 = 1.0148, pattersonK2 = 0.23185, pattersonK3 = -0.14499, pattersonK4 = 0.02406, pattersonC1 = pattersonK1, pattersonC2 = 5 * pattersonK2, pattersonC3 = 7 * pattersonK3, pattersonC4 = 9 * pattersonK4, pattersonYmax = 1.790857183;\n function pattersonRaw(lambda, phi) {\n var phi2 = phi * phi;\n return [\n lambda,\n phi * (pattersonK1 + phi2 * phi2 * (pattersonK2 + phi2 * (pattersonK3 + pattersonK4 * phi2)))\n ];\n }\n pattersonRaw.invert = function(x, y) {\n if (y > pattersonYmax) y = pattersonYmax;\n else if (y < -pattersonYmax) y = -pattersonYmax;\n var yc = y, delta;\n do {\n var y2 = yc * yc;\n yc -= delta = (yc * (pattersonK1 + y2 * y2 * (pattersonK2 + y2 * (pattersonK3 + pattersonK4 * y2))) - y) / (pattersonC1 + y2 * y2 * (pattersonC2 + y2 * (pattersonC3 + pattersonC4 * y2)));\n } while (abs(delta) > epsilon);\n return [x, yc];\n };\n function patterson() {\n return d3Geo.geoProjection(pattersonRaw).scale(139.319);\n }\n function polyconicRaw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var tanPhi = tan(phi), k2 = lambda * sin(phi);\n return [\n sin(k2) / tanPhi,\n phi + (1 - cos(k2)) / tanPhi\n ];\n }\n polyconicRaw.invert = function(x, y) {\n if (abs(y) < epsilon) return [x, 0];\n var k2 = x * x + y * y, phi = y * 0.5, i = 10, delta;\n do {\n var tanPhi = tan(phi), secPhi = 1 / cos(phi), j = k2 - 2 * y * phi + phi * phi;\n phi -= delta = (tanPhi * j + 2 * (phi - y)) / (2 + j * secPhi * secPhi + 2 * (phi - y) * tanPhi);\n } while (abs(delta) > epsilon && --i > 0);\n tanPhi = tan(phi);\n return [\n (abs(y) < abs(phi + 1 / tanPhi) ? asin(x * tanPhi) : sign(y) * sign(x) * (acos(abs(x * tanPhi)) + halfPi)) / sin(phi),\n phi\n ];\n };\n function polyconic() {\n return d3Geo.geoProjection(polyconicRaw).scale(103.74);\n }\n function matrix(a, b) {\n var u = subtract(a[1], a[0]), v = subtract(b[1], b[0]), phi = angle$1(u, v), s = length(u) / length(v);\n return multiply([\n 1,\n 0,\n a[0][0],\n 0,\n 1,\n a[0][1]\n ], multiply([\n s,\n 0,\n 0,\n 0,\n s,\n 0\n ], multiply([\n cos(phi),\n sin(phi),\n 0,\n -sin(phi),\n cos(phi),\n 0\n ], [\n 1,\n 0,\n -b[0][0],\n 0,\n 1,\n -b[0][1]\n ])));\n }\n function inverse(m) {\n var k2 = 1 / (m[0] * m[4] - m[1] * m[3]);\n return [\n k2 * m[4],\n -k2 * m[1],\n k2 * (m[1] * m[5] - m[2] * m[4]),\n -k2 * m[3],\n k2 * m[0],\n k2 * (m[2] * m[3] - m[0] * m[5])\n ];\n }\n function multiply(a, b) {\n return [\n a[0] * b[0] + a[1] * b[3],\n a[0] * b[1] + a[1] * b[4],\n a[0] * b[2] + a[1] * b[5] + a[2],\n a[3] * b[0] + a[4] * b[3],\n a[3] * b[1] + a[4] * b[4],\n a[3] * b[2] + a[4] * b[5] + a[5]\n ];\n }\n function subtract(a, b) {\n return [a[0] - b[0], a[1] - b[1]];\n }\n function length(v) {\n return sqrt(v[0] * v[0] + v[1] * v[1]);\n }\n function angle$1(a, b) {\n return atan2(a[0] * b[1] - a[1] * b[0], a[0] * b[0] + a[1] * b[1]);\n }\n function polyhedral(root, face, r) {\n recurse(root, { transform: null });\n function recurse(node, parent) {\n node.edges = faceEdges(node.face);\n if (parent.face) {\n var shared = node.shared = sharedEdge(node.face, parent.face), m = matrix(shared.map(parent.project), shared.map(node.project));\n node.transform = parent.transform ? multiply(parent.transform, m) : m;\n var edges = parent.edges;\n for (var i = 0, n = edges.length; i < n; ++i) {\n if (pointEqual$1(shared[0], edges[i][1]) && pointEqual$1(shared[1], edges[i][0])) edges[i] = node;\n if (pointEqual$1(shared[0], edges[i][0]) && pointEqual$1(shared[1], edges[i][1])) edges[i] = node;\n }\n edges = node.edges;\n for (i = 0, n = edges.length; i < n; ++i) {\n if (pointEqual$1(shared[0], edges[i][0]) && pointEqual$1(shared[1], edges[i][1])) edges[i] = parent;\n if (pointEqual$1(shared[0], edges[i][1]) && pointEqual$1(shared[1], edges[i][0])) edges[i] = parent;\n }\n } else {\n node.transform = parent.transform;\n }\n if (node.children) {\n node.children.forEach(function(child) {\n recurse(child, node);\n });\n }\n return node;\n }\n function forward(lambda, phi) {\n var node = face(lambda, phi), point = node.project([lambda * degrees3, phi * degrees3]), t;\n if (t = node.transform) {\n return [\n t[0] * point[0] + t[1] * point[1] + t[2],\n -(t[3] * point[0] + t[4] * point[1] + t[5])\n ];\n }\n point[1] = -point[1];\n return point;\n }\n if (hasInverse(root)) forward.invert = function(x, y) {\n var coordinates = faceInvert(root, [x, -y]);\n return coordinates && (coordinates[0] *= radians2, coordinates[1] *= radians2, coordinates);\n };\n function faceInvert(node, coordinates) {\n var invert = node.project.invert, t = node.transform, point = coordinates;\n if (t) {\n t = inverse(t);\n point = [\n t[0] * point[0] + t[1] * point[1] + t[2],\n t[3] * point[0] + t[4] * point[1] + t[5]\n ];\n }\n if (invert && node === faceDegrees(p = invert(point))) return p;\n var p, children = node.children;\n for (var i = 0, n = children && children.length; i < n; ++i) {\n if (p = faceInvert(children[i], coordinates)) return p;\n }\n }\n function faceDegrees(coordinates) {\n return face(coordinates[0] * radians2, coordinates[1] * radians2);\n }\n var proj = d3Geo.geoProjection(forward), stream_ = proj.stream;\n proj.stream = function(stream) {\n var rotate = proj.rotate(), rotateStream = stream_(stream), sphereStream = (proj.rotate([0, 0]), stream_(stream));\n proj.rotate(rotate);\n rotateStream.sphere = function() {\n sphereStream.polygonStart();\n sphereStream.lineStart();\n outline(sphereStream, root);\n sphereStream.lineEnd();\n sphereStream.polygonEnd();\n };\n return rotateStream;\n };\n return proj.angle(r == null ? -30 : r * degrees3);\n }\n function outline(stream, node, parent) {\n var point, edges = node.edges, n = edges.length, edge, multiPoint = { type: \"MultiPoint\", coordinates: node.face }, notPoles = node.face.filter(function(d) {\n return abs(d[1]) !== 90;\n }), b = d3Geo.geoBounds({ type: \"MultiPoint\", coordinates: notPoles }), inside = false, j = -1, dx = b[1][0] - b[0][0];\n var c = dx === 180 || dx === 360 ? [(b[0][0] + b[1][0]) / 2, (b[0][1] + b[1][1]) / 2] : d3Geo.geoCentroid(multiPoint);\n if (parent) while (++j < n) {\n if (edges[j] === parent) break;\n }\n ++j;\n for (var i = 0; i < n; ++i) {\n edge = edges[(i + j) % n];\n if (Array.isArray(edge)) {\n if (!inside) {\n stream.point((point = d3Geo.geoInterpolate(edge[0], c)(epsilon))[0], point[1]);\n inside = true;\n }\n stream.point((point = d3Geo.geoInterpolate(edge[1], c)(epsilon))[0], point[1]);\n } else {\n inside = false;\n if (edge !== parent) outline(stream, edge, node);\n }\n }\n }\n function pointEqual$1(a, b) {\n return a && b && a[0] === b[0] && a[1] === b[1];\n }\n function sharedEdge(a, b) {\n var x, y, n = a.length, found = null;\n for (var i = 0; i < n; ++i) {\n x = a[i];\n for (var j = b.length; --j >= 0; ) {\n y = b[j];\n if (x[0] === y[0] && x[1] === y[1]) {\n if (found) return [found, x];\n found = x;\n }\n }\n }\n }\n function faceEdges(face) {\n var n = face.length, edges = [];\n for (var a = face[n - 1], i = 0; i < n; ++i) edges.push([a, a = face[i]]);\n return edges;\n }\n function hasInverse(node) {\n return node.project.invert || node.children && node.children.some(hasInverse);\n }\n var octahedron = [\n [0, 90],\n [-90, 0],\n [0, 0],\n [90, 0],\n [180, 0],\n [0, -90]\n ];\n var octahedron$1 = [\n [0, 2, 1],\n [0, 3, 2],\n [5, 1, 2],\n [5, 2, 3],\n [0, 1, 4],\n [0, 4, 3],\n [5, 4, 1],\n [5, 3, 4]\n ].map(function(face) {\n return face.map(function(i) {\n return octahedron[i];\n });\n });\n function butterfly(faceProjection) {\n faceProjection = faceProjection || function(face) {\n var c = d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: face });\n return d3Geo.geoGnomonic().scale(1).translate([0, 0]).rotate([-c[0], -c[1]]);\n };\n var faces = octahedron$1.map(function(face) {\n return { face, project: faceProjection(face) };\n });\n [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {\n var node = faces[d];\n node && (node.children || (node.children = [])).push(faces[i]);\n });\n return polyhedral(faces[0], function(lambda, phi) {\n return faces[lambda < -pi / 2 ? phi < 0 ? 6 : 4 : lambda < 0 ? phi < 0 ? 2 : 0 : lambda < pi / 2 ? phi < 0 ? 3 : 1 : phi < 0 ? 7 : 5];\n }).angle(-30).scale(101.858).center([0, 45]);\n }\n var kx = 2 / sqrt(3);\n function collignonK(a, b) {\n var p = collignonRaw(a, b);\n return [p[0] * kx, p[1]];\n }\n collignonK.invert = function(x, y) {\n return collignonRaw.invert(x / kx, y);\n };\n function collignon$1(faceProjection) {\n faceProjection = faceProjection || function(face) {\n var c = d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: face });\n return d3Geo.geoProjection(collignonK).translate([0, 0]).scale(1).rotate(c[1] > 0 ? [-c[0], 0] : [180 - c[0], 180]);\n };\n var faces = octahedron$1.map(function(face) {\n return { face, project: faceProjection(face) };\n });\n [-1, 0, 0, 1, 0, 1, 4, 5].forEach(function(d, i) {\n var node = faces[d];\n node && (node.children || (node.children = [])).push(faces[i]);\n });\n return polyhedral(faces[0], function(lambda, phi) {\n return faces[lambda < -pi / 2 ? phi < 0 ? 6 : 4 : lambda < 0 ? phi < 0 ? 2 : 0 : lambda < pi / 2 ? phi < 0 ? 3 : 1 : phi < 0 ? 7 : 5];\n }).angle(-30).scale(121.906).center([0, 48.5904]);\n }\n function waterman(faceProjection) {\n faceProjection = faceProjection || function(face2) {\n var c = face2.length === 6 ? d3Geo.geoCentroid({ type: \"MultiPoint\", coordinates: face2 }) : face2[0];\n return d3Geo.geoGnomonic().scale(1).translate([0, 0]).rotate([-c[0], -c[1]]);\n };\n var w5 = octahedron$1.map(function(face2) {\n var xyz = face2.map(cartesian), n = xyz.length, a = xyz[n - 1], b, hexagon = [];\n for (var i = 0; i < n; ++i) {\n b = xyz[i];\n hexagon.push(spherical([\n a[0] * 0.9486832980505138 + b[0] * 0.31622776601683794,\n a[1] * 0.9486832980505138 + b[1] * 0.31622776601683794,\n a[2] * 0.9486832980505138 + b[2] * 0.31622776601683794\n ]), spherical([\n b[0] * 0.9486832980505138 + a[0] * 0.31622776601683794,\n b[1] * 0.9486832980505138 + a[1] * 0.31622776601683794,\n b[2] * 0.9486832980505138 + a[2] * 0.31622776601683794\n ]));\n a = b;\n }\n return hexagon;\n });\n var cornerNormals = [];\n var parents = [-1, 0, 0, 1, 0, 1, 4, 5];\n w5.forEach(function(hexagon, j) {\n var face2 = octahedron$1[j], n = face2.length, normals = cornerNormals[j] = [];\n for (var i = 0; i < n; ++i) {\n w5.push([\n face2[i],\n hexagon[(i * 2 + 2) % (2 * n)],\n hexagon[(i * 2 + 1) % (2 * n)]\n ]);\n parents.push(j);\n normals.push(cross(\n cartesian(hexagon[(i * 2 + 2) % (2 * n)]),\n cartesian(hexagon[(i * 2 + 1) % (2 * n)])\n ));\n }\n });\n var faces = w5.map(function(face2) {\n return {\n project: faceProjection(face2),\n face: face2\n };\n });\n parents.forEach(function(d, i) {\n var parent = faces[d];\n parent && (parent.children || (parent.children = [])).push(faces[i]);\n });\n function face(lambda, phi) {\n var cosphi = cos(phi), p = [cosphi * cos(lambda), cosphi * sin(lambda), sin(phi)];\n var hexagon = lambda < -pi / 2 ? phi < 0 ? 6 : 4 : lambda < 0 ? phi < 0 ? 2 : 0 : lambda < pi / 2 ? phi < 0 ? 3 : 1 : phi < 0 ? 7 : 5;\n var n = cornerNormals[hexagon];\n return faces[dot(n[0], p) < 0 ? 8 + 3 * hexagon : dot(n[1], p) < 0 ? 8 + 3 * hexagon + 1 : dot(n[2], p) < 0 ? 8 + 3 * hexagon + 2 : hexagon];\n }\n return polyhedral(faces[0], face).angle(-30).scale(110.625).center([0, 45]);\n }\n function dot(a, b) {\n for (var i = 0, n = a.length, s = 0; i < n; ++i) s += a[i] * b[i];\n return s;\n }\n function cross(a, b) {\n return [\n a[1] * b[2] - a[2] * b[1],\n a[2] * b[0] - a[0] * b[2],\n a[0] * b[1] - a[1] * b[0]\n ];\n }\n function spherical(cartesian2) {\n return [\n atan2(cartesian2[1], cartesian2[0]) * degrees3,\n asin(max(-1, min(1, cartesian2[2]))) * degrees3\n ];\n }\n function cartesian(coordinates) {\n var lambda = coordinates[0] * radians2, phi = coordinates[1] * radians2, cosphi = cos(phi);\n return [\n cosphi * cos(lambda),\n cosphi * sin(lambda),\n sin(phi)\n ];\n }\n function noop() {\n }\n function clockwise(ring) {\n if ((n = ring.length) < 4) return false;\n var i = 0, n, area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];\n while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];\n return area <= 0;\n }\n function contains(ring, point) {\n var x = point[0], y = point[1], contains2 = false;\n for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {\n var pi2 = ring[i], xi = pi2[0], yi = pi2[1], pj = ring[j], xj = pj[0], yj = pj[1];\n if (yi > y ^ yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains2 = !contains2;\n }\n return contains2;\n }\n function index(object, projection) {\n var stream = projection.stream, project;\n if (!stream) throw new Error(\"invalid projection\");\n switch (object && object.type) {\n case \"Feature\":\n project = projectFeature;\n break;\n case \"FeatureCollection\":\n project = projectFeatureCollection;\n break;\n default:\n project = projectGeometry;\n break;\n }\n return project(object, stream);\n }\n function projectFeatureCollection(o, stream) {\n return {\n type: \"FeatureCollection\",\n features: o.features.map(function(f) {\n return projectFeature(f, stream);\n })\n };\n }\n function projectFeature(o, stream) {\n return {\n type: \"Feature\",\n id: o.id,\n properties: o.properties,\n geometry: projectGeometry(o.geometry, stream)\n };\n }\n function projectGeometryCollection(o, stream) {\n return {\n type: \"GeometryCollection\",\n geometries: o.geometries.map(function(o2) {\n return projectGeometry(o2, stream);\n })\n };\n }\n function projectGeometry(o, stream) {\n if (!o) return null;\n if (o.type === \"GeometryCollection\") return projectGeometryCollection(o, stream);\n var sink;\n switch (o.type) {\n case \"Point\":\n sink = sinkPoint;\n break;\n case \"MultiPoint\":\n sink = sinkPoint;\n break;\n case \"LineString\":\n sink = sinkLine;\n break;\n case \"MultiLineString\":\n sink = sinkLine;\n break;\n case \"Polygon\":\n sink = sinkPolygon;\n break;\n case \"MultiPolygon\":\n sink = sinkPolygon;\n break;\n case \"Sphere\":\n sink = sinkPolygon;\n break;\n default:\n return null;\n }\n d3Geo.geoStream(o, stream(sink));\n return sink.result();\n }\n var points = [], lines = [];\n var sinkPoint = {\n point: function(x, y) {\n points.push([x, y]);\n },\n result: function() {\n var result = !points.length ? null : points.length < 2 ? { type: \"Point\", coordinates: points[0] } : { type: \"MultiPoint\", coordinates: points };\n points = [];\n return result;\n }\n };\n var sinkLine = {\n lineStart: noop,\n point: function(x, y) {\n points.push([x, y]);\n },\n lineEnd: function() {\n if (points.length) lines.push(points), points = [];\n },\n result: function() {\n var result = !lines.length ? null : lines.length < 2 ? { type: \"LineString\", coordinates: lines[0] } : { type: \"MultiLineString\", coordinates: lines };\n lines = [];\n return result;\n }\n };\n var sinkPolygon = {\n polygonStart: noop,\n lineStart: noop,\n point: function(x, y) {\n points.push([x, y]);\n },\n lineEnd: function() {\n var n = points.length;\n if (n) {\n do\n points.push(points[0].slice());\n while (++n < 4);\n lines.push(points), points = [];\n }\n },\n polygonEnd: noop,\n result: function() {\n if (!lines.length) return null;\n var polygons = [], holes = [];\n lines.forEach(function(ring) {\n if (clockwise(ring)) polygons.push([ring]);\n else holes.push(ring);\n });\n holes.forEach(function(hole) {\n var point = hole[0];\n polygons.some(function(polygon) {\n if (contains(polygon[0], point)) {\n polygon.push(hole);\n return true;\n }\n }) || polygons.push([hole]);\n });\n lines = [];\n return !polygons.length ? null : polygons.length > 1 ? { type: \"MultiPolygon\", coordinates: polygons } : { type: \"Polygon\", coordinates: polygons[0] };\n }\n };\n function quincuncial(project) {\n var dx = project(halfPi, 0)[0] - project(-halfPi, 0)[0];\n function projectQuincuncial(lambda, phi) {\n var t = abs(lambda) < halfPi, p = project(t ? lambda : lambda > 0 ? lambda - pi : lambda + pi, phi), x = (p[0] - p[1]) * sqrt1_2, y = (p[0] + p[1]) * sqrt1_2;\n if (t) return [x, y];\n var d = dx * sqrt1_2, s = x > 0 ^ y > 0 ? -1 : 1;\n return [s * x - sign(y) * d, s * y - sign(x) * d];\n }\n if (project.invert) projectQuincuncial.invert = function(x02, y02) {\n var x = (x02 + y02) * sqrt1_2, y = (y02 - x02) * sqrt1_2, t = abs(x) < 0.5 * dx && abs(y) < 0.5 * dx;\n if (!t) {\n var d = dx * sqrt1_2, s = x > 0 ^ y > 0 ? -1 : 1, x12 = -s * x02 + (y > 0 ? 1 : -1) * d, y12 = -s * y02 + (x > 0 ? 1 : -1) * d;\n x = (-x12 - y12) * sqrt1_2;\n y = (x12 - y12) * sqrt1_2;\n }\n var p = project.invert(x, y);\n if (!t) p[0] += x > 0 ? pi : -pi;\n return p;\n };\n return d3Geo.geoProjection(projectQuincuncial).rotate([-90, -90, 45]).clipAngle(180 - 1e-3);\n }\n function gringorten$1() {\n return quincuncial(gringortenRaw).scale(176.423);\n }\n function peirce() {\n return quincuncial(guyouRaw).scale(111.48);\n }\n function quantize(input, digits) {\n if (!(0 <= (digits = +digits) && digits <= 20)) throw new Error(\"invalid digits\");\n function quantizePoint(input2) {\n var n = input2.length, i = 2, output2 = new Array(n);\n output2[0] = +input2[0].toFixed(digits);\n output2[1] = +input2[1].toFixed(digits);\n while (i < n) output2[i] = input2[i], ++i;\n return output2;\n }\n function quantizePoints(input2) {\n return input2.map(quantizePoint);\n }\n function quantizePointsNoDuplicates(input2) {\n var point0 = quantizePoint(input2[0]);\n var output2 = [point0];\n for (var i = 1; i < input2.length; i++) {\n var point = quantizePoint(input2[i]);\n if (point.length > 2 || point[0] != point0[0] || point[1] != point0[1]) {\n output2.push(point);\n point0 = point;\n }\n }\n if (output2.length === 1 && input2.length > 1) {\n output2.push(quantizePoint(input2[input2.length - 1]));\n }\n return output2;\n }\n function quantizePolygon(input2) {\n return input2.map(quantizePointsNoDuplicates);\n }\n function quantizeGeometry(input2) {\n if (input2 == null) return input2;\n var output2;\n switch (input2.type) {\n case \"GeometryCollection\":\n output2 = { type: \"GeometryCollection\", geometries: input2.geometries.map(quantizeGeometry) };\n break;\n case \"Point\":\n output2 = { type: \"Point\", coordinates: quantizePoint(input2.coordinates) };\n break;\n case \"MultiPoint\":\n output2 = { type: input2.type, coordinates: quantizePoints(input2.coordinates) };\n break;\n case \"LineString\":\n output2 = { type: input2.type, coordinates: quantizePointsNoDuplicates(input2.coordinates) };\n break;\n case \"MultiLineString\":\n case \"Polygon\":\n output2 = { type: input2.type, coordinates: quantizePolygon(input2.coordinates) };\n break;\n case \"MultiPolygon\":\n output2 = { type: \"MultiPolygon\", coordinates: input2.coordinates.map(quantizePolygon) };\n break;\n default:\n return input2;\n }\n if (input2.bbox != null) output2.bbox = input2.bbox;\n return output2;\n }\n function quantizeFeature(input2) {\n var output2 = { type: \"Feature\", properties: input2.properties, geometry: quantizeGeometry(input2.geometry) };\n if (input2.id != null) output2.id = input2.id;\n if (input2.bbox != null) output2.bbox = input2.bbox;\n return output2;\n }\n if (input != null) switch (input.type) {\n case \"Feature\":\n return quantizeFeature(input);\n case \"FeatureCollection\": {\n var output = { type: \"FeatureCollection\", features: input.features.map(quantizeFeature) };\n if (input.bbox != null) output.bbox = input.bbox;\n return output;\n }\n default:\n return quantizeGeometry(input);\n }\n return input;\n }\n function rectangularPolyconicRaw(phi02) {\n var sinPhi0 = sin(phi02);\n function forward(lambda, phi) {\n var A3 = sinPhi0 ? tan(lambda * sinPhi0 / 2) / sinPhi0 : lambda / 2;\n if (!phi) return [2 * A3, -phi02];\n var E2 = 2 * atan(A3 * sin(phi)), cotPhi = 1 / tan(phi);\n return [\n sin(E2) * cotPhi,\n phi + (1 - cos(E2)) * cotPhi - phi02\n ];\n }\n forward.invert = function(x, y) {\n if (abs(y += phi02) < epsilon) return [sinPhi0 ? 2 * atan(sinPhi0 * x / 2) / sinPhi0 : x, 0];\n var k2 = x * x + y * y, phi = 0, i = 10, delta;\n do {\n var tanPhi = tan(phi), secPhi = 1 / cos(phi), j = k2 - 2 * y * phi + phi * phi;\n phi -= delta = (tanPhi * j + 2 * (phi - y)) / (2 + j * secPhi * secPhi + 2 * (phi - y) * tanPhi);\n } while (abs(delta) > epsilon && --i > 0);\n var E2 = x * (tanPhi = tan(phi)), A3 = tan(abs(y) < abs(phi + 1 / tanPhi) ? asin(E2) * 0.5 : acos(E2) * 0.5 + pi / 4) / sin(phi);\n return [\n sinPhi0 ? 2 * atan(sinPhi0 * A3) / sinPhi0 : 2 * A3,\n phi\n ];\n };\n return forward;\n }\n function rectangularPolyconic() {\n return parallel1(rectangularPolyconicRaw).scale(131.215);\n }\n var K$1 = [\n [0.9986, -0.062],\n [1, 0],\n [0.9986, 0.062],\n [0.9954, 0.124],\n [0.99, 0.186],\n [0.9822, 0.248],\n [0.973, 0.31],\n [0.96, 0.372],\n [0.9427, 0.434],\n [0.9216, 0.4958],\n [0.8962, 0.5571],\n [0.8679, 0.6176],\n [0.835, 0.6769],\n [0.7986, 0.7346],\n [0.7597, 0.7903],\n [0.7186, 0.8435],\n [0.6732, 0.8936],\n [0.6213, 0.9394],\n [0.5722, 0.9761],\n [0.5322, 1]\n ];\n K$1.forEach(function(d) {\n d[1] *= 1.0144;\n });\n function robinsonRaw(lambda, phi) {\n var i = min(18, abs(phi) * 36 / pi), i0 = floor(i), di = i - i0, ax = (k2 = K$1[i0])[0], ay = k2[1], bx = (k2 = K$1[++i0])[0], by = k2[1], cx = (k2 = K$1[min(19, ++i0)])[0], cy = k2[1], k2;\n return [\n lambda * (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2),\n (phi > 0 ? halfPi : -halfPi) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2)\n ];\n }\n robinsonRaw.invert = function(x, y) {\n var yy = y / halfPi, phi = yy * 90, i = min(18, abs(phi / 5)), i0 = max(0, floor(i));\n do {\n var ay = K$1[i0][1], by = K$1[i0 + 1][1], cy = K$1[min(19, i0 + 2)][1], u = cy - ay, v = cy - 2 * by + ay, t = 2 * (abs(yy) - by) / u, c = v / u, di = t * (1 - c * t * (1 - 2 * c * t));\n if (di >= 0 || i0 === 1) {\n phi = (y >= 0 ? 5 : -5) * (di + i);\n var j = 50, delta;\n do {\n i = min(18, abs(phi) / 5);\n i0 = floor(i);\n di = i - i0;\n ay = K$1[i0][1];\n by = K$1[i0 + 1][1];\n cy = K$1[min(19, i0 + 2)][1];\n phi -= (delta = (y >= 0 ? halfPi : -halfPi) * (by + di * (cy - ay) / 2 + di * di * (cy - 2 * by + ay) / 2) - y) * degrees3;\n } while (abs(delta) > epsilon22 && --j > 0);\n break;\n }\n } while (--i0 >= 0);\n var ax = K$1[i0][0], bx = K$1[i0 + 1][0], cx = K$1[min(19, i0 + 2)][0];\n return [\n x / (bx + di * (cx - ax) / 2 + di * di * (cx - 2 * bx + ax) / 2),\n phi * radians2\n ];\n };\n function robinson() {\n return d3Geo.geoProjection(robinsonRaw).scale(152.63);\n }\n function satelliteVerticalRaw(P) {\n function forward(lambda, phi) {\n var cosPhi = cos(phi), k2 = (P - 1) / (P - cosPhi * cos(lambda));\n return [\n k2 * cosPhi * sin(lambda),\n k2 * sin(phi)\n ];\n }\n forward.invert = function(x, y) {\n var rho2 = x * x + y * y, rho = sqrt(rho2), sinc = (P - sqrt(1 - rho2 * (P + 1) / (P - 1))) / ((P - 1) / rho + rho / (P - 1));\n return [\n atan2(x * sinc, rho * sqrt(1 - sinc * sinc)),\n rho ? asin(y * sinc / rho) : 0\n ];\n };\n return forward;\n }\n function satelliteRaw(P, omega) {\n var vertical = satelliteVerticalRaw(P);\n if (!omega) return vertical;\n var cosOmega = cos(omega), sinOmega = sin(omega);\n function forward(lambda, phi) {\n var coordinates = vertical(lambda, phi), y = coordinates[1], A3 = y * sinOmega / (P - 1) + cosOmega;\n return [\n coordinates[0] * cosOmega / A3,\n y / A3\n ];\n }\n forward.invert = function(x, y) {\n var k2 = (P - 1) / (P - 1 - y * sinOmega);\n return vertical.invert(k2 * x, k2 * y * cosOmega);\n };\n return forward;\n }\n function satellite() {\n var distance2 = 2, omega = 0, m = d3Geo.geoProjectionMutator(satelliteRaw), p = m(distance2, omega);\n p.distance = function(_) {\n if (!arguments.length) return distance2;\n return m(distance2 = +_, omega);\n };\n p.tilt = function(_) {\n if (!arguments.length) return omega * degrees3;\n return m(distance2, omega = _ * radians2);\n };\n return p.scale(432.147).clipAngle(acos(1 / distance2) * degrees3 - 1e-6);\n }\n var epsilon$1 = 1e-4, epsilonInverse = 1e4, x0 = -180, x0e = x0 + epsilon$1, x1 = 180, x1e = x1 - epsilon$1, y0 = -90, y0e = y0 + epsilon$1, y1 = 90, y1e = y1 - epsilon$1;\n function nonempty(coordinates) {\n return coordinates.length > 0;\n }\n function quantize$1(x) {\n return Math.floor(x * epsilonInverse) / epsilonInverse;\n }\n function normalizePoint(y) {\n return y === y0 || y === y1 ? [0, y] : [x0, quantize$1(y)];\n }\n function clampPoint(p) {\n var x = p[0], y = p[1], clamped = false;\n if (x <= x0e) x = x0, clamped = true;\n else if (x >= x1e) x = x1, clamped = true;\n if (y <= y0e) y = y0, clamped = true;\n else if (y >= y1e) y = y1, clamped = true;\n return clamped ? [x, y] : p;\n }\n function clampPoints(points2) {\n return points2.map(clampPoint);\n }\n function extractFragments(rings, polygon, fragments) {\n for (var j = 0, m = rings.length; j < m; ++j) {\n var ring = rings[j].slice();\n fragments.push({ index: -1, polygon, ring });\n for (var i = 0, n = ring.length; i < n; ++i) {\n var point = ring[i], x = point[0], y = point[1];\n if (x <= x0e || x >= x1e || y <= y0e || y >= y1e) {\n ring[i] = clampPoint(point);\n for (var k2 = i + 1; k2 < n; ++k2) {\n var pointk = ring[k2], xk = pointk[0], yk = pointk[1];\n if (xk > x0e && xk < x1e && yk > y0e && yk < y1e) break;\n }\n if (k2 === i + 1) continue;\n if (i) {\n var fragmentBefore = { index: -1, polygon, ring: ring.slice(0, i + 1) };\n fragmentBefore.ring[fragmentBefore.ring.length - 1] = normalizePoint(y);\n fragments[fragments.length - 1] = fragmentBefore;\n } else fragments.pop();\n if (k2 >= n) break;\n fragments.push({ index: -1, polygon, ring: ring = ring.slice(k2 - 1) });\n ring[0] = normalizePoint(ring[0][1]);\n i = -1;\n n = ring.length;\n }\n }\n }\n }\n function stitchFragments(fragments) {\n var i, n = fragments.length;\n var fragmentByStart = {}, fragmentByEnd = {}, fragment, start, startFragment, end, endFragment;\n for (i = 0; i < n; ++i) {\n fragment = fragments[i];\n start = fragment.ring[0];\n end = fragment.ring[fragment.ring.length - 1];\n if (start[0] === end[0] && start[1] === end[1]) {\n fragment.polygon.push(fragment.ring);\n fragments[i] = null;\n continue;\n }\n fragment.index = i;\n fragmentByStart[start] = fragmentByEnd[end] = fragment;\n }\n for (i = 0; i < n; ++i) {\n fragment = fragments[i];\n if (fragment) {\n start = fragment.ring[0];\n end = fragment.ring[fragment.ring.length - 1];\n startFragment = fragmentByEnd[start];\n endFragment = fragmentByStart[end];\n delete fragmentByStart[start];\n delete fragmentByEnd[end];\n if (start[0] === end[0] && start[1] === end[1]) {\n fragment.polygon.push(fragment.ring);\n continue;\n }\n if (startFragment) {\n delete fragmentByEnd[start];\n delete fragmentByStart[startFragment.ring[0]];\n startFragment.ring.pop();\n fragments[startFragment.index] = null;\n fragment = { index: -1, polygon: startFragment.polygon, ring: startFragment.ring.concat(fragment.ring) };\n if (startFragment === endFragment) {\n fragment.polygon.push(fragment.ring);\n } else {\n fragment.index = n++;\n fragments.push(fragmentByStart[fragment.ring[0]] = fragmentByEnd[fragment.ring[fragment.ring.length - 1]] = fragment);\n }\n } else if (endFragment) {\n delete fragmentByStart[end];\n delete fragmentByEnd[endFragment.ring[endFragment.ring.length - 1]];\n fragment.ring.pop();\n fragment = { index: n++, polygon: endFragment.polygon, ring: fragment.ring.concat(endFragment.ring) };\n fragments[endFragment.index] = null;\n fragments.push(fragmentByStart[fragment.ring[0]] = fragmentByEnd[fragment.ring[fragment.ring.length - 1]] = fragment);\n } else {\n fragment.ring.push(fragment.ring[0]);\n fragment.polygon.push(fragment.ring);\n }\n }\n }\n }\n function stitchFeature(input) {\n var output = { type: \"Feature\", geometry: stitchGeometry(input.geometry) };\n if (input.id != null) output.id = input.id;\n if (input.bbox != null) output.bbox = input.bbox;\n if (input.properties != null) output.properties = input.properties;\n return output;\n }\n function stitchGeometry(input) {\n if (input == null) return input;\n var output, fragments, i, n;\n switch (input.type) {\n case \"GeometryCollection\":\n output = { type: \"GeometryCollection\", geometries: input.geometries.map(stitchGeometry) };\n break;\n case \"Point\":\n output = { type: \"Point\", coordinates: clampPoint(input.coordinates) };\n break;\n case \"MultiPoint\":\n case \"LineString\":\n output = { type: input.type, coordinates: clampPoints(input.coordinates) };\n break;\n case \"MultiLineString\":\n output = { type: \"MultiLineString\", coordinates: input.coordinates.map(clampPoints) };\n break;\n case \"Polygon\": {\n var polygon = [];\n extractFragments(input.coordinates, polygon, fragments = []);\n stitchFragments(fragments);\n output = { type: \"Polygon\", coordinates: polygon };\n break;\n }\n case \"MultiPolygon\": {\n fragments = [], i = -1, n = input.coordinates.length;\n var polygons = new Array(n);\n while (++i < n) extractFragments(input.coordinates[i], polygons[i] = [], fragments);\n stitchFragments(fragments);\n output = { type: \"MultiPolygon\", coordinates: polygons.filter(nonempty) };\n break;\n }\n default:\n return input;\n }\n if (input.bbox != null) output.bbox = input.bbox;\n return output;\n }\n function stitch(input) {\n if (input == null) return input;\n switch (input.type) {\n case \"Feature\":\n return stitchFeature(input);\n case \"FeatureCollection\": {\n var output = { type: \"FeatureCollection\", features: input.features.map(stitchFeature) };\n if (input.bbox != null) output.bbox = input.bbox;\n return output;\n }\n default:\n return stitchGeometry(input);\n }\n }\n function timesRaw(lambda, phi) {\n var t = tan(phi / 2), s = sin(quarterPi * t);\n return [\n lambda * (0.74482 - 0.34588 * s * s),\n 1.70711 * t\n ];\n }\n timesRaw.invert = function(x, y) {\n var t = y / 1.70711, s = sin(quarterPi * t);\n return [\n x / (0.74482 - 0.34588 * s * s),\n 2 * atan(t)\n ];\n };\n function times() {\n return d3Geo.geoProjection(timesRaw).scale(146.153);\n }\n function twoPoint(raw, p0, p1) {\n var i = d3Geo.geoInterpolate(p0, p1), o = i(0.5), a = d3Geo.geoRotation([-o[0], -o[1]])(p0), b = i.distance / 2, y = -asin(sin(a[1] * radians2) / sin(b)), R = [-o[0], -o[1], -(a[0] > 0 ? pi - y : y) * degrees3], p = d3Geo.geoProjection(raw(b)).rotate(R), r = d3Geo.geoRotation(R), center = p.center;\n delete p.rotate;\n p.center = function(_) {\n return arguments.length ? center(r(_)) : r.invert(center());\n };\n return p.clipAngle(90);\n }\n function twoPointAzimuthalRaw(d) {\n var cosd = cos(d);\n function forward(lambda, phi) {\n var coordinates = d3Geo.geoGnomonicRaw(lambda, phi);\n coordinates[0] *= cosd;\n return coordinates;\n }\n forward.invert = function(x, y) {\n return d3Geo.geoGnomonicRaw.invert(x / cosd, y);\n };\n return forward;\n }\n function twoPointAzimuthalUsa() {\n return twoPointAzimuthal([-158, 21.5], [-77, 39]).clipAngle(60).scale(400);\n }\n function twoPointAzimuthal(p0, p1) {\n return twoPoint(twoPointAzimuthalRaw, p0, p1);\n }\n function twoPointEquidistantRaw(z0) {\n if (!(z0 *= 2)) return d3Geo.geoAzimuthalEquidistantRaw;\n var lambdaa = -z0 / 2, lambdab = -lambdaa, z02 = z0 * z0, tanLambda0 = tan(lambdab), S = 0.5 / sin(lambdab);\n function forward(lambda, phi) {\n var za = acos(cos(phi) * cos(lambda - lambdaa)), zb = acos(cos(phi) * cos(lambda - lambdab)), ys = phi < 0 ? -1 : 1;\n za *= za, zb *= zb;\n return [\n (za - zb) / (2 * z0),\n ys * sqrt(4 * z02 * zb - (z02 - za + zb) * (z02 - za + zb)) / (2 * z0)\n ];\n }\n forward.invert = function(x, y) {\n var y2 = y * y, cosza = cos(sqrt(y2 + (t = x + lambdaa) * t)), coszb = cos(sqrt(y2 + (t = x + lambdab) * t)), t, d;\n return [\n atan2(d = cosza - coszb, t = (cosza + coszb) * tanLambda0),\n (y < 0 ? -1 : 1) * acos(sqrt(t * t + d * d) * S)\n ];\n };\n return forward;\n }\n function twoPointEquidistantUsa() {\n return twoPointEquidistant([-158, 21.5], [-77, 39]).clipAngle(130).scale(122.571);\n }\n function twoPointEquidistant(p0, p1) {\n return twoPoint(twoPointEquidistantRaw, p0, p1);\n }\n function vanDerGrintenRaw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var sinTheta = abs(phi / halfPi), theta = asin(sinTheta);\n if (abs(lambda) < epsilon || abs(abs(phi) - halfPi) < epsilon) return [0, sign(phi) * pi * tan(theta / 2)];\n var cosTheta = cos(theta), A3 = abs(pi / lambda - lambda / pi) / 2, A22 = A3 * A3, G = cosTheta / (sinTheta + cosTheta - 1), P = G * (2 / sinTheta - 1), P2 = P * P, P2_A2 = P2 + A22, G_P2 = G - P2, Q = A22 + G;\n return [\n sign(lambda) * pi * (A3 * G_P2 + sqrt(A22 * G_P2 * G_P2 - P2_A2 * (G * G - P2))) / P2_A2,\n sign(phi) * pi * (P * Q - A3 * sqrt((A22 + 1) * P2_A2 - Q * Q)) / P2_A2\n ];\n }\n vanDerGrintenRaw.invert = function(x, y) {\n if (abs(y) < epsilon) return [x, 0];\n if (abs(x) < epsilon) return [0, halfPi * sin(2 * atan(y / pi))];\n var x2 = (x /= pi) * x, y2 = (y /= pi) * y, x2_y2 = x2 + y2, z = x2_y2 * x2_y2, c1 = -abs(y) * (1 + x2_y2), c2 = c1 - 2 * y2 + x2, c3 = -2 * c1 + 1 + 2 * y2 + z, d = y2 / c3 + (2 * c2 * c2 * c2 / (c3 * c3 * c3) - 9 * c1 * c2 / (c3 * c3)) / 27, a1 = (c1 - c2 * c2 / (3 * c3)) / c3, m1 = 2 * sqrt(-a1 / 3), theta1 = acos(3 * d / (a1 * m1)) / 3;\n return [\n pi * (x2_y2 - 1 + sqrt(1 + 2 * (x2 - y2) + z)) / (2 * x),\n sign(y) * pi * (-m1 * cos(theta1 + pi / 3) - c2 / (3 * c3))\n ];\n };\n function vanDerGrinten() {\n return d3Geo.geoProjection(vanDerGrintenRaw).scale(79.4183);\n }\n function vanDerGrinten2Raw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var sinTheta = abs(phi / halfPi), theta = asin(sinTheta);\n if (abs(lambda) < epsilon || abs(abs(phi) - halfPi) < epsilon) return [0, sign(phi) * pi * tan(theta / 2)];\n var cosTheta = cos(theta), A3 = abs(pi / lambda - lambda / pi) / 2, A22 = A3 * A3, x12 = cosTheta * (sqrt(1 + A22) - A3 * cosTheta) / (1 + A22 * sinTheta * sinTheta);\n return [\n sign(lambda) * pi * x12,\n sign(phi) * pi * sqrt(1 - x12 * (2 * A3 + x12))\n ];\n }\n vanDerGrinten2Raw.invert = function(x, y) {\n if (!x) return [0, halfPi * sin(2 * atan(y / pi))];\n var x12 = abs(x / pi), A3 = (1 - x12 * x12 - (y /= pi) * y) / (2 * x12), A22 = A3 * A3, B3 = sqrt(A22 + 1);\n return [\n sign(x) * pi * (B3 - A3),\n sign(y) * halfPi * sin(2 * atan2(sqrt((1 - 2 * A3 * x12) * (A3 + B3) - x12), sqrt(B3 + A3 + x12)))\n ];\n };\n function vanDerGrinten2() {\n return d3Geo.geoProjection(vanDerGrinten2Raw).scale(79.4183);\n }\n function vanDerGrinten3Raw(lambda, phi) {\n if (abs(phi) < epsilon) return [lambda, 0];\n var sinTheta = phi / halfPi, theta = asin(sinTheta);\n if (abs(lambda) < epsilon || abs(abs(phi) - halfPi) < epsilon) return [0, pi * tan(theta / 2)];\n var A3 = (pi / lambda - lambda / pi) / 2, y12 = sinTheta / (1 + cos(theta));\n return [\n pi * (sign(lambda) * sqrt(A3 * A3 + 1 - y12 * y12) - A3),\n pi * y12\n ];\n }\n vanDerGrinten3Raw.invert = function(x, y) {\n if (!y) return [x, 0];\n var y12 = y / pi, A3 = (pi * pi * (1 - y12 * y12) - x * x) / (2 * pi * x);\n return [\n x ? pi * (sign(x) * sqrt(A3 * A3 + 1) - A3) : 0,\n halfPi * sin(2 * atan(y12))\n ];\n };\n function vanDerGrinten3() {\n return d3Geo.geoProjection(vanDerGrinten3Raw).scale(79.4183);\n }\n function vanDerGrinten4Raw(lambda, phi) {\n if (!phi) return [lambda, 0];\n var phi02 = abs(phi);\n if (!lambda || phi02 === halfPi) return [0, phi];\n var B3 = phi02 / halfPi, B22 = B3 * B3, C2 = (8 * B3 - B22 * (B22 + 2) - 5) / (2 * B22 * (B3 - 1)), C22 = C2 * C2, BC = B3 * C2, B_C2 = B22 + C22 + 2 * BC, B_3C = B3 + 3 * C2, lambda0 = lambda / halfPi, lambda1 = lambda0 + 1 / lambda0, D2 = sign(abs(lambda) - halfPi) * sqrt(lambda1 * lambda1 - 4), D22 = D2 * D2, F = B_C2 * (B22 + C22 * D22 - 1) + (1 - B22) * (B22 * (B_3C * B_3C + 4 * C22) + 12 * BC * C22 + 4 * C22 * C22), x12 = (D2 * (B_C2 + C22 - 1) + 2 * sqrt(F)) / (4 * B_C2 + D22);\n return [\n sign(lambda) * halfPi * x12,\n sign(phi) * halfPi * sqrt(1 + D2 * abs(x12) - x12 * x12)\n ];\n }\n vanDerGrinten4Raw.invert = function(x, y) {\n var delta;\n if (!x || !y) return [x, y];\n y /= pi;\n var x12 = sign(x) * x / halfPi, D2 = (x12 * x12 - 1 + 4 * y * y) / abs(x12), D22 = D2 * D2, B3 = 2 * y, i = 50;\n do {\n var B22 = B3 * B3, C2 = (8 * B3 - B22 * (B22 + 2) - 5) / (2 * B22 * (B3 - 1)), C_ = (3 * B3 - B22 * B3 - 10) / (2 * B22 * B3), C22 = C2 * C2, BC = B3 * C2, B_C = B3 + C2, B_C2 = B_C * B_C, B_3C = B3 + 3 * C2, F = B_C2 * (B22 + C22 * D22 - 1) + (1 - B22) * (B22 * (B_3C * B_3C + 4 * C22) + C22 * (12 * BC + 4 * C22)), F_ = -2 * B_C * (4 * BC * C22 + (1 - 4 * B22 + 3 * B22 * B22) * (1 + C_) + C22 * (-6 + 14 * B22 - D22 + (-8 + 8 * B22 - 2 * D22) * C_) + BC * (-8 + 12 * B22 + (-10 + 10 * B22 - D22) * C_)), sqrtF = sqrt(F), f = D2 * (B_C2 + C22 - 1) + 2 * sqrtF - x12 * (4 * B_C2 + D22), f_ = D2 * (2 * C2 * C_ + 2 * B_C * (1 + C_)) + F_ / sqrtF - 8 * B_C * (D2 * (-1 + C22 + B_C2) + 2 * sqrtF) * (1 + C_) / (D22 + 4 * B_C2);\n B3 -= delta = f / f_;\n } while (delta > epsilon && --i > 0);\n return [\n sign(x) * (sqrt(D2 * D2 + 4) + D2) * pi / 4,\n halfPi * B3\n ];\n };\n function vanDerGrinten4() {\n return d3Geo.geoProjection(vanDerGrinten4Raw).scale(127.16);\n }\n function wagnerFormula(cx, cy, m1, m2, n) {\n function forward(lambda, phi) {\n var s = m1 * sin(m2 * phi), c0 = sqrt(1 - s * s), c1 = sqrt(2 / (1 + c0 * cos(lambda *= n)));\n return [\n cx * c0 * c1 * sin(lambda),\n cy * s * c1\n ];\n }\n forward.invert = function(x, y) {\n var t12 = x / cx, t22 = y / cy, p = sqrt(t12 * t12 + t22 * t22), c = 2 * asin(p / 2);\n return [\n atan2(x * tan(c), cx * p) / n,\n p && asin(y * sin(c) / (cy * m1 * p)) / m2\n ];\n };\n return forward;\n }\n function wagnerRaw(poleline, parallels, inflation, ratio) {\n var phi1 = pi / 3;\n poleline = max(poleline, epsilon);\n parallels = max(parallels, epsilon);\n poleline = min(poleline, halfPi);\n parallels = min(parallels, pi - epsilon);\n inflation = max(inflation, 0);\n inflation = min(inflation, 100 - epsilon);\n ratio = max(ratio, epsilon);\n var vinflation = inflation / 100 + 1;\n var vratio = ratio / 100;\n var m2 = acos(vinflation * cos(phi1)) / phi1, m1 = sin(poleline) / sin(m2 * halfPi), n = parallels / pi, k2 = sqrt(vratio * sin(poleline / 2) / sin(parallels / 2)), cx = k2 / sqrt(n * m1 * m2), cy = 1 / (k2 * sqrt(n * m1 * m2));\n return wagnerFormula(cx, cy, m1, m2, n);\n }\n function wagner() {\n var poleline = 65 * radians2, parallels = 60 * radians2, inflation = 20, ratio = 200, mutate = d3Geo.geoProjectionMutator(wagnerRaw), projection = mutate(poleline, parallels, inflation, ratio);\n projection.poleline = function(_) {\n return arguments.length ? mutate(poleline = +_ * radians2, parallels, inflation, ratio) : poleline * degrees3;\n };\n projection.parallels = function(_) {\n return arguments.length ? mutate(poleline, parallels = +_ * radians2, inflation, ratio) : parallels * degrees3;\n };\n projection.inflation = function(_) {\n return arguments.length ? mutate(poleline, parallels, inflation = +_, ratio) : inflation;\n };\n projection.ratio = function(_) {\n return arguments.length ? mutate(poleline, parallels, inflation, ratio = +_) : ratio;\n };\n return projection.scale(163.775);\n }\n function wagner7() {\n return wagner().poleline(65).parallels(60).inflation(0).ratio(200).scale(172.633);\n }\n var A2 = 4 * pi + 3 * sqrt(3), B2 = 2 * sqrt(2 * pi * sqrt(3) / A2);\n var wagner4Raw = mollweideBromleyRaw(B2 * sqrt(3) / pi, B2, A2 / 6);\n function wagner4() {\n return d3Geo.geoProjection(wagner4Raw).scale(176.84);\n }\n function wagner6Raw(lambda, phi) {\n return [lambda * sqrt(1 - 3 * phi * phi / (pi * pi)), phi];\n }\n wagner6Raw.invert = function(x, y) {\n return [x / sqrt(1 - 3 * y * y / (pi * pi)), y];\n };\n function wagner6() {\n return d3Geo.geoProjection(wagner6Raw).scale(152.63);\n }\n function wiechelRaw(lambda, phi) {\n var cosPhi = cos(phi), sinPhi = cos(lambda) * cosPhi, sin1_Phi = 1 - sinPhi, cosLambda = cos(lambda = atan2(sin(lambda) * cosPhi, -sin(phi))), sinLambda = sin(lambda);\n cosPhi = sqrt(1 - sinPhi * sinPhi);\n return [\n sinLambda * cosPhi - cosLambda * sin1_Phi,\n -cosLambda * cosPhi - sinLambda * sin1_Phi\n ];\n }\n wiechelRaw.invert = function(x, y) {\n var w2 = (x * x + y * y) / -2, k2 = sqrt(-w2 * (2 + w2)), b = y * w2 + x * k2, a = x * w2 - y * k2, D2 = sqrt(a * a + b * b);\n return [\n atan2(k2 * b, D2 * (1 + w2)),\n D2 ? -asin(k2 * a / D2) : 0\n ];\n };\n function wiechel() {\n return d3Geo.geoProjection(wiechelRaw).rotate([0, -90, 45]).scale(124.75).clipAngle(180 - 1e-3);\n }\n function winkel3Raw(lambda, phi) {\n var coordinates = aitoffRaw(lambda, phi);\n return [\n (coordinates[0] + lambda / halfPi) / 2,\n (coordinates[1] + phi) / 2\n ];\n }\n winkel3Raw.invert = function(x, y) {\n var lambda = x, phi = y, i = 25;\n do {\n var cosphi = cos(phi), sinphi = sin(phi), sin_2phi = sin(2 * phi), sin2phi = sinphi * sinphi, cos2phi = cosphi * cosphi, sinlambda = sin(lambda), coslambda_2 = cos(lambda / 2), sinlambda_2 = sin(lambda / 2), sin2lambda_2 = sinlambda_2 * sinlambda_2, C2 = 1 - cos2phi * coslambda_2 * coslambda_2, E2 = C2 ? acos(cosphi * coslambda_2) * sqrt(F = 1 / C2) : F = 0, F, fx = 0.5 * (2 * E2 * cosphi * sinlambda_2 + lambda / halfPi) - x, fy = 0.5 * (E2 * sinphi + phi) - y, dxdlambda = 0.5 * F * (cos2phi * sin2lambda_2 + E2 * cosphi * coslambda_2 * sin2phi) + 0.5 / halfPi, dxdphi = F * (sinlambda * sin_2phi / 4 - E2 * sinphi * sinlambda_2), dydlambda = 0.125 * F * (sin_2phi * sinlambda_2 - E2 * sinphi * cos2phi * sinlambda), dydphi = 0.5 * F * (sin2phi * coslambda_2 + E2 * sin2lambda_2 * cosphi) + 0.5, denominator = dxdphi * dydlambda - dydphi * dxdlambda, dlambda = (fy * dxdphi - fx * dydphi) / denominator, dphi = (fx * dydlambda - fy * dxdlambda) / denominator;\n lambda -= dlambda, phi -= dphi;\n } while ((abs(dlambda) > epsilon || abs(dphi) > epsilon) && --i > 0);\n return [lambda, phi];\n };\n function winkel3() {\n return d3Geo.geoProjection(winkel3Raw).scale(158.837);\n }\n exports2.geoNaturalEarth = d3Geo.geoNaturalEarth1;\n exports2.geoNaturalEarthRaw = d3Geo.geoNaturalEarth1Raw;\n exports2.geoAiry = airy;\n exports2.geoAiryRaw = airyRaw;\n exports2.geoAitoff = aitoff;\n exports2.geoAitoffRaw = aitoffRaw;\n exports2.geoArmadillo = armadillo;\n exports2.geoArmadilloRaw = armadilloRaw;\n exports2.geoAugust = august;\n exports2.geoAugustRaw = augustRaw;\n exports2.geoBaker = baker;\n exports2.geoBakerRaw = bakerRaw;\n exports2.geoBerghaus = berghaus;\n exports2.geoBerghausRaw = berghausRaw;\n exports2.geoBertin1953 = bertin;\n exports2.geoBertin1953Raw = bertin1953Raw;\n exports2.geoBoggs = boggs;\n exports2.geoBoggsRaw = boggsRaw;\n exports2.geoBonne = bonne;\n exports2.geoBonneRaw = bonneRaw;\n exports2.geoBottomley = bottomley;\n exports2.geoBottomleyRaw = bottomleyRaw;\n exports2.geoBromley = bromley;\n exports2.geoBromleyRaw = bromleyRaw;\n exports2.geoChamberlin = chamberlin;\n exports2.geoChamberlinRaw = chamberlinRaw;\n exports2.geoChamberlinAfrica = chamberlinAfrica;\n exports2.geoCollignon = collignon;\n exports2.geoCollignonRaw = collignonRaw;\n exports2.geoCraig = craig;\n exports2.geoCraigRaw = craigRaw;\n exports2.geoCraster = craster;\n exports2.geoCrasterRaw = crasterRaw;\n exports2.geoCylindricalEqualArea = cylindricalEqualArea;\n exports2.geoCylindricalEqualAreaRaw = cylindricalEqualAreaRaw;\n exports2.geoCylindricalStereographic = cylindricalStereographic;\n exports2.geoCylindricalStereographicRaw = cylindricalStereographicRaw;\n exports2.geoEckert1 = eckert1;\n exports2.geoEckert1Raw = eckert1Raw;\n exports2.geoEckert2 = eckert2;\n exports2.geoEckert2Raw = eckert2Raw;\n exports2.geoEckert3 = eckert3;\n exports2.geoEckert3Raw = eckert3Raw;\n exports2.geoEckert4 = eckert4;\n exports2.geoEckert4Raw = eckert4Raw;\n exports2.geoEckert5 = eckert5;\n exports2.geoEckert5Raw = eckert5Raw;\n exports2.geoEckert6 = eckert6;\n exports2.geoEckert6Raw = eckert6Raw;\n exports2.geoEisenlohr = eisenlohr;\n exports2.geoEisenlohrRaw = eisenlohrRaw;\n exports2.geoFahey = fahey;\n exports2.geoFaheyRaw = faheyRaw;\n exports2.geoFoucaut = foucaut;\n exports2.geoFoucautRaw = foucautRaw;\n exports2.geoFoucautSinusoidal = foucautSinusoidal;\n exports2.geoFoucautSinusoidalRaw = foucautSinusoidalRaw;\n exports2.geoGilbert = gilbert;\n exports2.geoGingery = gingery;\n exports2.geoGingeryRaw = gingeryRaw;\n exports2.geoGinzburg4 = ginzburg4;\n exports2.geoGinzburg4Raw = ginzburg4Raw;\n exports2.geoGinzburg5 = ginzburg5;\n exports2.geoGinzburg5Raw = ginzburg5Raw;\n exports2.geoGinzburg6 = ginzburg6;\n exports2.geoGinzburg6Raw = ginzburg6Raw;\n exports2.geoGinzburg8 = ginzburg8;\n exports2.geoGinzburg8Raw = ginzburg8Raw;\n exports2.geoGinzburg9 = ginzburg9;\n exports2.geoGinzburg9Raw = ginzburg9Raw;\n exports2.geoGringorten = gringorten;\n exports2.geoGringortenRaw = gringortenRaw;\n exports2.geoGuyou = guyou;\n exports2.geoGuyouRaw = guyouRaw;\n exports2.geoHammer = hammer;\n exports2.geoHammerRaw = hammerRaw;\n exports2.geoHammerRetroazimuthal = hammerRetroazimuthal;\n exports2.geoHammerRetroazimuthalRaw = hammerRetroazimuthalRaw;\n exports2.geoHealpix = healpix;\n exports2.geoHealpixRaw = healpixRaw;\n exports2.geoHill = hill;\n exports2.geoHillRaw = hillRaw;\n exports2.geoHomolosine = homolosine;\n exports2.geoHomolosineRaw = homolosineRaw;\n exports2.geoHufnagel = hufnagel;\n exports2.geoHufnagelRaw = hufnagelRaw;\n exports2.geoHyperelliptical = hyperelliptical;\n exports2.geoHyperellipticalRaw = hyperellipticalRaw;\n exports2.geoInterrupt = interrupt;\n exports2.geoInterruptedBoggs = boggs$1;\n exports2.geoInterruptedHomolosine = homolosine$1;\n exports2.geoInterruptedMollweide = mollweide$1;\n exports2.geoInterruptedMollweideHemispheres = mollweideHemispheres;\n exports2.geoInterruptedSinuMollweide = sinuMollweide$1;\n exports2.geoInterruptedSinusoidal = sinusoidal$1;\n exports2.geoKavrayskiy7 = kavrayskiy7;\n exports2.geoKavrayskiy7Raw = kavrayskiy7Raw;\n exports2.geoLagrange = lagrange;\n exports2.geoLagrangeRaw = lagrangeRaw;\n exports2.geoLarrivee = larrivee;\n exports2.geoLarriveeRaw = larriveeRaw;\n exports2.geoLaskowski = laskowski;\n exports2.geoLaskowskiRaw = laskowskiRaw;\n exports2.geoLittrow = littrow;\n exports2.geoLittrowRaw = littrowRaw;\n exports2.geoLoximuthal = loximuthal;\n exports2.geoLoximuthalRaw = loximuthalRaw;\n exports2.geoMiller = miller;\n exports2.geoMillerRaw = millerRaw;\n exports2.geoModifiedStereographic = modifiedStereographic;\n exports2.geoModifiedStereographicRaw = modifiedStereographicRaw;\n exports2.geoModifiedStereographicAlaska = modifiedStereographicAlaska;\n exports2.geoModifiedStereographicGs48 = modifiedStereographicGs48;\n exports2.geoModifiedStereographicGs50 = modifiedStereographicGs50;\n exports2.geoModifiedStereographicMiller = modifiedStereographicMiller;\n exports2.geoModifiedStereographicLee = modifiedStereographicLee;\n exports2.geoMollweide = mollweide;\n exports2.geoMollweideRaw = mollweideRaw;\n exports2.geoMtFlatPolarParabolic = mtFlatPolarParabolic;\n exports2.geoMtFlatPolarParabolicRaw = mtFlatPolarParabolicRaw;\n exports2.geoMtFlatPolarQuartic = mtFlatPolarQuartic;\n exports2.geoMtFlatPolarQuarticRaw = mtFlatPolarQuarticRaw;\n exports2.geoMtFlatPolarSinusoidal = mtFlatPolarSinusoidal;\n exports2.geoMtFlatPolarSinusoidalRaw = mtFlatPolarSinusoidalRaw;\n exports2.geoNaturalEarth2 = naturalEarth2;\n exports2.geoNaturalEarth2Raw = naturalEarth2Raw;\n exports2.geoNellHammer = nellHammer;\n exports2.geoNellHammerRaw = nellHammerRaw;\n exports2.geoInterruptedQuarticAuthalic = quarticAuthalic;\n exports2.geoNicolosi = nicolosi;\n exports2.geoNicolosiRaw = nicolosiRaw;\n exports2.geoPatterson = patterson;\n exports2.geoPattersonRaw = pattersonRaw;\n exports2.geoPolyconic = polyconic;\n exports2.geoPolyconicRaw = polyconicRaw;\n exports2.geoPolyhedral = polyhedral;\n exports2.geoPolyhedralButterfly = butterfly;\n exports2.geoPolyhedralCollignon = collignon$1;\n exports2.geoPolyhedralWaterman = waterman;\n exports2.geoProject = index;\n exports2.geoGringortenQuincuncial = gringorten$1;\n exports2.geoPeirceQuincuncial = peirce;\n exports2.geoPierceQuincuncial = peirce;\n exports2.geoQuantize = quantize;\n exports2.geoQuincuncial = quincuncial;\n exports2.geoRectangularPolyconic = rectangularPolyconic;\n exports2.geoRectangularPolyconicRaw = rectangularPolyconicRaw;\n exports2.geoRobinson = robinson;\n exports2.geoRobinsonRaw = robinsonRaw;\n exports2.geoSatellite = satellite;\n exports2.geoSatelliteRaw = satelliteRaw;\n exports2.geoSinuMollweide = sinuMollweide;\n exports2.geoSinuMollweideRaw = sinuMollweideRaw;\n exports2.geoSinusoidal = sinusoidal;\n exports2.geoSinusoidalRaw = sinusoidalRaw;\n exports2.geoStitch = stitch;\n exports2.geoTimes = times;\n exports2.geoTimesRaw = timesRaw;\n exports2.geoTwoPointAzimuthal = twoPointAzimuthal;\n exports2.geoTwoPointAzimuthalRaw = twoPointAzimuthalRaw;\n exports2.geoTwoPointAzimuthalUsa = twoPointAzimuthalUsa;\n exports2.geoTwoPointEquidistant = twoPointEquidistant;\n exports2.geoTwoPointEquidistantRaw = twoPointEquidistantRaw;\n exports2.geoTwoPointEquidistantUsa = twoPointEquidistantUsa;\n exports2.geoVanDerGrinten = vanDerGrinten;\n exports2.geoVanDerGrintenRaw = vanDerGrintenRaw;\n exports2.geoVanDerGrinten2 = vanDerGrinten2;\n exports2.geoVanDerGrinten2Raw = vanDerGrinten2Raw;\n exports2.geoVanDerGrinten3 = vanDerGrinten3;\n exports2.geoVanDerGrinten3Raw = vanDerGrinten3Raw;\n exports2.geoVanDerGrinten4 = vanDerGrinten4;\n exports2.geoVanDerGrinten4Raw = vanDerGrinten4Raw;\n exports2.geoWagner = wagner;\n exports2.geoWagner7 = wagner7;\n exports2.geoWagnerRaw = wagnerRaw;\n exports2.geoWagner4 = wagner4;\n exports2.geoWagner4Raw = wagner4Raw;\n exports2.geoWagner6 = wagner6;\n exports2.geoWagner6Raw = wagner6Raw;\n exports2.geoWiechel = wiechel;\n exports2.geoWiechelRaw = wiechelRaw;\n exports2.geoWinkel3 = winkel3;\n exports2.geoWinkel3Raw = winkel3Raw;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/plots/geo/zoom.js\n var require_zoom = __commonJS({\n \"src/plots/geo/zoom.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var Registry = require_registry();\n var radians2 = Math.PI / 180;\n var degrees3 = 180 / Math.PI;\n var zoomstartStyle = { cursor: \"pointer\" };\n var zoomendStyle = { cursor: \"auto\" };\n function createGeoZoom(geo, geoLayout) {\n var projection = geo.projection;\n var zoomConstructor;\n if (geoLayout._isScoped) {\n zoomConstructor = zoomScoped;\n } else if (geoLayout._isClipped) {\n zoomConstructor = zoomClipped;\n } else {\n zoomConstructor = zoomNonClipped;\n }\n return zoomConstructor(geo, projection);\n }\n module.exports = createGeoZoom;\n function initZoom(geo, projection) {\n return d3.behavior.zoom().translate(projection.translate()).scale(projection.scale());\n }\n function sync(geo, projection, cb) {\n var id = geo.id;\n var gd = geo.graphDiv;\n var layout = gd.layout;\n var userOpts = layout[id];\n var fullLayout = gd._fullLayout;\n var fullOpts = fullLayout[id];\n var preGUI = {};\n var eventData = {};\n function set(propStr, val) {\n preGUI[id + \".\" + propStr] = Lib.nestedProperty(userOpts, propStr).get();\n Registry.call(\"_storeDirectGUIEdit\", layout, fullLayout._preGUI, preGUI);\n var fullNp = Lib.nestedProperty(fullOpts, propStr);\n if (fullNp.get() !== val) {\n fullNp.set(val);\n Lib.nestedProperty(userOpts, propStr).set(val);\n eventData[id + \".\" + propStr] = val;\n }\n }\n cb(set);\n set(\"projection.scale\", projection.scale() / geo.fitScale);\n set(\"fitbounds\", false);\n gd.emit(\"plotly_relayout\", eventData);\n }\n function zoomScoped(geo, projection) {\n var zoom = initZoom(geo, projection);\n function handleZoomstart() {\n d3.select(this).style(zoomstartStyle);\n }\n function handleZoom() {\n projection.scale(d3.event.scale).translate(d3.event.translate);\n geo.render(true);\n var center = projection.invert(geo.midPt);\n geo.graphDiv.emit(\"plotly_relayouting\", {\n \"geo.projection.scale\": projection.scale() / geo.fitScale,\n \"geo.center.lon\": center[0],\n \"geo.center.lat\": center[1]\n });\n }\n function syncCb(set) {\n var center = projection.invert(geo.midPt);\n set(\"center.lon\", center[0]);\n set(\"center.lat\", center[1]);\n }\n function handleZoomend() {\n d3.select(this).style(zoomendStyle);\n sync(geo, projection, syncCb);\n }\n zoom.on(\"zoomstart\", handleZoomstart).on(\"zoom\", handleZoom).on(\"zoomend\", handleZoomend);\n return zoom;\n }\n function zoomNonClipped(geo, projection) {\n var zoom = initZoom(geo, projection);\n var INSIDETOLORANCEPXS = 2;\n var mouse0, rotate0, translate0, lastRotate, zoomPoint, mouse1, rotate1, point1, didZoom;\n function position2(x) {\n return projection.invert(x);\n }\n function outside(x) {\n var pos = position2(x);\n if (!pos) return true;\n var pt = projection(pos);\n return Math.abs(pt[0] - x[0]) > INSIDETOLORANCEPXS || Math.abs(pt[1] - x[1]) > INSIDETOLORANCEPXS;\n }\n function handleZoomstart() {\n d3.select(this).style(zoomstartStyle);\n mouse0 = d3.mouse(this);\n rotate0 = projection.rotate();\n translate0 = projection.translate();\n lastRotate = rotate0;\n zoomPoint = position2(mouse0);\n }\n function handleZoom() {\n mouse1 = d3.mouse(this);\n if (outside(mouse0)) {\n zoom.scale(projection.scale());\n zoom.translate(projection.translate());\n return;\n }\n projection.scale(d3.event.scale);\n projection.translate([translate0[0], d3.event.translate[1]]);\n if (!zoomPoint) {\n mouse0 = mouse1;\n zoomPoint = position2(mouse0);\n } else if (position2(mouse1)) {\n point1 = position2(mouse1);\n rotate1 = [lastRotate[0] + (point1[0] - zoomPoint[0]), rotate0[1], rotate0[2]];\n projection.rotate(rotate1);\n lastRotate = rotate1;\n }\n didZoom = true;\n geo.render(true);\n var rotate = projection.rotate();\n var center = projection.invert(geo.midPt);\n geo.graphDiv.emit(\"plotly_relayouting\", {\n \"geo.projection.scale\": projection.scale() / geo.fitScale,\n \"geo.center.lon\": center[0],\n \"geo.center.lat\": center[1],\n \"geo.projection.rotation.lon\": -rotate[0]\n });\n }\n function handleZoomend() {\n d3.select(this).style(zoomendStyle);\n if (didZoom) sync(geo, projection, syncCb);\n }\n function syncCb(set) {\n var rotate = projection.rotate();\n var center = projection.invert(geo.midPt);\n set(\"projection.rotation.lon\", -rotate[0]);\n set(\"center.lon\", center[0]);\n set(\"center.lat\", center[1]);\n }\n zoom.on(\"zoomstart\", handleZoomstart).on(\"zoom\", handleZoom).on(\"zoomend\", handleZoomend);\n return zoom;\n }\n function zoomClipped(geo, projection) {\n var view = { r: projection.rotate(), k: projection.scale() };\n var zoom = initZoom(geo, projection);\n var event = d3eventDispatch(zoom, \"zoomstart\", \"zoom\", \"zoomend\");\n var zooming = 0;\n var zoomOn = zoom.on;\n var zoomPoint;\n zoom.on(\"zoomstart\", function() {\n d3.select(this).style(zoomstartStyle);\n var mouse0 = d3.mouse(this);\n var rotate0 = projection.rotate();\n var lastRotate = rotate0;\n var translate0 = projection.translate();\n var q = quaternionFromEuler(rotate0);\n zoomPoint = position(projection, mouse0);\n zoomOn.call(zoom, \"zoom\", function() {\n var mouse1 = d3.mouse(this);\n projection.scale(view.k = d3.event.scale);\n if (!zoomPoint) {\n mouse0 = mouse1;\n zoomPoint = position(projection, mouse0);\n } else if (position(projection, mouse1)) {\n projection.rotate(rotate0).translate(translate0);\n var point1 = position(projection, mouse1);\n var between = rotateBetween(zoomPoint, point1);\n var newEuler = eulerFromQuaternion(multiply(q, between));\n var rotateAngles = view.r = unRoll(newEuler, zoomPoint, lastRotate);\n if (!isFinite(rotateAngles[0]) || !isFinite(rotateAngles[1]) || !isFinite(rotateAngles[2])) {\n rotateAngles = lastRotate;\n }\n projection.rotate(rotateAngles);\n lastRotate = rotateAngles;\n }\n zoomed(event.of(this, arguments));\n });\n zoomstarted(event.of(this, arguments));\n }).on(\"zoomend\", function() {\n d3.select(this).style(zoomendStyle);\n zoomOn.call(zoom, \"zoom\", null);\n zoomended(event.of(this, arguments));\n sync(geo, projection, syncCb);\n }).on(\"zoom.redraw\", function() {\n geo.render(true);\n var _rotate = projection.rotate();\n geo.graphDiv.emit(\"plotly_relayouting\", {\n \"geo.projection.scale\": projection.scale() / geo.fitScale,\n \"geo.projection.rotation.lon\": -_rotate[0],\n \"geo.projection.rotation.lat\": -_rotate[1]\n });\n });\n function zoomstarted(dispatch) {\n if (!zooming++) dispatch({ type: \"zoomstart\" });\n }\n function zoomed(dispatch) {\n dispatch({ type: \"zoom\" });\n }\n function zoomended(dispatch) {\n if (!--zooming) dispatch({ type: \"zoomend\" });\n }\n function syncCb(set) {\n var _rotate = projection.rotate();\n set(\"projection.rotation.lon\", -_rotate[0]);\n set(\"projection.rotation.lat\", -_rotate[1]);\n }\n return d3.rebind(zoom, event, \"on\");\n }\n function position(projection, point) {\n var spherical = projection.invert(point);\n return spherical && isFinite(spherical[0]) && isFinite(spherical[1]) && cartesian(spherical);\n }\n function quaternionFromEuler(euler) {\n var lambda = 0.5 * euler[0] * radians2;\n var phi = 0.5 * euler[1] * radians2;\n var gamma2 = 0.5 * euler[2] * radians2;\n var sinLambda = Math.sin(lambda);\n var cosLambda = Math.cos(lambda);\n var sinPhi = Math.sin(phi);\n var cosPhi = Math.cos(phi);\n var sinGamma = Math.sin(gamma2);\n var cosGamma = Math.cos(gamma2);\n return [\n cosLambda * cosPhi * cosGamma + sinLambda * sinPhi * sinGamma,\n sinLambda * cosPhi * cosGamma - cosLambda * sinPhi * sinGamma,\n cosLambda * sinPhi * cosGamma + sinLambda * cosPhi * sinGamma,\n cosLambda * cosPhi * sinGamma - sinLambda * sinPhi * cosGamma\n ];\n }\n function multiply(a, b) {\n var a0 = a[0];\n var a1 = a[1];\n var a2 = a[2];\n var a3 = a[3];\n var b0 = b[0];\n var b1 = b[1];\n var b2 = b[2];\n var b3 = b[3];\n return [\n a0 * b0 - a1 * b1 - a2 * b2 - a3 * b3,\n a0 * b1 + a1 * b0 + a2 * b3 - a3 * b2,\n a0 * b2 - a1 * b3 + a2 * b0 + a3 * b1,\n a0 * b3 + a1 * b2 - a2 * b1 + a3 * b0\n ];\n }\n function rotateBetween(a, b) {\n if (!a || !b) return;\n var axis = cross(a, b);\n var norm = Math.sqrt(dot(axis, axis));\n var halfgamma = 0.5 * Math.acos(Math.max(-1, Math.min(1, dot(a, b))));\n var k = Math.sin(halfgamma) / norm;\n return norm && [Math.cos(halfgamma), axis[2] * k, -axis[1] * k, axis[0] * k];\n }\n function unRoll(rotateAngles, pt, lastRotate) {\n var ptRotated = rotateCartesian(pt, 2, rotateAngles[0]);\n ptRotated = rotateCartesian(ptRotated, 1, rotateAngles[1]);\n ptRotated = rotateCartesian(ptRotated, 0, rotateAngles[2] - lastRotate[2]);\n var x = pt[0];\n var y = pt[1];\n var z = pt[2];\n var f = ptRotated[0];\n var g = ptRotated[1];\n var h = ptRotated[2];\n var theta = Math.atan2(y, x) * degrees3;\n var a = Math.sqrt(x * x + y * y);\n var b;\n var newYaw1;\n if (Math.abs(g) > a) {\n newYaw1 = (g > 0 ? 90 : -90) - theta;\n b = 0;\n } else {\n newYaw1 = Math.asin(g / a) * degrees3 - theta;\n b = Math.sqrt(a * a - g * g);\n }\n var newYaw2 = 180 - newYaw1 - 2 * theta;\n var newPitch1 = (Math.atan2(h, f) - Math.atan2(z, b)) * degrees3;\n var newPitch2 = (Math.atan2(h, f) - Math.atan2(z, -b)) * degrees3;\n var dist1 = angleDistance(lastRotate[0], lastRotate[1], newYaw1, newPitch1);\n var dist2 = angleDistance(lastRotate[0], lastRotate[1], newYaw2, newPitch2);\n if (dist1 <= dist2) return [newYaw1, newPitch1, lastRotate[2]];\n else return [newYaw2, newPitch2, lastRotate[2]];\n }\n function angleDistance(yaw0, pitch0, yaw1, pitch1) {\n var dYaw = angleMod(yaw1 - yaw0);\n var dPitch = angleMod(pitch1 - pitch0);\n return Math.sqrt(dYaw * dYaw + dPitch * dPitch);\n }\n function angleMod(angle) {\n return (angle % 360 + 540) % 360 - 180;\n }\n function rotateCartesian(vector, axis, angle) {\n var angleRads = angle * radians2;\n var vectorOut = vector.slice();\n var ax1 = axis === 0 ? 1 : 0;\n var ax2 = axis === 2 ? 1 : 2;\n var cosa = Math.cos(angleRads);\n var sina = Math.sin(angleRads);\n vectorOut[ax1] = vector[ax1] * cosa - vector[ax2] * sina;\n vectorOut[ax2] = vector[ax2] * cosa + vector[ax1] * sina;\n return vectorOut;\n }\n function eulerFromQuaternion(q) {\n return [\n Math.atan2(2 * (q[0] * q[1] + q[2] * q[3]), 1 - 2 * (q[1] * q[1] + q[2] * q[2])) * degrees3,\n Math.asin(Math.max(-1, Math.min(1, 2 * (q[0] * q[2] - q[3] * q[1])))) * degrees3,\n Math.atan2(2 * (q[0] * q[3] + q[1] * q[2]), 1 - 2 * (q[2] * q[2] + q[3] * q[3])) * degrees3\n ];\n }\n function cartesian(spherical) {\n var lambda = spherical[0] * radians2;\n var phi = spherical[1] * radians2;\n var cosPhi = Math.cos(phi);\n return [\n cosPhi * Math.cos(lambda),\n cosPhi * Math.sin(lambda),\n Math.sin(phi)\n ];\n }\n function dot(a, b) {\n var s = 0;\n for (var i = 0, n = a.length; i < n; ++i) s += a[i] * b[i];\n return s;\n }\n function cross(a, b) {\n return [\n a[1] * b[2] - a[2] * b[1],\n a[2] * b[0] - a[0] * b[2],\n a[0] * b[1] - a[1] * b[0]\n ];\n }\n function d3eventDispatch(target) {\n var i = 0;\n var n = arguments.length;\n var argumentz = [];\n while (++i < n) argumentz.push(arguments[i]);\n var dispatch = d3.dispatch.apply(null, argumentz);\n dispatch.of = function(thiz, argumentz2) {\n return function(e1) {\n var e0;\n try {\n e0 = e1.sourceEvent = d3.event;\n e1.target = target;\n d3.event = e1;\n dispatch[e1.type].apply(thiz, argumentz2);\n } finally {\n d3.event = e0;\n }\n };\n };\n return dispatch;\n }\n }\n });\n\n // src/plots/geo/geo.js\n var require_geo = __commonJS({\n \"src/plots/geo/geo.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var geo = require_d3_geo();\n var geoPath = geo.geoPath;\n var geoDistance = geo.geoDistance;\n var geoProjection = require_d3_geo_projection();\n var Registry = require_registry();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Fx = require_fx();\n var Plots = require_plots();\n var Axes = require_axes();\n var getAutoRange = require_autorange().getAutoRange;\n var dragElement = require_dragelement();\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var selectOnClick = require_selections().selectOnClick;\n var createGeoZoom = require_zoom();\n var constants = require_constants22();\n var geoUtils = require_geo_location_utils();\n var topojsonUtils = require_topojson_utils();\n var topojsonFeature = require_topojson_client().feature;\n function Geo(opts) {\n this.id = opts.id;\n this.graphDiv = opts.graphDiv;\n this.container = opts.container;\n this.topojsonURL = opts.topojsonURL;\n this.isStatic = opts.staticPlot;\n this.topojsonName = null;\n this.topojson = null;\n this.projection = null;\n this.scope = null;\n this.viewInitial = null;\n this.fitScale = null;\n this.bounds = null;\n this.midPt = null;\n this.hasChoropleth = false;\n this.traceHash = {};\n this.layers = {};\n this.basePaths = {};\n this.dataPaths = {};\n this.dataPoints = {};\n this.clipDef = null;\n this.clipRect = null;\n this.bgRect = null;\n this.makeFramework();\n }\n var proto = Geo.prototype;\n module.exports = function createGeo(opts) {\n return new Geo(opts);\n };\n proto.plot = function(geoCalcData, fullLayout, promises, replot) {\n var _this = this;\n if (replot) return _this.update(geoCalcData, fullLayout, true);\n _this._geoCalcData = geoCalcData;\n _this._fullLayout = fullLayout;\n var geoLayout = fullLayout[this.id];\n var geoPromises = [];\n var needsTopojson = false;\n for (var k in constants.layerNameToAdjective) {\n if (k !== \"frame\" && geoLayout[\"show\" + k]) {\n needsTopojson = true;\n break;\n }\n }\n var hasMarkerAngles = false;\n for (var i = 0; i < geoCalcData.length; i++) {\n var trace = geoCalcData[0][0].trace;\n trace._geo = _this;\n if (trace.locationmode) {\n needsTopojson = true;\n }\n var marker = trace.marker;\n if (marker) {\n var angle = marker.angle;\n var angleref = marker.angleref;\n if (angle || angleref === \"north\" || angleref === \"previous\") hasMarkerAngles = true;\n }\n }\n this._hasMarkerAngles = hasMarkerAngles;\n if (needsTopojson) {\n var topojsonNameNew = topojsonUtils.getTopojsonName(geoLayout);\n if (_this.topojson === null || topojsonNameNew !== _this.topojsonName) {\n _this.topojsonName = topojsonNameNew;\n if (PlotlyGeoAssets.topojson[_this.topojsonName] === void 0) {\n geoPromises.push(_this.fetchTopojson());\n }\n }\n }\n geoPromises = geoPromises.concat(geoUtils.fetchTraceGeoData(geoCalcData));\n promises.push(new Promise(function(resolve, reject) {\n Promise.all(geoPromises).then(function() {\n _this.topojson = PlotlyGeoAssets.topojson[_this.topojsonName];\n _this.update(geoCalcData, fullLayout);\n resolve();\n }).catch(reject);\n }));\n };\n proto.fetchTopojson = function() {\n var _this = this;\n var topojsonPath = topojsonUtils.getTopojsonPath(_this.topojsonURL, _this.topojsonName);\n return new Promise(function(resolve, reject) {\n d3.json(topojsonPath, function(err, topojson) {\n if (err) {\n if (err.status === 404) {\n return reject(new Error([\n \"plotly.js could not find topojson file at\",\n topojsonPath + \".\",\n \"Make sure the *topojsonURL* plot config option\",\n \"is set properly.\"\n ].join(\" \")));\n } else {\n return reject(new Error([\n \"unexpected error while fetching topojson file at\",\n topojsonPath\n ].join(\" \")));\n }\n }\n PlotlyGeoAssets.topojson[_this.topojsonName] = topojson;\n resolve();\n });\n });\n };\n proto.update = function(geoCalcData, fullLayout, replot) {\n var geoLayout = fullLayout[this.id];\n this.hasChoropleth = false;\n for (var i = 0; i < geoCalcData.length; i++) {\n var calcTrace = geoCalcData[i];\n var trace = calcTrace[0].trace;\n if (trace.type === \"choropleth\") {\n this.hasChoropleth = true;\n }\n if (trace.visible === true && trace._length > 0) {\n trace._module.calcGeoJSON(calcTrace, fullLayout);\n }\n }\n if (!replot) {\n var hasInvalidBounds = this.updateProjection(geoCalcData, fullLayout);\n if (hasInvalidBounds) return;\n if (!this.viewInitial || this.scope !== geoLayout.scope) {\n this.saveViewInitial(geoLayout);\n }\n }\n this.scope = geoLayout.scope;\n this.updateBaseLayers(fullLayout, geoLayout);\n this.updateDims(fullLayout, geoLayout);\n this.updateFx(fullLayout, geoLayout);\n Plots.generalUpdatePerTraceModule(this.graphDiv, this, geoCalcData, geoLayout);\n var scatterLayer = this.layers.frontplot.select(\".scatterlayer\");\n this.dataPoints.point = scatterLayer.selectAll(\".point\");\n this.dataPoints.text = scatterLayer.selectAll(\"text\");\n this.dataPaths.line = scatterLayer.selectAll(\".js-line\");\n var choroplethLayer = this.layers.backplot.select(\".choroplethlayer\");\n this.dataPaths.choropleth = choroplethLayer.selectAll(\"path\");\n this._render();\n };\n proto.updateProjection = function(geoCalcData, fullLayout) {\n var gd = this.graphDiv;\n var geoLayout = fullLayout[this.id];\n var gs = fullLayout._size;\n var domain = geoLayout.domain;\n var projLayout = geoLayout.projection;\n var lonaxis = geoLayout.lonaxis;\n var lataxis = geoLayout.lataxis;\n var axLon = lonaxis._ax;\n var axLat = lataxis._ax;\n var projection = this.projection = getProjection(geoLayout);\n var extent = [[\n gs.l + gs.w * domain.x[0],\n gs.t + gs.h * (1 - domain.y[1])\n ], [\n gs.l + gs.w * domain.x[1],\n gs.t + gs.h * (1 - domain.y[0])\n ]];\n var center = geoLayout.center || {};\n var rotation = projLayout.rotation || {};\n var lonaxisRange = lonaxis.range || [];\n var lataxisRange = lataxis.range || [];\n if (geoLayout.fitbounds) {\n axLon._length = extent[1][0] - extent[0][0];\n axLat._length = extent[1][1] - extent[0][1];\n axLon.range = getAutoRange(gd, axLon);\n axLat.range = getAutoRange(gd, axLat);\n var midLon = (axLon.range[0] + axLon.range[1]) / 2;\n var midLat = (axLat.range[0] + axLat.range[1]) / 2;\n if (geoLayout._isScoped) {\n center = { lon: midLon, lat: midLat };\n } else if (geoLayout._isClipped) {\n center = { lon: midLon, lat: midLat };\n rotation = { lon: midLon, lat: midLat, roll: rotation.roll };\n var projType = projLayout.type;\n var lonHalfSpan = constants.lonaxisSpan[projType] / 2 || 180;\n var latHalfSpan = constants.lataxisSpan[projType] / 2 || 90;\n lonaxisRange = [midLon - lonHalfSpan, midLon + lonHalfSpan];\n lataxisRange = [midLat - latHalfSpan, midLat + latHalfSpan];\n } else {\n center = { lon: midLon, lat: midLat };\n rotation = { lon: midLon, lat: rotation.lat, roll: rotation.roll };\n }\n }\n projection.center([center.lon - rotation.lon, center.lat - rotation.lat]).rotate([-rotation.lon, -rotation.lat, rotation.roll]).parallels(projLayout.parallels);\n var rangeBox = makeRangeBox(lonaxisRange, lataxisRange);\n projection.fitExtent(extent, rangeBox);\n var b = this.bounds = projection.getBounds(rangeBox);\n var s = this.fitScale = projection.scale();\n var t = projection.translate();\n if (geoLayout.fitbounds) {\n var b2 = projection.getBounds(makeRangeBox(axLon.range, axLat.range));\n var k2 = Math.min(\n (b[1][0] - b[0][0]) / (b2[1][0] - b2[0][0]),\n (b[1][1] - b[0][1]) / (b2[1][1] - b2[0][1])\n );\n if (isFinite(k2)) {\n projection.scale(k2 * s);\n } else {\n Lib.warn(\"Something went wrong during\" + this.id + \"fitbounds computations.\");\n }\n } else {\n projection.scale(projLayout.scale * s);\n }\n var midPt = this.midPt = [\n (b[0][0] + b[1][0]) / 2,\n (b[0][1] + b[1][1]) / 2\n ];\n projection.translate([t[0] + (midPt[0] - t[0]), t[1] + (midPt[1] - t[1])]).clipExtent(b);\n if (geoLayout._isAlbersUsa) {\n var centerPx = projection([center.lon, center.lat]);\n var tt = projection.translate();\n projection.translate([\n tt[0] - (centerPx[0] - tt[0]),\n tt[1] - (centerPx[1] - tt[1])\n ]);\n }\n };\n proto.updateBaseLayers = function(fullLayout, geoLayout) {\n var _this = this;\n var topojson = _this.topojson;\n var layers = _this.layers;\n var basePaths = _this.basePaths;\n function isAxisLayer(d) {\n return d === \"lonaxis\" || d === \"lataxis\";\n }\n function isLineLayer(d) {\n return Boolean(constants.lineLayers[d]);\n }\n function isFillLayer(d) {\n return Boolean(constants.fillLayers[d]);\n }\n var allLayers = this.hasChoropleth ? constants.layersForChoropleth : constants.layers;\n var layerData = allLayers.filter(function(d) {\n return isLineLayer(d) || isFillLayer(d) ? geoLayout[\"show\" + d] : isAxisLayer(d) ? geoLayout[d].showgrid : true;\n });\n var join = _this.framework.selectAll(\".layer\").data(layerData, String);\n join.exit().each(function(d) {\n delete layers[d];\n delete basePaths[d];\n d3.select(this).remove();\n });\n join.enter().append(\"g\").attr(\"class\", function(d) {\n return \"layer \" + d;\n }).each(function(d) {\n var layer = layers[d] = d3.select(this);\n if (d === \"bg\") {\n _this.bgRect = layer.append(\"rect\").style(\"pointer-events\", \"all\");\n } else if (isAxisLayer(d)) {\n basePaths[d] = layer.append(\"path\").style(\"fill\", \"none\");\n } else if (d === \"backplot\") {\n layer.append(\"g\").classed(\"choroplethlayer\", true);\n } else if (d === \"frontplot\") {\n layer.append(\"g\").classed(\"scatterlayer\", true);\n } else if (isLineLayer(d)) {\n basePaths[d] = layer.append(\"path\").style(\"fill\", \"none\").style(\"stroke-miterlimit\", 2);\n } else if (isFillLayer(d)) {\n basePaths[d] = layer.append(\"path\").style(\"stroke\", \"none\");\n }\n });\n join.order();\n join.each(function(d) {\n var path = basePaths[d];\n var adj = constants.layerNameToAdjective[d];\n if (d === \"frame\") {\n path.datum(constants.sphereSVG);\n } else if (isLineLayer(d) || isFillLayer(d)) {\n path.datum(topojsonFeature(topojson, topojson.objects[d]));\n } else if (isAxisLayer(d)) {\n path.datum(makeGraticule(d, geoLayout, fullLayout)).call(Color2.stroke, geoLayout[d].gridcolor).call(Drawing.dashLine, geoLayout[d].griddash, geoLayout[d].gridwidth);\n }\n if (isLineLayer(d)) {\n path.call(Color2.stroke, geoLayout[adj + \"color\"]).call(Drawing.dashLine, \"\", geoLayout[adj + \"width\"]);\n } else if (isFillLayer(d)) {\n path.call(Color2.fill, geoLayout[adj + \"color\"]);\n }\n });\n };\n proto.updateDims = function(fullLayout, geoLayout) {\n var b = this.bounds;\n var hFrameWidth = (geoLayout.framewidth || 0) / 2;\n var l = b[0][0] - hFrameWidth;\n var t = b[0][1] - hFrameWidth;\n var w = b[1][0] - l + hFrameWidth;\n var h = b[1][1] - t + hFrameWidth;\n Drawing.setRect(this.clipRect, l, t, w, h);\n this.bgRect.call(Drawing.setRect, l, t, w, h).call(Color2.fill, geoLayout.bgcolor);\n this.xaxis._offset = l;\n this.xaxis._length = w;\n this.yaxis._offset = t;\n this.yaxis._length = h;\n };\n proto.updateFx = function(fullLayout, geoLayout) {\n var _this = this;\n var gd = _this.graphDiv;\n var bgRect = _this.bgRect;\n var dragMode = fullLayout.dragmode;\n var clickMode = fullLayout.clickmode;\n if (_this.isStatic) return;\n function zoomReset() {\n var viewInitial = _this.viewInitial;\n var updateObj = {};\n for (var k in viewInitial) {\n updateObj[_this.id + \".\" + k] = viewInitial[k];\n }\n Registry.call(\"_guiRelayout\", gd, updateObj);\n gd.emit(\"plotly_doubleclick\", null);\n }\n function invert(lonlat) {\n return _this.projection.invert([\n lonlat[0] + _this.xaxis._offset,\n lonlat[1] + _this.yaxis._offset\n ]);\n }\n var fillRangeItems = function(eventData, poly) {\n if (poly.isRect) {\n var ranges = eventData.range = {};\n ranges[_this.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n } else {\n var dataPts = eventData.lassoPoints = {};\n dataPts[_this.id] = poly.map(invert);\n }\n };\n var dragOptions = {\n element: _this.bgRect.node(),\n gd,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis,\n fillRangeItems\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis],\n subplot: _this.id,\n clickFn: function(numClicks) {\n if (numClicks === 2) {\n clearOutline(gd);\n }\n }\n };\n if (dragMode === \"pan\") {\n bgRect.node().onmousedown = null;\n bgRect.call(createGeoZoom(_this, geoLayout));\n bgRect.on(\"dblclick.zoom\", zoomReset);\n if (!gd._context._scrollZoom.geo) {\n bgRect.on(\"wheel.zoom\", null);\n }\n } else if (dragMode === \"select\" || dragMode === \"lasso\") {\n bgRect.on(\".zoom\", null);\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n dragElement.init(dragOptions);\n }\n bgRect.on(\"mousemove\", function() {\n var lonlat = _this.projection.invert(Lib.getPositionFromD3Event());\n if (!lonlat) {\n return dragElement.unhover(gd, d3.event);\n }\n _this.xaxis.p2c = function() {\n return lonlat[0];\n };\n _this.yaxis.p2c = function() {\n return lonlat[1];\n };\n Fx.hover(gd, d3.event, _this.id);\n });\n bgRect.on(\"mouseout\", function() {\n if (gd._dragging) return;\n dragElement.unhover(gd, d3.event);\n });\n bgRect.on(\"click\", function() {\n if (dragMode !== \"select\" && dragMode !== \"lasso\") {\n if (clickMode.indexOf(\"select\") > -1) {\n selectOnClick(\n d3.event,\n gd,\n [_this.xaxis],\n [_this.yaxis],\n _this.id,\n dragOptions\n );\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, d3.event);\n }\n }\n });\n };\n proto.makeFramework = function() {\n var _this = this;\n var gd = _this.graphDiv;\n var fullLayout = gd._fullLayout;\n var clipId = \"clip\" + fullLayout._uid + _this.id;\n _this.clipDef = fullLayout._clips.append(\"clipPath\").attr(\"id\", clipId);\n _this.clipRect = _this.clipDef.append(\"rect\");\n _this.framework = d3.select(_this.container).append(\"g\").attr(\"class\", \"geo \" + _this.id).call(Drawing.setClipUrl, clipId, gd);\n _this.project = function(v) {\n var px = _this.projection(v);\n return px ? [px[0] - _this.xaxis._offset, px[1] - _this.yaxis._offset] : [null, null];\n };\n _this.xaxis = {\n _id: \"x\",\n c2p: function(v) {\n return _this.project(v)[0];\n }\n };\n _this.yaxis = {\n _id: \"y\",\n c2p: function(v) {\n return _this.project(v)[1];\n }\n };\n _this.mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(_this.mockAxis, fullLayout);\n };\n proto.saveViewInitial = function(geoLayout) {\n var center = geoLayout.center || {};\n var projLayout = geoLayout.projection;\n var rotation = projLayout.rotation || {};\n this.viewInitial = {\n fitbounds: geoLayout.fitbounds,\n \"projection.scale\": projLayout.scale\n };\n var extra;\n if (geoLayout._isScoped) {\n extra = {\n \"center.lon\": center.lon,\n \"center.lat\": center.lat\n };\n } else if (geoLayout._isClipped) {\n extra = {\n \"projection.rotation.lon\": rotation.lon,\n \"projection.rotation.lat\": rotation.lat\n };\n } else {\n extra = {\n \"center.lon\": center.lon,\n \"center.lat\": center.lat,\n \"projection.rotation.lon\": rotation.lon\n };\n }\n Lib.extendFlat(this.viewInitial, extra);\n };\n proto.render = function(mayRedrawOnUpdates) {\n if (this._hasMarkerAngles && mayRedrawOnUpdates) {\n this.plot(this._geoCalcData, this._fullLayout, [], true);\n } else {\n this._render();\n }\n };\n proto._render = function() {\n var projection = this.projection;\n var pathFn = projection.getPath();\n var k;\n function translatePoints(d) {\n var lonlatPx = projection(d.lonlat);\n return lonlatPx ? strTranslate(lonlatPx[0], lonlatPx[1]) : null;\n }\n function hideShowPoints(d) {\n return projection.isLonLatOverEdges(d.lonlat) ? \"none\" : null;\n }\n for (k in this.basePaths) {\n this.basePaths[k].attr(\"d\", pathFn);\n }\n for (k in this.dataPaths) {\n this.dataPaths[k].attr(\"d\", function(d) {\n return pathFn(d.geojson);\n });\n }\n for (k in this.dataPoints) {\n this.dataPoints[k].attr(\"display\", hideShowPoints).attr(\"transform\", translatePoints);\n }\n };\n function getProjection(geoLayout) {\n var projLayout = geoLayout.projection;\n var projType = projLayout.type;\n var projName = constants.projNames[projType];\n projName = \"geo\" + Lib.titleCase(projName);\n var projFn = geo[projName] || geoProjection[projName];\n var projection = projFn();\n var clipAngle = geoLayout._isSatellite ? Math.acos(1 / projLayout.distance) * 180 / Math.PI : geoLayout._isClipped ? constants.lonaxisSpan[projType] / 2 : null;\n var methods = [\"center\", \"rotate\", \"parallels\", \"clipExtent\"];\n var dummyFn = function(_) {\n return _ ? projection : [];\n };\n for (var i = 0; i < methods.length; i++) {\n var m = methods[i];\n if (typeof projection[m] !== \"function\") {\n projection[m] = dummyFn;\n }\n }\n projection.isLonLatOverEdges = function(lonlat) {\n if (projection(lonlat) === null) {\n return true;\n }\n if (clipAngle) {\n var r = projection.rotate();\n var angle = geoDistance(lonlat, [-r[0], -r[1]]);\n var maxAngle = clipAngle * Math.PI / 180;\n return angle > maxAngle;\n } else {\n return false;\n }\n };\n projection.getPath = function() {\n return geoPath().projection(projection);\n };\n projection.getBounds = function(object) {\n return projection.getPath().bounds(object);\n };\n projection.precision(constants.precision);\n if (geoLayout._isSatellite) {\n projection.tilt(projLayout.tilt).distance(projLayout.distance);\n }\n if (clipAngle) {\n projection.clipAngle(clipAngle - constants.clipPad);\n }\n return projection;\n }\n function makeGraticule(axisName, geoLayout, fullLayout) {\n var epsilon = 1e-6;\n var precision = 2.5;\n var axLayout = geoLayout[axisName];\n var scopeDefaults = constants.scopeDefaults[geoLayout.scope];\n var rng;\n var oppRng;\n var coordFn;\n if (axisName === \"lonaxis\") {\n rng = scopeDefaults.lonaxisRange;\n oppRng = scopeDefaults.lataxisRange;\n coordFn = function(v2, l2) {\n return [v2, l2];\n };\n } else if (axisName === \"lataxis\") {\n rng = scopeDefaults.lataxisRange;\n oppRng = scopeDefaults.lonaxisRange;\n coordFn = function(v2, l2) {\n return [l2, v2];\n };\n }\n var dummyAx = {\n type: \"linear\",\n range: [rng[0], rng[1] - epsilon],\n tick0: axLayout.tick0,\n dtick: axLayout.dtick\n };\n Axes.setConvert(dummyAx, fullLayout);\n var vals = Axes.calcTicks(dummyAx);\n if (!geoLayout.isScoped && axisName === \"lonaxis\") {\n vals.pop();\n }\n var len = vals.length;\n var coords = new Array(len);\n for (var i = 0; i < len; i++) {\n var v = vals[i].x;\n var line = coords[i] = [];\n for (var l = oppRng[0]; l < oppRng[1] + precision; l += precision) {\n line.push(coordFn(v, l));\n }\n }\n return {\n type: \"MultiLineString\",\n coordinates: coords\n };\n }\n function makeRangeBox(lon, lat) {\n var clipPad = constants.clipPad;\n var lon0 = lon[0] + clipPad;\n var lon1 = lon[1] - clipPad;\n var lat0 = lat[0] + clipPad;\n var lat1 = lat[1] - clipPad;\n if (lon0 > 0 && lon1 < 0) lon1 += 360;\n var dlon4 = (lon1 - lon0) / 4;\n return {\n type: \"Polygon\",\n coordinates: [[\n [lon0, lat0],\n [lon0, lat1],\n [lon0 + dlon4, lat1],\n [lon0 + 2 * dlon4, lat1],\n [lon0 + 3 * dlon4, lat1],\n [lon1, lat1],\n [lon1, lat0],\n [lon1 - dlon4, lat0],\n [lon1 - 2 * dlon4, lat0],\n [lon1 - 3 * dlon4, lat0],\n [lon0, lat0]\n ]]\n };\n }\n }\n });\n\n // src/plots/geo/layout_attributes.js\n var require_layout_attributes18 = __commonJS({\n \"src/plots/geo/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var domainAttrs = require_domain().attributes;\n var dash = require_attributes4().dash;\n var constants = require_constants22();\n var overrideAll = require_edit_types().overrideAll;\n var sortObjectKeys = require_sort_object_keys();\n var geoAxesAttrs = {\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"number\" },\n { valType: \"number\" }\n ]\n },\n showgrid: {\n valType: \"boolean\",\n dflt: false\n },\n tick0: {\n valType: \"number\",\n dflt: 0\n },\n dtick: {\n valType: \"number\"\n },\n gridcolor: {\n valType: \"color\",\n dflt: colorAttrs.lightLine\n },\n gridwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n griddash: dash\n };\n var attrs = module.exports = overrideAll({\n domain: domainAttrs({ name: \"geo\" }, {}),\n fitbounds: {\n valType: \"enumerated\",\n values: [false, \"locations\", \"geojson\"],\n dflt: false,\n editType: \"plot\"\n },\n resolution: {\n valType: \"enumerated\",\n values: [110, 50],\n dflt: 110,\n coerceNumber: true\n },\n scope: {\n valType: \"enumerated\",\n values: sortObjectKeys(constants.scopeDefaults),\n dflt: \"world\"\n },\n projection: {\n type: {\n valType: \"enumerated\",\n values: sortObjectKeys(constants.projNames)\n },\n rotation: {\n lon: {\n valType: \"number\"\n },\n lat: {\n valType: \"number\"\n },\n roll: {\n valType: \"number\"\n }\n },\n tilt: {\n valType: \"number\",\n dflt: 0\n },\n distance: {\n valType: \"number\",\n min: 1.001,\n dflt: 2\n },\n parallels: {\n valType: \"info_array\",\n items: [\n { valType: \"number\" },\n { valType: \"number\" }\n ]\n },\n scale: {\n valType: \"number\",\n min: 0,\n dflt: 1\n }\n },\n center: {\n lon: {\n valType: \"number\"\n },\n lat: {\n valType: \"number\"\n }\n },\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n showcoastlines: {\n valType: \"boolean\"\n },\n coastlinecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n coastlinewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showland: {\n valType: \"boolean\",\n dflt: false\n },\n landcolor: {\n valType: \"color\",\n dflt: constants.landColor\n },\n showocean: {\n valType: \"boolean\",\n dflt: false\n },\n oceancolor: {\n valType: \"color\",\n dflt: constants.waterColor\n },\n showlakes: {\n valType: \"boolean\",\n dflt: false\n },\n lakecolor: {\n valType: \"color\",\n dflt: constants.waterColor\n },\n showrivers: {\n valType: \"boolean\",\n dflt: false\n },\n rivercolor: {\n valType: \"color\",\n dflt: constants.waterColor\n },\n riverwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showcountries: {\n valType: \"boolean\"\n },\n countrycolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n countrywidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showsubunits: {\n valType: \"boolean\"\n },\n subunitcolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n subunitwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n showframe: {\n valType: \"boolean\"\n },\n framecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine\n },\n framewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1\n },\n bgcolor: {\n valType: \"color\",\n dflt: colorAttrs.background\n },\n lonaxis: geoAxesAttrs,\n lataxis: geoAxesAttrs\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/plots/geo/layout_defaults.js\n var require_layout_defaults16 = __commonJS({\n \"src/plots/geo/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var getSubplotData = require_get_data().getSubplotData;\n var constants = require_constants22();\n var layoutAttributes = require_layout_attributes18();\n var axesNames = constants.axesNames;\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"geo\",\n attributes: layoutAttributes,\n handleDefaults: handleGeoDefaults,\n fullData,\n partition: \"y\"\n });\n };\n function handleGeoDefaults(geoLayoutIn, geoLayoutOut, coerce, opts) {\n var subplotData = getSubplotData(opts.fullData, \"geo\", opts.id);\n var traceIndices = subplotData.map(function(t) {\n return t.index;\n });\n var resolution = coerce(\"resolution\");\n var scope = coerce(\"scope\");\n var scopeParams = constants.scopeDefaults[scope];\n var projType = coerce(\"projection.type\", scopeParams.projType);\n var isAlbersUsa = geoLayoutOut._isAlbersUsa = projType === \"albers usa\";\n if (isAlbersUsa) scope = geoLayoutOut.scope = \"usa\";\n var isScoped = geoLayoutOut._isScoped = scope !== \"world\";\n var isSatellite = geoLayoutOut._isSatellite = projType === \"satellite\";\n var isConic = geoLayoutOut._isConic = projType.indexOf(\"conic\") !== -1 || projType === \"albers\";\n var isClipped = geoLayoutOut._isClipped = !!constants.lonaxisSpan[projType];\n if (geoLayoutIn.visible === false) {\n var newTemplate = Lib.extendDeep({}, geoLayoutOut._template);\n newTemplate.showcoastlines = false;\n newTemplate.showcountries = false;\n newTemplate.showframe = false;\n newTemplate.showlakes = false;\n newTemplate.showland = false;\n newTemplate.showocean = false;\n newTemplate.showrivers = false;\n newTemplate.showsubunits = false;\n if (newTemplate.lonaxis) newTemplate.lonaxis.showgrid = false;\n if (newTemplate.lataxis) newTemplate.lataxis.showgrid = false;\n geoLayoutOut._template = newTemplate;\n }\n var visible = coerce(\"visible\");\n var show;\n for (var i = 0; i < axesNames.length; i++) {\n var axisName = axesNames[i];\n var dtickDflt = [30, 10][i];\n var rangeDflt;\n if (isScoped) {\n rangeDflt = scopeParams[axisName + \"Range\"];\n } else {\n var dfltSpans = constants[axisName + \"Span\"];\n var hSpan = (dfltSpans[projType] || dfltSpans[\"*\"]) / 2;\n var rot = coerce(\n \"projection.rotation.\" + axisName.substr(0, 3),\n scopeParams.projRotate[i]\n );\n rangeDflt = [rot - hSpan, rot + hSpan];\n }\n var range = coerce(axisName + \".range\", rangeDflt);\n coerce(axisName + \".tick0\");\n coerce(axisName + \".dtick\", dtickDflt);\n show = coerce(axisName + \".showgrid\", !visible ? false : void 0);\n if (show) {\n coerce(axisName + \".gridcolor\");\n coerce(axisName + \".gridwidth\");\n coerce(axisName + \".griddash\");\n }\n geoLayoutOut[axisName]._ax = {\n type: \"linear\",\n _id: axisName.slice(0, 3),\n _traceIndices: traceIndices,\n setScale: Lib.identity,\n c2l: Lib.identity,\n r2l: Lib.identity,\n autorange: true,\n range: range.slice(),\n _m: 1,\n _input: {}\n };\n }\n var lonRange = geoLayoutOut.lonaxis.range;\n var latRange = geoLayoutOut.lataxis.range;\n var lon0 = lonRange[0];\n var lon1 = lonRange[1];\n if (lon0 > 0 && lon1 < 0) lon1 += 360;\n var centerLon = (lon0 + lon1) / 2;\n var projLon;\n if (!isAlbersUsa) {\n var dfltProjRotate = isScoped ? scopeParams.projRotate : [centerLon, 0, 0];\n projLon = coerce(\"projection.rotation.lon\", dfltProjRotate[0]);\n coerce(\"projection.rotation.lat\", dfltProjRotate[1]);\n coerce(\"projection.rotation.roll\", dfltProjRotate[2]);\n show = coerce(\"showcoastlines\", !isScoped && visible);\n if (show) {\n coerce(\"coastlinecolor\");\n coerce(\"coastlinewidth\");\n }\n show = coerce(\"showocean\", !visible ? false : void 0);\n if (show) coerce(\"oceancolor\");\n }\n var centerLonDflt;\n var centerLatDflt;\n if (isAlbersUsa) {\n centerLonDflt = -96.6;\n centerLatDflt = 38.7;\n } else {\n centerLonDflt = isScoped ? centerLon : projLon;\n centerLatDflt = (latRange[0] + latRange[1]) / 2;\n }\n coerce(\"center.lon\", centerLonDflt);\n coerce(\"center.lat\", centerLatDflt);\n if (isSatellite) {\n coerce(\"projection.tilt\");\n coerce(\"projection.distance\");\n }\n if (isConic) {\n var dfltProjParallels = scopeParams.projParallels || [0, 60];\n coerce(\"projection.parallels\", dfltProjParallels);\n }\n coerce(\"projection.scale\");\n show = coerce(\"showland\", !visible ? false : void 0);\n if (show) coerce(\"landcolor\");\n show = coerce(\"showlakes\", !visible ? false : void 0);\n if (show) coerce(\"lakecolor\");\n show = coerce(\"showrivers\", !visible ? false : void 0);\n if (show) {\n coerce(\"rivercolor\");\n coerce(\"riverwidth\");\n }\n show = coerce(\"showcountries\", isScoped && scope !== \"usa\" && visible);\n if (show) {\n coerce(\"countrycolor\");\n coerce(\"countrywidth\");\n }\n if (scope === \"usa\" || scope === \"north america\" && resolution === 50) {\n coerce(\"showsubunits\", visible);\n coerce(\"subunitcolor\");\n coerce(\"subunitwidth\");\n }\n if (!isScoped) {\n show = coerce(\"showframe\", visible);\n if (show) {\n coerce(\"framecolor\");\n coerce(\"framewidth\");\n }\n }\n coerce(\"bgcolor\");\n var fitBounds = coerce(\"fitbounds\");\n if (fitBounds) {\n delete geoLayoutOut.projection.scale;\n if (isScoped) {\n delete geoLayoutOut.center.lon;\n delete geoLayoutOut.center.lat;\n } else if (isClipped) {\n delete geoLayoutOut.center.lon;\n delete geoLayoutOut.center.lat;\n delete geoLayoutOut.projection.rotation.lon;\n delete geoLayoutOut.projection.rotation.lat;\n delete geoLayoutOut.lonaxis.range;\n delete geoLayoutOut.lataxis.range;\n } else {\n delete geoLayoutOut.center.lon;\n delete geoLayoutOut.center.lat;\n delete geoLayoutOut.projection.rotation.lon;\n }\n }\n }\n }\n });\n\n // src/plots/geo/index.js\n var require_geo2 = __commonJS({\n \"src/plots/geo/index.js\"(exports, module) {\n \"use strict\";\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var createGeo = require_geo();\n var GEO = \"geo\";\n var counter = counterRegex(GEO);\n var attributes = {};\n attributes[GEO] = {\n valType: \"subplotid\",\n dflt: GEO,\n editType: \"calc\"\n };\n function plotGeo(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var geoIds = fullLayout._subplots[GEO];\n for (var i = 0; i < geoIds.length; i++) {\n var geoId = geoIds[i];\n var geoCalcData = getSubplotCalcData(calcData, GEO, geoId);\n var geoLayout = fullLayout[geoId];\n var geo = geoLayout._subplot;\n if (!geo) {\n geo = createGeo({\n id: geoId,\n graphDiv: gd,\n container: fullLayout._geolayer.node(),\n topojsonURL: gd._context.topojsonURL,\n staticPlot: gd._context.staticPlot\n });\n fullLayout[geoId]._subplot = geo;\n }\n geo.plot(geoCalcData, fullLayout, gd._promises);\n }\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldGeoKeys = oldFullLayout._subplots[GEO] || [];\n for (var i = 0; i < oldGeoKeys.length; i++) {\n var oldGeoKey = oldGeoKeys[i];\n var oldGeo = oldFullLayout[oldGeoKey]._subplot;\n if (!newFullLayout[oldGeoKey] && !!oldGeo) {\n oldGeo.framework.remove();\n oldGeo.clipDef.remove();\n }\n }\n }\n function updateFx(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[GEO];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotLayout = fullLayout[subplotIds[i]];\n var subplotObj = subplotLayout._subplot;\n subplotObj.updateFx(fullLayout, subplotLayout);\n }\n }\n module.exports = {\n attr: GEO,\n name: GEO,\n idRoot: GEO,\n idRegex: counter,\n attrRegex: counter,\n attributes,\n layoutAttributes: require_layout_attributes18(),\n supplyLayoutDefaults: require_layout_defaults16(),\n plot: plotGeo,\n updateFx,\n clean\n };\n }\n });\n\n // src/traces/scattergeo/index.js\n var require_scattergeo = __commonJS({\n \"src/traces/scattergeo/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes48(),\n supplyDefaults: require_defaults44(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels3(),\n calc: require_calc27(),\n calcGeoJSON: require_plot17().calcGeoJSON,\n plot: require_plot17().plot,\n style: require_style17(),\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover14(),\n eventData: require_event_data9(),\n selectPoints: require_select5(),\n moduleType: \"trace\",\n name: \"scattergeo\",\n basePlotModule: require_geo2(),\n categories: [\"geo\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scattergeo.js\n var require_scattergeo2 = __commonJS({\n \"lib/scattergeo.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattergeo();\n }\n });\n\n // src/traces/choropleth/attributes.js\n var require_attributes49 = __commonJS({\n \"src/traces/choropleth/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var scatterGeoAttrs = require_attributes48();\n var colorScaleAttrs = require_attributes8();\n var baseAttrs = require_attributes2();\n var defaultLine = require_attributes3().defaultLine;\n var extendFlat = require_extend().extendFlat;\n var scatterGeoMarkerLineAttrs = scatterGeoAttrs.marker.line;\n module.exports = extendFlat(\n {\n locations: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n locationmode: scatterGeoAttrs.locationmode,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n geojson: extendFlat({}, scatterGeoAttrs.geojson, {}),\n featureidkey: scatterGeoAttrs.featureidkey,\n text: extendFlat({}, scatterGeoAttrs.text, {}),\n hovertext: extendFlat({}, scatterGeoAttrs.hovertext, {}),\n marker: {\n line: {\n color: extendFlat({}, scatterGeoMarkerLineAttrs.color, { dflt: defaultLine }),\n width: extendFlat({}, scatterGeoMarkerLineAttrs.width, { dflt: 1 }),\n editType: \"calc\"\n },\n opacity: {\n valType: \"number\",\n arrayOk: true,\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"style\"\n },\n editType: \"calc\"\n },\n selected: {\n marker: {\n opacity: scatterGeoAttrs.selected.marker.opacity,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n unselected: {\n marker: {\n opacity: scatterGeoAttrs.unselected.marker.opacity,\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n editType: \"calc\",\n flags: [\"location\", \"z\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/choropleth/defaults.js\n var require_defaults45 = __commonJS({\n \"src/traces/choropleth/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes49();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var z = coerce(\"z\");\n if (!(locations && locations.length && Lib.isArrayOrTypedArray(z) && z.length)) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = Math.min(locations.length, z.length);\n var geojson = coerce(\"geojson\");\n var locationmodeDflt;\n if (typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson)) {\n locationmodeDflt = \"geojson-id\";\n }\n var locationMode = coerce(\"locationmode\", locationmodeDflt);\n if (locationMode === \"geojson-id\") {\n coerce(\"featureidkey\");\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var mlw = coerce(\"marker.line.width\");\n if (mlw) coerce(\"marker.line.color\");\n coerce(\"marker.opacity\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/choropleth/calc.js\n var require_calc28 = __commonJS({\n \"src/traces/choropleth/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var colorscaleCalc = require_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n function isNonBlankString(v) {\n return v && typeof v === \"string\";\n }\n module.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var isValidLoc;\n if (trace.geojson) {\n isValidLoc = function(v) {\n return isNonBlankString(v) || isNumeric(v);\n };\n } else {\n isValidLoc = isNonBlankString;\n }\n for (var i = 0; i < len; i++) {\n var calcPt = calcTrace[i] = {};\n var loc = trace.locations[i];\n var z = trace.z[i];\n if (isValidLoc(loc) && isNumeric(z)) {\n calcPt.loc = loc;\n calcPt.z = z;\n } else {\n calcPt.loc = null;\n calcPt.z = BADNUM;\n }\n calcPt.index = i;\n }\n arraysToCalcdata(calcTrace, trace);\n colorscaleCalc(gd, trace, {\n vals: trace.z,\n containerStr: \"\",\n cLetter: \"z\"\n });\n calcSelection(calcTrace, trace);\n return calcTrace;\n };\n }\n });\n\n // src/traces/choropleth/style.js\n var require_style18 = __commonJS({\n \"src/traces/choropleth/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Colorscale = require_colorscale();\n function style(gd, calcTrace) {\n if (calcTrace) styleTrace(gd, calcTrace);\n }\n function styleTrace(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var s = calcTrace[0].node3;\n var locs = s.selectAll(\".choroplethlocation\");\n var marker = trace.marker || {};\n var markerLine = marker.line || {};\n var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace);\n locs.each(function(d) {\n d3.select(this).attr(\"fill\", sclFunc(d.z)).call(Color2.stroke, d.mlc || markerLine.color).call(Drawing.dashLine, \"\", d.mlw || markerLine.width || 0).style(\"opacity\", marker.opacity);\n });\n Drawing.selectedPointStyle(locs, trace);\n }\n function styleOnSelect(gd, calcTrace) {\n var s = calcTrace[0].node3;\n var trace = calcTrace[0].trace;\n if (trace.selectedpoints) {\n Drawing.selectedPointStyle(s.selectAll(\".choroplethlocation\"), trace);\n } else {\n styleTrace(gd, calcTrace);\n }\n }\n module.exports = {\n style,\n styleOnSelect\n };\n }\n });\n\n // src/traces/choropleth/plot.js\n var require_plot18 = __commonJS({\n \"src/traces/choropleth/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var geoUtils = require_geo_location_utils();\n var getTopojsonFeatures = require_topojson_utils().getTopojsonFeatures;\n var findExtremes = require_autorange().findExtremes;\n var style = require_style18().style;\n function plot(gd, geo, calcData) {\n var choroplethLayer = geo.layers.backplot.select(\".choroplethlayer\");\n Lib.makeTraceGroups(choroplethLayer, calcData, \"trace choropleth\").each(function(calcTrace) {\n var sel = d3.select(this);\n var paths = sel.selectAll(\"path.choroplethlocation\").data(Lib.identity);\n paths.enter().append(\"path\").classed(\"choroplethlocation\", true);\n paths.exit().remove();\n style(gd, calcTrace);\n });\n }\n function calcGeoJSON(calcTrace, fullLayout) {\n var trace = calcTrace[0].trace;\n var geoLayout = fullLayout[trace.geo];\n var geo = geoLayout._subplot;\n var locationmode = trace.locationmode;\n var len = trace._length;\n var features = locationmode === \"geojson-id\" ? geoUtils.extractTraceFeature(calcTrace) : getTopojsonFeatures(trace, geo.topojson);\n var lonArray = [];\n var latArray = [];\n for (var i = 0; i < len; i++) {\n var calcPt = calcTrace[i];\n var feature = locationmode === \"geojson-id\" ? calcPt.fOut : geoUtils.locationToFeature(locationmode, calcPt.loc, features);\n if (feature) {\n calcPt.geojson = feature;\n calcPt.ct = feature.properties.ct;\n calcPt._polygons = geoUtils.feature2polygons(feature);\n var bboxFeature = geoUtils.computeBbox(feature);\n lonArray.push(bboxFeature[0], bboxFeature[2]);\n latArray.push(bboxFeature[1], bboxFeature[3]);\n } else {\n calcPt.geojson = null;\n }\n }\n if (geoLayout.fitbounds === \"geojson\" && locationmode === \"geojson-id\") {\n var bboxGeojson = geoUtils.computeBbox(geoUtils.getTraceGeojson(trace));\n lonArray = [bboxGeojson[0], bboxGeojson[2]];\n latArray = [bboxGeojson[1], bboxGeojson[3]];\n }\n var opts = { padded: true };\n trace._extremes.lon = findExtremes(geoLayout.lonaxis._ax, lonArray, opts);\n trace._extremes.lat = findExtremes(geoLayout.lataxis._ax, latArray, opts);\n }\n module.exports = {\n calcGeoJSON,\n plot\n };\n }\n });\n\n // src/traces/choropleth/hover.js\n var require_hover15 = __commonJS({\n \"src/traces/choropleth/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var attributes = require_attributes49();\n var fillText = require_lib().fillText;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var geo = pointData.subplot;\n var pt, i, j, isInside;\n var xy = [xval, yval];\n var altXy = [xval + 360, yval];\n for (i = 0; i < cd.length; i++) {\n pt = cd[i];\n isInside = false;\n if (pt._polygons) {\n for (j = 0; j < pt._polygons.length; j++) {\n if (pt._polygons[j].contains(xy)) {\n isInside = !isInside;\n }\n if (pt._polygons[j].contains(altXy)) {\n isInside = !isInside;\n }\n }\n if (isInside) break;\n }\n }\n if (!isInside || !pt) return;\n pointData.x0 = pointData.x1 = pointData.xa.c2p(pt.ct);\n pointData.y0 = pointData.y1 = pointData.ya.c2p(pt.ct);\n pointData.index = pt.index;\n pointData.location = pt.loc;\n pointData.z = pt.z;\n pointData.zLabel = Axes.tickText(geo.mockAxis, geo.mockAxis.c2l(pt.z), \"hover\").text;\n pointData.hovertemplate = pt.hovertemplate;\n makeHoverInfo(pointData, trace, pt);\n return [pointData];\n };\n function makeHoverInfo(pointData, trace, pt) {\n if (trace.hovertemplate) return;\n var hoverinfo = pt.hi || trace.hoverinfo;\n var loc = String(pt.loc);\n var parts = hoverinfo === \"all\" ? attributes.hoverinfo.flags : hoverinfo.split(\"+\");\n var hasName = parts.indexOf(\"name\") !== -1;\n var hasLocation = parts.indexOf(\"location\") !== -1;\n var hasZ = parts.indexOf(\"z\") !== -1;\n var hasText = parts.indexOf(\"text\") !== -1;\n var hasIdAsNameLabel = !hasName && hasLocation;\n var text = [];\n if (hasIdAsNameLabel) {\n pointData.nameOverride = loc;\n } else {\n if (hasName) pointData.nameOverride = trace.name;\n if (hasLocation) text.push(loc);\n }\n if (hasZ) {\n text.push(pointData.zLabel);\n }\n if (hasText) {\n fillText(pt, trace, text);\n }\n pointData.extraText = text.join(\"
\");\n }\n }\n });\n\n // src/traces/choropleth/event_data.js\n var require_event_data10 = __commonJS({\n \"src/traces/choropleth/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n out.location = pt.location;\n out.z = pt.z;\n var cdi = cd[pointNumber];\n if (cdi.fIn && cdi.fIn.properties) {\n out.properties = cdi.fIn.properties;\n }\n out.ct = cdi.ct;\n return out;\n };\n }\n });\n\n // src/traces/choropleth/select.js\n var require_select6 = __commonJS({\n \"src/traces/choropleth/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i, di, ct, x, y;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n di = cd[i];\n ct = di.ct;\n if (!ct) continue;\n x = xa.c2p(ct);\n y = ya.c2p(ct);\n if (selectionTester.contains([x, y], null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: ct[0],\n lat: ct[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/choropleth/index.js\n var require_choropleth = __commonJS({\n \"src/traces/choropleth/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes49(),\n supplyDefaults: require_defaults45(),\n colorbar: require_colorbar2(),\n calc: require_calc28(),\n calcGeoJSON: require_plot18().calcGeoJSON,\n plot: require_plot18().plot,\n style: require_style18().style,\n styleOnSelect: require_style18().styleOnSelect,\n hoverPoints: require_hover15(),\n eventData: require_event_data10(),\n selectPoints: require_select6(),\n moduleType: \"trace\",\n name: \"choropleth\",\n basePlotModule: require_geo2(),\n categories: [\"geo\", \"noOpacity\", \"showLegend\"],\n meta: {}\n };\n }\n });\n\n // lib/choropleth.js\n var require_choropleth2 = __commonJS({\n \"lib/choropleth.js\"(exports, module) {\n \"use strict\";\n module.exports = require_choropleth();\n }\n });\n\n // src/traces/scattergl/hover.js\n var require_hover16 = __commonJS({\n \"src/traces/scattergl/hover.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n var getTraceColor = require_get_trace_color();\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var x = stash.x;\n var y = stash.y;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n var ids;\n if (stash.tree) {\n var xl = xa.p2c(xpx - maxDistance);\n var xr = xa.p2c(xpx + maxDistance);\n var yl = ya.p2c(ypx - maxDistance);\n var yr = ya.p2c(ypx + maxDistance);\n if (hovermode === \"x\") {\n ids = stash.tree.range(\n Math.min(xl, xr),\n Math.min(ya._rl[0], ya._rl[1]),\n Math.max(xl, xr),\n Math.max(ya._rl[0], ya._rl[1])\n );\n } else {\n ids = stash.tree.range(\n Math.min(xl, xr),\n Math.min(yl, yr),\n Math.max(xl, xr),\n Math.max(yl, yr)\n );\n }\n } else {\n ids = stash.ids;\n }\n var k, closestId, ptx, pty, i, dx, dy, dist, dxy;\n var minDist = maxDistance;\n if (hovermode === \"x\") {\n var xPeriod = !!trace.xperiodalignment;\n var yPeriod = !!trace.yperiodalignment;\n for (i = 0; i < ids.length; i++) {\n k = ids[i];\n ptx = x[k];\n dx = Math.abs(xa.c2p(ptx) - xpx);\n if (xPeriod) {\n var x0 = xa.c2p(trace._xStarts[k]);\n var x1 = xa.c2p(trace._xEnds[k]);\n dx = xpx >= Math.min(x0, x1) && xpx <= Math.max(x0, x1) ? 0 : Infinity;\n }\n if (dx < minDist) {\n minDist = dx;\n pty = y[k];\n dy = ya.c2p(pty) - ypx;\n if (yPeriod) {\n var y0 = ya.c2p(trace._yStarts[k]);\n var y1 = ya.c2p(trace._yEnds[k]);\n dy = ypx >= Math.min(y0, y1) && ypx <= Math.max(y0, y1) ? 0 : Infinity;\n }\n dxy = Math.sqrt(dx * dx + dy * dy);\n closestId = ids[i];\n }\n }\n } else {\n for (i = ids.length - 1; i > -1; i--) {\n k = ids[i];\n ptx = x[k];\n pty = y[k];\n dx = xa.c2p(ptx) - xpx;\n dy = ya.c2p(pty) - ypx;\n dist = Math.sqrt(dx * dx + dy * dy);\n if (dist < minDist) {\n minDist = dxy = dist;\n closestId = k;\n }\n }\n }\n pointData.index = closestId;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n if (closestId === void 0) return [pointData];\n return [calcHover(pointData, x, y, trace)];\n }\n function calcHover(pointData, x, y, trace) {\n var xa = pointData.xa;\n var ya = pointData.ya;\n var minDist = pointData.distance;\n var dxy = pointData.dxy;\n var id = pointData.index;\n var di = {\n pointNumber: id,\n x: x[id],\n y: y[id]\n };\n di.tx = Lib.isArrayOrTypedArray(trace.text) ? trace.text[id] : trace.text;\n di.htx = Array.isArray(trace.hovertext) ? trace.hovertext[id] : trace.hovertext;\n di.data = Array.isArray(trace.customdata) ? trace.customdata[id] : trace.customdata;\n di.tp = Array.isArray(trace.textposition) ? trace.textposition[id] : trace.textposition;\n var font = trace.textfont;\n if (font) {\n di.ts = Lib.isArrayOrTypedArray(font.size) ? font.size[id] : font.size;\n di.tc = Lib.isArrayOrTypedArray(font.color) ? font.color[id] : font.color;\n di.tf = Array.isArray(font.family) ? font.family[id] : font.family;\n di.tw = Array.isArray(font.weight) ? font.weight[id] : font.weight;\n di.ty = Array.isArray(font.style) ? font.style[id] : font.style;\n di.tv = Array.isArray(font.variant) ? font.variant[id] : font.variant;\n }\n var marker = trace.marker;\n if (marker) {\n di.ms = Lib.isArrayOrTypedArray(marker.size) ? marker.size[id] : marker.size;\n di.mo = Lib.isArrayOrTypedArray(marker.opacity) ? marker.opacity[id] : marker.opacity;\n di.mx = Lib.isArrayOrTypedArray(marker.symbol) ? marker.symbol[id] : marker.symbol;\n di.ma = Lib.isArrayOrTypedArray(marker.angle) ? marker.angle[id] : marker.angle;\n di.mc = Lib.isArrayOrTypedArray(marker.color) ? marker.color[id] : marker.color;\n }\n var line = marker && marker.line;\n if (line) {\n di.mlc = Array.isArray(line.color) ? line.color[id] : line.color;\n di.mlw = Lib.isArrayOrTypedArray(line.width) ? line.width[id] : line.width;\n }\n var grad = marker && marker.gradient;\n if (grad && grad.type !== \"none\") {\n di.mgt = Array.isArray(grad.type) ? grad.type[id] : grad.type;\n di.mgc = Array.isArray(grad.color) ? grad.color[id] : grad.color;\n }\n var xp = xa.c2p(di.x, true);\n var yp = ya.c2p(di.y, true);\n var rad = di.mrc || 1;\n var hoverlabel = trace.hoverlabel;\n if (hoverlabel) {\n di.hbg = Array.isArray(hoverlabel.bgcolor) ? hoverlabel.bgcolor[id] : hoverlabel.bgcolor;\n di.hbc = Array.isArray(hoverlabel.bordercolor) ? hoverlabel.bordercolor[id] : hoverlabel.bordercolor;\n di.hts = Lib.isArrayOrTypedArray(hoverlabel.font.size) ? hoverlabel.font.size[id] : hoverlabel.font.size;\n di.htc = Array.isArray(hoverlabel.font.color) ? hoverlabel.font.color[id] : hoverlabel.font.color;\n di.htf = Array.isArray(hoverlabel.font.family) ? hoverlabel.font.family[id] : hoverlabel.font.family;\n di.hnl = Lib.isArrayOrTypedArray(hoverlabel.namelength) ? hoverlabel.namelength[id] : hoverlabel.namelength;\n }\n var hoverinfo = trace.hoverinfo;\n if (hoverinfo) {\n di.hi = Array.isArray(hoverinfo) ? hoverinfo[id] : hoverinfo;\n }\n var hovertemplate = trace.hovertemplate;\n if (hovertemplate) {\n di.ht = Array.isArray(hovertemplate) ? hovertemplate[id] : hovertemplate;\n }\n var fakeCd = {};\n fakeCd[pointData.index] = di;\n var origX = trace._origX;\n var origY = trace._origY;\n var pointData2 = Lib.extendFlat({}, pointData, {\n color: getTraceColor(trace, di),\n x0: xp - rad,\n x1: xp + rad,\n xLabelVal: origX ? origX[id] : di.x,\n y0: yp - rad,\n y1: yp + rad,\n yLabelVal: origY ? origY[id] : di.y,\n cd: fakeCd,\n distance: minDist,\n spikeDistance: dxy,\n hovertemplate: di.ht\n });\n if (di.htx) pointData2.text = di.htx;\n else if (di.tx) pointData2.text = di.tx;\n else if (trace.text) pointData2.text = trace.text;\n Lib.fillText(di, trace, pointData2);\n Registry.getComponentMethod(\"errorbars\", \"hoverInfo\")(di, trace, pointData2);\n return pointData2;\n }\n module.exports = {\n hoverPoints,\n calcHover\n };\n }\n });\n\n // src/traces/scattergl/constants.js\n var require_constants23 = __commonJS({\n \"src/traces/scattergl/constants.js\"(exports, module) {\n \"use strict\";\n var SYMBOL_SIZE = 20;\n module.exports = {\n TOO_MANY_POINTS: 1e5,\n SYMBOL_SDF_SIZE: 200,\n SYMBOL_SIZE,\n SYMBOL_STROKE: SYMBOL_SIZE / 20,\n DOT_RE: /-dot/,\n OPEN_RE: /-open/,\n DASHES: {\n solid: [1],\n dot: [1, 1],\n dash: [4, 1],\n longdash: [8, 1],\n dashdot: [4, 1, 1, 1],\n longdashdot: [8, 1, 1, 1]\n }\n };\n }\n });\n\n // src/traces/scattergl/attributes.js\n var require_attributes50 = __commonJS({\n \"src/traces/scattergl/attributes.js\"(exports, module) {\n \"use strict\";\n var baseAttrs = require_attributes2();\n var fontAttrs = require_font_attributes();\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var colorScaleAttrs = require_attributes8();\n var sortObjectKeys = require_sort_object_keys();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var DASHES = require_constants23().DASHES;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var attrs = module.exports = overrideAll({\n x: scatterAttrs.x,\n x0: scatterAttrs.x0,\n dx: scatterAttrs.dx,\n y: scatterAttrs.y,\n y0: scatterAttrs.y0,\n dy: scatterAttrs.dy,\n xperiod: scatterAttrs.xperiod,\n yperiod: scatterAttrs.yperiod,\n xperiod0: scatterAttrs.xperiod0,\n yperiod0: scatterAttrs.yperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n yperiodalignment: scatterAttrs.yperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n text: scatterAttrs.text,\n hovertext: scatterAttrs.hovertext,\n textposition: scatterAttrs.textposition,\n textfont: fontAttrs({\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n editType: \"calc\",\n colorEditType: \"style\",\n arrayOk: true,\n noNumericWeightValues: true,\n variantValues: [\"normal\", \"small-caps\"]\n }),\n mode: {\n valType: \"flaglist\",\n flags: [\"lines\", \"markers\", \"text\"],\n extras: [\"none\"]\n },\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n shape: {\n valType: \"enumerated\",\n values: [\"linear\", \"hv\", \"vh\", \"hvh\", \"vhv\"],\n dflt: \"linear\",\n editType: \"plot\"\n },\n dash: {\n valType: \"enumerated\",\n values: sortObjectKeys(DASHES),\n dflt: \"solid\"\n }\n },\n marker: extendFlat({}, colorScaleAttrs(\"marker\"), {\n symbol: scatterMarkerAttrs.symbol,\n angle: scatterMarkerAttrs.angle,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: extendFlat({}, colorScaleAttrs(\"marker.line\"), {\n width: scatterMarkerLineAttrs.width\n })\n }),\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, { dflt: \"none\" }),\n fillcolor: makeFillcolorAttr(),\n // no hoveron\n selected: {\n marker: scatterAttrs.selected.marker,\n textfont: scatterAttrs.selected.textfont\n },\n unselected: {\n marker: scatterAttrs.unselected.marker,\n textfont: scatterAttrs.unselected.textfont\n },\n opacity: baseAttrs.opacity\n }, \"calc\", \"nested\");\n attrs.x.editType = attrs.y.editType = attrs.x0.editType = attrs.y0.editType = \"calc+clearAxisTypes\";\n attrs.hovertemplate = scatterAttrs.hovertemplate;\n attrs.texttemplate = scatterAttrs.texttemplate;\n }\n });\n\n // src/traces/scattergl/helpers.js\n var require_helpers16 = __commonJS({\n \"src/traces/scattergl/helpers.js\"(exports) {\n \"use strict\";\n var constants = require_constants23();\n exports.isOpenSymbol = function(symbol) {\n return typeof symbol === \"string\" ? constants.OPEN_RE.test(symbol) : symbol % 200 > 100;\n };\n exports.isDotSymbol = function(symbol) {\n return typeof symbol === \"string\" ? constants.DOT_RE.test(symbol) : symbol > 200;\n };\n }\n });\n\n // src/traces/scattergl/defaults.js\n var require_defaults46 = __commonJS({\n \"src/traces/scattergl/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Registry = require_registry();\n var helpers = require_helpers16();\n var attributes = require_attributes50();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleXYDefaults = require_xy_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var handleTextDefaults = require_text_defaults();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var isOpen = traceIn.marker ? helpers.isOpenSymbol(traceIn.marker.symbol) : false;\n var isBubble = subTypes.isBubble(traceIn);\n var len = handleXYDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce);\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n var defaultMode = len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noAngleRef: true, noStandOff: true });\n coerce(\"marker.line.width\", isOpen || isBubble ? 1 : 0);\n }\n if (subTypes.hasLines(traceOut)) {\n coerce(\"connectgaps\");\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce(\"line.shape\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce, {\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n }\n var lineColor = (traceOut.line || {}).color;\n var markerColor = (traceOut.marker || {}).color;\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n var errorBarsSupplyDefaults = Registry.getComponentMethod(\"errorbars\", \"supplyDefaults\");\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"y\" });\n errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, { axis: \"x\", inherit: \"y\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scattergl/format_labels.js\n var require_format_labels4 = __commonJS({\n \"src/traces/scattergl/format_labels.js\"(exports, module) {\n \"use strict\";\n var scatterFormatLabels = require_format_labels();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if (!(\"x\" in cdi)) cdi.x = trace._x[i];\n if (!(\"y\" in cdi)) cdi.y = trace._y[i];\n return scatterFormatLabels(cdi, trace, fullLayout);\n };\n }\n });\n\n // node_modules/binary-search-bounds/search-bounds.js\n var require_search_bounds = __commonJS({\n \"node_modules/binary-search-bounds/search-bounds.js\"(exports, module) {\n \"use strict\";\n function ge(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p >= 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n function gt(a, y, c, l, h) {\n var i = h + 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p > 0) {\n i = m;\n h = m - 1;\n } else {\n l = m + 1;\n }\n }\n return i;\n }\n function lt(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p < 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n function le(a, y, c, l, h) {\n var i = l - 1;\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p <= 0) {\n i = m;\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return i;\n }\n function eq(a, y, c, l, h) {\n while (l <= h) {\n var m = l + h >>> 1, x = a[m];\n var p = c !== void 0 ? c(x, y) : x - y;\n if (p === 0) {\n return m;\n }\n if (p <= 0) {\n l = m + 1;\n } else {\n h = m - 1;\n }\n }\n return -1;\n }\n function norm(a, y, c, l, h, f) {\n if (typeof c === \"function\") {\n return f(a, y, c, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0);\n }\n return f(a, y, void 0, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0);\n }\n module.exports = {\n ge: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, ge);\n },\n gt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, gt);\n },\n lt: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, lt);\n },\n le: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, le);\n },\n eq: function(a, y, c, l, h) {\n return norm(a, y, c, l, h, eq);\n }\n };\n }\n });\n\n // node_modules/pick-by-alias/index.js\n var require_pick_by_alias = __commonJS({\n \"node_modules/pick-by-alias/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function pick(src, props, keepRest) {\n var result = {}, prop, i;\n if (typeof props === \"string\") props = toList(props);\n if (Array.isArray(props)) {\n var res = {};\n for (i = 0; i < props.length; i++) {\n res[props[i]] = true;\n }\n props = res;\n }\n for (prop in props) {\n props[prop] = toList(props[prop]);\n }\n var occupied = {};\n for (prop in props) {\n var aliases = props[prop];\n if (Array.isArray(aliases)) {\n for (i = 0; i < aliases.length; i++) {\n var alias = aliases[i];\n if (keepRest) {\n occupied[alias] = true;\n }\n if (alias in src) {\n result[prop] = src[alias];\n if (keepRest) {\n for (var j = i; j < aliases.length; j++) {\n occupied[aliases[j]] = true;\n }\n }\n break;\n }\n }\n } else if (prop in src) {\n if (props[prop]) {\n result[prop] = src[prop];\n }\n if (keepRest) {\n occupied[prop] = true;\n }\n }\n }\n if (keepRest) {\n for (prop in src) {\n if (occupied[prop]) continue;\n result[prop] = src[prop];\n }\n }\n return result;\n };\n var CACHE = {};\n function toList(arg) {\n if (CACHE[arg]) return CACHE[arg];\n if (typeof arg === \"string\") {\n arg = CACHE[arg] = arg.split(/\\s*,\\s*|\\s+/);\n }\n return arg;\n }\n }\n });\n\n // node_modules/parse-rect/index.js\n var require_parse_rect = __commonJS({\n \"node_modules/parse-rect/index.js\"(exports, module) {\n \"use strict\";\n var pick = require_pick_by_alias();\n module.exports = parseRect;\n function parseRect(arg) {\n var rect;\n if (arguments.length > 1) {\n arg = arguments;\n }\n if (typeof arg === \"string\") {\n arg = arg.split(/\\s/).map(parseFloat);\n } else if (typeof arg === \"number\") {\n arg = [arg];\n }\n if (arg.length && typeof arg[0] === \"number\") {\n if (arg.length === 1) {\n rect = {\n width: arg[0],\n height: arg[0],\n x: 0,\n y: 0\n };\n } else if (arg.length === 2) {\n rect = {\n width: arg[0],\n height: arg[1],\n x: 0,\n y: 0\n };\n } else {\n rect = {\n x: arg[0],\n y: arg[1],\n width: arg[2] - arg[0] || 0,\n height: arg[3] - arg[1] || 0\n };\n }\n } else if (arg) {\n arg = pick(arg, {\n left: \"x l left Left\",\n top: \"y t top Top\",\n width: \"w width W Width\",\n height: \"h height W Width\",\n bottom: \"b bottom Bottom\",\n right: \"r right Right\"\n });\n rect = {\n x: arg.left || 0,\n y: arg.top || 0\n };\n if (arg.width == null) {\n if (arg.right) rect.width = arg.right - rect.x;\n else rect.width = 0;\n } else {\n rect.width = arg.width;\n }\n if (arg.height == null) {\n if (arg.bottom) rect.height = arg.bottom - rect.y;\n else rect.height = 0;\n } else {\n rect.height = arg.height;\n }\n }\n return rect;\n }\n }\n });\n\n // node_modules/array-bounds/index.js\n var require_array_bounds = __commonJS({\n \"node_modules/array-bounds/index.js\"(exports, module) {\n \"use strict\";\n module.exports = normalize;\n function normalize(arr, dim) {\n if (!arr || arr.length == null) throw Error(\"Argument should be an array\");\n if (dim == null) dim = 1;\n else dim = Math.floor(dim);\n var bounds = Array(dim * 2);\n for (var offset = 0; offset < dim; offset++) {\n var max = -Infinity, min = Infinity, i = offset, l = arr.length;\n for (; i < l; i += dim) {\n if (arr[i] > max) max = arr[i];\n if (arr[i] < min) min = arr[i];\n }\n bounds[offset] = min;\n bounds[dim + offset] = max;\n }\n return bounds;\n }\n }\n });\n\n // node_modules/defined/index.js\n var require_defined = __commonJS({\n \"node_modules/defined/index.js\"(exports, module) {\n module.exports = function() {\n for (var i = 0; i < arguments.length; i++) {\n if (arguments[i] !== void 0) return arguments[i];\n }\n };\n }\n });\n\n // node_modules/flatten-vertex-data/index.js\n var require_flatten_vertex_data = __commonJS({\n \"node_modules/flatten-vertex-data/index.js\"(exports, module) {\n var dtype = require_dtype();\n module.exports = flattenVertexData;\n function flattenVertexData(data, output, offset) {\n if (!data) throw new TypeError(\"must specify data as first parameter\");\n offset = +(offset || 0) | 0;\n if (Array.isArray(data) && (data[0] && typeof data[0][0] === \"number\")) {\n var dim = data[0].length;\n var length = data.length * dim;\n var i, j, k, l;\n if (!output || typeof output === \"string\") {\n output = new (dtype(output || \"float32\"))(length + offset);\n }\n var dstLength = output.length - offset;\n if (length !== dstLength) {\n throw new Error(\"source length \" + length + \" (\" + dim + \"x\" + data.length + \") does not match destination length \" + dstLength);\n }\n for (i = 0, k = offset; i < data.length; i++) {\n for (j = 0; j < dim; j++) {\n output[k++] = data[i][j] === null ? NaN : data[i][j];\n }\n }\n } else {\n if (!output || typeof output === \"string\") {\n var Ctor = dtype(output || \"float32\");\n if (Array.isArray(data) || output === \"array\") {\n output = new Ctor(data.length + offset);\n for (i = 0, k = offset, l = output.length; k < l; k++, i++) {\n output[k] = data[i] === null ? NaN : data[i];\n }\n } else {\n if (offset === 0) {\n output = new Ctor(data);\n } else {\n output = new Ctor(data.length + offset);\n output.set(data, offset);\n }\n }\n } else {\n output.set(data, offset);\n }\n }\n return output;\n }\n }\n });\n\n // node_modules/is-obj/index.js\n var require_is_obj = __commonJS({\n \"node_modules/is-obj/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(x) {\n var type = typeof x;\n return x !== null && (type === \"object\" || type === \"function\");\n };\n }\n });\n\n // node_modules/math-log2/index.js\n var require_math_log2 = __commonJS({\n \"node_modules/math-log2/index.js\"(exports, module) {\n \"use strict\";\n module.exports = Math.log2 || function(x) {\n return Math.log(x) * Math.LOG2E;\n };\n }\n });\n\n // node_modules/@plotly/point-cluster/quad.js\n var require_quad = __commonJS({\n \"node_modules/@plotly/point-cluster/quad.js\"(exports, module) {\n \"use strict\";\n var search = require_search_bounds();\n var clamp = require_clamp();\n var rect = require_parse_rect();\n var getBounds = require_array_bounds();\n var pick = require_pick_by_alias();\n var defined = require_defined();\n var flatten = require_flatten_vertex_data();\n var isObj = require_is_obj();\n var dtype = require_dtype();\n var log2 = require_math_log2();\n var MAX_GROUP_ID = 1073741824;\n module.exports = function cluster(srcPoints, options) {\n if (!options) options = {};\n srcPoints = flatten(srcPoints, \"float64\");\n options = pick(options, {\n bounds: \"range bounds dataBox databox\",\n maxDepth: \"depth maxDepth maxdepth level maxLevel maxlevel levels\",\n dtype: \"type dtype format out dst output destination\"\n // sort: 'sortBy sortby sort',\n // pick: 'pick levelPoint',\n // nodeSize: 'node nodeSize minNodeSize minSize size'\n });\n let maxDepth = defined(options.maxDepth, 255);\n let bounds = defined(options.bounds, getBounds(srcPoints, 2));\n if (bounds[0] === bounds[2]) bounds[2]++;\n if (bounds[1] === bounds[3]) bounds[3]++;\n let points = normalize(srcPoints, bounds);\n let n = srcPoints.length >>> 1;\n let ids;\n if (!options.dtype) options.dtype = \"array\";\n if (typeof options.dtype === \"string\") {\n ids = new (dtype(options.dtype))(n);\n } else if (options.dtype) {\n ids = options.dtype;\n if (Array.isArray(ids)) ids.length = n;\n }\n for (let i = 0; i < n; ++i) {\n ids[i] = i;\n }\n let levels = [];\n let sublevels = [];\n let groups = [];\n let offsets = [];\n sort(0, 0, 1, ids, 0, 1);\n let offset = 0;\n for (let level = 0; level < levels.length; level++) {\n let levelItems = levels[level];\n if (ids.set) ids.set(levelItems, offset);\n else {\n for (let i = 0, l = levelItems.length; i < l; i++) {\n ids[i + offset] = levelItems[i];\n }\n }\n let nextOffset = offset + levels[level].length;\n offsets[level] = [offset, nextOffset];\n offset = nextOffset;\n }\n ids.range = range;\n return ids;\n function sort(x, y, diam, ids2, level, group2) {\n if (!ids2.length) return null;\n let levelItems = levels[level] || (levels[level] = []);\n let levelGroups = groups[level] || (groups[level] = []);\n let sublevel = sublevels[level] || (sublevels[level] = []);\n let offset2 = levelItems.length;\n level++;\n if (level > maxDepth || group2 > MAX_GROUP_ID) {\n for (let i = 0; i < ids2.length; i++) {\n levelItems.push(ids2[i]);\n levelGroups.push(group2);\n sublevel.push(null, null, null, null);\n }\n return offset2;\n }\n levelItems.push(ids2[0]);\n levelGroups.push(group2);\n if (ids2.length <= 1) {\n sublevel.push(null, null, null, null);\n return offset2;\n }\n let d2 = diam * 0.5;\n let cx = x + d2, cy = y + d2;\n let lolo = [], lohi = [], hilo = [], hihi = [];\n for (let i = 1, l = ids2.length; i < l; i++) {\n let idx = ids2[i], x2 = points[idx * 2], y2 = points[idx * 2 + 1];\n x2 < cx ? y2 < cy ? lolo.push(idx) : lohi.push(idx) : y2 < cy ? hilo.push(idx) : hihi.push(idx);\n }\n group2 <<= 2;\n sublevel.push(\n sort(x, y, d2, lolo, level, group2),\n sort(x, cy, d2, lohi, level, group2 + 1),\n sort(cx, y, d2, hilo, level, group2 + 2),\n sort(cx, cy, d2, hihi, level, group2 + 3)\n );\n return offset2;\n }\n function range(...args) {\n let options2;\n if (isObj(args[args.length - 1])) {\n let arg = args.pop();\n if (!args.length && (arg.x != null || arg.l != null || arg.left != null)) {\n args = [arg];\n options2 = {};\n }\n options2 = pick(arg, {\n level: \"level maxLevel\",\n d: \"d diam diameter r radius px pxSize pixel pixelSize maxD size minSize\",\n lod: \"lod details ranges offsets\"\n });\n } else {\n options2 = {};\n }\n if (!args.length) args = bounds;\n let box = rect(...args);\n let [minX, minY, maxX, maxY] = [\n Math.min(box.x, box.x + box.width),\n Math.min(box.y, box.y + box.height),\n Math.max(box.x, box.x + box.width),\n Math.max(box.y, box.y + box.height)\n ];\n let [nminX, nminY, nmaxX, nmaxY] = normalize([minX, minY, maxX, maxY], bounds);\n let maxLevel = defined(options2.level, levels.length);\n if (options2.d != null) {\n let d;\n if (typeof options2.d === \"number\") d = [options2.d, options2.d];\n else if (options2.d.length) d = options2.d;\n maxLevel = Math.min(\n Math.max(\n Math.ceil(-log2(Math.abs(d[0]) / (bounds[2] - bounds[0]))),\n Math.ceil(-log2(Math.abs(d[1]) / (bounds[3] - bounds[1])))\n ),\n maxLevel\n );\n }\n maxLevel = Math.min(maxLevel, levels.length);\n if (options2.lod) {\n return lod(nminX, nminY, nmaxX, nmaxY, maxLevel);\n }\n let selection = [];\n select(0, 0, 1, 0, 0, 1);\n function select(lox, loy, d, level, from, to) {\n if (from === null || to === null) return;\n let hix = lox + d;\n let hiy = loy + d;\n if (nminX > hix || nminY > hiy || nmaxX < lox || nmaxY < loy) return;\n if (level >= maxLevel) return;\n if (from === to) return;\n let levelItems = levels[level];\n if (to === void 0) to = levelItems.length;\n for (let i = from; i < to; i++) {\n let id = levelItems[i];\n let px = srcPoints[id * 2];\n let py = srcPoints[id * 2 + 1];\n if (px >= minX && px <= maxX && py >= minY && py <= maxY) {\n selection.push(id);\n }\n }\n let offsets2 = sublevels[level];\n let off0 = offsets2[from * 4 + 0];\n let off1 = offsets2[from * 4 + 1];\n let off2 = offsets2[from * 4 + 2];\n let off3 = offsets2[from * 4 + 3];\n let end = nextOffset(offsets2, from + 1);\n let d2 = d * 0.5;\n let nextLevel = level + 1;\n select(lox, loy, d2, nextLevel, off0, off1 || off2 || off3 || end);\n select(lox, loy + d2, d2, nextLevel, off1, off2 || off3 || end);\n select(lox + d2, loy, d2, nextLevel, off2, off3 || end);\n select(lox + d2, loy + d2, d2, nextLevel, off3, end);\n }\n function nextOffset(offsets2, from) {\n let offset2 = null, i = 0;\n while (offset2 === null) {\n offset2 = offsets2[from * 4 + i];\n i++;\n if (i > offsets2.length) return null;\n }\n return offset2;\n }\n return selection;\n }\n function lod(lox, loy, hix, hiy, maxLevel) {\n let ranges = [];\n for (let level = 0; level < maxLevel; level++) {\n let levelGroups = groups[level];\n let from = offsets[level][0];\n let levelGroupStart = group(lox, loy, level);\n let levelGroupEnd = group(hix, hiy, level);\n let startOffset = search.ge(levelGroups, levelGroupStart);\n let endOffset = search.gt(levelGroups, levelGroupEnd, startOffset, levelGroups.length - 1);\n ranges[level] = [startOffset + from, endOffset + from];\n }\n return ranges;\n }\n function group(x, y, level) {\n let group2 = 1;\n let cx = 0.5, cy = 0.5;\n let diam = 0.5;\n for (let i = 0; i < level; i++) {\n group2 <<= 2;\n group2 += x < cx ? y < cy ? 0 : 1 : y < cy ? 2 : 3;\n diam *= 0.5;\n cx += x < cx ? -diam : diam;\n cy += y < cy ? -diam : diam;\n }\n return group2;\n }\n };\n function normalize(pts, bounds) {\n let [lox, loy, hix, hiy] = bounds;\n let scaleX = 1 / (hix - lox);\n let scaleY = 1 / (hiy - loy);\n let result = new Array(pts.length);\n for (let i = 0, n = pts.length / 2; i < n; i++) {\n result[2 * i] = clamp((pts[2 * i] - lox) * scaleX, 0, 1);\n result[2 * i + 1] = clamp((pts[2 * i + 1] - loy) * scaleY, 0, 1);\n }\n return result;\n }\n }\n });\n\n // node_modules/@plotly/point-cluster/index.js\n var require_point_cluster = __commonJS({\n \"node_modules/@plotly/point-cluster/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_quad();\n }\n });\n\n // node_modules/abs-svg-path/index.js\n var require_abs_svg_path = __commonJS({\n \"node_modules/abs-svg-path/index.js\"(exports, module) {\n module.exports = absolutize;\n function absolutize(path) {\n var startX = 0;\n var startY = 0;\n var x = 0;\n var y = 0;\n return path.map(function(seg) {\n seg = seg.slice();\n var type = seg[0];\n var command = type.toUpperCase();\n if (type != command) {\n seg[0] = command;\n switch (type) {\n case \"a\":\n seg[6] += x;\n seg[7] += y;\n break;\n case \"v\":\n seg[1] += y;\n break;\n case \"h\":\n seg[1] += x;\n break;\n default:\n for (var i = 1; i < seg.length; ) {\n seg[i++] += x;\n seg[i++] += y;\n }\n }\n }\n switch (command) {\n case \"Z\":\n x = startX;\n y = startY;\n break;\n case \"H\":\n x = seg[1];\n break;\n case \"V\":\n y = seg[1];\n break;\n case \"M\":\n x = startX = seg[1];\n y = startY = seg[2];\n break;\n default:\n x = seg[seg.length - 2];\n y = seg[seg.length - 1];\n }\n return seg;\n });\n }\n }\n });\n\n // node_modules/svg-arc-to-cubic-bezier/cjs/index.js\n var require_cjs6 = __commonJS({\n \"node_modules/svg-arc-to-cubic-bezier/cjs/index.js\"(exports, module) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n var _slicedToArray = /* @__PURE__ */ function() {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = void 0;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function(arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n }();\n var TAU = Math.PI * 2;\n var mapToEllipse = function mapToEllipse2(_ref, rx, ry, cosphi, sinphi, centerx, centery) {\n var x = _ref.x, y = _ref.y;\n x *= rx;\n y *= ry;\n var xp = cosphi * x - sinphi * y;\n var yp = sinphi * x + cosphi * y;\n return {\n x: xp + centerx,\n y: yp + centery\n };\n };\n var approxUnitArc = function approxUnitArc2(ang1, ang2) {\n var a = ang2 === 1.5707963267948966 ? 0.551915024494 : ang2 === -1.5707963267948966 ? -0.551915024494 : 4 / 3 * Math.tan(ang2 / 4);\n var x1 = Math.cos(ang1);\n var y1 = Math.sin(ang1);\n var x2 = Math.cos(ang1 + ang2);\n var y2 = Math.sin(ang1 + ang2);\n return [{\n x: x1 - y1 * a,\n y: y1 + x1 * a\n }, {\n x: x2 + y2 * a,\n y: y2 - x2 * a\n }, {\n x: x2,\n y: y2\n }];\n };\n var vectorAngle = function vectorAngle2(ux, uy, vx, vy) {\n var sign = ux * vy - uy * vx < 0 ? -1 : 1;\n var dot = ux * vx + uy * vy;\n if (dot > 1) {\n dot = 1;\n }\n if (dot < -1) {\n dot = -1;\n }\n return sign * Math.acos(dot);\n };\n var getArcCenter = function getArcCenter2(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp) {\n var rxsq = Math.pow(rx, 2);\n var rysq = Math.pow(ry, 2);\n var pxpsq = Math.pow(pxp, 2);\n var pypsq = Math.pow(pyp, 2);\n var radicant = rxsq * rysq - rxsq * pypsq - rysq * pxpsq;\n if (radicant < 0) {\n radicant = 0;\n }\n radicant /= rxsq * pypsq + rysq * pxpsq;\n radicant = Math.sqrt(radicant) * (largeArcFlag === sweepFlag ? -1 : 1);\n var centerxp = radicant * rx / ry * pyp;\n var centeryp = radicant * -ry / rx * pxp;\n var centerx = cosphi * centerxp - sinphi * centeryp + (px + cx) / 2;\n var centery = sinphi * centerxp + cosphi * centeryp + (py + cy) / 2;\n var vx1 = (pxp - centerxp) / rx;\n var vy1 = (pyp - centeryp) / ry;\n var vx2 = (-pxp - centerxp) / rx;\n var vy2 = (-pyp - centeryp) / ry;\n var ang1 = vectorAngle(1, 0, vx1, vy1);\n var ang2 = vectorAngle(vx1, vy1, vx2, vy2);\n if (sweepFlag === 0 && ang2 > 0) {\n ang2 -= TAU;\n }\n if (sweepFlag === 1 && ang2 < 0) {\n ang2 += TAU;\n }\n return [centerx, centery, ang1, ang2];\n };\n var arcToBezier = function arcToBezier2(_ref2) {\n var px = _ref2.px, py = _ref2.py, cx = _ref2.cx, cy = _ref2.cy, rx = _ref2.rx, ry = _ref2.ry, _ref2$xAxisRotation = _ref2.xAxisRotation, xAxisRotation = _ref2$xAxisRotation === void 0 ? 0 : _ref2$xAxisRotation, _ref2$largeArcFlag = _ref2.largeArcFlag, largeArcFlag = _ref2$largeArcFlag === void 0 ? 0 : _ref2$largeArcFlag, _ref2$sweepFlag = _ref2.sweepFlag, sweepFlag = _ref2$sweepFlag === void 0 ? 0 : _ref2$sweepFlag;\n var curves = [];\n if (rx === 0 || ry === 0) {\n return [];\n }\n var sinphi = Math.sin(xAxisRotation * TAU / 360);\n var cosphi = Math.cos(xAxisRotation * TAU / 360);\n var pxp = cosphi * (px - cx) / 2 + sinphi * (py - cy) / 2;\n var pyp = -sinphi * (px - cx) / 2 + cosphi * (py - cy) / 2;\n if (pxp === 0 && pyp === 0) {\n return [];\n }\n rx = Math.abs(rx);\n ry = Math.abs(ry);\n var lambda = Math.pow(pxp, 2) / Math.pow(rx, 2) + Math.pow(pyp, 2) / Math.pow(ry, 2);\n if (lambda > 1) {\n rx *= Math.sqrt(lambda);\n ry *= Math.sqrt(lambda);\n }\n var _getArcCenter = getArcCenter(px, py, cx, cy, rx, ry, largeArcFlag, sweepFlag, sinphi, cosphi, pxp, pyp), _getArcCenter2 = _slicedToArray(_getArcCenter, 4), centerx = _getArcCenter2[0], centery = _getArcCenter2[1], ang1 = _getArcCenter2[2], ang2 = _getArcCenter2[3];\n var ratio = Math.abs(ang2) / (TAU / 4);\n if (Math.abs(1 - ratio) < 1e-7) {\n ratio = 1;\n }\n var segments = Math.max(Math.ceil(ratio), 1);\n ang2 /= segments;\n for (var i = 0; i < segments; i++) {\n curves.push(approxUnitArc(ang1, ang2));\n ang1 += ang2;\n }\n return curves.map(function(curve) {\n var _mapToEllipse = mapToEllipse(curve[0], rx, ry, cosphi, sinphi, centerx, centery), x1 = _mapToEllipse.x, y1 = _mapToEllipse.y;\n var _mapToEllipse2 = mapToEllipse(curve[1], rx, ry, cosphi, sinphi, centerx, centery), x2 = _mapToEllipse2.x, y2 = _mapToEllipse2.y;\n var _mapToEllipse3 = mapToEllipse(curve[2], rx, ry, cosphi, sinphi, centerx, centery), x = _mapToEllipse3.x, y = _mapToEllipse3.y;\n return { x1, y1, x2, y2, x, y };\n });\n };\n exports.default = arcToBezier;\n module.exports = exports.default;\n }\n });\n\n // node_modules/svg-path-bounds/node_modules/normalize-svg-path/index.js\n var require_normalize_svg_path = __commonJS({\n \"node_modules/svg-path-bounds/node_modules/normalize-svg-path/index.js\"(exports, module) {\n \"use strict\";\n module.exports = normalize;\n var arcToCurve = require_cjs6();\n function normalize(path) {\n var prev;\n var result = [];\n var bezierX = 0;\n var bezierY = 0;\n var startX = 0;\n var startY = 0;\n var quadX = null;\n var quadY = null;\n var x = 0;\n var y = 0;\n for (var i = 0, len = path.length; i < len; i++) {\n var seg = path[i];\n var command = seg[0];\n switch (command) {\n case \"M\":\n startX = seg[1];\n startY = seg[2];\n break;\n case \"A\":\n var curves = arcToCurve({\n px: x,\n py: y,\n cx: seg[6],\n cy: seg[7],\n rx: seg[1],\n ry: seg[2],\n xAxisRotation: seg[3],\n largeArcFlag: seg[4],\n sweepFlag: seg[5]\n });\n if (!curves.length) continue;\n for (var j = 0, c; j < curves.length; j++) {\n c = curves[j];\n seg = [\"C\", c.x1, c.y1, c.x2, c.y2, c.x, c.y];\n if (j < curves.length - 1) result.push(seg);\n }\n break;\n case \"S\":\n var cx = x;\n var cy = y;\n if (prev == \"C\" || prev == \"S\") {\n cx += cx - bezierX;\n cy += cy - bezierY;\n }\n seg = [\"C\", cx, cy, seg[1], seg[2], seg[3], seg[4]];\n break;\n case \"T\":\n if (prev == \"Q\" || prev == \"T\") {\n quadX = x * 2 - quadX;\n quadY = y * 2 - quadY;\n } else {\n quadX = x;\n quadY = y;\n }\n seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]);\n break;\n case \"Q\":\n quadX = seg[1];\n quadY = seg[2];\n seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]);\n break;\n case \"L\":\n seg = line(x, y, seg[1], seg[2]);\n break;\n case \"H\":\n seg = line(x, y, seg[1], y);\n break;\n case \"V\":\n seg = line(x, y, x, seg[1]);\n break;\n case \"Z\":\n seg = line(x, y, startX, startY);\n break;\n }\n prev = command;\n x = seg[seg.length - 2];\n y = seg[seg.length - 1];\n if (seg.length > 4) {\n bezierX = seg[seg.length - 4];\n bezierY = seg[seg.length - 3];\n } else {\n bezierX = x;\n bezierY = y;\n }\n result.push(seg);\n }\n return result;\n }\n function line(x1, y1, x2, y2) {\n return [\"C\", x1, y1, x2, y2, x2, y2];\n }\n function quadratic(x1, y1, cx, cy, x2, y2) {\n return [\n \"C\",\n x1 / 3 + 2 / 3 * cx,\n y1 / 3 + 2 / 3 * cy,\n x2 / 3 + 2 / 3 * cx,\n y2 / 3 + 2 / 3 * cy,\n x2,\n y2\n ];\n }\n }\n });\n\n // node_modules/is-svg-path/index.js\n var require_is_svg_path = __commonJS({\n \"node_modules/is-svg-path/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function isPath(str) {\n if (typeof str !== \"string\") return false;\n str = str.trim();\n if (/^[mzlhvcsqta]\\s*[-+.0-9][^mlhvzcsqta]+/i.test(str) && /[\\dz]$/i.test(str) && str.length > 4) return true;\n return false;\n };\n }\n });\n\n // node_modules/svg-path-bounds/index.js\n var require_svg_path_bounds = __commonJS({\n \"node_modules/svg-path-bounds/index.js\"(exports, module) {\n \"use strict\";\n var parse2 = require_parse_svg_path();\n var abs = require_abs_svg_path();\n var normalize = require_normalize_svg_path();\n var isSvgPath = require_is_svg_path();\n var assert = require_assert();\n module.exports = pathBounds;\n function pathBounds(path) {\n if (Array.isArray(path) && path.length === 1 && typeof path[0] === \"string\") path = path[0];\n if (typeof path === \"string\") {\n assert(isSvgPath(path), \"String is not an SVG path.\");\n path = parse2(path);\n }\n assert(Array.isArray(path), \"Argument should be a string or an array of path segments.\");\n path = abs(path);\n path = normalize(path);\n if (!path.length) return [0, 0, 0, 0];\n var bounds = [Infinity, Infinity, -Infinity, -Infinity];\n for (var i = 0, l = path.length; i < l; i++) {\n var points = path[i].slice(1);\n for (var j = 0; j < points.length; j += 2) {\n if (points[j + 0] < bounds[0]) bounds[0] = points[j + 0];\n if (points[j + 1] < bounds[1]) bounds[1] = points[j + 1];\n if (points[j + 0] > bounds[2]) bounds[2] = points[j + 0];\n if (points[j + 1] > bounds[3]) bounds[3] = points[j + 1];\n }\n }\n return bounds;\n }\n }\n });\n\n // node_modules/normalize-svg-path/index.js\n var require_normalize_svg_path2 = __commonJS({\n \"node_modules/normalize-svg-path/index.js\"(exports, module) {\n var \\u03C0 = Math.PI;\n var _120 = radians2(120);\n module.exports = normalize;\n function normalize(path) {\n var prev;\n var result = [];\n var bezierX = 0;\n var bezierY = 0;\n var startX = 0;\n var startY = 0;\n var quadX = null;\n var quadY = null;\n var x = 0;\n var y = 0;\n for (var i = 0, len = path.length; i < len; i++) {\n var seg = path[i];\n var command = seg[0];\n switch (command) {\n case \"M\":\n startX = seg[1];\n startY = seg[2];\n break;\n case \"A\":\n seg = arc(x, y, seg[1], seg[2], radians2(seg[3]), seg[4], seg[5], seg[6], seg[7]);\n seg.unshift(\"C\");\n if (seg.length > 7) {\n result.push(seg.splice(0, 7));\n seg.unshift(\"C\");\n }\n break;\n case \"S\":\n var cx = x;\n var cy = y;\n if (prev == \"C\" || prev == \"S\") {\n cx += cx - bezierX;\n cy += cy - bezierY;\n }\n seg = [\"C\", cx, cy, seg[1], seg[2], seg[3], seg[4]];\n break;\n case \"T\":\n if (prev == \"Q\" || prev == \"T\") {\n quadX = x * 2 - quadX;\n quadY = y * 2 - quadY;\n } else {\n quadX = x;\n quadY = y;\n }\n seg = quadratic(x, y, quadX, quadY, seg[1], seg[2]);\n break;\n case \"Q\":\n quadX = seg[1];\n quadY = seg[2];\n seg = quadratic(x, y, seg[1], seg[2], seg[3], seg[4]);\n break;\n case \"L\":\n seg = line(x, y, seg[1], seg[2]);\n break;\n case \"H\":\n seg = line(x, y, seg[1], y);\n break;\n case \"V\":\n seg = line(x, y, x, seg[1]);\n break;\n case \"Z\":\n seg = line(x, y, startX, startY);\n break;\n }\n prev = command;\n x = seg[seg.length - 2];\n y = seg[seg.length - 1];\n if (seg.length > 4) {\n bezierX = seg[seg.length - 4];\n bezierY = seg[seg.length - 3];\n } else {\n bezierX = x;\n bezierY = y;\n }\n result.push(seg);\n }\n return result;\n }\n function line(x1, y1, x2, y2) {\n return [\"C\", x1, y1, x2, y2, x2, y2];\n }\n function quadratic(x1, y1, cx, cy, x2, y2) {\n return [\n \"C\",\n x1 / 3 + 2 / 3 * cx,\n y1 / 3 + 2 / 3 * cy,\n x2 / 3 + 2 / 3 * cx,\n y2 / 3 + 2 / 3 * cy,\n x2,\n y2\n ];\n }\n function arc(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n if (!recursive) {\n var xy = rotate(x1, y1, -angle);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -angle);\n x2 = xy.x;\n y2 = xy.y;\n var x = (x1 - x2) / 2;\n var y = (y1 - y2) / 2;\n var h = x * x / (rx * rx) + y * y / (ry * ry);\n if (h > 1) {\n h = Math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n var rx2 = rx * rx;\n var ry2 = ry * ry;\n var k = (large_arc_flag == sweep_flag ? -1 : 1) * Math.sqrt(Math.abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x)));\n if (k == Infinity) k = 1;\n var cx = k * rx * y / ry + (x1 + x2) / 2;\n var cy = k * -ry * x / rx + (y1 + y2) / 2;\n var f1 = Math.asin(((y1 - cy) / ry).toFixed(9));\n var f2 = Math.asin(((y2 - cy) / ry).toFixed(9));\n f1 = x1 < cx ? \\u03C0 - f1 : f1;\n f2 = x2 < cx ? \\u03C0 - f2 : f2;\n if (f1 < 0) f1 = \\u03C0 * 2 + f1;\n if (f2 < 0) f2 = \\u03C0 * 2 + f2;\n if (sweep_flag && f1 > f2) f1 = f1 - \\u03C0 * 2;\n if (!sweep_flag && f2 > f1) f2 = f2 - \\u03C0 * 2;\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n if (Math.abs(f2 - f1) > _120) {\n var f2old = f2;\n var x2old = x2;\n var y2old = y2;\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * Math.cos(f2);\n y2 = cy + ry * Math.sin(f2);\n var res = arc(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [f2, f2old, cx, cy]);\n }\n var t = Math.tan((f2 - f1) / 4);\n var hx = 4 / 3 * rx * t;\n var hy = 4 / 3 * ry * t;\n var curve = [\n 2 * x1 - (x1 + hx * Math.sin(f1)),\n 2 * y1 - (y1 - hy * Math.cos(f1)),\n x2 + hx * Math.sin(f2),\n y2 - hy * Math.cos(f2),\n x2,\n y2\n ];\n if (recursive) return curve;\n if (res) curve = curve.concat(res);\n for (var i = 0; i < curve.length; ) {\n var rot = rotate(curve[i], curve[i + 1], angle);\n curve[i++] = rot.x;\n curve[i++] = rot.y;\n }\n return curve;\n }\n function rotate(x, y, rad) {\n return {\n x: x * Math.cos(rad) - y * Math.sin(rad),\n y: x * Math.sin(rad) + y * Math.cos(rad)\n };\n }\n function radians2(degress) {\n return degress * (\\u03C0 / 180);\n }\n }\n });\n\n // node_modules/draw-svg-path/index.js\n var require_draw_svg_path = __commonJS({\n \"node_modules/draw-svg-path/index.js\"(exports, module) {\n var abs = require_abs_svg_path();\n var normalize = require_normalize_svg_path2();\n var methods = {\n \"M\": \"moveTo\",\n \"C\": \"bezierCurveTo\"\n };\n module.exports = function(context, segments) {\n context.beginPath();\n normalize(abs(segments)).forEach(\n function(segment) {\n var command = segment[0];\n var args = segment.slice(1);\n context[methods[command]].apply(context, args);\n }\n );\n context.closePath();\n };\n }\n });\n\n // node_modules/bitmap-sdf/index.js\n var require_bitmap_sdf = __commonJS({\n \"node_modules/bitmap-sdf/index.js\"(exports, module) {\n \"use strict\";\n var clamp = require_clamp();\n module.exports = calcSDF;\n var INF = 1e20;\n function calcSDF(src, options) {\n if (!options) options = {};\n var cutoff = options.cutoff == null ? 0.25 : options.cutoff;\n var radius = options.radius == null ? 8 : options.radius;\n var channel = options.channel || 0;\n var w, h, size, data, intData, stride, ctx, canvas, imgData, i, l;\n if (ArrayBuffer.isView(src) || Array.isArray(src)) {\n if (!options.width || !options.height) throw Error(\"For raw data width and height should be provided by options\");\n w = options.width, h = options.height;\n data = src;\n if (!options.stride) stride = Math.floor(src.length / w / h);\n else stride = options.stride;\n } else {\n if (window.HTMLCanvasElement && src instanceof window.HTMLCanvasElement) {\n canvas = src;\n ctx = canvas.getContext(\"2d\");\n w = canvas.width, h = canvas.height;\n imgData = ctx.getImageData(0, 0, w, h);\n data = imgData.data;\n stride = 4;\n } else if (window.CanvasRenderingContext2D && src instanceof window.CanvasRenderingContext2D) {\n canvas = src.canvas;\n ctx = src;\n w = canvas.width, h = canvas.height;\n imgData = ctx.getImageData(0, 0, w, h);\n data = imgData.data;\n stride = 4;\n } else if (window.ImageData && src instanceof window.ImageData) {\n imgData = src;\n w = src.width, h = src.height;\n data = imgData.data;\n stride = 4;\n }\n }\n size = Math.max(w, h);\n if (window.Uint8ClampedArray && data instanceof window.Uint8ClampedArray || window.Uint8Array && data instanceof window.Uint8Array) {\n intData = data;\n data = Array(w * h);\n for (i = 0, l = intData.length; i < l; i++) {\n data[i] = intData[i * stride + channel] / 255;\n }\n } else {\n if (stride !== 1) throw Error(\"Raw data can have only 1 value per pixel\");\n }\n var gridOuter = Array(w * h);\n var gridInner = Array(w * h);\n var f = Array(size);\n var d = Array(size);\n var z = Array(size + 1);\n var v = Array(size);\n for (i = 0, l = w * h; i < l; i++) {\n var a = data[i];\n gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2);\n gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2);\n }\n edt(gridOuter, w, h, f, d, v, z);\n edt(gridInner, w, h, f, d, v, z);\n var dist = window.Float32Array ? new Float32Array(w * h) : new Array(w * h);\n for (i = 0, l = w * h; i < l; i++) {\n dist[i] = clamp(1 - ((gridOuter[i] - gridInner[i]) / radius + cutoff), 0, 1);\n }\n return dist;\n }\n function edt(data, width, height, f, d, v, z) {\n for (var x = 0; x < width; x++) {\n for (var y = 0; y < height; y++) {\n f[y] = data[y * width + x];\n }\n edt1d(f, d, v, z, height);\n for (y = 0; y < height; y++) {\n data[y * width + x] = d[y];\n }\n }\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n f[x] = data[y * width + x];\n }\n edt1d(f, d, v, z, width);\n for (x = 0; x < width; x++) {\n data[y * width + x] = Math.sqrt(d[x]);\n }\n }\n }\n function edt1d(f, d, v, z, n) {\n v[0] = 0;\n z[0] = -INF;\n z[1] = +INF;\n for (var q = 1, k = 0; q < n; q++) {\n var s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n while (s <= z[k]) {\n k--;\n s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n }\n k++;\n v[k] = q;\n z[k] = s;\n z[k + 1] = +INF;\n }\n for (q = 0, k = 0; q < n; q++) {\n while (z[k + 1] < q) k++;\n d[q] = (q - v[k]) * (q - v[k]) + f[v[k]];\n }\n }\n }\n });\n\n // node_modules/svg-path-sdf/index.js\n var require_svg_path_sdf = __commonJS({\n \"node_modules/svg-path-sdf/index.js\"(exports, module) {\n \"use strict\";\n var pathBounds = require_svg_path_bounds();\n var parsePath = require_parse_svg_path();\n var drawPath = require_draw_svg_path();\n var isSvgPath = require_is_svg_path();\n var bitmapSdf = require_bitmap_sdf();\n var canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n module.exports = pathSdf;\n function pathSdf(path, options) {\n if (!isSvgPath(path)) throw Error(\"Argument should be valid svg path string\");\n if (!options) options = {};\n var w, h;\n if (options.shape) {\n w = options.shape[0];\n h = options.shape[1];\n } else {\n w = canvas.width = options.w || options.width || 200;\n h = canvas.height = options.h || options.height || 200;\n }\n var size = Math.min(w, h);\n var stroke = options.stroke || 0;\n var viewbox = options.viewbox || options.viewBox || pathBounds(path);\n var scale = [w / (viewbox[2] - viewbox[0]), h / (viewbox[3] - viewbox[1])];\n var maxScale = Math.min(scale[0] || 0, scale[1] || 0) / 2;\n ctx.fillStyle = \"black\";\n ctx.fillRect(0, 0, w, h);\n ctx.fillStyle = \"white\";\n if (stroke) {\n if (typeof stroke != \"number\") stroke = 1;\n if (stroke > 0) {\n ctx.strokeStyle = \"white\";\n } else {\n ctx.strokeStyle = \"black\";\n }\n ctx.lineWidth = Math.abs(stroke);\n }\n ctx.translate(w * 0.5, h * 0.5);\n ctx.scale(maxScale, maxScale);\n if (isPath2DSupported()) {\n var path2d = new Path2D(path);\n ctx.fill(path2d);\n stroke && ctx.stroke(path2d);\n } else {\n var segments = parsePath(path);\n drawPath(ctx, segments);\n ctx.fill();\n stroke && ctx.stroke();\n }\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n var data = bitmapSdf(ctx, {\n cutoff: options.cutoff != null ? options.cutoff : 0.5,\n radius: options.radius != null ? options.radius : size * 0.5\n });\n return data;\n }\n var path2DSupported;\n function isPath2DSupported() {\n if (path2DSupported != null) return path2DSupported;\n var ctx2 = document.createElement(\"canvas\").getContext(\"2d\");\n ctx2.canvas.width = ctx2.canvas.height = 1;\n if (!window.Path2D) return path2DSupported = false;\n var path = new Path2D(\"M0,0h1v1h-1v-1Z\");\n ctx2.fillStyle = \"black\";\n ctx2.fill(path);\n var idata = ctx2.getImageData(0, 0, 1, 1);\n return path2DSupported = idata && idata.data && idata.data[3] === 255;\n }\n }\n });\n\n // src/traces/scattergl/convert.js\n var require_convert10 = __commonJS({\n \"src/traces/scattergl/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var svgSdf = require_svg_path_sdf();\n var rgba3 = require_color_normalize();\n var Registry = require_registry();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var Drawing = require_drawing();\n var AxisIDs = require_axis_ids();\n var formatColor = require_gl_format_color().formatColor;\n var subTypes = require_subtypes();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var helpers = require_helpers16();\n var constants = require_constants23();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n var TEXTOFFSETSIGN = {\n start: 1,\n left: 1,\n end: -1,\n right: -1,\n middle: 0,\n center: 0,\n bottom: 1,\n top: -1\n };\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n function convertStyle(gd, trace) {\n var i;\n var opts = {\n marker: void 0,\n markerSel: void 0,\n markerUnsel: void 0,\n line: void 0,\n fill: void 0,\n errorX: void 0,\n errorY: void 0,\n text: void 0,\n textSel: void 0,\n textUnsel: void 0\n };\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n if (trace.visible !== true) return opts;\n if (subTypes.hasText(trace)) {\n opts.text = convertTextStyle(gd, trace);\n opts.textSel = convertTextSelection(gd, trace, trace.selected);\n opts.textUnsel = convertTextSelection(gd, trace, trace.unselected);\n }\n if (subTypes.hasMarkers(trace)) {\n opts.marker = convertMarkerStyle(gd, trace);\n opts.markerSel = convertMarkerSelection(gd, trace, trace.selected);\n opts.markerUnsel = convertMarkerSelection(gd, trace, trace.unselected);\n if (!trace.unselected && isArrayOrTypedArray(trace.marker.opacity)) {\n var mo = trace.marker.opacity;\n opts.markerUnsel.opacity = new Array(mo.length);\n for (i = 0; i < mo.length; i++) {\n opts.markerUnsel.opacity[i] = DESELECTDIM * mo[i];\n }\n }\n }\n if (subTypes.hasLines(trace)) {\n opts.line = {\n overlay: true,\n thickness: trace.line.width * plotGlPixelRatio,\n color: trace.line.color,\n opacity: trace.opacity\n };\n var dashes = (constants.DASHES[trace.line.dash] || [1]).slice();\n for (i = 0; i < dashes.length; ++i) {\n dashes[i] *= trace.line.width * plotGlPixelRatio;\n }\n opts.line.dashes = dashes;\n }\n if (trace.error_x && trace.error_x.visible) {\n opts.errorX = convertErrorBarStyle(trace, trace.error_x, plotGlPixelRatio);\n }\n if (trace.error_y && trace.error_y.visible) {\n opts.errorY = convertErrorBarStyle(trace, trace.error_y, plotGlPixelRatio);\n }\n if (!!trace.fill && trace.fill !== \"none\") {\n opts.fill = {\n closed: true,\n fill: trace.fillcolor,\n thickness: 0\n };\n }\n return opts;\n }\n function convertTextStyle(gd, trace) {\n var fullLayout = gd._fullLayout;\n var count = trace._length;\n var textfontIn = trace.textfont;\n var textpositionIn = trace.textposition;\n var textPos = isArrayOrTypedArray(textpositionIn) ? textpositionIn : [textpositionIn];\n var tfc = textfontIn.color;\n var tfs = textfontIn.size;\n var tff = textfontIn.family;\n var tfw = textfontIn.weight;\n var tfy = textfontIn.style;\n var tfv = textfontIn.variant;\n var optsOut = {};\n var i;\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var texttemplate = trace.texttemplate;\n if (texttemplate) {\n optsOut.text = [];\n var d3locale = fullLayout._d3locale;\n var isArray = Array.isArray(texttemplate);\n var N = isArray ? Math.min(texttemplate.length, count) : count;\n var txt = isArray ? function(i2) {\n return texttemplate[i2];\n } : function() {\n return texttemplate;\n };\n for (i = 0; i < N; i++) {\n var d = { i };\n var labels = trace._module.formatLabels(d, trace, fullLayout);\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, i);\n var meta = trace._meta || {};\n optsOut.text.push(Lib.texttemplateString(txt(i), labels, d3locale, pointValues, d, meta));\n }\n } else {\n if (isArrayOrTypedArray(trace.text) && trace.text.length < count) {\n optsOut.text = trace.text.slice();\n } else {\n optsOut.text = trace.text;\n }\n }\n if (isArrayOrTypedArray(optsOut.text)) {\n for (i = optsOut.text.length; i < count; i++) {\n optsOut.text[i] = \"\";\n }\n }\n optsOut.opacity = trace.opacity;\n optsOut.font = {};\n optsOut.align = [];\n optsOut.baseline = [];\n for (i = 0; i < textPos.length; i++) {\n var tp = textPos[i].split(/\\s+/);\n switch (tp[1]) {\n case \"left\":\n optsOut.align.push(\"right\");\n break;\n case \"right\":\n optsOut.align.push(\"left\");\n break;\n default:\n optsOut.align.push(tp[1]);\n }\n switch (tp[0]) {\n case \"top\":\n optsOut.baseline.push(\"bottom\");\n break;\n case \"bottom\":\n optsOut.baseline.push(\"top\");\n break;\n default:\n optsOut.baseline.push(tp[0]);\n }\n }\n if (isArrayOrTypedArray(tfc)) {\n optsOut.color = new Array(count);\n for (i = 0; i < count; i++) {\n optsOut.color[i] = tfc[i];\n }\n } else {\n optsOut.color = tfc;\n }\n if (isArrayOrTypedArray(tfs) || Array.isArray(tff) || isArrayOrTypedArray(tfw) || Array.isArray(tfy) || Array.isArray(tfv)) {\n optsOut.font = new Array(count);\n for (i = 0; i < count; i++) {\n var fonti = optsOut.font[i] = {};\n fonti.size = (Lib.isTypedArray(tfs) ? tfs[i] : isArrayOrTypedArray(tfs) ? isNumeric(tfs[i]) ? tfs[i] : 0 : tfs) * plotGlPixelRatio;\n fonti.family = Array.isArray(tff) ? tff[i] : tff;\n fonti.weight = weightFallBack(isArrayOrTypedArray(tfw) ? tfw[i] : tfw);\n fonti.style = Array.isArray(tfy) ? tfy[i] : tfy;\n fonti.variant = Array.isArray(tfv) ? tfv[i] : tfv;\n }\n } else {\n optsOut.font = {\n size: tfs * plotGlPixelRatio,\n family: tff,\n weight: weightFallBack(tfw),\n style: tfy,\n variant: tfv\n };\n }\n return optsOut;\n }\n function weightFallBack(w) {\n if (w <= 1e3) {\n return w > 500 ? \"bold\" : \"normal\";\n }\n return w;\n }\n function convertMarkerStyle(gd, trace) {\n var count = trace._length;\n var optsIn = trace.marker;\n var optsOut = {};\n var i;\n var multiSymbol = isArrayOrTypedArray(optsIn.symbol);\n var multiAngle = isArrayOrTypedArray(optsIn.angle);\n var multiColor = isArrayOrTypedArray(optsIn.color);\n var multiLineColor = isArrayOrTypedArray(optsIn.line.color);\n var multiOpacity = isArrayOrTypedArray(optsIn.opacity);\n var multiSize = isArrayOrTypedArray(optsIn.size);\n var multiLineWidth = isArrayOrTypedArray(optsIn.line.width);\n var isOpen;\n if (!multiSymbol) isOpen = helpers.isOpenSymbol(optsIn.symbol);\n if (multiSymbol || multiColor || multiLineColor || multiOpacity || multiAngle) {\n optsOut.symbols = new Array(count);\n optsOut.angles = new Array(count);\n optsOut.colors = new Array(count);\n optsOut.borderColors = new Array(count);\n var symbols = optsIn.symbol;\n var angles = optsIn.angle;\n var colors = formatColor(optsIn, optsIn.opacity, count);\n var borderColors = formatColor(optsIn.line, optsIn.opacity, count);\n if (!isArrayOrTypedArray(borderColors[0])) {\n var borderColor = borderColors;\n borderColors = Array(count);\n for (i = 0; i < count; i++) {\n borderColors[i] = borderColor;\n }\n }\n if (!isArrayOrTypedArray(colors[0])) {\n var color2 = colors;\n colors = Array(count);\n for (i = 0; i < count; i++) {\n colors[i] = color2;\n }\n }\n if (!isArrayOrTypedArray(symbols)) {\n var symbol = symbols;\n symbols = Array(count);\n for (i = 0; i < count; i++) {\n symbols[i] = symbol;\n }\n }\n if (!isArrayOrTypedArray(angles)) {\n var angle = angles;\n angles = Array(count);\n for (i = 0; i < count; i++) {\n angles[i] = angle;\n }\n }\n optsOut.symbols = symbols;\n optsOut.angles = angles;\n optsOut.colors = colors;\n optsOut.borderColors = borderColors;\n for (i = 0; i < count; i++) {\n if (multiSymbol) {\n isOpen = helpers.isOpenSymbol(optsIn.symbol[i]);\n }\n if (isOpen) {\n borderColors[i] = colors[i].slice();\n colors[i] = colors[i].slice();\n colors[i][3] = 0;\n }\n }\n optsOut.opacity = trace.opacity;\n optsOut.markers = new Array(count);\n for (i = 0; i < count; i++) {\n optsOut.markers[i] = getSymbolSdf({\n mx: optsOut.symbols[i],\n ma: optsOut.angles[i]\n }, trace);\n }\n } else {\n if (isOpen) {\n optsOut.color = rgba3(optsIn.color, \"uint8\");\n optsOut.color[3] = 0;\n optsOut.borderColor = rgba3(optsIn.color, \"uint8\");\n } else {\n optsOut.color = rgba3(optsIn.color, \"uint8\");\n optsOut.borderColor = rgba3(optsIn.line.color, \"uint8\");\n }\n optsOut.opacity = trace.opacity * optsIn.opacity;\n optsOut.marker = getSymbolSdf({\n mx: optsIn.symbol,\n ma: optsIn.angle\n }, trace);\n }\n var sizeFactor = 1;\n var markerSizeFunc = makeBubbleSizeFn(trace, sizeFactor);\n var s;\n if (multiSize || multiLineWidth) {\n var sizes = optsOut.sizes = new Array(count);\n var borderSizes = optsOut.borderSizes = new Array(count);\n var sizeTotal = 0;\n var sizeAvg;\n if (multiSize) {\n for (i = 0; i < count; i++) {\n sizes[i] = markerSizeFunc(optsIn.size[i]);\n sizeTotal += sizes[i];\n }\n sizeAvg = sizeTotal / count;\n } else {\n s = markerSizeFunc(optsIn.size);\n for (i = 0; i < count; i++) {\n sizes[i] = s;\n }\n }\n if (multiLineWidth) {\n for (i = 0; i < count; i++) {\n borderSizes[i] = optsIn.line.width[i];\n }\n } else {\n s = optsIn.line.width;\n for (i = 0; i < count; i++) {\n borderSizes[i] = s;\n }\n }\n optsOut.sizeAvg = sizeAvg;\n } else {\n optsOut.size = markerSizeFunc(optsIn && optsIn.size || 10);\n optsOut.borderSizes = markerSizeFunc(optsIn.line.width);\n }\n return optsOut;\n }\n function convertMarkerSelection(gd, trace, target) {\n var optsIn = trace.marker;\n var optsOut = {};\n if (!target) return optsOut;\n if (target.marker && target.marker.symbol) {\n optsOut = convertMarkerStyle(gd, Lib.extendFlat({}, optsIn, target.marker));\n } else if (target.marker) {\n if (target.marker.size) optsOut.size = target.marker.size;\n if (target.marker.color) optsOut.colors = target.marker.color;\n if (target.marker.opacity !== void 0) optsOut.opacity = target.marker.opacity;\n }\n return optsOut;\n }\n function convertTextSelection(gd, trace, target) {\n var optsOut = {};\n if (!target) return optsOut;\n if (target.textfont) {\n var optsIn = {\n opacity: 1,\n text: trace.text,\n texttemplate: trace.texttemplate,\n textposition: trace.textposition,\n textfont: Lib.extendFlat({}, trace.textfont)\n };\n if (target.textfont) {\n Lib.extendFlat(optsIn.textfont, target.textfont);\n }\n optsOut = convertTextStyle(gd, optsIn);\n }\n return optsOut;\n }\n function convertErrorBarStyle(trace, target, plotGlPixelRatio) {\n var optsOut = {\n capSize: target.width * 2 * plotGlPixelRatio,\n lineWidth: target.thickness * plotGlPixelRatio,\n color: target.color\n };\n if (target.copy_ystyle) {\n optsOut = trace.error_y;\n }\n return optsOut;\n }\n var SYMBOL_SDF_SIZE = constants.SYMBOL_SDF_SIZE;\n var SYMBOL_SIZE = constants.SYMBOL_SIZE;\n var SYMBOL_STROKE = constants.SYMBOL_STROKE;\n var SYMBOL_SDF = {};\n var SYMBOL_SVG_CIRCLE = Drawing.symbolFuncs[0](SYMBOL_SIZE * 0.05);\n function getSymbolSdf(d, trace) {\n var symbol = d.mx;\n if (symbol === \"circle\") return null;\n var symbolPath, symbolSdf;\n var symbolNumber = Drawing.symbolNumber(symbol);\n var symbolFunc = Drawing.symbolFuncs[symbolNumber % 100];\n var symbolNoDot = !!Drawing.symbolNoDot[symbolNumber % 100];\n var symbolNoFill = !!Drawing.symbolNoFill[symbolNumber % 100];\n var isDot = helpers.isDotSymbol(symbol);\n if (d.ma) symbol += \"_\" + d.ma;\n if (SYMBOL_SDF[symbol]) return SYMBOL_SDF[symbol];\n var angle = Drawing.getMarkerAngle(d, trace);\n if (isDot && !symbolNoDot) {\n symbolPath = symbolFunc(SYMBOL_SIZE * 1.1, angle) + SYMBOL_SVG_CIRCLE;\n } else {\n symbolPath = symbolFunc(SYMBOL_SIZE, angle);\n }\n symbolSdf = svgSdf(symbolPath, {\n w: SYMBOL_SDF_SIZE,\n h: SYMBOL_SDF_SIZE,\n viewBox: [-SYMBOL_SIZE, -SYMBOL_SIZE, SYMBOL_SIZE, SYMBOL_SIZE],\n stroke: symbolNoFill ? SYMBOL_STROKE : -SYMBOL_STROKE\n });\n SYMBOL_SDF[symbol] = symbolSdf;\n return symbolSdf || null;\n }\n function convertLinePositions(gd, trace, positions) {\n var len = positions.length;\n var count = len / 2;\n var linePositions;\n var i;\n if (subTypes.hasLines(trace) && count) {\n if (trace.line.shape === \"hv\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1])) {\n linePositions.push(NaN, NaN, NaN, NaN);\n } else {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n if (!isNaN(positions[i * 2 + 2]) && !isNaN(positions[i * 2 + 3])) {\n linePositions.push(positions[i * 2 + 2], positions[i * 2 + 1]);\n } else {\n linePositions.push(NaN, NaN);\n }\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else if (trace.line.shape === \"hvh\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1]) || isNaN(positions[i * 2 + 2]) || isNaN(positions[i * 2 + 3])) {\n if (!isNaN(positions[i * 2]) && !isNaN(positions[i * 2 + 1])) {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n } else {\n linePositions.push(NaN, NaN);\n }\n linePositions.push(NaN, NaN);\n } else {\n var midPtX = (positions[i * 2] + positions[i * 2 + 2]) / 2;\n linePositions.push(\n positions[i * 2],\n positions[i * 2 + 1],\n midPtX,\n positions[i * 2 + 1],\n midPtX,\n positions[i * 2 + 3]\n );\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else if (trace.line.shape === \"vhv\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1]) || isNaN(positions[i * 2 + 2]) || isNaN(positions[i * 2 + 3])) {\n if (!isNaN(positions[i * 2]) && !isNaN(positions[i * 2 + 1])) {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n } else {\n linePositions.push(NaN, NaN);\n }\n linePositions.push(NaN, NaN);\n } else {\n var midPtY = (positions[i * 2 + 1] + positions[i * 2 + 3]) / 2;\n linePositions.push(\n positions[i * 2],\n positions[i * 2 + 1],\n positions[i * 2],\n midPtY,\n positions[i * 2 + 2],\n midPtY\n );\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else if (trace.line.shape === \"vh\") {\n linePositions = [];\n for (i = 0; i < count - 1; i++) {\n if (isNaN(positions[i * 2]) || isNaN(positions[i * 2 + 1])) {\n linePositions.push(NaN, NaN, NaN, NaN);\n } else {\n linePositions.push(positions[i * 2], positions[i * 2 + 1]);\n if (!isNaN(positions[i * 2 + 2]) && !isNaN(positions[i * 2 + 3])) {\n linePositions.push(positions[i * 2], positions[i * 2 + 3]);\n } else {\n linePositions.push(NaN, NaN);\n }\n }\n }\n linePositions.push(positions[len - 2], positions[len - 1]);\n } else {\n linePositions = positions;\n }\n }\n var hasNaN = false;\n for (i = 0; i < linePositions.length; i++) {\n if (isNaN(linePositions[i])) {\n hasNaN = true;\n break;\n }\n }\n var join = hasNaN || linePositions.length > constants.TOO_MANY_POINTS ? \"rect\" : subTypes.hasMarkers(trace) ? \"rect\" : \"round\";\n if (hasNaN && trace.connectgaps) {\n var lastX = linePositions[0];\n var lastY = linePositions[1];\n for (i = 0; i < linePositions.length; i += 2) {\n if (isNaN(linePositions[i]) || isNaN(linePositions[i + 1])) {\n linePositions[i] = lastX;\n linePositions[i + 1] = lastY;\n } else {\n lastX = linePositions[i];\n lastY = linePositions[i + 1];\n }\n }\n }\n return {\n join,\n positions: linePositions\n };\n }\n function convertErrorBarPositions(gd, trace, positions, x, y) {\n var makeComputeError = Registry.getComponentMethod(\"errorbars\", \"makeComputeError\");\n var xa = AxisIDs.getFromId(gd, trace.xaxis, \"x\");\n var ya = AxisIDs.getFromId(gd, trace.yaxis, \"y\");\n var count = positions.length / 2;\n var out = {};\n function convertOneAxis(coords, ax) {\n var axLetter = ax._id.charAt(0);\n var opts = trace[\"error_\" + axLetter];\n if (opts && opts.visible && (ax.type === \"linear\" || ax.type === \"log\")) {\n var computeError = makeComputeError(opts);\n var pOffset = { x: 0, y: 1 }[axLetter];\n var eOffset = { x: [0, 1, 2, 3], y: [2, 3, 0, 1] }[axLetter];\n var errors = new Float64Array(4 * count);\n var minShoe = Infinity;\n var maxHat = -Infinity;\n for (var i = 0, j = 0; i < count; i++, j += 4) {\n var dc = coords[i];\n if (isNumeric(dc)) {\n var dl = positions[i * 2 + pOffset];\n var vals = computeError(dc, i);\n var lv = vals[0];\n var hv = vals[1];\n if (isNumeric(lv) && isNumeric(hv)) {\n var shoe = dc - lv;\n var hat = dc + hv;\n errors[j + eOffset[0]] = dl - ax.c2l(shoe);\n errors[j + eOffset[1]] = ax.c2l(hat) - dl;\n errors[j + eOffset[2]] = 0;\n errors[j + eOffset[3]] = 0;\n minShoe = Math.min(minShoe, dc - lv);\n maxHat = Math.max(maxHat, dc + hv);\n }\n }\n }\n out[axLetter] = {\n positions,\n errors,\n _bnds: [minShoe, maxHat]\n };\n }\n }\n convertOneAxis(x, xa);\n convertOneAxis(y, ya);\n return out;\n }\n function convertTextPosition(gd, trace, textOpts, markerOpts) {\n var count = trace._length;\n var out = {};\n var i;\n if (subTypes.hasMarkers(trace)) {\n var fontOpts = textOpts.font;\n var align = textOpts.align;\n var baseline = textOpts.baseline;\n out.offset = new Array(count);\n for (i = 0; i < count; i++) {\n var ms = markerOpts.sizes ? markerOpts.sizes[i] : markerOpts.size;\n var fs = isArrayOrTypedArray(fontOpts) ? fontOpts[i].size : fontOpts.size;\n var a = isArrayOrTypedArray(align) ? align.length > 1 ? align[i] : align[0] : align;\n var b = isArrayOrTypedArray(baseline) ? baseline.length > 1 ? baseline[i] : baseline[0] : baseline;\n var hSign = TEXTOFFSETSIGN[a];\n var vSign = TEXTOFFSETSIGN[b];\n var xPad = ms ? ms / 0.8 + 1 : 0;\n var yPad = -vSign * xPad - vSign * 0.5;\n out.offset[i] = [hSign * xPad / fs, yPad / fs];\n }\n }\n return out;\n }\n module.exports = {\n style: convertStyle,\n markerStyle: convertMarkerStyle,\n markerSelection: convertMarkerSelection,\n linePositions: convertLinePositions,\n errorBarPositions: convertErrorBarPositions,\n textPosition: convertTextPosition\n };\n }\n });\n\n // src/traces/scattergl/scene_update.js\n var require_scene_update = __commonJS({\n \"src/traces/scattergl/scene_update.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function sceneUpdate(gd, subplot) {\n var scene = subplot._scene;\n var resetOpts = {\n // number of traces in subplot, since scene:subplot -> 1:1\n count: 0,\n // whether scene requires init hook in plot call (dirty plot call)\n dirty: true,\n // last used options\n lineOptions: [],\n fillOptions: [],\n markerOptions: [],\n markerSelectedOptions: [],\n markerUnselectedOptions: [],\n errorXOptions: [],\n errorYOptions: [],\n textOptions: [],\n textSelectedOptions: [],\n textUnselectedOptions: [],\n // selection batches\n selectBatch: [],\n unselectBatch: []\n };\n var initOpts = {\n fill2d: false,\n scatter2d: false,\n error2d: false,\n line2d: false,\n glText: false,\n select2d: false\n };\n if (!subplot._scene) {\n scene = subplot._scene = {};\n scene.init = function init() {\n Lib.extendFlat(scene, initOpts, resetOpts);\n };\n scene.init();\n scene.update = function update(opt) {\n var opts = Lib.repeat(opt, scene.count);\n if (scene.fill2d) scene.fill2d.update(opts);\n if (scene.scatter2d) scene.scatter2d.update(opts);\n if (scene.line2d) scene.line2d.update(opts);\n if (scene.error2d) scene.error2d.update(opts.concat(opts));\n if (scene.select2d) scene.select2d.update(opts);\n if (scene.glText) {\n for (var i = 0; i < scene.count; i++) {\n scene.glText[i].update(opt);\n }\n }\n };\n scene.draw = function draw() {\n var count = scene.count;\n var fill2d = scene.fill2d;\n var error2d = scene.error2d;\n var line2d = scene.line2d;\n var scatter2d = scene.scatter2d;\n var glText = scene.glText;\n var select2d = scene.select2d;\n var selectBatch = scene.selectBatch;\n var unselectBatch = scene.unselectBatch;\n for (var i = 0; i < count; i++) {\n if (fill2d && scene.fillOrder[i]) {\n fill2d.draw(scene.fillOrder[i]);\n }\n if (line2d && scene.lineOptions[i]) {\n line2d.draw(i);\n }\n if (error2d) {\n if (scene.errorXOptions[i]) error2d.draw(i);\n if (scene.errorYOptions[i]) error2d.draw(i + count);\n }\n if (scatter2d && scene.markerOptions[i]) {\n if (unselectBatch[i].length) {\n var arg = Lib.repeat([], scene.count);\n arg[i] = unselectBatch[i];\n scatter2d.draw(arg);\n } else if (!selectBatch[i].length) {\n scatter2d.draw(i);\n }\n }\n if (glText[i] && scene.textOptions[i]) {\n glText[i].render();\n }\n }\n if (select2d) {\n select2d.draw(selectBatch);\n }\n scene.dirty = false;\n };\n scene.destroy = function destroy() {\n if (scene.fill2d && scene.fill2d.destroy) scene.fill2d.destroy();\n if (scene.scatter2d && scene.scatter2d.destroy) scene.scatter2d.destroy();\n if (scene.error2d && scene.error2d.destroy) scene.error2d.destroy();\n if (scene.line2d && scene.line2d.destroy) scene.line2d.destroy();\n if (scene.select2d && scene.select2d.destroy) scene.select2d.destroy();\n if (scene.glText) {\n scene.glText.forEach(function(text) {\n if (text.destroy) text.destroy();\n });\n }\n scene.lineOptions = null;\n scene.fillOptions = null;\n scene.markerOptions = null;\n scene.markerSelectedOptions = null;\n scene.markerUnselectedOptions = null;\n scene.errorXOptions = null;\n scene.errorYOptions = null;\n scene.textOptions = null;\n scene.textSelectedOptions = null;\n scene.textUnselectedOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n subplot._scene = null;\n };\n }\n if (!scene.dirty) {\n Lib.extendFlat(scene, resetOpts);\n }\n return scene;\n };\n }\n });\n\n // src/traces/scattergl/calc.js\n var require_calc29 = __commonJS({\n \"src/traces/scattergl/calc.js\"(exports, module) {\n \"use strict\";\n var cluster = require_point_cluster();\n var Lib = require_lib();\n var AxisIDs = require_axis_ids();\n var findExtremes = require_autorange().findExtremes;\n var alignPeriod = require_align_period();\n var scatterCalc = require_calc3();\n var calcMarkerSize = scatterCalc.calcMarkerSize;\n var calcAxisExpansion = scatterCalc.calcAxisExpansion;\n var setFirstScatter = scatterCalc.setFirstScatter;\n var calcColorscale = require_colorscale_calc();\n var convert = require_convert10();\n var sceneUpdate = require_scene_update();\n var BADNUM = require_numerical().BADNUM;\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = trace._xA = AxisIDs.getFromId(gd, trace.xaxis, \"x\");\n var ya = trace._yA = AxisIDs.getFromId(gd, trace.yaxis, \"y\");\n var subplot = fullLayout._plots[trace.xaxis + trace.yaxis];\n var len = trace._length;\n var hasTooManyPoints = len >= TOO_MANY_POINTS;\n var len2 = len * 2;\n var stash = {};\n var i;\n var origX = xa.makeCalcdata(trace, \"x\");\n var origY = ya.makeCalcdata(trace, \"y\");\n var xObj = alignPeriod(trace, xa, \"x\", origX);\n var yObj = alignPeriod(trace, ya, \"y\", origY);\n var x = xObj.vals;\n var y = yObj.vals;\n trace._x = x;\n trace._y = y;\n if (trace.xperiodalignment) {\n trace._origX = origX;\n trace._xStarts = xObj.starts;\n trace._xEnds = xObj.ends;\n }\n if (trace.yperiodalignment) {\n trace._origY = origY;\n trace._yStarts = yObj.starts;\n trace._yEnds = yObj.ends;\n }\n var positions = new Array(len2);\n var _ids = new Array(len);\n for (i = 0; i < len; i++) {\n positions[i * 2] = x[i] === BADNUM ? NaN : x[i];\n positions[i * 2 + 1] = y[i] === BADNUM ? NaN : y[i];\n _ids[i] = i;\n }\n if (xa.type === \"log\") {\n for (i = 0; i < len2; i += 2) {\n positions[i] = xa.c2l(positions[i]);\n }\n }\n if (ya.type === \"log\") {\n for (i = 1; i < len2; i += 2) {\n positions[i] = ya.c2l(positions[i]);\n }\n }\n if (hasTooManyPoints && (xa.type !== \"log\" && ya.type !== \"log\")) {\n stash.tree = cluster(positions);\n } else {\n stash.ids = _ids;\n }\n calcColorscale(gd, trace);\n var opts = sceneOptions(gd, subplot, trace, positions, x, y);\n var scene = sceneUpdate(gd, subplot);\n setFirstScatter(fullLayout, trace);\n var ppad;\n if (!hasTooManyPoints) {\n ppad = calcMarkerSize(trace, len);\n } else if (opts.marker) {\n ppad = opts.marker.sizeAvg || Math.max(opts.marker.size, 3);\n }\n calcAxisExpansion(gd, trace, xa, ya, x, y, ppad);\n if (opts.errorX) expandForErrorBars(trace, xa, opts.errorX);\n if (opts.errorY) expandForErrorBars(trace, ya, opts.errorY);\n if (opts.fill && !scene.fill2d) scene.fill2d = true;\n if (opts.marker && !scene.scatter2d) scene.scatter2d = true;\n if (opts.line && !scene.line2d) scene.line2d = true;\n if ((opts.errorX || opts.errorY) && !scene.error2d) scene.error2d = true;\n if (opts.text && !scene.glText) scene.glText = true;\n if (opts.marker) opts.marker.snap = len;\n scene.lineOptions.push(opts.line);\n scene.errorXOptions.push(opts.errorX);\n scene.errorYOptions.push(opts.errorY);\n scene.fillOptions.push(opts.fill);\n scene.markerOptions.push(opts.marker);\n scene.markerSelectedOptions.push(opts.markerSel);\n scene.markerUnselectedOptions.push(opts.markerUnsel);\n scene.textOptions.push(opts.text);\n scene.textSelectedOptions.push(opts.textSel);\n scene.textUnselectedOptions.push(opts.textUnsel);\n scene.selectBatch.push([]);\n scene.unselectBatch.push([]);\n stash._scene = scene;\n stash.index = scene.count;\n stash.x = x;\n stash.y = y;\n stash.positions = positions;\n scene.count++;\n return [{ x: false, y: false, t: stash, trace }];\n };\n function expandForErrorBars(trace, ax, opts) {\n var extremes = trace._extremes[ax._id];\n var errExt = findExtremes(ax, opts._bnds, { padded: true });\n extremes.min = extremes.min.concat(errExt.min);\n extremes.max = extremes.max.concat(errExt.max);\n }\n function sceneOptions(gd, subplot, trace, positions, x, y) {\n var opts = convert.style(gd, trace);\n if (opts.marker) {\n opts.marker.positions = positions;\n }\n if (opts.line && positions.length > 1) {\n Lib.extendFlat(\n opts.line,\n convert.linePositions(gd, trace, positions)\n );\n }\n if (opts.errorX || opts.errorY) {\n var errors = convert.errorBarPositions(gd, trace, positions, x, y);\n if (opts.errorX) {\n Lib.extendFlat(opts.errorX, errors.x);\n }\n if (opts.errorY) {\n Lib.extendFlat(opts.errorY, errors.y);\n }\n }\n if (opts.text) {\n Lib.extendFlat(\n opts.text,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.marker)\n );\n Lib.extendFlat(\n opts.textSel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerSel)\n );\n Lib.extendFlat(\n opts.textUnsel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerUnsel)\n );\n }\n return opts;\n }\n }\n });\n\n // src/traces/scattergl/edit_style.js\n var require_edit_style = __commonJS({\n \"src/traces/scattergl/edit_style.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var DESELECTDIM = require_interactions().DESELECTDIM;\n function styleTextSelection(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var scene = stash._scene;\n var index = stash.index;\n var els = scene.selectBatch[index];\n var unels = scene.unselectBatch[index];\n var baseOpts = scene.textOptions[index];\n var selOpts = scene.textSelectedOptions[index] || {};\n var unselOpts = scene.textUnselectedOptions[index] || {};\n var opts = Lib.extendFlat({}, baseOpts);\n var i, j;\n if (els.length || unels.length) {\n var stc = selOpts.color;\n var utc = unselOpts.color;\n var base = baseOpts.color;\n var hasArrayBase = Lib.isArrayOrTypedArray(base);\n opts.color = new Array(trace._length);\n for (i = 0; i < els.length; i++) {\n j = els[i];\n opts.color[j] = stc || (hasArrayBase ? base[j] : base);\n }\n for (i = 0; i < unels.length; i++) {\n j = unels[i];\n var basej = hasArrayBase ? base[j] : base;\n opts.color[j] = utc ? utc : stc ? basej : Color2.addOpacity(basej, DESELECTDIM);\n }\n }\n scene.glText[index].update(opts);\n }\n module.exports = {\n styleTextSelection\n };\n }\n });\n\n // src/traces/scattergl/select.js\n var require_select7 = __commonJS({\n \"src/traces/scattergl/select.js\"(exports, module) {\n \"use strict\";\n var subTypes = require_subtypes();\n var styleTextSelection = require_edit_style().styleTextSelection;\n module.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n var scene = stash._scene;\n var index = stash.index;\n if (!scene) return selection;\n var hasText = subTypes.hasText(trace);\n var hasMarkers = subTypes.hasMarkers(trace);\n var hasOnlyLines = !hasMarkers && !hasText;\n if (trace.visible !== true || hasOnlyLines) return selection;\n var els = [];\n var unels = [];\n if (selectionTester !== false && !selectionTester.degenerate) {\n for (var i = 0; i < len; i++) {\n if (selectionTester.contains([stash.xpx[i], stash.ypx[i]], false, i, searchInfo)) {\n els.push(i);\n selection.push({\n pointNumber: i,\n x: xa.c2d(x[i]),\n y: ya.c2d(y[i])\n });\n } else {\n unels.push(i);\n }\n }\n }\n if (hasMarkers) {\n var scatter2d = scene.scatter2d;\n if (!els.length && !unels.length) {\n var baseOpts = new Array(scene.count);\n baseOpts[index] = scene.markerOptions[index];\n scatter2d.update.apply(scatter2d, baseOpts);\n } else if (!scene.selectBatch[index].length && !scene.unselectBatch[index].length) {\n var unselOpts = new Array(scene.count);\n unselOpts[index] = scene.markerUnselectedOptions[index];\n scatter2d.update.apply(scatter2d, unselOpts);\n }\n }\n scene.selectBatch[index] = els;\n scene.unselectBatch[index] = unels;\n if (hasText) {\n styleTextSelection(cd);\n }\n return selection;\n };\n }\n });\n\n // src/traces/scattergl/base_index.js\n var require_base_index = __commonJS({\n \"src/traces/scattergl/base_index.js\"(exports, module) {\n \"use strict\";\n var hover = require_hover16();\n module.exports = {\n moduleType: \"trace\",\n name: \"scattergl\",\n basePlotModule: require_cartesian(),\n categories: [\"gl\", \"regl\", \"cartesian\", \"symbols\", \"errorBarsOK\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes50(),\n supplyDefaults: require_defaults46(),\n crossTraceDefaults: require_cross_trace_defaults2(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels4(),\n calc: require_calc29(),\n hoverPoints: hover.hoverPoints,\n selectPoints: require_select7(),\n meta: {}\n };\n }\n });\n\n // node_modules/color-id/index.js\n var require_color_id = __commonJS({\n \"node_modules/color-id/index.js\"(exports, module) {\n \"use strict\";\n var clamp = require_clamp();\n module.exports = toNumber;\n module.exports.to = toNumber;\n module.exports.from = fromNumber;\n function toNumber(rgba3, normalized) {\n if (normalized == null) normalized = true;\n var r = rgba3[0], g = rgba3[1], b = rgba3[2], a = rgba3[3];\n if (a == null) a = normalized ? 1 : 255;\n if (normalized) {\n r *= 255;\n g *= 255;\n b *= 255;\n a *= 255;\n }\n r = clamp(r, 0, 255) & 255;\n g = clamp(g, 0, 255) & 255;\n b = clamp(b, 0, 255) & 255;\n a = clamp(a, 0, 255) & 255;\n var n = r * 16777216 + (g << 16) + (b << 8) + a;\n return n;\n }\n function fromNumber(n, normalized) {\n n = +n;\n var r = n >>> 24;\n var g = (n & 16711680) >>> 16;\n var b = (n & 65280) >>> 8;\n var a = n & 255;\n if (normalized === false) return [r, g, b, a];\n return [r / 255, g / 255, b / 255, a / 255];\n }\n }\n });\n\n // node_modules/object-assign/index.js\n var require_object_assign = __commonJS({\n \"node_modules/object-assign/index.js\"(exports, module) {\n \"use strict\";\n var getOwnPropertySymbols = Object.getOwnPropertySymbols;\n var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n var propIsEnumerable = Object.prototype.propertyIsEnumerable;\n function toObject(val) {\n if (val === null || val === void 0) {\n throw new TypeError(\"Object.assign cannot be called with null or undefined\");\n }\n return Object(val);\n }\n function shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n }\n var test1 = new String(\"abc\");\n test1[5] = \"de\";\n if (Object.getOwnPropertyNames(test1)[0] === \"5\") {\n return false;\n }\n var test2 = {};\n for (var i = 0; i < 10; i++) {\n test2[\"_\" + String.fromCharCode(i)] = i;\n }\n var order2 = Object.getOwnPropertyNames(test2).map(function(n) {\n return test2[n];\n });\n if (order2.join(\"\") !== \"0123456789\") {\n return false;\n }\n var test3 = {};\n \"abcdefghijklmnopqrst\".split(\"\").forEach(function(letter) {\n test3[letter] = letter;\n });\n if (Object.keys(Object.assign({}, test3)).join(\"\") !== \"abcdefghijklmnopqrst\") {\n return false;\n }\n return true;\n } catch (err) {\n return false;\n }\n }\n module.exports = shouldUseNative() ? Object.assign : function(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n for (var key in from) {\n if (hasOwnProperty2.call(from, key)) {\n to[key] = from[key];\n }\n }\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n return to;\n };\n }\n });\n\n // node_modules/glslify/browser.js\n var require_browser3 = __commonJS({\n \"node_modules/glslify/browser.js\"(exports, module) {\n module.exports = function(strings) {\n if (typeof strings === \"string\") strings = [strings];\n var exprs = [].slice.call(arguments, 1);\n var parts = [];\n for (var i = 0; i < strings.length - 1; i++) {\n parts.push(strings[i], exprs[i] || \"\");\n }\n parts.push(strings[i]);\n return parts.join(\"\");\n };\n }\n });\n\n // node_modules/update-diff/index.js\n var require_update_diff = __commonJS({\n \"node_modules/update-diff/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function updateDiff(obj, diff, mappers) {\n if (!Array.isArray(mappers)) mappers = [].slice.call(arguments, 2);\n for (var i = 0, l = mappers.length; i < l; i++) {\n var dict = mappers[i];\n for (var prop in dict) {\n if (diff[prop] !== void 0 && !Array.isArray(diff[prop]) && obj[prop] === diff[prop]) continue;\n if (prop in diff) {\n var result;\n if (dict[prop] === true) result = diff[prop];\n else if (dict[prop] === false) continue;\n else if (typeof dict[prop] === \"function\") {\n result = dict[prop](diff[prop], obj, diff);\n if (result === void 0) continue;\n }\n obj[prop] = result;\n }\n }\n }\n return obj;\n };\n }\n });\n\n // node_modules/is-iexplorer/index.js\n var require_is_iexplorer = __commonJS({\n \"node_modules/is-iexplorer/index.js\"(exports, module) {\n \"use strict\";\n module.exports = typeof navigator !== \"undefined\" && (/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion));\n }\n });\n\n // node_modules/to-float32/index.js\n var require_to_float32 = __commonJS({\n \"node_modules/to-float32/index.js\"(exports, module) {\n \"use strict\";\n module.exports = float32;\n module.exports.float32 = module.exports.float = float32;\n module.exports.fract32 = module.exports.fract = fract32;\n var narr = new Float32Array(1);\n function fract32(arr, fract) {\n if (arr.length) {\n if (arr instanceof Float32Array) return new Float32Array(arr.length);\n if (!(fract instanceof Float32Array)) fract = float32(arr);\n for (var i = 0, l = fract.length; i < l; i++) {\n fract[i] = arr[i] - fract[i];\n }\n return fract;\n }\n return float32(arr - float32(arr));\n }\n function float32(arr) {\n if (arr.length) {\n if (arr instanceof Float32Array) return arr;\n return new Float32Array(arr);\n }\n narr[0] = arr;\n return narr[0];\n }\n }\n });\n\n // node_modules/regl-scatter2d/bundle.js\n var require_bundle = __commonJS({\n \"node_modules/regl-scatter2d/bundle.js\"(exports, module) {\n \"use strict\";\n function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s, _e, _x, _r, _arr = [], _n = true, _d = false;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = false;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = true) ;\n } catch (err) {\n _d = true, _e = err;\n } finally {\n try {\n if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n }\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var rgba3 = require_color_normalize();\n var getBounds = require_array_bounds();\n var colorId = require_color_id();\n var cluster = require_point_cluster();\n var extend2 = require_object_assign();\n var glslify = require_browser3();\n var pick = require_pick_by_alias();\n var updateDiff = require_update_diff();\n var flatten = require_flatten_vertex_data();\n var ie = require_is_iexplorer();\n var f32 = require_to_float32();\n var parseRect = require_parse_rect();\n var scatter = Scatter;\n function Scatter(regl, options) {\n var _this = this;\n if (!(this instanceof Scatter)) return new Scatter(regl, options);\n if (typeof regl === \"function\") {\n if (!options) options = {};\n options.regl = regl;\n } else {\n options = regl;\n regl = null;\n }\n if (options && options.length) options.positions = options;\n regl = options.regl;\n var gl2 = regl._gl, paletteTexture, palette = [], paletteIds = {}, groups = [], markerTextures = [null], markerCache = [null];\n var maxColors = 255, maxSize = 100;\n this.tooManyColors = ie;\n paletteTexture = regl.texture({\n data: new Uint8Array(maxColors * 4),\n width: maxColors,\n height: 1,\n type: \"uint8\",\n format: \"rgba\",\n wrapS: \"clamp\",\n wrapT: \"clamp\",\n mag: \"nearest\",\n min: \"nearest\"\n });\n extend2(this, {\n regl,\n gl: gl2,\n groups,\n markerCache,\n markerTextures,\n palette,\n paletteIds,\n paletteTexture,\n maxColors,\n maxSize,\n canvas: gl2.canvas\n });\n this.update(options);\n var shaderOptions = {\n uniforms: {\n constPointSize: !!options.constPointSize,\n opacity: regl.prop(\"opacity\"),\n paletteSize: function paletteSize(ctx, prop) {\n return [_this.tooManyColors ? 0 : maxColors, paletteTexture.height];\n },\n pixelRatio: regl.context(\"pixelRatio\"),\n scale: regl.prop(\"scale\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translate: regl.prop(\"translate\"),\n translateFract: regl.prop(\"translateFract\"),\n markerTexture: regl.prop(\"markerTexture\"),\n paletteTexture\n },\n attributes: {\n // FIXME: optimize these parts\n x: function x(ctx, prop) {\n return prop.xAttr || {\n buffer: prop.positionBuffer,\n stride: 8,\n offset: 0\n };\n },\n y: function y(ctx, prop) {\n return prop.yAttr || {\n buffer: prop.positionBuffer,\n stride: 8,\n offset: 4\n };\n },\n xFract: function xFract(ctx, prop) {\n return prop.xAttr ? {\n constant: [0, 0]\n } : {\n buffer: prop.positionFractBuffer,\n stride: 8,\n offset: 0\n };\n },\n yFract: function yFract(ctx, prop) {\n return prop.yAttr ? {\n constant: [0, 0]\n } : {\n buffer: prop.positionFractBuffer,\n stride: 8,\n offset: 4\n };\n },\n size: function size(ctx, prop) {\n return prop.size.length ? {\n buffer: prop.sizeBuffer,\n stride: 2,\n offset: 0\n } : {\n constant: [Math.round(prop.size * 255 / _this.maxSize)]\n };\n },\n borderSize: function borderSize(ctx, prop) {\n return prop.borderSize.length ? {\n buffer: prop.sizeBuffer,\n stride: 2,\n offset: 1\n } : {\n constant: [Math.round(prop.borderSize * 255 / _this.maxSize)]\n };\n },\n colorId: function colorId2(ctx, prop) {\n return prop.color.length ? {\n buffer: prop.colorBuffer,\n stride: _this.tooManyColors ? 8 : 4,\n offset: 0\n } : {\n constant: _this.tooManyColors ? palette.slice(prop.color * 4, prop.color * 4 + 4) : [prop.color]\n };\n },\n borderColorId: function borderColorId(ctx, prop) {\n return prop.borderColor.length ? {\n buffer: prop.colorBuffer,\n stride: _this.tooManyColors ? 8 : 4,\n offset: _this.tooManyColors ? 4 : 2\n } : {\n constant: _this.tooManyColors ? palette.slice(prop.borderColor * 4, prop.borderColor * 4 + 4) : [prop.borderColor]\n };\n },\n isActive: function isActive(ctx, prop) {\n return prop.activation === true ? {\n constant: [1]\n } : prop.activation ? prop.activation : {\n constant: [0]\n };\n }\n },\n blend: {\n enable: true,\n color: [0, 0, 0, 1],\n // photoshop blending\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n scissor: {\n enable: true,\n box: regl.prop(\"viewport\")\n },\n viewport: regl.prop(\"viewport\"),\n stencil: {\n enable: false\n },\n depth: {\n enable: false\n },\n elements: regl.prop(\"elements\"),\n count: regl.prop(\"count\"),\n offset: regl.prop(\"offset\"),\n primitive: \"points\"\n };\n var markerOptions = extend2({}, shaderOptions);\n markerOptions.frag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nuniform float opacity;\\nuniform sampler2D markerTexture;\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragWidth, fragBorderColorLevel, fragColorLevel;\\n\\nfloat smoothStep(float x, float y) {\\n return 1.0 / (1.0 + exp(50.0*(x - y)));\\n}\\n\\nvoid main() {\\n float dist = texture2D(markerTexture, gl_PointCoord).r, delta = fragWidth;\\n\\n // max-distance alpha\\n if (dist < 0.003) discard;\\n\\n // null-border case\\n if (fragBorderColorLevel == fragColorLevel || fragBorderColor.a == 0.) {\\n float colorAmt = smoothstep(.5 - delta, .5 + delta, dist);\\n gl_FragColor = vec4(fragColor.rgb, colorAmt * fragColor.a * opacity);\\n }\\n else {\\n float borderColorAmt = smoothstep(fragBorderColorLevel - delta, fragBorderColorLevel + delta, dist);\\n float colorAmt = smoothstep(fragColorLevel - delta, fragColorLevel + delta, dist);\\n\\n vec4 color = fragBorderColor;\\n color.a *= borderColorAmt;\\n color = mix(color, fragColor, colorAmt);\\n color.a *= opacity;\\n\\n gl_FragColor = color;\\n }\\n\\n}\\n\"]);\n markerOptions.vert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute float x, y, xFract, yFract;\\nattribute float size, borderSize;\\nattribute vec4 colorId, borderColorId;\\nattribute float isActive;\\n\\n// `invariant` effectively turns off optimizations for the position.\\n// We need this because -fast-math on M1 Macs is re-ordering\\n// floating point operations in a way that causes floating point\\n// precision limits to put points in the wrong locations.\\ninvariant gl_Position;\\n\\nuniform bool constPointSize;\\nuniform float pixelRatio;\\nuniform vec2 scale, scaleFract, translate, translateFract, paletteSize;\\nuniform sampler2D paletteTexture;\\n\\nconst float maxSize = 100.;\\nconst float borderLevel = .5;\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragPointSize, fragBorderRadius, fragWidth, fragBorderColorLevel, fragColorLevel;\\n\\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\\n\\nbool isDirect = (paletteSize.x < 1.);\\n\\nvec4 getColor(vec4 id) {\\n return isDirect ? id / 255. : texture2D(paletteTexture,\\n vec2(\\n (id.x + .5) / paletteSize.x,\\n (id.y + .5) / paletteSize.y\\n )\\n );\\n}\\n\\nvoid main() {\\n // ignore inactive points\\n if (isActive == 0.) return;\\n\\n vec2 position = vec2(x, y);\\n vec2 positionFract = vec2(xFract, yFract);\\n\\n vec4 color = getColor(colorId);\\n vec4 borderColor = getColor(borderColorId);\\n\\n float size = size * maxSize / 255.;\\n float borderSize = borderSize * maxSize / 255.;\\n\\n gl_PointSize = 2. * size * pointSizeScale;\\n fragPointSize = size * pixelRatio;\\n\\n vec2 pos = (position + translate) * scale\\n + (positionFract + translateFract) * scale\\n + (position + translate) * scaleFract\\n + (positionFract + translateFract) * scaleFract;\\n\\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\\n\\n fragColor = color;\\n fragBorderColor = borderColor;\\n fragWidth = 1. / gl_PointSize;\\n\\n fragBorderColorLevel = clamp(borderLevel - borderLevel * borderSize / size, 0., 1.);\\n fragColorLevel = clamp(borderLevel + (1. - borderLevel) * borderSize / size, 0., 1.);\\n}\\n\"]);\n this.drawMarker = regl(markerOptions);\n var circleOptions = extend2({}, shaderOptions);\n circleOptions.frag = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragBorderRadius, fragWidth;\\n\\nuniform float opacity;\\n\\nfloat smoothStep(float edge0, float edge1, float x) {\\n\tfloat t;\\n\tt = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\\n\treturn t * t * (3.0 - 2.0 * t);\\n}\\n\\nvoid main() {\\n\tfloat radius, alpha = 1.0, delta = fragWidth;\\n\\n\tradius = length(2.0 * gl_PointCoord.xy - 1.0);\\n\\n\tif (radius > 1.0 + delta) {\\n\t\tdiscard;\\n\t}\\n\\n\talpha -= smoothstep(1.0 - delta, 1.0 + delta, radius);\\n\\n\tfloat borderRadius = fragBorderRadius;\\n\tfloat ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius);\\n\tvec4 color = mix(fragColor, fragBorderColor, ratio);\\n\tcolor.a *= alpha * opacity;\\n\tgl_FragColor = color;\\n}\\n\"]);\n circleOptions.vert = glslify([\"precision highp float;\\n#define GLSLIFY 1\\n\\nattribute float x, y, xFract, yFract;\\nattribute float size, borderSize;\\nattribute vec4 colorId, borderColorId;\\nattribute float isActive;\\n\\n// `invariant` effectively turns off optimizations for the position.\\n// We need this because -fast-math on M1 Macs is re-ordering\\n// floating point operations in a way that causes floating point\\n// precision limits to put points in the wrong locations.\\ninvariant gl_Position;\\n\\nuniform bool constPointSize;\\nuniform float pixelRatio;\\nuniform vec2 paletteSize, scale, scaleFract, translate, translateFract;\\nuniform sampler2D paletteTexture;\\n\\nconst float maxSize = 100.;\\n\\nvarying vec4 fragColor, fragBorderColor;\\nvarying float fragBorderRadius, fragWidth;\\n\\nfloat pointSizeScale = (constPointSize) ? 2. : pixelRatio;\\n\\nbool isDirect = (paletteSize.x < 1.);\\n\\nvec4 getColor(vec4 id) {\\n return isDirect ? id / 255. : texture2D(paletteTexture,\\n vec2(\\n (id.x + .5) / paletteSize.x,\\n (id.y + .5) / paletteSize.y\\n )\\n );\\n}\\n\\nvoid main() {\\n // ignore inactive points\\n if (isActive == 0.) return;\\n\\n vec2 position = vec2(x, y);\\n vec2 positionFract = vec2(xFract, yFract);\\n\\n vec4 color = getColor(colorId);\\n vec4 borderColor = getColor(borderColorId);\\n\\n float size = size * maxSize / 255.;\\n float borderSize = borderSize * maxSize / 255.;\\n\\n gl_PointSize = (size + borderSize) * pointSizeScale;\\n\\n vec2 pos = (position + translate) * scale\\n + (positionFract + translateFract) * scale\\n + (position + translate) * scaleFract\\n + (positionFract + translateFract) * scaleFract;\\n\\n gl_Position = vec4(pos * 2. - 1., 0., 1.);\\n\\n fragBorderRadius = 1. - 2. * borderSize / (size + borderSize);\\n fragColor = color;\\n fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor;\\n fragWidth = 1. / gl_PointSize;\\n}\\n\"]);\n if (ie) {\n circleOptions.frag = circleOptions.frag.replace(\"smoothstep\", \"smoothStep\");\n markerOptions.frag = markerOptions.frag.replace(\"smoothstep\", \"smoothStep\");\n }\n this.drawCircle = regl(circleOptions);\n }\n Scatter.defaults = {\n color: \"black\",\n borderColor: \"transparent\",\n borderSize: 0,\n size: 12,\n opacity: 1,\n marker: void 0,\n viewport: null,\n range: null,\n pixelSize: null,\n count: 0,\n offset: 0,\n bounds: null,\n positions: [],\n snap: 1e4\n };\n Scatter.prototype.render = function() {\n if (arguments.length) {\n this.update.apply(this, arguments);\n }\n this.draw();\n return this;\n };\n Scatter.prototype.draw = function() {\n var _this2 = this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var groups = this.groups;\n if (args.length === 1 && Array.isArray(args[0]) && (args[0][0] === null || Array.isArray(args[0][0]))) {\n args = args[0];\n }\n this.regl._refresh();\n if (args.length) {\n for (var i = 0; i < args.length; i++) {\n this.drawItem(i, args[i]);\n }\n } else {\n groups.forEach(function(group, i2) {\n _this2.drawItem(i2);\n });\n }\n return this;\n };\n Scatter.prototype.drawItem = function(id, els) {\n var groups = this.groups;\n var group = groups[id];\n if (typeof els === \"number\") {\n id = els;\n group = groups[els];\n els = null;\n }\n if (!(group && group.count && group.opacity)) return;\n if (group.activation[0]) {\n this.drawCircle(this.getMarkerDrawOptions(0, group, els));\n }\n var batch = [];\n for (var i = 1; i < group.activation.length; i++) {\n if (!group.activation[i] || group.activation[i] !== true && !group.activation[i].data.length) continue;\n batch.push.apply(batch, _toConsumableArray(this.getMarkerDrawOptions(i, group, els)));\n }\n if (batch.length) {\n this.drawMarker(batch);\n }\n };\n Scatter.prototype.getMarkerDrawOptions = function(markerId, group, elements) {\n var range = group.range, tree = group.tree, viewport = group.viewport, activation = group.activation, selectionBuffer = group.selectionBuffer, count = group.count;\n var regl = this.regl;\n if (!tree) {\n if (elements) {\n return [extend2({}, group, {\n markerTexture: this.markerTextures[markerId],\n activation: activation[markerId],\n count: elements.length,\n elements,\n offset: 0\n })];\n }\n return [extend2({}, group, {\n markerTexture: this.markerTextures[markerId],\n activation: activation[markerId],\n offset: 0\n })];\n }\n var batch = [];\n var lod = tree.range(range, {\n lod: true,\n px: [(range[2] - range[0]) / viewport.width, (range[3] - range[1]) / viewport.height]\n });\n if (elements) {\n var markerActivation = activation[markerId];\n var mask = markerActivation.data;\n var data = new Uint8Array(count);\n for (var i = 0; i < elements.length; i++) {\n var id = elements[i];\n data[id] = mask ? mask[id] : 1;\n }\n selectionBuffer.subdata(data);\n }\n for (var l = lod.length; l--; ) {\n var _lod$l = _slicedToArray(lod[l], 2), from = _lod$l[0], to = _lod$l[1];\n batch.push(extend2({}, group, {\n markerTexture: this.markerTextures[markerId],\n activation: elements ? selectionBuffer : activation[markerId],\n offset: from,\n count: to - from\n }));\n }\n return batch;\n };\n Scatter.prototype.update = function() {\n var _this3 = this;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (!args.length) return;\n if (args.length === 1 && Array.isArray(args[0])) args = args[0];\n var groups = this.groups, gl2 = this.gl, regl = this.regl, maxSize = this.maxSize, maxColors = this.maxColors, palette = this.palette;\n this.groups = groups = args.map(function(options, i) {\n var group = groups[i];\n if (options === void 0) return group;\n if (options === null) options = {\n positions: null\n };\n else if (typeof options === \"function\") options = {\n ondraw: options\n };\n else if (typeof options[0] === \"number\") options = {\n positions: options\n };\n options = pick(options, {\n positions: \"positions data points\",\n snap: \"snap cluster lod tree\",\n size: \"sizes size radius\",\n borderSize: \"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\",\n color: \"colors color fill fill-color fillColor\",\n borderColor: \"borderColors borderColor stroke stroke-color strokeColor\",\n marker: \"markers marker shape\",\n range: \"range dataBox databox\",\n viewport: \"viewport viewPort viewBox viewbox\",\n opacity: \"opacity alpha transparency\",\n bounds: \"bound bounds boundaries limits\",\n tooManyColors: \"tooManyColors palette paletteMode optimizePalette enablePalette\"\n });\n if (options.positions === null) options.positions = [];\n if (options.tooManyColors != null) _this3.tooManyColors = options.tooManyColors;\n if (!group) {\n groups[i] = group = {\n id: i,\n scale: null,\n translate: null,\n scaleFract: null,\n translateFract: null,\n // buffers for active markers\n activation: [],\n // buffer for filtered markers\n selectionBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"stream\",\n type: \"uint8\"\n }),\n // buffers with data: it is faster to switch them per-pass\n // than provide one congregate buffer\n sizeBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"uint8\"\n }),\n colorBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"uint8\"\n }),\n positionBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"float\"\n }),\n positionFractBuffer: regl.buffer({\n data: new Uint8Array(0),\n usage: \"dynamic\",\n type: \"float\"\n })\n };\n options = extend2({}, Scatter.defaults, options);\n }\n if (options.positions && !(\"marker\" in options)) {\n options.marker = group.marker;\n delete group.marker;\n }\n if (options.marker && !(\"positions\" in options)) {\n options.positions = group.positions;\n delete group.positions;\n }\n var hasSize = 0, hasColor = 0;\n updateDiff(group, options, [{\n snap: true,\n size: function size2(s, group2) {\n if (s == null) s = Scatter.defaults.size;\n hasSize += s && s.length ? 1 : 0;\n return s;\n },\n borderSize: function borderSize2(s, group2) {\n if (s == null) s = Scatter.defaults.borderSize;\n hasSize += s && s.length ? 1 : 0;\n return s;\n },\n opacity: parseFloat,\n // add colors to palette, save references\n color: function color3(c, group2) {\n if (c == null) c = Scatter.defaults.color;\n c = _this3.updateColor(c);\n hasColor++;\n return c;\n },\n borderColor: function borderColor2(c, group2) {\n if (c == null) c = Scatter.defaults.borderColor;\n c = _this3.updateColor(c);\n hasColor++;\n return c;\n },\n bounds: function bounds(_bounds, group2, options2) {\n if (!(\"range\" in options2)) options2.range = null;\n return _bounds;\n },\n positions: function positions(_positions, group2, options2) {\n var snap = group2.snap;\n var positionBuffer = group2.positionBuffer, positionFractBuffer = group2.positionFractBuffer, selectionBuffer = group2.selectionBuffer;\n if (_positions.x || _positions.y) {\n if (_positions.x.length) {\n group2.xAttr = {\n buffer: regl.buffer(_positions.x),\n offset: 0,\n stride: 4,\n count: _positions.x.length\n };\n } else {\n group2.xAttr = {\n buffer: _positions.x.buffer,\n offset: _positions.x.offset * 4 || 0,\n stride: (_positions.x.stride || 1) * 4,\n count: _positions.x.count\n };\n }\n if (_positions.y.length) {\n group2.yAttr = {\n buffer: regl.buffer(_positions.y),\n offset: 0,\n stride: 4,\n count: _positions.y.length\n };\n } else {\n group2.yAttr = {\n buffer: _positions.y.buffer,\n offset: _positions.y.offset * 4 || 0,\n stride: (_positions.y.stride || 1) * 4,\n count: _positions.y.count\n };\n }\n group2.count = Math.max(group2.xAttr.count, group2.yAttr.count);\n return _positions;\n }\n _positions = flatten(_positions, \"float64\");\n var count2 = group2.count = Math.floor(_positions.length / 2);\n var bounds = group2.bounds = count2 ? getBounds(_positions, 2) : null;\n if (!options2.range && !group2.range) {\n delete group2.range;\n options2.range = bounds;\n }\n if (!options2.marker && !group2.marker) {\n delete group2.marker;\n options2.marker = null;\n }\n if (snap && (snap === true || count2 > snap)) {\n group2.tree = cluster(_positions, {\n bounds\n });\n } else if (snap && snap.length) {\n group2.tree = snap;\n }\n if (group2.tree) {\n var opts = {\n primitive: \"points\",\n usage: \"static\",\n data: group2.tree,\n type: \"uint32\"\n };\n if (group2.elements) group2.elements(opts);\n else group2.elements = regl.elements(opts);\n }\n var float_data = f32.float32(_positions);\n positionBuffer({\n data: float_data,\n usage: \"dynamic\"\n });\n var frac_data = f32.fract32(_positions, float_data);\n positionFractBuffer({\n data: frac_data,\n usage: \"dynamic\"\n });\n selectionBuffer({\n data: new Uint8Array(count2),\n type: \"uint8\",\n usage: \"stream\"\n });\n return _positions;\n }\n }, {\n // create marker ids corresponding to known marker textures\n marker: function marker(markers, group2, options2) {\n var activation = group2.activation;\n activation.forEach(function(buffer) {\n return buffer && buffer.destroy && buffer.destroy();\n });\n activation.length = 0;\n if (!markers || typeof markers[0] === \"number\") {\n var id = _this3.addMarker(markers);\n activation[id] = true;\n } else {\n var markerMasks = [];\n for (var _i = 0, l = Math.min(markers.length, group2.count); _i < l; _i++) {\n var _id = _this3.addMarker(markers[_i]);\n if (!markerMasks[_id]) markerMasks[_id] = new Uint8Array(group2.count);\n markerMasks[_id][_i] = 1;\n }\n for (var _id2 = 0; _id2 < markerMasks.length; _id2++) {\n if (!markerMasks[_id2]) continue;\n var opts = {\n data: markerMasks[_id2],\n type: \"uint8\",\n usage: \"static\"\n };\n if (!activation[_id2]) {\n activation[_id2] = regl.buffer(opts);\n } else {\n activation[_id2](opts);\n }\n activation[_id2].data = markerMasks[_id2];\n }\n }\n return markers;\n },\n range: function range(_range, group2, options2) {\n var bounds = group2.bounds;\n if (!bounds) return;\n if (!_range) _range = bounds;\n group2.scale = [1 / (_range[2] - _range[0]), 1 / (_range[3] - _range[1])];\n group2.translate = [-_range[0], -_range[1]];\n group2.scaleFract = f32.fract(group2.scale);\n group2.translateFract = f32.fract(group2.translate);\n return _range;\n },\n viewport: function viewport(vp) {\n var rect = parseRect(vp || [gl2.drawingBufferWidth, gl2.drawingBufferHeight]);\n return rect;\n }\n }]);\n if (hasSize) {\n var _group = group, count = _group.count, size = _group.size, borderSize = _group.borderSize, sizeBuffer = _group.sizeBuffer;\n var sizes = new Uint8Array(count * 2);\n if (size.length || borderSize.length) {\n for (var _i2 = 0; _i2 < count; _i2++) {\n sizes[_i2 * 2] = Math.round((size[_i2] == null ? size : size[_i2]) * 255 / maxSize);\n sizes[_i2 * 2 + 1] = Math.round((borderSize[_i2] == null ? borderSize : borderSize[_i2]) * 255 / maxSize);\n }\n }\n sizeBuffer({\n data: sizes,\n usage: \"dynamic\"\n });\n }\n if (hasColor) {\n var _group2 = group, _count = _group2.count, color2 = _group2.color, borderColor = _group2.borderColor, colorBuffer = _group2.colorBuffer;\n var colors;\n if (_this3.tooManyColors) {\n if (color2.length || borderColor.length) {\n colors = new Uint8Array(_count * 8);\n for (var _i3 = 0; _i3 < _count; _i3++) {\n var _colorId = color2[_i3];\n colors[_i3 * 8] = palette[_colorId * 4];\n colors[_i3 * 8 + 1] = palette[_colorId * 4 + 1];\n colors[_i3 * 8 + 2] = palette[_colorId * 4 + 2];\n colors[_i3 * 8 + 3] = palette[_colorId * 4 + 3];\n var borderColorId = borderColor[_i3];\n colors[_i3 * 8 + 4] = palette[borderColorId * 4];\n colors[_i3 * 8 + 5] = palette[borderColorId * 4 + 1];\n colors[_i3 * 8 + 6] = palette[borderColorId * 4 + 2];\n colors[_i3 * 8 + 7] = palette[borderColorId * 4 + 3];\n }\n }\n } else {\n if (color2.length || borderColor.length) {\n colors = new Uint8Array(_count * 4 + 2);\n for (var _i4 = 0; _i4 < _count; _i4++) {\n if (color2[_i4] != null) {\n colors[_i4 * 4] = color2[_i4] % maxColors;\n colors[_i4 * 4 + 1] = Math.floor(color2[_i4] / maxColors);\n }\n if (borderColor[_i4] != null) {\n colors[_i4 * 4 + 2] = borderColor[_i4] % maxColors;\n colors[_i4 * 4 + 3] = Math.floor(borderColor[_i4] / maxColors);\n }\n }\n }\n }\n colorBuffer({\n data: colors || new Uint8Array(0),\n type: \"uint8\",\n usage: \"dynamic\"\n });\n }\n return group;\n });\n };\n Scatter.prototype.addMarker = function(sdf) {\n var markerTextures = this.markerTextures, regl = this.regl, markerCache = this.markerCache;\n var pos = sdf == null ? 0 : markerCache.indexOf(sdf);\n if (pos >= 0) return pos;\n var distArr;\n if (sdf instanceof Uint8Array || sdf instanceof Uint8ClampedArray) {\n distArr = sdf;\n } else {\n distArr = new Uint8Array(sdf.length);\n for (var i = 0, l = sdf.length; i < l; i++) {\n distArr[i] = sdf[i] * 255;\n }\n }\n var radius = Math.floor(Math.sqrt(distArr.length));\n pos = markerTextures.length;\n markerCache.push(sdf);\n markerTextures.push(regl.texture({\n channels: 1,\n data: distArr,\n radius,\n mag: \"linear\",\n min: \"linear\"\n }));\n return pos;\n };\n Scatter.prototype.updateColor = function(colors) {\n var paletteIds = this.paletteIds, palette = this.palette, maxColors = this.maxColors;\n if (!Array.isArray(colors)) {\n colors = [colors];\n }\n var idx = [];\n if (typeof colors[0] === \"number\") {\n var grouped = [];\n if (Array.isArray(colors)) {\n for (var i = 0; i < colors.length; i += 4) {\n grouped.push(colors.slice(i, i + 4));\n }\n } else {\n for (var _i5 = 0; _i5 < colors.length; _i5 += 4) {\n grouped.push(colors.subarray(_i5, _i5 + 4));\n }\n }\n colors = grouped;\n }\n for (var _i6 = 0; _i6 < colors.length; _i6++) {\n var color2 = colors[_i6];\n color2 = rgba3(color2, \"uint8\");\n var id = colorId(color2, false);\n if (paletteIds[id] == null) {\n var pos = palette.length;\n paletteIds[id] = Math.floor(pos / 4);\n palette[pos] = color2[0];\n palette[pos + 1] = color2[1];\n palette[pos + 2] = color2[2];\n palette[pos + 3] = color2[3];\n }\n idx[_i6] = paletteIds[id];\n }\n if (!this.tooManyColors && palette.length > maxColors * 4) this.tooManyColors = true;\n this.updatePalette(palette);\n return idx.length === 1 ? idx[0] : idx;\n };\n Scatter.prototype.updatePalette = function(palette) {\n if (this.tooManyColors) return;\n var maxColors = this.maxColors, paletteTexture = this.paletteTexture;\n var requiredHeight = Math.ceil(palette.length * 0.25 / maxColors);\n if (requiredHeight > 1) {\n palette = palette.slice();\n for (var i = palette.length * 0.25 % maxColors; i < requiredHeight * maxColors; i++) {\n palette.push(0, 0, 0, 0);\n }\n }\n if (paletteTexture.height < requiredHeight) {\n paletteTexture.resize(maxColors, requiredHeight);\n }\n paletteTexture.subimage({\n width: Math.min(palette.length * 0.25, maxColors),\n height: requiredHeight,\n data: palette\n }, 0, 0);\n };\n Scatter.prototype.destroy = function() {\n this.groups.forEach(function(group) {\n group.sizeBuffer.destroy();\n group.positionBuffer.destroy();\n group.positionFractBuffer.destroy();\n group.colorBuffer.destroy();\n group.activation.forEach(function(b) {\n return b && b.destroy && b.destroy();\n });\n group.selectionBuffer.destroy();\n if (group.elements) group.elements.destroy();\n });\n this.groups.length = 0;\n this.paletteTexture.destroy();\n this.markerTextures.forEach(function(txt) {\n return txt && txt.destroy && txt.destroy();\n });\n return this;\n };\n var extend$1 = require_object_assign();\n var reglScatter2d = function reglScatter2d2(regl, options) {\n var scatter$1 = new scatter(regl, options);\n var render = scatter$1.render.bind(scatter$1);\n extend$1(render, {\n render,\n update: scatter$1.update.bind(scatter$1),\n draw: scatter$1.draw.bind(scatter$1),\n destroy: scatter$1.destroy.bind(scatter$1),\n regl: scatter$1.regl,\n gl: scatter$1.gl,\n canvas: scatter$1.gl.canvas,\n groups: scatter$1.groups,\n markers: scatter$1.markerCache,\n palette: scatter$1.palette\n });\n return render;\n };\n module.exports = reglScatter2d;\n }\n });\n\n // node_modules/earcut/src/earcut.js\n var require_earcut = __commonJS({\n \"node_modules/earcut/src/earcut.js\"(exports, module) {\n \"use strict\";\n module.exports = earcut;\n module.exports.default = earcut;\n function earcut(data, holeIndices, dim) {\n dim = dim || 2;\n var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];\n if (!outerNode || outerNode.next === outerNode.prev) return triangles;\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) minX = x;\n if (y < minY) minY = y;\n if (x > maxX) maxX = x;\n if (y > maxY) maxY = y;\n }\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 32767 / invSize : 0;\n }\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize, 0);\n return triangles;\n }\n function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n if (clockwise === signedArea(data, start, end, dim) > 0) {\n for (i = start; i < end; i += dim) last = insertNode(i, data[i], data[i + 1], last);\n } else {\n for (i = end - dim; i >= start; i -= dim) last = insertNode(i, data[i], data[i + 1], last);\n }\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n return last;\n }\n function filterPoints(start, end) {\n if (!start) return start;\n if (!end) end = start;\n var p = start, again;\n do {\n again = false;\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) break;\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n return end;\n }\n function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) return;\n if (!pass && invSize) indexCurve(ear, minX, minY, invSize);\n var stop = ear, prev, next;\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i / dim | 0);\n triangles.push(ear.i / dim | 0);\n triangles.push(next.i / dim | 0);\n removeNode(ear);\n ear = next.next;\n stop = next.next;\n continue;\n }\n ear = next;\n if (ear === stop) {\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n break;\n }\n }\n }\n function isEar(ear) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) return false;\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n var p = c.next;\n while (p !== a) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.next;\n }\n return true;\n }\n function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) return false;\n var ax = a.x, bx = b.x, cx = c.x, ay = a.y, by = b.y, cy = c.y;\n var x0 = ax < bx ? ax < cx ? ax : cx : bx < cx ? bx : cx, y0 = ay < by ? ay < cy ? ay : cy : by < cy ? by : cy, x1 = ax > bx ? ax > cx ? ax : cx : bx > cx ? bx : cx, y1 = ay > by ? ay > cy ? ay : cy : by > cy ? by : cy;\n var minZ = zOrder(x0, y0, minX, minY, invSize), maxZ = zOrder(x1, y1, minX, minY, invSize);\n var p = ear.prevZ, n = ear.nextZ;\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n while (p && p.z >= minZ) {\n if (p.x >= x0 && p.x <= x1 && p.y >= y0 && p.y <= y1 && p !== a && p !== c && pointInTriangle(ax, ay, bx, by, cx, cy, p.x, p.y) && area(p.prev, p, p.next) >= 0) return false;\n p = p.prevZ;\n }\n while (n && n.z <= maxZ) {\n if (n.x >= x0 && n.x <= x1 && n.y >= y0 && n.y <= y1 && n !== a && n !== c && pointInTriangle(ax, ay, bx, by, cx, cy, n.x, n.y) && area(n.prev, n, n.next) >= 0) return false;\n n = n.nextZ;\n }\n return true;\n }\n function cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev, b = p.next.next;\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n triangles.push(a.i / dim | 0);\n triangles.push(p.i / dim | 0);\n triangles.push(b.i / dim | 0);\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n return filterPoints(p);\n }\n function splitEarcut(start, triangles, dim, minX, minY, invSize) {\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n var c = splitPolygon(a, b);\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n earcutLinked(a, triangles, dim, minX, minY, invSize, 0);\n earcutLinked(c, triangles, dim, minX, minY, invSize, 0);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n }\n function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [], i, len, start, end, list;\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) list.steiner = true;\n queue.push(getLeftmost(list));\n }\n queue.sort(compareX);\n for (i = 0; i < queue.length; i++) {\n outerNode = eliminateHole(queue[i], outerNode);\n }\n return outerNode;\n }\n function compareX(a, b) {\n return a.x - b.x;\n }\n function eliminateHole(hole, outerNode) {\n var bridge = findHoleBridge(hole, outerNode);\n if (!bridge) {\n return outerNode;\n }\n var bridgeReverse = splitPolygon(bridge, hole);\n filterPoints(bridgeReverse, bridgeReverse.next);\n return filterPoints(bridge, bridge.next);\n }\n function findHoleBridge(hole, outerNode) {\n var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n m = p.x < p.next.x ? p : p.next;\n if (x === hx) return m;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n if (!m) return null;\n var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;\n p = m;\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x);\n if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n m = p;\n tanMin = tan;\n }\n }\n p = p.next;\n } while (p !== stop);\n return m;\n }\n function sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n }\n function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === 0) p.z = zOrder(p.x, p.y, minX, minY, invSize);\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n p.prevZ.nextZ = null;\n p.prevZ = null;\n sortLinked(p);\n }\n function sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) break;\n }\n qSize = inSize;\n while (pSize > 0 || qSize > 0 && q) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n if (tail) tail.nextZ = e;\n else list = e;\n e.prevZ = tail;\n tail = e;\n }\n p = q;\n }\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n return list;\n }\n function zOrder(x, y, minX, minY, invSize) {\n x = (x - minX) * invSize | 0;\n y = (y - minY) * invSize | 0;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n }\n function getLeftmost(start) {\n var p = start, leftmost = start;\n do {\n if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) leftmost = p;\n p = p.next;\n } while (p !== start);\n return leftmost;\n }\n function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) >= (ax - px) * (cy - py) && (ax - px) * (by - py) >= (bx - px) * (ay - py) && (bx - px) * (cy - py) >= (cx - px) * (by - py);\n }\n function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && // dones't intersect other edges\n (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && // locally visible\n (area(a.prev, a, b.prev) || area(a, b.prev, b)) || // does not create opposite-facing sectors\n equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n }\n function area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n }\n function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n }\n function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n if (o1 !== o2 && o3 !== o4) return true;\n if (o1 === 0 && onSegment(p1, p2, q1)) return true;\n if (o2 === 0 && onSegment(p1, q2, q1)) return true;\n if (o3 === 0 && onSegment(p2, p1, q2)) return true;\n if (o4 === 0 && onSegment(p2, q1, q2)) return true;\n return false;\n }\n function onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n }\n function sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n }\n function intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) return true;\n p = p.next;\n } while (p !== a);\n return false;\n }\n function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n }\n function middleInside(a, b) {\n var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x)\n inside = !inside;\n p = p.next;\n } while (p !== a);\n return inside;\n }\n function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;\n a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n }\n function insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n }\n function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) p.prevZ.nextZ = p.nextZ;\n if (p.nextZ) p.nextZ.prevZ = p.prevZ;\n }\n function Node(i, x, y) {\n this.i = i;\n this.x = x;\n this.y = y;\n this.prev = null;\n this.next = null;\n this.z = 0;\n this.prevZ = null;\n this.nextZ = null;\n this.steiner = false;\n }\n earcut.deviation = function(data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs(\n (data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1])\n );\n }\n return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);\n };\n function signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n }\n earcut.flatten = function(data) {\n var dim = data[0][0].length, result = { vertices: [], holes: [], dimensions: dim }, holeIndex = 0;\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n };\n }\n });\n\n // node_modules/array-normalize/index.js\n var require_array_normalize = __commonJS({\n \"node_modules/array-normalize/index.js\"(exports, module) {\n \"use strict\";\n var getBounds = require_array_bounds();\n module.exports = normalize;\n function normalize(arr, dim, bounds) {\n if (!arr || arr.length == null) throw Error(\"Argument should be an array\");\n if (dim == null) dim = 1;\n if (bounds == null) bounds = getBounds(arr, dim);\n for (var offset = 0; offset < dim; offset++) {\n var max = bounds[dim + offset], min = bounds[offset], i = offset, l = arr.length;\n if (max === Infinity && min === -Infinity) {\n for (i = offset; i < l; i += dim) {\n arr[i] = arr[i] === max ? 1 : arr[i] === min ? 0 : 0.5;\n }\n } else if (max === Infinity) {\n for (i = offset; i < l; i += dim) {\n arr[i] = arr[i] === max ? 1 : 0;\n }\n } else if (min === -Infinity) {\n for (i = offset; i < l; i += dim) {\n arr[i] = arr[i] === min ? 0 : 1;\n }\n } else {\n var range = max - min;\n for (i = offset; i < l; i += dim) {\n if (!isNaN(arr[i])) {\n arr[i] = range === 0 ? 0.5 : (arr[i] - min) / range;\n }\n }\n }\n }\n return arr;\n }\n }\n });\n\n // node_modules/es6-weak-map/is-implemented.js\n var require_is_implemented = __commonJS({\n \"node_modules/es6-weak-map/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var weakMap, obj;\n if (typeof WeakMap !== \"function\") return false;\n try {\n weakMap = new WeakMap([[obj = {}, \"one\"], [{}, \"two\"], [{}, \"three\"]]);\n } catch (e) {\n return false;\n }\n if (String(weakMap) !== \"[object WeakMap]\") return false;\n if (typeof weakMap.set !== \"function\") return false;\n if (weakMap.set({}, 1) !== weakMap) return false;\n if (typeof weakMap.delete !== \"function\") return false;\n if (typeof weakMap.has !== \"function\") return false;\n if (weakMap.get(obj) !== \"one\") return false;\n return true;\n };\n }\n });\n\n // node_modules/es5-ext/function/noop.js\n var require_noop2 = __commonJS({\n \"node_modules/es5-ext/function/noop.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n };\n }\n });\n\n // node_modules/es5-ext/object/is-value.js\n var require_is_value = __commonJS({\n \"node_modules/es5-ext/object/is-value.js\"(exports, module) {\n \"use strict\";\n var _undefined = require_noop2()();\n module.exports = function(val) {\n return val !== _undefined && val !== null;\n };\n }\n });\n\n // node_modules/es5-ext/object/set-prototype-of/is-implemented.js\n var require_is_implemented2 = __commonJS({\n \"node_modules/es5-ext/object/set-prototype-of/is-implemented.js\"(exports, module) {\n \"use strict\";\n var create = Object.create;\n var getPrototypeOf = Object.getPrototypeOf;\n var plainObject = {};\n module.exports = function() {\n var setPrototypeOf = Object.setPrototypeOf, customCreate = arguments[0] || create;\n if (typeof setPrototypeOf !== \"function\") return false;\n return getPrototypeOf(setPrototypeOf(customCreate(null), plainObject)) === plainObject;\n };\n }\n });\n\n // node_modules/es5-ext/object/is-object.js\n var require_is_object = __commonJS({\n \"node_modules/es5-ext/object/is-object.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var map = { function: true, object: true };\n module.exports = function(value) {\n return isValue(value) && map[typeof value] || false;\n };\n }\n });\n\n // node_modules/es5-ext/object/valid-value.js\n var require_valid_value = __commonJS({\n \"node_modules/es5-ext/object/valid-value.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n module.exports = function(value) {\n if (!isValue(value)) throw new TypeError(\"Cannot use null or undefined\");\n return value;\n };\n }\n });\n\n // node_modules/es5-ext/object/create.js\n var require_create2 = __commonJS({\n \"node_modules/es5-ext/object/create.js\"(exports, module) {\n \"use strict\";\n var create = Object.create;\n var shim;\n if (!require_is_implemented2()()) {\n shim = require_shim3();\n }\n module.exports = function() {\n var nullObject, polyProps, desc;\n if (!shim) return create;\n if (shim.level !== 1) return create;\n nullObject = {};\n polyProps = {};\n desc = { configurable: false, enumerable: false, writable: true, value: void 0 };\n Object.getOwnPropertyNames(Object.prototype).forEach(function(name2) {\n if (name2 === \"__proto__\") {\n polyProps[name2] = {\n configurable: true,\n enumerable: false,\n writable: true,\n value: void 0\n };\n return;\n }\n polyProps[name2] = desc;\n });\n Object.defineProperties(nullObject, polyProps);\n Object.defineProperty(shim, \"nullPolyfill\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: nullObject\n });\n return function(prototype, props) {\n return create(prototype === null ? nullObject : prototype, props);\n };\n }();\n }\n });\n\n // node_modules/es5-ext/object/set-prototype-of/shim.js\n var require_shim3 = __commonJS({\n \"node_modules/es5-ext/object/set-prototype-of/shim.js\"(exports, module) {\n \"use strict\";\n var isObject = require_is_object();\n var value = require_valid_value();\n var objIsPrototypeOf = Object.prototype.isPrototypeOf;\n var defineProperty = Object.defineProperty;\n var nullDesc = { configurable: true, enumerable: false, writable: true, value: void 0 };\n var validate;\n validate = function(obj, prototype) {\n value(obj);\n if (prototype === null || isObject(prototype)) return obj;\n throw new TypeError(\"Prototype must be null or an object\");\n };\n module.exports = function(status) {\n var fn, set;\n if (!status) return null;\n if (status.level === 2) {\n if (status.set) {\n set = status.set;\n fn = function(obj, prototype) {\n set.call(validate(obj, prototype), prototype);\n return obj;\n };\n } else {\n fn = function(obj, prototype) {\n validate(obj, prototype).__proto__ = prototype;\n return obj;\n };\n }\n } else {\n fn = function self2(obj, prototype) {\n var isNullBase;\n validate(obj, prototype);\n isNullBase = objIsPrototypeOf.call(self2.nullPolyfill, obj);\n if (isNullBase) delete self2.nullPolyfill.__proto__;\n if (prototype === null) prototype = self2.nullPolyfill;\n obj.__proto__ = prototype;\n if (isNullBase) defineProperty(self2.nullPolyfill, \"__proto__\", nullDesc);\n return obj;\n };\n }\n return Object.defineProperty(fn, \"level\", {\n configurable: false,\n enumerable: false,\n writable: false,\n value: status.level\n });\n }(\n function() {\n var tmpObj1 = /* @__PURE__ */ Object.create(null), tmpObj2 = {}, set, desc = Object.getOwnPropertyDescriptor(Object.prototype, \"__proto__\");\n if (desc) {\n try {\n set = desc.set;\n set.call(tmpObj1, tmpObj2);\n } catch (ignore) {\n }\n if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { set, level: 2 };\n }\n tmpObj1.__proto__ = tmpObj2;\n if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 2 };\n tmpObj1 = {};\n tmpObj1.__proto__ = tmpObj2;\n if (Object.getPrototypeOf(tmpObj1) === tmpObj2) return { level: 1 };\n return false;\n }()\n );\n require_create2();\n }\n });\n\n // node_modules/es5-ext/object/set-prototype-of/index.js\n var require_set_prototype_of = __commonJS({\n \"node_modules/es5-ext/object/set-prototype-of/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented2()() ? Object.setPrototypeOf : require_shim3();\n }\n });\n\n // node_modules/es5-ext/object/valid-object.js\n var require_valid_object = __commonJS({\n \"node_modules/es5-ext/object/valid-object.js\"(exports, module) {\n \"use strict\";\n var isObject = require_is_object();\n module.exports = function(value) {\n if (!isObject(value)) throw new TypeError(value + \" is not an Object\");\n return value;\n };\n }\n });\n\n // node_modules/es5-ext/string/random-uniq.js\n var require_random_uniq = __commonJS({\n \"node_modules/es5-ext/string/random-uniq.js\"(exports, module) {\n \"use strict\";\n var generated = /* @__PURE__ */ Object.create(null);\n var random = Math.random;\n module.exports = function() {\n var str;\n do {\n str = random().toString(36).slice(2);\n } while (generated[str]);\n return str;\n };\n }\n });\n\n // node_modules/type/value/is.js\n var require_is = __commonJS({\n \"node_modules/type/value/is.js\"(exports, module) {\n \"use strict\";\n var _undefined = void 0;\n module.exports = function(value) {\n return value !== _undefined && value !== null;\n };\n }\n });\n\n // node_modules/type/object/is.js\n var require_is2 = __commonJS({\n \"node_modules/type/object/is.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var possibleTypes = {\n \"object\": true,\n \"function\": true,\n \"undefined\": true\n /* document.all */\n };\n module.exports = function(value) {\n if (!isValue(value)) return false;\n return hasOwnProperty.call(possibleTypes, typeof value);\n };\n }\n });\n\n // node_modules/type/prototype/is.js\n var require_is3 = __commonJS({\n \"node_modules/type/prototype/is.js\"(exports, module) {\n \"use strict\";\n var isObject = require_is2();\n module.exports = function(value) {\n if (!isObject(value)) return false;\n try {\n if (!value.constructor) return false;\n return value.constructor.prototype === value;\n } catch (error) {\n return false;\n }\n };\n }\n });\n\n // node_modules/type/function/is.js\n var require_is4 = __commonJS({\n \"node_modules/type/function/is.js\"(exports, module) {\n \"use strict\";\n var isPrototype = require_is3();\n module.exports = function(value) {\n if (typeof value !== \"function\") return false;\n if (!hasOwnProperty.call(value, \"length\")) return false;\n try {\n if (typeof value.length !== \"number\") return false;\n if (typeof value.call !== \"function\") return false;\n if (typeof value.apply !== \"function\") return false;\n } catch (error) {\n return false;\n }\n return !isPrototype(value);\n };\n }\n });\n\n // node_modules/type/plain-function/is.js\n var require_is5 = __commonJS({\n \"node_modules/type/plain-function/is.js\"(exports, module) {\n \"use strict\";\n var isFunction = require_is4();\n var classRe = /^\\s*class[\\s{/}]/;\n var functionToString = Function.prototype.toString;\n module.exports = function(value) {\n if (!isFunction(value)) return false;\n if (classRe.test(functionToString.call(value))) return false;\n return true;\n };\n }\n });\n\n // node_modules/es5-ext/object/assign/is-implemented.js\n var require_is_implemented3 = __commonJS({\n \"node_modules/es5-ext/object/assign/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var assign = Object.assign, obj;\n if (typeof assign !== \"function\") return false;\n obj = { foo: \"raz\" };\n assign(obj, { bar: \"dwa\" }, { trzy: \"trzy\" });\n return obj.foo + obj.bar + obj.trzy === \"razdwatrzy\";\n };\n }\n });\n\n // node_modules/es5-ext/object/keys/is-implemented.js\n var require_is_implemented4 = __commonJS({\n \"node_modules/es5-ext/object/keys/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n try {\n Object.keys(\"primitive\");\n return true;\n } catch (e) {\n return false;\n }\n };\n }\n });\n\n // node_modules/es5-ext/object/keys/shim.js\n var require_shim4 = __commonJS({\n \"node_modules/es5-ext/object/keys/shim.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var keys = Object.keys;\n module.exports = function(object) {\n return keys(isValue(object) ? Object(object) : object);\n };\n }\n });\n\n // node_modules/es5-ext/object/keys/index.js\n var require_keys = __commonJS({\n \"node_modules/es5-ext/object/keys/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented4()() ? Object.keys : require_shim4();\n }\n });\n\n // node_modules/es5-ext/object/assign/shim.js\n var require_shim5 = __commonJS({\n \"node_modules/es5-ext/object/assign/shim.js\"(exports, module) {\n \"use strict\";\n var keys = require_keys();\n var value = require_valid_value();\n var max = Math.max;\n module.exports = function(dest, src) {\n var error, i, length = max(arguments.length, 2), assign;\n dest = Object(value(dest));\n assign = function(key) {\n try {\n dest[key] = src[key];\n } catch (e) {\n if (!error) error = e;\n }\n };\n for (i = 1; i < length; ++i) {\n src = arguments[i];\n keys(src).forEach(assign);\n }\n if (error !== void 0) throw error;\n return dest;\n };\n }\n });\n\n // node_modules/es5-ext/object/assign/index.js\n var require_assign = __commonJS({\n \"node_modules/es5-ext/object/assign/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented3()() ? Object.assign : require_shim5();\n }\n });\n\n // node_modules/es5-ext/object/normalize-options.js\n var require_normalize_options = __commonJS({\n \"node_modules/es5-ext/object/normalize-options.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var forEach = Array.prototype.forEach;\n var create = Object.create;\n var process2 = function(src, obj) {\n var key;\n for (key in src) obj[key] = src[key];\n };\n module.exports = function(opts1) {\n var result = create(null);\n forEach.call(arguments, function(options) {\n if (!isValue(options)) return;\n process2(Object(options), result);\n });\n return result;\n };\n }\n });\n\n // node_modules/es5-ext/string/#/contains/is-implemented.js\n var require_is_implemented5 = __commonJS({\n \"node_modules/es5-ext/string/#/contains/is-implemented.js\"(exports, module) {\n \"use strict\";\n var str = \"razdwatrzy\";\n module.exports = function() {\n if (typeof str.contains !== \"function\") return false;\n return str.contains(\"dwa\") === true && str.contains(\"foo\") === false;\n };\n }\n });\n\n // node_modules/es5-ext/string/#/contains/shim.js\n var require_shim6 = __commonJS({\n \"node_modules/es5-ext/string/#/contains/shim.js\"(exports, module) {\n \"use strict\";\n var indexOf = String.prototype.indexOf;\n module.exports = function(searchString) {\n return indexOf.call(this, searchString, arguments[1]) > -1;\n };\n }\n });\n\n // node_modules/es5-ext/string/#/contains/index.js\n var require_contains = __commonJS({\n \"node_modules/es5-ext/string/#/contains/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented5()() ? String.prototype.contains : require_shim6();\n }\n });\n\n // node_modules/d/index.js\n var require_d = __commonJS({\n \"node_modules/d/index.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var isPlainFunction = require_is5();\n var assign = require_assign();\n var normalizeOpts = require_normalize_options();\n var contains = require_contains();\n var d = module.exports = function(dscr, value) {\n var c, e, w, options, desc;\n if (arguments.length < 2 || typeof dscr !== \"string\") {\n options = value;\n value = dscr;\n dscr = null;\n } else {\n options = arguments[2];\n }\n if (isValue(dscr)) {\n c = contains.call(dscr, \"c\");\n e = contains.call(dscr, \"e\");\n w = contains.call(dscr, \"w\");\n } else {\n c = w = true;\n e = false;\n }\n desc = { value, configurable: c, enumerable: e, writable: w };\n return !options ? desc : assign(normalizeOpts(options), desc);\n };\n d.gs = function(dscr, get, set) {\n var c, e, options, desc;\n if (typeof dscr !== \"string\") {\n options = set;\n set = get;\n get = dscr;\n dscr = null;\n } else {\n options = arguments[3];\n }\n if (!isValue(get)) {\n get = void 0;\n } else if (!isPlainFunction(get)) {\n options = get;\n get = set = void 0;\n } else if (!isValue(set)) {\n set = void 0;\n } else if (!isPlainFunction(set)) {\n options = set;\n set = void 0;\n }\n if (isValue(dscr)) {\n c = contains.call(dscr, \"c\");\n e = contains.call(dscr, \"e\");\n } else {\n c = true;\n e = false;\n }\n desc = { get, set, configurable: c, enumerable: e };\n return !options ? desc : assign(normalizeOpts(options), desc);\n };\n }\n });\n\n // node_modules/es5-ext/function/is-arguments.js\n var require_is_arguments2 = __commonJS({\n \"node_modules/es5-ext/function/is-arguments.js\"(exports, module) {\n \"use strict\";\n var objToString = Object.prototype.toString;\n var id = objToString.call(/* @__PURE__ */ function() {\n return arguments;\n }());\n module.exports = function(value) {\n return objToString.call(value) === id;\n };\n }\n });\n\n // node_modules/es5-ext/string/is-string.js\n var require_is_string = __commonJS({\n \"node_modules/es5-ext/string/is-string.js\"(exports, module) {\n \"use strict\";\n var objToString = Object.prototype.toString;\n var id = objToString.call(\"\");\n module.exports = function(value) {\n return typeof value === \"string\" || value && typeof value === \"object\" && (value instanceof String || objToString.call(value) === id) || false;\n };\n }\n });\n\n // node_modules/ext/global-this/is-implemented.js\n var require_is_implemented6 = __commonJS({\n \"node_modules/ext/global-this/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n if (typeof globalThis !== \"object\") return false;\n if (!globalThis) return false;\n return globalThis.Array === Array;\n };\n }\n });\n\n // node_modules/ext/global-this/implementation.js\n var require_implementation6 = __commonJS({\n \"node_modules/ext/global-this/implementation.js\"(exports, module) {\n var naiveFallback = function() {\n if (typeof self === \"object\" && self) return self;\n if (typeof window === \"object\" && window) return window;\n throw new Error(\"Unable to resolve global `this`\");\n };\n module.exports = function() {\n if (this) return this;\n try {\n Object.defineProperty(Object.prototype, \"__global__\", {\n get: function() {\n return this;\n },\n configurable: true\n });\n } catch (error) {\n return naiveFallback();\n }\n try {\n if (!__global__) return naiveFallback();\n return __global__;\n } finally {\n delete Object.prototype.__global__;\n }\n }();\n }\n });\n\n // node_modules/ext/global-this/index.js\n var require_global_this = __commonJS({\n \"node_modules/ext/global-this/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented6()() ? globalThis : require_implementation6();\n }\n });\n\n // node_modules/es6-symbol/is-implemented.js\n var require_is_implemented7 = __commonJS({\n \"node_modules/es6-symbol/is-implemented.js\"(exports, module) {\n \"use strict\";\n var global2 = require_global_this();\n var validTypes = { object: true, symbol: true };\n module.exports = function() {\n var Symbol2 = global2.Symbol;\n var symbol;\n if (typeof Symbol2 !== \"function\") return false;\n symbol = Symbol2(\"test symbol\");\n try {\n String(symbol);\n } catch (e) {\n return false;\n }\n if (!validTypes[typeof Symbol2.iterator]) return false;\n if (!validTypes[typeof Symbol2.toPrimitive]) return false;\n if (!validTypes[typeof Symbol2.toStringTag]) return false;\n return true;\n };\n }\n });\n\n // node_modules/es6-symbol/is-symbol.js\n var require_is_symbol = __commonJS({\n \"node_modules/es6-symbol/is-symbol.js\"(exports, module) {\n \"use strict\";\n module.exports = function(value) {\n if (!value) return false;\n if (typeof value === \"symbol\") return true;\n if (!value.constructor) return false;\n if (value.constructor.name !== \"Symbol\") return false;\n return value[value.constructor.toStringTag] === \"Symbol\";\n };\n }\n });\n\n // node_modules/es6-symbol/validate-symbol.js\n var require_validate_symbol = __commonJS({\n \"node_modules/es6-symbol/validate-symbol.js\"(exports, module) {\n \"use strict\";\n var isSymbol = require_is_symbol();\n module.exports = function(value) {\n if (!isSymbol(value)) throw new TypeError(value + \" is not a symbol\");\n return value;\n };\n }\n });\n\n // node_modules/es6-symbol/lib/private/generate-name.js\n var require_generate_name = __commonJS({\n \"node_modules/es6-symbol/lib/private/generate-name.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var objPrototype = Object.prototype;\n var created = create(null);\n module.exports = function(desc) {\n var postfix = 0, name2, ie11BugWorkaround;\n while (created[desc + (postfix || \"\")]) ++postfix;\n desc += postfix || \"\";\n created[desc] = true;\n name2 = \"@@\" + desc;\n defineProperty(\n objPrototype,\n name2,\n d.gs(null, function(value) {\n if (ie11BugWorkaround) return;\n ie11BugWorkaround = true;\n defineProperty(this, name2, d(value));\n ie11BugWorkaround = false;\n })\n );\n return name2;\n };\n }\n });\n\n // node_modules/es6-symbol/lib/private/setup/standard-symbols.js\n var require_standard_symbols = __commonJS({\n \"node_modules/es6-symbol/lib/private/setup/standard-symbols.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var NativeSymbol = require_global_this().Symbol;\n module.exports = function(SymbolPolyfill) {\n return Object.defineProperties(SymbolPolyfill, {\n // To ensure proper interoperability with other native functions (e.g. Array.from)\n // fallback to eventual native implementation of given symbol\n hasInstance: d(\n \"\",\n NativeSymbol && NativeSymbol.hasInstance || SymbolPolyfill(\"hasInstance\")\n ),\n isConcatSpreadable: d(\n \"\",\n NativeSymbol && NativeSymbol.isConcatSpreadable || SymbolPolyfill(\"isConcatSpreadable\")\n ),\n iterator: d(\"\", NativeSymbol && NativeSymbol.iterator || SymbolPolyfill(\"iterator\")),\n match: d(\"\", NativeSymbol && NativeSymbol.match || SymbolPolyfill(\"match\")),\n replace: d(\"\", NativeSymbol && NativeSymbol.replace || SymbolPolyfill(\"replace\")),\n search: d(\"\", NativeSymbol && NativeSymbol.search || SymbolPolyfill(\"search\")),\n species: d(\"\", NativeSymbol && NativeSymbol.species || SymbolPolyfill(\"species\")),\n split: d(\"\", NativeSymbol && NativeSymbol.split || SymbolPolyfill(\"split\")),\n toPrimitive: d(\n \"\",\n NativeSymbol && NativeSymbol.toPrimitive || SymbolPolyfill(\"toPrimitive\")\n ),\n toStringTag: d(\n \"\",\n NativeSymbol && NativeSymbol.toStringTag || SymbolPolyfill(\"toStringTag\")\n ),\n unscopables: d(\n \"\",\n NativeSymbol && NativeSymbol.unscopables || SymbolPolyfill(\"unscopables\")\n )\n });\n };\n }\n });\n\n // node_modules/es6-symbol/lib/private/setup/symbol-registry.js\n var require_symbol_registry = __commonJS({\n \"node_modules/es6-symbol/lib/private/setup/symbol-registry.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var validateSymbol = require_validate_symbol();\n var registry = /* @__PURE__ */ Object.create(null);\n module.exports = function(SymbolPolyfill) {\n return Object.defineProperties(SymbolPolyfill, {\n for: d(function(key) {\n if (registry[key]) return registry[key];\n return registry[key] = SymbolPolyfill(String(key));\n }),\n keyFor: d(function(symbol) {\n var key;\n validateSymbol(symbol);\n for (key in registry) {\n if (registry[key] === symbol) return key;\n }\n return void 0;\n })\n });\n };\n }\n });\n\n // node_modules/es6-symbol/polyfill.js\n var require_polyfill4 = __commonJS({\n \"node_modules/es6-symbol/polyfill.js\"(exports, module) {\n \"use strict\";\n var d = require_d();\n var validateSymbol = require_validate_symbol();\n var NativeSymbol = require_global_this().Symbol;\n var generateName = require_generate_name();\n var setupStandardSymbols = require_standard_symbols();\n var setupSymbolRegistry = require_symbol_registry();\n var create = Object.create;\n var defineProperties = Object.defineProperties;\n var defineProperty = Object.defineProperty;\n var SymbolPolyfill;\n var HiddenSymbol;\n var isNativeSafe;\n if (typeof NativeSymbol === \"function\") {\n try {\n String(NativeSymbol());\n isNativeSafe = true;\n } catch (ignore) {\n }\n } else {\n NativeSymbol = null;\n }\n HiddenSymbol = function Symbol2(description) {\n if (this instanceof HiddenSymbol) throw new TypeError(\"Symbol is not a constructor\");\n return SymbolPolyfill(description);\n };\n module.exports = SymbolPolyfill = function Symbol2(description) {\n var symbol;\n if (this instanceof Symbol2) throw new TypeError(\"Symbol is not a constructor\");\n if (isNativeSafe) return NativeSymbol(description);\n symbol = create(HiddenSymbol.prototype);\n description = description === void 0 ? \"\" : String(description);\n return defineProperties(symbol, {\n __description__: d(\"\", description),\n __name__: d(\"\", generateName(description))\n });\n };\n setupStandardSymbols(SymbolPolyfill);\n setupSymbolRegistry(SymbolPolyfill);\n defineProperties(HiddenSymbol.prototype, {\n constructor: d(SymbolPolyfill),\n toString: d(\"\", function() {\n return this.__name__;\n })\n });\n defineProperties(SymbolPolyfill.prototype, {\n toString: d(function() {\n return \"Symbol (\" + validateSymbol(this).__description__ + \")\";\n }),\n valueOf: d(function() {\n return validateSymbol(this);\n })\n });\n defineProperty(\n SymbolPolyfill.prototype,\n SymbolPolyfill.toPrimitive,\n d(\"\", function() {\n var symbol = validateSymbol(this);\n if (typeof symbol === \"symbol\") return symbol;\n return symbol.toString();\n })\n );\n defineProperty(SymbolPolyfill.prototype, SymbolPolyfill.toStringTag, d(\"c\", \"Symbol\"));\n defineProperty(\n HiddenSymbol.prototype,\n SymbolPolyfill.toStringTag,\n d(\"c\", SymbolPolyfill.prototype[SymbolPolyfill.toStringTag])\n );\n defineProperty(\n HiddenSymbol.prototype,\n SymbolPolyfill.toPrimitive,\n d(\"c\", SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive])\n );\n }\n });\n\n // node_modules/es6-symbol/index.js\n var require_es6_symbol = __commonJS({\n \"node_modules/es6-symbol/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented7()() ? require_global_this().Symbol : require_polyfill4();\n }\n });\n\n // node_modules/es5-ext/array/#/clear.js\n var require_clear = __commonJS({\n \"node_modules/es5-ext/array/#/clear.js\"(exports, module) {\n \"use strict\";\n var value = require_valid_value();\n module.exports = function() {\n value(this).length = 0;\n return this;\n };\n }\n });\n\n // node_modules/es5-ext/object/valid-callable.js\n var require_valid_callable = __commonJS({\n \"node_modules/es5-ext/object/valid-callable.js\"(exports, module) {\n \"use strict\";\n module.exports = function(fn) {\n if (typeof fn !== \"function\") throw new TypeError(fn + \" is not a function\");\n return fn;\n };\n }\n });\n\n // node_modules/type/string/coerce.js\n var require_coerce2 = __commonJS({\n \"node_modules/type/string/coerce.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var isObject = require_is2();\n var objectToString = Object.prototype.toString;\n module.exports = function(value) {\n if (!isValue(value)) return null;\n if (isObject(value)) {\n var valueToString = value.toString;\n if (typeof valueToString !== \"function\") return null;\n if (valueToString === objectToString) return null;\n }\n try {\n return \"\" + value;\n } catch (error) {\n return null;\n }\n };\n }\n });\n\n // node_modules/type/lib/safe-to-string.js\n var require_safe_to_string = __commonJS({\n \"node_modules/type/lib/safe-to-string.js\"(exports, module) {\n \"use strict\";\n module.exports = function(value) {\n try {\n return value.toString();\n } catch (error) {\n try {\n return String(value);\n } catch (error2) {\n return null;\n }\n }\n };\n }\n });\n\n // node_modules/type/lib/to-short-string.js\n var require_to_short_string = __commonJS({\n \"node_modules/type/lib/to-short-string.js\"(exports, module) {\n \"use strict\";\n var safeToString = require_safe_to_string();\n var reNewLine = /[\\n\\r\\u2028\\u2029]/g;\n module.exports = function(value) {\n var string = safeToString(value);\n if (string === null) return \"\";\n if (string.length > 100) string = string.slice(0, 99) + \"\\u2026\";\n string = string.replace(reNewLine, function(char) {\n switch (char) {\n case \"\\n\":\n return \"\\\\n\";\n case \"\\r\":\n return \"\\\\r\";\n case \"\\u2028\":\n return \"\\\\u2028\";\n case \"\\u2029\":\n return \"\\\\u2029\";\n /* istanbul ignore next */\n default:\n throw new Error(\"Unexpected character\");\n }\n });\n return string;\n };\n }\n });\n\n // node_modules/type/lib/resolve-exception.js\n var require_resolve_exception = __commonJS({\n \"node_modules/type/lib/resolve-exception.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var isObject = require_is2();\n var stringCoerce = require_coerce2();\n var toShortString = require_to_short_string();\n var resolveMessage = function(message, value) {\n return message.replace(\"%v\", toShortString(value));\n };\n module.exports = function(value, defaultMessage, inputOptions) {\n if (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));\n if (!isValue(value)) {\n if (\"default\" in inputOptions) return inputOptions[\"default\"];\n if (inputOptions.isOptional) return null;\n }\n var errorMessage = stringCoerce(inputOptions.errorMessage);\n if (!isValue(errorMessage)) errorMessage = defaultMessage;\n throw new TypeError(resolveMessage(errorMessage, value));\n };\n }\n });\n\n // node_modules/type/value/ensure.js\n var require_ensure = __commonJS({\n \"node_modules/type/value/ensure.js\"(exports, module) {\n \"use strict\";\n var resolveException = require_resolve_exception();\n var is = require_is();\n module.exports = function(value) {\n if (is(value)) return value;\n return resolveException(value, \"Cannot use %v\", arguments[1]);\n };\n }\n });\n\n // node_modules/type/plain-function/ensure.js\n var require_ensure2 = __commonJS({\n \"node_modules/type/plain-function/ensure.js\"(exports, module) {\n \"use strict\";\n var resolveException = require_resolve_exception();\n var is = require_is5();\n module.exports = function(value) {\n if (is(value)) return value;\n return resolveException(value, \"%v is not a plain function\", arguments[1]);\n };\n }\n });\n\n // node_modules/es5-ext/array/from/is-implemented.js\n var require_is_implemented8 = __commonJS({\n \"node_modules/es5-ext/array/from/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var from = Array.from, arr, result;\n if (typeof from !== \"function\") return false;\n arr = [\"raz\", \"dwa\"];\n result = from(arr);\n return Boolean(result && result !== arr && result[1] === \"dwa\");\n };\n }\n });\n\n // node_modules/es5-ext/function/is-function.js\n var require_is_function = __commonJS({\n \"node_modules/es5-ext/function/is-function.js\"(exports, module) {\n \"use strict\";\n var objToString = Object.prototype.toString;\n var isFunctionStringTag = RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);\n module.exports = function(value) {\n return typeof value === \"function\" && isFunctionStringTag(objToString.call(value));\n };\n }\n });\n\n // node_modules/es5-ext/math/sign/is-implemented.js\n var require_is_implemented9 = __commonJS({\n \"node_modules/es5-ext/math/sign/is-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n var sign = Math.sign;\n if (typeof sign !== \"function\") return false;\n return sign(10) === 1 && sign(-20) === -1;\n };\n }\n });\n\n // node_modules/es5-ext/math/sign/shim.js\n var require_shim7 = __commonJS({\n \"node_modules/es5-ext/math/sign/shim.js\"(exports, module) {\n \"use strict\";\n module.exports = function(value) {\n value = Number(value);\n if (isNaN(value) || value === 0) return value;\n return value > 0 ? 1 : -1;\n };\n }\n });\n\n // node_modules/es5-ext/math/sign/index.js\n var require_sign = __commonJS({\n \"node_modules/es5-ext/math/sign/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented9()() ? Math.sign : require_shim7();\n }\n });\n\n // node_modules/es5-ext/number/to-integer.js\n var require_to_integer = __commonJS({\n \"node_modules/es5-ext/number/to-integer.js\"(exports, module) {\n \"use strict\";\n var sign = require_sign();\n var abs = Math.abs;\n var floor = Math.floor;\n module.exports = function(value) {\n if (isNaN(value)) return 0;\n value = Number(value);\n if (value === 0 || !isFinite(value)) return value;\n return sign(value) * floor(abs(value));\n };\n }\n });\n\n // node_modules/es5-ext/number/to-pos-integer.js\n var require_to_pos_integer = __commonJS({\n \"node_modules/es5-ext/number/to-pos-integer.js\"(exports, module) {\n \"use strict\";\n var toInteger = require_to_integer();\n var max = Math.max;\n module.exports = function(value) {\n return max(0, toInteger(value));\n };\n }\n });\n\n // node_modules/es5-ext/array/from/shim.js\n var require_shim8 = __commonJS({\n \"node_modules/es5-ext/array/from/shim.js\"(exports, module) {\n \"use strict\";\n var iteratorSymbol = require_es6_symbol().iterator;\n var isArguments = require_is_arguments2();\n var isFunction = require_is_function();\n var toPosInt = require_to_pos_integer();\n var callable = require_valid_callable();\n var validValue = require_valid_value();\n var isValue = require_is_value();\n var isString = require_is_string();\n var isArray = Array.isArray;\n var call = Function.prototype.call;\n var desc = { configurable: true, enumerable: true, writable: true, value: null };\n var defineProperty = Object.defineProperty;\n module.exports = function(arrayLike) {\n var mapFn = arguments[1], thisArg = arguments[2], Context, i, j, arr, length, code, iterator, result, getIterator, value;\n arrayLike = Object(validValue(arrayLike));\n if (isValue(mapFn)) callable(mapFn);\n if (!this || this === Array || !isFunction(this)) {\n if (!mapFn) {\n if (isArguments(arrayLike)) {\n length = arrayLike.length;\n if (length !== 1) return Array.apply(null, arrayLike);\n arr = new Array(1);\n arr[0] = arrayLike[0];\n return arr;\n }\n if (isArray(arrayLike)) {\n arr = new Array(length = arrayLike.length);\n for (i = 0; i < length; ++i) arr[i] = arrayLike[i];\n return arr;\n }\n }\n arr = [];\n } else {\n Context = this;\n }\n if (!isArray(arrayLike)) {\n if ((getIterator = arrayLike[iteratorSymbol]) !== void 0) {\n iterator = callable(getIterator).call(arrayLike);\n if (Context) arr = new Context();\n result = iterator.next();\n i = 0;\n while (!result.done) {\n value = mapFn ? call.call(mapFn, thisArg, result.value, i) : result.value;\n if (Context) {\n desc.value = value;\n defineProperty(arr, i, desc);\n } else {\n arr[i] = value;\n }\n result = iterator.next();\n ++i;\n }\n length = i;\n } else if (isString(arrayLike)) {\n length = arrayLike.length;\n if (Context) arr = new Context();\n for (i = 0, j = 0; i < length; ++i) {\n value = arrayLike[i];\n if (i + 1 < length) {\n code = value.charCodeAt(0);\n if (code >= 55296 && code <= 56319) value += arrayLike[++i];\n }\n value = mapFn ? call.call(mapFn, thisArg, value, j) : value;\n if (Context) {\n desc.value = value;\n defineProperty(arr, j, desc);\n } else {\n arr[j] = value;\n }\n ++j;\n }\n length = j;\n }\n }\n if (length === void 0) {\n length = toPosInt(arrayLike.length);\n if (Context) arr = new Context(length);\n for (i = 0; i < length; ++i) {\n value = mapFn ? call.call(mapFn, thisArg, arrayLike[i], i) : arrayLike[i];\n if (Context) {\n desc.value = value;\n defineProperty(arr, i, desc);\n } else {\n arr[i] = value;\n }\n }\n }\n if (Context) {\n desc.value = null;\n arr.length = length;\n }\n return arr;\n };\n }\n });\n\n // node_modules/es5-ext/array/from/index.js\n var require_from = __commonJS({\n \"node_modules/es5-ext/array/from/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented8()() ? Array.from : require_shim8();\n }\n });\n\n // node_modules/es5-ext/object/copy.js\n var require_copy2 = __commonJS({\n \"node_modules/es5-ext/object/copy.js\"(exports, module) {\n \"use strict\";\n var aFrom = require_from();\n var assign = require_assign();\n var value = require_valid_value();\n module.exports = function(obj) {\n var copy = Object(value(obj)), propertyNames = arguments[1], options = Object(arguments[2]);\n if (copy !== obj && !propertyNames) return copy;\n var result = {};\n if (propertyNames) {\n aFrom(propertyNames, function(propertyName) {\n if (options.ensure || propertyName in obj) result[propertyName] = obj[propertyName];\n });\n } else {\n assign(result, obj);\n }\n return result;\n };\n }\n });\n\n // node_modules/es5-ext/object/_iterate.js\n var require_iterate = __commonJS({\n \"node_modules/es5-ext/object/_iterate.js\"(exports, module) {\n \"use strict\";\n var callable = require_valid_callable();\n var value = require_valid_value();\n var bind = Function.prototype.bind;\n var call = Function.prototype.call;\n var keys = Object.keys;\n var objPropertyIsEnumerable = Object.prototype.propertyIsEnumerable;\n module.exports = function(method, defVal) {\n return function(obj, cb) {\n var list, thisArg = arguments[2], compareFn = arguments[3];\n obj = Object(value(obj));\n callable(cb);\n list = keys(obj);\n if (compareFn) {\n list.sort(typeof compareFn === \"function\" ? bind.call(compareFn, obj) : void 0);\n }\n if (typeof method !== \"function\") method = list[method];\n return call.call(method, list, function(key, index) {\n if (!objPropertyIsEnumerable.call(obj, key)) return defVal;\n return call.call(cb, thisArg, obj[key], key, obj, index);\n });\n };\n };\n }\n });\n\n // node_modules/es5-ext/object/for-each.js\n var require_for_each2 = __commonJS({\n \"node_modules/es5-ext/object/for-each.js\"(exports, module) {\n \"use strict\";\n module.exports = require_iterate()(\"forEach\");\n }\n });\n\n // node_modules/es5-ext/object/map.js\n var require_map = __commonJS({\n \"node_modules/es5-ext/object/map.js\"(exports, module) {\n \"use strict\";\n var callable = require_valid_callable();\n var forEach = require_for_each2();\n var call = Function.prototype.call;\n module.exports = function(obj, cb) {\n var result = {}, thisArg = arguments[2];\n callable(cb);\n forEach(obj, function(value, key, targetObj, index) {\n result[key] = call.call(cb, thisArg, value, key, targetObj, index);\n });\n return result;\n };\n }\n });\n\n // node_modules/d/auto-bind.js\n var require_auto_bind = __commonJS({\n \"node_modules/d/auto-bind.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is();\n var ensureValue = require_ensure();\n var ensurePlainFunction = require_ensure2();\n var copy = require_copy2();\n var normalizeOptions = require_normalize_options();\n var map = require_map();\n var bind = Function.prototype.bind;\n var defineProperty = Object.defineProperty;\n var hasOwnProperty2 = Object.prototype.hasOwnProperty;\n var define2;\n define2 = function(name2, desc, options) {\n var value = ensureValue(desc) && ensurePlainFunction(desc.value), dgs;\n dgs = copy(desc);\n delete dgs.writable;\n delete dgs.value;\n dgs.get = function() {\n if (!options.overwriteDefinition && hasOwnProperty2.call(this, name2)) return value;\n desc.value = bind.call(value, options.resolveContext ? options.resolveContext(this) : this);\n defineProperty(this, name2, desc);\n return this[name2];\n };\n return dgs;\n };\n module.exports = function(props) {\n var options = normalizeOptions(arguments[1]);\n if (isValue(options.resolveContext)) ensurePlainFunction(options.resolveContext);\n return map(props, function(desc, name2) {\n return define2(name2, desc, options);\n });\n };\n }\n });\n\n // node_modules/es6-iterator/index.js\n var require_es6_iterator = __commonJS({\n \"node_modules/es6-iterator/index.js\"(exports, module) {\n \"use strict\";\n var clear = require_clear();\n var assign = require_assign();\n var callable = require_valid_callable();\n var value = require_valid_value();\n var d = require_d();\n var autoBind = require_auto_bind();\n var Symbol2 = require_es6_symbol();\n var defineProperty = Object.defineProperty;\n var defineProperties = Object.defineProperties;\n var Iterator;\n module.exports = Iterator = function(list, context) {\n if (!(this instanceof Iterator)) throw new TypeError(\"Constructor requires 'new'\");\n defineProperties(this, {\n __list__: d(\"w\", value(list)),\n __context__: d(\"w\", context),\n __nextIndex__: d(\"w\", 0)\n });\n if (!context) return;\n callable(context.on);\n context.on(\"_add\", this._onAdd);\n context.on(\"_delete\", this._onDelete);\n context.on(\"_clear\", this._onClear);\n };\n delete Iterator.prototype.constructor;\n defineProperties(\n Iterator.prototype,\n assign(\n {\n _next: d(function() {\n var i;\n if (!this.__list__) return void 0;\n if (this.__redo__) {\n i = this.__redo__.shift();\n if (i !== void 0) return i;\n }\n if (this.__nextIndex__ < this.__list__.length) return this.__nextIndex__++;\n this._unBind();\n return void 0;\n }),\n next: d(function() {\n return this._createResult(this._next());\n }),\n _createResult: d(function(i) {\n if (i === void 0) return { done: true, value: void 0 };\n return { done: false, value: this._resolve(i) };\n }),\n _resolve: d(function(i) {\n return this.__list__[i];\n }),\n _unBind: d(function() {\n this.__list__ = null;\n delete this.__redo__;\n if (!this.__context__) return;\n this.__context__.off(\"_add\", this._onAdd);\n this.__context__.off(\"_delete\", this._onDelete);\n this.__context__.off(\"_clear\", this._onClear);\n this.__context__ = null;\n }),\n toString: d(function() {\n return \"[object \" + (this[Symbol2.toStringTag] || \"Object\") + \"]\";\n })\n },\n autoBind({\n _onAdd: d(function(index) {\n if (index >= this.__nextIndex__) return;\n ++this.__nextIndex__;\n if (!this.__redo__) {\n defineProperty(this, \"__redo__\", d(\"c\", [index]));\n return;\n }\n this.__redo__.forEach(function(redo, i) {\n if (redo >= index) this.__redo__[i] = ++redo;\n }, this);\n this.__redo__.push(index);\n }),\n _onDelete: d(function(index) {\n var i;\n if (index >= this.__nextIndex__) return;\n --this.__nextIndex__;\n if (!this.__redo__) return;\n i = this.__redo__.indexOf(index);\n if (i !== -1) this.__redo__.splice(i, 1);\n this.__redo__.forEach(function(redo, j) {\n if (redo > index) this.__redo__[j] = --redo;\n }, this);\n }),\n _onClear: d(function() {\n if (this.__redo__) clear.call(this.__redo__);\n this.__nextIndex__ = 0;\n })\n })\n )\n );\n defineProperty(\n Iterator.prototype,\n Symbol2.iterator,\n d(function() {\n return this;\n })\n );\n }\n });\n\n // node_modules/es6-iterator/array.js\n var require_array2 = __commonJS({\n \"node_modules/es6-iterator/array.js\"(exports, module) {\n \"use strict\";\n var setPrototypeOf = require_set_prototype_of();\n var contains = require_contains();\n var d = require_d();\n var Symbol2 = require_es6_symbol();\n var Iterator = require_es6_iterator();\n var defineProperty = Object.defineProperty;\n var ArrayIterator;\n ArrayIterator = module.exports = function(arr, kind) {\n if (!(this instanceof ArrayIterator)) throw new TypeError(\"Constructor requires 'new'\");\n Iterator.call(this, arr);\n if (!kind) kind = \"value\";\n else if (contains.call(kind, \"key+value\")) kind = \"key+value\";\n else if (contains.call(kind, \"key\")) kind = \"key\";\n else kind = \"value\";\n defineProperty(this, \"__kind__\", d(\"\", kind));\n };\n if (setPrototypeOf) setPrototypeOf(ArrayIterator, Iterator);\n delete ArrayIterator.prototype.constructor;\n ArrayIterator.prototype = Object.create(Iterator.prototype, {\n _resolve: d(function(i) {\n if (this.__kind__ === \"value\") return this.__list__[i];\n if (this.__kind__ === \"key+value\") return [i, this.__list__[i]];\n return i;\n })\n });\n defineProperty(ArrayIterator.prototype, Symbol2.toStringTag, d(\"c\", \"Array Iterator\"));\n }\n });\n\n // node_modules/es6-iterator/string.js\n var require_string = __commonJS({\n \"node_modules/es6-iterator/string.js\"(exports, module) {\n \"use strict\";\n var setPrototypeOf = require_set_prototype_of();\n var d = require_d();\n var Symbol2 = require_es6_symbol();\n var Iterator = require_es6_iterator();\n var defineProperty = Object.defineProperty;\n var StringIterator;\n StringIterator = module.exports = function(str) {\n if (!(this instanceof StringIterator)) throw new TypeError(\"Constructor requires 'new'\");\n str = String(str);\n Iterator.call(this, str);\n defineProperty(this, \"__length__\", d(\"\", str.length));\n };\n if (setPrototypeOf) setPrototypeOf(StringIterator, Iterator);\n delete StringIterator.prototype.constructor;\n StringIterator.prototype = Object.create(Iterator.prototype, {\n _next: d(function() {\n if (!this.__list__) return void 0;\n if (this.__nextIndex__ < this.__length__) return this.__nextIndex__++;\n this._unBind();\n return void 0;\n }),\n _resolve: d(function(i) {\n var char = this.__list__[i], code;\n if (this.__nextIndex__ === this.__length__) return char;\n code = char.charCodeAt(0);\n if (code >= 55296 && code <= 56319) return char + this.__list__[this.__nextIndex__++];\n return char;\n })\n });\n defineProperty(StringIterator.prototype, Symbol2.toStringTag, d(\"c\", \"String Iterator\"));\n }\n });\n\n // node_modules/es6-iterator/is-iterable.js\n var require_is_iterable = __commonJS({\n \"node_modules/es6-iterator/is-iterable.js\"(exports, module) {\n \"use strict\";\n var isArguments = require_is_arguments2();\n var isValue = require_is_value();\n var isString = require_is_string();\n var iteratorSymbol = require_es6_symbol().iterator;\n var isArray = Array.isArray;\n module.exports = function(value) {\n if (!isValue(value)) return false;\n if (isArray(value)) return true;\n if (isString(value)) return true;\n if (isArguments(value)) return true;\n return typeof value[iteratorSymbol] === \"function\";\n };\n }\n });\n\n // node_modules/es6-iterator/valid-iterable.js\n var require_valid_iterable = __commonJS({\n \"node_modules/es6-iterator/valid-iterable.js\"(exports, module) {\n \"use strict\";\n var isIterable = require_is_iterable();\n module.exports = function(value) {\n if (!isIterable(value)) throw new TypeError(value + \" is not iterable\");\n return value;\n };\n }\n });\n\n // node_modules/es6-iterator/get.js\n var require_get = __commonJS({\n \"node_modules/es6-iterator/get.js\"(exports, module) {\n \"use strict\";\n var isArguments = require_is_arguments2();\n var isString = require_is_string();\n var ArrayIterator = require_array2();\n var StringIterator = require_string();\n var iterable = require_valid_iterable();\n var iteratorSymbol = require_es6_symbol().iterator;\n module.exports = function(obj) {\n if (typeof iterable(obj)[iteratorSymbol] === \"function\") return obj[iteratorSymbol]();\n if (isArguments(obj)) return new ArrayIterator(obj);\n if (isString(obj)) return new StringIterator(obj);\n return new ArrayIterator(obj);\n };\n }\n });\n\n // node_modules/es6-iterator/for-of.js\n var require_for_of = __commonJS({\n \"node_modules/es6-iterator/for-of.js\"(exports, module) {\n \"use strict\";\n var isArguments = require_is_arguments2();\n var callable = require_valid_callable();\n var isString = require_is_string();\n var get = require_get();\n var isArray = Array.isArray;\n var call = Function.prototype.call;\n var some = Array.prototype.some;\n module.exports = function(iterable, cb) {\n var mode, thisArg = arguments[2], result, doBreak, broken, i, length, char, code;\n if (isArray(iterable) || isArguments(iterable)) mode = \"array\";\n else if (isString(iterable)) mode = \"string\";\n else iterable = get(iterable);\n callable(cb);\n doBreak = function() {\n broken = true;\n };\n if (mode === \"array\") {\n some.call(iterable, function(value) {\n call.call(cb, thisArg, value, doBreak);\n return broken;\n });\n return;\n }\n if (mode === \"string\") {\n length = iterable.length;\n for (i = 0; i < length; ++i) {\n char = iterable[i];\n if (i + 1 < length) {\n code = char.charCodeAt(0);\n if (code >= 55296 && code <= 56319) char += iterable[++i];\n }\n call.call(cb, thisArg, char, doBreak);\n if (broken) break;\n }\n return;\n }\n result = iterable.next();\n while (!result.done) {\n call.call(cb, thisArg, result.value, doBreak);\n if (broken) return;\n result = iterable.next();\n }\n };\n }\n });\n\n // node_modules/es6-weak-map/is-native-implemented.js\n var require_is_native_implemented = __commonJS({\n \"node_modules/es6-weak-map/is-native-implemented.js\"(exports, module) {\n \"use strict\";\n module.exports = function() {\n if (typeof WeakMap !== \"function\") return false;\n return Object.prototype.toString.call(/* @__PURE__ */ new WeakMap()) === \"[object WeakMap]\";\n }();\n }\n });\n\n // node_modules/es6-weak-map/polyfill.js\n var require_polyfill5 = __commonJS({\n \"node_modules/es6-weak-map/polyfill.js\"(exports, module) {\n \"use strict\";\n var isValue = require_is_value();\n var setPrototypeOf = require_set_prototype_of();\n var object = require_valid_object();\n var ensureValue = require_valid_value();\n var randomUniq = require_random_uniq();\n var d = require_d();\n var getIterator = require_get();\n var forOf = require_for_of();\n var toStringTagSymbol = require_es6_symbol().toStringTag;\n var isNative = require_is_native_implemented();\n var isArray = Array.isArray;\n var defineProperty = Object.defineProperty;\n var objHasOwnProperty = Object.prototype.hasOwnProperty;\n var getPrototypeOf = Object.getPrototypeOf;\n var WeakMapPoly;\n module.exports = WeakMapPoly = function() {\n var iterable = arguments[0], self2;\n if (!(this instanceof WeakMapPoly)) throw new TypeError(\"Constructor requires 'new'\");\n self2 = isNative && setPrototypeOf && WeakMap !== WeakMapPoly ? setPrototypeOf(/* @__PURE__ */ new WeakMap(), getPrototypeOf(this)) : this;\n if (isValue(iterable)) {\n if (!isArray(iterable)) iterable = getIterator(iterable);\n }\n defineProperty(self2, \"__weakMapData__\", d(\"c\", \"$weakMap$\" + randomUniq()));\n if (!iterable) return self2;\n forOf(iterable, function(val) {\n ensureValue(val);\n self2.set(val[0], val[1]);\n });\n return self2;\n };\n if (isNative) {\n if (setPrototypeOf) setPrototypeOf(WeakMapPoly, WeakMap);\n WeakMapPoly.prototype = Object.create(WeakMap.prototype, { constructor: d(WeakMapPoly) });\n }\n Object.defineProperties(WeakMapPoly.prototype, {\n delete: d(function(key) {\n if (objHasOwnProperty.call(object(key), this.__weakMapData__)) {\n delete key[this.__weakMapData__];\n return true;\n }\n return false;\n }),\n get: d(function(key) {\n if (!objHasOwnProperty.call(object(key), this.__weakMapData__)) return void 0;\n return key[this.__weakMapData__];\n }),\n has: d(function(key) {\n return objHasOwnProperty.call(object(key), this.__weakMapData__);\n }),\n set: d(function(key, value) {\n defineProperty(object(key), this.__weakMapData__, d(\"c\", value));\n return this;\n }),\n toString: d(function() {\n return \"[object WeakMap]\";\n })\n });\n defineProperty(WeakMapPoly.prototype, toStringTagSymbol, d(\"c\", \"WeakMap\"));\n }\n });\n\n // node_modules/es6-weak-map/index.js\n var require_es6_weak_map = __commonJS({\n \"node_modules/es6-weak-map/index.js\"(exports, module) {\n \"use strict\";\n module.exports = require_is_implemented()() ? WeakMap : require_polyfill5();\n }\n });\n\n // node_modules/array-find-index/index.js\n var require_array_find_index = __commonJS({\n \"node_modules/array-find-index/index.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arr, predicate, ctx) {\n if (typeof Array.prototype.findIndex === \"function\") {\n return arr.findIndex(predicate, ctx);\n }\n if (typeof predicate !== \"function\") {\n throw new TypeError(\"predicate must be a function\");\n }\n var list = Object(arr);\n var len = list.length;\n if (len === 0) {\n return -1;\n }\n for (var i = 0; i < len; i++) {\n if (predicate.call(ctx, list[i], i, list)) {\n return i;\n }\n }\n return -1;\n };\n }\n });\n\n // node_modules/regl-line2d/index.js\n var require_regl_line2d = __commonJS({\n \"node_modules/regl-line2d/index.js\"(exports, module) {\n \"use strict\";\n var rgba3 = require_color_normalize();\n var getBounds = require_array_bounds();\n var extend2 = require_object_assign();\n var pick = require_pick_by_alias();\n var flatten = require_flatten_vertex_data();\n var triangulate = require_earcut();\n var normalize = require_array_normalize();\n var { float32, fract32 } = require_to_float32();\n var WeakMap2 = require_es6_weak_map();\n var parseRect = require_parse_rect();\n var findIndex = require_array_find_index();\n var rectVert = `\nprecision highp float;\n\nattribute vec2 aCoord, bCoord, aCoordFract, bCoordFract;\nattribute vec4 color;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) {\n\t// the order is important\n\treturn position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n}\n\nvoid main() {\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineOffset = lineTop * 2. - 1.;\n\n\tvec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract);\n\ttangent = normalize(diff * scale * viewport.zw);\n\tvec2 normal = vec2(-tangent.y, tangent.x);\n\n\tvec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart\n\t\t+ project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd\n\n\t\t+ thickness * normal * .5 * lineOffset / viewport.zw;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n}\n`;\n var rectFrag = `\nprecision highp float;\n\nuniform float dashLength, pixelRatio, thickness, opacity, id;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\n\nvoid main() {\n\tfloat alpha = 1.;\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n`;\n var fillVert = `\nprecision highp float;\n\nattribute vec2 position, positionFract;\n\nuniform vec4 color;\nuniform vec2 scale, scaleFract, translate, translateFract;\nuniform float pixelRatio, id;\nuniform vec4 viewport;\nuniform float opacity;\n\nvarying vec4 fragColor;\n\nconst float MAX_LINES = 256.;\n\nvoid main() {\n\tfloat depth = (MAX_LINES - 4. - id) / (MAX_LINES);\n\n\tvec2 position = position * scale + translate\n + positionFract * scale + translateFract\n + position * scaleFract\n + positionFract * scaleFract;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tfragColor = color / 255.;\n\tfragColor.a *= opacity;\n}\n`;\n var fillFrag = `\nprecision highp float;\nvarying vec4 fragColor;\n\nvoid main() {\n\tgl_FragColor = fragColor;\n}\n`;\n var milterVert = `\nprecision highp float;\n\nattribute vec2 aCoord, bCoord, nextCoord, prevCoord;\nattribute vec4 aColor, bColor;\nattribute float lineEnd, lineTop;\n\nuniform vec2 scale, translate;\nuniform float thickness, pixelRatio, id, depth;\nuniform vec4 viewport;\nuniform float miterLimit, miterMode;\n\nvarying vec4 fragColor;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 tangent;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nconst float REVERSE_THRESHOLD = -.875;\nconst float MIN_DIFF = 1e-6;\n\n// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead\n// TODO: precalculate dot products, normalize things beforehead etc.\n// TODO: refactor to rectangular algorithm\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nbool isNaN( float val ){\n return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true;\n}\n\nvoid main() {\n\tvec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord;\n\n vec2 adjustedScale;\n adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x;\n adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y;\n\n vec2 scaleRatio = adjustedScale * viewport.zw;\n\tvec2 normalWidth = thickness / scaleRatio;\n\n\tfloat lineStart = 1. - lineEnd;\n\tfloat lineBot = 1. - lineTop;\n\n\tfragColor = (lineStart * aColor + lineEnd * bColor) / 255.;\n\n\tif (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return;\n\n\tif (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord);\n\tif (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord);\n\n\n\tvec2 prevDiff = aCoord - prevCoord;\n\tvec2 currDiff = bCoord - aCoord;\n\tvec2 nextDiff = nextCoord - bCoord;\n\n\tvec2 prevTangent = normalize(prevDiff * scaleRatio);\n\tvec2 currTangent = normalize(currDiff * scaleRatio);\n\tvec2 nextTangent = normalize(nextDiff * scaleRatio);\n\n\tvec2 prevNormal = vec2(-prevTangent.y, prevTangent.x);\n\tvec2 currNormal = vec2(-currTangent.y, currTangent.x);\n\tvec2 nextNormal = vec2(-nextTangent.y, nextTangent.x);\n\n\tvec2 startJoinDirection = normalize(prevTangent - currTangent);\n\tvec2 endJoinDirection = normalize(currTangent - nextTangent);\n\n\t// collapsed/unidirectional segment cases\n\t// FIXME: there should be more elegant solution\n\tvec2 prevTanDiff = abs(prevTangent - currTangent);\n\tvec2 nextTanDiff = abs(nextTangent - currTangent);\n\tif (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) {\n\t\tstartJoinDirection = currNormal;\n\t}\n\tif (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) {\n\t\tendJoinDirection = currNormal;\n\t}\n\tif (aCoord == bCoord) {\n\t\tendJoinDirection = startJoinDirection;\n\t\tcurrNormal = prevNormal;\n\t\tcurrTangent = prevTangent;\n\t}\n\n\ttangent = currTangent;\n\n\t//calculate join shifts relative to normals\n\tfloat startJoinShift = dot(currNormal, startJoinDirection);\n\tfloat endJoinShift = dot(currNormal, endJoinDirection);\n\n\tfloat startMiterRatio = abs(1. / startJoinShift);\n\tfloat endMiterRatio = abs(1. / endJoinShift);\n\n\tvec2 startJoin = startJoinDirection * startMiterRatio;\n\tvec2 endJoin = endJoinDirection * endMiterRatio;\n\n\tvec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin;\n\tstartTopJoin = sign(startJoinShift) * startJoin * .5;\n\tstartBotJoin = -startTopJoin;\n\n\tendTopJoin = sign(endJoinShift) * endJoin * .5;\n\tendBotJoin = -endTopJoin;\n\n\tvec2 aTopCoord = aCoord + normalWidth * startTopJoin;\n\tvec2 bTopCoord = bCoord + normalWidth * endTopJoin;\n\tvec2 aBotCoord = aCoord + normalWidth * startBotJoin;\n\tvec2 bBotCoord = bCoord + normalWidth * endBotJoin;\n\n\t//miter anti-clipping\n\tfloat baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x)));\n\tfloat abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x)));\n\n\t//prevent close to reverse direction switch\n\tbool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal);\n\tbool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal);\n\n\tif (prevReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.);\n\t\taBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\taTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) {\n\t\t//handle miter clipping\n\t\tbTopCoord -= normalWidth * endTopJoin;\n\t\tbTopCoord += normalize(endTopJoin * normalWidth) * baClipping;\n\t}\n\n\tif (nextReverse) {\n\t\t//make join rectangular\n\t\tvec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5;\n\t\tfloat normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.);\n\t\tbBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5;\n\t\tbTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5;\n\t}\n\telse if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) {\n\t\t//handle miter clipping\n\t\taBotCoord -= normalWidth * startBotJoin;\n\t\taBotCoord += normalize(startBotJoin * normalWidth) * abClipping;\n\t}\n\n\tvec2 aTopPosition = (aTopCoord) * adjustedScale + translate;\n\tvec2 aBotPosition = (aBotCoord) * adjustedScale + translate;\n\n\tvec2 bTopPosition = (bTopCoord) * adjustedScale + translate;\n\tvec2 bBotPosition = (bBotCoord) * adjustedScale + translate;\n\n\t//position is normalized 0..1 coord on the screen\n\tvec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd;\n\n\tstartCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\tendCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy;\n\n\tgl_Position = vec4(position * 2.0 - 1.0, depth, 1);\n\n\tenableStartMiter = step(dot(currTangent, prevTangent), .5);\n\tenableEndMiter = step(dot(currTangent, nextTangent), .5);\n\n\t//bevel miter cutoffs\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n\n\t//round miter cutoffs\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tvec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5;\n\t\t\tstartCutoff = vec4(aCoord, aCoord);\n\t\t\tstartCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio;\n\t\t\tstartCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tstartCutoff += viewport.xyxy;\n\t\t\tstartCutoff += startMiterWidth.xyxy;\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tvec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5;\n\t\t\tendCutoff = vec4(bCoord, bCoord);\n\t\t\tendCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio;\n\t\t\tendCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw;\n\t\t\tendCutoff += viewport.xyxy;\n\t\t\tendCutoff += endMiterWidth.xyxy;\n\t\t}\n\t}\n}\n`;\n var milterFrag = `\nprecision highp float;\n\nuniform float dashLength, pixelRatio, thickness, opacity, id, miterMode;\nuniform sampler2D dashTexture;\n\nvarying vec4 fragColor;\nvarying vec2 tangent;\nvarying vec4 startCutoff, endCutoff;\nvarying vec2 startCoord, endCoord;\nvarying float enableStartMiter, enableEndMiter;\n\nfloat distToLine(vec2 p, vec2 a, vec2 b) {\n\tvec2 diff = b - a;\n\tvec2 perp = normalize(vec2(-diff.y, diff.x));\n\treturn dot(p - a, perp);\n}\n\nvoid main() {\n\tfloat alpha = 1., distToStart, distToEnd;\n\tfloat cutoff = thickness * .5;\n\n\t//bevel miter\n\tif (miterMode == 1.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToStart + 1., 0.), 1.);\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < -1.) {\n\t\t\t\tdiscard;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\talpha *= min(max(distToEnd + 1., 0.), 1.);\n\t\t}\n\t}\n\n\t// round miter\n\telse if (miterMode == 2.) {\n\t\tif (enableStartMiter == 1.) {\n\t\t\tdistToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw);\n\t\t\tif (distToStart < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - startCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\n\t\tif (enableEndMiter == 1.) {\n\t\t\tdistToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw);\n\t\t\tif (distToEnd < 0.) {\n\t\t\t\tfloat radius = length(gl_FragCoord.xy - endCoord);\n\n\t\t\t\tif(radius > cutoff + .5) {\n\t\t\t\t\tdiscard;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\talpha -= smoothstep(cutoff - .5, cutoff + .5, radius);\n\t\t\t}\n\t\t}\n\t}\n\n\tfloat t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25;\n\tfloat dash = texture2D(dashTexture, vec2(t, .5)).r;\n\n\tgl_FragColor = fragColor;\n\tgl_FragColor.a *= alpha * opacity * dash;\n}\n`;\n module.exports = Line2D;\n function Line2D(regl, options) {\n if (!(this instanceof Line2D)) return new Line2D(regl, options);\n if (typeof regl === \"function\") {\n if (!options) options = {};\n options.regl = regl;\n } else {\n options = regl;\n }\n if (options.length) options.positions = options;\n regl = options.regl;\n if (!regl.hasExtension(\"ANGLE_instanced_arrays\")) {\n throw Error(\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\");\n }\n this.gl = regl._gl;\n this.regl = regl;\n this.passes = [];\n this.shaders = Line2D.shaders.has(regl) ? Line2D.shaders.get(regl) : Line2D.shaders.set(regl, Line2D.createShaders(regl)).get(regl);\n this.update(options);\n }\n Line2D.dashMult = 2;\n Line2D.maxPatternLength = 256;\n Line2D.precisionThreshold = 3e6;\n Line2D.maxPoints = 1e4;\n Line2D.maxLines = 2048;\n Line2D.shaders = new WeakMap2();\n Line2D.createShaders = function(regl) {\n let offsetBuffer = regl.buffer({\n usage: \"static\",\n type: \"float\",\n data: [0, 1, 0, 0, 1, 1, 1, 0]\n });\n let shaderOptions = {\n primitive: \"triangle strip\",\n instances: regl.prop(\"count\"),\n count: 4,\n offset: 0,\n uniforms: {\n miterMode: (ctx, prop) => prop.join === \"round\" ? 2 : 1,\n miterLimit: regl.prop(\"miterLimit\"),\n scale: regl.prop(\"scale\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translateFract: regl.prop(\"translateFract\"),\n translate: regl.prop(\"translate\"),\n thickness: regl.prop(\"thickness\"),\n dashTexture: regl.prop(\"dashTexture\"),\n opacity: regl.prop(\"opacity\"),\n pixelRatio: regl.context(\"pixelRatio\"),\n id: regl.prop(\"id\"),\n dashLength: regl.prop(\"dashLength\"),\n viewport: (c, p) => [p.viewport.x, p.viewport.y, c.viewportWidth, c.viewportHeight],\n depth: regl.prop(\"depth\")\n },\n blend: {\n enable: true,\n color: [0, 0, 0, 0],\n equation: {\n rgb: \"add\",\n alpha: \"add\"\n },\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n depth: {\n enable: (c, p) => {\n return !p.overlay;\n }\n },\n stencil: { enable: false },\n scissor: {\n enable: true,\n box: regl.prop(\"viewport\")\n },\n viewport: regl.prop(\"viewport\")\n };\n let drawRectLine = regl(extend2({\n vert: rectVert,\n frag: rectFrag,\n attributes: {\n // if point is at the end of segment\n lineEnd: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 0\n },\n // if point is at the top of segment\n lineTop: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 4\n },\n // beginning of line coordinate\n aCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 8,\n divisor: 1\n },\n // end of line coordinate\n bCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 16,\n divisor: 1\n },\n aCoordFract: {\n buffer: regl.prop(\"positionFractBuffer\"),\n stride: 8,\n offset: 8,\n divisor: 1\n },\n bCoordFract: {\n buffer: regl.prop(\"positionFractBuffer\"),\n stride: 8,\n offset: 16,\n divisor: 1\n },\n color: {\n buffer: regl.prop(\"colorBuffer\"),\n stride: 4,\n offset: 0,\n divisor: 1\n }\n }\n }, shaderOptions));\n let drawMiterLine;\n try {\n drawMiterLine = regl(extend2({\n // culling removes polygon creasing\n cull: {\n enable: true,\n face: \"back\"\n },\n vert: milterVert,\n frag: milterFrag,\n attributes: {\n // is line end\n lineEnd: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 0\n },\n // is line top\n lineTop: {\n buffer: offsetBuffer,\n divisor: 0,\n stride: 8,\n offset: 4\n },\n // left color\n aColor: {\n buffer: regl.prop(\"colorBuffer\"),\n stride: 4,\n offset: 0,\n divisor: 1\n },\n // right color\n bColor: {\n buffer: regl.prop(\"colorBuffer\"),\n stride: 4,\n offset: 4,\n divisor: 1\n },\n prevCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 0,\n divisor: 1\n },\n aCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 8,\n divisor: 1\n },\n bCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 16,\n divisor: 1\n },\n nextCoord: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 24,\n divisor: 1\n }\n }\n }, shaderOptions));\n } catch (e) {\n drawMiterLine = drawRectLine;\n }\n let drawFill = regl({\n primitive: \"triangle\",\n elements: (ctx, prop) => prop.triangles,\n offset: 0,\n vert: fillVert,\n frag: fillFrag,\n uniforms: {\n scale: regl.prop(\"scale\"),\n color: regl.prop(\"fill\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translateFract: regl.prop(\"translateFract\"),\n translate: regl.prop(\"translate\"),\n opacity: regl.prop(\"opacity\"),\n pixelRatio: regl.context(\"pixelRatio\"),\n id: regl.prop(\"id\"),\n viewport: (ctx, prop) => [prop.viewport.x, prop.viewport.y, ctx.viewportWidth, ctx.viewportHeight]\n },\n attributes: {\n position: {\n buffer: regl.prop(\"positionBuffer\"),\n stride: 8,\n offset: 8\n },\n positionFract: {\n buffer: regl.prop(\"positionFractBuffer\"),\n stride: 8,\n offset: 8\n }\n },\n blend: shaderOptions.blend,\n depth: { enable: false },\n scissor: shaderOptions.scissor,\n stencil: shaderOptions.stencil,\n viewport: shaderOptions.viewport\n });\n return {\n fill: drawFill,\n rect: drawRectLine,\n miter: drawMiterLine\n };\n };\n Line2D.defaults = {\n dashes: null,\n join: \"miter\",\n miterLimit: 1,\n thickness: 10,\n cap: \"square\",\n color: \"black\",\n opacity: 1,\n overlay: false,\n viewport: null,\n range: null,\n close: false,\n fill: null\n };\n Line2D.prototype.render = function(...args) {\n if (args.length) {\n this.update(...args);\n }\n this.draw();\n };\n Line2D.prototype.draw = function(...args) {\n (args.length ? args : this.passes).forEach((s, i) => {\n if (s && Array.isArray(s)) return this.draw(...s);\n if (typeof s === \"number\") s = this.passes[s];\n if (!(s && s.count > 1 && s.opacity)) return;\n this.regl._refresh();\n if (s.fill && s.triangles && s.triangles.length > 2) {\n this.shaders.fill(s);\n }\n if (!s.thickness) return;\n if (s.scale[0] * s.viewport.width > Line2D.precisionThreshold || s.scale[1] * s.viewport.height > Line2D.precisionThreshold) {\n this.shaders.rect(s);\n } else if (s.join === \"rect\" || !s.join && (s.thickness <= 2 || s.count >= Line2D.maxPoints)) {\n this.shaders.rect(s);\n } else {\n this.shaders.miter(s);\n }\n });\n return this;\n };\n Line2D.prototype.update = function(options) {\n if (!options) return;\n if (options.length != null) {\n if (typeof options[0] === \"number\") options = [{ positions: options }];\n } else if (!Array.isArray(options)) options = [options];\n let { regl, gl: gl2 } = this;\n options.forEach((o, i) => {\n let state = this.passes[i];\n if (o === void 0) return;\n if (o === null) {\n this.passes[i] = null;\n return;\n }\n if (typeof o[0] === \"number\") o = { positions: o };\n o = pick(o, {\n positions: \"positions points data coords\",\n thickness: \"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth\",\n join: \"lineJoin linejoin join type mode\",\n miterLimit: \"miterlimit miterLimit\",\n dashes: \"dash dashes dasharray dash-array dashArray\",\n color: \"color colour stroke colors colours stroke-color strokeColor\",\n fill: \"fill fill-color fillColor\",\n opacity: \"alpha opacity\",\n overlay: \"overlay crease overlap intersect\",\n close: \"closed close closed-path closePath\",\n range: \"range dataBox\",\n viewport: \"viewport viewBox\",\n hole: \"holes hole hollow\",\n splitNull: \"splitNull\"\n });\n if (!state) {\n this.passes[i] = state = {\n id: i,\n scale: null,\n scaleFract: null,\n translate: null,\n translateFract: null,\n count: 0,\n hole: [],\n depth: 0,\n dashLength: 1,\n dashTexture: regl.texture({\n channels: 1,\n data: new Uint8Array([255]),\n width: 1,\n height: 1,\n mag: \"linear\",\n min: \"linear\"\n }),\n colorBuffer: regl.buffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: new Uint8Array()\n }),\n positionBuffer: regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array()\n }),\n positionFractBuffer: regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array()\n })\n };\n o = extend2({}, Line2D.defaults, o);\n }\n if (o.thickness != null) state.thickness = parseFloat(o.thickness);\n if (o.opacity != null) state.opacity = parseFloat(o.opacity);\n if (o.miterLimit != null) state.miterLimit = parseFloat(o.miterLimit);\n if (o.overlay != null) {\n state.overlay = !!o.overlay;\n if (i < Line2D.maxLines) {\n state.depth = 2 * (Line2D.maxLines - 1 - i % Line2D.maxLines) / Line2D.maxLines - 1;\n }\n }\n if (o.join != null) state.join = o.join;\n if (o.hole != null) state.hole = o.hole;\n if (o.fill != null) state.fill = !o.fill ? null : rgba3(o.fill, \"uint8\");\n if (o.viewport != null) state.viewport = parseRect(o.viewport);\n if (!state.viewport) {\n state.viewport = parseRect([\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ]);\n }\n if (o.close != null) state.close = o.close;\n if (o.positions === null) o.positions = [];\n if (o.positions) {\n let positions, count;\n if (o.positions.x && o.positions.y) {\n let xPos = o.positions.x;\n let yPos = o.positions.y;\n count = state.count = Math.max(\n xPos.length,\n yPos.length\n );\n positions = new Float64Array(count * 2);\n for (let i2 = 0; i2 < count; i2++) {\n positions[i2 * 2] = xPos[i2];\n positions[i2 * 2 + 1] = yPos[i2];\n }\n } else {\n positions = flatten(o.positions, \"float64\");\n count = state.count = Math.floor(positions.length / 2);\n }\n let bounds = state.bounds = getBounds(positions, 2);\n if (state.fill) {\n let pos = [];\n let ids = {};\n let lastId = 0;\n for (let i2 = 0, ptr = 0, l = state.count; i2 < l; i2++) {\n let x = positions[i2 * 2];\n let y = positions[i2 * 2 + 1];\n if (isNaN(x) || isNaN(y) || x == null || y == null) {\n x = positions[lastId * 2];\n y = positions[lastId * 2 + 1];\n ids[i2] = lastId;\n } else {\n lastId = i2;\n }\n pos[ptr++] = x;\n pos[ptr++] = y;\n }\n if (o.splitNull) {\n if (!(state.count - 1 in ids)) ids[state.count] = state.count - 1;\n let splits = Object.keys(ids).map(Number).sort((a, b) => a - b);\n let split_triangles = [];\n let base = 0;\n let hole_base = state.hole != null ? state.hole[0] : null;\n if (hole_base != null) {\n let last_id = findIndex(splits, (e) => e >= hole_base);\n splits = splits.slice(0, last_id);\n splits.push(hole_base);\n }\n for (let i2 = 0; i2 < splits.length; i2++) {\n let seg_pos = pos.slice(base * 2, splits[i2] * 2).concat(\n hole_base ? pos.slice(hole_base * 2) : []\n );\n let hole = (state.hole || []).map((e) => e - hole_base + (splits[i2] - base));\n let triangles = triangulate(seg_pos, hole);\n triangles = triangles.map(\n (e) => e + base + (e + base < splits[i2] ? 0 : hole_base - splits[i2])\n );\n split_triangles.push(...triangles);\n base = splits[i2] + 1;\n }\n for (let i2 = 0, l = split_triangles.length; i2 < l; i2++) {\n if (ids[split_triangles[i2]] != null) split_triangles[i2] = ids[split_triangles[i2]];\n }\n state.triangles = split_triangles;\n } else {\n let triangles = triangulate(pos, state.hole || []);\n for (let i2 = 0, l = triangles.length; i2 < l; i2++) {\n if (ids[triangles[i2]] != null) triangles[i2] = ids[triangles[i2]];\n }\n state.triangles = triangles;\n }\n }\n let npos = new Float64Array(positions);\n normalize(npos, 2, bounds);\n let positionData = new Float64Array(count * 2 + 6);\n if (state.close) {\n if (positions[0] === positions[count * 2 - 2] && positions[1] === positions[count * 2 - 1]) {\n positionData[0] = npos[count * 2 - 4];\n positionData[1] = npos[count * 2 - 3];\n } else {\n positionData[0] = npos[count * 2 - 2];\n positionData[1] = npos[count * 2 - 1];\n }\n } else {\n positionData[0] = npos[0];\n positionData[1] = npos[1];\n }\n positionData.set(npos, 2);\n if (state.close) {\n if (positions[0] === positions[count * 2 - 2] && positions[1] === positions[count * 2 - 1]) {\n positionData[count * 2 + 2] = npos[2];\n positionData[count * 2 + 3] = npos[3];\n state.count -= 1;\n } else {\n positionData[count * 2 + 2] = npos[0];\n positionData[count * 2 + 3] = npos[1];\n positionData[count * 2 + 4] = npos[2];\n positionData[count * 2 + 5] = npos[3];\n }\n } else {\n positionData[count * 2 + 2] = npos[count * 2 - 2];\n positionData[count * 2 + 3] = npos[count * 2 - 1];\n positionData[count * 2 + 4] = npos[count * 2 - 2];\n positionData[count * 2 + 5] = npos[count * 2 - 1];\n }\n var float_data = float32(positionData);\n state.positionBuffer(float_data);\n var frac_data = fract32(positionData, float_data);\n state.positionFractBuffer(frac_data);\n }\n if (o.range) {\n state.range = o.range;\n } else if (!state.range) {\n state.range = state.bounds;\n }\n if ((o.range || o.positions) && state.count) {\n let bounds = state.bounds;\n let boundsW = bounds[2] - bounds[0], boundsH = bounds[3] - bounds[1];\n let rangeW = state.range[2] - state.range[0], rangeH = state.range[3] - state.range[1];\n state.scale = [\n boundsW / rangeW,\n boundsH / rangeH\n ];\n state.translate = [\n -state.range[0] / rangeW + bounds[0] / rangeW || 0,\n -state.range[1] / rangeH + bounds[1] / rangeH || 0\n ];\n state.scaleFract = fract32(state.scale);\n state.translateFract = fract32(state.translate);\n }\n if (o.dashes) {\n let dashLength = 0, dashData;\n if (!o.dashes || o.dashes.length < 2) {\n dashLength = 1;\n dashData = new Uint8Array([255, 255, 255, 255, 255, 255, 255, 255]);\n } else {\n dashLength = 0;\n for (let i2 = 0; i2 < o.dashes.length; ++i2) {\n dashLength += o.dashes[i2];\n }\n dashData = new Uint8Array(dashLength * Line2D.dashMult);\n let ptr = 0;\n let fillColor = 255;\n for (let k = 0; k < 2; k++) {\n for (let i2 = 0; i2 < o.dashes.length; ++i2) {\n for (let j = 0, l = o.dashes[i2] * Line2D.dashMult * 0.5; j < l; ++j) {\n dashData[ptr++] = fillColor;\n }\n fillColor ^= 255;\n }\n }\n }\n state.dashLength = dashLength;\n state.dashTexture({\n channels: 1,\n data: dashData,\n width: dashData.length,\n height: 1,\n mag: \"linear\",\n min: \"linear\"\n }, 0, 0);\n }\n if (o.color) {\n let count = state.count;\n let colors = o.color;\n if (!colors) colors = \"transparent\";\n let colorData = new Uint8Array(count * 4 + 4);\n if (!Array.isArray(colors) || typeof colors[0] === \"number\") {\n let c = rgba3(colors, \"uint8\");\n for (let i2 = 0; i2 < count + 1; i2++) {\n colorData.set(c, i2 * 4);\n }\n } else {\n for (let i2 = 0; i2 < count; i2++) {\n let c = rgba3(colors[i2], \"uint8\");\n colorData.set(c, i2 * 4);\n }\n colorData.set(rgba3(colors[0], \"uint8\"), count * 4);\n }\n state.colorBuffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: colorData\n });\n }\n });\n if (options.length < this.passes.length) {\n for (let i = options.length; i < this.passes.length; i++) {\n let pass = this.passes[i];\n if (!pass) continue;\n pass.colorBuffer.destroy();\n pass.positionBuffer.destroy();\n pass.dashTexture.destroy();\n }\n this.passes.length = options.length;\n }\n let passes = [];\n for (let i = 0; i < this.passes.length; i++) {\n if (this.passes[i] !== null) passes.push(this.passes[i]);\n }\n this.passes = passes;\n return this;\n };\n Line2D.prototype.destroy = function() {\n this.passes.forEach((pass) => {\n pass.colorBuffer.destroy();\n pass.positionBuffer.destroy();\n pass.dashTexture.destroy();\n });\n this.passes.length = 0;\n return this;\n };\n }\n });\n\n // node_modules/regl-error2d/index.js\n var require_regl_error2d = __commonJS({\n \"node_modules/regl-error2d/index.js\"(exports, module) {\n \"use strict\";\n var getBounds = require_array_bounds();\n var rgba3 = require_color_normalize();\n var updateDiff = require_update_diff();\n var pick = require_pick_by_alias();\n var extend2 = require_object_assign();\n var flatten = require_flatten_vertex_data();\n var { float32, fract32 } = require_to_float32();\n module.exports = Error2D;\n var WEIGHTS = [\n //direction, lineWidth shift, capSize shift\n // x-error bar\n [1, 0, 0, 1, 0, 0],\n [1, 0, 0, -1, 0, 0],\n [-1, 0, 0, -1, 0, 0],\n [-1, 0, 0, -1, 0, 0],\n [-1, 0, 0, 1, 0, 0],\n [1, 0, 0, 1, 0, 0],\n // x-error right cap\n [1, 0, -1, 0, 0, 1],\n [1, 0, -1, 0, 0, -1],\n [1, 0, 1, 0, 0, -1],\n [1, 0, 1, 0, 0, -1],\n [1, 0, 1, 0, 0, 1],\n [1, 0, -1, 0, 0, 1],\n // x-error left cap\n [-1, 0, -1, 0, 0, 1],\n [-1, 0, -1, 0, 0, -1],\n [-1, 0, 1, 0, 0, -1],\n [-1, 0, 1, 0, 0, -1],\n [-1, 0, 1, 0, 0, 1],\n [-1, 0, -1, 0, 0, 1],\n // y-error bar\n [0, 1, 1, 0, 0, 0],\n [0, 1, -1, 0, 0, 0],\n [0, -1, -1, 0, 0, 0],\n [0, -1, -1, 0, 0, 0],\n [0, 1, 1, 0, 0, 0],\n [0, -1, 1, 0, 0, 0],\n // y-error top cap\n [0, 1, 0, -1, 1, 0],\n [0, 1, 0, -1, -1, 0],\n [0, 1, 0, 1, -1, 0],\n [0, 1, 0, 1, 1, 0],\n [0, 1, 0, -1, 1, 0],\n [0, 1, 0, 1, -1, 0],\n // y-error bottom cap\n [0, -1, 0, -1, 1, 0],\n [0, -1, 0, -1, -1, 0],\n [0, -1, 0, 1, -1, 0],\n [0, -1, 0, 1, 1, 0],\n [0, -1, 0, -1, 1, 0],\n [0, -1, 0, 1, -1, 0]\n ];\n function Error2D(regl, options) {\n if (typeof regl === \"function\") {\n if (!options) options = {};\n options.regl = regl;\n } else {\n options = regl;\n }\n if (options.length) options.positions = options;\n regl = options.regl;\n if (!regl.hasExtension(\"ANGLE_instanced_arrays\")) {\n throw Error(\"regl-error2d: `ANGLE_instanced_arrays` extension should be enabled\");\n }\n let gl2 = regl._gl, drawErrors, positionBuffer, positionFractBuffer, colorBuffer, errorBuffer, meshBuffer, defaults = {\n color: \"black\",\n capSize: 5,\n lineWidth: 1,\n opacity: 1,\n viewport: null,\n range: null,\n offset: 0,\n count: 0,\n bounds: null,\n positions: [],\n errors: []\n }, groups = [];\n colorBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"uint8\",\n data: new Uint8Array(0)\n });\n positionBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array(0)\n });\n positionFractBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array(0)\n });\n errorBuffer = regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array(0)\n });\n meshBuffer = regl.buffer({\n usage: \"static\",\n type: \"float\",\n data: WEIGHTS\n });\n update(options);\n drawErrors = regl({\n vert: `\n\t\tprecision highp float;\n\n\t\tattribute vec2 position, positionFract;\n\t\tattribute vec4 error;\n\t\tattribute vec4 color;\n\n\t\tattribute vec2 direction, lineOffset, capOffset;\n\n\t\tuniform vec4 viewport;\n\t\tuniform float lineWidth, capSize;\n\t\tuniform vec2 scale, scaleFract, translate, translateFract;\n\n\t\tvarying vec4 fragColor;\n\n\t\tvoid main() {\n\t\t\tfragColor = color / 255.;\n\n\t\t\tvec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset;\n\n\t\t\tvec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw;\n\n\t\t\tvec2 position = position + dxy;\n\n\t\t\tvec2 pos = (position + translate) * scale\n\t\t\t\t+ (positionFract + translateFract) * scale\n\t\t\t\t+ (position + translate) * scaleFract\n\t\t\t\t+ (positionFract + translateFract) * scaleFract;\n\n\t\t\tpos += pixelOffset / viewport.zw;\n\n\t\t\tgl_Position = vec4(pos * 2. - 1., 0, 1);\n\t\t}\n\t\t`,\n frag: `\n\t\tprecision highp float;\n\n\t\tvarying vec4 fragColor;\n\n\t\tuniform float opacity;\n\n\t\tvoid main() {\n\t\t\tgl_FragColor = fragColor;\n\t\t\tgl_FragColor.a *= opacity;\n\t\t}\n\t\t`,\n uniforms: {\n range: regl.prop(\"range\"),\n lineWidth: regl.prop(\"lineWidth\"),\n capSize: regl.prop(\"capSize\"),\n opacity: regl.prop(\"opacity\"),\n scale: regl.prop(\"scale\"),\n translate: regl.prop(\"translate\"),\n scaleFract: regl.prop(\"scaleFract\"),\n translateFract: regl.prop(\"translateFract\"),\n viewport: (ctx, prop) => [prop.viewport.x, prop.viewport.y, ctx.viewportWidth, ctx.viewportHeight]\n },\n attributes: {\n //dynamic attributes\n color: {\n buffer: colorBuffer,\n offset: (ctx, prop) => prop.offset * 4,\n divisor: 1\n },\n position: {\n buffer: positionBuffer,\n offset: (ctx, prop) => prop.offset * 8,\n divisor: 1\n },\n positionFract: {\n buffer: positionFractBuffer,\n offset: (ctx, prop) => prop.offset * 8,\n divisor: 1\n },\n error: {\n buffer: errorBuffer,\n offset: (ctx, prop) => prop.offset * 16,\n divisor: 1\n },\n //static attributes\n direction: {\n buffer: meshBuffer,\n stride: 24,\n offset: 0\n },\n lineOffset: {\n buffer: meshBuffer,\n stride: 24,\n offset: 8\n },\n capOffset: {\n buffer: meshBuffer,\n stride: 24,\n offset: 16\n }\n },\n primitive: \"triangles\",\n blend: {\n enable: true,\n color: [0, 0, 0, 0],\n equation: {\n rgb: \"add\",\n alpha: \"add\"\n },\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n depth: {\n enable: false\n },\n scissor: {\n enable: true,\n box: regl.prop(\"viewport\")\n },\n viewport: regl.prop(\"viewport\"),\n stencil: false,\n instances: regl.prop(\"count\"),\n count: WEIGHTS.length\n });\n extend2(error2d, {\n update,\n draw,\n destroy,\n regl,\n gl: gl2,\n canvas: gl2.canvas,\n groups\n });\n return error2d;\n function error2d(opts) {\n if (opts) {\n update(opts);\n } else if (opts === null) {\n destroy();\n }\n draw();\n }\n function draw(options2) {\n if (typeof options2 === \"number\") return drawGroup(options2);\n if (options2 && !Array.isArray(options2)) options2 = [options2];\n regl._refresh();\n groups.forEach((s, i) => {\n if (!s) return;\n if (options2) {\n if (!options2[i]) s.draw = false;\n else s.draw = true;\n }\n if (!s.draw) {\n s.draw = true;\n return;\n }\n drawGroup(i);\n });\n }\n function drawGroup(s) {\n if (typeof s === \"number\") s = groups[s];\n if (s == null) return;\n if (!(s && s.count && s.color && s.opacity && s.positions && s.positions.length > 1)) return;\n s.scaleRatio = [\n s.scale[0] * s.viewport.width,\n s.scale[1] * s.viewport.height\n ];\n drawErrors(s);\n if (s.after) s.after(s);\n }\n function update(options2) {\n if (!options2) return;\n if (options2.length != null) {\n if (typeof options2[0] === \"number\") options2 = [{ positions: options2 }];\n } else if (!Array.isArray(options2)) options2 = [options2];\n let pointCount = 0, errorCount = 0;\n error2d.groups = groups = options2.map((options3, i) => {\n let group = groups[i];\n if (!options3) return group;\n else if (typeof options3 === \"function\") options3 = { after: options3 };\n else if (typeof options3[0] === \"number\") options3 = { positions: options3 };\n options3 = pick(options3, {\n color: \"color colors fill\",\n capSize: \"capSize cap capsize cap-size\",\n lineWidth: \"lineWidth line-width width line thickness\",\n opacity: \"opacity alpha\",\n range: \"range dataBox\",\n viewport: \"viewport viewBox\",\n errors: \"errors error\",\n positions: \"positions position data points\"\n });\n if (!group) {\n groups[i] = group = {\n id: i,\n scale: null,\n translate: null,\n scaleFract: null,\n translateFract: null,\n draw: true\n };\n options3 = extend2({}, defaults, options3);\n }\n updateDiff(group, options3, [{\n lineWidth: (v) => +v * 0.5,\n capSize: (v) => +v * 0.5,\n opacity: parseFloat,\n errors: (errors) => {\n errors = flatten(errors);\n errorCount += errors.length;\n return errors;\n },\n positions: (positions, state) => {\n positions = flatten(positions, \"float64\");\n state.count = Math.floor(positions.length / 2);\n state.bounds = getBounds(positions, 2);\n state.offset = pointCount;\n pointCount += state.count;\n return positions;\n }\n }, {\n color: (colors, state) => {\n let count = state.count;\n if (!colors) colors = \"transparent\";\n if (!Array.isArray(colors) || typeof colors[0] === \"number\") {\n let color2 = colors;\n colors = Array(count);\n for (let i2 = 0; i2 < count; i2++) {\n colors[i2] = color2;\n }\n }\n if (colors.length < count) throw Error(\"Not enough colors\");\n let colorData = new Uint8Array(count * 4);\n for (let i2 = 0; i2 < count; i2++) {\n let c = rgba3(colors[i2], \"uint8\");\n colorData.set(c, i2 * 4);\n }\n return colorData;\n },\n range: (range, state, options4) => {\n let bounds = state.bounds;\n if (!range) range = bounds;\n state.scale = [1 / (range[2] - range[0]), 1 / (range[3] - range[1])];\n state.translate = [-range[0], -range[1]];\n state.scaleFract = fract32(state.scale);\n state.translateFract = fract32(state.translate);\n return range;\n },\n viewport: (vp) => {\n let viewport;\n if (Array.isArray(vp)) {\n viewport = {\n x: vp[0],\n y: vp[1],\n width: vp[2] - vp[0],\n height: vp[3] - vp[1]\n };\n } else if (vp) {\n viewport = {\n x: vp.x || vp.left || 0,\n y: vp.y || vp.top || 0\n };\n if (vp.right) viewport.width = vp.right - viewport.x;\n else viewport.width = vp.w || vp.width || 0;\n if (vp.bottom) viewport.height = vp.bottom - viewport.y;\n else viewport.height = vp.h || vp.height || 0;\n } else {\n viewport = {\n x: 0,\n y: 0,\n width: gl2.drawingBufferWidth,\n height: gl2.drawingBufferHeight\n };\n }\n return viewport;\n }\n }]);\n return group;\n });\n if (pointCount || errorCount) {\n let len = groups.reduce((acc, group, i) => {\n return acc + (group ? group.count : 0);\n }, 0);\n let positionData = new Float64Array(len * 2);\n let colorData = new Uint8Array(len * 4);\n let errorData = new Float32Array(len * 4);\n groups.forEach((group, i) => {\n if (!group) return;\n let { positions, count, offset, color: color2, errors } = group;\n if (!count) return;\n colorData.set(color2, offset * 4);\n errorData.set(errors, offset * 4);\n positionData.set(positions, offset * 2);\n });\n var float_data = float32(positionData);\n positionBuffer(float_data);\n var frac_data = fract32(positionData, float_data);\n positionFractBuffer(frac_data);\n colorBuffer(colorData);\n errorBuffer(errorData);\n }\n }\n function destroy() {\n positionBuffer.destroy();\n positionFractBuffer.destroy();\n colorBuffer.destroy();\n errorBuffer.destroy();\n meshBuffer.destroy();\n }\n }\n }\n });\n\n // node_modules/unquote/index.js\n var require_unquote = __commonJS({\n \"node_modules/unquote/index.js\"(exports, module) {\n var reg = /[\\'\\\"]/;\n module.exports = function unquote(str) {\n if (!str) {\n return \"\";\n }\n if (reg.test(str.charAt(0))) {\n str = str.substr(1);\n }\n if (reg.test(str.charAt(str.length - 1))) {\n str = str.substr(0, str.length - 1);\n }\n return str;\n };\n }\n });\n\n // node_modules/css-global-keywords/index.json\n var require_css_global_keywords = __commonJS({\n \"node_modules/css-global-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-system-font-keywords/index.json\n var require_css_system_font_keywords = __commonJS({\n \"node_modules/css-system-font-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font-weight-keywords/index.json\n var require_css_font_weight_keywords = __commonJS({\n \"node_modules/css-font-weight-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font-style-keywords/index.json\n var require_css_font_style_keywords = __commonJS({\n \"node_modules/css-font-style-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font-stretch-keywords/index.json\n var require_css_font_stretch_keywords = __commonJS({\n \"node_modules/css-font-stretch-keywords/index.json\"() {\n }\n });\n\n // node_modules/parenthesis/index.js\n var require_parenthesis = __commonJS({\n \"node_modules/parenthesis/index.js\"(exports, module) {\n \"use strict\";\n function parse2(str, opts) {\n if (typeof str !== \"string\") return [str];\n var res = [str];\n if (typeof opts === \"string\" || Array.isArray(opts)) {\n opts = { brackets: opts };\n } else if (!opts) opts = {};\n var brackets = opts.brackets ? Array.isArray(opts.brackets) ? opts.brackets : [opts.brackets] : [\"{}\", \"[]\", \"()\"];\n var escape2 = opts.escape || \"___\";\n var flat = !!opts.flat;\n brackets.forEach(function(bracket) {\n var pRE = new RegExp([\"\\\\\", bracket[0], \"[^\\\\\", bracket[0], \"\\\\\", bracket[1], \"]*\\\\\", bracket[1]].join(\"\"));\n var ids = [];\n function replaceToken(token, idx, str2) {\n var refId = res.push(token.slice(bracket[0].length, -bracket[1].length)) - 1;\n ids.push(refId);\n return escape2 + refId + escape2;\n }\n res.forEach(function(str2, i) {\n var prevStr;\n var a = 0;\n while (str2 != prevStr) {\n prevStr = str2;\n str2 = str2.replace(pRE, replaceToken);\n if (a++ > 1e4) throw Error(\"References have circular dependency. Please, check them.\");\n }\n res[i] = str2;\n });\n ids = ids.reverse();\n res = res.map(function(str2) {\n ids.forEach(function(id) {\n str2 = str2.replace(new RegExp(\"(\\\\\" + escape2 + id + \"\\\\\" + escape2 + \")\", \"g\"), bracket[0] + \"$1\" + bracket[1]);\n });\n return str2;\n });\n });\n var re = new RegExp(\"\\\\\" + escape2 + \"([0-9]+)\\\\\" + escape2);\n function nest(str2, refs, escape3) {\n var res2 = [], match;\n var a = 0;\n while (match = re.exec(str2)) {\n if (a++ > 1e4) throw Error(\"Circular references in parenthesis\");\n res2.push(str2.slice(0, match.index));\n res2.push(nest(refs[match[1]], refs));\n str2 = str2.slice(match.index + match[0].length);\n }\n res2.push(str2);\n return res2;\n }\n return flat ? res : nest(res[0], res);\n }\n function stringify(arg, opts) {\n if (opts && opts.flat) {\n var escape2 = opts && opts.escape || \"___\";\n var str = arg[0], prevStr;\n if (!str) return \"\";\n var re = new RegExp(\"\\\\\" + escape2 + \"([0-9]+)\\\\\" + escape2);\n var a = 0;\n while (str != prevStr) {\n if (a++ > 1e4) throw Error(\"Circular references in \" + arg);\n prevStr = str;\n str = str.replace(re, replaceRef);\n }\n return str;\n }\n return arg.reduce(function f(prev, curr) {\n if (Array.isArray(curr)) {\n curr = curr.reduce(f, \"\");\n }\n return prev + curr;\n }, \"\");\n function replaceRef(match, idx) {\n if (arg[idx] == null) throw Error(\"Reference \" + idx + \"is undefined\");\n return arg[idx];\n }\n }\n function parenthesis(arg, opts) {\n if (Array.isArray(arg)) {\n return stringify(arg, opts);\n } else {\n return parse2(arg, opts);\n }\n }\n parenthesis.parse = parse2;\n parenthesis.stringify = stringify;\n module.exports = parenthesis;\n }\n });\n\n // node_modules/string-split-by/index.js\n var require_string_split_by = __commonJS({\n \"node_modules/string-split-by/index.js\"(exports, module) {\n \"use strict\";\n var paren = require_parenthesis();\n module.exports = function splitBy(string, separator, o) {\n if (string == null) throw Error(\"First argument should be a string\");\n if (separator == null) throw Error(\"Separator should be a string or a RegExp\");\n if (!o) o = {};\n else if (typeof o === \"string\" || Array.isArray(o)) {\n o = { ignore: o };\n }\n if (o.escape == null) o.escape = true;\n if (o.ignore == null) o.ignore = [\"[]\", \"()\", \"{}\", \"<>\", '\"\"', \"''\", \"``\", \"\\u201C\\u201D\", \"\\xAB\\xBB\"];\n else {\n if (typeof o.ignore === \"string\") {\n o.ignore = [o.ignore];\n }\n o.ignore = o.ignore.map(function(pair) {\n if (pair.length === 1) pair = pair + pair;\n return pair;\n });\n }\n var tokens = paren.parse(string, { flat: true, brackets: o.ignore });\n var str = tokens[0];\n var parts = str.split(separator);\n if (o.escape) {\n var cleanParts = [];\n for (var i = 0; i < parts.length; i++) {\n var prev = parts[i];\n var part = parts[i + 1];\n if (prev[prev.length - 1] === \"\\\\\" && prev[prev.length - 2] !== \"\\\\\") {\n cleanParts.push(prev + separator + part);\n i++;\n } else {\n cleanParts.push(prev);\n }\n }\n parts = cleanParts;\n }\n for (var i = 0; i < parts.length; i++) {\n tokens[0] = parts[i];\n parts[i] = paren.stringify(tokens, { flat: true });\n }\n return parts;\n };\n }\n });\n\n // node_modules/css-font-size-keywords/index.json\n var require_css_font_size_keywords = __commonJS({\n \"node_modules/css-font-size-keywords/index.json\"() {\n }\n });\n\n // node_modules/css-font/lib/util.js\n var require_util3 = __commonJS({\n \"node_modules/css-font/lib/util.js\"(exports, module) {\n \"use strict\";\n var sizes = require_css_font_size_keywords();\n module.exports = {\n isSize: function isSize(value) {\n return /^[\\d\\.]/.test(value) || value.indexOf(\"/\") !== -1 || sizes.indexOf(value) !== -1;\n }\n };\n }\n });\n\n // node_modules/css-font/parse.js\n var require_parse = __commonJS({\n \"node_modules/css-font/parse.js\"(exports, module) {\n \"use strict\";\n var unquote = require_unquote();\n var globalKeywords = require_css_global_keywords();\n var systemFontKeywords = require_css_system_font_keywords();\n var fontWeightKeywords = require_css_font_weight_keywords();\n var fontStyleKeywords = require_css_font_style_keywords();\n var fontStretchKeywords = require_css_font_stretch_keywords();\n var splitBy = require_string_split_by();\n var isSize = require_util3().isSize;\n module.exports = parseFont;\n var cache = parseFont.cache = {};\n function parseFont(value) {\n if (typeof value !== \"string\") throw new Error(\"Font argument must be a string.\");\n if (cache[value]) return cache[value];\n if (value === \"\") {\n throw new Error(\"Cannot parse an empty string.\");\n }\n if (systemFontKeywords.indexOf(value) !== -1) {\n return cache[value] = { system: value };\n }\n var font = {\n style: \"normal\",\n variant: \"normal\",\n weight: \"normal\",\n stretch: \"normal\",\n lineHeight: \"normal\",\n size: \"1rem\",\n family: [\"serif\"]\n };\n var tokens = splitBy(value, /\\s+/);\n var token;\n while (token = tokens.shift()) {\n if (globalKeywords.indexOf(token) !== -1) {\n [\"style\", \"variant\", \"weight\", \"stretch\"].forEach(function(prop) {\n font[prop] = token;\n });\n return cache[value] = font;\n }\n if (fontStyleKeywords.indexOf(token) !== -1) {\n font.style = token;\n continue;\n }\n if (token === \"normal\" || token === \"small-caps\") {\n font.variant = token;\n continue;\n }\n if (fontStretchKeywords.indexOf(token) !== -1) {\n font.stretch = token;\n continue;\n }\n if (fontWeightKeywords.indexOf(token) !== -1) {\n font.weight = token;\n continue;\n }\n if (isSize(token)) {\n var parts = splitBy(token, \"/\");\n font.size = parts[0];\n if (parts[1] != null) {\n font.lineHeight = parseLineHeight(parts[1]);\n } else if (tokens[0] === \"/\") {\n tokens.shift();\n font.lineHeight = parseLineHeight(tokens.shift());\n }\n if (!tokens.length) {\n throw new Error(\"Missing required font-family.\");\n }\n font.family = splitBy(tokens.join(\" \"), /\\s*,\\s*/).map(unquote);\n return cache[value] = font;\n }\n throw new Error(\"Unknown or unsupported font token: \" + token);\n }\n throw new Error(\"Missing required font-size.\");\n }\n function parseLineHeight(value) {\n var parsed = parseFloat(value);\n if (parsed.toString() === value) {\n return parsed;\n }\n return value;\n }\n }\n });\n\n // node_modules/css-font/stringify.js\n var require_stringify = __commonJS({\n \"node_modules/css-font/stringify.js\"(exports, module) {\n \"use strict\";\n var pick = require_pick_by_alias();\n var isSize = require_util3().isSize;\n var globals = a2o(require_css_global_keywords());\n var systems = a2o(require_css_system_font_keywords());\n var weights = a2o(require_css_font_weight_keywords());\n var styles = a2o(require_css_font_style_keywords());\n var stretches = a2o(require_css_font_stretch_keywords());\n var variants = { \"normal\": 1, \"small-caps\": 1 };\n var fams = {\n \"serif\": 1,\n \"sans-serif\": 1,\n \"monospace\": 1,\n \"cursive\": 1,\n \"fantasy\": 1,\n \"system-ui\": 1\n };\n var defaults = {\n style: \"normal\",\n variant: \"normal\",\n weight: \"normal\",\n stretch: \"normal\",\n size: \"1rem\",\n lineHeight: \"normal\",\n family: \"serif\"\n };\n module.exports = function stringifyFont(o) {\n o = pick(o, {\n style: \"style fontstyle fontStyle font-style slope distinction\",\n variant: \"variant font-variant fontVariant fontvariant var capitalization\",\n weight: \"weight w font-weight fontWeight fontweight\",\n stretch: \"stretch font-stretch fontStretch fontstretch width\",\n size: \"size s font-size fontSize fontsize height em emSize\",\n lineHeight: \"lh line-height lineHeight lineheight leading\",\n family: \"font family fontFamily font-family fontfamily type typeface face\",\n system: \"system reserved default global\"\n });\n if (o.system) {\n if (o.system) verify(o.system, systems);\n return o.system;\n }\n verify(o.style, styles);\n verify(o.variant, variants);\n verify(o.weight, weights);\n verify(o.stretch, stretches);\n if (o.size == null) o.size = defaults.size;\n if (typeof o.size === \"number\") o.size += \"px\";\n if (!isSize) throw Error(\"Bad size value `\" + o.size + \"`\");\n if (!o.family) o.family = defaults.family;\n if (Array.isArray(o.family)) {\n if (!o.family.length) o.family = [defaults.family];\n o.family = o.family.map(function(f) {\n return fams[f] ? f : '\"' + f + '\"';\n }).join(\", \");\n }\n var result = [];\n result.push(o.style);\n if (o.variant !== o.style) result.push(o.variant);\n if (o.weight !== o.variant && o.weight !== o.style) result.push(o.weight);\n if (o.stretch !== o.weight && o.stretch !== o.variant && o.stretch !== o.style) result.push(o.stretch);\n result.push(o.size + (o.lineHeight == null || o.lineHeight === \"normal\" || o.lineHeight + \"\" === \"1\" ? \"\" : \"/\" + o.lineHeight));\n result.push(o.family);\n return result.filter(Boolean).join(\" \");\n };\n function verify(value, values) {\n if (value && !values[value] && !globals[value]) throw Error(\"Unknown keyword `\" + value + \"`\");\n return value;\n }\n function a2o(a) {\n var o = {};\n for (var i = 0; i < a.length; i++) {\n o[a[i]] = 1;\n }\n return o;\n }\n }\n });\n\n // node_modules/css-font/index.js\n var require_css_font = __commonJS({\n \"node_modules/css-font/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n parse: require_parse(),\n stringify: require_stringify()\n };\n }\n });\n\n // node_modules/regl/dist/regl.unchecked.js\n var require_regl_unchecked = __commonJS({\n \"node_modules/regl/dist/regl.unchecked.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() : typeof define === \"function\" && false ? define(factory) : global2.createREGL = factory();\n })(exports, function() {\n \"use strict\";\n var extend2 = function(base, opts) {\n var keys = Object.keys(opts);\n for (var i = 0; i < keys.length; ++i) {\n base[keys[i]] = opts[keys[i]];\n }\n return base;\n };\n var VARIABLE_COUNTER = 0;\n var DYN_FUNC = 0;\n var DYN_CONSTANT = 5;\n var DYN_ARRAY = 6;\n function DynamicVariable(type, data) {\n this.id = VARIABLE_COUNTER++;\n this.type = type;\n this.data = data;\n }\n function escapeStr(str) {\n return str.replace(/\\\\/g, \"\\\\\\\\\").replace(/\"/g, '\\\\\"');\n }\n function splitParts(str) {\n if (str.length === 0) {\n return [];\n }\n var firstChar = str.charAt(0);\n var lastChar = str.charAt(str.length - 1);\n if (str.length > 1 && firstChar === lastChar && (firstChar === '\"' || firstChar === \"'\")) {\n return ['\"' + escapeStr(str.substr(1, str.length - 2)) + '\"'];\n }\n var parts = /\\[(false|true|null|\\d+|'[^']*'|\"[^\"]*\")\\]/.exec(str);\n if (parts) {\n return splitParts(str.substr(0, parts.index)).concat(splitParts(parts[1])).concat(splitParts(str.substr(parts.index + parts[0].length)));\n }\n var subparts = str.split(\".\");\n if (subparts.length === 1) {\n return ['\"' + escapeStr(str) + '\"'];\n }\n var result = [];\n for (var i = 0; i < subparts.length; ++i) {\n result = result.concat(splitParts(subparts[i]));\n }\n return result;\n }\n function toAccessorString(str) {\n return \"[\" + splitParts(str).join(\"][\") + \"]\";\n }\n function defineDynamic(type, data) {\n return new DynamicVariable(type, toAccessorString(data + \"\"));\n }\n function isDynamic(x) {\n return typeof x === \"function\" && !x._reglType || x instanceof DynamicVariable;\n }\n function unbox(x, path) {\n if (typeof x === \"function\") {\n return new DynamicVariable(DYN_FUNC, x);\n } else if (typeof x === \"number\" || typeof x === \"boolean\") {\n return new DynamicVariable(DYN_CONSTANT, x);\n } else if (Array.isArray(x)) {\n return new DynamicVariable(DYN_ARRAY, x.map(function(y, i) {\n return unbox(y, path + \"[\" + i + \"]\");\n }));\n } else if (x instanceof DynamicVariable) {\n return x;\n }\n }\n var dynamic = {\n DynamicVariable,\n define: defineDynamic,\n isDynamic,\n unbox,\n accessor: toAccessorString\n };\n var raf = {\n next: typeof requestAnimationFrame === \"function\" ? function(cb) {\n return requestAnimationFrame(cb);\n } : function(cb) {\n return setTimeout(cb, 16);\n },\n cancel: typeof cancelAnimationFrame === \"function\" ? function(raf2) {\n return cancelAnimationFrame(raf2);\n } : clearTimeout\n };\n var clock = typeof performance !== \"undefined\" && performance.now ? function() {\n return performance.now();\n } : function() {\n return +/* @__PURE__ */ new Date();\n };\n function createStringStore() {\n var stringIds = { \"\": 0 };\n var stringValues = [\"\"];\n return {\n id: function(str) {\n var result = stringIds[str];\n if (result) {\n return result;\n }\n result = stringIds[str] = stringValues.length;\n stringValues.push(str);\n return result;\n },\n str: function(id) {\n return stringValues[id];\n }\n };\n }\n function createCanvas(element, onDone, pixelRatio) {\n var canvas = document.createElement(\"canvas\");\n extend2(canvas.style, {\n border: 0,\n margin: 0,\n padding: 0,\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\"\n });\n element.appendChild(canvas);\n if (element === document.body) {\n canvas.style.position = \"absolute\";\n extend2(element.style, {\n margin: 0,\n padding: 0\n });\n }\n function resize() {\n var w = window.innerWidth;\n var h = window.innerHeight;\n if (element !== document.body) {\n var bounds = canvas.getBoundingClientRect();\n w = bounds.right - bounds.left;\n h = bounds.bottom - bounds.top;\n }\n canvas.width = pixelRatio * w;\n canvas.height = pixelRatio * h;\n }\n var resizeObserver;\n if (element !== document.body && typeof ResizeObserver === \"function\") {\n resizeObserver = new ResizeObserver(function() {\n setTimeout(resize);\n });\n resizeObserver.observe(element);\n } else {\n window.addEventListener(\"resize\", resize, false);\n }\n function onDestroy() {\n if (resizeObserver) {\n resizeObserver.disconnect();\n } else {\n window.removeEventListener(\"resize\", resize);\n }\n element.removeChild(canvas);\n }\n resize();\n return {\n canvas,\n onDestroy\n };\n }\n function createContext(canvas, contextAttributes) {\n function get(name2) {\n try {\n return canvas.getContext(name2, contextAttributes);\n } catch (e) {\n return null;\n }\n }\n return get(\"webgl\") || get(\"experimental-webgl\") || get(\"webgl-experimental\");\n }\n function isHTMLElement(obj) {\n return typeof obj.nodeName === \"string\" && typeof obj.appendChild === \"function\" && typeof obj.getBoundingClientRect === \"function\";\n }\n function isWebGLContext(obj) {\n return typeof obj.drawArrays === \"function\" || typeof obj.drawElements === \"function\";\n }\n function parseExtensions(input) {\n if (typeof input === \"string\") {\n return input.split();\n }\n return input;\n }\n function getElement(desc) {\n if (typeof desc === \"string\") {\n return document.querySelector(desc);\n }\n return desc;\n }\n function parseArgs(args_) {\n var args = args_ || {};\n var element, container, canvas, gl2;\n var contextAttributes = {};\n var extensions = [];\n var optionalExtensions = [];\n var pixelRatio = typeof window === \"undefined\" ? 1 : window.devicePixelRatio;\n var profile = false;\n var cachedCode = {};\n var onDone = function(err) {\n if (err) {\n }\n };\n var onDestroy = function() {\n };\n if (typeof args === \"string\") {\n element = document.querySelector(args);\n } else if (typeof args === \"object\") {\n if (isHTMLElement(args)) {\n element = args;\n } else if (isWebGLContext(args)) {\n gl2 = args;\n canvas = gl2.canvas;\n } else {\n if (\"gl\" in args) {\n gl2 = args.gl;\n } else if (\"canvas\" in args) {\n canvas = getElement(args.canvas);\n } else if (\"container\" in args) {\n container = getElement(args.container);\n }\n if (\"attributes\" in args) {\n contextAttributes = args.attributes;\n }\n if (\"extensions\" in args) {\n extensions = parseExtensions(args.extensions);\n }\n if (\"optionalExtensions\" in args) {\n optionalExtensions = parseExtensions(args.optionalExtensions);\n }\n if (\"onDone\" in args) {\n onDone = args.onDone;\n }\n if (\"profile\" in args) {\n profile = !!args.profile;\n }\n if (\"pixelRatio\" in args) {\n pixelRatio = +args.pixelRatio;\n }\n if (\"cachedCode\" in args) {\n cachedCode = args.cachedCode;\n }\n }\n } else {\n }\n if (element) {\n if (element.nodeName.toLowerCase() === \"canvas\") {\n canvas = element;\n } else {\n container = element;\n }\n }\n if (!gl2) {\n if (!canvas) {\n var result = createCanvas(container || document.body, onDone, pixelRatio);\n if (!result) {\n return null;\n }\n canvas = result.canvas;\n onDestroy = result.onDestroy;\n }\n if (contextAttributes.premultipliedAlpha === void 0) contextAttributes.premultipliedAlpha = true;\n gl2 = createContext(canvas, contextAttributes);\n }\n if (!gl2) {\n onDestroy();\n onDone(\"webgl not supported, try upgrading your browser or graphics drivers http://get.webgl.org\");\n return null;\n }\n return {\n gl: gl2,\n canvas,\n container,\n extensions,\n optionalExtensions,\n pixelRatio,\n profile,\n cachedCode,\n onDone,\n onDestroy\n };\n }\n function createExtensionCache(gl2, config) {\n var extensions = {};\n function tryLoadExtension(name_) {\n var name3 = name_.toLowerCase();\n var ext;\n try {\n ext = extensions[name3] = gl2.getExtension(name3);\n } catch (e) {\n }\n return !!ext;\n }\n for (var i = 0; i < config.extensions.length; ++i) {\n var name2 = config.extensions[i];\n if (!tryLoadExtension(name2)) {\n config.onDestroy();\n config.onDone('\"' + name2 + '\" extension is not supported by the current WebGL context, try upgrading your system or a different browser');\n return null;\n }\n }\n config.optionalExtensions.forEach(tryLoadExtension);\n return {\n extensions,\n restore: function() {\n Object.keys(extensions).forEach(function(name3) {\n if (extensions[name3] && !tryLoadExtension(name3)) {\n throw new Error(\"(regl): error restoring extension \" + name3);\n }\n });\n }\n };\n }\n function loop(n, f) {\n var result = Array(n);\n for (var i = 0; i < n; ++i) {\n result[i] = f(i);\n }\n return result;\n }\n var GL_BYTE = 5120;\n var GL_UNSIGNED_BYTE$1 = 5121;\n var GL_SHORT = 5122;\n var GL_UNSIGNED_SHORT = 5123;\n var GL_INT = 5124;\n var GL_UNSIGNED_INT = 5125;\n var GL_FLOAT$1 = 5126;\n function nextPow16(v) {\n for (var i = 16; i <= 1 << 28; i *= 16) {\n if (v <= i) {\n return i;\n }\n }\n return 0;\n }\n function log2(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n }\n function createPool() {\n var bufferPool = loop(8, function() {\n return [];\n });\n function alloc(n) {\n var sz = nextPow16(n);\n var bin = bufferPool[log2(sz) >> 2];\n if (bin.length > 0) {\n return bin.pop();\n }\n return new ArrayBuffer(sz);\n }\n function free(buf) {\n bufferPool[log2(buf.byteLength) >> 2].push(buf);\n }\n function allocType(type, n) {\n var result = null;\n switch (type) {\n case GL_BYTE:\n result = new Int8Array(alloc(n), 0, n);\n break;\n case GL_UNSIGNED_BYTE$1:\n result = new Uint8Array(alloc(n), 0, n);\n break;\n case GL_SHORT:\n result = new Int16Array(alloc(2 * n), 0, n);\n break;\n case GL_UNSIGNED_SHORT:\n result = new Uint16Array(alloc(2 * n), 0, n);\n break;\n case GL_INT:\n result = new Int32Array(alloc(4 * n), 0, n);\n break;\n case GL_UNSIGNED_INT:\n result = new Uint32Array(alloc(4 * n), 0, n);\n break;\n case GL_FLOAT$1:\n result = new Float32Array(alloc(4 * n), 0, n);\n break;\n default:\n return null;\n }\n if (result.length !== n) {\n return result.subarray(0, n);\n }\n return result;\n }\n function freeType(array) {\n free(array.buffer);\n }\n return {\n alloc,\n free,\n allocType,\n freeType\n };\n }\n var pool = createPool();\n pool.zero = createPool();\n var GL_SUBPIXEL_BITS = 3408;\n var GL_RED_BITS = 3410;\n var GL_GREEN_BITS = 3411;\n var GL_BLUE_BITS = 3412;\n var GL_ALPHA_BITS = 3413;\n var GL_DEPTH_BITS = 3414;\n var GL_STENCIL_BITS = 3415;\n var GL_ALIASED_POINT_SIZE_RANGE = 33901;\n var GL_ALIASED_LINE_WIDTH_RANGE = 33902;\n var GL_MAX_TEXTURE_SIZE = 3379;\n var GL_MAX_VIEWPORT_DIMS = 3386;\n var GL_MAX_VERTEX_ATTRIBS = 34921;\n var GL_MAX_VERTEX_UNIFORM_VECTORS = 36347;\n var GL_MAX_VARYING_VECTORS = 36348;\n var GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = 35661;\n var GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = 35660;\n var GL_MAX_TEXTURE_IMAGE_UNITS = 34930;\n var GL_MAX_FRAGMENT_UNIFORM_VECTORS = 36349;\n var GL_MAX_CUBE_MAP_TEXTURE_SIZE = 34076;\n var GL_MAX_RENDERBUFFER_SIZE = 34024;\n var GL_VENDOR = 7936;\n var GL_RENDERER = 7937;\n var GL_VERSION = 7938;\n var GL_SHADING_LANGUAGE_VERSION = 35724;\n var GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 34047;\n var GL_MAX_COLOR_ATTACHMENTS_WEBGL = 36063;\n var GL_MAX_DRAW_BUFFERS_WEBGL = 34852;\n var GL_TEXTURE_2D = 3553;\n var GL_TEXTURE_CUBE_MAP = 34067;\n var GL_TEXTURE_CUBE_MAP_POSITIVE_X = 34069;\n var GL_TEXTURE0 = 33984;\n var GL_RGBA = 6408;\n var GL_FLOAT = 5126;\n var GL_UNSIGNED_BYTE = 5121;\n var GL_FRAMEBUFFER = 36160;\n var GL_FRAMEBUFFER_COMPLETE = 36053;\n var GL_COLOR_ATTACHMENT0 = 36064;\n var GL_COLOR_BUFFER_BIT$1 = 16384;\n var wrapLimits = function(gl2, extensions) {\n var maxAnisotropic = 1;\n if (extensions.ext_texture_filter_anisotropic) {\n maxAnisotropic = gl2.getParameter(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n var maxDrawbuffers = 1;\n var maxColorAttachments = 1;\n if (extensions.webgl_draw_buffers) {\n maxDrawbuffers = gl2.getParameter(GL_MAX_DRAW_BUFFERS_WEBGL);\n maxColorAttachments = gl2.getParameter(GL_MAX_COLOR_ATTACHMENTS_WEBGL);\n }\n var readFloat = !!extensions.oes_texture_float;\n if (readFloat) {\n var readFloatTexture = gl2.createTexture();\n gl2.bindTexture(GL_TEXTURE_2D, readFloatTexture);\n gl2.texImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_FLOAT, null);\n var fbo = gl2.createFramebuffer();\n gl2.bindFramebuffer(GL_FRAMEBUFFER, fbo);\n gl2.framebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, readFloatTexture, 0);\n gl2.bindTexture(GL_TEXTURE_2D, null);\n if (gl2.checkFramebufferStatus(GL_FRAMEBUFFER) !== GL_FRAMEBUFFER_COMPLETE) readFloat = false;\n else {\n gl2.viewport(0, 0, 1, 1);\n gl2.clearColor(1, 0, 0, 1);\n gl2.clear(GL_COLOR_BUFFER_BIT$1);\n var pixels = pool.allocType(GL_FLOAT, 4);\n gl2.readPixels(0, 0, 1, 1, GL_RGBA, GL_FLOAT, pixels);\n if (gl2.getError()) readFloat = false;\n else {\n gl2.deleteFramebuffer(fbo);\n gl2.deleteTexture(readFloatTexture);\n readFloat = pixels[0] === 1;\n }\n pool.freeType(pixels);\n }\n }\n var isIE = typeof navigator !== \"undefined\" && (/MSIE/.test(navigator.userAgent) || /Trident\\//.test(navigator.appVersion) || /Edge/.test(navigator.userAgent));\n var npotTextureCube = true;\n if (!isIE) {\n var cubeTexture = gl2.createTexture();\n var data = pool.allocType(GL_UNSIGNED_BYTE, 36);\n gl2.activeTexture(GL_TEXTURE0);\n gl2.bindTexture(GL_TEXTURE_CUBE_MAP, cubeTexture);\n gl2.texImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X, 0, GL_RGBA, 3, 3, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);\n pool.freeType(data);\n gl2.bindTexture(GL_TEXTURE_CUBE_MAP, null);\n gl2.deleteTexture(cubeTexture);\n npotTextureCube = !gl2.getError();\n }\n return {\n // drawing buffer bit depth\n colorBits: [\n gl2.getParameter(GL_RED_BITS),\n gl2.getParameter(GL_GREEN_BITS),\n gl2.getParameter(GL_BLUE_BITS),\n gl2.getParameter(GL_ALPHA_BITS)\n ],\n depthBits: gl2.getParameter(GL_DEPTH_BITS),\n stencilBits: gl2.getParameter(GL_STENCIL_BITS),\n subpixelBits: gl2.getParameter(GL_SUBPIXEL_BITS),\n // supported extensions\n extensions: Object.keys(extensions).filter(function(ext) {\n return !!extensions[ext];\n }),\n // max aniso samples\n maxAnisotropic,\n // max draw buffers\n maxDrawbuffers,\n maxColorAttachments,\n // point and line size ranges\n pointSizeDims: gl2.getParameter(GL_ALIASED_POINT_SIZE_RANGE),\n lineWidthDims: gl2.getParameter(GL_ALIASED_LINE_WIDTH_RANGE),\n maxViewportDims: gl2.getParameter(GL_MAX_VIEWPORT_DIMS),\n maxCombinedTextureUnits: gl2.getParameter(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS),\n maxCubeMapSize: gl2.getParameter(GL_MAX_CUBE_MAP_TEXTURE_SIZE),\n maxRenderbufferSize: gl2.getParameter(GL_MAX_RENDERBUFFER_SIZE),\n maxTextureUnits: gl2.getParameter(GL_MAX_TEXTURE_IMAGE_UNITS),\n maxTextureSize: gl2.getParameter(GL_MAX_TEXTURE_SIZE),\n maxAttributes: gl2.getParameter(GL_MAX_VERTEX_ATTRIBS),\n maxVertexUniforms: gl2.getParameter(GL_MAX_VERTEX_UNIFORM_VECTORS),\n maxVertexTextureUnits: gl2.getParameter(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS),\n maxVaryingVectors: gl2.getParameter(GL_MAX_VARYING_VECTORS),\n maxFragmentUniforms: gl2.getParameter(GL_MAX_FRAGMENT_UNIFORM_VECTORS),\n // vendor info\n glsl: gl2.getParameter(GL_SHADING_LANGUAGE_VERSION),\n renderer: gl2.getParameter(GL_RENDERER),\n vendor: gl2.getParameter(GL_VENDOR),\n version: gl2.getParameter(GL_VERSION),\n // quirks\n readFloat,\n npotTextureCube\n };\n };\n var isTypedArray = function(x) {\n return x instanceof Uint8Array || x instanceof Uint16Array || x instanceof Uint32Array || x instanceof Int8Array || x instanceof Int16Array || x instanceof Int32Array || x instanceof Float32Array || x instanceof Float64Array || x instanceof Uint8ClampedArray;\n };\n function isNDArrayLike(obj) {\n return !!obj && typeof obj === \"object\" && Array.isArray(obj.shape) && Array.isArray(obj.stride) && typeof obj.offset === \"number\" && obj.shape.length === obj.stride.length && (Array.isArray(obj.data) || isTypedArray(obj.data));\n }\n var values = function(obj) {\n return Object.keys(obj).map(function(key) {\n return obj[key];\n });\n };\n var flattenUtils = {\n shape: arrayShape$1,\n flatten: flattenArray\n };\n function flatten1D(array, nx, out) {\n for (var i = 0; i < nx; ++i) {\n out[i] = array[i];\n }\n }\n function flatten2D(array, nx, ny, out) {\n var ptr = 0;\n for (var i = 0; i < nx; ++i) {\n var row = array[i];\n for (var j = 0; j < ny; ++j) {\n out[ptr++] = row[j];\n }\n }\n }\n function flatten3D(array, nx, ny, nz, out, ptr_) {\n var ptr = ptr_;\n for (var i = 0; i < nx; ++i) {\n var row = array[i];\n for (var j = 0; j < ny; ++j) {\n var col = row[j];\n for (var k = 0; k < nz; ++k) {\n out[ptr++] = col[k];\n }\n }\n }\n }\n function flattenRec(array, shape, level, out, ptr) {\n var stride = 1;\n for (var i = level + 1; i < shape.length; ++i) {\n stride *= shape[i];\n }\n var n = shape[level];\n if (shape.length - level === 4) {\n var nx = shape[level + 1];\n var ny = shape[level + 2];\n var nz = shape[level + 3];\n for (i = 0; i < n; ++i) {\n flatten3D(array[i], nx, ny, nz, out, ptr);\n ptr += stride;\n }\n } else {\n for (i = 0; i < n; ++i) {\n flattenRec(array[i], shape, level + 1, out, ptr);\n ptr += stride;\n }\n }\n }\n function flattenArray(array, shape, type, out_) {\n var sz = 1;\n if (shape.length) {\n for (var i = 0; i < shape.length; ++i) {\n sz *= shape[i];\n }\n } else {\n sz = 0;\n }\n var out = out_ || pool.allocType(type, sz);\n switch (shape.length) {\n case 0:\n break;\n case 1:\n flatten1D(array, shape[0], out);\n break;\n case 2:\n flatten2D(array, shape[0], shape[1], out);\n break;\n case 3:\n flatten3D(array, shape[0], shape[1], shape[2], out, 0);\n break;\n default:\n flattenRec(array, shape, 0, out, 0);\n }\n return out;\n }\n function arrayShape$1(array_) {\n var shape = [];\n for (var array = array_; array.length; array = array[0]) {\n shape.push(array.length);\n }\n return shape;\n }\n var arrayTypes = {\n \"[object Int8Array]\": 5120,\n \"[object Int16Array]\": 5122,\n \"[object Int32Array]\": 5124,\n \"[object Uint8Array]\": 5121,\n \"[object Uint8ClampedArray]\": 5121,\n \"[object Uint16Array]\": 5123,\n \"[object Uint32Array]\": 5125,\n \"[object Float32Array]\": 5126,\n \"[object Float64Array]\": 5121,\n \"[object ArrayBuffer]\": 5121\n };\n var int8 = 5120;\n var int16 = 5122;\n var int32 = 5124;\n var uint8 = 5121;\n var uint16 = 5123;\n var uint32 = 5125;\n var float = 5126;\n var float32 = 5126;\n var glTypes = {\n int8,\n int16,\n int32,\n uint8,\n uint16,\n uint32,\n float,\n float32\n };\n var dynamic$1 = 35048;\n var stream = 35040;\n var usageTypes = {\n dynamic: dynamic$1,\n stream,\n \"static\": 35044\n };\n var arrayFlatten = flattenUtils.flatten;\n var arrayShape = flattenUtils.shape;\n var GL_STATIC_DRAW = 35044;\n var GL_STREAM_DRAW = 35040;\n var GL_UNSIGNED_BYTE$2 = 5121;\n var GL_FLOAT$2 = 5126;\n var DTYPES_SIZES = [];\n DTYPES_SIZES[5120] = 1;\n DTYPES_SIZES[5122] = 2;\n DTYPES_SIZES[5124] = 4;\n DTYPES_SIZES[5121] = 1;\n DTYPES_SIZES[5123] = 2;\n DTYPES_SIZES[5125] = 4;\n DTYPES_SIZES[5126] = 4;\n function typedArrayCode(data) {\n return arrayTypes[Object.prototype.toString.call(data)] | 0;\n }\n function copyArray(out, inp) {\n for (var i = 0; i < inp.length; ++i) {\n out[i] = inp[i];\n }\n }\n function transpose(result, data, shapeX, shapeY, strideX, strideY, offset) {\n var ptr = 0;\n for (var i = 0; i < shapeX; ++i) {\n for (var j = 0; j < shapeY; ++j) {\n result[ptr++] = data[strideX * i + strideY * j + offset];\n }\n }\n }\n function wrapBufferState(gl2, stats2, config, destroyBuffer) {\n var bufferCount = 0;\n var bufferSet = {};\n function REGLBuffer(type) {\n this.id = bufferCount++;\n this.buffer = gl2.createBuffer();\n this.type = type;\n this.usage = GL_STATIC_DRAW;\n this.byteLength = 0;\n this.dimension = 1;\n this.dtype = GL_UNSIGNED_BYTE$2;\n this.persistentData = null;\n if (config.profile) {\n this.stats = { size: 0 };\n }\n }\n REGLBuffer.prototype.bind = function() {\n gl2.bindBuffer(this.type, this.buffer);\n };\n REGLBuffer.prototype.destroy = function() {\n destroy(this);\n };\n var streamPool = [];\n function createStream(type, data) {\n var buffer = streamPool.pop();\n if (!buffer) {\n buffer = new REGLBuffer(type);\n }\n buffer.bind();\n initBufferFromData(buffer, data, GL_STREAM_DRAW, 0, 1, false);\n return buffer;\n }\n function destroyStream(stream$$1) {\n streamPool.push(stream$$1);\n }\n function initBufferFromTypedArray(buffer, data, usage) {\n buffer.byteLength = data.byteLength;\n gl2.bufferData(buffer.type, data, usage);\n }\n function initBufferFromData(buffer, data, usage, dtype, dimension, persist) {\n var shape;\n buffer.usage = usage;\n if (Array.isArray(data)) {\n buffer.dtype = dtype || GL_FLOAT$2;\n if (data.length > 0) {\n var flatData;\n if (Array.isArray(data[0])) {\n shape = arrayShape(data);\n var dim = 1;\n for (var i = 1; i < shape.length; ++i) {\n dim *= shape[i];\n }\n buffer.dimension = dim;\n flatData = arrayFlatten(data, shape, buffer.dtype);\n initBufferFromTypedArray(buffer, flatData, usage);\n if (persist) {\n buffer.persistentData = flatData;\n } else {\n pool.freeType(flatData);\n }\n } else if (typeof data[0] === \"number\") {\n buffer.dimension = dimension;\n var typedData = pool.allocType(buffer.dtype, data.length);\n copyArray(typedData, data);\n initBufferFromTypedArray(buffer, typedData, usage);\n if (persist) {\n buffer.persistentData = typedData;\n } else {\n pool.freeType(typedData);\n }\n } else if (isTypedArray(data[0])) {\n buffer.dimension = data[0].length;\n buffer.dtype = dtype || typedArrayCode(data[0]) || GL_FLOAT$2;\n flatData = arrayFlatten(\n data,\n [data.length, data[0].length],\n buffer.dtype\n );\n initBufferFromTypedArray(buffer, flatData, usage);\n if (persist) {\n buffer.persistentData = flatData;\n } else {\n pool.freeType(flatData);\n }\n } else {\n }\n }\n } else if (isTypedArray(data)) {\n buffer.dtype = dtype || typedArrayCode(data);\n buffer.dimension = dimension;\n initBufferFromTypedArray(buffer, data, usage);\n if (persist) {\n buffer.persistentData = new Uint8Array(new Uint8Array(data.buffer));\n }\n } else if (isNDArrayLike(data)) {\n shape = data.shape;\n var stride = data.stride;\n var offset = data.offset;\n var shapeX = 0;\n var shapeY = 0;\n var strideX = 0;\n var strideY = 0;\n if (shape.length === 1) {\n shapeX = shape[0];\n shapeY = 1;\n strideX = stride[0];\n strideY = 0;\n } else if (shape.length === 2) {\n shapeX = shape[0];\n shapeY = shape[1];\n strideX = stride[0];\n strideY = stride[1];\n } else {\n }\n buffer.dtype = dtype || typedArrayCode(data.data) || GL_FLOAT$2;\n buffer.dimension = shapeY;\n var transposeData2 = pool.allocType(buffer.dtype, shapeX * shapeY);\n transpose(\n transposeData2,\n data.data,\n shapeX,\n shapeY,\n strideX,\n strideY,\n offset\n );\n initBufferFromTypedArray(buffer, transposeData2, usage);\n if (persist) {\n buffer.persistentData = transposeData2;\n } else {\n pool.freeType(transposeData2);\n }\n } else if (data instanceof ArrayBuffer) {\n buffer.dtype = GL_UNSIGNED_BYTE$2;\n buffer.dimension = dimension;\n initBufferFromTypedArray(buffer, data, usage);\n if (persist) {\n buffer.persistentData = new Uint8Array(new Uint8Array(data));\n }\n } else {\n }\n }\n function destroy(buffer) {\n stats2.bufferCount--;\n destroyBuffer(buffer);\n var handle = buffer.buffer;\n gl2.deleteBuffer(handle);\n buffer.buffer = null;\n delete bufferSet[buffer.id];\n }\n function createBuffer(options, type, deferInit, persistent) {\n stats2.bufferCount++;\n var buffer = new REGLBuffer(type);\n bufferSet[buffer.id] = buffer;\n function reglBuffer(options2) {\n var usage = GL_STATIC_DRAW;\n var data = null;\n var byteLength = 0;\n var dtype = 0;\n var dimension = 1;\n if (Array.isArray(options2) || isTypedArray(options2) || isNDArrayLike(options2) || options2 instanceof ArrayBuffer) {\n data = options2;\n } else if (typeof options2 === \"number\") {\n byteLength = options2 | 0;\n } else if (options2) {\n if (\"data\" in options2) {\n data = options2.data;\n }\n if (\"usage\" in options2) {\n usage = usageTypes[options2.usage];\n }\n if (\"type\" in options2) {\n dtype = glTypes[options2.type];\n }\n if (\"dimension\" in options2) {\n dimension = options2.dimension | 0;\n }\n if (\"length\" in options2) {\n byteLength = options2.length | 0;\n }\n }\n buffer.bind();\n if (!data) {\n if (byteLength) gl2.bufferData(buffer.type, byteLength, usage);\n buffer.dtype = dtype || GL_UNSIGNED_BYTE$2;\n buffer.usage = usage;\n buffer.dimension = dimension;\n buffer.byteLength = byteLength;\n } else {\n initBufferFromData(buffer, data, usage, dtype, dimension, persistent);\n }\n if (config.profile) {\n buffer.stats.size = buffer.byteLength * DTYPES_SIZES[buffer.dtype];\n }\n return reglBuffer;\n }\n function setSubData(data, offset) {\n gl2.bufferSubData(buffer.type, offset, data);\n }\n function subdata(data, offset_) {\n var offset = (offset_ || 0) | 0;\n var shape;\n buffer.bind();\n if (isTypedArray(data) || data instanceof ArrayBuffer) {\n setSubData(data, offset);\n } else if (Array.isArray(data)) {\n if (data.length > 0) {\n if (typeof data[0] === \"number\") {\n var converted = pool.allocType(buffer.dtype, data.length);\n copyArray(converted, data);\n setSubData(converted, offset);\n pool.freeType(converted);\n } else if (Array.isArray(data[0]) || isTypedArray(data[0])) {\n shape = arrayShape(data);\n var flatData = arrayFlatten(data, shape, buffer.dtype);\n setSubData(flatData, offset);\n pool.freeType(flatData);\n } else {\n }\n }\n } else if (isNDArrayLike(data)) {\n shape = data.shape;\n var stride = data.stride;\n var shapeX = 0;\n var shapeY = 0;\n var strideX = 0;\n var strideY = 0;\n if (shape.length === 1) {\n shapeX = shape[0];\n shapeY = 1;\n strideX = stride[0];\n strideY = 0;\n } else if (shape.length === 2) {\n shapeX = shape[0];\n shapeY = shape[1];\n strideX = stride[0];\n strideY = stride[1];\n } else {\n }\n var dtype = Array.isArray(data.data) ? buffer.dtype : typedArrayCode(data.data);\n var transposeData2 = pool.allocType(dtype, shapeX * shapeY);\n transpose(\n transposeData2,\n data.data,\n shapeX,\n shapeY,\n strideX,\n strideY,\n data.offset\n );\n setSubData(transposeData2, offset);\n pool.freeType(transposeData2);\n } else {\n }\n return reglBuffer;\n }\n if (!deferInit) {\n reglBuffer(options);\n }\n reglBuffer._reglType = \"buffer\";\n reglBuffer._buffer = buffer;\n reglBuffer.subdata = subdata;\n if (config.profile) {\n reglBuffer.stats = buffer.stats;\n }\n reglBuffer.destroy = function() {\n destroy(buffer);\n };\n return reglBuffer;\n }\n function restoreBuffers() {\n values(bufferSet).forEach(function(buffer) {\n buffer.buffer = gl2.createBuffer();\n gl2.bindBuffer(buffer.type, buffer.buffer);\n gl2.bufferData(\n buffer.type,\n buffer.persistentData || buffer.byteLength,\n buffer.usage\n );\n });\n }\n if (config.profile) {\n stats2.getTotalBufferSize = function() {\n var total = 0;\n Object.keys(bufferSet).forEach(function(key) {\n total += bufferSet[key].stats.size;\n });\n return total;\n };\n }\n return {\n create: createBuffer,\n createStream,\n destroyStream,\n clear: function() {\n values(bufferSet).forEach(destroy);\n streamPool.forEach(destroy);\n },\n getBuffer: function(wrapper) {\n if (wrapper && wrapper._buffer instanceof REGLBuffer) {\n return wrapper._buffer;\n }\n return null;\n },\n restore: restoreBuffers,\n _initBuffer: initBufferFromData\n };\n }\n var points = 0;\n var point = 0;\n var lines = 1;\n var line = 1;\n var triangles = 4;\n var triangle = 4;\n var primTypes = {\n points,\n point,\n lines,\n line,\n triangles,\n triangle,\n \"line loop\": 2,\n \"line strip\": 3,\n \"triangle strip\": 5,\n \"triangle fan\": 6\n };\n var GL_POINTS = 0;\n var GL_LINES = 1;\n var GL_TRIANGLES = 4;\n var GL_BYTE$1 = 5120;\n var GL_UNSIGNED_BYTE$3 = 5121;\n var GL_SHORT$1 = 5122;\n var GL_UNSIGNED_SHORT$1 = 5123;\n var GL_INT$1 = 5124;\n var GL_UNSIGNED_INT$1 = 5125;\n var GL_ELEMENT_ARRAY_BUFFER = 34963;\n var GL_STREAM_DRAW$1 = 35040;\n var GL_STATIC_DRAW$1 = 35044;\n function wrapElementsState(gl2, extensions, bufferState, stats2) {\n var elementSet = {};\n var elementCount = 0;\n var elementTypes = {\n \"uint8\": GL_UNSIGNED_BYTE$3,\n \"uint16\": GL_UNSIGNED_SHORT$1\n };\n if (extensions.oes_element_index_uint) {\n elementTypes.uint32 = GL_UNSIGNED_INT$1;\n }\n function REGLElementBuffer(buffer) {\n this.id = elementCount++;\n elementSet[this.id] = this;\n this.buffer = buffer;\n this.primType = GL_TRIANGLES;\n this.vertCount = 0;\n this.type = 0;\n }\n REGLElementBuffer.prototype.bind = function() {\n this.buffer.bind();\n };\n var bufferPool = [];\n function createElementStream(data) {\n var result = bufferPool.pop();\n if (!result) {\n result = new REGLElementBuffer(bufferState.create(\n null,\n GL_ELEMENT_ARRAY_BUFFER,\n true,\n false\n )._buffer);\n }\n initElements(result, data, GL_STREAM_DRAW$1, -1, -1, 0, 0);\n return result;\n }\n function destroyElementStream(elements) {\n bufferPool.push(elements);\n }\n function initElements(elements, data, usage, prim, count, byteLength, type) {\n elements.buffer.bind();\n var dtype;\n if (data) {\n var predictedType = type;\n if (!type && (!isTypedArray(data) || isNDArrayLike(data) && !isTypedArray(data.data))) {\n predictedType = extensions.oes_element_index_uint ? GL_UNSIGNED_INT$1 : GL_UNSIGNED_SHORT$1;\n }\n bufferState._initBuffer(\n elements.buffer,\n data,\n usage,\n predictedType,\n 3\n );\n } else {\n gl2.bufferData(GL_ELEMENT_ARRAY_BUFFER, byteLength, usage);\n elements.buffer.dtype = dtype || GL_UNSIGNED_BYTE$3;\n elements.buffer.usage = usage;\n elements.buffer.dimension = 3;\n elements.buffer.byteLength = byteLength;\n }\n dtype = type;\n if (!type) {\n switch (elements.buffer.dtype) {\n case GL_UNSIGNED_BYTE$3:\n case GL_BYTE$1:\n dtype = GL_UNSIGNED_BYTE$3;\n break;\n case GL_UNSIGNED_SHORT$1:\n case GL_SHORT$1:\n dtype = GL_UNSIGNED_SHORT$1;\n break;\n case GL_UNSIGNED_INT$1:\n case GL_INT$1:\n dtype = GL_UNSIGNED_INT$1;\n break;\n default:\n }\n elements.buffer.dtype = dtype;\n }\n elements.type = dtype;\n var vertCount = count;\n if (vertCount < 0) {\n vertCount = elements.buffer.byteLength;\n if (dtype === GL_UNSIGNED_SHORT$1) {\n vertCount >>= 1;\n } else if (dtype === GL_UNSIGNED_INT$1) {\n vertCount >>= 2;\n }\n }\n elements.vertCount = vertCount;\n var primType = prim;\n if (prim < 0) {\n primType = GL_TRIANGLES;\n var dimension = elements.buffer.dimension;\n if (dimension === 1) primType = GL_POINTS;\n if (dimension === 2) primType = GL_LINES;\n if (dimension === 3) primType = GL_TRIANGLES;\n }\n elements.primType = primType;\n }\n function destroyElements(elements) {\n stats2.elementsCount--;\n delete elementSet[elements.id];\n elements.buffer.destroy();\n elements.buffer = null;\n }\n function createElements(options, persistent) {\n var buffer = bufferState.create(null, GL_ELEMENT_ARRAY_BUFFER, true);\n var elements = new REGLElementBuffer(buffer._buffer);\n stats2.elementsCount++;\n function reglElements(options2) {\n if (!options2) {\n buffer();\n elements.primType = GL_TRIANGLES;\n elements.vertCount = 0;\n elements.type = GL_UNSIGNED_BYTE$3;\n } else if (typeof options2 === \"number\") {\n buffer(options2);\n elements.primType = GL_TRIANGLES;\n elements.vertCount = options2 | 0;\n elements.type = GL_UNSIGNED_BYTE$3;\n } else {\n var data = null;\n var usage = GL_STATIC_DRAW$1;\n var primType = -1;\n var vertCount = -1;\n var byteLength = 0;\n var dtype = 0;\n if (Array.isArray(options2) || isTypedArray(options2) || isNDArrayLike(options2)) {\n data = options2;\n } else {\n if (\"data\" in options2) {\n data = options2.data;\n }\n if (\"usage\" in options2) {\n usage = usageTypes[options2.usage];\n }\n if (\"primitive\" in options2) {\n primType = primTypes[options2.primitive];\n }\n if (\"count\" in options2) {\n vertCount = options2.count | 0;\n }\n if (\"type\" in options2) {\n dtype = elementTypes[options2.type];\n }\n if (\"length\" in options2) {\n byteLength = options2.length | 0;\n } else {\n byteLength = vertCount;\n if (dtype === GL_UNSIGNED_SHORT$1 || dtype === GL_SHORT$1) {\n byteLength *= 2;\n } else if (dtype === GL_UNSIGNED_INT$1 || dtype === GL_INT$1) {\n byteLength *= 4;\n }\n }\n }\n initElements(\n elements,\n data,\n usage,\n primType,\n vertCount,\n byteLength,\n dtype\n );\n }\n return reglElements;\n }\n reglElements(options);\n reglElements._reglType = \"elements\";\n reglElements._elements = elements;\n reglElements.subdata = function(data, offset) {\n buffer.subdata(data, offset);\n return reglElements;\n };\n reglElements.destroy = function() {\n destroyElements(elements);\n };\n return reglElements;\n }\n return {\n create: createElements,\n createStream: createElementStream,\n destroyStream: destroyElementStream,\n getElements: function(elements) {\n if (typeof elements === \"function\" && elements._elements instanceof REGLElementBuffer) {\n return elements._elements;\n }\n return null;\n },\n clear: function() {\n values(elementSet).forEach(destroyElements);\n }\n };\n }\n var FLOAT = new Float32Array(1);\n var INT = new Uint32Array(FLOAT.buffer);\n var GL_UNSIGNED_SHORT$3 = 5123;\n function convertToHalfFloat(array) {\n var ushorts = pool.allocType(GL_UNSIGNED_SHORT$3, array.length);\n for (var i = 0; i < array.length; ++i) {\n if (isNaN(array[i])) {\n ushorts[i] = 65535;\n } else if (array[i] === Infinity) {\n ushorts[i] = 31744;\n } else if (array[i] === -Infinity) {\n ushorts[i] = 64512;\n } else {\n FLOAT[0] = array[i];\n var x = INT[0];\n var sgn = x >>> 31 << 15;\n var exp = (x << 1 >>> 24) - 127;\n var frac = x >> 13 & (1 << 10) - 1;\n if (exp < -24) {\n ushorts[i] = sgn;\n } else if (exp < -14) {\n var s = -14 - exp;\n ushorts[i] = sgn + (frac + (1 << 10) >> s);\n } else if (exp > 15) {\n ushorts[i] = sgn + 31744;\n } else {\n ushorts[i] = sgn + (exp + 15 << 10) + frac;\n }\n }\n }\n return ushorts;\n }\n function isArrayLike(s) {\n return Array.isArray(s) || isTypedArray(s);\n }\n var GL_COMPRESSED_TEXTURE_FORMATS = 34467;\n var GL_TEXTURE_2D$1 = 3553;\n var GL_TEXTURE_CUBE_MAP$1 = 34067;\n var GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 = 34069;\n var GL_RGBA$1 = 6408;\n var GL_ALPHA = 6406;\n var GL_RGB = 6407;\n var GL_LUMINANCE = 6409;\n var GL_LUMINANCE_ALPHA = 6410;\n var GL_RGBA4 = 32854;\n var GL_RGB5_A1 = 32855;\n var GL_RGB565 = 36194;\n var GL_UNSIGNED_SHORT_4_4_4_4 = 32819;\n var GL_UNSIGNED_SHORT_5_5_5_1 = 32820;\n var GL_UNSIGNED_SHORT_5_6_5 = 33635;\n var GL_UNSIGNED_INT_24_8_WEBGL = 34042;\n var GL_DEPTH_COMPONENT = 6402;\n var GL_DEPTH_STENCIL = 34041;\n var GL_SRGB_EXT = 35904;\n var GL_SRGB_ALPHA_EXT = 35906;\n var GL_HALF_FLOAT_OES = 36193;\n var GL_COMPRESSED_RGB_S3TC_DXT1_EXT = 33776;\n var GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = 33777;\n var GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = 33778;\n var GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = 33779;\n var GL_COMPRESSED_RGB_ATC_WEBGL = 35986;\n var GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 35987;\n var GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 34798;\n var GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 35840;\n var GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 35841;\n var GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 35842;\n var GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 35843;\n var GL_COMPRESSED_RGB_ETC1_WEBGL = 36196;\n var GL_UNSIGNED_BYTE$4 = 5121;\n var GL_UNSIGNED_SHORT$2 = 5123;\n var GL_UNSIGNED_INT$2 = 5125;\n var GL_FLOAT$3 = 5126;\n var GL_TEXTURE_WRAP_S = 10242;\n var GL_TEXTURE_WRAP_T = 10243;\n var GL_REPEAT = 10497;\n var GL_CLAMP_TO_EDGE = 33071;\n var GL_MIRRORED_REPEAT = 33648;\n var GL_TEXTURE_MAG_FILTER = 10240;\n var GL_TEXTURE_MIN_FILTER = 10241;\n var GL_NEAREST = 9728;\n var GL_LINEAR = 9729;\n var GL_NEAREST_MIPMAP_NEAREST = 9984;\n var GL_LINEAR_MIPMAP_NEAREST = 9985;\n var GL_NEAREST_MIPMAP_LINEAR = 9986;\n var GL_LINEAR_MIPMAP_LINEAR = 9987;\n var GL_GENERATE_MIPMAP_HINT = 33170;\n var GL_DONT_CARE = 4352;\n var GL_FASTEST = 4353;\n var GL_NICEST = 4354;\n var GL_TEXTURE_MAX_ANISOTROPY_EXT = 34046;\n var GL_UNPACK_ALIGNMENT = 3317;\n var GL_UNPACK_FLIP_Y_WEBGL = 37440;\n var GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL = 37441;\n var GL_UNPACK_COLORSPACE_CONVERSION_WEBGL = 37443;\n var GL_BROWSER_DEFAULT_WEBGL = 37444;\n var GL_TEXTURE0$1 = 33984;\n var MIPMAP_FILTERS = [\n GL_NEAREST_MIPMAP_NEAREST,\n GL_NEAREST_MIPMAP_LINEAR,\n GL_LINEAR_MIPMAP_NEAREST,\n GL_LINEAR_MIPMAP_LINEAR\n ];\n var CHANNELS_FORMAT = [\n 0,\n GL_LUMINANCE,\n GL_LUMINANCE_ALPHA,\n GL_RGB,\n GL_RGBA$1\n ];\n var FORMAT_CHANNELS = {};\n FORMAT_CHANNELS[GL_LUMINANCE] = FORMAT_CHANNELS[GL_ALPHA] = FORMAT_CHANNELS[GL_DEPTH_COMPONENT] = 1;\n FORMAT_CHANNELS[GL_DEPTH_STENCIL] = FORMAT_CHANNELS[GL_LUMINANCE_ALPHA] = 2;\n FORMAT_CHANNELS[GL_RGB] = FORMAT_CHANNELS[GL_SRGB_EXT] = 3;\n FORMAT_CHANNELS[GL_RGBA$1] = FORMAT_CHANNELS[GL_SRGB_ALPHA_EXT] = 4;\n function objectName(str) {\n return \"[object \" + str + \"]\";\n }\n var CANVAS_CLASS = objectName(\"HTMLCanvasElement\");\n var OFFSCREENCANVAS_CLASS = objectName(\"OffscreenCanvas\");\n var CONTEXT2D_CLASS = objectName(\"CanvasRenderingContext2D\");\n var BITMAP_CLASS = objectName(\"ImageBitmap\");\n var IMAGE_CLASS = objectName(\"HTMLImageElement\");\n var VIDEO_CLASS = objectName(\"HTMLVideoElement\");\n var PIXEL_CLASSES = Object.keys(arrayTypes).concat([\n CANVAS_CLASS,\n OFFSCREENCANVAS_CLASS,\n CONTEXT2D_CLASS,\n BITMAP_CLASS,\n IMAGE_CLASS,\n VIDEO_CLASS\n ]);\n var TYPE_SIZES = [];\n TYPE_SIZES[GL_UNSIGNED_BYTE$4] = 1;\n TYPE_SIZES[GL_FLOAT$3] = 4;\n TYPE_SIZES[GL_HALF_FLOAT_OES] = 2;\n TYPE_SIZES[GL_UNSIGNED_SHORT$2] = 2;\n TYPE_SIZES[GL_UNSIGNED_INT$2] = 4;\n var FORMAT_SIZES_SPECIAL = [];\n FORMAT_SIZES_SPECIAL[GL_RGBA4] = 2;\n FORMAT_SIZES_SPECIAL[GL_RGB5_A1] = 2;\n FORMAT_SIZES_SPECIAL[GL_RGB565] = 2;\n FORMAT_SIZES_SPECIAL[GL_DEPTH_STENCIL] = 4;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_S3TC_DXT1_EXT] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT1_EXT] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT3_EXT] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_S3TC_DXT5_EXT] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ATC_WEBGL] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL] = 1;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG] = 0.25;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG] = 0.5;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG] = 0.25;\n FORMAT_SIZES_SPECIAL[GL_COMPRESSED_RGB_ETC1_WEBGL] = 0.5;\n function isNumericArray(arr) {\n return Array.isArray(arr) && (arr.length === 0 || typeof arr[0] === \"number\");\n }\n function isRectArray(arr) {\n if (!Array.isArray(arr)) {\n return false;\n }\n var width = arr.length;\n if (width === 0 || !isArrayLike(arr[0])) {\n return false;\n }\n return true;\n }\n function classString(x) {\n return Object.prototype.toString.call(x);\n }\n function isCanvasElement(object) {\n return classString(object) === CANVAS_CLASS;\n }\n function isOffscreenCanvas(object) {\n return classString(object) === OFFSCREENCANVAS_CLASS;\n }\n function isContext2D(object) {\n return classString(object) === CONTEXT2D_CLASS;\n }\n function isBitmap(object) {\n return classString(object) === BITMAP_CLASS;\n }\n function isImageElement(object) {\n return classString(object) === IMAGE_CLASS;\n }\n function isVideoElement(object) {\n return classString(object) === VIDEO_CLASS;\n }\n function isPixelData(object) {\n if (!object) {\n return false;\n }\n var className = classString(object);\n if (PIXEL_CLASSES.indexOf(className) >= 0) {\n return true;\n }\n return isNumericArray(object) || isRectArray(object) || isNDArrayLike(object);\n }\n function typedArrayCode$1(data) {\n return arrayTypes[Object.prototype.toString.call(data)] | 0;\n }\n function convertData(result, data) {\n var n = data.length;\n switch (result.type) {\n case GL_UNSIGNED_BYTE$4:\n case GL_UNSIGNED_SHORT$2:\n case GL_UNSIGNED_INT$2:\n case GL_FLOAT$3:\n var converted = pool.allocType(result.type, n);\n converted.set(data);\n result.data = converted;\n break;\n case GL_HALF_FLOAT_OES:\n result.data = convertToHalfFloat(data);\n break;\n default:\n }\n }\n function preConvert(image, n) {\n return pool.allocType(\n image.type === GL_HALF_FLOAT_OES ? GL_FLOAT$3 : image.type,\n n\n );\n }\n function postConvert(image, data) {\n if (image.type === GL_HALF_FLOAT_OES) {\n image.data = convertToHalfFloat(data);\n pool.freeType(data);\n } else {\n image.data = data;\n }\n }\n function transposeData(image, array, strideX, strideY, strideC, offset) {\n var w = image.width;\n var h = image.height;\n var c = image.channels;\n var n = w * h * c;\n var data = preConvert(image, n);\n var p = 0;\n for (var i = 0; i < h; ++i) {\n for (var j = 0; j < w; ++j) {\n for (var k = 0; k < c; ++k) {\n data[p++] = array[strideX * j + strideY * i + strideC * k + offset];\n }\n }\n }\n postConvert(image, data);\n }\n function getTextureSize(format, type, width, height, isMipmap, isCube) {\n var s;\n if (typeof FORMAT_SIZES_SPECIAL[format] !== \"undefined\") {\n s = FORMAT_SIZES_SPECIAL[format];\n } else {\n s = FORMAT_CHANNELS[format] * TYPE_SIZES[type];\n }\n if (isCube) {\n s *= 6;\n }\n if (isMipmap) {\n var total = 0;\n var w = width;\n while (w >= 1) {\n total += s * w * w;\n w /= 2;\n }\n return total;\n } else {\n return s * width * height;\n }\n }\n function createTextureSet(gl2, extensions, limits, reglPoll, contextState, stats2, config) {\n var mipmapHint = {\n \"don't care\": GL_DONT_CARE,\n \"dont care\": GL_DONT_CARE,\n \"nice\": GL_NICEST,\n \"fast\": GL_FASTEST\n };\n var wrapModes = {\n \"repeat\": GL_REPEAT,\n \"clamp\": GL_CLAMP_TO_EDGE,\n \"mirror\": GL_MIRRORED_REPEAT\n };\n var magFilters = {\n \"nearest\": GL_NEAREST,\n \"linear\": GL_LINEAR\n };\n var minFilters = extend2({\n \"mipmap\": GL_LINEAR_MIPMAP_LINEAR,\n \"nearest mipmap nearest\": GL_NEAREST_MIPMAP_NEAREST,\n \"linear mipmap nearest\": GL_LINEAR_MIPMAP_NEAREST,\n \"nearest mipmap linear\": GL_NEAREST_MIPMAP_LINEAR,\n \"linear mipmap linear\": GL_LINEAR_MIPMAP_LINEAR\n }, magFilters);\n var colorSpace = {\n \"none\": 0,\n \"browser\": GL_BROWSER_DEFAULT_WEBGL\n };\n var textureTypes = {\n \"uint8\": GL_UNSIGNED_BYTE$4,\n \"rgba4\": GL_UNSIGNED_SHORT_4_4_4_4,\n \"rgb565\": GL_UNSIGNED_SHORT_5_6_5,\n \"rgb5 a1\": GL_UNSIGNED_SHORT_5_5_5_1\n };\n var textureFormats = {\n \"alpha\": GL_ALPHA,\n \"luminance\": GL_LUMINANCE,\n \"luminance alpha\": GL_LUMINANCE_ALPHA,\n \"rgb\": GL_RGB,\n \"rgba\": GL_RGBA$1,\n \"rgba4\": GL_RGBA4,\n \"rgb5 a1\": GL_RGB5_A1,\n \"rgb565\": GL_RGB565\n };\n var compressedTextureFormats = {};\n if (extensions.ext_srgb) {\n textureFormats.srgb = GL_SRGB_EXT;\n textureFormats.srgba = GL_SRGB_ALPHA_EXT;\n }\n if (extensions.oes_texture_float) {\n textureTypes.float32 = textureTypes.float = GL_FLOAT$3;\n }\n if (extensions.oes_texture_half_float) {\n textureTypes[\"float16\"] = textureTypes[\"half float\"] = GL_HALF_FLOAT_OES;\n }\n if (extensions.webgl_depth_texture) {\n extend2(textureFormats, {\n \"depth\": GL_DEPTH_COMPONENT,\n \"depth stencil\": GL_DEPTH_STENCIL\n });\n extend2(textureTypes, {\n \"uint16\": GL_UNSIGNED_SHORT$2,\n \"uint32\": GL_UNSIGNED_INT$2,\n \"depth stencil\": GL_UNSIGNED_INT_24_8_WEBGL\n });\n }\n if (extensions.webgl_compressed_texture_s3tc) {\n extend2(compressedTextureFormats, {\n \"rgb s3tc dxt1\": GL_COMPRESSED_RGB_S3TC_DXT1_EXT,\n \"rgba s3tc dxt1\": GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,\n \"rgba s3tc dxt3\": GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,\n \"rgba s3tc dxt5\": GL_COMPRESSED_RGBA_S3TC_DXT5_EXT\n });\n }\n if (extensions.webgl_compressed_texture_atc) {\n extend2(compressedTextureFormats, {\n \"rgb atc\": GL_COMPRESSED_RGB_ATC_WEBGL,\n \"rgba atc explicit alpha\": GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,\n \"rgba atc interpolated alpha\": GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL\n });\n }\n if (extensions.webgl_compressed_texture_pvrtc) {\n extend2(compressedTextureFormats, {\n \"rgb pvrtc 4bppv1\": GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG,\n \"rgb pvrtc 2bppv1\": GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG,\n \"rgba pvrtc 4bppv1\": GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,\n \"rgba pvrtc 2bppv1\": GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG\n });\n }\n if (extensions.webgl_compressed_texture_etc1) {\n compressedTextureFormats[\"rgb etc1\"] = GL_COMPRESSED_RGB_ETC1_WEBGL;\n }\n var supportedCompressedFormats = Array.prototype.slice.call(\n gl2.getParameter(GL_COMPRESSED_TEXTURE_FORMATS)\n );\n Object.keys(compressedTextureFormats).forEach(function(name2) {\n var format = compressedTextureFormats[name2];\n if (supportedCompressedFormats.indexOf(format) >= 0) {\n textureFormats[name2] = format;\n }\n });\n var supportedFormats = Object.keys(textureFormats);\n limits.textureFormats = supportedFormats;\n var textureFormatsInvert = [];\n Object.keys(textureFormats).forEach(function(key) {\n var val = textureFormats[key];\n textureFormatsInvert[val] = key;\n });\n var textureTypesInvert = [];\n Object.keys(textureTypes).forEach(function(key) {\n var val = textureTypes[key];\n textureTypesInvert[val] = key;\n });\n var magFiltersInvert = [];\n Object.keys(magFilters).forEach(function(key) {\n var val = magFilters[key];\n magFiltersInvert[val] = key;\n });\n var minFiltersInvert = [];\n Object.keys(minFilters).forEach(function(key) {\n var val = minFilters[key];\n minFiltersInvert[val] = key;\n });\n var wrapModesInvert = [];\n Object.keys(wrapModes).forEach(function(key) {\n var val = wrapModes[key];\n wrapModesInvert[val] = key;\n });\n var colorFormats = supportedFormats.reduce(function(color2, key) {\n var glenum = textureFormats[key];\n if (glenum === GL_LUMINANCE || glenum === GL_ALPHA || glenum === GL_LUMINANCE || glenum === GL_LUMINANCE_ALPHA || glenum === GL_DEPTH_COMPONENT || glenum === GL_DEPTH_STENCIL || extensions.ext_srgb && (glenum === GL_SRGB_EXT || glenum === GL_SRGB_ALPHA_EXT)) {\n color2[glenum] = glenum;\n } else if (glenum === GL_RGB5_A1 || key.indexOf(\"rgba\") >= 0) {\n color2[glenum] = GL_RGBA$1;\n } else {\n color2[glenum] = GL_RGB;\n }\n return color2;\n }, {});\n function TexFlags() {\n this.internalformat = GL_RGBA$1;\n this.format = GL_RGBA$1;\n this.type = GL_UNSIGNED_BYTE$4;\n this.compressed = false;\n this.premultiplyAlpha = false;\n this.flipY = false;\n this.unpackAlignment = 1;\n this.colorSpace = GL_BROWSER_DEFAULT_WEBGL;\n this.width = 0;\n this.height = 0;\n this.channels = 0;\n }\n function copyFlags(result, other) {\n result.internalformat = other.internalformat;\n result.format = other.format;\n result.type = other.type;\n result.compressed = other.compressed;\n result.premultiplyAlpha = other.premultiplyAlpha;\n result.flipY = other.flipY;\n result.unpackAlignment = other.unpackAlignment;\n result.colorSpace = other.colorSpace;\n result.width = other.width;\n result.height = other.height;\n result.channels = other.channels;\n }\n function parseFlags(flags, options) {\n if (typeof options !== \"object\" || !options) {\n return;\n }\n if (\"premultiplyAlpha\" in options) {\n flags.premultiplyAlpha = options.premultiplyAlpha;\n }\n if (\"flipY\" in options) {\n flags.flipY = options.flipY;\n }\n if (\"alignment\" in options) {\n flags.unpackAlignment = options.alignment;\n }\n if (\"colorSpace\" in options) {\n flags.colorSpace = colorSpace[options.colorSpace];\n }\n if (\"type\" in options) {\n var type = options.type;\n flags.type = textureTypes[type];\n }\n var w = flags.width;\n var h = flags.height;\n var c = flags.channels;\n var hasChannels = false;\n if (\"shape\" in options) {\n w = options.shape[0];\n h = options.shape[1];\n if (options.shape.length === 3) {\n c = options.shape[2];\n hasChannels = true;\n }\n } else {\n if (\"radius\" in options) {\n w = h = options.radius;\n }\n if (\"width\" in options) {\n w = options.width;\n }\n if (\"height\" in options) {\n h = options.height;\n }\n if (\"channels\" in options) {\n c = options.channels;\n hasChannels = true;\n }\n }\n flags.width = w | 0;\n flags.height = h | 0;\n flags.channels = c | 0;\n var hasFormat = false;\n if (\"format\" in options) {\n var formatStr = options.format;\n var internalformat = flags.internalformat = textureFormats[formatStr];\n flags.format = colorFormats[internalformat];\n if (formatStr in textureTypes) {\n if (!(\"type\" in options)) {\n flags.type = textureTypes[formatStr];\n }\n }\n if (formatStr in compressedTextureFormats) {\n flags.compressed = true;\n }\n hasFormat = true;\n }\n if (!hasChannels && hasFormat) {\n flags.channels = FORMAT_CHANNELS[flags.format];\n } else if (hasChannels && !hasFormat) {\n if (flags.channels !== CHANNELS_FORMAT[flags.format]) {\n flags.format = flags.internalformat = CHANNELS_FORMAT[flags.channels];\n }\n } else if (hasFormat && hasChannels) {\n }\n }\n function setFlags(flags) {\n gl2.pixelStorei(GL_UNPACK_FLIP_Y_WEBGL, flags.flipY);\n gl2.pixelStorei(GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL, flags.premultiplyAlpha);\n gl2.pixelStorei(GL_UNPACK_COLORSPACE_CONVERSION_WEBGL, flags.colorSpace);\n gl2.pixelStorei(GL_UNPACK_ALIGNMENT, flags.unpackAlignment);\n }\n function TexImage() {\n TexFlags.call(this);\n this.xOffset = 0;\n this.yOffset = 0;\n this.data = null;\n this.needsFree = false;\n this.element = null;\n this.needsCopy = false;\n }\n function parseImage(image, options) {\n var data = null;\n if (isPixelData(options)) {\n data = options;\n } else if (options) {\n parseFlags(image, options);\n if (\"x\" in options) {\n image.xOffset = options.x | 0;\n }\n if (\"y\" in options) {\n image.yOffset = options.y | 0;\n }\n if (isPixelData(options.data)) {\n data = options.data;\n }\n }\n if (options.copy) {\n var viewW = contextState.viewportWidth;\n var viewH = contextState.viewportHeight;\n image.width = image.width || viewW - image.xOffset;\n image.height = image.height || viewH - image.yOffset;\n image.needsCopy = true;\n } else if (!data) {\n image.width = image.width || 1;\n image.height = image.height || 1;\n image.channels = image.channels || 4;\n } else if (isTypedArray(data)) {\n image.channels = image.channels || 4;\n image.data = data;\n if (!(\"type\" in options) && image.type === GL_UNSIGNED_BYTE$4) {\n image.type = typedArrayCode$1(data);\n }\n } else if (isNumericArray(data)) {\n image.channels = image.channels || 4;\n convertData(image, data);\n image.alignment = 1;\n image.needsFree = true;\n } else if (isNDArrayLike(data)) {\n var array = data.data;\n if (!Array.isArray(array) && image.type === GL_UNSIGNED_BYTE$4) {\n image.type = typedArrayCode$1(array);\n }\n var shape = data.shape;\n var stride = data.stride;\n var shapeX, shapeY, shapeC, strideX, strideY, strideC;\n if (shape.length === 3) {\n shapeC = shape[2];\n strideC = stride[2];\n } else {\n shapeC = 1;\n strideC = 1;\n }\n shapeX = shape[0];\n shapeY = shape[1];\n strideX = stride[0];\n strideY = stride[1];\n image.alignment = 1;\n image.width = shapeX;\n image.height = shapeY;\n image.channels = shapeC;\n image.format = image.internalformat = CHANNELS_FORMAT[shapeC];\n image.needsFree = true;\n transposeData(image, array, strideX, strideY, strideC, data.offset);\n } else if (isCanvasElement(data) || isOffscreenCanvas(data) || isContext2D(data)) {\n if (isCanvasElement(data) || isOffscreenCanvas(data)) {\n image.element = data;\n } else {\n image.element = data.canvas;\n }\n image.width = image.element.width;\n image.height = image.element.height;\n image.channels = 4;\n } else if (isBitmap(data)) {\n image.element = data;\n image.width = data.width;\n image.height = data.height;\n image.channels = 4;\n } else if (isImageElement(data)) {\n image.element = data;\n image.width = data.naturalWidth;\n image.height = data.naturalHeight;\n image.channels = 4;\n } else if (isVideoElement(data)) {\n image.element = data;\n image.width = data.videoWidth;\n image.height = data.videoHeight;\n image.channels = 4;\n } else if (isRectArray(data)) {\n var w = image.width || data[0].length;\n var h = image.height || data.length;\n var c = image.channels;\n if (isArrayLike(data[0][0])) {\n c = c || data[0][0].length;\n } else {\n c = c || 1;\n }\n var arrayShape2 = flattenUtils.shape(data);\n var n = 1;\n for (var dd = 0; dd < arrayShape2.length; ++dd) {\n n *= arrayShape2[dd];\n }\n var allocData = preConvert(image, n);\n flattenUtils.flatten(data, arrayShape2, \"\", allocData);\n postConvert(image, allocData);\n image.alignment = 1;\n image.width = w;\n image.height = h;\n image.channels = c;\n image.format = image.internalformat = CHANNELS_FORMAT[c];\n image.needsFree = true;\n }\n if (image.type === GL_FLOAT$3) {\n } else if (image.type === GL_HALF_FLOAT_OES) {\n }\n }\n function setImage(info, target, miplevel) {\n var element = info.element;\n var data = info.data;\n var internalformat = info.internalformat;\n var format = info.format;\n var type = info.type;\n var width = info.width;\n var height = info.height;\n setFlags(info);\n if (element) {\n gl2.texImage2D(target, miplevel, format, format, type, element);\n } else if (info.compressed) {\n gl2.compressedTexImage2D(target, miplevel, internalformat, width, height, 0, data);\n } else if (info.needsCopy) {\n reglPoll();\n gl2.copyTexImage2D(\n target,\n miplevel,\n format,\n info.xOffset,\n info.yOffset,\n width,\n height,\n 0\n );\n } else {\n gl2.texImage2D(target, miplevel, format, width, height, 0, format, type, data || null);\n }\n }\n function setSubImage(info, target, x, y, miplevel) {\n var element = info.element;\n var data = info.data;\n var internalformat = info.internalformat;\n var format = info.format;\n var type = info.type;\n var width = info.width;\n var height = info.height;\n setFlags(info);\n if (element) {\n gl2.texSubImage2D(\n target,\n miplevel,\n x,\n y,\n format,\n type,\n element\n );\n } else if (info.compressed) {\n gl2.compressedTexSubImage2D(\n target,\n miplevel,\n x,\n y,\n internalformat,\n width,\n height,\n data\n );\n } else if (info.needsCopy) {\n reglPoll();\n gl2.copyTexSubImage2D(\n target,\n miplevel,\n x,\n y,\n info.xOffset,\n info.yOffset,\n width,\n height\n );\n } else {\n gl2.texSubImage2D(\n target,\n miplevel,\n x,\n y,\n width,\n height,\n format,\n type,\n data\n );\n }\n }\n var imagePool = [];\n function allocImage() {\n return imagePool.pop() || new TexImage();\n }\n function freeImage(image) {\n if (image.needsFree) {\n pool.freeType(image.data);\n }\n TexImage.call(image);\n imagePool.push(image);\n }\n function MipMap() {\n TexFlags.call(this);\n this.genMipmaps = false;\n this.mipmapHint = GL_DONT_CARE;\n this.mipmask = 0;\n this.images = Array(16);\n }\n function parseMipMapFromShape(mipmap, width, height) {\n var img = mipmap.images[0] = allocImage();\n mipmap.mipmask = 1;\n img.width = mipmap.width = width;\n img.height = mipmap.height = height;\n img.channels = mipmap.channels = 4;\n }\n function parseMipMapFromObject(mipmap, options) {\n var imgData = null;\n if (isPixelData(options)) {\n imgData = mipmap.images[0] = allocImage();\n copyFlags(imgData, mipmap);\n parseImage(imgData, options);\n mipmap.mipmask = 1;\n } else {\n parseFlags(mipmap, options);\n if (Array.isArray(options.mipmap)) {\n var mipData = options.mipmap;\n for (var i = 0; i < mipData.length; ++i) {\n imgData = mipmap.images[i] = allocImage();\n copyFlags(imgData, mipmap);\n imgData.width >>= i;\n imgData.height >>= i;\n parseImage(imgData, mipData[i]);\n mipmap.mipmask |= 1 << i;\n }\n } else {\n imgData = mipmap.images[0] = allocImage();\n copyFlags(imgData, mipmap);\n parseImage(imgData, options);\n mipmap.mipmask = 1;\n }\n }\n copyFlags(mipmap, mipmap.images[0]);\n if (mipmap.compressed && (mipmap.internalformat === GL_COMPRESSED_RGB_S3TC_DXT1_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT1_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT3_EXT || mipmap.internalformat === GL_COMPRESSED_RGBA_S3TC_DXT5_EXT)) {\n }\n }\n function setMipMap(mipmap, target) {\n var images = mipmap.images;\n for (var i = 0; i < images.length; ++i) {\n if (!images[i]) {\n return;\n }\n setImage(images[i], target, i);\n }\n }\n var mipPool = [];\n function allocMipMap() {\n var result = mipPool.pop() || new MipMap();\n TexFlags.call(result);\n result.mipmask = 0;\n for (var i = 0; i < 16; ++i) {\n result.images[i] = null;\n }\n return result;\n }\n function freeMipMap(mipmap) {\n var images = mipmap.images;\n for (var i = 0; i < images.length; ++i) {\n if (images[i]) {\n freeImage(images[i]);\n }\n images[i] = null;\n }\n mipPool.push(mipmap);\n }\n function TexInfo() {\n this.minFilter = GL_NEAREST;\n this.magFilter = GL_NEAREST;\n this.wrapS = GL_CLAMP_TO_EDGE;\n this.wrapT = GL_CLAMP_TO_EDGE;\n this.anisotropic = 1;\n this.genMipmaps = false;\n this.mipmapHint = GL_DONT_CARE;\n }\n function parseTexInfo(info, options) {\n if (\"min\" in options) {\n var minFilter = options.min;\n info.minFilter = minFilters[minFilter];\n if (MIPMAP_FILTERS.indexOf(info.minFilter) >= 0 && !(\"faces\" in options)) {\n info.genMipmaps = true;\n }\n }\n if (\"mag\" in options) {\n var magFilter = options.mag;\n info.magFilter = magFilters[magFilter];\n }\n var wrapS = info.wrapS;\n var wrapT = info.wrapT;\n if (\"wrap\" in options) {\n var wrap = options.wrap;\n if (typeof wrap === \"string\") {\n wrapS = wrapT = wrapModes[wrap];\n } else if (Array.isArray(wrap)) {\n wrapS = wrapModes[wrap[0]];\n wrapT = wrapModes[wrap[1]];\n }\n } else {\n if (\"wrapS\" in options) {\n var optWrapS = options.wrapS;\n wrapS = wrapModes[optWrapS];\n }\n if (\"wrapT\" in options) {\n var optWrapT = options.wrapT;\n wrapT = wrapModes[optWrapT];\n }\n }\n info.wrapS = wrapS;\n info.wrapT = wrapT;\n if (\"anisotropic\" in options) {\n var anisotropic = options.anisotropic;\n info.anisotropic = options.anisotropic;\n }\n if (\"mipmap\" in options) {\n var hasMipMap = false;\n switch (typeof options.mipmap) {\n case \"string\":\n info.mipmapHint = mipmapHint[options.mipmap];\n info.genMipmaps = true;\n hasMipMap = true;\n break;\n case \"boolean\":\n hasMipMap = info.genMipmaps = options.mipmap;\n break;\n case \"object\":\n info.genMipmaps = false;\n hasMipMap = true;\n break;\n default:\n }\n if (hasMipMap && !(\"min\" in options)) {\n info.minFilter = GL_NEAREST_MIPMAP_NEAREST;\n }\n }\n }\n function setTexInfo(info, target) {\n gl2.texParameteri(target, GL_TEXTURE_MIN_FILTER, info.minFilter);\n gl2.texParameteri(target, GL_TEXTURE_MAG_FILTER, info.magFilter);\n gl2.texParameteri(target, GL_TEXTURE_WRAP_S, info.wrapS);\n gl2.texParameteri(target, GL_TEXTURE_WRAP_T, info.wrapT);\n if (extensions.ext_texture_filter_anisotropic) {\n gl2.texParameteri(target, GL_TEXTURE_MAX_ANISOTROPY_EXT, info.anisotropic);\n }\n if (info.genMipmaps) {\n gl2.hint(GL_GENERATE_MIPMAP_HINT, info.mipmapHint);\n gl2.generateMipmap(target);\n }\n }\n var textureCount = 0;\n var textureSet = {};\n var numTexUnits = limits.maxTextureUnits;\n var textureUnits = Array(numTexUnits).map(function() {\n return null;\n });\n function REGLTexture(target) {\n TexFlags.call(this);\n this.mipmask = 0;\n this.internalformat = GL_RGBA$1;\n this.id = textureCount++;\n this.refCount = 1;\n this.target = target;\n this.texture = gl2.createTexture();\n this.unit = -1;\n this.bindCount = 0;\n this.texInfo = new TexInfo();\n if (config.profile) {\n this.stats = { size: 0 };\n }\n }\n function tempBind(texture) {\n gl2.activeTexture(GL_TEXTURE0$1);\n gl2.bindTexture(texture.target, texture.texture);\n }\n function tempRestore() {\n var prev = textureUnits[0];\n if (prev) {\n gl2.bindTexture(prev.target, prev.texture);\n } else {\n gl2.bindTexture(GL_TEXTURE_2D$1, null);\n }\n }\n function destroy(texture) {\n var handle = texture.texture;\n var unit = texture.unit;\n var target = texture.target;\n if (unit >= 0) {\n gl2.activeTexture(GL_TEXTURE0$1 + unit);\n gl2.bindTexture(target, null);\n textureUnits[unit] = null;\n }\n gl2.deleteTexture(handle);\n texture.texture = null;\n texture.params = null;\n texture.pixels = null;\n texture.refCount = 0;\n delete textureSet[texture.id];\n stats2.textureCount--;\n }\n extend2(REGLTexture.prototype, {\n bind: function() {\n var texture = this;\n texture.bindCount += 1;\n var unit = texture.unit;\n if (unit < 0) {\n for (var i = 0; i < numTexUnits; ++i) {\n var other = textureUnits[i];\n if (other) {\n if (other.bindCount > 0) {\n continue;\n }\n other.unit = -1;\n }\n textureUnits[i] = texture;\n unit = i;\n break;\n }\n if (unit >= numTexUnits) {\n }\n if (config.profile && stats2.maxTextureUnits < unit + 1) {\n stats2.maxTextureUnits = unit + 1;\n }\n texture.unit = unit;\n gl2.activeTexture(GL_TEXTURE0$1 + unit);\n gl2.bindTexture(texture.target, texture.texture);\n }\n return unit;\n },\n unbind: function() {\n this.bindCount -= 1;\n },\n decRef: function() {\n if (--this.refCount <= 0) {\n destroy(this);\n }\n }\n });\n function createTexture2D(a, b) {\n var texture = new REGLTexture(GL_TEXTURE_2D$1);\n textureSet[texture.id] = texture;\n stats2.textureCount++;\n function reglTexture2D(a2, b2) {\n var texInfo = texture.texInfo;\n TexInfo.call(texInfo);\n var mipData = allocMipMap();\n if (typeof a2 === \"number\") {\n if (typeof b2 === \"number\") {\n parseMipMapFromShape(mipData, a2 | 0, b2 | 0);\n } else {\n parseMipMapFromShape(mipData, a2 | 0, a2 | 0);\n }\n } else if (a2) {\n parseTexInfo(texInfo, a2);\n parseMipMapFromObject(mipData, a2);\n } else {\n parseMipMapFromShape(mipData, 1, 1);\n }\n if (texInfo.genMipmaps) {\n mipData.mipmask = (mipData.width << 1) - 1;\n }\n texture.mipmask = mipData.mipmask;\n copyFlags(texture, mipData);\n texture.internalformat = mipData.internalformat;\n reglTexture2D.width = mipData.width;\n reglTexture2D.height = mipData.height;\n tempBind(texture);\n setMipMap(mipData, GL_TEXTURE_2D$1);\n setTexInfo(texInfo, GL_TEXTURE_2D$1);\n tempRestore();\n freeMipMap(mipData);\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n mipData.width,\n mipData.height,\n texInfo.genMipmaps,\n false\n );\n }\n reglTexture2D.format = textureFormatsInvert[texture.internalformat];\n reglTexture2D.type = textureTypesInvert[texture.type];\n reglTexture2D.mag = magFiltersInvert[texInfo.magFilter];\n reglTexture2D.min = minFiltersInvert[texInfo.minFilter];\n reglTexture2D.wrapS = wrapModesInvert[texInfo.wrapS];\n reglTexture2D.wrapT = wrapModesInvert[texInfo.wrapT];\n return reglTexture2D;\n }\n function subimage(image, x_, y_, level_) {\n var x = x_ | 0;\n var y = y_ | 0;\n var level = level_ | 0;\n var imageData = allocImage();\n copyFlags(imageData, texture);\n imageData.width = 0;\n imageData.height = 0;\n parseImage(imageData, image);\n imageData.width = imageData.width || (texture.width >> level) - x;\n imageData.height = imageData.height || (texture.height >> level) - y;\n tempBind(texture);\n setSubImage(imageData, GL_TEXTURE_2D$1, x, y, level);\n tempRestore();\n freeImage(imageData);\n return reglTexture2D;\n }\n function resize(w_, h_) {\n var w = w_ | 0;\n var h = h_ | 0 || w;\n if (w === texture.width && h === texture.height) {\n return reglTexture2D;\n }\n reglTexture2D.width = texture.width = w;\n reglTexture2D.height = texture.height = h;\n tempBind(texture);\n for (var i = 0; texture.mipmask >> i; ++i) {\n var _w = w >> i;\n var _h = h >> i;\n if (!_w || !_h) break;\n gl2.texImage2D(\n GL_TEXTURE_2D$1,\n i,\n texture.format,\n _w,\n _h,\n 0,\n texture.format,\n texture.type,\n null\n );\n }\n tempRestore();\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n w,\n h,\n false,\n false\n );\n }\n return reglTexture2D;\n }\n reglTexture2D(a, b);\n reglTexture2D.subimage = subimage;\n reglTexture2D.resize = resize;\n reglTexture2D._reglType = \"texture2d\";\n reglTexture2D._texture = texture;\n if (config.profile) {\n reglTexture2D.stats = texture.stats;\n }\n reglTexture2D.destroy = function() {\n texture.decRef();\n };\n return reglTexture2D;\n }\n function createTextureCube(a0, a1, a2, a3, a4, a5) {\n var texture = new REGLTexture(GL_TEXTURE_CUBE_MAP$1);\n textureSet[texture.id] = texture;\n stats2.cubeCount++;\n var faces = new Array(6);\n function reglTextureCube(a02, a12, a22, a32, a42, a52) {\n var i;\n var texInfo = texture.texInfo;\n TexInfo.call(texInfo);\n for (i = 0; i < 6; ++i) {\n faces[i] = allocMipMap();\n }\n if (typeof a02 === \"number\" || !a02) {\n var s = a02 | 0 || 1;\n for (i = 0; i < 6; ++i) {\n parseMipMapFromShape(faces[i], s, s);\n }\n } else if (typeof a02 === \"object\") {\n if (a12) {\n parseMipMapFromObject(faces[0], a02);\n parseMipMapFromObject(faces[1], a12);\n parseMipMapFromObject(faces[2], a22);\n parseMipMapFromObject(faces[3], a32);\n parseMipMapFromObject(faces[4], a42);\n parseMipMapFromObject(faces[5], a52);\n } else {\n parseTexInfo(texInfo, a02);\n parseFlags(texture, a02);\n if (\"faces\" in a02) {\n var faceInput = a02.faces;\n for (i = 0; i < 6; ++i) {\n copyFlags(faces[i], texture);\n parseMipMapFromObject(faces[i], faceInput[i]);\n }\n } else {\n for (i = 0; i < 6; ++i) {\n parseMipMapFromObject(faces[i], a02);\n }\n }\n }\n } else {\n }\n copyFlags(texture, faces[0]);\n if (texInfo.genMipmaps) {\n texture.mipmask = (faces[0].width << 1) - 1;\n } else {\n texture.mipmask = faces[0].mipmask;\n }\n texture.internalformat = faces[0].internalformat;\n reglTextureCube.width = faces[0].width;\n reglTextureCube.height = faces[0].height;\n tempBind(texture);\n for (i = 0; i < 6; ++i) {\n setMipMap(faces[i], GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i);\n }\n setTexInfo(texInfo, GL_TEXTURE_CUBE_MAP$1);\n tempRestore();\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n reglTextureCube.width,\n reglTextureCube.height,\n texInfo.genMipmaps,\n true\n );\n }\n reglTextureCube.format = textureFormatsInvert[texture.internalformat];\n reglTextureCube.type = textureTypesInvert[texture.type];\n reglTextureCube.mag = magFiltersInvert[texInfo.magFilter];\n reglTextureCube.min = minFiltersInvert[texInfo.minFilter];\n reglTextureCube.wrapS = wrapModesInvert[texInfo.wrapS];\n reglTextureCube.wrapT = wrapModesInvert[texInfo.wrapT];\n for (i = 0; i < 6; ++i) {\n freeMipMap(faces[i]);\n }\n return reglTextureCube;\n }\n function subimage(face, image, x_, y_, level_) {\n var x = x_ | 0;\n var y = y_ | 0;\n var level = level_ | 0;\n var imageData = allocImage();\n copyFlags(imageData, texture);\n imageData.width = 0;\n imageData.height = 0;\n parseImage(imageData, image);\n imageData.width = imageData.width || (texture.width >> level) - x;\n imageData.height = imageData.height || (texture.height >> level) - y;\n tempBind(texture);\n setSubImage(imageData, GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + face, x, y, level);\n tempRestore();\n freeImage(imageData);\n return reglTextureCube;\n }\n function resize(radius_) {\n var radius = radius_ | 0;\n if (radius === texture.width) {\n return;\n }\n reglTextureCube.width = texture.width = radius;\n reglTextureCube.height = texture.height = radius;\n tempBind(texture);\n for (var i = 0; i < 6; ++i) {\n for (var j = 0; texture.mipmask >> j; ++j) {\n gl2.texImage2D(\n GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + i,\n j,\n texture.format,\n radius >> j,\n radius >> j,\n 0,\n texture.format,\n texture.type,\n null\n );\n }\n }\n tempRestore();\n if (config.profile) {\n texture.stats.size = getTextureSize(\n texture.internalformat,\n texture.type,\n reglTextureCube.width,\n reglTextureCube.height,\n false,\n true\n );\n }\n return reglTextureCube;\n }\n reglTextureCube(a0, a1, a2, a3, a4, a5);\n reglTextureCube.subimage = subimage;\n reglTextureCube.resize = resize;\n reglTextureCube._reglType = \"textureCube\";\n reglTextureCube._texture = texture;\n if (config.profile) {\n reglTextureCube.stats = texture.stats;\n }\n reglTextureCube.destroy = function() {\n texture.decRef();\n };\n return reglTextureCube;\n }\n function destroyTextures() {\n for (var i = 0; i < numTexUnits; ++i) {\n gl2.activeTexture(GL_TEXTURE0$1 + i);\n gl2.bindTexture(GL_TEXTURE_2D$1, null);\n textureUnits[i] = null;\n }\n values(textureSet).forEach(destroy);\n stats2.cubeCount = 0;\n stats2.textureCount = 0;\n }\n if (config.profile) {\n stats2.getTotalTextureSize = function() {\n var total = 0;\n Object.keys(textureSet).forEach(function(key) {\n total += textureSet[key].stats.size;\n });\n return total;\n };\n }\n function restoreTextures() {\n for (var i = 0; i < numTexUnits; ++i) {\n var tex = textureUnits[i];\n if (tex) {\n tex.bindCount = 0;\n tex.unit = -1;\n textureUnits[i] = null;\n }\n }\n values(textureSet).forEach(function(texture) {\n texture.texture = gl2.createTexture();\n gl2.bindTexture(texture.target, texture.texture);\n for (var i2 = 0; i2 < 32; ++i2) {\n if ((texture.mipmask & 1 << i2) === 0) {\n continue;\n }\n if (texture.target === GL_TEXTURE_2D$1) {\n gl2.texImage2D(\n GL_TEXTURE_2D$1,\n i2,\n texture.internalformat,\n texture.width >> i2,\n texture.height >> i2,\n 0,\n texture.internalformat,\n texture.type,\n null\n );\n } else {\n for (var j = 0; j < 6; ++j) {\n gl2.texImage2D(\n GL_TEXTURE_CUBE_MAP_POSITIVE_X$1 + j,\n i2,\n texture.internalformat,\n texture.width >> i2,\n texture.height >> i2,\n 0,\n texture.internalformat,\n texture.type,\n null\n );\n }\n }\n }\n setTexInfo(texture.texInfo, texture.target);\n });\n }\n function refreshTextures() {\n for (var i = 0; i < numTexUnits; ++i) {\n var tex = textureUnits[i];\n if (tex) {\n tex.bindCount = 0;\n tex.unit = -1;\n textureUnits[i] = null;\n }\n gl2.activeTexture(GL_TEXTURE0$1 + i);\n gl2.bindTexture(GL_TEXTURE_2D$1, null);\n gl2.bindTexture(GL_TEXTURE_CUBE_MAP$1, null);\n }\n }\n return {\n create2D: createTexture2D,\n createCube: createTextureCube,\n clear: destroyTextures,\n getTexture: function(wrapper) {\n return null;\n },\n restore: restoreTextures,\n refresh: refreshTextures\n };\n }\n var GL_RENDERBUFFER = 36161;\n var GL_RGBA4$1 = 32854;\n var GL_RGB5_A1$1 = 32855;\n var GL_RGB565$1 = 36194;\n var GL_DEPTH_COMPONENT16 = 33189;\n var GL_STENCIL_INDEX8 = 36168;\n var GL_DEPTH_STENCIL$1 = 34041;\n var GL_SRGB8_ALPHA8_EXT = 35907;\n var GL_RGBA32F_EXT = 34836;\n var GL_RGBA16F_EXT = 34842;\n var GL_RGB16F_EXT = 34843;\n var FORMAT_SIZES = [];\n FORMAT_SIZES[GL_RGBA4$1] = 2;\n FORMAT_SIZES[GL_RGB5_A1$1] = 2;\n FORMAT_SIZES[GL_RGB565$1] = 2;\n FORMAT_SIZES[GL_DEPTH_COMPONENT16] = 2;\n FORMAT_SIZES[GL_STENCIL_INDEX8] = 1;\n FORMAT_SIZES[GL_DEPTH_STENCIL$1] = 4;\n FORMAT_SIZES[GL_SRGB8_ALPHA8_EXT] = 4;\n FORMAT_SIZES[GL_RGBA32F_EXT] = 16;\n FORMAT_SIZES[GL_RGBA16F_EXT] = 8;\n FORMAT_SIZES[GL_RGB16F_EXT] = 6;\n function getRenderbufferSize(format, width, height) {\n return FORMAT_SIZES[format] * width * height;\n }\n var wrapRenderbuffers = function(gl2, extensions, limits, stats2, config) {\n var formatTypes = {\n \"rgba4\": GL_RGBA4$1,\n \"rgb565\": GL_RGB565$1,\n \"rgb5 a1\": GL_RGB5_A1$1,\n \"depth\": GL_DEPTH_COMPONENT16,\n \"stencil\": GL_STENCIL_INDEX8,\n \"depth stencil\": GL_DEPTH_STENCIL$1\n };\n if (extensions.ext_srgb) {\n formatTypes[\"srgba\"] = GL_SRGB8_ALPHA8_EXT;\n }\n if (extensions.ext_color_buffer_half_float) {\n formatTypes[\"rgba16f\"] = GL_RGBA16F_EXT;\n formatTypes[\"rgb16f\"] = GL_RGB16F_EXT;\n }\n if (extensions.webgl_color_buffer_float) {\n formatTypes[\"rgba32f\"] = GL_RGBA32F_EXT;\n }\n var formatTypesInvert = [];\n Object.keys(formatTypes).forEach(function(key) {\n var val = formatTypes[key];\n formatTypesInvert[val] = key;\n });\n var renderbufferCount = 0;\n var renderbufferSet = {};\n function REGLRenderbuffer(renderbuffer) {\n this.id = renderbufferCount++;\n this.refCount = 1;\n this.renderbuffer = renderbuffer;\n this.format = GL_RGBA4$1;\n this.width = 0;\n this.height = 0;\n if (config.profile) {\n this.stats = { size: 0 };\n }\n }\n REGLRenderbuffer.prototype.decRef = function() {\n if (--this.refCount <= 0) {\n destroy(this);\n }\n };\n function destroy(rb) {\n var handle = rb.renderbuffer;\n gl2.bindRenderbuffer(GL_RENDERBUFFER, null);\n gl2.deleteRenderbuffer(handle);\n rb.renderbuffer = null;\n rb.refCount = 0;\n delete renderbufferSet[rb.id];\n stats2.renderbufferCount--;\n }\n function createRenderbuffer(a, b) {\n var renderbuffer = new REGLRenderbuffer(gl2.createRenderbuffer());\n renderbufferSet[renderbuffer.id] = renderbuffer;\n stats2.renderbufferCount++;\n function reglRenderbuffer(a2, b2) {\n var w = 0;\n var h = 0;\n var format = GL_RGBA4$1;\n if (typeof a2 === \"object\" && a2) {\n var options = a2;\n if (\"shape\" in options) {\n var shape = options.shape;\n w = shape[0] | 0;\n h = shape[1] | 0;\n } else {\n if (\"radius\" in options) {\n w = h = options.radius | 0;\n }\n if (\"width\" in options) {\n w = options.width | 0;\n }\n if (\"height\" in options) {\n h = options.height | 0;\n }\n }\n if (\"format\" in options) {\n format = formatTypes[options.format];\n }\n } else if (typeof a2 === \"number\") {\n w = a2 | 0;\n if (typeof b2 === \"number\") {\n h = b2 | 0;\n } else {\n h = w;\n }\n } else if (!a2) {\n w = h = 1;\n } else {\n }\n if (w === renderbuffer.width && h === renderbuffer.height && format === renderbuffer.format) {\n return;\n }\n reglRenderbuffer.width = renderbuffer.width = w;\n reglRenderbuffer.height = renderbuffer.height = h;\n renderbuffer.format = format;\n gl2.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer);\n gl2.renderbufferStorage(GL_RENDERBUFFER, format, w, h);\n if (config.profile) {\n renderbuffer.stats.size = getRenderbufferSize(renderbuffer.format, renderbuffer.width, renderbuffer.height);\n }\n reglRenderbuffer.format = formatTypesInvert[renderbuffer.format];\n return reglRenderbuffer;\n }\n function resize(w_, h_) {\n var w = w_ | 0;\n var h = h_ | 0 || w;\n if (w === renderbuffer.width && h === renderbuffer.height) {\n return reglRenderbuffer;\n }\n reglRenderbuffer.width = renderbuffer.width = w;\n reglRenderbuffer.height = renderbuffer.height = h;\n gl2.bindRenderbuffer(GL_RENDERBUFFER, renderbuffer.renderbuffer);\n gl2.renderbufferStorage(GL_RENDERBUFFER, renderbuffer.format, w, h);\n if (config.profile) {\n renderbuffer.stats.size = getRenderbufferSize(\n renderbuffer.format,\n renderbuffer.width,\n renderbuffer.height\n );\n }\n return reglRenderbuffer;\n }\n reglRenderbuffer(a, b);\n reglRenderbuffer.resize = resize;\n reglRenderbuffer._reglType = \"renderbuffer\";\n reglRenderbuffer._renderbuffer = renderbuffer;\n if (config.profile) {\n reglRenderbuffer.stats = renderbuffer.stats;\n }\n reglRenderbuffer.destroy = function() {\n renderbuffer.decRef();\n };\n return reglRenderbuffer;\n }\n if (config.profile) {\n stats2.getTotalRenderbufferSize = function() {\n var total = 0;\n Object.keys(renderbufferSet).forEach(function(key) {\n total += renderbufferSet[key].stats.size;\n });\n return total;\n };\n }\n function restoreRenderbuffers() {\n values(renderbufferSet).forEach(function(rb) {\n rb.renderbuffer = gl2.createRenderbuffer();\n gl2.bindRenderbuffer(GL_RENDERBUFFER, rb.renderbuffer);\n gl2.renderbufferStorage(GL_RENDERBUFFER, rb.format, rb.width, rb.height);\n });\n gl2.bindRenderbuffer(GL_RENDERBUFFER, null);\n }\n return {\n create: createRenderbuffer,\n clear: function() {\n values(renderbufferSet).forEach(destroy);\n },\n restore: restoreRenderbuffers\n };\n };\n var GL_FRAMEBUFFER$1 = 36160;\n var GL_RENDERBUFFER$1 = 36161;\n var GL_TEXTURE_2D$2 = 3553;\n var GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 = 34069;\n var GL_COLOR_ATTACHMENT0$1 = 36064;\n var GL_DEPTH_ATTACHMENT = 36096;\n var GL_STENCIL_ATTACHMENT = 36128;\n var GL_DEPTH_STENCIL_ATTACHMENT = 33306;\n var GL_FRAMEBUFFER_COMPLETE$1 = 36053;\n var GL_HALF_FLOAT_OES$1 = 36193;\n var GL_UNSIGNED_BYTE$5 = 5121;\n var GL_FLOAT$4 = 5126;\n var GL_RGB$1 = 6407;\n var GL_RGBA$2 = 6408;\n var textureFormatChannels = [];\n textureFormatChannels[GL_RGBA$2] = 4;\n textureFormatChannels[GL_RGB$1] = 3;\n var textureTypeSizes = [];\n textureTypeSizes[GL_UNSIGNED_BYTE$5] = 1;\n textureTypeSizes[GL_FLOAT$4] = 4;\n textureTypeSizes[GL_HALF_FLOAT_OES$1] = 2;\n function wrapFBOState(gl2, extensions, limits, textureState, renderbufferState, stats2) {\n var framebufferState = {\n cur: null,\n next: null,\n dirty: false,\n setFBO: null\n };\n var colorTextureFormats = [\"rgba\"];\n var colorRenderbufferFormats = [\"rgba4\", \"rgb565\", \"rgb5 a1\"];\n if (extensions.ext_srgb) {\n colorRenderbufferFormats.push(\"srgba\");\n }\n if (extensions.ext_color_buffer_half_float) {\n colorRenderbufferFormats.push(\"rgba16f\", \"rgb16f\");\n }\n if (extensions.webgl_color_buffer_float) {\n colorRenderbufferFormats.push(\"rgba32f\");\n }\n var colorTypes = [\"uint8\"];\n if (extensions.oes_texture_half_float) {\n colorTypes.push(\"half float\", \"float16\");\n }\n if (extensions.oes_texture_float) {\n colorTypes.push(\"float\", \"float32\");\n }\n function FramebufferAttachment(target, texture, renderbuffer) {\n this.target = target;\n this.texture = texture;\n this.renderbuffer = renderbuffer;\n var w = 0;\n var h = 0;\n if (texture) {\n w = texture.width;\n h = texture.height;\n } else if (renderbuffer) {\n w = renderbuffer.width;\n h = renderbuffer.height;\n }\n this.width = w;\n this.height = h;\n }\n function decRef(attachment) {\n if (attachment) {\n if (attachment.texture) {\n attachment.texture._texture.decRef();\n }\n if (attachment.renderbuffer) {\n attachment.renderbuffer._renderbuffer.decRef();\n }\n }\n }\n function incRefAndCheckShape(attachment, width, height) {\n if (!attachment) {\n return;\n }\n if (attachment.texture) {\n var texture = attachment.texture._texture;\n var tw = Math.max(1, texture.width);\n var th = Math.max(1, texture.height);\n texture.refCount += 1;\n } else {\n var renderbuffer = attachment.renderbuffer._renderbuffer;\n renderbuffer.refCount += 1;\n }\n }\n function attach(location2, attachment) {\n if (attachment) {\n if (attachment.texture) {\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n location2,\n attachment.target,\n attachment.texture._texture.texture,\n 0\n );\n } else {\n gl2.framebufferRenderbuffer(\n GL_FRAMEBUFFER$1,\n location2,\n GL_RENDERBUFFER$1,\n attachment.renderbuffer._renderbuffer.renderbuffer\n );\n }\n }\n }\n function parseAttachment(attachment) {\n var target = GL_TEXTURE_2D$2;\n var texture = null;\n var renderbuffer = null;\n var data = attachment;\n if (typeof attachment === \"object\") {\n data = attachment.data;\n if (\"target\" in attachment) {\n target = attachment.target | 0;\n }\n }\n var type = data._reglType;\n if (type === \"texture2d\") {\n texture = data;\n } else if (type === \"textureCube\") {\n texture = data;\n } else if (type === \"renderbuffer\") {\n renderbuffer = data;\n target = GL_RENDERBUFFER$1;\n } else {\n }\n return new FramebufferAttachment(target, texture, renderbuffer);\n }\n function allocAttachment(width, height, isTexture, format, type) {\n if (isTexture) {\n var texture = textureState.create2D({\n width,\n height,\n format,\n type\n });\n texture._texture.refCount = 0;\n return new FramebufferAttachment(GL_TEXTURE_2D$2, texture, null);\n } else {\n var rb = renderbufferState.create({\n width,\n height,\n format\n });\n rb._renderbuffer.refCount = 0;\n return new FramebufferAttachment(GL_RENDERBUFFER$1, null, rb);\n }\n }\n function unwrapAttachment(attachment) {\n return attachment && (attachment.texture || attachment.renderbuffer);\n }\n function resizeAttachment(attachment, w, h) {\n if (attachment) {\n if (attachment.texture) {\n attachment.texture.resize(w, h);\n } else if (attachment.renderbuffer) {\n attachment.renderbuffer.resize(w, h);\n }\n attachment.width = w;\n attachment.height = h;\n }\n }\n var framebufferCount = 0;\n var framebufferSet = {};\n function REGLFramebuffer() {\n this.id = framebufferCount++;\n framebufferSet[this.id] = this;\n this.framebuffer = gl2.createFramebuffer();\n this.width = 0;\n this.height = 0;\n this.colorAttachments = [];\n this.depthAttachment = null;\n this.stencilAttachment = null;\n this.depthStencilAttachment = null;\n }\n function decFBORefs(framebuffer) {\n framebuffer.colorAttachments.forEach(decRef);\n decRef(framebuffer.depthAttachment);\n decRef(framebuffer.stencilAttachment);\n decRef(framebuffer.depthStencilAttachment);\n }\n function destroy(framebuffer) {\n var handle = framebuffer.framebuffer;\n gl2.deleteFramebuffer(handle);\n framebuffer.framebuffer = null;\n stats2.framebufferCount--;\n delete framebufferSet[framebuffer.id];\n }\n function updateFramebuffer(framebuffer) {\n var i;\n gl2.bindFramebuffer(GL_FRAMEBUFFER$1, framebuffer.framebuffer);\n var colorAttachments = framebuffer.colorAttachments;\n for (i = 0; i < colorAttachments.length; ++i) {\n attach(GL_COLOR_ATTACHMENT0$1 + i, colorAttachments[i]);\n }\n for (i = colorAttachments.length; i < limits.maxColorAttachments; ++i) {\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_COLOR_ATTACHMENT0$1 + i,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n }\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_DEPTH_STENCIL_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_DEPTH_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n gl2.framebufferTexture2D(\n GL_FRAMEBUFFER$1,\n GL_STENCIL_ATTACHMENT,\n GL_TEXTURE_2D$2,\n null,\n 0\n );\n attach(GL_DEPTH_ATTACHMENT, framebuffer.depthAttachment);\n attach(GL_STENCIL_ATTACHMENT, framebuffer.stencilAttachment);\n attach(GL_DEPTH_STENCIL_ATTACHMENT, framebuffer.depthStencilAttachment);\n var status = gl2.checkFramebufferStatus(GL_FRAMEBUFFER$1);\n if (!gl2.isContextLost() && status !== GL_FRAMEBUFFER_COMPLETE$1) {\n }\n gl2.bindFramebuffer(GL_FRAMEBUFFER$1, framebufferState.next ? framebufferState.next.framebuffer : null);\n framebufferState.cur = framebufferState.next;\n gl2.getError();\n }\n function createFBO(a0, a1) {\n var framebuffer = new REGLFramebuffer();\n stats2.framebufferCount++;\n function reglFramebuffer(a, b) {\n var i;\n var width = 0;\n var height = 0;\n var needsDepth = true;\n var needsStencil = true;\n var colorBuffer = null;\n var colorTexture = true;\n var colorFormat = \"rgba\";\n var colorType = \"uint8\";\n var colorCount = 1;\n var depthBuffer = null;\n var stencilBuffer = null;\n var depthStencilBuffer = null;\n var depthStencilTexture = false;\n if (typeof a === \"number\") {\n width = a | 0;\n height = b | 0 || width;\n } else if (!a) {\n width = height = 1;\n } else {\n var options = a;\n if (\"shape\" in options) {\n var shape = options.shape;\n width = shape[0];\n height = shape[1];\n } else {\n if (\"radius\" in options) {\n width = height = options.radius;\n }\n if (\"width\" in options) {\n width = options.width;\n }\n if (\"height\" in options) {\n height = options.height;\n }\n }\n if (\"color\" in options || \"colors\" in options) {\n colorBuffer = options.color || options.colors;\n if (Array.isArray(colorBuffer)) {\n }\n }\n if (!colorBuffer) {\n if (\"colorCount\" in options) {\n colorCount = options.colorCount | 0;\n }\n if (\"colorTexture\" in options) {\n colorTexture = !!options.colorTexture;\n colorFormat = \"rgba4\";\n }\n if (\"colorType\" in options) {\n colorType = options.colorType;\n if (!colorTexture) {\n if (colorType === \"half float\" || colorType === \"float16\") {\n colorFormat = \"rgba16f\";\n } else if (colorType === \"float\" || colorType === \"float32\") {\n colorFormat = \"rgba32f\";\n }\n } else {\n }\n }\n if (\"colorFormat\" in options) {\n colorFormat = options.colorFormat;\n if (colorTextureFormats.indexOf(colorFormat) >= 0) {\n colorTexture = true;\n } else if (colorRenderbufferFormats.indexOf(colorFormat) >= 0) {\n colorTexture = false;\n } else {\n }\n }\n }\n if (\"depthTexture\" in options || \"depthStencilTexture\" in options) {\n depthStencilTexture = !!(options.depthTexture || options.depthStencilTexture);\n }\n if (\"depth\" in options) {\n if (typeof options.depth === \"boolean\") {\n needsDepth = options.depth;\n } else {\n depthBuffer = options.depth;\n needsStencil = false;\n }\n }\n if (\"stencil\" in options) {\n if (typeof options.stencil === \"boolean\") {\n needsStencil = options.stencil;\n } else {\n stencilBuffer = options.stencil;\n needsDepth = false;\n }\n }\n if (\"depthStencil\" in options) {\n if (typeof options.depthStencil === \"boolean\") {\n needsDepth = needsStencil = options.depthStencil;\n } else {\n depthStencilBuffer = options.depthStencil;\n needsDepth = false;\n needsStencil = false;\n }\n }\n }\n var colorAttachments = null;\n var depthAttachment = null;\n var stencilAttachment = null;\n var depthStencilAttachment = null;\n if (Array.isArray(colorBuffer)) {\n colorAttachments = colorBuffer.map(parseAttachment);\n } else if (colorBuffer) {\n colorAttachments = [parseAttachment(colorBuffer)];\n } else {\n colorAttachments = new Array(colorCount);\n for (i = 0; i < colorCount; ++i) {\n colorAttachments[i] = allocAttachment(\n width,\n height,\n colorTexture,\n colorFormat,\n colorType\n );\n }\n }\n width = width || colorAttachments[0].width;\n height = height || colorAttachments[0].height;\n if (depthBuffer) {\n depthAttachment = parseAttachment(depthBuffer);\n } else if (needsDepth && !needsStencil) {\n depthAttachment = allocAttachment(\n width,\n height,\n depthStencilTexture,\n \"depth\",\n \"uint32\"\n );\n }\n if (stencilBuffer) {\n stencilAttachment = parseAttachment(stencilBuffer);\n } else if (needsStencil && !needsDepth) {\n stencilAttachment = allocAttachment(\n width,\n height,\n false,\n \"stencil\",\n \"uint8\"\n );\n }\n if (depthStencilBuffer) {\n depthStencilAttachment = parseAttachment(depthStencilBuffer);\n } else if (!depthBuffer && !stencilBuffer && needsStencil && needsDepth) {\n depthStencilAttachment = allocAttachment(\n width,\n height,\n depthStencilTexture,\n \"depth stencil\",\n \"depth stencil\"\n );\n }\n var commonColorAttachmentSize = null;\n for (i = 0; i < colorAttachments.length; ++i) {\n incRefAndCheckShape(colorAttachments[i], width, height);\n if (colorAttachments[i] && colorAttachments[i].texture) {\n var colorAttachmentSize = textureFormatChannels[colorAttachments[i].texture._texture.format] * textureTypeSizes[colorAttachments[i].texture._texture.type];\n if (commonColorAttachmentSize === null) {\n commonColorAttachmentSize = colorAttachmentSize;\n } else {\n }\n }\n }\n incRefAndCheckShape(depthAttachment, width, height);\n incRefAndCheckShape(stencilAttachment, width, height);\n incRefAndCheckShape(depthStencilAttachment, width, height);\n decFBORefs(framebuffer);\n framebuffer.width = width;\n framebuffer.height = height;\n framebuffer.colorAttachments = colorAttachments;\n framebuffer.depthAttachment = depthAttachment;\n framebuffer.stencilAttachment = stencilAttachment;\n framebuffer.depthStencilAttachment = depthStencilAttachment;\n reglFramebuffer.color = colorAttachments.map(unwrapAttachment);\n reglFramebuffer.depth = unwrapAttachment(depthAttachment);\n reglFramebuffer.stencil = unwrapAttachment(stencilAttachment);\n reglFramebuffer.depthStencil = unwrapAttachment(depthStencilAttachment);\n reglFramebuffer.width = framebuffer.width;\n reglFramebuffer.height = framebuffer.height;\n updateFramebuffer(framebuffer);\n return reglFramebuffer;\n }\n function resize(w_, h_) {\n var w = Math.max(w_ | 0, 1);\n var h = Math.max(h_ | 0 || w, 1);\n if (w === framebuffer.width && h === framebuffer.height) {\n return reglFramebuffer;\n }\n var colorAttachments = framebuffer.colorAttachments;\n for (var i = 0; i < colorAttachments.length; ++i) {\n resizeAttachment(colorAttachments[i], w, h);\n }\n resizeAttachment(framebuffer.depthAttachment, w, h);\n resizeAttachment(framebuffer.stencilAttachment, w, h);\n resizeAttachment(framebuffer.depthStencilAttachment, w, h);\n framebuffer.width = reglFramebuffer.width = w;\n framebuffer.height = reglFramebuffer.height = h;\n updateFramebuffer(framebuffer);\n return reglFramebuffer;\n }\n reglFramebuffer(a0, a1);\n return extend2(reglFramebuffer, {\n resize,\n _reglType: \"framebuffer\",\n _framebuffer: framebuffer,\n destroy: function() {\n destroy(framebuffer);\n decFBORefs(framebuffer);\n },\n use: function(block) {\n framebufferState.setFBO({\n framebuffer: reglFramebuffer\n }, block);\n }\n });\n }\n function createCubeFBO(options) {\n var faces = Array(6);\n function reglFramebufferCube(a) {\n var i;\n var params = {\n color: null\n };\n var radius = 0;\n var colorBuffer = null;\n var colorFormat = \"rgba\";\n var colorType = \"uint8\";\n var colorCount = 1;\n if (typeof a === \"number\") {\n radius = a | 0;\n } else if (!a) {\n radius = 1;\n } else {\n var options2 = a;\n if (\"shape\" in options2) {\n var shape = options2.shape;\n radius = shape[0];\n } else {\n if (\"radius\" in options2) {\n radius = options2.radius | 0;\n }\n if (\"width\" in options2) {\n radius = options2.width | 0;\n if (\"height\" in options2) {\n }\n } else if (\"height\" in options2) {\n radius = options2.height | 0;\n }\n }\n if (\"color\" in options2 || \"colors\" in options2) {\n colorBuffer = options2.color || options2.colors;\n if (Array.isArray(colorBuffer)) {\n }\n }\n if (!colorBuffer) {\n if (\"colorCount\" in options2) {\n colorCount = options2.colorCount | 0;\n }\n if (\"colorType\" in options2) {\n colorType = options2.colorType;\n }\n if (\"colorFormat\" in options2) {\n colorFormat = options2.colorFormat;\n }\n }\n if (\"depth\" in options2) {\n params.depth = options2.depth;\n }\n if (\"stencil\" in options2) {\n params.stencil = options2.stencil;\n }\n if (\"depthStencil\" in options2) {\n params.depthStencil = options2.depthStencil;\n }\n }\n var colorCubes;\n if (colorBuffer) {\n if (Array.isArray(colorBuffer)) {\n colorCubes = [];\n for (i = 0; i < colorBuffer.length; ++i) {\n colorCubes[i] = colorBuffer[i];\n }\n } else {\n colorCubes = [colorBuffer];\n }\n } else {\n colorCubes = Array(colorCount);\n var cubeMapParams = {\n radius,\n format: colorFormat,\n type: colorType\n };\n for (i = 0; i < colorCount; ++i) {\n colorCubes[i] = textureState.createCube(cubeMapParams);\n }\n }\n params.color = Array(colorCubes.length);\n for (i = 0; i < colorCubes.length; ++i) {\n var cube = colorCubes[i];\n radius = radius || cube.width;\n params.color[i] = {\n target: GL_TEXTURE_CUBE_MAP_POSITIVE_X$2,\n data: colorCubes[i]\n };\n }\n for (i = 0; i < 6; ++i) {\n for (var j = 0; j < colorCubes.length; ++j) {\n params.color[j].target = GL_TEXTURE_CUBE_MAP_POSITIVE_X$2 + i;\n }\n if (i > 0) {\n params.depth = faces[0].depth;\n params.stencil = faces[0].stencil;\n params.depthStencil = faces[0].depthStencil;\n }\n if (faces[i]) {\n faces[i](params);\n } else {\n faces[i] = createFBO(params);\n }\n }\n return extend2(reglFramebufferCube, {\n width: radius,\n height: radius,\n color: colorCubes\n });\n }\n function resize(radius_) {\n var i;\n var radius = radius_ | 0;\n if (radius === reglFramebufferCube.width) {\n return reglFramebufferCube;\n }\n var colors = reglFramebufferCube.color;\n for (i = 0; i < colors.length; ++i) {\n colors[i].resize(radius);\n }\n for (i = 0; i < 6; ++i) {\n faces[i].resize(radius);\n }\n reglFramebufferCube.width = reglFramebufferCube.height = radius;\n return reglFramebufferCube;\n }\n reglFramebufferCube(options);\n return extend2(reglFramebufferCube, {\n faces,\n resize,\n _reglType: \"framebufferCube\",\n destroy: function() {\n faces.forEach(function(f) {\n f.destroy();\n });\n }\n });\n }\n function restoreFramebuffers() {\n framebufferState.cur = null;\n framebufferState.next = null;\n framebufferState.dirty = true;\n values(framebufferSet).forEach(function(fb) {\n fb.framebuffer = gl2.createFramebuffer();\n updateFramebuffer(fb);\n });\n }\n return extend2(framebufferState, {\n getFramebuffer: function(object) {\n if (typeof object === \"function\" && object._reglType === \"framebuffer\") {\n var fbo = object._framebuffer;\n if (fbo instanceof REGLFramebuffer) {\n return fbo;\n }\n }\n return null;\n },\n create: createFBO,\n createCube: createCubeFBO,\n clear: function() {\n values(framebufferSet).forEach(destroy);\n },\n restore: restoreFramebuffers\n });\n }\n var GL_FLOAT$5 = 5126;\n var GL_ARRAY_BUFFER$1 = 34962;\n var GL_ELEMENT_ARRAY_BUFFER$1 = 34963;\n function AttributeRecord() {\n this.state = 0;\n this.x = 0;\n this.y = 0;\n this.z = 0;\n this.w = 0;\n this.buffer = null;\n this.size = 0;\n this.normalized = false;\n this.type = GL_FLOAT$5;\n this.offset = 0;\n this.stride = 0;\n this.divisor = 0;\n }\n function wrapAttributeState(gl2, extensions, limits, stats2, bufferState, elementState, drawState) {\n var NUM_ATTRIBUTES = limits.maxAttributes;\n var attributeBindings = new Array(NUM_ATTRIBUTES);\n for (var i = 0; i < NUM_ATTRIBUTES; ++i) {\n attributeBindings[i] = new AttributeRecord();\n }\n var vaoCount = 0;\n var vaoSet = {};\n var state = {\n Record: AttributeRecord,\n scope: {},\n state: attributeBindings,\n currentVAO: null,\n targetVAO: null,\n restore: extVAO() ? restoreVAO : function() {\n },\n createVAO,\n getVAO,\n destroyBuffer,\n setVAO: extVAO() ? setVAOEXT : setVAOEmulated,\n clear: extVAO() ? destroyVAOEXT : function() {\n }\n };\n function destroyBuffer(buffer) {\n for (var i2 = 0; i2 < attributeBindings.length; ++i2) {\n var record = attributeBindings[i2];\n if (record.buffer === buffer) {\n gl2.disableVertexAttribArray(i2);\n record.buffer = null;\n }\n }\n }\n function extVAO() {\n return extensions.oes_vertex_array_object;\n }\n function extInstanced() {\n return extensions.angle_instanced_arrays;\n }\n function getVAO(vao) {\n if (typeof vao === \"function\" && vao._vao) {\n return vao._vao;\n }\n return null;\n }\n function setVAOEXT(vao) {\n if (vao === state.currentVAO) {\n return;\n }\n var ext = extVAO();\n if (vao) {\n ext.bindVertexArrayOES(vao.vao);\n } else {\n ext.bindVertexArrayOES(null);\n }\n state.currentVAO = vao;\n }\n function setVAOEmulated(vao) {\n if (vao === state.currentVAO) {\n return;\n }\n if (vao) {\n vao.bindAttrs();\n } else {\n var exti = extInstanced();\n for (var i2 = 0; i2 < attributeBindings.length; ++i2) {\n var binding = attributeBindings[i2];\n if (binding.buffer) {\n gl2.enableVertexAttribArray(i2);\n binding.buffer.bind();\n gl2.vertexAttribPointer(i2, binding.size, binding.type, binding.normalized, binding.stride, binding.offfset);\n if (exti && binding.divisor) {\n exti.vertexAttribDivisorANGLE(i2, binding.divisor);\n }\n } else {\n gl2.disableVertexAttribArray(i2);\n gl2.vertexAttrib4f(i2, binding.x, binding.y, binding.z, binding.w);\n }\n }\n if (drawState.elements) {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, drawState.elements.buffer.buffer);\n } else {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, null);\n }\n }\n state.currentVAO = vao;\n }\n function destroyVAOEXT() {\n values(vaoSet).forEach(function(vao) {\n vao.destroy();\n });\n }\n function REGLVAO() {\n this.id = ++vaoCount;\n this.attributes = [];\n this.elements = null;\n this.ownsElements = false;\n this.count = 0;\n this.offset = 0;\n this.instances = -1;\n this.primitive = 4;\n var extension = extVAO();\n if (extension) {\n this.vao = extension.createVertexArrayOES();\n } else {\n this.vao = null;\n }\n vaoSet[this.id] = this;\n this.buffers = [];\n }\n REGLVAO.prototype.bindAttrs = function() {\n var exti = extInstanced();\n var attributes = this.attributes;\n for (var i2 = 0; i2 < attributes.length; ++i2) {\n var attr = attributes[i2];\n if (attr.buffer) {\n gl2.enableVertexAttribArray(i2);\n gl2.bindBuffer(GL_ARRAY_BUFFER$1, attr.buffer.buffer);\n gl2.vertexAttribPointer(i2, attr.size, attr.type, attr.normalized, attr.stride, attr.offset);\n if (exti && attr.divisor) {\n exti.vertexAttribDivisorANGLE(i2, attr.divisor);\n }\n } else {\n gl2.disableVertexAttribArray(i2);\n gl2.vertexAttrib4f(i2, attr.x, attr.y, attr.z, attr.w);\n }\n }\n for (var j = attributes.length; j < NUM_ATTRIBUTES; ++j) {\n gl2.disableVertexAttribArray(j);\n }\n var elements = elementState.getElements(this.elements);\n if (elements) {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, elements.buffer.buffer);\n } else {\n gl2.bindBuffer(GL_ELEMENT_ARRAY_BUFFER$1, null);\n }\n };\n REGLVAO.prototype.refresh = function() {\n var ext = extVAO();\n if (ext) {\n ext.bindVertexArrayOES(this.vao);\n this.bindAttrs();\n state.currentVAO = null;\n ext.bindVertexArrayOES(null);\n }\n };\n REGLVAO.prototype.destroy = function() {\n if (this.vao) {\n var extension = extVAO();\n if (this === state.currentVAO) {\n state.currentVAO = null;\n extension.bindVertexArrayOES(null);\n }\n extension.deleteVertexArrayOES(this.vao);\n this.vao = null;\n }\n if (this.ownsElements) {\n this.elements.destroy();\n this.elements = null;\n this.ownsElements = false;\n }\n if (vaoSet[this.id]) {\n delete vaoSet[this.id];\n stats2.vaoCount -= 1;\n }\n };\n function restoreVAO() {\n var ext = extVAO();\n if (ext) {\n values(vaoSet).forEach(function(vao) {\n vao.refresh();\n });\n }\n }\n function createVAO(_attr) {\n var vao = new REGLVAO();\n stats2.vaoCount += 1;\n function updateVAO(options) {\n var attributes;\n if (Array.isArray(options)) {\n attributes = options;\n if (vao.elements && vao.ownsElements) {\n vao.elements.destroy();\n }\n vao.elements = null;\n vao.ownsElements = false;\n vao.offset = 0;\n vao.count = 0;\n vao.instances = -1;\n vao.primitive = 4;\n } else {\n if (options.elements) {\n var elements = options.elements;\n if (vao.ownsElements) {\n if (typeof elements === \"function\" && elements._reglType === \"elements\") {\n vao.elements.destroy();\n vao.ownsElements = false;\n } else {\n vao.elements(elements);\n vao.ownsElements = false;\n }\n } else if (elementState.getElements(options.elements)) {\n vao.elements = options.elements;\n vao.ownsElements = false;\n } else {\n vao.elements = elementState.create(options.elements);\n vao.ownsElements = true;\n }\n } else {\n vao.elements = null;\n vao.ownsElements = false;\n }\n attributes = options.attributes;\n vao.offset = 0;\n vao.count = -1;\n vao.instances = -1;\n vao.primitive = 4;\n if (vao.elements) {\n vao.count = vao.elements._elements.vertCount;\n vao.primitive = vao.elements._elements.primType;\n }\n if (\"offset\" in options) {\n vao.offset = options.offset | 0;\n }\n if (\"count\" in options) {\n vao.count = options.count | 0;\n }\n if (\"instances\" in options) {\n vao.instances = options.instances | 0;\n }\n if (\"primitive\" in options) {\n vao.primitive = primTypes[options.primitive];\n }\n }\n var bufUpdated = {};\n var nattributes = vao.attributes;\n nattributes.length = attributes.length;\n for (var i2 = 0; i2 < attributes.length; ++i2) {\n var spec = attributes[i2];\n var rec = nattributes[i2] = new AttributeRecord();\n var data = spec.data || spec;\n if (Array.isArray(data) || isTypedArray(data) || isNDArrayLike(data)) {\n var buf;\n if (vao.buffers[i2]) {\n buf = vao.buffers[i2];\n if (isTypedArray(data) && buf._buffer.byteLength >= data.byteLength) {\n buf.subdata(data);\n } else {\n buf.destroy();\n vao.buffers[i2] = null;\n }\n }\n if (!vao.buffers[i2]) {\n buf = vao.buffers[i2] = bufferState.create(spec, GL_ARRAY_BUFFER$1, false, true);\n }\n rec.buffer = bufferState.getBuffer(buf);\n rec.size = rec.buffer.dimension | 0;\n rec.normalized = false;\n rec.type = rec.buffer.dtype;\n rec.offset = 0;\n rec.stride = 0;\n rec.divisor = 0;\n rec.state = 1;\n bufUpdated[i2] = 1;\n } else if (bufferState.getBuffer(spec)) {\n rec.buffer = bufferState.getBuffer(spec);\n rec.size = rec.buffer.dimension | 0;\n rec.normalized = false;\n rec.type = rec.buffer.dtype;\n rec.offset = 0;\n rec.stride = 0;\n rec.divisor = 0;\n rec.state = 1;\n } else if (bufferState.getBuffer(spec.buffer)) {\n rec.buffer = bufferState.getBuffer(spec.buffer);\n rec.size = (+spec.size || rec.buffer.dimension) | 0;\n rec.normalized = !!spec.normalized || false;\n if (\"type\" in spec) {\n rec.type = glTypes[spec.type];\n } else {\n rec.type = rec.buffer.dtype;\n }\n rec.offset = (spec.offset || 0) | 0;\n rec.stride = (spec.stride || 0) | 0;\n rec.divisor = (spec.divisor || 0) | 0;\n rec.state = 1;\n } else if (\"x\" in spec) {\n rec.x = +spec.x || 0;\n rec.y = +spec.y || 0;\n rec.z = +spec.z || 0;\n rec.w = +spec.w || 0;\n rec.state = 2;\n } else {\n }\n }\n for (var j = 0; j < vao.buffers.length; ++j) {\n if (!bufUpdated[j] && vao.buffers[j]) {\n vao.buffers[j].destroy();\n vao.buffers[j] = null;\n }\n }\n vao.refresh();\n return updateVAO;\n }\n updateVAO.destroy = function() {\n for (var j = 0; j < vao.buffers.length; ++j) {\n if (vao.buffers[j]) {\n vao.buffers[j].destroy();\n }\n }\n vao.buffers.length = 0;\n if (vao.ownsElements) {\n vao.elements.destroy();\n vao.elements = null;\n vao.ownsElements = false;\n }\n vao.destroy();\n };\n updateVAO._vao = vao;\n updateVAO._reglType = \"vao\";\n return updateVAO(_attr);\n }\n return state;\n }\n var GL_FRAGMENT_SHADER = 35632;\n var GL_VERTEX_SHADER = 35633;\n var GL_ACTIVE_UNIFORMS = 35718;\n var GL_ACTIVE_ATTRIBUTES = 35721;\n function wrapShaderState(gl2, stringStore, stats2, config) {\n var fragShaders = {};\n var vertShaders = {};\n function ActiveInfo(name2, id, location2, info) {\n this.name = name2;\n this.id = id;\n this.location = location2;\n this.info = info;\n }\n function insertActiveInfo(list, info) {\n for (var i = 0; i < list.length; ++i) {\n if (list[i].id === info.id) {\n list[i].location = info.location;\n return;\n }\n }\n list.push(info);\n }\n function getShader(type, id, command) {\n var cache = type === GL_FRAGMENT_SHADER ? fragShaders : vertShaders;\n var shader = cache[id];\n if (!shader) {\n var source = stringStore.str(id);\n shader = gl2.createShader(type);\n gl2.shaderSource(shader, source);\n gl2.compileShader(shader);\n cache[id] = shader;\n }\n return shader;\n }\n var programCache = {};\n var programList = [];\n var PROGRAM_COUNTER = 0;\n function REGLProgram(fragId, vertId) {\n this.id = PROGRAM_COUNTER++;\n this.fragId = fragId;\n this.vertId = vertId;\n this.program = null;\n this.uniforms = [];\n this.attributes = [];\n this.refCount = 1;\n if (config.profile) {\n this.stats = {\n uniformsCount: 0,\n attributesCount: 0\n };\n }\n }\n function linkProgram(desc, command, attributeLocations) {\n var i, info;\n var fragShader = getShader(GL_FRAGMENT_SHADER, desc.fragId);\n var vertShader = getShader(GL_VERTEX_SHADER, desc.vertId);\n var program = desc.program = gl2.createProgram();\n gl2.attachShader(program, fragShader);\n gl2.attachShader(program, vertShader);\n if (attributeLocations) {\n for (i = 0; i < attributeLocations.length; ++i) {\n var binding = attributeLocations[i];\n gl2.bindAttribLocation(program, binding[0], binding[1]);\n }\n }\n gl2.linkProgram(program);\n var numUniforms = gl2.getProgramParameter(program, GL_ACTIVE_UNIFORMS);\n if (config.profile) {\n desc.stats.uniformsCount = numUniforms;\n }\n var uniforms = desc.uniforms;\n for (i = 0; i < numUniforms; ++i) {\n info = gl2.getActiveUniform(program, i);\n if (info) {\n if (info.size > 1) {\n for (var j = 0; j < info.size; ++j) {\n var name2 = info.name.replace(\"[0]\", \"[\" + j + \"]\");\n insertActiveInfo(uniforms, new ActiveInfo(\n name2,\n stringStore.id(name2),\n gl2.getUniformLocation(program, name2),\n info\n ));\n }\n } else {\n insertActiveInfo(uniforms, new ActiveInfo(\n info.name,\n stringStore.id(info.name),\n gl2.getUniformLocation(program, info.name),\n info\n ));\n }\n }\n }\n var numAttributes = gl2.getProgramParameter(program, GL_ACTIVE_ATTRIBUTES);\n if (config.profile) {\n desc.stats.attributesCount = numAttributes;\n }\n var attributes = desc.attributes;\n for (i = 0; i < numAttributes; ++i) {\n info = gl2.getActiveAttrib(program, i);\n if (info) {\n insertActiveInfo(attributes, new ActiveInfo(\n info.name,\n stringStore.id(info.name),\n gl2.getAttribLocation(program, info.name),\n info\n ));\n }\n }\n }\n if (config.profile) {\n stats2.getMaxUniformsCount = function() {\n var m = 0;\n programList.forEach(function(desc) {\n if (desc.stats.uniformsCount > m) {\n m = desc.stats.uniformsCount;\n }\n });\n return m;\n };\n stats2.getMaxAttributesCount = function() {\n var m = 0;\n programList.forEach(function(desc) {\n if (desc.stats.attributesCount > m) {\n m = desc.stats.attributesCount;\n }\n });\n return m;\n };\n }\n function restoreShaders() {\n fragShaders = {};\n vertShaders = {};\n for (var i = 0; i < programList.length; ++i) {\n linkProgram(programList[i], null, programList[i].attributes.map(function(info) {\n return [info.location, info.name];\n }));\n }\n }\n return {\n clear: function() {\n var deleteShader = gl2.deleteShader.bind(gl2);\n values(fragShaders).forEach(deleteShader);\n fragShaders = {};\n values(vertShaders).forEach(deleteShader);\n vertShaders = {};\n programList.forEach(function(desc) {\n gl2.deleteProgram(desc.program);\n });\n programList.length = 0;\n programCache = {};\n stats2.shaderCount = 0;\n },\n program: function(vertId, fragId, command, attribLocations) {\n var cache = programCache[fragId];\n if (!cache) {\n cache = programCache[fragId] = {};\n }\n var prevProgram = cache[vertId];\n if (prevProgram) {\n prevProgram.refCount++;\n if (!attribLocations) {\n return prevProgram;\n }\n }\n var program = new REGLProgram(fragId, vertId);\n stats2.shaderCount++;\n linkProgram(program, command, attribLocations);\n if (!prevProgram) {\n cache[vertId] = program;\n }\n programList.push(program);\n return extend2(program, {\n destroy: function() {\n program.refCount--;\n if (program.refCount <= 0) {\n gl2.deleteProgram(program.program);\n var idx = programList.indexOf(program);\n programList.splice(idx, 1);\n stats2.shaderCount--;\n }\n if (cache[program.vertId].refCount <= 0) {\n gl2.deleteShader(vertShaders[program.vertId]);\n delete vertShaders[program.vertId];\n delete programCache[program.fragId][program.vertId];\n }\n if (!Object.keys(programCache[program.fragId]).length) {\n gl2.deleteShader(fragShaders[program.fragId]);\n delete fragShaders[program.fragId];\n delete programCache[program.fragId];\n }\n }\n });\n },\n restore: restoreShaders,\n shader: getShader,\n frag: -1,\n vert: -1\n };\n }\n var GL_RGBA$3 = 6408;\n var GL_UNSIGNED_BYTE$6 = 5121;\n var GL_PACK_ALIGNMENT = 3333;\n var GL_FLOAT$6 = 5126;\n function wrapReadPixels(gl2, framebufferState, reglPoll, context, glAttributes, extensions, limits) {\n function readPixelsImpl(input) {\n var type;\n if (framebufferState.next === null) {\n type = GL_UNSIGNED_BYTE$6;\n } else {\n type = framebufferState.next.colorAttachments[0].texture._texture.type;\n }\n var x = 0;\n var y = 0;\n var width = context.framebufferWidth;\n var height = context.framebufferHeight;\n var data = null;\n if (isTypedArray(input)) {\n data = input;\n } else if (input) {\n x = input.x | 0;\n y = input.y | 0;\n width = (input.width || context.framebufferWidth - x) | 0;\n height = (input.height || context.framebufferHeight - y) | 0;\n data = input.data || null;\n }\n if (data) {\n if (type === GL_UNSIGNED_BYTE$6) {\n } else if (type === GL_FLOAT$6) {\n }\n }\n reglPoll();\n var size = width * height * 4;\n if (!data) {\n if (type === GL_UNSIGNED_BYTE$6) {\n data = new Uint8Array(size);\n } else if (type === GL_FLOAT$6) {\n data = data || new Float32Array(size);\n }\n }\n gl2.pixelStorei(GL_PACK_ALIGNMENT, 4);\n gl2.readPixels(\n x,\n y,\n width,\n height,\n GL_RGBA$3,\n type,\n data\n );\n return data;\n }\n function readPixelsFBO(options) {\n var result;\n framebufferState.setFBO({\n framebuffer: options.framebuffer\n }, function() {\n result = readPixelsImpl(options);\n });\n return result;\n }\n function readPixels(options) {\n if (!options || !(\"framebuffer\" in options)) {\n return readPixelsImpl(options);\n } else {\n return readPixelsFBO(options);\n }\n }\n return readPixels;\n }\n var hexcase = 0;\n var b64pad = \"\";\n function hex_sha256(s) {\n return rstr2hex(rstr_sha256(str2rstr_utf8(s)));\n }\n function rstr_sha256(s) {\n return binb2rstr(binb_sha256(rstr2binb(s), s.length * 8));\n }\n function rstr_hmac_sha256(key, data) {\n var bkey = rstr2binb(key);\n if (bkey.length > 16) bkey = binb_sha256(bkey, key.length * 8);\n var ipad = Array(16), opad = Array(16);\n for (var i = 0; i < 16; i++) {\n ipad[i] = bkey[i] ^ 909522486;\n opad[i] = bkey[i] ^ 1549556828;\n }\n var hash = binb_sha256(ipad.concat(rstr2binb(data)), 512 + data.length * 8);\n return binb2rstr(binb_sha256(opad.concat(hash), 512 + 256));\n }\n function rstr2hex(input) {\n var hex_tab = hexcase ? \"0123456789ABCDEF\" : \"0123456789abcdef\";\n var output = \"\";\n var x;\n for (var i = 0; i < input.length; i++) {\n x = input.charCodeAt(i);\n output += hex_tab.charAt(x >>> 4 & 15) + hex_tab.charAt(x & 15);\n }\n return output;\n }\n function rstr2b64(input) {\n var tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var output = \"\";\n var len = input.length;\n for (var i = 0; i < len; i += 3) {\n var triplet = input.charCodeAt(i) << 16 | (i + 1 < len ? input.charCodeAt(i + 1) << 8 : 0) | (i + 2 < len ? input.charCodeAt(i + 2) : 0);\n for (var j = 0; j < 4; j++) {\n if (i * 8 + j * 6 > input.length * 8) output += b64pad;\n else output += tab.charAt(triplet >>> 6 * (3 - j) & 63);\n }\n }\n return output;\n }\n function rstr2any(input, encoding) {\n var divisor = encoding.length;\n var remainders = Array();\n var i, q, x, quotient;\n var dividend = Array(Math.ceil(input.length / 2));\n for (i = 0; i < dividend.length; i++) {\n dividend[i] = input.charCodeAt(i * 2) << 8 | input.charCodeAt(i * 2 + 1);\n }\n while (dividend.length > 0) {\n quotient = Array();\n x = 0;\n for (i = 0; i < dividend.length; i++) {\n x = (x << 16) + dividend[i];\n q = Math.floor(x / divisor);\n x -= q * divisor;\n if (quotient.length > 0 || q > 0)\n quotient[quotient.length] = q;\n }\n remainders[remainders.length] = x;\n dividend = quotient;\n }\n var output = \"\";\n for (i = remainders.length - 1; i >= 0; i--)\n output += encoding.charAt(remainders[i]);\n var full_length = Math.ceil(input.length * 8 / (Math.log(encoding.length) / Math.log(2)));\n for (i = output.length; i < full_length; i++)\n output = encoding[0] + output;\n return output;\n }\n function str2rstr_utf8(input) {\n var output = \"\";\n var i = -1;\n var x, y;\n while (++i < input.length) {\n x = input.charCodeAt(i);\n y = i + 1 < input.length ? input.charCodeAt(i + 1) : 0;\n if (55296 <= x && x <= 56319 && 56320 <= y && y <= 57343) {\n x = 65536 + ((x & 1023) << 10) + (y & 1023);\n i++;\n }\n if (x <= 127)\n output += String.fromCharCode(x);\n else if (x <= 2047)\n output += String.fromCharCode(\n 192 | x >>> 6 & 31,\n 128 | x & 63\n );\n else if (x <= 65535)\n output += String.fromCharCode(\n 224 | x >>> 12 & 15,\n 128 | x >>> 6 & 63,\n 128 | x & 63\n );\n else if (x <= 2097151)\n output += String.fromCharCode(\n 240 | x >>> 18 & 7,\n 128 | x >>> 12 & 63,\n 128 | x >>> 6 & 63,\n 128 | x & 63\n );\n }\n return output;\n }\n function rstr2binb(input) {\n var output = Array(input.length >> 2);\n for (var i = 0; i < output.length; i++)\n output[i] = 0;\n for (var i = 0; i < input.length * 8; i += 8)\n output[i >> 5] |= (input.charCodeAt(i / 8) & 255) << 24 - i % 32;\n return output;\n }\n function binb2rstr(input) {\n var output = \"\";\n for (var i = 0; i < input.length * 32; i += 8)\n output += String.fromCharCode(input[i >> 5] >>> 24 - i % 32 & 255);\n return output;\n }\n function sha256_S(X, n) {\n return X >>> n | X << 32 - n;\n }\n function sha256_R(X, n) {\n return X >>> n;\n }\n function sha256_Ch(x, y, z) {\n return x & y ^ ~x & z;\n }\n function sha256_Maj(x, y, z) {\n return x & y ^ x & z ^ y & z;\n }\n function sha256_Sigma0256(x) {\n return sha256_S(x, 2) ^ sha256_S(x, 13) ^ sha256_S(x, 22);\n }\n function sha256_Sigma1256(x) {\n return sha256_S(x, 6) ^ sha256_S(x, 11) ^ sha256_S(x, 25);\n }\n function sha256_Gamma0256(x) {\n return sha256_S(x, 7) ^ sha256_S(x, 18) ^ sha256_R(x, 3);\n }\n function sha256_Gamma1256(x) {\n return sha256_S(x, 17) ^ sha256_S(x, 19) ^ sha256_R(x, 10);\n }\n var sha256_K = new Array(\n 1116352408,\n 1899447441,\n -1245643825,\n -373957723,\n 961987163,\n 1508970993,\n -1841331548,\n -1424204075,\n -670586216,\n 310598401,\n 607225278,\n 1426881987,\n 1925078388,\n -2132889090,\n -1680079193,\n -1046744716,\n -459576895,\n -272742522,\n 264347078,\n 604807628,\n 770255983,\n 1249150122,\n 1555081692,\n 1996064986,\n -1740746414,\n -1473132947,\n -1341970488,\n -1084653625,\n -958395405,\n -710438585,\n 113926993,\n 338241895,\n 666307205,\n 773529912,\n 1294757372,\n 1396182291,\n 1695183700,\n 1986661051,\n -2117940946,\n -1838011259,\n -1564481375,\n -1474664885,\n -1035236496,\n -949202525,\n -778901479,\n -694614492,\n -200395387,\n 275423344,\n 430227734,\n 506948616,\n 659060556,\n 883997877,\n 958139571,\n 1322822218,\n 1537002063,\n 1747873779,\n 1955562222,\n 2024104815,\n -2067236844,\n -1933114872,\n -1866530822,\n -1538233109,\n -1090935817,\n -965641998\n );\n function binb_sha256(m, l) {\n var HASH = new Array(\n 1779033703,\n -1150833019,\n 1013904242,\n -1521486534,\n 1359893119,\n -1694144372,\n 528734635,\n 1541459225\n );\n var W = new Array(64);\n var a, b, c, d, e, f, g, h;\n var i, j, T1, T2;\n m[l >> 5] |= 128 << 24 - l % 32;\n m[(l + 64 >> 9 << 4) + 15] = l;\n for (i = 0; i < m.length; i += 16) {\n a = HASH[0];\n b = HASH[1];\n c = HASH[2];\n d = HASH[3];\n e = HASH[4];\n f = HASH[5];\n g = HASH[6];\n h = HASH[7];\n for (j = 0; j < 64; j++) {\n if (j < 16) W[j] = m[j + i];\n else W[j] = safe_add(safe_add(\n safe_add(sha256_Gamma1256(W[j - 2]), W[j - 7]),\n sha256_Gamma0256(W[j - 15])\n ), W[j - 16]);\n T1 = safe_add(safe_add(\n safe_add(safe_add(h, sha256_Sigma1256(e)), sha256_Ch(e, f, g)),\n sha256_K[j]\n ), W[j]);\n T2 = safe_add(sha256_Sigma0256(a), sha256_Maj(a, b, c));\n h = g;\n g = f;\n f = e;\n e = safe_add(d, T1);\n d = c;\n c = b;\n b = a;\n a = safe_add(T1, T2);\n }\n HASH[0] = safe_add(a, HASH[0]);\n HASH[1] = safe_add(b, HASH[1]);\n HASH[2] = safe_add(c, HASH[2]);\n HASH[3] = safe_add(d, HASH[3]);\n HASH[4] = safe_add(e, HASH[4]);\n HASH[5] = safe_add(f, HASH[5]);\n HASH[6] = safe_add(g, HASH[6]);\n HASH[7] = safe_add(h, HASH[7]);\n }\n return HASH;\n }\n function safe_add(x, y) {\n var lsw = (x & 65535) + (y & 65535);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 65535;\n }\n function slice(x) {\n return Array.prototype.slice.call(x);\n }\n function join(x) {\n return slice(x).join(\"\");\n }\n function createEnvironment(options) {\n var cache = options && options.cache;\n var varCounter = 0;\n var linkedNames = [];\n var linkedValues = [];\n var isStable = [];\n function link(value, options2) {\n var stable = options2 && options2.stable;\n if (!stable) {\n for (var i = 0; i < linkedValues.length; ++i) {\n if (linkedValues[i] === value && !isStable[i]) {\n return linkedNames[i];\n }\n }\n }\n var name2 = \"g\" + varCounter++;\n linkedNames.push(name2);\n linkedValues.push(value);\n isStable.push(stable);\n return name2;\n }\n function block() {\n var code = [];\n function push() {\n code.push.apply(code, slice(arguments));\n }\n var vars = [];\n function def() {\n var name2 = \"v\" + varCounter++;\n vars.push(name2);\n if (arguments.length > 0) {\n code.push(name2, \"=\");\n code.push.apply(code, slice(arguments));\n code.push(\";\");\n }\n return name2;\n }\n return extend2(push, {\n def,\n toString: function() {\n return join([\n vars.length > 0 ? \"var \" + vars.join(\",\") + \";\" : \"\",\n join(code)\n ]);\n }\n });\n }\n function scope() {\n var entry = block();\n var exit = block();\n var entryToString = entry.toString;\n var exitToString = exit.toString;\n function save(object, prop) {\n exit(object, prop, \"=\", entry.def(object, prop), \";\");\n }\n return extend2(function() {\n entry.apply(entry, slice(arguments));\n }, {\n def: entry.def,\n entry,\n exit,\n save,\n set: function(object, prop, value) {\n save(object, prop);\n entry(object, prop, \"=\", value, \";\");\n },\n toString: function() {\n return entryToString() + exitToString();\n }\n });\n }\n function conditional() {\n var pred = join(arguments);\n var thenBlock = scope();\n var elseBlock = scope();\n var thenToString = thenBlock.toString;\n var elseToString = elseBlock.toString;\n return extend2(thenBlock, {\n then: function() {\n thenBlock.apply(thenBlock, slice(arguments));\n return this;\n },\n else: function() {\n elseBlock.apply(elseBlock, slice(arguments));\n return this;\n },\n toString: function() {\n var elseClause = elseToString();\n if (elseClause) {\n elseClause = \"else{\" + elseClause + \"}\";\n }\n return join([\n \"if(\",\n pred,\n \"){\",\n thenToString(),\n \"}\",\n elseClause\n ]);\n }\n });\n }\n var globalBlock = block();\n var procedures = {};\n function proc(name2, count) {\n var args = [];\n function arg() {\n var name3 = \"a\" + args.length;\n args.push(name3);\n return name3;\n }\n count = count || 0;\n for (var i = 0; i < count; ++i) {\n arg();\n }\n var body = scope();\n var bodyToString = body.toString;\n var result = procedures[name2] = extend2(body, {\n arg,\n toString: function() {\n return join([\n \"function(\",\n args.join(),\n \"){\",\n bodyToString(),\n \"}\"\n ]);\n }\n });\n return result;\n }\n function compile() {\n var code = [\n '\"use strict\";',\n globalBlock,\n \"return {\"\n ];\n Object.keys(procedures).forEach(function(name2) {\n code.push('\"', name2, '\":', procedures[name2].toString(), \",\");\n });\n code.push(\"}\");\n var src = join(code).replace(/;/g, \";\\n\").replace(/}/g, \"}\\n\").replace(/{/g, \"{\\n\");\n var key;\n if (cache) {\n key = hex_sha256(src);\n if (cache[key]) {\n return cache[key].apply(null, linkedValues);\n }\n }\n var proc2 = Function.apply(null, linkedNames.concat(src));\n if (cache) {\n cache[key] = proc2;\n }\n return proc2.apply(null, linkedValues);\n }\n return {\n global: globalBlock,\n link,\n block,\n proc,\n scope,\n cond: conditional,\n compile\n };\n }\n var CUTE_COMPONENTS = \"xyzw\".split(\"\");\n var GL_UNSIGNED_BYTE$7 = 5121;\n var ATTRIB_STATE_POINTER = 1;\n var ATTRIB_STATE_CONSTANT = 2;\n var DYN_FUNC$1 = 0;\n var DYN_PROP$1 = 1;\n var DYN_CONTEXT$1 = 2;\n var DYN_STATE$1 = 3;\n var DYN_THUNK = 4;\n var DYN_CONSTANT$1 = 5;\n var DYN_ARRAY$1 = 6;\n var S_DITHER = \"dither\";\n var S_BLEND_ENABLE = \"blend.enable\";\n var S_BLEND_COLOR = \"blend.color\";\n var S_BLEND_EQUATION = \"blend.equation\";\n var S_BLEND_FUNC = \"blend.func\";\n var S_DEPTH_ENABLE = \"depth.enable\";\n var S_DEPTH_FUNC = \"depth.func\";\n var S_DEPTH_RANGE = \"depth.range\";\n var S_DEPTH_MASK = \"depth.mask\";\n var S_COLOR_MASK = \"colorMask\";\n var S_CULL_ENABLE = \"cull.enable\";\n var S_CULL_FACE = \"cull.face\";\n var S_FRONT_FACE = \"frontFace\";\n var S_LINE_WIDTH = \"lineWidth\";\n var S_POLYGON_OFFSET_ENABLE = \"polygonOffset.enable\";\n var S_POLYGON_OFFSET_OFFSET = \"polygonOffset.offset\";\n var S_SAMPLE_ALPHA = \"sample.alpha\";\n var S_SAMPLE_ENABLE = \"sample.enable\";\n var S_SAMPLE_COVERAGE = \"sample.coverage\";\n var S_STENCIL_ENABLE = \"stencil.enable\";\n var S_STENCIL_MASK = \"stencil.mask\";\n var S_STENCIL_FUNC = \"stencil.func\";\n var S_STENCIL_OPFRONT = \"stencil.opFront\";\n var S_STENCIL_OPBACK = \"stencil.opBack\";\n var S_SCISSOR_ENABLE = \"scissor.enable\";\n var S_SCISSOR_BOX = \"scissor.box\";\n var S_VIEWPORT = \"viewport\";\n var S_PROFILE = \"profile\";\n var S_FRAMEBUFFER = \"framebuffer\";\n var S_VERT = \"vert\";\n var S_FRAG = \"frag\";\n var S_ELEMENTS = \"elements\";\n var S_PRIMITIVE = \"primitive\";\n var S_COUNT = \"count\";\n var S_OFFSET = \"offset\";\n var S_INSTANCES = \"instances\";\n var S_VAO = \"vao\";\n var SUFFIX_WIDTH = \"Width\";\n var SUFFIX_HEIGHT = \"Height\";\n var S_FRAMEBUFFER_WIDTH = S_FRAMEBUFFER + SUFFIX_WIDTH;\n var S_FRAMEBUFFER_HEIGHT = S_FRAMEBUFFER + SUFFIX_HEIGHT;\n var S_VIEWPORT_WIDTH = S_VIEWPORT + SUFFIX_WIDTH;\n var S_VIEWPORT_HEIGHT = S_VIEWPORT + SUFFIX_HEIGHT;\n var S_DRAWINGBUFFER = \"drawingBuffer\";\n var S_DRAWINGBUFFER_WIDTH = S_DRAWINGBUFFER + SUFFIX_WIDTH;\n var S_DRAWINGBUFFER_HEIGHT = S_DRAWINGBUFFER + SUFFIX_HEIGHT;\n var NESTED_OPTIONS = [\n S_BLEND_FUNC,\n S_BLEND_EQUATION,\n S_STENCIL_FUNC,\n S_STENCIL_OPFRONT,\n S_STENCIL_OPBACK,\n S_SAMPLE_COVERAGE,\n S_VIEWPORT,\n S_SCISSOR_BOX,\n S_POLYGON_OFFSET_OFFSET\n ];\n var GL_ARRAY_BUFFER$2 = 34962;\n var GL_ELEMENT_ARRAY_BUFFER$2 = 34963;\n var GL_CULL_FACE = 2884;\n var GL_BLEND = 3042;\n var GL_DITHER = 3024;\n var GL_STENCIL_TEST = 2960;\n var GL_DEPTH_TEST = 2929;\n var GL_SCISSOR_TEST = 3089;\n var GL_POLYGON_OFFSET_FILL = 32823;\n var GL_SAMPLE_ALPHA_TO_COVERAGE = 32926;\n var GL_SAMPLE_COVERAGE = 32928;\n var GL_FLOAT$7 = 5126;\n var GL_FLOAT_VEC2 = 35664;\n var GL_FLOAT_VEC3 = 35665;\n var GL_FLOAT_VEC4 = 35666;\n var GL_INT$2 = 5124;\n var GL_INT_VEC2 = 35667;\n var GL_INT_VEC3 = 35668;\n var GL_INT_VEC4 = 35669;\n var GL_BOOL = 35670;\n var GL_BOOL_VEC2 = 35671;\n var GL_BOOL_VEC3 = 35672;\n var GL_BOOL_VEC4 = 35673;\n var GL_FLOAT_MAT2 = 35674;\n var GL_FLOAT_MAT3 = 35675;\n var GL_FLOAT_MAT4 = 35676;\n var GL_SAMPLER_2D = 35678;\n var GL_SAMPLER_CUBE = 35680;\n var GL_TRIANGLES$1 = 4;\n var GL_FRONT = 1028;\n var GL_BACK = 1029;\n var GL_CW = 2304;\n var GL_CCW = 2305;\n var GL_MIN_EXT = 32775;\n var GL_MAX_EXT = 32776;\n var GL_ALWAYS = 519;\n var GL_KEEP = 7680;\n var GL_ZERO = 0;\n var GL_ONE = 1;\n var GL_FUNC_ADD = 32774;\n var GL_LESS = 513;\n var GL_FRAMEBUFFER$2 = 36160;\n var GL_COLOR_ATTACHMENT0$2 = 36064;\n var blendFuncs = {\n \"0\": 0,\n \"1\": 1,\n \"zero\": 0,\n \"one\": 1,\n \"src color\": 768,\n \"one minus src color\": 769,\n \"src alpha\": 770,\n \"one minus src alpha\": 771,\n \"dst color\": 774,\n \"one minus dst color\": 775,\n \"dst alpha\": 772,\n \"one minus dst alpha\": 773,\n \"constant color\": 32769,\n \"one minus constant color\": 32770,\n \"constant alpha\": 32771,\n \"one minus constant alpha\": 32772,\n \"src alpha saturate\": 776\n };\n var compareFuncs = {\n \"never\": 512,\n \"less\": 513,\n \"<\": 513,\n \"equal\": 514,\n \"=\": 514,\n \"==\": 514,\n \"===\": 514,\n \"lequal\": 515,\n \"<=\": 515,\n \"greater\": 516,\n \">\": 516,\n \"notequal\": 517,\n \"!=\": 517,\n \"!==\": 517,\n \"gequal\": 518,\n \">=\": 518,\n \"always\": 519\n };\n var stencilOps = {\n \"0\": 0,\n \"zero\": 0,\n \"keep\": 7680,\n \"replace\": 7681,\n \"increment\": 7682,\n \"decrement\": 7683,\n \"increment wrap\": 34055,\n \"decrement wrap\": 34056,\n \"invert\": 5386\n };\n var orientationType = {\n \"cw\": GL_CW,\n \"ccw\": GL_CCW\n };\n function isBufferArgs(x) {\n return Array.isArray(x) || isTypedArray(x) || isNDArrayLike(x);\n }\n function sortState(state) {\n return state.sort(function(a, b) {\n if (a === S_VIEWPORT) {\n return -1;\n } else if (b === S_VIEWPORT) {\n return 1;\n }\n return a < b ? -1 : 1;\n });\n }\n function Declaration(thisDep, contextDep, propDep, append) {\n this.thisDep = thisDep;\n this.contextDep = contextDep;\n this.propDep = propDep;\n this.append = append;\n }\n function isStatic(decl) {\n return decl && !(decl.thisDep || decl.contextDep || decl.propDep);\n }\n function createStaticDecl(append) {\n return new Declaration(false, false, false, append);\n }\n function createDynamicDecl(dyn, append) {\n var type = dyn.type;\n if (type === DYN_FUNC$1) {\n var numArgs = dyn.data.length;\n return new Declaration(\n true,\n numArgs >= 1,\n numArgs >= 2,\n append\n );\n } else if (type === DYN_THUNK) {\n var data = dyn.data;\n return new Declaration(\n data.thisDep,\n data.contextDep,\n data.propDep,\n append\n );\n } else if (type === DYN_CONSTANT$1) {\n return new Declaration(\n false,\n false,\n false,\n append\n );\n } else if (type === DYN_ARRAY$1) {\n var thisDep = false;\n var contextDep = false;\n var propDep = false;\n for (var i = 0; i < dyn.data.length; ++i) {\n var subDyn = dyn.data[i];\n if (subDyn.type === DYN_PROP$1) {\n propDep = true;\n } else if (subDyn.type === DYN_CONTEXT$1) {\n contextDep = true;\n } else if (subDyn.type === DYN_STATE$1) {\n thisDep = true;\n } else if (subDyn.type === DYN_FUNC$1) {\n thisDep = true;\n var subArgs = subDyn.data;\n if (subArgs >= 1) {\n contextDep = true;\n }\n if (subArgs >= 2) {\n propDep = true;\n }\n } else if (subDyn.type === DYN_THUNK) {\n thisDep = thisDep || subDyn.data.thisDep;\n contextDep = contextDep || subDyn.data.contextDep;\n propDep = propDep || subDyn.data.propDep;\n }\n }\n return new Declaration(\n thisDep,\n contextDep,\n propDep,\n append\n );\n } else {\n return new Declaration(\n type === DYN_STATE$1,\n type === DYN_CONTEXT$1,\n type === DYN_PROP$1,\n append\n );\n }\n }\n var SCOPE_DECL = new Declaration(false, false, false, function() {\n });\n function reglCore(gl2, stringStore, extensions, limits, bufferState, elementState, textureState, framebufferState, uniformState, attributeState, shaderState, drawState, contextState, timer, cachedCode, config) {\n var AttributeRecord2 = attributeState.Record;\n var blendEquations = {\n \"add\": 32774,\n \"subtract\": 32778,\n \"reverse subtract\": 32779\n };\n if (extensions.ext_blend_minmax) {\n blendEquations.min = GL_MIN_EXT;\n blendEquations.max = GL_MAX_EXT;\n }\n var extInstancing = extensions.angle_instanced_arrays;\n var extDrawBuffers = extensions.webgl_draw_buffers;\n var extVertexArrays = extensions.oes_vertex_array_object;\n var currentState = {\n dirty: true,\n profile: config.profile\n };\n var nextState = {};\n var GL_STATE_NAMES = [];\n var GL_FLAGS = {};\n var GL_VARIABLES = {};\n function propName(name2) {\n return name2.replace(\".\", \"_\");\n }\n function stateFlag(sname, cap, init) {\n var name2 = propName(sname);\n GL_STATE_NAMES.push(sname);\n nextState[name2] = currentState[name2] = !!init;\n GL_FLAGS[name2] = cap;\n }\n function stateVariable(sname, func, init) {\n var name2 = propName(sname);\n GL_STATE_NAMES.push(sname);\n if (Array.isArray(init)) {\n currentState[name2] = init.slice();\n nextState[name2] = init.slice();\n } else {\n currentState[name2] = nextState[name2] = init;\n }\n GL_VARIABLES[name2] = func;\n }\n function hasVariableReference(exp) {\n if (!isNaN(exp)) {\n return false;\n }\n return true;\n }\n stateFlag(S_DITHER, GL_DITHER);\n stateFlag(S_BLEND_ENABLE, GL_BLEND);\n stateVariable(S_BLEND_COLOR, \"blendColor\", [0, 0, 0, 0]);\n stateVariable(\n S_BLEND_EQUATION,\n \"blendEquationSeparate\",\n [GL_FUNC_ADD, GL_FUNC_ADD]\n );\n stateVariable(\n S_BLEND_FUNC,\n \"blendFuncSeparate\",\n [GL_ONE, GL_ZERO, GL_ONE, GL_ZERO]\n );\n stateFlag(S_DEPTH_ENABLE, GL_DEPTH_TEST, true);\n stateVariable(S_DEPTH_FUNC, \"depthFunc\", GL_LESS);\n stateVariable(S_DEPTH_RANGE, \"depthRange\", [0, 1]);\n stateVariable(S_DEPTH_MASK, \"depthMask\", true);\n stateVariable(S_COLOR_MASK, S_COLOR_MASK, [true, true, true, true]);\n stateFlag(S_CULL_ENABLE, GL_CULL_FACE);\n stateVariable(S_CULL_FACE, \"cullFace\", GL_BACK);\n stateVariable(S_FRONT_FACE, S_FRONT_FACE, GL_CCW);\n stateVariable(S_LINE_WIDTH, S_LINE_WIDTH, 1);\n stateFlag(S_POLYGON_OFFSET_ENABLE, GL_POLYGON_OFFSET_FILL);\n stateVariable(S_POLYGON_OFFSET_OFFSET, \"polygonOffset\", [0, 0]);\n stateFlag(S_SAMPLE_ALPHA, GL_SAMPLE_ALPHA_TO_COVERAGE);\n stateFlag(S_SAMPLE_ENABLE, GL_SAMPLE_COVERAGE);\n stateVariable(S_SAMPLE_COVERAGE, \"sampleCoverage\", [1, false]);\n stateFlag(S_STENCIL_ENABLE, GL_STENCIL_TEST);\n stateVariable(S_STENCIL_MASK, \"stencilMask\", -1);\n stateVariable(S_STENCIL_FUNC, \"stencilFunc\", [GL_ALWAYS, 0, -1]);\n stateVariable(\n S_STENCIL_OPFRONT,\n \"stencilOpSeparate\",\n [GL_FRONT, GL_KEEP, GL_KEEP, GL_KEEP]\n );\n stateVariable(\n S_STENCIL_OPBACK,\n \"stencilOpSeparate\",\n [GL_BACK, GL_KEEP, GL_KEEP, GL_KEEP]\n );\n stateFlag(S_SCISSOR_ENABLE, GL_SCISSOR_TEST);\n stateVariable(\n S_SCISSOR_BOX,\n \"scissor\",\n [0, 0, gl2.drawingBufferWidth, gl2.drawingBufferHeight]\n );\n stateVariable(\n S_VIEWPORT,\n S_VIEWPORT,\n [0, 0, gl2.drawingBufferWidth, gl2.drawingBufferHeight]\n );\n var sharedState = {\n gl: gl2,\n context: contextState,\n strings: stringStore,\n next: nextState,\n current: currentState,\n draw: drawState,\n elements: elementState,\n buffer: bufferState,\n shader: shaderState,\n attributes: attributeState.state,\n vao: attributeState,\n uniforms: uniformState,\n framebuffer: framebufferState,\n extensions,\n timer,\n isBufferArgs\n };\n var sharedConstants = {\n primTypes,\n compareFuncs,\n blendFuncs,\n blendEquations,\n stencilOps,\n glTypes,\n orientationType\n };\n if (extDrawBuffers) {\n sharedConstants.backBuffer = [GL_BACK];\n sharedConstants.drawBuffer = loop(limits.maxDrawbuffers, function(i) {\n if (i === 0) {\n return [0];\n }\n return loop(i, function(j) {\n return GL_COLOR_ATTACHMENT0$2 + j;\n });\n });\n }\n var drawCallCounter = 0;\n function createREGLEnvironment() {\n var env = createEnvironment({ cache: cachedCode });\n var link = env.link;\n var global2 = env.global;\n env.id = drawCallCounter++;\n env.batchId = \"0\";\n var SHARED = link(sharedState);\n var shared = env.shared = {\n props: \"a0\"\n };\n Object.keys(sharedState).forEach(function(prop) {\n shared[prop] = global2.def(SHARED, \".\", prop);\n });\n var nextVars = env.next = {};\n var currentVars = env.current = {};\n Object.keys(GL_VARIABLES).forEach(function(variable) {\n if (Array.isArray(currentState[variable])) {\n nextVars[variable] = global2.def(shared.next, \".\", variable);\n currentVars[variable] = global2.def(shared.current, \".\", variable);\n }\n });\n var constants = env.constants = {};\n Object.keys(sharedConstants).forEach(function(name2) {\n constants[name2] = global2.def(JSON.stringify(sharedConstants[name2]));\n });\n env.invoke = function(block, x) {\n switch (x.type) {\n case DYN_FUNC$1:\n var argList = [\n \"this\",\n shared.context,\n shared.props,\n env.batchId\n ];\n return block.def(\n link(x.data),\n \".call(\",\n argList.slice(0, Math.max(x.data.length + 1, 4)),\n \")\"\n );\n case DYN_PROP$1:\n return block.def(shared.props, x.data);\n case DYN_CONTEXT$1:\n return block.def(shared.context, x.data);\n case DYN_STATE$1:\n return block.def(\"this\", x.data);\n case DYN_THUNK:\n x.data.append(env, block);\n return x.data.ref;\n case DYN_CONSTANT$1:\n return x.data.toString();\n case DYN_ARRAY$1:\n return x.data.map(function(y) {\n return env.invoke(block, y);\n });\n }\n };\n env.attribCache = {};\n var scopeAttribs = {};\n env.scopeAttrib = function(name2) {\n var id = stringStore.id(name2);\n if (id in scopeAttribs) {\n return scopeAttribs[id];\n }\n var binding = attributeState.scope[id];\n if (!binding) {\n binding = attributeState.scope[id] = new AttributeRecord2();\n }\n var result = scopeAttribs[id] = link(binding);\n return result;\n };\n return env;\n }\n function parseProfile(options) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var profileEnable;\n if (S_PROFILE in staticOptions) {\n var value = !!staticOptions[S_PROFILE];\n profileEnable = createStaticDecl(function(env, scope) {\n return value;\n });\n profileEnable.enable = value;\n } else if (S_PROFILE in dynamicOptions) {\n var dyn = dynamicOptions[S_PROFILE];\n profileEnable = createDynamicDecl(dyn, function(env, scope) {\n return env.invoke(scope, dyn);\n });\n }\n return profileEnable;\n }\n function parseFramebuffer(options, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n if (S_FRAMEBUFFER in staticOptions) {\n var framebuffer = staticOptions[S_FRAMEBUFFER];\n if (framebuffer) {\n framebuffer = framebufferState.getFramebuffer(framebuffer);\n return createStaticDecl(function(env2, block) {\n var FRAMEBUFFER = env2.link(framebuffer);\n var shared = env2.shared;\n block.set(\n shared.framebuffer,\n \".next\",\n FRAMEBUFFER\n );\n var CONTEXT = shared.context;\n block.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_WIDTH,\n FRAMEBUFFER + \".width\"\n );\n block.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_HEIGHT,\n FRAMEBUFFER + \".height\"\n );\n return FRAMEBUFFER;\n });\n } else {\n return createStaticDecl(function(env2, scope) {\n var shared = env2.shared;\n scope.set(\n shared.framebuffer,\n \".next\",\n \"null\"\n );\n var CONTEXT = shared.context;\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_WIDTH,\n CONTEXT + \".\" + S_DRAWINGBUFFER_WIDTH\n );\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_HEIGHT,\n CONTEXT + \".\" + S_DRAWINGBUFFER_HEIGHT\n );\n return \"null\";\n });\n }\n } else if (S_FRAMEBUFFER in dynamicOptions) {\n var dyn = dynamicOptions[S_FRAMEBUFFER];\n return createDynamicDecl(dyn, function(env2, scope) {\n var FRAMEBUFFER_FUNC = env2.invoke(scope, dyn);\n var shared = env2.shared;\n var FRAMEBUFFER_STATE = shared.framebuffer;\n var FRAMEBUFFER = scope.def(\n FRAMEBUFFER_STATE,\n \".getFramebuffer(\",\n FRAMEBUFFER_FUNC,\n \")\"\n );\n scope.set(\n FRAMEBUFFER_STATE,\n \".next\",\n FRAMEBUFFER\n );\n var CONTEXT = shared.context;\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_WIDTH,\n FRAMEBUFFER + \"?\" + FRAMEBUFFER + \".width:\" + CONTEXT + \".\" + S_DRAWINGBUFFER_WIDTH\n );\n scope.set(\n CONTEXT,\n \".\" + S_FRAMEBUFFER_HEIGHT,\n FRAMEBUFFER + \"?\" + FRAMEBUFFER + \".height:\" + CONTEXT + \".\" + S_DRAWINGBUFFER_HEIGHT\n );\n return FRAMEBUFFER;\n });\n } else {\n return null;\n }\n }\n function parseViewportScissor(options, framebuffer, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n function parseBox(param) {\n if (param in staticOptions) {\n var box = staticOptions[param];\n var isStatic2 = true;\n var x = box.x | 0;\n var y = box.y | 0;\n var w, h;\n if (\"width\" in box) {\n w = box.width | 0;\n } else {\n isStatic2 = false;\n }\n if (\"height\" in box) {\n h = box.height | 0;\n } else {\n isStatic2 = false;\n }\n return new Declaration(\n !isStatic2 && framebuffer && framebuffer.thisDep,\n !isStatic2 && framebuffer && framebuffer.contextDep,\n !isStatic2 && framebuffer && framebuffer.propDep,\n function(env2, scope) {\n var CONTEXT = env2.shared.context;\n var BOX_W = w;\n if (!(\"width\" in box)) {\n BOX_W = scope.def(CONTEXT, \".\", S_FRAMEBUFFER_WIDTH, \"-\", x);\n }\n var BOX_H = h;\n if (!(\"height\" in box)) {\n BOX_H = scope.def(CONTEXT, \".\", S_FRAMEBUFFER_HEIGHT, \"-\", y);\n }\n return [x, y, BOX_W, BOX_H];\n }\n );\n } else if (param in dynamicOptions) {\n var dynBox = dynamicOptions[param];\n var result = createDynamicDecl(dynBox, function(env2, scope) {\n var BOX = env2.invoke(scope, dynBox);\n var CONTEXT = env2.shared.context;\n var BOX_X = scope.def(BOX, \".x|0\");\n var BOX_Y = scope.def(BOX, \".y|0\");\n var BOX_W = scope.def(\n '\"width\" in ',\n BOX,\n \"?\",\n BOX,\n \".width|0:\",\n \"(\",\n CONTEXT,\n \".\",\n S_FRAMEBUFFER_WIDTH,\n \"-\",\n BOX_X,\n \")\"\n );\n var BOX_H = scope.def(\n '\"height\" in ',\n BOX,\n \"?\",\n BOX,\n \".height|0:\",\n \"(\",\n CONTEXT,\n \".\",\n S_FRAMEBUFFER_HEIGHT,\n \"-\",\n BOX_Y,\n \")\"\n );\n return [BOX_X, BOX_Y, BOX_W, BOX_H];\n });\n if (framebuffer) {\n result.thisDep = result.thisDep || framebuffer.thisDep;\n result.contextDep = result.contextDep || framebuffer.contextDep;\n result.propDep = result.propDep || framebuffer.propDep;\n }\n return result;\n } else if (framebuffer) {\n return new Declaration(\n framebuffer.thisDep,\n framebuffer.contextDep,\n framebuffer.propDep,\n function(env2, scope) {\n var CONTEXT = env2.shared.context;\n return [\n 0,\n 0,\n scope.def(CONTEXT, \".\", S_FRAMEBUFFER_WIDTH),\n scope.def(CONTEXT, \".\", S_FRAMEBUFFER_HEIGHT)\n ];\n }\n );\n } else {\n return null;\n }\n }\n var viewport = parseBox(S_VIEWPORT);\n if (viewport) {\n var prevViewport = viewport;\n viewport = new Declaration(\n viewport.thisDep,\n viewport.contextDep,\n viewport.propDep,\n function(env2, scope) {\n var VIEWPORT = prevViewport.append(env2, scope);\n var CONTEXT = env2.shared.context;\n scope.set(\n CONTEXT,\n \".\" + S_VIEWPORT_WIDTH,\n VIEWPORT[2]\n );\n scope.set(\n CONTEXT,\n \".\" + S_VIEWPORT_HEIGHT,\n VIEWPORT[3]\n );\n return VIEWPORT;\n }\n );\n }\n return {\n viewport,\n scissor_box: parseBox(S_SCISSOR_BOX)\n };\n }\n function parseAttribLocations(options, attributes) {\n var staticOptions = options.static;\n var staticProgram = typeof staticOptions[S_FRAG] === \"string\" && typeof staticOptions[S_VERT] === \"string\";\n if (staticProgram) {\n if (Object.keys(attributes.dynamic).length > 0) {\n return null;\n }\n var staticAttributes = attributes.static;\n var sAttributes = Object.keys(staticAttributes);\n if (sAttributes.length > 0 && typeof staticAttributes[sAttributes[0]] === \"number\") {\n var bindings = [];\n for (var i = 0; i < sAttributes.length; ++i) {\n bindings.push([staticAttributes[sAttributes[i]] | 0, sAttributes[i]]);\n }\n return bindings;\n }\n }\n return null;\n }\n function parseProgram(options, env, attribLocations) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n function parseShader(name2) {\n if (name2 in staticOptions) {\n var id = stringStore.id(staticOptions[name2]);\n var result = createStaticDecl(function() {\n return id;\n });\n result.id = id;\n return result;\n } else if (name2 in dynamicOptions) {\n var dyn = dynamicOptions[name2];\n return createDynamicDecl(dyn, function(env2, scope) {\n var str = env2.invoke(scope, dyn);\n var id2 = scope.def(env2.shared.strings, \".id(\", str, \")\");\n return id2;\n });\n }\n return null;\n }\n var frag = parseShader(S_FRAG);\n var vert = parseShader(S_VERT);\n var program = null;\n var progVar;\n if (isStatic(frag) && isStatic(vert)) {\n program = shaderState.program(vert.id, frag.id, null, attribLocations);\n progVar = createStaticDecl(function(env2, scope) {\n return env2.link(program);\n });\n } else {\n progVar = new Declaration(\n frag && frag.thisDep || vert && vert.thisDep,\n frag && frag.contextDep || vert && vert.contextDep,\n frag && frag.propDep || vert && vert.propDep,\n function(env2, scope) {\n var SHADER_STATE = env2.shared.shader;\n var fragId;\n if (frag) {\n fragId = frag.append(env2, scope);\n } else {\n fragId = scope.def(SHADER_STATE, \".\", S_FRAG);\n }\n var vertId;\n if (vert) {\n vertId = vert.append(env2, scope);\n } else {\n vertId = scope.def(SHADER_STATE, \".\", S_VERT);\n }\n var progDef = SHADER_STATE + \".program(\" + vertId + \",\" + fragId;\n return scope.def(progDef + \")\");\n }\n );\n }\n return {\n frag,\n vert,\n progVar,\n program\n };\n }\n function parseDraw(options, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var staticDraw = {};\n var vaoActive = false;\n function parseVAO() {\n if (S_VAO in staticOptions) {\n var vao2 = staticOptions[S_VAO];\n if (vao2 !== null && attributeState.getVAO(vao2) === null) {\n vao2 = attributeState.createVAO(vao2);\n }\n vaoActive = true;\n staticDraw.vao = vao2;\n return createStaticDecl(function(env2) {\n var vaoRef = attributeState.getVAO(vao2);\n if (vaoRef) {\n return env2.link(vaoRef);\n } else {\n return \"null\";\n }\n });\n } else if (S_VAO in dynamicOptions) {\n vaoActive = true;\n var dyn = dynamicOptions[S_VAO];\n return createDynamicDecl(dyn, function(env2, scope) {\n var vaoRef = env2.invoke(scope, dyn);\n return scope.def(env2.shared.vao + \".getVAO(\" + vaoRef + \")\");\n });\n }\n return null;\n }\n var vao = parseVAO();\n var elementsActive = false;\n function parseElements() {\n if (S_ELEMENTS in staticOptions) {\n var elements2 = staticOptions[S_ELEMENTS];\n staticDraw.elements = elements2;\n if (isBufferArgs(elements2)) {\n var e = staticDraw.elements = elementState.create(elements2, true);\n elements2 = elementState.getElements(e);\n elementsActive = true;\n } else if (elements2) {\n elements2 = elementState.getElements(elements2);\n elementsActive = true;\n }\n var result = createStaticDecl(function(env2, scope) {\n if (elements2) {\n var result2 = env2.link(elements2);\n env2.ELEMENTS = result2;\n return result2;\n }\n env2.ELEMENTS = null;\n return null;\n });\n result.value = elements2;\n return result;\n } else if (S_ELEMENTS in dynamicOptions) {\n elementsActive = true;\n var dyn = dynamicOptions[S_ELEMENTS];\n return createDynamicDecl(dyn, function(env2, scope) {\n var shared = env2.shared;\n var IS_BUFFER_ARGS = shared.isBufferArgs;\n var ELEMENT_STATE = shared.elements;\n var elementDefn = env2.invoke(scope, dyn);\n var elements3 = scope.def(\"null\");\n var elementStream = scope.def(IS_BUFFER_ARGS, \"(\", elementDefn, \")\");\n var ifte = env2.cond(elementStream).then(elements3, \"=\", ELEMENT_STATE, \".createStream(\", elementDefn, \");\").else(elements3, \"=\", ELEMENT_STATE, \".getElements(\", elementDefn, \");\");\n scope.entry(ifte);\n scope.exit(\n env2.cond(elementStream).then(ELEMENT_STATE, \".destroyStream(\", elements3, \");\")\n );\n env2.ELEMENTS = elements3;\n return elements3;\n });\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.elements + \".getElements(\" + env2.shared.vao + \".currentVAO.elements):null\");\n }\n );\n }\n return null;\n }\n var elements = parseElements();\n function parsePrimitive() {\n if (S_PRIMITIVE in staticOptions) {\n var primitive2 = staticOptions[S_PRIMITIVE];\n staticDraw.primitive = primitive2;\n return createStaticDecl(function(env2, scope) {\n return primTypes[primitive2];\n });\n } else if (S_PRIMITIVE in dynamicOptions) {\n var dynPrimitive = dynamicOptions[S_PRIMITIVE];\n return createDynamicDecl(dynPrimitive, function(env2, scope) {\n var PRIM_TYPES = env2.constants.primTypes;\n var prim = env2.invoke(scope, dynPrimitive);\n return scope.def(PRIM_TYPES, \"[\", prim, \"]\");\n });\n } else if (elementsActive) {\n if (isStatic(elements)) {\n if (elements.value) {\n return createStaticDecl(function(env2, scope) {\n return scope.def(env2.ELEMENTS, \".primType\");\n });\n } else {\n return createStaticDecl(function() {\n return GL_TRIANGLES$1;\n });\n }\n } else {\n return new Declaration(\n elements.thisDep,\n elements.contextDep,\n elements.propDep,\n function(env2, scope) {\n var elements2 = env2.ELEMENTS;\n return scope.def(elements2, \"?\", elements2, \".primType:\", GL_TRIANGLES$1);\n }\n );\n }\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.vao + \".currentVAO.primitive:\" + GL_TRIANGLES$1);\n }\n );\n }\n return null;\n }\n function parseParam(param, isOffset) {\n if (param in staticOptions) {\n var value = staticOptions[param] | 0;\n if (isOffset) {\n staticDraw.offset = value;\n } else {\n staticDraw.instances = value;\n }\n return createStaticDecl(function(env2, scope) {\n if (isOffset) {\n env2.OFFSET = value;\n }\n return value;\n });\n } else if (param in dynamicOptions) {\n var dynValue = dynamicOptions[param];\n return createDynamicDecl(dynValue, function(env2, scope) {\n var result = env2.invoke(scope, dynValue);\n if (isOffset) {\n env2.OFFSET = result;\n }\n return result;\n });\n } else if (isOffset) {\n if (elementsActive) {\n return createStaticDecl(function(env2, scope) {\n env2.OFFSET = 0;\n return 0;\n });\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.vao + \".currentVAO.offset:0\");\n }\n );\n }\n } else if (vaoActive) {\n return new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao + \".currentVAO?\" + env2.shared.vao + \".currentVAO.instances:-1\");\n }\n );\n }\n return null;\n }\n var OFFSET = parseParam(S_OFFSET, true);\n function parseVertCount() {\n if (S_COUNT in staticOptions) {\n var count2 = staticOptions[S_COUNT] | 0;\n staticDraw.count = count2;\n return createStaticDecl(function() {\n return count2;\n });\n } else if (S_COUNT in dynamicOptions) {\n var dynCount = dynamicOptions[S_COUNT];\n return createDynamicDecl(dynCount, function(env2, scope) {\n var result2 = env2.invoke(scope, dynCount);\n return result2;\n });\n } else if (elementsActive) {\n if (isStatic(elements)) {\n if (elements) {\n if (OFFSET) {\n return new Declaration(\n OFFSET.thisDep,\n OFFSET.contextDep,\n OFFSET.propDep,\n function(env2, scope) {\n var result2 = scope.def(\n env2.ELEMENTS,\n \".vertCount-\",\n env2.OFFSET\n );\n return result2;\n }\n );\n } else {\n return createStaticDecl(function(env2, scope) {\n return scope.def(env2.ELEMENTS, \".vertCount\");\n });\n }\n } else {\n var result = createStaticDecl(function() {\n return -1;\n });\n return result;\n }\n } else {\n var variable = new Declaration(\n elements.thisDep || OFFSET.thisDep,\n elements.contextDep || OFFSET.contextDep,\n elements.propDep || OFFSET.propDep,\n function(env2, scope) {\n var elements2 = env2.ELEMENTS;\n if (env2.OFFSET) {\n return scope.def(\n elements2,\n \"?\",\n elements2,\n \".vertCount-\",\n env2.OFFSET,\n \":-1\"\n );\n }\n return scope.def(elements2, \"?\", elements2, \".vertCount:-1\");\n }\n );\n return variable;\n }\n } else if (vaoActive) {\n var countVariable = new Declaration(\n vao.thisDep,\n vao.contextDep,\n vao.propDep,\n function(env2, scope) {\n return scope.def(env2.shared.vao, \".currentVAO?\", env2.shared.vao, \".currentVAO.count:-1\");\n }\n );\n return countVariable;\n }\n return null;\n }\n var primitive = parsePrimitive();\n var count = parseVertCount();\n var instances = parseParam(S_INSTANCES, false);\n return {\n elements,\n primitive,\n count,\n instances,\n offset: OFFSET,\n vao,\n vaoActive,\n elementsActive,\n // static draw props\n static: staticDraw\n };\n }\n function parseGLState(options, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var STATE = {};\n GL_STATE_NAMES.forEach(function(prop) {\n var param = propName(prop);\n function parseParam(parseStatic, parseDynamic) {\n if (prop in staticOptions) {\n var value = parseStatic(staticOptions[prop]);\n STATE[param] = createStaticDecl(function() {\n return value;\n });\n } else if (prop in dynamicOptions) {\n var dyn = dynamicOptions[prop];\n STATE[param] = createDynamicDecl(dyn, function(env2, scope) {\n return parseDynamic(env2, scope, env2.invoke(scope, dyn));\n });\n }\n }\n switch (prop) {\n case S_CULL_ENABLE:\n case S_BLEND_ENABLE:\n case S_DITHER:\n case S_STENCIL_ENABLE:\n case S_DEPTH_ENABLE:\n case S_SCISSOR_ENABLE:\n case S_POLYGON_OFFSET_ENABLE:\n case S_SAMPLE_ALPHA:\n case S_SAMPLE_ENABLE:\n case S_DEPTH_MASK:\n return parseParam(\n function(value) {\n return value;\n },\n function(env2, scope, value) {\n return value;\n }\n );\n case S_DEPTH_FUNC:\n return parseParam(\n function(value) {\n return compareFuncs[value];\n },\n function(env2, scope, value) {\n var COMPARE_FUNCS = env2.constants.compareFuncs;\n return scope.def(COMPARE_FUNCS, \"[\", value, \"]\");\n }\n );\n case S_DEPTH_RANGE:\n return parseParam(\n function(value) {\n return value;\n },\n function(env2, scope, value) {\n var Z_NEAR = scope.def(\"+\", value, \"[0]\");\n var Z_FAR = scope.def(\"+\", value, \"[1]\");\n return [Z_NEAR, Z_FAR];\n }\n );\n case S_BLEND_FUNC:\n return parseParam(\n function(value) {\n var srcRGB = \"srcRGB\" in value ? value.srcRGB : value.src;\n var srcAlpha = \"srcAlpha\" in value ? value.srcAlpha : value.src;\n var dstRGB = \"dstRGB\" in value ? value.dstRGB : value.dst;\n var dstAlpha = \"dstAlpha\" in value ? value.dstAlpha : value.dst;\n return [\n blendFuncs[srcRGB],\n blendFuncs[dstRGB],\n blendFuncs[srcAlpha],\n blendFuncs[dstAlpha]\n ];\n },\n function(env2, scope, value) {\n var BLEND_FUNCS = env2.constants.blendFuncs;\n function read(prefix, suffix) {\n var func = scope.def(\n '\"',\n prefix,\n suffix,\n '\" in ',\n value,\n \"?\",\n value,\n \".\",\n prefix,\n suffix,\n \":\",\n value,\n \".\",\n prefix\n );\n return func;\n }\n var srcRGB = read(\"src\", \"RGB\");\n var dstRGB = read(\"dst\", \"RGB\");\n var SRC_RGB = scope.def(BLEND_FUNCS, \"[\", srcRGB, \"]\");\n var SRC_ALPHA = scope.def(BLEND_FUNCS, \"[\", read(\"src\", \"Alpha\"), \"]\");\n var DST_RGB = scope.def(BLEND_FUNCS, \"[\", dstRGB, \"]\");\n var DST_ALPHA = scope.def(BLEND_FUNCS, \"[\", read(\"dst\", \"Alpha\"), \"]\");\n return [SRC_RGB, DST_RGB, SRC_ALPHA, DST_ALPHA];\n }\n );\n case S_BLEND_EQUATION:\n return parseParam(\n function(value) {\n if (typeof value === \"string\") {\n return [\n blendEquations[value],\n blendEquations[value]\n ];\n } else if (typeof value === \"object\") {\n return [\n blendEquations[value.rgb],\n blendEquations[value.alpha]\n ];\n } else {\n }\n },\n function(env2, scope, value) {\n var BLEND_EQUATIONS = env2.constants.blendEquations;\n var RGB = scope.def();\n var ALPHA = scope.def();\n var ifte = env2.cond(\"typeof \", value, '===\"string\"');\n ifte.then(\n RGB,\n \"=\",\n ALPHA,\n \"=\",\n BLEND_EQUATIONS,\n \"[\",\n value,\n \"];\"\n );\n ifte.else(\n RGB,\n \"=\",\n BLEND_EQUATIONS,\n \"[\",\n value,\n \".rgb];\",\n ALPHA,\n \"=\",\n BLEND_EQUATIONS,\n \"[\",\n value,\n \".alpha];\"\n );\n scope(ifte);\n return [RGB, ALPHA];\n }\n );\n case S_BLEND_COLOR:\n return parseParam(\n function(value) {\n return loop(4, function(i) {\n return +value[i];\n });\n },\n function(env2, scope, value) {\n return loop(4, function(i) {\n return scope.def(\"+\", value, \"[\", i, \"]\");\n });\n }\n );\n case S_STENCIL_MASK:\n return parseParam(\n function(value) {\n return value | 0;\n },\n function(env2, scope, value) {\n return scope.def(value, \"|0\");\n }\n );\n case S_STENCIL_FUNC:\n return parseParam(\n function(value) {\n var cmp = value.cmp || \"keep\";\n var ref = value.ref || 0;\n var mask = \"mask\" in value ? value.mask : -1;\n return [\n compareFuncs[cmp],\n ref,\n mask\n ];\n },\n function(env2, scope, value) {\n var COMPARE_FUNCS = env2.constants.compareFuncs;\n var cmp = scope.def(\n '\"cmp\" in ',\n value,\n \"?\",\n COMPARE_FUNCS,\n \"[\",\n value,\n \".cmp]\",\n \":\",\n GL_KEEP\n );\n var ref = scope.def(value, \".ref|0\");\n var mask = scope.def(\n '\"mask\" in ',\n value,\n \"?\",\n value,\n \".mask|0:-1\"\n );\n return [cmp, ref, mask];\n }\n );\n case S_STENCIL_OPFRONT:\n case S_STENCIL_OPBACK:\n return parseParam(\n function(value) {\n var fail = value.fail || \"keep\";\n var zfail = value.zfail || \"keep\";\n var zpass = value.zpass || \"keep\";\n return [\n prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT,\n stencilOps[fail],\n stencilOps[zfail],\n stencilOps[zpass]\n ];\n },\n function(env2, scope, value) {\n var STENCIL_OPS = env2.constants.stencilOps;\n function read(name2) {\n return scope.def(\n '\"',\n name2,\n '\" in ',\n value,\n \"?\",\n STENCIL_OPS,\n \"[\",\n value,\n \".\",\n name2,\n \"]:\",\n GL_KEEP\n );\n }\n return [\n prop === S_STENCIL_OPBACK ? GL_BACK : GL_FRONT,\n read(\"fail\"),\n read(\"zfail\"),\n read(\"zpass\")\n ];\n }\n );\n case S_POLYGON_OFFSET_OFFSET:\n return parseParam(\n function(value) {\n var factor = value.factor | 0;\n var units = value.units | 0;\n return [factor, units];\n },\n function(env2, scope, value) {\n var FACTOR = scope.def(value, \".factor|0\");\n var UNITS = scope.def(value, \".units|0\");\n return [FACTOR, UNITS];\n }\n );\n case S_CULL_FACE:\n return parseParam(\n function(value) {\n var face = 0;\n if (value === \"front\") {\n face = GL_FRONT;\n } else if (value === \"back\") {\n face = GL_BACK;\n }\n return face;\n },\n function(env2, scope, value) {\n return scope.def(value, '===\"front\"?', GL_FRONT, \":\", GL_BACK);\n }\n );\n case S_LINE_WIDTH:\n return parseParam(\n function(value) {\n return value;\n },\n function(env2, scope, value) {\n return value;\n }\n );\n case S_FRONT_FACE:\n return parseParam(\n function(value) {\n return orientationType[value];\n },\n function(env2, scope, value) {\n return scope.def(value + '===\"cw\"?' + GL_CW + \":\" + GL_CCW);\n }\n );\n case S_COLOR_MASK:\n return parseParam(\n function(value) {\n return value.map(function(v) {\n return !!v;\n });\n },\n function(env2, scope, value) {\n return loop(4, function(i) {\n return \"!!\" + value + \"[\" + i + \"]\";\n });\n }\n );\n case S_SAMPLE_COVERAGE:\n return parseParam(\n function(value) {\n var sampleValue = \"value\" in value ? value.value : 1;\n var sampleInvert = !!value.invert;\n return [sampleValue, sampleInvert];\n },\n function(env2, scope, value) {\n var VALUE = scope.def(\n '\"value\" in ',\n value,\n \"?+\",\n value,\n \".value:1\"\n );\n var INVERT = scope.def(\"!!\", value, \".invert\");\n return [VALUE, INVERT];\n }\n );\n }\n });\n return STATE;\n }\n function parseUniforms(uniforms, env) {\n var staticUniforms = uniforms.static;\n var dynamicUniforms = uniforms.dynamic;\n var UNIFORMS = {};\n Object.keys(staticUniforms).forEach(function(name2) {\n var value = staticUniforms[name2];\n var result;\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n result = createStaticDecl(function() {\n return value;\n });\n } else if (typeof value === \"function\") {\n var reglType = value._reglType;\n if (reglType === \"texture2d\" || reglType === \"textureCube\") {\n result = createStaticDecl(function(env2) {\n return env2.link(value);\n });\n } else if (reglType === \"framebuffer\" || reglType === \"framebufferCube\") {\n result = createStaticDecl(function(env2) {\n return env2.link(value.color[0]);\n });\n } else {\n }\n } else if (isArrayLike(value)) {\n result = createStaticDecl(function(env2) {\n var ITEM = env2.global.def(\n \"[\",\n loop(value.length, function(i) {\n return value[i];\n }),\n \"]\"\n );\n return ITEM;\n });\n } else {\n }\n result.value = value;\n UNIFORMS[name2] = result;\n });\n Object.keys(dynamicUniforms).forEach(function(key) {\n var dyn = dynamicUniforms[key];\n UNIFORMS[key] = createDynamicDecl(dyn, function(env2, scope) {\n return env2.invoke(scope, dyn);\n });\n });\n return UNIFORMS;\n }\n function parseAttributes(attributes, env) {\n var staticAttributes = attributes.static;\n var dynamicAttributes = attributes.dynamic;\n var attributeDefs = {};\n Object.keys(staticAttributes).forEach(function(attribute) {\n var value = staticAttributes[attribute];\n var id = stringStore.id(attribute);\n var record = new AttributeRecord2();\n if (isBufferArgs(value)) {\n record.state = ATTRIB_STATE_POINTER;\n record.buffer = bufferState.getBuffer(\n bufferState.create(value, GL_ARRAY_BUFFER$2, false, true)\n );\n record.type = 0;\n } else {\n var buffer = bufferState.getBuffer(value);\n if (buffer) {\n record.state = ATTRIB_STATE_POINTER;\n record.buffer = buffer;\n record.type = 0;\n } else {\n if (\"constant\" in value) {\n var constant = value.constant;\n record.buffer = \"null\";\n record.state = ATTRIB_STATE_CONSTANT;\n if (typeof constant === \"number\") {\n record.x = constant;\n } else {\n CUTE_COMPONENTS.forEach(function(c, i) {\n if (i < constant.length) {\n record[c] = constant[i];\n }\n });\n }\n } else {\n if (isBufferArgs(value.buffer)) {\n buffer = bufferState.getBuffer(\n bufferState.create(value.buffer, GL_ARRAY_BUFFER$2, false, true)\n );\n } else {\n buffer = bufferState.getBuffer(value.buffer);\n }\n var offset = value.offset | 0;\n var stride = value.stride | 0;\n var size = value.size | 0;\n var normalized = !!value.normalized;\n var type = 0;\n if (\"type\" in value) {\n type = glTypes[value.type];\n }\n var divisor = value.divisor | 0;\n record.buffer = buffer;\n record.state = ATTRIB_STATE_POINTER;\n record.size = size;\n record.normalized = normalized;\n record.type = type || buffer.dtype;\n record.offset = offset;\n record.stride = stride;\n record.divisor = divisor;\n }\n }\n }\n attributeDefs[attribute] = createStaticDecl(function(env2, scope) {\n var cache = env2.attribCache;\n if (id in cache) {\n return cache[id];\n }\n var result = {\n isStream: false\n };\n Object.keys(record).forEach(function(key) {\n result[key] = record[key];\n });\n if (record.buffer) {\n result.buffer = env2.link(record.buffer);\n result.type = result.type || result.buffer + \".dtype\";\n }\n cache[id] = result;\n return result;\n });\n });\n Object.keys(dynamicAttributes).forEach(function(attribute) {\n var dyn = dynamicAttributes[attribute];\n function appendAttributeCode(env2, block) {\n var VALUE = env2.invoke(block, dyn);\n var shared = env2.shared;\n var constants = env2.constants;\n var IS_BUFFER_ARGS = shared.isBufferArgs;\n var BUFFER_STATE = shared.buffer;\n var result = {\n isStream: block.def(false)\n };\n var defaultRecord = new AttributeRecord2();\n defaultRecord.state = ATTRIB_STATE_POINTER;\n Object.keys(defaultRecord).forEach(function(key) {\n result[key] = block.def(\"\" + defaultRecord[key]);\n });\n var BUFFER = result.buffer;\n var TYPE = result.type;\n block(\n \"if(\",\n IS_BUFFER_ARGS,\n \"(\",\n VALUE,\n \")){\",\n result.isStream,\n \"=true;\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".createStream(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n VALUE,\n \");\",\n TYPE,\n \"=\",\n BUFFER,\n \".dtype;\",\n \"}else{\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".getBuffer(\",\n VALUE,\n \");\",\n \"if(\",\n BUFFER,\n \"){\",\n TYPE,\n \"=\",\n BUFFER,\n \".dtype;\",\n '}else if(\"constant\" in ',\n VALUE,\n \"){\",\n result.state,\n \"=\",\n ATTRIB_STATE_CONSTANT,\n \";\",\n \"if(typeof \" + VALUE + '.constant === \"number\"){',\n result[CUTE_COMPONENTS[0]],\n \"=\",\n VALUE,\n \".constant;\",\n CUTE_COMPONENTS.slice(1).map(function(n) {\n return result[n];\n }).join(\"=\"),\n \"=0;\",\n \"}else{\",\n CUTE_COMPONENTS.map(function(name2, i) {\n return result[name2] + \"=\" + VALUE + \".constant.length>\" + i + \"?\" + VALUE + \".constant[\" + i + \"]:0;\";\n }).join(\"\"),\n \"}}else{\",\n \"if(\",\n IS_BUFFER_ARGS,\n \"(\",\n VALUE,\n \".buffer)){\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".createStream(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n VALUE,\n \".buffer);\",\n \"}else{\",\n BUFFER,\n \"=\",\n BUFFER_STATE,\n \".getBuffer(\",\n VALUE,\n \".buffer);\",\n \"}\",\n TYPE,\n '=\"type\" in ',\n VALUE,\n \"?\",\n constants.glTypes,\n \"[\",\n VALUE,\n \".type]:\",\n BUFFER,\n \".dtype;\",\n result.normalized,\n \"=!!\",\n VALUE,\n \".normalized;\"\n );\n function emitReadRecord(name2) {\n block(result[name2], \"=\", VALUE, \".\", name2, \"|0;\");\n }\n emitReadRecord(\"size\");\n emitReadRecord(\"offset\");\n emitReadRecord(\"stride\");\n emitReadRecord(\"divisor\");\n block(\"}}\");\n block.exit(\n \"if(\",\n result.isStream,\n \"){\",\n BUFFER_STATE,\n \".destroyStream(\",\n BUFFER,\n \");\",\n \"}\"\n );\n return result;\n }\n attributeDefs[attribute] = createDynamicDecl(dyn, appendAttributeCode);\n });\n return attributeDefs;\n }\n function parseContext(context) {\n var staticContext = context.static;\n var dynamicContext = context.dynamic;\n var result = {};\n Object.keys(staticContext).forEach(function(name2) {\n var value = staticContext[name2];\n result[name2] = createStaticDecl(function(env, scope) {\n if (typeof value === \"number\" || typeof value === \"boolean\") {\n return \"\" + value;\n } else {\n return env.link(value);\n }\n });\n });\n Object.keys(dynamicContext).forEach(function(name2) {\n var dyn = dynamicContext[name2];\n result[name2] = createDynamicDecl(dyn, function(env, scope) {\n return env.invoke(scope, dyn);\n });\n });\n return result;\n }\n function parseArguments(options, attributes, uniforms, context, env) {\n var staticOptions = options.static;\n var dynamicOptions = options.dynamic;\n var attribLocations = parseAttribLocations(options, attributes);\n var framebuffer = parseFramebuffer(options, env);\n var viewportAndScissor = parseViewportScissor(options, framebuffer, env);\n var draw = parseDraw(options, env);\n var state = parseGLState(options, env);\n var shader = parseProgram(options, env, attribLocations);\n function copyBox(name2) {\n var defn = viewportAndScissor[name2];\n if (defn) {\n state[name2] = defn;\n }\n }\n copyBox(S_VIEWPORT);\n copyBox(propName(S_SCISSOR_BOX));\n var dirty = Object.keys(state).length > 0;\n var result = {\n framebuffer,\n draw,\n shader,\n state,\n dirty,\n scopeVAO: null,\n drawVAO: null,\n useVAO: false,\n attributes: {}\n };\n result.profile = parseProfile(options, env);\n result.uniforms = parseUniforms(uniforms, env);\n result.drawVAO = result.scopeVAO = draw.vao;\n if (!result.drawVAO && shader.program && !attribLocations && extensions.angle_instanced_arrays && draw.static.elements) {\n var useVAO = true;\n var staticBindings = shader.program.attributes.map(function(attr) {\n var binding = attributes.static[attr];\n useVAO = useVAO && !!binding;\n return binding;\n });\n if (useVAO && staticBindings.length > 0) {\n var vao = attributeState.getVAO(attributeState.createVAO({\n attributes: staticBindings,\n elements: draw.static.elements\n }));\n result.drawVAO = new Declaration(null, null, null, function(env2, scope) {\n return env2.link(vao);\n });\n result.useVAO = true;\n }\n }\n if (attribLocations) {\n result.useVAO = true;\n } else {\n result.attributes = parseAttributes(attributes, env);\n }\n result.context = parseContext(context, env);\n return result;\n }\n function emitContext(env, scope, context) {\n var shared = env.shared;\n var CONTEXT = shared.context;\n var contextEnter = env.scope();\n Object.keys(context).forEach(function(name2) {\n scope.save(CONTEXT, \".\" + name2);\n var defn = context[name2];\n var value = defn.append(env, scope);\n if (Array.isArray(value)) {\n contextEnter(CONTEXT, \".\", name2, \"=[\", value.join(), \"];\");\n } else {\n contextEnter(CONTEXT, \".\", name2, \"=\", value, \";\");\n }\n });\n scope(contextEnter);\n }\n function emitPollFramebuffer(env, scope, framebuffer, skipCheck) {\n var shared = env.shared;\n var GL = shared.gl;\n var FRAMEBUFFER_STATE = shared.framebuffer;\n var EXT_DRAW_BUFFERS;\n if (extDrawBuffers) {\n EXT_DRAW_BUFFERS = scope.def(shared.extensions, \".webgl_draw_buffers\");\n }\n var constants = env.constants;\n var DRAW_BUFFERS = constants.drawBuffer;\n var BACK_BUFFER = constants.backBuffer;\n var NEXT;\n if (framebuffer) {\n NEXT = framebuffer.append(env, scope);\n } else {\n NEXT = scope.def(FRAMEBUFFER_STATE, \".next\");\n }\n if (!skipCheck) {\n scope(\"if(\", NEXT, \"!==\", FRAMEBUFFER_STATE, \".cur){\");\n }\n scope(\n \"if(\",\n NEXT,\n \"){\",\n GL,\n \".bindFramebuffer(\",\n GL_FRAMEBUFFER$2,\n \",\",\n NEXT,\n \".framebuffer);\"\n );\n if (extDrawBuffers) {\n scope(\n EXT_DRAW_BUFFERS,\n \".drawBuffersWEBGL(\",\n DRAW_BUFFERS,\n \"[\",\n NEXT,\n \".colorAttachments.length]);\"\n );\n }\n scope(\n \"}else{\",\n GL,\n \".bindFramebuffer(\",\n GL_FRAMEBUFFER$2,\n \",null);\"\n );\n if (extDrawBuffers) {\n scope(EXT_DRAW_BUFFERS, \".drawBuffersWEBGL(\", BACK_BUFFER, \");\");\n }\n scope(\n \"}\",\n FRAMEBUFFER_STATE,\n \".cur=\",\n NEXT,\n \";\"\n );\n if (!skipCheck) {\n scope(\"}\");\n }\n }\n function emitPollState(env, scope, args) {\n var shared = env.shared;\n var GL = shared.gl;\n var CURRENT_VARS = env.current;\n var NEXT_VARS = env.next;\n var CURRENT_STATE = shared.current;\n var NEXT_STATE = shared.next;\n var block = env.cond(CURRENT_STATE, \".dirty\");\n GL_STATE_NAMES.forEach(function(prop) {\n var param = propName(prop);\n if (param in args.state) {\n return;\n }\n var NEXT, CURRENT;\n if (param in NEXT_VARS) {\n NEXT = NEXT_VARS[param];\n CURRENT = CURRENT_VARS[param];\n var parts = loop(currentState[param].length, function(i) {\n return block.def(NEXT, \"[\", i, \"]\");\n });\n block(env.cond(parts.map(function(p, i) {\n return p + \"!==\" + CURRENT + \"[\" + i + \"]\";\n }).join(\"||\")).then(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n parts,\n \");\",\n parts.map(function(p, i) {\n return CURRENT + \"[\" + i + \"]=\" + p;\n }).join(\";\"),\n \";\"\n ));\n } else {\n NEXT = block.def(NEXT_STATE, \".\", param);\n var ifte = env.cond(NEXT, \"!==\", CURRENT_STATE, \".\", param);\n block(ifte);\n if (param in GL_FLAGS) {\n ifte(\n env.cond(NEXT).then(GL, \".enable(\", GL_FLAGS[param], \");\").else(GL, \".disable(\", GL_FLAGS[param], \");\"),\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n NEXT,\n \";\"\n );\n } else {\n ifte(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n NEXT,\n \");\",\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n NEXT,\n \";\"\n );\n }\n }\n });\n if (Object.keys(args.state).length === 0) {\n block(CURRENT_STATE, \".dirty=false;\");\n }\n scope(block);\n }\n function emitSetOptions(env, scope, options, filter) {\n var shared = env.shared;\n var CURRENT_VARS = env.current;\n var CURRENT_STATE = shared.current;\n var GL = shared.gl;\n var VALUE;\n sortState(Object.keys(options)).forEach(function(param) {\n var defn = options[param];\n if (filter && !filter(defn)) {\n return;\n }\n var variable = defn.append(env, scope);\n if (GL_FLAGS[param]) {\n var flag = GL_FLAGS[param];\n if (isStatic(defn)) {\n VALUE = env.link(variable, { stable: true });\n scope(env.cond(VALUE).then(GL, \".enable(\", flag, \");\").else(GL, \".disable(\", flag, \");\"));\n scope(CURRENT_STATE, \".\", param, \"=\", VALUE, \";\");\n } else {\n scope(env.cond(variable).then(GL, \".enable(\", flag, \");\").else(GL, \".disable(\", flag, \");\"));\n scope(CURRENT_STATE, \".\", param, \"=\", variable, \";\");\n }\n } else if (isArrayLike(variable)) {\n var CURRENT = CURRENT_VARS[param];\n scope(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n variable,\n \");\",\n variable.map(function(v, i) {\n return CURRENT + \"[\" + i + \"]=\" + v;\n }).join(\";\"),\n \";\"\n );\n } else {\n if (isStatic(defn)) {\n VALUE = env.link(variable, { stable: true });\n scope(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n VALUE,\n \");\",\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n VALUE,\n \";\"\n );\n } else {\n scope(\n GL,\n \".\",\n GL_VARIABLES[param],\n \"(\",\n variable,\n \");\",\n CURRENT_STATE,\n \".\",\n param,\n \"=\",\n variable,\n \";\"\n );\n }\n }\n });\n }\n function injectExtensions(env, scope) {\n if (extInstancing) {\n env.instancing = scope.def(\n env.shared.extensions,\n \".angle_instanced_arrays\"\n );\n }\n }\n function emitProfile(env, scope, args, useScope, incrementCounter) {\n var shared = env.shared;\n var STATS = env.stats;\n var CURRENT_STATE = shared.current;\n var TIMER = shared.timer;\n var profileArg = args.profile;\n function perfCounter() {\n if (typeof performance === \"undefined\") {\n return \"Date.now()\";\n } else {\n return \"performance.now()\";\n }\n }\n var CPU_START, QUERY_COUNTER;\n function emitProfileStart(block) {\n CPU_START = scope.def();\n block(CPU_START, \"=\", perfCounter(), \";\");\n if (typeof incrementCounter === \"string\") {\n block(STATS, \".count+=\", incrementCounter, \";\");\n } else {\n block(STATS, \".count++;\");\n }\n if (timer) {\n if (useScope) {\n QUERY_COUNTER = scope.def();\n block(QUERY_COUNTER, \"=\", TIMER, \".getNumPendingQueries();\");\n } else {\n block(TIMER, \".beginQuery(\", STATS, \");\");\n }\n }\n }\n function emitProfileEnd(block) {\n block(STATS, \".cpuTime+=\", perfCounter(), \"-\", CPU_START, \";\");\n if (timer) {\n if (useScope) {\n block(\n TIMER,\n \".pushScopeStats(\",\n QUERY_COUNTER,\n \",\",\n TIMER,\n \".getNumPendingQueries(),\",\n STATS,\n \");\"\n );\n } else {\n block(TIMER, \".endQuery();\");\n }\n }\n }\n function scopeProfile(value) {\n var prev = scope.def(CURRENT_STATE, \".profile\");\n scope(CURRENT_STATE, \".profile=\", value, \";\");\n scope.exit(CURRENT_STATE, \".profile=\", prev, \";\");\n }\n var USE_PROFILE;\n if (profileArg) {\n if (isStatic(profileArg)) {\n if (profileArg.enable) {\n emitProfileStart(scope);\n emitProfileEnd(scope.exit);\n scopeProfile(\"true\");\n } else {\n scopeProfile(\"false\");\n }\n return;\n }\n USE_PROFILE = profileArg.append(env, scope);\n scopeProfile(USE_PROFILE);\n } else {\n USE_PROFILE = scope.def(CURRENT_STATE, \".profile\");\n }\n var start = env.block();\n emitProfileStart(start);\n scope(\"if(\", USE_PROFILE, \"){\", start, \"}\");\n var end = env.block();\n emitProfileEnd(end);\n scope.exit(\"if(\", USE_PROFILE, \"){\", end, \"}\");\n }\n function emitAttributes(env, scope, args, attributes, filter) {\n var shared = env.shared;\n function typeLength(x) {\n switch (x) {\n case GL_FLOAT_VEC2:\n case GL_INT_VEC2:\n case GL_BOOL_VEC2:\n return 2;\n case GL_FLOAT_VEC3:\n case GL_INT_VEC3:\n case GL_BOOL_VEC3:\n return 3;\n case GL_FLOAT_VEC4:\n case GL_INT_VEC4:\n case GL_BOOL_VEC4:\n return 4;\n default:\n return 1;\n }\n }\n function emitBindAttribute(ATTRIBUTE, size, record) {\n var GL = shared.gl;\n var LOCATION = scope.def(ATTRIBUTE, \".location\");\n var BINDING = scope.def(shared.attributes, \"[\", LOCATION, \"]\");\n var STATE = record.state;\n var BUFFER = record.buffer;\n var CONST_COMPONENTS = [\n record.x,\n record.y,\n record.z,\n record.w\n ];\n var COMMON_KEYS = [\n \"buffer\",\n \"normalized\",\n \"offset\",\n \"stride\"\n ];\n function emitBuffer() {\n scope(\n \"if(!\",\n BINDING,\n \".buffer){\",\n GL,\n \".enableVertexAttribArray(\",\n LOCATION,\n \");}\"\n );\n var TYPE = record.type;\n var SIZE;\n if (!record.size) {\n SIZE = size;\n } else {\n SIZE = scope.def(record.size, \"||\", size);\n }\n scope(\n \"if(\",\n BINDING,\n \".type!==\",\n TYPE,\n \"||\",\n BINDING,\n \".size!==\",\n SIZE,\n \"||\",\n COMMON_KEYS.map(function(key) {\n return BINDING + \".\" + key + \"!==\" + record[key];\n }).join(\"||\"),\n \"){\",\n GL,\n \".bindBuffer(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n BUFFER,\n \".buffer);\",\n GL,\n \".vertexAttribPointer(\",\n [\n LOCATION,\n SIZE,\n TYPE,\n record.normalized,\n record.stride,\n record.offset\n ],\n \");\",\n BINDING,\n \".type=\",\n TYPE,\n \";\",\n BINDING,\n \".size=\",\n SIZE,\n \";\",\n COMMON_KEYS.map(function(key) {\n return BINDING + \".\" + key + \"=\" + record[key] + \";\";\n }).join(\"\"),\n \"}\"\n );\n if (extInstancing) {\n var DIVISOR = record.divisor;\n scope(\n \"if(\",\n BINDING,\n \".divisor!==\",\n DIVISOR,\n \"){\",\n env.instancing,\n \".vertexAttribDivisorANGLE(\",\n [LOCATION, DIVISOR],\n \");\",\n BINDING,\n \".divisor=\",\n DIVISOR,\n \";}\"\n );\n }\n }\n function emitConstant() {\n scope(\n \"if(\",\n BINDING,\n \".buffer){\",\n GL,\n \".disableVertexAttribArray(\",\n LOCATION,\n \");\",\n BINDING,\n \".buffer=null;\",\n \"}if(\",\n CUTE_COMPONENTS.map(function(c, i) {\n return BINDING + \".\" + c + \"!==\" + CONST_COMPONENTS[i];\n }).join(\"||\"),\n \"){\",\n GL,\n \".vertexAttrib4f(\",\n LOCATION,\n \",\",\n CONST_COMPONENTS,\n \");\",\n CUTE_COMPONENTS.map(function(c, i) {\n return BINDING + \".\" + c + \"=\" + CONST_COMPONENTS[i] + \";\";\n }).join(\"\"),\n \"}\"\n );\n }\n if (STATE === ATTRIB_STATE_POINTER) {\n emitBuffer();\n } else if (STATE === ATTRIB_STATE_CONSTANT) {\n emitConstant();\n } else {\n scope(\"if(\", STATE, \"===\", ATTRIB_STATE_POINTER, \"){\");\n emitBuffer();\n scope(\"}else{\");\n emitConstant();\n scope(\"}\");\n }\n }\n attributes.forEach(function(attribute) {\n var name2 = attribute.name;\n var arg = args.attributes[name2];\n var record;\n if (arg) {\n if (!filter(arg)) {\n return;\n }\n record = arg.append(env, scope);\n } else {\n if (!filter(SCOPE_DECL)) {\n return;\n }\n var scopeAttrib = env.scopeAttrib(name2);\n record = {};\n Object.keys(new AttributeRecord2()).forEach(function(key) {\n record[key] = scope.def(scopeAttrib, \".\", key);\n });\n }\n emitBindAttribute(\n env.link(attribute),\n typeLength(attribute.info.type),\n record\n );\n });\n }\n function emitUniforms(env, scope, args, uniforms, filter, isBatchInnerLoop) {\n var shared = env.shared;\n var GL = shared.gl;\n var infix;\n for (var i = 0; i < uniforms.length; ++i) {\n var uniform = uniforms[i];\n var name2 = uniform.name;\n var type = uniform.info.type;\n var arg = args.uniforms[name2];\n var UNIFORM = env.link(uniform);\n var LOCATION = UNIFORM + \".location\";\n var VALUE;\n if (arg) {\n if (!filter(arg)) {\n continue;\n }\n if (isStatic(arg)) {\n var value = arg.value;\n if (type === GL_SAMPLER_2D || type === GL_SAMPLER_CUBE) {\n var TEX_VALUE = env.link(value._texture || value.color[0]._texture);\n scope(GL, \".uniform1i(\", LOCATION, \",\", TEX_VALUE + \".bind());\");\n scope.exit(TEX_VALUE, \".unbind();\");\n } else if (type === GL_FLOAT_MAT2 || type === GL_FLOAT_MAT3 || type === GL_FLOAT_MAT4) {\n var MAT_VALUE = env.global.def(\"new Float32Array([\" + Array.prototype.slice.call(value) + \"])\");\n var dim = 2;\n if (type === GL_FLOAT_MAT3) {\n dim = 3;\n } else if (type === GL_FLOAT_MAT4) {\n dim = 4;\n }\n scope(\n GL,\n \".uniformMatrix\",\n dim,\n \"fv(\",\n LOCATION,\n \",false,\",\n MAT_VALUE,\n \");\"\n );\n } else {\n switch (type) {\n case GL_FLOAT$7:\n infix = \"1f\";\n break;\n case GL_FLOAT_VEC2:\n infix = \"2f\";\n break;\n case GL_FLOAT_VEC3:\n infix = \"3f\";\n break;\n case GL_FLOAT_VEC4:\n infix = \"4f\";\n break;\n case GL_BOOL:\n infix = \"1i\";\n break;\n case GL_INT$2:\n infix = \"1i\";\n break;\n case GL_BOOL_VEC2:\n infix = \"2i\";\n break;\n case GL_INT_VEC2:\n infix = \"2i\";\n break;\n case GL_BOOL_VEC3:\n infix = \"3i\";\n break;\n case GL_INT_VEC3:\n infix = \"3i\";\n break;\n case GL_BOOL_VEC4:\n infix = \"4i\";\n break;\n case GL_INT_VEC4:\n infix = \"4i\";\n break;\n }\n scope(\n GL,\n \".uniform\",\n infix,\n \"(\",\n LOCATION,\n \",\",\n isArrayLike(value) ? Array.prototype.slice.call(value) : value,\n \");\"\n );\n }\n continue;\n } else {\n VALUE = arg.append(env, scope);\n }\n } else {\n if (!filter(SCOPE_DECL)) {\n continue;\n }\n VALUE = scope.def(shared.uniforms, \"[\", stringStore.id(name2), \"]\");\n }\n if (type === GL_SAMPLER_2D) {\n scope(\n \"if(\",\n VALUE,\n \"&&\",\n VALUE,\n '._reglType===\"framebuffer\"){',\n VALUE,\n \"=\",\n VALUE,\n \".color[0];\",\n \"}\"\n );\n } else if (type === GL_SAMPLER_CUBE) {\n scope(\n \"if(\",\n VALUE,\n \"&&\",\n VALUE,\n '._reglType===\"framebufferCube\"){',\n VALUE,\n \"=\",\n VALUE,\n \".color[0];\",\n \"}\"\n );\n }\n var unroll = 1;\n switch (type) {\n case GL_SAMPLER_2D:\n case GL_SAMPLER_CUBE:\n var TEX = scope.def(VALUE, \"._texture\");\n scope(GL, \".uniform1i(\", LOCATION, \",\", TEX, \".bind());\");\n scope.exit(TEX, \".unbind();\");\n continue;\n case GL_INT$2:\n case GL_BOOL:\n infix = \"1i\";\n break;\n case GL_INT_VEC2:\n case GL_BOOL_VEC2:\n infix = \"2i\";\n unroll = 2;\n break;\n case GL_INT_VEC3:\n case GL_BOOL_VEC3:\n infix = \"3i\";\n unroll = 3;\n break;\n case GL_INT_VEC4:\n case GL_BOOL_VEC4:\n infix = \"4i\";\n unroll = 4;\n break;\n case GL_FLOAT$7:\n infix = \"1f\";\n break;\n case GL_FLOAT_VEC2:\n infix = \"2f\";\n unroll = 2;\n break;\n case GL_FLOAT_VEC3:\n infix = \"3f\";\n unroll = 3;\n break;\n case GL_FLOAT_VEC4:\n infix = \"4f\";\n unroll = 4;\n break;\n case GL_FLOAT_MAT2:\n infix = \"Matrix2fv\";\n break;\n case GL_FLOAT_MAT3:\n infix = \"Matrix3fv\";\n break;\n case GL_FLOAT_MAT4:\n infix = \"Matrix4fv\";\n break;\n }\n if (infix.charAt(0) === \"M\") {\n scope(GL, \".uniform\", infix, \"(\", LOCATION, \",\");\n var matSize = Math.pow(type - GL_FLOAT_MAT2 + 2, 2);\n var STORAGE = env.global.def(\"new Float32Array(\", matSize, \")\");\n if (Array.isArray(VALUE)) {\n scope(\n \"false,(\",\n loop(matSize, function(i2) {\n return STORAGE + \"[\" + i2 + \"]=\" + VALUE[i2];\n }),\n \",\",\n STORAGE,\n \")\"\n );\n } else {\n scope(\n \"false,(Array.isArray(\",\n VALUE,\n \")||\",\n VALUE,\n \" instanceof Float32Array)?\",\n VALUE,\n \":(\",\n loop(matSize, function(i2) {\n return STORAGE + \"[\" + i2 + \"]=\" + VALUE + \"[\" + i2 + \"]\";\n }),\n \",\",\n STORAGE,\n \")\"\n );\n }\n scope(\");\");\n } else if (unroll > 1) {\n var prev = [];\n var cur = [];\n for (var j = 0; j < unroll; ++j) {\n if (Array.isArray(VALUE)) {\n cur.push(VALUE[j]);\n } else {\n cur.push(scope.def(VALUE + \"[\" + j + \"]\"));\n }\n if (isBatchInnerLoop) {\n prev.push(scope.def());\n }\n }\n if (isBatchInnerLoop) {\n scope(\"if(!\", env.batchId, \"||\", prev.map(function(p, i2) {\n return p + \"!==\" + cur[i2];\n }).join(\"||\"), \"){\", prev.map(function(p, i2) {\n return p + \"=\" + cur[i2] + \";\";\n }).join(\"\"));\n }\n scope(GL, \".uniform\", infix, \"(\", LOCATION, \",\", cur.join(\",\"), \");\");\n if (isBatchInnerLoop) {\n scope(\"}\");\n }\n } else {\n if (isBatchInnerLoop) {\n var prevS = scope.def();\n scope(\n \"if(!\",\n env.batchId,\n \"||\",\n prevS,\n \"!==\",\n VALUE,\n \"){\",\n prevS,\n \"=\",\n VALUE,\n \";\"\n );\n }\n scope(GL, \".uniform\", infix, \"(\", LOCATION, \",\", VALUE, \");\");\n if (isBatchInnerLoop) {\n scope(\"}\");\n }\n }\n }\n }\n function emitDraw(env, outer, inner, args) {\n var shared = env.shared;\n var GL = shared.gl;\n var DRAW_STATE = shared.draw;\n var drawOptions = args.draw;\n function emitElements() {\n var defn = drawOptions.elements;\n var ELEMENTS2;\n var scope = outer;\n if (defn) {\n if (defn.contextDep && args.contextDynamic || defn.propDep) {\n scope = inner;\n }\n ELEMENTS2 = defn.append(env, scope);\n if (drawOptions.elementsActive) {\n scope(\n \"if(\" + ELEMENTS2 + \")\" + GL + \".bindBuffer(\" + GL_ELEMENT_ARRAY_BUFFER$2 + \",\" + ELEMENTS2 + \".buffer.buffer);\"\n );\n }\n } else {\n ELEMENTS2 = scope.def();\n scope(\n ELEMENTS2,\n \"=\",\n DRAW_STATE,\n \".\",\n S_ELEMENTS,\n \";\",\n \"if(\",\n ELEMENTS2,\n \"){\",\n GL,\n \".bindBuffer(\",\n GL_ELEMENT_ARRAY_BUFFER$2,\n \",\",\n ELEMENTS2,\n \".buffer.buffer);}\",\n \"else if(\",\n shared.vao,\n \".currentVAO){\",\n ELEMENTS2,\n \"=\",\n env.shared.elements + \".getElements(\" + shared.vao,\n \".currentVAO.elements);\",\n !extVertexArrays ? \"if(\" + ELEMENTS2 + \")\" + GL + \".bindBuffer(\" + GL_ELEMENT_ARRAY_BUFFER$2 + \",\" + ELEMENTS2 + \".buffer.buffer);\" : \"\",\n \"}\"\n );\n }\n return ELEMENTS2;\n }\n function emitCount() {\n var defn = drawOptions.count;\n var COUNT2;\n var scope = outer;\n if (defn) {\n if (defn.contextDep && args.contextDynamic || defn.propDep) {\n scope = inner;\n }\n COUNT2 = defn.append(env, scope);\n } else {\n COUNT2 = scope.def(DRAW_STATE, \".\", S_COUNT);\n }\n return COUNT2;\n }\n var ELEMENTS = emitElements();\n function emitValue(name2) {\n var defn = drawOptions[name2];\n if (defn) {\n if (defn.contextDep && args.contextDynamic || defn.propDep) {\n return defn.append(env, inner);\n } else {\n return defn.append(env, outer);\n }\n } else {\n return outer.def(DRAW_STATE, \".\", name2);\n }\n }\n var PRIMITIVE = emitValue(S_PRIMITIVE);\n var OFFSET = emitValue(S_OFFSET);\n var COUNT = emitCount();\n if (typeof COUNT === \"number\") {\n if (COUNT === 0) {\n return;\n }\n } else {\n inner(\"if(\", COUNT, \"){\");\n inner.exit(\"}\");\n }\n var INSTANCES, EXT_INSTANCING;\n if (extInstancing) {\n INSTANCES = emitValue(S_INSTANCES);\n EXT_INSTANCING = env.instancing;\n }\n var ELEMENT_TYPE = ELEMENTS + \".type\";\n var elementsStatic = drawOptions.elements && isStatic(drawOptions.elements) && !drawOptions.vaoActive;\n function emitInstancing() {\n function drawElements() {\n inner(EXT_INSTANCING, \".drawElementsInstancedANGLE(\", [\n PRIMITIVE,\n COUNT,\n ELEMENT_TYPE,\n OFFSET + \"<<((\" + ELEMENT_TYPE + \"-\" + GL_UNSIGNED_BYTE$7 + \")>>1)\",\n INSTANCES\n ], \");\");\n }\n function drawArrays() {\n inner(\n EXT_INSTANCING,\n \".drawArraysInstancedANGLE(\",\n [PRIMITIVE, OFFSET, COUNT, INSTANCES],\n \");\"\n );\n }\n if (ELEMENTS && ELEMENTS !== \"null\") {\n if (!elementsStatic) {\n inner(\"if(\", ELEMENTS, \"){\");\n drawElements();\n inner(\"}else{\");\n drawArrays();\n inner(\"}\");\n } else {\n drawElements();\n }\n } else {\n drawArrays();\n }\n }\n function emitRegular() {\n function drawElements() {\n inner(GL + \".drawElements(\" + [\n PRIMITIVE,\n COUNT,\n ELEMENT_TYPE,\n OFFSET + \"<<((\" + ELEMENT_TYPE + \"-\" + GL_UNSIGNED_BYTE$7 + \")>>1)\"\n ] + \");\");\n }\n function drawArrays() {\n inner(GL + \".drawArrays(\" + [PRIMITIVE, OFFSET, COUNT] + \");\");\n }\n if (ELEMENTS && ELEMENTS !== \"null\") {\n if (!elementsStatic) {\n inner(\"if(\", ELEMENTS, \"){\");\n drawElements();\n inner(\"}else{\");\n drawArrays();\n inner(\"}\");\n } else {\n drawElements();\n }\n } else {\n drawArrays();\n }\n }\n if (extInstancing && (typeof INSTANCES !== \"number\" || INSTANCES >= 0)) {\n if (typeof INSTANCES === \"string\") {\n inner(\"if(\", INSTANCES, \">0){\");\n emitInstancing();\n inner(\"}else if(\", INSTANCES, \"<0){\");\n emitRegular();\n inner(\"}\");\n } else {\n emitInstancing();\n }\n } else {\n emitRegular();\n }\n }\n function createBody(emitBody, parentEnv, args, program, count) {\n var env = createREGLEnvironment();\n var scope = env.proc(\"body\", count);\n if (extInstancing) {\n env.instancing = scope.def(\n env.shared.extensions,\n \".angle_instanced_arrays\"\n );\n }\n emitBody(env, scope, args, program);\n return env.compile().body;\n }\n function emitDrawBody(env, draw, args, program) {\n injectExtensions(env, draw);\n if (args.useVAO) {\n if (args.drawVAO) {\n draw(env.shared.vao, \".setVAO(\", args.drawVAO.append(env, draw), \");\");\n } else {\n draw(env.shared.vao, \".setVAO(\", env.shared.vao, \".targetVAO);\");\n }\n } else {\n draw(env.shared.vao, \".setVAO(null);\");\n emitAttributes(env, draw, args, program.attributes, function() {\n return true;\n });\n }\n emitUniforms(env, draw, args, program.uniforms, function() {\n return true;\n }, false);\n emitDraw(env, draw, draw, args);\n }\n function emitDrawProc(env, args) {\n var draw = env.proc(\"draw\", 1);\n injectExtensions(env, draw);\n emitContext(env, draw, args.context);\n emitPollFramebuffer(env, draw, args.framebuffer);\n emitPollState(env, draw, args);\n emitSetOptions(env, draw, args.state);\n emitProfile(env, draw, args, false, true);\n var program = args.shader.progVar.append(env, draw);\n draw(env.shared.gl, \".useProgram(\", program, \".program);\");\n if (args.shader.program) {\n emitDrawBody(env, draw, args, args.shader.program);\n } else {\n draw(env.shared.vao, \".setVAO(null);\");\n var drawCache = env.global.def(\"{}\");\n var PROG_ID = draw.def(program, \".id\");\n var CACHED_PROC = draw.def(drawCache, \"[\", PROG_ID, \"]\");\n draw(\n env.cond(CACHED_PROC).then(CACHED_PROC, \".call(this,a0);\").else(\n CACHED_PROC,\n \"=\",\n drawCache,\n \"[\",\n PROG_ID,\n \"]=\",\n env.link(function(program2) {\n return createBody(emitDrawBody, env, args, program2, 1);\n }),\n \"(\",\n program,\n \");\",\n CACHED_PROC,\n \".call(this,a0);\"\n )\n );\n }\n if (Object.keys(args.state).length > 0) {\n draw(env.shared.current, \".dirty=true;\");\n }\n if (env.shared.vao) {\n draw(env.shared.vao, \".setVAO(null);\");\n }\n }\n function emitBatchDynamicShaderBody(env, scope, args, program) {\n env.batchId = \"a1\";\n injectExtensions(env, scope);\n function all() {\n return true;\n }\n emitAttributes(env, scope, args, program.attributes, all);\n emitUniforms(env, scope, args, program.uniforms, all, false);\n emitDraw(env, scope, scope, args);\n }\n function emitBatchBody(env, scope, args, program) {\n injectExtensions(env, scope);\n var contextDynamic = args.contextDep;\n var BATCH_ID = scope.def();\n var PROP_LIST = \"a0\";\n var NUM_PROPS = \"a1\";\n var PROPS = scope.def();\n env.shared.props = PROPS;\n env.batchId = BATCH_ID;\n var outer = env.scope();\n var inner = env.scope();\n scope(\n outer.entry,\n \"for(\",\n BATCH_ID,\n \"=0;\",\n BATCH_ID,\n \"<\",\n NUM_PROPS,\n \";++\",\n BATCH_ID,\n \"){\",\n PROPS,\n \"=\",\n PROP_LIST,\n \"[\",\n BATCH_ID,\n \"];\",\n inner,\n \"}\",\n outer.exit\n );\n function isInnerDefn(defn) {\n return defn.contextDep && contextDynamic || defn.propDep;\n }\n function isOuterDefn(defn) {\n return !isInnerDefn(defn);\n }\n if (args.needsContext) {\n emitContext(env, inner, args.context);\n }\n if (args.needsFramebuffer) {\n emitPollFramebuffer(env, inner, args.framebuffer);\n }\n emitSetOptions(env, inner, args.state, isInnerDefn);\n if (args.profile && isInnerDefn(args.profile)) {\n emitProfile(env, inner, args, false, true);\n }\n if (!program) {\n var progCache = env.global.def(\"{}\");\n var PROGRAM = args.shader.progVar.append(env, inner);\n var PROG_ID = inner.def(PROGRAM, \".id\");\n var CACHED_PROC = inner.def(progCache, \"[\", PROG_ID, \"]\");\n inner(\n env.shared.gl,\n \".useProgram(\",\n PROGRAM,\n \".program);\",\n \"if(!\",\n CACHED_PROC,\n \"){\",\n CACHED_PROC,\n \"=\",\n progCache,\n \"[\",\n PROG_ID,\n \"]=\",\n env.link(function(program2) {\n return createBody(\n emitBatchDynamicShaderBody,\n env,\n args,\n program2,\n 2\n );\n }),\n \"(\",\n PROGRAM,\n \");}\",\n CACHED_PROC,\n \".call(this,a0[\",\n BATCH_ID,\n \"],\",\n BATCH_ID,\n \");\"\n );\n } else {\n if (args.useVAO) {\n if (args.drawVAO) {\n if (isInnerDefn(args.drawVAO)) {\n inner(env.shared.vao, \".setVAO(\", args.drawVAO.append(env, inner), \");\");\n } else {\n outer(env.shared.vao, \".setVAO(\", args.drawVAO.append(env, outer), \");\");\n }\n } else {\n outer(env.shared.vao, \".setVAO(\", env.shared.vao, \".targetVAO);\");\n }\n } else {\n outer(env.shared.vao, \".setVAO(null);\");\n emitAttributes(env, outer, args, program.attributes, isOuterDefn);\n emitAttributes(env, inner, args, program.attributes, isInnerDefn);\n }\n emitUniforms(env, outer, args, program.uniforms, isOuterDefn, false);\n emitUniforms(env, inner, args, program.uniforms, isInnerDefn, true);\n emitDraw(env, outer, inner, args);\n }\n }\n function emitBatchProc(env, args) {\n var batch = env.proc(\"batch\", 2);\n env.batchId = \"0\";\n injectExtensions(env, batch);\n var contextDynamic = false;\n var needsContext = true;\n Object.keys(args.context).forEach(function(name2) {\n contextDynamic = contextDynamic || args.context[name2].propDep;\n });\n if (!contextDynamic) {\n emitContext(env, batch, args.context);\n needsContext = false;\n }\n var framebuffer = args.framebuffer;\n var needsFramebuffer = false;\n if (framebuffer) {\n if (framebuffer.propDep) {\n contextDynamic = needsFramebuffer = true;\n } else if (framebuffer.contextDep && contextDynamic) {\n needsFramebuffer = true;\n }\n if (!needsFramebuffer) {\n emitPollFramebuffer(env, batch, framebuffer);\n }\n } else {\n emitPollFramebuffer(env, batch, null);\n }\n if (args.state.viewport && args.state.viewport.propDep) {\n contextDynamic = true;\n }\n function isInnerDefn(defn) {\n return defn.contextDep && contextDynamic || defn.propDep;\n }\n emitPollState(env, batch, args);\n emitSetOptions(env, batch, args.state, function(defn) {\n return !isInnerDefn(defn);\n });\n if (!args.profile || !isInnerDefn(args.profile)) {\n emitProfile(env, batch, args, false, \"a1\");\n }\n args.contextDep = contextDynamic;\n args.needsContext = needsContext;\n args.needsFramebuffer = needsFramebuffer;\n var progDefn = args.shader.progVar;\n if (progDefn.contextDep && contextDynamic || progDefn.propDep) {\n emitBatchBody(\n env,\n batch,\n args,\n null\n );\n } else {\n var PROGRAM = progDefn.append(env, batch);\n batch(env.shared.gl, \".useProgram(\", PROGRAM, \".program);\");\n if (args.shader.program) {\n emitBatchBody(\n env,\n batch,\n args,\n args.shader.program\n );\n } else {\n batch(env.shared.vao, \".setVAO(null);\");\n var batchCache = env.global.def(\"{}\");\n var PROG_ID = batch.def(PROGRAM, \".id\");\n var CACHED_PROC = batch.def(batchCache, \"[\", PROG_ID, \"]\");\n batch(\n env.cond(CACHED_PROC).then(CACHED_PROC, \".call(this,a0,a1);\").else(\n CACHED_PROC,\n \"=\",\n batchCache,\n \"[\",\n PROG_ID,\n \"]=\",\n env.link(function(program) {\n return createBody(emitBatchBody, env, args, program, 2);\n }),\n \"(\",\n PROGRAM,\n \");\",\n CACHED_PROC,\n \".call(this,a0,a1);\"\n )\n );\n }\n }\n if (Object.keys(args.state).length > 0) {\n batch(env.shared.current, \".dirty=true;\");\n }\n if (env.shared.vao) {\n batch(env.shared.vao, \".setVAO(null);\");\n }\n }\n function emitScopeProc(env, args) {\n var scope = env.proc(\"scope\", 3);\n env.batchId = \"a2\";\n var shared = env.shared;\n var CURRENT_STATE = shared.current;\n emitContext(env, scope, args.context);\n if (args.framebuffer) {\n args.framebuffer.append(env, scope);\n }\n sortState(Object.keys(args.state)).forEach(function(name2) {\n var defn = args.state[name2];\n var value = defn.append(env, scope);\n if (isArrayLike(value)) {\n value.forEach(function(v, i) {\n if (hasVariableReference(v)) {\n scope.set(env.next[name2], \"[\" + i + \"]\", v);\n } else {\n scope.set(env.next[name2], \"[\" + i + \"]\", env.link(v, { stable: true }));\n }\n });\n } else {\n if (isStatic(defn)) {\n scope.set(shared.next, \".\" + name2, env.link(value, { stable: true }));\n } else {\n scope.set(shared.next, \".\" + name2, value);\n }\n }\n });\n emitProfile(env, scope, args, true, true);\n [S_ELEMENTS, S_OFFSET, S_COUNT, S_INSTANCES, S_PRIMITIVE].forEach(\n function(opt) {\n var variable = args.draw[opt];\n if (!variable) {\n return;\n }\n var VARIABLE2 = variable.append(env, scope);\n if (hasVariableReference(VARIABLE2)) {\n scope.set(shared.draw, \".\" + opt, VARIABLE2);\n } else {\n scope.set(shared.draw, \".\" + opt, env.link(VARIABLE2), { stable: true });\n }\n }\n );\n Object.keys(args.uniforms).forEach(function(opt) {\n var value = args.uniforms[opt].append(env, scope);\n if (Array.isArray(value)) {\n value = \"[\" + value.map(function(v) {\n if (hasVariableReference(v)) {\n return v;\n } else {\n return env.link(v, { stable: true });\n }\n }) + \"]\";\n }\n scope.set(\n shared.uniforms,\n \"[\" + env.link(stringStore.id(opt), { stable: true }) + \"]\",\n value\n );\n });\n Object.keys(args.attributes).forEach(function(name2) {\n var record = args.attributes[name2].append(env, scope);\n var scopeAttrib = env.scopeAttrib(name2);\n Object.keys(new AttributeRecord2()).forEach(function(prop) {\n scope.set(scopeAttrib, \".\" + prop, record[prop]);\n });\n });\n if (args.scopeVAO) {\n var VARIABLE = args.scopeVAO.append(env, scope);\n if (hasVariableReference(VARIABLE)) {\n scope.set(shared.vao, \".targetVAO\", VARIABLE);\n } else {\n scope.set(shared.vao, \".targetVAO\", env.link(VARIABLE, { stable: true }));\n }\n }\n function saveShader(name2) {\n var shader = args.shader[name2];\n if (shader) {\n var VARIABLE2 = shader.append(env, scope);\n if (hasVariableReference(VARIABLE2)) {\n scope.set(shared.shader, \".\" + name2, VARIABLE2);\n } else {\n scope.set(shared.shader, \".\" + name2, env.link(VARIABLE2, { stable: true }));\n }\n }\n }\n saveShader(S_VERT);\n saveShader(S_FRAG);\n if (Object.keys(args.state).length > 0) {\n scope(CURRENT_STATE, \".dirty=true;\");\n scope.exit(CURRENT_STATE, \".dirty=true;\");\n }\n scope(\"a1(\", env.shared.context, \",a0,\", env.batchId, \");\");\n }\n function isDynamicObject(object) {\n if (typeof object !== \"object\" || isArrayLike(object)) {\n return;\n }\n var props = Object.keys(object);\n for (var i = 0; i < props.length; ++i) {\n if (dynamic.isDynamic(object[props[i]])) {\n return true;\n }\n }\n return false;\n }\n function splatObject(env, options, name2) {\n var object = options.static[name2];\n if (!object || !isDynamicObject(object)) {\n return;\n }\n var globals = env.global;\n var keys = Object.keys(object);\n var thisDep = false;\n var contextDep = false;\n var propDep = false;\n var objectRef = env.global.def(\"{}\");\n keys.forEach(function(key) {\n var value = object[key];\n if (dynamic.isDynamic(value)) {\n if (typeof value === \"function\") {\n value = object[key] = dynamic.unbox(value);\n }\n var deps = createDynamicDecl(value, null);\n thisDep = thisDep || deps.thisDep;\n propDep = propDep || deps.propDep;\n contextDep = contextDep || deps.contextDep;\n } else {\n globals(objectRef, \".\", key, \"=\");\n switch (typeof value) {\n case \"number\":\n globals(value);\n break;\n case \"string\":\n globals('\"', value, '\"');\n break;\n case \"object\":\n if (Array.isArray(value)) {\n globals(\"[\", value.join(), \"]\");\n }\n break;\n default:\n globals(env.link(value));\n break;\n }\n globals(\";\");\n }\n });\n function appendBlock(env2, block) {\n keys.forEach(function(key) {\n var value = object[key];\n if (!dynamic.isDynamic(value)) {\n return;\n }\n var ref = env2.invoke(block, value);\n block(objectRef, \".\", key, \"=\", ref, \";\");\n });\n }\n options.dynamic[name2] = new dynamic.DynamicVariable(DYN_THUNK, {\n thisDep,\n contextDep,\n propDep,\n ref: objectRef,\n append: appendBlock\n });\n delete options.static[name2];\n }\n function compileCommand(options, attributes, uniforms, context, stats2) {\n var env = createREGLEnvironment();\n env.stats = env.link(stats2);\n Object.keys(attributes.static).forEach(function(key) {\n splatObject(env, attributes, key);\n });\n NESTED_OPTIONS.forEach(function(name2) {\n splatObject(env, options, name2);\n });\n var args = parseArguments(options, attributes, uniforms, context, env);\n if (args.shader.program) {\n args.shader.program.attributes.sort(function(a, b) {\n return a.name < b.name ? -1 : 1;\n });\n args.shader.program.uniforms.sort(function(a, b) {\n return a.name < b.name ? -1 : 1;\n });\n }\n emitDrawProc(env, args);\n emitScopeProc(env, args);\n emitBatchProc(env, args);\n return extend2(env.compile(), {\n destroy: function() {\n args.shader.program.destroy();\n }\n });\n }\n return {\n next: nextState,\n current: currentState,\n procs: function() {\n var env = createREGLEnvironment();\n var poll = env.proc(\"poll\");\n var refresh = env.proc(\"refresh\");\n var common = env.block();\n poll(common);\n refresh(common);\n var shared = env.shared;\n var GL = shared.gl;\n var NEXT_STATE = shared.next;\n var CURRENT_STATE = shared.current;\n common(CURRENT_STATE, \".dirty=false;\");\n emitPollFramebuffer(env, poll);\n emitPollFramebuffer(env, refresh, null, true);\n var INSTANCING;\n if (extInstancing) {\n INSTANCING = env.link(extInstancing);\n }\n if (extensions.oes_vertex_array_object) {\n refresh(env.link(extensions.oes_vertex_array_object), \".bindVertexArrayOES(null);\");\n }\n var BINDING = refresh.def(shared.attributes);\n var TEMP_BINDING = refresh.def(0);\n var ifte = env.cond(TEMP_BINDING, \".buffer\");\n ifte.then(\n GL,\n \".enableVertexAttribArray(i);\",\n GL,\n \".bindBuffer(\",\n GL_ARRAY_BUFFER$2,\n \",\",\n TEMP_BINDING,\n \".buffer.buffer);\",\n GL,\n \".vertexAttribPointer(i,\",\n TEMP_BINDING,\n \".size,\",\n TEMP_BINDING,\n \".type,\",\n TEMP_BINDING,\n \".normalized,\",\n TEMP_BINDING,\n \".stride,\",\n TEMP_BINDING,\n \".offset);\"\n ).else(\n GL,\n \".disableVertexAttribArray(i);\",\n GL,\n \".vertexAttrib4f(i,\",\n TEMP_BINDING,\n \".x,\",\n TEMP_BINDING,\n \".y,\",\n TEMP_BINDING,\n \".z,\",\n TEMP_BINDING,\n \".w);\",\n TEMP_BINDING,\n \".buffer=null;\"\n );\n var MAX_ATTRIBUTES = env.link(limits.maxAttributes, { stable: true });\n refresh(\n \"for(var i=0;i<\",\n MAX_ATTRIBUTES,\n \";++i){\",\n TEMP_BINDING,\n \"=\",\n BINDING,\n \"[i];\",\n ifte,\n \"}\"\n );\n if (extInstancing) {\n refresh(\n \"for(var i=0;i<\",\n MAX_ATTRIBUTES,\n \";++i){\",\n INSTANCING,\n \".vertexAttribDivisorANGLE(i,\",\n BINDING,\n \"[i].divisor);\",\n \"}\"\n );\n }\n refresh(\n env.shared.vao,\n \".currentVAO=null;\",\n env.shared.vao,\n \".setVAO(\",\n env.shared.vao,\n \".targetVAO);\"\n );\n Object.keys(GL_FLAGS).forEach(function(flag) {\n var cap = GL_FLAGS[flag];\n var NEXT = common.def(NEXT_STATE, \".\", flag);\n var block = env.block();\n block(\n \"if(\",\n NEXT,\n \"){\",\n GL,\n \".enable(\",\n cap,\n \")}else{\",\n GL,\n \".disable(\",\n cap,\n \")}\",\n CURRENT_STATE,\n \".\",\n flag,\n \"=\",\n NEXT,\n \";\"\n );\n refresh(block);\n poll(\n \"if(\",\n NEXT,\n \"!==\",\n CURRENT_STATE,\n \".\",\n flag,\n \"){\",\n block,\n \"}\"\n );\n });\n Object.keys(GL_VARIABLES).forEach(function(name2) {\n var func = GL_VARIABLES[name2];\n var init = currentState[name2];\n var NEXT, CURRENT;\n var block = env.block();\n block(GL, \".\", func, \"(\");\n if (isArrayLike(init)) {\n var n = init.length;\n NEXT = env.global.def(NEXT_STATE, \".\", name2);\n CURRENT = env.global.def(CURRENT_STATE, \".\", name2);\n block(\n loop(n, function(i) {\n return NEXT + \"[\" + i + \"]\";\n }),\n \");\",\n loop(n, function(i) {\n return CURRENT + \"[\" + i + \"]=\" + NEXT + \"[\" + i + \"];\";\n }).join(\"\")\n );\n poll(\n \"if(\",\n loop(n, function(i) {\n return NEXT + \"[\" + i + \"]!==\" + CURRENT + \"[\" + i + \"]\";\n }).join(\"||\"),\n \"){\",\n block,\n \"}\"\n );\n } else {\n NEXT = common.def(NEXT_STATE, \".\", name2);\n CURRENT = common.def(CURRENT_STATE, \".\", name2);\n block(\n NEXT,\n \");\",\n CURRENT_STATE,\n \".\",\n name2,\n \"=\",\n NEXT,\n \";\"\n );\n poll(\n \"if(\",\n NEXT,\n \"!==\",\n CURRENT,\n \"){\",\n block,\n \"}\"\n );\n }\n refresh(block);\n });\n return env.compile();\n }(),\n compile: compileCommand\n };\n }\n function stats() {\n return {\n vaoCount: 0,\n bufferCount: 0,\n elementsCount: 0,\n framebufferCount: 0,\n shaderCount: 0,\n textureCount: 0,\n cubeCount: 0,\n renderbufferCount: 0,\n maxTextureUnits: 0\n };\n }\n var GL_QUERY_RESULT_EXT = 34918;\n var GL_QUERY_RESULT_AVAILABLE_EXT = 34919;\n var GL_TIME_ELAPSED_EXT = 35007;\n var createTimer = function(gl2, extensions) {\n if (!extensions.ext_disjoint_timer_query) {\n return null;\n }\n var queryPool = [];\n function allocQuery() {\n return queryPool.pop() || extensions.ext_disjoint_timer_query.createQueryEXT();\n }\n function freeQuery(query) {\n queryPool.push(query);\n }\n var pendingQueries = [];\n function beginQuery(stats2) {\n var query = allocQuery();\n extensions.ext_disjoint_timer_query.beginQueryEXT(GL_TIME_ELAPSED_EXT, query);\n pendingQueries.push(query);\n pushScopeStats(pendingQueries.length - 1, pendingQueries.length, stats2);\n }\n function endQuery() {\n extensions.ext_disjoint_timer_query.endQueryEXT(GL_TIME_ELAPSED_EXT);\n }\n function PendingStats() {\n this.startQueryIndex = -1;\n this.endQueryIndex = -1;\n this.sum = 0;\n this.stats = null;\n }\n var pendingStatsPool = [];\n function allocPendingStats() {\n return pendingStatsPool.pop() || new PendingStats();\n }\n function freePendingStats(pendingStats2) {\n pendingStatsPool.push(pendingStats2);\n }\n var pendingStats = [];\n function pushScopeStats(start, end, stats2) {\n var ps = allocPendingStats();\n ps.startQueryIndex = start;\n ps.endQueryIndex = end;\n ps.sum = 0;\n ps.stats = stats2;\n pendingStats.push(ps);\n }\n var timeSum = [];\n var queryPtr = [];\n function update() {\n var ptr, i;\n var n = pendingQueries.length;\n if (n === 0) {\n return;\n }\n queryPtr.length = Math.max(queryPtr.length, n + 1);\n timeSum.length = Math.max(timeSum.length, n + 1);\n timeSum[0] = 0;\n queryPtr[0] = 0;\n var queryTime = 0;\n ptr = 0;\n for (i = 0; i < pendingQueries.length; ++i) {\n var query = pendingQueries[i];\n if (extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_AVAILABLE_EXT)) {\n queryTime += extensions.ext_disjoint_timer_query.getQueryObjectEXT(query, GL_QUERY_RESULT_EXT);\n freeQuery(query);\n } else {\n pendingQueries[ptr++] = query;\n }\n timeSum[i + 1] = queryTime;\n queryPtr[i + 1] = ptr;\n }\n pendingQueries.length = ptr;\n ptr = 0;\n for (i = 0; i < pendingStats.length; ++i) {\n var stats2 = pendingStats[i];\n var start = stats2.startQueryIndex;\n var end = stats2.endQueryIndex;\n stats2.sum += timeSum[end] - timeSum[start];\n var startPtr = queryPtr[start];\n var endPtr = queryPtr[end];\n if (endPtr === startPtr) {\n stats2.stats.gpuTime += stats2.sum / 1e6;\n freePendingStats(stats2);\n } else {\n stats2.startQueryIndex = startPtr;\n stats2.endQueryIndex = endPtr;\n pendingStats[ptr++] = stats2;\n }\n }\n pendingStats.length = ptr;\n }\n return {\n beginQuery,\n endQuery,\n pushScopeStats,\n update,\n getNumPendingQueries: function() {\n return pendingQueries.length;\n },\n clear: function() {\n queryPool.push.apply(queryPool, pendingQueries);\n for (var i = 0; i < queryPool.length; i++) {\n extensions.ext_disjoint_timer_query.deleteQueryEXT(queryPool[i]);\n }\n pendingQueries.length = 0;\n queryPool.length = 0;\n },\n restore: function() {\n pendingQueries.length = 0;\n queryPool.length = 0;\n }\n };\n };\n var GL_COLOR_BUFFER_BIT = 16384;\n var GL_DEPTH_BUFFER_BIT = 256;\n var GL_STENCIL_BUFFER_BIT = 1024;\n var GL_ARRAY_BUFFER = 34962;\n var CONTEXT_LOST_EVENT = \"webglcontextlost\";\n var CONTEXT_RESTORED_EVENT = \"webglcontextrestored\";\n var DYN_PROP = 1;\n var DYN_CONTEXT = 2;\n var DYN_STATE = 3;\n function find(haystack, needle) {\n for (var i = 0; i < haystack.length; ++i) {\n if (haystack[i] === needle) {\n return i;\n }\n }\n return -1;\n }\n function wrapREGL(args) {\n var config = parseArgs(args);\n if (!config) {\n return null;\n }\n var gl2 = config.gl;\n var glAttributes = gl2.getContextAttributes();\n var contextLost = gl2.isContextLost();\n var extensionState = createExtensionCache(gl2, config);\n if (!extensionState) {\n return null;\n }\n var stringStore = createStringStore();\n var stats$$1 = stats();\n var cachedCode = config.cachedCode || {};\n var extensions = extensionState.extensions;\n var timer = createTimer(gl2, extensions);\n var START_TIME = clock();\n var WIDTH = gl2.drawingBufferWidth;\n var HEIGHT = gl2.drawingBufferHeight;\n var contextState = {\n tick: 0,\n time: 0,\n viewportWidth: WIDTH,\n viewportHeight: HEIGHT,\n framebufferWidth: WIDTH,\n framebufferHeight: HEIGHT,\n drawingBufferWidth: WIDTH,\n drawingBufferHeight: HEIGHT,\n pixelRatio: config.pixelRatio\n };\n var uniformState = {};\n var drawState = {\n elements: null,\n primitive: 4,\n // GL_TRIANGLES\n count: -1,\n offset: 0,\n instances: -1\n };\n var limits = wrapLimits(gl2, extensions);\n var bufferState = wrapBufferState(\n gl2,\n stats$$1,\n config,\n destroyBuffer\n );\n var elementState = wrapElementsState(gl2, extensions, bufferState, stats$$1);\n var attributeState = wrapAttributeState(\n gl2,\n extensions,\n limits,\n stats$$1,\n bufferState,\n elementState,\n drawState\n );\n function destroyBuffer(buffer) {\n return attributeState.destroyBuffer(buffer);\n }\n var shaderState = wrapShaderState(gl2, stringStore, stats$$1, config);\n var textureState = createTextureSet(\n gl2,\n extensions,\n limits,\n function() {\n core.procs.poll();\n },\n contextState,\n stats$$1,\n config\n );\n var renderbufferState = wrapRenderbuffers(gl2, extensions, limits, stats$$1, config);\n var framebufferState = wrapFBOState(\n gl2,\n extensions,\n limits,\n textureState,\n renderbufferState,\n stats$$1\n );\n var core = reglCore(\n gl2,\n stringStore,\n extensions,\n limits,\n bufferState,\n elementState,\n textureState,\n framebufferState,\n uniformState,\n attributeState,\n shaderState,\n drawState,\n contextState,\n timer,\n cachedCode,\n config\n );\n var readPixels = wrapReadPixels(\n gl2,\n framebufferState,\n core.procs.poll,\n contextState,\n glAttributes,\n extensions,\n limits\n );\n var nextState = core.next;\n var canvas = gl2.canvas;\n var rafCallbacks = [];\n var lossCallbacks = [];\n var restoreCallbacks = [];\n var destroyCallbacks = [config.onDestroy];\n var activeRAF = null;\n function handleRAF() {\n if (rafCallbacks.length === 0) {\n if (timer) {\n timer.update();\n }\n activeRAF = null;\n return;\n }\n activeRAF = raf.next(handleRAF);\n poll();\n for (var i = rafCallbacks.length - 1; i >= 0; --i) {\n var cb = rafCallbacks[i];\n if (cb) {\n cb(contextState, null, 0);\n }\n }\n gl2.flush();\n if (timer) {\n timer.update();\n }\n }\n function startRAF() {\n if (!activeRAF && rafCallbacks.length > 0) {\n activeRAF = raf.next(handleRAF);\n }\n }\n function stopRAF() {\n if (activeRAF) {\n raf.cancel(handleRAF);\n activeRAF = null;\n }\n }\n function handleContextLoss(event) {\n event.preventDefault();\n contextLost = true;\n stopRAF();\n lossCallbacks.forEach(function(cb) {\n cb();\n });\n }\n function handleContextRestored(event) {\n gl2.getError();\n contextLost = false;\n extensionState.restore();\n shaderState.restore();\n bufferState.restore();\n textureState.restore();\n renderbufferState.restore();\n framebufferState.restore();\n attributeState.restore();\n if (timer) {\n timer.restore();\n }\n core.procs.refresh();\n startRAF();\n restoreCallbacks.forEach(function(cb) {\n cb();\n });\n }\n if (canvas) {\n canvas.addEventListener(CONTEXT_LOST_EVENT, handleContextLoss, false);\n canvas.addEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored, false);\n }\n function destroy() {\n rafCallbacks.length = 0;\n stopRAF();\n if (canvas) {\n canvas.removeEventListener(CONTEXT_LOST_EVENT, handleContextLoss);\n canvas.removeEventListener(CONTEXT_RESTORED_EVENT, handleContextRestored);\n }\n shaderState.clear();\n framebufferState.clear();\n renderbufferState.clear();\n attributeState.clear();\n textureState.clear();\n elementState.clear();\n bufferState.clear();\n if (timer) {\n timer.clear();\n }\n destroyCallbacks.forEach(function(cb) {\n cb();\n });\n }\n function compileProcedure(options) {\n function flattenNestedOptions(options2) {\n var result = extend2({}, options2);\n delete result.uniforms;\n delete result.attributes;\n delete result.context;\n delete result.vao;\n if (\"stencil\" in result && result.stencil.op) {\n result.stencil.opBack = result.stencil.opFront = result.stencil.op;\n delete result.stencil.op;\n }\n function merge(name2) {\n if (name2 in result) {\n var child = result[name2];\n delete result[name2];\n Object.keys(child).forEach(function(prop) {\n result[name2 + \".\" + prop] = child[prop];\n });\n }\n }\n merge(\"blend\");\n merge(\"depth\");\n merge(\"cull\");\n merge(\"stencil\");\n merge(\"polygonOffset\");\n merge(\"scissor\");\n merge(\"sample\");\n if (\"vao\" in options2) {\n result.vao = options2.vao;\n }\n return result;\n }\n function separateDynamic(object, useArrays) {\n var staticItems = {};\n var dynamicItems = {};\n Object.keys(object).forEach(function(option) {\n var value = object[option];\n if (dynamic.isDynamic(value)) {\n dynamicItems[option] = dynamic.unbox(value, option);\n return;\n } else if (useArrays && Array.isArray(value)) {\n for (var i = 0; i < value.length; ++i) {\n if (dynamic.isDynamic(value[i])) {\n dynamicItems[option] = dynamic.unbox(value, option);\n return;\n }\n }\n }\n staticItems[option] = value;\n });\n return {\n dynamic: dynamicItems,\n static: staticItems\n };\n }\n var context = separateDynamic(options.context || {}, true);\n var uniforms = separateDynamic(options.uniforms || {}, true);\n var attributes = separateDynamic(options.attributes || {}, false);\n var opts = separateDynamic(flattenNestedOptions(options), false);\n var stats$$12 = {\n gpuTime: 0,\n cpuTime: 0,\n count: 0\n };\n var compiled = core.compile(opts, attributes, uniforms, context, stats$$12);\n var draw = compiled.draw;\n var batch = compiled.batch;\n var scope = compiled.scope;\n var EMPTY_ARRAY = [];\n function reserve(count) {\n while (EMPTY_ARRAY.length < count) {\n EMPTY_ARRAY.push(null);\n }\n return EMPTY_ARRAY;\n }\n function REGLCommand(args2, body) {\n var i;\n if (contextLost) {\n }\n if (typeof args2 === \"function\") {\n return scope.call(this, null, args2, 0);\n } else if (typeof body === \"function\") {\n if (typeof args2 === \"number\") {\n for (i = 0; i < args2; ++i) {\n scope.call(this, null, body, i);\n }\n } else if (Array.isArray(args2)) {\n for (i = 0; i < args2.length; ++i) {\n scope.call(this, args2[i], body, i);\n }\n } else {\n return scope.call(this, args2, body, 0);\n }\n } else if (typeof args2 === \"number\") {\n if (args2 > 0) {\n return batch.call(this, reserve(args2 | 0), args2 | 0);\n }\n } else if (Array.isArray(args2)) {\n if (args2.length) {\n return batch.call(this, args2, args2.length);\n }\n } else {\n return draw.call(this, args2);\n }\n }\n return extend2(REGLCommand, {\n stats: stats$$12,\n destroy: function() {\n compiled.destroy();\n }\n });\n }\n var setFBO = framebufferState.setFBO = compileProcedure({\n framebuffer: dynamic.define.call(null, DYN_PROP, \"framebuffer\")\n });\n function clearImpl(_, options) {\n var clearFlags = 0;\n core.procs.poll();\n var c = options.color;\n if (c) {\n gl2.clearColor(+c[0] || 0, +c[1] || 0, +c[2] || 0, +c[3] || 0);\n clearFlags |= GL_COLOR_BUFFER_BIT;\n }\n if (\"depth\" in options) {\n gl2.clearDepth(+options.depth);\n clearFlags |= GL_DEPTH_BUFFER_BIT;\n }\n if (\"stencil\" in options) {\n gl2.clearStencil(options.stencil | 0);\n clearFlags |= GL_STENCIL_BUFFER_BIT;\n }\n gl2.clear(clearFlags);\n }\n function clear(options) {\n if (\"framebuffer\" in options) {\n if (options.framebuffer && options.framebuffer_reglType === \"framebufferCube\") {\n for (var i = 0; i < 6; ++i) {\n setFBO(extend2({\n framebuffer: options.framebuffer.faces[i]\n }, options), clearImpl);\n }\n } else {\n setFBO(options, clearImpl);\n }\n } else {\n clearImpl(null, options);\n }\n }\n function frame(cb) {\n rafCallbacks.push(cb);\n function cancel() {\n var i = find(rafCallbacks, cb);\n function pendingCancel() {\n var index = find(rafCallbacks, pendingCancel);\n rafCallbacks[index] = rafCallbacks[rafCallbacks.length - 1];\n rafCallbacks.length -= 1;\n if (rafCallbacks.length <= 0) {\n stopRAF();\n }\n }\n rafCallbacks[i] = pendingCancel;\n }\n startRAF();\n return {\n cancel\n };\n }\n function pollViewport() {\n var viewport = nextState.viewport;\n var scissorBox = nextState.scissor_box;\n viewport[0] = viewport[1] = scissorBox[0] = scissorBox[1] = 0;\n contextState.viewportWidth = contextState.framebufferWidth = contextState.drawingBufferWidth = viewport[2] = scissorBox[2] = gl2.drawingBufferWidth;\n contextState.viewportHeight = contextState.framebufferHeight = contextState.drawingBufferHeight = viewport[3] = scissorBox[3] = gl2.drawingBufferHeight;\n }\n function poll() {\n contextState.tick += 1;\n contextState.time = now();\n pollViewport();\n core.procs.poll();\n }\n function refresh() {\n textureState.refresh();\n pollViewport();\n core.procs.refresh();\n if (timer) {\n timer.update();\n }\n }\n function now() {\n return (clock() - START_TIME) / 1e3;\n }\n refresh();\n function addListener(event, callback) {\n var callbacks;\n switch (event) {\n case \"frame\":\n return frame(callback);\n case \"lost\":\n callbacks = lossCallbacks;\n break;\n case \"restore\":\n callbacks = restoreCallbacks;\n break;\n case \"destroy\":\n callbacks = destroyCallbacks;\n break;\n default:\n }\n callbacks.push(callback);\n return {\n cancel: function() {\n for (var i = 0; i < callbacks.length; ++i) {\n if (callbacks[i] === callback) {\n callbacks[i] = callbacks[callbacks.length - 1];\n callbacks.pop();\n return;\n }\n }\n }\n };\n }\n function getCachedCode() {\n return cachedCode;\n }\n function preloadCachedCode(moreCache) {\n Object.entries(moreCache).forEach(function(kv) {\n cachedCode[kv[0]] = kv[1];\n });\n }\n var regl = extend2(compileProcedure, {\n // Clear current FBO\n clear,\n // Short cuts for dynamic variables\n prop: dynamic.define.bind(null, DYN_PROP),\n context: dynamic.define.bind(null, DYN_CONTEXT),\n this: dynamic.define.bind(null, DYN_STATE),\n // executes an empty draw command\n draw: compileProcedure({}),\n // Resources\n buffer: function(options) {\n return bufferState.create(options, GL_ARRAY_BUFFER, false, false);\n },\n elements: function(options) {\n return elementState.create(options, false);\n },\n texture: textureState.create2D,\n cube: textureState.createCube,\n renderbuffer: renderbufferState.create,\n framebuffer: framebufferState.create,\n framebufferCube: framebufferState.createCube,\n vao: attributeState.createVAO,\n // Expose context attributes\n attributes: glAttributes,\n // Frame rendering\n frame,\n on: addListener,\n // System limits\n limits,\n hasExtension: function(name2) {\n return limits.extensions.indexOf(name2.toLowerCase()) >= 0;\n },\n // Read pixels\n read: readPixels,\n // Destroy regl and all associated resources\n destroy,\n // Direct GL state manipulation\n _gl: gl2,\n _refresh: refresh,\n poll: function() {\n poll();\n if (timer) {\n timer.update();\n }\n },\n // Current time\n now,\n // regl Statistics Information\n stats: stats$$1,\n // cache generated code\n getCachedCode,\n preloadCachedCode\n });\n config.onDone(null, regl);\n return regl;\n }\n return wrapREGL;\n });\n }\n });\n\n // node_modules/gl-util/context.js\n var require_context = __commonJS({\n \"node_modules/gl-util/context.js\"(exports, module) {\n \"use strict\";\n var pick = require_pick_by_alias();\n module.exports = function setContext(o) {\n if (!o) o = {};\n else if (typeof o === \"string\") o = { container: o };\n if (isCanvas(o)) {\n o = { container: o };\n } else if (isElement(o)) {\n o = { container: o };\n } else if (isContext(o)) {\n o = { gl: o };\n } else {\n o = pick(o, {\n container: \"container target element el canvas holder parent parentNode wrapper use ref root node\",\n gl: \"gl context webgl glContext\",\n attrs: \"attributes attrs contextAttributes\",\n pixelRatio: \"pixelRatio pxRatio px ratio pxratio pixelratio\",\n width: \"w width\",\n height: \"h height\"\n }, true);\n }\n if (!o.pixelRatio) o.pixelRatio = window.pixelRatio || 1;\n if (o.gl) {\n return o.gl;\n }\n if (o.canvas) {\n o.container = o.canvas.parentNode;\n }\n if (o.container) {\n if (typeof o.container === \"string\") {\n var c = document.querySelector(o.container);\n if (!c) throw Error(\"Element \" + o.container + \" is not found\");\n o.container = c;\n }\n if (isCanvas(o.container)) {\n o.canvas = o.container;\n o.container = o.canvas.parentNode;\n } else if (!o.canvas) {\n o.canvas = createCanvas();\n o.container.appendChild(o.canvas);\n resize(o);\n }\n } else if (!o.canvas) {\n if (typeof document !== \"undefined\") {\n o.container = document.body || document.documentElement;\n o.canvas = createCanvas();\n o.container.appendChild(o.canvas);\n resize(o);\n } else {\n throw Error(\"Not DOM environment. Use headless-gl.\");\n }\n }\n if (!o.gl) {\n [\"webgl\", \"experimental-webgl\", \"webgl-experimental\"].some(function(c2) {\n try {\n o.gl = o.canvas.getContext(c2, o.attrs);\n } catch (e) {\n }\n return o.gl;\n });\n }\n return o.gl;\n };\n function resize(o) {\n if (o.container) {\n if (o.container == document.body) {\n if (!document.body.style.width) o.canvas.width = o.width || o.pixelRatio * window.innerWidth;\n if (!document.body.style.height) o.canvas.height = o.height || o.pixelRatio * window.innerHeight;\n } else {\n var bounds = o.container.getBoundingClientRect();\n o.canvas.width = o.width || bounds.right - bounds.left;\n o.canvas.height = o.height || bounds.bottom - bounds.top;\n }\n }\n }\n function isCanvas(e) {\n return typeof e.getContext === \"function\" && \"width\" in e && \"height\" in e;\n }\n function isElement(e) {\n return typeof e.nodeName === \"string\" && typeof e.appendChild === \"function\" && typeof e.getBoundingClientRect === \"function\";\n }\n function isContext(e) {\n return typeof e.drawArrays === \"function\" || typeof e.drawElements === \"function\";\n }\n function createCanvas() {\n var canvas = document.createElement(\"canvas\");\n canvas.style.position = \"absolute\";\n canvas.style.top = 0;\n canvas.style.left = 0;\n return canvas;\n }\n }\n });\n\n // node_modules/font-atlas/index.js\n var require_font_atlas = __commonJS({\n \"node_modules/font-atlas/index.js\"(exports, module) {\n \"use strict\";\n var stringifyFont = require_stringify();\n var defaultChars = [32, 126];\n module.exports = atlas;\n function atlas(options) {\n options = options || {};\n var shape = options.shape ? options.shape : options.canvas ? [options.canvas.width, options.canvas.height] : [512, 512];\n var canvas = options.canvas || document.createElement(\"canvas\");\n var font = options.font;\n var step = typeof options.step === \"number\" ? [options.step, options.step] : options.step || [32, 32];\n var chars = options.chars || defaultChars;\n if (font && typeof font !== \"string\") font = stringifyFont(font);\n if (!Array.isArray(chars)) {\n chars = String(chars).split(\"\");\n } else if (chars.length === 2 && typeof chars[0] === \"number\" && typeof chars[1] === \"number\") {\n var newchars = [];\n for (var i = chars[0], j = 0; i <= chars[1]; i++) {\n newchars[j++] = String.fromCharCode(i);\n }\n chars = newchars;\n }\n shape = shape.slice();\n canvas.width = shape[0];\n canvas.height = shape[1];\n var ctx = canvas.getContext(\"2d\");\n ctx.fillStyle = \"#000\";\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.font = font;\n ctx.textAlign = \"center\";\n ctx.textBaseline = \"middle\";\n ctx.fillStyle = \"#fff\";\n var x = step[0] / 2;\n var y = step[1] / 2;\n for (var i = 0; i < chars.length; i++) {\n ctx.fillText(chars[i], x, y);\n if ((x += step[0]) > shape[0] - step[0] / 2) x = step[0] / 2, y += step[1];\n }\n return canvas;\n }\n }\n });\n\n // node_modules/bit-twiddle/twiddle.js\n var require_twiddle = __commonJS({\n \"node_modules/bit-twiddle/twiddle.js\"(exports) {\n \"use strict\";\n \"use restrict\";\n var INT_BITS = 32;\n exports.INT_BITS = INT_BITS;\n exports.INT_MAX = 2147483647;\n exports.INT_MIN = -1 << INT_BITS - 1;\n exports.sign = function(v) {\n return (v > 0) - (v < 0);\n };\n exports.abs = function(v) {\n var mask = v >> INT_BITS - 1;\n return (v ^ mask) - mask;\n };\n exports.min = function(x, y) {\n return y ^ (x ^ y) & -(x < y);\n };\n exports.max = function(x, y) {\n return x ^ (x ^ y) & -(x < y);\n };\n exports.isPow2 = function(v) {\n return !(v & v - 1) && !!v;\n };\n exports.log2 = function(v) {\n var r, shift;\n r = (v > 65535) << 4;\n v >>>= r;\n shift = (v > 255) << 3;\n v >>>= shift;\n r |= shift;\n shift = (v > 15) << 2;\n v >>>= shift;\n r |= shift;\n shift = (v > 3) << 1;\n v >>>= shift;\n r |= shift;\n return r | v >> 1;\n };\n exports.log10 = function(v) {\n return v >= 1e9 ? 9 : v >= 1e8 ? 8 : v >= 1e7 ? 7 : v >= 1e6 ? 6 : v >= 1e5 ? 5 : v >= 1e4 ? 4 : v >= 1e3 ? 3 : v >= 100 ? 2 : v >= 10 ? 1 : 0;\n };\n exports.popCount = function(v) {\n v = v - (v >>> 1 & 1431655765);\n v = (v & 858993459) + (v >>> 2 & 858993459);\n return (v + (v >>> 4) & 252645135) * 16843009 >>> 24;\n };\n function countTrailingZeros(v) {\n var c = 32;\n v &= -v;\n if (v) c--;\n if (v & 65535) c -= 16;\n if (v & 16711935) c -= 8;\n if (v & 252645135) c -= 4;\n if (v & 858993459) c -= 2;\n if (v & 1431655765) c -= 1;\n return c;\n }\n exports.countTrailingZeros = countTrailingZeros;\n exports.nextPow2 = function(v) {\n v += v === 0;\n --v;\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v + 1;\n };\n exports.prevPow2 = function(v) {\n v |= v >>> 1;\n v |= v >>> 2;\n v |= v >>> 4;\n v |= v >>> 8;\n v |= v >>> 16;\n return v - (v >>> 1);\n };\n exports.parity = function(v) {\n v ^= v >>> 16;\n v ^= v >>> 8;\n v ^= v >>> 4;\n v &= 15;\n return 27030 >>> v & 1;\n };\n var REVERSE_TABLE = new Array(256);\n (function(tab) {\n for (var i = 0; i < 256; ++i) {\n var v = i, r = i, s = 7;\n for (v >>>= 1; v; v >>>= 1) {\n r <<= 1;\n r |= v & 1;\n --s;\n }\n tab[i] = r << s & 255;\n }\n })(REVERSE_TABLE);\n exports.reverse = function(v) {\n return REVERSE_TABLE[v & 255] << 24 | REVERSE_TABLE[v >>> 8 & 255] << 16 | REVERSE_TABLE[v >>> 16 & 255] << 8 | REVERSE_TABLE[v >>> 24 & 255];\n };\n exports.interleave2 = function(x, y) {\n x &= 65535;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y &= 65535;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n };\n exports.deinterleave2 = function(v, n) {\n v = v >>> n & 1431655765;\n v = (v | v >>> 1) & 858993459;\n v = (v | v >>> 2) & 252645135;\n v = (v | v >>> 4) & 16711935;\n v = (v | v >>> 16) & 65535;\n return v << 16 >> 16;\n };\n exports.interleave3 = function(x, y, z) {\n x &= 1023;\n x = (x | x << 16) & 4278190335;\n x = (x | x << 8) & 251719695;\n x = (x | x << 4) & 3272356035;\n x = (x | x << 2) & 1227133513;\n y &= 1023;\n y = (y | y << 16) & 4278190335;\n y = (y | y << 8) & 251719695;\n y = (y | y << 4) & 3272356035;\n y = (y | y << 2) & 1227133513;\n x |= y << 1;\n z &= 1023;\n z = (z | z << 16) & 4278190335;\n z = (z | z << 8) & 251719695;\n z = (z | z << 4) & 3272356035;\n z = (z | z << 2) & 1227133513;\n return x | z << 2;\n };\n exports.deinterleave3 = function(v, n) {\n v = v >>> n & 1227133513;\n v = (v | v >>> 2) & 3272356035;\n v = (v | v >>> 4) & 251719695;\n v = (v | v >>> 8) & 4278190335;\n v = (v | v >>> 16) & 1023;\n return v << 22 >> 22;\n };\n exports.nextCombination = function(v) {\n var t = v | v - 1;\n return t + 1 | (~t & -~t) - 1 >>> countTrailingZeros(v) + 1;\n };\n }\n });\n\n // node_modules/dup/dup.js\n var require_dup = __commonJS({\n \"node_modules/dup/dup.js\"(exports, module) {\n \"use strict\";\n function dupe_array(count, value, i) {\n var c = count[i] | 0;\n if (c <= 0) {\n return [];\n }\n var result = new Array(c), j;\n if (i === count.length - 1) {\n for (j = 0; j < c; ++j) {\n result[j] = value;\n }\n } else {\n for (j = 0; j < c; ++j) {\n result[j] = dupe_array(count, value, i + 1);\n }\n }\n return result;\n }\n function dupe_number(count, value) {\n var result, i;\n result = new Array(count);\n for (i = 0; i < count; ++i) {\n result[i] = value;\n }\n return result;\n }\n function dupe(count, value) {\n if (typeof value === \"undefined\") {\n value = 0;\n }\n switch (typeof count) {\n case \"number\":\n if (count > 0) {\n return dupe_number(count | 0, value);\n }\n break;\n case \"object\":\n if (typeof count.length === \"number\") {\n return dupe_array(count, value, 0);\n }\n break;\n }\n return [];\n }\n module.exports = dupe;\n }\n });\n\n // node_modules/typedarray-pool/pool.js\n var require_pool = __commonJS({\n \"node_modules/typedarray-pool/pool.js\"(exports) {\n \"use strict\";\n var bits = require_twiddle();\n var dup = require_dup();\n var Buffer2 = require_buffer().Buffer;\n if (!window.__TYPEDARRAY_POOL) {\n window.__TYPEDARRAY_POOL = {\n UINT8: dup([32, 0]),\n UINT16: dup([32, 0]),\n UINT32: dup([32, 0]),\n BIGUINT64: dup([32, 0]),\n INT8: dup([32, 0]),\n INT16: dup([32, 0]),\n INT32: dup([32, 0]),\n BIGINT64: dup([32, 0]),\n FLOAT: dup([32, 0]),\n DOUBLE: dup([32, 0]),\n DATA: dup([32, 0]),\n UINT8C: dup([32, 0]),\n BUFFER: dup([32, 0])\n };\n }\n var hasUint8C = typeof Uint8ClampedArray !== \"undefined\";\n var hasBigUint64 = typeof BigUint64Array !== \"undefined\";\n var hasBigInt64 = typeof BigInt64Array !== \"undefined\";\n var POOL = window.__TYPEDARRAY_POOL;\n if (!POOL.UINT8C) {\n POOL.UINT8C = dup([32, 0]);\n }\n if (!POOL.BIGUINT64) {\n POOL.BIGUINT64 = dup([32, 0]);\n }\n if (!POOL.BIGINT64) {\n POOL.BIGINT64 = dup([32, 0]);\n }\n if (!POOL.BUFFER) {\n POOL.BUFFER = dup([32, 0]);\n }\n var DATA = POOL.DATA;\n var BUFFER = POOL.BUFFER;\n exports.free = function free(array) {\n if (Buffer2.isBuffer(array)) {\n BUFFER[bits.log2(array.length)].push(array);\n } else {\n if (Object.prototype.toString.call(array) !== \"[object ArrayBuffer]\") {\n array = array.buffer;\n }\n if (!array) {\n return;\n }\n var n = array.length || array.byteLength;\n var log_n = bits.log2(n) | 0;\n DATA[log_n].push(array);\n }\n };\n function freeArrayBuffer(buffer) {\n if (!buffer) {\n return;\n }\n var n = buffer.length || buffer.byteLength;\n var log_n = bits.log2(n);\n DATA[log_n].push(buffer);\n }\n function freeTypedArray(array) {\n freeArrayBuffer(array.buffer);\n }\n exports.freeUint8 = exports.freeUint16 = exports.freeUint32 = exports.freeBigUint64 = exports.freeInt8 = exports.freeInt16 = exports.freeInt32 = exports.freeBigInt64 = exports.freeFloat32 = exports.freeFloat = exports.freeFloat64 = exports.freeDouble = exports.freeUint8Clamped = exports.freeDataView = freeTypedArray;\n exports.freeArrayBuffer = freeArrayBuffer;\n exports.freeBuffer = function freeBuffer(array) {\n BUFFER[bits.log2(array.length)].push(array);\n };\n exports.malloc = function malloc(n, dtype) {\n if (dtype === void 0 || dtype === \"arraybuffer\") {\n return mallocArrayBuffer(n);\n } else {\n switch (dtype) {\n case \"uint8\":\n return mallocUint8(n);\n case \"uint16\":\n return mallocUint16(n);\n case \"uint32\":\n return mallocUint32(n);\n case \"int8\":\n return mallocInt8(n);\n case \"int16\":\n return mallocInt16(n);\n case \"int32\":\n return mallocInt32(n);\n case \"float\":\n case \"float32\":\n return mallocFloat(n);\n case \"double\":\n case \"float64\":\n return mallocDouble(n);\n case \"uint8_clamped\":\n return mallocUint8Clamped(n);\n case \"bigint64\":\n return mallocBigInt64(n);\n case \"biguint64\":\n return mallocBigUint64(n);\n case \"buffer\":\n return mallocBuffer(n);\n case \"data\":\n case \"dataview\":\n return mallocDataView(n);\n default:\n return null;\n }\n }\n return null;\n };\n function mallocArrayBuffer(n) {\n var n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var d = DATA[log_n];\n if (d.length > 0) {\n return d.pop();\n }\n return new ArrayBuffer(n);\n }\n exports.mallocArrayBuffer = mallocArrayBuffer;\n function mallocUint8(n) {\n return new Uint8Array(mallocArrayBuffer(n), 0, n);\n }\n exports.mallocUint8 = mallocUint8;\n function mallocUint16(n) {\n return new Uint16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports.mallocUint16 = mallocUint16;\n function mallocUint32(n) {\n return new Uint32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports.mallocUint32 = mallocUint32;\n function mallocInt8(n) {\n return new Int8Array(mallocArrayBuffer(n), 0, n);\n }\n exports.mallocInt8 = mallocInt8;\n function mallocInt16(n) {\n return new Int16Array(mallocArrayBuffer(2 * n), 0, n);\n }\n exports.mallocInt16 = mallocInt16;\n function mallocInt32(n) {\n return new Int32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports.mallocInt32 = mallocInt32;\n function mallocFloat(n) {\n return new Float32Array(mallocArrayBuffer(4 * n), 0, n);\n }\n exports.mallocFloat32 = exports.mallocFloat = mallocFloat;\n function mallocDouble(n) {\n return new Float64Array(mallocArrayBuffer(8 * n), 0, n);\n }\n exports.mallocFloat64 = exports.mallocDouble = mallocDouble;\n function mallocUint8Clamped(n) {\n if (hasUint8C) {\n return new Uint8ClampedArray(mallocArrayBuffer(n), 0, n);\n } else {\n return mallocUint8(n);\n }\n }\n exports.mallocUint8Clamped = mallocUint8Clamped;\n function mallocBigUint64(n) {\n if (hasBigUint64) {\n return new BigUint64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports.mallocBigUint64 = mallocBigUint64;\n function mallocBigInt64(n) {\n if (hasBigInt64) {\n return new BigInt64Array(mallocArrayBuffer(8 * n), 0, n);\n } else {\n return null;\n }\n }\n exports.mallocBigInt64 = mallocBigInt64;\n function mallocDataView(n) {\n return new DataView(mallocArrayBuffer(n), 0, n);\n }\n exports.mallocDataView = mallocDataView;\n function mallocBuffer(n) {\n n = bits.nextPow2(n);\n var log_n = bits.log2(n);\n var cache = BUFFER[log_n];\n if (cache.length > 0) {\n return cache.pop();\n }\n return new Buffer2(n);\n }\n exports.mallocBuffer = mallocBuffer;\n exports.clearCache = function clearCache() {\n for (var i = 0; i < 32; ++i) {\n POOL.UINT8[i].length = 0;\n POOL.UINT16[i].length = 0;\n POOL.UINT32[i].length = 0;\n POOL.INT8[i].length = 0;\n POOL.INT16[i].length = 0;\n POOL.INT32[i].length = 0;\n POOL.FLOAT[i].length = 0;\n POOL.DOUBLE[i].length = 0;\n POOL.BIGUINT64[i].length = 0;\n POOL.BIGINT64[i].length = 0;\n POOL.UINT8C[i].length = 0;\n DATA[i].length = 0;\n BUFFER[i].length = 0;\n }\n };\n }\n });\n\n // node_modules/is-plain-obj/index.js\n var require_is_plain_obj = __commonJS({\n \"node_modules/is-plain-obj/index.js\"(exports, module) {\n \"use strict\";\n var toString = Object.prototype.toString;\n module.exports = function(x) {\n var prototype;\n return toString.call(x) === \"[object Object]\" && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n };\n }\n });\n\n // node_modules/parse-unit/index.js\n var require_parse_unit = __commonJS({\n \"node_modules/parse-unit/index.js\"(exports, module) {\n module.exports = function parseUnit(str, out) {\n if (!out)\n out = [0, \"\"];\n str = String(str);\n var num = parseFloat(str, 10);\n out[0] = num;\n out[1] = str.match(/[\\d.\\-\\+]*\\s*(.*)/)[1] || \"\";\n return out;\n };\n }\n });\n\n // node_modules/to-px/topx.js\n var require_topx = __commonJS({\n \"node_modules/to-px/topx.js\"(exports, module) {\n \"use strict\";\n var parseUnit = require_parse_unit();\n module.exports = toPX;\n var PIXELS_PER_INCH = 96;\n function getPropertyInPX(element, prop) {\n var parts = parseUnit(getComputedStyle(element).getPropertyValue(prop));\n return parts[0] * toPX(parts[1], element);\n }\n function getSizeBrutal(unit, element) {\n var testDIV = document.createElement(\"div\");\n testDIV.style[\"font-size\"] = \"128\" + unit;\n element.appendChild(testDIV);\n var size = getPropertyInPX(testDIV, \"font-size\") / 128;\n element.removeChild(testDIV);\n return size;\n }\n function toPX(str, element) {\n element = element || document.body;\n str = (str || \"px\").trim().toLowerCase();\n if (element === window || element === document) {\n element = document.body;\n }\n switch (str) {\n case \"%\":\n return element.clientHeight / 100;\n case \"ch\":\n case \"ex\":\n return getSizeBrutal(str, element);\n case \"em\":\n return getPropertyInPX(element, \"font-size\");\n case \"rem\":\n return getPropertyInPX(document.body, \"font-size\");\n case \"vw\":\n return window.innerWidth / 100;\n case \"vh\":\n return window.innerHeight / 100;\n case \"vmin\":\n return Math.min(window.innerWidth, window.innerHeight) / 100;\n case \"vmax\":\n return Math.max(window.innerWidth, window.innerHeight) / 100;\n case \"in\":\n return PIXELS_PER_INCH;\n case \"cm\":\n return PIXELS_PER_INCH / 2.54;\n case \"mm\":\n return PIXELS_PER_INCH / 25.4;\n case \"pt\":\n return PIXELS_PER_INCH / 72;\n case \"pc\":\n return PIXELS_PER_INCH / 6;\n }\n return 1;\n }\n }\n });\n\n // node_modules/detect-kerning/index.js\n var require_detect_kerning = __commonJS({\n \"node_modules/detect-kerning/index.js\"(exports, module) {\n \"use strict\";\n module.exports = kerning;\n var canvas = kerning.canvas = document.createElement(\"canvas\");\n var ctx = canvas.getContext(\"2d\");\n var asciiPairs = createPairs([32, 126]);\n kerning.createPairs = createPairs;\n kerning.ascii = asciiPairs;\n function kerning(family, o) {\n if (Array.isArray(family)) family = family.join(\", \");\n var table = {}, pairs, fs = 16, threshold = 0.05;\n if (o) {\n if (o.length === 2 && typeof o[0] === \"number\") {\n pairs = createPairs(o);\n } else if (Array.isArray(o)) {\n pairs = o;\n } else {\n if (o.o) pairs = createPairs(o.o);\n else if (o.pairs) pairs = o.pairs;\n if (o.fontSize) fs = o.fontSize;\n if (o.threshold != null) threshold = o.threshold;\n }\n }\n if (!pairs) pairs = asciiPairs;\n ctx.font = fs + \"px \" + family;\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var width = ctx.measureText(pair[0]).width + ctx.measureText(pair[1]).width;\n var kerningWidth = ctx.measureText(pair).width;\n if (Math.abs(width - kerningWidth) > fs * threshold) {\n var emWidth = (kerningWidth - width) / fs;\n table[pair] = emWidth * 1e3;\n }\n }\n return table;\n }\n function createPairs(range) {\n var pairs = [];\n for (var i = range[0]; i <= range[1]; i++) {\n var leftChar = String.fromCharCode(i);\n for (var j = range[0]; j < range[1]; j++) {\n var rightChar = String.fromCharCode(j);\n var pair = leftChar + rightChar;\n pairs.push(pair);\n }\n }\n return pairs;\n }\n }\n });\n\n // node_modules/font-measure/index.js\n var require_font_measure = __commonJS({\n \"node_modules/font-measure/index.js\"(exports, module) {\n \"use strict\";\n module.exports = measure;\n measure.canvas = document.createElement(\"canvas\");\n measure.cache = {};\n function measure(font, o) {\n if (!o) o = {};\n if (typeof font === \"string\" || Array.isArray(font)) {\n o.family = font;\n }\n var family = Array.isArray(o.family) ? o.family.join(\", \") : o.family;\n if (!family) throw Error(\"`family` must be defined\");\n var fs = o.size || o.fontSize || o.em || 48;\n var weight = o.weight || o.fontWeight || \"\";\n var style = o.style || o.fontStyle || \"\";\n var font = [style, weight, fs].join(\" \") + \"px \" + family;\n var origin = o.origin || \"top\";\n if (measure.cache[family]) {\n if (fs <= measure.cache[family].em) {\n return applyOrigin(measure.cache[family], origin);\n }\n }\n var canvas = o.canvas || measure.canvas;\n var ctx = canvas.getContext(\"2d\");\n var chars = {\n upper: o.upper !== void 0 ? o.upper : \"H\",\n lower: o.lower !== void 0 ? o.lower : \"x\",\n descent: o.descent !== void 0 ? o.descent : \"p\",\n ascent: o.ascent !== void 0 ? o.ascent : \"h\",\n tittle: o.tittle !== void 0 ? o.tittle : \"i\",\n overshoot: o.overshoot !== void 0 ? o.overshoot : \"O\"\n };\n var l = Math.ceil(fs * 1.5);\n canvas.height = l;\n canvas.width = l * 0.5;\n ctx.font = font;\n var char = \"H\";\n var result = {\n top: 0\n };\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillStyle = \"black\";\n ctx.fillText(char, 0, 0);\n var topPx = firstTop(ctx.getImageData(0, 0, l, l));\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"bottom\";\n ctx.fillText(char, 0, l);\n var bottomPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.lineHeight = result.bottom = l - bottomPx + topPx;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"alphabetic\";\n ctx.fillText(char, 0, l);\n var baselinePx = firstTop(ctx.getImageData(0, 0, l, l));\n var baseline = l - baselinePx - 1 + topPx;\n result.baseline = result.alphabetic = baseline;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"middle\";\n ctx.fillText(char, 0, l * 0.5);\n var medianPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.median = result.middle = l - medianPx - 1 + topPx - l * 0.5;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"hanging\";\n ctx.fillText(char, 0, l * 0.5);\n var hangingPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.hanging = l - hangingPx - 1 + topPx - l * 0.5;\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"ideographic\";\n ctx.fillText(char, 0, l);\n var ideographicPx = firstTop(ctx.getImageData(0, 0, l, l));\n result.ideographic = l - ideographicPx - 1 + topPx;\n if (chars.upper) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.upper, 0, 0);\n result.upper = firstTop(ctx.getImageData(0, 0, l, l));\n result.capHeight = result.baseline - result.upper;\n }\n if (chars.lower) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.lower, 0, 0);\n result.lower = firstTop(ctx.getImageData(0, 0, l, l));\n result.xHeight = result.baseline - result.lower;\n }\n if (chars.tittle) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.tittle, 0, 0);\n result.tittle = firstTop(ctx.getImageData(0, 0, l, l));\n }\n if (chars.ascent) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.ascent, 0, 0);\n result.ascent = firstTop(ctx.getImageData(0, 0, l, l));\n }\n if (chars.descent) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.descent, 0, 0);\n result.descent = firstBottom(ctx.getImageData(0, 0, l, l));\n }\n if (chars.overshoot) {\n ctx.clearRect(0, 0, l, l);\n ctx.textBaseline = \"top\";\n ctx.fillText(chars.overshoot, 0, 0);\n var overshootPx = firstBottom(ctx.getImageData(0, 0, l, l));\n result.overshoot = overshootPx - baseline;\n }\n for (var name2 in result) {\n result[name2] /= fs;\n }\n result.em = fs;\n measure.cache[family] = result;\n return applyOrigin(result, origin);\n }\n function applyOrigin(obj, origin) {\n var res = {};\n if (typeof origin === \"string\") origin = obj[origin];\n for (var name2 in obj) {\n if (name2 === \"em\") continue;\n res[name2] = obj[name2] - origin;\n }\n return res;\n }\n function firstTop(iData) {\n var l = iData.height;\n var data = iData.data;\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] !== 0) {\n return Math.floor((i - 3) * 0.25 / l);\n }\n }\n }\n function firstBottom(iData) {\n var l = iData.height;\n var data = iData.data;\n for (var i = data.length - 1; i > 0; i -= 4) {\n if (data[i] !== 0) {\n return Math.floor((i - 3) * 0.25 / l);\n }\n }\n }\n }\n });\n\n // node_modules/gl-text/dist.js\n var require_dist = __commonJS({\n \"node_modules/gl-text/dist.js\"(exports, module) {\n \"use strict\";\n var Font = require_css_font();\n var pick = require_pick_by_alias();\n var createRegl = require_regl_unchecked();\n var createGl = require_context();\n var WeakMap2 = require_es6_weak_map();\n var rgba3 = require_color_normalize();\n var fontAtlas = require_font_atlas();\n var pool = require_pool();\n var parseRect = require_parse_rect();\n var isObj = require_is_plain_obj();\n var parseUnit = require_parse_unit();\n var px = require_topx();\n var kerning = require_detect_kerning();\n var extend2 = require_object_assign();\n var metrics = require_font_measure();\n var flatten = require_flatten_vertex_data();\n var ref = require_twiddle();\n var nextPow2 = ref.nextPow2;\n var shaderCache = new WeakMap2();\n var isStretchSupported = false;\n if (document.body) {\n el = document.body.appendChild(document.createElement(\"div\"));\n el.style.font = \"italic small-caps bold condensed 16px/2 cursive\";\n if (getComputedStyle(el).fontStretch) {\n isStretchSupported = true;\n }\n document.body.removeChild(el);\n }\n var el;\n var GlText = function GlText2(o) {\n if (isRegl(o)) {\n o = { regl: o };\n this.gl = o.regl._gl;\n } else {\n this.gl = createGl(o);\n }\n this.shader = shaderCache.get(this.gl);\n if (!this.shader) {\n this.regl = o.regl || createRegl({ gl: this.gl });\n } else {\n this.regl = this.shader.regl;\n }\n this.charBuffer = this.regl.buffer({ type: \"uint8\", usage: \"stream\" });\n this.sizeBuffer = this.regl.buffer({ type: \"float\", usage: \"stream\" });\n if (!this.shader) {\n this.shader = this.createShader();\n shaderCache.set(this.gl, this.shader);\n }\n this.batch = [];\n this.fontSize = [];\n this.font = [];\n this.fontAtlas = [];\n this.draw = this.shader.draw.bind(this);\n this.render = function() {\n this.regl._refresh();\n this.draw(this.batch);\n };\n this.canvas = this.gl.canvas;\n this.update(isObj(o) ? o : {});\n };\n GlText.prototype.createShader = function createShader() {\n var regl = this.regl;\n var draw = regl({\n blend: {\n enable: true,\n color: [0, 0, 0, 1],\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: \"one minus dst alpha\",\n dstAlpha: \"one\"\n }\n },\n stencil: { enable: false },\n depth: { enable: false },\n count: regl.prop(\"count\"),\n offset: regl.prop(\"offset\"),\n attributes: {\n charOffset: {\n offset: 4,\n stride: 8,\n buffer: regl.this(\"sizeBuffer\")\n },\n width: {\n offset: 0,\n stride: 8,\n buffer: regl.this(\"sizeBuffer\")\n },\n char: regl.this(\"charBuffer\"),\n position: regl.this(\"position\")\n },\n uniforms: {\n atlasSize: function(c, p) {\n return [p.atlas.width, p.atlas.height];\n },\n atlasDim: function(c, p) {\n return [p.atlas.cols, p.atlas.rows];\n },\n atlas: function(c, p) {\n return p.atlas.texture;\n },\n charStep: function(c, p) {\n return p.atlas.step;\n },\n em: function(c, p) {\n return p.atlas.em;\n },\n color: regl.prop(\"color\"),\n opacity: regl.prop(\"opacity\"),\n viewport: regl.this(\"viewportArray\"),\n scale: regl.this(\"scale\"),\n align: regl.prop(\"align\"),\n baseline: regl.prop(\"baseline\"),\n translate: regl.this(\"translate\"),\n positionOffset: regl.prop(\"positionOffset\")\n },\n primitive: \"points\",\n viewport: regl.this(\"viewport\"),\n vert: \"\\n\t\t\tprecision highp float;\\n\t\t\tattribute float width, charOffset, char;\\n\t\t\tattribute vec2 position;\\n\t\t\tuniform float fontSize, charStep, em, align, baseline;\\n\t\t\tuniform vec4 viewport;\\n\t\t\tuniform vec4 color;\\n\t\t\tuniform vec2 atlasSize, atlasDim, scale, translate, positionOffset;\\n\t\t\tvarying vec2 charCoord, charId;\\n\t\t\tvarying float charWidth;\\n\t\t\tvarying vec4 fontColor;\\n\t\t\tvoid main () {\\n\t\t\t\tvec2 offset = floor(em * (vec2(align + charOffset, baseline)\\n\t\t\t\t\t+ vec2(positionOffset.x, -positionOffset.y)))\\n\t\t\t\t\t/ (viewport.zw * scale.xy);\\n\\n\t\t\t\tvec2 position = (position + translate) * scale;\\n\t\t\t\tposition += offset * scale;\\n\\n\t\t\t\tcharCoord = position * viewport.zw + viewport.xy;\\n\\n\t\t\t\tgl_Position = vec4(position * 2. - 1., 0, 1);\\n\\n\t\t\t\tgl_PointSize = charStep;\\n\\n\t\t\t\tcharId.x = mod(char, atlasDim.x);\\n\t\t\t\tcharId.y = floor(char / atlasDim.x);\\n\\n\t\t\t\tcharWidth = width * em;\\n\\n\t\t\t\tfontColor = color / 255.;\\n\t\t\t}\",\n frag: \"\\n\t\t\tprecision highp float;\\n\t\t\tuniform float fontSize, charStep, opacity;\\n\t\t\tuniform vec2 atlasSize;\\n\t\t\tuniform vec4 viewport;\\n\t\t\tuniform sampler2D atlas;\\n\t\t\tvarying vec4 fontColor;\\n\t\t\tvarying vec2 charCoord, charId;\\n\t\t\tvarying float charWidth;\\n\\n\t\t\tfloat lightness(vec4 color) {\\n\t\t\t\treturn color.r * 0.299 + color.g * 0.587 + color.b * 0.114;\\n\t\t\t}\\n\\n\t\t\tvoid main () {\\n\t\t\t\tvec2 uv = gl_FragCoord.xy - charCoord + charStep * .5;\\n\t\t\t\tfloat halfCharStep = floor(charStep * .5 + .5);\\n\\n\t\t\t\t// invert y and shift by 1px (FF expecially needs that)\\n\t\t\t\tuv.y = charStep - uv.y;\\n\\n\t\t\t\t// ignore points outside of character bounding box\\n\t\t\t\tfloat halfCharWidth = ceil(charWidth * .5);\\n\t\t\t\tif (floor(uv.x) > halfCharStep + halfCharWidth ||\\n\t\t\t\t\tfloor(uv.x) < halfCharStep - halfCharWidth) return;\\n\\n\t\t\t\tuv += charId * charStep;\\n\t\t\t\tuv = uv / atlasSize;\\n\\n\t\t\t\tvec4 color = fontColor;\\n\t\t\t\tvec4 mask = texture2D(atlas, uv);\\n\\n\t\t\t\tfloat maskY = lightness(mask);\\n\t\t\t\t// float colorY = lightness(color);\\n\t\t\t\tcolor.a *= maskY;\\n\t\t\t\tcolor.a *= opacity;\\n\\n\t\t\t\t// color.a += .1;\\n\\n\t\t\t\t// antialiasing, see yiq color space y-channel formula\\n\t\t\t\t// color.rgb += (1. - color.rgb) * (1. - mask.rgb);\\n\\n\t\t\t\tgl_FragColor = color;\\n\t\t\t}\"\n });\n var atlas = {};\n return { regl, draw, atlas };\n };\n GlText.prototype.update = function update(o) {\n var this$1 = this;\n if (typeof o === \"string\") {\n o = { text: o };\n } else if (!o) {\n return;\n }\n o = pick(o, {\n position: \"position positions coord coords coordinates\",\n font: \"font fontFace fontface typeface cssFont css-font family fontFamily\",\n fontSize: \"fontSize fontsize size font-size\",\n text: \"text texts chars characters value values symbols\",\n align: \"align alignment textAlign textbaseline\",\n baseline: \"baseline textBaseline textbaseline\",\n direction: \"dir direction textDirection\",\n color: \"color colour fill fill-color fillColor textColor textcolor\",\n kerning: \"kerning kern\",\n range: \"range dataBox\",\n viewport: \"vp viewport viewBox viewbox viewPort\",\n opacity: \"opacity alpha transparency visible visibility opaque\",\n offset: \"offset positionOffset padding shift indent indentation\"\n }, true);\n if (o.opacity != null) {\n if (Array.isArray(o.opacity)) {\n this.opacity = o.opacity.map(function(o2) {\n return parseFloat(o2);\n });\n } else {\n this.opacity = parseFloat(o.opacity);\n }\n }\n if (o.viewport != null) {\n this.viewport = parseRect(o.viewport);\n this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height];\n }\n if (this.viewport == null) {\n this.viewport = {\n x: 0,\n y: 0,\n width: this.gl.drawingBufferWidth,\n height: this.gl.drawingBufferHeight\n };\n this.viewportArray = [this.viewport.x, this.viewport.y, this.viewport.width, this.viewport.height];\n }\n if (o.kerning != null) {\n this.kerning = o.kerning;\n }\n if (o.offset != null) {\n if (typeof o.offset === \"number\") {\n o.offset = [o.offset, 0];\n }\n this.positionOffset = flatten(o.offset);\n }\n if (o.direction) {\n this.direction = o.direction;\n }\n if (o.range) {\n this.range = o.range;\n this.scale = [1 / (o.range[2] - o.range[0]), 1 / (o.range[3] - o.range[1])];\n this.translate = [-o.range[0], -o.range[1]];\n }\n if (o.scale) {\n this.scale = o.scale;\n }\n if (o.translate) {\n this.translate = o.translate;\n }\n if (!this.scale) {\n this.scale = [1 / this.viewport.width, 1 / this.viewport.height];\n }\n if (!this.translate) {\n this.translate = [0, 0];\n }\n if (!this.font.length && !o.font) {\n o.font = GlText.baseFontSize + \"px sans-serif\";\n }\n var newFont = false, newFontSize = false;\n if (o.font) {\n (Array.isArray(o.font) ? o.font : [o.font]).forEach(function(font2, i2) {\n if (typeof font2 === \"string\") {\n try {\n font2 = Font.parse(font2);\n } catch (e) {\n font2 = Font.parse(GlText.baseFontSize + \"px \" + font2);\n }\n } else {\n var fontStyle = font2.style;\n var fontWeight = font2.weight;\n var fontStretch = font2.stretch;\n var fontVariant = font2.variant;\n font2 = Font.parse(Font.stringify(font2));\n if (fontStyle) font2.style = fontStyle;\n if (fontWeight) font2.weight = fontWeight;\n if (fontStretch) font2.stretch = fontStretch;\n if (fontVariant) font2.variant = fontVariant;\n }\n var baseString = Font.stringify({\n size: GlText.baseFontSize,\n family: font2.family,\n stretch: isStretchSupported ? font2.stretch : void 0,\n variant: font2.variant,\n weight: font2.weight,\n style: font2.style\n });\n var unit = parseUnit(font2.size);\n var fs = Math.round(unit[0] * px(unit[1]));\n if (fs !== this$1.fontSize[i2]) {\n newFontSize = true;\n this$1.fontSize[i2] = fs;\n }\n if (!this$1.font[i2] || baseString != this$1.font[i2].baseString) {\n newFont = true;\n this$1.font[i2] = GlText.fonts[baseString];\n if (!this$1.font[i2]) {\n var family = font2.family.join(\", \");\n var style = [font2.style];\n if (font2.style != font2.variant) {\n style.push(font2.variant);\n }\n if (font2.variant != font2.weight) {\n style.push(font2.weight);\n }\n if (isStretchSupported && font2.weight != font2.stretch) {\n style.push(font2.stretch);\n }\n this$1.font[i2] = {\n baseString,\n // typeface\n family,\n weight: font2.weight,\n stretch: font2.stretch,\n style: font2.style,\n variant: font2.variant,\n // widths of characters\n width: {},\n // kernin pairs offsets\n kerning: {},\n metrics: metrics(family, {\n origin: \"top\",\n fontSize: GlText.baseFontSize,\n fontStyle: style.join(\" \")\n })\n };\n GlText.fonts[baseString] = this$1.font[i2];\n }\n }\n });\n }\n if (newFont || newFontSize) {\n this.font.forEach(function(font2, i2) {\n var fontString = Font.stringify({\n size: this$1.fontSize[i2],\n family: font2.family,\n stretch: isStretchSupported ? font2.stretch : void 0,\n variant: font2.variant,\n weight: font2.weight,\n style: font2.style\n });\n this$1.fontAtlas[i2] = this$1.shader.atlas[fontString];\n if (!this$1.fontAtlas[i2]) {\n var metrics2 = font2.metrics;\n this$1.shader.atlas[fontString] = this$1.fontAtlas[i2] = {\n fontString,\n // even step is better for rendered characters\n step: Math.ceil(this$1.fontSize[i2] * metrics2.bottom * 0.5) * 2,\n em: this$1.fontSize[i2],\n cols: 0,\n rows: 0,\n height: 0,\n width: 0,\n chars: [],\n ids: {},\n texture: this$1.regl.texture()\n };\n }\n if (o.text == null) {\n o.text = this$1.text;\n }\n });\n }\n if (typeof o.text === \"string\" && o.position && o.position.length > 2) {\n var textArray = Array(o.position.length * 0.5);\n for (var i = 0; i < textArray.length; i++) {\n textArray[i] = o.text;\n }\n o.text = textArray;\n }\n var newAtlasChars;\n if (o.text != null || newFont) {\n this.textOffsets = [0];\n if (Array.isArray(o.text)) {\n this.count = o.text[0].length;\n this.counts = [this.count];\n for (var i$1 = 1; i$1 < o.text.length; i$1++) {\n this.textOffsets[i$1] = this.textOffsets[i$1 - 1] + o.text[i$1 - 1].length;\n this.count += o.text[i$1].length;\n this.counts.push(o.text[i$1].length);\n }\n this.text = o.text.join(\"\");\n } else {\n this.text = o.text;\n this.count = this.text.length;\n this.counts = [this.count];\n }\n newAtlasChars = [];\n this.font.forEach(function(font2, idx) {\n GlText.atlasContext.font = font2.baseString;\n var atlas2 = this$1.fontAtlas[idx];\n for (var i2 = 0; i2 < this$1.text.length; i2++) {\n var char2 = this$1.text.charAt(i2);\n if (atlas2.ids[char2] == null) {\n atlas2.ids[char2] = atlas2.chars.length;\n atlas2.chars.push(char2);\n newAtlasChars.push(char2);\n }\n if (font2.width[char2] == null) {\n font2.width[char2] = GlText.atlasContext.measureText(char2).width / GlText.baseFontSize;\n if (this$1.kerning) {\n var pairs = [];\n for (var baseChar in font2.width) {\n pairs.push(baseChar + char2, char2 + baseChar);\n }\n extend2(font2.kerning, kerning(font2.family, {\n pairs\n }));\n }\n }\n }\n });\n }\n if (o.position) {\n if (o.position.length > 2) {\n var flat = !o.position[0].length;\n var positionData = pool.mallocFloat(this.count * 2);\n for (var i$2 = 0, ptr = 0; i$2 < this.counts.length; i$2++) {\n var count = this.counts[i$2];\n if (flat) {\n for (var j = 0; j < count; j++) {\n positionData[ptr++] = o.position[i$2 * 2];\n positionData[ptr++] = o.position[i$2 * 2 + 1];\n }\n } else {\n for (var j$1 = 0; j$1 < count; j$1++) {\n positionData[ptr++] = o.position[i$2][0];\n positionData[ptr++] = o.position[i$2][1];\n }\n }\n }\n if (this.position.call) {\n this.position({\n type: \"float\",\n data: positionData\n });\n } else {\n this.position = this.regl.buffer({\n type: \"float\",\n data: positionData\n });\n }\n pool.freeFloat(positionData);\n } else {\n if (this.position.destroy) {\n this.position.destroy();\n }\n this.position = {\n constant: o.position\n };\n }\n }\n if (o.text || newFont) {\n var charIds = pool.mallocUint8(this.count);\n var sizeData = pool.mallocFloat(this.count * 2);\n this.textWidth = [];\n for (var i$3 = 0, ptr$1 = 0; i$3 < this.counts.length; i$3++) {\n var count$1 = this.counts[i$3];\n var font = this.font[i$3] || this.font[0];\n var atlas = this.fontAtlas[i$3] || this.fontAtlas[0];\n for (var j$2 = 0; j$2 < count$1; j$2++) {\n var char = this.text.charAt(ptr$1);\n var prevChar = this.text.charAt(ptr$1 - 1);\n charIds[ptr$1] = atlas.ids[char];\n sizeData[ptr$1 * 2] = font.width[char];\n if (j$2) {\n var prevWidth = sizeData[ptr$1 * 2 - 2];\n var currWidth = sizeData[ptr$1 * 2];\n var prevOffset = sizeData[ptr$1 * 2 - 1];\n var offset = prevOffset + prevWidth * 0.5 + currWidth * 0.5;\n if (this.kerning) {\n var kerning$1 = font.kerning[prevChar + char];\n if (kerning$1) {\n offset += kerning$1 * 1e-3;\n }\n }\n sizeData[ptr$1 * 2 + 1] = offset;\n } else {\n sizeData[ptr$1 * 2 + 1] = sizeData[ptr$1 * 2] * 0.5;\n }\n ptr$1++;\n }\n this.textWidth.push(\n !sizeData.length ? 0 : (\n // last offset + half last width\n sizeData[ptr$1 * 2 - 2] * 0.5 + sizeData[ptr$1 * 2 - 1]\n )\n );\n }\n if (!o.align) {\n o.align = this.align;\n }\n this.charBuffer({ data: charIds, type: \"uint8\", usage: \"stream\" });\n this.sizeBuffer({ data: sizeData, type: \"float\", usage: \"stream\" });\n pool.freeUint8(charIds);\n pool.freeFloat(sizeData);\n if (newAtlasChars.length) {\n this.font.forEach(function(font2, i2) {\n var atlas2 = this$1.fontAtlas[i2];\n var step = atlas2.step;\n var maxCols = Math.floor(GlText.maxAtlasSize / step);\n var cols = Math.min(maxCols, atlas2.chars.length);\n var rows = Math.ceil(atlas2.chars.length / cols);\n var atlasWidth = nextPow2(cols * step);\n var atlasHeight = nextPow2(rows * step);\n atlas2.width = atlasWidth;\n atlas2.height = atlasHeight;\n atlas2.rows = rows;\n atlas2.cols = cols;\n if (!atlas2.em) {\n return;\n }\n atlas2.texture({\n data: fontAtlas({\n canvas: GlText.atlasCanvas,\n font: atlas2.fontString,\n chars: atlas2.chars,\n shape: [atlasWidth, atlasHeight],\n step: [step, step]\n })\n });\n });\n }\n }\n if (o.align) {\n this.align = o.align;\n this.alignOffset = this.textWidth.map(function(textWidth, i2) {\n var align = !Array.isArray(this$1.align) ? this$1.align : this$1.align.length > 1 ? this$1.align[i2] : this$1.align[0];\n if (typeof align === \"number\") {\n return align;\n }\n switch (align) {\n case \"right\":\n case \"end\":\n return -textWidth;\n case \"center\":\n case \"centre\":\n case \"middle\":\n return -textWidth * 0.5;\n }\n return 0;\n });\n }\n if (this.baseline == null && o.baseline == null) {\n o.baseline = 0;\n }\n if (o.baseline != null) {\n this.baseline = o.baseline;\n if (!Array.isArray(this.baseline)) {\n this.baseline = [this.baseline];\n }\n this.baselineOffset = this.baseline.map(function(baseline, i2) {\n var m = (this$1.font[i2] || this$1.font[0]).metrics;\n var base = 0;\n base += m.bottom * 0.5;\n if (typeof baseline === \"number\") {\n base += baseline - m.baseline;\n } else {\n base += -m[baseline];\n }\n base *= -1;\n return base;\n });\n }\n if (o.color != null) {\n if (!o.color) {\n o.color = \"transparent\";\n }\n if (typeof o.color === \"string\" || !isNaN(o.color)) {\n this.color = rgba3(o.color, \"uint8\");\n } else {\n var colorData;\n if (typeof o.color[0] === \"number\" && o.color.length > this.counts.length) {\n var l = o.color.length;\n colorData = pool.mallocUint8(l);\n var sub = (o.color.subarray || o.color.slice).bind(o.color);\n for (var i$4 = 0; i$4 < l; i$4 += 4) {\n colorData.set(rgba3(sub(i$4, i$4 + 4), \"uint8\"), i$4);\n }\n } else {\n var l$1 = o.color.length;\n colorData = pool.mallocUint8(l$1 * 4);\n for (var i$5 = 0; i$5 < l$1; i$5++) {\n colorData.set(rgba3(o.color[i$5] || 0, \"uint8\"), i$5 * 4);\n }\n }\n this.color = colorData;\n }\n }\n if (o.position || o.text || o.color || o.baseline || o.align || o.font || o.offset || o.opacity) {\n var isBatch = this.color.length > 4 || this.baselineOffset.length > 1 || this.align && this.align.length > 1 || this.fontAtlas.length > 1 || this.positionOffset.length > 2;\n if (isBatch) {\n var length = Math.max(\n this.position.length * 0.5 || 0,\n this.color.length * 0.25 || 0,\n this.baselineOffset.length || 0,\n this.alignOffset.length || 0,\n this.font.length || 0,\n this.opacity.length || 0,\n this.positionOffset.length * 0.5 || 0\n );\n this.batch = Array(length);\n for (var i$6 = 0; i$6 < this.batch.length; i$6++) {\n this.batch[i$6] = {\n count: this.counts.length > 1 ? this.counts[i$6] : this.counts[0],\n offset: this.textOffsets.length > 1 ? this.textOffsets[i$6] : this.textOffsets[0],\n color: !this.color ? [0, 0, 0, 255] : this.color.length <= 4 ? this.color : this.color.subarray(i$6 * 4, i$6 * 4 + 4),\n opacity: Array.isArray(this.opacity) ? this.opacity[i$6] : this.opacity,\n baseline: this.baselineOffset[i$6] != null ? this.baselineOffset[i$6] : this.baselineOffset[0],\n align: !this.align ? 0 : this.alignOffset[i$6] != null ? this.alignOffset[i$6] : this.alignOffset[0],\n atlas: this.fontAtlas[i$6] || this.fontAtlas[0],\n positionOffset: this.positionOffset.length > 2 ? this.positionOffset.subarray(i$6 * 2, i$6 * 2 + 2) : this.positionOffset\n };\n }\n } else {\n if (this.count) {\n this.batch = [{\n count: this.count,\n offset: 0,\n color: this.color || [0, 0, 0, 255],\n opacity: Array.isArray(this.opacity) ? this.opacity[0] : this.opacity,\n baseline: this.baselineOffset[0],\n align: this.alignOffset ? this.alignOffset[0] : 0,\n atlas: this.fontAtlas[0],\n positionOffset: this.positionOffset\n }];\n } else {\n this.batch = [];\n }\n }\n }\n };\n GlText.prototype.destroy = function destroy() {\n };\n GlText.prototype.kerning = true;\n GlText.prototype.position = { constant: new Float32Array(2) };\n GlText.prototype.translate = null;\n GlText.prototype.scale = null;\n GlText.prototype.font = null;\n GlText.prototype.text = \"\";\n GlText.prototype.positionOffset = [0, 0];\n GlText.prototype.opacity = 1;\n GlText.prototype.color = new Uint8Array([0, 0, 0, 255]);\n GlText.prototype.alignOffset = [0, 0];\n GlText.maxAtlasSize = 1024;\n GlText.atlasCanvas = document.createElement(\"canvas\");\n GlText.atlasContext = GlText.atlasCanvas.getContext(\"2d\", { alpha: false });\n GlText.baseFontSize = 64;\n GlText.fonts = {};\n function isRegl(o) {\n return typeof o === \"function\" && o._gl && o.prop && o.texture && o.buffer;\n }\n module.exports = GlText;\n }\n });\n\n // src/lib/prepare_regl.js\n var require_prepare_regl = __commonJS({\n \"src/lib/prepare_regl.js\"(exports, module) {\n \"use strict\";\n var showNoWebGlMsg = require_show_no_webgl_msg();\n var createRegl = require_regl_unchecked();\n module.exports = function prepareRegl(gd, extensions, reglPrecompiled) {\n var fullLayout = gd._fullLayout;\n var success = true;\n fullLayout._glcanvas.each(function(d) {\n if (d.regl) {\n d.regl.preloadCachedCode(reglPrecompiled);\n return;\n }\n if (d.pick && !fullLayout._has(\"parcoords\")) return;\n try {\n d.regl = createRegl({\n canvas: this,\n attributes: {\n antialias: !d.pick,\n preserveDrawingBuffer: true\n },\n pixelRatio: gd._context.plotGlPixelRatio || window.devicePixelRatio,\n extensions: extensions || [],\n cachedCode: reglPrecompiled || {}\n });\n } catch (e) {\n success = false;\n }\n if (!d.regl) success = false;\n if (success) {\n this.addEventListener(\"webglcontextlost\", function(event) {\n if (gd && gd.emit) {\n gd.emit(\"plotly_webglcontextlost\", {\n event,\n layer: d.key\n });\n }\n }, false);\n }\n });\n if (!success) {\n showNoWebGlMsg({ container: fullLayout._glcontainer.node() });\n }\n return success;\n };\n }\n });\n\n // src/traces/scattergl/plot.js\n var require_plot19 = __commonJS({\n \"src/traces/scattergl/plot.js\"(exports, module) {\n \"use strict\";\n var createScatter = require_bundle();\n var createLine = require_regl_line2d();\n var createError = require_regl_error2d();\n var Text = require_dist();\n var Lib = require_lib();\n var selectMode = require_helpers5().selectMode;\n var prepareRegl = require_prepare_regl();\n var subTypes = require_subtypes();\n var linkTraces = require_link_traces();\n var styleTextSelection = require_edit_style().styleTextSelection;\n var reglPrecompiled = {};\n function getViewport(fullLayout, xaxis, yaxis, plotGlPixelRatio) {\n var gs = fullLayout._size;\n var width = fullLayout.width * plotGlPixelRatio;\n var height = fullLayout.height * plotGlPixelRatio;\n var l = gs.l * plotGlPixelRatio;\n var b = gs.b * plotGlPixelRatio;\n var r = gs.r * plotGlPixelRatio;\n var t = gs.t * plotGlPixelRatio;\n var w = gs.w * plotGlPixelRatio;\n var h = gs.h * plotGlPixelRatio;\n return [\n l + xaxis.domain[0] * w,\n b + yaxis.domain[0] * h,\n width - r - (1 - xaxis.domain[1]) * w,\n height - t - (1 - yaxis.domain[1]) * h\n ];\n }\n var exports = module.exports = function plot(gd, subplot, cdata) {\n if (!cdata.length) return;\n var fullLayout = gd._fullLayout;\n var scene = subplot._scene;\n var xaxis = subplot.xaxis;\n var yaxis = subplot.yaxis;\n var i, j;\n if (!scene) return;\n var success = prepareRegl(gd, [\"ANGLE_instanced_arrays\", \"OES_element_index_uint\"], reglPrecompiled);\n if (!success) {\n scene.init();\n return;\n }\n var count = scene.count;\n var regl = fullLayout._glcanvas.data()[0].regl;\n linkTraces(gd, subplot, cdata);\n if (scene.dirty) {\n if ((scene.line2d || scene.error2d) && !(scene.scatter2d || scene.fill2d || scene.glText)) {\n regl.clear({});\n }\n if (scene.error2d === true) {\n scene.error2d = createError(regl);\n }\n if (scene.line2d === true) {\n scene.line2d = createLine(regl);\n }\n if (scene.scatter2d === true) {\n scene.scatter2d = createScatter(regl);\n }\n if (scene.fill2d === true) {\n scene.fill2d = createLine(regl);\n }\n if (scene.glText === true) {\n scene.glText = new Array(count);\n for (i = 0; i < count; i++) {\n scene.glText[i] = new Text(regl);\n }\n }\n if (scene.glText) {\n if (count > scene.glText.length) {\n var textsToAdd = count - scene.glText.length;\n for (i = 0; i < textsToAdd; i++) {\n scene.glText.push(new Text(regl));\n }\n } else if (count < scene.glText.length) {\n var textsToRemove = scene.glText.length - count;\n var removedTexts = scene.glText.splice(count, textsToRemove);\n removedTexts.forEach(function(text) {\n text.destroy();\n });\n }\n for (i = 0; i < count; i++) {\n scene.glText[i].update(scene.textOptions[i]);\n }\n }\n if (scene.line2d) {\n scene.line2d.update(scene.lineOptions);\n scene.lineOptions = scene.lineOptions.map(function(lineOptions) {\n if (lineOptions && lineOptions.positions) {\n var srcPos = lineOptions.positions;\n var firstptdef = 0;\n while (firstptdef < srcPos.length && (isNaN(srcPos[firstptdef]) || isNaN(srcPos[firstptdef + 1]))) {\n firstptdef += 2;\n }\n var lastptdef = srcPos.length - 2;\n while (lastptdef > firstptdef && (isNaN(srcPos[lastptdef]) || isNaN(srcPos[lastptdef + 1]))) {\n lastptdef -= 2;\n }\n lineOptions.positions = srcPos.slice(firstptdef, lastptdef + 2);\n }\n return lineOptions;\n });\n scene.line2d.update(scene.lineOptions);\n }\n if (scene.error2d) {\n var errorBatch = (scene.errorXOptions || []).concat(scene.errorYOptions || []);\n scene.error2d.update(errorBatch);\n }\n if (scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n scene.fillOrder = Lib.repeat(null, count);\n if (scene.fill2d) {\n scene.fillOptions = scene.fillOptions.map(function(fillOptions, i2) {\n var cdscatter = cdata[i2];\n if (!fillOptions || !cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace2 = cd.trace;\n var stash2 = cd.t;\n var lineOptions = scene.lineOptions[i2];\n var last, j2;\n var fillData = [];\n if (trace2._ownfill) fillData.push(i2);\n if (trace2._nexttrace) fillData.push(i2 + 1);\n if (fillData.length) scene.fillOrder[i2] = fillData;\n var pos = [];\n var srcPos = lineOptions && lineOptions.positions || stash2.positions;\n var firstptdef, lastptdef;\n if (trace2.fill === \"tozeroy\") {\n firstptdef = 0;\n while (firstptdef < srcPos.length && isNaN(srcPos[firstptdef + 1])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while (lastptdef > firstptdef && isNaN(srcPos[lastptdef + 1])) {\n lastptdef -= 2;\n }\n if (srcPos[firstptdef + 1] !== 0) {\n pos = [srcPos[firstptdef], 0];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if (srcPos[lastptdef + 1] !== 0) {\n pos = pos.concat([srcPos[lastptdef], 0]);\n }\n } else if (trace2.fill === \"tozerox\") {\n firstptdef = 0;\n while (firstptdef < srcPos.length && isNaN(srcPos[firstptdef])) {\n firstptdef += 2;\n }\n lastptdef = srcPos.length - 2;\n while (lastptdef > firstptdef && isNaN(srcPos[lastptdef])) {\n lastptdef -= 2;\n }\n if (srcPos[firstptdef] !== 0) {\n pos = [0, srcPos[firstptdef + 1]];\n }\n pos = pos.concat(srcPos.slice(firstptdef, lastptdef + 2));\n if (srcPos[lastptdef] !== 0) {\n pos = pos.concat([0, srcPos[lastptdef + 1]]);\n }\n } else if (trace2.fill === \"toself\" || trace2.fill === \"tonext\") {\n pos = [];\n last = 0;\n fillOptions.splitNull = true;\n for (j2 = 0; j2 < srcPos.length; j2 += 2) {\n if (isNaN(srcPos[j2]) || isNaN(srcPos[j2 + 1])) {\n pos = pos.concat(srcPos.slice(last, j2));\n pos.push(srcPos[last], srcPos[last + 1]);\n pos.push(null, null);\n last = j2 + 2;\n }\n }\n pos = pos.concat(srcPos.slice(last));\n if (last) {\n pos.push(srcPos[last], srcPos[last + 1]);\n }\n } else {\n var nextTrace = trace2._nexttrace;\n if (nextTrace) {\n var nextOptions = scene.lineOptions[i2 + 1];\n if (nextOptions) {\n var nextPos = nextOptions.positions;\n if (trace2.fill === \"tonexty\") {\n pos = srcPos.slice();\n for (i2 = Math.floor(nextPos.length / 2); i2--; ) {\n var xx = nextPos[i2 * 2];\n var yy = nextPos[i2 * 2 + 1];\n if (isNaN(xx) || isNaN(yy)) continue;\n pos.push(xx, yy);\n }\n fillOptions.fill = nextTrace.fillcolor;\n }\n }\n }\n }\n if (trace2._prevtrace && trace2._prevtrace.fill === \"tonext\") {\n var prevLinePos = scene.lineOptions[i2 - 1].positions;\n var offset = pos.length / 2;\n last = offset;\n var hole = [last];\n for (j2 = 0; j2 < prevLinePos.length; j2 += 2) {\n if (isNaN(prevLinePos[j2]) || isNaN(prevLinePos[j2 + 1])) {\n hole.push(j2 / 2 + offset + 1);\n last = j2 + 2;\n }\n }\n pos = pos.concat(prevLinePos);\n fillOptions.hole = hole;\n }\n fillOptions.fillmode = trace2.fill;\n fillOptions.opacity = trace2.opacity;\n fillOptions.positions = pos;\n return fillOptions;\n });\n scene.fill2d.update(scene.fillOptions);\n }\n }\n var dragmode = fullLayout.dragmode;\n var isSelectMode = selectMode(dragmode);\n var clickSelectEnabled = fullLayout.clickmode.indexOf(\"select\") > -1;\n for (i = 0; i < count; i++) {\n var cd0 = cdata[i][0];\n var trace = cd0.trace;\n var stash = cd0.t;\n var index = stash.index;\n var len = trace._length;\n var x = stash.x;\n var y = stash.y;\n if (trace.selectedpoints || isSelectMode || clickSelectEnabled) {\n if (!isSelectMode) isSelectMode = true;\n if (trace.selectedpoints) {\n var selPts = scene.selectBatch[index] = Lib.selIndices2selPoints(trace);\n var selDict = {};\n for (j = 0; j < selPts.length; j++) {\n selDict[selPts[j]] = 1;\n }\n var unselPts = [];\n for (j = 0; j < len; j++) {\n if (!selDict[j]) unselPts.push(j);\n }\n scene.unselectBatch[index] = unselPts;\n }\n var xpx = stash.xpx = new Array(len);\n var ypx = stash.ypx = new Array(len);\n for (j = 0; j < len; j++) {\n xpx[j] = xaxis.c2p(x[j]);\n ypx[j] = yaxis.c2p(y[j]);\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n }\n if (isSelectMode) {\n if (!scene.select2d) {\n scene.select2d = createScatter(fullLayout._glcanvas.data()[1].regl);\n }\n if (scene.scatter2d) {\n var unselOpts = new Array(count);\n for (i = 0; i < count; i++) {\n unselOpts[i] = scene.selectBatch[i].length || scene.unselectBatch[i].length ? scene.markerUnselectedOptions[i] : {};\n }\n scene.scatter2d.update(unselOpts);\n }\n if (scene.select2d) {\n scene.select2d.update(scene.markerOptions);\n scene.select2d.update(scene.markerSelectedOptions);\n }\n if (scene.glText) {\n cdata.forEach(function(cdscatter) {\n var trace2 = ((cdscatter || [])[0] || {}).trace || {};\n if (subTypes.hasText(trace2)) {\n styleTextSelection(cdscatter);\n }\n });\n }\n } else {\n if (scene.scatter2d) {\n scene.scatter2d.update(scene.markerOptions);\n }\n }\n var vpRange0 = {\n viewport: getViewport(fullLayout, xaxis, yaxis, gd._context.plotGlPixelRatio),\n // TODO do we need those fallbacks?\n range: [\n (xaxis._rl || xaxis.range)[0],\n (yaxis._rl || yaxis.range)[0],\n (xaxis._rl || xaxis.range)[1],\n (yaxis._rl || yaxis.range)[1]\n ]\n };\n var vpRange = Lib.repeat(vpRange0, scene.count);\n if (scene.fill2d) {\n scene.fill2d.update(vpRange);\n }\n if (scene.line2d) {\n scene.line2d.update(vpRange);\n }\n if (scene.error2d) {\n scene.error2d.update(vpRange.concat(vpRange));\n }\n if (scene.scatter2d) {\n scene.scatter2d.update(vpRange);\n }\n if (scene.select2d) {\n scene.select2d.update(vpRange);\n }\n if (scene.glText) {\n scene.glText.forEach(function(text) {\n text.update(vpRange0);\n });\n }\n };\n exports.reglPrecompiled = reglPrecompiled;\n }\n });\n\n // src/traces/scattergl/index.js\n var require_scattergl = __commonJS({\n \"src/traces/scattergl/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index();\n index.plot = require_plot19();\n module.exports = index;\n }\n });\n\n // lib/scattergl.js\n var require_scattergl2 = __commonJS({\n \"lib/scattergl.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattergl();\n }\n });\n\n // src/traces/splom/attributes.js\n var require_attributes51 = __commonJS({\n \"src/traces/splom/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterAttrs = require_attributes12();\n var colorScaleAttrs = require_attributes8();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var scatterGlAttrs = require_attributes50();\n var cartesianIdRegex = require_constants2().idRegex;\n var templatedArray = require_plot_template().templatedArray;\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n var markerLineAttrs = extendFlat(colorScaleAttrs(\"marker.line\", { editTypeOverride: \"calc\" }), {\n width: extendFlat({}, scatterMarkerLineAttrs.width, { editType: \"calc\" }),\n editType: \"calc\"\n });\n var markerAttrs = extendFlat(colorScaleAttrs(\"marker\"), {\n symbol: scatterMarkerAttrs.symbol,\n angle: scatterMarkerAttrs.angle,\n size: extendFlat({}, scatterMarkerAttrs.size, { editType: \"markerSize\" }),\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n opacity: scatterMarkerAttrs.opacity,\n colorbar: scatterMarkerAttrs.colorbar,\n line: markerLineAttrs,\n editType: \"calc\"\n });\n markerAttrs.color.editType = markerAttrs.cmin.editType = markerAttrs.cmax.editType = \"style\";\n function makeAxesValObject(axLetter) {\n return {\n valType: \"info_array\",\n freeLength: true,\n editType: \"calc\",\n items: {\n valType: \"subplotid\",\n regex: cartesianIdRegex[axLetter],\n editType: \"plot\"\n }\n };\n }\n module.exports = {\n dimensions: templatedArray(\"dimension\", {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n label: {\n valType: \"string\",\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n axis: {\n type: {\n valType: \"enumerated\",\n values: [\"linear\", \"log\", \"date\", \"category\"],\n editType: \"calc+clearAxisTypes\"\n },\n // TODO make 'true' the default in v3?\n matches: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n editType: \"calc+clearAxisTypes\"\n },\n // TODO should add an attribute to pin down x only vars and y only vars\n // like https://seaborn.pydata.org/generated/seaborn.pairplot.html\n // x_vars and y_vars\n // maybe more axis defaulting option e.g. `showgrid: false`\n editType: \"calc+clearAxisTypes\"\n }),\n // mode: {}, (only 'markers' for now)\n text: extendFlat({}, scatterGlAttrs.text, {}),\n hovertext: extendFlat({}, scatterGlAttrs.hovertext, {}),\n hovertemplate: hovertemplateAttrs(),\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n marker: markerAttrs,\n xaxes: makeAxesValObject(\"x\"),\n yaxes: makeAxesValObject(\"y\"),\n diagonal: {\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n // type: 'scattergl' | 'histogram' | 'box' | 'violin'\n // ...\n // more options\n editType: \"calc\"\n },\n showupperhalf: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n showlowerhalf: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n selected: {\n marker: scatterGlAttrs.selected.marker,\n editType: \"calc\"\n },\n unselected: {\n marker: scatterGlAttrs.unselected.marker,\n editType: \"calc\"\n },\n opacity: scatterGlAttrs.opacity\n };\n }\n });\n\n // src/traces/parcoords/merge_length.js\n var require_merge_length = __commonJS({\n \"src/traces/parcoords/merge_length.js\"(exports, module) {\n \"use strict\";\n module.exports = function(traceOut, dimensions, dataAttr, len) {\n if (!len) len = Infinity;\n var i, dimi;\n for (i = 0; i < dimensions.length; i++) {\n dimi = dimensions[i];\n if (dimi.visible) len = Math.min(len, dimi[dataAttr].length);\n }\n if (len === Infinity) len = 0;\n traceOut._length = len;\n for (i = 0; i < dimensions.length; i++) {\n dimi = dimensions[i];\n if (dimi.visible) dimi._length = len;\n }\n return len;\n };\n }\n });\n\n // src/traces/splom/defaults.js\n var require_defaults47 = __commonJS({\n \"src/traces/splom/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes51();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var mergeLength = require_merge_length();\n var isOpenSymbol = require_helpers16().isOpenSymbol;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: \"dimensions\",\n handleItemDefaults: dimensionDefaults\n });\n var showDiag = coerce(\"diagonal.visible\");\n var showUpper = coerce(\"showupperhalf\");\n var showLower = coerce(\"showlowerhalf\");\n var dimLength = mergeLength(traceOut, dimensions, \"values\");\n if (!dimLength || !showDiag && !showUpper && !showLower) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noAngleRef: true, noStandOff: true });\n var isOpen = isOpenSymbol(traceOut.marker.symbol);\n var isBubble = subTypes.isBubble(traceOut);\n coerce(\"marker.line.width\", isOpen || isBubble ? 1 : 0);\n handleAxisDefaults(traceIn, traceOut, layout, coerce);\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function dimensionDefaults(dimIn, dimOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimIn, dimOut, attributes.dimensions, attr, dflt);\n }\n coerce(\"label\");\n var values = coerce(\"values\");\n if (!(values && values.length)) dimOut.visible = false;\n else coerce(\"visible\");\n coerce(\"axis.type\");\n coerce(\"axis.matches\");\n }\n function handleAxisDefaults(traceIn, traceOut, layout, coerce) {\n var dimensions = traceOut.dimensions;\n var dimLength = dimensions.length;\n var showUpper = traceOut.showupperhalf;\n var showLower = traceOut.showlowerhalf;\n var showDiag = traceOut.diagonal.visible;\n var i, j;\n var xAxesDflt = new Array(dimLength);\n var yAxesDflt = new Array(dimLength);\n for (i = 0; i < dimLength; i++) {\n var suffix = i ? i + 1 : \"\";\n xAxesDflt[i] = \"x\" + suffix;\n yAxesDflt[i] = \"y\" + suffix;\n }\n var xaxes = coerce(\"xaxes\", xAxesDflt);\n var yaxes = coerce(\"yaxes\", yAxesDflt);\n var diag = traceOut._diag = new Array(dimLength);\n traceOut._xaxes = {};\n traceOut._yaxes = {};\n var xList = [];\n var yList = [];\n function fillAxisStashes(axId, counterAxId, dim2, list) {\n if (!axId) return;\n var axLetter = axId.charAt(0);\n var stash = layout._splomAxes[axLetter];\n traceOut[\"_\" + axLetter + \"axes\"][axId] = 1;\n list.push(axId);\n if (!(axId in stash)) {\n var s = stash[axId] = {};\n if (dim2) {\n s.label = dim2.label || \"\";\n if (dim2.visible && dim2.axis) {\n if (dim2.axis.type) s.type = dim2.axis.type;\n if (dim2.axis.matches) s.matches = counterAxId;\n }\n }\n }\n }\n var mustShiftX = !showDiag && !showLower;\n var mustShiftY = !showDiag && !showUpper;\n traceOut._axesDim = {};\n for (i = 0; i < dimLength; i++) {\n var dim = dimensions[i];\n var i0 = i === 0;\n var iN = i === dimLength - 1;\n var xaId = i0 && mustShiftX || iN && mustShiftY ? void 0 : xaxes[i];\n var yaId = i0 && mustShiftY || iN && mustShiftX ? void 0 : yaxes[i];\n fillAxisStashes(xaId, yaId, dim, xList);\n fillAxisStashes(yaId, xaId, dim, yList);\n diag[i] = [xaId, yaId];\n traceOut._axesDim[xaId] = i;\n traceOut._axesDim[yaId] = i;\n }\n for (i = 0; i < xList.length; i++) {\n for (j = 0; j < yList.length; j++) {\n var id = xList[i] + yList[j];\n if (i > j && showUpper) {\n layout._splomSubplots[id] = 1;\n } else if (i < j && showLower) {\n layout._splomSubplots[id] = 1;\n } else if (i === j && (showDiag || !showLower || !showUpper)) {\n layout._splomSubplots[id] = 1;\n }\n }\n }\n if (!showLower || !showDiag && showUpper && showLower) {\n layout._splomGridDflt.xside = \"bottom\";\n layout._splomGridDflt.yside = \"left\";\n }\n }\n }\n });\n\n // src/traces/splom/scene_update.js\n var require_scene_update2 = __commonJS({\n \"src/traces/splom/scene_update.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function sceneUpdate(gd, trace) {\n var fullLayout = gd._fullLayout;\n var uid = trace.uid;\n var splomScenes = fullLayout._splomScenes;\n if (!splomScenes) splomScenes = fullLayout._splomScenes = {};\n var reset = {\n dirty: true,\n selectBatch: [],\n unselectBatch: []\n };\n var first = {\n matrix: false,\n selectBatch: [],\n unselectBatch: []\n };\n var scene = splomScenes[trace.uid];\n if (!scene) {\n scene = splomScenes[uid] = Lib.extendFlat({}, reset, first);\n scene.draw = function draw() {\n if (scene.matrix && scene.matrix.draw) {\n if (scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.draw(scene.unselectBatch, scene.selectBatch);\n } else {\n scene.matrix.draw();\n }\n }\n scene.dirty = false;\n };\n scene.destroy = function destroy() {\n if (scene.matrix && scene.matrix.destroy) {\n scene.matrix.destroy();\n }\n scene.matrixOptions = null;\n scene.selectBatch = null;\n scene.unselectBatch = null;\n scene = null;\n };\n }\n if (!scene.dirty) {\n Lib.extendFlat(scene, reset);\n }\n return scene;\n };\n }\n });\n\n // src/traces/splom/calc.js\n var require_calc30 = __commonJS({\n \"src/traces/splom/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var AxisIDs = require_axis_ids();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var calcAxisExpansion = require_calc3().calcAxisExpansion;\n var calcColorscale = require_colorscale_calc();\n var convertMarkerSelection = require_convert10().markerSelection;\n var convertMarkerStyle = require_convert10().markerStyle;\n var sceneUpdate = require_scene_update2();\n var BADNUM = require_numerical().BADNUM;\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n module.exports = function calc(gd, trace) {\n var dimensions = trace.dimensions;\n var commonLength = trace._length;\n var opts = {};\n var cdata = opts.cdata = [];\n var ldata = opts.data = [];\n var visibleDims = trace._visibleDims = [];\n var i, k, dim, xa, ya;\n function makeCalcdata(ax, dim2) {\n var ccol = ax.makeCalcdata({\n v: dim2.values,\n vcalendar: trace.calendar\n }, \"v\");\n for (var j = 0; j < ccol.length; j++) {\n ccol[j] = ccol[j] === BADNUM ? NaN : ccol[j];\n }\n cdata.push(ccol);\n ldata.push(ax.type === \"log\" ? Lib.simpleMap(ccol, ax.c2l) : ccol);\n }\n for (i = 0; i < dimensions.length; i++) {\n dim = dimensions[i];\n if (dim.visible) {\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]);\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]);\n if (xa && ya && xa.type !== ya.type) {\n Lib.log(\"Skipping splom dimension \" + i + \" with conflicting axis types\");\n continue;\n }\n if (xa) {\n makeCalcdata(xa, dim);\n if (ya && ya.type === \"category\") {\n ya._categories = xa._categories.slice();\n }\n } else {\n makeCalcdata(ya, dim);\n }\n visibleDims.push(i);\n }\n }\n calcColorscale(gd, trace);\n Lib.extendFlat(opts, convertMarkerStyle(gd, trace));\n var visibleLength = cdata.length;\n var hasTooManyPoints = visibleLength * commonLength > TOO_MANY_POINTS;\n var ppad;\n if (hasTooManyPoints) {\n ppad = opts.sizeAvg || Math.max(opts.size, 3);\n } else {\n ppad = calcMarkerSize(trace, commonLength);\n }\n for (k = 0; k < visibleDims.length; k++) {\n i = visibleDims[k];\n dim = dimensions[i];\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]) || {};\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]) || {};\n calcAxisExpansion(gd, trace, xa, ya, cdata[k], cdata[k], ppad);\n }\n var scene = sceneUpdate(gd, trace);\n if (!scene.matrix) scene.matrix = true;\n scene.matrixOptions = opts;\n scene.selectedOptions = convertMarkerSelection(gd, trace, trace.selected);\n scene.unselectedOptions = convertMarkerSelection(gd, trace, trace.unselected);\n return [{ x: false, y: false, t: {}, trace }];\n };\n }\n });\n\n // node_modules/performance-now/lib/performance-now.js\n var require_performance_now = __commonJS({\n \"node_modules/performance-now/lib/performance-now.js\"(exports, module) {\n (function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n if (typeof performance !== \"undefined\" && performance !== null && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if (typeof process !== \"undefined\" && process !== null && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return (/* @__PURE__ */ new Date()).getTime() - loadTime;\n };\n loadTime = (/* @__PURE__ */ new Date()).getTime();\n }\n }).call(exports);\n }\n });\n\n // node_modules/raf/index.js\n var require_raf = __commonJS({\n \"node_modules/raf/index.js\"(exports, module) {\n var now = require_performance_now();\n var root = typeof window === \"undefined\" ? window : window;\n var vendors = [\"moz\", \"webkit\"];\n var suffix = \"AnimationFrame\";\n var raf = root[\"request\" + suffix];\n var caf = root[\"cancel\" + suffix] || root[\"cancelRequest\" + suffix];\n for (i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + \"Request\" + suffix];\n caf = root[vendors[i] + \"Cancel\" + suffix] || root[vendors[i] + \"CancelRequest\" + suffix];\n }\n var i;\n if (!raf || !caf) {\n last = 0, id = 0, queue = [], frameDuration = 1e3 / 60;\n raf = function(callback) {\n if (queue.length === 0) {\n var _now = now(), next = Math.max(0, frameDuration - (_now - last));\n last = next + _now;\n setTimeout(function() {\n var cp = queue.slice(0);\n queue.length = 0;\n for (var i2 = 0; i2 < cp.length; i2++) {\n if (!cp[i2].cancelled) {\n try {\n cp[i2].callback(last);\n } catch (e) {\n setTimeout(function() {\n throw e;\n }, 0);\n }\n }\n }\n }, Math.round(next));\n }\n queue.push({\n handle: ++id,\n callback,\n cancelled: false\n });\n return id;\n };\n caf = function(handle) {\n for (var i2 = 0; i2 < queue.length; i2++) {\n if (queue[i2].handle === handle) {\n queue[i2].cancelled = true;\n }\n }\n };\n }\n var last;\n var id;\n var queue;\n var frameDuration;\n module.exports = function(fn) {\n return raf.call(root, fn);\n };\n module.exports.cancel = function() {\n caf.apply(root, arguments);\n };\n module.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf;\n object.cancelAnimationFrame = caf;\n };\n }\n });\n\n // node_modules/array-range/index.js\n var require_array_range = __commonJS({\n \"node_modules/array-range/index.js\"(exports, module) {\n module.exports = function newArray(start, end) {\n var n0 = typeof start === \"number\", n1 = typeof end === \"number\";\n if (n0 && !n1) {\n end = start;\n start = 0;\n } else if (!n0 && !n1) {\n start = 0;\n end = 0;\n }\n start = start | 0;\n end = end | 0;\n var len = end - start;\n if (len < 0)\n throw new Error(\"array length must be positive\");\n var a = new Array(len);\n for (var i = 0, c = start; i < len; i++, c++)\n a[i] = c;\n return a;\n };\n }\n });\n\n // node_modules/regl-splom/index.js\n var require_regl_splom = __commonJS({\n \"node_modules/regl-splom/index.js\"(exports, module) {\n \"use strict\";\n var createScatter = require_bundle();\n var pick = require_pick_by_alias();\n var getBounds = require_array_bounds();\n var raf = require_raf();\n var arrRange = require_array_range();\n var rect = require_parse_rect();\n var flatten = require_flatten_vertex_data();\n module.exports = SPLOM;\n function SPLOM(regl, options) {\n if (!(this instanceof SPLOM)) return new SPLOM(regl, options);\n this.traces = [];\n this.passes = {};\n this.regl = regl;\n this.scatter = createScatter(regl);\n this.canvas = this.scatter.canvas;\n }\n SPLOM.prototype.render = function(...args) {\n if (args.length) {\n this.update(...args);\n }\n if (this.regl.attributes.preserveDrawingBuffer) return this.draw();\n if (this.dirty) {\n if (this.planned == null) {\n this.planned = raf(() => {\n this.draw();\n this.dirty = true;\n this.planned = null;\n });\n }\n } else {\n this.draw();\n this.dirty = true;\n raf(() => {\n this.dirty = false;\n });\n }\n return this;\n };\n SPLOM.prototype.update = function(...args) {\n if (!args.length) return;\n for (let i = 0; i < args.length; i++) {\n this.updateItem(i, args[i]);\n }\n this.traces = this.traces.filter(Boolean);\n let passes = [];\n let offset = 0;\n for (let i = 0; i < this.traces.length; i++) {\n let trace = this.traces[i];\n let tracePasses = this.traces[i].passes;\n for (let j = 0; j < tracePasses.length; j++) {\n passes.push(this.passes[tracePasses[j]]);\n }\n trace.passOffset = offset;\n offset += trace.passes.length;\n }\n this.scatter.update(...passes);\n return this;\n };\n SPLOM.prototype.updateItem = function(i, options) {\n let { regl } = this;\n if (options === null) {\n this.traces[i] = null;\n return this;\n }\n if (!options) return this;\n let o = pick(options, {\n data: \"data items columns rows values dimensions samples x\",\n snap: \"snap cluster\",\n size: \"sizes size radius\",\n color: \"colors color fill fill-color fillColor\",\n opacity: \"opacity alpha transparency opaque\",\n borderSize: \"borderSizes borderSize border-size bordersize borderWidth borderWidths border-width borderwidth stroke-width strokeWidth strokewidth outline\",\n borderColor: \"borderColors borderColor bordercolor stroke stroke-color strokeColor\",\n marker: \"markers marker shape\",\n range: \"range ranges databox dataBox\",\n viewport: \"viewport viewBox viewbox\",\n domain: \"domain domains area areas\",\n padding: \"pad padding paddings pads margin margins\",\n transpose: \"transpose transposed\",\n diagonal: \"diagonal diag showDiagonal\",\n upper: \"upper up top upperhalf upperHalf showupperhalf showUpper showUpperHalf\",\n lower: \"lower low bottom lowerhalf lowerHalf showlowerhalf showLowerHalf showLower\"\n });\n let trace = this.traces[i] || (this.traces[i] = {\n id: i,\n buffer: regl.buffer({\n usage: \"dynamic\",\n type: \"float\",\n data: new Uint8Array()\n }),\n color: \"black\",\n marker: null,\n size: 12,\n borderColor: \"transparent\",\n borderSize: 1,\n viewport: rect([regl._gl.drawingBufferWidth, regl._gl.drawingBufferHeight]),\n padding: [0, 0, 0, 0],\n opacity: 1,\n diagonal: true,\n upper: true,\n lower: true\n });\n if (o.color != null) {\n trace.color = o.color;\n }\n if (o.size != null) {\n trace.size = o.size;\n }\n if (o.marker != null) {\n trace.marker = o.marker;\n }\n if (o.borderColor != null) {\n trace.borderColor = o.borderColor;\n }\n if (o.borderSize != null) {\n trace.borderSize = o.borderSize;\n }\n if (o.opacity != null) {\n trace.opacity = o.opacity;\n }\n if (o.viewport) {\n trace.viewport = rect(o.viewport);\n }\n if (o.diagonal != null) trace.diagonal = o.diagonal;\n if (o.upper != null) trace.upper = o.upper;\n if (o.lower != null) trace.lower = o.lower;\n if (o.data) {\n trace.buffer(flatten(o.data));\n trace.columns = o.data.length;\n trace.count = o.data[0].length;\n trace.bounds = [];\n for (let i2 = 0; i2 < trace.columns; i2++) {\n trace.bounds[i2] = getBounds(o.data[i2], 1);\n }\n }\n let multirange;\n if (o.range) {\n trace.range = o.range;\n multirange = trace.range && typeof trace.range[0] !== \"number\";\n }\n if (o.domain) {\n trace.domain = o.domain;\n }\n let multipadding = false;\n if (o.padding != null) {\n if (Array.isArray(o.padding) && o.padding.length === trace.columns && typeof o.padding[o.padding.length - 1] === \"number\") {\n trace.padding = o.padding.map(getPad);\n multipadding = true;\n } else {\n trace.padding = getPad(o.padding);\n }\n }\n let m = trace.columns;\n let n = trace.count;\n let w = trace.viewport.width;\n let h = trace.viewport.height;\n let left = trace.viewport.x;\n let top = trace.viewport.y;\n let iw = w / m;\n let ih = h / m;\n trace.passes = [];\n for (let i2 = 0; i2 < m; i2++) {\n for (let j = 0; j < m; j++) {\n if (!trace.diagonal && j === i2) continue;\n if (!trace.upper && i2 > j) continue;\n if (!trace.lower && i2 < j) continue;\n let key = passId(trace.id, i2, j);\n let pass = this.passes[key] || (this.passes[key] = {});\n if (o.data) {\n if (o.transpose) {\n pass.positions = {\n x: { buffer: trace.buffer, offset: j, count: n, stride: m },\n y: { buffer: trace.buffer, offset: i2, count: n, stride: m }\n };\n } else {\n pass.positions = {\n x: { buffer: trace.buffer, offset: j * n, count: n },\n y: { buffer: trace.buffer, offset: i2 * n, count: n }\n };\n }\n pass.bounds = getBox(trace.bounds, i2, j);\n }\n if (o.domain || o.viewport || o.data) {\n let pad = multipadding ? getBox(trace.padding, i2, j) : trace.padding;\n if (trace.domain) {\n let [lox, loy, hix, hiy] = getBox(trace.domain, i2, j);\n pass.viewport = [\n left + lox * w + pad[0],\n top + loy * h + pad[1],\n left + hix * w - pad[2],\n top + hiy * h - pad[3]\n ];\n } else {\n pass.viewport = [\n left + j * iw + iw * pad[0],\n top + i2 * ih + ih * pad[1],\n left + (j + 1) * iw - iw * pad[2],\n top + (i2 + 1) * ih - ih * pad[3]\n ];\n }\n }\n if (o.color) pass.color = trace.color;\n if (o.size) pass.size = trace.size;\n if (o.marker) pass.marker = trace.marker;\n if (o.borderSize) pass.borderSize = trace.borderSize;\n if (o.borderColor) pass.borderColor = trace.borderColor;\n if (o.opacity) pass.opacity = trace.opacity;\n if (o.range) {\n pass.range = multirange ? getBox(trace.range, i2, j) : trace.range || pass.bounds;\n }\n trace.passes.push(key);\n }\n }\n return this;\n };\n SPLOM.prototype.draw = function(...args) {\n if (!args.length) {\n this.scatter.draw();\n } else {\n let idx = [];\n for (let i = 0; i < args.length; i++) {\n if (typeof args[i] === \"number\") {\n let { passes, passOffset } = this.traces[args[i]];\n idx.push(...arrRange(passOffset, passOffset + passes.length));\n } else if (args[i].length) {\n let els = args[i];\n let { passes, passOffset } = this.traces[i];\n passes = passes.map((passId2, i2) => {\n idx[passOffset + i2] = els;\n });\n }\n }\n this.scatter.draw(...idx);\n }\n return this;\n };\n SPLOM.prototype.destroy = function() {\n this.traces.forEach((trace) => {\n if (trace.buffer && trace.buffer.destroy) trace.buffer.destroy();\n });\n this.traces = null;\n this.passes = null;\n this.scatter.destroy();\n return this;\n };\n function passId(trace, i, j) {\n let id = trace.id != null ? trace.id : trace;\n let n = i;\n let m = j;\n let key = id << 16 | (n & 255) << 8 | m & 255;\n return key;\n }\n function getBox(items, i, j) {\n let ilox, iloy, ihix, ihiy, jlox, jloy, jhix, jhiy;\n let iitem = items[i], jitem = items[j];\n if (iitem.length > 2) {\n ilox = iitem[0];\n ihix = iitem[2];\n iloy = iitem[1];\n ihiy = iitem[3];\n } else if (iitem.length) {\n ilox = iloy = iitem[0];\n ihix = ihiy = iitem[1];\n } else {\n ilox = iitem.x;\n iloy = iitem.y;\n ihix = iitem.x + iitem.width;\n ihiy = iitem.y + iitem.height;\n }\n if (jitem.length > 2) {\n jlox = jitem[0];\n jhix = jitem[2];\n jloy = jitem[1];\n jhiy = jitem[3];\n } else if (jitem.length) {\n jlox = jloy = jitem[0];\n jhix = jhiy = jitem[1];\n } else {\n jlox = jitem.x;\n jloy = jitem.y;\n jhix = jitem.x + jitem.width;\n jhiy = jitem.y + jitem.height;\n }\n return [jlox, iloy, jhix, ihiy];\n }\n function getPad(arg) {\n if (typeof arg === \"number\") return [arg, arg, arg, arg];\n else if (arg.length === 2) return [arg[0], arg[1], arg[0], arg[1]];\n else {\n let box = rect(arg);\n return [box.x, box.y, box.x + box.width, box.y + box.height];\n }\n }\n }\n });\n\n // src/traces/splom/plot.js\n var require_plot20 = __commonJS({\n \"src/traces/splom/plot.js\"(exports, module) {\n \"use strict\";\n var createMatrix = require_regl_splom();\n var Lib = require_lib();\n var AxisIDs = require_axis_ids();\n var selectMode = require_helpers5().selectMode;\n module.exports = function plot(gd, _, splomCalcData) {\n if (!splomCalcData.length) return;\n for (var i = 0; i < splomCalcData.length; i++) {\n plotOne(gd, splomCalcData[i][0]);\n }\n };\n function plotOne(gd, cd0) {\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var trace = cd0.trace;\n var stash = cd0.t;\n var scene = fullLayout._splomScenes[trace.uid];\n var matrixOpts = scene.matrixOptions;\n var cdata = matrixOpts.cdata;\n var regl = fullLayout._glcanvas.data()[0].regl;\n var dragmode = fullLayout.dragmode;\n var xa, ya;\n var i, j, k;\n if (cdata.length === 0) return;\n matrixOpts.lower = trace.showupperhalf;\n matrixOpts.upper = trace.showlowerhalf;\n matrixOpts.diagonal = trace.diagonal.visible;\n var visibleDims = trace._visibleDims;\n var visibleLength = cdata.length;\n var viewOpts = scene.viewOpts = {};\n viewOpts.ranges = new Array(visibleLength);\n viewOpts.domains = new Array(visibleLength);\n for (k = 0; k < visibleDims.length; k++) {\n i = visibleDims[k];\n var rng = viewOpts.ranges[k] = new Array(4);\n var dmn = viewOpts.domains[k] = new Array(4);\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]);\n if (xa) {\n rng[0] = xa._rl[0];\n rng[2] = xa._rl[1];\n dmn[0] = xa.domain[0];\n dmn[2] = xa.domain[1];\n }\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]);\n if (ya) {\n rng[1] = ya._rl[0];\n rng[3] = ya._rl[1];\n dmn[1] = ya.domain[0];\n dmn[3] = ya.domain[1];\n }\n }\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var l = gs.l * plotGlPixelRatio;\n var b = gs.b * plotGlPixelRatio;\n var w = gs.w * plotGlPixelRatio;\n var h = gs.h * plotGlPixelRatio;\n viewOpts.viewport = [l, b, w + l, h + b];\n if (scene.matrix === true) {\n scene.matrix = createMatrix(regl);\n }\n var clickSelectEnabled = fullLayout.clickmode.indexOf(\"select\") > -1;\n var isSelectMode = selectMode(dragmode) || !!trace.selectedpoints || clickSelectEnabled;\n var needsBaseUpdate = true;\n if (isSelectMode) {\n var commonLength = trace._length;\n if (trace.selectedpoints) {\n scene.selectBatch = trace.selectedpoints;\n var selPts = trace.selectedpoints;\n var selDict = {};\n for (i = 0; i < selPts.length; i++) {\n selDict[selPts[i]] = true;\n }\n var unselPts = [];\n for (i = 0; i < commonLength; i++) {\n if (!selDict[i]) unselPts.push(i);\n }\n scene.unselectBatch = unselPts;\n }\n var xpx = stash.xpx = new Array(visibleLength);\n var ypx = stash.ypx = new Array(visibleLength);\n for (k = 0; k < visibleDims.length; k++) {\n i = visibleDims[k];\n xa = AxisIDs.getFromId(gd, trace._diag[i][0]);\n if (xa) {\n xpx[k] = new Array(commonLength);\n for (j = 0; j < commonLength; j++) {\n xpx[k][j] = xa.c2p(cdata[k][j]);\n }\n }\n ya = AxisIDs.getFromId(gd, trace._diag[i][1]);\n if (ya) {\n ypx[k] = new Array(commonLength);\n for (j = 0; j < commonLength; j++) {\n ypx[k][j] = ya.c2p(cdata[k][j]);\n }\n }\n }\n if (scene.selectBatch.length || scene.unselectBatch.length) {\n var unselOpts = Lib.extendFlat({}, matrixOpts, scene.unselectedOptions, viewOpts);\n var selOpts = Lib.extendFlat({}, matrixOpts, scene.selectedOptions, viewOpts);\n scene.matrix.update(unselOpts, selOpts);\n needsBaseUpdate = false;\n }\n } else {\n stash.xpx = stash.ypx = null;\n }\n if (needsBaseUpdate) {\n var opts = Lib.extendFlat({}, matrixOpts, viewOpts);\n scene.matrix.update(opts, null);\n }\n }\n }\n });\n\n // src/traces/splom/helpers.js\n var require_helpers17 = __commonJS({\n \"src/traces/splom/helpers.js\"(exports) {\n \"use strict\";\n exports.getDimIndex = function getDimIndex(trace, ax) {\n var axId = ax._id;\n var axLetter = axId.charAt(0);\n var ind = { x: 0, y: 1 }[axLetter];\n var visibleDims = trace._visibleDims;\n for (var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n if (trace._diag[i][ind] === axId) return k;\n }\n return false;\n };\n }\n });\n\n // src/traces/splom/hover.js\n var require_hover17 = __commonJS({\n \"src/traces/splom/hover.js\"(exports, module) {\n \"use strict\";\n var helpers = require_helpers17();\n var calcHover = require_hover16().calcHover;\n var getFromId = require_axes().getFromId;\n var extendFlat = require_extend().extendFlat;\n function hoverPoints(pointData, xval, yval, hovermode, opts) {\n if (!opts) opts = {};\n var hovermodeHasX = (hovermode || \"\").charAt(0) === \"x\";\n var hovermodeHasY = (hovermode || \"\").charAt(0) === \"y\";\n var points = _hoverPoints(pointData, xval, yval);\n if ((hovermodeHasX || hovermodeHasY) && opts.hoversubplots === \"axis\" && points[0]) {\n var subplotsWith = (hovermodeHasX ? pointData.xa : pointData.ya)._subplotsWith;\n var gd = opts.gd;\n var _pointData = extendFlat({}, pointData);\n for (var i = 0; i < subplotsWith.length; i++) {\n var spId = subplotsWith[i];\n if (spId === pointData.xa._id + pointData.ya._id) continue;\n if (hovermodeHasY) {\n _pointData.xa = getFromId(gd, spId, \"x\");\n } else {\n _pointData.ya = getFromId(gd, spId, \"y\");\n }\n var axisHoversubplots = hovermodeHasX || hovermodeHasY;\n var newPoints = _hoverPoints(_pointData, xval, yval, axisHoversubplots);\n points = points.concat(newPoints);\n }\n }\n return points;\n }\n function _hoverPoints(pointData, xval, yval, axisHoversubplots) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var scene = pointData.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var xpx = xa.c2p(xval);\n var ypx = ya.c2p(yval);\n var maxDistance = pointData.distance;\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if (xi === false || yi === false) return [pointData];\n var x = cdata[xi];\n var y = cdata[yi];\n var id, dxy;\n var minDist = maxDistance;\n for (var i = 0; i < x.length; i++) {\n if (axisHoversubplots && i !== pointData.index) continue;\n var ptx = x[i];\n var pty = y[i];\n var dx = xa.c2p(ptx) - xpx;\n var dy = ya.c2p(pty) - ypx;\n var dist = Math.sqrt(dx * dx + dy * dy);\n if (axisHoversubplots || dist < minDist) {\n minDist = dxy = dist;\n id = i;\n }\n }\n pointData.index = id;\n pointData.distance = minDist;\n pointData.dxy = dxy;\n if (id === void 0) return [pointData];\n return [calcHover(pointData, x, y, trace)];\n }\n module.exports = {\n hoverPoints\n };\n }\n });\n\n // src/traces/splom/select.js\n var require_select8 = __commonJS({\n \"src/traces/splom/select.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var pushUnique = Lib.pushUnique;\n var subTypes = require_subtypes();\n var helpers = require_helpers17();\n module.exports = function select(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var trace = cd[0].trace;\n var stash = cd[0].t;\n var scene = searchInfo.scene;\n var cdata = scene.matrixOptions.cdata;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n if (!scene) return selection;\n var hasOnlyLines = !subTypes.hasMarkers(trace) && !subTypes.hasText(trace);\n if (trace.visible !== true || hasOnlyLines) return selection;\n var xi = helpers.getDimIndex(trace, xa);\n var yi = helpers.getDimIndex(trace, ya);\n if (xi === false || yi === false) return selection;\n var xpx = stash.xpx[xi];\n var ypx = stash.ypx[yi];\n var x = cdata[xi];\n var y = cdata[yi];\n var els = (searchInfo.scene.selectBatch || []).slice();\n var unels = [];\n if (selectionTester !== false && !selectionTester.degenerate) {\n for (var i = 0; i < x.length; i++) {\n if (selectionTester.contains([xpx[i], ypx[i]], null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n x: x[i],\n y: y[i]\n });\n pushUnique(els, i);\n } else if (els.indexOf(i) !== -1) {\n pushUnique(els, i);\n } else {\n unels.push(i);\n }\n }\n }\n var matrixOpts = scene.matrixOptions;\n if (!els.length && !unels.length) {\n scene.matrix.update(matrixOpts, null);\n } else if (!scene.selectBatch.length && !scene.unselectBatch.length) {\n scene.matrix.update(\n scene.unselectedOptions,\n Lib.extendFlat({}, matrixOpts, scene.selectedOptions, scene.viewOpts)\n );\n }\n scene.selectBatch = els;\n scene.unselectBatch = unels;\n return selection;\n };\n }\n });\n\n // src/traces/splom/edit_style.js\n var require_edit_style2 = __commonJS({\n \"src/traces/splom/edit_style.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var calcColorscale = require_colorscale_calc();\n var convertMarkerStyle = require_convert10().markerStyle;\n module.exports = function editStyle(gd, cd0) {\n var trace = cd0.trace;\n var scene = gd._fullLayout._splomScenes[trace.uid];\n if (scene) {\n calcColorscale(gd, trace);\n Lib.extendFlat(scene.matrixOptions, convertMarkerStyle(gd, trace));\n var opts = Lib.extendFlat({}, scene.matrixOptions, scene.viewOpts);\n scene.matrix.update(opts, null);\n }\n };\n }\n });\n\n // src/traces/splom/base_index.js\n var require_base_index2 = __commonJS({\n \"src/traces/splom/base_index.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Grid = require_grid();\n module.exports = {\n moduleType: \"trace\",\n name: \"splom\",\n categories: [\"gl\", \"regl\", \"cartesian\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes51(),\n supplyDefaults: require_defaults47(),\n colorbar: require_marker_colorbar(),\n calc: require_calc30(),\n plot: require_plot20(),\n hoverPoints: require_hover17().hoverPoints,\n selectPoints: require_select8(),\n editStyle: require_edit_style2(),\n meta: {}\n };\n Registry.register(Grid);\n }\n });\n\n // src/traces/splom/base_plot.js\n var require_base_plot6 = __commonJS({\n \"src/traces/splom/base_plot.js\"(exports, module) {\n \"use strict\";\n var createLine = require_regl_line2d();\n var Registry = require_registry();\n var prepareRegl = require_prepare_regl();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var Cartesian = require_cartesian();\n var getFromId = require_axis_ids().getFromId;\n var shouldShowZeroLine = require_axes().shouldShowZeroLine;\n var SPLOM = \"splom\";\n var reglPrecompiled = {};\n function plot(gd) {\n var fullLayout = gd._fullLayout;\n var _module = Registry.getModule(SPLOM);\n var splomCalcData = getModuleCalcData(gd.calcdata, _module)[0];\n var success = prepareRegl(gd, [\"ANGLE_instanced_arrays\", \"OES_element_index_uint\"], reglPrecompiled);\n if (!success) return;\n if (fullLayout._hasOnlyLargeSploms) {\n updateGrid(gd);\n }\n _module.plot(gd, {}, splomCalcData);\n }\n function drag(gd) {\n var cd = gd.calcdata;\n var fullLayout = gd._fullLayout;\n if (fullLayout._hasOnlyLargeSploms) {\n updateGrid(gd);\n }\n for (var i = 0; i < cd.length; i++) {\n var cd0 = cd[i][0];\n var trace = cd0.trace;\n var scene = fullLayout._splomScenes[trace.uid];\n if (trace.type === \"splom\" && scene && scene.matrix) {\n dragOne(gd, trace, scene);\n }\n }\n }\n function dragOne(gd, trace, scene) {\n var visibleLength = scene.matrixOptions.data.length;\n var visibleDims = trace._visibleDims;\n var ranges = scene.viewOpts.ranges = new Array(visibleLength);\n for (var k = 0; k < visibleDims.length; k++) {\n var i = visibleDims[k];\n var rng = ranges[k] = new Array(4);\n var xa = getFromId(gd, trace._diag[i][0]);\n if (xa) {\n rng[0] = xa.r2l(xa.range[0]);\n rng[2] = xa.r2l(xa.range[1]);\n }\n var ya = getFromId(gd, trace._diag[i][1]);\n if (ya) {\n rng[1] = ya.r2l(ya.range[0]);\n rng[3] = ya.r2l(ya.range[1]);\n }\n }\n if (scene.selectBatch.length || scene.unselectBatch.length) {\n scene.matrix.update({ ranges }, { ranges });\n } else {\n scene.matrix.update({ ranges });\n }\n }\n function updateGrid(gd) {\n var fullLayout = gd._fullLayout;\n var regl = fullLayout._glcanvas.data()[0].regl;\n var splomGrid = fullLayout._splomGrid;\n if (!splomGrid) {\n splomGrid = fullLayout._splomGrid = createLine(regl);\n }\n splomGrid.update(makeGridData(gd));\n }\n function makeGridData(gd) {\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var fullLayout = gd._fullLayout;\n var gs = fullLayout._size;\n var fullView = [\n 0,\n 0,\n fullLayout.width * plotGlPixelRatio,\n fullLayout.height * plotGlPixelRatio\n ];\n var lookup = {};\n var k;\n function push(prefix, ax, x0, x1, y0, y1) {\n x0 *= plotGlPixelRatio;\n x1 *= plotGlPixelRatio;\n y0 *= plotGlPixelRatio;\n y1 *= plotGlPixelRatio;\n var lcolor = ax[prefix + \"color\"];\n var lwidth = ax[prefix + \"width\"];\n var key = String(lcolor + lwidth);\n if (key in lookup) {\n lookup[key].data.push(NaN, NaN, x0, x1, y0, y1);\n } else {\n lookup[key] = {\n data: [x0, x1, y0, y1],\n join: \"rect\",\n thickness: lwidth * plotGlPixelRatio,\n color: lcolor,\n viewport: fullView,\n range: fullView,\n overlay: false\n };\n }\n }\n for (k in fullLayout._splomSubplots) {\n var sp = fullLayout._plots[k];\n var xa = sp.xaxis;\n var ya = sp.yaxis;\n var xVals = xa._gridVals;\n var yVals = ya._gridVals;\n var xOffset = xa._offset;\n var xLength = xa._length;\n var yLength = ya._length;\n var yOffset = gs.b + ya.domain[0] * gs.h;\n var ym = -ya._m;\n var yb = -ym * ya.r2l(ya.range[0], ya.calendar);\n var x, y;\n if (xa.showgrid) {\n for (k = 0; k < xVals.length; k++) {\n x = xOffset + xa.l2p(xVals[k].x);\n push(\"grid\", xa, x, yOffset, x, yOffset + yLength);\n }\n }\n if (ya.showgrid) {\n for (k = 0; k < yVals.length; k++) {\n y = yOffset + yb + ym * yVals[k].x;\n push(\"grid\", ya, xOffset, y, xOffset + xLength, y);\n }\n }\n if (shouldShowZeroLine(gd, xa, ya)) {\n x = xOffset + xa.l2p(0);\n push(\"zeroline\", xa, x, yOffset, x, yOffset + yLength);\n }\n if (shouldShowZeroLine(gd, ya, xa)) {\n y = yOffset + yb + 0;\n push(\"zeroline\", ya, xOffset, y, xOffset + xLength, y);\n }\n }\n var gridBatches = [];\n for (k in lookup) {\n gridBatches.push(lookup[k]);\n }\n return gridBatches;\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var lookup = {};\n var i;\n if (oldFullLayout._splomScenes) {\n for (i = 0; i < newFullData.length; i++) {\n var newTrace = newFullData[i];\n if (newTrace.type === \"splom\") {\n lookup[newTrace.uid] = 1;\n }\n }\n for (i = 0; i < oldFullData.length; i++) {\n var oldTrace = oldFullData[i];\n if (!lookup[oldTrace.uid]) {\n var scene = oldFullLayout._splomScenes[oldTrace.uid];\n if (scene && scene.destroy) scene.destroy();\n oldFullLayout._splomScenes[oldTrace.uid] = null;\n delete oldFullLayout._splomScenes[oldTrace.uid];\n }\n }\n }\n if (Object.keys(oldFullLayout._splomScenes || {}).length === 0) {\n delete oldFullLayout._splomScenes;\n }\n if (oldFullLayout._splomGrid && (!newFullLayout._hasOnlyLargeSploms && oldFullLayout._hasOnlyLargeSploms)) {\n oldFullLayout._splomGrid.destroy();\n oldFullLayout._splomGrid = null;\n delete oldFullLayout._splomGrid;\n }\n Cartesian.clean(newFullData, newFullLayout, oldFullData, oldFullLayout);\n }\n module.exports = {\n name: SPLOM,\n attr: Cartesian.attr,\n attrRegex: Cartesian.attrRegex,\n layoutAttributes: Cartesian.layoutAttributes,\n supplyLayoutDefaults: Cartesian.supplyLayoutDefaults,\n drawFramework: Cartesian.drawFramework,\n plot,\n drag,\n updateGrid,\n clean,\n updateFx: Cartesian.updateFx,\n toSVG: Cartesian.toSVG,\n reglPrecompiled\n };\n }\n });\n\n // src/traces/splom/index.js\n var require_splom = __commonJS({\n \"src/traces/splom/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index2();\n index.basePlotModule = require_base_plot6(), module.exports = index;\n }\n });\n\n // lib/splom.js\n var require_splom2 = __commonJS({\n \"lib/splom.js\"(exports, module) {\n \"use strict\";\n module.exports = require_splom();\n }\n });\n\n // src/traces/parcoords/attributes.js\n var require_attributes52 = __commonJS({\n \"src/traces/parcoords/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var axesAttrs = require_layout_attributes4();\n var fontAttrs = require_font_attributes();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_extend().extendFlat;\n var templatedArray = require_plot_template().templatedArray;\n module.exports = {\n domain: domainAttrs({ name: \"parcoords\", trace: true, editType: \"plot\" }),\n labelangle: {\n valType: \"angle\",\n dflt: 0,\n editType: \"plot\"\n },\n labelside: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\"],\n dflt: \"top\",\n editType: \"plot\"\n },\n labelfont: fontAttrs({\n editType: \"plot\"\n }),\n tickfont: fontAttrs({\n autoShadowDflt: true,\n editType: \"plot\"\n }),\n rangefont: fontAttrs({\n editType: \"plot\"\n }),\n dimensions: templatedArray(\"dimension\", {\n label: {\n valType: \"string\",\n editType: \"plot\"\n },\n // TODO: better way to determine ordinal vs continuous axes,\n // so users can use tickvals/ticktext with a continuous axis.\n tickvals: extendFlat({}, axesAttrs.tickvals, {\n editType: \"plot\"\n }),\n ticktext: extendFlat({}, axesAttrs.ticktext, {\n editType: \"plot\"\n }),\n tickformat: extendFlat({}, axesAttrs.tickformat, {\n editType: \"plot\"\n }),\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n range: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"plot\" },\n { valType: \"number\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n constraintrange: {\n valType: \"info_array\",\n freeLength: true,\n dimensions: \"1-2\",\n items: [\n { valType: \"any\", editType: \"plot\" },\n { valType: \"any\", editType: \"plot\" }\n ],\n editType: \"plot\"\n },\n multiselect: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n values: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n editType: \"calc\"\n }),\n line: extendFlat(\n { editType: \"calc\" },\n colorScaleAttrs(\"line\", {\n // the default autocolorscale isn't quite usable for parcoords due to context ambiguity around 0 (grey, off-white)\n // autocolorscale therefore defaults to false too, to avoid being overridden by the blue-white-red autocolor palette\n colorscaleDflt: \"Viridis\",\n autoColorDflt: false,\n editTypeOverride: \"calc\"\n })\n ),\n unselected: {\n line: {\n color: {\n valType: \"color\",\n dflt: \"#7f7f7f\",\n editType: \"plot\"\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: \"auto\",\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n editType: \"plot\"\n }\n };\n }\n });\n\n // src/traces/parcoords/constants.js\n var require_constants24 = __commonJS({\n \"src/traces/parcoords/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n maxDimensionCount: 60,\n // this cannot be increased without WebGL code refactoring\n overdrag: 45,\n verticalPadding: 2,\n // otherwise, horizontal lines on top or bottom are of lower width\n tickDistance: 50,\n canvasPixelRatio: 1,\n blockLineCount: 5e3,\n layers: [\"contextLineLayer\", \"focusLineLayer\", \"pickLineLayer\"],\n axisTitleOffset: 28,\n axisExtentOffset: 10,\n bar: {\n width: 4,\n // Visible width of the filter bar\n captureWidth: 10,\n // Mouse-sensitive width for interaction (Fitts law)\n fillColor: \"magenta\",\n // Color of the filter bar fill\n fillOpacity: 1,\n // Filter bar fill opacity\n snapDuration: 150,\n // tween duration in ms for brush snap for ordinal axes\n snapRatio: 0.25,\n // ratio of bar extension relative to the distance between two adjacent ordinal values\n snapClose: 0.01,\n // fraction of inter-value distance to snap to the closer one, even if you're not over it\n strokeOpacity: 1,\n // Filter bar side stroke opacity\n strokeWidth: 1,\n // Filter bar side stroke width in pixels\n handleHeight: 8,\n // Height of the filter bar vertical resize areas on top and bottom\n handleOpacity: 1,\n // Opacity of the filter bar vertical resize areas on top and bottom\n handleOverlap: 0\n // A larger than 0 value causes overlaps with the filter bar, represented as pixels\n },\n cn: {\n axisExtentText: \"axis-extent-text\",\n parcoordsLineLayers: \"parcoords-line-layers\",\n parcoordsLineLayer: \"parcoords-lines\",\n parcoords: \"parcoords\",\n parcoordsControlView: \"parcoords-control-view\",\n yAxis: \"y-axis\",\n axisOverlays: \"axis-overlays\",\n axis: \"axis\",\n axisHeading: \"axis-heading\",\n axisTitle: \"axis-title\",\n axisExtent: \"axis-extent\",\n axisExtentTop: \"axis-extent-top\",\n axisExtentTopText: \"axis-extent-top-text\",\n axisExtentBottom: \"axis-extent-bottom\",\n axisExtentBottomText: \"axis-extent-bottom-text\",\n axisBrush: \"axis-brush\"\n },\n id: {\n filterBarPattern: \"filter-bar-pattern\"\n }\n };\n }\n });\n\n // src/lib/gup.js\n var require_gup = __commonJS({\n \"src/lib/gup.js\"(exports, module) {\n \"use strict\";\n var identity2 = require_identity2();\n function wrap(d) {\n return [d];\n }\n module.exports = {\n // The D3 data binding concept and the General Update Pattern promotes the idea of\n // traversing into the scenegraph by using the `.data(fun, keyFun)` call.\n // The `fun` is most often a `repeat`, ie. the elements beneath a `` element need\n // access to the same data, or a `descend`, which fans a scenegraph node into a bunch of\n // of elements, e.g. points, lines, rows, requiring an array as input.\n // The role of the `keyFun` is to identify what elements are being entered/exited/updated,\n // otherwise D3 reverts to using a plain index which would screw up `transition`s.\n keyFun: function(d) {\n return d.key;\n },\n repeat: wrap,\n descend: identity2,\n // Plotly.js uses a convention of storing the actual contents of the `calcData` as the\n // element zero of a container array. These helpers are just used for clarity as a\n // newcomer to the codebase may not know what the `[0]` is, and whether there can be further\n // elements (not atm).\n wrap,\n unwrap: function(d) {\n return d[0];\n }\n };\n }\n });\n\n // src/traces/parcoords/axisbrush.js\n var require_axisbrush = __commonJS({\n \"src/traces/parcoords/axisbrush.js\"(exports, module) {\n \"use strict\";\n var c = require_constants24();\n var d3 = require_d3();\n var keyFun = require_gup().keyFun;\n var repeat = require_gup().repeat;\n var sortAsc = require_lib().sorterAsc;\n var strTranslate = require_lib().strTranslate;\n var snapRatio = c.bar.snapRatio;\n function snapOvershoot(v, vAdjacent) {\n return v * (1 - snapRatio) + vAdjacent * snapRatio;\n }\n var snapClose = c.bar.snapClose;\n function closeToCovering(v, vAdjacent) {\n return v * (1 - snapClose) + vAdjacent * snapClose;\n }\n function ordinalScaleSnap(isHigh, a, v, existingRanges) {\n if (overlappingExisting(v, existingRanges)) return v;\n var dir = isHigh ? -1 : 1;\n var first = 0;\n var last = a.length - 1;\n if (dir < 0) {\n var tmp = first;\n first = last;\n last = tmp;\n }\n var aHere = a[first];\n var aPrev = aHere;\n for (var i = first; dir * i < dir * last; i += dir) {\n var nextI = i + dir;\n var aNext = a[nextI];\n if (dir * v < dir * closeToCovering(aHere, aNext)) return snapOvershoot(aHere, aPrev);\n if (dir * v < dir * aNext || nextI === last) return snapOvershoot(aNext, aHere);\n aPrev = aHere;\n aHere = aNext;\n }\n }\n function overlappingExisting(v, existingRanges) {\n for (var i = 0; i < existingRanges.length; i++) {\n if (v >= existingRanges[i][0] && v <= existingRanges[i][1]) return true;\n }\n return false;\n }\n function barHorizontalSetup(selection) {\n selection.attr(\"x\", -c.bar.captureWidth / 2).attr(\"width\", c.bar.captureWidth);\n }\n function backgroundBarHorizontalSetup(selection) {\n selection.attr(\"visibility\", \"visible\").style(\"visibility\", \"visible\").attr(\"fill\", \"yellow\").attr(\"opacity\", 0);\n }\n function setHighlight(d) {\n if (!d.brush.filterSpecified) {\n return \"0,\" + d.height;\n }\n var pixelRanges = unitToPx(d.brush.filter.getConsolidated(), d.height);\n var dashArray = [0];\n var p, sectionHeight, iNext;\n var currentGap = pixelRanges.length ? pixelRanges[0][0] : null;\n for (var i = 0; i < pixelRanges.length; i++) {\n p = pixelRanges[i];\n sectionHeight = p[1] - p[0];\n dashArray.push(currentGap);\n dashArray.push(sectionHeight);\n iNext = i + 1;\n if (iNext < pixelRanges.length) {\n currentGap = pixelRanges[iNext][0] - p[1];\n }\n }\n dashArray.push(d.height);\n return dashArray;\n }\n function unitToPx(unitRanges, height) {\n return unitRanges.map(function(pr) {\n return pr.map(function(v) {\n return Math.max(0, v * height);\n }).sort(sortAsc);\n });\n }\n function getRegion(fPix, y) {\n var pad = c.bar.handleHeight;\n if (y > fPix[1] + pad || y < fPix[0] - pad) return;\n if (y >= 0.9 * fPix[1] + 0.1 * fPix[0]) return \"n\";\n if (y <= 0.9 * fPix[0] + 0.1 * fPix[1]) return \"s\";\n return \"ns\";\n }\n function clearCursor() {\n d3.select(document.body).style(\"cursor\", null);\n }\n function styleHighlight(selection) {\n selection.attr(\"stroke-dasharray\", setHighlight);\n }\n function renderHighlight(root, tweenCallback) {\n var bar = d3.select(root).selectAll(\".highlight, .highlight-shadow\");\n var barToStyle = tweenCallback ? bar.transition().duration(c.bar.snapDuration).each(\"end\", tweenCallback) : bar;\n styleHighlight(barToStyle);\n }\n function getInterval(d, y) {\n var b = d.brush;\n var active = b.filterSpecified;\n var closestInterval = NaN;\n var out = {};\n var i;\n if (active) {\n var height = d.height;\n var intervals = b.filter.getConsolidated();\n var pixIntervals = unitToPx(intervals, height);\n var hoveredInterval = NaN;\n var previousInterval = NaN;\n var nextInterval = NaN;\n for (i = 0; i <= pixIntervals.length; i++) {\n var p = pixIntervals[i];\n if (p && p[0] <= y && y <= p[1]) {\n hoveredInterval = i;\n break;\n } else {\n previousInterval = i ? i - 1 : NaN;\n if (p && p[0] > y) {\n nextInterval = i;\n break;\n }\n }\n }\n closestInterval = hoveredInterval;\n if (isNaN(closestInterval)) {\n if (isNaN(previousInterval) || isNaN(nextInterval)) {\n closestInterval = isNaN(previousInterval) ? nextInterval : previousInterval;\n } else {\n closestInterval = y - pixIntervals[previousInterval][1] < pixIntervals[nextInterval][0] - y ? previousInterval : nextInterval;\n }\n }\n if (!isNaN(closestInterval)) {\n var fPix = pixIntervals[closestInterval];\n var region = getRegion(fPix, y);\n if (region) {\n out.interval = intervals[closestInterval];\n out.intervalPix = fPix;\n out.region = region;\n }\n }\n }\n if (d.ordinal && !out.region) {\n var a = d.unitTickvals;\n var unitLocation = d.unitToPaddedPx.invert(y);\n for (i = 0; i < a.length; i++) {\n var rangei = [\n a[Math.max(i - 1, 0)] * 0.25 + a[i] * 0.75,\n a[Math.min(i + 1, a.length - 1)] * 0.25 + a[i] * 0.75\n ];\n if (unitLocation >= rangei[0] && unitLocation <= rangei[1]) {\n out.clickableOrdinalRange = rangei;\n break;\n }\n }\n }\n return out;\n }\n function dragstart(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var unitLocation = d.unitToPaddedPx.invert(y);\n var b = d.brush;\n var interval = getInterval(d, y);\n var unitRange = interval.interval;\n var s = b.svgBrush;\n s.wasDragged = false;\n s.grabbingBar = interval.region === \"ns\";\n if (s.grabbingBar) {\n var pixelRange = unitRange.map(d.unitToPaddedPx);\n s.grabPoint = y - pixelRange[0] - c.verticalPadding;\n s.barLength = pixelRange[1] - pixelRange[0];\n }\n s.clickableOrdinalRange = interval.clickableOrdinalRange;\n s.stayingIntervals = d.multiselect && b.filterSpecified ? b.filter.getConsolidated() : [];\n if (unitRange) {\n s.stayingIntervals = s.stayingIntervals.filter(function(int2) {\n return int2[0] !== unitRange[0] && int2[1] !== unitRange[1];\n });\n }\n s.startExtent = interval.region ? unitRange[interval.region === \"s\" ? 1 : 0] : unitLocation;\n d.parent.inBrushDrag = true;\n s.brushStartCallback();\n }\n function drag(lThis, d) {\n d3.event.sourceEvent.stopPropagation();\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var s = d.brush.svgBrush;\n s.wasDragged = true;\n s._dragging = true;\n if (s.grabbingBar) {\n s.newExtent = [y - s.grabPoint, y + s.barLength - s.grabPoint].map(d.unitToPaddedPx.invert);\n } else {\n s.newExtent = [s.startExtent, d.unitToPaddedPx.invert(y)].sort(sortAsc);\n }\n d.brush.filterSpecified = true;\n s.extent = s.stayingIntervals.concat([s.newExtent]);\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n }\n function dragend(lThis, d) {\n var brush = d.brush;\n var filter = brush.filter;\n var s = brush.svgBrush;\n if (!s._dragging) {\n mousemove(lThis, d);\n drag(lThis, d);\n d.brush.svgBrush.wasDragged = false;\n }\n s._dragging = false;\n var e = d3.event;\n e.sourceEvent.stopPropagation();\n var grabbingBar = s.grabbingBar;\n s.grabbingBar = false;\n s.grabLocation = void 0;\n d.parent.inBrushDrag = false;\n clearCursor();\n if (!s.wasDragged) {\n s.wasDragged = void 0;\n if (s.clickableOrdinalRange) {\n if (brush.filterSpecified && d.multiselect) {\n s.extent.push(s.clickableOrdinalRange);\n } else {\n s.extent = [s.clickableOrdinalRange];\n brush.filterSpecified = true;\n }\n } else if (grabbingBar) {\n s.extent = s.stayingIntervals;\n if (s.extent.length === 0) {\n brushClear(brush);\n }\n } else {\n brushClear(brush);\n }\n s.brushCallback(d);\n renderHighlight(lThis.parentNode);\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n return;\n }\n var mergeIntervals = function() {\n filter.set(filter.getConsolidated());\n };\n if (d.ordinal) {\n var a = d.unitTickvals;\n if (a[a.length - 1] < a[0]) a.reverse();\n s.newExtent = [\n ordinalScaleSnap(0, a, s.newExtent[0], s.stayingIntervals),\n ordinalScaleSnap(1, a, s.newExtent[1], s.stayingIntervals)\n ];\n var hasNewExtent = s.newExtent[1] > s.newExtent[0];\n s.extent = s.stayingIntervals.concat(hasNewExtent ? [s.newExtent] : []);\n if (!s.extent.length) {\n brushClear(brush);\n }\n s.brushCallback(d);\n if (hasNewExtent) {\n renderHighlight(lThis.parentNode, mergeIntervals);\n } else {\n mergeIntervals();\n renderHighlight(lThis.parentNode);\n }\n } else {\n mergeIntervals();\n }\n s.brushEndCallback(brush.filterSpecified ? filter.getConsolidated() : []);\n }\n function mousemove(lThis, d) {\n var y = d.height - d3.mouse(lThis)[1] - 2 * c.verticalPadding;\n var interval = getInterval(d, y);\n var cursor = \"crosshair\";\n if (interval.clickableOrdinalRange) cursor = \"pointer\";\n else if (interval.region) cursor = interval.region + \"-resize\";\n d3.select(document.body).style(\"cursor\", cursor);\n }\n function attachDragBehavior(selection) {\n selection.on(\"mousemove\", function(d) {\n d3.event.preventDefault();\n if (!d.parent.inBrushDrag) mousemove(this, d);\n }).on(\"mouseleave\", function(d) {\n if (!d.parent.inBrushDrag) clearCursor();\n }).call(\n d3.behavior.drag().on(\"dragstart\", function(d) {\n dragstart(this, d);\n }).on(\"drag\", function(d) {\n drag(this, d);\n }).on(\"dragend\", function(d) {\n dragend(this, d);\n })\n );\n }\n function startAsc(a, b) {\n return a[0] - b[0];\n }\n function renderAxisBrush(axisBrush, paperColor, gd) {\n var isStatic = gd._context.staticPlot;\n var background = axisBrush.selectAll(\".background\").data(repeat);\n background.enter().append(\"rect\").classed(\"background\", true).call(barHorizontalSetup).call(backgroundBarHorizontalSetup).style(\"pointer-events\", isStatic ? \"none\" : \"auto\").attr(\"transform\", strTranslate(0, c.verticalPadding));\n background.call(attachDragBehavior).attr(\"height\", function(d) {\n return d.height - c.verticalPadding;\n });\n var highlightShadow = axisBrush.selectAll(\".highlight-shadow\").data(repeat);\n highlightShadow.enter().append(\"line\").classed(\"highlight-shadow\", true).attr(\"x\", -c.bar.width / 2).attr(\"stroke-width\", c.bar.width + c.bar.strokeWidth).attr(\"stroke\", paperColor).attr(\"opacity\", c.bar.strokeOpacity).attr(\"stroke-linecap\", \"butt\");\n highlightShadow.attr(\"y1\", function(d) {\n return d.height;\n }).call(styleHighlight);\n var highlight = axisBrush.selectAll(\".highlight\").data(repeat);\n highlight.enter().append(\"line\").classed(\"highlight\", true).attr(\"x\", -c.bar.width / 2).attr(\"stroke-width\", c.bar.width - c.bar.strokeWidth).attr(\"stroke\", c.bar.fillColor).attr(\"opacity\", c.bar.fillOpacity).attr(\"stroke-linecap\", \"butt\");\n highlight.attr(\"y1\", function(d) {\n return d.height;\n }).call(styleHighlight);\n }\n function ensureAxisBrush(axisOverlays, paperColor, gd) {\n var axisBrush = axisOverlays.selectAll(\".\" + c.cn.axisBrush).data(repeat, keyFun);\n axisBrush.enter().append(\"g\").classed(c.cn.axisBrush, true);\n renderAxisBrush(axisBrush, paperColor, gd);\n }\n function getBrushExtent(brush) {\n return brush.svgBrush.extent.map(function(e) {\n return e.slice();\n });\n }\n function brushClear(brush) {\n brush.filterSpecified = false;\n brush.svgBrush.extent = [[-Infinity, Infinity]];\n }\n function axisBrushMoved(callback) {\n return function axisBrushMoved2(dimension) {\n var brush = dimension.brush;\n var extent = getBrushExtent(brush);\n var newExtent = extent.slice();\n brush.filter.set(newExtent);\n callback();\n };\n }\n function dedupeRealRanges(intervals) {\n var queue = intervals.slice();\n var result = [];\n var currentInterval;\n var current = queue.shift();\n while (current) {\n currentInterval = current.slice();\n while ((current = queue.shift()) && current[0] <= /* right-open interval would need `<` */\n currentInterval[1]) {\n currentInterval[1] = Math.max(currentInterval[1], current[1]);\n }\n result.push(currentInterval);\n }\n if (result.length === 1 && result[0][0] > result[0][1]) {\n result = [];\n }\n return result;\n }\n function makeFilter() {\n var filter = [];\n var consolidated;\n var bounds;\n return {\n set: function(a) {\n filter = a.map(function(d) {\n return d.slice().sort(sortAsc);\n }).sort(startAsc);\n if (filter.length === 1 && filter[0][0] === -Infinity && filter[0][1] === Infinity) {\n filter = [[0, -1]];\n }\n consolidated = dedupeRealRanges(filter);\n bounds = filter.reduce(function(p, n) {\n return [Math.min(p[0], n[0]), Math.max(p[1], n[1])];\n }, [Infinity, -Infinity]);\n },\n get: function() {\n return filter.slice();\n },\n getConsolidated: function() {\n return consolidated;\n },\n getBounds: function() {\n return bounds;\n }\n };\n }\n function makeBrush(state, rangeSpecified, initialRange, brushStartCallback, brushCallback, brushEndCallback) {\n var filter = makeFilter();\n filter.set(initialRange);\n return {\n filter,\n filterSpecified: rangeSpecified,\n // there's a difference between not filtering and filtering a non-proper subset\n svgBrush: {\n extent: [],\n // this is where the svgBrush writes contents into\n brushStartCallback,\n brushCallback: axisBrushMoved(brushCallback),\n brushEndCallback\n }\n };\n }\n function cleanRanges(ranges, dimension) {\n if (Array.isArray(ranges[0])) {\n ranges = ranges.map(function(ri) {\n return ri.sort(sortAsc);\n });\n if (!dimension.multiselect) ranges = [ranges[0]];\n else ranges = dedupeRealRanges(ranges.sort(startAsc));\n } else ranges = [ranges.sort(sortAsc)];\n if (dimension.tickvals) {\n var sortedTickVals = dimension.tickvals.slice().sort(sortAsc);\n ranges = ranges.map(function(ri) {\n var rSnapped = [\n ordinalScaleSnap(0, sortedTickVals, ri[0], []),\n ordinalScaleSnap(1, sortedTickVals, ri[1], [])\n ];\n if (rSnapped[1] > rSnapped[0]) return rSnapped;\n }).filter(function(ri) {\n return ri;\n });\n if (!ranges.length) return;\n }\n return ranges.length > 1 ? ranges : ranges[0];\n }\n module.exports = {\n makeBrush,\n ensureAxisBrush,\n cleanRanges\n };\n }\n });\n\n // src/traces/parcoords/defaults.js\n var require_defaults48 = __commonJS({\n \"src/traces/parcoords/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var handleDomainDefaults = require_domain().defaults;\n var handleArrayContainerDefaults = require_array_container_defaults();\n var Axes = require_axes();\n var attributes = require_attributes52();\n var axisBrush = require_axisbrush();\n var maxDimensionCount = require_constants24().maxDimensionCount;\n var mergeLength = require_merge_length();\n function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n var lineColor = coerce(\"line.color\", defaultColor);\n if (hasColorscale(traceIn, \"line\") && Lib.isArrayOrTypedArray(lineColor)) {\n if (lineColor.length) {\n coerce(\"line.colorscale\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"line.\", cLetter: \"c\" });\n return lineColor.length;\n } else {\n traceOut.line.color = defaultColor;\n }\n }\n return Infinity;\n }\n function dimensionDefaults(dimensionIn, dimensionOut, parentOut, opts) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimensionIn, dimensionOut, attributes.dimensions, attr, dflt);\n }\n var values = coerce(\"values\");\n var visible = coerce(\"visible\");\n if (!(values && values.length)) {\n visible = dimensionOut.visible = false;\n }\n if (visible) {\n coerce(\"label\");\n coerce(\"tickvals\");\n coerce(\"ticktext\");\n coerce(\"tickformat\");\n var range = coerce(\"range\");\n dimensionOut._ax = {\n _id: \"y\",\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\",\n range\n };\n Axes.setConvert(dimensionOut._ax, opts.layout);\n coerce(\"multiselect\");\n var constraintRange = coerce(\"constraintrange\");\n if (constraintRange) {\n dimensionOut.constraintrange = axisBrush.cleanRanges(constraintRange, dimensionOut);\n }\n }\n }\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var dimensionsIn = traceIn.dimensions;\n if (Array.isArray(dimensionsIn) && dimensionsIn.length > maxDimensionCount) {\n Lib.log(\"parcoords traces support up to \" + maxDimensionCount + \" dimensions at the moment\");\n dimensionsIn.splice(maxDimensionCount);\n }\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: \"dimensions\",\n layout,\n handleItemDefaults: dimensionDefaults\n });\n var len = handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleDomainDefaults(traceOut, layout, coerce);\n if (!Array.isArray(dimensions) || !dimensions.length) {\n traceOut.visible = false;\n }\n mergeLength(traceOut, dimensions, \"values\", len);\n var fontDflt = Lib.extendFlat({}, layout.font, {\n size: Math.round(layout.font.size / 1.2)\n });\n Lib.coerceFont(coerce, \"labelfont\", fontDflt);\n Lib.coerceFont(coerce, \"tickfont\", fontDflt, { autoShadowDflt: true });\n Lib.coerceFont(coerce, \"rangefont\", fontDflt);\n coerce(\"labelangle\");\n coerce(\"labelside\");\n coerce(\"unselected.line.color\");\n coerce(\"unselected.line.opacity\");\n };\n }\n });\n\n // src/traces/parcoords/calc.js\n var require_calc31 = __commonJS({\n \"src/traces/parcoords/calc.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var Colorscale = require_colorscale();\n var wrap = require_gup().wrap;\n module.exports = function calc(gd, trace) {\n var lineColor;\n var cscale;\n if (Colorscale.hasColorscale(trace, \"line\") && isArrayOrTypedArray(trace.line.color)) {\n lineColor = trace.line.color;\n cscale = Colorscale.extractOpts(trace.line).colorscale;\n Colorscale.calc(gd, trace, {\n vals: lineColor,\n containerStr: \"line\",\n cLetter: \"c\"\n });\n } else {\n lineColor = constHalf(trace._length);\n cscale = [[0, trace.line.color], [1, trace.line.color]];\n }\n return wrap({ lineColor, cscale });\n };\n function constHalf(len) {\n var out = new Array(len);\n for (var i = 0; i < len; i++) {\n out[i] = 0.5;\n }\n return out;\n }\n }\n });\n\n // node_modules/color-parse/index.js\n function parse(cstr) {\n var _a, _b;\n var m, parts = [], alpha = 1, space;\n if (typeof cstr === \"number\") {\n return { space: \"rgb\", values: [cstr >>> 16, (cstr & 65280) >>> 8, cstr & 255], alpha: 1 };\n }\n if (typeof cstr === \"number\") return { space: \"rgb\", values: [cstr >>> 16, (cstr & 65280) >>> 8, cstr & 255], alpha: 1 };\n cstr = String(cstr).toLowerCase();\n if (import_color_name.default[cstr]) {\n parts = import_color_name.default[cstr].slice();\n space = \"rgb\";\n } else if (cstr === \"transparent\") {\n alpha = 0;\n space = \"rgb\";\n parts = [0, 0, 0];\n } else if (cstr[0] === \"#\") {\n var base = cstr.slice(1);\n var size = base.length;\n var isShort = size <= 4;\n alpha = 1;\n if (isShort) {\n parts = [\n parseInt(base[0] + base[0], 16),\n parseInt(base[1] + base[1], 16),\n parseInt(base[2] + base[2], 16)\n ];\n if (size === 4) {\n alpha = parseInt(base[3] + base[3], 16) / 255;\n }\n } else {\n parts = [\n parseInt(base[0] + base[1], 16),\n parseInt(base[2] + base[3], 16),\n parseInt(base[4] + base[5], 16)\n ];\n if (size === 8) {\n alpha = parseInt(base[6] + base[7], 16) / 255;\n }\n }\n if (!parts[0]) parts[0] = 0;\n if (!parts[1]) parts[1] = 0;\n if (!parts[2]) parts[2] = 0;\n space = \"rgb\";\n } else if (m = /^((?:rgba?|hs[lvb]a?|hwba?|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms|oklch|oklab|color))\\s*\\(([^\\)]*)\\)/.exec(cstr)) {\n var name2 = m[1];\n space = name2.replace(/a$/, \"\");\n var dims = space === \"cmyk\" ? 4 : space === \"gray\" ? 1 : 3;\n parts = m[2].trim().split(/\\s*[,\\/]\\s*|\\s+/);\n if (space === \"color\") space = parts.shift();\n parts = parts.map(function(x, i) {\n if (x[x.length - 1] === \"%\") {\n x = parseFloat(x) / 100;\n if (i === 3) return x;\n if (space === \"rgb\") return x * 255;\n if (space[0] === \"h\") return x * 100;\n if (space[0] === \"l\" && !i) return x * 100;\n if (space === \"lab\") return x * 125;\n if (space === \"lch\") return i < 2 ? x * 150 : x * 360;\n if (space[0] === \"o\" && !i) return x;\n if (space === \"oklab\") return x * 0.4;\n if (space === \"oklch\") return i < 2 ? x * 0.4 : x * 360;\n return x;\n }\n if (space[i] === \"h\" || i === 2 && space[space.length - 1] === \"h\") {\n if (baseHues[x] !== void 0) return baseHues[x];\n if (x.endsWith(\"deg\")) return parseFloat(x);\n if (x.endsWith(\"turn\")) return parseFloat(x) * 360;\n if (x.endsWith(\"grad\")) return parseFloat(x) * 360 / 400;\n if (x.endsWith(\"rad\")) return parseFloat(x) * 180 / Math.PI;\n }\n if (x === \"none\") return 0;\n return parseFloat(x);\n });\n alpha = parts.length > dims ? parts.pop() : 1;\n } else if (/[0-9](?:\\s|\\/|,)/.test(cstr)) {\n parts = cstr.match(/([0-9]+)/g).map(function(value) {\n return parseFloat(value);\n });\n space = ((_b = (_a = cstr.match(/([a-z])/ig)) == null ? void 0 : _a.join(\"\")) == null ? void 0 : _b.toLowerCase()) || \"rgb\";\n }\n return {\n space,\n values: parts,\n alpha\n };\n }\n var import_color_name, color_parse_default, baseHues;\n var init_color_parse = __esm({\n \"node_modules/color-parse/index.js\"() {\n import_color_name = __toESM(require_color_name(), 1);\n color_parse_default = parse;\n baseHues = {\n red: 0,\n orange: 60,\n yellow: 120,\n green: 180,\n blue: 240,\n purple: 300\n };\n }\n });\n\n // node_modules/color-space/rgb.js\n var rgb_default2;\n var init_rgb2 = __esm({\n \"node_modules/color-space/rgb.js\"() {\n rgb_default2 = {\n name: \"rgb\",\n min: [0, 0, 0],\n max: [255, 255, 255],\n channel: [\"red\", \"green\", \"blue\"],\n alias: [\"RGB\"]\n };\n }\n });\n\n // node_modules/color-space/hsl.js\n var hsl_default2;\n var init_hsl2 = __esm({\n \"node_modules/color-space/hsl.js\"() {\n init_rgb2();\n hsl_default2 = {\n name: \"hsl\",\n min: [0, 0, 0],\n max: [360, 100, 100],\n channel: [\"hue\", \"saturation\", \"lightness\"],\n alias: [\"HSL\"],\n rgb: function(hsl3) {\n var h = hsl3[0] / 360, s = hsl3[1] / 100, l = hsl3[2] / 100, t12, t22, t32, rgb2, val, i = 0;\n if (s === 0) return val = l * 255, [val, val, val];\n t22 = l < 0.5 ? l * (1 + s) : l + s - l * s;\n t12 = 2 * l - t22;\n rgb2 = [0, 0, 0];\n for (; i < 3; ) {\n t32 = h + 1 / 3 * -(i - 1);\n t32 < 0 ? t32++ : t32 > 1 && t32--;\n val = 6 * t32 < 1 ? t12 + (t22 - t12) * 6 * t32 : 2 * t32 < 1 ? t22 : 3 * t32 < 2 ? t12 + (t22 - t12) * (2 / 3 - t32) * 6 : t12;\n rgb2[i++] = val * 255;\n }\n return rgb2;\n }\n };\n rgb_default2.hsl = function(rgb2) {\n var r = rgb2[0] / 255, g = rgb2[1] / 255, b = rgb2[2] / 255, min = Math.min(r, g, b), max = Math.max(r, g, b), delta = max - min, h, s, l;\n if (max === min) {\n h = 0;\n } else if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else if (b === max) {\n h = 4 + (r - g) / delta;\n }\n h = Math.min(h * 60, 360);\n if (h < 0) {\n h += 360;\n }\n l = (min + max) / 2;\n if (max === min) {\n s = 0;\n } else if (l <= 0.5) {\n s = delta / (max + min);\n } else {\n s = delta / (2 - max - min);\n }\n return [h, s * 100, l * 100];\n };\n }\n });\n\n // node_modules/color-rgba/index.js\n var color_rgba_exports = {};\n __export(color_rgba_exports, {\n default: () => rgba2\n });\n function rgba2(color2) {\n if (Array.isArray(color2) && color2.raw) color2 = String.raw(...arguments);\n if (color2 instanceof Number) color2 = +color2;\n var values, i, l;\n var parsed = color_parse_default(color2);\n if (!parsed.space) return [];\n const min = parsed.space[0] === \"h\" ? hsl_default2.min : rgb_default2.min;\n const max = parsed.space[0] === \"h\" ? hsl_default2.max : rgb_default2.max;\n values = Array(3);\n values[0] = Math.min(Math.max(parsed.values[0], min[0]), max[0]);\n values[1] = Math.min(Math.max(parsed.values[1], min[1]), max[1]);\n values[2] = Math.min(Math.max(parsed.values[2], min[2]), max[2]);\n if (parsed.space[0] === \"h\") {\n values = hsl_default2.rgb(values);\n }\n values.push(Math.min(Math.max(parsed.alpha, 0), 1));\n return values;\n }\n var init_color_rgba = __esm({\n \"node_modules/color-rgba/index.js\"() {\n init_color_parse();\n init_rgb2();\n init_hsl2();\n }\n });\n\n // src/traces/parcoords/helpers.js\n var require_helpers18 = __commonJS({\n \"src/traces/parcoords/helpers.js\"(exports) {\n \"use strict\";\n var isTypedArray = require_lib().isTypedArray;\n exports.convertTypedArray = function(a) {\n return isTypedArray(a) ? Array.prototype.slice.call(a) : a;\n };\n exports.isOrdinal = function(dimension) {\n return !!dimension.tickvals;\n };\n exports.isVisible = function(dimension) {\n return dimension.visible || !(\"visible\" in dimension);\n };\n }\n });\n\n // src/traces/parcoords/lines.js\n var require_lines = __commonJS({\n \"src/traces/parcoords/lines.js\"(exports, module) {\n \"use strict\";\n var vertexShaderSource = [\n \"precision highp float;\",\n \"\",\n \"varying vec4 fragColor;\",\n \"\",\n \"attribute vec4 p01_04, p05_08, p09_12, p13_16,\",\n \" p17_20, p21_24, p25_28, p29_32,\",\n \" p33_36, p37_40, p41_44, p45_48,\",\n \" p49_52, p53_56, p57_60, colors;\",\n \"\",\n \"uniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,\",\n \" loA, hiA, loB, hiB, loC, hiC, loD, hiD;\",\n \"\",\n \"uniform vec2 resolution, viewBoxPos, viewBoxSize;\",\n \"uniform float maskHeight;\",\n \"uniform float drwLayer; // 0: context, 1: focus, 2: pick\",\n \"uniform vec4 contextColor;\",\n \"uniform sampler2D maskTexture, palette;\",\n \"\",\n \"bool isPick = (drwLayer > 1.5);\",\n \"bool isContext = (drwLayer < 0.5);\",\n \"\",\n \"const vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);\",\n \"const vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);\",\n \"\",\n \"float val(mat4 p, mat4 v) {\",\n \" return dot(matrixCompMult(p, v) * UNITS, UNITS);\",\n \"}\",\n \"\",\n \"float axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);\",\n \" float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);\",\n \" return y1 * (1.0 - ratio) + y2 * ratio;\",\n \"}\",\n \"\",\n \"int iMod(int a, int b) {\",\n \" return a - b * (a / b);\",\n \"}\",\n \"\",\n \"bool fOutside(float p, float lo, float hi) {\",\n \" return (lo < hi) && (lo > p || p > hi);\",\n \"}\",\n \"\",\n \"bool vOutside(vec4 p, vec4 lo, vec4 hi) {\",\n \" return (\",\n \" fOutside(p[0], lo[0], hi[0]) ||\",\n \" fOutside(p[1], lo[1], hi[1]) ||\",\n \" fOutside(p[2], lo[2], hi[2]) ||\",\n \" fOutside(p[3], lo[3], hi[3])\",\n \" );\",\n \"}\",\n \"\",\n \"bool mOutside(mat4 p, mat4 lo, mat4 hi) {\",\n \" return (\",\n \" vOutside(p[0], lo[0], hi[0]) ||\",\n \" vOutside(p[1], lo[1], hi[1]) ||\",\n \" vOutside(p[2], lo[2], hi[2]) ||\",\n \" vOutside(p[3], lo[3], hi[3])\",\n \" );\",\n \"}\",\n \"\",\n \"bool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" return mOutside(A, loA, hiA) ||\",\n \" mOutside(B, loB, hiB) ||\",\n \" mOutside(C, loC, hiC) ||\",\n \" mOutside(D, loD, hiD);\",\n \"}\",\n \"\",\n \"bool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" mat4 pnts[4];\",\n \" pnts[0] = A;\",\n \" pnts[1] = B;\",\n \" pnts[2] = C;\",\n \" pnts[3] = D;\",\n \"\",\n \" for(int i = 0; i < 4; ++i) {\",\n \" for(int j = 0; j < 4; ++j) {\",\n \" for(int k = 0; k < 4; ++k) {\",\n \" if(0 == iMod(\",\n \" int(255.0 * texture2D(maskTexture,\",\n \" vec2(\",\n \" (float(i * 2 + j / 2) + 0.5) / 8.0,\",\n \" (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight\",\n \" ))[3]\",\n \" ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),\",\n \" 2\",\n \" )) return true;\",\n \" }\",\n \" }\",\n \" }\",\n \" return false;\",\n \"}\",\n \"\",\n \"vec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {\",\n \" float x = 0.5 * sign(v) + 0.5;\",\n \" float y = axisY(x, A, B, C, D);\",\n \" float z = 1.0 - abs(v);\",\n \"\",\n \" z += isContext ? 0.0 : 2.0 * float(\",\n \" outsideBoundingBox(A, B, C, D) ||\",\n \" outsideRasterMask(A, B, C, D)\",\n \" );\",\n \"\",\n \" return vec4(\",\n \" 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,\",\n \" z,\",\n \" 1.0\",\n \" );\",\n \"}\",\n \"\",\n \"void main() {\",\n \" mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);\",\n \" mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);\",\n \" mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);\",\n \" mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);\",\n \"\",\n \" float v = colors[3];\",\n \"\",\n \" gl_Position = position(isContext, v, A, B, C, D);\",\n \"\",\n \" fragColor =\",\n \" isContext ? vec4(contextColor) :\",\n \" isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));\",\n \"}\"\n ].join(\"\\n\");\n var fragmentShaderSource = [\n \"precision highp float;\",\n \"\",\n \"varying vec4 fragColor;\",\n \"\",\n \"void main() {\",\n \" gl_FragColor = fragColor;\",\n \"}\"\n ].join(\"\\n\");\n var maxDim = require_constants24().maxDimensionCount;\n var Lib = require_lib();\n var depthLimitEpsilon = 1e-6;\n var maskHeight = 2048;\n var dummyPixel = new Uint8Array(4);\n var dataPixel = new Uint8Array(4);\n var paletteTextureConfig = {\n shape: [256, 1],\n format: \"rgba\",\n type: \"uint8\",\n mag: \"nearest\",\n min: \"nearest\"\n };\n function ensureDraw(regl) {\n regl.read({\n x: 0,\n y: 0,\n width: 1,\n height: 1,\n data: dummyPixel\n });\n }\n function clear(regl, x, y, width, height) {\n var gl2 = regl._gl;\n gl2.enable(gl2.SCISSOR_TEST);\n gl2.scissor(x, y, width, height);\n regl.clear({ color: [0, 0, 0, 0], depth: 1 });\n }\n function renderBlock(regl, glAes, renderState, blockLineCount, sampleCount, item) {\n var rafKey = item.key;\n function render(blockNumber) {\n var count = Math.min(blockLineCount, sampleCount - blockNumber * blockLineCount);\n if (blockNumber === 0) {\n window.cancelAnimationFrame(renderState.currentRafs[rafKey]);\n delete renderState.currentRafs[rafKey];\n clear(regl, item.scissorX, item.scissorY, item.scissorWidth, item.viewBoxSize[1]);\n }\n if (renderState.clearOnly) {\n return;\n }\n item.count = 2 * count;\n item.offset = 2 * blockNumber * blockLineCount;\n glAes(item);\n if (blockNumber * blockLineCount + count < sampleCount) {\n renderState.currentRafs[rafKey] = window.requestAnimationFrame(function() {\n render(blockNumber + 1);\n });\n }\n renderState.drawCompleted = false;\n }\n if (!renderState.drawCompleted) {\n ensureDraw(regl);\n renderState.drawCompleted = true;\n }\n render(0);\n }\n function adjustDepth(d) {\n return Math.max(depthLimitEpsilon, Math.min(1 - depthLimitEpsilon, d));\n }\n function palette(unitToColor, opacity) {\n var result = new Array(256);\n for (var i = 0; i < 256; i++) {\n result[i] = unitToColor(i / 255).concat(opacity);\n }\n return result;\n }\n function calcPickColor(i, rgbIndex) {\n return (i >>> 8 * rgbIndex) % 256 / 255;\n }\n function makePoints(sampleCount, dims, color2) {\n var points = new Array(sampleCount * (maxDim + 4));\n var n = 0;\n for (var i = 0; i < sampleCount; i++) {\n for (var k = 0; k < maxDim; k++) {\n points[n++] = k < dims.length ? dims[k].paddedUnitValues[i] : 0.5;\n }\n points[n++] = calcPickColor(i, 2);\n points[n++] = calcPickColor(i, 1);\n points[n++] = calcPickColor(i, 0);\n points[n++] = adjustDepth(color2[i]);\n }\n return points;\n }\n function makeVecAttr(vecIndex, sampleCount, points) {\n var pointPairs = new Array(sampleCount * 8);\n var n = 0;\n for (var i = 0; i < sampleCount; i++) {\n for (var j = 0; j < 2; j++) {\n for (var k = 0; k < 4; k++) {\n var q = vecIndex * 4 + k;\n var v = points[i * 64 + q];\n if (q === 63 && j === 0) {\n v *= -1;\n }\n pointPairs[n++] = v;\n }\n }\n }\n return pointPairs;\n }\n function pad2(num) {\n var s = \"0\" + num;\n return s.substr(s.length - 2);\n }\n function getAttrName(i) {\n return i < maxDim ? \"p\" + pad2(i + 1) + \"_\" + pad2(i + 4) : \"colors\";\n }\n function setAttributes(attributes, sampleCount, points) {\n for (var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)](makeVecAttr(i / 4, sampleCount, points));\n }\n }\n function emptyAttributes(regl) {\n var attributes = {};\n for (var i = 0; i <= maxDim; i += 4) {\n attributes[getAttrName(i)] = regl.buffer({ usage: \"dynamic\", type: \"float\", data: new Uint8Array(0) });\n }\n return attributes;\n }\n function makeItem(model, leftmost, rightmost, itemNumber, i0, i1, x, y, panelSizeX, panelSizeY, crossfilterDimensionIndex, drwLayer, constraints, plotGlPixelRatio) {\n var dims = [[], []];\n for (var k = 0; k < 64; k++) {\n dims[0][k] = k === i0 ? 1 : 0;\n dims[1][k] = k === i1 ? 1 : 0;\n }\n x *= plotGlPixelRatio;\n y *= plotGlPixelRatio;\n panelSizeX *= plotGlPixelRatio;\n panelSizeY *= plotGlPixelRatio;\n var overdrag = model.lines.canvasOverdrag * plotGlPixelRatio;\n var domain = model.domain;\n var canvasWidth = model.canvasWidth * plotGlPixelRatio;\n var canvasHeight = model.canvasHeight * plotGlPixelRatio;\n var padL = model.pad.l * plotGlPixelRatio;\n var padB = model.pad.b * plotGlPixelRatio;\n var layoutHeight = model.layoutHeight * plotGlPixelRatio;\n var layoutWidth = model.layoutWidth * plotGlPixelRatio;\n var deselectedLinesColor = model.deselectedLines.color;\n var deselectedLinesOpacity = model.deselectedLines.opacity;\n var itemModel = Lib.extendFlat({\n key: crossfilterDimensionIndex,\n resolution: [canvasWidth, canvasHeight],\n viewBoxPos: [x + overdrag, y],\n viewBoxSize: [panelSizeX, panelSizeY],\n i0,\n i1,\n dim0A: dims[0].slice(0, 16),\n dim0B: dims[0].slice(16, 32),\n dim0C: dims[0].slice(32, 48),\n dim0D: dims[0].slice(48, 64),\n dim1A: dims[1].slice(0, 16),\n dim1B: dims[1].slice(16, 32),\n dim1C: dims[1].slice(32, 48),\n dim1D: dims[1].slice(48, 64),\n drwLayer,\n contextColor: [\n deselectedLinesColor[0] / 255,\n deselectedLinesColor[1] / 255,\n deselectedLinesColor[2] / 255,\n deselectedLinesOpacity !== \"auto\" ? deselectedLinesColor[3] * deselectedLinesOpacity : Math.max(1 / 255, Math.pow(1 / model.lines.color.length, 1 / 3))\n ],\n scissorX: (itemNumber === leftmost ? 0 : x + overdrag) + (padL - overdrag) + layoutWidth * domain.x[0],\n scissorWidth: (itemNumber === rightmost ? canvasWidth - x + overdrag : panelSizeX + 0.5) + (itemNumber === leftmost ? x + overdrag : 0),\n scissorY: y + padB + layoutHeight * domain.y[0],\n scissorHeight: panelSizeY,\n viewportX: padL - overdrag + layoutWidth * domain.x[0],\n viewportY: padB + layoutHeight * domain.y[0],\n viewportWidth: canvasWidth,\n viewportHeight: canvasHeight\n }, constraints);\n return itemModel;\n }\n function expandedPixelRange(bounds) {\n var dh = maskHeight - 1;\n var a = Math.max(0, Math.floor(bounds[0] * dh), 0);\n var b = Math.min(dh, Math.ceil(bounds[1] * dh), dh);\n return [\n Math.min(a, b),\n Math.max(a, b)\n ];\n }\n module.exports = function(canvasGL, d) {\n var isContext = d.context;\n var isPick = d.pick;\n var regl = d.regl;\n var gl2 = regl._gl;\n var supportedLineWidth = gl2.getParameter(gl2.ALIASED_LINE_WIDTH_RANGE);\n var plotGlPixelRatio = Math.max(\n supportedLineWidth[0],\n Math.min(\n supportedLineWidth[1],\n d.viewModel.plotGlPixelRatio\n )\n );\n var renderState = {\n currentRafs: {},\n drawCompleted: true,\n clearOnly: false\n };\n var model;\n var vm;\n var initialDims;\n var sampleCount;\n var attributes = emptyAttributes(regl);\n var maskTexture;\n var paletteTexture = regl.texture(paletteTextureConfig);\n var prevAxisOrder = [];\n update(d);\n var glAes = regl({\n profile: false,\n blend: {\n enable: isContext,\n func: {\n srcRGB: \"src alpha\",\n dstRGB: \"one minus src alpha\",\n srcAlpha: 1,\n dstAlpha: 1\n // 'one minus src alpha'\n },\n equation: {\n rgb: \"add\",\n alpha: \"add\"\n },\n color: [0, 0, 0, 0]\n },\n depth: {\n enable: !isContext,\n mask: true,\n func: \"less\",\n range: [0, 1]\n },\n // for polygons\n cull: {\n enable: true,\n face: \"back\"\n },\n scissor: {\n enable: true,\n box: {\n x: regl.prop(\"scissorX\"),\n y: regl.prop(\"scissorY\"),\n width: regl.prop(\"scissorWidth\"),\n height: regl.prop(\"scissorHeight\")\n }\n },\n viewport: {\n x: regl.prop(\"viewportX\"),\n y: regl.prop(\"viewportY\"),\n width: regl.prop(\"viewportWidth\"),\n height: regl.prop(\"viewportHeight\")\n },\n dither: false,\n vert: vertexShaderSource,\n frag: fragmentShaderSource,\n primitive: \"lines\",\n lineWidth: plotGlPixelRatio,\n attributes,\n uniforms: {\n resolution: regl.prop(\"resolution\"),\n viewBoxPos: regl.prop(\"viewBoxPos\"),\n viewBoxSize: regl.prop(\"viewBoxSize\"),\n dim0A: regl.prop(\"dim0A\"),\n dim1A: regl.prop(\"dim1A\"),\n dim0B: regl.prop(\"dim0B\"),\n dim1B: regl.prop(\"dim1B\"),\n dim0C: regl.prop(\"dim0C\"),\n dim1C: regl.prop(\"dim1C\"),\n dim0D: regl.prop(\"dim0D\"),\n dim1D: regl.prop(\"dim1D\"),\n loA: regl.prop(\"loA\"),\n hiA: regl.prop(\"hiA\"),\n loB: regl.prop(\"loB\"),\n hiB: regl.prop(\"hiB\"),\n loC: regl.prop(\"loC\"),\n hiC: regl.prop(\"hiC\"),\n loD: regl.prop(\"loD\"),\n hiD: regl.prop(\"hiD\"),\n palette: paletteTexture,\n contextColor: regl.prop(\"contextColor\"),\n maskTexture: regl.prop(\"maskTexture\"),\n drwLayer: regl.prop(\"drwLayer\"),\n maskHeight: regl.prop(\"maskHeight\")\n },\n offset: regl.prop(\"offset\"),\n count: regl.prop(\"count\")\n });\n function update(dNew) {\n model = dNew.model;\n vm = dNew.viewModel;\n initialDims = vm.dimensions.slice();\n sampleCount = initialDims[0] ? initialDims[0].values.length : 0;\n var lines = model.lines;\n var color2 = isPick ? lines.color.map(function(_, i) {\n return i / lines.color.length;\n }) : lines.color;\n var points = makePoints(sampleCount, initialDims, color2);\n setAttributes(attributes, sampleCount, points);\n if (!isContext && !isPick) {\n paletteTexture = regl.texture(Lib.extendFlat({\n data: palette(model.unitToColor, 255)\n }, paletteTextureConfig));\n }\n }\n function makeConstraints(isContext2) {\n var i, j, k;\n var limits = [[], []];\n for (k = 0; k < 64; k++) {\n var p = !isContext2 && k < initialDims.length ? initialDims[k].brush.filter.getBounds() : [-Infinity, Infinity];\n limits[0][k] = p[0];\n limits[1][k] = p[1];\n }\n var len = maskHeight * 8;\n var mask = new Array(len);\n for (i = 0; i < len; i++) {\n mask[i] = 255;\n }\n if (!isContext2) {\n for (i = 0; i < initialDims.length; i++) {\n var u = i % 8;\n var v = (i - u) / 8;\n var bitMask = Math.pow(2, u);\n var dim = initialDims[i];\n var ranges = dim.brush.filter.get();\n if (ranges.length < 2) continue;\n var prevEnd = expandedPixelRange(ranges[0])[1];\n for (j = 1; j < ranges.length; j++) {\n var nextRange = expandedPixelRange(ranges[j]);\n for (k = prevEnd + 1; k < nextRange[0]; k++) {\n mask[k * 8 + v] &= ~bitMask;\n }\n prevEnd = Math.max(prevEnd, nextRange[1]);\n }\n }\n }\n var textureData = {\n // 8 units x 8 bits = 64 bits, just sufficient for the almost 64 dimensions we support\n shape: [8, maskHeight],\n format: \"alpha\",\n type: \"uint8\",\n mag: \"nearest\",\n min: \"nearest\",\n data: mask\n };\n if (maskTexture) maskTexture(textureData);\n else maskTexture = regl.texture(textureData);\n return {\n maskTexture,\n maskHeight,\n loA: limits[0].slice(0, 16),\n loB: limits[0].slice(16, 32),\n loC: limits[0].slice(32, 48),\n loD: limits[0].slice(48, 64),\n hiA: limits[1].slice(0, 16),\n hiB: limits[1].slice(16, 32),\n hiC: limits[1].slice(32, 48),\n hiD: limits[1].slice(48, 64)\n };\n }\n function renderGLParcoords(panels, setChanged, clearOnly) {\n var panelCount = panels.length;\n var i;\n var leftmost;\n var rightmost;\n var lowestX = Infinity;\n var highestX = -Infinity;\n for (i = 0; i < panelCount; i++) {\n if (panels[i].dim0.canvasX < lowestX) {\n lowestX = panels[i].dim0.canvasX;\n leftmost = i;\n }\n if (panels[i].dim1.canvasX > highestX) {\n highestX = panels[i].dim1.canvasX;\n rightmost = i;\n }\n }\n if (panelCount === 0) {\n clear(regl, 0, 0, model.canvasWidth, model.canvasHeight);\n }\n var constraints = makeConstraints(isContext);\n for (i = 0; i < panelCount; i++) {\n var p = panels[i];\n var i0 = p.dim0.crossfilterDimensionIndex;\n var i1 = p.dim1.crossfilterDimensionIndex;\n var x = p.canvasX;\n var y = p.canvasY;\n var nextX = x + p.panelSizeX;\n var plotGlPixelRatio2 = p.plotGlPixelRatio;\n if (setChanged || !prevAxisOrder[i0] || prevAxisOrder[i0][0] !== x || prevAxisOrder[i0][1] !== nextX) {\n prevAxisOrder[i0] = [x, nextX];\n var item = makeItem(\n model,\n leftmost,\n rightmost,\n i,\n i0,\n i1,\n x,\n y,\n p.panelSizeX,\n p.panelSizeY,\n p.dim0.crossfilterDimensionIndex,\n isContext ? 0 : isPick ? 2 : 1,\n constraints,\n plotGlPixelRatio2\n );\n renderState.clearOnly = clearOnly;\n var blockLineCount = setChanged ? model.lines.blockLineCount : sampleCount;\n renderBlock(\n regl,\n glAes,\n renderState,\n blockLineCount,\n sampleCount,\n item\n );\n }\n }\n }\n function readPixel(canvasX, canvasY) {\n regl.read({\n x: canvasX,\n y: canvasY,\n width: 1,\n height: 1,\n data: dataPixel\n });\n return dataPixel;\n }\n function readPixels(canvasX, canvasY, width, height) {\n var pixelArray = new Uint8Array(4 * width * height);\n regl.read({\n x: canvasX,\n y: canvasY,\n width,\n height,\n data: pixelArray\n });\n return pixelArray;\n }\n function destroy() {\n canvasGL.style[\"pointer-events\"] = \"none\";\n paletteTexture.destroy();\n if (maskTexture) maskTexture.destroy();\n for (var k in attributes) attributes[k].destroy();\n }\n return {\n render: renderGLParcoords,\n readPixel,\n readPixels,\n destroy,\n update\n };\n };\n }\n });\n\n // src/traces/parcoords/parcoords.js\n var require_parcoords = __commonJS({\n \"src/traces/parcoords/parcoords.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var numberFormat = Lib.numberFormat;\n var rgba3 = (init_color_rgba(), __toCommonJS(color_rgba_exports)).default;\n var Axes = require_axes();\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n var svgTextUtils = require_svg_text_utils();\n var Drawing = require_drawing();\n var Colorscale = require_colorscale();\n var gup = require_gup();\n var keyFun = gup.keyFun;\n var repeat = gup.repeat;\n var unwrap = gup.unwrap;\n var helpers = require_helpers18();\n var c = require_constants24();\n var brush = require_axisbrush();\n var lineLayerMaker = require_lines();\n function findExtreme(fn, values, len) {\n return Lib.aggNums(fn, null, values, len);\n }\n function findExtremes(values, len) {\n return fixExtremes(\n findExtreme(Math.min, values, len),\n findExtreme(Math.max, values, len)\n );\n }\n function dimensionExtent(dimension) {\n var range = dimension.range;\n return range ? fixExtremes(range[0], range[1]) : findExtremes(dimension.values, dimension._length);\n }\n function fixExtremes(lo, hi) {\n if (isNaN(lo) || !isFinite(lo)) {\n lo = 0;\n }\n if (isNaN(hi) || !isFinite(hi)) {\n hi = 0;\n }\n if (lo === hi) {\n if (lo === 0) {\n lo -= 1;\n hi += 1;\n } else {\n lo *= 0.9;\n hi *= 1.1;\n }\n }\n return [lo, hi];\n }\n function toText(formatter, texts) {\n if (texts) {\n return function(v, i) {\n var text = texts[i];\n if (text === null || text === void 0) return formatter(v);\n return text;\n };\n }\n return formatter;\n }\n function domainScale(height, padding, dimension, tickvals, ticktext) {\n var extent = dimensionExtent(dimension);\n if (tickvals) {\n return d3.scale.ordinal().domain(tickvals.map(toText(numberFormat(dimension.tickformat), ticktext))).range(\n tickvals.map(function(d) {\n var unitVal = (d - extent[0]) / (extent[1] - extent[0]);\n return height - padding + unitVal * (2 * padding - height);\n })\n );\n }\n return d3.scale.linear().domain(extent).range([height - padding, padding]);\n }\n function unitToPaddedPx(height, padding) {\n return d3.scale.linear().range([padding, height - padding]);\n }\n function domainToPaddedUnitScale(dimension, padFraction) {\n return d3.scale.linear().domain(dimensionExtent(dimension)).range([padFraction, 1 - padFraction]);\n }\n function ordinalScale(dimension) {\n if (!dimension.tickvals) return;\n var extent = dimensionExtent(dimension);\n return d3.scale.ordinal().domain(dimension.tickvals).range(dimension.tickvals.map(function(d) {\n return (d - extent[0]) / (extent[1] - extent[0]);\n }));\n }\n function unitToColorScale(cscale) {\n var colorStops = cscale.map(function(d) {\n return d[0];\n });\n var colorTuples = cscale.map(function(d) {\n var RGBA = rgba3(d[1]);\n return d3.rgb(\"rgb(\" + RGBA[0] + \",\" + RGBA[1] + \",\" + RGBA[2] + \")\");\n });\n var prop = function(n) {\n return function(o) {\n return o[n];\n };\n };\n var polylinearUnitScales = \"rgb\".split(\"\").map(function(key) {\n return d3.scale.linear().clamp(true).domain(colorStops).range(colorTuples.map(prop(key)));\n });\n return function(d) {\n return polylinearUnitScales.map(function(s) {\n return s(d);\n });\n };\n }\n function someFiltersActive(view) {\n return view.dimensions.some(function(p) {\n return p.brush.filterSpecified;\n });\n }\n function model(layout, d, i) {\n var cd0 = unwrap(d);\n var trace = cd0.trace;\n var lineColor = helpers.convertTypedArray(cd0.lineColor);\n var line = trace.line;\n var deselectedLines = {\n color: rgba3(trace.unselected.line.color),\n opacity: trace.unselected.line.opacity\n };\n var cOpts = Colorscale.extractOpts(line);\n var cscale = cOpts.reversescale ? Colorscale.flipScale(cd0.cscale) : cd0.cscale;\n var domain = trace.domain;\n var dimensions = trace.dimensions;\n var width = layout.width;\n var labelAngle = trace.labelangle;\n var labelSide = trace.labelside;\n var labelFont = trace.labelfont;\n var tickFont = trace.tickfont;\n var rangeFont = trace.rangefont;\n var lines = Lib.extendDeepNoArrays({}, line, {\n color: lineColor.map(d3.scale.linear().domain(\n dimensionExtent({\n values: lineColor,\n range: [cOpts.min, cOpts.max],\n _length: trace._length\n })\n )),\n blockLineCount: c.blockLineCount,\n canvasOverdrag: c.overdrag * c.canvasPixelRatio\n });\n var groupWidth = Math.floor(width * (domain.x[1] - domain.x[0]));\n var groupHeight = Math.floor(layout.height * (domain.y[1] - domain.y[0]));\n var pad = layout.margin || { l: 80, r: 80, t: 100, b: 80 };\n var rowContentWidth = groupWidth;\n var rowHeight = groupHeight;\n return {\n key: i,\n colCount: dimensions.filter(helpers.isVisible).length,\n dimensions,\n tickDistance: c.tickDistance,\n unitToColor: unitToColorScale(cscale),\n lines,\n deselectedLines,\n labelAngle,\n labelSide,\n labelFont,\n tickFont,\n rangeFont,\n layoutWidth: width,\n layoutHeight: layout.height,\n domain,\n translateX: domain.x[0] * width,\n translateY: layout.height - domain.y[1] * layout.height,\n pad,\n canvasWidth: rowContentWidth * c.canvasPixelRatio + 2 * lines.canvasOverdrag,\n canvasHeight: rowHeight * c.canvasPixelRatio,\n width: rowContentWidth,\n height: rowHeight,\n canvasPixelRatio: c.canvasPixelRatio\n };\n }\n function viewModel(state, callbacks, model2) {\n var width = model2.width;\n var height = model2.height;\n var dimensions = model2.dimensions;\n var canvasPixelRatio = model2.canvasPixelRatio;\n var xScale = function(d) {\n return width * d / Math.max(1, model2.colCount - 1);\n };\n var unitPad = c.verticalPadding / height;\n var _unitToPaddedPx = unitToPaddedPx(height, c.verticalPadding);\n var vm = {\n key: model2.key,\n xScale,\n model: model2,\n inBrushDrag: false\n // consider factoring it out and putting it in a centralized global-ish gesture state object\n };\n var uniqueKeys = {};\n vm.dimensions = dimensions.filter(helpers.isVisible).map(function(dimension, i) {\n var domainToPaddedUnit = domainToPaddedUnitScale(dimension, unitPad);\n var foundKey = uniqueKeys[dimension.label];\n uniqueKeys[dimension.label] = (foundKey || 0) + 1;\n var key = dimension.label + (foundKey ? \"__\" + foundKey : \"\");\n var specifiedConstraint = dimension.constraintrange;\n var filterRangeSpecified = specifiedConstraint && specifiedConstraint.length;\n if (filterRangeSpecified && !isArrayOrTypedArray(specifiedConstraint[0])) {\n specifiedConstraint = [specifiedConstraint];\n }\n var filterRange = filterRangeSpecified ? specifiedConstraint.map(function(d) {\n return d.map(domainToPaddedUnit);\n }) : [[-Infinity, Infinity]];\n var brushMove = function() {\n var p = vm;\n p.focusLayer && p.focusLayer.render(p.panels, true);\n var filtersActive = someFiltersActive(p);\n if (!state.contextShown() && filtersActive) {\n p.contextLayer && p.contextLayer.render(p.panels, true);\n state.contextShown(true);\n } else if (state.contextShown() && !filtersActive) {\n p.contextLayer && p.contextLayer.render(p.panels, true, true);\n state.contextShown(false);\n }\n };\n var truncatedValues = dimension.values;\n if (truncatedValues.length > dimension._length) {\n truncatedValues = truncatedValues.slice(0, dimension._length);\n }\n var tickvals = dimension.tickvals;\n var ticktext;\n function makeTickItem(v, i2) {\n return { val: v, text: ticktext[i2] };\n }\n function sortTickItem(a, b) {\n return a.val - b.val;\n }\n if (isArrayOrTypedArray(tickvals) && tickvals.length) {\n if (Lib.isTypedArray(tickvals)) tickvals = Array.from(tickvals);\n ticktext = dimension.ticktext;\n if (!isArrayOrTypedArray(ticktext) || !ticktext.length) {\n ticktext = tickvals.map(numberFormat(dimension.tickformat));\n } else if (ticktext.length > tickvals.length) {\n ticktext = ticktext.slice(0, tickvals.length);\n } else if (tickvals.length > ticktext.length) {\n tickvals = tickvals.slice(0, ticktext.length);\n }\n for (var j = 1; j < tickvals.length; j++) {\n if (tickvals[j] < tickvals[j - 1]) {\n var tickItems = tickvals.map(makeTickItem).sort(sortTickItem);\n for (var k = 0; k < tickvals.length; k++) {\n tickvals[k] = tickItems[k].val;\n ticktext[k] = tickItems[k].text;\n }\n break;\n }\n }\n } else tickvals = void 0;\n truncatedValues = helpers.convertTypedArray(truncatedValues);\n return {\n key,\n label: dimension.label,\n tickFormat: dimension.tickformat,\n tickvals,\n ticktext,\n ordinal: helpers.isOrdinal(dimension),\n multiselect: dimension.multiselect,\n xIndex: i,\n crossfilterDimensionIndex: i,\n visibleIndex: dimension._index,\n height,\n values: truncatedValues,\n paddedUnitValues: truncatedValues.map(domainToPaddedUnit),\n unitTickvals: tickvals && tickvals.map(domainToPaddedUnit),\n xScale,\n x: xScale(i),\n canvasX: xScale(i) * canvasPixelRatio,\n unitToPaddedPx: _unitToPaddedPx,\n domainScale: domainScale(height, c.verticalPadding, dimension, tickvals, ticktext),\n ordinalScale: ordinalScale(dimension),\n parent: vm,\n model: model2,\n brush: brush.makeBrush(\n state,\n filterRangeSpecified,\n filterRange,\n function() {\n state.linePickActive(false);\n },\n brushMove,\n function(f) {\n vm.focusLayer.render(vm.panels, true);\n vm.pickLayer && vm.pickLayer.render(vm.panels, true);\n state.linePickActive(true);\n if (callbacks && callbacks.filterChanged) {\n var invScale = domainToPaddedUnit.invert;\n var newRanges = f.map(function(r) {\n return r.map(invScale).sort(Lib.sorterAsc);\n }).sort(function(a, b) {\n return a[0] - b[0];\n });\n callbacks.filterChanged(vm.key, dimension._index, newRanges);\n }\n }\n )\n };\n });\n return vm;\n }\n function styleExtentTexts(selection) {\n selection.classed(c.cn.axisExtentText, true).attr(\"text-anchor\", \"middle\").style(\"cursor\", \"default\");\n }\n function parcoordsInteractionState() {\n var linePickActive = true;\n var contextShown = false;\n return {\n linePickActive: function(val) {\n return arguments.length ? linePickActive = !!val : linePickActive;\n },\n contextShown: function(val) {\n return arguments.length ? contextShown = !!val : contextShown;\n }\n };\n }\n function calcTilt(angle, position) {\n var dir = position === \"top\" ? 1 : -1;\n var radians2 = angle * Math.PI / 180;\n var dx = Math.sin(radians2);\n var dy = Math.cos(radians2);\n return {\n dir,\n dx,\n dy,\n degrees: angle\n };\n }\n function updatePanelLayout(yAxis, vm, plotGlPixelRatio) {\n var panels = vm.panels || (vm.panels = []);\n var data = yAxis.data();\n for (var i = 0; i < data.length - 1; i++) {\n var p = panels[i] || (panels[i] = {});\n var dim0 = data[i];\n var dim1 = data[i + 1];\n p.dim0 = dim0;\n p.dim1 = dim1;\n p.canvasX = dim0.canvasX;\n p.panelSizeX = dim1.canvasX - dim0.canvasX;\n p.panelSizeY = vm.model.canvasHeight;\n p.y = 0;\n p.canvasY = 0;\n p.plotGlPixelRatio = plotGlPixelRatio;\n }\n }\n function calcAllTicks(cd) {\n for (var i = 0; i < cd.length; i++) {\n for (var j = 0; j < cd[i].length; j++) {\n var trace = cd[i][j].trace;\n var dimensions = trace.dimensions;\n for (var k = 0; k < dimensions.length; k++) {\n var values = dimensions[k].values;\n var dim = dimensions[k]._ax;\n if (dim) {\n if (!dim.range) {\n dim.range = findExtremes(values, trace._length);\n } else {\n dim.range = fixExtremes(dim.range[0], dim.range[1]);\n }\n if (!dim.dtick) {\n dim.dtick = 0.01 * (Math.abs(dim.range[1] - dim.range[0]) || 1);\n }\n dim.tickformat = dimensions[k].tickformat;\n Axes.calcTicks(dim);\n dim.cleanRange();\n }\n }\n }\n }\n }\n function linearFormat(dim, v) {\n return Axes.tickText(dim._ax, v, false).text;\n }\n function extremeText(d, isTop) {\n if (d.ordinal) return \"\";\n var domain = d.domainScale.domain();\n var v = domain[isTop ? domain.length - 1 : 0];\n return linearFormat(d.model.dimensions[d.visibleIndex], v);\n }\n module.exports = function parcoords(gd, cdModule, layout, callbacks) {\n var isStatic = gd._context.staticPlot;\n var fullLayout = gd._fullLayout;\n var svg = fullLayout._toppaper;\n var glContainer = fullLayout._glcontainer;\n var plotGlPixelRatio = gd._context.plotGlPixelRatio;\n var paperColor = gd._fullLayout.paper_bgcolor;\n calcAllTicks(cdModule);\n var state = parcoordsInteractionState();\n var vm = cdModule.filter(function(d) {\n return unwrap(d).trace.visible;\n }).map(model.bind(0, layout)).map(viewModel.bind(0, state, callbacks));\n glContainer.each(function(d, i) {\n return Lib.extendFlat(d, vm[i]);\n });\n var glLayers = glContainer.selectAll(\".gl-canvas\").each(function(d) {\n d.viewModel = vm[0];\n d.viewModel.plotGlPixelRatio = plotGlPixelRatio;\n d.viewModel.paperColor = paperColor;\n d.model = d.viewModel ? d.viewModel.model : null;\n });\n var lastHovered = null;\n var pickLayer = glLayers.filter(function(d) {\n return d.pick;\n });\n pickLayer.style(\"pointer-events\", isStatic ? \"none\" : \"auto\").on(\"mousemove\", function(d) {\n if (state.linePickActive() && d.lineLayer && callbacks && callbacks.hover) {\n var event = d3.event;\n var cw = this.width;\n var ch = this.height;\n var pointer = d3.mouse(this);\n var x = pointer[0];\n var y = pointer[1];\n if (x < 0 || y < 0 || x >= cw || y >= ch) {\n return;\n }\n var pixel = d.lineLayer.readPixel(x, ch - 1 - y);\n var found = pixel[3] !== 0;\n var curveNumber = found ? pixel[2] + 256 * (pixel[1] + 256 * pixel[0]) : null;\n var eventData = {\n x,\n y,\n clientX: event.clientX,\n clientY: event.clientY,\n dataIndex: d.model.key,\n curveNumber\n };\n if (curveNumber !== lastHovered) {\n if (found) {\n callbacks.hover(eventData);\n } else if (callbacks.unhover) {\n callbacks.unhover(eventData);\n }\n lastHovered = curveNumber;\n }\n }\n });\n glLayers.style(\"opacity\", function(d) {\n return d.pick ? 0 : 1;\n });\n svg.style(\"background\", \"rgba(255, 255, 255, 0)\");\n var controlOverlay = svg.selectAll(\".\" + c.cn.parcoords).data(vm, keyFun);\n controlOverlay.exit().remove();\n controlOverlay.enter().append(\"g\").classed(c.cn.parcoords, true).style(\"shape-rendering\", \"crispEdges\").style(\"pointer-events\", \"none\");\n controlOverlay.attr(\"transform\", function(d) {\n return strTranslate(d.model.translateX, d.model.translateY);\n });\n var parcoordsControlView = controlOverlay.selectAll(\".\" + c.cn.parcoordsControlView).data(repeat, keyFun);\n parcoordsControlView.enter().append(\"g\").classed(c.cn.parcoordsControlView, true);\n parcoordsControlView.attr(\"transform\", function(d) {\n return strTranslate(d.model.pad.l, d.model.pad.t);\n });\n var yAxis = parcoordsControlView.selectAll(\".\" + c.cn.yAxis).data(function(p) {\n return p.dimensions;\n }, keyFun);\n yAxis.enter().append(\"g\").classed(c.cn.yAxis, true);\n parcoordsControlView.each(function(p) {\n updatePanelLayout(yAxis, p, plotGlPixelRatio);\n });\n glLayers.each(function(d) {\n if (d.viewModel) {\n if (!d.lineLayer || callbacks) {\n d.lineLayer = lineLayerMaker(this, d);\n } else d.lineLayer.update(d);\n if (d.key || d.key === 0) d.viewModel[d.key] = d.lineLayer;\n var setChanged = !d.context || // don't update background\n callbacks;\n d.lineLayer.render(d.viewModel.panels, setChanged);\n }\n });\n yAxis.attr(\"transform\", function(d) {\n return strTranslate(d.xScale(d.xIndex), 0);\n });\n yAxis.call(\n d3.behavior.drag().origin(function(d) {\n return d;\n }).on(\"drag\", function(d) {\n var p = d.parent;\n state.linePickActive(false);\n d.x = Math.max(-c.overdrag, Math.min(d.model.width + c.overdrag, d3.event.x));\n d.canvasX = d.x * d.model.canvasPixelRatio;\n yAxis.sort(function(a, b) {\n return a.x - b.x;\n }).each(function(e, i) {\n e.xIndex = i;\n e.x = d === e ? e.x : e.xScale(e.xIndex);\n e.canvasX = e.x * e.model.canvasPixelRatio;\n });\n updatePanelLayout(yAxis, p, plotGlPixelRatio);\n yAxis.filter(function(e) {\n return Math.abs(d.xIndex - e.xIndex) !== 0;\n }).attr(\"transform\", function(d2) {\n return strTranslate(d2.xScale(d2.xIndex), 0);\n });\n d3.select(this).attr(\"transform\", strTranslate(d.x, 0));\n yAxis.each(function(e, i0, i1) {\n if (i1 === d.parent.key) p.dimensions[i0] = e;\n });\n p.contextLayer && p.contextLayer.render(p.panels, false, !someFiltersActive(p));\n p.focusLayer.render && p.focusLayer.render(p.panels);\n }).on(\"dragend\", function(d) {\n var p = d.parent;\n d.x = d.xScale(d.xIndex);\n d.canvasX = d.x * d.model.canvasPixelRatio;\n updatePanelLayout(yAxis, p, plotGlPixelRatio);\n d3.select(this).attr(\"transform\", function(d2) {\n return strTranslate(d2.x, 0);\n });\n p.contextLayer && p.contextLayer.render(p.panels, false, !someFiltersActive(p));\n p.focusLayer && p.focusLayer.render(p.panels);\n p.pickLayer && p.pickLayer.render(p.panels, true);\n state.linePickActive(true);\n if (callbacks && callbacks.axesMoved) {\n callbacks.axesMoved(p.key, p.dimensions.map(function(e) {\n return e.crossfilterDimensionIndex;\n }));\n }\n })\n );\n yAxis.exit().remove();\n var axisOverlays = yAxis.selectAll(\".\" + c.cn.axisOverlays).data(repeat, keyFun);\n axisOverlays.enter().append(\"g\").classed(c.cn.axisOverlays, true);\n axisOverlays.selectAll(\".\" + c.cn.axis).remove();\n var axis = axisOverlays.selectAll(\".\" + c.cn.axis).data(repeat, keyFun);\n axis.enter().append(\"g\").classed(c.cn.axis, true);\n axis.each(function(d) {\n var wantedTickCount = d.model.height / d.model.tickDistance;\n var scale = d.domainScale;\n var sdom = scale.domain();\n d3.select(this).call(d3.svg.axis().orient(\"left\").tickSize(4).outerTickSize(2).ticks(wantedTickCount, d.tickFormat).tickValues(d.ordinal ? (\n // and this works for ordinal scales\n sdom\n ) : null).tickFormat(function(v) {\n return helpers.isOrdinal(d) ? v : linearFormat(d.model.dimensions[d.visibleIndex], v);\n }).scale(scale));\n Drawing.font(axis.selectAll(\"text\"), d.model.tickFont);\n });\n axis.selectAll(\".domain, .tick>line\").attr(\"fill\", \"none\").attr(\"stroke\", \"black\").attr(\"stroke-opacity\", 0.25).attr(\"stroke-width\", \"1px\");\n axis.selectAll(\"text\").style(\"cursor\", \"default\");\n var axisHeading = axisOverlays.selectAll(\".\" + c.cn.axisHeading).data(repeat, keyFun);\n axisHeading.enter().append(\"g\").classed(c.cn.axisHeading, true);\n var axisTitle = axisHeading.selectAll(\".\" + c.cn.axisTitle).data(repeat, keyFun);\n axisTitle.enter().append(\"text\").classed(c.cn.axisTitle, true).attr(\"text-anchor\", \"middle\").style(\"cursor\", \"ew-resize\").style(\"pointer-events\", isStatic ? \"none\" : \"auto\");\n axisTitle.text(function(d) {\n return d.label;\n }).each(function(d) {\n var e = d3.select(this);\n Drawing.font(e, d.model.labelFont);\n svgTextUtils.convertToTspans(e, gd);\n }).attr(\"transform\", function(d) {\n var tilt = calcTilt(d.model.labelAngle, d.model.labelSide);\n var r = c.axisTitleOffset;\n return (tilt.dir > 0 ? \"\" : strTranslate(0, 2 * r + d.model.height)) + strRotate(tilt.degrees) + strTranslate(-r * tilt.dx, -r * tilt.dy);\n }).attr(\"text-anchor\", function(d) {\n var tilt = calcTilt(d.model.labelAngle, d.model.labelSide);\n var adx = Math.abs(tilt.dx);\n var ady = Math.abs(tilt.dy);\n if (2 * adx > ady) {\n return tilt.dir * tilt.dx < 0 ? \"start\" : \"end\";\n } else {\n return \"middle\";\n }\n });\n var axisExtent = axisOverlays.selectAll(\".\" + c.cn.axisExtent).data(repeat, keyFun);\n axisExtent.enter().append(\"g\").classed(c.cn.axisExtent, true);\n var axisExtentTop = axisExtent.selectAll(\".\" + c.cn.axisExtentTop).data(repeat, keyFun);\n axisExtentTop.enter().append(\"g\").classed(c.cn.axisExtentTop, true);\n axisExtentTop.attr(\"transform\", strTranslate(0, -c.axisExtentOffset));\n var axisExtentTopText = axisExtentTop.selectAll(\".\" + c.cn.axisExtentTopText).data(repeat, keyFun);\n axisExtentTopText.enter().append(\"text\").classed(c.cn.axisExtentTopText, true).call(styleExtentTexts);\n axisExtentTopText.text(function(d) {\n return extremeText(d, true);\n }).each(function(d) {\n Drawing.font(d3.select(this), d.model.rangeFont);\n });\n var axisExtentBottom = axisExtent.selectAll(\".\" + c.cn.axisExtentBottom).data(repeat, keyFun);\n axisExtentBottom.enter().append(\"g\").classed(c.cn.axisExtentBottom, true);\n axisExtentBottom.attr(\"transform\", function(d) {\n return strTranslate(0, d.model.height + c.axisExtentOffset);\n });\n var axisExtentBottomText = axisExtentBottom.selectAll(\".\" + c.cn.axisExtentBottomText).data(repeat, keyFun);\n axisExtentBottomText.enter().append(\"text\").classed(c.cn.axisExtentBottomText, true).attr(\"dy\", \"0.75em\").call(styleExtentTexts);\n axisExtentBottomText.text(function(d) {\n return extremeText(d, false);\n }).each(function(d) {\n Drawing.font(d3.select(this), d.model.rangeFont);\n });\n brush.ensureAxisBrush(axisOverlays, paperColor, gd);\n };\n }\n });\n\n // src/traces/parcoords/plot.js\n var require_plot21 = __commonJS({\n \"src/traces/parcoords/plot.js\"(exports, module) {\n \"use strict\";\n var parcoords = require_parcoords();\n var prepareRegl = require_prepare_regl();\n var isVisible = require_helpers18().isVisible;\n var reglPrecompiled = {};\n function newIndex(visibleIndices, orig, dim) {\n var origIndex = orig.indexOf(dim);\n var currentIndex = visibleIndices.indexOf(origIndex);\n if (currentIndex === -1) {\n currentIndex += orig.length;\n }\n return currentIndex;\n }\n function sorter(visibleIndices, orig) {\n return function sorter2(d1, d2) {\n return newIndex(visibleIndices, orig, d1) - newIndex(visibleIndices, orig, d2);\n };\n }\n var exports = module.exports = function plot(gd, cdModule) {\n var fullLayout = gd._fullLayout;\n var success = prepareRegl(gd, [], reglPrecompiled);\n if (!success) return;\n var currentDims = {};\n var initialDims = {};\n var fullIndices = {};\n var inputIndices = {};\n var size = fullLayout._size;\n cdModule.forEach(function(d, i) {\n var trace = d[0].trace;\n fullIndices[i] = trace.index;\n var iIn = inputIndices[i] = trace.index;\n currentDims[i] = gd.data[iIn].dimensions;\n initialDims[i] = gd.data[iIn].dimensions.slice();\n });\n var filterChanged = function(i, initialDimIndex, newRanges) {\n var dim = initialDims[i][initialDimIndex];\n var newConstraints = newRanges.map(function(r) {\n return r.slice();\n });\n var aStr = \"dimensions[\" + initialDimIndex + \"].constraintrange\";\n var preGUI = fullLayout._tracePreGUI[gd._fullData[fullIndices[i]]._fullInput.uid];\n if (preGUI[aStr] === void 0) {\n var initialVal = dim.constraintrange;\n preGUI[aStr] = initialVal || null;\n }\n var fullDimension = gd._fullData[fullIndices[i]].dimensions[initialDimIndex];\n if (!newConstraints.length) {\n delete dim.constraintrange;\n delete fullDimension.constraintrange;\n newConstraints = null;\n } else {\n if (newConstraints.length === 1) newConstraints = newConstraints[0];\n dim.constraintrange = newConstraints;\n fullDimension.constraintrange = newConstraints.slice();\n newConstraints = [newConstraints];\n }\n var restyleData = {};\n restyleData[aStr] = newConstraints;\n gd.emit(\"plotly_restyle\", [restyleData, [inputIndices[i]]]);\n };\n var hover = function(eventData) {\n gd.emit(\"plotly_hover\", eventData);\n };\n var unhover = function(eventData) {\n gd.emit(\"plotly_unhover\", eventData);\n };\n var axesMoved = function(i, visibleIndices) {\n var orig = sorter(visibleIndices, initialDims[i].filter(isVisible));\n currentDims[i].sort(orig);\n initialDims[i].filter(function(d) {\n return !isVisible(d);\n }).sort(function(d) {\n return initialDims[i].indexOf(d);\n }).forEach(function(d) {\n currentDims[i].splice(currentDims[i].indexOf(d), 1);\n currentDims[i].splice(initialDims[i].indexOf(d), 0, d);\n });\n gd.emit(\"plotly_restyle\", [{ dimensions: [currentDims[i]] }, [inputIndices[i]]]);\n };\n parcoords(\n gd,\n cdModule,\n {\n // layout\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n {\n // callbacks\n filterChanged,\n hover,\n unhover,\n axesMoved\n }\n );\n };\n exports.reglPrecompiled = reglPrecompiled;\n }\n });\n\n // src/traces/parcoords/base_plot.js\n var require_base_plot7 = __commonJS({\n \"src/traces/parcoords/base_plot.js\"(exports) {\n \"use strict\";\n var d3 = require_d3();\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var parcoordsPlot = require_plot21();\n var xmlnsNamespaces = require_xmlns_namespaces();\n exports.name = \"parcoords\";\n exports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, \"parcoords\")[0];\n if (calcData.length) parcoordsPlot(gd, calcData);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadParcoords = oldFullLayout._has && oldFullLayout._has(\"parcoords\");\n var hasParcoords = newFullLayout._has && newFullLayout._has(\"parcoords\");\n if (hadParcoords && !hasParcoords) {\n oldFullLayout._paperdiv.selectAll(\".parcoords\").remove();\n oldFullLayout._glimages.selectAll(\"*\").remove();\n }\n };\n exports.toSVG = function(gd) {\n var imageRoot = gd._fullLayout._glimages;\n var root = d3.select(gd).selectAll(\".svg-container\");\n var canvases = root.filter(function(d, i) {\n return i === root.size() - 1;\n }).selectAll(\".gl-canvas-context, .gl-canvas-focus\");\n function canvasToImage() {\n var canvas = this;\n var imageData = canvas.toDataURL(\"image/png\");\n var image = imageRoot.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n preserveAspectRatio: \"none\",\n x: 0,\n y: 0,\n width: canvas.style.width,\n height: canvas.style.height\n });\n }\n canvases.each(canvasToImage);\n window.setTimeout(function() {\n d3.selectAll(\"#filterBarPattern\").attr(\"id\", \"filterBarPattern\");\n }, 60);\n };\n }\n });\n\n // src/traces/parcoords/base_index.js\n var require_base_index3 = __commonJS({\n \"src/traces/parcoords/base_index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes52(),\n supplyDefaults: require_defaults48(),\n calc: require_calc31(),\n colorbar: {\n container: \"line\",\n min: \"cmin\",\n max: \"cmax\"\n },\n moduleType: \"trace\",\n name: \"parcoords\",\n basePlotModule: require_base_plot7(),\n categories: [\"gl\", \"regl\", \"noOpacity\", \"noHover\"],\n meta: {}\n };\n }\n });\n\n // src/traces/parcoords/index.js\n var require_parcoords2 = __commonJS({\n \"src/traces/parcoords/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index3();\n index.plot = require_plot21();\n module.exports = index;\n }\n });\n\n // lib/parcoords.js\n var require_parcoords3 = __commonJS({\n \"lib/parcoords.js\"(exports, module) {\n \"use strict\";\n module.exports = require_parcoords2();\n }\n });\n\n // src/traces/parcats/attributes.js\n var require_attributes53 = __commonJS({\n \"src/traces/parcats/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var baseAttrs = require_attributes2();\n var fontAttrs = require_font_attributes();\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var domainAttrs = require_domain().attributes;\n var line = extendFlat(\n { editType: \"calc\" },\n colorScaleAttrs(\"line\", { editTypeOverride: \"calc\" }),\n {\n shape: {\n valType: \"enumerated\",\n values: [\"linear\", \"hspline\"],\n dflt: \"linear\",\n editType: \"plot\"\n },\n hovertemplate: hovertemplateAttrs({\n editType: \"plot\",\n arrayOk: false\n }, {\n keys: [\"count\", \"probability\"]\n })\n }\n );\n module.exports = {\n domain: domainAttrs({ name: \"parcats\", trace: true, editType: \"calc\" }),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"count\", \"probability\"],\n editType: \"plot\",\n arrayOk: false\n }),\n hoveron: {\n valType: \"enumerated\",\n values: [\"category\", \"color\", \"dimension\"],\n dflt: \"category\",\n editType: \"plot\"\n },\n hovertemplate: hovertemplateAttrs({\n editType: \"plot\",\n arrayOk: false\n }, {\n keys: [\n \"count\",\n \"probability\",\n \"category\",\n \"categorycount\",\n \"colorcount\",\n \"bandcolorcount\"\n ]\n }),\n arrangement: {\n valType: \"enumerated\",\n values: [\"perpendicular\", \"freeform\", \"fixed\"],\n dflt: \"perpendicular\",\n editType: \"plot\"\n },\n bundlecolors: {\n valType: \"boolean\",\n dflt: true,\n editType: \"plot\"\n },\n sortpaths: {\n valType: \"enumerated\",\n values: [\"forward\", \"backward\"],\n dflt: \"forward\",\n editType: \"plot\"\n },\n labelfont: fontAttrs({\n editType: \"calc\"\n }),\n tickfont: fontAttrs({\n autoShadowDflt: true,\n editType: \"calc\"\n }),\n dimensions: {\n _isLinkedToArray: \"dimension\",\n label: {\n valType: \"string\",\n editType: \"calc\"\n },\n categoryorder: {\n valType: \"enumerated\",\n values: [\n \"trace\",\n \"category ascending\",\n \"category descending\",\n \"array\"\n ],\n dflt: \"trace\",\n editType: \"calc\"\n },\n categoryarray: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n ticktext: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n values: {\n valType: \"data_array\",\n dflt: [],\n editType: \"calc\"\n },\n displayindex: {\n valType: \"integer\",\n editType: \"calc\"\n },\n editType: \"calc\",\n visible: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n }\n },\n line,\n counts: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n arrayOk: true,\n editType: \"calc\"\n },\n // Hide unsupported top-level properties from plot-schema\n customdata: void 0,\n hoverlabel: void 0,\n ids: void 0,\n legend: void 0,\n legendgroup: void 0,\n legendrank: void 0,\n opacity: void 0,\n selectedpoints: void 0,\n showlegend: void 0\n };\n }\n });\n\n // src/traces/parcats/defaults.js\n var require_defaults49 = __commonJS({\n \"src/traces/parcats/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleDefaults = require_defaults2();\n var handleDomainDefaults = require_domain().defaults;\n var handleArrayContainerDefaults = require_array_container_defaults();\n var attributes = require_attributes53();\n var mergeLength = require_merge_length();\n var isTypedArraySpec = require_array().isTypedArraySpec;\n function handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce) {\n coerce(\"line.shape\");\n coerce(\"line.hovertemplate\");\n var lineColor = coerce(\"line.color\", layout.colorway[0]);\n if (hasColorscale(traceIn, \"line\") && Lib.isArrayOrTypedArray(lineColor)) {\n if (lineColor.length) {\n coerce(\"line.colorscale\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"line.\", cLetter: \"c\" });\n return lineColor.length;\n } else {\n traceOut.line.color = defaultColor;\n }\n }\n return Infinity;\n }\n function dimensionDefaults(dimensionIn, dimensionOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(dimensionIn, dimensionOut, attributes.dimensions, attr, dflt);\n }\n var values = coerce(\"values\");\n var visible = coerce(\"visible\");\n if (!(values && values.length)) {\n visible = dimensionOut.visible = false;\n }\n if (visible) {\n coerce(\"label\");\n coerce(\"displayindex\", dimensionOut._index);\n var arrayIn = dimensionIn.categoryarray;\n var isValidArray = Lib.isArrayOrTypedArray(arrayIn) && arrayIn.length > 0 || isTypedArraySpec(arrayIn);\n var orderDefault;\n if (isValidArray) orderDefault = \"array\";\n var order = coerce(\"categoryorder\", orderDefault);\n if (order === \"array\") {\n coerce(\"categoryarray\");\n coerce(\"ticktext\");\n } else {\n delete dimensionIn.categoryarray;\n delete dimensionIn.ticktext;\n }\n if (!isValidArray && order === \"array\") {\n dimensionOut.categoryorder = \"trace\";\n }\n }\n }\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var dimensions = handleArrayContainerDefaults(traceIn, traceOut, {\n name: \"dimensions\",\n handleItemDefaults: dimensionDefaults\n });\n var len = handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n handleDomainDefaults(traceOut, layout, coerce);\n if (!Array.isArray(dimensions) || !dimensions.length) {\n traceOut.visible = false;\n }\n mergeLength(traceOut, dimensions, \"values\", len);\n coerce(\"hoveron\");\n coerce(\"hovertemplate\");\n coerce(\"arrangement\");\n coerce(\"bundlecolors\");\n coerce(\"sortpaths\");\n coerce(\"counts\");\n var layoutFont = layout.font;\n Lib.coerceFont(coerce, \"labelfont\", layoutFont, {\n overrideDflt: {\n size: Math.round(layoutFont.size)\n }\n });\n Lib.coerceFont(coerce, \"tickfont\", layoutFont, {\n autoShadowDflt: true,\n overrideDflt: {\n size: Math.round(layoutFont.size / 1.2)\n }\n });\n };\n }\n });\n\n // src/traces/parcats/calc.js\n var require_calc32 = __commonJS({\n \"src/traces/parcats/calc.js\"(exports, module) {\n \"use strict\";\n var wrap = require_gup().wrap;\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleCalc = require_calc();\n var filterUnique = require_filter_unique();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var isNumeric = require_fast_isnumeric();\n module.exports = function calc(gd, trace) {\n var visibleDims = Lib.filterVisible(trace.dimensions);\n if (visibleDims.length === 0) return [];\n var uniqueInfoDims = visibleDims.map(function(dim) {\n var categoryValues;\n if (dim.categoryorder === \"trace\") {\n categoryValues = null;\n } else if (dim.categoryorder === \"array\") {\n categoryValues = dim.categoryarray;\n } else {\n categoryValues = filterUnique(dim.values);\n var allNumeric = true;\n for (var i = 0; i < categoryValues.length; i++) {\n if (!isNumeric(categoryValues[i])) {\n allNumeric = false;\n break;\n }\n }\n categoryValues.sort(allNumeric ? Lib.sorterAsc : void 0);\n if (dim.categoryorder === \"category descending\") {\n categoryValues = categoryValues.reverse();\n }\n }\n return getUniqueInfo(dim.values, categoryValues);\n });\n var counts, count, totalCount;\n if (Lib.isArrayOrTypedArray(trace.counts)) {\n counts = trace.counts;\n } else {\n counts = [trace.counts];\n }\n validateDimensionDisplayInds(visibleDims);\n visibleDims.forEach(function(dim, dimInd) {\n validateCategoryProperties(dim, uniqueInfoDims[dimInd]);\n });\n var line = trace.line;\n var markerColorscale;\n if (line) {\n if (hasColorscale(trace, \"line\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.line.color,\n containerStr: \"line\",\n cLetter: \"c\"\n });\n }\n markerColorscale = Drawing.tryColorscale(line);\n } else {\n markerColorscale = Lib.identity;\n }\n function getMarkerColorInfo(index) {\n var value, rawColor;\n if (Lib.isArrayOrTypedArray(line.color)) {\n value = line.color[index % line.color.length];\n rawColor = value;\n } else {\n value = line.color;\n }\n return { color: markerColorscale(value), rawColor };\n }\n var numValues = visibleDims[0].values.length;\n var pathModels = {};\n var categoryIndsDims = uniqueInfoDims.map(function(di) {\n return di.inds;\n });\n totalCount = 0;\n var valueInd;\n var d;\n for (valueInd = 0; valueInd < numValues; valueInd++) {\n var categoryIndsPath = [];\n for (d = 0; d < categoryIndsDims.length; d++) {\n categoryIndsPath.push(categoryIndsDims[d][valueInd]);\n }\n count = counts[valueInd % counts.length];\n totalCount += count;\n var pathColorInfo = getMarkerColorInfo(valueInd);\n var pathKey = categoryIndsPath + \"-\" + pathColorInfo.rawColor;\n if (pathModels[pathKey] === void 0) {\n pathModels[pathKey] = createPathModel(\n categoryIndsPath,\n pathColorInfo.color,\n pathColorInfo.rawColor\n );\n }\n updatePathModel(pathModels[pathKey], valueInd, count);\n }\n var dimensionModels = visibleDims.map(function(di, i) {\n return createDimensionModel(i, di._index, di._displayindex, di.label, totalCount);\n });\n for (valueInd = 0; valueInd < numValues; valueInd++) {\n count = counts[valueInd % counts.length];\n for (d = 0; d < dimensionModels.length; d++) {\n var containerInd = dimensionModels[d].containerInd;\n var catInd = uniqueInfoDims[d].inds[valueInd];\n var cats = dimensionModels[d].categories;\n if (cats[catInd] === void 0) {\n var catValue = trace.dimensions[containerInd]._categoryarray[catInd];\n var catLabel = trace.dimensions[containerInd]._ticktext[catInd];\n cats[catInd] = createCategoryModel(d, catInd, catValue, catLabel);\n }\n updateCategoryModel(cats[catInd], valueInd, count);\n }\n }\n return wrap(createParcatsModel(dimensionModels, pathModels, totalCount));\n };\n function createParcatsModel(dimensions, paths, count) {\n var maxCats = dimensions.map(function(d) {\n return d.categories.length;\n }).reduce(function(v1, v2) {\n return Math.max(v1, v2);\n });\n return { dimensions, paths, trace: void 0, maxCats, count };\n }\n function createDimensionModel(dimensionInd, containerInd, displayInd, dimensionLabel, count) {\n return {\n dimensionInd,\n containerInd,\n displayInd,\n dimensionLabel,\n count,\n categories: [],\n dragX: null\n };\n }\n function createCategoryModel(dimensionInd, categoryInd, categoryValue, categoryLabel) {\n return {\n dimensionInd,\n categoryInd,\n categoryValue,\n displayInd: categoryInd,\n categoryLabel,\n valueInds: [],\n count: 0,\n dragY: null\n };\n }\n function updateCategoryModel(categoryModel, valueInd, count) {\n categoryModel.valueInds.push(valueInd);\n categoryModel.count += count;\n }\n function createPathModel(categoryInds, color2, rawColor) {\n return {\n categoryInds,\n color: color2,\n rawColor,\n valueInds: [],\n count: 0\n };\n }\n function updatePathModel(pathModel, valueInd, count) {\n pathModel.valueInds.push(valueInd);\n pathModel.count += count;\n }\n function getUniqueInfo(values, uniqueValues) {\n if (uniqueValues === void 0 || uniqueValues === null) {\n uniqueValues = [];\n } else {\n uniqueValues = uniqueValues.map(function(e) {\n return e;\n });\n }\n var uniqueValueCounts = {};\n var uniqueValueInds = {};\n var inds = [];\n uniqueValues.forEach(function(uniqueVal, valInd) {\n uniqueValueCounts[uniqueVal] = 0;\n uniqueValueInds[uniqueVal] = valInd;\n });\n for (var i = 0; i < values.length; i++) {\n var item = values[i];\n var itemInd;\n if (uniqueValueCounts[item] === void 0) {\n uniqueValueCounts[item] = 1;\n itemInd = uniqueValues.push(item) - 1;\n uniqueValueInds[item] = itemInd;\n } else {\n uniqueValueCounts[item]++;\n itemInd = uniqueValueInds[item];\n }\n inds.push(itemInd);\n }\n var uniqueCounts = uniqueValues.map(function(v) {\n return uniqueValueCounts[v];\n });\n return {\n uniqueValues,\n uniqueCounts,\n inds\n };\n }\n function validateDimensionDisplayInds(visibleDims) {\n var displayInds = visibleDims.map(function(d) {\n return d.displayindex;\n });\n var i;\n if (isRangePermutation(displayInds)) {\n for (i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = visibleDims[i].displayindex;\n }\n } else {\n for (i = 0; i < visibleDims.length; i++) {\n visibleDims[i]._displayindex = i;\n }\n }\n }\n function validateCategoryProperties(dim, uniqueInfoDim) {\n dim._categoryarray = uniqueInfoDim.uniqueValues;\n if (dim.ticktext === null || dim.ticktext === void 0) {\n dim._ticktext = [];\n } else {\n dim._ticktext = dim.ticktext.slice();\n }\n for (var i = dim._ticktext.length; i < uniqueInfoDim.uniqueValues.length; i++) {\n dim._ticktext.push(uniqueInfoDim.uniqueValues[i]);\n }\n }\n function isRangePermutation(inds) {\n var indsSpecified = new Array(inds.length);\n for (var i = 0; i < inds.length; i++) {\n if (inds[i] < 0 || inds[i] >= inds.length) {\n return false;\n }\n if (indsSpecified[inds[i]] !== void 0) {\n return false;\n }\n indsSpecified[inds[i]] = true;\n }\n return true;\n }\n }\n });\n\n // src/traces/parcats/parcats.js\n var require_parcats = __commonJS({\n \"src/traces/parcats/parcats.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var interpolateNumber = (init_src2(), __toCommonJS(src_exports)).interpolateNumber;\n var Plotly = require_plot_api();\n var Fx = require_fx();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var Drawing = require_drawing();\n var tinycolor = require_tinycolor();\n var svgTextUtils = require_svg_text_utils();\n function performPlot(parcatsModels, graphDiv, layout, svg) {\n var isStatic = graphDiv._context.staticPlot;\n var viewModels = parcatsModels.map(createParcatsViewModel.bind(0, graphDiv, layout));\n var layerSelection = svg.selectAll(\"g.parcatslayer\").data([null]);\n layerSelection.enter().append(\"g\").attr(\"class\", \"parcatslayer\").style(\"pointer-events\", isStatic ? \"none\" : \"all\");\n var traceSelection = layerSelection.selectAll(\"g.trace.parcats\").data(viewModels, key);\n var traceEnter = traceSelection.enter().append(\"g\").attr(\"class\", \"trace parcats\");\n traceSelection.attr(\"transform\", function(d) {\n return strTranslate(d.x, d.y);\n });\n traceEnter.append(\"g\").attr(\"class\", \"paths\");\n var pathsSelection = traceSelection.select(\"g.paths\");\n var pathSelection = pathsSelection.selectAll(\"path.path\").data(function(d) {\n return d.paths;\n }, key);\n pathSelection.attr(\"fill\", function(d) {\n return d.model.color;\n });\n var pathSelectionEnter = pathSelection.enter().append(\"path\").attr(\"class\", \"path\").attr(\"stroke-opacity\", 0).attr(\"fill\", function(d) {\n return d.model.color;\n }).attr(\"fill-opacity\", 0);\n stylePathsNoHover(pathSelectionEnter);\n pathSelection.attr(\"d\", function(d) {\n return d.svgD;\n });\n if (!pathSelectionEnter.empty()) {\n pathSelection.sort(compareRawColor);\n }\n pathSelection.exit().remove();\n pathSelection.on(\"mouseover\", mouseoverPath).on(\"mouseout\", mouseoutPath).on(\"click\", clickPath);\n traceEnter.append(\"g\").attr(\"class\", \"dimensions\");\n var dimensionsSelection = traceSelection.select(\"g.dimensions\");\n var dimensionSelection = dimensionsSelection.selectAll(\"g.dimension\").data(function(d) {\n return d.dimensions;\n }, key);\n dimensionSelection.enter().append(\"g\").attr(\"class\", \"dimension\");\n dimensionSelection.attr(\"transform\", function(d) {\n return strTranslate(d.x, 0);\n });\n dimensionSelection.exit().remove();\n var categorySelection = dimensionSelection.selectAll(\"g.category\").data(function(d) {\n return d.categories;\n }, key);\n var categoryGroupEnterSelection = categorySelection.enter().append(\"g\").attr(\"class\", \"category\");\n categorySelection.attr(\"transform\", function(d) {\n return strTranslate(0, d.y);\n });\n categoryGroupEnterSelection.append(\"rect\").attr(\"class\", \"catrect\").attr(\"pointer-events\", \"none\");\n categorySelection.select(\"rect.catrect\").attr(\"fill\", \"none\").attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n });\n styleCategoriesNoHover(categoryGroupEnterSelection);\n var bandSelection = categorySelection.selectAll(\"rect.bandrect\").data(\n /** @param {CategoryViewModel} catViewModel*/\n function(catViewModel) {\n return catViewModel.bands;\n },\n key\n );\n bandSelection.each(function() {\n Lib.raiseToTop(this);\n });\n bandSelection.attr(\"fill\", function(d) {\n return d.color;\n });\n var bandsSelectionEnter = bandSelection.enter().append(\"rect\").attr(\"class\", \"bandrect\").attr(\"stroke-opacity\", 0).attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"fill-opacity\", 0);\n bandSelection.attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n }).attr(\"y\", function(d) {\n return d.y;\n }).attr(\n \"cursor\",\n /** @param {CategoryBandViewModel} bandModel*/\n function(bandModel) {\n if (bandModel.parcatsViewModel.arrangement === \"fixed\") {\n return \"default\";\n } else if (bandModel.parcatsViewModel.arrangement === \"perpendicular\") {\n return \"ns-resize\";\n } else {\n return \"move\";\n }\n }\n );\n styleBandsNoHover(bandsSelectionEnter);\n bandSelection.exit().remove();\n categoryGroupEnterSelection.append(\"text\").attr(\"class\", \"catlabel\").attr(\"pointer-events\", \"none\");\n categorySelection.select(\"text.catlabel\").attr(\n \"text-anchor\",\n function(d) {\n if (catInRightDim(d)) {\n return \"start\";\n } else {\n return \"end\";\n }\n }\n ).attr(\"alignment-baseline\", \"middle\").style(\"fill\", \"rgb(0, 0, 0)\").attr(\n \"x\",\n function(d) {\n if (catInRightDim(d)) {\n return d.width + 5;\n } else {\n return -5;\n }\n }\n ).attr(\"y\", function(d) {\n return d.height / 2;\n }).text(function(d) {\n return d.model.categoryLabel;\n }).each(\n /** @param {CategoryViewModel} catModel*/\n function(catModel) {\n Drawing.font(d3.select(this), catModel.parcatsViewModel.categorylabelfont);\n svgTextUtils.convertToTspans(d3.select(this), graphDiv);\n }\n );\n categoryGroupEnterSelection.append(\"text\").attr(\"class\", \"dimlabel\");\n categorySelection.select(\"text.dimlabel\").attr(\"text-anchor\", \"middle\").attr(\"alignment-baseline\", \"baseline\").attr(\n \"cursor\",\n /** @param {CategoryViewModel} catModel*/\n function(catModel) {\n if (catModel.parcatsViewModel.arrangement === \"fixed\") {\n return \"default\";\n } else {\n return \"ew-resize\";\n }\n }\n ).attr(\"x\", function(d) {\n return d.width / 2;\n }).attr(\"y\", -5).text(function(d, i) {\n if (i === 0) {\n return d.parcatsViewModel.model.dimensions[d.model.dimensionInd].dimensionLabel;\n } else {\n return null;\n }\n }).each(\n /** @param {CategoryViewModel} catModel*/\n function(catModel) {\n Drawing.font(d3.select(this), catModel.parcatsViewModel.labelfont);\n }\n );\n categorySelection.selectAll(\"rect.bandrect\").on(\"mouseover\", mouseoverCategoryBand).on(\"mouseout\", mouseoutCategory);\n categorySelection.exit().remove();\n dimensionSelection.call(d3.behavior.drag().origin(function(d) {\n return { x: d.x, y: 0 };\n }).on(\"dragstart\", dragDimensionStart).on(\"drag\", dragDimension).on(\"dragend\", dragDimensionEnd));\n traceSelection.each(function(d) {\n d.traceSelection = d3.select(this);\n d.pathSelection = d3.select(this).selectAll(\"g.paths\").selectAll(\"path.path\");\n d.dimensionSelection = d3.select(this).selectAll(\"g.dimensions\").selectAll(\"g.dimension\");\n });\n traceSelection.exit().remove();\n }\n module.exports = function(graphDiv, svg, parcatsModels, layout) {\n performPlot(parcatsModels, graphDiv, layout, svg);\n };\n function key(d) {\n return d.key;\n }\n function catInRightDim(d) {\n var numDims = d.parcatsViewModel.dimensions.length;\n var leftDimInd = d.parcatsViewModel.dimensions[numDims - 1].model.dimensionInd;\n return d.model.dimensionInd === leftDimInd;\n }\n function compareRawColor(a, b) {\n if (a.model.rawColor > b.model.rawColor) {\n return 1;\n } else if (a.model.rawColor < b.model.rawColor) {\n return -1;\n } else {\n return 0;\n }\n }\n function mouseoverPath(d) {\n if (!d.parcatsViewModel.dragDimension) {\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n Lib.raiseToTop(this);\n stylePathsHover(d3.select(this));\n var points = buildPointsArrayForPath(d);\n var constraints = buildConstraintsForPath(d);\n d.parcatsViewModel.graphDiv.emit(\"plotly_hover\", {\n points,\n event: d3.event,\n constraints\n });\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"none\") === -1) {\n var hoverX = d3.mouse(this)[0];\n var gd = d.parcatsViewModel.graphDiv;\n var trace = d.parcatsViewModel.trace;\n var fullLayout = gd._fullLayout;\n var rootBBox = fullLayout._paperdiv.node().getBoundingClientRect();\n var graphDivBBox = d.parcatsViewModel.graphDiv.getBoundingClientRect();\n var pathCenterX, pathCenterY, dimInd;\n for (dimInd = 0; dimInd < d.leftXs.length - 1; dimInd++) {\n if (d.leftXs[dimInd] + d.dimWidths[dimInd] - 2 <= hoverX && hoverX <= d.leftXs[dimInd + 1] + 2) {\n var leftDim = d.parcatsViewModel.dimensions[dimInd];\n var rightDim = d.parcatsViewModel.dimensions[dimInd + 1];\n pathCenterX = (leftDim.x + leftDim.width + rightDim.x) / 2;\n pathCenterY = (d.topYs[dimInd] + d.topYs[dimInd + 1] + d.height) / 2;\n break;\n }\n }\n var hoverCenterX = d.parcatsViewModel.x + pathCenterX;\n var hoverCenterY = d.parcatsViewModel.y + pathCenterY;\n var textColor = tinycolor.mostReadable(d.model.color, [\"black\", \"white\"]);\n var count = d.model.count;\n var prob = count / d.parcatsViewModel.model.count;\n var labels = {\n countLabel: count,\n probabilityLabel: prob.toFixed(3)\n };\n var hovertextParts = [];\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"count\") !== -1) {\n hovertextParts.push([\"Count:\", labels.countLabel].join(\" \"));\n }\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"probability\") !== -1) {\n hovertextParts.push([\"P:\", labels.probabilityLabel].join(\" \"));\n }\n var hovertext = hovertextParts.join(\"
\");\n var mouseX = d3.mouse(gd)[0];\n Fx.loneHover({\n trace,\n x: hoverCenterX - rootBBox.left + graphDivBBox.left,\n y: hoverCenterY - rootBBox.top + graphDivBBox.top,\n text: hovertext,\n color: d.model.color,\n borderColor: \"black\",\n fontFamily: 'Monaco, \"Courier New\", monospace',\n fontSize: 10,\n fontColor: textColor,\n idealAlign: mouseX < hoverCenterX ? \"right\" : \"left\",\n hovertemplate: (trace.line || {}).hovertemplate,\n hovertemplateLabels: labels,\n eventData: [{\n data: trace._input,\n fullData: trace,\n count,\n probability: prob\n }]\n }, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n }\n }\n }\n }\n function mouseoutPath(d) {\n if (!d.parcatsViewModel.dragDimension) {\n stylePathsNoHover(d3.select(this));\n Fx.loneUnhover(d.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node());\n d.parcatsViewModel.pathSelection.sort(compareRawColor);\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var points = buildPointsArrayForPath(d);\n var constraints = buildConstraintsForPath(d);\n d.parcatsViewModel.graphDiv.emit(\"plotly_unhover\", {\n points,\n event: d3.event,\n constraints\n });\n }\n }\n }\n function buildPointsArrayForPath(d) {\n var points = [];\n var curveNumber = getTraceIndex(d.parcatsViewModel);\n for (var i = 0; i < d.model.valueInds.length; i++) {\n var pointNumber = d.model.valueInds[i];\n points.push({\n curveNumber,\n pointNumber\n });\n }\n return points;\n }\n function buildConstraintsForPath(d) {\n var constraints = {};\n var dimensions = d.parcatsViewModel.model.dimensions;\n for (var i = 0; i < dimensions.length; i++) {\n var dimension = dimensions[i];\n var category = dimension.categories[d.model.categoryInds[i]];\n constraints[dimension.containerInd] = category.categoryValue;\n }\n if (d.model.rawColor !== void 0) {\n constraints.color = d.model.rawColor;\n }\n return constraints;\n }\n function clickPath(d) {\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var points = buildPointsArrayForPath(d);\n var constraints = buildConstraintsForPath(d);\n d.parcatsViewModel.graphDiv.emit(\"plotly_click\", {\n points,\n event: d3.event,\n constraints\n });\n }\n }\n function stylePathsNoHover(pathSelection) {\n pathSelection.attr(\"fill\", function(d) {\n return d.model.color;\n }).attr(\"fill-opacity\", 0.6).attr(\"stroke\", \"lightgray\").attr(\"stroke-width\", 0.2).attr(\"stroke-opacity\", 1);\n }\n function stylePathsHover(pathSelection) {\n pathSelection.attr(\"fill-opacity\", 0.8).attr(\"stroke\", function(d) {\n return tinycolor.mostReadable(d.model.color, [\"black\", \"white\"]);\n }).attr(\"stroke-width\", 0.3);\n }\n function styleCategoryHover(categorySelection) {\n categorySelection.select(\"rect.catrect\").attr(\"stroke\", \"black\").attr(\"stroke-width\", 2.5);\n }\n function styleCategoriesNoHover(categorySelection) {\n categorySelection.select(\"rect.catrect\").attr(\"stroke\", \"black\").attr(\"stroke-width\", 1).attr(\"stroke-opacity\", 1);\n }\n function styleBandsHover(bandsSelection) {\n bandsSelection.attr(\"stroke\", \"black\").attr(\"stroke-width\", 1.5);\n }\n function styleBandsNoHover(bandsSelection) {\n bandsSelection.attr(\"stroke\", \"black\").attr(\"stroke-width\", 0.2).attr(\"stroke-opacity\", 1).attr(\"fill-opacity\", 1);\n }\n function selectPathsThroughCategoryBandColor(catBandViewModel) {\n var allPaths = catBandViewModel.parcatsViewModel.pathSelection;\n var dimInd = catBandViewModel.categoryViewModel.model.dimensionInd;\n var catInd = catBandViewModel.categoryViewModel.model.categoryInd;\n return allPaths.filter(\n /** @param {PathViewModel} pathViewModel */\n function(pathViewModel) {\n return pathViewModel.model.categoryInds[dimInd] === catInd && pathViewModel.model.color === catBandViewModel.color;\n }\n );\n }\n function styleForCategoryHovermode(bandElement) {\n var bandSel = d3.select(bandElement.parentNode).selectAll(\"rect.bandrect\");\n bandSel.each(function(bvm) {\n var paths = selectPathsThroughCategoryBandColor(bvm);\n stylePathsHover(paths);\n paths.each(function() {\n Lib.raiseToTop(this);\n });\n });\n styleCategoryHover(d3.select(bandElement.parentNode));\n }\n function styleForColorHovermode(bandElement) {\n var bandViewModel = d3.select(bandElement).datum();\n var catPaths = selectPathsThroughCategoryBandColor(bandViewModel);\n stylePathsHover(catPaths);\n catPaths.each(function() {\n Lib.raiseToTop(this);\n });\n d3.select(bandElement.parentNode).selectAll(\"rect.bandrect\").filter(function(b) {\n return b.color === bandViewModel.color;\n }).each(function() {\n Lib.raiseToTop(this);\n styleBandsHover(d3.select(this));\n });\n }\n function emitPointsEventCategoryHovermode(bandElement, eventName, event) {\n var bandViewModel = d3.select(bandElement).datum();\n var categoryModel = bandViewModel.categoryViewModel.model;\n var gd = bandViewModel.parcatsViewModel.graphDiv;\n var bandSel = d3.select(bandElement.parentNode).selectAll(\"rect.bandrect\");\n var points = [];\n bandSel.each(function(bvm) {\n var paths = selectPathsThroughCategoryBandColor(bvm);\n paths.each(function(pathViewModel) {\n Array.prototype.push.apply(points, buildPointsArrayForPath(pathViewModel));\n });\n });\n var constraints = {};\n constraints[categoryModel.dimensionInd] = categoryModel.categoryValue;\n gd.emit(eventName, {\n points,\n event,\n constraints\n });\n }\n function emitPointsEventColorHovermode(bandElement, eventName, event) {\n var bandViewModel = d3.select(bandElement).datum();\n var categoryModel = bandViewModel.categoryViewModel.model;\n var gd = bandViewModel.parcatsViewModel.graphDiv;\n var paths = selectPathsThroughCategoryBandColor(bandViewModel);\n var points = [];\n paths.each(function(pathViewModel) {\n Array.prototype.push.apply(points, buildPointsArrayForPath(pathViewModel));\n });\n var constraints = {};\n constraints[categoryModel.dimensionInd] = categoryModel.categoryValue;\n if (bandViewModel.rawColor !== void 0) {\n constraints.color = bandViewModel.rawColor;\n }\n gd.emit(eventName, {\n points,\n event,\n constraints\n });\n }\n function createHoverLabelForCategoryHovermode(gd, rootBBox, bandElement) {\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var rectSelection = d3.select(bandElement.parentNode).select(\"rect.catrect\");\n var rectBoundingBox = rectSelection.node().getBoundingClientRect();\n var catViewModel = rectSelection.datum();\n var parcatsViewModel = catViewModel.parcatsViewModel;\n var dimensionModel = parcatsViewModel.model.dimensions[catViewModel.model.dimensionInd];\n var trace = parcatsViewModel.trace;\n var hoverCenterY = rectBoundingBox.top + rectBoundingBox.height / 2;\n var hoverCenterX, hoverLabelIdealAlign;\n if (parcatsViewModel.dimensions.length > 1 && dimensionModel.displayInd === parcatsViewModel.dimensions.length - 1) {\n hoverCenterX = rectBoundingBox.left;\n hoverLabelIdealAlign = \"left\";\n } else {\n hoverCenterX = rectBoundingBox.left + rectBoundingBox.width;\n hoverLabelIdealAlign = \"right\";\n }\n var count = catViewModel.model.count;\n var catLabel = catViewModel.model.categoryLabel;\n var prob = count / catViewModel.parcatsViewModel.model.count;\n var labels = {\n countLabel: count,\n categoryLabel: catLabel,\n probabilityLabel: prob.toFixed(3)\n };\n var hoverinfoParts = [];\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"count\") !== -1) {\n hoverinfoParts.push([\"Count:\", labels.countLabel].join(\" \"));\n }\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"probability\") !== -1) {\n hoverinfoParts.push([\"P(\" + labels.categoryLabel + \"):\", labels.probabilityLabel].join(\" \"));\n }\n var hovertext = hoverinfoParts.join(\"
\");\n return {\n trace,\n x: scaleX * (hoverCenterX - rootBBox.left),\n y: scaleY * (hoverCenterY - rootBBox.top),\n text: hovertext,\n color: \"lightgray\",\n borderColor: \"black\",\n fontFamily: 'Monaco, \"Courier New\", monospace',\n fontSize: 12,\n fontColor: \"black\",\n idealAlign: hoverLabelIdealAlign,\n hovertemplate: trace.hovertemplate,\n hovertemplateLabels: labels,\n eventData: [{\n data: trace._input,\n fullData: trace,\n count,\n category: catLabel,\n probability: prob\n }]\n };\n }\n function createHoverLabelForDimensionHovermode(gd, rootBBox, bandElement) {\n var allHoverlabels = [];\n d3.select(bandElement.parentNode.parentNode).selectAll(\"g.category\").select(\"rect.catrect\").each(function() {\n var bandNode = this;\n allHoverlabels.push(createHoverLabelForCategoryHovermode(gd, rootBBox, bandNode));\n });\n return allHoverlabels;\n }\n function createHoverLabelForColorHovermode(gd, rootBBox, bandElement) {\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var bandBoundingBox = bandElement.getBoundingClientRect();\n var bandViewModel = d3.select(bandElement).datum();\n var catViewModel = bandViewModel.categoryViewModel;\n var parcatsViewModel = catViewModel.parcatsViewModel;\n var dimensionModel = parcatsViewModel.model.dimensions[catViewModel.model.dimensionInd];\n var trace = parcatsViewModel.trace;\n var hoverCenterY = bandBoundingBox.y + bandBoundingBox.height / 2;\n var hoverCenterX, hoverLabelIdealAlign;\n if (parcatsViewModel.dimensions.length > 1 && dimensionModel.displayInd === parcatsViewModel.dimensions.length - 1) {\n hoverCenterX = bandBoundingBox.left;\n hoverLabelIdealAlign = \"left\";\n } else {\n hoverCenterX = bandBoundingBox.left + bandBoundingBox.width;\n hoverLabelIdealAlign = \"right\";\n }\n var catLabel = catViewModel.model.categoryLabel;\n var totalCount = bandViewModel.parcatsViewModel.model.count;\n var bandColorCount = 0;\n bandViewModel.categoryViewModel.bands.forEach(function(b) {\n if (b.color === bandViewModel.color) {\n bandColorCount += b.count;\n }\n });\n var catCount = catViewModel.model.count;\n var colorCount = 0;\n parcatsViewModel.pathSelection.each(\n /** @param {PathViewModel} pathViewModel */\n function(pathViewModel) {\n if (pathViewModel.model.color === bandViewModel.color) {\n colorCount += pathViewModel.model.count;\n }\n }\n );\n var pColorAndCat = bandColorCount / totalCount;\n var pCatGivenColor = bandColorCount / colorCount;\n var pColorGivenCat = bandColorCount / catCount;\n var labels = {\n countLabel: bandColorCount,\n categoryLabel: catLabel,\n probabilityLabel: pColorAndCat.toFixed(3)\n };\n var hoverinfoParts = [];\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"count\") !== -1) {\n hoverinfoParts.push([\"Count:\", labels.countLabel].join(\" \"));\n }\n if (catViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"probability\") !== -1) {\n hoverinfoParts.push(\"P(color \\u2229 \" + catLabel + \"): \" + labels.probabilityLabel);\n hoverinfoParts.push(\"P(\" + catLabel + \" | color): \" + pCatGivenColor.toFixed(3));\n hoverinfoParts.push(\"P(color | \" + catLabel + \"): \" + pColorGivenCat.toFixed(3));\n }\n var hovertext = hoverinfoParts.join(\"
\");\n var textColor = tinycolor.mostReadable(bandViewModel.color, [\"black\", \"white\"]);\n return {\n trace,\n x: scaleX * (hoverCenterX - rootBBox.left),\n y: scaleY * (hoverCenterY - rootBBox.top),\n // name: 'NAME',\n text: hovertext,\n color: bandViewModel.color,\n borderColor: \"black\",\n fontFamily: 'Monaco, \"Courier New\", monospace',\n fontColor: textColor,\n fontSize: 10,\n idealAlign: hoverLabelIdealAlign,\n hovertemplate: trace.hovertemplate,\n hovertemplateLabels: labels,\n eventData: [{\n data: trace._input,\n fullData: trace,\n category: catLabel,\n count: totalCount,\n probability: pColorAndCat,\n categorycount: catCount,\n colorcount: colorCount,\n bandcolorcount: bandColorCount\n }]\n };\n }\n function mouseoverCategoryBand(bandViewModel) {\n if (!bandViewModel.parcatsViewModel.dragDimension) {\n if (bandViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var mouseY = d3.mouse(this)[1];\n if (mouseY < -1) {\n return;\n }\n var gd = bandViewModel.parcatsViewModel.graphDiv;\n var fullLayout = gd._fullLayout;\n var rootBBox = fullLayout._paperdiv.node().getBoundingClientRect();\n var hoveron = bandViewModel.parcatsViewModel.hoveron;\n var bandElement = this;\n if (hoveron === \"color\") {\n styleForColorHovermode(bandElement);\n emitPointsEventColorHovermode(bandElement, \"plotly_hover\", d3.event);\n } else {\n styleForCategoryHovermode(bandElement);\n emitPointsEventCategoryHovermode(bandElement, \"plotly_hover\", d3.event);\n }\n if (bandViewModel.parcatsViewModel.hoverinfoItems.indexOf(\"none\") === -1) {\n var hoverItems;\n if (hoveron === \"category\") {\n hoverItems = createHoverLabelForCategoryHovermode(gd, rootBBox, bandElement);\n } else if (hoveron === \"color\") {\n hoverItems = createHoverLabelForColorHovermode(gd, rootBBox, bandElement);\n } else if (hoveron === \"dimension\") {\n hoverItems = createHoverLabelForDimensionHovermode(gd, rootBBox, bandElement);\n }\n if (hoverItems) {\n Fx.loneHover(hoverItems, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n }\n }\n }\n }\n }\n function mouseoutCategory(bandViewModel) {\n var parcatsViewModel = bandViewModel.parcatsViewModel;\n if (!parcatsViewModel.dragDimension) {\n stylePathsNoHover(parcatsViewModel.pathSelection);\n styleCategoriesNoHover(parcatsViewModel.dimensionSelection.selectAll(\"g.category\"));\n styleBandsNoHover(parcatsViewModel.dimensionSelection.selectAll(\"g.category\").selectAll(\"rect.bandrect\"));\n Fx.loneUnhover(parcatsViewModel.graphDiv._fullLayout._hoverlayer.node());\n parcatsViewModel.pathSelection.sort(compareRawColor);\n if (parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n var hoveron = bandViewModel.parcatsViewModel.hoveron;\n var bandElement = this;\n if (hoveron === \"color\") {\n emitPointsEventColorHovermode(bandElement, \"plotly_unhover\", d3.event);\n } else {\n emitPointsEventCategoryHovermode(bandElement, \"plotly_unhover\", d3.event);\n }\n }\n }\n }\n function dragDimensionStart(d) {\n if (d.parcatsViewModel.arrangement === \"fixed\") {\n return;\n }\n d.dragDimensionDisplayInd = d.model.displayInd;\n d.initialDragDimensionDisplayInds = d.parcatsViewModel.model.dimensions.map(function(d2) {\n return d2.displayInd;\n });\n d.dragHasMoved = false;\n d.dragCategoryDisplayInd = null;\n d3.select(this).selectAll(\"g.category\").select(\"rect.catrect\").each(\n /** @param {CategoryViewModel} catViewModel */\n function(catViewModel) {\n var catMouseX = d3.mouse(this)[0];\n var catMouseY = d3.mouse(this)[1];\n if (-2 <= catMouseX && catMouseX <= catViewModel.width + 2 && -2 <= catMouseY && catMouseY <= catViewModel.height + 2) {\n d.dragCategoryDisplayInd = catViewModel.model.displayInd;\n d.initialDragCategoryDisplayInds = d.model.categories.map(function(c) {\n return c.displayInd;\n });\n catViewModel.model.dragY = catViewModel.y;\n Lib.raiseToTop(this.parentNode);\n d3.select(this.parentNode).selectAll(\"rect.bandrect\").each(function(bandViewModel) {\n if (bandViewModel.y < catMouseY && catMouseY <= bandViewModel.y + bandViewModel.height) {\n d.potentialClickBand = this;\n }\n });\n }\n }\n );\n d.parcatsViewModel.dragDimension = d;\n Fx.loneUnhover(d.parcatsViewModel.graphDiv._fullLayout._hoverlayer.node());\n }\n function dragDimension(d) {\n if (d.parcatsViewModel.arrangement === \"fixed\") {\n return;\n }\n d.dragHasMoved = true;\n if (d.dragDimensionDisplayInd === null) {\n return;\n }\n var dragDimInd = d.dragDimensionDisplayInd;\n var prevDimInd = dragDimInd - 1;\n var nextDimInd = dragDimInd + 1;\n var dragDimension2 = d.parcatsViewModel.dimensions[dragDimInd];\n if (d.dragCategoryDisplayInd !== null) {\n var dragCategory = dragDimension2.categories[d.dragCategoryDisplayInd];\n dragCategory.model.dragY += d3.event.dy;\n var categoryY = dragCategory.model.dragY;\n var catDisplayInd = dragCategory.model.displayInd;\n var dimCategoryViews = dragDimension2.categories;\n var catAbove = dimCategoryViews[catDisplayInd - 1];\n var catBelow = dimCategoryViews[catDisplayInd + 1];\n if (catAbove !== void 0) {\n if (categoryY < catAbove.y + catAbove.height / 2) {\n dragCategory.model.displayInd = catAbove.model.displayInd;\n catAbove.model.displayInd = catDisplayInd;\n }\n }\n if (catBelow !== void 0) {\n if (categoryY + dragCategory.height > catBelow.y + catBelow.height / 2) {\n dragCategory.model.displayInd = catBelow.model.displayInd;\n catBelow.model.displayInd = catDisplayInd;\n }\n }\n d.dragCategoryDisplayInd = dragCategory.model.displayInd;\n }\n if (d.dragCategoryDisplayInd === null || d.parcatsViewModel.arrangement === \"freeform\") {\n dragDimension2.model.dragX = d3.event.x;\n var prevDimension = d.parcatsViewModel.dimensions[prevDimInd];\n var nextDimension = d.parcatsViewModel.dimensions[nextDimInd];\n if (prevDimension !== void 0) {\n if (dragDimension2.model.dragX < prevDimension.x + prevDimension.width) {\n dragDimension2.model.displayInd = prevDimension.model.displayInd;\n prevDimension.model.displayInd = dragDimInd;\n }\n }\n if (nextDimension !== void 0) {\n if (dragDimension2.model.dragX + dragDimension2.width > nextDimension.x) {\n dragDimension2.model.displayInd = nextDimension.model.displayInd;\n nextDimension.model.displayInd = d.dragDimensionDisplayInd;\n }\n }\n d.dragDimensionDisplayInd = dragDimension2.model.displayInd;\n }\n updateDimensionViewModels(d.parcatsViewModel);\n updatePathViewModels(d.parcatsViewModel);\n updateSvgCategories(d.parcatsViewModel);\n updateSvgPaths(d.parcatsViewModel);\n }\n function dragDimensionEnd(d) {\n if (d.parcatsViewModel.arrangement === \"fixed\") {\n return;\n }\n if (d.dragDimensionDisplayInd === null) {\n return;\n }\n d3.select(this).selectAll(\"text\").attr(\"font-weight\", \"normal\");\n var restyleData = {};\n var traceInd = getTraceIndex(d.parcatsViewModel);\n var finalDragDimensionDisplayInds = d.parcatsViewModel.model.dimensions.map(function(d2) {\n return d2.displayInd;\n });\n var anyDimsReordered = d.initialDragDimensionDisplayInds.some(function(initDimDisplay, dimInd) {\n return initDimDisplay !== finalDragDimensionDisplayInds[dimInd];\n });\n if (anyDimsReordered) {\n finalDragDimensionDisplayInds.forEach(function(finalDimDisplay, dimInd) {\n var containerInd = d.parcatsViewModel.model.dimensions[dimInd].containerInd;\n restyleData[\"dimensions[\" + containerInd + \"].displayindex\"] = finalDimDisplay;\n });\n }\n var anyCatsReordered = false;\n if (d.dragCategoryDisplayInd !== null) {\n var finalDragCategoryDisplayInds = d.model.categories.map(function(c) {\n return c.displayInd;\n });\n anyCatsReordered = d.initialDragCategoryDisplayInds.some(function(initCatDisplay, catInd) {\n return initCatDisplay !== finalDragCategoryDisplayInds[catInd];\n });\n if (anyCatsReordered) {\n var sortedCategoryModels = d.model.categories.slice().sort(\n function(a, b) {\n return a.displayInd - b.displayInd;\n }\n );\n var newCategoryArray = sortedCategoryModels.map(function(v) {\n return v.categoryValue;\n });\n var newCategoryLabels = sortedCategoryModels.map(function(v) {\n return v.categoryLabel;\n });\n restyleData[\"dimensions[\" + d.model.containerInd + \"].categoryarray\"] = [newCategoryArray];\n restyleData[\"dimensions[\" + d.model.containerInd + \"].ticktext\"] = [newCategoryLabels];\n restyleData[\"dimensions[\" + d.model.containerInd + \"].categoryorder\"] = \"array\";\n }\n }\n if (d.parcatsViewModel.hoverinfoItems.indexOf(\"skip\") === -1) {\n if (!d.dragHasMoved && d.potentialClickBand) {\n if (d.parcatsViewModel.hoveron === \"color\") {\n emitPointsEventColorHovermode(d.potentialClickBand, \"plotly_click\", d3.event.sourceEvent);\n } else {\n emitPointsEventCategoryHovermode(d.potentialClickBand, \"plotly_click\", d3.event.sourceEvent);\n }\n }\n }\n d.model.dragX = null;\n if (d.dragCategoryDisplayInd !== null) {\n var dragCategory = d.parcatsViewModel.dimensions[d.dragDimensionDisplayInd].categories[d.dragCategoryDisplayInd];\n dragCategory.model.dragY = null;\n d.dragCategoryDisplayInd = null;\n }\n d.dragDimensionDisplayInd = null;\n d.parcatsViewModel.dragDimension = null;\n d.dragHasMoved = null;\n d.potentialClickBand = null;\n updateDimensionViewModels(d.parcatsViewModel);\n updatePathViewModels(d.parcatsViewModel);\n var transition = d3.transition().duration(300).ease(\"cubic-in-out\");\n transition.each(function() {\n updateSvgCategories(d.parcatsViewModel, true);\n updateSvgPaths(d.parcatsViewModel, true);\n }).each(\"end\", function() {\n if (anyDimsReordered || anyCatsReordered) {\n Plotly.restyle(d.parcatsViewModel.graphDiv, restyleData, [traceInd]);\n }\n });\n }\n function getTraceIndex(parcatsViewModel) {\n var traceInd;\n var allTraces = parcatsViewModel.graphDiv._fullData;\n for (var i = 0; i < allTraces.length; i++) {\n if (parcatsViewModel.key === allTraces[i].uid) {\n traceInd = i;\n break;\n }\n }\n return traceInd;\n }\n function updateSvgPaths(parcatsViewModel, hasTransition) {\n if (hasTransition === void 0) {\n hasTransition = false;\n }\n function transition(selection) {\n return hasTransition ? selection.transition() : selection;\n }\n parcatsViewModel.pathSelection.data(function(d) {\n return d.paths;\n }, key);\n transition(parcatsViewModel.pathSelection).attr(\"d\", function(d) {\n return d.svgD;\n });\n }\n function updateSvgCategories(parcatsViewModel, hasTransition) {\n if (hasTransition === void 0) {\n hasTransition = false;\n }\n function transition(selection) {\n return hasTransition ? selection.transition() : selection;\n }\n parcatsViewModel.dimensionSelection.data(function(d) {\n return d.dimensions;\n }, key);\n var categorySelection = parcatsViewModel.dimensionSelection.selectAll(\"g.category\").data(function(d) {\n return d.categories;\n }, key);\n transition(parcatsViewModel.dimensionSelection).attr(\"transform\", function(d) {\n return strTranslate(d.x, 0);\n });\n transition(categorySelection).attr(\"transform\", function(d) {\n return strTranslate(0, d.y);\n });\n var dimLabelSelection = categorySelection.select(\".dimlabel\");\n dimLabelSelection.text(function(d, i) {\n if (i === 0) {\n return d.parcatsViewModel.model.dimensions[d.model.dimensionInd].dimensionLabel;\n } else {\n return null;\n }\n });\n var catLabelSelection = categorySelection.select(\".catlabel\");\n catLabelSelection.attr(\n \"text-anchor\",\n function(d) {\n if (catInRightDim(d)) {\n return \"start\";\n } else {\n return \"end\";\n }\n }\n ).attr(\n \"x\",\n function(d) {\n if (catInRightDim(d)) {\n return d.width + 5;\n } else {\n return -5;\n }\n }\n ).each(function(d) {\n var newX;\n var newAnchor;\n if (catInRightDim(d)) {\n newX = d.width + 5;\n newAnchor = \"start\";\n } else {\n newX = -5;\n newAnchor = \"end\";\n }\n d3.select(this).selectAll(\"tspan\").attr(\"x\", newX).attr(\"text-anchor\", newAnchor);\n });\n var bandSelection = categorySelection.selectAll(\"rect.bandrect\").data(\n /** @param {CategoryViewModel} catViewModel*/\n function(catViewModel) {\n return catViewModel.bands;\n },\n key\n );\n var bandsSelectionEnter = bandSelection.enter().append(\"rect\").attr(\"class\", \"bandrect\").attr(\"cursor\", \"move\").attr(\"stroke-opacity\", 0).attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"fill-opacity\", 0);\n bandSelection.attr(\"fill\", function(d) {\n return d.color;\n }).attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n }).attr(\"y\", function(d) {\n return d.y;\n });\n styleBandsNoHover(bandsSelectionEnter);\n bandSelection.each(function() {\n Lib.raiseToTop(this);\n });\n bandSelection.exit().remove();\n }\n function createParcatsViewModel(graphDiv, layout, wrappedParcatsModel) {\n var parcatsModel = wrappedParcatsModel[0];\n var margin = layout.margin || { l: 80, r: 80, t: 100, b: 80 };\n var trace = parcatsModel.trace;\n var domain = trace.domain;\n var figureWidth = layout.width;\n var figureHeight = layout.height;\n var traceWidth = Math.floor(figureWidth * (domain.x[1] - domain.x[0]));\n var traceHeight = Math.floor(figureHeight * (domain.y[1] - domain.y[0]));\n var traceX = domain.x[0] * figureWidth + margin.l;\n var traceY = layout.height - domain.y[1] * layout.height + margin.t;\n var pathShape = trace.line.shape;\n var hoverinfoItems;\n if (trace.hoverinfo === \"all\") {\n hoverinfoItems = [\"count\", \"probability\"];\n } else {\n hoverinfoItems = (trace.hoverinfo || \"\").split(\"+\");\n }\n var parcatsViewModel = {\n trace,\n key: trace.uid,\n model: parcatsModel,\n x: traceX,\n y: traceY,\n width: traceWidth,\n height: traceHeight,\n hoveron: trace.hoveron,\n hoverinfoItems,\n arrangement: trace.arrangement,\n bundlecolors: trace.bundlecolors,\n sortpaths: trace.sortpaths,\n labelfont: trace.labelfont,\n categorylabelfont: trace.tickfont,\n pathShape,\n dragDimension: null,\n margin,\n paths: [],\n dimensions: [],\n graphDiv,\n traceSelection: null,\n pathSelection: null,\n dimensionSelection: null\n };\n if (parcatsModel.dimensions) {\n updateDimensionViewModels(parcatsViewModel);\n updatePathViewModels(parcatsViewModel);\n }\n return parcatsViewModel;\n }\n function buildSvgPath(leftXPositions, pathYs, dimWidths, pathHeight, curvature) {\n var xRefPoints1 = [];\n var xRefPoints2 = [];\n var refInterpolator;\n var d;\n for (d = 0; d < dimWidths.length - 1; d++) {\n refInterpolator = interpolateNumber(dimWidths[d] + leftXPositions[d], leftXPositions[d + 1]);\n xRefPoints1.push(refInterpolator(curvature));\n xRefPoints2.push(refInterpolator(1 - curvature));\n }\n var svgD = \"M \" + leftXPositions[0] + \",\" + pathYs[0];\n svgD += \"l\" + dimWidths[0] + \",0 \";\n for (d = 1; d < dimWidths.length; d++) {\n svgD += \"C\" + xRefPoints1[d - 1] + \",\" + pathYs[d - 1] + \" \" + xRefPoints2[d - 1] + \",\" + pathYs[d] + \" \" + leftXPositions[d] + \",\" + pathYs[d];\n svgD += \"l\" + dimWidths[d] + \",0 \";\n }\n svgD += \"l0,\" + pathHeight + \" \";\n svgD += \"l -\" + dimWidths[dimWidths.length - 1] + \",0 \";\n for (d = dimWidths.length - 2; d >= 0; d--) {\n svgD += \"C\" + xRefPoints2[d] + \",\" + (pathYs[d + 1] + pathHeight) + \" \" + xRefPoints1[d] + \",\" + (pathYs[d] + pathHeight) + \" \" + (leftXPositions[d] + dimWidths[d]) + \",\" + (pathYs[d] + pathHeight);\n svgD += \"l-\" + dimWidths[d] + \",0 \";\n }\n svgD += \"Z\";\n return svgD;\n }\n function updatePathViewModels(parcatsViewModel) {\n var dimensionViewModels = parcatsViewModel.dimensions;\n var parcatsModel = parcatsViewModel.model;\n var nextYPositions = dimensionViewModels.map(\n function(d2) {\n return d2.categories.map(\n function(c) {\n return c.y;\n }\n );\n }\n );\n var catToDisplayIndPerDim = parcatsViewModel.model.dimensions.map(\n function(d2) {\n return d2.categories.map(function(c) {\n return c.displayInd;\n });\n }\n );\n var dimToDisplayInd = parcatsViewModel.model.dimensions.map(function(d2) {\n return d2.displayInd;\n });\n var displayToDimInd = parcatsViewModel.dimensions.map(function(d2) {\n return d2.model.dimensionInd;\n });\n var leftXPositions = dimensionViewModels.map(\n function(d2) {\n return d2.x;\n }\n );\n var dimWidths = dimensionViewModels.map(function(d2) {\n return d2.width;\n });\n var pathModels = [];\n for (var p in parcatsModel.paths) {\n if (parcatsModel.paths.hasOwnProperty(p)) {\n pathModels.push(parcatsModel.paths[p]);\n }\n }\n function pathDisplayCategoryInds(pathModel2) {\n var dimensionInds = pathModel2.categoryInds.map(function(catInd2, dimInd) {\n return catToDisplayIndPerDim[dimInd][catInd2];\n });\n var displayInds = displayToDimInd.map(function(dimInd) {\n return dimensionInds[dimInd];\n });\n return displayInds;\n }\n pathModels.sort(function(v1, v2) {\n var sortArray1 = pathDisplayCategoryInds(v1);\n var sortArray2 = pathDisplayCategoryInds(v2);\n if (parcatsViewModel.sortpaths === \"backward\") {\n sortArray1.reverse();\n sortArray2.reverse();\n }\n sortArray1.push(v1.valueInds[0]);\n sortArray2.push(v2.valueInds[0]);\n if (parcatsViewModel.bundlecolors) {\n sortArray1.unshift(v1.rawColor);\n sortArray2.unshift(v2.rawColor);\n }\n if (sortArray1 < sortArray2) {\n return -1;\n }\n if (sortArray1 > sortArray2) {\n return 1;\n }\n return 0;\n });\n var pathViewModels = new Array(pathModels.length);\n var totalCount = dimensionViewModels[0].model.count;\n var totalHeight = dimensionViewModels[0].categories.map(function(c) {\n return c.height;\n }).reduce(function(v1, v2) {\n return v1 + v2;\n });\n for (var pathNumber = 0; pathNumber < pathModels.length; pathNumber++) {\n var pathModel = pathModels[pathNumber];\n var pathHeight;\n if (totalCount > 0) {\n pathHeight = totalHeight * (pathModel.count / totalCount);\n } else {\n pathHeight = 0;\n }\n var pathYs = new Array(nextYPositions.length);\n for (var d = 0; d < pathModel.categoryInds.length; d++) {\n var catInd = pathModel.categoryInds[d];\n var catDisplayInd = catToDisplayIndPerDim[d][catInd];\n var dimDisplayInd = dimToDisplayInd[d];\n pathYs[dimDisplayInd] = nextYPositions[dimDisplayInd][catDisplayInd];\n nextYPositions[dimDisplayInd][catDisplayInd] += pathHeight;\n var catViewModle = parcatsViewModel.dimensions[dimDisplayInd].categories[catDisplayInd];\n var numBands = catViewModle.bands.length;\n var lastCatBand = catViewModle.bands[numBands - 1];\n if (lastCatBand === void 0 || pathModel.rawColor !== lastCatBand.rawColor) {\n var bandY = lastCatBand === void 0 ? 0 : lastCatBand.y + lastCatBand.height;\n catViewModle.bands.push({\n key: bandY,\n color: pathModel.color,\n rawColor: pathModel.rawColor,\n height: pathHeight,\n width: catViewModle.width,\n count: pathModel.count,\n y: bandY,\n categoryViewModel: catViewModle,\n parcatsViewModel\n });\n } else {\n var currentBand = catViewModle.bands[numBands - 1];\n currentBand.height += pathHeight;\n currentBand.count += pathModel.count;\n }\n }\n var svgD;\n if (parcatsViewModel.pathShape === \"hspline\") {\n svgD = buildSvgPath(leftXPositions, pathYs, dimWidths, pathHeight, 0.5);\n } else {\n svgD = buildSvgPath(leftXPositions, pathYs, dimWidths, pathHeight, 0);\n }\n pathViewModels[pathNumber] = {\n key: pathModel.valueInds[0],\n model: pathModel,\n height: pathHeight,\n leftXs: leftXPositions,\n topYs: pathYs,\n dimWidths,\n svgD,\n parcatsViewModel\n };\n }\n parcatsViewModel.paths = pathViewModels;\n }\n function updateDimensionViewModels(parcatsViewModel) {\n var dimensionsIndInfo = parcatsViewModel.model.dimensions.map(function(d) {\n return { displayInd: d.displayInd, dimensionInd: d.dimensionInd };\n });\n dimensionsIndInfo.sort(function(a, b) {\n return a.displayInd - b.displayInd;\n });\n var dimensions = [];\n for (var displayInd in dimensionsIndInfo) {\n var dimensionInd = dimensionsIndInfo[displayInd].dimensionInd;\n var dimModel = parcatsViewModel.model.dimensions[dimensionInd];\n dimensions.push(createDimensionViewModel(parcatsViewModel, dimModel));\n }\n parcatsViewModel.dimensions = dimensions;\n }\n function createDimensionViewModel(parcatsViewModel, dimensionModel) {\n var categoryLabelPad = 40;\n var dimWidth = 16;\n var numDimensions = parcatsViewModel.model.dimensions.length;\n var displayInd = dimensionModel.displayInd;\n var dimDx;\n var dimX0;\n var dimX;\n if (numDimensions > 1) {\n dimDx = (parcatsViewModel.width - 2 * categoryLabelPad - dimWidth) / (numDimensions - 1);\n } else {\n dimDx = 0;\n }\n dimX0 = categoryLabelPad;\n dimX = dimX0 + dimDx * displayInd;\n var categories = [];\n var maxCats = parcatsViewModel.model.maxCats;\n var numCats = dimensionModel.categories.length;\n var catSpacing = 8;\n var totalCount = dimensionModel.count;\n var totalHeight = parcatsViewModel.height - catSpacing * (maxCats - 1);\n var nextCatHeight;\n var nextCatModel;\n var nextCat;\n var catInd;\n var catDisplayInd;\n var nextCatY = (maxCats - numCats) * catSpacing / 2;\n var categoryIndInfo = dimensionModel.categories.map(function(c) {\n return { displayInd: c.displayInd, categoryInd: c.categoryInd };\n });\n categoryIndInfo.sort(function(a, b) {\n return a.displayInd - b.displayInd;\n });\n for (catDisplayInd = 0; catDisplayInd < numCats; catDisplayInd++) {\n catInd = categoryIndInfo[catDisplayInd].categoryInd;\n nextCatModel = dimensionModel.categories[catInd];\n if (totalCount > 0) {\n nextCatHeight = nextCatModel.count / totalCount * totalHeight;\n } else {\n nextCatHeight = 0;\n }\n nextCat = {\n key: nextCatModel.valueInds[0],\n model: nextCatModel,\n width: dimWidth,\n height: nextCatHeight,\n y: nextCatModel.dragY !== null ? nextCatModel.dragY : nextCatY,\n bands: [],\n parcatsViewModel\n };\n nextCatY = nextCatY + nextCatHeight + catSpacing;\n categories.push(nextCat);\n }\n return {\n key: dimensionModel.dimensionInd,\n x: dimensionModel.dragX !== null ? dimensionModel.dragX : dimX,\n y: 0,\n width: dimWidth,\n model: dimensionModel,\n categories,\n parcatsViewModel,\n dragCategoryDisplayInd: null,\n dragDimensionDisplayInd: null,\n initialDragDimensionDisplayInds: null,\n initialDragCategoryDisplayInds: null,\n dragHasMoved: null,\n potentialClickBand: null\n };\n }\n }\n });\n\n // src/traces/parcats/plot.js\n var require_plot22 = __commonJS({\n \"src/traces/parcats/plot.js\"(exports, module) {\n \"use strict\";\n var parcats = require_parcats();\n module.exports = function plot(graphDiv, parcatsModels, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = graphDiv._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n parcats(\n graphDiv,\n svg,\n parcatsModels,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n transitionOpts,\n makeOnCompleteCallback\n );\n };\n }\n });\n\n // src/traces/parcats/base_plot.js\n var require_base_plot8 = __commonJS({\n \"src/traces/parcats/base_plot.js\"(exports) {\n \"use strict\";\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var parcatsPlot = require_plot22();\n var PARCATS = \"parcats\";\n exports.name = PARCATS;\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n var cdModuleAndOthers = getModuleCalcData(gd.calcdata, PARCATS);\n if (cdModuleAndOthers.length) {\n var calcData = cdModuleAndOthers[0];\n parcatsPlot(gd, calcData, transitionOpts, makeOnCompleteCallback);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = oldFullLayout._has && oldFullLayout._has(\"parcats\");\n var hasTable = newFullLayout._has && newFullLayout._has(\"parcats\");\n if (hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll(\".parcats\").remove();\n }\n };\n }\n });\n\n // src/traces/parcats/index.js\n var require_parcats2 = __commonJS({\n \"src/traces/parcats/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes53(),\n supplyDefaults: require_defaults49(),\n calc: require_calc32(),\n plot: require_plot22(),\n colorbar: {\n container: \"line\",\n min: \"cmin\",\n max: \"cmax\"\n },\n moduleType: \"trace\",\n name: \"parcats\",\n basePlotModule: require_base_plot8(),\n categories: [\"noOpacity\"],\n meta: {}\n };\n }\n });\n\n // lib/parcats.js\n var require_parcats3 = __commonJS({\n \"lib/parcats.js\"(exports, module) {\n \"use strict\";\n module.exports = require_parcats2();\n }\n });\n\n // src/plots/mapbox/constants.js\n var require_constants25 = __commonJS({\n \"src/plots/mapbox/constants.js\"(exports, module) {\n \"use strict\";\n var sortObjectKeys = require_sort_object_keys();\n var requiredVersion = \"1.13.4\";\n var OSM = '\\xA9 OpenStreetMap contributors';\n var carto = [\n '\\xA9 Carto',\n OSM\n ].join(\" \");\n var stamenTerrainOrToner = [\n 'Map tiles by Stamen Design',\n 'under CC BY 3.0',\n \"|\",\n 'Data by OpenStreetMap contributors',\n 'under ODbL'\n ].join(\" \");\n var stamenWaterColor = [\n 'Map tiles by Stamen Design',\n 'under CC BY 3.0',\n \"|\",\n 'Data by OpenStreetMap contributors',\n 'under CC BY SA'\n ].join(\" \");\n var stylesNonMapbox = {\n \"open-street-map\": {\n id: \"osm\",\n version: 8,\n sources: {\n \"plotly-osm-tiles\": {\n type: \"raster\",\n attribution: OSM,\n tiles: [\n \"https://a.tile.openstreetmap.org/{z}/{x}/{y}.png\",\n \"https://b.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n ],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-osm-tiles\",\n type: \"raster\",\n source: \"plotly-osm-tiles\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"white-bg\": {\n id: \"white-bg\",\n version: 8,\n sources: {},\n layers: [{\n id: \"white-bg\",\n type: \"background\",\n paint: { \"background-color\": \"#FFFFFF\" },\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"carto-positron\": {\n id: \"carto-positron\",\n version: 8,\n sources: {\n \"plotly-carto-positron\": {\n type: \"raster\",\n attribution: carto,\n tiles: [\"https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-carto-positron\",\n type: \"raster\",\n source: \"plotly-carto-positron\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"carto-darkmatter\": {\n id: \"carto-darkmatter\",\n version: 8,\n sources: {\n \"plotly-carto-darkmatter\": {\n type: \"raster\",\n attribution: carto,\n tiles: [\"https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-carto-darkmatter\",\n type: \"raster\",\n source: \"plotly-carto-darkmatter\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"stamen-terrain\": {\n id: \"stamen-terrain\",\n version: 8,\n sources: {\n \"plotly-stamen-terrain\": {\n type: \"raster\",\n attribution: stamenTerrainOrToner,\n tiles: [\"https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png?api_key=\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-stamen-terrain\",\n type: \"raster\",\n source: \"plotly-stamen-terrain\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"stamen-toner\": {\n id: \"stamen-toner\",\n version: 8,\n sources: {\n \"plotly-stamen-toner\": {\n type: \"raster\",\n attribution: stamenTerrainOrToner,\n tiles: [\"https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key=\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-stamen-toner\",\n type: \"raster\",\n source: \"plotly-stamen-toner\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"stamen-watercolor\": {\n id: \"stamen-watercolor\",\n version: 8,\n sources: {\n \"plotly-stamen-watercolor\": {\n type: \"raster\",\n attribution: stamenWaterColor,\n tiles: [\"https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key=\"],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-stamen-watercolor\",\n type: \"raster\",\n source: \"plotly-stamen-watercolor\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n }\n };\n var styleValuesNonMapbox = sortObjectKeys(stylesNonMapbox);\n module.exports = {\n requiredVersion,\n styleUrlPrefix: \"mapbox://styles/mapbox/\",\n styleUrlSuffix: \"v9\",\n styleValuesMapbox: [\"basic\", \"streets\", \"outdoors\", \"light\", \"dark\", \"satellite\", \"satellite-streets\"],\n styleValueDflt: \"basic\",\n stylesNonMapbox,\n styleValuesNonMapbox,\n traceLayerPrefix: \"plotly-trace-layer-\",\n layoutLayerPrefix: \"plotly-layout-layer-\",\n wrongVersionErrorMsg: [\n \"Your custom plotly.js bundle is not using the correct mapbox-gl version\",\n \"Please install @plotly/mapbox-gl@\" + requiredVersion + \".\"\n ].join(\"\\n\"),\n noAccessTokenErrorMsg: [\n \"Missing Mapbox access token.\",\n \"Mapbox trace type require a Mapbox access token to be registered.\",\n \"For example:\",\n \" Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });\",\n \"More info here: https://www.mapbox.com/help/define-access-token/\"\n ].join(\"\\n\"),\n missingStyleErrorMsg: [\n \"No valid mapbox style found, please set `mapbox.style` to one of:\",\n styleValuesNonMapbox.join(\", \"),\n \"or register a Mapbox access token to use a Mapbox-served style.\"\n ].join(\"\\n\"),\n multipleTokensErrorMsg: [\n \"Set multiple mapbox access token across different mapbox subplot,\",\n \"using first token found as mapbox-gl does not allow multipleaccess tokens on the same page.\"\n ].join(\"\\n\"),\n mapOnErrorMsg: \"Mapbox error.\",\n // Mapbox logo for static export\n mapboxLogo: {\n path0: \"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z\",\n path1: \"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z\",\n path2: \"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z\",\n polygon: \"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34\"\n },\n // a subset of node_modules/mapbox-gl/dist/mapbox-gl.css\n styleRules: {\n map: \"overflow:hidden;position:relative;\",\n \"missing-css\": \"display:none;\",\n canary: \"background-color:salmon;\",\n // Reusing CSS directives from: https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.1/mapbox-gl.css\n \"ctrl-bottom-left\": \"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;\",\n \"ctrl-bottom-right\": \"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;\",\n ctrl: \"clear: both; pointer-events: auto; transform: translate(0, 0);\",\n // Compact ctrl\n \"ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner\": \"display: none;\",\n \"ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner\": \"display: block; margin-top:2px\",\n \"ctrl-attrib.mapboxgl-compact:hover\": \"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;\",\n \"ctrl-attrib.mapboxgl-compact::after\": `content: \"\"; cursor: pointer; position: absolute; background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\"%3E %3Cpath fill=\"%23333333\" fill-rule=\"evenodd\" d=\"M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0\"/%3E %3C/svg%3E'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;`,\n \"ctrl-attrib.mapboxgl-compact\": \"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;\",\n \"ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after\": \"bottom: 0; right: 0\",\n \"ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after\": \"bottom: 0; left: 0\",\n \"ctrl-bottom-left .mapboxgl-ctrl\": \"margin: 0 0 10px 10px; float: left;\",\n \"ctrl-bottom-right .mapboxgl-ctrl\": \"margin: 0 10px 10px 0; float: right;\",\n \"ctrl-attrib\": \"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px\",\n \"ctrl-attrib a\": \"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px\",\n \"ctrl-attrib a:hover\": \"color: inherit; text-decoration: underline;\",\n \"ctrl-attrib .mapbox-improve-map\": \"font-weight: bold; margin-left: 2px;\",\n \"attrib-empty\": \"display: none;\",\n // Compact Mapbox logo without text\n \"ctrl-logo\": `display:block; width: 21px; height: 21px; background-image: url('data:image/svg+xml;charset=utf-8,%3C?xml version=\"1.0\" encoding=\"utf-8\"?%3E %3Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 21 21\" style=\"enable-background:new 0 0 21 21;\" xml:space=\"preserve\"%3E%3Cg transform=\"translate(0,0.01)\"%3E%3Cpath d=\"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z\" style=\"opacity:0.9;fill:%23ffffff;enable-background:new\" class=\"st0\"/%3E%3Cpath d=\"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z\" style=\"opacity:0.35;enable-background:new\" class=\"st1\"/%3E%3Cpath d=\"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z\" style=\"opacity:0.35;enable-background:new\" class=\"st1\"/%3E%3Cpolygon points=\"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 \" style=\"opacity:0.9;fill:%23ffffff;enable-background:new\" class=\"st0\"/%3E%3C/g%3E%3C/svg%3E')`\n // Mapbox logo WITH text below (commented out for now)\n // 'ctrl-logo': 'width: 85px; height: 21px; margin: 0 0 -3px -3px; display: block; background-repeat: no-repeat; cursor: pointer; background-image: url(\\'data:image/svg+xml;charset=utf-8,%3C?xml version=\"1.0\" encoding=\"utf-8\"?%3E%3Csvg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 84.49 21\" style=\"enable-background:new 0 0 84.49 21;\" xml:space=\"preserve\"%3E%3Cg%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M83.25,14.26c0,0.12-0.09,0.21-0.21,0.21h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39l-1.44,2.39 c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68L76.2,6.84 c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.4-2.35 c0.06-0.11,0.18-0.17,0.3-0.17H83c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.37,3.63l2.43,3.67 C83.24,14.18,83.25,14.22,83.25,14.26z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M66.24,9.59c-0.39-1.88-1.96-3.28-3.84-3.28c-1.03,0-2.03,0.42-2.73,1.18V3.51c0-0.13-0.1-0.23-0.23-0.23h-1.4 c-0.13,0-0.23,0.11-0.23,0.23v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.11,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.73,1.18 c1.88,0,3.45-1.41,3.84-3.29C66.37,10.79,66.37,10.18,66.24,9.59L66.24,9.59z M62.08,13c-1.32,0-2.39-1.11-2.41-2.48v-0.06 c0.02-1.38,1.09-2.48,2.41-2.48s2.42,1.12,2.42,2.51S63.41,13,62.08,13z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M71.67,6.32c-1.98-0.01-3.72,1.35-4.16,3.29c-0.13,0.59-0.13,1.19,0,1.77c0.44,1.94,2.17,3.32,4.17,3.3 c2.35,0,4.26-1.87,4.26-4.19S74.04,6.32,71.67,6.32z M71.65,13.01c-1.33,0-2.42-1.12-2.42-2.51s1.08-2.52,2.42-2.52 c1.33,0,2.42,1.12,2.42,2.51S72.99,13,71.65,13.01L71.65,13.01z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M62.08,7.98c-1.32,0-2.39,1.11-2.41,2.48v0.06C59.68,11.9,60.75,13,62.08,13s2.42-1.12,2.42-2.51 S63.41,7.98,62.08,7.98z M62.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25 c0.63,0,1.17,0.57,1.17,1.27C63.24,11.2,62.73,11.76,62.08,11.76z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M71.65,7.98c-1.33,0-2.42,1.12-2.42,2.51S70.32,13,71.65,13s2.42-1.12,2.42-2.51S72.99,7.98,71.65,7.98z M71.65,11.76c-0.64,0-1.17-0.57-1.17-1.27c0-0.7,0.53-1.26,1.17-1.26s1.17,0.57,1.17,1.27C72.82,11.21,72.29,11.76,71.65,11.76z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M45.74,6.53h-1.4c-0.13,0-0.23,0.11-0.23,0.23v0.73c-0.71-0.75-1.7-1.18-2.73-1.18 c-2.17,0-3.94,1.87-3.94,4.19s1.77,4.19,3.94,4.19c1.04,0,2.03-0.43,2.73-1.19v0.73c0,0.13,0.1,0.23,0.23,0.23h1.4 c0.13,0,0.23-0.11,0.23-0.23V6.74c0-0.12-0.09-0.22-0.22-0.22C45.75,6.53,45.75,6.53,45.74,6.53z M44.12,10.53 C44.11,11.9,43.03,13,41.71,13s-2.42-1.12-2.42-2.51s1.08-2.52,2.4-2.52c1.33,0,2.39,1.11,2.41,2.48L44.12,10.53z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M41.71,7.98c-1.33,0-2.42,1.12-2.42,2.51S40.37,13,41.71,13s2.39-1.11,2.41-2.48v-0.06 C44.1,9.09,43.03,7.98,41.71,7.98z M40.55,10.49c0-0.7,0.52-1.27,1.17-1.27c0.64,0,1.14,0.56,1.17,1.25v0.04 c-0.01,0.68-0.53,1.24-1.17,1.24C41.08,11.75,40.55,11.19,40.55,10.49z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M52.41,6.32c-1.03,0-2.03,0.42-2.73,1.18V6.75c0-0.13-0.1-0.23-0.23-0.23h-1.4c-0.13,0-0.23,0.11-0.23,0.23 v10.72c0,0.13,0.1,0.23,0.23,0.23h1.4c0.13,0,0.23-0.1,0.23-0.23V13.5c0.71,0.75,1.7,1.18,2.74,1.18c2.17,0,3.94-1.87,3.94-4.19 S54.58,6.32,52.41,6.32z M52.08,13.01c-1.32,0-2.39-1.11-2.42-2.48v-0.07c0.02-1.38,1.09-2.49,2.4-2.49c1.32,0,2.41,1.12,2.41,2.51 S53.4,13,52.08,13.01L52.08,13.01z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M52.08,7.98c-1.32,0-2.39,1.11-2.42,2.48v0.06c0.03,1.38,1.1,2.48,2.42,2.48s2.41-1.12,2.41-2.51 S53.4,7.98,52.08,7.98z M52.08,11.76c-0.63,0-1.14-0.56-1.17-1.25v-0.04c0.01-0.69,0.54-1.25,1.17-1.25c0.63,0,1.17,0.58,1.17,1.27 S52.72,11.76,52.08,11.76z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M36.08,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68c0-0.98-0.74-1.71-1.62-1.71 c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.11,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V6.74 c0.01-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03c1.09,0,2.09,0.6,2.6,1.55 c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78L36.08,14.24z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M84.34,13.59l-0.07-0.13l-1.96-2.99l1.94-2.95c0.44-0.67,0.26-1.56-0.41-2.02c-0.02,0-0.03,0-0.04-0.01 c-0.23-0.15-0.5-0.22-0.78-0.22h-1.61c-0.56,0-1.08,0.29-1.37,0.78L79.72,6.6l-0.34-0.56C79.09,5.56,78.57,5.27,78,5.27h-1.6 c-0.6,0-1.13,0.37-1.35,0.92c-2.19-1.66-5.28-1.47-7.26,0.45c-0.35,0.34-0.65,0.72-0.89,1.14c-0.9-1.62-2.58-2.72-4.5-2.72 c-0.5,0-1.01,0.07-1.48,0.23V3.51c0-0.82-0.66-1.48-1.47-1.48h-1.4c-0.81,0-1.47,0.66-1.47,1.47v3.75 c-0.95-1.36-2.5-2.18-4.17-2.19c-0.74,0-1.46,0.16-2.12,0.47c-0.24-0.17-0.54-0.26-0.84-0.26h-1.4c-0.45,0-0.87,0.21-1.15,0.56 c-0.02-0.03-0.04-0.05-0.07-0.08c-0.28-0.3-0.68-0.47-1.09-0.47h-1.39c-0.3,0-0.6,0.09-0.84,0.26c-0.67-0.3-1.39-0.46-2.12-0.46 c-1.83,0-3.43,1-4.37,2.5c-0.2-0.46-0.48-0.89-0.83-1.25c-0.8-0.81-1.89-1.25-3.02-1.25h-0.01c-0.89,0.01-1.75,0.33-2.46,0.88 c-0.74-0.57-1.64-0.88-2.57-0.88H28.1c-0.29,0-0.58,0.03-0.86,0.11c-0.28,0.06-0.56,0.16-0.82,0.28c-0.21-0.12-0.45-0.18-0.7-0.18 h-1.4c-0.82,0-1.47,0.66-1.47,1.47v7.5c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.48-0.66,1.48-1.48l0,0V9.79 c0.03-0.36,0.23-0.59,0.36-0.59c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41c0.82,0,1.47-0.66,1.47-1.47 l-0.01-4.57c0.06-0.32,0.25-0.47,0.35-0.47c0.18,0,0.38,0.18,0.38,0.47v4.57c0,0.82,0.66,1.47,1.47,1.47h1.41 c0.82,0,1.47-0.66,1.47-1.47v-0.38c0.96,1.29,2.46,2.06,4.06,2.06c0.74,0,1.46-0.16,2.12-0.47c0.24,0.17,0.54,0.26,0.84,0.26h1.39 c0.3,0,0.6-0.09,0.84-0.26v2.01c0,0.82,0.66,1.47,1.47,1.47h1.4c0.82,0,1.47-0.66,1.47-1.47v-1.77c0.48,0.15,0.99,0.23,1.49,0.22 c1.7,0,3.22-0.87,4.17-2.2v0.52c0,0.82,0.66,1.47,1.47,1.47h1.4c0.3,0,0.6-0.09,0.84-0.26c0.66,0.31,1.39,0.47,2.12,0.47 c1.92,0,3.6-1.1,4.49-2.73c1.54,2.65,4.95,3.53,7.58,1.98c0.18-0.11,0.36-0.22,0.53-0.36c0.22,0.55,0.76,0.91,1.35,0.9H78 c0.56,0,1.08-0.29,1.37-0.78l0.37-0.61l0.37,0.61c0.29,0.48,0.81,0.78,1.38,0.78h1.6c0.81,0,1.46-0.66,1.45-1.46 C84.49,14.02,84.44,13.8,84.34,13.59L84.34,13.59z M35.86,14.47h-1.41c-0.13,0-0.23-0.11-0.23-0.23V9.68 c0-0.98-0.74-1.71-1.62-1.71c-0.8,0-1.46,0.7-1.59,1.62l0.01,4.66c0,0.13-0.1,0.23-0.23,0.23h-1.41c-0.13,0-0.23-0.11-0.23-0.23 V9.68c0-0.98-0.74-1.71-1.62-1.71c-0.85,0-1.54,0.79-1.6,1.8v4.48c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23 V6.74c0.01-0.13,0.11-0.22,0.23-0.22h1.4c0.13,0,0.22,0.11,0.23,0.22V7.4c0.5-0.68,1.3-1.09,2.16-1.1h0.03 c1.09,0,2.09,0.6,2.6,1.55c0.45-0.95,1.4-1.55,2.44-1.56c1.62,0,2.93,1.25,2.9,2.78l0.01,5.16C36.09,14.36,35.98,14.46,35.86,14.47 L35.86,14.47z M45.97,14.24c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V13.5c-0.7,0.76-1.69,1.18-2.72,1.18 c-2.17,0-3.94-1.87-3.94-4.19s1.77-4.19,3.94-4.19c1.03,0,2.02,0.43,2.73,1.18V6.74c0-0.13,0.1-0.23,0.23-0.23h1.4 c0.12-0.01,0.22,0.08,0.23,0.21c0,0.01,0,0.01,0,0.02v7.51h-0.01V14.24z M52.41,14.67c-1.03,0-2.02-0.43-2.73-1.18v3.97 c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.1-0.23-0.23V6.75c0-0.13,0.1-0.22,0.23-0.22h1.4c0.13,0,0.23,0.11,0.23,0.23v0.73 c0.71-0.76,1.7-1.18,2.73-1.18c2.17,0,3.94,1.86,3.94,4.18S54.58,14.67,52.41,14.67z M66.24,11.39c-0.39,1.87-1.96,3.29-3.84,3.29 c-1.03,0-2.02-0.43-2.73-1.18v0.73c0,0.13-0.1,0.23-0.23,0.23h-1.4c-0.13,0-0.23-0.11-0.23-0.23V3.51c0-0.13,0.1-0.23,0.23-0.23 h1.4c0.13,0,0.23,0.11,0.23,0.23v3.97c0.71-0.75,1.7-1.18,2.73-1.17c1.88,0,3.45,1.4,3.84,3.28C66.37,10.19,66.37,10.8,66.24,11.39 L66.24,11.39L66.24,11.39z M71.67,14.68c-2,0.01-3.73-1.35-4.17-3.3c-0.13-0.59-0.13-1.19,0-1.77c0.44-1.94,2.17-3.31,4.17-3.3 c2.36,0,4.26,1.87,4.26,4.19S74.03,14.68,71.67,14.68L71.67,14.68z M83.04,14.47h-1.61c-0.13,0-0.24-0.06-0.3-0.17l-1.44-2.39 l-1.44,2.39c-0.06,0.11-0.18,0.17-0.3,0.17h-1.61c-0.04,0-0.08-0.01-0.12-0.03c-0.09-0.06-0.13-0.19-0.06-0.28l0,0l2.43-3.68 L76.2,6.84c-0.02-0.03-0.03-0.07-0.03-0.12c0-0.12,0.09-0.21,0.21-0.21h1.61c0.13,0,0.24,0.06,0.3,0.17l1.41,2.36l1.41-2.36 c0.06-0.11,0.18-0.17,0.3-0.17h1.61c0.04,0,0.08,0.01,0.12,0.03c0.09,0.06,0.13,0.19,0.06,0.28l0,0l-2.38,3.64l2.43,3.67 c0.02,0.03,0.03,0.07,0.03,0.12C83.25,14.38,83.16,14.47,83.04,14.47L83.04,14.47L83.04,14.47z\"/%3E %3Cpath class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" d=\"M10.5,1.24c-5.11,0-9.25,4.15-9.25,9.25s4.15,9.25,9.25,9.25s9.25-4.15,9.25-9.25 C19.75,5.38,15.61,1.24,10.5,1.24z M14.89,12.77c-1.93,1.93-4.78,2.31-6.7,2.31c-0.7,0-1.41-0.05-2.1-0.16c0,0-1.02-5.64,2.14-8.81 c0.83-0.83,1.95-1.28,3.13-1.28c1.27,0,2.49,0.51,3.39,1.42C16.59,8.09,16.64,11,14.89,12.77z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M10.5-0.01C4.7-0.01,0,4.7,0,10.49s4.7,10.5,10.5,10.5S21,16.29,21,10.49C20.99,4.7,16.3-0.01,10.5-0.01z M10.5,19.74c-5.11,0-9.25-4.15-9.25-9.25s4.14-9.26,9.25-9.26s9.25,4.15,9.25,9.25C19.75,15.61,15.61,19.74,10.5,19.74z\"/%3E %3Cpath class=\"st1\" style=\"opacity:0.35; enable-background:new;\" d=\"M14.74,6.25C12.9,4.41,9.98,4.35,8.23,6.1c-3.16,3.17-2.14,8.81-2.14,8.81s5.64,1.02,8.81-2.14 C16.64,11,16.59,8.09,14.74,6.25z M12.47,10.34l-0.91,1.87l-0.9-1.87L8.8,9.43l1.86-0.9l0.9-1.87l0.91,1.87l1.86,0.9L12.47,10.34z\"/%3E %3Cpolygon class=\"st0\" style=\"opacity:0.9; fill: %23FFFFFF; enable-background: new;\" points=\"14.33,9.43 12.47,10.34 11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 \"/%3E%3C/g%3E%3C/svg%3E\\');'\n }\n };\n }\n });\n\n // src/plots/mapbox/layout_attributes.js\n var require_layout_attributes19 = __commonJS({\n \"src/plots/mapbox/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var defaultLine = require_color().defaultLine;\n var domainAttrs = require_domain().attributes;\n var fontAttrs = require_font_attributes();\n var textposition = require_attributes12().textposition;\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n var constants = require_constants25();\n var fontAttr = fontAttrs({\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n fontAttr.family.dflt = \"Open Sans Regular, Arial Unicode MS Regular\";\n var attrs = module.exports = overrideAll({\n _arrayAttrRegexps: [Lib.counterRegex(\"mapbox\", \".layers\", true)],\n domain: domainAttrs({ name: \"mapbox\" }),\n accesstoken: {\n valType: \"string\",\n noBlank: true,\n strict: true\n },\n style: {\n valType: \"any\",\n values: constants.styleValuesMapbox.concat(constants.styleValuesNonMapbox),\n dflt: constants.styleValueDflt\n },\n center: {\n lon: {\n valType: \"number\",\n dflt: 0\n },\n lat: {\n valType: \"number\",\n dflt: 0\n }\n },\n zoom: {\n valType: \"number\",\n dflt: 1\n },\n bearing: {\n valType: \"number\",\n dflt: 0\n },\n pitch: {\n valType: \"number\",\n dflt: 0\n },\n bounds: {\n west: {\n valType: \"number\"\n },\n east: {\n valType: \"number\"\n },\n south: {\n valType: \"number\"\n },\n north: {\n valType: \"number\"\n }\n },\n layers: templatedArray(\"layer\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n sourcetype: {\n valType: \"enumerated\",\n values: [\"geojson\", \"vector\", \"raster\", \"image\"],\n dflt: \"geojson\"\n },\n source: {\n valType: \"any\"\n },\n sourcelayer: {\n valType: \"string\",\n dflt: \"\"\n },\n sourceattribution: {\n valType: \"string\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"circle\", \"line\", \"fill\", \"symbol\", \"raster\"],\n dflt: \"circle\"\n },\n coordinates: {\n valType: \"any\"\n },\n // attributes shared between all types\n below: {\n valType: \"string\"\n },\n color: {\n valType: \"color\",\n dflt: defaultLine\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n minzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 0\n },\n maxzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 24\n },\n // type-specific style attributes\n circle: {\n radius: {\n valType: \"number\",\n dflt: 15\n }\n },\n line: {\n width: {\n valType: \"number\",\n dflt: 2\n },\n dash: {\n valType: \"data_array\"\n }\n },\n fill: {\n outlinecolor: {\n valType: \"color\",\n dflt: defaultLine\n }\n },\n symbol: {\n icon: {\n valType: \"string\",\n dflt: \"marker\"\n },\n iconsize: {\n valType: \"number\",\n dflt: 10\n },\n text: {\n valType: \"string\",\n dflt: \"\"\n },\n placement: {\n valType: \"enumerated\",\n values: [\"point\", \"line\", \"line-center\"],\n dflt: \"point\"\n },\n textfont: fontAttr,\n textposition: Lib.extendFlat({}, textposition, { arrayOk: false })\n }\n })\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/traces/scattermapbox/attributes.js\n var require_attributes54 = __commonJS({\n \"src/traces/scattermapbox/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterGeoAttrs = require_attributes48();\n var scatterAttrs = require_attributes12();\n var mapboxAttrs = require_layout_attributes19();\n var baseAttrs = require_attributes2();\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var mapboxLayoutAtributes = require_layout_attributes19();\n var lineAttrs = scatterGeoAttrs.line;\n var markerAttrs = scatterGeoAttrs.marker;\n module.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n cluster: {\n enabled: {\n valType: \"boolean\"\n },\n maxzoom: extendFlat({}, mapboxLayoutAtributes.layers.maxzoom, {}),\n step: {\n valType: \"number\",\n arrayOk: true,\n dflt: -1,\n min: -1\n },\n size: {\n valType: \"number\",\n arrayOk: true,\n dflt: 20,\n min: 0\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n opacity: extendFlat({}, markerAttrs.opacity, {\n dflt: 1\n })\n },\n // locations\n // locationmode\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: \"markers\"\n }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"lat\", \"lon\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n // TODO\n // dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: extendFlat(\n {\n symbol: {\n valType: \"string\",\n dflt: \"circle\",\n arrayOk: true\n },\n angle: {\n valType: \"number\",\n dflt: \"auto\",\n arrayOk: true\n },\n allowoverlap: {\n valType: \"boolean\",\n dflt: false\n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs(\"marker\")\n // line\n ),\n fill: scatterGeoAttrs.fill,\n fillcolor: makeFillcolorAttr(),\n textfont: mapboxAttrs.layers.symbol.textfont,\n textposition: mapboxAttrs.layers.symbol.textposition,\n below: {\n valType: \"string\"\n },\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs()\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/scattermapbox/constants.js\n var require_constants26 = __commonJS({\n \"src/traces/scattermapbox/constants.js\"(exports, module) {\n \"use strict\";\n var supportedFonts = [\n \"Metropolis Black Italic\",\n \"Metropolis Black\",\n \"Metropolis Bold Italic\",\n \"Metropolis Bold\",\n \"Metropolis Extra Bold Italic\",\n \"Metropolis Extra Bold\",\n \"Metropolis Extra Light Italic\",\n \"Metropolis Extra Light\",\n \"Metropolis Light Italic\",\n \"Metropolis Light\",\n \"Metropolis Medium Italic\",\n \"Metropolis Medium\",\n \"Metropolis Regular Italic\",\n \"Metropolis Regular\",\n \"Metropolis Semi Bold Italic\",\n \"Metropolis Semi Bold\",\n \"Metropolis Thin Italic\",\n \"Metropolis Thin\",\n \"Open Sans Bold Italic\",\n \"Open Sans Bold\",\n \"Open Sans Extrabold Italic\",\n \"Open Sans Extrabold\",\n \"Open Sans Italic\",\n \"Open Sans Light Italic\",\n \"Open Sans Light\",\n \"Open Sans Regular\",\n \"Open Sans Semibold Italic\",\n \"Open Sans Semibold\",\n \"Klokantech Noto Sans Bold\",\n \"Klokantech Noto Sans CJK Bold\",\n \"Klokantech Noto Sans CJK Regular\",\n \"Klokantech Noto Sans Italic\",\n \"Klokantech Noto Sans Regular\"\n ];\n module.exports = {\n isSupportedFont: function(a) {\n return supportedFonts.indexOf(a) !== -1;\n }\n };\n }\n });\n\n // src/traces/scattermapbox/defaults.js\n var require_defaults50 = __commonJS({\n \"src/traces/scattermapbox/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes54();\n var isSupportedFont = require_constants26().isSupportedFont;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"texttemplate\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\");\n coerce(\"below\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noLine: true, noAngle: true });\n coerce(\"marker.allowoverlap\");\n coerce(\"marker.angle\");\n var marker = traceOut.marker;\n if (marker.symbol !== \"circle\") {\n if (Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if (Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noDash: true });\n coerce(\"connectgaps\");\n }\n var clusterMaxzoom = coerce2(\"cluster.maxzoom\");\n var clusterStep = coerce2(\"cluster.step\");\n var clusterColor = coerce2(\"cluster.color\", traceOut.marker && traceOut.marker.color || defaultColor);\n var clusterSize = coerce2(\"cluster.size\");\n var clusterOpacity = coerce2(\"cluster.opacity\");\n var clusterEnabledDflt = clusterMaxzoom !== false || clusterStep !== false || clusterColor !== false || clusterSize !== false || clusterOpacity !== false;\n var clusterEnabled = coerce(\"cluster.enabled\", clusterEnabledDflt);\n if (clusterEnabled || subTypes.hasText(traceOut)) {\n var layoutFontFamily = layout.font.family;\n handleTextDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n {\n noSelect: true,\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n font: {\n family: isSupportedFont(layoutFontFamily) ? layoutFontFamily : \"Open Sans Regular\",\n weight: layout.font.weight,\n style: layout.font.style,\n size: layout.font.size,\n color: layout.font.color\n }\n }\n );\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n return len;\n }\n }\n });\n\n // src/traces/scattermapbox/format_labels.js\n var require_format_labels5 = __commonJS({\n \"src/traces/scattermapbox/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n return labels;\n };\n }\n });\n\n // src/plots/mapbox/convert_text_opts.js\n var require_convert_text_opts = __commonJS({\n \"src/plots/mapbox/convert_text_opts.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function convertTextOpts(textposition, iconSize) {\n var parts = textposition.split(\" \");\n var vPos = parts[0];\n var hPos = parts[1];\n var factor = Lib.isArrayOrTypedArray(iconSize) ? Lib.mean(iconSize) : iconSize;\n var xInc = 0.5 + factor / 100;\n var yInc = 1.5 + factor / 100;\n var anchorVals = [\"\", \"\"];\n var offset = [0, 0];\n switch (vPos) {\n case \"top\":\n anchorVals[0] = \"top\";\n offset[1] = -yInc;\n break;\n case \"bottom\":\n anchorVals[0] = \"bottom\";\n offset[1] = yInc;\n break;\n }\n switch (hPos) {\n case \"left\":\n anchorVals[1] = \"right\";\n offset[0] = -xInc;\n break;\n case \"right\":\n anchorVals[1] = \"left\";\n offset[0] = xInc;\n break;\n }\n var anchor;\n if (anchorVals[0] && anchorVals[1]) anchor = anchorVals.join(\"-\");\n else if (anchorVals[0]) anchor = anchorVals[0];\n else if (anchorVals[1]) anchor = anchorVals[1];\n else anchor = \"center\";\n return { anchor, offset };\n };\n }\n });\n\n // src/traces/scattermapbox/convert.js\n var require_convert11 = __commonJS({\n \"src/traces/scattermapbox/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var geoJsonUtils = require_geojson_utils();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var subTypes = require_subtypes();\n var isSupportedFont = require_constants26().isSupportedFont;\n var convertTextOpts = require_convert_text_opts();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var NEWLINES = require_svg_text_utils().NEWLINES;\n var BR_TAG_ALL = require_svg_text_utils().BR_TAG_ALL;\n module.exports = function convert(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var hasFill = trace.fill !== \"none\";\n var hasLines = subTypes.hasLines(trace);\n var hasMarkers = subTypes.hasMarkers(trace);\n var hasText = subTypes.hasText(trace);\n var hasCircles = hasMarkers && trace.marker.symbol === \"circle\";\n var hasSymbols = hasMarkers && trace.marker.symbol !== \"circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var fill = initContainer(\"fill\");\n var line = initContainer(\"line\");\n var circle = initContainer(\"circle\");\n var symbol = initContainer(\"symbol\");\n var opts = {\n fill,\n line,\n circle,\n symbol\n };\n if (!isVisible) return opts;\n var lineCoords;\n if (hasFill || hasLines) {\n lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace);\n }\n if (hasFill) {\n fill.geojson = geoJsonUtils.makePolygon(lineCoords);\n fill.layout.visibility = \"visible\";\n Lib.extendFlat(fill.paint, {\n \"fill-color\": trace.fillcolor\n });\n }\n if (hasLines) {\n line.geojson = geoJsonUtils.makeLine(lineCoords);\n line.layout.visibility = \"visible\";\n Lib.extendFlat(line.paint, {\n \"line-width\": trace.line.width,\n \"line-color\": trace.line.color,\n \"line-opacity\": trace.opacity\n });\n }\n if (hasCircles) {\n var circleOpts = makeCircleOpts(calcTrace);\n circle.geojson = circleOpts.geojson;\n circle.layout.visibility = \"visible\";\n if (hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n opts.cluster = {\n type: \"circle\",\n filter: [\"has\", \"point_count\"],\n layout: { visibility: \"visible\" },\n paint: {\n \"circle-color\": arrayifyAttribute(trace.cluster.color, trace.cluster.step),\n \"circle-radius\": arrayifyAttribute(trace.cluster.size, trace.cluster.step),\n \"circle-opacity\": arrayifyAttribute(trace.cluster.opacity, trace.cluster.step)\n }\n };\n opts.clusterCount = {\n type: \"symbol\",\n filter: [\"has\", \"point_count\"],\n paint: {},\n layout: {\n \"text-field\": \"{point_count_abbreviated}\",\n \"text-font\": getTextFont(trace),\n \"text-size\": 12\n }\n };\n }\n Lib.extendFlat(circle.paint, {\n \"circle-color\": circleOpts.mcc,\n \"circle-radius\": circleOpts.mrc,\n \"circle-opacity\": circleOpts.mo\n });\n }\n if (hasCircles && hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n }\n if (hasSymbols || hasText) {\n symbol.geojson = makeSymbolGeoJSON(calcTrace, gd);\n Lib.extendFlat(symbol.layout, {\n visibility: \"visible\",\n \"icon-image\": \"{symbol}-15\",\n \"text-field\": \"{text}\"\n });\n if (hasSymbols) {\n Lib.extendFlat(symbol.layout, {\n \"icon-size\": trace.marker.size / 10\n });\n if (\"angle\" in trace.marker && trace.marker.angle !== \"auto\") {\n Lib.extendFlat(symbol.layout, {\n // unfortunately cant use {angle} do to this issue:\n // https://github.com/mapbox/mapbox-gl-js/issues/873\n \"icon-rotate\": {\n type: \"identity\",\n property: \"angle\"\n },\n \"icon-rotation-alignment\": \"map\"\n });\n }\n symbol.layout[\"icon-allow-overlap\"] = trace.marker.allowoverlap;\n Lib.extendFlat(symbol.paint, {\n \"icon-opacity\": trace.opacity * trace.marker.opacity,\n // TODO does not work ??\n \"icon-color\": trace.marker.color\n });\n }\n if (hasText) {\n var iconSize = (trace.marker || {}).size;\n var textOpts = convertTextOpts(trace.textposition, iconSize);\n Lib.extendFlat(symbol.layout, {\n \"text-size\": trace.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"text-font\": getTextFont(trace)\n });\n Lib.extendFlat(symbol.paint, {\n \"text-color\": trace.textfont.color,\n \"text-opacity\": trace.opacity\n });\n }\n }\n return opts;\n };\n function initContainer(type) {\n return {\n type,\n geojson: geoJsonUtils.makeBlank(),\n layout: { visibility: \"none\" },\n filter: null,\n paint: {}\n };\n }\n function makeCircleOpts(calcTrace) {\n var trace = calcTrace[0].trace;\n var marker = trace.marker;\n var selectedpoints = trace.selectedpoints;\n var arrayColor = Lib.isArrayOrTypedArray(marker.color);\n var arraySize = Lib.isArrayOrTypedArray(marker.size);\n var arrayOpacity = Lib.isArrayOrTypedArray(marker.opacity);\n var i;\n function addTraceOpacity(o) {\n return trace.opacity * o;\n }\n function size2radius(s) {\n return s / 2;\n }\n var colorFn;\n if (arrayColor) {\n if (Colorscale.hasColorscale(trace, \"marker\")) {\n colorFn = Colorscale.makeColorScaleFuncFromTrace(marker);\n } else {\n colorFn = Lib.identity;\n }\n }\n var sizeFn;\n if (arraySize) {\n sizeFn = makeBubbleSizeFn(trace);\n }\n var opacityFn;\n if (arrayOpacity) {\n opacityFn = function(mo) {\n var mo2 = isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n return addTraceOpacity(mo2);\n };\n }\n var features = [];\n for (i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n if (isBADNUM(lonlat)) continue;\n var props = {};\n if (colorFn) props.mcc = calcPt.mcc = colorFn(calcPt.mc);\n if (sizeFn) props.mrc = calcPt.mrc = sizeFn(calcPt.ms);\n if (opacityFn) props.mo = opacityFn(calcPt.mo);\n if (selectedpoints) props.selected = calcPt.selected || 0;\n features.push({\n type: \"Feature\",\n id: i + 1,\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n var fns;\n if (selectedpoints) {\n fns = Drawing.makeSelectedPointStyleFns(trace);\n for (i = 0; i < features.length; i++) {\n var d = features[i].properties;\n if (fns.selectedOpacityFn) {\n d.mo = addTraceOpacity(fns.selectedOpacityFn(d));\n }\n if (fns.selectedColorFn) {\n d.mcc = fns.selectedColorFn(d);\n }\n if (fns.selectedSizeFn) {\n d.mrc = fns.selectedSizeFn(d);\n }\n }\n }\n return {\n geojson: { type: \"FeatureCollection\", features },\n mcc: arrayColor || fns && fns.selectedColorFn ? { type: \"identity\", property: \"mcc\" } : marker.color,\n mrc: arraySize || fns && fns.selectedSizeFn ? { type: \"identity\", property: \"mrc\" } : size2radius(marker.size),\n mo: arrayOpacity || fns && fns.selectedOpacityFn ? { type: \"identity\", property: \"mo\" } : addTraceOpacity(marker.opacity)\n };\n }\n function makeSymbolGeoJSON(calcTrace, gd) {\n var fullLayout = gd._fullLayout;\n var trace = calcTrace[0].trace;\n var marker = trace.marker || {};\n var symbol = marker.symbol;\n var angle = marker.angle;\n var fillSymbol = symbol !== \"circle\" ? getFillFunc(symbol) : blankFillFunc;\n var fillAngle = angle !== \"auto\" ? getFillFunc(angle, true) : blankFillFunc;\n var fillText = subTypes.hasText(trace) ? getFillFunc(trace.text) : blankFillFunc;\n var features = [];\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n if (isBADNUM(calcPt.lonlat)) continue;\n var texttemplate = trace.texttemplate;\n var text;\n if (texttemplate) {\n var tt = Array.isArray(texttemplate) ? texttemplate[i] || \"\" : texttemplate;\n var labels = trace._module.formatLabels(calcPt, trace, fullLayout);\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, calcPt.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(tt, labels, fullLayout._d3locale, pointValues, calcPt, meta);\n } else {\n text = fillText(i);\n }\n if (text) {\n text = text.replace(NEWLINES, \"\").replace(BR_TAG_ALL, \"\\n\");\n }\n features.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: calcPt.lonlat\n },\n properties: {\n symbol: fillSymbol(i),\n angle: fillAngle(i),\n text\n }\n });\n }\n return {\n type: \"FeatureCollection\",\n features\n };\n }\n function getFillFunc(attr, numeric) {\n if (Lib.isArrayOrTypedArray(attr)) {\n if (numeric) {\n return function(i) {\n return isNumeric(attr[i]) ? +attr[i] : 0;\n };\n }\n return function(i) {\n return attr[i];\n };\n } else if (attr) {\n return function() {\n return attr;\n };\n } else {\n return blankFillFunc;\n }\n }\n function blankFillFunc() {\n return \"\";\n }\n function isBADNUM(lonlat) {\n return lonlat[0] === BADNUM;\n }\n function arrayifyAttribute(values, step) {\n var newAttribute;\n if (Lib.isArrayOrTypedArray(values) && Lib.isArrayOrTypedArray(step)) {\n newAttribute = [\"step\", [\"get\", \"point_count\"], values[0]];\n for (var idx = 1; idx < values.length; idx++) {\n newAttribute.push(step[idx - 1], values[idx]);\n }\n } else {\n newAttribute = values;\n }\n return newAttribute;\n }\n function getTextFont(trace) {\n var font = trace.textfont;\n var family = font.family;\n var style = font.style;\n var weight = font.weight;\n var parts = family.split(\" \");\n var isItalic = parts[parts.length - 1] === \"Italic\";\n if (isItalic) parts.pop();\n isItalic = isItalic || style === \"italic\";\n var str = parts.join(\" \");\n if (weight === \"bold\" && parts.indexOf(\"Bold\") === -1) {\n str += \" Bold\";\n } else if (weight <= 1e3) {\n if (parts[0] === \"Metropolis\") {\n str = \"Metropolis\";\n if (weight > 850) str += \" Black\";\n else if (weight > 750) str += \" Extra Bold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semi Bold\";\n else if (weight > 450) str += \" Medium\";\n else if (weight > 350) str += \" Regular\";\n else if (weight > 250) str += \" Light\";\n else if (weight > 150) str += \" Extra Light\";\n else str += \" Thin\";\n } else if (parts.slice(0, 2).join(\" \") === \"Open Sans\") {\n str = \"Open Sans\";\n if (weight > 750) str += \" Extrabold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semibold\";\n else if (weight > 350) str += \" Regular\";\n else str += \" Light\";\n } else if (parts.slice(0, 3).join(\" \") === \"Klokantech Noto Sans\") {\n str = \"Klokantech Noto Sans\";\n if (parts[3] === \"CJK\") str += \" CJK\";\n str += weight > 500 ? \" Bold\" : \" Regular\";\n }\n }\n if (isItalic) str += \" Italic\";\n if (str === \"Open Sans Regular Italic\") str = \"Open Sans Italic\";\n else if (str === \"Open Sans Regular Bold\") str = \"Open Sans Bold\";\n else if (str === \"Open Sans Regular Bold Italic\") str = \"Open Sans Bold Italic\";\n else if (str === \"Klokantech Noto Sans Regular Italic\") str = \"Klokantech Noto Sans Italic\";\n if (!isSupportedFont(str)) {\n str = family;\n }\n var textFont = str.split(\", \");\n return textFont;\n }\n }\n });\n\n // src/traces/scattermapbox/plot.js\n var require_plot23 = __commonJS({\n \"src/traces/scattermapbox/plot.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var convert = require_convert11();\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n var ORDER = {\n cluster: [\"cluster\", \"clusterCount\", \"circle\"],\n nonCluster: [\"fill\", \"line\", \"circle\", \"symbol\"]\n };\n function ScatterMapbox(subplot, uid, clusterEnabled, isHidden) {\n this.type = \"scattermapbox\";\n this.subplot = subplot;\n this.uid = uid;\n this.clusterEnabled = clusterEnabled;\n this.isHidden = isHidden;\n this.sourceIds = {\n fill: \"source-\" + uid + \"-fill\",\n line: \"source-\" + uid + \"-line\",\n circle: \"source-\" + uid + \"-circle\",\n symbol: \"source-\" + uid + \"-symbol\",\n cluster: \"source-\" + uid + \"-circle\",\n clusterCount: \"source-\" + uid + \"-circle\"\n };\n this.layerIds = {\n fill: LAYER_PREFIX + uid + \"-fill\",\n line: LAYER_PREFIX + uid + \"-line\",\n circle: LAYER_PREFIX + uid + \"-circle\",\n symbol: LAYER_PREFIX + uid + \"-symbol\",\n cluster: LAYER_PREFIX + uid + \"-cluster\",\n clusterCount: LAYER_PREFIX + uid + \"-cluster-count\"\n };\n this.below = null;\n }\n var proto = ScatterMapbox.prototype;\n proto.addSource = function(k, opts, cluster) {\n var sourceOpts = {\n type: \"geojson\",\n data: opts.geojson\n };\n if (cluster && cluster.enabled) {\n Lib.extendFlat(sourceOpts, {\n cluster: true,\n clusterMaxZoom: cluster.maxzoom\n });\n }\n var isSourceExists = this.subplot.map.getSource(this.sourceIds[k]);\n if (isSourceExists) {\n isSourceExists.setData(opts.geojson);\n } else {\n this.subplot.map.addSource(this.sourceIds[k], sourceOpts);\n }\n };\n proto.setSourceData = function(k, opts) {\n this.subplot.map.getSource(this.sourceIds[k]).setData(opts.geojson);\n };\n proto.addLayer = function(k, opts, below) {\n var source = {\n type: opts.type,\n id: this.layerIds[k],\n source: this.sourceIds[k],\n layout: opts.layout,\n paint: opts.paint\n };\n if (opts.filter) {\n source.filter = opts.filter;\n }\n var currentLayerId = this.layerIds[k];\n var layerExist;\n var layers = this.subplot.getMapLayers();\n for (var i = 0; i < layers.length; i++) {\n if (layers[i].id === currentLayerId) {\n layerExist = true;\n break;\n }\n }\n if (layerExist) {\n this.subplot.setOptions(currentLayerId, \"setLayoutProperty\", source.layout);\n if (source.layout.visibility === \"visible\") {\n this.subplot.setOptions(currentLayerId, \"setPaintProperty\", source.paint);\n }\n } else {\n this.subplot.addLayer(source, below);\n }\n };\n proto.update = function update(calcTrace) {\n var trace = calcTrace[0].trace;\n var subplot = this.subplot;\n var map = subplot.map;\n var optsAll = convert(subplot.gd, calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n var hasCluster = !!(trace.cluster && trace.cluster.enabled);\n var hadCluster = !!this.clusterEnabled;\n var lThis = this;\n function addCluster(noSource) {\n if (!noSource) lThis.addSource(\"circle\", optsAll.circle, trace.cluster);\n var order = ORDER.cluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n lThis.addLayer(k, opts, below);\n }\n }\n function removeCluster(noSource) {\n var order = ORDER.cluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n }\n if (!noSource) map.removeSource(lThis.sourceIds.circle);\n }\n function addNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!noSource) lThis.addSource(k, opts);\n lThis.addLayer(k, opts, below);\n }\n }\n function removeNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n if (!noSource) map.removeSource(lThis.sourceIds[k]);\n }\n }\n function remove(noSource) {\n if (hadCluster) removeCluster(noSource);\n else removeNonCluster(noSource);\n }\n function add(noSource) {\n if (hasCluster) addCluster(noSource);\n else addNonCluster(noSource);\n }\n function repaint() {\n var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!opts) continue;\n subplot.setOptions(lThis.layerIds[k], \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n if (k !== \"cluster\") {\n lThis.setSourceData(k, opts);\n }\n subplot.setOptions(lThis.layerIds[k], \"setPaintProperty\", opts.paint);\n }\n }\n }\n var wasHidden = this.isHidden;\n var isHidden = trace.visible !== true;\n if (isHidden) {\n if (!wasHidden) remove();\n } else if (wasHidden) {\n if (!isHidden) add();\n } else if (hadCluster !== hasCluster) {\n remove();\n add();\n } else if (this.below !== below) {\n remove(true);\n add(true);\n repaint();\n } else {\n repaint();\n }\n this.clusterEnabled = hasCluster;\n this.isHidden = isHidden;\n this.below = below;\n calcTrace[0].trace._glTrace = this;\n };\n proto.dispose = function dispose() {\n var map = this.subplot.map;\n var order = this.clusterEnabled ? ORDER.cluster : ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(this.layerIds[k]);\n map.removeSource(this.sourceIds[k]);\n }\n };\n module.exports = function createScatterMapbox(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var isHidden = trace.visible !== true;\n var scatterMapbox = new ScatterMapbox(\n subplot,\n trace.uid,\n hasCluster,\n isHidden\n );\n var optsAll = convert(subplot.gd, calcTrace);\n var below = scatterMapbox.below = subplot.belowLookup[\"trace-\" + trace.uid];\n var i, k, opts;\n if (hasCluster) {\n scatterMapbox.addSource(\"circle\", optsAll.circle, trace.cluster);\n for (i = 0; i < ORDER.cluster.length; i++) {\n k = ORDER.cluster[i];\n opts = optsAll[k];\n scatterMapbox.addLayer(k, opts, below);\n }\n } else {\n for (i = 0; i < ORDER.nonCluster.length; i++) {\n k = ORDER.nonCluster[i];\n opts = optsAll[k];\n scatterMapbox.addSource(k, opts, trace.cluster);\n scatterMapbox.addLayer(k, opts, below);\n }\n }\n calcTrace[0].trace._glTrace = scatterMapbox;\n return scatterMapbox;\n };\n }\n });\n\n // src/traces/scattermapbox/hover.js\n var require_hover18 = __commonJS({\n \"src/traces/scattermapbox/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var getTraceColor = require_get_trace_color();\n var fillText = Lib.fillText;\n var BADNUM = require_numerical().BADNUM;\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n var clusteredPointsIds = [];\n var layer = LAYER_PREFIX + trace.uid + \"-circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n if (hasCluster) {\n var elems = subplot.map.queryRenderedFeatures(null, { layers: [layer] });\n clusteredPointsIds = elems.map(function(elem) {\n return elem.id;\n });\n }\n var winding = xval >= 0 ? Math.floor((xval + 180) / 360) : Math.ceil((xval - 180) / 360);\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n function distFn(d) {\n var lonlat2 = d.lonlat;\n if (lonlat2[0] === BADNUM) return Infinity;\n if (hasCluster && clusteredPointsIds.indexOf(d.i + 1) === -1) return Infinity;\n var lon = Lib.modHalf(lonlat2[0], 360);\n var lat = lonlat2[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad2 = Math.max(3, d.mrc || 0);\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad2, 1 - 3 / rad2);\n }\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n return [pointData];\n }\n function getExtraText(trace, di, labels) {\n if (trace.hovertemplate) return;\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split(\"+\");\n var isAll = parts.indexOf(\"all\") !== -1;\n var hasLon = parts.indexOf(\"lon\") !== -1;\n var hasLat = parts.indexOf(\"lat\") !== -1;\n var lonlat = di.lonlat;\n var text = [];\n function format(v) {\n return v + \"\\xB0\";\n }\n if (isAll || hasLon && hasLat) {\n text.push(\"(\" + format(lonlat[1]) + \", \" + format(lonlat[0]) + \")\");\n } else if (hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if (hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n if (isAll || parts.indexOf(\"text\") !== -1) {\n fillText(di, trace, text);\n }\n return text.join(\"
\");\n }\n module.exports = {\n hoverPoints,\n getExtraText\n };\n }\n });\n\n // src/traces/scattermapbox/event_data.js\n var require_event_data11 = __commonJS({\n \"src/traces/scattermapbox/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n return out;\n };\n }\n });\n\n // src/traces/scattermapbox/select.js\n var require_select9 = __commonJS({\n \"src/traces/scattermapbox/select.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subtypes = require_subtypes();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n if (!subtypes.hasMarkers(trace)) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n if (lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n if (selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n return selection;\n };\n }\n });\n\n // node_modules/@plotly/mapbox-gl/dist/mapbox-gl-unminified.js\n var require_mapbox_gl_unminified = __commonJS({\n \"node_modules/@plotly/mapbox-gl/dist/mapbox-gl-unminified.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() : typeof define === \"function\" && false ? define(factory) : (global2 = global2 || self, global2.mapboxgl = factory());\n })(exports, function() {\n \"use strict\";\n var shared, worker, mapboxgl;\n function define2(_, chunk) {\n if (!shared) {\n shared = chunk;\n } else if (!worker) {\n worker = chunk;\n } else {\n var workerBundleString = \"var sharedChunk = {}; (\" + shared + \")(sharedChunk); (\" + worker + \")(sharedChunk);\";\n var sharedChunk = {};\n shared(sharedChunk);\n mapboxgl = chunk(sharedChunk);\n if (typeof window !== \"undefined\") {\n mapboxgl.workerUrl = window.URL.createObjectURL(new Blob([workerBundleString], { type: \"text/javascript\" }));\n }\n }\n }\n define2([\"exports\"], function(exports2) {\n \"use strict\";\n function createCommonjsModule(fn, module2) {\n return module2 = { exports: {} }, fn(module2, module2.exports), module2.exports;\n }\n var version = \"1.13.4\";\n var unitbezier = UnitBezier;\n function UnitBezier(p1x, p1y, p2x, p2y) {\n this.cx = 3 * p1x;\n this.bx = 3 * (p2x - p1x) - this.cx;\n this.ax = 1 - this.cx - this.bx;\n this.cy = 3 * p1y;\n this.by = 3 * (p2y - p1y) - this.cy;\n this.ay = 1 - this.cy - this.by;\n this.p1x = p1x;\n this.p1y = p2y;\n this.p2x = p2x;\n this.p2y = p2y;\n }\n UnitBezier.prototype.sampleCurveX = function(t) {\n return ((this.ax * t + this.bx) * t + this.cx) * t;\n };\n UnitBezier.prototype.sampleCurveY = function(t) {\n return ((this.ay * t + this.by) * t + this.cy) * t;\n };\n UnitBezier.prototype.sampleCurveDerivativeX = function(t) {\n return (3 * this.ax * t + 2 * this.bx) * t + this.cx;\n };\n UnitBezier.prototype.solveCurveX = function(x, epsilon) {\n if (typeof epsilon === \"undefined\") {\n epsilon = 1e-6;\n }\n var t03, t13, t23, x2, i;\n for (t23 = x, i = 0; i < 8; i++) {\n x2 = this.sampleCurveX(t23) - x;\n if (Math.abs(x2) < epsilon) {\n return t23;\n }\n var d2 = this.sampleCurveDerivativeX(t23);\n if (Math.abs(d2) < 1e-6) {\n break;\n }\n t23 = t23 - x2 / d2;\n }\n t03 = 0;\n t13 = 1;\n t23 = x;\n if (t23 < t03) {\n return t03;\n }\n if (t23 > t13) {\n return t13;\n }\n while (t03 < t13) {\n x2 = this.sampleCurveX(t23);\n if (Math.abs(x2 - x) < epsilon) {\n return t23;\n }\n if (x > x2) {\n t03 = t23;\n } else {\n t13 = t23;\n }\n t23 = (t13 - t03) * 0.5 + t03;\n }\n return t23;\n };\n UnitBezier.prototype.solve = function(x, epsilon) {\n return this.sampleCurveY(this.solveCurveX(x, epsilon));\n };\n var pointGeometry = Point;\n function Point(x, y) {\n this.x = x;\n this.y = y;\n }\n Point.prototype = {\n clone: function() {\n return new Point(this.x, this.y);\n },\n add: function(p) {\n return this.clone()._add(p);\n },\n sub: function(p) {\n return this.clone()._sub(p);\n },\n multByPoint: function(p) {\n return this.clone()._multByPoint(p);\n },\n divByPoint: function(p) {\n return this.clone()._divByPoint(p);\n },\n mult: function(k) {\n return this.clone()._mult(k);\n },\n div: function(k) {\n return this.clone()._div(k);\n },\n rotate: function(a) {\n return this.clone()._rotate(a);\n },\n rotateAround: function(a, p) {\n return this.clone()._rotateAround(a, p);\n },\n matMult: function(m) {\n return this.clone()._matMult(m);\n },\n unit: function() {\n return this.clone()._unit();\n },\n perp: function() {\n return this.clone()._perp();\n },\n round: function() {\n return this.clone()._round();\n },\n mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n equals: function(other) {\n return this.x === other.x && this.y === other.y;\n },\n dist: function(p) {\n return Math.sqrt(this.distSqr(p));\n },\n distSqr: function(p) {\n var dx = p.x - this.x, dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n angle: function() {\n return Math.atan2(this.y, this.x);\n },\n angleTo: function(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n angleWith: function(b) {\n return this.angleWithSep(b.x, b.y);\n },\n angleWithSep: function(x, y) {\n return Math.atan2(this.x * y - this.y * x, this.x * x + this.y * y);\n },\n _matMult: function(m) {\n var x = m[0] * this.x + m[1] * this.y, y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n _multByPoint: function(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n _divByPoint: function(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n _rotate: function(angle) {\n var cos = Math.cos(angle), sin = Math.sin(angle), x = cos * this.x - sin * this.y, y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n _rotateAround: function(angle, p) {\n var cos = Math.cos(angle), sin = Math.sin(angle), x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y), y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n };\n Point.convert = function(a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n };\n var window$1 = typeof self !== \"undefined\" ? self : {};\n function deepEqual(a, b) {\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n for (var i = 0; i < a.length; i++) {\n if (!deepEqual(a[i], b[i])) {\n return false;\n }\n }\n return true;\n }\n if (typeof a === \"object\" && a !== null && b !== null) {\n if (!(typeof b === \"object\")) {\n return false;\n }\n var keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) {\n return false;\n }\n for (var key in a) {\n if (!deepEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n return a === b;\n }\n var MAX_SAFE_INTEGER = Math.pow(2, 53) - 1;\n function easeCubicInOut(t) {\n if (t <= 0) {\n return 0;\n }\n if (t >= 1) {\n return 1;\n }\n var t23 = t * t, t33 = t23 * t;\n return 4 * (t < 0.5 ? t33 : 3 * (t - t23) + t33 - 0.75);\n }\n function bezier(p1x, p1y, p2x, p2y) {\n var bezier2 = new unitbezier(p1x, p1y, p2x, p2y);\n return function(t) {\n return bezier2.solve(t);\n };\n }\n var ease = bezier(0.25, 0.1, 0.25, 1);\n function clamp(n, min, max) {\n return Math.min(max, Math.max(min, n));\n }\n function wrap(n, min, max) {\n var d = max - min;\n var w = ((n - min) % d + d) % d + min;\n return w === min ? max : w;\n }\n function asyncAll(array2, fn, callback) {\n if (!array2.length) {\n return callback(null, []);\n }\n var remaining = array2.length;\n var results = new Array(array2.length);\n var error2 = null;\n array2.forEach(function(item, i) {\n fn(item, function(err, result) {\n if (err) {\n error2 = err;\n }\n results[i] = result;\n if (--remaining === 0) {\n callback(error2, results);\n }\n });\n });\n }\n function values(obj) {\n var result = [];\n for (var k in obj) {\n result.push(obj[k]);\n }\n return result;\n }\n function keysDifference(obj, other) {\n var difference = [];\n for (var i in obj) {\n if (!(i in other)) {\n difference.push(i);\n }\n }\n return difference;\n }\n function extend2(dest) {\n var sources2 = [], len = arguments.length - 1;\n while (len-- > 0)\n sources2[len] = arguments[len + 1];\n for (var i = 0, list = sources2; i < list.length; i += 1) {\n var src = list[i];\n for (var k in src) {\n dest[k] = src[k];\n }\n }\n return dest;\n }\n function pick(src, properties2) {\n var result = {};\n for (var i = 0; i < properties2.length; i++) {\n var k = properties2[i];\n if (k in src) {\n result[k] = src[k];\n }\n }\n return result;\n }\n var id = 1;\n function uniqueId() {\n return id++;\n }\n function uuid() {\n function b(a) {\n return a ? (a ^ Math.random() * 16 >> a / 4).toString(16) : ([1e7] + -[1e3] + -4e3 + -8e3 + -1e11).replace(/[018]/g, b);\n }\n return b();\n }\n function nextPowerOfTwo(value) {\n if (value <= 1) {\n return 1;\n }\n return Math.pow(2, Math.ceil(Math.log(value) / Math.LN2));\n }\n function validateUuid(str) {\n return str ? /^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(str) : false;\n }\n function bindAll(fns, context) {\n fns.forEach(function(fn) {\n if (!context[fn]) {\n return;\n }\n context[fn] = context[fn].bind(context);\n });\n }\n function endsWith(string, suffix) {\n return string.indexOf(suffix, string.length - suffix.length) !== -1;\n }\n function mapObject(input, iterator, context) {\n var output = {};\n for (var key in input) {\n output[key] = iterator.call(context || this, input[key], key, input);\n }\n return output;\n }\n function filterObject(input, iterator, context) {\n var output = {};\n for (var key in input) {\n if (iterator.call(context || this, input[key], key, input)) {\n output[key] = input[key];\n }\n }\n return output;\n }\n function clone(input) {\n if (Array.isArray(input)) {\n return input.map(clone);\n } else if (typeof input === \"object\" && input) {\n return mapObject(input, clone);\n } else {\n return input;\n }\n }\n function arraysIntersect(a, b) {\n for (var l = 0; l < a.length; l++) {\n if (b.indexOf(a[l]) >= 0) {\n return true;\n }\n }\n return false;\n }\n var warnOnceHistory = {};\n function warnOnce(message) {\n if (!warnOnceHistory[message]) {\n if (typeof console !== \"undefined\") {\n console.warn(message);\n }\n warnOnceHistory[message] = true;\n }\n }\n function isCounterClockwise(a, b, c) {\n return (c.y - a.y) * (b.x - a.x) > (b.y - a.y) * (c.x - a.x);\n }\n function calculateSignedArea(ring) {\n var sum = 0;\n for (var i = 0, len = ring.length, j = len - 1, p1 = void 0, p2 = void 0; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2.x - p1.x) * (p1.y + p2.y);\n }\n return sum;\n }\n function sphericalToCartesian(ref) {\n var r = ref[0];\n var azimuthal = ref[1];\n var polar = ref[2];\n azimuthal += 90;\n azimuthal *= Math.PI / 180;\n polar *= Math.PI / 180;\n return {\n x: r * Math.cos(azimuthal) * Math.sin(polar),\n y: r * Math.sin(azimuthal) * Math.sin(polar),\n z: r * Math.cos(polar)\n };\n }\n function isWorker() {\n return typeof WorkerGlobalScope !== \"undefined\" && typeof self !== \"undefined\" && self instanceof WorkerGlobalScope;\n }\n function parseCacheControl(cacheControl) {\n var re = /(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g;\n var header = {};\n cacheControl.replace(re, function($0, $1, $2, $3) {\n var value = $2 || $3;\n header[$1] = value ? value.toLowerCase() : true;\n return \"\";\n });\n if (header[\"max-age\"]) {\n var maxAge = parseInt(header[\"max-age\"], 10);\n if (isNaN(maxAge)) {\n delete header[\"max-age\"];\n } else {\n header[\"max-age\"] = maxAge;\n }\n }\n return header;\n }\n var _isSafari = null;\n function isSafari(scope) {\n if (_isSafari == null) {\n var userAgent = scope.navigator ? scope.navigator.userAgent : null;\n _isSafari = !!scope.safari || !!(userAgent && (/\\b(iPad|iPhone|iPod)\\b/.test(userAgent) || !!userAgent.match(\"Safari\") && !userAgent.match(\"Chrome\")));\n }\n return _isSafari;\n }\n function storageAvailable(type) {\n try {\n var storage = window$1[type];\n storage.setItem(\"_mapbox_test_\", 1);\n storage.removeItem(\"_mapbox_test_\");\n return true;\n } catch (e) {\n return false;\n }\n }\n function b64EncodeUnicode(str) {\n return window$1.btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) {\n return String.fromCharCode(Number(\"0x\" + p1));\n }));\n }\n function b64DecodeUnicode(str) {\n return decodeURIComponent(window$1.atob(str).split(\"\").map(function(c) {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(\"\"));\n }\n var now = window$1.performance && window$1.performance.now ? window$1.performance.now.bind(window$1.performance) : Date.now.bind(Date);\n var raf = window$1.requestAnimationFrame || window$1.mozRequestAnimationFrame || window$1.webkitRequestAnimationFrame || window$1.msRequestAnimationFrame;\n var cancel = window$1.cancelAnimationFrame || window$1.mozCancelAnimationFrame || window$1.webkitCancelAnimationFrame || window$1.msCancelAnimationFrame;\n var linkEl;\n var reducedMotionQuery;\n var exported = {\n now,\n frame: function frame(fn) {\n var frame2 = raf(fn);\n return {\n cancel: function() {\n return cancel(frame2);\n }\n };\n },\n getImageData: function getImageData(img, padding) {\n if (padding === void 0)\n padding = 0;\n var canvas = window$1.document.createElement(\"canvas\");\n var context = canvas.getContext(\"2d\");\n if (!context) {\n throw new Error(\"failed to create canvas 2d context\");\n }\n canvas.width = img.width;\n canvas.height = img.height;\n context.drawImage(img, 0, 0, img.width, img.height);\n return context.getImageData(-padding, -padding, img.width + 2 * padding, img.height + 2 * padding);\n },\n resolveURL: function resolveURL(path) {\n if (!linkEl) {\n linkEl = window$1.document.createElement(\"a\");\n }\n linkEl.href = path;\n return linkEl.href;\n },\n hardwareConcurrency: window$1.navigator && window$1.navigator.hardwareConcurrency || 4,\n get devicePixelRatio() {\n return window$1.devicePixelRatio;\n },\n get prefersReducedMotion() {\n if (!window$1.matchMedia) {\n return false;\n }\n if (reducedMotionQuery == null) {\n reducedMotionQuery = window$1.matchMedia(\"(prefers-reduced-motion: reduce)\");\n }\n return reducedMotionQuery.matches;\n }\n };\n var config = {\n API_URL: \"https://api.mapbox.com\",\n get EVENTS_URL() {\n if (!this.API_URL) {\n return null;\n }\n if (this.API_URL.indexOf(\"https://api.mapbox.cn\") === 0) {\n return \"https://events.mapbox.cn/events/v2\";\n } else if (this.API_URL.indexOf(\"https://api.mapbox.com\") === 0) {\n return \"https://events.mapbox.com/events/v2\";\n } else {\n return null;\n }\n },\n FEEDBACK_URL: \"https://apps.mapbox.com/feedback\",\n REQUIRE_ACCESS_TOKEN: true,\n ACCESS_TOKEN: null,\n MAX_PARALLEL_IMAGE_REQUESTS: 16\n };\n var exported$1 = {\n supported: false,\n testSupport\n };\n var glForTesting;\n var webpCheckComplete = false;\n var webpImgTest;\n var webpImgTestOnloadComplete = false;\n if (window$1.document) {\n webpImgTest = window$1.document.createElement(\"img\");\n webpImgTest.onload = function() {\n if (glForTesting) {\n testWebpTextureUpload(glForTesting);\n }\n glForTesting = null;\n webpImgTestOnloadComplete = true;\n };\n webpImgTest.onerror = function() {\n webpCheckComplete = true;\n glForTesting = null;\n };\n webpImgTest.src = \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\";\n }\n function testSupport(gl2) {\n if (webpCheckComplete || !webpImgTest) {\n return;\n }\n if (webpImgTestOnloadComplete) {\n testWebpTextureUpload(gl2);\n } else {\n glForTesting = gl2;\n }\n }\n function testWebpTextureUpload(gl2) {\n var texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, texture);\n try {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.RGBA, gl2.RGBA, gl2.UNSIGNED_BYTE, webpImgTest);\n if (gl2.isContextLost()) {\n return;\n }\n exported$1.supported = true;\n } catch (e) {\n }\n gl2.deleteTexture(texture);\n webpCheckComplete = true;\n }\n var SKU_ID = \"01\";\n function createSkuToken() {\n var TOKEN_VERSION = \"1\";\n var base62chars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n var sessionRandomizer = \"\";\n for (var i = 0; i < 10; i++) {\n sessionRandomizer += base62chars[Math.floor(Math.random() * 62)];\n }\n var expiration = 12 * 60 * 60 * 1e3;\n var token = [\n TOKEN_VERSION,\n SKU_ID,\n sessionRandomizer\n ].join(\"\");\n var tokenExpiresAt = Date.now() + expiration;\n return {\n token,\n tokenExpiresAt\n };\n }\n var RequestManager = function RequestManager2(transformRequestFn, customAccessToken) {\n this._transformRequestFn = transformRequestFn;\n this._customAccessToken = customAccessToken;\n this._createSkuToken();\n };\n RequestManager.prototype._createSkuToken = function _createSkuToken() {\n var skuToken = createSkuToken();\n this._skuToken = skuToken.token;\n this._skuTokenExpiresAt = skuToken.tokenExpiresAt;\n };\n RequestManager.prototype._isSkuTokenExpired = function _isSkuTokenExpired() {\n return Date.now() > this._skuTokenExpiresAt;\n };\n RequestManager.prototype.transformRequest = function transformRequest(url, type) {\n if (this._transformRequestFn) {\n return this._transformRequestFn(url, type) || { url };\n }\n return { url };\n };\n RequestManager.prototype.normalizeStyleURL = function normalizeStyleURL(url, accessToken) {\n if (!isMapboxURL(url)) {\n return url;\n }\n var urlObject = parseUrl(url);\n urlObject.path = \"/styles/v1\" + urlObject.path;\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeGlyphsURL = function normalizeGlyphsURL(url, accessToken) {\n if (!isMapboxURL(url)) {\n return url;\n }\n var urlObject = parseUrl(url);\n urlObject.path = \"/fonts/v1\" + urlObject.path;\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeSourceURL = function normalizeSourceURL(url, accessToken) {\n if (!isMapboxURL(url)) {\n return url;\n }\n var urlObject = parseUrl(url);\n urlObject.path = \"/v4/\" + urlObject.authority + \".json\";\n urlObject.params.push(\"secure\");\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeSpriteURL = function normalizeSpriteURL(url, format, extension, accessToken) {\n var urlObject = parseUrl(url);\n if (!isMapboxURL(url)) {\n urlObject.path += \"\" + format + extension;\n return formatUrl(urlObject);\n }\n urlObject.path = \"/styles/v1\" + urlObject.path + \"/sprite\" + format + extension;\n return this._makeAPIURL(urlObject, this._customAccessToken || accessToken);\n };\n RequestManager.prototype.normalizeTileURL = function normalizeTileURL(tileURL, tileSize) {\n if (this._isSkuTokenExpired()) {\n this._createSkuToken();\n }\n if (tileURL && !isMapboxURL(tileURL)) {\n return tileURL;\n }\n var urlObject = parseUrl(tileURL);\n var imageExtensionRe = /(\\.(png|jpg)\\d*)(?=$)/;\n var tileURLAPIPrefixRe = /^.+\\/v4\\//;\n var suffix = exported.devicePixelRatio >= 2 || tileSize === 512 ? \"@2x\" : \"\";\n var extension = exported$1.supported ? \".webp\" : \"$1\";\n urlObject.path = urlObject.path.replace(imageExtensionRe, \"\" + suffix + extension);\n urlObject.path = urlObject.path.replace(tileURLAPIPrefixRe, \"/\");\n urlObject.path = \"/v4\" + urlObject.path;\n var accessToken = this._customAccessToken || getAccessToken(urlObject.params) || config.ACCESS_TOKEN;\n if (config.REQUIRE_ACCESS_TOKEN && accessToken && this._skuToken) {\n urlObject.params.push(\"sku=\" + this._skuToken);\n }\n return this._makeAPIURL(urlObject, accessToken);\n };\n RequestManager.prototype.canonicalizeTileURL = function canonicalizeTileURL(url, removeAccessToken) {\n var version2 = \"/v4/\";\n var extensionRe = /\\.[\\w]+$/;\n var urlObject = parseUrl(url);\n if (!urlObject.path.match(/(^\\/v4\\/)/) || !urlObject.path.match(extensionRe)) {\n return url;\n }\n var result = \"mapbox://tiles/\";\n result += urlObject.path.replace(version2, \"\");\n var params = urlObject.params;\n if (removeAccessToken) {\n params = params.filter(function(p) {\n return !p.match(/^access_token=/);\n });\n }\n if (params.length) {\n result += \"?\" + params.join(\"&\");\n }\n return result;\n };\n RequestManager.prototype.canonicalizeTileset = function canonicalizeTileset(tileJSON, sourceURL) {\n var removeAccessToken = sourceURL ? isMapboxURL(sourceURL) : false;\n var canonical = [];\n for (var i = 0, list = tileJSON.tiles || []; i < list.length; i += 1) {\n var url = list[i];\n if (isMapboxHTTPURL(url)) {\n canonical.push(this.canonicalizeTileURL(url, removeAccessToken));\n } else {\n canonical.push(url);\n }\n }\n return canonical;\n };\n RequestManager.prototype._makeAPIURL = function _makeAPIURL(urlObject, accessToken) {\n var help = \"See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes\";\n var apiUrlObject = parseUrl(config.API_URL);\n urlObject.protocol = apiUrlObject.protocol;\n urlObject.authority = apiUrlObject.authority;\n if (urlObject.protocol === \"http\") {\n var i = urlObject.params.indexOf(\"secure\");\n if (i >= 0) {\n urlObject.params.splice(i, 1);\n }\n }\n if (apiUrlObject.path !== \"/\") {\n urlObject.path = \"\" + apiUrlObject.path + urlObject.path;\n }\n if (!config.REQUIRE_ACCESS_TOKEN) {\n return formatUrl(urlObject);\n }\n accessToken = accessToken || config.ACCESS_TOKEN;\n if (!accessToken) {\n throw new Error(\"An API access token is required to use Mapbox GL. \" + help);\n }\n if (accessToken[0] === \"s\") {\n throw new Error(\"Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). \" + help);\n }\n urlObject.params = urlObject.params.filter(function(d) {\n return d.indexOf(\"access_token\") === -1;\n });\n urlObject.params.push(\"access_token=\" + accessToken);\n return formatUrl(urlObject);\n };\n function isMapboxURL(url) {\n return url.indexOf(\"mapbox:\") === 0;\n }\n var mapboxHTTPURLRe = /^((https?:)?\\/\\/)?([^\\/]+\\.)?mapbox\\.c(n|om)(\\/|\\?|$)/i;\n function isMapboxHTTPURL(url) {\n return mapboxHTTPURLRe.test(url);\n }\n function hasCacheDefeatingSku(url) {\n return url.indexOf(\"sku=\") > 0 && isMapboxHTTPURL(url);\n }\n function getAccessToken(params) {\n for (var i = 0, list = params; i < list.length; i += 1) {\n var param = list[i];\n var match = param.match(/^access_token=(.*)$/);\n if (match) {\n return match[1];\n }\n }\n return null;\n }\n var urlRe = /^(\\w+):\\/\\/([^/?]*)(\\/[^?]+)?\\??(.+)?/;\n function parseUrl(url) {\n var parts = url.match(urlRe);\n if (!parts) {\n throw new Error(\"Unable to parse URL object\");\n }\n return {\n protocol: parts[1],\n authority: parts[2],\n path: parts[3] || \"/\",\n params: parts[4] ? parts[4].split(\"&\") : []\n };\n }\n function formatUrl(obj) {\n var params = obj.params.length ? \"?\" + obj.params.join(\"&\") : \"\";\n return obj.protocol + \"://\" + obj.authority + obj.path + params;\n }\n var telemEventKey = \"mapbox.eventData\";\n function parseAccessToken(accessToken) {\n if (!accessToken) {\n return null;\n }\n var parts = accessToken.split(\".\");\n if (!parts || parts.length !== 3) {\n return null;\n }\n try {\n var jsonData = JSON.parse(b64DecodeUnicode(parts[1]));\n return jsonData;\n } catch (e) {\n return null;\n }\n }\n var TelemetryEvent = function TelemetryEvent2(type) {\n this.type = type;\n this.anonId = null;\n this.eventData = {};\n this.queue = [];\n this.pendingRequest = null;\n };\n TelemetryEvent.prototype.getStorageKey = function getStorageKey(domain) {\n var tokenData = parseAccessToken(config.ACCESS_TOKEN);\n var u = \"\";\n if (tokenData && tokenData[\"u\"]) {\n u = b64EncodeUnicode(tokenData[\"u\"]);\n } else {\n u = config.ACCESS_TOKEN || \"\";\n }\n return domain ? telemEventKey + \".\" + domain + \":\" + u : telemEventKey + \":\" + u;\n };\n TelemetryEvent.prototype.fetchEventData = function fetchEventData() {\n var isLocalStorageAvailable = storageAvailable(\"localStorage\");\n var storageKey = this.getStorageKey();\n var uuidKey = this.getStorageKey(\"uuid\");\n if (isLocalStorageAvailable) {\n try {\n var data = window$1.localStorage.getItem(storageKey);\n if (data) {\n this.eventData = JSON.parse(data);\n }\n var uuid2 = window$1.localStorage.getItem(uuidKey);\n if (uuid2) {\n this.anonId = uuid2;\n }\n } catch (e) {\n warnOnce(\"Unable to read from LocalStorage\");\n }\n }\n };\n TelemetryEvent.prototype.saveEventData = function saveEventData() {\n var isLocalStorageAvailable = storageAvailable(\"localStorage\");\n var storageKey = this.getStorageKey();\n var uuidKey = this.getStorageKey(\"uuid\");\n if (isLocalStorageAvailable) {\n try {\n window$1.localStorage.setItem(uuidKey, this.anonId);\n if (Object.keys(this.eventData).length >= 1) {\n window$1.localStorage.setItem(storageKey, JSON.stringify(this.eventData));\n }\n } catch (e) {\n warnOnce(\"Unable to write to LocalStorage\");\n }\n }\n };\n TelemetryEvent.prototype.processRequests = function processRequests(_) {\n };\n TelemetryEvent.prototype.postEvent = function postEvent(timestamp, additionalPayload, callback, customAccessToken) {\n var this$1 = this;\n if (!config.EVENTS_URL) {\n return;\n }\n var eventsUrlObject = parseUrl(config.EVENTS_URL);\n eventsUrlObject.params.push(\"access_token=\" + (customAccessToken || config.ACCESS_TOKEN || \"\"));\n var payload = {\n event: this.type,\n created: new Date(timestamp).toISOString(),\n sdkIdentifier: \"mapbox-gl-js\",\n sdkVersion: version,\n skuId: SKU_ID,\n userId: this.anonId\n };\n var finalPayload = additionalPayload ? extend2(payload, additionalPayload) : payload;\n var request = {\n url: formatUrl(eventsUrlObject),\n headers: { \"Content-Type\": \"text/plain\" },\n body: JSON.stringify([finalPayload])\n };\n this.pendingRequest = postData(request, function(error2) {\n this$1.pendingRequest = null;\n callback(error2);\n this$1.saveEventData();\n this$1.processRequests(customAccessToken);\n });\n };\n TelemetryEvent.prototype.queueRequest = function queueRequest(event, customAccessToken) {\n this.queue.push(event);\n this.processRequests(customAccessToken);\n };\n var MapLoadEvent = function(TelemetryEvent2) {\n function MapLoadEvent2() {\n TelemetryEvent2.call(this, \"map.load\");\n this.success = {};\n this.skuToken = \"\";\n }\n if (TelemetryEvent2)\n MapLoadEvent2.__proto__ = TelemetryEvent2;\n MapLoadEvent2.prototype = Object.create(TelemetryEvent2 && TelemetryEvent2.prototype);\n MapLoadEvent2.prototype.constructor = MapLoadEvent2;\n MapLoadEvent2.prototype.postMapLoadEvent = function postMapLoadEvent2(tileUrls, mapId, skuToken, customAccessToken) {\n this.skuToken = skuToken;\n if (config.EVENTS_URL && customAccessToken || config.ACCESS_TOKEN && Array.isArray(tileUrls) && tileUrls.some(function(url) {\n return isMapboxURL(url) || isMapboxHTTPURL(url);\n })) {\n this.queueRequest({\n id: mapId,\n timestamp: Date.now()\n }, customAccessToken);\n }\n };\n MapLoadEvent2.prototype.processRequests = function processRequests(customAccessToken) {\n var this$1 = this;\n if (this.pendingRequest || this.queue.length === 0) {\n return;\n }\n var ref = this.queue.shift();\n var id2 = ref.id;\n var timestamp = ref.timestamp;\n if (id2 && this.success[id2]) {\n return;\n }\n if (!this.anonId) {\n this.fetchEventData();\n }\n if (!validateUuid(this.anonId)) {\n this.anonId = uuid();\n }\n this.postEvent(timestamp, { skuToken: this.skuToken }, function(err) {\n if (!err) {\n if (id2) {\n this$1.success[id2] = true;\n }\n }\n }, customAccessToken);\n };\n return MapLoadEvent2;\n }(TelemetryEvent);\n var TurnstileEvent = function(TelemetryEvent2) {\n function TurnstileEvent2(customAccessToken) {\n TelemetryEvent2.call(this, \"appUserTurnstile\");\n this._customAccessToken = customAccessToken;\n }\n if (TelemetryEvent2)\n TurnstileEvent2.__proto__ = TelemetryEvent2;\n TurnstileEvent2.prototype = Object.create(TelemetryEvent2 && TelemetryEvent2.prototype);\n TurnstileEvent2.prototype.constructor = TurnstileEvent2;\n TurnstileEvent2.prototype.postTurnstileEvent = function postTurnstileEvent2(tileUrls, customAccessToken) {\n if (config.EVENTS_URL && config.ACCESS_TOKEN && Array.isArray(tileUrls) && tileUrls.some(function(url) {\n return isMapboxURL(url) || isMapboxHTTPURL(url);\n })) {\n this.queueRequest(Date.now(), customAccessToken);\n }\n };\n TurnstileEvent2.prototype.processRequests = function processRequests(customAccessToken) {\n var this$1 = this;\n if (this.pendingRequest || this.queue.length === 0) {\n return;\n }\n if (!this.anonId || !this.eventData.lastSuccess || !this.eventData.tokenU) {\n this.fetchEventData();\n }\n var tokenData = parseAccessToken(config.ACCESS_TOKEN);\n var tokenU = tokenData ? tokenData[\"u\"] : config.ACCESS_TOKEN;\n var dueForEvent = tokenU !== this.eventData.tokenU;\n if (!validateUuid(this.anonId)) {\n this.anonId = uuid();\n dueForEvent = true;\n }\n var nextUpdate = this.queue.shift();\n if (this.eventData.lastSuccess) {\n var lastUpdate = new Date(this.eventData.lastSuccess);\n var nextDate = new Date(nextUpdate);\n var daysElapsed = (nextUpdate - this.eventData.lastSuccess) / (24 * 60 * 60 * 1e3);\n dueForEvent = dueForEvent || daysElapsed >= 1 || daysElapsed < -1 || lastUpdate.getDate() !== nextDate.getDate();\n } else {\n dueForEvent = true;\n }\n if (!dueForEvent) {\n return this.processRequests();\n }\n this.postEvent(nextUpdate, { \"enabled.telemetry\": false }, function(err) {\n if (!err) {\n this$1.eventData.lastSuccess = nextUpdate;\n this$1.eventData.tokenU = tokenU;\n }\n }, customAccessToken);\n };\n return TurnstileEvent2;\n }(TelemetryEvent);\n var turnstileEvent_ = new TurnstileEvent();\n var postTurnstileEvent = turnstileEvent_.postTurnstileEvent.bind(turnstileEvent_);\n var mapLoadEvent_ = new MapLoadEvent();\n var postMapLoadEvent = mapLoadEvent_.postMapLoadEvent.bind(mapLoadEvent_);\n var CACHE_NAME = \"mapbox-tiles\";\n var cacheLimit = 500;\n var cacheCheckThreshold = 50;\n var MIN_TIME_UNTIL_EXPIRY = 1e3 * 60 * 7;\n var sharedCache;\n function cacheOpen() {\n if (window$1.caches && !sharedCache) {\n sharedCache = window$1.caches.open(CACHE_NAME);\n }\n }\n var responseConstructorSupportsReadableStream;\n function prepareBody(response, callback) {\n if (responseConstructorSupportsReadableStream === void 0) {\n try {\n new Response(new ReadableStream());\n responseConstructorSupportsReadableStream = true;\n } catch (e) {\n responseConstructorSupportsReadableStream = false;\n }\n }\n if (responseConstructorSupportsReadableStream) {\n callback(response.body);\n } else {\n response.blob().then(callback);\n }\n }\n function cachePut(request, response, requestTime) {\n cacheOpen();\n if (!sharedCache) {\n return;\n }\n var options = {\n status: response.status,\n statusText: response.statusText,\n headers: new window$1.Headers()\n };\n response.headers.forEach(function(v, k) {\n return options.headers.set(k, v);\n });\n var cacheControl = parseCacheControl(response.headers.get(\"Cache-Control\") || \"\");\n if (cacheControl[\"no-store\"]) {\n return;\n }\n if (cacheControl[\"max-age\"]) {\n options.headers.set(\"Expires\", new Date(requestTime + cacheControl[\"max-age\"] * 1e3).toUTCString());\n }\n var timeUntilExpiry = new Date(options.headers.get(\"Expires\")).getTime() - requestTime;\n if (timeUntilExpiry < MIN_TIME_UNTIL_EXPIRY) {\n return;\n }\n prepareBody(response, function(body) {\n var clonedResponse = new window$1.Response(body, options);\n cacheOpen();\n if (!sharedCache) {\n return;\n }\n sharedCache.then(function(cache) {\n return cache.put(stripQueryParameters(request.url), clonedResponse);\n }).catch(function(e) {\n return warnOnce(e.message);\n });\n });\n }\n function stripQueryParameters(url) {\n var start = url.indexOf(\"?\");\n return start < 0 ? url : url.slice(0, start);\n }\n function cacheGet(request, callback) {\n cacheOpen();\n if (!sharedCache) {\n return callback(null);\n }\n var strippedURL = stripQueryParameters(request.url);\n sharedCache.then(function(cache) {\n cache.match(strippedURL).then(function(response) {\n var fresh = isFresh(response);\n cache.delete(strippedURL);\n if (fresh) {\n cache.put(strippedURL, response.clone());\n }\n callback(null, response, fresh);\n }).catch(callback);\n }).catch(callback);\n }\n function isFresh(response) {\n if (!response) {\n return false;\n }\n var expires = new Date(response.headers.get(\"Expires\") || 0);\n var cacheControl = parseCacheControl(response.headers.get(\"Cache-Control\") || \"\");\n return expires > Date.now() && !cacheControl[\"no-cache\"];\n }\n var globalEntryCounter = Infinity;\n function cacheEntryPossiblyAdded(dispatcher) {\n globalEntryCounter++;\n if (globalEntryCounter > cacheCheckThreshold) {\n dispatcher.getActor().send(\"enforceCacheSizeLimit\", cacheLimit);\n globalEntryCounter = 0;\n }\n }\n function enforceCacheSizeLimit(limit) {\n cacheOpen();\n if (!sharedCache) {\n return;\n }\n sharedCache.then(function(cache) {\n cache.keys().then(function(keys) {\n for (var i = 0; i < keys.length - limit; i++) {\n cache.delete(keys[i]);\n }\n });\n });\n }\n function clearTileCache(callback) {\n var promise = window$1.caches.delete(CACHE_NAME);\n if (callback) {\n promise.catch(callback).then(function() {\n return callback();\n });\n }\n }\n function setCacheLimits(limit, checkThreshold) {\n cacheLimit = limit;\n cacheCheckThreshold = checkThreshold;\n }\n var supportsOffscreenCanvas;\n function offscreenCanvasSupported() {\n if (supportsOffscreenCanvas == null) {\n supportsOffscreenCanvas = window$1.OffscreenCanvas && new window$1.OffscreenCanvas(1, 1).getContext(\"2d\") && typeof window$1.createImageBitmap === \"function\";\n }\n return supportsOffscreenCanvas;\n }\n var ResourceType = {\n Unknown: \"Unknown\",\n Style: \"Style\",\n Source: \"Source\",\n Tile: \"Tile\",\n Glyphs: \"Glyphs\",\n SpriteImage: \"SpriteImage\",\n SpriteJSON: \"SpriteJSON\",\n Image: \"Image\"\n };\n if (typeof Object.freeze == \"function\") {\n Object.freeze(ResourceType);\n }\n var AJAXError = function(Error2) {\n function AJAXError2(message, status2, url) {\n if (status2 === 401 && isMapboxHTTPURL(url)) {\n message += \": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes\";\n }\n Error2.call(this, message);\n this.status = status2;\n this.url = url;\n this.name = this.constructor.name;\n this.message = message;\n }\n if (Error2)\n AJAXError2.__proto__ = Error2;\n AJAXError2.prototype = Object.create(Error2 && Error2.prototype);\n AJAXError2.prototype.constructor = AJAXError2;\n AJAXError2.prototype.toString = function toString2() {\n return this.name + \": \" + this.message + \" (\" + this.status + \"): \" + this.url;\n };\n return AJAXError2;\n }(Error);\n var getReferrer = isWorker() ? function() {\n return self.worker && self.worker.referrer;\n } : function() {\n return (window$1.location.protocol === \"blob:\" ? window$1.parent : window$1).location.href;\n };\n var isFileURL = function(url) {\n return /^file:/.test(url) || /^file:/.test(getReferrer()) && !/^\\w+:/.test(url);\n };\n function makeFetchRequest(requestParameters, callback) {\n var controller = new window$1.AbortController();\n var request = new window$1.Request(requestParameters.url, {\n method: requestParameters.method || \"GET\",\n body: requestParameters.body,\n credentials: requestParameters.credentials,\n headers: requestParameters.headers,\n referrer: getReferrer(),\n signal: controller.signal\n });\n var complete = false;\n var aborted = false;\n var cacheIgnoringSearch = hasCacheDefeatingSku(request.url);\n if (requestParameters.type === \"json\") {\n request.headers.set(\"Accept\", \"application/json\");\n }\n var validateOrFetch = function(err, cachedResponse, responseIsFresh) {\n if (aborted) {\n return;\n }\n if (err) {\n if (err.message !== \"SecurityError\") {\n warnOnce(err);\n }\n }\n if (cachedResponse && responseIsFresh) {\n return finishRequest(cachedResponse);\n }\n var requestTime = Date.now();\n window$1.fetch(request).then(function(response) {\n if (response.ok) {\n var cacheableResponse = cacheIgnoringSearch ? response.clone() : null;\n return finishRequest(response, cacheableResponse, requestTime);\n } else {\n return callback(new AJAXError(response.statusText, response.status, requestParameters.url));\n }\n }).catch(function(error2) {\n if (error2.code === 20) {\n return;\n }\n callback(new Error(error2.message));\n });\n };\n var finishRequest = function(response, cacheableResponse, requestTime) {\n (requestParameters.type === \"arrayBuffer\" ? response.arrayBuffer() : requestParameters.type === \"json\" ? response.json() : response.text()).then(function(result) {\n if (aborted) {\n return;\n }\n if (cacheableResponse && requestTime) {\n cachePut(request, cacheableResponse, requestTime);\n }\n complete = true;\n callback(null, result, response.headers.get(\"Cache-Control\"), response.headers.get(\"Expires\"));\n }).catch(function(err) {\n if (!aborted) {\n callback(new Error(err.message));\n }\n });\n };\n if (cacheIgnoringSearch) {\n cacheGet(request, validateOrFetch);\n } else {\n validateOrFetch(null, null);\n }\n return {\n cancel: function() {\n aborted = true;\n if (!complete) {\n controller.abort();\n }\n }\n };\n }\n function makeXMLHttpRequest(requestParameters, callback) {\n var xhr = new window$1.XMLHttpRequest();\n xhr.open(requestParameters.method || \"GET\", requestParameters.url, true);\n if (requestParameters.type === \"arrayBuffer\") {\n xhr.responseType = \"arraybuffer\";\n }\n for (var k in requestParameters.headers) {\n xhr.setRequestHeader(k, requestParameters.headers[k]);\n }\n if (requestParameters.type === \"json\") {\n xhr.responseType = \"text\";\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n }\n xhr.withCredentials = requestParameters.credentials === \"include\";\n xhr.onerror = function() {\n callback(new Error(xhr.statusText));\n };\n xhr.onload = function() {\n if ((xhr.status >= 200 && xhr.status < 300 || xhr.status === 0) && xhr.response !== null) {\n var data = xhr.response;\n if (requestParameters.type === \"json\") {\n try {\n data = JSON.parse(xhr.response);\n } catch (err) {\n return callback(err);\n }\n }\n callback(null, data, xhr.getResponseHeader(\"Cache-Control\"), xhr.getResponseHeader(\"Expires\"));\n } else {\n callback(new AJAXError(xhr.statusText, xhr.status, requestParameters.url));\n }\n };\n xhr.send(requestParameters.body);\n return {\n cancel: function() {\n return xhr.abort();\n }\n };\n }\n var makeRequest = function(requestParameters, callback) {\n if (!isFileURL(requestParameters.url)) {\n if (window$1.fetch && window$1.Request && window$1.AbortController && window$1.Request.prototype.hasOwnProperty(\"signal\")) {\n return makeFetchRequest(requestParameters, callback);\n }\n if (isWorker() && self.worker && self.worker.actor) {\n var queueOnMainThread = true;\n return self.worker.actor.send(\"getResource\", requestParameters, callback, void 0, queueOnMainThread);\n }\n }\n return makeXMLHttpRequest(requestParameters, callback);\n };\n var getJSON = function(requestParameters, callback) {\n return makeRequest(extend2(requestParameters, { type: \"json\" }), callback);\n };\n var getArrayBuffer = function(requestParameters, callback) {\n return makeRequest(extend2(requestParameters, { type: \"arrayBuffer\" }), callback);\n };\n var postData = function(requestParameters, callback) {\n return makeRequest(extend2(requestParameters, { method: \"POST\" }), callback);\n };\n function sameOrigin(url) {\n var a = window$1.document.createElement(\"a\");\n a.href = url;\n return a.protocol === window$1.document.location.protocol && a.host === window$1.document.location.host;\n }\n var transparentPngUrl = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";\n function arrayBufferToImage(data, callback, cacheControl, expires) {\n var img = new window$1.Image();\n var URL2 = window$1.URL;\n img.onload = function() {\n callback(null, img);\n URL2.revokeObjectURL(img.src);\n img.onload = null;\n window$1.requestAnimationFrame(function() {\n img.src = transparentPngUrl;\n });\n };\n img.onerror = function() {\n return callback(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n };\n var blob = new window$1.Blob([new Uint8Array(data)], { type: \"image/png\" });\n img.cacheControl = cacheControl;\n img.expires = expires;\n img.src = data.byteLength ? URL2.createObjectURL(blob) : transparentPngUrl;\n }\n function arrayBufferToImageBitmap(data, callback) {\n var blob = new window$1.Blob([new Uint8Array(data)], { type: \"image/png\" });\n window$1.createImageBitmap(blob).then(function(imgBitmap) {\n callback(null, imgBitmap);\n }).catch(function(e) {\n callback(new Error(\"Could not load image because of \" + e.message + \". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n });\n }\n var imageQueue, numImageRequests;\n var resetImageRequestQueue = function() {\n imageQueue = [];\n numImageRequests = 0;\n };\n resetImageRequestQueue();\n var getImage = function(requestParameters, callback) {\n if (exported$1.supported) {\n if (!requestParameters.headers) {\n requestParameters.headers = {};\n }\n requestParameters.headers.accept = \"image/webp,*/*\";\n }\n if (numImageRequests >= config.MAX_PARALLEL_IMAGE_REQUESTS) {\n var queued = {\n requestParameters,\n callback,\n cancelled: false,\n cancel: function cancel2() {\n this.cancelled = true;\n }\n };\n imageQueue.push(queued);\n return queued;\n }\n numImageRequests++;\n var advanced = false;\n var advanceImageRequestQueue = function() {\n if (advanced) {\n return;\n }\n advanced = true;\n numImageRequests--;\n while (imageQueue.length && numImageRequests < config.MAX_PARALLEL_IMAGE_REQUESTS) {\n var request2 = imageQueue.shift();\n var requestParameters2 = request2.requestParameters;\n var callback2 = request2.callback;\n var cancelled = request2.cancelled;\n if (!cancelled) {\n request2.cancel = getImage(requestParameters2, callback2).cancel;\n }\n }\n };\n var request = getArrayBuffer(requestParameters, function(err, data, cacheControl, expires) {\n advanceImageRequestQueue();\n if (err) {\n callback(err);\n } else if (data) {\n if (offscreenCanvasSupported()) {\n arrayBufferToImageBitmap(data, callback);\n } else {\n arrayBufferToImage(data, callback, cacheControl, expires);\n }\n }\n });\n return {\n cancel: function() {\n request.cancel();\n advanceImageRequestQueue();\n }\n };\n };\n var getVideo = function(urls, callback) {\n var video = window$1.document.createElement(\"video\");\n video.muted = true;\n video.onloadstart = function() {\n callback(null, video);\n };\n for (var i = 0; i < urls.length; i++) {\n var s = window$1.document.createElement(\"source\");\n if (!sameOrigin(urls[i])) {\n video.crossOrigin = \"Anonymous\";\n }\n s.src = urls[i];\n video.appendChild(s);\n }\n return {\n cancel: function() {\n }\n };\n };\n function _addEventListener(type, listener, listenerList) {\n var listenerExists = listenerList[type] && listenerList[type].indexOf(listener) !== -1;\n if (!listenerExists) {\n listenerList[type] = listenerList[type] || [];\n listenerList[type].push(listener);\n }\n }\n function _removeEventListener(type, listener, listenerList) {\n if (listenerList && listenerList[type]) {\n var index = listenerList[type].indexOf(listener);\n if (index !== -1) {\n listenerList[type].splice(index, 1);\n }\n }\n }\n var Event = function Event2(type, data) {\n if (data === void 0)\n data = {};\n extend2(this, data);\n this.type = type;\n };\n var ErrorEvent = function(Event2) {\n function ErrorEvent2(error2, data) {\n if (data === void 0)\n data = {};\n Event2.call(this, \"error\", extend2({ error: error2 }, data));\n }\n if (Event2)\n ErrorEvent2.__proto__ = Event2;\n ErrorEvent2.prototype = Object.create(Event2 && Event2.prototype);\n ErrorEvent2.prototype.constructor = ErrorEvent2;\n return ErrorEvent2;\n }(Event);\n var Evented = function Evented2() {\n };\n Evented.prototype.on = function on(type, listener) {\n this._listeners = this._listeners || {};\n _addEventListener(type, listener, this._listeners);\n return this;\n };\n Evented.prototype.off = function off(type, listener) {\n _removeEventListener(type, listener, this._listeners);\n _removeEventListener(type, listener, this._oneTimeListeners);\n return this;\n };\n Evented.prototype.once = function once(type, listener) {\n this._oneTimeListeners = this._oneTimeListeners || {};\n _addEventListener(type, listener, this._oneTimeListeners);\n return this;\n };\n Evented.prototype.fire = function fire(event, properties2) {\n if (typeof event === \"string\") {\n event = new Event(event, properties2 || {});\n }\n var type = event.type;\n if (this.listens(type)) {\n event.target = this;\n var listeners = this._listeners && this._listeners[type] ? this._listeners[type].slice() : [];\n for (var i = 0, list = listeners; i < list.length; i += 1) {\n var listener = list[i];\n listener.call(this, event);\n }\n var oneTimeListeners = this._oneTimeListeners && this._oneTimeListeners[type] ? this._oneTimeListeners[type].slice() : [];\n for (var i$1 = 0, list$1 = oneTimeListeners; i$1 < list$1.length; i$1 += 1) {\n var listener$1 = list$1[i$1];\n _removeEventListener(type, listener$1, this._oneTimeListeners);\n listener$1.call(this, event);\n }\n var parent = this._eventedParent;\n if (parent) {\n extend2(event, typeof this._eventedParentData === \"function\" ? this._eventedParentData() : this._eventedParentData);\n parent.fire(event);\n }\n } else if (event instanceof ErrorEvent) {\n console.error(event.error);\n }\n return this;\n };\n Evented.prototype.listens = function listens(type) {\n return this._listeners && this._listeners[type] && this._listeners[type].length > 0 || this._oneTimeListeners && this._oneTimeListeners[type] && this._oneTimeListeners[type].length > 0 || this._eventedParent && this._eventedParent.listens(type);\n };\n Evented.prototype.setEventedParent = function setEventedParent(parent, data) {\n this._eventedParent = parent;\n this._eventedParentData = data;\n return this;\n };\n var $version = 8;\n var $root = {\n version: {\n required: true,\n type: \"enum\",\n values: [\n 8\n ]\n },\n name: {\n type: \"string\"\n },\n metadata: {\n type: \"*\"\n },\n center: {\n type: \"array\",\n value: \"number\"\n },\n zoom: {\n type: \"number\"\n },\n bearing: {\n type: \"number\",\n \"default\": 0,\n period: 360,\n units: \"degrees\"\n },\n pitch: {\n type: \"number\",\n \"default\": 0,\n units: \"degrees\"\n },\n light: {\n type: \"light\"\n },\n sources: {\n required: true,\n type: \"sources\"\n },\n sprite: {\n type: \"string\"\n },\n glyphs: {\n type: \"string\"\n },\n transition: {\n type: \"transition\"\n },\n layers: {\n required: true,\n type: \"array\",\n value: \"layer\"\n }\n };\n var sources = {\n \"*\": {\n type: \"source\"\n }\n };\n var source = [\n \"source_vector\",\n \"source_raster\",\n \"source_raster_dem\",\n \"source_geojson\",\n \"source_video\",\n \"source_image\"\n ];\n var source_vector = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n vector: {}\n }\n },\n url: {\n type: \"string\"\n },\n tiles: {\n type: \"array\",\n value: \"string\"\n },\n bounds: {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n -180,\n -85.051129,\n 180,\n 85.051129\n ]\n },\n scheme: {\n type: \"enum\",\n values: {\n xyz: {},\n tms: {}\n },\n \"default\": \"xyz\"\n },\n minzoom: {\n type: \"number\",\n \"default\": 0\n },\n maxzoom: {\n type: \"number\",\n \"default\": 22\n },\n attribution: {\n type: \"string\"\n },\n promoteId: {\n type: \"promoteId\"\n },\n volatile: {\n type: \"boolean\",\n \"default\": false\n },\n \"*\": {\n type: \"*\"\n }\n };\n var source_raster = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n raster: {}\n }\n },\n url: {\n type: \"string\"\n },\n tiles: {\n type: \"array\",\n value: \"string\"\n },\n bounds: {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n -180,\n -85.051129,\n 180,\n 85.051129\n ]\n },\n minzoom: {\n type: \"number\",\n \"default\": 0\n },\n maxzoom: {\n type: \"number\",\n \"default\": 22\n },\n tileSize: {\n type: \"number\",\n \"default\": 512,\n units: \"pixels\"\n },\n scheme: {\n type: \"enum\",\n values: {\n xyz: {},\n tms: {}\n },\n \"default\": \"xyz\"\n },\n attribution: {\n type: \"string\"\n },\n volatile: {\n type: \"boolean\",\n \"default\": false\n },\n \"*\": {\n type: \"*\"\n }\n };\n var source_raster_dem = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n \"raster-dem\": {}\n }\n },\n url: {\n type: \"string\"\n },\n tiles: {\n type: \"array\",\n value: \"string\"\n },\n bounds: {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n -180,\n -85.051129,\n 180,\n 85.051129\n ]\n },\n minzoom: {\n type: \"number\",\n \"default\": 0\n },\n maxzoom: {\n type: \"number\",\n \"default\": 22\n },\n tileSize: {\n type: \"number\",\n \"default\": 512,\n units: \"pixels\"\n },\n attribution: {\n type: \"string\"\n },\n encoding: {\n type: \"enum\",\n values: {\n terrarium: {},\n mapbox: {}\n },\n \"default\": \"mapbox\"\n },\n volatile: {\n type: \"boolean\",\n \"default\": false\n },\n \"*\": {\n type: \"*\"\n }\n };\n var source_geojson = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n geojson: {}\n }\n },\n data: {\n type: \"*\"\n },\n maxzoom: {\n type: \"number\",\n \"default\": 18\n },\n attribution: {\n type: \"string\"\n },\n buffer: {\n type: \"number\",\n \"default\": 128,\n maximum: 512,\n minimum: 0\n },\n filter: {\n type: \"*\"\n },\n tolerance: {\n type: \"number\",\n \"default\": 0.375\n },\n cluster: {\n type: \"boolean\",\n \"default\": false\n },\n clusterRadius: {\n type: \"number\",\n \"default\": 50,\n minimum: 0\n },\n clusterMaxZoom: {\n type: \"number\"\n },\n clusterMinPoints: {\n type: \"number\"\n },\n clusterProperties: {\n type: \"*\"\n },\n lineMetrics: {\n type: \"boolean\",\n \"default\": false\n },\n generateId: {\n type: \"boolean\",\n \"default\": false\n },\n promoteId: {\n type: \"promoteId\"\n }\n };\n var source_video = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n video: {}\n }\n },\n urls: {\n required: true,\n type: \"array\",\n value: \"string\"\n },\n coordinates: {\n required: true,\n type: \"array\",\n length: 4,\n value: {\n type: \"array\",\n length: 2,\n value: \"number\"\n }\n }\n };\n var source_image = {\n type: {\n required: true,\n type: \"enum\",\n values: {\n image: {}\n }\n },\n url: {\n required: true,\n type: \"string\"\n },\n coordinates: {\n required: true,\n type: \"array\",\n length: 4,\n value: {\n type: \"array\",\n length: 2,\n value: \"number\"\n }\n }\n };\n var layer = {\n id: {\n type: \"string\",\n required: true\n },\n type: {\n type: \"enum\",\n values: {\n fill: {},\n line: {},\n symbol: {},\n circle: {},\n heatmap: {},\n \"fill-extrusion\": {},\n raster: {},\n hillshade: {},\n background: {}\n },\n required: true\n },\n metadata: {\n type: \"*\"\n },\n source: {\n type: \"string\"\n },\n \"source-layer\": {\n type: \"string\"\n },\n minzoom: {\n type: \"number\",\n minimum: 0,\n maximum: 24\n },\n maxzoom: {\n type: \"number\",\n minimum: 0,\n maximum: 24\n },\n filter: {\n type: \"filter\"\n },\n layout: {\n type: \"layout\"\n },\n paint: {\n type: \"paint\"\n }\n };\n var layout = [\n \"layout_fill\",\n \"layout_line\",\n \"layout_circle\",\n \"layout_heatmap\",\n \"layout_fill-extrusion\",\n \"layout_symbol\",\n \"layout_raster\",\n \"layout_hillshade\",\n \"layout_background\"\n ];\n var layout_background = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_fill = {\n \"fill-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_circle = {\n \"circle-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_heatmap = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_line = {\n \"line-cap\": {\n type: \"enum\",\n values: {\n butt: {},\n round: {},\n square: {}\n },\n \"default\": \"butt\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-join\": {\n type: \"enum\",\n values: {\n bevel: {},\n round: {},\n miter: {}\n },\n \"default\": \"miter\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-miter-limit\": {\n type: \"number\",\n \"default\": 2,\n requires: [\n {\n \"line-join\": \"miter\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-round-limit\": {\n type: \"number\",\n \"default\": 1.05,\n requires: [\n {\n \"line-join\": \"round\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_symbol = {\n \"symbol-placement\": {\n type: \"enum\",\n values: {\n point: {},\n line: {},\n \"line-center\": {}\n },\n \"default\": \"point\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"symbol-spacing\": {\n type: \"number\",\n \"default\": 250,\n minimum: 1,\n units: \"pixels\",\n requires: [\n {\n \"symbol-placement\": \"line\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"symbol-avoid-edges\": {\n type: \"boolean\",\n \"default\": false,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"symbol-sort-key\": {\n type: \"number\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"symbol-z-order\": {\n type: \"enum\",\n values: {\n auto: {},\n \"viewport-y\": {},\n source: {}\n },\n \"default\": \"auto\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-allow-overlap\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-ignore-placement\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-optional\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\",\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-rotation-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-size\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n units: \"factor of the original icon size\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-text-fit\": {\n type: \"enum\",\n values: {\n none: {},\n width: {},\n height: {},\n both: {}\n },\n \"default\": \"none\",\n requires: [\n \"icon-image\",\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-text-fit-padding\": {\n type: \"array\",\n value: \"number\",\n length: 4,\n \"default\": [\n 0,\n 0,\n 0,\n 0\n ],\n units: \"pixels\",\n requires: [\n \"icon-image\",\n \"text-field\",\n {\n \"icon-text-fit\": [\n \"both\",\n \"width\",\n \"height\"\n ]\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-image\": {\n type: \"resolvedImage\",\n tokens: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-rotate\": {\n type: \"number\",\n \"default\": 0,\n period: 360,\n units: \"degrees\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-padding\": {\n type: \"number\",\n \"default\": 2,\n minimum: 0,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-keep-upright\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"icon-image\",\n {\n \"icon-rotation-alignment\": \"map\"\n },\n {\n \"symbol-placement\": [\n \"line\",\n \"line-center\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-offset\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-anchor\": {\n type: \"enum\",\n values: {\n center: {},\n left: {},\n right: {},\n top: {},\n bottom: {},\n \"top-left\": {},\n \"top-right\": {},\n \"bottom-left\": {},\n \"bottom-right\": {}\n },\n \"default\": \"center\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-pitch-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-pitch-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-rotation-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {},\n auto: {}\n },\n \"default\": \"auto\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-field\": {\n type: \"formatted\",\n \"default\": \"\",\n tokens: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-font\": {\n type: \"array\",\n value: \"string\",\n \"default\": [\n \"Open Sans Regular\",\n \"Arial Unicode MS Regular\"\n ],\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-size\": {\n type: \"number\",\n \"default\": 16,\n minimum: 0,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-max-width\": {\n type: \"number\",\n \"default\": 10,\n minimum: 0,\n units: \"ems\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-line-height\": {\n type: \"number\",\n \"default\": 1.2,\n units: \"ems\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-letter-spacing\": {\n type: \"number\",\n \"default\": 0,\n units: \"ems\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-justify\": {\n type: \"enum\",\n values: {\n auto: {},\n left: {},\n center: {},\n right: {}\n },\n \"default\": \"center\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-radial-offset\": {\n type: \"number\",\n units: \"ems\",\n \"default\": 0,\n requires: [\n \"text-field\"\n ],\n \"property-type\": \"data-driven\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n }\n },\n \"text-variable-anchor\": {\n type: \"array\",\n value: \"enum\",\n values: {\n center: {},\n left: {},\n right: {},\n top: {},\n bottom: {},\n \"top-left\": {},\n \"top-right\": {},\n \"bottom-left\": {},\n \"bottom-right\": {}\n },\n requires: [\n \"text-field\",\n {\n \"symbol-placement\": [\n \"point\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-anchor\": {\n type: \"enum\",\n values: {\n center: {},\n left: {},\n right: {},\n top: {},\n bottom: {},\n \"top-left\": {},\n \"top-right\": {},\n \"bottom-left\": {},\n \"bottom-right\": {}\n },\n \"default\": \"center\",\n requires: [\n \"text-field\",\n {\n \"!\": \"text-variable-anchor\"\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-max-angle\": {\n type: \"number\",\n \"default\": 45,\n units: \"degrees\",\n requires: [\n \"text-field\",\n {\n \"symbol-placement\": [\n \"line\",\n \"line-center\"\n ]\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-writing-mode\": {\n type: \"array\",\n value: \"enum\",\n values: {\n horizontal: {},\n vertical: {}\n },\n requires: [\n \"text-field\",\n {\n \"symbol-placement\": [\n \"point\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-rotate\": {\n type: \"number\",\n \"default\": 0,\n period: 360,\n units: \"degrees\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-padding\": {\n type: \"number\",\n \"default\": 2,\n minimum: 0,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-keep-upright\": {\n type: \"boolean\",\n \"default\": true,\n requires: [\n \"text-field\",\n {\n \"text-rotation-alignment\": \"map\"\n },\n {\n \"symbol-placement\": [\n \"line\",\n \"line-center\"\n ]\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-transform\": {\n type: \"enum\",\n values: {\n none: {},\n uppercase: {},\n lowercase: {}\n },\n \"default\": \"none\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-offset\": {\n type: \"array\",\n value: \"number\",\n units: \"ems\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n requires: [\n \"text-field\",\n {\n \"!\": \"text-radial-offset\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-allow-overlap\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-ignore-placement\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-optional\": {\n type: \"boolean\",\n \"default\": false,\n requires: [\n \"text-field\",\n \"icon-image\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_raster = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var layout_hillshade = {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n };\n var filter = {\n type: \"array\",\n value: \"*\"\n };\n var filter_operator = {\n type: \"enum\",\n values: {\n \"==\": {},\n \"!=\": {},\n \">\": {},\n \">=\": {},\n \"<\": {},\n \"<=\": {},\n \"in\": {},\n \"!in\": {},\n all: {},\n any: {},\n none: {},\n has: {},\n \"!has\": {},\n within: {}\n }\n };\n var geometry_type = {\n type: \"enum\",\n values: {\n Point: {},\n LineString: {},\n Polygon: {}\n }\n };\n var function_stop = {\n type: \"array\",\n minimum: 0,\n maximum: 24,\n value: [\n \"number\",\n \"color\"\n ],\n length: 2\n };\n var expression = {\n type: \"array\",\n value: \"*\",\n minimum: 1\n };\n var light = {\n anchor: {\n type: \"enum\",\n \"default\": \"viewport\",\n values: {\n map: {},\n viewport: {}\n },\n \"property-type\": \"data-constant\",\n transition: false,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n }\n },\n position: {\n type: \"array\",\n \"default\": [\n 1.15,\n 210,\n 30\n ],\n length: 3,\n value: \"number\",\n \"property-type\": \"data-constant\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n }\n },\n color: {\n type: \"color\",\n \"property-type\": \"data-constant\",\n \"default\": \"#ffffff\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n transition: true\n },\n intensity: {\n type: \"number\",\n \"property-type\": \"data-constant\",\n \"default\": 0.5,\n minimum: 0,\n maximum: 1,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n transition: true\n }\n };\n var paint = [\n \"paint_fill\",\n \"paint_line\",\n \"paint_circle\",\n \"paint_heatmap\",\n \"paint_fill-extrusion\",\n \"paint_symbol\",\n \"paint_raster\",\n \"paint_hillshade\",\n \"paint_background\"\n ];\n var paint_fill = {\n \"fill-antialias\": {\n type: \"boolean\",\n \"default\": true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"fill-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-outline-color\": {\n type: \"color\",\n transition: true,\n requires: [\n {\n \"!\": \"fill-pattern\"\n },\n {\n \"fill-antialias\": true\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"fill-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"cross-faded-data-driven\"\n }\n };\n var paint_line = {\n \"line-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"line-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"line-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"line-width\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-gap-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-offset\": {\n type: \"number\",\n \"default\": 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-blur\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"line-dasharray\": {\n type: \"array\",\n value: \"number\",\n minimum: 0,\n transition: true,\n units: \"line widths\",\n requires: [\n {\n \"!\": \"line-pattern\"\n }\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"cross-faded\"\n },\n \"line-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"cross-faded-data-driven\"\n },\n \"line-gradient\": {\n type: \"color\",\n transition: false,\n requires: [\n {\n \"!\": \"line-dasharray\"\n },\n {\n \"!\": \"line-pattern\"\n },\n {\n source: \"geojson\",\n has: {\n lineMetrics: true\n }\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"line-progress\"\n ]\n },\n \"property-type\": \"color-ramp\"\n }\n };\n var paint_circle = {\n \"circle-radius\": {\n type: \"number\",\n \"default\": 5,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-blur\": {\n type: \"number\",\n \"default\": 0,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"circle-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-pitch-scale\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-pitch-alignment\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"viewport\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"circle-stroke-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-stroke-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"circle-stroke-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n }\n };\n var paint_heatmap = {\n \"heatmap-radius\": {\n type: \"number\",\n \"default\": 30,\n minimum: 1,\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"heatmap-weight\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n transition: false,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"heatmap-intensity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"heatmap-color\": {\n type: \"color\",\n \"default\": [\n \"interpolate\",\n [\n \"linear\"\n ],\n [\n \"heatmap-density\"\n ],\n 0,\n \"rgba(0, 0, 255, 0)\",\n 0.1,\n \"royalblue\",\n 0.3,\n \"cyan\",\n 0.5,\n \"lime\",\n 0.7,\n \"yellow\",\n 1,\n \"red\"\n ],\n transition: false,\n expression: {\n interpolated: true,\n parameters: [\n \"heatmap-density\"\n ]\n },\n \"property-type\": \"color-ramp\"\n },\n \"heatmap-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_symbol = {\n \"icon-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-halo-color\": {\n type: \"color\",\n \"default\": \"rgba(0, 0, 0, 0)\",\n transition: true,\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-halo-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-halo-blur\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"icon-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n requires: [\n \"icon-image\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"icon-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"icon-image\",\n \"icon-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n overridable: true,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-halo-color\": {\n type: \"color\",\n \"default\": \"rgba(0, 0, 0, 0)\",\n transition: true,\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-halo-width\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-halo-blur\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n transition: true,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"text-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n requires: [\n \"text-field\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"text-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"text-field\",\n \"text-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_raster = {\n \"raster-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-hue-rotate\": {\n type: \"number\",\n \"default\": 0,\n period: 360,\n transition: true,\n units: \"degrees\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-brightness-min\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-brightness-max\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-saturation\": {\n type: \"number\",\n \"default\": 0,\n minimum: -1,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-contrast\": {\n type: \"number\",\n \"default\": 0,\n minimum: -1,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-resampling\": {\n type: \"enum\",\n values: {\n linear: {},\n nearest: {}\n },\n \"default\": \"linear\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"raster-fade-duration\": {\n type: \"number\",\n \"default\": 300,\n minimum: 0,\n transition: false,\n units: \"milliseconds\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_hillshade = {\n \"hillshade-illumination-direction\": {\n type: \"number\",\n \"default\": 335,\n minimum: 0,\n maximum: 359,\n transition: false,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-illumination-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"viewport\",\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-exaggeration\": {\n type: \"number\",\n \"default\": 0.5,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-shadow-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-highlight-color\": {\n type: \"color\",\n \"default\": \"#FFFFFF\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"hillshade-accent-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var paint_background = {\n \"background-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"background-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"background-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"cross-faded\"\n },\n \"background-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n };\n var transition = {\n duration: {\n type: \"number\",\n \"default\": 300,\n minimum: 0,\n units: \"milliseconds\"\n },\n delay: {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n units: \"milliseconds\"\n }\n };\n var promoteId = {\n \"*\": {\n type: \"string\"\n }\n };\n var spec = {\n $version,\n $root,\n sources,\n source,\n source_vector,\n source_raster,\n source_raster_dem,\n source_geojson,\n source_video,\n source_image,\n layer,\n layout,\n layout_background,\n layout_fill,\n layout_circle,\n layout_heatmap,\n \"layout_fill-extrusion\": {\n visibility: {\n type: \"enum\",\n values: {\n visible: {},\n none: {}\n },\n \"default\": \"visible\",\n \"property-type\": \"constant\"\n }\n },\n layout_line,\n layout_symbol,\n layout_raster,\n layout_hillshade,\n filter,\n filter_operator,\n geometry_type,\n \"function\": {\n expression: {\n type: \"expression\"\n },\n stops: {\n type: \"array\",\n value: \"function_stop\"\n },\n base: {\n type: \"number\",\n \"default\": 1,\n minimum: 0\n },\n property: {\n type: \"string\",\n \"default\": \"$zoom\"\n },\n type: {\n type: \"enum\",\n values: {\n identity: {},\n exponential: {},\n interval: {},\n categorical: {}\n },\n \"default\": \"exponential\"\n },\n colorSpace: {\n type: \"enum\",\n values: {\n rgb: {},\n lab: {},\n hcl: {}\n },\n \"default\": \"rgb\"\n },\n \"default\": {\n type: \"*\",\n required: false\n }\n },\n function_stop,\n expression,\n light,\n paint,\n paint_fill,\n \"paint_fill-extrusion\": {\n \"fill-extrusion-opacity\": {\n type: \"number\",\n \"default\": 1,\n minimum: 0,\n maximum: 1,\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-extrusion-color\": {\n type: \"color\",\n \"default\": \"#000000\",\n transition: true,\n requires: [\n {\n \"!\": \"fill-extrusion-pattern\"\n }\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-extrusion-translate\": {\n type: \"array\",\n value: \"number\",\n length: 2,\n \"default\": [\n 0,\n 0\n ],\n transition: true,\n units: \"pixels\",\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-extrusion-translate-anchor\": {\n type: \"enum\",\n values: {\n map: {},\n viewport: {}\n },\n \"default\": \"map\",\n requires: [\n \"fill-extrusion-translate\"\n ],\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n },\n \"fill-extrusion-pattern\": {\n type: \"resolvedImage\",\n transition: true,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\",\n \"feature\"\n ]\n },\n \"property-type\": \"cross-faded-data-driven\"\n },\n \"fill-extrusion-height\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n units: \"meters\",\n transition: true,\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-extrusion-base\": {\n type: \"number\",\n \"default\": 0,\n minimum: 0,\n units: \"meters\",\n transition: true,\n requires: [\n \"fill-extrusion-height\"\n ],\n expression: {\n interpolated: true,\n parameters: [\n \"zoom\",\n \"feature\",\n \"feature-state\"\n ]\n },\n \"property-type\": \"data-driven\"\n },\n \"fill-extrusion-vertical-gradient\": {\n type: \"boolean\",\n \"default\": true,\n transition: false,\n expression: {\n interpolated: false,\n parameters: [\n \"zoom\"\n ]\n },\n \"property-type\": \"data-constant\"\n }\n },\n paint_line,\n paint_circle,\n paint_heatmap,\n paint_symbol,\n paint_raster,\n paint_hillshade,\n paint_background,\n transition,\n \"property-type\": {\n \"data-driven\": {\n type: \"property-type\"\n },\n \"cross-faded\": {\n type: \"property-type\"\n },\n \"cross-faded-data-driven\": {\n type: \"property-type\"\n },\n \"color-ramp\": {\n type: \"property-type\"\n },\n \"data-constant\": {\n type: \"property-type\"\n },\n constant: {\n type: \"property-type\"\n }\n },\n promoteId\n };\n var ValidationError = function ValidationError2(key, value, message, identifier) {\n this.message = (key ? key + \": \" : \"\") + message;\n if (identifier) {\n this.identifier = identifier;\n }\n if (value !== null && value !== void 0 && value.__line__) {\n this.line = value.__line__;\n }\n };\n function validateConstants(options) {\n var key = options.key;\n var constants = options.value;\n if (constants) {\n return [new ValidationError(key, constants, \"constants have been deprecated as of v8\")];\n } else {\n return [];\n }\n }\n function extend$1(output) {\n var inputs = [], len = arguments.length - 1;\n while (len-- > 0)\n inputs[len] = arguments[len + 1];\n for (var i = 0, list = inputs; i < list.length; i += 1) {\n var input = list[i];\n for (var k in input) {\n output[k] = input[k];\n }\n }\n return output;\n }\n function unbundle(value) {\n if (value instanceof Number || value instanceof String || value instanceof Boolean) {\n return value.valueOf();\n } else {\n return value;\n }\n }\n function deepUnbundle(value) {\n if (Array.isArray(value)) {\n return value.map(deepUnbundle);\n } else if (value instanceof Object && !(value instanceof Number || value instanceof String || value instanceof Boolean)) {\n var unbundledValue = {};\n for (var key in value) {\n unbundledValue[key] = deepUnbundle(value[key]);\n }\n return unbundledValue;\n }\n return unbundle(value);\n }\n var ParsingError = function(Error2) {\n function ParsingError2(key, message) {\n Error2.call(this, message);\n this.message = message;\n this.key = key;\n }\n if (Error2)\n ParsingError2.__proto__ = Error2;\n ParsingError2.prototype = Object.create(Error2 && Error2.prototype);\n ParsingError2.prototype.constructor = ParsingError2;\n return ParsingError2;\n }(Error);\n var Scope = function Scope2(parent, bindings) {\n if (bindings === void 0)\n bindings = [];\n this.parent = parent;\n this.bindings = {};\n for (var i = 0, list = bindings; i < list.length; i += 1) {\n var ref = list[i];\n var name3 = ref[0];\n var expression2 = ref[1];\n this.bindings[name3] = expression2;\n }\n };\n Scope.prototype.concat = function concat(bindings) {\n return new Scope(this, bindings);\n };\n Scope.prototype.get = function get2(name3) {\n if (this.bindings[name3]) {\n return this.bindings[name3];\n }\n if (this.parent) {\n return this.parent.get(name3);\n }\n throw new Error(name3 + \" not found in scope.\");\n };\n Scope.prototype.has = function has2(name3) {\n if (this.bindings[name3]) {\n return true;\n }\n return this.parent ? this.parent.has(name3) : false;\n };\n var NullType = { kind: \"null\" };\n var NumberType = { kind: \"number\" };\n var StringType = { kind: \"string\" };\n var BooleanType = { kind: \"boolean\" };\n var ColorType = { kind: \"color\" };\n var ObjectType = { kind: \"object\" };\n var ValueType = { kind: \"value\" };\n var ErrorType = { kind: \"error\" };\n var CollatorType = { kind: \"collator\" };\n var FormattedType = { kind: \"formatted\" };\n var ResolvedImageType = { kind: \"resolvedImage\" };\n function array(itemType, N) {\n return {\n kind: \"array\",\n itemType,\n N\n };\n }\n function toString(type) {\n if (type.kind === \"array\") {\n var itemType = toString(type.itemType);\n return typeof type.N === \"number\" ? \"array<\" + itemType + \", \" + type.N + \">\" : type.itemType.kind === \"value\" ? \"array\" : \"array<\" + itemType + \">\";\n } else {\n return type.kind;\n }\n }\n var valueMemberTypes = [\n NullType,\n NumberType,\n StringType,\n BooleanType,\n ColorType,\n FormattedType,\n ObjectType,\n array(ValueType),\n ResolvedImageType\n ];\n function checkSubtype(expected, t) {\n if (t.kind === \"error\") {\n return null;\n } else if (expected.kind === \"array\") {\n if (t.kind === \"array\" && (t.N === 0 && t.itemType.kind === \"value\" || !checkSubtype(expected.itemType, t.itemType)) && (typeof expected.N !== \"number\" || expected.N === t.N)) {\n return null;\n }\n } else if (expected.kind === t.kind) {\n return null;\n } else if (expected.kind === \"value\") {\n for (var i = 0, list = valueMemberTypes; i < list.length; i += 1) {\n var memberType = list[i];\n if (!checkSubtype(memberType, t)) {\n return null;\n }\n }\n }\n return \"Expected \" + toString(expected) + \" but found \" + toString(t) + \" instead.\";\n }\n function isValidType(provided, allowedTypes) {\n return allowedTypes.some(function(t) {\n return t.kind === provided.kind;\n });\n }\n function isValidNativeType(provided, allowedTypes) {\n return allowedTypes.some(function(t) {\n if (t === \"null\") {\n return provided === null;\n } else if (t === \"array\") {\n return Array.isArray(provided);\n } else if (t === \"object\") {\n return provided && !Array.isArray(provided) && typeof provided === \"object\";\n } else {\n return t === typeof provided;\n }\n });\n }\n var csscolorparser = createCommonjsModule(function(module2, exports3) {\n var kCSSColorTable = {\n \"transparent\": [\n 0,\n 0,\n 0,\n 0\n ],\n \"aliceblue\": [\n 240,\n 248,\n 255,\n 1\n ],\n \"antiquewhite\": [\n 250,\n 235,\n 215,\n 1\n ],\n \"aqua\": [\n 0,\n 255,\n 255,\n 1\n ],\n \"aquamarine\": [\n 127,\n 255,\n 212,\n 1\n ],\n \"azure\": [\n 240,\n 255,\n 255,\n 1\n ],\n \"beige\": [\n 245,\n 245,\n 220,\n 1\n ],\n \"bisque\": [\n 255,\n 228,\n 196,\n 1\n ],\n \"black\": [\n 0,\n 0,\n 0,\n 1\n ],\n \"blanchedalmond\": [\n 255,\n 235,\n 205,\n 1\n ],\n \"blue\": [\n 0,\n 0,\n 255,\n 1\n ],\n \"blueviolet\": [\n 138,\n 43,\n 226,\n 1\n ],\n \"brown\": [\n 165,\n 42,\n 42,\n 1\n ],\n \"burlywood\": [\n 222,\n 184,\n 135,\n 1\n ],\n \"cadetblue\": [\n 95,\n 158,\n 160,\n 1\n ],\n \"chartreuse\": [\n 127,\n 255,\n 0,\n 1\n ],\n \"chocolate\": [\n 210,\n 105,\n 30,\n 1\n ],\n \"coral\": [\n 255,\n 127,\n 80,\n 1\n ],\n \"cornflowerblue\": [\n 100,\n 149,\n 237,\n 1\n ],\n \"cornsilk\": [\n 255,\n 248,\n 220,\n 1\n ],\n \"crimson\": [\n 220,\n 20,\n 60,\n 1\n ],\n \"cyan\": [\n 0,\n 255,\n 255,\n 1\n ],\n \"darkblue\": [\n 0,\n 0,\n 139,\n 1\n ],\n \"darkcyan\": [\n 0,\n 139,\n 139,\n 1\n ],\n \"darkgoldenrod\": [\n 184,\n 134,\n 11,\n 1\n ],\n \"darkgray\": [\n 169,\n 169,\n 169,\n 1\n ],\n \"darkgreen\": [\n 0,\n 100,\n 0,\n 1\n ],\n \"darkgrey\": [\n 169,\n 169,\n 169,\n 1\n ],\n \"darkkhaki\": [\n 189,\n 183,\n 107,\n 1\n ],\n \"darkmagenta\": [\n 139,\n 0,\n 139,\n 1\n ],\n \"darkolivegreen\": [\n 85,\n 107,\n 47,\n 1\n ],\n \"darkorange\": [\n 255,\n 140,\n 0,\n 1\n ],\n \"darkorchid\": [\n 153,\n 50,\n 204,\n 1\n ],\n \"darkred\": [\n 139,\n 0,\n 0,\n 1\n ],\n \"darksalmon\": [\n 233,\n 150,\n 122,\n 1\n ],\n \"darkseagreen\": [\n 143,\n 188,\n 143,\n 1\n ],\n \"darkslateblue\": [\n 72,\n 61,\n 139,\n 1\n ],\n \"darkslategray\": [\n 47,\n 79,\n 79,\n 1\n ],\n \"darkslategrey\": [\n 47,\n 79,\n 79,\n 1\n ],\n \"darkturquoise\": [\n 0,\n 206,\n 209,\n 1\n ],\n \"darkviolet\": [\n 148,\n 0,\n 211,\n 1\n ],\n \"deeppink\": [\n 255,\n 20,\n 147,\n 1\n ],\n \"deepskyblue\": [\n 0,\n 191,\n 255,\n 1\n ],\n \"dimgray\": [\n 105,\n 105,\n 105,\n 1\n ],\n \"dimgrey\": [\n 105,\n 105,\n 105,\n 1\n ],\n \"dodgerblue\": [\n 30,\n 144,\n 255,\n 1\n ],\n \"firebrick\": [\n 178,\n 34,\n 34,\n 1\n ],\n \"floralwhite\": [\n 255,\n 250,\n 240,\n 1\n ],\n \"forestgreen\": [\n 34,\n 139,\n 34,\n 1\n ],\n \"fuchsia\": [\n 255,\n 0,\n 255,\n 1\n ],\n \"gainsboro\": [\n 220,\n 220,\n 220,\n 1\n ],\n \"ghostwhite\": [\n 248,\n 248,\n 255,\n 1\n ],\n \"gold\": [\n 255,\n 215,\n 0,\n 1\n ],\n \"goldenrod\": [\n 218,\n 165,\n 32,\n 1\n ],\n \"gray\": [\n 128,\n 128,\n 128,\n 1\n ],\n \"green\": [\n 0,\n 128,\n 0,\n 1\n ],\n \"greenyellow\": [\n 173,\n 255,\n 47,\n 1\n ],\n \"grey\": [\n 128,\n 128,\n 128,\n 1\n ],\n \"honeydew\": [\n 240,\n 255,\n 240,\n 1\n ],\n \"hotpink\": [\n 255,\n 105,\n 180,\n 1\n ],\n \"indianred\": [\n 205,\n 92,\n 92,\n 1\n ],\n \"indigo\": [\n 75,\n 0,\n 130,\n 1\n ],\n \"ivory\": [\n 255,\n 255,\n 240,\n 1\n ],\n \"khaki\": [\n 240,\n 230,\n 140,\n 1\n ],\n \"lavender\": [\n 230,\n 230,\n 250,\n 1\n ],\n \"lavenderblush\": [\n 255,\n 240,\n 245,\n 1\n ],\n \"lawngreen\": [\n 124,\n 252,\n 0,\n 1\n ],\n \"lemonchiffon\": [\n 255,\n 250,\n 205,\n 1\n ],\n \"lightblue\": [\n 173,\n 216,\n 230,\n 1\n ],\n \"lightcoral\": [\n 240,\n 128,\n 128,\n 1\n ],\n \"lightcyan\": [\n 224,\n 255,\n 255,\n 1\n ],\n \"lightgoldenrodyellow\": [\n 250,\n 250,\n 210,\n 1\n ],\n \"lightgray\": [\n 211,\n 211,\n 211,\n 1\n ],\n \"lightgreen\": [\n 144,\n 238,\n 144,\n 1\n ],\n \"lightgrey\": [\n 211,\n 211,\n 211,\n 1\n ],\n \"lightpink\": [\n 255,\n 182,\n 193,\n 1\n ],\n \"lightsalmon\": [\n 255,\n 160,\n 122,\n 1\n ],\n \"lightseagreen\": [\n 32,\n 178,\n 170,\n 1\n ],\n \"lightskyblue\": [\n 135,\n 206,\n 250,\n 1\n ],\n \"lightslategray\": [\n 119,\n 136,\n 153,\n 1\n ],\n \"lightslategrey\": [\n 119,\n 136,\n 153,\n 1\n ],\n \"lightsteelblue\": [\n 176,\n 196,\n 222,\n 1\n ],\n \"lightyellow\": [\n 255,\n 255,\n 224,\n 1\n ],\n \"lime\": [\n 0,\n 255,\n 0,\n 1\n ],\n \"limegreen\": [\n 50,\n 205,\n 50,\n 1\n ],\n \"linen\": [\n 250,\n 240,\n 230,\n 1\n ],\n \"magenta\": [\n 255,\n 0,\n 255,\n 1\n ],\n \"maroon\": [\n 128,\n 0,\n 0,\n 1\n ],\n \"mediumaquamarine\": [\n 102,\n 205,\n 170,\n 1\n ],\n \"mediumblue\": [\n 0,\n 0,\n 205,\n 1\n ],\n \"mediumorchid\": [\n 186,\n 85,\n 211,\n 1\n ],\n \"mediumpurple\": [\n 147,\n 112,\n 219,\n 1\n ],\n \"mediumseagreen\": [\n 60,\n 179,\n 113,\n 1\n ],\n \"mediumslateblue\": [\n 123,\n 104,\n 238,\n 1\n ],\n \"mediumspringgreen\": [\n 0,\n 250,\n 154,\n 1\n ],\n \"mediumturquoise\": [\n 72,\n 209,\n 204,\n 1\n ],\n \"mediumvioletred\": [\n 199,\n 21,\n 133,\n 1\n ],\n \"midnightblue\": [\n 25,\n 25,\n 112,\n 1\n ],\n \"mintcream\": [\n 245,\n 255,\n 250,\n 1\n ],\n \"mistyrose\": [\n 255,\n 228,\n 225,\n 1\n ],\n \"moccasin\": [\n 255,\n 228,\n 181,\n 1\n ],\n \"navajowhite\": [\n 255,\n 222,\n 173,\n 1\n ],\n \"navy\": [\n 0,\n 0,\n 128,\n 1\n ],\n \"oldlace\": [\n 253,\n 245,\n 230,\n 1\n ],\n \"olive\": [\n 128,\n 128,\n 0,\n 1\n ],\n \"olivedrab\": [\n 107,\n 142,\n 35,\n 1\n ],\n \"orange\": [\n 255,\n 165,\n 0,\n 1\n ],\n \"orangered\": [\n 255,\n 69,\n 0,\n 1\n ],\n \"orchid\": [\n 218,\n 112,\n 214,\n 1\n ],\n \"palegoldenrod\": [\n 238,\n 232,\n 170,\n 1\n ],\n \"palegreen\": [\n 152,\n 251,\n 152,\n 1\n ],\n \"paleturquoise\": [\n 175,\n 238,\n 238,\n 1\n ],\n \"palevioletred\": [\n 219,\n 112,\n 147,\n 1\n ],\n \"papayawhip\": [\n 255,\n 239,\n 213,\n 1\n ],\n \"peachpuff\": [\n 255,\n 218,\n 185,\n 1\n ],\n \"peru\": [\n 205,\n 133,\n 63,\n 1\n ],\n \"pink\": [\n 255,\n 192,\n 203,\n 1\n ],\n \"plum\": [\n 221,\n 160,\n 221,\n 1\n ],\n \"powderblue\": [\n 176,\n 224,\n 230,\n 1\n ],\n \"purple\": [\n 128,\n 0,\n 128,\n 1\n ],\n \"rebeccapurple\": [\n 102,\n 51,\n 153,\n 1\n ],\n \"red\": [\n 255,\n 0,\n 0,\n 1\n ],\n \"rosybrown\": [\n 188,\n 143,\n 143,\n 1\n ],\n \"royalblue\": [\n 65,\n 105,\n 225,\n 1\n ],\n \"saddlebrown\": [\n 139,\n 69,\n 19,\n 1\n ],\n \"salmon\": [\n 250,\n 128,\n 114,\n 1\n ],\n \"sandybrown\": [\n 244,\n 164,\n 96,\n 1\n ],\n \"seagreen\": [\n 46,\n 139,\n 87,\n 1\n ],\n \"seashell\": [\n 255,\n 245,\n 238,\n 1\n ],\n \"sienna\": [\n 160,\n 82,\n 45,\n 1\n ],\n \"silver\": [\n 192,\n 192,\n 192,\n 1\n ],\n \"skyblue\": [\n 135,\n 206,\n 235,\n 1\n ],\n \"slateblue\": [\n 106,\n 90,\n 205,\n 1\n ],\n \"slategray\": [\n 112,\n 128,\n 144,\n 1\n ],\n \"slategrey\": [\n 112,\n 128,\n 144,\n 1\n ],\n \"snow\": [\n 255,\n 250,\n 250,\n 1\n ],\n \"springgreen\": [\n 0,\n 255,\n 127,\n 1\n ],\n \"steelblue\": [\n 70,\n 130,\n 180,\n 1\n ],\n \"tan\": [\n 210,\n 180,\n 140,\n 1\n ],\n \"teal\": [\n 0,\n 128,\n 128,\n 1\n ],\n \"thistle\": [\n 216,\n 191,\n 216,\n 1\n ],\n \"tomato\": [\n 255,\n 99,\n 71,\n 1\n ],\n \"turquoise\": [\n 64,\n 224,\n 208,\n 1\n ],\n \"violet\": [\n 238,\n 130,\n 238,\n 1\n ],\n \"wheat\": [\n 245,\n 222,\n 179,\n 1\n ],\n \"white\": [\n 255,\n 255,\n 255,\n 1\n ],\n \"whitesmoke\": [\n 245,\n 245,\n 245,\n 1\n ],\n \"yellow\": [\n 255,\n 255,\n 0,\n 1\n ],\n \"yellowgreen\": [\n 154,\n 205,\n 50,\n 1\n ]\n };\n function clamp_css_byte(i) {\n i = Math.round(i);\n return i < 0 ? 0 : i > 255 ? 255 : i;\n }\n function clamp_css_float(f) {\n return f < 0 ? 0 : f > 1 ? 1 : f;\n }\n function parse_css_int(str) {\n if (str[str.length - 1] === \"%\") {\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n }\n return clamp_css_byte(parseInt(str));\n }\n function parse_css_float(str) {\n if (str[str.length - 1] === \"%\") {\n return clamp_css_float(parseFloat(str) / 100);\n }\n return clamp_css_float(parseFloat(str));\n }\n function css_hue_to_rgb(m1, m2, h) {\n if (h < 0) {\n h += 1;\n } else if (h > 1) {\n h -= 1;\n }\n if (h * 6 < 1) {\n return m1 + (m2 - m1) * h * 6;\n }\n if (h * 2 < 1) {\n return m2;\n }\n if (h * 3 < 2) {\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n }\n return m1;\n }\n function parseCSSColor(css_str) {\n var str = css_str.replace(/ /g, \"\").toLowerCase();\n if (str in kCSSColorTable) {\n return kCSSColorTable[str].slice();\n }\n if (str[0] === \"#\") {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16);\n if (!(iv >= 0 && iv <= 4095)) {\n return null;\n }\n return [\n (iv & 3840) >> 4 | (iv & 3840) >> 8,\n iv & 240 | (iv & 240) >> 4,\n iv & 15 | (iv & 15) << 4,\n 1\n ];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16);\n if (!(iv >= 0 && iv <= 16777215)) {\n return null;\n }\n return [\n (iv & 16711680) >> 16,\n (iv & 65280) >> 8,\n iv & 255,\n 1\n ];\n }\n return null;\n }\n var op = str.indexOf(\"(\"), ep = str.indexOf(\")\");\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op + 1, ep - (op + 1)).split(\",\");\n var alpha = 1;\n switch (fname) {\n case \"rgba\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parse_css_float(params.pop());\n case \"rgb\":\n if (params.length !== 3) {\n return null;\n }\n return [\n parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha\n ];\n case \"hsla\":\n if (params.length !== 4) {\n return null;\n }\n alpha = parse_css_float(params.pop());\n case \"hsl\":\n if (params.length !== 3) {\n return null;\n }\n var h = (parseFloat(params[0]) % 360 + 360) % 360 / 360;\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [\n clamp_css_byte(css_hue_to_rgb(m1, m2, h + 1 / 3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h - 1 / 3) * 255),\n alpha\n ];\n default:\n return null;\n }\n }\n return null;\n }\n try {\n exports3.parseCSSColor = parseCSSColor;\n } catch (e) {\n }\n });\n var csscolorparser_1 = csscolorparser.parseCSSColor;\n var Color2 = function Color3(r, g, b, a) {\n if (a === void 0)\n a = 1;\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n };\n Color2.parse = function parse2(input) {\n if (!input) {\n return void 0;\n }\n if (input instanceof Color2) {\n return input;\n }\n if (typeof input !== \"string\") {\n return void 0;\n }\n var rgba4 = csscolorparser_1(input);\n if (!rgba4) {\n return void 0;\n }\n return new Color2(rgba4[0] / 255 * rgba4[3], rgba4[1] / 255 * rgba4[3], rgba4[2] / 255 * rgba4[3], rgba4[3]);\n };\n Color2.prototype.toString = function toString2() {\n var ref = this.toArray();\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var a = ref[3];\n return \"rgba(\" + Math.round(r) + \",\" + Math.round(g) + \",\" + Math.round(b) + \",\" + a + \")\";\n };\n Color2.prototype.toArray = function toArray() {\n var ref = this;\n var r = ref.r;\n var g = ref.g;\n var b = ref.b;\n var a = ref.a;\n return a === 0 ? [\n 0,\n 0,\n 0,\n 0\n ] : [\n r * 255 / a,\n g * 255 / a,\n b * 255 / a,\n a\n ];\n };\n Color2.black = new Color2(0, 0, 0, 1);\n Color2.white = new Color2(1, 1, 1, 1);\n Color2.transparent = new Color2(0, 0, 0, 0);\n Color2.red = new Color2(1, 0, 0, 1);\n var Collator = function Collator2(caseSensitive, diacriticSensitive, locale) {\n if (caseSensitive) {\n this.sensitivity = diacriticSensitive ? \"variant\" : \"case\";\n } else {\n this.sensitivity = diacriticSensitive ? \"accent\" : \"base\";\n }\n this.locale = locale;\n this.collator = new Intl.Collator(this.locale ? this.locale : [], {\n sensitivity: this.sensitivity,\n usage: \"search\"\n });\n };\n Collator.prototype.compare = function compare2(lhs, rhs) {\n return this.collator.compare(lhs, rhs);\n };\n Collator.prototype.resolvedLocale = function resolvedLocale() {\n return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;\n };\n var FormattedSection = function FormattedSection2(text, image, scale2, fontStack, textColor) {\n this.text = text;\n this.image = image;\n this.scale = scale2;\n this.fontStack = fontStack;\n this.textColor = textColor;\n };\n var Formatted = function Formatted2(sections) {\n this.sections = sections;\n };\n Formatted.fromString = function fromString(unformatted) {\n return new Formatted([new FormattedSection(unformatted, null, null, null, null)]);\n };\n Formatted.prototype.isEmpty = function isEmpty2() {\n if (this.sections.length === 0) {\n return true;\n }\n return !this.sections.some(function(section) {\n return section.text.length !== 0 || section.image && section.image.name.length !== 0;\n });\n };\n Formatted.factory = function factory(text) {\n if (text instanceof Formatted) {\n return text;\n } else {\n return Formatted.fromString(text);\n }\n };\n Formatted.prototype.toString = function toString2() {\n if (this.sections.length === 0) {\n return \"\";\n }\n return this.sections.map(function(section) {\n return section.text;\n }).join(\"\");\n };\n Formatted.prototype.serialize = function serialize2() {\n var serialized = [\"format\"];\n for (var i = 0, list = this.sections; i < list.length; i += 1) {\n var section = list[i];\n if (section.image) {\n serialized.push([\n \"image\",\n section.image.name\n ]);\n continue;\n }\n serialized.push(section.text);\n var options = {};\n if (section.fontStack) {\n options[\"text-font\"] = [\n \"literal\",\n section.fontStack.split(\",\")\n ];\n }\n if (section.scale) {\n options[\"font-scale\"] = section.scale;\n }\n if (section.textColor) {\n options[\"text-color\"] = [\"rgba\"].concat(section.textColor.toArray());\n }\n serialized.push(options);\n }\n return serialized;\n };\n var ResolvedImage = function ResolvedImage2(options) {\n this.name = options.name;\n this.available = options.available;\n };\n ResolvedImage.prototype.toString = function toString2() {\n return this.name;\n };\n ResolvedImage.fromString = function fromString(name3) {\n if (!name3) {\n return null;\n }\n return new ResolvedImage({\n name: name3,\n available: false\n });\n };\n ResolvedImage.prototype.serialize = function serialize2() {\n return [\n \"image\",\n this.name\n ];\n };\n function validateRGBA(r, g, b, a) {\n if (!(typeof r === \"number\" && r >= 0 && r <= 255 && typeof g === \"number\" && g >= 0 && g <= 255 && typeof b === \"number\" && b >= 0 && b <= 255)) {\n var value = typeof a === \"number\" ? [\n r,\n g,\n b,\n a\n ] : [\n r,\n g,\n b\n ];\n return \"Invalid rgba value [\" + value.join(\", \") + \"]: 'r', 'g', and 'b' must be between 0 and 255.\";\n }\n if (!(typeof a === \"undefined\" || typeof a === \"number\" && a >= 0 && a <= 1)) {\n return \"Invalid rgba value [\" + [\n r,\n g,\n b,\n a\n ].join(\", \") + \"]: 'a' must be between 0 and 1.\";\n }\n return null;\n }\n function isValue(mixed) {\n if (mixed === null) {\n return true;\n } else if (typeof mixed === \"string\") {\n return true;\n } else if (typeof mixed === \"boolean\") {\n return true;\n } else if (typeof mixed === \"number\") {\n return true;\n } else if (mixed instanceof Color2) {\n return true;\n } else if (mixed instanceof Collator) {\n return true;\n } else if (mixed instanceof Formatted) {\n return true;\n } else if (mixed instanceof ResolvedImage) {\n return true;\n } else if (Array.isArray(mixed)) {\n for (var i = 0, list = mixed; i < list.length; i += 1) {\n var item = list[i];\n if (!isValue(item)) {\n return false;\n }\n }\n return true;\n } else if (typeof mixed === \"object\") {\n for (var key in mixed) {\n if (!isValue(mixed[key])) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n function typeOf(value) {\n if (value === null) {\n return NullType;\n } else if (typeof value === \"string\") {\n return StringType;\n } else if (typeof value === \"boolean\") {\n return BooleanType;\n } else if (typeof value === \"number\") {\n return NumberType;\n } else if (value instanceof Color2) {\n return ColorType;\n } else if (value instanceof Collator) {\n return CollatorType;\n } else if (value instanceof Formatted) {\n return FormattedType;\n } else if (value instanceof ResolvedImage) {\n return ResolvedImageType;\n } else if (Array.isArray(value)) {\n var length = value.length;\n var itemType;\n for (var i = 0, list = value; i < list.length; i += 1) {\n var item = list[i];\n var t = typeOf(item);\n if (!itemType) {\n itemType = t;\n } else if (itemType === t) {\n continue;\n } else {\n itemType = ValueType;\n break;\n }\n }\n return array(itemType || ValueType, length);\n } else {\n return ObjectType;\n }\n }\n function toString$1(value) {\n var type = typeof value;\n if (value === null) {\n return \"\";\n } else if (type === \"string\" || type === \"number\" || type === \"boolean\") {\n return String(value);\n } else if (value instanceof Color2 || value instanceof Formatted || value instanceof ResolvedImage) {\n return value.toString();\n } else {\n return JSON.stringify(value);\n }\n }\n var Literal = function Literal2(type, value) {\n this.type = type;\n this.value = value;\n };\n Literal.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"'literal' expression requires exactly one argument, but found \" + (args.length - 1) + \" instead.\");\n }\n if (!isValue(args[1])) {\n return context.error(\"invalid value\");\n }\n var value = args[1];\n var type = typeOf(value);\n var expected = context.expectedType;\n if (type.kind === \"array\" && type.N === 0 && expected && expected.kind === \"array\" && (typeof expected.N !== \"number\" || expected.N === 0)) {\n type = expected;\n }\n return new Literal(type, value);\n };\n Literal.prototype.evaluate = function evaluate() {\n return this.value;\n };\n Literal.prototype.eachChild = function eachChild() {\n };\n Literal.prototype.outputDefined = function outputDefined() {\n return true;\n };\n Literal.prototype.serialize = function serialize2() {\n if (this.type.kind === \"array\" || this.type.kind === \"object\") {\n return [\n \"literal\",\n this.value\n ];\n } else if (this.value instanceof Color2) {\n return [\"rgba\"].concat(this.value.toArray());\n } else if (this.value instanceof Formatted) {\n return this.value.serialize();\n } else {\n return this.value;\n }\n };\n var RuntimeError = function RuntimeError2(message) {\n this.name = \"ExpressionEvaluationError\";\n this.message = message;\n };\n RuntimeError.prototype.toJSON = function toJSON() {\n return this.message;\n };\n var types = {\n string: StringType,\n number: NumberType,\n boolean: BooleanType,\n object: ObjectType\n };\n var Assertion = function Assertion2(type, args) {\n this.type = type;\n this.args = args;\n };\n Assertion.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expected at least one argument.\");\n }\n var i = 1;\n var type;\n var name3 = args[0];\n if (name3 === \"array\") {\n var itemType;\n if (args.length > 2) {\n var type$1 = args[1];\n if (typeof type$1 !== \"string\" || !(type$1 in types) || type$1 === \"object\") {\n return context.error('The item type argument of \"array\" must be one of string, number, boolean', 1);\n }\n itemType = types[type$1];\n i++;\n } else {\n itemType = ValueType;\n }\n var N;\n if (args.length > 3) {\n if (args[2] !== null && (typeof args[2] !== \"number\" || args[2] < 0 || args[2] !== Math.floor(args[2]))) {\n return context.error('The length argument to \"array\" must be a positive integer literal', 2);\n }\n N = args[2];\n i++;\n }\n type = array(itemType, N);\n } else {\n type = types[name3];\n }\n var parsed = [];\n for (; i < args.length; i++) {\n var input = context.parse(args[i], i, ValueType);\n if (!input) {\n return null;\n }\n parsed.push(input);\n }\n return new Assertion(type, parsed);\n };\n Assertion.prototype.evaluate = function evaluate(ctx) {\n for (var i = 0; i < this.args.length; i++) {\n var value = this.args[i].evaluate(ctx);\n var error2 = checkSubtype(this.type, typeOf(value));\n if (!error2) {\n return value;\n } else if (i === this.args.length - 1) {\n throw new RuntimeError(\"Expected value to be of type \" + toString(this.type) + \", but found \" + toString(typeOf(value)) + \" instead.\");\n }\n }\n return null;\n };\n Assertion.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n Assertion.prototype.outputDefined = function outputDefined() {\n return this.args.every(function(arg) {\n return arg.outputDefined();\n });\n };\n Assertion.prototype.serialize = function serialize2() {\n var type = this.type;\n var serialized = [type.kind];\n if (type.kind === \"array\") {\n var itemType = type.itemType;\n if (itemType.kind === \"string\" || itemType.kind === \"number\" || itemType.kind === \"boolean\") {\n serialized.push(itemType.kind);\n var N = type.N;\n if (typeof N === \"number\" || this.args.length > 1) {\n serialized.push(N);\n }\n }\n }\n return serialized.concat(this.args.map(function(arg) {\n return arg.serialize();\n }));\n };\n var FormatExpression = function FormatExpression2(sections) {\n this.type = FormattedType;\n this.sections = sections;\n };\n FormatExpression.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expected at least one argument.\");\n }\n var firstArg = args[1];\n if (!Array.isArray(firstArg) && typeof firstArg === \"object\") {\n return context.error(\"First argument must be an image or text section.\");\n }\n var sections = [];\n var nextTokenMayBeObject = false;\n for (var i = 1; i <= args.length - 1; ++i) {\n var arg = args[i];\n if (nextTokenMayBeObject && typeof arg === \"object\" && !Array.isArray(arg)) {\n nextTokenMayBeObject = false;\n var scale2 = null;\n if (arg[\"font-scale\"]) {\n scale2 = context.parse(arg[\"font-scale\"], 1, NumberType);\n if (!scale2) {\n return null;\n }\n }\n var font = null;\n if (arg[\"text-font\"]) {\n font = context.parse(arg[\"text-font\"], 1, array(StringType));\n if (!font) {\n return null;\n }\n }\n var textColor = null;\n if (arg[\"text-color\"]) {\n textColor = context.parse(arg[\"text-color\"], 1, ColorType);\n if (!textColor) {\n return null;\n }\n }\n var lastExpression = sections[sections.length - 1];\n lastExpression.scale = scale2;\n lastExpression.font = font;\n lastExpression.textColor = textColor;\n } else {\n var content = context.parse(args[i], 1, ValueType);\n if (!content) {\n return null;\n }\n var kind = content.type.kind;\n if (kind !== \"string\" && kind !== \"value\" && kind !== \"null\" && kind !== \"resolvedImage\") {\n return context.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");\n }\n nextTokenMayBeObject = true;\n sections.push({\n content,\n scale: null,\n font: null,\n textColor: null\n });\n }\n }\n return new FormatExpression(sections);\n };\n FormatExpression.prototype.evaluate = function evaluate(ctx) {\n var evaluateSection = function(section) {\n var evaluatedContent = section.content.evaluate(ctx);\n if (typeOf(evaluatedContent) === ResolvedImageType) {\n return new FormattedSection(\"\", evaluatedContent, null, null, null);\n }\n return new FormattedSection(toString$1(evaluatedContent), null, section.scale ? section.scale.evaluate(ctx) : null, section.font ? section.font.evaluate(ctx).join(\",\") : null, section.textColor ? section.textColor.evaluate(ctx) : null);\n };\n return new Formatted(this.sections.map(evaluateSection));\n };\n FormatExpression.prototype.eachChild = function eachChild(fn) {\n for (var i = 0, list = this.sections; i < list.length; i += 1) {\n var section = list[i];\n fn(section.content);\n if (section.scale) {\n fn(section.scale);\n }\n if (section.font) {\n fn(section.font);\n }\n if (section.textColor) {\n fn(section.textColor);\n }\n }\n };\n FormatExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n FormatExpression.prototype.serialize = function serialize2() {\n var serialized = [\"format\"];\n for (var i = 0, list = this.sections; i < list.length; i += 1) {\n var section = list[i];\n serialized.push(section.content.serialize());\n var options = {};\n if (section.scale) {\n options[\"font-scale\"] = section.scale.serialize();\n }\n if (section.font) {\n options[\"text-font\"] = section.font.serialize();\n }\n if (section.textColor) {\n options[\"text-color\"] = section.textColor.serialize();\n }\n serialized.push(options);\n }\n return serialized;\n };\n var ImageExpression = function ImageExpression2(input) {\n this.type = ResolvedImageType;\n this.input = input;\n };\n ImageExpression.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"Expected two arguments.\");\n }\n var name3 = context.parse(args[1], 1, StringType);\n if (!name3) {\n return context.error(\"No image name provided.\");\n }\n return new ImageExpression(name3);\n };\n ImageExpression.prototype.evaluate = function evaluate(ctx) {\n var evaluatedImageName = this.input.evaluate(ctx);\n var value = ResolvedImage.fromString(evaluatedImageName);\n if (value && ctx.availableImages) {\n value.available = ctx.availableImages.indexOf(evaluatedImageName) > -1;\n }\n return value;\n };\n ImageExpression.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n };\n ImageExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n ImageExpression.prototype.serialize = function serialize2() {\n return [\n \"image\",\n this.input.serialize()\n ];\n };\n var types$1 = {\n \"to-boolean\": BooleanType,\n \"to-color\": ColorType,\n \"to-number\": NumberType,\n \"to-string\": StringType\n };\n var Coercion = function Coercion2(type, args) {\n this.type = type;\n this.args = args;\n };\n Coercion.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expected at least one argument.\");\n }\n var name3 = args[0];\n if ((name3 === \"to-boolean\" || name3 === \"to-string\") && args.length !== 2) {\n return context.error(\"Expected one argument.\");\n }\n var type = types$1[name3];\n var parsed = [];\n for (var i = 1; i < args.length; i++) {\n var input = context.parse(args[i], i, ValueType);\n if (!input) {\n return null;\n }\n parsed.push(input);\n }\n return new Coercion(type, parsed);\n };\n Coercion.prototype.evaluate = function evaluate(ctx) {\n if (this.type.kind === \"boolean\") {\n return Boolean(this.args[0].evaluate(ctx));\n } else if (this.type.kind === \"color\") {\n var input;\n var error2;\n for (var i = 0, list = this.args; i < list.length; i += 1) {\n var arg = list[i];\n input = arg.evaluate(ctx);\n error2 = null;\n if (input instanceof Color2) {\n return input;\n } else if (typeof input === \"string\") {\n var c = ctx.parseColor(input);\n if (c) {\n return c;\n }\n } else if (Array.isArray(input)) {\n if (input.length < 3 || input.length > 4) {\n error2 = \"Invalid rbga value \" + JSON.stringify(input) + \": expected an array containing either three or four numeric values.\";\n } else {\n error2 = validateRGBA(input[0], input[1], input[2], input[3]);\n }\n if (!error2) {\n return new Color2(input[0] / 255, input[1] / 255, input[2] / 255, input[3]);\n }\n }\n }\n throw new RuntimeError(error2 || \"Could not parse color from value '\" + (typeof input === \"string\" ? input : String(JSON.stringify(input))) + \"'\");\n } else if (this.type.kind === \"number\") {\n var value = null;\n for (var i$1 = 0, list$1 = this.args; i$1 < list$1.length; i$1 += 1) {\n var arg$1 = list$1[i$1];\n value = arg$1.evaluate(ctx);\n if (value === null) {\n return 0;\n }\n var num = Number(value);\n if (isNaN(num)) {\n continue;\n }\n return num;\n }\n throw new RuntimeError(\"Could not convert \" + JSON.stringify(value) + \" to number.\");\n } else if (this.type.kind === \"formatted\") {\n return Formatted.fromString(toString$1(this.args[0].evaluate(ctx)));\n } else if (this.type.kind === \"resolvedImage\") {\n return ResolvedImage.fromString(toString$1(this.args[0].evaluate(ctx)));\n } else {\n return toString$1(this.args[0].evaluate(ctx));\n }\n };\n Coercion.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n Coercion.prototype.outputDefined = function outputDefined() {\n return this.args.every(function(arg) {\n return arg.outputDefined();\n });\n };\n Coercion.prototype.serialize = function serialize2() {\n if (this.type.kind === \"formatted\") {\n return new FormatExpression([{\n content: this.args[0],\n scale: null,\n font: null,\n textColor: null\n }]).serialize();\n }\n if (this.type.kind === \"resolvedImage\") {\n return new ImageExpression(this.args[0]).serialize();\n }\n var serialized = [\"to-\" + this.type.kind];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var geometryTypes = [\n \"Unknown\",\n \"Point\",\n \"LineString\",\n \"Polygon\"\n ];\n var EvaluationContext = function EvaluationContext2() {\n this.globals = null;\n this.feature = null;\n this.featureState = null;\n this.formattedSection = null;\n this._parseColorCache = {};\n this.availableImages = null;\n this.canonical = null;\n };\n EvaluationContext.prototype.id = function id2() {\n return this.feature && \"id\" in this.feature ? this.feature.id : null;\n };\n EvaluationContext.prototype.geometryType = function geometryType() {\n return this.feature ? typeof this.feature.type === \"number\" ? geometryTypes[this.feature.type] : this.feature.type : null;\n };\n EvaluationContext.prototype.geometry = function geometry() {\n return this.feature && \"geometry\" in this.feature ? this.feature.geometry : null;\n };\n EvaluationContext.prototype.canonicalID = function canonicalID() {\n return this.canonical;\n };\n EvaluationContext.prototype.properties = function properties2() {\n return this.feature && this.feature.properties || {};\n };\n EvaluationContext.prototype.parseColor = function parseColor(input) {\n var cached = this._parseColorCache[input];\n if (!cached) {\n cached = this._parseColorCache[input] = Color2.parse(input);\n }\n return cached;\n };\n var CompoundExpression = function CompoundExpression2(name3, type, evaluate, args) {\n this.name = name3;\n this.type = type;\n this._evaluate = evaluate;\n this.args = args;\n };\n CompoundExpression.prototype.evaluate = function evaluate(ctx) {\n return this._evaluate(ctx, this.args);\n };\n CompoundExpression.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n CompoundExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n CompoundExpression.prototype.serialize = function serialize2() {\n return [this.name].concat(this.args.map(function(arg) {\n return arg.serialize();\n }));\n };\n CompoundExpression.parse = function parse2(args, context) {\n var ref$1;\n var op = args[0];\n var definition = CompoundExpression.definitions[op];\n if (!definition) {\n return context.error('Unknown expression \"' + op + '\". If you wanted a literal array, use [\"literal\", [...]].', 0);\n }\n var type = Array.isArray(definition) ? definition[0] : definition.type;\n var availableOverloads = Array.isArray(definition) ? [[\n definition[1],\n definition[2]\n ]] : definition.overloads;\n var overloads = availableOverloads.filter(function(ref2) {\n var signature = ref2[0];\n return !Array.isArray(signature) || signature.length === args.length - 1;\n });\n var signatureContext = null;\n for (var i$3 = 0, list = overloads; i$3 < list.length; i$3 += 1) {\n var ref = list[i$3];\n var params = ref[0];\n var evaluate = ref[1];\n signatureContext = new ParsingContext(context.registry, context.path, null, context.scope);\n var parsedArgs = [];\n var argParseFailed = false;\n for (var i = 1; i < args.length; i++) {\n var arg = args[i];\n var expectedType = Array.isArray(params) ? params[i - 1] : params.type;\n var parsed = signatureContext.parse(arg, 1 + parsedArgs.length, expectedType);\n if (!parsed) {\n argParseFailed = true;\n break;\n }\n parsedArgs.push(parsed);\n }\n if (argParseFailed) {\n continue;\n }\n if (Array.isArray(params)) {\n if (params.length !== parsedArgs.length) {\n signatureContext.error(\"Expected \" + params.length + \" arguments, but found \" + parsedArgs.length + \" instead.\");\n continue;\n }\n }\n for (var i$1 = 0; i$1 < parsedArgs.length; i$1++) {\n var expected = Array.isArray(params) ? params[i$1] : params.type;\n var arg$1 = parsedArgs[i$1];\n signatureContext.concat(i$1 + 1).checkSubtype(expected, arg$1.type);\n }\n if (signatureContext.errors.length === 0) {\n return new CompoundExpression(op, type, evaluate, parsedArgs);\n }\n }\n if (overloads.length === 1) {\n (ref$1 = context.errors).push.apply(ref$1, signatureContext.errors);\n } else {\n var expected$1 = overloads.length ? overloads : availableOverloads;\n var signatures = expected$1.map(function(ref2) {\n var params2 = ref2[0];\n return stringifySignature(params2);\n }).join(\" | \");\n var actualTypes = [];\n for (var i$2 = 1; i$2 < args.length; i$2++) {\n var parsed$1 = context.parse(args[i$2], 1 + actualTypes.length);\n if (!parsed$1) {\n return null;\n }\n actualTypes.push(toString(parsed$1.type));\n }\n context.error(\"Expected arguments of type \" + signatures + \", but found (\" + actualTypes.join(\", \") + \") instead.\");\n }\n return null;\n };\n CompoundExpression.register = function register2(registry2, definitions) {\n CompoundExpression.definitions = definitions;\n for (var name3 in definitions) {\n registry2[name3] = CompoundExpression;\n }\n };\n function stringifySignature(signature) {\n if (Array.isArray(signature)) {\n return \"(\" + signature.map(toString).join(\", \") + \")\";\n } else {\n return \"(\" + toString(signature.type) + \"...)\";\n }\n }\n var CollatorExpression = function CollatorExpression2(caseSensitive, diacriticSensitive, locale) {\n this.type = CollatorType;\n this.locale = locale;\n this.caseSensitive = caseSensitive;\n this.diacriticSensitive = diacriticSensitive;\n };\n CollatorExpression.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"Expected one argument.\");\n }\n var options = args[1];\n if (typeof options !== \"object\" || Array.isArray(options)) {\n return context.error(\"Collator options argument must be an object.\");\n }\n var caseSensitive = context.parse(options[\"case-sensitive\"] === void 0 ? false : options[\"case-sensitive\"], 1, BooleanType);\n if (!caseSensitive) {\n return null;\n }\n var diacriticSensitive = context.parse(options[\"diacritic-sensitive\"] === void 0 ? false : options[\"diacritic-sensitive\"], 1, BooleanType);\n if (!diacriticSensitive) {\n return null;\n }\n var locale = null;\n if (options[\"locale\"]) {\n locale = context.parse(options[\"locale\"], 1, StringType);\n if (!locale) {\n return null;\n }\n }\n return new CollatorExpression(caseSensitive, diacriticSensitive, locale);\n };\n CollatorExpression.prototype.evaluate = function evaluate(ctx) {\n return new Collator(this.caseSensitive.evaluate(ctx), this.diacriticSensitive.evaluate(ctx), this.locale ? this.locale.evaluate(ctx) : null);\n };\n CollatorExpression.prototype.eachChild = function eachChild(fn) {\n fn(this.caseSensitive);\n fn(this.diacriticSensitive);\n if (this.locale) {\n fn(this.locale);\n }\n };\n CollatorExpression.prototype.outputDefined = function outputDefined() {\n return false;\n };\n CollatorExpression.prototype.serialize = function serialize2() {\n var options = {};\n options[\"case-sensitive\"] = this.caseSensitive.serialize();\n options[\"diacritic-sensitive\"] = this.diacriticSensitive.serialize();\n if (this.locale) {\n options[\"locale\"] = this.locale.serialize();\n }\n return [\n \"collator\",\n options\n ];\n };\n var EXTENT = 8192;\n function updateBBox(bbox, coord) {\n bbox[0] = Math.min(bbox[0], coord[0]);\n bbox[1] = Math.min(bbox[1], coord[1]);\n bbox[2] = Math.max(bbox[2], coord[0]);\n bbox[3] = Math.max(bbox[3], coord[1]);\n }\n function mercatorXfromLng(lng) {\n return (180 + lng) / 360;\n }\n function mercatorYfromLat(lat) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))) / 360;\n }\n function boxWithinBox(bbox1, bbox2) {\n if (bbox1[0] <= bbox2[0]) {\n return false;\n }\n if (bbox1[2] >= bbox2[2]) {\n return false;\n }\n if (bbox1[1] <= bbox2[1]) {\n return false;\n }\n if (bbox1[3] >= bbox2[3]) {\n return false;\n }\n return true;\n }\n function getTileCoordinates(p, canonical) {\n var x = mercatorXfromLng(p[0]);\n var y = mercatorYfromLat(p[1]);\n var tilesAtZoom = Math.pow(2, canonical.z);\n return [\n Math.round(x * tilesAtZoom * EXTENT),\n Math.round(y * tilesAtZoom * EXTENT)\n ];\n }\n function onBoundary(p, p1, p2) {\n var x1 = p[0] - p1[0];\n var y1 = p[1] - p1[1];\n var x2 = p[0] - p2[0];\n var y2 = p[1] - p2[1];\n return x1 * y2 - x2 * y1 === 0 && x1 * x2 <= 0 && y1 * y2 <= 0;\n }\n function rayIntersect(p, p1, p2) {\n return p1[1] > p[1] !== p2[1] > p[1] && p[0] < (p2[0] - p1[0]) * (p[1] - p1[1]) / (p2[1] - p1[1]) + p1[0];\n }\n function pointWithinPolygon(point, rings) {\n var inside = false;\n for (var i = 0, len = rings.length; i < len; i++) {\n var ring = rings[i];\n for (var j = 0, len2 = ring.length; j < len2 - 1; j++) {\n if (onBoundary(point, ring[j], ring[j + 1])) {\n return false;\n }\n if (rayIntersect(point, ring[j], ring[j + 1])) {\n inside = !inside;\n }\n }\n }\n return inside;\n }\n function pointWithinPolygons(point, polygons) {\n for (var i = 0; i < polygons.length; i++) {\n if (pointWithinPolygon(point, polygons[i])) {\n return true;\n }\n }\n return false;\n }\n function perp(v1, v2) {\n return v1[0] * v2[1] - v1[1] * v2[0];\n }\n function twoSided(p1, p2, q1, q2) {\n var x1 = p1[0] - q1[0];\n var y1 = p1[1] - q1[1];\n var x2 = p2[0] - q1[0];\n var y2 = p2[1] - q1[1];\n var x3 = q2[0] - q1[0];\n var y3 = q2[1] - q1[1];\n var det1 = x1 * y3 - x3 * y1;\n var det2 = x2 * y3 - x3 * y2;\n if (det1 > 0 && det2 < 0 || det1 < 0 && det2 > 0) {\n return true;\n }\n return false;\n }\n function lineIntersectLine(a, b, c, d) {\n var vectorP = [\n b[0] - a[0],\n b[1] - a[1]\n ];\n var vectorQ = [\n d[0] - c[0],\n d[1] - c[1]\n ];\n if (perp(vectorQ, vectorP) === 0) {\n return false;\n }\n if (twoSided(a, b, c, d) && twoSided(c, d, a, b)) {\n return true;\n }\n return false;\n }\n function lineIntersectPolygon(p1, p2, polygon) {\n for (var i = 0, list = polygon; i < list.length; i += 1) {\n var ring = list[i];\n for (var j = 0; j < ring.length - 1; ++j) {\n if (lineIntersectLine(p1, p2, ring[j], ring[j + 1])) {\n return true;\n }\n }\n }\n return false;\n }\n function lineStringWithinPolygon(line, polygon) {\n for (var i = 0; i < line.length; ++i) {\n if (!pointWithinPolygon(line[i], polygon)) {\n return false;\n }\n }\n for (var i$1 = 0; i$1 < line.length - 1; ++i$1) {\n if (lineIntersectPolygon(line[i$1], line[i$1 + 1], polygon)) {\n return false;\n }\n }\n return true;\n }\n function lineStringWithinPolygons(line, polygons) {\n for (var i = 0; i < polygons.length; i++) {\n if (lineStringWithinPolygon(line, polygons[i])) {\n return true;\n }\n }\n return false;\n }\n function getTilePolygon(coordinates, bbox, canonical) {\n var polygon = [];\n for (var i = 0; i < coordinates.length; i++) {\n var ring = [];\n for (var j = 0; j < coordinates[i].length; j++) {\n var coord = getTileCoordinates(coordinates[i][j], canonical);\n updateBBox(bbox, coord);\n ring.push(coord);\n }\n polygon.push(ring);\n }\n return polygon;\n }\n function getTilePolygons(coordinates, bbox, canonical) {\n var polygons = [];\n for (var i = 0; i < coordinates.length; i++) {\n var polygon = getTilePolygon(coordinates[i], bbox, canonical);\n polygons.push(polygon);\n }\n return polygons;\n }\n function updatePoint(p, bbox, polyBBox, worldSize) {\n if (p[0] < polyBBox[0] || p[0] > polyBBox[2]) {\n var halfWorldSize = worldSize * 0.5;\n var shift = p[0] - polyBBox[0] > halfWorldSize ? -worldSize : polyBBox[0] - p[0] > halfWorldSize ? worldSize : 0;\n if (shift === 0) {\n shift = p[0] - polyBBox[2] > halfWorldSize ? -worldSize : polyBBox[2] - p[0] > halfWorldSize ? worldSize : 0;\n }\n p[0] += shift;\n }\n updateBBox(bbox, p);\n }\n function resetBBox(bbox) {\n bbox[0] = bbox[1] = Infinity;\n bbox[2] = bbox[3] = -Infinity;\n }\n function getTilePoints(geometry, pointBBox, polyBBox, canonical) {\n var worldSize = Math.pow(2, canonical.z) * EXTENT;\n var shifts = [\n canonical.x * EXTENT,\n canonical.y * EXTENT\n ];\n var tilePoints = [];\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var points = list$1[i$1];\n for (var i = 0, list = points; i < list.length; i += 1) {\n var point = list[i];\n var p = [\n point.x + shifts[0],\n point.y + shifts[1]\n ];\n updatePoint(p, pointBBox, polyBBox, worldSize);\n tilePoints.push(p);\n }\n }\n return tilePoints;\n }\n function getTileLines(geometry, lineBBox, polyBBox, canonical) {\n var worldSize = Math.pow(2, canonical.z) * EXTENT;\n var shifts = [\n canonical.x * EXTENT,\n canonical.y * EXTENT\n ];\n var tileLines = [];\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n var tileLine = [];\n for (var i = 0, list = line; i < list.length; i += 1) {\n var point = list[i];\n var p = [\n point.x + shifts[0],\n point.y + shifts[1]\n ];\n updateBBox(lineBBox, p);\n tileLine.push(p);\n }\n tileLines.push(tileLine);\n }\n if (lineBBox[2] - lineBBox[0] <= worldSize / 2) {\n resetBBox(lineBBox);\n for (var i$3 = 0, list$3 = tileLines; i$3 < list$3.length; i$3 += 1) {\n var line$1 = list$3[i$3];\n for (var i$2 = 0, list$2 = line$1; i$2 < list$2.length; i$2 += 1) {\n var p$1 = list$2[i$2];\n updatePoint(p$1, lineBBox, polyBBox, worldSize);\n }\n }\n }\n return tileLines;\n }\n function pointsWithinPolygons(ctx, polygonGeometry) {\n var pointBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var polyBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var canonical = ctx.canonicalID();\n if (polygonGeometry.type === \"Polygon\") {\n var tilePolygon = getTilePolygon(polygonGeometry.coordinates, polyBBox, canonical);\n var tilePoints = getTilePoints(ctx.geometry(), pointBBox, polyBBox, canonical);\n if (!boxWithinBox(pointBBox, polyBBox)) {\n return false;\n }\n for (var i = 0, list = tilePoints; i < list.length; i += 1) {\n var point = list[i];\n if (!pointWithinPolygon(point, tilePolygon)) {\n return false;\n }\n }\n }\n if (polygonGeometry.type === \"MultiPolygon\") {\n var tilePolygons = getTilePolygons(polygonGeometry.coordinates, polyBBox, canonical);\n var tilePoints$1 = getTilePoints(ctx.geometry(), pointBBox, polyBBox, canonical);\n if (!boxWithinBox(pointBBox, polyBBox)) {\n return false;\n }\n for (var i$1 = 0, list$1 = tilePoints$1; i$1 < list$1.length; i$1 += 1) {\n var point$1 = list$1[i$1];\n if (!pointWithinPolygons(point$1, tilePolygons)) {\n return false;\n }\n }\n }\n return true;\n }\n function linesWithinPolygons(ctx, polygonGeometry) {\n var lineBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var polyBBox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n var canonical = ctx.canonicalID();\n if (polygonGeometry.type === \"Polygon\") {\n var tilePolygon = getTilePolygon(polygonGeometry.coordinates, polyBBox, canonical);\n var tileLines = getTileLines(ctx.geometry(), lineBBox, polyBBox, canonical);\n if (!boxWithinBox(lineBBox, polyBBox)) {\n return false;\n }\n for (var i = 0, list = tileLines; i < list.length; i += 1) {\n var line = list[i];\n if (!lineStringWithinPolygon(line, tilePolygon)) {\n return false;\n }\n }\n }\n if (polygonGeometry.type === \"MultiPolygon\") {\n var tilePolygons = getTilePolygons(polygonGeometry.coordinates, polyBBox, canonical);\n var tileLines$1 = getTileLines(ctx.geometry(), lineBBox, polyBBox, canonical);\n if (!boxWithinBox(lineBBox, polyBBox)) {\n return false;\n }\n for (var i$1 = 0, list$1 = tileLines$1; i$1 < list$1.length; i$1 += 1) {\n var line$1 = list$1[i$1];\n if (!lineStringWithinPolygons(line$1, tilePolygons)) {\n return false;\n }\n }\n }\n return true;\n }\n var Within = function Within2(geojson, geometries) {\n this.type = BooleanType;\n this.geojson = geojson;\n this.geometries = geometries;\n };\n Within.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"'within' expression requires exactly one argument, but found \" + (args.length - 1) + \" instead.\");\n }\n if (isValue(args[1])) {\n var geojson = args[1];\n if (geojson.type === \"FeatureCollection\") {\n for (var i = 0; i < geojson.features.length; ++i) {\n var type = geojson.features[i].geometry.type;\n if (type === \"Polygon\" || type === \"MultiPolygon\") {\n return new Within(geojson, geojson.features[i].geometry);\n }\n }\n } else if (geojson.type === \"Feature\") {\n var type$1 = geojson.geometry.type;\n if (type$1 === \"Polygon\" || type$1 === \"MultiPolygon\") {\n return new Within(geojson, geojson.geometry);\n }\n } else if (geojson.type === \"Polygon\" || geojson.type === \"MultiPolygon\") {\n return new Within(geojson, geojson);\n }\n }\n return context.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\");\n };\n Within.prototype.evaluate = function evaluate(ctx) {\n if (ctx.geometry() != null && ctx.canonicalID() != null) {\n if (ctx.geometryType() === \"Point\") {\n return pointsWithinPolygons(ctx, this.geometries);\n } else if (ctx.geometryType() === \"LineString\") {\n return linesWithinPolygons(ctx, this.geometries);\n }\n }\n return false;\n };\n Within.prototype.eachChild = function eachChild() {\n };\n Within.prototype.outputDefined = function outputDefined() {\n return true;\n };\n Within.prototype.serialize = function serialize2() {\n return [\n \"within\",\n this.geojson\n ];\n };\n function isFeatureConstant(e) {\n if (e instanceof CompoundExpression) {\n if (e.name === \"get\" && e.args.length === 1) {\n return false;\n } else if (e.name === \"feature-state\") {\n return false;\n } else if (e.name === \"has\" && e.args.length === 1) {\n return false;\n } else if (e.name === \"properties\" || e.name === \"geometry-type\" || e.name === \"id\") {\n return false;\n } else if (/^filter-/.test(e.name)) {\n return false;\n }\n }\n if (e instanceof Within) {\n return false;\n }\n var result = true;\n e.eachChild(function(arg) {\n if (result && !isFeatureConstant(arg)) {\n result = false;\n }\n });\n return result;\n }\n function isStateConstant(e) {\n if (e instanceof CompoundExpression) {\n if (e.name === \"feature-state\") {\n return false;\n }\n }\n var result = true;\n e.eachChild(function(arg) {\n if (result && !isStateConstant(arg)) {\n result = false;\n }\n });\n return result;\n }\n function isGlobalPropertyConstant(e, properties2) {\n if (e instanceof CompoundExpression && properties2.indexOf(e.name) >= 0) {\n return false;\n }\n var result = true;\n e.eachChild(function(arg) {\n if (result && !isGlobalPropertyConstant(arg, properties2)) {\n result = false;\n }\n });\n return result;\n }\n var Var = function Var2(name3, boundExpression) {\n this.type = boundExpression.type;\n this.name = name3;\n this.boundExpression = boundExpression;\n };\n Var.parse = function parse2(args, context) {\n if (args.length !== 2 || typeof args[1] !== \"string\") {\n return context.error(\"'var' expression requires exactly one string literal argument.\");\n }\n var name3 = args[1];\n if (!context.scope.has(name3)) {\n return context.error('Unknown variable \"' + name3 + '\". Make sure \"' + name3 + '\" has been bound in an enclosing \"let\" expression before using it.', 1);\n }\n return new Var(name3, context.scope.get(name3));\n };\n Var.prototype.evaluate = function evaluate(ctx) {\n return this.boundExpression.evaluate(ctx);\n };\n Var.prototype.eachChild = function eachChild() {\n };\n Var.prototype.outputDefined = function outputDefined() {\n return false;\n };\n Var.prototype.serialize = function serialize2() {\n return [\n \"var\",\n this.name\n ];\n };\n var ParsingContext = function ParsingContext2(registry2, path, expectedType, scope, errors) {\n if (path === void 0)\n path = [];\n if (scope === void 0)\n scope = new Scope();\n if (errors === void 0)\n errors = [];\n this.registry = registry2;\n this.path = path;\n this.key = path.map(function(part) {\n return \"[\" + part + \"]\";\n }).join(\"\");\n this.scope = scope;\n this.errors = errors;\n this.expectedType = expectedType;\n };\n ParsingContext.prototype.parse = function parse2(expr, index, expectedType, bindings, options) {\n if (options === void 0)\n options = {};\n if (index) {\n return this.concat(index, expectedType, bindings)._parse(expr, options);\n }\n return this._parse(expr, options);\n };\n ParsingContext.prototype._parse = function _parse(expr, options) {\n if (expr === null || typeof expr === \"string\" || typeof expr === \"boolean\" || typeof expr === \"number\") {\n expr = [\n \"literal\",\n expr\n ];\n }\n function annotate(parsed2, type, typeAnnotation) {\n if (typeAnnotation === \"assert\") {\n return new Assertion(type, [parsed2]);\n } else if (typeAnnotation === \"coerce\") {\n return new Coercion(type, [parsed2]);\n } else {\n return parsed2;\n }\n }\n if (Array.isArray(expr)) {\n if (expr.length === 0) {\n return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');\n }\n var op = expr[0];\n if (typeof op !== \"string\") {\n this.error(\"Expression name must be a string, but found \" + typeof op + ' instead. If you wanted a literal array, use [\"literal\", [...]].', 0);\n return null;\n }\n var Expr = this.registry[op];\n if (Expr) {\n var parsed = Expr.parse(expr, this);\n if (!parsed) {\n return null;\n }\n if (this.expectedType) {\n var expected = this.expectedType;\n var actual = parsed.type;\n if ((expected.kind === \"string\" || expected.kind === \"number\" || expected.kind === \"boolean\" || expected.kind === \"object\" || expected.kind === \"array\") && actual.kind === \"value\") {\n parsed = annotate(parsed, expected, options.typeAnnotation || \"assert\");\n } else if ((expected.kind === \"color\" || expected.kind === \"formatted\" || expected.kind === \"resolvedImage\") && (actual.kind === \"value\" || actual.kind === \"string\")) {\n parsed = annotate(parsed, expected, options.typeAnnotation || \"coerce\");\n } else if (this.checkSubtype(expected, actual)) {\n return null;\n }\n }\n if (!(parsed instanceof Literal) && parsed.type.kind !== \"resolvedImage\" && isConstant(parsed)) {\n var ec = new EvaluationContext();\n try {\n parsed = new Literal(parsed.type, parsed.evaluate(ec));\n } catch (e) {\n this.error(e.message);\n return null;\n }\n }\n return parsed;\n }\n return this.error('Unknown expression \"' + op + '\". If you wanted a literal array, use [\"literal\", [...]].', 0);\n } else if (typeof expr === \"undefined\") {\n return this.error(\"'undefined' value invalid. Use null instead.\");\n } else if (typeof expr === \"object\") {\n return this.error('Bare objects invalid. Use [\"literal\", {...}] instead.');\n } else {\n return this.error(\"Expected an array, but found \" + typeof expr + \" instead.\");\n }\n };\n ParsingContext.prototype.concat = function concat(index, expectedType, bindings) {\n var path = typeof index === \"number\" ? this.path.concat(index) : this.path;\n var scope = bindings ? this.scope.concat(bindings) : this.scope;\n return new ParsingContext(this.registry, path, expectedType || null, scope, this.errors);\n };\n ParsingContext.prototype.error = function error2(error$1) {\n var keys = [], len = arguments.length - 1;\n while (len-- > 0)\n keys[len] = arguments[len + 1];\n var key = \"\" + this.key + keys.map(function(k) {\n return \"[\" + k + \"]\";\n }).join(\"\");\n this.errors.push(new ParsingError(key, error$1));\n };\n ParsingContext.prototype.checkSubtype = function checkSubtype$1(expected, t) {\n var error2 = checkSubtype(expected, t);\n if (error2) {\n this.error(error2);\n }\n return error2;\n };\n function isConstant(expression2) {\n if (expression2 instanceof Var) {\n return isConstant(expression2.boundExpression);\n } else if (expression2 instanceof CompoundExpression && expression2.name === \"error\") {\n return false;\n } else if (expression2 instanceof CollatorExpression) {\n return false;\n } else if (expression2 instanceof Within) {\n return false;\n }\n var isTypeAnnotation = expression2 instanceof Coercion || expression2 instanceof Assertion;\n var childrenConstant = true;\n expression2.eachChild(function(child) {\n if (isTypeAnnotation) {\n childrenConstant = childrenConstant && isConstant(child);\n } else {\n childrenConstant = childrenConstant && child instanceof Literal;\n }\n });\n if (!childrenConstant) {\n return false;\n }\n return isFeatureConstant(expression2) && isGlobalPropertyConstant(expression2, [\n \"zoom\",\n \"heatmap-density\",\n \"line-progress\",\n \"accumulated\",\n \"is-supported-script\"\n ]);\n }\n function findStopLessThanOrEqualTo(stops, input) {\n var lastIndex = stops.length - 1;\n var lowerIndex = 0;\n var upperIndex = lastIndex;\n var currentIndex = 0;\n var currentValue, nextValue;\n while (lowerIndex <= upperIndex) {\n currentIndex = Math.floor((lowerIndex + upperIndex) / 2);\n currentValue = stops[currentIndex];\n nextValue = stops[currentIndex + 1];\n if (currentValue <= input) {\n if (currentIndex === lastIndex || input < nextValue) {\n return currentIndex;\n }\n lowerIndex = currentIndex + 1;\n } else if (currentValue > input) {\n upperIndex = currentIndex - 1;\n } else {\n throw new RuntimeError(\"Input is not a number.\");\n }\n }\n return 0;\n }\n var Step = function Step2(type, input, stops) {\n this.type = type;\n this.input = input;\n this.labels = [];\n this.outputs = [];\n for (var i = 0, list = stops; i < list.length; i += 1) {\n var ref = list[i];\n var label = ref[0];\n var expression2 = ref[1];\n this.labels.push(label);\n this.outputs.push(expression2);\n }\n };\n Step.parse = function parse2(args, context) {\n if (args.length - 1 < 4) {\n return context.error(\"Expected at least 4 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if ((args.length - 1) % 2 !== 0) {\n return context.error(\"Expected an even number of arguments.\");\n }\n var input = context.parse(args[1], 1, NumberType);\n if (!input) {\n return null;\n }\n var stops = [];\n var outputType = null;\n if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n for (var i = 1; i < args.length; i += 2) {\n var label = i === 1 ? -Infinity : args[i];\n var value = args[i + 1];\n var labelKey = i;\n var valueKey = i + 1;\n if (typeof label !== \"number\") {\n return context.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', labelKey);\n }\n if (stops.length && stops[stops.length - 1][0] >= label) {\n return context.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.', labelKey);\n }\n var parsed = context.parse(value, valueKey, outputType);\n if (!parsed) {\n return null;\n }\n outputType = outputType || parsed.type;\n stops.push([\n label,\n parsed\n ]);\n }\n return new Step(outputType, input, stops);\n };\n Step.prototype.evaluate = function evaluate(ctx) {\n var labels = this.labels;\n var outputs = this.outputs;\n if (labels.length === 1) {\n return outputs[0].evaluate(ctx);\n }\n var value = this.input.evaluate(ctx);\n if (value <= labels[0]) {\n return outputs[0].evaluate(ctx);\n }\n var stopCount = labels.length;\n if (value >= labels[stopCount - 1]) {\n return outputs[stopCount - 1].evaluate(ctx);\n }\n var index = findStopLessThanOrEqualTo(labels, value);\n return outputs[index].evaluate(ctx);\n };\n Step.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n for (var i = 0, list = this.outputs; i < list.length; i += 1) {\n var expression2 = list[i];\n fn(expression2);\n }\n };\n Step.prototype.outputDefined = function outputDefined() {\n return this.outputs.every(function(out) {\n return out.outputDefined();\n });\n };\n Step.prototype.serialize = function serialize2() {\n var serialized = [\n \"step\",\n this.input.serialize()\n ];\n for (var i = 0; i < this.labels.length; i++) {\n if (i > 0) {\n serialized.push(this.labels[i]);\n }\n serialized.push(this.outputs[i].serialize());\n }\n return serialized;\n };\n function number(a, b, t) {\n return a * (1 - t) + b * t;\n }\n function color2(from, to, t) {\n return new Color2(number(from.r, to.r, t), number(from.g, to.g, t), number(from.b, to.b, t), number(from.a, to.a, t));\n }\n function array$1(from, to, t) {\n return from.map(function(d, i) {\n return number(d, to[i], t);\n });\n }\n var interpolate = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n number,\n color: color2,\n array: array$1\n });\n var Xn2 = 0.95047, Yn2 = 1, Zn2 = 1.08883, t02 = 4 / 29, t12 = 6 / 29, t22 = 3 * t12 * t12, t32 = t12 * t12 * t12, deg2rad = Math.PI / 180, rad2deg = 180 / Math.PI;\n function xyz2lab2(t) {\n return t > t32 ? Math.pow(t, 1 / 3) : t / t22 + t02;\n }\n function lab2xyz2(t) {\n return t > t12 ? t * t * t : t22 * (t - t02);\n }\n function xyz2rgb(x) {\n return 255 * (x <= 31308e-7 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n }\n function rgb2xyz(x) {\n x /= 255;\n return x <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n }\n function rgbToLab(rgbColor) {\n var b = rgb2xyz(rgbColor.r), a = rgb2xyz(rgbColor.g), l = rgb2xyz(rgbColor.b), x = xyz2lab2((0.4124564 * b + 0.3575761 * a + 0.1804375 * l) / Xn2), y = xyz2lab2((0.2126729 * b + 0.7151522 * a + 0.072175 * l) / Yn2), z = xyz2lab2((0.0193339 * b + 0.119192 * a + 0.9503041 * l) / Zn2);\n return {\n l: 116 * y - 16,\n a: 500 * (x - y),\n b: 200 * (y - z),\n alpha: rgbColor.a\n };\n }\n function labToRgb(labColor) {\n var y = (labColor.l + 16) / 116, x = isNaN(labColor.a) ? y : y + labColor.a / 500, z = isNaN(labColor.b) ? y : y - labColor.b / 200;\n y = Yn2 * lab2xyz2(y);\n x = Xn2 * lab2xyz2(x);\n z = Zn2 * lab2xyz2(z);\n return new Color2(xyz2rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z), xyz2rgb(-0.969266 * x + 1.8760108 * y + 0.041556 * z), xyz2rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z), labColor.alpha);\n }\n function interpolateLab(from, to, t) {\n return {\n l: number(from.l, to.l, t),\n a: number(from.a, to.a, t),\n b: number(from.b, to.b, t),\n alpha: number(from.alpha, to.alpha, t)\n };\n }\n function rgbToHcl(rgbColor) {\n var ref = rgbToLab(rgbColor);\n var l = ref.l;\n var a = ref.a;\n var b = ref.b;\n var h = Math.atan2(b, a) * rad2deg;\n return {\n h: h < 0 ? h + 360 : h,\n c: Math.sqrt(a * a + b * b),\n l,\n alpha: rgbColor.a\n };\n }\n function hclToRgb(hclColor) {\n var h = hclColor.h * deg2rad, c = hclColor.c, l = hclColor.l;\n return labToRgb({\n l,\n a: Math.cos(h) * c,\n b: Math.sin(h) * c,\n alpha: hclColor.alpha\n });\n }\n function interpolateHue(a, b, t) {\n var d = b - a;\n return a + t * (d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d);\n }\n function interpolateHcl(from, to, t) {\n return {\n h: interpolateHue(from.h, to.h, t),\n c: number(from.c, to.c, t),\n l: number(from.l, to.l, t),\n alpha: number(from.alpha, to.alpha, t)\n };\n }\n var lab3 = {\n forward: rgbToLab,\n reverse: labToRgb,\n interpolate: interpolateLab\n };\n var hcl3 = {\n forward: rgbToHcl,\n reverse: hclToRgb,\n interpolate: interpolateHcl\n };\n var colorSpaces = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n lab: lab3,\n hcl: hcl3\n });\n var Interpolate = function Interpolate2(type, operator, interpolation, input, stops) {\n this.type = type;\n this.operator = operator;\n this.interpolation = interpolation;\n this.input = input;\n this.labels = [];\n this.outputs = [];\n for (var i = 0, list = stops; i < list.length; i += 1) {\n var ref = list[i];\n var label = ref[0];\n var expression2 = ref[1];\n this.labels.push(label);\n this.outputs.push(expression2);\n }\n };\n Interpolate.interpolationFactor = function interpolationFactor2(interpolation, input, lower, upper) {\n var t = 0;\n if (interpolation.name === \"exponential\") {\n t = exponentialInterpolation(input, interpolation.base, lower, upper);\n } else if (interpolation.name === \"linear\") {\n t = exponentialInterpolation(input, 1, lower, upper);\n } else if (interpolation.name === \"cubic-bezier\") {\n var c = interpolation.controlPoints;\n var ub = new unitbezier(c[0], c[1], c[2], c[3]);\n t = ub.solve(exponentialInterpolation(input, 1, lower, upper));\n }\n return t;\n };\n Interpolate.parse = function parse2(args, context) {\n var operator = args[0];\n var interpolation = args[1];\n var input = args[2];\n var rest = args.slice(3);\n if (!Array.isArray(interpolation) || interpolation.length === 0) {\n return context.error(\"Expected an interpolation type expression.\", 1);\n }\n if (interpolation[0] === \"linear\") {\n interpolation = { name: \"linear\" };\n } else if (interpolation[0] === \"exponential\") {\n var base = interpolation[1];\n if (typeof base !== \"number\") {\n return context.error(\"Exponential interpolation requires a numeric base.\", 1, 1);\n }\n interpolation = {\n name: \"exponential\",\n base\n };\n } else if (interpolation[0] === \"cubic-bezier\") {\n var controlPoints = interpolation.slice(1);\n if (controlPoints.length !== 4 || controlPoints.some(function(t) {\n return typeof t !== \"number\" || t < 0 || t > 1;\n })) {\n return context.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\", 1);\n }\n interpolation = {\n name: \"cubic-bezier\",\n controlPoints\n };\n } else {\n return context.error(\"Unknown interpolation type \" + String(interpolation[0]), 1, 0);\n }\n if (args.length - 1 < 4) {\n return context.error(\"Expected at least 4 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if ((args.length - 1) % 2 !== 0) {\n return context.error(\"Expected an even number of arguments.\");\n }\n input = context.parse(input, 2, NumberType);\n if (!input) {\n return null;\n }\n var stops = [];\n var outputType = null;\n if (operator === \"interpolate-hcl\" || operator === \"interpolate-lab\") {\n outputType = ColorType;\n } else if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n for (var i = 0; i < rest.length; i += 2) {\n var label = rest[i];\n var value = rest[i + 1];\n var labelKey = i + 3;\n var valueKey = i + 4;\n if (typeof label !== \"number\") {\n return context.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', labelKey);\n }\n if (stops.length && stops[stops.length - 1][0] >= label) {\n return context.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.', labelKey);\n }\n var parsed = context.parse(value, valueKey, outputType);\n if (!parsed) {\n return null;\n }\n outputType = outputType || parsed.type;\n stops.push([\n label,\n parsed\n ]);\n }\n if (outputType.kind !== \"number\" && outputType.kind !== \"color\" && !(outputType.kind === \"array\" && outputType.itemType.kind === \"number\" && typeof outputType.N === \"number\")) {\n return context.error(\"Type \" + toString(outputType) + \" is not interpolatable.\");\n }\n return new Interpolate(outputType, operator, interpolation, input, stops);\n };\n Interpolate.prototype.evaluate = function evaluate(ctx) {\n var labels = this.labels;\n var outputs = this.outputs;\n if (labels.length === 1) {\n return outputs[0].evaluate(ctx);\n }\n var value = this.input.evaluate(ctx);\n if (value <= labels[0]) {\n return outputs[0].evaluate(ctx);\n }\n var stopCount = labels.length;\n if (value >= labels[stopCount - 1]) {\n return outputs[stopCount - 1].evaluate(ctx);\n }\n var index = findStopLessThanOrEqualTo(labels, value);\n var lower = labels[index];\n var upper = labels[index + 1];\n var t = Interpolate.interpolationFactor(this.interpolation, value, lower, upper);\n var outputLower = outputs[index].evaluate(ctx);\n var outputUpper = outputs[index + 1].evaluate(ctx);\n if (this.operator === \"interpolate\") {\n return interpolate[this.type.kind.toLowerCase()](outputLower, outputUpper, t);\n } else if (this.operator === \"interpolate-hcl\") {\n return hcl3.reverse(hcl3.interpolate(hcl3.forward(outputLower), hcl3.forward(outputUpper), t));\n } else {\n return lab3.reverse(lab3.interpolate(lab3.forward(outputLower), lab3.forward(outputUpper), t));\n }\n };\n Interpolate.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n for (var i = 0, list = this.outputs; i < list.length; i += 1) {\n var expression2 = list[i];\n fn(expression2);\n }\n };\n Interpolate.prototype.outputDefined = function outputDefined() {\n return this.outputs.every(function(out) {\n return out.outputDefined();\n });\n };\n Interpolate.prototype.serialize = function serialize2() {\n var interpolation;\n if (this.interpolation.name === \"linear\") {\n interpolation = [\"linear\"];\n } else if (this.interpolation.name === \"exponential\") {\n if (this.interpolation.base === 1) {\n interpolation = [\"linear\"];\n } else {\n interpolation = [\n \"exponential\",\n this.interpolation.base\n ];\n }\n } else {\n interpolation = [\"cubic-bezier\"].concat(this.interpolation.controlPoints);\n }\n var serialized = [\n this.operator,\n interpolation,\n this.input.serialize()\n ];\n for (var i = 0; i < this.labels.length; i++) {\n serialized.push(this.labels[i], this.outputs[i].serialize());\n }\n return serialized;\n };\n function exponentialInterpolation(input, base, lowerValue, upperValue) {\n var difference = upperValue - lowerValue;\n var progress = input - lowerValue;\n if (difference === 0) {\n return 0;\n } else if (base === 1) {\n return progress / difference;\n } else {\n return (Math.pow(base, progress) - 1) / (Math.pow(base, difference) - 1);\n }\n }\n var Coalesce = function Coalesce2(type, args) {\n this.type = type;\n this.args = args;\n };\n Coalesce.parse = function parse2(args, context) {\n if (args.length < 2) {\n return context.error(\"Expectected at least one argument.\");\n }\n var outputType = null;\n var expectedType = context.expectedType;\n if (expectedType && expectedType.kind !== \"value\") {\n outputType = expectedType;\n }\n var parsedArgs = [];\n for (var i = 0, list = args.slice(1); i < list.length; i += 1) {\n var arg = list[i];\n var parsed = context.parse(arg, 1 + parsedArgs.length, outputType, void 0, { typeAnnotation: \"omit\" });\n if (!parsed) {\n return null;\n }\n outputType = outputType || parsed.type;\n parsedArgs.push(parsed);\n }\n var needsAnnotation = expectedType && parsedArgs.some(function(arg2) {\n return checkSubtype(expectedType, arg2.type);\n });\n return needsAnnotation ? new Coalesce(ValueType, parsedArgs) : new Coalesce(outputType, parsedArgs);\n };\n Coalesce.prototype.evaluate = function evaluate(ctx) {\n var result = null;\n var argCount = 0;\n var requestedImageName;\n for (var i = 0, list = this.args; i < list.length; i += 1) {\n var arg = list[i];\n argCount++;\n result = arg.evaluate(ctx);\n if (result && result instanceof ResolvedImage && !result.available) {\n if (!requestedImageName) {\n requestedImageName = result.name;\n }\n result = null;\n if (argCount === this.args.length) {\n result = requestedImageName;\n }\n }\n if (result !== null) {\n break;\n }\n }\n return result;\n };\n Coalesce.prototype.eachChild = function eachChild(fn) {\n this.args.forEach(fn);\n };\n Coalesce.prototype.outputDefined = function outputDefined() {\n return this.args.every(function(arg) {\n return arg.outputDefined();\n });\n };\n Coalesce.prototype.serialize = function serialize2() {\n var serialized = [\"coalesce\"];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var Let = function Let2(bindings, result) {\n this.type = result.type;\n this.bindings = [].concat(bindings);\n this.result = result;\n };\n Let.prototype.evaluate = function evaluate(ctx) {\n return this.result.evaluate(ctx);\n };\n Let.prototype.eachChild = function eachChild(fn) {\n for (var i = 0, list = this.bindings; i < list.length; i += 1) {\n var binding = list[i];\n fn(binding[1]);\n }\n fn(this.result);\n };\n Let.parse = function parse2(args, context) {\n if (args.length < 4) {\n return context.error(\"Expected at least 3 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var bindings = [];\n for (var i = 1; i < args.length - 1; i += 2) {\n var name3 = args[i];\n if (typeof name3 !== \"string\") {\n return context.error(\"Expected string, but found \" + typeof name3 + \" instead.\", i);\n }\n if (/[^a-zA-Z0-9_]/.test(name3)) {\n return context.error(\"Variable names must contain only alphanumeric characters or '_'.\", i);\n }\n var value = context.parse(args[i + 1], i + 1);\n if (!value) {\n return null;\n }\n bindings.push([\n name3,\n value\n ]);\n }\n var result = context.parse(args[args.length - 1], args.length - 1, context.expectedType, bindings);\n if (!result) {\n return null;\n }\n return new Let(bindings, result);\n };\n Let.prototype.outputDefined = function outputDefined() {\n return this.result.outputDefined();\n };\n Let.prototype.serialize = function serialize2() {\n var serialized = [\"let\"];\n for (var i = 0, list = this.bindings; i < list.length; i += 1) {\n var ref = list[i];\n var name3 = ref[0];\n var expr = ref[1];\n serialized.push(name3, expr.serialize());\n }\n serialized.push(this.result.serialize());\n return serialized;\n };\n var At = function At2(type, index, input) {\n this.type = type;\n this.index = index;\n this.input = input;\n };\n At.parse = function parse2(args, context) {\n if (args.length !== 3) {\n return context.error(\"Expected 2 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var index = context.parse(args[1], 1, NumberType);\n var input = context.parse(args[2], 2, array(context.expectedType || ValueType));\n if (!index || !input) {\n return null;\n }\n var t = input.type;\n return new At(t.itemType, index, input);\n };\n At.prototype.evaluate = function evaluate(ctx) {\n var index = this.index.evaluate(ctx);\n var array2 = this.input.evaluate(ctx);\n if (index < 0) {\n throw new RuntimeError(\"Array index out of bounds: \" + index + \" < 0.\");\n }\n if (index >= array2.length) {\n throw new RuntimeError(\"Array index out of bounds: \" + index + \" > \" + (array2.length - 1) + \".\");\n }\n if (index !== Math.floor(index)) {\n throw new RuntimeError(\"Array index must be an integer, but found \" + index + \" instead.\");\n }\n return array2[index];\n };\n At.prototype.eachChild = function eachChild(fn) {\n fn(this.index);\n fn(this.input);\n };\n At.prototype.outputDefined = function outputDefined() {\n return false;\n };\n At.prototype.serialize = function serialize2() {\n return [\n \"at\",\n this.index.serialize(),\n this.input.serialize()\n ];\n };\n var In = function In2(needle, haystack) {\n this.type = BooleanType;\n this.needle = needle;\n this.haystack = haystack;\n };\n In.parse = function parse2(args, context) {\n if (args.length !== 3) {\n return context.error(\"Expected 2 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var needle = context.parse(args[1], 1, ValueType);\n var haystack = context.parse(args[2], 2, ValueType);\n if (!needle || !haystack) {\n return null;\n }\n if (!isValidType(needle.type, [\n BooleanType,\n StringType,\n NumberType,\n NullType,\n ValueType\n ])) {\n return context.error(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(needle.type) + \" instead\");\n }\n return new In(needle, haystack);\n };\n In.prototype.evaluate = function evaluate(ctx) {\n var needle = this.needle.evaluate(ctx);\n var haystack = this.haystack.evaluate(ctx);\n if (!haystack) {\n return false;\n }\n if (!isValidNativeType(needle, [\n \"boolean\",\n \"string\",\n \"number\",\n \"null\"\n ])) {\n throw new RuntimeError(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(typeOf(needle)) + \" instead.\");\n }\n if (!isValidNativeType(haystack, [\n \"string\",\n \"array\"\n ])) {\n throw new RuntimeError(\"Expected second argument to be of type array or string, but found \" + toString(typeOf(haystack)) + \" instead.\");\n }\n return haystack.indexOf(needle) >= 0;\n };\n In.prototype.eachChild = function eachChild(fn) {\n fn(this.needle);\n fn(this.haystack);\n };\n In.prototype.outputDefined = function outputDefined() {\n return true;\n };\n In.prototype.serialize = function serialize2() {\n return [\n \"in\",\n this.needle.serialize(),\n this.haystack.serialize()\n ];\n };\n var IndexOf = function IndexOf2(needle, haystack, fromIndex) {\n this.type = NumberType;\n this.needle = needle;\n this.haystack = haystack;\n this.fromIndex = fromIndex;\n };\n IndexOf.parse = function parse2(args, context) {\n if (args.length <= 2 || args.length >= 5) {\n return context.error(\"Expected 3 or 4 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var needle = context.parse(args[1], 1, ValueType);\n var haystack = context.parse(args[2], 2, ValueType);\n if (!needle || !haystack) {\n return null;\n }\n if (!isValidType(needle.type, [\n BooleanType,\n StringType,\n NumberType,\n NullType,\n ValueType\n ])) {\n return context.error(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(needle.type) + \" instead\");\n }\n if (args.length === 4) {\n var fromIndex = context.parse(args[3], 3, NumberType);\n if (!fromIndex) {\n return null;\n }\n return new IndexOf(needle, haystack, fromIndex);\n } else {\n return new IndexOf(needle, haystack);\n }\n };\n IndexOf.prototype.evaluate = function evaluate(ctx) {\n var needle = this.needle.evaluate(ctx);\n var haystack = this.haystack.evaluate(ctx);\n if (!isValidNativeType(needle, [\n \"boolean\",\n \"string\",\n \"number\",\n \"null\"\n ])) {\n throw new RuntimeError(\"Expected first argument to be of type boolean, string, number or null, but found \" + toString(typeOf(needle)) + \" instead.\");\n }\n if (!isValidNativeType(haystack, [\n \"string\",\n \"array\"\n ])) {\n throw new RuntimeError(\"Expected second argument to be of type array or string, but found \" + toString(typeOf(haystack)) + \" instead.\");\n }\n if (this.fromIndex) {\n var fromIndex = this.fromIndex.evaluate(ctx);\n return haystack.indexOf(needle, fromIndex);\n }\n return haystack.indexOf(needle);\n };\n IndexOf.prototype.eachChild = function eachChild(fn) {\n fn(this.needle);\n fn(this.haystack);\n if (this.fromIndex) {\n fn(this.fromIndex);\n }\n };\n IndexOf.prototype.outputDefined = function outputDefined() {\n return false;\n };\n IndexOf.prototype.serialize = function serialize2() {\n if (this.fromIndex != null && this.fromIndex !== void 0) {\n var fromIndex = this.fromIndex.serialize();\n return [\n \"index-of\",\n this.needle.serialize(),\n this.haystack.serialize(),\n fromIndex\n ];\n }\n return [\n \"index-of\",\n this.needle.serialize(),\n this.haystack.serialize()\n ];\n };\n var Match = function Match2(inputType, outputType, input, cases, outputs, otherwise) {\n this.inputType = inputType;\n this.type = outputType;\n this.input = input;\n this.cases = cases;\n this.outputs = outputs;\n this.otherwise = otherwise;\n };\n Match.parse = function parse2(args, context) {\n if (args.length < 5) {\n return context.error(\"Expected at least 4 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if (args.length % 2 !== 1) {\n return context.error(\"Expected an even number of arguments.\");\n }\n var inputType;\n var outputType;\n if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n var cases = {};\n var outputs = [];\n for (var i = 2; i < args.length - 1; i += 2) {\n var labels = args[i];\n var value = args[i + 1];\n if (!Array.isArray(labels)) {\n labels = [labels];\n }\n var labelContext = context.concat(i);\n if (labels.length === 0) {\n return labelContext.error(\"Expected at least one branch label.\");\n }\n for (var i$1 = 0, list = labels; i$1 < list.length; i$1 += 1) {\n var label = list[i$1];\n if (typeof label !== \"number\" && typeof label !== \"string\") {\n return labelContext.error(\"Branch labels must be numbers or strings.\");\n } else if (typeof label === \"number\" && Math.abs(label) > Number.MAX_SAFE_INTEGER) {\n return labelContext.error(\"Branch labels must be integers no larger than \" + Number.MAX_SAFE_INTEGER + \".\");\n } else if (typeof label === \"number\" && Math.floor(label) !== label) {\n return labelContext.error(\"Numeric branch labels must be integer values.\");\n } else if (!inputType) {\n inputType = typeOf(label);\n } else if (labelContext.checkSubtype(inputType, typeOf(label))) {\n return null;\n }\n if (typeof cases[String(label)] !== \"undefined\") {\n return labelContext.error(\"Branch labels must be unique.\");\n }\n cases[String(label)] = outputs.length;\n }\n var result = context.parse(value, i, outputType);\n if (!result) {\n return null;\n }\n outputType = outputType || result.type;\n outputs.push(result);\n }\n var input = context.parse(args[1], 1, ValueType);\n if (!input) {\n return null;\n }\n var otherwise = context.parse(args[args.length - 1], args.length - 1, outputType);\n if (!otherwise) {\n return null;\n }\n if (input.type.kind !== \"value\" && context.concat(1).checkSubtype(inputType, input.type)) {\n return null;\n }\n return new Match(inputType, outputType, input, cases, outputs, otherwise);\n };\n Match.prototype.evaluate = function evaluate(ctx) {\n var input = this.input.evaluate(ctx);\n var output = typeOf(input) === this.inputType && this.outputs[this.cases[input]] || this.otherwise;\n return output.evaluate(ctx);\n };\n Match.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n this.outputs.forEach(fn);\n fn(this.otherwise);\n };\n Match.prototype.outputDefined = function outputDefined() {\n return this.outputs.every(function(out) {\n return out.outputDefined();\n }) && this.otherwise.outputDefined();\n };\n Match.prototype.serialize = function serialize2() {\n var this$1 = this;\n var serialized = [\n \"match\",\n this.input.serialize()\n ];\n var sortedLabels = Object.keys(this.cases).sort();\n var groupedByOutput = [];\n var outputLookup = {};\n for (var i = 0, list = sortedLabels; i < list.length; i += 1) {\n var label = list[i];\n var outputIndex = outputLookup[this.cases[label]];\n if (outputIndex === void 0) {\n outputLookup[this.cases[label]] = groupedByOutput.length;\n groupedByOutput.push([\n this.cases[label],\n [label]\n ]);\n } else {\n groupedByOutput[outputIndex][1].push(label);\n }\n }\n var coerceLabel = function(label2) {\n return this$1.inputType.kind === \"number\" ? Number(label2) : label2;\n };\n for (var i$1 = 0, list$1 = groupedByOutput; i$1 < list$1.length; i$1 += 1) {\n var ref = list$1[i$1];\n var outputIndex = ref[0];\n var labels = ref[1];\n if (labels.length === 1) {\n serialized.push(coerceLabel(labels[0]));\n } else {\n serialized.push(labels.map(coerceLabel));\n }\n serialized.push(this.outputs[outputIndex$1].serialize());\n }\n serialized.push(this.otherwise.serialize());\n return serialized;\n };\n var Case = function Case2(type, branches, otherwise) {\n this.type = type;\n this.branches = branches;\n this.otherwise = otherwise;\n };\n Case.parse = function parse2(args, context) {\n if (args.length < 4) {\n return context.error(\"Expected at least 3 arguments, but found only \" + (args.length - 1) + \".\");\n }\n if (args.length % 2 !== 0) {\n return context.error(\"Expected an odd number of arguments.\");\n }\n var outputType;\n if (context.expectedType && context.expectedType.kind !== \"value\") {\n outputType = context.expectedType;\n }\n var branches = [];\n for (var i = 1; i < args.length - 1; i += 2) {\n var test = context.parse(args[i], i, BooleanType);\n if (!test) {\n return null;\n }\n var result = context.parse(args[i + 1], i + 1, outputType);\n if (!result) {\n return null;\n }\n branches.push([\n test,\n result\n ]);\n outputType = outputType || result.type;\n }\n var otherwise = context.parse(args[args.length - 1], args.length - 1, outputType);\n if (!otherwise) {\n return null;\n }\n return new Case(outputType, branches, otherwise);\n };\n Case.prototype.evaluate = function evaluate(ctx) {\n for (var i = 0, list = this.branches; i < list.length; i += 1) {\n var ref = list[i];\n var test = ref[0];\n var expression2 = ref[1];\n if (test.evaluate(ctx)) {\n return expression2.evaluate(ctx);\n }\n }\n return this.otherwise.evaluate(ctx);\n };\n Case.prototype.eachChild = function eachChild(fn) {\n for (var i = 0, list = this.branches; i < list.length; i += 1) {\n var ref = list[i];\n var test = ref[0];\n var expression2 = ref[1];\n fn(test);\n fn(expression2);\n }\n fn(this.otherwise);\n };\n Case.prototype.outputDefined = function outputDefined() {\n return this.branches.every(function(ref) {\n var _ = ref[0];\n var out = ref[1];\n return out.outputDefined();\n }) && this.otherwise.outputDefined();\n };\n Case.prototype.serialize = function serialize2() {\n var serialized = [\"case\"];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var Slice = function Slice2(type, input, beginIndex, endIndex) {\n this.type = type;\n this.input = input;\n this.beginIndex = beginIndex;\n this.endIndex = endIndex;\n };\n Slice.parse = function parse2(args, context) {\n if (args.length <= 2 || args.length >= 5) {\n return context.error(\"Expected 3 or 4 arguments, but found \" + (args.length - 1) + \" instead.\");\n }\n var input = context.parse(args[1], 1, ValueType);\n var beginIndex = context.parse(args[2], 2, NumberType);\n if (!input || !beginIndex) {\n return null;\n }\n if (!isValidType(input.type, [\n array(ValueType),\n StringType,\n ValueType\n ])) {\n return context.error(\"Expected first argument to be of type array or string, but found \" + toString(input.type) + \" instead\");\n }\n if (args.length === 4) {\n var endIndex = context.parse(args[3], 3, NumberType);\n if (!endIndex) {\n return null;\n }\n return new Slice(input.type, input, beginIndex, endIndex);\n } else {\n return new Slice(input.type, input, beginIndex);\n }\n };\n Slice.prototype.evaluate = function evaluate(ctx) {\n var input = this.input.evaluate(ctx);\n var beginIndex = this.beginIndex.evaluate(ctx);\n if (!isValidNativeType(input, [\n \"string\",\n \"array\"\n ])) {\n throw new RuntimeError(\"Expected first argument to be of type array or string, but found \" + toString(typeOf(input)) + \" instead.\");\n }\n if (this.endIndex) {\n var endIndex = this.endIndex.evaluate(ctx);\n return input.slice(beginIndex, endIndex);\n }\n return input.slice(beginIndex);\n };\n Slice.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n fn(this.beginIndex);\n if (this.endIndex) {\n fn(this.endIndex);\n }\n };\n Slice.prototype.outputDefined = function outputDefined() {\n return false;\n };\n Slice.prototype.serialize = function serialize2() {\n if (this.endIndex != null && this.endIndex !== void 0) {\n var endIndex = this.endIndex.serialize();\n return [\n \"slice\",\n this.input.serialize(),\n this.beginIndex.serialize(),\n endIndex\n ];\n }\n return [\n \"slice\",\n this.input.serialize(),\n this.beginIndex.serialize()\n ];\n };\n function isComparableType(op, type) {\n if (op === \"==\" || op === \"!=\") {\n return type.kind === \"boolean\" || type.kind === \"string\" || type.kind === \"number\" || type.kind === \"null\" || type.kind === \"value\";\n } else {\n return type.kind === \"string\" || type.kind === \"number\" || type.kind === \"value\";\n }\n }\n function eq(ctx, a, b) {\n return a === b;\n }\n function neq(ctx, a, b) {\n return a !== b;\n }\n function lt(ctx, a, b) {\n return a < b;\n }\n function gt(ctx, a, b) {\n return a > b;\n }\n function lteq(ctx, a, b) {\n return a <= b;\n }\n function gteq(ctx, a, b) {\n return a >= b;\n }\n function eqCollate(ctx, a, b, c) {\n return c.compare(a, b) === 0;\n }\n function neqCollate(ctx, a, b, c) {\n return !eqCollate(ctx, a, b, c);\n }\n function ltCollate(ctx, a, b, c) {\n return c.compare(a, b) < 0;\n }\n function gtCollate(ctx, a, b, c) {\n return c.compare(a, b) > 0;\n }\n function lteqCollate(ctx, a, b, c) {\n return c.compare(a, b) <= 0;\n }\n function gteqCollate(ctx, a, b, c) {\n return c.compare(a, b) >= 0;\n }\n function makeComparison(op, compareBasic, compareWithCollator) {\n var isOrderComparison = op !== \"==\" && op !== \"!=\";\n return function() {\n function Comparison(lhs, rhs, collator) {\n this.type = BooleanType;\n this.lhs = lhs;\n this.rhs = rhs;\n this.collator = collator;\n this.hasUntypedArgument = lhs.type.kind === \"value\" || rhs.type.kind === \"value\";\n }\n Comparison.parse = function parse2(args, context) {\n if (args.length !== 3 && args.length !== 4) {\n return context.error(\"Expected two or three arguments.\");\n }\n var op2 = args[0];\n var lhs = context.parse(args[1], 1, ValueType);\n if (!lhs) {\n return null;\n }\n if (!isComparableType(op2, lhs.type)) {\n return context.concat(1).error('\"' + op2 + `\" comparisons are not supported for type '` + toString(lhs.type) + \"'.\");\n }\n var rhs = context.parse(args[2], 2, ValueType);\n if (!rhs) {\n return null;\n }\n if (!isComparableType(op2, rhs.type)) {\n return context.concat(2).error('\"' + op2 + `\" comparisons are not supported for type '` + toString(rhs.type) + \"'.\");\n }\n if (lhs.type.kind !== rhs.type.kind && lhs.type.kind !== \"value\" && rhs.type.kind !== \"value\") {\n return context.error(\"Cannot compare types '\" + toString(lhs.type) + \"' and '\" + toString(rhs.type) + \"'.\");\n }\n if (isOrderComparison) {\n if (lhs.type.kind === \"value\" && rhs.type.kind !== \"value\") {\n lhs = new Assertion(rhs.type, [lhs]);\n } else if (lhs.type.kind !== \"value\" && rhs.type.kind === \"value\") {\n rhs = new Assertion(lhs.type, [rhs]);\n }\n }\n var collator = null;\n if (args.length === 4) {\n if (lhs.type.kind !== \"string\" && rhs.type.kind !== \"string\" && lhs.type.kind !== \"value\" && rhs.type.kind !== \"value\") {\n return context.error(\"Cannot use collator to compare non-string types.\");\n }\n collator = context.parse(args[3], 3, CollatorType);\n if (!collator) {\n return null;\n }\n }\n return new Comparison(lhs, rhs, collator);\n };\n Comparison.prototype.evaluate = function evaluate(ctx) {\n var lhs = this.lhs.evaluate(ctx);\n var rhs = this.rhs.evaluate(ctx);\n if (isOrderComparison && this.hasUntypedArgument) {\n var lt2 = typeOf(lhs);\n var rt = typeOf(rhs);\n if (lt2.kind !== rt.kind || !(lt2.kind === \"string\" || lt2.kind === \"number\")) {\n throw new RuntimeError('Expected arguments for \"' + op + '\" to be (string, string) or (number, number), but found (' + lt2.kind + \", \" + rt.kind + \") instead.\");\n }\n }\n if (this.collator && !isOrderComparison && this.hasUntypedArgument) {\n var lt$1 = typeOf(lhs);\n var rt$1 = typeOf(rhs);\n if (lt$1.kind !== \"string\" || rt$1.kind !== \"string\") {\n return compareBasic(ctx, lhs, rhs);\n }\n }\n return this.collator ? compareWithCollator(ctx, lhs, rhs, this.collator.evaluate(ctx)) : compareBasic(ctx, lhs, rhs);\n };\n Comparison.prototype.eachChild = function eachChild(fn) {\n fn(this.lhs);\n fn(this.rhs);\n if (this.collator) {\n fn(this.collator);\n }\n };\n Comparison.prototype.outputDefined = function outputDefined() {\n return true;\n };\n Comparison.prototype.serialize = function serialize2() {\n var serialized = [op];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n return Comparison;\n }();\n }\n var Equals = makeComparison(\"==\", eq, eqCollate);\n var NotEquals = makeComparison(\"!=\", neq, neqCollate);\n var LessThan = makeComparison(\"<\", lt, ltCollate);\n var GreaterThan = makeComparison(\">\", gt, gtCollate);\n var LessThanOrEqual = makeComparison(\"<=\", lteq, lteqCollate);\n var GreaterThanOrEqual = makeComparison(\">=\", gteq, gteqCollate);\n var NumberFormat = function NumberFormat2(number2, locale, currency, minFractionDigits, maxFractionDigits) {\n this.type = StringType;\n this.number = number2;\n this.locale = locale;\n this.currency = currency;\n this.minFractionDigits = minFractionDigits;\n this.maxFractionDigits = maxFractionDigits;\n };\n NumberFormat.parse = function parse2(args, context) {\n if (args.length !== 3) {\n return context.error(\"Expected two arguments.\");\n }\n var number2 = context.parse(args[1], 1, NumberType);\n if (!number2) {\n return null;\n }\n var options = args[2];\n if (typeof options !== \"object\" || Array.isArray(options)) {\n return context.error(\"NumberFormat options argument must be an object.\");\n }\n var locale = null;\n if (options[\"locale\"]) {\n locale = context.parse(options[\"locale\"], 1, StringType);\n if (!locale) {\n return null;\n }\n }\n var currency = null;\n if (options[\"currency\"]) {\n currency = context.parse(options[\"currency\"], 1, StringType);\n if (!currency) {\n return null;\n }\n }\n var minFractionDigits = null;\n if (options[\"min-fraction-digits\"]) {\n minFractionDigits = context.parse(options[\"min-fraction-digits\"], 1, NumberType);\n if (!minFractionDigits) {\n return null;\n }\n }\n var maxFractionDigits = null;\n if (options[\"max-fraction-digits\"]) {\n maxFractionDigits = context.parse(options[\"max-fraction-digits\"], 1, NumberType);\n if (!maxFractionDigits) {\n return null;\n }\n }\n return new NumberFormat(number2, locale, currency, minFractionDigits, maxFractionDigits);\n };\n NumberFormat.prototype.evaluate = function evaluate(ctx) {\n return new Intl.NumberFormat(this.locale ? this.locale.evaluate(ctx) : [], {\n style: this.currency ? \"currency\" : \"decimal\",\n currency: this.currency ? this.currency.evaluate(ctx) : void 0,\n minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(ctx) : void 0,\n maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(ctx) : void 0\n }).format(this.number.evaluate(ctx));\n };\n NumberFormat.prototype.eachChild = function eachChild(fn) {\n fn(this.number);\n if (this.locale) {\n fn(this.locale);\n }\n if (this.currency) {\n fn(this.currency);\n }\n if (this.minFractionDigits) {\n fn(this.minFractionDigits);\n }\n if (this.maxFractionDigits) {\n fn(this.maxFractionDigits);\n }\n };\n NumberFormat.prototype.outputDefined = function outputDefined() {\n return false;\n };\n NumberFormat.prototype.serialize = function serialize2() {\n var options = {};\n if (this.locale) {\n options[\"locale\"] = this.locale.serialize();\n }\n if (this.currency) {\n options[\"currency\"] = this.currency.serialize();\n }\n if (this.minFractionDigits) {\n options[\"min-fraction-digits\"] = this.minFractionDigits.serialize();\n }\n if (this.maxFractionDigits) {\n options[\"max-fraction-digits\"] = this.maxFractionDigits.serialize();\n }\n return [\n \"number-format\",\n this.number.serialize(),\n options\n ];\n };\n var Length = function Length2(input) {\n this.type = NumberType;\n this.input = input;\n };\n Length.parse = function parse2(args, context) {\n if (args.length !== 2) {\n return context.error(\"Expected 1 argument, but found \" + (args.length - 1) + \" instead.\");\n }\n var input = context.parse(args[1], 1);\n if (!input) {\n return null;\n }\n if (input.type.kind !== \"array\" && input.type.kind !== \"string\" && input.type.kind !== \"value\") {\n return context.error(\"Expected argument of type string or array, but found \" + toString(input.type) + \" instead.\");\n }\n return new Length(input);\n };\n Length.prototype.evaluate = function evaluate(ctx) {\n var input = this.input.evaluate(ctx);\n if (typeof input === \"string\") {\n return input.length;\n } else if (Array.isArray(input)) {\n return input.length;\n } else {\n throw new RuntimeError(\"Expected value to be of type string or array, but found \" + toString(typeOf(input)) + \" instead.\");\n }\n };\n Length.prototype.eachChild = function eachChild(fn) {\n fn(this.input);\n };\n Length.prototype.outputDefined = function outputDefined() {\n return false;\n };\n Length.prototype.serialize = function serialize2() {\n var serialized = [\"length\"];\n this.eachChild(function(child) {\n serialized.push(child.serialize());\n });\n return serialized;\n };\n var expressions = {\n \"==\": Equals,\n \"!=\": NotEquals,\n \">\": GreaterThan,\n \"<\": LessThan,\n \">=\": GreaterThanOrEqual,\n \"<=\": LessThanOrEqual,\n \"array\": Assertion,\n \"at\": At,\n \"boolean\": Assertion,\n \"case\": Case,\n \"coalesce\": Coalesce,\n \"collator\": CollatorExpression,\n \"format\": FormatExpression,\n \"image\": ImageExpression,\n \"in\": In,\n \"index-of\": IndexOf,\n \"interpolate\": Interpolate,\n \"interpolate-hcl\": Interpolate,\n \"interpolate-lab\": Interpolate,\n \"length\": Length,\n \"let\": Let,\n \"literal\": Literal,\n \"match\": Match,\n \"number\": Assertion,\n \"number-format\": NumberFormat,\n \"object\": Assertion,\n \"slice\": Slice,\n \"step\": Step,\n \"string\": Assertion,\n \"to-boolean\": Coercion,\n \"to-color\": Coercion,\n \"to-number\": Coercion,\n \"to-string\": Coercion,\n \"var\": Var,\n \"within\": Within\n };\n function rgba3(ctx, ref) {\n var r = ref[0];\n var g = ref[1];\n var b = ref[2];\n var a = ref[3];\n r = r.evaluate(ctx);\n g = g.evaluate(ctx);\n b = b.evaluate(ctx);\n var alpha = a ? a.evaluate(ctx) : 1;\n var error2 = validateRGBA(r, g, b, alpha);\n if (error2) {\n throw new RuntimeError(error2);\n }\n return new Color2(r / 255 * alpha, g / 255 * alpha, b / 255 * alpha, alpha);\n }\n function has(key, obj) {\n return key in obj;\n }\n function get(key, obj) {\n var v = obj[key];\n return typeof v === \"undefined\" ? null : v;\n }\n function binarySearch(v, a, i, j) {\n while (i <= j) {\n var m = i + j >> 1;\n if (a[m] === v) {\n return true;\n }\n if (a[m] > v) {\n j = m - 1;\n } else {\n i = m + 1;\n }\n }\n return false;\n }\n function varargs(type) {\n return { type };\n }\n CompoundExpression.register(expressions, {\n \"error\": [\n ErrorType,\n [StringType],\n function(ctx, ref) {\n var v = ref[0];\n throw new RuntimeError(v.evaluate(ctx));\n }\n ],\n \"typeof\": [\n StringType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n return toString(typeOf(v.evaluate(ctx)));\n }\n ],\n \"to-rgba\": [\n array(NumberType, 4),\n [ColorType],\n function(ctx, ref) {\n var v = ref[0];\n return v.evaluate(ctx).toArray();\n }\n ],\n \"rgb\": [\n ColorType,\n [\n NumberType,\n NumberType,\n NumberType\n ],\n rgba3\n ],\n \"rgba\": [\n ColorType,\n [\n NumberType,\n NumberType,\n NumberType,\n NumberType\n ],\n rgba3\n ],\n \"has\": {\n type: BooleanType,\n overloads: [\n [\n [StringType],\n function(ctx, ref) {\n var key = ref[0];\n return has(key.evaluate(ctx), ctx.properties());\n }\n ],\n [\n [\n StringType,\n ObjectType\n ],\n function(ctx, ref) {\n var key = ref[0];\n var obj = ref[1];\n return has(key.evaluate(ctx), obj.evaluate(ctx));\n }\n ]\n ]\n },\n \"get\": {\n type: ValueType,\n overloads: [\n [\n [StringType],\n function(ctx, ref) {\n var key = ref[0];\n return get(key.evaluate(ctx), ctx.properties());\n }\n ],\n [\n [\n StringType,\n ObjectType\n ],\n function(ctx, ref) {\n var key = ref[0];\n var obj = ref[1];\n return get(key.evaluate(ctx), obj.evaluate(ctx));\n }\n ]\n ]\n },\n \"feature-state\": [\n ValueType,\n [StringType],\n function(ctx, ref) {\n var key = ref[0];\n return get(key.evaluate(ctx), ctx.featureState || {});\n }\n ],\n \"properties\": [\n ObjectType,\n [],\n function(ctx) {\n return ctx.properties();\n }\n ],\n \"geometry-type\": [\n StringType,\n [],\n function(ctx) {\n return ctx.geometryType();\n }\n ],\n \"id\": [\n ValueType,\n [],\n function(ctx) {\n return ctx.id();\n }\n ],\n \"zoom\": [\n NumberType,\n [],\n function(ctx) {\n return ctx.globals.zoom;\n }\n ],\n \"heatmap-density\": [\n NumberType,\n [],\n function(ctx) {\n return ctx.globals.heatmapDensity || 0;\n }\n ],\n \"line-progress\": [\n NumberType,\n [],\n function(ctx) {\n return ctx.globals.lineProgress || 0;\n }\n ],\n \"accumulated\": [\n ValueType,\n [],\n function(ctx) {\n return ctx.globals.accumulated === void 0 ? null : ctx.globals.accumulated;\n }\n ],\n \"+\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n var result = 0;\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n result += arg.evaluate(ctx);\n }\n return result;\n }\n ],\n \"*\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n var result = 1;\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n result *= arg.evaluate(ctx);\n }\n return result;\n }\n ],\n \"-\": {\n type: NumberType,\n overloads: [\n [\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) - b.evaluate(ctx);\n }\n ],\n [\n [NumberType],\n function(ctx, ref) {\n var a = ref[0];\n return -a.evaluate(ctx);\n }\n ]\n ]\n },\n \"/\": [\n NumberType,\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) / b.evaluate(ctx);\n }\n ],\n \"%\": [\n NumberType,\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) % b.evaluate(ctx);\n }\n ],\n \"ln2\": [\n NumberType,\n [],\n function() {\n return Math.LN2;\n }\n ],\n \"pi\": [\n NumberType,\n [],\n function() {\n return Math.PI;\n }\n ],\n \"e\": [\n NumberType,\n [],\n function() {\n return Math.E;\n }\n ],\n \"^\": [\n NumberType,\n [\n NumberType,\n NumberType\n ],\n function(ctx, ref) {\n var b = ref[0];\n var e = ref[1];\n return Math.pow(b.evaluate(ctx), e.evaluate(ctx));\n }\n ],\n \"sqrt\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var x = ref[0];\n return Math.sqrt(x.evaluate(ctx));\n }\n ],\n \"log10\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.log(n.evaluate(ctx)) / Math.LN10;\n }\n ],\n \"ln\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.log(n.evaluate(ctx));\n }\n ],\n \"log2\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.log(n.evaluate(ctx)) / Math.LN2;\n }\n ],\n \"sin\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.sin(n.evaluate(ctx));\n }\n ],\n \"cos\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.cos(n.evaluate(ctx));\n }\n ],\n \"tan\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.tan(n.evaluate(ctx));\n }\n ],\n \"asin\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.asin(n.evaluate(ctx));\n }\n ],\n \"acos\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.acos(n.evaluate(ctx));\n }\n ],\n \"atan\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.atan(n.evaluate(ctx));\n }\n ],\n \"min\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n return Math.min.apply(Math, args.map(function(arg) {\n return arg.evaluate(ctx);\n }));\n }\n ],\n \"max\": [\n NumberType,\n varargs(NumberType),\n function(ctx, args) {\n return Math.max.apply(Math, args.map(function(arg) {\n return arg.evaluate(ctx);\n }));\n }\n ],\n \"abs\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.abs(n.evaluate(ctx));\n }\n ],\n \"round\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n var v = n.evaluate(ctx);\n return v < 0 ? -Math.round(-v) : Math.round(v);\n }\n ],\n \"floor\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.floor(n.evaluate(ctx));\n }\n ],\n \"ceil\": [\n NumberType,\n [NumberType],\n function(ctx, ref) {\n var n = ref[0];\n return Math.ceil(n.evaluate(ctx));\n }\n ],\n \"filter-==\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n return ctx.properties()[k.value] === v.value;\n }\n ],\n \"filter-id-==\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n return ctx.id() === v.value;\n }\n ],\n \"filter-type-==\": [\n BooleanType,\n [StringType],\n function(ctx, ref) {\n var v = ref[0];\n return ctx.geometryType() === v.value;\n }\n ],\n \"filter-<\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a < b;\n }\n ],\n \"filter-id-<\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a < b;\n }\n ],\n \"filter->\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a > b;\n }\n ],\n \"filter-id->\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a > b;\n }\n ],\n \"filter-<=\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a <= b;\n }\n ],\n \"filter-id-<=\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a <= b;\n }\n ],\n \"filter->=\": [\n BooleanType,\n [\n StringType,\n ValueType\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n var a = ctx.properties()[k.value];\n var b = v.value;\n return typeof a === typeof b && a >= b;\n }\n ],\n \"filter-id->=\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var v = ref[0];\n var a = ctx.id();\n var b = v.value;\n return typeof a === typeof b && a >= b;\n }\n ],\n \"filter-has\": [\n BooleanType,\n [ValueType],\n function(ctx, ref) {\n var k = ref[0];\n return k.value in ctx.properties();\n }\n ],\n \"filter-has-id\": [\n BooleanType,\n [],\n function(ctx) {\n return ctx.id() !== null && ctx.id() !== void 0;\n }\n ],\n \"filter-type-in\": [\n BooleanType,\n [array(StringType)],\n function(ctx, ref) {\n var v = ref[0];\n return v.value.indexOf(ctx.geometryType()) >= 0;\n }\n ],\n \"filter-id-in\": [\n BooleanType,\n [array(ValueType)],\n function(ctx, ref) {\n var v = ref[0];\n return v.value.indexOf(ctx.id()) >= 0;\n }\n ],\n \"filter-in-small\": [\n BooleanType,\n [\n StringType,\n array(ValueType)\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n return v.value.indexOf(ctx.properties()[k.value]) >= 0;\n }\n ],\n \"filter-in-large\": [\n BooleanType,\n [\n StringType,\n array(ValueType)\n ],\n function(ctx, ref) {\n var k = ref[0];\n var v = ref[1];\n return binarySearch(ctx.properties()[k.value], v.value, 0, v.value.length - 1);\n }\n ],\n \"all\": {\n type: BooleanType,\n overloads: [\n [\n [\n BooleanType,\n BooleanType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) && b.evaluate(ctx);\n }\n ],\n [\n varargs(BooleanType),\n function(ctx, args) {\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n if (!arg.evaluate(ctx)) {\n return false;\n }\n }\n return true;\n }\n ]\n ]\n },\n \"any\": {\n type: BooleanType,\n overloads: [\n [\n [\n BooleanType,\n BooleanType\n ],\n function(ctx, ref) {\n var a = ref[0];\n var b = ref[1];\n return a.evaluate(ctx) || b.evaluate(ctx);\n }\n ],\n [\n varargs(BooleanType),\n function(ctx, args) {\n for (var i = 0, list = args; i < list.length; i += 1) {\n var arg = list[i];\n if (arg.evaluate(ctx)) {\n return true;\n }\n }\n return false;\n }\n ]\n ]\n },\n \"!\": [\n BooleanType,\n [BooleanType],\n function(ctx, ref) {\n var b = ref[0];\n return !b.evaluate(ctx);\n }\n ],\n \"is-supported-script\": [\n BooleanType,\n [StringType],\n function(ctx, ref) {\n var s = ref[0];\n var isSupportedScript = ctx.globals && ctx.globals.isSupportedScript;\n if (isSupportedScript) {\n return isSupportedScript(s.evaluate(ctx));\n }\n return true;\n }\n ],\n \"upcase\": [\n StringType,\n [StringType],\n function(ctx, ref) {\n var s = ref[0];\n return s.evaluate(ctx).toUpperCase();\n }\n ],\n \"downcase\": [\n StringType,\n [StringType],\n function(ctx, ref) {\n var s = ref[0];\n return s.evaluate(ctx).toLowerCase();\n }\n ],\n \"concat\": [\n StringType,\n varargs(ValueType),\n function(ctx, args) {\n return args.map(function(arg) {\n return toString$1(arg.evaluate(ctx));\n }).join(\"\");\n }\n ],\n \"resolved-locale\": [\n StringType,\n [CollatorType],\n function(ctx, ref) {\n var collator = ref[0];\n return collator.evaluate(ctx).resolvedLocale();\n }\n ]\n });\n function success(value) {\n return {\n result: \"success\",\n value\n };\n }\n function error(value) {\n return {\n result: \"error\",\n value\n };\n }\n function supportsPropertyExpression(spec2) {\n return spec2[\"property-type\"] === \"data-driven\" || spec2[\"property-type\"] === \"cross-faded-data-driven\";\n }\n function supportsZoomExpression(spec2) {\n return !!spec2.expression && spec2.expression.parameters.indexOf(\"zoom\") > -1;\n }\n function supportsInterpolation(spec2) {\n return !!spec2.expression && spec2.expression.interpolated;\n }\n function getType(val) {\n if (val instanceof Number) {\n return \"number\";\n } else if (val instanceof String) {\n return \"string\";\n } else if (val instanceof Boolean) {\n return \"boolean\";\n } else if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n }\n function isFunction(value) {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n }\n function identityFunction(x) {\n return x;\n }\n function createFunction(parameters, propertySpec) {\n var isColor = propertySpec.type === \"color\";\n var zoomAndFeatureDependent = parameters.stops && typeof parameters.stops[0][0] === \"object\";\n var featureDependent = zoomAndFeatureDependent || parameters.property !== void 0;\n var zoomDependent = zoomAndFeatureDependent || !featureDependent;\n var type = parameters.type || (supportsInterpolation(propertySpec) ? \"exponential\" : \"interval\");\n if (isColor) {\n parameters = extend$1({}, parameters);\n if (parameters.stops) {\n parameters.stops = parameters.stops.map(function(stop2) {\n return [\n stop2[0],\n Color2.parse(stop2[1])\n ];\n });\n }\n if (parameters.default) {\n parameters.default = Color2.parse(parameters.default);\n } else {\n parameters.default = Color2.parse(propertySpec.default);\n }\n }\n if (parameters.colorSpace && parameters.colorSpace !== \"rgb\" && !colorSpaces[parameters.colorSpace]) {\n throw new Error(\"Unknown color space: \" + parameters.colorSpace);\n }\n var innerFun;\n var hashedStops;\n var categoricalKeyType;\n if (type === \"exponential\") {\n innerFun = evaluateExponentialFunction;\n } else if (type === \"interval\") {\n innerFun = evaluateIntervalFunction;\n } else if (type === \"categorical\") {\n innerFun = evaluateCategoricalFunction;\n hashedStops = /* @__PURE__ */ Object.create(null);\n for (var i = 0, list = parameters.stops; i < list.length; i += 1) {\n var stop = list[i];\n hashedStops[stop[0]] = stop[1];\n }\n categoricalKeyType = typeof parameters.stops[0][0];\n } else if (type === \"identity\") {\n innerFun = evaluateIdentityFunction;\n } else {\n throw new Error('Unknown function type \"' + type + '\"');\n }\n if (zoomAndFeatureDependent) {\n var featureFunctions = {};\n var zoomStops = [];\n for (var s = 0; s < parameters.stops.length; s++) {\n var stop$1 = parameters.stops[s];\n var zoom = stop$1[0].zoom;\n if (featureFunctions[zoom] === void 0) {\n featureFunctions[zoom] = {\n zoom,\n type: parameters.type,\n property: parameters.property,\n default: parameters.default,\n stops: []\n };\n zoomStops.push(zoom);\n }\n featureFunctions[zoom].stops.push([\n stop$1[0].value,\n stop$1[1]\n ]);\n }\n var featureFunctionStops = [];\n for (var i$1 = 0, list$1 = zoomStops; i$1 < list$1.length; i$1 += 1) {\n var z = list$1[i$1];\n featureFunctionStops.push([\n featureFunctions[z].zoom,\n createFunction(featureFunctions[z], propertySpec)\n ]);\n }\n var interpolationType = { name: \"linear\" };\n return {\n kind: \"composite\",\n interpolationType,\n interpolationFactor: Interpolate.interpolationFactor.bind(void 0, interpolationType),\n zoomStops: featureFunctionStops.map(function(s2) {\n return s2[0];\n }),\n evaluate: function evaluate(ref, properties2) {\n var zoom2 = ref.zoom;\n return evaluateExponentialFunction({\n stops: featureFunctionStops,\n base: parameters.base\n }, propertySpec, zoom2).evaluate(zoom2, properties2);\n }\n };\n } else if (zoomDependent) {\n var interpolationType$1 = type === \"exponential\" ? {\n name: \"exponential\",\n base: parameters.base !== void 0 ? parameters.base : 1\n } : null;\n return {\n kind: \"camera\",\n interpolationType: interpolationType$1,\n interpolationFactor: Interpolate.interpolationFactor.bind(void 0, interpolationType$1),\n zoomStops: parameters.stops.map(function(s2) {\n return s2[0];\n }),\n evaluate: function(ref) {\n var zoom2 = ref.zoom;\n return innerFun(parameters, propertySpec, zoom2, hashedStops, categoricalKeyType);\n }\n };\n } else {\n return {\n kind: \"source\",\n evaluate: function evaluate(_, feature) {\n var value = feature && feature.properties ? feature.properties[parameters.property] : void 0;\n if (value === void 0) {\n return coalesce(parameters.default, propertySpec.default);\n }\n return innerFun(parameters, propertySpec, value, hashedStops, categoricalKeyType);\n }\n };\n }\n }\n function coalesce(a, b, c) {\n if (a !== void 0) {\n return a;\n }\n if (b !== void 0) {\n return b;\n }\n if (c !== void 0) {\n return c;\n }\n }\n function evaluateCategoricalFunction(parameters, propertySpec, input, hashedStops, keyType) {\n var evaluated = typeof input === keyType ? hashedStops[input] : void 0;\n return coalesce(evaluated, parameters.default, propertySpec.default);\n }\n function evaluateIntervalFunction(parameters, propertySpec, input) {\n if (getType(input) !== \"number\") {\n return coalesce(parameters.default, propertySpec.default);\n }\n var n = parameters.stops.length;\n if (n === 1) {\n return parameters.stops[0][1];\n }\n if (input <= parameters.stops[0][0]) {\n return parameters.stops[0][1];\n }\n if (input >= parameters.stops[n - 1][0]) {\n return parameters.stops[n - 1][1];\n }\n var index = findStopLessThanOrEqualTo(parameters.stops.map(function(stop) {\n return stop[0];\n }), input);\n return parameters.stops[index][1];\n }\n function evaluateExponentialFunction(parameters, propertySpec, input) {\n var base = parameters.base !== void 0 ? parameters.base : 1;\n if (getType(input) !== \"number\") {\n return coalesce(parameters.default, propertySpec.default);\n }\n var n = parameters.stops.length;\n if (n === 1) {\n return parameters.stops[0][1];\n }\n if (input <= parameters.stops[0][0]) {\n return parameters.stops[0][1];\n }\n if (input >= parameters.stops[n - 1][0]) {\n return parameters.stops[n - 1][1];\n }\n var index = findStopLessThanOrEqualTo(parameters.stops.map(function(stop) {\n return stop[0];\n }), input);\n var t = interpolationFactor(input, base, parameters.stops[index][0], parameters.stops[index + 1][0]);\n var outputLower = parameters.stops[index][1];\n var outputUpper = parameters.stops[index + 1][1];\n var interp = interpolate[propertySpec.type] || identityFunction;\n if (parameters.colorSpace && parameters.colorSpace !== \"rgb\") {\n var colorspace = colorSpaces[parameters.colorSpace];\n interp = function(a, b) {\n return colorspace.reverse(colorspace.interpolate(colorspace.forward(a), colorspace.forward(b), t));\n };\n }\n if (typeof outputLower.evaluate === \"function\") {\n return {\n evaluate: function evaluate() {\n var args = [], len = arguments.length;\n while (len--)\n args[len] = arguments[len];\n var evaluatedLower = outputLower.evaluate.apply(void 0, args);\n var evaluatedUpper = outputUpper.evaluate.apply(void 0, args);\n if (evaluatedLower === void 0 || evaluatedUpper === void 0) {\n return void 0;\n }\n return interp(evaluatedLower, evaluatedUpper, t);\n }\n };\n }\n return interp(outputLower, outputUpper, t);\n }\n function evaluateIdentityFunction(parameters, propertySpec, input) {\n if (propertySpec.type === \"color\") {\n input = Color2.parse(input);\n } else if (propertySpec.type === \"formatted\") {\n input = Formatted.fromString(input.toString());\n } else if (propertySpec.type === \"resolvedImage\") {\n input = ResolvedImage.fromString(input.toString());\n } else if (getType(input) !== propertySpec.type && (propertySpec.type !== \"enum\" || !propertySpec.values[input])) {\n input = void 0;\n }\n return coalesce(input, parameters.default, propertySpec.default);\n }\n function interpolationFactor(input, base, lowerValue, upperValue) {\n var difference = upperValue - lowerValue;\n var progress = input - lowerValue;\n if (difference === 0) {\n return 0;\n } else if (base === 1) {\n return progress / difference;\n } else {\n return (Math.pow(base, progress) - 1) / (Math.pow(base, difference) - 1);\n }\n }\n var StyleExpression = function StyleExpression2(expression2, propertySpec) {\n this.expression = expression2;\n this._warningHistory = {};\n this._evaluator = new EvaluationContext();\n this._defaultValue = propertySpec ? getDefaultValue(propertySpec) : null;\n this._enumValues = propertySpec && propertySpec.type === \"enum\" ? propertySpec.values : null;\n };\n StyleExpression.prototype.evaluateWithoutErrorHandling = function evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n this._evaluator.globals = globals;\n this._evaluator.feature = feature;\n this._evaluator.featureState = featureState;\n this._evaluator.canonical = canonical;\n this._evaluator.availableImages = availableImages || null;\n this._evaluator.formattedSection = formattedSection;\n return this.expression.evaluate(this._evaluator);\n };\n StyleExpression.prototype.evaluate = function evaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n this._evaluator.globals = globals;\n this._evaluator.feature = feature || null;\n this._evaluator.featureState = featureState || null;\n this._evaluator.canonical = canonical;\n this._evaluator.availableImages = availableImages || null;\n this._evaluator.formattedSection = formattedSection || null;\n try {\n var val = this.expression.evaluate(this._evaluator);\n if (val === null || val === void 0 || typeof val === \"number\" && val !== val) {\n return this._defaultValue;\n }\n if (this._enumValues && !(val in this._enumValues)) {\n throw new RuntimeError(\"Expected value to be one of \" + Object.keys(this._enumValues).map(function(v) {\n return JSON.stringify(v);\n }).join(\", \") + \", but found \" + JSON.stringify(val) + \" instead.\");\n }\n return val;\n } catch (e) {\n if (!this._warningHistory[e.message]) {\n this._warningHistory[e.message] = true;\n if (typeof console !== \"undefined\") {\n console.warn(e.message);\n }\n }\n return this._defaultValue;\n }\n };\n function isExpression(expression2) {\n return Array.isArray(expression2) && expression2.length > 0 && typeof expression2[0] === \"string\" && expression2[0] in expressions;\n }\n function createExpression(expression2, propertySpec) {\n var parser = new ParsingContext(expressions, [], propertySpec ? getExpectedType(propertySpec) : void 0);\n var parsed = parser.parse(expression2, void 0, void 0, void 0, propertySpec && propertySpec.type === \"string\" ? { typeAnnotation: \"coerce\" } : void 0);\n if (!parsed) {\n return error(parser.errors);\n }\n return success(new StyleExpression(parsed, propertySpec));\n }\n var ZoomConstantExpression = function ZoomConstantExpression2(kind, expression2) {\n this.kind = kind;\n this._styleExpression = expression2;\n this.isStateDependent = kind !== \"constant\" && !isStateConstant(expression2.expression);\n };\n ZoomConstantExpression.prototype.evaluateWithoutErrorHandling = function evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n ZoomConstantExpression.prototype.evaluate = function evaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluate(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n var ZoomDependentExpression = function ZoomDependentExpression2(kind, expression2, zoomStops, interpolationType) {\n this.kind = kind;\n this.zoomStops = zoomStops;\n this._styleExpression = expression2;\n this.isStateDependent = kind !== \"camera\" && !isStateConstant(expression2.expression);\n this.interpolationType = interpolationType;\n };\n ZoomDependentExpression.prototype.evaluateWithoutErrorHandling = function evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluateWithoutErrorHandling(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n ZoomDependentExpression.prototype.evaluate = function evaluate(globals, feature, featureState, canonical, availableImages, formattedSection) {\n return this._styleExpression.evaluate(globals, feature, featureState, canonical, availableImages, formattedSection);\n };\n ZoomDependentExpression.prototype.interpolationFactor = function interpolationFactor2(input, lower, upper) {\n if (this.interpolationType) {\n return Interpolate.interpolationFactor(this.interpolationType, input, lower, upper);\n } else {\n return 0;\n }\n };\n function createPropertyExpression(expression2, propertySpec) {\n expression2 = createExpression(expression2, propertySpec);\n if (expression2.result === \"error\") {\n return expression2;\n }\n var parsed = expression2.value.expression;\n var isFeatureConstant$1 = isFeatureConstant(parsed);\n if (!isFeatureConstant$1 && !supportsPropertyExpression(propertySpec)) {\n return error([new ParsingError(\"\", \"data expressions not supported\")]);\n }\n var isZoomConstant = isGlobalPropertyConstant(parsed, [\"zoom\"]);\n if (!isZoomConstant && !supportsZoomExpression(propertySpec)) {\n return error([new ParsingError(\"\", \"zoom expressions not supported\")]);\n }\n var zoomCurve = findZoomCurve(parsed);\n if (!zoomCurve && !isZoomConstant) {\n return error([new ParsingError(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')]);\n } else if (zoomCurve instanceof ParsingError) {\n return error([zoomCurve]);\n } else if (zoomCurve instanceof Interpolate && !supportsInterpolation(propertySpec)) {\n return error([new ParsingError(\"\", '\"interpolate\" expressions cannot be used with this property')]);\n }\n if (!zoomCurve) {\n return success(isFeatureConstant$1 ? new ZoomConstantExpression(\"constant\", expression2.value) : new ZoomConstantExpression(\"source\", expression2.value));\n }\n var interpolationType = zoomCurve instanceof Interpolate ? zoomCurve.interpolation : void 0;\n return success(isFeatureConstant$1 ? new ZoomDependentExpression(\"camera\", expression2.value, zoomCurve.labels, interpolationType) : new ZoomDependentExpression(\"composite\", expression2.value, zoomCurve.labels, interpolationType));\n }\n var StylePropertyFunction = function StylePropertyFunction2(parameters, specification) {\n this._parameters = parameters;\n this._specification = specification;\n extend$1(this, createFunction(this._parameters, this._specification));\n };\n StylePropertyFunction.deserialize = function deserialize2(serialized) {\n return new StylePropertyFunction(serialized._parameters, serialized._specification);\n };\n StylePropertyFunction.serialize = function serialize2(input) {\n return {\n _parameters: input._parameters,\n _specification: input._specification\n };\n };\n function normalizePropertyExpression(value, specification) {\n if (isFunction(value)) {\n return new StylePropertyFunction(value, specification);\n } else if (isExpression(value)) {\n var expression2 = createPropertyExpression(value, specification);\n if (expression2.result === \"error\") {\n throw new Error(expression2.value.map(function(err) {\n return err.key + \": \" + err.message;\n }).join(\", \"));\n }\n return expression2.value;\n } else {\n var constant = value;\n if (typeof value === \"string\" && specification.type === \"color\") {\n constant = Color2.parse(value);\n }\n return {\n kind: \"constant\",\n evaluate: function() {\n return constant;\n }\n };\n }\n }\n function findZoomCurve(expression2) {\n var result = null;\n if (expression2 instanceof Let) {\n result = findZoomCurve(expression2.result);\n } else if (expression2 instanceof Coalesce) {\n for (var i = 0, list = expression2.args; i < list.length; i += 1) {\n var arg = list[i];\n result = findZoomCurve(arg);\n if (result) {\n break;\n }\n }\n } else if ((expression2 instanceof Step || expression2 instanceof Interpolate) && expression2.input instanceof CompoundExpression && expression2.input.name === \"zoom\") {\n result = expression2;\n }\n if (result instanceof ParsingError) {\n return result;\n }\n expression2.eachChild(function(child) {\n var childResult = findZoomCurve(child);\n if (childResult instanceof ParsingError) {\n result = childResult;\n } else if (!result && childResult) {\n result = new ParsingError(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.');\n } else if (result && childResult && result !== childResult) {\n result = new ParsingError(\"\", 'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.');\n }\n });\n return result;\n }\n function getExpectedType(spec2) {\n var types2 = {\n color: ColorType,\n string: StringType,\n number: NumberType,\n enum: StringType,\n boolean: BooleanType,\n formatted: FormattedType,\n resolvedImage: ResolvedImageType\n };\n if (spec2.type === \"array\") {\n return array(types2[spec2.value] || ValueType, spec2.length);\n }\n return types2[spec2.type];\n }\n function getDefaultValue(spec2) {\n if (spec2.type === \"color\" && isFunction(spec2.default)) {\n return new Color2(0, 0, 0, 0);\n } else if (spec2.type === \"color\") {\n return Color2.parse(spec2.default) || null;\n } else if (spec2.default === void 0) {\n return null;\n } else {\n return spec2.default;\n }\n }\n function validateObject(options) {\n var key = options.key;\n var object = options.value;\n var elementSpecs = options.valueSpec || {};\n var elementValidators = options.objectElementValidators || {};\n var style = options.style;\n var styleSpec = options.styleSpec;\n var errors = [];\n var type = getType(object);\n if (type !== \"object\") {\n return [new ValidationError(key, object, \"object expected, \" + type + \" found\")];\n }\n for (var objectKey in object) {\n var elementSpecKey = objectKey.split(\".\")[0];\n var elementSpec = elementSpecs[elementSpecKey] || elementSpecs[\"*\"];\n var validateElement = void 0;\n if (elementValidators[elementSpecKey]) {\n validateElement = elementValidators[elementSpecKey];\n } else if (elementSpecs[elementSpecKey]) {\n validateElement = validate;\n } else if (elementValidators[\"*\"]) {\n validateElement = elementValidators[\"*\"];\n } else if (elementSpecs[\"*\"]) {\n validateElement = validate;\n } else {\n errors.push(new ValidationError(key, object[objectKey], 'unknown property \"' + objectKey + '\"'));\n continue;\n }\n errors = errors.concat(validateElement({\n key: (key ? key + \".\" : key) + objectKey,\n value: object[objectKey],\n valueSpec: elementSpec,\n style,\n styleSpec,\n object,\n objectKey\n }, object));\n }\n for (var elementSpecKey$1 in elementSpecs) {\n if (elementValidators[elementSpecKey$1]) {\n continue;\n }\n if (elementSpecs[elementSpecKey$1].required && elementSpecs[elementSpecKey$1][\"default\"] === void 0 && object[elementSpecKey$1] === void 0) {\n errors.push(new ValidationError(key, object, 'missing required property \"' + elementSpecKey$1 + '\"'));\n }\n }\n return errors;\n }\n function validateArray(options) {\n var array2 = options.value;\n var arraySpec = options.valueSpec;\n var style = options.style;\n var styleSpec = options.styleSpec;\n var key = options.key;\n var validateArrayElement = options.arrayElementValidator || validate;\n if (getType(array2) !== \"array\") {\n return [new ValidationError(key, array2, \"array expected, \" + getType(array2) + \" found\")];\n }\n if (arraySpec.length && array2.length !== arraySpec.length) {\n return [new ValidationError(key, array2, \"array length \" + arraySpec.length + \" expected, length \" + array2.length + \" found\")];\n }\n if (arraySpec[\"min-length\"] && array2.length < arraySpec[\"min-length\"]) {\n return [new ValidationError(key, array2, \"array length at least \" + arraySpec[\"min-length\"] + \" expected, length \" + array2.length + \" found\")];\n }\n var arrayElementSpec = {\n \"type\": arraySpec.value,\n \"values\": arraySpec.values\n };\n if (styleSpec.$version < 7) {\n arrayElementSpec.function = arraySpec.function;\n }\n if (getType(arraySpec.value) === \"object\") {\n arrayElementSpec = arraySpec.value;\n }\n var errors = [];\n for (var i = 0; i < array2.length; i++) {\n errors = errors.concat(validateArrayElement({\n array: array2,\n arrayIndex: i,\n value: array2[i],\n valueSpec: arrayElementSpec,\n style,\n styleSpec,\n key: key + \"[\" + i + \"]\"\n }));\n }\n return errors;\n }\n function validateNumber(options) {\n var key = options.key;\n var value = options.value;\n var valueSpec = options.valueSpec;\n var type = getType(value);\n if (type === \"number\" && value !== value) {\n type = \"NaN\";\n }\n if (type !== \"number\") {\n return [new ValidationError(key, value, \"number expected, \" + type + \" found\")];\n }\n if (\"minimum\" in valueSpec && value < valueSpec.minimum) {\n return [new ValidationError(key, value, value + \" is less than the minimum value \" + valueSpec.minimum)];\n }\n if (\"maximum\" in valueSpec && value > valueSpec.maximum) {\n return [new ValidationError(key, value, value + \" is greater than the maximum value \" + valueSpec.maximum)];\n }\n return [];\n }\n function validateFunction(options) {\n var functionValueSpec = options.valueSpec;\n var functionType = unbundle(options.value.type);\n var stopKeyType;\n var stopDomainValues = {};\n var previousStopDomainValue;\n var previousStopDomainZoom;\n var isZoomFunction = functionType !== \"categorical\" && options.value.property === void 0;\n var isPropertyFunction = !isZoomFunction;\n var isZoomAndPropertyFunction = getType(options.value.stops) === \"array\" && getType(options.value.stops[0]) === \"array\" && getType(options.value.stops[0][0]) === \"object\";\n var errors = validateObject({\n key: options.key,\n value: options.value,\n valueSpec: options.styleSpec.function,\n style: options.style,\n styleSpec: options.styleSpec,\n objectElementValidators: {\n stops: validateFunctionStops,\n default: validateFunctionDefault\n }\n });\n if (functionType === \"identity\" && isZoomFunction) {\n errors.push(new ValidationError(options.key, options.value, 'missing required property \"property\"'));\n }\n if (functionType !== \"identity\" && !options.value.stops) {\n errors.push(new ValidationError(options.key, options.value, 'missing required property \"stops\"'));\n }\n if (functionType === \"exponential\" && options.valueSpec.expression && !supportsInterpolation(options.valueSpec)) {\n errors.push(new ValidationError(options.key, options.value, \"exponential functions not supported\"));\n }\n if (options.styleSpec.$version >= 8) {\n if (isPropertyFunction && !supportsPropertyExpression(options.valueSpec)) {\n errors.push(new ValidationError(options.key, options.value, \"property functions not supported\"));\n } else if (isZoomFunction && !supportsZoomExpression(options.valueSpec)) {\n errors.push(new ValidationError(options.key, options.value, \"zoom functions not supported\"));\n }\n }\n if ((functionType === \"categorical\" || isZoomAndPropertyFunction) && options.value.property === void 0) {\n errors.push(new ValidationError(options.key, options.value, '\"property\" property is required'));\n }\n return errors;\n function validateFunctionStops(options2) {\n if (functionType === \"identity\") {\n return [new ValidationError(options2.key, options2.value, 'identity function may not have a \"stops\" property')];\n }\n var errors2 = [];\n var value = options2.value;\n errors2 = errors2.concat(validateArray({\n key: options2.key,\n value,\n valueSpec: options2.valueSpec,\n style: options2.style,\n styleSpec: options2.styleSpec,\n arrayElementValidator: validateFunctionStop\n }));\n if (getType(value) === \"array\" && value.length === 0) {\n errors2.push(new ValidationError(options2.key, value, \"array must have at least one stop\"));\n }\n return errors2;\n }\n function validateFunctionStop(options2) {\n var errors2 = [];\n var value = options2.value;\n var key = options2.key;\n if (getType(value) !== \"array\") {\n return [new ValidationError(key, value, \"array expected, \" + getType(value) + \" found\")];\n }\n if (value.length !== 2) {\n return [new ValidationError(key, value, \"array length 2 expected, length \" + value.length + \" found\")];\n }\n if (isZoomAndPropertyFunction) {\n if (getType(value[0]) !== \"object\") {\n return [new ValidationError(key, value, \"object expected, \" + getType(value[0]) + \" found\")];\n }\n if (value[0].zoom === void 0) {\n return [new ValidationError(key, value, \"object stop key must have zoom\")];\n }\n if (value[0].value === void 0) {\n return [new ValidationError(key, value, \"object stop key must have value\")];\n }\n if (previousStopDomainZoom && previousStopDomainZoom > unbundle(value[0].zoom)) {\n return [new ValidationError(key, value[0].zoom, \"stop zoom values must appear in ascending order\")];\n }\n if (unbundle(value[0].zoom) !== previousStopDomainZoom) {\n previousStopDomainZoom = unbundle(value[0].zoom);\n previousStopDomainValue = void 0;\n stopDomainValues = {};\n }\n errors2 = errors2.concat(validateObject({\n key: key + \"[0]\",\n value: value[0],\n valueSpec: { zoom: {} },\n style: options2.style,\n styleSpec: options2.styleSpec,\n objectElementValidators: {\n zoom: validateNumber,\n value: validateStopDomainValue\n }\n }));\n } else {\n errors2 = errors2.concat(validateStopDomainValue({\n key: key + \"[0]\",\n value: value[0],\n valueSpec: {},\n style: options2.style,\n styleSpec: options2.styleSpec\n }, value));\n }\n if (isExpression(deepUnbundle(value[1]))) {\n return errors2.concat([new ValidationError(key + \"[1]\", value[1], \"expressions are not allowed in function stops.\")]);\n }\n return errors2.concat(validate({\n key: key + \"[1]\",\n value: value[1],\n valueSpec: functionValueSpec,\n style: options2.style,\n styleSpec: options2.styleSpec\n }));\n }\n function validateStopDomainValue(options2, stop) {\n var type = getType(options2.value);\n var value = unbundle(options2.value);\n var reportValue = options2.value !== null ? options2.value : stop;\n if (!stopKeyType) {\n stopKeyType = type;\n } else if (type !== stopKeyType) {\n return [new ValidationError(options2.key, reportValue, type + \" stop domain type must match previous stop domain type \" + stopKeyType)];\n }\n if (type !== \"number\" && type !== \"string\" && type !== \"boolean\") {\n return [new ValidationError(options2.key, reportValue, \"stop domain value must be a number, string, or boolean\")];\n }\n if (type !== \"number\" && functionType !== \"categorical\") {\n var message = \"number expected, \" + type + \" found\";\n if (supportsPropertyExpression(functionValueSpec) && functionType === void 0) {\n message += '\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.';\n }\n return [new ValidationError(options2.key, reportValue, message)];\n }\n if (functionType === \"categorical\" && type === \"number\" && (!isFinite(value) || Math.floor(value) !== value)) {\n return [new ValidationError(options2.key, reportValue, \"integer expected, found \" + value)];\n }\n if (functionType !== \"categorical\" && type === \"number\" && previousStopDomainValue !== void 0 && value < previousStopDomainValue) {\n return [new ValidationError(options2.key, reportValue, \"stop domain values must appear in ascending order\")];\n } else {\n previousStopDomainValue = value;\n }\n if (functionType === \"categorical\" && value in stopDomainValues) {\n return [new ValidationError(options2.key, reportValue, \"stop domain values must be unique\")];\n } else {\n stopDomainValues[value] = true;\n }\n return [];\n }\n function validateFunctionDefault(options2) {\n return validate({\n key: options2.key,\n value: options2.value,\n valueSpec: functionValueSpec,\n style: options2.style,\n styleSpec: options2.styleSpec\n });\n }\n }\n function validateExpression(options) {\n var expression2 = (options.expressionContext === \"property\" ? createPropertyExpression : createExpression)(deepUnbundle(options.value), options.valueSpec);\n if (expression2.result === \"error\") {\n return expression2.value.map(function(error2) {\n return new ValidationError(\"\" + options.key + error2.key, options.value, error2.message);\n });\n }\n var expressionObj = expression2.value.expression || expression2.value._styleExpression.expression;\n if (options.expressionContext === \"property\" && options.propertyKey === \"text-font\" && !expressionObj.outputDefined()) {\n return [new ValidationError(options.key, options.value, 'Invalid data expression for \"' + options.propertyKey + '\". Output values must be contained as literals within the expression.')];\n }\n if (options.expressionContext === \"property\" && options.propertyType === \"layout\" && !isStateConstant(expressionObj)) {\n return [new ValidationError(options.key, options.value, '\"feature-state\" data expressions are not supported with layout properties.')];\n }\n if (options.expressionContext === \"filter\" && !isStateConstant(expressionObj)) {\n return [new ValidationError(options.key, options.value, '\"feature-state\" data expressions are not supported with filters.')];\n }\n if (options.expressionContext && options.expressionContext.indexOf(\"cluster\") === 0) {\n if (!isGlobalPropertyConstant(expressionObj, [\n \"zoom\",\n \"feature-state\"\n ])) {\n return [new ValidationError(options.key, options.value, '\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];\n }\n if (options.expressionContext === \"cluster-initial\" && !isFeatureConstant(expressionObj)) {\n return [new ValidationError(options.key, options.value, \"Feature data expressions are not supported with initial expression part of cluster properties.\")];\n }\n }\n return [];\n }\n function validateBoolean(options) {\n var value = options.value;\n var key = options.key;\n var type = getType(value);\n if (type !== \"boolean\") {\n return [new ValidationError(key, value, \"boolean expected, \" + type + \" found\")];\n }\n return [];\n }\n function validateColor(options) {\n var key = options.key;\n var value = options.value;\n var type = getType(value);\n if (type !== \"string\") {\n return [new ValidationError(key, value, \"color expected, \" + type + \" found\")];\n }\n if (csscolorparser_1(value) === null) {\n return [new ValidationError(key, value, 'color expected, \"' + value + '\" found')];\n }\n return [];\n }\n function validateEnum(options) {\n var key = options.key;\n var value = options.value;\n var valueSpec = options.valueSpec;\n var errors = [];\n if (Array.isArray(valueSpec.values)) {\n if (valueSpec.values.indexOf(unbundle(value)) === -1) {\n errors.push(new ValidationError(key, value, \"expected one of [\" + valueSpec.values.join(\", \") + \"], \" + JSON.stringify(value) + \" found\"));\n }\n } else {\n if (Object.keys(valueSpec.values).indexOf(unbundle(value)) === -1) {\n errors.push(new ValidationError(key, value, \"expected one of [\" + Object.keys(valueSpec.values).join(\", \") + \"], \" + JSON.stringify(value) + \" found\"));\n }\n }\n return errors;\n }\n function isExpressionFilter(filter2) {\n if (filter2 === true || filter2 === false) {\n return true;\n }\n if (!Array.isArray(filter2) || filter2.length === 0) {\n return false;\n }\n switch (filter2[0]) {\n case \"has\":\n return filter2.length >= 2 && filter2[1] !== \"$id\" && filter2[1] !== \"$type\";\n case \"in\":\n return filter2.length >= 3 && (typeof filter2[1] !== \"string\" || Array.isArray(filter2[2]));\n case \"!in\":\n case \"!has\":\n case \"none\":\n return false;\n case \"==\":\n case \"!=\":\n case \">\":\n case \">=\":\n case \"<\":\n case \"<=\":\n return filter2.length !== 3 || (Array.isArray(filter2[1]) || Array.isArray(filter2[2]));\n case \"any\":\n case \"all\":\n for (var i = 0, list = filter2.slice(1); i < list.length; i += 1) {\n var f = list[i];\n if (!isExpressionFilter(f) && typeof f !== \"boolean\") {\n return false;\n }\n }\n return true;\n default:\n return true;\n }\n }\n var filterSpec = {\n \"type\": \"boolean\",\n \"default\": false,\n \"transition\": false,\n \"property-type\": \"data-driven\",\n \"expression\": {\n \"interpolated\": false,\n \"parameters\": [\n \"zoom\",\n \"feature\"\n ]\n }\n };\n function createFilter(filter2) {\n if (filter2 === null || filter2 === void 0) {\n return {\n filter: function() {\n return true;\n },\n needGeometry: false\n };\n }\n if (!isExpressionFilter(filter2)) {\n filter2 = convertFilter(filter2);\n }\n var compiled = createExpression(filter2, filterSpec);\n if (compiled.result === \"error\") {\n throw new Error(compiled.value.map(function(err) {\n return err.key + \": \" + err.message;\n }).join(\", \"));\n } else {\n var needGeometry = geometryNeeded(filter2);\n return {\n filter: function(globalProperties, feature, canonical) {\n return compiled.value.evaluate(globalProperties, feature, {}, canonical);\n },\n needGeometry\n };\n }\n }\n function compare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n function geometryNeeded(filter2) {\n if (!Array.isArray(filter2)) {\n return false;\n }\n if (filter2[0] === \"within\") {\n return true;\n }\n for (var index = 1; index < filter2.length; index++) {\n if (geometryNeeded(filter2[index])) {\n return true;\n }\n }\n return false;\n }\n function convertFilter(filter2) {\n if (!filter2) {\n return true;\n }\n var op = filter2[0];\n if (filter2.length <= 1) {\n return op !== \"any\";\n }\n var converted = op === \"==\" ? convertComparisonOp(filter2[1], filter2[2], \"==\") : op === \"!=\" ? convertNegation(convertComparisonOp(filter2[1], filter2[2], \"==\")) : op === \"<\" || op === \">\" || op === \"<=\" || op === \">=\" ? convertComparisonOp(filter2[1], filter2[2], op) : op === \"any\" ? convertDisjunctionOp(filter2.slice(1)) : op === \"all\" ? [\"all\"].concat(filter2.slice(1).map(convertFilter)) : op === \"none\" ? [\"all\"].concat(filter2.slice(1).map(convertFilter).map(convertNegation)) : op === \"in\" ? convertInOp(filter2[1], filter2.slice(2)) : op === \"!in\" ? convertNegation(convertInOp(filter2[1], filter2.slice(2))) : op === \"has\" ? convertHasOp(filter2[1]) : op === \"!has\" ? convertNegation(convertHasOp(filter2[1])) : op === \"within\" ? filter2 : true;\n return converted;\n }\n function convertComparisonOp(property, value, op) {\n switch (property) {\n case \"$type\":\n return [\n \"filter-type-\" + op,\n value\n ];\n case \"$id\":\n return [\n \"filter-id-\" + op,\n value\n ];\n default:\n return [\n \"filter-\" + op,\n property,\n value\n ];\n }\n }\n function convertDisjunctionOp(filters) {\n return [\"any\"].concat(filters.map(convertFilter));\n }\n function convertInOp(property, values2) {\n if (values2.length === 0) {\n return false;\n }\n switch (property) {\n case \"$type\":\n return [\n \"filter-type-in\",\n [\n \"literal\",\n values2\n ]\n ];\n case \"$id\":\n return [\n \"filter-id-in\",\n [\n \"literal\",\n values2\n ]\n ];\n default:\n if (values2.length > 200 && !values2.some(function(v) {\n return typeof v !== typeof values2[0];\n })) {\n return [\n \"filter-in-large\",\n property,\n [\n \"literal\",\n values2.sort(compare)\n ]\n ];\n } else {\n return [\n \"filter-in-small\",\n property,\n [\n \"literal\",\n values2\n ]\n ];\n }\n }\n }\n function convertHasOp(property) {\n switch (property) {\n case \"$type\":\n return true;\n case \"$id\":\n return [\"filter-has-id\"];\n default:\n return [\n \"filter-has\",\n property\n ];\n }\n }\n function convertNegation(filter2) {\n return [\n \"!\",\n filter2\n ];\n }\n function validateFilter(options) {\n if (isExpressionFilter(deepUnbundle(options.value))) {\n return validateExpression(extend$1({}, options, {\n expressionContext: \"filter\",\n valueSpec: { value: \"boolean\" }\n }));\n } else {\n return validateNonExpressionFilter(options);\n }\n }\n function validateNonExpressionFilter(options) {\n var value = options.value;\n var key = options.key;\n if (getType(value) !== \"array\") {\n return [new ValidationError(key, value, \"array expected, \" + getType(value) + \" found\")];\n }\n var styleSpec = options.styleSpec;\n var type;\n var errors = [];\n if (value.length < 1) {\n return [new ValidationError(key, value, \"filter array must have at least 1 element\")];\n }\n errors = errors.concat(validateEnum({\n key: key + \"[0]\",\n value: value[0],\n valueSpec: styleSpec.filter_operator,\n style: options.style,\n styleSpec: options.styleSpec\n }));\n switch (unbundle(value[0])) {\n case \"<\":\n case \"<=\":\n case \">\":\n case \">=\":\n if (value.length >= 2 && unbundle(value[1]) === \"$type\") {\n errors.push(new ValidationError(key, value, '\"$type\" cannot be use with operator \"' + value[0] + '\"'));\n }\n case \"==\":\n case \"!=\":\n if (value.length !== 3) {\n errors.push(new ValidationError(key, value, 'filter array for operator \"' + value[0] + '\" must have 3 elements'));\n }\n case \"in\":\n case \"!in\":\n if (value.length >= 2) {\n type = getType(value[1]);\n if (type !== \"string\") {\n errors.push(new ValidationError(key + \"[1]\", value[1], \"string expected, \" + type + \" found\"));\n }\n }\n for (var i = 2; i < value.length; i++) {\n type = getType(value[i]);\n if (unbundle(value[1]) === \"$type\") {\n errors = errors.concat(validateEnum({\n key: key + \"[\" + i + \"]\",\n value: value[i],\n valueSpec: styleSpec.geometry_type,\n style: options.style,\n styleSpec: options.styleSpec\n }));\n } else if (type !== \"string\" && type !== \"number\" && type !== \"boolean\") {\n errors.push(new ValidationError(key + \"[\" + i + \"]\", value[i], \"string, number, or boolean expected, \" + type + \" found\"));\n }\n }\n break;\n case \"any\":\n case \"all\":\n case \"none\":\n for (var i$1 = 1; i$1 < value.length; i$1++) {\n errors = errors.concat(validateNonExpressionFilter({\n key: key + \"[\" + i$1 + \"]\",\n value: value[i$1],\n style: options.style,\n styleSpec: options.styleSpec\n }));\n }\n break;\n case \"has\":\n case \"!has\":\n type = getType(value[1]);\n if (value.length !== 2) {\n errors.push(new ValidationError(key, value, 'filter array for \"' + value[0] + '\" operator must have 2 elements'));\n } else if (type !== \"string\") {\n errors.push(new ValidationError(key + \"[1]\", value[1], \"string expected, \" + type + \" found\"));\n }\n break;\n case \"within\":\n type = getType(value[1]);\n if (value.length !== 2) {\n errors.push(new ValidationError(key, value, 'filter array for \"' + value[0] + '\" operator must have 2 elements'));\n } else if (type !== \"object\") {\n errors.push(new ValidationError(key + \"[1]\", value[1], \"object expected, \" + type + \" found\"));\n }\n break;\n }\n return errors;\n }\n function validateProperty(options, propertyType) {\n var key = options.key;\n var style = options.style;\n var styleSpec = options.styleSpec;\n var value = options.value;\n var propertyKey = options.objectKey;\n var layerSpec = styleSpec[propertyType + \"_\" + options.layerType];\n if (!layerSpec) {\n return [];\n }\n var transitionMatch = propertyKey.match(/^(.*)-transition$/);\n if (propertyType === \"paint\" && transitionMatch && layerSpec[transitionMatch[1]] && layerSpec[transitionMatch[1]].transition) {\n return validate({\n key,\n value,\n valueSpec: styleSpec.transition,\n style,\n styleSpec\n });\n }\n var valueSpec = options.valueSpec || layerSpec[propertyKey];\n if (!valueSpec) {\n return [new ValidationError(key, value, 'unknown property \"' + propertyKey + '\"')];\n }\n var tokenMatch;\n if (getType(value) === \"string\" && supportsPropertyExpression(valueSpec) && !valueSpec.tokens && (tokenMatch = /^{([^}]+)}$/.exec(value))) {\n return [new ValidationError(key, value, '\"' + propertyKey + '\" does not support interpolation syntax\\nUse an identity property function instead: `{ \"type\": \"identity\", \"property\": ' + JSON.stringify(tokenMatch[1]) + \" }`.\")];\n }\n var errors = [];\n if (options.layerType === \"symbol\") {\n if (propertyKey === \"text-field\" && style && !style.glyphs) {\n errors.push(new ValidationError(key, value, 'use of \"text-field\" requires a style \"glyphs\" property'));\n }\n if (propertyKey === \"text-font\" && isFunction(deepUnbundle(value)) && unbundle(value.type) === \"identity\") {\n errors.push(new ValidationError(key, value, '\"text-font\" does not support identity functions'));\n }\n }\n return errors.concat(validate({\n key: options.key,\n value,\n valueSpec,\n style,\n styleSpec,\n expressionContext: \"property\",\n propertyType,\n propertyKey\n }));\n }\n function validatePaintProperty(options) {\n return validateProperty(options, \"paint\");\n }\n function validateLayoutProperty(options) {\n return validateProperty(options, \"layout\");\n }\n function validateLayer(options) {\n var errors = [];\n var layer2 = options.value;\n var key = options.key;\n var style = options.style;\n var styleSpec = options.styleSpec;\n if (!layer2.type && !layer2.ref) {\n errors.push(new ValidationError(key, layer2, 'either \"type\" or \"ref\" is required'));\n }\n var type = unbundle(layer2.type);\n var ref = unbundle(layer2.ref);\n if (layer2.id) {\n var layerId = unbundle(layer2.id);\n for (var i = 0; i < options.arrayIndex; i++) {\n var otherLayer = style.layers[i];\n if (unbundle(otherLayer.id) === layerId) {\n errors.push(new ValidationError(key, layer2.id, 'duplicate layer id \"' + layer2.id + '\", previously used at line ' + otherLayer.id.__line__));\n }\n }\n }\n if (\"ref\" in layer2) {\n [\n \"type\",\n \"source\",\n \"source-layer\",\n \"filter\",\n \"layout\"\n ].forEach(function(p) {\n if (p in layer2) {\n errors.push(new ValidationError(key, layer2[p], '\"' + p + '\" is prohibited for ref layers'));\n }\n });\n var parent;\n style.layers.forEach(function(layer3) {\n if (unbundle(layer3.id) === ref) {\n parent = layer3;\n }\n });\n if (!parent) {\n errors.push(new ValidationError(key, layer2.ref, 'ref layer \"' + ref + '\" not found'));\n } else if (parent.ref) {\n errors.push(new ValidationError(key, layer2.ref, \"ref cannot reference another ref layer\"));\n } else {\n type = unbundle(parent.type);\n }\n } else if (type !== \"background\") {\n if (!layer2.source) {\n errors.push(new ValidationError(key, layer2, 'missing required property \"source\"'));\n } else {\n var source2 = style.sources && style.sources[layer2.source];\n var sourceType = source2 && unbundle(source2.type);\n if (!source2) {\n errors.push(new ValidationError(key, layer2.source, 'source \"' + layer2.source + '\" not found'));\n } else if (sourceType === \"vector\" && type === \"raster\") {\n errors.push(new ValidationError(key, layer2.source, 'layer \"' + layer2.id + '\" requires a raster source'));\n } else if (sourceType === \"raster\" && type !== \"raster\") {\n errors.push(new ValidationError(key, layer2.source, 'layer \"' + layer2.id + '\" requires a vector source'));\n } else if (sourceType === \"vector\" && !layer2[\"source-layer\"]) {\n errors.push(new ValidationError(key, layer2, 'layer \"' + layer2.id + '\" must specify a \"source-layer\"'));\n } else if (sourceType === \"raster-dem\" && type !== \"hillshade\") {\n errors.push(new ValidationError(key, layer2.source, \"raster-dem source can only be used with layer type 'hillshade'.\"));\n } else if (type === \"line\" && layer2.paint && layer2.paint[\"line-gradient\"] && (sourceType !== \"geojson\" || !source2.lineMetrics)) {\n errors.push(new ValidationError(key, layer2, 'layer \"' + layer2.id + '\" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.'));\n }\n }\n }\n errors = errors.concat(validateObject({\n key,\n value: layer2,\n valueSpec: styleSpec.layer,\n style: options.style,\n styleSpec: options.styleSpec,\n objectElementValidators: {\n \"*\": function _() {\n return [];\n },\n type: function type2() {\n return validate({\n key: key + \".type\",\n value: layer2.type,\n valueSpec: styleSpec.layer.type,\n style: options.style,\n styleSpec: options.styleSpec,\n object: layer2,\n objectKey: \"type\"\n });\n },\n filter: validateFilter,\n layout: function layout2(options2) {\n return validateObject({\n layer: layer2,\n key: options2.key,\n value: options2.value,\n style: options2.style,\n styleSpec: options2.styleSpec,\n objectElementValidators: {\n \"*\": function _(options3) {\n return validateLayoutProperty(extend$1({ layerType: type }, options3));\n }\n }\n });\n },\n paint: function paint2(options2) {\n return validateObject({\n layer: layer2,\n key: options2.key,\n value: options2.value,\n style: options2.style,\n styleSpec: options2.styleSpec,\n objectElementValidators: {\n \"*\": function _(options3) {\n return validatePaintProperty(extend$1({ layerType: type }, options3));\n }\n }\n });\n }\n }\n }));\n return errors;\n }\n function validateString(options) {\n var value = options.value;\n var key = options.key;\n var type = getType(value);\n if (type !== \"string\") {\n return [new ValidationError(key, value, \"string expected, \" + type + \" found\")];\n }\n return [];\n }\n var objectElementValidators = { promoteId: validatePromoteId };\n function validateSource(options) {\n var value = options.value;\n var key = options.key;\n var styleSpec = options.styleSpec;\n var style = options.style;\n if (!value.type) {\n return [new ValidationError(key, value, '\"type\" is required')];\n }\n var type = unbundle(value.type);\n var errors;\n switch (type) {\n case \"vector\":\n case \"raster\":\n case \"raster-dem\":\n errors = validateObject({\n key,\n value,\n valueSpec: styleSpec[\"source_\" + type.replace(\"-\", \"_\")],\n style: options.style,\n styleSpec,\n objectElementValidators\n });\n return errors;\n case \"geojson\":\n errors = validateObject({\n key,\n value,\n valueSpec: styleSpec.source_geojson,\n style,\n styleSpec,\n objectElementValidators\n });\n if (value.cluster) {\n for (var prop in value.clusterProperties) {\n var ref = value.clusterProperties[prop];\n var operator = ref[0];\n var mapExpr = ref[1];\n var reduceExpr = typeof operator === \"string\" ? [\n operator,\n [\"accumulated\"],\n [\n \"get\",\n prop\n ]\n ] : operator;\n errors.push.apply(errors, validateExpression({\n key: key + \".\" + prop + \".map\",\n value: mapExpr,\n expressionContext: \"cluster-map\"\n }));\n errors.push.apply(errors, validateExpression({\n key: key + \".\" + prop + \".reduce\",\n value: reduceExpr,\n expressionContext: \"cluster-reduce\"\n }));\n }\n }\n return errors;\n case \"video\":\n return validateObject({\n key,\n value,\n valueSpec: styleSpec.source_video,\n style,\n styleSpec\n });\n case \"image\":\n return validateObject({\n key,\n value,\n valueSpec: styleSpec.source_image,\n style,\n styleSpec\n });\n case \"canvas\":\n return [new ValidationError(key, null, \"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\", \"source.canvas\")];\n default:\n return validateEnum({\n key: key + \".type\",\n value: value.type,\n valueSpec: {\n values: [\n \"vector\",\n \"raster\",\n \"raster-dem\",\n \"geojson\",\n \"video\",\n \"image\"\n ]\n },\n style,\n styleSpec\n });\n }\n }\n function validatePromoteId(ref) {\n var key = ref.key;\n var value = ref.value;\n if (getType(value) === \"string\") {\n return validateString({\n key,\n value\n });\n } else {\n var errors = [];\n for (var prop in value) {\n errors.push.apply(errors, validateString({\n key: key + \".\" + prop,\n value: value[prop]\n }));\n }\n return errors;\n }\n }\n function validateLight(options) {\n var light2 = options.value;\n var styleSpec = options.styleSpec;\n var lightSpec = styleSpec.light;\n var style = options.style;\n var errors = [];\n var rootType = getType(light2);\n if (light2 === void 0) {\n return errors;\n } else if (rootType !== \"object\") {\n errors = errors.concat([new ValidationError(\"light\", light2, \"object expected, \" + rootType + \" found\")]);\n return errors;\n }\n for (var key in light2) {\n var transitionMatch = key.match(/^(.*)-transition$/);\n if (transitionMatch && lightSpec[transitionMatch[1]] && lightSpec[transitionMatch[1]].transition) {\n errors = errors.concat(validate({\n key,\n value: light2[key],\n valueSpec: styleSpec.transition,\n style,\n styleSpec\n }));\n } else if (lightSpec[key]) {\n errors = errors.concat(validate({\n key,\n value: light2[key],\n valueSpec: lightSpec[key],\n style,\n styleSpec\n }));\n } else {\n errors = errors.concat([new ValidationError(key, light2[key], 'unknown property \"' + key + '\"')]);\n }\n }\n return errors;\n }\n function validateFormatted(options) {\n if (validateString(options).length === 0) {\n return [];\n }\n return validateExpression(options);\n }\n function validateImage(options) {\n if (validateString(options).length === 0) {\n return [];\n }\n return validateExpression(options);\n }\n var VALIDATORS = {\n \"*\": function _() {\n return [];\n },\n \"array\": validateArray,\n \"boolean\": validateBoolean,\n \"number\": validateNumber,\n \"color\": validateColor,\n \"constants\": validateConstants,\n \"enum\": validateEnum,\n \"filter\": validateFilter,\n \"function\": validateFunction,\n \"layer\": validateLayer,\n \"object\": validateObject,\n \"source\": validateSource,\n \"light\": validateLight,\n \"string\": validateString,\n \"formatted\": validateFormatted,\n \"resolvedImage\": validateImage\n };\n function validate(options) {\n var value = options.value;\n var valueSpec = options.valueSpec;\n var styleSpec = options.styleSpec;\n if (valueSpec.expression && isFunction(unbundle(value))) {\n return validateFunction(options);\n } else if (valueSpec.expression && isExpression(deepUnbundle(value))) {\n return validateExpression(options);\n } else if (valueSpec.type && VALIDATORS[valueSpec.type]) {\n return VALIDATORS[valueSpec.type](options);\n } else {\n var valid = validateObject(extend$1({}, options, { valueSpec: valueSpec.type ? styleSpec[valueSpec.type] : valueSpec }));\n return valid;\n }\n }\n function validateGlyphsURL(options) {\n var value = options.value;\n var key = options.key;\n var errors = validateString(options);\n if (errors.length) {\n return errors;\n }\n if (value.indexOf(\"{fontstack}\") === -1) {\n errors.push(new ValidationError(key, value, '\"glyphs\" url must include a \"{fontstack}\" token'));\n }\n if (value.indexOf(\"{range}\") === -1) {\n errors.push(new ValidationError(key, value, '\"glyphs\" url must include a \"{range}\" token'));\n }\n return errors;\n }\n function validateStyleMin(style, styleSpec) {\n if (styleSpec === void 0)\n styleSpec = spec;\n var errors = [];\n errors = errors.concat(validate({\n key: \"\",\n value: style,\n valueSpec: styleSpec.$root,\n styleSpec,\n style,\n objectElementValidators: {\n glyphs: validateGlyphsURL,\n \"*\": function _() {\n return [];\n }\n }\n }));\n if (style.constants) {\n errors = errors.concat(validateConstants({\n key: \"constants\",\n value: style.constants,\n style,\n styleSpec\n }));\n }\n return sortErrors(errors);\n }\n validateStyleMin.source = wrapCleanErrors(validateSource);\n validateStyleMin.light = wrapCleanErrors(validateLight);\n validateStyleMin.layer = wrapCleanErrors(validateLayer);\n validateStyleMin.filter = wrapCleanErrors(validateFilter);\n validateStyleMin.paintProperty = wrapCleanErrors(validatePaintProperty);\n validateStyleMin.layoutProperty = wrapCleanErrors(validateLayoutProperty);\n function sortErrors(errors) {\n return [].concat(errors).sort(function(a, b) {\n return a.line - b.line;\n });\n }\n function wrapCleanErrors(inner) {\n return function() {\n var args = [], len = arguments.length;\n while (len--)\n args[len] = arguments[len];\n return sortErrors(inner.apply(this, args));\n };\n }\n var validateStyle = validateStyleMin;\n var validateLight$1 = validateStyle.light;\n var validatePaintProperty$1 = validateStyle.paintProperty;\n var validateLayoutProperty$1 = validateStyle.layoutProperty;\n function emitValidationErrors(emitter, errors) {\n var hasErrors = false;\n if (errors && errors.length) {\n for (var i = 0, list = errors; i < list.length; i += 1) {\n var error2 = list[i];\n emitter.fire(new ErrorEvent(new Error(error2.message)));\n hasErrors = true;\n }\n }\n return hasErrors;\n }\n var gridIndex = GridIndex;\n var NUM_PARAMS = 3;\n function GridIndex(extent, n, padding) {\n var cells = this.cells = [];\n if (extent instanceof ArrayBuffer) {\n this.arrayBuffer = extent;\n var array2 = new Int32Array(this.arrayBuffer);\n extent = array2[0];\n n = array2[1];\n padding = array2[2];\n this.d = n + 2 * padding;\n for (var k = 0; k < this.d * this.d; k++) {\n var start = array2[NUM_PARAMS + k];\n var end = array2[NUM_PARAMS + k + 1];\n cells.push(start === end ? null : array2.subarray(start, end));\n }\n var keysOffset = array2[NUM_PARAMS + cells.length];\n var bboxesOffset = array2[NUM_PARAMS + cells.length + 1];\n this.keys = array2.subarray(keysOffset, bboxesOffset);\n this.bboxes = array2.subarray(bboxesOffset);\n this.insert = this._insertReadonly;\n } else {\n this.d = n + 2 * padding;\n for (var i = 0; i < this.d * this.d; i++) {\n cells.push([]);\n }\n this.keys = [];\n this.bboxes = [];\n }\n this.n = n;\n this.extent = extent;\n this.padding = padding;\n this.scale = n / extent;\n this.uid = 0;\n var p = padding / n * extent;\n this.min = -p;\n this.max = extent + p;\n }\n GridIndex.prototype.insert = function(key, x1, y1, x2, y2) {\n this._forEachCell(x1, y1, x2, y2, this._insertCell, this.uid++);\n this.keys.push(key);\n this.bboxes.push(x1);\n this.bboxes.push(y1);\n this.bboxes.push(x2);\n this.bboxes.push(y2);\n };\n GridIndex.prototype._insertReadonly = function() {\n throw \"Cannot insert into a GridIndex created from an ArrayBuffer.\";\n };\n GridIndex.prototype._insertCell = function(x1, y1, x2, y2, cellIndex, uid) {\n this.cells[cellIndex].push(uid);\n };\n GridIndex.prototype.query = function(x1, y1, x2, y2, intersectionTest) {\n var min = this.min;\n var max = this.max;\n if (x1 <= min && y1 <= min && max <= x2 && max <= y2 && !intersectionTest) {\n return Array.prototype.slice.call(this.keys);\n } else {\n var result = [];\n var seenUids = {};\n this._forEachCell(x1, y1, x2, y2, this._queryCell, result, seenUids, intersectionTest);\n return result;\n }\n };\n GridIndex.prototype._queryCell = function(x1, y1, x2, y2, cellIndex, result, seenUids, intersectionTest) {\n var cell = this.cells[cellIndex];\n if (cell !== null) {\n var keys = this.keys;\n var bboxes = this.bboxes;\n for (var u = 0; u < cell.length; u++) {\n var uid = cell[u];\n if (seenUids[uid] === void 0) {\n var offset = uid * 4;\n if (intersectionTest ? intersectionTest(bboxes[offset + 0], bboxes[offset + 1], bboxes[offset + 2], bboxes[offset + 3]) : x1 <= bboxes[offset + 2] && y1 <= bboxes[offset + 3] && x2 >= bboxes[offset + 0] && y2 >= bboxes[offset + 1]) {\n seenUids[uid] = true;\n result.push(keys[uid]);\n } else {\n seenUids[uid] = false;\n }\n }\n }\n }\n };\n GridIndex.prototype._forEachCell = function(x1, y1, x2, y2, fn, arg1, arg2, intersectionTest) {\n var cx1 = this._convertToCellCoord(x1);\n var cy1 = this._convertToCellCoord(y1);\n var cx2 = this._convertToCellCoord(x2);\n var cy2 = this._convertToCellCoord(y2);\n for (var x = cx1; x <= cx2; x++) {\n for (var y = cy1; y <= cy2; y++) {\n var cellIndex = this.d * y + x;\n if (intersectionTest && !intersectionTest(this._convertFromCellCoord(x), this._convertFromCellCoord(y), this._convertFromCellCoord(x + 1), this._convertFromCellCoord(y + 1))) {\n continue;\n }\n if (fn.call(this, x1, y1, x2, y2, cellIndex, arg1, arg2, intersectionTest)) {\n return;\n }\n }\n }\n };\n GridIndex.prototype._convertFromCellCoord = function(x) {\n return (x - this.padding) / this.scale;\n };\n GridIndex.prototype._convertToCellCoord = function(x) {\n return Math.max(0, Math.min(this.d - 1, Math.floor(x * this.scale) + this.padding));\n };\n GridIndex.prototype.toArrayBuffer = function() {\n if (this.arrayBuffer) {\n return this.arrayBuffer;\n }\n var cells = this.cells;\n var metadataLength = NUM_PARAMS + this.cells.length + 1 + 1;\n var totalCellLength = 0;\n for (var i = 0; i < this.cells.length; i++) {\n totalCellLength += this.cells[i].length;\n }\n var array2 = new Int32Array(metadataLength + totalCellLength + this.keys.length + this.bboxes.length);\n array2[0] = this.extent;\n array2[1] = this.n;\n array2[2] = this.padding;\n var offset = metadataLength;\n for (var k = 0; k < cells.length; k++) {\n var cell = cells[k];\n array2[NUM_PARAMS + k] = offset;\n array2.set(cell, offset);\n offset += cell.length;\n }\n array2[NUM_PARAMS + cells.length] = offset;\n array2.set(this.keys, offset);\n offset += this.keys.length;\n array2[NUM_PARAMS + cells.length + 1] = offset;\n array2.set(this.bboxes, offset);\n offset += this.bboxes.length;\n return array2.buffer;\n };\n var ImageData2 = window$1.ImageData;\n var ImageBitmap2 = window$1.ImageBitmap;\n var registry = {};\n function register(name3, klass, options) {\n if (options === void 0)\n options = {};\n Object.defineProperty(klass, \"_classRegistryKey\", {\n value: name3,\n writeable: false\n });\n registry[name3] = {\n klass,\n omit: options.omit || [],\n shallow: options.shallow || []\n };\n }\n register(\"Object\", Object);\n gridIndex.serialize = function serialize2(grid, transferables) {\n var buffer = grid.toArrayBuffer();\n if (transferables) {\n transferables.push(buffer);\n }\n return { buffer };\n };\n gridIndex.deserialize = function deserialize2(serialized) {\n return new gridIndex(serialized.buffer);\n };\n register(\"Grid\", gridIndex);\n register(\"Color\", Color2);\n register(\"Error\", Error);\n register(\"ResolvedImage\", ResolvedImage);\n register(\"StylePropertyFunction\", StylePropertyFunction);\n register(\"StyleExpression\", StyleExpression, { omit: [\"_evaluator\"] });\n register(\"ZoomDependentExpression\", ZoomDependentExpression);\n register(\"ZoomConstantExpression\", ZoomConstantExpression);\n register(\"CompoundExpression\", CompoundExpression, { omit: [\"_evaluate\"] });\n for (var name2 in expressions) {\n if (expressions[name2]._classRegistryKey) {\n continue;\n }\n register(\"Expression_\" + name2, expressions[name2]);\n }\n function isArrayBuffer(val) {\n return val && typeof ArrayBuffer !== \"undefined\" && (val instanceof ArrayBuffer || val.constructor && val.constructor.name === \"ArrayBuffer\");\n }\n function isImageBitmap(val) {\n return ImageBitmap2 && val instanceof ImageBitmap2;\n }\n function serialize(input, transferables) {\n if (input === null || input === void 0 || typeof input === \"boolean\" || typeof input === \"number\" || typeof input === \"string\" || input instanceof Boolean || input instanceof Number || input instanceof String || input instanceof Date || input instanceof RegExp) {\n return input;\n }\n if (isArrayBuffer(input) || isImageBitmap(input)) {\n if (transferables) {\n transferables.push(input);\n }\n return input;\n }\n if (ArrayBuffer.isView(input)) {\n var view = input;\n if (transferables) {\n transferables.push(view.buffer);\n }\n return view;\n }\n if (input instanceof ImageData2) {\n if (transferables) {\n transferables.push(input.data.buffer);\n }\n return input;\n }\n if (Array.isArray(input)) {\n var serialized = [];\n for (var i = 0, list = input; i < list.length; i += 1) {\n var item = list[i];\n serialized.push(serialize(item, transferables));\n }\n return serialized;\n }\n if (typeof input === \"object\") {\n var klass = input.constructor;\n var name3 = klass._classRegistryKey;\n if (!name3) {\n throw new Error(\"can't serialize object of unregistered class\");\n }\n var properties2 = klass.serialize ? klass.serialize(input, transferables) : {};\n if (!klass.serialize) {\n for (var key in input) {\n if (!input.hasOwnProperty(key)) {\n continue;\n }\n if (registry[name3].omit.indexOf(key) >= 0) {\n continue;\n }\n var property = input[key];\n properties2[key] = registry[name3].shallow.indexOf(key) >= 0 ? property : serialize(property, transferables);\n }\n if (input instanceof Error) {\n properties2.message = input.message;\n }\n }\n if (properties2.$name) {\n throw new Error(\"$name property is reserved for worker serialization logic.\");\n }\n if (name3 !== \"Object\") {\n properties2.$name = name3;\n }\n return properties2;\n }\n throw new Error(\"can't serialize object of type \" + typeof input);\n }\n function deserialize(input) {\n if (input === null || input === void 0 || typeof input === \"boolean\" || typeof input === \"number\" || typeof input === \"string\" || input instanceof Boolean || input instanceof Number || input instanceof String || input instanceof Date || input instanceof RegExp || isArrayBuffer(input) || isImageBitmap(input) || ArrayBuffer.isView(input) || input instanceof ImageData2) {\n return input;\n }\n if (Array.isArray(input)) {\n return input.map(deserialize);\n }\n if (typeof input === \"object\") {\n var name3 = input.$name || \"Object\";\n var ref = registry[name3];\n var klass = ref.klass;\n if (!klass) {\n throw new Error(\"can't deserialize unregistered class \" + name3);\n }\n if (klass.deserialize) {\n return klass.deserialize(input);\n }\n var result = Object.create(klass.prototype);\n for (var i = 0, list = Object.keys(input); i < list.length; i += 1) {\n var key = list[i];\n if (key === \"$name\") {\n continue;\n }\n var value = input[key];\n result[key] = registry[name3].shallow.indexOf(key) >= 0 ? value : deserialize(value);\n }\n return result;\n }\n throw new Error(\"can't deserialize object of type \" + typeof input);\n }\n var ZoomHistory = function ZoomHistory2() {\n this.first = true;\n };\n ZoomHistory.prototype.update = function update(z, now2) {\n var floorZ = Math.floor(z);\n if (this.first) {\n this.first = false;\n this.lastIntegerZoom = floorZ;\n this.lastIntegerZoomTime = 0;\n this.lastZoom = z;\n this.lastFloorZoom = floorZ;\n return true;\n }\n if (this.lastFloorZoom > floorZ) {\n this.lastIntegerZoom = floorZ + 1;\n this.lastIntegerZoomTime = now2;\n } else if (this.lastFloorZoom < floorZ) {\n this.lastIntegerZoom = floorZ;\n this.lastIntegerZoomTime = now2;\n }\n if (z !== this.lastZoom) {\n this.lastZoom = z;\n this.lastFloorZoom = floorZ;\n return true;\n }\n return false;\n };\n var unicodeBlockLookup = {\n \"Latin-1 Supplement\": function(char) {\n return char >= 128 && char <= 255;\n },\n \"Arabic\": function(char) {\n return char >= 1536 && char <= 1791;\n },\n \"Arabic Supplement\": function(char) {\n return char >= 1872 && char <= 1919;\n },\n \"Arabic Extended-A\": function(char) {\n return char >= 2208 && char <= 2303;\n },\n \"Hangul Jamo\": function(char) {\n return char >= 4352 && char <= 4607;\n },\n \"Unified Canadian Aboriginal Syllabics\": function(char) {\n return char >= 5120 && char <= 5759;\n },\n \"Khmer\": function(char) {\n return char >= 6016 && char <= 6143;\n },\n \"Unified Canadian Aboriginal Syllabics Extended\": function(char) {\n return char >= 6320 && char <= 6399;\n },\n \"General Punctuation\": function(char) {\n return char >= 8192 && char <= 8303;\n },\n \"Letterlike Symbols\": function(char) {\n return char >= 8448 && char <= 8527;\n },\n \"Number Forms\": function(char) {\n return char >= 8528 && char <= 8591;\n },\n \"Miscellaneous Technical\": function(char) {\n return char >= 8960 && char <= 9215;\n },\n \"Control Pictures\": function(char) {\n return char >= 9216 && char <= 9279;\n },\n \"Optical Character Recognition\": function(char) {\n return char >= 9280 && char <= 9311;\n },\n \"Enclosed Alphanumerics\": function(char) {\n return char >= 9312 && char <= 9471;\n },\n \"Geometric Shapes\": function(char) {\n return char >= 9632 && char <= 9727;\n },\n \"Miscellaneous Symbols\": function(char) {\n return char >= 9728 && char <= 9983;\n },\n \"Miscellaneous Symbols and Arrows\": function(char) {\n return char >= 11008 && char <= 11263;\n },\n \"CJK Radicals Supplement\": function(char) {\n return char >= 11904 && char <= 12031;\n },\n \"Kangxi Radicals\": function(char) {\n return char >= 12032 && char <= 12255;\n },\n \"Ideographic Description Characters\": function(char) {\n return char >= 12272 && char <= 12287;\n },\n \"CJK Symbols and Punctuation\": function(char) {\n return char >= 12288 && char <= 12351;\n },\n \"Hiragana\": function(char) {\n return char >= 12352 && char <= 12447;\n },\n \"Katakana\": function(char) {\n return char >= 12448 && char <= 12543;\n },\n \"Bopomofo\": function(char) {\n return char >= 12544 && char <= 12591;\n },\n \"Hangul Compatibility Jamo\": function(char) {\n return char >= 12592 && char <= 12687;\n },\n \"Kanbun\": function(char) {\n return char >= 12688 && char <= 12703;\n },\n \"Bopomofo Extended\": function(char) {\n return char >= 12704 && char <= 12735;\n },\n \"CJK Strokes\": function(char) {\n return char >= 12736 && char <= 12783;\n },\n \"Katakana Phonetic Extensions\": function(char) {\n return char >= 12784 && char <= 12799;\n },\n \"Enclosed CJK Letters and Months\": function(char) {\n return char >= 12800 && char <= 13055;\n },\n \"CJK Compatibility\": function(char) {\n return char >= 13056 && char <= 13311;\n },\n \"CJK Unified Ideographs Extension A\": function(char) {\n return char >= 13312 && char <= 19903;\n },\n \"Yijing Hexagram Symbols\": function(char) {\n return char >= 19904 && char <= 19967;\n },\n \"CJK Unified Ideographs\": function(char) {\n return char >= 19968 && char <= 40959;\n },\n \"Yi Syllables\": function(char) {\n return char >= 40960 && char <= 42127;\n },\n \"Yi Radicals\": function(char) {\n return char >= 42128 && char <= 42191;\n },\n \"Hangul Jamo Extended-A\": function(char) {\n return char >= 43360 && char <= 43391;\n },\n \"Hangul Syllables\": function(char) {\n return char >= 44032 && char <= 55215;\n },\n \"Hangul Jamo Extended-B\": function(char) {\n return char >= 55216 && char <= 55295;\n },\n \"Private Use Area\": function(char) {\n return char >= 57344 && char <= 63743;\n },\n \"CJK Compatibility Ideographs\": function(char) {\n return char >= 63744 && char <= 64255;\n },\n \"Arabic Presentation Forms-A\": function(char) {\n return char >= 64336 && char <= 65023;\n },\n \"Vertical Forms\": function(char) {\n return char >= 65040 && char <= 65055;\n },\n \"CJK Compatibility Forms\": function(char) {\n return char >= 65072 && char <= 65103;\n },\n \"Small Form Variants\": function(char) {\n return char >= 65104 && char <= 65135;\n },\n \"Arabic Presentation Forms-B\": function(char) {\n return char >= 65136 && char <= 65279;\n },\n \"Halfwidth and Fullwidth Forms\": function(char) {\n return char >= 65280 && char <= 65519;\n }\n };\n function allowsVerticalWritingMode(chars) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (charHasUprightVerticalOrientation(char.charCodeAt(0))) {\n return true;\n }\n }\n return false;\n }\n function allowsLetterSpacing(chars) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (!charAllowsLetterSpacing(char.charCodeAt(0))) {\n return false;\n }\n }\n return true;\n }\n function charAllowsLetterSpacing(char) {\n if (unicodeBlockLookup[\"Arabic\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Supplement\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Extended-A\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Presentation Forms-A\"](char)) {\n return false;\n }\n if (unicodeBlockLookup[\"Arabic Presentation Forms-B\"](char)) {\n return false;\n }\n return true;\n }\n function charAllowsIdeographicBreaking(char) {\n if (char < 11904) {\n return false;\n }\n if (unicodeBlockLookup[\"Bopomofo Extended\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Bopomofo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Radicals Supplement\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Strokes\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Symbols and Punctuation\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs Extension A\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Enclosed CJK Letters and Months\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Halfwidth and Fullwidth Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hiragana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Ideographic Description Characters\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Kangxi Radicals\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana Phonetic Extensions\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Vertical Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Radicals\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Syllables\"](char)) {\n return true;\n }\n return false;\n }\n function charHasUprightVerticalOrientation(char) {\n if (char === 746 || char === 747) {\n return true;\n }\n if (char < 4352) {\n return false;\n }\n if (unicodeBlockLookup[\"Bopomofo Extended\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Bopomofo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Forms\"](char)) {\n if (!(char >= 65097 && char <= 65103)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"CJK Compatibility Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Radicals Supplement\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Strokes\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Symbols and Punctuation\"](char)) {\n if (!(char >= 12296 && char <= 12305) && !(char >= 12308 && char <= 12319) && char !== 12336) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs Extension A\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Unified Ideographs\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Enclosed CJK Letters and Months\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Compatibility Jamo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Jamo Extended-A\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Jamo Extended-B\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Jamo\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hangul Syllables\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Hiragana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Ideographic Description Characters\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Kanbun\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Kangxi Radicals\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana Phonetic Extensions\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana\"](char)) {\n if (char !== 12540) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Halfwidth and Fullwidth Forms\"](char)) {\n if (char !== 65288 && char !== 65289 && char !== 65293 && !(char >= 65306 && char <= 65310) && char !== 65339 && char !== 65341 && char !== 65343 && !(char >= 65371 && char <= 65503) && char !== 65507 && !(char >= 65512 && char <= 65519)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Small Form Variants\"](char)) {\n if (!(char >= 65112 && char <= 65118) && !(char >= 65123 && char <= 65126)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Unified Canadian Aboriginal Syllabics\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Unified Canadian Aboriginal Syllabics Extended\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Vertical Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yijing Hexagram Symbols\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Syllables\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Yi Radicals\"](char)) {\n return true;\n }\n return false;\n }\n function charHasNeutralVerticalOrientation(char) {\n if (unicodeBlockLookup[\"Latin-1 Supplement\"](char)) {\n if (char === 167 || char === 169 || char === 174 || char === 177 || char === 188 || char === 189 || char === 190 || char === 215 || char === 247) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"General Punctuation\"](char)) {\n if (char === 8214 || char === 8224 || char === 8225 || char === 8240 || char === 8241 || char === 8251 || char === 8252 || char === 8258 || char === 8263 || char === 8264 || char === 8265 || char === 8273) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Letterlike Symbols\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Number Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Miscellaneous Technical\"](char)) {\n if (char >= 8960 && char <= 8967 || char >= 8972 && char <= 8991 || char >= 8996 && char <= 9e3 || char === 9003 || char >= 9085 && char <= 9114 || char >= 9150 && char <= 9165 || char === 9167 || char >= 9169 && char <= 9179 || char >= 9186 && char <= 9215) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Control Pictures\"](char) && char !== 9251) {\n return true;\n }\n if (unicodeBlockLookup[\"Optical Character Recognition\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Enclosed Alphanumerics\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Geometric Shapes\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Miscellaneous Symbols\"](char)) {\n if (!(char >= 9754 && char <= 9759)) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"Miscellaneous Symbols and Arrows\"](char)) {\n if (char >= 11026 && char <= 11055 || char >= 11088 && char <= 11097 || char >= 11192 && char <= 11243) {\n return true;\n }\n }\n if (unicodeBlockLookup[\"CJK Symbols and Punctuation\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Katakana\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Private Use Area\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"CJK Compatibility Forms\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Small Form Variants\"](char)) {\n return true;\n }\n if (unicodeBlockLookup[\"Halfwidth and Fullwidth Forms\"](char)) {\n return true;\n }\n if (char === 8734 || char === 8756 || char === 8757 || char >= 9984 && char <= 10087 || char >= 10102 && char <= 10131 || char === 65532 || char === 65533) {\n return true;\n }\n return false;\n }\n function charHasRotatedVerticalOrientation(char) {\n return !(charHasUprightVerticalOrientation(char) || charHasNeutralVerticalOrientation(char));\n }\n function charInComplexShapingScript(char) {\n return unicodeBlockLookup[\"Arabic\"](char) || unicodeBlockLookup[\"Arabic Supplement\"](char) || unicodeBlockLookup[\"Arabic Extended-A\"](char) || unicodeBlockLookup[\"Arabic Presentation Forms-A\"](char) || unicodeBlockLookup[\"Arabic Presentation Forms-B\"](char);\n }\n function charInRTLScript(char) {\n return char >= 1424 && char <= 2303 || unicodeBlockLookup[\"Arabic Presentation Forms-A\"](char) || unicodeBlockLookup[\"Arabic Presentation Forms-B\"](char);\n }\n function charInSupportedScript(char, canRenderRTL) {\n if (!canRenderRTL && charInRTLScript(char)) {\n return false;\n }\n if (char >= 2304 && char <= 3583 || char >= 3840 && char <= 4255 || unicodeBlockLookup[\"Khmer\"](char)) {\n return false;\n }\n return true;\n }\n function stringContainsRTLText(chars) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (charInRTLScript(char.charCodeAt(0))) {\n return true;\n }\n }\n return false;\n }\n function isStringInSupportedScript(chars, canRenderRTL) {\n for (var i = 0, list = chars; i < list.length; i += 1) {\n var char = list[i];\n if (!charInSupportedScript(char.charCodeAt(0), canRenderRTL)) {\n return false;\n }\n }\n return true;\n }\n var status = {\n unavailable: \"unavailable\",\n deferred: \"deferred\",\n loading: \"loading\",\n loaded: \"loaded\",\n error: \"error\"\n };\n var _completionCallback = null;\n var pluginStatus = status.unavailable;\n var pluginURL = null;\n var triggerPluginCompletionEvent = function(error2) {\n if (error2 && typeof error2 === \"string\" && error2.indexOf(\"NetworkError\") > -1) {\n pluginStatus = status.error;\n }\n if (_completionCallback) {\n _completionCallback(error2);\n }\n };\n function sendPluginStateToWorker() {\n evented.fire(new Event(\"pluginStateChange\", {\n pluginStatus,\n pluginURL\n }));\n }\n var evented = new Evented();\n var getRTLTextPluginStatus = function() {\n return pluginStatus;\n };\n var registerForPluginStateChange = function(callback) {\n callback({\n pluginStatus,\n pluginURL\n });\n evented.on(\"pluginStateChange\", callback);\n return callback;\n };\n var setRTLTextPlugin = function(url, callback, deferred) {\n if (deferred === void 0)\n deferred = false;\n if (pluginStatus === status.deferred || pluginStatus === status.loading || pluginStatus === status.loaded) {\n throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");\n }\n pluginURL = exported.resolveURL(url);\n pluginStatus = status.deferred;\n _completionCallback = callback;\n sendPluginStateToWorker();\n if (!deferred) {\n downloadRTLTextPlugin();\n }\n };\n var downloadRTLTextPlugin = function() {\n if (pluginStatus !== status.deferred || !pluginURL) {\n throw new Error(\"rtl-text-plugin cannot be downloaded unless a pluginURL is specified\");\n }\n pluginStatus = status.loading;\n sendPluginStateToWorker();\n if (pluginURL) {\n getArrayBuffer({ url: pluginURL }, function(error2) {\n if (error2) {\n triggerPluginCompletionEvent(error2);\n } else {\n pluginStatus = status.loaded;\n sendPluginStateToWorker();\n }\n });\n }\n };\n var plugin = {\n applyArabicShaping: null,\n processBidirectionalText: null,\n processStyledBidirectionalText: null,\n isLoaded: function isLoaded() {\n return pluginStatus === status.loaded || plugin.applyArabicShaping != null;\n },\n isLoading: function isLoading() {\n return pluginStatus === status.loading;\n },\n setState: function setState(state) {\n pluginStatus = state.pluginStatus;\n pluginURL = state.pluginURL;\n },\n isParsed: function isParsed() {\n return plugin.applyArabicShaping != null && plugin.processBidirectionalText != null && plugin.processStyledBidirectionalText != null;\n },\n getPluginURL: function getPluginURL() {\n return pluginURL;\n }\n };\n var lazyLoadRTLTextPlugin = function() {\n if (!plugin.isLoading() && !plugin.isLoaded() && getRTLTextPluginStatus() === \"deferred\") {\n downloadRTLTextPlugin();\n }\n };\n var EvaluationParameters = function EvaluationParameters2(zoom, options) {\n this.zoom = zoom;\n if (options) {\n this.now = options.now;\n this.fadeDuration = options.fadeDuration;\n this.zoomHistory = options.zoomHistory;\n this.transition = options.transition;\n } else {\n this.now = 0;\n this.fadeDuration = 0;\n this.zoomHistory = new ZoomHistory();\n this.transition = {};\n }\n };\n EvaluationParameters.prototype.isSupportedScript = function isSupportedScript(str) {\n return isStringInSupportedScript(str, plugin.isLoaded());\n };\n EvaluationParameters.prototype.crossFadingFactor = function crossFadingFactor() {\n if (this.fadeDuration === 0) {\n return 1;\n } else {\n return Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1);\n }\n };\n EvaluationParameters.prototype.getCrossfadeParameters = function getCrossfadeParameters() {\n var z = this.zoom;\n var fraction = z - Math.floor(z);\n var t = this.crossFadingFactor();\n return z > this.zoomHistory.lastIntegerZoom ? {\n fromScale: 2,\n toScale: 1,\n t: fraction + (1 - fraction) * t\n } : {\n fromScale: 0.5,\n toScale: 1,\n t: 1 - (1 - t) * fraction\n };\n };\n var PropertyValue = function PropertyValue2(property, value) {\n this.property = property;\n this.value = value;\n this.expression = normalizePropertyExpression(value === void 0 ? property.specification.default : value, property.specification);\n };\n PropertyValue.prototype.isDataDriven = function isDataDriven() {\n return this.expression.kind === \"source\" || this.expression.kind === \"composite\";\n };\n PropertyValue.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n return this.property.possiblyEvaluate(this, parameters, canonical, availableImages);\n };\n var TransitionablePropertyValue = function TransitionablePropertyValue2(property) {\n this.property = property;\n this.value = new PropertyValue(property, void 0);\n };\n TransitionablePropertyValue.prototype.transitioned = function transitioned(parameters, prior) {\n return new TransitioningPropertyValue(this.property, this.value, prior, extend2({}, parameters.transition, this.transition), parameters.now);\n };\n TransitionablePropertyValue.prototype.untransitioned = function untransitioned() {\n return new TransitioningPropertyValue(this.property, this.value, null, {}, 0);\n };\n var Transitionable = function Transitionable2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultTransitionablePropertyValues);\n };\n Transitionable.prototype.getValue = function getValue(name3) {\n return clone(this._values[name3].value.value);\n };\n Transitionable.prototype.setValue = function setValue(name3, value) {\n if (!this._values.hasOwnProperty(name3)) {\n this._values[name3] = new TransitionablePropertyValue(this._values[name3].property);\n }\n this._values[name3].value = new PropertyValue(this._values[name3].property, value === null ? void 0 : clone(value));\n };\n Transitionable.prototype.getTransition = function getTransition(name3) {\n return clone(this._values[name3].transition);\n };\n Transitionable.prototype.setTransition = function setTransition(name3, value) {\n if (!this._values.hasOwnProperty(name3)) {\n this._values[name3] = new TransitionablePropertyValue(this._values[name3].property);\n }\n this._values[name3].transition = clone(value) || void 0;\n };\n Transitionable.prototype.serialize = function serialize2() {\n var result = {};\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n var value = this.getValue(property);\n if (value !== void 0) {\n result[property] = value;\n }\n var transition2 = this.getTransition(property);\n if (transition2 !== void 0) {\n result[property + \"-transition\"] = transition2;\n }\n }\n return result;\n };\n Transitionable.prototype.transitioned = function transitioned(parameters, prior) {\n var result = new Transitioning(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].transitioned(parameters, prior._values[property]);\n }\n return result;\n };\n Transitionable.prototype.untransitioned = function untransitioned() {\n var result = new Transitioning(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].untransitioned();\n }\n return result;\n };\n var TransitioningPropertyValue = function TransitioningPropertyValue2(property, value, prior, transition2, now2) {\n this.property = property;\n this.value = value;\n this.begin = now2 + transition2.delay || 0;\n this.end = this.begin + transition2.duration || 0;\n if (property.specification.transition && (transition2.delay || transition2.duration)) {\n this.prior = prior;\n }\n };\n TransitioningPropertyValue.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n var now2 = parameters.now || 0;\n var finalValue = this.value.possiblyEvaluate(parameters, canonical, availableImages);\n var prior = this.prior;\n if (!prior) {\n return finalValue;\n } else if (now2 > this.end) {\n this.prior = null;\n return finalValue;\n } else if (this.value.isDataDriven()) {\n this.prior = null;\n return finalValue;\n } else if (now2 < this.begin) {\n return prior.possiblyEvaluate(parameters, canonical, availableImages);\n } else {\n var t = (now2 - this.begin) / (this.end - this.begin);\n return this.property.interpolate(prior.possiblyEvaluate(parameters, canonical, availableImages), finalValue, easeCubicInOut(t));\n }\n };\n var Transitioning = function Transitioning2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultTransitioningPropertyValues);\n };\n Transitioning.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n var result = new PossiblyEvaluated(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].possiblyEvaluate(parameters, canonical, availableImages);\n }\n return result;\n };\n Transitioning.prototype.hasTransition = function hasTransition() {\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n if (this._values[property].prior) {\n return true;\n }\n }\n return false;\n };\n var Layout = function Layout2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultPropertyValues);\n };\n Layout.prototype.getValue = function getValue(name3) {\n return clone(this._values[name3].value);\n };\n Layout.prototype.setValue = function setValue(name3, value) {\n this._values[name3] = new PropertyValue(this._values[name3].property, value === null ? void 0 : clone(value));\n };\n Layout.prototype.serialize = function serialize2() {\n var result = {};\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n var value = this.getValue(property);\n if (value !== void 0) {\n result[property] = value;\n }\n }\n return result;\n };\n Layout.prototype.possiblyEvaluate = function possiblyEvaluate(parameters, canonical, availableImages) {\n var result = new PossiblyEvaluated(this._properties);\n for (var i = 0, list = Object.keys(this._values); i < list.length; i += 1) {\n var property = list[i];\n result._values[property] = this._values[property].possiblyEvaluate(parameters, canonical, availableImages);\n }\n return result;\n };\n var PossiblyEvaluatedPropertyValue = function PossiblyEvaluatedPropertyValue2(property, value, parameters) {\n this.property = property;\n this.value = value;\n this.parameters = parameters;\n };\n PossiblyEvaluatedPropertyValue.prototype.isConstant = function isConstant2() {\n return this.value.kind === \"constant\";\n };\n PossiblyEvaluatedPropertyValue.prototype.constantOr = function constantOr(value) {\n if (this.value.kind === \"constant\") {\n return this.value.value;\n } else {\n return value;\n }\n };\n PossiblyEvaluatedPropertyValue.prototype.evaluate = function evaluate(feature, featureState, canonical, availableImages) {\n return this.property.evaluate(this.value, this.parameters, feature, featureState, canonical, availableImages);\n };\n var PossiblyEvaluated = function PossiblyEvaluated2(properties2) {\n this._properties = properties2;\n this._values = Object.create(properties2.defaultPossiblyEvaluatedValues);\n };\n PossiblyEvaluated.prototype.get = function get2(name3) {\n return this._values[name3];\n };\n var DataConstantProperty = function DataConstantProperty2(specification) {\n this.specification = specification;\n };\n DataConstantProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters) {\n return value.expression.evaluate(parameters);\n };\n DataConstantProperty.prototype.interpolate = function interpolate$1(a, b, t) {\n var interp = interpolate[this.specification.type];\n if (interp) {\n return interp(a, b, t);\n } else {\n return a;\n }\n };\n var DataDrivenProperty = function DataDrivenProperty2(specification, overrides) {\n this.specification = specification;\n this.overrides = overrides;\n };\n DataDrivenProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n if (value.expression.kind === \"constant\" || value.expression.kind === \"camera\") {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: value.expression.evaluate(parameters, null, {}, canonical, availableImages)\n }, parameters);\n } else {\n return new PossiblyEvaluatedPropertyValue(this, value.expression, parameters);\n }\n };\n DataDrivenProperty.prototype.interpolate = function interpolate$2(a, b, t) {\n if (a.value.kind !== \"constant\" || b.value.kind !== \"constant\") {\n return a;\n }\n if (a.value.value === void 0 || b.value.value === void 0) {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: void 0\n }, a.parameters);\n }\n var interp = interpolate[this.specification.type];\n if (interp) {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: interp(a.value.value, b.value.value, t)\n }, a.parameters);\n } else {\n return a;\n }\n };\n DataDrivenProperty.prototype.evaluate = function evaluate(value, parameters, feature, featureState, canonical, availableImages) {\n if (value.kind === \"constant\") {\n return value.value;\n } else {\n return value.evaluate(parameters, feature, featureState, canonical, availableImages);\n }\n };\n var CrossFadedDataDrivenProperty = function(DataDrivenProperty2) {\n function CrossFadedDataDrivenProperty2() {\n DataDrivenProperty2.apply(this, arguments);\n }\n if (DataDrivenProperty2)\n CrossFadedDataDrivenProperty2.__proto__ = DataDrivenProperty2;\n CrossFadedDataDrivenProperty2.prototype = Object.create(DataDrivenProperty2 && DataDrivenProperty2.prototype);\n CrossFadedDataDrivenProperty2.prototype.constructor = CrossFadedDataDrivenProperty2;\n CrossFadedDataDrivenProperty2.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n if (value.value === void 0) {\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: void 0\n }, parameters);\n } else if (value.expression.kind === \"constant\") {\n var evaluatedValue = value.expression.evaluate(parameters, null, {}, canonical, availableImages);\n var isImageExpression = value.property.specification.type === \"resolvedImage\";\n var constantValue = isImageExpression && typeof evaluatedValue !== \"string\" ? evaluatedValue.name : evaluatedValue;\n var constant = this._calculate(constantValue, constantValue, constantValue, parameters);\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: constant\n }, parameters);\n } else if (value.expression.kind === \"camera\") {\n var cameraVal = this._calculate(value.expression.evaluate({ zoom: parameters.zoom - 1 }), value.expression.evaluate({ zoom: parameters.zoom }), value.expression.evaluate({ zoom: parameters.zoom + 1 }), parameters);\n return new PossiblyEvaluatedPropertyValue(this, {\n kind: \"constant\",\n value: cameraVal\n }, parameters);\n } else {\n return new PossiblyEvaluatedPropertyValue(this, value.expression, parameters);\n }\n };\n CrossFadedDataDrivenProperty2.prototype.evaluate = function evaluate(value, globals, feature, featureState, canonical, availableImages) {\n if (value.kind === \"source\") {\n var constant = value.evaluate(globals, feature, featureState, canonical, availableImages);\n return this._calculate(constant, constant, constant, globals);\n } else if (value.kind === \"composite\") {\n return this._calculate(value.evaluate({ zoom: Math.floor(globals.zoom) - 1 }, feature, featureState), value.evaluate({ zoom: Math.floor(globals.zoom) }, feature, featureState), value.evaluate({ zoom: Math.floor(globals.zoom) + 1 }, feature, featureState), globals);\n } else {\n return value.value;\n }\n };\n CrossFadedDataDrivenProperty2.prototype._calculate = function _calculate(min, mid, max, parameters) {\n var z = parameters.zoom;\n return z > parameters.zoomHistory.lastIntegerZoom ? {\n from: min,\n to: mid\n } : {\n from: max,\n to: mid\n };\n };\n CrossFadedDataDrivenProperty2.prototype.interpolate = function interpolate2(a) {\n return a;\n };\n return CrossFadedDataDrivenProperty2;\n }(DataDrivenProperty);\n var CrossFadedProperty = function CrossFadedProperty2(specification) {\n this.specification = specification;\n };\n CrossFadedProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n if (value.value === void 0) {\n return void 0;\n } else if (value.expression.kind === \"constant\") {\n var constant = value.expression.evaluate(parameters, null, {}, canonical, availableImages);\n return this._calculate(constant, constant, constant, parameters);\n } else {\n return this._calculate(value.expression.evaluate(new EvaluationParameters(Math.floor(parameters.zoom - 1), parameters)), value.expression.evaluate(new EvaluationParameters(Math.floor(parameters.zoom), parameters)), value.expression.evaluate(new EvaluationParameters(Math.floor(parameters.zoom + 1), parameters)), parameters);\n }\n };\n CrossFadedProperty.prototype._calculate = function _calculate(min, mid, max, parameters) {\n var z = parameters.zoom;\n return z > parameters.zoomHistory.lastIntegerZoom ? {\n from: min,\n to: mid\n } : {\n from: max,\n to: mid\n };\n };\n CrossFadedProperty.prototype.interpolate = function interpolate2(a) {\n return a;\n };\n var ColorRampProperty = function ColorRampProperty2(specification) {\n this.specification = specification;\n };\n ColorRampProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters, canonical, availableImages) {\n return !!value.expression.evaluate(parameters, null, {}, canonical, availableImages);\n };\n ColorRampProperty.prototype.interpolate = function interpolate2() {\n return false;\n };\n var Properties = function Properties2(properties2) {\n this.properties = properties2;\n this.defaultPropertyValues = {};\n this.defaultTransitionablePropertyValues = {};\n this.defaultTransitioningPropertyValues = {};\n this.defaultPossiblyEvaluatedValues = {};\n this.overridableProperties = [];\n for (var property in properties2) {\n var prop = properties2[property];\n if (prop.specification.overridable) {\n this.overridableProperties.push(property);\n }\n var defaultPropertyValue = this.defaultPropertyValues[property] = new PropertyValue(prop, void 0);\n var defaultTransitionablePropertyValue = this.defaultTransitionablePropertyValues[property] = new TransitionablePropertyValue(prop);\n this.defaultTransitioningPropertyValues[property] = defaultTransitionablePropertyValue.untransitioned();\n this.defaultPossiblyEvaluatedValues[property] = defaultPropertyValue.possiblyEvaluate({});\n }\n };\n register(\"DataDrivenProperty\", DataDrivenProperty);\n register(\"DataConstantProperty\", DataConstantProperty);\n register(\"CrossFadedDataDrivenProperty\", CrossFadedDataDrivenProperty);\n register(\"CrossFadedProperty\", CrossFadedProperty);\n register(\"ColorRampProperty\", ColorRampProperty);\n var TRANSITION_SUFFIX = \"-transition\";\n var StyleLayer = function(Evented2) {\n function StyleLayer2(layer2, properties2) {\n Evented2.call(this);\n this.id = layer2.id;\n this.type = layer2.type;\n this._featureFilter = {\n filter: function() {\n return true;\n },\n needGeometry: false\n };\n if (layer2.type === \"custom\") {\n return;\n }\n layer2 = layer2;\n this.metadata = layer2.metadata;\n this.minzoom = layer2.minzoom;\n this.maxzoom = layer2.maxzoom;\n if (layer2.type !== \"background\") {\n this.source = layer2.source;\n this.sourceLayer = layer2[\"source-layer\"];\n this.filter = layer2.filter;\n }\n if (properties2.layout) {\n this._unevaluatedLayout = new Layout(properties2.layout);\n }\n if (properties2.paint) {\n this._transitionablePaint = new Transitionable(properties2.paint);\n for (var property in layer2.paint) {\n this.setPaintProperty(property, layer2.paint[property], { validate: false });\n }\n for (var property$1 in layer2.layout) {\n this.setLayoutProperty(property$1, layer2.layout[property$1], { validate: false });\n }\n this._transitioningPaint = this._transitionablePaint.untransitioned();\n this.paint = new PossiblyEvaluated(properties2.paint);\n }\n }\n if (Evented2)\n StyleLayer2.__proto__ = Evented2;\n StyleLayer2.prototype = Object.create(Evented2 && Evented2.prototype);\n StyleLayer2.prototype.constructor = StyleLayer2;\n StyleLayer2.prototype.getCrossfadeParameters = function getCrossfadeParameters() {\n return this._crossfadeParameters;\n };\n StyleLayer2.prototype.getLayoutProperty = function getLayoutProperty(name3) {\n if (name3 === \"visibility\") {\n return this.visibility;\n }\n return this._unevaluatedLayout.getValue(name3);\n };\n StyleLayer2.prototype.setLayoutProperty = function setLayoutProperty(name3, value, options) {\n if (options === void 0)\n options = {};\n if (value !== null && value !== void 0) {\n var key = \"layers.\" + this.id + \".layout.\" + name3;\n if (this._validate(validateLayoutProperty$1, key, name3, value, options)) {\n return;\n }\n }\n if (name3 === \"visibility\") {\n this.visibility = value;\n return;\n }\n this._unevaluatedLayout.setValue(name3, value);\n };\n StyleLayer2.prototype.getPaintProperty = function getPaintProperty(name3) {\n if (endsWith(name3, TRANSITION_SUFFIX)) {\n return this._transitionablePaint.getTransition(name3.slice(0, -TRANSITION_SUFFIX.length));\n } else {\n return this._transitionablePaint.getValue(name3);\n }\n };\n StyleLayer2.prototype.setPaintProperty = function setPaintProperty(name3, value, options) {\n if (options === void 0)\n options = {};\n if (value !== null && value !== void 0) {\n var key = \"layers.\" + this.id + \".paint.\" + name3;\n if (this._validate(validatePaintProperty$1, key, name3, value, options)) {\n return false;\n }\n }\n if (endsWith(name3, TRANSITION_SUFFIX)) {\n this._transitionablePaint.setTransition(name3.slice(0, -TRANSITION_SUFFIX.length), value || void 0);\n return false;\n } else {\n var transitionable = this._transitionablePaint._values[name3];\n var isCrossFadedProperty = transitionable.property.specification[\"property-type\"] === \"cross-faded-data-driven\";\n var wasDataDriven = transitionable.value.isDataDriven();\n var oldValue = transitionable.value;\n this._transitionablePaint.setValue(name3, value);\n this._handleSpecialPaintPropertyUpdate(name3);\n var newValue = this._transitionablePaint._values[name3].value;\n var isDataDriven = newValue.isDataDriven();\n return isDataDriven || wasDataDriven || isCrossFadedProperty || this._handleOverridablePaintPropertyUpdate(name3, oldValue, newValue);\n }\n };\n StyleLayer2.prototype._handleSpecialPaintPropertyUpdate = function _handleSpecialPaintPropertyUpdate(_) {\n };\n StyleLayer2.prototype._handleOverridablePaintPropertyUpdate = function _handleOverridablePaintPropertyUpdate(name3, oldValue, newValue) {\n return false;\n };\n StyleLayer2.prototype.isHidden = function isHidden(zoom) {\n if (this.minzoom && zoom < this.minzoom) {\n return true;\n }\n if (this.maxzoom && zoom >= this.maxzoom) {\n return true;\n }\n return this.visibility === \"none\";\n };\n StyleLayer2.prototype.updateTransitions = function updateTransitions(parameters) {\n this._transitioningPaint = this._transitionablePaint.transitioned(parameters, this._transitioningPaint);\n };\n StyleLayer2.prototype.hasTransition = function hasTransition() {\n return this._transitioningPaint.hasTransition();\n };\n StyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n if (parameters.getCrossfadeParameters) {\n this._crossfadeParameters = parameters.getCrossfadeParameters();\n }\n if (this._unevaluatedLayout) {\n this.layout = this._unevaluatedLayout.possiblyEvaluate(parameters, void 0, availableImages);\n }\n this.paint = this._transitioningPaint.possiblyEvaluate(parameters, void 0, availableImages);\n };\n StyleLayer2.prototype.serialize = function serialize2() {\n var output = {\n \"id\": this.id,\n \"type\": this.type,\n \"source\": this.source,\n \"source-layer\": this.sourceLayer,\n \"metadata\": this.metadata,\n \"minzoom\": this.minzoom,\n \"maxzoom\": this.maxzoom,\n \"filter\": this.filter,\n \"layout\": this._unevaluatedLayout && this._unevaluatedLayout.serialize(),\n \"paint\": this._transitionablePaint && this._transitionablePaint.serialize()\n };\n if (this.visibility) {\n output.layout = output.layout || {};\n output.layout.visibility = this.visibility;\n }\n return filterObject(output, function(value, key) {\n return value !== void 0 && !(key === \"layout\" && !Object.keys(value).length) && !(key === \"paint\" && !Object.keys(value).length);\n });\n };\n StyleLayer2.prototype._validate = function _validate(validate2, key, name3, value, options) {\n if (options === void 0)\n options = {};\n if (options && options.validate === false) {\n return false;\n }\n return emitValidationErrors(this, validate2.call(validateStyle, {\n key,\n layerType: this.type,\n objectKey: name3,\n value,\n styleSpec: spec,\n style: {\n glyphs: true,\n sprite: true\n }\n }));\n };\n StyleLayer2.prototype.is3D = function is3D() {\n return false;\n };\n StyleLayer2.prototype.isTileClipped = function isTileClipped() {\n return false;\n };\n StyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return false;\n };\n StyleLayer2.prototype.resize = function resize() {\n };\n StyleLayer2.prototype.isStateDependent = function isStateDependent() {\n for (var property in this.paint._values) {\n var value = this.paint.get(property);\n if (!(value instanceof PossiblyEvaluatedPropertyValue) || !supportsPropertyExpression(value.property.specification)) {\n continue;\n }\n if ((value.value.kind === \"source\" || value.value.kind === \"composite\") && value.value.isStateDependent) {\n return true;\n }\n }\n return false;\n };\n return StyleLayer2;\n }(Evented);\n var viewTypes = {\n \"Int8\": Int8Array,\n \"Uint8\": Uint8Array,\n \"Int16\": Int16Array,\n \"Uint16\": Uint16Array,\n \"Int32\": Int32Array,\n \"Uint32\": Uint32Array,\n \"Float32\": Float32Array\n };\n var Struct = function Struct2(structArray, index) {\n this._structArray = structArray;\n this._pos1 = index * this.size;\n this._pos2 = this._pos1 / 2;\n this._pos4 = this._pos1 / 4;\n this._pos8 = this._pos1 / 8;\n };\n var DEFAULT_CAPACITY = 128;\n var RESIZE_MULTIPLIER = 5;\n var StructArray = function StructArray2() {\n this.isTransferred = false;\n this.capacity = -1;\n this.resize(0);\n };\n StructArray.serialize = function serialize2(array2, transferables) {\n array2._trim();\n if (transferables) {\n array2.isTransferred = true;\n transferables.push(array2.arrayBuffer);\n }\n return {\n length: array2.length,\n arrayBuffer: array2.arrayBuffer\n };\n };\n StructArray.deserialize = function deserialize2(input) {\n var structArray = Object.create(this.prototype);\n structArray.arrayBuffer = input.arrayBuffer;\n structArray.length = input.length;\n structArray.capacity = input.arrayBuffer.byteLength / structArray.bytesPerElement;\n structArray._refreshViews();\n return structArray;\n };\n StructArray.prototype._trim = function _trim() {\n if (this.length !== this.capacity) {\n this.capacity = this.length;\n this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement);\n this._refreshViews();\n }\n };\n StructArray.prototype.clear = function clear() {\n this.length = 0;\n };\n StructArray.prototype.resize = function resize(n) {\n this.reserve(n);\n this.length = n;\n };\n StructArray.prototype.reserve = function reserve(n) {\n if (n > this.capacity) {\n this.capacity = Math.max(n, Math.floor(this.capacity * RESIZE_MULTIPLIER), DEFAULT_CAPACITY);\n this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement);\n var oldUint8Array = this.uint8;\n this._refreshViews();\n if (oldUint8Array) {\n this.uint8.set(oldUint8Array);\n }\n }\n };\n StructArray.prototype._refreshViews = function _refreshViews() {\n throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\");\n };\n function createLayout(members2, alignment) {\n if (alignment === void 0)\n alignment = 1;\n var offset = 0;\n var maxSize = 0;\n var layoutMembers = members2.map(function(member) {\n var typeSize = sizeOf(member.type);\n var memberOffset = offset = align(offset, Math.max(alignment, typeSize));\n var components = member.components || 1;\n maxSize = Math.max(maxSize, typeSize);\n offset += typeSize * components;\n return {\n name: member.name,\n type: member.type,\n components,\n offset: memberOffset\n };\n });\n var size = align(offset, Math.max(maxSize, alignment));\n return {\n members: layoutMembers,\n size,\n alignment\n };\n }\n function sizeOf(type) {\n return viewTypes[type].BYTES_PER_ELEMENT;\n }\n function align(offset, size) {\n return Math.ceil(offset / size) * size;\n }\n var StructArrayLayout2i4 = function(StructArray2) {\n function StructArrayLayout2i42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i42.__proto__ = StructArray2;\n StructArrayLayout2i42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i42.prototype.constructor = StructArrayLayout2i42;\n StructArrayLayout2i42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i42.prototype.emplaceBack = function emplaceBack(v0, v1) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1);\n };\n StructArrayLayout2i42.prototype.emplace = function emplace(i, v0, v1) {\n var o2 = i * 2;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n return i;\n };\n return StructArrayLayout2i42;\n }(StructArray);\n StructArrayLayout2i4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout2i4\", StructArrayLayout2i4);\n var StructArrayLayout4i8 = function(StructArray2) {\n function StructArrayLayout4i82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout4i82.__proto__ = StructArray2;\n StructArrayLayout4i82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout4i82.prototype.constructor = StructArrayLayout4i82;\n StructArrayLayout4i82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout4i82.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3);\n };\n StructArrayLayout4i82.prototype.emplace = function emplace(i, v0, v1, v2, v3) {\n var o2 = i * 4;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n return i;\n };\n return StructArrayLayout4i82;\n }(StructArray);\n StructArrayLayout4i8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout4i8\", StructArrayLayout4i8);\n var StructArrayLayout2i4i12 = function(StructArray2) {\n function StructArrayLayout2i4i122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i4i122.__proto__ = StructArray2;\n StructArrayLayout2i4i122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i4i122.prototype.constructor = StructArrayLayout2i4i122;\n StructArrayLayout2i4i122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i4i122.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5);\n };\n StructArrayLayout2i4i122.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5) {\n var o2 = i * 6;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n return i;\n };\n return StructArrayLayout2i4i122;\n }(StructArray);\n StructArrayLayout2i4i12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout2i4i12\", StructArrayLayout2i4i12);\n var StructArrayLayout2i4ub8 = function(StructArray2) {\n function StructArrayLayout2i4ub82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i4ub82.__proto__ = StructArray2;\n StructArrayLayout2i4ub82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i4ub82.prototype.constructor = StructArrayLayout2i4ub82;\n StructArrayLayout2i4ub82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i4ub82.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5);\n };\n StructArrayLayout2i4ub82.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5) {\n var o2 = i * 4;\n var o1 = i * 8;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.uint8[o1 + 4] = v2;\n this.uint8[o1 + 5] = v3;\n this.uint8[o1 + 6] = v4;\n this.uint8[o1 + 7] = v5;\n return i;\n };\n return StructArrayLayout2i4ub82;\n }(StructArray);\n StructArrayLayout2i4ub8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout2i4ub8\", StructArrayLayout2i4ub8);\n var StructArrayLayout2f8 = function(StructArray2) {\n function StructArrayLayout2f82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2f82.__proto__ = StructArray2;\n StructArrayLayout2f82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2f82.prototype.constructor = StructArrayLayout2f82;\n StructArrayLayout2f82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout2f82.prototype.emplaceBack = function emplaceBack(v0, v1) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1);\n };\n StructArrayLayout2f82.prototype.emplace = function emplace(i, v0, v1) {\n var o4 = i * 2;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n return i;\n };\n return StructArrayLayout2f82;\n }(StructArray);\n StructArrayLayout2f8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout2f8\", StructArrayLayout2f8);\n var StructArrayLayout10ui20 = function(StructArray2) {\n function StructArrayLayout10ui202() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout10ui202.__proto__ = StructArray2;\n StructArrayLayout10ui202.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout10ui202.prototype.constructor = StructArrayLayout10ui202;\n StructArrayLayout10ui202.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout10ui202.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9);\n };\n StructArrayLayout10ui202.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9) {\n var o2 = i * 10;\n this.uint16[o2 + 0] = v0;\n this.uint16[o2 + 1] = v1;\n this.uint16[o2 + 2] = v2;\n this.uint16[o2 + 3] = v3;\n this.uint16[o2 + 4] = v4;\n this.uint16[o2 + 5] = v5;\n this.uint16[o2 + 6] = v6;\n this.uint16[o2 + 7] = v7;\n this.uint16[o2 + 8] = v8;\n this.uint16[o2 + 9] = v9;\n return i;\n };\n return StructArrayLayout10ui202;\n }(StructArray);\n StructArrayLayout10ui20.prototype.bytesPerElement = 20;\n register(\"StructArrayLayout10ui20\", StructArrayLayout10ui20);\n var StructArrayLayout4i4ui4i24 = function(StructArray2) {\n function StructArrayLayout4i4ui4i242() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout4i4ui4i242.__proto__ = StructArray2;\n StructArrayLayout4i4ui4i242.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout4i4ui4i242.prototype.constructor = StructArrayLayout4i4ui4i242;\n StructArrayLayout4i4ui4i242.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout4i4ui4i242.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);\n };\n StructArrayLayout4i4ui4i242.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) {\n var o2 = i * 12;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.uint16[o2 + 4] = v4;\n this.uint16[o2 + 5] = v5;\n this.uint16[o2 + 6] = v6;\n this.uint16[o2 + 7] = v7;\n this.int16[o2 + 8] = v8;\n this.int16[o2 + 9] = v9;\n this.int16[o2 + 10] = v10;\n this.int16[o2 + 11] = v11;\n return i;\n };\n return StructArrayLayout4i4ui4i242;\n }(StructArray);\n StructArrayLayout4i4ui4i24.prototype.bytesPerElement = 24;\n register(\"StructArrayLayout4i4ui4i24\", StructArrayLayout4i4ui4i24);\n var StructArrayLayout3f12 = function(StructArray2) {\n function StructArrayLayout3f122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout3f122.__proto__ = StructArray2;\n StructArrayLayout3f122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout3f122.prototype.constructor = StructArrayLayout3f122;\n StructArrayLayout3f122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout3f122.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout3f122.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o4 = i * 3;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n this.float32[o4 + 2] = v2;\n return i;\n };\n return StructArrayLayout3f122;\n }(StructArray);\n StructArrayLayout3f12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout3f12\", StructArrayLayout3f12);\n var StructArrayLayout1ul4 = function(StructArray2) {\n function StructArrayLayout1ul42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1ul42.__proto__ = StructArray2;\n StructArrayLayout1ul42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1ul42.prototype.constructor = StructArrayLayout1ul42;\n StructArrayLayout1ul42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n };\n StructArrayLayout1ul42.prototype.emplaceBack = function emplaceBack(v0) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0);\n };\n StructArrayLayout1ul42.prototype.emplace = function emplace(i, v0) {\n var o4 = i * 1;\n this.uint32[o4 + 0] = v0;\n return i;\n };\n return StructArrayLayout1ul42;\n }(StructArray);\n StructArrayLayout1ul4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout1ul4\", StructArrayLayout1ul4);\n var StructArrayLayout6i1ul2ui20 = function(StructArray2) {\n function StructArrayLayout6i1ul2ui202() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout6i1ul2ui202.__proto__ = StructArray2;\n StructArrayLayout6i1ul2ui202.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout6i1ul2ui202.prototype.constructor = StructArrayLayout6i1ul2ui202;\n StructArrayLayout6i1ul2ui202.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout6i1ul2ui202.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8);\n };\n StructArrayLayout6i1ul2ui202.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8) {\n var o2 = i * 10;\n var o4 = i * 5;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n this.uint32[o4 + 3] = v6;\n this.uint16[o2 + 8] = v7;\n this.uint16[o2 + 9] = v8;\n return i;\n };\n return StructArrayLayout6i1ul2ui202;\n }(StructArray);\n StructArrayLayout6i1ul2ui20.prototype.bytesPerElement = 20;\n register(\"StructArrayLayout6i1ul2ui20\", StructArrayLayout6i1ul2ui20);\n var StructArrayLayout2i2i2i12 = function(StructArray2) {\n function StructArrayLayout2i2i2i122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i2i2i122.__proto__ = StructArray2;\n StructArrayLayout2i2i2i122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i2i2i122.prototype.constructor = StructArrayLayout2i2i2i122;\n StructArrayLayout2i2i2i122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2i2i2i122.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5);\n };\n StructArrayLayout2i2i2i122.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5) {\n var o2 = i * 6;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n return i;\n };\n return StructArrayLayout2i2i2i122;\n }(StructArray);\n StructArrayLayout2i2i2i12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout2i2i2i12\", StructArrayLayout2i2i2i12);\n var StructArrayLayout2f1f2i16 = function(StructArray2) {\n function StructArrayLayout2f1f2i162() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2f1f2i162.__proto__ = StructArray2;\n StructArrayLayout2f1f2i162.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2f1f2i162.prototype.constructor = StructArrayLayout2f1f2i162;\n StructArrayLayout2f1f2i162.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout2f1f2i162.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4);\n };\n StructArrayLayout2f1f2i162.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4) {\n var o4 = i * 4;\n var o2 = i * 8;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n this.float32[o4 + 2] = v2;\n this.int16[o2 + 6] = v3;\n this.int16[o2 + 7] = v4;\n return i;\n };\n return StructArrayLayout2f1f2i162;\n }(StructArray);\n StructArrayLayout2f1f2i16.prototype.bytesPerElement = 16;\n register(\"StructArrayLayout2f1f2i16\", StructArrayLayout2f1f2i16);\n var StructArrayLayout2ub2f12 = function(StructArray2) {\n function StructArrayLayout2ub2f122() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2ub2f122.__proto__ = StructArray2;\n StructArrayLayout2ub2f122.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2ub2f122.prototype.constructor = StructArrayLayout2ub2f122;\n StructArrayLayout2ub2f122.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout2ub2f122.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3);\n };\n StructArrayLayout2ub2f122.prototype.emplace = function emplace(i, v0, v1, v2, v3) {\n var o1 = i * 12;\n var o4 = i * 3;\n this.uint8[o1 + 0] = v0;\n this.uint8[o1 + 1] = v1;\n this.float32[o4 + 1] = v2;\n this.float32[o4 + 2] = v3;\n return i;\n };\n return StructArrayLayout2ub2f122;\n }(StructArray);\n StructArrayLayout2ub2f12.prototype.bytesPerElement = 12;\n register(\"StructArrayLayout2ub2f12\", StructArrayLayout2ub2f12);\n var StructArrayLayout3ui6 = function(StructArray2) {\n function StructArrayLayout3ui62() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout3ui62.__proto__ = StructArray2;\n StructArrayLayout3ui62.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout3ui62.prototype.constructor = StructArrayLayout3ui62;\n StructArrayLayout3ui62.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout3ui62.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout3ui62.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o2 = i * 3;\n this.uint16[o2 + 0] = v0;\n this.uint16[o2 + 1] = v1;\n this.uint16[o2 + 2] = v2;\n return i;\n };\n return StructArrayLayout3ui62;\n }(StructArray);\n StructArrayLayout3ui6.prototype.bytesPerElement = 6;\n register(\"StructArrayLayout3ui6\", StructArrayLayout3ui6);\n var StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48 = function(StructArray2) {\n function StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.__proto__ = StructArray2;\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype.constructor = StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482;\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16);\n };\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) {\n var o2 = i * 24;\n var o4 = i * 12;\n var o1 = i * 48;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.uint16[o2 + 2] = v2;\n this.uint16[o2 + 3] = v3;\n this.uint32[o4 + 2] = v4;\n this.uint32[o4 + 3] = v5;\n this.uint32[o4 + 4] = v6;\n this.uint16[o2 + 10] = v7;\n this.uint16[o2 + 11] = v8;\n this.uint16[o2 + 12] = v9;\n this.float32[o4 + 7] = v10;\n this.float32[o4 + 8] = v11;\n this.uint8[o1 + 36] = v12;\n this.uint8[o1 + 37] = v13;\n this.uint8[o1 + 38] = v14;\n this.uint32[o4 + 10] = v15;\n this.int16[o2 + 22] = v16;\n return i;\n };\n return StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482;\n }(StructArray);\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48.prototype.bytesPerElement = 48;\n register(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\", StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48);\n var StructArrayLayout8i15ui1ul4f68 = function(StructArray2) {\n function StructArrayLayout8i15ui1ul4f682() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout8i15ui1ul4f682.__proto__ = StructArray2;\n StructArrayLayout8i15ui1ul4f682.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout8i15ui1ul4f682.prototype.constructor = StructArrayLayout8i15ui1ul4f682;\n StructArrayLayout8i15ui1ul4f682.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout8i15ui1ul4f682.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);\n };\n StructArrayLayout8i15ui1ul4f682.prototype.emplace = function emplace(i, v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) {\n var o2 = i * 34;\n var o4 = i * 17;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n this.int16[o2 + 3] = v3;\n this.int16[o2 + 4] = v4;\n this.int16[o2 + 5] = v5;\n this.int16[o2 + 6] = v6;\n this.int16[o2 + 7] = v7;\n this.uint16[o2 + 8] = v8;\n this.uint16[o2 + 9] = v9;\n this.uint16[o2 + 10] = v10;\n this.uint16[o2 + 11] = v11;\n this.uint16[o2 + 12] = v12;\n this.uint16[o2 + 13] = v13;\n this.uint16[o2 + 14] = v14;\n this.uint16[o2 + 15] = v15;\n this.uint16[o2 + 16] = v16;\n this.uint16[o2 + 17] = v17;\n this.uint16[o2 + 18] = v18;\n this.uint16[o2 + 19] = v19;\n this.uint16[o2 + 20] = v20;\n this.uint16[o2 + 21] = v21;\n this.uint16[o2 + 22] = v22;\n this.uint32[o4 + 12] = v23;\n this.float32[o4 + 13] = v24;\n this.float32[o4 + 14] = v25;\n this.float32[o4 + 15] = v26;\n this.float32[o4 + 16] = v27;\n return i;\n };\n return StructArrayLayout8i15ui1ul4f682;\n }(StructArray);\n StructArrayLayout8i15ui1ul4f68.prototype.bytesPerElement = 68;\n register(\"StructArrayLayout8i15ui1ul4f68\", StructArrayLayout8i15ui1ul4f68);\n var StructArrayLayout1f4 = function(StructArray2) {\n function StructArrayLayout1f42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1f42.__proto__ = StructArray2;\n StructArrayLayout1f42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1f42.prototype.constructor = StructArrayLayout1f42;\n StructArrayLayout1f42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout1f42.prototype.emplaceBack = function emplaceBack(v0) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0);\n };\n StructArrayLayout1f42.prototype.emplace = function emplace(i, v0) {\n var o4 = i * 1;\n this.float32[o4 + 0] = v0;\n return i;\n };\n return StructArrayLayout1f42;\n }(StructArray);\n StructArrayLayout1f4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout1f4\", StructArrayLayout1f4);\n var StructArrayLayout3i6 = function(StructArray2) {\n function StructArrayLayout3i62() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout3i62.__proto__ = StructArray2;\n StructArrayLayout3i62.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout3i62.prototype.constructor = StructArrayLayout3i62;\n StructArrayLayout3i62.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.int16 = new Int16Array(this.arrayBuffer);\n };\n StructArrayLayout3i62.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout3i62.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o2 = i * 3;\n this.int16[o2 + 0] = v0;\n this.int16[o2 + 1] = v1;\n this.int16[o2 + 2] = v2;\n return i;\n };\n return StructArrayLayout3i62;\n }(StructArray);\n StructArrayLayout3i6.prototype.bytesPerElement = 6;\n register(\"StructArrayLayout3i6\", StructArrayLayout3i6);\n var StructArrayLayout1ul2ui8 = function(StructArray2) {\n function StructArrayLayout1ul2ui82() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1ul2ui82.__proto__ = StructArray2;\n StructArrayLayout1ul2ui82.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1ul2ui82.prototype.constructor = StructArrayLayout1ul2ui82;\n StructArrayLayout1ul2ui82.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint32 = new Uint32Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout1ul2ui82.prototype.emplaceBack = function emplaceBack(v0, v1, v2) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2);\n };\n StructArrayLayout1ul2ui82.prototype.emplace = function emplace(i, v0, v1, v2) {\n var o4 = i * 2;\n var o2 = i * 4;\n this.uint32[o4 + 0] = v0;\n this.uint16[o2 + 2] = v1;\n this.uint16[o2 + 3] = v2;\n return i;\n };\n return StructArrayLayout1ul2ui82;\n }(StructArray);\n StructArrayLayout1ul2ui8.prototype.bytesPerElement = 8;\n register(\"StructArrayLayout1ul2ui8\", StructArrayLayout1ul2ui8);\n var StructArrayLayout2ui4 = function(StructArray2) {\n function StructArrayLayout2ui42() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout2ui42.__proto__ = StructArray2;\n StructArrayLayout2ui42.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout2ui42.prototype.constructor = StructArrayLayout2ui42;\n StructArrayLayout2ui42.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout2ui42.prototype.emplaceBack = function emplaceBack(v0, v1) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1);\n };\n StructArrayLayout2ui42.prototype.emplace = function emplace(i, v0, v1) {\n var o2 = i * 2;\n this.uint16[o2 + 0] = v0;\n this.uint16[o2 + 1] = v1;\n return i;\n };\n return StructArrayLayout2ui42;\n }(StructArray);\n StructArrayLayout2ui4.prototype.bytesPerElement = 4;\n register(\"StructArrayLayout2ui4\", StructArrayLayout2ui4);\n var StructArrayLayout1ui2 = function(StructArray2) {\n function StructArrayLayout1ui22() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout1ui22.__proto__ = StructArray2;\n StructArrayLayout1ui22.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout1ui22.prototype.constructor = StructArrayLayout1ui22;\n StructArrayLayout1ui22.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.uint16 = new Uint16Array(this.arrayBuffer);\n };\n StructArrayLayout1ui22.prototype.emplaceBack = function emplaceBack(v0) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0);\n };\n StructArrayLayout1ui22.prototype.emplace = function emplace(i, v0) {\n var o2 = i * 1;\n this.uint16[o2 + 0] = v0;\n return i;\n };\n return StructArrayLayout1ui22;\n }(StructArray);\n StructArrayLayout1ui2.prototype.bytesPerElement = 2;\n register(\"StructArrayLayout1ui2\", StructArrayLayout1ui2);\n var StructArrayLayout4f16 = function(StructArray2) {\n function StructArrayLayout4f162() {\n StructArray2.apply(this, arguments);\n }\n if (StructArray2)\n StructArrayLayout4f162.__proto__ = StructArray2;\n StructArrayLayout4f162.prototype = Object.create(StructArray2 && StructArray2.prototype);\n StructArrayLayout4f162.prototype.constructor = StructArrayLayout4f162;\n StructArrayLayout4f162.prototype._refreshViews = function _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer);\n this.float32 = new Float32Array(this.arrayBuffer);\n };\n StructArrayLayout4f162.prototype.emplaceBack = function emplaceBack(v0, v1, v2, v3) {\n var i = this.length;\n this.resize(i + 1);\n return this.emplace(i, v0, v1, v2, v3);\n };\n StructArrayLayout4f162.prototype.emplace = function emplace(i, v0, v1, v2, v3) {\n var o4 = i * 4;\n this.float32[o4 + 0] = v0;\n this.float32[o4 + 1] = v1;\n this.float32[o4 + 2] = v2;\n this.float32[o4 + 3] = v3;\n return i;\n };\n return StructArrayLayout4f162;\n }(StructArray);\n StructArrayLayout4f16.prototype.bytesPerElement = 16;\n register(\"StructArrayLayout4f16\", StructArrayLayout4f16);\n var CollisionBoxStruct = function(Struct2) {\n function CollisionBoxStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n CollisionBoxStruct2.__proto__ = Struct2;\n CollisionBoxStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n CollisionBoxStruct2.prototype.constructor = CollisionBoxStruct2;\n var prototypeAccessors2 = {\n anchorPointX: { configurable: true },\n anchorPointY: { configurable: true },\n x1: { configurable: true },\n y1: { configurable: true },\n x2: { configurable: true },\n y2: { configurable: true },\n featureIndex: { configurable: true },\n sourceLayerIndex: { configurable: true },\n bucketIndex: { configurable: true },\n anchorPoint: { configurable: true }\n };\n prototypeAccessors2.anchorPointX.get = function() {\n return this._structArray.int16[this._pos2 + 0];\n };\n prototypeAccessors2.anchorPointY.get = function() {\n return this._structArray.int16[this._pos2 + 1];\n };\n prototypeAccessors2.x1.get = function() {\n return this._structArray.int16[this._pos2 + 2];\n };\n prototypeAccessors2.y1.get = function() {\n return this._structArray.int16[this._pos2 + 3];\n };\n prototypeAccessors2.x2.get = function() {\n return this._structArray.int16[this._pos2 + 4];\n };\n prototypeAccessors2.y2.get = function() {\n return this._structArray.int16[this._pos2 + 5];\n };\n prototypeAccessors2.featureIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 3];\n };\n prototypeAccessors2.sourceLayerIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 8];\n };\n prototypeAccessors2.bucketIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 9];\n };\n prototypeAccessors2.anchorPoint.get = function() {\n return new pointGeometry(this.anchorPointX, this.anchorPointY);\n };\n Object.defineProperties(CollisionBoxStruct2.prototype, prototypeAccessors2);\n return CollisionBoxStruct2;\n }(Struct);\n CollisionBoxStruct.prototype.size = 20;\n var CollisionBoxArray = function(StructArrayLayout6i1ul2ui202) {\n function CollisionBoxArray2() {\n StructArrayLayout6i1ul2ui202.apply(this, arguments);\n }\n if (StructArrayLayout6i1ul2ui202)\n CollisionBoxArray2.__proto__ = StructArrayLayout6i1ul2ui202;\n CollisionBoxArray2.prototype = Object.create(StructArrayLayout6i1ul2ui202 && StructArrayLayout6i1ul2ui202.prototype);\n CollisionBoxArray2.prototype.constructor = CollisionBoxArray2;\n CollisionBoxArray2.prototype.get = function get2(index) {\n return new CollisionBoxStruct(this, index);\n };\n return CollisionBoxArray2;\n }(StructArrayLayout6i1ul2ui20);\n register(\"CollisionBoxArray\", CollisionBoxArray);\n var PlacedSymbolStruct = function(Struct2) {\n function PlacedSymbolStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n PlacedSymbolStruct2.__proto__ = Struct2;\n PlacedSymbolStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n PlacedSymbolStruct2.prototype.constructor = PlacedSymbolStruct2;\n var prototypeAccessors$12 = {\n anchorX: { configurable: true },\n anchorY: { configurable: true },\n glyphStartIndex: { configurable: true },\n numGlyphs: { configurable: true },\n vertexStartIndex: { configurable: true },\n lineStartIndex: { configurable: true },\n lineLength: { configurable: true },\n segment: { configurable: true },\n lowerSize: { configurable: true },\n upperSize: { configurable: true },\n lineOffsetX: { configurable: true },\n lineOffsetY: { configurable: true },\n writingMode: { configurable: true },\n placedOrientation: { configurable: true },\n hidden: { configurable: true },\n crossTileID: { configurable: true },\n associatedIconIndex: { configurable: true }\n };\n prototypeAccessors$12.anchorX.get = function() {\n return this._structArray.int16[this._pos2 + 0];\n };\n prototypeAccessors$12.anchorY.get = function() {\n return this._structArray.int16[this._pos2 + 1];\n };\n prototypeAccessors$12.glyphStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 2];\n };\n prototypeAccessors$12.numGlyphs.get = function() {\n return this._structArray.uint16[this._pos2 + 3];\n };\n prototypeAccessors$12.vertexStartIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 2];\n };\n prototypeAccessors$12.lineStartIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 3];\n };\n prototypeAccessors$12.lineLength.get = function() {\n return this._structArray.uint32[this._pos4 + 4];\n };\n prototypeAccessors$12.segment.get = function() {\n return this._structArray.uint16[this._pos2 + 10];\n };\n prototypeAccessors$12.lowerSize.get = function() {\n return this._structArray.uint16[this._pos2 + 11];\n };\n prototypeAccessors$12.upperSize.get = function() {\n return this._structArray.uint16[this._pos2 + 12];\n };\n prototypeAccessors$12.lineOffsetX.get = function() {\n return this._structArray.float32[this._pos4 + 7];\n };\n prototypeAccessors$12.lineOffsetY.get = function() {\n return this._structArray.float32[this._pos4 + 8];\n };\n prototypeAccessors$12.writingMode.get = function() {\n return this._structArray.uint8[this._pos1 + 36];\n };\n prototypeAccessors$12.placedOrientation.get = function() {\n return this._structArray.uint8[this._pos1 + 37];\n };\n prototypeAccessors$12.placedOrientation.set = function(x) {\n this._structArray.uint8[this._pos1 + 37] = x;\n };\n prototypeAccessors$12.hidden.get = function() {\n return this._structArray.uint8[this._pos1 + 38];\n };\n prototypeAccessors$12.hidden.set = function(x) {\n this._structArray.uint8[this._pos1 + 38] = x;\n };\n prototypeAccessors$12.crossTileID.get = function() {\n return this._structArray.uint32[this._pos4 + 10];\n };\n prototypeAccessors$12.crossTileID.set = function(x) {\n this._structArray.uint32[this._pos4 + 10] = x;\n };\n prototypeAccessors$12.associatedIconIndex.get = function() {\n return this._structArray.int16[this._pos2 + 22];\n };\n Object.defineProperties(PlacedSymbolStruct2.prototype, prototypeAccessors$12);\n return PlacedSymbolStruct2;\n }(Struct);\n PlacedSymbolStruct.prototype.size = 48;\n var PlacedSymbolArray = function(StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482) {\n function PlacedSymbolArray2() {\n StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.apply(this, arguments);\n }\n if (StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482)\n PlacedSymbolArray2.__proto__ = StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482;\n PlacedSymbolArray2.prototype = Object.create(StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482 && StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482.prototype);\n PlacedSymbolArray2.prototype.constructor = PlacedSymbolArray2;\n PlacedSymbolArray2.prototype.get = function get2(index) {\n return new PlacedSymbolStruct(this, index);\n };\n return PlacedSymbolArray2;\n }(StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48);\n register(\"PlacedSymbolArray\", PlacedSymbolArray);\n var SymbolInstanceStruct = function(Struct2) {\n function SymbolInstanceStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n SymbolInstanceStruct2.__proto__ = Struct2;\n SymbolInstanceStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n SymbolInstanceStruct2.prototype.constructor = SymbolInstanceStruct2;\n var prototypeAccessors$2 = {\n anchorX: { configurable: true },\n anchorY: { configurable: true },\n rightJustifiedTextSymbolIndex: { configurable: true },\n centerJustifiedTextSymbolIndex: { configurable: true },\n leftJustifiedTextSymbolIndex: { configurable: true },\n verticalPlacedTextSymbolIndex: { configurable: true },\n placedIconSymbolIndex: { configurable: true },\n verticalPlacedIconSymbolIndex: { configurable: true },\n key: { configurable: true },\n textBoxStartIndex: { configurable: true },\n textBoxEndIndex: { configurable: true },\n verticalTextBoxStartIndex: { configurable: true },\n verticalTextBoxEndIndex: { configurable: true },\n iconBoxStartIndex: { configurable: true },\n iconBoxEndIndex: { configurable: true },\n verticalIconBoxStartIndex: { configurable: true },\n verticalIconBoxEndIndex: { configurable: true },\n featureIndex: { configurable: true },\n numHorizontalGlyphVertices: { configurable: true },\n numVerticalGlyphVertices: { configurable: true },\n numIconVertices: { configurable: true },\n numVerticalIconVertices: { configurable: true },\n useRuntimeCollisionCircles: { configurable: true },\n crossTileID: { configurable: true },\n textBoxScale: { configurable: true },\n textOffset0: { configurable: true },\n textOffset1: { configurable: true },\n collisionCircleDiameter: { configurable: true }\n };\n prototypeAccessors$2.anchorX.get = function() {\n return this._structArray.int16[this._pos2 + 0];\n };\n prototypeAccessors$2.anchorY.get = function() {\n return this._structArray.int16[this._pos2 + 1];\n };\n prototypeAccessors$2.rightJustifiedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 2];\n };\n prototypeAccessors$2.centerJustifiedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 3];\n };\n prototypeAccessors$2.leftJustifiedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 4];\n };\n prototypeAccessors$2.verticalPlacedTextSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 5];\n };\n prototypeAccessors$2.placedIconSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 6];\n };\n prototypeAccessors$2.verticalPlacedIconSymbolIndex.get = function() {\n return this._structArray.int16[this._pos2 + 7];\n };\n prototypeAccessors$2.key.get = function() {\n return this._structArray.uint16[this._pos2 + 8];\n };\n prototypeAccessors$2.textBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 9];\n };\n prototypeAccessors$2.textBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 10];\n };\n prototypeAccessors$2.verticalTextBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 11];\n };\n prototypeAccessors$2.verticalTextBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 12];\n };\n prototypeAccessors$2.iconBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 13];\n };\n prototypeAccessors$2.iconBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 14];\n };\n prototypeAccessors$2.verticalIconBoxStartIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 15];\n };\n prototypeAccessors$2.verticalIconBoxEndIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 16];\n };\n prototypeAccessors$2.featureIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 17];\n };\n prototypeAccessors$2.numHorizontalGlyphVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 18];\n };\n prototypeAccessors$2.numVerticalGlyphVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 19];\n };\n prototypeAccessors$2.numIconVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 20];\n };\n prototypeAccessors$2.numVerticalIconVertices.get = function() {\n return this._structArray.uint16[this._pos2 + 21];\n };\n prototypeAccessors$2.useRuntimeCollisionCircles.get = function() {\n return this._structArray.uint16[this._pos2 + 22];\n };\n prototypeAccessors$2.crossTileID.get = function() {\n return this._structArray.uint32[this._pos4 + 12];\n };\n prototypeAccessors$2.crossTileID.set = function(x) {\n this._structArray.uint32[this._pos4 + 12] = x;\n };\n prototypeAccessors$2.textBoxScale.get = function() {\n return this._structArray.float32[this._pos4 + 13];\n };\n prototypeAccessors$2.textOffset0.get = function() {\n return this._structArray.float32[this._pos4 + 14];\n };\n prototypeAccessors$2.textOffset1.get = function() {\n return this._structArray.float32[this._pos4 + 15];\n };\n prototypeAccessors$2.collisionCircleDiameter.get = function() {\n return this._structArray.float32[this._pos4 + 16];\n };\n Object.defineProperties(SymbolInstanceStruct2.prototype, prototypeAccessors$2);\n return SymbolInstanceStruct2;\n }(Struct);\n SymbolInstanceStruct.prototype.size = 68;\n var SymbolInstanceArray = function(StructArrayLayout8i15ui1ul4f682) {\n function SymbolInstanceArray2() {\n StructArrayLayout8i15ui1ul4f682.apply(this, arguments);\n }\n if (StructArrayLayout8i15ui1ul4f682)\n SymbolInstanceArray2.__proto__ = StructArrayLayout8i15ui1ul4f682;\n SymbolInstanceArray2.prototype = Object.create(StructArrayLayout8i15ui1ul4f682 && StructArrayLayout8i15ui1ul4f682.prototype);\n SymbolInstanceArray2.prototype.constructor = SymbolInstanceArray2;\n SymbolInstanceArray2.prototype.get = function get2(index) {\n return new SymbolInstanceStruct(this, index);\n };\n return SymbolInstanceArray2;\n }(StructArrayLayout8i15ui1ul4f68);\n register(\"SymbolInstanceArray\", SymbolInstanceArray);\n var GlyphOffsetArray = function(StructArrayLayout1f42) {\n function GlyphOffsetArray2() {\n StructArrayLayout1f42.apply(this, arguments);\n }\n if (StructArrayLayout1f42)\n GlyphOffsetArray2.__proto__ = StructArrayLayout1f42;\n GlyphOffsetArray2.prototype = Object.create(StructArrayLayout1f42 && StructArrayLayout1f42.prototype);\n GlyphOffsetArray2.prototype.constructor = GlyphOffsetArray2;\n GlyphOffsetArray2.prototype.getoffsetX = function getoffsetX(index) {\n return this.float32[index * 1 + 0];\n };\n return GlyphOffsetArray2;\n }(StructArrayLayout1f4);\n register(\"GlyphOffsetArray\", GlyphOffsetArray);\n var SymbolLineVertexArray = function(StructArrayLayout3i62) {\n function SymbolLineVertexArray2() {\n StructArrayLayout3i62.apply(this, arguments);\n }\n if (StructArrayLayout3i62)\n SymbolLineVertexArray2.__proto__ = StructArrayLayout3i62;\n SymbolLineVertexArray2.prototype = Object.create(StructArrayLayout3i62 && StructArrayLayout3i62.prototype);\n SymbolLineVertexArray2.prototype.constructor = SymbolLineVertexArray2;\n SymbolLineVertexArray2.prototype.getx = function getx(index) {\n return this.int16[index * 3 + 0];\n };\n SymbolLineVertexArray2.prototype.gety = function gety(index) {\n return this.int16[index * 3 + 1];\n };\n SymbolLineVertexArray2.prototype.gettileUnitDistanceFromAnchor = function gettileUnitDistanceFromAnchor(index) {\n return this.int16[index * 3 + 2];\n };\n return SymbolLineVertexArray2;\n }(StructArrayLayout3i6);\n register(\"SymbolLineVertexArray\", SymbolLineVertexArray);\n var FeatureIndexStruct = function(Struct2) {\n function FeatureIndexStruct2() {\n Struct2.apply(this, arguments);\n }\n if (Struct2)\n FeatureIndexStruct2.__proto__ = Struct2;\n FeatureIndexStruct2.prototype = Object.create(Struct2 && Struct2.prototype);\n FeatureIndexStruct2.prototype.constructor = FeatureIndexStruct2;\n var prototypeAccessors$3 = {\n featureIndex: { configurable: true },\n sourceLayerIndex: { configurable: true },\n bucketIndex: { configurable: true }\n };\n prototypeAccessors$3.featureIndex.get = function() {\n return this._structArray.uint32[this._pos4 + 0];\n };\n prototypeAccessors$3.sourceLayerIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 2];\n };\n prototypeAccessors$3.bucketIndex.get = function() {\n return this._structArray.uint16[this._pos2 + 3];\n };\n Object.defineProperties(FeatureIndexStruct2.prototype, prototypeAccessors$3);\n return FeatureIndexStruct2;\n }(Struct);\n FeatureIndexStruct.prototype.size = 8;\n var FeatureIndexArray = function(StructArrayLayout1ul2ui82) {\n function FeatureIndexArray2() {\n StructArrayLayout1ul2ui82.apply(this, arguments);\n }\n if (StructArrayLayout1ul2ui82)\n FeatureIndexArray2.__proto__ = StructArrayLayout1ul2ui82;\n FeatureIndexArray2.prototype = Object.create(StructArrayLayout1ul2ui82 && StructArrayLayout1ul2ui82.prototype);\n FeatureIndexArray2.prototype.constructor = FeatureIndexArray2;\n FeatureIndexArray2.prototype.get = function get2(index) {\n return new FeatureIndexStruct(this, index);\n };\n return FeatureIndexArray2;\n }(StructArrayLayout1ul2ui8);\n register(\"FeatureIndexArray\", FeatureIndexArray);\n var layout$1 = createLayout([{\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n }], 4);\n var members = layout$1.members;\n var SegmentVector = function SegmentVector2(segments) {\n if (segments === void 0)\n segments = [];\n this.segments = segments;\n };\n SegmentVector.prototype.prepareSegment = function prepareSegment(numVertices, layoutVertexArray, indexArray, sortKey) {\n var segment = this.segments[this.segments.length - 1];\n if (numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) {\n warnOnce(\"Max vertices per segment is \" + SegmentVector.MAX_VERTEX_ARRAY_LENGTH + \": bucket requested \" + numVertices);\n }\n if (!segment || segment.vertexLength + numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH || segment.sortKey !== sortKey) {\n segment = {\n vertexOffset: layoutVertexArray.length,\n primitiveOffset: indexArray.length,\n vertexLength: 0,\n primitiveLength: 0\n };\n if (sortKey !== void 0) {\n segment.sortKey = sortKey;\n }\n this.segments.push(segment);\n }\n return segment;\n };\n SegmentVector.prototype.get = function get2() {\n return this.segments;\n };\n SegmentVector.prototype.destroy = function destroy() {\n for (var i = 0, list = this.segments; i < list.length; i += 1) {\n var segment = list[i];\n for (var k in segment.vaos) {\n segment.vaos[k].destroy();\n }\n }\n };\n SegmentVector.simpleSegment = function simpleSegment(vertexOffset, primitiveOffset, vertexLength, primitiveLength) {\n return new SegmentVector([{\n vertexOffset,\n primitiveOffset,\n vertexLength,\n primitiveLength,\n vaos: {},\n sortKey: 0\n }]);\n };\n SegmentVector.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1;\n register(\"SegmentVector\", SegmentVector);\n function packUint8ToFloat(a, b) {\n a = clamp(Math.floor(a), 0, 255);\n b = clamp(Math.floor(b), 0, 255);\n return 256 * a + b;\n }\n var patternAttributes = createLayout([\n {\n name: \"a_pattern_from\",\n components: 4,\n type: \"Uint16\"\n },\n {\n name: \"a_pattern_to\",\n components: 4,\n type: \"Uint16\"\n },\n {\n name: \"a_pixel_ratio_from\",\n components: 1,\n type: \"Uint16\"\n },\n {\n name: \"a_pixel_ratio_to\",\n components: 1,\n type: \"Uint16\"\n }\n ]);\n var murmurhash3_gc = createCommonjsModule(function(module2) {\n function murmurhash3_32_gc(key, seed) {\n var remainder, bytes, h1, h1b, c1, c2, k1, i;\n remainder = key.length & 3;\n bytes = key.length - remainder;\n h1 = seed;\n c1 = 3432918353;\n c2 = 461845907;\n i = 0;\n while (i < bytes) {\n k1 = key.charCodeAt(i) & 255 | (key.charCodeAt(++i) & 255) << 8 | (key.charCodeAt(++i) & 255) << 16 | (key.charCodeAt(++i) & 255) << 24;\n ++i;\n k1 = (k1 & 65535) * c1 + (((k1 >>> 16) * c1 & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 65535) * c2 + (((k1 >>> 16) * c2 & 65535) << 16) & 4294967295;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1b = (h1 & 65535) * 5 + (((h1 >>> 16) * 5 & 65535) << 16) & 4294967295;\n h1 = (h1b & 65535) + 27492 + (((h1b >>> 16) + 58964 & 65535) << 16);\n }\n k1 = 0;\n switch (remainder) {\n case 3:\n k1 ^= (key.charCodeAt(i + 2) & 255) << 16;\n case 2:\n k1 ^= (key.charCodeAt(i + 1) & 255) << 8;\n case 1:\n k1 ^= key.charCodeAt(i) & 255;\n k1 = (k1 & 65535) * c1 + (((k1 >>> 16) * c1 & 65535) << 16) & 4294967295;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = (k1 & 65535) * c2 + (((k1 >>> 16) * c2 & 65535) << 16) & 4294967295;\n h1 ^= k1;\n }\n h1 ^= key.length;\n h1 ^= h1 >>> 16;\n h1 = (h1 & 65535) * 2246822507 + (((h1 >>> 16) * 2246822507 & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 13;\n h1 = (h1 & 65535) * 3266489909 + (((h1 >>> 16) * 3266489909 & 65535) << 16) & 4294967295;\n h1 ^= h1 >>> 16;\n return h1 >>> 0;\n }\n {\n module2.exports = murmurhash3_32_gc;\n }\n });\n var murmurhash2_gc = createCommonjsModule(function(module2) {\n function murmurhash2_32_gc(str, seed) {\n var l = str.length, h = seed ^ l, i = 0, k;\n while (l >= 4) {\n k = str.charCodeAt(i) & 255 | (str.charCodeAt(++i) & 255) << 8 | (str.charCodeAt(++i) & 255) << 16 | (str.charCodeAt(++i) & 255) << 24;\n k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);\n k ^= k >>> 24;\n k = (k & 65535) * 1540483477 + (((k >>> 16) * 1540483477 & 65535) << 16);\n h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16) ^ k;\n l -= 4;\n ++i;\n }\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 255) << 16;\n case 2:\n h ^= (str.charCodeAt(i + 1) & 255) << 8;\n case 1:\n h ^= str.charCodeAt(i) & 255;\n h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);\n }\n h ^= h >>> 13;\n h = (h & 65535) * 1540483477 + (((h >>> 16) * 1540483477 & 65535) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n }\n {\n module2.exports = murmurhash2_32_gc;\n }\n });\n var murmurhashJs = murmurhash3_gc;\n var murmur3_1 = murmurhash3_gc;\n var murmur2_1 = murmurhash2_gc;\n murmurhashJs.murmur3 = murmur3_1;\n murmurhashJs.murmur2 = murmur2_1;\n var FeaturePositionMap = function FeaturePositionMap2() {\n this.ids = [];\n this.positions = [];\n this.indexed = false;\n };\n FeaturePositionMap.prototype.add = function add2(id2, index, start, end) {\n this.ids.push(getNumericId(id2));\n this.positions.push(index, start, end);\n };\n FeaturePositionMap.prototype.getPositions = function getPositions(id2) {\n var intId = getNumericId(id2);\n var i = 0;\n var j = this.ids.length - 1;\n while (i < j) {\n var m = i + j >> 1;\n if (this.ids[m] >= intId) {\n j = m;\n } else {\n i = m + 1;\n }\n }\n var positions = [];\n while (this.ids[i] === intId) {\n var index = this.positions[3 * i];\n var start = this.positions[3 * i + 1];\n var end = this.positions[3 * i + 2];\n positions.push({\n index,\n start,\n end\n });\n i++;\n }\n return positions;\n };\n FeaturePositionMap.serialize = function serialize2(map, transferables) {\n var ids = new Float64Array(map.ids);\n var positions = new Uint32Array(map.positions);\n sort(ids, positions, 0, ids.length - 1);\n if (transferables) {\n transferables.push(ids.buffer, positions.buffer);\n }\n return {\n ids,\n positions\n };\n };\n FeaturePositionMap.deserialize = function deserialize2(obj) {\n var map = new FeaturePositionMap();\n map.ids = obj.ids;\n map.positions = obj.positions;\n map.indexed = true;\n return map;\n };\n var MAX_SAFE_INTEGER$1 = Math.pow(2, 53) - 1;\n function getNumericId(value) {\n var numValue = +value;\n if (!isNaN(numValue) && numValue <= MAX_SAFE_INTEGER$1) {\n return numValue;\n }\n return murmurhashJs(String(value));\n }\n function sort(ids, positions, left, right) {\n while (left < right) {\n var pivot = ids[left + right >> 1];\n var i = left - 1;\n var j = right + 1;\n while (true) {\n do {\n i++;\n } while (ids[i] < pivot);\n do {\n j--;\n } while (ids[j] > pivot);\n if (i >= j) {\n break;\n }\n swap(ids, i, j);\n swap(positions, 3 * i, 3 * j);\n swap(positions, 3 * i + 1, 3 * j + 1);\n swap(positions, 3 * i + 2, 3 * j + 2);\n }\n if (j - left < right - j) {\n sort(ids, positions, left, j);\n left = j + 1;\n } else {\n sort(ids, positions, j + 1, right);\n right = j;\n }\n }\n }\n function swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n register(\"FeaturePositionMap\", FeaturePositionMap);\n var Uniform = function Uniform2(context, location2) {\n this.gl = context.gl;\n this.location = location2;\n };\n var Uniform1i = function(Uniform2) {\n function Uniform1i2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = 0;\n }\n if (Uniform2)\n Uniform1i2.__proto__ = Uniform2;\n Uniform1i2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform1i2.prototype.constructor = Uniform1i2;\n Uniform1i2.prototype.set = function set(v) {\n if (this.current !== v) {\n this.current = v;\n this.gl.uniform1i(this.location, v);\n }\n };\n return Uniform1i2;\n }(Uniform);\n var Uniform1f = function(Uniform2) {\n function Uniform1f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = 0;\n }\n if (Uniform2)\n Uniform1f2.__proto__ = Uniform2;\n Uniform1f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform1f2.prototype.constructor = Uniform1f2;\n Uniform1f2.prototype.set = function set(v) {\n if (this.current !== v) {\n this.current = v;\n this.gl.uniform1f(this.location, v);\n }\n };\n return Uniform1f2;\n }(Uniform);\n var Uniform2f = function(Uniform2) {\n function Uniform2f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = [\n 0,\n 0\n ];\n }\n if (Uniform2)\n Uniform2f2.__proto__ = Uniform2;\n Uniform2f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform2f2.prototype.constructor = Uniform2f2;\n Uniform2f2.prototype.set = function set(v) {\n if (v[0] !== this.current[0] || v[1] !== this.current[1]) {\n this.current = v;\n this.gl.uniform2f(this.location, v[0], v[1]);\n }\n };\n return Uniform2f2;\n }(Uniform);\n var Uniform3f = function(Uniform2) {\n function Uniform3f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = [\n 0,\n 0,\n 0\n ];\n }\n if (Uniform2)\n Uniform3f2.__proto__ = Uniform2;\n Uniform3f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform3f2.prototype.constructor = Uniform3f2;\n Uniform3f2.prototype.set = function set(v) {\n if (v[0] !== this.current[0] || v[1] !== this.current[1] || v[2] !== this.current[2]) {\n this.current = v;\n this.gl.uniform3f(this.location, v[0], v[1], v[2]);\n }\n };\n return Uniform3f2;\n }(Uniform);\n var Uniform4f = function(Uniform2) {\n function Uniform4f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = [\n 0,\n 0,\n 0,\n 0\n ];\n }\n if (Uniform2)\n Uniform4f2.__proto__ = Uniform2;\n Uniform4f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n Uniform4f2.prototype.constructor = Uniform4f2;\n Uniform4f2.prototype.set = function set(v) {\n if (v[0] !== this.current[0] || v[1] !== this.current[1] || v[2] !== this.current[2] || v[3] !== this.current[3]) {\n this.current = v;\n this.gl.uniform4f(this.location, v[0], v[1], v[2], v[3]);\n }\n };\n return Uniform4f2;\n }(Uniform);\n var UniformColor = function(Uniform2) {\n function UniformColor2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = Color2.transparent;\n }\n if (Uniform2)\n UniformColor2.__proto__ = Uniform2;\n UniformColor2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n UniformColor2.prototype.constructor = UniformColor2;\n UniformColor2.prototype.set = function set(v) {\n if (v.r !== this.current.r || v.g !== this.current.g || v.b !== this.current.b || v.a !== this.current.a) {\n this.current = v;\n this.gl.uniform4f(this.location, v.r, v.g, v.b, v.a);\n }\n };\n return UniformColor2;\n }(Uniform);\n var emptyMat4 = new Float32Array(16);\n var UniformMatrix4f = function(Uniform2) {\n function UniformMatrix4f2(context, location2) {\n Uniform2.call(this, context, location2);\n this.current = emptyMat4;\n }\n if (Uniform2)\n UniformMatrix4f2.__proto__ = Uniform2;\n UniformMatrix4f2.prototype = Object.create(Uniform2 && Uniform2.prototype);\n UniformMatrix4f2.prototype.constructor = UniformMatrix4f2;\n UniformMatrix4f2.prototype.set = function set(v) {\n if (v[12] !== this.current[12] || v[0] !== this.current[0]) {\n this.current = v;\n this.gl.uniformMatrix4fv(this.location, false, v);\n return;\n }\n for (var i = 1; i < 16; i++) {\n if (v[i] !== this.current[i]) {\n this.current = v;\n this.gl.uniformMatrix4fv(this.location, false, v);\n break;\n }\n }\n };\n return UniformMatrix4f2;\n }(Uniform);\n function packColor(color3) {\n return [\n packUint8ToFloat(255 * color3.r, 255 * color3.g),\n packUint8ToFloat(255 * color3.b, 255 * color3.a)\n ];\n }\n var ConstantBinder = function ConstantBinder2(value, names2, type) {\n this.value = value;\n this.uniformNames = names2.map(function(name3) {\n return \"u_\" + name3;\n });\n this.type = type;\n };\n ConstantBinder.prototype.setUniform = function setUniform(uniform, globals, currentValue) {\n uniform.set(currentValue.constantOr(this.value));\n };\n ConstantBinder.prototype.getBinding = function getBinding(context, location2, _) {\n return this.type === \"color\" ? new UniformColor(context, location2) : new Uniform1f(context, location2);\n };\n var CrossFadedConstantBinder = function CrossFadedConstantBinder2(value, names2) {\n this.uniformNames = names2.map(function(name3) {\n return \"u_\" + name3;\n });\n this.patternFrom = null;\n this.patternTo = null;\n this.pixelRatioFrom = 1;\n this.pixelRatioTo = 1;\n };\n CrossFadedConstantBinder.prototype.setConstantPatternPositions = function setConstantPatternPositions(posTo, posFrom) {\n this.pixelRatioFrom = posFrom.pixelRatio;\n this.pixelRatioTo = posTo.pixelRatio;\n this.patternFrom = posFrom.tlbr;\n this.patternTo = posTo.tlbr;\n };\n CrossFadedConstantBinder.prototype.setUniform = function setUniform(uniform, globals, currentValue, uniformName) {\n var pos = uniformName === \"u_pattern_to\" ? this.patternTo : uniformName === \"u_pattern_from\" ? this.patternFrom : uniformName === \"u_pixel_ratio_to\" ? this.pixelRatioTo : uniformName === \"u_pixel_ratio_from\" ? this.pixelRatioFrom : null;\n if (pos) {\n uniform.set(pos);\n }\n };\n CrossFadedConstantBinder.prototype.getBinding = function getBinding(context, location2, name3) {\n return name3.substr(0, 9) === \"u_pattern\" ? new Uniform4f(context, location2) : new Uniform1f(context, location2);\n };\n var SourceExpressionBinder = function SourceExpressionBinder2(expression2, names2, type, PaintVertexArray) {\n this.expression = expression2;\n this.type = type;\n this.maxValue = 0;\n this.paintVertexAttributes = names2.map(function(name3) {\n return {\n name: \"a_\" + name3,\n type: \"Float32\",\n components: type === \"color\" ? 2 : 1,\n offset: 0\n };\n });\n this.paintVertexArray = new PaintVertexArray();\n };\n SourceExpressionBinder.prototype.populatePaintArray = function populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection) {\n var start = this.paintVertexArray.length;\n var value = this.expression.evaluate(new EvaluationParameters(0), feature, {}, canonical, [], formattedSection);\n this.paintVertexArray.resize(newLength);\n this._setPaintValue(start, newLength, value);\n };\n SourceExpressionBinder.prototype.updatePaintArray = function updatePaintArray(start, end, feature, featureState) {\n var value = this.expression.evaluate({ zoom: 0 }, feature, featureState);\n this._setPaintValue(start, end, value);\n };\n SourceExpressionBinder.prototype._setPaintValue = function _setPaintValue(start, end, value) {\n if (this.type === \"color\") {\n var color3 = packColor(value);\n for (var i = start; i < end; i++) {\n this.paintVertexArray.emplace(i, color3[0], color3[1]);\n }\n } else {\n for (var i$1 = start; i$1 < end; i$1++) {\n this.paintVertexArray.emplace(i$1, value);\n }\n this.maxValue = Math.max(this.maxValue, Math.abs(value));\n }\n };\n SourceExpressionBinder.prototype.upload = function upload(context) {\n if (this.paintVertexArray && this.paintVertexArray.arrayBuffer) {\n if (this.paintVertexBuffer && this.paintVertexBuffer.buffer) {\n this.paintVertexBuffer.updateData(this.paintVertexArray);\n } else {\n this.paintVertexBuffer = context.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);\n }\n }\n };\n SourceExpressionBinder.prototype.destroy = function destroy() {\n if (this.paintVertexBuffer) {\n this.paintVertexBuffer.destroy();\n }\n };\n var CompositeExpressionBinder = function CompositeExpressionBinder2(expression2, names2, type, useIntegerZoom, zoom, PaintVertexArray) {\n this.expression = expression2;\n this.uniformNames = names2.map(function(name3) {\n return \"u_\" + name3 + \"_t\";\n });\n this.type = type;\n this.useIntegerZoom = useIntegerZoom;\n this.zoom = zoom;\n this.maxValue = 0;\n this.paintVertexAttributes = names2.map(function(name3) {\n return {\n name: \"a_\" + name3,\n type: \"Float32\",\n components: type === \"color\" ? 4 : 2,\n offset: 0\n };\n });\n this.paintVertexArray = new PaintVertexArray();\n };\n CompositeExpressionBinder.prototype.populatePaintArray = function populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection) {\n var min = this.expression.evaluate(new EvaluationParameters(this.zoom), feature, {}, canonical, [], formattedSection);\n var max = this.expression.evaluate(new EvaluationParameters(this.zoom + 1), feature, {}, canonical, [], formattedSection);\n var start = this.paintVertexArray.length;\n this.paintVertexArray.resize(newLength);\n this._setPaintValue(start, newLength, min, max);\n };\n CompositeExpressionBinder.prototype.updatePaintArray = function updatePaintArray(start, end, feature, featureState) {\n var min = this.expression.evaluate({ zoom: this.zoom }, feature, featureState);\n var max = this.expression.evaluate({ zoom: this.zoom + 1 }, feature, featureState);\n this._setPaintValue(start, end, min, max);\n };\n CompositeExpressionBinder.prototype._setPaintValue = function _setPaintValue(start, end, min, max) {\n if (this.type === \"color\") {\n var minColor = packColor(min);\n var maxColor = packColor(max);\n for (var i = start; i < end; i++) {\n this.paintVertexArray.emplace(i, minColor[0], minColor[1], maxColor[0], maxColor[1]);\n }\n } else {\n for (var i$1 = start; i$1 < end; i$1++) {\n this.paintVertexArray.emplace(i$1, min, max);\n }\n this.maxValue = Math.max(this.maxValue, Math.abs(min), Math.abs(max));\n }\n };\n CompositeExpressionBinder.prototype.upload = function upload(context) {\n if (this.paintVertexArray && this.paintVertexArray.arrayBuffer) {\n if (this.paintVertexBuffer && this.paintVertexBuffer.buffer) {\n this.paintVertexBuffer.updateData(this.paintVertexArray);\n } else {\n this.paintVertexBuffer = context.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);\n }\n }\n };\n CompositeExpressionBinder.prototype.destroy = function destroy() {\n if (this.paintVertexBuffer) {\n this.paintVertexBuffer.destroy();\n }\n };\n CompositeExpressionBinder.prototype.setUniform = function setUniform(uniform, globals) {\n var currentZoom = this.useIntegerZoom ? Math.floor(globals.zoom) : globals.zoom;\n var factor = clamp(this.expression.interpolationFactor(currentZoom, this.zoom, this.zoom + 1), 0, 1);\n uniform.set(factor);\n };\n CompositeExpressionBinder.prototype.getBinding = function getBinding(context, location2, _) {\n return new Uniform1f(context, location2);\n };\n var CrossFadedCompositeBinder = function CrossFadedCompositeBinder2(expression2, type, useIntegerZoom, zoom, PaintVertexArray, layerId) {\n this.expression = expression2;\n this.type = type;\n this.useIntegerZoom = useIntegerZoom;\n this.zoom = zoom;\n this.layerId = layerId;\n this.zoomInPaintVertexArray = new PaintVertexArray();\n this.zoomOutPaintVertexArray = new PaintVertexArray();\n };\n CrossFadedCompositeBinder.prototype.populatePaintArray = function populatePaintArray(length, feature, imagePositions) {\n var start = this.zoomInPaintVertexArray.length;\n this.zoomInPaintVertexArray.resize(length);\n this.zoomOutPaintVertexArray.resize(length);\n this._setPaintValues(start, length, feature.patterns && feature.patterns[this.layerId], imagePositions);\n };\n CrossFadedCompositeBinder.prototype.updatePaintArray = function updatePaintArray(start, end, feature, featureState, imagePositions) {\n this._setPaintValues(start, end, feature.patterns && feature.patterns[this.layerId], imagePositions);\n };\n CrossFadedCompositeBinder.prototype._setPaintValues = function _setPaintValues(start, end, patterns, positions) {\n if (!positions || !patterns) {\n return;\n }\n var min = patterns.min;\n var mid = patterns.mid;\n var max = patterns.max;\n var imageMin = positions[min];\n var imageMid = positions[mid];\n var imageMax = positions[max];\n if (!imageMin || !imageMid || !imageMax) {\n return;\n }\n for (var i = start; i < end; i++) {\n this.zoomInPaintVertexArray.emplace(i, imageMid.tl[0], imageMid.tl[1], imageMid.br[0], imageMid.br[1], imageMin.tl[0], imageMin.tl[1], imageMin.br[0], imageMin.br[1], imageMid.pixelRatio, imageMin.pixelRatio);\n this.zoomOutPaintVertexArray.emplace(i, imageMid.tl[0], imageMid.tl[1], imageMid.br[0], imageMid.br[1], imageMax.tl[0], imageMax.tl[1], imageMax.br[0], imageMax.br[1], imageMid.pixelRatio, imageMax.pixelRatio);\n }\n };\n CrossFadedCompositeBinder.prototype.upload = function upload(context) {\n if (this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer) {\n this.zoomInPaintVertexBuffer = context.createVertexBuffer(this.zoomInPaintVertexArray, patternAttributes.members, this.expression.isStateDependent);\n this.zoomOutPaintVertexBuffer = context.createVertexBuffer(this.zoomOutPaintVertexArray, patternAttributes.members, this.expression.isStateDependent);\n }\n };\n CrossFadedCompositeBinder.prototype.destroy = function destroy() {\n if (this.zoomOutPaintVertexBuffer) {\n this.zoomOutPaintVertexBuffer.destroy();\n }\n if (this.zoomInPaintVertexBuffer) {\n this.zoomInPaintVertexBuffer.destroy();\n }\n };\n var ProgramConfiguration = function ProgramConfiguration2(layer2, zoom, filterProperties) {\n this.binders = {};\n this._buffers = [];\n var keys = [];\n for (var property in layer2.paint._values) {\n if (!filterProperties(property)) {\n continue;\n }\n var value = layer2.paint.get(property);\n if (!(value instanceof PossiblyEvaluatedPropertyValue) || !supportsPropertyExpression(value.property.specification)) {\n continue;\n }\n var names2 = paintAttributeNames(property, layer2.type);\n var expression2 = value.value;\n var type = value.property.specification.type;\n var useIntegerZoom = value.property.useIntegerZoom;\n var propType = value.property.specification[\"property-type\"];\n var isCrossFaded = propType === \"cross-faded\" || propType === \"cross-faded-data-driven\";\n if (expression2.kind === \"constant\") {\n this.binders[property] = isCrossFaded ? new CrossFadedConstantBinder(expression2.value, names2) : new ConstantBinder(expression2.value, names2, type);\n keys.push(\"/u_\" + property);\n } else if (expression2.kind === \"source\" || isCrossFaded) {\n var StructArrayLayout = layoutType(property, type, \"source\");\n this.binders[property] = isCrossFaded ? new CrossFadedCompositeBinder(expression2, type, useIntegerZoom, zoom, StructArrayLayout, layer2.id) : new SourceExpressionBinder(expression2, names2, type, StructArrayLayout);\n keys.push(\"/a_\" + property);\n } else {\n var StructArrayLayout$1 = layoutType(property, type, \"composite\");\n this.binders[property] = new CompositeExpressionBinder(expression2, names2, type, useIntegerZoom, zoom, StructArrayLayout$1);\n keys.push(\"/z_\" + property);\n }\n }\n this.cacheKey = keys.sort().join(\"\");\n };\n ProgramConfiguration.prototype.getMaxValue = function getMaxValue(property) {\n var binder = this.binders[property];\n return binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder ? binder.maxValue : 0;\n };\n ProgramConfiguration.prototype.populatePaintArrays = function populatePaintArrays(newLength, feature, imagePositions, canonical, formattedSection) {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) {\n binder.populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection);\n }\n }\n };\n ProgramConfiguration.prototype.setConstantPatternPositions = function setConstantPatternPositions(posTo, posFrom) {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof CrossFadedConstantBinder) {\n binder.setConstantPatternPositions(posTo, posFrom);\n }\n }\n };\n ProgramConfiguration.prototype.updatePaintArrays = function updatePaintArrays(featureStates, featureMap, vtLayer, layer2, imagePositions) {\n var dirty = false;\n for (var id2 in featureStates) {\n var positions = featureMap.getPositions(id2);\n for (var i = 0, list = positions; i < list.length; i += 1) {\n var pos = list[i];\n var feature = vtLayer.feature(pos.index);\n for (var property in this.binders) {\n var binder = this.binders[property];\n if ((binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) && binder.expression.isStateDependent === true) {\n var value = layer2.paint.get(property);\n binder.expression = value.value;\n binder.updatePaintArray(pos.start, pos.end, feature, featureStates[id2], imagePositions);\n dirty = true;\n }\n }\n }\n }\n return dirty;\n };\n ProgramConfiguration.prototype.defines = function defines() {\n var result = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder) {\n result.push.apply(result, binder.uniformNames.map(function(name3) {\n return \"#define HAS_UNIFORM_\" + name3;\n }));\n }\n }\n return result;\n };\n ProgramConfiguration.prototype.getBinderAttributes = function getBinderAttributes() {\n var result = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder) {\n for (var i = 0; i < binder.paintVertexAttributes.length; i++) {\n result.push(binder.paintVertexAttributes[i].name);\n }\n } else if (binder instanceof CrossFadedCompositeBinder) {\n for (var i$1 = 0; i$1 < patternAttributes.members.length; i$1++) {\n result.push(patternAttributes.members[i$1].name);\n }\n }\n }\n return result;\n };\n ProgramConfiguration.prototype.getBinderUniforms = function getBinderUniforms() {\n var uniforms = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder || binder instanceof CompositeExpressionBinder) {\n for (var i = 0, list = binder.uniformNames; i < list.length; i += 1) {\n var uniformName = list[i];\n uniforms.push(uniformName);\n }\n }\n }\n return uniforms;\n };\n ProgramConfiguration.prototype.getPaintVertexBuffers = function getPaintVertexBuffers() {\n return this._buffers;\n };\n ProgramConfiguration.prototype.getUniforms = function getUniforms(context, locations) {\n var uniforms = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder || binder instanceof CompositeExpressionBinder) {\n for (var i = 0, list = binder.uniformNames; i < list.length; i += 1) {\n var name3 = list[i];\n if (locations[name3]) {\n var binding = binder.getBinding(context, locations[name3], name3);\n uniforms.push({\n name: name3,\n property,\n binding\n });\n }\n }\n }\n }\n return uniforms;\n };\n ProgramConfiguration.prototype.setUniforms = function setUniforms(context, binderUniforms, properties2, globals) {\n for (var i = 0, list = binderUniforms; i < list.length; i += 1) {\n var ref = list[i];\n var name3 = ref.name;\n var property = ref.property;\n var binding = ref.binding;\n this.binders[property].setUniform(binding, globals, properties2.get(property), name3);\n }\n };\n ProgramConfiguration.prototype.updatePaintBuffers = function updatePaintBuffers(crossfade) {\n this._buffers = [];\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (crossfade && binder instanceof CrossFadedCompositeBinder) {\n var patternVertexBuffer = crossfade.fromScale === 2 ? binder.zoomInPaintVertexBuffer : binder.zoomOutPaintVertexBuffer;\n if (patternVertexBuffer) {\n this._buffers.push(patternVertexBuffer);\n }\n } else if ((binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder) && binder.paintVertexBuffer) {\n this._buffers.push(binder.paintVertexBuffer);\n }\n }\n };\n ProgramConfiguration.prototype.upload = function upload(context) {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) {\n binder.upload(context);\n }\n }\n this.updatePaintBuffers();\n };\n ProgramConfiguration.prototype.destroy = function destroy() {\n for (var property in this.binders) {\n var binder = this.binders[property];\n if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder) {\n binder.destroy();\n }\n }\n };\n var ProgramConfigurationSet = function ProgramConfigurationSet2(layers, zoom, filterProperties) {\n if (filterProperties === void 0)\n filterProperties = function() {\n return true;\n };\n this.programConfigurations = {};\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n this.programConfigurations[layer2.id] = new ProgramConfiguration(layer2, zoom, filterProperties);\n }\n this.needsUpload = false;\n this._featureMap = new FeaturePositionMap();\n this._bufferOffset = 0;\n };\n ProgramConfigurationSet.prototype.populatePaintArrays = function populatePaintArrays(length, feature, index, imagePositions, canonical, formattedSection) {\n for (var key in this.programConfigurations) {\n this.programConfigurations[key].populatePaintArrays(length, feature, imagePositions, canonical, formattedSection);\n }\n if (feature.id !== void 0) {\n this._featureMap.add(feature.id, index, this._bufferOffset, length);\n }\n this._bufferOffset = length;\n this.needsUpload = true;\n };\n ProgramConfigurationSet.prototype.updatePaintArrays = function updatePaintArrays(featureStates, vtLayer, layers, imagePositions) {\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n this.needsUpload = this.programConfigurations[layer2.id].updatePaintArrays(featureStates, this._featureMap, vtLayer, layer2, imagePositions) || this.needsUpload;\n }\n };\n ProgramConfigurationSet.prototype.get = function get2(layerId) {\n return this.programConfigurations[layerId];\n };\n ProgramConfigurationSet.prototype.upload = function upload(context) {\n if (!this.needsUpload) {\n return;\n }\n for (var layerId in this.programConfigurations) {\n this.programConfigurations[layerId].upload(context);\n }\n this.needsUpload = false;\n };\n ProgramConfigurationSet.prototype.destroy = function destroy() {\n for (var layerId in this.programConfigurations) {\n this.programConfigurations[layerId].destroy();\n }\n };\n function paintAttributeNames(property, type) {\n var attributeNameExceptions = {\n \"text-opacity\": [\"opacity\"],\n \"icon-opacity\": [\"opacity\"],\n \"text-color\": [\"fill_color\"],\n \"icon-color\": [\"fill_color\"],\n \"text-halo-color\": [\"halo_color\"],\n \"icon-halo-color\": [\"halo_color\"],\n \"text-halo-blur\": [\"halo_blur\"],\n \"icon-halo-blur\": [\"halo_blur\"],\n \"text-halo-width\": [\"halo_width\"],\n \"icon-halo-width\": [\"halo_width\"],\n \"line-gap-width\": [\"gapwidth\"],\n \"line-pattern\": [\n \"pattern_to\",\n \"pattern_from\",\n \"pixel_ratio_to\",\n \"pixel_ratio_from\"\n ],\n \"fill-pattern\": [\n \"pattern_to\",\n \"pattern_from\",\n \"pixel_ratio_to\",\n \"pixel_ratio_from\"\n ],\n \"fill-extrusion-pattern\": [\n \"pattern_to\",\n \"pattern_from\",\n \"pixel_ratio_to\",\n \"pixel_ratio_from\"\n ]\n };\n return attributeNameExceptions[property] || [property.replace(type + \"-\", \"\").replace(/-/g, \"_\")];\n }\n function getLayoutException(property) {\n var propertyExceptions = {\n \"line-pattern\": {\n \"source\": StructArrayLayout10ui20,\n \"composite\": StructArrayLayout10ui20\n },\n \"fill-pattern\": {\n \"source\": StructArrayLayout10ui20,\n \"composite\": StructArrayLayout10ui20\n },\n \"fill-extrusion-pattern\": {\n \"source\": StructArrayLayout10ui20,\n \"composite\": StructArrayLayout10ui20\n }\n };\n return propertyExceptions[property];\n }\n function layoutType(property, type, binderType) {\n var defaultLayouts = {\n \"color\": {\n \"source\": StructArrayLayout2f8,\n \"composite\": StructArrayLayout4f16\n },\n \"number\": {\n \"source\": StructArrayLayout1f4,\n \"composite\": StructArrayLayout2f8\n }\n };\n var layoutException = getLayoutException(property);\n return layoutException && layoutException[binderType] || defaultLayouts[type][binderType];\n }\n register(\"ConstantBinder\", ConstantBinder);\n register(\"CrossFadedConstantBinder\", CrossFadedConstantBinder);\n register(\"SourceExpressionBinder\", SourceExpressionBinder);\n register(\"CrossFadedCompositeBinder\", CrossFadedCompositeBinder);\n register(\"CompositeExpressionBinder\", CompositeExpressionBinder);\n register(\"ProgramConfiguration\", ProgramConfiguration, { omit: [\"_buffers\"] });\n register(\"ProgramConfigurationSet\", ProgramConfigurationSet);\n var EXTENT$1 = 8192;\n var BITS = 15;\n var MAX = Math.pow(2, BITS - 1) - 1;\n var MIN = -MAX - 1;\n function loadGeometry(feature) {\n var scale2 = EXTENT$1 / feature.extent;\n var geometry = feature.loadGeometry();\n for (var r = 0; r < geometry.length; r++) {\n var ring = geometry[r];\n for (var p = 0; p < ring.length; p++) {\n var point = ring[p];\n var x = Math.round(point.x * scale2);\n var y = Math.round(point.y * scale2);\n point.x = clamp(x, MIN, MAX);\n point.y = clamp(y, MIN, MAX);\n if (x < point.x || x > point.x + 1 || y < point.y || y > point.y + 1) {\n warnOnce(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\");\n }\n }\n }\n return geometry;\n }\n function toEvaluationFeature(feature, needGeometry) {\n return {\n type: feature.type,\n id: feature.id,\n properties: feature.properties,\n geometry: needGeometry ? loadGeometry(feature) : []\n };\n }\n function addCircleVertex(layoutVertexArray, x, y, extrudeX, extrudeY) {\n layoutVertexArray.emplaceBack(x * 2 + (extrudeX + 1) / 2, y * 2 + (extrudeY + 1) / 2);\n }\n var CircleBucket = function CircleBucket2(options) {\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.layoutVertexArray = new StructArrayLayout2i4();\n this.indexArray = new StructArrayLayout3ui6();\n this.segments = new SegmentVector();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n CircleBucket.prototype.populate = function populate(features, options, canonical) {\n var styleLayer = this.layers[0];\n var bucketFeatures = [];\n var circleSortKey = null;\n if (styleLayer.type === \"circle\") {\n circleSortKey = styleLayer.layout.get(\"circle-sort-key\");\n }\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var sortKey = circleSortKey ? circleSortKey.evaluate(evaluationFeature, {}, canonical) : void 0;\n var bucketFeature = {\n id: id2,\n properties: feature.properties,\n type: feature.type,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n patterns: {},\n sortKey\n };\n bucketFeatures.push(bucketFeature);\n }\n if (circleSortKey) {\n bucketFeatures.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$1 = 0, list$1 = bucketFeatures; i$1 < list$1.length; i$1 += 1) {\n var bucketFeature$1 = list$1[i$1];\n var ref$1 = bucketFeature$1;\n var geometry = ref$1.geometry;\n var index$1 = ref$1.index;\n var sourceLayerIndex$1 = ref$1.sourceLayerIndex;\n var feature$1 = features[index$1].feature;\n this.addFeature(bucketFeature$1, geometry, index$1, canonical);\n options.featureIndex.insert(feature$1, geometry, index$1, sourceLayerIndex$1, this.index);\n }\n };\n CircleBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n CircleBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n CircleBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n CircleBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n CircleBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n };\n CircleBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical) {\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var ring = list$1[i$1];\n for (var i = 0, list = ring; i < list.length; i += 1) {\n var point = list[i];\n var x = point.x;\n var y = point.y;\n if (x < 0 || x >= EXTENT$1 || y < 0 || y >= EXTENT$1) {\n continue;\n }\n var segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, feature.sortKey);\n var index$1 = segment.vertexLength;\n addCircleVertex(this.layoutVertexArray, x, y, -1, -1);\n addCircleVertex(this.layoutVertexArray, x, y, 1, -1);\n addCircleVertex(this.layoutVertexArray, x, y, 1, 1);\n addCircleVertex(this.layoutVertexArray, x, y, -1, 1);\n this.indexArray.emplaceBack(index$1, index$1 + 1, index$1 + 2);\n this.indexArray.emplaceBack(index$1, index$1 + 3, index$1 + 2);\n segment.vertexLength += 4;\n segment.primitiveLength += 2;\n }\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, {}, canonical);\n };\n register(\"CircleBucket\", CircleBucket, { omit: [\"layers\"] });\n function polygonIntersectsPolygon(polygonA, polygonB) {\n for (var i = 0; i < polygonA.length; i++) {\n if (polygonContainsPoint(polygonB, polygonA[i])) {\n return true;\n }\n }\n for (var i$1 = 0; i$1 < polygonB.length; i$1++) {\n if (polygonContainsPoint(polygonA, polygonB[i$1])) {\n return true;\n }\n }\n if (lineIntersectsLine(polygonA, polygonB)) {\n return true;\n }\n return false;\n }\n function polygonIntersectsBufferedPoint(polygon, point, radius) {\n if (polygonContainsPoint(polygon, point)) {\n return true;\n }\n if (pointIntersectsBufferedLine(point, polygon, radius)) {\n return true;\n }\n return false;\n }\n function polygonIntersectsMultiPolygon(polygon, multiPolygon) {\n if (polygon.length === 1) {\n return multiPolygonContainsPoint(multiPolygon, polygon[0]);\n }\n for (var m = 0; m < multiPolygon.length; m++) {\n var ring = multiPolygon[m];\n for (var n = 0; n < ring.length; n++) {\n if (polygonContainsPoint(polygon, ring[n])) {\n return true;\n }\n }\n }\n for (var i = 0; i < polygon.length; i++) {\n if (multiPolygonContainsPoint(multiPolygon, polygon[i])) {\n return true;\n }\n }\n for (var k = 0; k < multiPolygon.length; k++) {\n if (lineIntersectsLine(polygon, multiPolygon[k])) {\n return true;\n }\n }\n return false;\n }\n function polygonIntersectsBufferedMultiLine(polygon, multiLine, radius) {\n for (var i = 0; i < multiLine.length; i++) {\n var line = multiLine[i];\n if (polygon.length >= 3) {\n for (var k = 0; k < line.length; k++) {\n if (polygonContainsPoint(polygon, line[k])) {\n return true;\n }\n }\n }\n if (lineIntersectsBufferedLine(polygon, line, radius)) {\n return true;\n }\n }\n return false;\n }\n function lineIntersectsBufferedLine(lineA, lineB, radius) {\n if (lineA.length > 1) {\n if (lineIntersectsLine(lineA, lineB)) {\n return true;\n }\n for (var j = 0; j < lineB.length; j++) {\n if (pointIntersectsBufferedLine(lineB[j], lineA, radius)) {\n return true;\n }\n }\n }\n for (var k = 0; k < lineA.length; k++) {\n if (pointIntersectsBufferedLine(lineA[k], lineB, radius)) {\n return true;\n }\n }\n return false;\n }\n function lineIntersectsLine(lineA, lineB) {\n if (lineA.length === 0 || lineB.length === 0) {\n return false;\n }\n for (var i = 0; i < lineA.length - 1; i++) {\n var a0 = lineA[i];\n var a1 = lineA[i + 1];\n for (var j = 0; j < lineB.length - 1; j++) {\n var b0 = lineB[j];\n var b1 = lineB[j + 1];\n if (lineSegmentIntersectsLineSegment(a0, a1, b0, b1)) {\n return true;\n }\n }\n }\n return false;\n }\n function lineSegmentIntersectsLineSegment(a0, a1, b0, b1) {\n return isCounterClockwise(a0, b0, b1) !== isCounterClockwise(a1, b0, b1) && isCounterClockwise(a0, a1, b0) !== isCounterClockwise(a0, a1, b1);\n }\n function pointIntersectsBufferedLine(p, line, radius) {\n var radiusSquared = radius * radius;\n if (line.length === 1) {\n return p.distSqr(line[0]) < radiusSquared;\n }\n for (var i = 1; i < line.length; i++) {\n var v = line[i - 1], w = line[i];\n if (distToSegmentSquared(p, v, w) < radiusSquared) {\n return true;\n }\n }\n return false;\n }\n function distToSegmentSquared(p, v, w) {\n var l2 = v.distSqr(w);\n if (l2 === 0) {\n return p.distSqr(v);\n }\n var t = ((p.x - v.x) * (w.x - v.x) + (p.y - v.y) * (w.y - v.y)) / l2;\n if (t < 0) {\n return p.distSqr(v);\n }\n if (t > 1) {\n return p.distSqr(w);\n }\n return p.distSqr(w.sub(v)._mult(t)._add(v));\n }\n function multiPolygonContainsPoint(rings, p) {\n var c = false, ring, p1, p2;\n for (var k = 0; k < rings.length; k++) {\n ring = rings[k];\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n if (p1.y > p.y !== p2.y > p.y && p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x) {\n c = !c;\n }\n }\n }\n return c;\n }\n function polygonContainsPoint(ring, p) {\n var c = false;\n for (var i = 0, j = ring.length - 1; i < ring.length; j = i++) {\n var p1 = ring[i];\n var p2 = ring[j];\n if (p1.y > p.y !== p2.y > p.y && p.x < (p2.x - p1.x) * (p.y - p1.y) / (p2.y - p1.y) + p1.x) {\n c = !c;\n }\n }\n return c;\n }\n function polygonIntersectsBox(ring, boxX1, boxY1, boxX2, boxY2) {\n for (var i$1 = 0, list = ring; i$1 < list.length; i$1 += 1) {\n var p = list[i$1];\n if (boxX1 <= p.x && boxY1 <= p.y && boxX2 >= p.x && boxY2 >= p.y) {\n return true;\n }\n }\n var corners = [\n new pointGeometry(boxX1, boxY1),\n new pointGeometry(boxX1, boxY2),\n new pointGeometry(boxX2, boxY2),\n new pointGeometry(boxX2, boxY1)\n ];\n if (ring.length > 2) {\n for (var i$2 = 0, list$1 = corners; i$2 < list$1.length; i$2 += 1) {\n var corner = list$1[i$2];\n if (polygonContainsPoint(ring, corner)) {\n return true;\n }\n }\n }\n for (var i = 0; i < ring.length - 1; i++) {\n var p1 = ring[i];\n var p2 = ring[i + 1];\n if (edgeIntersectsBox(p1, p2, corners)) {\n return true;\n }\n }\n return false;\n }\n function edgeIntersectsBox(e1, e2, corners) {\n var tl = corners[0];\n var br = corners[2];\n if (e1.x < tl.x && e2.x < tl.x || e1.x > br.x && e2.x > br.x || e1.y < tl.y && e2.y < tl.y || e1.y > br.y && e2.y > br.y) {\n return false;\n }\n var dir = isCounterClockwise(e1, e2, corners[0]);\n return dir !== isCounterClockwise(e1, e2, corners[1]) || dir !== isCounterClockwise(e1, e2, corners[2]) || dir !== isCounterClockwise(e1, e2, corners[3]);\n }\n function getMaximumPaintValue(property, layer2, bucket) {\n var value = layer2.paint.get(property).value;\n if (value.kind === \"constant\") {\n return value.value;\n } else {\n return bucket.programConfigurations.get(layer2.id).getMaxValue(property);\n }\n }\n function translateDistance(translate2) {\n return Math.sqrt(translate2[0] * translate2[0] + translate2[1] * translate2[1]);\n }\n function translate(queryGeometry, translate2, translateAnchor, bearing, pixelsToTileUnits) {\n if (!translate2[0] && !translate2[1]) {\n return queryGeometry;\n }\n var pt = pointGeometry.convert(translate2)._mult(pixelsToTileUnits);\n if (translateAnchor === \"viewport\") {\n pt._rotate(-bearing);\n }\n var translated = [];\n for (var i = 0; i < queryGeometry.length; i++) {\n var point = queryGeometry[i];\n translated.push(point.sub(pt));\n }\n return translated;\n }\n var layout$2 = new Properties({ \"circle-sort-key\": new DataDrivenProperty(spec[\"layout_circle\"][\"circle-sort-key\"]) });\n var paint$1 = new Properties({\n \"circle-radius\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-radius\"]),\n \"circle-color\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-color\"]),\n \"circle-blur\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-blur\"]),\n \"circle-opacity\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-opacity\"]),\n \"circle-translate\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-translate\"]),\n \"circle-translate-anchor\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-translate-anchor\"]),\n \"circle-pitch-scale\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-pitch-scale\"]),\n \"circle-pitch-alignment\": new DataConstantProperty(spec[\"paint_circle\"][\"circle-pitch-alignment\"]),\n \"circle-stroke-width\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-stroke-width\"]),\n \"circle-stroke-color\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-stroke-color\"]),\n \"circle-stroke-opacity\": new DataDrivenProperty(spec[\"paint_circle\"][\"circle-stroke-opacity\"])\n });\n var properties = {\n paint: paint$1,\n layout: layout$2\n };\n var ARRAY_TYPE = typeof Float32Array !== \"undefined\" ? Float32Array : Array;\n if (!Math.hypot) {\n Math.hypot = function() {\n var arguments$1 = arguments;\n var y = 0, i = arguments.length;\n while (i--) {\n y += arguments$1[i] * arguments$1[i];\n }\n return Math.sqrt(y);\n };\n }\n function create() {\n var out = new ARRAY_TYPE(4);\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n }\n out[0] = 1;\n out[3] = 1;\n return out;\n }\n function rotate(out, a, rad) {\n var a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3];\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n out[0] = a0 * c + a2 * s;\n out[1] = a1 * c + a3 * s;\n out[2] = a0 * -s + a2 * c;\n out[3] = a1 * -s + a3 * c;\n return out;\n }\n function create$1() {\n var out = new ARRAY_TYPE(9);\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n }\n function fromRotation(out, rad) {\n var s = Math.sin(rad), c = Math.cos(rad);\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n }\n function create$2() {\n var out = new ARRAY_TYPE(16);\n if (ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n }\n out[0] = 1;\n out[5] = 1;\n out[10] = 1;\n out[15] = 1;\n return out;\n }\n function clone$1(a) {\n var out = new ARRAY_TYPE(16);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n function identity2(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = 1;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 1;\n out[11] = 0;\n out[12] = 0;\n out[13] = 0;\n out[14] = 0;\n out[15] = 1;\n return out;\n }\n function invert(out, a) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b00 = a00 * a11 - a01 * a10;\n var b01 = a00 * a12 - a02 * a10;\n var b02 = a00 * a13 - a03 * a10;\n var b03 = a01 * a12 - a02 * a11;\n var b04 = a01 * a13 - a03 * a11;\n var b05 = a02 * a13 - a03 * a12;\n var b06 = a20 * a31 - a21 * a30;\n var b07 = a20 * a32 - a22 * a30;\n var b08 = a20 * a33 - a23 * a30;\n var b09 = a21 * a32 - a22 * a31;\n var b10 = a21 * a33 - a23 * a31;\n var b11 = a22 * a33 - a23 * a32;\n var det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n if (!det) {\n return null;\n }\n det = 1 / det;\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[2] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[3] = (a22 * b04 - a21 * b05 - a23 * b03) * det;\n out[4] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[5] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[6] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[7] = (a20 * b05 - a22 * b02 + a23 * b01) * det;\n out[8] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n out[9] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n out[10] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n out[11] = (a21 * b02 - a20 * b04 - a23 * b00) * det;\n out[12] = (a11 * b07 - a10 * b09 - a12 * b06) * det;\n out[13] = (a00 * b09 - a01 * b07 + a02 * b06) * det;\n out[14] = (a31 * b01 - a30 * b03 - a32 * b00) * det;\n out[15] = (a20 * b03 - a21 * b01 + a22 * b00) * det;\n return out;\n }\n function multiply(out, a, b) {\n var a00 = a[0], a01 = a[1], a02 = a[2], a03 = a[3];\n var a10 = a[4], a11 = a[5], a12 = a[6], a13 = a[7];\n var a20 = a[8], a21 = a[9], a22 = a[10], a23 = a[11];\n var a30 = a[12], a31 = a[13], a32 = a[14], a33 = a[15];\n var b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3];\n out[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[4];\n b1 = b[5];\n b2 = b[6];\n b3 = b[7];\n out[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[8];\n b1 = b[9];\n b2 = b[10];\n b3 = b[11];\n out[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n b0 = b[12];\n b1 = b[13];\n b2 = b[14];\n b3 = b[15];\n out[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;\n out[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;\n out[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;\n out[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;\n return out;\n }\n function translate$1(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n var a00, a01, a02, a03;\n var a10, a11, a12, a13;\n var a20, a21, a22, a23;\n if (a === out) {\n out[12] = a[0] * x + a[4] * y + a[8] * z + a[12];\n out[13] = a[1] * x + a[5] * y + a[9] * z + a[13];\n out[14] = a[2] * x + a[6] * y + a[10] * z + a[14];\n out[15] = a[3] * x + a[7] * y + a[11] * z + a[15];\n } else {\n a00 = a[0];\n a01 = a[1];\n a02 = a[2];\n a03 = a[3];\n a10 = a[4];\n a11 = a[5];\n a12 = a[6];\n a13 = a[7];\n a20 = a[8];\n a21 = a[9];\n a22 = a[10];\n a23 = a[11];\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n out[3] = a03;\n out[4] = a10;\n out[5] = a11;\n out[6] = a12;\n out[7] = a13;\n out[8] = a20;\n out[9] = a21;\n out[10] = a22;\n out[11] = a23;\n out[12] = a00 * x + a10 * y + a20 * z + a[12];\n out[13] = a01 * x + a11 * y + a21 * z + a[13];\n out[14] = a02 * x + a12 * y + a22 * z + a[14];\n out[15] = a03 * x + a13 * y + a23 * z + a[15];\n }\n return out;\n }\n function scale(out, a, v) {\n var x = v[0], y = v[1], z = v[2];\n out[0] = a[0] * x;\n out[1] = a[1] * x;\n out[2] = a[2] * x;\n out[3] = a[3] * x;\n out[4] = a[4] * y;\n out[5] = a[5] * y;\n out[6] = a[6] * y;\n out[7] = a[7] * y;\n out[8] = a[8] * z;\n out[9] = a[9] * z;\n out[10] = a[10] * z;\n out[11] = a[11] * z;\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n return out;\n }\n function rotateX(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n var a20 = a[8];\n var a21 = a[9];\n var a22 = a[10];\n var a23 = a[11];\n if (a !== out) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[4] = a10 * c + a20 * s;\n out[5] = a11 * c + a21 * s;\n out[6] = a12 * c + a22 * s;\n out[7] = a13 * c + a23 * s;\n out[8] = a20 * c - a10 * s;\n out[9] = a21 * c - a11 * s;\n out[10] = a22 * c - a12 * s;\n out[11] = a23 * c - a13 * s;\n return out;\n }\n function rotateZ(out, a, rad) {\n var s = Math.sin(rad);\n var c = Math.cos(rad);\n var a00 = a[0];\n var a01 = a[1];\n var a02 = a[2];\n var a03 = a[3];\n var a10 = a[4];\n var a11 = a[5];\n var a12 = a[6];\n var a13 = a[7];\n if (a !== out) {\n out[8] = a[8];\n out[9] = a[9];\n out[10] = a[10];\n out[11] = a[11];\n out[12] = a[12];\n out[13] = a[13];\n out[14] = a[14];\n out[15] = a[15];\n }\n out[0] = a00 * c + a10 * s;\n out[1] = a01 * c + a11 * s;\n out[2] = a02 * c + a12 * s;\n out[3] = a03 * c + a13 * s;\n out[4] = a10 * c - a00 * s;\n out[5] = a11 * c - a01 * s;\n out[6] = a12 * c - a02 * s;\n out[7] = a13 * c - a03 * s;\n return out;\n }\n function perspective(out, fovy, aspect, near, far) {\n var f = 1 / Math.tan(fovy / 2), nf;\n out[0] = f / aspect;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = f;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[11] = -1;\n out[12] = 0;\n out[13] = 0;\n out[15] = 0;\n if (far != null && far !== Infinity) {\n nf = 1 / (near - far);\n out[10] = (far + near) * nf;\n out[14] = 2 * far * near * nf;\n } else {\n out[10] = -1;\n out[14] = -2 * near;\n }\n return out;\n }\n function ortho(out, left, right, bottom, top, near, far) {\n var lr = 1 / (left - right);\n var bt = 1 / (bottom - top);\n var nf = 1 / (near - far);\n out[0] = -2 * lr;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 0;\n out[5] = -2 * bt;\n out[6] = 0;\n out[7] = 0;\n out[8] = 0;\n out[9] = 0;\n out[10] = 2 * nf;\n out[11] = 0;\n out[12] = (left + right) * lr;\n out[13] = (top + bottom) * bt;\n out[14] = (far + near) * nf;\n out[15] = 1;\n return out;\n }\n var mul = multiply;\n function create$3() {\n var out = new ARRAY_TYPE(3);\n if (ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n }\n return out;\n }\n function clone$2(a) {\n var out = new ARRAY_TYPE(3);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n return out;\n }\n function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n return out;\n }\n function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n return out;\n }\n function scale$1(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n return out;\n }\n function normalize(out, a) {\n var x = a[0];\n var y = a[1];\n var z = a[2];\n var len = x * x + y * y + z * z;\n if (len > 0) {\n len = 1 / Math.sqrt(len);\n }\n out[0] = a[0] * len;\n out[1] = a[1] * len;\n out[2] = a[2] * len;\n return out;\n }\n function dot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n }\n function cross(out, a, b) {\n var ax = a[0], ay = a[1], az = a[2];\n var bx = b[0], by = b[1], bz = b[2];\n out[0] = ay * bz - az * by;\n out[1] = az * bx - ax * bz;\n out[2] = ax * by - ay * bx;\n return out;\n }\n function transformMat3(out, a, m) {\n var x = a[0], y = a[1], z = a[2];\n out[0] = x * m[0] + y * m[3] + z * m[6];\n out[1] = x * m[1] + y * m[4] + z * m[7];\n out[2] = x * m[2] + y * m[5] + z * m[8];\n return out;\n }\n var sub = subtract;\n var forEach = function() {\n var vec = create$3();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 3;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n }\n return a;\n };\n }();\n function create$4() {\n var out = new ARRAY_TYPE(4);\n if (ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n }\n return out;\n }\n function scale$2(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n return out;\n }\n function dot$1(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];\n }\n function transformMat4(out, a, m) {\n var x = a[0], y = a[1], z = a[2], w = a[3];\n out[0] = m[0] * x + m[4] * y + m[8] * z + m[12] * w;\n out[1] = m[1] * x + m[5] * y + m[9] * z + m[13] * w;\n out[2] = m[2] * x + m[6] * y + m[10] * z + m[14] * w;\n out[3] = m[3] * x + m[7] * y + m[11] * z + m[15] * w;\n return out;\n }\n var forEach$1 = function() {\n var vec = create$4();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 4;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n vec[2] = a[i + 2];\n vec[3] = a[i + 3];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n a[i + 2] = vec[2];\n a[i + 3] = vec[3];\n }\n return a;\n };\n }();\n function create$5() {\n var out = new ARRAY_TYPE(2);\n if (ARRAY_TYPE != Float32Array) {\n out[0] = 0;\n out[1] = 0;\n }\n return out;\n }\n function squaredLength(a) {\n var x = a[0], y = a[1];\n return x * x + y * y;\n }\n var sqrLen = squaredLength;\n var forEach$2 = function() {\n var vec = create$5();\n return function(a, stride, offset, count, fn, arg) {\n var i, l;\n if (!stride) {\n stride = 2;\n }\n if (!offset) {\n offset = 0;\n }\n if (count) {\n l = Math.min(count * stride + offset, a.length);\n } else {\n l = a.length;\n }\n for (i = offset; i < l; i += stride) {\n vec[0] = a[i];\n vec[1] = a[i + 1];\n fn(vec, vec, arg);\n a[i] = vec[0];\n a[i + 1] = vec[1];\n }\n return a;\n };\n }();\n var CircleStyleLayer = function(StyleLayer2) {\n function CircleStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties);\n }\n if (StyleLayer2)\n CircleStyleLayer2.__proto__ = StyleLayer2;\n CircleStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n CircleStyleLayer2.prototype.constructor = CircleStyleLayer2;\n CircleStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new CircleBucket(parameters);\n };\n CircleStyleLayer2.prototype.queryRadius = function queryRadius(bucket) {\n var circleBucket = bucket;\n return getMaximumPaintValue(\"circle-radius\", this, circleBucket) + getMaximumPaintValue(\"circle-stroke-width\", this, circleBucket) + translateDistance(this.paint.get(\"circle-translate\"));\n };\n CircleStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits, pixelPosMatrix) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"circle-translate\"), this.paint.get(\"circle-translate-anchor\"), transform.angle, pixelsToTileUnits);\n var radius = this.paint.get(\"circle-radius\").evaluate(feature, featureState);\n var stroke = this.paint.get(\"circle-stroke-width\").evaluate(feature, featureState);\n var size = radius + stroke;\n var alignWithMap = this.paint.get(\"circle-pitch-alignment\") === \"map\";\n var transformedPolygon = alignWithMap ? translatedPolygon : projectQueryGeometry(translatedPolygon, pixelPosMatrix);\n var transformedSize = alignWithMap ? size * pixelsToTileUnits : size;\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var ring = list$1[i$1];\n for (var i = 0, list = ring; i < list.length; i += 1) {\n var point = list[i];\n var transformedPoint = alignWithMap ? point : projectPoint(point, pixelPosMatrix);\n var adjustedSize = transformedSize;\n var projectedCenter = transformMat4([], [\n point.x,\n point.y,\n 0,\n 1\n ], pixelPosMatrix);\n if (this.paint.get(\"circle-pitch-scale\") === \"viewport\" && this.paint.get(\"circle-pitch-alignment\") === \"map\") {\n adjustedSize *= projectedCenter[3] / transform.cameraToCenterDistance;\n } else if (this.paint.get(\"circle-pitch-scale\") === \"map\" && this.paint.get(\"circle-pitch-alignment\") === \"viewport\") {\n adjustedSize *= transform.cameraToCenterDistance / projectedCenter[3];\n }\n if (polygonIntersectsBufferedPoint(transformedPolygon, transformedPoint, adjustedSize)) {\n return true;\n }\n }\n }\n return false;\n };\n return CircleStyleLayer2;\n }(StyleLayer);\n function projectPoint(p, pixelPosMatrix) {\n var point = transformMat4([], [\n p.x,\n p.y,\n 0,\n 1\n ], pixelPosMatrix);\n return new pointGeometry(point[0] / point[3], point[1] / point[3]);\n }\n function projectQueryGeometry(queryGeometry, pixelPosMatrix) {\n return queryGeometry.map(function(p) {\n return projectPoint(p, pixelPosMatrix);\n });\n }\n var HeatmapBucket = function(CircleBucket2) {\n function HeatmapBucket2() {\n CircleBucket2.apply(this, arguments);\n }\n if (CircleBucket2)\n HeatmapBucket2.__proto__ = CircleBucket2;\n HeatmapBucket2.prototype = Object.create(CircleBucket2 && CircleBucket2.prototype);\n HeatmapBucket2.prototype.constructor = HeatmapBucket2;\n return HeatmapBucket2;\n }(CircleBucket);\n register(\"HeatmapBucket\", HeatmapBucket, { omit: [\"layers\"] });\n function createImage(image, ref, channels, data) {\n var width = ref.width;\n var height = ref.height;\n if (!data) {\n data = new Uint8Array(width * height * channels);\n } else if (data instanceof Uint8ClampedArray) {\n data = new Uint8Array(data.buffer);\n } else if (data.length !== width * height * channels) {\n throw new RangeError(\"mismatched image size\");\n }\n image.width = width;\n image.height = height;\n image.data = data;\n return image;\n }\n function resizeImage(image, ref, channels) {\n var width = ref.width;\n var height = ref.height;\n if (width === image.width && height === image.height) {\n return;\n }\n var newImage = createImage({}, {\n width,\n height\n }, channels);\n copyImage(image, newImage, {\n x: 0,\n y: 0\n }, {\n x: 0,\n y: 0\n }, {\n width: Math.min(image.width, width),\n height: Math.min(image.height, height)\n }, channels);\n image.width = width;\n image.height = height;\n image.data = newImage.data;\n }\n function copyImage(srcImg, dstImg, srcPt, dstPt, size, channels) {\n if (size.width === 0 || size.height === 0) {\n return dstImg;\n }\n if (size.width > srcImg.width || size.height > srcImg.height || srcPt.x > srcImg.width - size.width || srcPt.y > srcImg.height - size.height) {\n throw new RangeError(\"out of range source coordinates for image copy\");\n }\n if (size.width > dstImg.width || size.height > dstImg.height || dstPt.x > dstImg.width - size.width || dstPt.y > dstImg.height - size.height) {\n throw new RangeError(\"out of range destination coordinates for image copy\");\n }\n var srcData = srcImg.data;\n var dstData = dstImg.data;\n for (var y = 0; y < size.height; y++) {\n var srcOffset = ((srcPt.y + y) * srcImg.width + srcPt.x) * channels;\n var dstOffset = ((dstPt.y + y) * dstImg.width + dstPt.x) * channels;\n for (var i = 0; i < size.width * channels; i++) {\n dstData[dstOffset + i] = srcData[srcOffset + i];\n }\n }\n return dstImg;\n }\n var AlphaImage = function AlphaImage2(size, data) {\n createImage(this, size, 1, data);\n };\n AlphaImage.prototype.resize = function resize(size) {\n resizeImage(this, size, 1);\n };\n AlphaImage.prototype.clone = function clone2() {\n return new AlphaImage({\n width: this.width,\n height: this.height\n }, new Uint8Array(this.data));\n };\n AlphaImage.copy = function copy(srcImg, dstImg, srcPt, dstPt, size) {\n copyImage(srcImg, dstImg, srcPt, dstPt, size, 1);\n };\n var RGBAImage = function RGBAImage2(size, data) {\n createImage(this, size, 4, data);\n };\n RGBAImage.prototype.resize = function resize(size) {\n resizeImage(this, size, 4);\n };\n RGBAImage.prototype.replace = function replace(data, copy) {\n if (copy) {\n this.data.set(data);\n } else if (data instanceof Uint8ClampedArray) {\n this.data = new Uint8Array(data.buffer);\n } else {\n this.data = data;\n }\n };\n RGBAImage.prototype.clone = function clone2() {\n return new RGBAImage({\n width: this.width,\n height: this.height\n }, new Uint8Array(this.data));\n };\n RGBAImage.copy = function copy(srcImg, dstImg, srcPt, dstPt, size) {\n copyImage(srcImg, dstImg, srcPt, dstPt, size, 4);\n };\n register(\"AlphaImage\", AlphaImage);\n register(\"RGBAImage\", RGBAImage);\n var paint$2 = new Properties({\n \"heatmap-radius\": new DataDrivenProperty(spec[\"paint_heatmap\"][\"heatmap-radius\"]),\n \"heatmap-weight\": new DataDrivenProperty(spec[\"paint_heatmap\"][\"heatmap-weight\"]),\n \"heatmap-intensity\": new DataConstantProperty(spec[\"paint_heatmap\"][\"heatmap-intensity\"]),\n \"heatmap-color\": new ColorRampProperty(spec[\"paint_heatmap\"][\"heatmap-color\"]),\n \"heatmap-opacity\": new DataConstantProperty(spec[\"paint_heatmap\"][\"heatmap-opacity\"])\n });\n var properties$1 = { paint: paint$2 };\n function renderColorRamp(params) {\n var evaluationGlobals = {};\n var width = params.resolution || 256;\n var height = params.clips ? params.clips.length : 1;\n var image = params.image || new RGBAImage({\n width,\n height\n });\n var renderPixel = function(stride2, index, progress2) {\n evaluationGlobals[params.evaluationKey] = progress2;\n var pxColor = params.expression.evaluate(evaluationGlobals);\n image.data[stride2 + index + 0] = Math.floor(pxColor.r * 255 / pxColor.a);\n image.data[stride2 + index + 1] = Math.floor(pxColor.g * 255 / pxColor.a);\n image.data[stride2 + index + 2] = Math.floor(pxColor.b * 255 / pxColor.a);\n image.data[stride2 + index + 3] = Math.floor(pxColor.a * 255);\n };\n if (!params.clips) {\n for (var i = 0, j = 0; i < width; i++, j += 4) {\n var progress = i / (width - 1);\n renderPixel(0, j, progress);\n }\n } else {\n for (var clip = 0, stride = 0; clip < height; ++clip, stride += width * 4) {\n for (var i$1 = 0, j$1 = 0; i$1 < width; i$1++, j$1 += 4) {\n var progress$1 = i$1 / (width - 1);\n var ref = params.clips[clip];\n var start = ref.start;\n var end = ref.end;\n var evaluationProgress = start * (1 - progress$1) + end * progress$1;\n renderPixel(stride, j$1, evaluationProgress);\n }\n }\n }\n return image;\n }\n var HeatmapStyleLayer = function(StyleLayer2) {\n function HeatmapStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$1);\n this._updateColorRamp();\n }\n if (StyleLayer2)\n HeatmapStyleLayer2.__proto__ = StyleLayer2;\n HeatmapStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n HeatmapStyleLayer2.prototype.constructor = HeatmapStyleLayer2;\n HeatmapStyleLayer2.prototype.createBucket = function createBucket(options) {\n return new HeatmapBucket(options);\n };\n HeatmapStyleLayer2.prototype._handleSpecialPaintPropertyUpdate = function _handleSpecialPaintPropertyUpdate(name3) {\n if (name3 === \"heatmap-color\") {\n this._updateColorRamp();\n }\n };\n HeatmapStyleLayer2.prototype._updateColorRamp = function _updateColorRamp() {\n var expression2 = this._transitionablePaint._values[\"heatmap-color\"].value.expression;\n this.colorRamp = renderColorRamp({\n expression: expression2,\n evaluationKey: \"heatmapDensity\",\n image: this.colorRamp\n });\n this.colorRampTexture = null;\n };\n HeatmapStyleLayer2.prototype.resize = function resize() {\n if (this.heatmapFbo) {\n this.heatmapFbo.destroy();\n this.heatmapFbo = null;\n }\n };\n HeatmapStyleLayer2.prototype.queryRadius = function queryRadius() {\n return 0;\n };\n HeatmapStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature() {\n return false;\n };\n HeatmapStyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return this.paint.get(\"heatmap-opacity\") !== 0 && this.visibility !== \"none\";\n };\n return HeatmapStyleLayer2;\n }(StyleLayer);\n var paint$3 = new Properties({\n \"hillshade-illumination-direction\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-illumination-direction\"]),\n \"hillshade-illumination-anchor\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-illumination-anchor\"]),\n \"hillshade-exaggeration\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-exaggeration\"]),\n \"hillshade-shadow-color\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-shadow-color\"]),\n \"hillshade-highlight-color\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-highlight-color\"]),\n \"hillshade-accent-color\": new DataConstantProperty(spec[\"paint_hillshade\"][\"hillshade-accent-color\"])\n });\n var properties$2 = { paint: paint$3 };\n var HillshadeStyleLayer = function(StyleLayer2) {\n function HillshadeStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$2);\n }\n if (StyleLayer2)\n HillshadeStyleLayer2.__proto__ = StyleLayer2;\n HillshadeStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n HillshadeStyleLayer2.prototype.constructor = HillshadeStyleLayer2;\n HillshadeStyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return this.paint.get(\"hillshade-exaggeration\") !== 0 && this.visibility !== \"none\";\n };\n return HillshadeStyleLayer2;\n }(StyleLayer);\n var layout$3 = createLayout([{\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n }], 4);\n var members$1 = layout$3.members;\n var earcut_1 = earcut;\n var default_1 = earcut;\n function earcut(data, holeIndices, dim) {\n dim = dim || 2;\n var hasHoles = holeIndices && holeIndices.length, outerLen = hasHoles ? holeIndices[0] * dim : data.length, outerNode = linkedList(data, 0, outerLen, dim, true), triangles = [];\n if (!outerNode || outerNode.next === outerNode.prev) {\n return triangles;\n }\n var minX, minY, maxX, maxY, x, y, invSize;\n if (hasHoles) {\n outerNode = eliminateHoles(data, holeIndices, outerNode, dim);\n }\n if (data.length > 80 * dim) {\n minX = maxX = data[0];\n minY = maxY = data[1];\n for (var i = dim; i < outerLen; i += dim) {\n x = data[i];\n y = data[i + 1];\n if (x < minX) {\n minX = x;\n }\n if (y < minY) {\n minY = y;\n }\n if (x > maxX) {\n maxX = x;\n }\n if (y > maxY) {\n maxY = y;\n }\n }\n invSize = Math.max(maxX - minX, maxY - minY);\n invSize = invSize !== 0 ? 1 / invSize : 0;\n }\n earcutLinked(outerNode, triangles, dim, minX, minY, invSize);\n return triangles;\n }\n function linkedList(data, start, end, dim, clockwise) {\n var i, last;\n if (clockwise === signedArea(data, start, end, dim) > 0) {\n for (i = start; i < end; i += dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n } else {\n for (i = end - dim; i >= start; i -= dim) {\n last = insertNode(i, data[i], data[i + 1], last);\n }\n }\n if (last && equals(last, last.next)) {\n removeNode(last);\n last = last.next;\n }\n return last;\n }\n function filterPoints(start, end) {\n if (!start) {\n return start;\n }\n if (!end) {\n end = start;\n }\n var p = start, again;\n do {\n again = false;\n if (!p.steiner && (equals(p, p.next) || area(p.prev, p, p.next) === 0)) {\n removeNode(p);\n p = end = p.prev;\n if (p === p.next) {\n break;\n }\n again = true;\n } else {\n p = p.next;\n }\n } while (again || p !== end);\n return end;\n }\n function earcutLinked(ear, triangles, dim, minX, minY, invSize, pass) {\n if (!ear) {\n return;\n }\n if (!pass && invSize) {\n indexCurve(ear, minX, minY, invSize);\n }\n var stop = ear, prev, next;\n while (ear.prev !== ear.next) {\n prev = ear.prev;\n next = ear.next;\n if (invSize ? isEarHashed(ear, minX, minY, invSize) : isEar(ear)) {\n triangles.push(prev.i / dim);\n triangles.push(ear.i / dim);\n triangles.push(next.i / dim);\n removeNode(ear);\n ear = next.next;\n stop = next.next;\n continue;\n }\n ear = next;\n if (ear === stop) {\n if (!pass) {\n earcutLinked(filterPoints(ear), triangles, dim, minX, minY, invSize, 1);\n } else if (pass === 1) {\n ear = cureLocalIntersections(filterPoints(ear), triangles, dim);\n earcutLinked(ear, triangles, dim, minX, minY, invSize, 2);\n } else if (pass === 2) {\n splitEarcut(ear, triangles, dim, minX, minY, invSize);\n }\n break;\n }\n }\n }\n function isEar(ear) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) {\n return false;\n }\n var p = ear.next.next;\n while (p !== ear.prev) {\n if (pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {\n return false;\n }\n p = p.next;\n }\n return true;\n }\n function isEarHashed(ear, minX, minY, invSize) {\n var a = ear.prev, b = ear, c = ear.next;\n if (area(a, b, c) >= 0) {\n return false;\n }\n var minTX = a.x < b.x ? a.x < c.x ? a.x : c.x : b.x < c.x ? b.x : c.x, minTY = a.y < b.y ? a.y < c.y ? a.y : c.y : b.y < c.y ? b.y : c.y, maxTX = a.x > b.x ? a.x > c.x ? a.x : c.x : b.x > c.x ? b.x : c.x, maxTY = a.y > b.y ? a.y > c.y ? a.y : c.y : b.y > c.y ? b.y : c.y;\n var minZ = zOrder(minTX, minTY, minX, minY, invSize), maxZ = zOrder(maxTX, maxTY, minX, minY, invSize);\n var p = ear.prevZ, n = ear.nextZ;\n while (p && p.z >= minZ && n && n.z <= maxZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {\n return false;\n }\n p = p.prevZ;\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) {\n return false;\n }\n n = n.nextZ;\n }\n while (p && p.z >= minZ) {\n if (p !== ear.prev && p !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, p.x, p.y) && area(p.prev, p, p.next) >= 0) {\n return false;\n }\n p = p.prevZ;\n }\n while (n && n.z <= maxZ) {\n if (n !== ear.prev && n !== ear.next && pointInTriangle(a.x, a.y, b.x, b.y, c.x, c.y, n.x, n.y) && area(n.prev, n, n.next) >= 0) {\n return false;\n }\n n = n.nextZ;\n }\n return true;\n }\n function cureLocalIntersections(start, triangles, dim) {\n var p = start;\n do {\n var a = p.prev, b = p.next.next;\n if (!equals(a, b) && intersects(a, p, p.next, b) && locallyInside(a, b) && locallyInside(b, a)) {\n triangles.push(a.i / dim);\n triangles.push(p.i / dim);\n triangles.push(b.i / dim);\n removeNode(p);\n removeNode(p.next);\n p = start = b;\n }\n p = p.next;\n } while (p !== start);\n return filterPoints(p);\n }\n function splitEarcut(start, triangles, dim, minX, minY, invSize) {\n var a = start;\n do {\n var b = a.next.next;\n while (b !== a.prev) {\n if (a.i !== b.i && isValidDiagonal(a, b)) {\n var c = splitPolygon(a, b);\n a = filterPoints(a, a.next);\n c = filterPoints(c, c.next);\n earcutLinked(a, triangles, dim, minX, minY, invSize);\n earcutLinked(c, triangles, dim, minX, minY, invSize);\n return;\n }\n b = b.next;\n }\n a = a.next;\n } while (a !== start);\n }\n function eliminateHoles(data, holeIndices, outerNode, dim) {\n var queue = [], i, len, start, end, list;\n for (i = 0, len = holeIndices.length; i < len; i++) {\n start = holeIndices[i] * dim;\n end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n list = linkedList(data, start, end, dim, false);\n if (list === list.next) {\n list.steiner = true;\n }\n queue.push(getLeftmost(list));\n }\n queue.sort(compareX);\n for (i = 0; i < queue.length; i++) {\n eliminateHole(queue[i], outerNode);\n outerNode = filterPoints(outerNode, outerNode.next);\n }\n return outerNode;\n }\n function compareX(a, b) {\n return a.x - b.x;\n }\n function eliminateHole(hole, outerNode) {\n outerNode = findHoleBridge(hole, outerNode);\n if (outerNode) {\n var b = splitPolygon(outerNode, hole);\n filterPoints(outerNode, outerNode.next);\n filterPoints(b, b.next);\n }\n }\n function findHoleBridge(hole, outerNode) {\n var p = outerNode, hx = hole.x, hy = hole.y, qx = -Infinity, m;\n do {\n if (hy <= p.y && hy >= p.next.y && p.next.y !== p.y) {\n var x = p.x + (hy - p.y) * (p.next.x - p.x) / (p.next.y - p.y);\n if (x <= hx && x > qx) {\n qx = x;\n if (x === hx) {\n if (hy === p.y) {\n return p;\n }\n if (hy === p.next.y) {\n return p.next;\n }\n }\n m = p.x < p.next.x ? p : p.next;\n }\n }\n p = p.next;\n } while (p !== outerNode);\n if (!m) {\n return null;\n }\n if (hx === qx) {\n return m;\n }\n var stop = m, mx = m.x, my = m.y, tanMin = Infinity, tan;\n p = m;\n do {\n if (hx >= p.x && p.x >= mx && hx !== p.x && pointInTriangle(hy < my ? hx : qx, hy, mx, my, hy < my ? qx : hx, hy, p.x, p.y)) {\n tan = Math.abs(hy - p.y) / (hx - p.x);\n if (locallyInside(p, hole) && (tan < tanMin || tan === tanMin && (p.x > m.x || p.x === m.x && sectorContainsSector(m, p)))) {\n m = p;\n tanMin = tan;\n }\n }\n p = p.next;\n } while (p !== stop);\n return m;\n }\n function sectorContainsSector(m, p) {\n return area(m.prev, m, p.prev) < 0 && area(p.next, m, m.next) < 0;\n }\n function indexCurve(start, minX, minY, invSize) {\n var p = start;\n do {\n if (p.z === null) {\n p.z = zOrder(p.x, p.y, minX, minY, invSize);\n }\n p.prevZ = p.prev;\n p.nextZ = p.next;\n p = p.next;\n } while (p !== start);\n p.prevZ.nextZ = null;\n p.prevZ = null;\n sortLinked(p);\n }\n function sortLinked(list) {\n var i, p, q, e, tail, numMerges, pSize, qSize, inSize = 1;\n do {\n p = list;\n list = null;\n tail = null;\n numMerges = 0;\n while (p) {\n numMerges++;\n q = p;\n pSize = 0;\n for (i = 0; i < inSize; i++) {\n pSize++;\n q = q.nextZ;\n if (!q) {\n break;\n }\n }\n qSize = inSize;\n while (pSize > 0 || qSize > 0 && q) {\n if (pSize !== 0 && (qSize === 0 || !q || p.z <= q.z)) {\n e = p;\n p = p.nextZ;\n pSize--;\n } else {\n e = q;\n q = q.nextZ;\n qSize--;\n }\n if (tail) {\n tail.nextZ = e;\n } else {\n list = e;\n }\n e.prevZ = tail;\n tail = e;\n }\n p = q;\n }\n tail.nextZ = null;\n inSize *= 2;\n } while (numMerges > 1);\n return list;\n }\n function zOrder(x, y, minX, minY, invSize) {\n x = 32767 * (x - minX) * invSize;\n y = 32767 * (y - minY) * invSize;\n x = (x | x << 8) & 16711935;\n x = (x | x << 4) & 252645135;\n x = (x | x << 2) & 858993459;\n x = (x | x << 1) & 1431655765;\n y = (y | y << 8) & 16711935;\n y = (y | y << 4) & 252645135;\n y = (y | y << 2) & 858993459;\n y = (y | y << 1) & 1431655765;\n return x | y << 1;\n }\n function getLeftmost(start) {\n var p = start, leftmost = start;\n do {\n if (p.x < leftmost.x || p.x === leftmost.x && p.y < leftmost.y) {\n leftmost = p;\n }\n p = p.next;\n } while (p !== start);\n return leftmost;\n }\n function pointInTriangle(ax, ay, bx, by, cx, cy, px, py) {\n return (cx - px) * (ay - py) - (ax - px) * (cy - py) >= 0 && (ax - px) * (by - py) - (bx - px) * (ay - py) >= 0 && (bx - px) * (cy - py) - (cx - px) * (by - py) >= 0;\n }\n function isValidDiagonal(a, b) {\n return a.next.i !== b.i && a.prev.i !== b.i && !intersectsPolygon(a, b) && (locallyInside(a, b) && locallyInside(b, a) && middleInside(a, b) && (area(a.prev, a, b.prev) || area(a, b.prev, b)) || equals(a, b) && area(a.prev, a, a.next) > 0 && area(b.prev, b, b.next) > 0);\n }\n function area(p, q, r) {\n return (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);\n }\n function equals(p1, p2) {\n return p1.x === p2.x && p1.y === p2.y;\n }\n function intersects(p1, q1, p2, q2) {\n var o1 = sign(area(p1, q1, p2));\n var o2 = sign(area(p1, q1, q2));\n var o3 = sign(area(p2, q2, p1));\n var o4 = sign(area(p2, q2, q1));\n if (o1 !== o2 && o3 !== o4) {\n return true;\n }\n if (o1 === 0 && onSegment(p1, p2, q1)) {\n return true;\n }\n if (o2 === 0 && onSegment(p1, q2, q1)) {\n return true;\n }\n if (o3 === 0 && onSegment(p2, p1, q2)) {\n return true;\n }\n if (o4 === 0 && onSegment(p2, q1, q2)) {\n return true;\n }\n return false;\n }\n function onSegment(p, q, r) {\n return q.x <= Math.max(p.x, r.x) && q.x >= Math.min(p.x, r.x) && q.y <= Math.max(p.y, r.y) && q.y >= Math.min(p.y, r.y);\n }\n function sign(num) {\n return num > 0 ? 1 : num < 0 ? -1 : 0;\n }\n function intersectsPolygon(a, b) {\n var p = a;\n do {\n if (p.i !== a.i && p.next.i !== a.i && p.i !== b.i && p.next.i !== b.i && intersects(p, p.next, a, b)) {\n return true;\n }\n p = p.next;\n } while (p !== a);\n return false;\n }\n function locallyInside(a, b) {\n return area(a.prev, a, a.next) < 0 ? area(a, b, a.next) >= 0 && area(a, a.prev, b) >= 0 : area(a, b, a.prev) < 0 || area(a, a.next, b) < 0;\n }\n function middleInside(a, b) {\n var p = a, inside = false, px = (a.x + b.x) / 2, py = (a.y + b.y) / 2;\n do {\n if (p.y > py !== p.next.y > py && p.next.y !== p.y && px < (p.next.x - p.x) * (py - p.y) / (p.next.y - p.y) + p.x) {\n inside = !inside;\n }\n p = p.next;\n } while (p !== a);\n return inside;\n }\n function splitPolygon(a, b) {\n var a2 = new Node(a.i, a.x, a.y), b2 = new Node(b.i, b.x, b.y), an = a.next, bp = b.prev;\n a.next = b;\n b.prev = a;\n a2.next = an;\n an.prev = a2;\n b2.next = a2;\n a2.prev = b2;\n bp.next = b2;\n b2.prev = bp;\n return b2;\n }\n function insertNode(i, x, y, last) {\n var p = new Node(i, x, y);\n if (!last) {\n p.prev = p;\n p.next = p;\n } else {\n p.next = last.next;\n p.prev = last;\n last.next.prev = p;\n last.next = p;\n }\n return p;\n }\n function removeNode(p) {\n p.next.prev = p.prev;\n p.prev.next = p.next;\n if (p.prevZ) {\n p.prevZ.nextZ = p.nextZ;\n }\n if (p.nextZ) {\n p.nextZ.prevZ = p.prevZ;\n }\n }\n function Node(i, x, y) {\n this.i = i;\n this.x = x;\n this.y = y;\n this.prev = null;\n this.next = null;\n this.z = null;\n this.prevZ = null;\n this.nextZ = null;\n this.steiner = false;\n }\n earcut.deviation = function(data, holeIndices, dim, triangles) {\n var hasHoles = holeIndices && holeIndices.length;\n var outerLen = hasHoles ? holeIndices[0] * dim : data.length;\n var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));\n if (hasHoles) {\n for (var i = 0, len = holeIndices.length; i < len; i++) {\n var start = holeIndices[i] * dim;\n var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;\n polygonArea -= Math.abs(signedArea(data, start, end, dim));\n }\n }\n var trianglesArea = 0;\n for (i = 0; i < triangles.length; i += 3) {\n var a = triangles[i] * dim;\n var b = triangles[i + 1] * dim;\n var c = triangles[i + 2] * dim;\n trianglesArea += Math.abs((data[a] - data[c]) * (data[b + 1] - data[a + 1]) - (data[a] - data[b]) * (data[c + 1] - data[a + 1]));\n }\n return polygonArea === 0 && trianglesArea === 0 ? 0 : Math.abs((trianglesArea - polygonArea) / polygonArea);\n };\n function signedArea(data, start, end, dim) {\n var sum = 0;\n for (var i = start, j = end - dim; i < end; i += dim) {\n sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);\n j = i;\n }\n return sum;\n }\n earcut.flatten = function(data) {\n var dim = data[0][0].length, result = {\n vertices: [],\n holes: [],\n dimensions: dim\n }, holeIndex = 0;\n for (var i = 0; i < data.length; i++) {\n for (var j = 0; j < data[i].length; j++) {\n for (var d = 0; d < dim; d++) {\n result.vertices.push(data[i][j][d]);\n }\n }\n if (i > 0) {\n holeIndex += data[i - 1].length;\n result.holes.push(holeIndex);\n }\n }\n return result;\n };\n earcut_1.default = default_1;\n function quickselect(arr, k, left, right, compare2) {\n quickselectStep(arr, k, left || 0, right || arr.length - 1, compare2 || defaultCompare);\n }\n function quickselectStep(arr, k, left, right, compare2) {\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselectStep(arr, k, newLeft, newRight, compare2);\n }\n var t = arr[k];\n var i = left;\n var j = right;\n swap$1(arr, left, k);\n if (compare2(arr[right], t) > 0) {\n swap$1(arr, left, right);\n }\n while (i < j) {\n swap$1(arr, i, j);\n i++;\n j--;\n while (compare2(arr[i], t) < 0) {\n i++;\n }\n while (compare2(arr[j], t) > 0) {\n j--;\n }\n }\n if (compare2(arr[left], t) === 0) {\n swap$1(arr, left, j);\n } else {\n j++;\n swap$1(arr, j, right);\n }\n if (j <= k) {\n left = j + 1;\n }\n if (k <= j) {\n right = j - 1;\n }\n }\n }\n function swap$1(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n function defaultCompare(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n function classifyRings(rings, maxRings) {\n var len = rings.length;\n if (len <= 1) {\n return [rings];\n }\n var polygons = [];\n var polygon, ccw;\n for (var i = 0; i < len; i++) {\n var area2 = calculateSignedArea(rings[i]);\n if (area2 === 0) {\n continue;\n }\n rings[i].area = Math.abs(area2);\n if (ccw === void 0) {\n ccw = area2 < 0;\n }\n if (ccw === area2 < 0) {\n if (polygon) {\n polygons.push(polygon);\n }\n polygon = [rings[i]];\n } else {\n polygon.push(rings[i]);\n }\n }\n if (polygon) {\n polygons.push(polygon);\n }\n if (maxRings > 1) {\n for (var j = 0; j < polygons.length; j++) {\n if (polygons[j].length <= maxRings) {\n continue;\n }\n quickselect(polygons[j], maxRings, 1, polygons[j].length - 1, compareAreas);\n polygons[j] = polygons[j].slice(0, maxRings);\n }\n }\n return polygons;\n }\n function compareAreas(a, b) {\n return b.area - a.area;\n }\n function hasPattern(type, layers, options) {\n var patterns = options.patternDependencies;\n var hasPattern2 = false;\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n var patternProperty = layer2.paint.get(type + \"-pattern\");\n if (!patternProperty.isConstant()) {\n hasPattern2 = true;\n }\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern) {\n hasPattern2 = true;\n patterns[constantPattern.to] = true;\n patterns[constantPattern.from] = true;\n }\n }\n return hasPattern2;\n }\n function addPatternDependencies(type, layers, patternFeature, zoom, options) {\n var patterns = options.patternDependencies;\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n var patternProperty = layer2.paint.get(type + \"-pattern\");\n var patternPropertyValue = patternProperty.value;\n if (patternPropertyValue.kind !== \"constant\") {\n var min = patternPropertyValue.evaluate({ zoom: zoom - 1 }, patternFeature, {}, options.availableImages);\n var mid = patternPropertyValue.evaluate({ zoom }, patternFeature, {}, options.availableImages);\n var max = patternPropertyValue.evaluate({ zoom: zoom + 1 }, patternFeature, {}, options.availableImages);\n min = min && min.name ? min.name : min;\n mid = mid && mid.name ? mid.name : mid;\n max = max && max.name ? max.name : max;\n patterns[min] = true;\n patterns[mid] = true;\n patterns[max] = true;\n patternFeature.patterns[layer2.id] = {\n min,\n mid,\n max\n };\n }\n }\n return patternFeature;\n }\n var EARCUT_MAX_RINGS = 500;\n var FillBucket = function FillBucket2(options) {\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.patternFeatures = [];\n this.layoutVertexArray = new StructArrayLayout2i4();\n this.indexArray = new StructArrayLayout3ui6();\n this.indexArray2 = new StructArrayLayout2ui4();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.segments = new SegmentVector();\n this.segments2 = new SegmentVector();\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n FillBucket.prototype.populate = function populate(features, options, canonical) {\n this.hasPattern = hasPattern(\"fill\", this.layers, options);\n var fillSortKey = this.layers[0].layout.get(\"fill-sort-key\");\n var bucketFeatures = [];\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var sortKey = fillSortKey ? fillSortKey.evaluate(evaluationFeature, {}, canonical, options.availableImages) : void 0;\n var bucketFeature = {\n id: id2,\n properties: feature.properties,\n type: feature.type,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n patterns: {},\n sortKey\n };\n bucketFeatures.push(bucketFeature);\n }\n if (fillSortKey) {\n bucketFeatures.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$1 = 0, list$1 = bucketFeatures; i$1 < list$1.length; i$1 += 1) {\n var bucketFeature$1 = list$1[i$1];\n var ref$1 = bucketFeature$1;\n var geometry = ref$1.geometry;\n var index$1 = ref$1.index;\n var sourceLayerIndex$1 = ref$1.sourceLayerIndex;\n if (this.hasPattern) {\n var patternFeature = addPatternDependencies(\"fill\", this.layers, bucketFeature$1, this.zoom, options);\n this.patternFeatures.push(patternFeature);\n } else {\n this.addFeature(bucketFeature$1, geometry, index$1, canonical, {});\n }\n var feature$1 = features[index$1].feature;\n options.featureIndex.insert(feature$1, geometry, index$1, sourceLayerIndex$1, this.index);\n }\n };\n FillBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n FillBucket.prototype.addFeatures = function addFeatures(options, canonical, imagePositions) {\n for (var i = 0, list = this.patternFeatures; i < list.length; i += 1) {\n var feature = list[i];\n this.addFeature(feature, feature.geometry, feature.index, canonical, imagePositions);\n }\n };\n FillBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n FillBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n FillBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members$1);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n this.indexBuffer2 = context.createIndexBuffer(this.indexArray2);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n FillBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.indexBuffer2.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n this.segments2.destroy();\n };\n FillBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical, imagePositions) {\n for (var i$4 = 0, list$2 = classifyRings(geometry, EARCUT_MAX_RINGS); i$4 < list$2.length; i$4 += 1) {\n var polygon = list$2[i$4];\n var numVertices = 0;\n for (var i$2 = 0, list = polygon; i$2 < list.length; i$2 += 1) {\n var ring = list[i$2];\n numVertices += ring.length;\n }\n var triangleSegment = this.segments.prepareSegment(numVertices, this.layoutVertexArray, this.indexArray);\n var triangleIndex = triangleSegment.vertexLength;\n var flattened = [];\n var holeIndices = [];\n for (var i$3 = 0, list$1 = polygon; i$3 < list$1.length; i$3 += 1) {\n var ring$1 = list$1[i$3];\n if (ring$1.length === 0) {\n continue;\n }\n if (ring$1 !== polygon[0]) {\n holeIndices.push(flattened.length / 2);\n }\n var lineSegment = this.segments2.prepareSegment(ring$1.length, this.layoutVertexArray, this.indexArray2);\n var lineIndex = lineSegment.vertexLength;\n this.layoutVertexArray.emplaceBack(ring$1[0].x, ring$1[0].y);\n this.indexArray2.emplaceBack(lineIndex + ring$1.length - 1, lineIndex);\n flattened.push(ring$1[0].x);\n flattened.push(ring$1[0].y);\n for (var i = 1; i < ring$1.length; i++) {\n this.layoutVertexArray.emplaceBack(ring$1[i].x, ring$1[i].y);\n this.indexArray2.emplaceBack(lineIndex + i - 1, lineIndex + i);\n flattened.push(ring$1[i].x);\n flattened.push(ring$1[i].y);\n }\n lineSegment.vertexLength += ring$1.length;\n lineSegment.primitiveLength += ring$1.length;\n }\n var indices = earcut_1(flattened, holeIndices);\n for (var i$1 = 0; i$1 < indices.length; i$1 += 3) {\n this.indexArray.emplaceBack(triangleIndex + indices[i$1], triangleIndex + indices[i$1 + 1], triangleIndex + indices[i$1 + 2]);\n }\n triangleSegment.vertexLength += numVertices;\n triangleSegment.primitiveLength += indices.length / 3;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions, canonical);\n };\n register(\"FillBucket\", FillBucket, {\n omit: [\n \"layers\",\n \"patternFeatures\"\n ]\n });\n var layout$4 = new Properties({ \"fill-sort-key\": new DataDrivenProperty(spec[\"layout_fill\"][\"fill-sort-key\"]) });\n var paint$4 = new Properties({\n \"fill-antialias\": new DataConstantProperty(spec[\"paint_fill\"][\"fill-antialias\"]),\n \"fill-opacity\": new DataDrivenProperty(spec[\"paint_fill\"][\"fill-opacity\"]),\n \"fill-color\": new DataDrivenProperty(spec[\"paint_fill\"][\"fill-color\"]),\n \"fill-outline-color\": new DataDrivenProperty(spec[\"paint_fill\"][\"fill-outline-color\"]),\n \"fill-translate\": new DataConstantProperty(spec[\"paint_fill\"][\"fill-translate\"]),\n \"fill-translate-anchor\": new DataConstantProperty(spec[\"paint_fill\"][\"fill-translate-anchor\"]),\n \"fill-pattern\": new CrossFadedDataDrivenProperty(spec[\"paint_fill\"][\"fill-pattern\"])\n });\n var properties$3 = {\n paint: paint$4,\n layout: layout$4\n };\n var FillStyleLayer = function(StyleLayer2) {\n function FillStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$3);\n }\n if (StyleLayer2)\n FillStyleLayer2.__proto__ = StyleLayer2;\n FillStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n FillStyleLayer2.prototype.constructor = FillStyleLayer2;\n FillStyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n StyleLayer2.prototype.recalculate.call(this, parameters, availableImages);\n var outlineColor = this.paint._values[\"fill-outline-color\"];\n if (outlineColor.value.kind === \"constant\" && outlineColor.value.value === void 0) {\n this.paint._values[\"fill-outline-color\"] = this.paint._values[\"fill-color\"];\n }\n };\n FillStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new FillBucket(parameters);\n };\n FillStyleLayer2.prototype.queryRadius = function queryRadius() {\n return translateDistance(this.paint.get(\"fill-translate\"));\n };\n FillStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"fill-translate\"), this.paint.get(\"fill-translate-anchor\"), transform.angle, pixelsToTileUnits);\n return polygonIntersectsMultiPolygon(translatedPolygon, geometry);\n };\n FillStyleLayer2.prototype.isTileClipped = function isTileClipped() {\n return true;\n };\n return FillStyleLayer2;\n }(StyleLayer);\n var layout$5 = createLayout([\n {\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_normal_ed\",\n components: 4,\n type: \"Int16\"\n }\n ], 4);\n var members$2 = layout$5.members;\n var vectortilefeature = VectorTileFeature;\n function VectorTileFeature(pbf2, end, extent, keys, values2) {\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this._pbf = pbf2;\n this._geometry = -1;\n this._keys = keys;\n this._values = values2;\n pbf2.readFields(readFeature, this, end);\n }\n function readFeature(tag, feature, pbf2) {\n if (tag == 1) {\n feature.id = pbf2.readVarint();\n } else if (tag == 2) {\n readTag(pbf2, feature);\n } else if (tag == 3) {\n feature.type = pbf2.readVarint();\n } else if (tag == 4) {\n feature._geometry = pbf2.pos;\n }\n }\n function readTag(pbf2, feature) {\n var end = pbf2.readVarint() + pbf2.pos;\n while (pbf2.pos < end) {\n var key = feature._keys[pbf2.readVarint()], value = feature._values[pbf2.readVarint()];\n feature.properties[key] = value;\n }\n }\n VectorTileFeature.types = [\n \"Unknown\",\n \"Point\",\n \"LineString\",\n \"Polygon\"\n ];\n VectorTileFeature.prototype.loadGeometry = function() {\n var pbf2 = this._pbf;\n pbf2.pos = this._geometry;\n var end = pbf2.readVarint() + pbf2.pos, cmd = 1, length = 0, x = 0, y = 0, lines = [], line;\n while (pbf2.pos < end) {\n if (length <= 0) {\n var cmdLen = pbf2.readVarint();\n cmd = cmdLen & 7;\n length = cmdLen >> 3;\n }\n length--;\n if (cmd === 1 || cmd === 2) {\n x += pbf2.readSVarint();\n y += pbf2.readSVarint();\n if (cmd === 1) {\n if (line) {\n lines.push(line);\n }\n line = [];\n }\n line.push(new pointGeometry(x, y));\n } else if (cmd === 7) {\n if (line) {\n line.push(line[0].clone());\n }\n } else {\n throw new Error(\"unknown command \" + cmd);\n }\n }\n if (line) {\n lines.push(line);\n }\n return lines;\n };\n VectorTileFeature.prototype.bbox = function() {\n var pbf2 = this._pbf;\n pbf2.pos = this._geometry;\n var end = pbf2.readVarint() + pbf2.pos, cmd = 1, length = 0, x = 0, y = 0, x1 = Infinity, x2 = -Infinity, y1 = Infinity, y2 = -Infinity;\n while (pbf2.pos < end) {\n if (length <= 0) {\n var cmdLen = pbf2.readVarint();\n cmd = cmdLen & 7;\n length = cmdLen >> 3;\n }\n length--;\n if (cmd === 1 || cmd === 2) {\n x += pbf2.readSVarint();\n y += pbf2.readSVarint();\n if (x < x1) {\n x1 = x;\n }\n if (x > x2) {\n x2 = x;\n }\n if (y < y1) {\n y1 = y;\n }\n if (y > y2) {\n y2 = y;\n }\n } else if (cmd !== 7) {\n throw new Error(\"unknown command \" + cmd);\n }\n }\n return [\n x1,\n y1,\n x2,\n y2\n ];\n };\n VectorTileFeature.prototype.toGeoJSON = function(x, y, z) {\n var size = this.extent * Math.pow(2, z), x0 = this.extent * x, y0 = this.extent * y, coords = this.loadGeometry(), type = VectorTileFeature.types[this.type], i, j;\n function project(line) {\n for (var j2 = 0; j2 < line.length; j2++) {\n var p = line[j2], y2 = 180 - (p.y + y0) * 360 / size;\n line[j2] = [\n (p.x + x0) * 360 / size - 180,\n 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90\n ];\n }\n }\n switch (this.type) {\n case 1:\n var points = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n project(coords);\n break;\n case 2:\n for (i = 0; i < coords.length; i++) {\n project(coords[i]);\n }\n break;\n case 3:\n coords = classifyRings$1(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n project(coords[i][j]);\n }\n }\n break;\n }\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = \"Multi\" + type;\n }\n var result = {\n type: \"Feature\",\n geometry: {\n type,\n coordinates: coords\n },\n properties: this.properties\n };\n if (\"id\" in this) {\n result.id = this.id;\n }\n return result;\n };\n function classifyRings$1(rings) {\n var len = rings.length;\n if (len <= 1) {\n return [rings];\n }\n var polygons = [], polygon, ccw;\n for (var i = 0; i < len; i++) {\n var area2 = signedArea$1(rings[i]);\n if (area2 === 0) {\n continue;\n }\n if (ccw === void 0) {\n ccw = area2 < 0;\n }\n if (ccw === area2 < 0) {\n if (polygon) {\n polygons.push(polygon);\n }\n polygon = [rings[i]];\n } else {\n polygon.push(rings[i]);\n }\n }\n if (polygon) {\n polygons.push(polygon);\n }\n return polygons;\n }\n function signedArea$1(ring) {\n var sum = 0;\n for (var i = 0, len = ring.length, j = len - 1, p1, p2; i < len; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2.x - p1.x) * (p1.y + p2.y);\n }\n return sum;\n }\n var vectortilelayer = VectorTileLayer;\n function VectorTileLayer(pbf2, end) {\n this.version = 1;\n this.name = null;\n this.extent = 4096;\n this.length = 0;\n this._pbf = pbf2;\n this._keys = [];\n this._values = [];\n this._features = [];\n pbf2.readFields(readLayer, this, end);\n this.length = this._features.length;\n }\n function readLayer(tag, layer2, pbf2) {\n if (tag === 15) {\n layer2.version = pbf2.readVarint();\n } else if (tag === 1) {\n layer2.name = pbf2.readString();\n } else if (tag === 5) {\n layer2.extent = pbf2.readVarint();\n } else if (tag === 2) {\n layer2._features.push(pbf2.pos);\n } else if (tag === 3) {\n layer2._keys.push(pbf2.readString());\n } else if (tag === 4) {\n layer2._values.push(readValueMessage(pbf2));\n }\n }\n function readValueMessage(pbf2) {\n var value = null, end = pbf2.readVarint() + pbf2.pos;\n while (pbf2.pos < end) {\n var tag = pbf2.readVarint() >> 3;\n value = tag === 1 ? pbf2.readString() : tag === 2 ? pbf2.readFloat() : tag === 3 ? pbf2.readDouble() : tag === 4 ? pbf2.readVarint64() : tag === 5 ? pbf2.readVarint() : tag === 6 ? pbf2.readSVarint() : tag === 7 ? pbf2.readBoolean() : null;\n }\n return value;\n }\n VectorTileLayer.prototype.feature = function(i) {\n if (i < 0 || i >= this._features.length) {\n throw new Error(\"feature index out of bounds\");\n }\n this._pbf.pos = this._features[i];\n var end = this._pbf.readVarint() + this._pbf.pos;\n return new vectortilefeature(this._pbf, end, this.extent, this._keys, this._values);\n };\n var vectortile = VectorTile;\n function VectorTile(pbf2, end) {\n this.layers = pbf2.readFields(readTile, {}, end);\n }\n function readTile(tag, layers, pbf2) {\n if (tag === 3) {\n var layer2 = new vectortilelayer(pbf2, pbf2.readVarint() + pbf2.pos);\n if (layer2.length) {\n layers[layer2.name] = layer2;\n }\n }\n }\n var VectorTile$1 = vectortile;\n var VectorTileFeature$1 = vectortilefeature;\n var VectorTileLayer$1 = vectortilelayer;\n var vectorTile = {\n VectorTile: VectorTile$1,\n VectorTileFeature: VectorTileFeature$1,\n VectorTileLayer: VectorTileLayer$1\n };\n var vectorTileFeatureTypes = vectorTile.VectorTileFeature.types;\n var EARCUT_MAX_RINGS$1 = 500;\n var FACTOR = Math.pow(2, 13);\n function addVertex(vertexArray, x, y, nx, ny, nz, t, e) {\n vertexArray.emplaceBack(x, y, Math.floor(nx * FACTOR) * 2 + t, ny * FACTOR * 2, nz * FACTOR * 2, Math.round(e));\n }\n var FillExtrusionBucket = function FillExtrusionBucket2(options) {\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.layoutVertexArray = new StructArrayLayout2i4i12();\n this.indexArray = new StructArrayLayout3ui6();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.segments = new SegmentVector();\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n FillExtrusionBucket.prototype.populate = function populate(features, options, canonical) {\n this.features = [];\n this.hasPattern = hasPattern(\"fill-extrusion\", this.layers, options);\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var bucketFeature = {\n id: id2,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n properties: feature.properties,\n type: feature.type,\n patterns: {}\n };\n if (this.hasPattern) {\n this.features.push(addPatternDependencies(\"fill-extrusion\", this.layers, bucketFeature, this.zoom, options));\n } else {\n this.addFeature(bucketFeature, bucketFeature.geometry, index, canonical, {});\n }\n options.featureIndex.insert(feature, bucketFeature.geometry, index, sourceLayerIndex, this.index, true);\n }\n };\n FillExtrusionBucket.prototype.addFeatures = function addFeatures(options, canonical, imagePositions) {\n for (var i = 0, list = this.features; i < list.length; i += 1) {\n var feature = list[i];\n var geometry = feature.geometry;\n this.addFeature(feature, geometry, feature.index, canonical, imagePositions);\n }\n };\n FillExtrusionBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n FillExtrusionBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n FillExtrusionBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n FillExtrusionBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members$2);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n FillExtrusionBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n };\n FillExtrusionBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical, imagePositions) {\n for (var i$4 = 0, list$3 = classifyRings(geometry, EARCUT_MAX_RINGS$1); i$4 < list$3.length; i$4 += 1) {\n var polygon = list$3[i$4];\n var numVertices = 0;\n for (var i$1 = 0, list = polygon; i$1 < list.length; i$1 += 1) {\n var ring = list[i$1];\n numVertices += ring.length;\n }\n var segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);\n for (var i$2 = 0, list$1 = polygon; i$2 < list$1.length; i$2 += 1) {\n var ring$1 = list$1[i$2];\n if (ring$1.length === 0) {\n continue;\n }\n if (isEntirelyOutside(ring$1)) {\n continue;\n }\n var edgeDistance = 0;\n for (var p = 0; p < ring$1.length; p++) {\n var p1 = ring$1[p];\n if (p >= 1) {\n var p2 = ring$1[p - 1];\n if (!isBoundaryEdge(p1, p2)) {\n if (segment.vertexLength + 4 > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) {\n segment = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);\n }\n var perp2 = p1.sub(p2)._perp()._unit();\n var dist = p2.dist(p1);\n if (edgeDistance + dist > 32768) {\n edgeDistance = 0;\n }\n addVertex(this.layoutVertexArray, p1.x, p1.y, perp2.x, perp2.y, 0, 0, edgeDistance);\n addVertex(this.layoutVertexArray, p1.x, p1.y, perp2.x, perp2.y, 0, 1, edgeDistance);\n edgeDistance += dist;\n addVertex(this.layoutVertexArray, p2.x, p2.y, perp2.x, perp2.y, 0, 0, edgeDistance);\n addVertex(this.layoutVertexArray, p2.x, p2.y, perp2.x, perp2.y, 0, 1, edgeDistance);\n var bottomRight = segment.vertexLength;\n this.indexArray.emplaceBack(bottomRight, bottomRight + 2, bottomRight + 1);\n this.indexArray.emplaceBack(bottomRight + 1, bottomRight + 2, bottomRight + 3);\n segment.vertexLength += 4;\n segment.primitiveLength += 2;\n }\n }\n }\n }\n if (segment.vertexLength + numVertices > SegmentVector.MAX_VERTEX_ARRAY_LENGTH) {\n segment = this.segments.prepareSegment(numVertices, this.layoutVertexArray, this.indexArray);\n }\n if (vectorTileFeatureTypes[feature.type] !== \"Polygon\") {\n continue;\n }\n var flattened = [];\n var holeIndices = [];\n var triangleIndex = segment.vertexLength;\n for (var i$3 = 0, list$2 = polygon; i$3 < list$2.length; i$3 += 1) {\n var ring$2 = list$2[i$3];\n if (ring$2.length === 0) {\n continue;\n }\n if (ring$2 !== polygon[0]) {\n holeIndices.push(flattened.length / 2);\n }\n for (var i = 0; i < ring$2.length; i++) {\n var p$1 = ring$2[i];\n addVertex(this.layoutVertexArray, p$1.x, p$1.y, 0, 0, 1, 1, 0);\n flattened.push(p$1.x);\n flattened.push(p$1.y);\n }\n }\n var indices = earcut_1(flattened, holeIndices);\n for (var j = 0; j < indices.length; j += 3) {\n this.indexArray.emplaceBack(triangleIndex + indices[j], triangleIndex + indices[j + 2], triangleIndex + indices[j + 1]);\n }\n segment.primitiveLength += indices.length / 3;\n segment.vertexLength += numVertices;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions, canonical);\n };\n register(\"FillExtrusionBucket\", FillExtrusionBucket, {\n omit: [\n \"layers\",\n \"features\"\n ]\n });\n function isBoundaryEdge(p1, p2) {\n return p1.x === p2.x && (p1.x < 0 || p1.x > EXTENT$1) || p1.y === p2.y && (p1.y < 0 || p1.y > EXTENT$1);\n }\n function isEntirelyOutside(ring) {\n return ring.every(function(p) {\n return p.x < 0;\n }) || ring.every(function(p) {\n return p.x > EXTENT$1;\n }) || ring.every(function(p) {\n return p.y < 0;\n }) || ring.every(function(p) {\n return p.y > EXTENT$1;\n });\n }\n var paint$5 = new Properties({\n \"fill-extrusion-opacity\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]),\n \"fill-extrusion-color\": new DataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]),\n \"fill-extrusion-translate\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]),\n \"fill-extrusion-translate-anchor\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]),\n \"fill-extrusion-pattern\": new CrossFadedDataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]),\n \"fill-extrusion-height\": new DataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]),\n \"fill-extrusion-base\": new DataDrivenProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]),\n \"fill-extrusion-vertical-gradient\": new DataConstantProperty(spec[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"])\n });\n var properties$4 = { paint: paint$5 };\n var FillExtrusionStyleLayer = function(StyleLayer2) {\n function FillExtrusionStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$4);\n }\n if (StyleLayer2)\n FillExtrusionStyleLayer2.__proto__ = StyleLayer2;\n FillExtrusionStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n FillExtrusionStyleLayer2.prototype.constructor = FillExtrusionStyleLayer2;\n FillExtrusionStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new FillExtrusionBucket(parameters);\n };\n FillExtrusionStyleLayer2.prototype.queryRadius = function queryRadius() {\n return translateDistance(this.paint.get(\"fill-extrusion-translate\"));\n };\n FillExtrusionStyleLayer2.prototype.is3D = function is3D() {\n return true;\n };\n FillExtrusionStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits, pixelPosMatrix) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"fill-extrusion-translate\"), this.paint.get(\"fill-extrusion-translate-anchor\"), transform.angle, pixelsToTileUnits);\n var height = this.paint.get(\"fill-extrusion-height\").evaluate(feature, featureState);\n var base = this.paint.get(\"fill-extrusion-base\").evaluate(feature, featureState);\n var projectedQueryGeometry = projectQueryGeometry$1(translatedPolygon, pixelPosMatrix, transform, 0);\n var projected = projectExtrusion(geometry, base, height, pixelPosMatrix);\n var projectedBase = projected[0];\n var projectedTop = projected[1];\n return checkIntersection(projectedBase, projectedTop, projectedQueryGeometry);\n };\n return FillExtrusionStyleLayer2;\n }(StyleLayer);\n function dot$2(a, b) {\n return a.x * b.x + a.y * b.y;\n }\n function getIntersectionDistance(projectedQueryGeometry, projectedFace) {\n if (projectedQueryGeometry.length === 1) {\n var i = 0;\n var a = projectedFace[i++];\n var b;\n while (!b || a.equals(b)) {\n b = projectedFace[i++];\n if (!b) {\n return Infinity;\n }\n }\n for (; i < projectedFace.length; i++) {\n var c = projectedFace[i];\n var p = projectedQueryGeometry[0];\n var ab = b.sub(a);\n var ac = c.sub(a);\n var ap = p.sub(a);\n var dotABAB = dot$2(ab, ab);\n var dotABAC = dot$2(ab, ac);\n var dotACAC = dot$2(ac, ac);\n var dotAPAB = dot$2(ap, ab);\n var dotAPAC = dot$2(ap, ac);\n var denom = dotABAB * dotACAC - dotABAC * dotABAC;\n var v = (dotACAC * dotAPAB - dotABAC * dotAPAC) / denom;\n var w = (dotABAB * dotAPAC - dotABAC * dotAPAB) / denom;\n var u = 1 - v - w;\n var distance = a.z * u + b.z * v + c.z * w;\n if (isFinite(distance)) {\n return distance;\n }\n }\n return Infinity;\n } else {\n var closestDistance = Infinity;\n for (var i$1 = 0, list = projectedFace; i$1 < list.length; i$1 += 1) {\n var p$1 = list[i$1];\n closestDistance = Math.min(closestDistance, p$1.z);\n }\n return closestDistance;\n }\n }\n function checkIntersection(projectedBase, projectedTop, projectedQueryGeometry) {\n var closestDistance = Infinity;\n if (polygonIntersectsMultiPolygon(projectedQueryGeometry, projectedTop)) {\n closestDistance = getIntersectionDistance(projectedQueryGeometry, projectedTop[0]);\n }\n for (var r = 0; r < projectedTop.length; r++) {\n var ringTop = projectedTop[r];\n var ringBase = projectedBase[r];\n for (var p = 0; p < ringTop.length - 1; p++) {\n var topA = ringTop[p];\n var topB = ringTop[p + 1];\n var baseA = ringBase[p];\n var baseB = ringBase[p + 1];\n var face = [\n topA,\n topB,\n baseB,\n baseA,\n topA\n ];\n if (polygonIntersectsPolygon(projectedQueryGeometry, face)) {\n closestDistance = Math.min(closestDistance, getIntersectionDistance(projectedQueryGeometry, face));\n }\n }\n }\n return closestDistance === Infinity ? false : closestDistance;\n }\n function projectExtrusion(geometry, zBase, zTop, m) {\n var projectedBase = [];\n var projectedTop = [];\n var baseXZ = m[8] * zBase;\n var baseYZ = m[9] * zBase;\n var baseZZ = m[10] * zBase;\n var baseWZ = m[11] * zBase;\n var topXZ = m[8] * zTop;\n var topYZ = m[9] * zTop;\n var topZZ = m[10] * zTop;\n var topWZ = m[11] * zTop;\n for (var i$1 = 0, list$1 = geometry; i$1 < list$1.length; i$1 += 1) {\n var r = list$1[i$1];\n var ringBase = [];\n var ringTop = [];\n for (var i = 0, list = r; i < list.length; i += 1) {\n var p = list[i];\n var x = p.x;\n var y = p.y;\n var sX = m[0] * x + m[4] * y + m[12];\n var sY = m[1] * x + m[5] * y + m[13];\n var sZ = m[2] * x + m[6] * y + m[14];\n var sW = m[3] * x + m[7] * y + m[15];\n var baseX = sX + baseXZ;\n var baseY = sY + baseYZ;\n var baseZ = sZ + baseZZ;\n var baseW = sW + baseWZ;\n var topX = sX + topXZ;\n var topY = sY + topYZ;\n var topZ = sZ + topZZ;\n var topW = sW + topWZ;\n var b = new pointGeometry(baseX / baseW, baseY / baseW);\n b.z = baseZ / baseW;\n ringBase.push(b);\n var t = new pointGeometry(topX / topW, topY / topW);\n t.z = topZ / topW;\n ringTop.push(t);\n }\n projectedBase.push(ringBase);\n projectedTop.push(ringTop);\n }\n return [\n projectedBase,\n projectedTop\n ];\n }\n function projectQueryGeometry$1(queryGeometry, pixelPosMatrix, transform, z) {\n var projectedQueryGeometry = [];\n for (var i = 0, list = queryGeometry; i < list.length; i += 1) {\n var p = list[i];\n var v = [\n p.x,\n p.y,\n z,\n 1\n ];\n transformMat4(v, v, pixelPosMatrix);\n projectedQueryGeometry.push(new pointGeometry(v[0] / v[3], v[1] / v[3]));\n }\n return projectedQueryGeometry;\n }\n var lineLayoutAttributes = createLayout([\n {\n name: \"a_pos_normal\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_data\",\n components: 4,\n type: \"Uint8\"\n }\n ], 4);\n var members$3 = lineLayoutAttributes.members;\n var lineLayoutAttributesExt = createLayout([\n {\n name: \"a_uv_x\",\n components: 1,\n type: \"Float32\"\n },\n {\n name: \"a_split_index\",\n components: 1,\n type: \"Float32\"\n }\n ]);\n var members$4 = lineLayoutAttributesExt.members;\n var vectorTileFeatureTypes$1 = vectorTile.VectorTileFeature.types;\n var EXTRUDE_SCALE = 63;\n var COS_HALF_SHARP_CORNER = Math.cos(75 / 2 * (Math.PI / 180));\n var SHARP_CORNER_OFFSET = 15;\n var DEG_PER_TRIANGLE = 20;\n var LINE_DISTANCE_BUFFER_BITS = 15;\n var LINE_DISTANCE_SCALE = 1 / 2;\n var MAX_LINE_DISTANCE = Math.pow(2, LINE_DISTANCE_BUFFER_BITS - 1) / LINE_DISTANCE_SCALE;\n var LineBucket = function LineBucket2(options) {\n var this$1 = this;\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer2) {\n return layer2.id;\n });\n this.index = options.index;\n this.hasPattern = false;\n this.patternFeatures = [];\n this.lineClipsArray = [];\n this.gradients = {};\n this.layers.forEach(function(layer2) {\n this$1.gradients[layer2.id] = {};\n });\n this.layoutVertexArray = new StructArrayLayout2i4ub8();\n this.layoutVertexArray2 = new StructArrayLayout2f8();\n this.indexArray = new StructArrayLayout3ui6();\n this.programConfigurations = new ProgramConfigurationSet(options.layers, options.zoom);\n this.segments = new SegmentVector();\n this.maxLineLength = 0;\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n };\n LineBucket.prototype.populate = function populate(features, options, canonical) {\n this.hasPattern = hasPattern(\"line\", this.layers, options);\n var lineSortKey = this.layers[0].layout.get(\"line-sort-key\");\n var bucketFeatures = [];\n for (var i = 0, list = features; i < list.length; i += 1) {\n var ref = list[i];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = this.layers[0]._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!this.layers[0]._featureFilter.filter(new EvaluationParameters(this.zoom), evaluationFeature, canonical)) {\n continue;\n }\n var sortKey = lineSortKey ? lineSortKey.evaluate(evaluationFeature, {}, canonical) : void 0;\n var bucketFeature = {\n id: id2,\n properties: feature.properties,\n type: feature.type,\n sourceLayerIndex,\n index,\n geometry: needGeometry ? evaluationFeature.geometry : loadGeometry(feature),\n patterns: {},\n sortKey\n };\n bucketFeatures.push(bucketFeature);\n }\n if (lineSortKey) {\n bucketFeatures.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$1 = 0, list$1 = bucketFeatures; i$1 < list$1.length; i$1 += 1) {\n var bucketFeature$1 = list$1[i$1];\n var ref$1 = bucketFeature$1;\n var geometry = ref$1.geometry;\n var index$1 = ref$1.index;\n var sourceLayerIndex$1 = ref$1.sourceLayerIndex;\n if (this.hasPattern) {\n var patternBucketFeature = addPatternDependencies(\"line\", this.layers, bucketFeature$1, this.zoom, options);\n this.patternFeatures.push(patternBucketFeature);\n } else {\n this.addFeature(bucketFeature$1, geometry, index$1, canonical, {});\n }\n var feature$1 = features[index$1].feature;\n options.featureIndex.insert(feature$1, geometry, index$1, sourceLayerIndex$1, this.index);\n }\n };\n LineBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.programConfigurations.updatePaintArrays(states, vtLayer, this.stateDependentLayers, imagePositions);\n };\n LineBucket.prototype.addFeatures = function addFeatures(options, canonical, imagePositions) {\n for (var i = 0, list = this.patternFeatures; i < list.length; i += 1) {\n var feature = list[i];\n this.addFeature(feature, feature.geometry, feature.index, canonical, imagePositions);\n }\n };\n LineBucket.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0;\n };\n LineBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n };\n LineBucket.prototype.upload = function upload(context) {\n if (!this.uploaded) {\n if (this.layoutVertexArray2.length !== 0) {\n this.layoutVertexBuffer2 = context.createVertexBuffer(this.layoutVertexArray2, members$4);\n }\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, members$3);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n }\n this.programConfigurations.upload(context);\n this.uploaded = true;\n };\n LineBucket.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n };\n LineBucket.prototype.lineFeatureClips = function lineFeatureClips(feature) {\n if (!!feature.properties && feature.properties.hasOwnProperty(\"mapbox_clip_start\") && feature.properties.hasOwnProperty(\"mapbox_clip_end\")) {\n var start = +feature.properties[\"mapbox_clip_start\"];\n var end = +feature.properties[\"mapbox_clip_end\"];\n return {\n start,\n end\n };\n }\n };\n LineBucket.prototype.addFeature = function addFeature2(feature, geometry, index, canonical, imagePositions) {\n var layout2 = this.layers[0].layout;\n var join = layout2.get(\"line-join\").evaluate(feature, {});\n var cap = layout2.get(\"line-cap\");\n var miterLimit = layout2.get(\"line-miter-limit\");\n var roundLimit = layout2.get(\"line-round-limit\");\n this.lineClips = this.lineFeatureClips(feature);\n for (var i = 0, list = geometry; i < list.length; i += 1) {\n var line = list[i];\n this.addLine(line, feature, join, cap, miterLimit, roundLimit);\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, feature, index, imagePositions, canonical);\n };\n LineBucket.prototype.addLine = function addLine(vertices, feature, join, cap, miterLimit, roundLimit) {\n this.distance = 0;\n this.scaledDistance = 0;\n this.totalDistance = 0;\n if (this.lineClips) {\n this.lineClipsArray.push(this.lineClips);\n for (var i = 0; i < vertices.length - 1; i++) {\n this.totalDistance += vertices[i].dist(vertices[i + 1]);\n }\n this.updateScaledDistance();\n this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance);\n }\n var isPolygon = vectorTileFeatureTypes$1[feature.type] === \"Polygon\";\n var len = vertices.length;\n while (len >= 2 && vertices[len - 1].equals(vertices[len - 2])) {\n len--;\n }\n var first = 0;\n while (first < len - 1 && vertices[first].equals(vertices[first + 1])) {\n first++;\n }\n if (len < (isPolygon ? 3 : 2)) {\n return;\n }\n if (join === \"bevel\") {\n miterLimit = 1.05;\n }\n var sharpCornerOffset = this.overscaling <= 16 ? SHARP_CORNER_OFFSET * EXTENT$1 / (512 * this.overscaling) : 0;\n var segment = this.segments.prepareSegment(len * 10, this.layoutVertexArray, this.indexArray);\n var currentVertex;\n var prevVertex = void 0;\n var nextVertex = void 0;\n var prevNormal = void 0;\n var nextNormal = void 0;\n this.e1 = this.e2 = -1;\n if (isPolygon) {\n currentVertex = vertices[len - 2];\n nextNormal = vertices[first].sub(currentVertex)._unit()._perp();\n }\n for (var i$1 = first; i$1 < len; i$1++) {\n nextVertex = i$1 === len - 1 ? isPolygon ? vertices[first + 1] : void 0 : vertices[i$1 + 1];\n if (nextVertex && vertices[i$1].equals(nextVertex)) {\n continue;\n }\n if (nextNormal) {\n prevNormal = nextNormal;\n }\n if (currentVertex) {\n prevVertex = currentVertex;\n }\n currentVertex = vertices[i$1];\n nextNormal = nextVertex ? nextVertex.sub(currentVertex)._unit()._perp() : prevNormal;\n prevNormal = prevNormal || nextNormal;\n var joinNormal = prevNormal.add(nextNormal);\n if (joinNormal.x !== 0 || joinNormal.y !== 0) {\n joinNormal._unit();\n }\n var cosAngle = prevNormal.x * nextNormal.x + prevNormal.y * nextNormal.y;\n var cosHalfAngle = joinNormal.x * nextNormal.x + joinNormal.y * nextNormal.y;\n var miterLength = cosHalfAngle !== 0 ? 1 / cosHalfAngle : Infinity;\n var approxAngle = 2 * Math.sqrt(2 - 2 * cosHalfAngle);\n var isSharpCorner = cosHalfAngle < COS_HALF_SHARP_CORNER && prevVertex && nextVertex;\n var lineTurnsLeft = prevNormal.x * nextNormal.y - prevNormal.y * nextNormal.x > 0;\n if (isSharpCorner && i$1 > first) {\n var prevSegmentLength = currentVertex.dist(prevVertex);\n if (prevSegmentLength > 2 * sharpCornerOffset) {\n var newPrevVertex = currentVertex.sub(currentVertex.sub(prevVertex)._mult(sharpCornerOffset / prevSegmentLength)._round());\n this.updateDistance(prevVertex, newPrevVertex);\n this.addCurrentVertex(newPrevVertex, prevNormal, 0, 0, segment);\n prevVertex = newPrevVertex;\n }\n }\n var middleVertex = prevVertex && nextVertex;\n var currentJoin = middleVertex ? join : isPolygon ? \"butt\" : cap;\n if (middleVertex && currentJoin === \"round\") {\n if (miterLength < roundLimit) {\n currentJoin = \"miter\";\n } else if (miterLength <= 2) {\n currentJoin = \"fakeround\";\n }\n }\n if (currentJoin === \"miter\" && miterLength > miterLimit) {\n currentJoin = \"bevel\";\n }\n if (currentJoin === \"bevel\") {\n if (miterLength > 2) {\n currentJoin = \"flipbevel\";\n }\n if (miterLength < miterLimit) {\n currentJoin = \"miter\";\n }\n }\n if (prevVertex) {\n this.updateDistance(prevVertex, currentVertex);\n }\n if (currentJoin === \"miter\") {\n joinNormal._mult(miterLength);\n this.addCurrentVertex(currentVertex, joinNormal, 0, 0, segment);\n } else if (currentJoin === \"flipbevel\") {\n if (miterLength > 100) {\n joinNormal = nextNormal.mult(-1);\n } else {\n var bevelLength = miterLength * prevNormal.add(nextNormal).mag() / prevNormal.sub(nextNormal).mag();\n joinNormal._perp()._mult(bevelLength * (lineTurnsLeft ? -1 : 1));\n }\n this.addCurrentVertex(currentVertex, joinNormal, 0, 0, segment);\n this.addCurrentVertex(currentVertex, joinNormal.mult(-1), 0, 0, segment);\n } else if (currentJoin === \"bevel\" || currentJoin === \"fakeround\") {\n var offset = -Math.sqrt(miterLength * miterLength - 1);\n var offsetA = lineTurnsLeft ? offset : 0;\n var offsetB = lineTurnsLeft ? 0 : offset;\n if (prevVertex) {\n this.addCurrentVertex(currentVertex, prevNormal, offsetA, offsetB, segment);\n }\n if (currentJoin === \"fakeround\") {\n var n = Math.round(approxAngle * 180 / Math.PI / DEG_PER_TRIANGLE);\n for (var m = 1; m < n; m++) {\n var t = m / n;\n if (t !== 0.5) {\n var t23 = t - 0.5;\n var A2 = 1.0904 + cosAngle * (-3.2452 + cosAngle * (3.55645 - cosAngle * 1.43519));\n var B2 = 0.848013 + cosAngle * (-1.06021 + cosAngle * 0.215638);\n t = t + t * t23 * (t - 1) * (A2 * t23 * t23 + B2);\n }\n var extrude = nextNormal.sub(prevNormal)._mult(t)._add(prevNormal)._unit()._mult(lineTurnsLeft ? -1 : 1);\n this.addHalfVertex(currentVertex, extrude.x, extrude.y, false, lineTurnsLeft, 0, segment);\n }\n }\n if (nextVertex) {\n this.addCurrentVertex(currentVertex, nextNormal, -offsetA, -offsetB, segment);\n }\n } else if (currentJoin === \"butt\") {\n this.addCurrentVertex(currentVertex, joinNormal, 0, 0, segment);\n } else if (currentJoin === \"square\") {\n var offset$1 = prevVertex ? 1 : -1;\n this.addCurrentVertex(currentVertex, joinNormal, offset$1, offset$1, segment);\n } else if (currentJoin === \"round\") {\n if (prevVertex) {\n this.addCurrentVertex(currentVertex, prevNormal, 0, 0, segment);\n this.addCurrentVertex(currentVertex, prevNormal, 1, 1, segment, true);\n }\n if (nextVertex) {\n this.addCurrentVertex(currentVertex, nextNormal, -1, -1, segment, true);\n this.addCurrentVertex(currentVertex, nextNormal, 0, 0, segment);\n }\n }\n if (isSharpCorner && i$1 < len - 1) {\n var nextSegmentLength = currentVertex.dist(nextVertex);\n if (nextSegmentLength > 2 * sharpCornerOffset) {\n var newCurrentVertex = currentVertex.add(nextVertex.sub(currentVertex)._mult(sharpCornerOffset / nextSegmentLength)._round());\n this.updateDistance(currentVertex, newCurrentVertex);\n this.addCurrentVertex(newCurrentVertex, nextNormal, 0, 0, segment);\n currentVertex = newCurrentVertex;\n }\n }\n }\n };\n LineBucket.prototype.addCurrentVertex = function addCurrentVertex(p, normal, endLeft, endRight, segment, round) {\n if (round === void 0)\n round = false;\n var leftX = normal.x + normal.y * endLeft;\n var leftY = normal.y - normal.x * endLeft;\n var rightX = -normal.x + normal.y * endRight;\n var rightY = -normal.y - normal.x * endRight;\n this.addHalfVertex(p, leftX, leftY, round, false, endLeft, segment);\n this.addHalfVertex(p, rightX, rightY, round, true, -endRight, segment);\n if (this.distance > MAX_LINE_DISTANCE / 2 && this.totalDistance === 0) {\n this.distance = 0;\n this.addCurrentVertex(p, normal, endLeft, endRight, segment, round);\n }\n };\n LineBucket.prototype.addHalfVertex = function addHalfVertex(ref, extrudeX, extrudeY, round, up, dir, segment) {\n var x = ref.x;\n var y = ref.y;\n var totalDistance = this.lineClips ? this.scaledDistance * (MAX_LINE_DISTANCE - 1) : this.scaledDistance;\n var linesofarScaled = totalDistance * LINE_DISTANCE_SCALE;\n this.layoutVertexArray.emplaceBack((x << 1) + (round ? 1 : 0), (y << 1) + (up ? 1 : 0), Math.round(EXTRUDE_SCALE * extrudeX) + 128, Math.round(EXTRUDE_SCALE * extrudeY) + 128, (dir === 0 ? 0 : dir < 0 ? -1 : 1) + 1 | (linesofarScaled & 63) << 2, linesofarScaled >> 6);\n if (this.lineClips) {\n var progressRealigned = this.scaledDistance - this.lineClips.start;\n var endClipRealigned = this.lineClips.end - this.lineClips.start;\n var uvX = progressRealigned / endClipRealigned;\n this.layoutVertexArray2.emplaceBack(uvX, this.lineClipsArray.length);\n }\n var e = segment.vertexLength++;\n if (this.e1 >= 0 && this.e2 >= 0) {\n this.indexArray.emplaceBack(this.e1, this.e2, e);\n segment.primitiveLength++;\n }\n if (up) {\n this.e2 = e;\n } else {\n this.e1 = e;\n }\n };\n LineBucket.prototype.updateScaledDistance = function updateScaledDistance() {\n this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance;\n };\n LineBucket.prototype.updateDistance = function updateDistance(prev, next) {\n this.distance += prev.dist(next);\n this.updateScaledDistance();\n };\n register(\"LineBucket\", LineBucket, {\n omit: [\n \"layers\",\n \"patternFeatures\"\n ]\n });\n var layout$6 = new Properties({\n \"line-cap\": new DataConstantProperty(spec[\"layout_line\"][\"line-cap\"]),\n \"line-join\": new DataDrivenProperty(spec[\"layout_line\"][\"line-join\"]),\n \"line-miter-limit\": new DataConstantProperty(spec[\"layout_line\"][\"line-miter-limit\"]),\n \"line-round-limit\": new DataConstantProperty(spec[\"layout_line\"][\"line-round-limit\"]),\n \"line-sort-key\": new DataDrivenProperty(spec[\"layout_line\"][\"line-sort-key\"])\n });\n var paint$6 = new Properties({\n \"line-opacity\": new DataDrivenProperty(spec[\"paint_line\"][\"line-opacity\"]),\n \"line-color\": new DataDrivenProperty(spec[\"paint_line\"][\"line-color\"]),\n \"line-translate\": new DataConstantProperty(spec[\"paint_line\"][\"line-translate\"]),\n \"line-translate-anchor\": new DataConstantProperty(spec[\"paint_line\"][\"line-translate-anchor\"]),\n \"line-width\": new DataDrivenProperty(spec[\"paint_line\"][\"line-width\"]),\n \"line-gap-width\": new DataDrivenProperty(spec[\"paint_line\"][\"line-gap-width\"]),\n \"line-offset\": new DataDrivenProperty(spec[\"paint_line\"][\"line-offset\"]),\n \"line-blur\": new DataDrivenProperty(spec[\"paint_line\"][\"line-blur\"]),\n \"line-dasharray\": new CrossFadedProperty(spec[\"paint_line\"][\"line-dasharray\"]),\n \"line-pattern\": new CrossFadedDataDrivenProperty(spec[\"paint_line\"][\"line-pattern\"]),\n \"line-gradient\": new ColorRampProperty(spec[\"paint_line\"][\"line-gradient\"])\n });\n var properties$5 = {\n paint: paint$6,\n layout: layout$6\n };\n var LineFloorwidthProperty = function(DataDrivenProperty2) {\n function LineFloorwidthProperty2() {\n DataDrivenProperty2.apply(this, arguments);\n }\n if (DataDrivenProperty2)\n LineFloorwidthProperty2.__proto__ = DataDrivenProperty2;\n LineFloorwidthProperty2.prototype = Object.create(DataDrivenProperty2 && DataDrivenProperty2.prototype);\n LineFloorwidthProperty2.prototype.constructor = LineFloorwidthProperty2;\n LineFloorwidthProperty2.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters) {\n parameters = new EvaluationParameters(Math.floor(parameters.zoom), {\n now: parameters.now,\n fadeDuration: parameters.fadeDuration,\n zoomHistory: parameters.zoomHistory,\n transition: parameters.transition\n });\n return DataDrivenProperty2.prototype.possiblyEvaluate.call(this, value, parameters);\n };\n LineFloorwidthProperty2.prototype.evaluate = function evaluate(value, globals, feature, featureState) {\n globals = extend2({}, globals, { zoom: Math.floor(globals.zoom) });\n return DataDrivenProperty2.prototype.evaluate.call(this, value, globals, feature, featureState);\n };\n return LineFloorwidthProperty2;\n }(DataDrivenProperty);\n var lineFloorwidthProperty = new LineFloorwidthProperty(properties$5.paint.properties[\"line-width\"].specification);\n lineFloorwidthProperty.useIntegerZoom = true;\n var LineStyleLayer = function(StyleLayer2) {\n function LineStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$5);\n this.gradientVersion = 0;\n }\n if (StyleLayer2)\n LineStyleLayer2.__proto__ = StyleLayer2;\n LineStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n LineStyleLayer2.prototype.constructor = LineStyleLayer2;\n LineStyleLayer2.prototype._handleSpecialPaintPropertyUpdate = function _handleSpecialPaintPropertyUpdate(name3) {\n if (name3 === \"line-gradient\") {\n var expression2 = this._transitionablePaint._values[\"line-gradient\"].value.expression;\n this.stepInterpolant = expression2._styleExpression.expression instanceof Step;\n this.gradientVersion = (this.gradientVersion + 1) % MAX_SAFE_INTEGER;\n }\n };\n LineStyleLayer2.prototype.gradientExpression = function gradientExpression() {\n return this._transitionablePaint._values[\"line-gradient\"].value.expression;\n };\n LineStyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n StyleLayer2.prototype.recalculate.call(this, parameters, availableImages);\n this.paint._values[\"line-floorwidth\"] = lineFloorwidthProperty.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value, parameters);\n };\n LineStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new LineBucket(parameters);\n };\n LineStyleLayer2.prototype.queryRadius = function queryRadius(bucket) {\n var lineBucket = bucket;\n var width = getLineWidth(getMaximumPaintValue(\"line-width\", this, lineBucket), getMaximumPaintValue(\"line-gap-width\", this, lineBucket));\n var offset = getMaximumPaintValue(\"line-offset\", this, lineBucket);\n return width / 2 + Math.abs(offset) + translateDistance(this.paint.get(\"line-translate\"));\n };\n LineStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature(queryGeometry, feature, featureState, geometry, zoom, transform, pixelsToTileUnits) {\n var translatedPolygon = translate(queryGeometry, this.paint.get(\"line-translate\"), this.paint.get(\"line-translate-anchor\"), transform.angle, pixelsToTileUnits);\n var halfWidth = pixelsToTileUnits / 2 * getLineWidth(this.paint.get(\"line-width\").evaluate(feature, featureState), this.paint.get(\"line-gap-width\").evaluate(feature, featureState));\n var lineOffset = this.paint.get(\"line-offset\").evaluate(feature, featureState);\n if (lineOffset) {\n geometry = offsetLine(geometry, lineOffset * pixelsToTileUnits);\n }\n return polygonIntersectsBufferedMultiLine(translatedPolygon, geometry, halfWidth);\n };\n LineStyleLayer2.prototype.isTileClipped = function isTileClipped() {\n return true;\n };\n return LineStyleLayer2;\n }(StyleLayer);\n function getLineWidth(lineWidth, lineGapWidth) {\n if (lineGapWidth > 0) {\n return lineGapWidth + 2 * lineWidth;\n } else {\n return lineWidth;\n }\n }\n function offsetLine(rings, offset) {\n var newRings = [];\n var zero2 = new pointGeometry(0, 0);\n for (var k = 0; k < rings.length; k++) {\n var ring = rings[k];\n var newRing = [];\n for (var i = 0; i < ring.length; i++) {\n var a = ring[i - 1];\n var b = ring[i];\n var c = ring[i + 1];\n var aToB = i === 0 ? zero2 : b.sub(a)._unit()._perp();\n var bToC = i === ring.length - 1 ? zero2 : c.sub(b)._unit()._perp();\n var extrude = aToB._add(bToC)._unit();\n var cosHalfAngle = extrude.x * bToC.x + extrude.y * bToC.y;\n extrude._mult(1 / cosHalfAngle);\n newRing.push(extrude._mult(offset)._add(b));\n }\n newRings.push(newRing);\n }\n return newRings;\n }\n var symbolLayoutAttributes = createLayout([\n {\n name: \"a_pos_offset\",\n components: 4,\n type: \"Int16\"\n },\n {\n name: \"a_data\",\n components: 4,\n type: \"Uint16\"\n },\n {\n name: \"a_pixeloffset\",\n components: 4,\n type: \"Int16\"\n }\n ], 4);\n var dynamicLayoutAttributes = createLayout([{\n name: \"a_projected_pos\",\n components: 3,\n type: \"Float32\"\n }], 4);\n var placementOpacityAttributes = createLayout([{\n name: \"a_fade_opacity\",\n components: 1,\n type: \"Uint32\"\n }], 4);\n var collisionVertexAttributes = createLayout([\n {\n name: \"a_placed\",\n components: 2,\n type: \"Uint8\"\n },\n {\n name: \"a_shift\",\n components: 2,\n type: \"Float32\"\n }\n ]);\n var collisionBox = createLayout([\n {\n type: \"Int16\",\n name: \"anchorPointX\"\n },\n {\n type: \"Int16\",\n name: \"anchorPointY\"\n },\n {\n type: \"Int16\",\n name: \"x1\"\n },\n {\n type: \"Int16\",\n name: \"y1\"\n },\n {\n type: \"Int16\",\n name: \"x2\"\n },\n {\n type: \"Int16\",\n name: \"y2\"\n },\n {\n type: \"Uint32\",\n name: \"featureIndex\"\n },\n {\n type: \"Uint16\",\n name: \"sourceLayerIndex\"\n },\n {\n type: \"Uint16\",\n name: \"bucketIndex\"\n }\n ]);\n var collisionBoxLayout = createLayout([\n {\n name: \"a_pos\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_anchor_pos\",\n components: 2,\n type: \"Int16\"\n },\n {\n name: \"a_extrude\",\n components: 2,\n type: \"Int16\"\n }\n ], 4);\n var collisionCircleLayout = createLayout([\n {\n name: \"a_pos\",\n components: 2,\n type: \"Float32\"\n },\n {\n name: \"a_radius\",\n components: 1,\n type: \"Float32\"\n },\n {\n name: \"a_flags\",\n components: 2,\n type: \"Int16\"\n }\n ], 4);\n var quadTriangle = createLayout([{\n name: \"triangle\",\n components: 3,\n type: \"Uint16\"\n }]);\n var placement = createLayout([\n {\n type: \"Int16\",\n name: \"anchorX\"\n },\n {\n type: \"Int16\",\n name: \"anchorY\"\n },\n {\n type: \"Uint16\",\n name: \"glyphStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"numGlyphs\"\n },\n {\n type: \"Uint32\",\n name: \"vertexStartIndex\"\n },\n {\n type: \"Uint32\",\n name: \"lineStartIndex\"\n },\n {\n type: \"Uint32\",\n name: \"lineLength\"\n },\n {\n type: \"Uint16\",\n name: \"segment\"\n },\n {\n type: \"Uint16\",\n name: \"lowerSize\"\n },\n {\n type: \"Uint16\",\n name: \"upperSize\"\n },\n {\n type: \"Float32\",\n name: \"lineOffsetX\"\n },\n {\n type: \"Float32\",\n name: \"lineOffsetY\"\n },\n {\n type: \"Uint8\",\n name: \"writingMode\"\n },\n {\n type: \"Uint8\",\n name: \"placedOrientation\"\n },\n {\n type: \"Uint8\",\n name: \"hidden\"\n },\n {\n type: \"Uint32\",\n name: \"crossTileID\"\n },\n {\n type: \"Int16\",\n name: \"associatedIconIndex\"\n }\n ]);\n var symbolInstance = createLayout([\n {\n type: \"Int16\",\n name: \"anchorX\"\n },\n {\n type: \"Int16\",\n name: \"anchorY\"\n },\n {\n type: \"Int16\",\n name: \"rightJustifiedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"centerJustifiedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"leftJustifiedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"verticalPlacedTextSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"placedIconSymbolIndex\"\n },\n {\n type: \"Int16\",\n name: \"verticalPlacedIconSymbolIndex\"\n },\n {\n type: \"Uint16\",\n name: \"key\"\n },\n {\n type: \"Uint16\",\n name: \"textBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"textBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalTextBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalTextBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"iconBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"iconBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalIconBoxStartIndex\"\n },\n {\n type: \"Uint16\",\n name: \"verticalIconBoxEndIndex\"\n },\n {\n type: \"Uint16\",\n name: \"featureIndex\"\n },\n {\n type: \"Uint16\",\n name: \"numHorizontalGlyphVertices\"\n },\n {\n type: \"Uint16\",\n name: \"numVerticalGlyphVertices\"\n },\n {\n type: \"Uint16\",\n name: \"numIconVertices\"\n },\n {\n type: \"Uint16\",\n name: \"numVerticalIconVertices\"\n },\n {\n type: \"Uint16\",\n name: \"useRuntimeCollisionCircles\"\n },\n {\n type: \"Uint32\",\n name: \"crossTileID\"\n },\n {\n type: \"Float32\",\n name: \"textBoxScale\"\n },\n {\n type: \"Float32\",\n components: 2,\n name: \"textOffset\"\n },\n {\n type: \"Float32\",\n name: \"collisionCircleDiameter\"\n }\n ]);\n var glyphOffset = createLayout([{\n type: \"Float32\",\n name: \"offsetX\"\n }]);\n var lineVertex = createLayout([\n {\n type: \"Int16\",\n name: \"x\"\n },\n {\n type: \"Int16\",\n name: \"y\"\n },\n {\n type: \"Int16\",\n name: \"tileUnitDistanceFromAnchor\"\n }\n ]);\n function transformText(text, layer2, feature) {\n var transform = layer2.layout.get(\"text-transform\").evaluate(feature, {});\n if (transform === \"uppercase\") {\n text = text.toLocaleUpperCase();\n } else if (transform === \"lowercase\") {\n text = text.toLocaleLowerCase();\n }\n if (plugin.applyArabicShaping) {\n text = plugin.applyArabicShaping(text);\n }\n return text;\n }\n function transformText$1(text, layer2, feature) {\n text.sections.forEach(function(section) {\n section.text = transformText(section.text, layer2, feature);\n });\n return text;\n }\n function mergeLines(features) {\n var leftIndex = {};\n var rightIndex = {};\n var mergedFeatures = [];\n var mergedIndex = 0;\n function add2(k2) {\n mergedFeatures.push(features[k2]);\n mergedIndex++;\n }\n function mergeFromRight(leftKey2, rightKey2, geom2) {\n var i2 = rightIndex[leftKey2];\n delete rightIndex[leftKey2];\n rightIndex[rightKey2] = i2;\n mergedFeatures[i2].geometry[0].pop();\n mergedFeatures[i2].geometry[0] = mergedFeatures[i2].geometry[0].concat(geom2[0]);\n return i2;\n }\n function mergeFromLeft(leftKey2, rightKey2, geom2) {\n var i2 = leftIndex[rightKey2];\n delete leftIndex[rightKey2];\n leftIndex[leftKey2] = i2;\n mergedFeatures[i2].geometry[0].shift();\n mergedFeatures[i2].geometry[0] = geom2[0].concat(mergedFeatures[i2].geometry[0]);\n return i2;\n }\n function getKey(text2, geom2, onRight) {\n var point = onRight ? geom2[0][geom2[0].length - 1] : geom2[0][0];\n return text2 + \":\" + point.x + \":\" + point.y;\n }\n for (var k = 0; k < features.length; k++) {\n var feature = features[k];\n var geom = feature.geometry;\n var text = feature.text ? feature.text.toString() : null;\n if (!text) {\n add2(k);\n continue;\n }\n var leftKey = getKey(text, geom), rightKey = getKey(text, geom, true);\n if (leftKey in rightIndex && rightKey in leftIndex && rightIndex[leftKey] !== leftIndex[rightKey]) {\n var j = mergeFromLeft(leftKey, rightKey, geom);\n var i = mergeFromRight(leftKey, rightKey, mergedFeatures[j].geometry);\n delete leftIndex[leftKey];\n delete rightIndex[rightKey];\n rightIndex[getKey(text, mergedFeatures[i].geometry, true)] = i;\n mergedFeatures[j].geometry = null;\n } else if (leftKey in rightIndex) {\n mergeFromRight(leftKey, rightKey, geom);\n } else if (rightKey in leftIndex) {\n mergeFromLeft(leftKey, rightKey, geom);\n } else {\n add2(k);\n leftIndex[leftKey] = mergedIndex - 1;\n rightIndex[rightKey] = mergedIndex - 1;\n }\n }\n return mergedFeatures.filter(function(f) {\n return f.geometry;\n });\n }\n var verticalizedCharacterMap = {\n \"!\": \"\\uFE15\",\n \"#\": \"\\uFF03\",\n \"$\": \"\\uFF04\",\n \"%\": \"\\uFF05\",\n \"&\": \"\\uFF06\",\n \"(\": \"\\uFE35\",\n \")\": \"\\uFE36\",\n \"*\": \"\\uFF0A\",\n \"+\": \"\\uFF0B\",\n \",\": \"\\uFE10\",\n \"-\": \"\\uFE32\",\n \".\": \"\\u30FB\",\n \"/\": \"\\uFF0F\",\n \":\": \"\\uFE13\",\n \";\": \"\\uFE14\",\n \"<\": \"\\uFE3F\",\n \"=\": \"\\uFF1D\",\n \">\": \"\\uFE40\",\n \"?\": \"\\uFE16\",\n \"@\": \"\\uFF20\",\n \"[\": \"\\uFE47\",\n \"\\\\\": \"\\uFF3C\",\n \"]\": \"\\uFE48\",\n \"^\": \"\\uFF3E\",\n \"_\": \"\\uFE33\",\n \"`\": \"\\uFF40\",\n \"{\": \"\\uFE37\",\n \"|\": \"\\u2015\",\n \"}\": \"\\uFE38\",\n \"~\": \"\\uFF5E\",\n \"\\xA2\": \"\\uFFE0\",\n \"\\xA3\": \"\\uFFE1\",\n \"\\xA5\": \"\\uFFE5\",\n \"\\xA6\": \"\\uFFE4\",\n \"\\xAC\": \"\\uFFE2\",\n \"\\xAF\": \"\\uFFE3\",\n \"\\u2013\": \"\\uFE32\",\n \"\\u2014\": \"\\uFE31\",\n \"\\u2018\": \"\\uFE43\",\n \"\\u2019\": \"\\uFE44\",\n \"\\u201C\": \"\\uFE41\",\n \"\\u201D\": \"\\uFE42\",\n \"\\u2026\": \"\\uFE19\",\n \"\\u2027\": \"\\u30FB\",\n \"\\u20A9\": \"\\uFFE6\",\n \"\\u3001\": \"\\uFE11\",\n \"\\u3002\": \"\\uFE12\",\n \"\\u3008\": \"\\uFE3F\",\n \"\\u3009\": \"\\uFE40\",\n \"\\u300A\": \"\\uFE3D\",\n \"\\u300B\": \"\\uFE3E\",\n \"\\u300C\": \"\\uFE41\",\n \"\\u300D\": \"\\uFE42\",\n \"\\u300E\": \"\\uFE43\",\n \"\\u300F\": \"\\uFE44\",\n \"\\u3010\": \"\\uFE3B\",\n \"\\u3011\": \"\\uFE3C\",\n \"\\u3014\": \"\\uFE39\",\n \"\\u3015\": \"\\uFE3A\",\n \"\\u3016\": \"\\uFE17\",\n \"\\u3017\": \"\\uFE18\",\n \"\\uFF01\": \"\\uFE15\",\n \"\\uFF08\": \"\\uFE35\",\n \"\\uFF09\": \"\\uFE36\",\n \"\\uFF0C\": \"\\uFE10\",\n \"\\uFF0D\": \"\\uFE32\",\n \"\\uFF0E\": \"\\u30FB\",\n \"\\uFF1A\": \"\\uFE13\",\n \"\\uFF1B\": \"\\uFE14\",\n \"\\uFF1C\": \"\\uFE3F\",\n \"\\uFF1E\": \"\\uFE40\",\n \"\\uFF1F\": \"\\uFE16\",\n \"\\uFF3B\": \"\\uFE47\",\n \"\\uFF3D\": \"\\uFE48\",\n \"\\uFF3F\": \"\\uFE33\",\n \"\\uFF5B\": \"\\uFE37\",\n \"\\uFF5C\": \"\\u2015\",\n \"\\uFF5D\": \"\\uFE38\",\n \"\\uFF5F\": \"\\uFE35\",\n \"\\uFF60\": \"\\uFE36\",\n \"\\uFF61\": \"\\uFE12\",\n \"\\uFF62\": \"\\uFE41\",\n \"\\uFF63\": \"\\uFE42\"\n };\n function verticalizePunctuation(input) {\n var output = \"\";\n for (var i = 0; i < input.length; i++) {\n var nextCharCode = input.charCodeAt(i + 1) || null;\n var prevCharCode = input.charCodeAt(i - 1) || null;\n var canReplacePunctuation = (!nextCharCode || !charHasRotatedVerticalOrientation(nextCharCode) || verticalizedCharacterMap[input[i + 1]]) && (!prevCharCode || !charHasRotatedVerticalOrientation(prevCharCode) || verticalizedCharacterMap[input[i - 1]]);\n if (canReplacePunctuation && verticalizedCharacterMap[input[i]]) {\n output += verticalizedCharacterMap[input[i]];\n } else {\n output += input[i];\n }\n }\n return output;\n }\n var ONE_EM = 24;\n var read = function(buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {\n }\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n var write = function(buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n }\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n }\n buffer[offset + i - d] |= s * 128;\n };\n var ieee754 = {\n read,\n write\n };\n var pbf = Pbf;\n function Pbf(buf) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(buf) ? buf : new Uint8Array(buf || 0);\n this.pos = 0;\n this.type = 0;\n this.length = this.buf.length;\n }\n Pbf.Varint = 0;\n Pbf.Fixed64 = 1;\n Pbf.Bytes = 2;\n Pbf.Fixed32 = 5;\n var SHIFT_LEFT_32 = (1 << 16) * (1 << 16), SHIFT_RIGHT_32 = 1 / SHIFT_LEFT_32;\n var TEXT_DECODER_MIN_LENGTH = 12;\n var utf8TextDecoder = typeof TextDecoder === \"undefined\" ? null : new TextDecoder(\"utf8\");\n Pbf.prototype = {\n destroy: function() {\n this.buf = null;\n },\n readFields: function(readField, result, end) {\n end = end || this.length;\n while (this.pos < end) {\n var val = this.readVarint(), tag = val >> 3, startPos = this.pos;\n this.type = val & 7;\n readField(tag, result, this);\n if (this.pos === startPos) {\n this.skip(val);\n }\n }\n return result;\n },\n readMessage: function(readField, result) {\n return this.readFields(readField, result, this.readVarint() + this.pos);\n },\n readFixed32: function() {\n var val = readUInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n readSFixed32: function() {\n var val = readInt32(this.buf, this.pos);\n this.pos += 4;\n return val;\n },\n readFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readUInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n readSFixed64: function() {\n var val = readUInt32(this.buf, this.pos) + readInt32(this.buf, this.pos + 4) * SHIFT_LEFT_32;\n this.pos += 8;\n return val;\n },\n readFloat: function() {\n var val = ieee754.read(this.buf, this.pos, true, 23, 4);\n this.pos += 4;\n return val;\n },\n readDouble: function() {\n var val = ieee754.read(this.buf, this.pos, true, 52, 8);\n this.pos += 8;\n return val;\n },\n readVarint: function(isSigned) {\n var buf = this.buf, val, b;\n b = buf[this.pos++];\n val = b & 127;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos++];\n val |= (b & 127) << 7;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos++];\n val |= (b & 127) << 14;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos++];\n val |= (b & 127) << 21;\n if (b < 128) {\n return val;\n }\n b = buf[this.pos];\n val |= (b & 15) << 28;\n return readVarintRemainder(val, isSigned, this);\n },\n readVarint64: function() {\n return this.readVarint(true);\n },\n readSVarint: function() {\n var num = this.readVarint();\n return num % 2 === 1 ? (num + 1) / -2 : num / 2;\n },\n readBoolean: function() {\n return Boolean(this.readVarint());\n },\n readString: function() {\n var end = this.readVarint() + this.pos;\n var pos = this.pos;\n this.pos = end;\n if (end - pos >= TEXT_DECODER_MIN_LENGTH && utf8TextDecoder) {\n return readUtf8TextDecoder(this.buf, pos, end);\n }\n return readUtf8(this.buf, pos, end);\n },\n readBytes: function() {\n var end = this.readVarint() + this.pos, buffer = this.buf.subarray(this.pos, end);\n this.pos = end;\n return buffer;\n },\n readPackedVarint: function(arr, isSigned) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readVarint(isSigned));\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readVarint(isSigned));\n }\n return arr;\n },\n readPackedSVarint: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readSVarint());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readSVarint());\n }\n return arr;\n },\n readPackedBoolean: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readBoolean());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readBoolean());\n }\n return arr;\n },\n readPackedFloat: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readFloat());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readFloat());\n }\n return arr;\n },\n readPackedDouble: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readDouble());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readDouble());\n }\n return arr;\n },\n readPackedFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readFixed32());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readFixed32());\n }\n return arr;\n },\n readPackedSFixed32: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readSFixed32());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readSFixed32());\n }\n return arr;\n },\n readPackedFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readFixed64());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readFixed64());\n }\n return arr;\n },\n readPackedSFixed64: function(arr) {\n if (this.type !== Pbf.Bytes) {\n return arr.push(this.readSFixed64());\n }\n var end = readPackedEnd(this);\n arr = arr || [];\n while (this.pos < end) {\n arr.push(this.readSFixed64());\n }\n return arr;\n },\n skip: function(val) {\n var type = val & 7;\n if (type === Pbf.Varint) {\n while (this.buf[this.pos++] > 127) {\n }\n } else if (type === Pbf.Bytes) {\n this.pos = this.readVarint() + this.pos;\n } else if (type === Pbf.Fixed32) {\n this.pos += 4;\n } else if (type === Pbf.Fixed64) {\n this.pos += 8;\n } else {\n throw new Error(\"Unimplemented type: \" + type);\n }\n },\n writeTag: function(tag, type) {\n this.writeVarint(tag << 3 | type);\n },\n realloc: function(min) {\n var length = this.length || 16;\n while (length < this.pos + min) {\n length *= 2;\n }\n if (length !== this.length) {\n var buf = new Uint8Array(length);\n buf.set(this.buf);\n this.buf = buf;\n this.length = length;\n }\n },\n finish: function() {\n this.length = this.pos;\n this.pos = 0;\n return this.buf.subarray(0, this.length);\n },\n writeFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n writeSFixed32: function(val) {\n this.realloc(4);\n writeInt32(this.buf, val, this.pos);\n this.pos += 4;\n },\n writeFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n writeSFixed64: function(val) {\n this.realloc(8);\n writeInt32(this.buf, val & -1, this.pos);\n writeInt32(this.buf, Math.floor(val * SHIFT_RIGHT_32), this.pos + 4);\n this.pos += 8;\n },\n writeVarint: function(val) {\n val = +val || 0;\n if (val > 268435455 || val < 0) {\n writeBigVarint(val, this);\n return;\n }\n this.realloc(4);\n this.buf[this.pos++] = val & 127 | (val > 127 ? 128 : 0);\n if (val <= 127) {\n return;\n }\n this.buf[this.pos++] = (val >>>= 7) & 127 | (val > 127 ? 128 : 0);\n if (val <= 127) {\n return;\n }\n this.buf[this.pos++] = (val >>>= 7) & 127 | (val > 127 ? 128 : 0);\n if (val <= 127) {\n return;\n }\n this.buf[this.pos++] = val >>> 7 & 127;\n },\n writeSVarint: function(val) {\n this.writeVarint(val < 0 ? -val * 2 - 1 : val * 2);\n },\n writeBoolean: function(val) {\n this.writeVarint(Boolean(val));\n },\n writeString: function(str) {\n str = String(str);\n this.realloc(str.length * 4);\n this.pos++;\n var startPos = this.pos;\n this.pos = writeUtf8(this.buf, str, this.pos);\n var len = this.pos - startPos;\n if (len >= 128) {\n makeRoomForExtraLength(startPos, len, this);\n }\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n writeFloat: function(val) {\n this.realloc(4);\n ieee754.write(this.buf, val, this.pos, true, 23, 4);\n this.pos += 4;\n },\n writeDouble: function(val) {\n this.realloc(8);\n ieee754.write(this.buf, val, this.pos, true, 52, 8);\n this.pos += 8;\n },\n writeBytes: function(buffer) {\n var len = buffer.length;\n this.writeVarint(len);\n this.realloc(len);\n for (var i = 0; i < len; i++) {\n this.buf[this.pos++] = buffer[i];\n }\n },\n writeRawMessage: function(fn, obj) {\n this.pos++;\n var startPos = this.pos;\n fn(obj, this);\n var len = this.pos - startPos;\n if (len >= 128) {\n makeRoomForExtraLength(startPos, len, this);\n }\n this.pos = startPos - 1;\n this.writeVarint(len);\n this.pos += len;\n },\n writeMessage: function(tag, fn, obj) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeRawMessage(fn, obj);\n },\n writePackedVarint: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedVarint, arr);\n }\n },\n writePackedSVarint: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedSVarint, arr);\n }\n },\n writePackedBoolean: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedBoolean, arr);\n }\n },\n writePackedFloat: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedFloat, arr);\n }\n },\n writePackedDouble: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedDouble, arr);\n }\n },\n writePackedFixed32: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedFixed32, arr);\n }\n },\n writePackedSFixed32: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedSFixed32, arr);\n }\n },\n writePackedFixed64: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedFixed64, arr);\n }\n },\n writePackedSFixed64: function(tag, arr) {\n if (arr.length) {\n this.writeMessage(tag, writePackedSFixed64, arr);\n }\n },\n writeBytesField: function(tag, buffer) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeBytes(buffer);\n },\n writeFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFixed32(val);\n },\n writeSFixed32Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeSFixed32(val);\n },\n writeFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeFixed64(val);\n },\n writeSFixed64Field: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeSFixed64(val);\n },\n writeVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeVarint(val);\n },\n writeSVarintField: function(tag, val) {\n this.writeTag(tag, Pbf.Varint);\n this.writeSVarint(val);\n },\n writeStringField: function(tag, str) {\n this.writeTag(tag, Pbf.Bytes);\n this.writeString(str);\n },\n writeFloatField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed32);\n this.writeFloat(val);\n },\n writeDoubleField: function(tag, val) {\n this.writeTag(tag, Pbf.Fixed64);\n this.writeDouble(val);\n },\n writeBooleanField: function(tag, val) {\n this.writeVarintField(tag, Boolean(val));\n }\n };\n function readVarintRemainder(l, s, p) {\n var buf = p.buf, h, b;\n b = buf[p.pos++];\n h = (b & 112) >> 4;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 3;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 10;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 17;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 127) << 24;\n if (b < 128) {\n return toNum(l, h, s);\n }\n b = buf[p.pos++];\n h |= (b & 1) << 31;\n if (b < 128) {\n return toNum(l, h, s);\n }\n throw new Error(\"Expected varint not more than 10 bytes\");\n }\n function readPackedEnd(pbf2) {\n return pbf2.type === Pbf.Bytes ? pbf2.readVarint() + pbf2.pos : pbf2.pos + 1;\n }\n function toNum(low, high, isSigned) {\n if (isSigned) {\n return high * 4294967296 + (low >>> 0);\n }\n return (high >>> 0) * 4294967296 + (low >>> 0);\n }\n function writeBigVarint(val, pbf2) {\n var low, high;\n if (val >= 0) {\n low = val % 4294967296 | 0;\n high = val / 4294967296 | 0;\n } else {\n low = ~(-val % 4294967296);\n high = ~(-val / 4294967296);\n if (low ^ 4294967295) {\n low = low + 1 | 0;\n } else {\n low = 0;\n high = high + 1 | 0;\n }\n }\n if (val >= 18446744073709552e3 || val < -18446744073709552e3) {\n throw new Error(\"Given varint doesn't fit into 10 bytes\");\n }\n pbf2.realloc(10);\n writeBigVarintLow(low, high, pbf2);\n writeBigVarintHigh(high, pbf2);\n }\n function writeBigVarintLow(low, high, pbf2) {\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos++] = low & 127 | 128;\n low >>>= 7;\n pbf2.buf[pbf2.pos] = low & 127;\n }\n function writeBigVarintHigh(high, pbf2) {\n var lsb = (high & 7) << 4;\n pbf2.buf[pbf2.pos++] |= lsb | ((high >>>= 3) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127 | ((high >>>= 7) ? 128 : 0);\n if (!high) {\n return;\n }\n pbf2.buf[pbf2.pos++] = high & 127;\n }\n function makeRoomForExtraLength(startPos, len, pbf2) {\n var extraLen = len <= 16383 ? 1 : len <= 2097151 ? 2 : len <= 268435455 ? 3 : Math.floor(Math.log(len) / (Math.LN2 * 7));\n pbf2.realloc(extraLen);\n for (var i = pbf2.pos - 1; i >= startPos; i--) {\n pbf2.buf[i + extraLen] = pbf2.buf[i];\n }\n }\n function writePackedVarint(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeVarint(arr[i]);\n }\n }\n function writePackedSVarint(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeSVarint(arr[i]);\n }\n }\n function writePackedFloat(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeFloat(arr[i]);\n }\n }\n function writePackedDouble(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeDouble(arr[i]);\n }\n }\n function writePackedBoolean(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeBoolean(arr[i]);\n }\n }\n function writePackedFixed32(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeFixed32(arr[i]);\n }\n }\n function writePackedSFixed32(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeSFixed32(arr[i]);\n }\n }\n function writePackedFixed64(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeFixed64(arr[i]);\n }\n }\n function writePackedSFixed64(arr, pbf2) {\n for (var i = 0; i < arr.length; i++) {\n pbf2.writeSFixed64(arr[i]);\n }\n }\n function readUInt32(buf, pos) {\n return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16) + buf[pos + 3] * 16777216;\n }\n function writeInt32(buf, val, pos) {\n buf[pos] = val;\n buf[pos + 1] = val >>> 8;\n buf[pos + 2] = val >>> 16;\n buf[pos + 3] = val >>> 24;\n }\n function readInt32(buf, pos) {\n return (buf[pos] | buf[pos + 1] << 8 | buf[pos + 2] << 16) + (buf[pos + 3] << 24);\n }\n function readUtf8(buf, pos, end) {\n var str = \"\";\n var i = pos;\n while (i < end) {\n var b0 = buf[i];\n var c = null;\n var bytesPerSequence = b0 > 239 ? 4 : b0 > 223 ? 3 : b0 > 191 ? 2 : 1;\n if (i + bytesPerSequence > end) {\n break;\n }\n var b1, b2, b3;\n if (bytesPerSequence === 1) {\n if (b0 < 128) {\n c = b0;\n }\n } else if (bytesPerSequence === 2) {\n b1 = buf[i + 1];\n if ((b1 & 192) === 128) {\n c = (b0 & 31) << 6 | b1 & 63;\n if (c <= 127) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 3) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n if ((b1 & 192) === 128 && (b2 & 192) === 128) {\n c = (b0 & 15) << 12 | (b1 & 63) << 6 | b2 & 63;\n if (c <= 2047 || c >= 55296 && c <= 57343) {\n c = null;\n }\n }\n } else if (bytesPerSequence === 4) {\n b1 = buf[i + 1];\n b2 = buf[i + 2];\n b3 = buf[i + 3];\n if ((b1 & 192) === 128 && (b2 & 192) === 128 && (b3 & 192) === 128) {\n c = (b0 & 15) << 18 | (b1 & 63) << 12 | (b2 & 63) << 6 | b3 & 63;\n if (c <= 65535 || c >= 1114112) {\n c = null;\n }\n }\n }\n if (c === null) {\n c = 65533;\n bytesPerSequence = 1;\n } else if (c > 65535) {\n c -= 65536;\n str += String.fromCharCode(c >>> 10 & 1023 | 55296);\n c = 56320 | c & 1023;\n }\n str += String.fromCharCode(c);\n i += bytesPerSequence;\n }\n return str;\n }\n function readUtf8TextDecoder(buf, pos, end) {\n return utf8TextDecoder.decode(buf.subarray(pos, end));\n }\n function writeUtf8(buf, str, pos) {\n for (var i = 0, c, lead; i < str.length; i++) {\n c = str.charCodeAt(i);\n if (c > 55295 && c < 57344) {\n if (lead) {\n if (c < 56320) {\n buf[pos++] = 239;\n buf[pos++] = 191;\n buf[pos++] = 189;\n lead = c;\n continue;\n } else {\n c = lead - 55296 << 10 | c - 56320 | 65536;\n lead = null;\n }\n } else {\n if (c > 56319 || i + 1 === str.length) {\n buf[pos++] = 239;\n buf[pos++] = 191;\n buf[pos++] = 189;\n } else {\n lead = c;\n }\n continue;\n }\n } else if (lead) {\n buf[pos++] = 239;\n buf[pos++] = 191;\n buf[pos++] = 189;\n lead = null;\n }\n if (c < 128) {\n buf[pos++] = c;\n } else {\n if (c < 2048) {\n buf[pos++] = c >> 6 | 192;\n } else {\n if (c < 65536) {\n buf[pos++] = c >> 12 | 224;\n } else {\n buf[pos++] = c >> 18 | 240;\n buf[pos++] = c >> 12 & 63 | 128;\n }\n buf[pos++] = c >> 6 & 63 | 128;\n }\n buf[pos++] = c & 63 | 128;\n }\n }\n return pos;\n }\n var border = 3;\n function readFontstacks(tag, glyphs, pbf2) {\n if (tag === 1) {\n pbf2.readMessage(readFontstack, glyphs);\n }\n }\n function readFontstack(tag, glyphs, pbf2) {\n if (tag === 3) {\n var ref = pbf2.readMessage(readGlyph, {});\n var id2 = ref.id;\n var bitmap = ref.bitmap;\n var width = ref.width;\n var height = ref.height;\n var left = ref.left;\n var top = ref.top;\n var advance = ref.advance;\n glyphs.push({\n id: id2,\n bitmap: new AlphaImage({\n width: width + 2 * border,\n height: height + 2 * border\n }, bitmap),\n metrics: {\n width,\n height,\n left,\n top,\n advance\n }\n });\n }\n }\n function readGlyph(tag, glyph, pbf2) {\n if (tag === 1) {\n glyph.id = pbf2.readVarint();\n } else if (tag === 2) {\n glyph.bitmap = pbf2.readBytes();\n } else if (tag === 3) {\n glyph.width = pbf2.readVarint();\n } else if (tag === 4) {\n glyph.height = pbf2.readVarint();\n } else if (tag === 5) {\n glyph.left = pbf2.readSVarint();\n } else if (tag === 6) {\n glyph.top = pbf2.readSVarint();\n } else if (tag === 7) {\n glyph.advance = pbf2.readVarint();\n }\n }\n function parseGlyphPBF(data) {\n return new pbf(data).readFields(readFontstacks, []);\n }\n var GLYPH_PBF_BORDER = border;\n function potpack(boxes) {\n var area2 = 0;\n var maxWidth = 0;\n for (var i$1 = 0, list = boxes; i$1 < list.length; i$1 += 1) {\n var box = list[i$1];\n area2 += box.w * box.h;\n maxWidth = Math.max(maxWidth, box.w);\n }\n boxes.sort(function(a, b) {\n return b.h - a.h;\n });\n var startWidth = Math.max(Math.ceil(Math.sqrt(area2 / 0.95)), maxWidth);\n var spaces = [{ x: 0, y: 0, w: startWidth, h: Infinity }];\n var width = 0;\n var height = 0;\n for (var i$2 = 0, list$1 = boxes; i$2 < list$1.length; i$2 += 1) {\n var box$1 = list$1[i$2];\n for (var i = spaces.length - 1; i >= 0; i--) {\n var space = spaces[i];\n if (box$1.w > space.w || box$1.h > space.h) {\n continue;\n }\n box$1.x = space.x;\n box$1.y = space.y;\n height = Math.max(height, box$1.y + box$1.h);\n width = Math.max(width, box$1.x + box$1.w);\n if (box$1.w === space.w && box$1.h === space.h) {\n var last = spaces.pop();\n if (i < spaces.length) {\n spaces[i] = last;\n }\n } else if (box$1.h === space.h) {\n space.x += box$1.w;\n space.w -= box$1.w;\n } else if (box$1.w === space.w) {\n space.y += box$1.h;\n space.h -= box$1.h;\n } else {\n spaces.push({\n x: space.x + box$1.w,\n y: space.y,\n w: space.w - box$1.w,\n h: box$1.h\n });\n space.y += box$1.h;\n space.h -= box$1.h;\n }\n break;\n }\n }\n return {\n w: width,\n // container width\n h: height,\n // container height\n fill: area2 / (width * height) || 0\n // space utilization\n };\n }\n var IMAGE_PADDING = 1;\n var ImagePosition = function ImagePosition2(paddedRect, ref) {\n var pixelRatio = ref.pixelRatio;\n var version2 = ref.version;\n var stretchX = ref.stretchX;\n var stretchY = ref.stretchY;\n var content = ref.content;\n this.paddedRect = paddedRect;\n this.pixelRatio = pixelRatio;\n this.stretchX = stretchX;\n this.stretchY = stretchY;\n this.content = content;\n this.version = version2;\n };\n var prototypeAccessors = {\n tl: { configurable: true },\n br: { configurable: true },\n tlbr: { configurable: true },\n displaySize: { configurable: true }\n };\n prototypeAccessors.tl.get = function() {\n return [\n this.paddedRect.x + IMAGE_PADDING,\n this.paddedRect.y + IMAGE_PADDING\n ];\n };\n prototypeAccessors.br.get = function() {\n return [\n this.paddedRect.x + this.paddedRect.w - IMAGE_PADDING,\n this.paddedRect.y + this.paddedRect.h - IMAGE_PADDING\n ];\n };\n prototypeAccessors.tlbr.get = function() {\n return this.tl.concat(this.br);\n };\n prototypeAccessors.displaySize.get = function() {\n return [\n (this.paddedRect.w - IMAGE_PADDING * 2) / this.pixelRatio,\n (this.paddedRect.h - IMAGE_PADDING * 2) / this.pixelRatio\n ];\n };\n Object.defineProperties(ImagePosition.prototype, prototypeAccessors);\n var ImageAtlas = function ImageAtlas2(icons, patterns) {\n var iconPositions = {}, patternPositions = {};\n this.haveRenderCallbacks = [];\n var bins = [];\n this.addImages(icons, iconPositions, bins);\n this.addImages(patterns, patternPositions, bins);\n var ref = potpack(bins);\n var w = ref.w;\n var h = ref.h;\n var image = new RGBAImage({\n width: w || 1,\n height: h || 1\n });\n for (var id2 in icons) {\n var src = icons[id2];\n var bin = iconPositions[id2].paddedRect;\n RGBAImage.copy(src.data, image, {\n x: 0,\n y: 0\n }, {\n x: bin.x + IMAGE_PADDING,\n y: bin.y + IMAGE_PADDING\n }, src.data);\n }\n for (var id$1 in patterns) {\n var src$1 = patterns[id$1];\n var bin$1 = patternPositions[id$1].paddedRect;\n var x = bin$1.x + IMAGE_PADDING, y = bin$1.y + IMAGE_PADDING, w$1 = src$1.data.width, h$1 = src$1.data.height;\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: 0\n }, {\n x,\n y\n }, src$1.data);\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: h$1 - 1\n }, {\n x,\n y: y - 1\n }, {\n width: w$1,\n height: 1\n });\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: 0\n }, {\n x,\n y: y + h$1\n }, {\n width: w$1,\n height: 1\n });\n RGBAImage.copy(src$1.data, image, {\n x: w$1 - 1,\n y: 0\n }, {\n x: x - 1,\n y\n }, {\n width: 1,\n height: h$1\n });\n RGBAImage.copy(src$1.data, image, {\n x: 0,\n y: 0\n }, {\n x: x + w$1,\n y\n }, {\n width: 1,\n height: h$1\n });\n }\n this.image = image;\n this.iconPositions = iconPositions;\n this.patternPositions = patternPositions;\n };\n ImageAtlas.prototype.addImages = function addImages(images, positions, bins) {\n for (var id2 in images) {\n var src = images[id2];\n var bin = {\n x: 0,\n y: 0,\n w: src.data.width + 2 * IMAGE_PADDING,\n h: src.data.height + 2 * IMAGE_PADDING\n };\n bins.push(bin);\n positions[id2] = new ImagePosition(bin, src);\n if (src.hasRenderCallback) {\n this.haveRenderCallbacks.push(id2);\n }\n }\n };\n ImageAtlas.prototype.patchUpdatedImages = function patchUpdatedImages(imageManager, texture) {\n imageManager.dispatchRenderCallbacks(this.haveRenderCallbacks);\n for (var name3 in imageManager.updatedImages) {\n this.patchUpdatedImage(this.iconPositions[name3], imageManager.getImage(name3), texture);\n this.patchUpdatedImage(this.patternPositions[name3], imageManager.getImage(name3), texture);\n }\n };\n ImageAtlas.prototype.patchUpdatedImage = function patchUpdatedImage(position, image, texture) {\n if (!position || !image) {\n return;\n }\n if (position.version === image.version) {\n return;\n }\n position.version = image.version;\n var ref = position.tl;\n var x = ref[0];\n var y = ref[1];\n texture.update(image.data, void 0, {\n x,\n y\n });\n };\n register(\"ImagePosition\", ImagePosition);\n register(\"ImageAtlas\", ImageAtlas);\n var WritingMode = {\n horizontal: 1,\n vertical: 2,\n horizontalOnly: 3\n };\n var SHAPING_DEFAULT_OFFSET = -17;\n function isEmpty(positionedLines) {\n for (var i = 0, list = positionedLines; i < list.length; i += 1) {\n var line = list[i];\n if (line.positionedGlyphs.length !== 0) {\n return false;\n }\n }\n return true;\n }\n var PUAbegin = 57344;\n var PUAend = 63743;\n var SectionOptions = function SectionOptions2() {\n this.scale = 1;\n this.fontStack = \"\";\n this.imageName = null;\n };\n SectionOptions.forText = function forText(scale2, fontStack) {\n var textOptions = new SectionOptions();\n textOptions.scale = scale2 || 1;\n textOptions.fontStack = fontStack;\n return textOptions;\n };\n SectionOptions.forImage = function forImage(imageName) {\n var imageOptions = new SectionOptions();\n imageOptions.imageName = imageName;\n return imageOptions;\n };\n var TaggedString = function TaggedString2() {\n this.text = \"\";\n this.sectionIndex = [];\n this.sections = [];\n this.imageSectionID = null;\n };\n TaggedString.fromFeature = function fromFeature(text, defaultFontStack) {\n var result = new TaggedString();\n for (var i = 0; i < text.sections.length; i++) {\n var section = text.sections[i];\n if (!section.image) {\n result.addTextSection(section, defaultFontStack);\n } else {\n result.addImageSection(section);\n }\n }\n return result;\n };\n TaggedString.prototype.length = function length() {\n return this.text.length;\n };\n TaggedString.prototype.getSection = function getSection(index) {\n return this.sections[this.sectionIndex[index]];\n };\n TaggedString.prototype.getSectionIndex = function getSectionIndex(index) {\n return this.sectionIndex[index];\n };\n TaggedString.prototype.getCharCode = function getCharCode(index) {\n return this.text.charCodeAt(index);\n };\n TaggedString.prototype.verticalizePunctuation = function verticalizePunctuation$1() {\n this.text = verticalizePunctuation(this.text);\n };\n TaggedString.prototype.trim = function trim() {\n var beginningWhitespace = 0;\n for (var i = 0; i < this.text.length && whitespace[this.text.charCodeAt(i)]; i++) {\n beginningWhitespace++;\n }\n var trailingWhitespace = this.text.length;\n for (var i$1 = this.text.length - 1; i$1 >= 0 && i$1 >= beginningWhitespace && whitespace[this.text.charCodeAt(i$1)]; i$1--) {\n trailingWhitespace--;\n }\n this.text = this.text.substring(beginningWhitespace, trailingWhitespace);\n this.sectionIndex = this.sectionIndex.slice(beginningWhitespace, trailingWhitespace);\n };\n TaggedString.prototype.substring = function substring(start, end) {\n var substring2 = new TaggedString();\n substring2.text = this.text.substring(start, end);\n substring2.sectionIndex = this.sectionIndex.slice(start, end);\n substring2.sections = this.sections;\n return substring2;\n };\n TaggedString.prototype.toString = function toString2() {\n return this.text;\n };\n TaggedString.prototype.getMaxScale = function getMaxScale() {\n var this$1 = this;\n return this.sectionIndex.reduce(function(max, index) {\n return Math.max(max, this$1.sections[index].scale);\n }, 0);\n };\n TaggedString.prototype.addTextSection = function addTextSection(section, defaultFontStack) {\n this.text += section.text;\n this.sections.push(SectionOptions.forText(section.scale, section.fontStack || defaultFontStack));\n var index = this.sections.length - 1;\n for (var i = 0; i < section.text.length; ++i) {\n this.sectionIndex.push(index);\n }\n };\n TaggedString.prototype.addImageSection = function addImageSection(section) {\n var imageName = section.image ? section.image.name : \"\";\n if (imageName.length === 0) {\n warnOnce(\"Can't add FormattedSection with an empty image.\");\n return;\n }\n var nextImageSectionCharCode = this.getNextImageSectionCharCode();\n if (!nextImageSectionCharCode) {\n warnOnce(\"Reached maximum number of images \" + (PUAend - PUAbegin + 2));\n return;\n }\n this.text += String.fromCharCode(nextImageSectionCharCode);\n this.sections.push(SectionOptions.forImage(imageName));\n this.sectionIndex.push(this.sections.length - 1);\n };\n TaggedString.prototype.getNextImageSectionCharCode = function getNextImageSectionCharCode() {\n if (!this.imageSectionID) {\n this.imageSectionID = PUAbegin;\n return this.imageSectionID;\n }\n if (this.imageSectionID >= PUAend) {\n return null;\n }\n return ++this.imageSectionID;\n };\n function breakLines(input, lineBreakPoints) {\n var lines = [];\n var text = input.text;\n var start = 0;\n for (var i = 0, list = lineBreakPoints; i < list.length; i += 1) {\n var lineBreak = list[i];\n lines.push(input.substring(start, lineBreak));\n start = lineBreak;\n }\n if (start < text.length) {\n lines.push(input.substring(start, text.length));\n }\n return lines;\n }\n function shapeText(text, glyphMap, glyphPositions, imagePositions, defaultFontStack, maxWidth, lineHeight, textAnchor, textJustify, spacing, translate2, writingMode, allowVerticalPlacement, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom) {\n var logicalInput = TaggedString.fromFeature(text, defaultFontStack);\n if (writingMode === WritingMode.vertical) {\n logicalInput.verticalizePunctuation();\n }\n var lines;\n var processBidirectionalText = plugin.processBidirectionalText;\n var processStyledBidirectionalText = plugin.processStyledBidirectionalText;\n if (processBidirectionalText && logicalInput.sections.length === 1) {\n lines = [];\n var untaggedLines = processBidirectionalText(logicalInput.toString(), determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize));\n for (var i$1 = 0, list = untaggedLines; i$1 < list.length; i$1 += 1) {\n var line = list[i$1];\n var taggedLine = new TaggedString();\n taggedLine.text = line;\n taggedLine.sections = logicalInput.sections;\n for (var i = 0; i < line.length; i++) {\n taggedLine.sectionIndex.push(0);\n }\n lines.push(taggedLine);\n }\n } else if (processStyledBidirectionalText) {\n lines = [];\n var processedLines = processStyledBidirectionalText(logicalInput.text, logicalInput.sectionIndex, determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize));\n for (var i$2 = 0, list$1 = processedLines; i$2 < list$1.length; i$2 += 1) {\n var line$1 = list$1[i$2];\n var taggedLine$1 = new TaggedString();\n taggedLine$1.text = line$1[0];\n taggedLine$1.sectionIndex = line$1[1];\n taggedLine$1.sections = logicalInput.sections;\n lines.push(taggedLine$1);\n }\n } else {\n lines = breakLines(logicalInput, determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize));\n }\n var positionedLines = [];\n var shaping = {\n positionedLines,\n text: logicalInput.toString(),\n top: translate2[1],\n bottom: translate2[1],\n left: translate2[0],\n right: translate2[0],\n writingMode,\n iconsInText: false,\n verticalizable: false\n };\n shapeLines(shaping, glyphMap, glyphPositions, imagePositions, lines, lineHeight, textAnchor, textJustify, writingMode, spacing, allowVerticalPlacement, layoutTextSizeThisZoom);\n if (isEmpty(positionedLines)) {\n return false;\n }\n return shaping;\n }\n var whitespace = {};\n whitespace[9] = true;\n whitespace[10] = true;\n whitespace[11] = true;\n whitespace[12] = true;\n whitespace[13] = true;\n whitespace[32] = true;\n var breakable = {};\n breakable[10] = true;\n breakable[32] = true;\n breakable[38] = true;\n breakable[40] = true;\n breakable[41] = true;\n breakable[43] = true;\n breakable[45] = true;\n breakable[47] = true;\n breakable[173] = true;\n breakable[183] = true;\n breakable[8203] = true;\n breakable[8208] = true;\n breakable[8211] = true;\n breakable[8231] = true;\n function getGlyphAdvance(codePoint, section, glyphMap, imagePositions, spacing, layoutTextSize) {\n if (!section.imageName) {\n var positions = glyphMap[section.fontStack];\n var glyph = positions && positions[codePoint];\n if (!glyph) {\n return 0;\n }\n return glyph.metrics.advance * section.scale + spacing;\n } else {\n var imagePosition = imagePositions[section.imageName];\n if (!imagePosition) {\n return 0;\n }\n return imagePosition.displaySize[0] * section.scale * ONE_EM / layoutTextSize + spacing;\n }\n }\n function determineAverageLineWidth(logicalInput, spacing, maxWidth, glyphMap, imagePositions, layoutTextSize) {\n var totalWidth = 0;\n for (var index = 0; index < logicalInput.length(); index++) {\n var section = logicalInput.getSection(index);\n totalWidth += getGlyphAdvance(logicalInput.getCharCode(index), section, glyphMap, imagePositions, spacing, layoutTextSize);\n }\n var lineCount = Math.max(1, Math.ceil(totalWidth / maxWidth));\n return totalWidth / lineCount;\n }\n function calculateBadness(lineWidth, targetWidth, penalty, isLastBreak) {\n var raggedness = Math.pow(lineWidth - targetWidth, 2);\n if (isLastBreak) {\n if (lineWidth < targetWidth) {\n return raggedness / 2;\n } else {\n return raggedness * 2;\n }\n }\n return raggedness + Math.abs(penalty) * penalty;\n }\n function calculatePenalty(codePoint, nextCodePoint, penalizableIdeographicBreak) {\n var penalty = 0;\n if (codePoint === 10) {\n penalty -= 1e4;\n }\n if (penalizableIdeographicBreak) {\n penalty += 150;\n }\n if (codePoint === 40 || codePoint === 65288) {\n penalty += 50;\n }\n if (nextCodePoint === 41 || nextCodePoint === 65289) {\n penalty += 50;\n }\n return penalty;\n }\n function evaluateBreak(breakIndex, breakX, targetWidth, potentialBreaks, penalty, isLastBreak) {\n var bestPriorBreak = null;\n var bestBreakBadness = calculateBadness(breakX, targetWidth, penalty, isLastBreak);\n for (var i = 0, list = potentialBreaks; i < list.length; i += 1) {\n var potentialBreak = list[i];\n var lineWidth = breakX - potentialBreak.x;\n var breakBadness = calculateBadness(lineWidth, targetWidth, penalty, isLastBreak) + potentialBreak.badness;\n if (breakBadness <= bestBreakBadness) {\n bestPriorBreak = potentialBreak;\n bestBreakBadness = breakBadness;\n }\n }\n return {\n index: breakIndex,\n x: breakX,\n priorBreak: bestPriorBreak,\n badness: bestBreakBadness\n };\n }\n function leastBadBreaks(lastLineBreak) {\n if (!lastLineBreak) {\n return [];\n }\n return leastBadBreaks(lastLineBreak.priorBreak).concat(lastLineBreak.index);\n }\n function determineLineBreaks(logicalInput, spacing, maxWidth, glyphMap, imagePositions, symbolPlacement, layoutTextSize) {\n if (symbolPlacement !== \"point\") {\n return [];\n }\n if (!logicalInput) {\n return [];\n }\n var potentialLineBreaks = [];\n var targetWidth = determineAverageLineWidth(logicalInput, spacing, maxWidth, glyphMap, imagePositions, layoutTextSize);\n var hasServerSuggestedBreakpoints = logicalInput.text.indexOf(\"\\u200B\") >= 0;\n var currentX = 0;\n for (var i = 0; i < logicalInput.length(); i++) {\n var section = logicalInput.getSection(i);\n var codePoint = logicalInput.getCharCode(i);\n if (!whitespace[codePoint]) {\n currentX += getGlyphAdvance(codePoint, section, glyphMap, imagePositions, spacing, layoutTextSize);\n }\n if (i < logicalInput.length() - 1) {\n var ideographicBreak = charAllowsIdeographicBreaking(codePoint);\n if (breakable[codePoint] || ideographicBreak || section.imageName) {\n potentialLineBreaks.push(evaluateBreak(i + 1, currentX, targetWidth, potentialLineBreaks, calculatePenalty(codePoint, logicalInput.getCharCode(i + 1), ideographicBreak && hasServerSuggestedBreakpoints), false));\n }\n }\n }\n return leastBadBreaks(evaluateBreak(logicalInput.length(), currentX, targetWidth, potentialLineBreaks, 0, true));\n }\n function getAnchorAlignment(anchor) {\n var horizontalAlign = 0.5, verticalAlign = 0.5;\n switch (anchor) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n horizontalAlign = 1;\n break;\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n horizontalAlign = 0;\n break;\n }\n switch (anchor) {\n case \"bottom\":\n case \"bottom-right\":\n case \"bottom-left\":\n verticalAlign = 1;\n break;\n case \"top\":\n case \"top-right\":\n case \"top-left\":\n verticalAlign = 0;\n break;\n }\n return {\n horizontalAlign,\n verticalAlign\n };\n }\n function shapeLines(shaping, glyphMap, glyphPositions, imagePositions, lines, lineHeight, textAnchor, textJustify, writingMode, spacing, allowVerticalPlacement, layoutTextSizeThisZoom) {\n var x = 0;\n var y = SHAPING_DEFAULT_OFFSET;\n var maxLineLength = 0;\n var maxLineHeight = 0;\n var justify = textJustify === \"right\" ? 1 : textJustify === \"left\" ? 0 : 0.5;\n var lineIndex = 0;\n for (var i$1 = 0, list = lines; i$1 < list.length; i$1 += 1) {\n var line = list[i$1];\n line.trim();\n var lineMaxScale = line.getMaxScale();\n var maxLineOffset = (lineMaxScale - 1) * ONE_EM;\n var positionedLine = {\n positionedGlyphs: [],\n lineOffset: 0\n };\n shaping.positionedLines[lineIndex] = positionedLine;\n var positionedGlyphs = positionedLine.positionedGlyphs;\n var lineOffset = 0;\n if (!line.length()) {\n y += lineHeight;\n ++lineIndex;\n continue;\n }\n for (var i = 0; i < line.length(); i++) {\n var section = line.getSection(i);\n var sectionIndex = line.getSectionIndex(i);\n var codePoint = line.getCharCode(i);\n var baselineOffset2 = 0;\n var metrics = null;\n var rect = null;\n var imageName = null;\n var verticalAdvance = ONE_EM;\n var vertical = !(writingMode === WritingMode.horizontal || !allowVerticalPlacement && !charHasUprightVerticalOrientation(codePoint) || allowVerticalPlacement && (whitespace[codePoint] || charInComplexShapingScript(codePoint)));\n if (!section.imageName) {\n var positions = glyphPositions[section.fontStack];\n var glyphPosition = positions && positions[codePoint];\n if (glyphPosition && glyphPosition.rect) {\n rect = glyphPosition.rect;\n metrics = glyphPosition.metrics;\n } else {\n var glyphs = glyphMap[section.fontStack];\n var glyph = glyphs && glyphs[codePoint];\n if (!glyph) {\n continue;\n }\n metrics = glyph.metrics;\n }\n baselineOffset2 = (lineMaxScale - section.scale) * ONE_EM;\n } else {\n var imagePosition = imagePositions[section.imageName];\n if (!imagePosition) {\n continue;\n }\n imageName = section.imageName;\n shaping.iconsInText = shaping.iconsInText || true;\n rect = imagePosition.paddedRect;\n var size = imagePosition.displaySize;\n section.scale = section.scale * ONE_EM / layoutTextSizeThisZoom;\n metrics = {\n width: size[0],\n height: size[1],\n left: IMAGE_PADDING,\n top: -GLYPH_PBF_BORDER,\n advance: vertical ? size[1] : size[0]\n };\n var imageOffset = ONE_EM - size[1] * section.scale;\n baselineOffset2 = maxLineOffset + imageOffset;\n verticalAdvance = metrics.advance;\n var offset = vertical ? size[0] * section.scale - ONE_EM * lineMaxScale : size[1] * section.scale - ONE_EM * lineMaxScale;\n if (offset > 0 && offset > lineOffset) {\n lineOffset = offset;\n }\n }\n if (!vertical) {\n positionedGlyphs.push({\n glyph: codePoint,\n imageName,\n x,\n y: y + baselineOffset2,\n vertical,\n scale: section.scale,\n fontStack: section.fontStack,\n sectionIndex,\n metrics,\n rect\n });\n x += metrics.advance * section.scale + spacing;\n } else {\n shaping.verticalizable = true;\n positionedGlyphs.push({\n glyph: codePoint,\n imageName,\n x,\n y: y + baselineOffset2,\n vertical,\n scale: section.scale,\n fontStack: section.fontStack,\n sectionIndex,\n metrics,\n rect\n });\n x += verticalAdvance * section.scale + spacing;\n }\n }\n if (positionedGlyphs.length !== 0) {\n var lineLength = x - spacing;\n maxLineLength = Math.max(lineLength, maxLineLength);\n justifyLine(positionedGlyphs, 0, positionedGlyphs.length - 1, justify, lineOffset);\n }\n x = 0;\n var currentLineHeight = lineHeight * lineMaxScale + lineOffset;\n positionedLine.lineOffset = Math.max(lineOffset, maxLineOffset);\n y += currentLineHeight;\n maxLineHeight = Math.max(currentLineHeight, maxLineHeight);\n ++lineIndex;\n }\n var height = y - SHAPING_DEFAULT_OFFSET;\n var ref = getAnchorAlignment(textAnchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n align$1(shaping.positionedLines, justify, horizontalAlign, verticalAlign, maxLineLength, maxLineHeight, lineHeight, height, lines.length);\n shaping.top += -verticalAlign * height;\n shaping.bottom = shaping.top + height;\n shaping.left += -horizontalAlign * maxLineLength;\n shaping.right = shaping.left + maxLineLength;\n }\n function justifyLine(positionedGlyphs, start, end, justify, lineOffset) {\n if (!justify && !lineOffset) {\n return;\n }\n var lastPositionedGlyph = positionedGlyphs[end];\n var lastAdvance = lastPositionedGlyph.metrics.advance * lastPositionedGlyph.scale;\n var lineIndent = (positionedGlyphs[end].x + lastAdvance) * justify;\n for (var j = start; j <= end; j++) {\n positionedGlyphs[j].x -= lineIndent;\n positionedGlyphs[j].y += lineOffset;\n }\n }\n function align$1(positionedLines, justify, horizontalAlign, verticalAlign, maxLineLength, maxLineHeight, lineHeight, blockHeight, lineCount) {\n var shiftX = (justify - horizontalAlign) * maxLineLength;\n var shiftY = 0;\n if (maxLineHeight !== lineHeight) {\n shiftY = -blockHeight * verticalAlign - SHAPING_DEFAULT_OFFSET;\n } else {\n shiftY = (-verticalAlign * lineCount + 0.5) * lineHeight;\n }\n for (var i$1 = 0, list$1 = positionedLines; i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n for (var i = 0, list = line.positionedGlyphs; i < list.length; i += 1) {\n var positionedGlyph = list[i];\n positionedGlyph.x += shiftX;\n positionedGlyph.y += shiftY;\n }\n }\n }\n function shapeIcon(image, iconOffset, iconAnchor) {\n var ref = getAnchorAlignment(iconAnchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n var dx = iconOffset[0];\n var dy = iconOffset[1];\n var x1 = dx - image.displaySize[0] * horizontalAlign;\n var x2 = x1 + image.displaySize[0];\n var y1 = dy - image.displaySize[1] * verticalAlign;\n var y2 = y1 + image.displaySize[1];\n return {\n image,\n top: y1,\n bottom: y2,\n left: x1,\n right: x2\n };\n }\n function fitIconToText(shapedIcon, shapedText, textFit, padding, iconOffset, fontScale) {\n var image = shapedIcon.image;\n var collisionPadding;\n if (image.content) {\n var content = image.content;\n var pixelRatio = image.pixelRatio || 1;\n collisionPadding = [\n content[0] / pixelRatio,\n content[1] / pixelRatio,\n image.displaySize[0] - content[2] / pixelRatio,\n image.displaySize[1] - content[3] / pixelRatio\n ];\n }\n var textLeft = shapedText.left * fontScale;\n var textRight = shapedText.right * fontScale;\n var top, right, bottom, left;\n if (textFit === \"width\" || textFit === \"both\") {\n left = iconOffset[0] + textLeft - padding[3];\n right = iconOffset[0] + textRight + padding[1];\n } else {\n left = iconOffset[0] + (textLeft + textRight - image.displaySize[0]) / 2;\n right = left + image.displaySize[0];\n }\n var textTop = shapedText.top * fontScale;\n var textBottom = shapedText.bottom * fontScale;\n if (textFit === \"height\" || textFit === \"both\") {\n top = iconOffset[1] + textTop - padding[0];\n bottom = iconOffset[1] + textBottom + padding[2];\n } else {\n top = iconOffset[1] + (textTop + textBottom - image.displaySize[1]) / 2;\n bottom = top + image.displaySize[1];\n }\n return {\n image,\n top,\n right,\n bottom,\n left,\n collisionPadding\n };\n }\n var Anchor = function(Point2) {\n function Anchor2(x, y, angle, segment) {\n Point2.call(this, x, y);\n this.angle = angle;\n if (segment !== void 0) {\n this.segment = segment;\n }\n }\n if (Point2)\n Anchor2.__proto__ = Point2;\n Anchor2.prototype = Object.create(Point2 && Point2.prototype);\n Anchor2.prototype.constructor = Anchor2;\n Anchor2.prototype.clone = function clone2() {\n return new Anchor2(this.x, this.y, this.angle, this.segment);\n };\n return Anchor2;\n }(pointGeometry);\n register(\"Anchor\", Anchor);\n var SIZE_PACK_FACTOR = 128;\n function getSizeData(tileZoom, value) {\n var expression2 = value.expression;\n if (expression2.kind === \"constant\") {\n var layoutSize = expression2.evaluate(new EvaluationParameters(tileZoom + 1));\n return {\n kind: \"constant\",\n layoutSize\n };\n } else if (expression2.kind === \"source\") {\n return { kind: \"source\" };\n } else {\n var zoomStops = expression2.zoomStops;\n var interpolationType = expression2.interpolationType;\n var lower = 0;\n while (lower < zoomStops.length && zoomStops[lower] <= tileZoom) {\n lower++;\n }\n lower = Math.max(0, lower - 1);\n var upper = lower;\n while (upper < zoomStops.length && zoomStops[upper] < tileZoom + 1) {\n upper++;\n }\n upper = Math.min(zoomStops.length - 1, upper);\n var minZoom = zoomStops[lower];\n var maxZoom = zoomStops[upper];\n if (expression2.kind === \"composite\") {\n return {\n kind: \"composite\",\n minZoom,\n maxZoom,\n interpolationType\n };\n }\n var minSize = expression2.evaluate(new EvaluationParameters(minZoom));\n var maxSize = expression2.evaluate(new EvaluationParameters(maxZoom));\n return {\n kind: \"camera\",\n minZoom,\n maxZoom,\n minSize,\n maxSize,\n interpolationType\n };\n }\n }\n function evaluateSizeForFeature(sizeData, ref, ref$1) {\n var uSize = ref.uSize;\n var uSizeT = ref.uSizeT;\n var lowerSize = ref$1.lowerSize;\n var upperSize = ref$1.upperSize;\n if (sizeData.kind === \"source\") {\n return lowerSize / SIZE_PACK_FACTOR;\n } else if (sizeData.kind === \"composite\") {\n return number(lowerSize / SIZE_PACK_FACTOR, upperSize / SIZE_PACK_FACTOR, uSizeT);\n }\n return uSize;\n }\n function evaluateSizeForZoom(sizeData, zoom) {\n var uSizeT = 0;\n var uSize = 0;\n if (sizeData.kind === \"constant\") {\n uSize = sizeData.layoutSize;\n } else if (sizeData.kind !== \"source\") {\n var interpolationType = sizeData.interpolationType;\n var minZoom = sizeData.minZoom;\n var maxZoom = sizeData.maxZoom;\n var t = !interpolationType ? 0 : clamp(Interpolate.interpolationFactor(interpolationType, zoom, minZoom, maxZoom), 0, 1);\n if (sizeData.kind === \"camera\") {\n uSize = number(sizeData.minSize, sizeData.maxSize, t);\n } else {\n uSizeT = t;\n }\n }\n return {\n uSizeT,\n uSize\n };\n }\n var symbolSize = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n getSizeData,\n evaluateSizeForFeature,\n evaluateSizeForZoom,\n SIZE_PACK_FACTOR\n });\n function checkMaxAngle(line, anchor, labelLength, windowSize, maxAngle) {\n if (anchor.segment === void 0) {\n return true;\n }\n var p = anchor;\n var index = anchor.segment + 1;\n var anchorDistance = 0;\n while (anchorDistance > -labelLength / 2) {\n index--;\n if (index < 0) {\n return false;\n }\n anchorDistance -= line[index].dist(p);\n p = line[index];\n }\n anchorDistance += line[index].dist(line[index + 1]);\n index++;\n var recentCorners = [];\n var recentAngleDelta = 0;\n while (anchorDistance < labelLength / 2) {\n var prev = line[index - 1];\n var current = line[index];\n var next = line[index + 1];\n if (!next) {\n return false;\n }\n var angleDelta = prev.angleTo(current) - current.angleTo(next);\n angleDelta = Math.abs((angleDelta + 3 * Math.PI) % (Math.PI * 2) - Math.PI);\n recentCorners.push({\n distance: anchorDistance,\n angleDelta\n });\n recentAngleDelta += angleDelta;\n while (anchorDistance - recentCorners[0].distance > windowSize) {\n recentAngleDelta -= recentCorners.shift().angleDelta;\n }\n if (recentAngleDelta > maxAngle) {\n return false;\n }\n index++;\n anchorDistance += current.dist(next);\n }\n return true;\n }\n function getLineLength(line) {\n var lineLength = 0;\n for (var k = 0; k < line.length - 1; k++) {\n lineLength += line[k].dist(line[k + 1]);\n }\n return lineLength;\n }\n function getAngleWindowSize(shapedText, glyphSize, boxScale) {\n return shapedText ? 3 / 5 * glyphSize * boxScale : 0;\n }\n function getShapedLabelLength(shapedText, shapedIcon) {\n return Math.max(shapedText ? shapedText.right - shapedText.left : 0, shapedIcon ? shapedIcon.right - shapedIcon.left : 0);\n }\n function getCenterAnchor(line, maxAngle, shapedText, shapedIcon, glyphSize, boxScale) {\n var angleWindowSize = getAngleWindowSize(shapedText, glyphSize, boxScale);\n var labelLength = getShapedLabelLength(shapedText, shapedIcon) * boxScale;\n var prevDistance = 0;\n var centerDistance = getLineLength(line) / 2;\n for (var i = 0; i < line.length - 1; i++) {\n var a = line[i], b = line[i + 1];\n var segmentDistance = a.dist(b);\n if (prevDistance + segmentDistance > centerDistance) {\n var t = (centerDistance - prevDistance) / segmentDistance, x = number(a.x, b.x, t), y = number(a.y, b.y, t);\n var anchor = new Anchor(x, y, b.angleTo(a), i);\n anchor._round();\n if (!angleWindowSize || checkMaxAngle(line, anchor, labelLength, angleWindowSize, maxAngle)) {\n return anchor;\n } else {\n return;\n }\n }\n prevDistance += segmentDistance;\n }\n }\n function getAnchors(line, spacing, maxAngle, shapedText, shapedIcon, glyphSize, boxScale, overscaling, tileExtent) {\n var angleWindowSize = getAngleWindowSize(shapedText, glyphSize, boxScale);\n var shapedLabelLength = getShapedLabelLength(shapedText, shapedIcon);\n var labelLength = shapedLabelLength * boxScale;\n var isLineContinued = line[0].x === 0 || line[0].x === tileExtent || line[0].y === 0 || line[0].y === tileExtent;\n if (spacing - labelLength < spacing / 4) {\n spacing = labelLength + spacing / 4;\n }\n var fixedExtraOffset = glyphSize * 2;\n var offset = !isLineContinued ? (shapedLabelLength / 2 + fixedExtraOffset) * boxScale * overscaling % spacing : spacing / 2 * overscaling % spacing;\n return resample(line, offset, spacing, angleWindowSize, maxAngle, labelLength, isLineContinued, false, tileExtent);\n }\n function resample(line, offset, spacing, angleWindowSize, maxAngle, labelLength, isLineContinued, placeAtMiddle, tileExtent) {\n var halfLabelLength = labelLength / 2;\n var lineLength = getLineLength(line);\n var distance = 0, markedDistance = offset - spacing;\n var anchors = [];\n for (var i = 0; i < line.length - 1; i++) {\n var a = line[i], b = line[i + 1];\n var segmentDist = a.dist(b), angle = b.angleTo(a);\n while (markedDistance + spacing < distance + segmentDist) {\n markedDistance += spacing;\n var t = (markedDistance - distance) / segmentDist, x = number(a.x, b.x, t), y = number(a.y, b.y, t);\n if (x >= 0 && x < tileExtent && y >= 0 && y < tileExtent && markedDistance - halfLabelLength >= 0 && markedDistance + halfLabelLength <= lineLength) {\n var anchor = new Anchor(x, y, angle, i);\n anchor._round();\n if (!angleWindowSize || checkMaxAngle(line, anchor, labelLength, angleWindowSize, maxAngle)) {\n anchors.push(anchor);\n }\n }\n }\n distance += segmentDist;\n }\n if (!placeAtMiddle && !anchors.length && !isLineContinued) {\n anchors = resample(line, distance / 2, spacing, angleWindowSize, maxAngle, labelLength, isLineContinued, true, tileExtent);\n }\n return anchors;\n }\n function clipLine(lines, x1, y1, x2, y2) {\n var clippedLines = [];\n for (var l = 0; l < lines.length; l++) {\n var line = lines[l];\n var clippedLine = void 0;\n for (var i = 0; i < line.length - 1; i++) {\n var p0 = line[i];\n var p1 = line[i + 1];\n if (p0.x < x1 && p1.x < x1) {\n continue;\n } else if (p0.x < x1) {\n p0 = new pointGeometry(x1, p0.y + (p1.y - p0.y) * ((x1 - p0.x) / (p1.x - p0.x)))._round();\n } else if (p1.x < x1) {\n p1 = new pointGeometry(x1, p0.y + (p1.y - p0.y) * ((x1 - p0.x) / (p1.x - p0.x)))._round();\n }\n if (p0.y < y1 && p1.y < y1) {\n continue;\n } else if (p0.y < y1) {\n p0 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y1 - p0.y) / (p1.y - p0.y)), y1)._round();\n } else if (p1.y < y1) {\n p1 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y1 - p0.y) / (p1.y - p0.y)), y1)._round();\n }\n if (p0.x >= x2 && p1.x >= x2) {\n continue;\n } else if (p0.x >= x2) {\n p0 = new pointGeometry(x2, p0.y + (p1.y - p0.y) * ((x2 - p0.x) / (p1.x - p0.x)))._round();\n } else if (p1.x >= x2) {\n p1 = new pointGeometry(x2, p0.y + (p1.y - p0.y) * ((x2 - p0.x) / (p1.x - p0.x)))._round();\n }\n if (p0.y >= y2 && p1.y >= y2) {\n continue;\n } else if (p0.y >= y2) {\n p0 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y2 - p0.y) / (p1.y - p0.y)), y2)._round();\n } else if (p1.y >= y2) {\n p1 = new pointGeometry(p0.x + (p1.x - p0.x) * ((y2 - p0.y) / (p1.y - p0.y)), y2)._round();\n }\n if (!clippedLine || !p0.equals(clippedLine[clippedLine.length - 1])) {\n clippedLine = [p0];\n clippedLines.push(clippedLine);\n }\n clippedLine.push(p1);\n }\n }\n return clippedLines;\n }\n var border$1 = IMAGE_PADDING;\n function getIconQuads(shapedIcon, iconRotate, isSDFIcon, hasIconTextFit) {\n var quads = [];\n var image = shapedIcon.image;\n var pixelRatio = image.pixelRatio;\n var imageWidth = image.paddedRect.w - 2 * border$1;\n var imageHeight = image.paddedRect.h - 2 * border$1;\n var iconWidth = shapedIcon.right - shapedIcon.left;\n var iconHeight = shapedIcon.bottom - shapedIcon.top;\n var stretchX = image.stretchX || [[\n 0,\n imageWidth\n ]];\n var stretchY = image.stretchY || [[\n 0,\n imageHeight\n ]];\n var reduceRanges = function(sum, range) {\n return sum + range[1] - range[0];\n };\n var stretchWidth = stretchX.reduce(reduceRanges, 0);\n var stretchHeight = stretchY.reduce(reduceRanges, 0);\n var fixedWidth = imageWidth - stretchWidth;\n var fixedHeight = imageHeight - stretchHeight;\n var stretchOffsetX = 0;\n var stretchContentWidth = stretchWidth;\n var stretchOffsetY = 0;\n var stretchContentHeight = stretchHeight;\n var fixedOffsetX = 0;\n var fixedContentWidth = fixedWidth;\n var fixedOffsetY = 0;\n var fixedContentHeight = fixedHeight;\n if (image.content && hasIconTextFit) {\n var content = image.content;\n stretchOffsetX = sumWithinRange(stretchX, 0, content[0]);\n stretchOffsetY = sumWithinRange(stretchY, 0, content[1]);\n stretchContentWidth = sumWithinRange(stretchX, content[0], content[2]);\n stretchContentHeight = sumWithinRange(stretchY, content[1], content[3]);\n fixedOffsetX = content[0] - stretchOffsetX;\n fixedOffsetY = content[1] - stretchOffsetY;\n fixedContentWidth = content[2] - content[0] - stretchContentWidth;\n fixedContentHeight = content[3] - content[1] - stretchContentHeight;\n }\n var makeBox = function(left, top, right, bottom) {\n var leftEm = getEmOffset(left.stretch - stretchOffsetX, stretchContentWidth, iconWidth, shapedIcon.left);\n var leftPx = getPxOffset(left.fixed - fixedOffsetX, fixedContentWidth, left.stretch, stretchWidth);\n var topEm = getEmOffset(top.stretch - stretchOffsetY, stretchContentHeight, iconHeight, shapedIcon.top);\n var topPx = getPxOffset(top.fixed - fixedOffsetY, fixedContentHeight, top.stretch, stretchHeight);\n var rightEm = getEmOffset(right.stretch - stretchOffsetX, stretchContentWidth, iconWidth, shapedIcon.left);\n var rightPx = getPxOffset(right.fixed - fixedOffsetX, fixedContentWidth, right.stretch, stretchWidth);\n var bottomEm = getEmOffset(bottom.stretch - stretchOffsetY, stretchContentHeight, iconHeight, shapedIcon.top);\n var bottomPx = getPxOffset(bottom.fixed - fixedOffsetY, fixedContentHeight, bottom.stretch, stretchHeight);\n var tl = new pointGeometry(leftEm, topEm);\n var tr = new pointGeometry(rightEm, topEm);\n var br = new pointGeometry(rightEm, bottomEm);\n var bl = new pointGeometry(leftEm, bottomEm);\n var pixelOffsetTL = new pointGeometry(leftPx / pixelRatio, topPx / pixelRatio);\n var pixelOffsetBR = new pointGeometry(rightPx / pixelRatio, bottomPx / pixelRatio);\n var angle = iconRotate * Math.PI / 180;\n if (angle) {\n var sin = Math.sin(angle), cos = Math.cos(angle), matrix = [\n cos,\n -sin,\n sin,\n cos\n ];\n tl._matMult(matrix);\n tr._matMult(matrix);\n bl._matMult(matrix);\n br._matMult(matrix);\n }\n var x12 = left.stretch + left.fixed;\n var x22 = right.stretch + right.fixed;\n var y12 = top.stretch + top.fixed;\n var y22 = bottom.stretch + bottom.fixed;\n var subRect = {\n x: image.paddedRect.x + border$1 + x12,\n y: image.paddedRect.y + border$1 + y12,\n w: x22 - x12,\n h: y22 - y12\n };\n var minFontScaleX = fixedContentWidth / pixelRatio / iconWidth;\n var minFontScaleY = fixedContentHeight / pixelRatio / iconHeight;\n return {\n tl,\n tr,\n bl,\n br,\n tex: subRect,\n writingMode: void 0,\n glyphOffset: [\n 0,\n 0\n ],\n sectionIndex: 0,\n pixelOffsetTL,\n pixelOffsetBR,\n minFontScaleX,\n minFontScaleY,\n isSDF: isSDFIcon\n };\n };\n if (!hasIconTextFit || !image.stretchX && !image.stretchY) {\n quads.push(makeBox({\n fixed: 0,\n stretch: -1\n }, {\n fixed: 0,\n stretch: -1\n }, {\n fixed: 0,\n stretch: imageWidth + 1\n }, {\n fixed: 0,\n stretch: imageHeight + 1\n }));\n } else {\n var xCuts = stretchZonesToCuts(stretchX, fixedWidth, stretchWidth);\n var yCuts = stretchZonesToCuts(stretchY, fixedHeight, stretchHeight);\n for (var xi = 0; xi < xCuts.length - 1; xi++) {\n var x1 = xCuts[xi];\n var x2 = xCuts[xi + 1];\n for (var yi = 0; yi < yCuts.length - 1; yi++) {\n var y1 = yCuts[yi];\n var y2 = yCuts[yi + 1];\n quads.push(makeBox(x1, y1, x2, y2));\n }\n }\n }\n return quads;\n }\n function sumWithinRange(ranges, min, max) {\n var sum = 0;\n for (var i = 0, list = ranges; i < list.length; i += 1) {\n var range = list[i];\n sum += Math.max(min, Math.min(max, range[1])) - Math.max(min, Math.min(max, range[0]));\n }\n return sum;\n }\n function stretchZonesToCuts(stretchZones, fixedSize, stretchSize) {\n var cuts = [{\n fixed: -border$1,\n stretch: 0\n }];\n for (var i = 0, list = stretchZones; i < list.length; i += 1) {\n var ref = list[i];\n var c1 = ref[0];\n var c2 = ref[1];\n var last = cuts[cuts.length - 1];\n cuts.push({\n fixed: c1 - last.stretch,\n stretch: last.stretch\n });\n cuts.push({\n fixed: c1 - last.stretch,\n stretch: last.stretch + (c2 - c1)\n });\n }\n cuts.push({\n fixed: fixedSize + border$1,\n stretch: stretchSize\n });\n return cuts;\n }\n function getEmOffset(stretchOffset, stretchSize, iconSize, iconOffset) {\n return stretchOffset / stretchSize * iconSize + iconOffset;\n }\n function getPxOffset(fixedOffset, fixedSize, stretchOffset, stretchSize) {\n return fixedOffset - fixedSize * stretchOffset / stretchSize;\n }\n function getGlyphQuads(anchor, shaping, textOffset, layer2, alongLine, feature, imageMap, allowVerticalPlacement) {\n var textRotate = layer2.layout.get(\"text-rotate\").evaluate(feature, {}) * Math.PI / 180;\n var quads = [];\n for (var i$1 = 0, list$1 = shaping.positionedLines; i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n for (var i = 0, list = line.positionedGlyphs; i < list.length; i += 1) {\n var positionedGlyph = list[i];\n if (!positionedGlyph.rect) {\n continue;\n }\n var textureRect = positionedGlyph.rect || {};\n var glyphPadding = 1;\n var rectBuffer = GLYPH_PBF_BORDER + glyphPadding;\n var isSDF = true;\n var pixelRatio = 1;\n var lineOffset = 0;\n var rotateVerticalGlyph = (alongLine || allowVerticalPlacement) && positionedGlyph.vertical;\n var halfAdvance = positionedGlyph.metrics.advance * positionedGlyph.scale / 2;\n if (allowVerticalPlacement && shaping.verticalizable) {\n var scaledGlyphOffset = (positionedGlyph.scale - 1) * ONE_EM;\n var imageOffset = (ONE_EM - positionedGlyph.metrics.width * positionedGlyph.scale) / 2;\n lineOffset = line.lineOffset / 2 - (positionedGlyph.imageName ? -imageOffset : scaledGlyphOffset);\n }\n if (positionedGlyph.imageName) {\n var image = imageMap[positionedGlyph.imageName];\n isSDF = image.sdf;\n pixelRatio = image.pixelRatio;\n rectBuffer = IMAGE_PADDING / pixelRatio;\n }\n var glyphOffset2 = alongLine ? [\n positionedGlyph.x + halfAdvance,\n positionedGlyph.y\n ] : [\n 0,\n 0\n ];\n var builtInOffset = alongLine ? [\n 0,\n 0\n ] : [\n positionedGlyph.x + halfAdvance + textOffset[0],\n positionedGlyph.y + textOffset[1] - lineOffset\n ];\n var verticalizedLabelOffset = [\n 0,\n 0\n ];\n if (rotateVerticalGlyph) {\n verticalizedLabelOffset = builtInOffset;\n builtInOffset = [\n 0,\n 0\n ];\n }\n var x1 = (positionedGlyph.metrics.left - rectBuffer) * positionedGlyph.scale - halfAdvance + builtInOffset[0];\n var y1 = (-positionedGlyph.metrics.top - rectBuffer) * positionedGlyph.scale + builtInOffset[1];\n var x2 = x1 + textureRect.w * positionedGlyph.scale / pixelRatio;\n var y2 = y1 + textureRect.h * positionedGlyph.scale / pixelRatio;\n var tl = new pointGeometry(x1, y1);\n var tr = new pointGeometry(x2, y1);\n var bl = new pointGeometry(x1, y2);\n var br = new pointGeometry(x2, y2);\n if (rotateVerticalGlyph) {\n var center = new pointGeometry(-halfAdvance, halfAdvance - SHAPING_DEFAULT_OFFSET);\n var verticalRotation = -Math.PI / 2;\n var xHalfWidthOffsetCorrection = ONE_EM / 2 - halfAdvance;\n var yImageOffsetCorrection = positionedGlyph.imageName ? xHalfWidthOffsetCorrection : 0;\n var halfWidthOffsetCorrection = new pointGeometry(5 - SHAPING_DEFAULT_OFFSET - xHalfWidthOffsetCorrection, -yImageOffsetCorrection);\n var verticalOffsetCorrection = new (Function.prototype.bind.apply(pointGeometry, [null].concat(verticalizedLabelOffset)))();\n tl._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n tr._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n bl._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n br._rotateAround(verticalRotation, center)._add(halfWidthOffsetCorrection)._add(verticalOffsetCorrection);\n }\n if (textRotate) {\n var sin = Math.sin(textRotate), cos = Math.cos(textRotate), matrix = [\n cos,\n -sin,\n sin,\n cos\n ];\n tl._matMult(matrix);\n tr._matMult(matrix);\n bl._matMult(matrix);\n br._matMult(matrix);\n }\n var pixelOffsetTL = new pointGeometry(0, 0);\n var pixelOffsetBR = new pointGeometry(0, 0);\n var minFontScaleX = 0;\n var minFontScaleY = 0;\n quads.push({\n tl,\n tr,\n bl,\n br,\n tex: textureRect,\n writingMode: shaping.writingMode,\n glyphOffset: glyphOffset2,\n sectionIndex: positionedGlyph.sectionIndex,\n isSDF,\n pixelOffsetTL,\n pixelOffsetBR,\n minFontScaleX,\n minFontScaleY\n });\n }\n }\n return quads;\n }\n var CollisionFeature = function CollisionFeature2(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, shaped, boxScale, padding, alignLine, rotate2) {\n this.boxStartIndex = collisionBoxArray.length;\n if (alignLine) {\n var top = shaped.top;\n var bottom = shaped.bottom;\n var collisionPadding = shaped.collisionPadding;\n if (collisionPadding) {\n top -= collisionPadding[1];\n bottom += collisionPadding[3];\n }\n var height = bottom - top;\n if (height > 0) {\n height = Math.max(10, height);\n this.circleDiameter = height;\n }\n } else {\n var y1 = shaped.top * boxScale - padding;\n var y2 = shaped.bottom * boxScale + padding;\n var x1 = shaped.left * boxScale - padding;\n var x2 = shaped.right * boxScale + padding;\n var collisionPadding$1 = shaped.collisionPadding;\n if (collisionPadding$1) {\n x1 -= collisionPadding$1[0] * boxScale;\n y1 -= collisionPadding$1[1] * boxScale;\n x2 += collisionPadding$1[2] * boxScale;\n y2 += collisionPadding$1[3] * boxScale;\n }\n if (rotate2) {\n var tl = new pointGeometry(x1, y1);\n var tr = new pointGeometry(x2, y1);\n var bl = new pointGeometry(x1, y2);\n var br = new pointGeometry(x2, y2);\n var rotateRadians = rotate2 * Math.PI / 180;\n tl._rotate(rotateRadians);\n tr._rotate(rotateRadians);\n bl._rotate(rotateRadians);\n br._rotate(rotateRadians);\n x1 = Math.min(tl.x, tr.x, bl.x, br.x);\n x2 = Math.max(tl.x, tr.x, bl.x, br.x);\n y1 = Math.min(tl.y, tr.y, bl.y, br.y);\n y2 = Math.max(tl.y, tr.y, bl.y, br.y);\n }\n collisionBoxArray.emplaceBack(anchor.x, anchor.y, x1, y1, x2, y2, featureIndex, sourceLayerIndex, bucketIndex);\n }\n this.boxEndIndex = collisionBoxArray.length;\n };\n var TinyQueue = function TinyQueue2(data, compare2) {\n if (data === void 0)\n data = [];\n if (compare2 === void 0)\n compare2 = defaultCompare$1;\n this.data = data;\n this.length = this.data.length;\n this.compare = compare2;\n if (this.length > 0) {\n for (var i = (this.length >> 1) - 1; i >= 0; i--) {\n this._down(i);\n }\n }\n };\n TinyQueue.prototype.push = function push(item) {\n this.data.push(item);\n this.length++;\n this._up(this.length - 1);\n };\n TinyQueue.prototype.pop = function pop() {\n if (this.length === 0) {\n return void 0;\n }\n var top = this.data[0];\n var bottom = this.data.pop();\n this.length--;\n if (this.length > 0) {\n this.data[0] = bottom;\n this._down(0);\n }\n return top;\n };\n TinyQueue.prototype.peek = function peek() {\n return this.data[0];\n };\n TinyQueue.prototype._up = function _up(pos) {\n var ref = this;\n var data = ref.data;\n var compare2 = ref.compare;\n var item = data[pos];\n while (pos > 0) {\n var parent = pos - 1 >> 1;\n var current = data[parent];\n if (compare2(item, current) >= 0) {\n break;\n }\n data[pos] = current;\n pos = parent;\n }\n data[pos] = item;\n };\n TinyQueue.prototype._down = function _down(pos) {\n var ref = this;\n var data = ref.data;\n var compare2 = ref.compare;\n var halfLength = this.length >> 1;\n var item = data[pos];\n while (pos < halfLength) {\n var left = (pos << 1) + 1;\n var best = data[left];\n var right = left + 1;\n if (right < this.length && compare2(data[right], best) < 0) {\n left = right;\n best = data[right];\n }\n if (compare2(best, item) >= 0) {\n break;\n }\n data[pos] = best;\n pos = left;\n }\n data[pos] = item;\n };\n function defaultCompare$1(a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }\n function findPoleOfInaccessibility(polygonRings, precision, debug) {\n if (precision === void 0)\n precision = 1;\n if (debug === void 0)\n debug = false;\n var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\n var outerRing = polygonRings[0];\n for (var i = 0; i < outerRing.length; i++) {\n var p = outerRing[i];\n if (!i || p.x < minX) {\n minX = p.x;\n }\n if (!i || p.y < minY) {\n minY = p.y;\n }\n if (!i || p.x > maxX) {\n maxX = p.x;\n }\n if (!i || p.y > maxY) {\n maxY = p.y;\n }\n }\n var width = maxX - minX;\n var height = maxY - minY;\n var cellSize = Math.min(width, height);\n var h = cellSize / 2;\n var cellQueue = new TinyQueue([], compareMax);\n if (cellSize === 0) {\n return new pointGeometry(minX, minY);\n }\n for (var x = minX; x < maxX; x += cellSize) {\n for (var y = minY; y < maxY; y += cellSize) {\n cellQueue.push(new Cell(x + h, y + h, h, polygonRings));\n }\n }\n var bestCell = getCentroidCell(polygonRings);\n var numProbes = cellQueue.length;\n while (cellQueue.length) {\n var cell = cellQueue.pop();\n if (cell.d > bestCell.d || !bestCell.d) {\n bestCell = cell;\n if (debug) {\n console.log(\"found best %d after %d probes\", Math.round(1e4 * cell.d) / 1e4, numProbes);\n }\n }\n if (cell.max - bestCell.d <= precision) {\n continue;\n }\n h = cell.h / 2;\n cellQueue.push(new Cell(cell.p.x - h, cell.p.y - h, h, polygonRings));\n cellQueue.push(new Cell(cell.p.x + h, cell.p.y - h, h, polygonRings));\n cellQueue.push(new Cell(cell.p.x - h, cell.p.y + h, h, polygonRings));\n cellQueue.push(new Cell(cell.p.x + h, cell.p.y + h, h, polygonRings));\n numProbes += 4;\n }\n if (debug) {\n console.log(\"num probes: \" + numProbes);\n console.log(\"best distance: \" + bestCell.d);\n }\n return bestCell.p;\n }\n function compareMax(a, b) {\n return b.max - a.max;\n }\n function Cell(x, y, h, polygon) {\n this.p = new pointGeometry(x, y);\n this.h = h;\n this.d = pointToPolygonDist(this.p, polygon);\n this.max = this.d + this.h * Math.SQRT2;\n }\n function pointToPolygonDist(p, polygon) {\n var inside = false;\n var minDistSq = Infinity;\n for (var k = 0; k < polygon.length; k++) {\n var ring = polygon[k];\n for (var i = 0, len = ring.length, j = len - 1; i < len; j = i++) {\n var a = ring[i];\n var b = ring[j];\n if (a.y > p.y !== b.y > p.y && p.x < (b.x - a.x) * (p.y - a.y) / (b.y - a.y) + a.x) {\n inside = !inside;\n }\n minDistSq = Math.min(minDistSq, distToSegmentSquared(p, a, b));\n }\n }\n return (inside ? 1 : -1) * Math.sqrt(minDistSq);\n }\n function getCentroidCell(polygon) {\n var area2 = 0;\n var x = 0;\n var y = 0;\n var points = polygon[0];\n for (var i = 0, len = points.length, j = len - 1; i < len; j = i++) {\n var a = points[i];\n var b = points[j];\n var f = a.x * b.y - b.x * a.y;\n x += (a.x + b.x) * f;\n y += (a.y + b.y) * f;\n area2 += f * 3;\n }\n return new Cell(x / area2, y / area2, 0, polygon);\n }\n var baselineOffset = 7;\n var INVALID_TEXT_OFFSET = Number.POSITIVE_INFINITY;\n function evaluateVariableOffset(anchor, offset) {\n function fromRadialOffset(anchor2, radialOffset) {\n var x = 0, y = 0;\n if (radialOffset < 0) {\n radialOffset = 0;\n }\n var hypotenuse = radialOffset / Math.sqrt(2);\n switch (anchor2) {\n case \"top-right\":\n case \"top-left\":\n y = hypotenuse - baselineOffset;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n y = -hypotenuse + baselineOffset;\n break;\n case \"bottom\":\n y = -radialOffset + baselineOffset;\n break;\n case \"top\":\n y = radialOffset - baselineOffset;\n break;\n }\n switch (anchor2) {\n case \"top-right\":\n case \"bottom-right\":\n x = -hypotenuse;\n break;\n case \"top-left\":\n case \"bottom-left\":\n x = hypotenuse;\n break;\n case \"left\":\n x = radialOffset;\n break;\n case \"right\":\n x = -radialOffset;\n break;\n }\n return [\n x,\n y\n ];\n }\n function fromTextOffset(anchor2, offsetX, offsetY) {\n var x = 0, y = 0;\n offsetX = Math.abs(offsetX);\n offsetY = Math.abs(offsetY);\n switch (anchor2) {\n case \"top-right\":\n case \"top-left\":\n case \"top\":\n y = offsetY - baselineOffset;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n case \"bottom\":\n y = -offsetY + baselineOffset;\n break;\n }\n switch (anchor2) {\n case \"top-right\":\n case \"bottom-right\":\n case \"right\":\n x = -offsetX;\n break;\n case \"top-left\":\n case \"bottom-left\":\n case \"left\":\n x = offsetX;\n break;\n }\n return [\n x,\n y\n ];\n }\n return offset[1] !== INVALID_TEXT_OFFSET ? fromTextOffset(anchor, offset[0], offset[1]) : fromRadialOffset(anchor, offset[0]);\n }\n function performSymbolLayout(bucket, glyphMap, glyphPositions, imageMap, imagePositions, showCollisionBoxes, canonical) {\n bucket.createArrays();\n var tileSize = 512 * bucket.overscaling;\n bucket.tilePixelRatio = EXTENT$1 / tileSize;\n bucket.compareText = {};\n bucket.iconsNeedLinear = false;\n var layout2 = bucket.layers[0].layout;\n var unevaluatedLayoutValues = bucket.layers[0]._unevaluatedLayout._values;\n var sizes = {};\n if (bucket.textSizeData.kind === \"composite\") {\n var ref = bucket.textSizeData;\n var minZoom = ref.minZoom;\n var maxZoom = ref.maxZoom;\n sizes.compositeTextSizes = [\n unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(minZoom), canonical),\n unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(maxZoom), canonical)\n ];\n }\n if (bucket.iconSizeData.kind === \"composite\") {\n var ref$1 = bucket.iconSizeData;\n var minZoom$1 = ref$1.minZoom;\n var maxZoom$1 = ref$1.maxZoom;\n sizes.compositeIconSizes = [\n unevaluatedLayoutValues[\"icon-size\"].possiblyEvaluate(new EvaluationParameters(minZoom$1), canonical),\n unevaluatedLayoutValues[\"icon-size\"].possiblyEvaluate(new EvaluationParameters(maxZoom$1), canonical)\n ];\n }\n sizes.layoutTextSize = unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(bucket.zoom + 1), canonical);\n sizes.layoutIconSize = unevaluatedLayoutValues[\"icon-size\"].possiblyEvaluate(new EvaluationParameters(bucket.zoom + 1), canonical);\n sizes.textMaxSize = unevaluatedLayoutValues[\"text-size\"].possiblyEvaluate(new EvaluationParameters(18));\n var lineHeight = layout2.get(\"text-line-height\") * ONE_EM;\n var textAlongLine = layout2.get(\"text-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\";\n var keepUpright = layout2.get(\"text-keep-upright\");\n var textSize = layout2.get(\"text-size\");\n var loop = function() {\n var feature = list[i$1];\n var fontstack = layout2.get(\"text-font\").evaluate(feature, {}, canonical).join(\",\");\n var layoutTextSizeThisZoom = textSize.evaluate(feature, {}, canonical);\n var layoutTextSize = sizes.layoutTextSize.evaluate(feature, {}, canonical);\n var layoutIconSize = sizes.layoutIconSize.evaluate(feature, {}, canonical);\n var shapedTextOrientations = {\n horizontal: {},\n vertical: void 0\n };\n var text = feature.text;\n var textOffset = [\n 0,\n 0\n ];\n if (text) {\n var unformattedText = text.toString();\n var spacing = layout2.get(\"text-letter-spacing\").evaluate(feature, {}, canonical) * ONE_EM;\n var spacingIfAllowed = allowsLetterSpacing(unformattedText) ? spacing : 0;\n var textAnchor = layout2.get(\"text-anchor\").evaluate(feature, {}, canonical);\n var variableTextAnchor = layout2.get(\"text-variable-anchor\");\n if (!variableTextAnchor) {\n var radialOffset = layout2.get(\"text-radial-offset\").evaluate(feature, {}, canonical);\n if (radialOffset) {\n textOffset = evaluateVariableOffset(textAnchor, [\n radialOffset * ONE_EM,\n INVALID_TEXT_OFFSET\n ]);\n } else {\n textOffset = layout2.get(\"text-offset\").evaluate(feature, {}, canonical).map(function(t) {\n return t * ONE_EM;\n });\n }\n }\n var textJustify = textAlongLine ? \"center\" : layout2.get(\"text-justify\").evaluate(feature, {}, canonical);\n var symbolPlacement = layout2.get(\"symbol-placement\");\n var maxWidth = symbolPlacement === \"point\" ? layout2.get(\"text-max-width\").evaluate(feature, {}, canonical) * ONE_EM : 0;\n var addVerticalShapingForPointLabelIfNeeded = function() {\n if (bucket.allowVerticalPlacement && allowsVerticalWritingMode(unformattedText)) {\n shapedTextOrientations.vertical = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, textAnchor, \"left\", spacingIfAllowed, textOffset, WritingMode.vertical, true, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n }\n };\n if (!textAlongLine && variableTextAnchor) {\n var justifications = textJustify === \"auto\" ? variableTextAnchor.map(function(a) {\n return getAnchorJustification(a);\n }) : [textJustify];\n var singleLine = false;\n for (var i = 0; i < justifications.length; i++) {\n var justification = justifications[i];\n if (shapedTextOrientations.horizontal[justification]) {\n continue;\n }\n if (singleLine) {\n shapedTextOrientations.horizontal[justification] = shapedTextOrientations.horizontal[0];\n } else {\n var shaping = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, \"center\", justification, spacingIfAllowed, textOffset, WritingMode.horizontal, false, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n if (shaping) {\n shapedTextOrientations.horizontal[justification] = shaping;\n singleLine = shaping.positionedLines.length === 1;\n }\n }\n }\n addVerticalShapingForPointLabelIfNeeded();\n } else {\n if (textJustify === \"auto\") {\n textJustify = getAnchorJustification(textAnchor);\n }\n var shaping$1 = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, textAnchor, textJustify, spacingIfAllowed, textOffset, WritingMode.horizontal, false, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n if (shaping$1) {\n shapedTextOrientations.horizontal[textJustify] = shaping$1;\n }\n addVerticalShapingForPointLabelIfNeeded();\n if (allowsVerticalWritingMode(unformattedText) && textAlongLine && keepUpright) {\n shapedTextOrientations.vertical = shapeText(text, glyphMap, glyphPositions, imagePositions, fontstack, maxWidth, lineHeight, textAnchor, textJustify, spacingIfAllowed, textOffset, WritingMode.vertical, false, symbolPlacement, layoutTextSize, layoutTextSizeThisZoom);\n }\n }\n }\n var shapedIcon = void 0;\n var isSDFIcon = false;\n if (feature.icon && feature.icon.name) {\n var image = imageMap[feature.icon.name];\n if (image) {\n shapedIcon = shapeIcon(imagePositions[feature.icon.name], layout2.get(\"icon-offset\").evaluate(feature, {}, canonical), layout2.get(\"icon-anchor\").evaluate(feature, {}, canonical));\n isSDFIcon = image.sdf;\n if (bucket.sdfIcons === void 0) {\n bucket.sdfIcons = image.sdf;\n } else if (bucket.sdfIcons !== image.sdf) {\n warnOnce(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\");\n }\n if (image.pixelRatio !== bucket.pixelRatio) {\n bucket.iconsNeedLinear = true;\n } else if (layout2.get(\"icon-rotate\").constantOr(1) !== 0) {\n bucket.iconsNeedLinear = true;\n }\n }\n }\n var shapedText = getDefaultHorizontalShaping(shapedTextOrientations.horizontal) || shapedTextOrientations.vertical;\n bucket.iconsInText = shapedText ? shapedText.iconsInText : false;\n if (shapedText || shapedIcon) {\n addFeature(bucket, feature, shapedTextOrientations, shapedIcon, imageMap, sizes, layoutTextSize, layoutIconSize, textOffset, isSDFIcon, canonical);\n }\n };\n for (var i$1 = 0, list = bucket.features; i$1 < list.length; i$1 += 1)\n loop();\n if (showCollisionBoxes) {\n bucket.generateCollisionDebugBuffers();\n }\n }\n function getAnchorJustification(anchor) {\n switch (anchor) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n return \"right\";\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n return \"left\";\n }\n return \"center\";\n }\n function addFeature(bucket, feature, shapedTextOrientations, shapedIcon, imageMap, sizes, layoutTextSize, layoutIconSize, textOffset, isSDFIcon, canonical) {\n var textMaxSize = sizes.textMaxSize.evaluate(feature, {});\n if (textMaxSize === void 0) {\n textMaxSize = layoutTextSize;\n }\n var layout2 = bucket.layers[0].layout;\n var iconOffset = layout2.get(\"icon-offset\").evaluate(feature, {}, canonical);\n var defaultHorizontalShaping = getDefaultHorizontalShaping(shapedTextOrientations.horizontal);\n var glyphSize = 24, fontScale = layoutTextSize / glyphSize, textBoxScale = bucket.tilePixelRatio * fontScale, textMaxBoxScale = bucket.tilePixelRatio * textMaxSize / glyphSize, iconBoxScale = bucket.tilePixelRatio * layoutIconSize, symbolMinDistance = bucket.tilePixelRatio * layout2.get(\"symbol-spacing\"), textPadding = layout2.get(\"text-padding\") * bucket.tilePixelRatio, iconPadding = layout2.get(\"icon-padding\") * bucket.tilePixelRatio, textMaxAngle = layout2.get(\"text-max-angle\") / 180 * Math.PI, textAlongLine = layout2.get(\"text-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\", iconAlongLine = layout2.get(\"icon-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\", symbolPlacement = layout2.get(\"symbol-placement\"), textRepeatDistance = symbolMinDistance / 2;\n var iconTextFit = layout2.get(\"icon-text-fit\");\n var verticallyShapedIcon;\n if (shapedIcon && iconTextFit !== \"none\") {\n if (bucket.allowVerticalPlacement && shapedTextOrientations.vertical) {\n verticallyShapedIcon = fitIconToText(shapedIcon, shapedTextOrientations.vertical, iconTextFit, layout2.get(\"icon-text-fit-padding\"), iconOffset, fontScale);\n }\n if (defaultHorizontalShaping) {\n shapedIcon = fitIconToText(shapedIcon, defaultHorizontalShaping, iconTextFit, layout2.get(\"icon-text-fit-padding\"), iconOffset, fontScale);\n }\n }\n var addSymbolAtAnchor = function(line2, anchor2) {\n if (anchor2.x < 0 || anchor2.x >= EXTENT$1 || anchor2.y < 0 || anchor2.y >= EXTENT$1) {\n return;\n }\n addSymbol(bucket, anchor2, line2, shapedTextOrientations, shapedIcon, imageMap, verticallyShapedIcon, bucket.layers[0], bucket.collisionBoxArray, feature.index, feature.sourceLayerIndex, bucket.index, textBoxScale, textPadding, textAlongLine, textOffset, iconBoxScale, iconPadding, iconAlongLine, iconOffset, feature, sizes, isSDFIcon, canonical, layoutTextSize);\n };\n if (symbolPlacement === \"line\") {\n for (var i$1 = 0, list$1 = clipLine(feature.geometry, 0, 0, EXTENT$1, EXTENT$1); i$1 < list$1.length; i$1 += 1) {\n var line = list$1[i$1];\n var anchors = getAnchors(line, symbolMinDistance, textMaxAngle, shapedTextOrientations.vertical || defaultHorizontalShaping, shapedIcon, glyphSize, textMaxBoxScale, bucket.overscaling, EXTENT$1);\n for (var i = 0, list = anchors; i < list.length; i += 1) {\n var anchor = list[i];\n var shapedText = defaultHorizontalShaping;\n if (!shapedText || !anchorIsTooClose(bucket, shapedText.text, textRepeatDistance, anchor)) {\n addSymbolAtAnchor(line, anchor);\n }\n }\n }\n } else if (symbolPlacement === \"line-center\") {\n for (var i$2 = 0, list$2 = feature.geometry; i$2 < list$2.length; i$2 += 1) {\n var line$1 = list$2[i$2];\n if (line$1.length > 1) {\n var anchor$1 = getCenterAnchor(line$1, textMaxAngle, shapedTextOrientations.vertical || defaultHorizontalShaping, shapedIcon, glyphSize, textMaxBoxScale);\n if (anchor$1) {\n addSymbolAtAnchor(line$1, anchor$1);\n }\n }\n }\n } else if (feature.type === \"Polygon\") {\n for (var i$3 = 0, list$3 = classifyRings(feature.geometry, 0); i$3 < list$3.length; i$3 += 1) {\n var polygon = list$3[i$3];\n var poi = findPoleOfInaccessibility(polygon, 16);\n addSymbolAtAnchor(polygon[0], new Anchor(poi.x, poi.y, 0));\n }\n } else if (feature.type === \"LineString\") {\n for (var i$4 = 0, list$4 = feature.geometry; i$4 < list$4.length; i$4 += 1) {\n var line$2 = list$4[i$4];\n addSymbolAtAnchor(line$2, new Anchor(line$2[0].x, line$2[0].y, 0));\n }\n } else if (feature.type === \"Point\") {\n for (var i$6 = 0, list$6 = feature.geometry; i$6 < list$6.length; i$6 += 1) {\n var points = list$6[i$6];\n for (var i$5 = 0, list$5 = points; i$5 < list$5.length; i$5 += 1) {\n var point = list$5[i$5];\n addSymbolAtAnchor([point], new Anchor(point.x, point.y, 0));\n }\n }\n }\n }\n var MAX_GLYPH_ICON_SIZE = 255;\n var MAX_PACKED_SIZE = MAX_GLYPH_ICON_SIZE * SIZE_PACK_FACTOR;\n function addTextVertices(bucket, anchor, shapedText, imageMap, layer2, textAlongLine, feature, textOffset, lineArray, writingMode, placementTypes, placedTextSymbolIndices, placedIconIndex, sizes, canonical) {\n var glyphQuads = getGlyphQuads(anchor, shapedText, textOffset, layer2, textAlongLine, feature, imageMap, bucket.allowVerticalPlacement);\n var sizeData = bucket.textSizeData;\n var textSizeData = null;\n if (sizeData.kind === \"source\") {\n textSizeData = [SIZE_PACK_FACTOR * layer2.layout.get(\"text-size\").evaluate(feature, {})];\n if (textSizeData[0] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"text-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"text-size\".');\n }\n } else if (sizeData.kind === \"composite\") {\n textSizeData = [\n SIZE_PACK_FACTOR * sizes.compositeTextSizes[0].evaluate(feature, {}, canonical),\n SIZE_PACK_FACTOR * sizes.compositeTextSizes[1].evaluate(feature, {}, canonical)\n ];\n if (textSizeData[0] > MAX_PACKED_SIZE || textSizeData[1] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"text-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"text-size\".');\n }\n }\n bucket.addSymbols(bucket.text, glyphQuads, textSizeData, textOffset, textAlongLine, feature, writingMode, anchor, lineArray.lineStartIndex, lineArray.lineLength, placedIconIndex, canonical);\n for (var i = 0, list = placementTypes; i < list.length; i += 1) {\n var placementType = list[i];\n placedTextSymbolIndices[placementType] = bucket.text.placedSymbolArray.length - 1;\n }\n return glyphQuads.length * 4;\n }\n function getDefaultHorizontalShaping(horizontalShaping) {\n for (var justification in horizontalShaping) {\n return horizontalShaping[justification];\n }\n return null;\n }\n function addSymbol(bucket, anchor, line, shapedTextOrientations, shapedIcon, imageMap, verticallyShapedIcon, layer2, collisionBoxArray, featureIndex, sourceLayerIndex, bucketIndex, textBoxScale, textPadding, textAlongLine, textOffset, iconBoxScale, iconPadding, iconAlongLine, iconOffset, feature, sizes, isSDFIcon, canonical, layoutTextSize) {\n var assign;\n var lineArray = bucket.addToLineVertexArray(anchor, line);\n var textCollisionFeature, iconCollisionFeature, verticalTextCollisionFeature, verticalIconCollisionFeature;\n var numIconVertices = 0;\n var numVerticalIconVertices = 0;\n var numHorizontalGlyphVertices = 0;\n var numVerticalGlyphVertices = 0;\n var placedIconSymbolIndex = -1;\n var verticalPlacedIconSymbolIndex = -1;\n var placedTextSymbolIndices = {};\n var key = murmurhashJs(\"\");\n var textOffset0 = 0;\n var textOffset1 = 0;\n if (layer2._unevaluatedLayout.getValue(\"text-radial-offset\") === void 0) {\n assign = layer2.layout.get(\"text-offset\").evaluate(feature, {}, canonical).map(function(t) {\n return t * ONE_EM;\n }), textOffset0 = assign[0], textOffset1 = assign[1];\n } else {\n textOffset0 = layer2.layout.get(\"text-radial-offset\").evaluate(feature, {}, canonical) * ONE_EM;\n textOffset1 = INVALID_TEXT_OFFSET;\n }\n if (bucket.allowVerticalPlacement && shapedTextOrientations.vertical) {\n var textRotation = layer2.layout.get(\"text-rotate\").evaluate(feature, {}, canonical);\n var verticalTextRotation = textRotation + 90;\n var verticalShaping = shapedTextOrientations.vertical;\n verticalTextCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, verticalShaping, textBoxScale, textPadding, textAlongLine, verticalTextRotation);\n if (verticallyShapedIcon) {\n verticalIconCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, verticallyShapedIcon, iconBoxScale, iconPadding, textAlongLine, verticalTextRotation);\n }\n }\n if (shapedIcon) {\n var iconRotate = layer2.layout.get(\"icon-rotate\").evaluate(feature, {});\n var hasIconTextFit = layer2.layout.get(\"icon-text-fit\") !== \"none\";\n var iconQuads = getIconQuads(shapedIcon, iconRotate, isSDFIcon, hasIconTextFit);\n var verticalIconQuads = verticallyShapedIcon ? getIconQuads(verticallyShapedIcon, iconRotate, isSDFIcon, hasIconTextFit) : void 0;\n iconCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, shapedIcon, iconBoxScale, iconPadding, false, iconRotate);\n numIconVertices = iconQuads.length * 4;\n var sizeData = bucket.iconSizeData;\n var iconSizeData = null;\n if (sizeData.kind === \"source\") {\n iconSizeData = [SIZE_PACK_FACTOR * layer2.layout.get(\"icon-size\").evaluate(feature, {})];\n if (iconSizeData[0] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"icon-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"icon-size\".');\n }\n } else if (sizeData.kind === \"composite\") {\n iconSizeData = [\n SIZE_PACK_FACTOR * sizes.compositeIconSizes[0].evaluate(feature, {}, canonical),\n SIZE_PACK_FACTOR * sizes.compositeIconSizes[1].evaluate(feature, {}, canonical)\n ];\n if (iconSizeData[0] > MAX_PACKED_SIZE || iconSizeData[1] > MAX_PACKED_SIZE) {\n warnOnce(bucket.layerIds[0] + ': Value for \"icon-size\" is >= ' + MAX_GLYPH_ICON_SIZE + '. Reduce your \"icon-size\".');\n }\n }\n bucket.addSymbols(bucket.icon, iconQuads, iconSizeData, iconOffset, iconAlongLine, feature, false, anchor, lineArray.lineStartIndex, lineArray.lineLength, -1, canonical);\n placedIconSymbolIndex = bucket.icon.placedSymbolArray.length - 1;\n if (verticalIconQuads) {\n numVerticalIconVertices = verticalIconQuads.length * 4;\n bucket.addSymbols(bucket.icon, verticalIconQuads, iconSizeData, iconOffset, iconAlongLine, feature, WritingMode.vertical, anchor, lineArray.lineStartIndex, lineArray.lineLength, -1, canonical);\n verticalPlacedIconSymbolIndex = bucket.icon.placedSymbolArray.length - 1;\n }\n }\n for (var justification in shapedTextOrientations.horizontal) {\n var shaping = shapedTextOrientations.horizontal[justification];\n if (!textCollisionFeature) {\n key = murmurhashJs(shaping.text);\n var textRotate = layer2.layout.get(\"text-rotate\").evaluate(feature, {}, canonical);\n textCollisionFeature = new CollisionFeature(collisionBoxArray, anchor, featureIndex, sourceLayerIndex, bucketIndex, shaping, textBoxScale, textPadding, textAlongLine, textRotate);\n }\n var singleLine = shaping.positionedLines.length === 1;\n numHorizontalGlyphVertices += addTextVertices(bucket, anchor, shaping, imageMap, layer2, textAlongLine, feature, textOffset, lineArray, shapedTextOrientations.vertical ? WritingMode.horizontal : WritingMode.horizontalOnly, singleLine ? Object.keys(shapedTextOrientations.horizontal) : [justification], placedTextSymbolIndices, placedIconSymbolIndex, sizes, canonical);\n if (singleLine) {\n break;\n }\n }\n if (shapedTextOrientations.vertical) {\n numVerticalGlyphVertices += addTextVertices(bucket, anchor, shapedTextOrientations.vertical, imageMap, layer2, textAlongLine, feature, textOffset, lineArray, WritingMode.vertical, [\"vertical\"], placedTextSymbolIndices, verticalPlacedIconSymbolIndex, sizes, canonical);\n }\n var textBoxStartIndex = textCollisionFeature ? textCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var textBoxEndIndex = textCollisionFeature ? textCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var verticalTextBoxStartIndex = verticalTextCollisionFeature ? verticalTextCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var verticalTextBoxEndIndex = verticalTextCollisionFeature ? verticalTextCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var iconBoxStartIndex = iconCollisionFeature ? iconCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var iconBoxEndIndex = iconCollisionFeature ? iconCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var verticalIconBoxStartIndex = verticalIconCollisionFeature ? verticalIconCollisionFeature.boxStartIndex : bucket.collisionBoxArray.length;\n var verticalIconBoxEndIndex = verticalIconCollisionFeature ? verticalIconCollisionFeature.boxEndIndex : bucket.collisionBoxArray.length;\n var collisionCircleDiameter = -1;\n var getCollisionCircleHeight = function(feature2, prevHeight) {\n if (feature2 && feature2.circleDiameter) {\n return Math.max(feature2.circleDiameter, prevHeight);\n }\n return prevHeight;\n };\n collisionCircleDiameter = getCollisionCircleHeight(textCollisionFeature, collisionCircleDiameter);\n collisionCircleDiameter = getCollisionCircleHeight(verticalTextCollisionFeature, collisionCircleDiameter);\n collisionCircleDiameter = getCollisionCircleHeight(iconCollisionFeature, collisionCircleDiameter);\n collisionCircleDiameter = getCollisionCircleHeight(verticalIconCollisionFeature, collisionCircleDiameter);\n var useRuntimeCollisionCircles = collisionCircleDiameter > -1 ? 1 : 0;\n if (useRuntimeCollisionCircles) {\n collisionCircleDiameter *= layoutTextSize / ONE_EM;\n }\n if (bucket.glyphOffsetArray.length >= SymbolBucket.MAX_GLYPHS) {\n warnOnce(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\");\n }\n if (feature.sortKey !== void 0) {\n bucket.addToSortKeyRanges(bucket.symbolInstances.length, feature.sortKey);\n }\n bucket.symbolInstances.emplaceBack(anchor.x, anchor.y, placedTextSymbolIndices.right >= 0 ? placedTextSymbolIndices.right : -1, placedTextSymbolIndices.center >= 0 ? placedTextSymbolIndices.center : -1, placedTextSymbolIndices.left >= 0 ? placedTextSymbolIndices.left : -1, placedTextSymbolIndices.vertical || -1, placedIconSymbolIndex, verticalPlacedIconSymbolIndex, key, textBoxStartIndex, textBoxEndIndex, verticalTextBoxStartIndex, verticalTextBoxEndIndex, iconBoxStartIndex, iconBoxEndIndex, verticalIconBoxStartIndex, verticalIconBoxEndIndex, featureIndex, numHorizontalGlyphVertices, numVerticalGlyphVertices, numIconVertices, numVerticalIconVertices, useRuntimeCollisionCircles, 0, textBoxScale, textOffset0, textOffset1, collisionCircleDiameter);\n }\n function anchorIsTooClose(bucket, text, repeatDistance, anchor) {\n var compareText = bucket.compareText;\n if (!(text in compareText)) {\n compareText[text] = [];\n } else {\n var otherAnchors = compareText[text];\n for (var k = otherAnchors.length - 1; k >= 0; k--) {\n if (anchor.dist(otherAnchors[k]) < repeatDistance) {\n return true;\n }\n }\n }\n compareText[text].push(anchor);\n return false;\n }\n var vectorTileFeatureTypes$2 = vectorTile.VectorTileFeature.types;\n var shaderOpacityAttributes = [{\n name: \"a_fade_opacity\",\n components: 1,\n type: \"Uint8\",\n offset: 0\n }];\n function addVertex$1(array2, anchorX, anchorY, ox, oy, tx, ty, sizeVertex, isSDF, pixelOffsetX, pixelOffsetY, minFontScaleX, minFontScaleY) {\n var aSizeX = sizeVertex ? Math.min(MAX_PACKED_SIZE, Math.round(sizeVertex[0])) : 0;\n var aSizeY = sizeVertex ? Math.min(MAX_PACKED_SIZE, Math.round(sizeVertex[1])) : 0;\n array2.emplaceBack(anchorX, anchorY, Math.round(ox * 32), Math.round(oy * 32), tx, ty, (aSizeX << 1) + (isSDF ? 1 : 0), aSizeY, pixelOffsetX * 16, pixelOffsetY * 16, minFontScaleX * 256, minFontScaleY * 256);\n }\n function addDynamicAttributes(dynamicLayoutVertexArray, p, angle) {\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n dynamicLayoutVertexArray.emplaceBack(p.x, p.y, angle);\n }\n function containsRTLText(formattedText) {\n for (var i = 0, list = formattedText.sections; i < list.length; i += 1) {\n var section = list[i];\n if (stringContainsRTLText(section.text)) {\n return true;\n }\n }\n return false;\n }\n var SymbolBuffers = function SymbolBuffers2(programConfigurations) {\n this.layoutVertexArray = new StructArrayLayout4i4ui4i24();\n this.indexArray = new StructArrayLayout3ui6();\n this.programConfigurations = programConfigurations;\n this.segments = new SegmentVector();\n this.dynamicLayoutVertexArray = new StructArrayLayout3f12();\n this.opacityVertexArray = new StructArrayLayout1ul4();\n this.placedSymbolArray = new PlacedSymbolArray();\n };\n SymbolBuffers.prototype.isEmpty = function isEmpty2() {\n return this.layoutVertexArray.length === 0 && this.indexArray.length === 0 && this.dynamicLayoutVertexArray.length === 0 && this.opacityVertexArray.length === 0;\n };\n SymbolBuffers.prototype.upload = function upload(context, dynamicIndexBuffer, upload$1, update) {\n if (this.isEmpty()) {\n return;\n }\n if (upload$1) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, symbolLayoutAttributes.members);\n this.indexBuffer = context.createIndexBuffer(this.indexArray, dynamicIndexBuffer);\n this.dynamicLayoutVertexBuffer = context.createVertexBuffer(this.dynamicLayoutVertexArray, dynamicLayoutAttributes.members, true);\n this.opacityVertexBuffer = context.createVertexBuffer(this.opacityVertexArray, shaderOpacityAttributes, true);\n this.opacityVertexBuffer.itemSize = 1;\n }\n if (upload$1 || update) {\n this.programConfigurations.upload(context);\n }\n };\n SymbolBuffers.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.programConfigurations.destroy();\n this.segments.destroy();\n this.dynamicLayoutVertexBuffer.destroy();\n this.opacityVertexBuffer.destroy();\n };\n register(\"SymbolBuffers\", SymbolBuffers);\n var CollisionBuffers = function CollisionBuffers2(LayoutArray, layoutAttributes, IndexArray) {\n this.layoutVertexArray = new LayoutArray();\n this.layoutAttributes = layoutAttributes;\n this.indexArray = new IndexArray();\n this.segments = new SegmentVector();\n this.collisionVertexArray = new StructArrayLayout2ub2f12();\n };\n CollisionBuffers.prototype.upload = function upload(context) {\n this.layoutVertexBuffer = context.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes);\n this.indexBuffer = context.createIndexBuffer(this.indexArray);\n this.collisionVertexBuffer = context.createVertexBuffer(this.collisionVertexArray, collisionVertexAttributes.members, true);\n };\n CollisionBuffers.prototype.destroy = function destroy() {\n if (!this.layoutVertexBuffer) {\n return;\n }\n this.layoutVertexBuffer.destroy();\n this.indexBuffer.destroy();\n this.segments.destroy();\n this.collisionVertexBuffer.destroy();\n };\n register(\"CollisionBuffers\", CollisionBuffers);\n var SymbolBucket = function SymbolBucket2(options) {\n this.collisionBoxArray = options.collisionBoxArray;\n this.zoom = options.zoom;\n this.overscaling = options.overscaling;\n this.layers = options.layers;\n this.layerIds = this.layers.map(function(layer3) {\n return layer3.id;\n });\n this.index = options.index;\n this.pixelRatio = options.pixelRatio;\n this.sourceLayerIndex = options.sourceLayerIndex;\n this.hasPattern = false;\n this.hasRTLText = false;\n this.sortKeyRanges = [];\n this.collisionCircleArray = [];\n this.placementInvProjMatrix = identity2([]);\n this.placementViewportMatrix = identity2([]);\n var layer2 = this.layers[0];\n var unevaluatedLayoutValues = layer2._unevaluatedLayout._values;\n this.textSizeData = getSizeData(this.zoom, unevaluatedLayoutValues[\"text-size\"]);\n this.iconSizeData = getSizeData(this.zoom, unevaluatedLayoutValues[\"icon-size\"]);\n var layout2 = this.layers[0].layout;\n var sortKey = layout2.get(\"symbol-sort-key\");\n var zOrder2 = layout2.get(\"symbol-z-order\");\n this.canOverlap = layout2.get(\"text-allow-overlap\") || layout2.get(\"icon-allow-overlap\") || layout2.get(\"text-ignore-placement\") || layout2.get(\"icon-ignore-placement\");\n this.sortFeaturesByKey = zOrder2 !== \"viewport-y\" && sortKey.constantOr(1) !== void 0;\n var zOrderByViewportY = zOrder2 === \"viewport-y\" || zOrder2 === \"auto\" && !this.sortFeaturesByKey;\n this.sortFeaturesByY = zOrderByViewportY && this.canOverlap;\n if (layout2.get(\"symbol-placement\") === \"point\") {\n this.writingModes = layout2.get(\"text-writing-mode\").map(function(wm) {\n return WritingMode[wm];\n });\n }\n this.stateDependentLayerIds = this.layers.filter(function(l) {\n return l.isStateDependent();\n }).map(function(l) {\n return l.id;\n });\n this.sourceID = options.sourceID;\n };\n SymbolBucket.prototype.createArrays = function createArrays() {\n this.text = new SymbolBuffers(new ProgramConfigurationSet(this.layers, this.zoom, function(property) {\n return /^text/.test(property);\n }));\n this.icon = new SymbolBuffers(new ProgramConfigurationSet(this.layers, this.zoom, function(property) {\n return /^icon/.test(property);\n }));\n this.glyphOffsetArray = new GlyphOffsetArray();\n this.lineVertexArray = new SymbolLineVertexArray();\n this.symbolInstances = new SymbolInstanceArray();\n };\n SymbolBucket.prototype.calculateGlyphDependencies = function calculateGlyphDependencies(text, stack, textAlongLine, allowVerticalPlacement, doesAllowVerticalWritingMode) {\n for (var i = 0; i < text.length; i++) {\n stack[text.charCodeAt(i)] = true;\n if ((textAlongLine || allowVerticalPlacement) && doesAllowVerticalWritingMode) {\n var verticalChar = verticalizedCharacterMap[text.charAt(i)];\n if (verticalChar) {\n stack[verticalChar.charCodeAt(0)] = true;\n }\n }\n }\n };\n SymbolBucket.prototype.populate = function populate(features, options, canonical) {\n var layer2 = this.layers[0];\n var layout2 = layer2.layout;\n var textFont = layout2.get(\"text-font\");\n var textField = layout2.get(\"text-field\");\n var iconImage = layout2.get(\"icon-image\");\n var hasText = (textField.value.kind !== \"constant\" || textField.value.value instanceof Formatted && !textField.value.value.isEmpty() || textField.value.value.toString().length > 0) && (textFont.value.kind !== \"constant\" || textFont.value.value.length > 0);\n var hasIcon = iconImage.value.kind !== \"constant\" || !!iconImage.value.value || Object.keys(iconImage.parameters).length > 0;\n var symbolSortKey = layout2.get(\"symbol-sort-key\");\n this.features = [];\n if (!hasText && !hasIcon) {\n return;\n }\n var icons = options.iconDependencies;\n var stacks = options.glyphDependencies;\n var availableImages = options.availableImages;\n var globalProperties = new EvaluationParameters(this.zoom);\n for (var i$1 = 0, list$1 = features; i$1 < list$1.length; i$1 += 1) {\n var ref = list$1[i$1];\n var feature = ref.feature;\n var id2 = ref.id;\n var index = ref.index;\n var sourceLayerIndex = ref.sourceLayerIndex;\n var needGeometry = layer2._featureFilter.needGeometry;\n var evaluationFeature = toEvaluationFeature(feature, needGeometry);\n if (!layer2._featureFilter.filter(globalProperties, evaluationFeature, canonical)) {\n continue;\n }\n if (!needGeometry) {\n evaluationFeature.geometry = loadGeometry(feature);\n }\n var text = void 0;\n if (hasText) {\n var resolvedTokens = layer2.getValueAndResolveTokens(\"text-field\", evaluationFeature, canonical, availableImages);\n var formattedText = Formatted.factory(resolvedTokens);\n if (containsRTLText(formattedText)) {\n this.hasRTLText = true;\n }\n if (!this.hasRTLText || getRTLTextPluginStatus() === \"unavailable\" || this.hasRTLText && plugin.isParsed()) {\n text = transformText$1(formattedText, layer2, evaluationFeature);\n }\n }\n var icon = void 0;\n if (hasIcon) {\n var resolvedTokens$1 = layer2.getValueAndResolveTokens(\"icon-image\", evaluationFeature, canonical, availableImages);\n if (resolvedTokens$1 instanceof ResolvedImage) {\n icon = resolvedTokens$1;\n } else {\n icon = ResolvedImage.fromString(resolvedTokens$1);\n }\n }\n if (!text && !icon) {\n continue;\n }\n var sortKey = this.sortFeaturesByKey ? symbolSortKey.evaluate(evaluationFeature, {}, canonical) : void 0;\n var symbolFeature = {\n id: id2,\n text,\n icon,\n index,\n sourceLayerIndex,\n geometry: evaluationFeature.geometry,\n properties: feature.properties,\n type: vectorTileFeatureTypes$2[feature.type],\n sortKey\n };\n this.features.push(symbolFeature);\n if (icon) {\n icons[icon.name] = true;\n }\n if (text) {\n var fontStack = textFont.evaluate(evaluationFeature, {}, canonical).join(\",\");\n var textAlongLine = layout2.get(\"text-rotation-alignment\") === \"map\" && layout2.get(\"symbol-placement\") !== \"point\";\n this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(WritingMode.vertical) >= 0;\n for (var i = 0, list = text.sections; i < list.length; i += 1) {\n var section = list[i];\n if (!section.image) {\n var doesAllowVerticalWritingMode = allowsVerticalWritingMode(text.toString());\n var sectionFont = section.fontStack || fontStack;\n var sectionStack = stacks[sectionFont] = stacks[sectionFont] || {};\n this.calculateGlyphDependencies(section.text, sectionStack, textAlongLine, this.allowVerticalPlacement, doesAllowVerticalWritingMode);\n } else {\n icons[section.image.name] = true;\n }\n }\n }\n }\n if (layout2.get(\"symbol-placement\") === \"line\") {\n this.features = mergeLines(this.features);\n }\n if (this.sortFeaturesByKey) {\n this.features.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n };\n SymbolBucket.prototype.update = function update(states, vtLayer, imagePositions) {\n if (!this.stateDependentLayers.length) {\n return;\n }\n this.text.programConfigurations.updatePaintArrays(states, vtLayer, this.layers, imagePositions);\n this.icon.programConfigurations.updatePaintArrays(states, vtLayer, this.layers, imagePositions);\n };\n SymbolBucket.prototype.isEmpty = function isEmpty2() {\n return this.symbolInstances.length === 0 && !this.hasRTLText;\n };\n SymbolBucket.prototype.uploadPending = function uploadPending() {\n return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload;\n };\n SymbolBucket.prototype.upload = function upload(context) {\n if (!this.uploaded && this.hasDebugData()) {\n this.textCollisionBox.upload(context);\n this.iconCollisionBox.upload(context);\n }\n this.text.upload(context, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload);\n this.icon.upload(context, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload);\n this.uploaded = true;\n };\n SymbolBucket.prototype.destroyDebugData = function destroyDebugData() {\n this.textCollisionBox.destroy();\n this.iconCollisionBox.destroy();\n };\n SymbolBucket.prototype.destroy = function destroy() {\n this.text.destroy();\n this.icon.destroy();\n if (this.hasDebugData()) {\n this.destroyDebugData();\n }\n };\n SymbolBucket.prototype.addToLineVertexArray = function addToLineVertexArray(anchor, line) {\n var lineStartIndex = this.lineVertexArray.length;\n if (anchor.segment !== void 0) {\n var sumForwardLength = anchor.dist(line[anchor.segment + 1]);\n var sumBackwardLength = anchor.dist(line[anchor.segment]);\n var vertices = {};\n for (var i = anchor.segment + 1; i < line.length; i++) {\n vertices[i] = {\n x: line[i].x,\n y: line[i].y,\n tileUnitDistanceFromAnchor: sumForwardLength\n };\n if (i < line.length - 1) {\n sumForwardLength += line[i + 1].dist(line[i]);\n }\n }\n for (var i$1 = anchor.segment || 0; i$1 >= 0; i$1--) {\n vertices[i$1] = {\n x: line[i$1].x,\n y: line[i$1].y,\n tileUnitDistanceFromAnchor: sumBackwardLength\n };\n if (i$1 > 0) {\n sumBackwardLength += line[i$1 - 1].dist(line[i$1]);\n }\n }\n for (var i$2 = 0; i$2 < line.length; i$2++) {\n var vertex = vertices[i$2];\n this.lineVertexArray.emplaceBack(vertex.x, vertex.y, vertex.tileUnitDistanceFromAnchor);\n }\n }\n return {\n lineStartIndex,\n lineLength: this.lineVertexArray.length - lineStartIndex\n };\n };\n SymbolBucket.prototype.addSymbols = function addSymbols(arrays, quads, sizeVertex, lineOffset, alongLine, feature, writingMode, labelAnchor, lineStartIndex, lineLength, associatedIconIndex, canonical) {\n var indexArray = arrays.indexArray;\n var layoutVertexArray = arrays.layoutVertexArray;\n var segment = arrays.segments.prepareSegment(4 * quads.length, layoutVertexArray, indexArray, this.canOverlap ? feature.sortKey : void 0);\n var glyphOffsetArrayStart = this.glyphOffsetArray.length;\n var vertexStartIndex = segment.vertexLength;\n var angle = this.allowVerticalPlacement && writingMode === WritingMode.vertical ? Math.PI / 2 : 0;\n var sections = feature.text && feature.text.sections;\n for (var i = 0; i < quads.length; i++) {\n var ref = quads[i];\n var tl = ref.tl;\n var tr = ref.tr;\n var bl = ref.bl;\n var br = ref.br;\n var tex = ref.tex;\n var pixelOffsetTL = ref.pixelOffsetTL;\n var pixelOffsetBR = ref.pixelOffsetBR;\n var minFontScaleX = ref.minFontScaleX;\n var minFontScaleY = ref.minFontScaleY;\n var glyphOffset2 = ref.glyphOffset;\n var isSDF = ref.isSDF;\n var sectionIndex = ref.sectionIndex;\n var index = segment.vertexLength;\n var y = glyphOffset2[1];\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, tl.x, y + tl.y, tex.x, tex.y, sizeVertex, isSDF, pixelOffsetTL.x, pixelOffsetTL.y, minFontScaleX, minFontScaleY);\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, tr.x, y + tr.y, tex.x + tex.w, tex.y, sizeVertex, isSDF, pixelOffsetBR.x, pixelOffsetTL.y, minFontScaleX, minFontScaleY);\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, bl.x, y + bl.y, tex.x, tex.y + tex.h, sizeVertex, isSDF, pixelOffsetTL.x, pixelOffsetBR.y, minFontScaleX, minFontScaleY);\n addVertex$1(layoutVertexArray, labelAnchor.x, labelAnchor.y, br.x, y + br.y, tex.x + tex.w, tex.y + tex.h, sizeVertex, isSDF, pixelOffsetBR.x, pixelOffsetBR.y, minFontScaleX, minFontScaleY);\n addDynamicAttributes(arrays.dynamicLayoutVertexArray, labelAnchor, angle);\n indexArray.emplaceBack(index, index + 1, index + 2);\n indexArray.emplaceBack(index + 1, index + 2, index + 3);\n segment.vertexLength += 4;\n segment.primitiveLength += 2;\n this.glyphOffsetArray.emplaceBack(glyphOffset2[0]);\n if (i === quads.length - 1 || sectionIndex !== quads[i + 1].sectionIndex) {\n arrays.programConfigurations.populatePaintArrays(layoutVertexArray.length, feature, feature.index, {}, canonical, sections && sections[sectionIndex]);\n }\n }\n arrays.placedSymbolArray.emplaceBack(labelAnchor.x, labelAnchor.y, glyphOffsetArrayStart, this.glyphOffsetArray.length - glyphOffsetArrayStart, vertexStartIndex, lineStartIndex, lineLength, labelAnchor.segment, sizeVertex ? sizeVertex[0] : 0, sizeVertex ? sizeVertex[1] : 0, lineOffset[0], lineOffset[1], writingMode, 0, false, 0, associatedIconIndex);\n };\n SymbolBucket.prototype._addCollisionDebugVertex = function _addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, point, anchorX, anchorY, extrude) {\n collisionVertexArray.emplaceBack(0, 0);\n return layoutVertexArray.emplaceBack(point.x, point.y, anchorX, anchorY, Math.round(extrude.x), Math.round(extrude.y));\n };\n SymbolBucket.prototype.addCollisionDebugVertices = function addCollisionDebugVertices(x1, y1, x2, y2, arrays, boxAnchorPoint, symbolInstance2) {\n var segment = arrays.segments.prepareSegment(4, arrays.layoutVertexArray, arrays.indexArray);\n var index = segment.vertexLength;\n var layoutVertexArray = arrays.layoutVertexArray;\n var collisionVertexArray = arrays.collisionVertexArray;\n var anchorX = symbolInstance2.anchorX;\n var anchorY = symbolInstance2.anchorY;\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x1, y1));\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x2, y1));\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x2, y2));\n this._addCollisionDebugVertex(layoutVertexArray, collisionVertexArray, boxAnchorPoint, anchorX, anchorY, new pointGeometry(x1, y2));\n segment.vertexLength += 4;\n var indexArray = arrays.indexArray;\n indexArray.emplaceBack(index, index + 1);\n indexArray.emplaceBack(index + 1, index + 2);\n indexArray.emplaceBack(index + 2, index + 3);\n indexArray.emplaceBack(index + 3, index);\n segment.primitiveLength += 4;\n };\n SymbolBucket.prototype.addDebugCollisionBoxes = function addDebugCollisionBoxes(startIndex, endIndex, symbolInstance2, isText) {\n for (var b = startIndex; b < endIndex; b++) {\n var box = this.collisionBoxArray.get(b);\n var x1 = box.x1;\n var y1 = box.y1;\n var x2 = box.x2;\n var y2 = box.y2;\n this.addCollisionDebugVertices(x1, y1, x2, y2, isText ? this.textCollisionBox : this.iconCollisionBox, box.anchorPoint, symbolInstance2);\n }\n };\n SymbolBucket.prototype.generateCollisionDebugBuffers = function generateCollisionDebugBuffers() {\n if (this.hasDebugData()) {\n this.destroyDebugData();\n }\n this.textCollisionBox = new CollisionBuffers(StructArrayLayout2i2i2i12, collisionBoxLayout.members, StructArrayLayout2ui4);\n this.iconCollisionBox = new CollisionBuffers(StructArrayLayout2i2i2i12, collisionBoxLayout.members, StructArrayLayout2ui4);\n for (var i = 0; i < this.symbolInstances.length; i++) {\n var symbolInstance2 = this.symbolInstances.get(i);\n this.addDebugCollisionBoxes(symbolInstance2.textBoxStartIndex, symbolInstance2.textBoxEndIndex, symbolInstance2, true);\n this.addDebugCollisionBoxes(symbolInstance2.verticalTextBoxStartIndex, symbolInstance2.verticalTextBoxEndIndex, symbolInstance2, true);\n this.addDebugCollisionBoxes(symbolInstance2.iconBoxStartIndex, symbolInstance2.iconBoxEndIndex, symbolInstance2, false);\n this.addDebugCollisionBoxes(symbolInstance2.verticalIconBoxStartIndex, symbolInstance2.verticalIconBoxEndIndex, symbolInstance2, false);\n }\n };\n SymbolBucket.prototype._deserializeCollisionBoxesForSymbol = function _deserializeCollisionBoxesForSymbol(collisionBoxArray, textStartIndex, textEndIndex, verticalTextStartIndex, verticalTextEndIndex, iconStartIndex, iconEndIndex, verticalIconStartIndex, verticalIconEndIndex) {\n var collisionArrays = {};\n for (var k = textStartIndex; k < textEndIndex; k++) {\n var box = collisionBoxArray.get(k);\n collisionArrays.textBox = {\n x1: box.x1,\n y1: box.y1,\n x2: box.x2,\n y2: box.y2,\n anchorPointX: box.anchorPointX,\n anchorPointY: box.anchorPointY\n };\n collisionArrays.textFeatureIndex = box.featureIndex;\n break;\n }\n for (var k$1 = verticalTextStartIndex; k$1 < verticalTextEndIndex; k$1++) {\n var box$1 = collisionBoxArray.get(k$1);\n collisionArrays.verticalTextBox = {\n x1: box$1.x1,\n y1: box$1.y1,\n x2: box$1.x2,\n y2: box$1.y2,\n anchorPointX: box$1.anchorPointX,\n anchorPointY: box$1.anchorPointY\n };\n collisionArrays.verticalTextFeatureIndex = box$1.featureIndex;\n break;\n }\n for (var k$2 = iconStartIndex; k$2 < iconEndIndex; k$2++) {\n var box$2 = collisionBoxArray.get(k$2);\n collisionArrays.iconBox = {\n x1: box$2.x1,\n y1: box$2.y1,\n x2: box$2.x2,\n y2: box$2.y2,\n anchorPointX: box$2.anchorPointX,\n anchorPointY: box$2.anchorPointY\n };\n collisionArrays.iconFeatureIndex = box$2.featureIndex;\n break;\n }\n for (var k$3 = verticalIconStartIndex; k$3 < verticalIconEndIndex; k$3++) {\n var box$3 = collisionBoxArray.get(k$3);\n collisionArrays.verticalIconBox = {\n x1: box$3.x1,\n y1: box$3.y1,\n x2: box$3.x2,\n y2: box$3.y2,\n anchorPointX: box$3.anchorPointX,\n anchorPointY: box$3.anchorPointY\n };\n collisionArrays.verticalIconFeatureIndex = box$3.featureIndex;\n break;\n }\n return collisionArrays;\n };\n SymbolBucket.prototype.deserializeCollisionBoxes = function deserializeCollisionBoxes(collisionBoxArray) {\n this.collisionArrays = [];\n for (var i = 0; i < this.symbolInstances.length; i++) {\n var symbolInstance2 = this.symbolInstances.get(i);\n this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(collisionBoxArray, symbolInstance2.textBoxStartIndex, symbolInstance2.textBoxEndIndex, symbolInstance2.verticalTextBoxStartIndex, symbolInstance2.verticalTextBoxEndIndex, symbolInstance2.iconBoxStartIndex, symbolInstance2.iconBoxEndIndex, symbolInstance2.verticalIconBoxStartIndex, symbolInstance2.verticalIconBoxEndIndex));\n }\n };\n SymbolBucket.prototype.hasTextData = function hasTextData() {\n return this.text.segments.get().length > 0;\n };\n SymbolBucket.prototype.hasIconData = function hasIconData() {\n return this.icon.segments.get().length > 0;\n };\n SymbolBucket.prototype.hasDebugData = function hasDebugData() {\n return this.textCollisionBox && this.iconCollisionBox;\n };\n SymbolBucket.prototype.hasTextCollisionBoxData = function hasTextCollisionBoxData() {\n return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0;\n };\n SymbolBucket.prototype.hasIconCollisionBoxData = function hasIconCollisionBoxData() {\n return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0;\n };\n SymbolBucket.prototype.addIndicesForPlacedSymbol = function addIndicesForPlacedSymbol(iconOrText, placedSymbolIndex) {\n var placedSymbol = iconOrText.placedSymbolArray.get(placedSymbolIndex);\n var endIndex = placedSymbol.vertexStartIndex + placedSymbol.numGlyphs * 4;\n for (var vertexIndex = placedSymbol.vertexStartIndex; vertexIndex < endIndex; vertexIndex += 4) {\n iconOrText.indexArray.emplaceBack(vertexIndex, vertexIndex + 1, vertexIndex + 2);\n iconOrText.indexArray.emplaceBack(vertexIndex + 1, vertexIndex + 2, vertexIndex + 3);\n }\n };\n SymbolBucket.prototype.getSortedSymbolIndexes = function getSortedSymbolIndexes(angle) {\n if (this.sortedAngle === angle && this.symbolInstanceIndexes !== void 0) {\n return this.symbolInstanceIndexes;\n }\n var sin = Math.sin(angle);\n var cos = Math.cos(angle);\n var rotatedYs = [];\n var featureIndexes = [];\n var result = [];\n for (var i = 0; i < this.symbolInstances.length; ++i) {\n result.push(i);\n var symbolInstance2 = this.symbolInstances.get(i);\n rotatedYs.push(Math.round(sin * symbolInstance2.anchorX + cos * symbolInstance2.anchorY) | 0);\n featureIndexes.push(symbolInstance2.featureIndex);\n }\n result.sort(function(aIndex, bIndex) {\n return rotatedYs[aIndex] - rotatedYs[bIndex] || featureIndexes[bIndex] - featureIndexes[aIndex];\n });\n return result;\n };\n SymbolBucket.prototype.addToSortKeyRanges = function addToSortKeyRanges(symbolInstanceIndex, sortKey) {\n var last = this.sortKeyRanges[this.sortKeyRanges.length - 1];\n if (last && last.sortKey === sortKey) {\n last.symbolInstanceEnd = symbolInstanceIndex + 1;\n } else {\n this.sortKeyRanges.push({\n sortKey,\n symbolInstanceStart: symbolInstanceIndex,\n symbolInstanceEnd: symbolInstanceIndex + 1\n });\n }\n };\n SymbolBucket.prototype.sortFeatures = function sortFeatures(angle) {\n var this$1 = this;\n if (!this.sortFeaturesByY) {\n return;\n }\n if (this.sortedAngle === angle) {\n return;\n }\n if (this.text.segments.get().length > 1 || this.icon.segments.get().length > 1) {\n return;\n }\n this.symbolInstanceIndexes = this.getSortedSymbolIndexes(angle);\n this.sortedAngle = angle;\n this.text.indexArray.clear();\n this.icon.indexArray.clear();\n this.featureSortOrder = [];\n for (var i$1 = 0, list = this.symbolInstanceIndexes; i$1 < list.length; i$1 += 1) {\n var i = list[i$1];\n var symbolInstance2 = this.symbolInstances.get(i);\n this.featureSortOrder.push(symbolInstance2.featureIndex);\n [\n symbolInstance2.rightJustifiedTextSymbolIndex,\n symbolInstance2.centerJustifiedTextSymbolIndex,\n symbolInstance2.leftJustifiedTextSymbolIndex\n ].forEach(function(index, i2, array2) {\n if (index >= 0 && array2.indexOf(index) === i2) {\n this$1.addIndicesForPlacedSymbol(this$1.text, index);\n }\n });\n if (symbolInstance2.verticalPlacedTextSymbolIndex >= 0) {\n this.addIndicesForPlacedSymbol(this.text, symbolInstance2.verticalPlacedTextSymbolIndex);\n }\n if (symbolInstance2.placedIconSymbolIndex >= 0) {\n this.addIndicesForPlacedSymbol(this.icon, symbolInstance2.placedIconSymbolIndex);\n }\n if (symbolInstance2.verticalPlacedIconSymbolIndex >= 0) {\n this.addIndicesForPlacedSymbol(this.icon, symbolInstance2.verticalPlacedIconSymbolIndex);\n }\n }\n if (this.text.indexBuffer) {\n this.text.indexBuffer.updateData(this.text.indexArray);\n }\n if (this.icon.indexBuffer) {\n this.icon.indexBuffer.updateData(this.icon.indexArray);\n }\n };\n register(\"SymbolBucket\", SymbolBucket, {\n omit: [\n \"layers\",\n \"collisionBoxArray\",\n \"features\",\n \"compareText\"\n ]\n });\n SymbolBucket.MAX_GLYPHS = 65535;\n SymbolBucket.addDynamicAttributes = addDynamicAttributes;\n function resolveTokens(properties2, text) {\n return text.replace(/{([^{}]+)}/g, function(match, key) {\n return key in properties2 ? String(properties2[key]) : \"\";\n });\n }\n var layout$7 = new Properties({\n \"symbol-placement\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-placement\"]),\n \"symbol-spacing\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-spacing\"]),\n \"symbol-avoid-edges\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-avoid-edges\"]),\n \"symbol-sort-key\": new DataDrivenProperty(spec[\"layout_symbol\"][\"symbol-sort-key\"]),\n \"symbol-z-order\": new DataConstantProperty(spec[\"layout_symbol\"][\"symbol-z-order\"]),\n \"icon-allow-overlap\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-allow-overlap\"]),\n \"icon-ignore-placement\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-ignore-placement\"]),\n \"icon-optional\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-optional\"]),\n \"icon-rotation-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-rotation-alignment\"]),\n \"icon-size\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-size\"]),\n \"icon-text-fit\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-text-fit\"]),\n \"icon-text-fit-padding\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-text-fit-padding\"]),\n \"icon-image\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-image\"]),\n \"icon-rotate\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-rotate\"]),\n \"icon-padding\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-padding\"]),\n \"icon-keep-upright\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-keep-upright\"]),\n \"icon-offset\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-offset\"]),\n \"icon-anchor\": new DataDrivenProperty(spec[\"layout_symbol\"][\"icon-anchor\"]),\n \"icon-pitch-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"icon-pitch-alignment\"]),\n \"text-pitch-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-pitch-alignment\"]),\n \"text-rotation-alignment\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-rotation-alignment\"]),\n \"text-field\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-field\"]),\n \"text-font\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-font\"]),\n \"text-size\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-size\"]),\n \"text-max-width\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-max-width\"]),\n \"text-line-height\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-line-height\"]),\n \"text-letter-spacing\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-letter-spacing\"]),\n \"text-justify\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-justify\"]),\n \"text-radial-offset\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-radial-offset\"]),\n \"text-variable-anchor\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-variable-anchor\"]),\n \"text-anchor\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-anchor\"]),\n \"text-max-angle\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-max-angle\"]),\n \"text-writing-mode\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-writing-mode\"]),\n \"text-rotate\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-rotate\"]),\n \"text-padding\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-padding\"]),\n \"text-keep-upright\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-keep-upright\"]),\n \"text-transform\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-transform\"]),\n \"text-offset\": new DataDrivenProperty(spec[\"layout_symbol\"][\"text-offset\"]),\n \"text-allow-overlap\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-allow-overlap\"]),\n \"text-ignore-placement\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-ignore-placement\"]),\n \"text-optional\": new DataConstantProperty(spec[\"layout_symbol\"][\"text-optional\"])\n });\n var paint$7 = new Properties({\n \"icon-opacity\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-opacity\"]),\n \"icon-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-color\"]),\n \"icon-halo-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-halo-color\"]),\n \"icon-halo-width\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-halo-width\"]),\n \"icon-halo-blur\": new DataDrivenProperty(spec[\"paint_symbol\"][\"icon-halo-blur\"]),\n \"icon-translate\": new DataConstantProperty(spec[\"paint_symbol\"][\"icon-translate\"]),\n \"icon-translate-anchor\": new DataConstantProperty(spec[\"paint_symbol\"][\"icon-translate-anchor\"]),\n \"text-opacity\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-opacity\"]),\n \"text-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-color\"], {\n runtimeType: ColorType,\n getOverride: function(o) {\n return o.textColor;\n },\n hasOverride: function(o) {\n return !!o.textColor;\n }\n }),\n \"text-halo-color\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-halo-color\"]),\n \"text-halo-width\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-halo-width\"]),\n \"text-halo-blur\": new DataDrivenProperty(spec[\"paint_symbol\"][\"text-halo-blur\"]),\n \"text-translate\": new DataConstantProperty(spec[\"paint_symbol\"][\"text-translate\"]),\n \"text-translate-anchor\": new DataConstantProperty(spec[\"paint_symbol\"][\"text-translate-anchor\"])\n });\n var properties$6 = {\n paint: paint$7,\n layout: layout$7\n };\n var FormatSectionOverride = function FormatSectionOverride2(defaultValue) {\n this.type = defaultValue.property.overrides ? defaultValue.property.overrides.runtimeType : NullType;\n this.defaultValue = defaultValue;\n };\n FormatSectionOverride.prototype.evaluate = function evaluate(ctx) {\n if (ctx.formattedSection) {\n var overrides = this.defaultValue.property.overrides;\n if (overrides && overrides.hasOverride(ctx.formattedSection)) {\n return overrides.getOverride(ctx.formattedSection);\n }\n }\n if (ctx.feature && ctx.featureState) {\n return this.defaultValue.evaluate(ctx.feature, ctx.featureState);\n }\n return this.defaultValue.property.specification.default;\n };\n FormatSectionOverride.prototype.eachChild = function eachChild(fn) {\n if (!this.defaultValue.isConstant()) {\n var expr = this.defaultValue.value;\n fn(expr._styleExpression.expression);\n }\n };\n FormatSectionOverride.prototype.outputDefined = function outputDefined() {\n return false;\n };\n FormatSectionOverride.prototype.serialize = function serialize2() {\n return null;\n };\n register(\"FormatSectionOverride\", FormatSectionOverride, { omit: [\"defaultValue\"] });\n var SymbolStyleLayer = function(StyleLayer2) {\n function SymbolStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$6);\n }\n if (StyleLayer2)\n SymbolStyleLayer2.__proto__ = StyleLayer2;\n SymbolStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n SymbolStyleLayer2.prototype.constructor = SymbolStyleLayer2;\n SymbolStyleLayer2.prototype.recalculate = function recalculate(parameters, availableImages) {\n StyleLayer2.prototype.recalculate.call(this, parameters, availableImages);\n if (this.layout.get(\"icon-rotation-alignment\") === \"auto\") {\n if (this.layout.get(\"symbol-placement\") !== \"point\") {\n this.layout._values[\"icon-rotation-alignment\"] = \"map\";\n } else {\n this.layout._values[\"icon-rotation-alignment\"] = \"viewport\";\n }\n }\n if (this.layout.get(\"text-rotation-alignment\") === \"auto\") {\n if (this.layout.get(\"symbol-placement\") !== \"point\") {\n this.layout._values[\"text-rotation-alignment\"] = \"map\";\n } else {\n this.layout._values[\"text-rotation-alignment\"] = \"viewport\";\n }\n }\n if (this.layout.get(\"text-pitch-alignment\") === \"auto\") {\n this.layout._values[\"text-pitch-alignment\"] = this.layout.get(\"text-rotation-alignment\");\n }\n if (this.layout.get(\"icon-pitch-alignment\") === \"auto\") {\n this.layout._values[\"icon-pitch-alignment\"] = this.layout.get(\"icon-rotation-alignment\");\n }\n if (this.layout.get(\"symbol-placement\") === \"point\") {\n var writingModes = this.layout.get(\"text-writing-mode\");\n if (writingModes) {\n var deduped = [];\n for (var i = 0, list = writingModes; i < list.length; i += 1) {\n var m = list[i];\n if (deduped.indexOf(m) < 0) {\n deduped.push(m);\n }\n }\n this.layout._values[\"text-writing-mode\"] = deduped;\n } else {\n this.layout._values[\"text-writing-mode\"] = [\"horizontal\"];\n }\n }\n this._setPaintOverrides();\n };\n SymbolStyleLayer2.prototype.getValueAndResolveTokens = function getValueAndResolveTokens(name3, feature, canonical, availableImages) {\n var value = this.layout.get(name3).evaluate(feature, {}, canonical, availableImages);\n var unevaluated = this._unevaluatedLayout._values[name3];\n if (!unevaluated.isDataDriven() && !isExpression(unevaluated.value) && value) {\n return resolveTokens(feature.properties, value);\n }\n return value;\n };\n SymbolStyleLayer2.prototype.createBucket = function createBucket(parameters) {\n return new SymbolBucket(parameters);\n };\n SymbolStyleLayer2.prototype.queryRadius = function queryRadius() {\n return 0;\n };\n SymbolStyleLayer2.prototype.queryIntersectsFeature = function queryIntersectsFeature() {\n return false;\n };\n SymbolStyleLayer2.prototype._setPaintOverrides = function _setPaintOverrides() {\n for (var i = 0, list = properties$6.paint.overridableProperties; i < list.length; i += 1) {\n var overridable = list[i];\n if (!SymbolStyleLayer2.hasPaintOverride(this.layout, overridable)) {\n continue;\n }\n var overriden = this.paint.get(overridable);\n var override = new FormatSectionOverride(overriden);\n var styleExpression = new StyleExpression(override, overriden.property.specification);\n var expression2 = null;\n if (overriden.value.kind === \"constant\" || overriden.value.kind === \"source\") {\n expression2 = new ZoomConstantExpression(\"source\", styleExpression);\n } else {\n expression2 = new ZoomDependentExpression(\"composite\", styleExpression, overriden.value.zoomStops, overriden.value._interpolationType);\n }\n this.paint._values[overridable] = new PossiblyEvaluatedPropertyValue(overriden.property, expression2, overriden.parameters);\n }\n };\n SymbolStyleLayer2.prototype._handleOverridablePaintPropertyUpdate = function _handleOverridablePaintPropertyUpdate(name3, oldValue, newValue) {\n if (!this.layout || oldValue.isDataDriven() || newValue.isDataDriven()) {\n return false;\n }\n return SymbolStyleLayer2.hasPaintOverride(this.layout, name3);\n };\n SymbolStyleLayer2.hasPaintOverride = function hasPaintOverride(layout2, propertyName) {\n var textField = layout2.get(\"text-field\");\n var property = properties$6.paint.properties[propertyName];\n var hasOverrides = false;\n var checkSections = function(sections) {\n for (var i = 0, list = sections; i < list.length; i += 1) {\n var section = list[i];\n if (property.overrides && property.overrides.hasOverride(section)) {\n hasOverrides = true;\n return;\n }\n }\n };\n if (textField.value.kind === \"constant\" && textField.value.value instanceof Formatted) {\n checkSections(textField.value.value.sections);\n } else if (textField.value.kind === \"source\") {\n var checkExpression = function(expression2) {\n if (hasOverrides) {\n return;\n }\n if (expression2 instanceof Literal && typeOf(expression2.value) === FormattedType) {\n var formatted = expression2.value;\n checkSections(formatted.sections);\n } else if (expression2 instanceof FormatExpression) {\n checkSections(expression2.sections);\n } else {\n expression2.eachChild(checkExpression);\n }\n };\n var expr = textField.value;\n if (expr._styleExpression) {\n checkExpression(expr._styleExpression.expression);\n }\n }\n return hasOverrides;\n };\n return SymbolStyleLayer2;\n }(StyleLayer);\n var paint$8 = new Properties({\n \"background-color\": new DataConstantProperty(spec[\"paint_background\"][\"background-color\"]),\n \"background-pattern\": new CrossFadedProperty(spec[\"paint_background\"][\"background-pattern\"]),\n \"background-opacity\": new DataConstantProperty(spec[\"paint_background\"][\"background-opacity\"])\n });\n var properties$7 = { paint: paint$8 };\n var BackgroundStyleLayer = function(StyleLayer2) {\n function BackgroundStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$7);\n }\n if (StyleLayer2)\n BackgroundStyleLayer2.__proto__ = StyleLayer2;\n BackgroundStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n BackgroundStyleLayer2.prototype.constructor = BackgroundStyleLayer2;\n return BackgroundStyleLayer2;\n }(StyleLayer);\n var paint$9 = new Properties({\n \"raster-opacity\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-opacity\"]),\n \"raster-hue-rotate\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-hue-rotate\"]),\n \"raster-brightness-min\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-brightness-min\"]),\n \"raster-brightness-max\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-brightness-max\"]),\n \"raster-saturation\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-saturation\"]),\n \"raster-contrast\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-contrast\"]),\n \"raster-resampling\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-resampling\"]),\n \"raster-fade-duration\": new DataConstantProperty(spec[\"paint_raster\"][\"raster-fade-duration\"])\n });\n var properties$8 = { paint: paint$9 };\n var RasterStyleLayer = function(StyleLayer2) {\n function RasterStyleLayer2(layer2) {\n StyleLayer2.call(this, layer2, properties$8);\n }\n if (StyleLayer2)\n RasterStyleLayer2.__proto__ = StyleLayer2;\n RasterStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n RasterStyleLayer2.prototype.constructor = RasterStyleLayer2;\n return RasterStyleLayer2;\n }(StyleLayer);\n function validateCustomStyleLayer(layerObject) {\n var errors = [];\n var id2 = layerObject.id;\n if (id2 === void 0) {\n errors.push({ message: \"layers.\" + id2 + ': missing required property \"id\"' });\n }\n if (layerObject.render === void 0) {\n errors.push({ message: \"layers.\" + id2 + ': missing required method \"render\"' });\n }\n if (layerObject.renderingMode && layerObject.renderingMode !== \"2d\" && layerObject.renderingMode !== \"3d\") {\n errors.push({ message: \"layers.\" + id2 + ': property \"renderingMode\" must be either \"2d\" or \"3d\"' });\n }\n return errors;\n }\n var CustomStyleLayer = function(StyleLayer2) {\n function CustomStyleLayer2(implementation) {\n StyleLayer2.call(this, implementation, {});\n this.implementation = implementation;\n }\n if (StyleLayer2)\n CustomStyleLayer2.__proto__ = StyleLayer2;\n CustomStyleLayer2.prototype = Object.create(StyleLayer2 && StyleLayer2.prototype);\n CustomStyleLayer2.prototype.constructor = CustomStyleLayer2;\n CustomStyleLayer2.prototype.is3D = function is3D() {\n return this.implementation.renderingMode === \"3d\";\n };\n CustomStyleLayer2.prototype.hasOffscreenPass = function hasOffscreenPass() {\n return this.implementation.prerender !== void 0;\n };\n CustomStyleLayer2.prototype.recalculate = function recalculate() {\n };\n CustomStyleLayer2.prototype.updateTransitions = function updateTransitions() {\n };\n CustomStyleLayer2.prototype.hasTransition = function hasTransition() {\n };\n CustomStyleLayer2.prototype.serialize = function serialize2() {\n };\n CustomStyleLayer2.prototype.onAdd = function onAdd(map) {\n if (this.implementation.onAdd) {\n this.implementation.onAdd(map, map.painter.context.gl);\n }\n };\n CustomStyleLayer2.prototype.onRemove = function onRemove(map) {\n if (this.implementation.onRemove) {\n this.implementation.onRemove(map, map.painter.context.gl);\n }\n };\n return CustomStyleLayer2;\n }(StyleLayer);\n var subclasses = {\n circle: CircleStyleLayer,\n heatmap: HeatmapStyleLayer,\n hillshade: HillshadeStyleLayer,\n fill: FillStyleLayer,\n \"fill-extrusion\": FillExtrusionStyleLayer,\n line: LineStyleLayer,\n symbol: SymbolStyleLayer,\n background: BackgroundStyleLayer,\n raster: RasterStyleLayer\n };\n function createStyleLayer(layer2) {\n if (layer2.type === \"custom\") {\n return new CustomStyleLayer(layer2);\n } else {\n return new subclasses[layer2.type](layer2);\n }\n }\n var HTMLImageElement2 = window$1.HTMLImageElement;\n var HTMLCanvasElement2 = window$1.HTMLCanvasElement;\n var HTMLVideoElement2 = window$1.HTMLVideoElement;\n var ImageData$1 = window$1.ImageData;\n var ImageBitmap$1 = window$1.ImageBitmap;\n var Texture = function Texture2(context, image, format, options) {\n this.context = context;\n this.format = format;\n this.texture = context.gl.createTexture();\n this.update(image, options);\n };\n Texture.prototype.update = function update(image, options, position) {\n var width = image.width;\n var height = image.height;\n var resize = (!this.size || this.size[0] !== width || this.size[1] !== height) && !position;\n var ref = this;\n var context = ref.context;\n var gl2 = context.gl;\n this.useMipmap = Boolean(options && options.useMipmap);\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n context.pixelStoreUnpackFlipY.set(false);\n context.pixelStoreUnpack.set(1);\n context.pixelStoreUnpackPremultiplyAlpha.set(this.format === gl2.RGBA && (!options || options.premultiply !== false));\n if (resize) {\n this.size = [\n width,\n height\n ];\n if (image instanceof HTMLImageElement2 || image instanceof HTMLCanvasElement2 || image instanceof HTMLVideoElement2 || image instanceof ImageData$1 || ImageBitmap$1 && image instanceof ImageBitmap$1) {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, this.format, this.format, gl2.UNSIGNED_BYTE, image);\n } else {\n gl2.texImage2D(gl2.TEXTURE_2D, 0, this.format, width, height, 0, this.format, gl2.UNSIGNED_BYTE, image.data);\n }\n } else {\n var ref$1 = position || {\n x: 0,\n y: 0\n };\n var x = ref$1.x;\n var y = ref$1.y;\n if (image instanceof HTMLImageElement2 || image instanceof HTMLCanvasElement2 || image instanceof HTMLVideoElement2 || image instanceof ImageData$1 || ImageBitmap$1 && image instanceof ImageBitmap$1) {\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, x, y, gl2.RGBA, gl2.UNSIGNED_BYTE, image);\n } else {\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, x, y, width, height, gl2.RGBA, gl2.UNSIGNED_BYTE, image.data);\n }\n }\n if (this.useMipmap && this.isSizePowerOfTwo()) {\n gl2.generateMipmap(gl2.TEXTURE_2D);\n }\n };\n Texture.prototype.bind = function bind(filter2, wrap2, minFilter) {\n var ref = this;\n var context = ref.context;\n var gl2 = context.gl;\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n if (minFilter === gl2.LINEAR_MIPMAP_NEAREST && !this.isSizePowerOfTwo()) {\n minFilter = gl2.LINEAR;\n }\n if (filter2 !== this.filter) {\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, filter2);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, minFilter || filter2);\n this.filter = filter2;\n }\n if (wrap2 !== this.wrap) {\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, wrap2);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, wrap2);\n this.wrap = wrap2;\n }\n };\n Texture.prototype.isSizePowerOfTwo = function isSizePowerOfTwo() {\n return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 === 0;\n };\n Texture.prototype.destroy = function destroy() {\n var ref = this.context;\n var gl2 = ref.gl;\n gl2.deleteTexture(this.texture);\n this.texture = null;\n };\n var ThrottledInvoker = function ThrottledInvoker2(callback) {\n var this$1 = this;\n this._callback = callback;\n this._triggered = false;\n if (typeof MessageChannel !== \"undefined\") {\n this._channel = new MessageChannel();\n this._channel.port2.onmessage = function() {\n this$1._triggered = false;\n this$1._callback();\n };\n }\n };\n ThrottledInvoker.prototype.trigger = function trigger() {\n var this$1 = this;\n if (!this._triggered) {\n this._triggered = true;\n if (this._channel) {\n this._channel.port1.postMessage(true);\n } else {\n setTimeout(function() {\n this$1._triggered = false;\n this$1._callback();\n }, 0);\n }\n }\n };\n ThrottledInvoker.prototype.remove = function remove() {\n delete this._channel;\n this._callback = function() {\n };\n };\n var Actor = function Actor2(target, parent, mapId) {\n this.target = target;\n this.parent = parent;\n this.mapId = mapId;\n this.callbacks = {};\n this.tasks = {};\n this.taskQueue = [];\n this.cancelCallbacks = {};\n bindAll([\n \"receive\",\n \"process\"\n ], this);\n this.invoker = new ThrottledInvoker(this.process);\n this.target.addEventListener(\"message\", this.receive, false);\n this.globalScope = isWorker() ? target : window$1;\n };\n Actor.prototype.send = function send(type, data, callback, targetMapId, mustQueue) {\n var this$1 = this;\n if (mustQueue === void 0)\n mustQueue = false;\n var id2 = Math.round(Math.random() * 1e18).toString(36).substring(0, 10);\n if (callback) {\n this.callbacks[id2] = callback;\n }\n var buffers = isSafari(this.globalScope) ? void 0 : [];\n this.target.postMessage({\n id: id2,\n type,\n hasCallback: !!callback,\n targetMapId,\n mustQueue,\n sourceMapId: this.mapId,\n data: serialize(data, buffers)\n }, buffers);\n return {\n cancel: function() {\n if (callback) {\n delete this$1.callbacks[id2];\n }\n this$1.target.postMessage({\n id: id2,\n type: \"\",\n targetMapId,\n sourceMapId: this$1.mapId\n });\n }\n };\n };\n Actor.prototype.receive = function receive(message) {\n var data = message.data, id2 = data.id;\n if (!id2) {\n return;\n }\n if (data.targetMapId && this.mapId !== data.targetMapId) {\n return;\n }\n if (data.type === \"\") {\n delete this.tasks[id2];\n var cancel2 = this.cancelCallbacks[id2];\n delete this.cancelCallbacks[id2];\n if (cancel2) {\n cancel2();\n }\n } else {\n if (isWorker() || data.mustQueue) {\n this.tasks[id2] = data;\n this.taskQueue.push(id2);\n this.invoker.trigger();\n } else {\n this.processTask(id2, data);\n }\n }\n };\n Actor.prototype.process = function process2() {\n if (!this.taskQueue.length) {\n return;\n }\n var id2 = this.taskQueue.shift();\n var task = this.tasks[id2];\n delete this.tasks[id2];\n if (this.taskQueue.length) {\n this.invoker.trigger();\n }\n if (!task) {\n return;\n }\n this.processTask(id2, task);\n };\n Actor.prototype.processTask = function processTask(id2, task) {\n var this$1 = this;\n if (task.type === \"\") {\n var callback = this.callbacks[id2];\n delete this.callbacks[id2];\n if (callback) {\n if (task.error) {\n callback(deserialize(task.error));\n } else {\n callback(null, deserialize(task.data));\n }\n }\n } else {\n var completed = false;\n var buffers = isSafari(this.globalScope) ? void 0 : [];\n var done = task.hasCallback ? function(err, data) {\n completed = true;\n delete this$1.cancelCallbacks[id2];\n this$1.target.postMessage({\n id: id2,\n type: \"\",\n sourceMapId: this$1.mapId,\n error: err ? serialize(err) : null,\n data: serialize(data, buffers)\n }, buffers);\n } : function(_) {\n completed = true;\n };\n var callback$1 = null;\n var params = deserialize(task.data);\n if (this.parent[task.type]) {\n callback$1 = this.parent[task.type](task.sourceMapId, params, done);\n } else if (this.parent.getWorkerSource) {\n var keys = task.type.split(\".\");\n var scope = this.parent.getWorkerSource(task.sourceMapId, keys[0], params.source);\n callback$1 = scope[keys[1]](params, done);\n } else {\n done(new Error(\"Could not find function \" + task.type));\n }\n if (!completed && callback$1 && callback$1.cancel) {\n this.cancelCallbacks[id2] = callback$1.cancel;\n }\n }\n };\n Actor.prototype.remove = function remove() {\n this.invoker.remove();\n this.target.removeEventListener(\"message\", this.receive, false);\n };\n function getTileBBox(x, y, z) {\n y = Math.pow(2, z) - y - 1;\n var min = getMercCoords(x * 256, y * 256, z), max = getMercCoords((x + 1) * 256, (y + 1) * 256, z);\n return min[0] + \",\" + min[1] + \",\" + max[0] + \",\" + max[1];\n }\n function getMercCoords(x, y, z) {\n var resolution = 2 * Math.PI * 6378137 / 256 / Math.pow(2, z), merc_x = x * resolution - 2 * Math.PI * 6378137 / 2, merc_y = y * resolution - 2 * Math.PI * 6378137 / 2;\n return [merc_x, merc_y];\n }\n var LngLatBounds = function LngLatBounds2(sw, ne) {\n if (!sw) ;\n else if (ne) {\n this.setSouthWest(sw).setNorthEast(ne);\n } else if (sw.length === 4) {\n this.setSouthWest([\n sw[0],\n sw[1]\n ]).setNorthEast([\n sw[2],\n sw[3]\n ]);\n } else {\n this.setSouthWest(sw[0]).setNorthEast(sw[1]);\n }\n };\n LngLatBounds.prototype.setNorthEast = function setNorthEast(ne) {\n this._ne = ne instanceof LngLat ? new LngLat(ne.lng, ne.lat) : LngLat.convert(ne);\n return this;\n };\n LngLatBounds.prototype.setSouthWest = function setSouthWest(sw) {\n this._sw = sw instanceof LngLat ? new LngLat(sw.lng, sw.lat) : LngLat.convert(sw);\n return this;\n };\n LngLatBounds.prototype.extend = function extend3(obj) {\n var sw = this._sw, ne = this._ne;\n var sw2, ne2;\n if (obj instanceof LngLat) {\n sw2 = obj;\n ne2 = obj;\n } else if (obj instanceof LngLatBounds) {\n sw2 = obj._sw;\n ne2 = obj._ne;\n if (!sw2 || !ne2) {\n return this;\n }\n } else {\n if (Array.isArray(obj)) {\n if (obj.length === 4 || obj.every(Array.isArray)) {\n var lngLatBoundsObj = obj;\n return this.extend(LngLatBounds.convert(lngLatBoundsObj));\n } else {\n var lngLatObj = obj;\n return this.extend(LngLat.convert(lngLatObj));\n }\n }\n return this;\n }\n if (!sw && !ne) {\n this._sw = new LngLat(sw2.lng, sw2.lat);\n this._ne = new LngLat(ne2.lng, ne2.lat);\n } else {\n sw.lng = Math.min(sw2.lng, sw.lng);\n sw.lat = Math.min(sw2.lat, sw.lat);\n ne.lng = Math.max(ne2.lng, ne.lng);\n ne.lat = Math.max(ne2.lat, ne.lat);\n }\n return this;\n };\n LngLatBounds.prototype.getCenter = function getCenter() {\n return new LngLat((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);\n };\n LngLatBounds.prototype.getSouthWest = function getSouthWest() {\n return this._sw;\n };\n LngLatBounds.prototype.getNorthEast = function getNorthEast() {\n return this._ne;\n };\n LngLatBounds.prototype.getNorthWest = function getNorthWest() {\n return new LngLat(this.getWest(), this.getNorth());\n };\n LngLatBounds.prototype.getSouthEast = function getSouthEast() {\n return new LngLat(this.getEast(), this.getSouth());\n };\n LngLatBounds.prototype.getWest = function getWest() {\n return this._sw.lng;\n };\n LngLatBounds.prototype.getSouth = function getSouth() {\n return this._sw.lat;\n };\n LngLatBounds.prototype.getEast = function getEast() {\n return this._ne.lng;\n };\n LngLatBounds.prototype.getNorth = function getNorth() {\n return this._ne.lat;\n };\n LngLatBounds.prototype.toArray = function toArray() {\n return [\n this._sw.toArray(),\n this._ne.toArray()\n ];\n };\n LngLatBounds.prototype.toString = function toString2() {\n return \"LngLatBounds(\" + this._sw.toString() + \", \" + this._ne.toString() + \")\";\n };\n LngLatBounds.prototype.isEmpty = function isEmpty2() {\n return !(this._sw && this._ne);\n };\n LngLatBounds.prototype.contains = function contains(lnglat) {\n var ref = LngLat.convert(lnglat);\n var lng = ref.lng;\n var lat = ref.lat;\n var containsLatitude = this._sw.lat <= lat && lat <= this._ne.lat;\n var containsLongitude = this._sw.lng <= lng && lng <= this._ne.lng;\n if (this._sw.lng > this._ne.lng) {\n containsLongitude = this._sw.lng >= lng && lng >= this._ne.lng;\n }\n return containsLatitude && containsLongitude;\n };\n LngLatBounds.convert = function convert(input) {\n if (!input || input instanceof LngLatBounds) {\n return input;\n }\n return new LngLatBounds(input);\n };\n var earthRadius = 63710088e-1;\n var LngLat = function LngLat2(lng, lat) {\n if (isNaN(lng) || isNaN(lat)) {\n throw new Error(\"Invalid LngLat object: (\" + lng + \", \" + lat + \")\");\n }\n this.lng = +lng;\n this.lat = +lat;\n if (this.lat > 90 || this.lat < -90) {\n throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\");\n }\n };\n LngLat.prototype.wrap = function wrap$1() {\n return new LngLat(wrap(this.lng, -180, 180), this.lat);\n };\n LngLat.prototype.toArray = function toArray() {\n return [\n this.lng,\n this.lat\n ];\n };\n LngLat.prototype.toString = function toString2() {\n return \"LngLat(\" + this.lng + \", \" + this.lat + \")\";\n };\n LngLat.prototype.distanceTo = function distanceTo(lngLat) {\n var rad = Math.PI / 180;\n var lat1 = this.lat * rad;\n var lat2 = lngLat.lat * rad;\n var a = Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos((lngLat.lng - this.lng) * rad);\n var maxMeters = earthRadius * Math.acos(Math.min(a, 1));\n return maxMeters;\n };\n LngLat.prototype.toBounds = function toBounds(radius) {\n if (radius === void 0)\n radius = 0;\n var earthCircumferenceInMetersAtEquator = 40075017;\n var latAccuracy = 360 * radius / earthCircumferenceInMetersAtEquator, lngAccuracy = latAccuracy / Math.cos(Math.PI / 180 * this.lat);\n return new LngLatBounds(new LngLat(this.lng - lngAccuracy, this.lat - latAccuracy), new LngLat(this.lng + lngAccuracy, this.lat + latAccuracy));\n };\n LngLat.convert = function convert(input) {\n if (input instanceof LngLat) {\n return input;\n }\n if (Array.isArray(input) && (input.length === 2 || input.length === 3)) {\n return new LngLat(Number(input[0]), Number(input[1]));\n }\n if (!Array.isArray(input) && typeof input === \"object\" && input !== null) {\n return new LngLat(Number(\"lng\" in input ? input.lng : input.lon), Number(input.lat));\n }\n throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\");\n };\n var earthCircumfrence = 2 * Math.PI * earthRadius;\n function circumferenceAtLatitude(latitude) {\n return earthCircumfrence * Math.cos(latitude * Math.PI / 180);\n }\n function mercatorXfromLng$1(lng) {\n return (180 + lng) / 360;\n }\n function mercatorYfromLat$1(lat) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + lat * Math.PI / 360))) / 360;\n }\n function mercatorZfromAltitude(altitude, lat) {\n return altitude / circumferenceAtLatitude(lat);\n }\n function lngFromMercatorX(x) {\n return x * 360 - 180;\n }\n function latFromMercatorY(y) {\n var y2 = 180 - y * 360;\n return 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;\n }\n function altitudeFromMercatorZ(z, y) {\n return z * circumferenceAtLatitude(latFromMercatorY(y));\n }\n function mercatorScale(lat) {\n return 1 / Math.cos(lat * Math.PI / 180);\n }\n var MercatorCoordinate = function MercatorCoordinate2(x, y, z) {\n if (z === void 0)\n z = 0;\n this.x = +x;\n this.y = +y;\n this.z = +z;\n };\n MercatorCoordinate.fromLngLat = function fromLngLat(lngLatLike, altitude) {\n if (altitude === void 0)\n altitude = 0;\n var lngLat = LngLat.convert(lngLatLike);\n return new MercatorCoordinate(mercatorXfromLng$1(lngLat.lng), mercatorYfromLat$1(lngLat.lat), mercatorZfromAltitude(altitude, lngLat.lat));\n };\n MercatorCoordinate.prototype.toLngLat = function toLngLat() {\n return new LngLat(lngFromMercatorX(this.x), latFromMercatorY(this.y));\n };\n MercatorCoordinate.prototype.toAltitude = function toAltitude() {\n return altitudeFromMercatorZ(this.z, this.y);\n };\n MercatorCoordinate.prototype.meterInMercatorCoordinateUnits = function meterInMercatorCoordinateUnits() {\n return 1 / earthCircumfrence * mercatorScale(latFromMercatorY(this.y));\n };\n var CanonicalTileID = function CanonicalTileID2(z, x, y) {\n this.z = z;\n this.x = x;\n this.y = y;\n this.key = calculateKey(0, z, z, x, y);\n };\n CanonicalTileID.prototype.equals = function equals2(id2) {\n return this.z === id2.z && this.x === id2.x && this.y === id2.y;\n };\n CanonicalTileID.prototype.url = function url(urls, scheme) {\n var bbox = getTileBBox(this.x, this.y, this.z);\n var quadkey = getQuadkey(this.z, this.x, this.y);\n return urls[(this.x + this.y) % urls.length].replace(\"{prefix}\", (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(\"{z}\", String(this.z)).replace(\"{x}\", String(this.x)).replace(\"{y}\", String(scheme === \"tms\" ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(\"{quadkey}\", quadkey).replace(\"{bbox-epsg-3857}\", bbox);\n };\n CanonicalTileID.prototype.getTilePoint = function getTilePoint(coord) {\n var tilesAtZoom = Math.pow(2, this.z);\n return new pointGeometry((coord.x * tilesAtZoom - this.x) * EXTENT$1, (coord.y * tilesAtZoom - this.y) * EXTENT$1);\n };\n CanonicalTileID.prototype.toString = function toString2() {\n return this.z + \"/\" + this.x + \"/\" + this.y;\n };\n var UnwrappedTileID = function UnwrappedTileID2(wrap2, canonical) {\n this.wrap = wrap2;\n this.canonical = canonical;\n this.key = calculateKey(wrap2, canonical.z, canonical.z, canonical.x, canonical.y);\n };\n var OverscaledTileID = function OverscaledTileID2(overscaledZ, wrap2, z, x, y) {\n this.overscaledZ = overscaledZ;\n this.wrap = wrap2;\n this.canonical = new CanonicalTileID(z, +x, +y);\n this.key = calculateKey(wrap2, overscaledZ, z, x, y);\n };\n OverscaledTileID.prototype.equals = function equals2(id2) {\n return this.overscaledZ === id2.overscaledZ && this.wrap === id2.wrap && this.canonical.equals(id2.canonical);\n };\n OverscaledTileID.prototype.scaledTo = function scaledTo(targetZ) {\n var zDifference = this.canonical.z - targetZ;\n if (targetZ > this.canonical.z) {\n return new OverscaledTileID(targetZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y);\n } else {\n return new OverscaledTileID(targetZ, this.wrap, targetZ, this.canonical.x >> zDifference, this.canonical.y >> zDifference);\n }\n };\n OverscaledTileID.prototype.calculateScaledKey = function calculateScaledKey(targetZ, withWrap) {\n var zDifference = this.canonical.z - targetZ;\n if (targetZ > this.canonical.z) {\n return calculateKey(this.wrap * +withWrap, targetZ, this.canonical.z, this.canonical.x, this.canonical.y);\n } else {\n return calculateKey(this.wrap * +withWrap, targetZ, targetZ, this.canonical.x >> zDifference, this.canonical.y >> zDifference);\n }\n };\n OverscaledTileID.prototype.isChildOf = function isChildOf(parent) {\n if (parent.wrap !== this.wrap) {\n return false;\n }\n var zDifference = this.canonical.z - parent.canonical.z;\n return parent.overscaledZ === 0 || parent.overscaledZ < this.overscaledZ && parent.canonical.x === this.canonical.x >> zDifference && parent.canonical.y === this.canonical.y >> zDifference;\n };\n OverscaledTileID.prototype.children = function children(sourceMaxZoom) {\n if (this.overscaledZ >= sourceMaxZoom) {\n return [new OverscaledTileID(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)];\n }\n var z = this.canonical.z + 1;\n var x = this.canonical.x * 2;\n var y = this.canonical.y * 2;\n return [\n new OverscaledTileID(z, this.wrap, z, x, y),\n new OverscaledTileID(z, this.wrap, z, x + 1, y),\n new OverscaledTileID(z, this.wrap, z, x, y + 1),\n new OverscaledTileID(z, this.wrap, z, x + 1, y + 1)\n ];\n };\n OverscaledTileID.prototype.isLessThan = function isLessThan(rhs) {\n if (this.wrap < rhs.wrap) {\n return true;\n }\n if (this.wrap > rhs.wrap) {\n return false;\n }\n if (this.overscaledZ < rhs.overscaledZ) {\n return true;\n }\n if (this.overscaledZ > rhs.overscaledZ) {\n return false;\n }\n if (this.canonical.x < rhs.canonical.x) {\n return true;\n }\n if (this.canonical.x > rhs.canonical.x) {\n return false;\n }\n if (this.canonical.y < rhs.canonical.y) {\n return true;\n }\n return false;\n };\n OverscaledTileID.prototype.wrapped = function wrapped() {\n return new OverscaledTileID(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y);\n };\n OverscaledTileID.prototype.unwrapTo = function unwrapTo(wrap2) {\n return new OverscaledTileID(this.overscaledZ, wrap2, this.canonical.z, this.canonical.x, this.canonical.y);\n };\n OverscaledTileID.prototype.overscaleFactor = function overscaleFactor() {\n return Math.pow(2, this.overscaledZ - this.canonical.z);\n };\n OverscaledTileID.prototype.toUnwrapped = function toUnwrapped() {\n return new UnwrappedTileID(this.wrap, this.canonical);\n };\n OverscaledTileID.prototype.toString = function toString2() {\n return this.overscaledZ + \"/\" + this.canonical.x + \"/\" + this.canonical.y;\n };\n OverscaledTileID.prototype.getTilePoint = function getTilePoint(coord) {\n return this.canonical.getTilePoint(new MercatorCoordinate(coord.x - this.wrap, coord.y));\n };\n function calculateKey(wrap2, overscaledZ, z, x, y) {\n wrap2 *= 2;\n if (wrap2 < 0) {\n wrap2 = wrap2 * -1 - 1;\n }\n var dim = 1 << z;\n return (dim * dim * wrap2 + dim * y + x).toString(36) + z.toString(36) + overscaledZ.toString(36);\n }\n function getQuadkey(z, x, y) {\n var quadkey = \"\", mask;\n for (var i = z; i > 0; i--) {\n mask = 1 << i - 1;\n quadkey += (x & mask ? 1 : 0) + (y & mask ? 2 : 0);\n }\n return quadkey;\n }\n register(\"CanonicalTileID\", CanonicalTileID);\n register(\"OverscaledTileID\", OverscaledTileID, { omit: [\"posMatrix\"] });\n var DEMData = function DEMData2(uid, data, encoding) {\n this.uid = uid;\n if (data.height !== data.width) {\n throw new RangeError(\"DEM tiles must be square\");\n }\n if (encoding && encoding !== \"mapbox\" && encoding !== \"terrarium\") {\n return warnOnce('\"' + encoding + '\" is not a valid encoding type. Valid types include \"mapbox\" and \"terrarium\".');\n }\n this.stride = data.height;\n var dim = this.dim = data.height - 2;\n this.data = new Uint32Array(data.data.buffer);\n this.encoding = encoding || \"mapbox\";\n for (var x = 0; x < dim; x++) {\n this.data[this._idx(-1, x)] = this.data[this._idx(0, x)];\n this.data[this._idx(dim, x)] = this.data[this._idx(dim - 1, x)];\n this.data[this._idx(x, -1)] = this.data[this._idx(x, 0)];\n this.data[this._idx(x, dim)] = this.data[this._idx(x, dim - 1)];\n }\n this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)];\n this.data[this._idx(dim, -1)] = this.data[this._idx(dim - 1, 0)];\n this.data[this._idx(-1, dim)] = this.data[this._idx(0, dim - 1)];\n this.data[this._idx(dim, dim)] = this.data[this._idx(dim - 1, dim - 1)];\n };\n DEMData.prototype.get = function get2(x, y) {\n var pixels = new Uint8Array(this.data.buffer);\n var index = this._idx(x, y) * 4;\n var unpack = this.encoding === \"terrarium\" ? this._unpackTerrarium : this._unpackMapbox;\n return unpack(pixels[index], pixels[index + 1], pixels[index + 2]);\n };\n DEMData.prototype.getUnpackVector = function getUnpackVector() {\n return this.encoding === \"terrarium\" ? [\n 256,\n 1,\n 1 / 256,\n 32768\n ] : [\n 6553.6,\n 25.6,\n 0.1,\n 1e4\n ];\n };\n DEMData.prototype._idx = function _idx(x, y) {\n if (x < -1 || x >= this.dim + 1 || y < -1 || y >= this.dim + 1) {\n throw new RangeError(\"out of range source coordinates for DEM data\");\n }\n return (y + 1) * this.stride + (x + 1);\n };\n DEMData.prototype._unpackMapbox = function _unpackMapbox(r, g, b) {\n return (r * 256 * 256 + g * 256 + b) / 10 - 1e4;\n };\n DEMData.prototype._unpackTerrarium = function _unpackTerrarium(r, g, b) {\n return r * 256 + g + b / 256 - 32768;\n };\n DEMData.prototype.getPixels = function getPixels() {\n return new RGBAImage({\n width: this.stride,\n height: this.stride\n }, new Uint8Array(this.data.buffer));\n };\n DEMData.prototype.backfillBorder = function backfillBorder(borderTile, dx, dy) {\n if (this.dim !== borderTile.dim) {\n throw new Error(\"dem dimension mismatch\");\n }\n var xMin = dx * this.dim, xMax = dx * this.dim + this.dim, yMin = dy * this.dim, yMax = dy * this.dim + this.dim;\n switch (dx) {\n case -1:\n xMin = xMax - 1;\n break;\n case 1:\n xMax = xMin + 1;\n break;\n }\n switch (dy) {\n case -1:\n yMin = yMax - 1;\n break;\n case 1:\n yMax = yMin + 1;\n break;\n }\n var ox = -dx * this.dim;\n var oy = -dy * this.dim;\n for (var y = yMin; y < yMax; y++) {\n for (var x = xMin; x < xMax; x++) {\n this.data[this._idx(x, y)] = borderTile.data[this._idx(x + ox, y + oy)];\n }\n }\n };\n register(\"DEMData\", DEMData);\n function deserialize$1(input, style) {\n var output = {};\n if (!style) {\n return output;\n }\n var loop = function() {\n var bucket = list$1[i$1];\n var layers = bucket.layerIds.map(function(id2) {\n return style.getLayer(id2);\n }).filter(Boolean);\n if (layers.length === 0) {\n return;\n }\n bucket.layers = layers;\n if (bucket.stateDependentLayerIds) {\n bucket.stateDependentLayers = bucket.stateDependentLayerIds.map(function(lId) {\n return layers.filter(function(l) {\n return l.id === lId;\n })[0];\n });\n }\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer2 = list[i];\n output[layer2.id] = bucket;\n }\n };\n for (var i$1 = 0, list$1 = input; i$1 < list$1.length; i$1 += 1)\n loop();\n return output;\n }\n var DictionaryCoder = function DictionaryCoder2(strings) {\n this._stringToNumber = {};\n this._numberToString = [];\n for (var i = 0; i < strings.length; i++) {\n var string = strings[i];\n this._stringToNumber[string] = i;\n this._numberToString[i] = string;\n }\n };\n DictionaryCoder.prototype.encode = function encode(string) {\n return this._stringToNumber[string];\n };\n DictionaryCoder.prototype.decode = function decode(n) {\n return this._numberToString[n];\n };\n var Feature = function Feature2(vectorTileFeature, z, x, y, id2) {\n this.type = \"Feature\";\n this._vectorTileFeature = vectorTileFeature;\n vectorTileFeature._z = z;\n vectorTileFeature._x = x;\n vectorTileFeature._y = y;\n this.properties = vectorTileFeature.properties;\n this.id = id2;\n };\n var prototypeAccessors$1 = { geometry: { configurable: true } };\n prototypeAccessors$1.geometry.get = function() {\n if (this._geometry === void 0) {\n this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry;\n }\n return this._geometry;\n };\n prototypeAccessors$1.geometry.set = function(g) {\n this._geometry = g;\n };\n Feature.prototype.toJSON = function toJSON() {\n var json = { geometry: this.geometry };\n for (var i in this) {\n if (i === \"_geometry\" || i === \"_vectorTileFeature\") {\n continue;\n }\n json[i] = this[i];\n }\n return json;\n };\n Object.defineProperties(Feature.prototype, prototypeAccessors$1);\n var SourceFeatureState = function SourceFeatureState2() {\n this.state = {};\n this.stateChanges = {};\n this.deletedStates = {};\n };\n SourceFeatureState.prototype.updateState = function updateState(sourceLayer, featureId, newState) {\n var feature = String(featureId);\n this.stateChanges[sourceLayer] = this.stateChanges[sourceLayer] || {};\n this.stateChanges[sourceLayer][feature] = this.stateChanges[sourceLayer][feature] || {};\n extend2(this.stateChanges[sourceLayer][feature], newState);\n if (this.deletedStates[sourceLayer] === null) {\n this.deletedStates[sourceLayer] = {};\n for (var ft in this.state[sourceLayer]) {\n if (ft !== feature) {\n this.deletedStates[sourceLayer][ft] = null;\n }\n }\n } else {\n var featureDeletionQueued = this.deletedStates[sourceLayer] && this.deletedStates[sourceLayer][feature] === null;\n if (featureDeletionQueued) {\n this.deletedStates[sourceLayer][feature] = {};\n for (var prop in this.state[sourceLayer][feature]) {\n if (!newState[prop]) {\n this.deletedStates[sourceLayer][feature][prop] = null;\n }\n }\n } else {\n for (var key in newState) {\n var deletionInQueue = this.deletedStates[sourceLayer] && this.deletedStates[sourceLayer][feature] && this.deletedStates[sourceLayer][feature][key] === null;\n if (deletionInQueue) {\n delete this.deletedStates[sourceLayer][feature][key];\n }\n }\n }\n }\n };\n SourceFeatureState.prototype.removeFeatureState = function removeFeatureState(sourceLayer, featureId, key) {\n var sourceLayerDeleted = this.deletedStates[sourceLayer] === null;\n if (sourceLayerDeleted) {\n return;\n }\n var feature = String(featureId);\n this.deletedStates[sourceLayer] = this.deletedStates[sourceLayer] || {};\n if (key && featureId !== void 0) {\n if (this.deletedStates[sourceLayer][feature] !== null) {\n this.deletedStates[sourceLayer][feature] = this.deletedStates[sourceLayer][feature] || {};\n this.deletedStates[sourceLayer][feature][key] = null;\n }\n } else if (featureId !== void 0) {\n var updateInQueue = this.stateChanges[sourceLayer] && this.stateChanges[sourceLayer][feature];\n if (updateInQueue) {\n this.deletedStates[sourceLayer][feature] = {};\n for (key in this.stateChanges[sourceLayer][feature]) {\n this.deletedStates[sourceLayer][feature][key] = null;\n }\n } else {\n this.deletedStates[sourceLayer][feature] = null;\n }\n } else {\n this.deletedStates[sourceLayer] = null;\n }\n };\n SourceFeatureState.prototype.getState = function getState(sourceLayer, featureId) {\n var feature = String(featureId);\n var base = this.state[sourceLayer] || {};\n var changes = this.stateChanges[sourceLayer] || {};\n var reconciledState = extend2({}, base[feature], changes[feature]);\n if (this.deletedStates[sourceLayer] === null) {\n return {};\n } else if (this.deletedStates[sourceLayer]) {\n var featureDeletions = this.deletedStates[sourceLayer][featureId];\n if (featureDeletions === null) {\n return {};\n }\n for (var prop in featureDeletions) {\n delete reconciledState[prop];\n }\n }\n return reconciledState;\n };\n SourceFeatureState.prototype.initializeTileState = function initializeTileState(tile, painter) {\n tile.setFeatureState(this.state, painter);\n };\n SourceFeatureState.prototype.coalesceChanges = function coalesceChanges(tiles, painter) {\n var featuresChanged = {};\n for (var sourceLayer in this.stateChanges) {\n this.state[sourceLayer] = this.state[sourceLayer] || {};\n var layerStates = {};\n for (var feature in this.stateChanges[sourceLayer]) {\n if (!this.state[sourceLayer][feature]) {\n this.state[sourceLayer][feature] = {};\n }\n extend2(this.state[sourceLayer][feature], this.stateChanges[sourceLayer][feature]);\n layerStates[feature] = this.state[sourceLayer][feature];\n }\n featuresChanged[sourceLayer] = layerStates;\n }\n for (var sourceLayer$1 in this.deletedStates) {\n this.state[sourceLayer$1] = this.state[sourceLayer$1] || {};\n var layerStates$1 = {};\n if (this.deletedStates[sourceLayer$1] === null) {\n for (var ft in this.state[sourceLayer$1]) {\n layerStates$1[ft] = {};\n this.state[sourceLayer$1][ft] = {};\n }\n } else {\n for (var feature$1 in this.deletedStates[sourceLayer$1]) {\n var deleteWholeFeatureState = this.deletedStates[sourceLayer$1][feature$1] === null;\n if (deleteWholeFeatureState) {\n this.state[sourceLayer$1][feature$1] = {};\n } else {\n for (var i = 0, list = Object.keys(this.deletedStates[sourceLayer$1][feature$1]); i < list.length; i += 1) {\n var key = list[i];\n delete this.state[sourceLayer$1][feature$1][key];\n }\n }\n layerStates$1[feature$1] = this.state[sourceLayer$1][feature$1];\n }\n }\n featuresChanged[sourceLayer$1] = featuresChanged[sourceLayer$1] || {};\n extend2(featuresChanged[sourceLayer$1], layerStates$1);\n }\n this.stateChanges = {};\n this.deletedStates = {};\n if (Object.keys(featuresChanged).length === 0) {\n return;\n }\n for (var id2 in tiles) {\n var tile = tiles[id2];\n tile.setFeatureState(featuresChanged, painter);\n }\n };\n var FeatureIndex = function FeatureIndex2(tileID, promoteId2) {\n this.tileID = tileID;\n this.x = tileID.canonical.x;\n this.y = tileID.canonical.y;\n this.z = tileID.canonical.z;\n this.grid = new gridIndex(EXTENT$1, 16, 0);\n this.grid3D = new gridIndex(EXTENT$1, 16, 0);\n this.featureIndexArray = new FeatureIndexArray();\n this.promoteId = promoteId2;\n };\n FeatureIndex.prototype.insert = function insert(feature, geometry, featureIndex, sourceLayerIndex, bucketIndex, is3D) {\n var key = this.featureIndexArray.length;\n this.featureIndexArray.emplaceBack(featureIndex, sourceLayerIndex, bucketIndex);\n var grid = is3D ? this.grid3D : this.grid;\n for (var r = 0; r < geometry.length; r++) {\n var ring = geometry[r];\n var bbox = [\n Infinity,\n Infinity,\n -Infinity,\n -Infinity\n ];\n for (var i = 0; i < ring.length; i++) {\n var p = ring[i];\n bbox[0] = Math.min(bbox[0], p.x);\n bbox[1] = Math.min(bbox[1], p.y);\n bbox[2] = Math.max(bbox[2], p.x);\n bbox[3] = Math.max(bbox[3], p.y);\n }\n if (bbox[0] < EXTENT$1 && bbox[1] < EXTENT$1 && bbox[2] >= 0 && bbox[3] >= 0) {\n grid.insert(key, bbox[0], bbox[1], bbox[2], bbox[3]);\n }\n }\n };\n FeatureIndex.prototype.loadVTLayers = function loadVTLayers() {\n if (!this.vtLayers) {\n this.vtLayers = new vectorTile.VectorTile(new pbf(this.rawTileData)).layers;\n this.sourceLayerCoder = new DictionaryCoder(this.vtLayers ? Object.keys(this.vtLayers).sort() : [\"_geojsonTileLayer\"]);\n }\n return this.vtLayers;\n };\n FeatureIndex.prototype.query = function query(args, styleLayers, serializedLayers, sourceFeatureState) {\n var this$1 = this;\n this.loadVTLayers();\n var params = args.params || {}, pixelsToTileUnits = EXTENT$1 / args.tileSize / args.scale, filter2 = createFilter(params.filter);\n var queryGeometry = args.queryGeometry;\n var queryPadding = args.queryPadding * pixelsToTileUnits;\n var bounds = getBounds(queryGeometry);\n var matching = this.grid.query(bounds.minX - queryPadding, bounds.minY - queryPadding, bounds.maxX + queryPadding, bounds.maxY + queryPadding);\n var cameraBounds = getBounds(args.cameraQueryGeometry);\n var matching3D = this.grid3D.query(cameraBounds.minX - queryPadding, cameraBounds.minY - queryPadding, cameraBounds.maxX + queryPadding, cameraBounds.maxY + queryPadding, function(bx1, by1, bx2, by2) {\n return polygonIntersectsBox(args.cameraQueryGeometry, bx1 - queryPadding, by1 - queryPadding, bx2 + queryPadding, by2 + queryPadding);\n });\n for (var i = 0, list = matching3D; i < list.length; i += 1) {\n var key = list[i];\n matching.push(key);\n }\n matching.sort(topDownFeatureComparator);\n var result = {};\n var previousIndex;\n var loop = function(k2) {\n var index = matching[k2];\n if (index === previousIndex) {\n return;\n }\n previousIndex = index;\n var match = this$1.featureIndexArray.get(index);\n var featureGeometry = null;\n this$1.loadMatchingFeature(result, match.bucketIndex, match.sourceLayerIndex, match.featureIndex, filter2, params.layers, params.availableImages, styleLayers, serializedLayers, sourceFeatureState, function(feature, styleLayer, featureState) {\n if (!featureGeometry) {\n featureGeometry = loadGeometry(feature);\n }\n return styleLayer.queryIntersectsFeature(queryGeometry, feature, featureState, featureGeometry, this$1.z, args.transform, pixelsToTileUnits, args.pixelPosMatrix);\n });\n };\n for (var k = 0; k < matching.length; k++)\n loop(k);\n return result;\n };\n FeatureIndex.prototype.loadMatchingFeature = function loadMatchingFeature(result, bucketIndex, sourceLayerIndex, featureIndex, filter2, filterLayerIDs, availableImages, styleLayers, serializedLayers, sourceFeatureState, intersectionTest) {\n var layerIDs = this.bucketLayerIDs[bucketIndex];\n if (filterLayerIDs && !arraysIntersect(filterLayerIDs, layerIDs)) {\n return;\n }\n var sourceLayerName = this.sourceLayerCoder.decode(sourceLayerIndex);\n var sourceLayer = this.vtLayers[sourceLayerName];\n var feature = sourceLayer.feature(featureIndex);\n if (filter2.needGeometry) {\n var evaluationFeature = toEvaluationFeature(feature, true);\n if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), evaluationFeature, this.tileID.canonical)) {\n return;\n }\n } else if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), feature)) {\n return;\n }\n var id2 = this.getId(feature, sourceLayerName);\n for (var l = 0; l < layerIDs.length; l++) {\n var layerID = layerIDs[l];\n if (filterLayerIDs && filterLayerIDs.indexOf(layerID) < 0) {\n continue;\n }\n var styleLayer = styleLayers[layerID];\n if (!styleLayer) {\n continue;\n }\n var featureState = {};\n if (id2 !== void 0 && sourceFeatureState) {\n featureState = sourceFeatureState.getState(styleLayer.sourceLayer || \"_geojsonTileLayer\", id2);\n }\n var serializedLayer = extend2({}, serializedLayers[layerID]);\n serializedLayer.paint = evaluateProperties(serializedLayer.paint, styleLayer.paint, feature, featureState, availableImages);\n serializedLayer.layout = evaluateProperties(serializedLayer.layout, styleLayer.layout, feature, featureState, availableImages);\n var intersectionZ = !intersectionTest || intersectionTest(feature, styleLayer, featureState);\n if (!intersectionZ) {\n continue;\n }\n var geojsonFeature = new Feature(feature, this.z, this.x, this.y, id2);\n geojsonFeature.layer = serializedLayer;\n var layerResult = result[layerID];\n if (layerResult === void 0) {\n layerResult = result[layerID] = [];\n }\n layerResult.push({\n featureIndex,\n feature: geojsonFeature,\n intersectionZ\n });\n }\n };\n FeatureIndex.prototype.lookupSymbolFeatures = function lookupSymbolFeatures(symbolFeatureIndexes, serializedLayers, bucketIndex, sourceLayerIndex, filterSpec2, filterLayerIDs, availableImages, styleLayers) {\n var result = {};\n this.loadVTLayers();\n var filter2 = createFilter(filterSpec2);\n for (var i = 0, list = symbolFeatureIndexes; i < list.length; i += 1) {\n var symbolFeatureIndex = list[i];\n this.loadMatchingFeature(result, bucketIndex, sourceLayerIndex, symbolFeatureIndex, filter2, filterLayerIDs, availableImages, styleLayers, serializedLayers);\n }\n return result;\n };\n FeatureIndex.prototype.hasLayer = function hasLayer(id2) {\n for (var i$1 = 0, list$1 = this.bucketLayerIDs; i$1 < list$1.length; i$1 += 1) {\n var layerIDs = list$1[i$1];\n for (var i = 0, list = layerIDs; i < list.length; i += 1) {\n var layerID = list[i];\n if (id2 === layerID) {\n return true;\n }\n }\n }\n return false;\n };\n FeatureIndex.prototype.getId = function getId(feature, sourceLayerId) {\n var id2 = feature.id;\n if (this.promoteId) {\n var propName = typeof this.promoteId === \"string\" ? this.promoteId : this.promoteId[sourceLayerId];\n id2 = feature.properties[propName];\n if (typeof id2 === \"boolean\") {\n id2 = Number(id2);\n }\n }\n return id2;\n };\n register(\"FeatureIndex\", FeatureIndex, {\n omit: [\n \"rawTileData\",\n \"sourceLayerCoder\"\n ]\n });\n function evaluateProperties(serializedProperties, styleLayerProperties, feature, featureState, availableImages) {\n return mapObject(serializedProperties, function(property, key) {\n var prop = styleLayerProperties instanceof PossiblyEvaluated ? styleLayerProperties.get(key) : null;\n return prop && prop.evaluate ? prop.evaluate(feature, featureState, availableImages) : prop;\n });\n }\n function getBounds(geometry) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i = 0, list = geometry; i < list.length; i += 1) {\n var p = list[i];\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n return {\n minX,\n minY,\n maxX,\n maxY\n };\n }\n function topDownFeatureComparator(a, b) {\n return b - a;\n }\n var CLOCK_SKEW_RETRY_TIMEOUT = 3e4;\n var Tile = function Tile2(tileID, size) {\n this.tileID = tileID;\n this.uid = uniqueId();\n this.uses = 0;\n this.tileSize = size;\n this.buckets = {};\n this.expirationTime = null;\n this.queryPadding = 0;\n this.hasSymbolBuckets = false;\n this.hasRTLText = false;\n this.dependencies = {};\n this.expiredRequestCount = 0;\n this.state = \"loading\";\n };\n Tile.prototype.registerFadeDuration = function registerFadeDuration(duration) {\n var fadeEndTime = duration + this.timeAdded;\n if (fadeEndTime < exported.now()) {\n return;\n }\n if (this.fadeEndTime && fadeEndTime < this.fadeEndTime) {\n return;\n }\n this.fadeEndTime = fadeEndTime;\n };\n Tile.prototype.wasRequested = function wasRequested() {\n return this.state === \"errored\" || this.state === \"loaded\" || this.state === \"reloading\";\n };\n Tile.prototype.loadVectorData = function loadVectorData(data, painter, justReloaded) {\n if (this.hasData()) {\n this.unloadVectorData();\n }\n this.state = \"loaded\";\n if (!data) {\n this.collisionBoxArray = new CollisionBoxArray();\n return;\n }\n if (data.featureIndex) {\n this.latestFeatureIndex = data.featureIndex;\n if (data.rawTileData) {\n this.latestRawTileData = data.rawTileData;\n this.latestFeatureIndex.rawTileData = data.rawTileData;\n } else if (this.latestRawTileData) {\n this.latestFeatureIndex.rawTileData = this.latestRawTileData;\n }\n }\n this.collisionBoxArray = data.collisionBoxArray;\n this.buckets = deserialize$1(data.buckets, painter.style);\n this.hasSymbolBuckets = false;\n for (var id2 in this.buckets) {\n var bucket = this.buckets[id2];\n if (bucket instanceof SymbolBucket) {\n this.hasSymbolBuckets = true;\n if (justReloaded) {\n bucket.justReloaded = true;\n } else {\n break;\n }\n }\n }\n this.hasRTLText = false;\n if (this.hasSymbolBuckets) {\n for (var id$1 in this.buckets) {\n var bucket$1 = this.buckets[id$1];\n if (bucket$1 instanceof SymbolBucket) {\n if (bucket$1.hasRTLText) {\n this.hasRTLText = true;\n lazyLoadRTLTextPlugin();\n break;\n }\n }\n }\n }\n this.queryPadding = 0;\n for (var id$2 in this.buckets) {\n var bucket$2 = this.buckets[id$2];\n this.queryPadding = Math.max(this.queryPadding, painter.style.getLayer(id$2).queryRadius(bucket$2));\n }\n if (data.imageAtlas) {\n this.imageAtlas = data.imageAtlas;\n }\n if (data.glyphAtlasImage) {\n this.glyphAtlasImage = data.glyphAtlasImage;\n }\n };\n Tile.prototype.unloadVectorData = function unloadVectorData() {\n for (var id2 in this.buckets) {\n this.buckets[id2].destroy();\n }\n this.buckets = {};\n if (this.imageAtlasTexture) {\n this.imageAtlasTexture.destroy();\n }\n if (this.imageAtlas) {\n this.imageAtlas = null;\n }\n if (this.glyphAtlasTexture) {\n this.glyphAtlasTexture.destroy();\n }\n this.latestFeatureIndex = null;\n this.state = \"unloaded\";\n };\n Tile.prototype.getBucket = function getBucket(layer2) {\n return this.buckets[layer2.id];\n };\n Tile.prototype.upload = function upload(context) {\n for (var id2 in this.buckets) {\n var bucket = this.buckets[id2];\n if (bucket.uploadPending()) {\n bucket.upload(context);\n }\n }\n var gl2 = context.gl;\n if (this.imageAtlas && !this.imageAtlas.uploaded) {\n this.imageAtlasTexture = new Texture(context, this.imageAtlas.image, gl2.RGBA);\n this.imageAtlas.uploaded = true;\n }\n if (this.glyphAtlasImage) {\n this.glyphAtlasTexture = new Texture(context, this.glyphAtlasImage, gl2.ALPHA);\n this.glyphAtlasImage = null;\n }\n };\n Tile.prototype.prepare = function prepare(imageManager) {\n if (this.imageAtlas) {\n this.imageAtlas.patchUpdatedImages(imageManager, this.imageAtlasTexture);\n }\n };\n Tile.prototype.queryRenderedFeatures = function queryRenderedFeatures(layers, serializedLayers, sourceFeatureState, queryGeometry, cameraQueryGeometry, scale2, params, transform, maxPitchScaleFactor, pixelPosMatrix) {\n if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData) {\n return {};\n }\n return this.latestFeatureIndex.query({\n queryGeometry,\n cameraQueryGeometry,\n scale: scale2,\n tileSize: this.tileSize,\n pixelPosMatrix,\n transform,\n params,\n queryPadding: this.queryPadding * maxPitchScaleFactor\n }, layers, serializedLayers, sourceFeatureState);\n };\n Tile.prototype.querySourceFeatures = function querySourceFeatures(result, params) {\n var featureIndex = this.latestFeatureIndex;\n if (!featureIndex || !featureIndex.rawTileData) {\n return;\n }\n var vtLayers = featureIndex.loadVTLayers();\n var sourceLayer = params ? params.sourceLayer : \"\";\n var layer2 = vtLayers._geojsonTileLayer || vtLayers[sourceLayer];\n if (!layer2) {\n return;\n }\n var filter2 = createFilter(params && params.filter);\n var ref = this.tileID.canonical;\n var z = ref.z;\n var x = ref.x;\n var y = ref.y;\n var coord = {\n z,\n x,\n y\n };\n for (var i = 0; i < layer2.length; i++) {\n var feature = layer2.feature(i);\n if (filter2.needGeometry) {\n var evaluationFeature = toEvaluationFeature(feature, true);\n if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), evaluationFeature, this.tileID.canonical)) {\n continue;\n }\n } else if (!filter2.filter(new EvaluationParameters(this.tileID.overscaledZ), feature)) {\n continue;\n }\n var id2 = featureIndex.getId(feature, sourceLayer);\n var geojsonFeature = new Feature(feature, z, x, y, id2);\n geojsonFeature.tile = coord;\n result.push(geojsonFeature);\n }\n };\n Tile.prototype.hasData = function hasData() {\n return this.state === \"loaded\" || this.state === \"reloading\" || this.state === \"expired\";\n };\n Tile.prototype.patternsLoaded = function patternsLoaded() {\n return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length;\n };\n Tile.prototype.setExpiryData = function setExpiryData(data) {\n var prior = this.expirationTime;\n if (data.cacheControl) {\n var parsedCC = parseCacheControl(data.cacheControl);\n if (parsedCC[\"max-age\"]) {\n this.expirationTime = Date.now() + parsedCC[\"max-age\"] * 1e3;\n }\n } else if (data.expires) {\n this.expirationTime = new Date(data.expires).getTime();\n }\n if (this.expirationTime) {\n var now2 = Date.now();\n var isExpired = false;\n if (this.expirationTime > now2) {\n isExpired = false;\n } else if (!prior) {\n isExpired = true;\n } else if (this.expirationTime < prior) {\n isExpired = true;\n } else {\n var delta = this.expirationTime - prior;\n if (!delta) {\n isExpired = true;\n } else {\n this.expirationTime = now2 + Math.max(delta, CLOCK_SKEW_RETRY_TIMEOUT);\n }\n }\n if (isExpired) {\n this.expiredRequestCount++;\n this.state = \"expired\";\n } else {\n this.expiredRequestCount = 0;\n }\n }\n };\n Tile.prototype.getExpiryTimeout = function getExpiryTimeout() {\n if (this.expirationTime) {\n if (this.expiredRequestCount) {\n return 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31));\n } else {\n return Math.min(this.expirationTime - (/* @__PURE__ */ new Date()).getTime(), Math.pow(2, 31) - 1);\n }\n }\n };\n Tile.prototype.setFeatureState = function setFeatureState(states, painter) {\n if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || Object.keys(states).length === 0) {\n return;\n }\n var vtLayers = this.latestFeatureIndex.loadVTLayers();\n for (var id2 in this.buckets) {\n if (!painter.style.hasLayer(id2)) {\n continue;\n }\n var bucket = this.buckets[id2];\n var sourceLayerId = bucket.layers[0][\"sourceLayer\"] || \"_geojsonTileLayer\";\n var sourceLayer = vtLayers[sourceLayerId];\n var sourceLayerStates = states[sourceLayerId];\n if (!sourceLayer || !sourceLayerStates || Object.keys(sourceLayerStates).length === 0) {\n continue;\n }\n bucket.update(sourceLayerStates, sourceLayer, this.imageAtlas && this.imageAtlas.patternPositions || {});\n var layer2 = painter && painter.style && painter.style.getLayer(id2);\n if (layer2) {\n this.queryPadding = Math.max(this.queryPadding, layer2.queryRadius(bucket));\n }\n }\n };\n Tile.prototype.holdingForFade = function holdingForFade() {\n return this.symbolFadeHoldUntil !== void 0;\n };\n Tile.prototype.symbolFadeFinished = function symbolFadeFinished() {\n return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < exported.now();\n };\n Tile.prototype.clearFadeHold = function clearFadeHold() {\n this.symbolFadeHoldUntil = void 0;\n };\n Tile.prototype.setHoldDuration = function setHoldDuration(duration) {\n this.symbolFadeHoldUntil = exported.now() + duration;\n };\n Tile.prototype.setDependencies = function setDependencies(namespace, dependencies) {\n var index = {};\n for (var i = 0, list = dependencies; i < list.length; i += 1) {\n var dep = list[i];\n index[dep] = true;\n }\n this.dependencies[namespace] = index;\n };\n Tile.prototype.hasDependency = function hasDependency(namespaces, keys) {\n for (var i$1 = 0, list$1 = namespaces; i$1 < list$1.length; i$1 += 1) {\n var namespace = list$1[i$1];\n var dependencies = this.dependencies[namespace];\n if (dependencies) {\n for (var i = 0, list = keys; i < list.length; i += 1) {\n var key = list[i];\n if (dependencies[key]) {\n return true;\n }\n }\n }\n }\n return false;\n };\n var refProperties = [\n \"type\",\n \"source\",\n \"source-layer\",\n \"minzoom\",\n \"maxzoom\",\n \"filter\",\n \"layout\"\n ];\n var performance2 = window$1.performance;\n var RequestPerformance = function RequestPerformance2(request) {\n this._marks = {\n start: [\n request.url,\n \"start\"\n ].join(\"#\"),\n end: [\n request.url,\n \"end\"\n ].join(\"#\"),\n measure: request.url.toString()\n };\n performance2.mark(this._marks.start);\n };\n RequestPerformance.prototype.finish = function finish() {\n performance2.mark(this._marks.end);\n var resourceTimingData = performance2.getEntriesByName(this._marks.measure);\n if (resourceTimingData.length === 0) {\n performance2.measure(this._marks.measure, this._marks.start, this._marks.end);\n resourceTimingData = performance2.getEntriesByName(this._marks.measure);\n performance2.clearMarks(this._marks.start);\n performance2.clearMarks(this._marks.end);\n performance2.clearMeasures(this._marks.measure);\n }\n return resourceTimingData;\n };\n exports2.Actor = Actor;\n exports2.AlphaImage = AlphaImage;\n exports2.CanonicalTileID = CanonicalTileID;\n exports2.CollisionBoxArray = CollisionBoxArray;\n exports2.Color = Color2;\n exports2.DEMData = DEMData;\n exports2.DataConstantProperty = DataConstantProperty;\n exports2.DictionaryCoder = DictionaryCoder;\n exports2.EXTENT = EXTENT$1;\n exports2.ErrorEvent = ErrorEvent;\n exports2.EvaluationParameters = EvaluationParameters;\n exports2.Event = Event;\n exports2.Evented = Evented;\n exports2.FeatureIndex = FeatureIndex;\n exports2.FillBucket = FillBucket;\n exports2.FillExtrusionBucket = FillExtrusionBucket;\n exports2.ImageAtlas = ImageAtlas;\n exports2.ImagePosition = ImagePosition;\n exports2.LineBucket = LineBucket;\n exports2.LngLat = LngLat;\n exports2.LngLatBounds = LngLatBounds;\n exports2.MercatorCoordinate = MercatorCoordinate;\n exports2.ONE_EM = ONE_EM;\n exports2.OverscaledTileID = OverscaledTileID;\n exports2.Point = pointGeometry;\n exports2.Point$1 = pointGeometry;\n exports2.Properties = Properties;\n exports2.Protobuf = pbf;\n exports2.RGBAImage = RGBAImage;\n exports2.RequestManager = RequestManager;\n exports2.RequestPerformance = RequestPerformance;\n exports2.ResourceType = ResourceType;\n exports2.SegmentVector = SegmentVector;\n exports2.SourceFeatureState = SourceFeatureState;\n exports2.StructArrayLayout1ui2 = StructArrayLayout1ui2;\n exports2.StructArrayLayout2f1f2i16 = StructArrayLayout2f1f2i16;\n exports2.StructArrayLayout2i4 = StructArrayLayout2i4;\n exports2.StructArrayLayout3ui6 = StructArrayLayout3ui6;\n exports2.StructArrayLayout4i8 = StructArrayLayout4i8;\n exports2.SymbolBucket = SymbolBucket;\n exports2.Texture = Texture;\n exports2.Tile = Tile;\n exports2.Transitionable = Transitionable;\n exports2.Uniform1f = Uniform1f;\n exports2.Uniform1i = Uniform1i;\n exports2.Uniform2f = Uniform2f;\n exports2.Uniform3f = Uniform3f;\n exports2.Uniform4f = Uniform4f;\n exports2.UniformColor = UniformColor;\n exports2.UniformMatrix4f = UniformMatrix4f;\n exports2.UnwrappedTileID = UnwrappedTileID;\n exports2.ValidationError = ValidationError;\n exports2.WritingMode = WritingMode;\n exports2.ZoomHistory = ZoomHistory;\n exports2.add = add;\n exports2.addDynamicAttributes = addDynamicAttributes;\n exports2.asyncAll = asyncAll;\n exports2.bezier = bezier;\n exports2.bindAll = bindAll;\n exports2.browser = exported;\n exports2.cacheEntryPossiblyAdded = cacheEntryPossiblyAdded;\n exports2.clamp = clamp;\n exports2.clearTileCache = clearTileCache;\n exports2.clipLine = clipLine;\n exports2.clone = clone$1;\n exports2.clone$1 = clone;\n exports2.clone$2 = clone$2;\n exports2.collisionCircleLayout = collisionCircleLayout;\n exports2.config = config;\n exports2.create = create$2;\n exports2.create$1 = create$1;\n exports2.create$2 = create;\n exports2.createCommonjsModule = createCommonjsModule;\n exports2.createExpression = createExpression;\n exports2.createLayout = createLayout;\n exports2.createStyleLayer = createStyleLayer;\n exports2.cross = cross;\n exports2.deepEqual = deepEqual;\n exports2.dot = dot;\n exports2.dot$1 = dot$1;\n exports2.ease = ease;\n exports2.emitValidationErrors = emitValidationErrors;\n exports2.endsWith = endsWith;\n exports2.enforceCacheSizeLimit = enforceCacheSizeLimit;\n exports2.evaluateSizeForFeature = evaluateSizeForFeature;\n exports2.evaluateSizeForZoom = evaluateSizeForZoom;\n exports2.evaluateVariableOffset = evaluateVariableOffset;\n exports2.evented = evented;\n exports2.extend = extend2;\n exports2.featureFilter = createFilter;\n exports2.filterObject = filterObject;\n exports2.fromRotation = fromRotation;\n exports2.getAnchorAlignment = getAnchorAlignment;\n exports2.getAnchorJustification = getAnchorJustification;\n exports2.getArrayBuffer = getArrayBuffer;\n exports2.getImage = getImage;\n exports2.getJSON = getJSON;\n exports2.getRTLTextPluginStatus = getRTLTextPluginStatus;\n exports2.getReferrer = getReferrer;\n exports2.getVideo = getVideo;\n exports2.identity = identity2;\n exports2.invert = invert;\n exports2.isChar = unicodeBlockLookup;\n exports2.isMapboxURL = isMapboxURL;\n exports2.keysDifference = keysDifference;\n exports2.makeRequest = makeRequest;\n exports2.mapObject = mapObject;\n exports2.mercatorXfromLng = mercatorXfromLng$1;\n exports2.mercatorYfromLat = mercatorYfromLat$1;\n exports2.mercatorZfromAltitude = mercatorZfromAltitude;\n exports2.mul = mul;\n exports2.multiply = multiply;\n exports2.mvt = vectorTile;\n exports2.nextPowerOfTwo = nextPowerOfTwo;\n exports2.normalize = normalize;\n exports2.number = number;\n exports2.offscreenCanvasSupported = offscreenCanvasSupported;\n exports2.ortho = ortho;\n exports2.parseGlyphPBF = parseGlyphPBF;\n exports2.pbf = pbf;\n exports2.performSymbolLayout = performSymbolLayout;\n exports2.perspective = perspective;\n exports2.pick = pick;\n exports2.plugin = plugin;\n exports2.polygonIntersectsPolygon = polygonIntersectsPolygon;\n exports2.postMapLoadEvent = postMapLoadEvent;\n exports2.postTurnstileEvent = postTurnstileEvent;\n exports2.potpack = potpack;\n exports2.refProperties = refProperties;\n exports2.register = register;\n exports2.registerForPluginStateChange = registerForPluginStateChange;\n exports2.renderColorRamp = renderColorRamp;\n exports2.rotate = rotate;\n exports2.rotateX = rotateX;\n exports2.rotateZ = rotateZ;\n exports2.scale = scale;\n exports2.scale$1 = scale$2;\n exports2.scale$2 = scale$1;\n exports2.setCacheLimits = setCacheLimits;\n exports2.setRTLTextPlugin = setRTLTextPlugin;\n exports2.sphericalToCartesian = sphericalToCartesian;\n exports2.sqrLen = sqrLen;\n exports2.styleSpec = spec;\n exports2.sub = sub;\n exports2.symbolSize = symbolSize;\n exports2.transformMat3 = transformMat3;\n exports2.transformMat4 = transformMat4;\n exports2.translate = translate$1;\n exports2.triggerPluginCompletionEvent = triggerPluginCompletionEvent;\n exports2.uniqueId = uniqueId;\n exports2.validateCustomStyleLayer = validateCustomStyleLayer;\n exports2.validateLight = validateLight$1;\n exports2.validateStyle = validateStyle;\n exports2.values = values;\n exports2.vectorTile = vectorTile;\n exports2.version = version;\n exports2.warnOnce = warnOnce;\n exports2.webpSupported = exported$1;\n exports2.window = window$1;\n exports2.wrap = wrap;\n });\n define2([\"./shared\"], function(performance2) {\n \"use strict\";\n function stringify(obj) {\n var type = typeof obj;\n if (type === \"number\" || type === \"boolean\" || type === \"string\" || obj === void 0 || obj === null) {\n return JSON.stringify(obj);\n }\n if (Array.isArray(obj)) {\n var str$1 = \"[\";\n for (var i$1 = 0, list = obj; i$1 < list.length; i$1 += 1) {\n var val = list[i$1];\n str$1 += stringify(val) + \",\";\n }\n return str$1 + \"]\";\n }\n var keys = Object.keys(obj).sort();\n var str = \"{\";\n for (var i = 0; i < keys.length; i++) {\n str += JSON.stringify(keys[i]) + \":\" + stringify(obj[keys[i]]) + \",\";\n }\n return str + \"}\";\n }\n function getKey(layer) {\n var key = \"\";\n for (var i = 0, list = performance2.refProperties; i < list.length; i += 1) {\n var k = list[i];\n key += \"/\" + stringify(layer[k]);\n }\n return key;\n }\n function groupByLayout(layers, cachedKeys) {\n var groups = {};\n for (var i = 0; i < layers.length; i++) {\n var k = cachedKeys && cachedKeys[layers[i].id] || getKey(layers[i]);\n if (cachedKeys) {\n cachedKeys[layers[i].id] = k;\n }\n var group = groups[k];\n if (!group) {\n group = groups[k] = [];\n }\n group.push(layers[i]);\n }\n var result = [];\n for (var k$1 in groups) {\n result.push(groups[k$1]);\n }\n return result;\n }\n var StyleLayerIndex = function StyleLayerIndex2(layerConfigs) {\n this.keyCache = {};\n if (layerConfigs) {\n this.replace(layerConfigs);\n }\n };\n StyleLayerIndex.prototype.replace = function replace(layerConfigs) {\n this._layerConfigs = {};\n this._layers = {};\n this.update(layerConfigs, []);\n };\n StyleLayerIndex.prototype.update = function update(layerConfigs, removedIds) {\n var this$1 = this;\n for (var i = 0, list = layerConfigs; i < list.length; i += 1) {\n var layerConfig = list[i];\n this._layerConfigs[layerConfig.id] = layerConfig;\n var layer = this._layers[layerConfig.id] = performance2.createStyleLayer(layerConfig);\n layer._featureFilter = performance2.featureFilter(layer.filter);\n if (this.keyCache[layerConfig.id]) {\n delete this.keyCache[layerConfig.id];\n }\n }\n for (var i$1 = 0, list$1 = removedIds; i$1 < list$1.length; i$1 += 1) {\n var id = list$1[i$1];\n delete this.keyCache[id];\n delete this._layerConfigs[id];\n delete this._layers[id];\n }\n this.familiesBySource = {};\n var groups = groupByLayout(performance2.values(this._layerConfigs), this.keyCache);\n for (var i$2 = 0, list$2 = groups; i$2 < list$2.length; i$2 += 1) {\n var layerConfigs$1 = list$2[i$2];\n var layers = layerConfigs$1.map(function(layerConfig2) {\n return this$1._layers[layerConfig2.id];\n });\n var layer$1 = layers[0];\n if (layer$1.visibility === \"none\") {\n continue;\n }\n var sourceId = layer$1.source || \"\";\n var sourceGroup = this.familiesBySource[sourceId];\n if (!sourceGroup) {\n sourceGroup = this.familiesBySource[sourceId] = {};\n }\n var sourceLayerId = layer$1.sourceLayer || \"_geojsonTileLayer\";\n var sourceLayerFamilies = sourceGroup[sourceLayerId];\n if (!sourceLayerFamilies) {\n sourceLayerFamilies = sourceGroup[sourceLayerId] = [];\n }\n sourceLayerFamilies.push(layers);\n }\n };\n var padding = 1;\n var GlyphAtlas = function GlyphAtlas2(stacks) {\n var positions = {};\n var bins = [];\n for (var stack in stacks) {\n var glyphs = stacks[stack];\n var stackPositions = positions[stack] = {};\n for (var id in glyphs) {\n var src = glyphs[+id];\n if (!src || src.bitmap.width === 0 || src.bitmap.height === 0) {\n continue;\n }\n var bin = {\n x: 0,\n y: 0,\n w: src.bitmap.width + 2 * padding,\n h: src.bitmap.height + 2 * padding\n };\n bins.push(bin);\n stackPositions[id] = {\n rect: bin,\n metrics: src.metrics\n };\n }\n }\n var ref = performance2.potpack(bins);\n var w = ref.w;\n var h = ref.h;\n var image = new performance2.AlphaImage({\n width: w || 1,\n height: h || 1\n });\n for (var stack$1 in stacks) {\n var glyphs$1 = stacks[stack$1];\n for (var id$1 in glyphs$1) {\n var src$1 = glyphs$1[+id$1];\n if (!src$1 || src$1.bitmap.width === 0 || src$1.bitmap.height === 0) {\n continue;\n }\n var bin$1 = positions[stack$1][id$1].rect;\n performance2.AlphaImage.copy(src$1.bitmap, image, {\n x: 0,\n y: 0\n }, {\n x: bin$1.x + padding,\n y: bin$1.y + padding\n }, src$1.bitmap);\n }\n }\n this.image = image;\n this.positions = positions;\n };\n performance2.register(\"GlyphAtlas\", GlyphAtlas);\n var WorkerTile = function WorkerTile2(params) {\n this.tileID = new performance2.OverscaledTileID(params.tileID.overscaledZ, params.tileID.wrap, params.tileID.canonical.z, params.tileID.canonical.x, params.tileID.canonical.y);\n this.uid = params.uid;\n this.zoom = params.zoom;\n this.pixelRatio = params.pixelRatio;\n this.tileSize = params.tileSize;\n this.source = params.source;\n this.overscaling = this.tileID.overscaleFactor();\n this.showCollisionBoxes = params.showCollisionBoxes;\n this.collectResourceTiming = !!params.collectResourceTiming;\n this.returnDependencies = !!params.returnDependencies;\n this.promoteId = params.promoteId;\n };\n WorkerTile.prototype.parse = function parse2(data, layerIndex, availableImages, actor, callback) {\n var this$1 = this;\n this.status = \"parsing\";\n this.data = data;\n this.collisionBoxArray = new performance2.CollisionBoxArray();\n var sourceLayerCoder = new performance2.DictionaryCoder(Object.keys(data.layers).sort());\n var featureIndex = new performance2.FeatureIndex(this.tileID, this.promoteId);\n featureIndex.bucketLayerIDs = [];\n var buckets = {};\n var options = {\n featureIndex,\n iconDependencies: {},\n patternDependencies: {},\n glyphDependencies: {},\n availableImages\n };\n var layerFamilies = layerIndex.familiesBySource[this.source];\n for (var sourceLayerId in layerFamilies) {\n var sourceLayer = data.layers[sourceLayerId];\n if (!sourceLayer) {\n continue;\n }\n if (sourceLayer.version === 1) {\n performance2.warnOnce('Vector tile source \"' + this.source + '\" layer \"' + sourceLayerId + '\" does not use vector tile spec v2 and therefore may have some rendering errors.');\n }\n var sourceLayerIndex = sourceLayerCoder.encode(sourceLayerId);\n var features = [];\n for (var index = 0; index < sourceLayer.length; index++) {\n var feature = sourceLayer.feature(index);\n var id = featureIndex.getId(feature, sourceLayerId);\n features.push({\n feature,\n id,\n index,\n sourceLayerIndex\n });\n }\n for (var i = 0, list = layerFamilies[sourceLayerId]; i < list.length; i += 1) {\n var family = list[i];\n var layer = family[0];\n if (layer.minzoom && this.zoom < Math.floor(layer.minzoom)) {\n continue;\n }\n if (layer.maxzoom && this.zoom >= layer.maxzoom) {\n continue;\n }\n if (layer.visibility === \"none\") {\n continue;\n }\n recalculateLayers(family, this.zoom, availableImages);\n var bucket = buckets[layer.id] = layer.createBucket({\n index: featureIndex.bucketLayerIDs.length,\n layers: family,\n zoom: this.zoom,\n pixelRatio: this.pixelRatio,\n overscaling: this.overscaling,\n collisionBoxArray: this.collisionBoxArray,\n sourceLayerIndex,\n sourceID: this.source\n });\n bucket.populate(features, options, this.tileID.canonical);\n featureIndex.bucketLayerIDs.push(family.map(function(l) {\n return l.id;\n }));\n }\n }\n var error;\n var glyphMap;\n var iconMap;\n var patternMap;\n var stacks = performance2.mapObject(options.glyphDependencies, function(glyphs) {\n return Object.keys(glyphs).map(Number);\n });\n if (Object.keys(stacks).length) {\n actor.send(\"getGlyphs\", {\n uid: this.uid,\n stacks\n }, function(err, result) {\n if (!error) {\n error = err;\n glyphMap = result;\n maybePrepare.call(this$1);\n }\n });\n } else {\n glyphMap = {};\n }\n var icons = Object.keys(options.iconDependencies);\n if (icons.length) {\n actor.send(\"getImages\", {\n icons,\n source: this.source,\n tileID: this.tileID,\n type: \"icons\"\n }, function(err, result) {\n if (!error) {\n error = err;\n iconMap = result;\n maybePrepare.call(this$1);\n }\n });\n } else {\n iconMap = {};\n }\n var patterns = Object.keys(options.patternDependencies);\n if (patterns.length) {\n actor.send(\"getImages\", {\n icons: patterns,\n source: this.source,\n tileID: this.tileID,\n type: \"patterns\"\n }, function(err, result) {\n if (!error) {\n error = err;\n patternMap = result;\n maybePrepare.call(this$1);\n }\n });\n } else {\n patternMap = {};\n }\n maybePrepare.call(this);\n function maybePrepare() {\n if (error) {\n return callback(error);\n } else if (glyphMap && iconMap && patternMap) {\n var glyphAtlas = new GlyphAtlas(glyphMap);\n var imageAtlas = new performance2.ImageAtlas(iconMap, patternMap);\n for (var key in buckets) {\n var bucket2 = buckets[key];\n if (bucket2 instanceof performance2.SymbolBucket) {\n recalculateLayers(bucket2.layers, this.zoom, availableImages);\n performance2.performSymbolLayout(bucket2, glyphMap, glyphAtlas.positions, iconMap, imageAtlas.iconPositions, this.showCollisionBoxes, this.tileID.canonical);\n } else if (bucket2.hasPattern && (bucket2 instanceof performance2.LineBucket || bucket2 instanceof performance2.FillBucket || bucket2 instanceof performance2.FillExtrusionBucket)) {\n recalculateLayers(bucket2.layers, this.zoom, availableImages);\n bucket2.addFeatures(options, this.tileID.canonical, imageAtlas.patternPositions);\n }\n }\n this.status = \"done\";\n callback(null, {\n buckets: performance2.values(buckets).filter(function(b) {\n return !b.isEmpty();\n }),\n featureIndex,\n collisionBoxArray: this.collisionBoxArray,\n glyphAtlasImage: glyphAtlas.image,\n imageAtlas,\n glyphMap: this.returnDependencies ? glyphMap : null,\n iconMap: this.returnDependencies ? iconMap : null,\n glyphPositions: this.returnDependencies ? glyphAtlas.positions : null\n });\n }\n }\n };\n function recalculateLayers(layers, zoom, availableImages) {\n var parameters = new performance2.EvaluationParameters(zoom);\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer = list[i];\n layer.recalculate(parameters, availableImages);\n }\n }\n function loadVectorTile(params, callback) {\n var request = performance2.getArrayBuffer(params.request, function(err, data, cacheControl, expires) {\n if (err) {\n callback(err);\n } else if (data) {\n callback(null, {\n vectorTile: new performance2.vectorTile.VectorTile(new performance2.pbf(data)),\n rawData: data,\n cacheControl,\n expires\n });\n }\n });\n return function() {\n request.cancel();\n callback();\n };\n }\n var VectorTileWorkerSource = function VectorTileWorkerSource2(actor, layerIndex, availableImages, loadVectorData) {\n this.actor = actor;\n this.layerIndex = layerIndex;\n this.availableImages = availableImages;\n this.loadVectorData = loadVectorData || loadVectorTile;\n this.loading = {};\n this.loaded = {};\n };\n VectorTileWorkerSource.prototype.loadTile = function loadTile(params, callback) {\n var this$1 = this;\n var uid = params.uid;\n if (!this.loading) {\n this.loading = {};\n }\n var perf = params && params.request && params.request.collectResourceTiming ? new performance2.RequestPerformance(params.request) : false;\n var workerTile = this.loading[uid] = new WorkerTile(params);\n workerTile.abort = this.loadVectorData(params, function(err, response) {\n delete this$1.loading[uid];\n if (err || !response) {\n workerTile.status = \"done\";\n this$1.loaded[uid] = workerTile;\n return callback(err);\n }\n var rawTileData = response.rawData;\n var cacheControl = {};\n if (response.expires) {\n cacheControl.expires = response.expires;\n }\n if (response.cacheControl) {\n cacheControl.cacheControl = response.cacheControl;\n }\n var resourceTiming = {};\n if (perf) {\n var resourceTimingData = perf.finish();\n if (resourceTimingData) {\n resourceTiming.resourceTiming = JSON.parse(JSON.stringify(resourceTimingData));\n }\n }\n workerTile.vectorTile = response.vectorTile;\n workerTile.parse(response.vectorTile, this$1.layerIndex, this$1.availableImages, this$1.actor, function(err2, result) {\n if (err2 || !result) {\n return callback(err2);\n }\n callback(null, performance2.extend({ rawTileData: rawTileData.slice(0) }, result, cacheControl, resourceTiming));\n });\n this$1.loaded = this$1.loaded || {};\n this$1.loaded[uid] = workerTile;\n });\n };\n VectorTileWorkerSource.prototype.reloadTile = function reloadTile(params, callback) {\n var this$1 = this;\n var loaded = this.loaded, uid = params.uid, vtSource = this;\n if (loaded && loaded[uid]) {\n var workerTile = loaded[uid];\n workerTile.showCollisionBoxes = params.showCollisionBoxes;\n var done = function(err, data) {\n var reloadCallback = workerTile.reloadCallback;\n if (reloadCallback) {\n delete workerTile.reloadCallback;\n workerTile.parse(workerTile.vectorTile, vtSource.layerIndex, this$1.availableImages, vtSource.actor, reloadCallback);\n }\n callback(err, data);\n };\n if (workerTile.status === \"parsing\") {\n workerTile.reloadCallback = done;\n } else if (workerTile.status === \"done\") {\n if (workerTile.vectorTile) {\n workerTile.parse(workerTile.vectorTile, this.layerIndex, this.availableImages, this.actor, done);\n } else {\n done();\n }\n }\n }\n };\n VectorTileWorkerSource.prototype.abortTile = function abortTile(params, callback) {\n var loading = this.loading, uid = params.uid;\n if (loading && loading[uid] && loading[uid].abort) {\n loading[uid].abort();\n delete loading[uid];\n }\n callback();\n };\n VectorTileWorkerSource.prototype.removeTile = function removeTile(params, callback) {\n var loaded = this.loaded, uid = params.uid;\n if (loaded && loaded[uid]) {\n delete loaded[uid];\n }\n callback();\n };\n var ImageBitmap2 = performance2.window.ImageBitmap;\n var RasterDEMTileWorkerSource = function RasterDEMTileWorkerSource2() {\n this.loaded = {};\n };\n RasterDEMTileWorkerSource.prototype.loadTile = function loadTile(params, callback) {\n var uid = params.uid;\n var encoding = params.encoding;\n var rawImageData = params.rawImageData;\n var imagePixels = ImageBitmap2 && rawImageData instanceof ImageBitmap2 ? this.getImageData(rawImageData) : rawImageData;\n var dem = new performance2.DEMData(uid, imagePixels, encoding);\n this.loaded = this.loaded || {};\n this.loaded[uid] = dem;\n callback(null, dem);\n };\n RasterDEMTileWorkerSource.prototype.getImageData = function getImageData(imgBitmap) {\n if (!this.offscreenCanvas || !this.offscreenCanvasContext) {\n this.offscreenCanvas = new OffscreenCanvas(imgBitmap.width, imgBitmap.height);\n this.offscreenCanvasContext = this.offscreenCanvas.getContext(\"2d\");\n }\n this.offscreenCanvas.width = imgBitmap.width;\n this.offscreenCanvas.height = imgBitmap.height;\n this.offscreenCanvasContext.drawImage(imgBitmap, 0, 0, imgBitmap.width, imgBitmap.height);\n var imgData = this.offscreenCanvasContext.getImageData(-1, -1, imgBitmap.width + 2, imgBitmap.height + 2);\n this.offscreenCanvasContext.clearRect(0, 0, this.offscreenCanvas.width, this.offscreenCanvas.height);\n return new performance2.RGBAImage({\n width: imgData.width,\n height: imgData.height\n }, imgData.data);\n };\n RasterDEMTileWorkerSource.prototype.removeTile = function removeTile(params) {\n var loaded = this.loaded, uid = params.uid;\n if (loaded && loaded[uid]) {\n delete loaded[uid];\n }\n };\n var geojsonRewind = rewind;\n function rewind(gj, outer) {\n var type = gj && gj.type, i;\n if (type === \"FeatureCollection\") {\n for (i = 0; i < gj.features.length; i++) {\n rewind(gj.features[i], outer);\n }\n } else if (type === \"GeometryCollection\") {\n for (i = 0; i < gj.geometries.length; i++) {\n rewind(gj.geometries[i], outer);\n }\n } else if (type === \"Feature\") {\n rewind(gj.geometry, outer);\n } else if (type === \"Polygon\") {\n rewindRings(gj.coordinates, outer);\n } else if (type === \"MultiPolygon\") {\n for (i = 0; i < gj.coordinates.length; i++) {\n rewindRings(gj.coordinates[i], outer);\n }\n }\n return gj;\n }\n function rewindRings(rings, outer) {\n if (rings.length === 0) {\n return;\n }\n rewindRing(rings[0], outer);\n for (var i = 1; i < rings.length; i++) {\n rewindRing(rings[i], !outer);\n }\n }\n function rewindRing(ring, dir) {\n var area = 0;\n for (var i = 0, len = ring.length, j = len - 1; i < len; j = i++) {\n area += (ring[i][0] - ring[j][0]) * (ring[j][1] + ring[i][1]);\n }\n if (area >= 0 !== !!dir) {\n ring.reverse();\n }\n }\n var toGeoJSON = performance2.vectorTile.VectorTileFeature.prototype.toGeoJSON;\n var FeatureWrapper = function FeatureWrapper2(feature) {\n this._feature = feature;\n this.extent = performance2.EXTENT;\n this.type = feature.type;\n this.properties = feature.tags;\n if (\"id\" in feature && !isNaN(feature.id)) {\n this.id = parseInt(feature.id, 10);\n }\n };\n FeatureWrapper.prototype.loadGeometry = function loadGeometry() {\n if (this._feature.type === 1) {\n var geometry = [];\n for (var i = 0, list = this._feature.geometry; i < list.length; i += 1) {\n var point = list[i];\n geometry.push([new performance2.Point$1(point[0], point[1])]);\n }\n return geometry;\n } else {\n var geometry$1 = [];\n for (var i$2 = 0, list$2 = this._feature.geometry; i$2 < list$2.length; i$2 += 1) {\n var ring = list$2[i$2];\n var newRing = [];\n for (var i$1 = 0, list$1 = ring; i$1 < list$1.length; i$1 += 1) {\n var point$1 = list$1[i$1];\n newRing.push(new performance2.Point$1(point$1[0], point$1[1]));\n }\n geometry$1.push(newRing);\n }\n return geometry$1;\n }\n };\n FeatureWrapper.prototype.toGeoJSON = function toGeoJSON$1(x, y, z) {\n return toGeoJSON.call(this, x, y, z);\n };\n var GeoJSONWrapper = function GeoJSONWrapper2(features) {\n this.layers = { \"_geojsonTileLayer\": this };\n this.name = \"_geojsonTileLayer\";\n this.extent = performance2.EXTENT;\n this.length = features.length;\n this._features = features;\n };\n GeoJSONWrapper.prototype.feature = function feature(i) {\n return new FeatureWrapper(this._features[i]);\n };\n var VectorTileFeature = performance2.vectorTile.VectorTileFeature;\n var geojson_wrapper = GeoJSONWrapper$1;\n function GeoJSONWrapper$1(features, options) {\n this.options = options || {};\n this.features = features;\n this.length = features.length;\n }\n GeoJSONWrapper$1.prototype.feature = function(i) {\n return new FeatureWrapper$1(this.features[i], this.options.extent);\n };\n function FeatureWrapper$1(feature, extent) {\n this.id = typeof feature.id === \"number\" ? feature.id : void 0;\n this.type = feature.type;\n this.rawGeometry = feature.type === 1 ? [feature.geometry] : feature.geometry;\n this.properties = feature.tags;\n this.extent = extent || 4096;\n }\n FeatureWrapper$1.prototype.loadGeometry = function() {\n var rings = this.rawGeometry;\n this.geometry = [];\n for (var i = 0; i < rings.length; i++) {\n var ring = rings[i];\n var newRing = [];\n for (var j = 0; j < ring.length; j++) {\n newRing.push(new performance2.Point$1(ring[j][0], ring[j][1]));\n }\n this.geometry.push(newRing);\n }\n return this.geometry;\n };\n FeatureWrapper$1.prototype.bbox = function() {\n if (!this.geometry) {\n this.loadGeometry();\n }\n var rings = this.geometry;\n var x1 = Infinity;\n var x2 = -Infinity;\n var y1 = Infinity;\n var y2 = -Infinity;\n for (var i = 0; i < rings.length; i++) {\n var ring = rings[i];\n for (var j = 0; j < ring.length; j++) {\n var coord = ring[j];\n x1 = Math.min(x1, coord.x);\n x2 = Math.max(x2, coord.x);\n y1 = Math.min(y1, coord.y);\n y2 = Math.max(y2, coord.y);\n }\n }\n return [\n x1,\n y1,\n x2,\n y2\n ];\n };\n FeatureWrapper$1.prototype.toGeoJSON = VectorTileFeature.prototype.toGeoJSON;\n var vtPbf = fromVectorTileJs;\n var fromVectorTileJs_1 = fromVectorTileJs;\n var fromGeojsonVt_1 = fromGeojsonVt;\n var GeoJSONWrapper_1 = geojson_wrapper;\n function fromVectorTileJs(tile) {\n var out = new performance2.pbf();\n writeTile(tile, out);\n return out.finish();\n }\n function fromGeojsonVt(layers, options) {\n options = options || {};\n var l = {};\n for (var k in layers) {\n l[k] = new geojson_wrapper(layers[k].features, options);\n l[k].name = k;\n l[k].version = options.version;\n l[k].extent = options.extent;\n }\n return fromVectorTileJs({ layers: l });\n }\n function writeTile(tile, pbf) {\n for (var key in tile.layers) {\n pbf.writeMessage(3, writeLayer, tile.layers[key]);\n }\n }\n function writeLayer(layer, pbf) {\n pbf.writeVarintField(15, layer.version || 1);\n pbf.writeStringField(1, layer.name || \"\");\n pbf.writeVarintField(5, layer.extent || 4096);\n var i;\n var context = {\n keys: [],\n values: [],\n keycache: {},\n valuecache: {}\n };\n for (i = 0; i < layer.length; i++) {\n context.feature = layer.feature(i);\n pbf.writeMessage(2, writeFeature, context);\n }\n var keys = context.keys;\n for (i = 0; i < keys.length; i++) {\n pbf.writeStringField(3, keys[i]);\n }\n var values = context.values;\n for (i = 0; i < values.length; i++) {\n pbf.writeMessage(4, writeValue, values[i]);\n }\n }\n function writeFeature(context, pbf) {\n var feature = context.feature;\n if (feature.id !== void 0) {\n pbf.writeVarintField(1, feature.id);\n }\n pbf.writeMessage(2, writeProperties, context);\n pbf.writeVarintField(3, feature.type);\n pbf.writeMessage(4, writeGeometry, feature);\n }\n function writeProperties(context, pbf) {\n var feature = context.feature;\n var keys = context.keys;\n var values = context.values;\n var keycache = context.keycache;\n var valuecache = context.valuecache;\n for (var key in feature.properties) {\n var keyIndex = keycache[key];\n if (typeof keyIndex === \"undefined\") {\n keys.push(key);\n keyIndex = keys.length - 1;\n keycache[key] = keyIndex;\n }\n pbf.writeVarint(keyIndex);\n var value = feature.properties[key];\n var type = typeof value;\n if (type !== \"string\" && type !== \"boolean\" && type !== \"number\") {\n value = JSON.stringify(value);\n }\n var valueKey = type + \":\" + value;\n var valueIndex = valuecache[valueKey];\n if (typeof valueIndex === \"undefined\") {\n values.push(value);\n valueIndex = values.length - 1;\n valuecache[valueKey] = valueIndex;\n }\n pbf.writeVarint(valueIndex);\n }\n }\n function command(cmd, length) {\n return (length << 3) + (cmd & 7);\n }\n function zigzag(num) {\n return num << 1 ^ num >> 31;\n }\n function writeGeometry(feature, pbf) {\n var geometry = feature.loadGeometry();\n var type = feature.type;\n var x = 0;\n var y = 0;\n var rings = geometry.length;\n for (var r = 0; r < rings; r++) {\n var ring = geometry[r];\n var count = 1;\n if (type === 1) {\n count = ring.length;\n }\n pbf.writeVarint(command(1, count));\n var lineCount = type === 3 ? ring.length - 1 : ring.length;\n for (var i = 0; i < lineCount; i++) {\n if (i === 1 && type !== 1) {\n pbf.writeVarint(command(2, lineCount - 1));\n }\n var dx = ring[i].x - x;\n var dy = ring[i].y - y;\n pbf.writeVarint(zigzag(dx));\n pbf.writeVarint(zigzag(dy));\n x += dx;\n y += dy;\n }\n if (type === 3) {\n pbf.writeVarint(command(7, 1));\n }\n }\n }\n function writeValue(value, pbf) {\n var type = typeof value;\n if (type === \"string\") {\n pbf.writeStringField(1, value);\n } else if (type === \"boolean\") {\n pbf.writeBooleanField(7, value);\n } else if (type === \"number\") {\n if (value % 1 !== 0) {\n pbf.writeDoubleField(3, value);\n } else if (value < 0) {\n pbf.writeSVarintField(6, value);\n } else {\n pbf.writeVarintField(5, value);\n }\n }\n }\n vtPbf.fromVectorTileJs = fromVectorTileJs_1;\n vtPbf.fromGeojsonVt = fromGeojsonVt_1;\n vtPbf.GeoJSONWrapper = GeoJSONWrapper_1;\n function sortKD(ids, coords, nodeSize, left, right, depth) {\n if (right - left <= nodeSize) {\n return;\n }\n var m = left + right >> 1;\n select(ids, coords, m, left, right, depth % 2);\n sortKD(ids, coords, nodeSize, left, m - 1, depth + 1);\n sortKD(ids, coords, nodeSize, m + 1, right, depth + 1);\n }\n function select(ids, coords, k, left, right, inc) {\n while (right > left) {\n if (right - left > 600) {\n var n = right - left + 1;\n var m = k - left + 1;\n var z = Math.log(n);\n var s = 0.5 * Math.exp(2 * z / 3);\n var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n select(ids, coords, k, newLeft, newRight, inc);\n }\n var t = coords[2 * k + inc];\n var i = left;\n var j = right;\n swapItem(ids, coords, left, k);\n if (coords[2 * right + inc] > t) {\n swapItem(ids, coords, left, right);\n }\n while (i < j) {\n swapItem(ids, coords, i, j);\n i++;\n j--;\n while (coords[2 * i + inc] < t) {\n i++;\n }\n while (coords[2 * j + inc] > t) {\n j--;\n }\n }\n if (coords[2 * left + inc] === t) {\n swapItem(ids, coords, left, j);\n } else {\n j++;\n swapItem(ids, coords, j, right);\n }\n if (j <= k) {\n left = j + 1;\n }\n if (k <= j) {\n right = j - 1;\n }\n }\n }\n function swapItem(ids, coords, i, j) {\n swap(ids, i, j);\n swap(coords, 2 * i, 2 * j);\n swap(coords, 2 * i + 1, 2 * j + 1);\n }\n function swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n function range(ids, coords, minX, minY, maxX, maxY, nodeSize) {\n var stack = [\n 0,\n ids.length - 1,\n 0\n ];\n var result = [];\n var x, y;\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n x = coords[2 * i];\n y = coords[2 * i + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) {\n result.push(ids[i]);\n }\n }\n continue;\n }\n var m = Math.floor((left + right) / 2);\n x = coords[2 * m];\n y = coords[2 * m + 1];\n if (x >= minX && x <= maxX && y >= minY && y <= maxY) {\n result.push(ids[m]);\n }\n var nextAxis = (axis + 1) % 2;\n if (axis === 0 ? minX <= x : minY <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? maxX >= x : maxY >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n return result;\n }\n function within(ids, coords, qx, qy, r, nodeSize) {\n var stack = [\n 0,\n ids.length - 1,\n 0\n ];\n var result = [];\n var r2 = r * r;\n while (stack.length) {\n var axis = stack.pop();\n var right = stack.pop();\n var left = stack.pop();\n if (right - left <= nodeSize) {\n for (var i = left; i <= right; i++) {\n if (sqDist(coords[2 * i], coords[2 * i + 1], qx, qy) <= r2) {\n result.push(ids[i]);\n }\n }\n continue;\n }\n var m = Math.floor((left + right) / 2);\n var x = coords[2 * m];\n var y = coords[2 * m + 1];\n if (sqDist(x, y, qx, qy) <= r2) {\n result.push(ids[m]);\n }\n var nextAxis = (axis + 1) % 2;\n if (axis === 0 ? qx - r <= x : qy - r <= y) {\n stack.push(left);\n stack.push(m - 1);\n stack.push(nextAxis);\n }\n if (axis === 0 ? qx + r >= x : qy + r >= y) {\n stack.push(m + 1);\n stack.push(right);\n stack.push(nextAxis);\n }\n }\n return result;\n }\n function sqDist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n }\n var defaultGetX = function(p) {\n return p[0];\n };\n var defaultGetY = function(p) {\n return p[1];\n };\n var KDBush = function KDBush2(points, getX2, getY2, nodeSize, ArrayType) {\n if (getX2 === void 0)\n getX2 = defaultGetX;\n if (getY2 === void 0)\n getY2 = defaultGetY;\n if (nodeSize === void 0)\n nodeSize = 64;\n if (ArrayType === void 0)\n ArrayType = Float64Array;\n this.nodeSize = nodeSize;\n this.points = points;\n var IndexArrayType = points.length < 65536 ? Uint16Array : Uint32Array;\n var ids = this.ids = new IndexArrayType(points.length);\n var coords = this.coords = new ArrayType(points.length * 2);\n for (var i = 0; i < points.length; i++) {\n ids[i] = i;\n coords[2 * i] = getX2(points[i]);\n coords[2 * i + 1] = getY2(points[i]);\n }\n sortKD(ids, coords, nodeSize, 0, ids.length - 1, 0);\n };\n KDBush.prototype.range = function range$1(minX, minY, maxX, maxY) {\n return range(this.ids, this.coords, minX, minY, maxX, maxY, this.nodeSize);\n };\n KDBush.prototype.within = function within$1(x, y, r) {\n return within(this.ids, this.coords, x, y, r, this.nodeSize);\n };\n var defaultOptions = {\n minZoom: 0,\n maxZoom: 16,\n minPoints: 2,\n radius: 40,\n extent: 512,\n nodeSize: 64,\n log: false,\n generateId: false,\n reduce: null,\n map: function(props) {\n return props;\n }\n };\n var Supercluster = function Supercluster2(options) {\n this.options = extend2(Object.create(defaultOptions), options);\n this.trees = new Array(this.options.maxZoom + 1);\n };\n Supercluster.prototype.load = function load(points) {\n var ref = this.options;\n var log = ref.log;\n var minZoom = ref.minZoom;\n var maxZoom = ref.maxZoom;\n var nodeSize = ref.nodeSize;\n if (log) {\n console.time(\"total time\");\n }\n var timerId = \"prepare \" + points.length + \" points\";\n if (log) {\n console.time(timerId);\n }\n this.points = points;\n var clusters = [];\n for (var i = 0; i < points.length; i++) {\n if (!points[i].geometry) {\n continue;\n }\n clusters.push(createPointCluster(points[i], i));\n }\n this.trees[maxZoom + 1] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) {\n console.timeEnd(timerId);\n }\n for (var z = maxZoom; z >= minZoom; z--) {\n var now = +Date.now();\n clusters = this._cluster(clusters, z);\n this.trees[z] = new KDBush(clusters, getX, getY, nodeSize, Float32Array);\n if (log) {\n console.log(\"z%d: %d clusters in %dms\", z, clusters.length, +Date.now() - now);\n }\n }\n if (log) {\n console.timeEnd(\"total time\");\n }\n return this;\n };\n Supercluster.prototype.getClusters = function getClusters(bbox, zoom) {\n var minLng = ((bbox[0] + 180) % 360 + 360) % 360 - 180;\n var minLat = Math.max(-90, Math.min(90, bbox[1]));\n var maxLng = bbox[2] === 180 ? 180 : ((bbox[2] + 180) % 360 + 360) % 360 - 180;\n var maxLat = Math.max(-90, Math.min(90, bbox[3]));\n if (bbox[2] - bbox[0] >= 360) {\n minLng = -180;\n maxLng = 180;\n } else if (minLng > maxLng) {\n var easternHem = this.getClusters([\n minLng,\n minLat,\n 180,\n maxLat\n ], zoom);\n var westernHem = this.getClusters([\n -180,\n minLat,\n maxLng,\n maxLat\n ], zoom);\n return easternHem.concat(westernHem);\n }\n var tree = this.trees[this._limitZoom(zoom)];\n var ids = tree.range(lngX(minLng), latY(maxLat), lngX(maxLng), latY(minLat));\n var clusters = [];\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var c = tree.points[id];\n clusters.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n return clusters;\n };\n Supercluster.prototype.getChildren = function getChildren(clusterId) {\n var originId = this._getOriginId(clusterId);\n var originZoom = this._getOriginZoom(clusterId);\n var errorMsg = \"No cluster with the specified id.\";\n var index = this.trees[originZoom];\n if (!index) {\n throw new Error(errorMsg);\n }\n var origin = index.points[originId];\n if (!origin) {\n throw new Error(errorMsg);\n }\n var r = this.options.radius / (this.options.extent * Math.pow(2, originZoom - 1));\n var ids = index.within(origin.x, origin.y, r);\n var children = [];\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var c = index.points[id];\n if (c.parentId === clusterId) {\n children.push(c.numPoints ? getClusterJSON(c) : this.points[c.index]);\n }\n }\n if (children.length === 0) {\n throw new Error(errorMsg);\n }\n return children;\n };\n Supercluster.prototype.getLeaves = function getLeaves(clusterId, limit, offset) {\n limit = limit || 10;\n offset = offset || 0;\n var leaves = [];\n this._appendLeaves(leaves, clusterId, limit, offset, 0);\n return leaves;\n };\n Supercluster.prototype.getTile = function getTile(z, x, y) {\n var tree = this.trees[this._limitZoom(z)];\n var z2 = Math.pow(2, z);\n var ref = this.options;\n var extent = ref.extent;\n var radius = ref.radius;\n var p = radius / extent;\n var top = (y - p) / z2;\n var bottom = (y + 1 + p) / z2;\n var tile = { features: [] };\n this._addTileFeatures(tree.range((x - p) / z2, top, (x + 1 + p) / z2, bottom), tree.points, x, y, z2, tile);\n if (x === 0) {\n this._addTileFeatures(tree.range(1 - p / z2, top, 1, bottom), tree.points, z2, y, z2, tile);\n }\n if (x === z2 - 1) {\n this._addTileFeatures(tree.range(0, top, p / z2, bottom), tree.points, -1, y, z2, tile);\n }\n return tile.features.length ? tile : null;\n };\n Supercluster.prototype.getClusterExpansionZoom = function getClusterExpansionZoom(clusterId) {\n var expansionZoom = this._getOriginZoom(clusterId) - 1;\n while (expansionZoom <= this.options.maxZoom) {\n var children = this.getChildren(clusterId);\n expansionZoom++;\n if (children.length !== 1) {\n break;\n }\n clusterId = children[0].properties.cluster_id;\n }\n return expansionZoom;\n };\n Supercluster.prototype._appendLeaves = function _appendLeaves(result, clusterId, limit, offset, skipped) {\n var children = this.getChildren(clusterId);\n for (var i = 0, list = children; i < list.length; i += 1) {\n var child = list[i];\n var props = child.properties;\n if (props && props.cluster) {\n if (skipped + props.point_count <= offset) {\n skipped += props.point_count;\n } else {\n skipped = this._appendLeaves(result, props.cluster_id, limit, offset, skipped);\n }\n } else if (skipped < offset) {\n skipped++;\n } else {\n result.push(child);\n }\n if (result.length === limit) {\n break;\n }\n }\n return skipped;\n };\n Supercluster.prototype._addTileFeatures = function _addTileFeatures(ids, points, x, y, z2, tile) {\n for (var i$1 = 0, list = ids; i$1 < list.length; i$1 += 1) {\n var i = list[i$1];\n var c = points[i];\n var isCluster = c.numPoints;\n var f = {\n type: 1,\n geometry: [[\n Math.round(this.options.extent * (c.x * z2 - x)),\n Math.round(this.options.extent * (c.y * z2 - y))\n ]],\n tags: isCluster ? getClusterProperties(c) : this.points[c.index].properties\n };\n var id = void 0;\n if (isCluster) {\n id = c.id;\n } else if (this.options.generateId) {\n id = c.index;\n } else if (this.points[c.index].id) {\n id = this.points[c.index].id;\n }\n if (id !== void 0) {\n f.id = id;\n }\n tile.features.push(f);\n }\n };\n Supercluster.prototype._limitZoom = function _limitZoom(z) {\n return Math.max(this.options.minZoom, Math.min(+z, this.options.maxZoom + 1));\n };\n Supercluster.prototype._cluster = function _cluster(points, zoom) {\n var clusters = [];\n var ref = this.options;\n var radius = ref.radius;\n var extent = ref.extent;\n var reduce = ref.reduce;\n var minPoints = ref.minPoints;\n var r = radius / (extent * Math.pow(2, zoom));\n for (var i = 0; i < points.length; i++) {\n var p = points[i];\n if (p.zoom <= zoom) {\n continue;\n }\n p.zoom = zoom;\n var tree = this.trees[zoom + 1];\n var neighborIds = tree.within(p.x, p.y, r);\n var numPointsOrigin = p.numPoints || 1;\n var numPoints = numPointsOrigin;\n for (var i$1 = 0, list = neighborIds; i$1 < list.length; i$1 += 1) {\n var neighborId = list[i$1];\n var b = tree.points[neighborId];\n if (b.zoom > zoom) {\n numPoints += b.numPoints || 1;\n }\n }\n if (numPoints >= minPoints) {\n var wx = p.x * numPointsOrigin;\n var wy = p.y * numPointsOrigin;\n var clusterProperties = reduce && numPointsOrigin > 1 ? this._map(p, true) : null;\n var id = (i << 5) + (zoom + 1) + this.points.length;\n for (var i$2 = 0, list$1 = neighborIds; i$2 < list$1.length; i$2 += 1) {\n var neighborId$1 = list$1[i$2];\n var b$1 = tree.points[neighborId$1];\n if (b$1.zoom <= zoom) {\n continue;\n }\n b$1.zoom = zoom;\n var numPoints2 = b$1.numPoints || 1;\n wx += b$1.x * numPoints2;\n wy += b$1.y * numPoints2;\n b$1.parentId = id;\n if (reduce) {\n if (!clusterProperties) {\n clusterProperties = this._map(p, true);\n }\n reduce(clusterProperties, this._map(b$1));\n }\n }\n p.parentId = id;\n clusters.push(createCluster(wx / numPoints, wy / numPoints, id, numPoints, clusterProperties));\n } else {\n clusters.push(p);\n if (numPoints > 1) {\n for (var i$3 = 0, list$2 = neighborIds; i$3 < list$2.length; i$3 += 1) {\n var neighborId$2 = list$2[i$3];\n var b$2 = tree.points[neighborId$2];\n if (b$2.zoom <= zoom) {\n continue;\n }\n b$2.zoom = zoom;\n clusters.push(b$2);\n }\n }\n }\n }\n return clusters;\n };\n Supercluster.prototype._getOriginId = function _getOriginId(clusterId) {\n return clusterId - this.points.length >> 5;\n };\n Supercluster.prototype._getOriginZoom = function _getOriginZoom(clusterId) {\n return (clusterId - this.points.length) % 32;\n };\n Supercluster.prototype._map = function _map(point, clone) {\n if (point.numPoints) {\n return clone ? extend2({}, point.properties) : point.properties;\n }\n var original = this.points[point.index].properties;\n var result = this.options.map(original);\n return clone && result === original ? extend2({}, result) : result;\n };\n function createCluster(x, y, id, numPoints, properties) {\n return {\n x,\n y,\n zoom: Infinity,\n id,\n parentId: -1,\n numPoints,\n properties\n };\n }\n function createPointCluster(p, id) {\n var ref = p.geometry.coordinates;\n var x = ref[0];\n var y = ref[1];\n return {\n x: lngX(x),\n y: latY(y),\n zoom: Infinity,\n index: id,\n parentId: -1\n };\n }\n function getClusterJSON(cluster) {\n return {\n type: \"Feature\",\n id: cluster.id,\n properties: getClusterProperties(cluster),\n geometry: {\n type: \"Point\",\n coordinates: [\n xLng(cluster.x),\n yLat(cluster.y)\n ]\n }\n };\n }\n function getClusterProperties(cluster) {\n var count = cluster.numPoints;\n var abbrev = count >= 1e4 ? Math.round(count / 1e3) + \"k\" : count >= 1e3 ? Math.round(count / 100) / 10 + \"k\" : count;\n return extend2(extend2({}, cluster.properties), {\n cluster: true,\n cluster_id: cluster.id,\n point_count: count,\n point_count_abbreviated: abbrev\n });\n }\n function lngX(lng) {\n return lng / 360 + 0.5;\n }\n function latY(lat) {\n var sin = Math.sin(lat * Math.PI / 180);\n var y = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y < 0 ? 0 : y > 1 ? 1 : y;\n }\n function xLng(x) {\n return (x - 0.5) * 360;\n }\n function yLat(y) {\n var y2 = (180 - y * 360) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(y2)) / Math.PI - 90;\n }\n function extend2(dest, src) {\n for (var id in src) {\n dest[id] = src[id];\n }\n return dest;\n }\n function getX(p) {\n return p.x;\n }\n function getY(p) {\n return p.y;\n }\n function simplify(coords, first, last, sqTolerance) {\n var maxSqDist = sqTolerance;\n var mid = last - first >> 1;\n var minPosToMid = last - first;\n var index;\n var ax = coords[first];\n var ay = coords[first + 1];\n var bx = coords[last];\n var by = coords[last + 1];\n for (var i = first + 3; i < last; i += 3) {\n var d = getSqSegDist(coords[i], coords[i + 1], ax, ay, bx, by);\n if (d > maxSqDist) {\n index = i;\n maxSqDist = d;\n } else if (d === maxSqDist) {\n var posToMid = Math.abs(i - mid);\n if (posToMid < minPosToMid) {\n index = i;\n minPosToMid = posToMid;\n }\n }\n }\n if (maxSqDist > sqTolerance) {\n if (index - first > 3) {\n simplify(coords, first, index, sqTolerance);\n }\n coords[index + 2] = maxSqDist;\n if (last - index > 3) {\n simplify(coords, index, last, sqTolerance);\n }\n }\n }\n function getSqSegDist(px, py, x, y, bx, by) {\n var dx = bx - x;\n var dy = by - y;\n if (dx !== 0 || dy !== 0) {\n var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x = bx;\n y = by;\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n dx = px - x;\n dy = py - y;\n return dx * dx + dy * dy;\n }\n function createFeature(id, type, geom, tags) {\n var feature = {\n id: typeof id === \"undefined\" ? null : id,\n type,\n geometry: geom,\n tags,\n minX: Infinity,\n minY: Infinity,\n maxX: -Infinity,\n maxY: -Infinity\n };\n calcBBox(feature);\n return feature;\n }\n function calcBBox(feature) {\n var geom = feature.geometry;\n var type = feature.type;\n if (type === \"Point\" || type === \"MultiPoint\" || type === \"LineString\") {\n calcLineBBox(feature, geom);\n } else if (type === \"Polygon\" || type === \"MultiLineString\") {\n for (var i = 0; i < geom.length; i++) {\n calcLineBBox(feature, geom[i]);\n }\n } else if (type === \"MultiPolygon\") {\n for (i = 0; i < geom.length; i++) {\n for (var j = 0; j < geom[i].length; j++) {\n calcLineBBox(feature, geom[i][j]);\n }\n }\n }\n }\n function calcLineBBox(feature, geom) {\n for (var i = 0; i < geom.length; i += 3) {\n feature.minX = Math.min(feature.minX, geom[i]);\n feature.minY = Math.min(feature.minY, geom[i + 1]);\n feature.maxX = Math.max(feature.maxX, geom[i]);\n feature.maxY = Math.max(feature.maxY, geom[i + 1]);\n }\n }\n function convert(data, options) {\n var features = [];\n if (data.type === \"FeatureCollection\") {\n for (var i = 0; i < data.features.length; i++) {\n convertFeature(features, data.features[i], options, i);\n }\n } else if (data.type === \"Feature\") {\n convertFeature(features, data, options);\n } else {\n convertFeature(features, { geometry: data }, options);\n }\n return features;\n }\n function convertFeature(features, geojson, options, index) {\n if (!geojson.geometry) {\n return;\n }\n var coords = geojson.geometry.coordinates;\n var type = geojson.geometry.type;\n var tolerance = Math.pow(options.tolerance / ((1 << options.maxZoom) * options.extent), 2);\n var geometry = [];\n var id = geojson.id;\n if (options.promoteId) {\n id = geojson.properties[options.promoteId];\n } else if (options.generateId) {\n id = index || 0;\n }\n if (type === \"Point\") {\n convertPoint(coords, geometry);\n } else if (type === \"MultiPoint\") {\n for (var i = 0; i < coords.length; i++) {\n convertPoint(coords[i], geometry);\n }\n } else if (type === \"LineString\") {\n convertLine(coords, geometry, tolerance, false);\n } else if (type === \"MultiLineString\") {\n if (options.lineMetrics) {\n for (i = 0; i < coords.length; i++) {\n geometry = [];\n convertLine(coords[i], geometry, tolerance, false);\n features.push(createFeature(id, \"LineString\", geometry, geojson.properties));\n }\n return;\n } else {\n convertLines(coords, geometry, tolerance, false);\n }\n } else if (type === \"Polygon\") {\n convertLines(coords, geometry, tolerance, true);\n } else if (type === \"MultiPolygon\") {\n for (i = 0; i < coords.length; i++) {\n var polygon = [];\n convertLines(coords[i], polygon, tolerance, true);\n geometry.push(polygon);\n }\n } else if (type === \"GeometryCollection\") {\n for (i = 0; i < geojson.geometry.geometries.length; i++) {\n convertFeature(features, {\n id,\n geometry: geojson.geometry.geometries[i],\n properties: geojson.properties\n }, options, index);\n }\n return;\n } else {\n throw new Error(\"Input data is not a valid GeoJSON object.\");\n }\n features.push(createFeature(id, type, geometry, geojson.properties));\n }\n function convertPoint(coords, out) {\n out.push(projectX(coords[0]));\n out.push(projectY(coords[1]));\n out.push(0);\n }\n function convertLine(ring, out, tolerance, isPolygon) {\n var x0, y0;\n var size = 0;\n for (var j = 0; j < ring.length; j++) {\n var x = projectX(ring[j][0]);\n var y = projectY(ring[j][1]);\n out.push(x);\n out.push(y);\n out.push(0);\n if (j > 0) {\n if (isPolygon) {\n size += (x0 * y - x * y0) / 2;\n } else {\n size += Math.sqrt(Math.pow(x - x0, 2) + Math.pow(y - y0, 2));\n }\n }\n x0 = x;\n y0 = y;\n }\n var last = out.length - 3;\n out[2] = 1;\n simplify(out, 0, last, tolerance);\n out[last + 2] = 1;\n out.size = Math.abs(size);\n out.start = 0;\n out.end = out.size;\n }\n function convertLines(rings, out, tolerance, isPolygon) {\n for (var i = 0; i < rings.length; i++) {\n var geom = [];\n convertLine(rings[i], geom, tolerance, isPolygon);\n out.push(geom);\n }\n }\n function projectX(x) {\n return x / 360 + 0.5;\n }\n function projectY(y) {\n var sin = Math.sin(y * Math.PI / 180);\n var y2 = 0.5 - 0.25 * Math.log((1 + sin) / (1 - sin)) / Math.PI;\n return y2 < 0 ? 0 : y2 > 1 ? 1 : y2;\n }\n function clip(features, scale, k1, k2, axis, minAll, maxAll, options) {\n k1 /= scale;\n k2 /= scale;\n if (minAll >= k1 && maxAll < k2) {\n return features;\n } else if (maxAll < k1 || minAll >= k2) {\n return null;\n }\n var clipped = [];\n for (var i = 0; i < features.length; i++) {\n var feature = features[i];\n var geometry = feature.geometry;\n var type = feature.type;\n var min = axis === 0 ? feature.minX : feature.minY;\n var max = axis === 0 ? feature.maxX : feature.maxY;\n if (min >= k1 && max < k2) {\n clipped.push(feature);\n continue;\n } else if (max < k1 || min >= k2) {\n continue;\n }\n var newGeometry = [];\n if (type === \"Point\" || type === \"MultiPoint\") {\n clipPoints(geometry, newGeometry, k1, k2, axis);\n } else if (type === \"LineString\") {\n clipLine(geometry, newGeometry, k1, k2, axis, false, options.lineMetrics);\n } else if (type === \"MultiLineString\") {\n clipLines(geometry, newGeometry, k1, k2, axis, false);\n } else if (type === \"Polygon\") {\n clipLines(geometry, newGeometry, k1, k2, axis, true);\n } else if (type === \"MultiPolygon\") {\n for (var j = 0; j < geometry.length; j++) {\n var polygon = [];\n clipLines(geometry[j], polygon, k1, k2, axis, true);\n if (polygon.length) {\n newGeometry.push(polygon);\n }\n }\n }\n if (newGeometry.length) {\n if (options.lineMetrics && type === \"LineString\") {\n for (j = 0; j < newGeometry.length; j++) {\n clipped.push(createFeature(feature.id, type, newGeometry[j], feature.tags));\n }\n continue;\n }\n if (type === \"LineString\" || type === \"MultiLineString\") {\n if (newGeometry.length === 1) {\n type = \"LineString\";\n newGeometry = newGeometry[0];\n } else {\n type = \"MultiLineString\";\n }\n }\n if (type === \"Point\" || type === \"MultiPoint\") {\n type = newGeometry.length === 3 ? \"Point\" : \"MultiPoint\";\n }\n clipped.push(createFeature(feature.id, type, newGeometry, feature.tags));\n }\n }\n return clipped.length ? clipped : null;\n }\n function clipPoints(geom, newGeom, k1, k2, axis) {\n for (var i = 0; i < geom.length; i += 3) {\n var a = geom[i + axis];\n if (a >= k1 && a <= k2) {\n newGeom.push(geom[i]);\n newGeom.push(geom[i + 1]);\n newGeom.push(geom[i + 2]);\n }\n }\n }\n function clipLine(geom, newGeom, k1, k2, axis, isPolygon, trackMetrics) {\n var slice = newSlice(geom);\n var intersect = axis === 0 ? intersectX : intersectY;\n var len = geom.start;\n var segLen, t;\n for (var i = 0; i < geom.length - 3; i += 3) {\n var ax = geom[i];\n var ay = geom[i + 1];\n var az = geom[i + 2];\n var bx = geom[i + 3];\n var by = geom[i + 4];\n var a = axis === 0 ? ax : ay;\n var b = axis === 0 ? bx : by;\n var exited = false;\n if (trackMetrics) {\n segLen = Math.sqrt(Math.pow(ax - bx, 2) + Math.pow(ay - by, 2));\n }\n if (a < k1) {\n if (b > k1) {\n t = intersect(slice, ax, ay, bx, by, k1);\n if (trackMetrics) {\n slice.start = len + segLen * t;\n }\n }\n } else if (a > k2) {\n if (b < k2) {\n t = intersect(slice, ax, ay, bx, by, k2);\n if (trackMetrics) {\n slice.start = len + segLen * t;\n }\n }\n } else {\n addPoint(slice, ax, ay, az);\n }\n if (b < k1 && a >= k1) {\n t = intersect(slice, ax, ay, bx, by, k1);\n exited = true;\n }\n if (b > k2 && a <= k2) {\n t = intersect(slice, ax, ay, bx, by, k2);\n exited = true;\n }\n if (!isPolygon && exited) {\n if (trackMetrics) {\n slice.end = len + segLen * t;\n }\n newGeom.push(slice);\n slice = newSlice(geom);\n }\n if (trackMetrics) {\n len += segLen;\n }\n }\n var last = geom.length - 3;\n ax = geom[last];\n ay = geom[last + 1];\n az = geom[last + 2];\n a = axis === 0 ? ax : ay;\n if (a >= k1 && a <= k2) {\n addPoint(slice, ax, ay, az);\n }\n last = slice.length - 3;\n if (isPolygon && last >= 3 && (slice[last] !== slice[0] || slice[last + 1] !== slice[1])) {\n addPoint(slice, slice[0], slice[1], slice[2]);\n }\n if (slice.length) {\n newGeom.push(slice);\n }\n }\n function newSlice(line) {\n var slice = [];\n slice.size = line.size;\n slice.start = line.start;\n slice.end = line.end;\n return slice;\n }\n function clipLines(geom, newGeom, k1, k2, axis, isPolygon) {\n for (var i = 0; i < geom.length; i++) {\n clipLine(geom[i], newGeom, k1, k2, axis, isPolygon, false);\n }\n }\n function addPoint(out, x, y, z) {\n out.push(x);\n out.push(y);\n out.push(z);\n }\n function intersectX(out, ax, ay, bx, by, x) {\n var t = (x - ax) / (bx - ax);\n out.push(x);\n out.push(ay + (by - ay) * t);\n out.push(1);\n return t;\n }\n function intersectY(out, ax, ay, bx, by, y) {\n var t = (y - ay) / (by - ay);\n out.push(ax + (bx - ax) * t);\n out.push(y);\n out.push(1);\n return t;\n }\n function wrap(features, options) {\n var buffer = options.buffer / options.extent;\n var merged = features;\n var left = clip(features, 1, -1 - buffer, buffer, 0, -1, 2, options);\n var right = clip(features, 1, 1 - buffer, 2 + buffer, 0, -1, 2, options);\n if (left || right) {\n merged = clip(features, 1, -buffer, 1 + buffer, 0, -1, 2, options) || [];\n if (left) {\n merged = shiftFeatureCoords(left, 1).concat(merged);\n }\n if (right) {\n merged = merged.concat(shiftFeatureCoords(right, -1));\n }\n }\n return merged;\n }\n function shiftFeatureCoords(features, offset) {\n var newFeatures = [];\n for (var i = 0; i < features.length; i++) {\n var feature = features[i], type = feature.type;\n var newGeometry;\n if (type === \"Point\" || type === \"MultiPoint\" || type === \"LineString\") {\n newGeometry = shiftCoords(feature.geometry, offset);\n } else if (type === \"MultiLineString\" || type === \"Polygon\") {\n newGeometry = [];\n for (var j = 0; j < feature.geometry.length; j++) {\n newGeometry.push(shiftCoords(feature.geometry[j], offset));\n }\n } else if (type === \"MultiPolygon\") {\n newGeometry = [];\n for (j = 0; j < feature.geometry.length; j++) {\n var newPolygon = [];\n for (var k = 0; k < feature.geometry[j].length; k++) {\n newPolygon.push(shiftCoords(feature.geometry[j][k], offset));\n }\n newGeometry.push(newPolygon);\n }\n }\n newFeatures.push(createFeature(feature.id, type, newGeometry, feature.tags));\n }\n return newFeatures;\n }\n function shiftCoords(points, offset) {\n var newPoints = [];\n newPoints.size = points.size;\n if (points.start !== void 0) {\n newPoints.start = points.start;\n newPoints.end = points.end;\n }\n for (var i = 0; i < points.length; i += 3) {\n newPoints.push(points[i] + offset, points[i + 1], points[i + 2]);\n }\n return newPoints;\n }\n function transformTile(tile, extent) {\n if (tile.transformed) {\n return tile;\n }\n var z2 = 1 << tile.z, tx = tile.x, ty = tile.y, i, j, k;\n for (i = 0; i < tile.features.length; i++) {\n var feature = tile.features[i], geom = feature.geometry, type = feature.type;\n feature.geometry = [];\n if (type === 1) {\n for (j = 0; j < geom.length; j += 2) {\n feature.geometry.push(transformPoint(geom[j], geom[j + 1], extent, z2, tx, ty));\n }\n } else {\n for (j = 0; j < geom.length; j++) {\n var ring = [];\n for (k = 0; k < geom[j].length; k += 2) {\n ring.push(transformPoint(geom[j][k], geom[j][k + 1], extent, z2, tx, ty));\n }\n feature.geometry.push(ring);\n }\n }\n }\n tile.transformed = true;\n return tile;\n }\n function transformPoint(x, y, extent, z2, tx, ty) {\n return [\n Math.round(extent * (x * z2 - tx)),\n Math.round(extent * (y * z2 - ty))\n ];\n }\n function createTile(features, z, tx, ty, options) {\n var tolerance = z === options.maxZoom ? 0 : options.tolerance / ((1 << z) * options.extent);\n var tile = {\n features: [],\n numPoints: 0,\n numSimplified: 0,\n numFeatures: 0,\n source: null,\n x: tx,\n y: ty,\n z,\n transformed: false,\n minX: 2,\n minY: 1,\n maxX: -1,\n maxY: 0\n };\n for (var i = 0; i < features.length; i++) {\n tile.numFeatures++;\n addFeature(tile, features[i], tolerance, options);\n var minX = features[i].minX;\n var minY = features[i].minY;\n var maxX = features[i].maxX;\n var maxY = features[i].maxY;\n if (minX < tile.minX) {\n tile.minX = minX;\n }\n if (minY < tile.minY) {\n tile.minY = minY;\n }\n if (maxX > tile.maxX) {\n tile.maxX = maxX;\n }\n if (maxY > tile.maxY) {\n tile.maxY = maxY;\n }\n }\n return tile;\n }\n function addFeature(tile, feature, tolerance, options) {\n var geom = feature.geometry, type = feature.type, simplified = [];\n if (type === \"Point\" || type === \"MultiPoint\") {\n for (var i = 0; i < geom.length; i += 3) {\n simplified.push(geom[i]);\n simplified.push(geom[i + 1]);\n tile.numPoints++;\n tile.numSimplified++;\n }\n } else if (type === \"LineString\") {\n addLine(simplified, geom, tile, tolerance, false, false);\n } else if (type === \"MultiLineString\" || type === \"Polygon\") {\n for (i = 0; i < geom.length; i++) {\n addLine(simplified, geom[i], tile, tolerance, type === \"Polygon\", i === 0);\n }\n } else if (type === \"MultiPolygon\") {\n for (var k = 0; k < geom.length; k++) {\n var polygon = geom[k];\n for (i = 0; i < polygon.length; i++) {\n addLine(simplified, polygon[i], tile, tolerance, true, i === 0);\n }\n }\n }\n if (simplified.length) {\n var tags = feature.tags || null;\n if (type === \"LineString\" && options.lineMetrics) {\n tags = {};\n for (var key in feature.tags) {\n tags[key] = feature.tags[key];\n }\n tags[\"mapbox_clip_start\"] = geom.start / geom.size;\n tags[\"mapbox_clip_end\"] = geom.end / geom.size;\n }\n var tileFeature = {\n geometry: simplified,\n type: type === \"Polygon\" || type === \"MultiPolygon\" ? 3 : type === \"LineString\" || type === \"MultiLineString\" ? 2 : 1,\n tags\n };\n if (feature.id !== null) {\n tileFeature.id = feature.id;\n }\n tile.features.push(tileFeature);\n }\n }\n function addLine(result, geom, tile, tolerance, isPolygon, isOuter) {\n var sqTolerance = tolerance * tolerance;\n if (tolerance > 0 && geom.size < (isPolygon ? sqTolerance : tolerance)) {\n tile.numPoints += geom.length / 3;\n return;\n }\n var ring = [];\n for (var i = 0; i < geom.length; i += 3) {\n if (tolerance === 0 || geom[i + 2] > sqTolerance) {\n tile.numSimplified++;\n ring.push(geom[i]);\n ring.push(geom[i + 1]);\n }\n tile.numPoints++;\n }\n if (isPolygon) {\n rewind$1(ring, isOuter);\n }\n result.push(ring);\n }\n function rewind$1(ring, clockwise) {\n var area = 0;\n for (var i = 0, len = ring.length, j = len - 2; i < len; j = i, i += 2) {\n area += (ring[i] - ring[j]) * (ring[i + 1] + ring[j + 1]);\n }\n if (area > 0 === clockwise) {\n for (i = 0, len = ring.length; i < len / 2; i += 2) {\n var x = ring[i];\n var y = ring[i + 1];\n ring[i] = ring[len - 2 - i];\n ring[i + 1] = ring[len - 1 - i];\n ring[len - 2 - i] = x;\n ring[len - 1 - i] = y;\n }\n }\n }\n function geojsonvt(data, options) {\n return new GeoJSONVT(data, options);\n }\n function GeoJSONVT(data, options) {\n options = this.options = extend$1(Object.create(this.options), options);\n var debug = options.debug;\n if (debug) {\n console.time(\"preprocess data\");\n }\n if (options.maxZoom < 0 || options.maxZoom > 24) {\n throw new Error(\"maxZoom should be in the 0-24 range\");\n }\n if (options.promoteId && options.generateId) {\n throw new Error(\"promoteId and generateId cannot be used together.\");\n }\n var features = convert(data, options);\n this.tiles = {};\n this.tileCoords = [];\n if (debug) {\n console.timeEnd(\"preprocess data\");\n console.log(\"index: maxZoom: %d, maxPoints: %d\", options.indexMaxZoom, options.indexMaxPoints);\n console.time(\"generate tiles\");\n this.stats = {};\n this.total = 0;\n }\n features = wrap(features, options);\n if (features.length) {\n this.splitTile(features, 0, 0, 0);\n }\n if (debug) {\n if (features.length) {\n console.log(\"features: %d, points: %d\", this.tiles[0].numFeatures, this.tiles[0].numPoints);\n }\n console.timeEnd(\"generate tiles\");\n console.log(\"tiles generated:\", this.total, JSON.stringify(this.stats));\n }\n }\n GeoJSONVT.prototype.options = {\n maxZoom: 14,\n indexMaxZoom: 5,\n indexMaxPoints: 1e5,\n tolerance: 3,\n extent: 4096,\n buffer: 64,\n lineMetrics: false,\n promoteId: null,\n generateId: false,\n debug: 0\n };\n GeoJSONVT.prototype.splitTile = function(features, z, x, y, cz, cx, cy) {\n var stack = [\n features,\n z,\n x,\n y\n ], options = this.options, debug = options.debug;\n while (stack.length) {\n y = stack.pop();\n x = stack.pop();\n z = stack.pop();\n features = stack.pop();\n var z2 = 1 << z, id = toID(z, x, y), tile = this.tiles[id];\n if (!tile) {\n if (debug > 1) {\n console.time(\"creation\");\n }\n tile = this.tiles[id] = createTile(features, z, x, y, options);\n this.tileCoords.push({\n z,\n x,\n y\n });\n if (debug) {\n if (debug > 1) {\n console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\", z, x, y, tile.numFeatures, tile.numPoints, tile.numSimplified);\n console.timeEnd(\"creation\");\n }\n var key = \"z\" + z;\n this.stats[key] = (this.stats[key] || 0) + 1;\n this.total++;\n }\n }\n tile.source = features;\n if (!cz) {\n if (z === options.indexMaxZoom || tile.numPoints <= options.indexMaxPoints) {\n continue;\n }\n } else {\n if (z === options.maxZoom || z === cz) {\n continue;\n }\n var m = 1 << cz - z;\n if (x !== Math.floor(cx / m) || y !== Math.floor(cy / m)) {\n continue;\n }\n }\n tile.source = null;\n if (features.length === 0) {\n continue;\n }\n if (debug > 1) {\n console.time(\"clipping\");\n }\n var k1 = 0.5 * options.buffer / options.extent, k2 = 0.5 - k1, k3 = 0.5 + k1, k4 = 1 + k1, tl, bl, tr, br, left, right;\n tl = bl = tr = br = null;\n left = clip(features, z2, x - k1, x + k3, 0, tile.minX, tile.maxX, options);\n right = clip(features, z2, x + k2, x + k4, 0, tile.minX, tile.maxX, options);\n features = null;\n if (left) {\n tl = clip(left, z2, y - k1, y + k3, 1, tile.minY, tile.maxY, options);\n bl = clip(left, z2, y + k2, y + k4, 1, tile.minY, tile.maxY, options);\n left = null;\n }\n if (right) {\n tr = clip(right, z2, y - k1, y + k3, 1, tile.minY, tile.maxY, options);\n br = clip(right, z2, y + k2, y + k4, 1, tile.minY, tile.maxY, options);\n right = null;\n }\n if (debug > 1) {\n console.timeEnd(\"clipping\");\n }\n stack.push(tl || [], z + 1, x * 2, y * 2);\n stack.push(bl || [], z + 1, x * 2, y * 2 + 1);\n stack.push(tr || [], z + 1, x * 2 + 1, y * 2);\n stack.push(br || [], z + 1, x * 2 + 1, y * 2 + 1);\n }\n };\n GeoJSONVT.prototype.getTile = function(z, x, y) {\n var options = this.options, extent = options.extent, debug = options.debug;\n if (z < 0 || z > 24) {\n return null;\n }\n var z2 = 1 << z;\n x = (x % z2 + z2) % z2;\n var id = toID(z, x, y);\n if (this.tiles[id]) {\n return transformTile(this.tiles[id], extent);\n }\n if (debug > 1) {\n console.log(\"drilling down to z%d-%d-%d\", z, x, y);\n }\n var z0 = z, x0 = x, y0 = y, parent;\n while (!parent && z0 > 0) {\n z0--;\n x0 = Math.floor(x0 / 2);\n y0 = Math.floor(y0 / 2);\n parent = this.tiles[toID(z0, x0, y0)];\n }\n if (!parent || !parent.source) {\n return null;\n }\n if (debug > 1) {\n console.log(\"found parent tile z%d-%d-%d\", z0, x0, y0);\n }\n if (debug > 1) {\n console.time(\"drilling down\");\n }\n this.splitTile(parent.source, z0, x0, y0, z, x, y);\n if (debug > 1) {\n console.timeEnd(\"drilling down\");\n }\n return this.tiles[id] ? transformTile(this.tiles[id], extent) : null;\n };\n function toID(z, x, y) {\n return ((1 << z) * y + x) * 32 + z;\n }\n function extend$1(dest, src) {\n for (var i in src) {\n dest[i] = src[i];\n }\n return dest;\n }\n function loadGeoJSONTile(params, callback) {\n var canonical = params.tileID.canonical;\n if (!this._geoJSONIndex) {\n return callback(null, null);\n }\n var geoJSONTile = this._geoJSONIndex.getTile(canonical.z, canonical.x, canonical.y);\n if (!geoJSONTile) {\n return callback(null, null);\n }\n var geojsonWrapper = new GeoJSONWrapper(geoJSONTile.features);\n var pbf = vtPbf(geojsonWrapper);\n if (pbf.byteOffset !== 0 || pbf.byteLength !== pbf.buffer.byteLength) {\n pbf = new Uint8Array(pbf);\n }\n callback(null, {\n vectorTile: geojsonWrapper,\n rawData: pbf.buffer\n });\n }\n var GeoJSONWorkerSource = function(VectorTileWorkerSource2) {\n function GeoJSONWorkerSource2(actor, layerIndex, availableImages, loadGeoJSON) {\n VectorTileWorkerSource2.call(this, actor, layerIndex, availableImages, loadGeoJSONTile);\n if (loadGeoJSON) {\n this.loadGeoJSON = loadGeoJSON;\n }\n }\n if (VectorTileWorkerSource2)\n GeoJSONWorkerSource2.__proto__ = VectorTileWorkerSource2;\n GeoJSONWorkerSource2.prototype = Object.create(VectorTileWorkerSource2 && VectorTileWorkerSource2.prototype);\n GeoJSONWorkerSource2.prototype.constructor = GeoJSONWorkerSource2;\n GeoJSONWorkerSource2.prototype.loadData = function loadData(params, callback) {\n if (this._pendingCallback) {\n this._pendingCallback(null, { abandoned: true });\n }\n this._pendingCallback = callback;\n this._pendingLoadDataParams = params;\n if (this._state && this._state !== \"Idle\") {\n this._state = \"NeedsLoadData\";\n } else {\n this._state = \"Coalescing\";\n this._loadData();\n }\n };\n GeoJSONWorkerSource2.prototype._loadData = function _loadData() {\n var this$1 = this;\n if (!this._pendingCallback || !this._pendingLoadDataParams) {\n return;\n }\n var callback = this._pendingCallback;\n var params = this._pendingLoadDataParams;\n delete this._pendingCallback;\n delete this._pendingLoadDataParams;\n var perf = params && params.request && params.request.collectResourceTiming ? new performance2.RequestPerformance(params.request) : false;\n this.loadGeoJSON(params, function(err, data) {\n if (err || !data) {\n return callback(err);\n } else if (typeof data !== \"object\") {\n return callback(new Error(\"Input data given to '\" + params.source + \"' is not a valid GeoJSON object.\"));\n } else {\n geojsonRewind(data, true);\n try {\n if (params.filter) {\n var compiled = performance2.createExpression(params.filter, {\n type: \"boolean\",\n \"property-type\": \"data-driven\",\n overridable: false,\n transition: false\n });\n if (compiled.result === \"error\") {\n throw new Error(compiled.value.map(function(err2) {\n return err2.key + \": \" + err2.message;\n }).join(\", \"));\n }\n var features = data.features.filter(function(feature) {\n return compiled.value.evaluate({ zoom: 0 }, feature);\n });\n data = {\n type: \"FeatureCollection\",\n features\n };\n }\n this$1._geoJSONIndex = params.cluster ? new Supercluster(getSuperclusterOptions(params)).load(data.features) : geojsonvt(data, params.geojsonVtOptions);\n } catch (err2) {\n return callback(err2);\n }\n this$1.loaded = {};\n var result = {};\n if (perf) {\n var resourceTimingData = perf.finish();\n if (resourceTimingData) {\n result.resourceTiming = {};\n result.resourceTiming[params.source] = JSON.parse(JSON.stringify(resourceTimingData));\n }\n }\n callback(null, result);\n }\n });\n };\n GeoJSONWorkerSource2.prototype.coalesce = function coalesce() {\n if (this._state === \"Coalescing\") {\n this._state = \"Idle\";\n } else if (this._state === \"NeedsLoadData\") {\n this._state = \"Coalescing\";\n this._loadData();\n }\n };\n GeoJSONWorkerSource2.prototype.reloadTile = function reloadTile(params, callback) {\n var loaded = this.loaded, uid = params.uid;\n if (loaded && loaded[uid]) {\n return VectorTileWorkerSource2.prototype.reloadTile.call(this, params, callback);\n } else {\n return this.loadTile(params, callback);\n }\n };\n GeoJSONWorkerSource2.prototype.loadGeoJSON = function loadGeoJSON(params, callback) {\n if (params.request) {\n performance2.getJSON(params.request, callback);\n } else if (typeof params.data === \"string\") {\n try {\n return callback(null, JSON.parse(params.data));\n } catch (e) {\n return callback(new Error(\"Input data given to '\" + params.source + \"' is not a valid GeoJSON object.\"));\n }\n } else {\n return callback(new Error(\"Input data given to '\" + params.source + \"' is not a valid GeoJSON object.\"));\n }\n };\n GeoJSONWorkerSource2.prototype.removeSource = function removeSource(params, callback) {\n if (this._pendingCallback) {\n this._pendingCallback(null, { abandoned: true });\n }\n callback();\n };\n GeoJSONWorkerSource2.prototype.getClusterExpansionZoom = function getClusterExpansionZoom(params, callback) {\n try {\n callback(null, this._geoJSONIndex.getClusterExpansionZoom(params.clusterId));\n } catch (e) {\n callback(e);\n }\n };\n GeoJSONWorkerSource2.prototype.getClusterChildren = function getClusterChildren(params, callback) {\n try {\n callback(null, this._geoJSONIndex.getChildren(params.clusterId));\n } catch (e) {\n callback(e);\n }\n };\n GeoJSONWorkerSource2.prototype.getClusterLeaves = function getClusterLeaves(params, callback) {\n try {\n callback(null, this._geoJSONIndex.getLeaves(params.clusterId, params.limit, params.offset));\n } catch (e) {\n callback(e);\n }\n };\n return GeoJSONWorkerSource2;\n }(VectorTileWorkerSource);\n function getSuperclusterOptions(ref) {\n var superclusterOptions = ref.superclusterOptions;\n var clusterProperties = ref.clusterProperties;\n if (!clusterProperties || !superclusterOptions) {\n return superclusterOptions;\n }\n var mapExpressions = {};\n var reduceExpressions = {};\n var globals = {\n accumulated: null,\n zoom: 0\n };\n var feature = { properties: null };\n var propertyNames = Object.keys(clusterProperties);\n for (var i = 0, list = propertyNames; i < list.length; i += 1) {\n var key = list[i];\n var ref$1 = clusterProperties[key];\n var operator = ref$1[0];\n var mapExpression = ref$1[1];\n var mapExpressionParsed = performance2.createExpression(mapExpression);\n var reduceExpressionParsed = performance2.createExpression(typeof operator === \"string\" ? [\n operator,\n [\"accumulated\"],\n [\n \"get\",\n key\n ]\n ] : operator);\n mapExpressions[key] = mapExpressionParsed.value;\n reduceExpressions[key] = reduceExpressionParsed.value;\n }\n superclusterOptions.map = function(pointProperties) {\n feature.properties = pointProperties;\n var properties = {};\n for (var i2 = 0, list2 = propertyNames; i2 < list2.length; i2 += 1) {\n var key2 = list2[i2];\n properties[key2] = mapExpressions[key2].evaluate(globals, feature);\n }\n return properties;\n };\n superclusterOptions.reduce = function(accumulated, clusterProperties2) {\n feature.properties = clusterProperties2;\n for (var i2 = 0, list2 = propertyNames; i2 < list2.length; i2 += 1) {\n var key2 = list2[i2];\n globals.accumulated = accumulated[key2];\n accumulated[key2] = reduceExpressions[key2].evaluate(globals, feature);\n }\n };\n return superclusterOptions;\n }\n var Worker2 = function Worker3(self2) {\n var this$1 = this;\n this.self = self2;\n this.actor = new performance2.Actor(self2, this);\n this.layerIndexes = {};\n this.availableImages = {};\n this.workerSourceTypes = {\n vector: VectorTileWorkerSource,\n geojson: GeoJSONWorkerSource\n };\n this.workerSources = {};\n this.demWorkerSources = {};\n this.self.registerWorkerSource = function(name2, WorkerSource) {\n if (this$1.workerSourceTypes[name2]) {\n throw new Error('Worker source with name \"' + name2 + '\" already registered.');\n }\n this$1.workerSourceTypes[name2] = WorkerSource;\n };\n this.self.registerRTLTextPlugin = function(rtlTextPlugin) {\n if (performance2.plugin.isParsed()) {\n throw new Error(\"RTL text plugin already registered.\");\n }\n performance2.plugin[\"applyArabicShaping\"] = rtlTextPlugin.applyArabicShaping;\n performance2.plugin[\"processBidirectionalText\"] = rtlTextPlugin.processBidirectionalText;\n performance2.plugin[\"processStyledBidirectionalText\"] = rtlTextPlugin.processStyledBidirectionalText;\n };\n };\n Worker2.prototype.setReferrer = function setReferrer(mapID, referrer) {\n this.referrer = referrer;\n };\n Worker2.prototype.setImages = function setImages(mapId, images, callback) {\n this.availableImages[mapId] = images;\n for (var workerSource in this.workerSources[mapId]) {\n var ws = this.workerSources[mapId][workerSource];\n for (var source in ws) {\n ws[source].availableImages = images;\n }\n }\n callback();\n };\n Worker2.prototype.setLayers = function setLayers(mapId, layers, callback) {\n this.getLayerIndex(mapId).replace(layers);\n callback();\n };\n Worker2.prototype.updateLayers = function updateLayers(mapId, params, callback) {\n this.getLayerIndex(mapId).update(params.layers, params.removedIds);\n callback();\n };\n Worker2.prototype.loadTile = function loadTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).loadTile(params, callback);\n };\n Worker2.prototype.loadDEMTile = function loadDEMTile(mapId, params, callback) {\n this.getDEMWorkerSource(mapId, params.source).loadTile(params, callback);\n };\n Worker2.prototype.reloadTile = function reloadTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).reloadTile(params, callback);\n };\n Worker2.prototype.abortTile = function abortTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).abortTile(params, callback);\n };\n Worker2.prototype.removeTile = function removeTile(mapId, params, callback) {\n this.getWorkerSource(mapId, params.type, params.source).removeTile(params, callback);\n };\n Worker2.prototype.removeDEMTile = function removeDEMTile(mapId, params) {\n this.getDEMWorkerSource(mapId, params.source).removeTile(params);\n };\n Worker2.prototype.removeSource = function removeSource(mapId, params, callback) {\n if (!this.workerSources[mapId] || !this.workerSources[mapId][params.type] || !this.workerSources[mapId][params.type][params.source]) {\n return;\n }\n var worker2 = this.workerSources[mapId][params.type][params.source];\n delete this.workerSources[mapId][params.type][params.source];\n if (worker2.removeSource !== void 0) {\n worker2.removeSource(params, callback);\n } else {\n callback();\n }\n };\n Worker2.prototype.loadWorkerSource = function loadWorkerSource(map, params, callback) {\n try {\n this.self.importScripts(params.url);\n callback();\n } catch (e) {\n callback(e.toString());\n }\n };\n Worker2.prototype.syncRTLPluginState = function syncRTLPluginState(map, state, callback) {\n try {\n performance2.plugin.setState(state);\n var pluginURL = performance2.plugin.getPluginURL();\n if (performance2.plugin.isLoaded() && !performance2.plugin.isParsed() && pluginURL != null) {\n this.self.importScripts(pluginURL);\n var complete = performance2.plugin.isParsed();\n var error = complete ? void 0 : new Error(\"RTL Text Plugin failed to import scripts from \" + pluginURL);\n callback(error, complete);\n }\n } catch (e) {\n callback(e.toString());\n }\n };\n Worker2.prototype.getAvailableImages = function getAvailableImages(mapId) {\n var availableImages = this.availableImages[mapId];\n if (!availableImages) {\n availableImages = [];\n }\n return availableImages;\n };\n Worker2.prototype.getLayerIndex = function getLayerIndex(mapId) {\n var layerIndexes = this.layerIndexes[mapId];\n if (!layerIndexes) {\n layerIndexes = this.layerIndexes[mapId] = new StyleLayerIndex();\n }\n return layerIndexes;\n };\n Worker2.prototype.getWorkerSource = function getWorkerSource(mapId, type, source) {\n var this$1 = this;\n if (!this.workerSources[mapId]) {\n this.workerSources[mapId] = {};\n }\n if (!this.workerSources[mapId][type]) {\n this.workerSources[mapId][type] = {};\n }\n if (!this.workerSources[mapId][type][source]) {\n var actor = {\n send: function(type2, data, callback) {\n this$1.actor.send(type2, data, callback, mapId);\n }\n };\n this.workerSources[mapId][type][source] = new this.workerSourceTypes[type](actor, this.getLayerIndex(mapId), this.getAvailableImages(mapId));\n }\n return this.workerSources[mapId][type][source];\n };\n Worker2.prototype.getDEMWorkerSource = function getDEMWorkerSource(mapId, source) {\n if (!this.demWorkerSources[mapId]) {\n this.demWorkerSources[mapId] = {};\n }\n if (!this.demWorkerSources[mapId][source]) {\n this.demWorkerSources[mapId][source] = new RasterDEMTileWorkerSource();\n }\n return this.demWorkerSources[mapId][source];\n };\n Worker2.prototype.enforceCacheSizeLimit = function enforceCacheSizeLimit$1(mapId, limit) {\n performance2.enforceCacheSizeLimit(limit);\n };\n if (typeof WorkerGlobalScope !== \"undefined\" && typeof self !== \"undefined\" && self instanceof WorkerGlobalScope) {\n self.worker = new Worker2(self);\n }\n return Worker2;\n });\n define2([\"./shared\"], function(performance2) {\n \"use strict\";\n var mapboxGlSupported = performance2.createCommonjsModule(function(module2) {\n if (module2.exports) {\n module2.exports = isSupported;\n } else if (window) {\n window.mapboxgl = window.mapboxgl || {};\n window.mapboxgl.supported = isSupported;\n window.mapboxgl.notSupportedReason = notSupportedReason;\n }\n function isSupported(options) {\n return !notSupportedReason(options);\n }\n function notSupportedReason(options) {\n if (!isBrowser()) {\n return \"not a browser\";\n }\n if (!isArraySupported()) {\n return \"insufficent Array support\";\n }\n if (!isFunctionSupported()) {\n return \"insufficient Function support\";\n }\n if (!isObjectSupported()) {\n return \"insufficient Object support\";\n }\n if (!isJSONSupported()) {\n return \"insufficient JSON support\";\n }\n if (!isWorkerSupported()) {\n return \"insufficient worker support\";\n }\n if (!isUint8ClampedArraySupported()) {\n return \"insufficient Uint8ClampedArray support\";\n }\n if (!isArrayBufferSupported()) {\n return \"insufficient ArrayBuffer support\";\n }\n if (!isCanvasGetImageDataSupported()) {\n return \"insufficient Canvas/getImageData support\";\n }\n if (!isWebGLSupportedCached(options && options.failIfMajorPerformanceCaveat)) {\n return \"insufficient WebGL support\";\n }\n }\n function isBrowser() {\n return typeof window !== \"undefined\" && typeof document !== \"undefined\";\n }\n function isArraySupported() {\n return Array.prototype && Array.prototype.every && Array.prototype.filter && Array.prototype.forEach && Array.prototype.indexOf && Array.prototype.lastIndexOf && Array.prototype.map && Array.prototype.some && Array.prototype.reduce && Array.prototype.reduceRight && Array.isArray;\n }\n function isFunctionSupported() {\n return Function.prototype && Function.prototype.bind;\n }\n function isObjectSupported() {\n return Object.keys && Object.create && Object.getPrototypeOf && Object.getOwnPropertyNames && Object.isSealed && Object.isFrozen && Object.isExtensible && Object.getOwnPropertyDescriptor && Object.defineProperty && Object.defineProperties && Object.seal && Object.freeze && Object.preventExtensions;\n }\n function isJSONSupported() {\n return \"JSON\" in window && \"parse\" in JSON && \"stringify\" in JSON;\n }\n function isWorkerSupported() {\n if (!(\"Worker\" in window && \"Blob\" in window && \"URL\" in window)) {\n return false;\n }\n var blob = new Blob([\"\"], { type: \"text/javascript\" });\n var workerURL = URL.createObjectURL(blob);\n var supported;\n var worker2;\n try {\n worker2 = new Worker(workerURL);\n supported = true;\n } catch (e) {\n supported = false;\n }\n if (worker2) {\n worker2.terminate();\n }\n URL.revokeObjectURL(workerURL);\n return supported;\n }\n function isUint8ClampedArraySupported() {\n return \"Uint8ClampedArray\" in window;\n }\n function isArrayBufferSupported() {\n return ArrayBuffer.isView;\n }\n function isCanvasGetImageDataSupported() {\n var canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = 1;\n var context = canvas.getContext(\"2d\");\n if (!context) {\n return false;\n }\n var imageData = context.getImageData(0, 0, 1, 1);\n return imageData && imageData.width === canvas.width;\n }\n var isWebGLSupportedCache = {};\n function isWebGLSupportedCached(failIfMajorPerformanceCaveat) {\n if (isWebGLSupportedCache[failIfMajorPerformanceCaveat] === void 0) {\n isWebGLSupportedCache[failIfMajorPerformanceCaveat] = isWebGLSupported(failIfMajorPerformanceCaveat);\n }\n return isWebGLSupportedCache[failIfMajorPerformanceCaveat];\n }\n isSupported.webGLContextAttributes = {\n antialias: false,\n alpha: true,\n stencil: true,\n depth: true\n };\n function getWebGLContext(failIfMajorPerformanceCaveat) {\n var canvas = document.createElement(\"canvas\");\n var attributes = Object.create(isSupported.webGLContextAttributes);\n attributes.failIfMajorPerformanceCaveat = failIfMajorPerformanceCaveat;\n if (canvas.probablySupportsContext) {\n return canvas.probablySupportsContext(\"webgl\", attributes) || canvas.probablySupportsContext(\"experimental-webgl\", attributes);\n } else if (canvas.supportsContext) {\n return canvas.supportsContext(\"webgl\", attributes) || canvas.supportsContext(\"experimental-webgl\", attributes);\n } else {\n return canvas.getContext(\"webgl\", attributes) || canvas.getContext(\"experimental-webgl\", attributes);\n }\n }\n function isWebGLSupported(failIfMajorPerformanceCaveat) {\n var gl2 = getWebGLContext(failIfMajorPerformanceCaveat);\n if (!gl2) {\n return false;\n }\n var shader = gl2.createShader(gl2.VERTEX_SHADER);\n if (!shader || gl2.isContextLost()) {\n return false;\n }\n gl2.shaderSource(shader, \"void main() {}\");\n gl2.compileShader(shader);\n return gl2.getShaderParameter(shader, gl2.COMPILE_STATUS) === true;\n }\n });\n var DOM = {};\n DOM.create = function(tagName, className, container) {\n var el = performance2.window.document.createElement(tagName);\n if (className !== void 0) {\n el.className = className;\n }\n if (container) {\n container.appendChild(el);\n }\n return el;\n };\n DOM.createNS = function(namespaceURI, tagName) {\n var el = performance2.window.document.createElementNS(namespaceURI, tagName);\n return el;\n };\n var docStyle = performance2.window.document && performance2.window.document.documentElement.style;\n function testProp(props) {\n if (!docStyle) {\n return props[0];\n }\n for (var i = 0; i < props.length; i++) {\n if (props[i] in docStyle) {\n return props[i];\n }\n }\n return props[0];\n }\n var selectProp = testProp([\n \"userSelect\",\n \"MozUserSelect\",\n \"WebkitUserSelect\",\n \"msUserSelect\"\n ]);\n var userSelect;\n DOM.disableDrag = function() {\n if (docStyle && selectProp) {\n userSelect = docStyle[selectProp];\n docStyle[selectProp] = \"none\";\n }\n };\n DOM.enableDrag = function() {\n if (docStyle && selectProp) {\n docStyle[selectProp] = userSelect;\n }\n };\n var transformProp = testProp([\n \"transform\",\n \"WebkitTransform\"\n ]);\n DOM.setTransform = function(el, value) {\n el.style[transformProp] = value;\n };\n var passiveSupported = false;\n try {\n var options$1 = Object.defineProperty({}, \"passive\", {\n get: function get() {\n passiveSupported = true;\n }\n });\n performance2.window.addEventListener(\"test\", options$1, options$1);\n performance2.window.removeEventListener(\"test\", options$1, options$1);\n } catch (err) {\n passiveSupported = false;\n }\n DOM.addEventListener = function(target, type, callback, options) {\n if (options === void 0)\n options = {};\n if (\"passive\" in options && passiveSupported) {\n target.addEventListener(type, callback, options);\n } else {\n target.addEventListener(type, callback, options.capture);\n }\n };\n DOM.removeEventListener = function(target, type, callback, options) {\n if (options === void 0)\n options = {};\n if (\"passive\" in options && passiveSupported) {\n target.removeEventListener(type, callback, options);\n } else {\n target.removeEventListener(type, callback, options.capture);\n }\n };\n var suppressClick = function(e) {\n e.preventDefault();\n e.stopPropagation();\n performance2.window.removeEventListener(\"click\", suppressClick, true);\n };\n DOM.suppressClick = function() {\n performance2.window.addEventListener(\"click\", suppressClick, true);\n performance2.window.setTimeout(function() {\n performance2.window.removeEventListener(\"click\", suppressClick, true);\n }, 0);\n };\n DOM.mousePos = function(el, e) {\n var rect = el.getBoundingClientRect();\n return new performance2.Point(e.clientX - rect.left - el.clientLeft, e.clientY - rect.top - el.clientTop);\n };\n DOM.touchPos = function(el, touches) {\n var rect = el.getBoundingClientRect(), points = [];\n for (var i = 0; i < touches.length; i++) {\n points.push(new performance2.Point(touches[i].clientX - rect.left - el.clientLeft, touches[i].clientY - rect.top - el.clientTop));\n }\n return points;\n };\n DOM.mouseButton = function(e) {\n if (typeof performance2.window.InstallTrigger !== \"undefined\" && e.button === 2 && e.ctrlKey && performance2.window.navigator.platform.toUpperCase().indexOf(\"MAC\") >= 0) {\n return 0;\n }\n return e.button;\n };\n DOM.remove = function(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n };\n function loadSprite(baseURL, requestManager, callback) {\n var json, image, error;\n var format = performance2.browser.devicePixelRatio > 1 ? \"@2x\" : \"\";\n var jsonRequest = performance2.getJSON(requestManager.transformRequest(requestManager.normalizeSpriteURL(baseURL, format, \".json\"), performance2.ResourceType.SpriteJSON), function(err, data) {\n jsonRequest = null;\n if (!error) {\n error = err;\n json = data;\n maybeComplete();\n }\n });\n var imageRequest = performance2.getImage(requestManager.transformRequest(requestManager.normalizeSpriteURL(baseURL, format, \".png\"), performance2.ResourceType.SpriteImage), function(err, img) {\n imageRequest = null;\n if (!error) {\n error = err;\n image = img;\n maybeComplete();\n }\n });\n function maybeComplete() {\n if (error) {\n callback(error);\n } else if (json && image) {\n var imageData = performance2.browser.getImageData(image);\n var result = {};\n for (var id in json) {\n var ref = json[id];\n var width = ref.width;\n var height = ref.height;\n var x = ref.x;\n var y = ref.y;\n var sdf = ref.sdf;\n var pixelRatio = ref.pixelRatio;\n var stretchX = ref.stretchX;\n var stretchY = ref.stretchY;\n var content = ref.content;\n var data = new performance2.RGBAImage({\n width,\n height\n });\n performance2.RGBAImage.copy(imageData, data, {\n x,\n y\n }, {\n x: 0,\n y: 0\n }, {\n width,\n height\n });\n result[id] = {\n data,\n pixelRatio,\n sdf,\n stretchX,\n stretchY,\n content\n };\n }\n callback(null, result);\n }\n }\n return {\n cancel: function cancel() {\n if (jsonRequest) {\n jsonRequest.cancel();\n jsonRequest = null;\n }\n if (imageRequest) {\n imageRequest.cancel();\n imageRequest = null;\n }\n }\n };\n }\n function renderStyleImage(image) {\n var userImage = image.userImage;\n if (userImage && userImage.render) {\n var updated = userImage.render();\n if (updated) {\n image.data.replace(new Uint8Array(userImage.data.buffer));\n return true;\n }\n }\n return false;\n }\n var padding = 1;\n var ImageManager = function(Evented) {\n function ImageManager2() {\n Evented.call(this);\n this.images = {};\n this.updatedImages = {};\n this.callbackDispatchedThisFrame = {};\n this.loaded = false;\n this.requestors = [];\n this.patterns = {};\n this.atlasImage = new performance2.RGBAImage({\n width: 1,\n height: 1\n });\n this.dirty = true;\n }\n if (Evented)\n ImageManager2.__proto__ = Evented;\n ImageManager2.prototype = Object.create(Evented && Evented.prototype);\n ImageManager2.prototype.constructor = ImageManager2;\n ImageManager2.prototype.isLoaded = function isLoaded() {\n return this.loaded;\n };\n ImageManager2.prototype.setLoaded = function setLoaded(loaded) {\n if (this.loaded === loaded) {\n return;\n }\n this.loaded = loaded;\n if (loaded) {\n for (var i = 0, list = this.requestors; i < list.length; i += 1) {\n var ref = list[i];\n var ids = ref.ids;\n var callback = ref.callback;\n this._notify(ids, callback);\n }\n this.requestors = [];\n }\n };\n ImageManager2.prototype.getImage = function getImage(id) {\n return this.images[id];\n };\n ImageManager2.prototype.addImage = function addImage(id, image) {\n if (this._validate(id, image)) {\n this.images[id] = image;\n }\n };\n ImageManager2.prototype._validate = function _validate(id, image) {\n var valid = true;\n if (!this._validateStretch(image.stretchX, image.data && image.data.width)) {\n this.fire(new performance2.ErrorEvent(new Error('Image \"' + id + '\" has invalid \"stretchX\" value')));\n valid = false;\n }\n if (!this._validateStretch(image.stretchY, image.data && image.data.height)) {\n this.fire(new performance2.ErrorEvent(new Error('Image \"' + id + '\" has invalid \"stretchY\" value')));\n valid = false;\n }\n if (!this._validateContent(image.content, image)) {\n this.fire(new performance2.ErrorEvent(new Error('Image \"' + id + '\" has invalid \"content\" value')));\n valid = false;\n }\n return valid;\n };\n ImageManager2.prototype._validateStretch = function _validateStretch(stretch, size) {\n if (!stretch) {\n return true;\n }\n var last = 0;\n for (var i = 0, list = stretch; i < list.length; i += 1) {\n var part = list[i];\n if (part[0] < last || part[1] < part[0] || size < part[1]) {\n return false;\n }\n last = part[1];\n }\n return true;\n };\n ImageManager2.prototype._validateContent = function _validateContent(content, image) {\n if (!content) {\n return true;\n }\n if (content.length !== 4) {\n return false;\n }\n if (content[0] < 0 || image.data.width < content[0]) {\n return false;\n }\n if (content[1] < 0 || image.data.height < content[1]) {\n return false;\n }\n if (content[2] < 0 || image.data.width < content[2]) {\n return false;\n }\n if (content[3] < 0 || image.data.height < content[3]) {\n return false;\n }\n if (content[2] < content[0]) {\n return false;\n }\n if (content[3] < content[1]) {\n return false;\n }\n return true;\n };\n ImageManager2.prototype.updateImage = function updateImage(id, image) {\n var oldImage = this.images[id];\n image.version = oldImage.version + 1;\n this.images[id] = image;\n this.updatedImages[id] = true;\n };\n ImageManager2.prototype.removeImage = function removeImage(id) {\n var image = this.images[id];\n delete this.images[id];\n delete this.patterns[id];\n if (image.userImage && image.userImage.onRemove) {\n image.userImage.onRemove();\n }\n };\n ImageManager2.prototype.listImages = function listImages() {\n return Object.keys(this.images);\n };\n ImageManager2.prototype.getImages = function getImages(ids, callback) {\n var hasAllDependencies = true;\n if (!this.isLoaded()) {\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n if (!this.images[id]) {\n hasAllDependencies = false;\n }\n }\n }\n if (this.isLoaded() || hasAllDependencies) {\n this._notify(ids, callback);\n } else {\n this.requestors.push({\n ids,\n callback\n });\n }\n };\n ImageManager2.prototype._notify = function _notify(ids, callback) {\n var response = {};\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n if (!this.images[id]) {\n this.fire(new performance2.Event(\"styleimagemissing\", { id }));\n }\n var image = this.images[id];\n if (image) {\n response[id] = {\n data: image.data.clone(),\n pixelRatio: image.pixelRatio,\n sdf: image.sdf,\n version: image.version,\n stretchX: image.stretchX,\n stretchY: image.stretchY,\n content: image.content,\n hasRenderCallback: Boolean(image.userImage && image.userImage.render)\n };\n } else {\n performance2.warnOnce('Image \"' + id + '\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.');\n }\n }\n callback(null, response);\n };\n ImageManager2.prototype.getPixelSize = function getPixelSize() {\n var ref = this.atlasImage;\n var width = ref.width;\n var height = ref.height;\n return {\n width,\n height\n };\n };\n ImageManager2.prototype.getPattern = function getPattern(id) {\n var pattern = this.patterns[id];\n var image = this.getImage(id);\n if (!image) {\n return null;\n }\n if (pattern && pattern.position.version === image.version) {\n return pattern.position;\n }\n if (!pattern) {\n var w = image.data.width + padding * 2;\n var h = image.data.height + padding * 2;\n var bin = {\n w,\n h,\n x: 0,\n y: 0\n };\n var position = new performance2.ImagePosition(bin, image);\n this.patterns[id] = {\n bin,\n position\n };\n } else {\n pattern.position.version = image.version;\n }\n this._updatePatternAtlas();\n return this.patterns[id].position;\n };\n ImageManager2.prototype.bind = function bind(context) {\n var gl2 = context.gl;\n if (!this.atlasTexture) {\n this.atlasTexture = new performance2.Texture(context, this.atlasImage, gl2.RGBA);\n } else if (this.dirty) {\n this.atlasTexture.update(this.atlasImage);\n this.dirty = false;\n }\n this.atlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n };\n ImageManager2.prototype._updatePatternAtlas = function _updatePatternAtlas() {\n var bins = [];\n for (var id in this.patterns) {\n bins.push(this.patterns[id].bin);\n }\n var ref = performance2.potpack(bins);\n var w = ref.w;\n var h = ref.h;\n var dst = this.atlasImage;\n dst.resize({\n width: w || 1,\n height: h || 1\n });\n for (var id$1 in this.patterns) {\n var ref$1 = this.patterns[id$1];\n var bin = ref$1.bin;\n var x = bin.x + padding;\n var y = bin.y + padding;\n var src = this.images[id$1].data;\n var w$1 = src.width;\n var h$1 = src.height;\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: 0\n }, {\n x,\n y\n }, {\n width: w$1,\n height: h$1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: h$1 - 1\n }, {\n x,\n y: y - 1\n }, {\n width: w$1,\n height: 1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: 0\n }, {\n x,\n y: y + h$1\n }, {\n width: w$1,\n height: 1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: w$1 - 1,\n y: 0\n }, {\n x: x - 1,\n y\n }, {\n width: 1,\n height: h$1\n });\n performance2.RGBAImage.copy(src, dst, {\n x: 0,\n y: 0\n }, {\n x: x + w$1,\n y\n }, {\n width: 1,\n height: h$1\n });\n }\n this.dirty = true;\n };\n ImageManager2.prototype.beginFrame = function beginFrame() {\n this.callbackDispatchedThisFrame = {};\n };\n ImageManager2.prototype.dispatchRenderCallbacks = function dispatchRenderCallbacks(ids) {\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n if (this.callbackDispatchedThisFrame[id]) {\n continue;\n }\n this.callbackDispatchedThisFrame[id] = true;\n var image = this.images[id];\n var updated = renderStyleImage(image);\n if (updated) {\n this.updateImage(id, image);\n }\n }\n };\n return ImageManager2;\n }(performance2.Evented);\n function loadGlyphRange(fontstack, range, urlTemplate, requestManager, callback) {\n var begin = range * 256;\n var end = begin + 255;\n var request = requestManager.transformRequest(requestManager.normalizeGlyphsURL(urlTemplate).replace(\"{fontstack}\", fontstack).replace(\"{range}\", begin + \"-\" + end), performance2.ResourceType.Glyphs);\n performance2.getArrayBuffer(request, function(err, data) {\n if (err) {\n callback(err);\n } else if (data) {\n var glyphs = {};\n for (var i = 0, list = performance2.parseGlyphPBF(data); i < list.length; i += 1) {\n var glyph = list[i];\n glyphs[glyph.id] = glyph;\n }\n callback(null, glyphs);\n }\n });\n }\n var tinySdf = TinySDF;\n var default_1 = TinySDF;\n var INF = 1e20;\n function TinySDF(fontSize, buffer, radius, cutoff, fontFamily, fontWeight) {\n this.fontSize = fontSize || 24;\n this.buffer = buffer === void 0 ? 3 : buffer;\n this.cutoff = cutoff || 0.25;\n this.fontFamily = fontFamily || \"sans-serif\";\n this.fontWeight = fontWeight || \"normal\";\n this.radius = radius || 8;\n var size = this.size = this.fontSize + this.buffer * 2;\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = size;\n this.ctx = this.canvas.getContext(\"2d\");\n this.ctx.font = this.fontWeight + \" \" + this.fontSize + \"px \" + this.fontFamily;\n this.ctx.textBaseline = \"middle\";\n this.ctx.fillStyle = \"black\";\n this.gridOuter = new Float64Array(size * size);\n this.gridInner = new Float64Array(size * size);\n this.f = new Float64Array(size);\n this.d = new Float64Array(size);\n this.z = new Float64Array(size + 1);\n this.v = new Int16Array(size);\n this.middle = Math.round(size / 2 * (navigator.userAgent.indexOf(\"Gecko/\") >= 0 ? 1.2 : 1));\n }\n TinySDF.prototype.draw = function(char) {\n this.ctx.clearRect(0, 0, this.size, this.size);\n this.ctx.fillText(char, this.buffer, this.middle);\n var imgData = this.ctx.getImageData(0, 0, this.size, this.size);\n var alphaChannel = new Uint8ClampedArray(this.size * this.size);\n for (var i = 0; i < this.size * this.size; i++) {\n var a = imgData.data[i * 4 + 3] / 255;\n this.gridOuter[i] = a === 1 ? 0 : a === 0 ? INF : Math.pow(Math.max(0, 0.5 - a), 2);\n this.gridInner[i] = a === 1 ? INF : a === 0 ? 0 : Math.pow(Math.max(0, a - 0.5), 2);\n }\n edt(this.gridOuter, this.size, this.size, this.f, this.d, this.v, this.z);\n edt(this.gridInner, this.size, this.size, this.f, this.d, this.v, this.z);\n for (i = 0; i < this.size * this.size; i++) {\n var d = this.gridOuter[i] - this.gridInner[i];\n alphaChannel[i] = Math.max(0, Math.min(255, Math.round(255 - 255 * (d / this.radius + this.cutoff))));\n }\n return alphaChannel;\n };\n function edt(data, width, height, f, d, v, z) {\n for (var x = 0; x < width; x++) {\n for (var y = 0; y < height; y++) {\n f[y] = data[y * width + x];\n }\n edt1d(f, d, v, z, height);\n for (y = 0; y < height; y++) {\n data[y * width + x] = d[y];\n }\n }\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n f[x] = data[y * width + x];\n }\n edt1d(f, d, v, z, width);\n for (x = 0; x < width; x++) {\n data[y * width + x] = Math.sqrt(d[x]);\n }\n }\n }\n function edt1d(f, d, v, z, n) {\n v[0] = 0;\n z[0] = -INF;\n z[1] = +INF;\n for (var q = 1, k = 0; q < n; q++) {\n var s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n while (s <= z[k]) {\n k--;\n s = (f[q] + q * q - (f[v[k]] + v[k] * v[k])) / (2 * q - 2 * v[k]);\n }\n k++;\n v[k] = q;\n z[k] = s;\n z[k + 1] = +INF;\n }\n for (q = 0, k = 0; q < n; q++) {\n while (z[k + 1] < q) {\n k++;\n }\n d[q] = (q - v[k]) * (q - v[k]) + f[v[k]];\n }\n }\n tinySdf.default = default_1;\n var GlyphManager = function GlyphManager2(requestManager, localIdeographFontFamily) {\n this.requestManager = requestManager;\n this.localIdeographFontFamily = localIdeographFontFamily;\n this.entries = {};\n };\n GlyphManager.prototype.setURL = function setURL(url) {\n this.url = url;\n };\n GlyphManager.prototype.getGlyphs = function getGlyphs(glyphs, callback) {\n var this$1 = this;\n var all = [];\n for (var stack in glyphs) {\n for (var i = 0, list = glyphs[stack]; i < list.length; i += 1) {\n var id = list[i];\n all.push({\n stack,\n id\n });\n }\n }\n performance2.asyncAll(all, function(ref, callback2) {\n var stack2 = ref.stack;\n var id2 = ref.id;\n var entry = this$1.entries[stack2];\n if (!entry) {\n entry = this$1.entries[stack2] = {\n glyphs: {},\n requests: {},\n ranges: {}\n };\n }\n var glyph = entry.glyphs[id2];\n if (glyph !== void 0) {\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph\n });\n return;\n }\n glyph = this$1._tinySDF(entry, stack2, id2);\n if (glyph) {\n entry.glyphs[id2] = glyph;\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph\n });\n return;\n }\n var range = Math.floor(id2 / 256);\n if (range * 256 > 65535) {\n callback2(new Error(\"glyphs > 65535 not supported\"));\n return;\n }\n if (entry.ranges[range]) {\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph\n });\n return;\n }\n var requests = entry.requests[range];\n if (!requests) {\n requests = entry.requests[range] = [];\n GlyphManager.loadGlyphRange(stack2, range, this$1.url, this$1.requestManager, function(err, response) {\n if (response) {\n for (var id3 in response) {\n if (!this$1._doesCharSupportLocalGlyph(+id3)) {\n entry.glyphs[+id3] = response[+id3];\n }\n }\n entry.ranges[range] = true;\n }\n for (var i2 = 0, list2 = requests; i2 < list2.length; i2 += 1) {\n var cb = list2[i2];\n cb(err, response);\n }\n delete entry.requests[range];\n });\n }\n requests.push(function(err, result) {\n if (err) {\n callback2(err);\n } else if (result) {\n callback2(null, {\n stack: stack2,\n id: id2,\n glyph: result[id2] || null\n });\n }\n });\n }, function(err, glyphs2) {\n if (err) {\n callback(err);\n } else if (glyphs2) {\n var result = {};\n for (var i2 = 0, list2 = glyphs2; i2 < list2.length; i2 += 1) {\n var ref = list2[i2];\n var stack2 = ref.stack;\n var id2 = ref.id;\n var glyph = ref.glyph;\n (result[stack2] || (result[stack2] = {}))[id2] = glyph && {\n id: glyph.id,\n bitmap: glyph.bitmap.clone(),\n metrics: glyph.metrics\n };\n }\n callback(null, result);\n }\n });\n };\n GlyphManager.prototype._doesCharSupportLocalGlyph = function _doesCharSupportLocalGlyph(id) {\n return !!this.localIdeographFontFamily && (performance2.isChar[\"CJK Unified Ideographs\"](id) || performance2.isChar[\"Hangul Syllables\"](id) || performance2.isChar[\"Hiragana\"](id) || performance2.isChar[\"Katakana\"](id));\n };\n GlyphManager.prototype._tinySDF = function _tinySDF(entry, stack, id) {\n var family = this.localIdeographFontFamily;\n if (!family) {\n return;\n }\n if (!this._doesCharSupportLocalGlyph(id)) {\n return;\n }\n var tinySDF = entry.tinySDF;\n if (!tinySDF) {\n var fontWeight = \"400\";\n if (/bold/i.test(stack)) {\n fontWeight = \"900\";\n } else if (/medium/i.test(stack)) {\n fontWeight = \"500\";\n } else if (/light/i.test(stack)) {\n fontWeight = \"200\";\n }\n tinySDF = entry.tinySDF = new GlyphManager.TinySDF(24, 3, 8, 0.25, family, fontWeight);\n }\n return {\n id,\n bitmap: new performance2.AlphaImage({\n width: 30,\n height: 30\n }, tinySDF.draw(String.fromCharCode(id))),\n metrics: {\n width: 24,\n height: 24,\n left: 0,\n top: -8,\n advance: 24\n }\n };\n };\n GlyphManager.loadGlyphRange = loadGlyphRange;\n GlyphManager.TinySDF = tinySdf;\n var LightPositionProperty = function LightPositionProperty2() {\n this.specification = performance2.styleSpec.light.position;\n };\n LightPositionProperty.prototype.possiblyEvaluate = function possiblyEvaluate(value, parameters) {\n return performance2.sphericalToCartesian(value.expression.evaluate(parameters));\n };\n LightPositionProperty.prototype.interpolate = function interpolate$1(a, b, t) {\n return {\n x: performance2.number(a.x, b.x, t),\n y: performance2.number(a.y, b.y, t),\n z: performance2.number(a.z, b.z, t)\n };\n };\n var properties = new performance2.Properties({\n \"anchor\": new performance2.DataConstantProperty(performance2.styleSpec.light.anchor),\n \"position\": new LightPositionProperty(),\n \"color\": new performance2.DataConstantProperty(performance2.styleSpec.light.color),\n \"intensity\": new performance2.DataConstantProperty(performance2.styleSpec.light.intensity)\n });\n var TRANSITION_SUFFIX = \"-transition\";\n var Light = function(Evented) {\n function Light2(lightOptions) {\n Evented.call(this);\n this._transitionable = new performance2.Transitionable(properties);\n this.setLight(lightOptions);\n this._transitioning = this._transitionable.untransitioned();\n }\n if (Evented)\n Light2.__proto__ = Evented;\n Light2.prototype = Object.create(Evented && Evented.prototype);\n Light2.prototype.constructor = Light2;\n Light2.prototype.getLight = function getLight() {\n return this._transitionable.serialize();\n };\n Light2.prototype.setLight = function setLight(light, options) {\n if (options === void 0)\n options = {};\n if (this._validate(performance2.validateLight, light, options)) {\n return;\n }\n for (var name2 in light) {\n var value = light[name2];\n if (performance2.endsWith(name2, TRANSITION_SUFFIX)) {\n this._transitionable.setTransition(name2.slice(0, -TRANSITION_SUFFIX.length), value);\n } else {\n this._transitionable.setValue(name2, value);\n }\n }\n };\n Light2.prototype.updateTransitions = function updateTransitions(parameters) {\n this._transitioning = this._transitionable.transitioned(parameters, this._transitioning);\n };\n Light2.prototype.hasTransition = function hasTransition() {\n return this._transitioning.hasTransition();\n };\n Light2.prototype.recalculate = function recalculate(parameters) {\n this.properties = this._transitioning.possiblyEvaluate(parameters);\n };\n Light2.prototype._validate = function _validate(validate, value, options) {\n if (options && options.validate === false) {\n return false;\n }\n return performance2.emitValidationErrors(this, validate.call(performance2.validateStyle, performance2.extend({\n value,\n style: {\n glyphs: true,\n sprite: true\n },\n styleSpec: performance2.styleSpec\n })));\n };\n return Light2;\n }(performance2.Evented);\n var LineAtlas = function LineAtlas2(width, height) {\n this.width = width;\n this.height = height;\n this.nextRow = 0;\n this.data = new Uint8Array(this.width * this.height);\n this.dashEntry = {};\n };\n LineAtlas.prototype.getDash = function getDash(dasharray, round) {\n var key = dasharray.join(\",\") + String(round);\n if (!this.dashEntry[key]) {\n this.dashEntry[key] = this.addDash(dasharray, round);\n }\n return this.dashEntry[key];\n };\n LineAtlas.prototype.getDashRanges = function getDashRanges(dasharray, lineAtlasWidth, stretch) {\n var oddDashArray = dasharray.length % 2 === 1;\n var ranges = [];\n var left = oddDashArray ? -dasharray[dasharray.length - 1] * stretch : 0;\n var right = dasharray[0] * stretch;\n var isDash = true;\n ranges.push({\n left,\n right,\n isDash,\n zeroLength: dasharray[0] === 0\n });\n var currentDashLength = dasharray[0];\n for (var i = 1; i < dasharray.length; i++) {\n isDash = !isDash;\n var dashLength = dasharray[i];\n left = currentDashLength * stretch;\n currentDashLength += dashLength;\n right = currentDashLength * stretch;\n ranges.push({\n left,\n right,\n isDash,\n zeroLength: dashLength === 0\n });\n }\n return ranges;\n };\n LineAtlas.prototype.addRoundDash = function addRoundDash(ranges, stretch, n) {\n var halfStretch = stretch / 2;\n for (var y = -n; y <= n; y++) {\n var row = this.nextRow + n + y;\n var index = this.width * row;\n var currIndex = 0;\n var range = ranges[currIndex];\n for (var x = 0; x < this.width; x++) {\n if (x / range.right > 1) {\n range = ranges[++currIndex];\n }\n var distLeft = Math.abs(x - range.left);\n var distRight = Math.abs(x - range.right);\n var minDist = Math.min(distLeft, distRight);\n var signedDistance = void 0;\n var distMiddle = y / n * (halfStretch + 1);\n if (range.isDash) {\n var distEdge = halfStretch - Math.abs(distMiddle);\n signedDistance = Math.sqrt(minDist * minDist + distEdge * distEdge);\n } else {\n signedDistance = halfStretch - Math.sqrt(minDist * minDist + distMiddle * distMiddle);\n }\n this.data[index + x] = Math.max(0, Math.min(255, signedDistance + 128));\n }\n }\n };\n LineAtlas.prototype.addRegularDash = function addRegularDash(ranges) {\n for (var i = ranges.length - 1; i >= 0; --i) {\n var part = ranges[i];\n var next = ranges[i + 1];\n if (part.zeroLength) {\n ranges.splice(i, 1);\n } else if (next && next.isDash === part.isDash) {\n next.left = part.left;\n ranges.splice(i, 1);\n }\n }\n var first = ranges[0];\n var last = ranges[ranges.length - 1];\n if (first.isDash === last.isDash) {\n first.left = last.left - this.width;\n last.right = first.right + this.width;\n }\n var index = this.width * this.nextRow;\n var currIndex = 0;\n var range = ranges[currIndex];\n for (var x = 0; x < this.width; x++) {\n if (x / range.right > 1) {\n range = ranges[++currIndex];\n }\n var distLeft = Math.abs(x - range.left);\n var distRight = Math.abs(x - range.right);\n var minDist = Math.min(distLeft, distRight);\n var signedDistance = range.isDash ? minDist : -minDist;\n this.data[index + x] = Math.max(0, Math.min(255, signedDistance + 128));\n }\n };\n LineAtlas.prototype.addDash = function addDash(dasharray, round) {\n var n = round ? 7 : 0;\n var height = 2 * n + 1;\n if (this.nextRow + height > this.height) {\n performance2.warnOnce(\"LineAtlas out of space\");\n return null;\n }\n var length = 0;\n for (var i = 0; i < dasharray.length; i++) {\n length += dasharray[i];\n }\n if (length !== 0) {\n var stretch = this.width / length;\n var ranges = this.getDashRanges(dasharray, this.width, stretch);\n if (round) {\n this.addRoundDash(ranges, stretch, n);\n } else {\n this.addRegularDash(ranges);\n }\n }\n var dashEntry = {\n y: (this.nextRow + n + 0.5) / this.height,\n height: 2 * n / this.height,\n width: length\n };\n this.nextRow += height;\n this.dirty = true;\n return dashEntry;\n };\n LineAtlas.prototype.bind = function bind(context) {\n var gl2 = context.gl;\n if (!this.texture) {\n this.texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.REPEAT);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.REPEAT);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.LINEAR);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.LINEAR);\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.ALPHA, this.width, this.height, 0, gl2.ALPHA, gl2.UNSIGNED_BYTE, this.data);\n } else {\n gl2.bindTexture(gl2.TEXTURE_2D, this.texture);\n if (this.dirty) {\n this.dirty = false;\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, 0, 0, this.width, this.height, gl2.ALPHA, gl2.UNSIGNED_BYTE, this.data);\n }\n }\n };\n var Dispatcher = function Dispatcher2(workerPool, parent) {\n this.workerPool = workerPool;\n this.actors = [];\n this.currentActor = 0;\n this.id = performance2.uniqueId();\n var workers = this.workerPool.acquire(this.id);\n for (var i = 0; i < workers.length; i++) {\n var worker2 = workers[i];\n var actor = new Dispatcher2.Actor(worker2, parent, this.id);\n actor.name = \"Worker \" + i;\n this.actors.push(actor);\n }\n };\n Dispatcher.prototype.broadcast = function broadcast(type, data, cb) {\n cb = cb || function() {\n };\n performance2.asyncAll(this.actors, function(actor, done) {\n actor.send(type, data, done);\n }, cb);\n };\n Dispatcher.prototype.getActor = function getActor() {\n this.currentActor = (this.currentActor + 1) % this.actors.length;\n return this.actors[this.currentActor];\n };\n Dispatcher.prototype.remove = function remove() {\n this.actors.forEach(function(actor) {\n actor.remove();\n });\n this.actors = [];\n this.workerPool.release(this.id);\n };\n Dispatcher.Actor = performance2.Actor;\n function loadTileJSON(options, requestManager, callback) {\n var loaded = function(err, tileJSON) {\n if (err) {\n return callback(err);\n } else if (tileJSON) {\n var result = performance2.pick(performance2.extend(tileJSON, options), [\n \"tiles\",\n \"minzoom\",\n \"maxzoom\",\n \"attribution\",\n \"mapbox_logo\",\n \"bounds\",\n \"scheme\",\n \"tileSize\",\n \"encoding\"\n ]);\n if (tileJSON.vector_layers) {\n result.vectorLayers = tileJSON.vector_layers;\n result.vectorLayerIds = result.vectorLayers.map(function(layer) {\n return layer.id;\n });\n }\n result.tiles = requestManager.canonicalizeTileset(result, options.url);\n callback(null, result);\n }\n };\n if (options.url) {\n return performance2.getJSON(requestManager.transformRequest(requestManager.normalizeSourceURL(options.url), performance2.ResourceType.Source), loaded);\n } else {\n return performance2.browser.frame(function() {\n return loaded(null, options);\n });\n }\n }\n var TileBounds = function TileBounds2(bounds, minzoom, maxzoom) {\n this.bounds = performance2.LngLatBounds.convert(this.validateBounds(bounds));\n this.minzoom = minzoom || 0;\n this.maxzoom = maxzoom || 24;\n };\n TileBounds.prototype.validateBounds = function validateBounds(bounds) {\n if (!Array.isArray(bounds) || bounds.length !== 4) {\n return [\n -180,\n -90,\n 180,\n 90\n ];\n }\n return [\n Math.max(-180, bounds[0]),\n Math.max(-90, bounds[1]),\n Math.min(180, bounds[2]),\n Math.min(90, bounds[3])\n ];\n };\n TileBounds.prototype.contains = function contains(tileID) {\n var worldSize = Math.pow(2, tileID.z);\n var level = {\n minX: Math.floor(performance2.mercatorXfromLng(this.bounds.getWest()) * worldSize),\n minY: Math.floor(performance2.mercatorYfromLat(this.bounds.getNorth()) * worldSize),\n maxX: Math.ceil(performance2.mercatorXfromLng(this.bounds.getEast()) * worldSize),\n maxY: Math.ceil(performance2.mercatorYfromLat(this.bounds.getSouth()) * worldSize)\n };\n var hit = tileID.x >= level.minX && tileID.x < level.maxX && tileID.y >= level.minY && tileID.y < level.maxY;\n return hit;\n };\n var VectorTileSource = function(Evented) {\n function VectorTileSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.type = \"vector\";\n this.minzoom = 0;\n this.maxzoom = 22;\n this.scheme = \"xyz\";\n this.tileSize = 512;\n this.reparseOverscaled = true;\n this.isTileClipped = true;\n this._loaded = false;\n performance2.extend(this, performance2.pick(options, [\n \"url\",\n \"scheme\",\n \"tileSize\",\n \"promoteId\"\n ]));\n this._options = performance2.extend({ type: \"vector\" }, options);\n this._collectResourceTiming = options.collectResourceTiming;\n if (this.tileSize !== 512) {\n throw new Error(\"vector tile sources must have a tileSize of 512\");\n }\n this.setEventedParent(eventedParent);\n }\n if (Evented)\n VectorTileSource2.__proto__ = Evented;\n VectorTileSource2.prototype = Object.create(Evented && Evented.prototype);\n VectorTileSource2.prototype.constructor = VectorTileSource2;\n VectorTileSource2.prototype.load = function load() {\n var this$1 = this;\n this._loaded = false;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._tileJSONRequest = loadTileJSON(this._options, this.map._requestManager, function(err, tileJSON) {\n this$1._tileJSONRequest = null;\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (tileJSON) {\n performance2.extend(this$1, tileJSON);\n if (tileJSON.bounds) {\n this$1.tileBounds = new TileBounds(tileJSON.bounds, this$1.minzoom, this$1.maxzoom);\n }\n performance2.postTurnstileEvent(tileJSON.tiles, this$1.map._requestManager._customAccessToken);\n performance2.postMapLoadEvent(tileJSON.tiles, this$1.map._getMapId(), this$1.map._requestManager._skuToken, this$1.map._requestManager._customAccessToken);\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n }));\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"content\"\n }));\n }\n });\n };\n VectorTileSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n VectorTileSource2.prototype.hasTile = function hasTile(tileID) {\n return !this.tileBounds || this.tileBounds.contains(tileID.canonical);\n };\n VectorTileSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n VectorTileSource2.prototype.setSourceProperty = function setSourceProperty(callback) {\n if (this._tileJSONRequest) {\n this._tileJSONRequest.cancel();\n }\n callback();\n var sourceCache = this.map.style.sourceCaches[this.id];\n sourceCache.clearTiles();\n this.load();\n };\n VectorTileSource2.prototype.setTiles = function setTiles(tiles) {\n var this$1 = this;\n this.setSourceProperty(function() {\n this$1._options.tiles = tiles;\n });\n return this;\n };\n VectorTileSource2.prototype.setUrl = function setUrl(url) {\n var this$1 = this;\n this.setSourceProperty(function() {\n this$1.url = url;\n this$1._options.url = url;\n });\n return this;\n };\n VectorTileSource2.prototype.onRemove = function onRemove() {\n if (this._tileJSONRequest) {\n this._tileJSONRequest.cancel();\n this._tileJSONRequest = null;\n }\n };\n VectorTileSource2.prototype.serialize = function serialize() {\n return performance2.extend({}, this._options);\n };\n VectorTileSource2.prototype.loadTile = function loadTile(tile, callback) {\n var url = this.map._requestManager.normalizeTileURL(tile.tileID.canonical.url(this.tiles, this.scheme));\n var params = {\n request: this.map._requestManager.transformRequest(url, performance2.ResourceType.Tile),\n uid: tile.uid,\n tileID: tile.tileID,\n zoom: tile.tileID.overscaledZ,\n tileSize: this.tileSize * tile.tileID.overscaleFactor(),\n type: this.type,\n source: this.id,\n pixelRatio: performance2.browser.devicePixelRatio,\n showCollisionBoxes: this.map.showCollisionBoxes,\n promoteId: this.promoteId\n };\n params.request.collectResourceTiming = this._collectResourceTiming;\n if (!tile.actor || tile.state === \"expired\") {\n tile.actor = this.dispatcher.getActor();\n tile.request = tile.actor.send(\"loadTile\", params, done.bind(this));\n } else if (tile.state === \"loading\") {\n tile.reloadCallback = callback;\n } else {\n tile.request = tile.actor.send(\"reloadTile\", params, done.bind(this));\n }\n function done(err, data) {\n delete tile.request;\n if (tile.aborted) {\n return callback(null);\n }\n if (err && err.status !== 404) {\n return callback(err);\n }\n if (data && data.resourceTiming) {\n tile.resourceTiming = data.resourceTiming;\n }\n if (this.map._refreshExpiredTiles && data) {\n tile.setExpiryData(data);\n }\n tile.loadVectorData(data, this.map.painter);\n performance2.cacheEntryPossiblyAdded(this.dispatcher);\n callback(null);\n if (tile.reloadCallback) {\n this.loadTile(tile, tile.reloadCallback);\n tile.reloadCallback = null;\n }\n }\n };\n VectorTileSource2.prototype.abortTile = function abortTile(tile) {\n if (tile.request) {\n tile.request.cancel();\n delete tile.request;\n }\n if (tile.actor) {\n tile.actor.send(\"abortTile\", {\n uid: tile.uid,\n type: this.type,\n source: this.id\n }, void 0);\n }\n };\n VectorTileSource2.prototype.unloadTile = function unloadTile(tile) {\n tile.unloadVectorData();\n if (tile.actor) {\n tile.actor.send(\"removeTile\", {\n uid: tile.uid,\n type: this.type,\n source: this.id\n }, void 0);\n }\n };\n VectorTileSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return VectorTileSource2;\n }(performance2.Evented);\n var RasterTileSource = function(Evented) {\n function RasterTileSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.setEventedParent(eventedParent);\n this.type = \"raster\";\n this.minzoom = 0;\n this.maxzoom = 22;\n this.roundZoom = true;\n this.scheme = \"xyz\";\n this.tileSize = 512;\n this._loaded = false;\n this._options = performance2.extend({ type: \"raster\" }, options);\n performance2.extend(this, performance2.pick(options, [\n \"url\",\n \"scheme\",\n \"tileSize\"\n ]));\n }\n if (Evented)\n RasterTileSource2.__proto__ = Evented;\n RasterTileSource2.prototype = Object.create(Evented && Evented.prototype);\n RasterTileSource2.prototype.constructor = RasterTileSource2;\n RasterTileSource2.prototype.load = function load() {\n var this$1 = this;\n this._loaded = false;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._tileJSONRequest = loadTileJSON(this._options, this.map._requestManager, function(err, tileJSON) {\n this$1._tileJSONRequest = null;\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (tileJSON) {\n performance2.extend(this$1, tileJSON);\n if (tileJSON.bounds) {\n this$1.tileBounds = new TileBounds(tileJSON.bounds, this$1.minzoom, this$1.maxzoom);\n }\n performance2.postTurnstileEvent(tileJSON.tiles);\n performance2.postMapLoadEvent(tileJSON.tiles, this$1.map._getMapId(), this$1.map._requestManager._skuToken);\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n }));\n this$1.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"content\"\n }));\n }\n });\n };\n RasterTileSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n RasterTileSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n RasterTileSource2.prototype.onRemove = function onRemove() {\n if (this._tileJSONRequest) {\n this._tileJSONRequest.cancel();\n this._tileJSONRequest = null;\n }\n };\n RasterTileSource2.prototype.serialize = function serialize() {\n return performance2.extend({}, this._options);\n };\n RasterTileSource2.prototype.hasTile = function hasTile(tileID) {\n return !this.tileBounds || this.tileBounds.contains(tileID.canonical);\n };\n RasterTileSource2.prototype.loadTile = function loadTile(tile, callback) {\n var this$1 = this;\n var url = this.map._requestManager.normalizeTileURL(tile.tileID.canonical.url(this.tiles, this.scheme), this.tileSize);\n tile.request = performance2.getImage(this.map._requestManager.transformRequest(url, performance2.ResourceType.Tile), function(err, img) {\n delete tile.request;\n if (tile.aborted) {\n tile.state = \"unloaded\";\n callback(null);\n } else if (err) {\n tile.state = \"errored\";\n callback(err);\n } else if (img) {\n if (this$1.map._refreshExpiredTiles) {\n tile.setExpiryData(img);\n }\n delete img.cacheControl;\n delete img.expires;\n var context = this$1.map.painter.context;\n var gl2 = context.gl;\n tile.texture = this$1.map.painter.getTileTexture(img.width);\n if (tile.texture) {\n tile.texture.update(img, { useMipmap: true });\n } else {\n tile.texture = new performance2.Texture(context, img, gl2.RGBA, { useMipmap: true });\n tile.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n if (context.extTextureFilterAnisotropic) {\n gl2.texParameterf(gl2.TEXTURE_2D, context.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, context.extTextureFilterAnisotropicMax);\n }\n }\n tile.state = \"loaded\";\n performance2.cacheEntryPossiblyAdded(this$1.dispatcher);\n callback(null);\n }\n });\n };\n RasterTileSource2.prototype.abortTile = function abortTile(tile, callback) {\n if (tile.request) {\n tile.request.cancel();\n delete tile.request;\n }\n callback();\n };\n RasterTileSource2.prototype.unloadTile = function unloadTile(tile, callback) {\n if (tile.texture) {\n this.map.painter.saveTileTexture(tile.texture);\n }\n callback();\n };\n RasterTileSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return RasterTileSource2;\n }(performance2.Evented);\n var RasterDEMTileSource = function(RasterTileSource2) {\n function RasterDEMTileSource2(id, options, dispatcher, eventedParent) {\n RasterTileSource2.call(this, id, options, dispatcher, eventedParent);\n this.type = \"raster-dem\";\n this.maxzoom = 22;\n this._options = performance2.extend({ type: \"raster-dem\" }, options);\n this.encoding = options.encoding || \"mapbox\";\n }\n if (RasterTileSource2)\n RasterDEMTileSource2.__proto__ = RasterTileSource2;\n RasterDEMTileSource2.prototype = Object.create(RasterTileSource2 && RasterTileSource2.prototype);\n RasterDEMTileSource2.prototype.constructor = RasterDEMTileSource2;\n RasterDEMTileSource2.prototype.serialize = function serialize() {\n return {\n type: \"raster-dem\",\n url: this.url,\n tileSize: this.tileSize,\n tiles: this.tiles,\n bounds: this.bounds,\n encoding: this.encoding\n };\n };\n RasterDEMTileSource2.prototype.loadTile = function loadTile(tile, callback) {\n var url = this.map._requestManager.normalizeTileURL(tile.tileID.canonical.url(this.tiles, this.scheme), this.tileSize);\n tile.request = performance2.getImage(this.map._requestManager.transformRequest(url, performance2.ResourceType.Tile), imageLoaded.bind(this));\n tile.neighboringTiles = this._getNeighboringTiles(tile.tileID);\n function imageLoaded(err, img) {\n delete tile.request;\n if (tile.aborted) {\n tile.state = \"unloaded\";\n callback(null);\n } else if (err) {\n tile.state = \"errored\";\n callback(err);\n } else if (img) {\n if (this.map._refreshExpiredTiles) {\n tile.setExpiryData(img);\n }\n delete img.cacheControl;\n delete img.expires;\n var transfer = performance2.window.ImageBitmap && img instanceof performance2.window.ImageBitmap && performance2.offscreenCanvasSupported();\n var rawImageData = transfer ? img : performance2.browser.getImageData(img, 1);\n var params = {\n uid: tile.uid,\n coord: tile.tileID,\n source: this.id,\n rawImageData,\n encoding: this.encoding\n };\n if (!tile.actor || tile.state === \"expired\") {\n tile.actor = this.dispatcher.getActor();\n tile.actor.send(\"loadDEMTile\", params, done.bind(this));\n }\n }\n }\n function done(err, dem) {\n if (err) {\n tile.state = \"errored\";\n callback(err);\n }\n if (dem) {\n tile.dem = dem;\n tile.needsHillshadePrepare = true;\n tile.state = \"loaded\";\n callback(null);\n }\n }\n };\n RasterDEMTileSource2.prototype._getNeighboringTiles = function _getNeighboringTiles(tileID) {\n var canonical = tileID.canonical;\n var dim = Math.pow(2, canonical.z);\n var px = (canonical.x - 1 + dim) % dim;\n var pxw = canonical.x === 0 ? tileID.wrap - 1 : tileID.wrap;\n var nx = (canonical.x + 1 + dim) % dim;\n var nxw = canonical.x + 1 === dim ? tileID.wrap + 1 : tileID.wrap;\n var neighboringTiles = {};\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, pxw, canonical.z, px, canonical.y).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, nxw, canonical.z, nx, canonical.y).key] = { backfilled: false };\n if (canonical.y > 0) {\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, pxw, canonical.z, px, canonical.y - 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, tileID.wrap, canonical.z, canonical.x, canonical.y - 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, nxw, canonical.z, nx, canonical.y - 1).key] = { backfilled: false };\n }\n if (canonical.y + 1 < dim) {\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, pxw, canonical.z, px, canonical.y + 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, tileID.wrap, canonical.z, canonical.x, canonical.y + 1).key] = { backfilled: false };\n neighboringTiles[new performance2.OverscaledTileID(tileID.overscaledZ, nxw, canonical.z, nx, canonical.y + 1).key] = { backfilled: false };\n }\n return neighboringTiles;\n };\n RasterDEMTileSource2.prototype.unloadTile = function unloadTile(tile) {\n if (tile.demTexture) {\n this.map.painter.saveTileTexture(tile.demTexture);\n }\n if (tile.fbo) {\n tile.fbo.destroy();\n delete tile.fbo;\n }\n if (tile.dem) {\n delete tile.dem;\n }\n delete tile.neighboringTiles;\n tile.state = \"unloaded\";\n if (tile.actor) {\n tile.actor.send(\"removeDEMTile\", {\n uid: tile.uid,\n source: this.id\n });\n }\n };\n return RasterDEMTileSource2;\n }(RasterTileSource);\n var GeoJSONSource = function(Evented) {\n function GeoJSONSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.type = \"geojson\";\n this.minzoom = 0;\n this.maxzoom = 18;\n this.tileSize = 512;\n this.isTileClipped = true;\n this.reparseOverscaled = true;\n this._removed = false;\n this._loaded = false;\n this.actor = dispatcher.getActor();\n this.setEventedParent(eventedParent);\n this._data = options.data;\n this._options = performance2.extend({}, options);\n this._collectResourceTiming = options.collectResourceTiming;\n this._resourceTiming = [];\n if (options.maxzoom !== void 0) {\n this.maxzoom = options.maxzoom;\n }\n if (options.type) {\n this.type = options.type;\n }\n if (options.attribution) {\n this.attribution = options.attribution;\n }\n this.promoteId = options.promoteId;\n var scale = performance2.EXTENT / this.tileSize;\n this.workerOptions = performance2.extend({\n source: this.id,\n cluster: options.cluster || false,\n geojsonVtOptions: {\n buffer: (options.buffer !== void 0 ? options.buffer : 128) * scale,\n tolerance: (options.tolerance !== void 0 ? options.tolerance : 0.375) * scale,\n extent: performance2.EXTENT,\n maxZoom: this.maxzoom,\n lineMetrics: options.lineMetrics || false,\n generateId: options.generateId || false\n },\n superclusterOptions: {\n maxZoom: options.clusterMaxZoom !== void 0 ? Math.min(options.clusterMaxZoom, this.maxzoom - 1) : this.maxzoom - 1,\n minPoints: Math.max(2, options.clusterMinPoints || 2),\n extent: performance2.EXTENT,\n radius: (options.clusterRadius || 50) * scale,\n log: false,\n generateId: options.generateId || false\n },\n clusterProperties: options.clusterProperties,\n filter: options.filter\n }, options.workerOptions);\n }\n if (Evented)\n GeoJSONSource2.__proto__ = Evented;\n GeoJSONSource2.prototype = Object.create(Evented && Evented.prototype);\n GeoJSONSource2.prototype.constructor = GeoJSONSource2;\n GeoJSONSource2.prototype.load = function load() {\n var this$1 = this;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._updateWorkerData(function(err) {\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n return;\n }\n var data = {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n };\n if (this$1._collectResourceTiming && this$1._resourceTiming && this$1._resourceTiming.length > 0) {\n data.resourceTiming = this$1._resourceTiming;\n this$1._resourceTiming = [];\n }\n this$1.fire(new performance2.Event(\"data\", data));\n });\n };\n GeoJSONSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n GeoJSONSource2.prototype.setData = function setData(data) {\n var this$1 = this;\n this._data = data;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this._updateWorkerData(function(err) {\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n return;\n }\n var data2 = {\n dataType: \"source\",\n sourceDataType: \"content\"\n };\n if (this$1._collectResourceTiming && this$1._resourceTiming && this$1._resourceTiming.length > 0) {\n data2.resourceTiming = this$1._resourceTiming;\n this$1._resourceTiming = [];\n }\n this$1.fire(new performance2.Event(\"data\", data2));\n });\n return this;\n };\n GeoJSONSource2.prototype.getClusterExpansionZoom = function getClusterExpansionZoom(clusterId, callback) {\n this.actor.send(\"geojson.getClusterExpansionZoom\", {\n clusterId,\n source: this.id\n }, callback);\n return this;\n };\n GeoJSONSource2.prototype.getClusterChildren = function getClusterChildren(clusterId, callback) {\n this.actor.send(\"geojson.getClusterChildren\", {\n clusterId,\n source: this.id\n }, callback);\n return this;\n };\n GeoJSONSource2.prototype.getClusterLeaves = function getClusterLeaves(clusterId, limit, offset, callback) {\n this.actor.send(\"geojson.getClusterLeaves\", {\n source: this.id,\n clusterId,\n limit,\n offset\n }, callback);\n return this;\n };\n GeoJSONSource2.prototype._updateWorkerData = function _updateWorkerData(callback) {\n var this$1 = this;\n this._loaded = false;\n var options = performance2.extend({}, this.workerOptions);\n var data = this._data;\n if (typeof data === \"string\") {\n options.request = this.map._requestManager.transformRequest(performance2.browser.resolveURL(data), performance2.ResourceType.Source);\n options.request.collectResourceTiming = this._collectResourceTiming;\n } else {\n options.data = JSON.stringify(data);\n }\n this.actor.send(this.type + \".loadData\", options, function(err, result) {\n if (this$1._removed || result && result.abandoned) {\n return;\n }\n this$1._loaded = true;\n if (result && result.resourceTiming && result.resourceTiming[this$1.id]) {\n this$1._resourceTiming = result.resourceTiming[this$1.id].slice(0);\n }\n this$1.actor.send(this$1.type + \".coalesce\", { source: options.source }, null);\n callback(err);\n });\n };\n GeoJSONSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n GeoJSONSource2.prototype.loadTile = function loadTile(tile, callback) {\n var this$1 = this;\n var message = !tile.actor ? \"loadTile\" : \"reloadTile\";\n tile.actor = this.actor;\n var params = {\n type: this.type,\n uid: tile.uid,\n tileID: tile.tileID,\n zoom: tile.tileID.overscaledZ,\n maxZoom: this.maxzoom,\n tileSize: this.tileSize,\n source: this.id,\n pixelRatio: performance2.browser.devicePixelRatio,\n showCollisionBoxes: this.map.showCollisionBoxes,\n promoteId: this.promoteId\n };\n tile.request = this.actor.send(message, params, function(err, data) {\n delete tile.request;\n tile.unloadVectorData();\n if (tile.aborted) {\n return callback(null);\n }\n if (err) {\n return callback(err);\n }\n tile.loadVectorData(data, this$1.map.painter, message === \"reloadTile\");\n return callback(null);\n });\n };\n GeoJSONSource2.prototype.abortTile = function abortTile(tile) {\n if (tile.request) {\n tile.request.cancel();\n delete tile.request;\n }\n tile.aborted = true;\n };\n GeoJSONSource2.prototype.unloadTile = function unloadTile(tile) {\n tile.unloadVectorData();\n this.actor.send(\"removeTile\", {\n uid: tile.uid,\n type: this.type,\n source: this.id\n });\n };\n GeoJSONSource2.prototype.onRemove = function onRemove() {\n this._removed = true;\n this.actor.send(\"removeSource\", {\n type: this.type,\n source: this.id\n });\n };\n GeoJSONSource2.prototype.serialize = function serialize() {\n return performance2.extend({}, this._options, {\n type: this.type,\n data: this._data\n });\n };\n GeoJSONSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return GeoJSONSource2;\n }(performance2.Evented);\n var rasterBoundsAttributes = performance2.createLayout([\n {\n name: \"a_pos\",\n type: \"Int16\",\n components: 2\n },\n {\n name: \"a_texture_pos\",\n type: \"Int16\",\n components: 2\n }\n ]);\n var ImageSource = function(Evented) {\n function ImageSource2(id, options, dispatcher, eventedParent) {\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.coordinates = options.coordinates;\n this.type = \"image\";\n this.minzoom = 0;\n this.maxzoom = 22;\n this.tileSize = 512;\n this.tiles = {};\n this._loaded = false;\n this.setEventedParent(eventedParent);\n this.options = options;\n }\n if (Evented)\n ImageSource2.__proto__ = Evented;\n ImageSource2.prototype = Object.create(Evented && Evented.prototype);\n ImageSource2.prototype.constructor = ImageSource2;\n ImageSource2.prototype.load = function load(newCoordinates, successCallback) {\n var this$1 = this;\n this._loaded = false;\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"source\" }));\n this.url = this.options.url;\n performance2.getImage(this.map._requestManager.transformRequest(this.url, performance2.ResourceType.Image), function(err, image) {\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (image) {\n this$1.image = image;\n if (newCoordinates) {\n this$1.coordinates = newCoordinates;\n }\n if (successCallback) {\n successCallback();\n }\n this$1._finishLoading();\n }\n });\n };\n ImageSource2.prototype.loaded = function loaded() {\n return this._loaded;\n };\n ImageSource2.prototype.updateImage = function updateImage(options) {\n var this$1 = this;\n if (!this.image || !options.url) {\n return this;\n }\n this.options.url = options.url;\n this.load(options.coordinates, function() {\n this$1.texture = null;\n });\n return this;\n };\n ImageSource2.prototype._finishLoading = function _finishLoading() {\n if (this.map) {\n this.setCoordinates(this.coordinates);\n this.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"metadata\"\n }));\n }\n };\n ImageSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n };\n ImageSource2.prototype.setCoordinates = function setCoordinates(coordinates) {\n var this$1 = this;\n this.coordinates = coordinates;\n var cornerCoords = coordinates.map(performance2.MercatorCoordinate.fromLngLat);\n this.tileID = getCoordinatesCenterTileID(cornerCoords);\n this.minzoom = this.maxzoom = this.tileID.z;\n var tileCoords = cornerCoords.map(function(coord) {\n return this$1.tileID.getTilePoint(coord)._round();\n });\n this._boundsArray = new performance2.StructArrayLayout4i8();\n this._boundsArray.emplaceBack(tileCoords[0].x, tileCoords[0].y, 0, 0);\n this._boundsArray.emplaceBack(tileCoords[1].x, tileCoords[1].y, performance2.EXTENT, 0);\n this._boundsArray.emplaceBack(tileCoords[3].x, tileCoords[3].y, 0, performance2.EXTENT);\n this._boundsArray.emplaceBack(tileCoords[2].x, tileCoords[2].y, performance2.EXTENT, performance2.EXTENT);\n if (this.boundsBuffer) {\n this.boundsBuffer.destroy();\n delete this.boundsBuffer;\n }\n this.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n sourceDataType: \"content\"\n }));\n return this;\n };\n ImageSource2.prototype.prepare = function prepare() {\n if (Object.keys(this.tiles).length === 0 || !this.image) {\n return;\n }\n var context = this.map.painter.context;\n var gl2 = context.gl;\n if (!this.boundsBuffer) {\n this.boundsBuffer = context.createVertexBuffer(this._boundsArray, rasterBoundsAttributes.members);\n }\n if (!this.boundsSegments) {\n this.boundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n }\n if (!this.texture) {\n this.texture = new performance2.Texture(context, this.image, gl2.RGBA);\n this.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n }\n for (var w in this.tiles) {\n var tile = this.tiles[w];\n if (tile.state !== \"loaded\") {\n tile.state = \"loaded\";\n tile.texture = this.texture;\n }\n }\n };\n ImageSource2.prototype.loadTile = function loadTile(tile, callback) {\n if (this.tileID && this.tileID.equals(tile.tileID.canonical)) {\n this.tiles[String(tile.tileID.wrap)] = tile;\n tile.buckets = {};\n callback(null);\n } else {\n tile.state = \"errored\";\n callback(null);\n }\n };\n ImageSource2.prototype.serialize = function serialize() {\n return {\n type: \"image\",\n url: this.options.url,\n coordinates: this.coordinates\n };\n };\n ImageSource2.prototype.hasTransition = function hasTransition() {\n return false;\n };\n return ImageSource2;\n }(performance2.Evented);\n function getCoordinatesCenterTileID(coords) {\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n minX = Math.min(minX, coord.x);\n minY = Math.min(minY, coord.y);\n maxX = Math.max(maxX, coord.x);\n maxY = Math.max(maxY, coord.y);\n }\n var dx = maxX - minX;\n var dy = maxY - minY;\n var dMax = Math.max(dx, dy);\n var zoom = Math.max(0, Math.floor(-Math.log(dMax) / Math.LN2));\n var tilesAtZoom = Math.pow(2, zoom);\n return new performance2.CanonicalTileID(zoom, Math.floor((minX + maxX) / 2 * tilesAtZoom), Math.floor((minY + maxY) / 2 * tilesAtZoom));\n }\n var VideoSource = function(ImageSource2) {\n function VideoSource2(id, options, dispatcher, eventedParent) {\n ImageSource2.call(this, id, options, dispatcher, eventedParent);\n this.roundZoom = true;\n this.type = \"video\";\n this.options = options;\n }\n if (ImageSource2)\n VideoSource2.__proto__ = ImageSource2;\n VideoSource2.prototype = Object.create(ImageSource2 && ImageSource2.prototype);\n VideoSource2.prototype.constructor = VideoSource2;\n VideoSource2.prototype.load = function load() {\n var this$1 = this;\n this._loaded = false;\n var options = this.options;\n this.urls = [];\n for (var i = 0, list = options.urls; i < list.length; i += 1) {\n var url = list[i];\n this.urls.push(this.map._requestManager.transformRequest(url, performance2.ResourceType.Source).url);\n }\n performance2.getVideo(this.urls, function(err, video) {\n this$1._loaded = true;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (video) {\n this$1.video = video;\n this$1.video.loop = true;\n this$1.video.addEventListener(\"playing\", function() {\n this$1.map.triggerRepaint();\n });\n if (this$1.map) {\n this$1.video.play();\n }\n this$1._finishLoading();\n }\n });\n };\n VideoSource2.prototype.pause = function pause() {\n if (this.video) {\n this.video.pause();\n }\n };\n VideoSource2.prototype.play = function play() {\n if (this.video) {\n this.video.play();\n }\n };\n VideoSource2.prototype.seek = function seek(seconds) {\n if (this.video) {\n var seekableRange = this.video.seekable;\n if (seconds < seekableRange.start(0) || seconds > seekableRange.end(0)) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + this.id, null, \"Playback for this video can be set only between the \" + seekableRange.start(0) + \" and \" + seekableRange.end(0) + \"-second mark.\")));\n } else {\n this.video.currentTime = seconds;\n }\n }\n };\n VideoSource2.prototype.getVideo = function getVideo() {\n return this.video;\n };\n VideoSource2.prototype.onAdd = function onAdd(map) {\n if (this.map) {\n return;\n }\n this.map = map;\n this.load();\n if (this.video) {\n this.video.play();\n this.setCoordinates(this.coordinates);\n }\n };\n VideoSource2.prototype.prepare = function prepare() {\n if (Object.keys(this.tiles).length === 0 || this.video.readyState < 2) {\n return;\n }\n var context = this.map.painter.context;\n var gl2 = context.gl;\n if (!this.boundsBuffer) {\n this.boundsBuffer = context.createVertexBuffer(this._boundsArray, rasterBoundsAttributes.members);\n }\n if (!this.boundsSegments) {\n this.boundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n }\n if (!this.texture) {\n this.texture = new performance2.Texture(context, this.video, gl2.RGBA);\n this.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n } else if (!this.video.paused) {\n this.texture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n gl2.texSubImage2D(gl2.TEXTURE_2D, 0, 0, 0, gl2.RGBA, gl2.UNSIGNED_BYTE, this.video);\n }\n for (var w in this.tiles) {\n var tile = this.tiles[w];\n if (tile.state !== \"loaded\") {\n tile.state = \"loaded\";\n tile.texture = this.texture;\n }\n }\n };\n VideoSource2.prototype.serialize = function serialize() {\n return {\n type: \"video\",\n urls: this.urls,\n coordinates: this.coordinates\n };\n };\n VideoSource2.prototype.hasTransition = function hasTransition() {\n return this.video && !this.video.paused;\n };\n return VideoSource2;\n }(ImageSource);\n var CanvasSource = function(ImageSource2) {\n function CanvasSource2(id, options, dispatcher, eventedParent) {\n ImageSource2.call(this, id, options, dispatcher, eventedParent);\n if (!options.coordinates) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, 'missing required property \"coordinates\"')));\n } else if (!Array.isArray(options.coordinates) || options.coordinates.length !== 4 || options.coordinates.some(function(c) {\n return !Array.isArray(c) || c.length !== 2 || c.some(function(l) {\n return typeof l !== \"number\";\n });\n })) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, '\"coordinates\" property must be an array of 4 longitude/latitude array pairs')));\n }\n if (options.animate && typeof options.animate !== \"boolean\") {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, 'optional \"animate\" property must be a boolean value')));\n }\n if (!options.canvas) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, 'missing required property \"canvas\"')));\n } else if (typeof options.canvas !== \"string\" && !(options.canvas instanceof performance2.window.HTMLCanvasElement)) {\n this.fire(new performance2.ErrorEvent(new performance2.ValidationError(\"sources.\" + id, null, '\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance')));\n }\n this.options = options;\n this.animate = options.animate !== void 0 ? options.animate : true;\n }\n if (ImageSource2)\n CanvasSource2.__proto__ = ImageSource2;\n CanvasSource2.prototype = Object.create(ImageSource2 && ImageSource2.prototype);\n CanvasSource2.prototype.constructor = CanvasSource2;\n CanvasSource2.prototype.load = function load() {\n this._loaded = true;\n if (!this.canvas) {\n this.canvas = this.options.canvas instanceof performance2.window.HTMLCanvasElement ? this.options.canvas : performance2.window.document.getElementById(this.options.canvas);\n }\n this.width = this.canvas.width;\n this.height = this.canvas.height;\n if (this._hasInvalidDimensions()) {\n this.fire(new performance2.ErrorEvent(new Error(\"Canvas dimensions cannot be less than or equal to zero.\")));\n return;\n }\n this.play = function() {\n this._playing = true;\n this.map.triggerRepaint();\n };\n this.pause = function() {\n if (this._playing) {\n this.prepare();\n this._playing = false;\n }\n };\n this._finishLoading();\n };\n CanvasSource2.prototype.getCanvas = function getCanvas() {\n return this.canvas;\n };\n CanvasSource2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this.load();\n if (this.canvas) {\n if (this.animate) {\n this.play();\n }\n }\n };\n CanvasSource2.prototype.onRemove = function onRemove() {\n this.pause();\n };\n CanvasSource2.prototype.prepare = function prepare() {\n var resize = false;\n if (this.canvas.width !== this.width) {\n this.width = this.canvas.width;\n resize = true;\n }\n if (this.canvas.height !== this.height) {\n this.height = this.canvas.height;\n resize = true;\n }\n if (this._hasInvalidDimensions()) {\n return;\n }\n if (Object.keys(this.tiles).length === 0) {\n return;\n }\n var context = this.map.painter.context;\n var gl2 = context.gl;\n if (!this.boundsBuffer) {\n this.boundsBuffer = context.createVertexBuffer(this._boundsArray, rasterBoundsAttributes.members);\n }\n if (!this.boundsSegments) {\n this.boundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n }\n if (!this.texture) {\n this.texture = new performance2.Texture(context, this.canvas, gl2.RGBA, { premultiply: true });\n } else if (resize || this._playing) {\n this.texture.update(this.canvas, { premultiply: true });\n }\n for (var w in this.tiles) {\n var tile = this.tiles[w];\n if (tile.state !== \"loaded\") {\n tile.state = \"loaded\";\n tile.texture = this.texture;\n }\n }\n };\n CanvasSource2.prototype.serialize = function serialize() {\n return {\n type: \"canvas\",\n coordinates: this.coordinates\n };\n };\n CanvasSource2.prototype.hasTransition = function hasTransition() {\n return this._playing;\n };\n CanvasSource2.prototype._hasInvalidDimensions = function _hasInvalidDimensions() {\n for (var i = 0, list = [\n this.canvas.width,\n this.canvas.height\n ]; i < list.length; i += 1) {\n var x = list[i];\n if (isNaN(x) || x <= 0) {\n return true;\n }\n }\n return false;\n };\n return CanvasSource2;\n }(ImageSource);\n var sourceTypes = {\n vector: VectorTileSource,\n raster: RasterTileSource,\n \"raster-dem\": RasterDEMTileSource,\n geojson: GeoJSONSource,\n video: VideoSource,\n image: ImageSource,\n canvas: CanvasSource\n };\n var create = function(id, specification, dispatcher, eventedParent) {\n var source = new sourceTypes[specification.type](id, specification, dispatcher, eventedParent);\n if (source.id !== id) {\n throw new Error(\"Expected Source id to be \" + id + \" instead of \" + source.id);\n }\n performance2.bindAll([\n \"load\",\n \"abort\",\n \"unload\",\n \"serialize\",\n \"prepare\"\n ], source);\n return source;\n };\n var getType = function(name2) {\n return sourceTypes[name2];\n };\n var setType = function(name2, type) {\n sourceTypes[name2] = type;\n };\n function getPixelPosMatrix(transform, tileID) {\n var t = performance2.identity([]);\n performance2.translate(t, t, [\n 1,\n 1,\n 0\n ]);\n performance2.scale(t, t, [\n transform.width * 0.5,\n transform.height * 0.5,\n 1\n ]);\n return performance2.multiply(t, t, transform.calculatePosMatrix(tileID.toUnwrapped()));\n }\n function queryIncludes3DLayer(layers, styleLayers, sourceID) {\n if (layers) {\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layerID = list[i];\n var layer = styleLayers[layerID];\n if (layer && layer.source === sourceID && layer.type === \"fill-extrusion\") {\n return true;\n }\n }\n } else {\n for (var key in styleLayers) {\n var layer$1 = styleLayers[key];\n if (layer$1.source === sourceID && layer$1.type === \"fill-extrusion\") {\n return true;\n }\n }\n }\n return false;\n }\n function queryRenderedFeatures(sourceCache, styleLayers, serializedLayers, queryGeometry, params, transform) {\n var has3DLayer = queryIncludes3DLayer(params && params.layers, styleLayers, sourceCache.id);\n var maxPitchScaleFactor = transform.maxPitchScaleFactor();\n var tilesIn = sourceCache.tilesIn(queryGeometry, maxPitchScaleFactor, has3DLayer);\n tilesIn.sort(sortTilesIn);\n var renderedFeatureLayers = [];\n for (var i = 0, list = tilesIn; i < list.length; i += 1) {\n var tileIn = list[i];\n renderedFeatureLayers.push({\n wrappedTileID: tileIn.tileID.wrapped().key,\n queryResults: tileIn.tile.queryRenderedFeatures(styleLayers, serializedLayers, sourceCache._state, tileIn.queryGeometry, tileIn.cameraQueryGeometry, tileIn.scale, params, transform, maxPitchScaleFactor, getPixelPosMatrix(sourceCache.transform, tileIn.tileID))\n });\n }\n var result = mergeRenderedFeatureLayers(renderedFeatureLayers);\n for (var layerID in result) {\n result[layerID].forEach(function(featureWrapper) {\n var feature = featureWrapper.feature;\n var state = sourceCache.getFeatureState(feature.layer[\"source-layer\"], feature.id);\n feature.source = feature.layer.source;\n if (feature.layer[\"source-layer\"]) {\n feature.sourceLayer = feature.layer[\"source-layer\"];\n }\n feature.state = state;\n });\n }\n return result;\n }\n function queryRenderedSymbols(styleLayers, serializedLayers, sourceCaches, queryGeometry, params, collisionIndex, retainedQueryData) {\n var result = {};\n var renderedSymbols = collisionIndex.queryRenderedSymbols(queryGeometry);\n var bucketQueryData = [];\n for (var i = 0, list = Object.keys(renderedSymbols).map(Number); i < list.length; i += 1) {\n var bucketInstanceId = list[i];\n bucketQueryData.push(retainedQueryData[bucketInstanceId]);\n }\n bucketQueryData.sort(sortTilesIn);\n var loop = function() {\n var queryData = list$2[i$2];\n var bucketSymbols = queryData.featureIndex.lookupSymbolFeatures(renderedSymbols[queryData.bucketInstanceId], serializedLayers, queryData.bucketIndex, queryData.sourceLayerIndex, params.filter, params.layers, params.availableImages, styleLayers);\n for (var layerID in bucketSymbols) {\n var resultFeatures = result[layerID] = result[layerID] || [];\n var layerSymbols = bucketSymbols[layerID];\n layerSymbols.sort(function(a, b) {\n var featureSortOrder = queryData.featureSortOrder;\n if (featureSortOrder) {\n var sortedA = featureSortOrder.indexOf(a.featureIndex);\n var sortedB = featureSortOrder.indexOf(b.featureIndex);\n return sortedB - sortedA;\n } else {\n return b.featureIndex - a.featureIndex;\n }\n });\n for (var i$1 = 0, list$1 = layerSymbols; i$1 < list$1.length; i$1 += 1) {\n var symbolFeature = list$1[i$1];\n resultFeatures.push(symbolFeature);\n }\n }\n };\n for (var i$2 = 0, list$2 = bucketQueryData; i$2 < list$2.length; i$2 += 1)\n loop();\n var loop$1 = function(layerName2) {\n result[layerName2].forEach(function(featureWrapper) {\n var feature = featureWrapper.feature;\n var layer = styleLayers[layerName2];\n var sourceCache = sourceCaches[layer.source];\n var state = sourceCache.getFeatureState(feature.layer[\"source-layer\"], feature.id);\n feature.source = feature.layer.source;\n if (feature.layer[\"source-layer\"]) {\n feature.sourceLayer = feature.layer[\"source-layer\"];\n }\n feature.state = state;\n });\n };\n for (var layerName in result)\n loop$1(layerName);\n return result;\n }\n function querySourceFeatures(sourceCache, params) {\n var tiles = sourceCache.getRenderableIds().map(function(id) {\n return sourceCache.getTileByID(id);\n });\n var result = [];\n var dataTiles = {};\n for (var i = 0; i < tiles.length; i++) {\n var tile = tiles[i];\n var dataID = tile.tileID.canonical.key;\n if (!dataTiles[dataID]) {\n dataTiles[dataID] = true;\n tile.querySourceFeatures(result, params);\n }\n }\n return result;\n }\n function sortTilesIn(a, b) {\n var idA = a.tileID;\n var idB = b.tileID;\n return idA.overscaledZ - idB.overscaledZ || idA.canonical.y - idB.canonical.y || idA.wrap - idB.wrap || idA.canonical.x - idB.canonical.x;\n }\n function mergeRenderedFeatureLayers(tiles) {\n var result = {};\n var wrappedIDLayerMap = {};\n for (var i$1 = 0, list$1 = tiles; i$1 < list$1.length; i$1 += 1) {\n var tile = list$1[i$1];\n var queryResults = tile.queryResults;\n var wrappedID = tile.wrappedTileID;\n var wrappedIDLayers = wrappedIDLayerMap[wrappedID] = wrappedIDLayerMap[wrappedID] || {};\n for (var layerID in queryResults) {\n var tileFeatures = queryResults[layerID];\n var wrappedIDFeatures = wrappedIDLayers[layerID] = wrappedIDLayers[layerID] || {};\n var resultFeatures = result[layerID] = result[layerID] || [];\n for (var i = 0, list = tileFeatures; i < list.length; i += 1) {\n var tileFeature = list[i];\n if (!wrappedIDFeatures[tileFeature.featureIndex]) {\n wrappedIDFeatures[tileFeature.featureIndex] = true;\n resultFeatures.push(tileFeature);\n }\n }\n }\n }\n return result;\n }\n var TileCache = function TileCache2(max, onRemove) {\n this.max = max;\n this.onRemove = onRemove;\n this.reset();\n };\n TileCache.prototype.reset = function reset() {\n for (var key in this.data) {\n for (var i = 0, list = this.data[key]; i < list.length; i += 1) {\n var removedData = list[i];\n if (removedData.timeout) {\n clearTimeout(removedData.timeout);\n }\n this.onRemove(removedData.value);\n }\n }\n this.data = {};\n this.order = [];\n return this;\n };\n TileCache.prototype.add = function add(tileID, data, expiryTimeout) {\n var this$1 = this;\n var key = tileID.wrapped().key;\n if (this.data[key] === void 0) {\n this.data[key] = [];\n }\n var dataWrapper = {\n value: data,\n timeout: void 0\n };\n if (expiryTimeout !== void 0) {\n dataWrapper.timeout = setTimeout(function() {\n this$1.remove(tileID, dataWrapper);\n }, expiryTimeout);\n }\n this.data[key].push(dataWrapper);\n this.order.push(key);\n if (this.order.length > this.max) {\n var removedData = this._getAndRemoveByKey(this.order[0]);\n if (removedData) {\n this.onRemove(removedData);\n }\n }\n return this;\n };\n TileCache.prototype.has = function has(tileID) {\n return tileID.wrapped().key in this.data;\n };\n TileCache.prototype.getAndRemove = function getAndRemove(tileID) {\n if (!this.has(tileID)) {\n return null;\n }\n return this._getAndRemoveByKey(tileID.wrapped().key);\n };\n TileCache.prototype._getAndRemoveByKey = function _getAndRemoveByKey(key) {\n var data = this.data[key].shift();\n if (data.timeout) {\n clearTimeout(data.timeout);\n }\n if (this.data[key].length === 0) {\n delete this.data[key];\n }\n this.order.splice(this.order.indexOf(key), 1);\n return data.value;\n };\n TileCache.prototype.getByKey = function getByKey(key) {\n var data = this.data[key];\n return data ? data[0].value : null;\n };\n TileCache.prototype.get = function get(tileID) {\n if (!this.has(tileID)) {\n return null;\n }\n var data = this.data[tileID.wrapped().key][0];\n return data.value;\n };\n TileCache.prototype.remove = function remove(tileID, value) {\n if (!this.has(tileID)) {\n return this;\n }\n var key = tileID.wrapped().key;\n var dataIndex = value === void 0 ? 0 : this.data[key].indexOf(value);\n var data = this.data[key][dataIndex];\n this.data[key].splice(dataIndex, 1);\n if (data.timeout) {\n clearTimeout(data.timeout);\n }\n if (this.data[key].length === 0) {\n delete this.data[key];\n }\n this.onRemove(data.value);\n this.order.splice(this.order.indexOf(key), 1);\n return this;\n };\n TileCache.prototype.setMaxSize = function setMaxSize(max) {\n this.max = max;\n while (this.order.length > this.max) {\n var removedData = this._getAndRemoveByKey(this.order[0]);\n if (removedData) {\n this.onRemove(removedData);\n }\n }\n return this;\n };\n TileCache.prototype.filter = function filter(filterFn) {\n var removed = [];\n for (var key in this.data) {\n for (var i = 0, list = this.data[key]; i < list.length; i += 1) {\n var entry = list[i];\n if (!filterFn(entry.value)) {\n removed.push(entry);\n }\n }\n }\n for (var i$1 = 0, list$1 = removed; i$1 < list$1.length; i$1 += 1) {\n var r = list$1[i$1];\n this.remove(r.value.tileID, r);\n }\n };\n var IndexBuffer = function IndexBuffer2(context, array, dynamicDraw) {\n this.context = context;\n var gl2 = context.gl;\n this.buffer = gl2.createBuffer();\n this.dynamicDraw = Boolean(dynamicDraw);\n this.context.unbindVAO();\n context.bindElementBuffer.set(this.buffer);\n gl2.bufferData(gl2.ELEMENT_ARRAY_BUFFER, array.arrayBuffer, this.dynamicDraw ? gl2.DYNAMIC_DRAW : gl2.STATIC_DRAW);\n if (!this.dynamicDraw) {\n delete array.arrayBuffer;\n }\n };\n IndexBuffer.prototype.bind = function bind() {\n this.context.bindElementBuffer.set(this.buffer);\n };\n IndexBuffer.prototype.updateData = function updateData(array) {\n var gl2 = this.context.gl;\n this.context.unbindVAO();\n this.bind();\n gl2.bufferSubData(gl2.ELEMENT_ARRAY_BUFFER, 0, array.arrayBuffer);\n };\n IndexBuffer.prototype.destroy = function destroy() {\n var gl2 = this.context.gl;\n if (this.buffer) {\n gl2.deleteBuffer(this.buffer);\n delete this.buffer;\n }\n };\n var AttributeType = {\n Int8: \"BYTE\",\n Uint8: \"UNSIGNED_BYTE\",\n Int16: \"SHORT\",\n Uint16: \"UNSIGNED_SHORT\",\n Int32: \"INT\",\n Uint32: \"UNSIGNED_INT\",\n Float32: \"FLOAT\"\n };\n var VertexBuffer = function VertexBuffer2(context, array, attributes, dynamicDraw) {\n this.length = array.length;\n this.attributes = attributes;\n this.itemSize = array.bytesPerElement;\n this.dynamicDraw = dynamicDraw;\n this.context = context;\n var gl2 = context.gl;\n this.buffer = gl2.createBuffer();\n context.bindVertexBuffer.set(this.buffer);\n gl2.bufferData(gl2.ARRAY_BUFFER, array.arrayBuffer, this.dynamicDraw ? gl2.DYNAMIC_DRAW : gl2.STATIC_DRAW);\n if (!this.dynamicDraw) {\n delete array.arrayBuffer;\n }\n };\n VertexBuffer.prototype.bind = function bind() {\n this.context.bindVertexBuffer.set(this.buffer);\n };\n VertexBuffer.prototype.updateData = function updateData(array) {\n var gl2 = this.context.gl;\n this.bind();\n gl2.bufferSubData(gl2.ARRAY_BUFFER, 0, array.arrayBuffer);\n };\n VertexBuffer.prototype.enableAttributes = function enableAttributes(gl2, program) {\n for (var j = 0; j < this.attributes.length; j++) {\n var member = this.attributes[j];\n var attribIndex = program.attributes[member.name];\n if (attribIndex !== void 0) {\n gl2.enableVertexAttribArray(attribIndex);\n }\n }\n };\n VertexBuffer.prototype.setVertexAttribPointers = function setVertexAttribPointers(gl2, program, vertexOffset) {\n for (var j = 0; j < this.attributes.length; j++) {\n var member = this.attributes[j];\n var attribIndex = program.attributes[member.name];\n if (attribIndex !== void 0) {\n gl2.vertexAttribPointer(attribIndex, member.components, gl2[AttributeType[member.type]], false, this.itemSize, member.offset + this.itemSize * (vertexOffset || 0));\n }\n }\n };\n VertexBuffer.prototype.destroy = function destroy() {\n var gl2 = this.context.gl;\n if (this.buffer) {\n gl2.deleteBuffer(this.buffer);\n delete this.buffer;\n }\n };\n var BaseValue = function BaseValue2(context) {\n this.gl = context.gl;\n this.default = this.getDefault();\n this.current = this.default;\n this.dirty = false;\n };\n BaseValue.prototype.get = function get() {\n return this.current;\n };\n BaseValue.prototype.set = function set(value) {\n };\n BaseValue.prototype.getDefault = function getDefault() {\n return this.default;\n };\n BaseValue.prototype.setDefault = function setDefault() {\n this.set(this.default);\n };\n var ClearColor = function(BaseValue2) {\n function ClearColor2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ClearColor2.__proto__ = BaseValue2;\n ClearColor2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ClearColor2.prototype.constructor = ClearColor2;\n ClearColor2.prototype.getDefault = function getDefault() {\n return performance2.Color.transparent;\n };\n ClearColor2.prototype.set = function set(v) {\n var c = this.current;\n if (v.r === c.r && v.g === c.g && v.b === c.b && v.a === c.a && !this.dirty) {\n return;\n }\n this.gl.clearColor(v.r, v.g, v.b, v.a);\n this.current = v;\n this.dirty = false;\n };\n return ClearColor2;\n }(BaseValue);\n var ClearDepth = function(BaseValue2) {\n function ClearDepth2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ClearDepth2.__proto__ = BaseValue2;\n ClearDepth2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ClearDepth2.prototype.constructor = ClearDepth2;\n ClearDepth2.prototype.getDefault = function getDefault() {\n return 1;\n };\n ClearDepth2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.clearDepth(v);\n this.current = v;\n this.dirty = false;\n };\n return ClearDepth2;\n }(BaseValue);\n var ClearStencil = function(BaseValue2) {\n function ClearStencil2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ClearStencil2.__proto__ = BaseValue2;\n ClearStencil2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ClearStencil2.prototype.constructor = ClearStencil2;\n ClearStencil2.prototype.getDefault = function getDefault() {\n return 0;\n };\n ClearStencil2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.clearStencil(v);\n this.current = v;\n this.dirty = false;\n };\n return ClearStencil2;\n }(BaseValue);\n var ColorMask = function(BaseValue2) {\n function ColorMask2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ColorMask2.__proto__ = BaseValue2;\n ColorMask2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ColorMask2.prototype.constructor = ColorMask2;\n ColorMask2.prototype.getDefault = function getDefault() {\n return [\n true,\n true,\n true,\n true\n ];\n };\n ColorMask2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && v[2] === c[2] && v[3] === c[3] && !this.dirty) {\n return;\n }\n this.gl.colorMask(v[0], v[1], v[2], v[3]);\n this.current = v;\n this.dirty = false;\n };\n return ColorMask2;\n }(BaseValue);\n var DepthMask = function(BaseValue2) {\n function DepthMask2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthMask2.__proto__ = BaseValue2;\n DepthMask2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthMask2.prototype.constructor = DepthMask2;\n DepthMask2.prototype.getDefault = function getDefault() {\n return true;\n };\n DepthMask2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.depthMask(v);\n this.current = v;\n this.dirty = false;\n };\n return DepthMask2;\n }(BaseValue);\n var StencilMask = function(BaseValue2) {\n function StencilMask2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilMask2.__proto__ = BaseValue2;\n StencilMask2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilMask2.prototype.constructor = StencilMask2;\n StencilMask2.prototype.getDefault = function getDefault() {\n return 255;\n };\n StencilMask2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.stencilMask(v);\n this.current = v;\n this.dirty = false;\n };\n return StencilMask2;\n }(BaseValue);\n var StencilFunc = function(BaseValue2) {\n function StencilFunc2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilFunc2.__proto__ = BaseValue2;\n StencilFunc2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilFunc2.prototype.constructor = StencilFunc2;\n StencilFunc2.prototype.getDefault = function getDefault() {\n return {\n func: this.gl.ALWAYS,\n ref: 0,\n mask: 255\n };\n };\n StencilFunc2.prototype.set = function set(v) {\n var c = this.current;\n if (v.func === c.func && v.ref === c.ref && v.mask === c.mask && !this.dirty) {\n return;\n }\n this.gl.stencilFunc(v.func, v.ref, v.mask);\n this.current = v;\n this.dirty = false;\n };\n return StencilFunc2;\n }(BaseValue);\n var StencilOp = function(BaseValue2) {\n function StencilOp2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilOp2.__proto__ = BaseValue2;\n StencilOp2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilOp2.prototype.constructor = StencilOp2;\n StencilOp2.prototype.getDefault = function getDefault() {\n var gl2 = this.gl;\n return [\n gl2.KEEP,\n gl2.KEEP,\n gl2.KEEP\n ];\n };\n StencilOp2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && v[2] === c[2] && !this.dirty) {\n return;\n }\n this.gl.stencilOp(v[0], v[1], v[2]);\n this.current = v;\n this.dirty = false;\n };\n return StencilOp2;\n }(BaseValue);\n var StencilTest = function(BaseValue2) {\n function StencilTest2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n StencilTest2.__proto__ = BaseValue2;\n StencilTest2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n StencilTest2.prototype.constructor = StencilTest2;\n StencilTest2.prototype.getDefault = function getDefault() {\n return false;\n };\n StencilTest2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.STENCIL_TEST);\n } else {\n gl2.disable(gl2.STENCIL_TEST);\n }\n this.current = v;\n this.dirty = false;\n };\n return StencilTest2;\n }(BaseValue);\n var DepthRange = function(BaseValue2) {\n function DepthRange2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthRange2.__proto__ = BaseValue2;\n DepthRange2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthRange2.prototype.constructor = DepthRange2;\n DepthRange2.prototype.getDefault = function getDefault() {\n return [\n 0,\n 1\n ];\n };\n DepthRange2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && !this.dirty) {\n return;\n }\n this.gl.depthRange(v[0], v[1]);\n this.current = v;\n this.dirty = false;\n };\n return DepthRange2;\n }(BaseValue);\n var DepthTest = function(BaseValue2) {\n function DepthTest2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthTest2.__proto__ = BaseValue2;\n DepthTest2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthTest2.prototype.constructor = DepthTest2;\n DepthTest2.prototype.getDefault = function getDefault() {\n return false;\n };\n DepthTest2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.DEPTH_TEST);\n } else {\n gl2.disable(gl2.DEPTH_TEST);\n }\n this.current = v;\n this.dirty = false;\n };\n return DepthTest2;\n }(BaseValue);\n var DepthFunc = function(BaseValue2) {\n function DepthFunc2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n DepthFunc2.__proto__ = BaseValue2;\n DepthFunc2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n DepthFunc2.prototype.constructor = DepthFunc2;\n DepthFunc2.prototype.getDefault = function getDefault() {\n return this.gl.LESS;\n };\n DepthFunc2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.depthFunc(v);\n this.current = v;\n this.dirty = false;\n };\n return DepthFunc2;\n }(BaseValue);\n var Blend = function(BaseValue2) {\n function Blend2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n Blend2.__proto__ = BaseValue2;\n Blend2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n Blend2.prototype.constructor = Blend2;\n Blend2.prototype.getDefault = function getDefault() {\n return false;\n };\n Blend2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.BLEND);\n } else {\n gl2.disable(gl2.BLEND);\n }\n this.current = v;\n this.dirty = false;\n };\n return Blend2;\n }(BaseValue);\n var BlendFunc = function(BaseValue2) {\n function BlendFunc2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BlendFunc2.__proto__ = BaseValue2;\n BlendFunc2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BlendFunc2.prototype.constructor = BlendFunc2;\n BlendFunc2.prototype.getDefault = function getDefault() {\n var gl2 = this.gl;\n return [\n gl2.ONE,\n gl2.ZERO\n ];\n };\n BlendFunc2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && !this.dirty) {\n return;\n }\n this.gl.blendFunc(v[0], v[1]);\n this.current = v;\n this.dirty = false;\n };\n return BlendFunc2;\n }(BaseValue);\n var BlendColor = function(BaseValue2) {\n function BlendColor2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BlendColor2.__proto__ = BaseValue2;\n BlendColor2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BlendColor2.prototype.constructor = BlendColor2;\n BlendColor2.prototype.getDefault = function getDefault() {\n return performance2.Color.transparent;\n };\n BlendColor2.prototype.set = function set(v) {\n var c = this.current;\n if (v.r === c.r && v.g === c.g && v.b === c.b && v.a === c.a && !this.dirty) {\n return;\n }\n this.gl.blendColor(v.r, v.g, v.b, v.a);\n this.current = v;\n this.dirty = false;\n };\n return BlendColor2;\n }(BaseValue);\n var BlendEquation = function(BaseValue2) {\n function BlendEquation2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BlendEquation2.__proto__ = BaseValue2;\n BlendEquation2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BlendEquation2.prototype.constructor = BlendEquation2;\n BlendEquation2.prototype.getDefault = function getDefault() {\n return this.gl.FUNC_ADD;\n };\n BlendEquation2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.blendEquation(v);\n this.current = v;\n this.dirty = false;\n };\n return BlendEquation2;\n }(BaseValue);\n var CullFace = function(BaseValue2) {\n function CullFace2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n CullFace2.__proto__ = BaseValue2;\n CullFace2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n CullFace2.prototype.constructor = CullFace2;\n CullFace2.prototype.getDefault = function getDefault() {\n return false;\n };\n CullFace2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n if (v) {\n gl2.enable(gl2.CULL_FACE);\n } else {\n gl2.disable(gl2.CULL_FACE);\n }\n this.current = v;\n this.dirty = false;\n };\n return CullFace2;\n }(BaseValue);\n var CullFaceSide = function(BaseValue2) {\n function CullFaceSide2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n CullFaceSide2.__proto__ = BaseValue2;\n CullFaceSide2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n CullFaceSide2.prototype.constructor = CullFaceSide2;\n CullFaceSide2.prototype.getDefault = function getDefault() {\n return this.gl.BACK;\n };\n CullFaceSide2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.cullFace(v);\n this.current = v;\n this.dirty = false;\n };\n return CullFaceSide2;\n }(BaseValue);\n var FrontFace = function(BaseValue2) {\n function FrontFace2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n FrontFace2.__proto__ = BaseValue2;\n FrontFace2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n FrontFace2.prototype.constructor = FrontFace2;\n FrontFace2.prototype.getDefault = function getDefault() {\n return this.gl.CCW;\n };\n FrontFace2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.frontFace(v);\n this.current = v;\n this.dirty = false;\n };\n return FrontFace2;\n }(BaseValue);\n var Program = function(BaseValue2) {\n function Program2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n Program2.__proto__ = BaseValue2;\n Program2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n Program2.prototype.constructor = Program2;\n Program2.prototype.getDefault = function getDefault() {\n return null;\n };\n Program2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.useProgram(v);\n this.current = v;\n this.dirty = false;\n };\n return Program2;\n }(BaseValue);\n var ActiveTextureUnit = function(BaseValue2) {\n function ActiveTextureUnit2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n ActiveTextureUnit2.__proto__ = BaseValue2;\n ActiveTextureUnit2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n ActiveTextureUnit2.prototype.constructor = ActiveTextureUnit2;\n ActiveTextureUnit2.prototype.getDefault = function getDefault() {\n return this.gl.TEXTURE0;\n };\n ActiveTextureUnit2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.gl.activeTexture(v);\n this.current = v;\n this.dirty = false;\n };\n return ActiveTextureUnit2;\n }(BaseValue);\n var Viewport = function(BaseValue2) {\n function Viewport2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n Viewport2.__proto__ = BaseValue2;\n Viewport2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n Viewport2.prototype.constructor = Viewport2;\n Viewport2.prototype.getDefault = function getDefault() {\n var gl2 = this.gl;\n return [\n 0,\n 0,\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ];\n };\n Viewport2.prototype.set = function set(v) {\n var c = this.current;\n if (v[0] === c[0] && v[1] === c[1] && v[2] === c[2] && v[3] === c[3] && !this.dirty) {\n return;\n }\n this.gl.viewport(v[0], v[1], v[2], v[3]);\n this.current = v;\n this.dirty = false;\n };\n return Viewport2;\n }(BaseValue);\n var BindFramebuffer = function(BaseValue2) {\n function BindFramebuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindFramebuffer2.__proto__ = BaseValue2;\n BindFramebuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindFramebuffer2.prototype.constructor = BindFramebuffer2;\n BindFramebuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindFramebuffer2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindFramebuffer(gl2.FRAMEBUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindFramebuffer2;\n }(BaseValue);\n var BindRenderbuffer = function(BaseValue2) {\n function BindRenderbuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindRenderbuffer2.__proto__ = BaseValue2;\n BindRenderbuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindRenderbuffer2.prototype.constructor = BindRenderbuffer2;\n BindRenderbuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindRenderbuffer2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindRenderbuffer(gl2.RENDERBUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindRenderbuffer2;\n }(BaseValue);\n var BindTexture = function(BaseValue2) {\n function BindTexture2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindTexture2.__proto__ = BaseValue2;\n BindTexture2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindTexture2.prototype.constructor = BindTexture2;\n BindTexture2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindTexture2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindTexture(gl2.TEXTURE_2D, v);\n this.current = v;\n this.dirty = false;\n };\n return BindTexture2;\n }(BaseValue);\n var BindVertexBuffer = function(BaseValue2) {\n function BindVertexBuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindVertexBuffer2.__proto__ = BaseValue2;\n BindVertexBuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindVertexBuffer2.prototype.constructor = BindVertexBuffer2;\n BindVertexBuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindVertexBuffer2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.bindBuffer(gl2.ARRAY_BUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindVertexBuffer2;\n }(BaseValue);\n var BindElementBuffer = function(BaseValue2) {\n function BindElementBuffer2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n BindElementBuffer2.__proto__ = BaseValue2;\n BindElementBuffer2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindElementBuffer2.prototype.constructor = BindElementBuffer2;\n BindElementBuffer2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindElementBuffer2.prototype.set = function set(v) {\n var gl2 = this.gl;\n gl2.bindBuffer(gl2.ELEMENT_ARRAY_BUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return BindElementBuffer2;\n }(BaseValue);\n var BindVertexArrayOES = function(BaseValue2) {\n function BindVertexArrayOES2(context) {\n BaseValue2.call(this, context);\n this.vao = context.extVertexArrayObject;\n }\n if (BaseValue2)\n BindVertexArrayOES2.__proto__ = BaseValue2;\n BindVertexArrayOES2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n BindVertexArrayOES2.prototype.constructor = BindVertexArrayOES2;\n BindVertexArrayOES2.prototype.getDefault = function getDefault() {\n return null;\n };\n BindVertexArrayOES2.prototype.set = function set(v) {\n if (!this.vao || v === this.current && !this.dirty) {\n return;\n }\n this.vao.bindVertexArrayOES(v);\n this.current = v;\n this.dirty = false;\n };\n return BindVertexArrayOES2;\n }(BaseValue);\n var PixelStoreUnpack = function(BaseValue2) {\n function PixelStoreUnpack2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n PixelStoreUnpack2.__proto__ = BaseValue2;\n PixelStoreUnpack2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n PixelStoreUnpack2.prototype.constructor = PixelStoreUnpack2;\n PixelStoreUnpack2.prototype.getDefault = function getDefault() {\n return 4;\n };\n PixelStoreUnpack2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.pixelStorei(gl2.UNPACK_ALIGNMENT, v);\n this.current = v;\n this.dirty = false;\n };\n return PixelStoreUnpack2;\n }(BaseValue);\n var PixelStoreUnpackPremultiplyAlpha = function(BaseValue2) {\n function PixelStoreUnpackPremultiplyAlpha2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n PixelStoreUnpackPremultiplyAlpha2.__proto__ = BaseValue2;\n PixelStoreUnpackPremultiplyAlpha2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n PixelStoreUnpackPremultiplyAlpha2.prototype.constructor = PixelStoreUnpackPremultiplyAlpha2;\n PixelStoreUnpackPremultiplyAlpha2.prototype.getDefault = function getDefault() {\n return false;\n };\n PixelStoreUnpackPremultiplyAlpha2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.pixelStorei(gl2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, v);\n this.current = v;\n this.dirty = false;\n };\n return PixelStoreUnpackPremultiplyAlpha2;\n }(BaseValue);\n var PixelStoreUnpackFlipY = function(BaseValue2) {\n function PixelStoreUnpackFlipY2() {\n BaseValue2.apply(this, arguments);\n }\n if (BaseValue2)\n PixelStoreUnpackFlipY2.__proto__ = BaseValue2;\n PixelStoreUnpackFlipY2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n PixelStoreUnpackFlipY2.prototype.constructor = PixelStoreUnpackFlipY2;\n PixelStoreUnpackFlipY2.prototype.getDefault = function getDefault() {\n return false;\n };\n PixelStoreUnpackFlipY2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n var gl2 = this.gl;\n gl2.pixelStorei(gl2.UNPACK_FLIP_Y_WEBGL, v);\n this.current = v;\n this.dirty = false;\n };\n return PixelStoreUnpackFlipY2;\n }(BaseValue);\n var FramebufferAttachment = function(BaseValue2) {\n function FramebufferAttachment2(context, parent) {\n BaseValue2.call(this, context);\n this.context = context;\n this.parent = parent;\n }\n if (BaseValue2)\n FramebufferAttachment2.__proto__ = BaseValue2;\n FramebufferAttachment2.prototype = Object.create(BaseValue2 && BaseValue2.prototype);\n FramebufferAttachment2.prototype.constructor = FramebufferAttachment2;\n FramebufferAttachment2.prototype.getDefault = function getDefault() {\n return null;\n };\n return FramebufferAttachment2;\n }(BaseValue);\n var ColorAttachment = function(FramebufferAttachment2) {\n function ColorAttachment2() {\n FramebufferAttachment2.apply(this, arguments);\n }\n if (FramebufferAttachment2)\n ColorAttachment2.__proto__ = FramebufferAttachment2;\n ColorAttachment2.prototype = Object.create(FramebufferAttachment2 && FramebufferAttachment2.prototype);\n ColorAttachment2.prototype.constructor = ColorAttachment2;\n ColorAttachment2.prototype.setDirty = function setDirty() {\n this.dirty = true;\n };\n ColorAttachment2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.context.bindFramebuffer.set(this.parent);\n var gl2 = this.gl;\n gl2.framebufferTexture2D(gl2.FRAMEBUFFER, gl2.COLOR_ATTACHMENT0, gl2.TEXTURE_2D, v, 0);\n this.current = v;\n this.dirty = false;\n };\n return ColorAttachment2;\n }(FramebufferAttachment);\n var DepthAttachment = function(FramebufferAttachment2) {\n function DepthAttachment2() {\n FramebufferAttachment2.apply(this, arguments);\n }\n if (FramebufferAttachment2)\n DepthAttachment2.__proto__ = FramebufferAttachment2;\n DepthAttachment2.prototype = Object.create(FramebufferAttachment2 && FramebufferAttachment2.prototype);\n DepthAttachment2.prototype.constructor = DepthAttachment2;\n DepthAttachment2.prototype.set = function set(v) {\n if (v === this.current && !this.dirty) {\n return;\n }\n this.context.bindFramebuffer.set(this.parent);\n var gl2 = this.gl;\n gl2.framebufferRenderbuffer(gl2.FRAMEBUFFER, gl2.DEPTH_ATTACHMENT, gl2.RENDERBUFFER, v);\n this.current = v;\n this.dirty = false;\n };\n return DepthAttachment2;\n }(FramebufferAttachment);\n var Framebuffer = function Framebuffer2(context, width, height, hasDepth) {\n this.context = context;\n this.width = width;\n this.height = height;\n var gl2 = context.gl;\n var fbo = this.framebuffer = gl2.createFramebuffer();\n this.colorAttachment = new ColorAttachment(context, fbo);\n if (hasDepth) {\n this.depthAttachment = new DepthAttachment(context, fbo);\n }\n };\n Framebuffer.prototype.destroy = function destroy() {\n var gl2 = this.context.gl;\n var texture = this.colorAttachment.get();\n if (texture) {\n gl2.deleteTexture(texture);\n }\n if (this.depthAttachment) {\n var renderbuffer = this.depthAttachment.get();\n if (renderbuffer) {\n gl2.deleteRenderbuffer(renderbuffer);\n }\n }\n gl2.deleteFramebuffer(this.framebuffer);\n };\n var ALWAYS = 519;\n var DepthMode = function DepthMode2(depthFunc, depthMask, depthRange) {\n this.func = depthFunc;\n this.mask = depthMask;\n this.range = depthRange;\n };\n DepthMode.ReadOnly = false;\n DepthMode.ReadWrite = true;\n DepthMode.disabled = new DepthMode(ALWAYS, DepthMode.ReadOnly, [\n 0,\n 1\n ]);\n var ALWAYS$1 = 519;\n var KEEP = 7680;\n var StencilMode = function StencilMode2(test, ref, mask, fail, depthFail, pass) {\n this.test = test;\n this.ref = ref;\n this.mask = mask;\n this.fail = fail;\n this.depthFail = depthFail;\n this.pass = pass;\n };\n StencilMode.disabled = new StencilMode({\n func: ALWAYS$1,\n mask: 0\n }, 0, 0, KEEP, KEEP, KEEP);\n var ZERO = 0;\n var ONE = 1;\n var ONE_MINUS_SRC_ALPHA = 771;\n var ColorMode = function ColorMode2(blendFunction, blendColor, mask) {\n this.blendFunction = blendFunction;\n this.blendColor = blendColor;\n this.mask = mask;\n };\n ColorMode.Replace = [\n ONE,\n ZERO\n ];\n ColorMode.disabled = new ColorMode(ColorMode.Replace, performance2.Color.transparent, [\n false,\n false,\n false,\n false\n ]);\n ColorMode.unblended = new ColorMode(ColorMode.Replace, performance2.Color.transparent, [\n true,\n true,\n true,\n true\n ]);\n ColorMode.alphaBlended = new ColorMode([\n ONE,\n ONE_MINUS_SRC_ALPHA\n ], performance2.Color.transparent, [\n true,\n true,\n true,\n true\n ]);\n var BACK = 1029;\n var CCW = 2305;\n var CullFaceMode = function CullFaceMode2(enable, mode, frontFace) {\n this.enable = enable;\n this.mode = mode;\n this.frontFace = frontFace;\n };\n CullFaceMode.disabled = new CullFaceMode(false, BACK, CCW);\n CullFaceMode.backCCW = new CullFaceMode(true, BACK, CCW);\n var Context = function Context2(gl2) {\n this.gl = gl2;\n this.extVertexArrayObject = this.gl.getExtension(\"OES_vertex_array_object\");\n this.clearColor = new ClearColor(this);\n this.clearDepth = new ClearDepth(this);\n this.clearStencil = new ClearStencil(this);\n this.colorMask = new ColorMask(this);\n this.depthMask = new DepthMask(this);\n this.stencilMask = new StencilMask(this);\n this.stencilFunc = new StencilFunc(this);\n this.stencilOp = new StencilOp(this);\n this.stencilTest = new StencilTest(this);\n this.depthRange = new DepthRange(this);\n this.depthTest = new DepthTest(this);\n this.depthFunc = new DepthFunc(this);\n this.blend = new Blend(this);\n this.blendFunc = new BlendFunc(this);\n this.blendColor = new BlendColor(this);\n this.blendEquation = new BlendEquation(this);\n this.cullFace = new CullFace(this);\n this.cullFaceSide = new CullFaceSide(this);\n this.frontFace = new FrontFace(this);\n this.program = new Program(this);\n this.activeTexture = new ActiveTextureUnit(this);\n this.viewport = new Viewport(this);\n this.bindFramebuffer = new BindFramebuffer(this);\n this.bindRenderbuffer = new BindRenderbuffer(this);\n this.bindTexture = new BindTexture(this);\n this.bindVertexBuffer = new BindVertexBuffer(this);\n this.bindElementBuffer = new BindElementBuffer(this);\n this.bindVertexArrayOES = this.extVertexArrayObject && new BindVertexArrayOES(this);\n this.pixelStoreUnpack = new PixelStoreUnpack(this);\n this.pixelStoreUnpackPremultiplyAlpha = new PixelStoreUnpackPremultiplyAlpha(this);\n this.pixelStoreUnpackFlipY = new PixelStoreUnpackFlipY(this);\n this.extTextureFilterAnisotropic = gl2.getExtension(\"EXT_texture_filter_anisotropic\") || gl2.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || gl2.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");\n if (this.extTextureFilterAnisotropic) {\n this.extTextureFilterAnisotropicMax = gl2.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT);\n }\n this.extTextureHalfFloat = gl2.getExtension(\"OES_texture_half_float\");\n if (this.extTextureHalfFloat) {\n gl2.getExtension(\"OES_texture_half_float_linear\");\n this.extRenderToTextureHalfFloat = gl2.getExtension(\"EXT_color_buffer_half_float\");\n }\n this.extTimerQuery = gl2.getExtension(\"EXT_disjoint_timer_query\");\n this.maxTextureSize = gl2.getParameter(gl2.MAX_TEXTURE_SIZE);\n };\n Context.prototype.setDefault = function setDefault() {\n this.unbindVAO();\n this.clearColor.setDefault();\n this.clearDepth.setDefault();\n this.clearStencil.setDefault();\n this.colorMask.setDefault();\n this.depthMask.setDefault();\n this.stencilMask.setDefault();\n this.stencilFunc.setDefault();\n this.stencilOp.setDefault();\n this.stencilTest.setDefault();\n this.depthRange.setDefault();\n this.depthTest.setDefault();\n this.depthFunc.setDefault();\n this.blend.setDefault();\n this.blendFunc.setDefault();\n this.blendColor.setDefault();\n this.blendEquation.setDefault();\n this.cullFace.setDefault();\n this.cullFaceSide.setDefault();\n this.frontFace.setDefault();\n this.program.setDefault();\n this.activeTexture.setDefault();\n this.bindFramebuffer.setDefault();\n this.pixelStoreUnpack.setDefault();\n this.pixelStoreUnpackPremultiplyAlpha.setDefault();\n this.pixelStoreUnpackFlipY.setDefault();\n };\n Context.prototype.setDirty = function setDirty() {\n this.clearColor.dirty = true;\n this.clearDepth.dirty = true;\n this.clearStencil.dirty = true;\n this.colorMask.dirty = true;\n this.depthMask.dirty = true;\n this.stencilMask.dirty = true;\n this.stencilFunc.dirty = true;\n this.stencilOp.dirty = true;\n this.stencilTest.dirty = true;\n this.depthRange.dirty = true;\n this.depthTest.dirty = true;\n this.depthFunc.dirty = true;\n this.blend.dirty = true;\n this.blendFunc.dirty = true;\n this.blendColor.dirty = true;\n this.blendEquation.dirty = true;\n this.cullFace.dirty = true;\n this.cullFaceSide.dirty = true;\n this.frontFace.dirty = true;\n this.program.dirty = true;\n this.activeTexture.dirty = true;\n this.viewport.dirty = true;\n this.bindFramebuffer.dirty = true;\n this.bindRenderbuffer.dirty = true;\n this.bindTexture.dirty = true;\n this.bindVertexBuffer.dirty = true;\n this.bindElementBuffer.dirty = true;\n if (this.extVertexArrayObject) {\n this.bindVertexArrayOES.dirty = true;\n }\n this.pixelStoreUnpack.dirty = true;\n this.pixelStoreUnpackPremultiplyAlpha.dirty = true;\n this.pixelStoreUnpackFlipY.dirty = true;\n };\n Context.prototype.createIndexBuffer = function createIndexBuffer(array, dynamicDraw) {\n return new IndexBuffer(this, array, dynamicDraw);\n };\n Context.prototype.createVertexBuffer = function createVertexBuffer(array, attributes, dynamicDraw) {\n return new VertexBuffer(this, array, attributes, dynamicDraw);\n };\n Context.prototype.createRenderbuffer = function createRenderbuffer(storageFormat, width, height) {\n var gl2 = this.gl;\n var rbo = gl2.createRenderbuffer();\n this.bindRenderbuffer.set(rbo);\n gl2.renderbufferStorage(gl2.RENDERBUFFER, storageFormat, width, height);\n this.bindRenderbuffer.set(null);\n return rbo;\n };\n Context.prototype.createFramebuffer = function createFramebuffer(width, height, hasDepth) {\n return new Framebuffer(this, width, height, hasDepth);\n };\n Context.prototype.clear = function clear(ref) {\n var color2 = ref.color;\n var depth = ref.depth;\n var gl2 = this.gl;\n var mask = 0;\n if (color2) {\n mask |= gl2.COLOR_BUFFER_BIT;\n this.clearColor.set(color2);\n this.colorMask.set([\n true,\n true,\n true,\n true\n ]);\n }\n if (typeof depth !== \"undefined\") {\n mask |= gl2.DEPTH_BUFFER_BIT;\n this.depthRange.set([\n 0,\n 1\n ]);\n this.clearDepth.set(depth);\n this.depthMask.set(true);\n }\n gl2.clear(mask);\n };\n Context.prototype.setCullFace = function setCullFace(cullFaceMode) {\n if (cullFaceMode.enable === false) {\n this.cullFace.set(false);\n } else {\n this.cullFace.set(true);\n this.cullFaceSide.set(cullFaceMode.mode);\n this.frontFace.set(cullFaceMode.frontFace);\n }\n };\n Context.prototype.setDepthMode = function setDepthMode(depthMode) {\n if (depthMode.func === this.gl.ALWAYS && !depthMode.mask) {\n this.depthTest.set(false);\n } else {\n this.depthTest.set(true);\n this.depthFunc.set(depthMode.func);\n this.depthMask.set(depthMode.mask);\n this.depthRange.set(depthMode.range);\n }\n };\n Context.prototype.setStencilMode = function setStencilMode(stencilMode) {\n if (stencilMode.test.func === this.gl.ALWAYS && !stencilMode.mask) {\n this.stencilTest.set(false);\n } else {\n this.stencilTest.set(true);\n this.stencilMask.set(stencilMode.mask);\n this.stencilOp.set([\n stencilMode.fail,\n stencilMode.depthFail,\n stencilMode.pass\n ]);\n this.stencilFunc.set({\n func: stencilMode.test.func,\n ref: stencilMode.ref,\n mask: stencilMode.test.mask\n });\n }\n };\n Context.prototype.setColorMode = function setColorMode(colorMode) {\n if (performance2.deepEqual(colorMode.blendFunction, ColorMode.Replace)) {\n this.blend.set(false);\n } else {\n this.blend.set(true);\n this.blendFunc.set(colorMode.blendFunction);\n this.blendColor.set(colorMode.blendColor);\n }\n this.colorMask.set(colorMode.mask);\n };\n Context.prototype.unbindVAO = function unbindVAO() {\n if (this.extVertexArrayObject) {\n this.bindVertexArrayOES.set(null);\n }\n };\n var SourceCache = function(Evented) {\n function SourceCache2(id, options, dispatcher) {\n var this$1 = this;\n Evented.call(this);\n this.id = id;\n this.dispatcher = dispatcher;\n this.on(\"data\", function(e) {\n if (e.dataType === \"source\" && e.sourceDataType === \"metadata\") {\n this$1._sourceLoaded = true;\n }\n if (this$1._sourceLoaded && !this$1._paused && e.dataType === \"source\" && e.sourceDataType === \"content\") {\n this$1.reload();\n if (this$1.transform) {\n this$1.update(this$1.transform);\n }\n }\n });\n this.on(\"error\", function() {\n this$1._sourceErrored = true;\n });\n this._source = create(id, options, dispatcher, this);\n this._tiles = {};\n this._cache = new TileCache(0, this._unloadTile.bind(this));\n this._timers = {};\n this._cacheTimers = {};\n this._maxTileCacheSize = null;\n this._loadedParentTiles = {};\n this._coveredTiles = {};\n this._state = new performance2.SourceFeatureState();\n }\n if (Evented)\n SourceCache2.__proto__ = Evented;\n SourceCache2.prototype = Object.create(Evented && Evented.prototype);\n SourceCache2.prototype.constructor = SourceCache2;\n SourceCache2.prototype.onAdd = function onAdd(map) {\n this.map = map;\n this._maxTileCacheSize = map ? map._maxTileCacheSize : null;\n if (this._source && this._source.onAdd) {\n this._source.onAdd(map);\n }\n };\n SourceCache2.prototype.onRemove = function onRemove(map) {\n if (this._source && this._source.onRemove) {\n this._source.onRemove(map);\n }\n };\n SourceCache2.prototype.loaded = function loaded() {\n if (this._sourceErrored) {\n return true;\n }\n if (!this._sourceLoaded) {\n return false;\n }\n if (!this._source.loaded()) {\n return false;\n }\n for (var t in this._tiles) {\n var tile = this._tiles[t];\n if (tile.state !== \"loaded\" && tile.state !== \"errored\") {\n return false;\n }\n }\n return true;\n };\n SourceCache2.prototype.getSource = function getSource() {\n return this._source;\n };\n SourceCache2.prototype.pause = function pause() {\n this._paused = true;\n };\n SourceCache2.prototype.resume = function resume() {\n if (!this._paused) {\n return;\n }\n var shouldReload = this._shouldReloadOnResume;\n this._paused = false;\n this._shouldReloadOnResume = false;\n if (shouldReload) {\n this.reload();\n }\n if (this.transform) {\n this.update(this.transform);\n }\n };\n SourceCache2.prototype._loadTile = function _loadTile(tile, callback) {\n return this._source.loadTile(tile, callback);\n };\n SourceCache2.prototype._unloadTile = function _unloadTile(tile) {\n if (this._source.unloadTile) {\n return this._source.unloadTile(tile, function() {\n });\n }\n };\n SourceCache2.prototype._abortTile = function _abortTile(tile) {\n if (this._source.abortTile) {\n return this._source.abortTile(tile, function() {\n });\n }\n };\n SourceCache2.prototype.serialize = function serialize() {\n return this._source.serialize();\n };\n SourceCache2.prototype.prepare = function prepare(context) {\n if (this._source.prepare) {\n this._source.prepare();\n }\n this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null);\n for (var i in this._tiles) {\n var tile = this._tiles[i];\n tile.upload(context);\n tile.prepare(this.map.style.imageManager);\n }\n };\n SourceCache2.prototype.getIds = function getIds() {\n return performance2.values(this._tiles).map(function(tile) {\n return tile.tileID;\n }).sort(compareTileId).map(function(id) {\n return id.key;\n });\n };\n SourceCache2.prototype.getRenderableIds = function getRenderableIds(symbolLayer) {\n var this$1 = this;\n var renderables = [];\n for (var id in this._tiles) {\n if (this._isIdRenderable(id, symbolLayer)) {\n renderables.push(this._tiles[id]);\n }\n }\n if (symbolLayer) {\n return renderables.sort(function(a_, b_) {\n var a = a_.tileID;\n var b = b_.tileID;\n var rotatedA = new performance2.Point(a.canonical.x, a.canonical.y)._rotate(this$1.transform.angle);\n var rotatedB = new performance2.Point(b.canonical.x, b.canonical.y)._rotate(this$1.transform.angle);\n return a.overscaledZ - b.overscaledZ || rotatedB.y - rotatedA.y || rotatedB.x - rotatedA.x;\n }).map(function(tile) {\n return tile.tileID.key;\n });\n }\n return renderables.map(function(tile) {\n return tile.tileID;\n }).sort(compareTileId).map(function(id2) {\n return id2.key;\n });\n };\n SourceCache2.prototype.hasRenderableParent = function hasRenderableParent(tileID) {\n var parentTile = this.findLoadedParent(tileID, 0);\n if (parentTile) {\n return this._isIdRenderable(parentTile.tileID.key);\n }\n return false;\n };\n SourceCache2.prototype._isIdRenderable = function _isIdRenderable(id, symbolLayer) {\n return this._tiles[id] && this._tiles[id].hasData() && !this._coveredTiles[id] && (symbolLayer || !this._tiles[id].holdingForFade());\n };\n SourceCache2.prototype.reload = function reload() {\n if (this._paused) {\n this._shouldReloadOnResume = true;\n return;\n }\n this._cache.reset();\n for (var i in this._tiles) {\n if (this._tiles[i].state !== \"errored\") {\n this._reloadTile(i, \"reloading\");\n }\n }\n };\n SourceCache2.prototype._reloadTile = function _reloadTile(id, state) {\n var tile = this._tiles[id];\n if (!tile) {\n return;\n }\n if (tile.state !== \"loading\") {\n tile.state = state;\n }\n this._loadTile(tile, this._tileLoaded.bind(this, tile, id, state));\n };\n SourceCache2.prototype._tileLoaded = function _tileLoaded(tile, id, previousState, err) {\n if (err) {\n tile.state = \"errored\";\n if (err.status !== 404) {\n this._source.fire(new performance2.ErrorEvent(err, { tile }));\n } else {\n this.update(this.transform);\n }\n return;\n }\n tile.timeAdded = performance2.browser.now();\n if (previousState === \"expired\") {\n tile.refreshedUponExpiration = true;\n }\n this._setTileReloadTimer(id, tile);\n if (this.getSource().type === \"raster-dem\" && tile.dem) {\n this._backfillDEM(tile);\n }\n this._state.initializeTileState(tile, this.map ? this.map.painter : null);\n this._source.fire(new performance2.Event(\"data\", {\n dataType: \"source\",\n tile,\n coord: tile.tileID\n }));\n };\n SourceCache2.prototype._backfillDEM = function _backfillDEM(tile) {\n var renderables = this.getRenderableIds();\n for (var i = 0; i < renderables.length; i++) {\n var borderId = renderables[i];\n if (tile.neighboringTiles && tile.neighboringTiles[borderId]) {\n var borderTile = this.getTileByID(borderId);\n fillBorder(tile, borderTile);\n fillBorder(borderTile, tile);\n }\n }\n function fillBorder(tile2, borderTile2) {\n tile2.needsHillshadePrepare = true;\n var dx = borderTile2.tileID.canonical.x - tile2.tileID.canonical.x;\n var dy = borderTile2.tileID.canonical.y - tile2.tileID.canonical.y;\n var dim = Math.pow(2, tile2.tileID.canonical.z);\n var borderId2 = borderTile2.tileID.key;\n if (dx === 0 && dy === 0) {\n return;\n }\n if (Math.abs(dy) > 1) {\n return;\n }\n if (Math.abs(dx) > 1) {\n if (Math.abs(dx + dim) === 1) {\n dx += dim;\n } else if (Math.abs(dx - dim) === 1) {\n dx -= dim;\n }\n }\n if (!borderTile2.dem || !tile2.dem) {\n return;\n }\n tile2.dem.backfillBorder(borderTile2.dem, dx, dy);\n if (tile2.neighboringTiles && tile2.neighboringTiles[borderId2]) {\n tile2.neighboringTiles[borderId2].backfilled = true;\n }\n }\n };\n SourceCache2.prototype.getTile = function getTile(tileID) {\n return this.getTileByID(tileID.key);\n };\n SourceCache2.prototype.getTileByID = function getTileByID(id) {\n return this._tiles[id];\n };\n SourceCache2.prototype._retainLoadedChildren = function _retainLoadedChildren(idealTiles, zoom, maxCoveringZoom, retain) {\n for (var id in this._tiles) {\n var tile = this._tiles[id];\n if (retain[id] || !tile.hasData() || tile.tileID.overscaledZ <= zoom || tile.tileID.overscaledZ > maxCoveringZoom) {\n continue;\n }\n var topmostLoadedID = tile.tileID;\n while (tile && tile.tileID.overscaledZ > zoom + 1) {\n var parentID = tile.tileID.scaledTo(tile.tileID.overscaledZ - 1);\n tile = this._tiles[parentID.key];\n if (tile && tile.hasData()) {\n topmostLoadedID = parentID;\n }\n }\n var tileID = topmostLoadedID;\n while (tileID.overscaledZ > zoom) {\n tileID = tileID.scaledTo(tileID.overscaledZ - 1);\n if (idealTiles[tileID.key]) {\n retain[topmostLoadedID.key] = topmostLoadedID;\n break;\n }\n }\n }\n };\n SourceCache2.prototype.findLoadedParent = function findLoadedParent(tileID, minCoveringZoom) {\n if (tileID.key in this._loadedParentTiles) {\n var parent = this._loadedParentTiles[tileID.key];\n if (parent && parent.tileID.overscaledZ >= minCoveringZoom) {\n return parent;\n } else {\n return null;\n }\n }\n for (var z = tileID.overscaledZ - 1; z >= minCoveringZoom; z--) {\n var parentTileID = tileID.scaledTo(z);\n var tile = this._getLoadedTile(parentTileID);\n if (tile) {\n return tile;\n }\n }\n };\n SourceCache2.prototype._getLoadedTile = function _getLoadedTile(tileID) {\n var tile = this._tiles[tileID.key];\n if (tile && tile.hasData()) {\n return tile;\n }\n var cachedTile = this._cache.getByKey(tileID.wrapped().key);\n return cachedTile;\n };\n SourceCache2.prototype.updateCacheSize = function updateCacheSize(transform) {\n var widthInTiles = Math.ceil(transform.width / this._source.tileSize) + 1;\n var heightInTiles = Math.ceil(transform.height / this._source.tileSize) + 1;\n var approxTilesInView = widthInTiles * heightInTiles;\n var commonZoomRange = 5;\n var viewDependentMaxSize = Math.floor(approxTilesInView * commonZoomRange);\n var maxSize = typeof this._maxTileCacheSize === \"number\" ? Math.min(this._maxTileCacheSize, viewDependentMaxSize) : viewDependentMaxSize;\n this._cache.setMaxSize(maxSize);\n };\n SourceCache2.prototype.handleWrapJump = function handleWrapJump(lng) {\n var prevLng = this._prevLng === void 0 ? lng : this._prevLng;\n var lngDifference = lng - prevLng;\n var worldDifference = lngDifference / 360;\n var wrapDelta = Math.round(worldDifference);\n this._prevLng = lng;\n if (wrapDelta) {\n var tiles = {};\n for (var key in this._tiles) {\n var tile = this._tiles[key];\n tile.tileID = tile.tileID.unwrapTo(tile.tileID.wrap + wrapDelta);\n tiles[tile.tileID.key] = tile;\n }\n this._tiles = tiles;\n for (var id in this._timers) {\n clearTimeout(this._timers[id]);\n delete this._timers[id];\n }\n for (var id$1 in this._tiles) {\n var tile$1 = this._tiles[id$1];\n this._setTileReloadTimer(id$1, tile$1);\n }\n }\n };\n SourceCache2.prototype.update = function update(transform) {\n var this$1 = this;\n this.transform = transform;\n if (!this._sourceLoaded || this._paused) {\n return;\n }\n this.updateCacheSize(transform);\n this.handleWrapJump(this.transform.center.lng);\n this._coveredTiles = {};\n var idealTileIDs;\n if (!this.used) {\n idealTileIDs = [];\n } else if (this._source.tileID) {\n idealTileIDs = transform.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(unwrapped) {\n return new performance2.OverscaledTileID(unwrapped.canonical.z, unwrapped.wrap, unwrapped.canonical.z, unwrapped.canonical.x, unwrapped.canonical.y);\n });\n } else {\n idealTileIDs = transform.coveringTiles({\n tileSize: this._source.tileSize,\n minzoom: this._source.minzoom,\n maxzoom: this._source.maxzoom,\n roundZoom: this._source.roundZoom,\n reparseOverscaled: this._source.reparseOverscaled\n });\n if (this._source.hasTile) {\n idealTileIDs = idealTileIDs.filter(function(coord) {\n return this$1._source.hasTile(coord);\n });\n }\n }\n var zoom = transform.coveringZoomLevel(this._source);\n var minCoveringZoom = Math.max(zoom - SourceCache2.maxOverzooming, this._source.minzoom);\n var maxCoveringZoom = Math.max(zoom + SourceCache2.maxUnderzooming, this._source.minzoom);\n var retain = this._updateRetainedTiles(idealTileIDs, zoom);\n if (isRasterType(this._source.type)) {\n var parentsForFading = {};\n var fadingTiles = {};\n var ids = Object.keys(retain);\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var tileID = retain[id];\n var tile = this._tiles[id];\n if (!tile || tile.fadeEndTime && tile.fadeEndTime <= performance2.browser.now()) {\n continue;\n }\n var parentTile = this.findLoadedParent(tileID, minCoveringZoom);\n if (parentTile) {\n this._addTile(parentTile.tileID);\n parentsForFading[parentTile.tileID.key] = parentTile.tileID;\n }\n fadingTiles[id] = tileID;\n }\n this._retainLoadedChildren(fadingTiles, zoom, maxCoveringZoom, retain);\n for (var id$1 in parentsForFading) {\n if (!retain[id$1]) {\n this._coveredTiles[id$1] = true;\n retain[id$1] = parentsForFading[id$1];\n }\n }\n }\n for (var retainedId in retain) {\n this._tiles[retainedId].clearFadeHold();\n }\n var remove = performance2.keysDifference(this._tiles, retain);\n for (var i$1 = 0, list$1 = remove; i$1 < list$1.length; i$1 += 1) {\n var tileID$1 = list$1[i$1];\n var tile$1 = this._tiles[tileID$1];\n if (tile$1.hasSymbolBuckets && !tile$1.holdingForFade()) {\n tile$1.setHoldDuration(this.map._fadeDuration);\n } else if (!tile$1.hasSymbolBuckets || tile$1.symbolFadeFinished()) {\n this._removeTile(tileID$1);\n }\n }\n this._updateLoadedParentTileCache();\n };\n SourceCache2.prototype.releaseSymbolFadeTiles = function releaseSymbolFadeTiles() {\n for (var id in this._tiles) {\n if (this._tiles[id].holdingForFade()) {\n this._removeTile(id);\n }\n }\n };\n SourceCache2.prototype._updateRetainedTiles = function _updateRetainedTiles(idealTileIDs, zoom) {\n var retain = {};\n var checked = {};\n var minCoveringZoom = Math.max(zoom - SourceCache2.maxOverzooming, this._source.minzoom);\n var maxCoveringZoom = Math.max(zoom + SourceCache2.maxUnderzooming, this._source.minzoom);\n var missingTiles = {};\n for (var i = 0, list = idealTileIDs; i < list.length; i += 1) {\n var tileID = list[i];\n var tile = this._addTile(tileID);\n retain[tileID.key] = tileID;\n if (tile.hasData()) {\n continue;\n }\n if (zoom < this._source.maxzoom) {\n missingTiles[tileID.key] = tileID;\n }\n }\n this._retainLoadedChildren(missingTiles, zoom, maxCoveringZoom, retain);\n for (var i$1 = 0, list$1 = idealTileIDs; i$1 < list$1.length; i$1 += 1) {\n var tileID$1 = list$1[i$1];\n var tile$1 = this._tiles[tileID$1.key];\n if (tile$1.hasData()) {\n continue;\n }\n if (zoom + 1 > this._source.maxzoom) {\n var childCoord = tileID$1.children(this._source.maxzoom)[0];\n var childTile = this.getTile(childCoord);\n if (!!childTile && childTile.hasData()) {\n retain[childCoord.key] = childCoord;\n continue;\n }\n } else {\n var children = tileID$1.children(this._source.maxzoom);\n if (retain[children[0].key] && retain[children[1].key] && retain[children[2].key] && retain[children[3].key]) {\n continue;\n }\n }\n var parentWasRequested = tile$1.wasRequested();\n for (var overscaledZ = tileID$1.overscaledZ - 1; overscaledZ >= minCoveringZoom; --overscaledZ) {\n var parentId = tileID$1.scaledTo(overscaledZ);\n if (checked[parentId.key]) {\n break;\n }\n checked[parentId.key] = true;\n tile$1 = this.getTile(parentId);\n if (!tile$1 && parentWasRequested) {\n tile$1 = this._addTile(parentId);\n }\n if (tile$1) {\n retain[parentId.key] = parentId;\n parentWasRequested = tile$1.wasRequested();\n if (tile$1.hasData()) {\n break;\n }\n }\n }\n }\n return retain;\n };\n SourceCache2.prototype._updateLoadedParentTileCache = function _updateLoadedParentTileCache() {\n this._loadedParentTiles = {};\n for (var tileKey in this._tiles) {\n var path = [];\n var parentTile = void 0;\n var currentId = this._tiles[tileKey].tileID;\n while (currentId.overscaledZ > 0) {\n if (currentId.key in this._loadedParentTiles) {\n parentTile = this._loadedParentTiles[currentId.key];\n break;\n }\n path.push(currentId.key);\n var parentId = currentId.scaledTo(currentId.overscaledZ - 1);\n parentTile = this._getLoadedTile(parentId);\n if (parentTile) {\n break;\n }\n currentId = parentId;\n }\n for (var i = 0, list = path; i < list.length; i += 1) {\n var key = list[i];\n this._loadedParentTiles[key] = parentTile;\n }\n }\n };\n SourceCache2.prototype._addTile = function _addTile(tileID) {\n var tile = this._tiles[tileID.key];\n if (tile) {\n return tile;\n }\n tile = this._cache.getAndRemove(tileID);\n if (tile) {\n this._setTileReloadTimer(tileID.key, tile);\n tile.tileID = tileID;\n this._state.initializeTileState(tile, this.map ? this.map.painter : null);\n if (this._cacheTimers[tileID.key]) {\n clearTimeout(this._cacheTimers[tileID.key]);\n delete this._cacheTimers[tileID.key];\n this._setTileReloadTimer(tileID.key, tile);\n }\n }\n var cached = Boolean(tile);\n if (!cached) {\n tile = new performance2.Tile(tileID, this._source.tileSize * tileID.overscaleFactor());\n this._loadTile(tile, this._tileLoaded.bind(this, tile, tileID.key, tile.state));\n }\n if (!tile) {\n return null;\n }\n tile.uses++;\n this._tiles[tileID.key] = tile;\n if (!cached) {\n this._source.fire(new performance2.Event(\"dataloading\", {\n tile,\n coord: tile.tileID,\n dataType: \"source\"\n }));\n }\n return tile;\n };\n SourceCache2.prototype._setTileReloadTimer = function _setTileReloadTimer(id, tile) {\n var this$1 = this;\n if (id in this._timers) {\n clearTimeout(this._timers[id]);\n delete this._timers[id];\n }\n var expiryTimeout = tile.getExpiryTimeout();\n if (expiryTimeout) {\n this._timers[id] = setTimeout(function() {\n this$1._reloadTile(id, \"expired\");\n delete this$1._timers[id];\n }, expiryTimeout);\n }\n };\n SourceCache2.prototype._removeTile = function _removeTile(id) {\n var tile = this._tiles[id];\n if (!tile) {\n return;\n }\n tile.uses--;\n delete this._tiles[id];\n if (this._timers[id]) {\n clearTimeout(this._timers[id]);\n delete this._timers[id];\n }\n if (tile.uses > 0) {\n return;\n }\n if (tile.hasData() && tile.state !== \"reloading\") {\n this._cache.add(tile.tileID, tile, tile.getExpiryTimeout());\n } else {\n tile.aborted = true;\n this._abortTile(tile);\n this._unloadTile(tile);\n }\n };\n SourceCache2.prototype.clearTiles = function clearTiles() {\n this._shouldReloadOnResume = false;\n this._paused = false;\n for (var id in this._tiles) {\n this._removeTile(id);\n }\n this._cache.reset();\n };\n SourceCache2.prototype.tilesIn = function tilesIn(pointQueryGeometry, maxPitchScaleFactor, has3DLayer) {\n var this$1 = this;\n var tileResults = [];\n var transform = this.transform;\n if (!transform) {\n return tileResults;\n }\n var cameraPointQueryGeometry = has3DLayer ? transform.getCameraQueryGeometry(pointQueryGeometry) : pointQueryGeometry;\n var queryGeometry = pointQueryGeometry.map(function(p2) {\n return transform.pointCoordinate(p2);\n });\n var cameraQueryGeometry = cameraPointQueryGeometry.map(function(p2) {\n return transform.pointCoordinate(p2);\n });\n var ids = this.getIds();\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i$1 = 0, list = cameraQueryGeometry; i$1 < list.length; i$1 += 1) {\n var p = list[i$1];\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n var loop = function(i2) {\n var tile = this$1._tiles[ids[i2]];\n if (tile.holdingForFade()) {\n return;\n }\n var tileID = tile.tileID;\n var scale = Math.pow(2, transform.zoom - tile.tileID.overscaledZ);\n var queryPadding = maxPitchScaleFactor * tile.queryPadding * performance2.EXTENT / tile.tileSize / scale;\n var tileSpaceBounds = [\n tileID.getTilePoint(new performance2.MercatorCoordinate(minX, minY)),\n tileID.getTilePoint(new performance2.MercatorCoordinate(maxX, maxY))\n ];\n if (tileSpaceBounds[0].x - queryPadding < performance2.EXTENT && tileSpaceBounds[0].y - queryPadding < performance2.EXTENT && tileSpaceBounds[1].x + queryPadding >= 0 && tileSpaceBounds[1].y + queryPadding >= 0) {\n var tileSpaceQueryGeometry = queryGeometry.map(function(c) {\n return tileID.getTilePoint(c);\n });\n var tileSpaceCameraQueryGeometry = cameraQueryGeometry.map(function(c) {\n return tileID.getTilePoint(c);\n });\n tileResults.push({\n tile,\n tileID,\n queryGeometry: tileSpaceQueryGeometry,\n cameraQueryGeometry: tileSpaceCameraQueryGeometry,\n scale\n });\n }\n };\n for (var i = 0; i < ids.length; i++)\n loop(i);\n return tileResults;\n };\n SourceCache2.prototype.getVisibleCoordinates = function getVisibleCoordinates(symbolLayer) {\n var this$1 = this;\n var coords = this.getRenderableIds(symbolLayer).map(function(id) {\n return this$1._tiles[id].tileID;\n });\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n coord.posMatrix = this.transform.calculatePosMatrix(coord.toUnwrapped());\n }\n return coords;\n };\n SourceCache2.prototype.hasTransition = function hasTransition() {\n if (this._source.hasTransition()) {\n return true;\n }\n if (isRasterType(this._source.type)) {\n for (var id in this._tiles) {\n var tile = this._tiles[id];\n if (tile.fadeEndTime !== void 0 && tile.fadeEndTime >= performance2.browser.now()) {\n return true;\n }\n }\n }\n return false;\n };\n SourceCache2.prototype.setFeatureState = function setFeatureState(sourceLayer, featureId, state) {\n sourceLayer = sourceLayer || \"_geojsonTileLayer\";\n this._state.updateState(sourceLayer, featureId, state);\n };\n SourceCache2.prototype.removeFeatureState = function removeFeatureState(sourceLayer, featureId, key) {\n sourceLayer = sourceLayer || \"_geojsonTileLayer\";\n this._state.removeFeatureState(sourceLayer, featureId, key);\n };\n SourceCache2.prototype.getFeatureState = function getFeatureState(sourceLayer, featureId) {\n sourceLayer = sourceLayer || \"_geojsonTileLayer\";\n return this._state.getState(sourceLayer, featureId);\n };\n SourceCache2.prototype.setDependencies = function setDependencies(tileKey, namespace, dependencies) {\n var tile = this._tiles[tileKey];\n if (tile) {\n tile.setDependencies(namespace, dependencies);\n }\n };\n SourceCache2.prototype.reloadTilesForDependencies = function reloadTilesForDependencies(namespaces, keys) {\n for (var id in this._tiles) {\n var tile = this._tiles[id];\n if (tile.hasDependency(namespaces, keys)) {\n this._reloadTile(id, \"reloading\");\n }\n }\n this._cache.filter(function(tile2) {\n return !tile2.hasDependency(namespaces, keys);\n });\n };\n return SourceCache2;\n }(performance2.Evented);\n SourceCache.maxOverzooming = 10;\n SourceCache.maxUnderzooming = 3;\n function compareTileId(a, b) {\n var aWrap = Math.abs(a.wrap * 2) - +(a.wrap < 0);\n var bWrap = Math.abs(b.wrap * 2) - +(b.wrap < 0);\n return a.overscaledZ - b.overscaledZ || bWrap - aWrap || b.canonical.y - a.canonical.y || b.canonical.x - a.canonical.x;\n }\n function isRasterType(type) {\n return type === \"raster\" || type === \"image\" || type === \"video\";\n }\n function WebWorker() {\n return new performance2.window.Worker(exported.workerUrl);\n }\n var PRELOAD_POOL_ID = \"mapboxgl_preloaded_worker_pool\";\n var WorkerPool = function WorkerPool2() {\n this.active = {};\n };\n WorkerPool.prototype.acquire = function acquire(mapId) {\n if (!this.workers) {\n this.workers = [];\n while (this.workers.length < WorkerPool.workerCount) {\n this.workers.push(new WebWorker());\n }\n }\n this.active[mapId] = true;\n return this.workers.slice();\n };\n WorkerPool.prototype.release = function release(mapId) {\n delete this.active[mapId];\n if (this.numActive() === 0) {\n this.workers.forEach(function(w) {\n w.terminate();\n });\n this.workers = null;\n }\n };\n WorkerPool.prototype.isPreloaded = function isPreloaded() {\n return !!this.active[PRELOAD_POOL_ID];\n };\n WorkerPool.prototype.numActive = function numActive() {\n return Object.keys(this.active).length;\n };\n var availableLogicalProcessors = Math.floor(performance2.browser.hardwareConcurrency / 2);\n WorkerPool.workerCount = Math.max(Math.min(availableLogicalProcessors, 6), 1);\n var globalWorkerPool;\n function getGlobalWorkerPool() {\n if (!globalWorkerPool) {\n globalWorkerPool = new WorkerPool();\n }\n return globalWorkerPool;\n }\n function prewarm() {\n var workerPool = getGlobalWorkerPool();\n workerPool.acquire(PRELOAD_POOL_ID);\n }\n function clearPrewarmedResources() {\n var pool = globalWorkerPool;\n if (pool) {\n if (pool.isPreloaded() && pool.numActive() === 1) {\n pool.release(PRELOAD_POOL_ID);\n globalWorkerPool = null;\n } else {\n console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\");\n }\n }\n }\n function deref(layer, parent) {\n var result = {};\n for (var k in layer) {\n if (k !== \"ref\") {\n result[k] = layer[k];\n }\n }\n performance2.refProperties.forEach(function(k2) {\n if (k2 in parent) {\n result[k2] = parent[k2];\n }\n });\n return result;\n }\n function derefLayers(layers) {\n layers = layers.slice();\n var map = /* @__PURE__ */ Object.create(null);\n for (var i = 0; i < layers.length; i++) {\n map[layers[i].id] = layers[i];\n }\n for (var i$1 = 0; i$1 < layers.length; i$1++) {\n if (\"ref\" in layers[i$1]) {\n layers[i$1] = deref(layers[i$1], map[layers[i$1].ref]);\n }\n }\n return layers;\n }\n function emptyStyle() {\n var style = {};\n var version = performance2.styleSpec[\"$version\"];\n for (var styleKey in performance2.styleSpec[\"$root\"]) {\n var spec = performance2.styleSpec[\"$root\"][styleKey];\n if (spec.required) {\n var value = null;\n if (styleKey === \"version\") {\n value = version;\n } else {\n if (spec.type === \"array\") {\n value = [];\n } else {\n value = {};\n }\n }\n if (value != null) {\n style[styleKey] = value;\n }\n }\n }\n return style;\n }\n var operations = {\n setStyle: \"setStyle\",\n addLayer: \"addLayer\",\n removeLayer: \"removeLayer\",\n setPaintProperty: \"setPaintProperty\",\n setLayoutProperty: \"setLayoutProperty\",\n setFilter: \"setFilter\",\n addSource: \"addSource\",\n removeSource: \"removeSource\",\n setGeoJSONSourceData: \"setGeoJSONSourceData\",\n setLayerZoomRange: \"setLayerZoomRange\",\n setLayerProperty: \"setLayerProperty\",\n setCenter: \"setCenter\",\n setZoom: \"setZoom\",\n setBearing: \"setBearing\",\n setPitch: \"setPitch\",\n setSprite: \"setSprite\",\n setGlyphs: \"setGlyphs\",\n setTransition: \"setTransition\",\n setLight: \"setLight\"\n };\n function addSource(sourceId, after, commands) {\n commands.push({\n command: operations.addSource,\n args: [\n sourceId,\n after[sourceId]\n ]\n });\n }\n function removeSource(sourceId, commands, sourcesRemoved) {\n commands.push({\n command: operations.removeSource,\n args: [sourceId]\n });\n sourcesRemoved[sourceId] = true;\n }\n function updateSource(sourceId, after, commands, sourcesRemoved) {\n removeSource(sourceId, commands, sourcesRemoved);\n addSource(sourceId, after, commands);\n }\n function canUpdateGeoJSON(before, after, sourceId) {\n var prop;\n for (prop in before[sourceId]) {\n if (!before[sourceId].hasOwnProperty(prop)) {\n continue;\n }\n if (prop !== \"data\" && !performance2.deepEqual(before[sourceId][prop], after[sourceId][prop])) {\n return false;\n }\n }\n for (prop in after[sourceId]) {\n if (!after[sourceId].hasOwnProperty(prop)) {\n continue;\n }\n if (prop !== \"data\" && !performance2.deepEqual(before[sourceId][prop], after[sourceId][prop])) {\n return false;\n }\n }\n return true;\n }\n function diffSources(before, after, commands, sourcesRemoved) {\n before = before || {};\n after = after || {};\n var sourceId;\n for (sourceId in before) {\n if (!before.hasOwnProperty(sourceId)) {\n continue;\n }\n if (!after.hasOwnProperty(sourceId)) {\n removeSource(sourceId, commands, sourcesRemoved);\n }\n }\n for (sourceId in after) {\n if (!after.hasOwnProperty(sourceId)) {\n continue;\n }\n if (!before.hasOwnProperty(sourceId)) {\n addSource(sourceId, after, commands);\n } else if (!performance2.deepEqual(before[sourceId], after[sourceId])) {\n if (before[sourceId].type === \"geojson\" && after[sourceId].type === \"geojson\" && canUpdateGeoJSON(before, after, sourceId)) {\n commands.push({\n command: operations.setGeoJSONSourceData,\n args: [\n sourceId,\n after[sourceId].data\n ]\n });\n } else {\n updateSource(sourceId, after, commands, sourcesRemoved);\n }\n }\n }\n }\n function diffLayerPropertyChanges(before, after, commands, layerId, klass, command) {\n before = before || {};\n after = after || {};\n var prop;\n for (prop in before) {\n if (!before.hasOwnProperty(prop)) {\n continue;\n }\n if (!performance2.deepEqual(before[prop], after[prop])) {\n commands.push({\n command,\n args: [\n layerId,\n prop,\n after[prop],\n klass\n ]\n });\n }\n }\n for (prop in after) {\n if (!after.hasOwnProperty(prop) || before.hasOwnProperty(prop)) {\n continue;\n }\n if (!performance2.deepEqual(before[prop], after[prop])) {\n commands.push({\n command,\n args: [\n layerId,\n prop,\n after[prop],\n klass\n ]\n });\n }\n }\n }\n function pluckId(layer) {\n return layer.id;\n }\n function indexById(group, layer) {\n group[layer.id] = layer;\n return group;\n }\n function diffLayers(before, after, commands) {\n before = before || [];\n after = after || [];\n var beforeOrder = before.map(pluckId);\n var afterOrder = after.map(pluckId);\n var beforeIndex = before.reduce(indexById, {});\n var afterIndex = after.reduce(indexById, {});\n var tracker = beforeOrder.slice();\n var clean = /* @__PURE__ */ Object.create(null);\n var i, d, layerId, beforeLayer, afterLayer, insertBeforeLayerId, prop;\n for (i = 0, d = 0; i < beforeOrder.length; i++) {\n layerId = beforeOrder[i];\n if (!afterIndex.hasOwnProperty(layerId)) {\n commands.push({\n command: operations.removeLayer,\n args: [layerId]\n });\n tracker.splice(tracker.indexOf(layerId, d), 1);\n } else {\n d++;\n }\n }\n for (i = 0, d = 0; i < afterOrder.length; i++) {\n layerId = afterOrder[afterOrder.length - 1 - i];\n if (tracker[tracker.length - 1 - i] === layerId) {\n continue;\n }\n if (beforeIndex.hasOwnProperty(layerId)) {\n commands.push({\n command: operations.removeLayer,\n args: [layerId]\n });\n tracker.splice(tracker.lastIndexOf(layerId, tracker.length - d), 1);\n } else {\n d++;\n }\n insertBeforeLayerId = tracker[tracker.length - i];\n commands.push({\n command: operations.addLayer,\n args: [\n afterIndex[layerId],\n insertBeforeLayerId\n ]\n });\n tracker.splice(tracker.length - i, 0, layerId);\n clean[layerId] = true;\n }\n for (i = 0; i < afterOrder.length; i++) {\n layerId = afterOrder[i];\n beforeLayer = beforeIndex[layerId];\n afterLayer = afterIndex[layerId];\n if (clean[layerId] || performance2.deepEqual(beforeLayer, afterLayer)) {\n continue;\n }\n if (!performance2.deepEqual(beforeLayer.source, afterLayer.source) || !performance2.deepEqual(beforeLayer[\"source-layer\"], afterLayer[\"source-layer\"]) || !performance2.deepEqual(beforeLayer.type, afterLayer.type)) {\n commands.push({\n command: operations.removeLayer,\n args: [layerId]\n });\n insertBeforeLayerId = tracker[tracker.lastIndexOf(layerId) + 1];\n commands.push({\n command: operations.addLayer,\n args: [\n afterLayer,\n insertBeforeLayerId\n ]\n });\n continue;\n }\n diffLayerPropertyChanges(beforeLayer.layout, afterLayer.layout, commands, layerId, null, operations.setLayoutProperty);\n diffLayerPropertyChanges(beforeLayer.paint, afterLayer.paint, commands, layerId, null, operations.setPaintProperty);\n if (!performance2.deepEqual(beforeLayer.filter, afterLayer.filter)) {\n commands.push({\n command: operations.setFilter,\n args: [\n layerId,\n afterLayer.filter\n ]\n });\n }\n if (!performance2.deepEqual(beforeLayer.minzoom, afterLayer.minzoom) || !performance2.deepEqual(beforeLayer.maxzoom, afterLayer.maxzoom)) {\n commands.push({\n command: operations.setLayerZoomRange,\n args: [\n layerId,\n afterLayer.minzoom,\n afterLayer.maxzoom\n ]\n });\n }\n for (prop in beforeLayer) {\n if (!beforeLayer.hasOwnProperty(prop)) {\n continue;\n }\n if (prop === \"layout\" || prop === \"paint\" || prop === \"filter\" || prop === \"metadata\" || prop === \"minzoom\" || prop === \"maxzoom\") {\n continue;\n }\n if (prop.indexOf(\"paint.\") === 0) {\n diffLayerPropertyChanges(beforeLayer[prop], afterLayer[prop], commands, layerId, prop.slice(6), operations.setPaintProperty);\n } else if (!performance2.deepEqual(beforeLayer[prop], afterLayer[prop])) {\n commands.push({\n command: operations.setLayerProperty,\n args: [\n layerId,\n prop,\n afterLayer[prop]\n ]\n });\n }\n }\n for (prop in afterLayer) {\n if (!afterLayer.hasOwnProperty(prop) || beforeLayer.hasOwnProperty(prop)) {\n continue;\n }\n if (prop === \"layout\" || prop === \"paint\" || prop === \"filter\" || prop === \"metadata\" || prop === \"minzoom\" || prop === \"maxzoom\") {\n continue;\n }\n if (prop.indexOf(\"paint.\") === 0) {\n diffLayerPropertyChanges(beforeLayer[prop], afterLayer[prop], commands, layerId, prop.slice(6), operations.setPaintProperty);\n } else if (!performance2.deepEqual(beforeLayer[prop], afterLayer[prop])) {\n commands.push({\n command: operations.setLayerProperty,\n args: [\n layerId,\n prop,\n afterLayer[prop]\n ]\n });\n }\n }\n }\n }\n function diffStyles(before, after) {\n if (!before) {\n return [{\n command: operations.setStyle,\n args: [after]\n }];\n }\n var commands = [];\n try {\n if (!performance2.deepEqual(before.version, after.version)) {\n return [{\n command: operations.setStyle,\n args: [after]\n }];\n }\n if (!performance2.deepEqual(before.center, after.center)) {\n commands.push({\n command: operations.setCenter,\n args: [after.center]\n });\n }\n if (!performance2.deepEqual(before.zoom, after.zoom)) {\n commands.push({\n command: operations.setZoom,\n args: [after.zoom]\n });\n }\n if (!performance2.deepEqual(before.bearing, after.bearing)) {\n commands.push({\n command: operations.setBearing,\n args: [after.bearing]\n });\n }\n if (!performance2.deepEqual(before.pitch, after.pitch)) {\n commands.push({\n command: operations.setPitch,\n args: [after.pitch]\n });\n }\n if (!performance2.deepEqual(before.sprite, after.sprite)) {\n commands.push({\n command: operations.setSprite,\n args: [after.sprite]\n });\n }\n if (!performance2.deepEqual(before.glyphs, after.glyphs)) {\n commands.push({\n command: operations.setGlyphs,\n args: [after.glyphs]\n });\n }\n if (!performance2.deepEqual(before.transition, after.transition)) {\n commands.push({\n command: operations.setTransition,\n args: [after.transition]\n });\n }\n if (!performance2.deepEqual(before.light, after.light)) {\n commands.push({\n command: operations.setLight,\n args: [after.light]\n });\n }\n var sourcesRemoved = {};\n var removeOrAddSourceCommands = [];\n diffSources(before.sources, after.sources, removeOrAddSourceCommands, sourcesRemoved);\n var beforeLayers = [];\n if (before.layers) {\n before.layers.forEach(function(layer) {\n if (sourcesRemoved[layer.source]) {\n commands.push({\n command: operations.removeLayer,\n args: [layer.id]\n });\n } else {\n beforeLayers.push(layer);\n }\n });\n }\n commands = commands.concat(removeOrAddSourceCommands);\n diffLayers(beforeLayers, after.layers, commands);\n } catch (e) {\n console.warn(\"Unable to compute style diff:\", e);\n commands = [{\n command: operations.setStyle,\n args: [after]\n }];\n }\n return commands;\n }\n var PathInterpolator = function PathInterpolator2(points_, padding_) {\n this.reset(points_, padding_);\n };\n PathInterpolator.prototype.reset = function reset(points_, padding_) {\n this.points = points_ || [];\n this._distances = [0];\n for (var i = 1; i < this.points.length; i++) {\n this._distances[i] = this._distances[i - 1] + this.points[i].dist(this.points[i - 1]);\n }\n this.length = this._distances[this._distances.length - 1];\n this.padding = Math.min(padding_ || 0, this.length * 0.5);\n this.paddedLength = this.length - this.padding * 2;\n };\n PathInterpolator.prototype.lerp = function lerp(t) {\n if (this.points.length === 1) {\n return this.points[0];\n }\n t = performance2.clamp(t, 0, 1);\n var currentIndex = 1;\n var distOfCurrentIdx = this._distances[currentIndex];\n var distToTarget = t * this.paddedLength + this.padding;\n while (distOfCurrentIdx < distToTarget && currentIndex < this._distances.length) {\n distOfCurrentIdx = this._distances[++currentIndex];\n }\n var idxOfPrevPoint = currentIndex - 1;\n var distOfPrevIdx = this._distances[idxOfPrevPoint];\n var segmentLength = distOfCurrentIdx - distOfPrevIdx;\n var segmentT = segmentLength > 0 ? (distToTarget - distOfPrevIdx) / segmentLength : 0;\n return this.points[idxOfPrevPoint].mult(1 - segmentT).add(this.points[currentIndex].mult(segmentT));\n };\n var GridIndex = function GridIndex2(width, height, cellSize) {\n var boxCells = this.boxCells = [];\n var circleCells = this.circleCells = [];\n this.xCellCount = Math.ceil(width / cellSize);\n this.yCellCount = Math.ceil(height / cellSize);\n for (var i = 0; i < this.xCellCount * this.yCellCount; i++) {\n boxCells.push([]);\n circleCells.push([]);\n }\n this.circleKeys = [];\n this.boxKeys = [];\n this.bboxes = [];\n this.circles = [];\n this.width = width;\n this.height = height;\n this.xScale = this.xCellCount / width;\n this.yScale = this.yCellCount / height;\n this.boxUid = 0;\n this.circleUid = 0;\n };\n GridIndex.prototype.keysLength = function keysLength() {\n return this.boxKeys.length + this.circleKeys.length;\n };\n GridIndex.prototype.insert = function insert(key, x1, y1, x2, y2) {\n this._forEachCell(x1, y1, x2, y2, this._insertBoxCell, this.boxUid++);\n this.boxKeys.push(key);\n this.bboxes.push(x1);\n this.bboxes.push(y1);\n this.bboxes.push(x2);\n this.bboxes.push(y2);\n };\n GridIndex.prototype.insertCircle = function insertCircle(key, x, y, radius) {\n this._forEachCell(x - radius, y - radius, x + radius, y + radius, this._insertCircleCell, this.circleUid++);\n this.circleKeys.push(key);\n this.circles.push(x);\n this.circles.push(y);\n this.circles.push(radius);\n };\n GridIndex.prototype._insertBoxCell = function _insertBoxCell(x1, y1, x2, y2, cellIndex, uid) {\n this.boxCells[cellIndex].push(uid);\n };\n GridIndex.prototype._insertCircleCell = function _insertCircleCell(x1, y1, x2, y2, cellIndex, uid) {\n this.circleCells[cellIndex].push(uid);\n };\n GridIndex.prototype._query = function _query(x1, y1, x2, y2, hitTest, predicate) {\n if (x2 < 0 || x1 > this.width || y2 < 0 || y1 > this.height) {\n return hitTest ? false : [];\n }\n var result = [];\n if (x1 <= 0 && y1 <= 0 && this.width <= x2 && this.height <= y2) {\n if (hitTest) {\n return true;\n }\n for (var boxUid = 0; boxUid < this.boxKeys.length; boxUid++) {\n result.push({\n key: this.boxKeys[boxUid],\n x1: this.bboxes[boxUid * 4],\n y1: this.bboxes[boxUid * 4 + 1],\n x2: this.bboxes[boxUid * 4 + 2],\n y2: this.bboxes[boxUid * 4 + 3]\n });\n }\n for (var circleUid = 0; circleUid < this.circleKeys.length; circleUid++) {\n var x = this.circles[circleUid * 3];\n var y = this.circles[circleUid * 3 + 1];\n var radius = this.circles[circleUid * 3 + 2];\n result.push({\n key: this.circleKeys[circleUid],\n x1: x - radius,\n y1: y - radius,\n x2: x + radius,\n y2: y + radius\n });\n }\n return predicate ? result.filter(predicate) : result;\n } else {\n var queryArgs = {\n hitTest,\n seenUids: {\n box: {},\n circle: {}\n }\n };\n this._forEachCell(x1, y1, x2, y2, this._queryCell, result, queryArgs, predicate);\n return hitTest ? result.length > 0 : result;\n }\n };\n GridIndex.prototype._queryCircle = function _queryCircle(x, y, radius, hitTest, predicate) {\n var x1 = x - radius;\n var x2 = x + radius;\n var y1 = y - radius;\n var y2 = y + radius;\n if (x2 < 0 || x1 > this.width || y2 < 0 || y1 > this.height) {\n return hitTest ? false : [];\n }\n var result = [];\n var queryArgs = {\n hitTest,\n circle: {\n x,\n y,\n radius\n },\n seenUids: {\n box: {},\n circle: {}\n }\n };\n this._forEachCell(x1, y1, x2, y2, this._queryCellCircle, result, queryArgs, predicate);\n return hitTest ? result.length > 0 : result;\n };\n GridIndex.prototype.query = function query(x1, y1, x2, y2, predicate) {\n return this._query(x1, y1, x2, y2, false, predicate);\n };\n GridIndex.prototype.hitTest = function hitTest(x1, y1, x2, y2, predicate) {\n return this._query(x1, y1, x2, y2, true, predicate);\n };\n GridIndex.prototype.hitTestCircle = function hitTestCircle(x, y, radius, predicate) {\n return this._queryCircle(x, y, radius, true, predicate);\n };\n GridIndex.prototype._queryCell = function _queryCell(x1, y1, x2, y2, cellIndex, result, queryArgs, predicate) {\n var seenUids = queryArgs.seenUids;\n var boxCell = this.boxCells[cellIndex];\n if (boxCell !== null) {\n var bboxes = this.bboxes;\n for (var i = 0, list = boxCell; i < list.length; i += 1) {\n var boxUid = list[i];\n if (!seenUids.box[boxUid]) {\n seenUids.box[boxUid] = true;\n var offset = boxUid * 4;\n if (x1 <= bboxes[offset + 2] && y1 <= bboxes[offset + 3] && x2 >= bboxes[offset + 0] && y2 >= bboxes[offset + 1] && (!predicate || predicate(this.boxKeys[boxUid]))) {\n if (queryArgs.hitTest) {\n result.push(true);\n return true;\n } else {\n result.push({\n key: this.boxKeys[boxUid],\n x1: bboxes[offset],\n y1: bboxes[offset + 1],\n x2: bboxes[offset + 2],\n y2: bboxes[offset + 3]\n });\n }\n }\n }\n }\n }\n var circleCell = this.circleCells[cellIndex];\n if (circleCell !== null) {\n var circles = this.circles;\n for (var i$1 = 0, list$1 = circleCell; i$1 < list$1.length; i$1 += 1) {\n var circleUid = list$1[i$1];\n if (!seenUids.circle[circleUid]) {\n seenUids.circle[circleUid] = true;\n var offset$1 = circleUid * 3;\n if (this._circleAndRectCollide(circles[offset$1], circles[offset$1 + 1], circles[offset$1 + 2], x1, y1, x2, y2) && (!predicate || predicate(this.circleKeys[circleUid]))) {\n if (queryArgs.hitTest) {\n result.push(true);\n return true;\n } else {\n var x = circles[offset$1];\n var y = circles[offset$1 + 1];\n var radius = circles[offset$1 + 2];\n result.push({\n key: this.circleKeys[circleUid],\n x1: x - radius,\n y1: y - radius,\n x2: x + radius,\n y2: y + radius\n });\n }\n }\n }\n }\n }\n };\n GridIndex.prototype._queryCellCircle = function _queryCellCircle(x1, y1, x2, y2, cellIndex, result, queryArgs, predicate) {\n var circle2 = queryArgs.circle;\n var seenUids = queryArgs.seenUids;\n var boxCell = this.boxCells[cellIndex];\n if (boxCell !== null) {\n var bboxes = this.bboxes;\n for (var i = 0, list = boxCell; i < list.length; i += 1) {\n var boxUid = list[i];\n if (!seenUids.box[boxUid]) {\n seenUids.box[boxUid] = true;\n var offset = boxUid * 4;\n if (this._circleAndRectCollide(circle2.x, circle2.y, circle2.radius, bboxes[offset + 0], bboxes[offset + 1], bboxes[offset + 2], bboxes[offset + 3]) && (!predicate || predicate(this.boxKeys[boxUid]))) {\n result.push(true);\n return true;\n }\n }\n }\n }\n var circleCell = this.circleCells[cellIndex];\n if (circleCell !== null) {\n var circles = this.circles;\n for (var i$1 = 0, list$1 = circleCell; i$1 < list$1.length; i$1 += 1) {\n var circleUid = list$1[i$1];\n if (!seenUids.circle[circleUid]) {\n seenUids.circle[circleUid] = true;\n var offset$1 = circleUid * 3;\n if (this._circlesCollide(circles[offset$1], circles[offset$1 + 1], circles[offset$1 + 2], circle2.x, circle2.y, circle2.radius) && (!predicate || predicate(this.circleKeys[circleUid]))) {\n result.push(true);\n return true;\n }\n }\n }\n }\n };\n GridIndex.prototype._forEachCell = function _forEachCell(x1, y1, x2, y2, fn, arg1, arg2, predicate) {\n var cx1 = this._convertToXCellCoord(x1);\n var cy1 = this._convertToYCellCoord(y1);\n var cx2 = this._convertToXCellCoord(x2);\n var cy2 = this._convertToYCellCoord(y2);\n for (var x = cx1; x <= cx2; x++) {\n for (var y = cy1; y <= cy2; y++) {\n var cellIndex = this.xCellCount * y + x;\n if (fn.call(this, x1, y1, x2, y2, cellIndex, arg1, arg2, predicate)) {\n return;\n }\n }\n }\n };\n GridIndex.prototype._convertToXCellCoord = function _convertToXCellCoord(x) {\n return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(x * this.xScale)));\n };\n GridIndex.prototype._convertToYCellCoord = function _convertToYCellCoord(y) {\n return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(y * this.yScale)));\n };\n GridIndex.prototype._circlesCollide = function _circlesCollide(x1, y1, r1, x2, y2, r2) {\n var dx = x2 - x1;\n var dy = y2 - y1;\n var bothRadii = r1 + r2;\n return bothRadii * bothRadii > dx * dx + dy * dy;\n };\n GridIndex.prototype._circleAndRectCollide = function _circleAndRectCollide(circleX, circleY, radius, x1, y1, x2, y2) {\n var halfRectWidth = (x2 - x1) / 2;\n var distX = Math.abs(circleX - (x1 + halfRectWidth));\n if (distX > halfRectWidth + radius) {\n return false;\n }\n var halfRectHeight = (y2 - y1) / 2;\n var distY = Math.abs(circleY - (y1 + halfRectHeight));\n if (distY > halfRectHeight + radius) {\n return false;\n }\n if (distX <= halfRectWidth || distY <= halfRectHeight) {\n return true;\n }\n var dx = distX - halfRectWidth;\n var dy = distY - halfRectHeight;\n return dx * dx + dy * dy <= radius * radius;\n };\n function getLabelPlaneMatrix(posMatrix, pitchWithMap, rotateWithMap, transform, pixelsToTileUnits2) {\n var m = performance2.create();\n if (pitchWithMap) {\n performance2.scale(m, m, [\n 1 / pixelsToTileUnits2,\n 1 / pixelsToTileUnits2,\n 1\n ]);\n if (!rotateWithMap) {\n performance2.rotateZ(m, m, transform.angle);\n }\n } else {\n performance2.multiply(m, transform.labelPlaneMatrix, posMatrix);\n }\n return m;\n }\n function getGlCoordMatrix(posMatrix, pitchWithMap, rotateWithMap, transform, pixelsToTileUnits2) {\n if (pitchWithMap) {\n var m = performance2.clone(posMatrix);\n performance2.scale(m, m, [\n pixelsToTileUnits2,\n pixelsToTileUnits2,\n 1\n ]);\n if (!rotateWithMap) {\n performance2.rotateZ(m, m, -transform.angle);\n }\n return m;\n } else {\n return transform.glCoordMatrix;\n }\n }\n function project(point, matrix) {\n var pos = [\n point.x,\n point.y,\n 0,\n 1\n ];\n xyTransformMat4(pos, pos, matrix);\n var w = pos[3];\n return {\n point: new performance2.Point(pos[0] / w, pos[1] / w),\n signedDistanceFromCamera: w\n };\n }\n function getPerspectiveRatio(cameraToCenterDistance, signedDistanceFromCamera) {\n return 0.5 + 0.5 * (cameraToCenterDistance / signedDistanceFromCamera);\n }\n function isVisible(anchorPos, clippingBuffer) {\n var x = anchorPos[0] / anchorPos[3];\n var y = anchorPos[1] / anchorPos[3];\n var inPaddedViewport = x >= -clippingBuffer[0] && x <= clippingBuffer[0] && y >= -clippingBuffer[1] && y <= clippingBuffer[1];\n return inPaddedViewport;\n }\n function updateLineLabels(bucket, posMatrix, painter, isText, labelPlaneMatrix, glCoordMatrix, pitchWithMap, keepUpright) {\n var sizeData = isText ? bucket.textSizeData : bucket.iconSizeData;\n var partiallyEvaluatedSize = performance2.evaluateSizeForZoom(sizeData, painter.transform.zoom);\n var clippingBuffer = [\n 256 / painter.width * 2 + 1,\n 256 / painter.height * 2 + 1\n ];\n var dynamicLayoutVertexArray = isText ? bucket.text.dynamicLayoutVertexArray : bucket.icon.dynamicLayoutVertexArray;\n dynamicLayoutVertexArray.clear();\n var lineVertexArray = bucket.lineVertexArray;\n var placedSymbols = isText ? bucket.text.placedSymbolArray : bucket.icon.placedSymbolArray;\n var aspectRatio = painter.transform.width / painter.transform.height;\n var useVertical = false;\n for (var s = 0; s < placedSymbols.length; s++) {\n var symbol = placedSymbols.get(s);\n if (symbol.hidden || symbol.writingMode === performance2.WritingMode.vertical && !useVertical) {\n hideGlyphs(symbol.numGlyphs, dynamicLayoutVertexArray);\n continue;\n }\n useVertical = false;\n var anchorPos = [\n symbol.anchorX,\n symbol.anchorY,\n 0,\n 1\n ];\n performance2.transformMat4(anchorPos, anchorPos, posMatrix);\n if (!isVisible(anchorPos, clippingBuffer)) {\n hideGlyphs(symbol.numGlyphs, dynamicLayoutVertexArray);\n continue;\n }\n var cameraToAnchorDistance = anchorPos[3];\n var perspectiveRatio = getPerspectiveRatio(painter.transform.cameraToCenterDistance, cameraToAnchorDistance);\n var fontSize = performance2.evaluateSizeForFeature(sizeData, partiallyEvaluatedSize, symbol);\n var pitchScaledFontSize = pitchWithMap ? fontSize / perspectiveRatio : fontSize * perspectiveRatio;\n var tileAnchorPoint = new performance2.Point(symbol.anchorX, symbol.anchorY);\n var anchorPoint = project(tileAnchorPoint, labelPlaneMatrix).point;\n var projectionCache = {};\n var placeUnflipped = placeGlyphsAlongLine(symbol, pitchScaledFontSize, false, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, bucket.glyphOffsetArray, lineVertexArray, dynamicLayoutVertexArray, anchorPoint, tileAnchorPoint, projectionCache, aspectRatio);\n useVertical = placeUnflipped.useVertical;\n if (placeUnflipped.notEnoughRoom || useVertical || placeUnflipped.needsFlipping && placeGlyphsAlongLine(symbol, pitchScaledFontSize, true, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, bucket.glyphOffsetArray, lineVertexArray, dynamicLayoutVertexArray, anchorPoint, tileAnchorPoint, projectionCache, aspectRatio).notEnoughRoom) {\n hideGlyphs(symbol.numGlyphs, dynamicLayoutVertexArray);\n }\n }\n if (isText) {\n bucket.text.dynamicLayoutVertexBuffer.updateData(dynamicLayoutVertexArray);\n } else {\n bucket.icon.dynamicLayoutVertexBuffer.updateData(dynamicLayoutVertexArray);\n }\n }\n function placeFirstAndLastGlyph(fontScale, glyphOffsetArray, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol, lineVertexArray, labelPlaneMatrix, projectionCache) {\n var glyphEndIndex = symbol.glyphStartIndex + symbol.numGlyphs;\n var lineStartIndex = symbol.lineStartIndex;\n var lineEndIndex = symbol.lineStartIndex + symbol.lineLength;\n var firstGlyphOffset = glyphOffsetArray.getoffsetX(symbol.glyphStartIndex);\n var lastGlyphOffset = glyphOffsetArray.getoffsetX(glyphEndIndex - 1);\n var firstPlacedGlyph = placeGlyphAlongLine(fontScale * firstGlyphOffset, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!firstPlacedGlyph) {\n return null;\n }\n var lastPlacedGlyph = placeGlyphAlongLine(fontScale * lastGlyphOffset, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!lastPlacedGlyph) {\n return null;\n }\n return {\n first: firstPlacedGlyph,\n last: lastPlacedGlyph\n };\n }\n function requiresOrientationChange(writingMode, firstPoint, lastPoint, aspectRatio) {\n if (writingMode === performance2.WritingMode.horizontal) {\n var rise = Math.abs(lastPoint.y - firstPoint.y);\n var run = Math.abs(lastPoint.x - firstPoint.x) * aspectRatio;\n if (rise > run) {\n return { useVertical: true };\n }\n }\n if (writingMode === performance2.WritingMode.vertical ? firstPoint.y < lastPoint.y : firstPoint.x > lastPoint.x) {\n return { needsFlipping: true };\n }\n return null;\n }\n function placeGlyphsAlongLine(symbol, fontSize, flip, keepUpright, posMatrix, labelPlaneMatrix, glCoordMatrix, glyphOffsetArray, lineVertexArray, dynamicLayoutVertexArray, anchorPoint, tileAnchorPoint, projectionCache, aspectRatio) {\n var fontScale = fontSize / 24;\n var lineOffsetX = symbol.lineOffsetX * fontScale;\n var lineOffsetY = symbol.lineOffsetY * fontScale;\n var placedGlyphs;\n if (symbol.numGlyphs > 1) {\n var glyphEndIndex = symbol.glyphStartIndex + symbol.numGlyphs;\n var lineStartIndex = symbol.lineStartIndex;\n var lineEndIndex = symbol.lineStartIndex + symbol.lineLength;\n var firstAndLastGlyph = placeFirstAndLastGlyph(fontScale, glyphOffsetArray, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!firstAndLastGlyph) {\n return { notEnoughRoom: true };\n }\n var firstPoint = project(firstAndLastGlyph.first.point, glCoordMatrix).point;\n var lastPoint = project(firstAndLastGlyph.last.point, glCoordMatrix).point;\n if (keepUpright && !flip) {\n var orientationChange = requiresOrientationChange(symbol.writingMode, firstPoint, lastPoint, aspectRatio);\n if (orientationChange) {\n return orientationChange;\n }\n }\n placedGlyphs = [firstAndLastGlyph.first];\n for (var glyphIndex = symbol.glyphStartIndex + 1; glyphIndex < glyphEndIndex - 1; glyphIndex++) {\n placedGlyphs.push(placeGlyphAlongLine(fontScale * glyphOffsetArray.getoffsetX(glyphIndex), lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache));\n }\n placedGlyphs.push(firstAndLastGlyph.last);\n } else {\n if (keepUpright && !flip) {\n var a = project(tileAnchorPoint, posMatrix).point;\n var tileVertexIndex = symbol.lineStartIndex + symbol.segment + 1;\n var tileSegmentEnd = new performance2.Point(lineVertexArray.getx(tileVertexIndex), lineVertexArray.gety(tileVertexIndex));\n var projectedVertex = project(tileSegmentEnd, posMatrix);\n var b = projectedVertex.signedDistanceFromCamera > 0 ? projectedVertex.point : projectTruncatedLineSegment(tileAnchorPoint, tileSegmentEnd, a, 1, posMatrix);\n var orientationChange$1 = requiresOrientationChange(symbol.writingMode, a, b, aspectRatio);\n if (orientationChange$1) {\n return orientationChange$1;\n }\n }\n var singleGlyph = placeGlyphAlongLine(fontScale * glyphOffsetArray.getoffsetX(symbol.glyphStartIndex), lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, symbol.segment, symbol.lineStartIndex, symbol.lineStartIndex + symbol.lineLength, lineVertexArray, labelPlaneMatrix, projectionCache);\n if (!singleGlyph) {\n return { notEnoughRoom: true };\n }\n placedGlyphs = [singleGlyph];\n }\n for (var i = 0, list = placedGlyphs; i < list.length; i += 1) {\n var glyph = list[i];\n performance2.addDynamicAttributes(dynamicLayoutVertexArray, glyph.point, glyph.angle);\n }\n return {};\n }\n function projectTruncatedLineSegment(previousTilePoint, currentTilePoint, previousProjectedPoint, minimumLength, projectionMatrix) {\n var projectedUnitVertex = project(previousTilePoint.add(previousTilePoint.sub(currentTilePoint)._unit()), projectionMatrix).point;\n var projectedUnitSegment = previousProjectedPoint.sub(projectedUnitVertex);\n return previousProjectedPoint.add(projectedUnitSegment._mult(minimumLength / projectedUnitSegment.mag()));\n }\n function placeGlyphAlongLine(offsetX, lineOffsetX, lineOffsetY, flip, anchorPoint, tileAnchorPoint, anchorSegment, lineStartIndex, lineEndIndex, lineVertexArray, labelPlaneMatrix, projectionCache) {\n var combinedOffsetX = flip ? offsetX - lineOffsetX : offsetX + lineOffsetX;\n var dir = combinedOffsetX > 0 ? 1 : -1;\n var angle = 0;\n if (flip) {\n dir *= -1;\n angle = Math.PI;\n }\n if (dir < 0) {\n angle += Math.PI;\n }\n var currentIndex = dir > 0 ? lineStartIndex + anchorSegment : lineStartIndex + anchorSegment + 1;\n var current = anchorPoint;\n var prev = anchorPoint;\n var distanceToPrev = 0;\n var currentSegmentDistance = 0;\n var absOffsetX = Math.abs(combinedOffsetX);\n var pathVertices = [];\n while (distanceToPrev + currentSegmentDistance <= absOffsetX) {\n currentIndex += dir;\n if (currentIndex < lineStartIndex || currentIndex >= lineEndIndex) {\n return null;\n }\n prev = current;\n pathVertices.push(current);\n current = projectionCache[currentIndex];\n if (current === void 0) {\n var currentVertex = new performance2.Point(lineVertexArray.getx(currentIndex), lineVertexArray.gety(currentIndex));\n var projection = project(currentVertex, labelPlaneMatrix);\n if (projection.signedDistanceFromCamera > 0) {\n current = projectionCache[currentIndex] = projection.point;\n } else {\n var previousLineVertexIndex = currentIndex - dir;\n var previousTilePoint = distanceToPrev === 0 ? tileAnchorPoint : new performance2.Point(lineVertexArray.getx(previousLineVertexIndex), lineVertexArray.gety(previousLineVertexIndex));\n current = projectTruncatedLineSegment(previousTilePoint, currentVertex, prev, absOffsetX - distanceToPrev + 1, labelPlaneMatrix);\n }\n }\n distanceToPrev += currentSegmentDistance;\n currentSegmentDistance = prev.dist(current);\n }\n var segmentInterpolationT = (absOffsetX - distanceToPrev) / currentSegmentDistance;\n var prevToCurrent = current.sub(prev);\n var p = prevToCurrent.mult(segmentInterpolationT)._add(prev);\n p._add(prevToCurrent._unit()._perp()._mult(lineOffsetY * dir));\n var segmentAngle = angle + Math.atan2(current.y - prev.y, current.x - prev.x);\n pathVertices.push(p);\n return {\n point: p,\n angle: segmentAngle,\n path: pathVertices\n };\n }\n var hiddenGlyphAttributes = new Float32Array([\n -Infinity,\n -Infinity,\n 0,\n -Infinity,\n -Infinity,\n 0,\n -Infinity,\n -Infinity,\n 0,\n -Infinity,\n -Infinity,\n 0\n ]);\n function hideGlyphs(num, dynamicLayoutVertexArray) {\n for (var i = 0; i < num; i++) {\n var offset = dynamicLayoutVertexArray.length;\n dynamicLayoutVertexArray.resize(offset + 4);\n dynamicLayoutVertexArray.float32.set(hiddenGlyphAttributes, offset * 3);\n }\n }\n function xyTransformMat4(out, a, m) {\n var x = a[0], y = a[1];\n out[0] = m[0] * x + m[4] * y + m[12];\n out[1] = m[1] * x + m[5] * y + m[13];\n out[3] = m[3] * x + m[7] * y + m[15];\n return out;\n }\n var viewportPadding = 100;\n var CollisionIndex = function CollisionIndex2(transform, grid, ignoredGrid) {\n if (grid === void 0)\n grid = new GridIndex(transform.width + 2 * viewportPadding, transform.height + 2 * viewportPadding, 25);\n if (ignoredGrid === void 0)\n ignoredGrid = new GridIndex(transform.width + 2 * viewportPadding, transform.height + 2 * viewportPadding, 25);\n this.transform = transform;\n this.grid = grid;\n this.ignoredGrid = ignoredGrid;\n this.pitchfactor = Math.cos(transform._pitch) * transform.cameraToCenterDistance;\n this.screenRightBoundary = transform.width + viewportPadding;\n this.screenBottomBoundary = transform.height + viewportPadding;\n this.gridRightBoundary = transform.width + 2 * viewportPadding;\n this.gridBottomBoundary = transform.height + 2 * viewportPadding;\n };\n CollisionIndex.prototype.placeCollisionBox = function placeCollisionBox(collisionBox2, allowOverlap, textPixelRatio, posMatrix, collisionGroupPredicate) {\n var projectedPoint = this.projectAndGetPerspectiveRatio(posMatrix, collisionBox2.anchorPointX, collisionBox2.anchorPointY);\n var tileToViewport = textPixelRatio * projectedPoint.perspectiveRatio;\n var tlX = collisionBox2.x1 * tileToViewport + projectedPoint.point.x;\n var tlY = collisionBox2.y1 * tileToViewport + projectedPoint.point.y;\n var brX = collisionBox2.x2 * tileToViewport + projectedPoint.point.x;\n var brY = collisionBox2.y2 * tileToViewport + projectedPoint.point.y;\n if (!this.isInsideGrid(tlX, tlY, brX, brY) || !allowOverlap && this.grid.hitTest(tlX, tlY, brX, brY, collisionGroupPredicate)) {\n return {\n box: [],\n offscreen: false\n };\n }\n return {\n box: [\n tlX,\n tlY,\n brX,\n brY\n ],\n offscreen: this.isOffscreen(tlX, tlY, brX, brY)\n };\n };\n CollisionIndex.prototype.placeCollisionCircles = function placeCollisionCircles(allowOverlap, symbol, lineVertexArray, glyphOffsetArray, fontSize, posMatrix, labelPlaneMatrix, labelToScreenMatrix, showCollisionCircles, pitchWithMap, collisionGroupPredicate, circlePixelDiameter, textPixelPadding) {\n var placedCollisionCircles = [];\n var tileUnitAnchorPoint = new performance2.Point(symbol.anchorX, symbol.anchorY);\n var screenAnchorPoint = project(tileUnitAnchorPoint, posMatrix);\n var perspectiveRatio = getPerspectiveRatio(this.transform.cameraToCenterDistance, screenAnchorPoint.signedDistanceFromCamera);\n var labelPlaneFontSize = pitchWithMap ? fontSize / perspectiveRatio : fontSize * perspectiveRatio;\n var labelPlaneFontScale = labelPlaneFontSize / performance2.ONE_EM;\n var labelPlaneAnchorPoint = project(tileUnitAnchorPoint, labelPlaneMatrix).point;\n var projectionCache = {};\n var lineOffsetX = symbol.lineOffsetX * labelPlaneFontScale;\n var lineOffsetY = symbol.lineOffsetY * labelPlaneFontScale;\n var firstAndLastGlyph = placeFirstAndLastGlyph(labelPlaneFontScale, glyphOffsetArray, lineOffsetX, lineOffsetY, false, labelPlaneAnchorPoint, tileUnitAnchorPoint, symbol, lineVertexArray, labelPlaneMatrix, projectionCache);\n var collisionDetected = false;\n var inGrid = false;\n var entirelyOffscreen = true;\n if (firstAndLastGlyph) {\n var radius = circlePixelDiameter * 0.5 * perspectiveRatio + textPixelPadding;\n var screenPlaneMin = new performance2.Point(-viewportPadding, -viewportPadding);\n var screenPlaneMax = new performance2.Point(this.screenRightBoundary, this.screenBottomBoundary);\n var interpolator = new PathInterpolator();\n var first = firstAndLastGlyph.first;\n var last = firstAndLastGlyph.last;\n var projectedPath = [];\n for (var i = first.path.length - 1; i >= 1; i--) {\n projectedPath.push(first.path[i]);\n }\n for (var i$1 = 1; i$1 < last.path.length; i$1++) {\n projectedPath.push(last.path[i$1]);\n }\n var circleDist = radius * 2.5;\n if (labelToScreenMatrix) {\n var screenSpacePath = projectedPath.map(function(p) {\n return project(p, labelToScreenMatrix);\n });\n if (screenSpacePath.some(function(point) {\n return point.signedDistanceFromCamera <= 0;\n })) {\n projectedPath = [];\n } else {\n projectedPath = screenSpacePath.map(function(p) {\n return p.point;\n });\n }\n }\n var segments = [];\n if (projectedPath.length > 0) {\n var minPoint = projectedPath[0].clone();\n var maxPoint = projectedPath[0].clone();\n for (var i$2 = 1; i$2 < projectedPath.length; i$2++) {\n minPoint.x = Math.min(minPoint.x, projectedPath[i$2].x);\n minPoint.y = Math.min(minPoint.y, projectedPath[i$2].y);\n maxPoint.x = Math.max(maxPoint.x, projectedPath[i$2].x);\n maxPoint.y = Math.max(maxPoint.y, projectedPath[i$2].y);\n }\n if (minPoint.x >= screenPlaneMin.x && maxPoint.x <= screenPlaneMax.x && minPoint.y >= screenPlaneMin.y && maxPoint.y <= screenPlaneMax.y) {\n segments = [projectedPath];\n } else if (maxPoint.x < screenPlaneMin.x || minPoint.x > screenPlaneMax.x || maxPoint.y < screenPlaneMin.y || minPoint.y > screenPlaneMax.y) {\n segments = [];\n } else {\n segments = performance2.clipLine([projectedPath], screenPlaneMin.x, screenPlaneMin.y, screenPlaneMax.x, screenPlaneMax.y);\n }\n }\n for (var i$4 = 0, list = segments; i$4 < list.length; i$4 += 1) {\n var seg = list[i$4];\n interpolator.reset(seg, radius * 0.25);\n var numCircles = 0;\n if (interpolator.length <= 0.5 * radius) {\n numCircles = 1;\n } else {\n numCircles = Math.ceil(interpolator.paddedLength / circleDist) + 1;\n }\n for (var i$3 = 0; i$3 < numCircles; i$3++) {\n var t = i$3 / Math.max(numCircles - 1, 1);\n var circlePosition = interpolator.lerp(t);\n var centerX = circlePosition.x + viewportPadding;\n var centerY = circlePosition.y + viewportPadding;\n placedCollisionCircles.push(centerX, centerY, radius, 0);\n var x1 = centerX - radius;\n var y1 = centerY - radius;\n var x2 = centerX + radius;\n var y2 = centerY + radius;\n entirelyOffscreen = entirelyOffscreen && this.isOffscreen(x1, y1, x2, y2);\n inGrid = inGrid || this.isInsideGrid(x1, y1, x2, y2);\n if (!allowOverlap) {\n if (this.grid.hitTestCircle(centerX, centerY, radius, collisionGroupPredicate)) {\n collisionDetected = true;\n if (!showCollisionCircles) {\n return {\n circles: [],\n offscreen: false,\n collisionDetected\n };\n }\n }\n }\n }\n }\n }\n return {\n circles: !showCollisionCircles && collisionDetected || !inGrid ? [] : placedCollisionCircles,\n offscreen: entirelyOffscreen,\n collisionDetected\n };\n };\n CollisionIndex.prototype.queryRenderedSymbols = function queryRenderedSymbols2(viewportQueryGeometry) {\n if (viewportQueryGeometry.length === 0 || this.grid.keysLength() === 0 && this.ignoredGrid.keysLength() === 0) {\n return {};\n }\n var query = [];\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n for (var i = 0, list = viewportQueryGeometry; i < list.length; i += 1) {\n var point = list[i];\n var gridPoint = new performance2.Point(point.x + viewportPadding, point.y + viewportPadding);\n minX = Math.min(minX, gridPoint.x);\n minY = Math.min(minY, gridPoint.y);\n maxX = Math.max(maxX, gridPoint.x);\n maxY = Math.max(maxY, gridPoint.y);\n query.push(gridPoint);\n }\n var features = this.grid.query(minX, minY, maxX, maxY).concat(this.ignoredGrid.query(minX, minY, maxX, maxY));\n var seenFeatures = {};\n var result = {};\n for (var i$1 = 0, list$1 = features; i$1 < list$1.length; i$1 += 1) {\n var feature = list$1[i$1];\n var featureKey = feature.key;\n if (seenFeatures[featureKey.bucketInstanceId] === void 0) {\n seenFeatures[featureKey.bucketInstanceId] = {};\n }\n if (seenFeatures[featureKey.bucketInstanceId][featureKey.featureIndex]) {\n continue;\n }\n var bbox = [\n new performance2.Point(feature.x1, feature.y1),\n new performance2.Point(feature.x2, feature.y1),\n new performance2.Point(feature.x2, feature.y2),\n new performance2.Point(feature.x1, feature.y2)\n ];\n if (!performance2.polygonIntersectsPolygon(query, bbox)) {\n continue;\n }\n seenFeatures[featureKey.bucketInstanceId][featureKey.featureIndex] = true;\n if (result[featureKey.bucketInstanceId] === void 0) {\n result[featureKey.bucketInstanceId] = [];\n }\n result[featureKey.bucketInstanceId].push(featureKey.featureIndex);\n }\n return result;\n };\n CollisionIndex.prototype.insertCollisionBox = function insertCollisionBox(collisionBox2, ignorePlacement, bucketInstanceId, featureIndex, collisionGroupID) {\n var grid = ignorePlacement ? this.ignoredGrid : this.grid;\n var key = {\n bucketInstanceId,\n featureIndex,\n collisionGroupID\n };\n grid.insert(key, collisionBox2[0], collisionBox2[1], collisionBox2[2], collisionBox2[3]);\n };\n CollisionIndex.prototype.insertCollisionCircles = function insertCollisionCircles(collisionCircles, ignorePlacement, bucketInstanceId, featureIndex, collisionGroupID) {\n var grid = ignorePlacement ? this.ignoredGrid : this.grid;\n var key = {\n bucketInstanceId,\n featureIndex,\n collisionGroupID\n };\n for (var k = 0; k < collisionCircles.length; k += 4) {\n grid.insertCircle(key, collisionCircles[k], collisionCircles[k + 1], collisionCircles[k + 2]);\n }\n };\n CollisionIndex.prototype.projectAndGetPerspectiveRatio = function projectAndGetPerspectiveRatio(posMatrix, x, y) {\n var p = [\n x,\n y,\n 0,\n 1\n ];\n xyTransformMat4(p, p, posMatrix);\n var a = new performance2.Point((p[0] / p[3] + 1) / 2 * this.transform.width + viewportPadding, (-p[1] / p[3] + 1) / 2 * this.transform.height + viewportPadding);\n return {\n point: a,\n perspectiveRatio: 0.5 + 0.5 * (this.transform.cameraToCenterDistance / p[3])\n };\n };\n CollisionIndex.prototype.isOffscreen = function isOffscreen(x1, y1, x2, y2) {\n return x2 < viewportPadding || x1 >= this.screenRightBoundary || y2 < viewportPadding || y1 > this.screenBottomBoundary;\n };\n CollisionIndex.prototype.isInsideGrid = function isInsideGrid(x1, y1, x2, y2) {\n return x2 >= 0 && x1 < this.gridRightBoundary && y2 >= 0 && y1 < this.gridBottomBoundary;\n };\n CollisionIndex.prototype.getViewportMatrix = function getViewportMatrix() {\n var m = performance2.identity([]);\n performance2.translate(m, m, [\n -viewportPadding,\n -viewportPadding,\n 0\n ]);\n return m;\n };\n function pixelsToTileUnits(tile, pixelValue, z) {\n return pixelValue * (performance2.EXTENT / (tile.tileSize * Math.pow(2, z - tile.tileID.overscaledZ)));\n }\n var OpacityState = function OpacityState2(prevState, increment, placed, skipFade) {\n if (prevState) {\n this.opacity = Math.max(0, Math.min(1, prevState.opacity + (prevState.placed ? increment : -increment)));\n } else {\n this.opacity = skipFade && placed ? 1 : 0;\n }\n this.placed = placed;\n };\n OpacityState.prototype.isHidden = function isHidden() {\n return this.opacity === 0 && !this.placed;\n };\n var JointOpacityState = function JointOpacityState2(prevState, increment, placedText, placedIcon, skipFade) {\n this.text = new OpacityState(prevState ? prevState.text : null, increment, placedText, skipFade);\n this.icon = new OpacityState(prevState ? prevState.icon : null, increment, placedIcon, skipFade);\n };\n JointOpacityState.prototype.isHidden = function isHidden() {\n return this.text.isHidden() && this.icon.isHidden();\n };\n var JointPlacement = function JointPlacement2(text, icon, skipFade) {\n this.text = text;\n this.icon = icon;\n this.skipFade = skipFade;\n };\n var CollisionCircleArray = function CollisionCircleArray2() {\n this.invProjMatrix = performance2.create();\n this.viewportMatrix = performance2.create();\n this.circles = [];\n };\n var RetainedQueryData = function RetainedQueryData2(bucketInstanceId, featureIndex, sourceLayerIndex, bucketIndex, tileID) {\n this.bucketInstanceId = bucketInstanceId;\n this.featureIndex = featureIndex;\n this.sourceLayerIndex = sourceLayerIndex;\n this.bucketIndex = bucketIndex;\n this.tileID = tileID;\n };\n var CollisionGroups = function CollisionGroups2(crossSourceCollisions) {\n this.crossSourceCollisions = crossSourceCollisions;\n this.maxGroupID = 0;\n this.collisionGroups = {};\n };\n CollisionGroups.prototype.get = function get(sourceID) {\n if (!this.crossSourceCollisions) {\n if (!this.collisionGroups[sourceID]) {\n var nextGroupID = ++this.maxGroupID;\n this.collisionGroups[sourceID] = {\n ID: nextGroupID,\n predicate: function(key) {\n return key.collisionGroupID === nextGroupID;\n }\n };\n }\n return this.collisionGroups[sourceID];\n } else {\n return {\n ID: 0,\n predicate: null\n };\n }\n };\n function calculateVariableLayoutShift(anchor, width, height, textOffset, textBoxScale) {\n var ref = performance2.getAnchorAlignment(anchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n var shiftX = -(horizontalAlign - 0.5) * width;\n var shiftY = -(verticalAlign - 0.5) * height;\n var offset = performance2.evaluateVariableOffset(anchor, textOffset);\n return new performance2.Point(shiftX + offset[0] * textBoxScale, shiftY + offset[1] * textBoxScale);\n }\n function shiftVariableCollisionBox(collisionBox2, shiftX, shiftY, rotateWithMap, pitchWithMap, angle) {\n var x1 = collisionBox2.x1;\n var x2 = collisionBox2.x2;\n var y1 = collisionBox2.y1;\n var y2 = collisionBox2.y2;\n var anchorPointX = collisionBox2.anchorPointX;\n var anchorPointY = collisionBox2.anchorPointY;\n var rotatedOffset = new performance2.Point(shiftX, shiftY);\n if (rotateWithMap) {\n rotatedOffset._rotate(pitchWithMap ? angle : -angle);\n }\n return {\n x1: x1 + rotatedOffset.x,\n y1: y1 + rotatedOffset.y,\n x2: x2 + rotatedOffset.x,\n y2: y2 + rotatedOffset.y,\n anchorPointX,\n anchorPointY\n };\n }\n var Placement = function Placement2(transform, fadeDuration, crossSourceCollisions, prevPlacement) {\n this.transform = transform.clone();\n this.collisionIndex = new CollisionIndex(this.transform);\n this.placements = {};\n this.opacities = {};\n this.variableOffsets = {};\n this.stale = false;\n this.commitTime = 0;\n this.fadeDuration = fadeDuration;\n this.retainedQueryData = {};\n this.collisionGroups = new CollisionGroups(crossSourceCollisions);\n this.collisionCircleArrays = {};\n this.prevPlacement = prevPlacement;\n if (prevPlacement) {\n prevPlacement.prevPlacement = void 0;\n }\n this.placedOrientations = {};\n };\n Placement.prototype.getBucketParts = function getBucketParts(results, styleLayer, tile, sortAcrossTiles) {\n var symbolBucket = tile.getBucket(styleLayer);\n var bucketFeatureIndex = tile.latestFeatureIndex;\n if (!symbolBucket || !bucketFeatureIndex || styleLayer.id !== symbolBucket.layerIds[0]) {\n return;\n }\n var collisionBoxArray = tile.collisionBoxArray;\n var layout = symbolBucket.layers[0].layout;\n var scale = Math.pow(2, this.transform.zoom - tile.tileID.overscaledZ);\n var textPixelRatio = tile.tileSize / performance2.EXTENT;\n var posMatrix = this.transform.calculatePosMatrix(tile.tileID.toUnwrapped());\n var pitchWithMap = layout.get(\"text-pitch-alignment\") === \"map\";\n var rotateWithMap = layout.get(\"text-rotation-alignment\") === \"map\";\n var pixelsToTiles = pixelsToTileUnits(tile, 1, this.transform.zoom);\n var textLabelPlaneMatrix = getLabelPlaneMatrix(posMatrix, pitchWithMap, rotateWithMap, this.transform, pixelsToTiles);\n var labelToScreenMatrix = null;\n if (pitchWithMap) {\n var glMatrix = getGlCoordMatrix(posMatrix, pitchWithMap, rotateWithMap, this.transform, pixelsToTiles);\n labelToScreenMatrix = performance2.multiply([], this.transform.labelPlaneMatrix, glMatrix);\n }\n this.retainedQueryData[symbolBucket.bucketInstanceId] = new RetainedQueryData(symbolBucket.bucketInstanceId, bucketFeatureIndex, symbolBucket.sourceLayerIndex, symbolBucket.index, tile.tileID);\n var parameters = {\n bucket: symbolBucket,\n layout,\n posMatrix,\n textLabelPlaneMatrix,\n labelToScreenMatrix,\n scale,\n textPixelRatio,\n holdingForFade: tile.holdingForFade(),\n collisionBoxArray,\n partiallyEvaluatedTextSize: performance2.evaluateSizeForZoom(symbolBucket.textSizeData, this.transform.zoom),\n collisionGroup: this.collisionGroups.get(symbolBucket.sourceID)\n };\n if (sortAcrossTiles) {\n for (var i = 0, list = symbolBucket.sortKeyRanges; i < list.length; i += 1) {\n var range = list[i];\n var sortKey = range.sortKey;\n var symbolInstanceStart = range.symbolInstanceStart;\n var symbolInstanceEnd = range.symbolInstanceEnd;\n results.push({\n sortKey,\n symbolInstanceStart,\n symbolInstanceEnd,\n parameters\n });\n }\n } else {\n results.push({\n symbolInstanceStart: 0,\n symbolInstanceEnd: symbolBucket.symbolInstances.length,\n parameters\n });\n }\n };\n Placement.prototype.attemptAnchorPlacement = function attemptAnchorPlacement(anchor, textBox, width, height, textBoxScale, rotateWithMap, pitchWithMap, textPixelRatio, posMatrix, collisionGroup, textAllowOverlap, symbolInstance, bucket, orientation, iconBox) {\n var textOffset = [\n symbolInstance.textOffset0,\n symbolInstance.textOffset1\n ];\n var shift = calculateVariableLayoutShift(anchor, width, height, textOffset, textBoxScale);\n var placedGlyphBoxes = this.collisionIndex.placeCollisionBox(shiftVariableCollisionBox(textBox, shift.x, shift.y, rotateWithMap, pitchWithMap, this.transform.angle), textAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n if (iconBox) {\n var placedIconBoxes = this.collisionIndex.placeCollisionBox(shiftVariableCollisionBox(iconBox, shift.x, shift.y, rotateWithMap, pitchWithMap, this.transform.angle), textAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n if (placedIconBoxes.box.length === 0) {\n return;\n }\n }\n if (placedGlyphBoxes.box.length > 0) {\n var prevAnchor;\n if (this.prevPlacement && this.prevPlacement.variableOffsets[symbolInstance.crossTileID] && this.prevPlacement.placements[symbolInstance.crossTileID] && this.prevPlacement.placements[symbolInstance.crossTileID].text) {\n prevAnchor = this.prevPlacement.variableOffsets[symbolInstance.crossTileID].anchor;\n }\n this.variableOffsets[symbolInstance.crossTileID] = {\n textOffset,\n width,\n height,\n anchor,\n textBoxScale,\n prevAnchor\n };\n this.markUsedJustification(bucket, anchor, symbolInstance, orientation);\n if (bucket.allowVerticalPlacement) {\n this.markUsedOrientation(bucket, orientation, symbolInstance);\n this.placedOrientations[symbolInstance.crossTileID] = orientation;\n }\n return {\n shift,\n placedGlyphBoxes\n };\n }\n };\n Placement.prototype.placeLayerBucketPart = function placeLayerBucketPart(bucketPart, seenCrossTileIDs, showCollisionBoxes) {\n var this$1 = this;\n var ref = bucketPart.parameters;\n var bucket = ref.bucket;\n var layout = ref.layout;\n var posMatrix = ref.posMatrix;\n var textLabelPlaneMatrix = ref.textLabelPlaneMatrix;\n var labelToScreenMatrix = ref.labelToScreenMatrix;\n var textPixelRatio = ref.textPixelRatio;\n var holdingForFade = ref.holdingForFade;\n var collisionBoxArray = ref.collisionBoxArray;\n var partiallyEvaluatedTextSize = ref.partiallyEvaluatedTextSize;\n var collisionGroup = ref.collisionGroup;\n var textOptional = layout.get(\"text-optional\");\n var iconOptional = layout.get(\"icon-optional\");\n var textAllowOverlap = layout.get(\"text-allow-overlap\");\n var iconAllowOverlap = layout.get(\"icon-allow-overlap\");\n var rotateWithMap = layout.get(\"text-rotation-alignment\") === \"map\";\n var pitchWithMap = layout.get(\"text-pitch-alignment\") === \"map\";\n var hasIconTextFit = layout.get(\"icon-text-fit\") !== \"none\";\n var zOrderByViewportY = layout.get(\"symbol-z-order\") === \"viewport-y\";\n var alwaysShowText = textAllowOverlap && (iconAllowOverlap || !bucket.hasIconData() || iconOptional);\n var alwaysShowIcon = iconAllowOverlap && (textAllowOverlap || !bucket.hasTextData() || textOptional);\n if (!bucket.collisionArrays && collisionBoxArray) {\n bucket.deserializeCollisionBoxes(collisionBoxArray);\n }\n var placeSymbol = function(symbolInstance, collisionArrays) {\n if (seenCrossTileIDs[symbolInstance.crossTileID]) {\n return;\n }\n if (holdingForFade) {\n this$1.placements[symbolInstance.crossTileID] = new JointPlacement(false, false, false);\n return;\n }\n var placeText = false;\n var placeIcon = false;\n var offscreen = true;\n var shift = null;\n var placed = {\n box: null,\n offscreen: null\n };\n var placedVerticalText = {\n box: null,\n offscreen: null\n };\n var placedGlyphBoxes = null;\n var placedGlyphCircles = null;\n var placedIconBoxes = null;\n var textFeatureIndex = 0;\n var verticalTextFeatureIndex = 0;\n var iconFeatureIndex = 0;\n if (collisionArrays.textFeatureIndex) {\n textFeatureIndex = collisionArrays.textFeatureIndex;\n } else if (symbolInstance.useRuntimeCollisionCircles) {\n textFeatureIndex = symbolInstance.featureIndex;\n }\n if (collisionArrays.verticalTextFeatureIndex) {\n verticalTextFeatureIndex = collisionArrays.verticalTextFeatureIndex;\n }\n var textBox = collisionArrays.textBox;\n if (textBox) {\n var updatePreviousOrientationIfNotPlaced = function(isPlaced) {\n var previousOrientation = performance2.WritingMode.horizontal;\n if (bucket.allowVerticalPlacement && !isPlaced && this$1.prevPlacement) {\n var prevPlacedOrientation = this$1.prevPlacement.placedOrientations[symbolInstance.crossTileID];\n if (prevPlacedOrientation) {\n this$1.placedOrientations[symbolInstance.crossTileID] = prevPlacedOrientation;\n previousOrientation = prevPlacedOrientation;\n this$1.markUsedOrientation(bucket, previousOrientation, symbolInstance);\n }\n }\n return previousOrientation;\n };\n var placeTextForPlacementModes = function(placeHorizontalFn, placeVerticalFn) {\n if (bucket.allowVerticalPlacement && symbolInstance.numVerticalGlyphVertices > 0 && collisionArrays.verticalTextBox) {\n for (var i3 = 0, list = bucket.writingModes; i3 < list.length; i3 += 1) {\n var placementMode = list[i3];\n if (placementMode === performance2.WritingMode.vertical) {\n placed = placeVerticalFn();\n placedVerticalText = placed;\n } else {\n placed = placeHorizontalFn();\n }\n if (placed && placed.box && placed.box.length) {\n break;\n }\n }\n } else {\n placed = placeHorizontalFn();\n }\n };\n if (!layout.get(\"text-variable-anchor\")) {\n var placeBox = function(collisionTextBox, orientation) {\n var placedFeature = this$1.collisionIndex.placeCollisionBox(collisionTextBox, textAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n if (placedFeature && placedFeature.box && placedFeature.box.length) {\n this$1.markUsedOrientation(bucket, orientation, symbolInstance);\n this$1.placedOrientations[symbolInstance.crossTileID] = orientation;\n }\n return placedFeature;\n };\n var placeHorizontal = function() {\n return placeBox(textBox, performance2.WritingMode.horizontal);\n };\n var placeVertical = function() {\n var verticalTextBox = collisionArrays.verticalTextBox;\n if (bucket.allowVerticalPlacement && symbolInstance.numVerticalGlyphVertices > 0 && verticalTextBox) {\n return placeBox(verticalTextBox, performance2.WritingMode.vertical);\n }\n return {\n box: null,\n offscreen: null\n };\n };\n placeTextForPlacementModes(placeHorizontal, placeVertical);\n updatePreviousOrientationIfNotPlaced(placed && placed.box && placed.box.length);\n } else {\n var anchors = layout.get(\"text-variable-anchor\");\n if (this$1.prevPlacement && this$1.prevPlacement.variableOffsets[symbolInstance.crossTileID]) {\n var prevOffsets = this$1.prevPlacement.variableOffsets[symbolInstance.crossTileID];\n if (anchors.indexOf(prevOffsets.anchor) > 0) {\n anchors = anchors.filter(function(anchor) {\n return anchor !== prevOffsets.anchor;\n });\n anchors.unshift(prevOffsets.anchor);\n }\n }\n var placeBoxForVariableAnchors = function(collisionTextBox, collisionIconBox, orientation) {\n var width = collisionTextBox.x2 - collisionTextBox.x1;\n var height = collisionTextBox.y2 - collisionTextBox.y1;\n var textBoxScale = symbolInstance.textBoxScale;\n var variableIconBox = hasIconTextFit && !iconAllowOverlap ? collisionIconBox : null;\n var placedBox = {\n box: [],\n offscreen: false\n };\n var placementAttempts = textAllowOverlap ? anchors.length * 2 : anchors.length;\n for (var i3 = 0; i3 < placementAttempts; ++i3) {\n var anchor = anchors[i3 % anchors.length];\n var allowOverlap = i3 >= anchors.length;\n var result = this$1.attemptAnchorPlacement(anchor, collisionTextBox, width, height, textBoxScale, rotateWithMap, pitchWithMap, textPixelRatio, posMatrix, collisionGroup, allowOverlap, symbolInstance, bucket, orientation, variableIconBox);\n if (result) {\n placedBox = result.placedGlyphBoxes;\n if (placedBox && placedBox.box && placedBox.box.length) {\n placeText = true;\n shift = result.shift;\n break;\n }\n }\n }\n return placedBox;\n };\n var placeHorizontal$1 = function() {\n return placeBoxForVariableAnchors(textBox, collisionArrays.iconBox, performance2.WritingMode.horizontal);\n };\n var placeVertical$1 = function() {\n var verticalTextBox = collisionArrays.verticalTextBox;\n var wasPlaced = placed && placed.box && placed.box.length;\n if (bucket.allowVerticalPlacement && !wasPlaced && symbolInstance.numVerticalGlyphVertices > 0 && verticalTextBox) {\n return placeBoxForVariableAnchors(verticalTextBox, collisionArrays.verticalIconBox, performance2.WritingMode.vertical);\n }\n return {\n box: null,\n offscreen: null\n };\n };\n placeTextForPlacementModes(placeHorizontal$1, placeVertical$1);\n if (placed) {\n placeText = placed.box;\n offscreen = placed.offscreen;\n }\n var prevOrientation = updatePreviousOrientationIfNotPlaced(placed && placed.box);\n if (!placeText && this$1.prevPlacement) {\n var prevOffset = this$1.prevPlacement.variableOffsets[symbolInstance.crossTileID];\n if (prevOffset) {\n this$1.variableOffsets[symbolInstance.crossTileID] = prevOffset;\n this$1.markUsedJustification(bucket, prevOffset.anchor, symbolInstance, prevOrientation);\n }\n }\n }\n }\n placedGlyphBoxes = placed;\n placeText = placedGlyphBoxes && placedGlyphBoxes.box && placedGlyphBoxes.box.length > 0;\n offscreen = placedGlyphBoxes && placedGlyphBoxes.offscreen;\n if (symbolInstance.useRuntimeCollisionCircles) {\n var placedSymbol = bucket.text.placedSymbolArray.get(symbolInstance.centerJustifiedTextSymbolIndex);\n var fontSize = performance2.evaluateSizeForFeature(bucket.textSizeData, partiallyEvaluatedTextSize, placedSymbol);\n var textPixelPadding = layout.get(\"text-padding\");\n var circlePixelDiameter = symbolInstance.collisionCircleDiameter;\n placedGlyphCircles = this$1.collisionIndex.placeCollisionCircles(textAllowOverlap, placedSymbol, bucket.lineVertexArray, bucket.glyphOffsetArray, fontSize, posMatrix, textLabelPlaneMatrix, labelToScreenMatrix, showCollisionBoxes, pitchWithMap, collisionGroup.predicate, circlePixelDiameter, textPixelPadding);\n placeText = textAllowOverlap || placedGlyphCircles.circles.length > 0 && !placedGlyphCircles.collisionDetected;\n offscreen = offscreen && placedGlyphCircles.offscreen;\n }\n if (collisionArrays.iconFeatureIndex) {\n iconFeatureIndex = collisionArrays.iconFeatureIndex;\n }\n if (collisionArrays.iconBox) {\n var placeIconFeature = function(iconBox) {\n var shiftedIconBox = hasIconTextFit && shift ? shiftVariableCollisionBox(iconBox, shift.x, shift.y, rotateWithMap, pitchWithMap, this$1.transform.angle) : iconBox;\n return this$1.collisionIndex.placeCollisionBox(shiftedIconBox, iconAllowOverlap, textPixelRatio, posMatrix, collisionGroup.predicate);\n };\n if (placedVerticalText && placedVerticalText.box && placedVerticalText.box.length && collisionArrays.verticalIconBox) {\n placedIconBoxes = placeIconFeature(collisionArrays.verticalIconBox);\n placeIcon = placedIconBoxes.box.length > 0;\n } else {\n placedIconBoxes = placeIconFeature(collisionArrays.iconBox);\n placeIcon = placedIconBoxes.box.length > 0;\n }\n offscreen = offscreen && placedIconBoxes.offscreen;\n }\n var iconWithoutText = textOptional || symbolInstance.numHorizontalGlyphVertices === 0 && symbolInstance.numVerticalGlyphVertices === 0;\n var textWithoutIcon = iconOptional || symbolInstance.numIconVertices === 0;\n if (!iconWithoutText && !textWithoutIcon) {\n placeIcon = placeText = placeIcon && placeText;\n } else if (!textWithoutIcon) {\n placeText = placeIcon && placeText;\n } else if (!iconWithoutText) {\n placeIcon = placeIcon && placeText;\n }\n if (placeText && placedGlyphBoxes && placedGlyphBoxes.box) {\n if (placedVerticalText && placedVerticalText.box && verticalTextFeatureIndex) {\n this$1.collisionIndex.insertCollisionBox(placedGlyphBoxes.box, layout.get(\"text-ignore-placement\"), bucket.bucketInstanceId, verticalTextFeatureIndex, collisionGroup.ID);\n } else {\n this$1.collisionIndex.insertCollisionBox(placedGlyphBoxes.box, layout.get(\"text-ignore-placement\"), bucket.bucketInstanceId, textFeatureIndex, collisionGroup.ID);\n }\n }\n if (placeIcon && placedIconBoxes) {\n this$1.collisionIndex.insertCollisionBox(placedIconBoxes.box, layout.get(\"icon-ignore-placement\"), bucket.bucketInstanceId, iconFeatureIndex, collisionGroup.ID);\n }\n if (placedGlyphCircles) {\n if (placeText) {\n this$1.collisionIndex.insertCollisionCircles(placedGlyphCircles.circles, layout.get(\"text-ignore-placement\"), bucket.bucketInstanceId, textFeatureIndex, collisionGroup.ID);\n }\n if (showCollisionBoxes) {\n var id = bucket.bucketInstanceId;\n var circleArray2 = this$1.collisionCircleArrays[id];\n if (circleArray2 === void 0) {\n circleArray2 = this$1.collisionCircleArrays[id] = new CollisionCircleArray();\n }\n for (var i2 = 0; i2 < placedGlyphCircles.circles.length; i2 += 4) {\n circleArray2.circles.push(placedGlyphCircles.circles[i2 + 0]);\n circleArray2.circles.push(placedGlyphCircles.circles[i2 + 1]);\n circleArray2.circles.push(placedGlyphCircles.circles[i2 + 2]);\n circleArray2.circles.push(placedGlyphCircles.collisionDetected ? 1 : 0);\n }\n }\n }\n this$1.placements[symbolInstance.crossTileID] = new JointPlacement(placeText || alwaysShowText, placeIcon || alwaysShowIcon, offscreen || bucket.justReloaded);\n seenCrossTileIDs[symbolInstance.crossTileID] = true;\n };\n if (zOrderByViewportY) {\n var symbolIndexes = bucket.getSortedSymbolIndexes(this.transform.angle);\n for (var i = symbolIndexes.length - 1; i >= 0; --i) {\n var symbolIndex = symbolIndexes[i];\n placeSymbol(bucket.symbolInstances.get(symbolIndex), bucket.collisionArrays[symbolIndex]);\n }\n } else {\n for (var i$1 = bucketPart.symbolInstanceStart; i$1 < bucketPart.symbolInstanceEnd; i$1++) {\n placeSymbol(bucket.symbolInstances.get(i$1), bucket.collisionArrays[i$1]);\n }\n }\n if (showCollisionBoxes && bucket.bucketInstanceId in this.collisionCircleArrays) {\n var circleArray = this.collisionCircleArrays[bucket.bucketInstanceId];\n performance2.invert(circleArray.invProjMatrix, posMatrix);\n circleArray.viewportMatrix = this.collisionIndex.getViewportMatrix();\n }\n bucket.justReloaded = false;\n };\n Placement.prototype.markUsedJustification = function markUsedJustification(bucket, placedAnchor, symbolInstance, orientation) {\n var justifications = {\n \"left\": symbolInstance.leftJustifiedTextSymbolIndex,\n \"center\": symbolInstance.centerJustifiedTextSymbolIndex,\n \"right\": symbolInstance.rightJustifiedTextSymbolIndex\n };\n var autoIndex;\n if (orientation === performance2.WritingMode.vertical) {\n autoIndex = symbolInstance.verticalPlacedTextSymbolIndex;\n } else {\n autoIndex = justifications[performance2.getAnchorJustification(placedAnchor)];\n }\n var indexes = [\n symbolInstance.leftJustifiedTextSymbolIndex,\n symbolInstance.centerJustifiedTextSymbolIndex,\n symbolInstance.rightJustifiedTextSymbolIndex,\n symbolInstance.verticalPlacedTextSymbolIndex\n ];\n for (var i = 0, list = indexes; i < list.length; i += 1) {\n var index = list[i];\n if (index >= 0) {\n if (autoIndex >= 0 && index !== autoIndex) {\n bucket.text.placedSymbolArray.get(index).crossTileID = 0;\n } else {\n bucket.text.placedSymbolArray.get(index).crossTileID = symbolInstance.crossTileID;\n }\n }\n }\n };\n Placement.prototype.markUsedOrientation = function markUsedOrientation(bucket, orientation, symbolInstance) {\n var horizontal = orientation === performance2.WritingMode.horizontal || orientation === performance2.WritingMode.horizontalOnly ? orientation : 0;\n var vertical = orientation === performance2.WritingMode.vertical ? orientation : 0;\n var horizontalIndexes = [\n symbolInstance.leftJustifiedTextSymbolIndex,\n symbolInstance.centerJustifiedTextSymbolIndex,\n symbolInstance.rightJustifiedTextSymbolIndex\n ];\n for (var i = 0, list = horizontalIndexes; i < list.length; i += 1) {\n var index = list[i];\n bucket.text.placedSymbolArray.get(index).placedOrientation = horizontal;\n }\n if (symbolInstance.verticalPlacedTextSymbolIndex) {\n bucket.text.placedSymbolArray.get(symbolInstance.verticalPlacedTextSymbolIndex).placedOrientation = vertical;\n }\n };\n Placement.prototype.commit = function commit(now) {\n this.commitTime = now;\n this.zoomAtLastRecencyCheck = this.transform.zoom;\n var prevPlacement = this.prevPlacement;\n var placementChanged = false;\n this.prevZoomAdjustment = prevPlacement ? prevPlacement.zoomAdjustment(this.transform.zoom) : 0;\n var increment = prevPlacement ? prevPlacement.symbolFadeChange(now) : 1;\n var prevOpacities = prevPlacement ? prevPlacement.opacities : {};\n var prevOffsets = prevPlacement ? prevPlacement.variableOffsets : {};\n var prevOrientations = prevPlacement ? prevPlacement.placedOrientations : {};\n for (var crossTileID in this.placements) {\n var jointPlacement = this.placements[crossTileID];\n var prevOpacity = prevOpacities[crossTileID];\n if (prevOpacity) {\n this.opacities[crossTileID] = new JointOpacityState(prevOpacity, increment, jointPlacement.text, jointPlacement.icon);\n placementChanged = placementChanged || jointPlacement.text !== prevOpacity.text.placed || jointPlacement.icon !== prevOpacity.icon.placed;\n } else {\n this.opacities[crossTileID] = new JointOpacityState(null, increment, jointPlacement.text, jointPlacement.icon, jointPlacement.skipFade);\n placementChanged = placementChanged || jointPlacement.text || jointPlacement.icon;\n }\n }\n for (var crossTileID$1 in prevOpacities) {\n var prevOpacity$1 = prevOpacities[crossTileID$1];\n if (!this.opacities[crossTileID$1]) {\n var jointOpacity = new JointOpacityState(prevOpacity$1, increment, false, false);\n if (!jointOpacity.isHidden()) {\n this.opacities[crossTileID$1] = jointOpacity;\n placementChanged = placementChanged || prevOpacity$1.text.placed || prevOpacity$1.icon.placed;\n }\n }\n }\n for (var crossTileID$2 in prevOffsets) {\n if (!this.variableOffsets[crossTileID$2] && this.opacities[crossTileID$2] && !this.opacities[crossTileID$2].isHidden()) {\n this.variableOffsets[crossTileID$2] = prevOffsets[crossTileID$2];\n }\n }\n for (var crossTileID$3 in prevOrientations) {\n if (!this.placedOrientations[crossTileID$3] && this.opacities[crossTileID$3] && !this.opacities[crossTileID$3].isHidden()) {\n this.placedOrientations[crossTileID$3] = prevOrientations[crossTileID$3];\n }\n }\n if (placementChanged) {\n this.lastPlacementChangeTime = now;\n } else if (typeof this.lastPlacementChangeTime !== \"number\") {\n this.lastPlacementChangeTime = prevPlacement ? prevPlacement.lastPlacementChangeTime : now;\n }\n };\n Placement.prototype.updateLayerOpacities = function updateLayerOpacities(styleLayer, tiles) {\n var seenCrossTileIDs = {};\n for (var i = 0, list = tiles; i < list.length; i += 1) {\n var tile = list[i];\n var symbolBucket = tile.getBucket(styleLayer);\n if (symbolBucket && tile.latestFeatureIndex && styleLayer.id === symbolBucket.layerIds[0]) {\n this.updateBucketOpacities(symbolBucket, seenCrossTileIDs, tile.collisionBoxArray);\n }\n }\n };\n Placement.prototype.updateBucketOpacities = function updateBucketOpacities(bucket, seenCrossTileIDs, collisionBoxArray) {\n var this$1 = this;\n if (bucket.hasTextData()) {\n bucket.text.opacityVertexArray.clear();\n }\n if (bucket.hasIconData()) {\n bucket.icon.opacityVertexArray.clear();\n }\n if (bucket.hasIconCollisionBoxData()) {\n bucket.iconCollisionBox.collisionVertexArray.clear();\n }\n if (bucket.hasTextCollisionBoxData()) {\n bucket.textCollisionBox.collisionVertexArray.clear();\n }\n var layout = bucket.layers[0].layout;\n var duplicateOpacityState = new JointOpacityState(null, 0, false, false, true);\n var textAllowOverlap = layout.get(\"text-allow-overlap\");\n var iconAllowOverlap = layout.get(\"icon-allow-overlap\");\n var variablePlacement = layout.get(\"text-variable-anchor\");\n var rotateWithMap = layout.get(\"text-rotation-alignment\") === \"map\";\n var pitchWithMap = layout.get(\"text-pitch-alignment\") === \"map\";\n var hasIconTextFit = layout.get(\"icon-text-fit\") !== \"none\";\n var defaultOpacityState = new JointOpacityState(null, 0, textAllowOverlap && (iconAllowOverlap || !bucket.hasIconData() || layout.get(\"icon-optional\")), iconAllowOverlap && (textAllowOverlap || !bucket.hasTextData() || layout.get(\"text-optional\")), true);\n if (!bucket.collisionArrays && collisionBoxArray && (bucket.hasIconCollisionBoxData() || bucket.hasTextCollisionBoxData())) {\n bucket.deserializeCollisionBoxes(collisionBoxArray);\n }\n var addOpacities = function(iconOrText, numVertices, opacity) {\n for (var i = 0; i < numVertices / 4; i++) {\n iconOrText.opacityVertexArray.emplaceBack(opacity);\n }\n };\n var loop = function(s2) {\n var symbolInstance = bucket.symbolInstances.get(s2);\n var numHorizontalGlyphVertices = symbolInstance.numHorizontalGlyphVertices;\n var numVerticalGlyphVertices = symbolInstance.numVerticalGlyphVertices;\n var crossTileID = symbolInstance.crossTileID;\n var isDuplicate = seenCrossTileIDs[crossTileID];\n var opacityState = this$1.opacities[crossTileID];\n if (isDuplicate) {\n opacityState = duplicateOpacityState;\n } else if (!opacityState) {\n opacityState = defaultOpacityState;\n this$1.opacities[crossTileID] = opacityState;\n }\n seenCrossTileIDs[crossTileID] = true;\n var hasText = numHorizontalGlyphVertices > 0 || numVerticalGlyphVertices > 0;\n var hasIcon = symbolInstance.numIconVertices > 0;\n var placedOrientation = this$1.placedOrientations[symbolInstance.crossTileID];\n var horizontalHidden = placedOrientation === performance2.WritingMode.vertical;\n var verticalHidden = placedOrientation === performance2.WritingMode.horizontal || placedOrientation === performance2.WritingMode.horizontalOnly;\n if (hasText) {\n var packedOpacity = packOpacity(opacityState.text);\n var horizontalOpacity = horizontalHidden ? PACKED_HIDDEN_OPACITY : packedOpacity;\n addOpacities(bucket.text, numHorizontalGlyphVertices, horizontalOpacity);\n var verticalOpacity = verticalHidden ? PACKED_HIDDEN_OPACITY : packedOpacity;\n addOpacities(bucket.text, numVerticalGlyphVertices, verticalOpacity);\n var symbolHidden = opacityState.text.isHidden();\n [\n symbolInstance.rightJustifiedTextSymbolIndex,\n symbolInstance.centerJustifiedTextSymbolIndex,\n symbolInstance.leftJustifiedTextSymbolIndex\n ].forEach(function(index) {\n if (index >= 0) {\n bucket.text.placedSymbolArray.get(index).hidden = symbolHidden || horizontalHidden ? 1 : 0;\n }\n });\n if (symbolInstance.verticalPlacedTextSymbolIndex >= 0) {\n bucket.text.placedSymbolArray.get(symbolInstance.verticalPlacedTextSymbolIndex).hidden = symbolHidden || verticalHidden ? 1 : 0;\n }\n var prevOffset = this$1.variableOffsets[symbolInstance.crossTileID];\n if (prevOffset) {\n this$1.markUsedJustification(bucket, prevOffset.anchor, symbolInstance, placedOrientation);\n }\n var prevOrientation = this$1.placedOrientations[symbolInstance.crossTileID];\n if (prevOrientation) {\n this$1.markUsedJustification(bucket, \"left\", symbolInstance, prevOrientation);\n this$1.markUsedOrientation(bucket, prevOrientation, symbolInstance);\n }\n }\n if (hasIcon) {\n var packedOpacity$1 = packOpacity(opacityState.icon);\n var useHorizontal = !(hasIconTextFit && symbolInstance.verticalPlacedIconSymbolIndex && horizontalHidden);\n if (symbolInstance.placedIconSymbolIndex >= 0) {\n var horizontalOpacity$1 = useHorizontal ? packedOpacity$1 : PACKED_HIDDEN_OPACITY;\n addOpacities(bucket.icon, symbolInstance.numIconVertices, horizontalOpacity$1);\n bucket.icon.placedSymbolArray.get(symbolInstance.placedIconSymbolIndex).hidden = opacityState.icon.isHidden();\n }\n if (symbolInstance.verticalPlacedIconSymbolIndex >= 0) {\n var verticalOpacity$1 = !useHorizontal ? packedOpacity$1 : PACKED_HIDDEN_OPACITY;\n addOpacities(bucket.icon, symbolInstance.numVerticalIconVertices, verticalOpacity$1);\n bucket.icon.placedSymbolArray.get(symbolInstance.verticalPlacedIconSymbolIndex).hidden = opacityState.icon.isHidden();\n }\n }\n if (bucket.hasIconCollisionBoxData() || bucket.hasTextCollisionBoxData()) {\n var collisionArrays = bucket.collisionArrays[s2];\n if (collisionArrays) {\n var shift = new performance2.Point(0, 0);\n if (collisionArrays.textBox || collisionArrays.verticalTextBox) {\n var used = true;\n if (variablePlacement) {\n var variableOffset = this$1.variableOffsets[crossTileID];\n if (variableOffset) {\n shift = calculateVariableLayoutShift(variableOffset.anchor, variableOffset.width, variableOffset.height, variableOffset.textOffset, variableOffset.textBoxScale);\n if (rotateWithMap) {\n shift._rotate(pitchWithMap ? this$1.transform.angle : -this$1.transform.angle);\n }\n } else {\n used = false;\n }\n }\n if (collisionArrays.textBox) {\n updateCollisionVertices(bucket.textCollisionBox.collisionVertexArray, opacityState.text.placed, !used || horizontalHidden, shift.x, shift.y);\n }\n if (collisionArrays.verticalTextBox) {\n updateCollisionVertices(bucket.textCollisionBox.collisionVertexArray, opacityState.text.placed, !used || verticalHidden, shift.x, shift.y);\n }\n }\n var verticalIconUsed = Boolean(!verticalHidden && collisionArrays.verticalIconBox);\n if (collisionArrays.iconBox) {\n updateCollisionVertices(bucket.iconCollisionBox.collisionVertexArray, opacityState.icon.placed, verticalIconUsed, hasIconTextFit ? shift.x : 0, hasIconTextFit ? shift.y : 0);\n }\n if (collisionArrays.verticalIconBox) {\n updateCollisionVertices(bucket.iconCollisionBox.collisionVertexArray, opacityState.icon.placed, !verticalIconUsed, hasIconTextFit ? shift.x : 0, hasIconTextFit ? shift.y : 0);\n }\n }\n }\n };\n for (var s = 0; s < bucket.symbolInstances.length; s++)\n loop(s);\n bucket.sortFeatures(this.transform.angle);\n if (this.retainedQueryData[bucket.bucketInstanceId]) {\n this.retainedQueryData[bucket.bucketInstanceId].featureSortOrder = bucket.featureSortOrder;\n }\n if (bucket.hasTextData() && bucket.text.opacityVertexBuffer) {\n bucket.text.opacityVertexBuffer.updateData(bucket.text.opacityVertexArray);\n }\n if (bucket.hasIconData() && bucket.icon.opacityVertexBuffer) {\n bucket.icon.opacityVertexBuffer.updateData(bucket.icon.opacityVertexArray);\n }\n if (bucket.hasIconCollisionBoxData() && bucket.iconCollisionBox.collisionVertexBuffer) {\n bucket.iconCollisionBox.collisionVertexBuffer.updateData(bucket.iconCollisionBox.collisionVertexArray);\n }\n if (bucket.hasTextCollisionBoxData() && bucket.textCollisionBox.collisionVertexBuffer) {\n bucket.textCollisionBox.collisionVertexBuffer.updateData(bucket.textCollisionBox.collisionVertexArray);\n }\n if (bucket.bucketInstanceId in this.collisionCircleArrays) {\n var instance = this.collisionCircleArrays[bucket.bucketInstanceId];\n bucket.placementInvProjMatrix = instance.invProjMatrix;\n bucket.placementViewportMatrix = instance.viewportMatrix;\n bucket.collisionCircleArray = instance.circles;\n delete this.collisionCircleArrays[bucket.bucketInstanceId];\n }\n };\n Placement.prototype.symbolFadeChange = function symbolFadeChange(now) {\n return this.fadeDuration === 0 ? 1 : (now - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment;\n };\n Placement.prototype.zoomAdjustment = function zoomAdjustment(zoom) {\n return Math.max(0, (this.transform.zoom - zoom) / 1.5);\n };\n Placement.prototype.hasTransitions = function hasTransitions(now) {\n return this.stale || now - this.lastPlacementChangeTime < this.fadeDuration;\n };\n Placement.prototype.stillRecent = function stillRecent(now, zoom) {\n var durationAdjustment = this.zoomAtLastRecencyCheck === zoom ? 1 - this.zoomAdjustment(zoom) : 1;\n this.zoomAtLastRecencyCheck = zoom;\n return this.commitTime + this.fadeDuration * durationAdjustment > now;\n };\n Placement.prototype.setStale = function setStale() {\n this.stale = true;\n };\n function updateCollisionVertices(collisionVertexArray, placed, notUsed, shiftX, shiftY) {\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n collisionVertexArray.emplaceBack(placed ? 1 : 0, notUsed ? 1 : 0, shiftX || 0, shiftY || 0);\n }\n var shift25 = Math.pow(2, 25);\n var shift24 = Math.pow(2, 24);\n var shift17 = Math.pow(2, 17);\n var shift16 = Math.pow(2, 16);\n var shift9 = Math.pow(2, 9);\n var shift8 = Math.pow(2, 8);\n var shift1 = Math.pow(2, 1);\n function packOpacity(opacityState) {\n if (opacityState.opacity === 0 && !opacityState.placed) {\n return 0;\n } else if (opacityState.opacity === 1 && opacityState.placed) {\n return 4294967295;\n }\n var targetBit = opacityState.placed ? 1 : 0;\n var opacityBits = Math.floor(opacityState.opacity * 127);\n return opacityBits * shift25 + targetBit * shift24 + opacityBits * shift17 + targetBit * shift16 + opacityBits * shift9 + targetBit * shift8 + opacityBits * shift1 + targetBit;\n }\n var PACKED_HIDDEN_OPACITY = 0;\n var LayerPlacement = function LayerPlacement2(styleLayer) {\n this._sortAcrossTiles = styleLayer.layout.get(\"symbol-z-order\") !== \"viewport-y\" && styleLayer.layout.get(\"symbol-sort-key\").constantOr(1) !== void 0;\n this._currentTileIndex = 0;\n this._currentPartIndex = 0;\n this._seenCrossTileIDs = {};\n this._bucketParts = [];\n };\n LayerPlacement.prototype.continuePlacement = function continuePlacement(tiles, placement, showCollisionBoxes, styleLayer, shouldPausePlacement) {\n var bucketParts = this._bucketParts;\n while (this._currentTileIndex < tiles.length) {\n var tile = tiles[this._currentTileIndex];\n placement.getBucketParts(bucketParts, styleLayer, tile, this._sortAcrossTiles);\n this._currentTileIndex++;\n if (shouldPausePlacement()) {\n return true;\n }\n }\n if (this._sortAcrossTiles) {\n this._sortAcrossTiles = false;\n bucketParts.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n while (this._currentPartIndex < bucketParts.length) {\n var bucketPart = bucketParts[this._currentPartIndex];\n placement.placeLayerBucketPart(bucketPart, this._seenCrossTileIDs, showCollisionBoxes);\n this._currentPartIndex++;\n if (shouldPausePlacement()) {\n return true;\n }\n }\n return false;\n };\n var PauseablePlacement = function PauseablePlacement2(transform, order, forceFullPlacement, showCollisionBoxes, fadeDuration, crossSourceCollisions, prevPlacement) {\n this.placement = new Placement(transform, fadeDuration, crossSourceCollisions, prevPlacement);\n this._currentPlacementIndex = order.length - 1;\n this._forceFullPlacement = forceFullPlacement;\n this._showCollisionBoxes = showCollisionBoxes;\n this._done = false;\n };\n PauseablePlacement.prototype.isDone = function isDone() {\n return this._done;\n };\n PauseablePlacement.prototype.continuePlacement = function continuePlacement(order, layers, layerTiles) {\n var this$1 = this;\n var startTime = performance2.browser.now();\n var shouldPausePlacement = function() {\n var elapsedTime = performance2.browser.now() - startTime;\n return this$1._forceFullPlacement ? false : elapsedTime > 2;\n };\n while (this._currentPlacementIndex >= 0) {\n var layerId = order[this._currentPlacementIndex];\n var layer = layers[layerId];\n var placementZoom = this.placement.collisionIndex.transform.zoom;\n if (layer.type === \"symbol\" && (!layer.minzoom || layer.minzoom <= placementZoom) && (!layer.maxzoom || layer.maxzoom > placementZoom)) {\n if (!this._inProgressLayer) {\n this._inProgressLayer = new LayerPlacement(layer);\n }\n var pausePlacement = this._inProgressLayer.continuePlacement(layerTiles[layer.source], this.placement, this._showCollisionBoxes, layer, shouldPausePlacement);\n if (pausePlacement) {\n return;\n }\n delete this._inProgressLayer;\n }\n this._currentPlacementIndex--;\n }\n this._done = true;\n };\n PauseablePlacement.prototype.commit = function commit(now) {\n this.placement.commit(now);\n return this.placement;\n };\n var roundingFactor = 512 / performance2.EXTENT / 2;\n var TileLayerIndex = function TileLayerIndex2(tileID, symbolInstances, bucketInstanceId) {\n this.tileID = tileID;\n this.indexedSymbolInstances = {};\n this.bucketInstanceId = bucketInstanceId;\n for (var i = 0; i < symbolInstances.length; i++) {\n var symbolInstance = symbolInstances.get(i);\n var key = symbolInstance.key;\n if (!this.indexedSymbolInstances[key]) {\n this.indexedSymbolInstances[key] = [];\n }\n this.indexedSymbolInstances[key].push({\n crossTileID: symbolInstance.crossTileID,\n coord: this.getScaledCoordinates(symbolInstance, tileID)\n });\n }\n };\n TileLayerIndex.prototype.getScaledCoordinates = function getScaledCoordinates(symbolInstance, childTileID) {\n var zDifference = childTileID.canonical.z - this.tileID.canonical.z;\n var scale = roundingFactor / Math.pow(2, zDifference);\n return {\n x: Math.floor((childTileID.canonical.x * performance2.EXTENT + symbolInstance.anchorX) * scale),\n y: Math.floor((childTileID.canonical.y * performance2.EXTENT + symbolInstance.anchorY) * scale)\n };\n };\n TileLayerIndex.prototype.findMatches = function findMatches(symbolInstances, newTileID, zoomCrossTileIDs) {\n var tolerance = this.tileID.canonical.z < newTileID.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - newTileID.canonical.z);\n for (var i = 0; i < symbolInstances.length; i++) {\n var symbolInstance = symbolInstances.get(i);\n if (symbolInstance.crossTileID) {\n continue;\n }\n var indexedInstances = this.indexedSymbolInstances[symbolInstance.key];\n if (!indexedInstances) {\n continue;\n }\n var scaledSymbolCoord = this.getScaledCoordinates(symbolInstance, newTileID);\n for (var i$1 = 0, list = indexedInstances; i$1 < list.length; i$1 += 1) {\n var thisTileSymbol = list[i$1];\n if (Math.abs(thisTileSymbol.coord.x - scaledSymbolCoord.x) <= tolerance && Math.abs(thisTileSymbol.coord.y - scaledSymbolCoord.y) <= tolerance && !zoomCrossTileIDs[thisTileSymbol.crossTileID]) {\n zoomCrossTileIDs[thisTileSymbol.crossTileID] = true;\n symbolInstance.crossTileID = thisTileSymbol.crossTileID;\n break;\n }\n }\n }\n };\n var CrossTileIDs = function CrossTileIDs2() {\n this.maxCrossTileID = 0;\n };\n CrossTileIDs.prototype.generate = function generate() {\n return ++this.maxCrossTileID;\n };\n var CrossTileSymbolLayerIndex = function CrossTileSymbolLayerIndex2() {\n this.indexes = {};\n this.usedCrossTileIDs = {};\n this.lng = 0;\n };\n CrossTileSymbolLayerIndex.prototype.handleWrapJump = function handleWrapJump(lng) {\n var wrapDelta = Math.round((lng - this.lng) / 360);\n if (wrapDelta !== 0) {\n for (var zoom in this.indexes) {\n var zoomIndexes = this.indexes[zoom];\n var newZoomIndex = {};\n for (var key in zoomIndexes) {\n var index = zoomIndexes[key];\n index.tileID = index.tileID.unwrapTo(index.tileID.wrap + wrapDelta);\n newZoomIndex[index.tileID.key] = index;\n }\n this.indexes[zoom] = newZoomIndex;\n }\n }\n this.lng = lng;\n };\n CrossTileSymbolLayerIndex.prototype.addBucket = function addBucket(tileID, bucket, crossTileIDs) {\n if (this.indexes[tileID.overscaledZ] && this.indexes[tileID.overscaledZ][tileID.key]) {\n if (this.indexes[tileID.overscaledZ][tileID.key].bucketInstanceId === bucket.bucketInstanceId) {\n return false;\n } else {\n this.removeBucketCrossTileIDs(tileID.overscaledZ, this.indexes[tileID.overscaledZ][tileID.key]);\n }\n }\n for (var i = 0; i < bucket.symbolInstances.length; i++) {\n var symbolInstance = bucket.symbolInstances.get(i);\n symbolInstance.crossTileID = 0;\n }\n if (!this.usedCrossTileIDs[tileID.overscaledZ]) {\n this.usedCrossTileIDs[tileID.overscaledZ] = {};\n }\n var zoomCrossTileIDs = this.usedCrossTileIDs[tileID.overscaledZ];\n for (var zoom in this.indexes) {\n var zoomIndexes = this.indexes[zoom];\n if (Number(zoom) > tileID.overscaledZ) {\n for (var id in zoomIndexes) {\n var childIndex = zoomIndexes[id];\n if (childIndex.tileID.isChildOf(tileID)) {\n childIndex.findMatches(bucket.symbolInstances, tileID, zoomCrossTileIDs);\n }\n }\n } else {\n var parentCoord = tileID.scaledTo(Number(zoom));\n var parentIndex = zoomIndexes[parentCoord.key];\n if (parentIndex) {\n parentIndex.findMatches(bucket.symbolInstances, tileID, zoomCrossTileIDs);\n }\n }\n }\n for (var i$1 = 0; i$1 < bucket.symbolInstances.length; i$1++) {\n var symbolInstance$1 = bucket.symbolInstances.get(i$1);\n if (!symbolInstance$1.crossTileID) {\n symbolInstance$1.crossTileID = crossTileIDs.generate();\n zoomCrossTileIDs[symbolInstance$1.crossTileID] = true;\n }\n }\n if (this.indexes[tileID.overscaledZ] === void 0) {\n this.indexes[tileID.overscaledZ] = {};\n }\n this.indexes[tileID.overscaledZ][tileID.key] = new TileLayerIndex(tileID, bucket.symbolInstances, bucket.bucketInstanceId);\n return true;\n };\n CrossTileSymbolLayerIndex.prototype.removeBucketCrossTileIDs = function removeBucketCrossTileIDs(zoom, removedBucket) {\n for (var key in removedBucket.indexedSymbolInstances) {\n for (var i = 0, list = removedBucket.indexedSymbolInstances[key]; i < list.length; i += 1) {\n var symbolInstance = list[i];\n delete this.usedCrossTileIDs[zoom][symbolInstance.crossTileID];\n }\n }\n };\n CrossTileSymbolLayerIndex.prototype.removeStaleBuckets = function removeStaleBuckets(currentIDs) {\n var tilesChanged = false;\n for (var z in this.indexes) {\n var zoomIndexes = this.indexes[z];\n for (var tileKey in zoomIndexes) {\n if (!currentIDs[zoomIndexes[tileKey].bucketInstanceId]) {\n this.removeBucketCrossTileIDs(z, zoomIndexes[tileKey]);\n delete zoomIndexes[tileKey];\n tilesChanged = true;\n }\n }\n }\n return tilesChanged;\n };\n var CrossTileSymbolIndex = function CrossTileSymbolIndex2() {\n this.layerIndexes = {};\n this.crossTileIDs = new CrossTileIDs();\n this.maxBucketInstanceId = 0;\n this.bucketsInCurrentPlacement = {};\n };\n CrossTileSymbolIndex.prototype.addLayer = function addLayer(styleLayer, tiles, lng) {\n var layerIndex = this.layerIndexes[styleLayer.id];\n if (layerIndex === void 0) {\n layerIndex = this.layerIndexes[styleLayer.id] = new CrossTileSymbolLayerIndex();\n }\n var symbolBucketsChanged = false;\n var currentBucketIDs = {};\n layerIndex.handleWrapJump(lng);\n for (var i = 0, list = tiles; i < list.length; i += 1) {\n var tile = list[i];\n var symbolBucket = tile.getBucket(styleLayer);\n if (!symbolBucket || styleLayer.id !== symbolBucket.layerIds[0]) {\n continue;\n }\n if (!symbolBucket.bucketInstanceId) {\n symbolBucket.bucketInstanceId = ++this.maxBucketInstanceId;\n }\n if (layerIndex.addBucket(tile.tileID, symbolBucket, this.crossTileIDs)) {\n symbolBucketsChanged = true;\n }\n currentBucketIDs[symbolBucket.bucketInstanceId] = true;\n }\n if (layerIndex.removeStaleBuckets(currentBucketIDs)) {\n symbolBucketsChanged = true;\n }\n return symbolBucketsChanged;\n };\n CrossTileSymbolIndex.prototype.pruneUnusedLayers = function pruneUnusedLayers(usedLayers) {\n var usedLayerMap = {};\n usedLayers.forEach(function(usedLayer) {\n usedLayerMap[usedLayer] = true;\n });\n for (var layerId in this.layerIndexes) {\n if (!usedLayerMap[layerId]) {\n delete this.layerIndexes[layerId];\n }\n }\n };\n var emitValidationErrors = function(evented, errors) {\n return performance2.emitValidationErrors(evented, errors && errors.filter(function(error) {\n return error.identifier !== \"source.canvas\";\n }));\n };\n var supportedDiffOperations = performance2.pick(operations, [\n \"addLayer\",\n \"removeLayer\",\n \"setPaintProperty\",\n \"setLayoutProperty\",\n \"setFilter\",\n \"addSource\",\n \"removeSource\",\n \"setLayerZoomRange\",\n \"setLight\",\n \"setTransition\",\n \"setGeoJSONSourceData\"\n ]);\n var ignoredDiffOperations = performance2.pick(operations, [\n \"setCenter\",\n \"setZoom\",\n \"setBearing\",\n \"setPitch\"\n ]);\n var empty = emptyStyle();\n var Style = function(Evented) {\n function Style2(map, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n Evented.call(this);\n this.map = map;\n this.dispatcher = new Dispatcher(getGlobalWorkerPool(), this);\n this.imageManager = new ImageManager();\n this.imageManager.setEventedParent(this);\n this.glyphManager = new GlyphManager(map._requestManager, options.localIdeographFontFamily);\n this.lineAtlas = new LineAtlas(256, 512);\n this.crossTileSymbolIndex = new CrossTileSymbolIndex();\n this._layers = {};\n this._serializedLayers = {};\n this._order = [];\n this.sourceCaches = {};\n this.zoomHistory = new performance2.ZoomHistory();\n this._loaded = false;\n this._availableImages = [];\n this._resetUpdates();\n this.dispatcher.broadcast(\"setReferrer\", performance2.getReferrer());\n var self2 = this;\n this._rtlTextPluginCallback = Style2.registerForPluginStateChange(function(event) {\n var state = {\n pluginStatus: event.pluginStatus,\n pluginURL: event.pluginURL\n };\n self2.dispatcher.broadcast(\"syncRTLPluginState\", state, function(err, results) {\n performance2.triggerPluginCompletionEvent(err);\n if (results) {\n var allComplete = results.every(function(elem) {\n return elem;\n });\n if (allComplete) {\n for (var id in self2.sourceCaches) {\n self2.sourceCaches[id].reload();\n }\n }\n }\n });\n });\n this.on(\"data\", function(event) {\n if (event.dataType !== \"source\" || event.sourceDataType !== \"metadata\") {\n return;\n }\n var sourceCache = this$1.sourceCaches[event.sourceId];\n if (!sourceCache) {\n return;\n }\n var source = sourceCache.getSource();\n if (!source || !source.vectorLayerIds) {\n return;\n }\n for (var layerId in this$1._layers) {\n var layer = this$1._layers[layerId];\n if (layer.source === source.id) {\n this$1._validateLayer(layer);\n }\n }\n });\n }\n if (Evented)\n Style2.__proto__ = Evented;\n Style2.prototype = Object.create(Evented && Evented.prototype);\n Style2.prototype.constructor = Style2;\n Style2.prototype.loadURL = function loadURL(url, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"style\" }));\n var validate = typeof options.validate === \"boolean\" ? options.validate : !performance2.isMapboxURL(url);\n url = this.map._requestManager.normalizeStyleURL(url, options.accessToken);\n var request = this.map._requestManager.transformRequest(url, performance2.ResourceType.Style);\n this._request = performance2.getJSON(request, function(error, json) {\n this$1._request = null;\n if (error) {\n this$1.fire(new performance2.ErrorEvent(error));\n } else if (json) {\n this$1._load(json, validate);\n }\n });\n };\n Style2.prototype.loadJSON = function loadJSON(json, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"style\" }));\n this._request = performance2.browser.frame(function() {\n this$1._request = null;\n this$1._load(json, options.validate !== false);\n });\n };\n Style2.prototype.loadEmpty = function loadEmpty() {\n this.fire(new performance2.Event(\"dataloading\", { dataType: \"style\" }));\n this._load(empty, false);\n };\n Style2.prototype._load = function _load(json, validate) {\n if (validate && emitValidationErrors(this, performance2.validateStyle(json))) {\n return;\n }\n this._loaded = true;\n this.stylesheet = json;\n for (var id in json.sources) {\n this.addSource(id, json.sources[id], { validate: false });\n }\n if (json.sprite) {\n this._loadSprite(json.sprite);\n } else {\n this.imageManager.setLoaded(true);\n }\n this.glyphManager.setURL(json.glyphs);\n var layers = derefLayers(this.stylesheet.layers);\n this._order = layers.map(function(layer2) {\n return layer2.id;\n });\n this._layers = {};\n this._serializedLayers = {};\n for (var i = 0, list = layers; i < list.length; i += 1) {\n var layer = list[i];\n layer = performance2.createStyleLayer(layer);\n layer.setEventedParent(this, { layer: { id: layer.id } });\n this._layers[layer.id] = layer;\n this._serializedLayers[layer.id] = layer.serialize();\n }\n this.dispatcher.broadcast(\"setLayers\", this._serializeLayers(this._order));\n this.light = new Light(this.stylesheet.light);\n this.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n this.fire(new performance2.Event(\"style.load\"));\n };\n Style2.prototype._loadSprite = function _loadSprite(url) {\n var this$1 = this;\n this._spriteRequest = loadSprite(url, this.map._requestManager, function(err, images) {\n this$1._spriteRequest = null;\n if (err) {\n this$1.fire(new performance2.ErrorEvent(err));\n } else if (images) {\n for (var id in images) {\n this$1.imageManager.addImage(id, images[id]);\n }\n }\n this$1.imageManager.setLoaded(true);\n this$1._availableImages = this$1.imageManager.listImages();\n this$1.dispatcher.broadcast(\"setImages\", this$1._availableImages);\n this$1.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n });\n };\n Style2.prototype._validateLayer = function _validateLayer(layer) {\n var sourceCache = this.sourceCaches[layer.source];\n if (!sourceCache) {\n return;\n }\n var sourceLayer = layer.sourceLayer;\n if (!sourceLayer) {\n return;\n }\n var source = sourceCache.getSource();\n if (source.type === \"geojson\" || source.vectorLayerIds && source.vectorLayerIds.indexOf(sourceLayer) === -1) {\n this.fire(new performance2.ErrorEvent(new Error('Source layer \"' + sourceLayer + '\" does not exist on source \"' + source.id + '\" as specified by style layer \"' + layer.id + '\"')));\n }\n };\n Style2.prototype.loaded = function loaded() {\n if (!this._loaded) {\n return false;\n }\n if (Object.keys(this._updatedSources).length) {\n return false;\n }\n for (var id in this.sourceCaches) {\n if (!this.sourceCaches[id].loaded()) {\n return false;\n }\n }\n if (!this.imageManager.isLoaded()) {\n return false;\n }\n return true;\n };\n Style2.prototype._serializeLayers = function _serializeLayers(ids) {\n var serializedLayers = [];\n for (var i = 0, list = ids; i < list.length; i += 1) {\n var id = list[i];\n var layer = this._layers[id];\n if (layer.type !== \"custom\") {\n serializedLayers.push(layer.serialize());\n }\n }\n return serializedLayers;\n };\n Style2.prototype.hasTransitions = function hasTransitions() {\n if (this.light && this.light.hasTransition()) {\n return true;\n }\n for (var id in this.sourceCaches) {\n if (this.sourceCaches[id].hasTransition()) {\n return true;\n }\n }\n for (var id$1 in this._layers) {\n if (this._layers[id$1].hasTransition()) {\n return true;\n }\n }\n return false;\n };\n Style2.prototype._checkLoaded = function _checkLoaded() {\n if (!this._loaded) {\n throw new Error(\"Style is not done loading\");\n }\n };\n Style2.prototype.update = function update(parameters) {\n if (!this._loaded) {\n return;\n }\n var changed = this._changed;\n if (this._changed) {\n var updatedIds = Object.keys(this._updatedLayers);\n var removedIds = Object.keys(this._removedLayers);\n if (updatedIds.length || removedIds.length) {\n this._updateWorkerLayers(updatedIds, removedIds);\n }\n for (var id in this._updatedSources) {\n var action = this._updatedSources[id];\n if (action === \"reload\") {\n this._reloadSource(id);\n } else if (action === \"clear\") {\n this._clearSource(id);\n }\n }\n this._updateTilesForChangedImages();\n for (var id$1 in this._updatedPaintProps) {\n this._layers[id$1].updateTransitions(parameters);\n }\n this.light.updateTransitions(parameters);\n this._resetUpdates();\n }\n var sourcesUsedBefore = {};\n for (var sourceId in this.sourceCaches) {\n var sourceCache = this.sourceCaches[sourceId];\n sourcesUsedBefore[sourceId] = sourceCache.used;\n sourceCache.used = false;\n }\n for (var i = 0, list = this._order; i < list.length; i += 1) {\n var layerId = list[i];\n var layer = this._layers[layerId];\n layer.recalculate(parameters, this._availableImages);\n if (!layer.isHidden(parameters.zoom) && layer.source) {\n this.sourceCaches[layer.source].used = true;\n }\n }\n for (var sourceId$1 in sourcesUsedBefore) {\n var sourceCache$1 = this.sourceCaches[sourceId$1];\n if (sourcesUsedBefore[sourceId$1] !== sourceCache$1.used) {\n sourceCache$1.fire(new performance2.Event(\"data\", {\n sourceDataType: \"visibility\",\n dataType: \"source\",\n sourceId: sourceId$1\n }));\n }\n }\n this.light.recalculate(parameters);\n this.z = parameters.zoom;\n if (changed) {\n this.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n }\n };\n Style2.prototype._updateTilesForChangedImages = function _updateTilesForChangedImages() {\n var changedImages = Object.keys(this._changedImages);\n if (changedImages.length) {\n for (var name2 in this.sourceCaches) {\n this.sourceCaches[name2].reloadTilesForDependencies([\n \"icons\",\n \"patterns\"\n ], changedImages);\n }\n this._changedImages = {};\n }\n };\n Style2.prototype._updateWorkerLayers = function _updateWorkerLayers(updatedIds, removedIds) {\n this.dispatcher.broadcast(\"updateLayers\", {\n layers: this._serializeLayers(updatedIds),\n removedIds\n });\n };\n Style2.prototype._resetUpdates = function _resetUpdates() {\n this._changed = false;\n this._updatedLayers = {};\n this._removedLayers = {};\n this._updatedSources = {};\n this._updatedPaintProps = {};\n this._changedImages = {};\n };\n Style2.prototype.setState = function setState(nextState) {\n var this$1 = this;\n this._checkLoaded();\n if (emitValidationErrors(this, performance2.validateStyle(nextState))) {\n return false;\n }\n nextState = performance2.clone$1(nextState);\n nextState.layers = derefLayers(nextState.layers);\n var changes = diffStyles(this.serialize(), nextState).filter(function(op) {\n return !(op.command in ignoredDiffOperations);\n });\n if (changes.length === 0) {\n return false;\n }\n var unimplementedOps = changes.filter(function(op) {\n return !(op.command in supportedDiffOperations);\n });\n if (unimplementedOps.length > 0) {\n throw new Error(\"Unimplemented: \" + unimplementedOps.map(function(op) {\n return op.command;\n }).join(\", \") + \".\");\n }\n changes.forEach(function(op) {\n if (op.command === \"setTransition\") {\n return;\n }\n this$1[op.command].apply(this$1, op.args);\n });\n this.stylesheet = nextState;\n return true;\n };\n Style2.prototype.addImage = function addImage(id, image) {\n if (this.getImage(id)) {\n return this.fire(new performance2.ErrorEvent(new Error(\"An image with this name already exists.\")));\n }\n this.imageManager.addImage(id, image);\n this._afterImageUpdated(id);\n };\n Style2.prototype.updateImage = function updateImage(id, image) {\n this.imageManager.updateImage(id, image);\n };\n Style2.prototype.getImage = function getImage(id) {\n return this.imageManager.getImage(id);\n };\n Style2.prototype.removeImage = function removeImage(id) {\n if (!this.getImage(id)) {\n return this.fire(new performance2.ErrorEvent(new Error(\"No image with this name exists.\")));\n }\n this.imageManager.removeImage(id);\n this._afterImageUpdated(id);\n };\n Style2.prototype._afterImageUpdated = function _afterImageUpdated(id) {\n this._availableImages = this.imageManager.listImages();\n this._changedImages[id] = true;\n this._changed = true;\n this.dispatcher.broadcast(\"setImages\", this._availableImages);\n this.fire(new performance2.Event(\"data\", { dataType: \"style\" }));\n };\n Style2.prototype.listImages = function listImages() {\n this._checkLoaded();\n return this.imageManager.listImages();\n };\n Style2.prototype.addSource = function addSource2(id, source, options) {\n var this$1 = this;\n if (options === void 0)\n options = {};\n this._checkLoaded();\n if (this.sourceCaches[id] !== void 0) {\n throw new Error(\"There is already a source with this ID\");\n }\n if (!source.type) {\n throw new Error(\"The type property must be defined, but only the following properties were given: \" + Object.keys(source).join(\", \") + \".\");\n }\n var builtIns = [\n \"vector\",\n \"raster\",\n \"geojson\",\n \"video\",\n \"image\"\n ];\n var shouldValidate = builtIns.indexOf(source.type) >= 0;\n if (shouldValidate && this._validate(performance2.validateStyle.source, \"sources.\" + id, source, null, options)) {\n return;\n }\n if (this.map && this.map._collectResourceTiming) {\n source.collectResourceTiming = true;\n }\n var sourceCache = this.sourceCaches[id] = new SourceCache(id, source, this.dispatcher);\n sourceCache.style = this;\n sourceCache.setEventedParent(this, function() {\n return {\n isSourceLoaded: this$1.loaded(),\n source: sourceCache.serialize(),\n sourceId: id\n };\n });\n sourceCache.onAdd(this.map);\n this._changed = true;\n };\n Style2.prototype.removeSource = function removeSource2(id) {\n this._checkLoaded();\n if (this.sourceCaches[id] === void 0) {\n throw new Error(\"There is no source with this ID\");\n }\n for (var layerId in this._layers) {\n if (this._layers[layerId].source === id) {\n return this.fire(new performance2.ErrorEvent(new Error('Source \"' + id + '\" cannot be removed while layer \"' + layerId + '\" is using it.')));\n }\n }\n var sourceCache = this.sourceCaches[id];\n delete this.sourceCaches[id];\n delete this._updatedSources[id];\n sourceCache.fire(new performance2.Event(\"data\", {\n sourceDataType: \"metadata\",\n dataType: \"source\",\n sourceId: id\n }));\n sourceCache.setEventedParent(null);\n sourceCache.clearTiles();\n if (sourceCache.onRemove) {\n sourceCache.onRemove(this.map);\n }\n this._changed = true;\n };\n Style2.prototype.setGeoJSONSourceData = function setGeoJSONSourceData(id, data) {\n this._checkLoaded();\n var geojsonSource = this.sourceCaches[id].getSource();\n geojsonSource.setData(data);\n this._changed = true;\n };\n Style2.prototype.getSource = function getSource(id) {\n return this.sourceCaches[id] && this.sourceCaches[id].getSource();\n };\n Style2.prototype.addLayer = function addLayer(layerObject, before, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var id = layerObject.id;\n if (this.getLayer(id)) {\n this.fire(new performance2.ErrorEvent(new Error('Layer with id \"' + id + '\" already exists on this map')));\n return;\n }\n var layer;\n if (layerObject.type === \"custom\") {\n if (emitValidationErrors(this, performance2.validateCustomStyleLayer(layerObject))) {\n return;\n }\n layer = performance2.createStyleLayer(layerObject);\n } else {\n if (typeof layerObject.source === \"object\") {\n this.addSource(id, layerObject.source);\n layerObject = performance2.clone$1(layerObject);\n layerObject = performance2.extend(layerObject, { source: id });\n }\n if (this._validate(performance2.validateStyle.layer, \"layers.\" + id, layerObject, { arrayIndex: -1 }, options)) {\n return;\n }\n layer = performance2.createStyleLayer(layerObject);\n this._validateLayer(layer);\n layer.setEventedParent(this, { layer: { id } });\n this._serializedLayers[layer.id] = layer.serialize();\n }\n var index = before ? this._order.indexOf(before) : this._order.length;\n if (before && index === -1) {\n this.fire(new performance2.ErrorEvent(new Error('Layer with id \"' + before + '\" does not exist on this map.')));\n return;\n }\n this._order.splice(index, 0, id);\n this._layerOrderChanged = true;\n this._layers[id] = layer;\n if (this._removedLayers[id] && layer.source && layer.type !== \"custom\") {\n var removed = this._removedLayers[id];\n delete this._removedLayers[id];\n if (removed.type !== layer.type) {\n this._updatedSources[layer.source] = \"clear\";\n } else {\n this._updatedSources[layer.source] = \"reload\";\n this.sourceCaches[layer.source].pause();\n }\n }\n this._updateLayer(layer);\n if (layer.onAdd) {\n layer.onAdd(this.map);\n }\n };\n Style2.prototype.moveLayer = function moveLayer(id, before) {\n this._checkLoaded();\n this._changed = true;\n var layer = this._layers[id];\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + id + \"' does not exist in the map's style and cannot be moved.\")));\n return;\n }\n if (id === before) {\n return;\n }\n var index = this._order.indexOf(id);\n this._order.splice(index, 1);\n var newIndex = before ? this._order.indexOf(before) : this._order.length;\n if (before && newIndex === -1) {\n this.fire(new performance2.ErrorEvent(new Error('Layer with id \"' + before + '\" does not exist on this map.')));\n return;\n }\n this._order.splice(newIndex, 0, id);\n this._layerOrderChanged = true;\n };\n Style2.prototype.removeLayer = function removeLayer(id) {\n this._checkLoaded();\n var layer = this._layers[id];\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + id + \"' does not exist in the map's style and cannot be removed.\")));\n return;\n }\n layer.setEventedParent(null);\n var index = this._order.indexOf(id);\n this._order.splice(index, 1);\n this._layerOrderChanged = true;\n this._changed = true;\n this._removedLayers[id] = layer;\n delete this._layers[id];\n delete this._serializedLayers[id];\n delete this._updatedLayers[id];\n delete this._updatedPaintProps[id];\n if (layer.onRemove) {\n layer.onRemove(this.map);\n }\n };\n Style2.prototype.getLayer = function getLayer(id) {\n return this._layers[id];\n };\n Style2.prototype.hasLayer = function hasLayer(id) {\n return id in this._layers;\n };\n Style2.prototype.setLayerZoomRange = function setLayerZoomRange(layerId, minzoom, maxzoom) {\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot have zoom extent.\")));\n return;\n }\n if (layer.minzoom === minzoom && layer.maxzoom === maxzoom) {\n return;\n }\n if (minzoom != null) {\n layer.minzoom = minzoom;\n }\n if (maxzoom != null) {\n layer.maxzoom = maxzoom;\n }\n this._updateLayer(layer);\n };\n Style2.prototype.setFilter = function setFilter(layerId, filter, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be filtered.\")));\n return;\n }\n if (performance2.deepEqual(layer.filter, filter)) {\n return;\n }\n if (filter === null || filter === void 0) {\n layer.filter = void 0;\n this._updateLayer(layer);\n return;\n }\n if (this._validate(performance2.validateStyle.filter, \"layers.\" + layer.id + \".filter\", filter, null, options)) {\n return;\n }\n layer.filter = performance2.clone$1(filter);\n this._updateLayer(layer);\n };\n Style2.prototype.getFilter = function getFilter(layer) {\n return performance2.clone$1(this.getLayer(layer).filter);\n };\n Style2.prototype.setLayoutProperty = function setLayoutProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be styled.\")));\n return;\n }\n if (performance2.deepEqual(layer.getLayoutProperty(name2), value)) {\n return;\n }\n layer.setLayoutProperty(name2, value, options);\n this._updateLayer(layer);\n };\n Style2.prototype.getLayoutProperty = function getLayoutProperty(layerId, name2) {\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style.\")));\n return;\n }\n return layer.getLayoutProperty(name2);\n };\n Style2.prototype.setPaintProperty = function setPaintProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var layer = this.getLayer(layerId);\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be styled.\")));\n return;\n }\n if (performance2.deepEqual(layer.getPaintProperty(name2), value)) {\n return;\n }\n var requiresRelayout = layer.setPaintProperty(name2, value, options);\n if (requiresRelayout) {\n this._updateLayer(layer);\n }\n this._changed = true;\n this._updatedPaintProps[layerId] = true;\n };\n Style2.prototype.getPaintProperty = function getPaintProperty(layer, name2) {\n return this.getLayer(layer).getPaintProperty(name2);\n };\n Style2.prototype.setFeatureState = function setFeatureState(target, state) {\n this._checkLoaded();\n var sourceId = target.source;\n var sourceLayer = target.sourceLayer;\n var sourceCache = this.sourceCaches[sourceId];\n if (sourceCache === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The source '\" + sourceId + \"' does not exist in the map's style.\")));\n return;\n }\n var sourceType = sourceCache.getSource().type;\n if (sourceType === \"geojson\" && sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\")));\n return;\n }\n if (sourceType === \"vector\" && !sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n return;\n }\n if (target.id === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The feature id parameter must be provided.\")));\n }\n sourceCache.setFeatureState(sourceLayer, target.id, state);\n };\n Style2.prototype.removeFeatureState = function removeFeatureState(target, key) {\n this._checkLoaded();\n var sourceId = target.source;\n var sourceCache = this.sourceCaches[sourceId];\n if (sourceCache === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The source '\" + sourceId + \"' does not exist in the map's style.\")));\n return;\n }\n var sourceType = sourceCache.getSource().type;\n var sourceLayer = sourceType === \"vector\" ? target.sourceLayer : void 0;\n if (sourceType === \"vector\" && !sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n return;\n }\n if (key && (typeof target.id !== \"string\" && typeof target.id !== \"number\")) {\n this.fire(new performance2.ErrorEvent(new Error(\"A feature id is required to remove its specific state property.\")));\n return;\n }\n sourceCache.removeFeatureState(sourceLayer, target.id, key);\n };\n Style2.prototype.getFeatureState = function getFeatureState(target) {\n this._checkLoaded();\n var sourceId = target.source;\n var sourceLayer = target.sourceLayer;\n var sourceCache = this.sourceCaches[sourceId];\n if (sourceCache === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The source '\" + sourceId + \"' does not exist in the map's style.\")));\n return;\n }\n var sourceType = sourceCache.getSource().type;\n if (sourceType === \"vector\" && !sourceLayer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n return;\n }\n if (target.id === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"The feature id parameter must be provided.\")));\n }\n return sourceCache.getFeatureState(sourceLayer, target.id);\n };\n Style2.prototype.getTransition = function getTransition() {\n return performance2.extend({\n duration: 300,\n delay: 0\n }, this.stylesheet && this.stylesheet.transition);\n };\n Style2.prototype.serialize = function serialize() {\n return performance2.filterObject({\n version: this.stylesheet.version,\n name: this.stylesheet.name,\n metadata: this.stylesheet.metadata,\n light: this.stylesheet.light,\n center: this.stylesheet.center,\n zoom: this.stylesheet.zoom,\n bearing: this.stylesheet.bearing,\n pitch: this.stylesheet.pitch,\n sprite: this.stylesheet.sprite,\n glyphs: this.stylesheet.glyphs,\n transition: this.stylesheet.transition,\n sources: performance2.mapObject(this.sourceCaches, function(source) {\n return source.serialize();\n }),\n layers: this._serializeLayers(this._order)\n }, function(value) {\n return value !== void 0;\n });\n };\n Style2.prototype._updateLayer = function _updateLayer(layer) {\n this._updatedLayers[layer.id] = true;\n if (layer.source && !this._updatedSources[layer.source] && this.sourceCaches[layer.source].getSource().type !== \"raster\") {\n this._updatedSources[layer.source] = \"reload\";\n this.sourceCaches[layer.source].pause();\n }\n this._changed = true;\n };\n Style2.prototype._flattenAndSortRenderedFeatures = function _flattenAndSortRenderedFeatures(sourceResults) {\n var this$1 = this;\n var isLayer3D = function(layerId2) {\n return this$1._layers[layerId2].type === \"fill-extrusion\";\n };\n var layerIndex = {};\n var features3D = [];\n for (var l = this._order.length - 1; l >= 0; l--) {\n var layerId = this._order[l];\n if (isLayer3D(layerId)) {\n layerIndex[layerId] = l;\n for (var i$2 = 0, list$1 = sourceResults; i$2 < list$1.length; i$2 += 1) {\n var sourceResult = list$1[i$2];\n var layerFeatures = sourceResult[layerId];\n if (layerFeatures) {\n for (var i$1 = 0, list = layerFeatures; i$1 < list.length; i$1 += 1) {\n var featureWrapper = list[i$1];\n features3D.push(featureWrapper);\n }\n }\n }\n }\n }\n features3D.sort(function(a, b) {\n return b.intersectionZ - a.intersectionZ;\n });\n var features = [];\n for (var l$1 = this._order.length - 1; l$1 >= 0; l$1--) {\n var layerId$1 = this._order[l$1];\n if (isLayer3D(layerId$1)) {\n for (var i = features3D.length - 1; i >= 0; i--) {\n var topmost3D = features3D[i].feature;\n if (layerIndex[topmost3D.layer.id] < l$1) {\n break;\n }\n features.push(topmost3D);\n features3D.pop();\n }\n } else {\n for (var i$4 = 0, list$3 = sourceResults; i$4 < list$3.length; i$4 += 1) {\n var sourceResult$1 = list$3[i$4];\n var layerFeatures$1 = sourceResult$1[layerId$1];\n if (layerFeatures$1) {\n for (var i$3 = 0, list$2 = layerFeatures$1; i$3 < list$2.length; i$3 += 1) {\n var featureWrapper$1 = list$2[i$3];\n features.push(featureWrapper$1.feature);\n }\n }\n }\n }\n }\n return features;\n };\n Style2.prototype.queryRenderedFeatures = function queryRenderedFeatures$1(queryGeometry, params, transform) {\n if (params && params.filter) {\n this._validate(performance2.validateStyle.filter, \"queryRenderedFeatures.filter\", params.filter, null, params);\n }\n var includedSources = {};\n if (params && params.layers) {\n if (!Array.isArray(params.layers)) {\n this.fire(new performance2.ErrorEvent(new Error(\"parameters.layers must be an Array.\")));\n return [];\n }\n for (var i = 0, list = params.layers; i < list.length; i += 1) {\n var layerId = list[i];\n var layer = this._layers[layerId];\n if (!layer) {\n this.fire(new performance2.ErrorEvent(new Error(\"The layer '\" + layerId + \"' does not exist in the map's style and cannot be queried for features.\")));\n return [];\n }\n includedSources[layer.source] = true;\n }\n }\n var sourceResults = [];\n params.availableImages = this._availableImages;\n for (var id in this.sourceCaches) {\n if (params.layers && !includedSources[id]) {\n continue;\n }\n sourceResults.push(queryRenderedFeatures(this.sourceCaches[id], this._layers, this._serializedLayers, queryGeometry, params, transform));\n }\n if (this.placement) {\n sourceResults.push(queryRenderedSymbols(this._layers, this._serializedLayers, this.sourceCaches, queryGeometry, params, this.placement.collisionIndex, this.placement.retainedQueryData));\n }\n return this._flattenAndSortRenderedFeatures(sourceResults);\n };\n Style2.prototype.querySourceFeatures = function querySourceFeatures$1(sourceID, params) {\n if (params && params.filter) {\n this._validate(performance2.validateStyle.filter, \"querySourceFeatures.filter\", params.filter, null, params);\n }\n var sourceCache = this.sourceCaches[sourceID];\n return sourceCache ? querySourceFeatures(sourceCache, params) : [];\n };\n Style2.prototype.addSourceType = function addSourceType(name2, SourceType, callback) {\n if (Style2.getSourceType(name2)) {\n return callback(new Error('A source type called \"' + name2 + '\" already exists.'));\n }\n Style2.setSourceType(name2, SourceType);\n if (!SourceType.workerSourceURL) {\n return callback(null, null);\n }\n this.dispatcher.broadcast(\"loadWorkerSource\", {\n name: name2,\n url: SourceType.workerSourceURL\n }, callback);\n };\n Style2.prototype.getLight = function getLight() {\n return this.light.getLight();\n };\n Style2.prototype.setLight = function setLight(lightOptions, options) {\n if (options === void 0)\n options = {};\n this._checkLoaded();\n var light = this.light.getLight();\n var _update = false;\n for (var key in lightOptions) {\n if (!performance2.deepEqual(lightOptions[key], light[key])) {\n _update = true;\n break;\n }\n }\n if (!_update) {\n return;\n }\n var parameters = {\n now: performance2.browser.now(),\n transition: performance2.extend({\n duration: 300,\n delay: 0\n }, this.stylesheet.transition)\n };\n this.light.setLight(lightOptions, options);\n this.light.updateTransitions(parameters);\n };\n Style2.prototype._validate = function _validate(validate, key, value, props, options) {\n if (options === void 0)\n options = {};\n if (options && options.validate === false) {\n return false;\n }\n return emitValidationErrors(this, validate.call(performance2.validateStyle, performance2.extend({\n key,\n style: this.serialize(),\n value,\n styleSpec: performance2.styleSpec\n }, props)));\n };\n Style2.prototype._remove = function _remove() {\n if (this._request) {\n this._request.cancel();\n this._request = null;\n }\n if (this._spriteRequest) {\n this._spriteRequest.cancel();\n this._spriteRequest = null;\n }\n performance2.evented.off(\"pluginStateChange\", this._rtlTextPluginCallback);\n for (var layerId in this._layers) {\n var layer = this._layers[layerId];\n layer.setEventedParent(null);\n }\n for (var id in this.sourceCaches) {\n this.sourceCaches[id].clearTiles();\n this.sourceCaches[id].setEventedParent(null);\n }\n this.imageManager.setEventedParent(null);\n this.setEventedParent(null);\n this.dispatcher.remove();\n };\n Style2.prototype._clearSource = function _clearSource(id) {\n this.sourceCaches[id].clearTiles();\n };\n Style2.prototype._reloadSource = function _reloadSource(id) {\n this.sourceCaches[id].resume();\n this.sourceCaches[id].reload();\n };\n Style2.prototype._updateSources = function _updateSources(transform) {\n for (var id in this.sourceCaches) {\n this.sourceCaches[id].update(transform);\n }\n };\n Style2.prototype._generateCollisionBoxes = function _generateCollisionBoxes() {\n for (var id in this.sourceCaches) {\n this._reloadSource(id);\n }\n };\n Style2.prototype._updatePlacement = function _updatePlacement(transform, showCollisionBoxes, fadeDuration, crossSourceCollisions, forceFullPlacement) {\n if (forceFullPlacement === void 0)\n forceFullPlacement = false;\n var symbolBucketsChanged = false;\n var placementCommitted = false;\n var layerTiles = {};\n for (var i = 0, list = this._order; i < list.length; i += 1) {\n var layerID = list[i];\n var styleLayer = this._layers[layerID];\n if (styleLayer.type !== \"symbol\") {\n continue;\n }\n if (!layerTiles[styleLayer.source]) {\n var sourceCache = this.sourceCaches[styleLayer.source];\n layerTiles[styleLayer.source] = sourceCache.getRenderableIds(true).map(function(id) {\n return sourceCache.getTileByID(id);\n }).sort(function(a, b) {\n return b.tileID.overscaledZ - a.tileID.overscaledZ || (a.tileID.isLessThan(b.tileID) ? -1 : 1);\n });\n }\n var layerBucketsChanged = this.crossTileSymbolIndex.addLayer(styleLayer, layerTiles[styleLayer.source], transform.center.lng);\n symbolBucketsChanged = symbolBucketsChanged || layerBucketsChanged;\n }\n this.crossTileSymbolIndex.pruneUnusedLayers(this._order);\n forceFullPlacement = forceFullPlacement || this._layerOrderChanged || fadeDuration === 0;\n if (forceFullPlacement || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(performance2.browser.now(), transform.zoom)) {\n this.pauseablePlacement = new PauseablePlacement(transform, this._order, forceFullPlacement, showCollisionBoxes, fadeDuration, crossSourceCollisions, this.placement);\n this._layerOrderChanged = false;\n }\n if (this.pauseablePlacement.isDone()) {\n this.placement.setStale();\n } else {\n this.pauseablePlacement.continuePlacement(this._order, this._layers, layerTiles);\n if (this.pauseablePlacement.isDone()) {\n this.placement = this.pauseablePlacement.commit(performance2.browser.now());\n placementCommitted = true;\n }\n if (symbolBucketsChanged) {\n this.pauseablePlacement.placement.setStale();\n }\n }\n if (placementCommitted || symbolBucketsChanged) {\n for (var i$1 = 0, list$1 = this._order; i$1 < list$1.length; i$1 += 1) {\n var layerID$1 = list$1[i$1];\n var styleLayer$1 = this._layers[layerID$1];\n if (styleLayer$1.type !== \"symbol\") {\n continue;\n }\n this.placement.updateLayerOpacities(styleLayer$1, layerTiles[styleLayer$1.source]);\n }\n }\n var needsRerender = !this.pauseablePlacement.isDone() || this.placement.hasTransitions(performance2.browser.now());\n return needsRerender;\n };\n Style2.prototype._releaseSymbolFadeTiles = function _releaseSymbolFadeTiles() {\n for (var id in this.sourceCaches) {\n this.sourceCaches[id].releaseSymbolFadeTiles();\n }\n };\n Style2.prototype.getImages = function getImages(mapId, params, callback) {\n this.imageManager.getImages(params.icons, callback);\n this._updateTilesForChangedImages();\n var sourceCache = this.sourceCaches[params.source];\n if (sourceCache) {\n sourceCache.setDependencies(params.tileID.key, params.type, params.icons);\n }\n };\n Style2.prototype.getGlyphs = function getGlyphs(mapId, params, callback) {\n this.glyphManager.getGlyphs(params.stacks, callback);\n };\n Style2.prototype.getResource = function getResource(mapId, params, callback) {\n return performance2.makeRequest(params, callback);\n };\n return Style2;\n }(performance2.Evented);\n Style.getSourceType = getType;\n Style.setSourceType = setType;\n Style.registerForPluginStateChange = performance2.registerForPluginStateChange;\n var posAttributes = performance2.createLayout([{\n name: \"a_pos\",\n type: \"Int16\",\n components: 2\n }]);\n var preludeFrag = \"#ifdef GL_ES\\nprecision mediump float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\";\n var preludeVert = \"#ifdef GL_ES\\nprecision highp float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\";\n var backgroundFrag = \"uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var backgroundVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\";\n var backgroundPatternFrag = \"uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var backgroundPatternVert = \"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\";\n var circleFrag = \"varying vec3 v_data;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var circleVert = \"uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}\";\n var clippingMaskFrag = \"void main() {gl_FragColor=vec4(1.0);}\";\n var clippingMaskVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\";\n var heatmapFrag = \"uniform highp float u_intensity;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var heatmapVert = \"uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}\";\n var heatmapTextureFrag = \"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(0.0);\\n#endif\\n}\";\n var heatmapTextureVert = \"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\";\n var collisionBoxFrag = \"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\";\n var collisionBoxVert = \"attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}\";\n var collisionCircleFrag = \"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\";\n var collisionCircleVert = \"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\";\n var debugFrag = \"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\";\n var debugVert = \"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}\";\n var fillFrag = \"#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_FragColor=color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);}\";\n var fillOutlineFrag = \"varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillOutlineVert = \"attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\";\n var fillOutlinePatternFrag = \"uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillOutlinePatternVert = \"uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\";\n var fillPatternFrag = \"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillPatternVert = \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}\";\n var fillExtrusionFrag = \"varying vec4 v_color;void main() {gl_FragColor=v_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillExtrusionVert = \"uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\nvec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}\";\n var fillExtrusionPatternFrag = \"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var fillExtrusionPatternVert = \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\\n? a_pos\\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}\";\n var hillshadePrepareFrag = \"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var hillshadePrepareVert = \"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\";\n var hillshadeFrag = \"uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\\n#define PI 3.141592653589793\\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var hillshadeVert = \"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\";\n var lineFrag = \"uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var lineVert = \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}\";\n var lineGradientFrag = \"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var lineGradientVert = \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}\";\n var linePatternFrag = \"uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var linePatternVert = \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}\";\n var lineSDFFrag = \"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var lineSDFVert = \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}\";\n var rasterFrag = \"uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var rasterVert = \"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\";\n var symbolIconFrag = \"uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var symbolIconVert = \"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}\";\n var symbolSDFFrag = \"#define SDF_PX 8.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var symbolSDFVert = \"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}\";\n var symbolTextAndIconFrag = \"#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\";\n var symbolTextAndIconVert = \"const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}\";\n var prelude = compile(preludeFrag, preludeVert);\n var background = compile(backgroundFrag, backgroundVert);\n var backgroundPattern = compile(backgroundPatternFrag, backgroundPatternVert);\n var circle = compile(circleFrag, circleVert);\n var clippingMask = compile(clippingMaskFrag, clippingMaskVert);\n var heatmap = compile(heatmapFrag, heatmapVert);\n var heatmapTexture = compile(heatmapTextureFrag, heatmapTextureVert);\n var collisionBox = compile(collisionBoxFrag, collisionBoxVert);\n var collisionCircle = compile(collisionCircleFrag, collisionCircleVert);\n var debug = compile(debugFrag, debugVert);\n var fill = compile(fillFrag, fillVert);\n var fillOutline = compile(fillOutlineFrag, fillOutlineVert);\n var fillOutlinePattern = compile(fillOutlinePatternFrag, fillOutlinePatternVert);\n var fillPattern = compile(fillPatternFrag, fillPatternVert);\n var fillExtrusion = compile(fillExtrusionFrag, fillExtrusionVert);\n var fillExtrusionPattern = compile(fillExtrusionPatternFrag, fillExtrusionPatternVert);\n var hillshadePrepare = compile(hillshadePrepareFrag, hillshadePrepareVert);\n var hillshade = compile(hillshadeFrag, hillshadeVert);\n var line = compile(lineFrag, lineVert);\n var lineGradient = compile(lineGradientFrag, lineGradientVert);\n var linePattern = compile(linePatternFrag, linePatternVert);\n var lineSDF = compile(lineSDFFrag, lineSDFVert);\n var raster = compile(rasterFrag, rasterVert);\n var symbolIcon = compile(symbolIconFrag, symbolIconVert);\n var symbolSDF = compile(symbolSDFFrag, symbolSDFVert);\n var symbolTextAndIcon = compile(symbolTextAndIconFrag, symbolTextAndIconVert);\n function compile(fragmentSource, vertexSource) {\n var re = /#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g;\n var staticAttributes = vertexSource.match(/attribute ([\\w]+) ([\\w]+)/g);\n var fragmentUniforms = fragmentSource.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g);\n var vertexUniforms = vertexSource.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g);\n var staticUniforms = vertexUniforms ? vertexUniforms.concat(fragmentUniforms) : fragmentUniforms;\n var fragmentPragmas = {};\n fragmentSource = fragmentSource.replace(re, function(match, operation, precision, type, name2) {\n fragmentPragmas[name2] = true;\n if (operation === \"define\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\nvarying \" + precision + \" \" + type + \" \" + name2 + \";\\n#else\\nuniform \" + precision + \" \" + type + \" u_\" + name2 + \";\\n#endif\\n\";\n } else {\n return \"\\n#ifdef HAS_UNIFORM_u_\" + name2 + \"\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n }\n });\n vertexSource = vertexSource.replace(re, function(match, operation, precision, type, name2) {\n var attrType = type === \"float\" ? \"vec2\" : \"vec4\";\n var unpackType = name2.match(/color/) ? \"color\" : attrType;\n if (fragmentPragmas[name2]) {\n if (operation === \"define\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\nuniform lowp float u_\" + name2 + \"_t;\\nattribute \" + precision + \" \" + attrType + \" a_\" + name2 + \";\\nvarying \" + precision + \" \" + type + \" \" + name2 + \";\\n#else\\nuniform \" + precision + \" \" + type + \" u_\" + name2 + \";\\n#endif\\n\";\n } else {\n if (unpackType === \"vec4\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + name2 + \" = a_\" + name2 + \";\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n } else {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + name2 + \" = unpack_mix_\" + unpackType + \"(a_\" + name2 + \", u_\" + name2 + \"_t);\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n }\n }\n } else {\n if (operation === \"define\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\nuniform lowp float u_\" + name2 + \"_t;\\nattribute \" + precision + \" \" + attrType + \" a_\" + name2 + \";\\n#else\\nuniform \" + precision + \" \" + type + \" u_\" + name2 + \";\\n#endif\\n\";\n } else {\n if (unpackType === \"vec4\") {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + precision + \" \" + type + \" \" + name2 + \" = a_\" + name2 + \";\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n } else {\n return \"\\n#ifndef HAS_UNIFORM_u_\" + name2 + \"\\n \" + precision + \" \" + type + \" \" + name2 + \" = unpack_mix_\" + unpackType + \"(a_\" + name2 + \", u_\" + name2 + \"_t);\\n#else\\n \" + precision + \" \" + type + \" \" + name2 + \" = u_\" + name2 + \";\\n#endif\\n\";\n }\n }\n }\n });\n return {\n fragmentSource,\n vertexSource,\n staticAttributes,\n staticUniforms\n };\n }\n var shaders = /* @__PURE__ */ Object.freeze({\n __proto__: null,\n prelude,\n background,\n backgroundPattern,\n circle,\n clippingMask,\n heatmap,\n heatmapTexture,\n collisionBox,\n collisionCircle,\n debug,\n fill,\n fillOutline,\n fillOutlinePattern,\n fillPattern,\n fillExtrusion,\n fillExtrusionPattern,\n hillshadePrepare,\n hillshade,\n line,\n lineGradient,\n linePattern,\n lineSDF,\n raster,\n symbolIcon,\n symbolSDF,\n symbolTextAndIcon\n });\n var VertexArrayObject = function VertexArrayObject2() {\n this.boundProgram = null;\n this.boundLayoutVertexBuffer = null;\n this.boundPaintVertexBuffers = [];\n this.boundIndexBuffer = null;\n this.boundVertexOffset = null;\n this.boundDynamicVertexBuffer = null;\n this.vao = null;\n };\n VertexArrayObject.prototype.bind = function bind(context, program, layoutVertexBuffer, paintVertexBuffers, indexBuffer, vertexOffset, dynamicVertexBuffer, dynamicVertexBuffer2) {\n this.context = context;\n var paintBuffersDiffer = this.boundPaintVertexBuffers.length !== paintVertexBuffers.length;\n for (var i = 0; !paintBuffersDiffer && i < paintVertexBuffers.length; i++) {\n if (this.boundPaintVertexBuffers[i] !== paintVertexBuffers[i]) {\n paintBuffersDiffer = true;\n }\n }\n var isFreshBindRequired = !this.vao || this.boundProgram !== program || this.boundLayoutVertexBuffer !== layoutVertexBuffer || paintBuffersDiffer || this.boundIndexBuffer !== indexBuffer || this.boundVertexOffset !== vertexOffset || this.boundDynamicVertexBuffer !== dynamicVertexBuffer || this.boundDynamicVertexBuffer2 !== dynamicVertexBuffer2;\n if (!context.extVertexArrayObject || isFreshBindRequired) {\n this.freshBind(program, layoutVertexBuffer, paintVertexBuffers, indexBuffer, vertexOffset, dynamicVertexBuffer, dynamicVertexBuffer2);\n } else {\n context.bindVertexArrayOES.set(this.vao);\n if (dynamicVertexBuffer) {\n dynamicVertexBuffer.bind();\n }\n if (indexBuffer && indexBuffer.dynamicDraw) {\n indexBuffer.bind();\n }\n if (dynamicVertexBuffer2) {\n dynamicVertexBuffer2.bind();\n }\n }\n };\n VertexArrayObject.prototype.freshBind = function freshBind(program, layoutVertexBuffer, paintVertexBuffers, indexBuffer, vertexOffset, dynamicVertexBuffer, dynamicVertexBuffer2) {\n var numPrevAttributes;\n var numNextAttributes = program.numAttributes;\n var context = this.context;\n var gl2 = context.gl;\n if (context.extVertexArrayObject) {\n if (this.vao) {\n this.destroy();\n }\n this.vao = context.extVertexArrayObject.createVertexArrayOES();\n context.bindVertexArrayOES.set(this.vao);\n numPrevAttributes = 0;\n this.boundProgram = program;\n this.boundLayoutVertexBuffer = layoutVertexBuffer;\n this.boundPaintVertexBuffers = paintVertexBuffers;\n this.boundIndexBuffer = indexBuffer;\n this.boundVertexOffset = vertexOffset;\n this.boundDynamicVertexBuffer = dynamicVertexBuffer;\n this.boundDynamicVertexBuffer2 = dynamicVertexBuffer2;\n } else {\n numPrevAttributes = context.currentNumAttributes || 0;\n for (var i = numNextAttributes; i < numPrevAttributes; i++) {\n gl2.disableVertexAttribArray(i);\n }\n }\n layoutVertexBuffer.enableAttributes(gl2, program);\n for (var i$1 = 0, list = paintVertexBuffers; i$1 < list.length; i$1 += 1) {\n var vertexBuffer = list[i$1];\n vertexBuffer.enableAttributes(gl2, program);\n }\n if (dynamicVertexBuffer) {\n dynamicVertexBuffer.enableAttributes(gl2, program);\n }\n if (dynamicVertexBuffer2) {\n dynamicVertexBuffer2.enableAttributes(gl2, program);\n }\n layoutVertexBuffer.bind();\n layoutVertexBuffer.setVertexAttribPointers(gl2, program, vertexOffset);\n for (var i$2 = 0, list$1 = paintVertexBuffers; i$2 < list$1.length; i$2 += 1) {\n var vertexBuffer$1 = list$1[i$2];\n vertexBuffer$1.bind();\n vertexBuffer$1.setVertexAttribPointers(gl2, program, vertexOffset);\n }\n if (dynamicVertexBuffer) {\n dynamicVertexBuffer.bind();\n dynamicVertexBuffer.setVertexAttribPointers(gl2, program, vertexOffset);\n }\n if (indexBuffer) {\n indexBuffer.bind();\n }\n if (dynamicVertexBuffer2) {\n dynamicVertexBuffer2.bind();\n dynamicVertexBuffer2.setVertexAttribPointers(gl2, program, vertexOffset);\n }\n context.currentNumAttributes = numNextAttributes;\n };\n VertexArrayObject.prototype.destroy = function destroy() {\n if (this.vao) {\n this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao);\n this.vao = null;\n }\n };\n function getTokenizedAttributesAndUniforms(array) {\n var result = [];\n for (var i = 0; i < array.length; i++) {\n if (array[i] === null) {\n continue;\n }\n var token = array[i].split(\" \");\n result.push(token.pop());\n }\n return result;\n }\n var Program$1 = function Program2(context, name2, source, configuration, fixedUniforms, showOverdrawInspector) {\n var gl2 = context.gl;\n this.program = gl2.createProgram();\n var staticAttrInfo = getTokenizedAttributesAndUniforms(source.staticAttributes);\n var dynamicAttrInfo = configuration ? configuration.getBinderAttributes() : [];\n var allAttrInfo = staticAttrInfo.concat(dynamicAttrInfo);\n var staticUniformsInfo = source.staticUniforms ? getTokenizedAttributesAndUniforms(source.staticUniforms) : [];\n var dynamicUniformsInfo = configuration ? configuration.getBinderUniforms() : [];\n var uniformList = staticUniformsInfo.concat(dynamicUniformsInfo);\n var allUniformsInfo = [];\n for (var i$1 = 0, list = uniformList; i$1 < list.length; i$1 += 1) {\n var uniform = list[i$1];\n if (allUniformsInfo.indexOf(uniform) < 0) {\n allUniformsInfo.push(uniform);\n }\n }\n var defines = configuration ? configuration.defines() : [];\n if (showOverdrawInspector) {\n defines.push(\"#define OVERDRAW_INSPECTOR;\");\n }\n var fragmentSource = defines.concat(prelude.fragmentSource, source.fragmentSource).join(\"\\n\");\n var vertexSource = defines.concat(prelude.vertexSource, source.vertexSource).join(\"\\n\");\n var fragmentShader = gl2.createShader(gl2.FRAGMENT_SHADER);\n if (gl2.isContextLost()) {\n this.failedToCreate = true;\n return;\n }\n gl2.shaderSource(fragmentShader, fragmentSource);\n gl2.compileShader(fragmentShader);\n gl2.attachShader(this.program, fragmentShader);\n var vertexShader = gl2.createShader(gl2.VERTEX_SHADER);\n if (gl2.isContextLost()) {\n this.failedToCreate = true;\n return;\n }\n gl2.shaderSource(vertexShader, vertexSource);\n gl2.compileShader(vertexShader);\n gl2.attachShader(this.program, vertexShader);\n this.attributes = {};\n var uniformLocations = {};\n this.numAttributes = allAttrInfo.length;\n for (var i = 0; i < this.numAttributes; i++) {\n if (allAttrInfo[i]) {\n gl2.bindAttribLocation(this.program, i, allAttrInfo[i]);\n this.attributes[allAttrInfo[i]] = i;\n }\n }\n gl2.linkProgram(this.program);\n gl2.deleteShader(vertexShader);\n gl2.deleteShader(fragmentShader);\n for (var it = 0; it < allUniformsInfo.length; it++) {\n var uniform$1 = allUniformsInfo[it];\n if (uniform$1 && !uniformLocations[uniform$1]) {\n var uniformLocation = gl2.getUniformLocation(this.program, uniform$1);\n if (uniformLocation) {\n uniformLocations[uniform$1] = uniformLocation;\n }\n }\n }\n this.fixedUniforms = fixedUniforms(context, uniformLocations);\n this.binderUniforms = configuration ? configuration.getUniforms(context, uniformLocations) : [];\n };\n Program$1.prototype.draw = function draw2(context, drawMode, depthMode, stencilMode, colorMode, cullFaceMode, uniformValues, layerID, layoutVertexBuffer, indexBuffer, segments, currentProperties, zoom, configuration, dynamicLayoutBuffer, dynamicLayoutBuffer2) {\n var obj;\n var gl2 = context.gl;\n if (this.failedToCreate) {\n return;\n }\n context.program.set(this.program);\n context.setDepthMode(depthMode);\n context.setStencilMode(stencilMode);\n context.setColorMode(colorMode);\n context.setCullFace(cullFaceMode);\n for (var name2 in this.fixedUniforms) {\n this.fixedUniforms[name2].set(uniformValues[name2]);\n }\n if (configuration) {\n configuration.setUniforms(context, this.binderUniforms, currentProperties, { zoom });\n }\n var primitiveSize = (obj = {}, obj[gl2.LINES] = 2, obj[gl2.TRIANGLES] = 3, obj[gl2.LINE_STRIP] = 1, obj)[drawMode];\n for (var i = 0, list = segments.get(); i < list.length; i += 1) {\n var segment = list[i];\n var vaos = segment.vaos || (segment.vaos = {});\n var vao = vaos[layerID] || (vaos[layerID] = new VertexArrayObject());\n vao.bind(context, this, layoutVertexBuffer, configuration ? configuration.getPaintVertexBuffers() : [], indexBuffer, segment.vertexOffset, dynamicLayoutBuffer, dynamicLayoutBuffer2);\n gl2.drawElements(drawMode, segment.primitiveLength * primitiveSize, gl2.UNSIGNED_SHORT, segment.primitiveOffset * primitiveSize * 2);\n }\n };\n function patternUniformValues(crossfade, painter, tile) {\n var tileRatio = 1 / pixelsToTileUnits(tile, 1, painter.transform.tileZoom);\n var numTiles = Math.pow(2, tile.tileID.overscaledZ);\n var tileSizeAtNearestZoom = tile.tileSize * Math.pow(2, painter.transform.tileZoom) / numTiles;\n var pixelX = tileSizeAtNearestZoom * (tile.tileID.canonical.x + tile.tileID.wrap * numTiles);\n var pixelY = tileSizeAtNearestZoom * tile.tileID.canonical.y;\n return {\n \"u_image\": 0,\n \"u_texsize\": tile.imageAtlasTexture.size,\n \"u_scale\": [\n tileRatio,\n crossfade.fromScale,\n crossfade.toScale\n ],\n \"u_fade\": crossfade.t,\n \"u_pixel_coord_upper\": [\n pixelX >> 16,\n pixelY >> 16\n ],\n \"u_pixel_coord_lower\": [\n pixelX & 65535,\n pixelY & 65535\n ]\n };\n }\n function bgPatternUniformValues(image, crossfade, painter, tile) {\n var imagePosA = painter.imageManager.getPattern(image.from.toString());\n var imagePosB = painter.imageManager.getPattern(image.to.toString());\n var ref = painter.imageManager.getPixelSize();\n var width = ref.width;\n var height = ref.height;\n var numTiles = Math.pow(2, tile.tileID.overscaledZ);\n var tileSizeAtNearestZoom = tile.tileSize * Math.pow(2, painter.transform.tileZoom) / numTiles;\n var pixelX = tileSizeAtNearestZoom * (tile.tileID.canonical.x + tile.tileID.wrap * numTiles);\n var pixelY = tileSizeAtNearestZoom * tile.tileID.canonical.y;\n return {\n \"u_image\": 0,\n \"u_pattern_tl_a\": imagePosA.tl,\n \"u_pattern_br_a\": imagePosA.br,\n \"u_pattern_tl_b\": imagePosB.tl,\n \"u_pattern_br_b\": imagePosB.br,\n \"u_texsize\": [\n width,\n height\n ],\n \"u_mix\": crossfade.t,\n \"u_pattern_size_a\": imagePosA.displaySize,\n \"u_pattern_size_b\": imagePosB.displaySize,\n \"u_scale_a\": crossfade.fromScale,\n \"u_scale_b\": crossfade.toScale,\n \"u_tile_units_to_pixels\": 1 / pixelsToTileUnits(tile, 1, painter.transform.tileZoom),\n \"u_pixel_coord_upper\": [\n pixelX >> 16,\n pixelY >> 16\n ],\n \"u_pixel_coord_lower\": [\n pixelX & 65535,\n pixelY & 65535\n ]\n };\n }\n var fillExtrusionUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_lightpos\": new performance2.Uniform3f(context, locations.u_lightpos),\n \"u_lightintensity\": new performance2.Uniform1f(context, locations.u_lightintensity),\n \"u_lightcolor\": new performance2.Uniform3f(context, locations.u_lightcolor),\n \"u_vertical_gradient\": new performance2.Uniform1f(context, locations.u_vertical_gradient),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity)\n };\n };\n var fillExtrusionPatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_lightpos\": new performance2.Uniform3f(context, locations.u_lightpos),\n \"u_lightintensity\": new performance2.Uniform1f(context, locations.u_lightintensity),\n \"u_lightcolor\": new performance2.Uniform3f(context, locations.u_lightcolor),\n \"u_vertical_gradient\": new performance2.Uniform1f(context, locations.u_vertical_gradient),\n \"u_height_factor\": new performance2.Uniform1f(context, locations.u_height_factor),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity)\n };\n };\n var fillExtrusionUniformValues = function(matrix, painter, shouldUseVerticalGradient, opacity) {\n var light = painter.style.light;\n var _lp = light.properties.get(\"position\");\n var lightPos = [\n _lp.x,\n _lp.y,\n _lp.z\n ];\n var lightMat = performance2.create$1();\n if (light.properties.get(\"anchor\") === \"viewport\") {\n performance2.fromRotation(lightMat, -painter.transform.angle);\n }\n performance2.transformMat3(lightPos, lightPos, lightMat);\n var lightColor = light.properties.get(\"color\");\n return {\n \"u_matrix\": matrix,\n \"u_lightpos\": lightPos,\n \"u_lightintensity\": light.properties.get(\"intensity\"),\n \"u_lightcolor\": [\n lightColor.r,\n lightColor.g,\n lightColor.b\n ],\n \"u_vertical_gradient\": +shouldUseVerticalGradient,\n \"u_opacity\": opacity\n };\n };\n var fillExtrusionPatternUniformValues = function(matrix, painter, shouldUseVerticalGradient, opacity, coord, crossfade, tile) {\n return performance2.extend(fillExtrusionUniformValues(matrix, painter, shouldUseVerticalGradient, opacity), patternUniformValues(crossfade, painter, tile), { \"u_height_factor\": -Math.pow(2, coord.overscaledZ) / tile.tileSize / 8 });\n };\n var fillUniforms = function(context, locations) {\n return { \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix) };\n };\n var fillPatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade)\n };\n };\n var fillOutlineUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_world\": new performance2.Uniform2f(context, locations.u_world)\n };\n };\n var fillOutlinePatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_world\": new performance2.Uniform2f(context, locations.u_world),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade)\n };\n };\n var fillUniformValues = function(matrix) {\n return { \"u_matrix\": matrix };\n };\n var fillPatternUniformValues = function(matrix, painter, crossfade, tile) {\n return performance2.extend(fillUniformValues(matrix), patternUniformValues(crossfade, painter, tile));\n };\n var fillOutlineUniformValues = function(matrix, drawingBufferSize) {\n return {\n \"u_matrix\": matrix,\n \"u_world\": drawingBufferSize\n };\n };\n var fillOutlinePatternUniformValues = function(matrix, painter, crossfade, tile, drawingBufferSize) {\n return performance2.extend(fillPatternUniformValues(matrix, painter, crossfade, tile), { \"u_world\": drawingBufferSize });\n };\n var circleUniforms = function(context, locations) {\n return {\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_scale_with_map\": new performance2.Uniform1i(context, locations.u_scale_with_map),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_extrude_scale\": new performance2.Uniform2f(context, locations.u_extrude_scale),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix)\n };\n };\n var circleUniformValues = function(painter, coord, tile, layer) {\n var transform = painter.transform;\n var pitchWithMap, extrudeScale;\n if (layer.paint.get(\"circle-pitch-alignment\") === \"map\") {\n var pixelRatio = pixelsToTileUnits(tile, 1, transform.zoom);\n pitchWithMap = true;\n extrudeScale = [\n pixelRatio,\n pixelRatio\n ];\n } else {\n pitchWithMap = false;\n extrudeScale = transform.pixelsToGLUnits;\n }\n return {\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_scale_with_map\": +(layer.paint.get(\"circle-pitch-scale\") === \"map\"),\n \"u_matrix\": painter.translatePosMatrix(coord.posMatrix, tile, layer.paint.get(\"circle-translate\"), layer.paint.get(\"circle-translate-anchor\")),\n \"u_pitch_with_map\": +pitchWithMap,\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_extrude_scale\": extrudeScale\n };\n };\n var collisionUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pixels_to_tile_units\": new performance2.Uniform1f(context, locations.u_pixels_to_tile_units),\n \"u_extrude_scale\": new performance2.Uniform2f(context, locations.u_extrude_scale),\n \"u_overscale_factor\": new performance2.Uniform1f(context, locations.u_overscale_factor)\n };\n };\n var collisionCircleUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_inv_matrix\": new performance2.UniformMatrix4f(context, locations.u_inv_matrix),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_viewport_size\": new performance2.Uniform2f(context, locations.u_viewport_size)\n };\n };\n var collisionUniformValues = function(matrix, transform, tile) {\n var pixelRatio = pixelsToTileUnits(tile, 1, transform.zoom);\n var scale = Math.pow(2, transform.zoom - tile.tileID.overscaledZ);\n var overscaleFactor = tile.tileID.overscaleFactor();\n return {\n \"u_matrix\": matrix,\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_pixels_to_tile_units\": pixelRatio,\n \"u_extrude_scale\": [\n transform.pixelsToGLUnits[0] / (pixelRatio * scale),\n transform.pixelsToGLUnits[1] / (pixelRatio * scale)\n ],\n \"u_overscale_factor\": overscaleFactor\n };\n };\n var collisionCircleUniformValues = function(matrix, invMatrix, transform) {\n return {\n \"u_matrix\": matrix,\n \"u_inv_matrix\": invMatrix,\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_viewport_size\": [\n transform.width,\n transform.height\n ]\n };\n };\n var debugUniforms = function(context, locations) {\n return {\n \"u_color\": new performance2.UniformColor(context, locations.u_color),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_overlay\": new performance2.Uniform1i(context, locations.u_overlay),\n \"u_overlay_scale\": new performance2.Uniform1f(context, locations.u_overlay_scale)\n };\n };\n var debugUniformValues = function(matrix, color2, scaleRatio) {\n if (scaleRatio === void 0)\n scaleRatio = 1;\n return {\n \"u_matrix\": matrix,\n \"u_color\": color2,\n \"u_overlay\": 0,\n \"u_overlay_scale\": scaleRatio\n };\n };\n var clippingMaskUniforms = function(context, locations) {\n return { \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix) };\n };\n var clippingMaskUniformValues = function(matrix) {\n return { \"u_matrix\": matrix };\n };\n var heatmapUniforms = function(context, locations) {\n return {\n \"u_extrude_scale\": new performance2.Uniform1f(context, locations.u_extrude_scale),\n \"u_intensity\": new performance2.Uniform1f(context, locations.u_intensity),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix)\n };\n };\n var heatmapTextureUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_world\": new performance2.Uniform2f(context, locations.u_world),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_color_ramp\": new performance2.Uniform1i(context, locations.u_color_ramp),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity)\n };\n };\n var heatmapUniformValues = function(matrix, tile, zoom, intensity) {\n return {\n \"u_matrix\": matrix,\n \"u_extrude_scale\": pixelsToTileUnits(tile, 1, zoom),\n \"u_intensity\": intensity\n };\n };\n var heatmapTextureUniformValues = function(painter, layer, textureUnit, colorRampUnit) {\n var matrix = performance2.create();\n performance2.ortho(matrix, 0, painter.width, painter.height, 0, 0, 1);\n var gl2 = painter.context.gl;\n return {\n \"u_matrix\": matrix,\n \"u_world\": [\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ],\n \"u_image\": textureUnit,\n \"u_color_ramp\": colorRampUnit,\n \"u_opacity\": layer.paint.get(\"heatmap-opacity\")\n };\n };\n var hillshadeUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_latrange\": new performance2.Uniform2f(context, locations.u_latrange),\n \"u_light\": new performance2.Uniform2f(context, locations.u_light),\n \"u_shadow\": new performance2.UniformColor(context, locations.u_shadow),\n \"u_highlight\": new performance2.UniformColor(context, locations.u_highlight),\n \"u_accent\": new performance2.UniformColor(context, locations.u_accent)\n };\n };\n var hillshadePrepareUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_dimension\": new performance2.Uniform2f(context, locations.u_dimension),\n \"u_zoom\": new performance2.Uniform1f(context, locations.u_zoom),\n \"u_unpack\": new performance2.Uniform4f(context, locations.u_unpack)\n };\n };\n var hillshadeUniformValues = function(painter, tile, layer) {\n var shadow = layer.paint.get(\"hillshade-shadow-color\");\n var highlight = layer.paint.get(\"hillshade-highlight-color\");\n var accent = layer.paint.get(\"hillshade-accent-color\");\n var azimuthal = layer.paint.get(\"hillshade-illumination-direction\") * (Math.PI / 180);\n if (layer.paint.get(\"hillshade-illumination-anchor\") === \"viewport\") {\n azimuthal -= painter.transform.angle;\n }\n var align = !painter.options.moving;\n return {\n \"u_matrix\": painter.transform.calculatePosMatrix(tile.tileID.toUnwrapped(), align),\n \"u_image\": 0,\n \"u_latrange\": getTileLatRange(painter, tile.tileID),\n \"u_light\": [\n layer.paint.get(\"hillshade-exaggeration\"),\n azimuthal\n ],\n \"u_shadow\": shadow,\n \"u_highlight\": highlight,\n \"u_accent\": accent\n };\n };\n var hillshadeUniformPrepareValues = function(tileID, dem) {\n var stride = dem.stride;\n var matrix = performance2.create();\n performance2.ortho(matrix, 0, performance2.EXTENT, -performance2.EXTENT, 0, 0, 1);\n performance2.translate(matrix, matrix, [\n 0,\n -performance2.EXTENT,\n 0\n ]);\n return {\n \"u_matrix\": matrix,\n \"u_image\": 1,\n \"u_dimension\": [\n stride,\n stride\n ],\n \"u_zoom\": tileID.overscaledZ,\n \"u_unpack\": dem.getUnpackVector()\n };\n };\n function getTileLatRange(painter, tileID) {\n var tilesAtZoom = Math.pow(2, tileID.canonical.z);\n var y = tileID.canonical.y;\n return [\n new performance2.MercatorCoordinate(0, y / tilesAtZoom).toLngLat().lat,\n new performance2.MercatorCoordinate(0, (y + 1) / tilesAtZoom).toLngLat().lat\n ];\n }\n var lineUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels)\n };\n };\n var lineGradientUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_image_height\": new performance2.Uniform1f(context, locations.u_image_height)\n };\n };\n var linePatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels),\n \"u_scale\": new performance2.Uniform3f(context, locations.u_scale),\n \"u_fade\": new performance2.Uniform1f(context, locations.u_fade)\n };\n };\n var lineSDFUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_ratio\": new performance2.Uniform1f(context, locations.u_ratio),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_units_to_pixels\": new performance2.Uniform2f(context, locations.u_units_to_pixels),\n \"u_patternscale_a\": new performance2.Uniform2f(context, locations.u_patternscale_a),\n \"u_patternscale_b\": new performance2.Uniform2f(context, locations.u_patternscale_b),\n \"u_sdfgamma\": new performance2.Uniform1f(context, locations.u_sdfgamma),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_tex_y_a\": new performance2.Uniform1f(context, locations.u_tex_y_a),\n \"u_tex_y_b\": new performance2.Uniform1f(context, locations.u_tex_y_b),\n \"u_mix\": new performance2.Uniform1f(context, locations.u_mix)\n };\n };\n var lineUniformValues = function(painter, tile, layer) {\n var transform = painter.transform;\n return {\n \"u_matrix\": calculateMatrix(painter, tile, layer),\n \"u_ratio\": 1 / pixelsToTileUnits(tile, 1, transform.zoom),\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_units_to_pixels\": [\n 1 / transform.pixelsToGLUnits[0],\n 1 / transform.pixelsToGLUnits[1]\n ]\n };\n };\n var lineGradientUniformValues = function(painter, tile, layer, imageHeight) {\n return performance2.extend(lineUniformValues(painter, tile, layer), {\n \"u_image\": 0,\n \"u_image_height\": imageHeight\n });\n };\n var linePatternUniformValues = function(painter, tile, layer, crossfade) {\n var transform = painter.transform;\n var tileZoomRatio = calculateTileRatio(tile, transform);\n return {\n \"u_matrix\": calculateMatrix(painter, tile, layer),\n \"u_texsize\": tile.imageAtlasTexture.size,\n \"u_ratio\": 1 / pixelsToTileUnits(tile, 1, transform.zoom),\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_image\": 0,\n \"u_scale\": [\n tileZoomRatio,\n crossfade.fromScale,\n crossfade.toScale\n ],\n \"u_fade\": crossfade.t,\n \"u_units_to_pixels\": [\n 1 / transform.pixelsToGLUnits[0],\n 1 / transform.pixelsToGLUnits[1]\n ]\n };\n };\n var lineSDFUniformValues = function(painter, tile, layer, dasharray, crossfade) {\n var transform = painter.transform;\n var lineAtlas = painter.lineAtlas;\n var tileRatio = calculateTileRatio(tile, transform);\n var round = layer.layout.get(\"line-cap\") === \"round\";\n var posA = lineAtlas.getDash(dasharray.from, round);\n var posB = lineAtlas.getDash(dasharray.to, round);\n var widthA = posA.width * crossfade.fromScale;\n var widthB = posB.width * crossfade.toScale;\n return performance2.extend(lineUniformValues(painter, tile, layer), {\n \"u_patternscale_a\": [\n tileRatio / widthA,\n -posA.height / 2\n ],\n \"u_patternscale_b\": [\n tileRatio / widthB,\n -posB.height / 2\n ],\n \"u_sdfgamma\": lineAtlas.width / (Math.min(widthA, widthB) * 256 * performance2.browser.devicePixelRatio) / 2,\n \"u_image\": 0,\n \"u_tex_y_a\": posA.y,\n \"u_tex_y_b\": posB.y,\n \"u_mix\": crossfade.t\n });\n };\n function calculateTileRatio(tile, transform) {\n return 1 / pixelsToTileUnits(tile, 1, transform.tileZoom);\n }\n function calculateMatrix(painter, tile, layer) {\n return painter.translatePosMatrix(tile.tileID.posMatrix, tile, layer.paint.get(\"line-translate\"), layer.paint.get(\"line-translate-anchor\"));\n }\n var rasterUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_tl_parent\": new performance2.Uniform2f(context, locations.u_tl_parent),\n \"u_scale_parent\": new performance2.Uniform1f(context, locations.u_scale_parent),\n \"u_buffer_scale\": new performance2.Uniform1f(context, locations.u_buffer_scale),\n \"u_fade_t\": new performance2.Uniform1f(context, locations.u_fade_t),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity),\n \"u_image0\": new performance2.Uniform1i(context, locations.u_image0),\n \"u_image1\": new performance2.Uniform1i(context, locations.u_image1),\n \"u_brightness_low\": new performance2.Uniform1f(context, locations.u_brightness_low),\n \"u_brightness_high\": new performance2.Uniform1f(context, locations.u_brightness_high),\n \"u_saturation_factor\": new performance2.Uniform1f(context, locations.u_saturation_factor),\n \"u_contrast_factor\": new performance2.Uniform1f(context, locations.u_contrast_factor),\n \"u_spin_weights\": new performance2.Uniform3f(context, locations.u_spin_weights)\n };\n };\n var rasterUniformValues = function(matrix, parentTL, parentScaleBy, fade, layer) {\n return {\n \"u_matrix\": matrix,\n \"u_tl_parent\": parentTL,\n \"u_scale_parent\": parentScaleBy,\n \"u_buffer_scale\": 1,\n \"u_fade_t\": fade.mix,\n \"u_opacity\": fade.opacity * layer.paint.get(\"raster-opacity\"),\n \"u_image0\": 0,\n \"u_image1\": 1,\n \"u_brightness_low\": layer.paint.get(\"raster-brightness-min\"),\n \"u_brightness_high\": layer.paint.get(\"raster-brightness-max\"),\n \"u_saturation_factor\": saturationFactor(layer.paint.get(\"raster-saturation\")),\n \"u_contrast_factor\": contrastFactor(layer.paint.get(\"raster-contrast\")),\n \"u_spin_weights\": spinWeights(layer.paint.get(\"raster-hue-rotate\"))\n };\n };\n function spinWeights(angle) {\n angle *= Math.PI / 180;\n var s = Math.sin(angle);\n var c = Math.cos(angle);\n return [\n (2 * c + 1) / 3,\n (-Math.sqrt(3) * s - c + 1) / 3,\n (Math.sqrt(3) * s - c + 1) / 3\n ];\n }\n function contrastFactor(contrast) {\n return contrast > 0 ? 1 / (1 - contrast) : 1 + contrast;\n }\n function saturationFactor(saturation) {\n return saturation > 0 ? 1 - 1 / (1.001 - saturation) : -saturation;\n }\n var symbolIconUniforms = function(context, locations) {\n return {\n \"u_is_size_zoom_constant\": new performance2.Uniform1i(context, locations.u_is_size_zoom_constant),\n \"u_is_size_feature_constant\": new performance2.Uniform1i(context, locations.u_is_size_feature_constant),\n \"u_size_t\": new performance2.Uniform1f(context, locations.u_size_t),\n \"u_size\": new performance2.Uniform1f(context, locations.u_size),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pitch\": new performance2.Uniform1f(context, locations.u_pitch),\n \"u_rotate_symbol\": new performance2.Uniform1i(context, locations.u_rotate_symbol),\n \"u_aspect_ratio\": new performance2.Uniform1f(context, locations.u_aspect_ratio),\n \"u_fade_change\": new performance2.Uniform1f(context, locations.u_fade_change),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_label_plane_matrix\": new performance2.UniformMatrix4f(context, locations.u_label_plane_matrix),\n \"u_coord_matrix\": new performance2.UniformMatrix4f(context, locations.u_coord_matrix),\n \"u_is_text\": new performance2.Uniform1i(context, locations.u_is_text),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_texture\": new performance2.Uniform1i(context, locations.u_texture)\n };\n };\n var symbolSDFUniforms = function(context, locations) {\n return {\n \"u_is_size_zoom_constant\": new performance2.Uniform1i(context, locations.u_is_size_zoom_constant),\n \"u_is_size_feature_constant\": new performance2.Uniform1i(context, locations.u_is_size_feature_constant),\n \"u_size_t\": new performance2.Uniform1f(context, locations.u_size_t),\n \"u_size\": new performance2.Uniform1f(context, locations.u_size),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pitch\": new performance2.Uniform1f(context, locations.u_pitch),\n \"u_rotate_symbol\": new performance2.Uniform1i(context, locations.u_rotate_symbol),\n \"u_aspect_ratio\": new performance2.Uniform1f(context, locations.u_aspect_ratio),\n \"u_fade_change\": new performance2.Uniform1f(context, locations.u_fade_change),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_label_plane_matrix\": new performance2.UniformMatrix4f(context, locations.u_label_plane_matrix),\n \"u_coord_matrix\": new performance2.UniformMatrix4f(context, locations.u_coord_matrix),\n \"u_is_text\": new performance2.Uniform1i(context, locations.u_is_text),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_texture\": new performance2.Uniform1i(context, locations.u_texture),\n \"u_gamma_scale\": new performance2.Uniform1f(context, locations.u_gamma_scale),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_is_halo\": new performance2.Uniform1i(context, locations.u_is_halo)\n };\n };\n var symbolTextAndIconUniforms = function(context, locations) {\n return {\n \"u_is_size_zoom_constant\": new performance2.Uniform1i(context, locations.u_is_size_zoom_constant),\n \"u_is_size_feature_constant\": new performance2.Uniform1i(context, locations.u_is_size_feature_constant),\n \"u_size_t\": new performance2.Uniform1f(context, locations.u_size_t),\n \"u_size\": new performance2.Uniform1f(context, locations.u_size),\n \"u_camera_to_center_distance\": new performance2.Uniform1f(context, locations.u_camera_to_center_distance),\n \"u_pitch\": new performance2.Uniform1f(context, locations.u_pitch),\n \"u_rotate_symbol\": new performance2.Uniform1i(context, locations.u_rotate_symbol),\n \"u_aspect_ratio\": new performance2.Uniform1f(context, locations.u_aspect_ratio),\n \"u_fade_change\": new performance2.Uniform1f(context, locations.u_fade_change),\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_label_plane_matrix\": new performance2.UniformMatrix4f(context, locations.u_label_plane_matrix),\n \"u_coord_matrix\": new performance2.UniformMatrix4f(context, locations.u_coord_matrix),\n \"u_is_text\": new performance2.Uniform1i(context, locations.u_is_text),\n \"u_pitch_with_map\": new performance2.Uniform1i(context, locations.u_pitch_with_map),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_texsize_icon\": new performance2.Uniform2f(context, locations.u_texsize_icon),\n \"u_texture\": new performance2.Uniform1i(context, locations.u_texture),\n \"u_texture_icon\": new performance2.Uniform1i(context, locations.u_texture_icon),\n \"u_gamma_scale\": new performance2.Uniform1f(context, locations.u_gamma_scale),\n \"u_device_pixel_ratio\": new performance2.Uniform1f(context, locations.u_device_pixel_ratio),\n \"u_is_halo\": new performance2.Uniform1i(context, locations.u_is_halo)\n };\n };\n var symbolIconUniformValues = function(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, isText, texSize) {\n var transform = painter.transform;\n return {\n \"u_is_size_zoom_constant\": +(functionType === \"constant\" || functionType === \"source\"),\n \"u_is_size_feature_constant\": +(functionType === \"constant\" || functionType === \"camera\"),\n \"u_size_t\": size ? size.uSizeT : 0,\n \"u_size\": size ? size.uSize : 0,\n \"u_camera_to_center_distance\": transform.cameraToCenterDistance,\n \"u_pitch\": transform.pitch / 360 * 2 * Math.PI,\n \"u_rotate_symbol\": +rotateInShader,\n \"u_aspect_ratio\": transform.width / transform.height,\n \"u_fade_change\": painter.options.fadeDuration ? painter.symbolFadeChange : 1,\n \"u_matrix\": matrix,\n \"u_label_plane_matrix\": labelPlaneMatrix,\n \"u_coord_matrix\": glCoordMatrix,\n \"u_is_text\": +isText,\n \"u_pitch_with_map\": +pitchWithMap,\n \"u_texsize\": texSize,\n \"u_texture\": 0\n };\n };\n var symbolSDFUniformValues = function(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, isText, texSize, isHalo) {\n var transform = painter.transform;\n return performance2.extend(symbolIconUniformValues(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, isText, texSize), {\n \"u_gamma_scale\": pitchWithMap ? Math.cos(transform._pitch) * transform.cameraToCenterDistance : 1,\n \"u_device_pixel_ratio\": performance2.browser.devicePixelRatio,\n \"u_is_halo\": +isHalo\n });\n };\n var symbolTextAndIconUniformValues = function(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, texSizeSDF, texSizeIcon) {\n return performance2.extend(symbolSDFUniformValues(functionType, size, rotateInShader, pitchWithMap, painter, matrix, labelPlaneMatrix, glCoordMatrix, true, texSizeSDF, true), {\n \"u_texsize_icon\": texSizeIcon,\n \"u_texture_icon\": 1\n });\n };\n var backgroundUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity),\n \"u_color\": new performance2.UniformColor(context, locations.u_color)\n };\n };\n var backgroundPatternUniforms = function(context, locations) {\n return {\n \"u_matrix\": new performance2.UniformMatrix4f(context, locations.u_matrix),\n \"u_opacity\": new performance2.Uniform1f(context, locations.u_opacity),\n \"u_image\": new performance2.Uniform1i(context, locations.u_image),\n \"u_pattern_tl_a\": new performance2.Uniform2f(context, locations.u_pattern_tl_a),\n \"u_pattern_br_a\": new performance2.Uniform2f(context, locations.u_pattern_br_a),\n \"u_pattern_tl_b\": new performance2.Uniform2f(context, locations.u_pattern_tl_b),\n \"u_pattern_br_b\": new performance2.Uniform2f(context, locations.u_pattern_br_b),\n \"u_texsize\": new performance2.Uniform2f(context, locations.u_texsize),\n \"u_mix\": new performance2.Uniform1f(context, locations.u_mix),\n \"u_pattern_size_a\": new performance2.Uniform2f(context, locations.u_pattern_size_a),\n \"u_pattern_size_b\": new performance2.Uniform2f(context, locations.u_pattern_size_b),\n \"u_scale_a\": new performance2.Uniform1f(context, locations.u_scale_a),\n \"u_scale_b\": new performance2.Uniform1f(context, locations.u_scale_b),\n \"u_pixel_coord_upper\": new performance2.Uniform2f(context, locations.u_pixel_coord_upper),\n \"u_pixel_coord_lower\": new performance2.Uniform2f(context, locations.u_pixel_coord_lower),\n \"u_tile_units_to_pixels\": new performance2.Uniform1f(context, locations.u_tile_units_to_pixels)\n };\n };\n var backgroundUniformValues = function(matrix, opacity, color2) {\n return {\n \"u_matrix\": matrix,\n \"u_opacity\": opacity,\n \"u_color\": color2\n };\n };\n var backgroundPatternUniformValues = function(matrix, opacity, painter, image, tile, crossfade) {\n return performance2.extend(bgPatternUniformValues(image, crossfade, painter, tile), {\n \"u_matrix\": matrix,\n \"u_opacity\": opacity\n });\n };\n var programUniforms = {\n fillExtrusion: fillExtrusionUniforms,\n fillExtrusionPattern: fillExtrusionPatternUniforms,\n fill: fillUniforms,\n fillPattern: fillPatternUniforms,\n fillOutline: fillOutlineUniforms,\n fillOutlinePattern: fillOutlinePatternUniforms,\n circle: circleUniforms,\n collisionBox: collisionUniforms,\n collisionCircle: collisionCircleUniforms,\n debug: debugUniforms,\n clippingMask: clippingMaskUniforms,\n heatmap: heatmapUniforms,\n heatmapTexture: heatmapTextureUniforms,\n hillshade: hillshadeUniforms,\n hillshadePrepare: hillshadePrepareUniforms,\n line: lineUniforms,\n lineGradient: lineGradientUniforms,\n linePattern: linePatternUniforms,\n lineSDF: lineSDFUniforms,\n raster: rasterUniforms,\n symbolIcon: symbolIconUniforms,\n symbolSDF: symbolSDFUniforms,\n symbolTextAndIcon: symbolTextAndIconUniforms,\n background: backgroundUniforms,\n backgroundPattern: backgroundPatternUniforms\n };\n var quadTriangles;\n function drawCollisionDebug(painter, sourceCache, layer, coords, translate, translateAnchor, isText) {\n var context = painter.context;\n var gl2 = context.gl;\n var program = painter.useProgram(\"collisionBox\");\n var tileBatches = [];\n var circleCount = 0;\n var circleOffset = 0;\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var posMatrix = coord.posMatrix;\n if (translate[0] !== 0 || translate[1] !== 0) {\n posMatrix = painter.translatePosMatrix(coord.posMatrix, tile, translate, translateAnchor);\n }\n var buffers = isText ? bucket.textCollisionBox : bucket.iconCollisionBox;\n var circleArray = bucket.collisionCircleArray;\n if (circleArray.length > 0) {\n var invTransform = performance2.create();\n var transform = posMatrix;\n performance2.mul(invTransform, bucket.placementInvProjMatrix, painter.transform.glCoordMatrix);\n performance2.mul(invTransform, invTransform, bucket.placementViewportMatrix);\n tileBatches.push({\n circleArray,\n circleOffset,\n transform,\n invTransform\n });\n circleCount += circleArray.length / 4;\n circleOffset = circleCount;\n }\n if (!buffers) {\n continue;\n }\n program.draw(context, gl2.LINES, DepthMode.disabled, StencilMode.disabled, painter.colorModeForRenderPass(), CullFaceMode.disabled, collisionUniformValues(posMatrix, painter.transform, tile), layer.id, buffers.layoutVertexBuffer, buffers.indexBuffer, buffers.segments, null, painter.transform.zoom, null, null, buffers.collisionVertexBuffer);\n }\n if (!isText || !tileBatches.length) {\n return;\n }\n var circleProgram = painter.useProgram(\"collisionCircle\");\n var vertexData = new performance2.StructArrayLayout2f1f2i16();\n vertexData.resize(circleCount * 4);\n vertexData._trim();\n var vertexOffset = 0;\n for (var i$2 = 0, list = tileBatches; i$2 < list.length; i$2 += 1) {\n var batch = list[i$2];\n for (var i$1 = 0; i$1 < batch.circleArray.length / 4; i$1++) {\n var circleIdx = i$1 * 4;\n var x = batch.circleArray[circleIdx + 0];\n var y = batch.circleArray[circleIdx + 1];\n var radius = batch.circleArray[circleIdx + 2];\n var collision = batch.circleArray[circleIdx + 3];\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 0);\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 1);\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 2);\n vertexData.emplace(vertexOffset++, x, y, radius, collision, 3);\n }\n }\n if (!quadTriangles || quadTriangles.length < circleCount * 2) {\n quadTriangles = createQuadTriangles(circleCount);\n }\n var indexBuffer = context.createIndexBuffer(quadTriangles, true);\n var vertexBuffer = context.createVertexBuffer(vertexData, performance2.collisionCircleLayout.members, true);\n for (var i$3 = 0, list$1 = tileBatches; i$3 < list$1.length; i$3 += 1) {\n var batch$1 = list$1[i$3];\n var uniforms = collisionCircleUniformValues(batch$1.transform, batch$1.invTransform, painter.transform);\n circleProgram.draw(context, gl2.TRIANGLES, DepthMode.disabled, StencilMode.disabled, painter.colorModeForRenderPass(), CullFaceMode.disabled, uniforms, layer.id, vertexBuffer, indexBuffer, performance2.SegmentVector.simpleSegment(0, batch$1.circleOffset * 2, batch$1.circleArray.length, batch$1.circleArray.length / 2), null, painter.transform.zoom, null, null, null);\n }\n vertexBuffer.destroy();\n indexBuffer.destroy();\n }\n function createQuadTriangles(quadCount) {\n var triCount = quadCount * 2;\n var array = new performance2.StructArrayLayout3ui6();\n array.resize(triCount);\n array._trim();\n for (var i = 0; i < triCount; i++) {\n var idx = i * 6;\n array.uint16[idx + 0] = i * 4 + 0;\n array.uint16[idx + 1] = i * 4 + 1;\n array.uint16[idx + 2] = i * 4 + 2;\n array.uint16[idx + 3] = i * 4 + 2;\n array.uint16[idx + 4] = i * 4 + 3;\n array.uint16[idx + 5] = i * 4 + 0;\n }\n return array;\n }\n var identityMat4 = performance2.identity(new Float32Array(16));\n function drawSymbols(painter, sourceCache, layer, coords, variableOffsets) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n var stencilMode = StencilMode.disabled;\n var colorMode = painter.colorModeForRenderPass();\n var variablePlacement = layer.layout.get(\"text-variable-anchor\");\n if (variablePlacement) {\n updateVariableAnchors(coords, painter, layer, sourceCache, layer.layout.get(\"text-rotation-alignment\"), layer.layout.get(\"text-pitch-alignment\"), variableOffsets);\n }\n if (layer.paint.get(\"icon-opacity\").constantOr(1) !== 0) {\n drawLayerSymbols(painter, sourceCache, layer, coords, false, layer.paint.get(\"icon-translate\"), layer.paint.get(\"icon-translate-anchor\"), layer.layout.get(\"icon-rotation-alignment\"), layer.layout.get(\"icon-pitch-alignment\"), layer.layout.get(\"icon-keep-upright\"), stencilMode, colorMode);\n }\n if (layer.paint.get(\"text-opacity\").constantOr(1) !== 0) {\n drawLayerSymbols(painter, sourceCache, layer, coords, true, layer.paint.get(\"text-translate\"), layer.paint.get(\"text-translate-anchor\"), layer.layout.get(\"text-rotation-alignment\"), layer.layout.get(\"text-pitch-alignment\"), layer.layout.get(\"text-keep-upright\"), stencilMode, colorMode);\n }\n if (sourceCache.map.showCollisionBoxes) {\n drawCollisionDebug(painter, sourceCache, layer, coords, layer.paint.get(\"text-translate\"), layer.paint.get(\"text-translate-anchor\"), true);\n drawCollisionDebug(painter, sourceCache, layer, coords, layer.paint.get(\"icon-translate\"), layer.paint.get(\"icon-translate-anchor\"), false);\n }\n }\n function calculateVariableRenderShift(anchor, width, height, textOffset, textBoxScale, renderTextSize) {\n var ref = performance2.getAnchorAlignment(anchor);\n var horizontalAlign = ref.horizontalAlign;\n var verticalAlign = ref.verticalAlign;\n var shiftX = -(horizontalAlign - 0.5) * width;\n var shiftY = -(verticalAlign - 0.5) * height;\n var variableOffset = performance2.evaluateVariableOffset(anchor, textOffset);\n return new performance2.Point((shiftX / textBoxScale + variableOffset[0]) * renderTextSize, (shiftY / textBoxScale + variableOffset[1]) * renderTextSize);\n }\n function updateVariableAnchors(coords, painter, layer, sourceCache, rotationAlignment, pitchAlignment, variableOffsets) {\n var tr = painter.transform;\n var rotateWithMap = rotationAlignment === \"map\";\n var pitchWithMap = pitchAlignment === \"map\";\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket || !bucket.text || !bucket.text.segments.get().length) {\n continue;\n }\n var sizeData = bucket.textSizeData;\n var size = performance2.evaluateSizeForZoom(sizeData, tr.zoom);\n var pixelToTileScale = pixelsToTileUnits(tile, 1, painter.transform.zoom);\n var labelPlaneMatrix = getLabelPlaneMatrix(coord.posMatrix, pitchWithMap, rotateWithMap, painter.transform, pixelToTileScale);\n var updateTextFitIcon = layer.layout.get(\"icon-text-fit\") !== \"none\" && bucket.hasIconData();\n if (size) {\n var tileScale = Math.pow(2, tr.zoom - tile.tileID.overscaledZ);\n updateVariableAnchorsForBucket(bucket, rotateWithMap, pitchWithMap, variableOffsets, performance2.symbolSize, tr, labelPlaneMatrix, coord.posMatrix, tileScale, size, updateTextFitIcon);\n }\n }\n }\n function updateVariableAnchorsForBucket(bucket, rotateWithMap, pitchWithMap, variableOffsets, symbolSize, transform, labelPlaneMatrix, posMatrix, tileScale, size, updateTextFitIcon) {\n var placedSymbols = bucket.text.placedSymbolArray;\n var dynamicTextLayoutVertexArray = bucket.text.dynamicLayoutVertexArray;\n var dynamicIconLayoutVertexArray = bucket.icon.dynamicLayoutVertexArray;\n var placedTextShifts = {};\n dynamicTextLayoutVertexArray.clear();\n for (var s = 0; s < placedSymbols.length; s++) {\n var symbol = placedSymbols.get(s);\n var skipOrientation = bucket.allowVerticalPlacement && !symbol.placedOrientation;\n var variableOffset = !symbol.hidden && symbol.crossTileID && !skipOrientation ? variableOffsets[symbol.crossTileID] : null;\n if (!variableOffset) {\n hideGlyphs(symbol.numGlyphs, dynamicTextLayoutVertexArray);\n } else {\n var tileAnchor = new performance2.Point(symbol.anchorX, symbol.anchorY);\n var projectedAnchor = project(tileAnchor, pitchWithMap ? posMatrix : labelPlaneMatrix);\n var perspectiveRatio = getPerspectiveRatio(transform.cameraToCenterDistance, projectedAnchor.signedDistanceFromCamera);\n var renderTextSize = symbolSize.evaluateSizeForFeature(bucket.textSizeData, size, symbol) * perspectiveRatio / performance2.ONE_EM;\n if (pitchWithMap) {\n renderTextSize *= bucket.tilePixelRatio / tileScale;\n }\n var width = variableOffset.width;\n var height = variableOffset.height;\n var anchor = variableOffset.anchor;\n var textOffset = variableOffset.textOffset;\n var textBoxScale = variableOffset.textBoxScale;\n var shift = calculateVariableRenderShift(anchor, width, height, textOffset, textBoxScale, renderTextSize);\n var shiftedAnchor = pitchWithMap ? project(tileAnchor.add(shift), labelPlaneMatrix).point : projectedAnchor.point.add(rotateWithMap ? shift.rotate(-transform.angle) : shift);\n var angle = bucket.allowVerticalPlacement && symbol.placedOrientation === performance2.WritingMode.vertical ? Math.PI / 2 : 0;\n for (var g = 0; g < symbol.numGlyphs; g++) {\n performance2.addDynamicAttributes(dynamicTextLayoutVertexArray, shiftedAnchor, angle);\n }\n if (updateTextFitIcon && symbol.associatedIconIndex >= 0) {\n placedTextShifts[symbol.associatedIconIndex] = {\n shiftedAnchor,\n angle\n };\n }\n }\n }\n if (updateTextFitIcon) {\n dynamicIconLayoutVertexArray.clear();\n var placedIcons = bucket.icon.placedSymbolArray;\n for (var i = 0; i < placedIcons.length; i++) {\n var placedIcon = placedIcons.get(i);\n if (placedIcon.hidden) {\n hideGlyphs(placedIcon.numGlyphs, dynamicIconLayoutVertexArray);\n } else {\n var shift$1 = placedTextShifts[i];\n if (!shift$1) {\n hideGlyphs(placedIcon.numGlyphs, dynamicIconLayoutVertexArray);\n } else {\n for (var g$1 = 0; g$1 < placedIcon.numGlyphs; g$1++) {\n performance2.addDynamicAttributes(dynamicIconLayoutVertexArray, shift$1.shiftedAnchor, shift$1.angle);\n }\n }\n }\n }\n bucket.icon.dynamicLayoutVertexBuffer.updateData(dynamicIconLayoutVertexArray);\n }\n bucket.text.dynamicLayoutVertexBuffer.updateData(dynamicTextLayoutVertexArray);\n }\n function getSymbolProgramName(isSDF, isText, bucket) {\n if (bucket.iconsInText && isText) {\n return \"symbolTextAndIcon\";\n } else if (isSDF) {\n return \"symbolSDF\";\n } else {\n return \"symbolIcon\";\n }\n }\n function drawLayerSymbols(painter, sourceCache, layer, coords, isText, translate, translateAnchor, rotationAlignment, pitchAlignment, keepUpright, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var tr = painter.transform;\n var rotateWithMap = rotationAlignment === \"map\";\n var pitchWithMap = pitchAlignment === \"map\";\n var alongLine = rotateWithMap && layer.layout.get(\"symbol-placement\") !== \"point\";\n var rotateInShader = rotateWithMap && !pitchWithMap && !alongLine;\n var hasSortKey = layer.layout.get(\"symbol-sort-key\").constantOr(1) !== void 0;\n var sortFeaturesByKey = false;\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var variablePlacement = layer.layout.get(\"text-variable-anchor\");\n var tileRenderState = [];\n for (var i$1 = 0, list$1 = coords; i$1 < list$1.length; i$1 += 1) {\n var coord = list$1[i$1];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var buffers = isText ? bucket.text : bucket.icon;\n if (!buffers || !buffers.segments.get().length) {\n continue;\n }\n var programConfiguration = buffers.programConfigurations.get(layer.id);\n var isSDF = isText || bucket.sdfIcons;\n var sizeData = isText ? bucket.textSizeData : bucket.iconSizeData;\n var transformed = pitchWithMap || tr.pitch !== 0;\n var program = painter.useProgram(getSymbolProgramName(isSDF, isText, bucket), programConfiguration);\n var size = performance2.evaluateSizeForZoom(sizeData, tr.zoom);\n var texSize = void 0;\n var texSizeIcon = [\n 0,\n 0\n ];\n var atlasTexture = void 0;\n var atlasInterpolation = void 0;\n var atlasTextureIcon = null;\n var atlasInterpolationIcon = void 0;\n if (isText) {\n atlasTexture = tile.glyphAtlasTexture;\n atlasInterpolation = gl2.LINEAR;\n texSize = tile.glyphAtlasTexture.size;\n if (bucket.iconsInText) {\n texSizeIcon = tile.imageAtlasTexture.size;\n atlasTextureIcon = tile.imageAtlasTexture;\n var zoomDependentSize = sizeData.kind === \"composite\" || sizeData.kind === \"camera\";\n atlasInterpolationIcon = transformed || painter.options.rotating || painter.options.zooming || zoomDependentSize ? gl2.LINEAR : gl2.NEAREST;\n }\n } else {\n var iconScaled = layer.layout.get(\"icon-size\").constantOr(0) !== 1 || bucket.iconsNeedLinear;\n atlasTexture = tile.imageAtlasTexture;\n atlasInterpolation = isSDF || painter.options.rotating || painter.options.zooming || iconScaled || transformed ? gl2.LINEAR : gl2.NEAREST;\n texSize = tile.imageAtlasTexture.size;\n }\n var s = pixelsToTileUnits(tile, 1, painter.transform.zoom);\n var labelPlaneMatrix = getLabelPlaneMatrix(coord.posMatrix, pitchWithMap, rotateWithMap, painter.transform, s);\n var glCoordMatrix = getGlCoordMatrix(coord.posMatrix, pitchWithMap, rotateWithMap, painter.transform, s);\n var hasVariableAnchors = variablePlacement && bucket.hasTextData();\n var updateTextFitIcon = layer.layout.get(\"icon-text-fit\") !== \"none\" && hasVariableAnchors && bucket.hasIconData();\n if (alongLine) {\n updateLineLabels(bucket, coord.posMatrix, painter, isText, labelPlaneMatrix, glCoordMatrix, pitchWithMap, keepUpright);\n }\n var matrix = painter.translatePosMatrix(coord.posMatrix, tile, translate, translateAnchor), uLabelPlaneMatrix = alongLine || isText && variablePlacement || updateTextFitIcon ? identityMat4 : labelPlaneMatrix, uglCoordMatrix = painter.translatePosMatrix(glCoordMatrix, tile, translate, translateAnchor, true);\n var hasHalo = isSDF && layer.paint.get(isText ? \"text-halo-width\" : \"icon-halo-width\").constantOr(1) !== 0;\n var uniformValues = void 0;\n if (isSDF) {\n if (!bucket.iconsInText) {\n uniformValues = symbolSDFUniformValues(sizeData.kind, size, rotateInShader, pitchWithMap, painter, matrix, uLabelPlaneMatrix, uglCoordMatrix, isText, texSize, true);\n } else {\n uniformValues = symbolTextAndIconUniformValues(sizeData.kind, size, rotateInShader, pitchWithMap, painter, matrix, uLabelPlaneMatrix, uglCoordMatrix, texSize, texSizeIcon);\n }\n } else {\n uniformValues = symbolIconUniformValues(sizeData.kind, size, rotateInShader, pitchWithMap, painter, matrix, uLabelPlaneMatrix, uglCoordMatrix, isText, texSize);\n }\n var state = {\n program,\n buffers,\n uniformValues,\n atlasTexture,\n atlasTextureIcon,\n atlasInterpolation,\n atlasInterpolationIcon,\n isSDF,\n hasHalo\n };\n if (hasSortKey && bucket.canOverlap) {\n sortFeaturesByKey = true;\n var oldSegments = buffers.segments.get();\n for (var i = 0, list = oldSegments; i < list.length; i += 1) {\n var segment = list[i];\n tileRenderState.push({\n segments: new performance2.SegmentVector([segment]),\n sortKey: segment.sortKey,\n state\n });\n }\n } else {\n tileRenderState.push({\n segments: buffers.segments,\n sortKey: 0,\n state\n });\n }\n }\n if (sortFeaturesByKey) {\n tileRenderState.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$2 = 0, list$2 = tileRenderState; i$2 < list$2.length; i$2 += 1) {\n var segmentState = list$2[i$2];\n var state$1 = segmentState.state;\n context.activeTexture.set(gl2.TEXTURE0);\n state$1.atlasTexture.bind(state$1.atlasInterpolation, gl2.CLAMP_TO_EDGE);\n if (state$1.atlasTextureIcon) {\n context.activeTexture.set(gl2.TEXTURE1);\n if (state$1.atlasTextureIcon) {\n state$1.atlasTextureIcon.bind(state$1.atlasInterpolationIcon, gl2.CLAMP_TO_EDGE);\n }\n }\n if (state$1.isSDF) {\n var uniformValues$1 = state$1.uniformValues;\n if (state$1.hasHalo) {\n uniformValues$1[\"u_is_halo\"] = 1;\n drawSymbolElements(state$1.buffers, segmentState.segments, layer, painter, state$1.program, depthMode, stencilMode, colorMode, uniformValues$1);\n }\n uniformValues$1[\"u_is_halo\"] = 0;\n }\n drawSymbolElements(state$1.buffers, segmentState.segments, layer, painter, state$1.program, depthMode, stencilMode, colorMode, state$1.uniformValues);\n }\n }\n function drawSymbolElements(buffers, segments, layer, painter, program, depthMode, stencilMode, colorMode, uniformValues) {\n var context = painter.context;\n var gl2 = context.gl;\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues, layer.id, buffers.layoutVertexBuffer, buffers.indexBuffer, segments, layer.paint, painter.transform.zoom, buffers.programConfigurations.get(layer.id), buffers.dynamicLayoutVertexBuffer, buffers.opacityVertexBuffer);\n }\n function drawCircles(painter, sourceCache, layer, coords) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n var opacity = layer.paint.get(\"circle-opacity\");\n var strokeWidth = layer.paint.get(\"circle-stroke-width\");\n var strokeOpacity = layer.paint.get(\"circle-stroke-opacity\");\n var sortFeaturesByKey = layer.layout.get(\"circle-sort-key\").constantOr(1) !== void 0;\n if (opacity.constantOr(1) === 0 && (strokeWidth.constantOr(1) === 0 || strokeOpacity.constantOr(1) === 0)) {\n return;\n }\n var context = painter.context;\n var gl2 = context.gl;\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var stencilMode = StencilMode.disabled;\n var colorMode = painter.colorModeForRenderPass();\n var segmentsRenderStates = [];\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i];\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(\"circle\", programConfiguration);\n var layoutVertexBuffer = bucket.layoutVertexBuffer;\n var indexBuffer = bucket.indexBuffer;\n var uniformValues = circleUniformValues(painter, coord, tile, layer);\n var state = {\n programConfiguration,\n program,\n layoutVertexBuffer,\n indexBuffer,\n uniformValues\n };\n if (sortFeaturesByKey) {\n var oldSegments = bucket.segments.get();\n for (var i$1 = 0, list = oldSegments; i$1 < list.length; i$1 += 1) {\n var segment = list[i$1];\n segmentsRenderStates.push({\n segments: new performance2.SegmentVector([segment]),\n sortKey: segment.sortKey,\n state\n });\n }\n } else {\n segmentsRenderStates.push({\n segments: bucket.segments,\n sortKey: 0,\n state\n });\n }\n }\n if (sortFeaturesByKey) {\n segmentsRenderStates.sort(function(a, b) {\n return a.sortKey - b.sortKey;\n });\n }\n for (var i$2 = 0, list$1 = segmentsRenderStates; i$2 < list$1.length; i$2 += 1) {\n var segmentsState = list$1[i$2];\n var ref = segmentsState.state;\n var programConfiguration$1 = ref.programConfiguration;\n var program$1 = ref.program;\n var layoutVertexBuffer$1 = ref.layoutVertexBuffer;\n var indexBuffer$1 = ref.indexBuffer;\n var uniformValues$1 = ref.uniformValues;\n var segments = segmentsState.segments;\n program$1.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues$1, layer.id, layoutVertexBuffer$1, indexBuffer$1, segments, layer.paint, painter.transform.zoom, programConfiguration$1);\n }\n }\n function drawHeatmap(painter, sourceCache, layer, coords) {\n if (layer.paint.get(\"heatmap-opacity\") === 0) {\n return;\n }\n if (painter.renderPass === \"offscreen\") {\n var context = painter.context;\n var gl2 = context.gl;\n var stencilMode = StencilMode.disabled;\n var colorMode = new ColorMode([\n gl2.ONE,\n gl2.ONE\n ], performance2.Color.transparent, [\n true,\n true,\n true,\n true\n ]);\n bindFramebuffer(context, painter, layer);\n context.clear({ color: performance2.Color.transparent });\n for (var i = 0; i < coords.length; i++) {\n var coord = coords[i];\n if (sourceCache.hasRenderableParent(coord)) {\n continue;\n }\n var tile = sourceCache.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(\"heatmap\", programConfiguration);\n var ref = painter.transform;\n var zoom = ref.zoom;\n program.draw(context, gl2.TRIANGLES, DepthMode.disabled, stencilMode, colorMode, CullFaceMode.disabled, heatmapUniformValues(coord.posMatrix, tile, zoom, layer.paint.get(\"heatmap-intensity\")), layer.id, bucket.layoutVertexBuffer, bucket.indexBuffer, bucket.segments, layer.paint, painter.transform.zoom, programConfiguration);\n }\n context.viewport.set([\n 0,\n 0,\n painter.width,\n painter.height\n ]);\n } else if (painter.renderPass === \"translucent\") {\n painter.context.setColorMode(painter.colorModeForRenderPass());\n renderTextureToMap(painter, layer);\n }\n }\n function bindFramebuffer(context, painter, layer) {\n var gl2 = context.gl;\n context.activeTexture.set(gl2.TEXTURE1);\n context.viewport.set([\n 0,\n 0,\n painter.width / 4,\n painter.height / 4\n ]);\n var fbo = layer.heatmapFbo;\n if (!fbo) {\n var texture = gl2.createTexture();\n gl2.bindTexture(gl2.TEXTURE_2D, texture);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_S, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_WRAP_T, gl2.CLAMP_TO_EDGE);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MIN_FILTER, gl2.LINEAR);\n gl2.texParameteri(gl2.TEXTURE_2D, gl2.TEXTURE_MAG_FILTER, gl2.LINEAR);\n fbo = layer.heatmapFbo = context.createFramebuffer(painter.width / 4, painter.height / 4, false);\n bindTextureToFramebuffer(context, painter, texture, fbo);\n } else {\n gl2.bindTexture(gl2.TEXTURE_2D, fbo.colorAttachment.get());\n context.bindFramebuffer.set(fbo.framebuffer);\n }\n }\n function bindTextureToFramebuffer(context, painter, texture, fbo) {\n var gl2 = context.gl;\n var internalFormat = context.extRenderToTextureHalfFloat ? context.extTextureHalfFloat.HALF_FLOAT_OES : gl2.UNSIGNED_BYTE;\n gl2.texImage2D(gl2.TEXTURE_2D, 0, gl2.RGBA, painter.width / 4, painter.height / 4, 0, gl2.RGBA, internalFormat, null);\n fbo.colorAttachment.set(texture);\n }\n function renderTextureToMap(painter, layer) {\n var context = painter.context;\n var gl2 = context.gl;\n var fbo = layer.heatmapFbo;\n if (!fbo) {\n return;\n }\n context.activeTexture.set(gl2.TEXTURE0);\n gl2.bindTexture(gl2.TEXTURE_2D, fbo.colorAttachment.get());\n context.activeTexture.set(gl2.TEXTURE1);\n var colorRampTexture = layer.colorRampTexture;\n if (!colorRampTexture) {\n colorRampTexture = layer.colorRampTexture = new performance2.Texture(context, layer.colorRamp, gl2.RGBA);\n }\n colorRampTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n painter.useProgram(\"heatmapTexture\").draw(context, gl2.TRIANGLES, DepthMode.disabled, StencilMode.disabled, painter.colorModeForRenderPass(), CullFaceMode.disabled, heatmapTextureUniformValues(painter, layer, 0, 1), layer.id, painter.viewportBuffer, painter.quadTriangleIndexBuffer, painter.viewportSegments, layer.paint, painter.transform.zoom);\n }\n function drawLine(painter, sourceCache, layer, coords) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n var opacity = layer.paint.get(\"line-opacity\");\n var width = layer.paint.get(\"line-width\");\n if (opacity.constantOr(1) === 0 || width.constantOr(1) === 0) {\n return;\n }\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var colorMode = painter.colorModeForRenderPass();\n var dasharray = layer.paint.get(\"line-dasharray\");\n var patternProperty = layer.paint.get(\"line-pattern\");\n var image = patternProperty.constantOr(1);\n var gradient = layer.paint.get(\"line-gradient\");\n var crossfade = layer.getCrossfadeParameters();\n var programId = image ? \"linePattern\" : dasharray ? \"lineSDF\" : gradient ? \"lineGradient\" : \"line\";\n var context = painter.context;\n var gl2 = context.gl;\n var firstTile = true;\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n if (image && !tile.patternsLoaded()) {\n continue;\n }\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var prevProgram = painter.context.program.get();\n var program = painter.useProgram(programId, programConfiguration);\n var programChanged = firstTile || program.program !== prevProgram;\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern && tile.imageAtlas) {\n var atlas = tile.imageAtlas;\n var posTo = atlas.patternPositions[constantPattern.to.toString()];\n var posFrom = atlas.patternPositions[constantPattern.from.toString()];\n if (posTo && posFrom) {\n programConfiguration.setConstantPatternPositions(posTo, posFrom);\n }\n }\n var uniformValues = image ? linePatternUniformValues(painter, tile, layer, crossfade) : dasharray ? lineSDFUniformValues(painter, tile, layer, dasharray, crossfade) : gradient ? lineGradientUniformValues(painter, tile, layer, bucket.lineClipsArray.length) : lineUniformValues(painter, tile, layer);\n if (image) {\n context.activeTexture.set(gl2.TEXTURE0);\n tile.imageAtlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n programConfiguration.updatePaintBuffers(crossfade);\n } else if (dasharray && (programChanged || painter.lineAtlas.dirty)) {\n context.activeTexture.set(gl2.TEXTURE0);\n painter.lineAtlas.bind(context);\n } else if (gradient) {\n var layerGradient = bucket.gradients[layer.id];\n var gradientTexture = layerGradient.texture;\n if (layer.gradientVersion !== layerGradient.version) {\n var textureResolution = 256;\n if (layer.stepInterpolant) {\n var sourceMaxZoom = sourceCache.getSource().maxzoom;\n var potentialOverzoom = coord.canonical.z === sourceMaxZoom ? Math.ceil(1 << painter.transform.maxZoom - coord.canonical.z) : 1;\n var lineLength = bucket.maxLineLength / performance2.EXTENT;\n var maxTilePixelSize = 1024;\n var maxTextureCoverage = lineLength * maxTilePixelSize * potentialOverzoom;\n textureResolution = performance2.clamp(performance2.nextPowerOfTwo(maxTextureCoverage), 256, context.maxTextureSize);\n }\n layerGradient.gradient = performance2.renderColorRamp({\n expression: layer.gradientExpression(),\n evaluationKey: \"lineProgress\",\n resolution: textureResolution,\n image: layerGradient.gradient || void 0,\n clips: bucket.lineClipsArray\n });\n if (layerGradient.texture) {\n layerGradient.texture.update(layerGradient.gradient);\n } else {\n layerGradient.texture = new performance2.Texture(context, layerGradient.gradient, gl2.RGBA);\n }\n layerGradient.version = layer.gradientVersion;\n gradientTexture = layerGradient.texture;\n }\n context.activeTexture.set(gl2.TEXTURE0);\n gradientTexture.bind(layer.stepInterpolant ? gl2.NEAREST : gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n }\n program.draw(context, gl2.TRIANGLES, depthMode, painter.stencilModeForClipping(coord), colorMode, CullFaceMode.disabled, uniformValues, layer.id, bucket.layoutVertexBuffer, bucket.indexBuffer, bucket.segments, layer.paint, painter.transform.zoom, programConfiguration, bucket.layoutVertexBuffer2);\n firstTile = false;\n }\n }\n function drawFill(painter, sourceCache, layer, coords) {\n var color2 = layer.paint.get(\"fill-color\");\n var opacity = layer.paint.get(\"fill-opacity\");\n if (opacity.constantOr(1) === 0) {\n return;\n }\n var colorMode = painter.colorModeForRenderPass();\n var pattern = layer.paint.get(\"fill-pattern\");\n var pass = painter.opaquePassEnabledForLayer() && (!pattern.constantOr(1) && color2.constantOr(performance2.Color.transparent).a === 1 && opacity.constantOr(0) === 1) ? \"opaque\" : \"translucent\";\n if (painter.renderPass === pass) {\n var depthMode = painter.depthModeForSublayer(1, painter.renderPass === \"opaque\" ? DepthMode.ReadWrite : DepthMode.ReadOnly);\n drawFillTiles(painter, sourceCache, layer, coords, depthMode, colorMode, false);\n }\n if (painter.renderPass === \"translucent\" && layer.paint.get(\"fill-antialias\")) {\n var depthMode$1 = painter.depthModeForSublayer(layer.getPaintProperty(\"fill-outline-color\") ? 2 : 0, DepthMode.ReadOnly);\n drawFillTiles(painter, sourceCache, layer, coords, depthMode$1, colorMode, true);\n }\n }\n function drawFillTiles(painter, sourceCache, layer, coords, depthMode, colorMode, isOutline) {\n var gl2 = painter.context.gl;\n var patternProperty = layer.paint.get(\"fill-pattern\");\n var image = patternProperty && patternProperty.constantOr(1);\n var crossfade = layer.getCrossfadeParameters();\n var drawMode, programName, uniformValues, indexBuffer, segments;\n if (!isOutline) {\n programName = image ? \"fillPattern\" : \"fill\";\n drawMode = gl2.TRIANGLES;\n } else {\n programName = image && !layer.getPaintProperty(\"fill-outline-color\") ? \"fillOutlinePattern\" : \"fillOutline\";\n drawMode = gl2.LINES;\n }\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n if (image && !tile.patternsLoaded()) {\n continue;\n }\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(programName, programConfiguration);\n if (image) {\n painter.context.activeTexture.set(gl2.TEXTURE0);\n tile.imageAtlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n programConfiguration.updatePaintBuffers(crossfade);\n }\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern && tile.imageAtlas) {\n var atlas = tile.imageAtlas;\n var posTo = atlas.patternPositions[constantPattern.to.toString()];\n var posFrom = atlas.patternPositions[constantPattern.from.toString()];\n if (posTo && posFrom) {\n programConfiguration.setConstantPatternPositions(posTo, posFrom);\n }\n }\n var tileMatrix = painter.translatePosMatrix(coord.posMatrix, tile, layer.paint.get(\"fill-translate\"), layer.paint.get(\"fill-translate-anchor\"));\n if (!isOutline) {\n indexBuffer = bucket.indexBuffer;\n segments = bucket.segments;\n uniformValues = image ? fillPatternUniformValues(tileMatrix, painter, crossfade, tile) : fillUniformValues(tileMatrix);\n } else {\n indexBuffer = bucket.indexBuffer2;\n segments = bucket.segments2;\n var drawingBufferSize = [\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight\n ];\n uniformValues = programName === \"fillOutlinePattern\" && image ? fillOutlinePatternUniformValues(tileMatrix, painter, crossfade, tile, drawingBufferSize) : fillOutlineUniformValues(tileMatrix, drawingBufferSize);\n }\n program.draw(painter.context, drawMode, depthMode, painter.stencilModeForClipping(coord), colorMode, CullFaceMode.disabled, uniformValues, layer.id, bucket.layoutVertexBuffer, indexBuffer, segments, layer.paint, painter.transform.zoom, programConfiguration);\n }\n }\n function draw(painter, source, layer, coords) {\n var opacity = layer.paint.get(\"fill-extrusion-opacity\");\n if (opacity === 0) {\n return;\n }\n if (painter.renderPass === \"translucent\") {\n var depthMode = new DepthMode(painter.context.gl.LEQUAL, DepthMode.ReadWrite, painter.depthRangeFor3D);\n if (opacity === 1 && !layer.paint.get(\"fill-extrusion-pattern\").constantOr(1)) {\n var colorMode = painter.colorModeForRenderPass();\n drawExtrusionTiles(painter, source, layer, coords, depthMode, StencilMode.disabled, colorMode);\n } else {\n drawExtrusionTiles(painter, source, layer, coords, depthMode, StencilMode.disabled, ColorMode.disabled);\n drawExtrusionTiles(painter, source, layer, coords, depthMode, painter.stencilModeFor3D(), painter.colorModeForRenderPass());\n }\n }\n }\n function drawExtrusionTiles(painter, source, layer, coords, depthMode, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var patternProperty = layer.paint.get(\"fill-extrusion-pattern\");\n var image = patternProperty.constantOr(1);\n var crossfade = layer.getCrossfadeParameters();\n var opacity = layer.paint.get(\"fill-extrusion-opacity\");\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = source.getTile(coord);\n var bucket = tile.getBucket(layer);\n if (!bucket) {\n continue;\n }\n var programConfiguration = bucket.programConfigurations.get(layer.id);\n var program = painter.useProgram(image ? \"fillExtrusionPattern\" : \"fillExtrusion\", programConfiguration);\n if (image) {\n painter.context.activeTexture.set(gl2.TEXTURE0);\n tile.imageAtlasTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n programConfiguration.updatePaintBuffers(crossfade);\n }\n var constantPattern = patternProperty.constantOr(null);\n if (constantPattern && tile.imageAtlas) {\n var atlas = tile.imageAtlas;\n var posTo = atlas.patternPositions[constantPattern.to.toString()];\n var posFrom = atlas.patternPositions[constantPattern.from.toString()];\n if (posTo && posFrom) {\n programConfiguration.setConstantPatternPositions(posTo, posFrom);\n }\n }\n var matrix = painter.translatePosMatrix(coord.posMatrix, tile, layer.paint.get(\"fill-extrusion-translate\"), layer.paint.get(\"fill-extrusion-translate-anchor\"));\n var shouldUseVerticalGradient = layer.paint.get(\"fill-extrusion-vertical-gradient\");\n var uniformValues = image ? fillExtrusionPatternUniformValues(matrix, painter, shouldUseVerticalGradient, opacity, coord, crossfade, tile) : fillExtrusionUniformValues(matrix, painter, shouldUseVerticalGradient, opacity);\n program.draw(context, context.gl.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.backCCW, uniformValues, layer.id, bucket.layoutVertexBuffer, bucket.indexBuffer, bucket.segments, layer.paint, painter.transform.zoom, programConfiguration);\n }\n }\n function drawHillshade(painter, sourceCache, layer, tileIDs) {\n if (painter.renderPass !== \"offscreen\" && painter.renderPass !== \"translucent\") {\n return;\n }\n var context = painter.context;\n var depthMode = painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n var colorMode = painter.colorModeForRenderPass();\n var ref = painter.renderPass === \"translucent\" ? painter.stencilConfigForOverlap(tileIDs) : [\n {},\n tileIDs\n ];\n var stencilModes = ref[0];\n var coords = ref[1];\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var tile = sourceCache.getTile(coord);\n if (tile.needsHillshadePrepare && painter.renderPass === \"offscreen\") {\n prepareHillshade(painter, tile, layer, depthMode, StencilMode.disabled, colorMode);\n } else if (painter.renderPass === \"translucent\") {\n renderHillshade(painter, tile, layer, depthMode, stencilModes[coord.overscaledZ], colorMode);\n }\n }\n context.viewport.set([\n 0,\n 0,\n painter.width,\n painter.height\n ]);\n }\n function renderHillshade(painter, tile, layer, depthMode, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var fbo = tile.fbo;\n if (!fbo) {\n return;\n }\n var program = painter.useProgram(\"hillshade\");\n context.activeTexture.set(gl2.TEXTURE0);\n gl2.bindTexture(gl2.TEXTURE_2D, fbo.colorAttachment.get());\n var uniformValues = hillshadeUniformValues(painter, tile, layer);\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues, layer.id, painter.rasterBoundsBuffer, painter.quadTriangleIndexBuffer, painter.rasterBoundsSegments);\n }\n function prepareHillshade(painter, tile, layer, depthMode, stencilMode, colorMode) {\n var context = painter.context;\n var gl2 = context.gl;\n var dem = tile.dem;\n if (dem && dem.data) {\n var tileSize = dem.dim;\n var textureStride = dem.stride;\n var pixelData = dem.getPixels();\n context.activeTexture.set(gl2.TEXTURE1);\n context.pixelStoreUnpackPremultiplyAlpha.set(false);\n tile.demTexture = tile.demTexture || painter.getTileTexture(textureStride);\n if (tile.demTexture) {\n var demTexture = tile.demTexture;\n demTexture.update(pixelData, { premultiply: false });\n demTexture.bind(gl2.NEAREST, gl2.CLAMP_TO_EDGE);\n } else {\n tile.demTexture = new performance2.Texture(context, pixelData, gl2.RGBA, { premultiply: false });\n tile.demTexture.bind(gl2.NEAREST, gl2.CLAMP_TO_EDGE);\n }\n context.activeTexture.set(gl2.TEXTURE0);\n var fbo = tile.fbo;\n if (!fbo) {\n var renderTexture = new performance2.Texture(context, {\n width: tileSize,\n height: tileSize,\n data: null\n }, gl2.RGBA);\n renderTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n fbo = tile.fbo = context.createFramebuffer(tileSize, tileSize, true);\n fbo.colorAttachment.set(renderTexture.texture);\n }\n context.bindFramebuffer.set(fbo.framebuffer);\n context.viewport.set([\n 0,\n 0,\n tileSize,\n tileSize\n ]);\n painter.useProgram(\"hillshadePrepare\").draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, hillshadeUniformPrepareValues(tile.tileID, dem), layer.id, painter.rasterBoundsBuffer, painter.quadTriangleIndexBuffer, painter.rasterBoundsSegments);\n tile.needsHillshadePrepare = false;\n }\n }\n function drawRaster(painter, sourceCache, layer, tileIDs) {\n if (painter.renderPass !== \"translucent\") {\n return;\n }\n if (layer.paint.get(\"raster-opacity\") === 0) {\n return;\n }\n if (!tileIDs.length) {\n return;\n }\n var context = painter.context;\n var gl2 = context.gl;\n var source = sourceCache.getSource();\n var program = painter.useProgram(\"raster\");\n var colorMode = painter.colorModeForRenderPass();\n var ref = source instanceof ImageSource ? [\n {},\n tileIDs\n ] : painter.stencilConfigForOverlap(tileIDs);\n var stencilModes = ref[0];\n var coords = ref[1];\n var minTileZ = coords[coords.length - 1].overscaledZ;\n var align = !painter.options.moving;\n for (var i = 0, list = coords; i < list.length; i += 1) {\n var coord = list[i];\n var depthMode = painter.depthModeForSublayer(coord.overscaledZ - minTileZ, layer.paint.get(\"raster-opacity\") === 1 ? DepthMode.ReadWrite : DepthMode.ReadOnly, gl2.LESS);\n var tile = sourceCache.getTile(coord);\n var posMatrix = painter.transform.calculatePosMatrix(coord.toUnwrapped(), align);\n tile.registerFadeDuration(layer.paint.get(\"raster-fade-duration\"));\n var parentTile = sourceCache.findLoadedParent(coord, 0), fade = getFadeValues(tile, parentTile, sourceCache, layer, painter.transform);\n var parentScaleBy = void 0, parentTL = void 0;\n var textureFilter = layer.paint.get(\"raster-resampling\") === \"nearest\" ? gl2.NEAREST : gl2.LINEAR;\n context.activeTexture.set(gl2.TEXTURE0);\n tile.texture.bind(textureFilter, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n context.activeTexture.set(gl2.TEXTURE1);\n if (parentTile) {\n parentTile.texture.bind(textureFilter, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n parentScaleBy = Math.pow(2, parentTile.tileID.overscaledZ - tile.tileID.overscaledZ);\n parentTL = [\n tile.tileID.canonical.x * parentScaleBy % 1,\n tile.tileID.canonical.y * parentScaleBy % 1\n ];\n } else {\n tile.texture.bind(textureFilter, gl2.CLAMP_TO_EDGE, gl2.LINEAR_MIPMAP_NEAREST);\n }\n var uniformValues = rasterUniformValues(posMatrix, parentTL || [\n 0,\n 0\n ], parentScaleBy || 1, fade, layer);\n if (source instanceof ImageSource) {\n program.draw(context, gl2.TRIANGLES, depthMode, StencilMode.disabled, colorMode, CullFaceMode.disabled, uniformValues, layer.id, source.boundsBuffer, painter.quadTriangleIndexBuffer, source.boundsSegments);\n } else {\n program.draw(context, gl2.TRIANGLES, depthMode, stencilModes[coord.overscaledZ], colorMode, CullFaceMode.disabled, uniformValues, layer.id, painter.rasterBoundsBuffer, painter.quadTriangleIndexBuffer, painter.rasterBoundsSegments);\n }\n }\n }\n function getFadeValues(tile, parentTile, sourceCache, layer, transform) {\n var fadeDuration = layer.paint.get(\"raster-fade-duration\");\n if (fadeDuration > 0) {\n var now = performance2.browser.now();\n var sinceTile = (now - tile.timeAdded) / fadeDuration;\n var sinceParent = parentTile ? (now - parentTile.timeAdded) / fadeDuration : -1;\n var source = sourceCache.getSource();\n var idealZ = transform.coveringZoomLevel({\n tileSize: source.tileSize,\n roundZoom: source.roundZoom\n });\n var fadeIn = !parentTile || Math.abs(parentTile.tileID.overscaledZ - idealZ) > Math.abs(tile.tileID.overscaledZ - idealZ);\n var childOpacity = fadeIn && tile.refreshedUponExpiration ? 1 : performance2.clamp(fadeIn ? sinceTile : 1 - sinceParent, 0, 1);\n if (tile.refreshedUponExpiration && sinceTile >= 1) {\n tile.refreshedUponExpiration = false;\n }\n if (parentTile) {\n return {\n opacity: 1,\n mix: 1 - childOpacity\n };\n } else {\n return {\n opacity: childOpacity,\n mix: 0\n };\n }\n } else {\n return {\n opacity: 1,\n mix: 0\n };\n }\n }\n function drawBackground(painter, sourceCache, layer) {\n var color2 = layer.paint.get(\"background-color\");\n var opacity = layer.paint.get(\"background-opacity\");\n if (opacity === 0) {\n return;\n }\n var context = painter.context;\n var gl2 = context.gl;\n var transform = painter.transform;\n var tileSize = transform.tileSize;\n var image = layer.paint.get(\"background-pattern\");\n if (painter.isPatternMissing(image)) {\n return;\n }\n var pass = !image && color2.a === 1 && opacity === 1 && painter.opaquePassEnabledForLayer() ? \"opaque\" : \"translucent\";\n if (painter.renderPass !== pass) {\n return;\n }\n var stencilMode = StencilMode.disabled;\n var depthMode = painter.depthModeForSublayer(0, pass === \"opaque\" ? DepthMode.ReadWrite : DepthMode.ReadOnly);\n var colorMode = painter.colorModeForRenderPass();\n var program = painter.useProgram(image ? \"backgroundPattern\" : \"background\");\n var tileIDs = transform.coveringTiles({ tileSize });\n if (image) {\n context.activeTexture.set(gl2.TEXTURE0);\n painter.imageManager.bind(painter.context);\n }\n var crossfade = layer.getCrossfadeParameters();\n for (var i = 0, list = tileIDs; i < list.length; i += 1) {\n var tileID = list[i];\n var matrix = painter.transform.calculatePosMatrix(tileID.toUnwrapped());\n var uniformValues = image ? backgroundPatternUniformValues(matrix, opacity, painter, image, {\n tileID,\n tileSize\n }, crossfade) : backgroundUniformValues(matrix, opacity, color2);\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, colorMode, CullFaceMode.disabled, uniformValues, layer.id, painter.tileExtentBuffer, painter.quadTriangleIndexBuffer, painter.tileExtentSegments);\n }\n }\n var topColor = new performance2.Color(1, 0, 0, 1);\n var btmColor = new performance2.Color(0, 1, 0, 1);\n var leftColor = new performance2.Color(0, 0, 1, 1);\n var rightColor = new performance2.Color(1, 0, 1, 1);\n var centerColor = new performance2.Color(0, 1, 1, 1);\n function drawDebugPadding(painter) {\n var padding2 = painter.transform.padding;\n var lineWidth = 3;\n drawHorizontalLine(painter, painter.transform.height - (padding2.top || 0), lineWidth, topColor);\n drawHorizontalLine(painter, padding2.bottom || 0, lineWidth, btmColor);\n drawVerticalLine(painter, padding2.left || 0, lineWidth, leftColor);\n drawVerticalLine(painter, painter.transform.width - (padding2.right || 0), lineWidth, rightColor);\n var center = painter.transform.centerPoint;\n drawCrosshair(painter, center.x, painter.transform.height - center.y, centerColor);\n }\n function drawCrosshair(painter, x, y, color2) {\n var size = 20;\n var lineWidth = 2;\n drawDebugSSRect(painter, x - lineWidth / 2, y - size / 2, lineWidth, size, color2);\n drawDebugSSRect(painter, x - size / 2, y - lineWidth / 2, size, lineWidth, color2);\n }\n function drawHorizontalLine(painter, y, lineWidth, color2) {\n drawDebugSSRect(painter, 0, y + lineWidth / 2, painter.transform.width, lineWidth, color2);\n }\n function drawVerticalLine(painter, x, lineWidth, color2) {\n drawDebugSSRect(painter, x - lineWidth / 2, 0, lineWidth, painter.transform.height, color2);\n }\n function drawDebugSSRect(painter, x, y, width, height, color2) {\n var context = painter.context;\n var gl2 = context.gl;\n gl2.enable(gl2.SCISSOR_TEST);\n gl2.scissor(x * performance2.browser.devicePixelRatio, y * performance2.browser.devicePixelRatio, width * performance2.browser.devicePixelRatio, height * performance2.browser.devicePixelRatio);\n context.clear({ color: color2 });\n gl2.disable(gl2.SCISSOR_TEST);\n }\n function drawDebug(painter, sourceCache, coords) {\n for (var i = 0; i < coords.length; i++) {\n drawDebugTile(painter, sourceCache, coords[i]);\n }\n }\n function drawDebugTile(painter, sourceCache, coord) {\n var context = painter.context;\n var gl2 = context.gl;\n var posMatrix = coord.posMatrix;\n var program = painter.useProgram(\"debug\");\n var depthMode = DepthMode.disabled;\n var stencilMode = StencilMode.disabled;\n var colorMode = painter.colorModeForRenderPass();\n var id = \"$debug\";\n context.activeTexture.set(gl2.TEXTURE0);\n painter.emptyTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n program.draw(context, gl2.LINE_STRIP, depthMode, stencilMode, colorMode, CullFaceMode.disabled, debugUniformValues(posMatrix, performance2.Color.red), id, painter.debugBuffer, painter.tileBorderIndexBuffer, painter.debugSegments);\n var tileRawData = sourceCache.getTileByID(coord.key).latestRawTileData;\n var tileByteLength = tileRawData && tileRawData.byteLength || 0;\n var tileSizeKb = Math.floor(tileByteLength / 1024);\n var tileSize = sourceCache.getTile(coord).tileSize;\n var scaleRatio = 512 / Math.min(tileSize, 512) * (coord.overscaledZ / painter.transform.zoom) * 0.5;\n var tileIdText = coord.canonical.toString();\n if (coord.overscaledZ !== coord.canonical.z) {\n tileIdText += \" => \" + coord.overscaledZ;\n }\n var tileLabel = tileIdText + \" \" + tileSizeKb + \"kb\";\n drawTextToOverlay(painter, tileLabel);\n program.draw(context, gl2.TRIANGLES, depthMode, stencilMode, ColorMode.alphaBlended, CullFaceMode.disabled, debugUniformValues(posMatrix, performance2.Color.transparent, scaleRatio), id, painter.debugBuffer, painter.quadTriangleIndexBuffer, painter.debugSegments);\n }\n function drawTextToOverlay(painter, text) {\n painter.initDebugOverlayCanvas();\n var canvas = painter.debugOverlayCanvas;\n var gl2 = painter.context.gl;\n var ctx2d = painter.debugOverlayCanvas.getContext(\"2d\");\n ctx2d.clearRect(0, 0, canvas.width, canvas.height);\n ctx2d.shadowColor = \"white\";\n ctx2d.shadowBlur = 2;\n ctx2d.lineWidth = 1.5;\n ctx2d.strokeStyle = \"white\";\n ctx2d.textBaseline = \"top\";\n ctx2d.font = \"bold 36px Open Sans, sans-serif\";\n ctx2d.fillText(text, 5, 5);\n ctx2d.strokeText(text, 5, 5);\n painter.debugOverlayTexture.update(canvas);\n painter.debugOverlayTexture.bind(gl2.LINEAR, gl2.CLAMP_TO_EDGE);\n }\n function drawCustom(painter, sourceCache, layer) {\n var context = painter.context;\n var implementation = layer.implementation;\n if (painter.renderPass === \"offscreen\") {\n var prerender = implementation.prerender;\n if (prerender) {\n painter.setCustomLayerDefaults();\n context.setColorMode(painter.colorModeForRenderPass());\n prerender.call(implementation, context.gl, painter.transform.customLayerMatrix());\n context.setDirty();\n painter.setBaseState();\n }\n } else if (painter.renderPass === \"translucent\") {\n painter.setCustomLayerDefaults();\n context.setColorMode(painter.colorModeForRenderPass());\n context.setStencilMode(StencilMode.disabled);\n var depthMode = implementation.renderingMode === \"3d\" ? new DepthMode(painter.context.gl.LEQUAL, DepthMode.ReadWrite, painter.depthRangeFor3D) : painter.depthModeForSublayer(0, DepthMode.ReadOnly);\n context.setDepthMode(depthMode);\n implementation.render(context.gl, painter.transform.customLayerMatrix());\n context.setDirty();\n painter.setBaseState();\n context.bindFramebuffer.set(null);\n }\n }\n var draw$1 = {\n symbol: drawSymbols,\n circle: drawCircles,\n heatmap: drawHeatmap,\n line: drawLine,\n fill: drawFill,\n \"fill-extrusion\": draw,\n hillshade: drawHillshade,\n raster: drawRaster,\n background: drawBackground,\n debug: drawDebug,\n custom: drawCustom\n };\n var Painter = function Painter2(gl2, transform) {\n this.context = new Context(gl2);\n this.transform = transform;\n this._tileTextures = {};\n this.setup();\n this.numSublayers = SourceCache.maxUnderzooming + SourceCache.maxOverzooming + 1;\n this.depthEpsilon = 1 / Math.pow(2, 16);\n this.crossTileSymbolIndex = new CrossTileSymbolIndex();\n this.gpuTimers = {};\n };\n Painter.prototype.resize = function resize(width, height) {\n this.width = width * performance2.browser.devicePixelRatio;\n this.height = height * performance2.browser.devicePixelRatio;\n this.context.viewport.set([\n 0,\n 0,\n this.width,\n this.height\n ]);\n if (this.style) {\n for (var i = 0, list = this.style._order; i < list.length; i += 1) {\n var layerId = list[i];\n this.style._layers[layerId].resize();\n }\n }\n };\n Painter.prototype.setup = function setup() {\n var context = this.context;\n var tileExtentArray = new performance2.StructArrayLayout2i4();\n tileExtentArray.emplaceBack(0, 0);\n tileExtentArray.emplaceBack(performance2.EXTENT, 0);\n tileExtentArray.emplaceBack(0, performance2.EXTENT);\n tileExtentArray.emplaceBack(performance2.EXTENT, performance2.EXTENT);\n this.tileExtentBuffer = context.createVertexBuffer(tileExtentArray, posAttributes.members);\n this.tileExtentSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n var debugArray = new performance2.StructArrayLayout2i4();\n debugArray.emplaceBack(0, 0);\n debugArray.emplaceBack(performance2.EXTENT, 0);\n debugArray.emplaceBack(0, performance2.EXTENT);\n debugArray.emplaceBack(performance2.EXTENT, performance2.EXTENT);\n this.debugBuffer = context.createVertexBuffer(debugArray, posAttributes.members);\n this.debugSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 5);\n var rasterBoundsArray = new performance2.StructArrayLayout4i8();\n rasterBoundsArray.emplaceBack(0, 0, 0, 0);\n rasterBoundsArray.emplaceBack(performance2.EXTENT, 0, performance2.EXTENT, 0);\n rasterBoundsArray.emplaceBack(0, performance2.EXTENT, 0, performance2.EXTENT);\n rasterBoundsArray.emplaceBack(performance2.EXTENT, performance2.EXTENT, performance2.EXTENT, performance2.EXTENT);\n this.rasterBoundsBuffer = context.createVertexBuffer(rasterBoundsArray, rasterBoundsAttributes.members);\n this.rasterBoundsSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n var viewportArray = new performance2.StructArrayLayout2i4();\n viewportArray.emplaceBack(0, 0);\n viewportArray.emplaceBack(1, 0);\n viewportArray.emplaceBack(0, 1);\n viewportArray.emplaceBack(1, 1);\n this.viewportBuffer = context.createVertexBuffer(viewportArray, posAttributes.members);\n this.viewportSegments = performance2.SegmentVector.simpleSegment(0, 0, 4, 2);\n var tileLineStripIndices = new performance2.StructArrayLayout1ui2();\n tileLineStripIndices.emplaceBack(0);\n tileLineStripIndices.emplaceBack(1);\n tileLineStripIndices.emplaceBack(3);\n tileLineStripIndices.emplaceBack(2);\n tileLineStripIndices.emplaceBack(0);\n this.tileBorderIndexBuffer = context.createIndexBuffer(tileLineStripIndices);\n var quadTriangleIndices = new performance2.StructArrayLayout3ui6();\n quadTriangleIndices.emplaceBack(0, 1, 2);\n quadTriangleIndices.emplaceBack(2, 1, 3);\n this.quadTriangleIndexBuffer = context.createIndexBuffer(quadTriangleIndices);\n this.emptyTexture = new performance2.Texture(context, {\n width: 1,\n height: 1,\n data: new Uint8Array([\n 0,\n 0,\n 0,\n 0\n ])\n }, context.gl.RGBA);\n var gl2 = this.context.gl;\n this.stencilClearMode = new StencilMode({\n func: gl2.ALWAYS,\n mask: 0\n }, 0, 255, gl2.ZERO, gl2.ZERO, gl2.ZERO);\n };\n Painter.prototype.clearStencil = function clearStencil() {\n var context = this.context;\n var gl2 = context.gl;\n this.nextStencilID = 1;\n this.currentStencilSource = void 0;\n var matrix = performance2.create();\n performance2.ortho(matrix, 0, this.width, this.height, 0, 0, 1);\n performance2.scale(matrix, matrix, [\n gl2.drawingBufferWidth,\n gl2.drawingBufferHeight,\n 0\n ]);\n this.useProgram(\"clippingMask\").draw(context, gl2.TRIANGLES, DepthMode.disabled, this.stencilClearMode, ColorMode.disabled, CullFaceMode.disabled, clippingMaskUniformValues(matrix), \"$clipping\", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments);\n };\n Painter.prototype._renderTileClippingMasks = function _renderTileClippingMasks(layer, tileIDs) {\n if (this.currentStencilSource === layer.source || !layer.isTileClipped() || !tileIDs || !tileIDs.length) {\n return;\n }\n this.currentStencilSource = layer.source;\n var context = this.context;\n var gl2 = context.gl;\n if (this.nextStencilID + tileIDs.length > 256) {\n this.clearStencil();\n }\n context.setColorMode(ColorMode.disabled);\n context.setDepthMode(DepthMode.disabled);\n var program = this.useProgram(\"clippingMask\");\n this._tileClippingMaskIDs = {};\n for (var i = 0, list = tileIDs; i < list.length; i += 1) {\n var tileID = list[i];\n var id = this._tileClippingMaskIDs[tileID.key] = this.nextStencilID++;\n program.draw(context, gl2.TRIANGLES, DepthMode.disabled, new StencilMode({\n func: gl2.ALWAYS,\n mask: 0\n }, id, 255, gl2.KEEP, gl2.KEEP, gl2.REPLACE), ColorMode.disabled, CullFaceMode.disabled, clippingMaskUniformValues(tileID.posMatrix), \"$clipping\", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments);\n }\n };\n Painter.prototype.stencilModeFor3D = function stencilModeFor3D() {\n this.currentStencilSource = void 0;\n if (this.nextStencilID + 1 > 256) {\n this.clearStencil();\n }\n var id = this.nextStencilID++;\n var gl2 = this.context.gl;\n return new StencilMode({\n func: gl2.NOTEQUAL,\n mask: 255\n }, id, 255, gl2.KEEP, gl2.KEEP, gl2.REPLACE);\n };\n Painter.prototype.stencilModeForClipping = function stencilModeForClipping(tileID) {\n var gl2 = this.context.gl;\n return new StencilMode({\n func: gl2.EQUAL,\n mask: 255\n }, this._tileClippingMaskIDs[tileID.key], 0, gl2.KEEP, gl2.KEEP, gl2.REPLACE);\n };\n Painter.prototype.stencilConfigForOverlap = function stencilConfigForOverlap(tileIDs) {\n var obj;\n var gl2 = this.context.gl;\n var coords = tileIDs.sort(function(a, b) {\n return b.overscaledZ - a.overscaledZ;\n });\n var minTileZ = coords[coords.length - 1].overscaledZ;\n var stencilValues = coords[0].overscaledZ - minTileZ + 1;\n if (stencilValues > 1) {\n this.currentStencilSource = void 0;\n if (this.nextStencilID + stencilValues > 256) {\n this.clearStencil();\n }\n var zToStencilMode = {};\n for (var i = 0; i < stencilValues; i++) {\n zToStencilMode[i + minTileZ] = new StencilMode({\n func: gl2.GEQUAL,\n mask: 255\n }, i + this.nextStencilID, 255, gl2.KEEP, gl2.KEEP, gl2.REPLACE);\n }\n this.nextStencilID += stencilValues;\n return [\n zToStencilMode,\n coords\n ];\n }\n return [\n (obj = {}, obj[minTileZ] = StencilMode.disabled, obj),\n coords\n ];\n };\n Painter.prototype.colorModeForRenderPass = function colorModeForRenderPass() {\n var gl2 = this.context.gl;\n if (this._showOverdrawInspector) {\n var numOverdrawSteps = 8;\n var a = 1 / numOverdrawSteps;\n return new ColorMode([\n gl2.CONSTANT_COLOR,\n gl2.ONE\n ], new performance2.Color(a, a, a, 0), [\n true,\n true,\n true,\n true\n ]);\n } else if (this.renderPass === \"opaque\") {\n return ColorMode.unblended;\n } else {\n return ColorMode.alphaBlended;\n }\n };\n Painter.prototype.depthModeForSublayer = function depthModeForSublayer(n, mask, func) {\n if (!this.opaquePassEnabledForLayer()) {\n return DepthMode.disabled;\n }\n var depth = 1 - ((1 + this.currentLayer) * this.numSublayers + n) * this.depthEpsilon;\n return new DepthMode(func || this.context.gl.LEQUAL, mask, [\n depth,\n depth\n ]);\n };\n Painter.prototype.opaquePassEnabledForLayer = function opaquePassEnabledForLayer() {\n return this.currentLayer < this.opaquePassCutoff;\n };\n Painter.prototype.render = function render(style, options) {\n var this$1 = this;\n this.style = style;\n this.options = options;\n this.lineAtlas = style.lineAtlas;\n this.imageManager = style.imageManager;\n this.glyphManager = style.glyphManager;\n this.symbolFadeChange = style.placement.symbolFadeChange(performance2.browser.now());\n this.imageManager.beginFrame();\n var layerIds = this.style._order;\n var sourceCaches = this.style.sourceCaches;\n for (var id in sourceCaches) {\n var sourceCache = sourceCaches[id];\n if (sourceCache.used) {\n sourceCache.prepare(this.context);\n }\n }\n var coordsAscending = {};\n var coordsDescending = {};\n var coordsDescendingSymbol = {};\n for (var id$1 in sourceCaches) {\n var sourceCache$1 = sourceCaches[id$1];\n coordsAscending[id$1] = sourceCache$1.getVisibleCoordinates();\n coordsDescending[id$1] = coordsAscending[id$1].slice().reverse();\n coordsDescendingSymbol[id$1] = sourceCache$1.getVisibleCoordinates(true).reverse();\n }\n this.opaquePassCutoff = Infinity;\n for (var i = 0; i < layerIds.length; i++) {\n var layerId = layerIds[i];\n if (this.style._layers[layerId].is3D()) {\n this.opaquePassCutoff = i;\n break;\n }\n }\n this.renderPass = \"offscreen\";\n for (var i$1 = 0, list = layerIds; i$1 < list.length; i$1 += 1) {\n var layerId$1 = list[i$1];\n var layer = this.style._layers[layerId$1];\n if (!layer.hasOffscreenPass() || layer.isHidden(this.transform.zoom)) {\n continue;\n }\n var coords = coordsDescending[layer.source];\n if (layer.type !== \"custom\" && !coords.length) {\n continue;\n }\n this.renderLayer(this, sourceCaches[layer.source], layer, coords);\n }\n this.context.bindFramebuffer.set(null);\n this.context.clear({\n color: options.showOverdrawInspector ? performance2.Color.black : performance2.Color.transparent,\n depth: 1\n });\n this.clearStencil();\n this._showOverdrawInspector = options.showOverdrawInspector;\n this.depthRangeFor3D = [\n 0,\n 1 - (style._order.length + 2) * this.numSublayers * this.depthEpsilon\n ];\n this.renderPass = \"opaque\";\n for (this.currentLayer = layerIds.length - 1; this.currentLayer >= 0; this.currentLayer--) {\n var layer$1 = this.style._layers[layerIds[this.currentLayer]];\n var sourceCache$2 = sourceCaches[layer$1.source];\n var coords$1 = coordsAscending[layer$1.source];\n this._renderTileClippingMasks(layer$1, coords$1);\n this.renderLayer(this, sourceCache$2, layer$1, coords$1);\n }\n this.renderPass = \"translucent\";\n for (this.currentLayer = 0; this.currentLayer < layerIds.length; this.currentLayer++) {\n var layer$2 = this.style._layers[layerIds[this.currentLayer]];\n var sourceCache$3 = sourceCaches[layer$2.source];\n var coords$2 = (layer$2.type === \"symbol\" ? coordsDescendingSymbol : coordsDescending)[layer$2.source];\n this._renderTileClippingMasks(layer$2, coordsAscending[layer$2.source]);\n this.renderLayer(this, sourceCache$3, layer$2, coords$2);\n }\n if (this.options.showTileBoundaries) {\n var selectedSource;\n var sourceCache$4;\n var layers = performance2.values(this.style._layers);\n layers.forEach(function(layer2) {\n if (layer2.source && !layer2.isHidden(this$1.transform.zoom)) {\n if (layer2.source !== (sourceCache$4 && sourceCache$4.id)) {\n sourceCache$4 = this$1.style.sourceCaches[layer2.source];\n }\n if (!selectedSource || selectedSource.getSource().maxzoom < sourceCache$4.getSource().maxzoom) {\n selectedSource = sourceCache$4;\n }\n }\n });\n if (selectedSource) {\n draw$1.debug(this, selectedSource, selectedSource.getVisibleCoordinates());\n }\n }\n if (this.options.showPadding) {\n drawDebugPadding(this);\n }\n this.context.setDefault();\n };\n Painter.prototype.renderLayer = function renderLayer(painter, sourceCache, layer, coords) {\n if (layer.isHidden(this.transform.zoom)) {\n return;\n }\n if (layer.type !== \"background\" && layer.type !== \"custom\" && !coords.length) {\n return;\n }\n this.id = layer.id;\n this.gpuTimingStart(layer);\n draw$1[layer.type](painter, sourceCache, layer, coords, this.style.placement.variableOffsets);\n this.gpuTimingEnd();\n };\n Painter.prototype.gpuTimingStart = function gpuTimingStart(layer) {\n if (!this.options.gpuTiming) {\n return;\n }\n var ext = this.context.extTimerQuery;\n var layerTimer = this.gpuTimers[layer.id];\n if (!layerTimer) {\n layerTimer = this.gpuTimers[layer.id] = {\n calls: 0,\n cpuTime: 0,\n query: ext.createQueryEXT()\n };\n }\n layerTimer.calls++;\n ext.beginQueryEXT(ext.TIME_ELAPSED_EXT, layerTimer.query);\n };\n Painter.prototype.gpuTimingEnd = function gpuTimingEnd() {\n if (!this.options.gpuTiming) {\n return;\n }\n var ext = this.context.extTimerQuery;\n ext.endQueryEXT(ext.TIME_ELAPSED_EXT);\n };\n Painter.prototype.collectGpuTimers = function collectGpuTimers() {\n var currentLayerTimers = this.gpuTimers;\n this.gpuTimers = {};\n return currentLayerTimers;\n };\n Painter.prototype.queryGpuTimers = function queryGpuTimers(gpuTimers) {\n var layers = {};\n for (var layerId in gpuTimers) {\n var gpuTimer = gpuTimers[layerId];\n var ext = this.context.extTimerQuery;\n var gpuTime = ext.getQueryObjectEXT(gpuTimer.query, ext.QUERY_RESULT_EXT) / (1e3 * 1e3);\n ext.deleteQueryEXT(gpuTimer.query);\n layers[layerId] = gpuTime;\n }\n return layers;\n };\n Painter.prototype.translatePosMatrix = function translatePosMatrix(matrix, tile, translate, translateAnchor, inViewportPixelUnitsUnits) {\n if (!translate[0] && !translate[1]) {\n return matrix;\n }\n var angle = inViewportPixelUnitsUnits ? translateAnchor === \"map\" ? this.transform.angle : 0 : translateAnchor === \"viewport\" ? -this.transform.angle : 0;\n if (angle) {\n var sinA = Math.sin(angle);\n var cosA = Math.cos(angle);\n translate = [\n translate[0] * cosA - translate[1] * sinA,\n translate[0] * sinA + translate[1] * cosA\n ];\n }\n var translation = [\n inViewportPixelUnitsUnits ? translate[0] : pixelsToTileUnits(tile, translate[0], this.transform.zoom),\n inViewportPixelUnitsUnits ? translate[1] : pixelsToTileUnits(tile, translate[1], this.transform.zoom),\n 0\n ];\n var translatedMatrix = new Float32Array(16);\n performance2.translate(translatedMatrix, matrix, translation);\n return translatedMatrix;\n };\n Painter.prototype.saveTileTexture = function saveTileTexture(texture) {\n var textures = this._tileTextures[texture.size[0]];\n if (!textures) {\n this._tileTextures[texture.size[0]] = [texture];\n } else {\n textures.push(texture);\n }\n };\n Painter.prototype.getTileTexture = function getTileTexture(size) {\n var textures = this._tileTextures[size];\n return textures && textures.length > 0 ? textures.pop() : null;\n };\n Painter.prototype.isPatternMissing = function isPatternMissing(image) {\n if (!image) {\n return false;\n }\n if (!image.from || !image.to) {\n return true;\n }\n var imagePosA = this.imageManager.getPattern(image.from.toString());\n var imagePosB = this.imageManager.getPattern(image.to.toString());\n return !imagePosA || !imagePosB;\n };\n Painter.prototype.useProgram = function useProgram(name2, programConfiguration) {\n this.cache = this.cache || {};\n var key = \"\" + name2 + (programConfiguration ? programConfiguration.cacheKey : \"\") + (this._showOverdrawInspector ? \"/overdraw\" : \"\");\n if (!this.cache[key]) {\n this.cache[key] = new Program$1(this.context, name2, shaders[name2], programConfiguration, programUniforms[name2], this._showOverdrawInspector);\n }\n return this.cache[key];\n };\n Painter.prototype.setCustomLayerDefaults = function setCustomLayerDefaults() {\n this.context.unbindVAO();\n this.context.cullFace.setDefault();\n this.context.activeTexture.setDefault();\n this.context.pixelStoreUnpack.setDefault();\n this.context.pixelStoreUnpackPremultiplyAlpha.setDefault();\n this.context.pixelStoreUnpackFlipY.setDefault();\n };\n Painter.prototype.setBaseState = function setBaseState() {\n var gl2 = this.context.gl;\n this.context.cullFace.set(false);\n this.context.viewport.set([\n 0,\n 0,\n this.width,\n this.height\n ]);\n this.context.blendEquation.set(gl2.FUNC_ADD);\n };\n Painter.prototype.initDebugOverlayCanvas = function initDebugOverlayCanvas() {\n if (this.debugOverlayCanvas == null) {\n this.debugOverlayCanvas = performance2.window.document.createElement(\"canvas\");\n this.debugOverlayCanvas.width = 512;\n this.debugOverlayCanvas.height = 512;\n var gl2 = this.context.gl;\n this.debugOverlayTexture = new performance2.Texture(this.context, this.debugOverlayCanvas, gl2.RGBA);\n }\n };\n Painter.prototype.destroy = function destroy() {\n this.emptyTexture.destroy();\n if (this.debugOverlayTexture) {\n this.debugOverlayTexture.destroy();\n }\n };\n var Frustum = function Frustum2(points_, planes_) {\n this.points = points_;\n this.planes = planes_;\n };\n Frustum.fromInvProjectionMatrix = function fromInvProjectionMatrix(invProj, worldSize, zoom) {\n var clipSpaceCorners = [\n [\n -1,\n 1,\n -1,\n 1\n ],\n [\n 1,\n 1,\n -1,\n 1\n ],\n [\n 1,\n -1,\n -1,\n 1\n ],\n [\n -1,\n -1,\n -1,\n 1\n ],\n [\n -1,\n 1,\n 1,\n 1\n ],\n [\n 1,\n 1,\n 1,\n 1\n ],\n [\n 1,\n -1,\n 1,\n 1\n ],\n [\n -1,\n -1,\n 1,\n 1\n ]\n ];\n var scale = Math.pow(2, zoom);\n var frustumCoords = clipSpaceCorners.map(function(v) {\n return performance2.transformMat4([], v, invProj);\n }).map(function(v) {\n return performance2.scale$1([], v, 1 / v[3] / worldSize * scale);\n });\n var frustumPlanePointIndices = [\n [\n 0,\n 1,\n 2\n ],\n [\n 6,\n 5,\n 4\n ],\n [\n 0,\n 3,\n 7\n ],\n [\n 2,\n 1,\n 5\n ],\n [\n 3,\n 2,\n 6\n ],\n [\n 0,\n 4,\n 5\n ]\n ];\n var frustumPlanes = frustumPlanePointIndices.map(function(p) {\n var a = performance2.sub([], frustumCoords[p[0]], frustumCoords[p[1]]);\n var b = performance2.sub([], frustumCoords[p[2]], frustumCoords[p[1]]);\n var n = performance2.normalize([], performance2.cross([], a, b));\n var d = -performance2.dot(n, frustumCoords[p[1]]);\n return n.concat(d);\n });\n return new Frustum(frustumCoords, frustumPlanes);\n };\n var Aabb = function Aabb2(min_, max_) {\n this.min = min_;\n this.max = max_;\n this.center = performance2.scale$2([], performance2.add([], this.min, this.max), 0.5);\n };\n Aabb.prototype.quadrant = function quadrant(index) {\n var split = [\n index % 2 === 0,\n index < 2\n ];\n var qMin = performance2.clone$2(this.min);\n var qMax = performance2.clone$2(this.max);\n for (var axis = 0; axis < split.length; axis++) {\n qMin[axis] = split[axis] ? this.min[axis] : this.center[axis];\n qMax[axis] = split[axis] ? this.center[axis] : this.max[axis];\n }\n qMax[2] = this.max[2];\n return new Aabb(qMin, qMax);\n };\n Aabb.prototype.distanceX = function distanceX(point) {\n var pointOnAabb = Math.max(Math.min(this.max[0], point[0]), this.min[0]);\n return pointOnAabb - point[0];\n };\n Aabb.prototype.distanceY = function distanceY(point) {\n var pointOnAabb = Math.max(Math.min(this.max[1], point[1]), this.min[1]);\n return pointOnAabb - point[1];\n };\n Aabb.prototype.intersects = function intersects(frustum) {\n var aabbPoints = [\n [\n this.min[0],\n this.min[1],\n 0,\n 1\n ],\n [\n this.max[0],\n this.min[1],\n 0,\n 1\n ],\n [\n this.max[0],\n this.max[1],\n 0,\n 1\n ],\n [\n this.min[0],\n this.max[1],\n 0,\n 1\n ]\n ];\n var fullyInside = true;\n for (var p = 0; p < frustum.planes.length; p++) {\n var plane = frustum.planes[p];\n var pointsInside = 0;\n for (var i = 0; i < aabbPoints.length; i++) {\n pointsInside += performance2.dot$1(plane, aabbPoints[i]) >= 0;\n }\n if (pointsInside === 0) {\n return 0;\n }\n if (pointsInside !== aabbPoints.length) {\n fullyInside = false;\n }\n }\n if (fullyInside) {\n return 2;\n }\n for (var axis = 0; axis < 3; axis++) {\n var projMin = Number.MAX_VALUE;\n var projMax = -Number.MAX_VALUE;\n for (var p$1 = 0; p$1 < frustum.points.length; p$1++) {\n var projectedPoint = frustum.points[p$1][axis] - this.min[axis];\n projMin = Math.min(projMin, projectedPoint);\n projMax = Math.max(projMax, projectedPoint);\n }\n if (projMax < 0 || projMin > this.max[axis] - this.min[axis]) {\n return 0;\n }\n }\n return 1;\n };\n var EdgeInsets = function EdgeInsets2(top, bottom, left, right) {\n if (top === void 0)\n top = 0;\n if (bottom === void 0)\n bottom = 0;\n if (left === void 0)\n left = 0;\n if (right === void 0)\n right = 0;\n if (isNaN(top) || top < 0 || isNaN(bottom) || bottom < 0 || isNaN(left) || left < 0 || isNaN(right) || right < 0) {\n throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");\n }\n this.top = top;\n this.bottom = bottom;\n this.left = left;\n this.right = right;\n };\n EdgeInsets.prototype.interpolate = function interpolate(start, target, t) {\n if (target.top != null && start.top != null) {\n this.top = performance2.number(start.top, target.top, t);\n }\n if (target.bottom != null && start.bottom != null) {\n this.bottom = performance2.number(start.bottom, target.bottom, t);\n }\n if (target.left != null && start.left != null) {\n this.left = performance2.number(start.left, target.left, t);\n }\n if (target.right != null && start.right != null) {\n this.right = performance2.number(start.right, target.right, t);\n }\n return this;\n };\n EdgeInsets.prototype.getCenter = function getCenter(width, height) {\n var x = performance2.clamp((this.left + width - this.right) / 2, 0, width);\n var y = performance2.clamp((this.top + height - this.bottom) / 2, 0, height);\n return new performance2.Point(x, y);\n };\n EdgeInsets.prototype.equals = function equals(other) {\n return this.top === other.top && this.bottom === other.bottom && this.left === other.left && this.right === other.right;\n };\n EdgeInsets.prototype.clone = function clone() {\n return new EdgeInsets(this.top, this.bottom, this.left, this.right);\n };\n EdgeInsets.prototype.toJSON = function toJSON() {\n return {\n top: this.top,\n bottom: this.bottom,\n left: this.left,\n right: this.right\n };\n };\n var Transform = function Transform2(minZoom, maxZoom, minPitch, maxPitch, renderWorldCopies) {\n this.tileSize = 512;\n this.maxValidLatitude = 85.051129;\n this._renderWorldCopies = renderWorldCopies === void 0 ? true : renderWorldCopies;\n this._minZoom = minZoom || 0;\n this._maxZoom = maxZoom || 22;\n this._minPitch = minPitch === void 0 || minPitch === null ? 0 : minPitch;\n this._maxPitch = maxPitch === void 0 || maxPitch === null ? 60 : maxPitch;\n this.setMaxBounds();\n this.width = 0;\n this.height = 0;\n this._center = new performance2.LngLat(0, 0);\n this.zoom = 0;\n this.angle = 0;\n this._fov = 0.6435011087932844;\n this._pitch = 0;\n this._unmodified = true;\n this._edgeInsets = new EdgeInsets();\n this._posMatrixCache = {};\n this._alignedPosMatrixCache = {};\n };\n var prototypeAccessors = {\n minZoom: { configurable: true },\n maxZoom: { configurable: true },\n minPitch: { configurable: true },\n maxPitch: { configurable: true },\n renderWorldCopies: { configurable: true },\n worldSize: { configurable: true },\n centerOffset: { configurable: true },\n size: { configurable: true },\n bearing: { configurable: true },\n pitch: { configurable: true },\n fov: { configurable: true },\n zoom: { configurable: true },\n center: { configurable: true },\n padding: { configurable: true },\n centerPoint: { configurable: true },\n unmodified: { configurable: true },\n point: { configurable: true }\n };\n Transform.prototype.clone = function clone() {\n var clone2 = new Transform(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies);\n clone2.tileSize = this.tileSize;\n clone2.latRange = this.latRange;\n clone2.width = this.width;\n clone2.height = this.height;\n clone2._center = this._center;\n clone2.zoom = this.zoom;\n clone2.angle = this.angle;\n clone2._fov = this._fov;\n clone2._pitch = this._pitch;\n clone2._unmodified = this._unmodified;\n clone2._edgeInsets = this._edgeInsets.clone();\n clone2._calcMatrices();\n return clone2;\n };\n prototypeAccessors.minZoom.get = function() {\n return this._minZoom;\n };\n prototypeAccessors.minZoom.set = function(zoom) {\n if (this._minZoom === zoom) {\n return;\n }\n this._minZoom = zoom;\n this.zoom = Math.max(this.zoom, zoom);\n };\n prototypeAccessors.maxZoom.get = function() {\n return this._maxZoom;\n };\n prototypeAccessors.maxZoom.set = function(zoom) {\n if (this._maxZoom === zoom) {\n return;\n }\n this._maxZoom = zoom;\n this.zoom = Math.min(this.zoom, zoom);\n };\n prototypeAccessors.minPitch.get = function() {\n return this._minPitch;\n };\n prototypeAccessors.minPitch.set = function(pitch) {\n if (this._minPitch === pitch) {\n return;\n }\n this._minPitch = pitch;\n this.pitch = Math.max(this.pitch, pitch);\n };\n prototypeAccessors.maxPitch.get = function() {\n return this._maxPitch;\n };\n prototypeAccessors.maxPitch.set = function(pitch) {\n if (this._maxPitch === pitch) {\n return;\n }\n this._maxPitch = pitch;\n this.pitch = Math.min(this.pitch, pitch);\n };\n prototypeAccessors.renderWorldCopies.get = function() {\n return this._renderWorldCopies;\n };\n prototypeAccessors.renderWorldCopies.set = function(renderWorldCopies) {\n if (renderWorldCopies === void 0) {\n renderWorldCopies = true;\n } else if (renderWorldCopies === null) {\n renderWorldCopies = false;\n }\n this._renderWorldCopies = renderWorldCopies;\n };\n prototypeAccessors.worldSize.get = function() {\n return this.tileSize * this.scale;\n };\n prototypeAccessors.centerOffset.get = function() {\n return this.centerPoint._sub(this.size._div(2));\n };\n prototypeAccessors.size.get = function() {\n return new performance2.Point(this.width, this.height);\n };\n prototypeAccessors.bearing.get = function() {\n return -this.angle / Math.PI * 180;\n };\n prototypeAccessors.bearing.set = function(bearing) {\n var b = -performance2.wrap(bearing, -180, 180) * Math.PI / 180;\n if (this.angle === b) {\n return;\n }\n this._unmodified = false;\n this.angle = b;\n this._calcMatrices();\n this.rotationMatrix = performance2.create$2();\n performance2.rotate(this.rotationMatrix, this.rotationMatrix, this.angle);\n };\n prototypeAccessors.pitch.get = function() {\n return this._pitch / Math.PI * 180;\n };\n prototypeAccessors.pitch.set = function(pitch) {\n var p = performance2.clamp(pitch, this.minPitch, this.maxPitch) / 180 * Math.PI;\n if (this._pitch === p) {\n return;\n }\n this._unmodified = false;\n this._pitch = p;\n this._calcMatrices();\n };\n prototypeAccessors.fov.get = function() {\n return this._fov / Math.PI * 180;\n };\n prototypeAccessors.fov.set = function(fov) {\n fov = Math.max(0.01, Math.min(60, fov));\n if (this._fov === fov) {\n return;\n }\n this._unmodified = false;\n this._fov = fov / 180 * Math.PI;\n this._calcMatrices();\n };\n prototypeAccessors.zoom.get = function() {\n return this._zoom;\n };\n prototypeAccessors.zoom.set = function(zoom) {\n var z = Math.min(Math.max(zoom, this.minZoom), this.maxZoom);\n if (this._zoom === z) {\n return;\n }\n this._unmodified = false;\n this._zoom = z;\n this.scale = this.zoomScale(z);\n this.tileZoom = Math.floor(z);\n this.zoomFraction = z - this.tileZoom;\n this._constrain();\n this._calcMatrices();\n };\n prototypeAccessors.center.get = function() {\n return this._center;\n };\n prototypeAccessors.center.set = function(center) {\n if (center.lat === this._center.lat && center.lng === this._center.lng) {\n return;\n }\n this._unmodified = false;\n this._center = center;\n this._constrain();\n this._calcMatrices();\n };\n prototypeAccessors.padding.get = function() {\n return this._edgeInsets.toJSON();\n };\n prototypeAccessors.padding.set = function(padding2) {\n if (this._edgeInsets.equals(padding2)) {\n return;\n }\n this._unmodified = false;\n this._edgeInsets.interpolate(this._edgeInsets, padding2, 1);\n this._calcMatrices();\n };\n prototypeAccessors.centerPoint.get = function() {\n return this._edgeInsets.getCenter(this.width, this.height);\n };\n Transform.prototype.isPaddingEqual = function isPaddingEqual(padding2) {\n return this._edgeInsets.equals(padding2);\n };\n Transform.prototype.interpolatePadding = function interpolatePadding(start, target, t) {\n this._unmodified = false;\n this._edgeInsets.interpolate(start, target, t);\n this._constrain();\n this._calcMatrices();\n };\n Transform.prototype.coveringZoomLevel = function coveringZoomLevel(options) {\n var z = (options.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / options.tileSize));\n return Math.max(0, z);\n };\n Transform.prototype.getVisibleUnwrappedCoordinates = function getVisibleUnwrappedCoordinates(tileID) {\n var result = [new performance2.UnwrappedTileID(0, tileID)];\n if (this._renderWorldCopies) {\n var utl = this.pointCoordinate(new performance2.Point(0, 0));\n var utr = this.pointCoordinate(new performance2.Point(this.width, 0));\n var ubl = this.pointCoordinate(new performance2.Point(this.width, this.height));\n var ubr = this.pointCoordinate(new performance2.Point(0, this.height));\n var w0 = Math.floor(Math.min(utl.x, utr.x, ubl.x, ubr.x));\n var w1 = Math.floor(Math.max(utl.x, utr.x, ubl.x, ubr.x));\n var extraWorldCopy = 1;\n for (var w = w0 - extraWorldCopy; w <= w1 + extraWorldCopy; w++) {\n if (w === 0) {\n continue;\n }\n result.push(new performance2.UnwrappedTileID(w, tileID));\n }\n }\n return result;\n };\n Transform.prototype.coveringTiles = function coveringTiles(options) {\n var z = this.coveringZoomLevel(options);\n var actualZ = z;\n if (options.minzoom !== void 0 && z < options.minzoom) {\n return [];\n }\n if (options.maxzoom !== void 0 && z > options.maxzoom) {\n z = options.maxzoom;\n }\n var centerCoord = performance2.MercatorCoordinate.fromLngLat(this.center);\n var numTiles = Math.pow(2, z);\n var centerPoint = [\n numTiles * centerCoord.x,\n numTiles * centerCoord.y,\n 0\n ];\n var cameraFrustum = Frustum.fromInvProjectionMatrix(this.invProjMatrix, this.worldSize, z);\n var minZoom = options.minzoom || 0;\n if (this.pitch <= 60 && this._edgeInsets.top < 0.1) {\n minZoom = z;\n }\n var radiusOfMaxLvlLodInTiles = 3;\n var newRootTile = function(wrap) {\n return {\n aabb: new Aabb([\n wrap * numTiles,\n 0,\n 0\n ], [\n (wrap + 1) * numTiles,\n numTiles,\n 0\n ]),\n zoom: 0,\n x: 0,\n y: 0,\n wrap,\n fullyVisible: false\n };\n };\n var stack = [];\n var result = [];\n var maxZoom = z;\n var overscaledZ = options.reparseOverscaled ? actualZ : z;\n if (this._renderWorldCopies) {\n for (var i = 1; i <= 3; i++) {\n stack.push(newRootTile(-i));\n stack.push(newRootTile(i));\n }\n }\n stack.push(newRootTile(0));\n while (stack.length > 0) {\n var it = stack.pop();\n var x = it.x;\n var y = it.y;\n var fullyVisible = it.fullyVisible;\n if (!fullyVisible) {\n var intersectResult = it.aabb.intersects(cameraFrustum);\n if (intersectResult === 0) {\n continue;\n }\n fullyVisible = intersectResult === 2;\n }\n var distanceX = it.aabb.distanceX(centerPoint);\n var distanceY = it.aabb.distanceY(centerPoint);\n var longestDim = Math.max(Math.abs(distanceX), Math.abs(distanceY));\n var distToSplit = radiusOfMaxLvlLodInTiles + (1 << maxZoom - it.zoom) - 2;\n if (it.zoom === maxZoom || longestDim > distToSplit && it.zoom >= minZoom) {\n result.push({\n tileID: new performance2.OverscaledTileID(it.zoom === maxZoom ? overscaledZ : it.zoom, it.wrap, it.zoom, x, y),\n distanceSq: performance2.sqrLen([\n centerPoint[0] - 0.5 - x,\n centerPoint[1] - 0.5 - y\n ])\n });\n continue;\n }\n for (var i$1 = 0; i$1 < 4; i$1++) {\n var childX = (x << 1) + i$1 % 2;\n var childY = (y << 1) + (i$1 >> 1);\n stack.push({\n aabb: it.aabb.quadrant(i$1),\n zoom: it.zoom + 1,\n x: childX,\n y: childY,\n wrap: it.wrap,\n fullyVisible\n });\n }\n }\n return result.sort(function(a, b) {\n return a.distanceSq - b.distanceSq;\n }).map(function(a) {\n return a.tileID;\n });\n };\n Transform.prototype.resize = function resize(width, height) {\n this.width = width;\n this.height = height;\n this.pixelsToGLUnits = [\n 2 / width,\n -2 / height\n ];\n this._constrain();\n this._calcMatrices();\n };\n prototypeAccessors.unmodified.get = function() {\n return this._unmodified;\n };\n Transform.prototype.zoomScale = function zoomScale(zoom) {\n return Math.pow(2, zoom);\n };\n Transform.prototype.scaleZoom = function scaleZoom(scale) {\n return Math.log(scale) / Math.LN2;\n };\n Transform.prototype.project = function project2(lnglat) {\n var lat = performance2.clamp(lnglat.lat, -this.maxValidLatitude, this.maxValidLatitude);\n return new performance2.Point(performance2.mercatorXfromLng(lnglat.lng) * this.worldSize, performance2.mercatorYfromLat(lat) * this.worldSize);\n };\n Transform.prototype.unproject = function unproject(point) {\n return new performance2.MercatorCoordinate(point.x / this.worldSize, point.y / this.worldSize).toLngLat();\n };\n prototypeAccessors.point.get = function() {\n return this.project(this.center);\n };\n Transform.prototype.setLocationAtPoint = function setLocationAtPoint(lnglat, point) {\n var a = this.pointCoordinate(point);\n var b = this.pointCoordinate(this.centerPoint);\n var loc = this.locationCoordinate(lnglat);\n var newCenter = new performance2.MercatorCoordinate(loc.x - (a.x - b.x), loc.y - (a.y - b.y));\n this.center = this.coordinateLocation(newCenter);\n if (this._renderWorldCopies) {\n this.center = this.center.wrap();\n }\n };\n Transform.prototype.locationPoint = function locationPoint(lnglat) {\n return this.coordinatePoint(this.locationCoordinate(lnglat));\n };\n Transform.prototype.pointLocation = function pointLocation(p) {\n return this.coordinateLocation(this.pointCoordinate(p));\n };\n Transform.prototype.locationCoordinate = function locationCoordinate(lnglat) {\n return performance2.MercatorCoordinate.fromLngLat(lnglat);\n };\n Transform.prototype.coordinateLocation = function coordinateLocation(coord) {\n return coord.toLngLat();\n };\n Transform.prototype.pointCoordinate = function pointCoordinate(p) {\n var targetZ = 0;\n var coord0 = [\n p.x,\n p.y,\n 0,\n 1\n ];\n var coord1 = [\n p.x,\n p.y,\n 1,\n 1\n ];\n performance2.transformMat4(coord0, coord0, this.pixelMatrixInverse);\n performance2.transformMat4(coord1, coord1, this.pixelMatrixInverse);\n var w0 = coord0[3];\n var w1 = coord1[3];\n var x0 = coord0[0] / w0;\n var x1 = coord1[0] / w1;\n var y0 = coord0[1] / w0;\n var y1 = coord1[1] / w1;\n var z0 = coord0[2] / w0;\n var z1 = coord1[2] / w1;\n var t = z0 === z1 ? 0 : (targetZ - z0) / (z1 - z0);\n return new performance2.MercatorCoordinate(performance2.number(x0, x1, t) / this.worldSize, performance2.number(y0, y1, t) / this.worldSize);\n };\n Transform.prototype.coordinatePoint = function coordinatePoint(coord) {\n var p = [\n coord.x * this.worldSize,\n coord.y * this.worldSize,\n 0,\n 1\n ];\n performance2.transformMat4(p, p, this.pixelMatrix);\n return new performance2.Point(p[0] / p[3], p[1] / p[3]);\n };\n Transform.prototype.getBounds = function getBounds() {\n return new performance2.LngLatBounds().extend(this.pointLocation(new performance2.Point(0, 0))).extend(this.pointLocation(new performance2.Point(this.width, 0))).extend(this.pointLocation(new performance2.Point(this.width, this.height))).extend(this.pointLocation(new performance2.Point(0, this.height)));\n };\n Transform.prototype.getMaxBounds = function getMaxBounds() {\n if (!this.latRange || this.latRange.length !== 2 || !this.lngRange || this.lngRange.length !== 2) {\n return null;\n }\n return new performance2.LngLatBounds([\n this.lngRange[0],\n this.latRange[0]\n ], [\n this.lngRange[1],\n this.latRange[1]\n ]);\n };\n Transform.prototype.setMaxBounds = function setMaxBounds(bounds) {\n if (bounds) {\n this.lngRange = [\n bounds.getWest(),\n bounds.getEast()\n ];\n this.latRange = [\n bounds.getSouth(),\n bounds.getNorth()\n ];\n this._constrain();\n } else {\n this.lngRange = null;\n this.latRange = [\n -this.maxValidLatitude,\n this.maxValidLatitude\n ];\n }\n };\n Transform.prototype.calculatePosMatrix = function calculatePosMatrix(unwrappedTileID, aligned) {\n if (aligned === void 0)\n aligned = false;\n var posMatrixKey = unwrappedTileID.key;\n var cache = aligned ? this._alignedPosMatrixCache : this._posMatrixCache;\n if (cache[posMatrixKey]) {\n return cache[posMatrixKey];\n }\n var canonical = unwrappedTileID.canonical;\n var scale = this.worldSize / this.zoomScale(canonical.z);\n var unwrappedX = canonical.x + Math.pow(2, canonical.z) * unwrappedTileID.wrap;\n var posMatrix = performance2.identity(new Float64Array(16));\n performance2.translate(posMatrix, posMatrix, [\n unwrappedX * scale,\n canonical.y * scale,\n 0\n ]);\n performance2.scale(posMatrix, posMatrix, [\n scale / performance2.EXTENT,\n scale / performance2.EXTENT,\n 1\n ]);\n performance2.multiply(posMatrix, aligned ? this.alignedProjMatrix : this.projMatrix, posMatrix);\n cache[posMatrixKey] = new Float32Array(posMatrix);\n return cache[posMatrixKey];\n };\n Transform.prototype.customLayerMatrix = function customLayerMatrix() {\n return this.mercatorMatrix.slice();\n };\n Transform.prototype._constrain = function _constrain() {\n if (!this.center || !this.width || !this.height || this._constraining) {\n return;\n }\n this._constraining = true;\n var minY = -90;\n var maxY = 90;\n var minX = -180;\n var maxX = 180;\n var sy, sx, x2, y2;\n var size = this.size, unmodified = this._unmodified;\n if (this.latRange) {\n var latRange = this.latRange;\n minY = performance2.mercatorYfromLat(latRange[1]) * this.worldSize;\n maxY = performance2.mercatorYfromLat(latRange[0]) * this.worldSize;\n sy = maxY - minY < size.y ? size.y / (maxY - minY) : 0;\n }\n if (this.lngRange) {\n var lngRange = this.lngRange;\n minX = performance2.mercatorXfromLng(lngRange[0]) * this.worldSize;\n maxX = performance2.mercatorXfromLng(lngRange[1]) * this.worldSize;\n sx = maxX - minX < size.x ? size.x / (maxX - minX) : 0;\n }\n var point = this.point;\n var s = Math.max(sx || 0, sy || 0);\n if (s) {\n this.center = this.unproject(new performance2.Point(sx ? (maxX + minX) / 2 : point.x, sy ? (maxY + minY) / 2 : point.y));\n this.zoom += this.scaleZoom(s);\n this._unmodified = unmodified;\n this._constraining = false;\n return;\n }\n if (this.latRange) {\n var y = point.y, h2 = size.y / 2;\n if (y - h2 < minY) {\n y2 = minY + h2;\n }\n if (y + h2 > maxY) {\n y2 = maxY - h2;\n }\n }\n if (this.lngRange) {\n var x = point.x, w2 = size.x / 2;\n if (x - w2 < minX) {\n x2 = minX + w2;\n }\n if (x + w2 > maxX) {\n x2 = maxX - w2;\n }\n }\n if (x2 !== void 0 || y2 !== void 0) {\n this.center = this.unproject(new performance2.Point(x2 !== void 0 ? x2 : point.x, y2 !== void 0 ? y2 : point.y));\n }\n this._unmodified = unmodified;\n this._constraining = false;\n };\n Transform.prototype._calcMatrices = function _calcMatrices() {\n if (!this.height) {\n return;\n }\n var halfFov = this._fov / 2;\n var offset = this.centerOffset;\n this.cameraToCenterDistance = 0.5 / Math.tan(halfFov) * this.height;\n var groundAngle = Math.PI / 2 + this._pitch;\n var fovAboveCenter = this._fov * (0.5 + offset.y / this.height);\n var topHalfSurfaceDistance = Math.sin(fovAboveCenter) * this.cameraToCenterDistance / Math.sin(performance2.clamp(Math.PI - groundAngle - fovAboveCenter, 0.01, Math.PI - 0.01));\n var point = this.point;\n var x = point.x, y = point.y;\n var furthestDistance = Math.cos(Math.PI / 2 - this._pitch) * topHalfSurfaceDistance + this.cameraToCenterDistance;\n var farZ = furthestDistance * 1.01;\n var nearZ = this.height / 50;\n var m = new Float64Array(16);\n performance2.perspective(m, this._fov, this.width / this.height, nearZ, farZ);\n m[8] = -offset.x * 2 / this.width;\n m[9] = offset.y * 2 / this.height;\n performance2.scale(m, m, [\n 1,\n -1,\n 1\n ]);\n performance2.translate(m, m, [\n 0,\n 0,\n -this.cameraToCenterDistance\n ]);\n performance2.rotateX(m, m, this._pitch);\n performance2.rotateZ(m, m, this.angle);\n performance2.translate(m, m, [\n -x,\n -y,\n 0\n ]);\n this.mercatorMatrix = performance2.scale([], m, [\n this.worldSize,\n this.worldSize,\n this.worldSize\n ]);\n performance2.scale(m, m, [\n 1,\n 1,\n performance2.mercatorZfromAltitude(1, this.center.lat) * this.worldSize,\n 1\n ]);\n this.projMatrix = m;\n this.invProjMatrix = performance2.invert([], this.projMatrix);\n var xShift = this.width % 2 / 2, yShift = this.height % 2 / 2, angleCos = Math.cos(this.angle), angleSin = Math.sin(this.angle), dx = x - Math.round(x) + angleCos * xShift + angleSin * yShift, dy = y - Math.round(y) + angleCos * yShift + angleSin * xShift;\n var alignedM = new Float64Array(m);\n performance2.translate(alignedM, alignedM, [\n dx > 0.5 ? dx - 1 : dx,\n dy > 0.5 ? dy - 1 : dy,\n 0\n ]);\n this.alignedProjMatrix = alignedM;\n m = performance2.create();\n performance2.scale(m, m, [\n this.width / 2,\n -this.height / 2,\n 1\n ]);\n performance2.translate(m, m, [\n 1,\n -1,\n 0\n ]);\n this.labelPlaneMatrix = m;\n m = performance2.create();\n performance2.scale(m, m, [\n 1,\n -1,\n 1\n ]);\n performance2.translate(m, m, [\n -1,\n -1,\n 0\n ]);\n performance2.scale(m, m, [\n 2 / this.width,\n 2 / this.height,\n 1\n ]);\n this.glCoordMatrix = m;\n this.pixelMatrix = performance2.multiply(new Float64Array(16), this.labelPlaneMatrix, this.projMatrix);\n m = performance2.invert(new Float64Array(16), this.pixelMatrix);\n if (!m) {\n throw new Error(\"failed to invert matrix\");\n }\n this.pixelMatrixInverse = m;\n this._posMatrixCache = {};\n this._alignedPosMatrixCache = {};\n };\n Transform.prototype.maxPitchScaleFactor = function maxPitchScaleFactor() {\n if (!this.pixelMatrixInverse) {\n return 1;\n }\n var coord = this.pointCoordinate(new performance2.Point(0, 0));\n var p = [\n coord.x * this.worldSize,\n coord.y * this.worldSize,\n 0,\n 1\n ];\n var topPoint = performance2.transformMat4(p, p, this.pixelMatrix);\n return topPoint[3] / this.cameraToCenterDistance;\n };\n Transform.prototype.getCameraPoint = function getCameraPoint() {\n var pitch = this._pitch;\n var yOffset = Math.tan(pitch) * (this.cameraToCenterDistance || 1);\n return this.centerPoint.add(new performance2.Point(0, yOffset));\n };\n Transform.prototype.getCameraQueryGeometry = function getCameraQueryGeometry(queryGeometry) {\n var c = this.getCameraPoint();\n if (queryGeometry.length === 1) {\n return [\n queryGeometry[0],\n c\n ];\n } else {\n var minX = c.x;\n var minY = c.y;\n var maxX = c.x;\n var maxY = c.y;\n for (var i = 0, list = queryGeometry; i < list.length; i += 1) {\n var p = list[i];\n minX = Math.min(minX, p.x);\n minY = Math.min(minY, p.y);\n maxX = Math.max(maxX, p.x);\n maxY = Math.max(maxY, p.y);\n }\n return [\n new performance2.Point(minX, minY),\n new performance2.Point(maxX, minY),\n new performance2.Point(maxX, maxY),\n new performance2.Point(minX, maxY),\n new performance2.Point(minX, minY)\n ];\n }\n };\n Object.defineProperties(Transform.prototype, prototypeAccessors);\n function throttle(fn, time) {\n var pending = false;\n var timerId = null;\n var later = function() {\n timerId = null;\n if (pending) {\n fn();\n timerId = setTimeout(later, time);\n pending = false;\n }\n };\n return function() {\n pending = true;\n if (!timerId) {\n later();\n }\n return timerId;\n };\n }\n var Hash = function Hash2(hashName) {\n this._hashName = hashName && encodeURIComponent(hashName);\n performance2.bindAll([\n \"_getCurrentHash\",\n \"_onHashChange\",\n \"_updateHash\"\n ], this);\n this._updateHash = throttle(this._updateHashUnthrottled.bind(this), 30 * 1e3 / 100);\n };\n Hash.prototype.addTo = function addTo(map) {\n this._map = map;\n performance2.window.addEventListener(\"hashchange\", this._onHashChange, false);\n this._map.on(\"moveend\", this._updateHash);\n return this;\n };\n Hash.prototype.remove = function remove() {\n performance2.window.removeEventListener(\"hashchange\", this._onHashChange, false);\n this._map.off(\"moveend\", this._updateHash);\n clearTimeout(this._updateHash());\n delete this._map;\n return this;\n };\n Hash.prototype.getHashString = function getHashString(mapFeedback) {\n var center = this._map.getCenter(), zoom = Math.round(this._map.getZoom() * 100) / 100, precision = Math.ceil((zoom * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), m = Math.pow(10, precision), lng = Math.round(center.lng * m) / m, lat = Math.round(center.lat * m) / m, bearing = this._map.getBearing(), pitch = this._map.getPitch();\n var hash = \"\";\n if (mapFeedback) {\n hash += \"/\" + lng + \"/\" + lat + \"/\" + zoom;\n } else {\n hash += zoom + \"/\" + lat + \"/\" + lng;\n }\n if (bearing || pitch) {\n hash += \"/\" + Math.round(bearing * 10) / 10;\n }\n if (pitch) {\n hash += \"/\" + Math.round(pitch);\n }\n if (this._hashName) {\n var hashName = this._hashName;\n var found = false;\n var parts = performance2.window.location.hash.slice(1).split(\"&\").map(function(part) {\n var key = part.split(\"=\")[0];\n if (key === hashName) {\n found = true;\n return key + \"=\" + hash;\n }\n return part;\n }).filter(function(a) {\n return a;\n });\n if (!found) {\n parts.push(hashName + \"=\" + hash);\n }\n return \"#\" + parts.join(\"&\");\n }\n return \"#\" + hash;\n };\n Hash.prototype._getCurrentHash = function _getCurrentHash() {\n var this$1 = this;\n var hash = performance2.window.location.hash.replace(\"#\", \"\");\n if (this._hashName) {\n var keyval;\n hash.split(\"&\").map(function(part) {\n return part.split(\"=\");\n }).forEach(function(part) {\n if (part[0] === this$1._hashName) {\n keyval = part;\n }\n });\n return (keyval ? keyval[1] || \"\" : \"\").split(\"/\");\n }\n return hash.split(\"/\");\n };\n Hash.prototype._onHashChange = function _onHashChange() {\n var loc = this._getCurrentHash();\n if (loc.length >= 3 && !loc.some(function(v) {\n return isNaN(v);\n })) {\n var bearing = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(loc[3] || 0) : this._map.getBearing();\n this._map.jumpTo({\n center: [\n +loc[2],\n +loc[1]\n ],\n zoom: +loc[0],\n bearing,\n pitch: +(loc[4] || 0)\n });\n return true;\n }\n return false;\n };\n Hash.prototype._updateHashUnthrottled = function _updateHashUnthrottled() {\n var location2 = performance2.window.location.href.replace(/(#.+)?$/, this.getHashString());\n try {\n performance2.window.history.replaceState(performance2.window.history.state, null, location2);\n } catch (SecurityError) {\n }\n };\n var defaultInertiaOptions = {\n linearity: 0.3,\n easing: performance2.bezier(0, 0, 0.3, 1)\n };\n var defaultPanInertiaOptions = performance2.extend({\n deceleration: 2500,\n maxSpeed: 1400\n }, defaultInertiaOptions);\n var defaultZoomInertiaOptions = performance2.extend({\n deceleration: 20,\n maxSpeed: 1400\n }, defaultInertiaOptions);\n var defaultBearingInertiaOptions = performance2.extend({\n deceleration: 1e3,\n maxSpeed: 360\n }, defaultInertiaOptions);\n var defaultPitchInertiaOptions = performance2.extend({\n deceleration: 1e3,\n maxSpeed: 90\n }, defaultInertiaOptions);\n var HandlerInertia = function HandlerInertia2(map) {\n this._map = map;\n this.clear();\n };\n HandlerInertia.prototype.clear = function clear() {\n this._inertiaBuffer = [];\n };\n HandlerInertia.prototype.record = function record(settings) {\n this._drainInertiaBuffer();\n this._inertiaBuffer.push({\n time: performance2.browser.now(),\n settings\n });\n };\n HandlerInertia.prototype._drainInertiaBuffer = function _drainInertiaBuffer() {\n var inertia = this._inertiaBuffer, now = performance2.browser.now(), cutoff = 160;\n while (inertia.length > 0 && now - inertia[0].time > cutoff) {\n inertia.shift();\n }\n };\n HandlerInertia.prototype._onMoveEnd = function _onMoveEnd(panInertiaOptions) {\n this._drainInertiaBuffer();\n if (this._inertiaBuffer.length < 2) {\n return;\n }\n var deltas = {\n zoom: 0,\n bearing: 0,\n pitch: 0,\n pan: new performance2.Point(0, 0),\n pinchAround: void 0,\n around: void 0\n };\n for (var i = 0, list = this._inertiaBuffer; i < list.length; i += 1) {\n var ref = list[i];\n var settings = ref.settings;\n deltas.zoom += settings.zoomDelta || 0;\n deltas.bearing += settings.bearingDelta || 0;\n deltas.pitch += settings.pitchDelta || 0;\n if (settings.panDelta) {\n deltas.pan._add(settings.panDelta);\n }\n if (settings.around) {\n deltas.around = settings.around;\n }\n if (settings.pinchAround) {\n deltas.pinchAround = settings.pinchAround;\n }\n }\n var lastEntry = this._inertiaBuffer[this._inertiaBuffer.length - 1];\n var duration = lastEntry.time - this._inertiaBuffer[0].time;\n var easeOptions = {};\n if (deltas.pan.mag()) {\n var result = calculateEasing(deltas.pan.mag(), duration, performance2.extend({}, defaultPanInertiaOptions, panInertiaOptions || {}));\n easeOptions.offset = deltas.pan.mult(result.amount / deltas.pan.mag());\n easeOptions.center = this._map.transform.center;\n extendDuration(easeOptions, result);\n }\n if (deltas.zoom) {\n var result$1 = calculateEasing(deltas.zoom, duration, defaultZoomInertiaOptions);\n easeOptions.zoom = this._map.transform.zoom + result$1.amount;\n extendDuration(easeOptions, result$1);\n }\n if (deltas.bearing) {\n var result$2 = calculateEasing(deltas.bearing, duration, defaultBearingInertiaOptions);\n easeOptions.bearing = this._map.transform.bearing + performance2.clamp(result$2.amount, -179, 179);\n extendDuration(easeOptions, result$2);\n }\n if (deltas.pitch) {\n var result$3 = calculateEasing(deltas.pitch, duration, defaultPitchInertiaOptions);\n easeOptions.pitch = this._map.transform.pitch + result$3.amount;\n extendDuration(easeOptions, result$3);\n }\n if (easeOptions.zoom || easeOptions.bearing) {\n var last = deltas.pinchAround === void 0 ? deltas.around : deltas.pinchAround;\n easeOptions.around = last ? this._map.unproject(last) : this._map.getCenter();\n }\n this.clear();\n return performance2.extend(easeOptions, { noMoveStart: true });\n };\n function extendDuration(easeOptions, result) {\n if (!easeOptions.duration || easeOptions.duration < result.duration) {\n easeOptions.duration = result.duration;\n easeOptions.easing = result.easing;\n }\n }\n function calculateEasing(amount, inertiaDuration, inertiaOptions) {\n var maxSpeed = inertiaOptions.maxSpeed;\n var linearity = inertiaOptions.linearity;\n var deceleration = inertiaOptions.deceleration;\n var speed = performance2.clamp(amount * linearity / (inertiaDuration / 1e3), -maxSpeed, maxSpeed);\n var duration = Math.abs(speed) / (deceleration * linearity);\n return {\n easing: inertiaOptions.easing,\n duration: duration * 1e3,\n amount: speed * (duration / 2)\n };\n }\n var MapMouseEvent = function(Event) {\n function MapMouseEvent2(type, map, originalEvent, data) {\n if (data === void 0)\n data = {};\n var point = DOM.mousePos(map.getCanvasContainer(), originalEvent);\n var lngLat = map.unproject(point);\n Event.call(this, type, performance2.extend({\n point,\n lngLat,\n originalEvent\n }, data));\n this._defaultPrevented = false;\n this.target = map;\n }\n if (Event)\n MapMouseEvent2.__proto__ = Event;\n MapMouseEvent2.prototype = Object.create(Event && Event.prototype);\n MapMouseEvent2.prototype.constructor = MapMouseEvent2;\n var prototypeAccessors2 = { defaultPrevented: { configurable: true } };\n MapMouseEvent2.prototype.preventDefault = function preventDefault() {\n this._defaultPrevented = true;\n };\n prototypeAccessors2.defaultPrevented.get = function() {\n return this._defaultPrevented;\n };\n Object.defineProperties(MapMouseEvent2.prototype, prototypeAccessors2);\n return MapMouseEvent2;\n }(performance2.Event);\n var MapTouchEvent = function(Event) {\n function MapTouchEvent2(type, map, originalEvent) {\n var touches = type === \"touchend\" ? originalEvent.changedTouches : originalEvent.touches;\n var points = DOM.touchPos(map.getCanvasContainer(), touches);\n var lngLats = points.map(function(t) {\n return map.unproject(t);\n });\n var point = points.reduce(function(prev, curr, i, arr) {\n return prev.add(curr.div(arr.length));\n }, new performance2.Point(0, 0));\n var lngLat = map.unproject(point);\n Event.call(this, type, {\n points,\n point,\n lngLats,\n lngLat,\n originalEvent\n });\n this._defaultPrevented = false;\n }\n if (Event)\n MapTouchEvent2.__proto__ = Event;\n MapTouchEvent2.prototype = Object.create(Event && Event.prototype);\n MapTouchEvent2.prototype.constructor = MapTouchEvent2;\n var prototypeAccessors$1 = { defaultPrevented: { configurable: true } };\n MapTouchEvent2.prototype.preventDefault = function preventDefault() {\n this._defaultPrevented = true;\n };\n prototypeAccessors$1.defaultPrevented.get = function() {\n return this._defaultPrevented;\n };\n Object.defineProperties(MapTouchEvent2.prototype, prototypeAccessors$1);\n return MapTouchEvent2;\n }(performance2.Event);\n var MapWheelEvent = function(Event) {\n function MapWheelEvent2(type, map, originalEvent) {\n Event.call(this, type, { originalEvent });\n this._defaultPrevented = false;\n }\n if (Event)\n MapWheelEvent2.__proto__ = Event;\n MapWheelEvent2.prototype = Object.create(Event && Event.prototype);\n MapWheelEvent2.prototype.constructor = MapWheelEvent2;\n var prototypeAccessors$2 = { defaultPrevented: { configurable: true } };\n MapWheelEvent2.prototype.preventDefault = function preventDefault() {\n this._defaultPrevented = true;\n };\n prototypeAccessors$2.defaultPrevented.get = function() {\n return this._defaultPrevented;\n };\n Object.defineProperties(MapWheelEvent2.prototype, prototypeAccessors$2);\n return MapWheelEvent2;\n }(performance2.Event);\n var MapEventHandler = function MapEventHandler2(map, options) {\n this._map = map;\n this._clickTolerance = options.clickTolerance;\n };\n MapEventHandler.prototype.reset = function reset() {\n delete this._mousedownPos;\n };\n MapEventHandler.prototype.wheel = function wheel(e) {\n return this._firePreventable(new MapWheelEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mousedown = function mousedown(e, point) {\n this._mousedownPos = point;\n return this._firePreventable(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mouseup = function mouseup(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.click = function click(e, point) {\n if (this._mousedownPos && this._mousedownPos.dist(point) >= this._clickTolerance) {\n return;\n }\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.dblclick = function dblclick(e) {\n return this._firePreventable(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mouseover = function mouseover(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.mouseout = function mouseout(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchstart = function touchstart(e) {\n return this._firePreventable(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchmove = function touchmove(e) {\n this._map.fire(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchend = function touchend(e) {\n this._map.fire(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype.touchcancel = function touchcancel(e) {\n this._map.fire(new MapTouchEvent(e.type, this._map, e));\n };\n MapEventHandler.prototype._firePreventable = function _firePreventable(mapEvent) {\n this._map.fire(mapEvent);\n if (mapEvent.defaultPrevented) {\n return {};\n }\n };\n MapEventHandler.prototype.isEnabled = function isEnabled() {\n return true;\n };\n MapEventHandler.prototype.isActive = function isActive() {\n return false;\n };\n MapEventHandler.prototype.enable = function enable() {\n };\n MapEventHandler.prototype.disable = function disable() {\n };\n var BlockableMapEventHandler = function BlockableMapEventHandler2(map) {\n this._map = map;\n };\n BlockableMapEventHandler.prototype.reset = function reset() {\n this._delayContextMenu = false;\n delete this._contextMenuEvent;\n };\n BlockableMapEventHandler.prototype.mousemove = function mousemove(e) {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n };\n BlockableMapEventHandler.prototype.mousedown = function mousedown() {\n this._delayContextMenu = true;\n };\n BlockableMapEventHandler.prototype.mouseup = function mouseup() {\n this._delayContextMenu = false;\n if (this._contextMenuEvent) {\n this._map.fire(new MapMouseEvent(\"contextmenu\", this._map, this._contextMenuEvent));\n delete this._contextMenuEvent;\n }\n };\n BlockableMapEventHandler.prototype.contextmenu = function contextmenu(e) {\n if (this._delayContextMenu) {\n this._contextMenuEvent = e;\n } else {\n this._map.fire(new MapMouseEvent(e.type, this._map, e));\n }\n if (this._map.listens(\"contextmenu\")) {\n e.preventDefault();\n }\n };\n BlockableMapEventHandler.prototype.isEnabled = function isEnabled() {\n return true;\n };\n BlockableMapEventHandler.prototype.isActive = function isActive() {\n return false;\n };\n BlockableMapEventHandler.prototype.enable = function enable() {\n };\n BlockableMapEventHandler.prototype.disable = function disable() {\n };\n var BoxZoomHandler = function BoxZoomHandler2(map, options) {\n this._map = map;\n this._el = map.getCanvasContainer();\n this._container = map.getContainer();\n this._clickTolerance = options.clickTolerance || 1;\n };\n BoxZoomHandler.prototype.isEnabled = function isEnabled() {\n return !!this._enabled;\n };\n BoxZoomHandler.prototype.isActive = function isActive() {\n return !!this._active;\n };\n BoxZoomHandler.prototype.enable = function enable() {\n if (this.isEnabled()) {\n return;\n }\n this._enabled = true;\n };\n BoxZoomHandler.prototype.disable = function disable() {\n if (!this.isEnabled()) {\n return;\n }\n this._enabled = false;\n };\n BoxZoomHandler.prototype.mousedown = function mousedown(e, point) {\n if (!this.isEnabled()) {\n return;\n }\n if (!(e.shiftKey && e.button === 0)) {\n return;\n }\n DOM.disableDrag();\n this._startPos = this._lastPos = point;\n this._active = true;\n };\n BoxZoomHandler.prototype.mousemoveWindow = function mousemoveWindow(e, point) {\n if (!this._active) {\n return;\n }\n var pos = point;\n if (this._lastPos.equals(pos) || !this._box && pos.dist(this._startPos) < this._clickTolerance) {\n return;\n }\n var p0 = this._startPos;\n this._lastPos = pos;\n if (!this._box) {\n this._box = DOM.create(\"div\", \"mapboxgl-boxzoom\", this._container);\n this._container.classList.add(\"mapboxgl-crosshair\");\n this._fireEvent(\"boxzoomstart\", e);\n }\n var minX = Math.min(p0.x, pos.x), maxX = Math.max(p0.x, pos.x), minY = Math.min(p0.y, pos.y), maxY = Math.max(p0.y, pos.y);\n DOM.setTransform(this._box, \"translate(\" + minX + \"px,\" + minY + \"px)\");\n this._box.style.width = maxX - minX + \"px\";\n this._box.style.height = maxY - minY + \"px\";\n };\n BoxZoomHandler.prototype.mouseupWindow = function mouseupWindow(e, point) {\n var this$1 = this;\n if (!this._active) {\n return;\n }\n if (e.button !== 0) {\n return;\n }\n var p0 = this._startPos, p1 = point;\n this.reset();\n DOM.suppressClick();\n if (p0.x === p1.x && p0.y === p1.y) {\n this._fireEvent(\"boxzoomcancel\", e);\n } else {\n this._map.fire(new performance2.Event(\"boxzoomend\", { originalEvent: e }));\n return {\n cameraAnimation: function(map) {\n return map.fitScreenCoordinates(p0, p1, this$1._map.getBearing(), { linear: true });\n }\n };\n }\n };\n BoxZoomHandler.prototype.keydown = function keydown(e) {\n if (!this._active) {\n return;\n }\n if (e.keyCode === 27) {\n this.reset();\n this._fireEvent(\"boxzoomcancel\", e);\n }\n };\n BoxZoomHandler.prototype.reset = function reset() {\n this._active = false;\n this._container.classList.remove(\"mapboxgl-crosshair\");\n if (this._box) {\n DOM.remove(this._box);\n this._box = null;\n }\n DOM.enableDrag();\n delete this._startPos;\n delete this._lastPos;\n };\n BoxZoomHandler.prototype._fireEvent = function _fireEvent(type, e) {\n return this._map.fire(new performance2.Event(type, { originalEvent: e }));\n };\n function indexTouches(touches, points) {\n var obj = {};\n for (var i = 0; i < touches.length; i++) {\n obj[touches[i].identifier] = points[i];\n }\n return obj;\n }\n function getCentroid(points) {\n var sum = new performance2.Point(0, 0);\n for (var i = 0, list = points; i < list.length; i += 1) {\n var point = list[i];\n sum._add(point);\n }\n return sum.div(points.length);\n }\n var MAX_TAP_INTERVAL = 500;\n var MAX_TOUCH_TIME = 500;\n var MAX_DIST = 30;\n var SingleTapRecognizer = function SingleTapRecognizer2(options) {\n this.reset();\n this.numTouches = options.numTouches;\n };\n SingleTapRecognizer.prototype.reset = function reset() {\n delete this.centroid;\n delete this.startTime;\n delete this.touches;\n this.aborted = false;\n };\n SingleTapRecognizer.prototype.touchstart = function touchstart(e, points, mapTouches) {\n if (this.centroid || mapTouches.length > this.numTouches) {\n this.aborted = true;\n }\n if (this.aborted) {\n return;\n }\n if (this.startTime === void 0) {\n this.startTime = e.timeStamp;\n }\n if (mapTouches.length === this.numTouches) {\n this.centroid = getCentroid(points);\n this.touches = indexTouches(mapTouches, points);\n }\n };\n SingleTapRecognizer.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (this.aborted || !this.centroid) {\n return;\n }\n var newTouches = indexTouches(mapTouches, points);\n for (var id in this.touches) {\n var prevPos = this.touches[id];\n var pos = newTouches[id];\n if (!pos || pos.dist(prevPos) > MAX_DIST) {\n this.aborted = true;\n }\n }\n };\n SingleTapRecognizer.prototype.touchend = function touchend(e, points, mapTouches) {\n if (!this.centroid || e.timeStamp - this.startTime > MAX_TOUCH_TIME) {\n this.aborted = true;\n }\n if (mapTouches.length === 0) {\n var centroid = !this.aborted && this.centroid;\n this.reset();\n if (centroid) {\n return centroid;\n }\n }\n };\n var TapRecognizer = function TapRecognizer2(options) {\n this.singleTap = new SingleTapRecognizer(options);\n this.numTaps = options.numTaps;\n this.reset();\n };\n TapRecognizer.prototype.reset = function reset() {\n this.lastTime = Infinity;\n delete this.lastTap;\n this.count = 0;\n this.singleTap.reset();\n };\n TapRecognizer.prototype.touchstart = function touchstart(e, points, mapTouches) {\n this.singleTap.touchstart(e, points, mapTouches);\n };\n TapRecognizer.prototype.touchmove = function touchmove(e, points, mapTouches) {\n this.singleTap.touchmove(e, points, mapTouches);\n };\n TapRecognizer.prototype.touchend = function touchend(e, points, mapTouches) {\n var tap = this.singleTap.touchend(e, points, mapTouches);\n if (tap) {\n var soonEnough = e.timeStamp - this.lastTime < MAX_TAP_INTERVAL;\n var closeEnough = !this.lastTap || this.lastTap.dist(tap) < MAX_DIST;\n if (!soonEnough || !closeEnough) {\n this.reset();\n }\n this.count++;\n this.lastTime = e.timeStamp;\n this.lastTap = tap;\n if (this.count === this.numTaps) {\n this.reset();\n return tap;\n }\n }\n };\n var TapZoomHandler = function TapZoomHandler2() {\n this._zoomIn = new TapRecognizer({\n numTouches: 1,\n numTaps: 2\n });\n this._zoomOut = new TapRecognizer({\n numTouches: 2,\n numTaps: 1\n });\n this.reset();\n };\n TapZoomHandler.prototype.reset = function reset() {\n this._active = false;\n this._zoomIn.reset();\n this._zoomOut.reset();\n };\n TapZoomHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n this._zoomIn.touchstart(e, points, mapTouches);\n this._zoomOut.touchstart(e, points, mapTouches);\n };\n TapZoomHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n this._zoomIn.touchmove(e, points, mapTouches);\n this._zoomOut.touchmove(e, points, mapTouches);\n };\n TapZoomHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n var this$1 = this;\n var zoomInPoint = this._zoomIn.touchend(e, points, mapTouches);\n var zoomOutPoint = this._zoomOut.touchend(e, points, mapTouches);\n if (zoomInPoint) {\n this._active = true;\n e.preventDefault();\n setTimeout(function() {\n return this$1.reset();\n }, 0);\n return {\n cameraAnimation: function(map) {\n return map.easeTo({\n duration: 300,\n zoom: map.getZoom() + 1,\n around: map.unproject(zoomInPoint)\n }, { originalEvent: e });\n }\n };\n } else if (zoomOutPoint) {\n this._active = true;\n e.preventDefault();\n setTimeout(function() {\n return this$1.reset();\n }, 0);\n return {\n cameraAnimation: function(map) {\n return map.easeTo({\n duration: 300,\n zoom: map.getZoom() - 1,\n around: map.unproject(zoomOutPoint)\n }, { originalEvent: e });\n }\n };\n }\n };\n TapZoomHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TapZoomHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n TapZoomHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TapZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TapZoomHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var LEFT_BUTTON = 0;\n var RIGHT_BUTTON = 2;\n var BUTTONS_FLAGS = {};\n BUTTONS_FLAGS[LEFT_BUTTON] = 1;\n BUTTONS_FLAGS[RIGHT_BUTTON] = 2;\n function buttonStillPressed(e, button) {\n var flag = BUTTONS_FLAGS[button];\n return e.buttons === void 0 || (e.buttons & flag) !== flag;\n }\n var MouseHandler = function MouseHandler2(options) {\n this.reset();\n this._clickTolerance = options.clickTolerance || 1;\n };\n MouseHandler.prototype.reset = function reset() {\n this._active = false;\n this._moved = false;\n delete this._lastPoint;\n delete this._eventButton;\n };\n MouseHandler.prototype._correctButton = function _correctButton(e, button) {\n return false;\n };\n MouseHandler.prototype._move = function _move(lastPoint, point) {\n return {};\n };\n MouseHandler.prototype.mousedown = function mousedown(e, point) {\n if (this._lastPoint) {\n return;\n }\n var eventButton = DOM.mouseButton(e);\n if (!this._correctButton(e, eventButton)) {\n return;\n }\n this._lastPoint = point;\n this._eventButton = eventButton;\n };\n MouseHandler.prototype.mousemoveWindow = function mousemoveWindow(e, point) {\n var lastPoint = this._lastPoint;\n if (!lastPoint) {\n return;\n }\n e.preventDefault();\n if (buttonStillPressed(e, this._eventButton)) {\n this.reset();\n return;\n }\n if (!this._moved && point.dist(lastPoint) < this._clickTolerance) {\n return;\n }\n this._moved = true;\n this._lastPoint = point;\n return this._move(lastPoint, point);\n };\n MouseHandler.prototype.mouseupWindow = function mouseupWindow(e) {\n if (!this._lastPoint) {\n return;\n }\n var eventButton = DOM.mouseButton(e);\n if (eventButton !== this._eventButton) {\n return;\n }\n if (this._moved) {\n DOM.suppressClick();\n }\n this.reset();\n };\n MouseHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n MouseHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n MouseHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n MouseHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var MousePanHandler = function(MouseHandler2) {\n function MousePanHandler2() {\n MouseHandler2.apply(this, arguments);\n }\n if (MouseHandler2)\n MousePanHandler2.__proto__ = MouseHandler2;\n MousePanHandler2.prototype = Object.create(MouseHandler2 && MouseHandler2.prototype);\n MousePanHandler2.prototype.constructor = MousePanHandler2;\n MousePanHandler2.prototype.mousedown = function mousedown(e, point) {\n MouseHandler2.prototype.mousedown.call(this, e, point);\n if (this._lastPoint) {\n this._active = true;\n }\n };\n MousePanHandler2.prototype._correctButton = function _correctButton(e, button) {\n return button === LEFT_BUTTON && !e.ctrlKey;\n };\n MousePanHandler2.prototype._move = function _move(lastPoint, point) {\n return {\n around: point,\n panDelta: point.sub(lastPoint)\n };\n };\n return MousePanHandler2;\n }(MouseHandler);\n var MouseRotateHandler = function(MouseHandler2) {\n function MouseRotateHandler2() {\n MouseHandler2.apply(this, arguments);\n }\n if (MouseHandler2)\n MouseRotateHandler2.__proto__ = MouseHandler2;\n MouseRotateHandler2.prototype = Object.create(MouseHandler2 && MouseHandler2.prototype);\n MouseRotateHandler2.prototype.constructor = MouseRotateHandler2;\n MouseRotateHandler2.prototype._correctButton = function _correctButton(e, button) {\n return button === LEFT_BUTTON && e.ctrlKey || button === RIGHT_BUTTON;\n };\n MouseRotateHandler2.prototype._move = function _move(lastPoint, point) {\n var degreesPerPixelMoved = 0.8;\n var bearingDelta = (point.x - lastPoint.x) * degreesPerPixelMoved;\n if (bearingDelta) {\n this._active = true;\n return { bearingDelta };\n }\n };\n MouseRotateHandler2.prototype.contextmenu = function contextmenu(e) {\n e.preventDefault();\n };\n return MouseRotateHandler2;\n }(MouseHandler);\n var MousePitchHandler = function(MouseHandler2) {\n function MousePitchHandler2() {\n MouseHandler2.apply(this, arguments);\n }\n if (MouseHandler2)\n MousePitchHandler2.__proto__ = MouseHandler2;\n MousePitchHandler2.prototype = Object.create(MouseHandler2 && MouseHandler2.prototype);\n MousePitchHandler2.prototype.constructor = MousePitchHandler2;\n MousePitchHandler2.prototype._correctButton = function _correctButton(e, button) {\n return button === LEFT_BUTTON && e.ctrlKey || button === RIGHT_BUTTON;\n };\n MousePitchHandler2.prototype._move = function _move(lastPoint, point) {\n var degreesPerPixelMoved = -0.5;\n var pitchDelta = (point.y - lastPoint.y) * degreesPerPixelMoved;\n if (pitchDelta) {\n this._active = true;\n return { pitchDelta };\n }\n };\n MousePitchHandler2.prototype.contextmenu = function contextmenu(e) {\n e.preventDefault();\n };\n return MousePitchHandler2;\n }(MouseHandler);\n var TouchPanHandler = function TouchPanHandler2(options) {\n this._minTouches = 1;\n this._clickTolerance = options.clickTolerance || 1;\n this.reset();\n };\n TouchPanHandler.prototype.reset = function reset() {\n this._active = false;\n this._touches = {};\n this._sum = new performance2.Point(0, 0);\n };\n TouchPanHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n return this._calculateTransform(e, points, mapTouches);\n };\n TouchPanHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (!this._active || mapTouches.length < this._minTouches) {\n return;\n }\n e.preventDefault();\n return this._calculateTransform(e, points, mapTouches);\n };\n TouchPanHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n this._calculateTransform(e, points, mapTouches);\n if (this._active && mapTouches.length < this._minTouches) {\n this.reset();\n }\n };\n TouchPanHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TouchPanHandler.prototype._calculateTransform = function _calculateTransform(e, points, mapTouches) {\n if (mapTouches.length > 0) {\n this._active = true;\n }\n var touches = indexTouches(mapTouches, points);\n var touchPointSum = new performance2.Point(0, 0);\n var touchDeltaSum = new performance2.Point(0, 0);\n var touchDeltaCount = 0;\n for (var identifier in touches) {\n var point = touches[identifier];\n var prevPoint = this._touches[identifier];\n if (prevPoint) {\n touchPointSum._add(point);\n touchDeltaSum._add(point.sub(prevPoint));\n touchDeltaCount++;\n touches[identifier] = point;\n }\n }\n this._touches = touches;\n if (touchDeltaCount < this._minTouches || !touchDeltaSum.mag()) {\n return;\n }\n var panDelta = touchDeltaSum.div(touchDeltaCount);\n this._sum._add(panDelta);\n if (this._sum.mag() < this._clickTolerance) {\n return;\n }\n var around = touchPointSum.div(touchDeltaCount);\n return {\n around,\n panDelta\n };\n };\n TouchPanHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n TouchPanHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TouchPanHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TouchPanHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var TwoTouchHandler = function TwoTouchHandler2() {\n this.reset();\n };\n TwoTouchHandler.prototype.reset = function reset() {\n this._active = false;\n delete this._firstTwoTouches;\n };\n TwoTouchHandler.prototype._start = function _start(points) {\n };\n TwoTouchHandler.prototype._move = function _move(points, pinchAround, e) {\n return {};\n };\n TwoTouchHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n if (this._firstTwoTouches || mapTouches.length < 2) {\n return;\n }\n this._firstTwoTouches = [\n mapTouches[0].identifier,\n mapTouches[1].identifier\n ];\n this._start([\n points[0],\n points[1]\n ]);\n };\n TwoTouchHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (!this._firstTwoTouches) {\n return;\n }\n e.preventDefault();\n var ref = this._firstTwoTouches;\n var idA = ref[0];\n var idB = ref[1];\n var a = getTouchById(mapTouches, points, idA);\n var b = getTouchById(mapTouches, points, idB);\n if (!a || !b) {\n return;\n }\n var pinchAround = this._aroundCenter ? null : a.add(b).div(2);\n return this._move([\n a,\n b\n ], pinchAround, e);\n };\n TwoTouchHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n if (!this._firstTwoTouches) {\n return;\n }\n var ref = this._firstTwoTouches;\n var idA = ref[0];\n var idB = ref[1];\n var a = getTouchById(mapTouches, points, idA);\n var b = getTouchById(mapTouches, points, idB);\n if (a && b) {\n return;\n }\n if (this._active) {\n DOM.suppressClick();\n }\n this.reset();\n };\n TwoTouchHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TwoTouchHandler.prototype.enable = function enable(options) {\n this._enabled = true;\n this._aroundCenter = !!options && options.around === \"center\";\n };\n TwoTouchHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TwoTouchHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TwoTouchHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n function getTouchById(mapTouches, points, identifier) {\n for (var i = 0; i < mapTouches.length; i++) {\n if (mapTouches[i].identifier === identifier) {\n return points[i];\n }\n }\n }\n var ZOOM_THRESHOLD = 0.1;\n function getZoomDelta(distance, lastDistance) {\n return Math.log(distance / lastDistance) / Math.LN2;\n }\n var TouchZoomHandler = function(TwoTouchHandler2) {\n function TouchZoomHandler2() {\n TwoTouchHandler2.apply(this, arguments);\n }\n if (TwoTouchHandler2)\n TouchZoomHandler2.__proto__ = TwoTouchHandler2;\n TouchZoomHandler2.prototype = Object.create(TwoTouchHandler2 && TwoTouchHandler2.prototype);\n TouchZoomHandler2.prototype.constructor = TouchZoomHandler2;\n TouchZoomHandler2.prototype.reset = function reset() {\n TwoTouchHandler2.prototype.reset.call(this);\n delete this._distance;\n delete this._startDistance;\n };\n TouchZoomHandler2.prototype._start = function _start(points) {\n this._startDistance = this._distance = points[0].dist(points[1]);\n };\n TouchZoomHandler2.prototype._move = function _move(points, pinchAround) {\n var lastDistance = this._distance;\n this._distance = points[0].dist(points[1]);\n if (!this._active && Math.abs(getZoomDelta(this._distance, this._startDistance)) < ZOOM_THRESHOLD) {\n return;\n }\n this._active = true;\n return {\n zoomDelta: getZoomDelta(this._distance, lastDistance),\n pinchAround\n };\n };\n return TouchZoomHandler2;\n }(TwoTouchHandler);\n var ROTATION_THRESHOLD = 25;\n function getBearingDelta(a, b) {\n return a.angleWith(b) * 180 / Math.PI;\n }\n var TouchRotateHandler = function(TwoTouchHandler2) {\n function TouchRotateHandler2() {\n TwoTouchHandler2.apply(this, arguments);\n }\n if (TwoTouchHandler2)\n TouchRotateHandler2.__proto__ = TwoTouchHandler2;\n TouchRotateHandler2.prototype = Object.create(TwoTouchHandler2 && TwoTouchHandler2.prototype);\n TouchRotateHandler2.prototype.constructor = TouchRotateHandler2;\n TouchRotateHandler2.prototype.reset = function reset() {\n TwoTouchHandler2.prototype.reset.call(this);\n delete this._minDiameter;\n delete this._startVector;\n delete this._vector;\n };\n TouchRotateHandler2.prototype._start = function _start(points) {\n this._startVector = this._vector = points[0].sub(points[1]);\n this._minDiameter = points[0].dist(points[1]);\n };\n TouchRotateHandler2.prototype._move = function _move(points, pinchAround) {\n var lastVector = this._vector;\n this._vector = points[0].sub(points[1]);\n if (!this._active && this._isBelowThreshold(this._vector)) {\n return;\n }\n this._active = true;\n return {\n bearingDelta: getBearingDelta(this._vector, lastVector),\n pinchAround\n };\n };\n TouchRotateHandler2.prototype._isBelowThreshold = function _isBelowThreshold(vector) {\n this._minDiameter = Math.min(this._minDiameter, vector.mag());\n var circumference = Math.PI * this._minDiameter;\n var threshold = ROTATION_THRESHOLD / circumference * 360;\n var bearingDeltaSinceStart = getBearingDelta(vector, this._startVector);\n return Math.abs(bearingDeltaSinceStart) < threshold;\n };\n return TouchRotateHandler2;\n }(TwoTouchHandler);\n function isVertical(vector) {\n return Math.abs(vector.y) > Math.abs(vector.x);\n }\n var ALLOWED_SINGLE_TOUCH_TIME = 100;\n var TouchPitchHandler = function(TwoTouchHandler2) {\n function TouchPitchHandler2() {\n TwoTouchHandler2.apply(this, arguments);\n }\n if (TwoTouchHandler2)\n TouchPitchHandler2.__proto__ = TwoTouchHandler2;\n TouchPitchHandler2.prototype = Object.create(TwoTouchHandler2 && TwoTouchHandler2.prototype);\n TouchPitchHandler2.prototype.constructor = TouchPitchHandler2;\n TouchPitchHandler2.prototype.reset = function reset() {\n TwoTouchHandler2.prototype.reset.call(this);\n this._valid = void 0;\n delete this._firstMove;\n delete this._lastPoints;\n };\n TouchPitchHandler2.prototype._start = function _start(points) {\n this._lastPoints = points;\n if (isVertical(points[0].sub(points[1]))) {\n this._valid = false;\n }\n };\n TouchPitchHandler2.prototype._move = function _move(points, center, e) {\n var vectorA = points[0].sub(this._lastPoints[0]);\n var vectorB = points[1].sub(this._lastPoints[1]);\n this._valid = this.gestureBeginsVertically(vectorA, vectorB, e.timeStamp);\n if (!this._valid) {\n return;\n }\n this._lastPoints = points;\n this._active = true;\n var yDeltaAverage = (vectorA.y + vectorB.y) / 2;\n var degreesPerPixelMoved = -0.5;\n return { pitchDelta: yDeltaAverage * degreesPerPixelMoved };\n };\n TouchPitchHandler2.prototype.gestureBeginsVertically = function gestureBeginsVertically(vectorA, vectorB, timeStamp) {\n if (this._valid !== void 0) {\n return this._valid;\n }\n var threshold = 2;\n var movedA = vectorA.mag() >= threshold;\n var movedB = vectorB.mag() >= threshold;\n if (!movedA && !movedB) {\n return;\n }\n if (!movedA || !movedB) {\n if (this._firstMove === void 0) {\n this._firstMove = timeStamp;\n }\n if (timeStamp - this._firstMove < ALLOWED_SINGLE_TOUCH_TIME) {\n return void 0;\n } else {\n return false;\n }\n }\n var isSameDirection = vectorA.y > 0 === vectorB.y > 0;\n return isVertical(vectorA) && isVertical(vectorB) && isSameDirection;\n };\n return TouchPitchHandler2;\n }(TwoTouchHandler);\n var defaultOptions = {\n panStep: 100,\n bearingStep: 15,\n pitchStep: 10\n };\n var KeyboardHandler = function KeyboardHandler2() {\n var stepOptions = defaultOptions;\n this._panStep = stepOptions.panStep;\n this._bearingStep = stepOptions.bearingStep;\n this._pitchStep = stepOptions.pitchStep;\n this._rotationDisabled = false;\n };\n KeyboardHandler.prototype.reset = function reset() {\n this._active = false;\n };\n KeyboardHandler.prototype.keydown = function keydown(e) {\n var this$1 = this;\n if (e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n var zoomDir = 0;\n var bearingDir = 0;\n var pitchDir = 0;\n var xDir = 0;\n var yDir = 0;\n switch (e.keyCode) {\n case 61:\n case 107:\n case 171:\n case 187:\n zoomDir = 1;\n break;\n case 189:\n case 109:\n case 173:\n zoomDir = -1;\n break;\n case 37:\n if (e.shiftKey) {\n bearingDir = -1;\n } else {\n e.preventDefault();\n xDir = -1;\n }\n break;\n case 39:\n if (e.shiftKey) {\n bearingDir = 1;\n } else {\n e.preventDefault();\n xDir = 1;\n }\n break;\n case 38:\n if (e.shiftKey) {\n pitchDir = 1;\n } else {\n e.preventDefault();\n yDir = -1;\n }\n break;\n case 40:\n if (e.shiftKey) {\n pitchDir = -1;\n } else {\n e.preventDefault();\n yDir = 1;\n }\n break;\n default:\n return;\n }\n if (this._rotationDisabled) {\n bearingDir = 0;\n pitchDir = 0;\n }\n return {\n cameraAnimation: function(map) {\n var zoom = map.getZoom();\n map.easeTo({\n duration: 300,\n easeId: \"keyboardHandler\",\n easing: easeOut,\n zoom: zoomDir ? Math.round(zoom) + zoomDir * (e.shiftKey ? 2 : 1) : zoom,\n bearing: map.getBearing() + bearingDir * this$1._bearingStep,\n pitch: map.getPitch() + pitchDir * this$1._pitchStep,\n offset: [\n -xDir * this$1._panStep,\n -yDir * this$1._panStep\n ],\n center: map.getCenter()\n }, { originalEvent: e });\n }\n };\n };\n KeyboardHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n KeyboardHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n KeyboardHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n KeyboardHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n KeyboardHandler.prototype.disableRotation = function disableRotation() {\n this._rotationDisabled = true;\n };\n KeyboardHandler.prototype.enableRotation = function enableRotation() {\n this._rotationDisabled = false;\n };\n function easeOut(t) {\n return t * (2 - t);\n }\n var wheelZoomDelta = 4.000244140625;\n var defaultZoomRate = 1 / 100;\n var wheelZoomRate = 1 / 450;\n var maxScalePerFrame = 2;\n var ScrollZoomHandler = function ScrollZoomHandler2(map, handler) {\n this._map = map;\n this._el = map.getCanvasContainer();\n this._handler = handler;\n this._delta = 0;\n this._defaultZoomRate = defaultZoomRate;\n this._wheelZoomRate = wheelZoomRate;\n performance2.bindAll([\"_onTimeout\"], this);\n };\n ScrollZoomHandler.prototype.setZoomRate = function setZoomRate(zoomRate) {\n this._defaultZoomRate = zoomRate;\n };\n ScrollZoomHandler.prototype.setWheelZoomRate = function setWheelZoomRate(wheelZoomRate2) {\n this._wheelZoomRate = wheelZoomRate2;\n };\n ScrollZoomHandler.prototype.isEnabled = function isEnabled() {\n return !!this._enabled;\n };\n ScrollZoomHandler.prototype.isActive = function isActive() {\n return !!this._active || this._finishTimeout !== void 0;\n };\n ScrollZoomHandler.prototype.isZooming = function isZooming() {\n return !!this._zooming;\n };\n ScrollZoomHandler.prototype.enable = function enable(options) {\n if (this.isEnabled()) {\n return;\n }\n this._enabled = true;\n this._aroundCenter = options && options.around === \"center\";\n };\n ScrollZoomHandler.prototype.disable = function disable() {\n if (!this.isEnabled()) {\n return;\n }\n this._enabled = false;\n };\n ScrollZoomHandler.prototype.wheel = function wheel(e) {\n if (!this.isEnabled()) {\n return;\n }\n var value = e.deltaMode === performance2.window.WheelEvent.DOM_DELTA_LINE ? e.deltaY * 40 : e.deltaY;\n var now = performance2.browser.now(), timeDelta = now - (this._lastWheelEventTime || 0);\n this._lastWheelEventTime = now;\n if (value !== 0 && value % wheelZoomDelta === 0) {\n this._type = \"wheel\";\n } else if (value !== 0 && Math.abs(value) < 4) {\n this._type = \"trackpad\";\n } else if (timeDelta > 400) {\n this._type = null;\n this._lastValue = value;\n this._timeout = setTimeout(this._onTimeout, 40, e);\n } else if (!this._type) {\n this._type = Math.abs(timeDelta * value) < 200 ? \"trackpad\" : \"wheel\";\n if (this._timeout) {\n clearTimeout(this._timeout);\n this._timeout = null;\n value += this._lastValue;\n }\n }\n if (e.shiftKey && value) {\n value = value / 4;\n }\n if (this._type) {\n this._lastWheelEvent = e;\n this._delta -= value;\n if (!this._active) {\n this._start(e);\n }\n }\n e.preventDefault();\n };\n ScrollZoomHandler.prototype._onTimeout = function _onTimeout(initialEvent) {\n this._type = \"wheel\";\n this._delta -= this._lastValue;\n if (!this._active) {\n this._start(initialEvent);\n }\n };\n ScrollZoomHandler.prototype._start = function _start(e) {\n if (!this._delta) {\n return;\n }\n if (this._frameId) {\n this._frameId = null;\n }\n this._active = true;\n if (!this.isZooming()) {\n this._zooming = true;\n }\n if (this._finishTimeout) {\n clearTimeout(this._finishTimeout);\n delete this._finishTimeout;\n }\n var pos = DOM.mousePos(this._el, e);\n this._around = performance2.LngLat.convert(this._aroundCenter ? this._map.getCenter() : this._map.unproject(pos));\n this._aroundPoint = this._map.transform.locationPoint(this._around);\n if (!this._frameId) {\n this._frameId = true;\n this._handler._triggerRenderFrame();\n }\n };\n ScrollZoomHandler.prototype.renderFrame = function renderFrame() {\n var this$1 = this;\n if (!this._frameId) {\n return;\n }\n this._frameId = null;\n if (!this.isActive()) {\n return;\n }\n var tr = this._map.transform;\n if (this._delta !== 0) {\n var zoomRate = this._type === \"wheel\" && Math.abs(this._delta) > wheelZoomDelta ? this._wheelZoomRate : this._defaultZoomRate;\n var scale = maxScalePerFrame / (1 + Math.exp(-Math.abs(this._delta * zoomRate)));\n if (this._delta < 0 && scale !== 0) {\n scale = 1 / scale;\n }\n var fromScale = typeof this._targetZoom === \"number\" ? tr.zoomScale(this._targetZoom) : tr.scale;\n this._targetZoom = Math.min(tr.maxZoom, Math.max(tr.minZoom, tr.scaleZoom(fromScale * scale)));\n if (this._type === \"wheel\") {\n this._startZoom = tr.zoom;\n this._easing = this._smoothOutEasing(200);\n }\n this._delta = 0;\n }\n var targetZoom = typeof this._targetZoom === \"number\" ? this._targetZoom : tr.zoom;\n var startZoom = this._startZoom;\n var easing = this._easing;\n var finished = false;\n var zoom;\n if (this._type === \"wheel\" && startZoom && easing) {\n var t = Math.min((performance2.browser.now() - this._lastWheelEventTime) / 200, 1);\n var k = easing(t);\n zoom = performance2.number(startZoom, targetZoom, k);\n if (t < 1) {\n if (!this._frameId) {\n this._frameId = true;\n }\n } else {\n finished = true;\n }\n } else {\n zoom = targetZoom;\n finished = true;\n }\n this._active = true;\n if (finished) {\n this._active = false;\n this._finishTimeout = setTimeout(function() {\n this$1._zooming = false;\n this$1._handler._triggerRenderFrame();\n delete this$1._targetZoom;\n delete this$1._finishTimeout;\n }, 200);\n }\n return {\n noInertia: true,\n needsRenderFrame: !finished,\n zoomDelta: zoom - tr.zoom,\n around: this._aroundPoint,\n originalEvent: this._lastWheelEvent\n };\n };\n ScrollZoomHandler.prototype._smoothOutEasing = function _smoothOutEasing(duration) {\n var easing = performance2.ease;\n if (this._prevEase) {\n var ease = this._prevEase, t = (performance2.browser.now() - ease.start) / ease.duration, speed = ease.easing(t + 0.01) - ease.easing(t), x = 0.27 / Math.sqrt(speed * speed + 1e-4) * 0.01, y = Math.sqrt(0.27 * 0.27 - x * x);\n easing = performance2.bezier(x, y, 0.25, 1);\n }\n this._prevEase = {\n start: performance2.browser.now(),\n duration,\n easing\n };\n return easing;\n };\n ScrollZoomHandler.prototype.reset = function reset() {\n this._active = false;\n };\n var DoubleClickZoomHandler = function DoubleClickZoomHandler2(clickZoom, TapZoom) {\n this._clickZoom = clickZoom;\n this._tapZoom = TapZoom;\n };\n DoubleClickZoomHandler.prototype.enable = function enable() {\n this._clickZoom.enable();\n this._tapZoom.enable();\n };\n DoubleClickZoomHandler.prototype.disable = function disable() {\n this._clickZoom.disable();\n this._tapZoom.disable();\n };\n DoubleClickZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._clickZoom.isEnabled() && this._tapZoom.isEnabled();\n };\n DoubleClickZoomHandler.prototype.isActive = function isActive() {\n return this._clickZoom.isActive() || this._tapZoom.isActive();\n };\n var ClickZoomHandler = function ClickZoomHandler2() {\n this.reset();\n };\n ClickZoomHandler.prototype.reset = function reset() {\n this._active = false;\n };\n ClickZoomHandler.prototype.dblclick = function dblclick(e, point) {\n e.preventDefault();\n return {\n cameraAnimation: function(map) {\n map.easeTo({\n duration: 300,\n zoom: map.getZoom() + (e.shiftKey ? -1 : 1),\n around: map.unproject(point)\n }, { originalEvent: e });\n }\n };\n };\n ClickZoomHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n ClickZoomHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n ClickZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n ClickZoomHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var TapDragZoomHandler = function TapDragZoomHandler2() {\n this._tap = new TapRecognizer({\n numTouches: 1,\n numTaps: 1\n });\n this.reset();\n };\n TapDragZoomHandler.prototype.reset = function reset() {\n this._active = false;\n delete this._swipePoint;\n delete this._swipeTouch;\n delete this._tapTime;\n this._tap.reset();\n };\n TapDragZoomHandler.prototype.touchstart = function touchstart(e, points, mapTouches) {\n if (this._swipePoint) {\n return;\n }\n if (this._tapTime && e.timeStamp - this._tapTime > MAX_TAP_INTERVAL) {\n this.reset();\n }\n if (!this._tapTime) {\n this._tap.touchstart(e, points, mapTouches);\n } else if (mapTouches.length > 0) {\n this._swipePoint = points[0];\n this._swipeTouch = mapTouches[0].identifier;\n }\n };\n TapDragZoomHandler.prototype.touchmove = function touchmove(e, points, mapTouches) {\n if (!this._tapTime) {\n this._tap.touchmove(e, points, mapTouches);\n } else if (this._swipePoint) {\n if (mapTouches[0].identifier !== this._swipeTouch) {\n return;\n }\n var newSwipePoint = points[0];\n var dist = newSwipePoint.y - this._swipePoint.y;\n this._swipePoint = newSwipePoint;\n e.preventDefault();\n this._active = true;\n return { zoomDelta: dist / 128 };\n }\n };\n TapDragZoomHandler.prototype.touchend = function touchend(e, points, mapTouches) {\n if (!this._tapTime) {\n var point = this._tap.touchend(e, points, mapTouches);\n if (point) {\n this._tapTime = e.timeStamp;\n }\n } else if (this._swipePoint) {\n if (mapTouches.length === 0) {\n this.reset();\n }\n }\n };\n TapDragZoomHandler.prototype.touchcancel = function touchcancel() {\n this.reset();\n };\n TapDragZoomHandler.prototype.enable = function enable() {\n this._enabled = true;\n };\n TapDragZoomHandler.prototype.disable = function disable() {\n this._enabled = false;\n this.reset();\n };\n TapDragZoomHandler.prototype.isEnabled = function isEnabled() {\n return this._enabled;\n };\n TapDragZoomHandler.prototype.isActive = function isActive() {\n return this._active;\n };\n var DragPanHandler = function DragPanHandler2(el, mousePan, touchPan) {\n this._el = el;\n this._mousePan = mousePan;\n this._touchPan = touchPan;\n };\n DragPanHandler.prototype.enable = function enable(options) {\n this._inertiaOptions = options || {};\n this._mousePan.enable();\n this._touchPan.enable();\n this._el.classList.add(\"mapboxgl-touch-drag-pan\");\n };\n DragPanHandler.prototype.disable = function disable() {\n this._mousePan.disable();\n this._touchPan.disable();\n this._el.classList.remove(\"mapboxgl-touch-drag-pan\");\n };\n DragPanHandler.prototype.isEnabled = function isEnabled() {\n return this._mousePan.isEnabled() && this._touchPan.isEnabled();\n };\n DragPanHandler.prototype.isActive = function isActive() {\n return this._mousePan.isActive() || this._touchPan.isActive();\n };\n var DragRotateHandler = function DragRotateHandler2(options, mouseRotate, mousePitch) {\n this._pitchWithRotate = options.pitchWithRotate;\n this._mouseRotate = mouseRotate;\n this._mousePitch = mousePitch;\n };\n DragRotateHandler.prototype.enable = function enable() {\n this._mouseRotate.enable();\n if (this._pitchWithRotate) {\n this._mousePitch.enable();\n }\n };\n DragRotateHandler.prototype.disable = function disable() {\n this._mouseRotate.disable();\n this._mousePitch.disable();\n };\n DragRotateHandler.prototype.isEnabled = function isEnabled() {\n return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled());\n };\n DragRotateHandler.prototype.isActive = function isActive() {\n return this._mouseRotate.isActive() || this._mousePitch.isActive();\n };\n var TouchZoomRotateHandler = function TouchZoomRotateHandler2(el, touchZoom, touchRotate, tapDragZoom) {\n this._el = el;\n this._touchZoom = touchZoom;\n this._touchRotate = touchRotate;\n this._tapDragZoom = tapDragZoom;\n this._rotationDisabled = false;\n this._enabled = true;\n };\n TouchZoomRotateHandler.prototype.enable = function enable(options) {\n this._touchZoom.enable(options);\n if (!this._rotationDisabled) {\n this._touchRotate.enable(options);\n }\n this._tapDragZoom.enable();\n this._el.classList.add(\"mapboxgl-touch-zoom-rotate\");\n };\n TouchZoomRotateHandler.prototype.disable = function disable() {\n this._touchZoom.disable();\n this._touchRotate.disable();\n this._tapDragZoom.disable();\n this._el.classList.remove(\"mapboxgl-touch-zoom-rotate\");\n };\n TouchZoomRotateHandler.prototype.isEnabled = function isEnabled() {\n return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled();\n };\n TouchZoomRotateHandler.prototype.isActive = function isActive() {\n return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive();\n };\n TouchZoomRotateHandler.prototype.disableRotation = function disableRotation() {\n this._rotationDisabled = true;\n this._touchRotate.disable();\n };\n TouchZoomRotateHandler.prototype.enableRotation = function enableRotation() {\n this._rotationDisabled = false;\n if (this._touchZoom.isEnabled()) {\n this._touchRotate.enable();\n }\n };\n var isMoving = function(p) {\n return p.zoom || p.drag || p.pitch || p.rotate;\n };\n var RenderFrameEvent = function(Event) {\n function RenderFrameEvent2() {\n Event.apply(this, arguments);\n }\n if (Event)\n RenderFrameEvent2.__proto__ = Event;\n RenderFrameEvent2.prototype = Object.create(Event && Event.prototype);\n RenderFrameEvent2.prototype.constructor = RenderFrameEvent2;\n return RenderFrameEvent2;\n }(performance2.Event);\n function hasChange(result) {\n return result.panDelta && result.panDelta.mag() || result.zoomDelta || result.bearingDelta || result.pitchDelta;\n }\n var HandlerManager = function HandlerManager2(map, options) {\n this._map = map;\n this._el = this._map.getCanvasContainer();\n this._handlers = [];\n this._handlersById = {};\n this._changes = [];\n this._inertia = new HandlerInertia(map);\n this._bearingSnap = options.bearingSnap;\n this._previousActiveHandlers = {};\n this._eventsInProgress = {};\n this._addDefaultHandlers(options);\n performance2.bindAll([\n \"handleEvent\",\n \"handleWindowEvent\"\n ], this);\n var el = this._el;\n this._listeners = [\n [\n el,\n \"touchstart\",\n { passive: true }\n ],\n [\n el,\n \"touchmove\",\n { passive: false }\n ],\n [\n el,\n \"touchend\",\n void 0\n ],\n [\n el,\n \"touchcancel\",\n void 0\n ],\n [\n el,\n \"mousedown\",\n void 0\n ],\n [\n el,\n \"mousemove\",\n void 0\n ],\n [\n el,\n \"mouseup\",\n void 0\n ],\n [\n performance2.window.document,\n \"mousemove\",\n { capture: true }\n ],\n [\n performance2.window.document,\n \"mouseup\",\n void 0\n ],\n [\n el,\n \"mouseover\",\n void 0\n ],\n [\n el,\n \"mouseout\",\n void 0\n ],\n [\n el,\n \"dblclick\",\n void 0\n ],\n [\n el,\n \"click\",\n void 0\n ],\n [\n el,\n \"keydown\",\n { capture: false }\n ],\n [\n el,\n \"keyup\",\n void 0\n ],\n [\n el,\n \"wheel\",\n { passive: false }\n ],\n [\n el,\n \"contextmenu\",\n void 0\n ],\n [\n performance2.window,\n \"blur\",\n void 0\n ]\n ];\n for (var i = 0, list = this._listeners; i < list.length; i += 1) {\n var ref = list[i];\n var target = ref[0];\n var type = ref[1];\n var listenerOptions = ref[2];\n DOM.addEventListener(target, type, target === performance2.window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);\n }\n };\n HandlerManager.prototype.destroy = function destroy() {\n for (var i = 0, list = this._listeners; i < list.length; i += 1) {\n var ref = list[i];\n var target = ref[0];\n var type = ref[1];\n var listenerOptions = ref[2];\n DOM.removeEventListener(target, type, target === performance2.window.document ? this.handleWindowEvent : this.handleEvent, listenerOptions);\n }\n };\n HandlerManager.prototype._addDefaultHandlers = function _addDefaultHandlers(options) {\n var map = this._map;\n var el = map.getCanvasContainer();\n this._add(\"mapEvent\", new MapEventHandler(map, options));\n var boxZoom = map.boxZoom = new BoxZoomHandler(map, options);\n this._add(\"boxZoom\", boxZoom);\n var tapZoom = new TapZoomHandler();\n var clickZoom = new ClickZoomHandler();\n map.doubleClickZoom = new DoubleClickZoomHandler(clickZoom, tapZoom);\n this._add(\"tapZoom\", tapZoom);\n this._add(\"clickZoom\", clickZoom);\n var tapDragZoom = new TapDragZoomHandler();\n this._add(\"tapDragZoom\", tapDragZoom);\n var touchPitch = map.touchPitch = new TouchPitchHandler();\n this._add(\"touchPitch\", touchPitch);\n var mouseRotate = new MouseRotateHandler(options);\n var mousePitch = new MousePitchHandler(options);\n map.dragRotate = new DragRotateHandler(options, mouseRotate, mousePitch);\n this._add(\"mouseRotate\", mouseRotate, [\"mousePitch\"]);\n this._add(\"mousePitch\", mousePitch, [\"mouseRotate\"]);\n var mousePan = new MousePanHandler(options);\n var touchPan = new TouchPanHandler(options);\n map.dragPan = new DragPanHandler(el, mousePan, touchPan);\n this._add(\"mousePan\", mousePan);\n this._add(\"touchPan\", touchPan, [\n \"touchZoom\",\n \"touchRotate\"\n ]);\n var touchRotate = new TouchRotateHandler();\n var touchZoom = new TouchZoomHandler();\n map.touchZoomRotate = new TouchZoomRotateHandler(el, touchZoom, touchRotate, tapDragZoom);\n this._add(\"touchRotate\", touchRotate, [\n \"touchPan\",\n \"touchZoom\"\n ]);\n this._add(\"touchZoom\", touchZoom, [\n \"touchPan\",\n \"touchRotate\"\n ]);\n var scrollZoom = map.scrollZoom = new ScrollZoomHandler(map, this);\n this._add(\"scrollZoom\", scrollZoom, [\"mousePan\"]);\n var keyboard = map.keyboard = new KeyboardHandler();\n this._add(\"keyboard\", keyboard);\n this._add(\"blockableMapEvent\", new BlockableMapEventHandler(map));\n for (var i = 0, list = [\n \"boxZoom\",\n \"doubleClickZoom\",\n \"tapDragZoom\",\n \"touchPitch\",\n \"dragRotate\",\n \"dragPan\",\n \"touchZoomRotate\",\n \"scrollZoom\",\n \"keyboard\"\n ]; i < list.length; i += 1) {\n var name2 = list[i];\n if (options.interactive && options[name2]) {\n map[name2].enable(options[name2]);\n }\n }\n };\n HandlerManager.prototype._add = function _add(handlerName, handler, allowed) {\n this._handlers.push({\n handlerName,\n handler,\n allowed\n });\n this._handlersById[handlerName] = handler;\n };\n HandlerManager.prototype.stop = function stop(allowEndAnimation) {\n if (this._updatingCamera) {\n return;\n }\n for (var i = 0, list = this._handlers; i < list.length; i += 1) {\n var ref = list[i];\n var handler = ref.handler;\n handler.reset();\n }\n this._inertia.clear();\n this._fireEvents({}, {}, allowEndAnimation);\n this._changes = [];\n };\n HandlerManager.prototype.isActive = function isActive() {\n for (var i = 0, list = this._handlers; i < list.length; i += 1) {\n var ref = list[i];\n var handler = ref.handler;\n if (handler.isActive()) {\n return true;\n }\n }\n return false;\n };\n HandlerManager.prototype.isZooming = function isZooming() {\n return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming();\n };\n HandlerManager.prototype.isRotating = function isRotating() {\n return !!this._eventsInProgress.rotate;\n };\n HandlerManager.prototype.isMoving = function isMoving$1() {\n return Boolean(isMoving(this._eventsInProgress)) || this.isZooming();\n };\n HandlerManager.prototype._blockedByActive = function _blockedByActive(activeHandlers, allowed, myName) {\n for (var name2 in activeHandlers) {\n if (name2 === myName) {\n continue;\n }\n if (!allowed || allowed.indexOf(name2) < 0) {\n return true;\n }\n }\n return false;\n };\n HandlerManager.prototype.handleWindowEvent = function handleWindowEvent(e) {\n this.handleEvent(e, e.type + \"Window\");\n };\n HandlerManager.prototype._getMapTouches = function _getMapTouches(touches) {\n var mapTouches = [];\n for (var i = 0, list = touches; i < list.length; i += 1) {\n var t = list[i];\n var target = t.target;\n if (this._el.contains(target)) {\n mapTouches.push(t);\n }\n }\n return mapTouches;\n };\n HandlerManager.prototype.handleEvent = function handleEvent(e, eventName) {\n if (e.type === \"blur\") {\n this.stop(true);\n return;\n }\n this._updatingCamera = true;\n var inputEvent = e.type === \"renderFrame\" ? void 0 : e;\n var mergedHandlerResult = { needsRenderFrame: false };\n var eventsInProgress = {};\n var activeHandlers = {};\n var mapTouches = e.touches ? this._getMapTouches(e.touches) : void 0;\n var points = mapTouches ? DOM.touchPos(this._el, mapTouches) : DOM.mousePos(this._el, e);\n for (var i = 0, list = this._handlers; i < list.length; i += 1) {\n var ref = list[i];\n var handlerName = ref.handlerName;\n var handler = ref.handler;\n var allowed = ref.allowed;\n if (!handler.isEnabled()) {\n continue;\n }\n var data = void 0;\n if (this._blockedByActive(activeHandlers, allowed, handlerName)) {\n handler.reset();\n } else {\n if (handler[eventName || e.type]) {\n data = handler[eventName || e.type](e, points, mapTouches);\n this.mergeHandlerResult(mergedHandlerResult, eventsInProgress, data, handlerName, inputEvent);\n if (data && data.needsRenderFrame) {\n this._triggerRenderFrame();\n }\n }\n }\n if (data || handler.isActive()) {\n activeHandlers[handlerName] = handler;\n }\n }\n var deactivatedHandlers = {};\n for (var name2 in this._previousActiveHandlers) {\n if (!activeHandlers[name2]) {\n deactivatedHandlers[name2] = inputEvent;\n }\n }\n this._previousActiveHandlers = activeHandlers;\n if (Object.keys(deactivatedHandlers).length || hasChange(mergedHandlerResult)) {\n this._changes.push([\n mergedHandlerResult,\n eventsInProgress,\n deactivatedHandlers\n ]);\n this._triggerRenderFrame();\n }\n if (Object.keys(activeHandlers).length || hasChange(mergedHandlerResult)) {\n this._map._stop(true);\n }\n this._updatingCamera = false;\n var cameraAnimation = mergedHandlerResult.cameraAnimation;\n if (cameraAnimation) {\n this._inertia.clear();\n this._fireEvents({}, {}, true);\n this._changes = [];\n cameraAnimation(this._map);\n }\n };\n HandlerManager.prototype.mergeHandlerResult = function mergeHandlerResult(mergedHandlerResult, eventsInProgress, handlerResult, name2, e) {\n if (!handlerResult) {\n return;\n }\n performance2.extend(mergedHandlerResult, handlerResult);\n var eventData = {\n handlerName: name2,\n originalEvent: handlerResult.originalEvent || e\n };\n if (handlerResult.zoomDelta !== void 0) {\n eventsInProgress.zoom = eventData;\n }\n if (handlerResult.panDelta !== void 0) {\n eventsInProgress.drag = eventData;\n }\n if (handlerResult.pitchDelta !== void 0) {\n eventsInProgress.pitch = eventData;\n }\n if (handlerResult.bearingDelta !== void 0) {\n eventsInProgress.rotate = eventData;\n }\n };\n HandlerManager.prototype._applyChanges = function _applyChanges() {\n var combined = {};\n var combinedEventsInProgress = {};\n var combinedDeactivatedHandlers = {};\n for (var i = 0, list = this._changes; i < list.length; i += 1) {\n var ref = list[i];\n var change = ref[0];\n var eventsInProgress = ref[1];\n var deactivatedHandlers = ref[2];\n if (change.panDelta) {\n combined.panDelta = (combined.panDelta || new performance2.Point(0, 0))._add(change.panDelta);\n }\n if (change.zoomDelta) {\n combined.zoomDelta = (combined.zoomDelta || 0) + change.zoomDelta;\n }\n if (change.bearingDelta) {\n combined.bearingDelta = (combined.bearingDelta || 0) + change.bearingDelta;\n }\n if (change.pitchDelta) {\n combined.pitchDelta = (combined.pitchDelta || 0) + change.pitchDelta;\n }\n if (change.around !== void 0) {\n combined.around = change.around;\n }\n if (change.pinchAround !== void 0) {\n combined.pinchAround = change.pinchAround;\n }\n if (change.noInertia) {\n combined.noInertia = change.noInertia;\n }\n performance2.extend(combinedEventsInProgress, eventsInProgress);\n performance2.extend(combinedDeactivatedHandlers, deactivatedHandlers);\n }\n this._updateMapTransform(combined, combinedEventsInProgress, combinedDeactivatedHandlers);\n this._changes = [];\n };\n HandlerManager.prototype._updateMapTransform = function _updateMapTransform(combinedResult, combinedEventsInProgress, deactivatedHandlers) {\n var map = this._map;\n var tr = map.transform;\n if (!hasChange(combinedResult)) {\n return this._fireEvents(combinedEventsInProgress, deactivatedHandlers, true);\n }\n var panDelta = combinedResult.panDelta;\n var zoomDelta = combinedResult.zoomDelta;\n var bearingDelta = combinedResult.bearingDelta;\n var pitchDelta = combinedResult.pitchDelta;\n var around = combinedResult.around;\n var pinchAround = combinedResult.pinchAround;\n if (pinchAround !== void 0) {\n around = pinchAround;\n }\n map._stop(true);\n around = around || map.transform.centerPoint;\n var loc = tr.pointLocation(panDelta ? around.sub(panDelta) : around);\n if (bearingDelta) {\n tr.bearing += bearingDelta;\n }\n if (pitchDelta) {\n tr.pitch += pitchDelta;\n }\n if (zoomDelta) {\n tr.zoom += zoomDelta;\n }\n tr.setLocationAtPoint(loc, around);\n this._map._update();\n if (!combinedResult.noInertia) {\n this._inertia.record(combinedResult);\n }\n this._fireEvents(combinedEventsInProgress, deactivatedHandlers, true);\n };\n HandlerManager.prototype._fireEvents = function _fireEvents(newEventsInProgress, deactivatedHandlers, allowEndAnimation) {\n var this$1 = this;\n var wasMoving = isMoving(this._eventsInProgress);\n var nowMoving = isMoving(newEventsInProgress);\n var startEvents = {};\n for (var eventName in newEventsInProgress) {\n var ref = newEventsInProgress[eventName];\n var originalEvent = ref.originalEvent;\n if (!this._eventsInProgress[eventName]) {\n startEvents[eventName + \"start\"] = originalEvent;\n }\n this._eventsInProgress[eventName] = newEventsInProgress[eventName];\n }\n if (!wasMoving && nowMoving) {\n this._fireEvent(\"movestart\", nowMoving.originalEvent);\n }\n for (var name2 in startEvents) {\n this._fireEvent(name2, startEvents[name2]);\n }\n if (nowMoving) {\n this._fireEvent(\"move\", nowMoving.originalEvent);\n }\n for (var eventName$1 in newEventsInProgress) {\n var ref$1 = newEventsInProgress[eventName$1];\n var originalEvent$1 = ref$1.originalEvent;\n this._fireEvent(eventName$1, originalEvent$1);\n }\n var endEvents = {};\n var originalEndEvent;\n for (var eventName$2 in this._eventsInProgress) {\n var ref$2 = this._eventsInProgress[eventName$2];\n var handlerName = ref$2.handlerName;\n var originalEvent$2 = ref$2.originalEvent;\n if (!this._handlersById[handlerName].isActive()) {\n delete this._eventsInProgress[eventName$2];\n originalEndEvent = deactivatedHandlers[handlerName] || originalEvent$2;\n endEvents[eventName$2 + \"end\"] = originalEndEvent;\n }\n }\n for (var name$1 in endEvents) {\n this._fireEvent(name$1, endEvents[name$1]);\n }\n var stillMoving = isMoving(this._eventsInProgress);\n if (allowEndAnimation && (wasMoving || nowMoving) && !stillMoving) {\n this._updatingCamera = true;\n var inertialEase = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions);\n var shouldSnapToNorth = function(bearing) {\n return bearing !== 0 && -this$1._bearingSnap < bearing && bearing < this$1._bearingSnap;\n };\n if (inertialEase) {\n if (shouldSnapToNorth(inertialEase.bearing || this._map.getBearing())) {\n inertialEase.bearing = 0;\n }\n this._map.easeTo(inertialEase, { originalEvent: originalEndEvent });\n } else {\n this._map.fire(new performance2.Event(\"moveend\", { originalEvent: originalEndEvent }));\n if (shouldSnapToNorth(this._map.getBearing())) {\n this._map.resetNorth();\n }\n }\n this._updatingCamera = false;\n }\n };\n HandlerManager.prototype._fireEvent = function _fireEvent(type, e) {\n this._map.fire(new performance2.Event(type, e ? { originalEvent: e } : {}));\n };\n HandlerManager.prototype._requestFrame = function _requestFrame() {\n var this$1 = this;\n this._map.triggerRepaint();\n return this._map._renderTaskQueue.add(function(timeStamp) {\n delete this$1._frameId;\n this$1.handleEvent(new RenderFrameEvent(\"renderFrame\", { timeStamp }));\n this$1._applyChanges();\n });\n };\n HandlerManager.prototype._triggerRenderFrame = function _triggerRenderFrame() {\n if (this._frameId === void 0) {\n this._frameId = this._requestFrame();\n }\n };\n var Camera = function(Evented) {\n function Camera2(transform, options) {\n Evented.call(this);\n this._moving = false;\n this._zooming = false;\n this.transform = transform;\n this._bearingSnap = options.bearingSnap;\n performance2.bindAll([\"_renderFrameCallback\"], this);\n }\n if (Evented)\n Camera2.__proto__ = Evented;\n Camera2.prototype = Object.create(Evented && Evented.prototype);\n Camera2.prototype.constructor = Camera2;\n Camera2.prototype.getCenter = function getCenter() {\n return new performance2.LngLat(this.transform.center.lng, this.transform.center.lat);\n };\n Camera2.prototype.setCenter = function setCenter(center, eventData) {\n return this.jumpTo({ center }, eventData);\n };\n Camera2.prototype.panBy = function panBy(offset, options, eventData) {\n offset = performance2.Point.convert(offset).mult(-1);\n return this.panTo(this.transform.center, performance2.extend({ offset }, options), eventData);\n };\n Camera2.prototype.panTo = function panTo(lnglat, options, eventData) {\n return this.easeTo(performance2.extend({ center: lnglat }, options), eventData);\n };\n Camera2.prototype.getZoom = function getZoom() {\n return this.transform.zoom;\n };\n Camera2.prototype.setZoom = function setZoom(zoom, eventData) {\n this.jumpTo({ zoom }, eventData);\n return this;\n };\n Camera2.prototype.zoomTo = function zoomTo(zoom, options, eventData) {\n return this.easeTo(performance2.extend({ zoom }, options), eventData);\n };\n Camera2.prototype.zoomIn = function zoomIn(options, eventData) {\n this.zoomTo(this.getZoom() + 1, options, eventData);\n return this;\n };\n Camera2.prototype.zoomOut = function zoomOut(options, eventData) {\n this.zoomTo(this.getZoom() - 1, options, eventData);\n return this;\n };\n Camera2.prototype.getBearing = function getBearing() {\n return this.transform.bearing;\n };\n Camera2.prototype.setBearing = function setBearing(bearing, eventData) {\n this.jumpTo({ bearing }, eventData);\n return this;\n };\n Camera2.prototype.getPadding = function getPadding() {\n return this.transform.padding;\n };\n Camera2.prototype.setPadding = function setPadding(padding2, eventData) {\n this.jumpTo({ padding: padding2 }, eventData);\n return this;\n };\n Camera2.prototype.rotateTo = function rotateTo(bearing, options, eventData) {\n return this.easeTo(performance2.extend({ bearing }, options), eventData);\n };\n Camera2.prototype.resetNorth = function resetNorth(options, eventData) {\n this.rotateTo(0, performance2.extend({ duration: 1e3 }, options), eventData);\n return this;\n };\n Camera2.prototype.resetNorthPitch = function resetNorthPitch(options, eventData) {\n this.easeTo(performance2.extend({\n bearing: 0,\n pitch: 0,\n duration: 1e3\n }, options), eventData);\n return this;\n };\n Camera2.prototype.snapToNorth = function snapToNorth(options, eventData) {\n if (Math.abs(this.getBearing()) < this._bearingSnap) {\n return this.resetNorth(options, eventData);\n }\n return this;\n };\n Camera2.prototype.getPitch = function getPitch() {\n return this.transform.pitch;\n };\n Camera2.prototype.setPitch = function setPitch(pitch, eventData) {\n this.jumpTo({ pitch }, eventData);\n return this;\n };\n Camera2.prototype.cameraForBounds = function cameraForBounds(bounds, options) {\n bounds = performance2.LngLatBounds.convert(bounds);\n var bearing = options && options.bearing || 0;\n return this._cameraForBoxAndBearing(bounds.getNorthWest(), bounds.getSouthEast(), bearing, options);\n };\n Camera2.prototype._cameraForBoxAndBearing = function _cameraForBoxAndBearing(p0, p1, bearing, options) {\n var defaultPadding = {\n top: 0,\n bottom: 0,\n right: 0,\n left: 0\n };\n options = performance2.extend({\n padding: defaultPadding,\n offset: [\n 0,\n 0\n ],\n maxZoom: this.transform.maxZoom\n }, options);\n if (typeof options.padding === \"number\") {\n var p = options.padding;\n options.padding = {\n top: p,\n bottom: p,\n right: p,\n left: p\n };\n }\n options.padding = performance2.extend(defaultPadding, options.padding);\n var tr = this.transform;\n var edgePadding = tr.padding;\n var p0world = tr.project(performance2.LngLat.convert(p0));\n var p1world = tr.project(performance2.LngLat.convert(p1));\n var p0rotated = p0world.rotate(-bearing * Math.PI / 180);\n var p1rotated = p1world.rotate(-bearing * Math.PI / 180);\n var upperRight = new performance2.Point(Math.max(p0rotated.x, p1rotated.x), Math.max(p0rotated.y, p1rotated.y));\n var lowerLeft = new performance2.Point(Math.min(p0rotated.x, p1rotated.x), Math.min(p0rotated.y, p1rotated.y));\n var size = upperRight.sub(lowerLeft);\n var scaleX = (tr.width - (edgePadding.left + edgePadding.right + options.padding.left + options.padding.right)) / size.x;\n var scaleY = (tr.height - (edgePadding.top + edgePadding.bottom + options.padding.top + options.padding.bottom)) / size.y;\n if (scaleY < 0 || scaleX < 0) {\n performance2.warnOnce(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\");\n return;\n }\n var zoom = Math.min(tr.scaleZoom(tr.scale * Math.min(scaleX, scaleY)), options.maxZoom);\n var offset = typeof options.offset.x === \"number\" ? new performance2.Point(options.offset.x, options.offset.y) : performance2.Point.convert(options.offset);\n var paddingOffsetX = (options.padding.left - options.padding.right) / 2;\n var paddingOffsetY = (options.padding.top - options.padding.bottom) / 2;\n var paddingOffset = new performance2.Point(paddingOffsetX, paddingOffsetY);\n var rotatedPaddingOffset = paddingOffset.rotate(bearing * Math.PI / 180);\n var offsetAtInitialZoom = offset.add(rotatedPaddingOffset);\n var offsetAtFinalZoom = offsetAtInitialZoom.mult(tr.scale / tr.zoomScale(zoom));\n var center = tr.unproject(p0world.add(p1world).div(2).sub(offsetAtFinalZoom));\n return {\n center,\n zoom,\n bearing\n };\n };\n Camera2.prototype.fitBounds = function fitBounds(bounds, options, eventData) {\n return this._fitInternal(this.cameraForBounds(bounds, options), options, eventData);\n };\n Camera2.prototype.fitScreenCoordinates = function fitScreenCoordinates(p0, p1, bearing, options, eventData) {\n return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(performance2.Point.convert(p0)), this.transform.pointLocation(performance2.Point.convert(p1)), bearing, options), options, eventData);\n };\n Camera2.prototype._fitInternal = function _fitInternal(calculatedOptions, options, eventData) {\n if (!calculatedOptions) {\n return this;\n }\n options = performance2.extend(calculatedOptions, options);\n delete options.padding;\n return options.linear ? this.easeTo(options, eventData) : this.flyTo(options, eventData);\n };\n Camera2.prototype.jumpTo = function jumpTo(options, eventData) {\n this.stop();\n var tr = this.transform;\n var zoomChanged = false, bearingChanged = false, pitchChanged = false;\n if (\"zoom\" in options && tr.zoom !== +options.zoom) {\n zoomChanged = true;\n tr.zoom = +options.zoom;\n }\n if (options.center !== void 0) {\n tr.center = performance2.LngLat.convert(options.center);\n }\n if (\"bearing\" in options && tr.bearing !== +options.bearing) {\n bearingChanged = true;\n tr.bearing = +options.bearing;\n }\n if (\"pitch\" in options && tr.pitch !== +options.pitch) {\n pitchChanged = true;\n tr.pitch = +options.pitch;\n }\n if (options.padding != null && !tr.isPaddingEqual(options.padding)) {\n tr.padding = options.padding;\n }\n this.fire(new performance2.Event(\"movestart\", eventData)).fire(new performance2.Event(\"move\", eventData));\n if (zoomChanged) {\n this.fire(new performance2.Event(\"zoomstart\", eventData)).fire(new performance2.Event(\"zoom\", eventData)).fire(new performance2.Event(\"zoomend\", eventData));\n }\n if (bearingChanged) {\n this.fire(new performance2.Event(\"rotatestart\", eventData)).fire(new performance2.Event(\"rotate\", eventData)).fire(new performance2.Event(\"rotateend\", eventData));\n }\n if (pitchChanged) {\n this.fire(new performance2.Event(\"pitchstart\", eventData)).fire(new performance2.Event(\"pitch\", eventData)).fire(new performance2.Event(\"pitchend\", eventData));\n }\n return this.fire(new performance2.Event(\"moveend\", eventData));\n };\n Camera2.prototype.easeTo = function easeTo(options, eventData) {\n var this$1 = this;\n this._stop(false, options.easeId);\n options = performance2.extend({\n offset: [\n 0,\n 0\n ],\n duration: 500,\n easing: performance2.ease\n }, options);\n if (options.animate === false || !options.essential && performance2.browser.prefersReducedMotion) {\n options.duration = 0;\n }\n var tr = this.transform, startZoom = this.getZoom(), startBearing = this.getBearing(), startPitch = this.getPitch(), startPadding = this.getPadding(), zoom = \"zoom\" in options ? +options.zoom : startZoom, bearing = \"bearing\" in options ? this._normalizeBearing(options.bearing, startBearing) : startBearing, pitch = \"pitch\" in options ? +options.pitch : startPitch, padding2 = \"padding\" in options ? options.padding : tr.padding;\n var offsetAsPoint = performance2.Point.convert(options.offset);\n var pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n var locationAtOffset = tr.pointLocation(pointAtOffset);\n var center = performance2.LngLat.convert(options.center || locationAtOffset);\n this._normalizeCenter(center);\n var from = tr.project(locationAtOffset);\n var delta = tr.project(center).sub(from);\n var finalScale = tr.zoomScale(zoom - startZoom);\n var around, aroundPoint;\n if (options.around) {\n around = performance2.LngLat.convert(options.around);\n aroundPoint = tr.locationPoint(around);\n }\n var currently = {\n moving: this._moving,\n zooming: this._zooming,\n rotating: this._rotating,\n pitching: this._pitching\n };\n this._zooming = this._zooming || zoom !== startZoom;\n this._rotating = this._rotating || startBearing !== bearing;\n this._pitching = this._pitching || pitch !== startPitch;\n this._padding = !tr.isPaddingEqual(padding2);\n this._easeId = options.easeId;\n this._prepareEase(eventData, options.noMoveStart, currently);\n this._ease(function(k) {\n if (this$1._zooming) {\n tr.zoom = performance2.number(startZoom, zoom, k);\n }\n if (this$1._rotating) {\n tr.bearing = performance2.number(startBearing, bearing, k);\n }\n if (this$1._pitching) {\n tr.pitch = performance2.number(startPitch, pitch, k);\n }\n if (this$1._padding) {\n tr.interpolatePadding(startPadding, padding2, k);\n pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n }\n if (around) {\n tr.setLocationAtPoint(around, aroundPoint);\n } else {\n var scale = tr.zoomScale(tr.zoom - startZoom);\n var base = zoom > startZoom ? Math.min(2, finalScale) : Math.max(0.5, finalScale);\n var speedup = Math.pow(base, 1 - k);\n var newCenter = tr.unproject(from.add(delta.mult(k * speedup)).mult(scale));\n tr.setLocationAtPoint(tr.renderWorldCopies ? newCenter.wrap() : newCenter, pointAtOffset);\n }\n this$1._fireMoveEvents(eventData);\n }, function(interruptingEaseId) {\n this$1._afterEase(eventData, interruptingEaseId);\n }, options);\n return this;\n };\n Camera2.prototype._prepareEase = function _prepareEase(eventData, noMoveStart, currently) {\n if (currently === void 0)\n currently = {};\n this._moving = true;\n if (!noMoveStart && !currently.moving) {\n this.fire(new performance2.Event(\"movestart\", eventData));\n }\n if (this._zooming && !currently.zooming) {\n this.fire(new performance2.Event(\"zoomstart\", eventData));\n }\n if (this._rotating && !currently.rotating) {\n this.fire(new performance2.Event(\"rotatestart\", eventData));\n }\n if (this._pitching && !currently.pitching) {\n this.fire(new performance2.Event(\"pitchstart\", eventData));\n }\n };\n Camera2.prototype._fireMoveEvents = function _fireMoveEvents(eventData) {\n this.fire(new performance2.Event(\"move\", eventData));\n if (this._zooming) {\n this.fire(new performance2.Event(\"zoom\", eventData));\n }\n if (this._rotating) {\n this.fire(new performance2.Event(\"rotate\", eventData));\n }\n if (this._pitching) {\n this.fire(new performance2.Event(\"pitch\", eventData));\n }\n };\n Camera2.prototype._afterEase = function _afterEase(eventData, easeId) {\n if (this._easeId && easeId && this._easeId === easeId) {\n return;\n }\n delete this._easeId;\n var wasZooming = this._zooming;\n var wasRotating = this._rotating;\n var wasPitching = this._pitching;\n this._moving = false;\n this._zooming = false;\n this._rotating = false;\n this._pitching = false;\n this._padding = false;\n if (wasZooming) {\n this.fire(new performance2.Event(\"zoomend\", eventData));\n }\n if (wasRotating) {\n this.fire(new performance2.Event(\"rotateend\", eventData));\n }\n if (wasPitching) {\n this.fire(new performance2.Event(\"pitchend\", eventData));\n }\n this.fire(new performance2.Event(\"moveend\", eventData));\n };\n Camera2.prototype.flyTo = function flyTo(options, eventData) {\n var this$1 = this;\n if (!options.essential && performance2.browser.prefersReducedMotion) {\n var coercedOptions = performance2.pick(options, [\n \"center\",\n \"zoom\",\n \"bearing\",\n \"pitch\",\n \"around\"\n ]);\n return this.jumpTo(coercedOptions, eventData);\n }\n this.stop();\n options = performance2.extend({\n offset: [\n 0,\n 0\n ],\n speed: 1.2,\n curve: 1.42,\n easing: performance2.ease\n }, options);\n var tr = this.transform, startZoom = this.getZoom(), startBearing = this.getBearing(), startPitch = this.getPitch(), startPadding = this.getPadding();\n var zoom = \"zoom\" in options ? performance2.clamp(+options.zoom, tr.minZoom, tr.maxZoom) : startZoom;\n var bearing = \"bearing\" in options ? this._normalizeBearing(options.bearing, startBearing) : startBearing;\n var pitch = \"pitch\" in options ? +options.pitch : startPitch;\n var padding2 = \"padding\" in options ? options.padding : tr.padding;\n var scale = tr.zoomScale(zoom - startZoom);\n var offsetAsPoint = performance2.Point.convert(options.offset);\n var pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n var locationAtOffset = tr.pointLocation(pointAtOffset);\n var center = performance2.LngLat.convert(options.center || locationAtOffset);\n this._normalizeCenter(center);\n var from = tr.project(locationAtOffset);\n var delta = tr.project(center).sub(from);\n var rho = options.curve;\n var w0 = Math.max(tr.width, tr.height), w1 = w0 / scale, u1 = delta.mag();\n if (\"minZoom\" in options) {\n var minZoom = performance2.clamp(Math.min(options.minZoom, startZoom, zoom), tr.minZoom, tr.maxZoom);\n var wMax = w0 / tr.zoomScale(minZoom - startZoom);\n rho = Math.sqrt(wMax / u1 * 2);\n }\n var rho2 = rho * rho;\n function r(i) {\n var b = (w1 * w1 - w0 * w0 + (i ? -1 : 1) * rho2 * rho2 * u1 * u1) / (2 * (i ? w1 : w0) * rho2 * u1);\n return Math.log(Math.sqrt(b * b + 1) - b);\n }\n function sinh2(n) {\n return (Math.exp(n) - Math.exp(-n)) / 2;\n }\n function cosh2(n) {\n return (Math.exp(n) + Math.exp(-n)) / 2;\n }\n function tanh2(n) {\n return sinh2(n) / cosh2(n);\n }\n var r0 = r(0);\n var w = function(s) {\n return cosh2(r0) / cosh2(r0 + rho * s);\n };\n var u = function(s) {\n return w0 * ((cosh2(r0) * tanh2(r0 + rho * s) - sinh2(r0)) / rho2) / u1;\n };\n var S = (r(1) - r0) / rho;\n if (Math.abs(u1) < 1e-6 || !isFinite(S)) {\n if (Math.abs(w0 - w1) < 1e-6) {\n return this.easeTo(options, eventData);\n }\n var k = w1 < w0 ? -1 : 1;\n S = Math.abs(Math.log(w1 / w0)) / rho;\n u = function() {\n return 0;\n };\n w = function(s) {\n return Math.exp(k * rho * s);\n };\n }\n if (\"duration\" in options) {\n options.duration = +options.duration;\n } else {\n var V = \"screenSpeed\" in options ? +options.screenSpeed / rho : +options.speed;\n options.duration = 1e3 * S / V;\n }\n if (options.maxDuration && options.duration > options.maxDuration) {\n options.duration = 0;\n }\n this._zooming = true;\n this._rotating = startBearing !== bearing;\n this._pitching = pitch !== startPitch;\n this._padding = !tr.isPaddingEqual(padding2);\n this._prepareEase(eventData, false);\n this._ease(function(k2) {\n var s = k2 * S;\n var scale2 = 1 / w(s);\n tr.zoom = k2 === 1 ? zoom : startZoom + tr.scaleZoom(scale2);\n if (this$1._rotating) {\n tr.bearing = performance2.number(startBearing, bearing, k2);\n }\n if (this$1._pitching) {\n tr.pitch = performance2.number(startPitch, pitch, k2);\n }\n if (this$1._padding) {\n tr.interpolatePadding(startPadding, padding2, k2);\n pointAtOffset = tr.centerPoint.add(offsetAsPoint);\n }\n var newCenter = k2 === 1 ? center : tr.unproject(from.add(delta.mult(u(s))).mult(scale2));\n tr.setLocationAtPoint(tr.renderWorldCopies ? newCenter.wrap() : newCenter, pointAtOffset);\n this$1._fireMoveEvents(eventData);\n }, function() {\n return this$1._afterEase(eventData);\n }, options);\n return this;\n };\n Camera2.prototype.isEasing = function isEasing() {\n return !!this._easeFrameId;\n };\n Camera2.prototype.stop = function stop() {\n return this._stop();\n };\n Camera2.prototype._stop = function _stop(allowGestures, easeId) {\n if (this._easeFrameId) {\n this._cancelRenderFrame(this._easeFrameId);\n delete this._easeFrameId;\n delete this._onEaseFrame;\n }\n if (this._onEaseEnd) {\n var onEaseEnd = this._onEaseEnd;\n delete this._onEaseEnd;\n onEaseEnd.call(this, easeId);\n }\n if (!allowGestures) {\n var handlers = this.handlers;\n if (handlers) {\n handlers.stop(false);\n }\n }\n return this;\n };\n Camera2.prototype._ease = function _ease(frame, finish, options) {\n if (options.animate === false || options.duration === 0) {\n frame(1);\n finish();\n } else {\n this._easeStart = performance2.browser.now();\n this._easeOptions = options;\n this._onEaseFrame = frame;\n this._onEaseEnd = finish;\n this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback);\n }\n };\n Camera2.prototype._renderFrameCallback = function _renderFrameCallback() {\n var t = Math.min((performance2.browser.now() - this._easeStart) / this._easeOptions.duration, 1);\n this._onEaseFrame(this._easeOptions.easing(t));\n if (t < 1) {\n this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback);\n } else {\n this.stop();\n }\n };\n Camera2.prototype._normalizeBearing = function _normalizeBearing(bearing, currentBearing) {\n bearing = performance2.wrap(bearing, -180, 180);\n var diff = Math.abs(bearing - currentBearing);\n if (Math.abs(bearing - 360 - currentBearing) < diff) {\n bearing -= 360;\n }\n if (Math.abs(bearing + 360 - currentBearing) < diff) {\n bearing += 360;\n }\n return bearing;\n };\n Camera2.prototype._normalizeCenter = function _normalizeCenter(center) {\n var tr = this.transform;\n if (!tr.renderWorldCopies || tr.lngRange) {\n return;\n }\n var delta = center.lng - tr.center.lng;\n center.lng += delta > 180 ? -360 : delta < -180 ? 360 : 0;\n };\n return Camera2;\n }(performance2.Evented);\n var AttributionControl = function AttributionControl2(options) {\n if (options === void 0)\n options = {};\n this.options = options;\n performance2.bindAll([\n \"_toggleAttribution\",\n \"_updateEditLink\",\n \"_updateData\",\n \"_updateCompact\"\n ], this);\n };\n AttributionControl.prototype.getDefaultPosition = function getDefaultPosition() {\n return \"bottom-right\";\n };\n AttributionControl.prototype.onAdd = function onAdd(map) {\n var compact = this.options && this.options.compact;\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-attrib\");\n this._compactButton = DOM.create(\"button\", \"mapboxgl-ctrl-attrib-button\", this._container);\n this._compactButton.addEventListener(\"click\", this._toggleAttribution);\n this._setElementTitle(this._compactButton, \"ToggleAttribution\");\n this._innerContainer = DOM.create(\"div\", \"mapboxgl-ctrl-attrib-inner\", this._container);\n this._innerContainer.setAttribute(\"role\", \"list\");\n if (compact) {\n this._container.classList.add(\"mapboxgl-compact\");\n }\n this._updateAttributions();\n this._updateEditLink();\n this._map.on(\"styledata\", this._updateData);\n this._map.on(\"sourcedata\", this._updateData);\n this._map.on(\"moveend\", this._updateEditLink);\n if (compact === void 0) {\n this._map.on(\"resize\", this._updateCompact);\n this._updateCompact();\n }\n return this._container;\n };\n AttributionControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n this._map.off(\"styledata\", this._updateData);\n this._map.off(\"sourcedata\", this._updateData);\n this._map.off(\"moveend\", this._updateEditLink);\n this._map.off(\"resize\", this._updateCompact);\n this._map = void 0;\n this._attribHTML = void 0;\n };\n AttributionControl.prototype._setElementTitle = function _setElementTitle(element, title) {\n var str = this._map._getUIString(\"AttributionControl.\" + title);\n element.title = str;\n element.setAttribute(\"aria-label\", str);\n };\n AttributionControl.prototype._toggleAttribution = function _toggleAttribution() {\n if (this._container.classList.contains(\"mapboxgl-compact-show\")) {\n this._container.classList.remove(\"mapboxgl-compact-show\");\n this._compactButton.setAttribute(\"aria-pressed\", \"false\");\n } else {\n this._container.classList.add(\"mapboxgl-compact-show\");\n this._compactButton.setAttribute(\"aria-pressed\", \"true\");\n }\n };\n AttributionControl.prototype._updateEditLink = function _updateEditLink() {\n var editLink = this._editLink;\n if (!editLink) {\n editLink = this._editLink = this._container.querySelector(\".mapbox-improve-map\");\n }\n var params = [\n {\n key: \"owner\",\n value: this.styleOwner\n },\n {\n key: \"id\",\n value: this.styleId\n },\n {\n key: \"access_token\",\n value: this._map._requestManager._customAccessToken || performance2.config.ACCESS_TOKEN\n }\n ];\n if (editLink) {\n var paramString = params.reduce(function(acc, next, i) {\n if (next.value) {\n acc += next.key + \"=\" + next.value + (i < params.length - 1 ? \"&\" : \"\");\n }\n return acc;\n }, \"?\");\n editLink.href = performance2.config.FEEDBACK_URL + \"/\" + paramString + (this._map._hash ? this._map._hash.getHashString(true) : \"\");\n editLink.rel = \"noopener nofollow\";\n this._setElementTitle(editLink, \"MapFeedback\");\n }\n };\n AttributionControl.prototype._updateData = function _updateData(e) {\n if (e && (e.sourceDataType === \"metadata\" || e.sourceDataType === \"visibility\" || e.dataType === \"style\")) {\n this._updateAttributions();\n this._updateEditLink();\n }\n };\n AttributionControl.prototype._updateAttributions = function _updateAttributions() {\n if (!this._map.style) {\n return;\n }\n var attributions = [];\n if (this.options.customAttribution) {\n if (Array.isArray(this.options.customAttribution)) {\n attributions = attributions.concat(this.options.customAttribution.map(function(attribution) {\n if (typeof attribution !== \"string\") {\n return \"\";\n }\n return attribution;\n }));\n } else if (typeof this.options.customAttribution === \"string\") {\n attributions.push(this.options.customAttribution);\n }\n }\n if (this._map.style.stylesheet) {\n var stylesheet = this._map.style.stylesheet;\n this.styleOwner = stylesheet.owner;\n this.styleId = stylesheet.id;\n }\n var sourceCaches = this._map.style.sourceCaches;\n for (var id in sourceCaches) {\n var sourceCache = sourceCaches[id];\n if (sourceCache.used) {\n var source = sourceCache.getSource();\n if (source.attribution && attributions.indexOf(source.attribution) < 0) {\n attributions.push(source.attribution);\n }\n }\n }\n attributions.sort(function(a, b) {\n return a.length - b.length;\n });\n attributions = attributions.filter(function(attrib, i) {\n for (var j = i + 1; j < attributions.length; j++) {\n if (attributions[j].indexOf(attrib) >= 0) {\n return false;\n }\n }\n return true;\n });\n var attribHTML = attributions.join(\" | \");\n if (attribHTML === this._attribHTML) {\n return;\n }\n this._attribHTML = attribHTML;\n if (attributions.length) {\n this._innerContainer.innerHTML = attribHTML;\n this._container.classList.remove(\"mapboxgl-attrib-empty\");\n } else {\n this._container.classList.add(\"mapboxgl-attrib-empty\");\n }\n this._editLink = null;\n };\n AttributionControl.prototype._updateCompact = function _updateCompact() {\n if (this._map.getCanvasContainer().offsetWidth <= 640) {\n this._container.classList.add(\"mapboxgl-compact\");\n } else {\n this._container.classList.remove(\"mapboxgl-compact\", \"mapboxgl-compact-show\");\n }\n };\n var LogoControl = function LogoControl2() {\n performance2.bindAll([\"_updateLogo\"], this);\n performance2.bindAll([\"_updateCompact\"], this);\n };\n LogoControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl\");\n var anchor = DOM.create(\"a\", \"mapboxgl-ctrl-logo\");\n anchor.target = \"_blank\";\n anchor.rel = \"noopener nofollow\";\n anchor.href = \"https://www.mapbox.com/\";\n anchor.setAttribute(\"aria-label\", this._map._getUIString(\"LogoControl.Title\"));\n anchor.setAttribute(\"rel\", \"noopener nofollow\");\n this._container.appendChild(anchor);\n this._container.style.display = \"none\";\n this._map.on(\"sourcedata\", this._updateLogo);\n this._updateLogo();\n this._map.on(\"resize\", this._updateCompact);\n this._updateCompact();\n return this._container;\n };\n LogoControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n this._map.off(\"sourcedata\", this._updateLogo);\n this._map.off(\"resize\", this._updateCompact);\n };\n LogoControl.prototype.getDefaultPosition = function getDefaultPosition() {\n return \"bottom-left\";\n };\n LogoControl.prototype._updateLogo = function _updateLogo(e) {\n if (!e || e.sourceDataType === \"metadata\") {\n this._container.style.display = this._logoRequired() ? \"block\" : \"none\";\n }\n };\n LogoControl.prototype._logoRequired = function _logoRequired() {\n if (!this._map.style) {\n return;\n }\n var sourceCaches = this._map.style.sourceCaches;\n for (var id in sourceCaches) {\n var source = sourceCaches[id].getSource();\n if (source.mapbox_logo) {\n return true;\n }\n }\n return false;\n };\n LogoControl.prototype._updateCompact = function _updateCompact() {\n var containerChildren = this._container.children;\n if (containerChildren.length) {\n var anchor = containerChildren[0];\n if (this._map.getCanvasContainer().offsetWidth < 250) {\n anchor.classList.add(\"mapboxgl-compact\");\n } else {\n anchor.classList.remove(\"mapboxgl-compact\");\n }\n }\n };\n var TaskQueue = function TaskQueue2() {\n this._queue = [];\n this._id = 0;\n this._cleared = false;\n this._currentlyRunning = false;\n };\n TaskQueue.prototype.add = function add(callback) {\n var id = ++this._id;\n var queue = this._queue;\n queue.push({\n callback,\n id,\n cancelled: false\n });\n return id;\n };\n TaskQueue.prototype.remove = function remove(id) {\n var running = this._currentlyRunning;\n var queue = running ? this._queue.concat(running) : this._queue;\n for (var i = 0, list = queue; i < list.length; i += 1) {\n var task = list[i];\n if (task.id === id) {\n task.cancelled = true;\n return;\n }\n }\n };\n TaskQueue.prototype.run = function run(timeStamp) {\n if (timeStamp === void 0)\n timeStamp = 0;\n var queue = this._currentlyRunning = this._queue;\n this._queue = [];\n for (var i = 0, list = queue; i < list.length; i += 1) {\n var task = list[i];\n if (task.cancelled) {\n continue;\n }\n task.callback(timeStamp);\n if (this._cleared) {\n break;\n }\n }\n this._cleared = false;\n this._currentlyRunning = false;\n };\n TaskQueue.prototype.clear = function clear() {\n if (this._currentlyRunning) {\n this._cleared = true;\n }\n this._queue = [];\n };\n var defaultLocale = {\n \"AttributionControl.ToggleAttribution\": \"Toggle attribution\",\n \"AttributionControl.MapFeedback\": \"Map feedback\",\n \"FullscreenControl.Enter\": \"Enter fullscreen\",\n \"FullscreenControl.Exit\": \"Exit fullscreen\",\n \"GeolocateControl.FindMyLocation\": \"Find my location\",\n \"GeolocateControl.LocationNotAvailable\": \"Location not available\",\n \"LogoControl.Title\": \"Mapbox logo\",\n \"NavigationControl.ResetBearing\": \"Reset bearing to north\",\n \"NavigationControl.ZoomIn\": \"Zoom in\",\n \"NavigationControl.ZoomOut\": \"Zoom out\",\n \"ScaleControl.Feet\": \"ft\",\n \"ScaleControl.Meters\": \"m\",\n \"ScaleControl.Kilometers\": \"km\",\n \"ScaleControl.Miles\": \"mi\",\n \"ScaleControl.NauticalMiles\": \"nm\"\n };\n var HTMLImageElement2 = performance2.window.HTMLImageElement;\n var HTMLElement2 = performance2.window.HTMLElement;\n var ImageBitmap2 = performance2.window.ImageBitmap;\n var defaultMinZoom = -2;\n var defaultMaxZoom = 22;\n var defaultMinPitch = 0;\n var defaultMaxPitch = 60;\n var defaultOptions$1 = {\n center: [\n 0,\n 0\n ],\n zoom: 0,\n bearing: 0,\n pitch: 0,\n minZoom: defaultMinZoom,\n maxZoom: defaultMaxZoom,\n minPitch: defaultMinPitch,\n maxPitch: defaultMaxPitch,\n interactive: true,\n scrollZoom: true,\n boxZoom: true,\n dragRotate: true,\n dragPan: true,\n keyboard: true,\n doubleClickZoom: true,\n touchZoomRotate: true,\n touchPitch: true,\n bearingSnap: 7,\n clickTolerance: 3,\n pitchWithRotate: true,\n hash: false,\n attributionControl: true,\n failIfMajorPerformanceCaveat: false,\n preserveDrawingBuffer: false,\n trackResize: true,\n renderWorldCopies: true,\n refreshExpiredTiles: true,\n maxTileCacheSize: null,\n localIdeographFontFamily: \"sans-serif\",\n transformRequest: null,\n accessToken: null,\n fadeDuration: 300,\n crossSourceCollisions: true\n };\n var Map2 = function(Camera2) {\n function Map3(options) {\n var this$1 = this;\n options = performance2.extend({}, defaultOptions$1, options);\n if (options.minZoom != null && options.maxZoom != null && options.minZoom > options.maxZoom) {\n throw new Error(\"maxZoom must be greater than or equal to minZoom\");\n }\n if (options.minPitch != null && options.maxPitch != null && options.minPitch > options.maxPitch) {\n throw new Error(\"maxPitch must be greater than or equal to minPitch\");\n }\n if (options.minPitch != null && options.minPitch < defaultMinPitch) {\n throw new Error(\"minPitch must be greater than or equal to \" + defaultMinPitch);\n }\n if (options.maxPitch != null && options.maxPitch > defaultMaxPitch) {\n throw new Error(\"maxPitch must be less than or equal to \" + defaultMaxPitch);\n }\n var transform = new Transform(options.minZoom, options.maxZoom, options.minPitch, options.maxPitch, options.renderWorldCopies);\n Camera2.call(this, transform, options);\n this._interactive = options.interactive;\n this._maxTileCacheSize = options.maxTileCacheSize;\n this._failIfMajorPerformanceCaveat = options.failIfMajorPerformanceCaveat;\n this._preserveDrawingBuffer = options.preserveDrawingBuffer;\n this._antialias = options.antialias;\n this._trackResize = options.trackResize;\n this._bearingSnap = options.bearingSnap;\n this._refreshExpiredTiles = options.refreshExpiredTiles;\n this._fadeDuration = options.fadeDuration;\n this._crossSourceCollisions = options.crossSourceCollisions;\n this._crossFadingFactor = 1;\n this._collectResourceTiming = options.collectResourceTiming;\n this._renderTaskQueue = new TaskQueue();\n this._controls = [];\n this._mapId = performance2.uniqueId();\n this._locale = performance2.extend({}, defaultLocale, options.locale);\n this._clickTolerance = options.clickTolerance;\n this._requestManager = new performance2.RequestManager(options.transformRequest, options.accessToken);\n if (typeof options.container === \"string\") {\n this._container = performance2.window.document.getElementById(options.container);\n if (!this._container) {\n throw new Error(\"Container '\" + options.container + \"' not found.\");\n }\n } else if (options.container instanceof HTMLElement2) {\n this._container = options.container;\n } else {\n throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");\n }\n if (options.maxBounds) {\n this.setMaxBounds(options.maxBounds);\n }\n performance2.bindAll([\n \"_onWindowOnline\",\n \"_onWindowResize\",\n \"_onMapScroll\",\n \"_contextLost\",\n \"_contextRestored\"\n ], this);\n this._setupContainer();\n this._setupPainter();\n if (this.painter === void 0) {\n throw new Error(\"Failed to initialize WebGL.\");\n }\n this.on(\"move\", function() {\n return this$1._update(false);\n });\n this.on(\"moveend\", function() {\n return this$1._update(false);\n });\n this.on(\"zoom\", function() {\n return this$1._update(true);\n });\n if (typeof performance2.window !== \"undefined\") {\n performance2.window.addEventListener(\"online\", this._onWindowOnline, false);\n performance2.window.addEventListener(\"resize\", this._onWindowResize, false);\n performance2.window.addEventListener(\"orientationchange\", this._onWindowResize, false);\n }\n this.handlers = new HandlerManager(this, options);\n var hashName = typeof options.hash === \"string\" && options.hash || void 0;\n this._hash = options.hash && new Hash(hashName).addTo(this);\n if (!this._hash || !this._hash._onHashChange()) {\n this.jumpTo({\n center: options.center,\n zoom: options.zoom,\n bearing: options.bearing,\n pitch: options.pitch\n });\n if (options.bounds) {\n this.resize();\n this.fitBounds(options.bounds, performance2.extend({}, options.fitBoundsOptions, { duration: 0 }));\n }\n }\n this.resize();\n this._localIdeographFontFamily = options.localIdeographFontFamily;\n if (options.style) {\n this.setStyle(options.style, { localIdeographFontFamily: options.localIdeographFontFamily });\n }\n if (options.attributionControl) {\n this.addControl(new AttributionControl({ customAttribution: options.customAttribution }));\n }\n this.addControl(new LogoControl(), options.logoPosition);\n this.on(\"style.load\", function() {\n if (this$1.transform.unmodified) {\n this$1.jumpTo(this$1.style.stylesheet);\n }\n });\n this.on(\"data\", function(event) {\n this$1._update(event.dataType === \"style\");\n this$1.fire(new performance2.Event(event.dataType + \"data\", event));\n });\n this.on(\"dataloading\", function(event) {\n this$1.fire(new performance2.Event(event.dataType + \"dataloading\", event));\n });\n }\n if (Camera2)\n Map3.__proto__ = Camera2;\n Map3.prototype = Object.create(Camera2 && Camera2.prototype);\n Map3.prototype.constructor = Map3;\n var prototypeAccessors2 = {\n showTileBoundaries: { configurable: true },\n showPadding: { configurable: true },\n showCollisionBoxes: { configurable: true },\n showOverdrawInspector: { configurable: true },\n repaint: { configurable: true },\n vertices: { configurable: true },\n version: { configurable: true }\n };\n Map3.prototype._getMapId = function _getMapId() {\n return this._mapId;\n };\n Map3.prototype.addControl = function addControl(control, position) {\n if (position === void 0) {\n if (control.getDefaultPosition) {\n position = control.getDefaultPosition();\n } else {\n position = \"top-right\";\n }\n }\n if (!control || !control.onAdd) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));\n }\n var controlElement = control.onAdd(this);\n this._controls.push(control);\n var positionContainer = this._controlPositions[position];\n if (position.indexOf(\"bottom\") !== -1) {\n positionContainer.insertBefore(controlElement, positionContainer.firstChild);\n } else {\n positionContainer.appendChild(controlElement);\n }\n return this;\n };\n Map3.prototype.removeControl = function removeControl(control) {\n if (!control || !control.onRemove) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));\n }\n var ci = this._controls.indexOf(control);\n if (ci > -1) {\n this._controls.splice(ci, 1);\n }\n control.onRemove(this);\n return this;\n };\n Map3.prototype.hasControl = function hasControl(control) {\n return this._controls.indexOf(control) > -1;\n };\n Map3.prototype.resize = function resize(eventData) {\n var dimensions = this._containerDimensions();\n var width = dimensions[0];\n var height = dimensions[1];\n this._resizeCanvas(width, height);\n this.transform.resize(width, height);\n this.painter.resize(width, height);\n var fireMoving = !this._moving;\n if (fireMoving) {\n this.stop();\n this.fire(new performance2.Event(\"movestart\", eventData)).fire(new performance2.Event(\"move\", eventData));\n }\n this.fire(new performance2.Event(\"resize\", eventData));\n if (fireMoving) {\n this.fire(new performance2.Event(\"moveend\", eventData));\n }\n return this;\n };\n Map3.prototype.getBounds = function getBounds() {\n return this.transform.getBounds();\n };\n Map3.prototype.getMaxBounds = function getMaxBounds() {\n return this.transform.getMaxBounds();\n };\n Map3.prototype.setMaxBounds = function setMaxBounds(bounds) {\n this.transform.setMaxBounds(performance2.LngLatBounds.convert(bounds));\n return this._update();\n };\n Map3.prototype.setMinZoom = function setMinZoom(minZoom) {\n minZoom = minZoom === null || minZoom === void 0 ? defaultMinZoom : minZoom;\n if (minZoom >= defaultMinZoom && minZoom <= this.transform.maxZoom) {\n this.transform.minZoom = minZoom;\n this._update();\n if (this.getZoom() < minZoom) {\n this.setZoom(minZoom);\n }\n return this;\n } else {\n throw new Error(\"minZoom must be between \" + defaultMinZoom + \" and the current maxZoom, inclusive\");\n }\n };\n Map3.prototype.getMinZoom = function getMinZoom() {\n return this.transform.minZoom;\n };\n Map3.prototype.setMaxZoom = function setMaxZoom(maxZoom) {\n maxZoom = maxZoom === null || maxZoom === void 0 ? defaultMaxZoom : maxZoom;\n if (maxZoom >= this.transform.minZoom) {\n this.transform.maxZoom = maxZoom;\n this._update();\n if (this.getZoom() > maxZoom) {\n this.setZoom(maxZoom);\n }\n return this;\n } else {\n throw new Error(\"maxZoom must be greater than the current minZoom\");\n }\n };\n Map3.prototype.getMaxZoom = function getMaxZoom() {\n return this.transform.maxZoom;\n };\n Map3.prototype.setMinPitch = function setMinPitch(minPitch) {\n minPitch = minPitch === null || minPitch === void 0 ? defaultMinPitch : minPitch;\n if (minPitch < defaultMinPitch) {\n throw new Error(\"minPitch must be greater than or equal to \" + defaultMinPitch);\n }\n if (minPitch >= defaultMinPitch && minPitch <= this.transform.maxPitch) {\n this.transform.minPitch = minPitch;\n this._update();\n if (this.getPitch() < minPitch) {\n this.setPitch(minPitch);\n }\n return this;\n } else {\n throw new Error(\"minPitch must be between \" + defaultMinPitch + \" and the current maxPitch, inclusive\");\n }\n };\n Map3.prototype.getMinPitch = function getMinPitch() {\n return this.transform.minPitch;\n };\n Map3.prototype.setMaxPitch = function setMaxPitch(maxPitch) {\n maxPitch = maxPitch === null || maxPitch === void 0 ? defaultMaxPitch : maxPitch;\n if (maxPitch > defaultMaxPitch) {\n throw new Error(\"maxPitch must be less than or equal to \" + defaultMaxPitch);\n }\n if (maxPitch >= this.transform.minPitch) {\n this.transform.maxPitch = maxPitch;\n this._update();\n if (this.getPitch() > maxPitch) {\n this.setPitch(maxPitch);\n }\n return this;\n } else {\n throw new Error(\"maxPitch must be greater than the current minPitch\");\n }\n };\n Map3.prototype.getMaxPitch = function getMaxPitch() {\n return this.transform.maxPitch;\n };\n Map3.prototype.getRenderWorldCopies = function getRenderWorldCopies() {\n return this.transform.renderWorldCopies;\n };\n Map3.prototype.setRenderWorldCopies = function setRenderWorldCopies(renderWorldCopies) {\n this.transform.renderWorldCopies = renderWorldCopies;\n return this._update();\n };\n Map3.prototype.project = function project2(lnglat) {\n return this.transform.locationPoint(performance2.LngLat.convert(lnglat));\n };\n Map3.prototype.unproject = function unproject(point) {\n return this.transform.pointLocation(performance2.Point.convert(point));\n };\n Map3.prototype.isMoving = function isMoving2() {\n return this._moving || this.handlers.isMoving();\n };\n Map3.prototype.isZooming = function isZooming() {\n return this._zooming || this.handlers.isZooming();\n };\n Map3.prototype.isRotating = function isRotating() {\n return this._rotating || this.handlers.isRotating();\n };\n Map3.prototype._createDelegatedListener = function _createDelegatedListener(type, layerId, listener) {\n var this$1 = this;\n var obj;\n if (type === \"mouseenter\" || type === \"mouseover\") {\n var mousein = false;\n var mousemove = function(e) {\n var features = this$1.getLayer(layerId) ? this$1.queryRenderedFeatures(e.point, { layers: [layerId] }) : [];\n if (!features.length) {\n mousein = false;\n } else if (!mousein) {\n mousein = true;\n listener.call(this$1, new MapMouseEvent(type, this$1, e.originalEvent, { features }));\n }\n };\n var mouseout = function() {\n mousein = false;\n };\n return {\n layer: layerId,\n listener,\n delegates: {\n mousemove,\n mouseout\n }\n };\n } else if (type === \"mouseleave\" || type === \"mouseout\") {\n var mousein$1 = false;\n var mousemove$1 = function(e) {\n var features = this$1.getLayer(layerId) ? this$1.queryRenderedFeatures(e.point, { layers: [layerId] }) : [];\n if (features.length) {\n mousein$1 = true;\n } else if (mousein$1) {\n mousein$1 = false;\n listener.call(this$1, new MapMouseEvent(type, this$1, e.originalEvent));\n }\n };\n var mouseout$1 = function(e) {\n if (mousein$1) {\n mousein$1 = false;\n listener.call(this$1, new MapMouseEvent(type, this$1, e.originalEvent));\n }\n };\n return {\n layer: layerId,\n listener,\n delegates: {\n mousemove: mousemove$1,\n mouseout: mouseout$1\n }\n };\n } else {\n var delegate = function(e) {\n var features = this$1.getLayer(layerId) ? this$1.queryRenderedFeatures(e.point, { layers: [layerId] }) : [];\n if (features.length) {\n e.features = features;\n listener.call(this$1, e);\n delete e.features;\n }\n };\n return {\n layer: layerId,\n listener,\n delegates: (obj = {}, obj[type] = delegate, obj)\n };\n }\n };\n Map3.prototype.on = function on(type, layerId, listener) {\n if (listener === void 0) {\n return Camera2.prototype.on.call(this, type, layerId);\n }\n var delegatedListener = this._createDelegatedListener(type, layerId, listener);\n this._delegatedListeners = this._delegatedListeners || {};\n this._delegatedListeners[type] = this._delegatedListeners[type] || [];\n this._delegatedListeners[type].push(delegatedListener);\n for (var event in delegatedListener.delegates) {\n this.on(event, delegatedListener.delegates[event]);\n }\n return this;\n };\n Map3.prototype.once = function once(type, layerId, listener) {\n if (listener === void 0) {\n return Camera2.prototype.once.call(this, type, layerId);\n }\n var delegatedListener = this._createDelegatedListener(type, layerId, listener);\n for (var event in delegatedListener.delegates) {\n this.once(event, delegatedListener.delegates[event]);\n }\n return this;\n };\n Map3.prototype.off = function off(type, layerId, listener) {\n var this$1 = this;\n if (listener === void 0) {\n return Camera2.prototype.off.call(this, type, layerId);\n }\n var removeDelegatedListener = function(delegatedListeners) {\n var listeners = delegatedListeners[type];\n for (var i = 0; i < listeners.length; i++) {\n var delegatedListener = listeners[i];\n if (delegatedListener.layer === layerId && delegatedListener.listener === listener) {\n for (var event in delegatedListener.delegates) {\n this$1.off(event, delegatedListener.delegates[event]);\n }\n listeners.splice(i, 1);\n return this$1;\n }\n }\n };\n if (this._delegatedListeners && this._delegatedListeners[type]) {\n removeDelegatedListener(this._delegatedListeners);\n }\n return this;\n };\n Map3.prototype.queryRenderedFeatures = function queryRenderedFeatures2(geometry, options) {\n if (!this.style) {\n return [];\n }\n if (options === void 0 && geometry !== void 0 && !(geometry instanceof performance2.Point) && !Array.isArray(geometry)) {\n options = geometry;\n geometry = void 0;\n }\n options = options || {};\n geometry = geometry || [\n [\n 0,\n 0\n ],\n [\n this.transform.width,\n this.transform.height\n ]\n ];\n var queryGeometry;\n if (geometry instanceof performance2.Point || typeof geometry[0] === \"number\") {\n queryGeometry = [performance2.Point.convert(geometry)];\n } else {\n var tl = performance2.Point.convert(geometry[0]);\n var br = performance2.Point.convert(geometry[1]);\n queryGeometry = [\n tl,\n new performance2.Point(br.x, tl.y),\n br,\n new performance2.Point(tl.x, br.y),\n tl\n ];\n }\n return this.style.queryRenderedFeatures(queryGeometry, options, this.transform);\n };\n Map3.prototype.querySourceFeatures = function querySourceFeatures2(sourceId, parameters) {\n return this.style.querySourceFeatures(sourceId, parameters);\n };\n Map3.prototype.setStyle = function setStyle(style, options) {\n options = performance2.extend({}, { localIdeographFontFamily: this._localIdeographFontFamily }, options);\n if (options.diff !== false && options.localIdeographFontFamily === this._localIdeographFontFamily && this.style && style) {\n this._diffStyle(style, options);\n return this;\n } else {\n this._localIdeographFontFamily = options.localIdeographFontFamily;\n return this._updateStyle(style, options);\n }\n };\n Map3.prototype._getUIString = function _getUIString(key) {\n var str = this._locale[key];\n if (str == null) {\n throw new Error(\"Missing UI string '\" + key + \"'\");\n }\n return str;\n };\n Map3.prototype._updateStyle = function _updateStyle(style, options) {\n if (this.style) {\n this.style.setEventedParent(null);\n this.style._remove();\n }\n if (!style) {\n delete this.style;\n return this;\n } else {\n this.style = new Style(this, options || {});\n }\n this.style.setEventedParent(this, { style: this.style });\n if (typeof style === \"string\") {\n this.style.loadURL(style);\n } else {\n this.style.loadJSON(style);\n }\n return this;\n };\n Map3.prototype._lazyInitEmptyStyle = function _lazyInitEmptyStyle() {\n if (!this.style) {\n this.style = new Style(this, {});\n this.style.setEventedParent(this, { style: this.style });\n this.style.loadEmpty();\n }\n };\n Map3.prototype._diffStyle = function _diffStyle(style, options) {\n var this$1 = this;\n if (typeof style === \"string\") {\n var url = this._requestManager.normalizeStyleURL(style);\n var request = this._requestManager.transformRequest(url, performance2.ResourceType.Style);\n performance2.getJSON(request, function(error, json) {\n if (error) {\n this$1.fire(new performance2.ErrorEvent(error));\n } else if (json) {\n this$1._updateDiff(json, options);\n }\n });\n } else if (typeof style === \"object\") {\n this._updateDiff(style, options);\n }\n };\n Map3.prototype._updateDiff = function _updateDiff(style, options) {\n try {\n if (this.style.setState(style)) {\n this._update(true);\n }\n } catch (e) {\n performance2.warnOnce(\"Unable to perform style diff: \" + (e.message || e.error || e) + \". Rebuilding the style from scratch.\");\n this._updateStyle(style, options);\n }\n };\n Map3.prototype.getStyle = function getStyle() {\n if (this.style) {\n return this.style.serialize();\n }\n };\n Map3.prototype.isStyleLoaded = function isStyleLoaded() {\n if (!this.style) {\n return performance2.warnOnce(\"There is no style added to the map.\");\n }\n return this.style.loaded();\n };\n Map3.prototype.addSource = function addSource2(id, source) {\n this._lazyInitEmptyStyle();\n this.style.addSource(id, source);\n return this._update(true);\n };\n Map3.prototype.isSourceLoaded = function isSourceLoaded(id) {\n var source = this.style && this.style.sourceCaches[id];\n if (source === void 0) {\n this.fire(new performance2.ErrorEvent(new Error(\"There is no source with ID '\" + id + \"'\")));\n return;\n }\n return source.loaded();\n };\n Map3.prototype.areTilesLoaded = function areTilesLoaded() {\n var sources = this.style && this.style.sourceCaches;\n for (var id in sources) {\n var source = sources[id];\n var tiles = source._tiles;\n for (var t in tiles) {\n var tile = tiles[t];\n if (!(tile.state === \"loaded\" || tile.state === \"errored\")) {\n return false;\n }\n }\n }\n return true;\n };\n Map3.prototype.addSourceType = function addSourceType(name2, SourceType, callback) {\n this._lazyInitEmptyStyle();\n return this.style.addSourceType(name2, SourceType, callback);\n };\n Map3.prototype.removeSource = function removeSource2(id) {\n this.style.removeSource(id);\n return this._update(true);\n };\n Map3.prototype.getSource = function getSource(id) {\n return this.style.getSource(id);\n };\n Map3.prototype.addImage = function addImage(id, image, ref) {\n if (ref === void 0)\n ref = {};\n var pixelRatio = ref.pixelRatio;\n if (pixelRatio === void 0)\n pixelRatio = 1;\n var sdf = ref.sdf;\n if (sdf === void 0)\n sdf = false;\n var stretchX = ref.stretchX;\n var stretchY = ref.stretchY;\n var content = ref.content;\n this._lazyInitEmptyStyle();\n var version = 0;\n if (image instanceof HTMLImageElement2 || ImageBitmap2 && image instanceof ImageBitmap2) {\n var ref$1 = performance2.browser.getImageData(image);\n var width = ref$1.width;\n var height = ref$1.height;\n var data = ref$1.data;\n this.style.addImage(id, {\n data: new performance2.RGBAImage({\n width,\n height\n }, data),\n pixelRatio,\n stretchX,\n stretchY,\n content,\n sdf,\n version\n });\n } else if (image.width === void 0 || image.height === void 0) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n } else {\n var width$1 = image.width;\n var height$1 = image.height;\n var data$1 = image.data;\n var userImage = image;\n this.style.addImage(id, {\n data: new performance2.RGBAImage({\n width: width$1,\n height: height$1\n }, new Uint8Array(data$1)),\n pixelRatio,\n stretchX,\n stretchY,\n content,\n sdf,\n version,\n userImage\n });\n if (userImage.onAdd) {\n userImage.onAdd(this, id);\n }\n }\n };\n Map3.prototype.updateImage = function updateImage(id, image) {\n var existingImage = this.style.getImage(id);\n if (!existingImage) {\n return this.fire(new performance2.ErrorEvent(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));\n }\n var imageData = image instanceof HTMLImageElement2 || ImageBitmap2 && image instanceof ImageBitmap2 ? performance2.browser.getImageData(image) : image;\n var width = imageData.width;\n var height = imageData.height;\n var data = imageData.data;\n if (width === void 0 || height === void 0) {\n return this.fire(new performance2.ErrorEvent(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n }\n if (width !== existingImage.data.width || height !== existingImage.data.height) {\n return this.fire(new performance2.ErrorEvent(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));\n }\n var copy = !(image instanceof HTMLImageElement2 || ImageBitmap2 && image instanceof ImageBitmap2);\n existingImage.data.replace(data, copy);\n this.style.updateImage(id, existingImage);\n };\n Map3.prototype.hasImage = function hasImage(id) {\n if (!id) {\n this.fire(new performance2.ErrorEvent(new Error(\"Missing required image id\")));\n return false;\n }\n return !!this.style.getImage(id);\n };\n Map3.prototype.removeImage = function removeImage(id) {\n this.style.removeImage(id);\n };\n Map3.prototype.loadImage = function loadImage(url, callback) {\n performance2.getImage(this._requestManager.transformRequest(url, performance2.ResourceType.Image), callback);\n };\n Map3.prototype.listImages = function listImages() {\n return this.style.listImages();\n };\n Map3.prototype.addLayer = function addLayer(layer, beforeId) {\n this._lazyInitEmptyStyle();\n this.style.addLayer(layer, beforeId);\n return this._update(true);\n };\n Map3.prototype.moveLayer = function moveLayer(id, beforeId) {\n this.style.moveLayer(id, beforeId);\n return this._update(true);\n };\n Map3.prototype.removeLayer = function removeLayer(id) {\n this.style.removeLayer(id);\n return this._update(true);\n };\n Map3.prototype.getLayer = function getLayer(id) {\n return this.style.getLayer(id);\n };\n Map3.prototype.setLayerZoomRange = function setLayerZoomRange(layerId, minzoom, maxzoom) {\n this.style.setLayerZoomRange(layerId, minzoom, maxzoom);\n return this._update(true);\n };\n Map3.prototype.setFilter = function setFilter(layerId, filter, options) {\n if (options === void 0)\n options = {};\n this.style.setFilter(layerId, filter, options);\n return this._update(true);\n };\n Map3.prototype.getFilter = function getFilter(layerId) {\n return this.style.getFilter(layerId);\n };\n Map3.prototype.setPaintProperty = function setPaintProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this.style.setPaintProperty(layerId, name2, value, options);\n return this._update(true);\n };\n Map3.prototype.getPaintProperty = function getPaintProperty(layerId, name2) {\n return this.style.getPaintProperty(layerId, name2);\n };\n Map3.prototype.setLayoutProperty = function setLayoutProperty(layerId, name2, value, options) {\n if (options === void 0)\n options = {};\n this.style.setLayoutProperty(layerId, name2, value, options);\n return this._update(true);\n };\n Map3.prototype.getLayoutProperty = function getLayoutProperty(layerId, name2) {\n return this.style.getLayoutProperty(layerId, name2);\n };\n Map3.prototype.setLight = function setLight(light, options) {\n if (options === void 0)\n options = {};\n this._lazyInitEmptyStyle();\n this.style.setLight(light, options);\n return this._update(true);\n };\n Map3.prototype.getLight = function getLight() {\n return this.style.getLight();\n };\n Map3.prototype.setFeatureState = function setFeatureState(feature, state) {\n this.style.setFeatureState(feature, state);\n return this._update();\n };\n Map3.prototype.removeFeatureState = function removeFeatureState(target, key) {\n this.style.removeFeatureState(target, key);\n return this._update();\n };\n Map3.prototype.getFeatureState = function getFeatureState(feature) {\n return this.style.getFeatureState(feature);\n };\n Map3.prototype.getContainer = function getContainer() {\n return this._container;\n };\n Map3.prototype.getCanvasContainer = function getCanvasContainer() {\n return this._canvasContainer;\n };\n Map3.prototype.getCanvas = function getCanvas() {\n return this._canvas;\n };\n Map3.prototype._containerDimensions = function _containerDimensions() {\n var width = 0;\n var height = 0;\n if (this._container) {\n width = this._container.clientWidth || 400;\n height = this._container.clientHeight || 300;\n }\n return [\n width,\n height\n ];\n };\n Map3.prototype._detectMissingCSS = function _detectMissingCSS() {\n var computedColor = performance2.window.getComputedStyle(this._missingCSSCanary).getPropertyValue(\"background-color\");\n if (computedColor !== \"rgb(250, 128, 114)\") {\n performance2.warnOnce(\"This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described in https://www.mapbox.com/mapbox-gl-js/api/.\");\n }\n };\n Map3.prototype._setupContainer = function _setupContainer() {\n var container = this._container;\n container.classList.add(\"mapboxgl-map\");\n var missingCSSCanary = this._missingCSSCanary = DOM.create(\"div\", \"mapboxgl-canary\", container);\n missingCSSCanary.style.visibility = \"hidden\";\n this._detectMissingCSS();\n var canvasContainer = this._canvasContainer = DOM.create(\"div\", \"mapboxgl-canvas-container\", container);\n if (this._interactive) {\n canvasContainer.classList.add(\"mapboxgl-interactive\");\n }\n this._canvas = DOM.create(\"canvas\", \"mapboxgl-canvas\", canvasContainer);\n this._canvas.addEventListener(\"webglcontextlost\", this._contextLost, false);\n this._canvas.addEventListener(\"webglcontextrestored\", this._contextRestored, false);\n this._canvas.setAttribute(\"tabindex\", \"0\");\n this._canvas.setAttribute(\"aria-label\", \"Map\");\n this._canvas.setAttribute(\"role\", \"region\");\n var dimensions = this._containerDimensions();\n this._resizeCanvas(dimensions[0], dimensions[1]);\n var controlContainer = this._controlContainer = DOM.create(\"div\", \"mapboxgl-control-container\", container);\n var positions = this._controlPositions = {};\n [\n \"top-left\",\n \"top-right\",\n \"bottom-left\",\n \"bottom-right\"\n ].forEach(function(positionName) {\n positions[positionName] = DOM.create(\"div\", \"mapboxgl-ctrl-\" + positionName, controlContainer);\n });\n this._container.addEventListener(\"scroll\", this._onMapScroll, false);\n };\n Map3.prototype._resizeCanvas = function _resizeCanvas(width, height) {\n var pixelRatio = performance2.browser.devicePixelRatio || 1;\n this._canvas.width = pixelRatio * width;\n this._canvas.height = pixelRatio * height;\n this._canvas.style.width = width + \"px\";\n this._canvas.style.height = height + \"px\";\n };\n Map3.prototype._setupPainter = function _setupPainter() {\n var attributes = performance2.extend({}, mapboxGlSupported.webGLContextAttributes, {\n failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat,\n preserveDrawingBuffer: this._preserveDrawingBuffer,\n antialias: this._antialias || false\n });\n var gl2 = this._canvas.getContext(\"webgl\", attributes) || this._canvas.getContext(\"experimental-webgl\", attributes);\n if (!gl2) {\n this.fire(new performance2.ErrorEvent(new Error(\"Failed to initialize WebGL\")));\n return;\n }\n this.painter = new Painter(gl2, this.transform);\n performance2.webpSupported.testSupport(gl2);\n };\n Map3.prototype._contextLost = function _contextLost(event) {\n event.preventDefault();\n if (this._frame) {\n this._frame.cancel();\n this._frame = null;\n }\n this.fire(new performance2.Event(\"webglcontextlost\", { originalEvent: event }));\n };\n Map3.prototype._contextRestored = function _contextRestored(event) {\n this._setupPainter();\n this.resize();\n this._update();\n this.fire(new performance2.Event(\"webglcontextrestored\", { originalEvent: event }));\n };\n Map3.prototype._onMapScroll = function _onMapScroll(event) {\n if (event.target !== this._container) {\n return;\n }\n this._container.scrollTop = 0;\n this._container.scrollLeft = 0;\n return false;\n };\n Map3.prototype.loaded = function loaded() {\n return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded();\n };\n Map3.prototype._update = function _update(updateStyle) {\n if (!this.style) {\n return this;\n }\n this._styleDirty = this._styleDirty || updateStyle;\n this._sourcesDirty = true;\n this.triggerRepaint();\n return this;\n };\n Map3.prototype._requestRenderFrame = function _requestRenderFrame(callback) {\n this._update();\n return this._renderTaskQueue.add(callback);\n };\n Map3.prototype._cancelRenderFrame = function _cancelRenderFrame(id) {\n this._renderTaskQueue.remove(id);\n };\n Map3.prototype._render = function _render(paintStartTimeStamp) {\n var this$1 = this;\n var gpuTimer, frameStartTime = 0;\n var extTimerQuery = this.painter.context.extTimerQuery;\n if (this.listens(\"gpu-timing-frame\")) {\n gpuTimer = extTimerQuery.createQueryEXT();\n extTimerQuery.beginQueryEXT(extTimerQuery.TIME_ELAPSED_EXT, gpuTimer);\n frameStartTime = performance2.browser.now();\n }\n this.painter.context.setDirty();\n this.painter.setBaseState();\n this._renderTaskQueue.run(paintStartTimeStamp);\n if (this._removed) {\n return;\n }\n var crossFading = false;\n if (this.style && this._styleDirty) {\n this._styleDirty = false;\n var zoom = this.transform.zoom;\n var now = performance2.browser.now();\n this.style.zoomHistory.update(zoom, now);\n var parameters = new performance2.EvaluationParameters(zoom, {\n now,\n fadeDuration: this._fadeDuration,\n zoomHistory: this.style.zoomHistory,\n transition: this.style.getTransition()\n });\n var factor = parameters.crossFadingFactor();\n if (factor !== 1 || factor !== this._crossFadingFactor) {\n crossFading = true;\n this._crossFadingFactor = factor;\n }\n this.style.update(parameters);\n }\n if (this.style && this._sourcesDirty) {\n this._sourcesDirty = false;\n this.style._updateSources(this.transform);\n }\n this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, this._fadeDuration, this._crossSourceCollisions);\n this.painter.render(this.style, {\n showTileBoundaries: this.showTileBoundaries,\n showOverdrawInspector: this._showOverdrawInspector,\n rotating: this.isRotating(),\n zooming: this.isZooming(),\n moving: this.isMoving(),\n fadeDuration: this._fadeDuration,\n showPadding: this.showPadding,\n gpuTiming: !!this.listens(\"gpu-timing-layer\")\n });\n this.fire(new performance2.Event(\"render\"));\n if (this.loaded() && !this._loaded) {\n this._loaded = true;\n this.fire(new performance2.Event(\"load\"));\n }\n if (this.style && (this.style.hasTransitions() || crossFading)) {\n this._styleDirty = true;\n }\n if (this.style && !this._placementDirty) {\n this.style._releaseSymbolFadeTiles();\n }\n if (this.listens(\"gpu-timing-frame\")) {\n var renderCPUTime = performance2.browser.now() - frameStartTime;\n extTimerQuery.endQueryEXT(extTimerQuery.TIME_ELAPSED_EXT, gpuTimer);\n setTimeout(function() {\n var renderGPUTime = extTimerQuery.getQueryObjectEXT(gpuTimer, extTimerQuery.QUERY_RESULT_EXT) / (1e3 * 1e3);\n extTimerQuery.deleteQueryEXT(gpuTimer);\n this$1.fire(new performance2.Event(\"gpu-timing-frame\", {\n cpuTime: renderCPUTime,\n gpuTime: renderGPUTime\n }));\n }, 50);\n }\n if (this.listens(\"gpu-timing-layer\")) {\n var frameLayerQueries = this.painter.collectGpuTimers();\n setTimeout(function() {\n var renderedLayerTimes = this$1.painter.queryGpuTimers(frameLayerQueries);\n this$1.fire(new performance2.Event(\"gpu-timing-layer\", { layerTimes: renderedLayerTimes }));\n }, 50);\n }\n var somethingDirty = this._sourcesDirty || this._styleDirty || this._placementDirty;\n if (somethingDirty || this._repaint) {\n this.triggerRepaint();\n } else if (!this.isMoving() && this.loaded()) {\n this.fire(new performance2.Event(\"idle\"));\n }\n if (this._loaded && !this._fullyLoaded && !somethingDirty) {\n this._fullyLoaded = true;\n }\n return this;\n };\n Map3.prototype.remove = function remove() {\n if (this._hash) {\n this._hash.remove();\n }\n for (var i = 0, list = this._controls; i < list.length; i += 1) {\n var control = list[i];\n control.onRemove(this);\n }\n this._controls = [];\n if (this._frame) {\n this._frame.cancel();\n this._frame = null;\n }\n this._renderTaskQueue.clear();\n this.painter.destroy();\n this.handlers.destroy();\n delete this.handlers;\n this.setStyle(null);\n if (typeof performance2.window !== \"undefined\") {\n performance2.window.removeEventListener(\"resize\", this._onWindowResize, false);\n performance2.window.removeEventListener(\"orientationchange\", this._onWindowResize, false);\n performance2.window.removeEventListener(\"online\", this._onWindowOnline, false);\n }\n var extension = this.painter.context.gl.getExtension(\"WEBGL_lose_context\");\n if (extension && extension.loseContext) {\n extension.loseContext();\n }\n removeNode(this._canvasContainer);\n removeNode(this._controlContainer);\n removeNode(this._missingCSSCanary);\n this._container.classList.remove(\"mapboxgl-map\");\n this._removed = true;\n this.fire(new performance2.Event(\"remove\"));\n };\n Map3.prototype.triggerRepaint = function triggerRepaint() {\n var this$1 = this;\n if (this.style && !this._frame) {\n this._frame = performance2.browser.frame(function(paintStartTimeStamp) {\n this$1._frame = null;\n this$1._render(paintStartTimeStamp);\n });\n }\n };\n Map3.prototype._onWindowOnline = function _onWindowOnline() {\n this._update();\n };\n Map3.prototype._onWindowResize = function _onWindowResize(event) {\n if (this._trackResize) {\n this.resize({ originalEvent: event })._update();\n }\n };\n prototypeAccessors2.showTileBoundaries.get = function() {\n return !!this._showTileBoundaries;\n };\n prototypeAccessors2.showTileBoundaries.set = function(value) {\n if (this._showTileBoundaries === value) {\n return;\n }\n this._showTileBoundaries = value;\n this._update();\n };\n prototypeAccessors2.showPadding.get = function() {\n return !!this._showPadding;\n };\n prototypeAccessors2.showPadding.set = function(value) {\n if (this._showPadding === value) {\n return;\n }\n this._showPadding = value;\n this._update();\n };\n prototypeAccessors2.showCollisionBoxes.get = function() {\n return !!this._showCollisionBoxes;\n };\n prototypeAccessors2.showCollisionBoxes.set = function(value) {\n if (this._showCollisionBoxes === value) {\n return;\n }\n this._showCollisionBoxes = value;\n if (value) {\n this.style._generateCollisionBoxes();\n } else {\n this._update();\n }\n };\n prototypeAccessors2.showOverdrawInspector.get = function() {\n return !!this._showOverdrawInspector;\n };\n prototypeAccessors2.showOverdrawInspector.set = function(value) {\n if (this._showOverdrawInspector === value) {\n return;\n }\n this._showOverdrawInspector = value;\n this._update();\n };\n prototypeAccessors2.repaint.get = function() {\n return !!this._repaint;\n };\n prototypeAccessors2.repaint.set = function(value) {\n if (this._repaint !== value) {\n this._repaint = value;\n this.triggerRepaint();\n }\n };\n prototypeAccessors2.vertices.get = function() {\n return !!this._vertices;\n };\n prototypeAccessors2.vertices.set = function(value) {\n this._vertices = value;\n this._update();\n };\n Map3.prototype._setCacheLimits = function _setCacheLimits(limit, checkThreshold) {\n performance2.setCacheLimits(limit, checkThreshold);\n };\n prototypeAccessors2.version.get = function() {\n return performance2.version;\n };\n Object.defineProperties(Map3.prototype, prototypeAccessors2);\n return Map3;\n }(Camera);\n function removeNode(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n var defaultOptions$2 = {\n showCompass: true,\n showZoom: true,\n visualizePitch: false\n };\n var NavigationControl = function NavigationControl2(options) {\n var this$1 = this;\n this.options = performance2.extend({}, defaultOptions$2, options);\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-group\");\n this._container.addEventListener(\"contextmenu\", function(e) {\n return e.preventDefault();\n });\n if (this.options.showZoom) {\n performance2.bindAll([\n \"_setButtonTitle\",\n \"_updateZoomButtons\"\n ], this);\n this._zoomInButton = this._createButton(\"mapboxgl-ctrl-zoom-in\", function(e) {\n return this$1._map.zoomIn({}, { originalEvent: e });\n });\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._zoomInButton).setAttribute(\"aria-hidden\", true);\n this._zoomOutButton = this._createButton(\"mapboxgl-ctrl-zoom-out\", function(e) {\n return this$1._map.zoomOut({}, { originalEvent: e });\n });\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._zoomOutButton).setAttribute(\"aria-hidden\", true);\n }\n if (this.options.showCompass) {\n performance2.bindAll([\"_rotateCompassArrow\"], this);\n this._compass = this._createButton(\"mapboxgl-ctrl-compass\", function(e) {\n if (this$1.options.visualizePitch) {\n this$1._map.resetNorthPitch({}, { originalEvent: e });\n } else {\n this$1._map.resetNorth({}, { originalEvent: e });\n }\n });\n this._compassIcon = DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._compass);\n this._compassIcon.setAttribute(\"aria-hidden\", true);\n }\n };\n NavigationControl.prototype._updateZoomButtons = function _updateZoomButtons() {\n var zoom = this._map.getZoom();\n var isMax = zoom === this._map.getMaxZoom();\n var isMin = zoom === this._map.getMinZoom();\n this._zoomInButton.disabled = isMax;\n this._zoomOutButton.disabled = isMin;\n this._zoomInButton.setAttribute(\"aria-disabled\", isMax.toString());\n this._zoomOutButton.setAttribute(\"aria-disabled\", isMin.toString());\n };\n NavigationControl.prototype._rotateCompassArrow = function _rotateCompassArrow() {\n var rotate = this.options.visualizePitch ? \"scale(\" + 1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5) + \") rotateX(\" + this._map.transform.pitch + \"deg) rotateZ(\" + this._map.transform.angle * (180 / Math.PI) + \"deg)\" : \"rotate(\" + this._map.transform.angle * (180 / Math.PI) + \"deg)\";\n this._compassIcon.style.transform = rotate;\n };\n NavigationControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n if (this.options.showZoom) {\n this._setButtonTitle(this._zoomInButton, \"ZoomIn\");\n this._setButtonTitle(this._zoomOutButton, \"ZoomOut\");\n this._map.on(\"zoom\", this._updateZoomButtons);\n this._updateZoomButtons();\n }\n if (this.options.showCompass) {\n this._setButtonTitle(this._compass, \"ResetBearing\");\n if (this.options.visualizePitch) {\n this._map.on(\"pitch\", this._rotateCompassArrow);\n }\n this._map.on(\"rotate\", this._rotateCompassArrow);\n this._rotateCompassArrow();\n this._handler = new MouseRotateWrapper(this._map, this._compass, this.options.visualizePitch);\n }\n return this._container;\n };\n NavigationControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n if (this.options.showZoom) {\n this._map.off(\"zoom\", this._updateZoomButtons);\n }\n if (this.options.showCompass) {\n if (this.options.visualizePitch) {\n this._map.off(\"pitch\", this._rotateCompassArrow);\n }\n this._map.off(\"rotate\", this._rotateCompassArrow);\n this._handler.off();\n delete this._handler;\n }\n delete this._map;\n };\n NavigationControl.prototype._createButton = function _createButton(className, fn) {\n var a = DOM.create(\"button\", className, this._container);\n a.type = \"button\";\n a.addEventListener(\"click\", fn);\n return a;\n };\n NavigationControl.prototype._setButtonTitle = function _setButtonTitle(button, title) {\n var str = this._map._getUIString(\"NavigationControl.\" + title);\n button.title = str;\n button.setAttribute(\"aria-label\", str);\n };\n var MouseRotateWrapper = function MouseRotateWrapper2(map, element, pitch) {\n if (pitch === void 0)\n pitch = false;\n this._clickTolerance = 10;\n this.element = element;\n this.mouseRotate = new MouseRotateHandler({ clickTolerance: map.dragRotate._mouseRotate._clickTolerance });\n this.map = map;\n if (pitch) {\n this.mousePitch = new MousePitchHandler({ clickTolerance: map.dragRotate._mousePitch._clickTolerance });\n }\n performance2.bindAll([\n \"mousedown\",\n \"mousemove\",\n \"mouseup\",\n \"touchstart\",\n \"touchmove\",\n \"touchend\",\n \"reset\"\n ], this);\n DOM.addEventListener(element, \"mousedown\", this.mousedown);\n DOM.addEventListener(element, \"touchstart\", this.touchstart, { passive: false });\n DOM.addEventListener(element, \"touchmove\", this.touchmove);\n DOM.addEventListener(element, \"touchend\", this.touchend);\n DOM.addEventListener(element, \"touchcancel\", this.reset);\n };\n MouseRotateWrapper.prototype.down = function down(e, point) {\n this.mouseRotate.mousedown(e, point);\n if (this.mousePitch) {\n this.mousePitch.mousedown(e, point);\n }\n DOM.disableDrag();\n };\n MouseRotateWrapper.prototype.move = function move(e, point) {\n var map = this.map;\n var r = this.mouseRotate.mousemoveWindow(e, point);\n if (r && r.bearingDelta) {\n map.setBearing(map.getBearing() + r.bearingDelta);\n }\n if (this.mousePitch) {\n var p = this.mousePitch.mousemoveWindow(e, point);\n if (p && p.pitchDelta) {\n map.setPitch(map.getPitch() + p.pitchDelta);\n }\n }\n };\n MouseRotateWrapper.prototype.off = function off() {\n var element = this.element;\n DOM.removeEventListener(element, \"mousedown\", this.mousedown);\n DOM.removeEventListener(element, \"touchstart\", this.touchstart, { passive: false });\n DOM.removeEventListener(element, \"touchmove\", this.touchmove);\n DOM.removeEventListener(element, \"touchend\", this.touchend);\n DOM.removeEventListener(element, \"touchcancel\", this.reset);\n this.offTemp();\n };\n MouseRotateWrapper.prototype.offTemp = function offTemp() {\n DOM.enableDrag();\n DOM.removeEventListener(performance2.window, \"mousemove\", this.mousemove);\n DOM.removeEventListener(performance2.window, \"mouseup\", this.mouseup);\n };\n MouseRotateWrapper.prototype.mousedown = function mousedown(e) {\n this.down(performance2.extend({}, e, {\n ctrlKey: true,\n preventDefault: function() {\n return e.preventDefault();\n }\n }), DOM.mousePos(this.element, e));\n DOM.addEventListener(performance2.window, \"mousemove\", this.mousemove);\n DOM.addEventListener(performance2.window, \"mouseup\", this.mouseup);\n };\n MouseRotateWrapper.prototype.mousemove = function mousemove(e) {\n this.move(e, DOM.mousePos(this.element, e));\n };\n MouseRotateWrapper.prototype.mouseup = function mouseup(e) {\n this.mouseRotate.mouseupWindow(e);\n if (this.mousePitch) {\n this.mousePitch.mouseupWindow(e);\n }\n this.offTemp();\n };\n MouseRotateWrapper.prototype.touchstart = function touchstart(e) {\n if (e.targetTouches.length !== 1) {\n this.reset();\n } else {\n this._startPos = this._lastPos = DOM.touchPos(this.element, e.targetTouches)[0];\n this.down({\n type: \"mousedown\",\n button: 0,\n ctrlKey: true,\n preventDefault: function() {\n return e.preventDefault();\n }\n }, this._startPos);\n }\n };\n MouseRotateWrapper.prototype.touchmove = function touchmove(e) {\n if (e.targetTouches.length !== 1) {\n this.reset();\n } else {\n this._lastPos = DOM.touchPos(this.element, e.targetTouches)[0];\n this.move({\n preventDefault: function() {\n return e.preventDefault();\n }\n }, this._lastPos);\n }\n };\n MouseRotateWrapper.prototype.touchend = function touchend(e) {\n if (e.targetTouches.length === 0 && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance) {\n this.element.click();\n }\n this.reset();\n };\n MouseRotateWrapper.prototype.reset = function reset() {\n this.mouseRotate.reset();\n if (this.mousePitch) {\n this.mousePitch.reset();\n }\n delete this._startPos;\n delete this._lastPos;\n this.offTemp();\n };\n function smartWrap(lngLat, priorPos, transform) {\n lngLat = new performance2.LngLat(lngLat.lng, lngLat.lat);\n if (priorPos) {\n var left = new performance2.LngLat(lngLat.lng - 360, lngLat.lat);\n var right = new performance2.LngLat(lngLat.lng + 360, lngLat.lat);\n var delta = transform.locationPoint(lngLat).distSqr(priorPos);\n if (transform.locationPoint(left).distSqr(priorPos) < delta) {\n lngLat = left;\n } else if (transform.locationPoint(right).distSqr(priorPos) < delta) {\n lngLat = right;\n }\n }\n while (Math.abs(lngLat.lng - transform.center.lng) > 180) {\n var pos = transform.locationPoint(lngLat);\n if (pos.x >= 0 && pos.y >= 0 && pos.x <= transform.width && pos.y <= transform.height) {\n break;\n }\n if (lngLat.lng > transform.center.lng) {\n lngLat.lng -= 360;\n } else {\n lngLat.lng += 360;\n }\n }\n return lngLat;\n }\n var anchorTranslate = {\n \"center\": \"translate(-50%,-50%)\",\n \"top\": \"translate(-50%,0)\",\n \"top-left\": \"translate(0,0)\",\n \"top-right\": \"translate(-100%,0)\",\n \"bottom\": \"translate(-50%,-100%)\",\n \"bottom-left\": \"translate(0,-100%)\",\n \"bottom-right\": \"translate(-100%,-100%)\",\n \"left\": \"translate(0,-50%)\",\n \"right\": \"translate(-100%,-50%)\"\n };\n function applyAnchorClass(element, anchor, prefix) {\n var classList = element.classList;\n for (var key in anchorTranslate) {\n classList.remove(\"mapboxgl-\" + prefix + \"-anchor-\" + key);\n }\n classList.add(\"mapboxgl-\" + prefix + \"-anchor-\" + anchor);\n }\n var Marker = function(Evented) {\n function Marker2(options, legacyOptions) {\n Evented.call(this);\n if (options instanceof performance2.window.HTMLElement || legacyOptions) {\n options = performance2.extend({ element: options }, legacyOptions);\n }\n performance2.bindAll([\n \"_update\",\n \"_onMove\",\n \"_onUp\",\n \"_addDragHandler\",\n \"_onMapClick\",\n \"_onKeyPress\"\n ], this);\n this._anchor = options && options.anchor || \"center\";\n this._color = options && options.color || \"#3FB1CE\";\n this._scale = options && options.scale || 1;\n this._draggable = options && options.draggable || false;\n this._clickTolerance = options && options.clickTolerance || 0;\n this._isDragging = false;\n this._state = \"inactive\";\n this._rotation = options && options.rotation || 0;\n this._rotationAlignment = options && options.rotationAlignment || \"auto\";\n this._pitchAlignment = options && options.pitchAlignment && options.pitchAlignment !== \"auto\" ? options.pitchAlignment : this._rotationAlignment;\n if (!options || !options.element) {\n this._defaultMarker = true;\n this._element = DOM.create(\"div\");\n this._element.setAttribute(\"aria-label\", \"Map marker\");\n var svg = DOM.createNS(\"http://www.w3.org/2000/svg\", \"svg\");\n var defaultHeight = 41;\n var defaultWidth = 27;\n svg.setAttributeNS(null, \"display\", \"block\");\n svg.setAttributeNS(null, \"height\", defaultHeight + \"px\");\n svg.setAttributeNS(null, \"width\", defaultWidth + \"px\");\n svg.setAttributeNS(null, \"viewBox\", \"0 0 \" + defaultWidth + \" \" + defaultHeight);\n var markerLarge = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n markerLarge.setAttributeNS(null, \"stroke\", \"none\");\n markerLarge.setAttributeNS(null, \"stroke-width\", \"1\");\n markerLarge.setAttributeNS(null, \"fill\", \"none\");\n markerLarge.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n var page1 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n page1.setAttributeNS(null, \"fill-rule\", \"nonzero\");\n var shadow = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n shadow.setAttributeNS(null, \"transform\", \"translate(3.0, 29.0)\");\n shadow.setAttributeNS(null, \"fill\", \"#000000\");\n var ellipses = [\n {\n \"rx\": \"10.5\",\n \"ry\": \"5.25002273\"\n },\n {\n \"rx\": \"10.5\",\n \"ry\": \"5.25002273\"\n },\n {\n \"rx\": \"9.5\",\n \"ry\": \"4.77275007\"\n },\n {\n \"rx\": \"8.5\",\n \"ry\": \"4.29549936\"\n },\n {\n \"rx\": \"7.5\",\n \"ry\": \"3.81822308\"\n },\n {\n \"rx\": \"6.5\",\n \"ry\": \"3.34094679\"\n },\n {\n \"rx\": \"5.5\",\n \"ry\": \"2.86367051\"\n },\n {\n \"rx\": \"4.5\",\n \"ry\": \"2.38636864\"\n }\n ];\n for (var i = 0, list = ellipses; i < list.length; i += 1) {\n var data = list[i];\n var ellipse = DOM.createNS(\"http://www.w3.org/2000/svg\", \"ellipse\");\n ellipse.setAttributeNS(null, \"opacity\", \"0.04\");\n ellipse.setAttributeNS(null, \"cx\", \"10.5\");\n ellipse.setAttributeNS(null, \"cy\", \"5.80029008\");\n ellipse.setAttributeNS(null, \"rx\", data[\"rx\"]);\n ellipse.setAttributeNS(null, \"ry\", data[\"ry\"]);\n shadow.appendChild(ellipse);\n }\n var background2 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n background2.setAttributeNS(null, \"fill\", this._color);\n var bgPath = DOM.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n bgPath.setAttributeNS(null, \"d\", \"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\");\n background2.appendChild(bgPath);\n var border = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n border.setAttributeNS(null, \"opacity\", \"0.25\");\n border.setAttributeNS(null, \"fill\", \"#000000\");\n var borderPath = DOM.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n borderPath.setAttributeNS(null, \"d\", \"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\");\n border.appendChild(borderPath);\n var maki = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n maki.setAttributeNS(null, \"transform\", \"translate(6.0, 7.0)\");\n maki.setAttributeNS(null, \"fill\", \"#FFFFFF\");\n var circleContainer = DOM.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n circleContainer.setAttributeNS(null, \"transform\", \"translate(8.0, 8.0)\");\n var circle1 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n circle1.setAttributeNS(null, \"fill\", \"#000000\");\n circle1.setAttributeNS(null, \"opacity\", \"0.25\");\n circle1.setAttributeNS(null, \"cx\", \"5.5\");\n circle1.setAttributeNS(null, \"cy\", \"5.5\");\n circle1.setAttributeNS(null, \"r\", \"5.4999962\");\n var circle2 = DOM.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n circle2.setAttributeNS(null, \"fill\", \"#FFFFFF\");\n circle2.setAttributeNS(null, \"cx\", \"5.5\");\n circle2.setAttributeNS(null, \"cy\", \"5.5\");\n circle2.setAttributeNS(null, \"r\", \"5.4999962\");\n circleContainer.appendChild(circle1);\n circleContainer.appendChild(circle2);\n page1.appendChild(shadow);\n page1.appendChild(background2);\n page1.appendChild(border);\n page1.appendChild(maki);\n page1.appendChild(circleContainer);\n svg.appendChild(page1);\n svg.setAttributeNS(null, \"height\", defaultHeight * this._scale + \"px\");\n svg.setAttributeNS(null, \"width\", defaultWidth * this._scale + \"px\");\n this._element.appendChild(svg);\n this._offset = performance2.Point.convert(options && options.offset || [\n 0,\n -14\n ]);\n } else {\n this._element = options.element;\n this._offset = performance2.Point.convert(options && options.offset || [\n 0,\n 0\n ]);\n }\n this._element.classList.add(\"mapboxgl-marker\");\n this._element.addEventListener(\"dragstart\", function(e) {\n e.preventDefault();\n });\n this._element.addEventListener(\"mousedown\", function(e) {\n e.preventDefault();\n });\n applyAnchorClass(this._element, this._anchor, \"marker\");\n this._popup = null;\n }\n if (Evented)\n Marker2.__proto__ = Evented;\n Marker2.prototype = Object.create(Evented && Evented.prototype);\n Marker2.prototype.constructor = Marker2;\n Marker2.prototype.addTo = function addTo(map) {\n this.remove();\n this._map = map;\n map.getCanvasContainer().appendChild(this._element);\n map.on(\"move\", this._update);\n map.on(\"moveend\", this._update);\n this.setDraggable(this._draggable);\n this._update();\n this._map.on(\"click\", this._onMapClick);\n return this;\n };\n Marker2.prototype.remove = function remove() {\n if (this._map) {\n this._map.off(\"click\", this._onMapClick);\n this._map.off(\"move\", this._update);\n this._map.off(\"moveend\", this._update);\n this._map.off(\"mousedown\", this._addDragHandler);\n this._map.off(\"touchstart\", this._addDragHandler);\n this._map.off(\"mouseup\", this._onUp);\n this._map.off(\"touchend\", this._onUp);\n this._map.off(\"mousemove\", this._onMove);\n this._map.off(\"touchmove\", this._onMove);\n delete this._map;\n }\n DOM.remove(this._element);\n if (this._popup) {\n this._popup.remove();\n }\n return this;\n };\n Marker2.prototype.getLngLat = function getLngLat() {\n return this._lngLat;\n };\n Marker2.prototype.setLngLat = function setLngLat(lnglat) {\n this._lngLat = performance2.LngLat.convert(lnglat);\n this._pos = null;\n if (this._popup) {\n this._popup.setLngLat(this._lngLat);\n }\n this._update();\n return this;\n };\n Marker2.prototype.getElement = function getElement() {\n return this._element;\n };\n Marker2.prototype.setPopup = function setPopup(popup) {\n if (this._popup) {\n this._popup.remove();\n this._popup = null;\n this._element.removeEventListener(\"keypress\", this._onKeyPress);\n if (!this._originalTabIndex) {\n this._element.removeAttribute(\"tabindex\");\n }\n }\n if (popup) {\n if (!(\"offset\" in popup.options)) {\n var markerHeight = 41 - 5.8 / 2;\n var markerRadius = 13.5;\n var linearOffset = Math.sqrt(Math.pow(markerRadius, 2) / 2);\n popup.options.offset = this._defaultMarker ? {\n \"top\": [\n 0,\n 0\n ],\n \"top-left\": [\n 0,\n 0\n ],\n \"top-right\": [\n 0,\n 0\n ],\n \"bottom\": [\n 0,\n -markerHeight\n ],\n \"bottom-left\": [\n linearOffset,\n (markerHeight - markerRadius + linearOffset) * -1\n ],\n \"bottom-right\": [\n -linearOffset,\n (markerHeight - markerRadius + linearOffset) * -1\n ],\n \"left\": [\n markerRadius,\n (markerHeight - markerRadius) * -1\n ],\n \"right\": [\n -markerRadius,\n (markerHeight - markerRadius) * -1\n ]\n } : this._offset;\n }\n this._popup = popup;\n if (this._lngLat) {\n this._popup.setLngLat(this._lngLat);\n }\n this._originalTabIndex = this._element.getAttribute(\"tabindex\");\n if (!this._originalTabIndex) {\n this._element.setAttribute(\"tabindex\", \"0\");\n }\n this._element.addEventListener(\"keypress\", this._onKeyPress);\n }\n return this;\n };\n Marker2.prototype._onKeyPress = function _onKeyPress(e) {\n var code = e.code;\n var legacyCode = e.charCode || e.keyCode;\n if (code === \"Space\" || code === \"Enter\" || legacyCode === 32 || legacyCode === 13) {\n this.togglePopup();\n }\n };\n Marker2.prototype._onMapClick = function _onMapClick(e) {\n var targetElement = e.originalEvent.target;\n var element = this._element;\n if (this._popup && (targetElement === element || element.contains(targetElement))) {\n this.togglePopup();\n }\n };\n Marker2.prototype.getPopup = function getPopup() {\n return this._popup;\n };\n Marker2.prototype.togglePopup = function togglePopup() {\n var popup = this._popup;\n if (!popup) {\n return this;\n } else if (popup.isOpen()) {\n popup.remove();\n } else {\n popup.addTo(this._map);\n }\n return this;\n };\n Marker2.prototype._update = function _update(e) {\n if (!this._map) {\n return;\n }\n if (this._map.transform.renderWorldCopies) {\n this._lngLat = smartWrap(this._lngLat, this._pos, this._map.transform);\n }\n this._pos = this._map.project(this._lngLat)._add(this._offset);\n var rotation = \"\";\n if (this._rotationAlignment === \"viewport\" || this._rotationAlignment === \"auto\") {\n rotation = \"rotateZ(\" + this._rotation + \"deg)\";\n } else if (this._rotationAlignment === \"map\") {\n rotation = \"rotateZ(\" + (this._rotation - this._map.getBearing()) + \"deg)\";\n }\n var pitch = \"\";\n if (this._pitchAlignment === \"viewport\" || this._pitchAlignment === \"auto\") {\n pitch = \"rotateX(0deg)\";\n } else if (this._pitchAlignment === \"map\") {\n pitch = \"rotateX(\" + this._map.getPitch() + \"deg)\";\n }\n if (!e || e.type === \"moveend\") {\n this._pos = this._pos.round();\n }\n DOM.setTransform(this._element, anchorTranslate[this._anchor] + \" translate(\" + this._pos.x + \"px, \" + this._pos.y + \"px) \" + pitch + \" \" + rotation);\n };\n Marker2.prototype.getOffset = function getOffset() {\n return this._offset;\n };\n Marker2.prototype.setOffset = function setOffset(offset) {\n this._offset = performance2.Point.convert(offset);\n this._update();\n return this;\n };\n Marker2.prototype._onMove = function _onMove(e) {\n if (!this._isDragging) {\n var clickTolerance = this._clickTolerance || this._map._clickTolerance;\n this._isDragging = e.point.dist(this._pointerdownPos) >= clickTolerance;\n }\n if (!this._isDragging) {\n return;\n }\n this._pos = e.point.sub(this._positionDelta);\n this._lngLat = this._map.unproject(this._pos);\n this.setLngLat(this._lngLat);\n this._element.style.pointerEvents = \"none\";\n if (this._state === \"pending\") {\n this._state = \"active\";\n this.fire(new performance2.Event(\"dragstart\"));\n }\n this.fire(new performance2.Event(\"drag\"));\n };\n Marker2.prototype._onUp = function _onUp() {\n this._element.style.pointerEvents = \"auto\";\n this._positionDelta = null;\n this._pointerdownPos = null;\n this._isDragging = false;\n this._map.off(\"mousemove\", this._onMove);\n this._map.off(\"touchmove\", this._onMove);\n if (this._state === \"active\") {\n this.fire(new performance2.Event(\"dragend\"));\n }\n this._state = \"inactive\";\n };\n Marker2.prototype._addDragHandler = function _addDragHandler(e) {\n if (this._element.contains(e.originalEvent.target)) {\n e.preventDefault();\n this._positionDelta = e.point.sub(this._pos).add(this._offset);\n this._pointerdownPos = e.point;\n this._state = \"pending\";\n this._map.on(\"mousemove\", this._onMove);\n this._map.on(\"touchmove\", this._onMove);\n this._map.once(\"mouseup\", this._onUp);\n this._map.once(\"touchend\", this._onUp);\n }\n };\n Marker2.prototype.setDraggable = function setDraggable(shouldBeDraggable) {\n this._draggable = !!shouldBeDraggable;\n if (this._map) {\n if (shouldBeDraggable) {\n this._map.on(\"mousedown\", this._addDragHandler);\n this._map.on(\"touchstart\", this._addDragHandler);\n } else {\n this._map.off(\"mousedown\", this._addDragHandler);\n this._map.off(\"touchstart\", this._addDragHandler);\n }\n }\n return this;\n };\n Marker2.prototype.isDraggable = function isDraggable() {\n return this._draggable;\n };\n Marker2.prototype.setRotation = function setRotation(rotation) {\n this._rotation = rotation || 0;\n this._update();\n return this;\n };\n Marker2.prototype.getRotation = function getRotation() {\n return this._rotation;\n };\n Marker2.prototype.setRotationAlignment = function setRotationAlignment(alignment) {\n this._rotationAlignment = alignment || \"auto\";\n this._update();\n return this;\n };\n Marker2.prototype.getRotationAlignment = function getRotationAlignment() {\n return this._rotationAlignment;\n };\n Marker2.prototype.setPitchAlignment = function setPitchAlignment(alignment) {\n this._pitchAlignment = alignment && alignment !== \"auto\" ? alignment : this._rotationAlignment;\n this._update();\n return this;\n };\n Marker2.prototype.getPitchAlignment = function getPitchAlignment() {\n return this._pitchAlignment;\n };\n return Marker2;\n }(performance2.Evented);\n var defaultOptions$3 = {\n positionOptions: {\n enableHighAccuracy: false,\n maximumAge: 0,\n timeout: 6e3\n },\n fitBoundsOptions: { maxZoom: 15 },\n trackUserLocation: false,\n showAccuracyCircle: true,\n showUserLocation: true\n };\n var supportsGeolocation;\n function checkGeolocationSupport(callback) {\n if (supportsGeolocation !== void 0) {\n callback(supportsGeolocation);\n } else if (performance2.window.navigator.permissions !== void 0) {\n performance2.window.navigator.permissions.query({ name: \"geolocation\" }).then(function(p) {\n supportsGeolocation = p.state !== \"denied\";\n callback(supportsGeolocation);\n });\n } else {\n supportsGeolocation = !!performance2.window.navigator.geolocation;\n callback(supportsGeolocation);\n }\n }\n var numberOfWatches = 0;\n var noTimeout = false;\n var GeolocateControl = function(Evented) {\n function GeolocateControl2(options) {\n Evented.call(this);\n this.options = performance2.extend({}, defaultOptions$3, options);\n performance2.bindAll([\n \"_onSuccess\",\n \"_onError\",\n \"_onZoom\",\n \"_finish\",\n \"_setupUI\",\n \"_updateCamera\",\n \"_updateMarker\"\n ], this);\n }\n if (Evented)\n GeolocateControl2.__proto__ = Evented;\n GeolocateControl2.prototype = Object.create(Evented && Evented.prototype);\n GeolocateControl2.prototype.constructor = GeolocateControl2;\n GeolocateControl2.prototype.onAdd = function onAdd(map) {\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-group\");\n checkGeolocationSupport(this._setupUI);\n return this._container;\n };\n GeolocateControl2.prototype.onRemove = function onRemove() {\n if (this._geolocationWatchID !== void 0) {\n performance2.window.navigator.geolocation.clearWatch(this._geolocationWatchID);\n this._geolocationWatchID = void 0;\n }\n if (this.options.showUserLocation && this._userLocationDotMarker) {\n this._userLocationDotMarker.remove();\n }\n if (this.options.showAccuracyCircle && this._accuracyCircleMarker) {\n this._accuracyCircleMarker.remove();\n }\n DOM.remove(this._container);\n this._map.off(\"zoom\", this._onZoom);\n this._map = void 0;\n numberOfWatches = 0;\n noTimeout = false;\n };\n GeolocateControl2.prototype._isOutOfMapMaxBounds = function _isOutOfMapMaxBounds(position) {\n var bounds = this._map.getMaxBounds();\n var coordinates = position.coords;\n return bounds && (coordinates.longitude < bounds.getWest() || coordinates.longitude > bounds.getEast() || coordinates.latitude < bounds.getSouth() || coordinates.latitude > bounds.getNorth());\n };\n GeolocateControl2.prototype._setErrorState = function _setErrorState() {\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._watchState = \"ACTIVE_ERROR\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");\n break;\n case \"ACTIVE_LOCK\":\n this._watchState = \"ACTIVE_ERROR\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n break;\n case \"BACKGROUND\":\n this._watchState = \"BACKGROUND_ERROR\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n break;\n }\n };\n GeolocateControl2.prototype._onSuccess = function _onSuccess(position) {\n if (!this._map) {\n return;\n }\n if (this._isOutOfMapMaxBounds(position)) {\n this._setErrorState();\n this.fire(new performance2.Event(\"outofmaxbounds\", position));\n this._updateMarker();\n this._finish();\n return;\n }\n if (this.options.trackUserLocation) {\n this._lastKnownPosition = position;\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n this._watchState = \"ACTIVE_LOCK\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");\n break;\n case \"BACKGROUND\":\n case \"BACKGROUND_ERROR\":\n this._watchState = \"BACKGROUND\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");\n break;\n }\n }\n if (this.options.showUserLocation && this._watchState !== \"OFF\") {\n this._updateMarker(position);\n }\n if (!this.options.trackUserLocation || this._watchState === \"ACTIVE_LOCK\") {\n this._updateCamera(position);\n }\n if (this.options.showUserLocation) {\n this._dotElement.classList.remove(\"mapboxgl-user-location-dot-stale\");\n }\n this.fire(new performance2.Event(\"geolocate\", position));\n this._finish();\n };\n GeolocateControl2.prototype._updateCamera = function _updateCamera(position) {\n var center = new performance2.LngLat(position.coords.longitude, position.coords.latitude);\n var radius = position.coords.accuracy;\n var bearing = this._map.getBearing();\n var options = performance2.extend({ bearing }, this.options.fitBoundsOptions);\n this._map.fitBounds(center.toBounds(radius), options, { geolocateSource: true });\n };\n GeolocateControl2.prototype._updateMarker = function _updateMarker(position) {\n if (position) {\n var center = new performance2.LngLat(position.coords.longitude, position.coords.latitude);\n this._accuracyCircleMarker.setLngLat(center).addTo(this._map);\n this._userLocationDotMarker.setLngLat(center).addTo(this._map);\n this._accuracy = position.coords.accuracy;\n if (this.options.showUserLocation && this.options.showAccuracyCircle) {\n this._updateCircleRadius();\n }\n } else {\n this._userLocationDotMarker.remove();\n this._accuracyCircleMarker.remove();\n }\n };\n GeolocateControl2.prototype._updateCircleRadius = function _updateCircleRadius() {\n var y = this._map._container.clientHeight / 2;\n var a = this._map.unproject([\n 0,\n y\n ]);\n var b = this._map.unproject([\n 1,\n y\n ]);\n var metersPerPixel = a.distanceTo(b);\n var circleDiameter = Math.ceil(2 * this._accuracy / metersPerPixel);\n this._circleElement.style.width = circleDiameter + \"px\";\n this._circleElement.style.height = circleDiameter + \"px\";\n };\n GeolocateControl2.prototype._onZoom = function _onZoom() {\n if (this.options.showUserLocation && this.options.showAccuracyCircle) {\n this._updateCircleRadius();\n }\n };\n GeolocateControl2.prototype._onError = function _onError(error) {\n if (!this._map) {\n return;\n }\n if (this.options.trackUserLocation) {\n if (error.code === 1) {\n this._watchState = \"OFF\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\");\n this._geolocateButton.disabled = true;\n var title = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.title = title;\n this._geolocateButton.setAttribute(\"aria-label\", title);\n if (this._geolocationWatchID !== void 0) {\n this._clearWatch();\n }\n } else if (error.code === 3 && noTimeout) {\n return;\n } else {\n this._setErrorState();\n }\n }\n if (this._watchState !== \"OFF\" && this.options.showUserLocation) {\n this._dotElement.classList.add(\"mapboxgl-user-location-dot-stale\");\n }\n this.fire(new performance2.Event(\"error\", error));\n this._finish();\n };\n GeolocateControl2.prototype._finish = function _finish() {\n if (this._timeoutId) {\n clearTimeout(this._timeoutId);\n }\n this._timeoutId = void 0;\n };\n GeolocateControl2.prototype._setupUI = function _setupUI(supported) {\n var this$1 = this;\n this._container.addEventListener(\"contextmenu\", function(e) {\n return e.preventDefault();\n });\n this._geolocateButton = DOM.create(\"button\", \"mapboxgl-ctrl-geolocate\", this._container);\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", this._geolocateButton).setAttribute(\"aria-hidden\", true);\n this._geolocateButton.type = \"button\";\n if (supported === false) {\n performance2.warnOnce(\"Geolocation support is not available so the GeolocateControl will be disabled.\");\n var title = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.disabled = true;\n this._geolocateButton.title = title;\n this._geolocateButton.setAttribute(\"aria-label\", title);\n } else {\n var title$1 = this._map._getUIString(\"GeolocateControl.FindMyLocation\");\n this._geolocateButton.title = title$1;\n this._geolocateButton.setAttribute(\"aria-label\", title$1);\n }\n if (this.options.trackUserLocation) {\n this._geolocateButton.setAttribute(\"aria-pressed\", \"false\");\n this._watchState = \"OFF\";\n }\n if (this.options.showUserLocation) {\n this._dotElement = DOM.create(\"div\", \"mapboxgl-user-location-dot\");\n this._userLocationDotMarker = new Marker(this._dotElement);\n this._circleElement = DOM.create(\"div\", \"mapboxgl-user-location-accuracy-circle\");\n this._accuracyCircleMarker = new Marker({\n element: this._circleElement,\n pitchAlignment: \"map\"\n });\n if (this.options.trackUserLocation) {\n this._watchState = \"OFF\";\n }\n this._map.on(\"zoom\", this._onZoom);\n }\n this._geolocateButton.addEventListener(\"click\", this.trigger.bind(this));\n this._setup = true;\n if (this.options.trackUserLocation) {\n this._map.on(\"movestart\", function(event) {\n var fromResize = event.originalEvent && event.originalEvent.type === \"resize\";\n if (!event.geolocateSource && this$1._watchState === \"ACTIVE_LOCK\" && !fromResize) {\n this$1._watchState = \"BACKGROUND\";\n this$1._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");\n this$1._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this$1.fire(new performance2.Event(\"trackuserlocationend\"));\n }\n });\n }\n };\n GeolocateControl2.prototype.trigger = function trigger() {\n if (!this._setup) {\n performance2.warnOnce(\"Geolocate control triggered before added to a map\");\n return false;\n }\n if (this.options.trackUserLocation) {\n switch (this._watchState) {\n case \"OFF\":\n this._watchState = \"WAITING_ACTIVE\";\n this.fire(new performance2.Event(\"trackuserlocationstart\"));\n break;\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n case \"BACKGROUND_ERROR\":\n numberOfWatches--;\n noTimeout = false;\n this._watchState = \"OFF\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-active-error\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background-error\");\n this.fire(new performance2.Event(\"trackuserlocationend\"));\n break;\n case \"BACKGROUND\":\n this._watchState = \"ACTIVE_LOCK\";\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-background\");\n if (this._lastKnownPosition) {\n this._updateCamera(this._lastKnownPosition);\n }\n this.fire(new performance2.Event(\"trackuserlocationstart\"));\n break;\n }\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");\n break;\n case \"ACTIVE_LOCK\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active\");\n break;\n case \"ACTIVE_ERROR\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-active-error\");\n break;\n case \"BACKGROUND\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background\");\n break;\n case \"BACKGROUND_ERROR\":\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-background-error\");\n break;\n }\n if (this._watchState === \"OFF\" && this._geolocationWatchID !== void 0) {\n this._clearWatch();\n } else if (this._geolocationWatchID === void 0) {\n this._geolocateButton.classList.add(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.setAttribute(\"aria-pressed\", \"true\");\n numberOfWatches++;\n var positionOptions;\n if (numberOfWatches > 1) {\n positionOptions = {\n maximumAge: 6e5,\n timeout: 0\n };\n noTimeout = true;\n } else {\n positionOptions = this.options.positionOptions;\n noTimeout = false;\n }\n this._geolocationWatchID = performance2.window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, positionOptions);\n }\n } else {\n performance2.window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions);\n this._timeoutId = setTimeout(this._finish, 1e4);\n }\n return true;\n };\n GeolocateControl2.prototype._clearWatch = function _clearWatch() {\n performance2.window.navigator.geolocation.clearWatch(this._geolocationWatchID);\n this._geolocationWatchID = void 0;\n this._geolocateButton.classList.remove(\"mapboxgl-ctrl-geolocate-waiting\");\n this._geolocateButton.setAttribute(\"aria-pressed\", \"false\");\n if (this.options.showUserLocation) {\n this._updateMarker(null);\n }\n };\n return GeolocateControl2;\n }(performance2.Evented);\n var defaultOptions$4 = {\n maxWidth: 100,\n unit: \"metric\"\n };\n var ScaleControl = function ScaleControl2(options) {\n this.options = performance2.extend({}, defaultOptions$4, options);\n performance2.bindAll([\n \"_onMove\",\n \"setUnit\"\n ], this);\n };\n ScaleControl.prototype.getDefaultPosition = function getDefaultPosition() {\n return \"bottom-left\";\n };\n ScaleControl.prototype._onMove = function _onMove() {\n updateScale(this._map, this._container, this.options);\n };\n ScaleControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n this._container = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-scale\", map.getContainer());\n this._map.on(\"move\", this._onMove);\n this._onMove();\n return this._container;\n };\n ScaleControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._container);\n this._map.off(\"move\", this._onMove);\n this._map = void 0;\n };\n ScaleControl.prototype.setUnit = function setUnit(unit) {\n this.options.unit = unit;\n updateScale(this._map, this._container, this.options);\n };\n function updateScale(map, container, options) {\n var maxWidth = options && options.maxWidth || 100;\n var y = map._container.clientHeight / 2;\n var left = map.unproject([\n 0,\n y\n ]);\n var right = map.unproject([\n maxWidth,\n y\n ]);\n var maxMeters = left.distanceTo(right);\n if (options && options.unit === \"imperial\") {\n var maxFeet = 3.2808 * maxMeters;\n if (maxFeet > 5280) {\n var maxMiles = maxFeet / 5280;\n setScale(container, maxWidth, maxMiles, map._getUIString(\"ScaleControl.Miles\"));\n } else {\n setScale(container, maxWidth, maxFeet, map._getUIString(\"ScaleControl.Feet\"));\n }\n } else if (options && options.unit === \"nautical\") {\n var maxNauticals = maxMeters / 1852;\n setScale(container, maxWidth, maxNauticals, map._getUIString(\"ScaleControl.NauticalMiles\"));\n } else if (maxMeters >= 1e3) {\n setScale(container, maxWidth, maxMeters / 1e3, map._getUIString(\"ScaleControl.Kilometers\"));\n } else {\n setScale(container, maxWidth, maxMeters, map._getUIString(\"ScaleControl.Meters\"));\n }\n }\n function setScale(container, maxWidth, maxDistance, unit) {\n var distance = getRoundNum(maxDistance);\n var ratio = distance / maxDistance;\n container.style.width = maxWidth * ratio + \"px\";\n container.innerHTML = distance + \" \" + unit;\n }\n function getDecimalRoundNum(d) {\n var multiplier = Math.pow(10, Math.ceil(-Math.log(d) / Math.LN10));\n return Math.round(d * multiplier) / multiplier;\n }\n function getRoundNum(num) {\n var pow10 = Math.pow(10, (\"\" + Math.floor(num)).length - 1);\n var d = num / pow10;\n d = d >= 10 ? 10 : d >= 5 ? 5 : d >= 3 ? 3 : d >= 2 ? 2 : d >= 1 ? 1 : getDecimalRoundNum(d);\n return pow10 * d;\n }\n var FullscreenControl = function FullscreenControl2(options) {\n this._fullscreen = false;\n if (options && options.container) {\n if (options.container instanceof performance2.window.HTMLElement) {\n this._container = options.container;\n } else {\n performance2.warnOnce(\"Full screen control 'container' must be a DOM element.\");\n }\n }\n performance2.bindAll([\n \"_onClickFullscreen\",\n \"_changeIcon\"\n ], this);\n if (\"onfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"fullscreenchange\";\n } else if (\"onmozfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"mozfullscreenchange\";\n } else if (\"onwebkitfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"webkitfullscreenchange\";\n } else if (\"onmsfullscreenchange\" in performance2.window.document) {\n this._fullscreenchange = \"MSFullscreenChange\";\n }\n };\n FullscreenControl.prototype.onAdd = function onAdd(map) {\n this._map = map;\n if (!this._container) {\n this._container = this._map.getContainer();\n }\n this._controlContainer = DOM.create(\"div\", \"mapboxgl-ctrl mapboxgl-ctrl-group\");\n if (this._checkFullscreenSupport()) {\n this._setupUI();\n } else {\n this._controlContainer.style.display = \"none\";\n performance2.warnOnce(\"This device does not support fullscreen mode.\");\n }\n return this._controlContainer;\n };\n FullscreenControl.prototype.onRemove = function onRemove() {\n DOM.remove(this._controlContainer);\n this._map = null;\n performance2.window.document.removeEventListener(this._fullscreenchange, this._changeIcon);\n };\n FullscreenControl.prototype._checkFullscreenSupport = function _checkFullscreenSupport() {\n return !!(performance2.window.document.fullscreenEnabled || performance2.window.document.mozFullScreenEnabled || performance2.window.document.msFullscreenEnabled || performance2.window.document.webkitFullscreenEnabled);\n };\n FullscreenControl.prototype._setupUI = function _setupUI() {\n var button = this._fullscreenButton = DOM.create(\"button\", \"mapboxgl-ctrl-fullscreen\", this._controlContainer);\n DOM.create(\"span\", \"mapboxgl-ctrl-icon\", button).setAttribute(\"aria-hidden\", true);\n button.type = \"button\";\n this._updateTitle();\n this._fullscreenButton.addEventListener(\"click\", this._onClickFullscreen);\n performance2.window.document.addEventListener(this._fullscreenchange, this._changeIcon);\n };\n FullscreenControl.prototype._updateTitle = function _updateTitle() {\n var title = this._getTitle();\n this._fullscreenButton.setAttribute(\"aria-label\", title);\n this._fullscreenButton.title = title;\n };\n FullscreenControl.prototype._getTitle = function _getTitle() {\n return this._map._getUIString(this._isFullscreen() ? \"FullscreenControl.Exit\" : \"FullscreenControl.Enter\");\n };\n FullscreenControl.prototype._isFullscreen = function _isFullscreen() {\n return this._fullscreen;\n };\n FullscreenControl.prototype._changeIcon = function _changeIcon() {\n var fullscreenElement = performance2.window.document.fullscreenElement || performance2.window.document.mozFullScreenElement || performance2.window.document.webkitFullscreenElement || performance2.window.document.msFullscreenElement;\n if (fullscreenElement === this._container !== this._fullscreen) {\n this._fullscreen = !this._fullscreen;\n this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-shrink\");\n this._fullscreenButton.classList.toggle(\"mapboxgl-ctrl-fullscreen\");\n this._updateTitle();\n }\n };\n FullscreenControl.prototype._onClickFullscreen = function _onClickFullscreen() {\n if (this._isFullscreen()) {\n if (performance2.window.document.exitFullscreen) {\n performance2.window.document.exitFullscreen();\n } else if (performance2.window.document.mozCancelFullScreen) {\n performance2.window.document.mozCancelFullScreen();\n } else if (performance2.window.document.msExitFullscreen) {\n performance2.window.document.msExitFullscreen();\n } else if (performance2.window.document.webkitCancelFullScreen) {\n performance2.window.document.webkitCancelFullScreen();\n }\n } else if (this._container.requestFullscreen) {\n this._container.requestFullscreen();\n } else if (this._container.mozRequestFullScreen) {\n this._container.mozRequestFullScreen();\n } else if (this._container.msRequestFullscreen) {\n this._container.msRequestFullscreen();\n } else if (this._container.webkitRequestFullscreen) {\n this._container.webkitRequestFullscreen();\n }\n };\n var defaultOptions$5 = {\n closeButton: true,\n closeOnClick: true,\n focusAfterOpen: true,\n className: \"\",\n maxWidth: \"240px\"\n };\n var focusQuerySelector = [\n \"a[href]\",\n \"[tabindex]:not([tabindex='-1'])\",\n \"[contenteditable]:not([contenteditable='false'])\",\n \"button:not([disabled])\",\n \"input:not([disabled])\",\n \"select:not([disabled])\",\n \"textarea:not([disabled])\"\n ].join(\", \");\n var Popup = function(Evented) {\n function Popup2(options) {\n Evented.call(this);\n this.options = performance2.extend(Object.create(defaultOptions$5), options);\n performance2.bindAll([\n \"_update\",\n \"_onClose\",\n \"remove\",\n \"_onMouseMove\",\n \"_onMouseUp\",\n \"_onDrag\"\n ], this);\n }\n if (Evented)\n Popup2.__proto__ = Evented;\n Popup2.prototype = Object.create(Evented && Evented.prototype);\n Popup2.prototype.constructor = Popup2;\n Popup2.prototype.addTo = function addTo(map) {\n if (this._map) {\n this.remove();\n }\n this._map = map;\n if (this.options.closeOnClick) {\n this._map.on(\"click\", this._onClose);\n }\n if (this.options.closeOnMove) {\n this._map.on(\"move\", this._onClose);\n }\n this._map.on(\"remove\", this.remove);\n this._update();\n this._focusFirstElement();\n if (this._trackPointer) {\n this._map.on(\"mousemove\", this._onMouseMove);\n this._map.on(\"mouseup\", this._onMouseUp);\n if (this._container) {\n this._container.classList.add(\"mapboxgl-popup-track-pointer\");\n }\n this._map._canvasContainer.classList.add(\"mapboxgl-track-pointer\");\n } else {\n this._map.on(\"move\", this._update);\n }\n this.fire(new performance2.Event(\"open\"));\n return this;\n };\n Popup2.prototype.isOpen = function isOpen() {\n return !!this._map;\n };\n Popup2.prototype.remove = function remove() {\n if (this._content) {\n DOM.remove(this._content);\n }\n if (this._container) {\n DOM.remove(this._container);\n delete this._container;\n }\n if (this._map) {\n this._map.off(\"move\", this._update);\n this._map.off(\"move\", this._onClose);\n this._map.off(\"click\", this._onClose);\n this._map.off(\"remove\", this.remove);\n this._map.off(\"mousemove\", this._onMouseMove);\n this._map.off(\"mouseup\", this._onMouseUp);\n this._map.off(\"drag\", this._onDrag);\n delete this._map;\n }\n this.fire(new performance2.Event(\"close\"));\n return this;\n };\n Popup2.prototype.getLngLat = function getLngLat() {\n return this._lngLat;\n };\n Popup2.prototype.setLngLat = function setLngLat(lnglat) {\n this._lngLat = performance2.LngLat.convert(lnglat);\n this._pos = null;\n this._trackPointer = false;\n this._update();\n if (this._map) {\n this._map.on(\"move\", this._update);\n this._map.off(\"mousemove\", this._onMouseMove);\n if (this._container) {\n this._container.classList.remove(\"mapboxgl-popup-track-pointer\");\n }\n this._map._canvasContainer.classList.remove(\"mapboxgl-track-pointer\");\n }\n return this;\n };\n Popup2.prototype.trackPointer = function trackPointer() {\n this._trackPointer = true;\n this._pos = null;\n this._update();\n if (this._map) {\n this._map.off(\"move\", this._update);\n this._map.on(\"mousemove\", this._onMouseMove);\n this._map.on(\"drag\", this._onDrag);\n if (this._container) {\n this._container.classList.add(\"mapboxgl-popup-track-pointer\");\n }\n this._map._canvasContainer.classList.add(\"mapboxgl-track-pointer\");\n }\n return this;\n };\n Popup2.prototype.getElement = function getElement() {\n return this._container;\n };\n Popup2.prototype.setText = function setText(text) {\n return this.setDOMContent(performance2.window.document.createTextNode(text));\n };\n Popup2.prototype.setHTML = function setHTML(html) {\n var frag = performance2.window.document.createDocumentFragment();\n var temp = performance2.window.document.createElement(\"body\");\n var child;\n temp.innerHTML = html;\n while (true) {\n child = temp.firstChild;\n if (!child) {\n break;\n }\n frag.appendChild(child);\n }\n return this.setDOMContent(frag);\n };\n Popup2.prototype.getMaxWidth = function getMaxWidth() {\n return this._container && this._container.style.maxWidth;\n };\n Popup2.prototype.setMaxWidth = function setMaxWidth(maxWidth) {\n this.options.maxWidth = maxWidth;\n this._update();\n return this;\n };\n Popup2.prototype.setDOMContent = function setDOMContent(htmlNode) {\n if (this._content) {\n while (this._content.hasChildNodes()) {\n if (this._content.firstChild) {\n this._content.removeChild(this._content.firstChild);\n }\n }\n } else {\n this._content = DOM.create(\"div\", \"mapboxgl-popup-content\", this._container);\n }\n this._content.appendChild(htmlNode);\n this._createCloseButton();\n this._update();\n this._focusFirstElement();\n return this;\n };\n Popup2.prototype.addClassName = function addClassName(className) {\n if (this._container) {\n this._container.classList.add(className);\n }\n };\n Popup2.prototype.removeClassName = function removeClassName(className) {\n if (this._container) {\n this._container.classList.remove(className);\n }\n };\n Popup2.prototype.setOffset = function setOffset(offset) {\n this.options.offset = offset;\n this._update();\n return this;\n };\n Popup2.prototype.toggleClassName = function toggleClassName(className) {\n if (this._container) {\n return this._container.classList.toggle(className);\n }\n };\n Popup2.prototype._createCloseButton = function _createCloseButton() {\n if (this.options.closeButton) {\n this._closeButton = DOM.create(\"button\", \"mapboxgl-popup-close-button\", this._content);\n this._closeButton.type = \"button\";\n this._closeButton.setAttribute(\"aria-label\", \"Close popup\");\n this._closeButton.innerHTML = \"×\";\n this._closeButton.addEventListener(\"click\", this._onClose);\n }\n };\n Popup2.prototype._onMouseUp = function _onMouseUp(event) {\n this._update(event.point);\n };\n Popup2.prototype._onMouseMove = function _onMouseMove(event) {\n this._update(event.point);\n };\n Popup2.prototype._onDrag = function _onDrag(event) {\n this._update(event.point);\n };\n Popup2.prototype._update = function _update(cursor) {\n var this$1 = this;\n var hasPosition = this._lngLat || this._trackPointer;\n if (!this._map || !hasPosition || !this._content) {\n return;\n }\n if (!this._container) {\n this._container = DOM.create(\"div\", \"mapboxgl-popup\", this._map.getContainer());\n this._tip = DOM.create(\"div\", \"mapboxgl-popup-tip\", this._container);\n this._container.appendChild(this._content);\n if (this.options.className) {\n this.options.className.split(\" \").forEach(function(name2) {\n return this$1._container.classList.add(name2);\n });\n }\n if (this._trackPointer) {\n this._container.classList.add(\"mapboxgl-popup-track-pointer\");\n }\n }\n if (this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth) {\n this._container.style.maxWidth = this.options.maxWidth;\n }\n if (this._map.transform.renderWorldCopies && !this._trackPointer) {\n this._lngLat = smartWrap(this._lngLat, this._pos, this._map.transform);\n }\n if (this._trackPointer && !cursor) {\n return;\n }\n var pos = this._pos = this._trackPointer && cursor ? cursor : this._map.project(this._lngLat);\n var anchor = this.options.anchor;\n var offset = normalizeOffset(this.options.offset);\n if (!anchor) {\n var width = this._container.offsetWidth;\n var height = this._container.offsetHeight;\n var anchorComponents;\n if (pos.y + offset.bottom.y < height) {\n anchorComponents = [\"top\"];\n } else if (pos.y > this._map.transform.height - height) {\n anchorComponents = [\"bottom\"];\n } else {\n anchorComponents = [];\n }\n if (pos.x < width / 2) {\n anchorComponents.push(\"left\");\n } else if (pos.x > this._map.transform.width - width / 2) {\n anchorComponents.push(\"right\");\n }\n if (anchorComponents.length === 0) {\n anchor = \"bottom\";\n } else {\n anchor = anchorComponents.join(\"-\");\n }\n }\n var offsetedPos = pos.add(offset[anchor]).round();\n DOM.setTransform(this._container, anchorTranslate[anchor] + \" translate(\" + offsetedPos.x + \"px,\" + offsetedPos.y + \"px)\");\n applyAnchorClass(this._container, anchor, \"popup\");\n };\n Popup2.prototype._focusFirstElement = function _focusFirstElement() {\n if (!this.options.focusAfterOpen || !this._container) {\n return;\n }\n var firstFocusable = this._container.querySelector(focusQuerySelector);\n if (firstFocusable) {\n firstFocusable.focus();\n }\n };\n Popup2.prototype._onClose = function _onClose() {\n this.remove();\n };\n return Popup2;\n }(performance2.Evented);\n function normalizeOffset(offset) {\n if (!offset) {\n return normalizeOffset(new performance2.Point(0, 0));\n } else if (typeof offset === \"number\") {\n var cornerOffset = Math.round(Math.sqrt(0.5 * Math.pow(offset, 2)));\n return {\n \"center\": new performance2.Point(0, 0),\n \"top\": new performance2.Point(0, offset),\n \"top-left\": new performance2.Point(cornerOffset, cornerOffset),\n \"top-right\": new performance2.Point(-cornerOffset, cornerOffset),\n \"bottom\": new performance2.Point(0, -offset),\n \"bottom-left\": new performance2.Point(cornerOffset, -cornerOffset),\n \"bottom-right\": new performance2.Point(-cornerOffset, -cornerOffset),\n \"left\": new performance2.Point(offset, 0),\n \"right\": new performance2.Point(-offset, 0)\n };\n } else if (offset instanceof performance2.Point || Array.isArray(offset)) {\n var convertedOffset = performance2.Point.convert(offset);\n return {\n \"center\": convertedOffset,\n \"top\": convertedOffset,\n \"top-left\": convertedOffset,\n \"top-right\": convertedOffset,\n \"bottom\": convertedOffset,\n \"bottom-left\": convertedOffset,\n \"bottom-right\": convertedOffset,\n \"left\": convertedOffset,\n \"right\": convertedOffset\n };\n } else {\n return {\n \"center\": performance2.Point.convert(offset[\"center\"] || [\n 0,\n 0\n ]),\n \"top\": performance2.Point.convert(offset[\"top\"] || [\n 0,\n 0\n ]),\n \"top-left\": performance2.Point.convert(offset[\"top-left\"] || [\n 0,\n 0\n ]),\n \"top-right\": performance2.Point.convert(offset[\"top-right\"] || [\n 0,\n 0\n ]),\n \"bottom\": performance2.Point.convert(offset[\"bottom\"] || [\n 0,\n 0\n ]),\n \"bottom-left\": performance2.Point.convert(offset[\"bottom-left\"] || [\n 0,\n 0\n ]),\n \"bottom-right\": performance2.Point.convert(offset[\"bottom-right\"] || [\n 0,\n 0\n ]),\n \"left\": performance2.Point.convert(offset[\"left\"] || [\n 0,\n 0\n ]),\n \"right\": performance2.Point.convert(offset[\"right\"] || [\n 0,\n 0\n ])\n };\n }\n }\n var exported = {\n version: performance2.version,\n supported: mapboxGlSupported,\n setRTLTextPlugin: performance2.setRTLTextPlugin,\n getRTLTextPluginStatus: performance2.getRTLTextPluginStatus,\n Map: Map2,\n NavigationControl,\n GeolocateControl,\n AttributionControl,\n ScaleControl,\n FullscreenControl,\n Popup,\n Marker,\n Style,\n LngLat: performance2.LngLat,\n LngLatBounds: performance2.LngLatBounds,\n Point: performance2.Point,\n MercatorCoordinate: performance2.MercatorCoordinate,\n Evented: performance2.Evented,\n config: performance2.config,\n prewarm,\n clearPrewarmedResources,\n get accessToken() {\n return performance2.config.ACCESS_TOKEN;\n },\n set accessToken(token) {\n performance2.config.ACCESS_TOKEN = token;\n },\n get baseApiUrl() {\n return performance2.config.API_URL;\n },\n set baseApiUrl(url) {\n performance2.config.API_URL = url;\n },\n get workerCount() {\n return WorkerPool.workerCount;\n },\n set workerCount(count) {\n WorkerPool.workerCount = count;\n },\n get maxParallelImageRequests() {\n return performance2.config.MAX_PARALLEL_IMAGE_REQUESTS;\n },\n set maxParallelImageRequests(numRequests) {\n performance2.config.MAX_PARALLEL_IMAGE_REQUESTS = numRequests;\n },\n clearStorage: function clearStorage(callback) {\n performance2.clearTileCache(callback);\n },\n workerUrl: \"\"\n };\n return exported;\n });\n return mapboxgl;\n });\n }\n });\n\n // src/plots/mapbox/layers.js\n var require_layers = __commonJS({\n \"src/plots/mapbox/layers.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var sanitizeHTML = require_svg_text_utils().sanitizeHTML;\n var convertTextOpts = require_convert_text_opts();\n var constants = require_constants25();\n function MapboxLayer(subplot, index) {\n this.subplot = subplot;\n this.uid = subplot.uid + \"-\" + index;\n this.index = index;\n this.idSource = \"source-\" + this.uid;\n this.idLayer = constants.layoutLayerPrefix + this.uid;\n this.sourceType = null;\n this.source = null;\n this.layerType = null;\n this.below = null;\n this.visible = false;\n }\n var proto = MapboxLayer.prototype;\n proto.update = function update(opts) {\n if (!this.visible) {\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewImage(opts)) {\n this.updateImage(opts);\n } else if (this.needsNewSource(opts)) {\n this.removeLayer();\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewLayer(opts)) {\n this.updateLayer(opts);\n } else {\n this.updateStyle(opts);\n }\n this.visible = isVisible(opts);\n };\n proto.needsNewImage = function(opts) {\n var map = this.subplot.map;\n return map.getSource(this.idSource) && this.sourceType === \"image\" && opts.sourcetype === \"image\" && (this.source !== opts.source || JSON.stringify(this.coordinates) !== JSON.stringify(opts.coordinates));\n };\n proto.needsNewSource = function(opts) {\n return this.sourceType !== opts.sourcetype || JSON.stringify(this.source) !== JSON.stringify(opts.source) || this.layerType !== opts.type;\n };\n proto.needsNewLayer = function(opts) {\n return this.layerType !== opts.type || this.below !== this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.lookupBelow = function() {\n return this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.updateImage = function(opts) {\n var map = this.subplot.map;\n map.getSource(this.idSource).updateImage({\n url: opts.source,\n coordinates: opts.coordinates\n });\n var _below = this.findFollowingMapboxLayerId(this.lookupBelow());\n if (_below !== null) {\n this.subplot.map.moveLayer(this.idLayer, _below);\n }\n };\n proto.updateSource = function(opts) {\n var map = this.subplot.map;\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n this.sourceType = opts.sourcetype;\n this.source = opts.source;\n if (!isVisible(opts)) return;\n var sourceOpts = convertSourceOpts(opts);\n map.addSource(this.idSource, sourceOpts);\n };\n proto.findFollowingMapboxLayerId = function(below) {\n if (below === \"traces\") {\n var mapLayers = this.subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(constants.traceLayerPrefix) === 0) {\n below = layerId;\n break;\n }\n }\n }\n return below;\n };\n proto.updateLayer = function(opts) {\n var subplot = this.subplot;\n var convertedOpts = convertOpts(opts);\n var below = this.lookupBelow();\n var _below = this.findFollowingMapboxLayerId(below);\n this.removeLayer();\n if (isVisible(opts)) {\n subplot.addLayer({\n id: this.idLayer,\n source: this.idSource,\n \"source-layer\": opts.sourcelayer || \"\",\n type: opts.type,\n minzoom: opts.minzoom,\n maxzoom: opts.maxzoom,\n layout: convertedOpts.layout,\n paint: convertedOpts.paint\n }, _below);\n }\n this.layerType = opts.type;\n this.below = below;\n };\n proto.updateStyle = function(opts) {\n if (isVisible(opts)) {\n var convertedOpts = convertOpts(opts);\n this.subplot.setOptions(this.idLayer, \"setLayoutProperty\", convertedOpts.layout);\n this.subplot.setOptions(this.idLayer, \"setPaintProperty\", convertedOpts.paint);\n }\n };\n proto.removeLayer = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) {\n map.removeLayer(this.idLayer);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) map.removeLayer(this.idLayer);\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n };\n function isVisible(opts) {\n if (!opts.visible) return false;\n var source = opts.source;\n if (Array.isArray(source) && source.length > 0) {\n for (var i = 0; i < source.length; i++) {\n if (typeof source[i] !== \"string\" || source[i].length === 0) {\n return false;\n }\n }\n return true;\n }\n return Lib.isPlainObject(source) || typeof source === \"string\" && source.length > 0;\n }\n function convertOpts(opts) {\n var layout = {};\n var paint = {};\n switch (opts.type) {\n case \"circle\":\n Lib.extendFlat(paint, {\n \"circle-radius\": opts.circle.radius,\n \"circle-color\": opts.color,\n \"circle-opacity\": opts.opacity\n });\n break;\n case \"line\":\n Lib.extendFlat(paint, {\n \"line-width\": opts.line.width,\n \"line-color\": opts.color,\n \"line-opacity\": opts.opacity,\n \"line-dasharray\": opts.line.dash\n });\n break;\n case \"fill\":\n Lib.extendFlat(paint, {\n \"fill-color\": opts.color,\n \"fill-outline-color\": opts.fill.outlinecolor,\n \"fill-opacity\": opts.opacity\n // no way to pass specify outline width at the moment\n });\n break;\n case \"symbol\":\n var symbol = opts.symbol;\n var textOpts = convertTextOpts(symbol.textposition, symbol.iconsize);\n Lib.extendFlat(layout, {\n \"icon-image\": symbol.icon + \"-15\",\n \"icon-size\": symbol.iconsize / 10,\n \"text-field\": symbol.text,\n \"text-size\": symbol.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"symbol-placement\": symbol.placement\n // TODO font family\n // 'text-font': symbol.textfont.family.split(', '),\n });\n Lib.extendFlat(paint, {\n \"icon-color\": opts.color,\n \"text-color\": symbol.textfont.color,\n \"text-opacity\": opts.opacity\n });\n break;\n case \"raster\":\n Lib.extendFlat(paint, {\n \"raster-fade-duration\": 0,\n \"raster-opacity\": opts.opacity\n });\n break;\n }\n return {\n layout,\n paint\n };\n }\n function convertSourceOpts(opts) {\n var sourceType = opts.sourcetype;\n var source = opts.source;\n var sourceOpts = { type: sourceType };\n var field;\n if (sourceType === \"geojson\") {\n field = \"data\";\n } else if (sourceType === \"vector\") {\n field = typeof source === \"string\" ? \"url\" : \"tiles\";\n } else if (sourceType === \"raster\") {\n field = \"tiles\";\n sourceOpts.tileSize = 256;\n } else if (sourceType === \"image\") {\n field = \"url\";\n sourceOpts.coordinates = opts.coordinates;\n }\n sourceOpts[field] = source;\n if (opts.sourceattribution) {\n sourceOpts.attribution = sanitizeHTML(opts.sourceattribution);\n }\n return sourceOpts;\n }\n module.exports = function createMapboxLayer(subplot, index, opts) {\n var mapboxLayer = new MapboxLayer(subplot, index);\n mapboxLayer.update(opts);\n return mapboxLayer;\n };\n }\n });\n\n // src/plots/mapbox/mapbox.js\n var require_mapbox = __commonJS({\n \"src/plots/mapbox/mapbox.js\"(exports, module) {\n \"use strict\";\n var mapboxgl = require_mapbox_gl_unminified();\n var Lib = require_lib();\n var geoUtils = require_geo_location_utils();\n var Registry = require_registry();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var selectMode = dragHelpers.selectMode;\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var clearSelectionsCache = require_selections().clearSelectionsCache;\n var selectOnClick = require_selections().selectOnClick;\n var constants = require_constants25();\n var createMapboxLayer = require_layers();\n function Mapbox(gd, id) {\n this.id = id;\n this.gd = gd;\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n this.uid = fullLayout._uid + \"-\" + this.id;\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n this.map = null;\n this.accessToken = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n }\n var proto = Mapbox.prototype;\n proto.plot = function(calcData, fullLayout, promises) {\n var self2 = this;\n var opts = fullLayout[self2.id];\n if (self2.map && opts.accesstoken !== self2.accessToken) {\n self2.map.remove();\n self2.map = null;\n self2.styleObj = null;\n self2.traceHash = {};\n self2.layerList = [];\n }\n var promise;\n if (!self2.map) {\n promise = new Promise(function(resolve, reject) {\n self2.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self2.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n promises.push(promise);\n };\n proto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var opts = fullLayout[self2.id];\n var styleObj = self2.styleObj = getStyleObj(opts.style, fullLayout);\n self2.accessToken = opts.accesstoken;\n var bounds = opts.bounds;\n var maxBounds = bounds ? [[bounds.west, bounds.south], [bounds.east, bounds.north]] : null;\n var map = self2.map = new mapboxgl.Map({\n container: self2.div,\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n maxBounds,\n interactive: !self2.isStatic,\n preserveDrawingBuffer: self2.isStatic,\n doubleClickZoom: false,\n boxZoom: false,\n attributionControl: false\n }).addControl(new mapboxgl.AttributionControl({\n compact: true\n }));\n map._canvas.style.left = \"0px\";\n map._canvas.style.top = \"0px\";\n self2.rejectOnError(reject);\n if (!self2.isStatic) {\n self2.initFx(calcData, fullLayout);\n }\n var promises = [];\n promises.push(new Promise(function(resolve2) {\n map.once(\"load\", resolve2);\n }));\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var map = self2.map;\n var opts = fullLayout[this.id];\n self2.rejectOnError(reject);\n var promises = [];\n var styleObj = getStyleObj(opts.style, fullLayout);\n if (JSON.stringify(self2.styleObj) !== JSON.stringify(styleObj)) {\n self2.styleObj = styleObj;\n map.setStyle(styleObj.style);\n self2.traceHash = {};\n promises.push(new Promise(function(resolve2) {\n map.once(\"styledata\", resolve2);\n }));\n }\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n for (i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n if (typeof trace.below === \"string\") {\n val = trace.below;\n } else if (_module.getBelow) {\n val = _module.getBelow(trace, this);\n }\n if (val === \"\") {\n hasTraceAtTop = true;\n }\n belowLookup[\"trace-\" + trace.uid] = val || \"\";\n }\n for (i = 0; i < layers.length; i++) {\n var item = layers[i];\n if (typeof item.below === \"string\") {\n val = item.below;\n } else if (hasTraceAtTop) {\n val = \"traces\";\n } else {\n val = \"\";\n }\n belowLookup[\"layout-\" + i] = val;\n }\n var val2list = {};\n var k, id;\n for (k in belowLookup) {\n val = belowLookup[k];\n if (val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n for (val in val2list) {\n var list = val2list[val];\n if (list.length > 1) {\n for (i = 0; i < list.length; i++) {\n k = list[i];\n if (k.indexOf(\"trace-\") === 0) {\n id = k.split(\"trace-\")[1];\n if (this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if (k.indexOf(\"layout-\") === 0) {\n id = k.split(\"layout-\")[1];\n if (this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n };\n var traceType2orderIndex = {\n choroplethmapbox: 0,\n densitymapbox: 1,\n scattermapbox: 2\n };\n proto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return traceType2orderIndex[a[0].trace.type] - traceType2orderIndex[b[0].trace.type];\n });\n for (i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n var didUpdate = false;\n if (traceObj) {\n if (traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if (!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n var ids = Object.keys(traceHash);\n idLoop:\n for (i = 0; i < ids.length; i++) {\n var id = ids[i];\n for (j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if (id === trace.uid) continue idLoop;\n }\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n };\n proto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n if (!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n if (this.gd._context._scrollZoom.mapbox) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n };\n proto.resolveOnRender = function(resolve) {\n var map = this.map;\n map.on(\"render\", function onRender() {\n if (map.loaded()) {\n map.off(\"render\", onRender);\n setTimeout(resolve, 10);\n }\n });\n };\n proto.rejectOnError = function(reject) {\n var map = this.map;\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n map.once(\"error\", handler);\n map.once(\"style.error\", handler);\n map.once(\"source.error\", handler);\n map.once(\"tile.error\", handler);\n map.once(\"layer.error\", handler);\n };\n proto.createFramework = function(fullLayout) {\n var self2 = this;\n var div = self2.div = document.createElement(\"div\");\n div.id = self2.uid;\n div.style.position = \"absolute\";\n self2.container.appendChild(div);\n self2.xaxis = {\n _id: \"x\",\n c2p: function(v) {\n return self2.project(v).x;\n }\n };\n self2.yaxis = {\n _id: \"y\",\n c2p: function(v) {\n return self2.project(v).y;\n }\n };\n self2.updateFramework(fullLayout);\n self2.mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(self2.mockAxis, fullLayout);\n };\n proto.initFx = function(calcData, fullLayout) {\n var self2 = this;\n var gd = self2.gd;\n var map = self2.map;\n map.on(\"moveend\", function(evt) {\n if (!self2.map) return;\n var fullLayoutNow = gd._fullLayout;\n if (evt.originalEvent || self2.wheeling) {\n var optsNow = fullLayoutNow[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, fullLayoutNow._preGUI, self2.getViewEdits(optsNow));\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n }\n if (evt.originalEvent && evt.originalEvent.type === \"mouseup\") {\n self2.dragging = false;\n } else if (self2.wheeling) {\n self2.wheeling = false;\n }\n if (fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n map.on(\"wheel\", function() {\n self2.wheeling = true;\n });\n map.on(\"mousemove\", function(evt) {\n var bb = self2.div.getBoundingClientRect();\n var xy = [\n evt.originalEvent.offsetX,\n evt.originalEvent.offsetY\n ];\n evt.target.getBoundingClientRect = function() {\n return bb;\n };\n self2.xaxis.p2c = function() {\n return map.unproject(xy).lng;\n };\n self2.yaxis.p2c = function() {\n return map.unproject(xy).lat;\n };\n gd._fullLayout._rehover = function() {\n if (gd._fullLayout._hoversubplot === self2.id && gd._fullLayout[self2.id]) {\n Fx.hover(gd, evt, self2.id);\n }\n };\n Fx.hover(gd, evt, self2.id);\n gd._fullLayout._hoversubplot = self2.id;\n });\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n map.on(\"dragstart\", function() {\n self2.dragging = true;\n unhover();\n });\n map.on(\"zoomstart\", unhover);\n map.on(\"mouseout\", function() {\n gd._fullLayout._hoversubplot = null;\n });\n function emitUpdate() {\n var viewNow = self2.getView();\n gd.emit(\"plotly_relayouting\", self2.getViewEditsWithDerived(viewNow));\n }\n map.on(\"drag\", emitUpdate);\n map.on(\"zoom\", emitUpdate);\n map.on(\"dblclick\", function() {\n var optsNow = gd._fullLayout[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, gd._fullLayout._preGUI, self2.getViewEdits(optsNow));\n var viewInitial = self2.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_doubleclick\", null);\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n });\n self2.clearOutline = function() {\n clearSelectionsCache(self2.dragOptions);\n clearOutline(self2.dragOptions.gd);\n };\n self2.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n if (clickMode.indexOf(\"select\") > -1) {\n selectOnClick(evt.originalEvent, gd, [self2.xaxis], [self2.yaxis], self2.id, dragOptions);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n };\n proto.updateFx = function(fullLayout) {\n var self2 = this;\n var map = self2.map;\n var gd = self2.gd;\n if (self2.isStatic) return;\n function invert(pxpy) {\n var obj = self2.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n fillRangeItems = function(eventData, poly) {\n if (poly.isRect) {\n var ranges = eventData.range = {};\n ranges[self2.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n } else {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self2.id] = poly.map(invert);\n }\n };\n var oldDragOptions = self2.dragOptions;\n self2.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n dragmode: fullLayout.dragmode,\n element: self2.div,\n gd,\n plotinfo: {\n id: self2.id,\n domain: fullLayout[self2.id].domain,\n xaxis: self2.xaxis,\n yaxis: self2.yaxis,\n fillRangeItems\n },\n xaxes: [self2.xaxis],\n yaxes: [self2.yaxis],\n subplot: self2.id\n });\n map.off(\"click\", self2.onClickInPanHandler);\n if (selectMode(dragMode) || drawMode(dragMode)) {\n map.dragPan.disable();\n map.on(\"zoomstart\", self2.clearOutline);\n self2.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self2.dragOptions, dragMode);\n };\n dragElement.init(self2.dragOptions);\n } else {\n map.dragPan.enable();\n map.off(\"zoomstart\", self2.clearOutline);\n self2.div.onmousedown = null;\n self2.div.ontouchstart = null;\n self2.div.removeEventListener(\"touchstart\", self2.div._ontouchstart);\n self2.onClickInPanHandler = self2.onClickInPanFn(self2.dragOptions);\n map.on(\"click\", self2.onClickInPanHandler);\n }\n };\n proto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + \"px\";\n style.height = size.h * (domain.y[1] - domain.y[0]) + \"px\";\n style.left = size.l + domain.x[0] * size.w + \"px\";\n style.top = size.t + (1 - domain.y[1]) * size.h + \"px\";\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n };\n proto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n if (layers.length !== layerList.length) {\n for (i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n layerList = this.layerList = [];\n for (i = 0; i < layers.length; i++) {\n layerList.push(createMapboxLayer(this, i, layers[i]));\n }\n } else {\n for (i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n };\n proto.destroy = function() {\n if (this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n };\n proto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n };\n proto.setOptions = function(id, methodName, opts) {\n for (var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n };\n proto.getMapLayers = function() {\n return this.map.getStyle().layers;\n };\n proto.addLayer = function(opts, below) {\n var map = this.map;\n if (typeof below === \"string\") {\n if (below === \"\") {\n map.addLayer(opts, below);\n return;\n }\n var mapLayers = this.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n if (below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n Lib.warn([\n \"Trying to add layer with *below* value\",\n below,\n \"referencing a layer that does not exist\",\n \"or that does not yet exist.\"\n ].join(\" \"));\n }\n map.addLayer(opts);\n };\n proto.project = function(v) {\n return this.map.project(new mapboxgl.LngLat(v[0], v[1]));\n };\n proto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var lon = mapCenter.lng;\n var lat = mapCenter.lat;\n var center = { lon, lat };\n var canvas = map.getCanvas();\n var w = parseInt(canvas.style.width);\n var h = parseInt(canvas.style.height);\n return {\n center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n };\n proto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = [\"center\", \"zoom\", \"bearing\", \"pitch\"];\n var obj = {};\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + \".\" + k] = cont[k];\n }\n return obj;\n };\n proto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + \"._derived\"] = cont._derived;\n return obj;\n };\n function getStyleObj(val, fullLayout) {\n var styleObj = {};\n if (Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if (typeof val === \"string\") {\n styleObj.id = val;\n if (constants.styleValuesMapbox.indexOf(val) !== -1) {\n styleObj.style = convertStyleVal(val);\n } else if (constants.stylesNonMapbox[val]) {\n styleObj.style = constants.stylesNonMapbox[val];\n var spec = styleObj.style.sources[\"plotly-\" + val];\n var tiles = spec ? spec.tiles : void 0;\n if (tiles && tiles[0] && tiles[0].slice(-9) === \"?api_key=\") {\n tiles[0] += fullLayout._mapboxAccessToken;\n }\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n styleObj.transition = { duration: 0, delay: 0 };\n return styleObj;\n }\n function convertStyleVal(val) {\n return constants.styleUrlPrefix + val + \"-\" + constants.styleUrlSuffix;\n }\n function convertCenter(center) {\n return [center.lon, center.lat];\n }\n module.exports = Mapbox;\n }\n });\n\n // src/plots/mapbox/layout_defaults.js\n var require_layout_defaults17 = __commonJS({\n \"src/plots/mapbox/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var layoutAttributes = require_layout_attributes19();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"mapbox\",\n attributes: layoutAttributes,\n handleDefaults,\n partition: \"y\",\n accessToken: layoutOut._mapboxAccessToken\n });\n };\n function handleDefaults(containerIn, containerOut, coerce, opts) {\n coerce(\"accesstoken\", opts.accessToken);\n coerce(\"style\");\n coerce(\"center.lon\");\n coerce(\"center.lat\");\n coerce(\"zoom\");\n coerce(\"bearing\");\n coerce(\"pitch\");\n var west = coerce(\"bounds.west\");\n var east = coerce(\"bounds.east\");\n var south = coerce(\"bounds.south\");\n var north = coerce(\"bounds.north\");\n if (west === void 0 || east === void 0 || south === void 0 || north === void 0) {\n delete containerOut.bounds;\n }\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"layers\",\n handleItemDefaults: handleLayerDefaults\n });\n containerOut._input = containerIn;\n }\n function handleLayerDefaults(layerIn, layerOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layerIn, layerOut, layoutAttributes.layers, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (visible) {\n var sourceType = coerce(\"sourcetype\");\n var mustBeRasterLayer = sourceType === \"raster\" || sourceType === \"image\";\n coerce(\"source\");\n coerce(\"sourceattribution\");\n if (sourceType === \"vector\") {\n coerce(\"sourcelayer\");\n }\n if (sourceType === \"image\") {\n coerce(\"coordinates\");\n }\n var typeDflt;\n if (mustBeRasterLayer) typeDflt = \"raster\";\n var type = coerce(\"type\", typeDflt);\n if (mustBeRasterLayer && type !== \"raster\") {\n type = layerOut.type = \"raster\";\n Lib.log(\"Source types *raster* and *image* must drawn *raster* layer type.\");\n }\n coerce(\"below\");\n coerce(\"color\");\n coerce(\"opacity\");\n coerce(\"minzoom\");\n coerce(\"maxzoom\");\n if (type === \"circle\") {\n coerce(\"circle.radius\");\n }\n if (type === \"line\") {\n coerce(\"line.width\");\n coerce(\"line.dash\");\n }\n if (type === \"fill\") {\n coerce(\"fill.outlinecolor\");\n }\n if (type === \"symbol\") {\n coerce(\"symbol.icon\");\n coerce(\"symbol.iconsize\");\n coerce(\"symbol.text\");\n Lib.coerceFont(coerce, \"symbol.textfont\", void 0, {\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n coerce(\"symbol.textposition\");\n coerce(\"symbol.placement\");\n }\n }\n }\n }\n });\n\n // src/plots/mapbox/index.js\n var require_mapbox2 = __commonJS({\n \"src/plots/mapbox/index.js\"(exports) {\n \"use strict\";\n var mapboxgl = require_mapbox_gl_unminified();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var strScale = Lib.strScale;\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var d3 = require_d3();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var Mapbox = require_mapbox();\n var MAPBOX = \"mapbox\";\n var constants = exports.constants = require_constants25();\n exports.name = MAPBOX;\n exports.attr = \"subplot\";\n exports.idRoot = MAPBOX;\n exports.idRegex = exports.attrRegex = Lib.counterRegex(MAPBOX);\n var deprecationWarning = [\n \"mapbox subplots and traces are deprecated!\",\n \"Please consider switching to `map` subplots and traces.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n exports.attributes = {\n subplot: {\n valType: \"subplotid\",\n dflt: \"mapbox\",\n editType: \"calc\"\n }\n };\n exports.layoutAttributes = require_layout_attributes19();\n exports.supplyLayoutDefaults = require_layout_defaults17();\n var firstPlot = true;\n exports.plot = function plot(gd) {\n if (firstPlot) {\n firstPlot = false;\n Lib.warn(deprecationWarning);\n }\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapboxIds = fullLayout._subplots[MAPBOX];\n if (mapboxgl.version !== constants.requiredVersion) {\n throw new Error(constants.wrongVersionErrorMsg);\n }\n var accessToken = findAccessToken(gd, mapboxIds);\n mapboxgl.accessToken = accessToken;\n for (var i = 0; i < mapboxIds.length; i++) {\n var id = mapboxIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAPBOX, id);\n var opts = fullLayout[id];\n var mapbox = opts._subplot;\n if (!mapbox) {\n mapbox = new Mapbox(gd, id);\n fullLayout[id]._subplot = mapbox;\n }\n if (!mapbox.viewInitial) {\n mapbox.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n mapbox.plot(subplotCalcData, fullLayout, gd._promises);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapboxKeys = oldFullLayout._subplots[MAPBOX] || [];\n for (var i = 0; i < oldMapboxKeys.length; i++) {\n var oldMapboxKey = oldMapboxKeys[i];\n if (!newFullLayout[oldMapboxKey] && !!oldFullLayout[oldMapboxKey]._subplot) {\n oldFullLayout[oldMapboxKey]._subplot.destroy();\n }\n }\n };\n exports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n var size = fullLayout._size;\n for (var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var mapbox = opts._subplot;\n var imageData = mapbox.toImage(\"png\");\n var image = fullLayout._glimages.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: \"none\"\n });\n var subplotDiv = d3.select(opts._subplot.div);\n var hidden = subplotDiv.select(\".mapboxgl-ctrl-logo\").node().offsetParent === null;\n if (!hidden) {\n var logo = fullLayout._glimages.append(\"g\");\n logo.attr(\"transform\", strTranslate(size.l + size.w * domain.x[0] + 10, size.t + size.h * (1 - domain.y[0]) - 31));\n logo.append(\"path\").attr(\"d\", constants.mapboxLogo.path0).style({\n opacity: 0.9,\n fill: \"#ffffff\",\n \"enable-background\": \"new\"\n });\n logo.append(\"path\").attr(\"d\", constants.mapboxLogo.path1).style(\"opacity\", 0.35).style(\"enable-background\", \"new\");\n logo.append(\"path\").attr(\"d\", constants.mapboxLogo.path2).style(\"opacity\", 0.35).style(\"enable-background\", \"new\");\n logo.append(\"polygon\").attr(\"points\", constants.mapboxLogo.polygon).style({\n opacity: 0.9,\n fill: \"#ffffff\",\n \"enable-background\": \"new\"\n });\n }\n var attributions = subplotDiv.select(\".mapboxgl-ctrl-attrib\").text().replace(\"Improve this map\", \"\");\n var attributionGroup = fullLayout._glimages.append(\"g\");\n var attributionText = attributionGroup.append(\"text\");\n attributionText.text(attributions).classed(\"static-attribution\", true).attr({\n \"font-size\": 12,\n \"font-family\": \"Arial\",\n color: \"rgba(0, 0, 0, 0.75)\",\n \"text-anchor\": \"end\",\n \"data-unformatted\": attributions\n });\n var bBox = Drawing.bBox(attributionText.node());\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if (bBox.width > maxWidth / 2) {\n var multilineAttributions = attributions.split(\"|\").join(\"
\");\n attributionText.text(multilineAttributions).attr(\"data-unformatted\", multilineAttributions).call(svgTextUtils.convertToTspans, gd);\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr(\"transform\", strTranslate(-3, -bBox.height + 8));\n attributionGroup.insert(\"rect\", \".static-attribution\").attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: \"rgba(255, 255, 255, 0.75)\"\n });\n var scaleRatio = 1;\n if (bBox.width + 6 > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n var offset = [size.l + size.w * domain.x[1], size.t + size.h * (1 - domain.y[0])];\n attributionGroup.attr(\"transform\", strTranslate(offset[0], offset[1]) + strScale(scaleRatio));\n }\n };\n function findAccessToken(gd, mapboxIds) {\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n if (context.mapboxAccessToken === \"\") return \"\";\n var tokensUseful = [];\n var tokensListed = [];\n var hasOneSetMapboxStyle = false;\n var wontWork = false;\n for (var i = 0; i < mapboxIds.length; i++) {\n var opts = fullLayout[mapboxIds[i]];\n var token = opts.accesstoken;\n if (isStyleRequireAccessToken(opts.style)) {\n if (token) {\n Lib.pushUnique(tokensUseful, token);\n } else {\n if (isStyleRequireAccessToken(opts._input.style)) {\n Lib.error(\"Uses Mapbox map style, but did not set an access token.\");\n hasOneSetMapboxStyle = true;\n }\n wontWork = true;\n }\n }\n if (token) {\n Lib.pushUnique(tokensListed, token);\n }\n }\n if (wontWork) {\n var msg = hasOneSetMapboxStyle ? constants.noAccessTokenErrorMsg : constants.missingStyleErrorMsg;\n Lib.error(msg);\n throw new Error(msg);\n }\n if (tokensUseful.length) {\n if (tokensUseful.length > 1) {\n Lib.warn(constants.multipleTokensErrorMsg);\n }\n return tokensUseful[0];\n } else {\n if (tokensListed.length) {\n Lib.log([\n \"Listed mapbox access token(s)\",\n tokensListed.join(\",\"),\n \"but did not use a Mapbox map style, ignoring token(s).\"\n ].join(\" \"));\n }\n return \"\";\n }\n }\n function isStyleRequireAccessToken(s) {\n return typeof s === \"string\" && (constants.styleValuesMapbox.indexOf(s) !== -1 || s.indexOf(\"mapbox://\") === 0 || s.indexOf(\"stamen\") === 0);\n }\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAPBOX];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n };\n }\n });\n\n // src/traces/scattermapbox/index.js\n var require_scattermapbox = __commonJS({\n \"src/traces/scattermapbox/index.js\"(exports, module) {\n \"use strict\";\n var deprecationWarning = [\n \"*scattermapbox* trace is deprecated!\",\n \"Please consider switching to the *scattermap* trace type and `map` subplots.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n module.exports = {\n attributes: require_attributes54(),\n supplyDefaults: require_defaults50(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels5(),\n calc: require_calc27(),\n plot: require_plot23(),\n hoverPoints: require_hover18().hoverPoints,\n eventData: require_event_data11(),\n selectPoints: require_select9(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.update(cd);\n }\n },\n moduleType: \"trace\",\n name: \"scattermapbox\",\n basePlotModule: require_mapbox2(),\n categories: [\"mapbox\", \"gl\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scattermapbox.js\n var require_scattermapbox2 = __commonJS({\n \"lib/scattermapbox.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattermapbox();\n }\n });\n\n // src/traces/choroplethmapbox/attributes.js\n var require_attributes55 = __commonJS({\n \"src/traces/choroplethmapbox/attributes.js\"(exports, module) {\n \"use strict\";\n var choroplethAttrs = require_attributes49();\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n locations: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO\n // Maybe start with only one value (that we could name e.g. 'geojson-id'),\n // but eventually:\n // - we could also support for our own dist/topojson/*\n // .. and locationmode: choroplethAttrs.locationmode,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO maybe we could also set a \"key\" to dig out values out of the\n // GeoJSON feature `properties` fields?\n geojson: {\n valType: \"any\",\n editType: \"calc\"\n },\n featureidkey: extendFlat({}, choroplethAttrs.featureidkey, {}),\n // TODO agree on name / behaviour\n //\n // 'below' is used currently for layout.mapbox.layers,\n // even though it's not very plotly-esque.\n //\n // Note also, that the mapbox-gl style don't all have the same layers,\n // see https://codepen.io/etpinard/pen/ydVMwM for full list\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: choroplethAttrs.text,\n hovertext: choroplethAttrs.hovertext,\n marker: {\n line: {\n color: extendFlat({}, choroplethAttrs.marker.line.color, { editType: \"plot\" }),\n width: extendFlat({}, choroplethAttrs.marker.line.width, { editType: \"plot\" }),\n editType: \"calc\"\n },\n // TODO maybe having a dflt less than 1, together with `below:''` would be better?\n opacity: extendFlat({}, choroplethAttrs.marker.opacity, { editType: \"plot\" }),\n editType: \"calc\"\n },\n selected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.selected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n unselected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.unselected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n hoverinfo: choroplethAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, { keys: [\"properties\"] }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/choroplethmapbox/defaults.js\n var require_defaults51 = __commonJS({\n \"src/traces/choroplethmapbox/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes55();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var z = coerce(\"z\");\n var geojson = coerce(\"geojson\");\n if (!Lib.isArrayOrTypedArray(locations) || !locations.length || !Lib.isArrayOrTypedArray(z) || !z.length || !(typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson))) {\n traceOut.visible = false;\n return;\n }\n coerce(\"featureidkey\");\n traceOut._length = Math.min(locations.length, z.length);\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var mlw = coerce(\"marker.line.width\");\n if (mlw) coerce(\"marker.line.color\");\n coerce(\"marker.opacity\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/choroplethmapbox/convert.js\n var require_convert12 = __commonJS({\n \"src/traces/choroplethmapbox/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBlank = require_geojson_utils().makeBlank;\n var geoUtils = require_geo_location_utils();\n function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var fill = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var line = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n fill,\n line,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = geoUtils.extractTraceFeature(calcTrace);\n if (!features) return opts;\n var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace);\n var marker = trace.marker;\n var markerLine = marker.line || {};\n var opacityFn;\n if (Lib.isArrayOrTypedArray(marker.opacity)) {\n opacityFn = function(d) {\n var mo = d.mo;\n return isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n };\n }\n var lineColorFn;\n if (Lib.isArrayOrTypedArray(markerLine.color)) {\n lineColorFn = function(d) {\n return d.mlc;\n };\n }\n var lineWidthFn;\n if (Lib.isArrayOrTypedArray(markerLine.width)) {\n lineWidthFn = function(d) {\n return d.mlw;\n };\n }\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var fOut = cdi.fOut;\n if (fOut) {\n var props = fOut.properties;\n props.fc = sclFunc(cdi.z);\n if (opacityFn) props.mo = opacityFn(cdi);\n if (lineColorFn) props.mlc = lineColorFn(cdi);\n if (lineWidthFn) props.mlw = lineWidthFn(cdi);\n cdi.ct = props.ct;\n cdi._polygons = geoUtils.feature2polygons(fOut);\n }\n }\n var opacitySetting = opacityFn ? { type: \"identity\", property: \"mo\" } : marker.opacity;\n Lib.extendFlat(fill.paint, {\n \"fill-color\": { type: \"identity\", property: \"fc\" },\n \"fill-opacity\": opacitySetting\n });\n Lib.extendFlat(line.paint, {\n \"line-color\": lineColorFn ? { type: \"identity\", property: \"mlc\" } : markerLine.color,\n \"line-width\": lineWidthFn ? { type: \"identity\", property: \"mlw\" } : markerLine.width,\n \"line-opacity\": opacitySetting\n });\n fill.layout.visibility = \"visible\";\n line.layout.visibility = \"visible\";\n opts.geojson = { type: \"FeatureCollection\", features };\n convertOnSelect(calcTrace);\n return opts;\n }\n function convertOnSelect(calcTrace) {\n var trace = calcTrace[0].trace;\n var opts = trace._opts;\n var opacitySetting;\n if (trace.selectedpoints) {\n var fns = Drawing.makeSelectedPointStyleFns(trace);\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n if (cdi.fOut) {\n cdi.fOut.properties.mo2 = fns.selectedOpacityFn(cdi);\n }\n }\n opacitySetting = { type: \"identity\", property: \"mo2\" };\n } else {\n opacitySetting = Lib.isArrayOrTypedArray(trace.marker.opacity) ? { type: \"identity\", property: \"mo\" } : trace.marker.opacity;\n }\n Lib.extendFlat(opts.fill.paint, { \"fill-opacity\": opacitySetting });\n Lib.extendFlat(opts.line.paint, { \"line-opacity\": opacitySetting });\n return opts;\n }\n module.exports = {\n convert,\n convertOnSelect\n };\n }\n });\n\n // src/traces/choroplethmapbox/plot.js\n var require_plot24 = __commonJS({\n \"src/traces/choroplethmapbox/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert12().convert;\n var convertOnSelect = require_convert12().convertOnSelect;\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n function ChoroplethMapbox(subplot, uid) {\n this.type = \"choroplethmapbox\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"fill\", LAYER_PREFIX + uid + \"-fill\"],\n [\"line\", LAYER_PREFIX + uid + \"-line\"]\n ];\n this.below = null;\n }\n var proto = ChoroplethMapbox.prototype;\n proto.update = function(calcTrace) {\n this._update(convert(calcTrace));\n calcTrace[0].trace._glTrace = this;\n };\n proto.updateOnSelect = function(calcTrace) {\n this._update(convertOnSelect(calcTrace));\n };\n proto._update = function(optsAll) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createChoroplethMapbox(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var choroplethMapbox = new ChoroplethMapbox(subplot, trace.uid);\n var sourceId = choroplethMapbox.sourceId;\n var optsAll = convert(calcTrace);\n var below = choroplethMapbox.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n choroplethMapbox._addLayers(optsAll, below);\n calcTrace[0].trace._glTrace = choroplethMapbox;\n return choroplethMapbox;\n };\n }\n });\n\n // src/traces/choroplethmapbox/index.js\n var require_choroplethmapbox = __commonJS({\n \"src/traces/choroplethmapbox/index.js\"(exports, module) {\n \"use strict\";\n var deprecationWarning = [\n \"*choroplethmapbox* trace is deprecated!\",\n \"Please consider switching to the *choroplethmap* trace type and `map` subplots.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n module.exports = {\n attributes: require_attributes55(),\n supplyDefaults: require_defaults51(),\n colorbar: require_colorbar2(),\n calc: require_calc28(),\n plot: require_plot24(),\n hoverPoints: require_hover15(),\n eventData: require_event_data10(),\n selectPoints: require_select6(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.updateOnSelect(cd);\n }\n },\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = mapLayers.length - 2; i >= 0; i--) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"water\") === 0) {\n for (var j = i + 1; j < mapLayers.length; j++) {\n layerId = mapLayers[j].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n }\n }\n },\n moduleType: \"trace\",\n name: \"choroplethmapbox\",\n basePlotModule: require_mapbox2(),\n categories: [\"mapbox\", \"gl\", \"noOpacity\", \"showLegend\"],\n meta: {\n hr_name: \"choropleth_mapbox\"\n }\n };\n }\n });\n\n // lib/choroplethmapbox.js\n var require_choroplethmapbox2 = __commonJS({\n \"lib/choroplethmapbox.js\"(exports, module) {\n \"use strict\";\n module.exports = require_choroplethmapbox();\n }\n });\n\n // src/traces/densitymapbox/attributes.js\n var require_attributes56 = __commonJS({\n \"src/traces/densitymapbox/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var scatterMapboxAttrs = require_attributes54();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n lon: scatterMapboxAttrs.lon,\n lat: scatterMapboxAttrs.lat,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n radius: {\n valType: \"number\",\n editType: \"plot\",\n arrayOk: true,\n min: 1,\n dflt: 30\n },\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: scatterMapboxAttrs.text,\n hovertext: scatterMapboxAttrs.hovertext,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"z\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/densitymapbox/defaults.js\n var require_defaults52 = __commonJS({\n \"src/traces/densitymapbox/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes56();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"z\");\n coerce(\"radius\");\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n };\n }\n });\n\n // src/traces/densitymapbox/calc.js\n var require_calc33 = __commonJS({\n \"src/traces/densitymapbox/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var BADNUM = require_numerical().BADNUM;\n var colorscaleCalc = require_calc();\n var _ = require_lib()._;\n module.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n for (var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ? [+lon, +lat] : [BADNUM, BADNUM];\n if (hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: \"\",\n cLetter: \"z\"\n });\n if (len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, \"lat:\") + \" \",\n lon: _(gd, \"lon:\") + \" \"\n }\n };\n }\n return calcTrace;\n };\n }\n });\n\n // src/traces/densitymapbox/convert.js\n var require_convert13 = __commonJS({\n \"src/traces/densitymapbox/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var Colorscale = require_colorscale();\n var BADNUM = require_numerical().BADNUM;\n var makeBlank = require_geojson_utils().makeBlank;\n module.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var heatmap = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n heatmap,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = [];\n var i;\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n for (i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n if (lonlat[0] !== BADNUM) {\n var props = {};\n if (hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if (hasArrayRadius) {\n props.r = isNumeric(radius[i]) && radius[i] > 0 ? +radius[i] : 0;\n }\n features.push({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n }\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n var scl01 = scl[0][1];\n var color0 = Color2.opacity(scl01) < 1 ? scl01 : Color2.addOpacity(scl01, 0);\n var heatmapColor = [\n \"interpolate\",\n [\"linear\"],\n [\"heatmap-density\"],\n 0,\n color0\n ];\n for (i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n var zExp = [\n \"interpolate\",\n [\"linear\"],\n [\"get\", \"z\"],\n cOpts.min,\n 0,\n cOpts.max,\n 1\n ];\n Lib.extendFlat(opts.heatmap.paint, {\n \"heatmap-weight\": hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n \"heatmap-color\": heatmapColor,\n \"heatmap-radius\": hasArrayRadius ? { type: \"identity\", property: \"r\" } : trace.radius,\n \"heatmap-opacity\": trace.opacity\n });\n opts.geojson = { type: \"FeatureCollection\", features };\n opts.heatmap.layout.visibility = \"visible\";\n return opts;\n };\n }\n });\n\n // src/traces/densitymapbox/plot.js\n var require_plot25 = __commonJS({\n \"src/traces/densitymapbox/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert13();\n var LAYER_PREFIX = require_constants25().traceLayerPrefix;\n function DensityMapbox(subplot, uid) {\n this.type = \"densitymapbox\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"heatmap\", LAYER_PREFIX + uid + \"-heatmap\"]\n ];\n this.below = null;\n }\n var proto = DensityMapbox.prototype;\n proto.update = function(calcTrace) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var optsAll = convert(calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createDensityMapbox(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var densityMapbox = new DensityMapbox(subplot, trace.uid);\n var sourceId = densityMapbox.sourceId;\n var optsAll = convert(calcTrace);\n var below = densityMapbox.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n densityMapbox._addLayers(optsAll, below);\n return densityMapbox;\n };\n }\n });\n\n // src/traces/densitymapbox/hover.js\n var require_hover19 = __commonJS({\n \"src/traces/densitymapbox/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var scatterMapboxHoverPoints = require_hover18().hoverPoints;\n var getExtraText = require_hover18().getExtraText;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var pts = scatterMapboxHoverPoints(pointData, xval, yval);\n if (!pts) return;\n var newPointData = pts[0];\n var cd = newPointData.cd;\n var trace = cd[0].trace;\n var di = cd[newPointData.index];\n delete newPointData.color;\n if (\"z\" in di) {\n var ax = newPointData.subplot.mockAxis;\n newPointData.z = di.z;\n newPointData.zLabel = Axes.tickText(ax, ax.c2l(di.z), \"hover\").text;\n }\n newPointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n return [newPointData];\n };\n }\n });\n\n // src/traces/densitymapbox/event_data.js\n var require_event_data12 = __commonJS({\n \"src/traces/densitymapbox/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n };\n }\n });\n\n // src/traces/densitymapbox/index.js\n var require_densitymapbox = __commonJS({\n \"src/traces/densitymapbox/index.js\"(exports, module) {\n \"use strict\";\n var deprecationWarning = [\n \"*densitymapbox* trace is deprecated!\",\n \"Please consider switching to the *densitymap* trace type and `map` subplots.\",\n \"Learn more at: https://plotly.com/python/maplibre-migration/\",\n \"as well as https://plotly.com/javascript/maplibre-migration/\"\n ].join(\" \");\n module.exports = {\n attributes: require_attributes56(),\n supplyDefaults: require_defaults52(),\n colorbar: require_colorbar2(),\n formatLabels: require_format_labels5(),\n calc: require_calc33(),\n plot: require_plot25(),\n hoverPoints: require_hover19(),\n eventData: require_event_data12(),\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layer = mapLayers[i];\n var layerId = layer.id;\n if (layer.type === \"symbol\" && typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n },\n moduleType: \"trace\",\n name: \"densitymapbox\",\n basePlotModule: require_mapbox2(),\n categories: [\"mapbox\", \"gl\", \"showLegend\"],\n meta: {\n hr_name: \"density_mapbox\"\n }\n };\n }\n });\n\n // lib/densitymapbox.js\n var require_densitymapbox2 = __commonJS({\n \"lib/densitymapbox.js\"(exports, module) {\n \"use strict\";\n module.exports = require_densitymapbox();\n }\n });\n\n // src/plots/map/styles/arcgis-sat-hybrid.js\n var require_arcgis_sat_hybrid = __commonJS({\n \"src/plots/map/styles/arcgis-sat-hybrid.js\"(exports, module) {\n module.exports = {\n \"version\": 8,\n \"name\": \"orto\",\n \"metadata\": { \"maputnik:renderer\": \"mlgljs\" },\n \"center\": [1.537786, 41.837539],\n \"zoom\": 12,\n \"bearing\": 0,\n \"pitch\": 0,\n \"light\": {\n \"anchor\": \"viewport\",\n \"color\": \"white\",\n \"intensity\": 0.4,\n \"position\": [1.15, 45, 30]\n },\n \"sources\": {\n \"ortoEsri\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 18,\n \"attribution\": \"ESRI © ESRI\"\n },\n \"ortoInstaMaps\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 13\n },\n \"ortoICGC\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg\"\n ],\n \"tileSize\": 256,\n \"minzoom\": 13.1,\n \"maxzoom\": 20\n },\n \"openmaptiles\": {\n \"type\": \"vector\",\n \"url\": \"https://geoserveis.icgc.cat/contextmaps/basemap.json\"\n }\n },\n \"sprite\": \"https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1\",\n \"glyphs\": \"https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf\",\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": { \"background-color\": \"#F4F9F4\" }\n },\n {\n \"id\": \"ortoEsri\",\n \"type\": \"raster\",\n \"source\": \"ortoEsri\",\n \"maxzoom\": 16,\n \"layout\": { \"visibility\": \"visible\" }\n },\n {\n \"id\": \"ortoICGC\",\n \"type\": \"raster\",\n \"source\": \"ortoICGC\",\n \"minzoom\": 13.1,\n \"maxzoom\": 19,\n \"layout\": { \"visibility\": \"visible\" }\n },\n {\n \"id\": \"ortoInstaMaps\",\n \"type\": \"raster\",\n \"source\": \"ortoInstaMaps\",\n \"maxzoom\": 13,\n \"layout\": { \"visibility\": \"visible\" }\n },\n {\n \"id\": \"waterway_tunnel\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"minzoom\": 14,\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"river\", \"stream\", \"canal\"],\n [\"==\", \"brunnel\", \"tunnel\"]\n ],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.3, \"stops\": [[13, 0.5], [20, 6]] },\n \"line-dasharray\": [2, 4]\n }\n },\n {\n \"id\": \"waterway-other\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"filter\": [\"!in\", \"class\", \"canal\", \"river\", \"stream\"],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.3, \"stops\": [[13, 0.5], [20, 2]] }\n }\n },\n {\n \"id\": \"waterway-stream-canal\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"canal\", \"stream\"],\n [\"!=\", \"brunnel\", \"tunnel\"]\n ],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.3, \"stops\": [[13, 0.5], [20, 6]] }\n }\n },\n {\n \"id\": \"waterway-river\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"filter\": [\"all\", [\"==\", \"class\", \"river\"], [\"!=\", \"brunnel\", \"tunnel\"]],\n \"layout\": { \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"#a0c8f0\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[10, 0.8], [20, 4]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"water-offset\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water\",\n \"maxzoom\": 8,\n \"filter\": [\"==\", \"$type\", \"Polygon\"],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"fill-opacity\": 0,\n \"fill-color\": \"#a0c8f0\",\n \"fill-translate\": { \"base\": 1, \"stops\": [[6, [2, 0]], [8, [0, 0]]] }\n }\n },\n {\n \"id\": \"water\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water\",\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": { \"fill-color\": \"hsl(210, 67%, 85%)\", \"fill-opacity\": 0 }\n },\n {\n \"id\": \"water-pattern\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water\",\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"fill-translate\": [0, 2.5],\n \"fill-pattern\": \"wave\",\n \"fill-opacity\": 1\n }\n },\n {\n \"id\": \"landcover-ice-shelf\",\n \"type\": \"fill\",\n \"metadata\": { \"mapbox:group\": \"1444849382550.77\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"==\", \"subclass\", \"ice_shelf\"],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"fill-color\": \"#fff\",\n \"fill-opacity\": { \"base\": 1, \"stops\": [[0, 0.9], [10, 0.3]] }\n }\n },\n {\n \"id\": \"tunnel-service-track-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"service\", \"track\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#cfcdca\",\n \"line-dasharray\": [0.5, 0.25],\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1], [16, 4], [20, 11]] }\n }\n },\n {\n \"id\": \"tunnel-minor-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"tunnel\"], [\"==\", \"class\", \"minor\"]],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#cfcdca\",\n \"line-opacity\": { \"stops\": [[12, 0], [12.5, 1]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 0.5], [13, 1], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"tunnel-secondary-tertiary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": { \"base\": 1.2, \"stops\": [[8, 1.5], [20, 17]] }\n }\n },\n {\n \"id\": \"tunnel-trunk-primary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": 0.7\n }\n },\n {\n \"id\": \"tunnel-motorway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\", \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-dasharray\": [0.5, 0.25],\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"tunnel-path\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"brunnel\", \"tunnel\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#cba\",\n \"line-dasharray\": [1.5, 0.75],\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 4]] }\n }\n },\n {\n \"id\": \"tunnel-service-track\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"service\", \"track\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[15.5, 0], [16, 2], [20, 7.5]] }\n }\n },\n {\n \"id\": \"tunnel-minor\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"==\", \"class\", \"minor_road\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff\",\n \"line-opacity\": 1,\n \"line-width\": { \"base\": 1.2, \"stops\": [[13.5, 0], [14, 2.5], [20, 11.5]] }\n }\n },\n {\n \"id\": \"tunnel-secondary-tertiary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff4c6\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 10]] }\n }\n },\n {\n \"id\": \"tunnel-trunk-primary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff4c6\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"tunnel-motorway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\", \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"#ffdaa6\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"tunnel-railway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849354174.1904\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"tunnel\"], [\"==\", \"class\", \"rail\"]],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [15, 0.75], [20, 2]] },\n \"line-dasharray\": [2, 2]\n }\n },\n {\n \"id\": \"ferry\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"in\", \"class\", \"ferry\"]],\n \"layout\": { \"line-join\": \"round\", \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"rgba(108, 159, 182, 1)\",\n \"line-width\": 1.1,\n \"line-dasharray\": [2, 2]\n }\n },\n {\n \"id\": \"aeroway-taxiway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 12,\n \"filter\": [\"all\", [\"in\", \"class\", \"taxiway\"]],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(153, 153, 153, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 2], [17, 12]] },\n \"line-opacity\": 1\n }\n },\n {\n \"id\": \"aeroway-runway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 12,\n \"filter\": [\"all\", [\"in\", \"class\", \"runway\"]],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(153, 153, 153, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 5], [17, 55]] },\n \"line-opacity\": 1\n }\n },\n {\n \"id\": \"aeroway-taxiway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 4,\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"taxiway\"],\n [\"==\", \"$type\", \"LineString\"]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(255, 255, 255, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 1], [17, 10]] },\n \"line-opacity\": { \"base\": 1, \"stops\": [[11, 0], [12, 1]] }\n }\n },\n {\n \"id\": \"aeroway-runway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"aeroway\",\n \"minzoom\": 4,\n \"filter\": [\n \"all\",\n [\"in\", \"class\", \"runway\"],\n [\"==\", \"$type\", \"LineString\"]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"rgba(255, 255, 255, 1)\",\n \"line-width\": { \"base\": 1.5, \"stops\": [[11, 4], [17, 50]] },\n \"line-opacity\": { \"base\": 1, \"stops\": [[11, 0], [12, 1]] }\n }\n },\n {\n \"id\": \"highway-motorway-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 12,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"highway-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"highway-minor-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!=\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"minor\", \"service\", \"track\"]\n ]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#cfcdca\",\n \"line-opacity\": { \"stops\": [[12, 0], [12.5, 0]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 0.5], [13, 1], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"highway-secondary-tertiary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 0.5,\n \"line-width\": { \"base\": 1.2, \"stops\": [[8, 1.5], [20, 17]] }\n }\n },\n {\n \"id\": \"highway-primary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 5,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"primary\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": { \"stops\": [[7, 0], [8, 0.6]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[7, 0], [8, 0.6], [9, 1.5], [20, 22]]\n }\n }\n },\n {\n \"id\": \"highway-trunk-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 5,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"trunk\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": { \"stops\": [[5, 0], [6, 0.5]] },\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0], [6, 0.6], [7, 1.5], [20, 22]]\n }\n }\n },\n {\n \"id\": \"highway-motorway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 4,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": {\n \"line-cap\": \"butt\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[4, 0], [5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": { \"stops\": [[4, 0], [5, 0.5]] }\n }\n },\n {\n \"id\": \"highway-path\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#cba\",\n \"line-dasharray\": [1.5, 0.75],\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 4]] }\n }\n },\n {\n \"id\": \"highway-motorway-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 12,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"highway-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"highway-minor\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!=\", \"brunnel\", \"tunnel\"],\n [\"in\", \"class\", \"minor\", \"service\", \"track\"]\n ]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fff\",\n \"line-opacity\": 0.5,\n \"line-width\": { \"base\": 1.2, \"stops\": [[13.5, 0], [14, 2.5], [20, 11.5]] }\n }\n },\n {\n \"id\": \"highway-secondary-tertiary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [8, 0.5], [20, 13]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"highway-primary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"primary\"]\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[8.5, 0], [9, 0.5], [20, 18]] },\n \"line-opacity\": 0\n }\n },\n {\n \"id\": \"highway-trunk\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"in\", \"class\", \"trunk\"]\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"highway-motorway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 5,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"motorway\"]\n ]\n ],\n \"layout\": {\n \"line-cap\": \"round\",\n \"line-join\": \"round\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"railway-transit\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"transit\"], [\"!in\", \"brunnel\", \"tunnel\"]]\n ],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.77)\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [20, 1]] }\n }\n },\n {\n \"id\": \"railway-transit-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"transit\"], [\"!in\", \"brunnel\", \"tunnel\"]]\n ],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.68)\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 2], [20, 6]] }\n }\n },\n {\n \"id\": \"railway-service\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"rail\"], [\"has\", \"service\"]]\n ],\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.77)\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [20, 1]] }\n }\n },\n {\n \"id\": \"railway-service-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"class\", \"rail\"], [\"has\", \"service\"]]\n ],\n \"layout\": { \"visibility\": \"visible\" },\n \"paint\": {\n \"line-color\": \"hsla(0, 0%, 73%, 0.68)\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 2], [20, 6]] }\n }\n },\n {\n \"id\": \"railway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!has\", \"service\"],\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"rail\"]\n ]\n ],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [15, 0.75], [20, 2]] }\n }\n },\n {\n \"id\": \"railway-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849345966.4436\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\n \"all\",\n [\"!has\", \"service\"],\n [\"!in\", \"brunnel\", \"bridge\", \"tunnel\"],\n [\"==\", \"class\", \"rail\"]\n ]\n ],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 3], [20, 8]] }\n }\n },\n {\n \"id\": \"bridge-motorway-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"bridge-link-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12, 1], [13, 3], [14, 4], [20, 15]]\n }\n }\n },\n {\n \"id\": \"bridge-secondary-tertiary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-opacity\": 1,\n \"line-width\": { \"base\": 1.2, \"stops\": [[8, 1.5], [20, 28]] }\n }\n },\n {\n \"id\": \"bridge-trunk-primary-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(28, 76%, 67%)\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 26]]\n }\n }\n },\n {\n \"id\": \"bridge-motorway-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#e9ac77\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]\n },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"bridge-path-casing\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#f8f4f0\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 18]] }\n }\n },\n {\n \"id\": \"bridge-path\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"path\"]]\n ],\n \"paint\": {\n \"line-color\": \"#cba\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[15, 1.2], [20, 4]] },\n \"line-dasharray\": [1.5, 0.75]\n }\n },\n {\n \"id\": \"bridge-motorway-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway_link\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"bridge-link\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\n \"in\",\n \"class\",\n \"primary_link\",\n \"secondary_link\",\n \"tertiary_link\",\n \"trunk_link\"\n ]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": {\n \"base\": 1.2,\n \"stops\": [[12.5, 0], [13, 1.5], [14, 2.5], [20, 11.5]]\n }\n }\n },\n {\n \"id\": \"bridge-secondary-tertiary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"secondary\", \"tertiary\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 20]] }\n }\n },\n {\n \"id\": \"bridge-trunk-primary\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"in\", \"class\", \"primary\", \"trunk\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fea\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] }\n }\n },\n {\n \"id\": \"bridge-motorway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\n \"all\",\n [\"==\", \"brunnel\", \"bridge\"],\n [\"==\", \"class\", \"motorway\"]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#fc8\",\n \"line-width\": { \"base\": 1.2, \"stops\": [[6.5, 0], [7, 0.5], [20, 18]] },\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"bridge-railway\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"rail\"]],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-width\": { \"base\": 1.4, \"stops\": [[14, 0.4], [15, 0.75], [20, 2]] }\n }\n },\n {\n \"id\": \"bridge-railway-hatching\",\n \"type\": \"line\",\n \"metadata\": { \"mapbox:group\": \"1444849334699.1902\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"filter\": [\"all\", [\"==\", \"brunnel\", \"bridge\"], [\"==\", \"class\", \"rail\"]],\n \"paint\": {\n \"line-color\": \"#bbb\",\n \"line-dasharray\": [0.2, 8],\n \"line-width\": { \"base\": 1.4, \"stops\": [[14.5, 0], [15, 3], [20, 8]] }\n }\n },\n {\n \"id\": \"cablecar\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\"==\", \"class\", \"cable_car\"],\n \"layout\": { \"visibility\": \"visible\", \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(0, 0%, 70%)\",\n \"line-width\": { \"base\": 1, \"stops\": [[11, 1], [19, 2.5]] }\n }\n },\n {\n \"id\": \"cablecar-dash\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 13,\n \"filter\": [\"==\", \"class\", \"cable_car\"],\n \"layout\": { \"visibility\": \"visible\", \"line-cap\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(0, 0%, 70%)\",\n \"line-width\": { \"base\": 1, \"stops\": [[11, 3], [19, 5.5]] },\n \"line-dasharray\": [2, 3]\n }\n },\n {\n \"id\": \"boundary-land-level-4\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\n \"all\",\n [\">=\", \"admin_level\", 4],\n [\"<=\", \"admin_level\", 8],\n [\"!=\", \"maritime\", 1]\n ],\n \"layout\": { \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"#9e9cab\",\n \"line-dasharray\": [3, 1, 1, 1],\n \"line-width\": { \"base\": 1.4, \"stops\": [[4, 0.4], [5, 1], [12, 3]] },\n \"line-opacity\": 0.6\n }\n },\n {\n \"id\": \"boundary-land-level-2\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\n \"all\",\n [\"==\", \"admin_level\", 2],\n [\"!=\", \"maritime\", 1],\n [\"!=\", \"disputed\", 1]\n ],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(248, 7%, 66%)\",\n \"line-width\": {\n \"base\": 1,\n \"stops\": [[0, 0.6], [4, 1.4], [5, 2], [12, 2]]\n }\n }\n },\n {\n \"id\": \"boundary-land-disputed\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\"all\", [\"!=\", \"maritime\", 1], [\"==\", \"disputed\", 1]],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"hsl(248, 7%, 70%)\",\n \"line-dasharray\": [1, 3],\n \"line-width\": {\n \"base\": 1,\n \"stops\": [[0, 0.6], [4, 1.4], [5, 2], [12, 8]]\n }\n }\n },\n {\n \"id\": \"boundary-water\",\n \"type\": \"line\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"boundary\",\n \"filter\": [\"all\", [\"in\", \"admin_level\", 2, 4], [\"==\", \"maritime\", 1]],\n \"layout\": { \"line-cap\": \"round\", \"line-join\": \"round\" },\n \"paint\": {\n \"line-color\": \"rgba(154, 189, 214, 1)\",\n \"line-width\": { \"base\": 1, \"stops\": [[0, 0.6], [4, 1], [5, 1], [12, 1]] },\n \"line-opacity\": { \"stops\": [[6, 0], [10, 0]] }\n }\n },\n {\n \"id\": \"waterway-name\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"waterway\",\n \"minzoom\": 13,\n \"filter\": [\"all\", [\"==\", \"$type\", \"LineString\"], [\"has\", \"name\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": 14,\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"line\",\n \"text-letter-spacing\": 0.2,\n \"symbol-spacing\": 350\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"water-name-lakeline\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water_name\",\n \"filter\": [\"==\", \"$type\", \"LineString\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": 14,\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"line\",\n \"symbol-spacing\": 350,\n \"text-letter-spacing\": 0.2\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"water-name-ocean\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water_name\",\n \"filter\": [\"all\", [\"==\", \"$type\", \"Point\"], [\"==\", \"class\", \"ocean\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": 14,\n \"text-field\": \"{name:latin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"point\",\n \"symbol-spacing\": 350,\n \"text-letter-spacing\": 0.2\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"water-name-other\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"water_name\",\n \"filter\": [\"all\", [\"==\", \"$type\", \"Point\"], [\"!in\", \"class\", \"ocean\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-size\": { \"stops\": [[0, 10], [6, 14]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 5,\n \"text-rotation-alignment\": \"map\",\n \"symbol-placement\": \"point\",\n \"symbol-spacing\": 350,\n \"text-letter-spacing\": 0.2,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"#74aee9\",\n \"text-halo-width\": 1.5,\n \"text-halo-color\": \"rgba(255,255,255,0.7)\"\n }\n },\n {\n \"id\": \"poi-level-3\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 16,\n \"filter\": [\"all\", [\"==\", \"$type\", \"Point\"], [\">=\", \"rank\", 25]],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 12,\n \"text-max-width\": 9\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#666\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"#ffffff\"\n }\n },\n {\n \"id\": \"poi-level-2\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"<=\", \"rank\", 24],\n [\">=\", \"rank\", 15]\n ],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 12,\n \"text-max-width\": 9\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#666\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"#ffffff\"\n }\n },\n {\n \"id\": \"poi-level-1\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 14,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"<=\", \"rank\", 14],\n [\"has\", \"name\"]\n ],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 11,\n \"text-max-width\": 9\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"rgba(191, 228, 172, 1)\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"rgba(30, 29, 29, 1)\"\n }\n },\n {\n \"id\": \"poi-railway\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"poi\",\n \"minzoom\": 13,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"Point\"],\n [\"has\", \"name\"],\n [\"==\", \"class\", \"railway\"],\n [\"==\", \"subclass\", \"station\"]\n ],\n \"layout\": {\n \"text-padding\": 2,\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-anchor\": \"top\",\n \"icon-image\": \"{class}_11\",\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-offset\": [0, 0.6],\n \"text-size\": 12,\n \"text-max-width\": 9,\n \"icon-optional\": false,\n \"icon-ignore-placement\": false,\n \"icon-allow-overlap\": false,\n \"text-ignore-placement\": false,\n \"text-allow-overlap\": false,\n \"text-optional\": true\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#666\",\n \"text-halo-width\": 1,\n \"text-halo-color\": \"#ffffff\"\n }\n },\n {\n \"id\": \"road_oneway\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"oneway\", 1],\n [\n \"in\",\n \"class\",\n \"motorway\",\n \"trunk\",\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"minor\",\n \"service\"\n ]\n ],\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"icon-image\": \"oneway\",\n \"symbol-spacing\": 75,\n \"icon-padding\": 2,\n \"icon-rotation-alignment\": \"map\",\n \"icon-rotate\": 90,\n \"icon-size\": { \"stops\": [[15, 0.5], [19, 1]] }\n },\n \"paint\": { \"icon-opacity\": 0.5 }\n },\n {\n \"id\": \"road_oneway_opposite\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"oneway\", -1],\n [\n \"in\",\n \"class\",\n \"motorway\",\n \"trunk\",\n \"primary\",\n \"secondary\",\n \"tertiary\",\n \"minor\",\n \"service\"\n ]\n ],\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"icon-image\": \"oneway\",\n \"symbol-spacing\": 75,\n \"icon-padding\": 2,\n \"icon-rotation-alignment\": \"map\",\n \"icon-rotate\": -90,\n \"icon-size\": { \"stops\": [[15, 0.5], [19, 1]] }\n },\n \"paint\": { \"icon-opacity\": 0.5 }\n },\n {\n \"id\": \"highway-name-path\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 15.5,\n \"filter\": [\"==\", \"class\", \"path\"],\n \"layout\": {\n \"text-size\": { \"base\": 1, \"stops\": [[13, 12], [14, 13]] },\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"symbol-placement\": \"line\",\n \"text-rotation-alignment\": \"map\"\n },\n \"paint\": {\n \"text-halo-color\": \"#f8f4f0\",\n \"text-color\": \"hsl(30, 23%, 62%)\",\n \"text-halo-width\": 0.5\n }\n },\n {\n \"id\": \"highway-name-minor\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 15,\n \"filter\": [\n \"all\",\n [\"==\", \"$type\", \"LineString\"],\n [\"in\", \"class\", \"minor\", \"service\", \"track\"]\n ],\n \"layout\": {\n \"text-size\": { \"base\": 1, \"stops\": [[13, 12], [14, 13]] },\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"symbol-placement\": \"line\",\n \"text-rotation-alignment\": \"map\"\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#765\",\n \"text-halo-width\": 1\n }\n },\n {\n \"id\": \"highway-name-major\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12.2,\n \"filter\": [\"in\", \"class\", \"primary\", \"secondary\", \"tertiary\", \"trunk\"],\n \"layout\": {\n \"text-size\": { \"base\": 1, \"stops\": [[13, 12], [14, 13]] },\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-field\": \"{name:latin} {name:nonlatin}\",\n \"symbol-placement\": \"line\",\n \"text-rotation-alignment\": \"map\"\n },\n \"paint\": {\n \"text-halo-blur\": 0.5,\n \"text-color\": \"#765\",\n \"text-halo-width\": 1\n }\n },\n {\n \"id\": \"highway-shield\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 8,\n \"filter\": [\n \"all\",\n [\"<=\", \"ref_length\", 6],\n [\"==\", \"$type\", \"LineString\"],\n [\"!in\", \"network\", \"us-interstate\", \"us-highway\", \"us-state\"]\n ],\n \"layout\": {\n \"text-size\": 10,\n \"icon-image\": \"road_{ref_length}\",\n \"icon-rotation-alignment\": \"viewport\",\n \"symbol-spacing\": 200,\n \"text-font\": [\"Noto Sans Regular\"],\n \"symbol-placement\": { \"base\": 1, \"stops\": [[10, \"point\"], [11, \"line\"]] },\n \"text-rotation-alignment\": \"viewport\",\n \"icon-size\": 1,\n \"text-field\": \"{ref}\"\n },\n \"paint\": {\n \"text-opacity\": 1,\n \"text-color\": \"rgba(20, 19, 19, 1)\",\n \"text-halo-color\": \"rgba(230, 221, 221, 0)\",\n \"text-halo-width\": 2,\n \"icon-color\": \"rgba(183, 18, 18, 1)\",\n \"icon-opacity\": 0.3,\n \"icon-halo-color\": \"rgba(183, 55, 55, 0)\"\n }\n },\n {\n \"id\": \"highway-shield-us-interstate\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 7,\n \"filter\": [\n \"all\",\n [\"<=\", \"ref_length\", 6],\n [\"==\", \"$type\", \"LineString\"],\n [\"in\", \"network\", \"us-interstate\"]\n ],\n \"layout\": {\n \"text-size\": 10,\n \"icon-image\": \"{network}_{ref_length}\",\n \"icon-rotation-alignment\": \"viewport\",\n \"symbol-spacing\": 200,\n \"text-font\": [\"Noto Sans Regular\"],\n \"symbol-placement\": {\n \"base\": 1,\n \"stops\": [[7, \"point\"], [7, \"line\"], [8, \"line\"]]\n },\n \"text-rotation-alignment\": \"viewport\",\n \"icon-size\": 1,\n \"text-field\": \"{ref}\"\n },\n \"paint\": { \"text-color\": \"rgba(0, 0, 0, 1)\" }\n },\n {\n \"id\": \"highway-shield-us-other\",\n \"type\": \"symbol\",\n \"source\": \"openmaptiles\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 9,\n \"filter\": [\n \"all\",\n [\"<=\", \"ref_length\", 6],\n [\"==\", \"$type\", \"LineString\"],\n [\"in\", \"network\", \"us-highway\", \"us-state\"]\n ],\n \"layout\": {\n \"text-size\": 10,\n \"icon-image\": \"{network}_{ref_length}\",\n \"icon-rotation-alignment\": \"viewport\",\n \"symbol-spacing\": 200,\n \"text-font\": [\"Noto Sans Regular\"],\n \"symbol-placement\": { \"base\": 1, \"stops\": [[10, \"point\"], [11, \"line\"]] },\n \"text-rotation-alignment\": \"viewport\",\n \"icon-size\": 1,\n \"text-field\": \"{ref}\"\n },\n \"paint\": { \"text-color\": \"rgba(0, 0, 0, 1)\" }\n },\n {\n \"id\": \"place-other\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"minzoom\": 12,\n \"filter\": [\n \"!in\",\n \"class\",\n \"city\",\n \"town\",\n \"village\",\n \"country\",\n \"continent\"\n ],\n \"layout\": {\n \"text-letter-spacing\": 0.1,\n \"text-size\": { \"base\": 1.2, \"stops\": [[12, 10], [15, 14]] },\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 9,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(255,255,255,1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(57, 28, 28, 1)\"\n }\n },\n {\n \"id\": \"place-village\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"minzoom\": 10,\n \"filter\": [\"==\", \"class\", \"village\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[10, 12], [15, 16]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(255, 255, 255, 1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(10, 9, 9, 0.8)\"\n }\n },\n {\n \"id\": \"place-town\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\"==\", \"class\", \"town\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[10, 14], [15, 24]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(255, 255, 255, 1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(22, 22, 22, 0.8)\"\n }\n },\n {\n \"id\": \"place-city\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\"all\", [\"!=\", \"capital\", 2], [\"==\", \"class\", \"city\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[7, 14], [11, 24]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"rgba(0, 0, 0, 1)\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-city-capital\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\"all\", [\"==\", \"capital\", 2], [\"==\", \"class\", \"city\"]],\n \"layout\": {\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": { \"base\": 1.2, \"stops\": [[7, 14], [11, 24]] },\n \"text-field\": \"{name:latin}\\n{name:nonlatin}\",\n \"text-max-width\": 8,\n \"icon-image\": \"star_11\",\n \"text-offset\": [0.4, 0],\n \"icon-size\": 0.8,\n \"text-anchor\": \"left\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-color\": \"#333\",\n \"text-halo-width\": 1.2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-other\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\">=\", \"rank\", 3],\n [\"!has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Italic\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[3, 11], [7, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-3\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\">=\", \"rank\", 3],\n [\"has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[3, 11], [7, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-2\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\"==\", \"rank\", 2],\n [\"has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[2, 11], [5, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-country-1\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"filter\": [\n \"all\",\n [\"==\", \"class\", \"country\"],\n [\"==\", \"rank\", 1],\n [\"has\", \"iso_a2\"]\n ],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": { \"stops\": [[1, 11], [4, 17]] },\n \"text-transform\": \"uppercase\",\n \"text-max-width\": 6.25,\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n },\n {\n \"id\": \"place-continent\",\n \"type\": \"symbol\",\n \"metadata\": { \"mapbox:group\": \"1444849242106.713\" },\n \"source\": \"openmaptiles\",\n \"source-layer\": \"place\",\n \"maxzoom\": 1,\n \"filter\": [\"==\", \"class\", \"continent\"],\n \"layout\": {\n \"text-font\": [\"Noto Sans Bold\"],\n \"text-field\": \"{name:latin}\",\n \"text-size\": 14,\n \"text-max-width\": 6.25,\n \"text-transform\": \"uppercase\",\n \"visibility\": \"visible\"\n },\n \"paint\": {\n \"text-halo-blur\": 1,\n \"text-color\": \"#334\",\n \"text-halo-width\": 2,\n \"text-halo-color\": \"rgba(255,255,255,0.8)\"\n }\n }\n ],\n \"id\": \"qebnlkra6\"\n };\n }\n });\n\n // src/plots/map/styles/arcgis-sat.js\n var require_arcgis_sat = __commonJS({\n \"src/plots/map/styles/arcgis-sat.js\"(exports, module) {\n module.exports = {\n \"version\": 8,\n \"name\": \"orto\",\n \"metadata\": {},\n \"center\": [\n 1.537786,\n 41.837539\n ],\n \"zoom\": 12,\n \"bearing\": 0,\n \"pitch\": 0,\n \"light\": {\n \"anchor\": \"viewport\",\n \"color\": \"white\",\n \"intensity\": 0.4,\n \"position\": [\n 1.15,\n 45,\n 30\n ]\n },\n \"sources\": {\n \"ortoEsri\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 18,\n \"attribution\": \"ESRI © ESRI\"\n },\n \"ortoInstaMaps\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png\"\n ],\n \"tileSize\": 256,\n \"maxzoom\": 13\n },\n \"ortoICGC\": {\n \"type\": \"raster\",\n \"tiles\": [\n \"https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg\"\n ],\n \"tileSize\": 256,\n \"minzoom\": 13.1,\n \"maxzoom\": 20\n },\n \"openmaptiles\": {\n \"type\": \"vector\",\n \"url\": \"https://geoserveis.icgc.cat/contextmaps/basemap.json\"\n }\n },\n \"sprite\": \"https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1\",\n \"glyphs\": \"https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf\",\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": {\n \"background-color\": \"#F4F9F4\"\n }\n },\n {\n \"id\": \"ortoEsri\",\n \"type\": \"raster\",\n \"source\": \"ortoEsri\",\n \"maxzoom\": 16,\n \"layout\": {\n \"visibility\": \"visible\"\n }\n },\n {\n \"id\": \"ortoICGC\",\n \"type\": \"raster\",\n \"source\": \"ortoICGC\",\n \"minzoom\": 13.1,\n \"maxzoom\": 19,\n \"layout\": {\n \"visibility\": \"visible\"\n }\n },\n {\n \"id\": \"ortoInstaMaps\",\n \"type\": \"raster\",\n \"source\": \"ortoInstaMaps\",\n \"maxzoom\": 13,\n \"layout\": {\n \"visibility\": \"visible\"\n }\n }\n ]\n };\n }\n });\n\n // src/plots/map/constants.js\n var require_constants27 = __commonJS({\n \"src/plots/map/constants.js\"(exports, module) {\n \"use strict\";\n var sortObjectKeys = require_sort_object_keys();\n var arcgisSatHybrid = require_arcgis_sat_hybrid();\n var arcgisSat = require_arcgis_sat();\n var OSM = '\\xA9 OpenStreetMap contributors';\n var cartoPositron = \"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json\";\n var cartoDarkmatter = \"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json\";\n var cartoVoyager = \"https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json\";\n var cartoPositronNoLabels = \"https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json\";\n var cartoDarkmatterNoLabels = \"https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json\";\n var cartoVoyagerNoLabels = \"https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json\";\n var stylesMap = {\n basic: cartoVoyager,\n streets: cartoVoyager,\n outdoors: cartoVoyager,\n light: cartoPositron,\n dark: cartoDarkmatter,\n satellite: arcgisSat,\n \"satellite-streets\": arcgisSatHybrid,\n \"open-street-map\": {\n id: \"osm\",\n version: 8,\n sources: {\n \"plotly-osm-tiles\": {\n type: \"raster\",\n attribution: OSM,\n tiles: [\n \"https://tile.openstreetmap.org/{z}/{x}/{y}.png\"\n ],\n tileSize: 256\n }\n },\n layers: [{\n id: \"plotly-osm-tiles\",\n type: \"raster\",\n source: \"plotly-osm-tiles\",\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"white-bg\": {\n id: \"white-bg\",\n version: 8,\n sources: {},\n layers: [{\n id: \"white-bg\",\n type: \"background\",\n paint: { \"background-color\": \"#FFFFFF\" },\n minzoom: 0,\n maxzoom: 22\n }],\n glyphs: \"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf\"\n },\n \"carto-positron\": cartoPositron,\n \"carto-darkmatter\": cartoDarkmatter,\n \"carto-voyager\": cartoVoyager,\n \"carto-positron-nolabels\": cartoPositronNoLabels,\n \"carto-darkmatter-nolabels\": cartoDarkmatterNoLabels,\n \"carto-voyager-nolabels\": cartoVoyagerNoLabels\n };\n var styleValuesMap = sortObjectKeys(stylesMap);\n module.exports = {\n styleValueDflt: \"basic\",\n stylesMap,\n styleValuesMap,\n traceLayerPrefix: \"plotly-trace-layer-\",\n layoutLayerPrefix: \"plotly-layout-layer-\",\n missingStyleErrorMsg: [\n \"No valid maplibre style found, please set `map.style` to one of:\",\n styleValuesMap.join(\", \"),\n \"or use a tile service.\"\n ].join(\"\\n\"),\n mapOnErrorMsg: \"Map error.\"\n };\n }\n });\n\n // src/plots/map/layout_attributes.js\n var require_layout_attributes20 = __commonJS({\n \"src/plots/map/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var defaultLine = require_color().defaultLine;\n var domainAttrs = require_domain().attributes;\n var fontAttrs = require_font_attributes();\n var textposition = require_attributes12().textposition;\n var overrideAll = require_edit_types().overrideAll;\n var templatedArray = require_plot_template().templatedArray;\n var constants = require_constants27();\n var fontAttr = fontAttrs({\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n fontAttr.family.dflt = \"Open Sans Regular, Arial Unicode MS Regular\";\n var attrs = module.exports = overrideAll({\n _arrayAttrRegexps: [Lib.counterRegex(\"map\", \".layers\", true)],\n domain: domainAttrs({ name: \"map\" }),\n style: {\n valType: \"any\",\n values: constants.styleValuesMap,\n dflt: constants.styleValueDflt\n },\n center: {\n lon: {\n valType: \"number\",\n dflt: 0\n },\n lat: {\n valType: \"number\",\n dflt: 0\n }\n },\n zoom: {\n valType: \"number\",\n dflt: 1\n },\n bearing: {\n valType: \"number\",\n dflt: 0\n },\n pitch: {\n valType: \"number\",\n dflt: 0\n },\n bounds: {\n west: {\n valType: \"number\"\n },\n east: {\n valType: \"number\"\n },\n south: {\n valType: \"number\"\n },\n north: {\n valType: \"number\"\n }\n },\n layers: templatedArray(\"layer\", {\n visible: {\n valType: \"boolean\",\n dflt: true\n },\n sourcetype: {\n valType: \"enumerated\",\n values: [\"geojson\", \"vector\", \"raster\", \"image\"],\n dflt: \"geojson\"\n },\n source: {\n valType: \"any\"\n },\n sourcelayer: {\n valType: \"string\",\n dflt: \"\"\n },\n sourceattribution: {\n valType: \"string\"\n },\n type: {\n valType: \"enumerated\",\n values: [\"circle\", \"line\", \"fill\", \"symbol\", \"raster\"],\n dflt: \"circle\"\n },\n coordinates: {\n valType: \"any\"\n },\n // attributes shared between all types\n below: {\n valType: \"string\"\n },\n color: {\n valType: \"color\",\n dflt: defaultLine\n },\n opacity: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1\n },\n minzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 0\n },\n maxzoom: {\n valType: \"number\",\n min: 0,\n max: 24,\n dflt: 24\n },\n // type-specific style attributes\n circle: {\n radius: {\n valType: \"number\",\n dflt: 15\n }\n },\n line: {\n width: {\n valType: \"number\",\n dflt: 2\n },\n dash: {\n valType: \"data_array\"\n }\n },\n fill: {\n outlinecolor: {\n valType: \"color\",\n dflt: defaultLine\n }\n },\n symbol: {\n icon: {\n valType: \"string\",\n dflt: \"marker\"\n },\n iconsize: {\n valType: \"number\",\n dflt: 10\n },\n text: {\n valType: \"string\",\n dflt: \"\"\n },\n placement: {\n valType: \"enumerated\",\n values: [\"point\", \"line\", \"line-center\"],\n dflt: \"point\"\n },\n textfont: fontAttr,\n textposition: Lib.extendFlat({}, textposition, { arrayOk: false })\n }\n })\n }, \"plot\", \"from-root\");\n attrs.uirevision = {\n valType: \"any\",\n editType: \"none\"\n };\n }\n });\n\n // src/traces/scattermap/attributes.js\n var require_attributes57 = __commonJS({\n \"src/traces/scattermap/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterGeoAttrs = require_attributes48();\n var scatterAttrs = require_attributes12();\n var mapAttrs = require_layout_attributes20();\n var baseAttrs = require_attributes2();\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var mapLayoutAtributes = require_layout_attributes20();\n var lineAttrs = scatterGeoAttrs.line;\n var markerAttrs = scatterGeoAttrs.marker;\n module.exports = overrideAll({\n lon: scatterGeoAttrs.lon,\n lat: scatterGeoAttrs.lat,\n cluster: {\n enabled: {\n valType: \"boolean\"\n },\n maxzoom: extendFlat({}, mapLayoutAtributes.layers.maxzoom, {}),\n step: {\n valType: \"number\",\n arrayOk: true,\n dflt: -1,\n min: -1\n },\n size: {\n valType: \"number\",\n arrayOk: true,\n dflt: 20,\n min: 0\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n opacity: extendFlat({}, markerAttrs.opacity, {\n dflt: 1\n })\n },\n // locations\n // locationmode\n mode: extendFlat({}, scatterAttrs.mode, {\n dflt: \"markers\"\n }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"lat\", \"lon\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width\n // TODO\n // dash: dash\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: extendFlat(\n {\n symbol: {\n valType: \"string\",\n dflt: \"circle\",\n arrayOk: true\n },\n angle: {\n valType: \"number\",\n dflt: \"auto\",\n arrayOk: true\n },\n allowoverlap: {\n valType: \"boolean\",\n dflt: false\n },\n opacity: markerAttrs.opacity,\n size: markerAttrs.size,\n sizeref: markerAttrs.sizeref,\n sizemin: markerAttrs.sizemin,\n sizemode: markerAttrs.sizemode\n },\n colorScaleAttrs(\"marker\")\n // line\n ),\n fill: scatterGeoAttrs.fill,\n fillcolor: makeFillcolorAttr(),\n textfont: mapAttrs.layers.symbol.textfont,\n textposition: mapAttrs.layers.symbol.textposition,\n below: {\n valType: \"string\"\n },\n selected: {\n marker: scatterAttrs.selected.marker\n },\n unselected: {\n marker: scatterAttrs.unselected.marker\n },\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs()\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/scattermap/constants.js\n var require_constants28 = __commonJS({\n \"src/traces/scattermap/constants.js\"(exports, module) {\n \"use strict\";\n var supportedFonts = [\n \"Metropolis Black Italic\",\n \"Metropolis Black\",\n \"Metropolis Bold Italic\",\n \"Metropolis Bold\",\n \"Metropolis Extra Bold Italic\",\n \"Metropolis Extra Bold\",\n \"Metropolis Extra Light Italic\",\n \"Metropolis Extra Light\",\n \"Metropolis Light Italic\",\n \"Metropolis Light\",\n \"Metropolis Medium Italic\",\n \"Metropolis Medium\",\n \"Metropolis Regular Italic\",\n \"Metropolis Regular\",\n \"Metropolis Semi Bold Italic\",\n \"Metropolis Semi Bold\",\n \"Metropolis Thin Italic\",\n \"Metropolis Thin\",\n \"Open Sans Bold Italic\",\n \"Open Sans Bold\",\n \"Open Sans Extrabold Italic\",\n \"Open Sans Extrabold\",\n \"Open Sans Italic\",\n \"Open Sans Light Italic\",\n \"Open Sans Light\",\n \"Open Sans Regular\",\n \"Open Sans Semibold Italic\",\n \"Open Sans Semibold\",\n \"Klokantech Noto Sans Bold\",\n \"Klokantech Noto Sans CJK Bold\",\n \"Klokantech Noto Sans CJK Regular\",\n \"Klokantech Noto Sans Italic\",\n \"Klokantech Noto Sans Regular\"\n ];\n module.exports = {\n isSupportedFont: function(a) {\n return supportedFonts.indexOf(a) !== -1;\n }\n };\n }\n });\n\n // src/traces/scattermap/defaults.js\n var require_defaults53 = __commonJS({\n \"src/traces/scattermap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes57();\n var isSupportedFont = require_constants28().isSupportedFont;\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleLonLatDefaults(traceIn, traceOut, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n coerce(\"texttemplate\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n coerce(\"mode\");\n coerce(\"below\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noLine: true, noAngle: true });\n coerce(\"marker.allowoverlap\");\n coerce(\"marker.angle\");\n var marker = traceOut.marker;\n if (marker.symbol !== \"circle\") {\n if (Lib.isArrayOrTypedArray(marker.size)) marker.size = marker.size[0];\n if (Lib.isArrayOrTypedArray(marker.color)) marker.color = marker.color[0];\n }\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noDash: true });\n coerce(\"connectgaps\");\n }\n var clusterMaxzoom = coerce2(\"cluster.maxzoom\");\n var clusterStep = coerce2(\"cluster.step\");\n var clusterColor = coerce2(\"cluster.color\", traceOut.marker && traceOut.marker.color || defaultColor);\n var clusterSize = coerce2(\"cluster.size\");\n var clusterOpacity = coerce2(\"cluster.opacity\");\n var clusterEnabledDflt = clusterMaxzoom !== false || clusterStep !== false || clusterColor !== false || clusterSize !== false || clusterOpacity !== false;\n var clusterEnabled = coerce(\"cluster.enabled\", clusterEnabledDflt);\n if (clusterEnabled || subTypes.hasText(traceOut)) {\n var layoutFontFamily = layout.font.family;\n handleTextDefaults(\n traceIn,\n traceOut,\n layout,\n coerce,\n {\n noSelect: true,\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true,\n font: {\n family: isSupportedFont(layoutFontFamily) ? layoutFontFamily : \"Open Sans Regular\",\n weight: layout.font.weight,\n style: layout.font.style,\n size: layout.font.size,\n color: layout.font.color\n }\n }\n );\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function handleLonLatDefaults(traceIn, traceOut, coerce) {\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n traceOut._length = len;\n return len;\n }\n }\n });\n\n // src/traces/scattermap/format_labels.js\n var require_format_labels6 = __commonJS({\n \"src/traces/scattermap/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n var ax = subplot.mockAxis;\n var lonlat = cdi.lonlat;\n labels.lonLabel = Axes.tickText(ax, ax.c2l(lonlat[0]), true).text;\n labels.latLabel = Axes.tickText(ax, ax.c2l(lonlat[1]), true).text;\n return labels;\n };\n }\n });\n\n // src/plots/map/convert_text_opts.js\n var require_convert_text_opts2 = __commonJS({\n \"src/plots/map/convert_text_opts.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function convertTextOpts(textposition, iconSize) {\n var parts = textposition.split(\" \");\n var vPos = parts[0];\n var hPos = parts[1];\n var factor = Lib.isArrayOrTypedArray(iconSize) ? Lib.mean(iconSize) : iconSize;\n var xInc = 0.5 + factor / 100;\n var yInc = 1.5 + factor / 100;\n var anchorVals = [\"\", \"\"];\n var offset = [0, 0];\n switch (vPos) {\n case \"top\":\n anchorVals[0] = \"top\";\n offset[1] = -yInc;\n break;\n case \"bottom\":\n anchorVals[0] = \"bottom\";\n offset[1] = yInc;\n break;\n }\n switch (hPos) {\n case \"left\":\n anchorVals[1] = \"right\";\n offset[0] = -xInc;\n break;\n case \"right\":\n anchorVals[1] = \"left\";\n offset[0] = xInc;\n break;\n }\n var anchor;\n if (anchorVals[0] && anchorVals[1]) anchor = anchorVals.join(\"-\");\n else if (anchorVals[0]) anchor = anchorVals[0];\n else if (anchorVals[1]) anchor = anchorVals[1];\n else anchor = \"center\";\n return { anchor, offset };\n };\n }\n });\n\n // src/traces/scattermap/convert.js\n var require_convert14 = __commonJS({\n \"src/traces/scattermap/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var BADNUM = require_numerical().BADNUM;\n var geoJsonUtils = require_geojson_utils();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBubbleSizeFn = require_make_bubble_size_func();\n var subTypes = require_subtypes();\n var isSupportedFont = require_constants28().isSupportedFont;\n var convertTextOpts = require_convert_text_opts2();\n var appendArrayPointValue = require_helpers2().appendArrayPointValue;\n var NEWLINES = require_svg_text_utils().NEWLINES;\n var BR_TAG_ALL = require_svg_text_utils().BR_TAG_ALL;\n module.exports = function convert(gd, calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var hasFill = trace.fill !== \"none\";\n var hasLines = subTypes.hasLines(trace);\n var hasMarkers = subTypes.hasMarkers(trace);\n var hasText = subTypes.hasText(trace);\n var hasCircles = hasMarkers && trace.marker.symbol === \"circle\";\n var hasSymbols = hasMarkers && trace.marker.symbol !== \"circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var fill = initContainer(\"fill\");\n var line = initContainer(\"line\");\n var circle = initContainer(\"circle\");\n var symbol = initContainer(\"symbol\");\n var opts = {\n fill,\n line,\n circle,\n symbol\n };\n if (!isVisible) return opts;\n var lineCoords;\n if (hasFill || hasLines) {\n lineCoords = geoJsonUtils.calcTraceToLineCoords(calcTrace);\n }\n if (hasFill) {\n fill.geojson = geoJsonUtils.makePolygon(lineCoords);\n fill.layout.visibility = \"visible\";\n Lib.extendFlat(fill.paint, {\n \"fill-color\": trace.fillcolor\n });\n }\n if (hasLines) {\n line.geojson = geoJsonUtils.makeLine(lineCoords);\n line.layout.visibility = \"visible\";\n Lib.extendFlat(line.paint, {\n \"line-width\": trace.line.width,\n \"line-color\": trace.line.color,\n \"line-opacity\": trace.opacity\n });\n }\n if (hasCircles) {\n var circleOpts = makeCircleOpts(calcTrace);\n circle.geojson = circleOpts.geojson;\n circle.layout.visibility = \"visible\";\n if (hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n opts.cluster = {\n type: \"circle\",\n filter: [\"has\", \"point_count\"],\n layout: { visibility: \"visible\" },\n paint: {\n \"circle-color\": arrayifyAttribute(trace.cluster.color, trace.cluster.step),\n \"circle-radius\": arrayifyAttribute(trace.cluster.size, trace.cluster.step),\n \"circle-opacity\": arrayifyAttribute(trace.cluster.opacity, trace.cluster.step)\n }\n };\n opts.clusterCount = {\n type: \"symbol\",\n filter: [\"has\", \"point_count\"],\n paint: {},\n layout: {\n \"text-field\": \"{point_count_abbreviated}\",\n \"text-font\": getTextFont(trace),\n \"text-size\": 12\n }\n };\n }\n Lib.extendFlat(circle.paint, {\n \"circle-color\": circleOpts.mcc,\n \"circle-radius\": circleOpts.mrc,\n \"circle-opacity\": circleOpts.mo\n });\n }\n if (hasCircles && hasCluster) {\n circle.filter = [\"!\", [\"has\", \"point_count\"]];\n }\n if (hasSymbols || hasText) {\n symbol.geojson = makeSymbolGeoJSON(calcTrace, gd);\n Lib.extendFlat(symbol.layout, {\n visibility: \"visible\",\n \"icon-image\": \"{symbol}-15\",\n \"text-field\": \"{text}\"\n });\n if (hasSymbols) {\n Lib.extendFlat(symbol.layout, {\n \"icon-size\": trace.marker.size / 10\n });\n if (\"angle\" in trace.marker && trace.marker.angle !== \"auto\") {\n Lib.extendFlat(symbol.layout, {\n // unfortunately cant use {angle} do to this issue:\n // https://github.com/mapbox/mapbox-gl-js/issues/873\n \"icon-rotate\": {\n type: \"identity\",\n property: \"angle\"\n },\n \"icon-rotation-alignment\": \"map\"\n });\n }\n symbol.layout[\"icon-allow-overlap\"] = trace.marker.allowoverlap;\n Lib.extendFlat(symbol.paint, {\n \"icon-opacity\": trace.opacity * trace.marker.opacity,\n // TODO does not work ??\n \"icon-color\": trace.marker.color\n });\n }\n if (hasText) {\n var iconSize = (trace.marker || {}).size;\n var textOpts = convertTextOpts(trace.textposition, iconSize);\n Lib.extendFlat(symbol.layout, {\n \"text-size\": trace.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"text-font\": getTextFont(trace)\n });\n Lib.extendFlat(symbol.paint, {\n \"text-color\": trace.textfont.color,\n \"text-opacity\": trace.opacity\n });\n }\n }\n return opts;\n };\n function initContainer(type) {\n return {\n type,\n geojson: geoJsonUtils.makeBlank(),\n layout: { visibility: \"none\" },\n filter: null,\n paint: {}\n };\n }\n function makeCircleOpts(calcTrace) {\n var trace = calcTrace[0].trace;\n var marker = trace.marker;\n var selectedpoints = trace.selectedpoints;\n var arrayColor = Lib.isArrayOrTypedArray(marker.color);\n var arraySize = Lib.isArrayOrTypedArray(marker.size);\n var arrayOpacity = Lib.isArrayOrTypedArray(marker.opacity);\n var i;\n function addTraceOpacity(o) {\n return trace.opacity * o;\n }\n function size2radius(s) {\n return s / 2;\n }\n var colorFn;\n if (arrayColor) {\n if (Colorscale.hasColorscale(trace, \"marker\")) {\n colorFn = Colorscale.makeColorScaleFuncFromTrace(marker);\n } else {\n colorFn = Lib.identity;\n }\n }\n var sizeFn;\n if (arraySize) {\n sizeFn = makeBubbleSizeFn(trace);\n }\n var opacityFn;\n if (arrayOpacity) {\n opacityFn = function(mo) {\n var mo2 = isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n return addTraceOpacity(mo2);\n };\n }\n var features = [];\n for (i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n var lonlat = calcPt.lonlat;\n if (isBADNUM(lonlat)) continue;\n var props = {};\n if (colorFn) props.mcc = calcPt.mcc = colorFn(calcPt.mc);\n if (sizeFn) props.mrc = calcPt.mrc = sizeFn(calcPt.ms);\n if (opacityFn) props.mo = opacityFn(calcPt.mo);\n if (selectedpoints) props.selected = calcPt.selected || 0;\n features.push({\n type: \"Feature\",\n id: i + 1,\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n var fns;\n if (selectedpoints) {\n fns = Drawing.makeSelectedPointStyleFns(trace);\n for (i = 0; i < features.length; i++) {\n var d = features[i].properties;\n if (fns.selectedOpacityFn) {\n d.mo = addTraceOpacity(fns.selectedOpacityFn(d));\n }\n if (fns.selectedColorFn) {\n d.mcc = fns.selectedColorFn(d);\n }\n if (fns.selectedSizeFn) {\n d.mrc = fns.selectedSizeFn(d);\n }\n }\n }\n return {\n geojson: { type: \"FeatureCollection\", features },\n mcc: arrayColor || fns && fns.selectedColorFn ? { type: \"identity\", property: \"mcc\" } : marker.color,\n mrc: arraySize || fns && fns.selectedSizeFn ? { type: \"identity\", property: \"mrc\" } : size2radius(marker.size),\n mo: arrayOpacity || fns && fns.selectedOpacityFn ? { type: \"identity\", property: \"mo\" } : addTraceOpacity(marker.opacity)\n };\n }\n function makeSymbolGeoJSON(calcTrace, gd) {\n var fullLayout = gd._fullLayout;\n var trace = calcTrace[0].trace;\n var marker = trace.marker || {};\n var symbol = marker.symbol;\n var angle = marker.angle;\n var fillSymbol = symbol !== \"circle\" ? getFillFunc(symbol) : blankFillFunc;\n var fillAngle = angle !== \"auto\" ? getFillFunc(angle, true) : blankFillFunc;\n var fillText = subTypes.hasText(trace) ? getFillFunc(trace.text) : blankFillFunc;\n var features = [];\n for (var i = 0; i < calcTrace.length; i++) {\n var calcPt = calcTrace[i];\n if (isBADNUM(calcPt.lonlat)) continue;\n var texttemplate = trace.texttemplate;\n var text;\n if (texttemplate) {\n var tt = Array.isArray(texttemplate) ? texttemplate[i] || \"\" : texttemplate;\n var labels = trace._module.formatLabels(calcPt, trace, fullLayout);\n var pointValues = {};\n appendArrayPointValue(pointValues, trace, calcPt.i);\n var meta = trace._meta || {};\n text = Lib.texttemplateString(tt, labels, fullLayout._d3locale, pointValues, calcPt, meta);\n } else {\n text = fillText(i);\n }\n if (text) {\n text = text.replace(NEWLINES, \"\").replace(BR_TAG_ALL, \"\\n\");\n }\n features.push({\n type: \"Feature\",\n geometry: {\n type: \"Point\",\n coordinates: calcPt.lonlat\n },\n properties: {\n symbol: fillSymbol(i),\n angle: fillAngle(i),\n text\n }\n });\n }\n return {\n type: \"FeatureCollection\",\n features\n };\n }\n function getFillFunc(attr, numeric) {\n if (Lib.isArrayOrTypedArray(attr)) {\n if (numeric) {\n return function(i) {\n return isNumeric(attr[i]) ? +attr[i] : 0;\n };\n }\n return function(i) {\n return attr[i];\n };\n } else if (attr) {\n return function() {\n return attr;\n };\n } else {\n return blankFillFunc;\n }\n }\n function blankFillFunc() {\n return \"\";\n }\n function isBADNUM(lonlat) {\n return lonlat[0] === BADNUM;\n }\n function arrayifyAttribute(values, step) {\n var newAttribute;\n if (Lib.isArrayOrTypedArray(values) && Lib.isArrayOrTypedArray(step)) {\n newAttribute = [\"step\", [\"get\", \"point_count\"], values[0]];\n for (var idx = 1; idx < values.length; idx++) {\n newAttribute.push(step[idx - 1], values[idx]);\n }\n } else {\n newAttribute = values;\n }\n return newAttribute;\n }\n function getTextFont(trace) {\n var font = trace.textfont;\n var family = font.family;\n var style = font.style;\n var weight = font.weight;\n var parts = family.split(\" \");\n var isItalic = parts[parts.length - 1] === \"Italic\";\n if (isItalic) parts.pop();\n isItalic = isItalic || style === \"italic\";\n var str = parts.join(\" \");\n if (weight === \"bold\" && parts.indexOf(\"Bold\") === -1) {\n str += \" Bold\";\n } else if (weight <= 1e3) {\n if (parts[0] === \"Metropolis\") {\n str = \"Metropolis\";\n if (weight > 850) str += \" Black\";\n else if (weight > 750) str += \" Extra Bold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semi Bold\";\n else if (weight > 450) str += \" Medium\";\n else if (weight > 350) str += \" Regular\";\n else if (weight > 250) str += \" Light\";\n else if (weight > 150) str += \" Extra Light\";\n else str += \" Thin\";\n } else if (parts.slice(0, 2).join(\" \") === \"Open Sans\") {\n str = \"Open Sans\";\n if (weight > 750) str += \" Extrabold\";\n else if (weight > 650) str += \" Bold\";\n else if (weight > 550) str += \" Semibold\";\n else if (weight > 350) str += \" Regular\";\n else str += \" Light\";\n } else if (parts.slice(0, 3).join(\" \") === \"Klokantech Noto Sans\") {\n str = \"Klokantech Noto Sans\";\n if (parts[3] === \"CJK\") str += \" CJK\";\n str += weight > 500 ? \" Bold\" : \" Regular\";\n }\n }\n if (isItalic) str += \" Italic\";\n if (str === \"Open Sans Regular Italic\") str = \"Open Sans Italic\";\n else if (str === \"Open Sans Regular Bold\") str = \"Open Sans Bold\";\n else if (str === \"Open Sans Regular Bold Italic\") str = \"Open Sans Bold Italic\";\n else if (str === \"Klokantech Noto Sans Regular Italic\") str = \"Klokantech Noto Sans Italic\";\n if (!isSupportedFont(str)) {\n str = family;\n }\n var textFont = str.split(\", \");\n return textFont;\n }\n }\n });\n\n // src/traces/scattermap/plot.js\n var require_plot26 = __commonJS({\n \"src/traces/scattermap/plot.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var convert = require_convert14();\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n var ORDER = {\n cluster: [\"cluster\", \"clusterCount\", \"circle\"],\n nonCluster: [\"fill\", \"line\", \"circle\", \"symbol\"]\n };\n function ScatterMap(subplot, uid, clusterEnabled, isHidden) {\n this.type = \"scattermap\";\n this.subplot = subplot;\n this.uid = uid;\n this.clusterEnabled = clusterEnabled;\n this.isHidden = isHidden;\n this.sourceIds = {\n fill: \"source-\" + uid + \"-fill\",\n line: \"source-\" + uid + \"-line\",\n circle: \"source-\" + uid + \"-circle\",\n symbol: \"source-\" + uid + \"-symbol\",\n cluster: \"source-\" + uid + \"-circle\",\n clusterCount: \"source-\" + uid + \"-circle\"\n };\n this.layerIds = {\n fill: LAYER_PREFIX + uid + \"-fill\",\n line: LAYER_PREFIX + uid + \"-line\",\n circle: LAYER_PREFIX + uid + \"-circle\",\n symbol: LAYER_PREFIX + uid + \"-symbol\",\n cluster: LAYER_PREFIX + uid + \"-cluster\",\n clusterCount: LAYER_PREFIX + uid + \"-cluster-count\"\n };\n this.below = null;\n }\n var proto = ScatterMap.prototype;\n proto.addSource = function(k, opts, cluster) {\n var sourceOpts = {\n type: \"geojson\",\n data: opts.geojson\n };\n if (cluster && cluster.enabled) {\n Lib.extendFlat(sourceOpts, {\n cluster: true,\n clusterMaxZoom: cluster.maxzoom\n });\n }\n var isSourceExists = this.subplot.map.getSource(this.sourceIds[k]);\n if (isSourceExists) {\n isSourceExists.setData(opts.geojson);\n } else {\n this.subplot.map.addSource(this.sourceIds[k], sourceOpts);\n }\n };\n proto.setSourceData = function(k, opts) {\n this.subplot.map.getSource(this.sourceIds[k]).setData(opts.geojson);\n };\n proto.addLayer = function(k, opts, below) {\n var source = {\n type: opts.type,\n id: this.layerIds[k],\n source: this.sourceIds[k],\n layout: opts.layout,\n paint: opts.paint\n };\n if (opts.filter) {\n source.filter = opts.filter;\n }\n var currentLayerId = this.layerIds[k];\n var layerExist;\n var layers = this.subplot.getMapLayers();\n for (var i = 0; i < layers.length; i++) {\n if (layers[i].id === currentLayerId) {\n layerExist = true;\n break;\n }\n }\n if (layerExist) {\n this.subplot.setOptions(currentLayerId, \"setLayoutProperty\", source.layout);\n if (source.layout.visibility === \"visible\") {\n this.subplot.setOptions(currentLayerId, \"setPaintProperty\", source.paint);\n }\n } else {\n this.subplot.addLayer(source, below);\n }\n };\n proto.update = function update(calcTrace) {\n var trace = calcTrace[0].trace;\n var subplot = this.subplot;\n var map = subplot.map;\n var optsAll = convert(subplot.gd, calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n var hasCluster = !!(trace.cluster && trace.cluster.enabled);\n var hadCluster = !!this.clusterEnabled;\n var lThis = this;\n function addCluster(noSource) {\n if (!noSource) lThis.addSource(\"circle\", optsAll.circle, trace.cluster);\n var order = ORDER.cluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n lThis.addLayer(k, opts, below);\n }\n }\n function removeCluster(noSource) {\n var order = ORDER.cluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n }\n if (!noSource) map.removeSource(lThis.sourceIds.circle);\n }\n function addNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!noSource) lThis.addSource(k, opts);\n lThis.addLayer(k, opts, below);\n }\n }\n function removeNonCluster(noSource) {\n var order = ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(lThis.layerIds[k]);\n if (!noSource) map.removeSource(lThis.sourceIds[k]);\n }\n }\n function remove(noSource) {\n if (hadCluster) removeCluster(noSource);\n else removeNonCluster(noSource);\n }\n function add(noSource) {\n if (hasCluster) addCluster(noSource);\n else addNonCluster(noSource);\n }\n function repaint() {\n var order = hasCluster ? ORDER.cluster : ORDER.nonCluster;\n for (var i = 0; i < order.length; i++) {\n var k = order[i];\n var opts = optsAll[k];\n if (!opts) continue;\n subplot.setOptions(lThis.layerIds[k], \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n if (k !== \"cluster\") {\n lThis.setSourceData(k, opts);\n }\n subplot.setOptions(lThis.layerIds[k], \"setPaintProperty\", opts.paint);\n }\n }\n }\n var wasHidden = this.isHidden;\n var isHidden = trace.visible !== true;\n if (isHidden) {\n if (!wasHidden) remove();\n } else if (wasHidden) {\n if (!isHidden) add();\n } else if (hadCluster !== hasCluster) {\n remove();\n add();\n } else if (this.below !== below) {\n remove(true);\n add(true);\n repaint();\n } else {\n repaint();\n }\n this.clusterEnabled = hasCluster;\n this.isHidden = isHidden;\n this.below = below;\n calcTrace[0].trace._glTrace = this;\n };\n proto.dispose = function dispose() {\n var map = this.subplot.map;\n var order = this.clusterEnabled ? ORDER.cluster : ORDER.nonCluster;\n for (var i = order.length - 1; i >= 0; i--) {\n var k = order[i];\n map.removeLayer(this.layerIds[k]);\n map.removeSource(this.sourceIds[k]);\n }\n };\n module.exports = function createScatterMap(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var hasCluster = trace.cluster && trace.cluster.enabled;\n var isHidden = trace.visible !== true;\n var scatterMap = new ScatterMap(\n subplot,\n trace.uid,\n hasCluster,\n isHidden\n );\n var optsAll = convert(subplot.gd, calcTrace);\n var below = scatterMap.below = subplot.belowLookup[\"trace-\" + trace.uid];\n var i, k, opts;\n if (hasCluster) {\n scatterMap.addSource(\"circle\", optsAll.circle, trace.cluster);\n for (i = 0; i < ORDER.cluster.length; i++) {\n k = ORDER.cluster[i];\n opts = optsAll[k];\n scatterMap.addLayer(k, opts, below);\n }\n } else {\n for (i = 0; i < ORDER.nonCluster.length; i++) {\n k = ORDER.nonCluster[i];\n opts = optsAll[k];\n scatterMap.addSource(k, opts, trace.cluster);\n scatterMap.addLayer(k, opts, below);\n }\n }\n calcTrace[0].trace._glTrace = scatterMap;\n return scatterMap;\n };\n }\n });\n\n // src/traces/scattermap/hover.js\n var require_hover20 = __commonJS({\n \"src/traces/scattermap/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var getTraceColor = require_get_trace_color();\n var fillText = Lib.fillText;\n var BADNUM = require_numerical().BADNUM;\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var xa = pointData.xa;\n var ya = pointData.ya;\n var subplot = pointData.subplot;\n var clusteredPointsIds = [];\n var layer = LAYER_PREFIX + trace.uid + \"-circle\";\n var hasCluster = trace.cluster && trace.cluster.enabled;\n if (hasCluster) {\n var elems = subplot.map.queryRenderedFeatures(null, { layers: [layer] });\n clusteredPointsIds = elems.map(function(elem) {\n return elem.id;\n });\n }\n var winding = xval >= 0 ? Math.floor((xval + 180) / 360) : Math.ceil((xval - 180) / 360);\n var lonShift = winding * 360;\n var xval2 = xval - lonShift;\n function distFn(d) {\n var lonlat2 = d.lonlat;\n if (lonlat2[0] === BADNUM) return Infinity;\n if (hasCluster && clusteredPointsIds.indexOf(d.i + 1) === -1) return Infinity;\n var lon = Lib.modHalf(lonlat2[0], 360);\n var lat = lonlat2[1];\n var pt = subplot.project([lon, lat]);\n var dx = pt.x - xa.c2p([xval2, lat]);\n var dy = pt.y - ya.c2p([lon, yval]);\n var rad2 = Math.max(3, d.mrc || 0);\n return Math.max(Math.sqrt(dx * dx + dy * dy) - rad2, 1 - 3 / rad2);\n }\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var di = cd[pointData.index];\n var lonlat = di.lonlat;\n var lonlatShifted = [Lib.modHalf(lonlat[0], 360) + lonShift, lonlat[1]];\n var xc = xa.c2p(lonlatShifted);\n var yc = ya.c2p(lonlatShifted);\n var rad = di.mrc || 1;\n pointData.x0 = xc - rad;\n pointData.x1 = xc + rad;\n pointData.y0 = yc - rad;\n pointData.y1 = yc + rad;\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(di, trace, fullLayout);\n pointData.lonLabel = labels.lonLabel;\n pointData.latLabel = labels.latLabel;\n pointData.color = getTraceColor(trace, di);\n pointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n pointData.hovertemplate = trace.hovertemplate;\n return [pointData];\n }\n function getExtraText(trace, di, labels) {\n if (trace.hovertemplate) return;\n var hoverinfo = di.hi || trace.hoverinfo;\n var parts = hoverinfo.split(\"+\");\n var isAll = parts.indexOf(\"all\") !== -1;\n var hasLon = parts.indexOf(\"lon\") !== -1;\n var hasLat = parts.indexOf(\"lat\") !== -1;\n var lonlat = di.lonlat;\n var text = [];\n function format(v) {\n return v + \"\\xB0\";\n }\n if (isAll || hasLon && hasLat) {\n text.push(\"(\" + format(lonlat[1]) + \", \" + format(lonlat[0]) + \")\");\n } else if (hasLon) {\n text.push(labels.lon + format(lonlat[0]));\n } else if (hasLat) {\n text.push(labels.lat + format(lonlat[1]));\n }\n if (isAll || parts.indexOf(\"text\") !== -1) {\n fillText(di, trace, text);\n }\n return text.join(\"
\");\n }\n module.exports = {\n hoverPoints,\n getExtraText\n };\n }\n });\n\n // src/traces/scattermap/event_data.js\n var require_event_data13 = __commonJS({\n \"src/traces/scattermap/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n return out;\n };\n }\n });\n\n // src/traces/scattermap/select.js\n var require_select10 = __commonJS({\n \"src/traces/scattermap/select.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subtypes = require_subtypes();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var trace = cd[0].trace;\n var i;\n if (!subtypes.hasMarkers(trace)) return [];\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n var lonlat = di.lonlat;\n if (lonlat[0] !== BADNUM) {\n var lonlat2 = [Lib.modHalf(lonlat[0], 360), lonlat[1]];\n var xy = [xa.c2p(lonlat2), ya.c2p(lonlat2)];\n if (selectionTester.contains(xy, null, i, searchInfo)) {\n selection.push({\n pointNumber: i,\n lon: lonlat[0],\n lat: lonlat[1]\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n }\n return selection;\n };\n }\n });\n\n // node_modules/maplibre-gl/dist/maplibre-gl.js\n var require_maplibre_gl = __commonJS({\n \"node_modules/maplibre-gl/dist/maplibre-gl.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? module.exports = factory() : typeof define === \"function\" && false ? define(factory) : (global2 = typeof globalThis !== \"undefined\" ? globalThis : global2 || self, global2.maplibregl = factory());\n })(exports, function() {\n \"use strict\";\n var maplibregl = {};\n var modules = {};\n function define2(moduleName, _dependencies, moduleFactory) {\n modules[moduleName] = moduleFactory;\n if (moduleName !== \"index\") {\n return;\n }\n var workerBundleString = \"var sharedModule = {}; (\" + modules.shared + \")(sharedModule); (\" + modules.worker + \")(sharedModule);\";\n var sharedModule = {};\n modules.shared(sharedModule);\n modules.index(maplibregl, sharedModule);\n if (typeof window !== \"undefined\") {\n maplibregl.setWorkerUrl(window.URL.createObjectURL(new Blob([workerBundleString], { type: \"text/javascript\" })));\n }\n return maplibregl;\n }\n ;\n define2(\"shared\", [\"exports\"], function(t) {\n \"use strict\";\n function e(t4, e2, r2, n2) {\n return new (r2 || (r2 = Promise))(function(i2, s2) {\n function a2(t5) {\n try {\n l2(n2.next(t5));\n } catch (t6) {\n s2(t6);\n }\n }\n function o2(t5) {\n try {\n l2(n2.throw(t5));\n } catch (t6) {\n s2(t6);\n }\n }\n function l2(t5) {\n var e3;\n t5.done ? i2(t5.value) : (e3 = t5.value, e3 instanceof r2 ? e3 : new r2(function(t6) {\n t6(e3);\n })).then(a2, o2);\n }\n l2((n2 = n2.apply(t4, e2 || [])).next());\n });\n }\n function r(t4) {\n return t4 && t4.__esModule && Object.prototype.hasOwnProperty.call(t4, \"default\") ? t4.default : t4;\n }\n \"function\" == typeof SuppressedError && SuppressedError;\n var n = i;\n function i(t4, e2) {\n this.x = t4, this.y = e2;\n }\n i.prototype = { clone: function() {\n return new i(this.x, this.y);\n }, add: function(t4) {\n return this.clone()._add(t4);\n }, sub: function(t4) {\n return this.clone()._sub(t4);\n }, multByPoint: function(t4) {\n return this.clone()._multByPoint(t4);\n }, divByPoint: function(t4) {\n return this.clone()._divByPoint(t4);\n }, mult: function(t4) {\n return this.clone()._mult(t4);\n }, div: function(t4) {\n return this.clone()._div(t4);\n }, rotate: function(t4) {\n return this.clone()._rotate(t4);\n }, rotateAround: function(t4, e2) {\n return this.clone()._rotateAround(t4, e2);\n }, matMult: function(t4) {\n return this.clone()._matMult(t4);\n }, unit: function() {\n return this.clone()._unit();\n }, perp: function() {\n return this.clone()._perp();\n }, round: function() {\n return this.clone()._round();\n }, mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n }, equals: function(t4) {\n return this.x === t4.x && this.y === t4.y;\n }, dist: function(t4) {\n return Math.sqrt(this.distSqr(t4));\n }, distSqr: function(t4) {\n var e2 = t4.x - this.x, r2 = t4.y - this.y;\n return e2 * e2 + r2 * r2;\n }, angle: function() {\n return Math.atan2(this.y, this.x);\n }, angleTo: function(t4) {\n return Math.atan2(this.y - t4.y, this.x - t4.x);\n }, angleWith: function(t4) {\n return this.angleWithSep(t4.x, t4.y);\n }, angleWithSep: function(t4, e2) {\n return Math.atan2(this.x * e2 - this.y * t4, this.x * t4 + this.y * e2);\n }, _matMult: function(t4) {\n var e2 = t4[2] * this.x + t4[3] * this.y;\n return this.x = t4[0] * this.x + t4[1] * this.y, this.y = e2, this;\n }, _add: function(t4) {\n return this.x += t4.x, this.y += t4.y, this;\n }, _sub: function(t4) {\n return this.x -= t4.x, this.y -= t4.y, this;\n }, _mult: function(t4) {\n return this.x *= t4, this.y *= t4, this;\n }, _div: function(t4) {\n return this.x /= t4, this.y /= t4, this;\n }, _multByPoint: function(t4) {\n return this.x *= t4.x, this.y *= t4.y, this;\n }, _divByPoint: function(t4) {\n return this.x /= t4.x, this.y /= t4.y, this;\n }, _unit: function() {\n return this._div(this.mag()), this;\n }, _perp: function() {\n var t4 = this.y;\n return this.y = this.x, this.x = -t4, this;\n }, _rotate: function(t4) {\n var e2 = Math.cos(t4), r2 = Math.sin(t4), n2 = r2 * this.x + e2 * this.y;\n return this.x = e2 * this.x - r2 * this.y, this.y = n2, this;\n }, _rotateAround: function(t4, e2) {\n var r2 = Math.cos(t4), n2 = Math.sin(t4), i2 = e2.y + n2 * (this.x - e2.x) + r2 * (this.y - e2.y);\n return this.x = e2.x + r2 * (this.x - e2.x) - n2 * (this.y - e2.y), this.y = i2, this;\n }, _round: function() {\n return this.x = Math.round(this.x), this.y = Math.round(this.y), this;\n } }, i.convert = function(t4) {\n return t4 instanceof i ? t4 : Array.isArray(t4) ? new i(t4[0], t4[1]) : t4;\n };\n var s = r(n), a = o;\n function o(t4, e2, r2, n2) {\n this.cx = 3 * t4, this.bx = 3 * (r2 - t4) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t4, this.p1y = e2, this.p2x = r2, this.p2y = n2;\n }\n o.prototype = { sampleCurveX: function(t4) {\n return ((this.ax * t4 + this.bx) * t4 + this.cx) * t4;\n }, sampleCurveY: function(t4) {\n return ((this.ay * t4 + this.by) * t4 + this.cy) * t4;\n }, sampleCurveDerivativeX: function(t4) {\n return (3 * this.ax * t4 + 2 * this.bx) * t4 + this.cx;\n }, solveCurveX: function(t4, e2) {\n if (void 0 === e2 && (e2 = 1e-6), t4 < 0) return 0;\n if (t4 > 1) return 1;\n for (var r2 = t4, n2 = 0; n2 < 8; n2++) {\n var i2 = this.sampleCurveX(r2) - t4;\n if (Math.abs(i2) < e2) return r2;\n var s2 = this.sampleCurveDerivativeX(r2);\n if (Math.abs(s2) < 1e-6) break;\n r2 -= i2 / s2;\n }\n var a2 = 0, o2 = 1;\n for (r2 = t4, n2 = 0; n2 < 20 && (i2 = this.sampleCurveX(r2), !(Math.abs(i2 - t4) < e2)); n2++) t4 > i2 ? a2 = r2 : o2 = r2, r2 = 0.5 * (o2 - a2) + a2;\n return r2;\n }, solve: function(t4, e2) {\n return this.sampleCurveY(this.solveCurveX(t4, e2));\n } };\n var l = r(a);\n let u, c;\n function h() {\n return null == u && (u = \"undefined\" != typeof OffscreenCanvas && new OffscreenCanvas(1, 1).getContext(\"2d\") && \"function\" == typeof createImageBitmap), u;\n }\n function p() {\n if (null == c && (c = false, h())) {\n const t4 = 5, e2 = new OffscreenCanvas(t4, t4).getContext(\"2d\", { willReadFrequently: true });\n if (e2) {\n for (let r3 = 0; r3 < t4 * t4; r3++) {\n const n2 = 4 * r3;\n e2.fillStyle = `rgb(${n2},${n2 + 1},${n2 + 2})`, e2.fillRect(r3 % t4, Math.floor(r3 / t4), 1, 1);\n }\n const r2 = e2.getImageData(0, 0, t4, t4).data;\n for (let e3 = 0; e3 < t4 * t4 * 4; e3++) if (e3 % 4 != 3 && r2[e3] !== e3) {\n c = true;\n break;\n }\n }\n }\n return c || false;\n }\n function f(t4, e2, r2, n2) {\n const i2 = new l(t4, e2, r2, n2);\n return (t5) => i2.solve(t5);\n }\n const d = f(0.25, 0.1, 0.25, 1);\n function y(t4, e2, r2) {\n return Math.min(r2, Math.max(e2, t4));\n }\n function m(t4, e2, r2) {\n const n2 = r2 - e2, i2 = ((t4 - e2) % n2 + n2) % n2 + e2;\n return i2 === e2 ? r2 : i2;\n }\n function g(t4, ...e2) {\n for (const r2 of e2) for (const e3 in r2) t4[e3] = r2[e3];\n return t4;\n }\n let x = 1;\n function v(t4, e2, r2) {\n const n2 = {};\n for (const r3 in t4) n2[r3] = e2.call(this, t4[r3], r3, t4);\n return n2;\n }\n function b(t4, e2, r2) {\n const n2 = {};\n for (const r3 in t4) e2.call(this, t4[r3], r3, t4) && (n2[r3] = t4[r3]);\n return n2;\n }\n function w(t4) {\n return Array.isArray(t4) ? t4.map(w) : \"object\" == typeof t4 && t4 ? v(t4, w) : t4;\n }\n const _ = {};\n function A2(t4) {\n _[t4] || (\"undefined\" != typeof console && console.warn(t4), _[t4] = true);\n }\n function S(t4, e2, r2) {\n return (r2.y - t4.y) * (e2.x - t4.x) > (e2.y - t4.y) * (r2.x - t4.x);\n }\n function k(t4) {\n return \"undefined\" != typeof WorkerGlobalScope && void 0 !== t4 && t4 instanceof WorkerGlobalScope;\n }\n let M = null;\n function I(t4) {\n return \"undefined\" != typeof ImageBitmap && t4 instanceof ImageBitmap;\n }\n const z = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=\";\n function P(t4, r2, n2, i2, s2) {\n return e(this, void 0, void 0, function* () {\n if (\"undefined\" == typeof VideoFrame) throw new Error(\"VideoFrame not supported\");\n const e2 = new VideoFrame(t4, { timestamp: 0 });\n try {\n const a2 = null == e2 ? void 0 : e2.format;\n if (!a2 || !a2.startsWith(\"BGR\") && !a2.startsWith(\"RGB\")) throw new Error(`Unrecognized format ${a2}`);\n const o2 = a2.startsWith(\"BGR\"), l2 = new Uint8ClampedArray(i2 * s2 * 4);\n if (yield e2.copyTo(l2, function(t5, e3, r3, n3, i3) {\n const s3 = 4 * Math.max(-e3, 0), a3 = (Math.max(0, r3) - r3) * n3 * 4 + s3, o3 = 4 * n3, l3 = Math.max(0, e3), u2 = Math.max(0, r3);\n return { rect: { x: l3, y: u2, width: Math.min(t5.width, e3 + n3) - l3, height: Math.min(t5.height, r3 + i3) - u2 }, layout: [{ offset: a3, stride: o3 }] };\n }(t4, r2, n2, i2, s2)), o2) for (let t5 = 0; t5 < l2.length; t5 += 4) {\n const e3 = l2[t5];\n l2[t5] = l2[t5 + 2], l2[t5 + 2] = e3;\n }\n return l2;\n } finally {\n e2.close();\n }\n });\n }\n let C2, B2;\n const V = \"AbortError\";\n function E2() {\n return new Error(V);\n }\n const F = { MAX_PARALLEL_IMAGE_REQUESTS: 16, MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8, MAX_TILE_CACHE_ZOOM_LEVELS: 5, REGISTERED_PROTOCOLS: {}, WORKER_URL: \"\" };\n function T(t4) {\n return F.REGISTERED_PROTOCOLS[t4.substring(0, t4.indexOf(\"://\"))];\n }\n const $ = \"global-dispatcher\";\n class L extends Error {\n constructor(t4, e2, r2, n2) {\n super(`AJAXError: ${e2} (${t4}): ${r2}`), this.status = t4, this.statusText = e2, this.url = r2, this.body = n2;\n }\n }\n const D2 = () => k(self) ? self.worker && self.worker.referrer : (\"blob:\" === window.location.protocol ? window.parent : window).location.href, O = function(t4, r2) {\n if (/:\\/\\//.test(t4.url) && !/^https?:|^file:/.test(t4.url)) {\n const e2 = T(t4.url);\n if (e2) return e2(t4, r2);\n if (k(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ type: \"GR\", data: t4, targetMapId: $ }, r2);\n }\n if (!(/^file:/.test(n2 = t4.url) || /^file:/.test(D2()) && !/^\\w+:/.test(n2))) {\n if (fetch && Request && AbortController && Object.prototype.hasOwnProperty.call(Request.prototype, \"signal\")) return function(t5, r3) {\n return e(this, void 0, void 0, function* () {\n const e2 = new Request(t5.url, { method: t5.method || \"GET\", body: t5.body, credentials: t5.credentials, headers: t5.headers, cache: t5.cache, referrer: D2(), signal: r3.signal });\n \"json\" !== t5.type || e2.headers.has(\"Accept\") || e2.headers.set(\"Accept\", \"application/json\");\n const n3 = yield fetch(e2);\n if (!n3.ok) {\n const e3 = yield n3.blob();\n throw new L(n3.status, n3.statusText, t5.url, e3);\n }\n let i2;\n i2 = \"arrayBuffer\" === t5.type || \"image\" === t5.type ? n3.arrayBuffer() : \"json\" === t5.type ? n3.json() : n3.text();\n const s2 = yield i2;\n if (r3.signal.aborted) throw E2();\n return { data: s2, cacheControl: n3.headers.get(\"Cache-Control\"), expires: n3.headers.get(\"Expires\") };\n });\n }(t4, r2);\n if (k(self) && self.worker && self.worker.actor) return self.worker.actor.sendAsync({ type: \"GR\", data: t4, mustQueue: true, targetMapId: $ }, r2);\n }\n var n2;\n return function(t5, e2) {\n return new Promise((r3, n3) => {\n var i2;\n const s2 = new XMLHttpRequest();\n s2.open(t5.method || \"GET\", t5.url, true), \"arrayBuffer\" !== t5.type && \"image\" !== t5.type || (s2.responseType = \"arraybuffer\");\n for (const e3 in t5.headers) s2.setRequestHeader(e3, t5.headers[e3]);\n \"json\" === t5.type && (s2.responseType = \"text\", (null === (i2 = t5.headers) || void 0 === i2 ? void 0 : i2.Accept) || s2.setRequestHeader(\"Accept\", \"application/json\")), s2.withCredentials = \"include\" === t5.credentials, s2.onerror = () => {\n n3(new Error(s2.statusText));\n }, s2.onload = () => {\n if (!e2.signal.aborted) if ((s2.status >= 200 && s2.status < 300 || 0 === s2.status) && null !== s2.response) {\n let e3 = s2.response;\n if (\"json\" === t5.type) try {\n e3 = JSON.parse(s2.response);\n } catch (t6) {\n return void n3(t6);\n }\n r3({ data: e3, cacheControl: s2.getResponseHeader(\"Cache-Control\"), expires: s2.getResponseHeader(\"Expires\") });\n } else {\n const e3 = new Blob([s2.response], { type: s2.getResponseHeader(\"Content-Type\") });\n n3(new L(s2.status, s2.statusText, t5.url, e3));\n }\n }, e2.signal.addEventListener(\"abort\", () => {\n s2.abort(), n3(E2());\n }), s2.send(t5.body);\n });\n }(t4, r2);\n };\n function j(t4) {\n if (!t4 || t4.indexOf(\"://\") <= 0 || 0 === t4.indexOf(\"data:image/\") || 0 === t4.indexOf(\"blob:\")) return true;\n const e2 = new URL(t4), r2 = window.location;\n return e2.protocol === r2.protocol && e2.host === r2.host;\n }\n function R(t4, e2, r2) {\n r2[t4] && -1 !== r2[t4].indexOf(e2) || (r2[t4] = r2[t4] || [], r2[t4].push(e2));\n }\n function U(t4, e2, r2) {\n if (r2 && r2[t4]) {\n const n2 = r2[t4].indexOf(e2);\n -1 !== n2 && r2[t4].splice(n2, 1);\n }\n }\n class q {\n constructor(t4, e2 = {}) {\n g(this, e2), this.type = t4;\n }\n }\n class N extends q {\n constructor(t4, e2 = {}) {\n super(\"error\", g({ error: t4 }, e2));\n }\n }\n class Z {\n on(t4, e2) {\n return this._listeners = this._listeners || {}, R(t4, e2, this._listeners), this;\n }\n off(t4, e2) {\n return U(t4, e2, this._listeners), U(t4, e2, this._oneTimeListeners), this;\n }\n once(t4, e2) {\n return e2 ? (this._oneTimeListeners = this._oneTimeListeners || {}, R(t4, e2, this._oneTimeListeners), this) : new Promise((e3) => this.once(t4, e3));\n }\n fire(t4, e2) {\n \"string\" == typeof t4 && (t4 = new q(t4, e2 || {}));\n const r2 = t4.type;\n if (this.listens(r2)) {\n t4.target = this;\n const e3 = this._listeners && this._listeners[r2] ? this._listeners[r2].slice() : [];\n for (const r3 of e3) r3.call(this, t4);\n const n2 = this._oneTimeListeners && this._oneTimeListeners[r2] ? this._oneTimeListeners[r2].slice() : [];\n for (const e4 of n2) U(r2, e4, this._oneTimeListeners), e4.call(this, t4);\n const i2 = this._eventedParent;\n i2 && (g(t4, \"function\" == typeof this._eventedParentData ? this._eventedParentData() : this._eventedParentData), i2.fire(t4));\n } else t4 instanceof N && console.error(t4.error);\n return this;\n }\n listens(t4) {\n return this._listeners && this._listeners[t4] && this._listeners[t4].length > 0 || this._oneTimeListeners && this._oneTimeListeners[t4] && this._oneTimeListeners[t4].length > 0 || this._eventedParent && this._eventedParent.listens(t4);\n }\n setEventedParent(t4, e2) {\n return this._eventedParent = t4, this._eventedParentData = e2, this;\n }\n }\n var G = { $version: 8, $root: { version: { required: true, type: \"enum\", values: [8] }, name: { type: \"string\" }, metadata: { type: \"*\" }, center: { type: \"array\", value: \"number\" }, zoom: { type: \"number\" }, bearing: { type: \"number\", default: 0, period: 360, units: \"degrees\" }, pitch: { type: \"number\", default: 0, units: \"degrees\" }, light: { type: \"light\" }, sky: { type: \"sky\" }, projection: { type: \"projection\" }, terrain: { type: \"terrain\" }, sources: { required: true, type: \"sources\" }, sprite: { type: \"sprite\" }, glyphs: { type: \"string\" }, transition: { type: \"transition\" }, layers: { required: true, type: \"array\", value: \"layer\" } }, sources: { \"*\": { type: \"source\" } }, source: [\"source_vector\", \"source_raster\", \"source_raster_dem\", \"source_geojson\", \"source_video\", \"source_image\"], source_vector: { type: { required: true, type: \"enum\", values: { vector: {} } }, url: { type: \"string\" }, tiles: { type: \"array\", value: \"string\" }, bounds: { type: \"array\", value: \"number\", length: 4, default: [-180, -85.051129, 180, 85.051129] }, scheme: { type: \"enum\", values: { xyz: {}, tms: {} }, default: \"xyz\" }, minzoom: { type: \"number\", default: 0 }, maxzoom: { type: \"number\", default: 22 }, attribution: { type: \"string\" }, promoteId: { type: \"promoteId\" }, volatile: { type: \"boolean\", default: false }, \"*\": { type: \"*\" } }, source_raster: { type: { required: true, type: \"enum\", values: { raster: {} } }, url: { type: \"string\" }, tiles: { type: \"array\", value: \"string\" }, bounds: { type: \"array\", value: \"number\", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: \"number\", default: 0 }, maxzoom: { type: \"number\", default: 22 }, tileSize: { type: \"number\", default: 512, units: \"pixels\" }, scheme: { type: \"enum\", values: { xyz: {}, tms: {} }, default: \"xyz\" }, attribution: { type: \"string\" }, volatile: { type: \"boolean\", default: false }, \"*\": { type: \"*\" } }, source_raster_dem: { type: { required: true, type: \"enum\", values: { \"raster-dem\": {} } }, url: { type: \"string\" }, tiles: { type: \"array\", value: \"string\" }, bounds: { type: \"array\", value: \"number\", length: 4, default: [-180, -85.051129, 180, 85.051129] }, minzoom: { type: \"number\", default: 0 }, maxzoom: { type: \"number\", default: 22 }, tileSize: { type: \"number\", default: 512, units: \"pixels\" }, attribution: { type: \"string\" }, encoding: { type: \"enum\", values: { terrarium: {}, mapbox: {}, custom: {} }, default: \"mapbox\" }, redFactor: { type: \"number\", default: 1 }, blueFactor: { type: \"number\", default: 1 }, greenFactor: { type: \"number\", default: 1 }, baseShift: { type: \"number\", default: 0 }, volatile: { type: \"boolean\", default: false }, \"*\": { type: \"*\" } }, source_geojson: { type: { required: true, type: \"enum\", values: { geojson: {} } }, data: { required: true, type: \"*\" }, maxzoom: { type: \"number\", default: 18 }, attribution: { type: \"string\" }, buffer: { type: \"number\", default: 128, maximum: 512, minimum: 0 }, filter: { type: \"*\" }, tolerance: { type: \"number\", default: 0.375 }, cluster: { type: \"boolean\", default: false }, clusterRadius: { type: \"number\", default: 50, minimum: 0 }, clusterMaxZoom: { type: \"number\" }, clusterMinPoints: { type: \"number\" }, clusterProperties: { type: \"*\" }, lineMetrics: { type: \"boolean\", default: false }, generateId: { type: \"boolean\", default: false }, promoteId: { type: \"promoteId\" } }, source_video: { type: { required: true, type: \"enum\", values: { video: {} } }, urls: { required: true, type: \"array\", value: \"string\" }, coordinates: { required: true, type: \"array\", length: 4, value: { type: \"array\", length: 2, value: \"number\" } } }, source_image: { type: { required: true, type: \"enum\", values: { image: {} } }, url: { required: true, type: \"string\" }, coordinates: { required: true, type: \"array\", length: 4, value: { type: \"array\", length: 2, value: \"number\" } } }, layer: { id: { type: \"string\", required: true }, type: { type: \"enum\", values: { fill: {}, line: {}, symbol: {}, circle: {}, heatmap: {}, \"fill-extrusion\": {}, raster: {}, hillshade: {}, background: {} }, required: true }, metadata: { type: \"*\" }, source: { type: \"string\" }, \"source-layer\": { type: \"string\" }, minzoom: { type: \"number\", minimum: 0, maximum: 24 }, maxzoom: { type: \"number\", minimum: 0, maximum: 24 }, filter: { type: \"filter\" }, layout: { type: \"layout\" }, paint: { type: \"paint\" } }, layout: [\"layout_fill\", \"layout_line\", \"layout_circle\", \"layout_heatmap\", \"layout_fill-extrusion\", \"layout_symbol\", \"layout_raster\", \"layout_hillshade\", \"layout_background\"], layout_background: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_fill: { \"fill-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_circle: { \"circle-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_heatmap: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, \"layout_fill-extrusion\": { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_line: { \"line-cap\": { type: \"enum\", values: { butt: {}, round: {}, square: {} }, default: \"butt\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-join\": { type: \"enum\", values: { bevel: {}, round: {}, miter: {} }, default: \"miter\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"line-miter-limit\": { type: \"number\", default: 2, requires: [{ \"line-join\": \"miter\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-round-limit\": { type: \"number\", default: 1.05, requires: [{ \"line-join\": \"round\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_symbol: { \"symbol-placement\": { type: \"enum\", values: { point: {}, line: {}, \"line-center\": {} }, default: \"point\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"symbol-spacing\": { type: \"number\", default: 250, minimum: 1, units: \"pixels\", requires: [{ \"symbol-placement\": \"line\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"symbol-avoid-edges\": { type: \"boolean\", default: false, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"symbol-sort-key\": { type: \"number\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"symbol-z-order\": { type: \"enum\", values: { auto: {}, \"viewport-y\": {}, source: {} }, default: \"auto\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-allow-overlap\": { type: \"boolean\", default: false, requires: [\"icon-image\", { \"!\": \"icon-overlap\" }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-overlap\": { type: \"enum\", values: { never: {}, always: {}, cooperative: {} }, requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-ignore-placement\": { type: \"boolean\", default: false, requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-optional\": { type: \"boolean\", default: false, requires: [\"icon-image\", \"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-rotation-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, auto: {} }, default: \"auto\", requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-size\": { type: \"number\", default: 1, minimum: 0, units: \"factor of the original icon size\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-text-fit\": { type: \"enum\", values: { none: {}, width: {}, height: {}, both: {} }, default: \"none\", requires: [\"icon-image\", \"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-text-fit-padding\": { type: \"array\", value: \"number\", length: 4, default: [0, 0, 0, 0], units: \"pixels\", requires: [\"icon-image\", \"text-field\", { \"icon-text-fit\": [\"both\", \"width\", \"height\"] }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-image\": { type: \"resolvedImage\", tokens: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-rotate\": { type: \"number\", default: 0, period: 360, units: \"degrees\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-padding\": { type: \"padding\", default: [2], units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-keep-upright\": { type: \"boolean\", default: false, requires: [\"icon-image\", { \"icon-rotation-alignment\": \"map\" }, { \"symbol-placement\": [\"line\", \"line-center\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-offset\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-anchor\": { type: \"enum\", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, \"top-left\": {}, \"top-right\": {}, \"bottom-left\": {}, \"bottom-right\": {} }, default: \"center\", requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"icon-pitch-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, auto: {} }, default: \"auto\", requires: [\"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-pitch-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, auto: {} }, default: \"auto\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-rotation-alignment\": { type: \"enum\", values: { map: {}, viewport: {}, \"viewport-glyph\": {}, auto: {} }, default: \"auto\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-field\": { type: \"formatted\", default: \"\", tokens: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-font\": { type: \"array\", value: \"string\", default: [\"Open Sans Regular\", \"Arial Unicode MS Regular\"], requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-size\": { type: \"number\", default: 16, minimum: 0, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-max-width\": { type: \"number\", default: 10, minimum: 0, units: \"ems\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-line-height\": { type: \"number\", default: 1.2, units: \"ems\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-letter-spacing\": { type: \"number\", default: 0, units: \"ems\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-justify\": { type: \"enum\", values: { auto: {}, left: {}, center: {}, right: {} }, default: \"center\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-radial-offset\": { type: \"number\", units: \"ems\", default: 0, requires: [\"text-field\"], \"property-type\": \"data-driven\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] } }, \"text-variable-anchor\": { type: \"array\", value: \"enum\", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, \"top-left\": {}, \"top-right\": {}, \"bottom-left\": {}, \"bottom-right\": {} }, requires: [\"text-field\", { \"symbol-placement\": [\"point\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-variable-anchor-offset\": { type: \"variableAnchorOffsetCollection\", requires: [\"text-field\", { \"symbol-placement\": [\"point\"] }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-anchor\": { type: \"enum\", values: { center: {}, left: {}, right: {}, top: {}, bottom: {}, \"top-left\": {}, \"top-right\": {}, \"bottom-left\": {}, \"bottom-right\": {} }, default: \"center\", requires: [\"text-field\", { \"!\": \"text-variable-anchor\" }], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-max-angle\": { type: \"number\", default: 45, units: \"degrees\", requires: [\"text-field\", { \"symbol-placement\": [\"line\", \"line-center\"] }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-writing-mode\": { type: \"array\", value: \"enum\", values: { horizontal: {}, vertical: {} }, requires: [\"text-field\", { \"symbol-placement\": [\"point\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-rotate\": { type: \"number\", default: 0, period: 360, units: \"degrees\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-padding\": { type: \"number\", default: 2, minimum: 0, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-keep-upright\": { type: \"boolean\", default: true, requires: [\"text-field\", { \"text-rotation-alignment\": \"map\" }, { \"symbol-placement\": [\"line\", \"line-center\"] }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-transform\": { type: \"enum\", values: { none: {}, uppercase: {}, lowercase: {} }, default: \"none\", requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-offset\": { type: \"array\", value: \"number\", units: \"ems\", length: 2, default: [0, 0], requires: [\"text-field\", { \"!\": \"text-radial-offset\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"data-driven\" }, \"text-allow-overlap\": { type: \"boolean\", default: false, requires: [\"text-field\", { \"!\": \"text-overlap\" }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-overlap\": { type: \"enum\", values: { never: {}, always: {}, cooperative: {} }, requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-ignore-placement\": { type: \"boolean\", default: false, requires: [\"text-field\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-optional\": { type: \"boolean\", default: false, requires: [\"text-field\", \"icon-image\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_raster: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, layout_hillshade: { visibility: { type: \"enum\", values: { visible: {}, none: {} }, default: \"visible\", \"property-type\": \"constant\" } }, filter: { type: \"array\", value: \"*\" }, filter_operator: { type: \"enum\", values: { \"==\": {}, \"!=\": {}, \">\": {}, \">=\": {}, \"<\": {}, \"<=\": {}, in: {}, \"!in\": {}, all: {}, any: {}, none: {}, has: {}, \"!has\": {} } }, geometry_type: { type: \"enum\", values: { Point: {}, LineString: {}, Polygon: {} } }, function: { expression: { type: \"expression\" }, stops: { type: \"array\", value: \"function_stop\" }, base: { type: \"number\", default: 1, minimum: 0 }, property: { type: \"string\", default: \"$zoom\" }, type: { type: \"enum\", values: { identity: {}, exponential: {}, interval: {}, categorical: {} }, default: \"exponential\" }, colorSpace: { type: \"enum\", values: { rgb: {}, lab: {}, hcl: {} }, default: \"rgb\" }, default: { type: \"*\", required: false } }, function_stop: { type: \"array\", minimum: 0, maximum: 24, value: [\"number\", \"color\"], length: 2 }, expression: { type: \"array\", value: \"*\", minimum: 1 }, light: { anchor: { type: \"enum\", default: \"viewport\", values: { map: {}, viewport: {} }, \"property-type\": \"data-constant\", transition: false, expression: { interpolated: false, parameters: [\"zoom\"] } }, position: { type: \"array\", default: [1.15, 210, 30], length: 3, value: \"number\", \"property-type\": \"data-constant\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] } }, color: { type: \"color\", \"property-type\": \"data-constant\", default: \"#ffffff\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, intensity: { type: \"number\", \"property-type\": \"data-constant\", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true } }, sky: { \"sky-color\": { type: \"color\", \"property-type\": \"data-constant\", default: \"#88C6FC\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"horizon-color\": { type: \"color\", \"property-type\": \"data-constant\", default: \"#ffffff\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"fog-color\": { type: \"color\", \"property-type\": \"data-constant\", default: \"#ffffff\", expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"fog-ground-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.5, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"horizon-fog-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"sky-horizon-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true }, \"atmosphere-blend\": { type: \"number\", \"property-type\": \"data-constant\", default: 0.8, minimum: 0, maximum: 1, expression: { interpolated: true, parameters: [\"zoom\"] }, transition: true } }, terrain: { source: { type: \"string\", required: true }, exaggeration: { type: \"number\", minimum: 0, default: 1 } }, projection: { type: { type: \"enum\", default: \"mercator\", values: { mercator: {}, globe: {} } } }, paint: [\"paint_fill\", \"paint_line\", \"paint_circle\", \"paint_heatmap\", \"paint_fill-extrusion\", \"paint_symbol\", \"paint_raster\", \"paint_hillshade\", \"paint_background\"], paint_fill: { \"fill-antialias\": { type: \"boolean\", default: true, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"fill-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-outline-color\": { type: \"color\", transition: true, requires: [{ \"!\": \"fill-pattern\" }, { \"fill-antialias\": true }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"fill-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"cross-faded-data-driven\" } }, \"paint_fill-extrusion\": { \"fill-extrusion-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-extrusion-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"fill-extrusion-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-extrusion-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-extrusion-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"fill-extrusion-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"fill-extrusion-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"cross-faded-data-driven\" }, \"fill-extrusion-height\": { type: \"number\", default: 0, minimum: 0, units: \"meters\", transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-extrusion-base\": { type: \"number\", default: 0, minimum: 0, units: \"meters\", transition: true, requires: [\"fill-extrusion-height\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"fill-extrusion-vertical-gradient\": { type: \"boolean\", default: true, transition: false, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_line: { \"line-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"line-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"line-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"line-width\": { type: \"number\", default: 1, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-gap-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-offset\": { type: \"number\", default: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-blur\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"line-dasharray\": { type: \"array\", value: \"number\", minimum: 0, transition: true, units: \"line widths\", requires: [{ \"!\": \"line-pattern\" }], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"cross-faded\" }, \"line-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] }, \"property-type\": \"cross-faded-data-driven\" }, \"line-gradient\": { type: \"color\", transition: false, requires: [{ \"!\": \"line-dasharray\" }, { \"!\": \"line-pattern\" }, { source: \"geojson\", has: { lineMetrics: true } }], expression: { interpolated: true, parameters: [\"line-progress\"] }, \"property-type\": \"color-ramp\" } }, paint_circle: { \"circle-radius\": { type: \"number\", default: 5, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-blur\": { type: \"number\", default: 0, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"circle-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-pitch-scale\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-pitch-alignment\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"viewport\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"circle-stroke-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-stroke-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"circle-stroke-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" } }, paint_heatmap: { \"heatmap-radius\": { type: \"number\", default: 30, minimum: 1, transition: true, units: \"pixels\", expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"heatmap-weight\": { type: \"number\", default: 1, minimum: 0, transition: false, expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"heatmap-intensity\": { type: \"number\", default: 1, minimum: 0, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"heatmap-color\": { type: \"color\", default: [\"interpolate\", [\"linear\"], [\"heatmap-density\"], 0, \"rgba(0, 0, 255, 0)\", 0.1, \"royalblue\", 0.3, \"cyan\", 0.5, \"lime\", 0.7, \"yellow\", 1, \"red\"], transition: false, expression: { interpolated: true, parameters: [\"heatmap-density\"] }, \"property-type\": \"color-ramp\" }, \"heatmap-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_symbol: { \"icon-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-halo-color\": { type: \"color\", default: \"rgba(0, 0, 0, 0)\", transition: true, requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-halo-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-halo-blur\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"icon-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", requires: [\"icon-image\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"icon-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"icon-image\", \"icon-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-color\": { type: \"color\", default: \"#000000\", transition: true, overridable: true, requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-halo-color\": { type: \"color\", default: \"rgba(0, 0, 0, 0)\", transition: true, requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-halo-width\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-halo-blur\": { type: \"number\", default: 0, minimum: 0, transition: true, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\", \"feature\", \"feature-state\"] }, \"property-type\": \"data-driven\" }, \"text-translate\": { type: \"array\", value: \"number\", length: 2, default: [0, 0], transition: true, units: \"pixels\", requires: [\"text-field\"], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"text-translate-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"map\", requires: [\"text-field\", \"text-translate\"], expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_raster: { \"raster-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-hue-rotate\": { type: \"number\", default: 0, period: 360, transition: true, units: \"degrees\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-brightness-min\": { type: \"number\", default: 0, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-brightness-max\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-saturation\": { type: \"number\", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-contrast\": { type: \"number\", default: 0, minimum: -1, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-resampling\": { type: \"enum\", values: { linear: {}, nearest: {} }, default: \"linear\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"raster-fade-duration\": { type: \"number\", default: 300, minimum: 0, transition: false, units: \"milliseconds\", expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_hillshade: { \"hillshade-illumination-direction\": { type: \"number\", default: 335, minimum: 0, maximum: 359, transition: false, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-illumination-anchor\": { type: \"enum\", values: { map: {}, viewport: {} }, default: \"viewport\", expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-exaggeration\": { type: \"number\", default: 0.5, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-shadow-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-highlight-color\": { type: \"color\", default: \"#FFFFFF\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"hillshade-accent-color\": { type: \"color\", default: \"#000000\", transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, paint_background: { \"background-color\": { type: \"color\", default: \"#000000\", transition: true, requires: [{ \"!\": \"background-pattern\" }], expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" }, \"background-pattern\": { type: \"resolvedImage\", transition: true, expression: { interpolated: false, parameters: [\"zoom\"] }, \"property-type\": \"cross-faded\" }, \"background-opacity\": { type: \"number\", default: 1, minimum: 0, maximum: 1, transition: true, expression: { interpolated: true, parameters: [\"zoom\"] }, \"property-type\": \"data-constant\" } }, transition: { duration: { type: \"number\", default: 300, minimum: 0, units: \"milliseconds\" }, delay: { type: \"number\", default: 0, minimum: 0, units: \"milliseconds\" } }, \"property-type\": { \"data-driven\": { type: \"property-type\" }, \"cross-faded\": { type: \"property-type\" }, \"cross-faded-data-driven\": { type: \"property-type\" }, \"color-ramp\": { type: \"property-type\" }, \"data-constant\": { type: \"property-type\" }, constant: { type: \"property-type\" } }, promoteId: { \"*\": { type: \"string\" } } };\n const K2 = [\"type\", \"source\", \"source-layer\", \"minzoom\", \"maxzoom\", \"filter\", \"layout\"];\n function X(t4, e2) {\n const r2 = {};\n for (const e3 in t4) \"ref\" !== e3 && (r2[e3] = t4[e3]);\n return K2.forEach((t5) => {\n t5 in e2 && (r2[t5] = e2[t5]);\n }), r2;\n }\n function H(t4, e2) {\n if (Array.isArray(t4)) {\n if (!Array.isArray(e2) || t4.length !== e2.length) return false;\n for (let r2 = 0; r2 < t4.length; r2++) if (!H(t4[r2], e2[r2])) return false;\n return true;\n }\n if (\"object\" == typeof t4 && null !== t4 && null !== e2) {\n if (\"object\" != typeof e2) return false;\n if (Object.keys(t4).length !== Object.keys(e2).length) return false;\n for (const r2 in t4) if (!H(t4[r2], e2[r2])) return false;\n return true;\n }\n return t4 === e2;\n }\n function Y(t4, e2) {\n t4.push(e2);\n }\n function J(t4, e2, r2) {\n Y(r2, { command: \"addSource\", args: [t4, e2[t4]] });\n }\n function W(t4, e2, r2) {\n Y(e2, { command: \"removeSource\", args: [t4] }), r2[t4] = true;\n }\n function Q(t4, e2, r2, n2) {\n W(t4, r2, n2), J(t4, e2, r2);\n }\n function tt(t4, e2, r2) {\n let n2;\n for (n2 in t4[r2]) if (Object.prototype.hasOwnProperty.call(t4[r2], n2) && \"data\" !== n2 && !H(t4[r2][n2], e2[r2][n2])) return false;\n for (n2 in e2[r2]) if (Object.prototype.hasOwnProperty.call(e2[r2], n2) && \"data\" !== n2 && !H(t4[r2][n2], e2[r2][n2])) return false;\n return true;\n }\n function et(t4, e2, r2, n2, i2, s2) {\n t4 = t4 || {}, e2 = e2 || {};\n for (const a2 in t4) Object.prototype.hasOwnProperty.call(t4, a2) && (H(t4[a2], e2[a2]) || r2.push({ command: s2, args: [n2, a2, e2[a2], i2] }));\n for (const a2 in e2) Object.prototype.hasOwnProperty.call(e2, a2) && !Object.prototype.hasOwnProperty.call(t4, a2) && (H(t4[a2], e2[a2]) || r2.push({ command: s2, args: [n2, a2, e2[a2], i2] }));\n }\n function rt(t4) {\n return t4.id;\n }\n function nt(t4, e2) {\n return t4[e2.id] = e2, t4;\n }\n class it {\n constructor(t4, e2, r2, n2) {\n this.message = (t4 ? `${t4}: ` : \"\") + r2, n2 && (this.identifier = n2), null != e2 && e2.__line__ && (this.line = e2.__line__);\n }\n }\n function st(t4, ...e2) {\n for (const r2 of e2) for (const e3 in r2) t4[e3] = r2[e3];\n return t4;\n }\n class at extends Error {\n constructor(t4, e2) {\n super(e2), this.message = e2, this.key = t4;\n }\n }\n class ot {\n constructor(t4, e2 = []) {\n this.parent = t4, this.bindings = {};\n for (const [t5, r2] of e2) this.bindings[t5] = r2;\n }\n concat(t4) {\n return new ot(this, t4);\n }\n get(t4) {\n if (this.bindings[t4]) return this.bindings[t4];\n if (this.parent) return this.parent.get(t4);\n throw new Error(`${t4} not found in scope.`);\n }\n has(t4) {\n return !!this.bindings[t4] || !!this.parent && this.parent.has(t4);\n }\n }\n const lt = { kind: \"null\" }, ut = { kind: \"number\" }, ct = { kind: \"string\" }, ht = { kind: \"boolean\" }, pt = { kind: \"color\" }, ft = { kind: \"object\" }, dt = { kind: \"value\" }, yt = { kind: \"collator\" }, mt = { kind: \"formatted\" }, gt = { kind: \"padding\" }, xt = { kind: \"resolvedImage\" }, vt = { kind: \"variableAnchorOffsetCollection\" };\n function bt(t4, e2) {\n return { kind: \"array\", itemType: t4, N: e2 };\n }\n function wt(t4) {\n if (\"array\" === t4.kind) {\n const e2 = wt(t4.itemType);\n return \"number\" == typeof t4.N ? `array<${e2}, ${t4.N}>` : \"value\" === t4.itemType.kind ? \"array\" : `array<${e2}>`;\n }\n return t4.kind;\n }\n const _t = [lt, ut, ct, ht, pt, mt, ft, bt(dt), gt, xt, vt];\n function At(t4, e2) {\n if (\"error\" === e2.kind) return null;\n if (\"array\" === t4.kind) {\n if (\"array\" === e2.kind && (0 === e2.N && \"value\" === e2.itemType.kind || !At(t4.itemType, e2.itemType)) && (\"number\" != typeof t4.N || t4.N === e2.N)) return null;\n } else {\n if (t4.kind === e2.kind) return null;\n if (\"value\" === t4.kind) {\n for (const t5 of _t) if (!At(t5, e2)) return null;\n }\n }\n return `Expected ${wt(t4)} but found ${wt(e2)} instead.`;\n }\n function St(t4, e2) {\n return e2.some((e3) => e3.kind === t4.kind);\n }\n function kt(t4, e2) {\n return e2.some((e3) => \"null\" === e3 ? null === t4 : \"array\" === e3 ? Array.isArray(t4) : \"object\" === e3 ? t4 && !Array.isArray(t4) && \"object\" == typeof t4 : e3 === typeof t4);\n }\n function Mt(t4, e2) {\n return \"array\" === t4.kind && \"array\" === e2.kind ? t4.itemType.kind === e2.itemType.kind && \"number\" == typeof t4.N : t4.kind === e2.kind;\n }\n const It = 0.96422, zt = 0.82521, Pt = 4 / 29, Ct = 6 / 29, Bt = 3 * Ct * Ct, Vt = Ct * Ct * Ct, Et = Math.PI / 180, Ft = 180 / Math.PI;\n function Tt(t4) {\n return (t4 %= 360) < 0 && (t4 += 360), t4;\n }\n function $t([t4, e2, r2, n2]) {\n let i2, s2;\n const a2 = Dt((0.2225045 * (t4 = Lt(t4)) + 0.7168786 * (e2 = Lt(e2)) + 0.0606169 * (r2 = Lt(r2))) / 1);\n t4 === e2 && e2 === r2 ? i2 = s2 = a2 : (i2 = Dt((0.4360747 * t4 + 0.3850649 * e2 + 0.1430804 * r2) / It), s2 = Dt((0.0139322 * t4 + 0.0971045 * e2 + 0.7141733 * r2) / zt));\n const o2 = 116 * a2 - 16;\n return [o2 < 0 ? 0 : o2, 500 * (i2 - a2), 200 * (a2 - s2), n2];\n }\n function Lt(t4) {\n return t4 <= 0.04045 ? t4 / 12.92 : Math.pow((t4 + 0.055) / 1.055, 2.4);\n }\n function Dt(t4) {\n return t4 > Vt ? Math.pow(t4, 1 / 3) : t4 / Bt + Pt;\n }\n function Ot([t4, e2, r2, n2]) {\n let i2 = (t4 + 16) / 116, s2 = isNaN(e2) ? i2 : i2 + e2 / 500, a2 = isNaN(r2) ? i2 : i2 - r2 / 200;\n return i2 = 1 * Rt(i2), s2 = It * Rt(s2), a2 = zt * Rt(a2), [jt(3.1338561 * s2 - 1.6168667 * i2 - 0.4906146 * a2), jt(-0.9787684 * s2 + 1.9161415 * i2 + 0.033454 * a2), jt(0.0719453 * s2 - 0.2289914 * i2 + 1.4052427 * a2), n2];\n }\n function jt(t4) {\n return (t4 = t4 <= 304e-5 ? 12.92 * t4 : 1.055 * Math.pow(t4, 1 / 2.4) - 0.055) < 0 ? 0 : t4 > 1 ? 1 : t4;\n }\n function Rt(t4) {\n return t4 > Ct ? t4 * t4 * t4 : Bt * (t4 - Pt);\n }\n function Ut(t4) {\n return parseInt(t4.padEnd(2, t4), 16) / 255;\n }\n function qt(t4, e2) {\n return Nt(e2 ? t4 / 100 : t4, 0, 1);\n }\n function Nt(t4, e2, r2) {\n return Math.min(Math.max(e2, t4), r2);\n }\n function Zt(t4) {\n return !t4.some(Number.isNaN);\n }\n const Gt = { aliceblue: [240, 248, 255], antiquewhite: [250, 235, 215], aqua: [0, 255, 255], aquamarine: [127, 255, 212], azure: [240, 255, 255], beige: [245, 245, 220], bisque: [255, 228, 196], black: [0, 0, 0], blanchedalmond: [255, 235, 205], blue: [0, 0, 255], blueviolet: [138, 43, 226], brown: [165, 42, 42], burlywood: [222, 184, 135], cadetblue: [95, 158, 160], chartreuse: [127, 255, 0], chocolate: [210, 105, 30], coral: [255, 127, 80], cornflowerblue: [100, 149, 237], cornsilk: [255, 248, 220], crimson: [220, 20, 60], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgoldenrod: [184, 134, 11], darkgray: [169, 169, 169], darkgreen: [0, 100, 0], darkgrey: [169, 169, 169], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkseagreen: [143, 188, 143], darkslateblue: [72, 61, 139], darkslategray: [47, 79, 79], darkslategrey: [47, 79, 79], darkturquoise: [0, 206, 209], darkviolet: [148, 0, 211], deeppink: [255, 20, 147], deepskyblue: [0, 191, 255], dimgray: [105, 105, 105], dimgrey: [105, 105, 105], dodgerblue: [30, 144, 255], firebrick: [178, 34, 34], floralwhite: [255, 250, 240], forestgreen: [34, 139, 34], fuchsia: [255, 0, 255], gainsboro: [220, 220, 220], ghostwhite: [248, 248, 255], gold: [255, 215, 0], goldenrod: [218, 165, 32], gray: [128, 128, 128], green: [0, 128, 0], greenyellow: [173, 255, 47], grey: [128, 128, 128], honeydew: [240, 255, 240], hotpink: [255, 105, 180], indianred: [205, 92, 92], indigo: [75, 0, 130], ivory: [255, 255, 240], khaki: [240, 230, 140], lavender: [230, 230, 250], lavenderblush: [255, 240, 245], lawngreen: [124, 252, 0], lemonchiffon: [255, 250, 205], lightblue: [173, 216, 230], lightcoral: [240, 128, 128], lightcyan: [224, 255, 255], lightgoldenrodyellow: [250, 250, 210], lightgray: [211, 211, 211], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightsalmon: [255, 160, 122], lightseagreen: [32, 178, 170], lightskyblue: [135, 206, 250], lightslategray: [119, 136, 153], lightslategrey: [119, 136, 153], lightsteelblue: [176, 196, 222], lightyellow: [255, 255, 224], lime: [0, 255, 0], limegreen: [50, 205, 50], linen: [250, 240, 230], magenta: [255, 0, 255], maroon: [128, 0, 0], mediumaquamarine: [102, 205, 170], mediumblue: [0, 0, 205], mediumorchid: [186, 85, 211], mediumpurple: [147, 112, 219], mediumseagreen: [60, 179, 113], mediumslateblue: [123, 104, 238], mediumspringgreen: [0, 250, 154], mediumturquoise: [72, 209, 204], mediumvioletred: [199, 21, 133], midnightblue: [25, 25, 112], mintcream: [245, 255, 250], mistyrose: [255, 228, 225], moccasin: [255, 228, 181], navajowhite: [255, 222, 173], navy: [0, 0, 128], oldlace: [253, 245, 230], olive: [128, 128, 0], olivedrab: [107, 142, 35], orange: [255, 165, 0], orangered: [255, 69, 0], orchid: [218, 112, 214], palegoldenrod: [238, 232, 170], palegreen: [152, 251, 152], paleturquoise: [175, 238, 238], palevioletred: [219, 112, 147], papayawhip: [255, 239, 213], peachpuff: [255, 218, 185], peru: [205, 133, 63], pink: [255, 192, 203], plum: [221, 160, 221], powderblue: [176, 224, 230], purple: [128, 0, 128], rebeccapurple: [102, 51, 153], red: [255, 0, 0], rosybrown: [188, 143, 143], royalblue: [65, 105, 225], saddlebrown: [139, 69, 19], salmon: [250, 128, 114], sandybrown: [244, 164, 96], seagreen: [46, 139, 87], seashell: [255, 245, 238], sienna: [160, 82, 45], silver: [192, 192, 192], skyblue: [135, 206, 235], slateblue: [106, 90, 205], slategray: [112, 128, 144], slategrey: [112, 128, 144], snow: [255, 250, 250], springgreen: [0, 255, 127], steelblue: [70, 130, 180], tan: [210, 180, 140], teal: [0, 128, 128], thistle: [216, 191, 216], tomato: [255, 99, 71], turquoise: [64, 224, 208], violet: [238, 130, 238], wheat: [245, 222, 179], white: [255, 255, 255], whitesmoke: [245, 245, 245], yellow: [255, 255, 0], yellowgreen: [154, 205, 50] };\n class Kt {\n constructor(t4, e2, r2, n2 = 1, i2 = true) {\n this.r = t4, this.g = e2, this.b = r2, this.a = n2, i2 || (this.r *= n2, this.g *= n2, this.b *= n2, n2 || this.overwriteGetter(\"rgb\", [t4, e2, r2, n2]));\n }\n static parse(t4) {\n if (t4 instanceof Kt) return t4;\n if (\"string\" != typeof t4) return;\n const e2 = function(t5) {\n if (\"transparent\" === (t5 = t5.toLowerCase().trim())) return [0, 0, 0, 0];\n const e3 = Gt[t5];\n if (e3) {\n const [t6, r3, n2] = e3;\n return [t6 / 255, r3 / 255, n2 / 255, 1];\n }\n if (t5.startsWith(\"#\") && /^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(t5)) {\n const e4 = t5.length < 6 ? 1 : 2;\n let r3 = 1;\n return [Ut(t5.slice(r3, r3 += e4)), Ut(t5.slice(r3, r3 += e4)), Ut(t5.slice(r3, r3 += e4)), Ut(t5.slice(r3, r3 + e4) || \"ff\")];\n }\n if (t5.startsWith(\"rgb\")) {\n const e4 = t5.match(/^rgba?\\(\\s*([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)(%)?(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);\n if (e4) {\n const [t6, r3, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2] = e4, f2 = [i2 || \" \", o2 || \" \", c2].join(\"\");\n if (\" \" === f2 || \" /\" === f2 || \",,\" === f2 || \",,,\" === f2) {\n const t7 = [n2, a2, u2].join(\"\"), e5 = \"%%%\" === t7 ? 100 : \"\" === t7 ? 255 : 0;\n if (e5) {\n const t8 = [Nt(+r3 / e5, 0, 1), Nt(+s2 / e5, 0, 1), Nt(+l2 / e5, 0, 1), h2 ? qt(+h2, p2) : 1];\n if (Zt(t8)) return t8;\n }\n }\n return;\n }\n }\n const r2 = t5.match(/^hsla?\\(\\s*([\\de.+-]+)(?:deg)?(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s+|\\s*(,)\\s*)([\\de.+-]+)%(?:\\s*([,\\/])\\s*([\\de.+-]+)(%)?)?\\s*\\)$/);\n if (r2) {\n const [t6, e4, n2, i2, s2, a2, o2, l2, u2] = r2, c2 = [n2 || \" \", s2 || \" \", o2].join(\"\");\n if (\" \" === c2 || \" /\" === c2 || \",,\" === c2 || \",,,\" === c2) {\n const t7 = [+e4, Nt(+i2, 0, 100), Nt(+a2, 0, 100), l2 ? qt(+l2, u2) : 1];\n if (Zt(t7)) return function([t8, e5, r3, n3]) {\n function i3(n4) {\n const i4 = (n4 + t8 / 30) % 12, s3 = e5 * Math.min(r3, 1 - r3);\n return r3 - s3 * Math.max(-1, Math.min(i4 - 3, 9 - i4, 1));\n }\n return t8 = Tt(t8), e5 /= 100, r3 /= 100, [i3(0), i3(8), i3(4), n3];\n }(t7);\n }\n }\n }(t4);\n return e2 ? new Kt(...e2, false) : void 0;\n }\n get rgb() {\n const { r: t4, g: e2, b: r2, a: n2 } = this, i2 = n2 || 1 / 0;\n return this.overwriteGetter(\"rgb\", [t4 / i2, e2 / i2, r2 / i2, n2]);\n }\n get hcl() {\n return this.overwriteGetter(\"hcl\", function(t4) {\n const [e2, r2, n2, i2] = $t(t4), s2 = Math.sqrt(r2 * r2 + n2 * n2);\n return [Math.round(1e4 * s2) ? Tt(Math.atan2(n2, r2) * Ft) : NaN, s2, e2, i2];\n }(this.rgb));\n }\n get lab() {\n return this.overwriteGetter(\"lab\", $t(this.rgb));\n }\n overwriteGetter(t4, e2) {\n return Object.defineProperty(this, t4, { value: e2 }), e2;\n }\n toString() {\n const [t4, e2, r2, n2] = this.rgb;\n return `rgba(${[t4, e2, r2].map((t5) => Math.round(255 * t5)).join(\",\")},${n2})`;\n }\n }\n Kt.black = new Kt(0, 0, 0, 1), Kt.white = new Kt(1, 1, 1, 1), Kt.transparent = new Kt(0, 0, 0, 0), Kt.red = new Kt(1, 0, 0, 1);\n class Xt {\n constructor(t4, e2, r2) {\n this.sensitivity = t4 ? e2 ? \"variant\" : \"case\" : e2 ? \"accent\" : \"base\", this.locale = r2, this.collator = new Intl.Collator(this.locale ? this.locale : [], { sensitivity: this.sensitivity, usage: \"search\" });\n }\n compare(t4, e2) {\n return this.collator.compare(t4, e2);\n }\n resolvedLocale() {\n return new Intl.Collator(this.locale ? this.locale : []).resolvedOptions().locale;\n }\n }\n class Ht {\n constructor(t4, e2, r2, n2, i2) {\n this.text = t4, this.image = e2, this.scale = r2, this.fontStack = n2, this.textColor = i2;\n }\n }\n class Yt {\n constructor(t4) {\n this.sections = t4;\n }\n static fromString(t4) {\n return new Yt([new Ht(t4, null, null, null, null)]);\n }\n isEmpty() {\n return 0 === this.sections.length || !this.sections.some((t4) => 0 !== t4.text.length || t4.image && 0 !== t4.image.name.length);\n }\n static factory(t4) {\n return t4 instanceof Yt ? t4 : Yt.fromString(t4);\n }\n toString() {\n return 0 === this.sections.length ? \"\" : this.sections.map((t4) => t4.text).join(\"\");\n }\n }\n class Jt {\n constructor(t4) {\n this.values = t4.slice();\n }\n static parse(t4) {\n if (t4 instanceof Jt) return t4;\n if (\"number\" == typeof t4) return new Jt([t4, t4, t4, t4]);\n if (Array.isArray(t4) && !(t4.length < 1 || t4.length > 4)) {\n for (const e2 of t4) if (\"number\" != typeof e2) return;\n switch (t4.length) {\n case 1:\n t4 = [t4[0], t4[0], t4[0], t4[0]];\n break;\n case 2:\n t4 = [t4[0], t4[1], t4[0], t4[1]];\n break;\n case 3:\n t4 = [t4[0], t4[1], t4[2], t4[1]];\n }\n return new Jt(t4);\n }\n }\n toString() {\n return JSON.stringify(this.values);\n }\n }\n const Wt = /* @__PURE__ */ new Set([\"center\", \"left\", \"right\", \"top\", \"bottom\", \"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\"]);\n class Qt {\n constructor(t4) {\n this.values = t4.slice();\n }\n static parse(t4) {\n if (t4 instanceof Qt) return t4;\n if (Array.isArray(t4) && !(t4.length < 1) && t4.length % 2 == 0) {\n for (let e2 = 0; e2 < t4.length; e2 += 2) {\n const r2 = t4[e2], n2 = t4[e2 + 1];\n if (\"string\" != typeof r2 || !Wt.has(r2)) return;\n if (!Array.isArray(n2) || 2 !== n2.length || \"number\" != typeof n2[0] || \"number\" != typeof n2[1]) return;\n }\n return new Qt(t4);\n }\n }\n toString() {\n return JSON.stringify(this.values);\n }\n }\n class te {\n constructor(t4) {\n this.name = t4.name, this.available = t4.available;\n }\n toString() {\n return this.name;\n }\n static fromString(t4) {\n return t4 ? new te({ name: t4, available: false }) : null;\n }\n }\n function ee(t4, e2, r2, n2) {\n return \"number\" == typeof t4 && t4 >= 0 && t4 <= 255 && \"number\" == typeof e2 && e2 >= 0 && e2 <= 255 && \"number\" == typeof r2 && r2 >= 0 && r2 <= 255 ? void 0 === n2 || \"number\" == typeof n2 && n2 >= 0 && n2 <= 1 ? null : `Invalid rgba value [${[t4, e2, r2, n2].join(\", \")}]: 'a' must be between 0 and 1.` : `Invalid rgba value [${(\"number\" == typeof n2 ? [t4, e2, r2, n2] : [t4, e2, r2]).join(\", \")}]: 'r', 'g', and 'b' must be between 0 and 255.`;\n }\n function re(t4) {\n if (null === t4 || \"string\" == typeof t4 || \"boolean\" == typeof t4 || \"number\" == typeof t4 || t4 instanceof Kt || t4 instanceof Xt || t4 instanceof Yt || t4 instanceof Jt || t4 instanceof Qt || t4 instanceof te) return true;\n if (Array.isArray(t4)) {\n for (const e2 of t4) if (!re(e2)) return false;\n return true;\n }\n if (\"object\" == typeof t4) {\n for (const e2 in t4) if (!re(t4[e2])) return false;\n return true;\n }\n return false;\n }\n function ne(t4) {\n if (null === t4) return lt;\n if (\"string\" == typeof t4) return ct;\n if (\"boolean\" == typeof t4) return ht;\n if (\"number\" == typeof t4) return ut;\n if (t4 instanceof Kt) return pt;\n if (t4 instanceof Xt) return yt;\n if (t4 instanceof Yt) return mt;\n if (t4 instanceof Jt) return gt;\n if (t4 instanceof Qt) return vt;\n if (t4 instanceof te) return xt;\n if (Array.isArray(t4)) {\n const e2 = t4.length;\n let r2;\n for (const e3 of t4) {\n const t5 = ne(e3);\n if (r2) {\n if (r2 === t5) continue;\n r2 = dt;\n break;\n }\n r2 = t5;\n }\n return bt(r2 || dt, e2);\n }\n return ft;\n }\n function ie(t4) {\n const e2 = typeof t4;\n return null === t4 ? \"\" : \"string\" === e2 || \"number\" === e2 || \"boolean\" === e2 ? String(t4) : t4 instanceof Kt || t4 instanceof Yt || t4 instanceof Jt || t4 instanceof Qt || t4 instanceof te ? t4.toString() : JSON.stringify(t4);\n }\n class se {\n constructor(t4, e2) {\n this.type = t4, this.value = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`'literal' expression requires exactly one argument, but found ${t4.length - 1} instead.`);\n if (!re(t4[1])) return e2.error(\"invalid value\");\n const r2 = t4[1];\n let n2 = ne(r2);\n const i2 = e2.expectedType;\n return \"array\" !== n2.kind || 0 !== n2.N || !i2 || \"array\" !== i2.kind || \"number\" == typeof i2.N && 0 !== i2.N || (n2 = i2), new se(n2, r2);\n }\n evaluate() {\n return this.value;\n }\n eachChild() {\n }\n outputDefined() {\n return true;\n }\n }\n class ae {\n constructor(t4) {\n this.name = \"ExpressionEvaluationError\", this.message = t4;\n }\n toJSON() {\n return this.message;\n }\n }\n const oe = { string: ct, number: ut, boolean: ht, object: ft };\n class le {\n constructor(t4, e2) {\n this.type = t4, this.args = e2;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expected at least one argument.\");\n let r2, n2 = 1;\n const i2 = t4[0];\n if (\"array\" === i2) {\n let i3, s3;\n if (t4.length > 2) {\n const r3 = t4[1];\n if (\"string\" != typeof r3 || !(r3 in oe) || \"object\" === r3) return e2.error('The item type argument of \"array\" must be one of string, number, boolean', 1);\n i3 = oe[r3], n2++;\n } else i3 = dt;\n if (t4.length > 3) {\n if (null !== t4[2] && (\"number\" != typeof t4[2] || t4[2] < 0 || t4[2] !== Math.floor(t4[2]))) return e2.error('The length argument to \"array\" must be a positive integer literal', 2);\n s3 = t4[2], n2++;\n }\n r2 = bt(i3, s3);\n } else {\n if (!oe[i2]) throw new Error(`Types doesn't contain name = ${i2}`);\n r2 = oe[i2];\n }\n const s2 = [];\n for (; n2 < t4.length; n2++) {\n const r3 = e2.parse(t4[n2], n2, dt);\n if (!r3) return null;\n s2.push(r3);\n }\n return new le(r2, s2);\n }\n evaluate(t4) {\n for (let e2 = 0; e2 < this.args.length; e2++) {\n const r2 = this.args[e2].evaluate(t4);\n if (!At(this.type, ne(r2))) return r2;\n if (e2 === this.args.length - 1) throw new ae(`Expected value to be of type ${wt(this.type)}, but found ${wt(ne(r2))} instead.`);\n }\n throw new Error();\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return this.args.every((t4) => t4.outputDefined());\n }\n }\n const ue = { \"to-boolean\": ht, \"to-color\": pt, \"to-number\": ut, \"to-string\": ct };\n class ce {\n constructor(t4, e2) {\n this.type = t4, this.args = e2;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expected at least one argument.\");\n const r2 = t4[0];\n if (!ue[r2]) throw new Error(`Can't parse ${r2} as it is not part of the known types`);\n if ((\"to-boolean\" === r2 || \"to-string\" === r2) && 2 !== t4.length) return e2.error(\"Expected one argument.\");\n const n2 = ue[r2], i2 = [];\n for (let r3 = 1; r3 < t4.length; r3++) {\n const n3 = e2.parse(t4[r3], r3, dt);\n if (!n3) return null;\n i2.push(n3);\n }\n return new ce(n2, i2);\n }\n evaluate(t4) {\n switch (this.type.kind) {\n case \"boolean\":\n return Boolean(this.args[0].evaluate(t4));\n case \"color\": {\n let e2, r2;\n for (const n2 of this.args) {\n if (e2 = n2.evaluate(t4), r2 = null, e2 instanceof Kt) return e2;\n if (\"string\" == typeof e2) {\n const r3 = t4.parseColor(e2);\n if (r3) return r3;\n } else if (Array.isArray(e2) && (r2 = e2.length < 3 || e2.length > 4 ? `Invalid rbga value ${JSON.stringify(e2)}: expected an array containing either three or four numeric values.` : ee(e2[0], e2[1], e2[2], e2[3]), !r2)) return new Kt(e2[0] / 255, e2[1] / 255, e2[2] / 255, e2[3]);\n }\n throw new ae(r2 || `Could not parse color from value '${\"string\" == typeof e2 ? e2 : JSON.stringify(e2)}'`);\n }\n case \"padding\": {\n let e2;\n for (const r2 of this.args) {\n e2 = r2.evaluate(t4);\n const n2 = Jt.parse(e2);\n if (n2) return n2;\n }\n throw new ae(`Could not parse padding from value '${\"string\" == typeof e2 ? e2 : JSON.stringify(e2)}'`);\n }\n case \"variableAnchorOffsetCollection\": {\n let e2;\n for (const r2 of this.args) {\n e2 = r2.evaluate(t4);\n const n2 = Qt.parse(e2);\n if (n2) return n2;\n }\n throw new ae(`Could not parse variableAnchorOffsetCollection from value '${\"string\" == typeof e2 ? e2 : JSON.stringify(e2)}'`);\n }\n case \"number\": {\n let e2 = null;\n for (const r2 of this.args) {\n if (e2 = r2.evaluate(t4), null === e2) return 0;\n const n2 = Number(e2);\n if (!isNaN(n2)) return n2;\n }\n throw new ae(`Could not convert ${JSON.stringify(e2)} to number.`);\n }\n case \"formatted\":\n return Yt.fromString(ie(this.args[0].evaluate(t4)));\n case \"resolvedImage\":\n return te.fromString(ie(this.args[0].evaluate(t4)));\n default:\n return ie(this.args[0].evaluate(t4));\n }\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return this.args.every((t4) => t4.outputDefined());\n }\n }\n const he = [\"Unknown\", \"Point\", \"LineString\", \"Polygon\"];\n class pe {\n constructor() {\n this.globals = null, this.feature = null, this.featureState = null, this.formattedSection = null, this._parseColorCache = {}, this.availableImages = null, this.canonical = null;\n }\n id() {\n return this.feature && \"id\" in this.feature ? this.feature.id : null;\n }\n geometryType() {\n return this.feature ? \"number\" == typeof this.feature.type ? he[this.feature.type] : this.feature.type : null;\n }\n geometry() {\n return this.feature && \"geometry\" in this.feature ? this.feature.geometry : null;\n }\n canonicalID() {\n return this.canonical;\n }\n properties() {\n return this.feature && this.feature.properties || {};\n }\n parseColor(t4) {\n let e2 = this._parseColorCache[t4];\n return e2 || (e2 = this._parseColorCache[t4] = Kt.parse(t4)), e2;\n }\n }\n class fe {\n constructor(t4, e2, r2 = [], n2, i2 = new ot(), s2 = []) {\n this.registry = t4, this.path = r2, this.key = r2.map((t5) => `[${t5}]`).join(\"\"), this.scope = i2, this.errors = s2, this.expectedType = n2, this._isConstant = e2;\n }\n parse(t4, e2, r2, n2, i2 = {}) {\n return e2 ? this.concat(e2, r2, n2)._parse(t4, i2) : this._parse(t4, i2);\n }\n _parse(t4, e2) {\n function r2(t5, e3, r3) {\n return \"assert\" === r3 ? new le(e3, [t5]) : \"coerce\" === r3 ? new ce(e3, [t5]) : t5;\n }\n if (null !== t4 && \"string\" != typeof t4 && \"boolean\" != typeof t4 && \"number\" != typeof t4 || (t4 = [\"literal\", t4]), Array.isArray(t4)) {\n if (0 === t4.length) return this.error('Expected an array with at least one element. If you wanted a literal array, use [\"literal\", []].');\n const n2 = t4[0];\n if (\"string\" != typeof n2) return this.error(`Expression name must be a string, but found ${typeof n2} instead. If you wanted a literal array, use [\"literal\", [...]].`, 0), null;\n const i2 = this.registry[n2];\n if (i2) {\n let n3 = i2.parse(t4, this);\n if (!n3) return null;\n if (this.expectedType) {\n const t5 = this.expectedType, i3 = n3.type;\n if (\"string\" !== t5.kind && \"number\" !== t5.kind && \"boolean\" !== t5.kind && \"object\" !== t5.kind && \"array\" !== t5.kind || \"value\" !== i3.kind) if (\"color\" !== t5.kind && \"formatted\" !== t5.kind && \"resolvedImage\" !== t5.kind || \"value\" !== i3.kind && \"string\" !== i3.kind) if (\"padding\" !== t5.kind || \"value\" !== i3.kind && \"number\" !== i3.kind && \"array\" !== i3.kind) if (\"variableAnchorOffsetCollection\" !== t5.kind || \"value\" !== i3.kind && \"array\" !== i3.kind) {\n if (this.checkSubtype(t5, i3)) return null;\n } else n3 = r2(n3, t5, e2.typeAnnotation || \"coerce\");\n else n3 = r2(n3, t5, e2.typeAnnotation || \"coerce\");\n else n3 = r2(n3, t5, e2.typeAnnotation || \"coerce\");\n else n3 = r2(n3, t5, e2.typeAnnotation || \"assert\");\n }\n if (!(n3 instanceof se) && \"resolvedImage\" !== n3.type.kind && this._isConstant(n3)) {\n const t5 = new pe();\n try {\n n3 = new se(n3.type, n3.evaluate(t5));\n } catch (t6) {\n return this.error(t6.message), null;\n }\n }\n return n3;\n }\n return this.error(`Unknown expression \"${n2}\". If you wanted a literal array, use [\"literal\", [...]].`, 0);\n }\n return this.error(void 0 === t4 ? \"'undefined' value invalid. Use null instead.\" : \"object\" == typeof t4 ? 'Bare objects invalid. Use [\"literal\", {...}] instead.' : `Expected an array, but found ${typeof t4} instead.`);\n }\n concat(t4, e2, r2) {\n const n2 = \"number\" == typeof t4 ? this.path.concat(t4) : this.path, i2 = r2 ? this.scope.concat(r2) : this.scope;\n return new fe(this.registry, this._isConstant, n2, e2 || null, i2, this.errors);\n }\n error(t4, ...e2) {\n const r2 = `${this.key}${e2.map((t5) => `[${t5}]`).join(\"\")}`;\n this.errors.push(new at(r2, t4));\n }\n checkSubtype(t4, e2) {\n const r2 = At(t4, e2);\n return r2 && this.error(r2), r2;\n }\n }\n class de {\n constructor(t4, e2) {\n this.type = e2.type, this.bindings = [].concat(t4), this.result = e2;\n }\n evaluate(t4) {\n return this.result.evaluate(t4);\n }\n eachChild(t4) {\n for (const e2 of this.bindings) t4(e2[1]);\n t4(this.result);\n }\n static parse(t4, e2) {\n if (t4.length < 4) return e2.error(`Expected at least 3 arguments, but found ${t4.length - 1} instead.`);\n const r2 = [];\n for (let n3 = 1; n3 < t4.length - 1; n3 += 2) {\n const i2 = t4[n3];\n if (\"string\" != typeof i2) return e2.error(`Expected string, but found ${typeof i2} instead.`, n3);\n if (/[^a-zA-Z0-9_]/.test(i2)) return e2.error(\"Variable names must contain only alphanumeric characters or '_'.\", n3);\n const s2 = e2.parse(t4[n3 + 1], n3 + 1);\n if (!s2) return null;\n r2.push([i2, s2]);\n }\n const n2 = e2.parse(t4[t4.length - 1], t4.length - 1, e2.expectedType, r2);\n return n2 ? new de(r2, n2) : null;\n }\n outputDefined() {\n return this.result.outputDefined();\n }\n }\n class ye {\n constructor(t4, e2) {\n this.type = e2.type, this.name = t4, this.boundExpression = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length || \"string\" != typeof t4[1]) return e2.error(\"'var' expression requires exactly one string literal argument.\");\n const r2 = t4[1];\n return e2.scope.has(r2) ? new ye(r2, e2.scope.get(r2)) : e2.error(`Unknown variable \"${r2}\". Make sure \"${r2}\" has been bound in an enclosing \"let\" expression before using it.`, 1);\n }\n evaluate(t4) {\n return this.boundExpression.evaluate(t4);\n }\n eachChild() {\n }\n outputDefined() {\n return false;\n }\n }\n class me {\n constructor(t4, e2, r2) {\n this.type = t4, this.index = e2, this.input = r2;\n }\n static parse(t4, e2) {\n if (3 !== t4.length) return e2.error(`Expected 2 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, ut), n2 = e2.parse(t4[2], 2, bt(e2.expectedType || dt));\n return r2 && n2 ? new me(n2.type.itemType, r2, n2) : null;\n }\n evaluate(t4) {\n const e2 = this.index.evaluate(t4), r2 = this.input.evaluate(t4);\n if (e2 < 0) throw new ae(`Array index out of bounds: ${e2} < 0.`);\n if (e2 >= r2.length) throw new ae(`Array index out of bounds: ${e2} > ${r2.length - 1}.`);\n if (e2 !== Math.floor(e2)) throw new ae(`Array index must be an integer, but found ${e2} instead.`);\n return r2[e2];\n }\n eachChild(t4) {\n t4(this.index), t4(this.input);\n }\n outputDefined() {\n return false;\n }\n }\n class ge {\n constructor(t4, e2) {\n this.type = ht, this.needle = t4, this.haystack = e2;\n }\n static parse(t4, e2) {\n if (3 !== t4.length) return e2.error(`Expected 2 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, dt), n2 = e2.parse(t4[2], 2, dt);\n return r2 && n2 ? St(r2.type, [ht, ct, ut, lt, dt]) ? new ge(r2, n2) : e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${wt(r2.type)} instead`) : null;\n }\n evaluate(t4) {\n const e2 = this.needle.evaluate(t4), r2 = this.haystack.evaluate(t4);\n if (!r2) return false;\n if (!kt(e2, [\"boolean\", \"string\", \"number\", \"null\"])) throw new ae(`Expected first argument to be of type boolean, string, number or null, but found ${wt(ne(e2))} instead.`);\n if (!kt(r2, [\"string\", \"array\"])) throw new ae(`Expected second argument to be of type array or string, but found ${wt(ne(r2))} instead.`);\n return r2.indexOf(e2) >= 0;\n }\n eachChild(t4) {\n t4(this.needle), t4(this.haystack);\n }\n outputDefined() {\n return true;\n }\n }\n class xe {\n constructor(t4, e2, r2) {\n this.type = ut, this.needle = t4, this.haystack = e2, this.fromIndex = r2;\n }\n static parse(t4, e2) {\n if (t4.length <= 2 || t4.length >= 5) return e2.error(`Expected 3 or 4 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, dt), n2 = e2.parse(t4[2], 2, dt);\n if (!r2 || !n2) return null;\n if (!St(r2.type, [ht, ct, ut, lt, dt])) return e2.error(`Expected first argument to be of type boolean, string, number or null, but found ${wt(r2.type)} instead`);\n if (4 === t4.length) {\n const i2 = e2.parse(t4[3], 3, ut);\n return i2 ? new xe(r2, n2, i2) : null;\n }\n return new xe(r2, n2);\n }\n evaluate(t4) {\n const e2 = this.needle.evaluate(t4), r2 = this.haystack.evaluate(t4);\n if (!kt(e2, [\"boolean\", \"string\", \"number\", \"null\"])) throw new ae(`Expected first argument to be of type boolean, string, number or null, but found ${wt(ne(e2))} instead.`);\n let n2;\n if (this.fromIndex && (n2 = this.fromIndex.evaluate(t4)), kt(r2, [\"string\"])) {\n const t5 = r2.indexOf(e2, n2);\n return -1 === t5 ? -1 : [...r2.slice(0, t5)].length;\n }\n if (kt(r2, [\"array\"])) return r2.indexOf(e2, n2);\n throw new ae(`Expected second argument to be of type array or string, but found ${wt(ne(r2))} instead.`);\n }\n eachChild(t4) {\n t4(this.needle), t4(this.haystack), this.fromIndex && t4(this.fromIndex);\n }\n outputDefined() {\n return false;\n }\n }\n class ve {\n constructor(t4, e2, r2, n2, i2, s2) {\n this.inputType = t4, this.type = e2, this.input = r2, this.cases = n2, this.outputs = i2, this.otherwise = s2;\n }\n static parse(t4, e2) {\n if (t4.length < 5) return e2.error(`Expected at least 4 arguments, but found only ${t4.length - 1}.`);\n if (t4.length % 2 != 1) return e2.error(\"Expected an even number of arguments.\");\n let r2, n2;\n e2.expectedType && \"value\" !== e2.expectedType.kind && (n2 = e2.expectedType);\n const i2 = {}, s2 = [];\n for (let a3 = 2; a3 < t4.length - 1; a3 += 2) {\n let o3 = t4[a3];\n const l2 = t4[a3 + 1];\n Array.isArray(o3) || (o3 = [o3]);\n const u2 = e2.concat(a3);\n if (0 === o3.length) return u2.error(\"Expected at least one branch label.\");\n for (const t5 of o3) {\n if (\"number\" != typeof t5 && \"string\" != typeof t5) return u2.error(\"Branch labels must be numbers or strings.\");\n if (\"number\" == typeof t5 && Math.abs(t5) > Number.MAX_SAFE_INTEGER) return u2.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);\n if (\"number\" == typeof t5 && Math.floor(t5) !== t5) return u2.error(\"Numeric branch labels must be integer values.\");\n if (r2) {\n if (u2.checkSubtype(r2, ne(t5))) return null;\n } else r2 = ne(t5);\n if (void 0 !== i2[String(t5)]) return u2.error(\"Branch labels must be unique.\");\n i2[String(t5)] = s2.length;\n }\n const c2 = e2.parse(l2, a3, n2);\n if (!c2) return null;\n n2 = n2 || c2.type, s2.push(c2);\n }\n const a2 = e2.parse(t4[1], 1, dt);\n if (!a2) return null;\n const o2 = e2.parse(t4[t4.length - 1], t4.length - 1, n2);\n return o2 ? \"value\" !== a2.type.kind && e2.concat(1).checkSubtype(r2, a2.type) ? null : new ve(r2, n2, a2, i2, s2, o2) : null;\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4);\n return (ne(e2) === this.inputType && this.outputs[this.cases[e2]] || this.otherwise).evaluate(t4);\n }\n eachChild(t4) {\n t4(this.input), this.outputs.forEach(t4), t4(this.otherwise);\n }\n outputDefined() {\n return this.outputs.every((t4) => t4.outputDefined()) && this.otherwise.outputDefined();\n }\n }\n class be {\n constructor(t4, e2, r2) {\n this.type = t4, this.branches = e2, this.otherwise = r2;\n }\n static parse(t4, e2) {\n if (t4.length < 4) return e2.error(`Expected at least 3 arguments, but found only ${t4.length - 1}.`);\n if (t4.length % 2 != 0) return e2.error(\"Expected an odd number of arguments.\");\n let r2;\n e2.expectedType && \"value\" !== e2.expectedType.kind && (r2 = e2.expectedType);\n const n2 = [];\n for (let i3 = 1; i3 < t4.length - 1; i3 += 2) {\n const s2 = e2.parse(t4[i3], i3, ht);\n if (!s2) return null;\n const a2 = e2.parse(t4[i3 + 1], i3 + 1, r2);\n if (!a2) return null;\n n2.push([s2, a2]), r2 = r2 || a2.type;\n }\n const i2 = e2.parse(t4[t4.length - 1], t4.length - 1, r2);\n if (!i2) return null;\n if (!r2) throw new Error(\"Can't infer output type\");\n return new be(r2, n2, i2);\n }\n evaluate(t4) {\n for (const [e2, r2] of this.branches) if (e2.evaluate(t4)) return r2.evaluate(t4);\n return this.otherwise.evaluate(t4);\n }\n eachChild(t4) {\n for (const [e2, r2] of this.branches) t4(e2), t4(r2);\n t4(this.otherwise);\n }\n outputDefined() {\n return this.branches.every(([t4, e2]) => e2.outputDefined()) && this.otherwise.outputDefined();\n }\n }\n class we {\n constructor(t4, e2, r2, n2) {\n this.type = t4, this.input = e2, this.beginIndex = r2, this.endIndex = n2;\n }\n static parse(t4, e2) {\n if (t4.length <= 2 || t4.length >= 5) return e2.error(`Expected 3 or 4 arguments, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1, dt), n2 = e2.parse(t4[2], 2, ut);\n if (!r2 || !n2) return null;\n if (!St(r2.type, [bt(dt), ct, dt])) return e2.error(`Expected first argument to be of type array or string, but found ${wt(r2.type)} instead`);\n if (4 === t4.length) {\n const i2 = e2.parse(t4[3], 3, ut);\n return i2 ? new we(r2.type, r2, n2, i2) : null;\n }\n return new we(r2.type, r2, n2);\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4), r2 = this.beginIndex.evaluate(t4);\n let n2;\n if (this.endIndex && (n2 = this.endIndex.evaluate(t4)), kt(e2, [\"string\"])) return [...e2].slice(r2, n2).join(\"\");\n if (kt(e2, [\"array\"])) return e2.slice(r2, n2);\n throw new ae(`Expected first argument to be of type array or string, but found ${wt(ne(e2))} instead.`);\n }\n eachChild(t4) {\n t4(this.input), t4(this.beginIndex), this.endIndex && t4(this.endIndex);\n }\n outputDefined() {\n return false;\n }\n }\n function _e(t4, e2) {\n const r2 = t4.length - 1;\n let n2, i2, s2 = 0, a2 = r2, o2 = 0;\n for (; s2 <= a2; ) if (o2 = Math.floor((s2 + a2) / 2), n2 = t4[o2], i2 = t4[o2 + 1], n2 <= e2) {\n if (o2 === r2 || e2 < i2) return o2;\n s2 = o2 + 1;\n } else {\n if (!(n2 > e2)) throw new ae(\"Input is not a number.\");\n a2 = o2 - 1;\n }\n return 0;\n }\n class Ae {\n constructor(t4, e2, r2) {\n this.type = t4, this.input = e2, this.labels = [], this.outputs = [];\n for (const [t5, e3] of r2) this.labels.push(t5), this.outputs.push(e3);\n }\n static parse(t4, e2) {\n if (t4.length - 1 < 4) return e2.error(`Expected at least 4 arguments, but found only ${t4.length - 1}.`);\n if ((t4.length - 1) % 2 != 0) return e2.error(\"Expected an even number of arguments.\");\n const r2 = e2.parse(t4[1], 1, ut);\n if (!r2) return null;\n const n2 = [];\n let i2 = null;\n e2.expectedType && \"value\" !== e2.expectedType.kind && (i2 = e2.expectedType);\n for (let r3 = 1; r3 < t4.length; r3 += 2) {\n const s2 = 1 === r3 ? -1 / 0 : t4[r3], a2 = t4[r3 + 1], o2 = r3, l2 = r3 + 1;\n if (\"number\" != typeof s2) return e2.error('Input/output pairs for \"step\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', o2);\n if (n2.length && n2[n2.length - 1][0] >= s2) return e2.error('Input/output pairs for \"step\" expressions must be arranged with input values in strictly ascending order.', o2);\n const u2 = e2.parse(a2, l2, i2);\n if (!u2) return null;\n i2 = i2 || u2.type, n2.push([s2, u2]);\n }\n return new Ae(i2, r2, n2);\n }\n evaluate(t4) {\n const e2 = this.labels, r2 = this.outputs;\n if (1 === e2.length) return r2[0].evaluate(t4);\n const n2 = this.input.evaluate(t4);\n if (n2 <= e2[0]) return r2[0].evaluate(t4);\n const i2 = e2.length;\n return n2 >= e2[i2 - 1] ? r2[i2 - 1].evaluate(t4) : r2[_e(e2, n2)].evaluate(t4);\n }\n eachChild(t4) {\n t4(this.input);\n for (const e2 of this.outputs) t4(e2);\n }\n outputDefined() {\n return this.outputs.every((t4) => t4.outputDefined());\n }\n }\n function Se(t4) {\n return t4 && t4.__esModule && Object.prototype.hasOwnProperty.call(t4, \"default\") ? t4.default : t4;\n }\n var ke = Me;\n function Me(t4, e2, r2, n2) {\n this.cx = 3 * t4, this.bx = 3 * (r2 - t4) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * e2, this.by = 3 * (n2 - e2) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = t4, this.p1y = e2, this.p2x = r2, this.p2y = n2;\n }\n Me.prototype = { sampleCurveX: function(t4) {\n return ((this.ax * t4 + this.bx) * t4 + this.cx) * t4;\n }, sampleCurveY: function(t4) {\n return ((this.ay * t4 + this.by) * t4 + this.cy) * t4;\n }, sampleCurveDerivativeX: function(t4) {\n return (3 * this.ax * t4 + 2 * this.bx) * t4 + this.cx;\n }, solveCurveX: function(t4, e2) {\n if (void 0 === e2 && (e2 = 1e-6), t4 < 0) return 0;\n if (t4 > 1) return 1;\n for (var r2 = t4, n2 = 0; n2 < 8; n2++) {\n var i2 = this.sampleCurveX(r2) - t4;\n if (Math.abs(i2) < e2) return r2;\n var s2 = this.sampleCurveDerivativeX(r2);\n if (Math.abs(s2) < 1e-6) break;\n r2 -= i2 / s2;\n }\n var a2 = 0, o2 = 1;\n for (r2 = t4, n2 = 0; n2 < 20 && (i2 = this.sampleCurveX(r2), !(Math.abs(i2 - t4) < e2)); n2++) t4 > i2 ? a2 = r2 : o2 = r2, r2 = 0.5 * (o2 - a2) + a2;\n return r2;\n }, solve: function(t4, e2) {\n return this.sampleCurveY(this.solveCurveX(t4, e2));\n } };\n var Ie = Se(ke);\n function ze(t4, e2, r2) {\n return t4 + r2 * (e2 - t4);\n }\n function Pe(t4, e2, r2) {\n return t4.map((t5, n2) => ze(t5, e2[n2], r2));\n }\n const Ce = { number: ze, color: function(t4, e2, r2, n2 = \"rgb\") {\n switch (n2) {\n case \"rgb\": {\n const [n3, i2, s2, a2] = Pe(t4.rgb, e2.rgb, r2);\n return new Kt(n3, i2, s2, a2, false);\n }\n case \"hcl\": {\n const [n3, i2, s2, a2] = t4.hcl, [o2, l2, u2, c2] = e2.hcl;\n let h2, p2;\n if (isNaN(n3) || isNaN(o2)) isNaN(n3) ? isNaN(o2) ? h2 = NaN : (h2 = o2, 1 !== s2 && 0 !== s2 || (p2 = l2)) : (h2 = n3, 1 !== u2 && 0 !== u2 || (p2 = i2));\n else {\n let t5 = o2 - n3;\n o2 > n3 && t5 > 180 ? t5 -= 360 : o2 < n3 && n3 - o2 > 180 && (t5 += 360), h2 = n3 + r2 * t5;\n }\n const [f2, d2, y2, m2] = function([t5, e3, r3, n4]) {\n return t5 = isNaN(t5) ? 0 : t5 * Et, Ot([r3, Math.cos(t5) * e3, Math.sin(t5) * e3, n4]);\n }([h2, null != p2 ? p2 : ze(i2, l2, r2), ze(s2, u2, r2), ze(a2, c2, r2)]);\n return new Kt(f2, d2, y2, m2, false);\n }\n case \"lab\": {\n const [n3, i2, s2, a2] = Ot(Pe(t4.lab, e2.lab, r2));\n return new Kt(n3, i2, s2, a2, false);\n }\n }\n }, array: Pe, padding: function(t4, e2, r2) {\n return new Jt(Pe(t4.values, e2.values, r2));\n }, variableAnchorOffsetCollection: function(t4, e2, r2) {\n const n2 = t4.values, i2 = e2.values;\n if (n2.length !== i2.length) throw new ae(`Cannot interpolate values of different length. from: ${t4.toString()}, to: ${e2.toString()}`);\n const s2 = [];\n for (let t5 = 0; t5 < n2.length; t5 += 2) {\n if (n2[t5] !== i2[t5]) throw new ae(`Cannot interpolate values containing mismatched anchors. from[${t5}]: ${n2[t5]}, to[${t5}]: ${i2[t5]}`);\n s2.push(n2[t5]);\n const [e3, a2] = n2[t5 + 1], [o2, l2] = i2[t5 + 1];\n s2.push([ze(e3, o2, r2), ze(a2, l2, r2)]);\n }\n return new Qt(s2);\n } };\n class Be {\n constructor(t4, e2, r2, n2, i2) {\n this.type = t4, this.operator = e2, this.interpolation = r2, this.input = n2, this.labels = [], this.outputs = [];\n for (const [t5, e3] of i2) this.labels.push(t5), this.outputs.push(e3);\n }\n static interpolationFactor(t4, e2, r2, n2) {\n let i2 = 0;\n if (\"exponential\" === t4.name) i2 = Ve(e2, t4.base, r2, n2);\n else if (\"linear\" === t4.name) i2 = Ve(e2, 1, r2, n2);\n else if (\"cubic-bezier\" === t4.name) {\n const s2 = t4.controlPoints;\n i2 = new Ie(s2[0], s2[1], s2[2], s2[3]).solve(Ve(e2, 1, r2, n2));\n }\n return i2;\n }\n static parse(t4, e2) {\n let [r2, n2, i2, ...s2] = t4;\n if (!Array.isArray(n2) || 0 === n2.length) return e2.error(\"Expected an interpolation type expression.\", 1);\n if (\"linear\" === n2[0]) n2 = { name: \"linear\" };\n else if (\"exponential\" === n2[0]) {\n const t5 = n2[1];\n if (\"number\" != typeof t5) return e2.error(\"Exponential interpolation requires a numeric base.\", 1, 1);\n n2 = { name: \"exponential\", base: t5 };\n } else {\n if (\"cubic-bezier\" !== n2[0]) return e2.error(`Unknown interpolation type ${String(n2[0])}`, 1, 0);\n {\n const t5 = n2.slice(1);\n if (4 !== t5.length || t5.some((t6) => \"number\" != typeof t6 || t6 < 0 || t6 > 1)) return e2.error(\"Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.\", 1);\n n2 = { name: \"cubic-bezier\", controlPoints: t5 };\n }\n }\n if (t4.length - 1 < 4) return e2.error(`Expected at least 4 arguments, but found only ${t4.length - 1}.`);\n if ((t4.length - 1) % 2 != 0) return e2.error(\"Expected an even number of arguments.\");\n if (i2 = e2.parse(i2, 2, ut), !i2) return null;\n const a2 = [];\n let o2 = null;\n \"interpolate-hcl\" === r2 || \"interpolate-lab\" === r2 ? o2 = pt : e2.expectedType && \"value\" !== e2.expectedType.kind && (o2 = e2.expectedType);\n for (let t5 = 0; t5 < s2.length; t5 += 2) {\n const r3 = s2[t5], n3 = s2[t5 + 1], i3 = t5 + 3, l2 = t5 + 4;\n if (\"number\" != typeof r3) return e2.error('Input/output pairs for \"interpolate\" expressions must be defined using literal numeric values (not computed expressions) for the input values.', i3);\n if (a2.length && a2[a2.length - 1][0] >= r3) return e2.error('Input/output pairs for \"interpolate\" expressions must be arranged with input values in strictly ascending order.', i3);\n const u2 = e2.parse(n3, l2, o2);\n if (!u2) return null;\n o2 = o2 || u2.type, a2.push([r3, u2]);\n }\n return Mt(o2, ut) || Mt(o2, pt) || Mt(o2, gt) || Mt(o2, vt) || Mt(o2, bt(ut)) ? new Be(o2, r2, n2, i2, a2) : e2.error(`Type ${wt(o2)} is not interpolatable.`);\n }\n evaluate(t4) {\n const e2 = this.labels, r2 = this.outputs;\n if (1 === e2.length) return r2[0].evaluate(t4);\n const n2 = this.input.evaluate(t4);\n if (n2 <= e2[0]) return r2[0].evaluate(t4);\n const i2 = e2.length;\n if (n2 >= e2[i2 - 1]) return r2[i2 - 1].evaluate(t4);\n const s2 = _e(e2, n2), a2 = Be.interpolationFactor(this.interpolation, n2, e2[s2], e2[s2 + 1]), o2 = r2[s2].evaluate(t4), l2 = r2[s2 + 1].evaluate(t4);\n switch (this.operator) {\n case \"interpolate\":\n return Ce[this.type.kind](o2, l2, a2);\n case \"interpolate-hcl\":\n return Ce.color(o2, l2, a2, \"hcl\");\n case \"interpolate-lab\":\n return Ce.color(o2, l2, a2, \"lab\");\n }\n }\n eachChild(t4) {\n t4(this.input);\n for (const e2 of this.outputs) t4(e2);\n }\n outputDefined() {\n return this.outputs.every((t4) => t4.outputDefined());\n }\n }\n function Ve(t4, e2, r2, n2) {\n const i2 = n2 - r2, s2 = t4 - r2;\n return 0 === i2 ? 0 : 1 === e2 ? s2 / i2 : (Math.pow(e2, s2) - 1) / (Math.pow(e2, i2) - 1);\n }\n class Ee {\n constructor(t4, e2) {\n this.type = t4, this.args = e2;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expectected at least one argument.\");\n let r2 = null;\n const n2 = e2.expectedType;\n n2 && \"value\" !== n2.kind && (r2 = n2);\n const i2 = [];\n for (const n3 of t4.slice(1)) {\n const t5 = e2.parse(n3, 1 + i2.length, r2, void 0, { typeAnnotation: \"omit\" });\n if (!t5) return null;\n r2 = r2 || t5.type, i2.push(t5);\n }\n if (!r2) throw new Error(\"No output type\");\n const s2 = n2 && i2.some((t5) => At(n2, t5.type));\n return new Ee(s2 ? dt : r2, i2);\n }\n evaluate(t4) {\n let e2, r2 = null, n2 = 0;\n for (const i2 of this.args) if (n2++, r2 = i2.evaluate(t4), r2 && r2 instanceof te && !r2.available && (e2 || (e2 = r2.name), r2 = null, n2 === this.args.length && (r2 = e2)), null !== r2) break;\n return r2;\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return this.args.every((t4) => t4.outputDefined());\n }\n }\n function Fe(t4, e2) {\n return \"==\" === t4 || \"!=\" === t4 ? \"boolean\" === e2.kind || \"string\" === e2.kind || \"number\" === e2.kind || \"null\" === e2.kind || \"value\" === e2.kind : \"string\" === e2.kind || \"number\" === e2.kind || \"value\" === e2.kind;\n }\n function Te(t4, e2, r2, n2) {\n return 0 === n2.compare(e2, r2);\n }\n function $e(t4, e2, r2) {\n const n2 = \"==\" !== t4 && \"!=\" !== t4;\n return class i2 {\n constructor(t5, e3, r3) {\n this.type = ht, this.lhs = t5, this.rhs = e3, this.collator = r3, this.hasUntypedArgument = \"value\" === t5.type.kind || \"value\" === e3.type.kind;\n }\n static parse(t5, e3) {\n if (3 !== t5.length && 4 !== t5.length) return e3.error(\"Expected two or three arguments.\");\n const r3 = t5[0];\n let s2 = e3.parse(t5[1], 1, dt);\n if (!s2) return null;\n if (!Fe(r3, s2.type)) return e3.concat(1).error(`\"${r3}\" comparisons are not supported for type '${wt(s2.type)}'.`);\n let a2 = e3.parse(t5[2], 2, dt);\n if (!a2) return null;\n if (!Fe(r3, a2.type)) return e3.concat(2).error(`\"${r3}\" comparisons are not supported for type '${wt(a2.type)}'.`);\n if (s2.type.kind !== a2.type.kind && \"value\" !== s2.type.kind && \"value\" !== a2.type.kind) return e3.error(`Cannot compare types '${wt(s2.type)}' and '${wt(a2.type)}'.`);\n n2 && (\"value\" === s2.type.kind && \"value\" !== a2.type.kind ? s2 = new le(a2.type, [s2]) : \"value\" !== s2.type.kind && \"value\" === a2.type.kind && (a2 = new le(s2.type, [a2])));\n let o2 = null;\n if (4 === t5.length) {\n if (\"string\" !== s2.type.kind && \"string\" !== a2.type.kind && \"value\" !== s2.type.kind && \"value\" !== a2.type.kind) return e3.error(\"Cannot use collator to compare non-string types.\");\n if (o2 = e3.parse(t5[3], 3, yt), !o2) return null;\n }\n return new i2(s2, a2, o2);\n }\n evaluate(i3) {\n const s2 = this.lhs.evaluate(i3), a2 = this.rhs.evaluate(i3);\n if (n2 && this.hasUntypedArgument) {\n const e3 = ne(s2), r3 = ne(a2);\n if (e3.kind !== r3.kind || \"string\" !== e3.kind && \"number\" !== e3.kind) throw new ae(`Expected arguments for \"${t4}\" to be (string, string) or (number, number), but found (${e3.kind}, ${r3.kind}) instead.`);\n }\n if (this.collator && !n2 && this.hasUntypedArgument) {\n const t5 = ne(s2), r3 = ne(a2);\n if (\"string\" !== t5.kind || \"string\" !== r3.kind) return e2(i3, s2, a2);\n }\n return this.collator ? r2(i3, s2, a2, this.collator.evaluate(i3)) : e2(i3, s2, a2);\n }\n eachChild(t5) {\n t5(this.lhs), t5(this.rhs), this.collator && t5(this.collator);\n }\n outputDefined() {\n return true;\n }\n };\n }\n const Le = $e(\"==\", function(t4, e2, r2) {\n return e2 === r2;\n }, Te), De = $e(\"!=\", function(t4, e2, r2) {\n return e2 !== r2;\n }, function(t4, e2, r2, n2) {\n return !Te(0, e2, r2, n2);\n }), Oe = $e(\"<\", function(t4, e2, r2) {\n return e2 < r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) < 0;\n }), je = $e(\">\", function(t4, e2, r2) {\n return e2 > r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) > 0;\n }), Re = $e(\"<=\", function(t4, e2, r2) {\n return e2 <= r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) <= 0;\n }), Ue = $e(\">=\", function(t4, e2, r2) {\n return e2 >= r2;\n }, function(t4, e2, r2, n2) {\n return n2.compare(e2, r2) >= 0;\n });\n class qe {\n constructor(t4, e2, r2) {\n this.type = yt, this.locale = r2, this.caseSensitive = t4, this.diacriticSensitive = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(\"Expected one argument.\");\n const r2 = t4[1];\n if (\"object\" != typeof r2 || Array.isArray(r2)) return e2.error(\"Collator options argument must be an object.\");\n const n2 = e2.parse(void 0 !== r2[\"case-sensitive\"] && r2[\"case-sensitive\"], 1, ht);\n if (!n2) return null;\n const i2 = e2.parse(void 0 !== r2[\"diacritic-sensitive\"] && r2[\"diacritic-sensitive\"], 1, ht);\n if (!i2) return null;\n let s2 = null;\n return r2.locale && (s2 = e2.parse(r2.locale, 1, ct), !s2) ? null : new qe(n2, i2, s2);\n }\n evaluate(t4) {\n return new Xt(this.caseSensitive.evaluate(t4), this.diacriticSensitive.evaluate(t4), this.locale ? this.locale.evaluate(t4) : null);\n }\n eachChild(t4) {\n t4(this.caseSensitive), t4(this.diacriticSensitive), this.locale && t4(this.locale);\n }\n outputDefined() {\n return false;\n }\n }\n class Ne {\n constructor(t4, e2, r2, n2, i2) {\n this.type = ct, this.number = t4, this.locale = e2, this.currency = r2, this.minFractionDigits = n2, this.maxFractionDigits = i2;\n }\n static parse(t4, e2) {\n if (3 !== t4.length) return e2.error(\"Expected two arguments.\");\n const r2 = e2.parse(t4[1], 1, ut);\n if (!r2) return null;\n const n2 = t4[2];\n if (\"object\" != typeof n2 || Array.isArray(n2)) return e2.error(\"NumberFormat options argument must be an object.\");\n let i2 = null;\n if (n2.locale && (i2 = e2.parse(n2.locale, 1, ct), !i2)) return null;\n let s2 = null;\n if (n2.currency && (s2 = e2.parse(n2.currency, 1, ct), !s2)) return null;\n let a2 = null;\n if (n2[\"min-fraction-digits\"] && (a2 = e2.parse(n2[\"min-fraction-digits\"], 1, ut), !a2)) return null;\n let o2 = null;\n return n2[\"max-fraction-digits\"] && (o2 = e2.parse(n2[\"max-fraction-digits\"], 1, ut), !o2) ? null : new Ne(r2, i2, s2, a2, o2);\n }\n evaluate(t4) {\n return new Intl.NumberFormat(this.locale ? this.locale.evaluate(t4) : [], { style: this.currency ? \"currency\" : \"decimal\", currency: this.currency ? this.currency.evaluate(t4) : void 0, minimumFractionDigits: this.minFractionDigits ? this.minFractionDigits.evaluate(t4) : void 0, maximumFractionDigits: this.maxFractionDigits ? this.maxFractionDigits.evaluate(t4) : void 0 }).format(this.number.evaluate(t4));\n }\n eachChild(t4) {\n t4(this.number), this.locale && t4(this.locale), this.currency && t4(this.currency), this.minFractionDigits && t4(this.minFractionDigits), this.maxFractionDigits && t4(this.maxFractionDigits);\n }\n outputDefined() {\n return false;\n }\n }\n class Ze {\n constructor(t4) {\n this.type = mt, this.sections = t4;\n }\n static parse(t4, e2) {\n if (t4.length < 2) return e2.error(\"Expected at least one argument.\");\n const r2 = t4[1];\n if (!Array.isArray(r2) && \"object\" == typeof r2) return e2.error(\"First argument must be an image or text section.\");\n const n2 = [];\n let i2 = false;\n for (let r3 = 1; r3 <= t4.length - 1; ++r3) {\n const s2 = t4[r3];\n if (i2 && \"object\" == typeof s2 && !Array.isArray(s2)) {\n i2 = false;\n let t5 = null;\n if (s2[\"font-scale\"] && (t5 = e2.parse(s2[\"font-scale\"], 1, ut), !t5)) return null;\n let r4 = null;\n if (s2[\"text-font\"] && (r4 = e2.parse(s2[\"text-font\"], 1, bt(ct)), !r4)) return null;\n let a2 = null;\n if (s2[\"text-color\"] && (a2 = e2.parse(s2[\"text-color\"], 1, pt), !a2)) return null;\n const o2 = n2[n2.length - 1];\n o2.scale = t5, o2.font = r4, o2.textColor = a2;\n } else {\n const s3 = e2.parse(t4[r3], 1, dt);\n if (!s3) return null;\n const a2 = s3.type.kind;\n if (\"string\" !== a2 && \"value\" !== a2 && \"null\" !== a2 && \"resolvedImage\" !== a2) return e2.error(\"Formatted text type must be 'string', 'value', 'image' or 'null'.\");\n i2 = true, n2.push({ content: s3, scale: null, font: null, textColor: null });\n }\n }\n return new Ze(n2);\n }\n evaluate(t4) {\n return new Yt(this.sections.map((e2) => {\n const r2 = e2.content.evaluate(t4);\n return ne(r2) === xt ? new Ht(\"\", r2, null, null, null) : new Ht(ie(r2), null, e2.scale ? e2.scale.evaluate(t4) : null, e2.font ? e2.font.evaluate(t4).join(\",\") : null, e2.textColor ? e2.textColor.evaluate(t4) : null);\n }));\n }\n eachChild(t4) {\n for (const e2 of this.sections) t4(e2.content), e2.scale && t4(e2.scale), e2.font && t4(e2.font), e2.textColor && t4(e2.textColor);\n }\n outputDefined() {\n return false;\n }\n }\n class Ge {\n constructor(t4) {\n this.type = xt, this.input = t4;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(\"Expected two arguments.\");\n const r2 = e2.parse(t4[1], 1, ct);\n return r2 ? new Ge(r2) : e2.error(\"No image name provided.\");\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4), r2 = te.fromString(e2);\n return r2 && t4.availableImages && (r2.available = t4.availableImages.indexOf(e2) > -1), r2;\n }\n eachChild(t4) {\n t4(this.input);\n }\n outputDefined() {\n return false;\n }\n }\n class Ke {\n constructor(t4) {\n this.type = ut, this.input = t4;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`Expected 1 argument, but found ${t4.length - 1} instead.`);\n const r2 = e2.parse(t4[1], 1);\n return r2 ? \"array\" !== r2.type.kind && \"string\" !== r2.type.kind && \"value\" !== r2.type.kind ? e2.error(`Expected argument of type string or array, but found ${wt(r2.type)} instead.`) : new Ke(r2) : null;\n }\n evaluate(t4) {\n const e2 = this.input.evaluate(t4);\n if (\"string\" == typeof e2) return [...e2].length;\n if (Array.isArray(e2)) return e2.length;\n throw new ae(`Expected value to be of type string or array, but found ${wt(ne(e2))} instead.`);\n }\n eachChild(t4) {\n t4(this.input);\n }\n outputDefined() {\n return false;\n }\n }\n const Xe = 8192;\n function He(t4, e2) {\n const r2 = (180 + t4[0]) / 360, n2 = (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t4[1] * Math.PI / 360))) / 360, i2 = Math.pow(2, e2.z);\n return [Math.round(r2 * i2 * Xe), Math.round(n2 * i2 * Xe)];\n }\n function Ye(t4, e2) {\n const r2 = Math.pow(2, e2.z);\n return [(i2 = (t4[0] / Xe + e2.x) / r2, 360 * i2 - 180), (n2 = (t4[1] / Xe + e2.y) / r2, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * n2) * Math.PI / 180)) - 90)];\n var n2, i2;\n }\n function Je(t4, e2) {\n t4[0] = Math.min(t4[0], e2[0]), t4[1] = Math.min(t4[1], e2[1]), t4[2] = Math.max(t4[2], e2[0]), t4[3] = Math.max(t4[3], e2[1]);\n }\n function We(t4, e2) {\n return !(t4[0] <= e2[0] || t4[2] >= e2[2] || t4[1] <= e2[1] || t4[3] >= e2[3]);\n }\n function Qe(t4, e2, r2) {\n const n2 = t4[0] - e2[0], i2 = t4[1] - e2[1], s2 = t4[0] - r2[0], a2 = t4[1] - r2[1];\n return n2 * a2 - s2 * i2 == 0 && n2 * s2 <= 0 && i2 * a2 <= 0;\n }\n function tr(t4, e2, r2, n2) {\n return 0 != (i2 = [n2[0] - r2[0], n2[1] - r2[1]])[0] * (s2 = [e2[0] - t4[0], e2[1] - t4[1]])[1] - i2[1] * s2[0] && !(!ar(t4, e2, r2, n2) || !ar(r2, n2, t4, e2));\n var i2, s2;\n }\n function er(t4, e2, r2) {\n for (const n2 of r2) for (let r3 = 0; r3 < n2.length - 1; ++r3) if (tr(t4, e2, n2[r3], n2[r3 + 1])) return true;\n return false;\n }\n function rr(t4, e2, r2 = false) {\n let n2 = false;\n for (const o2 of e2) for (let e3 = 0; e3 < o2.length - 1; e3++) {\n if (Qe(t4, o2[e3], o2[e3 + 1])) return r2;\n (s2 = o2[e3])[1] > (i2 = t4)[1] != (a2 = o2[e3 + 1])[1] > i2[1] && i2[0] < (a2[0] - s2[0]) * (i2[1] - s2[1]) / (a2[1] - s2[1]) + s2[0] && (n2 = !n2);\n }\n var i2, s2, a2;\n return n2;\n }\n function nr(t4, e2) {\n for (const r2 of e2) if (rr(t4, r2)) return true;\n return false;\n }\n function ir(t4, e2) {\n for (const r2 of t4) if (!rr(r2, e2)) return false;\n for (let r2 = 0; r2 < t4.length - 1; ++r2) if (er(t4[r2], t4[r2 + 1], e2)) return false;\n return true;\n }\n function sr(t4, e2) {\n for (const r2 of e2) if (ir(t4, r2)) return true;\n return false;\n }\n function ar(t4, e2, r2, n2) {\n const i2 = n2[0] - r2[0], s2 = n2[1] - r2[1], a2 = (t4[0] - r2[0]) * s2 - i2 * (t4[1] - r2[1]), o2 = (e2[0] - r2[0]) * s2 - i2 * (e2[1] - r2[1]);\n return a2 > 0 && o2 < 0 || a2 < 0 && o2 > 0;\n }\n function or(t4, e2, r2) {\n const n2 = [];\n for (let i2 = 0; i2 < t4.length; i2++) {\n const s2 = [];\n for (let n3 = 0; n3 < t4[i2].length; n3++) {\n const a2 = He(t4[i2][n3], r2);\n Je(e2, a2), s2.push(a2);\n }\n n2.push(s2);\n }\n return n2;\n }\n function lr(t4, e2, r2) {\n const n2 = [];\n for (let i2 = 0; i2 < t4.length; i2++) {\n const s2 = or(t4[i2], e2, r2);\n n2.push(s2);\n }\n return n2;\n }\n function ur(t4, e2, r2, n2) {\n if (t4[0] < r2[0] || t4[0] > r2[2]) {\n const e3 = 0.5 * n2;\n let i2 = t4[0] - r2[0] > e3 ? -n2 : r2[0] - t4[0] > e3 ? n2 : 0;\n 0 === i2 && (i2 = t4[0] - r2[2] > e3 ? -n2 : r2[2] - t4[0] > e3 ? n2 : 0), t4[0] += i2;\n }\n Je(e2, t4);\n }\n function cr(t4, e2, r2, n2) {\n const i2 = Math.pow(2, n2.z) * Xe, s2 = [n2.x * Xe, n2.y * Xe], a2 = [];\n for (const n3 of t4) for (const t5 of n3) {\n const n4 = [t5.x + s2[0], t5.y + s2[1]];\n ur(n4, e2, r2, i2), a2.push(n4);\n }\n return a2;\n }\n function hr(t4, e2, r2, n2) {\n const i2 = Math.pow(2, n2.z) * Xe, s2 = [n2.x * Xe, n2.y * Xe], a2 = [];\n for (const r3 of t4) {\n const t5 = [];\n for (const n3 of r3) {\n const r4 = [n3.x + s2[0], n3.y + s2[1]];\n Je(e2, r4), t5.push(r4);\n }\n a2.push(t5);\n }\n if (e2[2] - e2[0] <= i2 / 2) {\n (o2 = e2)[0] = o2[1] = 1 / 0, o2[2] = o2[3] = -1 / 0;\n for (const t5 of a2) for (const n3 of t5) ur(n3, e2, r2, i2);\n }\n var o2;\n return a2;\n }\n class pr {\n constructor(t4, e2) {\n this.type = ht, this.geojson = t4, this.geometries = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`'within' expression requires exactly one argument, but found ${t4.length - 1} instead.`);\n if (re(t4[1])) {\n const e3 = t4[1];\n if (\"FeatureCollection\" === e3.type) {\n const t5 = [];\n for (const r2 of e3.features) {\n const { type: e4, coordinates: n2 } = r2.geometry;\n \"Polygon\" === e4 && t5.push(n2), \"MultiPolygon\" === e4 && t5.push(...n2);\n }\n if (t5.length) return new pr(e3, { type: \"MultiPolygon\", coordinates: t5 });\n } else if (\"Feature\" === e3.type) {\n const t5 = e3.geometry.type;\n if (\"Polygon\" === t5 || \"MultiPolygon\" === t5) return new pr(e3, e3.geometry);\n } else if (\"Polygon\" === e3.type || \"MultiPolygon\" === e3.type) return new pr(e3, e3);\n }\n return e2.error(\"'within' expression requires valid geojson object that contains polygon geometry type.\");\n }\n evaluate(t4) {\n if (null != t4.geometry() && null != t4.canonicalID()) {\n if (\"Point\" === t4.geometryType()) return function(t5, e2) {\n const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t5.canonicalID();\n if (\"Polygon\" === e2.type) {\n const s2 = or(e2.coordinates, n2, i2), a2 = cr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!rr(t6, s2)) return false;\n }\n if (\"MultiPolygon\" === e2.type) {\n const s2 = lr(e2.coordinates, n2, i2), a2 = cr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!nr(t6, s2)) return false;\n }\n return true;\n }(t4, this.geometries);\n if (\"LineString\" === t4.geometryType()) return function(t5, e2) {\n const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], n2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0], i2 = t5.canonicalID();\n if (\"Polygon\" === e2.type) {\n const s2 = or(e2.coordinates, n2, i2), a2 = hr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!ir(t6, s2)) return false;\n }\n if (\"MultiPolygon\" === e2.type) {\n const s2 = lr(e2.coordinates, n2, i2), a2 = hr(t5.geometry(), r2, n2, i2);\n if (!We(r2, n2)) return false;\n for (const t6 of a2) if (!sr(t6, s2)) return false;\n }\n return true;\n }(t4, this.geometries);\n }\n return false;\n }\n eachChild() {\n }\n outputDefined() {\n return true;\n }\n }\n let fr = class {\n constructor(t4 = [], e2 = (t5, e3) => t5 < e3 ? -1 : t5 > e3 ? 1 : 0) {\n if (this.data = t4, this.length = this.data.length, this.compare = e2, this.length > 0) for (let t5 = (this.length >> 1) - 1; t5 >= 0; t5--) this._down(t5);\n }\n push(t4) {\n this.data.push(t4), this._up(this.length++);\n }\n pop() {\n if (0 === this.length) return;\n const t4 = this.data[0], e2 = this.data.pop();\n return --this.length > 0 && (this.data[0] = e2, this._down(0)), t4;\n }\n peek() {\n return this.data[0];\n }\n _up(t4) {\n const { data: e2, compare: r2 } = this, n2 = e2[t4];\n for (; t4 > 0; ) {\n const i2 = t4 - 1 >> 1, s2 = e2[i2];\n if (r2(n2, s2) >= 0) break;\n e2[t4] = s2, t4 = i2;\n }\n e2[t4] = n2;\n }\n _down(t4) {\n const { data: e2, compare: r2 } = this, n2 = this.length >> 1, i2 = e2[t4];\n for (; t4 < n2; ) {\n let n3 = 1 + (t4 << 1);\n const s2 = n3 + 1;\n if (s2 < this.length && r2(e2[s2], e2[n3]) < 0 && (n3 = s2), r2(e2[n3], i2) >= 0) break;\n e2[t4] = e2[n3], t4 = n3;\n }\n e2[t4] = i2;\n }\n };\n function dr(t4, e2, r2, n2, i2) {\n yr(t4, e2, r2, n2 || t4.length - 1, i2 || gr);\n }\n function yr(t4, e2, r2, n2, i2) {\n for (; n2 > r2; ) {\n if (n2 - r2 > 600) {\n var s2 = n2 - r2 + 1, a2 = e2 - r2 + 1, o2 = Math.log(s2), l2 = 0.5 * Math.exp(2 * o2 / 3), u2 = 0.5 * Math.sqrt(o2 * l2 * (s2 - l2) / s2) * (a2 - s2 / 2 < 0 ? -1 : 1);\n yr(t4, e2, Math.max(r2, Math.floor(e2 - a2 * l2 / s2 + u2)), Math.min(n2, Math.floor(e2 + (s2 - a2) * l2 / s2 + u2)), i2);\n }\n var c2 = t4[e2], h2 = r2, p2 = n2;\n for (mr(t4, r2, e2), i2(t4[n2], c2) > 0 && mr(t4, r2, n2); h2 < p2; ) {\n for (mr(t4, h2, p2), h2++, p2--; i2(t4[h2], c2) < 0; ) h2++;\n for (; i2(t4[p2], c2) > 0; ) p2--;\n }\n 0 === i2(t4[r2], c2) ? mr(t4, r2, p2) : mr(t4, ++p2, n2), p2 <= e2 && (r2 = p2 + 1), e2 <= p2 && (n2 = p2 - 1);\n }\n }\n function mr(t4, e2, r2) {\n var n2 = t4[e2];\n t4[e2] = t4[r2], t4[r2] = n2;\n }\n function gr(t4, e2) {\n return t4 < e2 ? -1 : t4 > e2 ? 1 : 0;\n }\n function xr(t4, e2) {\n if (t4.length <= 1) return [t4];\n const r2 = [];\n let n2, i2;\n for (const e3 of t4) {\n const t5 = br(e3);\n 0 !== t5 && (e3.area = Math.abs(t5), void 0 === i2 && (i2 = t5 < 0), i2 === t5 < 0 ? (n2 && r2.push(n2), n2 = [e3]) : n2.push(e3));\n }\n if (n2 && r2.push(n2), e2 > 1) for (let t5 = 0; t5 < r2.length; t5++) r2[t5].length <= e2 || (dr(r2[t5], e2, 1, r2[t5].length - 1, vr), r2[t5] = r2[t5].slice(0, e2));\n return r2;\n }\n function vr(t4, e2) {\n return e2.area - t4.area;\n }\n function br(t4) {\n let e2 = 0;\n for (let r2, n2, i2 = 0, s2 = t4.length, a2 = s2 - 1; i2 < s2; a2 = i2++) r2 = t4[i2], n2 = t4[a2], e2 += (n2.x - r2.x) * (r2.y + n2.y);\n return e2;\n }\n const wr = 1 / 298.257223563, _r = wr * (2 - wr), Ar = Math.PI / 180;\n class Sr {\n constructor(t4) {\n const e2 = 6378.137 * Ar * 1e3, r2 = Math.cos(t4 * Ar), n2 = 1 / (1 - _r * (1 - r2 * r2)), i2 = Math.sqrt(n2);\n this.kx = e2 * i2 * r2, this.ky = e2 * i2 * n2 * (1 - _r);\n }\n distance(t4, e2) {\n const r2 = this.wrap(t4[0] - e2[0]) * this.kx, n2 = (t4[1] - e2[1]) * this.ky;\n return Math.sqrt(r2 * r2 + n2 * n2);\n }\n pointOnLine(t4, e2) {\n let r2, n2, i2, s2, a2 = 1 / 0;\n for (let o2 = 0; o2 < t4.length - 1; o2++) {\n let l2 = t4[o2][0], u2 = t4[o2][1], c2 = this.wrap(t4[o2 + 1][0] - l2) * this.kx, h2 = (t4[o2 + 1][1] - u2) * this.ky, p2 = 0;\n 0 === c2 && 0 === h2 || (p2 = (this.wrap(e2[0] - l2) * this.kx * c2 + (e2[1] - u2) * this.ky * h2) / (c2 * c2 + h2 * h2), p2 > 1 ? (l2 = t4[o2 + 1][0], u2 = t4[o2 + 1][1]) : p2 > 0 && (l2 += c2 / this.kx * p2, u2 += h2 / this.ky * p2)), c2 = this.wrap(e2[0] - l2) * this.kx, h2 = (e2[1] - u2) * this.ky;\n const f2 = c2 * c2 + h2 * h2;\n f2 < a2 && (a2 = f2, r2 = l2, n2 = u2, i2 = o2, s2 = p2);\n }\n return { point: [r2, n2], index: i2, t: Math.max(0, Math.min(1, s2)) };\n }\n wrap(t4) {\n for (; t4 < -180; ) t4 += 360;\n for (; t4 > 180; ) t4 -= 360;\n return t4;\n }\n }\n function kr(t4, e2) {\n return e2[0] - t4[0];\n }\n function Mr(t4) {\n return t4[1] - t4[0] + 1;\n }\n function Ir(t4, e2) {\n return t4[1] >= t4[0] && t4[1] < e2;\n }\n function zr(t4, e2) {\n if (t4[0] > t4[1]) return [null, null];\n const r2 = Mr(t4);\n if (e2) {\n if (2 === r2) return [t4, null];\n const e3 = Math.floor(r2 / 2);\n return [[t4[0], t4[0] + e3], [t4[0] + e3, t4[1]]];\n }\n if (1 === r2) return [t4, null];\n const n2 = Math.floor(r2 / 2) - 1;\n return [[t4[0], t4[0] + n2], [t4[0] + n2 + 1, t4[1]]];\n }\n function Pr(t4, e2) {\n if (!Ir(e2, t4.length)) return [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n const r2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n for (let n2 = e2[0]; n2 <= e2[1]; ++n2) Je(r2, t4[n2]);\n return r2;\n }\n function Cr(t4) {\n const e2 = [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n for (const r2 of t4) for (const t5 of r2) Je(e2, t5);\n return e2;\n }\n function Br(t4) {\n return t4[0] !== -1 / 0 && t4[1] !== -1 / 0 && t4[2] !== 1 / 0 && t4[3] !== 1 / 0;\n }\n function Vr(t4, e2, r2) {\n if (!Br(t4) || !Br(e2)) return NaN;\n let n2 = 0, i2 = 0;\n return t4[2] < e2[0] && (n2 = e2[0] - t4[2]), t4[0] > e2[2] && (n2 = t4[0] - e2[2]), t4[1] > e2[3] && (i2 = t4[1] - e2[3]), t4[3] < e2[1] && (i2 = e2[1] - t4[3]), r2.distance([0, 0], [n2, i2]);\n }\n function Er(t4, e2, r2) {\n const n2 = r2.pointOnLine(e2, t4);\n return r2.distance(t4, n2.point);\n }\n function Fr(t4, e2, r2, n2, i2) {\n const s2 = Math.min(Er(t4, [r2, n2], i2), Er(e2, [r2, n2], i2)), a2 = Math.min(Er(r2, [t4, e2], i2), Er(n2, [t4, e2], i2));\n return Math.min(s2, a2);\n }\n function Tr(t4, e2, r2, n2, i2) {\n if (!Ir(e2, t4.length) || !Ir(n2, r2.length)) return 1 / 0;\n let s2 = 1 / 0;\n for (let a2 = e2[0]; a2 < e2[1]; ++a2) {\n const e3 = t4[a2], o2 = t4[a2 + 1];\n for (let t5 = n2[0]; t5 < n2[1]; ++t5) {\n const n3 = r2[t5], a3 = r2[t5 + 1];\n if (tr(e3, o2, n3, a3)) return 0;\n s2 = Math.min(s2, Fr(e3, o2, n3, a3, i2));\n }\n }\n return s2;\n }\n function $r(t4, e2, r2, n2, i2) {\n if (!Ir(e2, t4.length) || !Ir(n2, r2.length)) return NaN;\n let s2 = 1 / 0;\n for (let a2 = e2[0]; a2 <= e2[1]; ++a2) for (let e3 = n2[0]; e3 <= n2[1]; ++e3) if (s2 = Math.min(s2, i2.distance(t4[a2], r2[e3])), 0 === s2) return s2;\n return s2;\n }\n function Lr(t4, e2, r2) {\n if (rr(t4, e2, true)) return 0;\n let n2 = 1 / 0;\n for (const i2 of e2) {\n const e3 = i2[0], s2 = i2[i2.length - 1];\n if (e3 !== s2 && (n2 = Math.min(n2, Er(t4, [s2, e3], r2)), 0 === n2)) return n2;\n const a2 = r2.pointOnLine(i2, t4);\n if (n2 = Math.min(n2, r2.distance(t4, a2.point)), 0 === n2) return n2;\n }\n return n2;\n }\n function Dr(t4, e2, r2, n2) {\n if (!Ir(e2, t4.length)) return NaN;\n for (let n3 = e2[0]; n3 <= e2[1]; ++n3) if (rr(t4[n3], r2, true)) return 0;\n let i2 = 1 / 0;\n for (let s2 = e2[0]; s2 < e2[1]; ++s2) {\n const e3 = t4[s2], a2 = t4[s2 + 1];\n for (const t5 of r2) for (let r3 = 0, s3 = t5.length, o2 = s3 - 1; r3 < s3; o2 = r3++) {\n const s4 = t5[o2], l2 = t5[r3];\n if (tr(e3, a2, s4, l2)) return 0;\n i2 = Math.min(i2, Fr(e3, a2, s4, l2, n2));\n }\n }\n return i2;\n }\n function Or(t4, e2) {\n for (const r2 of t4) for (const t5 of r2) if (rr(t5, e2, true)) return true;\n return false;\n }\n function jr(t4, e2, r2, n2 = 1 / 0) {\n const i2 = Cr(t4), s2 = Cr(e2);\n if (n2 !== 1 / 0 && Vr(i2, s2, r2) >= n2) return n2;\n if (We(i2, s2)) {\n if (Or(t4, e2)) return 0;\n } else if (Or(e2, t4)) return 0;\n let a2 = 1 / 0;\n for (const n3 of t4) for (let t5 = 0, i3 = n3.length, s3 = i3 - 1; t5 < i3; s3 = t5++) {\n const i4 = n3[s3], o2 = n3[t5];\n for (const t6 of e2) for (let e3 = 0, n4 = t6.length, s4 = n4 - 1; e3 < n4; s4 = e3++) {\n const n5 = t6[s4], l2 = t6[e3];\n if (tr(i4, o2, n5, l2)) return 0;\n a2 = Math.min(a2, Fr(i4, o2, n5, l2, r2));\n }\n }\n return a2;\n }\n function Rr(t4, e2, r2, n2, i2, s2) {\n if (!s2) return;\n const a2 = Vr(Pr(n2, s2), i2, r2);\n a2 < e2 && t4.push([a2, s2, [0, 0]]);\n }\n function Ur(t4, e2, r2, n2, i2, s2, a2) {\n if (!s2 || !a2) return;\n const o2 = Vr(Pr(n2, s2), Pr(i2, a2), r2);\n o2 < e2 && t4.push([o2, s2, a2]);\n }\n function qr(t4, e2, r2, n2, i2 = 1 / 0) {\n let s2 = Math.min(n2.distance(t4[0], r2[0][0]), i2);\n if (0 === s2) return s2;\n const a2 = new fr([[0, [0, t4.length - 1], [0, 0]]], kr), o2 = Cr(r2);\n for (; a2.length > 0; ) {\n const i3 = a2.pop();\n if (i3[0] >= s2) continue;\n const l2 = i3[1], u2 = e2 ? 50 : 100;\n if (Mr(l2) <= u2) {\n if (!Ir(l2, t4.length)) return NaN;\n if (e2) {\n const e3 = Dr(t4, l2, r2, n2);\n if (isNaN(e3) || 0 === e3) return e3;\n s2 = Math.min(s2, e3);\n } else for (let e3 = l2[0]; e3 <= l2[1]; ++e3) {\n const i4 = Lr(t4[e3], r2, n2);\n if (s2 = Math.min(s2, i4), 0 === s2) return 0;\n }\n } else {\n const r3 = zr(l2, e2);\n Rr(a2, s2, n2, t4, o2, r3[0]), Rr(a2, s2, n2, t4, o2, r3[1]);\n }\n }\n return s2;\n }\n function Nr(t4, e2, r2, n2, i2, s2 = 1 / 0) {\n let a2 = Math.min(s2, i2.distance(t4[0], r2[0]));\n if (0 === a2) return a2;\n const o2 = new fr([[0, [0, t4.length - 1], [0, r2.length - 1]]], kr);\n for (; o2.length > 0; ) {\n const s3 = o2.pop();\n if (s3[0] >= a2) continue;\n const l2 = s3[1], u2 = s3[2], c2 = e2 ? 50 : 100, h2 = n2 ? 50 : 100;\n if (Mr(l2) <= c2 && Mr(u2) <= h2) {\n if (!Ir(l2, t4.length) && Ir(u2, r2.length)) return NaN;\n let s4;\n if (e2 && n2) s4 = Tr(t4, l2, r2, u2, i2), a2 = Math.min(a2, s4);\n else if (e2 && !n2) {\n const e3 = t4.slice(l2[0], l2[1] + 1);\n for (let t5 = u2[0]; t5 <= u2[1]; ++t5) if (s4 = Er(r2[t5], e3, i2), a2 = Math.min(a2, s4), 0 === a2) return a2;\n } else if (!e2 && n2) {\n const e3 = r2.slice(u2[0], u2[1] + 1);\n for (let r3 = l2[0]; r3 <= l2[1]; ++r3) if (s4 = Er(t4[r3], e3, i2), a2 = Math.min(a2, s4), 0 === a2) return a2;\n } else s4 = $r(t4, l2, r2, u2, i2), a2 = Math.min(a2, s4);\n } else {\n const s4 = zr(l2, e2), c3 = zr(u2, n2);\n Ur(o2, a2, i2, t4, r2, s4[0], c3[0]), Ur(o2, a2, i2, t4, r2, s4[0], c3[1]), Ur(o2, a2, i2, t4, r2, s4[1], c3[0]), Ur(o2, a2, i2, t4, r2, s4[1], c3[1]);\n }\n }\n return a2;\n }\n function Zr(t4) {\n return \"MultiPolygon\" === t4.type ? t4.coordinates.map((t5) => ({ type: \"Polygon\", coordinates: t5 })) : \"MultiLineString\" === t4.type ? t4.coordinates.map((t5) => ({ type: \"LineString\", coordinates: t5 })) : \"MultiPoint\" === t4.type ? t4.coordinates.map((t5) => ({ type: \"Point\", coordinates: t5 })) : [t4];\n }\n class Gr {\n constructor(t4, e2) {\n this.type = ut, this.geojson = t4, this.geometries = e2;\n }\n static parse(t4, e2) {\n if (2 !== t4.length) return e2.error(`'distance' expression requires exactly one argument, but found ${t4.length - 1} instead.`);\n if (re(t4[1])) {\n const e3 = t4[1];\n if (\"FeatureCollection\" === e3.type) return new Gr(e3, e3.features.map((t5) => Zr(t5.geometry)).flat());\n if (\"Feature\" === e3.type) return new Gr(e3, Zr(e3.geometry));\n if (\"type\" in e3 && \"coordinates\" in e3) return new Gr(e3, Zr(e3));\n }\n return e2.error(\"'distance' expression requires valid geojson object that contains polygon geometry type.\");\n }\n evaluate(t4) {\n if (null != t4.geometry() && null != t4.canonicalID()) {\n if (\"Point\" === t4.geometryType()) return function(t5, e2) {\n const r2 = t5.geometry(), n2 = r2.flat().map((e3) => Ye([e3.x, e3.y], t5.canonical));\n if (0 === r2.length) return NaN;\n const i2 = new Sr(n2[0][1]);\n let s2 = 1 / 0;\n for (const t6 of e2) {\n switch (t6.type) {\n case \"Point\":\n s2 = Math.min(s2, Nr(n2, false, [t6.coordinates], false, i2, s2));\n break;\n case \"LineString\":\n s2 = Math.min(s2, Nr(n2, false, t6.coordinates, true, i2, s2));\n break;\n case \"Polygon\":\n s2 = Math.min(s2, qr(n2, false, t6.coordinates, i2, s2));\n }\n if (0 === s2) return s2;\n }\n return s2;\n }(t4, this.geometries);\n if (\"LineString\" === t4.geometryType()) return function(t5, e2) {\n const r2 = t5.geometry(), n2 = r2.flat().map((e3) => Ye([e3.x, e3.y], t5.canonical));\n if (0 === r2.length) return NaN;\n const i2 = new Sr(n2[0][1]);\n let s2 = 1 / 0;\n for (const t6 of e2) {\n switch (t6.type) {\n case \"Point\":\n s2 = Math.min(s2, Nr(n2, true, [t6.coordinates], false, i2, s2));\n break;\n case \"LineString\":\n s2 = Math.min(s2, Nr(n2, true, t6.coordinates, true, i2, s2));\n break;\n case \"Polygon\":\n s2 = Math.min(s2, qr(n2, true, t6.coordinates, i2, s2));\n }\n if (0 === s2) return s2;\n }\n return s2;\n }(t4, this.geometries);\n if (\"Polygon\" === t4.geometryType()) return function(t5, e2) {\n const r2 = t5.geometry();\n if (0 === r2.length || 0 === r2[0].length) return NaN;\n const n2 = xr(r2, 0).map((e3) => e3.map((e4) => e4.map((e5) => Ye([e5.x, e5.y], t5.canonical)))), i2 = new Sr(n2[0][0][0][1]);\n let s2 = 1 / 0;\n for (const t6 of e2) for (const e3 of n2) {\n switch (t6.type) {\n case \"Point\":\n s2 = Math.min(s2, qr([t6.coordinates], false, e3, i2, s2));\n break;\n case \"LineString\":\n s2 = Math.min(s2, qr(t6.coordinates, true, e3, i2, s2));\n break;\n case \"Polygon\":\n s2 = Math.min(s2, jr(e3, t6.coordinates, i2, s2));\n }\n if (0 === s2) return s2;\n }\n return s2;\n }(t4, this.geometries);\n }\n return NaN;\n }\n eachChild() {\n }\n outputDefined() {\n return true;\n }\n }\n const Kr = { \"==\": Le, \"!=\": De, \">\": je, \"<\": Oe, \">=\": Ue, \"<=\": Re, array: le, at: me, boolean: le, case: be, coalesce: Ee, collator: qe, format: Ze, image: Ge, in: ge, \"index-of\": xe, interpolate: Be, \"interpolate-hcl\": Be, \"interpolate-lab\": Be, length: Ke, let: de, literal: se, match: ve, number: le, \"number-format\": Ne, object: le, slice: we, step: Ae, string: le, \"to-boolean\": ce, \"to-color\": ce, \"to-number\": ce, \"to-string\": ce, var: ye, within: pr, distance: Gr };\n class Xr {\n constructor(t4, e2, r2, n2) {\n this.name = t4, this.type = e2, this._evaluate = r2, this.args = n2;\n }\n evaluate(t4) {\n return this._evaluate(t4, this.args);\n }\n eachChild(t4) {\n this.args.forEach(t4);\n }\n outputDefined() {\n return false;\n }\n static parse(t4, e2) {\n const r2 = t4[0], n2 = Xr.definitions[r2];\n if (!n2) return e2.error(`Unknown expression \"${r2}\". If you wanted a literal array, use [\"literal\", [...]].`, 0);\n const i2 = Array.isArray(n2) ? n2[0] : n2.type, s2 = Array.isArray(n2) ? [[n2[1], n2[2]]] : n2.overloads, a2 = s2.filter(([e3]) => !Array.isArray(e3) || e3.length === t4.length - 1);\n let o2 = null;\n for (const [n3, s3] of a2) {\n o2 = new fe(e2.registry, Qr, e2.path, null, e2.scope);\n const a3 = [];\n let l2 = false;\n for (let e3 = 1; e3 < t4.length; e3++) {\n const r3 = t4[e3], i3 = Array.isArray(n3) ? n3[e3 - 1] : n3.type, s4 = o2.parse(r3, 1 + a3.length, i3);\n if (!s4) {\n l2 = true;\n break;\n }\n a3.push(s4);\n }\n if (!l2) if (Array.isArray(n3) && n3.length !== a3.length) o2.error(`Expected ${n3.length} arguments, but found ${a3.length} instead.`);\n else {\n for (let t5 = 0; t5 < a3.length; t5++) {\n const e3 = Array.isArray(n3) ? n3[t5] : n3.type, r3 = a3[t5];\n o2.concat(t5 + 1).checkSubtype(e3, r3.type);\n }\n if (0 === o2.errors.length) return new Xr(r2, i2, s3, a3);\n }\n }\n if (1 === a2.length) e2.errors.push(...o2.errors);\n else {\n const r3 = (a2.length ? a2 : s2).map(([t5]) => {\n return e3 = t5, Array.isArray(e3) ? `(${e3.map(wt).join(\", \")})` : `(${wt(e3.type)}...)`;\n var e3;\n }).join(\" | \"), n3 = [];\n for (let r4 = 1; r4 < t4.length; r4++) {\n const i3 = e2.parse(t4[r4], 1 + n3.length);\n if (!i3) return null;\n n3.push(wt(i3.type));\n }\n e2.error(`Expected arguments of type ${r3}, but found (${n3.join(\", \")}) instead.`);\n }\n return null;\n }\n static register(t4, e2) {\n Xr.definitions = e2;\n for (const r2 in e2) t4[r2] = Xr;\n }\n }\n function Hr(t4, [e2, r2, n2, i2]) {\n e2 = e2.evaluate(t4), r2 = r2.evaluate(t4), n2 = n2.evaluate(t4);\n const s2 = i2 ? i2.evaluate(t4) : 1, a2 = ee(e2, r2, n2, s2);\n if (a2) throw new ae(a2);\n return new Kt(e2 / 255, r2 / 255, n2 / 255, s2, false);\n }\n function Yr(t4, e2) {\n return t4 in e2;\n }\n function Jr(t4, e2) {\n const r2 = e2[t4];\n return void 0 === r2 ? null : r2;\n }\n function Wr(t4) {\n return { type: t4 };\n }\n function Qr(t4) {\n if (t4 instanceof ye) return Qr(t4.boundExpression);\n if (t4 instanceof Xr && \"error\" === t4.name) return false;\n if (t4 instanceof qe) return false;\n if (t4 instanceof pr) return false;\n if (t4 instanceof Gr) return false;\n const e2 = t4 instanceof ce || t4 instanceof le;\n let r2 = true;\n return t4.eachChild((t5) => {\n r2 = e2 ? r2 && Qr(t5) : r2 && t5 instanceof se;\n }), !!r2 && tn(t4) && rn(t4, [\"zoom\", \"heatmap-density\", \"line-progress\", \"accumulated\", \"is-supported-script\"]);\n }\n function tn(t4) {\n if (t4 instanceof Xr) {\n if (\"get\" === t4.name && 1 === t4.args.length) return false;\n if (\"feature-state\" === t4.name) return false;\n if (\"has\" === t4.name && 1 === t4.args.length) return false;\n if (\"properties\" === t4.name || \"geometry-type\" === t4.name || \"id\" === t4.name) return false;\n if (/^filter-/.test(t4.name)) return false;\n }\n if (t4 instanceof pr) return false;\n if (t4 instanceof Gr) return false;\n let e2 = true;\n return t4.eachChild((t5) => {\n e2 && !tn(t5) && (e2 = false);\n }), e2;\n }\n function en(t4) {\n if (t4 instanceof Xr && \"feature-state\" === t4.name) return false;\n let e2 = true;\n return t4.eachChild((t5) => {\n e2 && !en(t5) && (e2 = false);\n }), e2;\n }\n function rn(t4, e2) {\n if (t4 instanceof Xr && e2.indexOf(t4.name) >= 0) return false;\n let r2 = true;\n return t4.eachChild((t5) => {\n r2 && !rn(t5, e2) && (r2 = false);\n }), r2;\n }\n function nn(t4) {\n return { result: \"success\", value: t4 };\n }\n function sn(t4) {\n return { result: \"error\", value: t4 };\n }\n function an(t4) {\n return \"data-driven\" === t4[\"property-type\"] || \"cross-faded-data-driven\" === t4[\"property-type\"];\n }\n function on(t4) {\n return !!t4.expression && t4.expression.parameters.indexOf(\"zoom\") > -1;\n }\n function ln(t4) {\n return !!t4.expression && t4.expression.interpolated;\n }\n function un(t4) {\n return t4 instanceof Number ? \"number\" : t4 instanceof String ? \"string\" : t4 instanceof Boolean ? \"boolean\" : Array.isArray(t4) ? \"array\" : null === t4 ? \"null\" : typeof t4;\n }\n function cn(t4) {\n return \"object\" == typeof t4 && null !== t4 && !Array.isArray(t4);\n }\n function hn(t4) {\n return t4;\n }\n function pn(t4, e2) {\n const r2 = \"color\" === e2.type, n2 = t4.stops && \"object\" == typeof t4.stops[0][0], i2 = n2 || !(n2 || void 0 !== t4.property), s2 = t4.type || (ln(e2) ? \"exponential\" : \"interval\");\n if (r2 || \"padding\" === e2.type) {\n const n3 = r2 ? Kt.parse : Jt.parse;\n (t4 = st({}, t4)).stops && (t4.stops = t4.stops.map((t5) => [t5[0], n3(t5[1])])), t4.default = n3(t4.default ? t4.default : e2.default);\n }\n if (t4.colorSpace && \"rgb\" !== (a2 = t4.colorSpace) && \"hcl\" !== a2 && \"lab\" !== a2) throw new Error(`Unknown color space: \"${t4.colorSpace}\"`);\n var a2;\n let o2, l2, u2;\n if (\"exponential\" === s2) o2 = mn;\n else if (\"interval\" === s2) o2 = yn;\n else if (\"categorical\" === s2) {\n o2 = dn, l2 = /* @__PURE__ */ Object.create(null);\n for (const e3 of t4.stops) l2[e3[0]] = e3[1];\n u2 = typeof t4.stops[0][0];\n } else {\n if (\"identity\" !== s2) throw new Error(`Unknown function type \"${s2}\"`);\n o2 = gn;\n }\n if (n2) {\n const r3 = {}, n3 = [];\n for (let e3 = 0; e3 < t4.stops.length; e3++) {\n const i4 = t4.stops[e3], s4 = i4[0].zoom;\n void 0 === r3[s4] && (r3[s4] = { zoom: s4, type: t4.type, property: t4.property, default: t4.default, stops: [] }, n3.push(s4)), r3[s4].stops.push([i4[0].value, i4[1]]);\n }\n const i3 = [];\n for (const t5 of n3) i3.push([r3[t5].zoom, pn(r3[t5], e2)]);\n const s3 = { name: \"linear\" };\n return { kind: \"composite\", interpolationType: s3, interpolationFactor: Be.interpolationFactor.bind(void 0, s3), zoomStops: i3.map((t5) => t5[0]), evaluate: ({ zoom: r4 }, n4) => mn({ stops: i3, base: t4.base }, e2, r4).evaluate(r4, n4) };\n }\n if (i2) {\n const r3 = \"exponential\" === s2 ? { name: \"exponential\", base: void 0 !== t4.base ? t4.base : 1 } : null;\n return { kind: \"camera\", interpolationType: r3, interpolationFactor: Be.interpolationFactor.bind(void 0, r3), zoomStops: t4.stops.map((t5) => t5[0]), evaluate: ({ zoom: r4 }) => o2(t4, e2, r4, l2, u2) };\n }\n return { kind: \"source\", evaluate(r3, n3) {\n const i3 = n3 && n3.properties ? n3.properties[t4.property] : void 0;\n return void 0 === i3 ? fn(t4.default, e2.default) : o2(t4, e2, i3, l2, u2);\n } };\n }\n function fn(t4, e2, r2) {\n return void 0 !== t4 ? t4 : void 0 !== e2 ? e2 : void 0 !== r2 ? r2 : void 0;\n }\n function dn(t4, e2, r2, n2, i2) {\n return fn(typeof r2 === i2 ? n2[r2] : void 0, t4.default, e2.default);\n }\n function yn(t4, e2, r2) {\n if (\"number\" !== un(r2)) return fn(t4.default, e2.default);\n const n2 = t4.stops.length;\n if (1 === n2) return t4.stops[0][1];\n if (r2 <= t4.stops[0][0]) return t4.stops[0][1];\n if (r2 >= t4.stops[n2 - 1][0]) return t4.stops[n2 - 1][1];\n const i2 = _e(t4.stops.map((t5) => t5[0]), r2);\n return t4.stops[i2][1];\n }\n function mn(t4, e2, r2) {\n const n2 = void 0 !== t4.base ? t4.base : 1;\n if (\"number\" !== un(r2)) return fn(t4.default, e2.default);\n const i2 = t4.stops.length;\n if (1 === i2) return t4.stops[0][1];\n if (r2 <= t4.stops[0][0]) return t4.stops[0][1];\n if (r2 >= t4.stops[i2 - 1][0]) return t4.stops[i2 - 1][1];\n const s2 = _e(t4.stops.map((t5) => t5[0]), r2), a2 = function(t5, e3, r3, n3) {\n const i3 = n3 - r3, s3 = t5 - r3;\n return 0 === i3 ? 0 : 1 === e3 ? s3 / i3 : (Math.pow(e3, s3) - 1) / (Math.pow(e3, i3) - 1);\n }(r2, n2, t4.stops[s2][0], t4.stops[s2 + 1][0]), o2 = t4.stops[s2][1], l2 = t4.stops[s2 + 1][1], u2 = Ce[e2.type] || hn;\n return \"function\" == typeof o2.evaluate ? { evaluate(...e3) {\n const r3 = o2.evaluate.apply(void 0, e3), n3 = l2.evaluate.apply(void 0, e3);\n if (void 0 !== r3 && void 0 !== n3) return u2(r3, n3, a2, t4.colorSpace);\n } } : u2(o2, l2, a2, t4.colorSpace);\n }\n function gn(t4, e2, r2) {\n switch (e2.type) {\n case \"color\":\n r2 = Kt.parse(r2);\n break;\n case \"formatted\":\n r2 = Yt.fromString(r2.toString());\n break;\n case \"resolvedImage\":\n r2 = te.fromString(r2.toString());\n break;\n case \"padding\":\n r2 = Jt.parse(r2);\n break;\n default:\n un(r2) === e2.type || \"enum\" === e2.type && e2.values[r2] || (r2 = void 0);\n }\n return fn(r2, t4.default, e2.default);\n }\n Xr.register(Kr, { error: [{ kind: \"error\" }, [ct], (t4, [e2]) => {\n throw new ae(e2.evaluate(t4));\n }], typeof: [ct, [dt], (t4, [e2]) => wt(ne(e2.evaluate(t4)))], \"to-rgba\": [bt(ut, 4), [pt], (t4, [e2]) => {\n const [r2, n2, i2, s2] = e2.evaluate(t4).rgb;\n return [255 * r2, 255 * n2, 255 * i2, s2];\n }], rgb: [pt, [ut, ut, ut], Hr], rgba: [pt, [ut, ut, ut, ut], Hr], has: { type: ht, overloads: [[[ct], (t4, [e2]) => Yr(e2.evaluate(t4), t4.properties())], [[ct, ft], (t4, [e2, r2]) => Yr(e2.evaluate(t4), r2.evaluate(t4))]] }, get: { type: dt, overloads: [[[ct], (t4, [e2]) => Jr(e2.evaluate(t4), t4.properties())], [[ct, ft], (t4, [e2, r2]) => Jr(e2.evaluate(t4), r2.evaluate(t4))]] }, \"feature-state\": [dt, [ct], (t4, [e2]) => Jr(e2.evaluate(t4), t4.featureState || {})], properties: [ft, [], (t4) => t4.properties()], \"geometry-type\": [ct, [], (t4) => t4.geometryType()], id: [dt, [], (t4) => t4.id()], zoom: [ut, [], (t4) => t4.globals.zoom], \"heatmap-density\": [ut, [], (t4) => t4.globals.heatmapDensity || 0], \"line-progress\": [ut, [], (t4) => t4.globals.lineProgress || 0], accumulated: [dt, [], (t4) => void 0 === t4.globals.accumulated ? null : t4.globals.accumulated], \"+\": [ut, Wr(ut), (t4, e2) => {\n let r2 = 0;\n for (const n2 of e2) r2 += n2.evaluate(t4);\n return r2;\n }], \"*\": [ut, Wr(ut), (t4, e2) => {\n let r2 = 1;\n for (const n2 of e2) r2 *= n2.evaluate(t4);\n return r2;\n }], \"-\": { type: ut, overloads: [[[ut, ut], (t4, [e2, r2]) => e2.evaluate(t4) - r2.evaluate(t4)], [[ut], (t4, [e2]) => -e2.evaluate(t4)]] }, \"/\": [ut, [ut, ut], (t4, [e2, r2]) => e2.evaluate(t4) / r2.evaluate(t4)], \"%\": [ut, [ut, ut], (t4, [e2, r2]) => e2.evaluate(t4) % r2.evaluate(t4)], ln2: [ut, [], () => Math.LN2], pi: [ut, [], () => Math.PI], e: [ut, [], () => Math.E], \"^\": [ut, [ut, ut], (t4, [e2, r2]) => Math.pow(e2.evaluate(t4), r2.evaluate(t4))], sqrt: [ut, [ut], (t4, [e2]) => Math.sqrt(e2.evaluate(t4))], log10: [ut, [ut], (t4, [e2]) => Math.log(e2.evaluate(t4)) / Math.LN10], ln: [ut, [ut], (t4, [e2]) => Math.log(e2.evaluate(t4))], log2: [ut, [ut], (t4, [e2]) => Math.log(e2.evaluate(t4)) / Math.LN2], sin: [ut, [ut], (t4, [e2]) => Math.sin(e2.evaluate(t4))], cos: [ut, [ut], (t4, [e2]) => Math.cos(e2.evaluate(t4))], tan: [ut, [ut], (t4, [e2]) => Math.tan(e2.evaluate(t4))], asin: [ut, [ut], (t4, [e2]) => Math.asin(e2.evaluate(t4))], acos: [ut, [ut], (t4, [e2]) => Math.acos(e2.evaluate(t4))], atan: [ut, [ut], (t4, [e2]) => Math.atan(e2.evaluate(t4))], min: [ut, Wr(ut), (t4, e2) => Math.min(...e2.map((e3) => e3.evaluate(t4)))], max: [ut, Wr(ut), (t4, e2) => Math.max(...e2.map((e3) => e3.evaluate(t4)))], abs: [ut, [ut], (t4, [e2]) => Math.abs(e2.evaluate(t4))], round: [ut, [ut], (t4, [e2]) => {\n const r2 = e2.evaluate(t4);\n return r2 < 0 ? -Math.round(-r2) : Math.round(r2);\n }], floor: [ut, [ut], (t4, [e2]) => Math.floor(e2.evaluate(t4))], ceil: [ut, [ut], (t4, [e2]) => Math.ceil(e2.evaluate(t4))], \"filter-==\": [ht, [ct, dt], (t4, [e2, r2]) => t4.properties()[e2.value] === r2.value], \"filter-id-==\": [ht, [dt], (t4, [e2]) => t4.id() === e2.value], \"filter-type-==\": [ht, [ct], (t4, [e2]) => t4.geometryType() === e2.value], \"filter-<\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 < i2;\n }], \"filter-id-<\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 < n2;\n }], \"filter->\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 > i2;\n }], \"filter-id->\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 > n2;\n }], \"filter-<=\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 <= i2;\n }], \"filter-id-<=\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 <= n2;\n }], \"filter->=\": [ht, [ct, dt], (t4, [e2, r2]) => {\n const n2 = t4.properties()[e2.value], i2 = r2.value;\n return typeof n2 == typeof i2 && n2 >= i2;\n }], \"filter-id->=\": [ht, [dt], (t4, [e2]) => {\n const r2 = t4.id(), n2 = e2.value;\n return typeof r2 == typeof n2 && r2 >= n2;\n }], \"filter-has\": [ht, [dt], (t4, [e2]) => e2.value in t4.properties()], \"filter-has-id\": [ht, [], (t4) => null !== t4.id() && void 0 !== t4.id()], \"filter-type-in\": [ht, [bt(ct)], (t4, [e2]) => e2.value.indexOf(t4.geometryType()) >= 0], \"filter-id-in\": [ht, [bt(dt)], (t4, [e2]) => e2.value.indexOf(t4.id()) >= 0], \"filter-in-small\": [ht, [ct, bt(dt)], (t4, [e2, r2]) => r2.value.indexOf(t4.properties()[e2.value]) >= 0], \"filter-in-large\": [ht, [ct, bt(dt)], (t4, [e2, r2]) => function(t5, e3, r3, n2) {\n for (; r3 <= n2; ) {\n const i2 = r3 + n2 >> 1;\n if (e3[i2] === t5) return true;\n e3[i2] > t5 ? n2 = i2 - 1 : r3 = i2 + 1;\n }\n return false;\n }(t4.properties()[e2.value], r2.value, 0, r2.value.length - 1)], all: { type: ht, overloads: [[[ht, ht], (t4, [e2, r2]) => e2.evaluate(t4) && r2.evaluate(t4)], [Wr(ht), (t4, e2) => {\n for (const r2 of e2) if (!r2.evaluate(t4)) return false;\n return true;\n }]] }, any: { type: ht, overloads: [[[ht, ht], (t4, [e2, r2]) => e2.evaluate(t4) || r2.evaluate(t4)], [Wr(ht), (t4, e2) => {\n for (const r2 of e2) if (r2.evaluate(t4)) return true;\n return false;\n }]] }, \"!\": [ht, [ht], (t4, [e2]) => !e2.evaluate(t4)], \"is-supported-script\": [ht, [ct], (t4, [e2]) => {\n const r2 = t4.globals && t4.globals.isSupportedScript;\n return !r2 || r2(e2.evaluate(t4));\n }], upcase: [ct, [ct], (t4, [e2]) => e2.evaluate(t4).toUpperCase()], downcase: [ct, [ct], (t4, [e2]) => e2.evaluate(t4).toLowerCase()], concat: [ct, Wr(dt), (t4, e2) => e2.map((e3) => ie(e3.evaluate(t4))).join(\"\")], \"resolved-locale\": [ct, [yt], (t4, [e2]) => e2.evaluate(t4).resolvedLocale()] });\n class xn {\n constructor(t4, e2) {\n var r2;\n this.expression = t4, this._warningHistory = {}, this._evaluator = new pe(), this._defaultValue = e2 ? \"color\" === (r2 = e2).type && cn(r2.default) ? new Kt(0, 0, 0, 0) : \"color\" === r2.type ? Kt.parse(r2.default) || null : \"padding\" === r2.type ? Jt.parse(r2.default) || null : \"variableAnchorOffsetCollection\" === r2.type ? Qt.parse(r2.default) || null : void 0 === r2.default ? null : r2.default : null, this._enumValues = e2 && \"enum\" === e2.type ? e2.values : null;\n }\n evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2) {\n return this._evaluator.globals = t4, this._evaluator.feature = e2, this._evaluator.featureState = r2, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = s2, this.expression.evaluate(this._evaluator);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n this._evaluator.globals = t4, this._evaluator.feature = e2 || null, this._evaluator.featureState = r2 || null, this._evaluator.canonical = n2, this._evaluator.availableImages = i2 || null, this._evaluator.formattedSection = s2 || null;\n try {\n const t5 = this.expression.evaluate(this._evaluator);\n if (null == t5 || \"number\" == typeof t5 && t5 != t5) return this._defaultValue;\n if (this._enumValues && !(t5 in this._enumValues)) throw new ae(`Expected value to be one of ${Object.keys(this._enumValues).map((t6) => JSON.stringify(t6)).join(\", \")}, but found ${JSON.stringify(t5)} instead.`);\n return t5;\n } catch (t5) {\n return this._warningHistory[t5.message] || (this._warningHistory[t5.message] = true, \"undefined\" != typeof console && console.warn(t5.message)), this._defaultValue;\n }\n }\n }\n function vn(t4) {\n return Array.isArray(t4) && t4.length > 0 && \"string\" == typeof t4[0] && t4[0] in Kr;\n }\n function bn(t4, e2) {\n const r2 = new fe(Kr, Qr, [], e2 ? function(t5) {\n const e3 = { color: pt, string: ct, number: ut, enum: ct, boolean: ht, formatted: mt, padding: gt, resolvedImage: xt, variableAnchorOffsetCollection: vt };\n return \"array\" === t5.type ? bt(e3[t5.value] || dt, t5.length) : e3[t5.type];\n }(e2) : void 0), n2 = r2.parse(t4, void 0, void 0, void 0, e2 && \"string\" === e2.type ? { typeAnnotation: \"coerce\" } : void 0);\n return n2 ? nn(new xn(n2, e2)) : sn(r2.errors);\n }\n class wn {\n constructor(t4, e2) {\n this.kind = t4, this._styleExpression = e2, this.isStateDependent = \"constant\" !== t4 && !en(e2.expression);\n }\n evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluate(t4, e2, r2, n2, i2, s2);\n }\n }\n class _n {\n constructor(t4, e2, r2, n2) {\n this.kind = t4, this.zoomStops = r2, this._styleExpression = e2, this.isStateDependent = \"camera\" !== t4 && !en(e2.expression), this.interpolationType = n2;\n }\n evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluateWithoutErrorHandling(t4, e2, r2, n2, i2, s2);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n return this._styleExpression.evaluate(t4, e2, r2, n2, i2, s2);\n }\n interpolationFactor(t4, e2, r2) {\n return this.interpolationType ? Be.interpolationFactor(this.interpolationType, t4, e2, r2) : 0;\n }\n }\n function An(t4, e2) {\n const r2 = bn(t4, e2);\n if (\"error\" === r2.result) return r2;\n const n2 = r2.value.expression, i2 = tn(n2);\n if (!i2 && !an(e2)) return sn([new at(\"\", \"data expressions not supported\")]);\n const s2 = rn(n2, [\"zoom\"]);\n if (!s2 && !on(e2)) return sn([new at(\"\", \"zoom expressions not supported\")]);\n const a2 = kn(n2);\n return a2 || s2 ? a2 instanceof at ? sn([a2]) : a2 instanceof Be && !ln(e2) ? sn([new at(\"\", '\"interpolate\" expressions cannot be used with this property')]) : nn(a2 ? new _n(i2 ? \"camera\" : \"composite\", r2.value, a2.labels, a2 instanceof Be ? a2.interpolation : void 0) : new wn(i2 ? \"constant\" : \"source\", r2.value)) : sn([new at(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.')]);\n }\n class Sn {\n constructor(t4, e2) {\n this._parameters = t4, this._specification = e2, st(this, pn(this._parameters, this._specification));\n }\n static deserialize(t4) {\n return new Sn(t4._parameters, t4._specification);\n }\n static serialize(t4) {\n return { _parameters: t4._parameters, _specification: t4._specification };\n }\n }\n function kn(t4) {\n let e2 = null;\n if (t4 instanceof de) e2 = kn(t4.result);\n else if (t4 instanceof Ee) {\n for (const r2 of t4.args) if (e2 = kn(r2), e2) break;\n } else (t4 instanceof Ae || t4 instanceof Be) && t4.input instanceof Xr && \"zoom\" === t4.input.name && (e2 = t4);\n return e2 instanceof at || t4.eachChild((t5) => {\n const r2 = kn(t5);\n r2 instanceof at ? e2 = r2 : !e2 && r2 ? e2 = new at(\"\", '\"zoom\" expression may only be used as input to a top-level \"step\" or \"interpolate\" expression.') : e2 && r2 && e2 !== r2 && (e2 = new at(\"\", 'Only one zoom-based \"step\" or \"interpolate\" subexpression may be used in an expression.'));\n }), e2;\n }\n function Mn(t4) {\n if (true === t4 || false === t4) return true;\n if (!Array.isArray(t4) || 0 === t4.length) return false;\n switch (t4[0]) {\n case \"has\":\n return t4.length >= 2 && \"$id\" !== t4[1] && \"$type\" !== t4[1];\n case \"in\":\n return t4.length >= 3 && (\"string\" != typeof t4[1] || Array.isArray(t4[2]));\n case \"!in\":\n case \"!has\":\n case \"none\":\n return false;\n case \"==\":\n case \"!=\":\n case \">\":\n case \">=\":\n case \"<\":\n case \"<=\":\n return 3 !== t4.length || Array.isArray(t4[1]) || Array.isArray(t4[2]);\n case \"any\":\n case \"all\":\n for (const e2 of t4.slice(1)) if (!Mn(e2) && \"boolean\" != typeof e2) return false;\n return true;\n default:\n return true;\n }\n }\n const In = { type: \"boolean\", default: false, transition: false, \"property-type\": \"data-driven\", expression: { interpolated: false, parameters: [\"zoom\", \"feature\"] } };\n function zn(t4) {\n if (null == t4) return { filter: () => true, needGeometry: false };\n Mn(t4) || (t4 = Bn(t4));\n const e2 = bn(t4, In);\n if (\"error\" === e2.result) throw new Error(e2.value.map((t5) => `${t5.key}: ${t5.message}`).join(\", \"));\n return { filter: (t5, r2, n2) => e2.value.evaluate(t5, r2, {}, n2), needGeometry: Cn(t4) };\n }\n function Pn(t4, e2) {\n return t4 < e2 ? -1 : t4 > e2 ? 1 : 0;\n }\n function Cn(t4) {\n if (!Array.isArray(t4)) return false;\n if (\"within\" === t4[0] || \"distance\" === t4[0]) return true;\n for (let e2 = 1; e2 < t4.length; e2++) if (Cn(t4[e2])) return true;\n return false;\n }\n function Bn(t4) {\n if (!t4) return true;\n const e2 = t4[0];\n return t4.length <= 1 ? \"any\" !== e2 : \"==\" === e2 ? Vn(t4[1], t4[2], \"==\") : \"!=\" === e2 ? Tn(Vn(t4[1], t4[2], \"==\")) : \"<\" === e2 || \">\" === e2 || \"<=\" === e2 || \">=\" === e2 ? Vn(t4[1], t4[2], e2) : \"any\" === e2 ? (r2 = t4.slice(1), [\"any\"].concat(r2.map(Bn))) : \"all\" === e2 ? [\"all\"].concat(t4.slice(1).map(Bn)) : \"none\" === e2 ? [\"all\"].concat(t4.slice(1).map(Bn).map(Tn)) : \"in\" === e2 ? En(t4[1], t4.slice(2)) : \"!in\" === e2 ? Tn(En(t4[1], t4.slice(2))) : \"has\" === e2 ? Fn(t4[1]) : \"!has\" !== e2 || Tn(Fn(t4[1]));\n var r2;\n }\n function Vn(t4, e2, r2) {\n switch (t4) {\n case \"$type\":\n return [`filter-type-${r2}`, e2];\n case \"$id\":\n return [`filter-id-${r2}`, e2];\n default:\n return [`filter-${r2}`, t4, e2];\n }\n }\n function En(t4, e2) {\n if (0 === e2.length) return false;\n switch (t4) {\n case \"$type\":\n return [\"filter-type-in\", [\"literal\", e2]];\n case \"$id\":\n return [\"filter-id-in\", [\"literal\", e2]];\n default:\n return e2.length > 200 && !e2.some((t5) => typeof t5 != typeof e2[0]) ? [\"filter-in-large\", t4, [\"literal\", e2.sort(Pn)]] : [\"filter-in-small\", t4, [\"literal\", e2]];\n }\n }\n function Fn(t4) {\n switch (t4) {\n case \"$type\":\n return true;\n case \"$id\":\n return [\"filter-has-id\"];\n default:\n return [\"filter-has\", t4];\n }\n }\n function Tn(t4) {\n return [\"!\", t4];\n }\n function $n(t4) {\n const e2 = typeof t4;\n if (\"number\" === e2 || \"boolean\" === e2 || \"string\" === e2 || null == t4) return JSON.stringify(t4);\n if (Array.isArray(t4)) {\n let e3 = \"[\";\n for (const r3 of t4) e3 += `${$n(r3)},`;\n return `${e3}]`;\n }\n const r2 = Object.keys(t4).sort();\n let n2 = \"{\";\n for (let e3 = 0; e3 < r2.length; e3++) n2 += `${JSON.stringify(r2[e3])}:${$n(t4[r2[e3]])},`;\n return `${n2}}`;\n }\n function Ln(t4) {\n let e2 = \"\";\n for (const r2 of K2) e2 += `/${$n(t4[r2])}`;\n return e2;\n }\n function Dn(t4) {\n const e2 = t4.value;\n return e2 ? [new it(t4.key, e2, \"constants have been deprecated as of v8\")] : [];\n }\n function On(t4) {\n return t4 instanceof Number || t4 instanceof String || t4 instanceof Boolean ? t4.valueOf() : t4;\n }\n function jn(t4) {\n if (Array.isArray(t4)) return t4.map(jn);\n if (t4 instanceof Object && !(t4 instanceof Number || t4 instanceof String || t4 instanceof Boolean)) {\n const e2 = {};\n for (const r2 in t4) e2[r2] = jn(t4[r2]);\n return e2;\n }\n return On(t4);\n }\n function Rn(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = t4.valueSpec || {}, i2 = t4.objectElementValidators || {}, s2 = t4.style, a2 = t4.styleSpec, o2 = t4.validateSpec;\n let l2 = [];\n const u2 = un(r2);\n if (\"object\" !== u2) return [new it(e2, r2, `object expected, ${u2} found`)];\n for (const t5 in r2) {\n const u3 = t5.split(\".\")[0], c2 = n2[u3] || n2[\"*\"];\n let h2;\n if (i2[u3]) h2 = i2[u3];\n else if (n2[u3]) h2 = o2;\n else if (i2[\"*\"]) h2 = i2[\"*\"];\n else {\n if (!n2[\"*\"]) {\n l2.push(new it(e2, r2[t5], `unknown property \"${t5}\"`));\n continue;\n }\n h2 = o2;\n }\n l2 = l2.concat(h2({ key: (e2 ? `${e2}.` : e2) + t5, value: r2[t5], valueSpec: c2, style: s2, styleSpec: a2, object: r2, objectKey: t5, validateSpec: o2 }, r2));\n }\n for (const t5 in n2) i2[t5] || n2[t5].required && void 0 === n2[t5].default && void 0 === r2[t5] && l2.push(new it(e2, r2, `missing required property \"${t5}\"`));\n return l2;\n }\n function Un(t4) {\n const e2 = t4.value, r2 = t4.valueSpec, n2 = t4.style, i2 = t4.styleSpec, s2 = t4.key, a2 = t4.arrayElementValidator || t4.validateSpec;\n if (\"array\" !== un(e2)) return [new it(s2, e2, `array expected, ${un(e2)} found`)];\n if (r2.length && e2.length !== r2.length) return [new it(s2, e2, `array length ${r2.length} expected, length ${e2.length} found`)];\n if (r2[\"min-length\"] && e2.length < r2[\"min-length\"]) return [new it(s2, e2, `array length at least ${r2[\"min-length\"]} expected, length ${e2.length} found`)];\n let o2 = { type: r2.value, values: r2.values };\n i2.$version < 7 && (o2.function = r2.function), \"object\" === un(r2.value) && (o2 = r2.value);\n let l2 = [];\n for (let r3 = 0; r3 < e2.length; r3++) l2 = l2.concat(a2({ array: e2, arrayIndex: r3, value: e2[r3], valueSpec: o2, validateSpec: t4.validateSpec, style: n2, styleSpec: i2, key: `${s2}[${r3}]` }));\n return l2;\n }\n function qn(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = t4.valueSpec;\n let i2 = un(r2);\n return \"number\" === i2 && r2 != r2 && (i2 = \"NaN\"), \"number\" !== i2 ? [new it(e2, r2, `number expected, ${i2} found`)] : \"minimum\" in n2 && r2 < n2.minimum ? [new it(e2, r2, `${r2} is less than the minimum value ${n2.minimum}`)] : \"maximum\" in n2 && r2 > n2.maximum ? [new it(e2, r2, `${r2} is greater than the maximum value ${n2.maximum}`)] : [];\n }\n function Nn(t4) {\n const e2 = t4.valueSpec, r2 = On(t4.value.type);\n let n2, i2, s2, a2 = {};\n const o2 = \"categorical\" !== r2 && void 0 === t4.value.property, l2 = !o2, u2 = \"array\" === un(t4.value.stops) && \"array\" === un(t4.value.stops[0]) && \"object\" === un(t4.value.stops[0][0]), c2 = Rn({ key: t4.key, value: t4.value, valueSpec: t4.styleSpec.function, validateSpec: t4.validateSpec, style: t4.style, styleSpec: t4.styleSpec, objectElementValidators: { stops: function(t5) {\n if (\"identity\" === r2) return [new it(t5.key, t5.value, 'identity function may not have a \"stops\" property')];\n let e3 = [];\n const n3 = t5.value;\n return e3 = e3.concat(Un({ key: t5.key, value: n3, valueSpec: t5.valueSpec, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec, arrayElementValidator: h2 })), \"array\" === un(n3) && 0 === n3.length && e3.push(new it(t5.key, n3, \"array must have at least one stop\")), e3;\n }, default: function(t5) {\n return t5.validateSpec({ key: t5.key, value: t5.value, valueSpec: e2, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec });\n } } });\n return \"identity\" === r2 && o2 && c2.push(new it(t4.key, t4.value, 'missing required property \"property\"')), \"identity\" === r2 || t4.value.stops || c2.push(new it(t4.key, t4.value, 'missing required property \"stops\"')), \"exponential\" === r2 && t4.valueSpec.expression && !ln(t4.valueSpec) && c2.push(new it(t4.key, t4.value, \"exponential functions not supported\")), t4.styleSpec.$version >= 8 && (l2 && !an(t4.valueSpec) ? c2.push(new it(t4.key, t4.value, \"property functions not supported\")) : o2 && !on(t4.valueSpec) && c2.push(new it(t4.key, t4.value, \"zoom functions not supported\"))), \"categorical\" !== r2 && !u2 || void 0 !== t4.value.property || c2.push(new it(t4.key, t4.value, '\"property\" property is required')), c2;\n function h2(t5) {\n let r3 = [];\n const n3 = t5.value, o3 = t5.key;\n if (\"array\" !== un(n3)) return [new it(o3, n3, `array expected, ${un(n3)} found`)];\n if (2 !== n3.length) return [new it(o3, n3, `array length 2 expected, length ${n3.length} found`)];\n if (u2) {\n if (\"object\" !== un(n3[0])) return [new it(o3, n3, `object expected, ${un(n3[0])} found`)];\n if (void 0 === n3[0].zoom) return [new it(o3, n3, \"object stop key must have zoom\")];\n if (void 0 === n3[0].value) return [new it(o3, n3, \"object stop key must have value\")];\n if (s2 && s2 > On(n3[0].zoom)) return [new it(o3, n3[0].zoom, \"stop zoom values must appear in ascending order\")];\n On(n3[0].zoom) !== s2 && (s2 = On(n3[0].zoom), i2 = void 0, a2 = {}), r3 = r3.concat(Rn({ key: `${o3}[0]`, value: n3[0], valueSpec: { zoom: {} }, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec, objectElementValidators: { zoom: qn, value: p2 } }));\n } else r3 = r3.concat(p2({ key: `${o3}[0]`, value: n3[0], valueSpec: {}, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec }, n3));\n return vn(jn(n3[1])) ? r3.concat([new it(`${o3}[1]`, n3[1], \"expressions are not allowed in function stops.\")]) : r3.concat(t5.validateSpec({ key: `${o3}[1]`, value: n3[1], valueSpec: e2, validateSpec: t5.validateSpec, style: t5.style, styleSpec: t5.styleSpec }));\n }\n function p2(t5, s3) {\n const o3 = un(t5.value), l3 = On(t5.value), u3 = null !== t5.value ? t5.value : s3;\n if (n2) {\n if (o3 !== n2) return [new it(t5.key, u3, `${o3} stop domain type must match previous stop domain type ${n2}`)];\n } else n2 = o3;\n if (\"number\" !== o3 && \"string\" !== o3 && \"boolean\" !== o3) return [new it(t5.key, u3, \"stop domain value must be a number, string, or boolean\")];\n if (\"number\" !== o3 && \"categorical\" !== r2) {\n let n3 = `number expected, ${o3} found`;\n return an(e2) && void 0 === r2 && (n3 += '\\nIf you intended to use a categorical function, specify `\"type\": \"categorical\"`.'), [new it(t5.key, u3, n3)];\n }\n return \"categorical\" !== r2 || \"number\" !== o3 || isFinite(l3) && Math.floor(l3) === l3 ? \"categorical\" !== r2 && \"number\" === o3 && void 0 !== i2 && l3 < i2 ? [new it(t5.key, u3, \"stop domain values must appear in ascending order\")] : (i2 = l3, \"categorical\" === r2 && l3 in a2 ? [new it(t5.key, u3, \"stop domain values must be unique\")] : (a2[l3] = true, [])) : [new it(t5.key, u3, `integer expected, found ${l3}`)];\n }\n }\n function Zn2(t4) {\n const e2 = (\"property\" === t4.expressionContext ? An : bn)(jn(t4.value), t4.valueSpec);\n if (\"error\" === e2.result) return e2.value.map((e3) => new it(`${t4.key}${e3.key}`, t4.value, e3.message));\n const r2 = e2.value.expression || e2.value._styleExpression.expression;\n if (\"property\" === t4.expressionContext && \"text-font\" === t4.propertyKey && !r2.outputDefined()) return [new it(t4.key, t4.value, `Invalid data expression for \"${t4.propertyKey}\". Output values must be contained as literals within the expression.`)];\n if (\"property\" === t4.expressionContext && \"layout\" === t4.propertyType && !en(r2)) return [new it(t4.key, t4.value, '\"feature-state\" data expressions are not supported with layout properties.')];\n if (\"filter\" === t4.expressionContext && !en(r2)) return [new it(t4.key, t4.value, '\"feature-state\" data expressions are not supported with filters.')];\n if (t4.expressionContext && 0 === t4.expressionContext.indexOf(\"cluster\")) {\n if (!rn(r2, [\"zoom\", \"feature-state\"])) return [new it(t4.key, t4.value, '\"zoom\" and \"feature-state\" expressions are not supported with cluster properties.')];\n if (\"cluster-initial\" === t4.expressionContext && !tn(r2)) return [new it(t4.key, t4.value, \"Feature data expressions are not supported with initial expression part of cluster properties.\")];\n }\n return [];\n }\n function Gn(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = t4.valueSpec, i2 = [];\n return Array.isArray(n2.values) ? -1 === n2.values.indexOf(On(r2)) && i2.push(new it(e2, r2, `expected one of [${n2.values.join(\", \")}], ${JSON.stringify(r2)} found`)) : -1 === Object.keys(n2.values).indexOf(On(r2)) && i2.push(new it(e2, r2, `expected one of [${Object.keys(n2.values).join(\", \")}], ${JSON.stringify(r2)} found`)), i2;\n }\n function Kn(t4) {\n return Mn(jn(t4.value)) ? Zn2(st({}, t4, { expressionContext: \"filter\", valueSpec: { value: \"boolean\" } })) : Xn2(t4);\n }\n function Xn2(t4) {\n const e2 = t4.value, r2 = t4.key;\n if (\"array\" !== un(e2)) return [new it(r2, e2, `array expected, ${un(e2)} found`)];\n const n2 = t4.styleSpec;\n let i2, s2 = [];\n if (e2.length < 1) return [new it(r2, e2, \"filter array must have at least 1 element\")];\n switch (s2 = s2.concat(Gn({ key: `${r2}[0]`, value: e2[0], valueSpec: n2.filter_operator, style: t4.style, styleSpec: t4.styleSpec })), On(e2[0])) {\n case \"<\":\n case \"<=\":\n case \">\":\n case \">=\":\n e2.length >= 2 && \"$type\" === On(e2[1]) && s2.push(new it(r2, e2, `\"$type\" cannot be use with operator \"${e2[0]}\"`));\n case \"==\":\n case \"!=\":\n 3 !== e2.length && s2.push(new it(r2, e2, `filter array for operator \"${e2[0]}\" must have 3 elements`));\n case \"in\":\n case \"!in\":\n e2.length >= 2 && (i2 = un(e2[1]), \"string\" !== i2 && s2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`)));\n for (let a2 = 2; a2 < e2.length; a2++) i2 = un(e2[a2]), \"$type\" === On(e2[1]) ? s2 = s2.concat(Gn({ key: `${r2}[${a2}]`, value: e2[a2], valueSpec: n2.geometry_type, style: t4.style, styleSpec: t4.styleSpec })) : \"string\" !== i2 && \"number\" !== i2 && \"boolean\" !== i2 && s2.push(new it(`${r2}[${a2}]`, e2[a2], `string, number, or boolean expected, ${i2} found`));\n break;\n case \"any\":\n case \"all\":\n case \"none\":\n for (let n3 = 1; n3 < e2.length; n3++) s2 = s2.concat(Xn2({ key: `${r2}[${n3}]`, value: e2[n3], style: t4.style, styleSpec: t4.styleSpec }));\n break;\n case \"has\":\n case \"!has\":\n i2 = un(e2[1]), 2 !== e2.length ? s2.push(new it(r2, e2, `filter array for \"${e2[0]}\" operator must have 2 elements`)) : \"string\" !== i2 && s2.push(new it(`${r2}[1]`, e2[1], `string expected, ${i2} found`));\n }\n return s2;\n }\n function Hn(t4, e2) {\n const r2 = t4.key, n2 = t4.validateSpec, i2 = t4.style, s2 = t4.styleSpec, a2 = t4.value, o2 = t4.objectKey, l2 = s2[`${e2}_${t4.layerType}`];\n if (!l2) return [];\n const u2 = o2.match(/^(.*)-transition$/);\n if (\"paint\" === e2 && u2 && l2[u2[1]] && l2[u2[1]].transition) return n2({ key: r2, value: a2, valueSpec: s2.transition, style: i2, styleSpec: s2 });\n const c2 = t4.valueSpec || l2[o2];\n if (!c2) return [new it(r2, a2, `unknown property \"${o2}\"`)];\n let h2;\n if (\"string\" === un(a2) && an(c2) && !c2.tokens && (h2 = /^{([^}]+)}$/.exec(a2))) return [new it(r2, a2, `\"${o2}\" does not support interpolation syntax\nUse an identity property function instead: \\`{ \"type\": \"identity\", \"property\": ${JSON.stringify(h2[1])} }\\`.`)];\n const p2 = [];\n return \"symbol\" === t4.layerType && (\"text-field\" === o2 && i2 && !i2.glyphs && p2.push(new it(r2, a2, 'use of \"text-field\" requires a style \"glyphs\" property')), \"text-font\" === o2 && cn(jn(a2)) && \"identity\" === On(a2.type) && p2.push(new it(r2, a2, '\"text-font\" does not support identity functions'))), p2.concat(n2({ key: t4.key, value: a2, valueSpec: c2, style: i2, styleSpec: s2, expressionContext: \"property\", propertyType: e2, propertyKey: o2 }));\n }\n function Yn2(t4) {\n return Hn(t4, \"paint\");\n }\n function Jn(t4) {\n return Hn(t4, \"layout\");\n }\n function Wn(t4) {\n let e2 = [];\n const r2 = t4.value, n2 = t4.key, i2 = t4.style, s2 = t4.styleSpec;\n r2.type || r2.ref || e2.push(new it(n2, r2, 'either \"type\" or \"ref\" is required'));\n let a2 = On(r2.type);\n const o2 = On(r2.ref);\n if (r2.id) {\n const s3 = On(r2.id);\n for (let a3 = 0; a3 < t4.arrayIndex; a3++) {\n const t5 = i2.layers[a3];\n On(t5.id) === s3 && e2.push(new it(n2, r2.id, `duplicate layer id \"${r2.id}\", previously used at line ${t5.id.__line__}`));\n }\n }\n if (\"ref\" in r2) {\n let t5;\n [\"type\", \"source\", \"source-layer\", \"filter\", \"layout\"].forEach((t6) => {\n t6 in r2 && e2.push(new it(n2, r2[t6], `\"${t6}\" is prohibited for ref layers`));\n }), i2.layers.forEach((e3) => {\n On(e3.id) === o2 && (t5 = e3);\n }), t5 ? t5.ref ? e2.push(new it(n2, r2.ref, \"ref cannot reference another ref layer\")) : a2 = On(t5.type) : e2.push(new it(n2, r2.ref, `ref layer \"${o2}\" not found`));\n } else if (\"background\" !== a2) if (r2.source) {\n const t5 = i2.sources && i2.sources[r2.source], s3 = t5 && On(t5.type);\n t5 ? \"vector\" === s3 && \"raster\" === a2 ? e2.push(new it(n2, r2.source, `layer \"${r2.id}\" requires a raster source`)) : \"raster-dem\" !== s3 && \"hillshade\" === a2 ? e2.push(new it(n2, r2.source, `layer \"${r2.id}\" requires a raster-dem source`)) : \"raster\" === s3 && \"raster\" !== a2 ? e2.push(new it(n2, r2.source, `layer \"${r2.id}\" requires a vector source`)) : \"vector\" !== s3 || r2[\"source-layer\"] ? \"raster-dem\" === s3 && \"hillshade\" !== a2 ? e2.push(new it(n2, r2.source, \"raster-dem source can only be used with layer type 'hillshade'.\")) : \"line\" !== a2 || !r2.paint || !r2.paint[\"line-gradient\"] || \"geojson\" === s3 && t5.lineMetrics || e2.push(new it(n2, r2, `layer \"${r2.id}\" specifies a line-gradient, which requires a GeoJSON source with \\`lineMetrics\\` enabled.`)) : e2.push(new it(n2, r2, `layer \"${r2.id}\" must specify a \"source-layer\"`)) : e2.push(new it(n2, r2.source, `source \"${r2.source}\" not found`));\n } else e2.push(new it(n2, r2, 'missing required property \"source\"'));\n return e2 = e2.concat(Rn({ key: n2, value: r2, valueSpec: s2.layer, style: t4.style, styleSpec: t4.styleSpec, validateSpec: t4.validateSpec, objectElementValidators: { \"*\": () => [], type: () => t4.validateSpec({ key: `${n2}.type`, value: r2.type, valueSpec: s2.layer.type, style: t4.style, styleSpec: t4.styleSpec, validateSpec: t4.validateSpec, object: r2, objectKey: \"type\" }), filter: Kn, layout: (t5) => Rn({ layer: r2, key: t5.key, value: t5.value, style: t5.style, styleSpec: t5.styleSpec, validateSpec: t5.validateSpec, objectElementValidators: { \"*\": (t6) => Jn(st({ layerType: a2 }, t6)) } }), paint: (t5) => Rn({ layer: r2, key: t5.key, value: t5.value, style: t5.style, styleSpec: t5.styleSpec, validateSpec: t5.validateSpec, objectElementValidators: { \"*\": (t6) => Yn2(st({ layerType: a2 }, t6)) } }) } })), e2;\n }\n function Qn(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = un(e2);\n return \"string\" !== n2 ? [new it(r2, e2, `string expected, ${n2} found`)] : [];\n }\n const ti = { promoteId: function({ key: t4, value: e2 }) {\n if (\"string\" === un(e2)) return Qn({ key: t4, value: e2 });\n {\n const r2 = [];\n for (const n2 in e2) r2.push(...Qn({ key: `${t4}.${n2}`, value: e2[n2] }));\n return r2;\n }\n } };\n function ei(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = t4.styleSpec, i2 = t4.style, s2 = t4.validateSpec;\n if (!e2.type) return [new it(r2, e2, '\"type\" is required')];\n const a2 = On(e2.type);\n let o2;\n switch (a2) {\n case \"vector\":\n case \"raster\":\n return o2 = Rn({ key: r2, value: e2, valueSpec: n2[`source_${a2.replace(\"-\", \"_\")}`], style: t4.style, styleSpec: n2, objectElementValidators: ti, validateSpec: s2 }), o2;\n case \"raster-dem\":\n return o2 = function(t5) {\n var e3;\n const r3 = null !== (e3 = t5.sourceName) && void 0 !== e3 ? e3 : \"\", n3 = t5.value, i3 = t5.styleSpec, s3 = i3.source_raster_dem, a3 = t5.style;\n let o3 = [];\n const l2 = un(n3);\n if (void 0 === n3) return o3;\n if (\"object\" !== l2) return o3.push(new it(\"source_raster_dem\", n3, `object expected, ${l2} found`)), o3;\n const u2 = \"custom\" === On(n3.encoding), c2 = [\"redFactor\", \"greenFactor\", \"blueFactor\", \"baseShift\"], h2 = t5.value.encoding ? `\"${t5.value.encoding}\"` : \"Default\";\n for (const e4 in n3) !u2 && c2.includes(e4) ? o3.push(new it(e4, n3[e4], `In \"${r3}\": \"${e4}\" is only valid when \"encoding\" is set to \"custom\". ${h2} encoding found`)) : s3[e4] ? o3 = o3.concat(t5.validateSpec({ key: e4, value: n3[e4], valueSpec: s3[e4], validateSpec: t5.validateSpec, style: a3, styleSpec: i3 })) : o3.push(new it(e4, n3[e4], `unknown property \"${e4}\"`));\n return o3;\n }({ sourceName: r2, value: e2, style: t4.style, styleSpec: n2, validateSpec: s2 }), o2;\n case \"geojson\":\n if (o2 = Rn({ key: r2, value: e2, valueSpec: n2.source_geojson, style: i2, styleSpec: n2, validateSpec: s2, objectElementValidators: ti }), e2.cluster) for (const t5 in e2.clusterProperties) {\n const [n3, i3] = e2.clusterProperties[t5], a3 = \"string\" == typeof n3 ? [n3, [\"accumulated\"], [\"get\", t5]] : n3;\n o2.push(...Zn2({ key: `${r2}.${t5}.map`, value: i3, validateSpec: s2, expressionContext: \"cluster-map\" })), o2.push(...Zn2({ key: `${r2}.${t5}.reduce`, value: a3, validateSpec: s2, expressionContext: \"cluster-reduce\" }));\n }\n return o2;\n case \"video\":\n return Rn({ key: r2, value: e2, valueSpec: n2.source_video, style: i2, validateSpec: s2, styleSpec: n2 });\n case \"image\":\n return Rn({ key: r2, value: e2, valueSpec: n2.source_image, style: i2, validateSpec: s2, styleSpec: n2 });\n case \"canvas\":\n return [new it(r2, null, \"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.\", \"source.canvas\")];\n default:\n return Gn({ key: `${r2}.type`, value: e2.type, valueSpec: { values: [\"vector\", \"raster\", \"raster-dem\", \"geojson\", \"video\", \"image\"] }, style: i2, validateSpec: s2, styleSpec: n2 });\n }\n }\n function ri(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.light, i2 = t4.style;\n let s2 = [];\n const a2 = un(e2);\n if (void 0 === e2) return s2;\n if (\"object\" !== a2) return s2 = s2.concat([new it(\"light\", e2, `object expected, ${a2} found`)]), s2;\n for (const a3 in e2) {\n const o2 = a3.match(/^(.*)-transition$/);\n s2 = s2.concat(o2 && n2[o2[1]] && n2[o2[1]].transition ? t4.validateSpec({ key: a3, value: e2[a3], valueSpec: r2.transition, validateSpec: t4.validateSpec, style: i2, styleSpec: r2 }) : n2[a3] ? t4.validateSpec({ key: a3, value: e2[a3], valueSpec: n2[a3], validateSpec: t4.validateSpec, style: i2, styleSpec: r2 }) : [new it(a3, e2[a3], `unknown property \"${a3}\"`)]);\n }\n return s2;\n }\n function ni(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.sky, i2 = t4.style, s2 = un(e2);\n if (void 0 === e2) return [];\n if (\"object\" !== s2) return [new it(\"sky\", e2, `object expected, ${s2} found`)];\n let a2 = [];\n for (const s3 in e2) a2 = a2.concat(n2[s3] ? t4.validateSpec({ key: s3, value: e2[s3], valueSpec: n2[s3], style: i2, styleSpec: r2 }) : [new it(s3, e2[s3], `unknown property \"${s3}\"`)]);\n return a2;\n }\n function ii(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.terrain, i2 = t4.style;\n let s2 = [];\n const a2 = un(e2);\n if (void 0 === e2) return s2;\n if (\"object\" !== a2) return s2 = s2.concat([new it(\"terrain\", e2, `object expected, ${a2} found`)]), s2;\n for (const a3 in e2) s2 = s2.concat(n2[a3] ? t4.validateSpec({ key: a3, value: e2[a3], valueSpec: n2[a3], validateSpec: t4.validateSpec, style: i2, styleSpec: r2 }) : [new it(a3, e2[a3], `unknown property \"${a3}\"`)]);\n return s2;\n }\n function si(t4) {\n let e2 = [];\n const r2 = t4.value, n2 = t4.key;\n if (Array.isArray(r2)) {\n const i2 = [], s2 = [];\n for (const a2 in r2) r2[a2].id && i2.includes(r2[a2].id) && e2.push(new it(n2, r2, `all the sprites' ids must be unique, but ${r2[a2].id} is duplicated`)), i2.push(r2[a2].id), r2[a2].url && s2.includes(r2[a2].url) && e2.push(new it(n2, r2, `all the sprites' URLs must be unique, but ${r2[a2].url} is duplicated`)), s2.push(r2[a2].url), e2 = e2.concat(Rn({ key: `${n2}[${a2}]`, value: r2[a2], valueSpec: { id: { type: \"string\", required: true }, url: { type: \"string\", required: true } }, validateSpec: t4.validateSpec }));\n return e2;\n }\n return Qn({ key: n2, value: r2 });\n }\n const ai = { \"*\": () => [], array: Un, boolean: function(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = un(e2);\n return \"boolean\" !== n2 ? [new it(r2, e2, `boolean expected, ${n2} found`)] : [];\n }, number: qn, color: function(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = un(r2);\n return \"string\" !== n2 ? [new it(e2, r2, `color expected, ${n2} found`)] : Kt.parse(String(r2)) ? [] : [new it(e2, r2, `color expected, \"${r2}\" found`)];\n }, constants: Dn, enum: Gn, filter: Kn, function: Nn, layer: Wn, object: Rn, source: ei, light: ri, sky: ni, terrain: ii, projection: function(t4) {\n const e2 = t4.value, r2 = t4.styleSpec, n2 = r2.projection, i2 = t4.style, s2 = un(e2);\n if (void 0 === e2) return [];\n if (\"object\" !== s2) return [new it(\"projection\", e2, `object expected, ${s2} found`)];\n let a2 = [];\n for (const s3 in e2) a2 = a2.concat(n2[s3] ? t4.validateSpec({ key: s3, value: e2[s3], valueSpec: n2[s3], style: i2, styleSpec: r2 }) : [new it(s3, e2[s3], `unknown property \"${s3}\"`)]);\n return a2;\n }, string: Qn, formatted: function(t4) {\n return 0 === Qn(t4).length ? [] : Zn2(t4);\n }, resolvedImage: function(t4) {\n return 0 === Qn(t4).length ? [] : Zn2(t4);\n }, padding: function(t4) {\n const e2 = t4.key, r2 = t4.value;\n if (\"array\" === un(r2)) {\n if (r2.length < 1 || r2.length > 4) return [new it(e2, r2, `padding requires 1 to 4 values; ${r2.length} values found`)];\n const n2 = { type: \"number\" };\n let i2 = [];\n for (let s2 = 0; s2 < r2.length; s2++) i2 = i2.concat(t4.validateSpec({ key: `${e2}[${s2}]`, value: r2[s2], validateSpec: t4.validateSpec, valueSpec: n2 }));\n return i2;\n }\n return qn({ key: e2, value: r2, valueSpec: {} });\n }, variableAnchorOffsetCollection: function(t4) {\n const e2 = t4.key, r2 = t4.value, n2 = un(r2), i2 = t4.styleSpec;\n if (\"array\" !== n2 || r2.length < 1 || r2.length % 2 != 0) return [new it(e2, r2, \"variableAnchorOffsetCollection requires a non-empty array of even length\")];\n let s2 = [];\n for (let n3 = 0; n3 < r2.length; n3 += 2) s2 = s2.concat(Gn({ key: `${e2}[${n3}]`, value: r2[n3], valueSpec: i2.layout_symbol[\"text-anchor\"] })), s2 = s2.concat(Un({ key: `${e2}[${n3 + 1}]`, value: r2[n3 + 1], valueSpec: { length: 2, value: \"number\" }, validateSpec: t4.validateSpec, style: t4.style, styleSpec: i2 }));\n return s2;\n }, sprite: si };\n function oi(t4) {\n const e2 = t4.value, r2 = t4.valueSpec, n2 = t4.styleSpec;\n return t4.validateSpec = oi, r2.expression && cn(On(e2)) ? Nn(t4) : r2.expression && vn(jn(e2)) ? Zn2(t4) : r2.type && ai[r2.type] ? ai[r2.type](t4) : Rn(st({}, t4, { valueSpec: r2.type ? n2[r2.type] : r2 }));\n }\n function li(t4) {\n const e2 = t4.value, r2 = t4.key, n2 = Qn(t4);\n return n2.length || (-1 === e2.indexOf(\"{fontstack}\") && n2.push(new it(r2, e2, '\"glyphs\" url must include a \"{fontstack}\" token')), -1 === e2.indexOf(\"{range}\") && n2.push(new it(r2, e2, '\"glyphs\" url must include a \"{range}\" token'))), n2;\n }\n function ui(t4, e2 = G) {\n let r2 = [];\n return r2 = r2.concat(oi({ key: \"\", value: t4, valueSpec: e2.$root, styleSpec: e2, style: t4, validateSpec: oi, objectElementValidators: { glyphs: li, \"*\": () => [] } })), t4.constants && (r2 = r2.concat(Dn({ key: \"constants\", value: t4.constants, style: t4, styleSpec: e2, validateSpec: oi }))), hi(r2);\n }\n function ci(t4) {\n return function(e2) {\n return t4(__spreadProps(__spreadValues({}, e2), { validateSpec: oi }));\n };\n }\n function hi(t4) {\n return [].concat(t4).sort((t5, e2) => t5.line - e2.line);\n }\n function pi(t4) {\n return function(...e2) {\n return hi(t4.apply(this, e2));\n };\n }\n ui.source = pi(ci(ei)), ui.sprite = pi(ci(si)), ui.glyphs = pi(ci(li)), ui.light = pi(ci(ri)), ui.sky = pi(ci(ni)), ui.terrain = pi(ci(ii)), ui.layer = pi(ci(Wn)), ui.filter = pi(ci(Kn)), ui.paintProperty = pi(ci(Yn2)), ui.layoutProperty = pi(ci(Jn));\n const fi = ui, di = fi.light, yi = fi.sky, mi = fi.paintProperty, gi = fi.layoutProperty;\n function xi(t4, e2) {\n let r2 = false;\n if (e2 && e2.length) for (const n2 of e2) t4.fire(new N(new Error(n2.message))), r2 = true;\n return r2;\n }\n class vi {\n constructor(t4, e2, r2) {\n const n2 = this.cells = [];\n if (t4 instanceof ArrayBuffer) {\n this.arrayBuffer = t4;\n const i3 = new Int32Array(this.arrayBuffer);\n t4 = i3[0], this.d = (e2 = i3[1]) + 2 * (r2 = i3[2]);\n for (let t5 = 0; t5 < this.d * this.d; t5++) {\n const e3 = i3[3 + t5], r3 = i3[3 + t5 + 1];\n n2.push(e3 === r3 ? null : i3.subarray(e3, r3));\n }\n const s2 = i3[3 + n2.length + 1];\n this.keys = i3.subarray(i3[3 + n2.length], s2), this.bboxes = i3.subarray(s2), this.insert = this._insertReadonly;\n } else {\n this.d = e2 + 2 * r2;\n for (let t5 = 0; t5 < this.d * this.d; t5++) n2.push([]);\n this.keys = [], this.bboxes = [];\n }\n this.n = e2, this.extent = t4, this.padding = r2, this.scale = e2 / t4, this.uid = 0;\n const i2 = r2 / e2 * t4;\n this.min = -i2, this.max = t4 + i2;\n }\n insert(t4, e2, r2, n2, i2) {\n this._forEachCell(e2, r2, n2, i2, this._insertCell, this.uid++, void 0, void 0), this.keys.push(t4), this.bboxes.push(e2), this.bboxes.push(r2), this.bboxes.push(n2), this.bboxes.push(i2);\n }\n _insertReadonly() {\n throw new Error(\"Cannot insert into a GridIndex created from an ArrayBuffer.\");\n }\n _insertCell(t4, e2, r2, n2, i2, s2) {\n this.cells[i2].push(s2);\n }\n query(t4, e2, r2, n2, i2) {\n const s2 = this.min, a2 = this.max;\n if (t4 <= s2 && e2 <= s2 && a2 <= r2 && a2 <= n2 && !i2) return Array.prototype.slice.call(this.keys);\n {\n const s3 = [];\n return this._forEachCell(t4, e2, r2, n2, this._queryCell, s3, {}, i2), s3;\n }\n }\n _queryCell(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = this.cells[i2];\n if (null !== l2) {\n const i3 = this.keys, u2 = this.bboxes;\n for (let c2 = 0; c2 < l2.length; c2++) {\n const h2 = l2[c2];\n if (void 0 === a2[h2]) {\n const l3 = 4 * h2;\n (o2 ? o2(u2[l3 + 0], u2[l3 + 1], u2[l3 + 2], u2[l3 + 3]) : t4 <= u2[l3 + 2] && e2 <= u2[l3 + 3] && r2 >= u2[l3 + 0] && n2 >= u2[l3 + 1]) ? (a2[h2] = true, s2.push(i3[h2])) : a2[h2] = false;\n }\n }\n }\n }\n _forEachCell(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = this._convertToCellCoord(t4), u2 = this._convertToCellCoord(e2), c2 = this._convertToCellCoord(r2), h2 = this._convertToCellCoord(n2);\n for (let p2 = l2; p2 <= c2; p2++) for (let l3 = u2; l3 <= h2; l3++) {\n const u3 = this.d * l3 + p2;\n if ((!o2 || o2(this._convertFromCellCoord(p2), this._convertFromCellCoord(l3), this._convertFromCellCoord(p2 + 1), this._convertFromCellCoord(l3 + 1))) && i2.call(this, t4, e2, r2, n2, u3, s2, a2, o2)) return;\n }\n }\n _convertFromCellCoord(t4) {\n return (t4 - this.padding) / this.scale;\n }\n _convertToCellCoord(t4) {\n return Math.max(0, Math.min(this.d - 1, Math.floor(t4 * this.scale) + this.padding));\n }\n toArrayBuffer() {\n if (this.arrayBuffer) return this.arrayBuffer;\n const t4 = this.cells, e2 = 3 + this.cells.length + 1 + 1;\n let r2 = 0;\n for (let t5 = 0; t5 < this.cells.length; t5++) r2 += this.cells[t5].length;\n const n2 = new Int32Array(e2 + r2 + this.keys.length + this.bboxes.length);\n n2[0] = this.extent, n2[1] = this.n, n2[2] = this.padding;\n let i2 = e2;\n for (let e3 = 0; e3 < t4.length; e3++) {\n const r3 = t4[e3];\n n2[3 + e3] = i2, n2.set(r3, i2), i2 += r3.length;\n }\n return n2[3 + t4.length] = i2, n2.set(this.keys, i2), i2 += this.keys.length, n2[3 + t4.length + 1] = i2, n2.set(this.bboxes, i2), i2 += this.bboxes.length, n2.buffer;\n }\n static serialize(t4, e2) {\n const r2 = t4.toArrayBuffer();\n return e2 && e2.push(r2), { buffer: r2 };\n }\n static deserialize(t4) {\n return new vi(t4.buffer);\n }\n }\n const bi = {};\n function wi(t4, e2, r2 = {}) {\n if (bi[t4]) throw new Error(`${t4} is already registered.`);\n Object.defineProperty(e2, \"_classRegistryKey\", { value: t4, writeable: false }), bi[t4] = { klass: e2, omit: r2.omit || [], shallow: r2.shallow || [] };\n }\n wi(\"Object\", Object), wi(\"TransferableGridIndex\", vi), wi(\"Color\", Kt), wi(\"Error\", Error), wi(\"AJAXError\", L), wi(\"ResolvedImage\", te), wi(\"StylePropertyFunction\", Sn), wi(\"StyleExpression\", xn, { omit: [\"_evaluator\"] }), wi(\"ZoomDependentExpression\", _n), wi(\"ZoomConstantExpression\", wn), wi(\"CompoundExpression\", Xr, { omit: [\"_evaluate\"] });\n for (const t4 in Kr) Kr[t4]._classRegistryKey || wi(`Expression_${t4}`, Kr[t4]);\n function _i(t4) {\n return t4 && \"undefined\" != typeof ArrayBuffer && (t4 instanceof ArrayBuffer || t4.constructor && \"ArrayBuffer\" === t4.constructor.name);\n }\n function Ai(t4) {\n return t4.$name || t4.constructor._classRegistryKey;\n }\n function Si(t4) {\n return !function(t5) {\n if (null === t5 || \"object\" != typeof t5) return false;\n const e2 = Ai(t5);\n return !(!e2 || \"Object\" === e2);\n }(t4) && (null == t4 || \"boolean\" == typeof t4 || \"number\" == typeof t4 || \"string\" == typeof t4 || t4 instanceof Boolean || t4 instanceof Number || t4 instanceof String || t4 instanceof Date || t4 instanceof RegExp || t4 instanceof Blob || t4 instanceof Error || _i(t4) || I(t4) || ArrayBuffer.isView(t4) || t4 instanceof ImageData);\n }\n function ki(t4, e2) {\n if (Si(t4)) return (_i(t4) || I(t4)) && e2 && e2.push(t4), ArrayBuffer.isView(t4) && e2 && e2.push(t4.buffer), t4 instanceof ImageData && e2 && e2.push(t4.data.buffer), t4;\n if (Array.isArray(t4)) {\n const r3 = [];\n for (const n3 of t4) r3.push(ki(n3, e2));\n return r3;\n }\n if (\"object\" != typeof t4) throw new Error(\"can't serialize object of type \" + typeof t4);\n const r2 = Ai(t4);\n if (!r2) throw new Error(`can't serialize object of unregistered class ${t4.constructor.name}`);\n if (!bi[r2]) throw new Error(`${r2} is not registered.`);\n const { klass: n2 } = bi[r2], i2 = n2.serialize ? n2.serialize(t4, e2) : {};\n if (n2.serialize) {\n if (e2 && i2 === e2[e2.length - 1]) throw new Error(\"statically serialized object won't survive transfer of $name property\");\n } else {\n for (const n3 in t4) {\n if (!t4.hasOwnProperty(n3)) continue;\n if (bi[r2].omit.indexOf(n3) >= 0) continue;\n const s2 = t4[n3];\n i2[n3] = bi[r2].shallow.indexOf(n3) >= 0 ? s2 : ki(s2, e2);\n }\n t4 instanceof Error && (i2.message = t4.message);\n }\n if (i2.$name) throw new Error(\"$name property is reserved for worker serialization logic.\");\n return \"Object\" !== r2 && (i2.$name = r2), i2;\n }\n function Mi(t4) {\n if (Si(t4)) return t4;\n if (Array.isArray(t4)) return t4.map(Mi);\n if (\"object\" != typeof t4) throw new Error(\"can't deserialize object of type \" + typeof t4);\n const e2 = Ai(t4) || \"Object\";\n if (!bi[e2]) throw new Error(`can't deserialize unregistered class ${e2}`);\n const { klass: r2 } = bi[e2];\n if (!r2) throw new Error(`can't deserialize unregistered class ${e2}`);\n if (r2.deserialize) return r2.deserialize(t4);\n const n2 = Object.create(r2.prototype);\n for (const r3 of Object.keys(t4)) {\n if (\"$name\" === r3) continue;\n const i2 = t4[r3];\n n2[r3] = bi[e2].shallow.indexOf(r3) >= 0 ? i2 : Mi(i2);\n }\n return n2;\n }\n class Ii {\n constructor() {\n this.first = true;\n }\n update(t4, e2) {\n const r2 = Math.floor(t4);\n return this.first ? (this.first = false, this.lastIntegerZoom = r2, this.lastIntegerZoomTime = 0, this.lastZoom = t4, this.lastFloorZoom = r2, true) : (this.lastFloorZoom > r2 ? (this.lastIntegerZoom = r2 + 1, this.lastIntegerZoomTime = e2) : this.lastFloorZoom < r2 && (this.lastIntegerZoom = r2, this.lastIntegerZoomTime = e2), t4 !== this.lastZoom && (this.lastZoom = t4, this.lastFloorZoom = r2, true));\n }\n }\n const zi = { \"Latin-1 Supplement\": (t4) => t4 >= 128 && t4 <= 255, \"Hangul Jamo\": (t4) => t4 >= 4352 && t4 <= 4607, Khmer: (t4) => t4 >= 6016 && t4 <= 6143, \"General Punctuation\": (t4) => t4 >= 8192 && t4 <= 8303, \"Letterlike Symbols\": (t4) => t4 >= 8448 && t4 <= 8527, \"Number Forms\": (t4) => t4 >= 8528 && t4 <= 8591, \"Miscellaneous Technical\": (t4) => t4 >= 8960 && t4 <= 9215, \"Control Pictures\": (t4) => t4 >= 9216 && t4 <= 9279, \"Optical Character Recognition\": (t4) => t4 >= 9280 && t4 <= 9311, \"Enclosed Alphanumerics\": (t4) => t4 >= 9312 && t4 <= 9471, \"Geometric Shapes\": (t4) => t4 >= 9632 && t4 <= 9727, \"Miscellaneous Symbols\": (t4) => t4 >= 9728 && t4 <= 9983, \"Miscellaneous Symbols and Arrows\": (t4) => t4 >= 11008 && t4 <= 11263, \"Ideographic Description Characters\": (t4) => t4 >= 12272 && t4 <= 12287, \"CJK Symbols and Punctuation\": (t4) => t4 >= 12288 && t4 <= 12351, Katakana: (t4) => t4 >= 12448 && t4 <= 12543, Kanbun: (t4) => t4 >= 12688 && t4 <= 12703, \"CJK Strokes\": (t4) => t4 >= 12736 && t4 <= 12783, \"Enclosed CJK Letters and Months\": (t4) => t4 >= 12800 && t4 <= 13055, \"CJK Compatibility\": (t4) => t4 >= 13056 && t4 <= 13311, \"Yijing Hexagram Symbols\": (t4) => t4 >= 19904 && t4 <= 19967, \"Private Use Area\": (t4) => t4 >= 57344 && t4 <= 63743, \"Vertical Forms\": (t4) => t4 >= 65040 && t4 <= 65055, \"CJK Compatibility Forms\": (t4) => t4 >= 65072 && t4 <= 65103, \"Small Form Variants\": (t4) => t4 >= 65104 && t4 <= 65135, \"Halfwidth and Fullwidth Forms\": (t4) => t4 >= 65280 && t4 <= 65519 };\n function Pi(t4) {\n for (const e2 of t4) if (Ti(e2.charCodeAt(0))) return true;\n return false;\n }\n function Ci(t4) {\n for (const e2 of t4) if (!Ei(e2.charCodeAt(0))) return false;\n return true;\n }\n function Bi(t4) {\n const e2 = t4.map((t5) => {\n try {\n return new RegExp(`\\\\p{sc=${t5}}`, \"u\").source;\n } catch (t6) {\n return null;\n }\n }).filter((t5) => t5);\n return new RegExp(e2.join(\"|\"), \"u\");\n }\n const Vi = Bi([\"Arab\", \"Dupl\", \"Mong\", \"Ougr\", \"Syrc\"]);\n function Ei(t4) {\n return !Vi.test(String.fromCodePoint(t4));\n }\n const Fi = Bi([\"Bopo\", \"Hani\", \"Hira\", \"Kana\", \"Kits\", \"Nshu\", \"Tang\", \"Yiii\"]);\n function Ti(t4) {\n return !(746 !== t4 && 747 !== t4 && (t4 < 4352 || !(zi[\"CJK Compatibility Forms\"](t4) && !(t4 >= 65097 && t4 <= 65103) || zi[\"CJK Compatibility\"](t4) || zi[\"CJK Strokes\"](t4) || !(!zi[\"CJK Symbols and Punctuation\"](t4) || t4 >= 12296 && t4 <= 12305 || t4 >= 12308 && t4 <= 12319 || 12336 === t4) || zi[\"Enclosed CJK Letters and Months\"](t4) || zi[\"Ideographic Description Characters\"](t4) || zi.Kanbun(t4) || zi.Katakana(t4) && 12540 !== t4 || !(!zi[\"Halfwidth and Fullwidth Forms\"](t4) || 65288 === t4 || 65289 === t4 || 65293 === t4 || t4 >= 65306 && t4 <= 65310 || 65339 === t4 || 65341 === t4 || 65343 === t4 || t4 >= 65371 && t4 <= 65503 || 65507 === t4 || t4 >= 65512 && t4 <= 65519) || !(!zi[\"Small Form Variants\"](t4) || t4 >= 65112 && t4 <= 65118 || t4 >= 65123 && t4 <= 65126) || zi[\"Vertical Forms\"](t4) || zi[\"Yijing Hexagram Symbols\"](t4) || new RegExp(\"\\\\p{sc=Cans}\", \"u\").test(String.fromCodePoint(t4)) || new RegExp(\"\\\\p{sc=Hang}\", \"u\").test(String.fromCodePoint(t4)) || Fi.test(String.fromCodePoint(t4)))));\n }\n function $i(t4) {\n return !(Ti(t4) || function(t5) {\n return !!(zi[\"Latin-1 Supplement\"](t5) && (167 === t5 || 169 === t5 || 174 === t5 || 177 === t5 || 188 === t5 || 189 === t5 || 190 === t5 || 215 === t5 || 247 === t5) || zi[\"General Punctuation\"](t5) && (8214 === t5 || 8224 === t5 || 8225 === t5 || 8240 === t5 || 8241 === t5 || 8251 === t5 || 8252 === t5 || 8258 === t5 || 8263 === t5 || 8264 === t5 || 8265 === t5 || 8273 === t5) || zi[\"Letterlike Symbols\"](t5) || zi[\"Number Forms\"](t5) || zi[\"Miscellaneous Technical\"](t5) && (t5 >= 8960 && t5 <= 8967 || t5 >= 8972 && t5 <= 8991 || t5 >= 8996 && t5 <= 9e3 || 9003 === t5 || t5 >= 9085 && t5 <= 9114 || t5 >= 9150 && t5 <= 9165 || 9167 === t5 || t5 >= 9169 && t5 <= 9179 || t5 >= 9186 && t5 <= 9215) || zi[\"Control Pictures\"](t5) && 9251 !== t5 || zi[\"Optical Character Recognition\"](t5) || zi[\"Enclosed Alphanumerics\"](t5) || zi[\"Geometric Shapes\"](t5) || zi[\"Miscellaneous Symbols\"](t5) && !(t5 >= 9754 && t5 <= 9759) || zi[\"Miscellaneous Symbols and Arrows\"](t5) && (t5 >= 11026 && t5 <= 11055 || t5 >= 11088 && t5 <= 11097 || t5 >= 11192 && t5 <= 11243) || zi[\"CJK Symbols and Punctuation\"](t5) || zi.Katakana(t5) || zi[\"Private Use Area\"](t5) || zi[\"CJK Compatibility Forms\"](t5) || zi[\"Small Form Variants\"](t5) || zi[\"Halfwidth and Fullwidth Forms\"](t5) || 8734 === t5 || 8756 === t5 || 8757 === t5 || t5 >= 9984 && t5 <= 10087 || t5 >= 10102 && t5 <= 10131 || 65532 === t5 || 65533 === t5);\n }(t4));\n }\n const Li = Bi([\"Adlm\", \"Arab\", \"Armi\", \"Avst\", \"Chrs\", \"Cprt\", \"Egyp\", \"Elym\", \"Gara\", \"Hatr\", \"Hebr\", \"Hung\", \"Khar\", \"Lydi\", \"Mand\", \"Mani\", \"Mend\", \"Merc\", \"Mero\", \"Narb\", \"Nbat\", \"Nkoo\", \"Orkh\", \"Palm\", \"Phli\", \"Phlp\", \"Phnx\", \"Prti\", \"Rohg\", \"Samr\", \"Sarb\", \"Sogo\", \"Syrc\", \"Thaa\", \"Todr\", \"Yezi\"]);\n function Di(t4) {\n return Li.test(String.fromCodePoint(t4));\n }\n function Oi(t4, e2) {\n return !(!e2 && Di(t4) || t4 >= 2304 && t4 <= 3583 || t4 >= 3840 && t4 <= 4255 || zi.Khmer(t4));\n }\n function ji(t4) {\n for (const e2 of t4) if (Di(e2.charCodeAt(0))) return true;\n return false;\n }\n const Ri = new class {\n constructor() {\n this.applyArabicShaping = null, this.processBidirectionalText = null, this.processStyledBidirectionalText = null, this.pluginStatus = \"unavailable\", this.pluginURL = null;\n }\n setState(t4) {\n this.pluginStatus = t4.pluginStatus, this.pluginURL = t4.pluginURL;\n }\n getState() {\n return { pluginStatus: this.pluginStatus, pluginURL: this.pluginURL };\n }\n setMethods(t4) {\n this.applyArabicShaping = t4.applyArabicShaping, this.processBidirectionalText = t4.processBidirectionalText, this.processStyledBidirectionalText = t4.processStyledBidirectionalText;\n }\n isParsed() {\n return null != this.applyArabicShaping && null != this.processBidirectionalText && null != this.processStyledBidirectionalText;\n }\n getPluginURL() {\n return this.pluginURL;\n }\n getRTLTextPluginStatus() {\n return this.pluginStatus;\n }\n }();\n class Ui {\n constructor(t4, e2) {\n this.zoom = t4, e2 ? (this.now = e2.now, this.fadeDuration = e2.fadeDuration, this.zoomHistory = e2.zoomHistory, this.transition = e2.transition) : (this.now = 0, this.fadeDuration = 0, this.zoomHistory = new Ii(), this.transition = {});\n }\n isSupportedScript(t4) {\n return function(t5, e2) {\n for (const r2 of t5) if (!Oi(r2.charCodeAt(0), e2)) return false;\n return true;\n }(t4, \"loaded\" === Ri.getRTLTextPluginStatus());\n }\n crossFadingFactor() {\n return 0 === this.fadeDuration ? 1 : Math.min((this.now - this.zoomHistory.lastIntegerZoomTime) / this.fadeDuration, 1);\n }\n getCrossfadeParameters() {\n const t4 = this.zoom, e2 = t4 - Math.floor(t4), r2 = this.crossFadingFactor();\n return t4 > this.zoomHistory.lastIntegerZoom ? { fromScale: 2, toScale: 1, t: e2 + (1 - e2) * r2 } : { fromScale: 0.5, toScale: 1, t: 1 - (1 - r2) * e2 };\n }\n }\n class qi {\n constructor(t4, e2) {\n this.property = t4, this.value = e2, this.expression = function(t5, e3) {\n if (cn(t5)) return new Sn(t5, e3);\n if (vn(t5)) {\n const r2 = An(t5, e3);\n if (\"error\" === r2.result) throw new Error(r2.value.map((t6) => `${t6.key}: ${t6.message}`).join(\", \"));\n return r2.value;\n }\n {\n let r2 = t5;\n return \"color\" === e3.type && \"string\" == typeof t5 ? r2 = Kt.parse(t5) : \"padding\" !== e3.type || \"number\" != typeof t5 && !Array.isArray(t5) ? \"variableAnchorOffsetCollection\" === e3.type && Array.isArray(t5) && (r2 = Qt.parse(t5)) : r2 = Jt.parse(t5), { kind: \"constant\", evaluate: () => r2 };\n }\n }(void 0 === e2 ? t4.specification.default : e2, t4.specification);\n }\n isDataDriven() {\n return \"source\" === this.expression.kind || \"composite\" === this.expression.kind;\n }\n possiblyEvaluate(t4, e2, r2) {\n return this.property.possiblyEvaluate(this, t4, e2, r2);\n }\n }\n class Ni {\n constructor(t4) {\n this.property = t4, this.value = new qi(t4, void 0);\n }\n transitioned(t4, e2) {\n return new Gi(this.property, this.value, e2, g({}, t4.transition, this.transition), t4.now);\n }\n untransitioned() {\n return new Gi(this.property, this.value, null, {}, 0);\n }\n }\n class Zi {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultTransitionablePropertyValues);\n }\n getValue(t4) {\n return w(this._values[t4].value.value);\n }\n setValue(t4, e2) {\n Object.prototype.hasOwnProperty.call(this._values, t4) || (this._values[t4] = new Ni(this._values[t4].property)), this._values[t4].value = new qi(this._values[t4].property, null === e2 ? void 0 : w(e2));\n }\n getTransition(t4) {\n return w(this._values[t4].transition);\n }\n setTransition(t4, e2) {\n Object.prototype.hasOwnProperty.call(this._values, t4) || (this._values[t4] = new Ni(this._values[t4].property)), this._values[t4].transition = w(e2) || void 0;\n }\n serialize() {\n const t4 = {};\n for (const e2 of Object.keys(this._values)) {\n const r2 = this.getValue(e2);\n void 0 !== r2 && (t4[e2] = r2);\n const n2 = this.getTransition(e2);\n void 0 !== n2 && (t4[`${e2}-transition`] = n2);\n }\n return t4;\n }\n transitioned(t4, e2) {\n const r2 = new Ki(this._properties);\n for (const n2 of Object.keys(this._values)) r2._values[n2] = this._values[n2].transitioned(t4, e2._values[n2]);\n return r2;\n }\n untransitioned() {\n const t4 = new Ki(this._properties);\n for (const e2 of Object.keys(this._values)) t4._values[e2] = this._values[e2].untransitioned();\n return t4;\n }\n }\n class Gi {\n constructor(t4, e2, r2, n2, i2) {\n this.property = t4, this.value = e2, this.begin = i2 + n2.delay || 0, this.end = this.begin + n2.duration || 0, t4.specification.transition && (n2.delay || n2.duration) && (this.prior = r2);\n }\n possiblyEvaluate(t4, e2, r2) {\n const n2 = t4.now || 0, i2 = this.value.possiblyEvaluate(t4, e2, r2), s2 = this.prior;\n if (s2) {\n if (n2 > this.end) return this.prior = null, i2;\n if (this.value.isDataDriven()) return this.prior = null, i2;\n if (n2 < this.begin) return s2.possiblyEvaluate(t4, e2, r2);\n {\n const a2 = (n2 - this.begin) / (this.end - this.begin);\n return this.property.interpolate(s2.possiblyEvaluate(t4, e2, r2), i2, function(t5) {\n if (t5 <= 0) return 0;\n if (t5 >= 1) return 1;\n const e3 = t5 * t5, r3 = e3 * t5;\n return 4 * (t5 < 0.5 ? r3 : 3 * (t5 - e3) + r3 - 0.75);\n }(a2));\n }\n }\n return i2;\n }\n }\n class Ki {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultTransitioningPropertyValues);\n }\n possiblyEvaluate(t4, e2, r2) {\n const n2 = new Yi(this._properties);\n for (const i2 of Object.keys(this._values)) n2._values[i2] = this._values[i2].possiblyEvaluate(t4, e2, r2);\n return n2;\n }\n hasTransition() {\n for (const t4 of Object.keys(this._values)) if (this._values[t4].prior) return true;\n return false;\n }\n }\n class Xi {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultPropertyValues);\n }\n hasValue(t4) {\n return void 0 !== this._values[t4].value;\n }\n getValue(t4) {\n return w(this._values[t4].value);\n }\n setValue(t4, e2) {\n this._values[t4] = new qi(this._values[t4].property, null === e2 ? void 0 : w(e2));\n }\n serialize() {\n const t4 = {};\n for (const e2 of Object.keys(this._values)) {\n const r2 = this.getValue(e2);\n void 0 !== r2 && (t4[e2] = r2);\n }\n return t4;\n }\n possiblyEvaluate(t4, e2, r2) {\n const n2 = new Yi(this._properties);\n for (const i2 of Object.keys(this._values)) n2._values[i2] = this._values[i2].possiblyEvaluate(t4, e2, r2);\n return n2;\n }\n }\n class Hi {\n constructor(t4, e2, r2) {\n this.property = t4, this.value = e2, this.parameters = r2;\n }\n isConstant() {\n return \"constant\" === this.value.kind;\n }\n constantOr(t4) {\n return \"constant\" === this.value.kind ? this.value.value : t4;\n }\n evaluate(t4, e2, r2, n2) {\n return this.property.evaluate(this.value, this.parameters, t4, e2, r2, n2);\n }\n }\n class Yi {\n constructor(t4) {\n this._properties = t4, this._values = Object.create(t4.defaultPossiblyEvaluatedValues);\n }\n get(t4) {\n return this._values[t4];\n }\n }\n class Ji {\n constructor(t4) {\n this.specification = t4;\n }\n possiblyEvaluate(t4, e2) {\n if (t4.isDataDriven()) throw new Error(\"Value should not be data driven\");\n return t4.expression.evaluate(e2);\n }\n interpolate(t4, e2, r2) {\n const n2 = Ce[this.specification.type];\n return n2 ? n2(t4, e2, r2) : t4;\n }\n }\n class Wi {\n constructor(t4, e2) {\n this.specification = t4, this.overrides = e2;\n }\n possiblyEvaluate(t4, e2, r2, n2) {\n return new Hi(this, \"constant\" === t4.expression.kind || \"camera\" === t4.expression.kind ? { kind: \"constant\", value: t4.expression.evaluate(e2, null, {}, r2, n2) } : t4.expression, e2);\n }\n interpolate(t4, e2, r2) {\n if (\"constant\" !== t4.value.kind || \"constant\" !== e2.value.kind) return t4;\n if (void 0 === t4.value.value || void 0 === e2.value.value) return new Hi(this, { kind: \"constant\", value: void 0 }, t4.parameters);\n const n2 = Ce[this.specification.type];\n if (n2) {\n const i2 = n2(t4.value.value, e2.value.value, r2);\n return new Hi(this, { kind: \"constant\", value: i2 }, t4.parameters);\n }\n return t4;\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n return \"constant\" === t4.kind ? t4.value : t4.evaluate(e2, r2, n2, i2, s2);\n }\n }\n class Qi extends Wi {\n possiblyEvaluate(t4, e2, r2, n2) {\n if (void 0 === t4.value) return new Hi(this, { kind: \"constant\", value: void 0 }, e2);\n if (\"constant\" === t4.expression.kind) {\n const i2 = t4.expression.evaluate(e2, null, {}, r2, n2), s2 = \"resolvedImage\" === t4.property.specification.type && \"string\" != typeof i2 ? i2.name : i2, a2 = this._calculate(s2, s2, s2, e2);\n return new Hi(this, { kind: \"constant\", value: a2 }, e2);\n }\n if (\"camera\" === t4.expression.kind) {\n const r3 = this._calculate(t4.expression.evaluate({ zoom: e2.zoom - 1 }), t4.expression.evaluate({ zoom: e2.zoom }), t4.expression.evaluate({ zoom: e2.zoom + 1 }), e2);\n return new Hi(this, { kind: \"constant\", value: r3 }, e2);\n }\n return new Hi(this, t4.expression, e2);\n }\n evaluate(t4, e2, r2, n2, i2, s2) {\n if (\"source\" === t4.kind) {\n const a2 = t4.evaluate(e2, r2, n2, i2, s2);\n return this._calculate(a2, a2, a2, e2);\n }\n return \"composite\" === t4.kind ? this._calculate(t4.evaluate({ zoom: Math.floor(e2.zoom) - 1 }, r2, n2), t4.evaluate({ zoom: Math.floor(e2.zoom) }, r2, n2), t4.evaluate({ zoom: Math.floor(e2.zoom) + 1 }, r2, n2), e2) : t4.value;\n }\n _calculate(t4, e2, r2, n2) {\n return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t4, to: e2 } : { from: r2, to: e2 };\n }\n interpolate(t4) {\n return t4;\n }\n }\n class ts {\n constructor(t4) {\n this.specification = t4;\n }\n possiblyEvaluate(t4, e2, r2, n2) {\n if (void 0 !== t4.value) {\n if (\"constant\" === t4.expression.kind) {\n const i2 = t4.expression.evaluate(e2, null, {}, r2, n2);\n return this._calculate(i2, i2, i2, e2);\n }\n return this._calculate(t4.expression.evaluate(new Ui(Math.floor(e2.zoom - 1), e2)), t4.expression.evaluate(new Ui(Math.floor(e2.zoom), e2)), t4.expression.evaluate(new Ui(Math.floor(e2.zoom + 1), e2)), e2);\n }\n }\n _calculate(t4, e2, r2, n2) {\n return n2.zoom > n2.zoomHistory.lastIntegerZoom ? { from: t4, to: e2 } : { from: r2, to: e2 };\n }\n interpolate(t4) {\n return t4;\n }\n }\n class es {\n constructor(t4) {\n this.specification = t4;\n }\n possiblyEvaluate(t4, e2, r2, n2) {\n return !!t4.expression.evaluate(e2, null, {}, r2, n2);\n }\n interpolate() {\n return false;\n }\n }\n class rs {\n constructor(t4) {\n this.properties = t4, this.defaultPropertyValues = {}, this.defaultTransitionablePropertyValues = {}, this.defaultTransitioningPropertyValues = {}, this.defaultPossiblyEvaluatedValues = {}, this.overridableProperties = [];\n for (const e2 in t4) {\n const r2 = t4[e2];\n r2.specification.overridable && this.overridableProperties.push(e2);\n const n2 = this.defaultPropertyValues[e2] = new qi(r2, void 0), i2 = this.defaultTransitionablePropertyValues[e2] = new Ni(r2);\n this.defaultTransitioningPropertyValues[e2] = i2.untransitioned(), this.defaultPossiblyEvaluatedValues[e2] = n2.possiblyEvaluate({});\n }\n }\n }\n wi(\"DataDrivenProperty\", Wi), wi(\"DataConstantProperty\", Ji), wi(\"CrossFadedDataDrivenProperty\", Qi), wi(\"CrossFadedProperty\", ts), wi(\"ColorRampProperty\", es);\n const ns = \"-transition\";\n class is extends Z {\n constructor(t4, e2) {\n if (super(), this.id = t4.id, this.type = t4.type, this._featureFilter = { filter: () => true, needGeometry: false }, \"custom\" !== t4.type && (this.metadata = t4.metadata, this.minzoom = t4.minzoom, this.maxzoom = t4.maxzoom, \"background\" !== t4.type && (this.source = t4.source, this.sourceLayer = t4[\"source-layer\"], this.filter = t4.filter), e2.layout && (this._unevaluatedLayout = new Xi(e2.layout)), e2.paint)) {\n this._transitionablePaint = new Zi(e2.paint);\n for (const e3 in t4.paint) this.setPaintProperty(e3, t4.paint[e3], { validate: false });\n for (const e3 in t4.layout) this.setLayoutProperty(e3, t4.layout[e3], { validate: false });\n this._transitioningPaint = this._transitionablePaint.untransitioned(), this.paint = new Yi(e2.paint);\n }\n }\n getCrossfadeParameters() {\n return this._crossfadeParameters;\n }\n getLayoutProperty(t4) {\n return \"visibility\" === t4 ? this.visibility : this._unevaluatedLayout.getValue(t4);\n }\n setLayoutProperty(t4, e2, r2 = {}) {\n null != e2 && this._validate(gi, `layers.${this.id}.layout.${t4}`, t4, e2, r2) || (\"visibility\" !== t4 ? this._unevaluatedLayout.setValue(t4, e2) : this.visibility = e2);\n }\n getPaintProperty(t4) {\n return t4.endsWith(ns) ? this._transitionablePaint.getTransition(t4.slice(0, -11)) : this._transitionablePaint.getValue(t4);\n }\n setPaintProperty(t4, e2, r2 = {}) {\n if (null != e2 && this._validate(mi, `layers.${this.id}.paint.${t4}`, t4, e2, r2)) return false;\n if (t4.endsWith(ns)) return this._transitionablePaint.setTransition(t4.slice(0, -11), e2 || void 0), false;\n {\n const r3 = this._transitionablePaint._values[t4], n2 = \"cross-faded-data-driven\" === r3.property.specification[\"property-type\"], i2 = r3.value.isDataDriven(), s2 = r3.value;\n this._transitionablePaint.setValue(t4, e2), this._handleSpecialPaintPropertyUpdate(t4);\n const a2 = this._transitionablePaint._values[t4].value;\n return a2.isDataDriven() || i2 || n2 || this._handleOverridablePaintPropertyUpdate(t4, s2, a2);\n }\n }\n _handleSpecialPaintPropertyUpdate(t4) {\n }\n _handleOverridablePaintPropertyUpdate(t4, e2, r2) {\n return false;\n }\n isHidden(t4) {\n return !!(this.minzoom && t4 < this.minzoom) || !!(this.maxzoom && t4 >= this.maxzoom) || \"none\" === this.visibility;\n }\n updateTransitions(t4) {\n this._transitioningPaint = this._transitionablePaint.transitioned(t4, this._transitioningPaint);\n }\n hasTransition() {\n return this._transitioningPaint.hasTransition();\n }\n recalculate(t4, e2) {\n t4.getCrossfadeParameters && (this._crossfadeParameters = t4.getCrossfadeParameters()), this._unevaluatedLayout && (this.layout = this._unevaluatedLayout.possiblyEvaluate(t4, void 0, e2)), this.paint = this._transitioningPaint.possiblyEvaluate(t4, void 0, e2);\n }\n serialize() {\n const t4 = { id: this.id, type: this.type, source: this.source, \"source-layer\": this.sourceLayer, metadata: this.metadata, minzoom: this.minzoom, maxzoom: this.maxzoom, filter: this.filter, layout: this._unevaluatedLayout && this._unevaluatedLayout.serialize(), paint: this._transitionablePaint && this._transitionablePaint.serialize() };\n return this.visibility && (t4.layout = t4.layout || {}, t4.layout.visibility = this.visibility), b(t4, (t5, e2) => !(void 0 === t5 || \"layout\" === e2 && !Object.keys(t5).length || \"paint\" === e2 && !Object.keys(t5).length));\n }\n _validate(t4, e2, r2, n2, i2 = {}) {\n return (!i2 || false !== i2.validate) && xi(this, t4.call(fi, { key: e2, layerType: this.type, objectKey: r2, value: n2, styleSpec: G, style: { glyphs: true, sprite: true } }));\n }\n is3D() {\n return false;\n }\n isTileClipped() {\n return false;\n }\n hasOffscreenPass() {\n return false;\n }\n resize() {\n }\n isStateDependent() {\n for (const t4 in this.paint._values) {\n const e2 = this.paint.get(t4);\n if (e2 instanceof Hi && an(e2.property.specification) && (\"source\" === e2.value.kind || \"composite\" === e2.value.kind) && e2.value.isStateDependent) return true;\n }\n return false;\n }\n }\n const ss = { Int8: Int8Array, Uint8: Uint8Array, Int16: Int16Array, Uint16: Uint16Array, Int32: Int32Array, Uint32: Uint32Array, Float32: Float32Array };\n class as {\n constructor(t4, e2) {\n this._structArray = t4, this._pos1 = e2 * this.size, this._pos2 = this._pos1 / 2, this._pos4 = this._pos1 / 4, this._pos8 = this._pos1 / 8;\n }\n }\n class os {\n constructor() {\n this.isTransferred = false, this.capacity = -1, this.resize(0);\n }\n static serialize(t4, e2) {\n return t4._trim(), e2 && (t4.isTransferred = true, e2.push(t4.arrayBuffer)), { length: t4.length, arrayBuffer: t4.arrayBuffer };\n }\n static deserialize(t4) {\n const e2 = Object.create(this.prototype);\n return e2.arrayBuffer = t4.arrayBuffer, e2.length = t4.length, e2.capacity = t4.arrayBuffer.byteLength / e2.bytesPerElement, e2._refreshViews(), e2;\n }\n _trim() {\n this.length !== this.capacity && (this.capacity = this.length, this.arrayBuffer = this.arrayBuffer.slice(0, this.length * this.bytesPerElement), this._refreshViews());\n }\n clear() {\n this.length = 0;\n }\n resize(t4) {\n this.reserve(t4), this.length = t4;\n }\n reserve(t4) {\n if (t4 > this.capacity) {\n this.capacity = Math.max(t4, Math.floor(5 * this.capacity), 128), this.arrayBuffer = new ArrayBuffer(this.capacity * this.bytesPerElement);\n const e2 = this.uint8;\n this._refreshViews(), e2 && this.uint8.set(e2);\n }\n }\n _refreshViews() {\n throw new Error(\"_refreshViews() must be implemented by each concrete StructArray layout\");\n }\n }\n function ls(t4, e2 = 1) {\n let r2 = 0, n2 = 0;\n return { members: t4.map((t5) => {\n const i2 = ss[t5.type].BYTES_PER_ELEMENT, s2 = r2 = us(r2, Math.max(e2, i2)), a2 = t5.components || 1;\n return n2 = Math.max(n2, i2), r2 += i2 * a2, { name: t5.name, type: t5.type, components: a2, offset: s2 };\n }), size: us(r2, Math.max(n2, e2)), alignment: e2 };\n }\n function us(t4, e2) {\n return Math.ceil(t4 / e2) * e2;\n }\n class cs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2) {\n const r2 = this.length;\n return this.resize(r2 + 1), this.emplace(r2, t4, e2);\n }\n emplace(t4, e2, r2) {\n const n2 = 2 * t4;\n return this.int16[n2 + 0] = e2, this.int16[n2 + 1] = r2, t4;\n }\n }\n cs.prototype.bytesPerElement = 4, wi(\"StructArrayLayout2i4\", cs);\n class hs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.int16[i2 + 0] = e2, this.int16[i2 + 1] = r2, this.int16[i2 + 2] = n2, t4;\n }\n }\n hs.prototype.bytesPerElement = 6, wi(\"StructArrayLayout3i6\", hs);\n class ps extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2) {\n const i2 = this.length;\n return this.resize(i2 + 1), this.emplace(i2, t4, e2, r2, n2);\n }\n emplace(t4, e2, r2, n2, i2) {\n const s2 = 4 * t4;\n return this.int16[s2 + 0] = e2, this.int16[s2 + 1] = r2, this.int16[s2 + 2] = n2, this.int16[s2 + 3] = i2, t4;\n }\n }\n ps.prototype.bytesPerElement = 8, wi(\"StructArrayLayout4i8\", ps);\n class fs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 6 * t4;\n return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = s2, this.int16[o2 + 5] = a2, t4;\n }\n }\n fs.prototype.bytesPerElement = 12, wi(\"StructArrayLayout2i4i12\", fs);\n class ds extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 4 * t4, l2 = 8 * t4;\n return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.uint8[l2 + 4] = n2, this.uint8[l2 + 5] = i2, this.uint8[l2 + 6] = s2, this.uint8[l2 + 7] = a2, t4;\n }\n }\n ds.prototype.bytesPerElement = 8, wi(\"StructArrayLayout2i4ub8\", ds);\n class ys extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2) {\n const r2 = this.length;\n return this.resize(r2 + 1), this.emplace(r2, t4, e2);\n }\n emplace(t4, e2, r2) {\n const n2 = 2 * t4;\n return this.float32[n2 + 0] = e2, this.float32[n2 + 1] = r2, t4;\n }\n }\n ys.prototype.bytesPerElement = 8, wi(\"StructArrayLayout2f8\", ys);\n class ms extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2) {\n const c2 = this.length;\n return this.resize(c2 + 1), this.emplace(c2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2) {\n const h2 = 10 * t4;\n return this.uint16[h2 + 0] = e2, this.uint16[h2 + 1] = r2, this.uint16[h2 + 2] = n2, this.uint16[h2 + 3] = i2, this.uint16[h2 + 4] = s2, this.uint16[h2 + 5] = a2, this.uint16[h2 + 6] = o2, this.uint16[h2 + 7] = l2, this.uint16[h2 + 8] = u2, this.uint16[h2 + 9] = c2, t4;\n }\n }\n ms.prototype.bytesPerElement = 20, wi(\"StructArrayLayout10ui20\", ms);\n class gs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2) {\n const p2 = this.length;\n return this.resize(p2 + 1), this.emplace(p2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2) {\n const f2 = 12 * t4;\n return this.int16[f2 + 0] = e2, this.int16[f2 + 1] = r2, this.int16[f2 + 2] = n2, this.int16[f2 + 3] = i2, this.uint16[f2 + 4] = s2, this.uint16[f2 + 5] = a2, this.uint16[f2 + 6] = o2, this.uint16[f2 + 7] = l2, this.int16[f2 + 8] = u2, this.int16[f2 + 9] = c2, this.int16[f2 + 10] = h2, this.int16[f2 + 11] = p2, t4;\n }\n }\n gs.prototype.bytesPerElement = 24, wi(\"StructArrayLayout4i4ui4i24\", gs);\n class xs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.float32[i2 + 0] = e2, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t4;\n }\n }\n xs.prototype.bytesPerElement = 12, wi(\"StructArrayLayout3f12\", xs);\n class vs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer);\n }\n emplaceBack(t4) {\n const e2 = this.length;\n return this.resize(e2 + 1), this.emplace(e2, t4);\n }\n emplace(t4, e2) {\n return this.uint32[1 * t4 + 0] = e2, t4;\n }\n }\n vs.prototype.bytesPerElement = 4, wi(\"StructArrayLayout1ul4\", vs);\n class bs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = this.length;\n return this.resize(u2 + 1), this.emplace(u2, t4, e2, r2, n2, i2, s2, a2, o2, l2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2) {\n const c2 = 10 * t4, h2 = 5 * t4;\n return this.int16[c2 + 0] = e2, this.int16[c2 + 1] = r2, this.int16[c2 + 2] = n2, this.int16[c2 + 3] = i2, this.int16[c2 + 4] = s2, this.int16[c2 + 5] = a2, this.uint32[h2 + 3] = o2, this.uint16[c2 + 8] = l2, this.uint16[c2 + 9] = u2, t4;\n }\n }\n bs.prototype.bytesPerElement = 20, wi(\"StructArrayLayout6i1ul2ui20\", bs);\n class ws extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 6 * t4;\n return this.int16[o2 + 0] = e2, this.int16[o2 + 1] = r2, this.int16[o2 + 2] = n2, this.int16[o2 + 3] = i2, this.int16[o2 + 4] = s2, this.int16[o2 + 5] = a2, t4;\n }\n }\n ws.prototype.bytesPerElement = 12, wi(\"StructArrayLayout2i2i2i12\", ws);\n class _s extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2) {\n const s2 = this.length;\n return this.resize(s2 + 1), this.emplace(s2, t4, e2, r2, n2, i2);\n }\n emplace(t4, e2, r2, n2, i2, s2) {\n const a2 = 4 * t4, o2 = 8 * t4;\n return this.float32[a2 + 0] = e2, this.float32[a2 + 1] = r2, this.float32[a2 + 2] = n2, this.int16[o2 + 6] = i2, this.int16[o2 + 7] = s2, t4;\n }\n }\n _s.prototype.bytesPerElement = 16, wi(\"StructArrayLayout2f1f2i16\", _s);\n class As extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2) {\n const a2 = this.length;\n return this.resize(a2 + 1), this.emplace(a2, t4, e2, r2, n2, i2, s2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2) {\n const o2 = 16 * t4, l2 = 4 * t4, u2 = 8 * t4;\n return this.uint8[o2 + 0] = e2, this.uint8[o2 + 1] = r2, this.float32[l2 + 1] = n2, this.float32[l2 + 2] = i2, this.int16[u2 + 6] = s2, this.int16[u2 + 7] = a2, t4;\n }\n }\n As.prototype.bytesPerElement = 16, wi(\"StructArrayLayout2ub2f2i16\", As);\n class Ss extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.uint16[i2 + 0] = e2, this.uint16[i2 + 1] = r2, this.uint16[i2 + 2] = n2, t4;\n }\n }\n Ss.prototype.bytesPerElement = 6, wi(\"StructArrayLayout3ui6\", Ss);\n class ks extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2) {\n const g2 = this.length;\n return this.resize(g2 + 1), this.emplace(g2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2) {\n const x2 = 24 * t4, v2 = 12 * t4, b2 = 48 * t4;\n return this.int16[x2 + 0] = e2, this.int16[x2 + 1] = r2, this.uint16[x2 + 2] = n2, this.uint16[x2 + 3] = i2, this.uint32[v2 + 2] = s2, this.uint32[v2 + 3] = a2, this.uint32[v2 + 4] = o2, this.uint16[x2 + 10] = l2, this.uint16[x2 + 11] = u2, this.uint16[x2 + 12] = c2, this.float32[v2 + 7] = h2, this.float32[v2 + 8] = p2, this.uint8[b2 + 36] = f2, this.uint8[b2 + 37] = d2, this.uint8[b2 + 38] = y2, this.uint32[v2 + 10] = m2, this.int16[x2 + 22] = g2, t4;\n }\n }\n ks.prototype.bytesPerElement = 48, wi(\"StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48\", ks);\n class Ms extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.int16 = new Int16Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2, x2, v2, b2, w2, _2, A3, S2, k2, M2, I2) {\n const z2 = this.length;\n return this.resize(z2 + 1), this.emplace(z2, t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2, x2, v2, b2, w2, _2, A3, S2, k2, M2, I2);\n }\n emplace(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2, m2, g2, x2, v2, b2, w2, _2, A3, S2, k2, M2, I2, z2) {\n const P2 = 32 * t4, C3 = 16 * t4;\n return this.int16[P2 + 0] = e2, this.int16[P2 + 1] = r2, this.int16[P2 + 2] = n2, this.int16[P2 + 3] = i2, this.int16[P2 + 4] = s2, this.int16[P2 + 5] = a2, this.int16[P2 + 6] = o2, this.int16[P2 + 7] = l2, this.uint16[P2 + 8] = u2, this.uint16[P2 + 9] = c2, this.uint16[P2 + 10] = h2, this.uint16[P2 + 11] = p2, this.uint16[P2 + 12] = f2, this.uint16[P2 + 13] = d2, this.uint16[P2 + 14] = y2, this.uint16[P2 + 15] = m2, this.uint16[P2 + 16] = g2, this.uint16[P2 + 17] = x2, this.uint16[P2 + 18] = v2, this.uint16[P2 + 19] = b2, this.uint16[P2 + 20] = w2, this.uint16[P2 + 21] = _2, this.uint16[P2 + 22] = A3, this.uint32[C3 + 12] = S2, this.float32[C3 + 13] = k2, this.float32[C3 + 14] = M2, this.uint16[P2 + 30] = I2, this.uint16[P2 + 31] = z2, t4;\n }\n }\n Ms.prototype.bytesPerElement = 64, wi(\"StructArrayLayout8i15ui1ul2f2ui64\", Ms);\n class Is extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4) {\n const e2 = this.length;\n return this.resize(e2 + 1), this.emplace(e2, t4);\n }\n emplace(t4, e2) {\n return this.float32[1 * t4 + 0] = e2, t4;\n }\n }\n Is.prototype.bytesPerElement = 4, wi(\"StructArrayLayout1f4\", Is);\n class zs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 3 * t4;\n return this.uint16[6 * t4 + 0] = e2, this.float32[i2 + 1] = r2, this.float32[i2 + 2] = n2, t4;\n }\n }\n zs.prototype.bytesPerElement = 12, wi(\"StructArrayLayout1ui2f12\", zs);\n class Ps extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint32 = new Uint32Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2) {\n const n2 = this.length;\n return this.resize(n2 + 1), this.emplace(n2, t4, e2, r2);\n }\n emplace(t4, e2, r2, n2) {\n const i2 = 4 * t4;\n return this.uint32[2 * t4 + 0] = e2, this.uint16[i2 + 2] = r2, this.uint16[i2 + 3] = n2, t4;\n }\n }\n Ps.prototype.bytesPerElement = 8, wi(\"StructArrayLayout1ul2ui8\", Ps);\n class Cs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2) {\n const r2 = this.length;\n return this.resize(r2 + 1), this.emplace(r2, t4, e2);\n }\n emplace(t4, e2, r2) {\n const n2 = 2 * t4;\n return this.uint16[n2 + 0] = e2, this.uint16[n2 + 1] = r2, t4;\n }\n }\n Cs.prototype.bytesPerElement = 4, wi(\"StructArrayLayout2ui4\", Cs);\n class Bs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.uint16 = new Uint16Array(this.arrayBuffer);\n }\n emplaceBack(t4) {\n const e2 = this.length;\n return this.resize(e2 + 1), this.emplace(e2, t4);\n }\n emplace(t4, e2) {\n return this.uint16[1 * t4 + 0] = e2, t4;\n }\n }\n Bs.prototype.bytesPerElement = 2, wi(\"StructArrayLayout1ui2\", Bs);\n class Vs extends os {\n _refreshViews() {\n this.uint8 = new Uint8Array(this.arrayBuffer), this.float32 = new Float32Array(this.arrayBuffer);\n }\n emplaceBack(t4, e2, r2, n2) {\n const i2 = this.length;\n return this.resize(i2 + 1), this.emplace(i2, t4, e2, r2, n2);\n }\n emplace(t4, e2, r2, n2, i2) {\n const s2 = 4 * t4;\n return this.float32[s2 + 0] = e2, this.float32[s2 + 1] = r2, this.float32[s2 + 2] = n2, this.float32[s2 + 3] = i2, t4;\n }\n }\n Vs.prototype.bytesPerElement = 16, wi(\"StructArrayLayout4f16\", Vs);\n class Es extends as {\n get anchorPointX() {\n return this._structArray.int16[this._pos2 + 0];\n }\n get anchorPointY() {\n return this._structArray.int16[this._pos2 + 1];\n }\n get x1() {\n return this._structArray.int16[this._pos2 + 2];\n }\n get y1() {\n return this._structArray.int16[this._pos2 + 3];\n }\n get x2() {\n return this._structArray.int16[this._pos2 + 4];\n }\n get y2() {\n return this._structArray.int16[this._pos2 + 5];\n }\n get featureIndex() {\n return this._structArray.uint32[this._pos4 + 3];\n }\n get sourceLayerIndex() {\n return this._structArray.uint16[this._pos2 + 8];\n }\n get bucketIndex() {\n return this._structArray.uint16[this._pos2 + 9];\n }\n get anchorPoint() {\n return new s(this.anchorPointX, this.anchorPointY);\n }\n }\n Es.prototype.size = 20;\n class Fs extends bs {\n get(t4) {\n return new Es(this, t4);\n }\n }\n wi(\"CollisionBoxArray\", Fs);\n class Ts extends as {\n get anchorX() {\n return this._structArray.int16[this._pos2 + 0];\n }\n get anchorY() {\n return this._structArray.int16[this._pos2 + 1];\n }\n get glyphStartIndex() {\n return this._structArray.uint16[this._pos2 + 2];\n }\n get numGlyphs() {\n return this._structArray.uint16[this._pos2 + 3];\n }\n get vertexStartIndex() {\n return this._structArray.uint32[this._pos4 + 2];\n }\n get lineStartIndex() {\n return this._structArray.uint32[this._pos4 + 3];\n }\n get lineLength() {\n return this._structArray.uint32[this._pos4 + 4];\n }\n get segment() {\n return this._structArray.uint16[this._pos2 + 10];\n }\n get lowerSize() {\n return this._structArray.uint16[this._pos2 + 11];\n }\n get upperSize() {\n return this._structArray.uint16[this._pos2 + 12];\n }\n get lineOffsetX() {\n return this._structArray.float32[this._pos4 + 7];\n }\n get lineOffsetY() {\n return this._structArray.float32[this._pos4 + 8];\n }\n get writingMode() {\n return this._structArray.uint8[this._pos1 + 36];\n }\n get placedOrientation() {\n return this._structArray.uint8[this._pos1 + 37];\n }\n set placedOrientation(t4) {\n this._structArray.uint8[this._pos1 + 37] = t4;\n }\n get hidden() {\n return this._structArray.uint8[this._pos1 + 38];\n }\n set hidden(t4) {\n this._structArray.uint8[this._pos1 + 38] = t4;\n }\n get crossTileID() {\n return this._structArray.uint32[this._pos4 + 10];\n }\n set crossTileID(t4) {\n this._structArray.uint32[this._pos4 + 10] = t4;\n }\n get associatedIconIndex() {\n return this._structArray.int16[this._pos2 + 22];\n }\n }\n Ts.prototype.size = 48;\n class $s extends ks {\n get(t4) {\n return new Ts(this, t4);\n }\n }\n wi(\"PlacedSymbolArray\", $s);\n class Ls extends as {\n get anchorX() {\n return this._structArray.int16[this._pos2 + 0];\n }\n get anchorY() {\n return this._structArray.int16[this._pos2 + 1];\n }\n get rightJustifiedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 2];\n }\n get centerJustifiedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 3];\n }\n get leftJustifiedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 4];\n }\n get verticalPlacedTextSymbolIndex() {\n return this._structArray.int16[this._pos2 + 5];\n }\n get placedIconSymbolIndex() {\n return this._structArray.int16[this._pos2 + 6];\n }\n get verticalPlacedIconSymbolIndex() {\n return this._structArray.int16[this._pos2 + 7];\n }\n get key() {\n return this._structArray.uint16[this._pos2 + 8];\n }\n get textBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 9];\n }\n get textBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 10];\n }\n get verticalTextBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 11];\n }\n get verticalTextBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 12];\n }\n get iconBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 13];\n }\n get iconBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 14];\n }\n get verticalIconBoxStartIndex() {\n return this._structArray.uint16[this._pos2 + 15];\n }\n get verticalIconBoxEndIndex() {\n return this._structArray.uint16[this._pos2 + 16];\n }\n get featureIndex() {\n return this._structArray.uint16[this._pos2 + 17];\n }\n get numHorizontalGlyphVertices() {\n return this._structArray.uint16[this._pos2 + 18];\n }\n get numVerticalGlyphVertices() {\n return this._structArray.uint16[this._pos2 + 19];\n }\n get numIconVertices() {\n return this._structArray.uint16[this._pos2 + 20];\n }\n get numVerticalIconVertices() {\n return this._structArray.uint16[this._pos2 + 21];\n }\n get useRuntimeCollisionCircles() {\n return this._structArray.uint16[this._pos2 + 22];\n }\n get crossTileID() {\n return this._structArray.uint32[this._pos4 + 12];\n }\n set crossTileID(t4) {\n this._structArray.uint32[this._pos4 + 12] = t4;\n }\n get textBoxScale() {\n return this._structArray.float32[this._pos4 + 13];\n }\n get collisionCircleDiameter() {\n return this._structArray.float32[this._pos4 + 14];\n }\n get textAnchorOffsetStartIndex() {\n return this._structArray.uint16[this._pos2 + 30];\n }\n get textAnchorOffsetEndIndex() {\n return this._structArray.uint16[this._pos2 + 31];\n }\n }\n Ls.prototype.size = 64;\n class Ds extends Ms {\n get(t4) {\n return new Ls(this, t4);\n }\n }\n wi(\"SymbolInstanceArray\", Ds);\n class Os extends Is {\n getoffsetX(t4) {\n return this.float32[1 * t4 + 0];\n }\n }\n wi(\"GlyphOffsetArray\", Os);\n class js extends hs {\n getx(t4) {\n return this.int16[3 * t4 + 0];\n }\n gety(t4) {\n return this.int16[3 * t4 + 1];\n }\n gettileUnitDistanceFromAnchor(t4) {\n return this.int16[3 * t4 + 2];\n }\n }\n wi(\"SymbolLineVertexArray\", js);\n class Rs extends as {\n get textAnchor() {\n return this._structArray.uint16[this._pos2 + 0];\n }\n get textOffset0() {\n return this._structArray.float32[this._pos4 + 1];\n }\n get textOffset1() {\n return this._structArray.float32[this._pos4 + 2];\n }\n }\n Rs.prototype.size = 12;\n class Us extends zs {\n get(t4) {\n return new Rs(this, t4);\n }\n }\n wi(\"TextAnchorOffsetArray\", Us);\n class qs extends as {\n get featureIndex() {\n return this._structArray.uint32[this._pos4 + 0];\n }\n get sourceLayerIndex() {\n return this._structArray.uint16[this._pos2 + 2];\n }\n get bucketIndex() {\n return this._structArray.uint16[this._pos2 + 3];\n }\n }\n qs.prototype.size = 8;\n class Ns extends Ps {\n get(t4) {\n return new qs(this, t4);\n }\n }\n wi(\"FeatureIndexArray\", Ns);\n class Zs extends cs {\n }\n class Gs extends cs {\n }\n class Ks extends cs {\n }\n class Xs extends fs {\n }\n class Hs extends ds {\n }\n class Ys extends ys {\n }\n class Js extends ms {\n }\n class Ws extends gs {\n }\n class Qs extends xs {\n }\n class ta extends vs {\n }\n class ea extends ws {\n }\n class ra extends As {\n }\n class na extends Ss {\n }\n class ia extends Cs {\n }\n const sa = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }], 4), { members: aa } = sa;\n class oa {\n constructor(t4 = []) {\n this.segments = t4;\n }\n prepareSegment(t4, e2, r2, n2) {\n let i2 = this.segments[this.segments.length - 1];\n return t4 > oa.MAX_VERTEX_ARRAY_LENGTH && A2(`Max vertices per segment is ${oa.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t4}`), (!i2 || i2.vertexLength + t4 > oa.MAX_VERTEX_ARRAY_LENGTH || i2.sortKey !== n2) && (i2 = { vertexOffset: e2.length, primitiveOffset: r2.length, vertexLength: 0, primitiveLength: 0 }, void 0 !== n2 && (i2.sortKey = n2), this.segments.push(i2)), i2;\n }\n get() {\n return this.segments;\n }\n destroy() {\n for (const t4 of this.segments) for (const e2 in t4.vaos) t4.vaos[e2].destroy();\n }\n static simpleSegment(t4, e2, r2, n2) {\n return new oa([{ vertexOffset: t4, primitiveOffset: e2, vertexLength: r2, primitiveLength: n2, vaos: {}, sortKey: 0 }]);\n }\n }\n function la(t4, e2) {\n return 256 * (t4 = y(Math.floor(t4), 0, 255)) + y(Math.floor(e2), 0, 255);\n }\n oa.MAX_VERTEX_ARRAY_LENGTH = Math.pow(2, 16) - 1, wi(\"SegmentVector\", oa);\n const ua = ls([{ name: \"a_pattern_from\", components: 4, type: \"Uint16\" }, { name: \"a_pattern_to\", components: 4, type: \"Uint16\" }, { name: \"a_pixel_ratio_from\", components: 1, type: \"Uint16\" }, { name: \"a_pixel_ratio_to\", components: 1, type: \"Uint16\" }]);\n var ca = { exports: {} }, ha = { exports: {} };\n ha.exports = function(t4, e2) {\n var r2, n2, i2, s2, a2, o2, l2, u2;\n for (n2 = t4.length - (r2 = 3 & t4.length), i2 = e2, a2 = 3432918353, o2 = 461845907, u2 = 0; u2 < n2; ) l2 = 255 & t4.charCodeAt(u2) | (255 & t4.charCodeAt(++u2)) << 8 | (255 & t4.charCodeAt(++u2)) << 16 | (255 & t4.charCodeAt(++u2)) << 24, ++u2, i2 = 27492 + (65535 & (s2 = 5 * (65535 & (i2 = (i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & l2) * a2 + (((l2 >>> 16) * a2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295) << 13 | i2 >>> 19)) + ((5 * (i2 >>> 16) & 65535) << 16) & 4294967295)) + ((58964 + (s2 >>> 16) & 65535) << 16);\n switch (l2 = 0, r2) {\n case 3:\n l2 ^= (255 & t4.charCodeAt(u2 + 2)) << 16;\n case 2:\n l2 ^= (255 & t4.charCodeAt(u2 + 1)) << 8;\n case 1:\n i2 ^= l2 = (65535 & (l2 = (l2 = (65535 & (l2 ^= 255 & t4.charCodeAt(u2))) * a2 + (((l2 >>> 16) * a2 & 65535) << 16) & 4294967295) << 15 | l2 >>> 17)) * o2 + (((l2 >>> 16) * o2 & 65535) << 16) & 4294967295;\n }\n return i2 ^= t4.length, i2 = 2246822507 * (65535 & (i2 ^= i2 >>> 16)) + ((2246822507 * (i2 >>> 16) & 65535) << 16) & 4294967295, i2 = 3266489909 * (65535 & (i2 ^= i2 >>> 13)) + ((3266489909 * (i2 >>> 16) & 65535) << 16) & 4294967295, (i2 ^= i2 >>> 16) >>> 0;\n };\n var pa = ha.exports, fa = { exports: {} };\n fa.exports = function(t4, e2) {\n for (var r2, n2 = t4.length, i2 = e2 ^ n2, s2 = 0; n2 >= 4; ) r2 = 1540483477 * (65535 & (r2 = 255 & t4.charCodeAt(s2) | (255 & t4.charCodeAt(++s2)) << 8 | (255 & t4.charCodeAt(++s2)) << 16 | (255 & t4.charCodeAt(++s2)) << 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16), i2 = 1540483477 * (65535 & i2) + ((1540483477 * (i2 >>> 16) & 65535) << 16) ^ (r2 = 1540483477 * (65535 & (r2 ^= r2 >>> 24)) + ((1540483477 * (r2 >>> 16) & 65535) << 16)), n2 -= 4, ++s2;\n switch (n2) {\n case 3:\n i2 ^= (255 & t4.charCodeAt(s2 + 2)) << 16;\n case 2:\n i2 ^= (255 & t4.charCodeAt(s2 + 1)) << 8;\n case 1:\n i2 = 1540483477 * (65535 & (i2 ^= 255 & t4.charCodeAt(s2))) + ((1540483477 * (i2 >>> 16) & 65535) << 16);\n }\n return i2 = 1540483477 * (65535 & (i2 ^= i2 >>> 13)) + ((1540483477 * (i2 >>> 16) & 65535) << 16), (i2 ^= i2 >>> 15) >>> 0;\n };\n var da = pa, ya = fa.exports;\n ca.exports = da, ca.exports.murmur3 = da, ca.exports.murmur2 = ya;\n var ma = r(ca.exports);\n class ga {\n constructor() {\n this.ids = [], this.positions = [], this.indexed = false;\n }\n add(t4, e2, r2, n2) {\n this.ids.push(xa(t4)), this.positions.push(e2, r2, n2);\n }\n getPositions(t4) {\n if (!this.indexed) throw new Error(\"Trying to get index, but feature positions are not indexed\");\n const e2 = xa(t4);\n let r2 = 0, n2 = this.ids.length - 1;\n for (; r2 < n2; ) {\n const t5 = r2 + n2 >> 1;\n this.ids[t5] >= e2 ? n2 = t5 : r2 = t5 + 1;\n }\n const i2 = [];\n for (; this.ids[r2] === e2; ) i2.push({ index: this.positions[3 * r2], start: this.positions[3 * r2 + 1], end: this.positions[3 * r2 + 2] }), r2++;\n return i2;\n }\n static serialize(t4, e2) {\n const r2 = new Float64Array(t4.ids), n2 = new Uint32Array(t4.positions);\n return va(r2, n2, 0, r2.length - 1), e2 && e2.push(r2.buffer, n2.buffer), { ids: r2, positions: n2 };\n }\n static deserialize(t4) {\n const e2 = new ga();\n return e2.ids = t4.ids, e2.positions = t4.positions, e2.indexed = true, e2;\n }\n }\n function xa(t4) {\n const e2 = +t4;\n return !isNaN(e2) && e2 <= Number.MAX_SAFE_INTEGER ? e2 : ma(String(t4));\n }\n function va(t4, e2, r2, n2) {\n for (; r2 < n2; ) {\n const i2 = t4[r2 + n2 >> 1];\n let s2 = r2 - 1, a2 = n2 + 1;\n for (; ; ) {\n do {\n s2++;\n } while (t4[s2] < i2);\n do {\n a2--;\n } while (t4[a2] > i2);\n if (s2 >= a2) break;\n ba(t4, s2, a2), ba(e2, 3 * s2, 3 * a2), ba(e2, 3 * s2 + 1, 3 * a2 + 1), ba(e2, 3 * s2 + 2, 3 * a2 + 2);\n }\n a2 - r2 < n2 - a2 ? (va(t4, e2, r2, a2), r2 = a2 + 1) : (va(t4, e2, a2 + 1, n2), n2 = a2);\n }\n }\n function ba(t4, e2, r2) {\n const n2 = t4[e2];\n t4[e2] = t4[r2], t4[r2] = n2;\n }\n wi(\"FeaturePositionMap\", ga);\n class wa {\n constructor(t4, e2) {\n this.gl = t4.gl, this.location = e2;\n }\n }\n class _a extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = 0;\n }\n set(t4) {\n this.current !== t4 && (this.current = t4, this.gl.uniform1f(this.location, t4));\n }\n }\n class Aa extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = [0, 0, 0, 0];\n }\n set(t4) {\n t4[0] === this.current[0] && t4[1] === this.current[1] && t4[2] === this.current[2] && t4[3] === this.current[3] || (this.current = t4, this.gl.uniform4f(this.location, t4[0], t4[1], t4[2], t4[3]));\n }\n }\n class Sa extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = Kt.transparent;\n }\n set(t4) {\n t4.r === this.current.r && t4.g === this.current.g && t4.b === this.current.b && t4.a === this.current.a || (this.current = t4, this.gl.uniform4f(this.location, t4.r, t4.g, t4.b, t4.a));\n }\n }\n const ka = new Float32Array(16);\n function Ma(t4) {\n return [la(255 * t4.r, 255 * t4.g), la(255 * t4.b, 255 * t4.a)];\n }\n class Ia {\n constructor(t4, e2, r2) {\n this.value = t4, this.uniformNames = e2.map((t5) => `u_${t5}`), this.type = r2;\n }\n setUniform(t4, e2, r2) {\n t4.set(r2.constantOr(this.value));\n }\n getBinding(t4, e2, r2) {\n return \"color\" === this.type ? new Sa(t4, e2) : new _a(t4, e2);\n }\n }\n class za {\n constructor(t4, e2) {\n this.uniformNames = e2.map((t5) => `u_${t5}`), this.patternFrom = null, this.patternTo = null, this.pixelRatioFrom = 1, this.pixelRatioTo = 1;\n }\n setConstantPatternPositions(t4, e2) {\n this.pixelRatioFrom = e2.pixelRatio, this.pixelRatioTo = t4.pixelRatio, this.patternFrom = e2.tlbr, this.patternTo = t4.tlbr;\n }\n setUniform(t4, e2, r2, n2) {\n const i2 = \"u_pattern_to\" === n2 ? this.patternTo : \"u_pattern_from\" === n2 ? this.patternFrom : \"u_pixel_ratio_to\" === n2 ? this.pixelRatioTo : \"u_pixel_ratio_from\" === n2 ? this.pixelRatioFrom : null;\n i2 && t4.set(i2);\n }\n getBinding(t4, e2, r2) {\n return \"u_pattern\" === r2.substr(0, 9) ? new Aa(t4, e2) : new _a(t4, e2);\n }\n }\n class Pa {\n constructor(t4, e2, r2, n2) {\n this.expression = t4, this.type = r2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t5) => ({ name: `a_${t5}`, type: \"Float32\", components: \"color\" === r2 ? 2 : 1, offset: 0 })), this.paintVertexArray = new n2();\n }\n populatePaintArray(t4, e2, r2, n2, i2) {\n const s2 = this.paintVertexArray.length, a2 = this.expression.evaluate(new Ui(0), e2, {}, n2, [], i2);\n this.paintVertexArray.resize(t4), this._setPaintValue(s2, t4, a2);\n }\n updatePaintArray(t4, e2, r2, n2) {\n const i2 = this.expression.evaluate({ zoom: 0 }, r2, n2);\n this._setPaintValue(t4, e2, i2);\n }\n _setPaintValue(t4, e2, r2) {\n if (\"color\" === this.type) {\n const n2 = Ma(r2);\n for (let r3 = t4; r3 < e2; r3++) this.paintVertexArray.emplace(r3, n2[0], n2[1]);\n } else {\n for (let n2 = t4; n2 < e2; n2++) this.paintVertexArray.emplace(n2, r2);\n this.maxValue = Math.max(this.maxValue, Math.abs(r2));\n }\n }\n upload(t4) {\n this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t4.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));\n }\n destroy() {\n this.paintVertexBuffer && this.paintVertexBuffer.destroy();\n }\n }\n class Ca {\n constructor(t4, e2, r2, n2, i2, s2) {\n this.expression = t4, this.uniformNames = e2.map((t5) => `u_${t5}_t`), this.type = r2, this.useIntegerZoom = n2, this.zoom = i2, this.maxValue = 0, this.paintVertexAttributes = e2.map((t5) => ({ name: `a_${t5}`, type: \"Float32\", components: \"color\" === r2 ? 4 : 2, offset: 0 })), this.paintVertexArray = new s2();\n }\n populatePaintArray(t4, e2, r2, n2, i2) {\n const s2 = this.expression.evaluate(new Ui(this.zoom), e2, {}, n2, [], i2), a2 = this.expression.evaluate(new Ui(this.zoom + 1), e2, {}, n2, [], i2), o2 = this.paintVertexArray.length;\n this.paintVertexArray.resize(t4), this._setPaintValue(o2, t4, s2, a2);\n }\n updatePaintArray(t4, e2, r2, n2) {\n const i2 = this.expression.evaluate({ zoom: this.zoom }, r2, n2), s2 = this.expression.evaluate({ zoom: this.zoom + 1 }, r2, n2);\n this._setPaintValue(t4, e2, i2, s2);\n }\n _setPaintValue(t4, e2, r2, n2) {\n if (\"color\" === this.type) {\n const i2 = Ma(r2), s2 = Ma(n2);\n for (let r3 = t4; r3 < e2; r3++) this.paintVertexArray.emplace(r3, i2[0], i2[1], s2[0], s2[1]);\n } else {\n for (let i2 = t4; i2 < e2; i2++) this.paintVertexArray.emplace(i2, r2, n2);\n this.maxValue = Math.max(this.maxValue, Math.abs(r2), Math.abs(n2));\n }\n }\n upload(t4) {\n this.paintVertexArray && this.paintVertexArray.arrayBuffer && (this.paintVertexBuffer && this.paintVertexBuffer.buffer ? this.paintVertexBuffer.updateData(this.paintVertexArray) : this.paintVertexBuffer = t4.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent));\n }\n destroy() {\n this.paintVertexBuffer && this.paintVertexBuffer.destroy();\n }\n setUniform(t4, e2) {\n const r2 = this.useIntegerZoom ? Math.floor(e2.zoom) : e2.zoom, n2 = y(this.expression.interpolationFactor(r2, this.zoom, this.zoom + 1), 0, 1);\n t4.set(n2);\n }\n getBinding(t4, e2, r2) {\n return new _a(t4, e2);\n }\n }\n class Ba {\n constructor(t4, e2, r2, n2, i2, s2) {\n this.expression = t4, this.type = e2, this.useIntegerZoom = r2, this.zoom = n2, this.layerId = s2, this.zoomInPaintVertexArray = new i2(), this.zoomOutPaintVertexArray = new i2();\n }\n populatePaintArray(t4, e2, r2) {\n const n2 = this.zoomInPaintVertexArray.length;\n this.zoomInPaintVertexArray.resize(t4), this.zoomOutPaintVertexArray.resize(t4), this._setPaintValues(n2, t4, e2.patterns && e2.patterns[this.layerId], r2);\n }\n updatePaintArray(t4, e2, r2, n2, i2) {\n this._setPaintValues(t4, e2, r2.patterns && r2.patterns[this.layerId], i2);\n }\n _setPaintValues(t4, e2, r2, n2) {\n if (!n2 || !r2) return;\n const { min: i2, mid: s2, max: a2 } = r2, o2 = n2[i2], l2 = n2[s2], u2 = n2[a2];\n if (o2 && l2 && u2) for (let r3 = t4; r3 < e2; r3++) this.zoomInPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], o2.tl[0], o2.tl[1], o2.br[0], o2.br[1], l2.pixelRatio, o2.pixelRatio), this.zoomOutPaintVertexArray.emplace(r3, l2.tl[0], l2.tl[1], l2.br[0], l2.br[1], u2.tl[0], u2.tl[1], u2.br[0], u2.br[1], l2.pixelRatio, u2.pixelRatio);\n }\n upload(t4) {\n this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer && (this.zoomInPaintVertexBuffer = t4.createVertexBuffer(this.zoomInPaintVertexArray, ua.members, this.expression.isStateDependent), this.zoomOutPaintVertexBuffer = t4.createVertexBuffer(this.zoomOutPaintVertexArray, ua.members, this.expression.isStateDependent));\n }\n destroy() {\n this.zoomOutPaintVertexBuffer && this.zoomOutPaintVertexBuffer.destroy(), this.zoomInPaintVertexBuffer && this.zoomInPaintVertexBuffer.destroy();\n }\n }\n class Va {\n constructor(t4, e2, r2) {\n this.binders = {}, this._buffers = [];\n const n2 = [];\n for (const i2 in t4.paint._values) {\n if (!r2(i2)) continue;\n const s2 = t4.paint.get(i2);\n if (!(s2 instanceof Hi && an(s2.property.specification))) continue;\n const a2 = Fa(i2, t4.type), o2 = s2.value, l2 = s2.property.specification.type, u2 = s2.property.useIntegerZoom, c2 = s2.property.specification[\"property-type\"], h2 = \"cross-faded\" === c2 || \"cross-faded-data-driven\" === c2;\n if (\"constant\" === o2.kind) this.binders[i2] = h2 ? new za(o2.value, a2) : new Ia(o2.value, a2, l2), n2.push(`/u_${i2}`);\n else if (\"source\" === o2.kind || h2) {\n const r3 = Ta(i2, l2, \"source\");\n this.binders[i2] = h2 ? new Ba(o2, l2, u2, e2, r3, t4.id) : new Pa(o2, a2, l2, r3), n2.push(`/a_${i2}`);\n } else {\n const t5 = Ta(i2, l2, \"composite\");\n this.binders[i2] = new Ca(o2, a2, l2, u2, e2, t5), n2.push(`/z_${i2}`);\n }\n }\n this.cacheKey = n2.sort().join(\"\");\n }\n getMaxValue(t4) {\n const e2 = this.binders[t4];\n return e2 instanceof Pa || e2 instanceof Ca ? e2.maxValue : 0;\n }\n populatePaintArrays(t4, e2, r2, n2, i2) {\n for (const s2 in this.binders) {\n const a2 = this.binders[s2];\n (a2 instanceof Pa || a2 instanceof Ca || a2 instanceof Ba) && a2.populatePaintArray(t4, e2, r2, n2, i2);\n }\n }\n setConstantPatternPositions(t4, e2) {\n for (const r2 in this.binders) {\n const n2 = this.binders[r2];\n n2 instanceof za && n2.setConstantPatternPositions(t4, e2);\n }\n }\n updatePaintArrays(t4, e2, r2, n2, i2) {\n let s2 = false;\n for (const a2 in t4) {\n const o2 = e2.getPositions(a2);\n for (const e3 of o2) {\n const o3 = r2.feature(e3.index);\n for (const r3 in this.binders) {\n const l2 = this.binders[r3];\n if ((l2 instanceof Pa || l2 instanceof Ca || l2 instanceof Ba) && true === l2.expression.isStateDependent) {\n const u2 = n2.paint.get(r3);\n l2.expression = u2.value, l2.updatePaintArray(e3.start, e3.end, o3, t4[a2], i2), s2 = true;\n }\n }\n }\n }\n return s2;\n }\n defines() {\n const t4 = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n (r2 instanceof Ia || r2 instanceof za) && t4.push(...r2.uniformNames.map((t5) => `#define HAS_UNIFORM_${t5}`));\n }\n return t4;\n }\n getBinderAttributes() {\n const t4 = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n if (r2 instanceof Pa || r2 instanceof Ca) for (let e3 = 0; e3 < r2.paintVertexAttributes.length; e3++) t4.push(r2.paintVertexAttributes[e3].name);\n else if (r2 instanceof Ba) for (let e3 = 0; e3 < ua.members.length; e3++) t4.push(ua.members[e3].name);\n }\n return t4;\n }\n getBinderUniforms() {\n const t4 = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n if (r2 instanceof Ia || r2 instanceof za || r2 instanceof Ca) for (const e3 of r2.uniformNames) t4.push(e3);\n }\n return t4;\n }\n getPaintVertexBuffers() {\n return this._buffers;\n }\n getUniforms(t4, e2) {\n const r2 = [];\n for (const n2 in this.binders) {\n const i2 = this.binders[n2];\n if (i2 instanceof Ia || i2 instanceof za || i2 instanceof Ca) {\n for (const s2 of i2.uniformNames) if (e2[s2]) {\n const a2 = i2.getBinding(t4, e2[s2], s2);\n r2.push({ name: s2, property: n2, binding: a2 });\n }\n }\n }\n return r2;\n }\n setUniforms(t4, e2, r2, n2) {\n for (const { name: t5, property: i2, binding: s2 } of e2) this.binders[i2].setUniform(s2, n2, r2.get(i2), t5);\n }\n updatePaintBuffers(t4) {\n this._buffers = [];\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n if (t4 && r2 instanceof Ba) {\n const e3 = 2 === t4.fromScale ? r2.zoomInPaintVertexBuffer : r2.zoomOutPaintVertexBuffer;\n e3 && this._buffers.push(e3);\n } else (r2 instanceof Pa || r2 instanceof Ca) && r2.paintVertexBuffer && this._buffers.push(r2.paintVertexBuffer);\n }\n }\n upload(t4) {\n for (const e2 in this.binders) {\n const r2 = this.binders[e2];\n (r2 instanceof Pa || r2 instanceof Ca || r2 instanceof Ba) && r2.upload(t4);\n }\n this.updatePaintBuffers();\n }\n destroy() {\n for (const t4 in this.binders) {\n const e2 = this.binders[t4];\n (e2 instanceof Pa || e2 instanceof Ca || e2 instanceof Ba) && e2.destroy();\n }\n }\n }\n class Ea {\n constructor(t4, e2, r2 = () => true) {\n this.programConfigurations = {};\n for (const n2 of t4) this.programConfigurations[n2.id] = new Va(n2, e2, r2);\n this.needsUpload = false, this._featureMap = new ga(), this._bufferOffset = 0;\n }\n populatePaintArrays(t4, e2, r2, n2, i2, s2) {\n for (const r3 in this.programConfigurations) this.programConfigurations[r3].populatePaintArrays(t4, e2, n2, i2, s2);\n void 0 !== e2.id && this._featureMap.add(e2.id, r2, this._bufferOffset, t4), this._bufferOffset = t4, this.needsUpload = true;\n }\n updatePaintArrays(t4, e2, r2, n2) {\n for (const i2 of r2) this.needsUpload = this.programConfigurations[i2.id].updatePaintArrays(t4, this._featureMap, e2, i2, n2) || this.needsUpload;\n }\n get(t4) {\n return this.programConfigurations[t4];\n }\n upload(t4) {\n if (this.needsUpload) {\n for (const e2 in this.programConfigurations) this.programConfigurations[e2].upload(t4);\n this.needsUpload = false;\n }\n }\n destroy() {\n for (const t4 in this.programConfigurations) this.programConfigurations[t4].destroy();\n }\n }\n function Fa(t4, e2) {\n return { \"text-opacity\": [\"opacity\"], \"icon-opacity\": [\"opacity\"], \"text-color\": [\"fill_color\"], \"icon-color\": [\"fill_color\"], \"text-halo-color\": [\"halo_color\"], \"icon-halo-color\": [\"halo_color\"], \"text-halo-blur\": [\"halo_blur\"], \"icon-halo-blur\": [\"halo_blur\"], \"text-halo-width\": [\"halo_width\"], \"icon-halo-width\": [\"halo_width\"], \"line-gap-width\": [\"gapwidth\"], \"line-pattern\": [\"pattern_to\", \"pattern_from\", \"pixel_ratio_to\", \"pixel_ratio_from\"], \"fill-pattern\": [\"pattern_to\", \"pattern_from\", \"pixel_ratio_to\", \"pixel_ratio_from\"], \"fill-extrusion-pattern\": [\"pattern_to\", \"pattern_from\", \"pixel_ratio_to\", \"pixel_ratio_from\"] }[t4] || [t4.replace(`${e2}-`, \"\").replace(/-/g, \"_\")];\n }\n function Ta(t4, e2, r2) {\n const n2 = { color: { source: ys, composite: Vs }, number: { source: Is, composite: ys } }, i2 = function(t5) {\n return { \"line-pattern\": { source: Js, composite: Js }, \"fill-pattern\": { source: Js, composite: Js }, \"fill-extrusion-pattern\": { source: Js, composite: Js } }[t5];\n }(t4);\n return i2 && i2[r2] || n2[e2][r2];\n }\n wi(\"ConstantBinder\", Ia), wi(\"CrossFadedConstantBinder\", za), wi(\"SourceExpressionBinder\", Pa), wi(\"CrossFadedCompositeBinder\", Ba), wi(\"CompositeExpressionBinder\", Ca), wi(\"ProgramConfiguration\", Va, { omit: [\"_buffers\"] }), wi(\"ProgramConfigurationSet\", Ea);\n const $a = 8192, La = Math.pow(2, 14) - 1, Da = -La - 1;\n function Oa(t4) {\n const e2 = $a / t4.extent, r2 = t4.loadGeometry();\n for (let t5 = 0; t5 < r2.length; t5++) {\n const n2 = r2[t5];\n for (let t6 = 0; t6 < n2.length; t6++) {\n const r3 = n2[t6], i2 = Math.round(r3.x * e2), s2 = Math.round(r3.y * e2);\n r3.x = y(i2, Da, La), r3.y = y(s2, Da, La), (i2 < r3.x || i2 > r3.x + 1 || s2 < r3.y || s2 > r3.y + 1) && A2(\"Geometry exceeds allowed extent, reduce your vector tile buffer size\");\n }\n }\n return r2;\n }\n function ja(t4, e2) {\n return { type: t4.type, id: t4.id, properties: t4.properties, geometry: e2 ? Oa(t4) : [] };\n }\n function Ra(t4, e2, r2, n2, i2) {\n t4.emplaceBack(2 * e2 + (n2 + 1) / 2, 2 * r2 + (i2 + 1) / 2);\n }\n class Ua {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.layoutVertexArray = new Gs(), this.indexArray = new na(), this.segments = new oa(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n const n2 = this.layers[0], i2 = [];\n let s2 = null, a2 = false;\n \"circle\" === n2.type && (s2 = n2.layout.get(\"circle-sort-key\"), a2 = !s2.isConstant());\n for (const { feature: e3, id: n3, index: o2, sourceLayerIndex: l2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, u2 = ja(e3, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), u2, r2)) continue;\n const c2 = a2 ? s2.evaluate(u2, {}, r2) : void 0, h2 = { id: n3, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t5 ? u2.geometry : Oa(e3), patterns: {}, sortKey: c2 };\n i2.push(h2);\n }\n a2 && i2.sort((t5, e3) => t5.sortKey - e3.sortKey);\n for (const n3 of i2) {\n const { geometry: i3, index: s3, sourceLayerIndex: a3 } = n3, o2 = t4[s3].feature;\n this.addFeature(n3, i3, s3, r2), e2.featureIndex.insert(o2, i3, s3, a3, this.index);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, aa), this.indexBuffer = t4.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());\n }\n addFeature(t4, e2, r2, n2) {\n for (const r3 of e2) for (const e3 of r3) {\n const r4 = e3.x, n3 = e3.y;\n if (r4 < 0 || r4 >= $a || n3 < 0 || n3 >= $a) continue;\n const i2 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray, t4.sortKey), s2 = i2.vertexLength;\n Ra(this.layoutVertexArray, r4, n3, -1, -1), Ra(this.layoutVertexArray, r4, n3, 1, -1), Ra(this.layoutVertexArray, r4, n3, 1, 1), Ra(this.layoutVertexArray, r4, n3, -1, 1), this.indexArray.emplaceBack(s2, s2 + 1, s2 + 2), this.indexArray.emplaceBack(s2, s2 + 3, s2 + 2), i2.vertexLength += 4, i2.primitiveLength += 2;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, {}, n2);\n }\n }\n function qa(t4, e2) {\n for (let r2 = 0; r2 < t4.length; r2++) if (Wa(e2, t4[r2])) return true;\n for (let r2 = 0; r2 < e2.length; r2++) if (Wa(t4, e2[r2])) return true;\n return !!Ka(t4, e2);\n }\n function Na(t4, e2, r2) {\n return !!Wa(t4, e2) || !!Ha(e2, t4, r2);\n }\n function Za(t4, e2) {\n if (1 === t4.length) return Ja(e2, t4[0]);\n for (let r2 = 0; r2 < e2.length; r2++) {\n const n2 = e2[r2];\n for (let e3 = 0; e3 < n2.length; e3++) if (Wa(t4, n2[e3])) return true;\n }\n for (let r2 = 0; r2 < t4.length; r2++) if (Ja(e2, t4[r2])) return true;\n for (let r2 = 0; r2 < e2.length; r2++) if (Ka(t4, e2[r2])) return true;\n return false;\n }\n function Ga(t4, e2, r2) {\n if (t4.length > 1) {\n if (Ka(t4, e2)) return true;\n for (let n2 = 0; n2 < e2.length; n2++) if (Ha(e2[n2], t4, r2)) return true;\n }\n for (let n2 = 0; n2 < t4.length; n2++) if (Ha(t4[n2], e2, r2)) return true;\n return false;\n }\n function Ka(t4, e2) {\n if (0 === t4.length || 0 === e2.length) return false;\n for (let r2 = 0; r2 < t4.length - 1; r2++) {\n const n2 = t4[r2], i2 = t4[r2 + 1];\n for (let t5 = 0; t5 < e2.length - 1; t5++) if (Xa(n2, i2, e2[t5], e2[t5 + 1])) return true;\n }\n return false;\n }\n function Xa(t4, e2, r2, n2) {\n return S(t4, r2, n2) !== S(e2, r2, n2) && S(t4, e2, r2) !== S(t4, e2, n2);\n }\n function Ha(t4, e2, r2) {\n const n2 = r2 * r2;\n if (1 === e2.length) return t4.distSqr(e2[0]) < n2;\n for (let r3 = 1; r3 < e2.length; r3++) if (Ya(t4, e2[r3 - 1], e2[r3]) < n2) return true;\n return false;\n }\n function Ya(t4, e2, r2) {\n const n2 = e2.distSqr(r2);\n if (0 === n2) return t4.distSqr(e2);\n const i2 = ((t4.x - e2.x) * (r2.x - e2.x) + (t4.y - e2.y) * (r2.y - e2.y)) / n2;\n return t4.distSqr(i2 < 0 ? e2 : i2 > 1 ? r2 : r2.sub(e2)._mult(i2)._add(e2));\n }\n function Ja(t4, e2) {\n let r2, n2, i2, s2 = false;\n for (let a2 = 0; a2 < t4.length; a2++) {\n r2 = t4[a2];\n for (let t5 = 0, a3 = r2.length - 1; t5 < r2.length; a3 = t5++) n2 = r2[t5], i2 = r2[a3], n2.y > e2.y != i2.y > e2.y && e2.x < (i2.x - n2.x) * (e2.y - n2.y) / (i2.y - n2.y) + n2.x && (s2 = !s2);\n }\n return s2;\n }\n function Wa(t4, e2) {\n let r2 = false;\n for (let n2 = 0, i2 = t4.length - 1; n2 < t4.length; i2 = n2++) {\n const s2 = t4[n2], a2 = t4[i2];\n s2.y > e2.y != a2.y > e2.y && e2.x < (a2.x - s2.x) * (e2.y - s2.y) / (a2.y - s2.y) + s2.x && (r2 = !r2);\n }\n return r2;\n }\n function Qa(t4, e2, r2) {\n const n2 = r2[0], i2 = r2[2];\n if (t4.x < n2.x && e2.x < n2.x || t4.x > i2.x && e2.x > i2.x || t4.y < n2.y && e2.y < n2.y || t4.y > i2.y && e2.y > i2.y) return false;\n const s2 = S(t4, e2, r2[0]);\n return s2 !== S(t4, e2, r2[1]) || s2 !== S(t4, e2, r2[2]) || s2 !== S(t4, e2, r2[3]);\n }\n function to(t4, e2, r2) {\n const n2 = e2.paint.get(t4).value;\n return \"constant\" === n2.kind ? n2.value : r2.programConfigurations.get(e2.id).getMaxValue(t4);\n }\n function eo(t4) {\n return Math.sqrt(t4[0] * t4[0] + t4[1] * t4[1]);\n }\n function ro(t4, e2, r2, n2, i2) {\n if (!e2[0] && !e2[1]) return t4;\n const a2 = s.convert(e2)._mult(i2);\n \"viewport\" === r2 && a2._rotate(-n2);\n const o2 = [];\n for (let e3 = 0; e3 < t4.length; e3++) o2.push(t4[e3].sub(a2));\n return o2;\n }\n let no, io;\n wi(\"CircleBucket\", Ua, { omit: [\"layers\"] });\n var so = { get paint() {\n return io = io || new rs({ \"circle-radius\": new Wi(G.paint_circle[\"circle-radius\"]), \"circle-color\": new Wi(G.paint_circle[\"circle-color\"]), \"circle-blur\": new Wi(G.paint_circle[\"circle-blur\"]), \"circle-opacity\": new Wi(G.paint_circle[\"circle-opacity\"]), \"circle-translate\": new Ji(G.paint_circle[\"circle-translate\"]), \"circle-translate-anchor\": new Ji(G.paint_circle[\"circle-translate-anchor\"]), \"circle-pitch-scale\": new Ji(G.paint_circle[\"circle-pitch-scale\"]), \"circle-pitch-alignment\": new Ji(G.paint_circle[\"circle-pitch-alignment\"]), \"circle-stroke-width\": new Wi(G.paint_circle[\"circle-stroke-width\"]), \"circle-stroke-color\": new Wi(G.paint_circle[\"circle-stroke-color\"]), \"circle-stroke-opacity\": new Wi(G.paint_circle[\"circle-stroke-opacity\"]) });\n }, get layout() {\n return no = no || new rs({ \"circle-sort-key\": new Wi(G.layout_circle[\"circle-sort-key\"]) });\n } }, ao = 1e-6, oo = \"undefined\" != typeof Float32Array ? Float32Array : Array;\n function lo(t4) {\n return t4[0] = 1, t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = 1, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[10] = 1, t4[11] = 0, t4[12] = 0, t4[13] = 0, t4[14] = 0, t4[15] = 1, t4;\n }\n function uo(t4, e2, r2) {\n var n2 = e2[0], i2 = e2[1], s2 = e2[2], a2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c2 = e2[7], h2 = e2[8], p2 = e2[9], f2 = e2[10], d2 = e2[11], y2 = e2[12], m2 = e2[13], g2 = e2[14], x2 = e2[15], v2 = r2[0], b2 = r2[1], w2 = r2[2], _2 = r2[3];\n return t4[0] = v2 * n2 + b2 * o2 + w2 * h2 + _2 * y2, t4[1] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[2] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[3] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4[4] = (v2 = r2[4]) * n2 + (b2 = r2[5]) * o2 + (w2 = r2[6]) * h2 + (_2 = r2[7]) * y2, t4[5] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[6] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[7] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4[8] = (v2 = r2[8]) * n2 + (b2 = r2[9]) * o2 + (w2 = r2[10]) * h2 + (_2 = r2[11]) * y2, t4[9] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[10] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[11] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4[12] = (v2 = r2[12]) * n2 + (b2 = r2[13]) * o2 + (w2 = r2[14]) * h2 + (_2 = r2[15]) * y2, t4[13] = v2 * i2 + b2 * l2 + w2 * p2 + _2 * m2, t4[14] = v2 * s2 + b2 * u2 + w2 * f2 + _2 * g2, t4[15] = v2 * a2 + b2 * c2 + w2 * d2 + _2 * x2, t4;\n }\n Math.hypot || (Math.hypot = function() {\n for (var t4 = 0, e2 = arguments.length; e2--; ) t4 += arguments[e2] * arguments[e2];\n return Math.sqrt(t4);\n });\n var co, ho = uo;\n function po(t4, e2, r2) {\n var n2 = e2[0], i2 = e2[1], s2 = e2[2], a2 = e2[3];\n return t4[0] = r2[0] * n2 + r2[4] * i2 + r2[8] * s2 + r2[12] * a2, t4[1] = r2[1] * n2 + r2[5] * i2 + r2[9] * s2 + r2[13] * a2, t4[2] = r2[2] * n2 + r2[6] * i2 + r2[10] * s2 + r2[14] * a2, t4[3] = r2[3] * n2 + r2[7] * i2 + r2[11] * s2 + r2[15] * a2, t4;\n }\n co = new oo(4), oo != Float32Array && (co[0] = 0, co[1] = 0, co[2] = 0, co[3] = 0);\n class fo extends is {\n constructor(t4) {\n super(t4, so);\n }\n createBucket(t4) {\n return new Ua(t4);\n }\n queryRadius(t4) {\n const e2 = t4;\n return to(\"circle-radius\", this, e2) + to(\"circle-stroke-width\", this, e2) + eo(this.paint.get(\"circle-translate\"));\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = ro(t4, this.paint.get(\"circle-translate\"), this.paint.get(\"circle-translate-anchor\"), s2.angle, a2), u2 = this.paint.get(\"circle-radius\").evaluate(e2, r2) + this.paint.get(\"circle-stroke-width\").evaluate(e2, r2), c2 = \"map\" === this.paint.get(\"circle-pitch-alignment\"), h2 = c2 ? l2 : function(t5, e3) {\n return t5.map((t6) => yo(t6, e3));\n }(l2, o2), p2 = c2 ? u2 * a2 : u2;\n for (const t5 of n2) for (const e3 of t5) {\n const t6 = c2 ? e3 : yo(e3, o2);\n let r3 = p2;\n const n3 = po([], [e3.x, e3.y, 0, 1], o2);\n if (\"viewport\" === this.paint.get(\"circle-pitch-scale\") && \"map\" === this.paint.get(\"circle-pitch-alignment\") ? r3 *= n3[3] / s2.cameraToCenterDistance : \"map\" === this.paint.get(\"circle-pitch-scale\") && \"viewport\" === this.paint.get(\"circle-pitch-alignment\") && (r3 *= s2.cameraToCenterDistance / n3[3]), Na(h2, t6, r3)) return true;\n }\n return false;\n }\n }\n function yo(t4, e2) {\n const r2 = po([], [t4.x, t4.y, 0, 1], e2);\n return new s(r2[0] / r2[3], r2[1] / r2[3]);\n }\n class mo extends Ua {\n }\n let go;\n wi(\"HeatmapBucket\", mo, { omit: [\"layers\"] });\n var xo = { get paint() {\n return go = go || new rs({ \"heatmap-radius\": new Wi(G.paint_heatmap[\"heatmap-radius\"]), \"heatmap-weight\": new Wi(G.paint_heatmap[\"heatmap-weight\"]), \"heatmap-intensity\": new Ji(G.paint_heatmap[\"heatmap-intensity\"]), \"heatmap-color\": new es(G.paint_heatmap[\"heatmap-color\"]), \"heatmap-opacity\": new Ji(G.paint_heatmap[\"heatmap-opacity\"]) });\n } };\n function vo(t4, { width: e2, height: r2 }, n2, i2) {\n if (i2) {\n if (i2 instanceof Uint8ClampedArray) i2 = new Uint8Array(i2.buffer);\n else if (i2.length !== e2 * r2 * n2) throw new RangeError(`mismatched image size. expected: ${i2.length} but got: ${e2 * r2 * n2}`);\n } else i2 = new Uint8Array(e2 * r2 * n2);\n return t4.width = e2, t4.height = r2, t4.data = i2, t4;\n }\n function bo(t4, { width: e2, height: r2 }, n2) {\n if (e2 === t4.width && r2 === t4.height) return;\n const i2 = vo({}, { width: e2, height: r2 }, n2);\n wo(t4, i2, { x: 0, y: 0 }, { x: 0, y: 0 }, { width: Math.min(t4.width, e2), height: Math.min(t4.height, r2) }, n2), t4.width = e2, t4.height = r2, t4.data = i2.data;\n }\n function wo(t4, e2, r2, n2, i2, s2) {\n if (0 === i2.width || 0 === i2.height) return e2;\n if (i2.width > t4.width || i2.height > t4.height || r2.x > t4.width - i2.width || r2.y > t4.height - i2.height) throw new RangeError(\"out of range source coordinates for image copy\");\n if (i2.width > e2.width || i2.height > e2.height || n2.x > e2.width - i2.width || n2.y > e2.height - i2.height) throw new RangeError(\"out of range destination coordinates for image copy\");\n const a2 = t4.data, o2 = e2.data;\n if (a2 === o2) throw new Error(\"srcData equals dstData, so image is already copied\");\n for (let l2 = 0; l2 < i2.height; l2++) {\n const u2 = ((r2.y + l2) * t4.width + r2.x) * s2, c2 = ((n2.y + l2) * e2.width + n2.x) * s2;\n for (let t5 = 0; t5 < i2.width * s2; t5++) o2[c2 + t5] = a2[u2 + t5];\n }\n return e2;\n }\n class _o {\n constructor(t4, e2) {\n vo(this, t4, 1, e2);\n }\n resize(t4) {\n bo(this, t4, 1);\n }\n clone() {\n return new _o({ width: this.width, height: this.height }, new Uint8Array(this.data));\n }\n static copy(t4, e2, r2, n2, i2) {\n wo(t4, e2, r2, n2, i2, 1);\n }\n }\n class Ao {\n constructor(t4, e2) {\n vo(this, t4, 4, e2);\n }\n resize(t4) {\n bo(this, t4, 4);\n }\n replace(t4, e2) {\n e2 ? this.data.set(t4) : this.data = t4 instanceof Uint8ClampedArray ? new Uint8Array(t4.buffer) : t4;\n }\n clone() {\n return new Ao({ width: this.width, height: this.height }, new Uint8Array(this.data));\n }\n static copy(t4, e2, r2, n2, i2) {\n wo(t4, e2, r2, n2, i2, 4);\n }\n }\n function So(t4) {\n const e2 = {}, r2 = t4.resolution || 256, n2 = t4.clips ? t4.clips.length : 1, i2 = t4.image || new Ao({ width: r2, height: n2 });\n if (Math.log(r2) / Math.LN2 % 1 != 0) throw new Error(`width is not a power of 2 - ${r2}`);\n const s2 = (r3, n3, s3) => {\n e2[t4.evaluationKey] = s3;\n const a2 = t4.expression.evaluate(e2);\n i2.data[r3 + n3 + 0] = Math.floor(255 * a2.r / a2.a), i2.data[r3 + n3 + 1] = Math.floor(255 * a2.g / a2.a), i2.data[r3 + n3 + 2] = Math.floor(255 * a2.b / a2.a), i2.data[r3 + n3 + 3] = Math.floor(255 * a2.a);\n };\n if (t4.clips) for (let e3 = 0, i3 = 0; e3 < n2; ++e3, i3 += 4 * r2) for (let n3 = 0, a2 = 0; n3 < r2; n3++, a2 += 4) {\n const o2 = n3 / (r2 - 1), { start: l2, end: u2 } = t4.clips[e3];\n s2(i3, a2, l2 * (1 - o2) + u2 * o2);\n }\n else for (let t5 = 0, e3 = 0; t5 < r2; t5++, e3 += 4) s2(0, e3, t5 / (r2 - 1));\n return i2;\n }\n wi(\"AlphaImage\", _o), wi(\"RGBAImage\", Ao);\n const ko = \"big-fb\";\n class Mo extends is {\n createBucket(t4) {\n return new mo(t4);\n }\n constructor(t4) {\n super(t4, xo), this.heatmapFbos = /* @__PURE__ */ new Map(), this._updateColorRamp();\n }\n _handleSpecialPaintPropertyUpdate(t4) {\n \"heatmap-color\" === t4 && this._updateColorRamp();\n }\n _updateColorRamp() {\n this.colorRamp = So({ expression: this._transitionablePaint._values[\"heatmap-color\"].value.expression, evaluationKey: \"heatmapDensity\", image: this.colorRamp }), this.colorRampTexture = null;\n }\n resize() {\n this.heatmapFbos.has(ko) && this.heatmapFbos.delete(ko);\n }\n queryRadius() {\n return 0;\n }\n queryIntersectsFeature() {\n return false;\n }\n hasOffscreenPass() {\n return 0 !== this.paint.get(\"heatmap-opacity\") && \"none\" !== this.visibility;\n }\n }\n let Io;\n var zo = { get paint() {\n return Io = Io || new rs({ \"hillshade-illumination-direction\": new Ji(G.paint_hillshade[\"hillshade-illumination-direction\"]), \"hillshade-illumination-anchor\": new Ji(G.paint_hillshade[\"hillshade-illumination-anchor\"]), \"hillshade-exaggeration\": new Ji(G.paint_hillshade[\"hillshade-exaggeration\"]), \"hillshade-shadow-color\": new Ji(G.paint_hillshade[\"hillshade-shadow-color\"]), \"hillshade-highlight-color\": new Ji(G.paint_hillshade[\"hillshade-highlight-color\"]), \"hillshade-accent-color\": new Ji(G.paint_hillshade[\"hillshade-accent-color\"]) });\n } };\n class Po extends is {\n constructor(t4) {\n super(t4, zo);\n }\n hasOffscreenPass() {\n return 0 !== this.paint.get(\"hillshade-exaggeration\") && \"none\" !== this.visibility;\n }\n }\n const Co = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }], 4), { members: Bo } = Co;\n function Vo(t4, e2, r2 = 2) {\n const n2 = e2 && e2.length, i2 = n2 ? e2[0] * r2 : t4.length;\n let s2 = Eo(t4, 0, i2, r2, true);\n const a2 = [];\n if (!s2 || s2.next === s2.prev) return a2;\n let o2, l2, u2;\n if (n2 && (s2 = function(t5, e3, r3, n3) {\n const i3 = [];\n for (let r4 = 0, s3 = e3.length; r4 < s3; r4++) {\n const a3 = Eo(t5, e3[r4] * n3, r4 < s3 - 1 ? e3[r4 + 1] * n3 : t5.length, n3, false);\n a3 === a3.next && (a3.steiner = true), i3.push(No(a3));\n }\n i3.sort(jo);\n for (let t6 = 0; t6 < i3.length; t6++) r3 = Ro(i3[t6], r3);\n return r3;\n }(t4, e2, s2, r2)), t4.length > 80 * r2) {\n o2 = 1 / 0, l2 = 1 / 0;\n let e3 = -1 / 0, n3 = -1 / 0;\n for (let s3 = r2; s3 < i2; s3 += r2) {\n const r3 = t4[s3], i3 = t4[s3 + 1];\n r3 < o2 && (o2 = r3), i3 < l2 && (l2 = i3), r3 > e3 && (e3 = r3), i3 > n3 && (n3 = i3);\n }\n u2 = Math.max(e3 - o2, n3 - l2), u2 = 0 !== u2 ? 32767 / u2 : 0;\n }\n return To(s2, a2, r2, o2, l2, u2, 0), a2;\n }\n function Eo(t4, e2, r2, n2, i2) {\n let s2;\n if (i2 === function(t5, e3, r3, n3) {\n let i3 = 0;\n for (let s3 = e3, a2 = r3 - n3; s3 < r3; s3 += n3) i3 += (t5[a2] - t5[s3]) * (t5[s3 + 1] + t5[a2 + 1]), a2 = s3;\n return i3;\n }(t4, e2, r2, n2) > 0) for (let i3 = e2; i3 < r2; i3 += n2) s2 = tl(i3 / n2 | 0, t4[i3], t4[i3 + 1], s2);\n else for (let i3 = r2 - n2; i3 >= e2; i3 -= n2) s2 = tl(i3 / n2 | 0, t4[i3], t4[i3 + 1], s2);\n return s2 && Xo(s2, s2.next) && (el(s2), s2 = s2.next), s2;\n }\n function Fo(t4, e2) {\n if (!t4) return t4;\n e2 || (e2 = t4);\n let r2, n2 = t4;\n do {\n if (r2 = false, n2.steiner || !Xo(n2, n2.next) && 0 !== Ko(n2.prev, n2, n2.next)) n2 = n2.next;\n else {\n if (el(n2), n2 = e2 = n2.prev, n2 === n2.next) break;\n r2 = true;\n }\n } while (r2 || n2 !== e2);\n return e2;\n }\n function To(t4, e2, r2, n2, i2, s2, a2) {\n if (!t4) return;\n !a2 && s2 && function(t5, e3, r3, n3) {\n let i3 = t5;\n do {\n 0 === i3.z && (i3.z = qo(i3.x, i3.y, e3, r3, n3)), i3.prevZ = i3.prev, i3.nextZ = i3.next, i3 = i3.next;\n } while (i3 !== t5);\n i3.prevZ.nextZ = null, i3.prevZ = null, function(t6) {\n let e4, r4 = 1;\n do {\n let n4, i4 = t6;\n t6 = null;\n let s3 = null;\n for (e4 = 0; i4; ) {\n e4++;\n let a3 = i4, o3 = 0;\n for (let t7 = 0; t7 < r4 && (o3++, a3 = a3.nextZ, a3); t7++) ;\n let l2 = r4;\n for (; o3 > 0 || l2 > 0 && a3; ) 0 !== o3 && (0 === l2 || !a3 || i4.z <= a3.z) ? (n4 = i4, i4 = i4.nextZ, o3--) : (n4 = a3, a3 = a3.nextZ, l2--), s3 ? s3.nextZ = n4 : t6 = n4, n4.prevZ = s3, s3 = n4;\n i4 = a3;\n }\n s3.nextZ = null, r4 *= 2;\n } while (e4 > 1);\n }(i3);\n }(t4, n2, i2, s2);\n let o2 = t4;\n for (; t4.prev !== t4.next; ) {\n const l2 = t4.prev, u2 = t4.next;\n if (s2 ? Lo(t4, n2, i2, s2) : $o(t4)) e2.push(l2.i, t4.i, u2.i), el(t4), t4 = u2.next, o2 = u2.next;\n else if ((t4 = u2) === o2) {\n a2 ? 1 === a2 ? To(t4 = Do(Fo(t4), e2), e2, r2, n2, i2, s2, 2) : 2 === a2 && Oo(t4, e2, r2, n2, i2, s2) : To(Fo(t4), e2, r2, n2, i2, s2, 1);\n break;\n }\n }\n }\n function $o(t4) {\n const e2 = t4.prev, r2 = t4, n2 = t4.next;\n if (Ko(e2, r2, n2) >= 0) return false;\n const i2 = e2.x, s2 = r2.x, a2 = n2.x, o2 = e2.y, l2 = r2.y, u2 = n2.y, c2 = i2 < s2 ? i2 < a2 ? i2 : a2 : s2 < a2 ? s2 : a2, h2 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, p2 = i2 > s2 ? i2 > a2 ? i2 : a2 : s2 > a2 ? s2 : a2, f2 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2;\n let d2 = n2.next;\n for (; d2 !== e2; ) {\n if (d2.x >= c2 && d2.x <= p2 && d2.y >= h2 && d2.y <= f2 && Zo(i2, o2, s2, l2, a2, u2, d2.x, d2.y) && Ko(d2.prev, d2, d2.next) >= 0) return false;\n d2 = d2.next;\n }\n return true;\n }\n function Lo(t4, e2, r2, n2) {\n const i2 = t4.prev, s2 = t4, a2 = t4.next;\n if (Ko(i2, s2, a2) >= 0) return false;\n const o2 = i2.x, l2 = s2.x, u2 = a2.x, c2 = i2.y, h2 = s2.y, p2 = a2.y, f2 = o2 < l2 ? o2 < u2 ? o2 : u2 : l2 < u2 ? l2 : u2, d2 = c2 < h2 ? c2 < p2 ? c2 : p2 : h2 < p2 ? h2 : p2, y2 = o2 > l2 ? o2 > u2 ? o2 : u2 : l2 > u2 ? l2 : u2, m2 = c2 > h2 ? c2 > p2 ? c2 : p2 : h2 > p2 ? h2 : p2, g2 = qo(f2, d2, e2, r2, n2), x2 = qo(y2, m2, e2, r2, n2);\n let v2 = t4.prevZ, b2 = t4.nextZ;\n for (; v2 && v2.z >= g2 && b2 && b2.z <= x2; ) {\n if (v2.x >= f2 && v2.x <= y2 && v2.y >= d2 && v2.y <= m2 && v2 !== i2 && v2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, v2.x, v2.y) && Ko(v2.prev, v2, v2.next) >= 0) return false;\n if (v2 = v2.prevZ, b2.x >= f2 && b2.x <= y2 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, b2.x, b2.y) && Ko(b2.prev, b2, b2.next) >= 0) return false;\n b2 = b2.nextZ;\n }\n for (; v2 && v2.z >= g2; ) {\n if (v2.x >= f2 && v2.x <= y2 && v2.y >= d2 && v2.y <= m2 && v2 !== i2 && v2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, v2.x, v2.y) && Ko(v2.prev, v2, v2.next) >= 0) return false;\n v2 = v2.prevZ;\n }\n for (; b2 && b2.z <= x2; ) {\n if (b2.x >= f2 && b2.x <= y2 && b2.y >= d2 && b2.y <= m2 && b2 !== i2 && b2 !== a2 && Zo(o2, c2, l2, h2, u2, p2, b2.x, b2.y) && Ko(b2.prev, b2, b2.next) >= 0) return false;\n b2 = b2.nextZ;\n }\n return true;\n }\n function Do(t4, e2) {\n let r2 = t4;\n do {\n const n2 = r2.prev, i2 = r2.next.next;\n !Xo(n2, i2) && Ho(n2, r2, r2.next, i2) && Wo(n2, i2) && Wo(i2, n2) && (e2.push(n2.i, r2.i, i2.i), el(r2), el(r2.next), r2 = t4 = i2), r2 = r2.next;\n } while (r2 !== t4);\n return Fo(r2);\n }\n function Oo(t4, e2, r2, n2, i2, s2) {\n let a2 = t4;\n do {\n let t5 = a2.next.next;\n for (; t5 !== a2.prev; ) {\n if (a2.i !== t5.i && Go(a2, t5)) {\n let o2 = Qo(a2, t5);\n return a2 = Fo(a2, a2.next), o2 = Fo(o2, o2.next), To(a2, e2, r2, n2, i2, s2, 0), void To(o2, e2, r2, n2, i2, s2, 0);\n }\n t5 = t5.next;\n }\n a2 = a2.next;\n } while (a2 !== t4);\n }\n function jo(t4, e2) {\n return t4.x - e2.x;\n }\n function Ro(t4, e2) {\n const r2 = function(t5, e3) {\n let r3 = e3;\n const n3 = t5.x, i2 = t5.y;\n let s2, a2 = -1 / 0;\n do {\n if (i2 <= r3.y && i2 >= r3.next.y && r3.next.y !== r3.y) {\n const t6 = r3.x + (i2 - r3.y) * (r3.next.x - r3.x) / (r3.next.y - r3.y);\n if (t6 <= n3 && t6 > a2 && (a2 = t6, s2 = r3.x < r3.next.x ? r3 : r3.next, t6 === n3)) return s2;\n }\n r3 = r3.next;\n } while (r3 !== e3);\n if (!s2) return null;\n const o2 = s2, l2 = s2.x, u2 = s2.y;\n let c2 = 1 / 0;\n r3 = s2;\n do {\n if (n3 >= r3.x && r3.x >= l2 && n3 !== r3.x && Zo(i2 < u2 ? n3 : a2, i2, l2, u2, i2 < u2 ? a2 : n3, i2, r3.x, r3.y)) {\n const e4 = Math.abs(i2 - r3.y) / (n3 - r3.x);\n Wo(r3, t5) && (e4 < c2 || e4 === c2 && (r3.x > s2.x || r3.x === s2.x && Uo(s2, r3))) && (s2 = r3, c2 = e4);\n }\n r3 = r3.next;\n } while (r3 !== o2);\n return s2;\n }(t4, e2);\n if (!r2) return e2;\n const n2 = Qo(r2, t4);\n return Fo(n2, n2.next), Fo(r2, r2.next);\n }\n function Uo(t4, e2) {\n return Ko(t4.prev, t4, e2.prev) < 0 && Ko(e2.next, t4, t4.next) < 0;\n }\n function qo(t4, e2, r2, n2, i2) {\n return (t4 = 1431655765 & ((t4 = 858993459 & ((t4 = 252645135 & ((t4 = 16711935 & ((t4 = (t4 - r2) * i2 | 0) | t4 << 8)) | t4 << 4)) | t4 << 2)) | t4 << 1)) | (e2 = 1431655765 & ((e2 = 858993459 & ((e2 = 252645135 & ((e2 = 16711935 & ((e2 = (e2 - n2) * i2 | 0) | e2 << 8)) | e2 << 4)) | e2 << 2)) | e2 << 1)) << 1;\n }\n function No(t4) {\n let e2 = t4, r2 = t4;\n do {\n (e2.x < r2.x || e2.x === r2.x && e2.y < r2.y) && (r2 = e2), e2 = e2.next;\n } while (e2 !== t4);\n return r2;\n }\n function Zo(t4, e2, r2, n2, i2, s2, a2, o2) {\n return (i2 - a2) * (e2 - o2) >= (t4 - a2) * (s2 - o2) && (t4 - a2) * (n2 - o2) >= (r2 - a2) * (e2 - o2) && (r2 - a2) * (s2 - o2) >= (i2 - a2) * (n2 - o2);\n }\n function Go(t4, e2) {\n return t4.next.i !== e2.i && t4.prev.i !== e2.i && !function(t5, e3) {\n let r2 = t5;\n do {\n if (r2.i !== t5.i && r2.next.i !== t5.i && r2.i !== e3.i && r2.next.i !== e3.i && Ho(r2, r2.next, t5, e3)) return true;\n r2 = r2.next;\n } while (r2 !== t5);\n return false;\n }(t4, e2) && (Wo(t4, e2) && Wo(e2, t4) && function(t5, e3) {\n let r2 = t5, n2 = false;\n const i2 = (t5.x + e3.x) / 2, s2 = (t5.y + e3.y) / 2;\n do {\n r2.y > s2 != r2.next.y > s2 && r2.next.y !== r2.y && i2 < (r2.next.x - r2.x) * (s2 - r2.y) / (r2.next.y - r2.y) + r2.x && (n2 = !n2), r2 = r2.next;\n } while (r2 !== t5);\n return n2;\n }(t4, e2) && (Ko(t4.prev, t4, e2.prev) || Ko(t4, e2.prev, e2)) || Xo(t4, e2) && Ko(t4.prev, t4, t4.next) > 0 && Ko(e2.prev, e2, e2.next) > 0);\n }\n function Ko(t4, e2, r2) {\n return (e2.y - t4.y) * (r2.x - e2.x) - (e2.x - t4.x) * (r2.y - e2.y);\n }\n function Xo(t4, e2) {\n return t4.x === e2.x && t4.y === e2.y;\n }\n function Ho(t4, e2, r2, n2) {\n const i2 = Jo(Ko(t4, e2, r2)), s2 = Jo(Ko(t4, e2, n2)), a2 = Jo(Ko(r2, n2, t4)), o2 = Jo(Ko(r2, n2, e2));\n return i2 !== s2 && a2 !== o2 || !(0 !== i2 || !Yo(t4, r2, e2)) || !(0 !== s2 || !Yo(t4, n2, e2)) || !(0 !== a2 || !Yo(r2, t4, n2)) || !(0 !== o2 || !Yo(r2, e2, n2));\n }\n function Yo(t4, e2, r2) {\n return e2.x <= Math.max(t4.x, r2.x) && e2.x >= Math.min(t4.x, r2.x) && e2.y <= Math.max(t4.y, r2.y) && e2.y >= Math.min(t4.y, r2.y);\n }\n function Jo(t4) {\n return t4 > 0 ? 1 : t4 < 0 ? -1 : 0;\n }\n function Wo(t4, e2) {\n return Ko(t4.prev, t4, t4.next) < 0 ? Ko(t4, e2, t4.next) >= 0 && Ko(t4, t4.prev, e2) >= 0 : Ko(t4, e2, t4.prev) < 0 || Ko(t4, t4.next, e2) < 0;\n }\n function Qo(t4, e2) {\n const r2 = rl(t4.i, t4.x, t4.y), n2 = rl(e2.i, e2.x, e2.y), i2 = t4.next, s2 = e2.prev;\n return t4.next = e2, e2.prev = t4, r2.next = i2, i2.prev = r2, n2.next = r2, r2.prev = n2, s2.next = n2, n2.prev = s2, n2;\n }\n function tl(t4, e2, r2, n2) {\n const i2 = rl(t4, e2, r2);\n return n2 ? (i2.next = n2.next, i2.prev = n2, n2.next.prev = i2, n2.next = i2) : (i2.prev = i2, i2.next = i2), i2;\n }\n function el(t4) {\n t4.next.prev = t4.prev, t4.prev.next = t4.next, t4.prevZ && (t4.prevZ.nextZ = t4.nextZ), t4.nextZ && (t4.nextZ.prevZ = t4.prevZ);\n }\n function rl(t4, e2, r2) {\n return { i: t4, x: e2, y: r2, prev: null, next: null, z: 0, prevZ: null, nextZ: null, steiner: false };\n }\n function nl(t4, e2, r2) {\n const n2 = r2.patternDependencies;\n let i2 = false;\n for (const r3 of e2) {\n const e3 = r3.paint.get(`${t4}-pattern`);\n e3.isConstant() || (i2 = true);\n const s2 = e3.constantOr(null);\n s2 && (i2 = true, n2[s2.to] = true, n2[s2.from] = true);\n }\n return i2;\n }\n function il(t4, e2, r2, n2, i2) {\n const s2 = i2.patternDependencies;\n for (const a2 of e2) {\n const e3 = a2.paint.get(`${t4}-pattern`).value;\n if (\"constant\" !== e3.kind) {\n let t5 = e3.evaluate({ zoom: n2 - 1 }, r2, {}, i2.availableImages), o2 = e3.evaluate({ zoom: n2 }, r2, {}, i2.availableImages), l2 = e3.evaluate({ zoom: n2 + 1 }, r2, {}, i2.availableImages);\n t5 = t5 && t5.name ? t5.name : t5, o2 = o2 && o2.name ? o2.name : o2, l2 = l2 && l2.name ? l2.name : l2, s2[t5] = true, s2[o2] = true, s2[l2] = true, r2.patterns[a2.id] = { min: t5, mid: o2, max: l2 };\n }\n }\n return r2;\n }\n class sl {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.patternFeatures = [], this.layoutVertexArray = new Ks(), this.indexArray = new na(), this.indexArray2 = new ia(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.segments = new oa(), this.segments2 = new oa(), this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n this.hasPattern = nl(\"fill\", this.layers, e2);\n const n2 = this.layers[0].layout.get(\"fill-sort-key\"), i2 = !n2.isConstant(), s2 = [];\n for (const { feature: a2, id: o2, index: l2, sourceLayerIndex: u2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, c2 = ja(a2, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), c2, r2)) continue;\n const h2 = i2 ? n2.evaluate(c2, {}, r2, e2.availableImages) : void 0, p2 = { id: o2, properties: a2.properties, type: a2.type, sourceLayerIndex: u2, index: l2, geometry: t5 ? c2.geometry : Oa(a2), patterns: {}, sortKey: h2 };\n s2.push(p2);\n }\n i2 && s2.sort((t5, e3) => t5.sortKey - e3.sortKey);\n for (const n3 of s2) {\n const { geometry: i3, index: s3, sourceLayerIndex: a2 } = n3;\n if (this.hasPattern) {\n const t5 = il(\"fill\", this.layers, n3, this.zoom, e2);\n this.patternFeatures.push(t5);\n } else this.addFeature(n3, i3, s3, r2, {});\n e2.featureIndex.insert(t4[s3].feature, i3, s3, a2, this.index);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n addFeatures(t4, e2, r2) {\n for (const t5 of this.patternFeatures) this.addFeature(t5, t5.geometry, t5.index, e2, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, Bo), this.indexBuffer = t4.createIndexBuffer(this.indexArray), this.indexBuffer2 = t4.createIndexBuffer(this.indexArray2)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.indexBuffer2.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.segments2.destroy());\n }\n addFeature(t4, e2, r2, n2, i2) {\n for (const t5 of xr(e2, 500)) {\n let e3 = 0;\n for (const r4 of t5) e3 += r4.length;\n const r3 = this.segments.prepareSegment(e3, this.layoutVertexArray, this.indexArray), n3 = r3.vertexLength, i3 = [], s2 = [];\n for (const e4 of t5) {\n if (0 === e4.length) continue;\n e4 !== t5[0] && s2.push(i3.length / 2);\n const r4 = this.segments2.prepareSegment(e4.length, this.layoutVertexArray, this.indexArray2), n4 = r4.vertexLength;\n this.layoutVertexArray.emplaceBack(e4[0].x, e4[0].y), this.indexArray2.emplaceBack(n4 + e4.length - 1, n4), i3.push(e4[0].x), i3.push(e4[0].y);\n for (let t6 = 1; t6 < e4.length; t6++) this.layoutVertexArray.emplaceBack(e4[t6].x, e4[t6].y), this.indexArray2.emplaceBack(n4 + t6 - 1, n4 + t6), i3.push(e4[t6].x), i3.push(e4[t6].y);\n r4.vertexLength += e4.length, r4.primitiveLength += e4.length;\n }\n const a2 = Vo(i3, s2);\n for (let t6 = 0; t6 < a2.length; t6 += 3) this.indexArray.emplaceBack(n3 + a2[t6], n3 + a2[t6 + 1], n3 + a2[t6 + 2]);\n r3.vertexLength += e3, r3.primitiveLength += a2.length / 3;\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, i2, n2);\n }\n }\n let al, ol;\n wi(\"FillBucket\", sl, { omit: [\"layers\", \"patternFeatures\"] });\n var ll = { get paint() {\n return ol = ol || new rs({ \"fill-antialias\": new Ji(G.paint_fill[\"fill-antialias\"]), \"fill-opacity\": new Wi(G.paint_fill[\"fill-opacity\"]), \"fill-color\": new Wi(G.paint_fill[\"fill-color\"]), \"fill-outline-color\": new Wi(G.paint_fill[\"fill-outline-color\"]), \"fill-translate\": new Ji(G.paint_fill[\"fill-translate\"]), \"fill-translate-anchor\": new Ji(G.paint_fill[\"fill-translate-anchor\"]), \"fill-pattern\": new Qi(G.paint_fill[\"fill-pattern\"]) });\n }, get layout() {\n return al = al || new rs({ \"fill-sort-key\": new Wi(G.layout_fill[\"fill-sort-key\"]) });\n } };\n class ul extends is {\n constructor(t4) {\n super(t4, ll);\n }\n recalculate(t4, e2) {\n super.recalculate(t4, e2);\n const r2 = this.paint._values[\"fill-outline-color\"];\n \"constant\" === r2.value.kind && void 0 === r2.value.value && (this.paint._values[\"fill-outline-color\"] = this.paint._values[\"fill-color\"]);\n }\n createBucket(t4) {\n return new sl(t4);\n }\n queryRadius() {\n return eo(this.paint.get(\"fill-translate\"));\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, s2, a2) {\n return Za(ro(t4, this.paint.get(\"fill-translate\"), this.paint.get(\"fill-translate-anchor\"), s2.angle, a2), n2);\n }\n isTileClipped() {\n return true;\n }\n }\n const cl = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }, { name: \"a_normal_ed\", components: 4, type: \"Int16\" }], 4), hl = ls([{ name: \"a_centroid\", components: 2, type: \"Int16\" }], 4), { members: pl } = cl;\n var fl = {}, dl = n, yl = ml;\n function ml(t4, e2, r2, n2, i2) {\n this.properties = {}, this.extent = r2, this.type = 0, this._pbf = t4, this._geometry = -1, this._keys = n2, this._values = i2, t4.readFields(gl2, this, e2);\n }\n function gl2(t4, e2, r2) {\n 1 == t4 ? e2.id = r2.readVarint() : 2 == t4 ? function(t5, e3) {\n for (var r3 = t5.readVarint() + t5.pos; t5.pos < r3; ) {\n var n2 = e3._keys[t5.readVarint()], i2 = e3._values[t5.readVarint()];\n e3.properties[n2] = i2;\n }\n }(r2, e2) : 3 == t4 ? e2.type = r2.readVarint() : 4 == t4 && (e2._geometry = r2.pos);\n }\n function xl(t4) {\n for (var e2, r2, n2 = 0, i2 = 0, s2 = t4.length, a2 = s2 - 1; i2 < s2; a2 = i2++) n2 += ((r2 = t4[a2]).x - (e2 = t4[i2]).x) * (e2.y + r2.y);\n return n2;\n }\n ml.types = [\"Unknown\", \"Point\", \"LineString\", \"Polygon\"], ml.prototype.loadGeometry = function() {\n var t4 = this._pbf;\n t4.pos = this._geometry;\n for (var e2, r2 = t4.readVarint() + t4.pos, n2 = 1, i2 = 0, s2 = 0, a2 = 0, o2 = []; t4.pos < r2; ) {\n if (i2 <= 0) {\n var l2 = t4.readVarint();\n n2 = 7 & l2, i2 = l2 >> 3;\n }\n if (i2--, 1 === n2 || 2 === n2) s2 += t4.readSVarint(), a2 += t4.readSVarint(), 1 === n2 && (e2 && o2.push(e2), e2 = []), e2.push(new dl(s2, a2));\n else {\n if (7 !== n2) throw new Error(\"unknown command \" + n2);\n e2 && e2.push(e2[0].clone());\n }\n }\n return e2 && o2.push(e2), o2;\n }, ml.prototype.bbox = function() {\n var t4 = this._pbf;\n t4.pos = this._geometry;\n for (var e2 = t4.readVarint() + t4.pos, r2 = 1, n2 = 0, i2 = 0, s2 = 0, a2 = 1 / 0, o2 = -1 / 0, l2 = 1 / 0, u2 = -1 / 0; t4.pos < e2; ) {\n if (n2 <= 0) {\n var c2 = t4.readVarint();\n r2 = 7 & c2, n2 = c2 >> 3;\n }\n if (n2--, 1 === r2 || 2 === r2) (i2 += t4.readSVarint()) < a2 && (a2 = i2), i2 > o2 && (o2 = i2), (s2 += t4.readSVarint()) < l2 && (l2 = s2), s2 > u2 && (u2 = s2);\n else if (7 !== r2) throw new Error(\"unknown command \" + r2);\n }\n return [a2, l2, o2, u2];\n }, ml.prototype.toGeoJSON = function(t4, e2, r2) {\n var n2, i2, s2 = this.extent * Math.pow(2, r2), a2 = this.extent * t4, o2 = this.extent * e2, l2 = this.loadGeometry(), u2 = ml.types[this.type];\n function c2(t5) {\n for (var e3 = 0; e3 < t5.length; e3++) {\n var r3 = t5[e3];\n t5[e3] = [360 * (r3.x + a2) / s2 - 180, 360 / Math.PI * Math.atan(Math.exp((180 - 360 * (r3.y + o2) / s2) * Math.PI / 180)) - 90];\n }\n }\n switch (this.type) {\n case 1:\n var h2 = [];\n for (n2 = 0; n2 < l2.length; n2++) h2[n2] = l2[n2][0];\n c2(l2 = h2);\n break;\n case 2:\n for (n2 = 0; n2 < l2.length; n2++) c2(l2[n2]);\n break;\n case 3:\n for (l2 = function(t5) {\n var e3 = t5.length;\n if (e3 <= 1) return [t5];\n for (var r3, n3, i3 = [], s3 = 0; s3 < e3; s3++) {\n var a3 = xl(t5[s3]);\n 0 !== a3 && (void 0 === n3 && (n3 = a3 < 0), n3 === a3 < 0 ? (r3 && i3.push(r3), r3 = [t5[s3]]) : r3.push(t5[s3]));\n }\n return r3 && i3.push(r3), i3;\n }(l2), n2 = 0; n2 < l2.length; n2++) for (i2 = 0; i2 < l2[n2].length; i2++) c2(l2[n2][i2]);\n }\n 1 === l2.length ? l2 = l2[0] : u2 = \"Multi\" + u2;\n var p2 = { type: \"Feature\", geometry: { type: u2, coordinates: l2 }, properties: this.properties };\n return \"id\" in this && (p2.id = this.id), p2;\n };\n var vl = yl, bl = wl;\n function wl(t4, e2) {\n this.version = 1, this.name = null, this.extent = 4096, this.length = 0, this._pbf = t4, this._keys = [], this._values = [], this._features = [], t4.readFields(_l, this, e2), this.length = this._features.length;\n }\n function _l(t4, e2, r2) {\n 15 === t4 ? e2.version = r2.readVarint() : 1 === t4 ? e2.name = r2.readString() : 5 === t4 ? e2.extent = r2.readVarint() : 2 === t4 ? e2._features.push(r2.pos) : 3 === t4 ? e2._keys.push(r2.readString()) : 4 === t4 && e2._values.push(function(t5) {\n for (var e3 = null, r3 = t5.readVarint() + t5.pos; t5.pos < r3; ) {\n var n2 = t5.readVarint() >> 3;\n e3 = 1 === n2 ? t5.readString() : 2 === n2 ? t5.readFloat() : 3 === n2 ? t5.readDouble() : 4 === n2 ? t5.readVarint64() : 5 === n2 ? t5.readVarint() : 6 === n2 ? t5.readSVarint() : 7 === n2 ? t5.readBoolean() : null;\n }\n return e3;\n }(r2));\n }\n wl.prototype.feature = function(t4) {\n if (t4 < 0 || t4 >= this._features.length) throw new Error(\"feature index out of bounds\");\n this._pbf.pos = this._features[t4];\n var e2 = this._pbf.readVarint() + this._pbf.pos;\n return new vl(this._pbf, e2, this.extent, this._keys, this._values);\n };\n var Al = bl;\n function Sl(t4, e2, r2) {\n if (3 === t4) {\n var n2 = new Al(r2, r2.readVarint() + r2.pos);\n n2.length && (e2[n2.name] = n2);\n }\n }\n fl.VectorTile = function(t4, e2) {\n this.layers = t4.readFields(Sl, {}, e2);\n }, fl.VectorTileFeature = yl, fl.VectorTileLayer = bl;\n const kl = fl.VectorTileFeature.types, Ml = Math.pow(2, 13);\n function Il(t4, e2, r2, n2, i2, s2, a2, o2) {\n t4.emplaceBack(e2, r2, 2 * Math.floor(n2 * Ml) + a2, i2 * Ml * 2, s2 * Ml * 2, Math.round(o2));\n }\n class zl {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.layoutVertexArray = new Xs(), this.centroidVertexArray = new Zs(), this.indexArray = new na(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.segments = new oa(), this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n this.features = [], this.hasPattern = nl(\"fill-extrusion\", this.layers, e2);\n for (const { feature: n2, id: i2, index: s2, sourceLayerIndex: a2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, o2 = ja(n2, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), o2, r2)) continue;\n const l2 = { id: i2, sourceLayerIndex: a2, index: s2, geometry: t5 ? o2.geometry : Oa(n2), properties: n2.properties, type: n2.type, patterns: {} };\n this.hasPattern ? this.features.push(il(\"fill-extrusion\", this.layers, l2, this.zoom, e2)) : this.addFeature(l2, l2.geometry, s2, r2, {}), e2.featureIndex.insert(n2, l2.geometry, s2, a2, this.index, true);\n }\n }\n addFeatures(t4, e2, r2) {\n for (const t5 of this.features) {\n const { geometry: n2 } = t5;\n this.addFeature(t5, n2, t5.index, e2, r2);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length && 0 === this.centroidVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, pl), this.centroidVertexBuffer = t4.createVertexBuffer(this.centroidVertexArray, hl.members, true), this.indexBuffer = t4.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.centroidVertexBuffer.destroy());\n }\n addFeature(t4, e2, r2, n2, i2) {\n for (const r3 of xr(e2, 500)) {\n const e3 = { x: 0, y: 0, vertexCount: 0 };\n let n3 = 0;\n for (const t5 of r3) n3 += t5.length;\n let i3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray);\n for (const t5 of r3) {\n if (0 === t5.length) continue;\n if (Cl(t5)) continue;\n let r4 = 0;\n for (let n4 = 0; n4 < t5.length; n4++) {\n const s3 = t5[n4];\n if (n4 >= 1) {\n const a3 = t5[n4 - 1];\n if (!Pl(s3, a3)) {\n i3.vertexLength + 4 > oa.MAX_VERTEX_ARRAY_LENGTH && (i3 = this.segments.prepareSegment(4, this.layoutVertexArray, this.indexArray));\n const t6 = s3.sub(a3)._perp()._unit(), n5 = a3.dist(s3);\n r4 + n5 > 32768 && (r4 = 0), Il(this.layoutVertexArray, s3.x, s3.y, t6.x, t6.y, 0, 0, r4), Il(this.layoutVertexArray, s3.x, s3.y, t6.x, t6.y, 0, 1, r4), e3.x += 2 * s3.x, e3.y += 2 * s3.y, e3.vertexCount += 2, r4 += n5, Il(this.layoutVertexArray, a3.x, a3.y, t6.x, t6.y, 0, 0, r4), Il(this.layoutVertexArray, a3.x, a3.y, t6.x, t6.y, 0, 1, r4), e3.x += 2 * a3.x, e3.y += 2 * a3.y, e3.vertexCount += 2;\n const o3 = i3.vertexLength;\n this.indexArray.emplaceBack(o3, o3 + 2, o3 + 1), this.indexArray.emplaceBack(o3 + 1, o3 + 2, o3 + 3), i3.vertexLength += 4, i3.primitiveLength += 2;\n }\n }\n }\n }\n if (i3.vertexLength + n3 > oa.MAX_VERTEX_ARRAY_LENGTH && (i3 = this.segments.prepareSegment(n3, this.layoutVertexArray, this.indexArray)), \"Polygon\" !== kl[t4.type]) continue;\n const s2 = [], a2 = [], o2 = i3.vertexLength;\n for (const t5 of r3) if (0 !== t5.length) {\n t5 !== r3[0] && a2.push(s2.length / 2);\n for (let r4 = 0; r4 < t5.length; r4++) {\n const n4 = t5[r4];\n Il(this.layoutVertexArray, n4.x, n4.y, 0, 0, 1, 1, 0), e3.x += n4.x, e3.y += n4.y, e3.vertexCount += 1, s2.push(n4.x), s2.push(n4.y);\n }\n }\n const l2 = Vo(s2, a2);\n for (let t5 = 0; t5 < l2.length; t5 += 3) this.indexArray.emplaceBack(o2 + l2[t5], o2 + l2[t5 + 2], o2 + l2[t5 + 1]);\n i3.primitiveLength += l2.length / 3, i3.vertexLength += n3;\n for (let t5 = 0; t5 < e3.vertexCount; t5++) {\n const t6 = Math.floor(e3.x / e3.vertexCount), r4 = Math.floor(e3.y / e3.vertexCount);\n this.centroidVertexArray.emplaceBack(t6, r4);\n }\n }\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, i2, n2);\n }\n }\n function Pl(t4, e2) {\n return t4.x === e2.x && (t4.x < 0 || t4.x > $a) || t4.y === e2.y && (t4.y < 0 || t4.y > $a);\n }\n function Cl(t4) {\n return t4.every((t5) => t5.x < 0) || t4.every((t5) => t5.x > $a) || t4.every((t5) => t5.y < 0) || t4.every((t5) => t5.y > $a);\n }\n let Bl;\n wi(\"FillExtrusionBucket\", zl, { omit: [\"layers\", \"features\"] });\n var Vl = { get paint() {\n return Bl = Bl || new rs({ \"fill-extrusion-opacity\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-opacity\"]), \"fill-extrusion-color\": new Wi(G[\"paint_fill-extrusion\"][\"fill-extrusion-color\"]), \"fill-extrusion-translate\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-translate\"]), \"fill-extrusion-translate-anchor\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-translate-anchor\"]), \"fill-extrusion-pattern\": new Qi(G[\"paint_fill-extrusion\"][\"fill-extrusion-pattern\"]), \"fill-extrusion-height\": new Wi(G[\"paint_fill-extrusion\"][\"fill-extrusion-height\"]), \"fill-extrusion-base\": new Wi(G[\"paint_fill-extrusion\"][\"fill-extrusion-base\"]), \"fill-extrusion-vertical-gradient\": new Ji(G[\"paint_fill-extrusion\"][\"fill-extrusion-vertical-gradient\"]) });\n } };\n class El extends is {\n constructor(t4) {\n super(t4, Vl);\n }\n createBucket(t4) {\n return new zl(t4);\n }\n queryRadius() {\n return eo(this.paint.get(\"fill-extrusion-translate\"));\n }\n is3D() {\n return true;\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, a2, o2, l2) {\n const u2 = ro(t4, this.paint.get(\"fill-extrusion-translate\"), this.paint.get(\"fill-extrusion-translate-anchor\"), a2.angle, o2), c2 = this.paint.get(\"fill-extrusion-height\").evaluate(e2, r2), h2 = this.paint.get(\"fill-extrusion-base\").evaluate(e2, r2), p2 = function(t5, e3, r3, n3) {\n const i3 = [];\n for (const r4 of t5) {\n const t6 = [r4.x, r4.y, 0, 1];\n po(t6, t6, e3), i3.push(new s(t6[0] / t6[3], t6[1] / t6[3]));\n }\n return i3;\n }(u2, l2), f2 = function(t5, e3, r3, n3) {\n const i3 = [], a3 = [], o3 = n3[8] * e3, l3 = n3[9] * e3, u3 = n3[10] * e3, c3 = n3[11] * e3, h3 = n3[8] * r3, p3 = n3[9] * r3, f3 = n3[10] * r3, d2 = n3[11] * r3;\n for (const e4 of t5) {\n const t6 = [], r4 = [];\n for (const i4 of e4) {\n const e5 = i4.x, a4 = i4.y, y2 = n3[0] * e5 + n3[4] * a4 + n3[12], m2 = n3[1] * e5 + n3[5] * a4 + n3[13], g2 = n3[2] * e5 + n3[6] * a4 + n3[14], x2 = n3[3] * e5 + n3[7] * a4 + n3[15], v2 = g2 + u3, b2 = x2 + c3, w2 = y2 + h3, _2 = m2 + p3, A3 = g2 + f3, S2 = x2 + d2, k2 = new s((y2 + o3) / b2, (m2 + l3) / b2);\n k2.z = v2 / b2, t6.push(k2);\n const M2 = new s(w2 / S2, _2 / S2);\n M2.z = A3 / S2, r4.push(M2);\n }\n i3.push(t6), a3.push(r4);\n }\n return [i3, a3];\n }(n2, h2, c2, l2);\n return function(t5, e3, r3) {\n let n3 = 1 / 0;\n Za(r3, e3) && (n3 = Tl(r3, e3[0]));\n for (let i3 = 0; i3 < e3.length; i3++) {\n const s2 = e3[i3], a3 = t5[i3];\n for (let t6 = 0; t6 < s2.length - 1; t6++) {\n const e4 = s2[t6], i4 = [e4, s2[t6 + 1], a3[t6 + 1], a3[t6], e4];\n qa(r3, i4) && (n3 = Math.min(n3, Tl(r3, i4)));\n }\n }\n return n3 !== 1 / 0 && n3;\n }(f2[0], f2[1], p2);\n }\n }\n function Fl(t4, e2) {\n return t4.x * e2.x + t4.y * e2.y;\n }\n function Tl(t4, e2) {\n if (1 === t4.length) {\n let r2 = 0;\n const n2 = e2[r2++];\n let i2;\n for (; !i2 || n2.equals(i2); ) if (i2 = e2[r2++], !i2) return 1 / 0;\n for (; r2 < e2.length; r2++) {\n const s2 = e2[r2], a2 = t4[0], o2 = i2.sub(n2), l2 = s2.sub(n2), u2 = a2.sub(n2), c2 = Fl(o2, o2), h2 = Fl(o2, l2), p2 = Fl(l2, l2), f2 = Fl(u2, o2), d2 = Fl(u2, l2), y2 = c2 * p2 - h2 * h2, m2 = (p2 * f2 - h2 * d2) / y2, g2 = (c2 * d2 - h2 * f2) / y2, x2 = n2.z * (1 - m2 - g2) + i2.z * m2 + s2.z * g2;\n if (isFinite(x2)) return x2;\n }\n return 1 / 0;\n }\n {\n let t5 = 1 / 0;\n for (const r2 of e2) t5 = Math.min(t5, r2.z);\n return t5;\n }\n }\n const $l = ls([{ name: \"a_pos_normal\", components: 2, type: \"Int16\" }, { name: \"a_data\", components: 4, type: \"Uint8\" }], 4), { members: Ll } = $l, Dl = ls([{ name: \"a_uv_x\", components: 1, type: \"Float32\" }, { name: \"a_split_index\", components: 1, type: \"Float32\" }]), { members: Ol } = Dl, jl = fl.VectorTileFeature.types, Rl = Math.cos(Math.PI / 180 * 37.5), Ul = Math.pow(2, 14) / 0.5;\n class ql {\n constructor(t4) {\n this.zoom = t4.zoom, this.overscaling = t4.overscaling, this.layers = t4.layers, this.layerIds = this.layers.map((t5) => t5.id), this.index = t4.index, this.hasPattern = false, this.patternFeatures = [], this.lineClipsArray = [], this.gradients = {}, this.layers.forEach((t5) => {\n this.gradients[t5.id] = {};\n }), this.layoutVertexArray = new Hs(), this.layoutVertexArray2 = new Ys(), this.indexArray = new na(), this.programConfigurations = new Ea(t4.layers, t4.zoom), this.segments = new oa(), this.maxLineLength = 0, this.stateDependentLayerIds = this.layers.filter((t5) => t5.isStateDependent()).map((t5) => t5.id);\n }\n populate(t4, e2, r2) {\n this.hasPattern = nl(\"line\", this.layers, e2);\n const n2 = this.layers[0].layout.get(\"line-sort-key\"), i2 = !n2.isConstant(), s2 = [];\n for (const { feature: e3, id: a2, index: o2, sourceLayerIndex: l2 } of t4) {\n const t5 = this.layers[0]._featureFilter.needGeometry, u2 = ja(e3, t5);\n if (!this.layers[0]._featureFilter.filter(new Ui(this.zoom), u2, r2)) continue;\n const c2 = i2 ? n2.evaluate(u2, {}, r2) : void 0, h2 = { id: a2, properties: e3.properties, type: e3.type, sourceLayerIndex: l2, index: o2, geometry: t5 ? u2.geometry : Oa(e3), patterns: {}, sortKey: c2 };\n s2.push(h2);\n }\n i2 && s2.sort((t5, e3) => t5.sortKey - e3.sortKey);\n for (const n3 of s2) {\n const { geometry: i3, index: s3, sourceLayerIndex: a2 } = n3;\n if (this.hasPattern) {\n const t5 = il(\"line\", this.layers, n3, this.zoom, e2);\n this.patternFeatures.push(t5);\n } else this.addFeature(n3, i3, s3, r2, {});\n e2.featureIndex.insert(t4[s3].feature, i3, s3, a2, this.index);\n }\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && this.programConfigurations.updatePaintArrays(t4, e2, this.stateDependentLayers, r2);\n }\n addFeatures(t4, e2, r2) {\n for (const t5 of this.patternFeatures) this.addFeature(t5, t5.geometry, t5.index, e2, r2);\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length;\n }\n uploadPending() {\n return !this.uploaded || this.programConfigurations.needsUpload;\n }\n upload(t4) {\n this.uploaded || (0 !== this.layoutVertexArray2.length && (this.layoutVertexBuffer2 = t4.createVertexBuffer(this.layoutVertexArray2, Ol)), this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, Ll), this.indexBuffer = t4.createIndexBuffer(this.indexArray)), this.programConfigurations.upload(t4), this.uploaded = true;\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy());\n }\n lineFeatureClips(t4) {\n if (t4.properties && Object.prototype.hasOwnProperty.call(t4.properties, \"mapbox_clip_start\") && Object.prototype.hasOwnProperty.call(t4.properties, \"mapbox_clip_end\")) return { start: +t4.properties.mapbox_clip_start, end: +t4.properties.mapbox_clip_end };\n }\n addFeature(t4, e2, r2, n2, i2) {\n const s2 = this.layers[0].layout, a2 = s2.get(\"line-join\").evaluate(t4, {}), o2 = s2.get(\"line-cap\"), l2 = s2.get(\"line-miter-limit\"), u2 = s2.get(\"line-round-limit\");\n this.lineClips = this.lineFeatureClips(t4);\n for (const r3 of e2) this.addLine(r3, t4, a2, o2, l2, u2);\n this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length, t4, r2, i2, n2);\n }\n addLine(t4, e2, r2, n2, i2, s2) {\n if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.lineClips) {\n this.lineClipsArray.push(this.lineClips);\n for (let e3 = 0; e3 < t4.length - 1; e3++) this.totalDistance += t4[e3].dist(t4[e3 + 1]);\n this.updateScaledDistance(), this.maxLineLength = Math.max(this.maxLineLength, this.totalDistance);\n }\n const a2 = \"Polygon\" === jl[e2.type];\n let o2 = t4.length;\n for (; o2 >= 2 && t4[o2 - 1].equals(t4[o2 - 2]); ) o2--;\n let l2 = 0;\n for (; l2 < o2 - 1 && t4[l2].equals(t4[l2 + 1]); ) l2++;\n if (o2 < (a2 ? 3 : 2)) return;\n \"bevel\" === r2 && (i2 = 1.05);\n const u2 = this.overscaling <= 16 ? 15 * $a / (512 * this.overscaling) : 0, c2 = this.segments.prepareSegment(10 * o2, this.layoutVertexArray, this.indexArray);\n let h2, p2, f2, d2, y2;\n this.e1 = this.e2 = -1, a2 && (h2 = t4[o2 - 2], y2 = t4[l2].sub(h2)._unit()._perp());\n for (let e3 = l2; e3 < o2; e3++) {\n if (f2 = e3 === o2 - 1 ? a2 ? t4[l2 + 1] : void 0 : t4[e3 + 1], f2 && t4[e3].equals(f2)) continue;\n y2 && (d2 = y2), h2 && (p2 = h2), h2 = t4[e3], y2 = f2 ? f2.sub(h2)._unit()._perp() : d2, d2 = d2 || y2;\n let m2 = d2.add(y2);\n 0 === m2.x && 0 === m2.y || m2._unit();\n const g2 = d2.x * y2.x + d2.y * y2.y, x2 = m2.x * y2.x + m2.y * y2.y, v2 = 0 !== x2 ? 1 / x2 : 1 / 0, b2 = 2 * Math.sqrt(2 - 2 * x2), w2 = x2 < Rl && p2 && f2, _2 = d2.x * y2.y - d2.y * y2.x > 0;\n if (w2 && e3 > l2) {\n const t5 = h2.dist(p2);\n if (t5 > 2 * u2) {\n const e4 = h2.sub(h2.sub(p2)._mult(u2 / t5)._round());\n this.updateDistance(p2, e4), this.addCurrentVertex(e4, d2, 0, 0, c2), p2 = e4;\n }\n }\n const A3 = p2 && f2;\n let S2 = A3 ? r2 : a2 ? \"butt\" : n2;\n if (A3 && \"round\" === S2 && (v2 < s2 ? S2 = \"miter\" : v2 <= 2 && (S2 = \"fakeround\")), \"miter\" === S2 && v2 > i2 && (S2 = \"bevel\"), \"bevel\" === S2 && (v2 > 2 && (S2 = \"flipbevel\"), v2 < i2 && (S2 = \"miter\")), p2 && this.updateDistance(p2, h2), \"miter\" === S2) m2._mult(v2), this.addCurrentVertex(h2, m2, 0, 0, c2);\n else if (\"flipbevel\" === S2) {\n if (v2 > 100) m2 = y2.mult(-1);\n else {\n const t5 = v2 * d2.add(y2).mag() / d2.sub(y2).mag();\n m2._perp()._mult(t5 * (_2 ? -1 : 1));\n }\n this.addCurrentVertex(h2, m2, 0, 0, c2), this.addCurrentVertex(h2, m2.mult(-1), 0, 0, c2);\n } else if (\"bevel\" === S2 || \"fakeround\" === S2) {\n const t5 = -Math.sqrt(v2 * v2 - 1), e4 = _2 ? t5 : 0, r3 = _2 ? 0 : t5;\n if (p2 && this.addCurrentVertex(h2, d2, e4, r3, c2), \"fakeround\" === S2) {\n const t6 = Math.round(180 * b2 / Math.PI / 20);\n for (let e5 = 1; e5 < t6; e5++) {\n let r4 = e5 / t6;\n if (0.5 !== r4) {\n const t7 = r4 - 0.5;\n r4 += r4 * t7 * (r4 - 1) * ((1.0904 + g2 * (g2 * (3.55645 - 1.43519 * g2) - 3.2452)) * t7 * t7 + (0.848013 + g2 * (0.215638 * g2 - 1.06021)));\n }\n const n3 = y2.sub(d2)._mult(r4)._add(d2)._unit()._mult(_2 ? -1 : 1);\n this.addHalfVertex(h2, n3.x, n3.y, false, _2, 0, c2);\n }\n }\n f2 && this.addCurrentVertex(h2, y2, -e4, -r3, c2);\n } else if (\"butt\" === S2) this.addCurrentVertex(h2, m2, 0, 0, c2);\n else if (\"square\" === S2) {\n const t5 = p2 ? 1 : -1;\n this.addCurrentVertex(h2, m2, t5, t5, c2);\n } else \"round\" === S2 && (p2 && (this.addCurrentVertex(h2, d2, 0, 0, c2), this.addCurrentVertex(h2, d2, 1, 1, c2, true)), f2 && (this.addCurrentVertex(h2, y2, -1, -1, c2, true), this.addCurrentVertex(h2, y2, 0, 0, c2)));\n if (w2 && e3 < o2 - 1) {\n const t5 = h2.dist(f2);\n if (t5 > 2 * u2) {\n const e4 = h2.add(f2.sub(h2)._mult(u2 / t5)._round());\n this.updateDistance(h2, e4), this.addCurrentVertex(e4, y2, 0, 0, c2), h2 = e4;\n }\n }\n }\n }\n addCurrentVertex(t4, e2, r2, n2, i2, s2 = false) {\n const a2 = e2.y * n2 - e2.x, o2 = -e2.y - e2.x * n2;\n this.addHalfVertex(t4, e2.x + e2.y * r2, e2.y - e2.x * r2, s2, false, r2, i2), this.addHalfVertex(t4, a2, o2, s2, true, -n2, i2), this.distance > Ul / 2 && 0 === this.totalDistance && (this.distance = 0, this.updateScaledDistance(), this.addCurrentVertex(t4, e2, r2, n2, i2, s2));\n }\n addHalfVertex({ x: t4, y: e2 }, r2, n2, i2, s2, a2, o2) {\n const l2 = 0.5 * (this.lineClips ? this.scaledDistance * (Ul - 1) : this.scaledDistance);\n this.layoutVertexArray.emplaceBack((t4 << 1) + (i2 ? 1 : 0), (e2 << 1) + (s2 ? 1 : 0), Math.round(63 * r2) + 128, Math.round(63 * n2) + 128, 1 + (0 === a2 ? 0 : a2 < 0 ? -1 : 1) | (63 & l2) << 2, l2 >> 6), this.lineClips && this.layoutVertexArray2.emplaceBack((this.scaledDistance - this.lineClips.start) / (this.lineClips.end - this.lineClips.start), this.lineClipsArray.length);\n const u2 = o2.vertexLength++;\n this.e1 >= 0 && this.e2 >= 0 && (this.indexArray.emplaceBack(this.e1, this.e2, u2), o2.primitiveLength++), s2 ? this.e2 = u2 : this.e1 = u2;\n }\n updateScaledDistance() {\n this.scaledDistance = this.lineClips ? this.lineClips.start + (this.lineClips.end - this.lineClips.start) * this.distance / this.totalDistance : this.distance;\n }\n updateDistance(t4, e2) {\n this.distance += t4.dist(e2), this.updateScaledDistance();\n }\n }\n let Nl, Zl;\n wi(\"LineBucket\", ql, { omit: [\"layers\", \"patternFeatures\"] });\n var Gl = { get paint() {\n return Zl = Zl || new rs({ \"line-opacity\": new Wi(G.paint_line[\"line-opacity\"]), \"line-color\": new Wi(G.paint_line[\"line-color\"]), \"line-translate\": new Ji(G.paint_line[\"line-translate\"]), \"line-translate-anchor\": new Ji(G.paint_line[\"line-translate-anchor\"]), \"line-width\": new Wi(G.paint_line[\"line-width\"]), \"line-gap-width\": new Wi(G.paint_line[\"line-gap-width\"]), \"line-offset\": new Wi(G.paint_line[\"line-offset\"]), \"line-blur\": new Wi(G.paint_line[\"line-blur\"]), \"line-dasharray\": new ts(G.paint_line[\"line-dasharray\"]), \"line-pattern\": new Qi(G.paint_line[\"line-pattern\"]), \"line-gradient\": new es(G.paint_line[\"line-gradient\"]) });\n }, get layout() {\n return Nl = Nl || new rs({ \"line-cap\": new Ji(G.layout_line[\"line-cap\"]), \"line-join\": new Wi(G.layout_line[\"line-join\"]), \"line-miter-limit\": new Ji(G.layout_line[\"line-miter-limit\"]), \"line-round-limit\": new Ji(G.layout_line[\"line-round-limit\"]), \"line-sort-key\": new Wi(G.layout_line[\"line-sort-key\"]) });\n } };\n class Kl extends Wi {\n possiblyEvaluate(t4, e2) {\n return e2 = new Ui(Math.floor(e2.zoom), { now: e2.now, fadeDuration: e2.fadeDuration, zoomHistory: e2.zoomHistory, transition: e2.transition }), super.possiblyEvaluate(t4, e2);\n }\n evaluate(t4, e2, r2, n2) {\n return e2 = g({}, e2, { zoom: Math.floor(e2.zoom) }), super.evaluate(t4, e2, r2, n2);\n }\n }\n let Xl;\n class Hl extends is {\n constructor(t4) {\n super(t4, Gl), this.gradientVersion = 0, Xl || (Xl = new Kl(Gl.paint.properties[\"line-width\"].specification), Xl.useIntegerZoom = true);\n }\n _handleSpecialPaintPropertyUpdate(t4) {\n if (\"line-gradient\" === t4) {\n const t5 = this.gradientExpression();\n this.stepInterpolant = !!function(t6) {\n return void 0 !== t6._styleExpression;\n }(t5) && t5._styleExpression.expression instanceof Ae, this.gradientVersion = (this.gradientVersion + 1) % Number.MAX_SAFE_INTEGER;\n }\n }\n gradientExpression() {\n return this._transitionablePaint._values[\"line-gradient\"].value.expression;\n }\n recalculate(t4, e2) {\n super.recalculate(t4, e2), this.paint._values[\"line-floorwidth\"] = Xl.possiblyEvaluate(this._transitioningPaint._values[\"line-width\"].value, t4);\n }\n createBucket(t4) {\n return new ql(t4);\n }\n queryRadius(t4) {\n const e2 = t4, r2 = Yl(to(\"line-width\", this, e2), to(\"line-gap-width\", this, e2)), n2 = to(\"line-offset\", this, e2);\n return r2 / 2 + Math.abs(n2) + eo(this.paint.get(\"line-translate\"));\n }\n queryIntersectsFeature(t4, e2, r2, n2, i2, a2, o2) {\n const l2 = ro(t4, this.paint.get(\"line-translate\"), this.paint.get(\"line-translate-anchor\"), a2.angle, o2), u2 = o2 / 2 * Yl(this.paint.get(\"line-width\").evaluate(e2, r2), this.paint.get(\"line-gap-width\").evaluate(e2, r2)), c2 = this.paint.get(\"line-offset\").evaluate(e2, r2);\n return c2 && (n2 = function(t5, e3) {\n const r3 = [];\n for (let n3 = 0; n3 < t5.length; n3++) {\n const i3 = t5[n3], a3 = [];\n for (let t6 = 0; t6 < i3.length; t6++) {\n const r4 = i3[t6 - 1], n4 = i3[t6], o3 = i3[t6 + 1], l3 = 0 === t6 ? new s(0, 0) : n4.sub(r4)._unit()._perp(), u3 = t6 === i3.length - 1 ? new s(0, 0) : o3.sub(n4)._unit()._perp(), c3 = l3._add(u3)._unit(), h2 = c3.x * u3.x + c3.y * u3.y;\n 0 !== h2 && c3._mult(1 / h2), a3.push(c3._mult(e3)._add(n4));\n }\n r3.push(a3);\n }\n return r3;\n }(n2, c2 * o2)), function(t5, e3, r3) {\n for (let n3 = 0; n3 < e3.length; n3++) {\n const i3 = e3[n3];\n if (t5.length >= 3) {\n for (let e4 = 0; e4 < i3.length; e4++) if (Wa(t5, i3[e4])) return true;\n }\n if (Ga(t5, i3, r3)) return true;\n }\n return false;\n }(l2, n2, u2);\n }\n isTileClipped() {\n return true;\n }\n }\n function Yl(t4, e2) {\n return e2 > 0 ? e2 + 2 * t4 : t4;\n }\n const Jl = ls([{ name: \"a_pos_offset\", components: 4, type: \"Int16\" }, { name: \"a_data\", components: 4, type: \"Uint16\" }, { name: \"a_pixeloffset\", components: 4, type: \"Int16\" }], 4), Wl = ls([{ name: \"a_projected_pos\", components: 3, type: \"Float32\" }], 4);\n ls([{ name: \"a_fade_opacity\", components: 1, type: \"Uint32\" }], 4);\n const Ql = ls([{ name: \"a_placed\", components: 2, type: \"Uint8\" }, { name: \"a_shift\", components: 2, type: \"Float32\" }, { name: \"a_box_real\", components: 2, type: \"Int16\" }]);\n ls([{ type: \"Int16\", name: \"anchorPointX\" }, { type: \"Int16\", name: \"anchorPointY\" }, { type: \"Int16\", name: \"x1\" }, { type: \"Int16\", name: \"y1\" }, { type: \"Int16\", name: \"x2\" }, { type: \"Int16\", name: \"y2\" }, { type: \"Uint32\", name: \"featureIndex\" }, { type: \"Uint16\", name: \"sourceLayerIndex\" }, { type: \"Uint16\", name: \"bucketIndex\" }]);\n const tu = ls([{ name: \"a_pos\", components: 2, type: \"Int16\" }, { name: \"a_anchor_pos\", components: 2, type: \"Int16\" }, { name: \"a_extrude\", components: 2, type: \"Int16\" }], 4), eu = ls([{ name: \"a_pos\", components: 2, type: \"Float32\" }, { name: \"a_radius\", components: 1, type: \"Float32\" }, { name: \"a_flags\", components: 2, type: \"Int16\" }], 4);\n function ru(t4, e2, r2) {\n return t4.sections.forEach((t5) => {\n t5.text = function(t6, e3, r3) {\n const n2 = e3.layout.get(\"text-transform\").evaluate(r3, {});\n return \"uppercase\" === n2 ? t6 = t6.toLocaleUpperCase() : \"lowercase\" === n2 && (t6 = t6.toLocaleLowerCase()), Ri.applyArabicShaping && (t6 = Ri.applyArabicShaping(t6)), t6;\n }(t5.text, e2, r2);\n }), t4;\n }\n ls([{ name: \"triangle\", components: 3, type: \"Uint16\" }]), ls([{ type: \"Int16\", name: \"anchorX\" }, { type: \"Int16\", name: \"anchorY\" }, { type: \"Uint16\", name: \"glyphStartIndex\" }, { type: \"Uint16\", name: \"numGlyphs\" }, { type: \"Uint32\", name: \"vertexStartIndex\" }, { type: \"Uint32\", name: \"lineStartIndex\" }, { type: \"Uint32\", name: \"lineLength\" }, { type: \"Uint16\", name: \"segment\" }, { type: \"Uint16\", name: \"lowerSize\" }, { type: \"Uint16\", name: \"upperSize\" }, { type: \"Float32\", name: \"lineOffsetX\" }, { type: \"Float32\", name: \"lineOffsetY\" }, { type: \"Uint8\", name: \"writingMode\" }, { type: \"Uint8\", name: \"placedOrientation\" }, { type: \"Uint8\", name: \"hidden\" }, { type: \"Uint32\", name: \"crossTileID\" }, { type: \"Int16\", name: \"associatedIconIndex\" }]), ls([{ type: \"Int16\", name: \"anchorX\" }, { type: \"Int16\", name: \"anchorY\" }, { type: \"Int16\", name: \"rightJustifiedTextSymbolIndex\" }, { type: \"Int16\", name: \"centerJustifiedTextSymbolIndex\" }, { type: \"Int16\", name: \"leftJustifiedTextSymbolIndex\" }, { type: \"Int16\", name: \"verticalPlacedTextSymbolIndex\" }, { type: \"Int16\", name: \"placedIconSymbolIndex\" }, { type: \"Int16\", name: \"verticalPlacedIconSymbolIndex\" }, { type: \"Uint16\", name: \"key\" }, { type: \"Uint16\", name: \"textBoxStartIndex\" }, { type: \"Uint16\", name: \"textBoxEndIndex\" }, { type: \"Uint16\", name: \"verticalTextBoxStartIndex\" }, { type: \"Uint16\", name: \"verticalTextBoxEndIndex\" }, { type: \"Uint16\", name: \"iconBoxStartIndex\" }, { type: \"Uint16\", name: \"iconBoxEndIndex\" }, { type: \"Uint16\", name: \"verticalIconBoxStartIndex\" }, { type: \"Uint16\", name: \"verticalIconBoxEndIndex\" }, { type: \"Uint16\", name: \"featureIndex\" }, { type: \"Uint16\", name: \"numHorizontalGlyphVertices\" }, { type: \"Uint16\", name: \"numVerticalGlyphVertices\" }, { type: \"Uint16\", name: \"numIconVertices\" }, { type: \"Uint16\", name: \"numVerticalIconVertices\" }, { type: \"Uint16\", name: \"useRuntimeCollisionCircles\" }, { type: \"Uint32\", name: \"crossTileID\" }, { type: \"Float32\", name: \"textBoxScale\" }, { type: \"Float32\", name: \"collisionCircleDiameter\" }, { type: \"Uint16\", name: \"textAnchorOffsetStartIndex\" }, { type: \"Uint16\", name: \"textAnchorOffsetEndIndex\" }]), ls([{ type: \"Float32\", name: \"offsetX\" }]), ls([{ type: \"Int16\", name: \"x\" }, { type: \"Int16\", name: \"y\" }, { type: \"Int16\", name: \"tileUnitDistanceFromAnchor\" }]), ls([{ type: \"Uint16\", name: \"textAnchor\" }, { type: \"Float32\", components: 2, name: \"textOffset\" }]);\n const nu = { \"!\": \"\\uFE15\", \"#\": \"\\uFF03\", $: \"\\uFF04\", \"%\": \"\\uFF05\", \"&\": \"\\uFF06\", \"(\": \"\\uFE35\", \")\": \"\\uFE36\", \"*\": \"\\uFF0A\", \"+\": \"\\uFF0B\", \",\": \"\\uFE10\", \"-\": \"\\uFE32\", \".\": \"\\u30FB\", \"/\": \"\\uFF0F\", \":\": \"\\uFE13\", \";\": \"\\uFE14\", \"<\": \"\\uFE3F\", \"=\": \"\\uFF1D\", \">\": \"\\uFE40\", \"?\": \"\\uFE16\", \"@\": \"\\uFF20\", \"[\": \"\\uFE47\", \"\\\\\": \"\\uFF3C\", \"]\": \"\\uFE48\", \"^\": \"\\uFF3E\", _: \"\\uFE33\", \"`\": \"\\uFF40\", \"{\": \"\\uFE37\", \"|\": \"\\u2015\", \"}\": \"\\uFE38\", \"~\": \"\\uFF5E\", \"\\xA2\": \"\\uFFE0\", \"\\xA3\": \"\\uFFE1\", \"\\xA5\": \"\\uFFE5\", \"\\xA6\": \"\\uFFE4\", \"\\xAC\": \"\\uFFE2\", \"\\xAF\": \"\\uFFE3\", \"\\u2013\": \"\\uFE32\", \"\\u2014\": \"\\uFE31\", \"\\u2018\": \"\\uFE43\", \"\\u2019\": \"\\uFE44\", \"\\u201C\": \"\\uFE41\", \"\\u201D\": \"\\uFE42\", \"\\u2026\": \"\\uFE19\", \"\\u2027\": \"\\u30FB\", \"\\u20A9\": \"\\uFFE6\", \"\\u3001\": \"\\uFE11\", \"\\u3002\": \"\\uFE12\", \"\\u3008\": \"\\uFE3F\", \"\\u3009\": \"\\uFE40\", \"\\u300A\": \"\\uFE3D\", \"\\u300B\": \"\\uFE3E\", \"\\u300C\": \"\\uFE41\", \"\\u300D\": \"\\uFE42\", \"\\u300E\": \"\\uFE43\", \"\\u300F\": \"\\uFE44\", \"\\u3010\": \"\\uFE3B\", \"\\u3011\": \"\\uFE3C\", \"\\u3014\": \"\\uFE39\", \"\\u3015\": \"\\uFE3A\", \"\\u3016\": \"\\uFE17\", \"\\u3017\": \"\\uFE18\", \"\\uFF01\": \"\\uFE15\", \"\\uFF08\": \"\\uFE35\", \"\\uFF09\": \"\\uFE36\", \"\\uFF0C\": \"\\uFE10\", \"\\uFF0D\": \"\\uFE32\", \"\\uFF0E\": \"\\u30FB\", \"\\uFF1A\": \"\\uFE13\", \"\\uFF1B\": \"\\uFE14\", \"\\uFF1C\": \"\\uFE3F\", \"\\uFF1E\": \"\\uFE40\", \"\\uFF1F\": \"\\uFE16\", \"\\uFF3B\": \"\\uFE47\", \"\\uFF3D\": \"\\uFE48\", \"\\uFF3F\": \"\\uFE33\", \"\\uFF5B\": \"\\uFE37\", \"\\uFF5C\": \"\\u2015\", \"\\uFF5D\": \"\\uFE38\", \"\\uFF5F\": \"\\uFE35\", \"\\uFF60\": \"\\uFE36\", \"\\uFF61\": \"\\uFE12\", \"\\uFF62\": \"\\uFE41\", \"\\uFF63\": \"\\uFE42\" };\n var iu = 24, su = lu, au = function(t4, e2, r2, n2, i2) {\n var s2, a2, o2 = 8 * i2 - n2 - 1, l2 = (1 << o2) - 1, u2 = l2 >> 1, c2 = -7, h2 = r2 ? i2 - 1 : 0, p2 = r2 ? -1 : 1, f2 = t4[e2 + h2];\n for (h2 += p2, s2 = f2 & (1 << -c2) - 1, f2 >>= -c2, c2 += o2; c2 > 0; s2 = 256 * s2 + t4[e2 + h2], h2 += p2, c2 -= 8) ;\n for (a2 = s2 & (1 << -c2) - 1, s2 >>= -c2, c2 += n2; c2 > 0; a2 = 256 * a2 + t4[e2 + h2], h2 += p2, c2 -= 8) ;\n if (0 === s2) s2 = 1 - u2;\n else {\n if (s2 === l2) return a2 ? NaN : 1 / 0 * (f2 ? -1 : 1);\n a2 += Math.pow(2, n2), s2 -= u2;\n }\n return (f2 ? -1 : 1) * a2 * Math.pow(2, s2 - n2);\n }, ou = function(t4, e2, r2, n2, i2, s2) {\n var a2, o2, l2, u2 = 8 * s2 - i2 - 1, c2 = (1 << u2) - 1, h2 = c2 >> 1, p2 = 23 === i2 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, f2 = n2 ? 0 : s2 - 1, d2 = n2 ? 1 : -1, y2 = e2 < 0 || 0 === e2 && 1 / e2 < 0 ? 1 : 0;\n for (e2 = Math.abs(e2), isNaN(e2) || e2 === 1 / 0 ? (o2 = isNaN(e2) ? 1 : 0, a2 = c2) : (a2 = Math.floor(Math.log(e2) / Math.LN2), e2 * (l2 = Math.pow(2, -a2)) < 1 && (a2--, l2 *= 2), (e2 += a2 + h2 >= 1 ? p2 / l2 : p2 * Math.pow(2, 1 - h2)) * l2 >= 2 && (a2++, l2 /= 2), a2 + h2 >= c2 ? (o2 = 0, a2 = c2) : a2 + h2 >= 1 ? (o2 = (e2 * l2 - 1) * Math.pow(2, i2), a2 += h2) : (o2 = e2 * Math.pow(2, h2 - 1) * Math.pow(2, i2), a2 = 0)); i2 >= 8; t4[r2 + f2] = 255 & o2, f2 += d2, o2 /= 256, i2 -= 8) ;\n for (a2 = a2 << i2 | o2, u2 += i2; u2 > 0; t4[r2 + f2] = 255 & a2, f2 += d2, a2 /= 256, u2 -= 8) ;\n t4[r2 + f2 - d2] |= 128 * y2;\n };\n function lu(t4) {\n this.buf = ArrayBuffer.isView && ArrayBuffer.isView(t4) ? t4 : new Uint8Array(t4 || 0), this.pos = 0, this.type = 0, this.length = this.buf.length;\n }\n lu.Varint = 0, lu.Fixed64 = 1, lu.Bytes = 2, lu.Fixed32 = 5;\n var uu = 4294967296, cu = 1 / uu, hu = \"undefined\" == typeof TextDecoder ? null : new TextDecoder(\"utf-8\");\n function pu(t4) {\n return t4.type === lu.Bytes ? t4.readVarint() + t4.pos : t4.pos + 1;\n }\n function fu(t4, e2, r2) {\n return r2 ? 4294967296 * e2 + (t4 >>> 0) : 4294967296 * (e2 >>> 0) + (t4 >>> 0);\n }\n function du(t4, e2, r2) {\n var n2 = e2 <= 16383 ? 1 : e2 <= 2097151 ? 2 : e2 <= 268435455 ? 3 : Math.floor(Math.log(e2) / (7 * Math.LN2));\n r2.realloc(n2);\n for (var i2 = r2.pos - 1; i2 >= t4; i2--) r2.buf[i2 + n2] = r2.buf[i2];\n }\n function yu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeVarint(t4[r2]);\n }\n function mu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeSVarint(t4[r2]);\n }\n function gu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeFloat(t4[r2]);\n }\n function xu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeDouble(t4[r2]);\n }\n function vu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeBoolean(t4[r2]);\n }\n function bu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeFixed32(t4[r2]);\n }\n function wu(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeSFixed32(t4[r2]);\n }\n function _u(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeFixed64(t4[r2]);\n }\n function Au(t4, e2) {\n for (var r2 = 0; r2 < t4.length; r2++) e2.writeSFixed64(t4[r2]);\n }\n function Su(t4, e2) {\n return (t4[e2] | t4[e2 + 1] << 8 | t4[e2 + 2] << 16) + 16777216 * t4[e2 + 3];\n }\n function ku(t4, e2, r2) {\n t4[r2] = e2, t4[r2 + 1] = e2 >>> 8, t4[r2 + 2] = e2 >>> 16, t4[r2 + 3] = e2 >>> 24;\n }\n function Mu(t4, e2) {\n return (t4[e2] | t4[e2 + 1] << 8 | t4[e2 + 2] << 16) + (t4[e2 + 3] << 24);\n }\n lu.prototype = { destroy: function() {\n this.buf = null;\n }, readFields: function(t4, e2, r2) {\n for (r2 = r2 || this.length; this.pos < r2; ) {\n var n2 = this.readVarint(), i2 = n2 >> 3, s2 = this.pos;\n this.type = 7 & n2, t4(i2, e2, this), this.pos === s2 && this.skip(n2);\n }\n return e2;\n }, readMessage: function(t4, e2) {\n return this.readFields(t4, e2, this.readVarint() + this.pos);\n }, readFixed32: function() {\n var t4 = Su(this.buf, this.pos);\n return this.pos += 4, t4;\n }, readSFixed32: function() {\n var t4 = Mu(this.buf, this.pos);\n return this.pos += 4, t4;\n }, readFixed64: function() {\n var t4 = Su(this.buf, this.pos) + Su(this.buf, this.pos + 4) * uu;\n return this.pos += 8, t4;\n }, readSFixed64: function() {\n var t4 = Su(this.buf, this.pos) + Mu(this.buf, this.pos + 4) * uu;\n return this.pos += 8, t4;\n }, readFloat: function() {\n var t4 = au(this.buf, this.pos, true, 23, 4);\n return this.pos += 4, t4;\n }, readDouble: function() {\n var t4 = au(this.buf, this.pos, true, 52, 8);\n return this.pos += 8, t4;\n }, readVarint: function(t4) {\n var e2, r2, n2 = this.buf;\n return e2 = 127 & (r2 = n2[this.pos++]), r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 7, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 14, r2 < 128 ? e2 : (e2 |= (127 & (r2 = n2[this.pos++])) << 21, r2 < 128 ? e2 : function(t5, e3, r3) {\n var n3, i2, s2 = r3.buf;\n if (n3 = (112 & (i2 = s2[r3.pos++])) >> 4, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 3, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 10, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 17, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (127 & (i2 = s2[r3.pos++])) << 24, i2 < 128) return fu(t5, n3, e3);\n if (n3 |= (1 & (i2 = s2[r3.pos++])) << 31, i2 < 128) return fu(t5, n3, e3);\n throw new Error(\"Expected varint not more than 10 bytes\");\n }(e2 |= (15 & (r2 = n2[this.pos])) << 28, t4, this))));\n }, readVarint64: function() {\n return this.readVarint(true);\n }, readSVarint: function() {\n var t4 = this.readVarint();\n return t4 % 2 == 1 ? (t4 + 1) / -2 : t4 / 2;\n }, readBoolean: function() {\n return Boolean(this.readVarint());\n }, readString: function() {\n var t4 = this.readVarint() + this.pos, e2 = this.pos;\n return this.pos = t4, t4 - e2 >= 12 && hu ? function(t5, e3, r2) {\n return hu.decode(t5.subarray(e3, r2));\n }(this.buf, e2, t4) : function(t5, e3, r2) {\n for (var n2 = \"\", i2 = e3; i2 < r2; ) {\n var s2, a2, o2, l2 = t5[i2], u2 = null, c2 = l2 > 239 ? 4 : l2 > 223 ? 3 : l2 > 191 ? 2 : 1;\n if (i2 + c2 > r2) break;\n 1 === c2 ? l2 < 128 && (u2 = l2) : 2 === c2 ? 128 == (192 & (s2 = t5[i2 + 1])) && (u2 = (31 & l2) << 6 | 63 & s2) <= 127 && (u2 = null) : 3 === c2 ? (a2 = t5[i2 + 2], 128 == (192 & (s2 = t5[i2 + 1])) && 128 == (192 & a2) && ((u2 = (15 & l2) << 12 | (63 & s2) << 6 | 63 & a2) <= 2047 || u2 >= 55296 && u2 <= 57343) && (u2 = null)) : 4 === c2 && (a2 = t5[i2 + 2], o2 = t5[i2 + 3], 128 == (192 & (s2 = t5[i2 + 1])) && 128 == (192 & a2) && 128 == (192 & o2) && ((u2 = (15 & l2) << 18 | (63 & s2) << 12 | (63 & a2) << 6 | 63 & o2) <= 65535 || u2 >= 1114112) && (u2 = null)), null === u2 ? (u2 = 65533, c2 = 1) : u2 > 65535 && (u2 -= 65536, n2 += String.fromCharCode(u2 >>> 10 & 1023 | 55296), u2 = 56320 | 1023 & u2), n2 += String.fromCharCode(u2), i2 += c2;\n }\n return n2;\n }(this.buf, e2, t4);\n }, readBytes: function() {\n var t4 = this.readVarint() + this.pos, e2 = this.buf.subarray(this.pos, t4);\n return this.pos = t4, e2;\n }, readPackedVarint: function(t4, e2) {\n if (this.type !== lu.Bytes) return t4.push(this.readVarint(e2));\n var r2 = pu(this);\n for (t4 = t4 || []; this.pos < r2; ) t4.push(this.readVarint(e2));\n return t4;\n }, readPackedSVarint: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readSVarint());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readSVarint());\n return t4;\n }, readPackedBoolean: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readBoolean());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readBoolean());\n return t4;\n }, readPackedFloat: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readFloat());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readFloat());\n return t4;\n }, readPackedDouble: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readDouble());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readDouble());\n return t4;\n }, readPackedFixed32: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readFixed32());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readFixed32());\n return t4;\n }, readPackedSFixed32: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readSFixed32());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readSFixed32());\n return t4;\n }, readPackedFixed64: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readFixed64());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readFixed64());\n return t4;\n }, readPackedSFixed64: function(t4) {\n if (this.type !== lu.Bytes) return t4.push(this.readSFixed64());\n var e2 = pu(this);\n for (t4 = t4 || []; this.pos < e2; ) t4.push(this.readSFixed64());\n return t4;\n }, skip: function(t4) {\n var e2 = 7 & t4;\n if (e2 === lu.Varint) for (; this.buf[this.pos++] > 127; ) ;\n else if (e2 === lu.Bytes) this.pos = this.readVarint() + this.pos;\n else if (e2 === lu.Fixed32) this.pos += 4;\n else {\n if (e2 !== lu.Fixed64) throw new Error(\"Unimplemented type: \" + e2);\n this.pos += 8;\n }\n }, writeTag: function(t4, e2) {\n this.writeVarint(t4 << 3 | e2);\n }, realloc: function(t4) {\n for (var e2 = this.length || 16; e2 < this.pos + t4; ) e2 *= 2;\n if (e2 !== this.length) {\n var r2 = new Uint8Array(e2);\n r2.set(this.buf), this.buf = r2, this.length = e2;\n }\n }, finish: function() {\n return this.length = this.pos, this.pos = 0, this.buf.subarray(0, this.length);\n }, writeFixed32: function(t4) {\n this.realloc(4), ku(this.buf, t4, this.pos), this.pos += 4;\n }, writeSFixed32: function(t4) {\n this.realloc(4), ku(this.buf, t4, this.pos), this.pos += 4;\n }, writeFixed64: function(t4) {\n this.realloc(8), ku(this.buf, -1 & t4, this.pos), ku(this.buf, Math.floor(t4 * cu), this.pos + 4), this.pos += 8;\n }, writeSFixed64: function(t4) {\n this.realloc(8), ku(this.buf, -1 & t4, this.pos), ku(this.buf, Math.floor(t4 * cu), this.pos + 4), this.pos += 8;\n }, writeVarint: function(t4) {\n (t4 = +t4 || 0) > 268435455 || t4 < 0 ? function(t5, e2) {\n var r2, n2;\n if (t5 >= 0 ? (r2 = t5 % 4294967296 | 0, n2 = t5 / 4294967296 | 0) : (n2 = ~(-t5 / 4294967296), 4294967295 ^ (r2 = ~(-t5 % 4294967296)) ? r2 = r2 + 1 | 0 : (r2 = 0, n2 = n2 + 1 | 0)), t5 >= 18446744073709552e3 || t5 < -18446744073709552e3) throw new Error(\"Given varint doesn't fit into 10 bytes\");\n e2.realloc(10), function(t6, e3, r3) {\n r3.buf[r3.pos++] = 127 & t6 | 128, t6 >>>= 7, r3.buf[r3.pos++] = 127 & t6 | 128, t6 >>>= 7, r3.buf[r3.pos++] = 127 & t6 | 128, t6 >>>= 7, r3.buf[r3.pos++] = 127 & t6 | 128, r3.buf[r3.pos] = 127 & (t6 >>>= 7);\n }(r2, 0, e2), function(t6, e3) {\n var r3 = (7 & t6) << 4;\n e3.buf[e3.pos++] |= r3 | ((t6 >>>= 3) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6 | ((t6 >>>= 7) ? 128 : 0), t6 && (e3.buf[e3.pos++] = 127 & t6)))));\n }(n2, e2);\n }(t4, this) : (this.realloc(4), this.buf[this.pos++] = 127 & t4 | (t4 > 127 ? 128 : 0), t4 <= 127 || (this.buf[this.pos++] = 127 & (t4 >>>= 7) | (t4 > 127 ? 128 : 0), t4 <= 127 || (this.buf[this.pos++] = 127 & (t4 >>>= 7) | (t4 > 127 ? 128 : 0), t4 <= 127 || (this.buf[this.pos++] = t4 >>> 7 & 127))));\n }, writeSVarint: function(t4) {\n this.writeVarint(t4 < 0 ? 2 * -t4 - 1 : 2 * t4);\n }, writeBoolean: function(t4) {\n this.writeVarint(Boolean(t4));\n }, writeString: function(t4) {\n t4 = String(t4), this.realloc(4 * t4.length), this.pos++;\n var e2 = this.pos;\n this.pos = function(t5, e3, r3) {\n for (var n2, i2, s2 = 0; s2 < e3.length; s2++) {\n if ((n2 = e3.charCodeAt(s2)) > 55295 && n2 < 57344) {\n if (!i2) {\n n2 > 56319 || s2 + 1 === e3.length ? (t5[r3++] = 239, t5[r3++] = 191, t5[r3++] = 189) : i2 = n2;\n continue;\n }\n if (n2 < 56320) {\n t5[r3++] = 239, t5[r3++] = 191, t5[r3++] = 189, i2 = n2;\n continue;\n }\n n2 = i2 - 55296 << 10 | n2 - 56320 | 65536, i2 = null;\n } else i2 && (t5[r3++] = 239, t5[r3++] = 191, t5[r3++] = 189, i2 = null);\n n2 < 128 ? t5[r3++] = n2 : (n2 < 2048 ? t5[r3++] = n2 >> 6 | 192 : (n2 < 65536 ? t5[r3++] = n2 >> 12 | 224 : (t5[r3++] = n2 >> 18 | 240, t5[r3++] = n2 >> 12 & 63 | 128), t5[r3++] = n2 >> 6 & 63 | 128), t5[r3++] = 63 & n2 | 128);\n }\n return r3;\n }(this.buf, t4, this.pos);\n var r2 = this.pos - e2;\n r2 >= 128 && du(e2, r2, this), this.pos = e2 - 1, this.writeVarint(r2), this.pos += r2;\n }, writeFloat: function(t4) {\n this.realloc(4), ou(this.buf, t4, this.pos, true, 23, 4), this.pos += 4;\n }, writeDouble: function(t4) {\n this.realloc(8), ou(this.buf, t4, this.pos, true, 52, 8), this.pos += 8;\n }, writeBytes: function(t4) {\n var e2 = t4.length;\n this.writeVarint(e2), this.realloc(e2);\n for (var r2 = 0; r2 < e2; r2++) this.buf[this.pos++] = t4[r2];\n }, writeRawMessage: function(t4, e2) {\n this.pos++;\n var r2 = this.pos;\n t4(e2, this);\n var n2 = this.pos - r2;\n n2 >= 128 && du(r2, n2, this), this.pos = r2 - 1, this.writeVarint(n2), this.pos += n2;\n }, writeMessage: function(t4, e2, r2) {\n this.writeTag(t4, lu.Bytes), this.writeRawMessage(e2, r2);\n }, writePackedVarint: function(t4, e2) {\n e2.length && this.writeMessage(t4, yu, e2);\n }, writePackedSVarint: function(t4, e2) {\n e2.length && this.writeMessage(t4, mu, e2);\n }, writePackedBoolean: function(t4, e2) {\n e2.length && this.writeMessage(t4, vu, e2);\n }, writePackedFloat: function(t4, e2) {\n e2.length && this.writeMessage(t4, gu, e2);\n }, writePackedDouble: function(t4, e2) {\n e2.length && this.writeMessage(t4, xu, e2);\n }, writePackedFixed32: function(t4, e2) {\n e2.length && this.writeMessage(t4, bu, e2);\n }, writePackedSFixed32: function(t4, e2) {\n e2.length && this.writeMessage(t4, wu, e2);\n }, writePackedFixed64: function(t4, e2) {\n e2.length && this.writeMessage(t4, _u, e2);\n }, writePackedSFixed64: function(t4, e2) {\n e2.length && this.writeMessage(t4, Au, e2);\n }, writeBytesField: function(t4, e2) {\n this.writeTag(t4, lu.Bytes), this.writeBytes(e2);\n }, writeFixed32Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed32), this.writeFixed32(e2);\n }, writeSFixed32Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed32), this.writeSFixed32(e2);\n }, writeFixed64Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed64), this.writeFixed64(e2);\n }, writeSFixed64Field: function(t4, e2) {\n this.writeTag(t4, lu.Fixed64), this.writeSFixed64(e2);\n }, writeVarintField: function(t4, e2) {\n this.writeTag(t4, lu.Varint), this.writeVarint(e2);\n }, writeSVarintField: function(t4, e2) {\n this.writeTag(t4, lu.Varint), this.writeSVarint(e2);\n }, writeStringField: function(t4, e2) {\n this.writeTag(t4, lu.Bytes), this.writeString(e2);\n }, writeFloatField: function(t4, e2) {\n this.writeTag(t4, lu.Fixed32), this.writeFloat(e2);\n }, writeDoubleField: function(t4, e2) {\n this.writeTag(t4, lu.Fixed64), this.writeDouble(e2);\n }, writeBooleanField: function(t4, e2) {\n this.writeVarintField(t4, Boolean(e2));\n } };\n var Iu = r(su);\n const zu = 3;\n function Pu(t4, e2, r2) {\n 1 === t4 && r2.readMessage(Cu, e2);\n }\n function Cu(t4, e2, r2) {\n if (3 === t4) {\n const { id: t5, bitmap: n2, width: i2, height: s2, left: a2, top: o2, advance: l2 } = r2.readMessage(Bu, {});\n e2.push({ id: t5, bitmap: new _o({ width: i2 + 2 * zu, height: s2 + 2 * zu }, n2), metrics: { width: i2, height: s2, left: a2, top: o2, advance: l2 } });\n }\n }\n function Bu(t4, e2, r2) {\n 1 === t4 ? e2.id = r2.readVarint() : 2 === t4 ? e2.bitmap = r2.readBytes() : 3 === t4 ? e2.width = r2.readVarint() : 4 === t4 ? e2.height = r2.readVarint() : 5 === t4 ? e2.left = r2.readSVarint() : 6 === t4 ? e2.top = r2.readSVarint() : 7 === t4 && (e2.advance = r2.readVarint());\n }\n const Vu = zu;\n function Eu(t4) {\n let e2 = 0, r2 = 0;\n for (const n3 of t4) e2 += n3.w * n3.h, r2 = Math.max(r2, n3.w);\n t4.sort((t5, e3) => e3.h - t5.h);\n const n2 = [{ x: 0, y: 0, w: Math.max(Math.ceil(Math.sqrt(e2 / 0.95)), r2), h: 1 / 0 }];\n let i2 = 0, s2 = 0;\n for (const e3 of t4) for (let t5 = n2.length - 1; t5 >= 0; t5--) {\n const r3 = n2[t5];\n if (!(e3.w > r3.w || e3.h > r3.h)) {\n if (e3.x = r3.x, e3.y = r3.y, s2 = Math.max(s2, e3.y + e3.h), i2 = Math.max(i2, e3.x + e3.w), e3.w === r3.w && e3.h === r3.h) {\n const e4 = n2.pop();\n t5 < n2.length && (n2[t5] = e4);\n } else e3.h === r3.h ? (r3.x += e3.w, r3.w -= e3.w) : e3.w === r3.w ? (r3.y += e3.h, r3.h -= e3.h) : (n2.push({ x: r3.x + e3.w, y: r3.y, w: r3.w - e3.w, h: e3.h }), r3.y += e3.h, r3.h -= e3.h);\n break;\n }\n }\n return { w: i2, h: s2, fill: e2 / (i2 * s2) || 0 };\n }\n const Fu = 1;\n class Tu {\n constructor(t4, { pixelRatio: e2, version: r2, stretchX: n2, stretchY: i2, content: s2, textFitWidth: a2, textFitHeight: o2 }) {\n this.paddedRect = t4, this.pixelRatio = e2, this.stretchX = n2, this.stretchY = i2, this.content = s2, this.version = r2, this.textFitWidth = a2, this.textFitHeight = o2;\n }\n get tl() {\n return [this.paddedRect.x + Fu, this.paddedRect.y + Fu];\n }\n get br() {\n return [this.paddedRect.x + this.paddedRect.w - Fu, this.paddedRect.y + this.paddedRect.h - Fu];\n }\n get tlbr() {\n return this.tl.concat(this.br);\n }\n get displaySize() {\n return [(this.paddedRect.w - 2 * Fu) / this.pixelRatio, (this.paddedRect.h - 2 * Fu) / this.pixelRatio];\n }\n }\n class $u {\n constructor(t4, e2) {\n const r2 = {}, n2 = {};\n this.haveRenderCallbacks = [];\n const i2 = [];\n this.addImages(t4, r2, i2), this.addImages(e2, n2, i2);\n const { w: s2, h: a2 } = Eu(i2), o2 = new Ao({ width: s2 || 1, height: a2 || 1 });\n for (const e3 in t4) {\n const n3 = t4[e3], i3 = r2[e3].paddedRect;\n Ao.copy(n3.data, o2, { x: 0, y: 0 }, { x: i3.x + Fu, y: i3.y + Fu }, n3.data);\n }\n for (const t5 in e2) {\n const r3 = e2[t5], i3 = n2[t5].paddedRect, s3 = i3.x + Fu, a3 = i3.y + Fu, l2 = r3.data.width, u2 = r3.data.height;\n Ao.copy(r3.data, o2, { x: 0, y: 0 }, { x: s3, y: a3 }, r3.data), Ao.copy(r3.data, o2, { x: 0, y: u2 - 1 }, { x: s3, y: a3 - 1 }, { width: l2, height: 1 }), Ao.copy(r3.data, o2, { x: 0, y: 0 }, { x: s3, y: a3 + u2 }, { width: l2, height: 1 }), Ao.copy(r3.data, o2, { x: l2 - 1, y: 0 }, { x: s3 - 1, y: a3 }, { width: 1, height: u2 }), Ao.copy(r3.data, o2, { x: 0, y: 0 }, { x: s3 + l2, y: a3 }, { width: 1, height: u2 });\n }\n this.image = o2, this.iconPositions = r2, this.patternPositions = n2;\n }\n addImages(t4, e2, r2) {\n for (const n2 in t4) {\n const i2 = t4[n2], s2 = { x: 0, y: 0, w: i2.data.width + 2 * Fu, h: i2.data.height + 2 * Fu };\n r2.push(s2), e2[n2] = new Tu(s2, i2), i2.hasRenderCallback && this.haveRenderCallbacks.push(n2);\n }\n }\n patchUpdatedImages(t4, e2) {\n t4.dispatchRenderCallbacks(this.haveRenderCallbacks);\n for (const r2 in t4.updatedImages) this.patchUpdatedImage(this.iconPositions[r2], t4.getImage(r2), e2), this.patchUpdatedImage(this.patternPositions[r2], t4.getImage(r2), e2);\n }\n patchUpdatedImage(t4, e2, r2) {\n if (!t4 || !e2) return;\n if (t4.version === e2.version) return;\n t4.version = e2.version;\n const [n2, i2] = t4.tl;\n r2.update(e2.data, void 0, { x: n2, y: i2 });\n }\n }\n var Lu;\n wi(\"ImagePosition\", Tu), wi(\"ImageAtlas\", $u), t.ah = void 0, (Lu = t.ah || (t.ah = {}))[Lu.none = 0] = \"none\", Lu[Lu.horizontal = 1] = \"horizontal\", Lu[Lu.vertical = 2] = \"vertical\", Lu[Lu.horizontalOnly = 3] = \"horizontalOnly\";\n const Du = -17;\n class Ou {\n constructor() {\n this.scale = 1, this.fontStack = \"\", this.imageName = null;\n }\n static forText(t4, e2) {\n const r2 = new Ou();\n return r2.scale = t4 || 1, r2.fontStack = e2, r2;\n }\n static forImage(t4) {\n const e2 = new Ou();\n return e2.imageName = t4, e2;\n }\n }\n class ju {\n constructor() {\n this.text = \"\", this.sectionIndex = [], this.sections = [], this.imageSectionID = null;\n }\n static fromFeature(t4, e2) {\n const r2 = new ju();\n for (let n2 = 0; n2 < t4.sections.length; n2++) {\n const i2 = t4.sections[n2];\n i2.image ? r2.addImageSection(i2) : r2.addTextSection(i2, e2);\n }\n return r2;\n }\n length() {\n return this.text.length;\n }\n getSection(t4) {\n return this.sections[this.sectionIndex[t4]];\n }\n getSectionIndex(t4) {\n return this.sectionIndex[t4];\n }\n getCharCode(t4) {\n return this.text.charCodeAt(t4);\n }\n verticalizePunctuation() {\n this.text = function(t4) {\n let e2 = \"\";\n for (let r2 = 0; r2 < t4.length; r2++) {\n const n2 = t4.charCodeAt(r2 + 1) || null, i2 = t4.charCodeAt(r2 - 1) || null;\n e2 += n2 && $i(n2) && !nu[t4[r2 + 1]] || i2 && $i(i2) && !nu[t4[r2 - 1]] || !nu[t4[r2]] ? t4[r2] : nu[t4[r2]];\n }\n return e2;\n }(this.text);\n }\n trim() {\n let t4 = 0;\n for (let e3 = 0; e3 < this.text.length && Uu[this.text.charCodeAt(e3)]; e3++) t4++;\n let e2 = this.text.length;\n for (let r2 = this.text.length - 1; r2 >= 0 && r2 >= t4 && Uu[this.text.charCodeAt(r2)]; r2--) e2--;\n this.text = this.text.substring(t4, e2), this.sectionIndex = this.sectionIndex.slice(t4, e2);\n }\n substring(t4, e2) {\n const r2 = new ju();\n return r2.text = this.text.substring(t4, e2), r2.sectionIndex = this.sectionIndex.slice(t4, e2), r2.sections = this.sections, r2;\n }\n toString() {\n return this.text;\n }\n getMaxScale() {\n return this.sectionIndex.reduce((t4, e2) => Math.max(t4, this.sections[e2].scale), 0);\n }\n addTextSection(t4, e2) {\n this.text += t4.text, this.sections.push(Ou.forText(t4.scale, t4.fontStack || e2));\n const r2 = this.sections.length - 1;\n for (let e3 = 0; e3 < t4.text.length; ++e3) this.sectionIndex.push(r2);\n }\n addImageSection(t4) {\n const e2 = t4.image ? t4.image.name : \"\";\n if (0 === e2.length) return void A2(\"Can't add FormattedSection with an empty image.\");\n const r2 = this.getNextImageSectionCharCode();\n r2 ? (this.text += String.fromCharCode(r2), this.sections.push(Ou.forImage(e2)), this.sectionIndex.push(this.sections.length - 1)) : A2(\"Reached maximum number of images 6401\");\n }\n getNextImageSectionCharCode() {\n return this.imageSectionID ? this.imageSectionID >= 63743 ? null : ++this.imageSectionID : (this.imageSectionID = 57344, this.imageSectionID);\n }\n }\n function Ru(e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2) {\n const m2 = ju.fromFeature(e2, s2);\n let g2;\n p2 === t.ah.vertical && m2.verticalizePunctuation();\n const { processBidirectionalText: x2, processStyledBidirectionalText: v2 } = Ri;\n if (x2 && 1 === m2.sections.length) {\n g2 = [];\n const t4 = x2(m2.toString(), Yu(m2, c2, a2, r2, i2, d2));\n for (const e3 of t4) {\n const t5 = new ju();\n t5.text = e3, t5.sections = m2.sections;\n for (let r3 = 0; r3 < e3.length; r3++) t5.sectionIndex.push(0);\n g2.push(t5);\n }\n } else if (v2) {\n g2 = [];\n const t4 = v2(m2.text, m2.sectionIndex, Yu(m2, c2, a2, r2, i2, d2));\n for (const e3 of t4) {\n const t5 = new ju();\n t5.text = e3[0], t5.sectionIndex = e3[1], t5.sections = m2.sections, g2.push(t5);\n }\n } else g2 = function(t4, e3) {\n const r3 = [], n3 = t4.text;\n let i3 = 0;\n for (const n4 of e3) r3.push(t4.substring(i3, n4)), i3 = n4;\n return i3 < n3.length && r3.push(t4.substring(i3, n3.length)), r3;\n }(m2, Yu(m2, c2, a2, r2, i2, d2));\n const b2 = [], w2 = { positionedLines: b2, text: m2.toString(), top: h2[1], bottom: h2[1], left: h2[0], right: h2[0], writingMode: p2, iconsInText: false, verticalizable: false };\n return function(e3, r3, n3, i3, s3, a3, o3, l3, u3, c3, h3, p3) {\n let f3 = 0, d3 = Du, y3 = 0, m3 = 0;\n const g3 = \"right\" === l3 ? 1 : \"left\" === l3 ? 0 : 0.5;\n let x3 = 0;\n for (const o4 of s3) {\n o4.trim();\n const s4 = o4.getMaxScale(), l4 = (s4 - 1) * iu, b4 = { positionedGlyphs: [], lineOffset: 0 };\n e3.positionedLines[x3] = b4;\n const w4 = b4.positionedGlyphs;\n let _3 = 0;\n if (!o4.length()) {\n d3 += a3, ++x3;\n continue;\n }\n for (let a4 = 0; a4 < o4.length(); a4++) {\n const y4 = o4.getSection(a4), m4 = o4.getSectionIndex(a4), g4 = o4.getCharCode(a4);\n let x4 = 0, b5 = null, A4 = null, S2 = null, k2 = iu;\n const M2 = !(u3 === t.ah.horizontal || !h3 && !Ti(g4) || h3 && (Uu[g4] || (v3 = g4, new RegExp(\"\\\\p{sc=Arab}\", \"u\").test(String.fromCodePoint(v3)))));\n if (y4.imageName) {\n const t4 = i3[y4.imageName];\n if (!t4) continue;\n S2 = y4.imageName, e3.iconsInText = e3.iconsInText || true, A4 = t4.paddedRect;\n const r4 = t4.displaySize;\n y4.scale = y4.scale * iu / p3, b5 = { width: r4[0], height: r4[1], left: Fu, top: -Vu, advance: M2 ? r4[1] : r4[0] }, x4 = l4 + (iu - r4[1] * y4.scale), k2 = b5.advance;\n const n4 = M2 ? r4[0] * y4.scale - iu * s4 : r4[1] * y4.scale - iu * s4;\n n4 > 0 && n4 > _3 && (_3 = n4);\n } else {\n const t4 = n3[y4.fontStack], e4 = t4 && t4[g4];\n if (e4 && e4.rect) A4 = e4.rect, b5 = e4.metrics;\n else {\n const t5 = r3[y4.fontStack], e5 = t5 && t5[g4];\n if (!e5) continue;\n b5 = e5.metrics;\n }\n x4 = (s4 - y4.scale) * iu;\n }\n M2 ? (e3.verticalizable = true, w4.push({ glyph: g4, imageName: S2, x: f3, y: d3 + x4, vertical: M2, scale: y4.scale, fontStack: y4.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += k2 * y4.scale + c3) : (w4.push({ glyph: g4, imageName: S2, x: f3, y: d3 + x4, vertical: M2, scale: y4.scale, fontStack: y4.fontStack, sectionIndex: m4, metrics: b5, rect: A4 }), f3 += b5.advance * y4.scale + c3);\n }\n 0 !== w4.length && (y3 = Math.max(f3 - c3, y3), Wu(w4, 0, w4.length - 1, g3, _3)), f3 = 0;\n const A3 = a3 * s4 + _3;\n b4.lineOffset = Math.max(_3, l4), d3 += A3, m3 = Math.max(A3, m3), ++x3;\n }\n var v3;\n const b3 = d3 - Du, { horizontalAlign: w3, verticalAlign: _2 } = Ju(o3);\n (function(t4, e4, r4, n4, i4, s4, a4, o4, l4) {\n const u4 = (e4 - r4) * i4;\n let c4 = 0;\n c4 = s4 !== a4 ? -o4 * n4 - Du : (-n4 * l4 + 0.5) * a4;\n for (const e5 of t4) for (const t5 of e5.positionedGlyphs) t5.x += u4, t5.y += c4;\n })(e3.positionedLines, g3, w3, _2, y3, m3, a3, b3, s3.length), e3.top += -_2 * b3, e3.bottom = e3.top + b3, e3.left += -w3 * y3, e3.right = e3.left + y3;\n }(w2, r2, n2, i2, g2, o2, l2, u2, p2, c2, f2, y2), !function(t4) {\n for (const e3 of t4) if (0 !== e3.positionedGlyphs.length) return false;\n return true;\n }(b2) && w2;\n }\n const Uu = { 9: true, 10: true, 11: true, 12: true, 13: true, 32: true }, qu = { 10: true, 32: true, 38: true, 41: true, 43: true, 45: true, 47: true, 173: true, 183: true, 8203: true, 8208: true, 8211: true, 8231: true }, Nu = { 40: true };\n function Zu(t4, e2, r2, n2, i2, s2) {\n if (e2.imageName) {\n const t5 = n2[e2.imageName];\n return t5 ? t5.displaySize[0] * e2.scale * iu / s2 + i2 : 0;\n }\n {\n const n3 = r2[e2.fontStack], s3 = n3 && n3[t4];\n return s3 ? s3.metrics.advance * e2.scale + i2 : 0;\n }\n }\n function Gu(t4, e2, r2, n2) {\n const i2 = Math.pow(t4 - e2, 2);\n return n2 ? t4 < e2 ? i2 / 2 : 2 * i2 : i2 + Math.abs(r2) * r2;\n }\n function Ku(t4, e2, r2) {\n let n2 = 0;\n return 10 === t4 && (n2 -= 1e4), r2 && (n2 += 150), 40 !== t4 && 65288 !== t4 || (n2 += 50), 41 !== e2 && 65289 !== e2 || (n2 += 50), n2;\n }\n function Xu(t4, e2, r2, n2, i2, s2) {\n let a2 = null, o2 = Gu(e2, r2, i2, s2);\n for (const t5 of n2) {\n const n3 = Gu(e2 - t5.x, r2, i2, s2) + t5.badness;\n n3 <= o2 && (a2 = t5, o2 = n3);\n }\n return { index: t4, x: e2, priorBreak: a2, badness: o2 };\n }\n function Hu(t4) {\n return t4 ? Hu(t4.priorBreak).concat(t4.index) : [];\n }\n function Yu(t4, e2, r2, n2, i2, s2) {\n if (!t4) return [];\n const a2 = [], o2 = function(t5, e3, r3, n3, i3, s3) {\n let a3 = 0;\n for (let r4 = 0; r4 < t5.length(); r4++) {\n const o3 = t5.getSection(r4);\n a3 += Zu(t5.getCharCode(r4), o3, n3, i3, e3, s3);\n }\n return a3 / Math.max(1, Math.ceil(a3 / r3));\n }(t4, e2, r2, n2, i2, s2), l2 = t4.text.indexOf(\"\\u200B\") >= 0;\n let u2 = 0;\n for (let r3 = 0; r3 < t4.length(); r3++) {\n const h2 = t4.getSection(r3), p2 = t4.getCharCode(r3);\n if (Uu[p2] || (u2 += Zu(p2, h2, n2, i2, e2, s2)), r3 < t4.length() - 1) {\n const e3 = !((c2 = p2) < 11904) && (!!zi[\"CJK Compatibility Forms\"](c2) || !!zi[\"CJK Compatibility\"](c2) || !!zi[\"CJK Strokes\"](c2) || !!zi[\"CJK Symbols and Punctuation\"](c2) || !!zi[\"Enclosed CJK Letters and Months\"](c2) || !!zi[\"Halfwidth and Fullwidth Forms\"](c2) || !!zi[\"Ideographic Description Characters\"](c2) || !!zi[\"Vertical Forms\"](c2) || Fi.test(String.fromCodePoint(c2)));\n (qu[p2] || e3 || h2.imageName || r3 !== t4.length() - 2 && Nu[t4.getCharCode(r3 + 1)]) && a2.push(Xu(r3 + 1, u2, o2, a2, Ku(p2, t4.getCharCode(r3 + 1), e3 && l2), false));\n }\n }\n var c2;\n return Hu(Xu(t4.length(), u2, o2, a2, 0, true));\n }\n function Ju(t4) {\n let e2 = 0.5, r2 = 0.5;\n switch (t4) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n e2 = 1;\n break;\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n e2 = 0;\n }\n switch (t4) {\n case \"bottom\":\n case \"bottom-right\":\n case \"bottom-left\":\n r2 = 1;\n break;\n case \"top\":\n case \"top-right\":\n case \"top-left\":\n r2 = 0;\n }\n return { horizontalAlign: e2, verticalAlign: r2 };\n }\n function Wu(t4, e2, r2, n2, i2) {\n if (!n2 && !i2) return;\n const s2 = t4[r2], a2 = (t4[r2].x + s2.metrics.advance * s2.scale) * n2;\n for (let n3 = e2; n3 <= r2; n3++) t4[n3].x -= a2, t4[n3].y += i2;\n }\n function Qu(t4, e2, r2) {\n const { horizontalAlign: n2, verticalAlign: i2 } = Ju(r2), s2 = e2[0] - t4.displaySize[0] * n2, a2 = e2[1] - t4.displaySize[1] * i2;\n return { image: t4, top: a2, bottom: a2 + t4.displaySize[1], left: s2, right: s2 + t4.displaySize[0] };\n }\n function tc(t4) {\n var e2, r2;\n let n2 = t4.left, i2 = t4.top, s2 = t4.right - n2, a2 = t4.bottom - i2;\n const o2 = null !== (e2 = t4.image.textFitWidth) && void 0 !== e2 ? e2 : \"stretchOrShrink\", l2 = null !== (r2 = t4.image.textFitHeight) && void 0 !== r2 ? r2 : \"stretchOrShrink\", u2 = (t4.image.content[2] - t4.image.content[0]) / (t4.image.content[3] - t4.image.content[1]);\n if (\"proportional\" === l2) {\n if (\"stretchOnly\" === o2 && s2 / a2 < u2 || \"proportional\" === o2) {\n const t5 = Math.ceil(a2 * u2);\n n2 *= t5 / s2, s2 = t5;\n }\n } else if (\"proportional\" === o2 && \"stretchOnly\" === l2 && 0 !== u2 && s2 / a2 > u2) {\n const t5 = Math.ceil(s2 / u2);\n i2 *= t5 / a2, a2 = t5;\n }\n return { x1: n2, y1: i2, x2: n2 + s2, y2: i2 + a2 };\n }\n function ec(t4, e2, r2, n2, i2, s2) {\n const a2 = t4.image;\n let o2;\n if (a2.content) {\n const t5 = a2.content, e3 = a2.pixelRatio || 1;\n o2 = [t5[0] / e3, t5[1] / e3, a2.displaySize[0] - t5[2] / e3, a2.displaySize[1] - t5[3] / e3];\n }\n const l2 = e2.left * s2, u2 = e2.right * s2;\n let c2, h2, p2, f2;\n \"width\" === r2 || \"both\" === r2 ? (f2 = i2[0] + l2 - n2[3], h2 = i2[0] + u2 + n2[1]) : (f2 = i2[0] + (l2 + u2 - a2.displaySize[0]) / 2, h2 = f2 + a2.displaySize[0]);\n const d2 = e2.top * s2, y2 = e2.bottom * s2;\n return \"height\" === r2 || \"both\" === r2 ? (c2 = i2[1] + d2 - n2[0], p2 = i2[1] + y2 + n2[2]) : (c2 = i2[1] + (d2 + y2 - a2.displaySize[1]) / 2, p2 = c2 + a2.displaySize[1]), { image: a2, top: c2, right: h2, bottom: p2, left: f2, collisionPadding: o2 };\n }\n const rc = 255, nc = 128, ic = rc * nc;\n function sc(t4, e2) {\n const { expression: r2 } = e2;\n if (\"constant\" === r2.kind) return { kind: \"constant\", layoutSize: r2.evaluate(new Ui(t4 + 1)) };\n if (\"source\" === r2.kind) return { kind: \"source\" };\n {\n const { zoomStops: e3, interpolationType: n2 } = r2;\n let i2 = 0;\n for (; i2 < e3.length && e3[i2] <= t4; ) i2++;\n i2 = Math.max(0, i2 - 1);\n let s2 = i2;\n for (; s2 < e3.length && e3[s2] < t4 + 1; ) s2++;\n s2 = Math.min(e3.length - 1, s2);\n const a2 = e3[i2], o2 = e3[s2];\n return \"composite\" === r2.kind ? { kind: \"composite\", minZoom: a2, maxZoom: o2, interpolationType: n2 } : { kind: \"camera\", minZoom: a2, maxZoom: o2, minSize: r2.evaluate(new Ui(a2)), maxSize: r2.evaluate(new Ui(o2)), interpolationType: n2 };\n }\n }\n function ac(t4, e2, r2) {\n let n2 = \"never\";\n const i2 = t4.get(e2);\n return i2 ? n2 = i2 : t4.get(r2) && (n2 = \"always\"), n2;\n }\n const oc = fl.VectorTileFeature.types, lc = [{ name: \"a_fade_opacity\", components: 1, type: \"Uint8\", offset: 0 }];\n function uc(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2) {\n const f2 = o2 ? Math.min(ic, Math.round(o2[0])) : 0, d2 = o2 ? Math.min(ic, Math.round(o2[1])) : 0;\n t4.emplaceBack(e2, r2, Math.round(32 * n2), Math.round(32 * i2), s2, a2, (f2 << 1) + (l2 ? 1 : 0), d2, 16 * u2, 16 * c2, 256 * h2, 256 * p2);\n }\n function cc(t4, e2, r2) {\n t4.emplaceBack(e2.x, e2.y, r2), t4.emplaceBack(e2.x, e2.y, r2), t4.emplaceBack(e2.x, e2.y, r2), t4.emplaceBack(e2.x, e2.y, r2);\n }\n function hc(t4) {\n for (const e2 of t4.sections) if (ji(e2.text)) return true;\n return false;\n }\n class pc {\n constructor(t4) {\n this.layoutVertexArray = new Ws(), this.indexArray = new na(), this.programConfigurations = t4, this.segments = new oa(), this.dynamicLayoutVertexArray = new Qs(), this.opacityVertexArray = new ta(), this.hasVisibleVertices = false, this.placedSymbolArray = new $s();\n }\n isEmpty() {\n return 0 === this.layoutVertexArray.length && 0 === this.indexArray.length && 0 === this.dynamicLayoutVertexArray.length && 0 === this.opacityVertexArray.length;\n }\n upload(t4, e2, r2, n2) {\n this.isEmpty() || (r2 && (this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, Jl.members), this.indexBuffer = t4.createIndexBuffer(this.indexArray, e2), this.dynamicLayoutVertexBuffer = t4.createVertexBuffer(this.dynamicLayoutVertexArray, Wl.members, true), this.opacityVertexBuffer = t4.createVertexBuffer(this.opacityVertexArray, lc, true), this.opacityVertexBuffer.itemSize = 1), (r2 || n2) && this.programConfigurations.upload(t4));\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.programConfigurations.destroy(), this.segments.destroy(), this.dynamicLayoutVertexBuffer.destroy(), this.opacityVertexBuffer.destroy());\n }\n }\n wi(\"SymbolBuffers\", pc);\n class fc {\n constructor(t4, e2, r2) {\n this.layoutVertexArray = new t4(), this.layoutAttributes = e2, this.indexArray = new r2(), this.segments = new oa(), this.collisionVertexArray = new ra();\n }\n upload(t4) {\n this.layoutVertexBuffer = t4.createVertexBuffer(this.layoutVertexArray, this.layoutAttributes), this.indexBuffer = t4.createIndexBuffer(this.indexArray), this.collisionVertexBuffer = t4.createVertexBuffer(this.collisionVertexArray, Ql.members, true);\n }\n destroy() {\n this.layoutVertexBuffer && (this.layoutVertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.collisionVertexBuffer.destroy());\n }\n }\n wi(\"CollisionBuffers\", fc);\n class dc {\n constructor(e2) {\n this.collisionBoxArray = e2.collisionBoxArray, this.zoom = e2.zoom, this.overscaling = e2.overscaling, this.layers = e2.layers, this.layerIds = this.layers.map((t4) => t4.id), this.index = e2.index, this.pixelRatio = e2.pixelRatio, this.sourceLayerIndex = e2.sourceLayerIndex, this.hasPattern = false, this.hasRTLText = false, this.sortKeyRanges = [], this.collisionCircleArray = [], this.placementInvProjMatrix = lo([]), this.placementViewportMatrix = lo([]);\n const r2 = this.layers[0]._unevaluatedLayout._values;\n this.textSizeData = sc(this.zoom, r2[\"text-size\"]), this.iconSizeData = sc(this.zoom, r2[\"icon-size\"]);\n const n2 = this.layers[0].layout, i2 = n2.get(\"symbol-sort-key\"), s2 = n2.get(\"symbol-z-order\");\n this.canOverlap = \"never\" !== ac(n2, \"text-overlap\", \"text-allow-overlap\") || \"never\" !== ac(n2, \"icon-overlap\", \"icon-allow-overlap\") || n2.get(\"text-ignore-placement\") || n2.get(\"icon-ignore-placement\"), this.sortFeaturesByKey = \"viewport-y\" !== s2 && !i2.isConstant(), this.sortFeaturesByY = (\"viewport-y\" === s2 || \"auto\" === s2 && !this.sortFeaturesByKey) && this.canOverlap, \"point\" === n2.get(\"symbol-placement\") && (this.writingModes = n2.get(\"text-writing-mode\").map((e3) => t.ah[e3])), this.stateDependentLayerIds = this.layers.filter((t4) => t4.isStateDependent()).map((t4) => t4.id), this.sourceID = e2.sourceID;\n }\n createArrays() {\n this.text = new pc(new Ea(this.layers, this.zoom, (t4) => /^text/.test(t4))), this.icon = new pc(new Ea(this.layers, this.zoom, (t4) => /^icon/.test(t4))), this.glyphOffsetArray = new Os(), this.lineVertexArray = new js(), this.symbolInstances = new Ds(), this.textAnchorOffsets = new Us();\n }\n calculateGlyphDependencies(t4, e2, r2, n2, i2) {\n for (let s2 = 0; s2 < t4.length; s2++) if (e2[t4.charCodeAt(s2)] = true, (r2 || n2) && i2) {\n const r3 = nu[t4.charAt(s2)];\n r3 && (e2[r3.charCodeAt(0)] = true);\n }\n }\n populate(e2, r2, n2) {\n const i2 = this.layers[0], s2 = i2.layout, a2 = s2.get(\"text-font\"), o2 = s2.get(\"text-field\"), l2 = s2.get(\"icon-image\"), u2 = (\"constant\" !== o2.value.kind || o2.value.value instanceof Yt && !o2.value.value.isEmpty() || o2.value.value.toString().length > 0) && (\"constant\" !== a2.value.kind || a2.value.value.length > 0), c2 = \"constant\" !== l2.value.kind || !!l2.value.value || Object.keys(l2.parameters).length > 0, h2 = s2.get(\"symbol-sort-key\");\n if (this.features = [], !u2 && !c2) return;\n const p2 = r2.iconDependencies, f2 = r2.glyphDependencies, d2 = r2.availableImages, y2 = new Ui(this.zoom);\n for (const { feature: r3, id: o3, index: l3, sourceLayerIndex: m2 } of e2) {\n const e3 = i2._featureFilter.needGeometry, g2 = ja(r3, e3);\n if (!i2._featureFilter.filter(y2, g2, n2)) continue;\n let x2, v2;\n if (e3 || (g2.geometry = Oa(r3)), u2) {\n const t4 = i2.getValueAndResolveTokens(\"text-field\", g2, n2, d2), e4 = Yt.factory(t4), r4 = this.hasRTLText = this.hasRTLText || hc(e4);\n (!r4 || \"unavailable\" === Ri.getRTLTextPluginStatus() || r4 && Ri.isParsed()) && (x2 = ru(e4, i2, g2));\n }\n if (c2) {\n const t4 = i2.getValueAndResolveTokens(\"icon-image\", g2, n2, d2);\n v2 = t4 instanceof te ? t4 : te.fromString(t4);\n }\n if (!x2 && !v2) continue;\n const b2 = this.sortFeaturesByKey ? h2.evaluate(g2, {}, n2) : void 0;\n if (this.features.push({ id: o3, text: x2, icon: v2, index: l3, sourceLayerIndex: m2, geometry: g2.geometry, properties: r3.properties, type: oc[r3.type], sortKey: b2 }), v2 && (p2[v2.name] = true), x2) {\n const e4 = a2.evaluate(g2, {}, n2).join(\",\"), r4 = \"viewport\" !== s2.get(\"text-rotation-alignment\") && \"point\" !== s2.get(\"symbol-placement\");\n this.allowVerticalPlacement = this.writingModes && this.writingModes.indexOf(t.ah.vertical) >= 0;\n for (const t4 of x2.sections) if (t4.image) p2[t4.image.name] = true;\n else {\n const n3 = Pi(x2.toString()), i3 = t4.fontStack || e4, s3 = f2[i3] = f2[i3] || {};\n this.calculateGlyphDependencies(t4.text, s3, r4, this.allowVerticalPlacement, n3);\n }\n }\n }\n \"line\" === s2.get(\"symbol-placement\") && (this.features = function(t4) {\n const e3 = {}, r3 = {}, n3 = [];\n let i3 = 0;\n function s3(e4) {\n n3.push(t4[e4]), i3++;\n }\n function a3(t5, e4, i4) {\n const s4 = r3[t5];\n return delete r3[t5], r3[e4] = s4, n3[s4].geometry[0].pop(), n3[s4].geometry[0] = n3[s4].geometry[0].concat(i4[0]), s4;\n }\n function o3(t5, r4, i4) {\n const s4 = e3[r4];\n return delete e3[r4], e3[t5] = s4, n3[s4].geometry[0].shift(), n3[s4].geometry[0] = i4[0].concat(n3[s4].geometry[0]), s4;\n }\n function l3(t5, e4, r4) {\n const n4 = r4 ? e4[0][e4[0].length - 1] : e4[0][0];\n return `${t5}:${n4.x}:${n4.y}`;\n }\n for (let u3 = 0; u3 < t4.length; u3++) {\n const c3 = t4[u3], h3 = c3.geometry, p3 = c3.text ? c3.text.toString() : null;\n if (!p3) {\n s3(u3);\n continue;\n }\n const f3 = l3(p3, h3), d3 = l3(p3, h3, true);\n if (f3 in r3 && d3 in e3 && r3[f3] !== e3[d3]) {\n const t5 = o3(f3, d3, h3), i4 = a3(f3, d3, n3[t5].geometry);\n delete e3[f3], delete r3[d3], r3[l3(p3, n3[i4].geometry, true)] = i4, n3[t5].geometry = null;\n } else f3 in r3 ? a3(f3, d3, h3) : d3 in e3 ? o3(f3, d3, h3) : (s3(u3), e3[f3] = i3 - 1, r3[d3] = i3 - 1);\n }\n return n3.filter((t5) => t5.geometry);\n }(this.features)), this.sortFeaturesByKey && this.features.sort((t4, e3) => t4.sortKey - e3.sortKey);\n }\n update(t4, e2, r2) {\n this.stateDependentLayers.length && (this.text.programConfigurations.updatePaintArrays(t4, e2, this.layers, r2), this.icon.programConfigurations.updatePaintArrays(t4, e2, this.layers, r2));\n }\n isEmpty() {\n return 0 === this.symbolInstances.length && !this.hasRTLText;\n }\n uploadPending() {\n return !this.uploaded || this.text.programConfigurations.needsUpload || this.icon.programConfigurations.needsUpload;\n }\n upload(t4) {\n !this.uploaded && this.hasDebugData() && (this.textCollisionBox.upload(t4), this.iconCollisionBox.upload(t4)), this.text.upload(t4, this.sortFeaturesByY, !this.uploaded, this.text.programConfigurations.needsUpload), this.icon.upload(t4, this.sortFeaturesByY, !this.uploaded, this.icon.programConfigurations.needsUpload), this.uploaded = true;\n }\n destroyDebugData() {\n this.textCollisionBox.destroy(), this.iconCollisionBox.destroy();\n }\n destroy() {\n this.text.destroy(), this.icon.destroy(), this.hasDebugData() && this.destroyDebugData();\n }\n addToLineVertexArray(t4, e2) {\n const r2 = this.lineVertexArray.length;\n if (void 0 !== t4.segment) {\n let r3 = t4.dist(e2[t4.segment + 1]), n2 = t4.dist(e2[t4.segment]);\n const i2 = {};\n for (let n3 = t4.segment + 1; n3 < e2.length; n3++) i2[n3] = { x: e2[n3].x, y: e2[n3].y, tileUnitDistanceFromAnchor: r3 }, n3 < e2.length - 1 && (r3 += e2[n3 + 1].dist(e2[n3]));\n for (let r4 = t4.segment || 0; r4 >= 0; r4--) i2[r4] = { x: e2[r4].x, y: e2[r4].y, tileUnitDistanceFromAnchor: n2 }, r4 > 0 && (n2 += e2[r4 - 1].dist(e2[r4]));\n for (let t5 = 0; t5 < e2.length; t5++) {\n const e3 = i2[t5];\n this.lineVertexArray.emplaceBack(e3.x, e3.y, e3.tileUnitDistanceFromAnchor);\n }\n }\n return { lineStartIndex: r2, lineLength: this.lineVertexArray.length - r2 };\n }\n addSymbols(e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2, p2) {\n const f2 = e2.indexArray, d2 = e2.layoutVertexArray, y2 = e2.segments.prepareSegment(4 * r2.length, d2, f2, this.canOverlap ? a2.sortKey : void 0), m2 = this.glyphOffsetArray.length, g2 = y2.vertexLength, x2 = this.allowVerticalPlacement && o2 === t.ah.vertical ? Math.PI / 2 : 0, v2 = a2.text && a2.text.sections;\n for (let t4 = 0; t4 < r2.length; t4++) {\n const { tl: i3, tr: s3, bl: o3, br: u3, tex: c3, pixelOffsetTL: h3, pixelOffsetBR: m3, minFontScaleX: g3, minFontScaleY: b2, glyphOffset: w2, isSDF: _2, sectionIndex: A3 } = r2[t4], S2 = y2.vertexLength, k2 = w2[1];\n uc(d2, l2.x, l2.y, i3.x, k2 + i3.y, c3.x, c3.y, n2, _2, h3.x, h3.y, g3, b2), uc(d2, l2.x, l2.y, s3.x, k2 + s3.y, c3.x + c3.w, c3.y, n2, _2, m3.x, h3.y, g3, b2), uc(d2, l2.x, l2.y, o3.x, k2 + o3.y, c3.x, c3.y + c3.h, n2, _2, h3.x, m3.y, g3, b2), uc(d2, l2.x, l2.y, u3.x, k2 + u3.y, c3.x + c3.w, c3.y + c3.h, n2, _2, m3.x, m3.y, g3, b2), cc(e2.dynamicLayoutVertexArray, l2, x2), f2.emplaceBack(S2, S2 + 1, S2 + 2), f2.emplaceBack(S2 + 1, S2 + 2, S2 + 3), y2.vertexLength += 4, y2.primitiveLength += 2, this.glyphOffsetArray.emplaceBack(w2[0]), t4 !== r2.length - 1 && A3 === r2[t4 + 1].sectionIndex || e2.programConfigurations.populatePaintArrays(d2.length, a2, a2.index, {}, p2, v2 && v2[A3]);\n }\n e2.placedSymbolArray.emplaceBack(l2.x, l2.y, m2, this.glyphOffsetArray.length - m2, g2, u2, c2, l2.segment, n2 ? n2[0] : 0, n2 ? n2[1] : 0, i2[0], i2[1], o2, 0, false, 0, h2);\n }\n _addCollisionDebugVertex(t4, e2, r2, n2, i2, s2) {\n return e2.emplaceBack(0, 0), t4.emplaceBack(r2.x, r2.y, n2, i2, Math.round(s2.x), Math.round(s2.y));\n }\n addCollisionDebugVertices(t4, e2, r2, n2, i2, a2, o2) {\n const l2 = i2.segments.prepareSegment(4, i2.layoutVertexArray, i2.indexArray), u2 = l2.vertexLength, c2 = i2.layoutVertexArray, h2 = i2.collisionVertexArray, p2 = o2.anchorX, f2 = o2.anchorY;\n this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(t4, e2)), this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(r2, e2)), this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(r2, n2)), this._addCollisionDebugVertex(c2, h2, a2, p2, f2, new s(t4, n2)), l2.vertexLength += 4;\n const d2 = i2.indexArray;\n d2.emplaceBack(u2, u2 + 1), d2.emplaceBack(u2 + 1, u2 + 2), d2.emplaceBack(u2 + 2, u2 + 3), d2.emplaceBack(u2 + 3, u2), l2.primitiveLength += 4;\n }\n addDebugCollisionBoxes(t4, e2, r2, n2) {\n for (let i2 = t4; i2 < e2; i2++) {\n const t5 = this.collisionBoxArray.get(i2);\n this.addCollisionDebugVertices(t5.x1, t5.y1, t5.x2, t5.y2, n2 ? this.textCollisionBox : this.iconCollisionBox, t5.anchorPoint, r2);\n }\n }\n generateCollisionDebugBuffers() {\n this.hasDebugData() && this.destroyDebugData(), this.textCollisionBox = new fc(ea, tu.members, ia), this.iconCollisionBox = new fc(ea, tu.members, ia);\n for (let t4 = 0; t4 < this.symbolInstances.length; t4++) {\n const e2 = this.symbolInstances.get(t4);\n this.addDebugCollisionBoxes(e2.textBoxStartIndex, e2.textBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.verticalTextBoxStartIndex, e2.verticalTextBoxEndIndex, e2, true), this.addDebugCollisionBoxes(e2.iconBoxStartIndex, e2.iconBoxEndIndex, e2, false), this.addDebugCollisionBoxes(e2.verticalIconBoxStartIndex, e2.verticalIconBoxEndIndex, e2, false);\n }\n }\n _deserializeCollisionBoxesForSymbol(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = {};\n for (let n3 = e2; n3 < r2; n3++) {\n const e3 = t4.get(n3);\n u2.textBox = { x1: e3.x1, y1: e3.y1, x2: e3.x2, y2: e3.y2, anchorPointX: e3.anchorPointX, anchorPointY: e3.anchorPointY }, u2.textFeatureIndex = e3.featureIndex;\n break;\n }\n for (let e3 = n2; e3 < i2; e3++) {\n const r3 = t4.get(e3);\n u2.verticalTextBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalTextFeatureIndex = r3.featureIndex;\n break;\n }\n for (let e3 = s2; e3 < a2; e3++) {\n const r3 = t4.get(e3);\n u2.iconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.iconFeatureIndex = r3.featureIndex;\n break;\n }\n for (let e3 = o2; e3 < l2; e3++) {\n const r3 = t4.get(e3);\n u2.verticalIconBox = { x1: r3.x1, y1: r3.y1, x2: r3.x2, y2: r3.y2, anchorPointX: r3.anchorPointX, anchorPointY: r3.anchorPointY }, u2.verticalIconFeatureIndex = r3.featureIndex;\n break;\n }\n return u2;\n }\n deserializeCollisionBoxes(t4) {\n this.collisionArrays = [];\n for (let e2 = 0; e2 < this.symbolInstances.length; e2++) {\n const r2 = this.symbolInstances.get(e2);\n this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(t4, r2.textBoxStartIndex, r2.textBoxEndIndex, r2.verticalTextBoxStartIndex, r2.verticalTextBoxEndIndex, r2.iconBoxStartIndex, r2.iconBoxEndIndex, r2.verticalIconBoxStartIndex, r2.verticalIconBoxEndIndex));\n }\n }\n hasTextData() {\n return this.text.segments.get().length > 0;\n }\n hasIconData() {\n return this.icon.segments.get().length > 0;\n }\n hasDebugData() {\n return this.textCollisionBox && this.iconCollisionBox;\n }\n hasTextCollisionBoxData() {\n return this.hasDebugData() && this.textCollisionBox.segments.get().length > 0;\n }\n hasIconCollisionBoxData() {\n return this.hasDebugData() && this.iconCollisionBox.segments.get().length > 0;\n }\n addIndicesForPlacedSymbol(t4, e2) {\n const r2 = t4.placedSymbolArray.get(e2), n2 = r2.vertexStartIndex + 4 * r2.numGlyphs;\n for (let e3 = r2.vertexStartIndex; e3 < n2; e3 += 4) t4.indexArray.emplaceBack(e3, e3 + 1, e3 + 2), t4.indexArray.emplaceBack(e3 + 1, e3 + 2, e3 + 3);\n }\n getSortedSymbolIndexes(t4) {\n if (this.sortedAngle === t4 && void 0 !== this.symbolInstanceIndexes) return this.symbolInstanceIndexes;\n const e2 = Math.sin(t4), r2 = Math.cos(t4), n2 = [], i2 = [], s2 = [];\n for (let t5 = 0; t5 < this.symbolInstances.length; ++t5) {\n s2.push(t5);\n const a2 = this.symbolInstances.get(t5);\n n2.push(0 | Math.round(e2 * a2.anchorX + r2 * a2.anchorY)), i2.push(a2.featureIndex);\n }\n return s2.sort((t5, e3) => n2[t5] - n2[e3] || i2[e3] - i2[t5]), s2;\n }\n addToSortKeyRanges(t4, e2) {\n const r2 = this.sortKeyRanges[this.sortKeyRanges.length - 1];\n r2 && r2.sortKey === e2 ? r2.symbolInstanceEnd = t4 + 1 : this.sortKeyRanges.push({ sortKey: e2, symbolInstanceStart: t4, symbolInstanceEnd: t4 + 1 });\n }\n sortFeatures(t4) {\n if (this.sortFeaturesByY && this.sortedAngle !== t4 && !(this.text.segments.get().length > 1 || this.icon.segments.get().length > 1)) {\n this.symbolInstanceIndexes = this.getSortedSymbolIndexes(t4), this.sortedAngle = t4, this.text.indexArray.clear(), this.icon.indexArray.clear(), this.featureSortOrder = [];\n for (const t5 of this.symbolInstanceIndexes) {\n const e2 = this.symbolInstances.get(t5);\n this.featureSortOrder.push(e2.featureIndex), [e2.rightJustifiedTextSymbolIndex, e2.centerJustifiedTextSymbolIndex, e2.leftJustifiedTextSymbolIndex].forEach((t6, e3, r2) => {\n t6 >= 0 && r2.indexOf(t6) === e3 && this.addIndicesForPlacedSymbol(this.text, t6);\n }), e2.verticalPlacedTextSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.text, e2.verticalPlacedTextSymbolIndex), e2.placedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.placedIconSymbolIndex), e2.verticalPlacedIconSymbolIndex >= 0 && this.addIndicesForPlacedSymbol(this.icon, e2.verticalPlacedIconSymbolIndex);\n }\n this.text.indexBuffer && this.text.indexBuffer.updateData(this.text.indexArray), this.icon.indexBuffer && this.icon.indexBuffer.updateData(this.icon.indexArray);\n }\n }\n }\n let yc, mc;\n wi(\"SymbolBucket\", dc, { omit: [\"layers\", \"collisionBoxArray\", \"features\", \"compareText\"] }), dc.MAX_GLYPHS = 65535, dc.addDynamicAttributes = cc;\n var gc = { get paint() {\n return mc = mc || new rs({ \"icon-opacity\": new Wi(G.paint_symbol[\"icon-opacity\"]), \"icon-color\": new Wi(G.paint_symbol[\"icon-color\"]), \"icon-halo-color\": new Wi(G.paint_symbol[\"icon-halo-color\"]), \"icon-halo-width\": new Wi(G.paint_symbol[\"icon-halo-width\"]), \"icon-halo-blur\": new Wi(G.paint_symbol[\"icon-halo-blur\"]), \"icon-translate\": new Ji(G.paint_symbol[\"icon-translate\"]), \"icon-translate-anchor\": new Ji(G.paint_symbol[\"icon-translate-anchor\"]), \"text-opacity\": new Wi(G.paint_symbol[\"text-opacity\"]), \"text-color\": new Wi(G.paint_symbol[\"text-color\"], { runtimeType: pt, getOverride: (t4) => t4.textColor, hasOverride: (t4) => !!t4.textColor }), \"text-halo-color\": new Wi(G.paint_symbol[\"text-halo-color\"]), \"text-halo-width\": new Wi(G.paint_symbol[\"text-halo-width\"]), \"text-halo-blur\": new Wi(G.paint_symbol[\"text-halo-blur\"]), \"text-translate\": new Ji(G.paint_symbol[\"text-translate\"]), \"text-translate-anchor\": new Ji(G.paint_symbol[\"text-translate-anchor\"]) });\n }, get layout() {\n return yc = yc || new rs({ \"symbol-placement\": new Ji(G.layout_symbol[\"symbol-placement\"]), \"symbol-spacing\": new Ji(G.layout_symbol[\"symbol-spacing\"]), \"symbol-avoid-edges\": new Ji(G.layout_symbol[\"symbol-avoid-edges\"]), \"symbol-sort-key\": new Wi(G.layout_symbol[\"symbol-sort-key\"]), \"symbol-z-order\": new Ji(G.layout_symbol[\"symbol-z-order\"]), \"icon-allow-overlap\": new Ji(G.layout_symbol[\"icon-allow-overlap\"]), \"icon-overlap\": new Ji(G.layout_symbol[\"icon-overlap\"]), \"icon-ignore-placement\": new Ji(G.layout_symbol[\"icon-ignore-placement\"]), \"icon-optional\": new Ji(G.layout_symbol[\"icon-optional\"]), \"icon-rotation-alignment\": new Ji(G.layout_symbol[\"icon-rotation-alignment\"]), \"icon-size\": new Wi(G.layout_symbol[\"icon-size\"]), \"icon-text-fit\": new Ji(G.layout_symbol[\"icon-text-fit\"]), \"icon-text-fit-padding\": new Ji(G.layout_symbol[\"icon-text-fit-padding\"]), \"icon-image\": new Wi(G.layout_symbol[\"icon-image\"]), \"icon-rotate\": new Wi(G.layout_symbol[\"icon-rotate\"]), \"icon-padding\": new Wi(G.layout_symbol[\"icon-padding\"]), \"icon-keep-upright\": new Ji(G.layout_symbol[\"icon-keep-upright\"]), \"icon-offset\": new Wi(G.layout_symbol[\"icon-offset\"]), \"icon-anchor\": new Wi(G.layout_symbol[\"icon-anchor\"]), \"icon-pitch-alignment\": new Ji(G.layout_symbol[\"icon-pitch-alignment\"]), \"text-pitch-alignment\": new Ji(G.layout_symbol[\"text-pitch-alignment\"]), \"text-rotation-alignment\": new Ji(G.layout_symbol[\"text-rotation-alignment\"]), \"text-field\": new Wi(G.layout_symbol[\"text-field\"]), \"text-font\": new Wi(G.layout_symbol[\"text-font\"]), \"text-size\": new Wi(G.layout_symbol[\"text-size\"]), \"text-max-width\": new Wi(G.layout_symbol[\"text-max-width\"]), \"text-line-height\": new Ji(G.layout_symbol[\"text-line-height\"]), \"text-letter-spacing\": new Wi(G.layout_symbol[\"text-letter-spacing\"]), \"text-justify\": new Wi(G.layout_symbol[\"text-justify\"]), \"text-radial-offset\": new Wi(G.layout_symbol[\"text-radial-offset\"]), \"text-variable-anchor\": new Ji(G.layout_symbol[\"text-variable-anchor\"]), \"text-variable-anchor-offset\": new Wi(G.layout_symbol[\"text-variable-anchor-offset\"]), \"text-anchor\": new Wi(G.layout_symbol[\"text-anchor\"]), \"text-max-angle\": new Ji(G.layout_symbol[\"text-max-angle\"]), \"text-writing-mode\": new Ji(G.layout_symbol[\"text-writing-mode\"]), \"text-rotate\": new Wi(G.layout_symbol[\"text-rotate\"]), \"text-padding\": new Ji(G.layout_symbol[\"text-padding\"]), \"text-keep-upright\": new Ji(G.layout_symbol[\"text-keep-upright\"]), \"text-transform\": new Wi(G.layout_symbol[\"text-transform\"]), \"text-offset\": new Wi(G.layout_symbol[\"text-offset\"]), \"text-allow-overlap\": new Ji(G.layout_symbol[\"text-allow-overlap\"]), \"text-overlap\": new Ji(G.layout_symbol[\"text-overlap\"]), \"text-ignore-placement\": new Ji(G.layout_symbol[\"text-ignore-placement\"]), \"text-optional\": new Ji(G.layout_symbol[\"text-optional\"]) });\n } };\n class xc {\n constructor(t4) {\n if (void 0 === t4.property.overrides) throw new Error(\"overrides must be provided to instantiate FormatSectionOverride class\");\n this.type = t4.property.overrides ? t4.property.overrides.runtimeType : lt, this.defaultValue = t4;\n }\n evaluate(t4) {\n if (t4.formattedSection) {\n const e2 = this.defaultValue.property.overrides;\n if (e2 && e2.hasOverride(t4.formattedSection)) return e2.getOverride(t4.formattedSection);\n }\n return t4.feature && t4.featureState ? this.defaultValue.evaluate(t4.feature, t4.featureState) : this.defaultValue.property.specification.default;\n }\n eachChild(t4) {\n this.defaultValue.isConstant() || t4(this.defaultValue.value._styleExpression.expression);\n }\n outputDefined() {\n return false;\n }\n serialize() {\n return null;\n }\n }\n wi(\"FormatSectionOverride\", xc, { omit: [\"defaultValue\"] });\n class vc extends is {\n constructor(t4) {\n super(t4, gc);\n }\n recalculate(t4, e2) {\n if (super.recalculate(t4, e2), \"auto\" === this.layout.get(\"icon-rotation-alignment\") && (this.layout._values[\"icon-rotation-alignment\"] = \"point\" !== this.layout.get(\"symbol-placement\") ? \"map\" : \"viewport\"), \"auto\" === this.layout.get(\"text-rotation-alignment\") && (this.layout._values[\"text-rotation-alignment\"] = \"point\" !== this.layout.get(\"symbol-placement\") ? \"map\" : \"viewport\"), \"auto\" === this.layout.get(\"text-pitch-alignment\") && (this.layout._values[\"text-pitch-alignment\"] = \"map\" === this.layout.get(\"text-rotation-alignment\") ? \"map\" : \"viewport\"), \"auto\" === this.layout.get(\"icon-pitch-alignment\") && (this.layout._values[\"icon-pitch-alignment\"] = this.layout.get(\"icon-rotation-alignment\")), \"point\" === this.layout.get(\"symbol-placement\")) {\n const t5 = this.layout.get(\"text-writing-mode\");\n if (t5) {\n const e3 = [];\n for (const r2 of t5) e3.indexOf(r2) < 0 && e3.push(r2);\n this.layout._values[\"text-writing-mode\"] = e3;\n } else this.layout._values[\"text-writing-mode\"] = [\"horizontal\"];\n }\n this._setPaintOverrides();\n }\n getValueAndResolveTokens(t4, e2, r2, n2) {\n const i2 = this.layout.get(t4).evaluate(e2, {}, r2, n2), s2 = this._unevaluatedLayout._values[t4];\n return s2.isDataDriven() || vn(s2.value) || !i2 ? i2 : function(t5, e3) {\n return e3.replace(/{([^{}]+)}/g, (e4, r3) => t5 && r3 in t5 ? String(t5[r3]) : \"\");\n }(e2.properties, i2);\n }\n createBucket(t4) {\n return new dc(t4);\n }\n queryRadius() {\n return 0;\n }\n queryIntersectsFeature() {\n throw new Error(\"Should take a different path in FeatureIndex\");\n }\n _setPaintOverrides() {\n for (const t4 of gc.paint.overridableProperties) {\n if (!vc.hasPaintOverride(this.layout, t4)) continue;\n const e2 = this.paint.get(t4), r2 = new xc(e2), n2 = new xn(r2, e2.property.specification);\n let i2 = null;\n i2 = \"constant\" === e2.value.kind || \"source\" === e2.value.kind ? new wn(\"source\", n2) : new _n(\"composite\", n2, e2.value.zoomStops), this.paint._values[t4] = new Hi(e2.property, i2, e2.parameters);\n }\n }\n _handleOverridablePaintPropertyUpdate(t4, e2, r2) {\n return !(!this.layout || e2.isDataDriven() || r2.isDataDriven()) && vc.hasPaintOverride(this.layout, t4);\n }\n static hasPaintOverride(t4, e2) {\n const r2 = t4.get(\"text-field\"), n2 = gc.paint.properties[e2];\n let i2 = false;\n const s2 = (t5) => {\n for (const e3 of t5) if (n2.overrides && n2.overrides.hasOverride(e3)) return void (i2 = true);\n };\n if (\"constant\" === r2.value.kind && r2.value.value instanceof Yt) s2(r2.value.value.sections);\n else if (\"source\" === r2.value.kind) {\n const t5 = (e4) => {\n i2 || (e4 instanceof se && ne(e4.value) === mt ? s2(e4.value.sections) : e4 instanceof Ze ? s2(e4.sections) : e4.eachChild(t5));\n }, e3 = r2.value;\n e3._styleExpression && t5(e3._styleExpression.expression);\n }\n return i2;\n }\n }\n let bc;\n var wc = { get paint() {\n return bc = bc || new rs({ \"background-color\": new Ji(G.paint_background[\"background-color\"]), \"background-pattern\": new ts(G.paint_background[\"background-pattern\"]), \"background-opacity\": new Ji(G.paint_background[\"background-opacity\"]) });\n } };\n class _c extends is {\n constructor(t4) {\n super(t4, wc);\n }\n }\n let Ac;\n var Sc = { get paint() {\n return Ac = Ac || new rs({ \"raster-opacity\": new Ji(G.paint_raster[\"raster-opacity\"]), \"raster-hue-rotate\": new Ji(G.paint_raster[\"raster-hue-rotate\"]), \"raster-brightness-min\": new Ji(G.paint_raster[\"raster-brightness-min\"]), \"raster-brightness-max\": new Ji(G.paint_raster[\"raster-brightness-max\"]), \"raster-saturation\": new Ji(G.paint_raster[\"raster-saturation\"]), \"raster-contrast\": new Ji(G.paint_raster[\"raster-contrast\"]), \"raster-resampling\": new Ji(G.paint_raster[\"raster-resampling\"]), \"raster-fade-duration\": new Ji(G.paint_raster[\"raster-fade-duration\"]) });\n } };\n class kc extends is {\n constructor(t4) {\n super(t4, Sc);\n }\n }\n class Mc extends is {\n constructor(t4) {\n super(t4, {}), this.onAdd = (t5) => {\n this.implementation.onAdd && this.implementation.onAdd(t5, t5.painter.context.gl);\n }, this.onRemove = (t5) => {\n this.implementation.onRemove && this.implementation.onRemove(t5, t5.painter.context.gl);\n }, this.implementation = t4;\n }\n is3D() {\n return \"3d\" === this.implementation.renderingMode;\n }\n hasOffscreenPass() {\n return void 0 !== this.implementation.prerender;\n }\n recalculate() {\n }\n updateTransitions() {\n }\n hasTransition() {\n return false;\n }\n serialize() {\n throw new Error(\"Custom layers cannot be serialized\");\n }\n }\n class Ic {\n constructor(t4) {\n this._methodToThrottle = t4, this._triggered = false, \"undefined\" != typeof MessageChannel && (this._channel = new MessageChannel(), this._channel.port2.onmessage = () => {\n this._triggered = false, this._methodToThrottle();\n });\n }\n trigger() {\n this._triggered || (this._triggered = true, this._channel ? this._channel.port1.postMessage(true) : setTimeout(() => {\n this._triggered = false, this._methodToThrottle();\n }, 0));\n }\n remove() {\n delete this._channel, this._methodToThrottle = () => {\n };\n }\n }\n const zc = 63710088e-1;\n class Pc {\n constructor(t4, e2) {\n if (isNaN(t4) || isNaN(e2)) throw new Error(`Invalid LngLat object: (${t4}, ${e2})`);\n if (this.lng = +t4, this.lat = +e2, this.lat > 90 || this.lat < -90) throw new Error(\"Invalid LngLat latitude value: must be between -90 and 90\");\n }\n wrap() {\n return new Pc(m(this.lng, -180, 180), this.lat);\n }\n toArray() {\n return [this.lng, this.lat];\n }\n toString() {\n return `LngLat(${this.lng}, ${this.lat})`;\n }\n distanceTo(t4) {\n const e2 = Math.PI / 180, r2 = this.lat * e2, n2 = t4.lat * e2, i2 = Math.sin(r2) * Math.sin(n2) + Math.cos(r2) * Math.cos(n2) * Math.cos((t4.lng - this.lng) * e2);\n return zc * Math.acos(Math.min(i2, 1));\n }\n static convert(t4) {\n if (t4 instanceof Pc) return t4;\n if (Array.isArray(t4) && (2 === t4.length || 3 === t4.length)) return new Pc(Number(t4[0]), Number(t4[1]));\n if (!Array.isArray(t4) && \"object\" == typeof t4 && null !== t4) return new Pc(Number(\"lng\" in t4 ? t4.lng : t4.lon), Number(t4.lat));\n throw new Error(\"`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]\");\n }\n }\n const Cc = 2 * Math.PI * zc;\n function Bc(t4) {\n return Cc * Math.cos(t4 * Math.PI / 180);\n }\n function Vc(t4) {\n return (180 + t4) / 360;\n }\n function Ec(t4) {\n return (180 - 180 / Math.PI * Math.log(Math.tan(Math.PI / 4 + t4 * Math.PI / 360))) / 360;\n }\n function Fc(t4, e2) {\n return t4 / Bc(e2);\n }\n function Tc(t4) {\n return 360 / Math.PI * Math.atan(Math.exp((180 - 360 * t4) * Math.PI / 180)) - 90;\n }\n class $c {\n constructor(t4, e2, r2 = 0) {\n this.x = +t4, this.y = +e2, this.z = +r2;\n }\n static fromLngLat(t4, e2 = 0) {\n const r2 = Pc.convert(t4);\n return new $c(Vc(r2.lng), Ec(r2.lat), Fc(e2, r2.lat));\n }\n toLngLat() {\n return new Pc(360 * this.x - 180, Tc(this.y));\n }\n toAltitude() {\n return this.z * Bc(Tc(this.y));\n }\n meterInMercatorCoordinateUnits() {\n return 1 / Cc * (t4 = Tc(this.y), 1 / Math.cos(t4 * Math.PI / 180));\n var t4;\n }\n }\n function Lc(t4, e2, r2) {\n var n2 = 2 * Math.PI * 6378137 / 256 / Math.pow(2, r2);\n return [t4 * n2 - 2 * Math.PI * 6378137 / 2, e2 * n2 - 2 * Math.PI * 6378137 / 2];\n }\n class Dc {\n constructor(t4, e2, r2) {\n if (!function(t5, e3, r3) {\n return !(t5 < 0 || t5 > 25 || r3 < 0 || r3 >= Math.pow(2, t5) || e3 < 0 || e3 >= Math.pow(2, t5));\n }(t4, e2, r2)) throw new Error(`x=${e2}, y=${r2}, z=${t4} outside of bounds. 0<=x<${Math.pow(2, t4)}, 0<=y<${Math.pow(2, t4)} 0<=z<=25 `);\n this.z = t4, this.x = e2, this.y = r2, this.key = Rc(0, t4, t4, e2, r2);\n }\n equals(t4) {\n return this.z === t4.z && this.x === t4.x && this.y === t4.y;\n }\n url(t4, e2, r2) {\n const n2 = (s2 = this.y, a2 = this.z, o2 = Lc(256 * (i2 = this.x), 256 * (s2 = Math.pow(2, a2) - s2 - 1), a2), l2 = Lc(256 * (i2 + 1), 256 * (s2 + 1), a2), o2[0] + \",\" + o2[1] + \",\" + l2[0] + \",\" + l2[1]);\n var i2, s2, a2, o2, l2;\n const u2 = function(t5, e3, r3) {\n let n3, i3 = \"\";\n for (let s3 = t5; s3 > 0; s3--) n3 = 1 << s3 - 1, i3 += (e3 & n3 ? 1 : 0) + (r3 & n3 ? 2 : 0);\n return i3;\n }(this.z, this.x, this.y);\n return t4[(this.x + this.y) % t4.length].replace(/{prefix}/g, (this.x % 16).toString(16) + (this.y % 16).toString(16)).replace(/{z}/g, String(this.z)).replace(/{x}/g, String(this.x)).replace(/{y}/g, String(\"tms\" === r2 ? Math.pow(2, this.z) - this.y - 1 : this.y)).replace(/{ratio}/g, e2 > 1 ? \"@2x\" : \"\").replace(/{quadkey}/g, u2).replace(/{bbox-epsg-3857}/g, n2);\n }\n isChildOf(t4) {\n const e2 = this.z - t4.z;\n return e2 > 0 && t4.x === this.x >> e2 && t4.y === this.y >> e2;\n }\n getTilePoint(t4) {\n const e2 = Math.pow(2, this.z);\n return new s((t4.x * e2 - this.x) * $a, (t4.y * e2 - this.y) * $a);\n }\n toString() {\n return `${this.z}/${this.x}/${this.y}`;\n }\n }\n class Oc {\n constructor(t4, e2) {\n this.wrap = t4, this.canonical = e2, this.key = Rc(t4, e2.z, e2.z, e2.x, e2.y);\n }\n }\n class jc {\n constructor(t4, e2, r2, n2, i2) {\n if (t4 < r2) throw new Error(`overscaledZ should be >= z; overscaledZ = ${t4}; z = ${r2}`);\n this.overscaledZ = t4, this.wrap = e2, this.canonical = new Dc(r2, +n2, +i2), this.key = Rc(e2, t4, r2, n2, i2);\n }\n clone() {\n return new jc(this.overscaledZ, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y);\n }\n equals(t4) {\n return this.overscaledZ === t4.overscaledZ && this.wrap === t4.wrap && this.canonical.equals(t4.canonical);\n }\n scaledTo(t4) {\n if (t4 > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t4}; overscaledZ = ${this.overscaledZ}`);\n const e2 = this.canonical.z - t4;\n return t4 > this.canonical.z ? new jc(t4, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y) : new jc(t4, this.wrap, t4, this.canonical.x >> e2, this.canonical.y >> e2);\n }\n calculateScaledKey(t4, e2) {\n if (t4 > this.overscaledZ) throw new Error(`targetZ > this.overscaledZ; targetZ = ${t4}; overscaledZ = ${this.overscaledZ}`);\n const r2 = this.canonical.z - t4;\n return t4 > this.canonical.z ? Rc(this.wrap * +e2, t4, this.canonical.z, this.canonical.x, this.canonical.y) : Rc(this.wrap * +e2, t4, t4, this.canonical.x >> r2, this.canonical.y >> r2);\n }\n isChildOf(t4) {\n if (t4.wrap !== this.wrap) return false;\n const e2 = this.canonical.z - t4.canonical.z;\n return 0 === t4.overscaledZ || t4.overscaledZ < this.overscaledZ && t4.canonical.x === this.canonical.x >> e2 && t4.canonical.y === this.canonical.y >> e2;\n }\n children(t4) {\n if (this.overscaledZ >= t4) return [new jc(this.overscaledZ + 1, this.wrap, this.canonical.z, this.canonical.x, this.canonical.y)];\n const e2 = this.canonical.z + 1, r2 = 2 * this.canonical.x, n2 = 2 * this.canonical.y;\n return [new jc(e2, this.wrap, e2, r2, n2), new jc(e2, this.wrap, e2, r2 + 1, n2), new jc(e2, this.wrap, e2, r2, n2 + 1), new jc(e2, this.wrap, e2, r2 + 1, n2 + 1)];\n }\n isLessThan(t4) {\n return this.wrap < t4.wrap || !(this.wrap > t4.wrap) && (this.overscaledZ < t4.overscaledZ || !(this.overscaledZ > t4.overscaledZ) && (this.canonical.x < t4.canonical.x || !(this.canonical.x > t4.canonical.x) && this.canonical.y < t4.canonical.y));\n }\n wrapped() {\n return new jc(this.overscaledZ, 0, this.canonical.z, this.canonical.x, this.canonical.y);\n }\n unwrapTo(t4) {\n return new jc(this.overscaledZ, t4, this.canonical.z, this.canonical.x, this.canonical.y);\n }\n overscaleFactor() {\n return Math.pow(2, this.overscaledZ - this.canonical.z);\n }\n toUnwrapped() {\n return new Oc(this.wrap, this.canonical);\n }\n toString() {\n return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`;\n }\n getTilePoint(t4) {\n return this.canonical.getTilePoint(new $c(t4.x - this.wrap, t4.y));\n }\n }\n function Rc(t4, e2, r2, n2, i2) {\n (t4 *= 2) < 0 && (t4 = -1 * t4 - 1);\n const s2 = 1 << r2;\n return (s2 * s2 * t4 + s2 * i2 + n2).toString(36) + r2.toString(36) + e2.toString(36);\n }\n wi(\"CanonicalTileID\", Dc), wi(\"OverscaledTileID\", jc, { omit: [\"posMatrix\"] });\n class Uc {\n constructor(t4, e2, r2, n2 = 1, i2 = 1, s2 = 1, a2 = 0) {\n if (this.uid = t4, e2.height !== e2.width) throw new RangeError(\"DEM tiles must be square\");\n if (r2 && ![\"mapbox\", \"terrarium\", \"custom\"].includes(r2)) return void A2(`\"${r2}\" is not a valid encoding type. Valid types include \"mapbox\", \"terrarium\" and \"custom\".`);\n this.stride = e2.height;\n const o2 = this.dim = e2.height - 2;\n switch (this.data = new Uint32Array(e2.data.buffer), r2) {\n case \"terrarium\":\n this.redFactor = 256, this.greenFactor = 1, this.blueFactor = 1 / 256, this.baseShift = 32768;\n break;\n case \"custom\":\n this.redFactor = n2, this.greenFactor = i2, this.blueFactor = s2, this.baseShift = a2;\n break;\n default:\n this.redFactor = 6553.6, this.greenFactor = 25.6, this.blueFactor = 0.1, this.baseShift = 1e4;\n }\n for (let t5 = 0; t5 < o2; t5++) this.data[this._idx(-1, t5)] = this.data[this._idx(0, t5)], this.data[this._idx(o2, t5)] = this.data[this._idx(o2 - 1, t5)], this.data[this._idx(t5, -1)] = this.data[this._idx(t5, 0)], this.data[this._idx(t5, o2)] = this.data[this._idx(t5, o2 - 1)];\n this.data[this._idx(-1, -1)] = this.data[this._idx(0, 0)], this.data[this._idx(o2, -1)] = this.data[this._idx(o2 - 1, 0)], this.data[this._idx(-1, o2)] = this.data[this._idx(0, o2 - 1)], this.data[this._idx(o2, o2)] = this.data[this._idx(o2 - 1, o2 - 1)], this.min = Number.MAX_SAFE_INTEGER, this.max = Number.MIN_SAFE_INTEGER;\n for (let t5 = 0; t5 < o2; t5++) for (let e3 = 0; e3 < o2; e3++) {\n const r3 = this.get(t5, e3);\n r3 > this.max && (this.max = r3), r3 < this.min && (this.min = r3);\n }\n }\n get(t4, e2) {\n const r2 = new Uint8Array(this.data.buffer), n2 = 4 * this._idx(t4, e2);\n return this.unpack(r2[n2], r2[n2 + 1], r2[n2 + 2]);\n }\n getUnpackVector() {\n return [this.redFactor, this.greenFactor, this.blueFactor, this.baseShift];\n }\n _idx(t4, e2) {\n if (t4 < -1 || t4 >= this.dim + 1 || e2 < -1 || e2 >= this.dim + 1) throw new RangeError(\"out of range source coordinates for DEM data\");\n return (e2 + 1) * this.stride + (t4 + 1);\n }\n unpack(t4, e2, r2) {\n return t4 * this.redFactor + e2 * this.greenFactor + r2 * this.blueFactor - this.baseShift;\n }\n getPixels() {\n return new Ao({ width: this.stride, height: this.stride }, new Uint8Array(this.data.buffer));\n }\n backfillBorder(t4, e2, r2) {\n if (this.dim !== t4.dim) throw new Error(\"dem dimension mismatch\");\n let n2 = e2 * this.dim, i2 = e2 * this.dim + this.dim, s2 = r2 * this.dim, a2 = r2 * this.dim + this.dim;\n switch (e2) {\n case -1:\n n2 = i2 - 1;\n break;\n case 1:\n i2 = n2 + 1;\n }\n switch (r2) {\n case -1:\n s2 = a2 - 1;\n break;\n case 1:\n a2 = s2 + 1;\n }\n const o2 = -e2 * this.dim, l2 = -r2 * this.dim;\n for (let e3 = s2; e3 < a2; e3++) for (let r3 = n2; r3 < i2; r3++) this.data[this._idx(r3, e3)] = t4.data[this._idx(r3 + o2, e3 + l2)];\n }\n }\n wi(\"DEMData\", Uc);\n class qc {\n constructor(t4) {\n this._stringToNumber = {}, this._numberToString = [];\n for (let e2 = 0; e2 < t4.length; e2++) {\n const r2 = t4[e2];\n this._stringToNumber[r2] = e2, this._numberToString[e2] = r2;\n }\n }\n encode(t4) {\n return this._stringToNumber[t4];\n }\n decode(t4) {\n if (t4 >= this._numberToString.length) throw new Error(`Out of bounds. Index requested n=${t4} can't be >= this._numberToString.length ${this._numberToString.length}`);\n return this._numberToString[t4];\n }\n }\n class Nc {\n constructor(t4, e2, r2, n2, i2) {\n this.type = \"Feature\", this._vectorTileFeature = t4, t4._z = e2, t4._x = r2, t4._y = n2, this.properties = t4.properties, this.id = i2;\n }\n get geometry() {\n return void 0 === this._geometry && (this._geometry = this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x, this._vectorTileFeature._y, this._vectorTileFeature._z).geometry), this._geometry;\n }\n set geometry(t4) {\n this._geometry = t4;\n }\n toJSON() {\n const t4 = { geometry: this.geometry };\n for (const e2 in this) \"_geometry\" !== e2 && \"_vectorTileFeature\" !== e2 && (t4[e2] = this[e2]);\n return t4;\n }\n }\n class Zc {\n constructor(t4, e2) {\n this.tileID = t4, this.x = t4.canonical.x, this.y = t4.canonical.y, this.z = t4.canonical.z, this.grid = new vi($a, 16, 0), this.grid3D = new vi($a, 16, 0), this.featureIndexArray = new Ns(), this.promoteId = e2;\n }\n insert(t4, e2, r2, n2, i2, s2) {\n const a2 = this.featureIndexArray.length;\n this.featureIndexArray.emplaceBack(r2, n2, i2);\n const o2 = s2 ? this.grid3D : this.grid;\n for (let t5 = 0; t5 < e2.length; t5++) {\n const r3 = e2[t5], n3 = [1 / 0, 1 / 0, -1 / 0, -1 / 0];\n for (let t6 = 0; t6 < r3.length; t6++) {\n const e3 = r3[t6];\n n3[0] = Math.min(n3[0], e3.x), n3[1] = Math.min(n3[1], e3.y), n3[2] = Math.max(n3[2], e3.x), n3[3] = Math.max(n3[3], e3.y);\n }\n n3[0] < $a && n3[1] < $a && n3[2] >= 0 && n3[3] >= 0 && o2.insert(a2, n3[0], n3[1], n3[2], n3[3]);\n }\n }\n loadVTLayers() {\n return this.vtLayers || (this.vtLayers = new fl.VectorTile(new Iu(this.rawTileData)).layers, this.sourceLayerCoder = new qc(this.vtLayers ? Object.keys(this.vtLayers).sort() : [\"_geojsonTileLayer\"])), this.vtLayers;\n }\n query(t4, e2, r2, n2) {\n this.loadVTLayers();\n const i2 = t4.params || {}, a2 = $a / t4.tileSize / t4.scale, o2 = zn(i2.filter), l2 = t4.queryGeometry, u2 = t4.queryPadding * a2, c2 = Kc(l2), h2 = this.grid.query(c2.minX - u2, c2.minY - u2, c2.maxX + u2, c2.maxY + u2), p2 = Kc(t4.cameraQueryGeometry), f2 = this.grid3D.query(p2.minX - u2, p2.minY - u2, p2.maxX + u2, p2.maxY + u2, (e3, r3, n3, i3) => function(t5, e4, r4, n4, i4) {\n for (const s2 of t5) if (e4 <= s2.x && r4 <= s2.y && n4 >= s2.x && i4 >= s2.y) return true;\n const a3 = [new s(e4, r4), new s(e4, i4), new s(n4, i4), new s(n4, r4)];\n if (t5.length > 2) {\n for (const e5 of a3) if (Wa(t5, e5)) return true;\n }\n for (let e5 = 0; e5 < t5.length - 1; e5++) if (Qa(t5[e5], t5[e5 + 1], a3)) return true;\n return false;\n }(t4.cameraQueryGeometry, e3 - u2, r3 - u2, n3 + u2, i3 + u2));\n for (const t5 of f2) h2.push(t5);\n h2.sort(Xc);\n const d2 = {};\n let y2;\n for (let s2 = 0; s2 < h2.length; s2++) {\n const u3 = h2[s2];\n if (u3 === y2) continue;\n y2 = u3;\n const c3 = this.featureIndexArray.get(u3);\n let p3 = null;\n this.loadMatchingFeature(d2, c3.bucketIndex, c3.sourceLayerIndex, c3.featureIndex, o2, i2.layers, i2.availableImages, e2, r2, n2, (e3, r3, n3) => (p3 || (p3 = Oa(e3)), r3.queryIntersectsFeature(l2, e3, n3, p3, this.z, t4.transform, a2, t4.pixelPosMatrix)));\n }\n return d2;\n }\n loadMatchingFeature(t4, e2, r2, n2, i2, s2, a2, o2, l2, u2, c2) {\n const h2 = this.bucketLayerIDs[e2];\n if (s2 && !function(t5, e3) {\n for (let r3 = 0; r3 < t5.length; r3++) if (e3.indexOf(t5[r3]) >= 0) return true;\n return false;\n }(s2, h2)) return;\n const p2 = this.sourceLayerCoder.decode(r2), f2 = this.vtLayers[p2].feature(n2);\n if (i2.needGeometry) {\n const t5 = ja(f2, true);\n if (!i2.filter(new Ui(this.tileID.overscaledZ), t5, this.tileID.canonical)) return;\n } else if (!i2.filter(new Ui(this.tileID.overscaledZ), f2)) return;\n const d2 = this.getId(f2, p2);\n for (let e3 = 0; e3 < h2.length; e3++) {\n const r3 = h2[e3];\n if (s2 && s2.indexOf(r3) < 0) continue;\n const i3 = o2[r3];\n if (!i3) continue;\n let p3 = {};\n d2 && u2 && (p3 = u2.getState(i3.sourceLayer || \"_geojsonTileLayer\", d2));\n const y2 = g({}, l2[r3]);\n y2.paint = Gc(y2.paint, i3.paint, f2, p3, a2), y2.layout = Gc(y2.layout, i3.layout, f2, p3, a2);\n const m2 = !c2 || c2(f2, i3, p3);\n if (!m2) continue;\n const x2 = new Nc(f2, this.z, this.x, this.y, d2);\n x2.layer = y2;\n let v2 = t4[r3];\n void 0 === v2 && (v2 = t4[r3] = []), v2.push({ featureIndex: n2, feature: x2, intersectionZ: m2 });\n }\n }\n lookupSymbolFeatures(t4, e2, r2, n2, i2, s2, a2, o2) {\n const l2 = {};\n this.loadVTLayers();\n const u2 = zn(i2);\n for (const i3 of t4) this.loadMatchingFeature(l2, r2, n2, i3, u2, s2, a2, o2, e2);\n return l2;\n }\n hasLayer(t4) {\n for (const e2 of this.bucketLayerIDs) for (const r2 of e2) if (t4 === r2) return true;\n return false;\n }\n getId(t4, e2) {\n let r2 = t4.id;\n return this.promoteId && (r2 = t4.properties[\"string\" == typeof this.promoteId ? this.promoteId : this.promoteId[e2]], \"boolean\" == typeof r2 && (r2 = Number(r2))), r2;\n }\n }\n function Gc(t4, e2, r2, n2, i2) {\n return v(t4, (t5, s2) => {\n const a2 = e2 instanceof Yi ? e2.get(s2) : null;\n return a2 && a2.evaluate ? a2.evaluate(r2, n2, i2) : a2;\n });\n }\n function Kc(t4) {\n let e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0;\n for (const s2 of t4) e2 = Math.min(e2, s2.x), r2 = Math.min(r2, s2.y), n2 = Math.max(n2, s2.x), i2 = Math.max(i2, s2.y);\n return { minX: e2, minY: r2, maxX: n2, maxY: i2 };\n }\n function Xc(t4, e2) {\n return e2 - t4;\n }\n function Hc(t4, e2, r2, n2, i2) {\n const a2 = [];\n for (let o2 = 0; o2 < t4.length; o2++) {\n const l2 = t4[o2];\n let u2;\n for (let t5 = 0; t5 < l2.length - 1; t5++) {\n let o3 = l2[t5], c2 = l2[t5 + 1];\n o3.x < e2 && c2.x < e2 || (o3.x < e2 ? o3 = new s(e2, o3.y + (e2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round() : c2.x < e2 && (c2 = new s(e2, o3.y + (e2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round()), o3.y < r2 && c2.y < r2 || (o3.y < r2 ? o3 = new s(o3.x + (r2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), r2)._round() : c2.y < r2 && (c2 = new s(o3.x + (r2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), r2)._round()), o3.x >= n2 && c2.x >= n2 || (o3.x >= n2 ? o3 = new s(n2, o3.y + (n2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round() : c2.x >= n2 && (c2 = new s(n2, o3.y + (n2 - o3.x) / (c2.x - o3.x) * (c2.y - o3.y))._round()), o3.y >= i2 && c2.y >= i2 || (o3.y >= i2 ? o3 = new s(o3.x + (i2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), i2)._round() : c2.y >= i2 && (c2 = new s(o3.x + (i2 - o3.y) / (c2.y - o3.y) * (c2.x - o3.x), i2)._round()), u2 && o3.equals(u2[u2.length - 1]) || (u2 = [o3], a2.push(u2)), u2.push(c2)))));\n }\n }\n return a2;\n }\n wi(\"FeatureIndex\", Zc, { omit: [\"rawTileData\", \"sourceLayerCoder\"] });\n class Yc extends s {\n constructor(t4, e2, r2, n2) {\n super(t4, e2), this.angle = r2, void 0 !== n2 && (this.segment = n2);\n }\n clone() {\n return new Yc(this.x, this.y, this.angle, this.segment);\n }\n }\n function Jc(t4, e2, r2, n2, i2) {\n if (void 0 === e2.segment || 0 === r2) return true;\n let s2 = e2, a2 = e2.segment + 1, o2 = 0;\n for (; o2 > -r2 / 2; ) {\n if (a2--, a2 < 0) return false;\n o2 -= t4[a2].dist(s2), s2 = t4[a2];\n }\n o2 += t4[a2].dist(t4[a2 + 1]), a2++;\n const l2 = [];\n let u2 = 0;\n for (; o2 < r2 / 2; ) {\n const e3 = t4[a2], r3 = t4[a2 + 1];\n if (!r3) return false;\n let s3 = t4[a2 - 1].angleTo(e3) - e3.angleTo(r3);\n for (s3 = Math.abs((s3 + 3 * Math.PI) % (2 * Math.PI) - Math.PI), l2.push({ distance: o2, angleDelta: s3 }), u2 += s3; o2 - l2[0].distance > n2; ) u2 -= l2.shift().angleDelta;\n if (u2 > i2) return false;\n a2++, o2 += e3.dist(r3);\n }\n return true;\n }\n function Wc(t4) {\n let e2 = 0;\n for (let r2 = 0; r2 < t4.length - 1; r2++) e2 += t4[r2].dist(t4[r2 + 1]);\n return e2;\n }\n function Qc(t4, e2, r2) {\n return t4 ? 0.6 * e2 * r2 : 0;\n }\n function th(t4, e2) {\n return Math.max(t4 ? t4.right - t4.left : 0, e2 ? e2.right - e2.left : 0);\n }\n function eh(t4, e2, r2, n2, i2, s2) {\n const a2 = Qc(r2, i2, s2), o2 = th(r2, n2) * s2;\n let l2 = 0;\n const u2 = Wc(t4) / 2;\n for (let r3 = 0; r3 < t4.length - 1; r3++) {\n const n3 = t4[r3], i3 = t4[r3 + 1], s3 = n3.dist(i3);\n if (l2 + s3 > u2) {\n const c2 = (u2 - l2) / s3, h2 = Ce.number(n3.x, i3.x, c2), p2 = Ce.number(n3.y, i3.y, c2), f2 = new Yc(h2, p2, i3.angleTo(n3), r3);\n return f2._round(), !a2 || Jc(t4, f2, o2, a2, e2) ? f2 : void 0;\n }\n l2 += s3;\n }\n }\n function rh(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = Qc(n2, s2, a2), c2 = th(n2, i2), h2 = c2 * a2, p2 = 0 === t4[0].x || t4[0].x === l2 || 0 === t4[0].y || t4[0].y === l2;\n return e2 - h2 < e2 / 4 && (e2 = h2 + e2 / 4), nh(t4, p2 ? e2 / 2 * o2 % e2 : (c2 / 2 + 2 * s2) * a2 * o2 % e2, e2, u2, r2, h2, p2, false, l2);\n }\n function nh(t4, e2, r2, n2, i2, s2, a2, o2, l2) {\n const u2 = s2 / 2, c2 = Wc(t4);\n let h2 = 0, p2 = e2 - r2, f2 = [];\n for (let e3 = 0; e3 < t4.length - 1; e3++) {\n const a3 = t4[e3], o3 = t4[e3 + 1], d2 = a3.dist(o3), y2 = o3.angleTo(a3);\n for (; p2 + r2 < h2 + d2; ) {\n p2 += r2;\n const m2 = (p2 - h2) / d2, g2 = Ce.number(a3.x, o3.x, m2), x2 = Ce.number(a3.y, o3.y, m2);\n if (g2 >= 0 && g2 < l2 && x2 >= 0 && x2 < l2 && p2 - u2 >= 0 && p2 + u2 <= c2) {\n const r3 = new Yc(g2, x2, y2, e3);\n r3._round(), n2 && !Jc(t4, r3, s2, n2, i2) || f2.push(r3);\n }\n }\n h2 += d2;\n }\n return o2 || f2.length || a2 || (f2 = nh(t4, h2 / 2, r2, n2, i2, s2, a2, true, l2)), f2;\n }\n wi(\"Anchor\", Yc);\n const ih = Fu;\n function sh(t4, e2, r2, n2) {\n const i2 = [], a2 = t4.image, o2 = a2.pixelRatio, l2 = a2.paddedRect.w - 2 * ih, u2 = a2.paddedRect.h - 2 * ih;\n let c2 = { x1: t4.left, y1: t4.top, x2: t4.right, y2: t4.bottom };\n const h2 = a2.stretchX || [[0, l2]], p2 = a2.stretchY || [[0, u2]], f2 = (t5, e3) => t5 + e3[1] - e3[0], d2 = h2.reduce(f2, 0), y2 = p2.reduce(f2, 0), m2 = l2 - d2, g2 = u2 - y2;\n let x2 = 0, v2 = d2, b2 = 0, w2 = y2, _2 = 0, A3 = m2, S2 = 0, k2 = g2;\n if (a2.content && n2) {\n const e3 = a2.content, r3 = e3[2] - e3[0], n3 = e3[3] - e3[1];\n (a2.textFitWidth || a2.textFitHeight) && (c2 = tc(t4)), x2 = ah(h2, 0, e3[0]), b2 = ah(p2, 0, e3[1]), v2 = ah(h2, e3[0], e3[2]), w2 = ah(p2, e3[1], e3[3]), _2 = e3[0] - x2, S2 = e3[1] - b2, A3 = r3 - v2, k2 = n3 - w2;\n }\n const M2 = c2.x1, I2 = c2.y1, z2 = c2.x2 - M2, P2 = c2.y2 - I2, C3 = (t5, n3, i3, l3) => {\n const u3 = lh(t5.stretch - x2, v2, z2, M2), c3 = uh(t5.fixed - _2, A3, t5.stretch, d2), h3 = lh(n3.stretch - b2, w2, P2, I2), p3 = uh(n3.fixed - S2, k2, n3.stretch, y2), f3 = lh(i3.stretch - x2, v2, z2, M2), m3 = uh(i3.fixed - _2, A3, i3.stretch, d2), g3 = lh(l3.stretch - b2, w2, P2, I2), C4 = uh(l3.fixed - S2, k2, l3.stretch, y2), B3 = new s(u3, h3), V2 = new s(f3, h3), E3 = new s(f3, g3), F2 = new s(u3, g3), T2 = new s(c3 / o2, p3 / o2), $2 = new s(m3 / o2, C4 / o2), L2 = e2 * Math.PI / 180;\n if (L2) {\n const t6 = Math.sin(L2), e3 = Math.cos(L2), r3 = [e3, -t6, t6, e3];\n B3._matMult(r3), V2._matMult(r3), F2._matMult(r3), E3._matMult(r3);\n }\n const D3 = t5.stretch + t5.fixed, O2 = n3.stretch + n3.fixed;\n return { tl: B3, tr: V2, bl: F2, br: E3, tex: { x: a2.paddedRect.x + ih + D3, y: a2.paddedRect.y + ih + O2, w: i3.stretch + i3.fixed - D3, h: l3.stretch + l3.fixed - O2 }, writingMode: void 0, glyphOffset: [0, 0], sectionIndex: 0, pixelOffsetTL: T2, pixelOffsetBR: $2, minFontScaleX: A3 / o2 / z2, minFontScaleY: k2 / o2 / P2, isSDF: r2 };\n };\n if (n2 && (a2.stretchX || a2.stretchY)) {\n const t5 = oh(h2, m2, d2), e3 = oh(p2, g2, y2);\n for (let r3 = 0; r3 < t5.length - 1; r3++) {\n const n3 = t5[r3], s2 = t5[r3 + 1];\n for (let t6 = 0; t6 < e3.length - 1; t6++) i2.push(C3(n3, e3[t6], s2, e3[t6 + 1]));\n }\n } else i2.push(C3({ fixed: 0, stretch: -1 }, { fixed: 0, stretch: -1 }, { fixed: 0, stretch: l2 + 1 }, { fixed: 0, stretch: u2 + 1 }));\n return i2;\n }\n function ah(t4, e2, r2) {\n let n2 = 0;\n for (const i2 of t4) n2 += Math.max(e2, Math.min(r2, i2[1])) - Math.max(e2, Math.min(r2, i2[0]));\n return n2;\n }\n function oh(t4, e2, r2) {\n const n2 = [{ fixed: -ih, stretch: 0 }];\n for (const [e3, r3] of t4) {\n const t5 = n2[n2.length - 1];\n n2.push({ fixed: e3 - t5.stretch, stretch: t5.stretch }), n2.push({ fixed: e3 - t5.stretch, stretch: t5.stretch + (r3 - e3) });\n }\n return n2.push({ fixed: e2 + ih, stretch: r2 }), n2;\n }\n function lh(t4, e2, r2, n2) {\n return t4 / e2 * r2 + n2;\n }\n function uh(t4, e2, r2, n2) {\n return t4 - e2 * r2 / n2;\n }\n class ch {\n constructor(t4, e2, r2, n2, i2, a2, o2, l2, u2, c2) {\n var h2;\n if (this.boxStartIndex = t4.length, u2) {\n let t5 = a2.top, e3 = a2.bottom;\n const r3 = a2.collisionPadding;\n r3 && (t5 -= r3[1], e3 += r3[3]);\n let n3 = e3 - t5;\n n3 > 0 && (n3 = Math.max(10, n3), this.circleDiameter = n3);\n } else {\n const u3 = (null === (h2 = a2.image) || void 0 === h2 ? void 0 : h2.content) && (a2.image.textFitWidth || a2.image.textFitHeight) ? tc(a2) : { x1: a2.left, y1: a2.top, x2: a2.right, y2: a2.bottom };\n u3.y1 = u3.y1 * o2 - l2[0], u3.y2 = u3.y2 * o2 + l2[2], u3.x1 = u3.x1 * o2 - l2[3], u3.x2 = u3.x2 * o2 + l2[1];\n const p2 = a2.collisionPadding;\n if (p2 && (u3.x1 -= p2[0] * o2, u3.y1 -= p2[1] * o2, u3.x2 += p2[2] * o2, u3.y2 += p2[3] * o2), c2) {\n const t5 = new s(u3.x1, u3.y1), e3 = new s(u3.x2, u3.y1), r3 = new s(u3.x1, u3.y2), n3 = new s(u3.x2, u3.y2), i3 = c2 * Math.PI / 180;\n t5._rotate(i3), e3._rotate(i3), r3._rotate(i3), n3._rotate(i3), u3.x1 = Math.min(t5.x, e3.x, r3.x, n3.x), u3.x2 = Math.max(t5.x, e3.x, r3.x, n3.x), u3.y1 = Math.min(t5.y, e3.y, r3.y, n3.y), u3.y2 = Math.max(t5.y, e3.y, r3.y, n3.y);\n }\n t4.emplaceBack(e2.x, e2.y, u3.x1, u3.y1, u3.x2, u3.y2, r2, n2, i2);\n }\n this.boxEndIndex = t4.length;\n }\n }\n class hh {\n constructor(t4 = [], e2 = (t5, e3) => t5 < e3 ? -1 : t5 > e3 ? 1 : 0) {\n if (this.data = t4, this.length = this.data.length, this.compare = e2, this.length > 0) for (let t5 = (this.length >> 1) - 1; t5 >= 0; t5--) this._down(t5);\n }\n push(t4) {\n this.data.push(t4), this._up(this.length++);\n }\n pop() {\n if (0 === this.length) return;\n const t4 = this.data[0], e2 = this.data.pop();\n return --this.length > 0 && (this.data[0] = e2, this._down(0)), t4;\n }\n peek() {\n return this.data[0];\n }\n _up(t4) {\n const { data: e2, compare: r2 } = this, n2 = e2[t4];\n for (; t4 > 0; ) {\n const i2 = t4 - 1 >> 1, s2 = e2[i2];\n if (r2(n2, s2) >= 0) break;\n e2[t4] = s2, t4 = i2;\n }\n e2[t4] = n2;\n }\n _down(t4) {\n const { data: e2, compare: r2 } = this, n2 = this.length >> 1, i2 = e2[t4];\n for (; t4 < n2; ) {\n let n3 = 1 + (t4 << 1);\n const s2 = n3 + 1;\n if (s2 < this.length && r2(e2[s2], e2[n3]) < 0 && (n3 = s2), r2(e2[n3], i2) >= 0) break;\n e2[t4] = e2[n3], t4 = n3;\n }\n e2[t4] = i2;\n }\n }\n function ph(t4, e2 = 1, r2 = false) {\n let n2 = 1 / 0, i2 = 1 / 0, a2 = -1 / 0, o2 = -1 / 0;\n const l2 = t4[0];\n for (let t5 = 0; t5 < l2.length; t5++) {\n const e3 = l2[t5];\n (!t5 || e3.x < n2) && (n2 = e3.x), (!t5 || e3.y < i2) && (i2 = e3.y), (!t5 || e3.x > a2) && (a2 = e3.x), (!t5 || e3.y > o2) && (o2 = e3.y);\n }\n const u2 = Math.min(a2 - n2, o2 - i2);\n let c2 = u2 / 2;\n const h2 = new hh([], fh);\n if (0 === u2) return new s(n2, i2);\n for (let e3 = n2; e3 < a2; e3 += u2) for (let r3 = i2; r3 < o2; r3 += u2) h2.push(new dh(e3 + c2, r3 + c2, c2, t4));\n let p2 = function(t5) {\n let e3 = 0, r3 = 0, n3 = 0;\n const i3 = t5[0];\n for (let t6 = 0, s2 = i3.length, a3 = s2 - 1; t6 < s2; a3 = t6++) {\n const s3 = i3[t6], o3 = i3[a3], l3 = s3.x * o3.y - o3.x * s3.y;\n r3 += (s3.x + o3.x) * l3, n3 += (s3.y + o3.y) * l3, e3 += 3 * l3;\n }\n return new dh(r3 / e3, n3 / e3, 0, t5);\n }(t4), f2 = h2.length;\n for (; h2.length; ) {\n const n3 = h2.pop();\n (n3.d > p2.d || !p2.d) && (p2 = n3, r2 && console.log(\"found best %d after %d probes\", Math.round(1e4 * n3.d) / 1e4, f2)), n3.max - p2.d <= e2 || (c2 = n3.h / 2, h2.push(new dh(n3.p.x - c2, n3.p.y - c2, c2, t4)), h2.push(new dh(n3.p.x + c2, n3.p.y - c2, c2, t4)), h2.push(new dh(n3.p.x - c2, n3.p.y + c2, c2, t4)), h2.push(new dh(n3.p.x + c2, n3.p.y + c2, c2, t4)), f2 += 4);\n }\n return r2 && (console.log(`num probes: ${f2}`), console.log(`best distance: ${p2.d}`)), p2.p;\n }\n function fh(t4, e2) {\n return e2.max - t4.max;\n }\n function dh(t4, e2, r2, n2) {\n this.p = new s(t4, e2), this.h = r2, this.d = function(t5, e3) {\n let r3 = false, n3 = 1 / 0;\n for (let i2 = 0; i2 < e3.length; i2++) {\n const s2 = e3[i2];\n for (let e4 = 0, i3 = s2.length, a2 = i3 - 1; e4 < i3; a2 = e4++) {\n const i4 = s2[e4], o2 = s2[a2];\n i4.y > t5.y != o2.y > t5.y && t5.x < (o2.x - i4.x) * (t5.y - i4.y) / (o2.y - i4.y) + i4.x && (r3 = !r3), n3 = Math.min(n3, Ya(t5, i4, o2));\n }\n }\n return (r3 ? 1 : -1) * Math.sqrt(n3);\n }(this.p, n2), this.max = this.d + this.h * Math.SQRT2;\n }\n var yh;\n t.aq = void 0, (yh = t.aq || (t.aq = {}))[yh.center = 1] = \"center\", yh[yh.left = 2] = \"left\", yh[yh.right = 3] = \"right\", yh[yh.top = 4] = \"top\", yh[yh.bottom = 5] = \"bottom\", yh[yh[\"top-left\"] = 6] = \"top-left\", yh[yh[\"top-right\"] = 7] = \"top-right\", yh[yh[\"bottom-left\"] = 8] = \"bottom-left\", yh[yh[\"bottom-right\"] = 9] = \"bottom-right\";\n const mh = 7, gh = Number.POSITIVE_INFINITY;\n function xh(t4, e2) {\n return e2[1] !== gh ? function(t5, e3, r2) {\n let n2 = 0, i2 = 0;\n switch (e3 = Math.abs(e3), r2 = Math.abs(r2), t5) {\n case \"top-right\":\n case \"top-left\":\n case \"top\":\n i2 = r2 - mh;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n case \"bottom\":\n i2 = -r2 + mh;\n }\n switch (t5) {\n case \"top-right\":\n case \"bottom-right\":\n case \"right\":\n n2 = -e3;\n break;\n case \"top-left\":\n case \"bottom-left\":\n case \"left\":\n n2 = e3;\n }\n return [n2, i2];\n }(t4, e2[0], e2[1]) : function(t5, e3) {\n let r2 = 0, n2 = 0;\n e3 < 0 && (e3 = 0);\n const i2 = e3 / Math.SQRT2;\n switch (t5) {\n case \"top-right\":\n case \"top-left\":\n n2 = i2 - mh;\n break;\n case \"bottom-right\":\n case \"bottom-left\":\n n2 = -i2 + mh;\n break;\n case \"bottom\":\n n2 = -e3 + mh;\n break;\n case \"top\":\n n2 = e3 - mh;\n }\n switch (t5) {\n case \"top-right\":\n case \"bottom-right\":\n r2 = -i2;\n break;\n case \"top-left\":\n case \"bottom-left\":\n r2 = i2;\n break;\n case \"left\":\n r2 = e3;\n break;\n case \"right\":\n r2 = -e3;\n }\n return [r2, n2];\n }(t4, e2[0]);\n }\n function vh(t4, e2, r2) {\n var n2;\n const i2 = t4.layout, s2 = null === (n2 = i2.get(\"text-variable-anchor-offset\")) || void 0 === n2 ? void 0 : n2.evaluate(e2, {}, r2);\n if (s2) {\n const t5 = s2.values, e3 = [];\n for (let r3 = 0; r3 < t5.length; r3 += 2) {\n const n3 = e3[r3] = t5[r3], i3 = t5[r3 + 1].map((t6) => t6 * iu);\n n3.startsWith(\"top\") ? i3[1] -= mh : n3.startsWith(\"bottom\") && (i3[1] += mh), e3[r3 + 1] = i3;\n }\n return new Qt(e3);\n }\n const a2 = i2.get(\"text-variable-anchor\");\n if (a2) {\n let n3;\n n3 = void 0 !== t4._unevaluatedLayout.getValue(\"text-radial-offset\") ? [i2.get(\"text-radial-offset\").evaluate(e2, {}, r2) * iu, gh] : i2.get(\"text-offset\").evaluate(e2, {}, r2).map((t5) => t5 * iu);\n const s3 = [];\n for (const t5 of a2) s3.push(t5, xh(t5, n3));\n return new Qt(s3);\n }\n return null;\n }\n function bh(t4) {\n switch (t4) {\n case \"right\":\n case \"top-right\":\n case \"bottom-right\":\n return \"right\";\n case \"left\":\n case \"top-left\":\n case \"bottom-left\":\n return \"left\";\n }\n return \"center\";\n }\n function wh(e2, r2, n2, i2, s2, a2, o2, l2, u2, c2, h2) {\n let p2 = a2.textMaxSize.evaluate(r2, {});\n void 0 === p2 && (p2 = o2);\n const f2 = e2.layers[0].layout, d2 = f2.get(\"icon-offset\").evaluate(r2, {}, h2), y2 = Ah(n2.horizontal), m2 = o2 / 24, g2 = e2.tilePixelRatio * m2, x2 = e2.tilePixelRatio * p2 / 24, v2 = e2.tilePixelRatio * l2, b2 = e2.tilePixelRatio * f2.get(\"symbol-spacing\"), w2 = f2.get(\"text-padding\") * e2.tilePixelRatio, _2 = function(t4, e3, r3, n3 = 1) {\n const i3 = t4.get(\"icon-padding\").evaluate(e3, {}, r3), s3 = i3 && i3.values;\n return [s3[0] * n3, s3[1] * n3, s3[2] * n3, s3[3] * n3];\n }(f2, r2, h2, e2.tilePixelRatio), S2 = f2.get(\"text-max-angle\") / 180 * Math.PI, k2 = \"viewport\" !== f2.get(\"text-rotation-alignment\") && \"point\" !== f2.get(\"symbol-placement\"), M2 = \"map\" === f2.get(\"icon-rotation-alignment\") && \"point\" !== f2.get(\"symbol-placement\"), I2 = f2.get(\"symbol-placement\"), z2 = b2 / 2, P2 = f2.get(\"icon-text-fit\");\n let C3;\n i2 && \"none\" !== P2 && (e2.allowVerticalPlacement && n2.vertical && (C3 = ec(i2, n2.vertical, P2, f2.get(\"icon-text-fit-padding\"), d2, m2)), y2 && (i2 = ec(i2, y2, P2, f2.get(\"icon-text-fit-padding\"), d2, m2)));\n const B3 = (l3, p3) => {\n p3.x < 0 || p3.x >= $a || p3.y < 0 || p3.y >= $a || function(e3, r3, n3, i3, s3, a3, o3, l4, u3, c3, h3, p4, f3, d3, y3, m3, g3, x3, v3, b3, w3, _3, S3, k3, M3) {\n const I3 = e3.addToLineVertexArray(r3, n3);\n let z3, P3, C4, B4, V2 = 0, E3 = 0, F2 = 0, T2 = 0, $2 = -1, L2 = -1;\n const D3 = {};\n let O2 = ma(\"\");\n if (e3.allowVerticalPlacement && i3.vertical) {\n const t4 = l4.layout.get(\"text-rotate\").evaluate(w3, {}, k3) + 90;\n C4 = new ch(u3, r3, c3, h3, p4, i3.vertical, f3, d3, y3, t4), o3 && (B4 = new ch(u3, r3, c3, h3, p4, o3, g3, x3, y3, t4));\n }\n if (s3) {\n const n4 = l4.layout.get(\"icon-rotate\").evaluate(w3, {}), i4 = \"none\" !== l4.layout.get(\"icon-text-fit\"), a4 = sh(s3, n4, S3, i4), f4 = o3 ? sh(o3, n4, S3, i4) : void 0;\n P3 = new ch(u3, r3, c3, h3, p4, s3, g3, x3, false, n4), V2 = 4 * a4.length;\n const d4 = e3.iconSizeData;\n let y4 = null;\n \"source\" === d4.kind ? (y4 = [nc * l4.layout.get(\"icon-size\").evaluate(w3, {})], y4[0] > ic && A2(`${e3.layerIds[0]}: Value for \"icon-size\" is >= ${rc}. Reduce your \"icon-size\".`)) : \"composite\" === d4.kind && (y4 = [nc * _3.compositeIconSizes[0].evaluate(w3, {}, k3), nc * _3.compositeIconSizes[1].evaluate(w3, {}, k3)], (y4[0] > ic || y4[1] > ic) && A2(`${e3.layerIds[0]}: Value for \"icon-size\" is >= ${rc}. Reduce your \"icon-size\".`)), e3.addSymbols(e3.icon, a4, y4, b3, v3, w3, t.ah.none, r3, I3.lineStartIndex, I3.lineLength, -1, k3), $2 = e3.icon.placedSymbolArray.length - 1, f4 && (E3 = 4 * f4.length, e3.addSymbols(e3.icon, f4, y4, b3, v3, w3, t.ah.vertical, r3, I3.lineStartIndex, I3.lineLength, -1, k3), L2 = e3.icon.placedSymbolArray.length - 1);\n }\n const j2 = Object.keys(i3.horizontal);\n for (const n4 of j2) {\n const s4 = i3.horizontal[n4];\n if (!z3) {\n O2 = ma(s4.text);\n const t4 = l4.layout.get(\"text-rotate\").evaluate(w3, {}, k3);\n z3 = new ch(u3, r3, c3, h3, p4, s4, f3, d3, y3, t4);\n }\n const o4 = 1 === s4.positionedLines.length;\n if (F2 += _h(e3, r3, s4, a3, l4, y3, w3, m3, I3, i3.vertical ? t.ah.horizontal : t.ah.horizontalOnly, o4 ? j2 : [n4], D3, $2, _3, k3), o4) break;\n }\n i3.vertical && (T2 += _h(e3, r3, i3.vertical, a3, l4, y3, w3, m3, I3, t.ah.vertical, [\"vertical\"], D3, L2, _3, k3));\n const R2 = z3 ? z3.boxStartIndex : e3.collisionBoxArray.length, U2 = z3 ? z3.boxEndIndex : e3.collisionBoxArray.length, q2 = C4 ? C4.boxStartIndex : e3.collisionBoxArray.length, N2 = C4 ? C4.boxEndIndex : e3.collisionBoxArray.length, Z2 = P3 ? P3.boxStartIndex : e3.collisionBoxArray.length, G2 = P3 ? P3.boxEndIndex : e3.collisionBoxArray.length, K3 = B4 ? B4.boxStartIndex : e3.collisionBoxArray.length, X2 = B4 ? B4.boxEndIndex : e3.collisionBoxArray.length;\n let H2 = -1;\n const Y2 = (t4, e4) => t4 && t4.circleDiameter ? Math.max(t4.circleDiameter, e4) : e4;\n H2 = Y2(z3, H2), H2 = Y2(C4, H2), H2 = Y2(P3, H2), H2 = Y2(B4, H2);\n const J2 = H2 > -1 ? 1 : 0;\n J2 && (H2 *= M3 / iu), e3.glyphOffsetArray.length >= dc.MAX_GLYPHS && A2(\"Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907\"), void 0 !== w3.sortKey && e3.addToSortKeyRanges(e3.symbolInstances.length, w3.sortKey);\n const W2 = vh(l4, w3, k3), [Q2, tt2] = function(e4, r4) {\n const n4 = e4.length, i4 = null == r4 ? void 0 : r4.values;\n if ((null == i4 ? void 0 : i4.length) > 0) for (let r5 = 0; r5 < i4.length; r5 += 2) {\n const n5 = i4[r5 + 1];\n e4.emplaceBack(t.aq[i4[r5]], n5[0], n5[1]);\n }\n return [n4, e4.length];\n }(e3.textAnchorOffsets, W2);\n e3.symbolInstances.emplaceBack(r3.x, r3.y, D3.right >= 0 ? D3.right : -1, D3.center >= 0 ? D3.center : -1, D3.left >= 0 ? D3.left : -1, D3.vertical || -1, $2, L2, O2, R2, U2, q2, N2, Z2, G2, K3, X2, c3, F2, T2, V2, E3, J2, 0, f3, H2, Q2, tt2);\n }(e2, p3, l3, n2, i2, s2, C3, e2.layers[0], e2.collisionBoxArray, r2.index, r2.sourceLayerIndex, e2.index, g2, [w2, w2, w2, w2], k2, u2, v2, _2, M2, d2, r2, a2, c2, h2, o2);\n };\n if (\"line\" === I2) for (const t4 of Hc(r2.geometry, 0, 0, $a, $a)) {\n const r3 = rh(t4, b2, S2, n2.vertical || y2, i2, 24, x2, e2.overscaling, $a);\n for (const n3 of r3) y2 && Sh(e2, y2.text, z2, n3) || B3(t4, n3);\n }\n else if (\"line-center\" === I2) {\n for (const t4 of r2.geometry) if (t4.length > 1) {\n const e3 = eh(t4, S2, n2.vertical || y2, i2, 24, x2);\n e3 && B3(t4, e3);\n }\n } else if (\"Polygon\" === r2.type) for (const t4 of xr(r2.geometry, 0)) {\n const e3 = ph(t4, 16);\n B3(t4[0], new Yc(e3.x, e3.y, 0));\n }\n else if (\"LineString\" === r2.type) for (const t4 of r2.geometry) B3(t4, new Yc(t4[0].x, t4[0].y, 0));\n else if (\"Point\" === r2.type) for (const t4 of r2.geometry) for (const e3 of t4) B3([e3], new Yc(e3.x, e3.y, 0));\n }\n function _h(t4, e2, r2, n2, i2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2) {\n const m2 = function(t5, e3, r3, n3, i3, a3, o3, l3) {\n const u3 = n3.layout.get(\"text-rotate\").evaluate(a3, {}) * Math.PI / 180, c3 = [];\n for (const t6 of e3.positionedLines) for (const n4 of t6.positionedGlyphs) {\n if (!n4.rect) continue;\n const a4 = n4.rect || {};\n let h3 = Vu + 1, p3 = true, f3 = 1, d3 = 0;\n const y3 = (i3 || l3) && n4.vertical, m3 = n4.metrics.advance * n4.scale / 2;\n if (l3 && e3.verticalizable && (d3 = t6.lineOffset / 2 - (n4.imageName ? -(iu - n4.metrics.width * n4.scale) / 2 : (n4.scale - 1) * iu)), n4.imageName) {\n const t7 = o3[n4.imageName];\n p3 = t7.sdf, f3 = t7.pixelRatio, h3 = Fu / f3;\n }\n const g3 = i3 ? [n4.x + m3, n4.y] : [0, 0];\n let x3 = i3 ? [0, 0] : [n4.x + m3 + r3[0], n4.y + r3[1] - d3], v2 = [0, 0];\n y3 && (v2 = x3, x3 = [0, 0]);\n const b2 = n4.metrics.isDoubleResolution ? 2 : 1, w2 = (n4.metrics.left - h3) * n4.scale - m3 + x3[0], _2 = (-n4.metrics.top - h3) * n4.scale + x3[1], A3 = w2 + a4.w / b2 * n4.scale / f3, S2 = _2 + a4.h / b2 * n4.scale / f3, k2 = new s(w2, _2), M2 = new s(A3, _2), I2 = new s(w2, S2), z2 = new s(A3, S2);\n if (y3) {\n const t7 = new s(-m3, m3 - Du), e4 = -Math.PI / 2, r4 = iu / 2 - m3, i4 = new s(5 - Du - r4, -(n4.imageName ? r4 : 0)), a5 = new s(...v2);\n k2._rotateAround(e4, t7)._add(i4)._add(a5), M2._rotateAround(e4, t7)._add(i4)._add(a5), I2._rotateAround(e4, t7)._add(i4)._add(a5), z2._rotateAround(e4, t7)._add(i4)._add(a5);\n }\n if (u3) {\n const t7 = Math.sin(u3), e4 = Math.cos(u3), r4 = [e4, -t7, t7, e4];\n k2._matMult(r4), M2._matMult(r4), I2._matMult(r4), z2._matMult(r4);\n }\n const P2 = new s(0, 0), C3 = new s(0, 0);\n c3.push({ tl: k2, tr: M2, bl: I2, br: z2, tex: a4, writingMode: e3.writingMode, glyphOffset: g3, sectionIndex: n4.sectionIndex, isSDF: p3, pixelOffsetTL: P2, pixelOffsetBR: C3, minFontScaleX: 0, minFontScaleY: 0 });\n }\n return c3;\n }(0, r2, l2, i2, a2, o2, n2, t4.allowVerticalPlacement), g2 = t4.textSizeData;\n let x2 = null;\n \"source\" === g2.kind ? (x2 = [nc * i2.layout.get(\"text-size\").evaluate(o2, {})], x2[0] > ic && A2(`${t4.layerIds[0]}: Value for \"text-size\" is >= ${rc}. Reduce your \"text-size\".`)) : \"composite\" === g2.kind && (x2 = [nc * d2.compositeTextSizes[0].evaluate(o2, {}, y2), nc * d2.compositeTextSizes[1].evaluate(o2, {}, y2)], (x2[0] > ic || x2[1] > ic) && A2(`${t4.layerIds[0]}: Value for \"text-size\" is >= ${rc}. Reduce your \"text-size\".`)), t4.addSymbols(t4.text, m2, x2, l2, a2, o2, c2, e2, u2.lineStartIndex, u2.lineLength, f2, y2);\n for (const e3 of h2) p2[e3] = t4.text.placedSymbolArray.length - 1;\n return 4 * m2.length;\n }\n function Ah(t4) {\n for (const e2 in t4) return t4[e2];\n return null;\n }\n function Sh(t4, e2, r2, n2) {\n const i2 = t4.compareText;\n if (e2 in i2) {\n const t5 = i2[e2];\n for (let e3 = t5.length - 1; e3 >= 0; e3--) if (n2.dist(t5[e3]) < r2) return true;\n } else i2[e2] = [];\n return i2[e2].push(n2), false;\n }\n const kh = [Int8Array, Uint8Array, Uint8ClampedArray, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array];\n class Mh {\n static from(t4) {\n if (!(t4 instanceof ArrayBuffer)) throw new Error(\"Data must be an instance of ArrayBuffer.\");\n const [e2, r2] = new Uint8Array(t4, 0, 2);\n if (219 !== e2) throw new Error(\"Data does not appear to be in a KDBush format.\");\n const n2 = r2 >> 4;\n if (1 !== n2) throw new Error(`Got v${n2} data when expected v1.`);\n const i2 = kh[15 & r2];\n if (!i2) throw new Error(\"Unrecognized array type.\");\n const [s2] = new Uint16Array(t4, 2, 1), [a2] = new Uint32Array(t4, 4, 1);\n return new Mh(a2, s2, i2, t4);\n }\n constructor(t4, e2 = 64, r2 = Float64Array, n2) {\n if (isNaN(t4) || t4 < 0) throw new Error(`Unpexpected numItems value: ${t4}.`);\n this.numItems = +t4, this.nodeSize = Math.min(Math.max(+e2, 2), 65535), this.ArrayType = r2, this.IndexArrayType = t4 < 65536 ? Uint16Array : Uint32Array;\n const i2 = kh.indexOf(this.ArrayType), s2 = 2 * t4 * this.ArrayType.BYTES_PER_ELEMENT, a2 = t4 * this.IndexArrayType.BYTES_PER_ELEMENT, o2 = (8 - a2 % 8) % 8;\n if (i2 < 0) throw new Error(`Unexpected typed array class: ${r2}.`);\n n2 && n2 instanceof ArrayBuffer ? (this.data = n2, this.ids = new this.IndexArrayType(this.data, 8, t4), this.coords = new this.ArrayType(this.data, 8 + a2 + o2, 2 * t4), this._pos = 2 * t4, this._finished = true) : (this.data = new ArrayBuffer(8 + s2 + a2 + o2), this.ids = new this.IndexArrayType(this.data, 8, t4), this.coords = new this.ArrayType(this.data, 8 + a2 + o2, 2 * t4), this._pos = 0, this._finished = false, new Uint8Array(this.data, 0, 2).set([219, 16 + i2]), new Uint16Array(this.data, 2, 1)[0] = e2, new Uint32Array(this.data, 4, 1)[0] = t4);\n }\n add(t4, e2) {\n const r2 = this._pos >> 1;\n return this.ids[r2] = r2, this.coords[this._pos++] = t4, this.coords[this._pos++] = e2, r2;\n }\n finish() {\n const t4 = this._pos >> 1;\n if (t4 !== this.numItems) throw new Error(`Added ${t4} items when expected ${this.numItems}.`);\n return Ih(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = true, this;\n }\n range(t4, e2, r2, n2) {\n if (!this._finished) throw new Error(\"Data not yet indexed - call index.finish().\");\n const { ids: i2, coords: s2, nodeSize: a2 } = this, o2 = [0, i2.length - 1, 0], l2 = [];\n for (; o2.length; ) {\n const u2 = o2.pop() || 0, c2 = o2.pop() || 0, h2 = o2.pop() || 0;\n if (c2 - h2 <= a2) {\n for (let a3 = h2; a3 <= c2; a3++) {\n const o3 = s2[2 * a3], u3 = s2[2 * a3 + 1];\n o3 >= t4 && o3 <= r2 && u3 >= e2 && u3 <= n2 && l2.push(i2[a3]);\n }\n continue;\n }\n const p2 = h2 + c2 >> 1, f2 = s2[2 * p2], d2 = s2[2 * p2 + 1];\n f2 >= t4 && f2 <= r2 && d2 >= e2 && d2 <= n2 && l2.push(i2[p2]), (0 === u2 ? t4 <= f2 : e2 <= d2) && (o2.push(h2), o2.push(p2 - 1), o2.push(1 - u2)), (0 === u2 ? r2 >= f2 : n2 >= d2) && (o2.push(p2 + 1), o2.push(c2), o2.push(1 - u2));\n }\n return l2;\n }\n within(t4, e2, r2) {\n if (!this._finished) throw new Error(\"Data not yet indexed - call index.finish().\");\n const { ids: n2, coords: i2, nodeSize: s2 } = this, a2 = [0, n2.length - 1, 0], o2 = [], l2 = r2 * r2;\n for (; a2.length; ) {\n const u2 = a2.pop() || 0, c2 = a2.pop() || 0, h2 = a2.pop() || 0;\n if (c2 - h2 <= s2) {\n for (let r3 = h2; r3 <= c2; r3++) Bh(i2[2 * r3], i2[2 * r3 + 1], t4, e2) <= l2 && o2.push(n2[r3]);\n continue;\n }\n const p2 = h2 + c2 >> 1, f2 = i2[2 * p2], d2 = i2[2 * p2 + 1];\n Bh(f2, d2, t4, e2) <= l2 && o2.push(n2[p2]), (0 === u2 ? t4 - r2 <= f2 : e2 - r2 <= d2) && (a2.push(h2), a2.push(p2 - 1), a2.push(1 - u2)), (0 === u2 ? t4 + r2 >= f2 : e2 + r2 >= d2) && (a2.push(p2 + 1), a2.push(c2), a2.push(1 - u2));\n }\n return o2;\n }\n }\n function Ih(t4, e2, r2, n2, i2, s2) {\n if (i2 - n2 <= r2) return;\n const a2 = n2 + i2 >> 1;\n zh(t4, e2, a2, n2, i2, s2), Ih(t4, e2, r2, n2, a2 - 1, 1 - s2), Ih(t4, e2, r2, a2 + 1, i2, 1 - s2);\n }\n function zh(t4, e2, r2, n2, i2, s2) {\n for (; i2 > n2; ) {\n if (i2 - n2 > 600) {\n const a3 = i2 - n2 + 1, o3 = r2 - n2 + 1, l3 = Math.log(a3), u2 = 0.5 * Math.exp(2 * l3 / 3), c2 = 0.5 * Math.sqrt(l3 * u2 * (a3 - u2) / a3) * (o3 - a3 / 2 < 0 ? -1 : 1);\n zh(t4, e2, r2, Math.max(n2, Math.floor(r2 - o3 * u2 / a3 + c2)), Math.min(i2, Math.floor(r2 + (a3 - o3) * u2 / a3 + c2)), s2);\n }\n const a2 = e2[2 * r2 + s2];\n let o2 = n2, l2 = i2;\n for (Ph(t4, e2, n2, r2), e2[2 * i2 + s2] > a2 && Ph(t4, e2, n2, i2); o2 < l2; ) {\n for (Ph(t4, e2, o2, l2), o2++, l2--; e2[2 * o2 + s2] < a2; ) o2++;\n for (; e2[2 * l2 + s2] > a2; ) l2--;\n }\n e2[2 * n2 + s2] === a2 ? Ph(t4, e2, n2, l2) : (l2++, Ph(t4, e2, l2, i2)), l2 <= r2 && (n2 = l2 + 1), r2 <= l2 && (i2 = l2 - 1);\n }\n }\n function Ph(t4, e2, r2, n2) {\n Ch(t4, r2, n2), Ch(e2, 2 * r2, 2 * n2), Ch(e2, 2 * r2 + 1, 2 * n2 + 1);\n }\n function Ch(t4, e2, r2) {\n const n2 = t4[e2];\n t4[e2] = t4[r2], t4[r2] = n2;\n }\n function Bh(t4, e2, r2, n2) {\n const i2 = t4 - r2, s2 = e2 - n2;\n return i2 * i2 + s2 * s2;\n }\n var Vh;\n t.bg = void 0, (Vh = t.bg || (t.bg = {})).create = \"create\", Vh.load = \"load\", Vh.fullLoad = \"fullLoad\";\n let Eh = null, Fh = [];\n const Th = 1e3 / 60, $h = \"loadTime\", Lh = \"fullLoadTime\", Dh = { mark(t4) {\n performance.mark(t4);\n }, frame(t4) {\n const e2 = t4;\n null != Eh && Fh.push(e2 - Eh), Eh = e2;\n }, clearMetrics() {\n Eh = null, Fh = [], performance.clearMeasures($h), performance.clearMeasures(Lh);\n for (const e2 in t.bg) performance.clearMarks(t.bg[e2]);\n }, getPerformanceMetrics() {\n performance.measure($h, t.bg.create, t.bg.load), performance.measure(Lh, t.bg.create, t.bg.fullLoad);\n const e2 = performance.getEntriesByName($h)[0].duration, r2 = performance.getEntriesByName(Lh)[0].duration, n2 = Fh.length, i2 = 1 / (Fh.reduce((t4, e3) => t4 + e3, 0) / n2 / 1e3), s2 = Fh.filter((t4) => t4 > Th).reduce((t4, e3) => t4 + (e3 - Th) / Th, 0);\n return { loadTime: e2, fullLoadTime: r2, fps: i2, percentDroppedFrames: s2 / (n2 + s2) * 100, totalFrames: n2 };\n } };\n t.$ = class extends ps {\n }, t.A = oo, t.B = yi, t.C = function(t4) {\n if (null == M) {\n const e2 = t4.navigator ? t4.navigator.userAgent : null;\n M = !!t4.safari || !(!e2 || !(/\\b(iPad|iPhone|iPod)\\b/.test(e2) || e2.match(\"Safari\") && !e2.match(\"Chrome\")));\n }\n return M;\n }, t.D = Ji, t.E = Z, t.F = class {\n constructor(t4, e2) {\n this.target = t4, this.mapId = e2, this.resolveRejects = {}, this.tasks = {}, this.taskQueue = [], this.abortControllers = {}, this.messageHandlers = {}, this.invoker = new Ic(() => this.process()), this.subscription = function(t5, e3, r2, n2) {\n return t5.addEventListener(e3, r2, false), { unsubscribe: () => {\n t5.removeEventListener(e3, r2, false);\n } };\n }(this.target, \"message\", (t5) => this.receive(t5)), this.globalScope = k(self) ? t4 : window;\n }\n registerMessageHandler(t4, e2) {\n this.messageHandlers[t4] = e2;\n }\n sendAsync(t4, e2) {\n return new Promise((r2, n2) => {\n const i2 = Math.round(1e18 * Math.random()).toString(36).substring(0, 10);\n this.resolveRejects[i2] = { resolve: r2, reject: n2 }, e2 && e2.signal.addEventListener(\"abort\", () => {\n delete this.resolveRejects[i2];\n const e3 = { id: i2, type: \"\", origin: location.origin, targetMapId: t4.targetMapId, sourceMapId: this.mapId };\n this.target.postMessage(e3);\n }, { once: true });\n const s2 = [], a2 = Object.assign(Object.assign({}, t4), { id: i2, sourceMapId: this.mapId, origin: location.origin, data: ki(t4.data, s2) });\n this.target.postMessage(a2, { transfer: s2 });\n });\n }\n receive(t4) {\n const e2 = t4.data, r2 = e2.id;\n if (!(\"file://\" !== e2.origin && \"file://\" !== location.origin && \"resource://android\" !== e2.origin && \"resource://android\" !== location.origin && e2.origin !== location.origin || e2.targetMapId && this.mapId !== e2.targetMapId)) {\n if (\"\" === e2.type) {\n delete this.tasks[r2];\n const t5 = this.abortControllers[r2];\n return delete this.abortControllers[r2], void (t5 && t5.abort());\n }\n if (k(self) || e2.mustQueue) return this.tasks[r2] = e2, this.taskQueue.push(r2), void this.invoker.trigger();\n this.processTask(r2, e2);\n }\n }\n process() {\n if (0 === this.taskQueue.length) return;\n const t4 = this.taskQueue.shift(), e2 = this.tasks[t4];\n delete this.tasks[t4], this.taskQueue.length > 0 && this.invoker.trigger(), e2 && this.processTask(t4, e2);\n }\n processTask(t4, r2) {\n return e(this, void 0, void 0, function* () {\n if (\"\" === r2.type) {\n const e3 = this.resolveRejects[t4];\n if (delete this.resolveRejects[t4], !e3) return;\n return void (r2.error ? e3.reject(Mi(r2.error)) : e3.resolve(Mi(r2.data)));\n }\n if (!this.messageHandlers[r2.type]) return void this.completeTask(t4, new Error(`Could not find a registered handler for ${r2.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(\", \")}`));\n const e2 = Mi(r2.data), n2 = new AbortController();\n this.abortControllers[t4] = n2;\n try {\n const i2 = yield this.messageHandlers[r2.type](r2.sourceMapId, e2, n2);\n this.completeTask(t4, null, i2);\n } catch (e3) {\n this.completeTask(t4, e3);\n }\n });\n }\n completeTask(t4, e2, r2) {\n const n2 = [];\n delete this.abortControllers[t4];\n const i2 = { id: t4, type: \"\", sourceMapId: this.mapId, origin: location.origin, error: e2 ? ki(e2) : null, data: ki(r2, n2) };\n this.target.postMessage(i2, { transfer: n2 });\n }\n remove() {\n this.invoker.remove(), this.subscription.unsubscribe();\n }\n }, t.G = $, t.H = function() {\n var t4 = new oo(16);\n return oo != Float32Array && (t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[11] = 0, t4[12] = 0, t4[13] = 0, t4[14] = 0), t4[0] = 1, t4[5] = 1, t4[10] = 1, t4[15] = 1, t4;\n }, t.I = Tu, t.J = function(t4, e2, r2) {\n var n2, i2, s2, a2, o2, l2, u2, c2, h2, p2, f2, d2, y2 = r2[0], m2 = r2[1], g2 = r2[2];\n return e2 === t4 ? (t4[12] = e2[0] * y2 + e2[4] * m2 + e2[8] * g2 + e2[12], t4[13] = e2[1] * y2 + e2[5] * m2 + e2[9] * g2 + e2[13], t4[14] = e2[2] * y2 + e2[6] * m2 + e2[10] * g2 + e2[14], t4[15] = e2[3] * y2 + e2[7] * m2 + e2[11] * g2 + e2[15]) : (i2 = e2[1], s2 = e2[2], a2 = e2[3], o2 = e2[4], l2 = e2[5], u2 = e2[6], c2 = e2[7], h2 = e2[8], p2 = e2[9], f2 = e2[10], d2 = e2[11], t4[0] = n2 = e2[0], t4[1] = i2, t4[2] = s2, t4[3] = a2, t4[4] = o2, t4[5] = l2, t4[6] = u2, t4[7] = c2, t4[8] = h2, t4[9] = p2, t4[10] = f2, t4[11] = d2, t4[12] = n2 * y2 + o2 * m2 + h2 * g2 + e2[12], t4[13] = i2 * y2 + l2 * m2 + p2 * g2 + e2[13], t4[14] = s2 * y2 + u2 * m2 + f2 * g2 + e2[14], t4[15] = a2 * y2 + c2 * m2 + d2 * g2 + e2[15]), t4;\n }, t.K = function(t4, e2, r2) {\n var n2 = r2[0], i2 = r2[1], s2 = r2[2];\n return t4[0] = e2[0] * n2, t4[1] = e2[1] * n2, t4[2] = e2[2] * n2, t4[3] = e2[3] * n2, t4[4] = e2[4] * i2, t4[5] = e2[5] * i2, t4[6] = e2[6] * i2, t4[7] = e2[7] * i2, t4[8] = e2[8] * s2, t4[9] = e2[9] * s2, t4[10] = e2[10] * s2, t4[11] = e2[11] * s2, t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15], t4;\n }, t.L = uo, t.M = function(t4, e2) {\n const r2 = {};\n for (let n2 = 0; n2 < e2.length; n2++) {\n const i2 = e2[n2];\n i2 in t4 && (r2[i2] = t4[i2]);\n }\n return r2;\n }, t.N = Pc, t.O = Vc, t.P = s, t.Q = Ec, t.R = Ao, t.S = jc, t.T = Zi, t.U = h, t.V = p, t.W = P, t.X = $a, t.Y = ls, t.Z = $c, t._ = e, t.a = F, t.a$ = function(t4, e2) {\n var r2 = t4[0], n2 = t4[1], i2 = t4[2], s2 = t4[3], a2 = t4[4], o2 = t4[5], l2 = t4[6], u2 = t4[7], c2 = t4[8], h2 = t4[9], p2 = t4[10], f2 = t4[11], d2 = t4[12], y2 = t4[13], m2 = t4[14], g2 = t4[15], x2 = e2[0], v2 = e2[1], b2 = e2[2], w2 = e2[3], _2 = e2[4], A3 = e2[5], S2 = e2[6], k2 = e2[7], M2 = e2[8], I2 = e2[9], z2 = e2[10], P2 = e2[11], C3 = e2[12], B3 = e2[13], V2 = e2[14], E3 = e2[15];\n return Math.abs(r2 - x2) <= ao * Math.max(1, Math.abs(r2), Math.abs(x2)) && Math.abs(n2 - v2) <= ao * Math.max(1, Math.abs(n2), Math.abs(v2)) && Math.abs(i2 - b2) <= ao * Math.max(1, Math.abs(i2), Math.abs(b2)) && Math.abs(s2 - w2) <= ao * Math.max(1, Math.abs(s2), Math.abs(w2)) && Math.abs(a2 - _2) <= ao * Math.max(1, Math.abs(a2), Math.abs(_2)) && Math.abs(o2 - A3) <= ao * Math.max(1, Math.abs(o2), Math.abs(A3)) && Math.abs(l2 - S2) <= ao * Math.max(1, Math.abs(l2), Math.abs(S2)) && Math.abs(u2 - k2) <= ao * Math.max(1, Math.abs(u2), Math.abs(k2)) && Math.abs(c2 - M2) <= ao * Math.max(1, Math.abs(c2), Math.abs(M2)) && Math.abs(h2 - I2) <= ao * Math.max(1, Math.abs(h2), Math.abs(I2)) && Math.abs(p2 - z2) <= ao * Math.max(1, Math.abs(p2), Math.abs(z2)) && Math.abs(f2 - P2) <= ao * Math.max(1, Math.abs(f2), Math.abs(P2)) && Math.abs(d2 - C3) <= ao * Math.max(1, Math.abs(d2), Math.abs(C3)) && Math.abs(y2 - B3) <= ao * Math.max(1, Math.abs(y2), Math.abs(B3)) && Math.abs(m2 - V2) <= ao * Math.max(1, Math.abs(m2), Math.abs(V2)) && Math.abs(g2 - E3) <= ao * Math.max(1, Math.abs(g2), Math.abs(E3));\n }, t.a0 = oa, t.a1 = Dc, t.a2 = it, t.a3 = (t4) => {\n const e2 = window.document.createElement(\"video\");\n return e2.muted = true, new Promise((r2) => {\n e2.onloadstart = () => {\n r2(e2);\n };\n for (const r3 of t4) {\n const t5 = window.document.createElement(\"source\");\n j(r3) || (e2.crossOrigin = \"Anonymous\"), t5.src = r3, e2.appendChild(t5);\n }\n });\n }, t.a4 = function() {\n return x++;\n }, t.a5 = Fs, t.a6 = dc, t.a7 = zn, t.a8 = ja, t.a9 = Nc, t.aA = function(t4) {\n if (\"custom\" === t4.type) return new Mc(t4);\n switch (t4.type) {\n case \"background\":\n return new _c(t4);\n case \"circle\":\n return new fo(t4);\n case \"fill\":\n return new ul(t4);\n case \"fill-extrusion\":\n return new El(t4);\n case \"heatmap\":\n return new Mo(t4);\n case \"hillshade\":\n return new Po(t4);\n case \"line\":\n return new Hl(t4);\n case \"raster\":\n return new kc(t4);\n case \"symbol\":\n return new vc(t4);\n }\n }, t.aB = w, t.aC = function(t4, e2) {\n if (!t4) return [{ command: \"setStyle\", args: [e2] }];\n let r2 = [];\n try {\n if (!H(t4.version, e2.version)) return [{ command: \"setStyle\", args: [e2] }];\n H(t4.center, e2.center) || r2.push({ command: \"setCenter\", args: [e2.center] }), H(t4.zoom, e2.zoom) || r2.push({ command: \"setZoom\", args: [e2.zoom] }), H(t4.bearing, e2.bearing) || r2.push({ command: \"setBearing\", args: [e2.bearing] }), H(t4.pitch, e2.pitch) || r2.push({ command: \"setPitch\", args: [e2.pitch] }), H(t4.sprite, e2.sprite) || r2.push({ command: \"setSprite\", args: [e2.sprite] }), H(t4.glyphs, e2.glyphs) || r2.push({ command: \"setGlyphs\", args: [e2.glyphs] }), H(t4.transition, e2.transition) || r2.push({ command: \"setTransition\", args: [e2.transition] }), H(t4.light, e2.light) || r2.push({ command: \"setLight\", args: [e2.light] }), H(t4.terrain, e2.terrain) || r2.push({ command: \"setTerrain\", args: [e2.terrain] }), H(t4.sky, e2.sky) || r2.push({ command: \"setSky\", args: [e2.sky] }), H(t4.projection, e2.projection) || r2.push({ command: \"setProjection\", args: [e2.projection] });\n const n2 = {}, i2 = [];\n !function(t5, e3, r3, n3) {\n let i3;\n for (i3 in e3 = e3 || {}, t5 = t5 || {}) Object.prototype.hasOwnProperty.call(t5, i3) && (Object.prototype.hasOwnProperty.call(e3, i3) || W(i3, r3, n3));\n for (i3 in e3) Object.prototype.hasOwnProperty.call(e3, i3) && (Object.prototype.hasOwnProperty.call(t5, i3) ? H(t5[i3], e3[i3]) || (\"geojson\" === t5[i3].type && \"geojson\" === e3[i3].type && tt(t5, e3, i3) ? Y(r3, { command: \"setGeoJSONSourceData\", args: [i3, e3[i3].data] }) : Q(i3, e3, r3, n3)) : J(i3, e3, r3));\n }(t4.sources, e2.sources, i2, n2);\n const s2 = [];\n t4.layers && t4.layers.forEach((t5) => {\n \"source\" in t5 && n2[t5.source] ? r2.push({ command: \"removeLayer\", args: [t5.id] }) : s2.push(t5);\n }), r2 = r2.concat(i2), function(t5, e3, r3) {\n e3 = e3 || [];\n const n3 = (t5 = t5 || []).map(rt), i3 = e3.map(rt), s3 = t5.reduce(nt, {}), a2 = e3.reduce(nt, {}), o2 = n3.slice(), l2 = /* @__PURE__ */ Object.create(null);\n let u2, c2, h2, p2, f2;\n for (let t6 = 0, e4 = 0; t6 < n3.length; t6++) u2 = n3[t6], Object.prototype.hasOwnProperty.call(a2, u2) ? e4++ : (Y(r3, { command: \"removeLayer\", args: [u2] }), o2.splice(o2.indexOf(u2, e4), 1));\n for (let t6 = 0, e4 = 0; t6 < i3.length; t6++) u2 = i3[i3.length - 1 - t6], o2[o2.length - 1 - t6] !== u2 && (Object.prototype.hasOwnProperty.call(s3, u2) ? (Y(r3, { command: \"removeLayer\", args: [u2] }), o2.splice(o2.lastIndexOf(u2, o2.length - e4), 1)) : e4++, p2 = o2[o2.length - t6], Y(r3, { command: \"addLayer\", args: [a2[u2], p2] }), o2.splice(o2.length - t6, 0, u2), l2[u2] = true);\n for (let t6 = 0; t6 < i3.length; t6++) if (u2 = i3[t6], c2 = s3[u2], h2 = a2[u2], !l2[u2] && !H(c2, h2)) if (H(c2.source, h2.source) && H(c2[\"source-layer\"], h2[\"source-layer\"]) && H(c2.type, h2.type)) {\n for (f2 in et(c2.layout, h2.layout, r3, u2, null, \"setLayoutProperty\"), et(c2.paint, h2.paint, r3, u2, null, \"setPaintProperty\"), H(c2.filter, h2.filter) || Y(r3, { command: \"setFilter\", args: [u2, h2.filter] }), H(c2.minzoom, h2.minzoom) && H(c2.maxzoom, h2.maxzoom) || Y(r3, { command: \"setLayerZoomRange\", args: [u2, h2.minzoom, h2.maxzoom] }), c2) Object.prototype.hasOwnProperty.call(c2, f2) && \"layout\" !== f2 && \"paint\" !== f2 && \"filter\" !== f2 && \"metadata\" !== f2 && \"minzoom\" !== f2 && \"maxzoom\" !== f2 && (0 === f2.indexOf(\"paint.\") ? et(c2[f2], h2[f2], r3, u2, f2.slice(6), \"setPaintProperty\") : H(c2[f2], h2[f2]) || Y(r3, { command: \"setLayerProperty\", args: [u2, f2, h2[f2]] }));\n for (f2 in h2) Object.prototype.hasOwnProperty.call(h2, f2) && !Object.prototype.hasOwnProperty.call(c2, f2) && \"layout\" !== f2 && \"paint\" !== f2 && \"filter\" !== f2 && \"metadata\" !== f2 && \"minzoom\" !== f2 && \"maxzoom\" !== f2 && (0 === f2.indexOf(\"paint.\") ? et(c2[f2], h2[f2], r3, u2, f2.slice(6), \"setPaintProperty\") : H(c2[f2], h2[f2]) || Y(r3, { command: \"setLayerProperty\", args: [u2, f2, h2[f2]] }));\n } else Y(r3, { command: \"removeLayer\", args: [u2] }), p2 = o2[o2.lastIndexOf(u2) + 1], Y(r3, { command: \"addLayer\", args: [h2, p2] });\n }(s2, e2.layers, r2);\n } catch (t5) {\n console.warn(\"Unable to compute style diff:\", t5), r2 = [{ command: \"setStyle\", args: [e2] }];\n }\n return r2;\n }, t.aD = function(t4) {\n const e2 = [], r2 = t4.id;\n return void 0 === r2 && e2.push({ message: `layers.${r2}: missing required property \"id\"` }), void 0 === t4.render && e2.push({ message: `layers.${r2}: missing required method \"render\"` }), t4.renderingMode && \"2d\" !== t4.renderingMode && \"3d\" !== t4.renderingMode && e2.push({ message: `layers.${r2}: property \"renderingMode\" must be either \"2d\" or \"3d\"` }), e2;\n }, t.aE = function t4(e2, r2) {\n if (Array.isArray(e2)) {\n if (!Array.isArray(r2) || e2.length !== r2.length) return false;\n for (let n2 = 0; n2 < e2.length; n2++) if (!t4(e2[n2], r2[n2])) return false;\n return true;\n }\n if (\"object\" == typeof e2 && null !== e2 && null !== r2) {\n if (\"object\" != typeof r2) return false;\n if (Object.keys(e2).length !== Object.keys(r2).length) return false;\n for (const n2 in e2) if (!t4(e2[n2], r2[n2])) return false;\n return true;\n }\n return e2 === r2;\n }, t.aF = v, t.aG = b, t.aH = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = 0;\n }\n set(t4) {\n this.current !== t4 && (this.current = t4, this.gl.uniform1i(this.location, t4));\n }\n }, t.aI = _a, t.aJ = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = ka;\n }\n set(t4) {\n if (t4[12] !== this.current[12] || t4[0] !== this.current[0]) return this.current = t4, void this.gl.uniformMatrix4fv(this.location, false, t4);\n for (let e2 = 1; e2 < 16; e2++) if (t4[e2] !== this.current[e2]) {\n this.current = t4, this.gl.uniformMatrix4fv(this.location, false, t4);\n break;\n }\n }\n }, t.aK = Aa, t.aL = Sa, t.aM = Kt, t.aN = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = [0, 0, 0];\n }\n set(t4) {\n t4[0] === this.current[0] && t4[1] === this.current[1] && t4[2] === this.current[2] || (this.current = t4, this.gl.uniform3f(this.location, t4[0], t4[1], t4[2]));\n }\n }, t.aO = class extends wa {\n constructor(t4, e2) {\n super(t4, e2), this.current = [0, 0];\n }\n set(t4) {\n t4[0] === this.current[0] && t4[1] === this.current[1] || (this.current = t4, this.gl.uniform2f(this.location, t4[0], t4[1]));\n }\n }, t.aP = function(t4, e2, r2, n2, i2, s2, a2) {\n var o2 = 1 / (e2 - r2), l2 = 1 / (n2 - i2), u2 = 1 / (s2 - a2);\n return t4[0] = -2 * o2, t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = -2 * l2, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[10] = 2 * u2, t4[11] = 0, t4[12] = (e2 + r2) * o2, t4[13] = (i2 + n2) * l2, t4[14] = (a2 + s2) * u2, t4[15] = 1, t4;\n }, t.aQ = ho, t.aR = class extends _s {\n }, t.aS = eu, t.aT = class extends Ss {\n }, t.aU = ko, t.aV = function(t4) {\n return t4 <= 1 ? 1 : Math.pow(2, Math.ceil(Math.log(t4) / Math.LN2));\n }, t.aW = So, t.aX = Zs, t.aY = na, t.aZ = class extends Bs {\n }, t.a_ = function(t4, e2) {\n return t4[0] === e2[0] && t4[1] === e2[1] && t4[2] === e2[2] && t4[3] === e2[3] && t4[4] === e2[4] && t4[5] === e2[5] && t4[6] === e2[6] && t4[7] === e2[7] && t4[8] === e2[8] && t4[9] === e2[9] && t4[10] === e2[10] && t4[11] === e2[11] && t4[12] === e2[12] && t4[13] === e2[13] && t4[14] === e2[14] && t4[15] === e2[15];\n }, t.aa = function(t4) {\n const e2 = {};\n if (t4.replace(/(?:^|(?:\\s*\\,\\s*))([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)(?:\\=(?:([^\\x00-\\x20\\(\\)<>@\\,;\\:\\\\\"\\/\\[\\]\\?\\=\\{\\}\\x7F]+)|(?:\\\"((?:[^\"\\\\]|\\\\.)*)\\\")))?/g, (t5, r2, n2, i2) => {\n const s2 = n2 || i2;\n return e2[r2] = !s2 || s2.toLowerCase(), \"\";\n }), e2[\"max-age\"]) {\n const t5 = parseInt(e2[\"max-age\"], 10);\n isNaN(t5) ? delete e2[\"max-age\"] : e2[\"max-age\"] = t5;\n }\n return e2;\n }, t.ab = function(t4, e2) {\n const r2 = [];\n for (const n2 in t4) n2 in e2 || r2.push(n2);\n return r2;\n }, t.ac = y, t.ad = function(t4, e2, r2) {\n var n2 = Math.sin(r2), i2 = Math.cos(r2), s2 = e2[0], a2 = e2[1], o2 = e2[2], l2 = e2[3], u2 = e2[4], c2 = e2[5], h2 = e2[6], p2 = e2[7];\n return e2 !== t4 && (t4[8] = e2[8], t4[9] = e2[9], t4[10] = e2[10], t4[11] = e2[11], t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15]), t4[0] = s2 * i2 + u2 * n2, t4[1] = a2 * i2 + c2 * n2, t4[2] = o2 * i2 + h2 * n2, t4[3] = l2 * i2 + p2 * n2, t4[4] = u2 * i2 - s2 * n2, t4[5] = c2 * i2 - a2 * n2, t4[6] = h2 * i2 - o2 * n2, t4[7] = p2 * i2 - l2 * n2, t4;\n }, t.ae = function(t4) {\n var e2 = new oo(16);\n return e2[0] = t4[0], e2[1] = t4[1], e2[2] = t4[2], e2[3] = t4[3], e2[4] = t4[4], e2[5] = t4[5], e2[6] = t4[6], e2[7] = t4[7], e2[8] = t4[8], e2[9] = t4[9], e2[10] = t4[10], e2[11] = t4[11], e2[12] = t4[12], e2[13] = t4[13], e2[14] = t4[14], e2[15] = t4[15], e2;\n }, t.af = po, t.ag = function(t4, e2) {\n let r2 = 0, n2 = 0;\n if (\"constant\" === t4.kind) n2 = t4.layoutSize;\n else if (\"source\" !== t4.kind) {\n const { interpolationType: i2, minZoom: s2, maxZoom: a2 } = t4, o2 = i2 ? y(Be.interpolationFactor(i2, e2, s2, a2), 0, 1) : 0;\n \"camera\" === t4.kind ? n2 = Ce.number(t4.minSize, t4.maxSize, o2) : r2 = o2;\n }\n return { uSizeT: r2, uSize: n2 };\n }, t.ai = function(t4, { uSize: e2, uSizeT: r2 }, { lowerSize: n2, upperSize: i2 }) {\n return \"source\" === t4.kind ? n2 / nc : \"composite\" === t4.kind ? Ce.number(n2 / nc, i2 / nc, r2) : e2;\n }, t.aj = cc, t.ak = function(t4, e2, r2, n2) {\n const i2 = e2.y - t4.y, a2 = e2.x - t4.x, o2 = n2.y - r2.y, l2 = n2.x - r2.x, u2 = o2 * a2 - l2 * i2;\n if (0 === u2) return null;\n const c2 = (l2 * (t4.y - r2.y) - o2 * (t4.x - r2.x)) / u2;\n return new s(t4.x + c2 * a2, t4.y + c2 * i2);\n }, t.al = Hc, t.am = qa, t.an = lo, t.ao = function(t4) {\n let e2 = 1 / 0, r2 = 1 / 0, n2 = -1 / 0, i2 = -1 / 0;\n for (const s2 of t4) e2 = Math.min(e2, s2.x), r2 = Math.min(r2, s2.y), n2 = Math.max(n2, s2.x), i2 = Math.max(i2, s2.y);\n return [e2, r2, n2, i2];\n }, t.ap = iu, t.ar = ac, t.as = function(t4, e2) {\n var r2 = e2[0], n2 = e2[1], i2 = e2[2], s2 = e2[3], a2 = e2[4], o2 = e2[5], l2 = e2[6], u2 = e2[7], c2 = e2[8], h2 = e2[9], p2 = e2[10], f2 = e2[11], d2 = e2[12], y2 = e2[13], m2 = e2[14], g2 = e2[15], x2 = r2 * o2 - n2 * a2, v2 = r2 * l2 - i2 * a2, b2 = r2 * u2 - s2 * a2, w2 = n2 * l2 - i2 * o2, _2 = n2 * u2 - s2 * o2, A3 = i2 * u2 - s2 * l2, S2 = c2 * y2 - h2 * d2, k2 = c2 * m2 - p2 * d2, M2 = c2 * g2 - f2 * d2, I2 = h2 * m2 - p2 * y2, z2 = h2 * g2 - f2 * y2, P2 = p2 * g2 - f2 * m2, C3 = x2 * P2 - v2 * z2 + b2 * I2 + w2 * M2 - _2 * k2 + A3 * S2;\n return C3 ? (t4[0] = (o2 * P2 - l2 * z2 + u2 * I2) * (C3 = 1 / C3), t4[1] = (i2 * z2 - n2 * P2 - s2 * I2) * C3, t4[2] = (y2 * A3 - m2 * _2 + g2 * w2) * C3, t4[3] = (p2 * _2 - h2 * A3 - f2 * w2) * C3, t4[4] = (l2 * M2 - a2 * P2 - u2 * k2) * C3, t4[5] = (r2 * P2 - i2 * M2 + s2 * k2) * C3, t4[6] = (m2 * b2 - d2 * A3 - g2 * v2) * C3, t4[7] = (c2 * A3 - p2 * b2 + f2 * v2) * C3, t4[8] = (a2 * z2 - o2 * M2 + u2 * S2) * C3, t4[9] = (n2 * M2 - r2 * z2 - s2 * S2) * C3, t4[10] = (d2 * _2 - y2 * b2 + g2 * x2) * C3, t4[11] = (h2 * b2 - c2 * _2 - f2 * x2) * C3, t4[12] = (o2 * k2 - a2 * I2 - l2 * S2) * C3, t4[13] = (r2 * I2 - n2 * k2 + i2 * S2) * C3, t4[14] = (y2 * v2 - d2 * w2 - m2 * x2) * C3, t4[15] = (c2 * w2 - h2 * v2 + p2 * x2) * C3, t4) : null;\n }, t.at = bh, t.au = Ju, t.av = Mh, t.aw = function() {\n const t4 = {}, e2 = G.$version;\n for (const r2 in G.$root) {\n const n2 = G.$root[r2];\n if (n2.required) {\n let i2 = null;\n i2 = \"version\" === r2 ? e2 : \"array\" === n2.type ? [] : {}, null != i2 && (t4[r2] = i2);\n }\n }\n return t4;\n }, t.ax = Ii, t.ay = D2, t.az = function(t4) {\n t4 = t4.slice();\n const e2 = /* @__PURE__ */ Object.create(null);\n for (let r2 = 0; r2 < t4.length; r2++) e2[t4[r2].id] = t4[r2];\n for (let r2 = 0; r2 < t4.length; r2++) \"ref\" in t4[r2] && (t4[r2] = X(t4[r2], e2[t4[r2].ref]));\n return t4;\n }, t.b = I, t.b0 = function(t4, e2) {\n return t4[0] = e2[0], t4[1] = e2[1], t4[2] = e2[2], t4[3] = e2[3], t4[4] = e2[4], t4[5] = e2[5], t4[6] = e2[6], t4[7] = e2[7], t4[8] = e2[8], t4[9] = e2[9], t4[10] = e2[10], t4[11] = e2[11], t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15], t4;\n }, t.b1 = function(t4, e2, r2) {\n return t4[0] = e2[0] * r2[0], t4[1] = e2[1] * r2[1], t4[2] = e2[2] * r2[2], t4[3] = e2[3] * r2[3], t4;\n }, t.b2 = function(t4, e2) {\n return t4[0] * e2[0] + t4[1] * e2[1] + t4[2] * e2[2] + t4[3] * e2[3];\n }, t.b3 = m, t.b4 = Oc, t.b5 = Fc, t.b6 = function(t4, e2, r2, n2, i2) {\n var s2, a2 = 1 / Math.tan(e2 / 2);\n return t4[0] = a2 / r2, t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = a2, t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[11] = -1, t4[12] = 0, t4[13] = 0, t4[15] = 0, null != i2 && i2 !== 1 / 0 ? (t4[10] = (i2 + n2) * (s2 = 1 / (n2 - i2)), t4[14] = 2 * i2 * n2 * s2) : (t4[10] = -1, t4[14] = -2 * n2), t4;\n }, t.b7 = function(t4, e2, r2) {\n var n2 = Math.sin(r2), i2 = Math.cos(r2), s2 = e2[4], a2 = e2[5], o2 = e2[6], l2 = e2[7], u2 = e2[8], c2 = e2[9], h2 = e2[10], p2 = e2[11];\n return e2 !== t4 && (t4[0] = e2[0], t4[1] = e2[1], t4[2] = e2[2], t4[3] = e2[3], t4[12] = e2[12], t4[13] = e2[13], t4[14] = e2[14], t4[15] = e2[15]), t4[4] = s2 * i2 + u2 * n2, t4[5] = a2 * i2 + c2 * n2, t4[6] = o2 * i2 + h2 * n2, t4[7] = l2 * i2 + p2 * n2, t4[8] = u2 * i2 - s2 * n2, t4[9] = c2 * i2 - a2 * n2, t4[10] = h2 * i2 - o2 * n2, t4[11] = p2 * i2 - l2 * n2, t4;\n }, t.b8 = f, t.b9 = d, t.bA = su, t.bB = function(t4) {\n return t4.message === V;\n }, t.bC = bn, t.bD = Ri, t.ba = function(t4) {\n return t4 * Math.PI / 180;\n }, t.bb = function(t4, e2) {\n const { x: r2, y: n2 } = $c.fromLngLat(e2);\n return !(t4 < 0 || t4 > 25 || n2 < 0 || n2 >= 1 || r2 < 0 || r2 >= 1);\n }, t.bc = function(t4, e2) {\n return t4[0] = e2[0], t4[1] = 0, t4[2] = 0, t4[3] = 0, t4[4] = 0, t4[5] = e2[1], t4[6] = 0, t4[7] = 0, t4[8] = 0, t4[9] = 0, t4[10] = e2[2], t4[11] = 0, t4[12] = 0, t4[13] = 0, t4[14] = 0, t4[15] = 1, t4;\n }, t.bd = class extends hs {\n }, t.be = zc, t.bf = Dh, t.bh = L, t.bi = function(t4, e2) {\n F.REGISTERED_PROTOCOLS[t4] = e2;\n }, t.bj = function(t4) {\n delete F.REGISTERED_PROTOCOLS[t4];\n }, t.bk = function(t4, e2) {\n const r2 = {};\n for (let n3 = 0; n3 < t4.length; n3++) {\n const i2 = e2 && e2[t4[n3].id] || Ln(t4[n3]);\n e2 && (e2[t4[n3].id] = i2);\n let s2 = r2[i2];\n s2 || (s2 = r2[i2] = []), s2.push(t4[n3]);\n }\n const n2 = [];\n for (const t5 in r2) n2.push(r2[t5]);\n return n2;\n }, t.bl = wi, t.bm = qc, t.bn = Zc, t.bo = $u, t.bp = function(e2) {\n e2.bucket.createArrays(), e2.bucket.tilePixelRatio = $a / (512 * e2.bucket.overscaling), e2.bucket.compareText = {}, e2.bucket.iconsNeedLinear = false;\n const r2 = e2.bucket.layers[0], n2 = r2.layout, i2 = r2._unevaluatedLayout._values, s2 = { layoutIconSize: i2[\"icon-size\"].possiblyEvaluate(new Ui(e2.bucket.zoom + 1), e2.canonical), layoutTextSize: i2[\"text-size\"].possiblyEvaluate(new Ui(e2.bucket.zoom + 1), e2.canonical), textMaxSize: i2[\"text-size\"].possiblyEvaluate(new Ui(18)) };\n if (\"composite\" === e2.bucket.textSizeData.kind) {\n const { minZoom: t4, maxZoom: r3 } = e2.bucket.textSizeData;\n s2.compositeTextSizes = [i2[\"text-size\"].possiblyEvaluate(new Ui(t4), e2.canonical), i2[\"text-size\"].possiblyEvaluate(new Ui(r3), e2.canonical)];\n }\n if (\"composite\" === e2.bucket.iconSizeData.kind) {\n const { minZoom: t4, maxZoom: r3 } = e2.bucket.iconSizeData;\n s2.compositeIconSizes = [i2[\"icon-size\"].possiblyEvaluate(new Ui(t4), e2.canonical), i2[\"icon-size\"].possiblyEvaluate(new Ui(r3), e2.canonical)];\n }\n const a2 = n2.get(\"text-line-height\") * iu, o2 = \"viewport\" !== n2.get(\"text-rotation-alignment\") && \"point\" !== n2.get(\"symbol-placement\"), l2 = n2.get(\"text-keep-upright\"), u2 = n2.get(\"text-size\");\n for (const i3 of e2.bucket.features) {\n const c2 = n2.get(\"text-font\").evaluate(i3, {}, e2.canonical).join(\",\"), h2 = u2.evaluate(i3, {}, e2.canonical), p2 = s2.layoutTextSize.evaluate(i3, {}, e2.canonical), f2 = s2.layoutIconSize.evaluate(i3, {}, e2.canonical), d2 = { horizontal: {}, vertical: void 0 }, y2 = i3.text;\n let m2, g2 = [0, 0];\n if (y2) {\n const s3 = y2.toString(), u3 = n2.get(\"text-letter-spacing\").evaluate(i3, {}, e2.canonical) * iu, f3 = Ci(s3) ? u3 : 0, m3 = n2.get(\"text-anchor\").evaluate(i3, {}, e2.canonical), x3 = vh(r2, i3, e2.canonical);\n if (!x3) {\n const t4 = n2.get(\"text-radial-offset\").evaluate(i3, {}, e2.canonical);\n g2 = t4 ? xh(m3, [t4 * iu, gh]) : n2.get(\"text-offset\").evaluate(i3, {}, e2.canonical).map((t5) => t5 * iu);\n }\n let v3 = o2 ? \"center\" : n2.get(\"text-justify\").evaluate(i3, {}, e2.canonical);\n const b2 = \"point\" === n2.get(\"symbol-placement\") ? n2.get(\"text-max-width\").evaluate(i3, {}, e2.canonical) * iu : 1 / 0, w2 = () => {\n e2.bucket.allowVerticalPlacement && Pi(s3) && (d2.vertical = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, m3, \"left\", f3, g2, t.ah.vertical, true, p2, h2));\n };\n if (!o2 && x3) {\n const r3 = /* @__PURE__ */ new Set();\n if (\"auto\" === v3) for (let t4 = 0; t4 < x3.values.length; t4 += 2) r3.add(bh(x3.values[t4]));\n else r3.add(v3);\n let n3 = false;\n for (const i4 of r3) if (!d2.horizontal[i4]) if (n3) d2.horizontal[i4] = d2.horizontal[0];\n else {\n const r4 = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, \"center\", i4, f3, g2, t.ah.horizontal, false, p2, h2);\n r4 && (d2.horizontal[i4] = r4, n3 = 1 === r4.positionedLines.length);\n }\n w2();\n } else {\n \"auto\" === v3 && (v3 = bh(m3));\n const r3 = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, m3, v3, f3, g2, t.ah.horizontal, false, p2, h2);\n r3 && (d2.horizontal[v3] = r3), w2(), Pi(s3) && o2 && l2 && (d2.vertical = Ru(y2, e2.glyphMap, e2.glyphPositions, e2.imagePositions, c2, b2, a2, m3, v3, f3, g2, t.ah.vertical, false, p2, h2));\n }\n }\n let x2 = false;\n if (i3.icon && i3.icon.name) {\n const t4 = e2.imageMap[i3.icon.name];\n t4 && (m2 = Qu(e2.imagePositions[i3.icon.name], n2.get(\"icon-offset\").evaluate(i3, {}, e2.canonical), n2.get(\"icon-anchor\").evaluate(i3, {}, e2.canonical)), x2 = !!t4.sdf, void 0 === e2.bucket.sdfIcons ? e2.bucket.sdfIcons = x2 : e2.bucket.sdfIcons !== x2 && A2(\"Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer\"), (t4.pixelRatio !== e2.bucket.pixelRatio || 0 !== n2.get(\"icon-rotate\").constantOr(1)) && (e2.bucket.iconsNeedLinear = true));\n }\n const v2 = Ah(d2.horizontal) || d2.vertical;\n e2.bucket.iconsInText = !!v2 && v2.iconsInText, (v2 || m2) && wh(e2.bucket, i3, d2, m2, e2.imageMap, s2, p2, f2, g2, x2, e2.canonical);\n }\n e2.showCollisionBoxes && e2.bucket.generateCollisionDebugBuffers();\n }, t.bq = ql, t.br = sl, t.bs = zl, t.bt = fl, t.bu = Iu, t.bv = class {\n constructor(t4) {\n this._marks = { start: [t4.url, \"start\"].join(\"#\"), end: [t4.url, \"end\"].join(\"#\"), measure: t4.url.toString() }, performance.mark(this._marks.start);\n }\n finish() {\n performance.mark(this._marks.end);\n let t4 = performance.getEntriesByName(this._marks.measure);\n return 0 === t4.length && (performance.measure(this._marks.measure, this._marks.start, this._marks.end), t4 = performance.getEntriesByName(this._marks.measure), performance.clearMarks(this._marks.start), performance.clearMarks(this._marks.end), performance.clearMeasures(this._marks.measure)), t4;\n }\n }, t.bw = function(t4, r2, n2, i2, s2) {\n return e(this, void 0, void 0, function* () {\n if (p()) try {\n return yield P(t4, r2, n2, i2, s2);\n } catch (t5) {\n }\n return function(t5, e2, r3, n3, i3) {\n const s3 = t5.width, a2 = t5.height;\n C2 && B2 || (C2 = new OffscreenCanvas(s3, a2), B2 = C2.getContext(\"2d\", { willReadFrequently: true })), C2.width = s3, C2.height = a2, B2.drawImage(t5, 0, 0, s3, a2);\n const o2 = B2.getImageData(e2, r3, n3, i3);\n return B2.clearRect(0, 0, s3, a2), o2.data;\n }(t4, r2, n2, i2, s2);\n });\n }, t.bx = Uc, t.by = r, t.bz = n, t.c = E2, t.d = (t4) => e(void 0, void 0, void 0, function* () {\n if (0 === t4.byteLength) return createImageBitmap(new ImageData(1, 1));\n const e2 = new Blob([new Uint8Array(t4)], { type: \"image/png\" });\n try {\n return createImageBitmap(e2);\n } catch (t5) {\n throw new Error(`Could not load image because of ${t5.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`);\n }\n }), t.e = g, t.f = (t4) => new Promise((e2, r2) => {\n const n2 = new Image();\n n2.onload = () => {\n e2(n2), URL.revokeObjectURL(n2.src), n2.onload = null, window.requestAnimationFrame(() => {\n n2.src = z;\n });\n }, n2.onerror = () => r2(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n const i2 = new Blob([new Uint8Array(t4)], { type: \"image/png\" });\n n2.src = t4.byteLength ? URL.createObjectURL(i2) : z;\n }), t.g = T, t.h = (t4, e2) => O(g(t4, { type: \"json\" }), e2), t.i = k, t.j = N, t.k = q, t.l = (t4, e2) => O(g(t4, { type: \"arrayBuffer\" }), e2), t.m = O, t.n = function(t4) {\n return new Iu(t4).readFields(Pu, []);\n }, t.o = _o, t.p = Eu, t.q = rs, t.r = di, t.s = j, t.t = xi, t.u = fi, t.v = G, t.w = A2, t.x = function([t4, e2, r2]) {\n return e2 += 90, e2 *= Math.PI / 180, r2 *= Math.PI / 180, { x: t4 * Math.cos(e2) * Math.sin(r2), y: t4 * Math.sin(e2) * Math.sin(r2), z: t4 * Math.cos(r2) };\n }, t.y = Ce, t.z = Ui;\n });\n define2(\"worker\", [\"./shared\"], function(e) {\n \"use strict\";\n class t {\n constructor(e2) {\n this.keyCache = {}, e2 && this.replace(e2);\n }\n replace(e2) {\n this._layerConfigs = {}, this._layers = {}, this.update(e2, []);\n }\n update(t4, o2) {\n for (const o3 of t4) {\n this._layerConfigs[o3.id] = o3;\n const t5 = this._layers[o3.id] = e.aA(o3);\n t5._featureFilter = e.a7(t5.filter), this.keyCache[o3.id] && delete this.keyCache[o3.id];\n }\n for (const e2 of o2) delete this.keyCache[e2], delete this._layerConfigs[e2], delete this._layers[e2];\n this.familiesBySource = {};\n const i2 = e.bk(Object.values(this._layerConfigs), this.keyCache);\n for (const e2 of i2) {\n const t5 = e2.map((e3) => this._layers[e3.id]), o3 = t5[0];\n if (\"none\" === o3.visibility) continue;\n const i3 = o3.source || \"\";\n let s2 = this.familiesBySource[i3];\n s2 || (s2 = this.familiesBySource[i3] = {});\n const r2 = o3.sourceLayer || \"_geojsonTileLayer\";\n let n2 = s2[r2];\n n2 || (n2 = s2[r2] = []), n2.push(t5);\n }\n }\n }\n class o {\n constructor(t4) {\n const o2 = {}, i2 = [];\n for (const e2 in t4) {\n const s3 = t4[e2], r3 = o2[e2] = {};\n for (const e3 in s3) {\n const t5 = s3[+e3];\n if (!t5 || 0 === t5.bitmap.width || 0 === t5.bitmap.height) continue;\n const o3 = { x: 0, y: 0, w: t5.bitmap.width + 2, h: t5.bitmap.height + 2 };\n i2.push(o3), r3[e3] = { rect: o3, metrics: t5.metrics };\n }\n }\n const { w: s2, h: r2 } = e.p(i2), n2 = new e.o({ width: s2 || 1, height: r2 || 1 });\n for (const i3 in t4) {\n const s3 = t4[i3];\n for (const t5 in s3) {\n const r3 = s3[+t5];\n if (!r3 || 0 === r3.bitmap.width || 0 === r3.bitmap.height) continue;\n const a2 = o2[i3][t5].rect;\n e.o.copy(r3.bitmap, n2, { x: 0, y: 0 }, { x: a2.x + 1, y: a2.y + 1 }, r3.bitmap);\n }\n }\n this.image = n2, this.positions = o2;\n }\n }\n e.bl(\"GlyphAtlas\", o);\n class i {\n constructor(t4) {\n this.tileID = new e.S(t4.tileID.overscaledZ, t4.tileID.wrap, t4.tileID.canonical.z, t4.tileID.canonical.x, t4.tileID.canonical.y), this.uid = t4.uid, this.zoom = t4.zoom, this.pixelRatio = t4.pixelRatio, this.tileSize = t4.tileSize, this.source = t4.source, this.overscaling = this.tileID.overscaleFactor(), this.showCollisionBoxes = t4.showCollisionBoxes, this.collectResourceTiming = !!t4.collectResourceTiming, this.returnDependencies = !!t4.returnDependencies, this.promoteId = t4.promoteId, this.inFlightDependencies = [];\n }\n parse(t4, i2, r2, n2) {\n return e._(this, void 0, void 0, function* () {\n this.status = \"parsing\", this.data = t4, this.collisionBoxArray = new e.a5();\n const a2 = new e.bm(Object.keys(t4.layers).sort()), l2 = new e.bn(this.tileID, this.promoteId);\n l2.bucketLayerIDs = [];\n const c2 = {}, u2 = { featureIndex: l2, iconDependencies: {}, patternDependencies: {}, glyphDependencies: {}, availableImages: r2 }, h2 = i2.familiesBySource[this.source];\n for (const o2 in h2) {\n const i3 = t4.layers[o2];\n if (!i3) continue;\n 1 === i3.version && e.w(`Vector tile source \"${this.source}\" layer \"${o2}\" does not use vector tile spec v2 and therefore may have some rendering errors.`);\n const n3 = a2.encode(o2), d3 = [];\n for (let e2 = 0; e2 < i3.length; e2++) {\n const t5 = i3.feature(e2), s2 = l2.getId(t5, o2);\n d3.push({ feature: t5, id: s2, index: e2, sourceLayerIndex: n3 });\n }\n for (const t5 of h2[o2]) {\n const o3 = t5[0];\n o3.source !== this.source && e.w(`layer.source = ${o3.source} does not equal this.source = ${this.source}`), o3.minzoom && this.zoom < Math.floor(o3.minzoom) || o3.maxzoom && this.zoom >= o3.maxzoom || \"none\" !== o3.visibility && (s(t5, this.zoom, r2), (c2[o3.id] = o3.createBucket({ index: l2.bucketLayerIDs.length, layers: t5, zoom: this.zoom, pixelRatio: this.pixelRatio, overscaling: this.overscaling, collisionBoxArray: this.collisionBoxArray, sourceLayerIndex: n3, sourceID: this.source })).populate(d3, u2, this.tileID.canonical), l2.bucketLayerIDs.push(t5.map((e2) => e2.id)));\n }\n }\n const d2 = e.aF(u2.glyphDependencies, (e2) => Object.keys(e2).map(Number));\n this.inFlightDependencies.forEach((e2) => null == e2 ? void 0 : e2.abort()), this.inFlightDependencies = [];\n let f2 = Promise.resolve({});\n if (Object.keys(d2).length) {\n const e2 = new AbortController();\n this.inFlightDependencies.push(e2), f2 = n2.sendAsync({ type: \"GG\", data: { stacks: d2, source: this.source, tileID: this.tileID, type: \"glyphs\" } }, e2);\n }\n const g2 = Object.keys(u2.iconDependencies);\n let p2 = Promise.resolve({});\n if (g2.length) {\n const e2 = new AbortController();\n this.inFlightDependencies.push(e2), p2 = n2.sendAsync({ type: \"GI\", data: { icons: g2, source: this.source, tileID: this.tileID, type: \"icons\" } }, e2);\n }\n const m2 = Object.keys(u2.patternDependencies);\n let y2 = Promise.resolve({});\n if (m2.length) {\n const e2 = new AbortController();\n this.inFlightDependencies.push(e2), y2 = n2.sendAsync({ type: \"GI\", data: { icons: m2, source: this.source, tileID: this.tileID, type: \"patterns\" } }, e2);\n }\n const [v2, w2, x2] = yield Promise.all([f2, p2, y2]), b2 = new o(v2), S2 = new e.bo(w2, x2);\n for (const t5 in c2) {\n const o2 = c2[t5];\n o2 instanceof e.a6 ? (s(o2.layers, this.zoom, r2), e.bp({ bucket: o2, glyphMap: v2, glyphPositions: b2.positions, imageMap: w2, imagePositions: S2.iconPositions, showCollisionBoxes: this.showCollisionBoxes, canonical: this.tileID.canonical })) : o2.hasPattern && (o2 instanceof e.bq || o2 instanceof e.br || o2 instanceof e.bs) && (s(o2.layers, this.zoom, r2), o2.addFeatures(u2, this.tileID.canonical, S2.patternPositions));\n }\n return this.status = \"done\", { buckets: Object.values(c2).filter((e2) => !e2.isEmpty()), featureIndex: l2, collisionBoxArray: this.collisionBoxArray, glyphAtlasImage: b2.image, imageAtlas: S2, glyphMap: this.returnDependencies ? v2 : null, iconMap: this.returnDependencies ? w2 : null, glyphPositions: this.returnDependencies ? b2.positions : null };\n });\n }\n }\n function s(t4, o2, i2) {\n const s2 = new e.z(o2);\n for (const e2 of t4) e2.recalculate(s2, i2);\n }\n class r {\n constructor(e2, t4, o2) {\n this.actor = e2, this.layerIndex = t4, this.availableImages = o2, this.fetching = {}, this.loading = {}, this.loaded = {};\n }\n loadVectorTile(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n const i2 = yield e.l(t4.request, o2);\n try {\n return { vectorTile: new e.bt.VectorTile(new e.bu(i2.data)), rawData: i2.data, cacheControl: i2.cacheControl, expires: i2.expires };\n } catch (e2) {\n const o3 = new Uint8Array(i2.data);\n let s2 = `Unable to parse the tile at ${t4.request.url}, `;\n throw s2 += 31 === o3[0] && 139 === o3[1] ? \"please make sure the data is not gzipped and that you have configured the relevant header in the server\" : `got error: ${e2.message}`, new Error(s2);\n }\n });\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const o2 = t4.uid, s2 = !!(t4 && t4.request && t4.request.collectResourceTiming) && new e.bv(t4.request), r2 = new i(t4);\n this.loading[o2] = r2;\n const n2 = new AbortController();\n r2.abort = n2;\n try {\n const i2 = yield this.loadVectorTile(t4, n2);\n if (delete this.loading[o2], !i2) return null;\n const a2 = i2.rawData, l2 = {};\n i2.expires && (l2.expires = i2.expires), i2.cacheControl && (l2.cacheControl = i2.cacheControl);\n const c2 = {};\n if (s2) {\n const e2 = s2.finish();\n e2 && (c2.resourceTiming = JSON.parse(JSON.stringify(e2)));\n }\n r2.vectorTile = i2.vectorTile;\n const u2 = r2.parse(i2.vectorTile, this.layerIndex, this.availableImages, this.actor);\n this.loaded[o2] = r2, this.fetching[o2] = { rawTileData: a2, cacheControl: l2, resourceTiming: c2 };\n try {\n const t5 = yield u2;\n return e.e({ rawTileData: a2.slice(0) }, t5, l2, c2);\n } finally {\n delete this.fetching[o2];\n }\n } catch (e2) {\n throw delete this.loading[o2], r2.status = \"done\", this.loaded[o2] = r2, e2;\n }\n });\n }\n reloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const o2 = t4.uid;\n if (!this.loaded || !this.loaded[o2]) throw new Error(\"Should not be trying to reload a tile that was never loaded or has been removed\");\n const i2 = this.loaded[o2];\n if (i2.showCollisionBoxes = t4.showCollisionBoxes, \"parsing\" === i2.status) {\n const t5 = yield i2.parse(i2.vectorTile, this.layerIndex, this.availableImages, this.actor);\n let s2;\n if (this.fetching[o2]) {\n const { rawTileData: i3, cacheControl: r2, resourceTiming: n2 } = this.fetching[o2];\n delete this.fetching[o2], s2 = e.e({ rawTileData: i3.slice(0) }, t5, r2, n2);\n } else s2 = t5;\n return s2;\n }\n if (\"done\" === i2.status && i2.vectorTile) return i2.parse(i2.vectorTile, this.layerIndex, this.availableImages, this.actor);\n });\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = this.loading, o2 = t4.uid;\n e2 && e2[o2] && e2[o2].abort && (e2[o2].abort.abort(), delete e2[o2]);\n });\n }\n removeTile(t4) {\n return e._(this, void 0, void 0, function* () {\n this.loaded && this.loaded[t4.uid] && delete this.loaded[t4.uid];\n });\n }\n }\n class n {\n constructor() {\n this.loaded = {};\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const { uid: o2, encoding: i2, rawImageData: s2, redFactor: r2, greenFactor: n2, blueFactor: a2, baseShift: l2 } = t4, c2 = s2.width + 2, u2 = s2.height + 2, h2 = e.b(s2) ? new e.R({ width: c2, height: u2 }, yield e.bw(s2, -1, -1, c2, u2)) : s2, d2 = new e.bx(o2, h2, i2, r2, n2, a2, l2);\n return this.loaded = this.loaded || {}, this.loaded[o2] = d2, d2;\n });\n }\n removeTile(e2) {\n const t4 = this.loaded, o2 = e2.uid;\n t4 && t4[o2] && delete t4[o2];\n }\n }\n function a(e2, t4) {\n if (0 !== e2.length) {\n l(e2[0], t4);\n for (var o2 = 1; o2 < e2.length; o2++) l(e2[o2], !t4);\n }\n }\n function l(e2, t4) {\n for (var o2 = 0, i2 = 0, s2 = 0, r2 = e2.length, n2 = r2 - 1; s2 < r2; n2 = s2++) {\n var a2 = (e2[s2][0] - e2[n2][0]) * (e2[n2][1] + e2[s2][1]), l2 = o2 + a2;\n i2 += Math.abs(o2) >= Math.abs(a2) ? o2 - l2 + a2 : a2 - l2 + o2, o2 = l2;\n }\n o2 + i2 >= 0 != !!t4 && e2.reverse();\n }\n var c = e.by(function e2(t4, o2) {\n var i2, s2 = t4 && t4.type;\n if (\"FeatureCollection\" === s2) for (i2 = 0; i2 < t4.features.length; i2++) e2(t4.features[i2], o2);\n else if (\"GeometryCollection\" === s2) for (i2 = 0; i2 < t4.geometries.length; i2++) e2(t4.geometries[i2], o2);\n else if (\"Feature\" === s2) e2(t4.geometry, o2);\n else if (\"Polygon\" === s2) a(t4.coordinates, o2);\n else if (\"MultiPolygon\" === s2) for (i2 = 0; i2 < t4.coordinates.length; i2++) a(t4.coordinates[i2], o2);\n return t4;\n });\n const u = e.bt.VectorTileFeature.prototype.toGeoJSON;\n var h = { exports: {} }, d = e.bz, f = e.bt.VectorTileFeature, g = p;\n function p(e2, t4) {\n this.options = t4 || {}, this.features = e2, this.length = e2.length;\n }\n function m(e2, t4) {\n this.id = \"number\" == typeof e2.id ? e2.id : void 0, this.type = e2.type, this.rawGeometry = 1 === e2.type ? [e2.geometry] : e2.geometry, this.properties = e2.tags, this.extent = t4 || 4096;\n }\n p.prototype.feature = function(e2) {\n return new m(this.features[e2], this.options.extent);\n }, m.prototype.loadGeometry = function() {\n var e2 = this.rawGeometry;\n this.geometry = [];\n for (var t4 = 0; t4 < e2.length; t4++) {\n for (var o2 = e2[t4], i2 = [], s2 = 0; s2 < o2.length; s2++) i2.push(new d(o2[s2][0], o2[s2][1]));\n this.geometry.push(i2);\n }\n return this.geometry;\n }, m.prototype.bbox = function() {\n this.geometry || this.loadGeometry();\n for (var e2 = this.geometry, t4 = 1 / 0, o2 = -1 / 0, i2 = 1 / 0, s2 = -1 / 0, r2 = 0; r2 < e2.length; r2++) for (var n2 = e2[r2], a2 = 0; a2 < n2.length; a2++) {\n var l2 = n2[a2];\n t4 = Math.min(t4, l2.x), o2 = Math.max(o2, l2.x), i2 = Math.min(i2, l2.y), s2 = Math.max(s2, l2.y);\n }\n return [t4, i2, o2, s2];\n }, m.prototype.toGeoJSON = f.prototype.toGeoJSON;\n var y = e.bA, v = g;\n function w(e2) {\n var t4 = new y();\n return function(e3, t5) {\n for (var o2 in e3.layers) t5.writeMessage(3, x, e3.layers[o2]);\n }(e2, t4), t4.finish();\n }\n function x(e2, t4) {\n var o2;\n t4.writeVarintField(15, e2.version || 1), t4.writeStringField(1, e2.name || \"\"), t4.writeVarintField(5, e2.extent || 4096);\n var i2 = { keys: [], values: [], keycache: {}, valuecache: {} };\n for (o2 = 0; o2 < e2.length; o2++) i2.feature = e2.feature(o2), t4.writeMessage(2, b, i2);\n var s2 = i2.keys;\n for (o2 = 0; o2 < s2.length; o2++) t4.writeStringField(3, s2[o2]);\n var r2 = i2.values;\n for (o2 = 0; o2 < r2.length; o2++) t4.writeMessage(4, P, r2[o2]);\n }\n function b(e2, t4) {\n var o2 = e2.feature;\n void 0 !== o2.id && t4.writeVarintField(1, o2.id), t4.writeMessage(2, S, e2), t4.writeVarintField(3, o2.type), t4.writeMessage(4, I, o2);\n }\n function S(e2, t4) {\n var o2 = e2.feature, i2 = e2.keys, s2 = e2.values, r2 = e2.keycache, n2 = e2.valuecache;\n for (var a2 in o2.properties) {\n var l2 = o2.properties[a2], c2 = r2[a2];\n if (null !== l2) {\n void 0 === c2 && (i2.push(a2), r2[a2] = c2 = i2.length - 1), t4.writeVarint(c2);\n var u2 = typeof l2;\n \"string\" !== u2 && \"boolean\" !== u2 && \"number\" !== u2 && (l2 = JSON.stringify(l2));\n var h2 = u2 + \":\" + l2, d2 = n2[h2];\n void 0 === d2 && (s2.push(l2), n2[h2] = d2 = s2.length - 1), t4.writeVarint(d2);\n }\n }\n }\n function _(e2, t4) {\n return (t4 << 3) + (7 & e2);\n }\n function M(e2) {\n return e2 << 1 ^ e2 >> 31;\n }\n function I(e2, t4) {\n for (var o2 = e2.loadGeometry(), i2 = e2.type, s2 = 0, r2 = 0, n2 = o2.length, a2 = 0; a2 < n2; a2++) {\n var l2 = o2[a2], c2 = 1;\n 1 === i2 && (c2 = l2.length), t4.writeVarint(_(1, c2));\n for (var u2 = 3 === i2 ? l2.length - 1 : l2.length, h2 = 0; h2 < u2; h2++) {\n 1 === h2 && 1 !== i2 && t4.writeVarint(_(2, u2 - 1));\n var d2 = l2[h2].x - s2, f2 = l2[h2].y - r2;\n t4.writeVarint(M(d2)), t4.writeVarint(M(f2)), s2 += d2, r2 += f2;\n }\n 3 === i2 && t4.writeVarint(_(7, 1));\n }\n }\n function P(e2, t4) {\n var o2 = typeof e2;\n \"string\" === o2 ? t4.writeStringField(1, e2) : \"boolean\" === o2 ? t4.writeBooleanField(7, e2) : \"number\" === o2 && (e2 % 1 != 0 ? t4.writeDoubleField(3, e2) : e2 < 0 ? t4.writeSVarintField(6, e2) : t4.writeVarintField(5, e2));\n }\n h.exports = w, h.exports.fromVectorTileJs = w, h.exports.fromGeojsonVt = function(e2, t4) {\n t4 = t4 || {};\n var o2 = {};\n for (var i2 in e2) o2[i2] = new v(e2[i2].features, t4), o2[i2].name = i2, o2[i2].version = t4.version, o2[i2].extent = t4.extent;\n return w({ layers: o2 });\n }, h.exports.GeoJSONWrapper = v;\n var k = e.by(h.exports);\n const T = { minZoom: 0, maxZoom: 16, minPoints: 2, radius: 40, extent: 512, nodeSize: 64, log: false, generateId: false, reduce: null, map: (e2) => e2 }, D2 = Math.fround || (C2 = new Float32Array(1), (e2) => (C2[0] = +e2, C2[0]));\n var C2;\n const L = 3, O = 5, F = 6;\n class z {\n constructor(e2) {\n this.options = Object.assign(Object.create(T), e2), this.trees = new Array(this.options.maxZoom + 1), this.stride = this.options.reduce ? 7 : 6, this.clusterProps = [];\n }\n load(e2) {\n const { log: t4, minZoom: o2, maxZoom: i2 } = this.options;\n t4 && console.time(\"total time\");\n const s2 = `prepare ${e2.length} points`;\n t4 && console.time(s2), this.points = e2;\n const r2 = [];\n for (let t5 = 0; t5 < e2.length; t5++) {\n const o3 = e2[t5];\n if (!o3.geometry) continue;\n const [i3, s3] = o3.geometry.coordinates, n3 = D2(G(i3)), a2 = D2(j(s3));\n r2.push(n3, a2, 1 / 0, t5, -1, 1), this.options.reduce && r2.push(0);\n }\n let n2 = this.trees[i2 + 1] = this._createTree(r2);\n t4 && console.timeEnd(s2);\n for (let e3 = i2; e3 >= o2; e3--) {\n const o3 = +Date.now();\n n2 = this.trees[e3] = this._createTree(this._cluster(n2, e3)), t4 && console.log(\"z%d: %d clusters in %dms\", e3, n2.numItems, +Date.now() - o3);\n }\n return t4 && console.timeEnd(\"total time\"), this;\n }\n getClusters(e2, t4) {\n let o2 = ((e2[0] + 180) % 360 + 360) % 360 - 180;\n const i2 = Math.max(-90, Math.min(90, e2[1]));\n let s2 = 180 === e2[2] ? 180 : ((e2[2] + 180) % 360 + 360) % 360 - 180;\n const r2 = Math.max(-90, Math.min(90, e2[3]));\n if (e2[2] - e2[0] >= 360) o2 = -180, s2 = 180;\n else if (o2 > s2) {\n const e3 = this.getClusters([o2, i2, 180, r2], t4), n3 = this.getClusters([-180, i2, s2, r2], t4);\n return e3.concat(n3);\n }\n const n2 = this.trees[this._limitZoom(t4)], a2 = n2.range(G(o2), j(r2), G(s2), j(i2)), l2 = n2.data, c2 = [];\n for (const e3 of a2) {\n const t5 = this.stride * e3;\n c2.push(l2[t5 + O] > 1 ? A2(l2, t5, this.clusterProps) : this.points[l2[t5 + L]]);\n }\n return c2;\n }\n getChildren(e2) {\n const t4 = this._getOriginId(e2), o2 = this._getOriginZoom(e2), i2 = \"No cluster with the specified id.\", s2 = this.trees[o2];\n if (!s2) throw new Error(i2);\n const r2 = s2.data;\n if (t4 * this.stride >= r2.length) throw new Error(i2);\n const n2 = this.options.radius / (this.options.extent * Math.pow(2, o2 - 1)), a2 = s2.within(r2[t4 * this.stride], r2[t4 * this.stride + 1], n2), l2 = [];\n for (const t5 of a2) {\n const o3 = t5 * this.stride;\n r2[o3 + 4] === e2 && l2.push(r2[o3 + O] > 1 ? A2(r2, o3, this.clusterProps) : this.points[r2[o3 + L]]);\n }\n if (0 === l2.length) throw new Error(i2);\n return l2;\n }\n getLeaves(e2, t4, o2) {\n const i2 = [];\n return this._appendLeaves(i2, e2, t4 = t4 || 10, o2 = o2 || 0, 0), i2;\n }\n getTile(e2, t4, o2) {\n const i2 = this.trees[this._limitZoom(e2)], s2 = Math.pow(2, e2), { extent: r2, radius: n2 } = this.options, a2 = n2 / r2, l2 = (o2 - a2) / s2, c2 = (o2 + 1 + a2) / s2, u2 = { features: [] };\n return this._addTileFeatures(i2.range((t4 - a2) / s2, l2, (t4 + 1 + a2) / s2, c2), i2.data, t4, o2, s2, u2), 0 === t4 && this._addTileFeatures(i2.range(1 - a2 / s2, l2, 1, c2), i2.data, s2, o2, s2, u2), t4 === s2 - 1 && this._addTileFeatures(i2.range(0, l2, a2 / s2, c2), i2.data, -1, o2, s2, u2), u2.features.length ? u2 : null;\n }\n getClusterExpansionZoom(e2) {\n let t4 = this._getOriginZoom(e2) - 1;\n for (; t4 <= this.options.maxZoom; ) {\n const o2 = this.getChildren(e2);\n if (t4++, 1 !== o2.length) break;\n e2 = o2[0].properties.cluster_id;\n }\n return t4;\n }\n _appendLeaves(e2, t4, o2, i2, s2) {\n const r2 = this.getChildren(t4);\n for (const t5 of r2) {\n const r3 = t5.properties;\n if (r3 && r3.cluster ? s2 + r3.point_count <= i2 ? s2 += r3.point_count : s2 = this._appendLeaves(e2, r3.cluster_id, o2, i2, s2) : s2 < i2 ? s2++ : e2.push(t5), e2.length === o2) break;\n }\n return s2;\n }\n _createTree(t4) {\n const o2 = new e.av(t4.length / this.stride | 0, this.options.nodeSize, Float32Array);\n for (let e2 = 0; e2 < t4.length; e2 += this.stride) o2.add(t4[e2], t4[e2 + 1]);\n return o2.finish(), o2.data = t4, o2;\n }\n _addTileFeatures(e2, t4, o2, i2, s2, r2) {\n for (const n2 of e2) {\n const e3 = n2 * this.stride, a2 = t4[e3 + O] > 1;\n let l2, c2, u2;\n if (a2) l2 = E2(t4, e3, this.clusterProps), c2 = t4[e3], u2 = t4[e3 + 1];\n else {\n const o3 = this.points[t4[e3 + L]];\n l2 = o3.properties;\n const [i3, s3] = o3.geometry.coordinates;\n c2 = G(i3), u2 = j(s3);\n }\n const h2 = { type: 1, geometry: [[Math.round(this.options.extent * (c2 * s2 - o2)), Math.round(this.options.extent * (u2 * s2 - i2))]], tags: l2 };\n let d2;\n d2 = a2 || this.options.generateId ? t4[e3 + L] : this.points[t4[e3 + L]].id, void 0 !== d2 && (h2.id = d2), r2.features.push(h2);\n }\n }\n _limitZoom(e2) {\n return Math.max(this.options.minZoom, Math.min(Math.floor(+e2), this.options.maxZoom + 1));\n }\n _cluster(e2, t4) {\n const { radius: o2, extent: i2, reduce: s2, minPoints: r2 } = this.options, n2 = o2 / (i2 * Math.pow(2, t4)), a2 = e2.data, l2 = [], c2 = this.stride;\n for (let o3 = 0; o3 < a2.length; o3 += c2) {\n if (a2[o3 + 2] <= t4) continue;\n a2[o3 + 2] = t4;\n const i3 = a2[o3], u2 = a2[o3 + 1], h2 = e2.within(a2[o3], a2[o3 + 1], n2), d2 = a2[o3 + O];\n let f2 = d2;\n for (const e3 of h2) {\n const o4 = e3 * c2;\n a2[o4 + 2] > t4 && (f2 += a2[o4 + O]);\n }\n if (f2 > d2 && f2 >= r2) {\n let e3, r3 = i3 * d2, n3 = u2 * d2, g2 = -1;\n const p2 = ((o3 / c2 | 0) << 5) + (t4 + 1) + this.points.length;\n for (const i4 of h2) {\n const l3 = i4 * c2;\n if (a2[l3 + 2] <= t4) continue;\n a2[l3 + 2] = t4;\n const u3 = a2[l3 + O];\n r3 += a2[l3] * u3, n3 += a2[l3 + 1] * u3, a2[l3 + 4] = p2, s2 && (e3 || (e3 = this._map(a2, o3, true), g2 = this.clusterProps.length, this.clusterProps.push(e3)), s2(e3, this._map(a2, l3)));\n }\n a2[o3 + 4] = p2, l2.push(r3 / f2, n3 / f2, 1 / 0, p2, -1, f2), s2 && l2.push(g2);\n } else {\n for (let e3 = 0; e3 < c2; e3++) l2.push(a2[o3 + e3]);\n if (f2 > 1) for (const e3 of h2) {\n const o4 = e3 * c2;\n if (!(a2[o4 + 2] <= t4)) {\n a2[o4 + 2] = t4;\n for (let e4 = 0; e4 < c2; e4++) l2.push(a2[o4 + e4]);\n }\n }\n }\n }\n return l2;\n }\n _getOriginId(e2) {\n return e2 - this.points.length >> 5;\n }\n _getOriginZoom(e2) {\n return (e2 - this.points.length) % 32;\n }\n _map(e2, t4, o2) {\n if (e2[t4 + O] > 1) {\n const i3 = this.clusterProps[e2[t4 + F]];\n return o2 ? Object.assign({}, i3) : i3;\n }\n const i2 = this.points[e2[t4 + L]].properties, s2 = this.options.map(i2);\n return o2 && s2 === i2 ? Object.assign({}, s2) : s2;\n }\n }\n function A2(e2, t4, o2) {\n return { type: \"Feature\", id: e2[t4 + L], properties: E2(e2, t4, o2), geometry: { type: \"Point\", coordinates: [(i2 = e2[t4], 360 * (i2 - 0.5)), R(e2[t4 + 1])] } };\n var i2;\n }\n function E2(e2, t4, o2) {\n const i2 = e2[t4 + O], s2 = i2 >= 1e4 ? `${Math.round(i2 / 1e3)}k` : i2 >= 1e3 ? Math.round(i2 / 100) / 10 + \"k\" : i2, r2 = e2[t4 + F], n2 = -1 === r2 ? {} : Object.assign({}, o2[r2]);\n return Object.assign(n2, { cluster: true, cluster_id: e2[t4 + L], point_count: i2, point_count_abbreviated: s2 });\n }\n function G(e2) {\n return e2 / 360 + 0.5;\n }\n function j(e2) {\n const t4 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t4) / (1 - t4)) / Math.PI;\n return o2 < 0 ? 0 : o2 > 1 ? 1 : o2;\n }\n function R(e2) {\n const t4 = (180 - 360 * e2) * Math.PI / 180;\n return 360 * Math.atan(Math.exp(t4)) / Math.PI - 90;\n }\n function Z(e2, t4, o2, i2) {\n let s2 = i2;\n const r2 = t4 + (o2 - t4 >> 1);\n let n2, a2 = o2 - t4;\n const l2 = e2[t4], c2 = e2[t4 + 1], u2 = e2[o2], h2 = e2[o2 + 1];\n for (let i3 = t4 + 3; i3 < o2; i3 += 3) {\n const t5 = N(e2[i3], e2[i3 + 1], l2, c2, u2, h2);\n if (t5 > s2) n2 = i3, s2 = t5;\n else if (t5 === s2) {\n const e3 = Math.abs(i3 - r2);\n e3 < a2 && (n2 = i3, a2 = e3);\n }\n }\n s2 > i2 && (n2 - t4 > 3 && Z(e2, t4, n2, i2), e2[n2 + 2] = s2, o2 - n2 > 3 && Z(e2, n2, o2, i2));\n }\n function N(e2, t4, o2, i2, s2, r2) {\n let n2 = s2 - o2, a2 = r2 - i2;\n if (0 !== n2 || 0 !== a2) {\n const l2 = ((e2 - o2) * n2 + (t4 - i2) * a2) / (n2 * n2 + a2 * a2);\n l2 > 1 ? (o2 = s2, i2 = r2) : l2 > 0 && (o2 += n2 * l2, i2 += a2 * l2);\n }\n return n2 = e2 - o2, a2 = t4 - i2, n2 * n2 + a2 * a2;\n }\n function J(e2, t4, o2, i2) {\n const s2 = { id: null == e2 ? null : e2, type: t4, geometry: o2, tags: i2, minX: 1 / 0, minY: 1 / 0, maxX: -1 / 0, maxY: -1 / 0 };\n if (\"Point\" === t4 || \"MultiPoint\" === t4 || \"LineString\" === t4) W(s2, o2);\n else if (\"Polygon\" === t4) W(s2, o2[0]);\n else if (\"MultiLineString\" === t4) for (const e3 of o2) W(s2, e3);\n else if (\"MultiPolygon\" === t4) for (const e3 of o2) W(s2, e3[0]);\n return s2;\n }\n function W(e2, t4) {\n for (let o2 = 0; o2 < t4.length; o2 += 3) e2.minX = Math.min(e2.minX, t4[o2]), e2.minY = Math.min(e2.minY, t4[o2 + 1]), e2.maxX = Math.max(e2.maxX, t4[o2]), e2.maxY = Math.max(e2.maxY, t4[o2 + 1]);\n }\n function Y(e2, t4, o2, i2) {\n if (!t4.geometry) return;\n const s2 = t4.geometry.coordinates;\n if (s2 && 0 === s2.length) return;\n const r2 = t4.geometry.type, n2 = Math.pow(o2.tolerance / ((1 << o2.maxZoom) * o2.extent), 2);\n let a2 = [], l2 = t4.id;\n if (o2.promoteId ? l2 = t4.properties[o2.promoteId] : o2.generateId && (l2 = i2 || 0), \"Point\" === r2) V(s2, a2);\n else if (\"MultiPoint\" === r2) for (const e3 of s2) V(e3, a2);\n else if (\"LineString\" === r2) X(s2, a2, n2, false);\n else if (\"MultiLineString\" === r2) {\n if (o2.lineMetrics) {\n for (const o3 of s2) a2 = [], X(o3, a2, n2, false), e2.push(J(l2, \"LineString\", a2, t4.properties));\n return;\n }\n q(s2, a2, n2, false);\n } else if (\"Polygon\" === r2) q(s2, a2, n2, true);\n else {\n if (\"MultiPolygon\" !== r2) {\n if (\"GeometryCollection\" === r2) {\n for (const s3 of t4.geometry.geometries) Y(e2, { id: l2, geometry: s3, properties: t4.properties }, o2, i2);\n return;\n }\n throw new Error(\"Input data is not a valid GeoJSON object.\");\n }\n for (const e3 of s2) {\n const t5 = [];\n q(e3, t5, n2, true), a2.push(t5);\n }\n }\n e2.push(J(l2, r2, a2, t4.properties));\n }\n function V(e2, t4) {\n t4.push(H(e2[0]), B2(e2[1]), 0);\n }\n function X(e2, t4, o2, i2) {\n let s2, r2, n2 = 0;\n for (let o3 = 0; o3 < e2.length; o3++) {\n const a3 = H(e2[o3][0]), l2 = B2(e2[o3][1]);\n t4.push(a3, l2, 0), o3 > 0 && (n2 += i2 ? (s2 * l2 - a3 * r2) / 2 : Math.sqrt(Math.pow(a3 - s2, 2) + Math.pow(l2 - r2, 2))), s2 = a3, r2 = l2;\n }\n const a2 = t4.length - 3;\n t4[2] = 1, Z(t4, 0, a2, o2), t4[a2 + 2] = 1, t4.size = Math.abs(n2), t4.start = 0, t4.end = t4.size;\n }\n function q(e2, t4, o2, i2) {\n for (let s2 = 0; s2 < e2.length; s2++) {\n const r2 = [];\n X(e2[s2], r2, o2, i2), t4.push(r2);\n }\n }\n function H(e2) {\n return e2 / 360 + 0.5;\n }\n function B2(e2) {\n const t4 = Math.sin(e2 * Math.PI / 180), o2 = 0.5 - 0.25 * Math.log((1 + t4) / (1 - t4)) / Math.PI;\n return o2 < 0 ? 0 : o2 > 1 ? 1 : o2;\n }\n function U(e2, t4, o2, i2, s2, r2, n2, a2) {\n if (i2 /= t4, r2 >= (o2 /= t4) && n2 < i2) return e2;\n if (n2 < o2 || r2 >= i2) return null;\n const l2 = [];\n for (const t5 of e2) {\n const e3 = t5.geometry;\n let r3 = t5.type;\n const n3 = 0 === s2 ? t5.minX : t5.minY, c2 = 0 === s2 ? t5.maxX : t5.maxY;\n if (n3 >= o2 && c2 < i2) {\n l2.push(t5);\n continue;\n }\n if (c2 < o2 || n3 >= i2) continue;\n let u2 = [];\n if (\"Point\" === r3 || \"MultiPoint\" === r3) $(e3, u2, o2, i2, s2);\n else if (\"LineString\" === r3) K2(e3, u2, o2, i2, s2, false, a2.lineMetrics);\n else if (\"MultiLineString\" === r3) ee(e3, u2, o2, i2, s2, false);\n else if (\"Polygon\" === r3) ee(e3, u2, o2, i2, s2, true);\n else if (\"MultiPolygon\" === r3) for (const t6 of e3) {\n const e4 = [];\n ee(t6, e4, o2, i2, s2, true), e4.length && u2.push(e4);\n }\n if (u2.length) {\n if (a2.lineMetrics && \"LineString\" === r3) {\n for (const e4 of u2) l2.push(J(t5.id, r3, e4, t5.tags));\n continue;\n }\n \"LineString\" !== r3 && \"MultiLineString\" !== r3 || (1 === u2.length ? (r3 = \"LineString\", u2 = u2[0]) : r3 = \"MultiLineString\"), \"Point\" !== r3 && \"MultiPoint\" !== r3 || (r3 = 3 === u2.length ? \"Point\" : \"MultiPoint\"), l2.push(J(t5.id, r3, u2, t5.tags));\n }\n }\n return l2.length ? l2 : null;\n }\n function $(e2, t4, o2, i2, s2) {\n for (let r2 = 0; r2 < e2.length; r2 += 3) {\n const n2 = e2[r2 + s2];\n n2 >= o2 && n2 <= i2 && te(t4, e2[r2], e2[r2 + 1], e2[r2 + 2]);\n }\n }\n function K2(e2, t4, o2, i2, s2, r2, n2) {\n let a2 = Q(e2);\n const l2 = 0 === s2 ? oe : ie;\n let c2, u2, h2 = e2.start;\n for (let d3 = 0; d3 < e2.length - 3; d3 += 3) {\n const f3 = e2[d3], g3 = e2[d3 + 1], p3 = e2[d3 + 2], m2 = e2[d3 + 3], y2 = e2[d3 + 4], v2 = 0 === s2 ? f3 : g3, w2 = 0 === s2 ? m2 : y2;\n let x2 = false;\n n2 && (c2 = Math.sqrt(Math.pow(f3 - m2, 2) + Math.pow(g3 - y2, 2))), v2 < o2 ? w2 > o2 && (u2 = l2(a2, f3, g3, m2, y2, o2), n2 && (a2.start = h2 + c2 * u2)) : v2 > i2 ? w2 < i2 && (u2 = l2(a2, f3, g3, m2, y2, i2), n2 && (a2.start = h2 + c2 * u2)) : te(a2, f3, g3, p3), w2 < o2 && v2 >= o2 && (u2 = l2(a2, f3, g3, m2, y2, o2), x2 = true), w2 > i2 && v2 <= i2 && (u2 = l2(a2, f3, g3, m2, y2, i2), x2 = true), !r2 && x2 && (n2 && (a2.end = h2 + c2 * u2), t4.push(a2), a2 = Q(e2)), n2 && (h2 += c2);\n }\n let d2 = e2.length - 3;\n const f2 = e2[d2], g2 = e2[d2 + 1], p2 = 0 === s2 ? f2 : g2;\n p2 >= o2 && p2 <= i2 && te(a2, f2, g2, e2[d2 + 2]), d2 = a2.length - 3, r2 && d2 >= 3 && (a2[d2] !== a2[0] || a2[d2 + 1] !== a2[1]) && te(a2, a2[0], a2[1], a2[2]), a2.length && t4.push(a2);\n }\n function Q(e2) {\n const t4 = [];\n return t4.size = e2.size, t4.start = e2.start, t4.end = e2.end, t4;\n }\n function ee(e2, t4, o2, i2, s2, r2) {\n for (const n2 of e2) K2(n2, t4, o2, i2, s2, r2, false);\n }\n function te(e2, t4, o2, i2) {\n e2.push(t4, o2, i2);\n }\n function oe(e2, t4, o2, i2, s2, r2) {\n const n2 = (r2 - t4) / (i2 - t4);\n return te(e2, r2, o2 + (s2 - o2) * n2, 1), n2;\n }\n function ie(e2, t4, o2, i2, s2, r2) {\n const n2 = (r2 - o2) / (s2 - o2);\n return te(e2, t4 + (i2 - t4) * n2, r2, 1), n2;\n }\n function se(e2, t4) {\n const o2 = [];\n for (let i2 = 0; i2 < e2.length; i2++) {\n const s2 = e2[i2], r2 = s2.type;\n let n2;\n if (\"Point\" === r2 || \"MultiPoint\" === r2 || \"LineString\" === r2) n2 = re(s2.geometry, t4);\n else if (\"MultiLineString\" === r2 || \"Polygon\" === r2) {\n n2 = [];\n for (const e3 of s2.geometry) n2.push(re(e3, t4));\n } else if (\"MultiPolygon\" === r2) {\n n2 = [];\n for (const e3 of s2.geometry) {\n const o3 = [];\n for (const i3 of e3) o3.push(re(i3, t4));\n n2.push(o3);\n }\n }\n o2.push(J(s2.id, r2, n2, s2.tags));\n }\n return o2;\n }\n function re(e2, t4) {\n const o2 = [];\n o2.size = e2.size, void 0 !== e2.start && (o2.start = e2.start, o2.end = e2.end);\n for (let i2 = 0; i2 < e2.length; i2 += 3) o2.push(e2[i2] + t4, e2[i2 + 1], e2[i2 + 2]);\n return o2;\n }\n function ne(e2, t4) {\n if (e2.transformed) return e2;\n const o2 = 1 << e2.z, i2 = e2.x, s2 = e2.y;\n for (const r2 of e2.features) {\n const e3 = r2.geometry, n2 = r2.type;\n if (r2.geometry = [], 1 === n2) for (let n3 = 0; n3 < e3.length; n3 += 2) r2.geometry.push(ae(e3[n3], e3[n3 + 1], t4, o2, i2, s2));\n else for (let n3 = 0; n3 < e3.length; n3++) {\n const a2 = [];\n for (let r3 = 0; r3 < e3[n3].length; r3 += 2) a2.push(ae(e3[n3][r3], e3[n3][r3 + 1], t4, o2, i2, s2));\n r2.geometry.push(a2);\n }\n }\n return e2.transformed = true, e2;\n }\n function ae(e2, t4, o2, i2, s2, r2) {\n return [Math.round(o2 * (e2 * i2 - s2)), Math.round(o2 * (t4 * i2 - r2))];\n }\n function le(e2, t4, o2, i2, s2) {\n const r2 = t4 === s2.maxZoom ? 0 : s2.tolerance / ((1 << t4) * s2.extent), n2 = { features: [], numPoints: 0, numSimplified: 0, numFeatures: e2.length, source: null, x: o2, y: i2, z: t4, transformed: false, minX: 2, minY: 1, maxX: -1, maxY: 0 };\n for (const t5 of e2) ce(n2, t5, r2, s2);\n return n2;\n }\n function ce(e2, t4, o2, i2) {\n const s2 = t4.geometry, r2 = t4.type, n2 = [];\n if (e2.minX = Math.min(e2.minX, t4.minX), e2.minY = Math.min(e2.minY, t4.minY), e2.maxX = Math.max(e2.maxX, t4.maxX), e2.maxY = Math.max(e2.maxY, t4.maxY), \"Point\" === r2 || \"MultiPoint\" === r2) for (let t5 = 0; t5 < s2.length; t5 += 3) n2.push(s2[t5], s2[t5 + 1]), e2.numPoints++, e2.numSimplified++;\n else if (\"LineString\" === r2) ue(n2, s2, e2, o2, false, false);\n else if (\"MultiLineString\" === r2 || \"Polygon\" === r2) for (let t5 = 0; t5 < s2.length; t5++) ue(n2, s2[t5], e2, o2, \"Polygon\" === r2, 0 === t5);\n else if (\"MultiPolygon\" === r2) for (let t5 = 0; t5 < s2.length; t5++) {\n const i3 = s2[t5];\n for (let t6 = 0; t6 < i3.length; t6++) ue(n2, i3[t6], e2, o2, true, 0 === t6);\n }\n if (n2.length) {\n let o3 = t4.tags || null;\n if (\"LineString\" === r2 && i2.lineMetrics) {\n o3 = {};\n for (const e3 in t4.tags) o3[e3] = t4.tags[e3];\n o3.mapbox_clip_start = s2.start / s2.size, o3.mapbox_clip_end = s2.end / s2.size;\n }\n const a2 = { geometry: n2, type: \"Polygon\" === r2 || \"MultiPolygon\" === r2 ? 3 : \"LineString\" === r2 || \"MultiLineString\" === r2 ? 2 : 1, tags: o3 };\n null !== t4.id && (a2.id = t4.id), e2.features.push(a2);\n }\n }\n function ue(e2, t4, o2, i2, s2, r2) {\n const n2 = i2 * i2;\n if (i2 > 0 && t4.size < (s2 ? n2 : i2)) return void (o2.numPoints += t4.length / 3);\n const a2 = [];\n for (let e3 = 0; e3 < t4.length; e3 += 3) (0 === i2 || t4[e3 + 2] > n2) && (o2.numSimplified++, a2.push(t4[e3], t4[e3 + 1])), o2.numPoints++;\n s2 && function(e3, t5) {\n let o3 = 0;\n for (let t6 = 0, i3 = e3.length, s3 = i3 - 2; t6 < i3; s3 = t6, t6 += 2) o3 += (e3[t6] - e3[s3]) * (e3[t6 + 1] + e3[s3 + 1]);\n if (o3 > 0 === t5) for (let t6 = 0, o4 = e3.length; t6 < o4 / 2; t6 += 2) {\n const i3 = e3[t6], s3 = e3[t6 + 1];\n e3[t6] = e3[o4 - 2 - t6], e3[t6 + 1] = e3[o4 - 1 - t6], e3[o4 - 2 - t6] = i3, e3[o4 - 1 - t6] = s3;\n }\n }(a2, r2), e2.push(a2);\n }\n const he = { maxZoom: 14, indexMaxZoom: 5, indexMaxPoints: 1e5, tolerance: 3, extent: 4096, buffer: 64, lineMetrics: false, promoteId: null, generateId: false, debug: 0 };\n class de {\n constructor(e2, t4) {\n const o2 = (t4 = this.options = function(e3, t5) {\n for (const o3 in t5) e3[o3] = t5[o3];\n return e3;\n }(Object.create(he), t4)).debug;\n if (o2 && console.time(\"preprocess data\"), t4.maxZoom < 0 || t4.maxZoom > 24) throw new Error(\"maxZoom should be in the 0-24 range\");\n if (t4.promoteId && t4.generateId) throw new Error(\"promoteId and generateId cannot be used together.\");\n let i2 = function(e3, t5) {\n const o3 = [];\n if (\"FeatureCollection\" === e3.type) for (let i3 = 0; i3 < e3.features.length; i3++) Y(o3, e3.features[i3], t5, i3);\n else Y(o3, \"Feature\" === e3.type ? e3 : { geometry: e3 }, t5);\n return o3;\n }(e2, t4);\n this.tiles = {}, this.tileCoords = [], o2 && (console.timeEnd(\"preprocess data\"), console.log(\"index: maxZoom: %d, maxPoints: %d\", t4.indexMaxZoom, t4.indexMaxPoints), console.time(\"generate tiles\"), this.stats = {}, this.total = 0), i2 = function(e3, t5) {\n const o3 = t5.buffer / t5.extent;\n let i3 = e3;\n const s2 = U(e3, 1, -1 - o3, o3, 0, -1, 2, t5), r2 = U(e3, 1, 1 - o3, 2 + o3, 0, -1, 2, t5);\n return (s2 || r2) && (i3 = U(e3, 1, -o3, 1 + o3, 0, -1, 2, t5) || [], s2 && (i3 = se(s2, 1).concat(i3)), r2 && (i3 = i3.concat(se(r2, -1)))), i3;\n }(i2, t4), i2.length && this.splitTile(i2, 0, 0, 0), o2 && (i2.length && console.log(\"features: %d, points: %d\", this.tiles[0].numFeatures, this.tiles[0].numPoints), console.timeEnd(\"generate tiles\"), console.log(\"tiles generated:\", this.total, JSON.stringify(this.stats)));\n }\n splitTile(e2, t4, o2, i2, s2, r2, n2) {\n const a2 = [e2, t4, o2, i2], l2 = this.options, c2 = l2.debug;\n for (; a2.length; ) {\n i2 = a2.pop(), o2 = a2.pop(), t4 = a2.pop(), e2 = a2.pop();\n const u2 = 1 << t4, h2 = fe(t4, o2, i2);\n let d2 = this.tiles[h2];\n if (!d2 && (c2 > 1 && console.time(\"creation\"), d2 = this.tiles[h2] = le(e2, t4, o2, i2, l2), this.tileCoords.push({ z: t4, x: o2, y: i2 }), c2)) {\n c2 > 1 && (console.log(\"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)\", t4, o2, i2, d2.numFeatures, d2.numPoints, d2.numSimplified), console.timeEnd(\"creation\"));\n const e3 = `z${t4}`;\n this.stats[e3] = (this.stats[e3] || 0) + 1, this.total++;\n }\n if (d2.source = e2, null == s2) {\n if (t4 === l2.indexMaxZoom || d2.numPoints <= l2.indexMaxPoints) continue;\n } else {\n if (t4 === l2.maxZoom || t4 === s2) continue;\n if (null != s2) {\n const e3 = s2 - t4;\n if (o2 !== r2 >> e3 || i2 !== n2 >> e3) continue;\n }\n }\n if (d2.source = null, 0 === e2.length) continue;\n c2 > 1 && console.time(\"clipping\");\n const f2 = 0.5 * l2.buffer / l2.extent, g2 = 0.5 - f2, p2 = 0.5 + f2, m2 = 1 + f2;\n let y2 = null, v2 = null, w2 = null, x2 = null, b2 = U(e2, u2, o2 - f2, o2 + p2, 0, d2.minX, d2.maxX, l2), S2 = U(e2, u2, o2 + g2, o2 + m2, 0, d2.minX, d2.maxX, l2);\n e2 = null, b2 && (y2 = U(b2, u2, i2 - f2, i2 + p2, 1, d2.minY, d2.maxY, l2), v2 = U(b2, u2, i2 + g2, i2 + m2, 1, d2.minY, d2.maxY, l2), b2 = null), S2 && (w2 = U(S2, u2, i2 - f2, i2 + p2, 1, d2.minY, d2.maxY, l2), x2 = U(S2, u2, i2 + g2, i2 + m2, 1, d2.minY, d2.maxY, l2), S2 = null), c2 > 1 && console.timeEnd(\"clipping\"), a2.push(y2 || [], t4 + 1, 2 * o2, 2 * i2), a2.push(v2 || [], t4 + 1, 2 * o2, 2 * i2 + 1), a2.push(w2 || [], t4 + 1, 2 * o2 + 1, 2 * i2), a2.push(x2 || [], t4 + 1, 2 * o2 + 1, 2 * i2 + 1);\n }\n }\n getTile(e2, t4, o2) {\n e2 = +e2, t4 = +t4, o2 = +o2;\n const i2 = this.options, { extent: s2, debug: r2 } = i2;\n if (e2 < 0 || e2 > 24) return null;\n const n2 = 1 << e2, a2 = fe(e2, t4 = t4 + n2 & n2 - 1, o2);\n if (this.tiles[a2]) return ne(this.tiles[a2], s2);\n r2 > 1 && console.log(\"drilling down to z%d-%d-%d\", e2, t4, o2);\n let l2, c2 = e2, u2 = t4, h2 = o2;\n for (; !l2 && c2 > 0; ) c2--, u2 >>= 1, h2 >>= 1, l2 = this.tiles[fe(c2, u2, h2)];\n return l2 && l2.source ? (r2 > 1 && (console.log(\"found parent tile z%d-%d-%d\", c2, u2, h2), console.time(\"drilling down\")), this.splitTile(l2.source, c2, u2, h2, e2, t4, o2), r2 > 1 && console.timeEnd(\"drilling down\"), this.tiles[a2] ? ne(this.tiles[a2], s2) : null) : null;\n }\n }\n function fe(e2, t4, o2) {\n return 32 * ((1 << e2) * o2 + t4) + e2;\n }\n function ge(e2, t4) {\n return t4 ? e2.properties[t4] : e2.id;\n }\n function pe(e2, t4) {\n if (null == e2) return true;\n if (\"Feature\" === e2.type) return null != ge(e2, t4);\n if (\"FeatureCollection\" === e2.type) {\n const o2 = /* @__PURE__ */ new Set();\n for (const i2 of e2.features) {\n const e3 = ge(i2, t4);\n if (null == e3) return false;\n if (o2.has(e3)) return false;\n o2.add(e3);\n }\n return true;\n }\n return false;\n }\n function me(e2, t4) {\n const o2 = /* @__PURE__ */ new Map();\n if (null == e2) ;\n else if (\"Feature\" === e2.type) o2.set(ge(e2, t4), e2);\n else for (const i2 of e2.features) o2.set(ge(i2, t4), i2);\n return o2;\n }\n class ye extends r {\n constructor() {\n super(...arguments), this._dataUpdateable = /* @__PURE__ */ new Map();\n }\n loadVectorTile(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n const o3 = t4.tileID.canonical;\n if (!this._geoJSONIndex) throw new Error(\"Unable to parse the data into a cluster or geojson\");\n const i2 = this._geoJSONIndex.getTile(o3.z, o3.x, o3.y);\n if (!i2) return null;\n const s2 = new class {\n constructor(t5) {\n this.layers = { _geojsonTileLayer: this }, this.name = \"_geojsonTileLayer\", this.extent = e.X, this.length = t5.length, this._features = t5;\n }\n feature(t5) {\n return new class {\n constructor(t6) {\n this._feature = t6, this.extent = e.X, this.type = t6.type, this.properties = t6.tags, \"id\" in t6 && !isNaN(t6.id) && (this.id = parseInt(t6.id, 10));\n }\n loadGeometry() {\n if (1 === this._feature.type) {\n const t6 = [];\n for (const o4 of this._feature.geometry) t6.push([new e.P(o4[0], o4[1])]);\n return t6;\n }\n {\n const t6 = [];\n for (const o4 of this._feature.geometry) {\n const i3 = [];\n for (const t7 of o4) i3.push(new e.P(t7[0], t7[1]));\n t6.push(i3);\n }\n return t6;\n }\n }\n toGeoJSON(e2, t6, o4) {\n return u.call(this, e2, t6, o4);\n }\n }(this._features[t5]);\n }\n }(i2.features);\n let r2 = k(s2);\n return 0 === r2.byteOffset && r2.byteLength === r2.buffer.byteLength || (r2 = new Uint8Array(r2)), { vectorTile: s2, rawData: r2.buffer };\n });\n }\n loadData(t4) {\n return e._(this, void 0, void 0, function* () {\n var o2;\n null === (o2 = this._pendingRequest) || void 0 === o2 || o2.abort();\n const i2 = !!(t4 && t4.request && t4.request.collectResourceTiming) && new e.bv(t4.request);\n this._pendingRequest = new AbortController();\n try {\n this._pendingData = this.loadAndProcessGeoJSON(t4, this._pendingRequest), this._geoJSONIndex = t4.cluster ? new z(function({ superclusterOptions: t5, clusterProperties: o4 }) {\n if (!o4 || !t5) return t5;\n const i3 = {}, s3 = {}, r2 = { accumulated: null, zoom: 0 }, n2 = { properties: null }, a2 = Object.keys(o4);\n for (const t6 of a2) {\n const [r3, n3] = o4[t6], a3 = e.bC(n3), l2 = e.bC(\"string\" == typeof r3 ? [r3, [\"accumulated\"], [\"get\", t6]] : r3);\n i3[t6] = a3.value, s3[t6] = l2.value;\n }\n return t5.map = (e2) => {\n n2.properties = e2;\n const t6 = {};\n for (const e3 of a2) t6[e3] = i3[e3].evaluate(r2, n2);\n return t6;\n }, t5.reduce = (e2, t6) => {\n n2.properties = t6;\n for (const t7 of a2) r2.accumulated = e2[t7], e2[t7] = s3[t7].evaluate(r2, n2);\n }, t5;\n }(t4)).load((yield this._pendingData).features) : (s2 = yield this._pendingData, new de(s2, t4.geojsonVtOptions)), this.loaded = {};\n const o3 = {};\n if (i2) {\n const e2 = i2.finish();\n e2 && (o3.resourceTiming = {}, o3.resourceTiming[t4.source] = JSON.parse(JSON.stringify(e2)));\n }\n return o3;\n } catch (t5) {\n if (delete this._pendingRequest, e.bB(t5)) return { abandoned: true };\n throw t5;\n }\n var s2;\n });\n }\n getData() {\n return e._(this, void 0, void 0, function* () {\n return this._pendingData;\n });\n }\n reloadTile(e2) {\n const t4 = this.loaded;\n return t4 && t4[e2.uid] ? super.reloadTile(e2) : this.loadTile(e2);\n }\n loadAndProcessGeoJSON(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n let i2 = yield this.loadGeoJSON(t4, o2);\n if (delete this._pendingRequest, \"object\" != typeof i2) throw new Error(`Input data given to '${t4.source}' is not a valid GeoJSON object.`);\n if (c(i2, true), t4.filter) {\n const o3 = e.bC(t4.filter, { type: \"boolean\", \"property-type\": \"data-driven\", overridable: false, transition: false });\n if (\"error\" === o3.result) throw new Error(o3.value.map((e2) => `${e2.key}: ${e2.message}`).join(\", \"));\n const s2 = i2.features.filter((e2) => o3.value.evaluate({ zoom: 0 }, e2));\n i2 = { type: \"FeatureCollection\", features: s2 };\n }\n return i2;\n });\n }\n loadGeoJSON(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n const { promoteId: i2 } = t4;\n if (t4.request) {\n const s2 = yield e.h(t4.request, o2);\n return this._dataUpdateable = pe(s2.data, i2) ? me(s2.data, i2) : void 0, s2.data;\n }\n if (\"string\" == typeof t4.data) try {\n const e2 = JSON.parse(t4.data);\n return this._dataUpdateable = pe(e2, i2) ? me(e2, i2) : void 0, e2;\n } catch (e2) {\n throw new Error(`Input data given to '${t4.source}' is not a valid GeoJSON object.`);\n }\n if (!t4.dataDiff) throw new Error(`Input data given to '${t4.source}' is not a valid GeoJSON object.`);\n if (!this._dataUpdateable) throw new Error(`Cannot update existing geojson data in ${t4.source}`);\n return function(e2, t5, o3) {\n var i3, s2, r2, n2;\n if (t5.removeAll && e2.clear(), t5.remove) for (const o4 of t5.remove) e2.delete(o4);\n if (t5.add) for (const i4 of t5.add) {\n const t6 = ge(i4, o3);\n null != t6 && e2.set(t6, i4);\n }\n if (t5.update) for (const o4 of t5.update) {\n let t6 = e2.get(o4.id);\n if (null == t6) continue;\n const a2 = !o4.removeAllProperties && ((null === (i3 = o4.removeProperties) || void 0 === i3 ? void 0 : i3.length) > 0 || (null === (s2 = o4.addOrUpdateProperties) || void 0 === s2 ? void 0 : s2.length) > 0);\n if ((o4.newGeometry || o4.removeAllProperties || a2) && (t6 = Object.assign({}, t6), e2.set(o4.id, t6), a2 && (t6.properties = Object.assign({}, t6.properties))), o4.newGeometry && (t6.geometry = o4.newGeometry), o4.removeAllProperties) t6.properties = {};\n else if ((null === (r2 = o4.removeProperties) || void 0 === r2 ? void 0 : r2.length) > 0) for (const e3 of o4.removeProperties) Object.prototype.hasOwnProperty.call(t6.properties, e3) && delete t6.properties[e3];\n if ((null === (n2 = o4.addOrUpdateProperties) || void 0 === n2 ? void 0 : n2.length) > 0) for (const { key: e3, value: i4 } of o4.addOrUpdateProperties) t6.properties[e3] = i4;\n }\n }(this._dataUpdateable, t4.dataDiff, i2), { type: \"FeatureCollection\", features: Array.from(this._dataUpdateable.values()) };\n });\n }\n removeSource(t4) {\n return e._(this, void 0, void 0, function* () {\n this._pendingRequest && this._pendingRequest.abort();\n });\n }\n getClusterExpansionZoom(e2) {\n return this._geoJSONIndex.getClusterExpansionZoom(e2.clusterId);\n }\n getClusterChildren(e2) {\n return this._geoJSONIndex.getChildren(e2.clusterId);\n }\n getClusterLeaves(e2) {\n return this._geoJSONIndex.getLeaves(e2.clusterId, e2.limit, e2.offset);\n }\n }\n class ve {\n constructor(t4) {\n this.self = t4, this.actor = new e.F(t4), this.layerIndexes = {}, this.availableImages = {}, this.workerSources = {}, this.demWorkerSources = {}, this.externalWorkerSourceTypes = {}, this.self.registerWorkerSource = (e2, t5) => {\n if (this.externalWorkerSourceTypes[e2]) throw new Error(`Worker source with name \"${e2}\" already registered.`);\n this.externalWorkerSourceTypes[e2] = t5;\n }, this.self.addProtocol = e.bi, this.self.removeProtocol = e.bj, this.self.registerRTLTextPlugin = (t5) => {\n if (e.bD.isParsed()) throw new Error(\"RTL text plugin already registered.\");\n e.bD.setMethods(t5);\n }, this.actor.registerMessageHandler(\"LDT\", (e2, t5) => this._getDEMWorkerSource(e2, t5.source).loadTile(t5)), this.actor.registerMessageHandler(\"RDT\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this._getDEMWorkerSource(t5, o2.source).removeTile(o2);\n })), this.actor.registerMessageHandler(\"GCEZ\", (t5, o2) => e._(this, void 0, void 0, function* () {\n return this._getWorkerSource(t5, o2.type, o2.source).getClusterExpansionZoom(o2);\n })), this.actor.registerMessageHandler(\"GCC\", (t5, o2) => e._(this, void 0, void 0, function* () {\n return this._getWorkerSource(t5, o2.type, o2.source).getClusterChildren(o2);\n })), this.actor.registerMessageHandler(\"GCL\", (t5, o2) => e._(this, void 0, void 0, function* () {\n return this._getWorkerSource(t5, o2.type, o2.source).getClusterLeaves(o2);\n })), this.actor.registerMessageHandler(\"LD\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).loadData(t5)), this.actor.registerMessageHandler(\"GD\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).getData()), this.actor.registerMessageHandler(\"LT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).loadTile(t5)), this.actor.registerMessageHandler(\"RT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).reloadTile(t5)), this.actor.registerMessageHandler(\"AT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).abortTile(t5)), this.actor.registerMessageHandler(\"RMT\", (e2, t5) => this._getWorkerSource(e2, t5.type, t5.source).removeTile(t5)), this.actor.registerMessageHandler(\"RS\", (t5, o2) => e._(this, void 0, void 0, function* () {\n if (!this.workerSources[t5] || !this.workerSources[t5][o2.type] || !this.workerSources[t5][o2.type][o2.source]) return;\n const e2 = this.workerSources[t5][o2.type][o2.source];\n delete this.workerSources[t5][o2.type][o2.source], void 0 !== e2.removeSource && e2.removeSource(o2);\n })), this.actor.registerMessageHandler(\"RM\", (t5) => e._(this, void 0, void 0, function* () {\n delete this.layerIndexes[t5], delete this.availableImages[t5], delete this.workerSources[t5], delete this.demWorkerSources[t5];\n })), this.actor.registerMessageHandler(\"SR\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this.referrer = o2;\n })), this.actor.registerMessageHandler(\"SRPS\", (e2, t5) => this._syncRTLPluginState(e2, t5)), this.actor.registerMessageHandler(\"IS\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this.self.importScripts(o2);\n })), this.actor.registerMessageHandler(\"SI\", (e2, t5) => this._setImages(e2, t5)), this.actor.registerMessageHandler(\"UL\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this._getLayerIndex(t5).update(o2.layers, o2.removedIds);\n })), this.actor.registerMessageHandler(\"SL\", (t5, o2) => e._(this, void 0, void 0, function* () {\n this._getLayerIndex(t5).replace(o2);\n }));\n }\n _setImages(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n this.availableImages[t4] = o2;\n for (const e2 in this.workerSources[t4]) {\n const i2 = this.workerSources[t4][e2];\n for (const e3 in i2) i2[e3].availableImages = o2;\n }\n });\n }\n _syncRTLPluginState(t4, o2) {\n return e._(this, void 0, void 0, function* () {\n if (e.bD.isParsed()) return e.bD.getState();\n if (\"loading\" !== o2.pluginStatus) return e.bD.setState(o2), o2;\n const t5 = o2.pluginURL;\n if (this.self.importScripts(t5), e.bD.isParsed()) {\n const o3 = { pluginStatus: \"loaded\", pluginURL: t5 };\n return e.bD.setState(o3), o3;\n }\n throw e.bD.setState({ pluginStatus: \"error\", pluginURL: \"\" }), new Error(`RTL Text Plugin failed to import scripts from ${t5}`);\n });\n }\n _getAvailableImages(e2) {\n let t4 = this.availableImages[e2];\n return t4 || (t4 = []), t4;\n }\n _getLayerIndex(e2) {\n let o2 = this.layerIndexes[e2];\n return o2 || (o2 = this.layerIndexes[e2] = new t()), o2;\n }\n _getWorkerSource(e2, t4, o2) {\n if (this.workerSources[e2] || (this.workerSources[e2] = {}), this.workerSources[e2][t4] || (this.workerSources[e2][t4] = {}), !this.workerSources[e2][t4][o2]) {\n const i2 = { sendAsync: (t5, o3) => (t5.targetMapId = e2, this.actor.sendAsync(t5, o3)) };\n switch (t4) {\n case \"vector\":\n this.workerSources[e2][t4][o2] = new r(i2, this._getLayerIndex(e2), this._getAvailableImages(e2));\n break;\n case \"geojson\":\n this.workerSources[e2][t4][o2] = new ye(i2, this._getLayerIndex(e2), this._getAvailableImages(e2));\n break;\n default:\n this.workerSources[e2][t4][o2] = new this.externalWorkerSourceTypes[t4](i2, this._getLayerIndex(e2), this._getAvailableImages(e2));\n }\n }\n return this.workerSources[e2][t4][o2];\n }\n _getDEMWorkerSource(e2, t4) {\n return this.demWorkerSources[e2] || (this.demWorkerSources[e2] = {}), this.demWorkerSources[e2][t4] || (this.demWorkerSources[e2][t4] = new n()), this.demWorkerSources[e2][t4];\n }\n }\n return e.i(self) && (self.worker = new ve(self)), ve;\n });\n define2(\"index\", [\"exports\", \"./shared\"], function(t, e) {\n \"use strict\";\n var i = \"4.7.1\";\n let a, s;\n const o = { now: \"undefined\" != typeof performance && performance && performance.now ? performance.now.bind(performance) : Date.now.bind(Date), frameAsync: (t4) => new Promise((i2, a2) => {\n const s2 = requestAnimationFrame(i2);\n t4.signal.addEventListener(\"abort\", () => {\n cancelAnimationFrame(s2), a2(e.c());\n });\n }), getImageData(t4, e2 = 0) {\n return this.getImageCanvasContext(t4).getImageData(-e2, -e2, t4.width + 2 * e2, t4.height + 2 * e2);\n }, getImageCanvasContext(t4) {\n const e2 = window.document.createElement(\"canvas\"), i2 = e2.getContext(\"2d\", { willReadFrequently: true });\n if (!i2) throw new Error(\"failed to create canvas 2d context\");\n return e2.width = t4.width, e2.height = t4.height, i2.drawImage(t4, 0, 0, t4.width, t4.height), i2;\n }, resolveURL: (t4) => (a || (a = document.createElement(\"a\")), a.href = t4, a.href), hardwareConcurrency: \"undefined\" != typeof navigator && navigator.hardwareConcurrency || 4, get prefersReducedMotion() {\n return !!matchMedia && (null == s && (s = matchMedia(\"(prefers-reduced-motion: reduce)\")), s.matches);\n } };\n class r {\n static testProp(t4) {\n if (!r.docStyle) return t4[0];\n for (let e2 = 0; e2 < t4.length; e2++) if (t4[e2] in r.docStyle) return t4[e2];\n return t4[0];\n }\n static create(t4, e2, i2) {\n const a2 = window.document.createElement(t4);\n return void 0 !== e2 && (a2.className = e2), i2 && i2.appendChild(a2), a2;\n }\n static createNS(t4, e2) {\n return window.document.createElementNS(t4, e2);\n }\n static disableDrag() {\n r.docStyle && r.selectProp && (r.userSelect = r.docStyle[r.selectProp], r.docStyle[r.selectProp] = \"none\");\n }\n static enableDrag() {\n r.docStyle && r.selectProp && (r.docStyle[r.selectProp] = r.userSelect);\n }\n static setTransform(t4, e2) {\n t4.style[r.transformProp] = e2;\n }\n static addEventListener(t4, e2, i2, a2 = {}) {\n t4.addEventListener(e2, i2, \"passive\" in a2 ? a2 : a2.capture);\n }\n static removeEventListener(t4, e2, i2, a2 = {}) {\n t4.removeEventListener(e2, i2, \"passive\" in a2 ? a2 : a2.capture);\n }\n static suppressClickInternal(t4) {\n t4.preventDefault(), t4.stopPropagation(), window.removeEventListener(\"click\", r.suppressClickInternal, true);\n }\n static suppressClick() {\n window.addEventListener(\"click\", r.suppressClickInternal, true), window.setTimeout(() => {\n window.removeEventListener(\"click\", r.suppressClickInternal, true);\n }, 0);\n }\n static getScale(t4) {\n const e2 = t4.getBoundingClientRect();\n return { x: e2.width / t4.offsetWidth || 1, y: e2.height / t4.offsetHeight || 1, boundingClientRect: e2 };\n }\n static getPoint(t4, i2, a2) {\n const s2 = i2.boundingClientRect;\n return new e.P((a2.clientX - s2.left) / i2.x - t4.clientLeft, (a2.clientY - s2.top) / i2.y - t4.clientTop);\n }\n static mousePos(t4, e2) {\n const i2 = r.getScale(t4);\n return r.getPoint(t4, i2, e2);\n }\n static touchPos(t4, e2) {\n const i2 = [], a2 = r.getScale(t4);\n for (let s2 = 0; s2 < e2.length; s2++) i2.push(r.getPoint(t4, a2, e2[s2]));\n return i2;\n }\n static mouseButton(t4) {\n return t4.button;\n }\n static remove(t4) {\n t4.parentNode && t4.parentNode.removeChild(t4);\n }\n }\n r.docStyle = \"undefined\" != typeof window && window.document && window.document.documentElement.style, r.selectProp = r.testProp([\"userSelect\", \"MozUserSelect\", \"WebkitUserSelect\", \"msUserSelect\"]), r.transformProp = r.testProp([\"transform\", \"WebkitTransform\"]);\n const n = { supported: false, testSupport: function(t4) {\n !c && h && (u ? d(t4) : l = t4);\n } };\n let l, h, c = false, u = false;\n function d(t4) {\n const e2 = t4.createTexture();\n t4.bindTexture(t4.TEXTURE_2D, e2);\n try {\n if (t4.texImage2D(t4.TEXTURE_2D, 0, t4.RGBA, t4.RGBA, t4.UNSIGNED_BYTE, h), t4.isContextLost()) return;\n n.supported = true;\n } catch (t5) {\n }\n t4.deleteTexture(e2), c = true;\n }\n var _;\n \"undefined\" != typeof document && (h = document.createElement(\"img\"), h.onload = () => {\n l && d(l), l = null, u = true;\n }, h.onerror = () => {\n c = true, l = null;\n }, h.src = \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=\"), function(t4) {\n let i2, a2, s2, o2;\n t4.resetRequestQueue = () => {\n i2 = [], a2 = 0, s2 = 0, o2 = {};\n }, t4.addThrottleControl = (t5) => {\n const e2 = s2++;\n return o2[e2] = t5, e2;\n }, t4.removeThrottleControl = (t5) => {\n delete o2[t5], l2();\n }, t4.getImage = (t5, a3, s3 = true) => new Promise((o3, r3) => {\n n.supported && (t5.headers || (t5.headers = {}), t5.headers.accept = \"image/webp,*/*\"), e.e(t5, { type: \"image\" }), i2.push({ abortController: a3, requestParameters: t5, supportImageRefresh: s3, state: \"queued\", onError: (t6) => {\n r3(t6);\n }, onSuccess: (t6) => {\n o3(t6);\n } }), l2();\n });\n const r2 = (t5) => e._(this, void 0, void 0, function* () {\n t5.state = \"running\";\n const { requestParameters: i3, supportImageRefresh: s3, onError: o3, onSuccess: r3, abortController: n2 } = t5, c2 = false === s3 && !e.i(self) && !e.g(i3.url) && (!i3.headers || Object.keys(i3.headers).reduce((t6, e2) => t6 && \"accept\" === e2, true));\n a2++;\n const u2 = c2 ? h2(i3, n2) : e.m(i3, n2);\n try {\n const i4 = yield u2;\n delete t5.abortController, t5.state = \"completed\", i4.data instanceof HTMLImageElement || e.b(i4.data) ? r3(i4) : i4.data && r3({ data: yield (d2 = i4.data, \"function\" == typeof createImageBitmap ? e.d(d2) : e.f(d2)), cacheControl: i4.cacheControl, expires: i4.expires });\n } catch (e2) {\n delete t5.abortController, o3(e2);\n } finally {\n a2--, l2();\n }\n var d2;\n }), l2 = () => {\n const t5 = (() => {\n for (const t6 of Object.keys(o2)) if (o2[t6]()) return true;\n return false;\n })() ? e.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME : e.a.MAX_PARALLEL_IMAGE_REQUESTS;\n for (let e2 = a2; e2 < t5 && i2.length > 0; e2++) {\n const t6 = i2.shift();\n t6.abortController.signal.aborted ? e2-- : r2(t6);\n }\n }, h2 = (t5, i3) => new Promise((a3, s3) => {\n const o3 = new Image(), r3 = t5.url, n2 = t5.credentials;\n n2 && \"include\" === n2 ? o3.crossOrigin = \"use-credentials\" : (n2 && \"same-origin\" === n2 || !e.s(r3)) && (o3.crossOrigin = \"anonymous\"), i3.signal.addEventListener(\"abort\", () => {\n o3.src = \"\", s3(e.c());\n }), o3.fetchPriority = \"high\", o3.onload = () => {\n o3.onerror = o3.onload = null, a3({ data: o3 });\n }, o3.onerror = () => {\n o3.onerror = o3.onload = null, i3.signal.aborted || s3(new Error(\"Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.\"));\n }, o3.src = r3;\n });\n }(_ || (_ = {})), _.resetRequestQueue();\n class p {\n constructor(t4) {\n this._transformRequestFn = t4;\n }\n transformRequest(t4, e2) {\n return this._transformRequestFn && this._transformRequestFn(t4, e2) || { url: t4 };\n }\n setTransformRequest(t4) {\n this._transformRequestFn = t4;\n }\n }\n function m(t4) {\n var i2 = new e.A(3);\n return i2[0] = t4[0], i2[1] = t4[1], i2[2] = t4[2], i2;\n }\n var f, g = function(t4, e2, i2) {\n return t4[0] = e2[0] - i2[0], t4[1] = e2[1] - i2[1], t4[2] = e2[2] - i2[2], t4;\n };\n f = new e.A(3), e.A != Float32Array && (f[0] = 0, f[1] = 0, f[2] = 0);\n var v = function(t4) {\n var e2 = t4[0], i2 = t4[1];\n return e2 * e2 + i2 * i2;\n };\n function x(t4) {\n const e2 = [];\n if (\"string\" == typeof t4) e2.push({ id: \"default\", url: t4 });\n else if (t4 && t4.length > 0) {\n const i2 = [];\n for (const { id: a2, url: s2 } of t4) {\n const t5 = `${a2}${s2}`;\n -1 === i2.indexOf(t5) && (i2.push(t5), e2.push({ id: a2, url: s2 }));\n }\n }\n return e2;\n }\n function y(t4, e2, i2) {\n const a2 = t4.split(\"?\");\n return a2[0] += `${e2}${i2}`, a2.join(\"?\");\n }\n !function() {\n var t4 = new e.A(2);\n e.A != Float32Array && (t4[0] = 0, t4[1] = 0);\n }();\n class b {\n constructor(t4, e2, i2, a2) {\n this.context = t4, this.format = i2, this.texture = t4.gl.createTexture(), this.update(e2, a2);\n }\n update(t4, i2, a2) {\n const { width: s2, height: o2 } = t4, r2 = !(this.size && this.size[0] === s2 && this.size[1] === o2 || a2), { context: n2 } = this, { gl: l2 } = n2;\n if (this.useMipmap = Boolean(i2 && i2.useMipmap), l2.bindTexture(l2.TEXTURE_2D, this.texture), n2.pixelStoreUnpackFlipY.set(false), n2.pixelStoreUnpack.set(1), n2.pixelStoreUnpackPremultiplyAlpha.set(this.format === l2.RGBA && (!i2 || false !== i2.premultiply)), r2) this.size = [s2, o2], t4 instanceof HTMLImageElement || t4 instanceof HTMLCanvasElement || t4 instanceof HTMLVideoElement || t4 instanceof ImageData || e.b(t4) ? l2.texImage2D(l2.TEXTURE_2D, 0, this.format, this.format, l2.UNSIGNED_BYTE, t4) : l2.texImage2D(l2.TEXTURE_2D, 0, this.format, s2, o2, 0, this.format, l2.UNSIGNED_BYTE, t4.data);\n else {\n const { x: i3, y: r3 } = a2 || { x: 0, y: 0 };\n t4 instanceof HTMLImageElement || t4 instanceof HTMLCanvasElement || t4 instanceof HTMLVideoElement || t4 instanceof ImageData || e.b(t4) ? l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, r3, l2.RGBA, l2.UNSIGNED_BYTE, t4) : l2.texSubImage2D(l2.TEXTURE_2D, 0, i3, r3, s2, o2, l2.RGBA, l2.UNSIGNED_BYTE, t4.data);\n }\n this.useMipmap && this.isSizePowerOfTwo() && l2.generateMipmap(l2.TEXTURE_2D);\n }\n bind(t4, e2, i2) {\n const { context: a2 } = this, { gl: s2 } = a2;\n s2.bindTexture(s2.TEXTURE_2D, this.texture), i2 !== s2.LINEAR_MIPMAP_NEAREST || this.isSizePowerOfTwo() || (i2 = s2.LINEAR), t4 !== this.filter && (s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_MAG_FILTER, t4), s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_MIN_FILTER, i2 || t4), this.filter = t4), e2 !== this.wrap && (s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_WRAP_S, e2), s2.texParameteri(s2.TEXTURE_2D, s2.TEXTURE_WRAP_T, e2), this.wrap = e2);\n }\n isSizePowerOfTwo() {\n return this.size[0] === this.size[1] && Math.log(this.size[0]) / Math.LN2 % 1 == 0;\n }\n destroy() {\n const { gl: t4 } = this.context;\n t4.deleteTexture(this.texture), this.texture = null;\n }\n }\n function w(t4) {\n const { userImage: e2 } = t4;\n return !!(e2 && e2.render && e2.render()) && (t4.data.replace(new Uint8Array(e2.data.buffer)), true);\n }\n class T extends e.E {\n constructor() {\n super(), this.images = {}, this.updatedImages = {}, this.callbackDispatchedThisFrame = {}, this.loaded = false, this.requestors = [], this.patterns = {}, this.atlasImage = new e.R({ width: 1, height: 1 }), this.dirty = true;\n }\n isLoaded() {\n return this.loaded;\n }\n setLoaded(t4) {\n if (this.loaded !== t4 && (this.loaded = t4, t4)) {\n for (const { ids: t5, promiseResolve: e2 } of this.requestors) e2(this._getImagesForIds(t5));\n this.requestors = [];\n }\n }\n getImage(t4) {\n const i2 = this.images[t4];\n if (i2 && !i2.data && i2.spriteData) {\n const t5 = i2.spriteData;\n i2.data = new e.R({ width: t5.width, height: t5.height }, t5.context.getImageData(t5.x, t5.y, t5.width, t5.height).data), i2.spriteData = null;\n }\n return i2;\n }\n addImage(t4, e2) {\n if (this.images[t4]) throw new Error(`Image id ${t4} already exist, use updateImage instead`);\n this._validate(t4, e2) && (this.images[t4] = e2);\n }\n _validate(t4, i2) {\n let a2 = true;\n const s2 = i2.data || i2.spriteData;\n return this._validateStretch(i2.stretchX, s2 && s2.width) || (this.fire(new e.j(new Error(`Image \"${t4}\" has invalid \"stretchX\" value`))), a2 = false), this._validateStretch(i2.stretchY, s2 && s2.height) || (this.fire(new e.j(new Error(`Image \"${t4}\" has invalid \"stretchY\" value`))), a2 = false), this._validateContent(i2.content, i2) || (this.fire(new e.j(new Error(`Image \"${t4}\" has invalid \"content\" value`))), a2 = false), a2;\n }\n _validateStretch(t4, e2) {\n if (!t4) return true;\n let i2 = 0;\n for (const a2 of t4) {\n if (a2[0] < i2 || a2[1] < a2[0] || e2 < a2[1]) return false;\n i2 = a2[1];\n }\n return true;\n }\n _validateContent(t4, e2) {\n if (!t4) return true;\n if (4 !== t4.length) return false;\n const i2 = e2.spriteData, a2 = i2 && i2.width || e2.data.width, s2 = i2 && i2.height || e2.data.height;\n return !(t4[0] < 0 || a2 < t4[0] || t4[1] < 0 || s2 < t4[1] || t4[2] < 0 || a2 < t4[2] || t4[3] < 0 || s2 < t4[3] || t4[2] < t4[0] || t4[3] < t4[1]);\n }\n updateImage(t4, e2, i2 = true) {\n const a2 = this.getImage(t4);\n if (i2 && (a2.data.width !== e2.data.width || a2.data.height !== e2.data.height)) throw new Error(`size mismatch between old image (${a2.data.width}x${a2.data.height}) and new image (${e2.data.width}x${e2.data.height}).`);\n e2.version = a2.version + 1, this.images[t4] = e2, this.updatedImages[t4] = true;\n }\n removeImage(t4) {\n const e2 = this.images[t4];\n delete this.images[t4], delete this.patterns[t4], e2.userImage && e2.userImage.onRemove && e2.userImage.onRemove();\n }\n listImages() {\n return Object.keys(this.images);\n }\n getImages(t4) {\n return new Promise((e2, i2) => {\n let a2 = true;\n if (!this.isLoaded()) for (const e3 of t4) this.images[e3] || (a2 = false);\n this.isLoaded() || a2 ? e2(this._getImagesForIds(t4)) : this.requestors.push({ ids: t4, promiseResolve: e2 });\n });\n }\n _getImagesForIds(t4) {\n const i2 = {};\n for (const a2 of t4) {\n let t5 = this.getImage(a2);\n t5 || (this.fire(new e.k(\"styleimagemissing\", { id: a2 })), t5 = this.getImage(a2)), t5 ? i2[a2] = { data: t5.data.clone(), pixelRatio: t5.pixelRatio, sdf: t5.sdf, version: t5.version, stretchX: t5.stretchX, stretchY: t5.stretchY, content: t5.content, textFitWidth: t5.textFitWidth, textFitHeight: t5.textFitHeight, hasRenderCallback: Boolean(t5.userImage && t5.userImage.render) } : e.w(`Image \"${a2}\" could not be loaded. Please make sure you have added the image with map.addImage() or a \"sprite\" property in your style. You can provide missing images by listening for the \"styleimagemissing\" map event.`);\n }\n return i2;\n }\n getPixelSize() {\n const { width: t4, height: e2 } = this.atlasImage;\n return { width: t4, height: e2 };\n }\n getPattern(t4) {\n const i2 = this.patterns[t4], a2 = this.getImage(t4);\n if (!a2) return null;\n if (i2 && i2.position.version === a2.version) return i2.position;\n if (i2) i2.position.version = a2.version;\n else {\n const i3 = { w: a2.data.width + 2, h: a2.data.height + 2, x: 0, y: 0 }, s2 = new e.I(i3, a2);\n this.patterns[t4] = { bin: i3, position: s2 };\n }\n return this._updatePatternAtlas(), this.patterns[t4].position;\n }\n bind(t4) {\n const e2 = t4.gl;\n this.atlasTexture ? this.dirty && (this.atlasTexture.update(this.atlasImage), this.dirty = false) : this.atlasTexture = new b(t4, this.atlasImage, e2.RGBA), this.atlasTexture.bind(e2.LINEAR, e2.CLAMP_TO_EDGE);\n }\n _updatePatternAtlas() {\n const t4 = [];\n for (const e2 in this.patterns) t4.push(this.patterns[e2].bin);\n const { w: i2, h: a2 } = e.p(t4), s2 = this.atlasImage;\n s2.resize({ width: i2 || 1, height: a2 || 1 });\n for (const t5 in this.patterns) {\n const { bin: i3 } = this.patterns[t5], a3 = i3.x + 1, o2 = i3.y + 1, r2 = this.getImage(t5).data, n2 = r2.width, l2 = r2.height;\n e.R.copy(r2, s2, { x: 0, y: 0 }, { x: a3, y: o2 }, { width: n2, height: l2 }), e.R.copy(r2, s2, { x: 0, y: l2 - 1 }, { x: a3, y: o2 - 1 }, { width: n2, height: 1 }), e.R.copy(r2, s2, { x: 0, y: 0 }, { x: a3, y: o2 + l2 }, { width: n2, height: 1 }), e.R.copy(r2, s2, { x: n2 - 1, y: 0 }, { x: a3 - 1, y: o2 }, { width: 1, height: l2 }), e.R.copy(r2, s2, { x: 0, y: 0 }, { x: a3 + n2, y: o2 }, { width: 1, height: l2 });\n }\n this.dirty = true;\n }\n beginFrame() {\n this.callbackDispatchedThisFrame = {};\n }\n dispatchRenderCallbacks(t4) {\n for (const i2 of t4) {\n if (this.callbackDispatchedThisFrame[i2]) continue;\n this.callbackDispatchedThisFrame[i2] = true;\n const t5 = this.getImage(i2);\n t5 || e.w(`Image with ID: \"${i2}\" was not found`), w(t5) && this.updateImage(i2, t5);\n }\n }\n }\n const I = 1e20;\n function E2(t4, e2, i2, a2, s2, o2, r2, n2, l2) {\n for (let h2 = e2; h2 < e2 + a2; h2++) P(t4, i2 * o2 + h2, o2, s2, r2, n2, l2);\n for (let h2 = i2; h2 < i2 + s2; h2++) P(t4, h2 * o2 + e2, 1, a2, r2, n2, l2);\n }\n function P(t4, e2, i2, a2, s2, o2, r2) {\n o2[0] = 0, r2[0] = -I, r2[1] = I, s2[0] = t4[e2];\n for (let n2 = 1, l2 = 0, h2 = 0; n2 < a2; n2++) {\n s2[n2] = t4[e2 + n2 * i2];\n const a3 = n2 * n2;\n do {\n const t5 = o2[l2];\n h2 = (s2[n2] - s2[t5] + a3 - t5 * t5) / (n2 - t5) / 2;\n } while (h2 <= r2[l2] && --l2 > -1);\n l2++, o2[l2] = n2, r2[l2] = h2, r2[l2 + 1] = I;\n }\n for (let n2 = 0, l2 = 0; n2 < a2; n2++) {\n for (; r2[l2 + 1] < n2; ) l2++;\n const a3 = o2[l2], h2 = n2 - a3;\n t4[e2 + n2 * i2] = s2[a3] + h2 * h2;\n }\n }\n class C2 {\n constructor(t4, e2) {\n this.requestManager = t4, this.localIdeographFontFamily = e2, this.entries = {};\n }\n setURL(t4) {\n this.url = t4;\n }\n getGlyphs(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = [];\n for (const i3 in t4) for (const a3 of t4[i3]) e2.push(this._getAndCacheGlyphsPromise(i3, a3));\n const i2 = yield Promise.all(e2), a2 = {};\n for (const { stack: t5, id: e3, glyph: s2 } of i2) a2[t5] || (a2[t5] = {}), a2[t5][e3] = s2 && { id: s2.id, bitmap: s2.bitmap.clone(), metrics: s2.metrics };\n return a2;\n });\n }\n _getAndCacheGlyphsPromise(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n let e2 = this.entries[t4];\n e2 || (e2 = this.entries[t4] = { glyphs: {}, requests: {}, ranges: {} });\n let a2 = e2.glyphs[i2];\n if (void 0 !== a2) return { stack: t4, id: i2, glyph: a2 };\n if (a2 = this._tinySDF(e2, t4, i2), a2) return e2.glyphs[i2] = a2, { stack: t4, id: i2, glyph: a2 };\n const s2 = Math.floor(i2 / 256);\n if (256 * s2 > 65535) throw new Error(\"glyphs > 65535 not supported\");\n if (e2.ranges[s2]) return { stack: t4, id: i2, glyph: a2 };\n if (!this.url) throw new Error(\"glyphsUrl is not set\");\n if (!e2.requests[s2]) {\n const i3 = C2.loadGlyphRange(t4, s2, this.url, this.requestManager);\n e2.requests[s2] = i3;\n }\n const o2 = yield e2.requests[s2];\n for (const t5 in o2) this._doesCharSupportLocalGlyph(+t5) || (e2.glyphs[+t5] = o2[+t5]);\n return e2.ranges[s2] = true, { stack: t4, id: i2, glyph: o2[i2] || null };\n });\n }\n _doesCharSupportLocalGlyph(t4) {\n return !!this.localIdeographFontFamily && new RegExp(\"\\\\p{Ideo}|\\\\p{sc=Hang}|\\\\p{sc=Hira}|\\\\p{sc=Kana}\", \"u\").test(String.fromCodePoint(t4));\n }\n _tinySDF(t4, i2, a2) {\n const s2 = this.localIdeographFontFamily;\n if (!s2) return;\n if (!this._doesCharSupportLocalGlyph(a2)) return;\n let o2 = t4.tinySDF;\n if (!o2) {\n let e2 = \"400\";\n /bold/i.test(i2) ? e2 = \"900\" : /medium/i.test(i2) ? e2 = \"500\" : /light/i.test(i2) && (e2 = \"200\"), o2 = t4.tinySDF = new C2.TinySDF({ fontSize: 48, buffer: 6, radius: 16, cutoff: 0.25, fontFamily: s2, fontWeight: e2 });\n }\n const r2 = o2.draw(String.fromCharCode(a2));\n return { id: a2, bitmap: new e.o({ width: r2.width || 60, height: r2.height || 60 }, r2.data), metrics: { width: r2.glyphWidth / 2 || 24, height: r2.glyphHeight / 2 || 24, left: r2.glyphLeft / 2 + 0.5 || 0, top: r2.glyphTop / 2 - 27.5 || -8, advance: r2.glyphAdvance / 2 || 24, isDoubleResolution: true } };\n }\n }\n C2.loadGlyphRange = function(t4, i2, a2, s2) {\n return e._(this, void 0, void 0, function* () {\n const o2 = 256 * i2, r2 = o2 + 255, n2 = s2.transformRequest(a2.replace(\"{fontstack}\", t4).replace(\"{range}\", `${o2}-${r2}`), \"Glyphs\"), l2 = yield e.l(n2, new AbortController());\n if (!l2 || !l2.data) throw new Error(`Could not load glyph range. range: ${i2}, ${o2}-${r2}`);\n const h2 = {};\n for (const t5 of e.n(l2.data)) h2[t5.id] = t5;\n return h2;\n });\n }, C2.TinySDF = class {\n constructor({ fontSize: t4 = 24, buffer: e2 = 3, radius: i2 = 8, cutoff: a2 = 0.25, fontFamily: s2 = \"sans-serif\", fontWeight: o2 = \"normal\", fontStyle: r2 = \"normal\" } = {}) {\n this.buffer = e2, this.cutoff = a2, this.radius = i2;\n const n2 = this.size = t4 + 4 * e2, l2 = this._createCanvas(n2), h2 = this.ctx = l2.getContext(\"2d\", { willReadFrequently: true });\n h2.font = `${r2} ${o2} ${t4}px ${s2}`, h2.textBaseline = \"alphabetic\", h2.textAlign = \"left\", h2.fillStyle = \"black\", this.gridOuter = new Float64Array(n2 * n2), this.gridInner = new Float64Array(n2 * n2), this.f = new Float64Array(n2), this.z = new Float64Array(n2 + 1), this.v = new Uint16Array(n2);\n }\n _createCanvas(t4) {\n const e2 = document.createElement(\"canvas\");\n return e2.width = e2.height = t4, e2;\n }\n draw(t4) {\n const { width: e2, actualBoundingBoxAscent: i2, actualBoundingBoxDescent: a2, actualBoundingBoxLeft: s2, actualBoundingBoxRight: o2 } = this.ctx.measureText(t4), r2 = Math.ceil(i2), n2 = Math.max(0, Math.min(this.size - this.buffer, Math.ceil(o2 - s2))), l2 = Math.min(this.size - this.buffer, r2 + Math.ceil(a2)), h2 = n2 + 2 * this.buffer, c2 = l2 + 2 * this.buffer, u2 = Math.max(h2 * c2, 0), d2 = new Uint8ClampedArray(u2), _2 = { data: d2, width: h2, height: c2, glyphWidth: n2, glyphHeight: l2, glyphTop: r2, glyphLeft: 0, glyphAdvance: e2 };\n if (0 === n2 || 0 === l2) return _2;\n const { ctx: p2, buffer: m2, gridInner: f2, gridOuter: g2 } = this;\n p2.clearRect(m2, m2, n2, l2), p2.fillText(t4, m2, m2 + r2);\n const v2 = p2.getImageData(m2, m2, n2, l2);\n g2.fill(I, 0, u2), f2.fill(0, 0, u2);\n for (let t5 = 0; t5 < l2; t5++) for (let e3 = 0; e3 < n2; e3++) {\n const i3 = v2.data[4 * (t5 * n2 + e3) + 3] / 255;\n if (0 === i3) continue;\n const a3 = (t5 + m2) * h2 + e3 + m2;\n if (1 === i3) g2[a3] = 0, f2[a3] = I;\n else {\n const t6 = 0.5 - i3;\n g2[a3] = t6 > 0 ? t6 * t6 : 0, f2[a3] = t6 < 0 ? t6 * t6 : 0;\n }\n }\n E2(g2, 0, 0, h2, c2, h2, this.f, this.v, this.z), E2(f2, m2, m2, n2, l2, h2, this.f, this.v, this.z);\n for (let t5 = 0; t5 < u2; t5++) {\n const e3 = Math.sqrt(g2[t5]) - Math.sqrt(f2[t5]);\n d2[t5] = Math.round(255 - 255 * (e3 / this.radius + this.cutoff));\n }\n return _2;\n }\n };\n class S {\n constructor() {\n this.specification = e.v.light.position;\n }\n possiblyEvaluate(t4, i2) {\n return e.x(t4.expression.evaluate(i2));\n }\n interpolate(t4, i2, a2) {\n return { x: e.y.number(t4.x, i2.x, a2), y: e.y.number(t4.y, i2.y, a2), z: e.y.number(t4.z, i2.z, a2) };\n }\n }\n let z;\n class D2 extends e.E {\n constructor(t4) {\n super(), z = z || new e.q({ anchor: new e.D(e.v.light.anchor), position: new S(), color: new e.D(e.v.light.color), intensity: new e.D(e.v.light.intensity) }), this._transitionable = new e.T(z), this.setLight(t4), this._transitioning = this._transitionable.untransitioned();\n }\n getLight() {\n return this._transitionable.serialize();\n }\n setLight(t4, i2 = {}) {\n if (!this._validate(e.r, t4, i2)) for (const e2 in t4) {\n const i3 = t4[e2];\n e2.endsWith(\"-transition\") ? this._transitionable.setTransition(e2.slice(0, -11), i3) : this._transitionable.setValue(e2, i3);\n }\n }\n updateTransitions(t4) {\n this._transitioning = this._transitionable.transitioned(t4, this._transitioning);\n }\n hasTransition() {\n return this._transitioning.hasTransition();\n }\n recalculate(t4) {\n this.properties = this._transitioning.possiblyEvaluate(t4);\n }\n _validate(t4, i2, a2) {\n return (!a2 || false !== a2.validate) && e.t(this, t4.call(e.u, { value: i2, style: { glyphs: true, sprite: true }, styleSpec: e.v }));\n }\n }\n const M = new e.q({ \"sky-color\": new e.D(e.v.sky[\"sky-color\"]), \"horizon-color\": new e.D(e.v.sky[\"horizon-color\"]), \"fog-color\": new e.D(e.v.sky[\"fog-color\"]), \"fog-ground-blend\": new e.D(e.v.sky[\"fog-ground-blend\"]), \"horizon-fog-blend\": new e.D(e.v.sky[\"horizon-fog-blend\"]), \"sky-horizon-blend\": new e.D(e.v.sky[\"sky-horizon-blend\"]), \"atmosphere-blend\": new e.D(e.v.sky[\"atmosphere-blend\"]) });\n class A2 extends e.E {\n constructor(t4) {\n super(), this._transitionable = new e.T(M), this.setSky(t4), this._transitioning = this._transitionable.untransitioned(), this.recalculate(new e.z(0));\n }\n setSky(t4, i2 = {}) {\n if (!this._validate(e.B, t4, i2)) {\n t4 || (t4 = { \"sky-color\": \"transparent\", \"horizon-color\": \"transparent\", \"fog-color\": \"transparent\", \"fog-ground-blend\": 1, \"atmosphere-blend\": 0 });\n for (const e2 in t4) {\n const i3 = t4[e2];\n e2.endsWith(\"-transition\") ? this._transitionable.setTransition(e2.slice(0, -11), i3) : this._transitionable.setValue(e2, i3);\n }\n }\n }\n getSky() {\n return this._transitionable.serialize();\n }\n updateTransitions(t4) {\n this._transitioning = this._transitionable.transitioned(t4, this._transitioning);\n }\n hasTransition() {\n return this._transitioning.hasTransition();\n }\n recalculate(t4) {\n this.properties = this._transitioning.possiblyEvaluate(t4);\n }\n _validate(t4, i2, a2 = {}) {\n return false !== (null == a2 ? void 0 : a2.validate) && e.t(this, t4.call(e.u, e.e({ value: i2, style: { glyphs: true, sprite: true }, styleSpec: e.v })));\n }\n calculateFogBlendOpacity(t4) {\n return t4 < 60 ? 0 : t4 < 70 ? (t4 - 60) / 10 : 1;\n }\n }\n class R {\n constructor(t4, e2) {\n this.width = t4, this.height = e2, this.nextRow = 0, this.data = new Uint8Array(this.width * this.height), this.dashEntry = {};\n }\n getDash(t4, e2) {\n const i2 = t4.join(\",\") + String(e2);\n return this.dashEntry[i2] || (this.dashEntry[i2] = this.addDash(t4, e2)), this.dashEntry[i2];\n }\n getDashRanges(t4, e2, i2) {\n const a2 = [];\n let s2 = t4.length % 2 == 1 ? -t4[t4.length - 1] * i2 : 0, o2 = t4[0] * i2, r2 = true;\n a2.push({ left: s2, right: o2, isDash: r2, zeroLength: 0 === t4[0] });\n let n2 = t4[0];\n for (let e3 = 1; e3 < t4.length; e3++) {\n r2 = !r2;\n const l2 = t4[e3];\n s2 = n2 * i2, n2 += l2, o2 = n2 * i2, a2.push({ left: s2, right: o2, isDash: r2, zeroLength: 0 === l2 });\n }\n return a2;\n }\n addRoundDash(t4, e2, i2) {\n const a2 = e2 / 2;\n for (let e3 = -i2; e3 <= i2; e3++) {\n const s2 = this.width * (this.nextRow + i2 + e3);\n let o2 = 0, r2 = t4[o2];\n for (let n2 = 0; n2 < this.width; n2++) {\n n2 / r2.right > 1 && (r2 = t4[++o2]);\n const l2 = Math.abs(n2 - r2.left), h2 = Math.abs(n2 - r2.right), c2 = Math.min(l2, h2);\n let u2;\n const d2 = e3 / i2 * (a2 + 1);\n if (r2.isDash) {\n const t5 = a2 - Math.abs(d2);\n u2 = Math.sqrt(c2 * c2 + t5 * t5);\n } else u2 = a2 - Math.sqrt(c2 * c2 + d2 * d2);\n this.data[s2 + n2] = Math.max(0, Math.min(255, u2 + 128));\n }\n }\n }\n addRegularDash(t4) {\n for (let e3 = t4.length - 1; e3 >= 0; --e3) {\n const i3 = t4[e3], a3 = t4[e3 + 1];\n i3.zeroLength ? t4.splice(e3, 1) : a3 && a3.isDash === i3.isDash && (a3.left = i3.left, t4.splice(e3, 1));\n }\n const e2 = t4[0], i2 = t4[t4.length - 1];\n e2.isDash === i2.isDash && (e2.left = i2.left - this.width, i2.right = e2.right + this.width);\n const a2 = this.width * this.nextRow;\n let s2 = 0, o2 = t4[s2];\n for (let e3 = 0; e3 < this.width; e3++) {\n e3 / o2.right > 1 && (o2 = t4[++s2]);\n const i3 = Math.abs(e3 - o2.left), r2 = Math.abs(e3 - o2.right), n2 = Math.min(i3, r2);\n this.data[a2 + e3] = Math.max(0, Math.min(255, (o2.isDash ? n2 : -n2) + 128));\n }\n }\n addDash(t4, i2) {\n const a2 = i2 ? 7 : 0, s2 = 2 * a2 + 1;\n if (this.nextRow + s2 > this.height) return e.w(\"LineAtlas out of space\"), null;\n let o2 = 0;\n for (let e2 = 0; e2 < t4.length; e2++) o2 += t4[e2];\n if (0 !== o2) {\n const e2 = this.width / o2, s3 = this.getDashRanges(t4, this.width, e2);\n i2 ? this.addRoundDash(s3, e2, a2) : this.addRegularDash(s3);\n }\n const r2 = { y: (this.nextRow + a2 + 0.5) / this.height, height: 2 * a2 / this.height, width: o2 };\n return this.nextRow += s2, this.dirty = true, r2;\n }\n bind(t4) {\n const e2 = t4.gl;\n this.texture ? (e2.bindTexture(e2.TEXTURE_2D, this.texture), this.dirty && (this.dirty = false, e2.texSubImage2D(e2.TEXTURE_2D, 0, 0, 0, this.width, this.height, e2.ALPHA, e2.UNSIGNED_BYTE, this.data))) : (this.texture = e2.createTexture(), e2.bindTexture(e2.TEXTURE_2D, this.texture), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_S, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_WRAP_T, e2.REPEAT), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MIN_FILTER, e2.LINEAR), e2.texParameteri(e2.TEXTURE_2D, e2.TEXTURE_MAG_FILTER, e2.LINEAR), e2.texImage2D(e2.TEXTURE_2D, 0, e2.ALPHA, this.width, this.height, 0, e2.ALPHA, e2.UNSIGNED_BYTE, this.data));\n }\n }\n const k = \"maplibre_preloaded_worker_pool\";\n class L {\n constructor() {\n this.active = {};\n }\n acquire(t4) {\n if (!this.workers) for (this.workers = []; this.workers.length < L.workerCount; ) this.workers.push(new Worker(e.a.WORKER_URL));\n return this.active[t4] = true, this.workers.slice();\n }\n release(t4) {\n delete this.active[t4], 0 === this.numActive() && (this.workers.forEach((t5) => {\n t5.terminate();\n }), this.workers = null);\n }\n isPreloaded() {\n return !!this.active[k];\n }\n numActive() {\n return Object.keys(this.active).length;\n }\n }\n const F = Math.floor(o.hardwareConcurrency / 2);\n let B2, O;\n function N() {\n return B2 || (B2 = new L()), B2;\n }\n L.workerCount = e.C(globalThis) ? Math.max(Math.min(F, 3), 1) : 1;\n class U {\n constructor(t4, i2) {\n this.workerPool = t4, this.actors = [], this.currentActor = 0, this.id = i2;\n const a2 = this.workerPool.acquire(i2);\n for (let t5 = 0; t5 < a2.length; t5++) {\n const s2 = new e.F(a2[t5], i2);\n s2.name = `Worker ${t5}`, this.actors.push(s2);\n }\n if (!this.actors.length) throw new Error(\"No actors found\");\n }\n broadcast(t4, e2) {\n const i2 = [];\n for (const a2 of this.actors) i2.push(a2.sendAsync({ type: t4, data: e2 }));\n return Promise.all(i2);\n }\n getActor() {\n return this.currentActor = (this.currentActor + 1) % this.actors.length, this.actors[this.currentActor];\n }\n remove(t4 = true) {\n this.actors.forEach((t5) => {\n t5.remove();\n }), this.actors = [], t4 && this.workerPool.release(this.id);\n }\n registerMessageHandler(t4, e2) {\n for (const i2 of this.actors) i2.registerMessageHandler(t4, e2);\n }\n }\n function j() {\n return O || (O = new U(N(), e.G), O.registerMessageHandler(\"GR\", (t4, i2, a2) => e.m(i2, a2))), O;\n }\n function Z(t4, i2) {\n const a2 = e.H();\n return e.J(a2, a2, [1, 1, 0]), e.K(a2, a2, [0.5 * t4.width, 0.5 * t4.height, 1]), e.L(a2, a2, t4.calculatePosMatrix(i2.toUnwrapped()));\n }\n function q(t4, e2, i2, a2, s2, o2) {\n const r2 = function(t5, e3, i3) {\n if (t5) for (const a3 of t5) {\n const t6 = e3[a3];\n if (t6 && t6.source === i3 && \"fill-extrusion\" === t6.type) return true;\n }\n else for (const t6 in e3) {\n const a3 = e3[t6];\n if (a3.source === i3 && \"fill-extrusion\" === a3.type) return true;\n }\n return false;\n }(s2 && s2.layers, e2, t4.id), n2 = o2.maxPitchScaleFactor(), l2 = t4.tilesIn(a2, n2, r2);\n l2.sort(V);\n const h2 = [];\n for (const a3 of l2) h2.push({ wrappedTileID: a3.tileID.wrapped().key, queryResults: a3.tile.queryRenderedFeatures(e2, i2, t4._state, a3.queryGeometry, a3.cameraQueryGeometry, a3.scale, s2, o2, n2, Z(t4.transform, a3.tileID)) });\n const c2 = function(t5) {\n const e3 = {}, i3 = {};\n for (const a3 of t5) {\n const t6 = a3.queryResults, s3 = a3.wrappedTileID, o3 = i3[s3] = i3[s3] || {};\n for (const i4 in t6) {\n const a4 = t6[i4], s4 = o3[i4] = o3[i4] || {}, r3 = e3[i4] = e3[i4] || [];\n for (const t7 of a4) s4[t7.featureIndex] || (s4[t7.featureIndex] = true, r3.push(t7));\n }\n }\n return e3;\n }(h2);\n for (const e3 in c2) c2[e3].forEach((e4) => {\n const i3 = e4.feature, a3 = t4.getFeatureState(i3.layer[\"source-layer\"], i3.id);\n i3.source = i3.layer.source, i3.layer[\"source-layer\"] && (i3.sourceLayer = i3.layer[\"source-layer\"]), i3.state = a3;\n });\n return c2;\n }\n function V(t4, e2) {\n const i2 = t4.tileID, a2 = e2.tileID;\n return i2.overscaledZ - a2.overscaledZ || i2.canonical.y - a2.canonical.y || i2.wrap - a2.wrap || i2.canonical.x - a2.canonical.x;\n }\n function G(t4, i2, a2) {\n return e._(this, void 0, void 0, function* () {\n let s2 = t4;\n if (t4.url ? s2 = (yield e.h(i2.transformRequest(t4.url, \"Source\"), a2)).data : yield o.frameAsync(a2), !s2) return null;\n const r2 = e.M(e.e(s2, t4), [\"tiles\", \"minzoom\", \"maxzoom\", \"attribution\", \"bounds\", \"scheme\", \"tileSize\", \"encoding\"]);\n return \"vector_layers\" in s2 && s2.vector_layers && (r2.vectorLayerIds = s2.vector_layers.map((t5) => t5.id)), r2;\n });\n }\n class H {\n constructor(t4, e2) {\n t4 && (e2 ? this.setSouthWest(t4).setNorthEast(e2) : Array.isArray(t4) && (4 === t4.length ? this.setSouthWest([t4[0], t4[1]]).setNorthEast([t4[2], t4[3]]) : this.setSouthWest(t4[0]).setNorthEast(t4[1])));\n }\n setNorthEast(t4) {\n return this._ne = t4 instanceof e.N ? new e.N(t4.lng, t4.lat) : e.N.convert(t4), this;\n }\n setSouthWest(t4) {\n return this._sw = t4 instanceof e.N ? new e.N(t4.lng, t4.lat) : e.N.convert(t4), this;\n }\n extend(t4) {\n const i2 = this._sw, a2 = this._ne;\n let s2, o2;\n if (t4 instanceof e.N) s2 = t4, o2 = t4;\n else {\n if (!(t4 instanceof H)) return Array.isArray(t4) ? 4 === t4.length || t4.every(Array.isArray) ? this.extend(H.convert(t4)) : this.extend(e.N.convert(t4)) : t4 && (\"lng\" in t4 || \"lon\" in t4) && \"lat\" in t4 ? this.extend(e.N.convert(t4)) : this;\n if (s2 = t4._sw, o2 = t4._ne, !s2 || !o2) return this;\n }\n return i2 || a2 ? (i2.lng = Math.min(s2.lng, i2.lng), i2.lat = Math.min(s2.lat, i2.lat), a2.lng = Math.max(o2.lng, a2.lng), a2.lat = Math.max(o2.lat, a2.lat)) : (this._sw = new e.N(s2.lng, s2.lat), this._ne = new e.N(o2.lng, o2.lat)), this;\n }\n getCenter() {\n return new e.N((this._sw.lng + this._ne.lng) / 2, (this._sw.lat + this._ne.lat) / 2);\n }\n getSouthWest() {\n return this._sw;\n }\n getNorthEast() {\n return this._ne;\n }\n getNorthWest() {\n return new e.N(this.getWest(), this.getNorth());\n }\n getSouthEast() {\n return new e.N(this.getEast(), this.getSouth());\n }\n getWest() {\n return this._sw.lng;\n }\n getSouth() {\n return this._sw.lat;\n }\n getEast() {\n return this._ne.lng;\n }\n getNorth() {\n return this._ne.lat;\n }\n toArray() {\n return [this._sw.toArray(), this._ne.toArray()];\n }\n toString() {\n return `LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`;\n }\n isEmpty() {\n return !(this._sw && this._ne);\n }\n contains(t4) {\n const { lng: i2, lat: a2 } = e.N.convert(t4);\n let s2 = this._sw.lng <= i2 && i2 <= this._ne.lng;\n return this._sw.lng > this._ne.lng && (s2 = this._sw.lng >= i2 && i2 >= this._ne.lng), this._sw.lat <= a2 && a2 <= this._ne.lat && s2;\n }\n static convert(t4) {\n return t4 instanceof H ? t4 : t4 ? new H(t4) : t4;\n }\n static fromLngLat(t4, i2 = 0) {\n const a2 = 360 * i2 / 40075017, s2 = a2 / Math.cos(Math.PI / 180 * t4.lat);\n return new H(new e.N(t4.lng - s2, t4.lat - a2), new e.N(t4.lng + s2, t4.lat + a2));\n }\n adjustAntiMeridian() {\n const t4 = new e.N(this._sw.lng, this._sw.lat), i2 = new e.N(this._ne.lng, this._ne.lat);\n return new H(t4, t4.lng > i2.lng ? new e.N(i2.lng + 360, i2.lat) : i2);\n }\n }\n class W {\n constructor(t4, e2, i2) {\n this.bounds = H.convert(this.validateBounds(t4)), this.minzoom = e2 || 0, this.maxzoom = i2 || 24;\n }\n validateBounds(t4) {\n return Array.isArray(t4) && 4 === t4.length ? [Math.max(-180, t4[0]), Math.max(-90, t4[1]), Math.min(180, t4[2]), Math.min(90, t4[3])] : [-180, -90, 180, 90];\n }\n contains(t4) {\n const i2 = Math.pow(2, t4.z), a2 = Math.floor(e.O(this.bounds.getWest()) * i2), s2 = Math.floor(e.Q(this.bounds.getNorth()) * i2), o2 = Math.ceil(e.O(this.bounds.getEast()) * i2), r2 = Math.ceil(e.Q(this.bounds.getSouth()) * i2);\n return t4.x >= a2 && t4.x < o2 && t4.y >= s2 && t4.y < r2;\n }\n }\n class $ extends e.E {\n constructor(t4, i2, a2, s2) {\n if (super(), this.id = t4, this.dispatcher = a2, this.type = \"vector\", this.minzoom = 0, this.maxzoom = 22, this.scheme = \"xyz\", this.tileSize = 512, this.reparseOverscaled = true, this.isTileClipped = true, this._loaded = false, e.e(this, e.M(i2, [\"url\", \"scheme\", \"tileSize\", \"promoteId\"])), this._options = e.e({ type: \"vector\" }, i2), this._collectResourceTiming = i2.collectResourceTiming, 512 !== this.tileSize) throw new Error(\"vector tile sources must have a tileSize of 512\");\n this.setEventedParent(s2);\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false, this.fire(new e.k(\"dataloading\", { dataType: \"source\" })), this._tileJSONRequest = new AbortController();\n try {\n const t4 = yield G(this._options, this.map._requestManager, this._tileJSONRequest);\n this._tileJSONRequest = null, this._loaded = true, this.map.style.sourceCaches[this.id].clearTiles(), t4 && (e.e(this, t4), t4.bounds && (this.tileBounds = new W(t4.bounds, this.minzoom, this.maxzoom)), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"metadata\" })), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"content\" })));\n } catch (t4) {\n this._tileJSONRequest = null, this.fire(new e.j(t4));\n }\n });\n }\n loaded() {\n return this._loaded;\n }\n hasTile(t4) {\n return !this.tileBounds || this.tileBounds.contains(t4.canonical);\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n setSourceProperty(t4) {\n this._tileJSONRequest && this._tileJSONRequest.abort(), t4(), this.load();\n }\n setTiles(t4) {\n return this.setSourceProperty(() => {\n this._options.tiles = t4;\n }), this;\n }\n setUrl(t4) {\n return this.setSourceProperty(() => {\n this.url = t4, this._options.url = t4;\n }), this;\n }\n onRemove() {\n this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null);\n }\n serialize() {\n return e.e({}, this._options);\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = t4.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), i2 = { request: this.map._requestManager.transformRequest(e2, \"Tile\"), uid: t4.uid, tileID: t4.tileID, zoom: t4.tileID.overscaledZ, tileSize: this.tileSize * t4.tileID.overscaleFactor(), type: this.type, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };\n i2.request.collectResourceTiming = this._collectResourceTiming;\n let a2 = \"RT\";\n if (t4.actor && \"expired\" !== t4.state) {\n if (\"loading\" === t4.state) return new Promise((e3, i3) => {\n t4.reloadPromise = { resolve: e3, reject: i3 };\n });\n } else t4.actor = this.dispatcher.getActor(), a2 = \"LT\";\n t4.abortController = new AbortController();\n try {\n const e3 = yield t4.actor.sendAsync({ type: a2, data: i2 }, t4.abortController);\n if (delete t4.abortController, t4.aborted) return;\n this._afterTileLoadWorkerResponse(t4, e3);\n } catch (e3) {\n if (delete t4.abortController, t4.aborted) return;\n if (e3 && 404 !== e3.status) throw e3;\n this._afterTileLoadWorkerResponse(t4, null);\n }\n });\n }\n _afterTileLoadWorkerResponse(t4, e2) {\n if (e2 && e2.resourceTiming && (t4.resourceTiming = e2.resourceTiming), e2 && this.map._refreshExpiredTiles && t4.setExpiryData(e2), t4.loadVectorData(e2, this.map.painter), t4.reloadPromise) {\n const e3 = t4.reloadPromise;\n t4.reloadPromise = null, this.loadTile(t4).then(e3.resolve).catch(e3.reject);\n }\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.abortController && (t4.abortController.abort(), delete t4.abortController), t4.actor && (yield t4.actor.sendAsync({ type: \"AT\", data: { uid: t4.uid, type: this.type, source: this.id } }));\n });\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.unloadVectorData(), t4.actor && (yield t4.actor.sendAsync({ type: \"RMT\", data: { uid: t4.uid, type: this.type, source: this.id } }));\n });\n }\n hasTransition() {\n return false;\n }\n }\n class X extends e.E {\n constructor(t4, i2, a2, s2) {\n super(), this.id = t4, this.dispatcher = a2, this.setEventedParent(s2), this.type = \"raster\", this.minzoom = 0, this.maxzoom = 22, this.roundZoom = true, this.scheme = \"xyz\", this.tileSize = 512, this._loaded = false, this._options = e.e({ type: \"raster\" }, i2), e.e(this, e.M(i2, [\"url\", \"scheme\", \"tileSize\"]));\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false, this.fire(new e.k(\"dataloading\", { dataType: \"source\" })), this._tileJSONRequest = new AbortController();\n try {\n const t4 = yield G(this._options, this.map._requestManager, this._tileJSONRequest);\n this._tileJSONRequest = null, this._loaded = true, t4 && (e.e(this, t4), t4.bounds && (this.tileBounds = new W(t4.bounds, this.minzoom, this.maxzoom)), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"metadata\" })), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"content\" })));\n } catch (t4) {\n this._tileJSONRequest = null, this.fire(new e.j(t4));\n }\n });\n }\n loaded() {\n return this._loaded;\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n onRemove() {\n this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null);\n }\n setSourceProperty(t4) {\n this._tileJSONRequest && (this._tileJSONRequest.abort(), this._tileJSONRequest = null), t4(), this.load();\n }\n setTiles(t4) {\n return this.setSourceProperty(() => {\n this._options.tiles = t4;\n }), this;\n }\n setUrl(t4) {\n return this.setSourceProperty(() => {\n this.url = t4, this._options.url = t4;\n }), this;\n }\n serialize() {\n return e.e({}, this._options);\n }\n hasTile(t4) {\n return !this.tileBounds || this.tileBounds.contains(t4.canonical);\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = t4.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme);\n t4.abortController = new AbortController();\n try {\n const i2 = yield _.getImage(this.map._requestManager.transformRequest(e2, \"Tile\"), t4.abortController, this.map._refreshExpiredTiles);\n if (delete t4.abortController, t4.aborted) return void (t4.state = \"unloaded\");\n if (i2 && i2.data) {\n this.map._refreshExpiredTiles && i2.cacheControl && i2.expires && t4.setExpiryData({ cacheControl: i2.cacheControl, expires: i2.expires });\n const e3 = this.map.painter.context, a2 = e3.gl, s2 = i2.data;\n t4.texture = this.map.painter.getTileTexture(s2.width), t4.texture ? t4.texture.update(s2, { useMipmap: true }) : (t4.texture = new b(e3, s2, a2.RGBA, { useMipmap: true }), t4.texture.bind(a2.LINEAR, a2.CLAMP_TO_EDGE, a2.LINEAR_MIPMAP_NEAREST)), t4.state = \"loaded\";\n }\n } catch (e3) {\n if (delete t4.abortController, t4.aborted) t4.state = \"unloaded\";\n else if (e3) throw t4.state = \"errored\", e3;\n }\n });\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.abortController && (t4.abortController.abort(), delete t4.abortController);\n });\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.texture && this.map.painter.saveTileTexture(t4.texture);\n });\n }\n hasTransition() {\n return false;\n }\n }\n class K2 extends X {\n constructor(t4, i2, a2, s2) {\n super(t4, i2, a2, s2), this.type = \"raster-dem\", this.maxzoom = 22, this._options = e.e({ type: \"raster-dem\" }, i2), this.encoding = i2.encoding || \"mapbox\", this.redFactor = i2.redFactor, this.greenFactor = i2.greenFactor, this.blueFactor = i2.blueFactor, this.baseShift = i2.baseShift;\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const i2 = t4.tileID.canonical.url(this.tiles, this.map.getPixelRatio(), this.scheme), a2 = this.map._requestManager.transformRequest(i2, \"Tile\");\n t4.neighboringTiles = this._getNeighboringTiles(t4.tileID), t4.abortController = new AbortController();\n try {\n const i3 = yield _.getImage(a2, t4.abortController, this.map._refreshExpiredTiles);\n if (delete t4.abortController, t4.aborted) return void (t4.state = \"unloaded\");\n if (i3 && i3.data) {\n const a3 = i3.data;\n this.map._refreshExpiredTiles && i3.cacheControl && i3.expires && t4.setExpiryData({ cacheControl: i3.cacheControl, expires: i3.expires });\n const s2 = e.b(a3) && e.U() ? a3 : yield this.readImageNow(a3), o2 = { type: this.type, uid: t4.uid, source: this.id, rawImageData: s2, encoding: this.encoding, redFactor: this.redFactor, greenFactor: this.greenFactor, blueFactor: this.blueFactor, baseShift: this.baseShift };\n if (!t4.actor || \"expired\" === t4.state) {\n t4.actor = this.dispatcher.getActor();\n const e2 = yield t4.actor.sendAsync({ type: \"LDT\", data: o2 });\n t4.dem = e2, t4.needsHillshadePrepare = true, t4.needsTerrainPrepare = true, t4.state = \"loaded\";\n }\n }\n } catch (e2) {\n if (delete t4.abortController, t4.aborted) t4.state = \"unloaded\";\n else if (e2) throw t4.state = \"errored\", e2;\n }\n });\n }\n readImageNow(t4) {\n return e._(this, void 0, void 0, function* () {\n if (\"undefined\" != typeof VideoFrame && e.V()) {\n const i2 = t4.width + 2, a2 = t4.height + 2;\n try {\n return new e.R({ width: i2, height: a2 }, yield e.W(t4, -1, -1, i2, a2));\n } catch (t5) {\n }\n }\n return o.getImageData(t4, 1);\n });\n }\n _getNeighboringTiles(t4) {\n const i2 = t4.canonical, a2 = Math.pow(2, i2.z), s2 = (i2.x - 1 + a2) % a2, o2 = 0 === i2.x ? t4.wrap - 1 : t4.wrap, r2 = (i2.x + 1 + a2) % a2, n2 = i2.x + 1 === a2 ? t4.wrap + 1 : t4.wrap, l2 = {};\n return l2[new e.S(t4.overscaledZ, o2, i2.z, s2, i2.y).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, n2, i2.z, r2, i2.y).key] = { backfilled: false }, i2.y > 0 && (l2[new e.S(t4.overscaledZ, o2, i2.z, s2, i2.y - 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, t4.wrap, i2.z, i2.x, i2.y - 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, n2, i2.z, r2, i2.y - 1).key] = { backfilled: false }), i2.y + 1 < a2 && (l2[new e.S(t4.overscaledZ, o2, i2.z, s2, i2.y + 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, t4.wrap, i2.z, i2.x, i2.y + 1).key] = { backfilled: false }, l2[new e.S(t4.overscaledZ, n2, i2.z, r2, i2.y + 1).key] = { backfilled: false }), l2;\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.demTexture && this.map.painter.saveTileTexture(t4.demTexture), t4.fbo && (t4.fbo.destroy(), delete t4.fbo), t4.dem && delete t4.dem, delete t4.neighboringTiles, t4.state = \"unloaded\", t4.actor && (yield t4.actor.sendAsync({ type: \"RDT\", data: { type: this.type, uid: t4.uid, source: this.id } }));\n });\n }\n }\n class J extends e.E {\n constructor(t4, i2, a2, s2) {\n super(), this.id = t4, this.type = \"geojson\", this.minzoom = 0, this.maxzoom = 18, this.tileSize = 512, this.isTileClipped = true, this.reparseOverscaled = true, this._removed = false, this._pendingLoads = 0, this.actor = a2.getActor(), this.setEventedParent(s2), this._data = i2.data, this._options = e.e({}, i2), this._collectResourceTiming = i2.collectResourceTiming, void 0 !== i2.maxzoom && (this.maxzoom = i2.maxzoom), i2.type && (this.type = i2.type), i2.attribution && (this.attribution = i2.attribution), this.promoteId = i2.promoteId;\n const o2 = e.X / this.tileSize;\n void 0 !== i2.clusterMaxZoom && this.maxzoom <= i2.clusterMaxZoom && e.w(`The maxzoom value \"${this.maxzoom}\" is expected to be greater than the clusterMaxZoom value \"${i2.clusterMaxZoom}\".`), this.workerOptions = e.e({ source: this.id, cluster: i2.cluster || false, geojsonVtOptions: { buffer: (void 0 !== i2.buffer ? i2.buffer : 128) * o2, tolerance: (void 0 !== i2.tolerance ? i2.tolerance : 0.375) * o2, extent: e.X, maxZoom: this.maxzoom, lineMetrics: i2.lineMetrics || false, generateId: i2.generateId || false }, superclusterOptions: { maxZoom: void 0 !== i2.clusterMaxZoom ? i2.clusterMaxZoom : this.maxzoom - 1, minPoints: Math.max(2, i2.clusterMinPoints || 2), extent: e.X, radius: (i2.clusterRadius || 50) * o2, log: false, generateId: i2.generateId || false }, clusterProperties: i2.clusterProperties, filter: i2.filter }, i2.workerOptions), \"string\" == typeof this.promoteId && (this.workerOptions.promoteId = this.promoteId);\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n yield this._updateWorkerData();\n });\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n setData(t4) {\n return this._data = t4, this._updateWorkerData(), this;\n }\n updateData(t4) {\n return this._updateWorkerData(t4), this;\n }\n getData() {\n return e._(this, void 0, void 0, function* () {\n const t4 = e.e({ type: this.type }, this.workerOptions);\n return this.actor.sendAsync({ type: \"GD\", data: t4 });\n });\n }\n setClusterOptions(t4) {\n return this.workerOptions.cluster = t4.cluster, t4 && (void 0 !== t4.clusterRadius && (this.workerOptions.superclusterOptions.radius = t4.clusterRadius), void 0 !== t4.clusterMaxZoom && (this.workerOptions.superclusterOptions.maxZoom = t4.clusterMaxZoom)), this._updateWorkerData(), this;\n }\n getClusterExpansionZoom(t4) {\n return this.actor.sendAsync({ type: \"GCEZ\", data: { type: this.type, clusterId: t4, source: this.id } });\n }\n getClusterChildren(t4) {\n return this.actor.sendAsync({ type: \"GCC\", data: { type: this.type, clusterId: t4, source: this.id } });\n }\n getClusterLeaves(t4, e2, i2) {\n return this.actor.sendAsync({ type: \"GCL\", data: { type: this.type, source: this.id, clusterId: t4, limit: e2, offset: i2 } });\n }\n _updateWorkerData(t4) {\n return e._(this, void 0, void 0, function* () {\n const i2 = e.e({ type: this.type }, this.workerOptions);\n t4 ? i2.dataDiff = t4 : \"string\" == typeof this._data ? (i2.request = this.map._requestManager.transformRequest(o.resolveURL(this._data), \"Source\"), i2.request.collectResourceTiming = this._collectResourceTiming) : i2.data = JSON.stringify(this._data), this._pendingLoads++, this.fire(new e.k(\"dataloading\", { dataType: \"source\" }));\n try {\n const t5 = yield this.actor.sendAsync({ type: \"LD\", data: i2 });\n if (this._pendingLoads--, this._removed || t5.abandoned) return void this.fire(new e.k(\"dataabort\", { dataType: \"source\" }));\n let a2 = null;\n t5.resourceTiming && t5.resourceTiming[this.id] && (a2 = t5.resourceTiming[this.id].slice(0));\n const s2 = { dataType: \"source\" };\n this._collectResourceTiming && a2 && a2.length > 0 && e.e(s2, { resourceTiming: a2 }), this.fire(new e.k(\"data\", Object.assign(Object.assign({}, s2), { sourceDataType: \"metadata\" }))), this.fire(new e.k(\"data\", Object.assign(Object.assign({}, s2), { sourceDataType: \"content\" })));\n } catch (t5) {\n if (this._pendingLoads--, this._removed) return void this.fire(new e.k(\"dataabort\", { dataType: \"source\" }));\n this.fire(new e.j(t5));\n }\n });\n }\n loaded() {\n return 0 === this._pendingLoads;\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = t4.actor ? \"RT\" : \"LT\";\n t4.actor = this.actor;\n const i2 = { type: this.type, uid: t4.uid, tileID: t4.tileID, zoom: t4.tileID.overscaledZ, maxZoom: this.maxzoom, tileSize: this.tileSize, source: this.id, pixelRatio: this.map.getPixelRatio(), showCollisionBoxes: this.map.showCollisionBoxes, promoteId: this.promoteId };\n t4.abortController = new AbortController();\n const a2 = yield this.actor.sendAsync({ type: e2, data: i2 }, t4.abortController);\n delete t4.abortController, t4.unloadVectorData(), t4.aborted || t4.loadVectorData(a2, this.map.painter, \"RT\" === e2);\n });\n }\n abortTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.abortController && (t4.abortController.abort(), delete t4.abortController), t4.aborted = true;\n });\n }\n unloadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n t4.unloadVectorData(), yield this.actor.sendAsync({ type: \"RMT\", data: { uid: t4.uid, type: this.type, source: this.id } });\n });\n }\n onRemove() {\n this._removed = true, this.actor.sendAsync({ type: \"RS\", data: { type: this.type, source: this.id } });\n }\n serialize() {\n return e.e({}, this._options, { type: this.type, data: this._data });\n }\n hasTransition() {\n return false;\n }\n }\n var Y = e.Y([{ name: \"a_pos\", type: \"Int16\", components: 2 }, { name: \"a_texture_pos\", type: \"Int16\", components: 2 }]);\n class Q extends e.E {\n constructor(t4, e2, i2, a2) {\n super(), this.id = t4, this.dispatcher = i2, this.coordinates = e2.coordinates, this.type = \"image\", this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.tiles = {}, this._loaded = false, this.setEventedParent(a2), this.options = e2;\n }\n load(t4) {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false, this.fire(new e.k(\"dataloading\", { dataType: \"source\" })), this.url = this.options.url, this._request = new AbortController();\n try {\n const e2 = yield _.getImage(this.map._requestManager.transformRequest(this.url, \"Image\"), this._request);\n this._request = null, this._loaded = true, e2 && e2.data && (this.image = e2.data, t4 && (this.coordinates = t4), this._finishLoading());\n } catch (t5) {\n this._request = null, this._loaded = true, this.fire(new e.j(t5));\n }\n });\n }\n loaded() {\n return this._loaded;\n }\n updateImage(t4) {\n return t4.url ? (this._request && (this._request.abort(), this._request = null), this.options.url = t4.url, this.load(t4.coordinates).finally(() => {\n this.texture = null;\n }), this) : this;\n }\n _finishLoading() {\n this.map && (this.setCoordinates(this.coordinates), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"metadata\" })));\n }\n onAdd(t4) {\n this.map = t4, this.load();\n }\n onRemove() {\n this._request && (this._request.abort(), this._request = null);\n }\n setCoordinates(t4) {\n this.coordinates = t4;\n const i2 = t4.map(e.Z.fromLngLat);\n this.tileID = function(t5) {\n let i3 = 1 / 0, a3 = 1 / 0, s2 = -1 / 0, o2 = -1 / 0;\n for (const e2 of t5) i3 = Math.min(i3, e2.x), a3 = Math.min(a3, e2.y), s2 = Math.max(s2, e2.x), o2 = Math.max(o2, e2.y);\n const r2 = Math.max(s2 - i3, o2 - a3), n2 = Math.max(0, Math.floor(-Math.log(r2) / Math.LN2)), l2 = Math.pow(2, n2);\n return new e.a1(n2, Math.floor((i3 + s2) / 2 * l2), Math.floor((a3 + o2) / 2 * l2));\n }(i2), this.minzoom = this.maxzoom = this.tileID.z;\n const a2 = i2.map((t5) => this.tileID.getTilePoint(t5)._round());\n return this._boundsArray = new e.$(), this._boundsArray.emplaceBack(a2[0].x, a2[0].y, 0, 0), this._boundsArray.emplaceBack(a2[1].x, a2[1].y, e.X, 0), this._boundsArray.emplaceBack(a2[3].x, a2[3].y, 0, e.X), this._boundsArray.emplaceBack(a2[2].x, a2[2].y, e.X, e.X), this.boundsBuffer && (this.boundsBuffer.destroy(), delete this.boundsBuffer), this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"content\" })), this;\n }\n prepare() {\n if (0 === Object.keys(this.tiles).length || !this.image) return;\n const t4 = this.map.painter.context, i2 = t4.gl;\n this.boundsBuffer || (this.boundsBuffer = t4.createVertexBuffer(this._boundsArray, Y.members)), this.boundsSegments || (this.boundsSegments = e.a0.simpleSegment(0, 0, 4, 2)), this.texture || (this.texture = new b(t4, this.image, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE));\n let a2 = false;\n for (const t5 in this.tiles) {\n const e2 = this.tiles[t5];\n \"loaded\" !== e2.state && (e2.state = \"loaded\", e2.texture = this.texture, a2 = true);\n }\n a2 && this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"idle\", sourceId: this.id }));\n }\n loadTile(t4) {\n return e._(this, void 0, void 0, function* () {\n this.tileID && this.tileID.equals(t4.tileID.canonical) ? (this.tiles[String(t4.tileID.wrap)] = t4, t4.buckets = {}) : t4.state = \"errored\";\n });\n }\n serialize() {\n return { type: \"image\", url: this.options.url, coordinates: this.coordinates };\n }\n hasTransition() {\n return false;\n }\n }\n class tt extends Q {\n constructor(t4, e2, i2, a2) {\n super(t4, e2, i2, a2), this.roundZoom = true, this.type = \"video\", this.options = e2;\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = false;\n const t4 = this.options;\n this.urls = [];\n for (const e2 of t4.urls) this.urls.push(this.map._requestManager.transformRequest(e2, \"Source\").url);\n try {\n const t5 = yield e.a3(this.urls);\n if (this._loaded = true, !t5) return;\n this.video = t5, this.video.loop = true, this.video.addEventListener(\"playing\", () => {\n this.map.triggerRepaint();\n }), this.map && this.video.play(), this._finishLoading();\n } catch (t5) {\n this.fire(new e.j(t5));\n }\n });\n }\n pause() {\n this.video && this.video.pause();\n }\n play() {\n this.video && this.video.play();\n }\n seek(t4) {\n if (this.video) {\n const i2 = this.video.seekable;\n t4 < i2.start(0) || t4 > i2.end(0) ? this.fire(new e.j(new e.a2(`sources.${this.id}`, null, `Playback for this video can be set only between the ${i2.start(0)} and ${i2.end(0)}-second mark.`))) : this.video.currentTime = t4;\n }\n }\n getVideo() {\n return this.video;\n }\n onAdd(t4) {\n this.map || (this.map = t4, this.load(), this.video && (this.video.play(), this.setCoordinates(this.coordinates)));\n }\n prepare() {\n if (0 === Object.keys(this.tiles).length || this.video.readyState < 2) return;\n const t4 = this.map.painter.context, i2 = t4.gl;\n this.boundsBuffer || (this.boundsBuffer = t4.createVertexBuffer(this._boundsArray, Y.members)), this.boundsSegments || (this.boundsSegments = e.a0.simpleSegment(0, 0, 4, 2)), this.texture ? this.video.paused || (this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE), i2.texSubImage2D(i2.TEXTURE_2D, 0, 0, 0, i2.RGBA, i2.UNSIGNED_BYTE, this.video)) : (this.texture = new b(t4, this.video, i2.RGBA), this.texture.bind(i2.LINEAR, i2.CLAMP_TO_EDGE));\n let a2 = false;\n for (const t5 in this.tiles) {\n const e2 = this.tiles[t5];\n \"loaded\" !== e2.state && (e2.state = \"loaded\", e2.texture = this.texture, a2 = true);\n }\n a2 && this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"idle\", sourceId: this.id }));\n }\n serialize() {\n return { type: \"video\", urls: this.urls, coordinates: this.coordinates };\n }\n hasTransition() {\n return this.video && !this.video.paused;\n }\n }\n class et extends Q {\n constructor(t4, i2, a2, s2) {\n super(t4, i2, a2, s2), i2.coordinates ? Array.isArray(i2.coordinates) && 4 === i2.coordinates.length && !i2.coordinates.some((t5) => !Array.isArray(t5) || 2 !== t5.length || t5.some((t6) => \"number\" != typeof t6)) || this.fire(new e.j(new e.a2(`sources.${t4}`, null, '\"coordinates\" property must be an array of 4 longitude/latitude array pairs'))) : this.fire(new e.j(new e.a2(`sources.${t4}`, null, 'missing required property \"coordinates\"'))), i2.animate && \"boolean\" != typeof i2.animate && this.fire(new e.j(new e.a2(`sources.${t4}`, null, 'optional \"animate\" property must be a boolean value'))), i2.canvas ? \"string\" == typeof i2.canvas || i2.canvas instanceof HTMLCanvasElement || this.fire(new e.j(new e.a2(`sources.${t4}`, null, '\"canvas\" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))) : this.fire(new e.j(new e.a2(`sources.${t4}`, null, 'missing required property \"canvas\"'))), this.options = i2, this.animate = void 0 === i2.animate || i2.animate;\n }\n load() {\n return e._(this, void 0, void 0, function* () {\n this._loaded = true, this.canvas || (this.canvas = this.options.canvas instanceof HTMLCanvasElement ? this.options.canvas : document.getElementById(this.options.canvas)), this.width = this.canvas.width, this.height = this.canvas.height, this._hasInvalidDimensions() ? this.fire(new e.j(new Error(\"Canvas dimensions cannot be less than or equal to zero.\"))) : (this.play = function() {\n this._playing = true, this.map.triggerRepaint();\n }, this.pause = function() {\n this._playing && (this.prepare(), this._playing = false);\n }, this._finishLoading());\n });\n }\n getCanvas() {\n return this.canvas;\n }\n onAdd(t4) {\n this.map = t4, this.load(), this.canvas && this.animate && this.play();\n }\n onRemove() {\n this.pause();\n }\n prepare() {\n let t4 = false;\n if (this.canvas.width !== this.width && (this.width = this.canvas.width, t4 = true), this.canvas.height !== this.height && (this.height = this.canvas.height, t4 = true), this._hasInvalidDimensions()) return;\n if (0 === Object.keys(this.tiles).length) return;\n const i2 = this.map.painter.context, a2 = i2.gl;\n this.boundsBuffer || (this.boundsBuffer = i2.createVertexBuffer(this._boundsArray, Y.members)), this.boundsSegments || (this.boundsSegments = e.a0.simpleSegment(0, 0, 4, 2)), this.texture ? (t4 || this._playing) && this.texture.update(this.canvas, { premultiply: true }) : this.texture = new b(i2, this.canvas, a2.RGBA, { premultiply: true });\n let s2 = false;\n for (const t5 in this.tiles) {\n const e2 = this.tiles[t5];\n \"loaded\" !== e2.state && (e2.state = \"loaded\", e2.texture = this.texture, s2 = true);\n }\n s2 && this.fire(new e.k(\"data\", { dataType: \"source\", sourceDataType: \"idle\", sourceId: this.id }));\n }\n serialize() {\n return { type: \"canvas\", coordinates: this.coordinates };\n }\n hasTransition() {\n return this._playing;\n }\n _hasInvalidDimensions() {\n for (const t4 of [this.canvas.width, this.canvas.height]) if (isNaN(t4) || t4 <= 0) return true;\n return false;\n }\n }\n const it = {}, at = (t4) => {\n switch (t4) {\n case \"geojson\":\n return J;\n case \"image\":\n return Q;\n case \"raster\":\n return X;\n case \"raster-dem\":\n return K2;\n case \"vector\":\n return $;\n case \"video\":\n return tt;\n case \"canvas\":\n return et;\n }\n return it[t4];\n }, st = \"RTLPluginLoaded\";\n class ot extends e.E {\n constructor() {\n super(...arguments), this.status = \"unavailable\", this.url = null, this.dispatcher = j();\n }\n _syncState(t4) {\n return this.status = t4, this.dispatcher.broadcast(\"SRPS\", { pluginStatus: t4, pluginURL: this.url }).catch((t5) => {\n throw this.status = \"error\", t5;\n });\n }\n getRTLTextPluginStatus() {\n return this.status;\n }\n clearRTLTextPlugin() {\n this.status = \"unavailable\", this.url = null;\n }\n setRTLTextPlugin(t4) {\n return e._(this, arguments, void 0, function* (t5, e2 = false) {\n if (this.url) throw new Error(\"setRTLTextPlugin cannot be called multiple times.\");\n if (this.url = o.resolveURL(t5), !this.url) throw new Error(`requested url ${t5} is invalid`);\n if (\"unavailable\" === this.status) {\n if (!e2) return this._requestImport();\n this.status = \"deferred\", this._syncState(this.status);\n } else if (\"requested\" === this.status) return this._requestImport();\n });\n }\n _requestImport() {\n return e._(this, void 0, void 0, function* () {\n yield this._syncState(\"loading\"), this.status = \"loaded\", this.fire(new e.k(st));\n });\n }\n lazyLoad() {\n \"unavailable\" === this.status ? this.status = \"requested\" : \"deferred\" === this.status && this._requestImport();\n }\n }\n let rt = null;\n function nt() {\n return rt || (rt = new ot()), rt;\n }\n class lt {\n constructor(t4, i2) {\n this.timeAdded = 0, this.fadeEndTime = 0, this.tileID = t4, this.uid = e.a4(), this.uses = 0, this.tileSize = i2, this.buckets = {}, this.expirationTime = null, this.queryPadding = 0, this.hasSymbolBuckets = false, this.hasRTLText = false, this.dependencies = {}, this.rtt = [], this.rttCoords = {}, this.expiredRequestCount = 0, this.state = \"loading\";\n }\n registerFadeDuration(t4) {\n const e2 = t4 + this.timeAdded;\n e2 < this.fadeEndTime || (this.fadeEndTime = e2);\n }\n wasRequested() {\n return \"errored\" === this.state || \"loaded\" === this.state || \"reloading\" === this.state;\n }\n clearTextures(t4) {\n this.demTexture && t4.saveTileTexture(this.demTexture), this.demTexture = null;\n }\n loadVectorData(t4, i2, a2) {\n if (this.hasData() && this.unloadVectorData(), this.state = \"loaded\", t4) {\n t4.featureIndex && (this.latestFeatureIndex = t4.featureIndex, t4.rawTileData ? (this.latestRawTileData = t4.rawTileData, this.latestFeatureIndex.rawTileData = t4.rawTileData) : this.latestRawTileData && (this.latestFeatureIndex.rawTileData = this.latestRawTileData)), this.collisionBoxArray = t4.collisionBoxArray, this.buckets = function(t5, e2) {\n const i3 = {};\n if (!e2) return i3;\n for (const a3 of t5) {\n const t6 = a3.layerIds.map((t7) => e2.getLayer(t7)).filter(Boolean);\n if (0 !== t6.length) {\n a3.layers = t6, a3.stateDependentLayerIds && (a3.stateDependentLayers = a3.stateDependentLayerIds.map((e3) => t6.filter((t7) => t7.id === e3)[0]));\n for (const e3 of t6) i3[e3.id] = a3;\n }\n }\n return i3;\n }(t4.buckets, i2.style), this.hasSymbolBuckets = false;\n for (const t5 in this.buckets) {\n const i3 = this.buckets[t5];\n if (i3 instanceof e.a6) {\n if (this.hasSymbolBuckets = true, !a2) break;\n i3.justReloaded = true;\n }\n }\n if (this.hasRTLText = false, this.hasSymbolBuckets) for (const t5 in this.buckets) {\n const i3 = this.buckets[t5];\n if (i3 instanceof e.a6 && i3.hasRTLText) {\n this.hasRTLText = true, nt().lazyLoad();\n break;\n }\n }\n this.queryPadding = 0;\n for (const t5 in this.buckets) {\n const e2 = this.buckets[t5];\n this.queryPadding = Math.max(this.queryPadding, i2.style.getLayer(t5).queryRadius(e2));\n }\n t4.imageAtlas && (this.imageAtlas = t4.imageAtlas), t4.glyphAtlasImage && (this.glyphAtlasImage = t4.glyphAtlasImage);\n } else this.collisionBoxArray = new e.a5();\n }\n unloadVectorData() {\n for (const t4 in this.buckets) this.buckets[t4].destroy();\n this.buckets = {}, this.imageAtlasTexture && this.imageAtlasTexture.destroy(), this.imageAtlas && (this.imageAtlas = null), this.glyphAtlasTexture && this.glyphAtlasTexture.destroy(), this.latestFeatureIndex = null, this.state = \"unloaded\";\n }\n getBucket(t4) {\n return this.buckets[t4.id];\n }\n upload(t4) {\n for (const e3 in this.buckets) {\n const i2 = this.buckets[e3];\n i2.uploadPending() && i2.upload(t4);\n }\n const e2 = t4.gl;\n this.imageAtlas && !this.imageAtlas.uploaded && (this.imageAtlasTexture = new b(t4, this.imageAtlas.image, e2.RGBA), this.imageAtlas.uploaded = true), this.glyphAtlasImage && (this.glyphAtlasTexture = new b(t4, this.glyphAtlasImage, e2.ALPHA), this.glyphAtlasImage = null);\n }\n prepare(t4) {\n this.imageAtlas && this.imageAtlas.patchUpdatedImages(t4, this.imageAtlasTexture);\n }\n queryRenderedFeatures(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2) {\n return this.latestFeatureIndex && this.latestFeatureIndex.rawTileData ? this.latestFeatureIndex.query({ queryGeometry: a2, cameraQueryGeometry: s2, scale: o2, tileSize: this.tileSize, pixelPosMatrix: h2, transform: n2, params: r2, queryPadding: this.queryPadding * l2 }, t4, e2, i2) : {};\n }\n querySourceFeatures(t4, i2) {\n const a2 = this.latestFeatureIndex;\n if (!a2 || !a2.rawTileData) return;\n const s2 = a2.loadVTLayers(), o2 = i2 && i2.sourceLayer ? i2.sourceLayer : \"\", r2 = s2._geojsonTileLayer || s2[o2];\n if (!r2) return;\n const n2 = e.a7(i2 && i2.filter), { z: l2, x: h2, y: c2 } = this.tileID.canonical, u2 = { z: l2, x: h2, y: c2 };\n for (let i3 = 0; i3 < r2.length; i3++) {\n const s3 = r2.feature(i3);\n if (n2.needGeometry) {\n const t5 = e.a8(s3, true);\n if (!n2.filter(new e.z(this.tileID.overscaledZ), t5, this.tileID.canonical)) continue;\n } else if (!n2.filter(new e.z(this.tileID.overscaledZ), s3)) continue;\n const d2 = a2.getId(s3, o2), _2 = new e.a9(s3, l2, h2, c2, d2);\n _2.tile = u2, t4.push(_2);\n }\n }\n hasData() {\n return \"loaded\" === this.state || \"reloading\" === this.state || \"expired\" === this.state;\n }\n patternsLoaded() {\n return this.imageAtlas && !!Object.keys(this.imageAtlas.patternPositions).length;\n }\n setExpiryData(t4) {\n const i2 = this.expirationTime;\n if (t4.cacheControl) {\n const i3 = e.aa(t4.cacheControl);\n i3[\"max-age\"] && (this.expirationTime = Date.now() + 1e3 * i3[\"max-age\"]);\n } else t4.expires && (this.expirationTime = new Date(t4.expires).getTime());\n if (this.expirationTime) {\n const t5 = Date.now();\n let e2 = false;\n if (this.expirationTime > t5) e2 = false;\n else if (i2) if (this.expirationTime < i2) e2 = true;\n else {\n const a2 = this.expirationTime - i2;\n a2 ? this.expirationTime = t5 + Math.max(a2, 3e4) : e2 = true;\n }\n else e2 = true;\n e2 ? (this.expiredRequestCount++, this.state = \"expired\") : this.expiredRequestCount = 0;\n }\n }\n getExpiryTimeout() {\n if (this.expirationTime) return this.expiredRequestCount ? 1e3 * (1 << Math.min(this.expiredRequestCount - 1, 31)) : Math.min(this.expirationTime - (/* @__PURE__ */ new Date()).getTime(), Math.pow(2, 31) - 1);\n }\n setFeatureState(t4, e2) {\n if (!this.latestFeatureIndex || !this.latestFeatureIndex.rawTileData || 0 === Object.keys(t4).length) return;\n const i2 = this.latestFeatureIndex.loadVTLayers();\n for (const a2 in this.buckets) {\n if (!e2.style.hasLayer(a2)) continue;\n const s2 = this.buckets[a2], o2 = s2.layers[0].sourceLayer || \"_geojsonTileLayer\", r2 = i2[o2], n2 = t4[o2];\n if (!r2 || !n2 || 0 === Object.keys(n2).length) continue;\n s2.update(n2, r2, this.imageAtlas && this.imageAtlas.patternPositions || {});\n const l2 = e2 && e2.style && e2.style.getLayer(a2);\n l2 && (this.queryPadding = Math.max(this.queryPadding, l2.queryRadius(s2)));\n }\n }\n holdingForFade() {\n return void 0 !== this.symbolFadeHoldUntil;\n }\n symbolFadeFinished() {\n return !this.symbolFadeHoldUntil || this.symbolFadeHoldUntil < o.now();\n }\n clearFadeHold() {\n this.symbolFadeHoldUntil = void 0;\n }\n setHoldDuration(t4) {\n this.symbolFadeHoldUntil = o.now() + t4;\n }\n setDependencies(t4, e2) {\n const i2 = {};\n for (const t5 of e2) i2[t5] = true;\n this.dependencies[t4] = i2;\n }\n hasDependency(t4, e2) {\n for (const i2 of t4) {\n const t5 = this.dependencies[i2];\n if (t5) {\n for (const i3 of e2) if (t5[i3]) return true;\n }\n }\n return false;\n }\n }\n class ht {\n constructor(t4, e2) {\n this.max = t4, this.onRemove = e2, this.reset();\n }\n reset() {\n for (const t4 in this.data) for (const e2 of this.data[t4]) e2.timeout && clearTimeout(e2.timeout), this.onRemove(e2.value);\n return this.data = {}, this.order = [], this;\n }\n add(t4, e2, i2) {\n const a2 = t4.wrapped().key;\n void 0 === this.data[a2] && (this.data[a2] = []);\n const s2 = { value: e2, timeout: void 0 };\n if (void 0 !== i2 && (s2.timeout = setTimeout(() => {\n this.remove(t4, s2);\n }, i2)), this.data[a2].push(s2), this.order.push(a2), this.order.length > this.max) {\n const t5 = this._getAndRemoveByKey(this.order[0]);\n t5 && this.onRemove(t5);\n }\n return this;\n }\n has(t4) {\n return t4.wrapped().key in this.data;\n }\n getAndRemove(t4) {\n return this.has(t4) ? this._getAndRemoveByKey(t4.wrapped().key) : null;\n }\n _getAndRemoveByKey(t4) {\n const e2 = this.data[t4].shift();\n return e2.timeout && clearTimeout(e2.timeout), 0 === this.data[t4].length && delete this.data[t4], this.order.splice(this.order.indexOf(t4), 1), e2.value;\n }\n getByKey(t4) {\n const e2 = this.data[t4];\n return e2 ? e2[0].value : null;\n }\n get(t4) {\n return this.has(t4) ? this.data[t4.wrapped().key][0].value : null;\n }\n remove(t4, e2) {\n if (!this.has(t4)) return this;\n const i2 = t4.wrapped().key, a2 = void 0 === e2 ? 0 : this.data[i2].indexOf(e2), s2 = this.data[i2][a2];\n return this.data[i2].splice(a2, 1), s2.timeout && clearTimeout(s2.timeout), 0 === this.data[i2].length && delete this.data[i2], this.onRemove(s2.value), this.order.splice(this.order.indexOf(i2), 1), this;\n }\n setMaxSize(t4) {\n for (this.max = t4; this.order.length > this.max; ) {\n const t5 = this._getAndRemoveByKey(this.order[0]);\n t5 && this.onRemove(t5);\n }\n return this;\n }\n filter(t4) {\n const e2 = [];\n for (const i2 in this.data) for (const a2 of this.data[i2]) t4(a2.value) || e2.push(a2);\n for (const t5 of e2) this.remove(t5.value.tileID, t5);\n }\n }\n class ct {\n constructor() {\n this.state = {}, this.stateChanges = {}, this.deletedStates = {};\n }\n updateState(t4, i2, a2) {\n const s2 = String(i2);\n if (this.stateChanges[t4] = this.stateChanges[t4] || {}, this.stateChanges[t4][s2] = this.stateChanges[t4][s2] || {}, e.e(this.stateChanges[t4][s2], a2), null === this.deletedStates[t4]) {\n this.deletedStates[t4] = {};\n for (const e2 in this.state[t4]) e2 !== s2 && (this.deletedStates[t4][e2] = null);\n } else if (this.deletedStates[t4] && null === this.deletedStates[t4][s2]) {\n this.deletedStates[t4][s2] = {};\n for (const e2 in this.state[t4][s2]) a2[e2] || (this.deletedStates[t4][s2][e2] = null);\n } else for (const e2 in a2) this.deletedStates[t4] && this.deletedStates[t4][s2] && null === this.deletedStates[t4][s2][e2] && delete this.deletedStates[t4][s2][e2];\n }\n removeFeatureState(t4, e2, i2) {\n if (null === this.deletedStates[t4]) return;\n const a2 = String(e2);\n if (this.deletedStates[t4] = this.deletedStates[t4] || {}, i2 && void 0 !== e2) null !== this.deletedStates[t4][a2] && (this.deletedStates[t4][a2] = this.deletedStates[t4][a2] || {}, this.deletedStates[t4][a2][i2] = null);\n else if (void 0 !== e2) if (this.stateChanges[t4] && this.stateChanges[t4][a2]) for (i2 in this.deletedStates[t4][a2] = {}, this.stateChanges[t4][a2]) this.deletedStates[t4][a2][i2] = null;\n else this.deletedStates[t4][a2] = null;\n else this.deletedStates[t4] = null;\n }\n getState(t4, i2) {\n const a2 = String(i2), s2 = e.e({}, (this.state[t4] || {})[a2], (this.stateChanges[t4] || {})[a2]);\n if (null === this.deletedStates[t4]) return {};\n if (this.deletedStates[t4]) {\n const e2 = this.deletedStates[t4][i2];\n if (null === e2) return {};\n for (const t5 in e2) delete s2[t5];\n }\n return s2;\n }\n initializeTileState(t4, e2) {\n t4.setFeatureState(this.state, e2);\n }\n coalesceChanges(t4, i2) {\n const a2 = {};\n for (const t5 in this.stateChanges) {\n this.state[t5] = this.state[t5] || {};\n const i3 = {};\n for (const a3 in this.stateChanges[t5]) this.state[t5][a3] || (this.state[t5][a3] = {}), e.e(this.state[t5][a3], this.stateChanges[t5][a3]), i3[a3] = this.state[t5][a3];\n a2[t5] = i3;\n }\n for (const t5 in this.deletedStates) {\n this.state[t5] = this.state[t5] || {};\n const i3 = {};\n if (null === this.deletedStates[t5]) for (const e2 in this.state[t5]) i3[e2] = {}, this.state[t5][e2] = {};\n else for (const e2 in this.deletedStates[t5]) {\n if (null === this.deletedStates[t5][e2]) this.state[t5][e2] = {};\n else for (const i4 of Object.keys(this.deletedStates[t5][e2])) delete this.state[t5][e2][i4];\n i3[e2] = this.state[t5][e2];\n }\n a2[t5] = a2[t5] || {}, e.e(a2[t5], i3);\n }\n if (this.stateChanges = {}, this.deletedStates = {}, 0 !== Object.keys(a2).length) for (const e2 in t4) t4[e2].setFeatureState(a2, i2);\n }\n }\n class ut extends e.E {\n constructor(t4, e2, i2) {\n super(), this.id = t4, this.dispatcher = i2, this.on(\"data\", (t5) => this._dataHandler(t5)), this.on(\"dataloading\", () => {\n this._sourceErrored = false;\n }), this.on(\"error\", () => {\n this._sourceErrored = this._source.loaded();\n }), this._source = ((t5, e3, i3, a2) => {\n const s2 = new (at(e3.type))(t5, e3, i3, a2);\n if (s2.id !== t5) throw new Error(`Expected Source id to be ${t5} instead of ${s2.id}`);\n return s2;\n })(t4, e2, i2, this), this._tiles = {}, this._cache = new ht(0, (t5) => this._unloadTile(t5)), this._timers = {}, this._cacheTimers = {}, this._maxTileCacheSize = null, this._maxTileCacheZoomLevels = null, this._loadedParentTiles = {}, this._coveredTiles = {}, this._state = new ct(), this._didEmitContent = false, this._updated = false;\n }\n onAdd(t4) {\n this.map = t4, this._maxTileCacheSize = t4 ? t4._maxTileCacheSize : null, this._maxTileCacheZoomLevels = t4 ? t4._maxTileCacheZoomLevels : null, this._source && this._source.onAdd && this._source.onAdd(t4);\n }\n onRemove(t4) {\n this.clearTiles(), this._source && this._source.onRemove && this._source.onRemove(t4);\n }\n loaded() {\n if (this._sourceErrored) return true;\n if (!this._sourceLoaded) return false;\n if (!this._source.loaded()) return false;\n if (!(void 0 === this.used && void 0 === this.usedForTerrain || this.used || this.usedForTerrain)) return true;\n if (!this._updated) return false;\n for (const t4 in this._tiles) {\n const e2 = this._tiles[t4];\n if (\"loaded\" !== e2.state && \"errored\" !== e2.state) return false;\n }\n return true;\n }\n getSource() {\n return this._source;\n }\n pause() {\n this._paused = true;\n }\n resume() {\n if (!this._paused) return;\n const t4 = this._shouldReloadOnResume;\n this._paused = false, this._shouldReloadOnResume = false, t4 && this.reload(), this.transform && this.update(this.transform, this.terrain);\n }\n _loadTile(t4, i2, a2) {\n return e._(this, void 0, void 0, function* () {\n try {\n yield this._source.loadTile(t4), this._tileLoaded(t4, i2, a2);\n } catch (i3) {\n t4.state = \"errored\", 404 !== i3.status ? this._source.fire(new e.j(i3, { tile: t4 })) : this.update(this.transform, this.terrain);\n }\n });\n }\n _unloadTile(t4) {\n this._source.unloadTile && this._source.unloadTile(t4);\n }\n _abortTile(t4) {\n this._source.abortTile && this._source.abortTile(t4), this._source.fire(new e.k(\"dataabort\", { tile: t4, coord: t4.tileID, dataType: \"source\" }));\n }\n serialize() {\n return this._source.serialize();\n }\n prepare(t4) {\n this._source.prepare && this._source.prepare(), this._state.coalesceChanges(this._tiles, this.map ? this.map.painter : null);\n for (const e2 in this._tiles) {\n const i2 = this._tiles[e2];\n i2.upload(t4), i2.prepare(this.map.style.imageManager);\n }\n }\n getIds() {\n return Object.values(this._tiles).map((t4) => t4.tileID).sort(dt).map((t4) => t4.key);\n }\n getRenderableIds(t4) {\n const i2 = [];\n for (const e2 in this._tiles) this._isIdRenderable(e2, t4) && i2.push(this._tiles[e2]);\n return t4 ? i2.sort((t5, i3) => {\n const a2 = t5.tileID, s2 = i3.tileID, o2 = new e.P(a2.canonical.x, a2.canonical.y)._rotate(this.transform.angle), r2 = new e.P(s2.canonical.x, s2.canonical.y)._rotate(this.transform.angle);\n return a2.overscaledZ - s2.overscaledZ || r2.y - o2.y || r2.x - o2.x;\n }).map((t5) => t5.tileID.key) : i2.map((t5) => t5.tileID).sort(dt).map((t5) => t5.key);\n }\n hasRenderableParent(t4) {\n const e2 = this.findLoadedParent(t4, 0);\n return !!e2 && this._isIdRenderable(e2.tileID.key);\n }\n _isIdRenderable(t4, e2) {\n return this._tiles[t4] && this._tiles[t4].hasData() && !this._coveredTiles[t4] && (e2 || !this._tiles[t4].holdingForFade());\n }\n reload() {\n if (this._paused) this._shouldReloadOnResume = true;\n else {\n this._cache.reset();\n for (const t4 in this._tiles) \"errored\" !== this._tiles[t4].state && this._reloadTile(t4, \"reloading\");\n }\n }\n _reloadTile(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n const e2 = this._tiles[t4];\n e2 && (\"loading\" !== e2.state && (e2.state = i2), yield this._loadTile(e2, t4, i2));\n });\n }\n _tileLoaded(t4, i2, a2) {\n t4.timeAdded = o.now(), \"expired\" === a2 && (t4.refreshedUponExpiration = true), this._setTileReloadTimer(i2, t4), \"raster-dem\" === this.getSource().type && t4.dem && this._backfillDEM(t4), this._state.initializeTileState(t4, this.map ? this.map.painter : null), t4.aborted || this._source.fire(new e.k(\"data\", { dataType: \"source\", tile: t4, coord: t4.tileID }));\n }\n _backfillDEM(t4) {\n const e2 = this.getRenderableIds();\n for (let a2 = 0; a2 < e2.length; a2++) {\n const s2 = e2[a2];\n if (t4.neighboringTiles && t4.neighboringTiles[s2]) {\n const e3 = this.getTileByID(s2);\n i2(t4, e3), i2(e3, t4);\n }\n }\n function i2(t5, e3) {\n t5.needsHillshadePrepare = true, t5.needsTerrainPrepare = true;\n let i3 = e3.tileID.canonical.x - t5.tileID.canonical.x;\n const a2 = e3.tileID.canonical.y - t5.tileID.canonical.y, s2 = Math.pow(2, t5.tileID.canonical.z), o2 = e3.tileID.key;\n 0 === i3 && 0 === a2 || Math.abs(a2) > 1 || (Math.abs(i3) > 1 && (1 === Math.abs(i3 + s2) ? i3 += s2 : 1 === Math.abs(i3 - s2) && (i3 -= s2)), e3.dem && t5.dem && (t5.dem.backfillBorder(e3.dem, i3, a2), t5.neighboringTiles && t5.neighboringTiles[o2] && (t5.neighboringTiles[o2].backfilled = true)));\n }\n }\n getTile(t4) {\n return this.getTileByID(t4.key);\n }\n getTileByID(t4) {\n return this._tiles[t4];\n }\n _retainLoadedChildren(t4, e2, i2, a2) {\n for (const s2 in this._tiles) {\n let o2 = this._tiles[s2];\n if (a2[s2] || !o2.hasData() || o2.tileID.overscaledZ <= e2 || o2.tileID.overscaledZ > i2) continue;\n let r2 = o2.tileID;\n for (; o2 && o2.tileID.overscaledZ > e2 + 1; ) {\n const t5 = o2.tileID.scaledTo(o2.tileID.overscaledZ - 1);\n o2 = this._tiles[t5.key], o2 && o2.hasData() && (r2 = t5);\n }\n let n2 = r2;\n for (; n2.overscaledZ > e2; ) if (n2 = n2.scaledTo(n2.overscaledZ - 1), t4[n2.key]) {\n a2[r2.key] = r2;\n break;\n }\n }\n }\n findLoadedParent(t4, e2) {\n if (t4.key in this._loadedParentTiles) {\n const i2 = this._loadedParentTiles[t4.key];\n return i2 && i2.tileID.overscaledZ >= e2 ? i2 : null;\n }\n for (let i2 = t4.overscaledZ - 1; i2 >= e2; i2--) {\n const e3 = t4.scaledTo(i2), a2 = this._getLoadedTile(e3);\n if (a2) return a2;\n }\n }\n findLoadedSibling(t4) {\n return this._getLoadedTile(t4);\n }\n _getLoadedTile(t4) {\n const e2 = this._tiles[t4.key];\n return e2 && e2.hasData() ? e2 : this._cache.getByKey(t4.wrapped().key);\n }\n updateCacheSize(t4) {\n const i2 = Math.ceil(t4.width / this._source.tileSize) + 1, a2 = Math.ceil(t4.height / this._source.tileSize) + 1, s2 = Math.floor(i2 * a2 * (null === this._maxTileCacheZoomLevels ? e.a.MAX_TILE_CACHE_ZOOM_LEVELS : this._maxTileCacheZoomLevels)), o2 = \"number\" == typeof this._maxTileCacheSize ? Math.min(this._maxTileCacheSize, s2) : s2;\n this._cache.setMaxSize(o2);\n }\n handleWrapJump(t4) {\n const e2 = Math.round((t4 - (void 0 === this._prevLng ? t4 : this._prevLng)) / 360);\n if (this._prevLng = t4, e2) {\n const t5 = {};\n for (const i2 in this._tiles) {\n const a2 = this._tiles[i2];\n a2.tileID = a2.tileID.unwrapTo(a2.tileID.wrap + e2), t5[a2.tileID.key] = a2;\n }\n this._tiles = t5;\n for (const t6 in this._timers) clearTimeout(this._timers[t6]), delete this._timers[t6];\n for (const t6 in this._tiles) this._setTileReloadTimer(t6, this._tiles[t6]);\n }\n }\n _updateCoveredAndRetainedTiles(t4, e2, i2, a2, s2, r2) {\n const n2 = {}, l2 = {}, h2 = Object.keys(t4), c2 = o.now();\n for (const i3 of h2) {\n const a3 = t4[i3], s3 = this._tiles[i3];\n if (!s3 || 0 !== s3.fadeEndTime && s3.fadeEndTime <= c2) continue;\n const o2 = this.findLoadedParent(a3, e2), r3 = this.findLoadedSibling(a3), h3 = o2 || r3 || null;\n h3 && (this._addTile(h3.tileID), n2[h3.tileID.key] = h3.tileID), l2[i3] = a3;\n }\n this._retainLoadedChildren(l2, a2, i2, t4);\n for (const e3 in n2) t4[e3] || (this._coveredTiles[e3] = true, t4[e3] = n2[e3]);\n if (r2) {\n const e3 = {}, i3 = {};\n for (const t5 of s2) this._tiles[t5.key].hasData() ? e3[t5.key] = t5 : i3[t5.key] = t5;\n for (const a3 in i3) {\n const s3 = i3[a3].children(this._source.maxzoom);\n this._tiles[s3[0].key] && this._tiles[s3[1].key] && this._tiles[s3[2].key] && this._tiles[s3[3].key] && (e3[s3[0].key] = t4[s3[0].key] = s3[0], e3[s3[1].key] = t4[s3[1].key] = s3[1], e3[s3[2].key] = t4[s3[2].key] = s3[2], e3[s3[3].key] = t4[s3[3].key] = s3[3], delete i3[a3]);\n }\n for (const a3 in i3) {\n const s3 = i3[a3], o2 = this.findLoadedParent(s3, this._source.minzoom), r3 = this.findLoadedSibling(s3), n3 = o2 || r3 || null;\n if (n3) {\n e3[n3.tileID.key] = t4[n3.tileID.key] = n3.tileID;\n for (const t5 in e3) e3[t5].isChildOf(n3.tileID) && delete e3[t5];\n }\n }\n for (const t5 in this._tiles) e3[t5] || (this._coveredTiles[t5] = true);\n }\n }\n update(t4, i2) {\n if (!this._sourceLoaded || this._paused) return;\n let a2;\n this.transform = t4, this.terrain = i2, this.updateCacheSize(t4), this.handleWrapJump(this.transform.center.lng), this._coveredTiles = {}, this.used || this.usedForTerrain ? this._source.tileID ? a2 = t4.getVisibleUnwrappedCoordinates(this._source.tileID).map((t5) => new e.S(t5.canonical.z, t5.wrap, t5.canonical.z, t5.canonical.x, t5.canonical.y)) : (a2 = t4.coveringTiles({ tileSize: this.usedForTerrain ? this.tileSize : this._source.tileSize, minzoom: this._source.minzoom, maxzoom: this._source.maxzoom, roundZoom: !this.usedForTerrain && this._source.roundZoom, reparseOverscaled: this._source.reparseOverscaled, terrain: i2 }), this._source.hasTile && (a2 = a2.filter((t5) => this._source.hasTile(t5)))) : a2 = [];\n const s2 = t4.coveringZoomLevel(this._source), o2 = Math.max(s2 - ut.maxOverzooming, this._source.minzoom), r2 = Math.max(s2 + ut.maxUnderzooming, this._source.minzoom);\n if (this.usedForTerrain) {\n const t5 = {};\n for (const e2 of a2) if (e2.canonical.z > this._source.minzoom) {\n const i3 = e2.scaledTo(e2.canonical.z - 1);\n t5[i3.key] = i3;\n const a3 = e2.scaledTo(Math.max(this._source.minzoom, Math.min(e2.canonical.z, 5)));\n t5[a3.key] = a3;\n }\n a2 = a2.concat(Object.values(t5));\n }\n const n2 = 0 === a2.length && !this._updated && this._didEmitContent;\n this._updated = true, n2 && this.fire(new e.k(\"data\", { sourceDataType: \"idle\", dataType: \"source\", sourceId: this.id }));\n const l2 = this._updateRetainedTiles(a2, s2);\n _t(this._source.type) && this._updateCoveredAndRetainedTiles(l2, o2, r2, s2, a2, i2);\n for (const t5 in l2) this._tiles[t5].clearFadeHold();\n const h2 = e.ab(this._tiles, l2);\n for (const t5 of h2) {\n const e2 = this._tiles[t5];\n e2.hasSymbolBuckets && !e2.holdingForFade() ? e2.setHoldDuration(this.map._fadeDuration) : e2.hasSymbolBuckets && !e2.symbolFadeFinished() || this._removeTile(t5);\n }\n this._updateLoadedParentTileCache(), this._updateLoadedSiblingTileCache();\n }\n releaseSymbolFadeTiles() {\n for (const t4 in this._tiles) this._tiles[t4].holdingForFade() && this._removeTile(t4);\n }\n _updateRetainedTiles(t4, e2) {\n var i2;\n const a2 = {}, s2 = {}, o2 = Math.max(e2 - ut.maxOverzooming, this._source.minzoom), r2 = Math.max(e2 + ut.maxUnderzooming, this._source.minzoom), n2 = {};\n for (const i3 of t4) {\n const t5 = this._addTile(i3);\n a2[i3.key] = i3, t5.hasData() || e2 < this._source.maxzoom && (n2[i3.key] = i3);\n }\n this._retainLoadedChildren(n2, e2, r2, a2);\n for (const r3 of t4) {\n let t5 = this._tiles[r3.key];\n if (t5.hasData()) continue;\n if (e2 + 1 > this._source.maxzoom) {\n const t6 = r3.children(this._source.maxzoom)[0], e3 = this.getTile(t6);\n if (e3 && e3.hasData()) {\n a2[t6.key] = t6;\n continue;\n }\n } else {\n const t6 = r3.children(this._source.maxzoom);\n if (a2[t6[0].key] && a2[t6[1].key] && a2[t6[2].key] && a2[t6[3].key]) continue;\n }\n let n3 = t5.wasRequested();\n for (let e3 = r3.overscaledZ - 1; e3 >= o2; --e3) {\n const o3 = r3.scaledTo(e3);\n if (s2[o3.key]) break;\n if (s2[o3.key] = true, t5 = this.getTile(o3), !t5 && n3 && (t5 = this._addTile(o3)), t5) {\n const e4 = t5.hasData();\n if ((e4 || !(null === (i2 = this.map) || void 0 === i2 ? void 0 : i2.cancelPendingTileRequestsWhileZooming) || n3) && (a2[o3.key] = o3), n3 = t5.wasRequested(), e4) break;\n }\n }\n }\n return a2;\n }\n _updateLoadedParentTileCache() {\n this._loadedParentTiles = {};\n for (const t4 in this._tiles) {\n const e2 = [];\n let i2, a2 = this._tiles[t4].tileID;\n for (; a2.overscaledZ > 0; ) {\n if (a2.key in this._loadedParentTiles) {\n i2 = this._loadedParentTiles[a2.key];\n break;\n }\n e2.push(a2.key);\n const t5 = a2.scaledTo(a2.overscaledZ - 1);\n if (i2 = this._getLoadedTile(t5), i2) break;\n a2 = t5;\n }\n for (const t5 of e2) this._loadedParentTiles[t5] = i2;\n }\n }\n _updateLoadedSiblingTileCache() {\n this._loadedSiblingTiles = {};\n for (const t4 in this._tiles) {\n const e2 = this._tiles[t4].tileID, i2 = this._getLoadedTile(e2);\n this._loadedSiblingTiles[e2.key] = i2;\n }\n }\n _addTile(t4) {\n let i2 = this._tiles[t4.key];\n if (i2) return i2;\n i2 = this._cache.getAndRemove(t4), i2 && (this._setTileReloadTimer(t4.key, i2), i2.tileID = t4, this._state.initializeTileState(i2, this.map ? this.map.painter : null), this._cacheTimers[t4.key] && (clearTimeout(this._cacheTimers[t4.key]), delete this._cacheTimers[t4.key], this._setTileReloadTimer(t4.key, i2)));\n const a2 = i2;\n return i2 || (i2 = new lt(t4, this._source.tileSize * t4.overscaleFactor()), this._loadTile(i2, t4.key, i2.state)), i2.uses++, this._tiles[t4.key] = i2, a2 || this._source.fire(new e.k(\"dataloading\", { tile: i2, coord: i2.tileID, dataType: \"source\" })), i2;\n }\n _setTileReloadTimer(t4, e2) {\n t4 in this._timers && (clearTimeout(this._timers[t4]), delete this._timers[t4]);\n const i2 = e2.getExpiryTimeout();\n i2 && (this._timers[t4] = setTimeout(() => {\n this._reloadTile(t4, \"expired\"), delete this._timers[t4];\n }, i2));\n }\n _removeTile(t4) {\n const e2 = this._tiles[t4];\n e2 && (e2.uses--, delete this._tiles[t4], this._timers[t4] && (clearTimeout(this._timers[t4]), delete this._timers[t4]), e2.uses > 0 || (e2.hasData() && \"reloading\" !== e2.state ? this._cache.add(e2.tileID, e2, e2.getExpiryTimeout()) : (e2.aborted = true, this._abortTile(e2), this._unloadTile(e2))));\n }\n _dataHandler(t4) {\n const e2 = t4.sourceDataType;\n \"source\" === t4.dataType && \"metadata\" === e2 && (this._sourceLoaded = true), this._sourceLoaded && !this._paused && \"source\" === t4.dataType && \"content\" === e2 && (this.reload(), this.transform && this.update(this.transform, this.terrain), this._didEmitContent = true);\n }\n clearTiles() {\n this._shouldReloadOnResume = false, this._paused = false;\n for (const t4 in this._tiles) this._removeTile(t4);\n this._cache.reset();\n }\n tilesIn(t4, i2, a2) {\n const s2 = [], o2 = this.transform;\n if (!o2) return s2;\n const r2 = a2 ? o2.getCameraQueryGeometry(t4) : t4, n2 = t4.map((t5) => o2.pointCoordinate(t5, this.terrain)), l2 = r2.map((t5) => o2.pointCoordinate(t5, this.terrain)), h2 = this.getIds();\n let c2 = 1 / 0, u2 = 1 / 0, d2 = -1 / 0, _2 = -1 / 0;\n for (const t5 of l2) c2 = Math.min(c2, t5.x), u2 = Math.min(u2, t5.y), d2 = Math.max(d2, t5.x), _2 = Math.max(_2, t5.y);\n for (let t5 = 0; t5 < h2.length; t5++) {\n const a3 = this._tiles[h2[t5]];\n if (a3.holdingForFade()) continue;\n const r3 = a3.tileID, p2 = Math.pow(2, o2.zoom - a3.tileID.overscaledZ), m2 = i2 * a3.queryPadding * e.X / a3.tileSize / p2, f2 = [r3.getTilePoint(new e.Z(c2, u2)), r3.getTilePoint(new e.Z(d2, _2))];\n if (f2[0].x - m2 < e.X && f2[0].y - m2 < e.X && f2[1].x + m2 >= 0 && f2[1].y + m2 >= 0) {\n const t6 = n2.map((t7) => r3.getTilePoint(t7)), e2 = l2.map((t7) => r3.getTilePoint(t7));\n s2.push({ tile: a3, tileID: r3, queryGeometry: t6, cameraQueryGeometry: e2, scale: p2 });\n }\n }\n return s2;\n }\n getVisibleCoordinates(t4) {\n const e2 = this.getRenderableIds(t4).map((t5) => this._tiles[t5].tileID);\n for (const t5 of e2) t5.posMatrix = this.transform.calculatePosMatrix(t5.toUnwrapped());\n return e2;\n }\n hasTransition() {\n if (this._source.hasTransition()) return true;\n if (_t(this._source.type)) {\n const t4 = o.now();\n for (const e2 in this._tiles) if (this._tiles[e2].fadeEndTime >= t4) return true;\n }\n return false;\n }\n setFeatureState(t4, e2, i2) {\n this._state.updateState(t4 = t4 || \"_geojsonTileLayer\", e2, i2);\n }\n removeFeatureState(t4, e2, i2) {\n this._state.removeFeatureState(t4 = t4 || \"_geojsonTileLayer\", e2, i2);\n }\n getFeatureState(t4, e2) {\n return this._state.getState(t4 = t4 || \"_geojsonTileLayer\", e2);\n }\n setDependencies(t4, e2, i2) {\n const a2 = this._tiles[t4];\n a2 && a2.setDependencies(e2, i2);\n }\n reloadTilesForDependencies(t4, e2) {\n for (const i2 in this._tiles) this._tiles[i2].hasDependency(t4, e2) && this._reloadTile(i2, \"reloading\");\n this._cache.filter((i2) => !i2.hasDependency(t4, e2));\n }\n }\n function dt(t4, e2) {\n const i2 = Math.abs(2 * t4.wrap) - +(t4.wrap < 0), a2 = Math.abs(2 * e2.wrap) - +(e2.wrap < 0);\n return t4.overscaledZ - e2.overscaledZ || a2 - i2 || e2.canonical.y - t4.canonical.y || e2.canonical.x - t4.canonical.x;\n }\n function _t(t4) {\n return \"raster\" === t4 || \"image\" === t4 || \"video\" === t4;\n }\n ut.maxOverzooming = 10, ut.maxUnderzooming = 3;\n class pt {\n constructor(t4, e2) {\n this.reset(t4, e2);\n }\n reset(t4, e2) {\n this.points = t4 || [], this._distances = [0];\n for (let t5 = 1; t5 < this.points.length; t5++) this._distances[t5] = this._distances[t5 - 1] + this.points[t5].dist(this.points[t5 - 1]);\n this.length = this._distances[this._distances.length - 1], this.padding = Math.min(e2 || 0, 0.5 * this.length), this.paddedLength = this.length - 2 * this.padding;\n }\n lerp(t4) {\n if (1 === this.points.length) return this.points[0];\n t4 = e.ac(t4, 0, 1);\n let i2 = 1, a2 = this._distances[i2];\n const s2 = t4 * this.paddedLength + this.padding;\n for (; a2 < s2 && i2 < this._distances.length; ) a2 = this._distances[++i2];\n const o2 = i2 - 1, r2 = this._distances[o2], n2 = a2 - r2, l2 = n2 > 0 ? (s2 - r2) / n2 : 0;\n return this.points[o2].mult(1 - l2).add(this.points[i2].mult(l2));\n }\n }\n function mt(t4, e2) {\n let i2 = true;\n return \"always\" === t4 || \"never\" !== t4 && \"never\" !== e2 || (i2 = false), i2;\n }\n class ft {\n constructor(t4, e2, i2) {\n const a2 = this.boxCells = [], s2 = this.circleCells = [];\n this.xCellCount = Math.ceil(t4 / i2), this.yCellCount = Math.ceil(e2 / i2);\n for (let t5 = 0; t5 < this.xCellCount * this.yCellCount; t5++) a2.push([]), s2.push([]);\n this.circleKeys = [], this.boxKeys = [], this.bboxes = [], this.circles = [], this.width = t4, this.height = e2, this.xScale = this.xCellCount / t4, this.yScale = this.yCellCount / e2, this.boxUid = 0, this.circleUid = 0;\n }\n keysLength() {\n return this.boxKeys.length + this.circleKeys.length;\n }\n insert(t4, e2, i2, a2, s2) {\n this._forEachCell(e2, i2, a2, s2, this._insertBoxCell, this.boxUid++), this.boxKeys.push(t4), this.bboxes.push(e2), this.bboxes.push(i2), this.bboxes.push(a2), this.bboxes.push(s2);\n }\n insertCircle(t4, e2, i2, a2) {\n this._forEachCell(e2 - a2, i2 - a2, e2 + a2, i2 + a2, this._insertCircleCell, this.circleUid++), this.circleKeys.push(t4), this.circles.push(e2), this.circles.push(i2), this.circles.push(a2);\n }\n _insertBoxCell(t4, e2, i2, a2, s2, o2) {\n this.boxCells[s2].push(o2);\n }\n _insertCircleCell(t4, e2, i2, a2, s2, o2) {\n this.circleCells[s2].push(o2);\n }\n _query(t4, e2, i2, a2, s2, o2, r2) {\n if (i2 < 0 || t4 > this.width || a2 < 0 || e2 > this.height) return [];\n const n2 = [];\n if (t4 <= 0 && e2 <= 0 && this.width <= i2 && this.height <= a2) {\n if (s2) return [{ key: null, x1: t4, y1: e2, x2: i2, y2: a2 }];\n for (let t5 = 0; t5 < this.boxKeys.length; t5++) n2.push({ key: this.boxKeys[t5], x1: this.bboxes[4 * t5], y1: this.bboxes[4 * t5 + 1], x2: this.bboxes[4 * t5 + 2], y2: this.bboxes[4 * t5 + 3] });\n for (let t5 = 0; t5 < this.circleKeys.length; t5++) {\n const e3 = this.circles[3 * t5], i3 = this.circles[3 * t5 + 1], a3 = this.circles[3 * t5 + 2];\n n2.push({ key: this.circleKeys[t5], x1: e3 - a3, y1: i3 - a3, x2: e3 + a3, y2: i3 + a3 });\n }\n } else this._forEachCell(t4, e2, i2, a2, this._queryCell, n2, { hitTest: s2, overlapMode: o2, seenUids: { box: {}, circle: {} } }, r2);\n return n2;\n }\n query(t4, e2, i2, a2) {\n return this._query(t4, e2, i2, a2, false, null);\n }\n hitTest(t4, e2, i2, a2, s2, o2) {\n return this._query(t4, e2, i2, a2, true, s2, o2).length > 0;\n }\n hitTestCircle(t4, e2, i2, a2, s2) {\n const o2 = t4 - i2, r2 = t4 + i2, n2 = e2 - i2, l2 = e2 + i2;\n if (r2 < 0 || o2 > this.width || l2 < 0 || n2 > this.height) return false;\n const h2 = [];\n return this._forEachCell(o2, n2, r2, l2, this._queryCellCircle, h2, { hitTest: true, overlapMode: a2, circle: { x: t4, y: e2, radius: i2 }, seenUids: { box: {}, circle: {} } }, s2), h2.length > 0;\n }\n _queryCell(t4, e2, i2, a2, s2, o2, r2, n2) {\n const { seenUids: l2, hitTest: h2, overlapMode: c2 } = r2, u2 = this.boxCells[s2];\n if (null !== u2) {\n const s3 = this.bboxes;\n for (const r3 of u2) if (!l2.box[r3]) {\n l2.box[r3] = true;\n const u3 = 4 * r3, d3 = this.boxKeys[r3];\n if (t4 <= s3[u3 + 2] && e2 <= s3[u3 + 3] && i2 >= s3[u3 + 0] && a2 >= s3[u3 + 1] && (!n2 || n2(d3)) && (!h2 || !mt(c2, d3.overlapMode)) && (o2.push({ key: d3, x1: s3[u3], y1: s3[u3 + 1], x2: s3[u3 + 2], y2: s3[u3 + 3] }), h2)) return true;\n }\n }\n const d2 = this.circleCells[s2];\n if (null !== d2) {\n const s3 = this.circles;\n for (const r3 of d2) if (!l2.circle[r3]) {\n l2.circle[r3] = true;\n const u3 = 3 * r3, d3 = this.circleKeys[r3];\n if (this._circleAndRectCollide(s3[u3], s3[u3 + 1], s3[u3 + 2], t4, e2, i2, a2) && (!n2 || n2(d3)) && (!h2 || !mt(c2, d3.overlapMode))) {\n const t5 = s3[u3], e3 = s3[u3 + 1], i3 = s3[u3 + 2];\n if (o2.push({ key: d3, x1: t5 - i3, y1: e3 - i3, x2: t5 + i3, y2: e3 + i3 }), h2) return true;\n }\n }\n }\n return false;\n }\n _queryCellCircle(t4, e2, i2, a2, s2, o2, r2, n2) {\n const { circle: l2, seenUids: h2, overlapMode: c2 } = r2, u2 = this.boxCells[s2];\n if (null !== u2) {\n const t5 = this.bboxes;\n for (const e3 of u2) if (!h2.box[e3]) {\n h2.box[e3] = true;\n const i3 = 4 * e3, a3 = this.boxKeys[e3];\n if (this._circleAndRectCollide(l2.x, l2.y, l2.radius, t5[i3 + 0], t5[i3 + 1], t5[i3 + 2], t5[i3 + 3]) && (!n2 || n2(a3)) && !mt(c2, a3.overlapMode)) return o2.push(true), true;\n }\n }\n const d2 = this.circleCells[s2];\n if (null !== d2) {\n const t5 = this.circles;\n for (const e3 of d2) if (!h2.circle[e3]) {\n h2.circle[e3] = true;\n const i3 = 3 * e3, a3 = this.circleKeys[e3];\n if (this._circlesCollide(t5[i3], t5[i3 + 1], t5[i3 + 2], l2.x, l2.y, l2.radius) && (!n2 || n2(a3)) && !mt(c2, a3.overlapMode)) return o2.push(true), true;\n }\n }\n }\n _forEachCell(t4, e2, i2, a2, s2, o2, r2, n2) {\n const l2 = this._convertToXCellCoord(t4), h2 = this._convertToYCellCoord(e2), c2 = this._convertToXCellCoord(i2), u2 = this._convertToYCellCoord(a2);\n for (let d2 = l2; d2 <= c2; d2++) for (let l3 = h2; l3 <= u2; l3++) if (s2.call(this, t4, e2, i2, a2, this.xCellCount * l3 + d2, o2, r2, n2)) return;\n }\n _convertToXCellCoord(t4) {\n return Math.max(0, Math.min(this.xCellCount - 1, Math.floor(t4 * this.xScale)));\n }\n _convertToYCellCoord(t4) {\n return Math.max(0, Math.min(this.yCellCount - 1, Math.floor(t4 * this.yScale)));\n }\n _circlesCollide(t4, e2, i2, a2, s2, o2) {\n const r2 = a2 - t4, n2 = s2 - e2, l2 = i2 + o2;\n return l2 * l2 > r2 * r2 + n2 * n2;\n }\n _circleAndRectCollide(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = (o2 - a2) / 2, l2 = Math.abs(t4 - (a2 + n2));\n if (l2 > n2 + i2) return false;\n const h2 = (r2 - s2) / 2, c2 = Math.abs(e2 - (s2 + h2));\n if (c2 > h2 + i2) return false;\n if (l2 <= n2 || c2 <= h2) return true;\n const u2 = l2 - n2, d2 = c2 - h2;\n return u2 * u2 + d2 * d2 <= i2 * i2;\n }\n }\n function gt(t4, i2, a2, s2, o2) {\n const r2 = e.H();\n return i2 ? (e.K(r2, r2, [1 / o2, 1 / o2, 1]), a2 || e.ad(r2, r2, s2.angle)) : e.L(r2, s2.labelPlaneMatrix, t4), r2;\n }\n function vt(t4, i2, a2, s2, o2) {\n if (i2) {\n const i3 = e.ae(t4);\n return e.K(i3, i3, [o2, o2, 1]), a2 || e.ad(i3, i3, -s2.angle), i3;\n }\n return s2.glCoordMatrix;\n }\n function xt(t4, i2, a2, s2) {\n let o2;\n s2 ? (o2 = [t4, i2, s2(t4, i2), 1], e.af(o2, o2, a2)) : (o2 = [t4, i2, 0, 1], kt(o2, o2, a2));\n const r2 = o2[3];\n return { point: new e.P(o2[0] / r2, o2[1] / r2), signedDistanceFromCamera: r2, isOccluded: false };\n }\n function yt(t4, e2) {\n return 0.5 + t4 / e2 * 0.5;\n }\n function bt(t4, e2) {\n return t4.x >= -e2[0] && t4.x <= e2[0] && t4.y >= -e2[1] && t4.y <= e2[1];\n }\n function wt(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2) {\n const f2 = s2 ? t4.textSizeData : t4.iconSizeData, g2 = e.ag(f2, a2.transform.zoom), v2 = [256 / a2.width * 2 + 1, 256 / a2.height * 2 + 1], x2 = s2 ? t4.text.dynamicLayoutVertexArray : t4.icon.dynamicLayoutVertexArray;\n x2.clear();\n const y2 = t4.lineVertexArray, b2 = s2 ? t4.text.placedSymbolArray : t4.icon.placedSymbolArray, w2 = a2.transform.width / a2.transform.height;\n let T2 = false;\n for (let s3 = 0; s3 < b2.length; s3++) {\n const I2 = b2.get(s3);\n if (I2.hidden || I2.writingMode === e.ah.vertical && !T2) {\n Rt(I2.numGlyphs, x2);\n continue;\n }\n T2 = false;\n const E3 = xt(I2.anchorX, I2.anchorY, i2, m2);\n if (!bt(E3.point, v2)) {\n Rt(I2.numGlyphs, x2);\n continue;\n }\n const P2 = yt(a2.transform.cameraToCenterDistance, E3.signedDistanceFromCamera), C3 = e.ai(f2, g2, I2), S2 = n2 ? C3 / P2 : C3 * P2, z2 = { getElevation: m2, labelPlaneMatrix: o2, lineVertexArray: y2, pitchWithMap: n2, projectionCache: { projections: {}, offsets: {}, cachedAnchorPoint: void 0, anyProjectionOccluded: false }, projection: c2, tileAnchorPoint: new e.P(I2.anchorX, I2.anchorY), unwrappedTileID: u2, width: d2, height: _2, translation: p2 }, D3 = Et(z2, I2, S2, false, l2, i2, r2, t4.glyphOffsetArray, x2, w2, h2);\n T2 = D3.useVertical, (D3.notEnoughRoom || T2 || D3.needsFlipping && Et(z2, I2, S2, true, l2, i2, r2, t4.glyphOffsetArray, x2, w2, h2).notEnoughRoom) && Rt(I2.numGlyphs, x2);\n }\n s2 ? t4.text.dynamicLayoutVertexBuffer.updateData(x2) : t4.icon.dynamicLayoutVertexBuffer.updateData(x2);\n }\n function Tt(t4, e2, i2, a2, s2, o2, r2, n2) {\n const l2 = o2.glyphStartIndex + o2.numGlyphs, h2 = o2.lineStartIndex, c2 = o2.lineStartIndex + o2.lineLength, u2 = e2.getoffsetX(o2.glyphStartIndex), d2 = e2.getoffsetX(l2 - 1), _2 = Mt(t4 * u2, i2, a2, s2, o2.segment, h2, c2, n2, r2);\n if (!_2) return null;\n const p2 = Mt(t4 * d2, i2, a2, s2, o2.segment, h2, c2, n2, r2);\n return p2 ? n2.projectionCache.anyProjectionOccluded ? null : { first: _2, last: p2 } : null;\n }\n function It(t4, i2, a2, s2) {\n return t4 === e.ah.horizontal && Math.abs(a2.y - i2.y) > Math.abs(a2.x - i2.x) * s2 ? { useVertical: true } : (t4 === e.ah.vertical ? i2.y < a2.y : i2.x > a2.x) ? { needsFlipping: true } : null;\n }\n function Et(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2) {\n const d2 = a2 / 24, _2 = i2.lineOffsetX * d2, p2 = i2.lineOffsetY * d2;\n let m2;\n if (i2.numGlyphs > 1) {\n const e2 = i2.glyphStartIndex + i2.numGlyphs, a3 = i2.lineStartIndex, r3 = i2.lineStartIndex + i2.lineLength, h3 = Tt(d2, l2, _2, p2, s2, i2, u2, t4);\n if (!h3) return { notEnoughRoom: true };\n const f2 = xt(h3.first.point.x, h3.first.point.y, n2, t4.getElevation).point, g2 = xt(h3.last.point.x, h3.last.point.y, n2, t4.getElevation).point;\n if (o2 && !s2) {\n const t5 = It(i2.writingMode, f2, g2, c2);\n if (t5) return t5;\n }\n m2 = [h3.first];\n for (let o3 = i2.glyphStartIndex + 1; o3 < e2 - 1; o3++) m2.push(Mt(d2 * l2.getoffsetX(o3), _2, p2, s2, i2.segment, a3, r3, t4, u2));\n m2.push(h3.last);\n } else {\n if (o2 && !s2) {\n const a4 = xt(t4.tileAnchorPoint.x, t4.tileAnchorPoint.y, r2, t4.getElevation).point, s3 = i2.lineStartIndex + i2.segment + 1, o3 = new e.P(t4.lineVertexArray.getx(s3), t4.lineVertexArray.gety(s3)), n3 = xt(o3.x, o3.y, r2, t4.getElevation), l3 = n3.signedDistanceFromCamera > 0 ? n3.point : function(t5, e2, i3, a5, s4, o4) {\n return Pt(t5, e2, i3, 1, s4, o4);\n }(t4.tileAnchorPoint, o3, a4, 0, r2, t4), h3 = It(i2.writingMode, a4, l3, c2);\n if (h3) return h3;\n }\n const a3 = Mt(d2 * l2.getoffsetX(i2.glyphStartIndex), _2, p2, s2, i2.segment, i2.lineStartIndex, i2.lineStartIndex + i2.lineLength, t4, u2);\n if (!a3 || t4.projectionCache.anyProjectionOccluded) return { notEnoughRoom: true };\n m2 = [a3];\n }\n for (const t5 of m2) e.aj(h2, t5.point, t5.angle);\n return {};\n }\n function Pt(t4, e2, i2, a2, s2, o2) {\n const r2 = t4.add(t4.sub(e2)._unit()), n2 = void 0 !== s2 ? xt(r2.x, r2.y, s2, o2.getElevation).point : St(r2.x, r2.y, o2).point, l2 = i2.sub(n2);\n return i2.add(l2._mult(a2 / l2.mag()));\n }\n function Ct(t4, i2, a2) {\n const s2 = i2.projectionCache;\n if (s2.projections[t4]) return s2.projections[t4];\n const o2 = new e.P(i2.lineVertexArray.getx(t4), i2.lineVertexArray.gety(t4)), r2 = St(o2.x, o2.y, i2);\n if (r2.signedDistanceFromCamera > 0) return s2.projections[t4] = r2.point, s2.anyProjectionOccluded = s2.anyProjectionOccluded || r2.isOccluded, r2.point;\n const n2 = t4 - a2.direction;\n return function(t5, e2, i3, a3, s3) {\n return Pt(t5, e2, i3, a3, void 0, s3);\n }(0 === a2.distanceFromAnchor ? i2.tileAnchorPoint : new e.P(i2.lineVertexArray.getx(n2), i2.lineVertexArray.gety(n2)), o2, a2.previousVertex, a2.absOffsetX - a2.distanceFromAnchor + 1, i2);\n }\n function St(t4, e2, i2) {\n const a2 = t4 + i2.translation[0], s2 = e2 + i2.translation[1];\n let o2;\n return !i2.pitchWithMap && i2.projection.useSpecialProjectionForSymbols ? (o2 = i2.projection.projectTileCoordinates(a2, s2, i2.unwrappedTileID, i2.getElevation), o2.point.x = (0.5 * o2.point.x + 0.5) * i2.width, o2.point.y = (0.5 * -o2.point.y + 0.5) * i2.height) : (o2 = xt(a2, s2, i2.labelPlaneMatrix, i2.getElevation), o2.isOccluded = false), o2;\n }\n function zt(t4, e2, i2) {\n return t4._unit()._perp()._mult(e2 * i2);\n }\n function Dt(t4, i2, a2, s2, o2, r2, n2, l2, h2) {\n if (l2.projectionCache.offsets[t4]) return l2.projectionCache.offsets[t4];\n const c2 = a2.add(i2);\n if (t4 + h2.direction < s2 || t4 + h2.direction >= o2) return l2.projectionCache.offsets[t4] = c2, c2;\n const u2 = Ct(t4 + h2.direction, l2, h2), d2 = zt(u2.sub(a2), n2, h2.direction), _2 = a2.add(d2), p2 = u2.add(d2);\n return l2.projectionCache.offsets[t4] = e.ak(r2, c2, _2, p2) || c2, l2.projectionCache.offsets[t4];\n }\n function Mt(t4, e2, i2, a2, s2, o2, r2, n2, l2) {\n const h2 = a2 ? t4 - e2 : t4 + e2;\n let c2 = h2 > 0 ? 1 : -1, u2 = 0;\n a2 && (c2 *= -1, u2 = Math.PI), c2 < 0 && (u2 += Math.PI);\n let d2, _2 = c2 > 0 ? o2 + s2 : o2 + s2 + 1;\n n2.projectionCache.cachedAnchorPoint ? d2 = n2.projectionCache.cachedAnchorPoint : (d2 = St(n2.tileAnchorPoint.x, n2.tileAnchorPoint.y, n2).point, n2.projectionCache.cachedAnchorPoint = d2);\n let p2, m2, f2 = d2, g2 = d2, v2 = 0, x2 = 0;\n const y2 = Math.abs(h2), b2 = [];\n let w2;\n for (; v2 + x2 <= y2; ) {\n if (_2 += c2, _2 < o2 || _2 >= r2) return null;\n v2 += x2, g2 = f2, m2 = p2;\n const t5 = { absOffsetX: y2, direction: c2, distanceFromAnchor: v2, previousVertex: g2 };\n if (f2 = Ct(_2, n2, t5), 0 === i2) b2.push(g2), w2 = f2.sub(g2);\n else {\n let e3;\n const a3 = f2.sub(g2);\n e3 = 0 === a3.mag() ? zt(Ct(_2 + c2, n2, t5).sub(f2), i2, c2) : zt(a3, i2, c2), m2 || (m2 = g2.add(e3)), p2 = Dt(_2, e3, f2, o2, r2, m2, i2, n2, t5), b2.push(m2), w2 = p2.sub(m2);\n }\n x2 = w2.mag();\n }\n const T2 = w2._mult((y2 - v2) / x2)._add(m2 || g2), I2 = u2 + Math.atan2(f2.y - g2.y, f2.x - g2.x);\n return b2.push(T2), { point: T2, angle: l2 ? I2 : 0, path: b2 };\n }\n const At = new Float32Array([-1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0, -1 / 0, -1 / 0, 0]);\n function Rt(t4, e2) {\n for (let i2 = 0; i2 < t4; i2++) {\n const t5 = e2.length;\n e2.resize(t5 + 4), e2.float32.set(At, 3 * t5);\n }\n }\n function kt(t4, e2, i2) {\n const a2 = e2[0], s2 = e2[1];\n return t4[0] = i2[0] * a2 + i2[4] * s2 + i2[12], t4[1] = i2[1] * a2 + i2[5] * s2 + i2[13], t4[3] = i2[3] * a2 + i2[7] * s2 + i2[15], t4;\n }\n const Lt = 100;\n class Ft {\n constructor(t4, e2, i2 = new ft(t4.width + 200, t4.height + 200, 25), a2 = new ft(t4.width + 200, t4.height + 200, 25)) {\n this.transform = t4, this.mapProjection = e2, this.grid = i2, this.ignoredGrid = a2, this.pitchFactor = Math.cos(t4._pitch) * t4.cameraToCenterDistance, this.screenRightBoundary = t4.width + Lt, this.screenBottomBoundary = t4.height + Lt, this.gridRightBoundary = t4.width + 200, this.gridBottomBoundary = t4.height + 200, this.perspectiveRatioCutoff = 0.6;\n }\n placeCollisionBox(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2, c2) {\n const u2 = t4.anchorPointX + n2[0], d2 = t4.anchorPointY + n2[1], _2 = this.projectAndGetPerspectiveRatio(a2, u2, d2, s2, h2), p2 = i2 * _2.perspectiveRatio;\n let m2;\n if (o2 || r2) m2 = this._projectCollisionBox(t4, p2, a2, s2, o2, r2, n2, _2, h2, c2);\n else {\n const e3 = _2.point.x + (c2 ? c2.x * p2 : 0), i3 = _2.point.y + (c2 ? c2.y * p2 : 0);\n m2 = { allPointsOccluded: false, box: [e3 + t4.x1 * p2, i3 + t4.y1 * p2, e3 + t4.x2 * p2, i3 + t4.y2 * p2] };\n }\n const [f2, g2, v2, x2] = m2.box;\n return this.mapProjection.useSpecialProjectionForSymbols && (o2 ? m2.allPointsOccluded : this.mapProjection.isOccluded(u2, d2, s2)) || _2.perspectiveRatio < this.perspectiveRatioCutoff || !this.isInsideGrid(f2, g2, v2, x2) || \"always\" !== e2 && this.grid.hitTest(f2, g2, v2, x2, e2, l2) ? { box: [f2, g2, v2, x2], placeable: false, offscreen: false } : { box: [f2, g2, v2, x2], placeable: true, offscreen: this.isOffscreen(f2, g2, v2, x2) };\n }\n placeCollisionCircles(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2, f2) {\n const g2 = [], v2 = new e.P(i2.anchorX, i2.anchorY), x2 = this.getPerspectiveRatio(r2, v2.x, v2.y, n2, f2), y2 = (u2 ? o2 / x2 : o2 * x2) / e.ap, b2 = { getElevation: f2, labelPlaneMatrix: l2, lineVertexArray: a2, pitchWithMap: u2, projectionCache: { projections: {}, offsets: {}, cachedAnchorPoint: void 0, anyProjectionOccluded: false }, projection: this.mapProjection, tileAnchorPoint: v2, unwrappedTileID: n2, width: this.transform.width, height: this.transform.height, translation: m2 }, w2 = Tt(y2, s2, i2.lineOffsetX * y2, i2.lineOffsetY * y2, false, i2, false, b2);\n let T2 = false, I2 = false, E3 = true;\n if (w2) {\n const i3 = 0.5 * _2 * x2 + p2, a3 = new e.P(-100, -100), s3 = new e.P(this.screenRightBoundary, this.screenBottomBoundary), o3 = new pt(), r3 = w2.first, n3 = w2.last;\n let l3 = [];\n for (let t5 = r3.path.length - 1; t5 >= 1; t5--) l3.push(r3.path[t5]);\n for (let t5 = 1; t5 < n3.path.length; t5++) l3.push(n3.path[t5]);\n const u3 = 2.5 * i3;\n if (h2) {\n const t5 = this.projectPathToScreenSpace(l3, b2, h2);\n l3 = t5.some((t6) => t6.signedDistanceFromCamera <= 0) ? [] : t5.map((t6) => t6.point);\n }\n let m3 = [];\n if (l3.length > 0) {\n const t5 = l3[0].clone(), i4 = l3[0].clone();\n for (let e2 = 1; e2 < l3.length; e2++) t5.x = Math.min(t5.x, l3[e2].x), t5.y = Math.min(t5.y, l3[e2].y), i4.x = Math.max(i4.x, l3[e2].x), i4.y = Math.max(i4.y, l3[e2].y);\n m3 = t5.x >= a3.x && i4.x <= s3.x && t5.y >= a3.y && i4.y <= s3.y ? [l3] : i4.x < a3.x || t5.x > s3.x || i4.y < a3.y || t5.y > s3.y ? [] : e.al([l3], a3.x, a3.y, s3.x, s3.y);\n }\n for (const e2 of m3) {\n o3.reset(e2, 0.25 * i3);\n let a4 = 0;\n a4 = o3.length <= 0.5 * i3 ? 1 : Math.ceil(o3.paddedLength / u3) + 1;\n for (let e3 = 0; e3 < a4; e3++) {\n const s4 = e3 / Math.max(a4 - 1, 1), r4 = o3.lerp(s4), n4 = r4.x + Lt, l4 = r4.y + Lt;\n g2.push(n4, l4, i3, 0);\n const h3 = n4 - i3, u4 = l4 - i3, _3 = n4 + i3, p3 = l4 + i3;\n if (E3 = E3 && this.isOffscreen(h3, u4, _3, p3), I2 = I2 || this.isInsideGrid(h3, u4, _3, p3), \"always\" !== t4 && this.grid.hitTestCircle(n4, l4, i3, t4, d2) && (T2 = true, !c2)) return { circles: [], offscreen: false, collisionDetected: T2 };\n }\n }\n }\n return { circles: !c2 && T2 || !I2 || x2 < this.perspectiveRatioCutoff ? [] : g2, offscreen: E3, collisionDetected: T2 };\n }\n projectPathToScreenSpace(t4, e2, i2) {\n return t4.map((t5) => xt(t5.x, t5.y, i2, e2.getElevation));\n }\n queryRenderedSymbols(t4) {\n if (0 === t4.length || 0 === this.grid.keysLength() && 0 === this.ignoredGrid.keysLength()) return {};\n const i2 = [];\n let a2 = 1 / 0, s2 = 1 / 0, o2 = -1 / 0, r2 = -1 / 0;\n for (const n3 of t4) {\n const t5 = new e.P(n3.x + Lt, n3.y + Lt);\n a2 = Math.min(a2, t5.x), s2 = Math.min(s2, t5.y), o2 = Math.max(o2, t5.x), r2 = Math.max(r2, t5.y), i2.push(t5);\n }\n const n2 = this.grid.query(a2, s2, o2, r2).concat(this.ignoredGrid.query(a2, s2, o2, r2)), l2 = {}, h2 = {};\n for (const t5 of n2) {\n const a3 = t5.key;\n if (void 0 === l2[a3.bucketInstanceId] && (l2[a3.bucketInstanceId] = {}), l2[a3.bucketInstanceId][a3.featureIndex]) continue;\n const s3 = [new e.P(t5.x1, t5.y1), new e.P(t5.x2, t5.y1), new e.P(t5.x2, t5.y2), new e.P(t5.x1, t5.y2)];\n e.am(i2, s3) && (l2[a3.bucketInstanceId][a3.featureIndex] = true, void 0 === h2[a3.bucketInstanceId] && (h2[a3.bucketInstanceId] = []), h2[a3.bucketInstanceId].push(a3.featureIndex));\n }\n return h2;\n }\n insertCollisionBox(t4, e2, i2, a2, s2, o2) {\n (i2 ? this.ignoredGrid : this.grid).insert({ bucketInstanceId: a2, featureIndex: s2, collisionGroupID: o2, overlapMode: e2 }, t4[0], t4[1], t4[2], t4[3]);\n }\n insertCollisionCircles(t4, e2, i2, a2, s2, o2) {\n const r2 = i2 ? this.ignoredGrid : this.grid, n2 = { bucketInstanceId: a2, featureIndex: s2, collisionGroupID: o2, overlapMode: e2 };\n for (let e3 = 0; e3 < t4.length; e3 += 4) r2.insertCircle(n2, t4[e3], t4[e3 + 1], t4[e3 + 2]);\n }\n projectAndGetPerspectiveRatio(t4, i2, a2, s2, o2) {\n let r2;\n o2 ? (r2 = [i2, a2, o2(i2, a2), 1], e.af(r2, r2, t4)) : (r2 = [i2, a2, 0, 1], kt(r2, r2, t4));\n const n2 = r2[3];\n return { point: new e.P((r2[0] / n2 + 1) / 2 * this.transform.width + Lt, (-r2[1] / n2 + 1) / 2 * this.transform.height + Lt), perspectiveRatio: 0.5 + this.transform.cameraToCenterDistance / n2 * 0.5, isOccluded: false, signedDistanceFromCamera: n2 };\n }\n getPerspectiveRatio(t4, e2, i2, a2, s2) {\n const o2 = this.mapProjection.useSpecialProjectionForSymbols ? this.mapProjection.projectTileCoordinates(e2, i2, a2, s2) : xt(e2, i2, t4, s2);\n return 0.5 + this.transform.cameraToCenterDistance / o2.signedDistanceFromCamera * 0.5;\n }\n isOffscreen(t4, e2, i2, a2) {\n return i2 < Lt || t4 >= this.screenRightBoundary || a2 < Lt || e2 > this.screenBottomBoundary;\n }\n isInsideGrid(t4, e2, i2, a2) {\n return i2 >= 0 && t4 < this.gridRightBoundary && a2 >= 0 && e2 < this.gridBottomBoundary;\n }\n getViewportMatrix() {\n const t4 = e.an([]);\n return e.J(t4, t4, [-100, -100, 0]), t4;\n }\n _projectCollisionBox(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2) {\n let u2 = new e.P(1, 0), d2 = new e.P(0, 1);\n const _2 = new e.P(t4.anchorPointX + n2[0], t4.anchorPointY + n2[1]);\n if (r2 && !o2) {\n const t5 = this.projectAndGetPerspectiveRatio(a2, _2.x + 1, _2.y, s2, h2).point.sub(l2.point).unit(), i3 = Math.atan(t5.y / t5.x) + (t5.x < 0 ? Math.PI : 0), o3 = Math.sin(i3), r3 = Math.cos(i3);\n u2 = new e.P(r3, o3), d2 = new e.P(-o3, r3);\n } else if (!r2 && o2) {\n const t5 = -this.transform.angle, i3 = Math.sin(t5), a3 = Math.cos(t5);\n u2 = new e.P(a3, i3), d2 = new e.P(-i3, a3);\n }\n let p2 = l2.point, m2 = i2;\n if (o2) {\n p2 = _2;\n const t5 = this.transform.zoom - Math.floor(this.transform.zoom);\n m2 = Math.pow(2, -t5), m2 *= this.mapProjection.getPitchedTextCorrection(this.transform, _2, s2), c2 || (m2 *= e.ac(0.5 + l2.signedDistanceFromCamera / this.transform.cameraToCenterDistance * 0.5, 0, 4));\n }\n c2 && (p2 = p2.add(u2.mult(c2.x * m2)).add(d2.mult(c2.y * m2)));\n const f2 = t4.x1 * m2, g2 = t4.x2 * m2, v2 = (f2 + g2) / 2, x2 = t4.y1 * m2, y2 = t4.y2 * m2, b2 = (x2 + y2) / 2, w2 = [{ offsetX: f2, offsetY: x2 }, { offsetX: v2, offsetY: x2 }, { offsetX: g2, offsetY: x2 }, { offsetX: g2, offsetY: b2 }, { offsetX: g2, offsetY: y2 }, { offsetX: v2, offsetY: y2 }, { offsetX: f2, offsetY: y2 }, { offsetX: f2, offsetY: b2 }];\n let T2 = [];\n for (const { offsetX: t5, offsetY: i3 } of w2) T2.push(new e.P(p2.x + u2.x * t5 + d2.x * i3, p2.y + u2.y * t5 + d2.y * i3));\n let I2 = false;\n if (o2) {\n const t5 = T2.map((t6) => this.projectAndGetPerspectiveRatio(a2, t6.x, t6.y, s2, h2));\n I2 = t5.some((t6) => !t6.isOccluded), T2 = t5.map((t6) => t6.point);\n } else I2 = true;\n return { box: e.ao(T2), allPointsOccluded: !I2 };\n }\n }\n function Bt(t4, i2, a2) {\n return i2 * (e.X / (t4.tileSize * Math.pow(2, a2 - t4.tileID.overscaledZ)));\n }\n class Ot {\n constructor(t4, e2, i2, a2) {\n this.opacity = t4 ? Math.max(0, Math.min(1, t4.opacity + (t4.placed ? e2 : -e2))) : a2 && i2 ? 1 : 0, this.placed = i2;\n }\n isHidden() {\n return 0 === this.opacity && !this.placed;\n }\n }\n class Nt {\n constructor(t4, e2, i2, a2, s2) {\n this.text = new Ot(t4 ? t4.text : null, e2, i2, s2), this.icon = new Ot(t4 ? t4.icon : null, e2, a2, s2);\n }\n isHidden() {\n return this.text.isHidden() && this.icon.isHidden();\n }\n }\n class Ut {\n constructor(t4, e2, i2) {\n this.text = t4, this.icon = e2, this.skipFade = i2;\n }\n }\n class jt {\n constructor() {\n this.invProjMatrix = e.H(), this.viewportMatrix = e.H(), this.circles = [];\n }\n }\n class Zt {\n constructor(t4, e2, i2, a2, s2) {\n this.bucketInstanceId = t4, this.featureIndex = e2, this.sourceLayerIndex = i2, this.bucketIndex = a2, this.tileID = s2;\n }\n }\n class qt {\n constructor(t4) {\n this.crossSourceCollisions = t4, this.maxGroupID = 0, this.collisionGroups = {};\n }\n get(t4) {\n if (this.crossSourceCollisions) return { ID: 0, predicate: null };\n if (!this.collisionGroups[t4]) {\n const e2 = ++this.maxGroupID;\n this.collisionGroups[t4] = { ID: e2, predicate: (t5) => t5.collisionGroupID === e2 };\n }\n return this.collisionGroups[t4];\n }\n }\n function Vt(t4, i2, a2, s2, o2) {\n const { horizontalAlign: r2, verticalAlign: n2 } = e.au(t4);\n return new e.P(-(r2 - 0.5) * i2 + s2[0] * o2, -(n2 - 0.5) * a2 + s2[1] * o2);\n }\n class Gt {\n constructor(t4, e2, i2, a2, s2, o2) {\n this.transform = t4.clone(), this.terrain = i2, this.collisionIndex = new Ft(this.transform, e2), this.placements = {}, this.opacities = {}, this.variableOffsets = {}, this.stale = false, this.commitTime = 0, this.fadeDuration = a2, this.retainedQueryData = {}, this.collisionGroups = new qt(s2), this.collisionCircleArrays = {}, this.collisionBoxArrays = /* @__PURE__ */ new Map(), this.prevPlacement = o2, o2 && (o2.prevPlacement = void 0), this.placedOrientations = {};\n }\n _getTerrainElevationFunc(t4) {\n const e2 = this.terrain;\n return e2 ? (i2, a2) => e2.getElevation(t4, i2, a2) : null;\n }\n getBucketParts(t4, i2, a2, s2) {\n const o2 = a2.getBucket(i2), r2 = a2.latestFeatureIndex;\n if (!o2 || !r2 || i2.id !== o2.layerIds[0]) return;\n const n2 = a2.collisionBoxArray, l2 = o2.layers[0].layout, h2 = o2.layers[0].paint, c2 = Math.pow(2, this.transform.zoom - a2.tileID.overscaledZ), u2 = a2.tileSize / e.X, d2 = a2.tileID.toUnwrapped(), _2 = this.transform.calculatePosMatrix(d2), p2 = \"map\" === l2.get(\"text-pitch-alignment\"), m2 = \"map\" === l2.get(\"text-rotation-alignment\"), f2 = Bt(a2, 1, this.transform.zoom), g2 = this.collisionIndex.mapProjection.translatePosition(this.transform, a2, h2.get(\"text-translate\"), h2.get(\"text-translate-anchor\")), v2 = this.collisionIndex.mapProjection.translatePosition(this.transform, a2, h2.get(\"icon-translate\"), h2.get(\"icon-translate-anchor\")), x2 = gt(_2, p2, m2, this.transform, f2);\n let y2 = null;\n if (p2) {\n const t5 = vt(_2, p2, m2, this.transform, f2);\n y2 = e.L([], this.transform.labelPlaneMatrix, t5);\n }\n this.retainedQueryData[o2.bucketInstanceId] = new Zt(o2.bucketInstanceId, r2, o2.sourceLayerIndex, o2.index, a2.tileID);\n const b2 = { bucket: o2, layout: l2, translationText: g2, translationIcon: v2, posMatrix: _2, unwrappedTileID: d2, textLabelPlaneMatrix: x2, labelToScreenMatrix: y2, scale: c2, textPixelRatio: u2, holdingForFade: a2.holdingForFade(), collisionBoxArray: n2, partiallyEvaluatedTextSize: e.ag(o2.textSizeData, this.transform.zoom), collisionGroup: this.collisionGroups.get(o2.sourceID) };\n if (s2) for (const e2 of o2.sortKeyRanges) {\n const { sortKey: i3, symbolInstanceStart: a3, symbolInstanceEnd: s3 } = e2;\n t4.push({ sortKey: i3, symbolInstanceStart: a3, symbolInstanceEnd: s3, parameters: b2 });\n }\n else t4.push({ symbolInstanceStart: 0, symbolInstanceEnd: o2.symbolInstances.length, parameters: b2 });\n }\n attemptAnchorPlacement(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2, f2, g2, v2, x2) {\n const y2 = e.aq[t4.textAnchor], b2 = [t4.textOffset0, t4.textOffset1], w2 = Vt(y2, a2, s2, b2, o2), T2 = this.collisionIndex.placeCollisionBox(i2, d2, l2, h2, c2, n2, r2, f2, u2.predicate, x2, w2);\n if ((!v2 || this.collisionIndex.placeCollisionBox(v2, d2, l2, h2, c2, n2, r2, g2, u2.predicate, x2, w2).placeable) && T2.placeable) {\n let t5;\n if (this.prevPlacement && this.prevPlacement.variableOffsets[_2.crossTileID] && this.prevPlacement.placements[_2.crossTileID] && this.prevPlacement.placements[_2.crossTileID].text && (t5 = this.prevPlacement.variableOffsets[_2.crossTileID].anchor), 0 === _2.crossTileID) throw new Error(\"symbolInstance.crossTileID can't be 0\");\n return this.variableOffsets[_2.crossTileID] = { textOffset: b2, width: a2, height: s2, anchor: y2, textBoxScale: o2, prevAnchor: t5 }, this.markUsedJustification(p2, y2, _2, m2), p2.allowVerticalPlacement && (this.markUsedOrientation(p2, m2, _2), this.placedOrientations[_2.crossTileID] = m2), { shift: w2, placedGlyphBoxes: T2 };\n }\n }\n placeLayerBucketPart(t4, i2, a2) {\n const { bucket: s2, layout: o2, translationText: r2, translationIcon: n2, posMatrix: l2, unwrappedTileID: h2, textLabelPlaneMatrix: c2, labelToScreenMatrix: u2, textPixelRatio: d2, holdingForFade: _2, collisionBoxArray: p2, partiallyEvaluatedTextSize: m2, collisionGroup: f2 } = t4.parameters, g2 = o2.get(\"text-optional\"), v2 = o2.get(\"icon-optional\"), x2 = e.ar(o2, \"text-overlap\", \"text-allow-overlap\"), y2 = \"always\" === x2, b2 = e.ar(o2, \"icon-overlap\", \"icon-allow-overlap\"), w2 = \"always\" === b2, T2 = \"map\" === o2.get(\"text-rotation-alignment\"), I2 = \"map\" === o2.get(\"text-pitch-alignment\"), E3 = \"none\" !== o2.get(\"icon-text-fit\"), P2 = \"viewport-y\" === o2.get(\"symbol-z-order\"), C3 = y2 && (w2 || !s2.hasIconData() || v2), S2 = w2 && (y2 || !s2.hasTextData() || g2);\n !s2.collisionArrays && p2 && s2.deserializeCollisionBoxes(p2);\n const z2 = this._getTerrainElevationFunc(this.retainedQueryData[s2.bucketInstanceId].tileID), D3 = (t5, p3, w3) => {\n var P3, D4;\n if (i2[t5.crossTileID]) return;\n if (_2) return void (this.placements[t5.crossTileID] = new Ut(false, false, false));\n let M2 = false, A3 = false, R2 = true, k2 = null, L2 = { box: null, placeable: false, offscreen: null }, F2 = { box: null, placeable: false, offscreen: null }, B3 = null, O2 = null, N2 = null, U2 = 0, j2 = 0, Z2 = 0;\n p3.textFeatureIndex ? U2 = p3.textFeatureIndex : t5.useRuntimeCollisionCircles && (U2 = t5.featureIndex), p3.verticalTextFeatureIndex && (j2 = p3.verticalTextFeatureIndex);\n const q2 = p3.textBox;\n if (q2) {\n const i3 = (i4) => {\n let a3 = e.ah.horizontal;\n if (s2.allowVerticalPlacement && !i4 && this.prevPlacement) {\n const e2 = this.prevPlacement.placedOrientations[t5.crossTileID];\n e2 && (this.placedOrientations[t5.crossTileID] = e2, a3 = e2, this.markUsedOrientation(s2, a3, t5));\n }\n return a3;\n }, o3 = (i4, a3) => {\n if (s2.allowVerticalPlacement && t5.numVerticalGlyphVertices > 0 && p3.verticalTextBox) {\n for (const t6 of s2.writingModes) if (t6 === e.ah.vertical ? (L2 = a3(), F2 = L2) : L2 = i4(), L2 && L2.placeable) break;\n } else L2 = i4();\n }, c3 = t5.textAnchorOffsetStartIndex, u3 = t5.textAnchorOffsetEndIndex;\n if (u3 === c3) {\n const a3 = (e2, i4) => {\n const a4 = this.collisionIndex.placeCollisionBox(e2, x2, d2, l2, h2, I2, T2, r2, f2.predicate, z2);\n return a4 && a4.placeable && (this.markUsedOrientation(s2, i4, t5), this.placedOrientations[t5.crossTileID] = i4), a4;\n };\n o3(() => a3(q2, e.ah.horizontal), () => {\n const i4 = p3.verticalTextBox;\n return s2.allowVerticalPlacement && t5.numVerticalGlyphVertices > 0 && i4 ? a3(i4, e.ah.vertical) : { box: null, offscreen: null };\n }), i3(L2 && L2.placeable);\n } else {\n let _3 = e.aq[null === (D4 = null === (P3 = this.prevPlacement) || void 0 === P3 ? void 0 : P3.variableOffsets[t5.crossTileID]) || void 0 === D4 ? void 0 : D4.anchor];\n const m3 = (i4, o4, p4) => {\n const m4 = i4.x2 - i4.x1, g4 = i4.y2 - i4.y1, v3 = t5.textBoxScale, y3 = E3 && \"never\" === b2 ? o4 : null;\n let w4 = null, P4 = \"never\" === x2 ? 1 : 2, C4 = \"never\";\n _3 && P4++;\n for (let e2 = 0; e2 < P4; e2++) {\n for (let e3 = c3; e3 < u3; e3++) {\n const a3 = s2.textAnchorOffsets.get(e3);\n if (_3 && a3.textAnchor !== _3) continue;\n const o5 = this.attemptAnchorPlacement(a3, i4, m4, g4, v3, T2, I2, d2, l2, h2, f2, C4, t5, s2, p4, r2, n2, y3, z2);\n if (o5 && (w4 = o5.placedGlyphBoxes, w4 && w4.placeable)) return M2 = true, k2 = o5.shift, w4;\n }\n _3 ? _3 = null : C4 = x2;\n }\n return a2 && !w4 && (w4 = { box: this.collisionIndex.placeCollisionBox(q2, \"always\", d2, l2, h2, I2, T2, r2, f2.predicate, z2, new e.P(0, 0)).box, offscreen: false, placeable: false }), w4;\n };\n o3(() => m3(q2, p3.iconBox, e.ah.horizontal), () => {\n const i4 = p3.verticalTextBox;\n return s2.allowVerticalPlacement && (!L2 || !L2.placeable) && t5.numVerticalGlyphVertices > 0 && i4 ? m3(i4, p3.verticalIconBox, e.ah.vertical) : { box: null, occluded: true, offscreen: null };\n }), L2 && (M2 = L2.placeable, R2 = L2.offscreen);\n const g3 = i3(L2 && L2.placeable);\n if (!M2 && this.prevPlacement) {\n const e2 = this.prevPlacement.variableOffsets[t5.crossTileID];\n e2 && (this.variableOffsets[t5.crossTileID] = e2, this.markUsedJustification(s2, e2.anchor, t5, g3));\n }\n }\n }\n if (B3 = L2, M2 = B3 && B3.placeable, R2 = B3 && B3.offscreen, t5.useRuntimeCollisionCircles) {\n const i3 = s2.text.placedSymbolArray.get(t5.centerJustifiedTextSymbolIndex), n3 = e.ai(s2.textSizeData, m2, i3), d3 = o2.get(\"text-padding\");\n O2 = this.collisionIndex.placeCollisionCircles(x2, i3, s2.lineVertexArray, s2.glyphOffsetArray, n3, l2, h2, c2, u2, a2, I2, f2.predicate, t5.collisionCircleDiameter, d3, r2, z2), O2.circles.length && O2.collisionDetected && !a2 && e.w(\"Collisions detected, but collision boxes are not shown\"), M2 = y2 || O2.circles.length > 0 && !O2.collisionDetected, R2 = R2 && O2.offscreen;\n }\n if (p3.iconFeatureIndex && (Z2 = p3.iconFeatureIndex), p3.iconBox) {\n const t6 = (t7) => this.collisionIndex.placeCollisionBox(t7, b2, d2, l2, h2, I2, T2, n2, f2.predicate, z2, E3 && k2 ? k2 : void 0);\n F2 && F2.placeable && p3.verticalIconBox ? (N2 = t6(p3.verticalIconBox), A3 = N2.placeable) : (N2 = t6(p3.iconBox), A3 = N2.placeable), R2 = R2 && N2.offscreen;\n }\n const V2 = g2 || 0 === t5.numHorizontalGlyphVertices && 0 === t5.numVerticalGlyphVertices, G2 = v2 || 0 === t5.numIconVertices;\n V2 || G2 ? G2 ? V2 || (A3 = A3 && M2) : M2 = A3 && M2 : A3 = M2 = A3 && M2;\n const H2 = A3 && N2.placeable;\n if (M2 && B3.placeable && this.collisionIndex.insertCollisionBox(B3.box, x2, o2.get(\"text-ignore-placement\"), s2.bucketInstanceId, F2 && F2.placeable && j2 ? j2 : U2, f2.ID), H2 && this.collisionIndex.insertCollisionBox(N2.box, b2, o2.get(\"icon-ignore-placement\"), s2.bucketInstanceId, Z2, f2.ID), O2 && M2 && this.collisionIndex.insertCollisionCircles(O2.circles, x2, o2.get(\"text-ignore-placement\"), s2.bucketInstanceId, U2, f2.ID), a2 && this.storeCollisionData(s2.bucketInstanceId, w3, p3, B3, N2, O2), 0 === t5.crossTileID) throw new Error(\"symbolInstance.crossTileID can't be 0\");\n if (0 === s2.bucketInstanceId) throw new Error(\"bucket.bucketInstanceId can't be 0\");\n this.placements[t5.crossTileID] = new Ut(M2 || C3, A3 || S2, R2 || s2.justReloaded), i2[t5.crossTileID] = true;\n };\n if (P2) {\n if (0 !== t4.symbolInstanceStart) throw new Error(\"bucket.bucketInstanceId should be 0\");\n const e2 = s2.getSortedSymbolIndexes(this.transform.angle);\n for (let t5 = e2.length - 1; t5 >= 0; --t5) {\n const i3 = e2[t5];\n D3(s2.symbolInstances.get(i3), s2.collisionArrays[i3], i3);\n }\n } else for (let e2 = t4.symbolInstanceStart; e2 < t4.symbolInstanceEnd; e2++) D3(s2.symbolInstances.get(e2), s2.collisionArrays[e2], e2);\n if (a2 && s2.bucketInstanceId in this.collisionCircleArrays) {\n const t5 = this.collisionCircleArrays[s2.bucketInstanceId];\n e.as(t5.invProjMatrix, l2), t5.viewportMatrix = this.collisionIndex.getViewportMatrix();\n }\n s2.justReloaded = false;\n }\n storeCollisionData(t4, e2, i2, a2, s2, o2) {\n if (i2.textBox || i2.iconBox) {\n let o3, r2;\n this.collisionBoxArrays.has(t4) ? o3 = this.collisionBoxArrays.get(t4) : (o3 = /* @__PURE__ */ new Map(), this.collisionBoxArrays.set(t4, o3)), o3.has(e2) ? r2 = o3.get(e2) : (r2 = { text: null, icon: null }, o3.set(e2, r2)), i2.textBox && (r2.text = a2.box), i2.iconBox && (r2.icon = s2.box);\n }\n if (o2) {\n let e3 = this.collisionCircleArrays[t4];\n void 0 === e3 && (e3 = this.collisionCircleArrays[t4] = new jt());\n for (let t5 = 0; t5 < o2.circles.length; t5 += 4) e3.circles.push(o2.circles[t5 + 0]), e3.circles.push(o2.circles[t5 + 1]), e3.circles.push(o2.circles[t5 + 2]), e3.circles.push(o2.collisionDetected ? 1 : 0);\n }\n }\n markUsedJustification(t4, i2, a2, s2) {\n let o2;\n o2 = s2 === e.ah.vertical ? a2.verticalPlacedTextSymbolIndex : { left: a2.leftJustifiedTextSymbolIndex, center: a2.centerJustifiedTextSymbolIndex, right: a2.rightJustifiedTextSymbolIndex }[e.at(i2)];\n const r2 = [a2.leftJustifiedTextSymbolIndex, a2.centerJustifiedTextSymbolIndex, a2.rightJustifiedTextSymbolIndex, a2.verticalPlacedTextSymbolIndex];\n for (const e2 of r2) e2 >= 0 && (t4.text.placedSymbolArray.get(e2).crossTileID = o2 >= 0 && e2 !== o2 ? 0 : a2.crossTileID);\n }\n markUsedOrientation(t4, i2, a2) {\n const s2 = i2 === e.ah.horizontal || i2 === e.ah.horizontalOnly ? i2 : 0, o2 = i2 === e.ah.vertical ? i2 : 0, r2 = [a2.leftJustifiedTextSymbolIndex, a2.centerJustifiedTextSymbolIndex, a2.rightJustifiedTextSymbolIndex];\n for (const e2 of r2) t4.text.placedSymbolArray.get(e2).placedOrientation = s2;\n a2.verticalPlacedTextSymbolIndex && (t4.text.placedSymbolArray.get(a2.verticalPlacedTextSymbolIndex).placedOrientation = o2);\n }\n commit(t4) {\n this.commitTime = t4, this.zoomAtLastRecencyCheck = this.transform.zoom;\n const e2 = this.prevPlacement;\n let i2 = false;\n this.prevZoomAdjustment = e2 ? e2.zoomAdjustment(this.transform.zoom) : 0;\n const a2 = e2 ? e2.symbolFadeChange(t4) : 1, s2 = e2 ? e2.opacities : {}, o2 = e2 ? e2.variableOffsets : {}, r2 = e2 ? e2.placedOrientations : {};\n for (const t5 in this.placements) {\n const e3 = this.placements[t5], o3 = s2[t5];\n o3 ? (this.opacities[t5] = new Nt(o3, a2, e3.text, e3.icon), i2 = i2 || e3.text !== o3.text.placed || e3.icon !== o3.icon.placed) : (this.opacities[t5] = new Nt(null, a2, e3.text, e3.icon, e3.skipFade), i2 = i2 || e3.text || e3.icon);\n }\n for (const t5 in s2) {\n const e3 = s2[t5];\n if (!this.opacities[t5]) {\n const s3 = new Nt(e3, a2, false, false);\n s3.isHidden() || (this.opacities[t5] = s3, i2 = i2 || e3.text.placed || e3.icon.placed);\n }\n }\n for (const t5 in o2) this.variableOffsets[t5] || !this.opacities[t5] || this.opacities[t5].isHidden() || (this.variableOffsets[t5] = o2[t5]);\n for (const t5 in r2) this.placedOrientations[t5] || !this.opacities[t5] || this.opacities[t5].isHidden() || (this.placedOrientations[t5] = r2[t5]);\n if (e2 && void 0 === e2.lastPlacementChangeTime) throw new Error(\"Last placement time for previous placement is not defined\");\n i2 ? this.lastPlacementChangeTime = t4 : \"number\" != typeof this.lastPlacementChangeTime && (this.lastPlacementChangeTime = e2 ? e2.lastPlacementChangeTime : t4);\n }\n updateLayerOpacities(t4, e2) {\n const i2 = {};\n for (const a2 of e2) {\n const e3 = a2.getBucket(t4);\n e3 && a2.latestFeatureIndex && t4.id === e3.layerIds[0] && this.updateBucketOpacities(e3, a2.tileID, i2, a2.collisionBoxArray);\n }\n }\n updateBucketOpacities(t4, i2, a2, s2) {\n t4.hasTextData() && (t4.text.opacityVertexArray.clear(), t4.text.hasVisibleVertices = false), t4.hasIconData() && (t4.icon.opacityVertexArray.clear(), t4.icon.hasVisibleVertices = false), t4.hasIconCollisionBoxData() && t4.iconCollisionBox.collisionVertexArray.clear(), t4.hasTextCollisionBoxData() && t4.textCollisionBox.collisionVertexArray.clear();\n const o2 = t4.layers[0], r2 = o2.layout, n2 = new Nt(null, 0, false, false, true), l2 = r2.get(\"text-allow-overlap\"), h2 = r2.get(\"icon-allow-overlap\"), c2 = o2._unevaluatedLayout.hasValue(\"text-variable-anchor\") || o2._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"), u2 = \"map\" === r2.get(\"text-rotation-alignment\"), d2 = \"map\" === r2.get(\"text-pitch-alignment\"), _2 = \"none\" !== r2.get(\"icon-text-fit\"), p2 = new Nt(null, 0, l2 && (h2 || !t4.hasIconData() || r2.get(\"icon-optional\")), h2 && (l2 || !t4.hasTextData() || r2.get(\"text-optional\")), true);\n !t4.collisionArrays && s2 && (t4.hasIconCollisionBoxData() || t4.hasTextCollisionBoxData()) && t4.deserializeCollisionBoxes(s2);\n const m2 = (t5, e2, i3) => {\n for (let a3 = 0; a3 < e2 / 4; a3++) t5.opacityVertexArray.emplaceBack(i3);\n t5.hasVisibleVertices = t5.hasVisibleVertices || i3 !== ee;\n }, f2 = this.collisionBoxArrays.get(t4.bucketInstanceId);\n for (let i3 = 0; i3 < t4.symbolInstances.length; i3++) {\n const s3 = t4.symbolInstances.get(i3), { numHorizontalGlyphVertices: o3, numVerticalGlyphVertices: r3, crossTileID: l3 } = s3;\n let h3 = this.opacities[l3];\n a2[l3] ? h3 = n2 : h3 || (h3 = p2, this.opacities[l3] = h3), a2[l3] = true;\n const g2 = s3.numIconVertices > 0, v2 = this.placedOrientations[s3.crossTileID], x2 = v2 === e.ah.vertical, y2 = v2 === e.ah.horizontal || v2 === e.ah.horizontalOnly;\n if (o3 > 0 || r3 > 0) {\n const e2 = te(h3.text);\n m2(t4.text, o3, x2 ? ee : e2), m2(t4.text, r3, y2 ? ee : e2);\n const i4 = h3.text.isHidden();\n [s3.rightJustifiedTextSymbolIndex, s3.centerJustifiedTextSymbolIndex, s3.leftJustifiedTextSymbolIndex].forEach((e3) => {\n e3 >= 0 && (t4.text.placedSymbolArray.get(e3).hidden = i4 || x2 ? 1 : 0);\n }), s3.verticalPlacedTextSymbolIndex >= 0 && (t4.text.placedSymbolArray.get(s3.verticalPlacedTextSymbolIndex).hidden = i4 || y2 ? 1 : 0);\n const a3 = this.variableOffsets[s3.crossTileID];\n a3 && this.markUsedJustification(t4, a3.anchor, s3, v2);\n const n3 = this.placedOrientations[s3.crossTileID];\n n3 && (this.markUsedJustification(t4, \"left\", s3, n3), this.markUsedOrientation(t4, n3, s3));\n }\n if (g2) {\n const e2 = te(h3.icon), i4 = !(_2 && s3.verticalPlacedIconSymbolIndex && x2);\n s3.placedIconSymbolIndex >= 0 && (m2(t4.icon, s3.numIconVertices, i4 ? e2 : ee), t4.icon.placedSymbolArray.get(s3.placedIconSymbolIndex).hidden = h3.icon.isHidden()), s3.verticalPlacedIconSymbolIndex >= 0 && (m2(t4.icon, s3.numVerticalIconVertices, i4 ? ee : e2), t4.icon.placedSymbolArray.get(s3.verticalPlacedIconSymbolIndex).hidden = h3.icon.isHidden());\n }\n const b2 = f2 && f2.has(i3) ? f2.get(i3) : { text: null, icon: null };\n if (t4.hasIconCollisionBoxData() || t4.hasTextCollisionBoxData()) {\n const a3 = t4.collisionArrays[i3];\n if (a3) {\n let i4 = new e.P(0, 0);\n if (a3.textBox || a3.verticalTextBox) {\n let e2 = true;\n if (c2) {\n const t5 = this.variableOffsets[l3];\n t5 ? (i4 = Vt(t5.anchor, t5.width, t5.height, t5.textOffset, t5.textBoxScale), u2 && i4._rotate(d2 ? this.transform.angle : -this.transform.angle)) : e2 = false;\n }\n if (a3.textBox || a3.verticalTextBox) {\n let s4;\n a3.textBox && (s4 = x2), a3.verticalTextBox && (s4 = y2), Ht(t4.textCollisionBox.collisionVertexArray, h3.text.placed, !e2 || s4, b2.text, i4.x, i4.y);\n }\n }\n if (a3.iconBox || a3.verticalIconBox) {\n const e2 = Boolean(!y2 && a3.verticalIconBox);\n let s4;\n a3.iconBox && (s4 = e2), a3.verticalIconBox && (s4 = !e2), Ht(t4.iconCollisionBox.collisionVertexArray, h3.icon.placed, s4, b2.icon, _2 ? i4.x : 0, _2 ? i4.y : 0);\n }\n }\n }\n }\n if (t4.sortFeatures(this.transform.angle), this.retainedQueryData[t4.bucketInstanceId] && (this.retainedQueryData[t4.bucketInstanceId].featureSortOrder = t4.featureSortOrder), t4.hasTextData() && t4.text.opacityVertexBuffer && t4.text.opacityVertexBuffer.updateData(t4.text.opacityVertexArray), t4.hasIconData() && t4.icon.opacityVertexBuffer && t4.icon.opacityVertexBuffer.updateData(t4.icon.opacityVertexArray), t4.hasIconCollisionBoxData() && t4.iconCollisionBox.collisionVertexBuffer && t4.iconCollisionBox.collisionVertexBuffer.updateData(t4.iconCollisionBox.collisionVertexArray), t4.hasTextCollisionBoxData() && t4.textCollisionBox.collisionVertexBuffer && t4.textCollisionBox.collisionVertexBuffer.updateData(t4.textCollisionBox.collisionVertexArray), t4.text.opacityVertexArray.length !== t4.text.layoutVertexArray.length / 4) throw new Error(`bucket.text.opacityVertexArray.length (= ${t4.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${t4.text.layoutVertexArray.length}) / 4`);\n if (t4.icon.opacityVertexArray.length !== t4.icon.layoutVertexArray.length / 4) throw new Error(`bucket.icon.opacityVertexArray.length (= ${t4.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${t4.icon.layoutVertexArray.length}) / 4`);\n if (t4.bucketInstanceId in this.collisionCircleArrays) {\n const e2 = this.collisionCircleArrays[t4.bucketInstanceId];\n t4.placementInvProjMatrix = e2.invProjMatrix, t4.placementViewportMatrix = e2.viewportMatrix, t4.collisionCircleArray = e2.circles, delete this.collisionCircleArrays[t4.bucketInstanceId];\n }\n }\n symbolFadeChange(t4) {\n return 0 === this.fadeDuration ? 1 : (t4 - this.commitTime) / this.fadeDuration + this.prevZoomAdjustment;\n }\n zoomAdjustment(t4) {\n return Math.max(0, (this.transform.zoom - t4) / 1.5);\n }\n hasTransitions(t4) {\n return this.stale || t4 - this.lastPlacementChangeTime < this.fadeDuration;\n }\n stillRecent(t4, e2) {\n const i2 = this.zoomAtLastRecencyCheck === e2 ? 1 - this.zoomAdjustment(e2) : 1;\n return this.zoomAtLastRecencyCheck = e2, this.commitTime + this.fadeDuration * i2 > t4;\n }\n setStale() {\n this.stale = true;\n }\n }\n function Ht(t4, e2, i2, a2, s2, o2) {\n a2 && 0 !== a2.length || (a2 = [0, 0, 0, 0]);\n const r2 = a2[0] - Lt, n2 = a2[1] - Lt, l2 = a2[2] - Lt, h2 = a2[3] - Lt;\n t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, r2, n2), t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, l2, n2), t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, l2, h2), t4.emplaceBack(e2 ? 1 : 0, i2 ? 1 : 0, s2 || 0, o2 || 0, r2, h2);\n }\n const Wt = Math.pow(2, 25), $t = Math.pow(2, 24), Xt = Math.pow(2, 17), Kt = Math.pow(2, 16), Jt = Math.pow(2, 9), Yt = Math.pow(2, 8), Qt = Math.pow(2, 1);\n function te(t4) {\n if (0 === t4.opacity && !t4.placed) return 0;\n if (1 === t4.opacity && t4.placed) return 4294967295;\n const e2 = t4.placed ? 1 : 0, i2 = Math.floor(127 * t4.opacity);\n return i2 * Wt + e2 * $t + i2 * Xt + e2 * Kt + i2 * Jt + e2 * Yt + i2 * Qt + e2;\n }\n const ee = 0;\n function ie() {\n return { isOccluded: (t4, e2, i2) => false, getPitchedTextCorrection: (t4, e2, i2) => 1, get useSpecialProjectionForSymbols() {\n return false;\n }, projectTileCoordinates(t4, e2, i2, a2) {\n throw new Error(\"Not implemented.\");\n }, translatePosition: (t4, e2, i2, a2) => function(t5, e3, i3, a3, s2 = false) {\n if (!i3[0] && !i3[1]) return [0, 0];\n const o2 = s2 ? \"map\" === a3 ? t5.angle : 0 : \"viewport\" === a3 ? -t5.angle : 0;\n if (o2) {\n const t6 = Math.sin(o2), e4 = Math.cos(o2);\n i3 = [i3[0] * e4 - i3[1] * t6, i3[0] * t6 + i3[1] * e4];\n }\n return [s2 ? i3[0] : Bt(e3, i3[0], t5.zoom), s2 ? i3[1] : Bt(e3, i3[1], t5.zoom)];\n }(t4, e2, i2, a2), getCircleRadiusCorrection: (t4) => 1 };\n }\n class ae {\n constructor(t4) {\n this._sortAcrossTiles = \"viewport-y\" !== t4.layout.get(\"symbol-z-order\") && !t4.layout.get(\"symbol-sort-key\").isConstant(), this._currentTileIndex = 0, this._currentPartIndex = 0, this._seenCrossTileIDs = {}, this._bucketParts = [];\n }\n continuePlacement(t4, e2, i2, a2, s2) {\n const o2 = this._bucketParts;\n for (; this._currentTileIndex < t4.length; ) if (e2.getBucketParts(o2, a2, t4[this._currentTileIndex], this._sortAcrossTiles), this._currentTileIndex++, s2()) return true;\n for (this._sortAcrossTiles && (this._sortAcrossTiles = false, o2.sort((t5, e3) => t5.sortKey - e3.sortKey)); this._currentPartIndex < o2.length; ) if (e2.placeLayerBucketPart(o2[this._currentPartIndex], this._seenCrossTileIDs, i2), this._currentPartIndex++, s2()) return true;\n return false;\n }\n }\n class se {\n constructor(t4, e2, i2, a2, s2, o2, r2, n2) {\n this.placement = new Gt(t4, ie(), e2, o2, r2, n2), this._currentPlacementIndex = i2.length - 1, this._forceFullPlacement = a2, this._showCollisionBoxes = s2, this._done = false;\n }\n isDone() {\n return this._done;\n }\n continuePlacement(t4, e2, i2) {\n const a2 = o.now(), s2 = () => !this._forceFullPlacement && o.now() - a2 > 2;\n for (; this._currentPlacementIndex >= 0; ) {\n const a3 = e2[t4[this._currentPlacementIndex]], o2 = this.placement.collisionIndex.transform.zoom;\n if (\"symbol\" === a3.type && (!a3.minzoom || a3.minzoom <= o2) && (!a3.maxzoom || a3.maxzoom > o2)) {\n if (this._inProgressLayer || (this._inProgressLayer = new ae(a3)), this._inProgressLayer.continuePlacement(i2[a3.source], this.placement, this._showCollisionBoxes, a3, s2)) return;\n delete this._inProgressLayer;\n }\n this._currentPlacementIndex--;\n }\n this._done = true;\n }\n commit(t4) {\n return this.placement.commit(t4), this.placement;\n }\n }\n const oe = 512 / e.X / 2;\n class re {\n constructor(t4, i2, a2) {\n this.tileID = t4, this.bucketInstanceId = a2, this._symbolsByKey = {};\n const s2 = /* @__PURE__ */ new Map();\n for (let t5 = 0; t5 < i2.length; t5++) {\n const e2 = i2.get(t5), a3 = e2.key, o2 = s2.get(a3);\n o2 ? o2.push(e2) : s2.set(a3, [e2]);\n }\n for (const [t5, i3] of s2) {\n const a3 = { positions: i3.map((t6) => ({ x: Math.floor(t6.anchorX * oe), y: Math.floor(t6.anchorY * oe) })), crossTileIDs: i3.map((t6) => t6.crossTileID) };\n if (a3.positions.length > 128) {\n const t6 = new e.av(a3.positions.length, 16, Uint16Array);\n for (const { x: e2, y: i4 } of a3.positions) t6.add(e2, i4);\n t6.finish(), delete a3.positions, a3.index = t6;\n }\n this._symbolsByKey[t5] = a3;\n }\n }\n getScaledCoordinates(t4, i2) {\n const { x: a2, y: s2, z: o2 } = this.tileID.canonical, { x: r2, y: n2, z: l2 } = i2.canonical, h2 = oe / Math.pow(2, l2 - o2), c2 = (n2 * e.X + t4.anchorY) * h2, u2 = s2 * e.X * oe;\n return { x: Math.floor((r2 * e.X + t4.anchorX) * h2 - a2 * e.X * oe), y: Math.floor(c2 - u2) };\n }\n findMatches(t4, e2, i2) {\n const a2 = this.tileID.canonical.z < e2.canonical.z ? 1 : Math.pow(2, this.tileID.canonical.z - e2.canonical.z);\n for (let s2 = 0; s2 < t4.length; s2++) {\n const o2 = t4.get(s2);\n if (o2.crossTileID) continue;\n const r2 = this._symbolsByKey[o2.key];\n if (!r2) continue;\n const n2 = this.getScaledCoordinates(o2, e2);\n if (r2.index) {\n const t5 = r2.index.range(n2.x - a2, n2.y - a2, n2.x + a2, n2.y + a2).sort();\n for (const e3 of t5) {\n const t6 = r2.crossTileIDs[e3];\n if (!i2[t6]) {\n i2[t6] = true, o2.crossTileID = t6;\n break;\n }\n }\n } else if (r2.positions) for (let t5 = 0; t5 < r2.positions.length; t5++) {\n const e3 = r2.positions[t5], s3 = r2.crossTileIDs[t5];\n if (Math.abs(e3.x - n2.x) <= a2 && Math.abs(e3.y - n2.y) <= a2 && !i2[s3]) {\n i2[s3] = true, o2.crossTileID = s3;\n break;\n }\n }\n }\n }\n getCrossTileIDsLists() {\n return Object.values(this._symbolsByKey).map(({ crossTileIDs: t4 }) => t4);\n }\n }\n class ne {\n constructor() {\n this.maxCrossTileID = 0;\n }\n generate() {\n return ++this.maxCrossTileID;\n }\n }\n class le {\n constructor() {\n this.indexes = {}, this.usedCrossTileIDs = {}, this.lng = 0;\n }\n handleWrapJump(t4) {\n const e2 = Math.round((t4 - this.lng) / 360);\n if (0 !== e2) for (const t5 in this.indexes) {\n const i2 = this.indexes[t5], a2 = {};\n for (const t6 in i2) {\n const s2 = i2[t6];\n s2.tileID = s2.tileID.unwrapTo(s2.tileID.wrap + e2), a2[s2.tileID.key] = s2;\n }\n this.indexes[t5] = a2;\n }\n this.lng = t4;\n }\n addBucket(t4, e2, i2) {\n if (this.indexes[t4.overscaledZ] && this.indexes[t4.overscaledZ][t4.key]) {\n if (this.indexes[t4.overscaledZ][t4.key].bucketInstanceId === e2.bucketInstanceId) return false;\n this.removeBucketCrossTileIDs(t4.overscaledZ, this.indexes[t4.overscaledZ][t4.key]);\n }\n for (let t5 = 0; t5 < e2.symbolInstances.length; t5++) e2.symbolInstances.get(t5).crossTileID = 0;\n this.usedCrossTileIDs[t4.overscaledZ] || (this.usedCrossTileIDs[t4.overscaledZ] = {});\n const a2 = this.usedCrossTileIDs[t4.overscaledZ];\n for (const i3 in this.indexes) {\n const s2 = this.indexes[i3];\n if (Number(i3) > t4.overscaledZ) for (const i4 in s2) {\n const o2 = s2[i4];\n o2.tileID.isChildOf(t4) && o2.findMatches(e2.symbolInstances, t4, a2);\n }\n else {\n const o2 = s2[t4.scaledTo(Number(i3)).key];\n o2 && o2.findMatches(e2.symbolInstances, t4, a2);\n }\n }\n for (let t5 = 0; t5 < e2.symbolInstances.length; t5++) {\n const s2 = e2.symbolInstances.get(t5);\n s2.crossTileID || (s2.crossTileID = i2.generate(), a2[s2.crossTileID] = true);\n }\n return void 0 === this.indexes[t4.overscaledZ] && (this.indexes[t4.overscaledZ] = {}), this.indexes[t4.overscaledZ][t4.key] = new re(t4, e2.symbolInstances, e2.bucketInstanceId), true;\n }\n removeBucketCrossTileIDs(t4, e2) {\n for (const i2 of e2.getCrossTileIDsLists()) for (const e3 of i2) delete this.usedCrossTileIDs[t4][e3];\n }\n removeStaleBuckets(t4) {\n let e2 = false;\n for (const i2 in this.indexes) {\n const a2 = this.indexes[i2];\n for (const s2 in a2) t4[a2[s2].bucketInstanceId] || (this.removeBucketCrossTileIDs(i2, a2[s2]), delete a2[s2], e2 = true);\n }\n return e2;\n }\n }\n class he {\n constructor() {\n this.layerIndexes = {}, this.crossTileIDs = new ne(), this.maxBucketInstanceId = 0, this.bucketsInCurrentPlacement = {};\n }\n addLayer(t4, e2, i2) {\n let a2 = this.layerIndexes[t4.id];\n void 0 === a2 && (a2 = this.layerIndexes[t4.id] = new le());\n let s2 = false;\n const o2 = {};\n a2.handleWrapJump(i2);\n for (const i3 of e2) {\n const e3 = i3.getBucket(t4);\n e3 && t4.id === e3.layerIds[0] && (e3.bucketInstanceId || (e3.bucketInstanceId = ++this.maxBucketInstanceId), a2.addBucket(i3.tileID, e3, this.crossTileIDs) && (s2 = true), o2[e3.bucketInstanceId] = true);\n }\n return a2.removeStaleBuckets(o2) && (s2 = true), s2;\n }\n pruneUnusedLayers(t4) {\n const e2 = {};\n t4.forEach((t5) => {\n e2[t5] = true;\n });\n for (const t5 in this.layerIndexes) e2[t5] || delete this.layerIndexes[t5];\n }\n }\n const ce = (t4, i2) => e.t(t4, i2 && i2.filter((t5) => \"source.canvas\" !== t5.identifier)), ue = e.aw();\n class de extends e.E {\n constructor(t4, i2 = {}) {\n super(), this._rtlPluginLoaded = () => {\n for (const t5 in this.sourceCaches) {\n const e2 = this.sourceCaches[t5].getSource().type;\n \"vector\" !== e2 && \"geojson\" !== e2 || this.sourceCaches[t5].reload();\n }\n }, this.map = t4, this.dispatcher = new U(N(), t4._getMapId()), this.dispatcher.registerMessageHandler(\"GG\", (t5, e2) => this.getGlyphs(t5, e2)), this.dispatcher.registerMessageHandler(\"GI\", (t5, e2) => this.getImages(t5, e2)), this.imageManager = new T(), this.imageManager.setEventedParent(this), this.glyphManager = new C2(t4._requestManager, i2.localIdeographFontFamily), this.lineAtlas = new R(256, 512), this.crossTileSymbolIndex = new he(), this._spritesImagesIds = {}, this._layers = {}, this._order = [], this.sourceCaches = {}, this.zoomHistory = new e.ax(), this._loaded = false, this._availableImages = [], this._resetUpdates(), this.dispatcher.broadcast(\"SR\", e.ay()), nt().on(st, this._rtlPluginLoaded), this.on(\"data\", (t5) => {\n if (\"source\" !== t5.dataType || \"metadata\" !== t5.sourceDataType) return;\n const e2 = this.sourceCaches[t5.sourceId];\n if (!e2) return;\n const i3 = e2.getSource();\n if (i3 && i3.vectorLayerIds) for (const t6 in this._layers) {\n const e3 = this._layers[t6];\n e3.source === i3.id && this._validateLayer(e3);\n }\n });\n }\n loadURL(t4, i2 = {}, a2) {\n this.fire(new e.k(\"dataloading\", { dataType: \"style\" })), i2.validate = \"boolean\" != typeof i2.validate || i2.validate;\n const s2 = this.map._requestManager.transformRequest(t4, \"Style\");\n this._loadStyleRequest = new AbortController();\n const o2 = this._loadStyleRequest;\n e.h(s2, this._loadStyleRequest).then((t5) => {\n this._loadStyleRequest = null, this._load(t5.data, i2, a2);\n }).catch((t5) => {\n this._loadStyleRequest = null, t5 && !o2.signal.aborted && this.fire(new e.j(t5));\n });\n }\n loadJSON(t4, i2 = {}, a2) {\n this.fire(new e.k(\"dataloading\", { dataType: \"style\" })), this._frameRequest = new AbortController(), o.frameAsync(this._frameRequest).then(() => {\n this._frameRequest = null, i2.validate = false !== i2.validate, this._load(t4, i2, a2);\n }).catch(() => {\n });\n }\n loadEmpty() {\n this.fire(new e.k(\"dataloading\", { dataType: \"style\" })), this._load(ue, { validate: false });\n }\n _load(t4, i2, a2) {\n var s2;\n const o2 = i2.transformStyle ? i2.transformStyle(a2, t4) : t4;\n if (!i2.validate || !ce(this, e.u(o2))) {\n this._loaded = true, this.stylesheet = o2;\n for (const t5 in o2.sources) this.addSource(t5, o2.sources[t5], { validate: false });\n o2.sprite ? this._loadSprite(o2.sprite) : this.imageManager.setLoaded(true), this.glyphManager.setURL(o2.glyphs), this._createLayers(), this.light = new D2(this.stylesheet.light), this.sky = new A2(this.stylesheet.sky), this.map.setTerrain(null !== (s2 = this.stylesheet.terrain) && void 0 !== s2 ? s2 : null), this.fire(new e.k(\"data\", { dataType: \"style\" })), this.fire(new e.k(\"style.load\"));\n }\n }\n _createLayers() {\n const t4 = e.az(this.stylesheet.layers);\n this.dispatcher.broadcast(\"SL\", t4), this._order = t4.map((t5) => t5.id), this._layers = {}, this._serializedLayers = null;\n for (const i2 of t4) {\n const t5 = e.aA(i2);\n t5.setEventedParent(this, { layer: { id: i2.id } }), this._layers[i2.id] = t5;\n }\n }\n _loadSprite(t4, i2 = false, a2 = void 0) {\n let s2;\n this.imageManager.setLoaded(false), this._spriteRequest = new AbortController(), function(t5, i3, a3, s3) {\n return e._(this, void 0, void 0, function* () {\n const r2 = x(t5), n2 = a3 > 1 ? \"@2x\" : \"\", l2 = {}, h2 = {};\n for (const { id: t6, url: a4 } of r2) {\n const o2 = i3.transformRequest(y(a4, n2, \".json\"), \"SpriteJSON\");\n l2[t6] = e.h(o2, s3);\n const r3 = i3.transformRequest(y(a4, n2, \".png\"), \"SpriteImage\");\n h2[t6] = _.getImage(r3, s3);\n }\n return yield Promise.all([...Object.values(l2), ...Object.values(h2)]), function(t6, i4) {\n return e._(this, void 0, void 0, function* () {\n const e2 = {};\n for (const a4 in t6) {\n e2[a4] = {};\n const s4 = o.getImageCanvasContext((yield i4[a4]).data), r3 = (yield t6[a4]).data;\n for (const t7 in r3) {\n const { width: i5, height: o2, x: n3, y: l3, sdf: h3, pixelRatio: c2, stretchX: u2, stretchY: d2, content: _2, textFitWidth: p2, textFitHeight: m2 } = r3[t7];\n e2[a4][t7] = { data: null, pixelRatio: c2, sdf: h3, stretchX: u2, stretchY: d2, content: _2, textFitWidth: p2, textFitHeight: m2, spriteData: { width: i5, height: o2, x: n3, y: l3, context: s4 } };\n }\n }\n return e2;\n });\n }(l2, h2);\n });\n }(t4, this.map._requestManager, this.map.getPixelRatio(), this._spriteRequest).then((t5) => {\n if (this._spriteRequest = null, t5) for (const e2 in t5) {\n this._spritesImagesIds[e2] = [];\n const a3 = this._spritesImagesIds[e2] ? this._spritesImagesIds[e2].filter((e3) => !(e3 in t5)) : [];\n for (const t6 of a3) this.imageManager.removeImage(t6), this._changedImages[t6] = true;\n for (const a4 in t5[e2]) {\n const s3 = \"default\" === e2 ? a4 : `${e2}:${a4}`;\n this._spritesImagesIds[e2].push(s3), s3 in this.imageManager.images ? this.imageManager.updateImage(s3, t5[e2][a4], false) : this.imageManager.addImage(s3, t5[e2][a4]), i2 && (this._changedImages[s3] = true);\n }\n }\n }).catch((t5) => {\n this._spriteRequest = null, s2 = t5, this.fire(new e.j(s2));\n }).finally(() => {\n this.imageManager.setLoaded(true), this._availableImages = this.imageManager.listImages(), i2 && (this._changed = true), this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" })), a2 && a2(s2);\n });\n }\n _unloadSprite() {\n for (const t4 of Object.values(this._spritesImagesIds).flat()) this.imageManager.removeImage(t4), this._changedImages[t4] = true;\n this._spritesImagesIds = {}, this._availableImages = this.imageManager.listImages(), this._changed = true, this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" }));\n }\n _validateLayer(t4) {\n const i2 = this.sourceCaches[t4.source];\n if (!i2) return;\n const a2 = t4.sourceLayer;\n if (!a2) return;\n const s2 = i2.getSource();\n (\"geojson\" === s2.type || s2.vectorLayerIds && -1 === s2.vectorLayerIds.indexOf(a2)) && this.fire(new e.j(new Error(`Source layer \"${a2}\" does not exist on source \"${s2.id}\" as specified by style layer \"${t4.id}\".`)));\n }\n loaded() {\n if (!this._loaded) return false;\n if (Object.keys(this._updatedSources).length) return false;\n for (const t4 in this.sourceCaches) if (!this.sourceCaches[t4].loaded()) return false;\n return !!this.imageManager.isLoaded();\n }\n _serializeByIds(t4, i2 = false) {\n const a2 = this._serializedAllLayers();\n if (!t4 || 0 === t4.length) return Object.values(i2 ? e.aB(a2) : a2);\n const s2 = [];\n for (const o2 of t4) if (a2[o2]) {\n const t5 = i2 ? e.aB(a2[o2]) : a2[o2];\n s2.push(t5);\n }\n return s2;\n }\n _serializedAllLayers() {\n let t4 = this._serializedLayers;\n if (t4) return t4;\n t4 = this._serializedLayers = {};\n const e2 = Object.keys(this._layers);\n for (const i2 of e2) {\n const e3 = this._layers[i2];\n \"custom\" !== e3.type && (t4[i2] = e3.serialize());\n }\n return t4;\n }\n hasTransitions() {\n if (this.light && this.light.hasTransition()) return true;\n if (this.sky && this.sky.hasTransition()) return true;\n for (const t4 in this.sourceCaches) if (this.sourceCaches[t4].hasTransition()) return true;\n for (const t4 in this._layers) if (this._layers[t4].hasTransition()) return true;\n return false;\n }\n _checkLoaded() {\n if (!this._loaded) throw new Error(\"Style is not done loading.\");\n }\n update(t4) {\n if (!this._loaded) return;\n const i2 = this._changed;\n if (i2) {\n const e2 = Object.keys(this._updatedLayers), i3 = Object.keys(this._removedLayers);\n (e2.length || i3.length) && this._updateWorkerLayers(e2, i3);\n for (const t5 in this._updatedSources) {\n const e3 = this._updatedSources[t5];\n if (\"reload\" === e3) this._reloadSource(t5);\n else {\n if (\"clear\" !== e3) throw new Error(`Invalid action ${e3}`);\n this._clearSource(t5);\n }\n }\n this._updateTilesForChangedImages(), this._updateTilesForChangedGlyphs();\n for (const e3 in this._updatedPaintProps) this._layers[e3].updateTransitions(t4);\n this.light.updateTransitions(t4), this.sky.updateTransitions(t4), this._resetUpdates();\n }\n const a2 = {};\n for (const t5 in this.sourceCaches) {\n const e2 = this.sourceCaches[t5];\n a2[t5] = e2.used, e2.used = false;\n }\n for (const e2 of this._order) {\n const i3 = this._layers[e2];\n i3.recalculate(t4, this._availableImages), !i3.isHidden(t4.zoom) && i3.source && (this.sourceCaches[i3.source].used = true);\n }\n for (const t5 in a2) {\n const i3 = this.sourceCaches[t5];\n !!a2[t5] != !!i3.used && i3.fire(new e.k(\"data\", { sourceDataType: \"visibility\", dataType: \"source\", sourceId: t5 }));\n }\n this.light.recalculate(t4), this.sky.recalculate(t4), this.z = t4.zoom, i2 && this.fire(new e.k(\"data\", { dataType: \"style\" }));\n }\n _updateTilesForChangedImages() {\n const t4 = Object.keys(this._changedImages);\n if (t4.length) {\n for (const e2 in this.sourceCaches) this.sourceCaches[e2].reloadTilesForDependencies([\"icons\", \"patterns\"], t4);\n this._changedImages = {};\n }\n }\n _updateTilesForChangedGlyphs() {\n if (this._glyphsDidChange) {\n for (const t4 in this.sourceCaches) this.sourceCaches[t4].reloadTilesForDependencies([\"glyphs\"], [\"\"]);\n this._glyphsDidChange = false;\n }\n }\n _updateWorkerLayers(t4, e2) {\n this.dispatcher.broadcast(\"UL\", { layers: this._serializeByIds(t4, false), removedIds: e2 });\n }\n _resetUpdates() {\n this._changed = false, this._updatedLayers = {}, this._removedLayers = {}, this._updatedSources = {}, this._updatedPaintProps = {}, this._changedImages = {}, this._glyphsDidChange = false;\n }\n setState(t4, i2 = {}) {\n var a2;\n this._checkLoaded();\n const s2 = this.serialize();\n if (t4 = i2.transformStyle ? i2.transformStyle(s2, t4) : t4, (null === (a2 = i2.validate) || void 0 === a2 || a2) && ce(this, e.u(t4))) return false;\n (t4 = e.aB(t4)).layers = e.az(t4.layers);\n const o2 = e.aC(s2, t4), r2 = this._getOperationsToPerform(o2);\n if (r2.unimplemented.length > 0) throw new Error(`Unimplemented: ${r2.unimplemented.join(\", \")}.`);\n if (0 === r2.operations.length) return false;\n for (const t5 of r2.operations) t5();\n return this.stylesheet = t4, this._serializedLayers = null, true;\n }\n _getOperationsToPerform(t4) {\n const e2 = [], i2 = [];\n for (const a2 of t4) switch (a2.command) {\n case \"setCenter\":\n case \"setZoom\":\n case \"setBearing\":\n case \"setPitch\":\n continue;\n case \"addLayer\":\n e2.push(() => this.addLayer.apply(this, a2.args));\n break;\n case \"removeLayer\":\n e2.push(() => this.removeLayer.apply(this, a2.args));\n break;\n case \"setPaintProperty\":\n e2.push(() => this.setPaintProperty.apply(this, a2.args));\n break;\n case \"setLayoutProperty\":\n e2.push(() => this.setLayoutProperty.apply(this, a2.args));\n break;\n case \"setFilter\":\n e2.push(() => this.setFilter.apply(this, a2.args));\n break;\n case \"addSource\":\n e2.push(() => this.addSource.apply(this, a2.args));\n break;\n case \"removeSource\":\n e2.push(() => this.removeSource.apply(this, a2.args));\n break;\n case \"setLayerZoomRange\":\n e2.push(() => this.setLayerZoomRange.apply(this, a2.args));\n break;\n case \"setLight\":\n e2.push(() => this.setLight.apply(this, a2.args));\n break;\n case \"setGeoJSONSourceData\":\n e2.push(() => this.setGeoJSONSourceData.apply(this, a2.args));\n break;\n case \"setGlyphs\":\n e2.push(() => this.setGlyphs.apply(this, a2.args));\n break;\n case \"setSprite\":\n e2.push(() => this.setSprite.apply(this, a2.args));\n break;\n case \"setSky\":\n e2.push(() => this.setSky.apply(this, a2.args));\n break;\n case \"setTerrain\":\n e2.push(() => this.map.setTerrain.apply(this, a2.args));\n break;\n case \"setTransition\":\n e2.push(() => {\n });\n break;\n default:\n i2.push(a2.command);\n }\n return { operations: e2, unimplemented: i2 };\n }\n addImage(t4, i2) {\n if (this.getImage(t4)) return this.fire(new e.j(new Error(`An image named \"${t4}\" already exists.`)));\n this.imageManager.addImage(t4, i2), this._afterImageUpdated(t4);\n }\n updateImage(t4, e2) {\n this.imageManager.updateImage(t4, e2);\n }\n getImage(t4) {\n return this.imageManager.getImage(t4);\n }\n removeImage(t4) {\n if (!this.getImage(t4)) return this.fire(new e.j(new Error(`An image named \"${t4}\" does not exist.`)));\n this.imageManager.removeImage(t4), this._afterImageUpdated(t4);\n }\n _afterImageUpdated(t4) {\n this._availableImages = this.imageManager.listImages(), this._changedImages[t4] = true, this._changed = true, this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" }));\n }\n listImages() {\n return this._checkLoaded(), this.imageManager.listImages();\n }\n addSource(t4, i2, a2 = {}) {\n if (this._checkLoaded(), void 0 !== this.sourceCaches[t4]) throw new Error(`Source \"${t4}\" already exists.`);\n if (!i2.type) throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(i2).join(\", \")}.`);\n if ([\"vector\", \"raster\", \"geojson\", \"video\", \"image\"].indexOf(i2.type) >= 0 && this._validate(e.u.source, `sources.${t4}`, i2, null, a2)) return;\n this.map && this.map._collectResourceTiming && (i2.collectResourceTiming = true);\n const s2 = this.sourceCaches[t4] = new ut(t4, i2, this.dispatcher);\n s2.style = this, s2.setEventedParent(this, () => ({ isSourceLoaded: s2.loaded(), source: s2.serialize(), sourceId: t4 })), s2.onAdd(this.map), this._changed = true;\n }\n removeSource(t4) {\n if (this._checkLoaded(), void 0 === this.sourceCaches[t4]) throw new Error(\"There is no source with this ID\");\n for (const i3 in this._layers) if (this._layers[i3].source === t4) return this.fire(new e.j(new Error(`Source \"${t4}\" cannot be removed while layer \"${i3}\" is using it.`)));\n const i2 = this.sourceCaches[t4];\n delete this.sourceCaches[t4], delete this._updatedSources[t4], i2.fire(new e.k(\"data\", { sourceDataType: \"metadata\", dataType: \"source\", sourceId: t4 })), i2.setEventedParent(null), i2.onRemove(this.map), this._changed = true;\n }\n setGeoJSONSourceData(t4, e2) {\n if (this._checkLoaded(), void 0 === this.sourceCaches[t4]) throw new Error(`There is no source with this ID=${t4}`);\n const i2 = this.sourceCaches[t4].getSource();\n if (\"geojson\" !== i2.type) throw new Error(`geojsonSource.type is ${i2.type}, which is !== 'geojson`);\n i2.setData(e2), this._changed = true;\n }\n getSource(t4) {\n return this.sourceCaches[t4] && this.sourceCaches[t4].getSource();\n }\n addLayer(t4, i2, a2 = {}) {\n this._checkLoaded();\n const s2 = t4.id;\n if (this.getLayer(s2)) return void this.fire(new e.j(new Error(`Layer \"${s2}\" already exists on this map.`)));\n let o2;\n if (\"custom\" === t4.type) {\n if (ce(this, e.aD(t4))) return;\n o2 = e.aA(t4);\n } else {\n if (\"source\" in t4 && \"object\" == typeof t4.source && (this.addSource(s2, t4.source), t4 = e.aB(t4), t4 = e.e(t4, { source: s2 })), this._validate(e.u.layer, `layers.${s2}`, t4, { arrayIndex: -1 }, a2)) return;\n o2 = e.aA(t4), this._validateLayer(o2), o2.setEventedParent(this, { layer: { id: s2 } });\n }\n const r2 = i2 ? this._order.indexOf(i2) : this._order.length;\n if (i2 && -1 === r2) this.fire(new e.j(new Error(`Cannot add layer \"${s2}\" before non-existing layer \"${i2}\".`)));\n else {\n if (this._order.splice(r2, 0, s2), this._layerOrderChanged = true, this._layers[s2] = o2, this._removedLayers[s2] && o2.source && \"custom\" !== o2.type) {\n const t5 = this._removedLayers[s2];\n delete this._removedLayers[s2], t5.type !== o2.type ? this._updatedSources[o2.source] = \"clear\" : (this._updatedSources[o2.source] = \"reload\", this.sourceCaches[o2.source].pause());\n }\n this._updateLayer(o2), o2.onAdd && o2.onAdd(this.map);\n }\n }\n moveLayer(t4, i2) {\n if (this._checkLoaded(), this._changed = true, !this._layers[t4]) return void this.fire(new e.j(new Error(`The layer '${t4}' does not exist in the map's style and cannot be moved.`)));\n if (t4 === i2) return;\n const a2 = this._order.indexOf(t4);\n this._order.splice(a2, 1);\n const s2 = i2 ? this._order.indexOf(i2) : this._order.length;\n i2 && -1 === s2 ? this.fire(new e.j(new Error(`Cannot move layer \"${t4}\" before non-existing layer \"${i2}\".`))) : (this._order.splice(s2, 0, t4), this._layerOrderChanged = true);\n }\n removeLayer(t4) {\n this._checkLoaded();\n const i2 = this._layers[t4];\n if (!i2) return void this.fire(new e.j(new Error(`Cannot remove non-existing layer \"${t4}\".`)));\n i2.setEventedParent(null);\n const a2 = this._order.indexOf(t4);\n this._order.splice(a2, 1), this._layerOrderChanged = true, this._changed = true, this._removedLayers[t4] = i2, delete this._layers[t4], this._serializedLayers && delete this._serializedLayers[t4], delete this._updatedLayers[t4], delete this._updatedPaintProps[t4], i2.onRemove && i2.onRemove(this.map);\n }\n getLayer(t4) {\n return this._layers[t4];\n }\n getLayersOrder() {\n return [...this._order];\n }\n hasLayer(t4) {\n return t4 in this._layers;\n }\n setLayerZoomRange(t4, i2, a2) {\n this._checkLoaded();\n const s2 = this.getLayer(t4);\n s2 ? s2.minzoom === i2 && s2.maxzoom === a2 || (null != i2 && (s2.minzoom = i2), null != a2 && (s2.maxzoom = a2), this._updateLayer(s2)) : this.fire(new e.j(new Error(`Cannot set the zoom range of non-existing layer \"${t4}\".`)));\n }\n setFilter(t4, i2, a2 = {}) {\n this._checkLoaded();\n const s2 = this.getLayer(t4);\n if (s2) {\n if (!e.aE(s2.filter, i2)) return null == i2 ? (s2.filter = void 0, void this._updateLayer(s2)) : void (this._validate(e.u.filter, `layers.${s2.id}.filter`, i2, null, a2) || (s2.filter = e.aB(i2), this._updateLayer(s2)));\n } else this.fire(new e.j(new Error(`Cannot filter non-existing layer \"${t4}\".`)));\n }\n getFilter(t4) {\n return e.aB(this.getLayer(t4).filter);\n }\n setLayoutProperty(t4, i2, a2, s2 = {}) {\n this._checkLoaded();\n const o2 = this.getLayer(t4);\n o2 ? e.aE(o2.getLayoutProperty(i2), a2) || (o2.setLayoutProperty(i2, a2, s2), this._updateLayer(o2)) : this.fire(new e.j(new Error(`Cannot style non-existing layer \"${t4}\".`)));\n }\n getLayoutProperty(t4, i2) {\n const a2 = this.getLayer(t4);\n if (a2) return a2.getLayoutProperty(i2);\n this.fire(new e.j(new Error(`Cannot get style of non-existing layer \"${t4}\".`)));\n }\n setPaintProperty(t4, i2, a2, s2 = {}) {\n this._checkLoaded();\n const o2 = this.getLayer(t4);\n o2 ? e.aE(o2.getPaintProperty(i2), a2) || (o2.setPaintProperty(i2, a2, s2) && this._updateLayer(o2), this._changed = true, this._updatedPaintProps[t4] = true, this._serializedLayers = null) : this.fire(new e.j(new Error(`Cannot style non-existing layer \"${t4}\".`)));\n }\n getPaintProperty(t4, e2) {\n return this.getLayer(t4).getPaintProperty(e2);\n }\n setFeatureState(t4, i2) {\n this._checkLoaded();\n const a2 = t4.source, s2 = t4.sourceLayer, o2 = this.sourceCaches[a2];\n if (void 0 === o2) return void this.fire(new e.j(new Error(`The source '${a2}' does not exist in the map's style.`)));\n const r2 = o2.getSource().type;\n \"geojson\" === r2 && s2 ? this.fire(new e.j(new Error(\"GeoJSON sources cannot have a sourceLayer parameter.\"))) : \"vector\" !== r2 || s2 ? (void 0 === t4.id && this.fire(new e.j(new Error(\"The feature id parameter must be provided.\"))), o2.setFeatureState(s2, t4.id, i2)) : this.fire(new e.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n }\n removeFeatureState(t4, i2) {\n this._checkLoaded();\n const a2 = t4.source, s2 = this.sourceCaches[a2];\n if (void 0 === s2) return void this.fire(new e.j(new Error(`The source '${a2}' does not exist in the map's style.`)));\n const o2 = s2.getSource().type, r2 = \"vector\" === o2 ? t4.sourceLayer : void 0;\n \"vector\" !== o2 || r2 ? i2 && \"string\" != typeof t4.id && \"number\" != typeof t4.id ? this.fire(new e.j(new Error(\"A feature id is required to remove its specific state property.\"))) : s2.removeFeatureState(r2, t4.id, i2) : this.fire(new e.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n }\n getFeatureState(t4) {\n this._checkLoaded();\n const i2 = t4.source, a2 = t4.sourceLayer, s2 = this.sourceCaches[i2];\n if (void 0 !== s2) return \"vector\" !== s2.getSource().type || a2 ? (void 0 === t4.id && this.fire(new e.j(new Error(\"The feature id parameter must be provided.\"))), s2.getFeatureState(a2, t4.id)) : void this.fire(new e.j(new Error(\"The sourceLayer parameter must be provided for vector source types.\")));\n this.fire(new e.j(new Error(`The source '${i2}' does not exist in the map's style.`)));\n }\n getTransition() {\n return e.e({ duration: 300, delay: 0 }, this.stylesheet && this.stylesheet.transition);\n }\n serialize() {\n if (!this._loaded) return;\n const t4 = e.aF(this.sourceCaches, (t5) => t5.serialize()), i2 = this._serializeByIds(this._order, true), a2 = this.map.getTerrain() || void 0, s2 = this.stylesheet;\n return e.aG({ version: s2.version, name: s2.name, metadata: s2.metadata, light: s2.light, sky: s2.sky, center: s2.center, zoom: s2.zoom, bearing: s2.bearing, pitch: s2.pitch, sprite: s2.sprite, glyphs: s2.glyphs, transition: s2.transition, sources: t4, layers: i2, terrain: a2 }, (t5) => void 0 !== t5);\n }\n _updateLayer(t4) {\n this._updatedLayers[t4.id] = true, t4.source && !this._updatedSources[t4.source] && \"raster\" !== this.sourceCaches[t4.source].getSource().type && (this._updatedSources[t4.source] = \"reload\", this.sourceCaches[t4.source].pause()), this._serializedLayers = null, this._changed = true;\n }\n _flattenAndSortRenderedFeatures(t4) {\n const e2 = (t5) => \"fill-extrusion\" === this._layers[t5].type, i2 = {}, a2 = [];\n for (let s3 = this._order.length - 1; s3 >= 0; s3--) {\n const o2 = this._order[s3];\n if (e2(o2)) {\n i2[o2] = s3;\n for (const e3 of t4) {\n const t5 = e3[o2];\n if (t5) for (const e4 of t5) a2.push(e4);\n }\n }\n }\n a2.sort((t5, e3) => e3.intersectionZ - t5.intersectionZ);\n const s2 = [];\n for (let o2 = this._order.length - 1; o2 >= 0; o2--) {\n const r2 = this._order[o2];\n if (e2(r2)) for (let t5 = a2.length - 1; t5 >= 0; t5--) {\n const e3 = a2[t5].feature;\n if (i2[e3.layer.id] < o2) break;\n s2.push(e3), a2.pop();\n }\n else for (const e3 of t4) {\n const t5 = e3[r2];\n if (t5) for (const e4 of t5) s2.push(e4.feature);\n }\n }\n return s2;\n }\n queryRenderedFeatures(t4, i2, a2) {\n i2 && i2.filter && this._validate(e.u.filter, \"queryRenderedFeatures.filter\", i2.filter, null, i2);\n const s2 = {};\n if (i2 && i2.layers) {\n if (!Array.isArray(i2.layers)) return this.fire(new e.j(new Error(\"parameters.layers must be an Array.\"))), [];\n for (const t5 of i2.layers) {\n const i3 = this._layers[t5];\n if (!i3) return this.fire(new e.j(new Error(`The layer '${t5}' does not exist in the map's style and cannot be queried for features.`))), [];\n s2[i3.source] = true;\n }\n }\n const o2 = [];\n i2.availableImages = this._availableImages;\n const r2 = this._serializedAllLayers();\n for (const e2 in this.sourceCaches) i2.layers && !s2[e2] || o2.push(q(this.sourceCaches[e2], this._layers, r2, t4, i2, a2));\n return this.placement && o2.push(function(t5, e2, i3, a3, s3, o3, r3) {\n const n2 = {}, l2 = o3.queryRenderedSymbols(a3), h2 = [];\n for (const t6 of Object.keys(l2).map(Number)) h2.push(r3[t6]);\n h2.sort(V);\n for (const i4 of h2) {\n const a4 = i4.featureIndex.lookupSymbolFeatures(l2[i4.bucketInstanceId], e2, i4.bucketIndex, i4.sourceLayerIndex, s3.filter, s3.layers, s3.availableImages, t5);\n for (const t6 in a4) {\n const e3 = n2[t6] = n2[t6] || [], s4 = a4[t6];\n s4.sort((t7, e4) => {\n const a5 = i4.featureSortOrder;\n if (a5) {\n const i5 = a5.indexOf(t7.featureIndex);\n return a5.indexOf(e4.featureIndex) - i5;\n }\n return e4.featureIndex - t7.featureIndex;\n });\n for (const t7 of s4) e3.push(t7);\n }\n }\n for (const e3 in n2) n2[e3].forEach((a4) => {\n const s4 = a4.feature, o4 = i3[t5[e3].source].getFeatureState(s4.layer[\"source-layer\"], s4.id);\n s4.source = s4.layer.source, s4.layer[\"source-layer\"] && (s4.sourceLayer = s4.layer[\"source-layer\"]), s4.state = o4;\n });\n return n2;\n }(this._layers, r2, this.sourceCaches, t4, i2, this.placement.collisionIndex, this.placement.retainedQueryData)), this._flattenAndSortRenderedFeatures(o2);\n }\n querySourceFeatures(t4, i2) {\n i2 && i2.filter && this._validate(e.u.filter, \"querySourceFeatures.filter\", i2.filter, null, i2);\n const a2 = this.sourceCaches[t4];\n return a2 ? function(t5, e2) {\n const i3 = t5.getRenderableIds().map((e3) => t5.getTileByID(e3)), a3 = [], s2 = {};\n for (let t6 = 0; t6 < i3.length; t6++) {\n const o2 = i3[t6], r2 = o2.tileID.canonical.key;\n s2[r2] || (s2[r2] = true, o2.querySourceFeatures(a3, e2));\n }\n return a3;\n }(a2, i2) : [];\n }\n getLight() {\n return this.light.getLight();\n }\n setLight(t4, i2 = {}) {\n this._checkLoaded();\n const a2 = this.light.getLight();\n let s2 = false;\n for (const i3 in t4) if (!e.aE(t4[i3], a2[i3])) {\n s2 = true;\n break;\n }\n if (!s2) return;\n const r2 = { now: o.now(), transition: e.e({ duration: 300, delay: 0 }, this.stylesheet.transition) };\n this.light.setLight(t4, i2), this.light.updateTransitions(r2);\n }\n getSky() {\n var t4;\n return null === (t4 = this.stylesheet) || void 0 === t4 ? void 0 : t4.sky;\n }\n setSky(t4, i2 = {}) {\n const a2 = this.getSky();\n let s2 = false;\n if (!t4 && !a2) return;\n if (t4 && !a2) s2 = true;\n else if (!t4 && a2) s2 = true;\n else for (const i3 in t4) if (!e.aE(t4[i3], a2[i3])) {\n s2 = true;\n break;\n }\n if (!s2) return;\n const r2 = { now: o.now(), transition: e.e({ duration: 300, delay: 0 }, this.stylesheet.transition) };\n this.stylesheet.sky = t4, this.sky.setSky(t4, i2), this.sky.updateTransitions(r2);\n }\n _validate(t4, i2, a2, s2, o2 = {}) {\n return (!o2 || false !== o2.validate) && ce(this, t4.call(e.u, e.e({ key: i2, style: this.serialize(), value: a2, styleSpec: e.v }, s2)));\n }\n _remove(t4 = true) {\n this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._loadStyleRequest && (this._loadStyleRequest.abort(), this._loadStyleRequest = null), this._spriteRequest && (this._spriteRequest.abort(), this._spriteRequest = null), nt().off(st, this._rtlPluginLoaded);\n for (const t5 in this._layers) this._layers[t5].setEventedParent(null);\n for (const t5 in this.sourceCaches) {\n const e2 = this.sourceCaches[t5];\n e2.setEventedParent(null), e2.onRemove(this.map);\n }\n this.imageManager.setEventedParent(null), this.setEventedParent(null), t4 && this.dispatcher.broadcast(\"RM\", void 0), this.dispatcher.remove(t4);\n }\n _clearSource(t4) {\n this.sourceCaches[t4].clearTiles();\n }\n _reloadSource(t4) {\n this.sourceCaches[t4].resume(), this.sourceCaches[t4].reload();\n }\n _updateSources(t4) {\n for (const e2 in this.sourceCaches) this.sourceCaches[e2].update(t4, this.map.terrain);\n }\n _generateCollisionBoxes() {\n for (const t4 in this.sourceCaches) this._reloadSource(t4);\n }\n _updatePlacement(t4, e2, i2, a2, s2 = false) {\n let r2 = false, n2 = false;\n const l2 = {};\n for (const e3 of this._order) {\n const i3 = this._layers[e3];\n if (\"symbol\" !== i3.type) continue;\n if (!l2[i3.source]) {\n const t5 = this.sourceCaches[i3.source];\n l2[i3.source] = t5.getRenderableIds(true).map((e4) => t5.getTileByID(e4)).sort((t6, e4) => e4.tileID.overscaledZ - t6.tileID.overscaledZ || (t6.tileID.isLessThan(e4.tileID) ? -1 : 1));\n }\n const a3 = this.crossTileSymbolIndex.addLayer(i3, l2[i3.source], t4.center.lng);\n r2 = r2 || a3;\n }\n if (this.crossTileSymbolIndex.pruneUnusedLayers(this._order), ((s2 = s2 || this._layerOrderChanged || 0 === i2) || !this.pauseablePlacement || this.pauseablePlacement.isDone() && !this.placement.stillRecent(o.now(), t4.zoom)) && (this.pauseablePlacement = new se(t4, this.map.terrain, this._order, s2, e2, i2, a2, this.placement), this._layerOrderChanged = false), this.pauseablePlacement.isDone() ? this.placement.setStale() : (this.pauseablePlacement.continuePlacement(this._order, this._layers, l2), this.pauseablePlacement.isDone() && (this.placement = this.pauseablePlacement.commit(o.now()), n2 = true), r2 && this.pauseablePlacement.placement.setStale()), n2 || r2) for (const t5 of this._order) {\n const e3 = this._layers[t5];\n \"symbol\" === e3.type && this.placement.updateLayerOpacities(e3, l2[e3.source]);\n }\n return !this.pauseablePlacement.isDone() || this.placement.hasTransitions(o.now());\n }\n _releaseSymbolFadeTiles() {\n for (const t4 in this.sourceCaches) this.sourceCaches[t4].releaseSymbolFadeTiles();\n }\n getImages(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n const t5 = yield this.imageManager.getImages(i2.icons);\n this._updateTilesForChangedImages();\n const e2 = this.sourceCaches[i2.source];\n return e2 && e2.setDependencies(i2.tileID.key, i2.type, i2.icons), t5;\n });\n }\n getGlyphs(t4, i2) {\n return e._(this, void 0, void 0, function* () {\n const t5 = yield this.glyphManager.getGlyphs(i2.stacks), e2 = this.sourceCaches[i2.source];\n return e2 && e2.setDependencies(i2.tileID.key, i2.type, [\"\"]), t5;\n });\n }\n getGlyphsUrl() {\n return this.stylesheet.glyphs || null;\n }\n setGlyphs(t4, i2 = {}) {\n this._checkLoaded(), t4 && this._validate(e.u.glyphs, \"glyphs\", t4, null, i2) || (this._glyphsDidChange = true, this.stylesheet.glyphs = t4, this.glyphManager.entries = {}, this.glyphManager.setURL(t4));\n }\n addSprite(t4, i2, a2 = {}, s2) {\n this._checkLoaded();\n const o2 = [{ id: t4, url: i2 }], r2 = [...x(this.stylesheet.sprite), ...o2];\n this._validate(e.u.sprite, \"sprite\", r2, null, a2) || (this.stylesheet.sprite = r2, this._loadSprite(o2, true, s2));\n }\n removeSprite(t4) {\n this._checkLoaded();\n const i2 = x(this.stylesheet.sprite);\n if (i2.find((e2) => e2.id === t4)) {\n if (this._spritesImagesIds[t4]) for (const e2 of this._spritesImagesIds[t4]) this.imageManager.removeImage(e2), this._changedImages[e2] = true;\n i2.splice(i2.findIndex((e2) => e2.id === t4), 1), this.stylesheet.sprite = i2.length > 0 ? i2 : void 0, delete this._spritesImagesIds[t4], this._availableImages = this.imageManager.listImages(), this._changed = true, this.dispatcher.broadcast(\"SI\", this._availableImages), this.fire(new e.k(\"data\", { dataType: \"style\" }));\n } else this.fire(new e.j(new Error(`Sprite \"${t4}\" doesn't exists on this map.`)));\n }\n getSprite() {\n return x(this.stylesheet.sprite);\n }\n setSprite(t4, i2 = {}, a2) {\n this._checkLoaded(), t4 && this._validate(e.u.sprite, \"sprite\", t4, null, i2) || (this.stylesheet.sprite = t4, t4 ? this._loadSprite(t4, true, a2) : (this._unloadSprite(), a2 && a2(null)));\n }\n }\n var _e = e.Y([{ name: \"a_pos\", type: \"Int16\", components: 2 }]);\n const pe = { prelude: me(\"#ifdef GL_ES\\nprecision mediump float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\n\", \"#ifdef GL_ES\\nprecision highp float;\\n#else\\n#if !defined(lowp)\\n#define lowp\\n#endif\\n#if !defined(mediump)\\n#define mediump\\n#endif\\n#if !defined(highp)\\n#define highp\\n#endif\\n#endif\\nvec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0\\n);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}\\n#ifdef TERRAIN3D\\nuniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth;\\n#endif\\nconst highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {\\n#ifdef TERRAIN3D\\nhighp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));\\n#else\\nreturn 1.0;\\n#endif\\n}float calculate_visibility(vec4 pos) {\\n#ifdef TERRAIN3D\\nvec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;\\n#else\\nreturn 1.0;\\n#endif\\n}float ele(vec2 pos) {\\n#ifdef TERRAIN3D\\nvec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;\\n#else\\nreturn 0.0;\\n#endif\\n}float get_elevation(vec2 pos) {\\n#ifdef TERRAIN3D\\nvec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;\\n#else\\nreturn 0.0;\\n#endif\\n}\"), background: me(\"uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"), backgroundPattern: me(\"uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}\"), circle: me(\"varying vec3 v_data;varying float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define mediump float radius\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define highp vec4 stroke_color\\n#pragma mapbox: define mediump float stroke_width\\n#pragma mapbox: define lowp float stroke_opacity\\nvoid main(void) {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize mediump float radius\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize highp vec4 stroke_color\\n#pragma mapbox: initialize mediump float stroke_width\\n#pragma mapbox: initialize lowp float stroke_opacity\\nvec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}\"), clippingMask: me(\"void main() {gl_FragColor=vec4(1.0);}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}\"), heatmap: me(\"uniform highp float u_intensity;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main() {\\n#pragma mapbox: initialize highp float weight\\nfloat d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude;\\n#pragma mapbox: define highp float weight\\n#pragma mapbox: define mediump float radius\\nconst highp float ZERO=1.0/255.0/16.0;\\n#define GAUSS_COEF 0.3989422804014327\\nvoid main(void) {\\n#pragma mapbox: initialize highp float weight\\n#pragma mapbox: initialize mediump float radius\\nvec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,get_elevation(floor(a_pos*0.5)),1);gl_Position=u_matrix*pos;}\"), heatmapTexture: me(\"uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(0.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}\"), collisionBox: me(\"varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}\", \"attribute vec2 a_anchor_pos;attribute vec2 a_placed;attribute vec2 a_box_real;uniform mat4 u_matrix;uniform vec2 u_pixel_extrude_scale;varying float v_placed;varying float v_notUsed;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}\"), collisionCircle: me(\"varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}\", \"attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}\"), debug: me(\"uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}\", \"attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}\"), fill: me(\"#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_FragColor=color*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);}\"), fillOutline: me(\"varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos;\\n#pragma mapbox: define highp vec4 outline_color\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 outline_color\\n#pragma mapbox: initialize lowp float opacity\\ngl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"), fillOutlinePattern: me(\"uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}\"), fillPattern: me(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}\"), fillExtrusion: me(\"varying vec4 v_color;void main() {gl_FragColor=v_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\\n#ifdef TERRAIN3D\\nattribute vec2 a_centroid;\\n#endif\\nvarying vec4 v_color;\\n#pragma mapbox: define highp float base\\n#pragma mapbox: define highp float height\\n#pragma mapbox: define highp vec4 color\\nvoid main() {\\n#pragma mapbox: initialize highp float base\\n#pragma mapbox: initialize highp float height\\n#pragma mapbox: initialize highp vec4 color\\nvec3 normal=a_normal_ed.xyz;\\n#ifdef TERRAIN3D\\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\\n#else\\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\\n#endif\\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}\"), fillExtrusionPattern: me(\"uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;\\n#ifdef TERRAIN3D\\nattribute vec2 a_centroid;\\n#endif\\nvarying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting;\\n#pragma mapbox: define lowp float base\\n#pragma mapbox: define lowp float height\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float base\\n#pragma mapbox: initialize lowp float height\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;\\n#ifdef TERRAIN3D\\nfloat height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);\\n#else\\nfloat height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;\\n#endif\\nbase=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0\\n? a_pos\\n: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}\"), hillshadePrepare: me(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}\"), hillshade: me(\"uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent;\\n#define PI 3.141592653589793\\nvoid main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}\"), line: me(\"uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_width2=vec2(outset,inset);}\"), lineGradient: me(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\nattribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_width2=vec2(outset,inset);}\"), linePattern: me(\"#ifdef GL_ES\\nprecision highp float;\\n#endif\\nuniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\nvec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width;\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\n#pragma mapbox: define lowp vec4 pattern_from\\n#pragma mapbox: define lowp vec4 pattern_to\\n#pragma mapbox: define lowp float pixel_ratio_from\\n#pragma mapbox: define lowp float pixel_ratio_to\\nvoid main() {\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\n#pragma mapbox: initialize mediump vec4 pattern_from\\n#pragma mapbox: initialize mediump vec4 pattern_to\\n#pragma mapbox: initialize lowp float pixel_ratio_from\\n#pragma mapbox: initialize lowp float pixel_ratio_to\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}\"), lineSDF: me(\"uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"\\n#define scale 0.015873016\\n#define LINE_DISTANCE_SCALE 2.0\\nattribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale;\\n#pragma mapbox: define highp vec4 color\\n#pragma mapbox: define lowp float blur\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define mediump float gapwidth\\n#pragma mapbox: define lowp float offset\\n#pragma mapbox: define mediump float width\\n#pragma mapbox: define lowp float floorwidth\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 color\\n#pragma mapbox: initialize lowp float blur\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize mediump float gapwidth\\n#pragma mapbox: initialize lowp float offset\\n#pragma mapbox: initialize mediump float width\\n#pragma mapbox: initialize lowp float floorwidth\\nfloat ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;\\n#ifdef TERRAIN3D\\nv_gamma_scale=1.0;\\n#else\\nfloat extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;\\n#endif\\nv_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}\"), raster: me(\"uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}\"), symbolIcon: me(\"uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity;\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nlowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_tex;varying float v_fade_opacity;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}\\n#pragma mapbox: define lowp float opacity\\nvoid main() {\\n#pragma mapbox: initialize lowp float opacity\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}\"), symbolSDF: me(\"#define SDF_PX 8.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_data0;varying vec3 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}\"), symbolTextAndIcon: me(\"#define SDF_PX 8.0\\n#define SDF 1.0\\n#define ICON 0.0\\nuniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1;\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nfloat fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha;\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\nreturn;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity);\\n#ifdef OVERDRAW_INSPECTOR\\ngl_FragColor=vec4(1.0);\\n#endif\\n}\", \"attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec4 v_data0;varying vec4 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}\\n#pragma mapbox: define highp vec4 fill_color\\n#pragma mapbox: define highp vec4 halo_color\\n#pragma mapbox: define lowp float opacity\\n#pragma mapbox: define lowp float halo_width\\n#pragma mapbox: define lowp float halo_blur\\nvoid main() {\\n#pragma mapbox: initialize highp vec4 fill_color\\n#pragma mapbox: initialize highp vec4 halo_color\\n#pragma mapbox: initialize lowp float opacity\\n#pragma mapbox: initialize lowp float halo_width\\n#pragma mapbox: initialize lowp float halo_blur\\nvec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?\\ncamera_to_anchor_distance/u_camera_to_center_distance :\\nu_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}\"), terrain: me(\"uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;varying vec2 v_texture_pos;varying float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture2D(u_texture,v_texture_pos);if (v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);gl_FragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {gl_FragColor=surface_color;}}\", \"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform mat4 u_fog_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}\"), terrainDepth: me(\"varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}\", \"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}\"), terrainCoords: me(\"precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}\", \"attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);}\"), sky: me(\"uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform float u_horizon;uniform float u_sky_horizon_blend;void main() {float y=gl_FragCoord.y;if (y > u_horizon) {float blend=y-u_horizon;if (blend < u_sky_horizon_blend) {gl_FragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {gl_FragColor=u_sky_color;}}}\", \"attribute vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}\") };\n function me(t4, e2) {\n const i2 = /#pragma mapbox: ([\\w]+) ([\\w]+) ([\\w]+) ([\\w]+)/g, a2 = e2.match(/attribute ([\\w]+) ([\\w]+)/g), s2 = t4.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g), o2 = e2.match(/uniform ([\\w]+) ([\\w]+)([\\s]*)([\\w]*)/g), r2 = o2 ? o2.concat(s2) : s2, n2 = {};\n return { fragmentSource: t4 = t4.replace(i2, (t5, e3, i3, a3, s3) => (n2[s3] = true, \"define\" === e3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\nvarying ${i3} ${a3} ${s3};\n#else\nuniform ${i3} ${a3} u_${s3};\n#endif\n` : `\n#ifdef HAS_UNIFORM_u_${s3}\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n`)), vertexSource: e2 = e2.replace(i2, (t5, e3, i3, a3, s3) => {\n const o3 = \"float\" === a3 ? \"vec2\" : \"vec4\", r3 = s3.match(/color/) ? \"color\" : o3;\n return n2[s3] ? \"define\" === e3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\nuniform lowp float u_${s3}_t;\nattribute ${i3} ${o3} a_${s3};\nvarying ${i3} ${a3} ${s3};\n#else\nuniform ${i3} ${a3} u_${s3};\n#endif\n` : \"vec4\" === r3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\n ${s3} = a_${s3};\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n` : `\n#ifndef HAS_UNIFORM_u_${s3}\n ${s3} = unpack_mix_${r3}(a_${s3}, u_${s3}_t);\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n` : \"define\" === e3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\nuniform lowp float u_${s3}_t;\nattribute ${i3} ${o3} a_${s3};\n#else\nuniform ${i3} ${a3} u_${s3};\n#endif\n` : \"vec4\" === r3 ? `\n#ifndef HAS_UNIFORM_u_${s3}\n ${i3} ${a3} ${s3} = a_${s3};\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n` : `\n#ifndef HAS_UNIFORM_u_${s3}\n ${i3} ${a3} ${s3} = unpack_mix_${r3}(a_${s3}, u_${s3}_t);\n#else\n ${i3} ${a3} ${s3} = u_${s3};\n#endif\n`;\n }), staticAttributes: a2, staticUniforms: r2 };\n }\n class fe {\n constructor() {\n this.boundProgram = null, this.boundLayoutVertexBuffer = null, this.boundPaintVertexBuffers = [], this.boundIndexBuffer = null, this.boundVertexOffset = null, this.boundDynamicVertexBuffer = null, this.vao = null;\n }\n bind(t4, e2, i2, a2, s2, o2, r2, n2, l2) {\n this.context = t4;\n let h2 = this.boundPaintVertexBuffers.length !== a2.length;\n for (let t5 = 0; !h2 && t5 < a2.length; t5++) this.boundPaintVertexBuffers[t5] !== a2[t5] && (h2 = true);\n !this.vao || this.boundProgram !== e2 || this.boundLayoutVertexBuffer !== i2 || h2 || this.boundIndexBuffer !== s2 || this.boundVertexOffset !== o2 || this.boundDynamicVertexBuffer !== r2 || this.boundDynamicVertexBuffer2 !== n2 || this.boundDynamicVertexBuffer3 !== l2 ? this.freshBind(e2, i2, a2, s2, o2, r2, n2, l2) : (t4.bindVertexArray.set(this.vao), r2 && r2.bind(), s2 && s2.dynamicDraw && s2.bind(), n2 && n2.bind(), l2 && l2.bind());\n }\n freshBind(t4, e2, i2, a2, s2, o2, r2, n2) {\n const l2 = t4.numAttributes, h2 = this.context, c2 = h2.gl;\n this.vao && this.destroy(), this.vao = h2.createVertexArray(), h2.bindVertexArray.set(this.vao), this.boundProgram = t4, this.boundLayoutVertexBuffer = e2, this.boundPaintVertexBuffers = i2, this.boundIndexBuffer = a2, this.boundVertexOffset = s2, this.boundDynamicVertexBuffer = o2, this.boundDynamicVertexBuffer2 = r2, this.boundDynamicVertexBuffer3 = n2, e2.enableAttributes(c2, t4);\n for (const e3 of i2) e3.enableAttributes(c2, t4);\n o2 && o2.enableAttributes(c2, t4), r2 && r2.enableAttributes(c2, t4), n2 && n2.enableAttributes(c2, t4), e2.bind(), e2.setVertexAttribPointers(c2, t4, s2);\n for (const e3 of i2) e3.bind(), e3.setVertexAttribPointers(c2, t4, s2);\n o2 && (o2.bind(), o2.setVertexAttribPointers(c2, t4, s2)), a2 && a2.bind(), r2 && (r2.bind(), r2.setVertexAttribPointers(c2, t4, s2)), n2 && (n2.bind(), n2.setVertexAttribPointers(c2, t4, s2)), h2.currentNumAttributes = l2;\n }\n destroy() {\n this.vao && (this.context.deleteVertexArray(this.vao), this.vao = null);\n }\n }\n const ge = (t4, i2, a2, s2, o2) => ({ u_matrix: t4, u_texture: 0, u_ele_delta: i2, u_fog_matrix: a2, u_fog_color: s2 ? s2.properties.get(\"fog-color\") : e.aM.white, u_fog_ground_blend: s2 ? s2.properties.get(\"fog-ground-blend\") : 1, u_fog_ground_blend_opacity: s2 ? s2.calculateFogBlendOpacity(o2) : 0, u_horizon_color: s2 ? s2.properties.get(\"horizon-color\") : e.aM.white, u_horizon_fog_blend: s2 ? s2.properties.get(\"horizon-fog-blend\") : 1 });\n function ve(t4) {\n const e2 = [];\n for (let i2 = 0; i2 < t4.length; i2++) {\n if (null === t4[i2]) continue;\n const a2 = t4[i2].split(\" \");\n e2.push(a2.pop());\n }\n return e2;\n }\n class xe {\n constructor(t4, i2, a2, s2, o2, r2) {\n const n2 = t4.gl;\n this.program = n2.createProgram();\n const l2 = ve(i2.staticAttributes), h2 = a2 ? a2.getBinderAttributes() : [], c2 = l2.concat(h2), u2 = pe.prelude.staticUniforms ? ve(pe.prelude.staticUniforms) : [], d2 = i2.staticUniforms ? ve(i2.staticUniforms) : [], _2 = a2 ? a2.getBinderUniforms() : [], p2 = u2.concat(d2).concat(_2), m2 = [];\n for (const t5 of p2) m2.indexOf(t5) < 0 && m2.push(t5);\n const f2 = a2 ? a2.defines() : [];\n o2 && f2.push(\"#define OVERDRAW_INSPECTOR;\"), r2 && f2.push(\"#define TERRAIN3D;\");\n const g2 = f2.concat(pe.prelude.fragmentSource, i2.fragmentSource).join(\"\\n\"), v2 = f2.concat(pe.prelude.vertexSource, i2.vertexSource).join(\"\\n\"), x2 = n2.createShader(n2.FRAGMENT_SHADER);\n if (n2.isContextLost()) return void (this.failedToCreate = true);\n if (n2.shaderSource(x2, g2), n2.compileShader(x2), !n2.getShaderParameter(x2, n2.COMPILE_STATUS)) throw new Error(`Could not compile fragment shader: ${n2.getShaderInfoLog(x2)}`);\n n2.attachShader(this.program, x2);\n const y2 = n2.createShader(n2.VERTEX_SHADER);\n if (n2.isContextLost()) return void (this.failedToCreate = true);\n if (n2.shaderSource(y2, v2), n2.compileShader(y2), !n2.getShaderParameter(y2, n2.COMPILE_STATUS)) throw new Error(`Could not compile vertex shader: ${n2.getShaderInfoLog(y2)}`);\n n2.attachShader(this.program, y2), this.attributes = {};\n const b2 = {};\n this.numAttributes = c2.length;\n for (let t5 = 0; t5 < this.numAttributes; t5++) c2[t5] && (n2.bindAttribLocation(this.program, t5, c2[t5]), this.attributes[c2[t5]] = t5);\n if (n2.linkProgram(this.program), !n2.getProgramParameter(this.program, n2.LINK_STATUS)) throw new Error(`Program failed to link: ${n2.getProgramInfoLog(this.program)}`);\n n2.deleteShader(y2), n2.deleteShader(x2);\n for (let t5 = 0; t5 < m2.length; t5++) {\n const e2 = m2[t5];\n if (e2 && !b2[e2]) {\n const t6 = n2.getUniformLocation(this.program, e2);\n t6 && (b2[e2] = t6);\n }\n }\n this.fixedUniforms = s2(t4, b2), this.terrainUniforms = ((t5, i3) => ({ u_depth: new e.aH(t5, i3.u_depth), u_terrain: new e.aH(t5, i3.u_terrain), u_terrain_dim: new e.aI(t5, i3.u_terrain_dim), u_terrain_matrix: new e.aJ(t5, i3.u_terrain_matrix), u_terrain_unpack: new e.aK(t5, i3.u_terrain_unpack), u_terrain_exaggeration: new e.aI(t5, i3.u_terrain_exaggeration) }))(t4, b2), this.binderUniforms = a2 ? a2.getUniforms(t4, b2) : [];\n }\n draw(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2, f2, g2) {\n const v2 = t4.gl;\n if (this.failedToCreate) return;\n if (t4.program.set(this.program), t4.setDepthMode(i2), t4.setStencilMode(a2), t4.setColorMode(s2), t4.setCullFace(o2), n2) {\n t4.activeTexture.set(v2.TEXTURE2), v2.bindTexture(v2.TEXTURE_2D, n2.depthTexture), t4.activeTexture.set(v2.TEXTURE3), v2.bindTexture(v2.TEXTURE_2D, n2.texture);\n for (const t5 in this.terrainUniforms) this.terrainUniforms[t5].set(n2[t5]);\n }\n for (const t5 in this.fixedUniforms) this.fixedUniforms[t5].set(r2[t5]);\n p2 && p2.setUniforms(t4, this.binderUniforms, d2, { zoom: _2 });\n let x2 = 0;\n switch (e2) {\n case v2.LINES:\n x2 = 2;\n break;\n case v2.TRIANGLES:\n x2 = 3;\n break;\n case v2.LINE_STRIP:\n x2 = 1;\n }\n for (const i3 of u2.get()) {\n const a3 = i3.vaos || (i3.vaos = {});\n (a3[l2] || (a3[l2] = new fe())).bind(t4, this, h2, p2 ? p2.getPaintVertexBuffers() : [], c2, i3.vertexOffset, m2, f2, g2), v2.drawElements(e2, i3.primitiveLength * x2, v2.UNSIGNED_SHORT, i3.primitiveOffset * x2 * 2);\n }\n }\n }\n function ye(t4, e2, i2) {\n const a2 = 1 / Bt(i2, 1, e2.transform.tileZoom), s2 = Math.pow(2, i2.tileID.overscaledZ), o2 = i2.tileSize * Math.pow(2, e2.transform.tileZoom) / s2, r2 = o2 * (i2.tileID.canonical.x + i2.tileID.wrap * s2), n2 = o2 * i2.tileID.canonical.y;\n return { u_image: 0, u_texsize: i2.imageAtlasTexture.size, u_scale: [a2, t4.fromScale, t4.toScale], u_fade: t4.t, u_pixel_coord_upper: [r2 >> 16, n2 >> 16], u_pixel_coord_lower: [65535 & r2, 65535 & n2] };\n }\n const be = (t4, i2, a2, s2) => {\n const o2 = i2.style.light, r2 = o2.properties.get(\"position\"), n2 = [r2.x, r2.y, r2.z], l2 = function() {\n var t5 = new e.A(9);\n return e.A != Float32Array && (t5[1] = 0, t5[2] = 0, t5[3] = 0, t5[5] = 0, t5[6] = 0, t5[7] = 0), t5[0] = 1, t5[4] = 1, t5[8] = 1, t5;\n }();\n \"viewport\" === o2.properties.get(\"anchor\") && function(t5, e2) {\n var i3 = Math.sin(e2), a3 = Math.cos(e2);\n t5[0] = a3, t5[1] = i3, t5[2] = 0, t5[3] = -i3, t5[4] = a3, t5[5] = 0, t5[6] = 0, t5[7] = 0, t5[8] = 1;\n }(l2, -i2.transform.angle), function(t5, e2, i3) {\n var a3 = e2[0], s3 = e2[1], o3 = e2[2];\n t5[0] = a3 * i3[0] + s3 * i3[3] + o3 * i3[6], t5[1] = a3 * i3[1] + s3 * i3[4] + o3 * i3[7], t5[2] = a3 * i3[2] + s3 * i3[5] + o3 * i3[8];\n }(n2, n2, l2);\n const h2 = o2.properties.get(\"color\");\n return { u_matrix: t4, u_lightpos: n2, u_lightintensity: o2.properties.get(\"intensity\"), u_lightcolor: [h2.r, h2.g, h2.b], u_vertical_gradient: +a2, u_opacity: s2 };\n }, we = (t4, i2, a2, s2, o2, r2, n2) => e.e(be(t4, i2, a2, s2), ye(r2, i2, n2), { u_height_factor: -Math.pow(2, o2.overscaledZ) / n2.tileSize / 8 }), Te = (t4) => ({ u_matrix: t4 }), Ie = (t4, i2, a2, s2) => e.e(Te(t4), ye(a2, i2, s2)), Ee = (t4, e2) => ({ u_matrix: t4, u_world: e2 }), Pe = (t4, i2, a2, s2, o2) => e.e(Ie(t4, i2, a2, s2), { u_world: o2 }), Ce = (t4, e2, i2, a2) => {\n const s2 = t4.transform;\n let o2, r2;\n if (\"map\" === a2.paint.get(\"circle-pitch-alignment\")) {\n const t5 = Bt(i2, 1, s2.zoom);\n o2 = true, r2 = [t5, t5];\n } else o2 = false, r2 = s2.pixelsToGLUnits;\n return { u_camera_to_center_distance: s2.cameraToCenterDistance, u_scale_with_map: +(\"map\" === a2.paint.get(\"circle-pitch-scale\")), u_matrix: t4.translatePosMatrix(e2.posMatrix, i2, a2.paint.get(\"circle-translate\"), a2.paint.get(\"circle-translate-anchor\")), u_pitch_with_map: +o2, u_device_pixel_ratio: t4.pixelRatio, u_extrude_scale: r2 };\n }, Se = (t4, e2, i2) => ({ u_matrix: t4, u_inv_matrix: e2, u_camera_to_center_distance: i2.cameraToCenterDistance, u_viewport_size: [i2.width, i2.height] }), ze = (t4, e2, i2 = 1) => ({ u_matrix: t4, u_color: e2, u_overlay: 0, u_overlay_scale: i2 }), De = (t4) => ({ u_matrix: t4 }), Me = (t4, e2, i2, a2) => ({ u_matrix: t4, u_extrude_scale: Bt(e2, 1, i2), u_intensity: a2 }), Ae = (t4, i2, a2, s2) => {\n const o2 = e.H();\n e.aP(o2, 0, t4.width, t4.height, 0, 0, 1);\n const r2 = t4.context.gl;\n return { u_matrix: o2, u_world: [r2.drawingBufferWidth, r2.drawingBufferHeight], u_image: a2, u_color_ramp: s2, u_opacity: i2.paint.get(\"heatmap-opacity\") };\n };\n function Re(t4, i2) {\n const a2 = Math.pow(2, i2.canonical.z), s2 = i2.canonical.y;\n return [new e.Z(0, s2 / a2).toLngLat().lat, new e.Z(0, (s2 + 1) / a2).toLngLat().lat];\n }\n const ke = (t4, e2, i2, a2) => {\n const s2 = t4.transform;\n return { u_matrix: Ne(t4, e2, i2, a2), u_ratio: 1 / Bt(e2, 1, s2.zoom), u_device_pixel_ratio: t4.pixelRatio, u_units_to_pixels: [1 / s2.pixelsToGLUnits[0], 1 / s2.pixelsToGLUnits[1]] };\n }, Le = (t4, i2, a2, s2, o2) => e.e(ke(t4, i2, a2, o2), { u_image: 0, u_image_height: s2 }), Fe = (t4, e2, i2, a2, s2) => {\n const o2 = t4.transform, r2 = Oe(e2, o2);\n return { u_matrix: Ne(t4, e2, i2, s2), u_texsize: e2.imageAtlasTexture.size, u_ratio: 1 / Bt(e2, 1, o2.zoom), u_device_pixel_ratio: t4.pixelRatio, u_image: 0, u_scale: [r2, a2.fromScale, a2.toScale], u_fade: a2.t, u_units_to_pixels: [1 / o2.pixelsToGLUnits[0], 1 / o2.pixelsToGLUnits[1]] };\n }, Be = (t4, i2, a2, s2, o2, r2) => {\n const n2 = t4.lineAtlas, l2 = Oe(i2, t4.transform), h2 = \"round\" === a2.layout.get(\"line-cap\"), c2 = n2.getDash(s2.from, h2), u2 = n2.getDash(s2.to, h2), d2 = c2.width * o2.fromScale, _2 = u2.width * o2.toScale;\n return e.e(ke(t4, i2, a2, r2), { u_patternscale_a: [l2 / d2, -c2.height / 2], u_patternscale_b: [l2 / _2, -u2.height / 2], u_sdfgamma: n2.width / (256 * Math.min(d2, _2) * t4.pixelRatio) / 2, u_image: 0, u_tex_y_a: c2.y, u_tex_y_b: u2.y, u_mix: o2.t });\n };\n function Oe(t4, e2) {\n return 1 / Bt(t4, 1, e2.tileZoom);\n }\n function Ne(t4, e2, i2, a2) {\n return t4.translatePosMatrix(a2 ? a2.posMatrix : e2.tileID.posMatrix, e2, i2.paint.get(\"line-translate\"), i2.paint.get(\"line-translate-anchor\"));\n }\n const Ue = (t4, e2, i2, a2, s2) => {\n return { u_matrix: t4, u_tl_parent: e2, u_scale_parent: i2, u_buffer_scale: 1, u_fade_t: a2.mix, u_opacity: a2.opacity * s2.paint.get(\"raster-opacity\"), u_image0: 0, u_image1: 1, u_brightness_low: s2.paint.get(\"raster-brightness-min\"), u_brightness_high: s2.paint.get(\"raster-brightness-max\"), u_saturation_factor: (r2 = s2.paint.get(\"raster-saturation\"), r2 > 0 ? 1 - 1 / (1.001 - r2) : -r2), u_contrast_factor: (o2 = s2.paint.get(\"raster-contrast\"), o2 > 0 ? 1 / (1 - o2) : 1 + o2), u_spin_weights: je(s2.paint.get(\"raster-hue-rotate\")) };\n var o2, r2;\n };\n function je(t4) {\n t4 *= Math.PI / 180;\n const e2 = Math.sin(t4), i2 = Math.cos(t4);\n return [(2 * i2 + 1) / 3, (-Math.sqrt(3) * e2 - i2 + 1) / 3, (Math.sqrt(3) * e2 - i2 + 1) / 3];\n }\n const Ze = (t4, e2, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2) => {\n const p2 = r2.transform;\n return { u_is_size_zoom_constant: +(\"constant\" === t4 || \"source\" === t4), u_is_size_feature_constant: +(\"constant\" === t4 || \"camera\" === t4), u_size_t: e2 ? e2.uSizeT : 0, u_size: e2 ? e2.uSize : 0, u_camera_to_center_distance: p2.cameraToCenterDistance, u_pitch: p2.pitch / 360 * 2 * Math.PI, u_rotate_symbol: +i2, u_aspect_ratio: p2.width / p2.height, u_fade_change: r2.options.fadeDuration ? r2.symbolFadeChange : 1, u_matrix: n2, u_label_plane_matrix: l2, u_coord_matrix: h2, u_is_text: +u2, u_pitch_with_map: +a2, u_is_along_line: s2, u_is_variable_anchor: o2, u_texsize: d2, u_texture: 0, u_translation: c2, u_pitched_scale: _2 };\n }, qe = (t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2, m2) => {\n const f2 = n2.transform;\n return e.e(Ze(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, m2), { u_gamma_scale: s2 ? Math.cos(f2._pitch) * f2.cameraToCenterDistance : 1, u_device_pixel_ratio: n2.pixelRatio, u_is_halo: +p2 });\n }, Ve = (t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2) => e.e(qe(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, true, d2, true, p2), { u_texsize_icon: _2, u_texture_icon: 1 }), Ge = (t4, e2, i2) => ({ u_matrix: t4, u_opacity: e2, u_color: i2 }), He = (t4, i2, a2, s2, o2, r2) => e.e(function(t5, e2, i3, a3) {\n const s3 = i3.imageManager.getPattern(t5.from.toString()), o3 = i3.imageManager.getPattern(t5.to.toString()), { width: r3, height: n2 } = i3.imageManager.getPixelSize(), l2 = Math.pow(2, a3.tileID.overscaledZ), h2 = a3.tileSize * Math.pow(2, i3.transform.tileZoom) / l2, c2 = h2 * (a3.tileID.canonical.x + a3.tileID.wrap * l2), u2 = h2 * a3.tileID.canonical.y;\n return { u_image: 0, u_pattern_tl_a: s3.tl, u_pattern_br_a: s3.br, u_pattern_tl_b: o3.tl, u_pattern_br_b: o3.br, u_texsize: [r3, n2], u_mix: e2.t, u_pattern_size_a: s3.displaySize, u_pattern_size_b: o3.displaySize, u_scale_a: e2.fromScale, u_scale_b: e2.toScale, u_tile_units_to_pixels: 1 / Bt(a3, 1, i3.transform.tileZoom), u_pixel_coord_upper: [c2 >> 16, u2 >> 16], u_pixel_coord_lower: [65535 & c2, 65535 & u2] };\n }(s2, r2, a2, o2), { u_matrix: t4, u_opacity: i2 }), We = { fillExtrusion: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_lightpos: new e.aN(t4, i2.u_lightpos), u_lightintensity: new e.aI(t4, i2.u_lightintensity), u_lightcolor: new e.aN(t4, i2.u_lightcolor), u_vertical_gradient: new e.aI(t4, i2.u_vertical_gradient), u_opacity: new e.aI(t4, i2.u_opacity) }), fillExtrusionPattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_lightpos: new e.aN(t4, i2.u_lightpos), u_lightintensity: new e.aI(t4, i2.u_lightintensity), u_lightcolor: new e.aN(t4, i2.u_lightcolor), u_vertical_gradient: new e.aI(t4, i2.u_vertical_gradient), u_height_factor: new e.aI(t4, i2.u_height_factor), u_image: new e.aH(t4, i2.u_image), u_texsize: new e.aO(t4, i2.u_texsize), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade), u_opacity: new e.aI(t4, i2.u_opacity) }), fill: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix) }), fillPattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_image: new e.aH(t4, i2.u_image), u_texsize: new e.aO(t4, i2.u_texsize), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade) }), fillOutline: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_world: new e.aO(t4, i2.u_world) }), fillOutlinePattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_world: new e.aO(t4, i2.u_world), u_image: new e.aH(t4, i2.u_image), u_texsize: new e.aO(t4, i2.u_texsize), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade) }), circle: (t4, i2) => ({ u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_scale_with_map: new e.aH(t4, i2.u_scale_with_map), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_extrude_scale: new e.aO(t4, i2.u_extrude_scale), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_matrix: new e.aJ(t4, i2.u_matrix) }), collisionBox: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_pixel_extrude_scale: new e.aO(t4, i2.u_pixel_extrude_scale) }), collisionCircle: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_inv_matrix: new e.aJ(t4, i2.u_inv_matrix), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_viewport_size: new e.aO(t4, i2.u_viewport_size) }), debug: (t4, i2) => ({ u_color: new e.aL(t4, i2.u_color), u_matrix: new e.aJ(t4, i2.u_matrix), u_overlay: new e.aH(t4, i2.u_overlay), u_overlay_scale: new e.aI(t4, i2.u_overlay_scale) }), clippingMask: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix) }), heatmap: (t4, i2) => ({ u_extrude_scale: new e.aI(t4, i2.u_extrude_scale), u_intensity: new e.aI(t4, i2.u_intensity), u_matrix: new e.aJ(t4, i2.u_matrix) }), heatmapTexture: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_world: new e.aO(t4, i2.u_world), u_image: new e.aH(t4, i2.u_image), u_color_ramp: new e.aH(t4, i2.u_color_ramp), u_opacity: new e.aI(t4, i2.u_opacity) }), hillshade: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_image: new e.aH(t4, i2.u_image), u_latrange: new e.aO(t4, i2.u_latrange), u_light: new e.aO(t4, i2.u_light), u_shadow: new e.aL(t4, i2.u_shadow), u_highlight: new e.aL(t4, i2.u_highlight), u_accent: new e.aL(t4, i2.u_accent) }), hillshadePrepare: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_image: new e.aH(t4, i2.u_image), u_dimension: new e.aO(t4, i2.u_dimension), u_zoom: new e.aI(t4, i2.u_zoom), u_unpack: new e.aK(t4, i2.u_unpack) }), line: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels) }), lineGradient: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels), u_image: new e.aH(t4, i2.u_image), u_image_height: new e.aI(t4, i2.u_image_height) }), linePattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_texsize: new e.aO(t4, i2.u_texsize), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_image: new e.aH(t4, i2.u_image), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels), u_scale: new e.aN(t4, i2.u_scale), u_fade: new e.aI(t4, i2.u_fade) }), lineSDF: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ratio: new e.aI(t4, i2.u_ratio), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_units_to_pixels: new e.aO(t4, i2.u_units_to_pixels), u_patternscale_a: new e.aO(t4, i2.u_patternscale_a), u_patternscale_b: new e.aO(t4, i2.u_patternscale_b), u_sdfgamma: new e.aI(t4, i2.u_sdfgamma), u_image: new e.aH(t4, i2.u_image), u_tex_y_a: new e.aI(t4, i2.u_tex_y_a), u_tex_y_b: new e.aI(t4, i2.u_tex_y_b), u_mix: new e.aI(t4, i2.u_mix) }), raster: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_tl_parent: new e.aO(t4, i2.u_tl_parent), u_scale_parent: new e.aI(t4, i2.u_scale_parent), u_buffer_scale: new e.aI(t4, i2.u_buffer_scale), u_fade_t: new e.aI(t4, i2.u_fade_t), u_opacity: new e.aI(t4, i2.u_opacity), u_image0: new e.aH(t4, i2.u_image0), u_image1: new e.aH(t4, i2.u_image1), u_brightness_low: new e.aI(t4, i2.u_brightness_low), u_brightness_high: new e.aI(t4, i2.u_brightness_high), u_saturation_factor: new e.aI(t4, i2.u_saturation_factor), u_contrast_factor: new e.aI(t4, i2.u_contrast_factor), u_spin_weights: new e.aN(t4, i2.u_spin_weights) }), symbolIcon: (t4, i2) => ({ u_is_size_zoom_constant: new e.aH(t4, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new e.aH(t4, i2.u_is_size_feature_constant), u_size_t: new e.aI(t4, i2.u_size_t), u_size: new e.aI(t4, i2.u_size), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_pitch: new e.aI(t4, i2.u_pitch), u_rotate_symbol: new e.aH(t4, i2.u_rotate_symbol), u_aspect_ratio: new e.aI(t4, i2.u_aspect_ratio), u_fade_change: new e.aI(t4, i2.u_fade_change), u_matrix: new e.aJ(t4, i2.u_matrix), u_label_plane_matrix: new e.aJ(t4, i2.u_label_plane_matrix), u_coord_matrix: new e.aJ(t4, i2.u_coord_matrix), u_is_text: new e.aH(t4, i2.u_is_text), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_is_along_line: new e.aH(t4, i2.u_is_along_line), u_is_variable_anchor: new e.aH(t4, i2.u_is_variable_anchor), u_texsize: new e.aO(t4, i2.u_texsize), u_texture: new e.aH(t4, i2.u_texture), u_translation: new e.aO(t4, i2.u_translation), u_pitched_scale: new e.aI(t4, i2.u_pitched_scale) }), symbolSDF: (t4, i2) => ({ u_is_size_zoom_constant: new e.aH(t4, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new e.aH(t4, i2.u_is_size_feature_constant), u_size_t: new e.aI(t4, i2.u_size_t), u_size: new e.aI(t4, i2.u_size), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_pitch: new e.aI(t4, i2.u_pitch), u_rotate_symbol: new e.aH(t4, i2.u_rotate_symbol), u_aspect_ratio: new e.aI(t4, i2.u_aspect_ratio), u_fade_change: new e.aI(t4, i2.u_fade_change), u_matrix: new e.aJ(t4, i2.u_matrix), u_label_plane_matrix: new e.aJ(t4, i2.u_label_plane_matrix), u_coord_matrix: new e.aJ(t4, i2.u_coord_matrix), u_is_text: new e.aH(t4, i2.u_is_text), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_is_along_line: new e.aH(t4, i2.u_is_along_line), u_is_variable_anchor: new e.aH(t4, i2.u_is_variable_anchor), u_texsize: new e.aO(t4, i2.u_texsize), u_texture: new e.aH(t4, i2.u_texture), u_gamma_scale: new e.aI(t4, i2.u_gamma_scale), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_is_halo: new e.aH(t4, i2.u_is_halo), u_translation: new e.aO(t4, i2.u_translation), u_pitched_scale: new e.aI(t4, i2.u_pitched_scale) }), symbolTextAndIcon: (t4, i2) => ({ u_is_size_zoom_constant: new e.aH(t4, i2.u_is_size_zoom_constant), u_is_size_feature_constant: new e.aH(t4, i2.u_is_size_feature_constant), u_size_t: new e.aI(t4, i2.u_size_t), u_size: new e.aI(t4, i2.u_size), u_camera_to_center_distance: new e.aI(t4, i2.u_camera_to_center_distance), u_pitch: new e.aI(t4, i2.u_pitch), u_rotate_symbol: new e.aH(t4, i2.u_rotate_symbol), u_aspect_ratio: new e.aI(t4, i2.u_aspect_ratio), u_fade_change: new e.aI(t4, i2.u_fade_change), u_matrix: new e.aJ(t4, i2.u_matrix), u_label_plane_matrix: new e.aJ(t4, i2.u_label_plane_matrix), u_coord_matrix: new e.aJ(t4, i2.u_coord_matrix), u_is_text: new e.aH(t4, i2.u_is_text), u_pitch_with_map: new e.aH(t4, i2.u_pitch_with_map), u_is_along_line: new e.aH(t4, i2.u_is_along_line), u_is_variable_anchor: new e.aH(t4, i2.u_is_variable_anchor), u_texsize: new e.aO(t4, i2.u_texsize), u_texsize_icon: new e.aO(t4, i2.u_texsize_icon), u_texture: new e.aH(t4, i2.u_texture), u_texture_icon: new e.aH(t4, i2.u_texture_icon), u_gamma_scale: new e.aI(t4, i2.u_gamma_scale), u_device_pixel_ratio: new e.aI(t4, i2.u_device_pixel_ratio), u_is_halo: new e.aH(t4, i2.u_is_halo), u_translation: new e.aO(t4, i2.u_translation), u_pitched_scale: new e.aI(t4, i2.u_pitched_scale) }), background: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_opacity: new e.aI(t4, i2.u_opacity), u_color: new e.aL(t4, i2.u_color) }), backgroundPattern: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_opacity: new e.aI(t4, i2.u_opacity), u_image: new e.aH(t4, i2.u_image), u_pattern_tl_a: new e.aO(t4, i2.u_pattern_tl_a), u_pattern_br_a: new e.aO(t4, i2.u_pattern_br_a), u_pattern_tl_b: new e.aO(t4, i2.u_pattern_tl_b), u_pattern_br_b: new e.aO(t4, i2.u_pattern_br_b), u_texsize: new e.aO(t4, i2.u_texsize), u_mix: new e.aI(t4, i2.u_mix), u_pattern_size_a: new e.aO(t4, i2.u_pattern_size_a), u_pattern_size_b: new e.aO(t4, i2.u_pattern_size_b), u_scale_a: new e.aI(t4, i2.u_scale_a), u_scale_b: new e.aI(t4, i2.u_scale_b), u_pixel_coord_upper: new e.aO(t4, i2.u_pixel_coord_upper), u_pixel_coord_lower: new e.aO(t4, i2.u_pixel_coord_lower), u_tile_units_to_pixels: new e.aI(t4, i2.u_tile_units_to_pixels) }), terrain: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_texture: new e.aH(t4, i2.u_texture), u_ele_delta: new e.aI(t4, i2.u_ele_delta), u_fog_matrix: new e.aJ(t4, i2.u_fog_matrix), u_fog_color: new e.aL(t4, i2.u_fog_color), u_fog_ground_blend: new e.aI(t4, i2.u_fog_ground_blend), u_fog_ground_blend_opacity: new e.aI(t4, i2.u_fog_ground_blend_opacity), u_horizon_color: new e.aL(t4, i2.u_horizon_color), u_horizon_fog_blend: new e.aI(t4, i2.u_horizon_fog_blend) }), terrainDepth: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_ele_delta: new e.aI(t4, i2.u_ele_delta) }), terrainCoords: (t4, i2) => ({ u_matrix: new e.aJ(t4, i2.u_matrix), u_texture: new e.aH(t4, i2.u_texture), u_terrain_coords_id: new e.aI(t4, i2.u_terrain_coords_id), u_ele_delta: new e.aI(t4, i2.u_ele_delta) }), sky: (t4, i2) => ({ u_sky_color: new e.aL(t4, i2.u_sky_color), u_horizon_color: new e.aL(t4, i2.u_horizon_color), u_horizon: new e.aI(t4, i2.u_horizon), u_sky_horizon_blend: new e.aI(t4, i2.u_sky_horizon_blend) }) };\n class $e {\n constructor(t4, e2, i2) {\n this.context = t4;\n const a2 = t4.gl;\n this.buffer = a2.createBuffer(), this.dynamicDraw = Boolean(i2), this.context.unbindVAO(), t4.bindElementBuffer.set(this.buffer), a2.bufferData(a2.ELEMENT_ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? a2.DYNAMIC_DRAW : a2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer;\n }\n bind() {\n this.context.bindElementBuffer.set(this.buffer);\n }\n updateData(t4) {\n const e2 = this.context.gl;\n if (!this.dynamicDraw) throw new Error(\"Attempted to update data while not in dynamic mode.\");\n this.context.unbindVAO(), this.bind(), e2.bufferSubData(e2.ELEMENT_ARRAY_BUFFER, 0, t4.arrayBuffer);\n }\n destroy() {\n this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer);\n }\n }\n const Xe = { Int8: \"BYTE\", Uint8: \"UNSIGNED_BYTE\", Int16: \"SHORT\", Uint16: \"UNSIGNED_SHORT\", Int32: \"INT\", Uint32: \"UNSIGNED_INT\", Float32: \"FLOAT\" };\n class Ke {\n constructor(t4, e2, i2, a2) {\n this.length = e2.length, this.attributes = i2, this.itemSize = e2.bytesPerElement, this.dynamicDraw = a2, this.context = t4;\n const s2 = t4.gl;\n this.buffer = s2.createBuffer(), t4.bindVertexBuffer.set(this.buffer), s2.bufferData(s2.ARRAY_BUFFER, e2.arrayBuffer, this.dynamicDraw ? s2.DYNAMIC_DRAW : s2.STATIC_DRAW), this.dynamicDraw || delete e2.arrayBuffer;\n }\n bind() {\n this.context.bindVertexBuffer.set(this.buffer);\n }\n updateData(t4) {\n if (t4.length !== this.length) throw new Error(`Length of new data is ${t4.length}, which doesn't match current length of ${this.length}`);\n const e2 = this.context.gl;\n this.bind(), e2.bufferSubData(e2.ARRAY_BUFFER, 0, t4.arrayBuffer);\n }\n enableAttributes(t4, e2) {\n for (let i2 = 0; i2 < this.attributes.length; i2++) {\n const a2 = e2.attributes[this.attributes[i2].name];\n void 0 !== a2 && t4.enableVertexAttribArray(a2);\n }\n }\n setVertexAttribPointers(t4, e2, i2) {\n for (let a2 = 0; a2 < this.attributes.length; a2++) {\n const s2 = this.attributes[a2], o2 = e2.attributes[s2.name];\n void 0 !== o2 && t4.vertexAttribPointer(o2, s2.components, t4[Xe[s2.type]], false, this.itemSize, s2.offset + this.itemSize * (i2 || 0));\n }\n }\n destroy() {\n this.buffer && (this.context.gl.deleteBuffer(this.buffer), delete this.buffer);\n }\n }\n const Je = /* @__PURE__ */ new WeakMap();\n function Ye(t4) {\n var e2;\n if (Je.has(t4)) return Je.get(t4);\n {\n const i2 = null === (e2 = t4.getParameter(t4.VERSION)) || void 0 === e2 ? void 0 : e2.startsWith(\"WebGL 2.0\");\n return Je.set(t4, i2), i2;\n }\n }\n class Qe {\n constructor(t4) {\n this.gl = t4.gl, this.default = this.getDefault(), this.current = this.default, this.dirty = false;\n }\n get() {\n return this.current;\n }\n set(t4) {\n }\n getDefault() {\n return this.default;\n }\n setDefault() {\n this.set(this.default);\n }\n }\n class ti extends Qe {\n getDefault() {\n return e.aM.transparent;\n }\n set(t4) {\n const e2 = this.current;\n (t4.r !== e2.r || t4.g !== e2.g || t4.b !== e2.b || t4.a !== e2.a || this.dirty) && (this.gl.clearColor(t4.r, t4.g, t4.b, t4.a), this.current = t4, this.dirty = false);\n }\n }\n class ei extends Qe {\n getDefault() {\n return 1;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.clearDepth(t4), this.current = t4, this.dirty = false);\n }\n }\n class ii extends Qe {\n getDefault() {\n return 0;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.clearStencil(t4), this.current = t4, this.dirty = false);\n }\n }\n class ai extends Qe {\n getDefault() {\n return [true, true, true, true];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || t4[2] !== e2[2] || t4[3] !== e2[3] || this.dirty) && (this.gl.colorMask(t4[0], t4[1], t4[2], t4[3]), this.current = t4, this.dirty = false);\n }\n }\n class si extends Qe {\n getDefault() {\n return true;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.depthMask(t4), this.current = t4, this.dirty = false);\n }\n }\n class oi extends Qe {\n getDefault() {\n return 255;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.stencilMask(t4), this.current = t4, this.dirty = false);\n }\n }\n class ri extends Qe {\n getDefault() {\n return { func: this.gl.ALWAYS, ref: 0, mask: 255 };\n }\n set(t4) {\n const e2 = this.current;\n (t4.func !== e2.func || t4.ref !== e2.ref || t4.mask !== e2.mask || this.dirty) && (this.gl.stencilFunc(t4.func, t4.ref, t4.mask), this.current = t4, this.dirty = false);\n }\n }\n class ni extends Qe {\n getDefault() {\n const t4 = this.gl;\n return [t4.KEEP, t4.KEEP, t4.KEEP];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || t4[2] !== e2[2] || this.dirty) && (this.gl.stencilOp(t4[0], t4[1], t4[2]), this.current = t4, this.dirty = false);\n }\n }\n class li extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.STENCIL_TEST) : e2.disable(e2.STENCIL_TEST), this.current = t4, this.dirty = false;\n }\n }\n class hi extends Qe {\n getDefault() {\n return [0, 1];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || this.dirty) && (this.gl.depthRange(t4[0], t4[1]), this.current = t4, this.dirty = false);\n }\n }\n class ci extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.DEPTH_TEST) : e2.disable(e2.DEPTH_TEST), this.current = t4, this.dirty = false;\n }\n }\n class ui extends Qe {\n getDefault() {\n return this.gl.LESS;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.depthFunc(t4), this.current = t4, this.dirty = false);\n }\n }\n class di extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.BLEND) : e2.disable(e2.BLEND), this.current = t4, this.dirty = false;\n }\n }\n class _i extends Qe {\n getDefault() {\n const t4 = this.gl;\n return [t4.ONE, t4.ZERO];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || this.dirty) && (this.gl.blendFunc(t4[0], t4[1]), this.current = t4, this.dirty = false);\n }\n }\n class pi extends Qe {\n getDefault() {\n return e.aM.transparent;\n }\n set(t4) {\n const e2 = this.current;\n (t4.r !== e2.r || t4.g !== e2.g || t4.b !== e2.b || t4.a !== e2.a || this.dirty) && (this.gl.blendColor(t4.r, t4.g, t4.b, t4.a), this.current = t4, this.dirty = false);\n }\n }\n class mi extends Qe {\n getDefault() {\n return this.gl.FUNC_ADD;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.blendEquation(t4), this.current = t4, this.dirty = false);\n }\n }\n class fi extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n t4 ? e2.enable(e2.CULL_FACE) : e2.disable(e2.CULL_FACE), this.current = t4, this.dirty = false;\n }\n }\n class gi extends Qe {\n getDefault() {\n return this.gl.BACK;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.cullFace(t4), this.current = t4, this.dirty = false);\n }\n }\n class vi extends Qe {\n getDefault() {\n return this.gl.CCW;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.frontFace(t4), this.current = t4, this.dirty = false);\n }\n }\n class xi extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.useProgram(t4), this.current = t4, this.dirty = false);\n }\n }\n class yi extends Qe {\n getDefault() {\n return this.gl.TEXTURE0;\n }\n set(t4) {\n (t4 !== this.current || this.dirty) && (this.gl.activeTexture(t4), this.current = t4, this.dirty = false);\n }\n }\n class bi extends Qe {\n getDefault() {\n const t4 = this.gl;\n return [0, 0, t4.drawingBufferWidth, t4.drawingBufferHeight];\n }\n set(t4) {\n const e2 = this.current;\n (t4[0] !== e2[0] || t4[1] !== e2[1] || t4[2] !== e2[2] || t4[3] !== e2[3] || this.dirty) && (this.gl.viewport(t4[0], t4[1], t4[2], t4[3]), this.current = t4, this.dirty = false);\n }\n }\n class wi extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindFramebuffer(e2.FRAMEBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ti extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindRenderbuffer(e2.RENDERBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ii extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindTexture(e2.TEXTURE_2D, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ei extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.bindBuffer(e2.ARRAY_BUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Pi extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n const e2 = this.gl;\n e2.bindBuffer(e2.ELEMENT_ARRAY_BUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Ci extends Qe {\n getDefault() {\n return null;\n }\n set(t4) {\n var e2;\n if (t4 === this.current && !this.dirty) return;\n const i2 = this.gl;\n Ye(i2) ? i2.bindVertexArray(t4) : null === (e2 = i2.getExtension(\"OES_vertex_array_object\")) || void 0 === e2 || e2.bindVertexArrayOES(t4), this.current = t4, this.dirty = false;\n }\n }\n class Si extends Qe {\n getDefault() {\n return 4;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.pixelStorei(e2.UNPACK_ALIGNMENT, t4), this.current = t4, this.dirty = false;\n }\n }\n class zi extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.pixelStorei(e2.UNPACK_PREMULTIPLY_ALPHA_WEBGL, t4), this.current = t4, this.dirty = false;\n }\n }\n class Di extends Qe {\n getDefault() {\n return false;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n const e2 = this.gl;\n e2.pixelStorei(e2.UNPACK_FLIP_Y_WEBGL, t4), this.current = t4, this.dirty = false;\n }\n }\n class Mi extends Qe {\n constructor(t4, e2) {\n super(t4), this.context = t4, this.parent = e2;\n }\n getDefault() {\n return null;\n }\n }\n class Ai extends Mi {\n setDirty() {\n this.dirty = true;\n }\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n this.context.bindFramebuffer.set(this.parent);\n const e2 = this.gl;\n e2.framebufferTexture2D(e2.FRAMEBUFFER, e2.COLOR_ATTACHMENT0, e2.TEXTURE_2D, t4, 0), this.current = t4, this.dirty = false;\n }\n }\n class Ri extends Mi {\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n this.context.bindFramebuffer.set(this.parent);\n const e2 = this.gl;\n e2.framebufferRenderbuffer(e2.FRAMEBUFFER, e2.DEPTH_ATTACHMENT, e2.RENDERBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class ki extends Mi {\n set(t4) {\n if (t4 === this.current && !this.dirty) return;\n this.context.bindFramebuffer.set(this.parent);\n const e2 = this.gl;\n e2.framebufferRenderbuffer(e2.FRAMEBUFFER, e2.DEPTH_STENCIL_ATTACHMENT, e2.RENDERBUFFER, t4), this.current = t4, this.dirty = false;\n }\n }\n class Li {\n constructor(t4, e2, i2, a2, s2) {\n this.context = t4, this.width = e2, this.height = i2;\n const o2 = t4.gl, r2 = this.framebuffer = o2.createFramebuffer();\n if (this.colorAttachment = new Ai(t4, r2), a2) this.depthAttachment = s2 ? new ki(t4, r2) : new Ri(t4, r2);\n else if (s2) throw new Error(\"Stencil cannot be set without depth\");\n if (o2.checkFramebufferStatus(o2.FRAMEBUFFER) !== o2.FRAMEBUFFER_COMPLETE) throw new Error(\"Framebuffer is not complete\");\n }\n destroy() {\n const t4 = this.context.gl, e2 = this.colorAttachment.get();\n if (e2 && t4.deleteTexture(e2), this.depthAttachment) {\n const e3 = this.depthAttachment.get();\n e3 && t4.deleteRenderbuffer(e3);\n }\n t4.deleteFramebuffer(this.framebuffer);\n }\n }\n class Fi {\n constructor(t4, e2, i2) {\n this.blendFunction = t4, this.blendColor = e2, this.mask = i2;\n }\n }\n Fi.Replace = [1, 0], Fi.disabled = new Fi(Fi.Replace, e.aM.transparent, [false, false, false, false]), Fi.unblended = new Fi(Fi.Replace, e.aM.transparent, [true, true, true, true]), Fi.alphaBlended = new Fi([1, 771], e.aM.transparent, [true, true, true, true]);\n class Bi {\n constructor(t4) {\n var e2, i2;\n if (this.gl = t4, this.clearColor = new ti(this), this.clearDepth = new ei(this), this.clearStencil = new ii(this), this.colorMask = new ai(this), this.depthMask = new si(this), this.stencilMask = new oi(this), this.stencilFunc = new ri(this), this.stencilOp = new ni(this), this.stencilTest = new li(this), this.depthRange = new hi(this), this.depthTest = new ci(this), this.depthFunc = new ui(this), this.blend = new di(this), this.blendFunc = new _i(this), this.blendColor = new pi(this), this.blendEquation = new mi(this), this.cullFace = new fi(this), this.cullFaceSide = new gi(this), this.frontFace = new vi(this), this.program = new xi(this), this.activeTexture = new yi(this), this.viewport = new bi(this), this.bindFramebuffer = new wi(this), this.bindRenderbuffer = new Ti(this), this.bindTexture = new Ii(this), this.bindVertexBuffer = new Ei(this), this.bindElementBuffer = new Pi(this), this.bindVertexArray = new Ci(this), this.pixelStoreUnpack = new Si(this), this.pixelStoreUnpackPremultiplyAlpha = new zi(this), this.pixelStoreUnpackFlipY = new Di(this), this.extTextureFilterAnisotropic = t4.getExtension(\"EXT_texture_filter_anisotropic\") || t4.getExtension(\"MOZ_EXT_texture_filter_anisotropic\") || t4.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\"), this.extTextureFilterAnisotropic && (this.extTextureFilterAnisotropicMax = t4.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)), this.maxTextureSize = t4.getParameter(t4.MAX_TEXTURE_SIZE), Ye(t4)) {\n this.HALF_FLOAT = t4.HALF_FLOAT;\n const a2 = t4.getExtension(\"EXT_color_buffer_half_float\");\n this.RGBA16F = null !== (e2 = t4.RGBA16F) && void 0 !== e2 ? e2 : null == a2 ? void 0 : a2.RGBA16F_EXT, this.RGB16F = null !== (i2 = t4.RGB16F) && void 0 !== i2 ? i2 : null == a2 ? void 0 : a2.RGB16F_EXT, t4.getExtension(\"EXT_color_buffer_float\");\n } else {\n t4.getExtension(\"EXT_color_buffer_half_float\"), t4.getExtension(\"OES_texture_half_float_linear\");\n const e3 = t4.getExtension(\"OES_texture_half_float\");\n this.HALF_FLOAT = null == e3 ? void 0 : e3.HALF_FLOAT_OES;\n }\n }\n setDefault() {\n this.unbindVAO(), this.clearColor.setDefault(), this.clearDepth.setDefault(), this.clearStencil.setDefault(), this.colorMask.setDefault(), this.depthMask.setDefault(), this.stencilMask.setDefault(), this.stencilFunc.setDefault(), this.stencilOp.setDefault(), this.stencilTest.setDefault(), this.depthRange.setDefault(), this.depthTest.setDefault(), this.depthFunc.setDefault(), this.blend.setDefault(), this.blendFunc.setDefault(), this.blendColor.setDefault(), this.blendEquation.setDefault(), this.cullFace.setDefault(), this.cullFaceSide.setDefault(), this.frontFace.setDefault(), this.program.setDefault(), this.activeTexture.setDefault(), this.bindFramebuffer.setDefault(), this.pixelStoreUnpack.setDefault(), this.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.pixelStoreUnpackFlipY.setDefault();\n }\n setDirty() {\n this.clearColor.dirty = true, this.clearDepth.dirty = true, this.clearStencil.dirty = true, this.colorMask.dirty = true, this.depthMask.dirty = true, this.stencilMask.dirty = true, this.stencilFunc.dirty = true, this.stencilOp.dirty = true, this.stencilTest.dirty = true, this.depthRange.dirty = true, this.depthTest.dirty = true, this.depthFunc.dirty = true, this.blend.dirty = true, this.blendFunc.dirty = true, this.blendColor.dirty = true, this.blendEquation.dirty = true, this.cullFace.dirty = true, this.cullFaceSide.dirty = true, this.frontFace.dirty = true, this.program.dirty = true, this.activeTexture.dirty = true, this.viewport.dirty = true, this.bindFramebuffer.dirty = true, this.bindRenderbuffer.dirty = true, this.bindTexture.dirty = true, this.bindVertexBuffer.dirty = true, this.bindElementBuffer.dirty = true, this.bindVertexArray.dirty = true, this.pixelStoreUnpack.dirty = true, this.pixelStoreUnpackPremultiplyAlpha.dirty = true, this.pixelStoreUnpackFlipY.dirty = true;\n }\n createIndexBuffer(t4, e2) {\n return new $e(this, t4, e2);\n }\n createVertexBuffer(t4, e2, i2) {\n return new Ke(this, t4, e2, i2);\n }\n createRenderbuffer(t4, e2, i2) {\n const a2 = this.gl, s2 = a2.createRenderbuffer();\n return this.bindRenderbuffer.set(s2), a2.renderbufferStorage(a2.RENDERBUFFER, t4, e2, i2), this.bindRenderbuffer.set(null), s2;\n }\n createFramebuffer(t4, e2, i2, a2) {\n return new Li(this, t4, e2, i2, a2);\n }\n clear({ color: t4, depth: e2, stencil: i2 }) {\n const a2 = this.gl;\n let s2 = 0;\n t4 && (s2 |= a2.COLOR_BUFFER_BIT, this.clearColor.set(t4), this.colorMask.set([true, true, true, true])), void 0 !== e2 && (s2 |= a2.DEPTH_BUFFER_BIT, this.depthRange.set([0, 1]), this.clearDepth.set(e2), this.depthMask.set(true)), void 0 !== i2 && (s2 |= a2.STENCIL_BUFFER_BIT, this.clearStencil.set(i2), this.stencilMask.set(255)), a2.clear(s2);\n }\n setCullFace(t4) {\n false === t4.enable ? this.cullFace.set(false) : (this.cullFace.set(true), this.cullFaceSide.set(t4.mode), this.frontFace.set(t4.frontFace));\n }\n setDepthMode(t4) {\n t4.func !== this.gl.ALWAYS || t4.mask ? (this.depthTest.set(true), this.depthFunc.set(t4.func), this.depthMask.set(t4.mask), this.depthRange.set(t4.range)) : this.depthTest.set(false);\n }\n setStencilMode(t4) {\n t4.test.func !== this.gl.ALWAYS || t4.mask ? (this.stencilTest.set(true), this.stencilMask.set(t4.mask), this.stencilOp.set([t4.fail, t4.depthFail, t4.pass]), this.stencilFunc.set({ func: t4.test.func, ref: t4.ref, mask: t4.test.mask })) : this.stencilTest.set(false);\n }\n setColorMode(t4) {\n e.aE(t4.blendFunction, Fi.Replace) ? this.blend.set(false) : (this.blend.set(true), this.blendFunc.set(t4.blendFunction), this.blendColor.set(t4.blendColor)), this.colorMask.set(t4.mask);\n }\n createVertexArray() {\n var t4;\n return Ye(this.gl) ? this.gl.createVertexArray() : null === (t4 = this.gl.getExtension(\"OES_vertex_array_object\")) || void 0 === t4 ? void 0 : t4.createVertexArrayOES();\n }\n deleteVertexArray(t4) {\n var e2;\n return Ye(this.gl) ? this.gl.deleteVertexArray(t4) : null === (e2 = this.gl.getExtension(\"OES_vertex_array_object\")) || void 0 === e2 ? void 0 : e2.deleteVertexArrayOES(t4);\n }\n unbindVAO() {\n this.bindVertexArray.set(null);\n }\n }\n class Oi {\n constructor(t4, e2, i2) {\n this.func = t4, this.mask = e2, this.range = i2;\n }\n }\n Oi.ReadOnly = false, Oi.ReadWrite = true, Oi.disabled = new Oi(519, Oi.ReadOnly, [0, 1]);\n const Ni = 7680;\n class Ui {\n constructor(t4, e2, i2, a2, s2, o2) {\n this.test = t4, this.ref = e2, this.mask = i2, this.fail = a2, this.depthFail = s2, this.pass = o2;\n }\n }\n Ui.disabled = new Ui({ func: 519, mask: 0 }, 0, 0, Ni, Ni, Ni);\n class ji {\n constructor(t4, e2, i2) {\n this.enable = t4, this.mode = e2, this.frontFace = i2;\n }\n }\n let Zi;\n function qi(t4, i2, a2, s2, o2) {\n const r2 = t4.context, n2 = r2.gl, l2 = t4.useProgram(\"collisionBox\"), h2 = [];\n let c2 = 0, u2 = 0;\n for (let _3 = 0; _3 < s2.length; _3++) {\n const p3 = s2[_3], m3 = i2.getTile(p3).getBucket(a2);\n if (!m3) continue;\n const f3 = o2 ? m3.textCollisionBox : m3.iconCollisionBox, g3 = m3.collisionCircleArray;\n if (g3.length > 0) {\n const i3 = e.H();\n e.aQ(i3, m3.placementInvProjMatrix, t4.transform.glCoordMatrix), e.aQ(i3, i3, m3.placementViewportMatrix), h2.push({ circleArray: g3, circleOffset: u2, transform: p3.posMatrix, invTransform: i3, coord: p3 }), c2 += g3.length / 4, u2 = c2;\n }\n f3 && l2.draw(r2, n2.LINES, Oi.disabled, Ui.disabled, t4.colorModeForRenderPass(), ji.disabled, { u_matrix: p3.posMatrix, u_pixel_extrude_scale: [1 / (d2 = t4.transform).width, 1 / d2.height] }, t4.style.map.terrain && t4.style.map.terrain.getTerrainData(p3), a2.id, f3.layoutVertexBuffer, f3.indexBuffer, f3.segments, null, t4.transform.zoom, null, null, f3.collisionVertexBuffer);\n }\n var d2;\n if (!o2 || !h2.length) return;\n const _2 = t4.useProgram(\"collisionCircle\"), p2 = new e.aR();\n p2.resize(4 * c2), p2._trim();\n let m2 = 0;\n for (const t5 of h2) for (let e2 = 0; e2 < t5.circleArray.length / 4; e2++) {\n const i3 = 4 * e2, a3 = t5.circleArray[i3 + 0], s3 = t5.circleArray[i3 + 1], o3 = t5.circleArray[i3 + 2], r3 = t5.circleArray[i3 + 3];\n p2.emplace(m2++, a3, s3, o3, r3, 0), p2.emplace(m2++, a3, s3, o3, r3, 1), p2.emplace(m2++, a3, s3, o3, r3, 2), p2.emplace(m2++, a3, s3, o3, r3, 3);\n }\n (!Zi || Zi.length < 2 * c2) && (Zi = function(t5) {\n const i3 = 2 * t5, a3 = new e.aT();\n a3.resize(i3), a3._trim();\n for (let t6 = 0; t6 < i3; t6++) {\n const e2 = 6 * t6;\n a3.uint16[e2 + 0] = 4 * t6 + 0, a3.uint16[e2 + 1] = 4 * t6 + 1, a3.uint16[e2 + 2] = 4 * t6 + 2, a3.uint16[e2 + 3] = 4 * t6 + 2, a3.uint16[e2 + 4] = 4 * t6 + 3, a3.uint16[e2 + 5] = 4 * t6 + 0;\n }\n return a3;\n }(c2));\n const f2 = r2.createIndexBuffer(Zi, true), g2 = r2.createVertexBuffer(p2, e.aS.members, true);\n for (const i3 of h2) {\n const s3 = Se(i3.transform, i3.invTransform, t4.transform);\n _2.draw(r2, n2.TRIANGLES, Oi.disabled, Ui.disabled, t4.colorModeForRenderPass(), ji.disabled, s3, t4.style.map.terrain && t4.style.map.terrain.getTerrainData(i3.coord), a2.id, g2, f2, e.a0.simpleSegment(0, 2 * i3.circleOffset, i3.circleArray.length, i3.circleArray.length / 2), null, t4.transform.zoom, null, null, null);\n }\n g2.destroy(), f2.destroy();\n }\n ji.disabled = new ji(false, 1029, 2305), ji.backCCW = new ji(true, 1029, 2305);\n const Vi = e.an(new Float32Array(16));\n function Gi(t4, i2, a2, s2, o2, r2) {\n const { horizontalAlign: n2, verticalAlign: l2 } = e.au(t4);\n return new e.P((-(n2 - 0.5) * i2 / o2 + s2[0]) * r2, (-(l2 - 0.5) * a2 / o2 + s2[1]) * r2);\n }\n function Hi(t4, i2, a2, s2, o2, r2) {\n const n2 = i2.tileAnchorPoint.add(new e.P(i2.translation[0], i2.translation[1]));\n if (i2.pitchWithMap) {\n let t5 = s2.mult(r2);\n a2 || (t5 = t5.rotate(-o2));\n const e2 = n2.add(t5);\n return xt(e2.x, e2.y, i2.labelPlaneMatrix, i2.getElevation).point;\n }\n if (a2) {\n const e2 = St(i2.tileAnchorPoint.x + 1, i2.tileAnchorPoint.y, i2).point.sub(t4), a3 = Math.atan(e2.y / e2.x) + (e2.x < 0 ? Math.PI : 0);\n return t4.add(s2.rotate(a3));\n }\n return t4.add(s2);\n }\n function Wi(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2, _2, p2) {\n const m2 = t4.text.placedSymbolArray, f2 = t4.text.dynamicLayoutVertexArray, g2 = t4.icon.dynamicLayoutVertexArray, v2 = {};\n f2.clear();\n for (let g3 = 0; g3 < m2.length; g3++) {\n const x2 = m2.get(g3), y2 = x2.hidden || !x2.crossTileID || t4.allowVerticalPlacement && !x2.placedOrientation ? null : s2[x2.crossTileID];\n if (y2) {\n const s3 = new e.P(x2.anchorX, x2.anchorY), m3 = { getElevation: p2, width: o2.width, height: o2.height, labelPlaneMatrix: r2, lineVertexArray: null, pitchWithMap: a2, projection: u2, projectionCache: null, tileAnchorPoint: s3, translation: d2, unwrappedTileID: _2 }, g4 = a2 ? xt(s3.x, s3.y, n2, p2) : St(s3.x, s3.y, m3), b2 = yt(o2.cameraToCenterDistance, g4.signedDistanceFromCamera);\n let w2 = e.ai(t4.textSizeData, h2, x2) * b2 / e.ap;\n a2 && (w2 *= t4.tilePixelRatio / l2);\n const { width: T2, height: I2, anchor: E3, textOffset: P2, textBoxScale: C3 } = y2, S2 = Gi(E3, T2, I2, P2, C3, w2), z2 = u2.getPitchedTextCorrection(o2, s3.add(new e.P(d2[0], d2[1])), _2), D3 = Hi(g4.point, m3, i2, S2, o2.angle, z2), M2 = t4.allowVerticalPlacement && x2.placedOrientation === e.ah.vertical ? Math.PI / 2 : 0;\n for (let t5 = 0; t5 < x2.numGlyphs; t5++) e.aj(f2, D3, M2);\n c2 && x2.associatedIconIndex >= 0 && (v2[x2.associatedIconIndex] = { shiftedAnchor: D3, angle: M2 });\n } else Rt(x2.numGlyphs, f2);\n }\n if (c2) {\n g2.clear();\n const i3 = t4.icon.placedSymbolArray;\n for (let t5 = 0; t5 < i3.length; t5++) {\n const a3 = i3.get(t5);\n if (a3.hidden) Rt(a3.numGlyphs, g2);\n else {\n const i4 = v2[t5];\n if (i4) for (let t6 = 0; t6 < a3.numGlyphs; t6++) e.aj(g2, i4.shiftedAnchor, i4.angle);\n else Rt(a3.numGlyphs, g2);\n }\n }\n t4.icon.dynamicLayoutVertexBuffer.updateData(g2);\n }\n t4.text.dynamicLayoutVertexBuffer.updateData(f2);\n }\n function $i(t4, e2, i2) {\n return i2.iconsInText && e2 ? \"symbolTextAndIcon\" : t4 ? \"symbolSDF\" : \"symbolIcon\";\n }\n function Xi(t4, i2, a2, s2, o2, r2, n2, l2, h2, c2, u2, d2) {\n const _2 = t4.context, p2 = _2.gl, m2 = t4.transform, f2 = ie(), g2 = \"map\" === l2, v2 = \"map\" === h2, x2 = \"viewport\" !== l2 && \"point\" !== a2.layout.get(\"symbol-placement\"), y2 = g2 && !v2 && !x2, b2 = !v2 && x2, w2 = !a2.layout.get(\"symbol-sort-key\").isConstant();\n let T2 = false;\n const I2 = t4.depthModeForSublayer(0, Oi.ReadOnly), E3 = a2._unevaluatedLayout.hasValue(\"text-variable-anchor\") || a2._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\"), P2 = [], C3 = f2.getCircleRadiusCorrection(m2);\n for (const l3 of s2) {\n const s3 = i2.getTile(l3), h3 = s3.getBucket(a2);\n if (!h3) continue;\n const u3 = o2 ? h3.text : h3.icon;\n if (!u3 || !u3.segments.get().length || !u3.hasVisibleVertices) continue;\n const d3 = u3.programConfigurations.get(a2.id), _3 = o2 || h3.sdfIcons, I3 = o2 ? h3.textSizeData : h3.iconSizeData, S2 = v2 || 0 !== m2.pitch, z2 = t4.useProgram($i(_3, o2, h3), d3), D3 = e.ag(I3, m2.zoom), M2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(l3);\n let A3, R2, k2, L2, F2 = [0, 0], B3 = null;\n if (o2) R2 = s3.glyphAtlasTexture, k2 = p2.LINEAR, A3 = s3.glyphAtlasTexture.size, h3.iconsInText && (F2 = s3.imageAtlasTexture.size, B3 = s3.imageAtlasTexture, L2 = S2 || t4.options.rotating || t4.options.zooming || \"composite\" === I3.kind || \"camera\" === I3.kind ? p2.LINEAR : p2.NEAREST);\n else {\n const e2 = 1 !== a2.layout.get(\"icon-size\").constantOr(0) || h3.iconsNeedLinear;\n R2 = s3.imageAtlasTexture, k2 = _3 || t4.options.rotating || t4.options.zooming || e2 || S2 ? p2.LINEAR : p2.NEAREST, A3 = s3.imageAtlasTexture.size;\n }\n const O2 = Bt(s3, 1, t4.transform.zoom), N2 = b2 ? l3.posMatrix : Vi, U2 = gt(N2, v2, g2, t4.transform, O2), j2 = vt(N2, v2, g2, t4.transform, O2), Z2 = vt(l3.posMatrix, v2, g2, t4.transform, O2), q2 = f2.translatePosition(t4.transform, s3, r2, n2), V2 = E3 && h3.hasTextData(), G2 = \"none\" !== a2.layout.get(\"icon-text-fit\") && V2 && h3.hasIconData();\n if (x2) {\n const e2 = t4.style.map.terrain ? (e3, i4) => t4.style.map.terrain.getElevation(l3, e3, i4) : null, i3 = \"map\" === a2.layout.get(\"text-rotation-alignment\");\n wt(h3, l3.posMatrix, t4, o2, U2, Z2, v2, c2, i3, f2, l3.toUnwrapped(), m2.width, m2.height, q2, e2);\n }\n const H2 = l3.posMatrix, W2 = o2 && E3 || G2, $2 = x2 || W2 ? Vi : U2, X2 = j2, K3 = _3 && 0 !== a2.paint.get(o2 ? \"text-halo-width\" : \"icon-halo-width\").constantOr(1);\n let J2;\n J2 = _3 ? h3.iconsInText ? Ve(I3.kind, D3, y2, v2, x2, W2, t4, H2, $2, X2, q2, A3, F2, C3) : qe(I3.kind, D3, y2, v2, x2, W2, t4, H2, $2, X2, q2, o2, A3, true, C3) : Ze(I3.kind, D3, y2, v2, x2, W2, t4, H2, $2, X2, q2, o2, A3, C3);\n const Y2 = { program: z2, buffers: u3, uniformValues: J2, atlasTexture: R2, atlasTextureIcon: B3, atlasInterpolation: k2, atlasInterpolationIcon: L2, isSDF: _3, hasHalo: K3 };\n if (w2 && h3.canOverlap) {\n T2 = true;\n const t5 = u3.segments.get();\n for (const i3 of t5) P2.push({ segments: new e.a0([i3]), sortKey: i3.sortKey, state: Y2, terrainData: M2 });\n } else P2.push({ segments: u3.segments, sortKey: 0, state: Y2, terrainData: M2 });\n }\n T2 && P2.sort((t5, e2) => t5.sortKey - e2.sortKey);\n for (const e2 of P2) {\n const i3 = e2.state;\n if (_2.activeTexture.set(p2.TEXTURE0), i3.atlasTexture.bind(i3.atlasInterpolation, p2.CLAMP_TO_EDGE), i3.atlasTextureIcon && (_2.activeTexture.set(p2.TEXTURE1), i3.atlasTextureIcon && i3.atlasTextureIcon.bind(i3.atlasInterpolationIcon, p2.CLAMP_TO_EDGE)), i3.isSDF) {\n const s3 = i3.uniformValues;\n i3.hasHalo && (s3.u_is_halo = 1, Ki(i3.buffers, e2.segments, a2, t4, i3.program, I2, u2, d2, s3, e2.terrainData)), s3.u_is_halo = 0;\n }\n Ki(i3.buffers, e2.segments, a2, t4, i3.program, I2, u2, d2, i3.uniformValues, e2.terrainData);\n }\n }\n function Ki(t4, e2, i2, a2, s2, o2, r2, n2, l2, h2) {\n const c2 = a2.context;\n s2.draw(c2, c2.gl.TRIANGLES, o2, r2, n2, ji.disabled, l2, h2, i2.id, t4.layoutVertexBuffer, t4.indexBuffer, e2, i2.paint, a2.transform.zoom, t4.programConfigurations.get(i2.id), t4.dynamicLayoutVertexBuffer, t4.opacityVertexBuffer);\n }\n function Ji(t4, i2, a2, s2) {\n const o2 = t4.context, r2 = o2.gl, n2 = Ui.disabled, l2 = new Fi([r2.ONE, r2.ONE], e.aM.transparent, [true, true, true, true]), h2 = i2.getBucket(a2);\n if (!h2) return;\n const c2 = s2.key;\n let u2 = a2.heatmapFbos.get(c2);\n u2 || (u2 = Qi(o2, i2.tileSize, i2.tileSize), a2.heatmapFbos.set(c2, u2)), o2.bindFramebuffer.set(u2.framebuffer), o2.viewport.set([0, 0, i2.tileSize, i2.tileSize]), o2.clear({ color: e.aM.transparent });\n const d2 = h2.programConfigurations.get(a2.id), _2 = t4.useProgram(\"heatmap\", d2), p2 = t4.style.map.terrain.getTerrainData(s2);\n _2.draw(o2, r2.TRIANGLES, Oi.disabled, n2, l2, ji.disabled, Me(s2.posMatrix, i2, t4.transform.zoom, a2.paint.get(\"heatmap-intensity\")), p2, a2.id, h2.layoutVertexBuffer, h2.indexBuffer, h2.segments, a2.paint, t4.transform.zoom, d2);\n }\n function Yi(t4, e2, i2) {\n const a2 = t4.context, s2 = a2.gl;\n a2.setColorMode(t4.colorModeForRenderPass());\n const o2 = ta(a2, e2), r2 = i2.key, n2 = e2.heatmapFbos.get(r2);\n n2 && (a2.activeTexture.set(s2.TEXTURE0), s2.bindTexture(s2.TEXTURE_2D, n2.colorAttachment.get()), a2.activeTexture.set(s2.TEXTURE1), o2.bind(s2.LINEAR, s2.CLAMP_TO_EDGE), t4.useProgram(\"heatmapTexture\").draw(a2, s2.TRIANGLES, Oi.disabled, Ui.disabled, t4.colorModeForRenderPass(), ji.disabled, Ae(t4, e2, 0, 1), null, e2.id, t4.rasterBoundsBuffer, t4.quadTriangleIndexBuffer, t4.rasterBoundsSegments, e2.paint, t4.transform.zoom), n2.destroy(), e2.heatmapFbos.delete(r2));\n }\n function Qi(t4, e2, i2) {\n var a2, s2;\n const o2 = t4.gl, r2 = o2.createTexture();\n o2.bindTexture(o2.TEXTURE_2D, r2), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_WRAP_S, o2.CLAMP_TO_EDGE), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_WRAP_T, o2.CLAMP_TO_EDGE), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_MIN_FILTER, o2.LINEAR), o2.texParameteri(o2.TEXTURE_2D, o2.TEXTURE_MAG_FILTER, o2.LINEAR);\n const n2 = null !== (a2 = t4.HALF_FLOAT) && void 0 !== a2 ? a2 : o2.UNSIGNED_BYTE, l2 = null !== (s2 = t4.RGBA16F) && void 0 !== s2 ? s2 : o2.RGBA;\n o2.texImage2D(o2.TEXTURE_2D, 0, l2, e2, i2, 0, o2.RGBA, n2, null);\n const h2 = t4.createFramebuffer(e2, i2, false, false);\n return h2.colorAttachment.set(r2), h2;\n }\n function ta(t4, e2) {\n return e2.colorRampTexture || (e2.colorRampTexture = new b(t4, e2.colorRamp, t4.gl.RGBA)), e2.colorRampTexture;\n }\n function ea(t4, e2, i2, a2, s2) {\n if (!i2 || !a2 || !a2.imageAtlas) return;\n const o2 = a2.imageAtlas.patternPositions;\n let r2 = o2[i2.to.toString()], n2 = o2[i2.from.toString()];\n if (!r2 && n2 && (r2 = n2), !n2 && r2 && (n2 = r2), !r2 || !n2) {\n const t5 = s2.getPaintProperty(e2);\n r2 = o2[t5], n2 = o2[t5];\n }\n r2 && n2 && t4.setConstantPatternPositions(r2, n2);\n }\n function ia(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = t4.context.gl, l2 = \"fill-pattern\", h2 = i2.paint.get(l2), c2 = h2 && h2.constantOr(1), u2 = i2.getCrossfadeParameters();\n let d2, _2, p2, m2, f2;\n r2 ? (_2 = c2 && !i2.getPaintProperty(\"fill-outline-color\") ? \"fillOutlinePattern\" : \"fillOutline\", d2 = n2.LINES) : (_2 = c2 ? \"fillPattern\" : \"fill\", d2 = n2.TRIANGLES);\n const g2 = h2.constantOr(null);\n for (const h3 of a2) {\n const a3 = e2.getTile(h3);\n if (c2 && !a3.patternsLoaded()) continue;\n const v2 = a3.getBucket(i2);\n if (!v2) continue;\n const x2 = v2.programConfigurations.get(i2.id), y2 = t4.useProgram(_2, x2), b2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(h3);\n c2 && (t4.context.activeTexture.set(n2.TEXTURE0), a3.imageAtlasTexture.bind(n2.LINEAR, n2.CLAMP_TO_EDGE), x2.updatePaintBuffers(u2)), ea(x2, l2, g2, a3, i2);\n const w2 = b2 ? h3 : null, T2 = t4.translatePosMatrix(w2 ? w2.posMatrix : h3.posMatrix, a3, i2.paint.get(\"fill-translate\"), i2.paint.get(\"fill-translate-anchor\"));\n if (r2) {\n m2 = v2.indexBuffer2, f2 = v2.segments2;\n const e3 = [n2.drawingBufferWidth, n2.drawingBufferHeight];\n p2 = \"fillOutlinePattern\" === _2 && c2 ? Pe(T2, t4, u2, a3, e3) : Ee(T2, e3);\n } else m2 = v2.indexBuffer, f2 = v2.segments, p2 = c2 ? Ie(T2, t4, u2, a3) : Te(T2);\n y2.draw(t4.context, d2, s2, t4.stencilModeForClipping(h3), o2, ji.disabled, p2, b2, i2.id, v2.layoutVertexBuffer, m2, f2, i2.paint, t4.transform.zoom, x2);\n }\n }\n function aa(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = t4.context, l2 = n2.gl, h2 = \"fill-extrusion-pattern\", c2 = i2.paint.get(h2), u2 = c2.constantOr(1), d2 = i2.getCrossfadeParameters(), _2 = i2.paint.get(\"fill-extrusion-opacity\"), p2 = c2.constantOr(null);\n for (const c3 of a2) {\n const a3 = e2.getTile(c3), m2 = a3.getBucket(i2);\n if (!m2) continue;\n const f2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(c3), g2 = m2.programConfigurations.get(i2.id), v2 = t4.useProgram(u2 ? \"fillExtrusionPattern\" : \"fillExtrusion\", g2);\n u2 && (t4.context.activeTexture.set(l2.TEXTURE0), a3.imageAtlasTexture.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), g2.updatePaintBuffers(d2)), ea(g2, h2, p2, a3, i2);\n const x2 = t4.translatePosMatrix(c3.posMatrix, a3, i2.paint.get(\"fill-extrusion-translate\"), i2.paint.get(\"fill-extrusion-translate-anchor\")), y2 = i2.paint.get(\"fill-extrusion-vertical-gradient\"), b2 = u2 ? we(x2, t4, y2, _2, c3, d2, a3) : be(x2, t4, y2, _2);\n v2.draw(n2, n2.gl.TRIANGLES, s2, o2, r2, ji.backCCW, b2, f2, i2.id, m2.layoutVertexBuffer, m2.indexBuffer, m2.segments, i2.paint, t4.transform.zoom, g2, t4.style.map.terrain && m2.centroidVertexBuffer);\n }\n }\n function sa(t4, e2, i2, a2, s2, o2, r2) {\n const n2 = t4.context, l2 = n2.gl, h2 = i2.fbo;\n if (!h2) return;\n const c2 = t4.useProgram(\"hillshade\"), u2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(e2);\n n2.activeTexture.set(l2.TEXTURE0), l2.bindTexture(l2.TEXTURE_2D, h2.colorAttachment.get()), c2.draw(n2, l2.TRIANGLES, s2, o2, r2, ji.disabled, ((t5, e3, i3, a3) => {\n const s3 = i3.paint.get(\"hillshade-shadow-color\"), o3 = i3.paint.get(\"hillshade-highlight-color\"), r3 = i3.paint.get(\"hillshade-accent-color\");\n let n3 = i3.paint.get(\"hillshade-illumination-direction\") * (Math.PI / 180);\n \"viewport\" === i3.paint.get(\"hillshade-illumination-anchor\") && (n3 -= t5.transform.angle);\n const l3 = !t5.options.moving;\n return { u_matrix: a3 ? a3.posMatrix : t5.transform.calculatePosMatrix(e3.tileID.toUnwrapped(), l3), u_image: 0, u_latrange: Re(0, e3.tileID), u_light: [i3.paint.get(\"hillshade-exaggeration\"), n3], u_shadow: s3, u_highlight: o3, u_accent: r3 };\n })(t4, i2, a2, u2 ? e2 : null), u2, a2.id, t4.rasterBoundsBuffer, t4.quadTriangleIndexBuffer, t4.rasterBoundsSegments);\n }\n function oa(t4, i2, a2, s2, o2, r2) {\n const n2 = t4.context, l2 = n2.gl, h2 = i2.dem;\n if (h2 && h2.data) {\n const c2 = h2.dim, u2 = h2.stride, d2 = h2.getPixels();\n if (n2.activeTexture.set(l2.TEXTURE1), n2.pixelStoreUnpackPremultiplyAlpha.set(false), i2.demTexture = i2.demTexture || t4.getTileTexture(u2), i2.demTexture) {\n const t5 = i2.demTexture;\n t5.update(d2, { premultiply: false }), t5.bind(l2.NEAREST, l2.CLAMP_TO_EDGE);\n } else i2.demTexture = new b(n2, d2, l2.RGBA, { premultiply: false }), i2.demTexture.bind(l2.NEAREST, l2.CLAMP_TO_EDGE);\n n2.activeTexture.set(l2.TEXTURE0);\n let _2 = i2.fbo;\n if (!_2) {\n const t5 = new b(n2, { width: c2, height: c2, data: null }, l2.RGBA);\n t5.bind(l2.LINEAR, l2.CLAMP_TO_EDGE), _2 = i2.fbo = n2.createFramebuffer(c2, c2, true, false), _2.colorAttachment.set(t5.texture);\n }\n n2.bindFramebuffer.set(_2.framebuffer), n2.viewport.set([0, 0, c2, c2]), t4.useProgram(\"hillshadePrepare\").draw(n2, l2.TRIANGLES, s2, o2, r2, ji.disabled, ((t5, i3) => {\n const a3 = i3.stride, s3 = e.H();\n return e.aP(s3, 0, e.X, -e.X, 0, 0, 1), e.J(s3, s3, [0, -e.X, 0]), { u_matrix: s3, u_image: 1, u_dimension: [a3, a3], u_zoom: t5.overscaledZ, u_unpack: i3.getUnpackVector() };\n })(i2.tileID, h2), null, a2.id, t4.rasterBoundsBuffer, t4.quadTriangleIndexBuffer, t4.rasterBoundsSegments), i2.needsHillshadePrepare = false;\n }\n }\n function ra(t4, i2, a2, s2, r2, n2) {\n const l2 = s2.paint.get(\"raster-fade-duration\");\n if (!n2 && l2 > 0) {\n const s3 = o.now(), n3 = (s3 - t4.timeAdded) / l2, h2 = i2 ? (s3 - i2.timeAdded) / l2 : -1, c2 = a2.getSource(), u2 = r2.coveringZoomLevel({ tileSize: c2.tileSize, roundZoom: c2.roundZoom }), d2 = !i2 || Math.abs(i2.tileID.overscaledZ - u2) > Math.abs(t4.tileID.overscaledZ - u2), _2 = d2 && t4.refreshedUponExpiration ? 1 : e.ac(d2 ? n3 : 1 - h2, 0, 1);\n return t4.refreshedUponExpiration && n3 >= 1 && (t4.refreshedUponExpiration = false), i2 ? { opacity: 1, mix: 1 - _2 } : { opacity: _2, mix: 0 };\n }\n return { opacity: 1, mix: 0 };\n }\n const na = new e.aM(1, 0, 0, 1), la = new e.aM(0, 1, 0, 1), ha = new e.aM(0, 0, 1, 1), ca = new e.aM(1, 0, 1, 1), ua = new e.aM(0, 1, 1, 1);\n function da(t4, e2, i2, a2) {\n pa(t4, 0, e2 + i2 / 2, t4.transform.width, i2, a2);\n }\n function _a(t4, e2, i2, a2) {\n pa(t4, e2 - i2 / 2, 0, i2, t4.transform.height, a2);\n }\n function pa(t4, e2, i2, a2, s2, o2) {\n const r2 = t4.context, n2 = r2.gl;\n n2.enable(n2.SCISSOR_TEST), n2.scissor(e2 * t4.pixelRatio, i2 * t4.pixelRatio, a2 * t4.pixelRatio, s2 * t4.pixelRatio), r2.clear({ color: o2 }), n2.disable(n2.SCISSOR_TEST);\n }\n function ma(t4, i2, a2) {\n const s2 = t4.context, o2 = s2.gl, r2 = a2.posMatrix, n2 = t4.useProgram(\"debug\"), l2 = Oi.disabled, h2 = Ui.disabled, c2 = t4.colorModeForRenderPass(), u2 = \"$debug\", d2 = t4.style.map.terrain && t4.style.map.terrain.getTerrainData(a2);\n s2.activeTexture.set(o2.TEXTURE0);\n const _2 = i2.getTileByID(a2.key).latestRawTileData, p2 = Math.floor((_2 && _2.byteLength || 0) / 1024), m2 = i2.getTile(a2).tileSize, f2 = 512 / Math.min(m2, 512) * (a2.overscaledZ / t4.transform.zoom) * 0.5;\n let g2 = a2.canonical.toString();\n a2.overscaledZ !== a2.canonical.z && (g2 += ` => ${a2.overscaledZ}`), function(t5, e2) {\n t5.initDebugOverlayCanvas();\n const i3 = t5.debugOverlayCanvas, a3 = t5.context.gl, s3 = t5.debugOverlayCanvas.getContext(\"2d\");\n s3.clearRect(0, 0, i3.width, i3.height), s3.shadowColor = \"white\", s3.shadowBlur = 2, s3.lineWidth = 1.5, s3.strokeStyle = \"white\", s3.textBaseline = \"top\", s3.font = \"bold 36px Open Sans, sans-serif\", s3.fillText(e2, 5, 5), s3.strokeText(e2, 5, 5), t5.debugOverlayTexture.update(i3), t5.debugOverlayTexture.bind(a3.LINEAR, a3.CLAMP_TO_EDGE);\n }(t4, `${g2} ${p2}kB`), n2.draw(s2, o2.TRIANGLES, l2, h2, Fi.alphaBlended, ji.disabled, ze(r2, e.aM.transparent, f2), null, u2, t4.debugBuffer, t4.quadTriangleIndexBuffer, t4.debugSegments), n2.draw(s2, o2.LINE_STRIP, l2, h2, c2, ji.disabled, ze(r2, e.aM.red), d2, u2, t4.debugBuffer, t4.tileBorderIndexBuffer, t4.debugSegments);\n }\n function fa(t4, e2, i2) {\n const a2 = t4.context, s2 = a2.gl, o2 = t4.colorModeForRenderPass(), r2 = new Oi(s2.LEQUAL, Oi.ReadWrite, t4.depthRangeFor3D), n2 = t4.useProgram(\"terrain\"), l2 = e2.getTerrainMesh();\n a2.bindFramebuffer.set(null), a2.viewport.set([0, 0, t4.width, t4.height]);\n for (const h2 of i2) {\n const i3 = t4.renderToTexture.getTexture(h2), c2 = e2.getTerrainData(h2.tileID);\n a2.activeTexture.set(s2.TEXTURE0), s2.bindTexture(s2.TEXTURE_2D, i3.texture);\n const u2 = t4.transform.calculatePosMatrix(h2.tileID.toUnwrapped()), d2 = e2.getMeshFrameDelta(t4.transform.zoom), _2 = t4.transform.calculateFogMatrix(h2.tileID.toUnwrapped()), p2 = ge(u2, d2, _2, t4.style.sky, t4.transform.pitch);\n n2.draw(a2, s2.TRIANGLES, r2, Ui.disabled, o2, ji.backCCW, p2, c2, \"terrain\", l2.vertexBuffer, l2.indexBuffer, l2.segments);\n }\n }\n class ga {\n constructor(t4, e2, i2) {\n this.vertexBuffer = t4, this.indexBuffer = e2, this.segments = i2;\n }\n destroy() {\n this.vertexBuffer.destroy(), this.indexBuffer.destroy(), this.segments.destroy(), this.vertexBuffer = null, this.indexBuffer = null, this.segments = null;\n }\n }\n class va {\n constructor(t4, i2) {\n this.context = new Bi(t4), this.transform = i2, this._tileTextures = {}, this.terrainFacilitator = { dirty: true, matrix: e.an(new Float64Array(16)), renderTime: 0 }, this.setup(), this.numSublayers = ut.maxUnderzooming + ut.maxOverzooming + 1, this.depthEpsilon = 1 / Math.pow(2, 16), this.crossTileSymbolIndex = new he();\n }\n resize(t4, e2, i2) {\n if (this.width = Math.floor(t4 * i2), this.height = Math.floor(e2 * i2), this.pixelRatio = i2, this.context.viewport.set([0, 0, this.width, this.height]), this.style) for (const t5 of this.style._order) this.style._layers[t5].resize();\n }\n setup() {\n const t4 = this.context, i2 = new e.aX();\n i2.emplaceBack(0, 0), i2.emplaceBack(e.X, 0), i2.emplaceBack(0, e.X), i2.emplaceBack(e.X, e.X), this.tileExtentBuffer = t4.createVertexBuffer(i2, _e.members), this.tileExtentSegments = e.a0.simpleSegment(0, 0, 4, 2);\n const a2 = new e.aX();\n a2.emplaceBack(0, 0), a2.emplaceBack(e.X, 0), a2.emplaceBack(0, e.X), a2.emplaceBack(e.X, e.X), this.debugBuffer = t4.createVertexBuffer(a2, _e.members), this.debugSegments = e.a0.simpleSegment(0, 0, 4, 5);\n const s2 = new e.$();\n s2.emplaceBack(0, 0, 0, 0), s2.emplaceBack(e.X, 0, e.X, 0), s2.emplaceBack(0, e.X, 0, e.X), s2.emplaceBack(e.X, e.X, e.X, e.X), this.rasterBoundsBuffer = t4.createVertexBuffer(s2, Y.members), this.rasterBoundsSegments = e.a0.simpleSegment(0, 0, 4, 2);\n const o2 = new e.aX();\n o2.emplaceBack(0, 0), o2.emplaceBack(1, 0), o2.emplaceBack(0, 1), o2.emplaceBack(1, 1), this.viewportBuffer = t4.createVertexBuffer(o2, _e.members), this.viewportSegments = e.a0.simpleSegment(0, 0, 4, 2);\n const r2 = new e.aZ();\n r2.emplaceBack(0), r2.emplaceBack(1), r2.emplaceBack(3), r2.emplaceBack(2), r2.emplaceBack(0), this.tileBorderIndexBuffer = t4.createIndexBuffer(r2);\n const n2 = new e.aY();\n n2.emplaceBack(0, 1, 2), n2.emplaceBack(2, 1, 3), this.quadTriangleIndexBuffer = t4.createIndexBuffer(n2);\n const l2 = this.context.gl;\n this.stencilClearMode = new Ui({ func: l2.ALWAYS, mask: 0 }, 0, 255, l2.ZERO, l2.ZERO, l2.ZERO);\n }\n clearStencil() {\n const t4 = this.context, i2 = t4.gl;\n this.nextStencilID = 1, this.currentStencilSource = void 0;\n const a2 = e.H();\n e.aP(a2, 0, this.width, this.height, 0, 0, 1), e.K(a2, a2, [i2.drawingBufferWidth, i2.drawingBufferHeight, 0]), this.useProgram(\"clippingMask\").draw(t4, i2.TRIANGLES, Oi.disabled, this.stencilClearMode, Fi.disabled, ji.disabled, De(a2), null, \"$clipping\", this.viewportBuffer, this.quadTriangleIndexBuffer, this.viewportSegments);\n }\n _renderTileClippingMasks(t4, e2) {\n if (this.currentStencilSource === t4.source || !t4.isTileClipped() || !e2 || !e2.length) return;\n this.currentStencilSource = t4.source;\n const i2 = this.context, a2 = i2.gl;\n this.nextStencilID + e2.length > 256 && this.clearStencil(), i2.setColorMode(Fi.disabled), i2.setDepthMode(Oi.disabled);\n const s2 = this.useProgram(\"clippingMask\");\n this._tileClippingMaskIDs = {};\n for (const t5 of e2) {\n const e3 = this._tileClippingMaskIDs[t5.key] = this.nextStencilID++, o2 = this.style.map.terrain && this.style.map.terrain.getTerrainData(t5);\n s2.draw(i2, a2.TRIANGLES, Oi.disabled, new Ui({ func: a2.ALWAYS, mask: 0 }, e3, 255, a2.KEEP, a2.KEEP, a2.REPLACE), Fi.disabled, ji.disabled, De(t5.posMatrix), o2, \"$clipping\", this.tileExtentBuffer, this.quadTriangleIndexBuffer, this.tileExtentSegments);\n }\n }\n stencilModeFor3D() {\n this.currentStencilSource = void 0, this.nextStencilID + 1 > 256 && this.clearStencil();\n const t4 = this.nextStencilID++, e2 = this.context.gl;\n return new Ui({ func: e2.NOTEQUAL, mask: 255 }, t4, 255, e2.KEEP, e2.KEEP, e2.REPLACE);\n }\n stencilModeForClipping(t4) {\n const e2 = this.context.gl;\n return new Ui({ func: e2.EQUAL, mask: 255 }, this._tileClippingMaskIDs[t4.key], 0, e2.KEEP, e2.KEEP, e2.REPLACE);\n }\n stencilConfigForOverlap(t4) {\n const e2 = this.context.gl, i2 = t4.sort((t5, e3) => e3.overscaledZ - t5.overscaledZ), a2 = i2[i2.length - 1].overscaledZ, s2 = i2[0].overscaledZ - a2 + 1;\n if (s2 > 1) {\n this.currentStencilSource = void 0, this.nextStencilID + s2 > 256 && this.clearStencil();\n const t5 = {};\n for (let i3 = 0; i3 < s2; i3++) t5[i3 + a2] = new Ui({ func: e2.GEQUAL, mask: 255 }, i3 + this.nextStencilID, 255, e2.KEEP, e2.KEEP, e2.REPLACE);\n return this.nextStencilID += s2, [t5, i2];\n }\n return [{ [a2]: Ui.disabled }, i2];\n }\n colorModeForRenderPass() {\n const t4 = this.context.gl;\n if (this._showOverdrawInspector) {\n const i2 = 1 / 8;\n return new Fi([t4.CONSTANT_COLOR, t4.ONE], new e.aM(i2, i2, i2, 0), [true, true, true, true]);\n }\n return \"opaque\" === this.renderPass ? Fi.unblended : Fi.alphaBlended;\n }\n depthModeForSublayer(t4, e2, i2) {\n if (!this.opaquePassEnabledForLayer()) return Oi.disabled;\n const a2 = 1 - ((1 + this.currentLayer) * this.numSublayers + t4) * this.depthEpsilon;\n return new Oi(i2 || this.context.gl.LEQUAL, e2, [a2, a2]);\n }\n opaquePassEnabledForLayer() {\n return this.currentLayer < this.opaquePassCutoff;\n }\n render(t4, i2) {\n this.style = t4, this.options = i2, this.lineAtlas = t4.lineAtlas, this.imageManager = t4.imageManager, this.glyphManager = t4.glyphManager, this.symbolFadeChange = t4.placement.symbolFadeChange(o.now()), this.imageManager.beginFrame();\n const a2 = this.style._order, s2 = this.style.sourceCaches, r2 = {}, n2 = {}, l2 = {};\n for (const t5 in s2) {\n const e2 = s2[t5];\n e2.used && e2.prepare(this.context), r2[t5] = e2.getVisibleCoordinates(), n2[t5] = r2[t5].slice().reverse(), l2[t5] = e2.getVisibleCoordinates(true).reverse();\n }\n this.opaquePassCutoff = 1 / 0;\n for (let t5 = 0; t5 < a2.length; t5++) if (this.style._layers[a2[t5]].is3D()) {\n this.opaquePassCutoff = t5;\n break;\n }\n this.maybeDrawDepthAndCoords(false), this.renderToTexture && (this.renderToTexture.prepareForRender(this.style, this.transform.zoom), this.opaquePassCutoff = 0), this.renderPass = \"offscreen\";\n for (const t5 of a2) {\n const e2 = this.style._layers[t5];\n if (!e2.hasOffscreenPass() || e2.isHidden(this.transform.zoom)) continue;\n const i3 = n2[e2.source];\n (\"custom\" === e2.type || i3.length) && this.renderLayer(this, s2[e2.source], e2, i3);\n }\n if (this.context.bindFramebuffer.set(null), this.context.clear({ color: i2.showOverdrawInspector ? e.aM.black : e.aM.transparent, depth: 1 }), this.clearStencil(), this.style.sky && function(t5, i3) {\n const a3 = t5.context, s3 = a3.gl, o2 = ((t6, e2, i4) => ({ u_sky_color: t6.properties.get(\"sky-color\"), u_horizon_color: t6.properties.get(\"horizon-color\"), u_horizon: (e2.height / 2 + e2.getHorizon()) * i4, u_sky_horizon_blend: t6.properties.get(\"sky-horizon-blend\") * e2.height / 2 * i4 }))(i3, t5.style.map.transform, t5.pixelRatio), r3 = new Oi(s3.LEQUAL, Oi.ReadWrite, [0, 1]), n3 = Ui.disabled, l3 = t5.colorModeForRenderPass(), h2 = t5.useProgram(\"sky\");\n if (!i3.mesh) {\n const t6 = new e.aX();\n t6.emplaceBack(-1, -1), t6.emplaceBack(1, -1), t6.emplaceBack(1, 1), t6.emplaceBack(-1, 1);\n const s4 = new e.aY();\n s4.emplaceBack(0, 1, 2), s4.emplaceBack(0, 2, 3), i3.mesh = new ga(a3.createVertexBuffer(t6, _e.members), a3.createIndexBuffer(s4), e.a0.simpleSegment(0, 0, t6.length, s4.length));\n }\n h2.draw(a3, s3.TRIANGLES, r3, n3, l3, ji.disabled, o2, void 0, \"sky\", i3.mesh.vertexBuffer, i3.mesh.indexBuffer, i3.mesh.segments);\n }(this, this.style.sky), this._showOverdrawInspector = i2.showOverdrawInspector, this.depthRangeFor3D = [0, 1 - (t4._order.length + 2) * this.numSublayers * this.depthEpsilon], !this.renderToTexture) for (this.renderPass = \"opaque\", this.currentLayer = a2.length - 1; this.currentLayer >= 0; this.currentLayer--) {\n const t5 = this.style._layers[a2[this.currentLayer]], e2 = s2[t5.source], i3 = r2[t5.source];\n this._renderTileClippingMasks(t5, i3), this.renderLayer(this, e2, t5, i3);\n }\n for (this.renderPass = \"translucent\", this.currentLayer = 0; this.currentLayer < a2.length; this.currentLayer++) {\n const t5 = this.style._layers[a2[this.currentLayer]], e2 = s2[t5.source];\n if (this.renderToTexture && this.renderToTexture.renderLayer(t5)) continue;\n const i3 = (\"symbol\" === t5.type ? l2 : n2)[t5.source];\n this._renderTileClippingMasks(t5, r2[t5.source]), this.renderLayer(this, e2, t5, i3);\n }\n if (this.options.showTileBoundaries) {\n const t5 = function(t6, e2) {\n let i3 = null;\n const a3 = Object.values(t6._layers).flatMap((i4) => i4.source && !i4.isHidden(e2) ? [t6.sourceCaches[i4.source]] : []), s3 = a3.filter((t7) => \"vector\" === t7.getSource().type), o2 = a3.filter((t7) => \"vector\" !== t7.getSource().type), r3 = (t7) => {\n (!i3 || i3.getSource().maxzoom < t7.getSource().maxzoom) && (i3 = t7);\n };\n return s3.forEach((t7) => r3(t7)), i3 || o2.forEach((t7) => r3(t7)), i3;\n }(this.style, this.transform.zoom);\n t5 && function(t6, e2, i3) {\n for (let a3 = 0; a3 < i3.length; a3++) ma(t6, e2, i3[a3]);\n }(this, t5, t5.getVisibleCoordinates());\n }\n this.options.showPadding && function(t5) {\n const e2 = t5.transform.padding;\n da(t5, t5.transform.height - (e2.top || 0), 3, na), da(t5, e2.bottom || 0, 3, la), _a(t5, e2.left || 0, 3, ha), _a(t5, t5.transform.width - (e2.right || 0), 3, ca);\n const i3 = t5.transform.centerPoint;\n !function(t6, e3, i4, a3) {\n pa(t6, e3 - 1, i4 - 10, 2, 20, a3), pa(t6, e3 - 10, i4 - 1, 20, 2, a3);\n }(t5, i3.x, t5.transform.height - i3.y, ua);\n }(this), this.context.setDefault();\n }\n maybeDrawDepthAndCoords(t4) {\n if (!this.style || !this.style.map || !this.style.map.terrain) return;\n const i2 = this.terrainFacilitator.matrix, a2 = this.transform.modelViewProjectionMatrix;\n let s2 = this.terrainFacilitator.dirty;\n s2 || (s2 = t4 ? !e.a_(i2, a2) : !e.a$(i2, a2)), s2 || (s2 = this.style.map.terrain.sourceCache.tilesAfterTime(this.terrainFacilitator.renderTime).length > 0), s2 && (e.b0(i2, a2), this.terrainFacilitator.renderTime = Date.now(), this.terrainFacilitator.dirty = false, function(t5, i3) {\n const a3 = t5.context, s3 = a3.gl, o2 = Fi.unblended, r2 = new Oi(s3.LEQUAL, Oi.ReadWrite, [0, 1]), n2 = i3.getTerrainMesh(), l2 = i3.sourceCache.getRenderableTiles(), h2 = t5.useProgram(\"terrainDepth\");\n a3.bindFramebuffer.set(i3.getFramebuffer(\"depth\").framebuffer), a3.viewport.set([0, 0, t5.width / devicePixelRatio, t5.height / devicePixelRatio]), a3.clear({ color: e.aM.transparent, depth: 1 });\n for (const e2 of l2) {\n const l3 = i3.getTerrainData(e2.tileID), c2 = { u_matrix: t5.transform.calculatePosMatrix(e2.tileID.toUnwrapped()), u_ele_delta: i3.getMeshFrameDelta(t5.transform.zoom) };\n h2.draw(a3, s3.TRIANGLES, r2, Ui.disabled, o2, ji.backCCW, c2, l3, \"terrain\", n2.vertexBuffer, n2.indexBuffer, n2.segments);\n }\n a3.bindFramebuffer.set(null), a3.viewport.set([0, 0, t5.width, t5.height]);\n }(this, this.style.map.terrain), function(t5, i3) {\n const a3 = t5.context, s3 = a3.gl, o2 = Fi.unblended, r2 = new Oi(s3.LEQUAL, Oi.ReadWrite, [0, 1]), n2 = i3.getTerrainMesh(), l2 = i3.getCoordsTexture(), h2 = i3.sourceCache.getRenderableTiles(), c2 = t5.useProgram(\"terrainCoords\");\n a3.bindFramebuffer.set(i3.getFramebuffer(\"coords\").framebuffer), a3.viewport.set([0, 0, t5.width / devicePixelRatio, t5.height / devicePixelRatio]), a3.clear({ color: e.aM.transparent, depth: 1 }), i3.coordsIndex = [];\n for (const e2 of h2) {\n const h3 = i3.getTerrainData(e2.tileID);\n a3.activeTexture.set(s3.TEXTURE0), s3.bindTexture(s3.TEXTURE_2D, l2.texture);\n const u2 = { u_matrix: t5.transform.calculatePosMatrix(e2.tileID.toUnwrapped()), u_terrain_coords_id: (255 - i3.coordsIndex.length) / 255, u_texture: 0, u_ele_delta: i3.getMeshFrameDelta(t5.transform.zoom) };\n c2.draw(a3, s3.TRIANGLES, r2, Ui.disabled, o2, ji.backCCW, u2, h3, \"terrain\", n2.vertexBuffer, n2.indexBuffer, n2.segments), i3.coordsIndex.push(e2.tileID.key);\n }\n a3.bindFramebuffer.set(null), a3.viewport.set([0, 0, t5.width, t5.height]);\n }(this, this.style.map.terrain));\n }\n renderLayer(t4, i2, a2, s2) {\n if (!a2.isHidden(this.transform.zoom) && (\"background\" === a2.type || \"custom\" === a2.type || (s2 || []).length)) switch (this.id = a2.id, a2.type) {\n case \"symbol\":\n !function(t5, i3, a3, s3, o2) {\n if (\"translucent\" !== t5.renderPass) return;\n const r2 = Ui.disabled, n2 = t5.colorModeForRenderPass();\n (a3._unevaluatedLayout.hasValue(\"text-variable-anchor\") || a3._unevaluatedLayout.hasValue(\"text-variable-anchor-offset\")) && function(t6, i4, a4, s4, o3, r3, n3, l2, h2) {\n const c2 = i4.transform, u2 = ie(), d2 = \"map\" === o3, _2 = \"map\" === r3;\n for (const o4 of t6) {\n const t7 = s4.getTile(o4), r4 = t7.getBucket(a4);\n if (!r4 || !r4.text || !r4.text.segments.get().length) continue;\n const p2 = e.ag(r4.textSizeData, c2.zoom), m2 = Bt(t7, 1, i4.transform.zoom), f2 = gt(o4.posMatrix, _2, d2, i4.transform, m2), g2 = \"none\" !== a4.layout.get(\"icon-text-fit\") && r4.hasIconData();\n if (p2) {\n const e2 = Math.pow(2, c2.zoom - t7.tileID.overscaledZ), a5 = i4.style.map.terrain ? (t8, e3) => i4.style.map.terrain.getElevation(o4, t8, e3) : null, s5 = u2.translatePosition(c2, t7, n3, l2);\n Wi(r4, d2, _2, h2, c2, f2, o4.posMatrix, e2, p2, g2, u2, s5, o4.toUnwrapped(), a5);\n }\n }\n }(s3, t5, a3, i3, a3.layout.get(\"text-rotation-alignment\"), a3.layout.get(\"text-pitch-alignment\"), a3.paint.get(\"text-translate\"), a3.paint.get(\"text-translate-anchor\"), o2), 0 !== a3.paint.get(\"icon-opacity\").constantOr(1) && Xi(t5, i3, a3, s3, false, a3.paint.get(\"icon-translate\"), a3.paint.get(\"icon-translate-anchor\"), a3.layout.get(\"icon-rotation-alignment\"), a3.layout.get(\"icon-pitch-alignment\"), a3.layout.get(\"icon-keep-upright\"), r2, n2), 0 !== a3.paint.get(\"text-opacity\").constantOr(1) && Xi(t5, i3, a3, s3, true, a3.paint.get(\"text-translate\"), a3.paint.get(\"text-translate-anchor\"), a3.layout.get(\"text-rotation-alignment\"), a3.layout.get(\"text-pitch-alignment\"), a3.layout.get(\"text-keep-upright\"), r2, n2), i3.map.showCollisionBoxes && (qi(t5, i3, a3, s3, true), qi(t5, i3, a3, s3, false));\n }(t4, i2, a2, s2, this.style.placement.variableOffsets);\n break;\n case \"circle\":\n !function(t5, i3, a3, s3) {\n if (\"translucent\" !== t5.renderPass) return;\n const o2 = a3.paint.get(\"circle-opacity\"), r2 = a3.paint.get(\"circle-stroke-width\"), n2 = a3.paint.get(\"circle-stroke-opacity\"), l2 = !a3.layout.get(\"circle-sort-key\").isConstant();\n if (0 === o2.constantOr(1) && (0 === r2.constantOr(1) || 0 === n2.constantOr(1))) return;\n const h2 = t5.context, c2 = h2.gl, u2 = t5.depthModeForSublayer(0, Oi.ReadOnly), d2 = Ui.disabled, _2 = t5.colorModeForRenderPass(), p2 = [];\n for (let o3 = 0; o3 < s3.length; o3++) {\n const r3 = s3[o3], n3 = i3.getTile(r3), h3 = n3.getBucket(a3);\n if (!h3) continue;\n const c3 = h3.programConfigurations.get(a3.id), u3 = t5.useProgram(\"circle\", c3), d3 = h3.layoutVertexBuffer, _3 = h3.indexBuffer, m2 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(r3), f2 = { programConfiguration: c3, program: u3, layoutVertexBuffer: d3, indexBuffer: _3, uniformValues: Ce(t5, r3, n3, a3), terrainData: m2 };\n if (l2) {\n const t6 = h3.segments.get();\n for (const i4 of t6) p2.push({ segments: new e.a0([i4]), sortKey: i4.sortKey, state: f2 });\n } else p2.push({ segments: h3.segments, sortKey: 0, state: f2 });\n }\n l2 && p2.sort((t6, e2) => t6.sortKey - e2.sortKey);\n for (const e2 of p2) {\n const { programConfiguration: i4, program: s4, layoutVertexBuffer: o3, indexBuffer: r3, uniformValues: n3, terrainData: l3 } = e2.state;\n s4.draw(h2, c2.TRIANGLES, u2, d2, _2, ji.disabled, n3, l3, a3.id, o3, r3, e2.segments, a3.paint, t5.transform.zoom, i4);\n }\n }(t4, i2, a2, s2);\n break;\n case \"heatmap\":\n !function(t5, i3, a3, s3) {\n if (0 === a3.paint.get(\"heatmap-opacity\")) return;\n const o2 = t5.context;\n if (t5.style.map.terrain) {\n for (const e2 of s3) {\n const s4 = i3.getTile(e2);\n i3.hasRenderableParent(e2) || (\"offscreen\" === t5.renderPass ? Ji(t5, s4, a3, e2) : \"translucent\" === t5.renderPass && Yi(t5, a3, e2));\n }\n o2.viewport.set([0, 0, t5.width, t5.height]);\n } else \"offscreen\" === t5.renderPass ? function(t6, i4, a4, s4) {\n const o3 = t6.context, r2 = o3.gl, n2 = Ui.disabled, l2 = new Fi([r2.ONE, r2.ONE], e.aM.transparent, [true, true, true, true]);\n (function(t7, i5, a5) {\n const s5 = t7.gl;\n t7.activeTexture.set(s5.TEXTURE1), t7.viewport.set([0, 0, i5.width / 4, i5.height / 4]);\n let o4 = a5.heatmapFbos.get(e.aU);\n o4 ? (s5.bindTexture(s5.TEXTURE_2D, o4.colorAttachment.get()), t7.bindFramebuffer.set(o4.framebuffer)) : (o4 = Qi(t7, i5.width / 4, i5.height / 4), a5.heatmapFbos.set(e.aU, o4));\n })(o3, t6, a4), o3.clear({ color: e.aM.transparent });\n for (let e2 = 0; e2 < s4.length; e2++) {\n const h2 = s4[e2];\n if (i4.hasRenderableParent(h2)) continue;\n const c2 = i4.getTile(h2), u2 = c2.getBucket(a4);\n if (!u2) continue;\n const d2 = u2.programConfigurations.get(a4.id), _2 = t6.useProgram(\"heatmap\", d2), { zoom: p2 } = t6.transform;\n _2.draw(o3, r2.TRIANGLES, Oi.disabled, n2, l2, ji.disabled, Me(h2.posMatrix, c2, p2, a4.paint.get(\"heatmap-intensity\")), null, a4.id, u2.layoutVertexBuffer, u2.indexBuffer, u2.segments, a4.paint, t6.transform.zoom, d2);\n }\n o3.viewport.set([0, 0, t6.width, t6.height]);\n }(t5, i3, a3, s3) : \"translucent\" === t5.renderPass && function(t6, i4) {\n const a4 = t6.context, s4 = a4.gl;\n a4.setColorMode(t6.colorModeForRenderPass());\n const o3 = i4.heatmapFbos.get(e.aU);\n o3 && (a4.activeTexture.set(s4.TEXTURE0), s4.bindTexture(s4.TEXTURE_2D, o3.colorAttachment.get()), a4.activeTexture.set(s4.TEXTURE1), ta(a4, i4).bind(s4.LINEAR, s4.CLAMP_TO_EDGE), t6.useProgram(\"heatmapTexture\").draw(a4, s4.TRIANGLES, Oi.disabled, Ui.disabled, t6.colorModeForRenderPass(), ji.disabled, Ae(t6, i4, 0, 1), null, i4.id, t6.viewportBuffer, t6.quadTriangleIndexBuffer, t6.viewportSegments, i4.paint, t6.transform.zoom));\n }(t5, a3);\n }(t4, i2, a2, s2);\n break;\n case \"line\":\n !function(t5, i3, a3, s3) {\n if (\"translucent\" !== t5.renderPass) return;\n const o2 = a3.paint.get(\"line-opacity\"), r2 = a3.paint.get(\"line-width\");\n if (0 === o2.constantOr(1) || 0 === r2.constantOr(1)) return;\n const n2 = t5.depthModeForSublayer(0, Oi.ReadOnly), l2 = t5.colorModeForRenderPass(), h2 = a3.paint.get(\"line-dasharray\"), c2 = a3.paint.get(\"line-pattern\"), u2 = c2.constantOr(1), d2 = a3.paint.get(\"line-gradient\"), _2 = a3.getCrossfadeParameters(), p2 = u2 ? \"linePattern\" : h2 ? \"lineSDF\" : d2 ? \"lineGradient\" : \"line\", m2 = t5.context, f2 = m2.gl;\n let g2 = true;\n for (const o3 of s3) {\n const s4 = i3.getTile(o3);\n if (u2 && !s4.patternsLoaded()) continue;\n const r3 = s4.getBucket(a3);\n if (!r3) continue;\n const v2 = r3.programConfigurations.get(a3.id), x2 = t5.context.program.get(), y2 = t5.useProgram(p2, v2), w2 = g2 || y2.program !== x2, T2 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(o3), I2 = c2.constantOr(null);\n if (I2 && s4.imageAtlas) {\n const t6 = s4.imageAtlas, e2 = t6.patternPositions[I2.to.toString()], i4 = t6.patternPositions[I2.from.toString()];\n e2 && i4 && v2.setConstantPatternPositions(e2, i4);\n }\n const E3 = T2 ? o3 : null, P2 = u2 ? Fe(t5, s4, a3, _2, E3) : h2 ? Be(t5, s4, a3, h2, _2, E3) : d2 ? Le(t5, s4, a3, r3.lineClipsArray.length, E3) : ke(t5, s4, a3, E3);\n if (u2) m2.activeTexture.set(f2.TEXTURE0), s4.imageAtlasTexture.bind(f2.LINEAR, f2.CLAMP_TO_EDGE), v2.updatePaintBuffers(_2);\n else if (h2 && (w2 || t5.lineAtlas.dirty)) m2.activeTexture.set(f2.TEXTURE0), t5.lineAtlas.bind(m2);\n else if (d2) {\n const s5 = r3.gradients[a3.id];\n let n3 = s5.texture;\n if (a3.gradientVersion !== s5.version) {\n let l3 = 256;\n if (a3.stepInterpolant) {\n const a4 = i3.getSource().maxzoom, s6 = o3.canonical.z === a4 ? Math.ceil(1 << t5.transform.maxZoom - o3.canonical.z) : 1;\n l3 = e.ac(e.aV(r3.maxLineLength / e.X * 1024 * s6), 256, m2.maxTextureSize);\n }\n s5.gradient = e.aW({ expression: a3.gradientExpression(), evaluationKey: \"lineProgress\", resolution: l3, image: s5.gradient || void 0, clips: r3.lineClipsArray }), s5.texture ? s5.texture.update(s5.gradient) : s5.texture = new b(m2, s5.gradient, f2.RGBA), s5.version = a3.gradientVersion, n3 = s5.texture;\n }\n m2.activeTexture.set(f2.TEXTURE0), n3.bind(a3.stepInterpolant ? f2.NEAREST : f2.LINEAR, f2.CLAMP_TO_EDGE);\n }\n y2.draw(m2, f2.TRIANGLES, n2, t5.stencilModeForClipping(o3), l2, ji.disabled, P2, T2, a3.id, r3.layoutVertexBuffer, r3.indexBuffer, r3.segments, a3.paint, t5.transform.zoom, v2, r3.layoutVertexBuffer2), g2 = false;\n }\n }(t4, i2, a2, s2);\n break;\n case \"fill\":\n !function(t5, i3, a3, s3) {\n const o2 = a3.paint.get(\"fill-color\"), r2 = a3.paint.get(\"fill-opacity\");\n if (0 === r2.constantOr(1)) return;\n const n2 = t5.colorModeForRenderPass(), l2 = a3.paint.get(\"fill-pattern\"), h2 = t5.opaquePassEnabledForLayer() && !l2.constantOr(1) && 1 === o2.constantOr(e.aM.transparent).a && 1 === r2.constantOr(0) ? \"opaque\" : \"translucent\";\n if (t5.renderPass === h2) {\n const e2 = t5.depthModeForSublayer(1, \"opaque\" === t5.renderPass ? Oi.ReadWrite : Oi.ReadOnly);\n ia(t5, i3, a3, s3, e2, n2, false);\n }\n if (\"translucent\" === t5.renderPass && a3.paint.get(\"fill-antialias\")) {\n const e2 = t5.depthModeForSublayer(a3.getPaintProperty(\"fill-outline-color\") ? 2 : 0, Oi.ReadOnly);\n ia(t5, i3, a3, s3, e2, n2, true);\n }\n }(t4, i2, a2, s2);\n break;\n case \"fill-extrusion\":\n !function(t5, e2, i3, a3) {\n const s3 = i3.paint.get(\"fill-extrusion-opacity\");\n if (0 !== s3 && \"translucent\" === t5.renderPass) {\n const o2 = new Oi(t5.context.gl.LEQUAL, Oi.ReadWrite, t5.depthRangeFor3D);\n if (1 !== s3 || i3.paint.get(\"fill-extrusion-pattern\").constantOr(1)) aa(t5, e2, i3, a3, o2, Ui.disabled, Fi.disabled), aa(t5, e2, i3, a3, o2, t5.stencilModeFor3D(), t5.colorModeForRenderPass());\n else {\n const s4 = t5.colorModeForRenderPass();\n aa(t5, e2, i3, a3, o2, Ui.disabled, s4);\n }\n }\n }(t4, i2, a2, s2);\n break;\n case \"hillshade\":\n !function(t5, e2, i3, a3) {\n if (\"offscreen\" !== t5.renderPass && \"translucent\" !== t5.renderPass) return;\n const s3 = t5.context, o2 = t5.depthModeForSublayer(0, Oi.ReadOnly), r2 = t5.colorModeForRenderPass(), [n2, l2] = \"translucent\" === t5.renderPass ? t5.stencilConfigForOverlap(a3) : [{}, a3];\n for (const a4 of l2) {\n const s4 = e2.getTile(a4);\n void 0 !== s4.needsHillshadePrepare && s4.needsHillshadePrepare && \"offscreen\" === t5.renderPass ? oa(t5, s4, i3, o2, Ui.disabled, r2) : \"translucent\" === t5.renderPass && sa(t5, a4, s4, i3, o2, n2[a4.overscaledZ], r2);\n }\n s3.viewport.set([0, 0, t5.width, t5.height]);\n }(t4, i2, a2, s2);\n break;\n case \"raster\":\n !function(t5, e2, i3, a3) {\n if (\"translucent\" !== t5.renderPass) return;\n if (0 === i3.paint.get(\"raster-opacity\")) return;\n if (!a3.length) return;\n const s3 = t5.context, o2 = s3.gl, r2 = e2.getSource(), n2 = t5.useProgram(\"raster\"), l2 = t5.colorModeForRenderPass(), [h2, c2] = r2 instanceof Q ? [{}, a3] : t5.stencilConfigForOverlap(a3), u2 = c2[c2.length - 1].overscaledZ, d2 = !t5.options.moving;\n for (const a4 of c2) {\n const c3 = t5.depthModeForSublayer(a4.overscaledZ - u2, 1 === i3.paint.get(\"raster-opacity\") ? Oi.ReadWrite : Oi.ReadOnly, o2.LESS), _2 = e2.getTile(a4);\n _2.registerFadeDuration(i3.paint.get(\"raster-fade-duration\"));\n const p2 = e2.findLoadedParent(a4, 0), m2 = e2.findLoadedSibling(a4), f2 = ra(_2, p2 || m2 || null, e2, i3, t5.transform, t5.style.map.terrain);\n let g2, v2;\n const x2 = \"nearest\" === i3.paint.get(\"raster-resampling\") ? o2.NEAREST : o2.LINEAR;\n s3.activeTexture.set(o2.TEXTURE0), _2.texture.bind(x2, o2.CLAMP_TO_EDGE, o2.LINEAR_MIPMAP_NEAREST), s3.activeTexture.set(o2.TEXTURE1), p2 ? (p2.texture.bind(x2, o2.CLAMP_TO_EDGE, o2.LINEAR_MIPMAP_NEAREST), g2 = Math.pow(2, p2.tileID.overscaledZ - _2.tileID.overscaledZ), v2 = [_2.tileID.canonical.x * g2 % 1, _2.tileID.canonical.y * g2 % 1]) : _2.texture.bind(x2, o2.CLAMP_TO_EDGE, o2.LINEAR_MIPMAP_NEAREST), _2.texture.useMipmap && s3.extTextureFilterAnisotropic && t5.transform.pitch > 20 && o2.texParameterf(o2.TEXTURE_2D, s3.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, s3.extTextureFilterAnisotropicMax);\n const y2 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(a4), b2 = y2 ? a4 : null, w2 = b2 ? b2.posMatrix : t5.transform.calculatePosMatrix(a4.toUnwrapped(), d2), T2 = Ue(w2, v2 || [0, 0], g2 || 1, f2, i3);\n r2 instanceof Q ? n2.draw(s3, o2.TRIANGLES, c3, Ui.disabled, l2, ji.disabled, T2, y2, i3.id, r2.boundsBuffer, t5.quadTriangleIndexBuffer, r2.boundsSegments) : n2.draw(s3, o2.TRIANGLES, c3, h2[a4.overscaledZ], l2, ji.disabled, T2, y2, i3.id, t5.rasterBoundsBuffer, t5.quadTriangleIndexBuffer, t5.rasterBoundsSegments);\n }\n }(t4, i2, a2, s2);\n break;\n case \"background\":\n !function(t5, e2, i3, a3) {\n const s3 = i3.paint.get(\"background-color\"), o2 = i3.paint.get(\"background-opacity\");\n if (0 === o2) return;\n const r2 = t5.context, n2 = r2.gl, l2 = t5.transform, h2 = l2.tileSize, c2 = i3.paint.get(\"background-pattern\");\n if (t5.isPatternMissing(c2)) return;\n const u2 = !c2 && 1 === s3.a && 1 === o2 && t5.opaquePassEnabledForLayer() ? \"opaque\" : \"translucent\";\n if (t5.renderPass !== u2) return;\n const d2 = Ui.disabled, _2 = t5.depthModeForSublayer(0, \"opaque\" === u2 ? Oi.ReadWrite : Oi.ReadOnly), p2 = t5.colorModeForRenderPass(), m2 = t5.useProgram(c2 ? \"backgroundPattern\" : \"background\"), f2 = a3 || l2.coveringTiles({ tileSize: h2, terrain: t5.style.map.terrain });\n c2 && (r2.activeTexture.set(n2.TEXTURE0), t5.imageManager.bind(t5.context));\n const g2 = i3.getCrossfadeParameters();\n for (const e3 of f2) {\n const l3 = a3 ? e3.posMatrix : t5.transform.calculatePosMatrix(e3.toUnwrapped()), u3 = c2 ? He(l3, o2, t5, c2, { tileID: e3, tileSize: h2 }, g2) : Ge(l3, o2, s3), f3 = t5.style.map.terrain && t5.style.map.terrain.getTerrainData(e3);\n m2.draw(r2, n2.TRIANGLES, _2, d2, p2, ji.disabled, u3, f3, i3.id, t5.tileExtentBuffer, t5.quadTriangleIndexBuffer, t5.tileExtentSegments);\n }\n }(t4, 0, a2, s2);\n break;\n case \"custom\":\n !function(t5, e2, i3) {\n const a3 = t5.context, s3 = i3.implementation;\n if (\"offscreen\" === t5.renderPass) {\n const e3 = s3.prerender;\n e3 && (t5.setCustomLayerDefaults(), a3.setColorMode(t5.colorModeForRenderPass()), e3.call(s3, a3.gl, t5.transform.customLayerMatrix()), a3.setDirty(), t5.setBaseState());\n } else if (\"translucent\" === t5.renderPass) {\n t5.setCustomLayerDefaults(), a3.setColorMode(t5.colorModeForRenderPass()), a3.setStencilMode(Ui.disabled);\n const e3 = \"3d\" === s3.renderingMode ? new Oi(t5.context.gl.LEQUAL, Oi.ReadWrite, t5.depthRangeFor3D) : t5.depthModeForSublayer(0, Oi.ReadOnly);\n a3.setDepthMode(e3), s3.render(a3.gl, t5.transform.customLayerMatrix(), { farZ: t5.transform.farZ, nearZ: t5.transform.nearZ, fov: t5.transform._fov, modelViewProjectionMatrix: t5.transform.modelViewProjectionMatrix, projectionMatrix: t5.transform.projectionMatrix }), a3.setDirty(), t5.setBaseState(), a3.bindFramebuffer.set(null);\n }\n }(t4, 0, a2);\n }\n }\n translatePosMatrix(t4, i2, a2, s2, o2) {\n if (!a2[0] && !a2[1]) return t4;\n const r2 = o2 ? \"map\" === s2 ? this.transform.angle : 0 : \"viewport\" === s2 ? -this.transform.angle : 0;\n if (r2) {\n const t5 = Math.sin(r2), e2 = Math.cos(r2);\n a2 = [a2[0] * e2 - a2[1] * t5, a2[0] * t5 + a2[1] * e2];\n }\n const n2 = [o2 ? a2[0] : Bt(i2, a2[0], this.transform.zoom), o2 ? a2[1] : Bt(i2, a2[1], this.transform.zoom), 0], l2 = new Float32Array(16);\n return e.J(l2, t4, n2), l2;\n }\n saveTileTexture(t4) {\n const e2 = this._tileTextures[t4.size[0]];\n e2 ? e2.push(t4) : this._tileTextures[t4.size[0]] = [t4];\n }\n getTileTexture(t4) {\n const e2 = this._tileTextures[t4];\n return e2 && e2.length > 0 ? e2.pop() : null;\n }\n isPatternMissing(t4) {\n if (!t4) return false;\n if (!t4.from || !t4.to) return true;\n const e2 = this.imageManager.getPattern(t4.from.toString()), i2 = this.imageManager.getPattern(t4.to.toString());\n return !e2 || !i2;\n }\n useProgram(t4, e2) {\n this.cache = this.cache || {};\n const i2 = t4 + (e2 ? e2.cacheKey : \"\") + (this._showOverdrawInspector ? \"/overdraw\" : \"\") + (this.style.map.terrain ? \"/terrain\" : \"\");\n return this.cache[i2] || (this.cache[i2] = new xe(this.context, pe[t4], e2, We[t4], this._showOverdrawInspector, this.style.map.terrain)), this.cache[i2];\n }\n setCustomLayerDefaults() {\n this.context.unbindVAO(), this.context.cullFace.setDefault(), this.context.activeTexture.setDefault(), this.context.pixelStoreUnpack.setDefault(), this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(), this.context.pixelStoreUnpackFlipY.setDefault();\n }\n setBaseState() {\n const t4 = this.context.gl;\n this.context.cullFace.set(false), this.context.viewport.set([0, 0, this.width, this.height]), this.context.blendEquation.set(t4.FUNC_ADD);\n }\n initDebugOverlayCanvas() {\n null == this.debugOverlayCanvas && (this.debugOverlayCanvas = document.createElement(\"canvas\"), this.debugOverlayCanvas.width = 512, this.debugOverlayCanvas.height = 512, this.debugOverlayTexture = new b(this.context, this.debugOverlayCanvas, this.context.gl.RGBA));\n }\n destroy() {\n this.debugOverlayTexture && this.debugOverlayTexture.destroy();\n }\n overLimit() {\n const { drawingBufferWidth: t4, drawingBufferHeight: e2 } = this.context.gl;\n return this.width !== t4 || this.height !== e2;\n }\n }\n class xa {\n constructor(t4, e2) {\n this.points = t4, this.planes = e2;\n }\n static fromInvProjectionMatrix(t4, i2, a2) {\n const s2 = Math.pow(2, a2), o2 = [[-1, 1, -1, 1], [1, 1, -1, 1], [1, -1, -1, 1], [-1, -1, -1, 1], [-1, 1, 1, 1], [1, 1, 1, 1], [1, -1, 1, 1], [-1, -1, 1, 1]].map((a3) => {\n const o3 = 1 / (a3 = e.af([], a3, t4))[3] / i2 * s2;\n return e.b1(a3, a3, [o3, o3, 1 / a3[3], o3]);\n }), r2 = [[0, 1, 2], [6, 5, 4], [0, 3, 7], [2, 1, 5], [3, 2, 6], [0, 4, 5]].map((t5) => {\n const e2 = function(t6, e3) {\n var i4 = e3[0], a4 = e3[1], s4 = e3[2], o3 = i4 * i4 + a4 * a4 + s4 * s4;\n return o3 > 0 && (o3 = 1 / Math.sqrt(o3)), t6[0] = e3[0] * o3, t6[1] = e3[1] * o3, t6[2] = e3[2] * o3, t6;\n }([], function(t6, e3, i4) {\n var a4 = e3[0], s4 = e3[1], o3 = e3[2], r3 = i4[0], n2 = i4[1], l2 = i4[2];\n return t6[0] = s4 * l2 - o3 * n2, t6[1] = o3 * r3 - a4 * l2, t6[2] = a4 * n2 - s4 * r3, t6;\n }([], g([], o2[t5[0]], o2[t5[1]]), g([], o2[t5[2]], o2[t5[1]]))), i3 = -((a3 = e2)[0] * (s3 = o2[t5[1]])[0] + a3[1] * s3[1] + a3[2] * s3[2]);\n var a3, s3;\n return e2.concat(i3);\n });\n return new xa(o2, r2);\n }\n }\n class ya {\n constructor(t4, e2) {\n this.min = t4, this.max = e2, this.center = function(t5, e3, i2) {\n return t5[0] = 0.5 * e3[0], t5[1] = 0.5 * e3[1], t5[2] = 0.5 * e3[2], t5;\n }([], function(t5, e3, i2) {\n return t5[0] = e3[0] + i2[0], t5[1] = e3[1] + i2[1], t5[2] = e3[2] + i2[2], t5;\n }([], this.min, this.max));\n }\n quadrant(t4) {\n const e2 = [t4 % 2 == 0, t4 < 2], i2 = m(this.min), a2 = m(this.max);\n for (let t5 = 0; t5 < e2.length; t5++) i2[t5] = e2[t5] ? this.min[t5] : this.center[t5], a2[t5] = e2[t5] ? this.center[t5] : this.max[t5];\n return a2[2] = this.max[2], new ya(i2, a2);\n }\n distanceX(t4) {\n return Math.max(Math.min(this.max[0], t4[0]), this.min[0]) - t4[0];\n }\n distanceY(t4) {\n return Math.max(Math.min(this.max[1], t4[1]), this.min[1]) - t4[1];\n }\n intersects(t4) {\n const i2 = [[this.min[0], this.min[1], this.min[2], 1], [this.max[0], this.min[1], this.min[2], 1], [this.max[0], this.max[1], this.min[2], 1], [this.min[0], this.max[1], this.min[2], 1], [this.min[0], this.min[1], this.max[2], 1], [this.max[0], this.min[1], this.max[2], 1], [this.max[0], this.max[1], this.max[2], 1], [this.min[0], this.max[1], this.max[2], 1]];\n let a2 = true;\n for (let s2 = 0; s2 < t4.planes.length; s2++) {\n const o2 = t4.planes[s2];\n let r2 = 0;\n for (let t5 = 0; t5 < i2.length; t5++) e.b2(o2, i2[t5]) >= 0 && r2++;\n if (0 === r2) return 0;\n r2 !== i2.length && (a2 = false);\n }\n if (a2) return 2;\n for (let e2 = 0; e2 < 3; e2++) {\n let i3 = Number.MAX_VALUE, a3 = -Number.MAX_VALUE;\n for (let s2 = 0; s2 < t4.points.length; s2++) {\n const o2 = t4.points[s2][e2] - this.min[e2];\n i3 = Math.min(i3, o2), a3 = Math.max(a3, o2);\n }\n if (a3 < 0 || i3 > this.max[e2] - this.min[e2]) return 0;\n }\n return 1;\n }\n }\n class ba {\n constructor(t4 = 0, e2 = 0, i2 = 0, a2 = 0) {\n if (isNaN(t4) || t4 < 0 || isNaN(e2) || e2 < 0 || isNaN(i2) || i2 < 0 || isNaN(a2) || a2 < 0) throw new Error(\"Invalid value for edge-insets, top, bottom, left and right must all be numbers\");\n this.top = t4, this.bottom = e2, this.left = i2, this.right = a2;\n }\n interpolate(t4, i2, a2) {\n return null != i2.top && null != t4.top && (this.top = e.y.number(t4.top, i2.top, a2)), null != i2.bottom && null != t4.bottom && (this.bottom = e.y.number(t4.bottom, i2.bottom, a2)), null != i2.left && null != t4.left && (this.left = e.y.number(t4.left, i2.left, a2)), null != i2.right && null != t4.right && (this.right = e.y.number(t4.right, i2.right, a2)), this;\n }\n getCenter(t4, i2) {\n const a2 = e.ac((this.left + t4 - this.right) / 2, 0, t4), s2 = e.ac((this.top + i2 - this.bottom) / 2, 0, i2);\n return new e.P(a2, s2);\n }\n equals(t4) {\n return this.top === t4.top && this.bottom === t4.bottom && this.left === t4.left && this.right === t4.right;\n }\n clone() {\n return new ba(this.top, this.bottom, this.left, this.right);\n }\n toJSON() {\n return { top: this.top, bottom: this.bottom, left: this.left, right: this.right };\n }\n }\n const wa = 85.051129;\n class Ta {\n constructor(t4, i2, a2, s2, o2) {\n this.tileSize = 512, this._renderWorldCopies = void 0 === o2 || !!o2, this._minZoom = t4 || 0, this._maxZoom = i2 || 22, this._minPitch = null == a2 ? 0 : a2, this._maxPitch = null == s2 ? 60 : s2, this.setMaxBounds(), this.width = 0, this.height = 0, this._center = new e.N(0, 0), this._elevation = 0, this.zoom = 0, this.angle = 0, this._fov = 0.6435011087932844, this._pitch = 0, this._unmodified = true, this._edgeInsets = new ba(), this._posMatrixCache = {}, this._alignedPosMatrixCache = {}, this._fogMatrixCache = {}, this.minElevationForCurrentTile = 0;\n }\n clone() {\n const t4 = new Ta(this._minZoom, this._maxZoom, this._minPitch, this.maxPitch, this._renderWorldCopies);\n return t4.apply(this), t4;\n }\n apply(t4) {\n this.tileSize = t4.tileSize, this.latRange = t4.latRange, this.lngRange = t4.lngRange, this.width = t4.width, this.height = t4.height, this._center = t4._center, this._elevation = t4._elevation, this.minElevationForCurrentTile = t4.minElevationForCurrentTile, this.zoom = t4.zoom, this.angle = t4.angle, this._fov = t4._fov, this._pitch = t4._pitch, this._unmodified = t4._unmodified, this._edgeInsets = t4._edgeInsets.clone(), this._calcMatrices();\n }\n get minZoom() {\n return this._minZoom;\n }\n set minZoom(t4) {\n this._minZoom !== t4 && (this._minZoom = t4, this.zoom = Math.max(this.zoom, t4));\n }\n get maxZoom() {\n return this._maxZoom;\n }\n set maxZoom(t4) {\n this._maxZoom !== t4 && (this._maxZoom = t4, this.zoom = Math.min(this.zoom, t4));\n }\n get minPitch() {\n return this._minPitch;\n }\n set minPitch(t4) {\n this._minPitch !== t4 && (this._minPitch = t4, this.pitch = Math.max(this.pitch, t4));\n }\n get maxPitch() {\n return this._maxPitch;\n }\n set maxPitch(t4) {\n this._maxPitch !== t4 && (this._maxPitch = t4, this.pitch = Math.min(this.pitch, t4));\n }\n get renderWorldCopies() {\n return this._renderWorldCopies;\n }\n set renderWorldCopies(t4) {\n void 0 === t4 ? t4 = true : null === t4 && (t4 = false), this._renderWorldCopies = t4;\n }\n get worldSize() {\n return this.tileSize * this.scale;\n }\n get centerOffset() {\n return this.centerPoint._sub(this.size._div(2));\n }\n get size() {\n return new e.P(this.width, this.height);\n }\n get bearing() {\n return -this.angle / Math.PI * 180;\n }\n set bearing(t4) {\n const i2 = -e.b3(t4, -180, 180) * Math.PI / 180;\n this.angle !== i2 && (this._unmodified = false, this.angle = i2, this._calcMatrices(), this.rotationMatrix = function() {\n var t5 = new e.A(4);\n return e.A != Float32Array && (t5[1] = 0, t5[2] = 0), t5[0] = 1, t5[3] = 1, t5;\n }(), function(t5, e2, i3) {\n var a2 = e2[0], s2 = e2[1], o2 = e2[2], r2 = e2[3], n2 = Math.sin(i3), l2 = Math.cos(i3);\n t5[0] = a2 * l2 + o2 * n2, t5[1] = s2 * l2 + r2 * n2, t5[2] = a2 * -n2 + o2 * l2, t5[3] = s2 * -n2 + r2 * l2;\n }(this.rotationMatrix, this.rotationMatrix, this.angle));\n }\n get pitch() {\n return this._pitch / Math.PI * 180;\n }\n set pitch(t4) {\n const i2 = e.ac(t4, this.minPitch, this.maxPitch) / 180 * Math.PI;\n this._pitch !== i2 && (this._unmodified = false, this._pitch = i2, this._calcMatrices());\n }\n get fov() {\n return this._fov / Math.PI * 180;\n }\n set fov(t4) {\n t4 = Math.max(0.01, Math.min(60, t4)), this._fov !== t4 && (this._unmodified = false, this._fov = t4 / 180 * Math.PI, this._calcMatrices());\n }\n get zoom() {\n return this._zoom;\n }\n set zoom(t4) {\n const e2 = Math.min(Math.max(t4, this.minZoom), this.maxZoom);\n this._zoom !== e2 && (this._unmodified = false, this._zoom = e2, this.tileZoom = Math.max(0, Math.floor(e2)), this.scale = this.zoomScale(e2), this._constrain(), this._calcMatrices());\n }\n get center() {\n return this._center;\n }\n set center(t4) {\n t4.lat === this._center.lat && t4.lng === this._center.lng || (this._unmodified = false, this._center = t4, this._constrain(), this._calcMatrices());\n }\n get elevation() {\n return this._elevation;\n }\n set elevation(t4) {\n t4 !== this._elevation && (this._elevation = t4, this._constrain(), this._calcMatrices());\n }\n get padding() {\n return this._edgeInsets.toJSON();\n }\n set padding(t4) {\n this._edgeInsets.equals(t4) || (this._unmodified = false, this._edgeInsets.interpolate(this._edgeInsets, t4, 1), this._calcMatrices());\n }\n get centerPoint() {\n return this._edgeInsets.getCenter(this.width, this.height);\n }\n isPaddingEqual(t4) {\n return this._edgeInsets.equals(t4);\n }\n interpolatePadding(t4, e2, i2) {\n this._unmodified = false, this._edgeInsets.interpolate(t4, e2, i2), this._constrain(), this._calcMatrices();\n }\n coveringZoomLevel(t4) {\n const e2 = (t4.roundZoom ? Math.round : Math.floor)(this.zoom + this.scaleZoom(this.tileSize / t4.tileSize));\n return Math.max(0, e2);\n }\n getVisibleUnwrappedCoordinates(t4) {\n const i2 = [new e.b4(0, t4)];\n if (this._renderWorldCopies) {\n const a2 = this.pointCoordinate(new e.P(0, 0)), s2 = this.pointCoordinate(new e.P(this.width, 0)), o2 = this.pointCoordinate(new e.P(this.width, this.height)), r2 = this.pointCoordinate(new e.P(0, this.height)), n2 = Math.floor(Math.min(a2.x, s2.x, o2.x, r2.x)), l2 = Math.floor(Math.max(a2.x, s2.x, o2.x, r2.x)), h2 = 1;\n for (let a3 = n2 - h2; a3 <= l2 + h2; a3++) 0 !== a3 && i2.push(new e.b4(a3, t4));\n }\n return i2;\n }\n coveringTiles(t4) {\n var i2, a2;\n let s2 = this.coveringZoomLevel(t4);\n const o2 = s2;\n if (void 0 !== t4.minzoom && s2 < t4.minzoom) return [];\n void 0 !== t4.maxzoom && s2 > t4.maxzoom && (s2 = t4.maxzoom);\n const r2 = this.pointCoordinate(this.getCameraPoint()), n2 = e.Z.fromLngLat(this.center), l2 = Math.pow(2, s2), h2 = [l2 * r2.x, l2 * r2.y, 0], c2 = [l2 * n2.x, l2 * n2.y, 0], u2 = xa.fromInvProjectionMatrix(this.invModelViewProjectionMatrix, this.worldSize, s2);\n let d2 = t4.minzoom || 0;\n !t4.terrain && this.pitch <= 60 && this._edgeInsets.top < 0.1 && (d2 = s2);\n const _2 = t4.terrain ? 2 / Math.min(this.tileSize, t4.tileSize) * this.tileSize : 3, p2 = (t5) => ({ aabb: new ya([t5 * l2, 0, 0], [(t5 + 1) * l2, l2, 0]), zoom: 0, x: 0, y: 0, wrap: t5, fullyVisible: false }), m2 = [], f2 = [], g2 = s2, x2 = t4.reparseOverscaled ? o2 : s2;\n if (this._renderWorldCopies) for (let t5 = 1; t5 <= 3; t5++) m2.push(p2(-t5)), m2.push(p2(t5));\n for (m2.push(p2(0)); m2.length > 0; ) {\n const s3 = m2.pop(), o3 = s3.x, r3 = s3.y;\n let n3 = s3.fullyVisible;\n if (!n3) {\n const t5 = s3.aabb.intersects(u2);\n if (0 === t5) continue;\n n3 = 2 === t5;\n }\n const l3 = t4.terrain ? h2 : c2, p3 = s3.aabb.distanceX(l3), y2 = s3.aabb.distanceY(l3), b2 = Math.max(Math.abs(p3), Math.abs(y2));\n if (s3.zoom === g2 || b2 > _2 + (1 << g2 - s3.zoom) - 2 && s3.zoom >= d2) {\n const t5 = g2 - s3.zoom, i3 = h2[0] - 0.5 - (o3 << t5), a3 = h2[1] - 0.5 - (r3 << t5);\n f2.push({ tileID: new e.S(s3.zoom === g2 ? x2 : s3.zoom, s3.wrap, s3.zoom, o3, r3), distanceSq: v([c2[0] - 0.5 - o3, c2[1] - 0.5 - r3]), tileDistanceToCamera: Math.sqrt(i3 * i3 + a3 * a3) });\n } else for (let l4 = 0; l4 < 4; l4++) {\n const h3 = (o3 << 1) + l4 % 2, c3 = (r3 << 1) + (l4 >> 1), u3 = s3.zoom + 1;\n let d3 = s3.aabb.quadrant(l4);\n if (t4.terrain) {\n const o4 = new e.S(u3, s3.wrap, u3, h3, c3), r4 = t4.terrain.getMinMaxElevation(o4), n4 = null !== (i2 = r4.minElevation) && void 0 !== i2 ? i2 : this.elevation, l5 = null !== (a2 = r4.maxElevation) && void 0 !== a2 ? a2 : this.elevation;\n d3 = new ya([d3.min[0], d3.min[1], n4], [d3.max[0], d3.max[1], l5]);\n }\n m2.push({ aabb: d3, zoom: u3, x: h3, y: c3, wrap: s3.wrap, fullyVisible: n3 });\n }\n }\n return f2.sort((t5, e2) => t5.distanceSq - e2.distanceSq).map((t5) => t5.tileID);\n }\n resize(t4, e2) {\n this.width = t4, this.height = e2, this.pixelsToGLUnits = [2 / t4, -2 / e2], this._constrain(), this._calcMatrices();\n }\n get unmodified() {\n return this._unmodified;\n }\n zoomScale(t4) {\n return Math.pow(2, t4);\n }\n scaleZoom(t4) {\n return Math.log(t4) / Math.LN2;\n }\n project(t4) {\n const i2 = e.ac(t4.lat, -85.051129, wa);\n return new e.P(e.O(t4.lng) * this.worldSize, e.Q(i2) * this.worldSize);\n }\n unproject(t4) {\n return new e.Z(t4.x / this.worldSize, t4.y / this.worldSize).toLngLat();\n }\n get point() {\n return this.project(this.center);\n }\n getCameraPosition() {\n return { lngLat: this.pointLocation(this.getCameraPoint()), altitude: Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter + this.elevation };\n }\n recalculateZoom(t4) {\n const i2 = this.elevation, a2 = Math.cos(this._pitch) * this.cameraToCenterDistance / this._pixelPerMeter, s2 = this.pointLocation(this.centerPoint, t4), o2 = t4.getElevationForLngLatZoom(s2, this.tileZoom);\n if (!(this.elevation - o2)) return;\n const r2 = a2 + i2 - o2, n2 = Math.cos(this._pitch) * this.cameraToCenterDistance / r2 / e.b5(1, s2.lat), l2 = this.scaleZoom(n2 / this.tileSize);\n this._elevation = o2, this._center = s2, this.zoom = l2;\n }\n setLocationAtPoint(t4, i2) {\n const a2 = this.pointCoordinate(i2), s2 = this.pointCoordinate(this.centerPoint), o2 = this.locationCoordinate(t4), r2 = new e.Z(o2.x - (a2.x - s2.x), o2.y - (a2.y - s2.y));\n this.center = this.coordinateLocation(r2), this._renderWorldCopies && (this.center = this.center.wrap());\n }\n locationPoint(t4, e2) {\n return e2 ? this.coordinatePoint(this.locationCoordinate(t4), e2.getElevationForLngLatZoom(t4, this.tileZoom), this.pixelMatrix3D) : this.coordinatePoint(this.locationCoordinate(t4));\n }\n pointLocation(t4, e2) {\n return this.coordinateLocation(this.pointCoordinate(t4, e2));\n }\n locationCoordinate(t4) {\n return e.Z.fromLngLat(t4);\n }\n coordinateLocation(t4) {\n return t4 && t4.toLngLat();\n }\n pointCoordinate(t4, i2) {\n if (i2) {\n const e2 = i2.pointCoordinate(t4);\n if (null != e2) return e2;\n }\n const a2 = [t4.x, t4.y, 0, 1], s2 = [t4.x, t4.y, 1, 1];\n e.af(a2, a2, this.pixelMatrixInverse), e.af(s2, s2, this.pixelMatrixInverse);\n const o2 = a2[3], r2 = s2[3], n2 = a2[1] / o2, l2 = s2[1] / r2, h2 = a2[2] / o2, c2 = s2[2] / r2, u2 = h2 === c2 ? 0 : (0 - h2) / (c2 - h2);\n return new e.Z(e.y.number(a2[0] / o2, s2[0] / r2, u2) / this.worldSize, e.y.number(n2, l2, u2) / this.worldSize);\n }\n coordinatePoint(t4, i2 = 0, a2 = this.pixelMatrix) {\n const s2 = [t4.x * this.worldSize, t4.y * this.worldSize, i2, 1];\n return e.af(s2, s2, a2), new e.P(s2[0] / s2[3], s2[1] / s2[3]);\n }\n getBounds() {\n const t4 = Math.max(0, this.height / 2 - this.getHorizon());\n return new H().extend(this.pointLocation(new e.P(0, t4))).extend(this.pointLocation(new e.P(this.width, t4))).extend(this.pointLocation(new e.P(this.width, this.height))).extend(this.pointLocation(new e.P(0, this.height)));\n }\n getMaxBounds() {\n return this.latRange && 2 === this.latRange.length && this.lngRange && 2 === this.lngRange.length ? new H([this.lngRange[0], this.latRange[0]], [this.lngRange[1], this.latRange[1]]) : null;\n }\n getHorizon() {\n return Math.tan(Math.PI / 2 - this._pitch) * this.cameraToCenterDistance * 0.85;\n }\n setMaxBounds(t4) {\n t4 ? (this.lngRange = [t4.getWest(), t4.getEast()], this.latRange = [t4.getSouth(), t4.getNorth()], this._constrain()) : (this.lngRange = null, this.latRange = [-85.051129, wa]);\n }\n calculateTileMatrix(t4) {\n const i2 = t4.canonical, a2 = this.worldSize / this.zoomScale(i2.z), s2 = i2.x + Math.pow(2, i2.z) * t4.wrap, o2 = e.an(new Float64Array(16));\n return e.J(o2, o2, [s2 * a2, i2.y * a2, 0]), e.K(o2, o2, [a2 / e.X, a2 / e.X, 1]), o2;\n }\n calculatePosMatrix(t4, i2 = false) {\n const a2 = t4.key, s2 = i2 ? this._alignedPosMatrixCache : this._posMatrixCache;\n if (s2[a2]) return s2[a2];\n const o2 = this.calculateTileMatrix(t4);\n return e.L(o2, i2 ? this.alignedModelViewProjectionMatrix : this.modelViewProjectionMatrix, o2), s2[a2] = new Float32Array(o2), s2[a2];\n }\n calculateFogMatrix(t4) {\n const i2 = t4.key, a2 = this._fogMatrixCache;\n if (a2[i2]) return a2[i2];\n const s2 = this.calculateTileMatrix(t4);\n return e.L(s2, this.fogMatrix, s2), a2[i2] = new Float32Array(s2), a2[i2];\n }\n customLayerMatrix() {\n return this.mercatorMatrix.slice();\n }\n getConstrained(t4, i2) {\n i2 = e.ac(+i2, this.minZoom, this.maxZoom);\n const a2 = { center: new e.N(t4.lng, t4.lat), zoom: i2 };\n let s2 = this.lngRange;\n if (!this._renderWorldCopies && null === s2) {\n const t5 = 180 - 1e-10;\n s2 = [-t5, t5];\n }\n const o2 = this.tileSize * this.zoomScale(a2.zoom);\n let r2 = 0, n2 = o2, l2 = 0, h2 = o2, c2 = 0, u2 = 0;\n const { x: d2, y: _2 } = this.size;\n if (this.latRange) {\n const t5 = this.latRange;\n r2 = e.Q(t5[1]) * o2, n2 = e.Q(t5[0]) * o2, n2 - r2 < _2 && (c2 = _2 / (n2 - r2));\n }\n s2 && (l2 = e.b3(e.O(s2[0]) * o2, 0, o2), h2 = e.b3(e.O(s2[1]) * o2, 0, o2), h2 < l2 && (h2 += o2), h2 - l2 < d2 && (u2 = d2 / (h2 - l2)));\n const { x: p2, y: m2 } = this.project.call({ worldSize: o2 }, t4);\n let f2, g2;\n const v2 = Math.max(u2 || 0, c2 || 0);\n if (v2) {\n const t5 = new e.P(u2 ? (h2 + l2) / 2 : p2, c2 ? (n2 + r2) / 2 : m2);\n return a2.center = this.unproject.call({ worldSize: o2 }, t5).wrap(), a2.zoom += this.scaleZoom(v2), a2;\n }\n if (this.latRange) {\n const t5 = _2 / 2;\n m2 - t5 < r2 && (g2 = r2 + t5), m2 + t5 > n2 && (g2 = n2 - t5);\n }\n if (s2) {\n const t5 = (l2 + h2) / 2;\n let i3 = p2;\n this._renderWorldCopies && (i3 = e.b3(p2, t5 - o2 / 2, t5 + o2 / 2));\n const a3 = d2 / 2;\n i3 - a3 < l2 && (f2 = l2 + a3), i3 + a3 > h2 && (f2 = h2 - a3);\n }\n if (void 0 !== f2 || void 0 !== g2) {\n const t5 = new e.P(null != f2 ? f2 : p2, null != g2 ? g2 : m2);\n a2.center = this.unproject.call({ worldSize: o2 }, t5).wrap();\n }\n return a2;\n }\n _constrain() {\n if (!this.center || !this.width || !this.height || this._constraining) return;\n this._constraining = true;\n const t4 = this._unmodified, { center: e2, zoom: i2 } = this.getConstrained(this.center, this.zoom);\n this.center = e2, this.zoom = i2, this._unmodified = t4, this._constraining = false;\n }\n _calcMatrices() {\n if (!this.height) return;\n const t4 = this.centerOffset, i2 = this.point.x, a2 = this.point.y;\n this.cameraToCenterDistance = 0.5 / Math.tan(this._fov / 2) * this.height, this._pixelPerMeter = e.b5(1, this.center.lat) * this.worldSize;\n let s2 = e.an(new Float64Array(16));\n e.K(s2, s2, [this.width / 2, -this.height / 2, 1]), e.J(s2, s2, [1, -1, 0]), this.labelPlaneMatrix = s2, s2 = e.an(new Float64Array(16)), e.K(s2, s2, [1, -1, 1]), e.J(s2, s2, [-1, -1, 0]), e.K(s2, s2, [2 / this.width, 2 / this.height, 1]), this.glCoordMatrix = s2;\n const o2 = this.cameraToCenterDistance + this._elevation * this._pixelPerMeter / Math.cos(this._pitch), r2 = Math.min(this.elevation, this.minElevationForCurrentTile), n2 = o2 - r2 * this._pixelPerMeter / Math.cos(this._pitch), l2 = r2 < 0 ? n2 : o2, h2 = Math.PI / 2 + this._pitch, c2 = this._fov * (0.5 + t4.y / this.height), u2 = Math.sin(c2) * l2 / Math.sin(e.ac(Math.PI - h2 - c2, 0.01, Math.PI - 0.01)), d2 = this.getHorizon(), _2 = 2 * Math.atan(d2 / this.cameraToCenterDistance) * (0.5 + t4.y / (2 * d2)), p2 = Math.sin(_2) * l2 / Math.sin(e.ac(Math.PI - h2 - _2, 0.01, Math.PI - 0.01)), m2 = Math.min(u2, p2);\n this.farZ = 1.01 * (Math.cos(Math.PI / 2 - this._pitch) * m2 + l2), this.nearZ = this.height / 50, s2 = new Float64Array(16), e.b6(s2, this._fov, this.width / this.height, this.nearZ, this.farZ), s2[8] = 2 * -t4.x / this.width, s2[9] = 2 * t4.y / this.height, this.projectionMatrix = e.ae(s2), e.K(s2, s2, [1, -1, 1]), e.J(s2, s2, [0, 0, -this.cameraToCenterDistance]), e.b7(s2, s2, this._pitch), e.ad(s2, s2, this.angle), e.J(s2, s2, [-i2, -a2, 0]), this.mercatorMatrix = e.K([], s2, [this.worldSize, this.worldSize, this.worldSize]), e.K(s2, s2, [1, 1, this._pixelPerMeter]), this.pixelMatrix = e.L(new Float64Array(16), this.labelPlaneMatrix, s2), e.J(s2, s2, [0, 0, -this.elevation]), this.modelViewProjectionMatrix = s2, this.invModelViewProjectionMatrix = e.as([], s2), this.fogMatrix = new Float64Array(16), e.b6(this.fogMatrix, this._fov, this.width / this.height, o2, this.farZ), this.fogMatrix[8] = 2 * -t4.x / this.width, this.fogMatrix[9] = 2 * t4.y / this.height, e.K(this.fogMatrix, this.fogMatrix, [1, -1, 1]), e.J(this.fogMatrix, this.fogMatrix, [0, 0, -this.cameraToCenterDistance]), e.b7(this.fogMatrix, this.fogMatrix, this._pitch), e.ad(this.fogMatrix, this.fogMatrix, this.angle), e.J(this.fogMatrix, this.fogMatrix, [-i2, -a2, 0]), e.K(this.fogMatrix, this.fogMatrix, [1, 1, this._pixelPerMeter]), e.J(this.fogMatrix, this.fogMatrix, [0, 0, -this.elevation]), this.pixelMatrix3D = e.L(new Float64Array(16), this.labelPlaneMatrix, s2);\n const f2 = this.width % 2 / 2, g2 = this.height % 2 / 2, v2 = Math.cos(this.angle), x2 = Math.sin(this.angle), y2 = i2 - Math.round(i2) + v2 * f2 + x2 * g2, b2 = a2 - Math.round(a2) + v2 * g2 + x2 * f2, w2 = new Float64Array(s2);\n if (e.J(w2, w2, [y2 > 0.5 ? y2 - 1 : y2, b2 > 0.5 ? b2 - 1 : b2, 0]), this.alignedModelViewProjectionMatrix = w2, s2 = e.as(new Float64Array(16), this.pixelMatrix), !s2) throw new Error(\"failed to invert matrix\");\n this.pixelMatrixInverse = s2, this._posMatrixCache = {}, this._alignedPosMatrixCache = {}, this._fogMatrixCache = {};\n }\n maxPitchScaleFactor() {\n if (!this.pixelMatrixInverse) return 1;\n const t4 = this.pointCoordinate(new e.P(0, 0)), i2 = [t4.x * this.worldSize, t4.y * this.worldSize, 0, 1];\n return e.af(i2, i2, this.pixelMatrix)[3] / this.cameraToCenterDistance;\n }\n getCameraPoint() {\n const t4 = Math.tan(this._pitch) * (this.cameraToCenterDistance || 1);\n return this.centerPoint.add(new e.P(0, t4));\n }\n getCameraQueryGeometry(t4) {\n const i2 = this.getCameraPoint();\n if (1 === t4.length) return [t4[0], i2];\n {\n let a2 = i2.x, s2 = i2.y, o2 = i2.x, r2 = i2.y;\n for (const e2 of t4) a2 = Math.min(a2, e2.x), s2 = Math.min(s2, e2.y), o2 = Math.max(o2, e2.x), r2 = Math.max(r2, e2.y);\n return [new e.P(a2, s2), new e.P(o2, s2), new e.P(o2, r2), new e.P(a2, r2), new e.P(a2, s2)];\n }\n }\n lngLatToCameraDepth(t4, i2) {\n const a2 = this.locationCoordinate(t4), s2 = [a2.x * this.worldSize, a2.y * this.worldSize, i2, 1];\n return e.af(s2, s2, this.modelViewProjectionMatrix), s2[2] / s2[3];\n }\n }\n function Ia(t4, e2) {\n let i2, a2 = false, s2 = null, o2 = null;\n const r2 = () => {\n s2 = null, a2 && (t4.apply(o2, i2), s2 = setTimeout(r2, e2), a2 = false);\n };\n return (...t5) => (a2 = true, o2 = this, i2 = t5, s2 || r2(), s2);\n }\n class Ea {\n constructor(t4) {\n this._getCurrentHash = () => {\n const t5 = window.location.hash.replace(\"#\", \"\");\n if (this._hashName) {\n let e2;\n return t5.split(\"&\").map((t6) => t6.split(\"=\")).forEach((t6) => {\n t6[0] === this._hashName && (e2 = t6);\n }), (e2 && e2[1] || \"\").split(\"/\");\n }\n return t5.split(\"/\");\n }, this._onHashChange = () => {\n const t5 = this._getCurrentHash();\n if (t5.length >= 3 && !t5.some((t6) => isNaN(t6))) {\n const e2 = this._map.dragRotate.isEnabled() && this._map.touchZoomRotate.isEnabled() ? +(t5[3] || 0) : this._map.getBearing();\n return this._map.jumpTo({ center: [+t5[2], +t5[1]], zoom: +t5[0], bearing: e2, pitch: +(t5[4] || 0) }), true;\n }\n return false;\n }, this._updateHashUnthrottled = () => {\n const t5 = window.location.href.replace(/(#.*)?$/, this.getHashString());\n window.history.replaceState(window.history.state, null, t5);\n }, this._removeHash = () => {\n const t5 = this._getCurrentHash();\n if (0 === t5.length) return;\n const e2 = t5.join(\"/\");\n let i2 = e2;\n i2.split(\"&\").length > 0 && (i2 = i2.split(\"&\")[0]), this._hashName && (i2 = `${this._hashName}=${e2}`);\n let a2 = window.location.hash.replace(i2, \"\");\n a2.startsWith(\"#&\") ? a2 = a2.slice(0, 1) + a2.slice(2) : \"#\" === a2 && (a2 = \"\");\n let s2 = window.location.href.replace(/(#.+)?$/, a2);\n s2 = s2.replace(\"&&\", \"&\"), window.history.replaceState(window.history.state, null, s2);\n }, this._updateHash = Ia(this._updateHashUnthrottled, 300), this._hashName = t4 && encodeURIComponent(t4);\n }\n addTo(t4) {\n return this._map = t4, addEventListener(\"hashchange\", this._onHashChange, false), this._map.on(\"moveend\", this._updateHash), this;\n }\n remove() {\n return removeEventListener(\"hashchange\", this._onHashChange, false), this._map.off(\"moveend\", this._updateHash), clearTimeout(this._updateHash()), this._removeHash(), delete this._map, this;\n }\n getHashString(t4) {\n const e2 = this._map.getCenter(), i2 = Math.round(100 * this._map.getZoom()) / 100, a2 = Math.ceil((i2 * Math.LN2 + Math.log(512 / 360 / 0.5)) / Math.LN10), s2 = Math.pow(10, a2), o2 = Math.round(e2.lng * s2) / s2, r2 = Math.round(e2.lat * s2) / s2, n2 = this._map.getBearing(), l2 = this._map.getPitch();\n let h2 = \"\";\n if (h2 += t4 ? `/${o2}/${r2}/${i2}` : `${i2}/${r2}/${o2}`, (n2 || l2) && (h2 += \"/\" + Math.round(10 * n2) / 10), l2 && (h2 += `/${Math.round(l2)}`), this._hashName) {\n const t5 = this._hashName;\n let e3 = false;\n const i3 = window.location.hash.slice(1).split(\"&\").map((i4) => {\n const a3 = i4.split(\"=\")[0];\n return a3 === t5 ? (e3 = true, `${a3}=${h2}`) : i4;\n }).filter((t6) => t6);\n return e3 || i3.push(`${t5}=${h2}`), `#${i3.join(\"&\")}`;\n }\n return `#${h2}`;\n }\n }\n const Pa = { linearity: 0.3, easing: e.b8(0, 0, 0.3, 1) }, Ca = e.e({ deceleration: 2500, maxSpeed: 1400 }, Pa), Sa = e.e({ deceleration: 20, maxSpeed: 1400 }, Pa), za = e.e({ deceleration: 1e3, maxSpeed: 360 }, Pa), Da = e.e({ deceleration: 1e3, maxSpeed: 90 }, Pa);\n class Ma {\n constructor(t4) {\n this._map = t4, this.clear();\n }\n clear() {\n this._inertiaBuffer = [];\n }\n record(t4) {\n this._drainInertiaBuffer(), this._inertiaBuffer.push({ time: o.now(), settings: t4 });\n }\n _drainInertiaBuffer() {\n const t4 = this._inertiaBuffer, e2 = o.now();\n for (; t4.length > 0 && e2 - t4[0].time > 160; ) t4.shift();\n }\n _onMoveEnd(t4) {\n if (this._drainInertiaBuffer(), this._inertiaBuffer.length < 2) return;\n const i2 = { zoom: 0, bearing: 0, pitch: 0, pan: new e.P(0, 0), pinchAround: void 0, around: void 0 };\n for (const { settings: t5 } of this._inertiaBuffer) i2.zoom += t5.zoomDelta || 0, i2.bearing += t5.bearingDelta || 0, i2.pitch += t5.pitchDelta || 0, t5.panDelta && i2.pan._add(t5.panDelta), t5.around && (i2.around = t5.around), t5.pinchAround && (i2.pinchAround = t5.pinchAround);\n const a2 = this._inertiaBuffer[this._inertiaBuffer.length - 1].time - this._inertiaBuffer[0].time, s2 = {};\n if (i2.pan.mag()) {\n const o2 = Ra(i2.pan.mag(), a2, e.e({}, Ca, t4 || {}));\n s2.offset = i2.pan.mult(o2.amount / i2.pan.mag()), s2.center = this._map.transform.center, Aa(s2, o2);\n }\n if (i2.zoom) {\n const t5 = Ra(i2.zoom, a2, Sa);\n s2.zoom = this._map.transform.zoom + t5.amount, Aa(s2, t5);\n }\n if (i2.bearing) {\n const t5 = Ra(i2.bearing, a2, za);\n s2.bearing = this._map.transform.bearing + e.ac(t5.amount, -179, 179), Aa(s2, t5);\n }\n if (i2.pitch) {\n const t5 = Ra(i2.pitch, a2, Da);\n s2.pitch = this._map.transform.pitch + t5.amount, Aa(s2, t5);\n }\n if (s2.zoom || s2.bearing) {\n const t5 = void 0 === i2.pinchAround ? i2.around : i2.pinchAround;\n s2.around = t5 ? this._map.unproject(t5) : this._map.getCenter();\n }\n return this.clear(), e.e(s2, { noMoveStart: true });\n }\n }\n function Aa(t4, e2) {\n (!t4.duration || t4.duration < e2.duration) && (t4.duration = e2.duration, t4.easing = e2.easing);\n }\n function Ra(t4, i2, a2) {\n const { maxSpeed: s2, linearity: o2, deceleration: r2 } = a2, n2 = e.ac(t4 * o2 / (i2 / 1e3), -s2, s2), l2 = Math.abs(n2) / (r2 * o2);\n return { easing: a2.easing, duration: 1e3 * l2, amount: n2 * (l2 / 2) };\n }\n class ka extends e.k {\n preventDefault() {\n this._defaultPrevented = true;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n constructor(t4, i2, a2, s2 = {}) {\n const o2 = r.mousePos(i2.getCanvas(), a2), n2 = i2.unproject(o2);\n super(t4, e.e({ point: o2, lngLat: n2, originalEvent: a2 }, s2)), this._defaultPrevented = false, this.target = i2;\n }\n }\n class La extends e.k {\n preventDefault() {\n this._defaultPrevented = true;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n constructor(t4, i2, a2) {\n const s2 = \"touchend\" === t4 ? a2.changedTouches : a2.touches, o2 = r.touchPos(i2.getCanvasContainer(), s2), n2 = o2.map((t5) => i2.unproject(t5)), l2 = o2.reduce((t5, e2, i3, a3) => t5.add(e2.div(a3.length)), new e.P(0, 0));\n super(t4, { points: o2, point: l2, lngLats: n2, lngLat: i2.unproject(l2), originalEvent: a2 }), this._defaultPrevented = false;\n }\n }\n class Fa extends e.k {\n preventDefault() {\n this._defaultPrevented = true;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n constructor(t4, e2, i2) {\n super(t4, { originalEvent: i2 }), this._defaultPrevented = false;\n }\n }\n class Ba {\n constructor(t4, e2) {\n this._map = t4, this._clickTolerance = e2.clickTolerance;\n }\n reset() {\n delete this._mousedownPos;\n }\n wheel(t4) {\n return this._firePreventable(new Fa(t4.type, this._map, t4));\n }\n mousedown(t4, e2) {\n return this._mousedownPos = e2, this._firePreventable(new ka(t4.type, this._map, t4));\n }\n mouseup(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n click(t4, e2) {\n this._mousedownPos && this._mousedownPos.dist(e2) >= this._clickTolerance || this._map.fire(new ka(t4.type, this._map, t4));\n }\n dblclick(t4) {\n return this._firePreventable(new ka(t4.type, this._map, t4));\n }\n mouseover(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n mouseout(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n touchstart(t4) {\n return this._firePreventable(new La(t4.type, this._map, t4));\n }\n touchmove(t4) {\n this._map.fire(new La(t4.type, this._map, t4));\n }\n touchend(t4) {\n this._map.fire(new La(t4.type, this._map, t4));\n }\n touchcancel(t4) {\n this._map.fire(new La(t4.type, this._map, t4));\n }\n _firePreventable(t4) {\n if (this._map.fire(t4), t4.defaultPrevented) return {};\n }\n isEnabled() {\n return true;\n }\n isActive() {\n return false;\n }\n enable() {\n }\n disable() {\n }\n }\n class Oa {\n constructor(t4) {\n this._map = t4;\n }\n reset() {\n this._delayContextMenu = false, this._ignoreContextMenu = true, delete this._contextMenuEvent;\n }\n mousemove(t4) {\n this._map.fire(new ka(t4.type, this._map, t4));\n }\n mousedown() {\n this._delayContextMenu = true, this._ignoreContextMenu = false;\n }\n mouseup() {\n this._delayContextMenu = false, this._contextMenuEvent && (this._map.fire(new ka(\"contextmenu\", this._map, this._contextMenuEvent)), delete this._contextMenuEvent);\n }\n contextmenu(t4) {\n this._delayContextMenu ? this._contextMenuEvent = t4 : this._ignoreContextMenu || this._map.fire(new ka(t4.type, this._map, t4)), this._map.listens(\"contextmenu\") && t4.preventDefault();\n }\n isEnabled() {\n return true;\n }\n isActive() {\n return false;\n }\n enable() {\n }\n disable() {\n }\n }\n class Na {\n constructor(t4) {\n this._map = t4;\n }\n get transform() {\n return this._map._requestedCameraState || this._map.transform;\n }\n get center() {\n return { lng: this.transform.center.lng, lat: this.transform.center.lat };\n }\n get zoom() {\n return this.transform.zoom;\n }\n get pitch() {\n return this.transform.pitch;\n }\n get bearing() {\n return this.transform.bearing;\n }\n unproject(t4) {\n return this.transform.pointLocation(e.P.convert(t4), this._map.terrain);\n }\n }\n class Ua {\n constructor(t4, e2) {\n this._map = t4, this._tr = new Na(t4), this._el = t4.getCanvasContainer(), this._container = t4.getContainer(), this._clickTolerance = e2.clickTolerance || 1;\n }\n isEnabled() {\n return !!this._enabled;\n }\n isActive() {\n return !!this._active;\n }\n enable() {\n this.isEnabled() || (this._enabled = true);\n }\n disable() {\n this.isEnabled() && (this._enabled = false);\n }\n mousedown(t4, e2) {\n this.isEnabled() && t4.shiftKey && 0 === t4.button && (r.disableDrag(), this._startPos = this._lastPos = e2, this._active = true);\n }\n mousemoveWindow(t4, e2) {\n if (!this._active) return;\n const i2 = e2;\n if (this._lastPos.equals(i2) || !this._box && i2.dist(this._startPos) < this._clickTolerance) return;\n const a2 = this._startPos;\n this._lastPos = i2, this._box || (this._box = r.create(\"div\", \"maplibregl-boxzoom\", this._container), this._container.classList.add(\"maplibregl-crosshair\"), this._fireEvent(\"boxzoomstart\", t4));\n const s2 = Math.min(a2.x, i2.x), o2 = Math.max(a2.x, i2.x), n2 = Math.min(a2.y, i2.y), l2 = Math.max(a2.y, i2.y);\n r.setTransform(this._box, `translate(${s2}px,${n2}px)`), this._box.style.width = o2 - s2 + \"px\", this._box.style.height = l2 - n2 + \"px\";\n }\n mouseupWindow(t4, i2) {\n if (!this._active) return;\n if (0 !== t4.button) return;\n const a2 = this._startPos, s2 = i2;\n if (this.reset(), r.suppressClick(), a2.x !== s2.x || a2.y !== s2.y) return this._map.fire(new e.k(\"boxzoomend\", { originalEvent: t4 })), { cameraAnimation: (t5) => t5.fitScreenCoordinates(a2, s2, this._tr.bearing, { linear: true }) };\n this._fireEvent(\"boxzoomcancel\", t4);\n }\n keydown(t4) {\n this._active && 27 === t4.keyCode && (this.reset(), this._fireEvent(\"boxzoomcancel\", t4));\n }\n reset() {\n this._active = false, this._container.classList.remove(\"maplibregl-crosshair\"), this._box && (r.remove(this._box), this._box = null), r.enableDrag(), delete this._startPos, delete this._lastPos;\n }\n _fireEvent(t4, i2) {\n return this._map.fire(new e.k(t4, { originalEvent: i2 }));\n }\n }\n function ja(t4, e2) {\n if (t4.length !== e2.length) throw new Error(`The number of touches and points are not equal - touches ${t4.length}, points ${e2.length}`);\n const i2 = {};\n for (let a2 = 0; a2 < t4.length; a2++) i2[t4[a2].identifier] = e2[a2];\n return i2;\n }\n class Za {\n constructor(t4) {\n this.reset(), this.numTouches = t4.numTouches;\n }\n reset() {\n delete this.centroid, delete this.startTime, delete this.touches, this.aborted = false;\n }\n touchstart(t4, i2, a2) {\n (this.centroid || a2.length > this.numTouches) && (this.aborted = true), this.aborted || (void 0 === this.startTime && (this.startTime = t4.timeStamp), a2.length === this.numTouches && (this.centroid = function(t5) {\n const i3 = new e.P(0, 0);\n for (const e2 of t5) i3._add(e2);\n return i3.div(t5.length);\n }(i2), this.touches = ja(a2, i2)));\n }\n touchmove(t4, e2, i2) {\n if (this.aborted || !this.centroid) return;\n const a2 = ja(i2, e2);\n for (const t5 in this.touches) {\n const e3 = a2[t5];\n (!e3 || e3.dist(this.touches[t5]) > 30) && (this.aborted = true);\n }\n }\n touchend(t4, e2, i2) {\n if ((!this.centroid || t4.timeStamp - this.startTime > 500) && (this.aborted = true), 0 === i2.length) {\n const t5 = !this.aborted && this.centroid;\n if (this.reset(), t5) return t5;\n }\n }\n }\n class qa {\n constructor(t4) {\n this.singleTap = new Za(t4), this.numTaps = t4.numTaps, this.reset();\n }\n reset() {\n this.lastTime = 1 / 0, delete this.lastTap, this.count = 0, this.singleTap.reset();\n }\n touchstart(t4, e2, i2) {\n this.singleTap.touchstart(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n this.singleTap.touchmove(t4, e2, i2);\n }\n touchend(t4, e2, i2) {\n const a2 = this.singleTap.touchend(t4, e2, i2);\n if (a2) {\n const e3 = t4.timeStamp - this.lastTime < 500, i3 = !this.lastTap || this.lastTap.dist(a2) < 30;\n if (e3 && i3 || this.reset(), this.count++, this.lastTime = t4.timeStamp, this.lastTap = a2, this.count === this.numTaps) return this.reset(), a2;\n }\n }\n }\n class Va {\n constructor(t4) {\n this._tr = new Na(t4), this._zoomIn = new qa({ numTouches: 1, numTaps: 2 }), this._zoomOut = new qa({ numTouches: 2, numTaps: 1 }), this.reset();\n }\n reset() {\n this._active = false, this._zoomIn.reset(), this._zoomOut.reset();\n }\n touchstart(t4, e2, i2) {\n this._zoomIn.touchstart(t4, e2, i2), this._zoomOut.touchstart(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n this._zoomIn.touchmove(t4, e2, i2), this._zoomOut.touchmove(t4, e2, i2);\n }\n touchend(t4, e2, i2) {\n const a2 = this._zoomIn.touchend(t4, e2, i2), s2 = this._zoomOut.touchend(t4, e2, i2), o2 = this._tr;\n return a2 ? (this._active = true, t4.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: o2.zoom + 1, around: o2.unproject(a2) }, { originalEvent: t4 }) }) : s2 ? (this._active = true, t4.preventDefault(), setTimeout(() => this.reset(), 0), { cameraAnimation: (e3) => e3.easeTo({ duration: 300, zoom: o2.zoom - 1, around: o2.unproject(s2) }, { originalEvent: t4 }) }) : void 0;\n }\n touchcancel() {\n this.reset();\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class Ga {\n constructor(t4) {\n this._enabled = !!t4.enable, this._moveStateManager = t4.moveStateManager, this._clickTolerance = t4.clickTolerance || 1, this._moveFunction = t4.move, this._activateOnStart = !!t4.activateOnStart, t4.assignEvents(this), this.reset();\n }\n reset(t4) {\n this._active = false, this._moved = false, delete this._lastPoint, this._moveStateManager.endMove(t4);\n }\n _move(...t4) {\n const e2 = this._moveFunction(...t4);\n if (e2.bearingDelta || e2.pitchDelta || e2.around || e2.panDelta) return this._active = true, e2;\n }\n dragStart(t4, e2) {\n this.isEnabled() && !this._lastPoint && this._moveStateManager.isValidStartEvent(t4) && (this._moveStateManager.startMove(t4), this._lastPoint = e2.length ? e2[0] : e2, this._activateOnStart && this._lastPoint && (this._active = true));\n }\n dragMove(t4, e2) {\n if (!this.isEnabled()) return;\n const i2 = this._lastPoint;\n if (!i2) return;\n if (t4.preventDefault(), !this._moveStateManager.isValidMoveEvent(t4)) return void this.reset(t4);\n const a2 = e2.length ? e2[0] : e2;\n return !this._moved && a2.dist(i2) < this._clickTolerance ? void 0 : (this._moved = true, this._lastPoint = a2, this._move(i2, a2));\n }\n dragEnd(t4) {\n this.isEnabled() && this._lastPoint && this._moveStateManager.isValidEndEvent(t4) && (this._moved && r.suppressClick(), this.reset(t4));\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n getClickTolerance() {\n return this._clickTolerance;\n }\n }\n const Ha = { 0: 1, 2: 2 };\n class Wa {\n constructor(t4) {\n this._correctEvent = t4.checkCorrectEvent;\n }\n startMove(t4) {\n const e2 = r.mouseButton(t4);\n this._eventButton = e2;\n }\n endMove(t4) {\n delete this._eventButton;\n }\n isValidStartEvent(t4) {\n return this._correctEvent(t4);\n }\n isValidMoveEvent(t4) {\n return !function(t5, e2) {\n const i2 = Ha[e2];\n return void 0 === t5.buttons || (t5.buttons & i2) !== i2;\n }(t4, this._eventButton);\n }\n isValidEndEvent(t4) {\n return r.mouseButton(t4) === this._eventButton;\n }\n }\n class $a {\n constructor() {\n this._firstTouch = void 0;\n }\n _isOneFingerTouch(t4) {\n return 1 === t4.targetTouches.length;\n }\n _isSameTouchEvent(t4) {\n return t4.targetTouches[0].identifier === this._firstTouch;\n }\n startMove(t4) {\n this._firstTouch = t4.targetTouches[0].identifier;\n }\n endMove(t4) {\n delete this._firstTouch;\n }\n isValidStartEvent(t4) {\n return this._isOneFingerTouch(t4);\n }\n isValidMoveEvent(t4) {\n return this._isOneFingerTouch(t4) && this._isSameTouchEvent(t4);\n }\n isValidEndEvent(t4) {\n return this._isOneFingerTouch(t4) && this._isSameTouchEvent(t4);\n }\n }\n const Xa = (t4) => {\n t4.mousedown = t4.dragStart, t4.mousemoveWindow = t4.dragMove, t4.mouseup = t4.dragEnd, t4.contextmenu = (t5) => {\n t5.preventDefault();\n };\n }, Ka = ({ enable: t4, clickTolerance: e2, bearingDegreesPerPixelMoved: i2 = 0.8 }) => {\n const a2 = new Wa({ checkCorrectEvent: (t5) => 0 === r.mouseButton(t5) && t5.ctrlKey || 2 === r.mouseButton(t5) });\n return new Ga({ clickTolerance: e2, move: (t5, e3) => ({ bearingDelta: (e3.x - t5.x) * i2 }), moveStateManager: a2, enable: t4, assignEvents: Xa });\n }, Ja = ({ enable: t4, clickTolerance: e2, pitchDegreesPerPixelMoved: i2 = -0.5 }) => {\n const a2 = new Wa({ checkCorrectEvent: (t5) => 0 === r.mouseButton(t5) && t5.ctrlKey || 2 === r.mouseButton(t5) });\n return new Ga({ clickTolerance: e2, move: (t5, e3) => ({ pitchDelta: (e3.y - t5.y) * i2 }), moveStateManager: a2, enable: t4, assignEvents: Xa });\n };\n class Ya {\n constructor(t4, e2) {\n this._clickTolerance = t4.clickTolerance || 1, this._map = e2, this.reset();\n }\n reset() {\n this._active = false, this._touches = {}, this._sum = new e.P(0, 0);\n }\n _shouldBePrevented(t4) {\n return t4 < (this._map.cooperativeGestures.isEnabled() ? 2 : 1);\n }\n touchstart(t4, e2, i2) {\n return this._calculateTransform(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n if (this._active) {\n if (!this._shouldBePrevented(i2.length)) return t4.preventDefault(), this._calculateTransform(t4, e2, i2);\n this._map.cooperativeGestures.notifyGestureBlocked(\"touch_pan\", t4);\n }\n }\n touchend(t4, e2, i2) {\n this._calculateTransform(t4, e2, i2), this._active && this._shouldBePrevented(i2.length) && this.reset();\n }\n touchcancel() {\n this.reset();\n }\n _calculateTransform(t4, i2, a2) {\n a2.length > 0 && (this._active = true);\n const s2 = ja(a2, i2), o2 = new e.P(0, 0), r2 = new e.P(0, 0);\n let n2 = 0;\n for (const t5 in s2) {\n const e2 = s2[t5], i3 = this._touches[t5];\n i3 && (o2._add(e2), r2._add(e2.sub(i3)), n2++, s2[t5] = e2);\n }\n if (this._touches = s2, this._shouldBePrevented(n2) || !r2.mag()) return;\n const l2 = r2.div(n2);\n return this._sum._add(l2), this._sum.mag() < this._clickTolerance ? void 0 : { around: o2.div(n2), panDelta: l2 };\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class Qa {\n constructor() {\n this.reset();\n }\n reset() {\n this._active = false, delete this._firstTwoTouches;\n }\n touchstart(t4, e2, i2) {\n this._firstTwoTouches || i2.length < 2 || (this._firstTwoTouches = [i2[0].identifier, i2[1].identifier], this._start([e2[0], e2[1]]));\n }\n touchmove(t4, e2, i2) {\n if (!this._firstTwoTouches) return;\n t4.preventDefault();\n const [a2, s2] = this._firstTwoTouches, o2 = ts(i2, e2, a2), r2 = ts(i2, e2, s2);\n if (!o2 || !r2) return;\n const n2 = this._aroundCenter ? null : o2.add(r2).div(2);\n return this._move([o2, r2], n2, t4);\n }\n touchend(t4, e2, i2) {\n if (!this._firstTwoTouches) return;\n const [a2, s2] = this._firstTwoTouches, o2 = ts(i2, e2, a2), n2 = ts(i2, e2, s2);\n o2 && n2 || (this._active && r.suppressClick(), this.reset());\n }\n touchcancel() {\n this.reset();\n }\n enable(t4) {\n this._enabled = true, this._aroundCenter = !!t4 && \"center\" === t4.around;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return !!this._enabled;\n }\n isActive() {\n return !!this._active;\n }\n }\n function ts(t4, e2, i2) {\n for (let a2 = 0; a2 < t4.length; a2++) if (t4[a2].identifier === i2) return e2[a2];\n }\n function es(t4, e2) {\n return Math.log(t4 / e2) / Math.LN2;\n }\n class is extends Qa {\n reset() {\n super.reset(), delete this._distance, delete this._startDistance;\n }\n _start(t4) {\n this._startDistance = this._distance = t4[0].dist(t4[1]);\n }\n _move(t4, e2) {\n const i2 = this._distance;\n if (this._distance = t4[0].dist(t4[1]), this._active || !(Math.abs(es(this._distance, this._startDistance)) < 0.1)) return this._active = true, { zoomDelta: es(this._distance, i2), pinchAround: e2 };\n }\n }\n function as(t4, e2) {\n return 180 * t4.angleWith(e2) / Math.PI;\n }\n class ss extends Qa {\n reset() {\n super.reset(), delete this._minDiameter, delete this._startVector, delete this._vector;\n }\n _start(t4) {\n this._startVector = this._vector = t4[0].sub(t4[1]), this._minDiameter = t4[0].dist(t4[1]);\n }\n _move(t4, e2, i2) {\n const a2 = this._vector;\n if (this._vector = t4[0].sub(t4[1]), this._active || !this._isBelowThreshold(this._vector)) return this._active = true, { bearingDelta: as(this._vector, a2), pinchAround: e2 };\n }\n _isBelowThreshold(t4) {\n this._minDiameter = Math.min(this._minDiameter, t4.mag());\n const e2 = 25 / (Math.PI * this._minDiameter) * 360, i2 = as(t4, this._startVector);\n return Math.abs(i2) < e2;\n }\n }\n function os(t4) {\n return Math.abs(t4.y) > Math.abs(t4.x);\n }\n class rs extends Qa {\n constructor(t4) {\n super(), this._currentTouchCount = 0, this._map = t4;\n }\n reset() {\n super.reset(), this._valid = void 0, delete this._firstMove, delete this._lastPoints;\n }\n touchstart(t4, e2, i2) {\n super.touchstart(t4, e2, i2), this._currentTouchCount = i2.length;\n }\n _start(t4) {\n this._lastPoints = t4, os(t4[0].sub(t4[1])) && (this._valid = false);\n }\n _move(t4, e2, i2) {\n if (this._map.cooperativeGestures.isEnabled() && this._currentTouchCount < 3) return;\n const a2 = t4[0].sub(this._lastPoints[0]), s2 = t4[1].sub(this._lastPoints[1]);\n return this._valid = this.gestureBeginsVertically(a2, s2, i2.timeStamp), this._valid ? (this._lastPoints = t4, this._active = true, { pitchDelta: (a2.y + s2.y) / 2 * -0.5 }) : void 0;\n }\n gestureBeginsVertically(t4, e2, i2) {\n if (void 0 !== this._valid) return this._valid;\n const a2 = t4.mag() >= 2, s2 = e2.mag() >= 2;\n if (!a2 && !s2) return;\n if (!a2 || !s2) return void 0 === this._firstMove && (this._firstMove = i2), i2 - this._firstMove < 100 && void 0;\n const o2 = t4.y > 0 == e2.y > 0;\n return os(t4) && os(e2) && o2;\n }\n }\n const ns = { panStep: 100, bearingStep: 15, pitchStep: 10 };\n class ls {\n constructor(t4) {\n this._tr = new Na(t4);\n const e2 = ns;\n this._panStep = e2.panStep, this._bearingStep = e2.bearingStep, this._pitchStep = e2.pitchStep, this._rotationDisabled = false;\n }\n reset() {\n this._active = false;\n }\n keydown(t4) {\n if (t4.altKey || t4.ctrlKey || t4.metaKey) return;\n let e2 = 0, i2 = 0, a2 = 0, s2 = 0, o2 = 0;\n switch (t4.keyCode) {\n case 61:\n case 107:\n case 171:\n case 187:\n e2 = 1;\n break;\n case 189:\n case 109:\n case 173:\n e2 = -1;\n break;\n case 37:\n t4.shiftKey ? i2 = -1 : (t4.preventDefault(), s2 = -1);\n break;\n case 39:\n t4.shiftKey ? i2 = 1 : (t4.preventDefault(), s2 = 1);\n break;\n case 38:\n t4.shiftKey ? a2 = 1 : (t4.preventDefault(), o2 = -1);\n break;\n case 40:\n t4.shiftKey ? a2 = -1 : (t4.preventDefault(), o2 = 1);\n break;\n default:\n return;\n }\n return this._rotationDisabled && (i2 = 0, a2 = 0), { cameraAnimation: (r2) => {\n const n2 = this._tr;\n r2.easeTo({ duration: 300, easeId: \"keyboardHandler\", easing: hs, zoom: e2 ? Math.round(n2.zoom) + e2 * (t4.shiftKey ? 2 : 1) : n2.zoom, bearing: n2.bearing + i2 * this._bearingStep, pitch: n2.pitch + a2 * this._pitchStep, offset: [-s2 * this._panStep, -o2 * this._panStep], center: n2.center }, { originalEvent: t4 });\n } };\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n disableRotation() {\n this._rotationDisabled = true;\n }\n enableRotation() {\n this._rotationDisabled = false;\n }\n }\n function hs(t4) {\n return t4 * (2 - t4);\n }\n const cs = 4.000244140625;\n class us {\n constructor(t4, e2) {\n this._onTimeout = (t5) => {\n this._type = \"wheel\", this._delta -= this._lastValue, this._active || this._start(t5);\n }, this._map = t4, this._tr = new Na(t4), this._triggerRenderFrame = e2, this._delta = 0, this._defaultZoomRate = 0.01, this._wheelZoomRate = 0.0022222222222222222;\n }\n setZoomRate(t4) {\n this._defaultZoomRate = t4;\n }\n setWheelZoomRate(t4) {\n this._wheelZoomRate = t4;\n }\n isEnabled() {\n return !!this._enabled;\n }\n isActive() {\n return !!this._active || void 0 !== this._finishTimeout;\n }\n isZooming() {\n return !!this._zooming;\n }\n enable(t4) {\n this.isEnabled() || (this._enabled = true, this._aroundCenter = !!t4 && \"center\" === t4.around);\n }\n disable() {\n this.isEnabled() && (this._enabled = false);\n }\n _shouldBePrevented(t4) {\n return !!this._map.cooperativeGestures.isEnabled() && !(t4.ctrlKey || this._map.cooperativeGestures.isBypassed(t4));\n }\n wheel(t4) {\n if (!this.isEnabled()) return;\n if (this._shouldBePrevented(t4)) return void this._map.cooperativeGestures.notifyGestureBlocked(\"wheel_zoom\", t4);\n let e2 = t4.deltaMode === WheelEvent.DOM_DELTA_LINE ? 40 * t4.deltaY : t4.deltaY;\n const i2 = o.now(), a2 = i2 - (this._lastWheelEventTime || 0);\n this._lastWheelEventTime = i2, 0 !== e2 && e2 % cs == 0 ? this._type = \"wheel\" : 0 !== e2 && Math.abs(e2) < 4 ? this._type = \"trackpad\" : a2 > 400 ? (this._type = null, this._lastValue = e2, this._timeout = setTimeout(this._onTimeout, 40, t4)) : this._type || (this._type = Math.abs(a2 * e2) < 200 ? \"trackpad\" : \"wheel\", this._timeout && (clearTimeout(this._timeout), this._timeout = null, e2 += this._lastValue)), t4.shiftKey && e2 && (e2 /= 4), this._type && (this._lastWheelEvent = t4, this._delta -= e2, this._active || this._start(t4)), t4.preventDefault();\n }\n _start(t4) {\n if (!this._delta) return;\n this._frameId && (this._frameId = null), this._active = true, this.isZooming() || (this._zooming = true), this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);\n const i2 = r.mousePos(this._map.getCanvas(), t4), a2 = this._tr;\n this._around = i2.y > a2.transform.height / 2 - a2.transform.getHorizon() ? e.N.convert(this._aroundCenter ? a2.center : a2.unproject(i2)) : e.N.convert(a2.center), this._aroundPoint = a2.transform.locationPoint(this._around), this._frameId || (this._frameId = true, this._triggerRenderFrame());\n }\n renderFrame() {\n if (!this._frameId) return;\n if (this._frameId = null, !this.isActive()) return;\n const t4 = this._tr.transform;\n if (0 !== this._delta) {\n const e2 = \"wheel\" === this._type && Math.abs(this._delta) > cs ? this._wheelZoomRate : this._defaultZoomRate;\n let i3 = 2 / (1 + Math.exp(-Math.abs(this._delta * e2)));\n this._delta < 0 && 0 !== i3 && (i3 = 1 / i3);\n const a3 = \"number\" == typeof this._targetZoom ? t4.zoomScale(this._targetZoom) : t4.scale;\n this._targetZoom = Math.min(t4.maxZoom, Math.max(t4.minZoom, t4.scaleZoom(a3 * i3))), \"wheel\" === this._type && (this._startZoom = t4.zoom, this._easing = this._smoothOutEasing(200)), this._delta = 0;\n }\n const i2 = \"number\" == typeof this._targetZoom ? this._targetZoom : t4.zoom, a2 = this._startZoom, s2 = this._easing;\n let r2, n2 = false;\n const l2 = o.now() - this._lastWheelEventTime;\n if (\"wheel\" === this._type && a2 && s2 && l2) {\n const t5 = Math.min(l2 / 200, 1), o2 = s2(t5);\n r2 = e.y.number(a2, i2, o2), t5 < 1 ? this._frameId || (this._frameId = true) : n2 = true;\n } else r2 = i2, n2 = true;\n return this._active = true, n2 && (this._active = false, this._finishTimeout = setTimeout(() => {\n this._zooming = false, this._triggerRenderFrame(), delete this._targetZoom, delete this._finishTimeout;\n }, 200)), { noInertia: true, needsRenderFrame: !n2, zoomDelta: r2 - t4.zoom, around: this._aroundPoint, originalEvent: this._lastWheelEvent };\n }\n _smoothOutEasing(t4) {\n let i2 = e.b9;\n if (this._prevEase) {\n const t5 = this._prevEase, a2 = (o.now() - t5.start) / t5.duration, s2 = t5.easing(a2 + 0.01) - t5.easing(a2), r2 = 0.27 / Math.sqrt(s2 * s2 + 1e-4) * 0.01, n2 = Math.sqrt(0.0729 - r2 * r2);\n i2 = e.b8(r2, n2, 0.25, 1);\n }\n return this._prevEase = { start: o.now(), duration: t4, easing: i2 }, i2;\n }\n reset() {\n this._active = false, this._zooming = false, delete this._targetZoom, this._finishTimeout && (clearTimeout(this._finishTimeout), delete this._finishTimeout);\n }\n }\n class ds {\n constructor(t4, e2) {\n this._clickZoom = t4, this._tapZoom = e2;\n }\n enable() {\n this._clickZoom.enable(), this._tapZoom.enable();\n }\n disable() {\n this._clickZoom.disable(), this._tapZoom.disable();\n }\n isEnabled() {\n return this._clickZoom.isEnabled() && this._tapZoom.isEnabled();\n }\n isActive() {\n return this._clickZoom.isActive() || this._tapZoom.isActive();\n }\n }\n class _s {\n constructor(t4) {\n this._tr = new Na(t4), this.reset();\n }\n reset() {\n this._active = false;\n }\n dblclick(t4, e2) {\n return t4.preventDefault(), { cameraAnimation: (i2) => {\n i2.easeTo({ duration: 300, zoom: this._tr.zoom + (t4.shiftKey ? -1 : 1), around: this._tr.unproject(e2) }, { originalEvent: t4 });\n } };\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class ps {\n constructor() {\n this._tap = new qa({ numTouches: 1, numTaps: 1 }), this.reset();\n }\n reset() {\n this._active = false, delete this._swipePoint, delete this._swipeTouch, delete this._tapTime, delete this._tapPoint, this._tap.reset();\n }\n touchstart(t4, e2, i2) {\n if (!this._swipePoint) if (this._tapTime) {\n const a2 = e2[0], s2 = t4.timeStamp - this._tapTime < 500, o2 = this._tapPoint.dist(a2) < 30;\n s2 && o2 ? i2.length > 0 && (this._swipePoint = a2, this._swipeTouch = i2[0].identifier) : this.reset();\n } else this._tap.touchstart(t4, e2, i2);\n }\n touchmove(t4, e2, i2) {\n if (this._tapTime) {\n if (this._swipePoint) {\n if (i2[0].identifier !== this._swipeTouch) return;\n const a2 = e2[0], s2 = a2.y - this._swipePoint.y;\n return this._swipePoint = a2, t4.preventDefault(), this._active = true, { zoomDelta: s2 / 128 };\n }\n } else this._tap.touchmove(t4, e2, i2);\n }\n touchend(t4, e2, i2) {\n if (this._tapTime) this._swipePoint && 0 === i2.length && this.reset();\n else {\n const a2 = this._tap.touchend(t4, e2, i2);\n a2 && (this._tapTime = t4.timeStamp, this._tapPoint = a2);\n }\n }\n touchcancel() {\n this.reset();\n }\n enable() {\n this._enabled = true;\n }\n disable() {\n this._enabled = false, this.reset();\n }\n isEnabled() {\n return this._enabled;\n }\n isActive() {\n return this._active;\n }\n }\n class ms {\n constructor(t4, e2, i2) {\n this._el = t4, this._mousePan = e2, this._touchPan = i2;\n }\n enable(t4) {\n this._inertiaOptions = t4 || {}, this._mousePan.enable(), this._touchPan.enable(), this._el.classList.add(\"maplibregl-touch-drag-pan\");\n }\n disable() {\n this._mousePan.disable(), this._touchPan.disable(), this._el.classList.remove(\"maplibregl-touch-drag-pan\");\n }\n isEnabled() {\n return this._mousePan.isEnabled() && this._touchPan.isEnabled();\n }\n isActive() {\n return this._mousePan.isActive() || this._touchPan.isActive();\n }\n }\n class fs {\n constructor(t4, e2, i2) {\n this._pitchWithRotate = t4.pitchWithRotate, this._mouseRotate = e2, this._mousePitch = i2;\n }\n enable() {\n this._mouseRotate.enable(), this._pitchWithRotate && this._mousePitch.enable();\n }\n disable() {\n this._mouseRotate.disable(), this._mousePitch.disable();\n }\n isEnabled() {\n return this._mouseRotate.isEnabled() && (!this._pitchWithRotate || this._mousePitch.isEnabled());\n }\n isActive() {\n return this._mouseRotate.isActive() || this._mousePitch.isActive();\n }\n }\n class gs {\n constructor(t4, e2, i2, a2) {\n this._el = t4, this._touchZoom = e2, this._touchRotate = i2, this._tapDragZoom = a2, this._rotationDisabled = false, this._enabled = true;\n }\n enable(t4) {\n this._touchZoom.enable(t4), this._rotationDisabled || this._touchRotate.enable(t4), this._tapDragZoom.enable(), this._el.classList.add(\"maplibregl-touch-zoom-rotate\");\n }\n disable() {\n this._touchZoom.disable(), this._touchRotate.disable(), this._tapDragZoom.disable(), this._el.classList.remove(\"maplibregl-touch-zoom-rotate\");\n }\n isEnabled() {\n return this._touchZoom.isEnabled() && (this._rotationDisabled || this._touchRotate.isEnabled()) && this._tapDragZoom.isEnabled();\n }\n isActive() {\n return this._touchZoom.isActive() || this._touchRotate.isActive() || this._tapDragZoom.isActive();\n }\n disableRotation() {\n this._rotationDisabled = true, this._touchRotate.disable();\n }\n enableRotation() {\n this._rotationDisabled = false, this._touchZoom.isEnabled() && this._touchRotate.enable();\n }\n }\n class vs {\n constructor(t4, e2) {\n this._bypassKey = -1 !== navigator.userAgent.indexOf(\"Mac\") ? \"metaKey\" : \"ctrlKey\", this._map = t4, this._options = e2, this._enabled = false;\n }\n isActive() {\n return false;\n }\n reset() {\n }\n _setupUI() {\n if (this._container) return;\n const t4 = this._map.getCanvasContainer();\n t4.classList.add(\"maplibregl-cooperative-gestures\"), this._container = r.create(\"div\", \"maplibregl-cooperative-gesture-screen\", t4);\n let e2 = this._map._getUIString(\"CooperativeGesturesHandler.WindowsHelpText\");\n \"metaKey\" === this._bypassKey && (e2 = this._map._getUIString(\"CooperativeGesturesHandler.MacHelpText\"));\n const i2 = this._map._getUIString(\"CooperativeGesturesHandler.MobileHelpText\"), a2 = document.createElement(\"div\");\n a2.className = \"maplibregl-desktop-message\", a2.textContent = e2, this._container.appendChild(a2);\n const s2 = document.createElement(\"div\");\n s2.className = \"maplibregl-mobile-message\", s2.textContent = i2, this._container.appendChild(s2), this._container.setAttribute(\"aria-hidden\", \"true\");\n }\n _destroyUI() {\n this._container && (r.remove(this._container), this._map.getCanvasContainer().classList.remove(\"maplibregl-cooperative-gestures\")), delete this._container;\n }\n enable() {\n this._setupUI(), this._enabled = true;\n }\n disable() {\n this._enabled = false, this._destroyUI();\n }\n isEnabled() {\n return this._enabled;\n }\n isBypassed(t4) {\n return t4[this._bypassKey];\n }\n notifyGestureBlocked(t4, i2) {\n this._enabled && (this._map.fire(new e.k(\"cooperativegestureprevented\", { gestureType: t4, originalEvent: i2 })), this._container.classList.add(\"maplibregl-show\"), setTimeout(() => {\n this._container.classList.remove(\"maplibregl-show\");\n }, 100));\n }\n }\n const xs = (t4) => t4.zoom || t4.drag || t4.pitch || t4.rotate;\n class ys extends e.k {\n }\n function bs(t4) {\n return t4.panDelta && t4.panDelta.mag() || t4.zoomDelta || t4.bearingDelta || t4.pitchDelta;\n }\n class ws {\n constructor(t4, e2) {\n this.handleWindowEvent = (t5) => {\n this.handleEvent(t5, `${t5.type}Window`);\n }, this.handleEvent = (t5, e3) => {\n if (\"blur\" === t5.type) return void this.stop(true);\n this._updatingCamera = true;\n const i3 = \"renderFrame\" === t5.type ? void 0 : t5, a2 = { needsRenderFrame: false }, s2 = {}, o2 = {}, n2 = t5.touches, l2 = n2 ? this._getMapTouches(n2) : void 0, h2 = l2 ? r.touchPos(this._map.getCanvas(), l2) : r.mousePos(this._map.getCanvas(), t5);\n for (const { handlerName: r2, handler: n3, allowed: c3 } of this._handlers) {\n if (!n3.isEnabled()) continue;\n let u3;\n this._blockedByActive(o2, c3, r2) ? n3.reset() : n3[e3 || t5.type] && (u3 = n3[e3 || t5.type](t5, h2, l2), this.mergeHandlerResult(a2, s2, u3, r2, i3), u3 && u3.needsRenderFrame && this._triggerRenderFrame()), (u3 || n3.isActive()) && (o2[r2] = n3);\n }\n const c2 = {};\n for (const t6 in this._previousActiveHandlers) o2[t6] || (c2[t6] = i3);\n this._previousActiveHandlers = o2, (Object.keys(c2).length || bs(a2)) && (this._changes.push([a2, s2, c2]), this._triggerRenderFrame()), (Object.keys(o2).length || bs(a2)) && this._map._stop(true), this._updatingCamera = false;\n const { cameraAnimation: u2 } = a2;\n u2 && (this._inertia.clear(), this._fireEvents({}, {}, true), this._changes = [], u2(this._map));\n }, this._map = t4, this._el = this._map.getCanvasContainer(), this._handlers = [], this._handlersById = {}, this._changes = [], this._inertia = new Ma(t4), this._bearingSnap = e2.bearingSnap, this._previousActiveHandlers = {}, this._eventsInProgress = {}, this._addDefaultHandlers(e2);\n const i2 = this._el;\n this._listeners = [[i2, \"touchstart\", { passive: true }], [i2, \"touchmove\", { passive: false }], [i2, \"touchend\", void 0], [i2, \"touchcancel\", void 0], [i2, \"mousedown\", void 0], [i2, \"mousemove\", void 0], [i2, \"mouseup\", void 0], [document, \"mousemove\", { capture: true }], [document, \"mouseup\", void 0], [i2, \"mouseover\", void 0], [i2, \"mouseout\", void 0], [i2, \"dblclick\", void 0], [i2, \"click\", void 0], [i2, \"keydown\", { capture: false }], [i2, \"keyup\", void 0], [i2, \"wheel\", { passive: false }], [i2, \"contextmenu\", void 0], [window, \"blur\", void 0]];\n for (const [t5, e3, i3] of this._listeners) r.addEventListener(t5, e3, t5 === document ? this.handleWindowEvent : this.handleEvent, i3);\n }\n destroy() {\n for (const [t4, e2, i2] of this._listeners) r.removeEventListener(t4, e2, t4 === document ? this.handleWindowEvent : this.handleEvent, i2);\n }\n _addDefaultHandlers(t4) {\n const e2 = this._map, i2 = e2.getCanvasContainer();\n this._add(\"mapEvent\", new Ba(e2, t4));\n const a2 = e2.boxZoom = new Ua(e2, t4);\n this._add(\"boxZoom\", a2), t4.interactive && t4.boxZoom && a2.enable();\n const s2 = e2.cooperativeGestures = new vs(e2, t4.cooperativeGestures);\n this._add(\"cooperativeGestures\", s2), t4.cooperativeGestures && s2.enable();\n const o2 = new Va(e2), n2 = new _s(e2);\n e2.doubleClickZoom = new ds(n2, o2), this._add(\"tapZoom\", o2), this._add(\"clickZoom\", n2), t4.interactive && t4.doubleClickZoom && e2.doubleClickZoom.enable();\n const l2 = new ps();\n this._add(\"tapDragZoom\", l2);\n const h2 = e2.touchPitch = new rs(e2);\n this._add(\"touchPitch\", h2), t4.interactive && t4.touchPitch && e2.touchPitch.enable(t4.touchPitch);\n const c2 = Ka(t4), u2 = Ja(t4);\n e2.dragRotate = new fs(t4, c2, u2), this._add(\"mouseRotate\", c2, [\"mousePitch\"]), this._add(\"mousePitch\", u2, [\"mouseRotate\"]), t4.interactive && t4.dragRotate && e2.dragRotate.enable();\n const d2 = (({ enable: t5, clickTolerance: e3 }) => {\n const i3 = new Wa({ checkCorrectEvent: (t6) => 0 === r.mouseButton(t6) && !t6.ctrlKey });\n return new Ga({ clickTolerance: e3, move: (t6, e4) => ({ around: e4, panDelta: e4.sub(t6) }), activateOnStart: true, moveStateManager: i3, enable: t5, assignEvents: Xa });\n })(t4), _2 = new Ya(t4, e2);\n e2.dragPan = new ms(i2, d2, _2), this._add(\"mousePan\", d2), this._add(\"touchPan\", _2, [\"touchZoom\", \"touchRotate\"]), t4.interactive && t4.dragPan && e2.dragPan.enable(t4.dragPan);\n const p2 = new ss(), m2 = new is();\n e2.touchZoomRotate = new gs(i2, m2, p2, l2), this._add(\"touchRotate\", p2, [\"touchPan\", \"touchZoom\"]), this._add(\"touchZoom\", m2, [\"touchPan\", \"touchRotate\"]), t4.interactive && t4.touchZoomRotate && e2.touchZoomRotate.enable(t4.touchZoomRotate);\n const f2 = e2.scrollZoom = new us(e2, () => this._triggerRenderFrame());\n this._add(\"scrollZoom\", f2, [\"mousePan\"]), t4.interactive && t4.scrollZoom && e2.scrollZoom.enable(t4.scrollZoom);\n const g2 = e2.keyboard = new ls(e2);\n this._add(\"keyboard\", g2), t4.interactive && t4.keyboard && e2.keyboard.enable(), this._add(\"blockableMapEvent\", new Oa(e2));\n }\n _add(t4, e2, i2) {\n this._handlers.push({ handlerName: t4, handler: e2, allowed: i2 }), this._handlersById[t4] = e2;\n }\n stop(t4) {\n if (!this._updatingCamera) {\n for (const { handler: t5 } of this._handlers) t5.reset();\n this._inertia.clear(), this._fireEvents({}, {}, t4), this._changes = [];\n }\n }\n isActive() {\n for (const { handler: t4 } of this._handlers) if (t4.isActive()) return true;\n return false;\n }\n isZooming() {\n return !!this._eventsInProgress.zoom || this._map.scrollZoom.isZooming();\n }\n isRotating() {\n return !!this._eventsInProgress.rotate;\n }\n isMoving() {\n return Boolean(xs(this._eventsInProgress)) || this.isZooming();\n }\n _blockedByActive(t4, e2, i2) {\n for (const a2 in t4) if (a2 !== i2 && (!e2 || e2.indexOf(a2) < 0)) return true;\n return false;\n }\n _getMapTouches(t4) {\n const e2 = [];\n for (const i2 of t4) this._el.contains(i2.target) && e2.push(i2);\n return e2;\n }\n mergeHandlerResult(t4, i2, a2, s2, o2) {\n if (!a2) return;\n e.e(t4, a2);\n const r2 = { handlerName: s2, originalEvent: a2.originalEvent || o2 };\n void 0 !== a2.zoomDelta && (i2.zoom = r2), void 0 !== a2.panDelta && (i2.drag = r2), void 0 !== a2.pitchDelta && (i2.pitch = r2), void 0 !== a2.bearingDelta && (i2.rotate = r2);\n }\n _applyChanges() {\n const t4 = {}, i2 = {}, a2 = {};\n for (const [s2, o2, r2] of this._changes) s2.panDelta && (t4.panDelta = (t4.panDelta || new e.P(0, 0))._add(s2.panDelta)), s2.zoomDelta && (t4.zoomDelta = (t4.zoomDelta || 0) + s2.zoomDelta), s2.bearingDelta && (t4.bearingDelta = (t4.bearingDelta || 0) + s2.bearingDelta), s2.pitchDelta && (t4.pitchDelta = (t4.pitchDelta || 0) + s2.pitchDelta), void 0 !== s2.around && (t4.around = s2.around), void 0 !== s2.pinchAround && (t4.pinchAround = s2.pinchAround), s2.noInertia && (t4.noInertia = s2.noInertia), e.e(i2, o2), e.e(a2, r2);\n this._updateMapTransform(t4, i2, a2), this._changes = [];\n }\n _updateMapTransform(t4, e2, i2) {\n const a2 = this._map, s2 = a2._getTransformForUpdate(), o2 = a2.terrain;\n if (!(bs(t4) || o2 && this._terrainMovement)) return this._fireEvents(e2, i2, true);\n let { panDelta: r2, zoomDelta: n2, bearingDelta: l2, pitchDelta: h2, around: c2, pinchAround: u2 } = t4;\n void 0 !== u2 && (c2 = u2), a2._stop(true), c2 = c2 || a2.transform.centerPoint;\n const d2 = s2.pointLocation(r2 ? c2.sub(r2) : c2);\n l2 && (s2.bearing += l2), h2 && (s2.pitch += h2), n2 && (s2.zoom += n2), o2 ? this._terrainMovement || !e2.drag && !e2.zoom ? e2.drag && this._terrainMovement ? s2.center = s2.pointLocation(s2.centerPoint.sub(r2)) : s2.setLocationAtPoint(d2, c2) : (this._terrainMovement = true, this._map._elevationFreeze = true, s2.setLocationAtPoint(d2, c2)) : s2.setLocationAtPoint(d2, c2), a2._applyUpdatedTransform(s2), this._map._update(), t4.noInertia || this._inertia.record(t4), this._fireEvents(e2, i2, true);\n }\n _fireEvents(t4, i2, a2) {\n const s2 = xs(this._eventsInProgress), r2 = xs(t4), n2 = {};\n for (const e2 in t4) {\n const { originalEvent: i3 } = t4[e2];\n this._eventsInProgress[e2] || (n2[`${e2}start`] = i3), this._eventsInProgress[e2] = t4[e2];\n }\n !s2 && r2 && this._fireEvent(\"movestart\", r2.originalEvent);\n for (const t5 in n2) this._fireEvent(t5, n2[t5]);\n r2 && this._fireEvent(\"move\", r2.originalEvent);\n for (const e2 in t4) {\n const { originalEvent: i3 } = t4[e2];\n this._fireEvent(e2, i3);\n }\n const l2 = {};\n let h2;\n for (const t5 in this._eventsInProgress) {\n const { handlerName: e2, originalEvent: a3 } = this._eventsInProgress[t5];\n this._handlersById[e2].isActive() || (delete this._eventsInProgress[t5], h2 = i2[e2] || a3, l2[`${t5}end`] = h2);\n }\n for (const t5 in l2) this._fireEvent(t5, l2[t5]);\n const c2 = xs(this._eventsInProgress), u2 = (s2 || r2) && !c2;\n if (u2 && this._terrainMovement) {\n this._map._elevationFreeze = false, this._terrainMovement = false;\n const t5 = this._map._getTransformForUpdate();\n t5.recalculateZoom(this._map.terrain), this._map._applyUpdatedTransform(t5);\n }\n if (a2 && u2) {\n this._updatingCamera = true;\n const t5 = this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions), i3 = (t6) => 0 !== t6 && -this._bearingSnap < t6 && t6 < this._bearingSnap;\n !t5 || !t5.essential && o.prefersReducedMotion ? (this._map.fire(new e.k(\"moveend\", { originalEvent: h2 })), i3(this._map.getBearing()) && this._map.resetNorth()) : (i3(t5.bearing || this._map.getBearing()) && (t5.bearing = 0), t5.freezeElevation = true, this._map.easeTo(t5, { originalEvent: h2 })), this._updatingCamera = false;\n }\n }\n _fireEvent(t4, i2) {\n this._map.fire(new e.k(t4, i2 ? { originalEvent: i2 } : {}));\n }\n _requestFrame() {\n return this._map.triggerRepaint(), this._map._renderTaskQueue.add((t4) => {\n delete this._frameId, this.handleEvent(new ys(\"renderFrame\", { timeStamp: t4 })), this._applyChanges();\n });\n }\n _triggerRenderFrame() {\n void 0 === this._frameId && (this._frameId = this._requestFrame());\n }\n }\n class Ts extends e.E {\n constructor(t4, e2) {\n super(), this._renderFrameCallback = () => {\n const t5 = Math.min((o.now() - this._easeStart) / this._easeOptions.duration, 1);\n this._onEaseFrame(this._easeOptions.easing(t5)), t5 < 1 && this._easeFrameId ? this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback) : this.stop();\n }, this._moving = false, this._zooming = false, this.transform = t4, this._bearingSnap = e2.bearingSnap, this.on(\"moveend\", () => {\n delete this._requestedCameraState;\n });\n }\n getCenter() {\n return new e.N(this.transform.center.lng, this.transform.center.lat);\n }\n setCenter(t4, e2) {\n return this.jumpTo({ center: t4 }, e2);\n }\n panBy(t4, i2, a2) {\n return t4 = e.P.convert(t4).mult(-1), this.panTo(this.transform.center, e.e({ offset: t4 }, i2), a2);\n }\n panTo(t4, i2, a2) {\n return this.easeTo(e.e({ center: t4 }, i2), a2);\n }\n getZoom() {\n return this.transform.zoom;\n }\n setZoom(t4, e2) {\n return this.jumpTo({ zoom: t4 }, e2), this;\n }\n zoomTo(t4, i2, a2) {\n return this.easeTo(e.e({ zoom: t4 }, i2), a2);\n }\n zoomIn(t4, e2) {\n return this.zoomTo(this.getZoom() + 1, t4, e2), this;\n }\n zoomOut(t4, e2) {\n return this.zoomTo(this.getZoom() - 1, t4, e2), this;\n }\n getBearing() {\n return this.transform.bearing;\n }\n setBearing(t4, e2) {\n return this.jumpTo({ bearing: t4 }, e2), this;\n }\n getPadding() {\n return this.transform.padding;\n }\n setPadding(t4, e2) {\n return this.jumpTo({ padding: t4 }, e2), this;\n }\n rotateTo(t4, i2, a2) {\n return this.easeTo(e.e({ bearing: t4 }, i2), a2);\n }\n resetNorth(t4, i2) {\n return this.rotateTo(0, e.e({ duration: 1e3 }, t4), i2), this;\n }\n resetNorthPitch(t4, i2) {\n return this.easeTo(e.e({ bearing: 0, pitch: 0, duration: 1e3 }, t4), i2), this;\n }\n snapToNorth(t4, e2) {\n return Math.abs(this.getBearing()) < this._bearingSnap ? this.resetNorth(t4, e2) : this;\n }\n getPitch() {\n return this.transform.pitch;\n }\n setPitch(t4, e2) {\n return this.jumpTo({ pitch: t4 }, e2), this;\n }\n cameraForBounds(t4, e2) {\n t4 = H.convert(t4).adjustAntiMeridian();\n const i2 = e2 && e2.bearing || 0;\n return this._cameraForBoxAndBearing(t4.getNorthWest(), t4.getSouthEast(), i2, e2);\n }\n _cameraForBoxAndBearing(t4, i2, a2, s2) {\n const o2 = { top: 0, bottom: 0, right: 0, left: 0 };\n if (\"number\" == typeof (s2 = e.e({ padding: o2, offset: [0, 0], maxZoom: this.transform.maxZoom }, s2)).padding) {\n const t5 = s2.padding;\n s2.padding = { top: t5, bottom: t5, right: t5, left: t5 };\n }\n s2.padding = e.e(o2, s2.padding);\n const r2 = this.transform, n2 = r2.padding, l2 = new H(t4, i2), h2 = r2.project(l2.getNorthWest()), c2 = r2.project(l2.getNorthEast()), u2 = r2.project(l2.getSouthEast()), d2 = r2.project(l2.getSouthWest()), _2 = e.ba(-a2), p2 = h2.rotate(_2), m2 = c2.rotate(_2), f2 = u2.rotate(_2), g2 = d2.rotate(_2), v2 = new e.P(Math.max(p2.x, m2.x, g2.x, f2.x), Math.max(p2.y, m2.y, g2.y, f2.y)), x2 = new e.P(Math.min(p2.x, m2.x, g2.x, f2.x), Math.min(p2.y, m2.y, g2.y, f2.y)), y2 = v2.sub(x2), b2 = (r2.width - (n2.left + n2.right + s2.padding.left + s2.padding.right)) / y2.x, w2 = (r2.height - (n2.top + n2.bottom + s2.padding.top + s2.padding.bottom)) / y2.y;\n if (w2 < 0 || b2 < 0) return void e.w(\"Map cannot fit within canvas with the given bounds, padding, and/or offset.\");\n const T2 = Math.min(r2.scaleZoom(r2.scale * Math.min(b2, w2)), s2.maxZoom), I2 = e.P.convert(s2.offset), E3 = new e.P((s2.padding.left - s2.padding.right) / 2, (s2.padding.top - s2.padding.bottom) / 2).rotate(e.ba(a2)), P2 = I2.add(E3).mult(r2.scale / r2.zoomScale(T2));\n return { center: r2.unproject(h2.add(u2).div(2).sub(P2)), zoom: T2, bearing: a2 };\n }\n fitBounds(t4, e2, i2) {\n return this._fitInternal(this.cameraForBounds(t4, e2), e2, i2);\n }\n fitScreenCoordinates(t4, i2, a2, s2, o2) {\n return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(e.P.convert(t4)), this.transform.pointLocation(e.P.convert(i2)), a2, s2), s2, o2);\n }\n _fitInternal(t4, i2, a2) {\n return t4 ? (delete (i2 = e.e(t4, i2)).padding, i2.linear ? this.easeTo(i2, a2) : this.flyTo(i2, a2)) : this;\n }\n jumpTo(t4, i2) {\n this.stop();\n const a2 = this._getTransformForUpdate();\n let s2 = false, o2 = false, r2 = false;\n return \"zoom\" in t4 && a2.zoom !== +t4.zoom && (s2 = true, a2.zoom = +t4.zoom), void 0 !== t4.center && (a2.center = e.N.convert(t4.center)), \"bearing\" in t4 && a2.bearing !== +t4.bearing && (o2 = true, a2.bearing = +t4.bearing), \"pitch\" in t4 && a2.pitch !== +t4.pitch && (r2 = true, a2.pitch = +t4.pitch), null == t4.padding || a2.isPaddingEqual(t4.padding) || (a2.padding = t4.padding), this._applyUpdatedTransform(a2), this.fire(new e.k(\"movestart\", i2)).fire(new e.k(\"move\", i2)), s2 && this.fire(new e.k(\"zoomstart\", i2)).fire(new e.k(\"zoom\", i2)).fire(new e.k(\"zoomend\", i2)), o2 && this.fire(new e.k(\"rotatestart\", i2)).fire(new e.k(\"rotate\", i2)).fire(new e.k(\"rotateend\", i2)), r2 && this.fire(new e.k(\"pitchstart\", i2)).fire(new e.k(\"pitch\", i2)).fire(new e.k(\"pitchend\", i2)), this.fire(new e.k(\"moveend\", i2));\n }\n calculateCameraOptionsFromTo(t4, i2, a2, s2 = 0) {\n const o2 = e.Z.fromLngLat(t4, i2), r2 = e.Z.fromLngLat(a2, s2), n2 = r2.x - o2.x, l2 = r2.y - o2.y, h2 = r2.z - o2.z, c2 = Math.hypot(n2, l2, h2);\n if (0 === c2) throw new Error(\"Can't calculate camera options with same From and To\");\n const u2 = Math.hypot(n2, l2), d2 = this.transform.scaleZoom(this.transform.cameraToCenterDistance / c2 / this.transform.tileSize), _2 = 180 * Math.atan2(n2, -l2) / Math.PI;\n let p2 = 180 * Math.acos(u2 / c2) / Math.PI;\n return p2 = h2 < 0 ? 90 - p2 : 90 + p2, { center: r2.toLngLat(), zoom: d2, pitch: p2, bearing: _2 };\n }\n easeTo(t4, i2) {\n var a2;\n this._stop(false, t4.easeId), (false === (t4 = e.e({ offset: [0, 0], duration: 500, easing: e.b9 }, t4)).animate || !t4.essential && o.prefersReducedMotion) && (t4.duration = 0);\n const s2 = this._getTransformForUpdate(), r2 = s2.zoom, n2 = s2.bearing, l2 = s2.pitch, h2 = s2.padding, c2 = \"bearing\" in t4 ? this._normalizeBearing(t4.bearing, n2) : n2, u2 = \"pitch\" in t4 ? +t4.pitch : l2, d2 = \"padding\" in t4 ? t4.padding : s2.padding, _2 = e.P.convert(t4.offset);\n let p2 = s2.centerPoint.add(_2);\n const m2 = s2.pointLocation(p2), { center: f2, zoom: g2 } = s2.getConstrained(e.N.convert(t4.center || m2), null !== (a2 = t4.zoom) && void 0 !== a2 ? a2 : r2);\n this._normalizeCenter(f2, s2);\n const v2 = s2.project(m2), x2 = s2.project(f2).sub(v2), y2 = s2.zoomScale(g2 - r2);\n let b2, w2;\n t4.around && (b2 = e.N.convert(t4.around), w2 = s2.locationPoint(b2));\n const T2 = { moving: this._moving, zooming: this._zooming, rotating: this._rotating, pitching: this._pitching };\n return this._zooming = this._zooming || g2 !== r2, this._rotating = this._rotating || n2 !== c2, this._pitching = this._pitching || u2 !== l2, this._padding = !s2.isPaddingEqual(d2), this._easeId = t4.easeId, this._prepareEase(i2, t4.noMoveStart, T2), this.terrain && this._prepareElevation(f2), this._ease((a3) => {\n if (this._zooming && (s2.zoom = e.y.number(r2, g2, a3)), this._rotating && (s2.bearing = e.y.number(n2, c2, a3)), this._pitching && (s2.pitch = e.y.number(l2, u2, a3)), this._padding && (s2.interpolatePadding(h2, d2, a3), p2 = s2.centerPoint.add(_2)), this.terrain && !t4.freezeElevation && this._updateElevation(a3), b2) s2.setLocationAtPoint(b2, w2);\n else {\n const t5 = s2.zoomScale(s2.zoom - r2), e2 = g2 > r2 ? Math.min(2, y2) : Math.max(0.5, y2), i3 = Math.pow(e2, 1 - a3), o2 = s2.unproject(v2.add(x2.mult(a3 * i3)).mult(t5));\n s2.setLocationAtPoint(s2.renderWorldCopies ? o2.wrap() : o2, p2);\n }\n this._applyUpdatedTransform(s2), this._fireMoveEvents(i2);\n }, (e2) => {\n this.terrain && t4.freezeElevation && this._finalizeElevation(), this._afterEase(i2, e2);\n }, t4), this;\n }\n _prepareEase(t4, i2, a2 = {}) {\n this._moving = true, i2 || a2.moving || this.fire(new e.k(\"movestart\", t4)), this._zooming && !a2.zooming && this.fire(new e.k(\"zoomstart\", t4)), this._rotating && !a2.rotating && this.fire(new e.k(\"rotatestart\", t4)), this._pitching && !a2.pitching && this.fire(new e.k(\"pitchstart\", t4));\n }\n _prepareElevation(t4) {\n this._elevationCenter = t4, this._elevationStart = this.transform.elevation, this._elevationTarget = this.terrain.getElevationForLngLatZoom(t4, this.transform.tileZoom), this._elevationFreeze = true;\n }\n _updateElevation(t4) {\n this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom);\n const i2 = this.terrain.getElevationForLngLatZoom(this._elevationCenter, this.transform.tileZoom);\n if (t4 < 1 && i2 !== this._elevationTarget) {\n const e2 = this._elevationTarget - this._elevationStart;\n this._elevationStart += t4 * (e2 - (i2 - (e2 * t4 + this._elevationStart)) / (1 - t4)), this._elevationTarget = i2;\n }\n this.transform.elevation = e.y.number(this._elevationStart, this._elevationTarget, t4);\n }\n _finalizeElevation() {\n this._elevationFreeze = false, this.transform.recalculateZoom(this.terrain);\n }\n _getTransformForUpdate() {\n return this.transformCameraUpdate || this.terrain ? (this._requestedCameraState || (this._requestedCameraState = this.transform.clone()), this._requestedCameraState) : this.transform;\n }\n _elevateCameraIfInsideTerrain(t4) {\n const e2 = t4.getCameraPosition(), i2 = this.terrain.getElevationForLngLatZoom(e2.lngLat, t4.zoom);\n if (e2.altitude < i2) {\n const a2 = this.calculateCameraOptionsFromTo(e2.lngLat, i2, t4.center, t4.elevation);\n return { pitch: a2.pitch, zoom: a2.zoom };\n }\n return {};\n }\n _applyUpdatedTransform(t4) {\n const e2 = [];\n if (this.terrain && e2.push((t5) => this._elevateCameraIfInsideTerrain(t5)), this.transformCameraUpdate && e2.push((t5) => this.transformCameraUpdate(t5)), !e2.length) return;\n const i2 = t4.clone();\n for (const t5 of e2) {\n const e3 = i2.clone(), { center: a2, zoom: s2, pitch: o2, bearing: r2, elevation: n2 } = t5(e3);\n a2 && (e3.center = a2), void 0 !== s2 && (e3.zoom = s2), void 0 !== o2 && (e3.pitch = o2), void 0 !== r2 && (e3.bearing = r2), void 0 !== n2 && (e3.elevation = n2), i2.apply(e3);\n }\n this.transform.apply(i2);\n }\n _fireMoveEvents(t4) {\n this.fire(new e.k(\"move\", t4)), this._zooming && this.fire(new e.k(\"zoom\", t4)), this._rotating && this.fire(new e.k(\"rotate\", t4)), this._pitching && this.fire(new e.k(\"pitch\", t4));\n }\n _afterEase(t4, i2) {\n if (this._easeId && i2 && this._easeId === i2) return;\n delete this._easeId;\n const a2 = this._zooming, s2 = this._rotating, o2 = this._pitching;\n this._moving = false, this._zooming = false, this._rotating = false, this._pitching = false, this._padding = false, a2 && this.fire(new e.k(\"zoomend\", t4)), s2 && this.fire(new e.k(\"rotateend\", t4)), o2 && this.fire(new e.k(\"pitchend\", t4)), this.fire(new e.k(\"moveend\", t4));\n }\n flyTo(t4, i2) {\n var a2;\n if (!t4.essential && o.prefersReducedMotion) {\n const a3 = e.M(t4, [\"center\", \"zoom\", \"bearing\", \"pitch\", \"around\"]);\n return this.jumpTo(a3, i2);\n }\n this.stop(), t4 = e.e({ offset: [0, 0], speed: 1.2, curve: 1.42, easing: e.b9 }, t4);\n const s2 = this._getTransformForUpdate(), r2 = s2.zoom, n2 = s2.bearing, l2 = s2.pitch, h2 = s2.padding, c2 = \"bearing\" in t4 ? this._normalizeBearing(t4.bearing, n2) : n2, u2 = \"pitch\" in t4 ? +t4.pitch : l2, d2 = \"padding\" in t4 ? t4.padding : s2.padding, _2 = e.P.convert(t4.offset);\n let p2 = s2.centerPoint.add(_2);\n const m2 = s2.pointLocation(p2), { center: f2, zoom: g2 } = s2.getConstrained(e.N.convert(t4.center || m2), null !== (a2 = t4.zoom) && void 0 !== a2 ? a2 : r2);\n this._normalizeCenter(f2, s2);\n const v2 = s2.zoomScale(g2 - r2), x2 = s2.project(m2), y2 = s2.project(f2).sub(x2);\n let b2 = t4.curve;\n const w2 = Math.max(s2.width, s2.height), T2 = w2 / v2, I2 = y2.mag();\n if (\"minZoom\" in t4) {\n const i3 = e.ac(Math.min(t4.minZoom, r2, g2), s2.minZoom, s2.maxZoom), a3 = w2 / s2.zoomScale(i3 - r2);\n b2 = Math.sqrt(a3 / I2 * 2);\n }\n const E3 = b2 * b2;\n function P2(t5) {\n const e2 = (T2 * T2 - w2 * w2 + (t5 ? -1 : 1) * E3 * E3 * I2 * I2) / (2 * (t5 ? T2 : w2) * E3 * I2);\n return Math.log(Math.sqrt(e2 * e2 + 1) - e2);\n }\n function C3(t5) {\n return (Math.exp(t5) - Math.exp(-t5)) / 2;\n }\n function S2(t5) {\n return (Math.exp(t5) + Math.exp(-t5)) / 2;\n }\n const z2 = P2(false);\n let D3 = function(t5) {\n return S2(z2) / S2(z2 + b2 * t5);\n }, M2 = function(t5) {\n return w2 * ((S2(z2) * (C3(e2 = z2 + b2 * t5) / S2(e2)) - C3(z2)) / E3) / I2;\n var e2;\n }, A3 = (P2(true) - z2) / b2;\n if (Math.abs(I2) < 1e-6 || !isFinite(A3)) {\n if (Math.abs(w2 - T2) < 1e-6) return this.easeTo(t4, i2);\n const e2 = T2 < w2 ? -1 : 1;\n A3 = Math.abs(Math.log(T2 / w2)) / b2, M2 = () => 0, D3 = (t5) => Math.exp(e2 * b2 * t5);\n }\n return t4.duration = \"duration\" in t4 ? +t4.duration : 1e3 * A3 / (\"screenSpeed\" in t4 ? +t4.screenSpeed / b2 : +t4.speed), t4.maxDuration && t4.duration > t4.maxDuration && (t4.duration = 0), this._zooming = true, this._rotating = n2 !== c2, this._pitching = u2 !== l2, this._padding = !s2.isPaddingEqual(d2), this._prepareEase(i2, false), this.terrain && this._prepareElevation(f2), this._ease((a3) => {\n const o2 = a3 * A3, m3 = 1 / D3(o2);\n s2.zoom = 1 === a3 ? g2 : r2 + s2.scaleZoom(m3), this._rotating && (s2.bearing = e.y.number(n2, c2, a3)), this._pitching && (s2.pitch = e.y.number(l2, u2, a3)), this._padding && (s2.interpolatePadding(h2, d2, a3), p2 = s2.centerPoint.add(_2)), this.terrain && !t4.freezeElevation && this._updateElevation(a3);\n const v3 = 1 === a3 ? f2 : s2.unproject(x2.add(y2.mult(M2(o2))).mult(m3));\n s2.setLocationAtPoint(s2.renderWorldCopies ? v3.wrap() : v3, p2), this._applyUpdatedTransform(s2), this._fireMoveEvents(i2);\n }, () => {\n this.terrain && t4.freezeElevation && this._finalizeElevation(), this._afterEase(i2);\n }, t4), this;\n }\n isEasing() {\n return !!this._easeFrameId;\n }\n stop() {\n return this._stop();\n }\n _stop(t4, e2) {\n var i2;\n if (this._easeFrameId && (this._cancelRenderFrame(this._easeFrameId), delete this._easeFrameId, delete this._onEaseFrame), this._onEaseEnd) {\n const t5 = this._onEaseEnd;\n delete this._onEaseEnd, t5.call(this, e2);\n }\n return t4 || null === (i2 = this.handlers) || void 0 === i2 || i2.stop(false), this;\n }\n _ease(t4, e2, i2) {\n false === i2.animate || 0 === i2.duration ? (t4(1), e2()) : (this._easeStart = o.now(), this._easeOptions = i2, this._onEaseFrame = t4, this._onEaseEnd = e2, this._easeFrameId = this._requestRenderFrame(this._renderFrameCallback));\n }\n _normalizeBearing(t4, i2) {\n t4 = e.b3(t4, -180, 180);\n const a2 = Math.abs(t4 - i2);\n return Math.abs(t4 - 360 - i2) < a2 && (t4 -= 360), Math.abs(t4 + 360 - i2) < a2 && (t4 += 360), t4;\n }\n _normalizeCenter(t4, e2) {\n if (!e2.renderWorldCopies || e2.lngRange) return;\n const i2 = t4.lng - e2.center.lng;\n t4.lng += i2 > 180 ? -360 : i2 < -180 ? 360 : 0;\n }\n queryTerrainElevation(t4) {\n return this.terrain ? this.terrain.getElevationForLngLatZoom(e.N.convert(t4), this.transform.tileZoom) - this.transform.elevation : null;\n }\n }\n const Is = { compact: true, customAttribution: 'MapLibre' };\n class Es {\n constructor(t4 = Is) {\n this._toggleAttribution = () => {\n this._container.classList.contains(\"maplibregl-compact\") && (this._container.classList.contains(\"maplibregl-compact-show\") ? (this._container.setAttribute(\"open\", \"\"), this._container.classList.remove(\"maplibregl-compact-show\")) : (this._container.classList.add(\"maplibregl-compact-show\"), this._container.removeAttribute(\"open\")));\n }, this._updateData = (t5) => {\n !t5 || \"metadata\" !== t5.sourceDataType && \"visibility\" !== t5.sourceDataType && \"style\" !== t5.dataType && \"terrain\" !== t5.type || this._updateAttributions();\n }, this._updateCompact = () => {\n this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false === this._compact ? this._container.setAttribute(\"open\", \"\") : this._container.classList.contains(\"maplibregl-compact\") || this._container.classList.contains(\"maplibregl-attrib-empty\") || (this._container.setAttribute(\"open\", \"\"), this._container.classList.add(\"maplibregl-compact\", \"maplibregl-compact-show\")) : (this._container.setAttribute(\"open\", \"\"), this._container.classList.contains(\"maplibregl-compact\") && this._container.classList.remove(\"maplibregl-compact\", \"maplibregl-compact-show\"));\n }, this._updateCompactMinimize = () => {\n this._container.classList.contains(\"maplibregl-compact\") && this._container.classList.contains(\"maplibregl-compact-show\") && this._container.classList.remove(\"maplibregl-compact-show\");\n }, this.options = t4;\n }\n getDefaultPosition() {\n return \"bottom-right\";\n }\n onAdd(t4) {\n return this._map = t4, this._compact = this.options.compact, this._container = r.create(\"details\", \"maplibregl-ctrl maplibregl-ctrl-attrib\"), this._compactButton = r.create(\"summary\", \"maplibregl-ctrl-attrib-button\", this._container), this._compactButton.addEventListener(\"click\", this._toggleAttribution), this._setElementTitle(this._compactButton, \"ToggleAttribution\"), this._innerContainer = r.create(\"div\", \"maplibregl-ctrl-attrib-inner\", this._container), this._updateAttributions(), this._updateCompact(), this._map.on(\"styledata\", this._updateData), this._map.on(\"sourcedata\", this._updateData), this._map.on(\"terrain\", this._updateData), this._map.on(\"resize\", this._updateCompact), this._map.on(\"drag\", this._updateCompactMinimize), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"styledata\", this._updateData), this._map.off(\"sourcedata\", this._updateData), this._map.off(\"terrain\", this._updateData), this._map.off(\"resize\", this._updateCompact), this._map.off(\"drag\", this._updateCompactMinimize), this._map = void 0, this._compact = void 0, this._attribHTML = void 0;\n }\n _setElementTitle(t4, e2) {\n const i2 = this._map._getUIString(`AttributionControl.${e2}`);\n t4.title = i2, t4.setAttribute(\"aria-label\", i2);\n }\n _updateAttributions() {\n if (!this._map.style) return;\n let t4 = [];\n if (this.options.customAttribution && (Array.isArray(this.options.customAttribution) ? t4 = t4.concat(this.options.customAttribution.map((t5) => \"string\" != typeof t5 ? \"\" : t5)) : \"string\" == typeof this.options.customAttribution && t4.push(this.options.customAttribution)), this._map.style.stylesheet) {\n const t5 = this._map.style.stylesheet;\n this.styleOwner = t5.owner, this.styleId = t5.id;\n }\n const e2 = this._map.style.sourceCaches;\n for (const i3 in e2) {\n const a2 = e2[i3];\n if (a2.used || a2.usedForTerrain) {\n const e3 = a2.getSource();\n e3.attribution && t4.indexOf(e3.attribution) < 0 && t4.push(e3.attribution);\n }\n }\n t4 = t4.filter((t5) => String(t5).trim()), t4.sort((t5, e3) => t5.length - e3.length), t4 = t4.filter((e3, i3) => {\n for (let a2 = i3 + 1; a2 < t4.length; a2++) if (t4[a2].indexOf(e3) >= 0) return false;\n return true;\n });\n const i2 = t4.join(\" | \");\n i2 !== this._attribHTML && (this._attribHTML = i2, t4.length ? (this._innerContainer.innerHTML = i2, this._container.classList.remove(\"maplibregl-attrib-empty\")) : this._container.classList.add(\"maplibregl-attrib-empty\"), this._updateCompact(), this._editLink = null);\n }\n }\n class Ps {\n constructor(t4 = {}) {\n this._updateCompact = () => {\n const t5 = this._container.children;\n if (t5.length) {\n const e2 = t5[0];\n this._map.getCanvasContainer().offsetWidth <= 640 || this._compact ? false !== this._compact && e2.classList.add(\"maplibregl-compact\") : e2.classList.remove(\"maplibregl-compact\");\n }\n }, this.options = t4;\n }\n getDefaultPosition() {\n return \"bottom-left\";\n }\n onAdd(t4) {\n this._map = t4, this._compact = this.options && this.options.compact, this._container = r.create(\"div\", \"maplibregl-ctrl\");\n const e2 = r.create(\"a\", \"maplibregl-ctrl-logo\");\n return e2.target = \"_blank\", e2.rel = \"noopener nofollow\", e2.href = \"https://maplibre.org/\", e2.setAttribute(\"aria-label\", this._map._getUIString(\"LogoControl.Title\")), e2.setAttribute(\"rel\", \"noopener nofollow\"), this._container.appendChild(e2), this._container.style.display = \"block\", this._map.on(\"resize\", this._updateCompact), this._updateCompact(), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"resize\", this._updateCompact), this._map = void 0, this._compact = void 0;\n }\n }\n class Cs {\n constructor() {\n this._queue = [], this._id = 0, this._cleared = false, this._currentlyRunning = false;\n }\n add(t4) {\n const e2 = ++this._id;\n return this._queue.push({ callback: t4, id: e2, cancelled: false }), e2;\n }\n remove(t4) {\n const e2 = this._currentlyRunning, i2 = e2 ? this._queue.concat(e2) : this._queue;\n for (const e3 of i2) if (e3.id === t4) return void (e3.cancelled = true);\n }\n run(t4 = 0) {\n if (this._currentlyRunning) throw new Error(\"Attempting to run(), but is already running.\");\n const e2 = this._currentlyRunning = this._queue;\n this._queue = [];\n for (const i2 of e2) if (!i2.cancelled && (i2.callback(t4), this._cleared)) break;\n this._cleared = false, this._currentlyRunning = false;\n }\n clear() {\n this._currentlyRunning && (this._cleared = true), this._queue = [];\n }\n }\n var Ss = e.Y([{ name: \"a_pos3d\", type: \"Int16\", components: 3 }]);\n class zs extends e.E {\n constructor(t4) {\n super(), this.sourceCache = t4, this._tiles = {}, this._renderableTilesKeys = [], this._sourceTileCache = {}, this.minzoom = 0, this.maxzoom = 22, this.tileSize = 512, this.deltaZoom = 1, t4.usedForTerrain = true, t4.tileSize = this.tileSize * 2 ** this.deltaZoom;\n }\n destruct() {\n this.sourceCache.usedForTerrain = false, this.sourceCache.tileSize = null;\n }\n update(t4, i2) {\n this.sourceCache.update(t4, i2), this._renderableTilesKeys = [];\n const a2 = {};\n for (const s2 of t4.coveringTiles({ tileSize: this.tileSize, minzoom: this.minzoom, maxzoom: this.maxzoom, reparseOverscaled: false, terrain: i2 })) a2[s2.key] = true, this._renderableTilesKeys.push(s2.key), this._tiles[s2.key] || (s2.posMatrix = new Float64Array(16), e.aP(s2.posMatrix, 0, e.X, 0, e.X, 0, 1), this._tiles[s2.key] = new lt(s2, this.tileSize));\n for (const t5 in this._tiles) a2[t5] || delete this._tiles[t5];\n }\n freeRtt(t4) {\n for (const e2 in this._tiles) {\n const i2 = this._tiles[e2];\n (!t4 || i2.tileID.equals(t4) || i2.tileID.isChildOf(t4) || t4.isChildOf(i2.tileID)) && (i2.rtt = []);\n }\n }\n getRenderableTiles() {\n return this._renderableTilesKeys.map((t4) => this.getTileByID(t4));\n }\n getTileByID(t4) {\n return this._tiles[t4];\n }\n getTerrainCoords(t4) {\n const i2 = {};\n for (const a2 of this._renderableTilesKeys) {\n const s2 = this._tiles[a2].tileID;\n if (s2.canonical.equals(t4.canonical)) {\n const s3 = t4.clone();\n s3.posMatrix = new Float64Array(16), e.aP(s3.posMatrix, 0, e.X, 0, e.X, 0, 1), i2[a2] = s3;\n } else if (s2.canonical.isChildOf(t4.canonical)) {\n const o2 = t4.clone();\n o2.posMatrix = new Float64Array(16);\n const r2 = s2.canonical.z - t4.canonical.z, n2 = s2.canonical.x - (s2.canonical.x >> r2 << r2), l2 = s2.canonical.y - (s2.canonical.y >> r2 << r2), h2 = e.X >> r2;\n e.aP(o2.posMatrix, 0, h2, 0, h2, 0, 1), e.J(o2.posMatrix, o2.posMatrix, [-n2 * h2, -l2 * h2, 0]), i2[a2] = o2;\n } else if (t4.canonical.isChildOf(s2.canonical)) {\n const o2 = t4.clone();\n o2.posMatrix = new Float64Array(16);\n const r2 = t4.canonical.z - s2.canonical.z, n2 = t4.canonical.x - (t4.canonical.x >> r2 << r2), l2 = t4.canonical.y - (t4.canonical.y >> r2 << r2), h2 = e.X >> r2;\n e.aP(o2.posMatrix, 0, e.X, 0, e.X, 0, 1), e.J(o2.posMatrix, o2.posMatrix, [n2 * h2, l2 * h2, 0]), e.K(o2.posMatrix, o2.posMatrix, [1 / 2 ** r2, 1 / 2 ** r2, 0]), i2[a2] = o2;\n }\n }\n return i2;\n }\n getSourceTile(t4, e2) {\n const i2 = this.sourceCache._source;\n let a2 = t4.overscaledZ - this.deltaZoom;\n if (a2 > i2.maxzoom && (a2 = i2.maxzoom), a2 < i2.minzoom) return null;\n this._sourceTileCache[t4.key] || (this._sourceTileCache[t4.key] = t4.scaledTo(a2).key);\n let s2 = this.sourceCache.getTileByID(this._sourceTileCache[t4.key]);\n if ((!s2 || !s2.dem) && e2) for (; a2 >= i2.minzoom && (!s2 || !s2.dem); ) s2 = this.sourceCache.getTileByID(t4.scaledTo(a2--).key);\n return s2;\n }\n tilesAfterTime(t4 = Date.now()) {\n return Object.values(this._tiles).filter((e2) => e2.timeAdded >= t4);\n }\n }\n class Ds {\n constructor(t4, e2, i2) {\n this.painter = t4, this.sourceCache = new zs(e2), this.options = i2, this.exaggeration = \"number\" == typeof i2.exaggeration ? i2.exaggeration : 1, this.qualityFactor = 2, this.meshSize = 128, this._demMatrixCache = {}, this.coordsIndex = [], this._coordsTextureSize = 1024;\n }\n getDEMElevation(t4, i2, a2, s2 = e.X) {\n var o2;\n if (!(i2 >= 0 && i2 < s2 && a2 >= 0 && a2 < s2)) return 0;\n const r2 = this.getTerrainData(t4), n2 = null === (o2 = r2.tile) || void 0 === o2 ? void 0 : o2.dem;\n if (!n2) return 0;\n const l2 = function(t5, e2, i3) {\n var a3 = e2[0], s3 = e2[1];\n return t5[0] = i3[0] * a3 + i3[4] * s3 + i3[12], t5[1] = i3[1] * a3 + i3[5] * s3 + i3[13], t5;\n }([], [i2 / s2 * e.X, a2 / s2 * e.X], r2.u_terrain_matrix), h2 = [l2[0] * n2.dim, l2[1] * n2.dim], c2 = Math.floor(h2[0]), u2 = Math.floor(h2[1]), d2 = h2[0] - c2, _2 = h2[1] - u2;\n return n2.get(c2, u2) * (1 - d2) * (1 - _2) + n2.get(c2 + 1, u2) * d2 * (1 - _2) + n2.get(c2, u2 + 1) * (1 - d2) * _2 + n2.get(c2 + 1, u2 + 1) * d2 * _2;\n }\n getElevationForLngLatZoom(t4, i2) {\n if (!e.bb(i2, t4.wrap())) return 0;\n const { tileID: a2, mercatorX: s2, mercatorY: o2 } = this._getOverscaledTileIDFromLngLatZoom(t4, i2);\n return this.getElevation(a2, s2 % e.X, o2 % e.X, e.X);\n }\n getElevation(t4, i2, a2, s2 = e.X) {\n return this.getDEMElevation(t4, i2, a2, s2) * this.exaggeration;\n }\n getTerrainData(t4) {\n if (!this._emptyDemTexture) {\n const t5 = this.painter.context, i3 = new e.R({ width: 1, height: 1 }, new Uint8Array(4));\n this._emptyDepthTexture = new b(t5, i3, t5.gl.RGBA, { premultiply: false }), this._emptyDemUnpack = [0, 0, 0, 0], this._emptyDemTexture = new b(t5, new e.R({ width: 1, height: 1 }), t5.gl.RGBA, { premultiply: false }), this._emptyDemTexture.bind(t5.gl.NEAREST, t5.gl.CLAMP_TO_EDGE), this._emptyDemMatrix = e.an([]);\n }\n const i2 = this.sourceCache.getSourceTile(t4, true);\n if (i2 && i2.dem && (!i2.demTexture || i2.needsTerrainPrepare)) {\n const t5 = this.painter.context;\n i2.demTexture = this.painter.getTileTexture(i2.dem.stride), i2.demTexture ? i2.demTexture.update(i2.dem.getPixels(), { premultiply: false }) : i2.demTexture = new b(t5, i2.dem.getPixels(), t5.gl.RGBA, { premultiply: false }), i2.demTexture.bind(t5.gl.NEAREST, t5.gl.CLAMP_TO_EDGE), i2.needsTerrainPrepare = false;\n }\n const a2 = i2 && i2 + i2.tileID.key + t4.key;\n if (a2 && !this._demMatrixCache[a2]) {\n const a3 = this.sourceCache.sourceCache._source.maxzoom;\n let s2 = t4.canonical.z - i2.tileID.canonical.z;\n t4.overscaledZ > t4.canonical.z && (t4.canonical.z >= a3 ? s2 = t4.canonical.z - a3 : e.w(\"cannot calculate elevation if elevation maxzoom > source.maxzoom\"));\n const o2 = t4.canonical.x - (t4.canonical.x >> s2 << s2), r2 = t4.canonical.y - (t4.canonical.y >> s2 << s2), n2 = e.bc(new Float64Array(16), [1 / (e.X << s2), 1 / (e.X << s2), 0]);\n e.J(n2, n2, [o2 * e.X, r2 * e.X, 0]), this._demMatrixCache[t4.key] = { matrix: n2, coord: t4 };\n }\n return { u_depth: 2, u_terrain: 3, u_terrain_dim: i2 && i2.dem && i2.dem.dim || 1, u_terrain_matrix: a2 ? this._demMatrixCache[t4.key].matrix : this._emptyDemMatrix, u_terrain_unpack: i2 && i2.dem && i2.dem.getUnpackVector() || this._emptyDemUnpack, u_terrain_exaggeration: this.exaggeration, texture: (i2 && i2.demTexture || this._emptyDemTexture).texture, depthTexture: (this._fboDepthTexture || this._emptyDepthTexture).texture, tile: i2 };\n }\n getFramebuffer(t4) {\n const e2 = this.painter, i2 = e2.width / devicePixelRatio, a2 = e2.height / devicePixelRatio;\n return !this._fbo || this._fbo.width === i2 && this._fbo.height === a2 || (this._fbo.destroy(), this._fboCoordsTexture.destroy(), this._fboDepthTexture.destroy(), delete this._fbo, delete this._fboDepthTexture, delete this._fboCoordsTexture), this._fboCoordsTexture || (this._fboCoordsTexture = new b(e2.context, { width: i2, height: a2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboCoordsTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fboDepthTexture || (this._fboDepthTexture = new b(e2.context, { width: i2, height: a2, data: null }, e2.context.gl.RGBA, { premultiply: false }), this._fboDepthTexture.bind(e2.context.gl.NEAREST, e2.context.gl.CLAMP_TO_EDGE)), this._fbo || (this._fbo = e2.context.createFramebuffer(i2, a2, true, false), this._fbo.depthAttachment.set(e2.context.createRenderbuffer(e2.context.gl.DEPTH_COMPONENT16, i2, a2))), this._fbo.colorAttachment.set(\"coords\" === t4 ? this._fboCoordsTexture.texture : this._fboDepthTexture.texture), this._fbo;\n }\n getCoordsTexture() {\n const t4 = this.painter.context;\n if (this._coordsTexture) return this._coordsTexture;\n const i2 = new Uint8Array(this._coordsTextureSize * this._coordsTextureSize * 4);\n for (let t5 = 0, e2 = 0; t5 < this._coordsTextureSize; t5++) for (let a3 = 0; a3 < this._coordsTextureSize; a3++, e2 += 4) i2[e2 + 0] = 255 & a3, i2[e2 + 1] = 255 & t5, i2[e2 + 2] = a3 >> 8 << 4 | t5 >> 8, i2[e2 + 3] = 0;\n const a2 = new e.R({ width: this._coordsTextureSize, height: this._coordsTextureSize }, new Uint8Array(i2.buffer)), s2 = new b(t4, a2, t4.gl.RGBA, { premultiply: false });\n return s2.bind(t4.gl.NEAREST, t4.gl.CLAMP_TO_EDGE), this._coordsTexture = s2, s2;\n }\n pointCoordinate(t4) {\n this.painter.maybeDrawDepthAndCoords(true);\n const i2 = new Uint8Array(4), a2 = this.painter.context, s2 = a2.gl, o2 = Math.round(t4.x * this.painter.pixelRatio / devicePixelRatio), r2 = Math.round(t4.y * this.painter.pixelRatio / devicePixelRatio), n2 = Math.round(this.painter.height / devicePixelRatio);\n a2.bindFramebuffer.set(this.getFramebuffer(\"coords\").framebuffer), s2.readPixels(o2, n2 - r2 - 1, 1, 1, s2.RGBA, s2.UNSIGNED_BYTE, i2), a2.bindFramebuffer.set(null);\n const l2 = i2[0] + (i2[2] >> 4 << 8), h2 = i2[1] + ((15 & i2[2]) << 8), c2 = this.coordsIndex[255 - i2[3]], u2 = c2 && this.sourceCache.getTileByID(c2);\n if (!u2) return null;\n const d2 = this._coordsTextureSize, _2 = (1 << u2.tileID.canonical.z) * d2;\n return new e.Z((u2.tileID.canonical.x * d2 + l2) / _2 + u2.tileID.wrap, (u2.tileID.canonical.y * d2 + h2) / _2, this.getElevation(u2.tileID, l2, h2, d2));\n }\n depthAtPoint(t4) {\n const e2 = new Uint8Array(4), i2 = this.painter.context, a2 = i2.gl;\n return i2.bindFramebuffer.set(this.getFramebuffer(\"depth\").framebuffer), a2.readPixels(t4.x, this.painter.height / devicePixelRatio - t4.y - 1, 1, 1, a2.RGBA, a2.UNSIGNED_BYTE, e2), i2.bindFramebuffer.set(null), (e2[0] / 16777216 + e2[1] / 65536 + e2[2] / 256 + e2[3]) / 256;\n }\n getTerrainMesh() {\n if (this._mesh) return this._mesh;\n const t4 = this.painter.context, i2 = new e.bd(), a2 = new e.aY(), s2 = this.meshSize, o2 = e.X / s2, r2 = s2 * s2;\n for (let t5 = 0; t5 <= s2; t5++) for (let e2 = 0; e2 <= s2; e2++) i2.emplaceBack(e2 * o2, t5 * o2, 0);\n for (let t5 = 0; t5 < r2; t5 += s2 + 1) for (let e2 = 0; e2 < s2; e2++) a2.emplaceBack(e2 + t5, s2 + e2 + t5 + 1, s2 + e2 + t5 + 2), a2.emplaceBack(e2 + t5, s2 + e2 + t5 + 2, e2 + t5 + 1);\n const n2 = i2.length, l2 = n2 + 2 * (s2 + 1);\n for (const t5 of [0, 1]) for (let a3 = 0; a3 <= s2; a3++) for (const s3 of [0, 1]) i2.emplaceBack(a3 * o2, t5 * e.X, s3);\n for (let t5 = 0; t5 < 2 * s2; t5 += 2) a2.emplaceBack(l2 + t5, l2 + t5 + 1, l2 + t5 + 3), a2.emplaceBack(l2 + t5, l2 + t5 + 3, l2 + t5 + 2), a2.emplaceBack(n2 + t5, n2 + t5 + 3, n2 + t5 + 1), a2.emplaceBack(n2 + t5, n2 + t5 + 2, n2 + t5 + 3);\n const h2 = i2.length, c2 = h2 + 2 * (s2 + 1);\n for (const t5 of [0, 1]) for (let a3 = 0; a3 <= s2; a3++) for (const s3 of [0, 1]) i2.emplaceBack(t5 * e.X, a3 * o2, s3);\n for (let t5 = 0; t5 < 2 * s2; t5 += 2) a2.emplaceBack(h2 + t5, h2 + t5 + 1, h2 + t5 + 3), a2.emplaceBack(h2 + t5, h2 + t5 + 3, h2 + t5 + 2), a2.emplaceBack(c2 + t5, c2 + t5 + 3, c2 + t5 + 1), a2.emplaceBack(c2 + t5, c2 + t5 + 2, c2 + t5 + 3);\n return this._mesh = new ga(t4.createVertexBuffer(i2, Ss.members), t4.createIndexBuffer(a2), e.a0.simpleSegment(0, 0, i2.length, a2.length)), this._mesh;\n }\n getMeshFrameDelta(t4) {\n return 2 * Math.PI * e.be / Math.pow(2, t4) / 5;\n }\n getMinTileElevationForLngLatZoom(t4, e2) {\n var i2;\n const { tileID: a2 } = this._getOverscaledTileIDFromLngLatZoom(t4, e2);\n return null !== (i2 = this.getMinMaxElevation(a2).minElevation) && void 0 !== i2 ? i2 : 0;\n }\n getMinMaxElevation(t4) {\n const e2 = this.getTerrainData(t4).tile, i2 = { minElevation: null, maxElevation: null };\n return e2 && e2.dem && (i2.minElevation = e2.dem.min * this.exaggeration, i2.maxElevation = e2.dem.max * this.exaggeration), i2;\n }\n _getOverscaledTileIDFromLngLatZoom(t4, i2) {\n const a2 = e.Z.fromLngLat(t4.wrap()), s2 = (1 << i2) * e.X, o2 = a2.x * s2, r2 = a2.y * s2, n2 = Math.floor(o2 / e.X), l2 = Math.floor(r2 / e.X);\n return { tileID: new e.S(i2, 0, i2, n2, l2), mercatorX: o2, mercatorY: r2 };\n }\n }\n class Ms {\n constructor(t4, e2, i2) {\n this._context = t4, this._size = e2, this._tileSize = i2, this._objects = [], this._recentlyUsed = [], this._stamp = 0;\n }\n destruct() {\n for (const t4 of this._objects) t4.texture.destroy(), t4.fbo.destroy();\n }\n _createObject(t4) {\n const e2 = this._context.createFramebuffer(this._tileSize, this._tileSize, true, true), i2 = new b(this._context, { width: this._tileSize, height: this._tileSize, data: null }, this._context.gl.RGBA);\n return i2.bind(this._context.gl.LINEAR, this._context.gl.CLAMP_TO_EDGE), e2.depthAttachment.set(this._context.createRenderbuffer(this._context.gl.DEPTH_STENCIL, this._tileSize, this._tileSize)), e2.colorAttachment.set(i2.texture), { id: t4, fbo: e2, texture: i2, stamp: -1, inUse: false };\n }\n getObjectForId(t4) {\n return this._objects[t4];\n }\n useObject(t4) {\n t4.inUse = true, this._recentlyUsed = this._recentlyUsed.filter((e2) => t4.id !== e2), this._recentlyUsed.push(t4.id);\n }\n stampObject(t4) {\n t4.stamp = ++this._stamp;\n }\n getOrCreateFreeObject() {\n for (const t5 of this._recentlyUsed) if (!this._objects[t5].inUse) return this._objects[t5];\n if (this._objects.length >= this._size) throw new Error(\"No free RenderPool available, call freeAllObjects() required!\");\n const t4 = this._createObject(this._objects.length);\n return this._objects.push(t4), t4;\n }\n freeObject(t4) {\n t4.inUse = false;\n }\n freeAllObjects() {\n for (const t4 of this._objects) this.freeObject(t4);\n }\n isFull() {\n return !(this._objects.length < this._size) && false === this._objects.some((t4) => !t4.inUse);\n }\n }\n const As = { background: true, fill: true, line: true, raster: true, hillshade: true };\n class Rs {\n constructor(t4, e2) {\n this.painter = t4, this.terrain = e2, this.pool = new Ms(t4.context, 30, e2.sourceCache.tileSize * e2.qualityFactor);\n }\n destruct() {\n this.pool.destruct();\n }\n getTexture(t4) {\n return this.pool.getObjectForId(t4.rtt[this._stacks.length - 1].id).texture;\n }\n prepareForRender(t4, e2) {\n this._stacks = [], this._prevType = null, this._rttTiles = [], this._renderableTiles = this.terrain.sourceCache.getRenderableTiles(), this._renderableLayerIds = t4._order.filter((i2) => !t4._layers[i2].isHidden(e2)), this._coordsDescendingInv = {};\n for (const e3 in t4.sourceCaches) {\n this._coordsDescendingInv[e3] = {};\n const i2 = t4.sourceCaches[e3].getVisibleCoordinates();\n for (const t5 of i2) {\n const i3 = this.terrain.sourceCache.getTerrainCoords(t5);\n for (const t6 in i3) this._coordsDescendingInv[e3][t6] || (this._coordsDescendingInv[e3][t6] = []), this._coordsDescendingInv[e3][t6].push(i3[t6]);\n }\n }\n this._coordsDescendingInvStr = {};\n for (const e3 of t4._order) {\n const i2 = t4._layers[e3], a2 = i2.source;\n if (As[i2.type] && !this._coordsDescendingInvStr[a2]) {\n this._coordsDescendingInvStr[a2] = {};\n for (const t5 in this._coordsDescendingInv[a2]) this._coordsDescendingInvStr[a2][t5] = this._coordsDescendingInv[a2][t5].map((t6) => t6.key).sort().join();\n }\n }\n for (const t5 of this._renderableTiles) for (const e3 in this._coordsDescendingInvStr) {\n const i2 = this._coordsDescendingInvStr[e3][t5.tileID.key];\n i2 && i2 !== t5.rttCoords[e3] && (t5.rtt = []);\n }\n }\n renderLayer(t4) {\n if (t4.isHidden(this.painter.transform.zoom)) return false;\n const i2 = t4.type, a2 = this.painter, s2 = this._renderableLayerIds[this._renderableLayerIds.length - 1] === t4.id;\n if (As[i2] && (this._prevType && As[this._prevType] || this._stacks.push([]), this._prevType = i2, this._stacks[this._stacks.length - 1].push(t4.id), !s2)) return true;\n if (As[this._prevType] || As[i2] && s2) {\n this._prevType = i2;\n const t5 = this._stacks.length - 1, s3 = this._stacks[t5] || [];\n for (const i3 of this._renderableTiles) {\n if (this.pool.isFull() && (fa(this.painter, this.terrain, this._rttTiles), this._rttTiles = [], this.pool.freeAllObjects()), this._rttTiles.push(i3), i3.rtt[t5]) {\n const e2 = this.pool.getObjectForId(i3.rtt[t5].id);\n if (e2.stamp === i3.rtt[t5].stamp) {\n this.pool.useObject(e2);\n continue;\n }\n }\n const o2 = this.pool.getOrCreateFreeObject();\n this.pool.useObject(o2), this.pool.stampObject(o2), i3.rtt[t5] = { id: o2.id, stamp: o2.stamp }, a2.context.bindFramebuffer.set(o2.fbo.framebuffer), a2.context.clear({ color: e.aM.transparent, stencil: 0 }), a2.currentStencilSource = void 0;\n for (let t6 = 0; t6 < s3.length; t6++) {\n const e2 = a2.style._layers[s3[t6]], r2 = e2.source ? this._coordsDescendingInv[e2.source][i3.tileID.key] : [i3.tileID];\n a2.context.viewport.set([0, 0, o2.fbo.width, o2.fbo.height]), a2._renderTileClippingMasks(e2, r2), a2.renderLayer(a2, a2.style.sourceCaches[e2.source], e2, r2), e2.source && (i3.rttCoords[e2.source] = this._coordsDescendingInvStr[e2.source][i3.tileID.key]);\n }\n }\n return fa(this.painter, this.terrain, this._rttTiles), this._rttTiles = [], this.pool.freeAllObjects(), As[i2];\n }\n return false;\n }\n }\n const ks = { \"AttributionControl.ToggleAttribution\": \"Toggle attribution\", \"AttributionControl.MapFeedback\": \"Map feedback\", \"FullscreenControl.Enter\": \"Enter fullscreen\", \"FullscreenControl.Exit\": \"Exit fullscreen\", \"GeolocateControl.FindMyLocation\": \"Find my location\", \"GeolocateControl.LocationNotAvailable\": \"Location not available\", \"LogoControl.Title\": \"MapLibre logo\", \"Map.Title\": \"Map\", \"Marker.Title\": \"Map marker\", \"NavigationControl.ResetBearing\": \"Reset bearing to north\", \"NavigationControl.ZoomIn\": \"Zoom in\", \"NavigationControl.ZoomOut\": \"Zoom out\", \"Popup.Close\": \"Close popup\", \"ScaleControl.Feet\": \"ft\", \"ScaleControl.Meters\": \"m\", \"ScaleControl.Kilometers\": \"km\", \"ScaleControl.Miles\": \"mi\", \"ScaleControl.NauticalMiles\": \"nm\", \"TerrainControl.Enable\": \"Enable terrain\", \"TerrainControl.Disable\": \"Disable terrain\", \"CooperativeGesturesHandler.WindowsHelpText\": \"Use Ctrl + scroll to zoom the map\", \"CooperativeGesturesHandler.MacHelpText\": \"Use \\u2318 + scroll to zoom the map\", \"CooperativeGesturesHandler.MobileHelpText\": \"Use two fingers to move the map\" }, Ls = i, Fs = { hash: false, interactive: true, bearingSnap: 7, attributionControl: Is, maplibreLogo: false, failIfMajorPerformanceCaveat: false, preserveDrawingBuffer: false, refreshExpiredTiles: true, scrollZoom: true, minZoom: -2, maxZoom: 22, minPitch: 0, maxPitch: 60, boxZoom: true, dragRotate: true, dragPan: true, keyboard: true, doubleClickZoom: true, touchZoomRotate: true, touchPitch: true, cooperativeGestures: false, trackResize: true, center: [0, 0], zoom: 0, bearing: 0, pitch: 0, renderWorldCopies: true, maxTileCacheSize: null, maxTileCacheZoomLevels: e.a.MAX_TILE_CACHE_ZOOM_LEVELS, transformRequest: null, transformCameraUpdate: null, fadeDuration: 300, crossSourceCollisions: true, clickTolerance: 3, localIdeographFontFamily: \"sans-serif\", pitchWithRotate: true, validateStyle: true, maxCanvasSize: [4096, 4096], cancelPendingTileRequestsWhileZooming: true }, Bs = (t4) => {\n t4.touchstart = t4.dragStart, t4.touchmoveWindow = t4.dragMove, t4.touchend = t4.dragEnd;\n }, Os = { showCompass: true, showZoom: true, visualizePitch: false };\n class Ns {\n constructor(t4, i2, a2 = false) {\n this.mousedown = (t5) => {\n this.startMouse(e.e({}, t5, { ctrlKey: true, preventDefault: () => t5.preventDefault() }), r.mousePos(this.element, t5)), r.addEventListener(window, \"mousemove\", this.mousemove), r.addEventListener(window, \"mouseup\", this.mouseup);\n }, this.mousemove = (t5) => {\n this.moveMouse(t5, r.mousePos(this.element, t5));\n }, this.mouseup = (t5) => {\n this.mouseRotate.dragEnd(t5), this.mousePitch && this.mousePitch.dragEnd(t5), this.offTemp();\n }, this.touchstart = (t5) => {\n 1 !== t5.targetTouches.length ? this.reset() : (this._startPos = this._lastPos = r.touchPos(this.element, t5.targetTouches)[0], this.startTouch(t5, this._startPos), r.addEventListener(window, \"touchmove\", this.touchmove, { passive: false }), r.addEventListener(window, \"touchend\", this.touchend));\n }, this.touchmove = (t5) => {\n 1 !== t5.targetTouches.length ? this.reset() : (this._lastPos = r.touchPos(this.element, t5.targetTouches)[0], this.moveTouch(t5, this._lastPos));\n }, this.touchend = (t5) => {\n 0 === t5.targetTouches.length && this._startPos && this._lastPos && this._startPos.dist(this._lastPos) < this._clickTolerance && this.element.click(), delete this._startPos, delete this._lastPos, this.offTemp();\n }, this.reset = () => {\n this.mouseRotate.reset(), this.mousePitch && this.mousePitch.reset(), this.touchRotate.reset(), this.touchPitch && this.touchPitch.reset(), delete this._startPos, delete this._lastPos, this.offTemp();\n }, this._clickTolerance = 10;\n const s2 = t4.dragRotate._mouseRotate.getClickTolerance(), o2 = t4.dragRotate._mousePitch.getClickTolerance();\n this.element = i2, this.mouseRotate = Ka({ clickTolerance: s2, enable: true }), this.touchRotate = (({ enable: t5, clickTolerance: e2, bearingDegreesPerPixelMoved: i3 = 0.8 }) => {\n const a3 = new $a();\n return new Ga({ clickTolerance: e2, move: (t6, e3) => ({ bearingDelta: (e3.x - t6.x) * i3 }), moveStateManager: a3, enable: t5, assignEvents: Bs });\n })({ clickTolerance: s2, enable: true }), this.map = t4, a2 && (this.mousePitch = Ja({ clickTolerance: o2, enable: true }), this.touchPitch = (({ enable: t5, clickTolerance: e2, pitchDegreesPerPixelMoved: i3 = -0.5 }) => {\n const a3 = new $a();\n return new Ga({ clickTolerance: e2, move: (t6, e3) => ({ pitchDelta: (e3.y - t6.y) * i3 }), moveStateManager: a3, enable: t5, assignEvents: Bs });\n })({ clickTolerance: o2, enable: true })), r.addEventListener(i2, \"mousedown\", this.mousedown), r.addEventListener(i2, \"touchstart\", this.touchstart, { passive: false }), r.addEventListener(i2, \"touchcancel\", this.reset);\n }\n startMouse(t4, e2) {\n this.mouseRotate.dragStart(t4, e2), this.mousePitch && this.mousePitch.dragStart(t4, e2), r.disableDrag();\n }\n startTouch(t4, e2) {\n this.touchRotate.dragStart(t4, e2), this.touchPitch && this.touchPitch.dragStart(t4, e2), r.disableDrag();\n }\n moveMouse(t4, e2) {\n const i2 = this.map, { bearingDelta: a2 } = this.mouseRotate.dragMove(t4, e2) || {};\n if (a2 && i2.setBearing(i2.getBearing() + a2), this.mousePitch) {\n const { pitchDelta: a3 } = this.mousePitch.dragMove(t4, e2) || {};\n a3 && i2.setPitch(i2.getPitch() + a3);\n }\n }\n moveTouch(t4, e2) {\n const i2 = this.map, { bearingDelta: a2 } = this.touchRotate.dragMove(t4, e2) || {};\n if (a2 && i2.setBearing(i2.getBearing() + a2), this.touchPitch) {\n const { pitchDelta: a3 } = this.touchPitch.dragMove(t4, e2) || {};\n a3 && i2.setPitch(i2.getPitch() + a3);\n }\n }\n off() {\n const t4 = this.element;\n r.removeEventListener(t4, \"mousedown\", this.mousedown), r.removeEventListener(t4, \"touchstart\", this.touchstart, { passive: false }), r.removeEventListener(window, \"touchmove\", this.touchmove, { passive: false }), r.removeEventListener(window, \"touchend\", this.touchend), r.removeEventListener(t4, \"touchcancel\", this.reset), this.offTemp();\n }\n offTemp() {\n r.enableDrag(), r.removeEventListener(window, \"mousemove\", this.mousemove), r.removeEventListener(window, \"mouseup\", this.mouseup), r.removeEventListener(window, \"touchmove\", this.touchmove, { passive: false }), r.removeEventListener(window, \"touchend\", this.touchend);\n }\n }\n let Us;\n function js(t4, i2, a2) {\n const s2 = new e.N(t4.lng, t4.lat);\n if (t4 = new e.N(t4.lng, t4.lat), i2) {\n const s3 = new e.N(t4.lng - 360, t4.lat), o2 = new e.N(t4.lng + 360, t4.lat), r2 = a2.locationPoint(t4).distSqr(i2);\n a2.locationPoint(s3).distSqr(i2) < r2 ? t4 = s3 : a2.locationPoint(o2).distSqr(i2) < r2 && (t4 = o2);\n }\n for (; Math.abs(t4.lng - a2.center.lng) > 180; ) {\n const e2 = a2.locationPoint(t4);\n if (e2.x >= 0 && e2.y >= 0 && e2.x <= a2.width && e2.y <= a2.height) break;\n t4.lng > a2.center.lng ? t4.lng -= 360 : t4.lng += 360;\n }\n return t4.lng !== s2.lng && a2.locationPoint(t4).y > a2.height / 2 - a2.getHorizon() ? t4 : s2;\n }\n const Zs = { center: \"translate(-50%,-50%)\", top: \"translate(-50%,0)\", \"top-left\": \"translate(0,0)\", \"top-right\": \"translate(-100%,0)\", bottom: \"translate(-50%,-100%)\", \"bottom-left\": \"translate(0,-100%)\", \"bottom-right\": \"translate(-100%,-100%)\", left: \"translate(0,-50%)\", right: \"translate(-100%,-50%)\" };\n function qs(t4, e2, i2) {\n const a2 = t4.classList;\n for (const t5 in Zs) a2.remove(`maplibregl-${i2}-anchor-${t5}`);\n a2.add(`maplibregl-${i2}-anchor-${e2}`);\n }\n class Vs extends e.E {\n constructor(t4) {\n if (super(), this._onKeyPress = (t5) => {\n const e2 = t5.code, i2 = t5.charCode || t5.keyCode;\n \"Space\" !== e2 && \"Enter\" !== e2 && 32 !== i2 && 13 !== i2 || this.togglePopup();\n }, this._onMapClick = (t5) => {\n const e2 = t5.originalEvent.target, i2 = this._element;\n this._popup && (e2 === i2 || i2.contains(e2)) && this.togglePopup();\n }, this._update = (t5) => {\n var e2;\n if (!this._map) return;\n const i2 = this._map.loaded() && !this._map.isMoving();\n (\"terrain\" === (null == t5 ? void 0 : t5.type) || \"render\" === (null == t5 ? void 0 : t5.type) && !i2) && this._map.once(\"render\", this._update), this._lngLat = this._map.transform.renderWorldCopies ? js(this._lngLat, this._flatPos, this._map.transform) : null === (e2 = this._lngLat) || void 0 === e2 ? void 0 : e2.wrap(), this._flatPos = this._pos = this._map.project(this._lngLat)._add(this._offset), this._map.terrain && (this._flatPos = this._map.transform.locationPoint(this._lngLat)._add(this._offset));\n let a2 = \"\";\n \"viewport\" === this._rotationAlignment || \"auto\" === this._rotationAlignment ? a2 = `rotateZ(${this._rotation}deg)` : \"map\" === this._rotationAlignment && (a2 = `rotateZ(${this._rotation - this._map.getBearing()}deg)`);\n let s2 = \"\";\n \"viewport\" === this._pitchAlignment || \"auto\" === this._pitchAlignment ? s2 = \"rotateX(0deg)\" : \"map\" === this._pitchAlignment && (s2 = `rotateX(${this._map.getPitch()}deg)`), this._subpixelPositioning || t5 && \"moveend\" !== t5.type || (this._pos = this._pos.round()), r.setTransform(this._element, `${Zs[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${s2} ${a2}`), o.frameAsync(new AbortController()).then(() => {\n this._updateOpacity(t5 && \"moveend\" === t5.type);\n }).catch(() => {\n });\n }, this._onMove = (t5) => {\n if (!this._isDragging) {\n const e2 = this._clickTolerance || this._map._clickTolerance;\n this._isDragging = t5.point.dist(this._pointerdownPos) >= e2;\n }\n this._isDragging && (this._pos = t5.point.sub(this._positionDelta), this._lngLat = this._map.unproject(this._pos), this.setLngLat(this._lngLat), this._element.style.pointerEvents = \"none\", \"pending\" === this._state && (this._state = \"active\", this.fire(new e.k(\"dragstart\"))), this.fire(new e.k(\"drag\")));\n }, this._onUp = () => {\n this._element.style.pointerEvents = \"auto\", this._positionDelta = null, this._pointerdownPos = null, this._isDragging = false, this._map.off(\"mousemove\", this._onMove), this._map.off(\"touchmove\", this._onMove), \"active\" === this._state && this.fire(new e.k(\"dragend\")), this._state = \"inactive\";\n }, this._addDragHandler = (t5) => {\n this._element.contains(t5.originalEvent.target) && (t5.preventDefault(), this._positionDelta = t5.point.sub(this._pos).add(this._offset), this._pointerdownPos = t5.point, this._state = \"pending\", this._map.on(\"mousemove\", this._onMove), this._map.on(\"touchmove\", this._onMove), this._map.once(\"mouseup\", this._onUp), this._map.once(\"touchend\", this._onUp));\n }, this._anchor = t4 && t4.anchor || \"center\", this._color = t4 && t4.color || \"#3FB1CE\", this._scale = t4 && t4.scale || 1, this._draggable = t4 && t4.draggable || false, this._clickTolerance = t4 && t4.clickTolerance || 0, this._subpixelPositioning = t4 && t4.subpixelPositioning || false, this._isDragging = false, this._state = \"inactive\", this._rotation = t4 && t4.rotation || 0, this._rotationAlignment = t4 && t4.rotationAlignment || \"auto\", this._pitchAlignment = t4 && t4.pitchAlignment && \"auto\" !== t4.pitchAlignment ? t4.pitchAlignment : this._rotationAlignment, this.setOpacity(), this.setOpacity(null == t4 ? void 0 : t4.opacity, null == t4 ? void 0 : t4.opacityWhenCovered), t4 && t4.element) this._element = t4.element, this._offset = e.P.convert(t4 && t4.offset || [0, 0]);\n else {\n this._defaultMarker = true, this._element = r.create(\"div\");\n const i2 = r.createNS(\"http://www.w3.org/2000/svg\", \"svg\"), a2 = 41, s2 = 27;\n i2.setAttributeNS(null, \"display\", \"block\"), i2.setAttributeNS(null, \"height\", `${a2}px`), i2.setAttributeNS(null, \"width\", `${s2}px`), i2.setAttributeNS(null, \"viewBox\", `0 0 ${s2} ${a2}`);\n const o2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n o2.setAttributeNS(null, \"stroke\", \"none\"), o2.setAttributeNS(null, \"stroke-width\", \"1\"), o2.setAttributeNS(null, \"fill\", \"none\"), o2.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n const n2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n n2.setAttributeNS(null, \"fill-rule\", \"nonzero\");\n const l2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n l2.setAttributeNS(null, \"transform\", \"translate(3.0, 29.0)\"), l2.setAttributeNS(null, \"fill\", \"#000000\");\n const h2 = [{ rx: \"10.5\", ry: \"5.25002273\" }, { rx: \"10.5\", ry: \"5.25002273\" }, { rx: \"9.5\", ry: \"4.77275007\" }, { rx: \"8.5\", ry: \"4.29549936\" }, { rx: \"7.5\", ry: \"3.81822308\" }, { rx: \"6.5\", ry: \"3.34094679\" }, { rx: \"5.5\", ry: \"2.86367051\" }, { rx: \"4.5\", ry: \"2.38636864\" }];\n for (const t5 of h2) {\n const e2 = r.createNS(\"http://www.w3.org/2000/svg\", \"ellipse\");\n e2.setAttributeNS(null, \"opacity\", \"0.04\"), e2.setAttributeNS(null, \"cx\", \"10.5\"), e2.setAttributeNS(null, \"cy\", \"5.80029008\"), e2.setAttributeNS(null, \"rx\", t5.rx), e2.setAttributeNS(null, \"ry\", t5.ry), l2.appendChild(e2);\n }\n const c2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n c2.setAttributeNS(null, \"fill\", this._color);\n const u2 = r.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n u2.setAttributeNS(null, \"d\", \"M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z\"), c2.appendChild(u2);\n const d2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n d2.setAttributeNS(null, \"opacity\", \"0.25\"), d2.setAttributeNS(null, \"fill\", \"#000000\");\n const _2 = r.createNS(\"http://www.w3.org/2000/svg\", \"path\");\n _2.setAttributeNS(null, \"d\", \"M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z\"), d2.appendChild(_2);\n const p2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n p2.setAttributeNS(null, \"transform\", \"translate(6.0, 7.0)\"), p2.setAttributeNS(null, \"fill\", \"#FFFFFF\");\n const m2 = r.createNS(\"http://www.w3.org/2000/svg\", \"g\");\n m2.setAttributeNS(null, \"transform\", \"translate(8.0, 8.0)\");\n const f2 = r.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n f2.setAttributeNS(null, \"fill\", \"#000000\"), f2.setAttributeNS(null, \"opacity\", \"0.25\"), f2.setAttributeNS(null, \"cx\", \"5.5\"), f2.setAttributeNS(null, \"cy\", \"5.5\"), f2.setAttributeNS(null, \"r\", \"5.4999962\");\n const g2 = r.createNS(\"http://www.w3.org/2000/svg\", \"circle\");\n g2.setAttributeNS(null, \"fill\", \"#FFFFFF\"), g2.setAttributeNS(null, \"cx\", \"5.5\"), g2.setAttributeNS(null, \"cy\", \"5.5\"), g2.setAttributeNS(null, \"r\", \"5.4999962\"), m2.appendChild(f2), m2.appendChild(g2), n2.appendChild(l2), n2.appendChild(c2), n2.appendChild(d2), n2.appendChild(p2), n2.appendChild(m2), i2.appendChild(n2), i2.setAttributeNS(null, \"height\", a2 * this._scale + \"px\"), i2.setAttributeNS(null, \"width\", s2 * this._scale + \"px\"), this._element.appendChild(i2), this._offset = e.P.convert(t4 && t4.offset || [0, -14]);\n }\n if (this._element.classList.add(\"maplibregl-marker\"), this._element.addEventListener(\"dragstart\", (t5) => {\n t5.preventDefault();\n }), this._element.addEventListener(\"mousedown\", (t5) => {\n t5.preventDefault();\n }), qs(this._element, this._anchor, \"marker\"), t4 && t4.className) for (const e2 of t4.className.split(\" \")) this._element.classList.add(e2);\n this._popup = null;\n }\n addTo(t4) {\n return this.remove(), this._map = t4, this._element.setAttribute(\"aria-label\", t4._getUIString(\"Marker.Title\")), t4.getCanvasContainer().appendChild(this._element), t4.on(\"move\", this._update), t4.on(\"moveend\", this._update), t4.on(\"terrain\", this._update), this.setDraggable(this._draggable), this._update(), this._map.on(\"click\", this._onMapClick), this;\n }\n remove() {\n return this._opacityTimeout && (clearTimeout(this._opacityTimeout), delete this._opacityTimeout), this._map && (this._map.off(\"click\", this._onMapClick), this._map.off(\"move\", this._update), this._map.off(\"moveend\", this._update), this._map.off(\"terrain\", this._update), this._map.off(\"mousedown\", this._addDragHandler), this._map.off(\"touchstart\", this._addDragHandler), this._map.off(\"mouseup\", this._onUp), this._map.off(\"touchend\", this._onUp), this._map.off(\"mousemove\", this._onMove), this._map.off(\"touchmove\", this._onMove), delete this._map), r.remove(this._element), this._popup && this._popup.remove(), this;\n }\n getLngLat() {\n return this._lngLat;\n }\n setLngLat(t4) {\n return this._lngLat = e.N.convert(t4), this._pos = null, this._popup && this._popup.setLngLat(this._lngLat), this._update(), this;\n }\n getElement() {\n return this._element;\n }\n setPopup(t4) {\n if (this._popup && (this._popup.remove(), this._popup = null, this._element.removeEventListener(\"keypress\", this._onKeyPress), this._originalTabIndex || this._element.removeAttribute(\"tabindex\")), t4) {\n if (!(\"offset\" in t4.options)) {\n const e2 = 38.1, i2 = 13.5, a2 = Math.abs(i2) / Math.SQRT2;\n t4.options.offset = this._defaultMarker ? { top: [0, 0], \"top-left\": [0, 0], \"top-right\": [0, 0], bottom: [0, -e2], \"bottom-left\": [a2, -1 * (e2 - i2 + a2)], \"bottom-right\": [-a2, -1 * (e2 - i2 + a2)], left: [i2, -1 * (e2 - i2)], right: [-i2, -1 * (e2 - i2)] } : this._offset;\n }\n this._popup = t4, this._originalTabIndex = this._element.getAttribute(\"tabindex\"), this._originalTabIndex || this._element.setAttribute(\"tabindex\", \"0\"), this._element.addEventListener(\"keypress\", this._onKeyPress);\n }\n return this;\n }\n setSubpixelPositioning(t4) {\n return this._subpixelPositioning = t4, this;\n }\n getPopup() {\n return this._popup;\n }\n togglePopup() {\n const t4 = this._popup;\n return this._element.style.opacity === this._opacityWhenCovered ? this : t4 ? (t4.isOpen() ? t4.remove() : (t4.setLngLat(this._lngLat), t4.addTo(this._map)), this) : this;\n }\n _updateOpacity(t4 = false) {\n var i2, a2;\n if (!(null === (i2 = this._map) || void 0 === i2 ? void 0 : i2.terrain)) return void (this._element.style.opacity !== this._opacity && (this._element.style.opacity = this._opacity));\n if (t4) this._opacityTimeout = null;\n else {\n if (this._opacityTimeout) return;\n this._opacityTimeout = setTimeout(() => {\n this._opacityTimeout = null;\n }, 100);\n }\n const s2 = this._map, o2 = s2.terrain.depthAtPoint(this._pos), r2 = s2.terrain.getElevationForLngLatZoom(this._lngLat, s2.transform.tileZoom);\n if (s2.transform.lngLatToCameraDepth(this._lngLat, r2) - o2 < 6e-3) return void (this._element.style.opacity = this._opacity);\n const n2 = -this._offset.y / s2.transform._pixelPerMeter, l2 = Math.sin(s2.getPitch() * Math.PI / 180) * n2, h2 = s2.terrain.depthAtPoint(new e.P(this._pos.x, this._pos.y - this._offset.y)), c2 = s2.transform.lngLatToCameraDepth(this._lngLat, r2 + l2) - h2 > 6e-3;\n (null === (a2 = this._popup) || void 0 === a2 ? void 0 : a2.isOpen()) && c2 && this._popup.remove(), this._element.style.opacity = c2 ? this._opacityWhenCovered : this._opacity;\n }\n getOffset() {\n return this._offset;\n }\n setOffset(t4) {\n return this._offset = e.P.convert(t4), this._update(), this;\n }\n addClassName(t4) {\n this._element.classList.add(t4);\n }\n removeClassName(t4) {\n this._element.classList.remove(t4);\n }\n toggleClassName(t4) {\n return this._element.classList.toggle(t4);\n }\n setDraggable(t4) {\n return this._draggable = !!t4, this._map && (t4 ? (this._map.on(\"mousedown\", this._addDragHandler), this._map.on(\"touchstart\", this._addDragHandler)) : (this._map.off(\"mousedown\", this._addDragHandler), this._map.off(\"touchstart\", this._addDragHandler))), this;\n }\n isDraggable() {\n return this._draggable;\n }\n setRotation(t4) {\n return this._rotation = t4 || 0, this._update(), this;\n }\n getRotation() {\n return this._rotation;\n }\n setRotationAlignment(t4) {\n return this._rotationAlignment = t4 || \"auto\", this._update(), this;\n }\n getRotationAlignment() {\n return this._rotationAlignment;\n }\n setPitchAlignment(t4) {\n return this._pitchAlignment = t4 && \"auto\" !== t4 ? t4 : this._rotationAlignment, this._update(), this;\n }\n getPitchAlignment() {\n return this._pitchAlignment;\n }\n setOpacity(t4, e2) {\n return void 0 === t4 && void 0 === e2 && (this._opacity = \"1\", this._opacityWhenCovered = \"0.2\"), void 0 !== t4 && (this._opacity = t4), void 0 !== e2 && (this._opacityWhenCovered = e2), this._map && this._updateOpacity(true), this;\n }\n }\n const Gs = { positionOptions: { enableHighAccuracy: false, maximumAge: 0, timeout: 6e3 }, fitBoundsOptions: { maxZoom: 15 }, trackUserLocation: false, showAccuracyCircle: true, showUserLocation: true };\n let Hs = 0, Ws = false;\n const $s = { maxWidth: 100, unit: \"metric\" };\n function Xs(t4, e2, i2) {\n const a2 = i2 && i2.maxWidth || 100, s2 = t4._container.clientHeight / 2, o2 = t4.unproject([0, s2]), r2 = t4.unproject([a2, s2]), n2 = o2.distanceTo(r2);\n if (i2 && \"imperial\" === i2.unit) {\n const i3 = 3.2808 * n2;\n i3 > 5280 ? Ks(e2, a2, i3 / 5280, t4._getUIString(\"ScaleControl.Miles\")) : Ks(e2, a2, i3, t4._getUIString(\"ScaleControl.Feet\"));\n } else i2 && \"nautical\" === i2.unit ? Ks(e2, a2, n2 / 1852, t4._getUIString(\"ScaleControl.NauticalMiles\")) : n2 >= 1e3 ? Ks(e2, a2, n2 / 1e3, t4._getUIString(\"ScaleControl.Kilometers\")) : Ks(e2, a2, n2, t4._getUIString(\"ScaleControl.Meters\"));\n }\n function Ks(t4, e2, i2, a2) {\n const s2 = function(t5) {\n const e3 = Math.pow(10, `${Math.floor(t5)}`.length - 1);\n let i3 = t5 / e3;\n return i3 = i3 >= 10 ? 10 : i3 >= 5 ? 5 : i3 >= 3 ? 3 : i3 >= 2 ? 2 : i3 >= 1 ? 1 : function(t6) {\n const e4 = Math.pow(10, Math.ceil(-Math.log(t6) / Math.LN10));\n return Math.round(t6 * e4) / e4;\n }(i3), e3 * i3;\n }(i2);\n t4.style.width = e2 * (s2 / i2) + \"px\", t4.innerHTML = `${s2} ${a2}`;\n }\n const Js = { closeButton: true, closeOnClick: true, focusAfterOpen: true, className: \"\", maxWidth: \"240px\", subpixelPositioning: false }, Ys = [\"a[href]\", \"[tabindex]:not([tabindex='-1'])\", \"[contenteditable]:not([contenteditable='false'])\", \"button:not([disabled])\", \"input:not([disabled])\", \"select:not([disabled])\", \"textarea:not([disabled])\"].join(\", \");\n function Qs(t4) {\n if (t4) {\n if (\"number\" == typeof t4) {\n const i2 = Math.round(Math.abs(t4) / Math.SQRT2);\n return { center: new e.P(0, 0), top: new e.P(0, t4), \"top-left\": new e.P(i2, i2), \"top-right\": new e.P(-i2, i2), bottom: new e.P(0, -t4), \"bottom-left\": new e.P(i2, -i2), \"bottom-right\": new e.P(-i2, -i2), left: new e.P(t4, 0), right: new e.P(-t4, 0) };\n }\n if (t4 instanceof e.P || Array.isArray(t4)) {\n const i2 = e.P.convert(t4);\n return { center: i2, top: i2, \"top-left\": i2, \"top-right\": i2, bottom: i2, \"bottom-left\": i2, \"bottom-right\": i2, left: i2, right: i2 };\n }\n return { center: e.P.convert(t4.center || [0, 0]), top: e.P.convert(t4.top || [0, 0]), \"top-left\": e.P.convert(t4[\"top-left\"] || [0, 0]), \"top-right\": e.P.convert(t4[\"top-right\"] || [0, 0]), bottom: e.P.convert(t4.bottom || [0, 0]), \"bottom-left\": e.P.convert(t4[\"bottom-left\"] || [0, 0]), \"bottom-right\": e.P.convert(t4[\"bottom-right\"] || [0, 0]), left: e.P.convert(t4.left || [0, 0]), right: e.P.convert(t4.right || [0, 0]) };\n }\n return Qs(new e.P(0, 0));\n }\n const to = i;\n t.AJAXError = e.bh, t.Evented = e.E, t.LngLat = e.N, t.MercatorCoordinate = e.Z, t.Point = e.P, t.addProtocol = e.bi, t.config = e.a, t.removeProtocol = e.bj, t.AttributionControl = Es, t.BoxZoomHandler = Ua, t.CanvasSource = et, t.CooperativeGesturesHandler = vs, t.DoubleClickZoomHandler = ds, t.DragPanHandler = ms, t.DragRotateHandler = fs, t.EdgeInsets = ba, t.FullscreenControl = class extends e.E {\n constructor(t4 = {}) {\n super(), this._onFullscreenChange = () => {\n var t5;\n let e2 = window.document.fullscreenElement || window.document.mozFullScreenElement || window.document.webkitFullscreenElement || window.document.msFullscreenElement;\n for (; null === (t5 = null == e2 ? void 0 : e2.shadowRoot) || void 0 === t5 ? void 0 : t5.fullscreenElement; ) e2 = e2.shadowRoot.fullscreenElement;\n e2 === this._container !== this._fullscreen && this._handleFullscreenChange();\n }, this._onClickFullscreen = () => {\n this._isFullscreen() ? this._exitFullscreen() : this._requestFullscreen();\n }, this._fullscreen = false, t4 && t4.container && (t4.container instanceof HTMLElement ? this._container = t4.container : e.w(\"Full screen control 'container' must be a DOM element.\")), \"onfullscreenchange\" in document ? this._fullscreenchange = \"fullscreenchange\" : \"onmozfullscreenchange\" in document ? this._fullscreenchange = \"mozfullscreenchange\" : \"onwebkitfullscreenchange\" in document ? this._fullscreenchange = \"webkitfullscreenchange\" : \"onmsfullscreenchange\" in document && (this._fullscreenchange = \"MSFullscreenChange\");\n }\n onAdd(t4) {\n return this._map = t4, this._container || (this._container = this._map.getContainer()), this._controlContainer = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._setupUI(), this._controlContainer;\n }\n onRemove() {\n r.remove(this._controlContainer), this._map = null, window.document.removeEventListener(this._fullscreenchange, this._onFullscreenChange);\n }\n _setupUI() {\n const t4 = this._fullscreenButton = r.create(\"button\", \"maplibregl-ctrl-fullscreen\", this._controlContainer);\n r.create(\"span\", \"maplibregl-ctrl-icon\", t4).setAttribute(\"aria-hidden\", \"true\"), t4.type = \"button\", this._updateTitle(), this._fullscreenButton.addEventListener(\"click\", this._onClickFullscreen), window.document.addEventListener(this._fullscreenchange, this._onFullscreenChange);\n }\n _updateTitle() {\n const t4 = this._getTitle();\n this._fullscreenButton.setAttribute(\"aria-label\", t4), this._fullscreenButton.title = t4;\n }\n _getTitle() {\n return this._map._getUIString(this._isFullscreen() ? \"FullscreenControl.Exit\" : \"FullscreenControl.Enter\");\n }\n _isFullscreen() {\n return this._fullscreen;\n }\n _handleFullscreenChange() {\n this._fullscreen = !this._fullscreen, this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-shrink\"), this._fullscreenButton.classList.toggle(\"maplibregl-ctrl-fullscreen\"), this._updateTitle(), this._fullscreen ? (this.fire(new e.k(\"fullscreenstart\")), this._prevCooperativeGesturesEnabled = this._map.cooperativeGestures.isEnabled(), this._map.cooperativeGestures.disable()) : (this.fire(new e.k(\"fullscreenend\")), this._prevCooperativeGesturesEnabled && this._map.cooperativeGestures.enable());\n }\n _exitFullscreen() {\n window.document.exitFullscreen ? window.document.exitFullscreen() : window.document.mozCancelFullScreen ? window.document.mozCancelFullScreen() : window.document.msExitFullscreen ? window.document.msExitFullscreen() : window.document.webkitCancelFullScreen ? window.document.webkitCancelFullScreen() : this._togglePseudoFullScreen();\n }\n _requestFullscreen() {\n this._container.requestFullscreen ? this._container.requestFullscreen() : this._container.mozRequestFullScreen ? this._container.mozRequestFullScreen() : this._container.msRequestFullscreen ? this._container.msRequestFullscreen() : this._container.webkitRequestFullscreen ? this._container.webkitRequestFullscreen() : this._togglePseudoFullScreen();\n }\n _togglePseudoFullScreen() {\n this._container.classList.toggle(\"maplibregl-pseudo-fullscreen\"), this._handleFullscreenChange(), this._map.resize();\n }\n }, t.GeoJSONSource = J, t.GeolocateControl = class extends e.E {\n constructor(t4) {\n super(), this._onSuccess = (t5) => {\n if (this._map) {\n if (this._isOutOfMapMaxBounds(t5)) return this._setErrorState(), this.fire(new e.k(\"outofmaxbounds\", t5)), this._updateMarker(), void this._finish();\n if (this.options.trackUserLocation) switch (this._lastKnownPosition = t5, this._watchState) {\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n this._watchState = \"ACTIVE_LOCK\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");\n break;\n case \"BACKGROUND\":\n case \"BACKGROUND_ERROR\":\n this._watchState = \"BACKGROUND\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\");\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n this.options.showUserLocation && \"OFF\" !== this._watchState && this._updateMarker(t5), this.options.trackUserLocation && \"ACTIVE_LOCK\" !== this._watchState || this._updateCamera(t5), this.options.showUserLocation && this._dotElement.classList.remove(\"maplibregl-user-location-dot-stale\"), this.fire(new e.k(\"geolocate\", t5)), this._finish();\n }\n }, this._updateCamera = (t5) => {\n const i2 = new e.N(t5.coords.longitude, t5.coords.latitude), a2 = t5.coords.accuracy, s2 = this._map.getBearing(), o2 = e.e({ bearing: s2 }, this.options.fitBoundsOptions), r2 = H.fromLngLat(i2, a2);\n this._map.fitBounds(r2, o2, { geolocateSource: true });\n }, this._updateMarker = (t5) => {\n if (t5) {\n const i2 = new e.N(t5.coords.longitude, t5.coords.latitude);\n this._accuracyCircleMarker.setLngLat(i2).addTo(this._map), this._userLocationDotMarker.setLngLat(i2).addTo(this._map), this._accuracy = t5.coords.accuracy, this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();\n } else this._userLocationDotMarker.remove(), this._accuracyCircleMarker.remove();\n }, this._onZoom = () => {\n this.options.showUserLocation && this.options.showAccuracyCircle && this._updateCircleRadius();\n }, this._onError = (t5) => {\n if (this._map) {\n if (this.options.trackUserLocation) if (1 === t5.code) {\n this._watchState = \"OFF\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"), this._geolocateButton.disabled = true;\n const t6 = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.title = t6, this._geolocateButton.setAttribute(\"aria-label\", t6), void 0 !== this._geolocationWatchID && this._clearWatch();\n } else {\n if (3 === t5.code && Ws) return;\n this._setErrorState();\n }\n \"OFF\" !== this._watchState && this.options.showUserLocation && this._dotElement.classList.add(\"maplibregl-user-location-dot-stale\"), this.fire(new e.k(\"error\", t5)), this._finish();\n }\n }, this._finish = () => {\n this._timeoutId && clearTimeout(this._timeoutId), this._timeoutId = void 0;\n }, this._setupUI = () => {\n this._map && (this._container.addEventListener(\"contextmenu\", (t5) => t5.preventDefault()), this._geolocateButton = r.create(\"button\", \"maplibregl-ctrl-geolocate\", this._container), r.create(\"span\", \"maplibregl-ctrl-icon\", this._geolocateButton).setAttribute(\"aria-hidden\", \"true\"), this._geolocateButton.type = \"button\", this._geolocateButton.disabled = true);\n }, this._finishSetupUI = (t5) => {\n if (this._map) {\n if (false === t5) {\n e.w(\"Geolocation support is not available so the GeolocateControl will be disabled.\");\n const t6 = this._map._getUIString(\"GeolocateControl.LocationNotAvailable\");\n this._geolocateButton.disabled = true, this._geolocateButton.title = t6, this._geolocateButton.setAttribute(\"aria-label\", t6);\n } else {\n const t6 = this._map._getUIString(\"GeolocateControl.FindMyLocation\");\n this._geolocateButton.disabled = false, this._geolocateButton.title = t6, this._geolocateButton.setAttribute(\"aria-label\", t6);\n }\n this.options.trackUserLocation && (this._geolocateButton.setAttribute(\"aria-pressed\", \"false\"), this._watchState = \"OFF\"), this.options.showUserLocation && (this._dotElement = r.create(\"div\", \"maplibregl-user-location-dot\"), this._userLocationDotMarker = new Vs({ element: this._dotElement }), this._circleElement = r.create(\"div\", \"maplibregl-user-location-accuracy-circle\"), this._accuracyCircleMarker = new Vs({ element: this._circleElement, pitchAlignment: \"map\" }), this.options.trackUserLocation && (this._watchState = \"OFF\"), this._map.on(\"zoom\", this._onZoom)), this._geolocateButton.addEventListener(\"click\", () => this.trigger()), this._setup = true, this.options.trackUserLocation && this._map.on(\"movestart\", (t6) => {\n t6.geolocateSource || \"ACTIVE_LOCK\" !== this._watchState || t6.originalEvent && \"resize\" === t6.originalEvent.type || (this._watchState = \"BACKGROUND\", this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this.fire(new e.k(\"trackuserlocationend\")), this.fire(new e.k(\"userlocationlostfocus\")));\n });\n }\n }, this.options = e.e({}, Gs, t4);\n }\n onAdd(t4) {\n return this._map = t4, this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._setupUI(), function() {\n return e._(this, arguments, void 0, function* (t5 = false) {\n if (void 0 !== Us && !t5) return Us;\n if (void 0 === window.navigator.permissions) return Us = !!window.navigator.geolocation, Us;\n try {\n const t6 = yield window.navigator.permissions.query({ name: \"geolocation\" });\n Us = \"denied\" !== t6.state;\n } catch (t6) {\n Us = !!window.navigator.geolocation;\n }\n return Us;\n });\n }().then((t5) => this._finishSetupUI(t5)), this._container;\n }\n onRemove() {\n void 0 !== this._geolocationWatchID && (window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0), this.options.showUserLocation && this._userLocationDotMarker && this._userLocationDotMarker.remove(), this.options.showAccuracyCircle && this._accuracyCircleMarker && this._accuracyCircleMarker.remove(), r.remove(this._container), this._map.off(\"zoom\", this._onZoom), this._map = void 0, Hs = 0, Ws = false;\n }\n _isOutOfMapMaxBounds(t4) {\n const e2 = this._map.getMaxBounds(), i2 = t4.coords;\n return e2 && (i2.longitude < e2.getWest() || i2.longitude > e2.getEast() || i2.latitude < e2.getSouth() || i2.latitude > e2.getNorth());\n }\n _setErrorState() {\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._watchState = \"ACTIVE_ERROR\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\");\n break;\n case \"ACTIVE_LOCK\":\n this._watchState = \"ACTIVE_ERROR\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");\n break;\n case \"BACKGROUND\":\n this._watchState = \"BACKGROUND_ERROR\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-background-error\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\");\n break;\n case \"ACTIVE_ERROR\":\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n }\n _updateCircleRadius() {\n const t4 = this._map.getBounds(), e2 = t4.getSouthEast(), i2 = t4.getNorthEast(), a2 = e2.distanceTo(i2), s2 = Math.ceil(this._accuracy / (a2 / this._map._container.clientHeight) * 2);\n this._circleElement.style.width = `${s2}px`, this._circleElement.style.height = `${s2}px`;\n }\n trigger() {\n if (!this._setup) return e.w(\"Geolocate control triggered before added to a map\"), false;\n if (this.options.trackUserLocation) {\n switch (this._watchState) {\n case \"OFF\":\n this._watchState = \"WAITING_ACTIVE\", this.fire(new e.k(\"trackuserlocationstart\"));\n break;\n case \"WAITING_ACTIVE\":\n case \"ACTIVE_LOCK\":\n case \"ACTIVE_ERROR\":\n case \"BACKGROUND_ERROR\":\n Hs--, Ws = false, this._watchState = \"OFF\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-active-error\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background-error\"), this.fire(new e.k(\"trackuserlocationend\"));\n break;\n case \"BACKGROUND\":\n this._watchState = \"ACTIVE_LOCK\", this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-background\"), this._lastKnownPosition && this._updateCamera(this._lastKnownPosition), this.fire(new e.k(\"trackuserlocationstart\")), this.fire(new e.k(\"userlocationfocus\"));\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n switch (this._watchState) {\n case \"WAITING_ACTIVE\":\n this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");\n break;\n case \"ACTIVE_LOCK\":\n this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-active\");\n break;\n case \"OFF\":\n break;\n default:\n throw new Error(`Unexpected watchState ${this._watchState}`);\n }\n if (\"OFF\" === this._watchState && void 0 !== this._geolocationWatchID) this._clearWatch();\n else if (void 0 === this._geolocationWatchID) {\n let t4;\n this._geolocateButton.classList.add(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.setAttribute(\"aria-pressed\", \"true\"), Hs++, Hs > 1 ? (t4 = { maximumAge: 6e5, timeout: 0 }, Ws = true) : (t4 = this.options.positionOptions, Ws = false), this._geolocationWatchID = window.navigator.geolocation.watchPosition(this._onSuccess, this._onError, t4);\n }\n } else window.navigator.geolocation.getCurrentPosition(this._onSuccess, this._onError, this.options.positionOptions), this._timeoutId = setTimeout(this._finish, 1e4);\n return true;\n }\n _clearWatch() {\n window.navigator.geolocation.clearWatch(this._geolocationWatchID), this._geolocationWatchID = void 0, this._geolocateButton.classList.remove(\"maplibregl-ctrl-geolocate-waiting\"), this._geolocateButton.setAttribute(\"aria-pressed\", \"false\"), this.options.showUserLocation && this._updateMarker(null);\n }\n }, t.Hash = Ea, t.ImageSource = Q, t.KeyboardHandler = ls, t.LngLatBounds = H, t.LogoControl = Ps, t.Map = class extends Ts {\n constructor(t4) {\n e.bf.mark(e.bg.create);\n const i2 = Object.assign(Object.assign({}, Fs), t4);\n if (null != i2.minZoom && null != i2.maxZoom && i2.minZoom > i2.maxZoom) throw new Error(\"maxZoom must be greater than or equal to minZoom\");\n if (null != i2.minPitch && null != i2.maxPitch && i2.minPitch > i2.maxPitch) throw new Error(\"maxPitch must be greater than or equal to minPitch\");\n if (null != i2.minPitch && i2.minPitch < 0) throw new Error(\"minPitch must be greater than or equal to 0\");\n if (null != i2.maxPitch && i2.maxPitch > 85) throw new Error(\"maxPitch must be less than or equal to 85\");\n if (super(new Ta(i2.minZoom, i2.maxZoom, i2.minPitch, i2.maxPitch, i2.renderWorldCopies), { bearingSnap: i2.bearingSnap }), this._idleTriggered = false, this._crossFadingFactor = 1, this._renderTaskQueue = new Cs(), this._controls = [], this._mapId = e.a4(), this._contextLost = (t5) => {\n t5.preventDefault(), this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this.fire(new e.k(\"webglcontextlost\", { originalEvent: t5 }));\n }, this._contextRestored = (t5) => {\n this._setupPainter(), this.resize(), this._update(), this.fire(new e.k(\"webglcontextrestored\", { originalEvent: t5 }));\n }, this._onMapScroll = (t5) => {\n if (t5.target === this._container) return this._container.scrollTop = 0, this._container.scrollLeft = 0, false;\n }, this._onWindowOnline = () => {\n this._update();\n }, this._interactive = i2.interactive, this._maxTileCacheSize = i2.maxTileCacheSize, this._maxTileCacheZoomLevels = i2.maxTileCacheZoomLevels, this._failIfMajorPerformanceCaveat = true === i2.failIfMajorPerformanceCaveat, this._preserveDrawingBuffer = true === i2.preserveDrawingBuffer, this._antialias = true === i2.antialias, this._trackResize = true === i2.trackResize, this._bearingSnap = i2.bearingSnap, this._refreshExpiredTiles = true === i2.refreshExpiredTiles, this._fadeDuration = i2.fadeDuration, this._crossSourceCollisions = true === i2.crossSourceCollisions, this._collectResourceTiming = true === i2.collectResourceTiming, this._locale = Object.assign(Object.assign({}, ks), i2.locale), this._clickTolerance = i2.clickTolerance, this._overridePixelRatio = i2.pixelRatio, this._maxCanvasSize = i2.maxCanvasSize, this.transformCameraUpdate = i2.transformCameraUpdate, this.cancelPendingTileRequestsWhileZooming = true === i2.cancelPendingTileRequestsWhileZooming, this._imageQueueHandle = _.addThrottleControl(() => this.isMoving()), this._requestManager = new p(i2.transformRequest), \"string\" == typeof i2.container) {\n if (this._container = document.getElementById(i2.container), !this._container) throw new Error(`Container '${i2.container}' not found.`);\n } else {\n if (!(i2.container instanceof HTMLElement)) throw new Error(\"Invalid type: 'container' must be a String or HTMLElement.\");\n this._container = i2.container;\n }\n if (i2.maxBounds && this.setMaxBounds(i2.maxBounds), this._setupContainer(), this._setupPainter(), this.on(\"move\", () => this._update(false)).on(\"moveend\", () => this._update(false)).on(\"zoom\", () => this._update(true)).on(\"terrain\", () => {\n this.painter.terrainFacilitator.dirty = true, this._update(true);\n }).once(\"idle\", () => {\n this._idleTriggered = true;\n }), \"undefined\" != typeof window) {\n addEventListener(\"online\", this._onWindowOnline, false);\n let t5 = false;\n const e2 = Ia((t6) => {\n this._trackResize && !this._removed && (this.resize(t6), this.redraw());\n }, 50);\n this._resizeObserver = new ResizeObserver((i3) => {\n t5 ? e2(i3) : t5 = true;\n }), this._resizeObserver.observe(this._container);\n }\n this.handlers = new ws(this, i2), this._hash = i2.hash && new Ea(\"string\" == typeof i2.hash && i2.hash || void 0).addTo(this), this._hash && this._hash._onHashChange() || (this.jumpTo({ center: i2.center, zoom: i2.zoom, bearing: i2.bearing, pitch: i2.pitch }), i2.bounds && (this.resize(), this.fitBounds(i2.bounds, e.e({}, i2.fitBoundsOptions, { duration: 0 })))), this.resize(), this._localIdeographFontFamily = i2.localIdeographFontFamily, this._validateStyle = i2.validateStyle, i2.style && this.setStyle(i2.style, { localIdeographFontFamily: i2.localIdeographFontFamily }), i2.attributionControl && this.addControl(new Es(\"boolean\" == typeof i2.attributionControl ? void 0 : i2.attributionControl)), i2.maplibreLogo && this.addControl(new Ps(), i2.logoPosition), this.on(\"style.load\", () => {\n this.transform.unmodified && this.jumpTo(this.style.stylesheet);\n }), this.on(\"data\", (t5) => {\n this._update(\"style\" === t5.dataType), this.fire(new e.k(`${t5.dataType}data`, t5));\n }), this.on(\"dataloading\", (t5) => {\n this.fire(new e.k(`${t5.dataType}dataloading`, t5));\n }), this.on(\"dataabort\", (t5) => {\n this.fire(new e.k(\"sourcedataabort\", t5));\n });\n }\n _getMapId() {\n return this._mapId;\n }\n addControl(t4, i2) {\n if (void 0 === i2 && (i2 = t4.getDefaultPosition ? t4.getDefaultPosition() : \"top-right\"), !t4 || !t4.onAdd) return this.fire(new e.j(new Error(\"Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.\")));\n const a2 = t4.onAdd(this);\n this._controls.push(t4);\n const s2 = this._controlPositions[i2];\n return -1 !== i2.indexOf(\"bottom\") ? s2.insertBefore(a2, s2.firstChild) : s2.appendChild(a2), this;\n }\n removeControl(t4) {\n if (!t4 || !t4.onRemove) return this.fire(new e.j(new Error(\"Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.\")));\n const i2 = this._controls.indexOf(t4);\n return i2 > -1 && this._controls.splice(i2, 1), t4.onRemove(this), this;\n }\n hasControl(t4) {\n return this._controls.indexOf(t4) > -1;\n }\n calculateCameraOptionsFromTo(t4, e2, i2, a2) {\n return null == a2 && this.terrain && (a2 = this.terrain.getElevationForLngLatZoom(i2, this.transform.tileZoom)), super.calculateCameraOptionsFromTo(t4, e2, i2, a2);\n }\n resize(t4) {\n var i2;\n const a2 = this._containerDimensions(), s2 = a2[0], o2 = a2[1], r2 = this._getClampedPixelRatio(s2, o2);\n if (this._resizeCanvas(s2, o2, r2), this.painter.resize(s2, o2, r2), this.painter.overLimit()) {\n const t5 = this.painter.context.gl;\n this._maxCanvasSize = [t5.drawingBufferWidth, t5.drawingBufferHeight];\n const e2 = this._getClampedPixelRatio(s2, o2);\n this._resizeCanvas(s2, o2, e2), this.painter.resize(s2, o2, e2);\n }\n this.transform.resize(s2, o2), null === (i2 = this._requestedCameraState) || void 0 === i2 || i2.resize(s2, o2);\n const n2 = !this._moving;\n return n2 && (this.stop(), this.fire(new e.k(\"movestart\", t4)).fire(new e.k(\"move\", t4))), this.fire(new e.k(\"resize\", t4)), n2 && this.fire(new e.k(\"moveend\", t4)), this;\n }\n _getClampedPixelRatio(t4, e2) {\n const { 0: i2, 1: a2 } = this._maxCanvasSize, s2 = this.getPixelRatio(), o2 = t4 * s2, r2 = e2 * s2;\n return Math.min(o2 > i2 ? i2 / o2 : 1, r2 > a2 ? a2 / r2 : 1) * s2;\n }\n getPixelRatio() {\n var t4;\n return null !== (t4 = this._overridePixelRatio) && void 0 !== t4 ? t4 : devicePixelRatio;\n }\n setPixelRatio(t4) {\n this._overridePixelRatio = t4, this.resize();\n }\n getBounds() {\n return this.transform.getBounds();\n }\n getMaxBounds() {\n return this.transform.getMaxBounds();\n }\n setMaxBounds(t4) {\n return this.transform.setMaxBounds(H.convert(t4)), this._update();\n }\n setMinZoom(t4) {\n if ((t4 = null == t4 ? -2 : t4) >= -2 && t4 <= this.transform.maxZoom) return this.transform.minZoom = t4, this._update(), this.getZoom() < t4 && this.setZoom(t4), this;\n throw new Error(\"minZoom must be between -2 and the current maxZoom, inclusive\");\n }\n getMinZoom() {\n return this.transform.minZoom;\n }\n setMaxZoom(t4) {\n if ((t4 = null == t4 ? 22 : t4) >= this.transform.minZoom) return this.transform.maxZoom = t4, this._update(), this.getZoom() > t4 && this.setZoom(t4), this;\n throw new Error(\"maxZoom must be greater than the current minZoom\");\n }\n getMaxZoom() {\n return this.transform.maxZoom;\n }\n setMinPitch(t4) {\n if ((t4 = null == t4 ? 0 : t4) < 0) throw new Error(\"minPitch must be greater than or equal to 0\");\n if (t4 >= 0 && t4 <= this.transform.maxPitch) return this.transform.minPitch = t4, this._update(), this.getPitch() < t4 && this.setPitch(t4), this;\n throw new Error(\"minPitch must be between 0 and the current maxPitch, inclusive\");\n }\n getMinPitch() {\n return this.transform.minPitch;\n }\n setMaxPitch(t4) {\n if ((t4 = null == t4 ? 60 : t4) > 85) throw new Error(\"maxPitch must be less than or equal to 85\");\n if (t4 >= this.transform.minPitch) return this.transform.maxPitch = t4, this._update(), this.getPitch() > t4 && this.setPitch(t4), this;\n throw new Error(\"maxPitch must be greater than the current minPitch\");\n }\n getMaxPitch() {\n return this.transform.maxPitch;\n }\n getRenderWorldCopies() {\n return this.transform.renderWorldCopies;\n }\n setRenderWorldCopies(t4) {\n return this.transform.renderWorldCopies = t4, this._update();\n }\n project(t4) {\n return this.transform.locationPoint(e.N.convert(t4), this.style && this.terrain);\n }\n unproject(t4) {\n return this.transform.pointLocation(e.P.convert(t4), this.terrain);\n }\n isMoving() {\n var t4;\n return this._moving || (null === (t4 = this.handlers) || void 0 === t4 ? void 0 : t4.isMoving());\n }\n isZooming() {\n var t4;\n return this._zooming || (null === (t4 = this.handlers) || void 0 === t4 ? void 0 : t4.isZooming());\n }\n isRotating() {\n var t4;\n return this._rotating || (null === (t4 = this.handlers) || void 0 === t4 ? void 0 : t4.isRotating());\n }\n _createDelegatedListener(t4, e2, i2) {\n if (\"mouseenter\" === t4 || \"mouseover\" === t4) {\n let a2 = false;\n const s2 = (s3) => {\n const o2 = e2.filter((t5) => this.getLayer(t5)), r2 = 0 !== o2.length ? this.queryRenderedFeatures(s3.point, { layers: o2 }) : [];\n r2.length ? a2 || (a2 = true, i2.call(this, new ka(t4, this, s3.originalEvent, { features: r2 }))) : a2 = false;\n };\n return { layers: e2, listener: i2, delegates: { mousemove: s2, mouseout: () => {\n a2 = false;\n } } };\n }\n if (\"mouseleave\" === t4 || \"mouseout\" === t4) {\n let a2 = false;\n const s2 = (s3) => {\n const o3 = e2.filter((t5) => this.getLayer(t5));\n (0 !== o3.length ? this.queryRenderedFeatures(s3.point, { layers: o3 }) : []).length ? a2 = true : a2 && (a2 = false, i2.call(this, new ka(t4, this, s3.originalEvent)));\n }, o2 = (e3) => {\n a2 && (a2 = false, i2.call(this, new ka(t4, this, e3.originalEvent)));\n };\n return { layers: e2, listener: i2, delegates: { mousemove: s2, mouseout: o2 } };\n }\n {\n const a2 = (t5) => {\n const a3 = e2.filter((t6) => this.getLayer(t6)), s2 = 0 !== a3.length ? this.queryRenderedFeatures(t5.point, { layers: a3 }) : [];\n s2.length && (t5.features = s2, i2.call(this, t5), delete t5.features);\n };\n return { layers: e2, listener: i2, delegates: { [t4]: a2 } };\n }\n }\n _saveDelegatedListener(t4, e2) {\n this._delegatedListeners = this._delegatedListeners || {}, this._delegatedListeners[t4] = this._delegatedListeners[t4] || [], this._delegatedListeners[t4].push(e2);\n }\n _removeDelegatedListener(t4, e2, i2) {\n if (!this._delegatedListeners || !this._delegatedListeners[t4]) return;\n const a2 = this._delegatedListeners[t4];\n for (let t5 = 0; t5 < a2.length; t5++) {\n const s2 = a2[t5];\n if (s2.listener === i2 && s2.layers.length === e2.length && s2.layers.every((t6) => e2.includes(t6))) {\n for (const t6 in s2.delegates) this.off(t6, s2.delegates[t6]);\n return void a2.splice(t5, 1);\n }\n }\n }\n on(t4, e2, i2) {\n if (void 0 === i2) return super.on(t4, e2);\n const a2 = this._createDelegatedListener(t4, \"string\" == typeof e2 ? [e2] : e2, i2);\n this._saveDelegatedListener(t4, a2);\n for (const t5 in a2.delegates) this.on(t5, a2.delegates[t5]);\n return this;\n }\n once(t4, e2, i2) {\n if (void 0 === i2) return super.once(t4, e2);\n const a2 = \"string\" == typeof e2 ? [e2] : e2, s2 = this._createDelegatedListener(t4, a2, i2);\n for (const e3 in s2.delegates) {\n const o2 = s2.delegates[e3];\n s2.delegates[e3] = (...e4) => {\n this._removeDelegatedListener(t4, a2, i2), o2(...e4);\n };\n }\n this._saveDelegatedListener(t4, s2);\n for (const t5 in s2.delegates) this.once(t5, s2.delegates[t5]);\n return this;\n }\n off(t4, e2, i2) {\n return void 0 === i2 ? super.off(t4, e2) : (this._removeDelegatedListener(t4, \"string\" == typeof e2 ? [e2] : e2, i2), this);\n }\n queryRenderedFeatures(t4, i2) {\n if (!this.style) return [];\n let a2;\n const s2 = t4 instanceof e.P || Array.isArray(t4), o2 = s2 ? t4 : [[0, 0], [this.transform.width, this.transform.height]];\n if (i2 = i2 || (s2 ? {} : t4) || {}, o2 instanceof e.P || \"number\" == typeof o2[0]) a2 = [e.P.convert(o2)];\n else {\n const t5 = e.P.convert(o2[0]), i3 = e.P.convert(o2[1]);\n a2 = [t5, new e.P(i3.x, t5.y), i3, new e.P(t5.x, i3.y), t5];\n }\n return this.style.queryRenderedFeatures(a2, i2, this.transform);\n }\n querySourceFeatures(t4, e2) {\n return this.style.querySourceFeatures(t4, e2);\n }\n setStyle(t4, i2) {\n return false !== (i2 = e.e({}, { localIdeographFontFamily: this._localIdeographFontFamily, validate: this._validateStyle }, i2)).diff && i2.localIdeographFontFamily === this._localIdeographFontFamily && this.style && t4 ? (this._diffStyle(t4, i2), this) : (this._localIdeographFontFamily = i2.localIdeographFontFamily, this._updateStyle(t4, i2));\n }\n setTransformRequest(t4) {\n return this._requestManager.setTransformRequest(t4), this;\n }\n _getUIString(t4) {\n const e2 = this._locale[t4];\n if (null == e2) throw new Error(`Missing UI string '${t4}'`);\n return e2;\n }\n _updateStyle(t4, e2) {\n if (e2.transformStyle && this.style && !this.style._loaded) return void this.style.once(\"style.load\", () => this._updateStyle(t4, e2));\n const i2 = this.style && e2.transformStyle ? this.style.serialize() : void 0;\n return this.style && (this.style.setEventedParent(null), this.style._remove(!t4)), t4 ? (this.style = new de(this, e2 || {}), this.style.setEventedParent(this, { style: this.style }), \"string\" == typeof t4 ? this.style.loadURL(t4, e2, i2) : this.style.loadJSON(t4, e2, i2), this) : (delete this.style, this);\n }\n _lazyInitEmptyStyle() {\n this.style || (this.style = new de(this, {}), this.style.setEventedParent(this, { style: this.style }), this.style.loadEmpty());\n }\n _diffStyle(t4, i2) {\n if (\"string\" == typeof t4) {\n const a2 = this._requestManager.transformRequest(t4, \"Style\");\n e.h(a2, new AbortController()).then((t5) => {\n this._updateDiff(t5.data, i2);\n }).catch((t5) => {\n t5 && this.fire(new e.j(t5));\n });\n } else \"object\" == typeof t4 && this._updateDiff(t4, i2);\n }\n _updateDiff(t4, i2) {\n try {\n this.style.setState(t4, i2) && this._update(true);\n } catch (a2) {\n e.w(`Unable to perform style diff: ${a2.message || a2.error || a2}. Rebuilding the style from scratch.`), this._updateStyle(t4, i2);\n }\n }\n getStyle() {\n if (this.style) return this.style.serialize();\n }\n isStyleLoaded() {\n return this.style ? this.style.loaded() : e.w(\"There is no style added to the map.\");\n }\n addSource(t4, e2) {\n return this._lazyInitEmptyStyle(), this.style.addSource(t4, e2), this._update(true);\n }\n isSourceLoaded(t4) {\n const i2 = this.style && this.style.sourceCaches[t4];\n if (void 0 !== i2) return i2.loaded();\n this.fire(new e.j(new Error(`There is no source with ID '${t4}'`)));\n }\n setTerrain(t4) {\n if (this.style._checkLoaded(), this._terrainDataCallback && this.style.off(\"data\", this._terrainDataCallback), t4) {\n const i2 = this.style.sourceCaches[t4.source];\n if (!i2) throw new Error(`cannot load terrain, because there exists no source with ID: ${t4.source}`);\n null === this.terrain && i2.reload();\n for (const i3 in this.style._layers) {\n const a2 = this.style._layers[i3];\n \"hillshade\" === a2.type && a2.source === t4.source && e.w(\"You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.\");\n }\n this.terrain = new Ds(this.painter, i2, t4), this.painter.renderToTexture = new Rs(this.painter, this.terrain), this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this._terrainDataCallback = (e2) => {\n \"style\" === e2.dataType ? this.terrain.sourceCache.freeRtt() : \"source\" === e2.dataType && e2.tile && (e2.sourceId !== t4.source || this._elevationFreeze || (this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom)), this.terrain.sourceCache.freeRtt(e2.tile.tileID));\n }, this.style.on(\"data\", this._terrainDataCallback);\n } else this.terrain && this.terrain.sourceCache.destruct(), this.terrain = null, this.painter.renderToTexture && this.painter.renderToTexture.destruct(), this.painter.renderToTexture = null, this.transform.minElevationForCurrentTile = 0, this.transform.elevation = 0;\n return this.fire(new e.k(\"terrain\", { terrain: t4 })), this;\n }\n getTerrain() {\n var t4, e2;\n return null !== (e2 = null === (t4 = this.terrain) || void 0 === t4 ? void 0 : t4.options) && void 0 !== e2 ? e2 : null;\n }\n areTilesLoaded() {\n const t4 = this.style && this.style.sourceCaches;\n for (const e2 in t4) {\n const i2 = t4[e2]._tiles;\n for (const t5 in i2) {\n const e3 = i2[t5];\n if (\"loaded\" !== e3.state && \"errored\" !== e3.state) return false;\n }\n }\n return true;\n }\n removeSource(t4) {\n return this.style.removeSource(t4), this._update(true);\n }\n getSource(t4) {\n return this.style.getSource(t4);\n }\n addImage(t4, i2, a2 = {}) {\n const { pixelRatio: s2 = 1, sdf: r2 = false, stretchX: n2, stretchY: l2, content: h2, textFitWidth: c2, textFitHeight: u2 } = a2;\n if (this._lazyInitEmptyStyle(), !(i2 instanceof HTMLImageElement || e.b(i2))) {\n if (void 0 === i2.width || void 0 === i2.height) return this.fire(new e.j(new Error(\"Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n {\n const { width: a3, height: o2, data: d2 } = i2, _2 = i2;\n return this.style.addImage(t4, { data: new e.R({ width: a3, height: o2 }, new Uint8Array(d2)), pixelRatio: s2, stretchX: n2, stretchY: l2, content: h2, textFitWidth: c2, textFitHeight: u2, sdf: r2, version: 0, userImage: _2 }), _2.onAdd && _2.onAdd(this, t4), this;\n }\n }\n {\n const { width: a3, height: d2, data: _2 } = o.getImageData(i2);\n this.style.addImage(t4, { data: new e.R({ width: a3, height: d2 }, _2), pixelRatio: s2, stretchX: n2, stretchY: l2, content: h2, textFitWidth: c2, textFitHeight: u2, sdf: r2, version: 0 });\n }\n }\n updateImage(t4, i2) {\n const a2 = this.style.getImage(t4);\n if (!a2) return this.fire(new e.j(new Error(\"The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.\")));\n const s2 = i2 instanceof HTMLImageElement || e.b(i2) ? o.getImageData(i2) : i2, { width: r2, height: n2, data: l2 } = s2;\n if (void 0 === r2 || void 0 === n2) return this.fire(new e.j(new Error(\"Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`\")));\n if (r2 !== a2.data.width || n2 !== a2.data.height) return this.fire(new e.j(new Error(\"The width and height of the updated image must be that same as the previous version of the image\")));\n const h2 = !(i2 instanceof HTMLImageElement || e.b(i2));\n return a2.data.replace(l2, h2), this.style.updateImage(t4, a2), this;\n }\n getImage(t4) {\n return this.style.getImage(t4);\n }\n hasImage(t4) {\n return t4 ? !!this.style.getImage(t4) : (this.fire(new e.j(new Error(\"Missing required image id\"))), false);\n }\n removeImage(t4) {\n this.style.removeImage(t4);\n }\n loadImage(t4) {\n return _.getImage(this._requestManager.transformRequest(t4, \"Image\"), new AbortController());\n }\n listImages() {\n return this.style.listImages();\n }\n addLayer(t4, e2) {\n return this._lazyInitEmptyStyle(), this.style.addLayer(t4, e2), this._update(true);\n }\n moveLayer(t4, e2) {\n return this.style.moveLayer(t4, e2), this._update(true);\n }\n removeLayer(t4) {\n return this.style.removeLayer(t4), this._update(true);\n }\n getLayer(t4) {\n return this.style.getLayer(t4);\n }\n getLayersOrder() {\n return this.style.getLayersOrder();\n }\n setLayerZoomRange(t4, e2, i2) {\n return this.style.setLayerZoomRange(t4, e2, i2), this._update(true);\n }\n setFilter(t4, e2, i2 = {}) {\n return this.style.setFilter(t4, e2, i2), this._update(true);\n }\n getFilter(t4) {\n return this.style.getFilter(t4);\n }\n setPaintProperty(t4, e2, i2, a2 = {}) {\n return this.style.setPaintProperty(t4, e2, i2, a2), this._update(true);\n }\n getPaintProperty(t4, e2) {\n return this.style.getPaintProperty(t4, e2);\n }\n setLayoutProperty(t4, e2, i2, a2 = {}) {\n return this.style.setLayoutProperty(t4, e2, i2, a2), this._update(true);\n }\n getLayoutProperty(t4, e2) {\n return this.style.getLayoutProperty(t4, e2);\n }\n setGlyphs(t4, e2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.setGlyphs(t4, e2), this._update(true);\n }\n getGlyphs() {\n return this.style.getGlyphsUrl();\n }\n addSprite(t4, e2, i2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.addSprite(t4, e2, i2, (t5) => {\n t5 || this._update(true);\n }), this;\n }\n removeSprite(t4) {\n return this._lazyInitEmptyStyle(), this.style.removeSprite(t4), this._update(true);\n }\n getSprite() {\n return this.style.getSprite();\n }\n setSprite(t4, e2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.setSprite(t4, e2, (t5) => {\n t5 || this._update(true);\n }), this;\n }\n setLight(t4, e2 = {}) {\n return this._lazyInitEmptyStyle(), this.style.setLight(t4, e2), this._update(true);\n }\n getLight() {\n return this.style.getLight();\n }\n setSky(t4) {\n return this._lazyInitEmptyStyle(), this.style.setSky(t4), this._update(true);\n }\n getSky() {\n return this.style.getSky();\n }\n setFeatureState(t4, e2) {\n return this.style.setFeatureState(t4, e2), this._update();\n }\n removeFeatureState(t4, e2) {\n return this.style.removeFeatureState(t4, e2), this._update();\n }\n getFeatureState(t4) {\n return this.style.getFeatureState(t4);\n }\n getContainer() {\n return this._container;\n }\n getCanvasContainer() {\n return this._canvasContainer;\n }\n getCanvas() {\n return this._canvas;\n }\n _containerDimensions() {\n let t4 = 0, e2 = 0;\n return this._container && (t4 = this._container.clientWidth || 400, e2 = this._container.clientHeight || 300), [t4, e2];\n }\n _setupContainer() {\n const t4 = this._container;\n t4.classList.add(\"maplibregl-map\");\n const e2 = this._canvasContainer = r.create(\"div\", \"maplibregl-canvas-container\", t4);\n this._interactive && e2.classList.add(\"maplibregl-interactive\"), this._canvas = r.create(\"canvas\", \"maplibregl-canvas\", e2), this._canvas.addEventListener(\"webglcontextlost\", this._contextLost, false), this._canvas.addEventListener(\"webglcontextrestored\", this._contextRestored, false), this._canvas.setAttribute(\"tabindex\", this._interactive ? \"0\" : \"-1\"), this._canvas.setAttribute(\"aria-label\", this._getUIString(\"Map.Title\")), this._canvas.setAttribute(\"role\", \"region\");\n const i2 = this._containerDimensions(), a2 = this._getClampedPixelRatio(i2[0], i2[1]);\n this._resizeCanvas(i2[0], i2[1], a2);\n const s2 = this._controlContainer = r.create(\"div\", \"maplibregl-control-container\", t4), o2 = this._controlPositions = {};\n [\"top-left\", \"top-right\", \"bottom-left\", \"bottom-right\"].forEach((t5) => {\n o2[t5] = r.create(\"div\", `maplibregl-ctrl-${t5} `, s2);\n }), this._container.addEventListener(\"scroll\", this._onMapScroll, false);\n }\n _resizeCanvas(t4, e2, i2) {\n this._canvas.width = Math.floor(i2 * t4), this._canvas.height = Math.floor(i2 * e2), this._canvas.style.width = `${t4}px`, this._canvas.style.height = `${e2}px`;\n }\n _setupPainter() {\n const t4 = { alpha: true, stencil: true, depth: true, failIfMajorPerformanceCaveat: this._failIfMajorPerformanceCaveat, preserveDrawingBuffer: this._preserveDrawingBuffer, antialias: this._antialias || false };\n let e2 = null;\n this._canvas.addEventListener(\"webglcontextcreationerror\", (i3) => {\n e2 = { requestedAttributes: t4 }, i3 && (e2.statusMessage = i3.statusMessage, e2.type = i3.type);\n }, { once: true });\n const i2 = this._canvas.getContext(\"webgl2\", t4) || this._canvas.getContext(\"webgl\", t4);\n if (!i2) {\n const t5 = \"Failed to initialize WebGL\";\n throw e2 ? (e2.message = t5, new Error(JSON.stringify(e2))) : new Error(t5);\n }\n this.painter = new va(i2, this.transform), n.testSupport(i2);\n }\n loaded() {\n return !this._styleDirty && !this._sourcesDirty && !!this.style && this.style.loaded();\n }\n _update(t4) {\n return this.style && this.style._loaded ? (this._styleDirty = this._styleDirty || t4, this._sourcesDirty = true, this.triggerRepaint(), this) : this;\n }\n _requestRenderFrame(t4) {\n return this._update(), this._renderTaskQueue.add(t4);\n }\n _cancelRenderFrame(t4) {\n this._renderTaskQueue.remove(t4);\n }\n _render(t4) {\n const i2 = this._idleTriggered ? this._fadeDuration : 0;\n if (this.painter.context.setDirty(), this.painter.setBaseState(), this._renderTaskQueue.run(t4), this._removed) return;\n let a2 = false;\n if (this.style && this._styleDirty) {\n this._styleDirty = false;\n const t5 = this.transform.zoom, s3 = o.now();\n this.style.zoomHistory.update(t5, s3);\n const r2 = new e.z(t5, { now: s3, fadeDuration: i2, zoomHistory: this.style.zoomHistory, transition: this.style.getTransition() }), n2 = r2.crossFadingFactor();\n 1 === n2 && n2 === this._crossFadingFactor || (a2 = true, this._crossFadingFactor = n2), this.style.update(r2);\n }\n this.style && this._sourcesDirty && (this._sourcesDirty = false, this.style._updateSources(this.transform)), this.terrain ? (this.terrain.sourceCache.update(this.transform, this.terrain), this.transform.minElevationForCurrentTile = this.terrain.getMinTileElevationForLngLatZoom(this.transform.center, this.transform.tileZoom), this._elevationFreeze || (this.transform.elevation = this.terrain.getElevationForLngLatZoom(this.transform.center, this.transform.tileZoom))) : (this.transform.minElevationForCurrentTile = 0, this.transform.elevation = 0), this._placementDirty = this.style && this.style._updatePlacement(this.painter.transform, this.showCollisionBoxes, i2, this._crossSourceCollisions), this.painter.render(this.style, { showTileBoundaries: this.showTileBoundaries, showOverdrawInspector: this._showOverdrawInspector, rotating: this.isRotating(), zooming: this.isZooming(), moving: this.isMoving(), fadeDuration: i2, showPadding: this.showPadding }), this.fire(new e.k(\"render\")), this.loaded() && !this._loaded && (this._loaded = true, e.bf.mark(e.bg.load), this.fire(new e.k(\"load\"))), this.style && (this.style.hasTransitions() || a2) && (this._styleDirty = true), this.style && !this._placementDirty && this.style._releaseSymbolFadeTiles();\n const s2 = this._sourcesDirty || this._styleDirty || this._placementDirty;\n return s2 || this._repaint ? this.triggerRepaint() : !this.isMoving() && this.loaded() && this.fire(new e.k(\"idle\")), !this._loaded || this._fullyLoaded || s2 || (this._fullyLoaded = true, e.bf.mark(e.bg.fullLoad)), this;\n }\n redraw() {\n return this.style && (this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._render(0)), this;\n }\n remove() {\n var t4;\n this._hash && this._hash.remove();\n for (const t5 of this._controls) t5.onRemove(this);\n this._controls = [], this._frameRequest && (this._frameRequest.abort(), this._frameRequest = null), this._renderTaskQueue.clear(), this.painter.destroy(), this.handlers.destroy(), delete this.handlers, this.setStyle(null), \"undefined\" != typeof window && removeEventListener(\"online\", this._onWindowOnline, false), _.removeThrottleControl(this._imageQueueHandle), null === (t4 = this._resizeObserver) || void 0 === t4 || t4.disconnect();\n const i2 = this.painter.context.gl.getExtension(\"WEBGL_lose_context\");\n (null == i2 ? void 0 : i2.loseContext) && i2.loseContext(), this._canvas.removeEventListener(\"webglcontextrestored\", this._contextRestored, false), this._canvas.removeEventListener(\"webglcontextlost\", this._contextLost, false), r.remove(this._canvasContainer), r.remove(this._controlContainer), this._container.classList.remove(\"maplibregl-map\"), e.bf.clearMetrics(), this._removed = true, this.fire(new e.k(\"remove\"));\n }\n triggerRepaint() {\n this.style && !this._frameRequest && (this._frameRequest = new AbortController(), o.frameAsync(this._frameRequest).then((t4) => {\n e.bf.frame(t4), this._frameRequest = null, this._render(t4);\n }).catch(() => {\n }));\n }\n get showTileBoundaries() {\n return !!this._showTileBoundaries;\n }\n set showTileBoundaries(t4) {\n this._showTileBoundaries !== t4 && (this._showTileBoundaries = t4, this._update());\n }\n get showPadding() {\n return !!this._showPadding;\n }\n set showPadding(t4) {\n this._showPadding !== t4 && (this._showPadding = t4, this._update());\n }\n get showCollisionBoxes() {\n return !!this._showCollisionBoxes;\n }\n set showCollisionBoxes(t4) {\n this._showCollisionBoxes !== t4 && (this._showCollisionBoxes = t4, t4 ? this.style._generateCollisionBoxes() : this._update());\n }\n get showOverdrawInspector() {\n return !!this._showOverdrawInspector;\n }\n set showOverdrawInspector(t4) {\n this._showOverdrawInspector !== t4 && (this._showOverdrawInspector = t4, this._update());\n }\n get repaint() {\n return !!this._repaint;\n }\n set repaint(t4) {\n this._repaint !== t4 && (this._repaint = t4, this.triggerRepaint());\n }\n get vertices() {\n return !!this._vertices;\n }\n set vertices(t4) {\n this._vertices = t4, this._update();\n }\n get version() {\n return Ls;\n }\n getCameraTargetElevation() {\n return this.transform.elevation;\n }\n }, t.MapMouseEvent = ka, t.MapTouchEvent = La, t.MapWheelEvent = Fa, t.Marker = Vs, t.NavigationControl = class {\n constructor(t4) {\n this._updateZoomButtons = () => {\n const t5 = this._map.getZoom(), e2 = t5 === this._map.getMaxZoom(), i2 = t5 === this._map.getMinZoom();\n this._zoomInButton.disabled = e2, this._zoomOutButton.disabled = i2, this._zoomInButton.setAttribute(\"aria-disabled\", e2.toString()), this._zoomOutButton.setAttribute(\"aria-disabled\", i2.toString());\n }, this._rotateCompassArrow = () => {\n const t5 = this.options.visualizePitch ? `scale(${1 / Math.pow(Math.cos(this._map.transform.pitch * (Math.PI / 180)), 0.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle * (180 / Math.PI)}deg)` : `rotate(${this._map.transform.angle * (180 / Math.PI)}deg)`;\n this._compassIcon.style.transform = t5;\n }, this._setButtonTitle = (t5, e2) => {\n const i2 = this._map._getUIString(`NavigationControl.${e2}`);\n t5.title = i2, t5.setAttribute(\"aria-label\", i2);\n }, this.options = e.e({}, Os, t4), this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._container.addEventListener(\"contextmenu\", (t5) => t5.preventDefault()), this.options.showZoom && (this._zoomInButton = this._createButton(\"maplibregl-ctrl-zoom-in\", (t5) => this._map.zoomIn({}, { originalEvent: t5 })), r.create(\"span\", \"maplibregl-ctrl-icon\", this._zoomInButton).setAttribute(\"aria-hidden\", \"true\"), this._zoomOutButton = this._createButton(\"maplibregl-ctrl-zoom-out\", (t5) => this._map.zoomOut({}, { originalEvent: t5 })), r.create(\"span\", \"maplibregl-ctrl-icon\", this._zoomOutButton).setAttribute(\"aria-hidden\", \"true\")), this.options.showCompass && (this._compass = this._createButton(\"maplibregl-ctrl-compass\", (t5) => {\n this.options.visualizePitch ? this._map.resetNorthPitch({}, { originalEvent: t5 }) : this._map.resetNorth({}, { originalEvent: t5 });\n }), this._compassIcon = r.create(\"span\", \"maplibregl-ctrl-icon\", this._compass), this._compassIcon.setAttribute(\"aria-hidden\", \"true\"));\n }\n onAdd(t4) {\n return this._map = t4, this.options.showZoom && (this._setButtonTitle(this._zoomInButton, \"ZoomIn\"), this._setButtonTitle(this._zoomOutButton, \"ZoomOut\"), this._map.on(\"zoom\", this._updateZoomButtons), this._updateZoomButtons()), this.options.showCompass && (this._setButtonTitle(this._compass, \"ResetBearing\"), this.options.visualizePitch && this._map.on(\"pitch\", this._rotateCompassArrow), this._map.on(\"rotate\", this._rotateCompassArrow), this._rotateCompassArrow(), this._handler = new Ns(this._map, this._compass, this.options.visualizePitch)), this._container;\n }\n onRemove() {\n r.remove(this._container), this.options.showZoom && this._map.off(\"zoom\", this._updateZoomButtons), this.options.showCompass && (this.options.visualizePitch && this._map.off(\"pitch\", this._rotateCompassArrow), this._map.off(\"rotate\", this._rotateCompassArrow), this._handler.off(), delete this._handler), delete this._map;\n }\n _createButton(t4, e2) {\n const i2 = r.create(\"button\", t4, this._container);\n return i2.type = \"button\", i2.addEventListener(\"click\", e2), i2;\n }\n }, t.Popup = class extends e.E {\n constructor(t4) {\n super(), this.remove = () => (this._content && r.remove(this._content), this._container && (r.remove(this._container), delete this._container), this._map && (this._map.off(\"move\", this._update), this._map.off(\"move\", this._onClose), this._map.off(\"click\", this._onClose), this._map.off(\"remove\", this.remove), this._map.off(\"mousemove\", this._onMouseMove), this._map.off(\"mouseup\", this._onMouseUp), this._map.off(\"drag\", this._onDrag), this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\"), delete this._map, this.fire(new e.k(\"close\"))), this), this._onMouseUp = (t5) => {\n this._update(t5.point);\n }, this._onMouseMove = (t5) => {\n this._update(t5.point);\n }, this._onDrag = (t5) => {\n this._update(t5.point);\n }, this._update = (t5) => {\n var e2;\n if (!this._map || !this._lngLat && !this._trackPointer || !this._content) return;\n if (!this._container) {\n if (this._container = r.create(\"div\", \"maplibregl-popup\", this._map.getContainer()), this._tip = r.create(\"div\", \"maplibregl-popup-tip\", this._container), this._container.appendChild(this._content), this.options.className) for (const t6 of this.options.className.split(\" \")) this._container.classList.add(t6);\n this._closeButton && this._closeButton.setAttribute(\"aria-label\", this._map._getUIString(\"Popup.Close\")), this._trackPointer && this._container.classList.add(\"maplibregl-popup-track-pointer\");\n }\n if (this.options.maxWidth && this._container.style.maxWidth !== this.options.maxWidth && (this._container.style.maxWidth = this.options.maxWidth), this._lngLat = this._map.transform.renderWorldCopies && !this._trackPointer ? js(this._lngLat, this._flatPos, this._map.transform) : null === (e2 = this._lngLat) || void 0 === e2 ? void 0 : e2.wrap(), this._trackPointer && !t5) return;\n const i2 = this._flatPos = this._pos = this._trackPointer && t5 ? t5 : this._map.project(this._lngLat);\n this._map.terrain && (this._flatPos = this._trackPointer && t5 ? t5 : this._map.transform.locationPoint(this._lngLat));\n let a2 = this.options.anchor;\n const s2 = Qs(this.options.offset);\n if (!a2) {\n const t6 = this._container.offsetWidth, e3 = this._container.offsetHeight;\n let o3;\n o3 = i2.y + s2.bottom.y < e3 ? [\"top\"] : i2.y > this._map.transform.height - e3 ? [\"bottom\"] : [], i2.x < t6 / 2 ? o3.push(\"left\") : i2.x > this._map.transform.width - t6 / 2 && o3.push(\"right\"), a2 = 0 === o3.length ? \"bottom\" : o3.join(\"-\");\n }\n let o2 = i2.add(s2[a2]);\n this.options.subpixelPositioning || (o2 = o2.round()), r.setTransform(this._container, `${Zs[a2]} translate(${o2.x}px,${o2.y}px)`), qs(this._container, a2, \"popup\");\n }, this._onClose = () => {\n this.remove();\n }, this.options = e.e(Object.create(Js), t4);\n }\n addTo(t4) {\n return this._map && this.remove(), this._map = t4, this.options.closeOnClick && this._map.on(\"click\", this._onClose), this.options.closeOnMove && this._map.on(\"move\", this._onClose), this._map.on(\"remove\", this.remove), this._update(), this._focusFirstElement(), this._trackPointer ? (this._map.on(\"mousemove\", this._onMouseMove), this._map.on(\"mouseup\", this._onMouseUp), this._container && this._container.classList.add(\"maplibregl-popup-track-pointer\"), this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")) : this._map.on(\"move\", this._update), this.fire(new e.k(\"open\")), this;\n }\n isOpen() {\n return !!this._map;\n }\n getLngLat() {\n return this._lngLat;\n }\n setLngLat(t4) {\n return this._lngLat = e.N.convert(t4), this._pos = null, this._flatPos = null, this._trackPointer = false, this._update(), this._map && (this._map.on(\"move\", this._update), this._map.off(\"mousemove\", this._onMouseMove), this._container && this._container.classList.remove(\"maplibregl-popup-track-pointer\"), this._map._canvasContainer.classList.remove(\"maplibregl-track-pointer\")), this;\n }\n trackPointer() {\n return this._trackPointer = true, this._pos = null, this._flatPos = null, this._update(), this._map && (this._map.off(\"move\", this._update), this._map.on(\"mousemove\", this._onMouseMove), this._map.on(\"drag\", this._onDrag), this._container && this._container.classList.add(\"maplibregl-popup-track-pointer\"), this._map._canvasContainer.classList.add(\"maplibregl-track-pointer\")), this;\n }\n getElement() {\n return this._container;\n }\n setText(t4) {\n return this.setDOMContent(document.createTextNode(t4));\n }\n setHTML(t4) {\n const e2 = document.createDocumentFragment(), i2 = document.createElement(\"body\");\n let a2;\n for (i2.innerHTML = t4; a2 = i2.firstChild, a2; ) e2.appendChild(a2);\n return this.setDOMContent(e2);\n }\n getMaxWidth() {\n var t4;\n return null === (t4 = this._container) || void 0 === t4 ? void 0 : t4.style.maxWidth;\n }\n setMaxWidth(t4) {\n return this.options.maxWidth = t4, this._update(), this;\n }\n setDOMContent(t4) {\n if (this._content) for (; this._content.hasChildNodes(); ) this._content.firstChild && this._content.removeChild(this._content.firstChild);\n else this._content = r.create(\"div\", \"maplibregl-popup-content\", this._container);\n return this._content.appendChild(t4), this._createCloseButton(), this._update(), this._focusFirstElement(), this;\n }\n addClassName(t4) {\n return this._container && this._container.classList.add(t4), this;\n }\n removeClassName(t4) {\n return this._container && this._container.classList.remove(t4), this;\n }\n setOffset(t4) {\n return this.options.offset = t4, this._update(), this;\n }\n toggleClassName(t4) {\n if (this._container) return this._container.classList.toggle(t4);\n }\n setSubpixelPositioning(t4) {\n this.options.subpixelPositioning = t4;\n }\n _createCloseButton() {\n this.options.closeButton && (this._closeButton = r.create(\"button\", \"maplibregl-popup-close-button\", this._content), this._closeButton.type = \"button\", this._closeButton.innerHTML = \"×\", this._closeButton.addEventListener(\"click\", this._onClose));\n }\n _focusFirstElement() {\n if (!this.options.focusAfterOpen || !this._container) return;\n const t4 = this._container.querySelector(Ys);\n t4 && t4.focus();\n }\n }, t.RasterDEMTileSource = K2, t.RasterTileSource = X, t.ScaleControl = class {\n constructor(t4) {\n this._onMove = () => {\n Xs(this._map, this._container, this.options);\n }, this.setUnit = (t5) => {\n this.options.unit = t5, Xs(this._map, this._container, this.options);\n }, this.options = Object.assign(Object.assign({}, $s), t4);\n }\n getDefaultPosition() {\n return \"bottom-left\";\n }\n onAdd(t4) {\n return this._map = t4, this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-scale\", t4.getContainer()), this._map.on(\"move\", this._onMove), this._onMove(), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"move\", this._onMove), this._map = void 0;\n }\n }, t.ScrollZoomHandler = us, t.Style = de, t.TerrainControl = class {\n constructor(t4) {\n this._toggleTerrain = () => {\n this._map.getTerrain() ? this._map.setTerrain(null) : this._map.setTerrain(this.options), this._updateTerrainIcon();\n }, this._updateTerrainIcon = () => {\n this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain\"), this._terrainButton.classList.remove(\"maplibregl-ctrl-terrain-enabled\"), this._map.terrain ? (this._terrainButton.classList.add(\"maplibregl-ctrl-terrain-enabled\"), this._terrainButton.title = this._map._getUIString(\"TerrainControl.Disable\")) : (this._terrainButton.classList.add(\"maplibregl-ctrl-terrain\"), this._terrainButton.title = this._map._getUIString(\"TerrainControl.Enable\"));\n }, this.options = t4;\n }\n onAdd(t4) {\n return this._map = t4, this._container = r.create(\"div\", \"maplibregl-ctrl maplibregl-ctrl-group\"), this._terrainButton = r.create(\"button\", \"maplibregl-ctrl-terrain\", this._container), r.create(\"span\", \"maplibregl-ctrl-icon\", this._terrainButton).setAttribute(\"aria-hidden\", \"true\"), this._terrainButton.type = \"button\", this._terrainButton.addEventListener(\"click\", this._toggleTerrain), this._updateTerrainIcon(), this._map.on(\"terrain\", this._updateTerrainIcon), this._container;\n }\n onRemove() {\n r.remove(this._container), this._map.off(\"terrain\", this._updateTerrainIcon), this._map = void 0;\n }\n }, t.TwoFingersTouchPitchHandler = rs, t.TwoFingersTouchRotateHandler = ss, t.TwoFingersTouchZoomHandler = is, t.TwoFingersTouchZoomRotateHandler = gs, t.VectorTileSource = $, t.VideoSource = tt, t.addSourceType = (t4, i2) => e._(void 0, void 0, void 0, function* () {\n if (at(t4)) throw new Error(`A source type called \"${t4}\" already exists.`);\n ((t5, e2) => {\n it[t5] = e2;\n })(t4, i2);\n }), t.clearPrewarmedResources = function() {\n const t4 = B2;\n t4 && (t4.isPreloaded() && 1 === t4.numActive() ? (t4.release(k), B2 = null) : console.warn(\"Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()\"));\n }, t.getMaxParallelImageRequests = function() {\n return e.a.MAX_PARALLEL_IMAGE_REQUESTS;\n }, t.getRTLTextPluginStatus = function() {\n return nt().getRTLTextPluginStatus();\n }, t.getVersion = function() {\n return to;\n }, t.getWorkerCount = function() {\n return L.workerCount;\n }, t.getWorkerUrl = function() {\n return e.a.WORKER_URL;\n }, t.importScriptInWorkers = function(t4) {\n return j().broadcast(\"IS\", t4);\n }, t.prewarm = function() {\n N().acquire(k);\n }, t.setMaxParallelImageRequests = function(t4) {\n e.a.MAX_PARALLEL_IMAGE_REQUESTS = t4;\n }, t.setRTLTextPlugin = function(t4, e2) {\n return nt().setRTLTextPlugin(t4, e2);\n }, t.setWorkerCount = function(t4) {\n L.workerCount = t4;\n }, t.setWorkerUrl = function(t4) {\n e.a.WORKER_URL = t4;\n };\n });\n var maplibregl$1 = maplibregl;\n return maplibregl$1;\n });\n }\n });\n\n // src/plots/map/layers.js\n var require_layers2 = __commonJS({\n \"src/plots/map/layers.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var sanitizeHTML = require_svg_text_utils().sanitizeHTML;\n var convertTextOpts = require_convert_text_opts2();\n var constants = require_constants27();\n function MapLayer(subplot, index) {\n this.subplot = subplot;\n this.uid = subplot.uid + \"-\" + index;\n this.index = index;\n this.idSource = \"source-\" + this.uid;\n this.idLayer = constants.layoutLayerPrefix + this.uid;\n this.sourceType = null;\n this.source = null;\n this.layerType = null;\n this.below = null;\n this.visible = false;\n }\n var proto = MapLayer.prototype;\n proto.update = function update(opts) {\n if (!this.visible) {\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewImage(opts)) {\n this.updateImage(opts);\n } else if (this.needsNewSource(opts)) {\n this.removeLayer();\n this.updateSource(opts);\n this.updateLayer(opts);\n } else if (this.needsNewLayer(opts)) {\n this.updateLayer(opts);\n } else {\n this.updateStyle(opts);\n }\n this.visible = isVisible(opts);\n };\n proto.needsNewImage = function(opts) {\n var map = this.subplot.map;\n return map.getSource(this.idSource) && this.sourceType === \"image\" && opts.sourcetype === \"image\" && (this.source !== opts.source || JSON.stringify(this.coordinates) !== JSON.stringify(opts.coordinates));\n };\n proto.needsNewSource = function(opts) {\n return this.sourceType !== opts.sourcetype || JSON.stringify(this.source) !== JSON.stringify(opts.source) || this.layerType !== opts.type;\n };\n proto.needsNewLayer = function(opts) {\n return this.layerType !== opts.type || this.below !== this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.lookupBelow = function() {\n return this.subplot.belowLookup[\"layout-\" + this.index];\n };\n proto.updateImage = function(opts) {\n var map = this.subplot.map;\n map.getSource(this.idSource).updateImage({\n url: opts.source,\n coordinates: opts.coordinates\n });\n var _below = this.findFollowingMapLayerId(this.lookupBelow());\n if (_below !== null) {\n this.subplot.map.moveLayer(this.idLayer, _below);\n }\n };\n proto.updateSource = function(opts) {\n var map = this.subplot.map;\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n this.sourceType = opts.sourcetype;\n this.source = opts.source;\n if (!isVisible(opts)) return;\n var sourceOpts = convertSourceOpts(opts);\n map.addSource(this.idSource, sourceOpts);\n };\n proto.findFollowingMapLayerId = function(below) {\n if (below === \"traces\") {\n var mapLayers = this.subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(constants.traceLayerPrefix) === 0) {\n below = layerId;\n break;\n }\n }\n }\n return below;\n };\n proto.updateLayer = function(opts) {\n var subplot = this.subplot;\n var convertedOpts = convertOpts(opts);\n var below = this.lookupBelow();\n var _below = this.findFollowingMapLayerId(below);\n this.removeLayer();\n if (isVisible(opts)) {\n subplot.addLayer({\n id: this.idLayer,\n source: this.idSource,\n \"source-layer\": opts.sourcelayer || \"\",\n type: opts.type,\n minzoom: opts.minzoom,\n maxzoom: opts.maxzoom,\n layout: convertedOpts.layout,\n paint: convertedOpts.paint\n }, _below);\n }\n this.layerType = opts.type;\n this.below = below;\n };\n proto.updateStyle = function(opts) {\n if (isVisible(opts)) {\n var convertedOpts = convertOpts(opts);\n this.subplot.setOptions(this.idLayer, \"setLayoutProperty\", convertedOpts.layout);\n this.subplot.setOptions(this.idLayer, \"setPaintProperty\", convertedOpts.paint);\n }\n };\n proto.removeLayer = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) {\n map.removeLayer(this.idLayer);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n if (map.getLayer(this.idLayer)) map.removeLayer(this.idLayer);\n if (map.getSource(this.idSource)) map.removeSource(this.idSource);\n };\n function isVisible(opts) {\n if (!opts.visible) return false;\n var source = opts.source;\n if (Array.isArray(source) && source.length > 0) {\n for (var i = 0; i < source.length; i++) {\n if (typeof source[i] !== \"string\" || source[i].length === 0) {\n return false;\n }\n }\n return true;\n }\n return Lib.isPlainObject(source) || typeof source === \"string\" && source.length > 0;\n }\n function convertOpts(opts) {\n var layout = {};\n var paint = {};\n switch (opts.type) {\n case \"circle\":\n Lib.extendFlat(paint, {\n \"circle-radius\": opts.circle.radius,\n \"circle-color\": opts.color,\n \"circle-opacity\": opts.opacity\n });\n break;\n case \"line\":\n Lib.extendFlat(paint, {\n \"line-width\": opts.line.width,\n \"line-color\": opts.color,\n \"line-opacity\": opts.opacity,\n \"line-dasharray\": opts.line.dash\n });\n break;\n case \"fill\":\n Lib.extendFlat(paint, {\n \"fill-color\": opts.color,\n \"fill-outline-color\": opts.fill.outlinecolor,\n \"fill-opacity\": opts.opacity\n // no way to pass specify outline width at the moment\n });\n break;\n case \"symbol\":\n var symbol = opts.symbol;\n var textOpts = convertTextOpts(symbol.textposition, symbol.iconsize);\n Lib.extendFlat(layout, {\n \"icon-image\": symbol.icon + \"-15\",\n \"icon-size\": symbol.iconsize / 10,\n \"text-field\": symbol.text,\n \"text-size\": symbol.textfont.size,\n \"text-anchor\": textOpts.anchor,\n \"text-offset\": textOpts.offset,\n \"symbol-placement\": symbol.placement\n // TODO font family\n // 'text-font': symbol.textfont.family.split(', '),\n });\n Lib.extendFlat(paint, {\n \"icon-color\": opts.color,\n \"text-color\": symbol.textfont.color,\n \"text-opacity\": opts.opacity\n });\n break;\n case \"raster\":\n Lib.extendFlat(paint, {\n \"raster-fade-duration\": 0,\n \"raster-opacity\": opts.opacity\n });\n break;\n }\n return {\n layout,\n paint\n };\n }\n function convertSourceOpts(opts) {\n var sourceType = opts.sourcetype;\n var source = opts.source;\n var sourceOpts = { type: sourceType };\n var field;\n if (sourceType === \"geojson\") {\n field = \"data\";\n } else if (sourceType === \"vector\") {\n field = typeof source === \"string\" ? \"url\" : \"tiles\";\n } else if (sourceType === \"raster\") {\n field = \"tiles\";\n sourceOpts.tileSize = 256;\n } else if (sourceType === \"image\") {\n field = \"url\";\n sourceOpts.coordinates = opts.coordinates;\n }\n sourceOpts[field] = source;\n if (opts.sourceattribution) {\n sourceOpts.attribution = sanitizeHTML(opts.sourceattribution);\n }\n return sourceOpts;\n }\n module.exports = function createMapLayer(subplot, index, opts) {\n var mapLayer = new MapLayer(subplot, index);\n mapLayer.update(opts);\n return mapLayer;\n };\n }\n });\n\n // src/plots/map/map.js\n var require_map2 = __commonJS({\n \"src/plots/map/map.js\"(exports, module) {\n \"use strict\";\n var maplibregl = require_maplibre_gl();\n var Lib = require_lib();\n var geoUtils = require_geo_location_utils();\n var Registry = require_registry();\n var Axes = require_axes();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var dragHelpers = require_helpers5();\n var drawMode = dragHelpers.drawMode;\n var selectMode = dragHelpers.selectMode;\n var prepSelect = require_selections().prepSelect;\n var clearOutline = require_selections().clearOutline;\n var clearSelectionsCache = require_selections().clearSelectionsCache;\n var selectOnClick = require_selections().selectOnClick;\n var constants = require_constants27();\n var createMapLayer = require_layers2();\n function Map2(gd, id) {\n this.id = id;\n this.gd = gd;\n var fullLayout = gd._fullLayout;\n var context = gd._context;\n this.container = fullLayout._glcontainer.node();\n this.isStatic = context.staticPlot;\n this.uid = fullLayout._uid + \"-\" + this.id;\n this.div = null;\n this.xaxis = null;\n this.yaxis = null;\n this.createFramework(fullLayout);\n this.map = null;\n this.styleObj = null;\n this.traceHash = {};\n this.layerList = [];\n this.belowLookup = {};\n this.dragging = false;\n this.wheeling = false;\n }\n var proto = Map2.prototype;\n proto.plot = function(calcData, fullLayout, promises) {\n var self2 = this;\n var promise;\n if (!self2.map) {\n promise = new Promise(function(resolve, reject) {\n self2.createMap(calcData, fullLayout, resolve, reject);\n });\n } else {\n promise = new Promise(function(resolve, reject) {\n self2.updateMap(calcData, fullLayout, resolve, reject);\n });\n }\n promises.push(promise);\n };\n proto.createMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var opts = fullLayout[self2.id];\n var styleObj = self2.styleObj = getStyleObj(opts.style);\n var bounds = opts.bounds;\n var maxBounds = bounds ? [[bounds.west, bounds.south], [bounds.east, bounds.north]] : null;\n var map = self2.map = new maplibregl.Map({\n container: self2.div,\n style: styleObj.style,\n center: convertCenter(opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch,\n maxBounds,\n interactive: !self2.isStatic,\n preserveDrawingBuffer: self2.isStatic,\n doubleClickZoom: false,\n boxZoom: false,\n attributionControl: false\n }).addControl(new maplibregl.AttributionControl({\n compact: true\n }));\n var requestedIcons = {};\n map.on(\"styleimagemissing\", function(e) {\n var id = e.id;\n if (!requestedIcons[id] && id.includes(\"-15\")) {\n requestedIcons[id] = true;\n var img = new Image(15, 15);\n img.onload = function() {\n map.addImage(id, img);\n };\n img.crossOrigin = \"Anonymous\";\n img.src = \"https://unpkg.com/maki@2.1.0/icons/\" + id + \".svg\";\n }\n });\n map.setTransformRequest(function(url) {\n url = url.replace(\"https://fonts.openmaptiles.org/Open Sans Extrabold\", \"https://fonts.openmaptiles.org/Open Sans Extra Bold\");\n url = url.replace(\"https://tiles.basemaps.cartocdn.com/fonts/Open Sans Extrabold\", \"https://fonts.openmaptiles.org/Open Sans Extra Bold\");\n url = url.replace(\"https://fonts.openmaptiles.org/Open Sans Regular,Arial Unicode MS Regular\", \"https://fonts.openmaptiles.org/Klokantech Noto Sans Regular\");\n return {\n url\n };\n });\n map._canvas.style.left = \"0px\";\n map._canvas.style.top = \"0px\";\n self2.rejectOnError(reject);\n if (!self2.isStatic) {\n self2.initFx(calcData, fullLayout);\n }\n var promises = [];\n promises.push(new Promise(function(resolve2) {\n map.once(\"load\", resolve2);\n }));\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.updateMap = function(calcData, fullLayout, resolve, reject) {\n var self2 = this;\n var map = self2.map;\n var opts = fullLayout[this.id];\n self2.rejectOnError(reject);\n var promises = [];\n var styleObj = getStyleObj(opts.style);\n if (JSON.stringify(self2.styleObj) !== JSON.stringify(styleObj)) {\n self2.styleObj = styleObj;\n map.setStyle(styleObj.style);\n self2.traceHash = {};\n promises.push(new Promise(function(resolve2) {\n map.once(\"styledata\", resolve2);\n }));\n }\n promises = promises.concat(geoUtils.fetchTraceGeoData(calcData));\n Promise.all(promises).then(function() {\n self2.fillBelowLookup(calcData, fullLayout);\n self2.updateData(calcData);\n self2.updateLayout(fullLayout);\n self2.resolveOnRender(resolve);\n }).catch(reject);\n };\n proto.fillBelowLookup = function(calcData, fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var i, val;\n var belowLookup = this.belowLookup = {};\n var hasTraceAtTop = false;\n for (i = 0; i < calcData.length; i++) {\n var trace = calcData[i][0].trace;\n var _module = trace._module;\n if (typeof trace.below === \"string\") {\n val = trace.below;\n } else if (_module.getBelow) {\n val = _module.getBelow(trace, this);\n }\n if (val === \"\") {\n hasTraceAtTop = true;\n }\n belowLookup[\"trace-\" + trace.uid] = val || \"\";\n }\n for (i = 0; i < layers.length; i++) {\n var item = layers[i];\n if (typeof item.below === \"string\") {\n val = item.below;\n } else if (hasTraceAtTop) {\n val = \"traces\";\n } else {\n val = \"\";\n }\n belowLookup[\"layout-\" + i] = val;\n }\n var val2list = {};\n var k, id;\n for (k in belowLookup) {\n val = belowLookup[k];\n if (val2list[val]) {\n val2list[val].push(k);\n } else {\n val2list[val] = [k];\n }\n }\n for (val in val2list) {\n var list = val2list[val];\n if (list.length > 1) {\n for (i = 0; i < list.length; i++) {\n k = list[i];\n if (k.indexOf(\"trace-\") === 0) {\n id = k.split(\"trace-\")[1];\n if (this.traceHash[id]) {\n this.traceHash[id].below = null;\n }\n } else if (k.indexOf(\"layout-\") === 0) {\n id = k.split(\"layout-\")[1];\n if (this.layerList[id]) {\n this.layerList[id].below = null;\n }\n }\n }\n }\n }\n };\n var traceType2orderIndex = {\n choroplethmap: 0,\n densitymap: 1,\n scattermap: 2\n };\n proto.updateData = function(calcData) {\n var traceHash = this.traceHash;\n var traceObj, trace, i, j;\n var calcDataSorted = calcData.slice().sort(function(a, b) {\n return traceType2orderIndex[a[0].trace.type] - traceType2orderIndex[b[0].trace.type];\n });\n for (i = 0; i < calcDataSorted.length; i++) {\n var calcTrace = calcDataSorted[i];\n trace = calcTrace[0].trace;\n traceObj = traceHash[trace.uid];\n var didUpdate = false;\n if (traceObj) {\n if (traceObj.type === trace.type) {\n traceObj.update(calcTrace);\n didUpdate = true;\n } else {\n traceObj.dispose();\n }\n }\n if (!didUpdate && trace._module) {\n traceHash[trace.uid] = trace._module.plot(this, calcTrace);\n }\n }\n var ids = Object.keys(traceHash);\n idLoop:\n for (i = 0; i < ids.length; i++) {\n var id = ids[i];\n for (j = 0; j < calcData.length; j++) {\n trace = calcData[j][0].trace;\n if (id === trace.uid) continue idLoop;\n }\n traceObj = traceHash[id];\n traceObj.dispose();\n delete traceHash[id];\n }\n };\n proto.updateLayout = function(fullLayout) {\n var map = this.map;\n var opts = fullLayout[this.id];\n if (!this.dragging && !this.wheeling) {\n map.setCenter(convertCenter(opts.center));\n map.setZoom(opts.zoom);\n map.setBearing(opts.bearing);\n map.setPitch(opts.pitch);\n }\n this.updateLayers(fullLayout);\n this.updateFramework(fullLayout);\n this.updateFx(fullLayout);\n this.map.resize();\n if (this.gd._context._scrollZoom.map) {\n map.scrollZoom.enable();\n } else {\n map.scrollZoom.disable();\n }\n };\n proto.resolveOnRender = function(resolve) {\n var map = this.map;\n map.on(\"render\", function onRender() {\n if (map.loaded()) {\n map.off(\"render\", onRender);\n setTimeout(resolve, 10);\n }\n });\n };\n proto.rejectOnError = function(reject) {\n var map = this.map;\n function handler() {\n reject(new Error(constants.mapOnErrorMsg));\n }\n map.once(\"error\", handler);\n map.once(\"style.error\", handler);\n map.once(\"source.error\", handler);\n map.once(\"tile.error\", handler);\n map.once(\"layer.error\", handler);\n };\n proto.createFramework = function(fullLayout) {\n var self2 = this;\n var div = self2.div = document.createElement(\"div\");\n div.id = self2.uid;\n div.style.position = \"absolute\";\n self2.container.appendChild(div);\n self2.xaxis = {\n _id: \"x\",\n c2p: function(v) {\n return self2.project(v).x;\n }\n };\n self2.yaxis = {\n _id: \"y\",\n c2p: function(v) {\n return self2.project(v).y;\n }\n };\n self2.updateFramework(fullLayout);\n self2.mockAxis = {\n type: \"linear\",\n showexponent: \"all\",\n exponentformat: \"B\"\n };\n Axes.setConvert(self2.mockAxis, fullLayout);\n };\n proto.initFx = function(calcData, fullLayout) {\n var self2 = this;\n var gd = self2.gd;\n var map = self2.map;\n map.on(\"moveend\", function(evt) {\n if (!self2.map) return;\n var fullLayoutNow = gd._fullLayout;\n if (evt.originalEvent || self2.wheeling) {\n var optsNow = fullLayoutNow[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, fullLayoutNow._preGUI, self2.getViewEdits(optsNow));\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n }\n if (evt.originalEvent && evt.originalEvent.type === \"mouseup\") {\n self2.dragging = false;\n } else if (self2.wheeling) {\n self2.wheeling = false;\n }\n if (fullLayoutNow && fullLayoutNow._rehover) {\n fullLayoutNow._rehover();\n }\n });\n map.on(\"wheel\", function() {\n self2.wheeling = true;\n });\n map.on(\"mousemove\", function(evt) {\n var bb = self2.div.getBoundingClientRect();\n var xy = [\n evt.originalEvent.offsetX,\n evt.originalEvent.offsetY\n ];\n evt.target.getBoundingClientRect = function() {\n return bb;\n };\n self2.xaxis.p2c = function() {\n return map.unproject(xy).lng;\n };\n self2.yaxis.p2c = function() {\n return map.unproject(xy).lat;\n };\n gd._fullLayout._rehover = function() {\n if (gd._fullLayout._hoversubplot === self2.id && gd._fullLayout[self2.id]) {\n Fx.hover(gd, evt, self2.id);\n }\n };\n Fx.hover(gd, evt, self2.id);\n gd._fullLayout._hoversubplot = self2.id;\n });\n function unhover() {\n Fx.loneUnhover(fullLayout._hoverlayer);\n }\n map.on(\"dragstart\", function() {\n self2.dragging = true;\n unhover();\n });\n map.on(\"zoomstart\", unhover);\n map.on(\"mouseout\", function() {\n gd._fullLayout._hoversubplot = null;\n });\n function emitUpdate() {\n var viewNow = self2.getView();\n gd.emit(\"plotly_relayouting\", self2.getViewEditsWithDerived(viewNow));\n }\n map.on(\"drag\", emitUpdate);\n map.on(\"zoom\", emitUpdate);\n map.on(\"dblclick\", function() {\n var optsNow = gd._fullLayout[self2.id];\n Registry.call(\"_storeDirectGUIEdit\", gd.layout, gd._fullLayout._preGUI, self2.getViewEdits(optsNow));\n var viewInitial = self2.viewInitial;\n map.setCenter(convertCenter(viewInitial.center));\n map.setZoom(viewInitial.zoom);\n map.setBearing(viewInitial.bearing);\n map.setPitch(viewInitial.pitch);\n var viewNow = self2.getView();\n optsNow._input.center = optsNow.center = viewNow.center;\n optsNow._input.zoom = optsNow.zoom = viewNow.zoom;\n optsNow._input.bearing = optsNow.bearing = viewNow.bearing;\n optsNow._input.pitch = optsNow.pitch = viewNow.pitch;\n gd.emit(\"plotly_doubleclick\", null);\n gd.emit(\"plotly_relayout\", self2.getViewEditsWithDerived(viewNow));\n });\n self2.clearOutline = function() {\n clearSelectionsCache(self2.dragOptions);\n clearOutline(self2.dragOptions.gd);\n };\n self2.onClickInPanFn = function(dragOptions) {\n return function(evt) {\n var clickMode = gd._fullLayout.clickmode;\n if (clickMode.indexOf(\"select\") > -1) {\n selectOnClick(evt.originalEvent, gd, [self2.xaxis], [self2.yaxis], self2.id, dragOptions);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt.originalEvent);\n }\n };\n };\n };\n proto.updateFx = function(fullLayout) {\n var self2 = this;\n var map = self2.map;\n var gd = self2.gd;\n if (self2.isStatic) return;\n function invert(pxpy) {\n var obj = self2.map.unproject(pxpy);\n return [obj.lng, obj.lat];\n }\n var dragMode = fullLayout.dragmode;\n var fillRangeItems;\n fillRangeItems = function(eventData, poly) {\n if (poly.isRect) {\n var ranges = eventData.range = {};\n ranges[self2.id] = [\n invert([poly.xmin, poly.ymin]),\n invert([poly.xmax, poly.ymax])\n ];\n } else {\n var dataPts = eventData.lassoPoints = {};\n dataPts[self2.id] = poly.map(invert);\n }\n };\n var oldDragOptions = self2.dragOptions;\n self2.dragOptions = Lib.extendDeep(oldDragOptions || {}, {\n dragmode: fullLayout.dragmode,\n element: self2.div,\n gd,\n plotinfo: {\n id: self2.id,\n domain: fullLayout[self2.id].domain,\n xaxis: self2.xaxis,\n yaxis: self2.yaxis,\n fillRangeItems\n },\n xaxes: [self2.xaxis],\n yaxes: [self2.yaxis],\n subplot: self2.id\n });\n map.off(\"click\", self2.onClickInPanHandler);\n if (selectMode(dragMode) || drawMode(dragMode)) {\n map.dragPan.disable();\n map.on(\"zoomstart\", self2.clearOutline);\n self2.dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, self2.dragOptions, dragMode);\n };\n dragElement.init(self2.dragOptions);\n } else {\n map.dragPan.enable();\n map.off(\"zoomstart\", self2.clearOutline);\n self2.div.onmousedown = null;\n self2.div.ontouchstart = null;\n self2.div.removeEventListener(\"touchstart\", self2.div._ontouchstart);\n self2.onClickInPanHandler = self2.onClickInPanFn(self2.dragOptions);\n map.on(\"click\", self2.onClickInPanHandler);\n }\n };\n proto.updateFramework = function(fullLayout) {\n var domain = fullLayout[this.id].domain;\n var size = fullLayout._size;\n var style = this.div.style;\n style.width = size.w * (domain.x[1] - domain.x[0]) + \"px\";\n style.height = size.h * (domain.y[1] - domain.y[0]) + \"px\";\n style.left = size.l + domain.x[0] * size.w + \"px\";\n style.top = size.t + (1 - domain.y[1]) * size.h + \"px\";\n this.xaxis._offset = size.l + domain.x[0] * size.w;\n this.xaxis._length = size.w * (domain.x[1] - domain.x[0]);\n this.yaxis._offset = size.t + (1 - domain.y[1]) * size.h;\n this.yaxis._length = size.h * (domain.y[1] - domain.y[0]);\n };\n proto.updateLayers = function(fullLayout) {\n var opts = fullLayout[this.id];\n var layers = opts.layers;\n var layerList = this.layerList;\n var i;\n if (layers.length !== layerList.length) {\n for (i = 0; i < layerList.length; i++) {\n layerList[i].dispose();\n }\n layerList = this.layerList = [];\n for (i = 0; i < layers.length; i++) {\n layerList.push(createMapLayer(this, i, layers[i]));\n }\n } else {\n for (i = 0; i < layers.length; i++) {\n layerList[i].update(layers[i]);\n }\n }\n };\n proto.destroy = function() {\n if (this.map) {\n this.map.remove();\n this.map = null;\n this.container.removeChild(this.div);\n }\n };\n proto.toImage = function() {\n this.map.stop();\n return this.map.getCanvas().toDataURL();\n };\n proto.setOptions = function(id, methodName, opts) {\n for (var k in opts) {\n this.map[methodName](id, k, opts[k]);\n }\n };\n proto.getMapLayers = function() {\n return this.map.getStyle().layers;\n };\n proto.addLayer = function(opts, below) {\n var map = this.map;\n if (typeof below === \"string\") {\n if (below === \"\") {\n map.addLayer(opts, below);\n return;\n }\n var mapLayers = this.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n if (below === mapLayers[i].id) {\n map.addLayer(opts, below);\n return;\n }\n }\n Lib.warn([\n \"Trying to add layer with *below* value\",\n below,\n \"referencing a layer that does not exist\",\n \"or that does not yet exist.\"\n ].join(\" \"));\n }\n map.addLayer(opts);\n };\n proto.project = function(v) {\n return this.map.project(new maplibregl.LngLat(v[0], v[1]));\n };\n proto.getView = function() {\n var map = this.map;\n var mapCenter = map.getCenter();\n var lon = mapCenter.lng;\n var lat = mapCenter.lat;\n var center = { lon, lat };\n var canvas = map.getCanvas();\n var w = parseInt(canvas.style.width);\n var h = parseInt(canvas.style.height);\n return {\n center,\n zoom: map.getZoom(),\n bearing: map.getBearing(),\n pitch: map.getPitch(),\n _derived: {\n coordinates: [\n map.unproject([0, 0]).toArray(),\n map.unproject([w, 0]).toArray(),\n map.unproject([w, h]).toArray(),\n map.unproject([0, h]).toArray()\n ]\n }\n };\n };\n proto.getViewEdits = function(cont) {\n var id = this.id;\n var keys = [\"center\", \"zoom\", \"bearing\", \"pitch\"];\n var obj = {};\n for (var i = 0; i < keys.length; i++) {\n var k = keys[i];\n obj[id + \".\" + k] = cont[k];\n }\n return obj;\n };\n proto.getViewEditsWithDerived = function(cont) {\n var id = this.id;\n var obj = this.getViewEdits(cont);\n obj[id + \"._derived\"] = cont._derived;\n return obj;\n };\n function getStyleObj(val) {\n var styleObj = {};\n if (Lib.isPlainObject(val)) {\n styleObj.id = val.id;\n styleObj.style = val;\n } else if (typeof val === \"string\") {\n styleObj.id = val;\n if (constants.stylesMap[val]) {\n styleObj.style = constants.stylesMap[val];\n } else {\n styleObj.style = val;\n }\n } else {\n styleObj.id = constants.styleValueDflt;\n styleObj.style = convertStyleVal(constants.styleValueDflt);\n }\n styleObj.transition = { duration: 0, delay: 0 };\n return styleObj;\n }\n function convertStyleVal(val) {\n return constants.styleUrlPrefix + val + \"-\" + constants.styleUrlSuffix;\n }\n function convertCenter(center) {\n return [center.lon, center.lat];\n }\n module.exports = Map2;\n }\n });\n\n // src/plots/map/layout_defaults.js\n var require_layout_defaults18 = __commonJS({\n \"src/plots/map/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleSubplotDefaults = require_subplot_defaults();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var layoutAttributes = require_layout_attributes20();\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: \"map\",\n attributes: layoutAttributes,\n handleDefaults,\n partition: \"y\"\n });\n };\n function handleDefaults(containerIn, containerOut, coerce) {\n coerce(\"style\");\n coerce(\"center.lon\");\n coerce(\"center.lat\");\n coerce(\"zoom\");\n coerce(\"bearing\");\n coerce(\"pitch\");\n var west = coerce(\"bounds.west\");\n var east = coerce(\"bounds.east\");\n var south = coerce(\"bounds.south\");\n var north = coerce(\"bounds.north\");\n if (west === void 0 || east === void 0 || south === void 0 || north === void 0) {\n delete containerOut.bounds;\n }\n handleArrayContainerDefaults(containerIn, containerOut, {\n name: \"layers\",\n handleItemDefaults: handleLayerDefaults\n });\n containerOut._input = containerIn;\n }\n function handleLayerDefaults(layerIn, layerOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(layerIn, layerOut, layoutAttributes.layers, attr, dflt);\n }\n var visible = coerce(\"visible\");\n if (visible) {\n var sourceType = coerce(\"sourcetype\");\n var mustBeRasterLayer = sourceType === \"raster\" || sourceType === \"image\";\n coerce(\"source\");\n coerce(\"sourceattribution\");\n if (sourceType === \"vector\") {\n coerce(\"sourcelayer\");\n }\n if (sourceType === \"image\") {\n coerce(\"coordinates\");\n }\n var typeDflt;\n if (mustBeRasterLayer) typeDflt = \"raster\";\n var type = coerce(\"type\", typeDflt);\n if (mustBeRasterLayer && type !== \"raster\") {\n type = layerOut.type = \"raster\";\n Lib.log(\"Source types *raster* and *image* must drawn *raster* layer type.\");\n }\n coerce(\"below\");\n coerce(\"color\");\n coerce(\"opacity\");\n coerce(\"minzoom\");\n coerce(\"maxzoom\");\n if (type === \"circle\") {\n coerce(\"circle.radius\");\n }\n if (type === \"line\") {\n coerce(\"line.width\");\n coerce(\"line.dash\");\n }\n if (type === \"fill\") {\n coerce(\"fill.outlinecolor\");\n }\n if (type === \"symbol\") {\n coerce(\"symbol.icon\");\n coerce(\"symbol.iconsize\");\n coerce(\"symbol.text\");\n Lib.coerceFont(coerce, \"symbol.textfont\", void 0, {\n noFontVariant: true,\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n coerce(\"symbol.textposition\");\n coerce(\"symbol.placement\");\n }\n }\n }\n }\n });\n\n // src/plots/map/index.js\n var require_map3 = __commonJS({\n \"src/plots/map/index.js\"(exports) {\n \"use strict\";\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var strScale = Lib.strScale;\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var xmlnsNamespaces = require_xmlns_namespaces();\n var d3 = require_d3();\n var Drawing = require_drawing();\n var svgTextUtils = require_svg_text_utils();\n var Map2 = require_map2();\n var MAP = \"map\";\n exports.name = MAP;\n exports.attr = \"subplot\";\n exports.idRoot = MAP;\n exports.idRegex = exports.attrRegex = Lib.counterRegex(MAP);\n exports.attributes = {\n subplot: {\n valType: \"subplotid\",\n dflt: \"map\",\n editType: \"calc\"\n }\n };\n exports.layoutAttributes = require_layout_attributes20();\n exports.supplyLayoutDefaults = require_layout_defaults18();\n exports.plot = function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var mapIds = fullLayout._subplots[MAP];\n for (var i = 0; i < mapIds.length; i++) {\n var id = mapIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, MAP, id);\n var opts = fullLayout[id];\n var map = opts._subplot;\n if (!map) {\n map = new Map2(gd, id);\n fullLayout[id]._subplot = map;\n }\n if (!map.viewInitial) {\n map.viewInitial = {\n center: Lib.extendFlat({}, opts.center),\n zoom: opts.zoom,\n bearing: opts.bearing,\n pitch: opts.pitch\n };\n }\n map.plot(subplotCalcData, fullLayout, gd._promises);\n }\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldMapKeys = oldFullLayout._subplots[MAP] || [];\n for (var i = 0; i < oldMapKeys.length; i++) {\n var oldMapKey = oldMapKeys[i];\n if (!newFullLayout[oldMapKey] && !!oldFullLayout[oldMapKey]._subplot) {\n oldFullLayout[oldMapKey]._subplot.destroy();\n }\n }\n };\n exports.toSVG = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAP];\n var size = fullLayout._size;\n for (var i = 0; i < subplotIds.length; i++) {\n var opts = fullLayout[subplotIds[i]];\n var domain = opts.domain;\n var map = opts._subplot;\n var imageData = map.toImage(\"png\");\n var image = fullLayout._glimages.append(\"svg:image\");\n image.attr({\n xmlns: xmlnsNamespaces.svg,\n \"xlink:href\": imageData,\n x: size.l + size.w * domain.x[0],\n y: size.t + size.h * (1 - domain.y[1]),\n width: size.w * (domain.x[1] - domain.x[0]),\n height: size.h * (domain.y[1] - domain.y[0]),\n preserveAspectRatio: \"none\"\n });\n var subplotDiv = d3.select(opts._subplot.div);\n var attributions = subplotDiv.select(\".maplibregl-ctrl-attrib\").text().replace(\"Improve this map\", \"\");\n var attributionGroup = fullLayout._glimages.append(\"g\");\n var attributionText = attributionGroup.append(\"text\");\n attributionText.text(attributions).classed(\"static-attribution\", true).attr({\n \"font-size\": 12,\n \"font-family\": \"Arial\",\n color: \"rgba(0, 0, 0, 0.75)\",\n \"text-anchor\": \"end\",\n \"data-unformatted\": attributions\n });\n var bBox = Drawing.bBox(attributionText.node());\n var maxWidth = size.w * (domain.x[1] - domain.x[0]);\n if (bBox.width > maxWidth / 2) {\n var multilineAttributions = attributions.split(\"|\").join(\"
\");\n attributionText.text(multilineAttributions).attr(\"data-unformatted\", multilineAttributions).call(svgTextUtils.convertToTspans, gd);\n bBox = Drawing.bBox(attributionText.node());\n }\n attributionText.attr(\"transform\", strTranslate(-3, -bBox.height + 8));\n attributionGroup.insert(\"rect\", \".static-attribution\").attr({\n x: -bBox.width - 6,\n y: -bBox.height - 3,\n width: bBox.width + 6,\n height: bBox.height + 3,\n fill: \"rgba(255, 255, 255, 0.75)\"\n });\n var scaleRatio = 1;\n if (bBox.width + 6 > maxWidth) scaleRatio = maxWidth / (bBox.width + 6);\n var offset = [size.l + size.w * domain.x[1], size.t + size.h * (1 - domain.y[0])];\n attributionGroup.attr(\"transform\", strTranslate(offset[0], offset[1]) + strScale(scaleRatio));\n }\n };\n exports.updateFx = function(gd) {\n var fullLayout = gd._fullLayout;\n var subplotIds = fullLayout._subplots[MAP];\n for (var i = 0; i < subplotIds.length; i++) {\n var subplotObj = fullLayout[subplotIds[i]]._subplot;\n subplotObj.updateFx(fullLayout);\n }\n };\n }\n });\n\n // src/traces/scattermap/index.js\n var require_scattermap = __commonJS({\n \"src/traces/scattermap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes57(),\n supplyDefaults: require_defaults53(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels6(),\n calc: require_calc27(),\n plot: require_plot26(),\n hoverPoints: require_hover20().hoverPoints,\n eventData: require_event_data13(),\n selectPoints: require_select10(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.update(cd);\n }\n },\n moduleType: \"trace\",\n name: \"scattermap\",\n basePlotModule: require_map3(),\n categories: [\"map\", \"gl\", \"symbols\", \"showLegend\", \"scatter-like\"],\n meta: {}\n };\n }\n });\n\n // lib/scattermap.js\n var require_scattermap2 = __commonJS({\n \"lib/scattermap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattermap();\n }\n });\n\n // src/traces/choroplethmap/attributes.js\n var require_attributes58 = __commonJS({\n \"src/traces/choroplethmap/attributes.js\"(exports, module) {\n \"use strict\";\n var choroplethAttrs = require_attributes49();\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n locations: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO\n // Maybe start with only one value (that we could name e.g. 'geojson-id'),\n // but eventually:\n // - we could also support for our own dist/topojson/*\n // .. and locationmode: choroplethAttrs.locationmode,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n // TODO maybe we could also set a \"key\" to dig out values out of the\n // GeoJSON feature `properties` fields?\n geojson: {\n valType: \"any\",\n editType: \"calc\"\n },\n featureidkey: extendFlat({}, choroplethAttrs.featureidkey, {}),\n // TODO agree on name / behaviour\n //\n // 'below' is used currently for layout.map.layers,\n // even though it's not very plotly-esque.\n //\n // Note also, that the map-gl style don't all have the same layers,\n // see https://codepen.io/etpinard/pen/ydVMwM for full list\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: choroplethAttrs.text,\n hovertext: choroplethAttrs.hovertext,\n marker: {\n line: {\n color: extendFlat({}, choroplethAttrs.marker.line.color, { editType: \"plot\" }),\n width: extendFlat({}, choroplethAttrs.marker.line.width, { editType: \"plot\" }),\n editType: \"calc\"\n },\n // TODO maybe having a dflt less than 1, together with `below:''` would be better?\n opacity: extendFlat({}, choroplethAttrs.marker.opacity, { editType: \"plot\" }),\n editType: \"calc\"\n },\n selected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.selected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n unselected: {\n marker: {\n opacity: extendFlat({}, choroplethAttrs.unselected.marker.opacity, { editType: \"plot\" }),\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n hoverinfo: choroplethAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs({}, { keys: [\"properties\"] }),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/choroplethmap/defaults.js\n var require_defaults54 = __commonJS({\n \"src/traces/choroplethmap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes58();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var locations = coerce(\"locations\");\n var z = coerce(\"z\");\n var geojson = coerce(\"geojson\");\n if (!Lib.isArrayOrTypedArray(locations) || !locations.length || !Lib.isArrayOrTypedArray(z) || !z.length || !(typeof geojson === \"string\" && geojson !== \"\" || Lib.isPlainObject(geojson))) {\n traceOut.visible = false;\n return;\n }\n coerce(\"featureidkey\");\n traceOut._length = Math.min(locations.length, z.length);\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n var mlw = coerce(\"marker.line.width\");\n if (mlw) coerce(\"marker.line.color\");\n coerce(\"marker.opacity\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/choroplethmap/convert.js\n var require_convert15 = __commonJS({\n \"src/traces/choroplethmap/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Colorscale = require_colorscale();\n var Drawing = require_drawing();\n var makeBlank = require_geojson_utils().makeBlank;\n var geoUtils = require_geo_location_utils();\n function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var fill = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var line = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n fill,\n line,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = geoUtils.extractTraceFeature(calcTrace);\n if (!features) return opts;\n var sclFunc = Colorscale.makeColorScaleFuncFromTrace(trace);\n var marker = trace.marker;\n var markerLine = marker.line || {};\n var opacityFn;\n if (Lib.isArrayOrTypedArray(marker.opacity)) {\n opacityFn = function(d) {\n var mo = d.mo;\n return isNumeric(mo) ? +Lib.constrain(mo, 0, 1) : 0;\n };\n }\n var lineColorFn;\n if (Lib.isArrayOrTypedArray(markerLine.color)) {\n lineColorFn = function(d) {\n return d.mlc;\n };\n }\n var lineWidthFn;\n if (Lib.isArrayOrTypedArray(markerLine.width)) {\n lineWidthFn = function(d) {\n return d.mlw;\n };\n }\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var fOut = cdi.fOut;\n if (fOut) {\n var props = fOut.properties;\n props.fc = sclFunc(cdi.z);\n if (opacityFn) props.mo = opacityFn(cdi);\n if (lineColorFn) props.mlc = lineColorFn(cdi);\n if (lineWidthFn) props.mlw = lineWidthFn(cdi);\n cdi.ct = props.ct;\n cdi._polygons = geoUtils.feature2polygons(fOut);\n }\n }\n var opacitySetting = opacityFn ? { type: \"identity\", property: \"mo\" } : marker.opacity;\n Lib.extendFlat(fill.paint, {\n \"fill-color\": { type: \"identity\", property: \"fc\" },\n \"fill-opacity\": opacitySetting\n });\n Lib.extendFlat(line.paint, {\n \"line-color\": lineColorFn ? { type: \"identity\", property: \"mlc\" } : markerLine.color,\n \"line-width\": lineWidthFn ? { type: \"identity\", property: \"mlw\" } : markerLine.width,\n \"line-opacity\": opacitySetting\n });\n fill.layout.visibility = \"visible\";\n line.layout.visibility = \"visible\";\n opts.geojson = { type: \"FeatureCollection\", features };\n convertOnSelect(calcTrace);\n return opts;\n }\n function convertOnSelect(calcTrace) {\n var trace = calcTrace[0].trace;\n var opts = trace._opts;\n var opacitySetting;\n if (trace.selectedpoints) {\n var fns = Drawing.makeSelectedPointStyleFns(trace);\n for (var i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n if (cdi.fOut) {\n cdi.fOut.properties.mo2 = fns.selectedOpacityFn(cdi);\n }\n }\n opacitySetting = { type: \"identity\", property: \"mo2\" };\n } else {\n opacitySetting = Lib.isArrayOrTypedArray(trace.marker.opacity) ? { type: \"identity\", property: \"mo\" } : trace.marker.opacity;\n }\n Lib.extendFlat(opts.fill.paint, { \"fill-opacity\": opacitySetting });\n Lib.extendFlat(opts.line.paint, { \"line-opacity\": opacitySetting });\n return opts;\n }\n module.exports = {\n convert,\n convertOnSelect\n };\n }\n });\n\n // src/traces/choroplethmap/plot.js\n var require_plot27 = __commonJS({\n \"src/traces/choroplethmap/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert15().convert;\n var convertOnSelect = require_convert15().convertOnSelect;\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n function ChoroplethMap(subplot, uid) {\n this.type = \"choroplethmap\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"fill\", LAYER_PREFIX + uid + \"-fill\"],\n [\"line\", LAYER_PREFIX + uid + \"-line\"]\n ];\n this.below = null;\n }\n var proto = ChoroplethMap.prototype;\n proto.update = function(calcTrace) {\n this._update(convert(calcTrace));\n calcTrace[0].trace._glTrace = this;\n };\n proto.updateOnSelect = function(calcTrace) {\n this._update(convertOnSelect(calcTrace));\n };\n proto._update = function(optsAll) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createChoroplethMap(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var choroplethMap = new ChoroplethMap(subplot, trace.uid);\n var sourceId = choroplethMap.sourceId;\n var optsAll = convert(calcTrace);\n var below = choroplethMap.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n choroplethMap._addLayers(optsAll, below);\n calcTrace[0].trace._glTrace = choroplethMap;\n return choroplethMap;\n };\n }\n });\n\n // src/traces/choroplethmap/index.js\n var require_choroplethmap = __commonJS({\n \"src/traces/choroplethmap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes58(),\n supplyDefaults: require_defaults54(),\n colorbar: require_colorbar2(),\n calc: require_calc28(),\n plot: require_plot27(),\n hoverPoints: require_hover15(),\n eventData: require_event_data10(),\n selectPoints: require_select6(),\n styleOnSelect: function(_, cd) {\n if (cd) {\n var trace = cd[0].trace;\n trace._glTrace.updateOnSelect(cd);\n }\n },\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = mapLayers.length - 2; i >= 0; i--) {\n var layerId = mapLayers[i].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"water\") === 0) {\n for (var j = i + 1; j < mapLayers.length; j++) {\n layerId = mapLayers[j].id;\n if (typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n }\n }\n },\n moduleType: \"trace\",\n name: \"choroplethmap\",\n basePlotModule: require_map3(),\n categories: [\"map\", \"gl\", \"noOpacity\", \"showLegend\"],\n meta: {\n hr_name: \"choropleth_map\"\n }\n };\n }\n });\n\n // lib/choroplethmap.js\n var require_choroplethmap2 = __commonJS({\n \"lib/choroplethmap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_choroplethmap();\n }\n });\n\n // src/traces/densitymap/attributes.js\n var require_attributes59 = __commonJS({\n \"src/traces/densitymap/attributes.js\"(exports, module) {\n \"use strict\";\n var colorScaleAttrs = require_attributes8();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var baseAttrs = require_attributes2();\n var scatterMapAttrs = require_attributes57();\n var extendFlat = require_extend().extendFlat;\n module.exports = extendFlat(\n {\n lon: scatterMapAttrs.lon,\n lat: scatterMapAttrs.lat,\n z: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n radius: {\n valType: \"number\",\n editType: \"plot\",\n arrayOk: true,\n min: 1,\n dflt: 30\n },\n below: {\n valType: \"string\",\n editType: \"plot\"\n },\n text: scatterMapAttrs.text,\n hovertext: scatterMapAttrs.hovertext,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"lon\", \"lat\", \"z\", \"text\", \"name\"]\n }),\n hovertemplate: hovertemplateAttrs(),\n showlegend: extendFlat({}, baseAttrs.showlegend, { dflt: false })\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n editTypeOverride: \"calc\"\n })\n );\n }\n });\n\n // src/traces/densitymap/defaults.js\n var require_defaults55 = __commonJS({\n \"src/traces/densitymap/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var colorscaleDefaults = require_defaults2();\n var attributes = require_attributes59();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var lon = coerce(\"lon\") || [];\n var lat = coerce(\"lat\") || [];\n var len = Math.min(lon.length, lat.length);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"z\");\n coerce(\"radius\");\n coerce(\"below\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n colorscaleDefaults(traceIn, traceOut, layout, coerce, { prefix: \"\", cLetter: \"z\" });\n };\n }\n });\n\n // src/traces/densitymap/calc.js\n var require_calc34 = __commonJS({\n \"src/traces/densitymap/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var BADNUM = require_numerical().BADNUM;\n var colorscaleCalc = require_calc();\n var _ = require_lib()._;\n module.exports = function calc(gd, trace) {\n var len = trace._length;\n var calcTrace = new Array(len);\n var z = trace.z;\n var hasZ = isArrayOrTypedArray(z) && z.length;\n for (var i = 0; i < len; i++) {\n var cdi = calcTrace[i] = {};\n var lon = trace.lon[i];\n var lat = trace.lat[i];\n cdi.lonlat = isNumeric(lon) && isNumeric(lat) ? [+lon, +lat] : [BADNUM, BADNUM];\n if (hasZ) {\n var zi = z[i];\n cdi.z = isNumeric(zi) ? zi : BADNUM;\n }\n }\n colorscaleCalc(gd, trace, {\n vals: hasZ ? z : [0, 1],\n containerStr: \"\",\n cLetter: \"z\"\n });\n if (len) {\n calcTrace[0].t = {\n labels: {\n lat: _(gd, \"lat:\") + \" \",\n lon: _(gd, \"lon:\") + \" \"\n }\n };\n }\n return calcTrace;\n };\n }\n });\n\n // src/traces/densitymap/convert.js\n var require_convert16 = __commonJS({\n \"src/traces/densitymap/convert.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Color2 = require_color();\n var Colorscale = require_colorscale();\n var BADNUM = require_numerical().BADNUM;\n var makeBlank = require_geojson_utils().makeBlank;\n module.exports = function convert(calcTrace) {\n var trace = calcTrace[0].trace;\n var isVisible = trace.visible === true && trace._length !== 0;\n var heatmap = {\n layout: { visibility: \"none\" },\n paint: {}\n };\n var opts = trace._opts = {\n heatmap,\n geojson: makeBlank()\n };\n if (!isVisible) return opts;\n var features = [];\n var i;\n var z = trace.z;\n var radius = trace.radius;\n var hasZ = Lib.isArrayOrTypedArray(z) && z.length;\n var hasArrayRadius = Lib.isArrayOrTypedArray(radius);\n for (i = 0; i < calcTrace.length; i++) {\n var cdi = calcTrace[i];\n var lonlat = cdi.lonlat;\n if (lonlat[0] !== BADNUM) {\n var props = {};\n if (hasZ) {\n var zi = cdi.z;\n props.z = zi !== BADNUM ? zi : 0;\n }\n if (hasArrayRadius) {\n props.r = isNumeric(radius[i]) && radius[i] > 0 ? +radius[i] : 0;\n }\n features.push({\n type: \"Feature\",\n geometry: { type: \"Point\", coordinates: lonlat },\n properties: props\n });\n }\n }\n var cOpts = Colorscale.extractOpts(trace);\n var scl = cOpts.reversescale ? Colorscale.flipScale(cOpts.colorscale) : cOpts.colorscale;\n var scl01 = scl[0][1];\n var color0 = Color2.opacity(scl01) < 1 ? scl01 : Color2.addOpacity(scl01, 0);\n var heatmapColor = [\n \"interpolate\",\n [\"linear\"],\n [\"heatmap-density\"],\n 0,\n color0\n ];\n for (i = 1; i < scl.length; i++) {\n heatmapColor.push(scl[i][0], scl[i][1]);\n }\n var zExp = [\n \"interpolate\",\n [\"linear\"],\n [\"get\", \"z\"],\n cOpts.min,\n 0,\n cOpts.max,\n 1\n ];\n Lib.extendFlat(opts.heatmap.paint, {\n \"heatmap-weight\": hasZ ? zExp : 1 / (cOpts.max - cOpts.min),\n \"heatmap-color\": heatmapColor,\n \"heatmap-radius\": hasArrayRadius ? { type: \"identity\", property: \"r\" } : trace.radius,\n \"heatmap-opacity\": trace.opacity\n });\n opts.geojson = { type: \"FeatureCollection\", features };\n opts.heatmap.layout.visibility = \"visible\";\n return opts;\n };\n }\n });\n\n // src/traces/densitymap/plot.js\n var require_plot28 = __commonJS({\n \"src/traces/densitymap/plot.js\"(exports, module) {\n \"use strict\";\n var convert = require_convert16();\n var LAYER_PREFIX = require_constants27().traceLayerPrefix;\n function DensityMap(subplot, uid) {\n this.type = \"densitymap\";\n this.subplot = subplot;\n this.uid = uid;\n this.sourceId = \"source-\" + uid;\n this.layerList = [\n [\"heatmap\", LAYER_PREFIX + uid + \"-heatmap\"]\n ];\n this.below = null;\n }\n var proto = DensityMap.prototype;\n proto.update = function(calcTrace) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var optsAll = convert(calcTrace);\n var below = subplot.belowLookup[\"trace-\" + this.uid];\n subplot.map.getSource(this.sourceId).setData(optsAll.geojson);\n if (below !== this.below) {\n this._removeLayers();\n this._addLayers(optsAll, below);\n this.below = below;\n }\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var id = item[1];\n var opts = optsAll[k];\n subplot.setOptions(id, \"setLayoutProperty\", opts.layout);\n if (opts.layout.visibility === \"visible\") {\n subplot.setOptions(id, \"setPaintProperty\", opts.paint);\n }\n }\n };\n proto._addLayers = function(optsAll, below) {\n var subplot = this.subplot;\n var layerList = this.layerList;\n var sourceId = this.sourceId;\n for (var i = 0; i < layerList.length; i++) {\n var item = layerList[i];\n var k = item[0];\n var opts = optsAll[k];\n subplot.addLayer({\n type: k,\n id: item[1],\n source: sourceId,\n layout: opts.layout,\n paint: opts.paint\n }, below);\n }\n };\n proto._removeLayers = function() {\n var map = this.subplot.map;\n var layerList = this.layerList;\n for (var i = layerList.length - 1; i >= 0; i--) {\n map.removeLayer(layerList[i][1]);\n }\n };\n proto.dispose = function() {\n var map = this.subplot.map;\n this._removeLayers();\n map.removeSource(this.sourceId);\n };\n module.exports = function createDensityMap(subplot, calcTrace) {\n var trace = calcTrace[0].trace;\n var densityMap = new DensityMap(subplot, trace.uid);\n var sourceId = densityMap.sourceId;\n var optsAll = convert(calcTrace);\n var below = densityMap.below = subplot.belowLookup[\"trace-\" + trace.uid];\n subplot.map.addSource(sourceId, {\n type: \"geojson\",\n data: optsAll.geojson\n });\n densityMap._addLayers(optsAll, below);\n return densityMap;\n };\n }\n });\n\n // src/traces/densitymap/hover.js\n var require_hover21 = __commonJS({\n \"src/traces/densitymap/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var scatterMapHoverPoints = require_hover20().hoverPoints;\n var getExtraText = require_hover20().getExtraText;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var pts = scatterMapHoverPoints(pointData, xval, yval);\n if (!pts) return;\n var newPointData = pts[0];\n var cd = newPointData.cd;\n var trace = cd[0].trace;\n var di = cd[newPointData.index];\n delete newPointData.color;\n if (\"z\" in di) {\n var ax = newPointData.subplot.mockAxis;\n newPointData.z = di.z;\n newPointData.zLabel = Axes.tickText(ax, ax.c2l(di.z), \"hover\").text;\n }\n newPointData.extraText = getExtraText(trace, di, cd[0].t.labels);\n return [newPointData];\n };\n }\n });\n\n // src/traces/densitymap/event_data.js\n var require_event_data14 = __commonJS({\n \"src/traces/densitymap/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt) {\n out.lon = pt.lon;\n out.lat = pt.lat;\n out.z = pt.z;\n return out;\n };\n }\n });\n\n // src/traces/densitymap/index.js\n var require_densitymap = __commonJS({\n \"src/traces/densitymap/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes59(),\n supplyDefaults: require_defaults55(),\n colorbar: require_colorbar2(),\n formatLabels: require_format_labels6(),\n calc: require_calc34(),\n plot: require_plot28(),\n hoverPoints: require_hover21(),\n eventData: require_event_data14(),\n getBelow: function(trace, subplot) {\n var mapLayers = subplot.getMapLayers();\n for (var i = 0; i < mapLayers.length; i++) {\n var layer = mapLayers[i];\n var layerId = layer.id;\n if (layer.type === \"symbol\" && typeof layerId === \"string\" && layerId.indexOf(\"plotly-\") === -1) {\n return layerId;\n }\n }\n },\n moduleType: \"trace\",\n name: \"densitymap\",\n basePlotModule: require_map3(),\n categories: [\"map\", \"gl\", \"showLegend\"],\n meta: {\n hr_name: \"density_map\"\n }\n };\n }\n });\n\n // lib/densitymap.js\n var require_densitymap2 = __commonJS({\n \"lib/densitymap.js\"(exports, module) {\n \"use strict\";\n module.exports = require_densitymap();\n }\n });\n\n // src/traces/sankey/attributes.js\n var require_attributes60 = __commonJS({\n \"src/traces/sankey/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var baseAttrs = require_attributes2();\n var colorAttrs = require_attributes3();\n var fxAttrs = require_attributes();\n var domainAttrs = require_domain().attributes;\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var colorAttributes = require_attributes8();\n var templatedArray = require_plot_template().templatedArray;\n var descriptionOnlyNumbers = require_axis_format_attributes().descriptionOnlyNumbers;\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var attrs = module.exports = overrideAll({\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [],\n arrayOk: false\n }),\n hoverlabel: fxAttrs.hoverlabel,\n domain: domainAttrs({ name: \"sankey\", trace: true }),\n orientation: {\n valType: \"enumerated\",\n values: [\"v\", \"h\"],\n dflt: \"h\"\n },\n valueformat: {\n valType: \"string\",\n dflt: \".3s\",\n description: descriptionOnlyNumbers(\"value\")\n },\n valuesuffix: {\n valType: \"string\",\n dflt: \"\"\n },\n arrangement: {\n valType: \"enumerated\",\n values: [\"snap\", \"perpendicular\", \"freeform\", \"fixed\"],\n dflt: \"snap\"\n },\n textfont: fontAttrs({\n autoShadowDflt: true\n }),\n // Remove top-level customdata\n customdata: void 0,\n node: {\n label: {\n valType: \"data_array\",\n dflt: []\n },\n groups: {\n valType: \"info_array\",\n impliedEdits: { x: [], y: [] },\n dimensions: 2,\n freeLength: true,\n dflt: [],\n items: { valType: \"number\", editType: \"calc\" }\n },\n x: {\n valType: \"data_array\",\n dflt: []\n },\n y: {\n valType: \"data_array\",\n dflt: []\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n customdata: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n arrayOk: true\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0.5,\n arrayOk: true\n }\n },\n pad: {\n valType: \"number\",\n arrayOk: false,\n min: 0,\n dflt: 20\n },\n thickness: {\n valType: \"number\",\n arrayOk: false,\n min: 1,\n dflt: 20\n },\n hoverinfo: {\n valType: \"enumerated\",\n values: [\"all\", \"none\", \"skip\"],\n dflt: \"all\"\n },\n hoverlabel: fxAttrs.hoverlabel,\n // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"value\", \"label\"]\n }),\n align: {\n valType: \"enumerated\",\n values: [\"justify\", \"left\", \"right\", \"center\"],\n dflt: \"justify\"\n }\n },\n link: {\n arrowlen: {\n valType: \"number\",\n min: 0,\n dflt: 0\n },\n label: {\n valType: \"data_array\",\n dflt: []\n },\n color: {\n valType: \"color\",\n arrayOk: true\n },\n hovercolor: {\n valType: \"color\",\n arrayOk: true\n },\n customdata: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n arrayOk: true\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n arrayOk: true\n }\n },\n source: {\n valType: \"data_array\",\n dflt: []\n },\n target: {\n valType: \"data_array\",\n dflt: []\n },\n value: {\n valType: \"data_array\",\n dflt: []\n },\n hoverinfo: {\n valType: \"enumerated\",\n values: [\"all\", \"none\", \"skip\"],\n dflt: \"all\"\n },\n hoverlabel: fxAttrs.hoverlabel,\n // needs editType override,\n hovertemplate: hovertemplateAttrs({}, {\n keys: [\"value\", \"label\"]\n }),\n colorscales: templatedArray(\"concentrationscales\", {\n editType: \"calc\",\n label: {\n valType: \"string\",\n editType: \"calc\",\n dflt: \"\"\n },\n cmax: {\n valType: \"number\",\n editType: \"calc\",\n dflt: 1\n },\n cmin: {\n valType: \"number\",\n editType: \"calc\",\n dflt: 0\n },\n colorscale: extendFlat(colorAttributes().colorscale, { dflt: [[0, \"white\"], [1, \"black\"]] })\n })\n }\n }, \"calc\", \"nested\");\n }\n });\n\n // src/traces/sankey/defaults.js\n var require_defaults56 = __commonJS({\n \"src/traces/sankey/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes60();\n var Color2 = require_color();\n var tinycolor = require_tinycolor();\n var handleDomainDefaults = require_domain().defaults;\n var handleHoverLabelDefaults = require_hoverlabel_defaults();\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var hoverlabelDefault = Lib.extendDeep(layout.hoverlabel, traceIn.hoverlabel);\n var nodeIn = traceIn.node;\n var nodeOut = Template.newContainer(traceOut, \"node\");\n function coerceNode(attr, dflt) {\n return Lib.coerce(nodeIn, nodeOut, attributes.node, attr, dflt);\n }\n coerceNode(\"label\");\n coerceNode(\"groups\");\n coerceNode(\"x\");\n coerceNode(\"y\");\n coerceNode(\"pad\");\n coerceNode(\"thickness\");\n coerceNode(\"line.color\");\n coerceNode(\"line.width\");\n coerceNode(\"hoverinfo\", traceIn.hoverinfo);\n handleHoverLabelDefaults(nodeIn, nodeOut, coerceNode, hoverlabelDefault);\n coerceNode(\"hovertemplate\");\n coerceNode(\"align\");\n var colors = layout.colorway;\n var defaultNodePalette = function(i) {\n return colors[i % colors.length];\n };\n coerceNode(\"color\", nodeOut.label.map(function(d, i) {\n return Color2.addOpacity(defaultNodePalette(i), 0.8);\n }));\n coerceNode(\"customdata\");\n var linkIn = traceIn.link || {};\n var linkOut = Template.newContainer(traceOut, \"link\");\n function coerceLink(attr, dflt) {\n return Lib.coerce(linkIn, linkOut, attributes.link, attr, dflt);\n }\n coerceLink(\"label\");\n coerceLink(\"arrowlen\");\n coerceLink(\"source\");\n coerceLink(\"target\");\n coerceLink(\"value\");\n coerceLink(\"line.color\");\n coerceLink(\"line.width\");\n coerceLink(\"hoverinfo\", traceIn.hoverinfo);\n handleHoverLabelDefaults(linkIn, linkOut, coerceLink, hoverlabelDefault);\n coerceLink(\"hovertemplate\");\n var darkBG = tinycolor(layout.paper_bgcolor).getLuminance() < 0.333;\n var defaultLinkColor = darkBG ? \"rgba(255, 255, 255, 0.6)\" : \"rgba(0, 0, 0, 0.2)\";\n var linkColor = coerceLink(\"color\", defaultLinkColor);\n function makeDefaultHoverColor(_linkColor) {\n var tc = tinycolor(_linkColor);\n if (!tc.isValid()) {\n return _linkColor;\n }\n var alpha = tc.getAlpha();\n if (alpha <= 0.8) {\n tc.setAlpha(alpha + 0.2);\n } else {\n tc = darkBG ? tc.brighten() : tc.darken();\n }\n return tc.toRgbString();\n }\n coerceLink(\n \"hovercolor\",\n Array.isArray(linkColor) ? linkColor.map(makeDefaultHoverColor) : makeDefaultHoverColor(linkColor)\n );\n coerceLink(\"customdata\");\n handleArrayContainerDefaults(linkIn, linkOut, {\n name: \"colorscales\",\n handleItemDefaults: concentrationscalesDefaults\n });\n handleDomainDefaults(traceOut, layout, coerce);\n coerce(\"orientation\");\n coerce(\"valueformat\");\n coerce(\"valuesuffix\");\n var dfltArrangement;\n if (nodeOut.x.length && nodeOut.y.length) {\n dfltArrangement = \"freeform\";\n }\n coerce(\"arrangement\", dfltArrangement);\n Lib.coerceFont(coerce, \"textfont\", layout.font, { autoShadowDflt: true });\n traceOut._length = null;\n };\n function concentrationscalesDefaults(In, Out) {\n function coerce(attr, dflt) {\n return Lib.coerce(In, Out, attributes.link.colorscales, attr, dflt);\n }\n coerce(\"label\");\n coerce(\"cmin\");\n coerce(\"cmax\");\n coerce(\"colorscale\");\n }\n }\n });\n\n // node_modules/strongly-connected-components/scc.js\n var require_scc = __commonJS({\n \"node_modules/strongly-connected-components/scc.js\"(exports, module) {\n \"use strict\";\n module.exports = stronglyConnectedComponents;\n function stronglyConnectedComponents(adjList) {\n var numVertices = adjList.length;\n var index = new Array(numVertices);\n var lowValue = new Array(numVertices);\n var active = new Array(numVertices);\n var child = new Array(numVertices);\n var scc = new Array(numVertices);\n var sccLinks = new Array(numVertices);\n for (var i = 0; i < numVertices; ++i) {\n index[i] = -1;\n lowValue[i] = 0;\n active[i] = false;\n child[i] = 0;\n scc[i] = -1;\n sccLinks[i] = [];\n }\n var count = 0;\n var components = [];\n var sccAdjList = [];\n function strongConnect(v) {\n var S = [v], T = [v];\n index[v] = lowValue[v] = count;\n active[v] = true;\n count += 1;\n while (T.length > 0) {\n v = T[T.length - 1];\n var e2 = adjList[v];\n if (child[v] < e2.length) {\n for (var i2 = child[v]; i2 < e2.length; ++i2) {\n var u = e2[i2];\n if (index[u] < 0) {\n index[u] = lowValue[u] = count;\n active[u] = true;\n count += 1;\n S.push(u);\n T.push(u);\n break;\n } else if (active[u]) {\n lowValue[v] = Math.min(lowValue[v], lowValue[u]) | 0;\n }\n if (scc[u] >= 0) {\n sccLinks[v].push(scc[u]);\n }\n }\n child[v] = i2;\n } else {\n if (lowValue[v] === index[v]) {\n var component = [];\n var links = [], linkCount = 0;\n for (var i2 = S.length - 1; i2 >= 0; --i2) {\n var w = S[i2];\n active[w] = false;\n component.push(w);\n links.push(sccLinks[w]);\n linkCount += sccLinks[w].length;\n scc[w] = components.length;\n if (w === v) {\n S.length = i2;\n break;\n }\n }\n components.push(component);\n var allLinks = new Array(linkCount);\n for (var i2 = 0; i2 < links.length; i2++) {\n for (var j2 = 0; j2 < links[i2].length; j2++) {\n allLinks[--linkCount] = links[i2][j2];\n }\n }\n sccAdjList.push(allLinks);\n }\n T.pop();\n }\n }\n }\n for (var i = 0; i < numVertices; ++i) {\n if (index[i] < 0) {\n strongConnect(i);\n }\n }\n var newE;\n for (var i = 0; i < sccAdjList.length; i++) {\n var e = sccAdjList[i];\n if (e.length === 0) continue;\n e.sort(function(a, b) {\n return a - b;\n });\n newE = [e[0]];\n for (var j = 1; j < e.length; j++) {\n if (e[j] !== e[j - 1]) {\n newE.push(e[j]);\n }\n }\n sccAdjList[i] = newE;\n }\n return { components, adjacencyList: sccAdjList };\n }\n }\n });\n\n // src/traces/sankey/calc.js\n var require_calc35 = __commonJS({\n \"src/traces/sankey/calc.js\"(exports, module) {\n \"use strict\";\n var tarjan = require_scc();\n var Lib = require_lib();\n var wrap = require_gup().wrap;\n var isArrayOrTypedArray = Lib.isArrayOrTypedArray;\n var isIndex = Lib.isIndex;\n var Colorscale = require_colorscale();\n function convertToD3Sankey(trace) {\n var nodeSpec = trace.node;\n var linkSpec = trace.link;\n var links = [];\n var hasLinkColorArray = isArrayOrTypedArray(linkSpec.color);\n var hasLinkHoverColorArray = isArrayOrTypedArray(linkSpec.hovercolor);\n var hasLinkCustomdataArray = isArrayOrTypedArray(linkSpec.customdata);\n var linkedNodes = {};\n var components = {};\n var componentCount = linkSpec.colorscales.length;\n var i;\n for (i = 0; i < componentCount; i++) {\n var cscale = linkSpec.colorscales[i];\n var specs = Colorscale.extractScale(cscale, { cLetter: \"c\" });\n var scale = Colorscale.makeColorScaleFunc(specs);\n components[cscale.label] = scale;\n }\n var maxNodeId = 0;\n for (i = 0; i < linkSpec.value.length; i++) {\n if (linkSpec.source[i] > maxNodeId) maxNodeId = linkSpec.source[i];\n if (linkSpec.target[i] > maxNodeId) maxNodeId = linkSpec.target[i];\n }\n var nodeCount = maxNodeId + 1;\n trace.node._count = nodeCount;\n var j;\n var groups = trace.node.groups;\n var groupLookup = {};\n for (i = 0; i < groups.length; i++) {\n var group = groups[i];\n for (j = 0; j < group.length; j++) {\n var nodeIndex = group[j];\n var groupIndex = nodeCount + i;\n if (groupLookup.hasOwnProperty(nodeIndex)) {\n Lib.warn(\"Node \" + nodeIndex + \" is already part of a group.\");\n } else {\n groupLookup[nodeIndex] = groupIndex;\n }\n }\n }\n var groupedLinks = {\n source: [],\n target: []\n };\n for (i = 0; i < linkSpec.value.length; i++) {\n var val = linkSpec.value[i];\n var source = linkSpec.source[i];\n var target = linkSpec.target[i];\n if (!(val > 0 && isIndex(source, nodeCount) && isIndex(target, nodeCount))) {\n continue;\n }\n if (groupLookup.hasOwnProperty(source) && groupLookup.hasOwnProperty(target) && groupLookup[source] === groupLookup[target]) {\n continue;\n }\n if (groupLookup.hasOwnProperty(target)) {\n target = groupLookup[target];\n }\n if (groupLookup.hasOwnProperty(source)) {\n source = groupLookup[source];\n }\n source = +source;\n target = +target;\n linkedNodes[source] = linkedNodes[target] = true;\n var label = \"\";\n if (linkSpec.label && linkSpec.label[i]) label = linkSpec.label[i];\n var concentrationscale = null;\n if (label && components.hasOwnProperty(label)) concentrationscale = components[label];\n links.push({\n pointNumber: i,\n label,\n color: hasLinkColorArray ? linkSpec.color[i] : linkSpec.color,\n hovercolor: hasLinkHoverColorArray ? linkSpec.hovercolor[i] : linkSpec.hovercolor,\n customdata: hasLinkCustomdataArray ? linkSpec.customdata[i] : linkSpec.customdata,\n concentrationscale,\n source,\n target,\n value: +val\n });\n groupedLinks.source.push(source);\n groupedLinks.target.push(target);\n }\n var totalCount = nodeCount + groups.length;\n var hasNodeColorArray = isArrayOrTypedArray(nodeSpec.color);\n var hasNodeCustomdataArray = isArrayOrTypedArray(nodeSpec.customdata);\n var nodes = [];\n for (i = 0; i < totalCount; i++) {\n if (!linkedNodes[i]) continue;\n var l = nodeSpec.label[i];\n nodes.push({\n group: i > nodeCount - 1,\n childrenNodes: [],\n pointNumber: i,\n label: l,\n color: hasNodeColorArray ? nodeSpec.color[i] : nodeSpec.color,\n customdata: hasNodeCustomdataArray ? nodeSpec.customdata[i] : nodeSpec.customdata\n });\n }\n var circular = false;\n if (circularityPresent(totalCount, groupedLinks.source, groupedLinks.target)) {\n circular = true;\n }\n return {\n circular,\n links,\n nodes,\n // Data structure for groups\n groups,\n groupLookup\n };\n }\n function circularityPresent(nodeLen, sources, targets) {\n var nodes = Lib.init2dArray(nodeLen, 0);\n for (var i = 0; i < Math.min(sources.length, targets.length); i++) {\n if (Lib.isIndex(sources[i], nodeLen) && Lib.isIndex(targets[i], nodeLen)) {\n if (sources[i] === targets[i]) {\n return true;\n }\n nodes[sources[i]].push(targets[i]);\n }\n }\n var scc = tarjan(nodes);\n return scc.components.some(function(c) {\n return c.length > 1;\n });\n }\n module.exports = function calc(gd, trace) {\n var result = convertToD3Sankey(trace);\n return wrap({\n circular: result.circular,\n _nodes: result.nodes,\n _links: result.links,\n // Data structure for grouping\n _groups: result.groups,\n _groupLookup: result.groupLookup\n });\n };\n }\n });\n\n // node_modules/d3-quadtree/dist/d3-quadtree.js\n var require_d3_quadtree = __commonJS({\n \"node_modules/d3-quadtree/dist/d3-quadtree.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n function tree_add(d) {\n var x = +this._x.call(null, d), y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n }\n function add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree;\n var parent, node = tree._root, leaf = { data: d }, x0 = tree._x0, y0 = tree._y0, x1 = tree._x1, y1 = tree._y1, xm, ym, xp, yp, right, bottom, i, j;\n if (!node) return tree._root = leaf, tree;\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;\n else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;\n else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;\n else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;\n else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | xp >= xm));\n return parent[j] = node, parent[i] = leaf, tree;\n }\n function addAll(data) {\n var d, i, n = data.length, x, y, xz = new Array(n), yz = new Array(n), x0 = Infinity, y0 = Infinity, x1 = -Infinity, y1 = -Infinity;\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n if (x0 > x1 || y0 > y1) return this;\n this.cover(x0, y0).cover(x1, y1);\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n return this;\n }\n function tree_cover(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this;\n var x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1;\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n } else {\n var z = x1 - x0, node = this._root, parent, i;\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | x < x0;\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0:\n x1 = x0 + z, y1 = y0 + z;\n break;\n case 1:\n x0 = x1 - z, y1 = y0 + z;\n break;\n case 2:\n x1 = x0 + z, y0 = y1 - z;\n break;\n case 3:\n x0 = x1 - z, y0 = y1 - z;\n break;\n }\n }\n if (this._root && this._root.length) this._root = node;\n }\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n }\n function tree_data() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do\n data.push(node.data);\n while (node = node.next);\n });\n return data;\n }\n function tree_extent(_) {\n return arguments.length ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1]) : isNaN(this._x0) ? void 0 : [[this._x0, this._y0], [this._x1, this._y1]];\n }\n function Quad(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n }\n function tree_find(x, y, radius) {\n var data, x0 = this._x0, y0 = this._y0, x1, y1, x2, y2, x3 = this._x1, y3 = this._y1, quads = [], node = this._root, q, i;\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n while (q = quads.pop()) {\n if (!(node = q.node) || (x1 = q.x0) > x3 || (y1 = q.y0) > y3 || (x2 = q.x1) < x0 || (y2 = q.y1) < y0) continue;\n if (node.length) {\n var xm = (x1 + x2) / 2, ym = (y1 + y2) / 2;\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n if (i = (y >= ym) << 1 | x >= xm) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n } else {\n var dx = x - +this._x.call(null, node.data), dy = y - +this._y.call(null, node.data), d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n return data;\n }\n function tree_remove(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this;\n var parent, node = this._root, retainer, previous, next, x0 = this._x0, y0 = this._y0, x1 = this._x1, y1 = this._y1, x, y, xm, ym, right, bottom, i, j;\n if (!node) return this;\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm;\n else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym;\n else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[i + 1 & 3] || parent[i + 2 & 3] || parent[i + 3 & 3]) retainer = parent, j = i;\n }\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n if (previous) return next ? previous.next = next : delete previous.next, this;\n if (!parent) return this._root = next, this;\n next ? parent[i] = next : delete parent[i];\n if ((node = parent[0] || parent[1] || parent[2] || parent[3]) && node === (parent[3] || parent[2] || parent[1] || parent[0]) && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n return this;\n }\n function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n }\n function tree_root() {\n return this._root;\n }\n function tree_size() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do\n ++size;\n while (node = node.next);\n });\n return size;\n }\n function tree_visit(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n }\n function tree_visitAfter(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n }\n function defaultX(d) {\n return d[0];\n }\n function tree_x(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n }\n function defaultY(d) {\n return d[1];\n }\n function tree_y(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n }\n function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n }\n function Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = void 0;\n }\n function leaf_copy(leaf) {\n var copy = { data: leaf.data }, next = copy;\n while (leaf = leaf.next) next = next.next = { data: leaf.data };\n return copy;\n }\n var treeProto = quadtree.prototype = Quadtree.prototype;\n treeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1), node = this._root, nodes, child;\n if (!node) return copy;\n if (!node.length) return copy._root = leaf_copy(node), copy;\n nodes = [{ source: node, target: copy._root = new Array(4) }];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({ source: child, target: node.target[i] = new Array(4) });\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n return copy;\n };\n treeProto.add = tree_add;\n treeProto.addAll = addAll;\n treeProto.cover = tree_cover;\n treeProto.data = tree_data;\n treeProto.extent = tree_extent;\n treeProto.find = tree_find;\n treeProto.remove = tree_remove;\n treeProto.removeAll = removeAll;\n treeProto.root = tree_root;\n treeProto.size = tree_size;\n treeProto.visit = tree_visit;\n treeProto.visitAfter = tree_visitAfter;\n treeProto.x = tree_x;\n treeProto.y = tree_y;\n exports2.quadtree = quadtree;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-collection/dist/d3-collection.js\n var require_d3_collection = __commonJS({\n \"node_modules/d3-collection/dist/d3-collection.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : factory(global2.d3 = global2.d3 || {});\n })(exports, function(exports2) {\n \"use strict\";\n var prefix = \"$\";\n function Map2() {\n }\n Map2.prototype = map.prototype = {\n constructor: Map2,\n has: function(key) {\n return prefix + key in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys2 = [];\n for (var property in this) if (property[0] === prefix) keys2.push(property.slice(1));\n return keys2;\n },\n values: function() {\n var values2 = [];\n for (var property in this) if (property[0] === prefix) values2.push(this[property]);\n return values2;\n },\n entries: function() {\n var entries2 = [];\n for (var property in this) if (property[0] === prefix) entries2.push({ key: property.slice(1), value: this[property] });\n return entries2;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n };\n function map(object, f) {\n var map2 = new Map2();\n if (object instanceof Map2) object.each(function(value, key2) {\n map2.set(key2, value);\n });\n else if (Array.isArray(object)) {\n var i = -1, n = object.length, o;\n if (f == null) while (++i < n) map2.set(i, object[i]);\n else while (++i < n) map2.set(f(o = object[i], i, object), o);\n } else if (object) for (var key in object) map2.set(key, object[key]);\n return map2;\n }\n function nest() {\n var keys2 = [], sortKeys = [], sortValues, rollup, nest2;\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys2.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n var i = -1, n = array.length, key = keys2[depth++], keyValue, value, valuesByKey = map(), values2, result = createResult();\n while (++i < n) {\n if (values2 = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values2.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n valuesByKey.each(function(values3, key2) {\n setResult(result, key2, apply(values3, depth, createResult, setResult));\n });\n return result;\n }\n function entries2(map$$1, depth) {\n if (++depth > keys2.length) return map$$1;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys2.length) array = map$$1.entries();\n else array = [], map$$1.each(function(v, k) {\n array.push({ key: k, values: entries2(v, depth) });\n });\n return sortKey != null ? array.sort(function(a, b) {\n return sortKey(a.key, b.key);\n }) : array;\n }\n return nest2 = {\n object: function(array) {\n return apply(array, 0, createObject, setObject);\n },\n map: function(array) {\n return apply(array, 0, createMap, setMap);\n },\n entries: function(array) {\n return entries2(apply(array, 0, createMap, setMap), 0);\n },\n key: function(d) {\n keys2.push(d);\n return nest2;\n },\n sortKeys: function(order) {\n sortKeys[keys2.length - 1] = order;\n return nest2;\n },\n sortValues: function(order) {\n sortValues = order;\n return nest2;\n },\n rollup: function(f) {\n rollup = f;\n return nest2;\n }\n };\n }\n function createObject() {\n return {};\n }\n function setObject(object, key, value) {\n object[key] = value;\n }\n function createMap() {\n return map();\n }\n function setMap(map$$1, key, value) {\n map$$1.set(key, value);\n }\n function Set2() {\n }\n var proto = map.prototype;\n Set2.prototype = set.prototype = {\n constructor: Set2,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n };\n function set(object, f) {\n var set2 = new Set2();\n if (object instanceof Set2) object.each(function(value) {\n set2.add(value);\n });\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set2.add(object[i]);\n else while (++i < n) set2.add(f(object[i], i, object));\n }\n return set2;\n }\n function keys(map2) {\n var keys2 = [];\n for (var key in map2) keys2.push(key);\n return keys2;\n }\n function values(map2) {\n var values2 = [];\n for (var key in map2) values2.push(map2[key]);\n return values2;\n }\n function entries(map2) {\n var entries2 = [];\n for (var key in map2) entries2.push({ key, value: map2[key] });\n return entries2;\n }\n exports2.nest = nest;\n exports2.set = set;\n exports2.map = map;\n exports2.keys = keys;\n exports2.values = values;\n exports2.entries = entries;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-dispatch/dist/d3-dispatch.js\n var require_d3_dispatch = __commonJS({\n \"node_modules/d3-dispatch/dist/d3-dispatch.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var noop = { value: function() {\n } };\n function dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || t in _ || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n }\n function Dispatch(_) {\n this._ = _;\n }\n function parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name2 = \"\", i = t.indexOf(\".\");\n if (i >= 0) name2 = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return { type: t, name: name2 };\n });\n }\n Dispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._, T = parseTypenames(typename + \"\", _), t, i = -1, n = T.length;\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n };\n function get(type, name2) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name2) {\n return c.value;\n }\n }\n }\n function set(type, name2, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name2) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({ name: name2, value: callback });\n return type;\n }\n exports2.dispatch = dispatch;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-timer/dist/d3-timer.js\n var require_d3_timer = __commonJS({\n \"node_modules/d3-timer/dist/d3-timer.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var frame = 0, timeout = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === \"object\" && performance.now ? performance : Date, setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) {\n setTimeout(f, 17);\n };\n function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n }\n function clearNow() {\n clockNow = 0;\n }\n function Timer() {\n this._call = this._time = this._next = null;\n }\n Timer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n };\n function timer(callback, delay, time) {\n var t = new Timer();\n t.restart(callback, delay, time);\n return t;\n }\n function timerFlush() {\n now();\n ++frame;\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n }\n function wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n }\n function poke() {\n var now2 = clock.now(), delay = now2 - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now2;\n }\n function nap() {\n var t02, t12 = taskHead, t22, time = Infinity;\n while (t12) {\n if (t12._call) {\n if (time > t12._time) time = t12._time;\n t02 = t12, t12 = t12._next;\n } else {\n t22 = t12._next, t12._next = null;\n t12 = t02 ? t02._next = t22 : taskHead = t22;\n }\n }\n taskTail = t02;\n sleep(time);\n }\n function sleep(time) {\n if (frame) return;\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow;\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n }\n function timeout$1(callback, delay, time) {\n var t = new Timer();\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n }\n function interval$1(callback, delay, time) {\n var t = new Timer(), total = delay;\n if (delay == null) return t.restart(callback, delay, time), t;\n delay = +delay, time = time == null ? now() : +time;\n t.restart(function tick(elapsed) {\n elapsed += total;\n t.restart(tick, total += delay, time);\n callback(elapsed);\n }, delay, time);\n return t;\n }\n exports2.interval = interval$1;\n exports2.now = now;\n exports2.timeout = timeout$1;\n exports2.timer = timer;\n exports2.timerFlush = timerFlush;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-force/dist/d3-force.js\n var require_d3_force = __commonJS({\n \"node_modules/d3-force/dist/d3-force.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_quadtree(), require_d3_collection(), require_d3_dispatch(), require_d3_timer()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-quadtree\", \"d3-collection\", \"d3-dispatch\", \"d3-timer\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3, global2.d3, global2.d3);\n })(exports, function(exports2, d3Quadtree, d3Collection, d3Dispatch, d3Timer) {\n \"use strict\";\n function center(x2, y2) {\n var nodes;\n if (x2 == null) x2 = 0;\n if (y2 == null) y2 = 0;\n function force() {\n var i, n = nodes.length, node, sx = 0, sy = 0;\n for (i = 0; i < n; ++i) {\n node = nodes[i], sx += node.x, sy += node.y;\n }\n for (sx = sx / n - x2, sy = sy / n - y2, i = 0; i < n; ++i) {\n node = nodes[i], node.x -= sx, node.y -= sy;\n }\n }\n force.initialize = function(_) {\n nodes = _;\n };\n force.x = function(_) {\n return arguments.length ? (x2 = +_, force) : x2;\n };\n force.y = function(_) {\n return arguments.length ? (y2 = +_, force) : y2;\n };\n return force;\n }\n function constant(x2) {\n return function() {\n return x2;\n };\n }\n function jiggle() {\n return (Math.random() - 0.5) * 1e-6;\n }\n function x(d) {\n return d.x + d.vx;\n }\n function y(d) {\n return d.y + d.vy;\n }\n function collide(radius) {\n var nodes, radii, strength = 1, iterations = 1;\n if (typeof radius !== \"function\") radius = constant(radius == null ? 1 : +radius);\n function force() {\n var i, n = nodes.length, tree, node, xi, yi, ri, ri2;\n for (var k = 0; k < iterations; ++k) {\n tree = d3Quadtree.quadtree(nodes, x, y).visitAfter(prepare);\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n ri = radii[node.index], ri2 = ri * ri;\n xi = node.x + node.vx;\n yi = node.y + node.vy;\n tree.visit(apply);\n }\n }\n function apply(quad, x0, y0, x1, y1) {\n var data = quad.data, rj = quad.r, r = ri + rj;\n if (data) {\n if (data.index > node.index) {\n var x2 = xi - data.x - data.vx, y2 = yi - data.y - data.vy, l = x2 * x2 + y2 * y2;\n if (l < r * r) {\n if (x2 === 0) x2 = jiggle(), l += x2 * x2;\n if (y2 === 0) y2 = jiggle(), l += y2 * y2;\n l = (r - (l = Math.sqrt(l))) / l * strength;\n node.vx += (x2 *= l) * (r = (rj *= rj) / (ri2 + rj));\n node.vy += (y2 *= l) * r;\n data.vx -= x2 * (r = 1 - r);\n data.vy -= y2 * r;\n }\n }\n return;\n }\n return x0 > xi + r || x1 < xi - r || y0 > yi + r || y1 < yi - r;\n }\n }\n function prepare(quad) {\n if (quad.data) return quad.r = radii[quad.data.index];\n for (var i = quad.r = 0; i < 4; ++i) {\n if (quad[i] && quad[i].r > quad.r) {\n quad.r = quad[i].r;\n }\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node;\n radii = new Array(n);\n for (i = 0; i < n; ++i) node = nodes[i], radii[node.index] = +radius(node, i, nodes);\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n force.strength = function(_) {\n return arguments.length ? (strength = +_, force) : strength;\n };\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n return force;\n }\n function index(d) {\n return d.index;\n }\n function find(nodeById, nodeId) {\n var node = nodeById.get(nodeId);\n if (!node) throw new Error(\"missing: \" + nodeId);\n return node;\n }\n function link(links) {\n var id = index, strength = defaultStrength, strengths, distance = constant(30), distances, nodes, count, bias, iterations = 1;\n if (links == null) links = [];\n function defaultStrength(link2) {\n return 1 / Math.min(count[link2.source.index], count[link2.target.index]);\n }\n function force(alpha) {\n for (var k = 0, n = links.length; k < iterations; ++k) {\n for (var i = 0, link2, source, target, x2, y2, l, b; i < n; ++i) {\n link2 = links[i], source = link2.source, target = link2.target;\n x2 = target.x + target.vx - source.x - source.vx || jiggle();\n y2 = target.y + target.vy - source.y - source.vy || jiggle();\n l = Math.sqrt(x2 * x2 + y2 * y2);\n l = (l - distances[i]) / l * alpha * strengths[i];\n x2 *= l, y2 *= l;\n target.vx -= x2 * (b = bias[i]);\n target.vy -= y2 * b;\n source.vx += x2 * (b = 1 - b);\n source.vy += y2 * b;\n }\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, m = links.length, nodeById = d3Collection.map(nodes, id), link2;\n for (i = 0, count = new Array(n); i < m; ++i) {\n link2 = links[i], link2.index = i;\n if (typeof link2.source !== \"object\") link2.source = find(nodeById, link2.source);\n if (typeof link2.target !== \"object\") link2.target = find(nodeById, link2.target);\n count[link2.source.index] = (count[link2.source.index] || 0) + 1;\n count[link2.target.index] = (count[link2.target.index] || 0) + 1;\n }\n for (i = 0, bias = new Array(m); i < m; ++i) {\n link2 = links[i], bias[i] = count[link2.source.index] / (count[link2.source.index] + count[link2.target.index]);\n }\n strengths = new Array(m), initializeStrength();\n distances = new Array(m), initializeDistance();\n }\n function initializeStrength() {\n if (!nodes) return;\n for (var i = 0, n = links.length; i < n; ++i) {\n strengths[i] = +strength(links[i], i, links);\n }\n }\n function initializeDistance() {\n if (!nodes) return;\n for (var i = 0, n = links.length; i < n; ++i) {\n distances[i] = +distance(links[i], i, links);\n }\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.links = function(_) {\n return arguments.length ? (links = _, initialize(), force) : links;\n };\n force.id = function(_) {\n return arguments.length ? (id = _, force) : id;\n };\n force.iterations = function(_) {\n return arguments.length ? (iterations = +_, force) : iterations;\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initializeStrength(), force) : strength;\n };\n force.distance = function(_) {\n return arguments.length ? (distance = typeof _ === \"function\" ? _ : constant(+_), initializeDistance(), force) : distance;\n };\n return force;\n }\n function x$1(d) {\n return d.x;\n }\n function y$1(d) {\n return d.y;\n }\n var initialRadius = 10, initialAngle = Math.PI * (3 - Math.sqrt(5));\n function simulation(nodes) {\n var simulation2, alpha = 1, alphaMin = 1e-3, alphaDecay = 1 - Math.pow(alphaMin, 1 / 300), alphaTarget = 0, velocityDecay = 0.6, forces = d3Collection.map(), stepper = d3Timer.timer(step), event = d3Dispatch.dispatch(\"tick\", \"end\");\n if (nodes == null) nodes = [];\n function step() {\n tick();\n event.call(\"tick\", simulation2);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation2);\n }\n }\n function tick(iterations) {\n var i, n = nodes.length, node;\n if (iterations === void 0) iterations = 1;\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n forces.each(function(force) {\n force(alpha);\n });\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n return simulation2;\n }\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n initializeNodes();\n return simulation2 = {\n tick,\n restart: function() {\n return stepper.restart(step), simulation2;\n },\n stop: function() {\n return stepper.stop(), simulation2;\n },\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation2) : nodes;\n },\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation2) : alpha;\n },\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation2) : alphaMin;\n },\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation2) : +alphaDecay;\n },\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation2) : alphaTarget;\n },\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation2) : 1 - velocityDecay;\n },\n force: function(name2, _) {\n return arguments.length > 1 ? (_ == null ? forces.remove(name2) : forces.set(name2, initializeForce(_)), simulation2) : forces.get(name2);\n },\n find: function(x2, y2, radius) {\n var i = 0, n = nodes.length, dx, dy, d2, node, closest;\n if (radius == null) radius = Infinity;\n else radius *= radius;\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x2 - node.x;\n dy = y2 - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n return closest;\n },\n on: function(name2, _) {\n return arguments.length > 1 ? (event.on(name2, _), simulation2) : event.on(name2);\n }\n };\n }\n function manyBody() {\n var nodes, node, alpha, strength = constant(-30), strengths, distanceMin2 = 1, distanceMax2 = Infinity, theta2 = 0.81;\n function force(_) {\n var i, n = nodes.length, tree = d3Quadtree.quadtree(nodes, x$1, y$1).visitAfter(accumulate);\n for (alpha = _, i = 0; i < n; ++i) node = nodes[i], tree.visit(apply);\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length, node2;\n strengths = new Array(n);\n for (i = 0; i < n; ++i) node2 = nodes[i], strengths[node2.index] = +strength(node2, i, nodes);\n }\n function accumulate(quad) {\n var strength2 = 0, q, c, weight = 0, x2, y2, i;\n if (quad.length) {\n for (x2 = y2 = i = 0; i < 4; ++i) {\n if ((q = quad[i]) && (c = Math.abs(q.value))) {\n strength2 += q.value, weight += c, x2 += c * q.x, y2 += c * q.y;\n }\n }\n quad.x = x2 / weight;\n quad.y = y2 / weight;\n } else {\n q = quad;\n q.x = q.data.x;\n q.y = q.data.y;\n do\n strength2 += strengths[q.data.index];\n while (q = q.next);\n }\n quad.value = strength2;\n }\n function apply(quad, x1, _, x2) {\n if (!quad.value) return true;\n var x3 = quad.x - node.x, y2 = quad.y - node.y, w = x2 - x1, l = x3 * x3 + y2 * y2;\n if (w * w / theta2 < l) {\n if (l < distanceMax2) {\n if (x3 === 0) x3 = jiggle(), l += x3 * x3;\n if (y2 === 0) y2 = jiggle(), l += y2 * y2;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n node.vx += x3 * quad.value * alpha / l;\n node.vy += y2 * quad.value * alpha / l;\n }\n return true;\n } else if (quad.length || l >= distanceMax2) return;\n if (quad.data !== node || quad.next) {\n if (x3 === 0) x3 = jiggle(), l += x3 * x3;\n if (y2 === 0) y2 = jiggle(), l += y2 * y2;\n if (l < distanceMin2) l = Math.sqrt(distanceMin2 * l);\n }\n do\n if (quad.data !== node) {\n w = strengths[quad.data.index] * alpha / l;\n node.vx += x3 * w;\n node.vy += y2 * w;\n }\n while (quad = quad.next);\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.distanceMin = function(_) {\n return arguments.length ? (distanceMin2 = _ * _, force) : Math.sqrt(distanceMin2);\n };\n force.distanceMax = function(_) {\n return arguments.length ? (distanceMax2 = _ * _, force) : Math.sqrt(distanceMax2);\n };\n force.theta = function(_) {\n return arguments.length ? (theta2 = _ * _, force) : Math.sqrt(theta2);\n };\n return force;\n }\n function radial(radius, x2, y2) {\n var nodes, strength = constant(0.1), strengths, radiuses;\n if (typeof radius !== \"function\") radius = constant(+radius);\n if (x2 == null) x2 = 0;\n if (y2 == null) y2 = 0;\n function force(alpha) {\n for (var i = 0, n = nodes.length; i < n; ++i) {\n var node = nodes[i], dx = node.x - x2 || 1e-6, dy = node.y - y2 || 1e-6, r = Math.sqrt(dx * dx + dy * dy), k = (radiuses[i] - r) * strengths[i] * alpha / r;\n node.vx += dx * k;\n node.vy += dy * k;\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n radiuses = new Array(n);\n for (i = 0; i < n; ++i) {\n radiuses[i] = +radius(nodes[i], i, nodes);\n strengths[i] = isNaN(radiuses[i]) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n force.initialize = function(_) {\n nodes = _, initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : radius;\n };\n force.x = function(_) {\n return arguments.length ? (x2 = +_, force) : x2;\n };\n force.y = function(_) {\n return arguments.length ? (y2 = +_, force) : y2;\n };\n return force;\n }\n function x$2(x2) {\n var strength = constant(0.1), nodes, strengths, xz;\n if (typeof x2 !== \"function\") x2 = constant(x2 == null ? 0 : +x2);\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vx += (xz[i] - node.x) * strengths[i] * alpha;\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n xz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(xz[i] = +x2(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.x = function(_) {\n return arguments.length ? (x2 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : x2;\n };\n return force;\n }\n function y$2(y2) {\n var strength = constant(0.1), nodes, strengths, yz;\n if (typeof y2 !== \"function\") y2 = constant(y2 == null ? 0 : +y2);\n function force(alpha) {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.vy += (yz[i] - node.y) * strengths[i] * alpha;\n }\n }\n function initialize() {\n if (!nodes) return;\n var i, n = nodes.length;\n strengths = new Array(n);\n yz = new Array(n);\n for (i = 0; i < n; ++i) {\n strengths[i] = isNaN(yz[i] = +y2(nodes[i], i, nodes)) ? 0 : +strength(nodes[i], i, nodes);\n }\n }\n force.initialize = function(_) {\n nodes = _;\n initialize();\n };\n force.strength = function(_) {\n return arguments.length ? (strength = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : strength;\n };\n force.y = function(_) {\n return arguments.length ? (y2 = typeof _ === \"function\" ? _ : constant(+_), initialize(), force) : y2;\n };\n return force;\n }\n exports2.forceCenter = center;\n exports2.forceCollide = collide;\n exports2.forceLink = link;\n exports2.forceManyBody = manyBody;\n exports2.forceRadial = radial;\n exports2.forceSimulation = simulation;\n exports2.forceX = x$2;\n exports2.forceY = y$2;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-path/dist/d3-path.js\n var require_d3_path = __commonJS({\n \"node_modules/d3-path/dist/d3-path.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && false ? define([\"exports\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}));\n })(exports, function(exports2) {\n \"use strict\";\n var pi = Math.PI, tau = 2 * pi, epsilon = 1e-6, tauEpsilon = tau - epsilon;\n function Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null;\n this._ = \"\";\n }\n function path() {\n return new Path();\n }\n Path.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + +x1 + \",\" + +y1 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + +x1 + \",\" + +y1 + \",\" + +x2 + \",\" + +y2 + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } else if (!(l01_2 > epsilon)) ;\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n } else {\n var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + +(y01 * x20 > x01 * y20) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x + dx, y0 = y + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;\n if (r < 0) throw new Error(\"negative radius: \" + r);\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n } else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n if (!r) return;\n if (da < 0) da = da % tau + tau;\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n } else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + +(da >= pi) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + +w + \"v\" + +h + \"h\" + -w + \"Z\";\n },\n toString: function() {\n return this._;\n }\n };\n exports2.path = path;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/d3-shape/dist/d3-shape.js\n var require_d3_shape = __commonJS({\n \"node_modules/d3-shape/dist/d3-shape.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_path()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-path\"], factory) : (global2 = global2 || self, factory(global2.d3 = global2.d3 || {}, global2.d3));\n })(exports, function(exports2, d3Path) {\n \"use strict\";\n function constant(x2) {\n return function constant2() {\n return x2;\n };\n }\n var abs = Math.abs;\n var atan2 = Math.atan2;\n var cos = Math.cos;\n var max = Math.max;\n var min = Math.min;\n var sin = Math.sin;\n var sqrt = Math.sqrt;\n var epsilon = 1e-12;\n var pi = Math.PI;\n var halfPi = pi / 2;\n var tau = 2 * pi;\n function acos(x2) {\n return x2 > 1 ? 0 : x2 < -1 ? pi : Math.acos(x2);\n }\n function asin(x2) {\n return x2 >= 1 ? halfPi : x2 <= -1 ? -halfPi : Math.asin(x2);\n }\n function arcInnerRadius(d) {\n return d.innerRadius;\n }\n function arcOuterRadius(d) {\n return d.outerRadius;\n }\n function arcStartAngle(d) {\n return d.startAngle;\n }\n function arcEndAngle(d) {\n return d.endAngle;\n }\n function arcPadAngle(d) {\n return d && d.padAngle;\n }\n function intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n }\n function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D2 = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n }\n function arc() {\n var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null;\n function arc2() {\n var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs(a1 - a0), cw = a1 > a0;\n if (!context) context = buffer = d3Path.path();\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n } else {\n var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t02, t12;\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);\n if (rc > epsilon) {\n var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n else if (rc1 > epsilon) {\n t02 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t12 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n context.moveTo(t02.cx + t02.x01, t02.cy + t02.y01);\n if (rc1 < rc) context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);\n else {\n context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);\n context.arc(0, 0, r1, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), !cw);\n context.arc(t12.cx, t12.cy, rc1, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);\n }\n } else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n else if (rc0 > epsilon) {\n t02 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t12 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n context.lineTo(t02.cx + t02.x01, t02.cy + t02.y01);\n if (rc0 < rc) context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);\n else {\n context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);\n context.arc(0, 0, r0, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), cw);\n context.arc(t12.cx, t12.cy, rc0, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);\n }\n } else context.arc(0, 0, r0, a10, a00, cw);\n }\n context.closePath();\n if (buffer) return context = null, buffer + \"\" || null;\n }\n arc2.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a2 = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a2) * r, sin(a2) * r];\n };\n arc2.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc2) : innerRadius;\n };\n arc2.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc2) : outerRadius;\n };\n arc2.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc2) : cornerRadius;\n };\n arc2.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc2) : padRadius;\n };\n arc2.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc2) : startAngle;\n };\n arc2.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc2) : endAngle;\n };\n arc2.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc2) : padAngle;\n };\n arc2.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, arc2) : context;\n };\n return arc2;\n }\n function Linear(context) {\n this._context = context;\n }\n Linear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n // proceed\n default:\n this._context.lineTo(x2, y2);\n break;\n }\n }\n };\n function curveLinear(context) {\n return new Linear(context);\n }\n function x(p) {\n return p[0];\n }\n function y(p) {\n return p[1];\n }\n function line() {\n var x$1 = x, y$1 = y, defined = constant(true), context = null, curve = curveLinear, output = null;\n function line2(data) {\n var i, n = data.length, d, defined0 = false, buffer;\n if (context == null) output = curve(buffer = d3Path.path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x$1(d, i, data), +y$1(d, i, data));\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n line2.x = function(_) {\n return arguments.length ? (x$1 = typeof _ === \"function\" ? _ : constant(+_), line2) : x$1;\n };\n line2.y = function(_) {\n return arguments.length ? (y$1 = typeof _ === \"function\" ? _ : constant(+_), line2) : y$1;\n };\n line2.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line2) : defined;\n };\n line2.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line2) : curve;\n };\n line2.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line2) : context;\n };\n return line2;\n }\n function area() {\n var x0 = x, x1 = null, y0 = constant(0), y1 = y, defined = constant(true), context = null, curve = curveLinear, output = null;\n function area2(data) {\n var i, j, k2, n = data.length, d, defined0 = false, buffer, x0z = new Array(n), y0z = new Array(n);\n if (context == null) output = curve(buffer = d3Path.path());\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k2 = i - 1; k2 >= j; --k2) {\n output.point(x0z[k2], y0z[k2]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n if (buffer) return output = null, buffer + \"\" || null;\n }\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n area2.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area2) : x0;\n };\n area2.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area2) : x0;\n };\n area2.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area2) : x1;\n };\n area2.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area2) : y0;\n };\n area2.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area2) : y0;\n };\n area2.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area2) : y1;\n };\n area2.lineX0 = area2.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n area2.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n area2.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n area2.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area2) : defined;\n };\n area2.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area2) : curve;\n };\n area2.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area2) : context;\n };\n return area2;\n }\n function descending(a2, b) {\n return b < a2 ? -1 : b > a2 ? 1 : b >= a2 ? 0 : NaN;\n }\n function identity2(d) {\n return d;\n }\n function pie() {\n var value = identity2, sortValues = descending, sort = null, startAngle = constant(0), endAngle = constant(tau), padAngle = constant(0);\n function pie2(data) {\n var i, n = data.length, j, k2, sum2 = 0, index = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v;\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum2 += v;\n }\n }\n if (sortValues != null) index.sort(function(i2, j2) {\n return sortValues(arcs[i2], arcs[j2]);\n });\n else if (sort != null) index.sort(function(i2, j2) {\n return sort(data[i2], data[j2]);\n });\n for (i = 0, k2 = sum2 ? (da - n * pa) / sum2 : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k2 : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n return arcs;\n }\n pie2.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie2) : value;\n };\n pie2.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie2) : sortValues;\n };\n pie2.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie2) : sort;\n };\n pie2.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie2) : startAngle;\n };\n pie2.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie2) : endAngle;\n };\n pie2.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie2) : padAngle;\n };\n return pie2;\n }\n var curveRadialLinear = curveRadial(curveLinear);\n function Radial(curve) {\n this._curve = curve;\n }\n Radial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a2, r) {\n this._curve.point(r * Math.sin(a2), r * -Math.cos(a2));\n }\n };\n function curveRadial(curve) {\n function radial(context) {\n return new Radial(curve(context));\n }\n radial._curve = curve;\n return radial;\n }\n function lineRadial(l) {\n var c2 = l.curve;\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n l.curve = function(_) {\n return arguments.length ? c2(curveRadial(_)) : c2()._curve;\n };\n return l;\n }\n function lineRadial$1() {\n return lineRadial(line().curve(curveRadialLinear));\n }\n function areaRadial() {\n var a2 = area().curve(curveRadialLinear), c2 = a2.curve, x0 = a2.lineX0, x1 = a2.lineX1, y0 = a2.lineY0, y1 = a2.lineY1;\n a2.angle = a2.x, delete a2.x;\n a2.startAngle = a2.x0, delete a2.x0;\n a2.endAngle = a2.x1, delete a2.x1;\n a2.radius = a2.y, delete a2.y;\n a2.innerRadius = a2.y0, delete a2.y0;\n a2.outerRadius = a2.y1, delete a2.y1;\n a2.lineStartAngle = function() {\n return lineRadial(x0());\n }, delete a2.lineX0;\n a2.lineEndAngle = function() {\n return lineRadial(x1());\n }, delete a2.lineX1;\n a2.lineInnerRadius = function() {\n return lineRadial(y0());\n }, delete a2.lineY0;\n a2.lineOuterRadius = function() {\n return lineRadial(y1());\n }, delete a2.lineY1;\n a2.curve = function(_) {\n return arguments.length ? c2(curveRadial(_)) : c2()._curve;\n };\n return a2;\n }\n function pointRadial(x2, y2) {\n return [(y2 = +y2) * Math.cos(x2 -= Math.PI / 2), y2 * Math.sin(x2)];\n }\n var slice = Array.prototype.slice;\n function linkSource(d) {\n return d.source;\n }\n function linkTarget(d) {\n return d.target;\n }\n function link(curve) {\n var source = linkSource, target = linkTarget, x$1 = x, y$1 = y, context = null;\n function link2() {\n var buffer, argv = slice.call(arguments), s2 = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = d3Path.path();\n curve(context, +x$1.apply(this, (argv[0] = s2, argv)), +y$1.apply(this, argv), +x$1.apply(this, (argv[0] = t, argv)), +y$1.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n link2.source = function(_) {\n return arguments.length ? (source = _, link2) : source;\n };\n link2.target = function(_) {\n return arguments.length ? (target = _, link2) : target;\n };\n link2.x = function(_) {\n return arguments.length ? (x$1 = typeof _ === \"function\" ? _ : constant(+_), link2) : x$1;\n };\n link2.y = function(_) {\n return arguments.length ? (y$1 = typeof _ === \"function\" ? _ : constant(+_), link2) : y$1;\n };\n link2.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, link2) : context;\n };\n return link2;\n }\n function curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n }\n function curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n }\n function curveRadial$1(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0), p1 = pointRadial(x0, y0 = (y0 + y1) / 2), p2 = pointRadial(x1, y0), p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n }\n function linkHorizontal() {\n return link(curveHorizontal);\n }\n function linkVertical() {\n return link(curveVertical);\n }\n function linkRadial() {\n var l = link(curveRadial$1);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n }\n var circle = {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n };\n var cross = {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n };\n var tan30 = Math.sqrt(1 / 3), tan30_2 = tan30 * 2;\n var diamond = {\n draw: function(context, size) {\n var y2 = Math.sqrt(size / tan30_2), x2 = y2 * tan30;\n context.moveTo(0, -y2);\n context.lineTo(x2, 0);\n context.lineTo(0, y2);\n context.lineTo(-x2, 0);\n context.closePath();\n }\n };\n var ka = 0.8908130915292852, kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10), kx = Math.sin(tau / 10) * kr, ky = -Math.cos(tau / 10) * kr;\n var star = {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka), x2 = kx * r, y2 = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x2, y2);\n for (var i = 1; i < 5; ++i) {\n var a2 = tau * i / 5, c2 = Math.cos(a2), s2 = Math.sin(a2);\n context.lineTo(s2 * r, -c2 * r);\n context.lineTo(c2 * x2 - s2 * y2, s2 * x2 + c2 * y2);\n }\n context.closePath();\n }\n };\n var square = {\n draw: function(context, size) {\n var w = Math.sqrt(size), x2 = -w / 2;\n context.rect(x2, x2, w, w);\n }\n };\n var sqrt3 = Math.sqrt(3);\n var triangle = {\n draw: function(context, size) {\n var y2 = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y2 * 2);\n context.lineTo(-sqrt3 * y2, -y2);\n context.lineTo(sqrt3 * y2, -y2);\n context.closePath();\n }\n };\n var c = -0.5, s = Math.sqrt(3) / 2, k = 1 / Math.sqrt(12), a = (k / 2 + 1) * 3;\n var wye = {\n draw: function(context, size) {\n var r = Math.sqrt(size / a), x0 = r / 2, y0 = r * k, x1 = x0, y1 = r * k + r, x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n };\n var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n ];\n function symbol() {\n var type = constant(circle), size = constant(64), context = null;\n function symbol2() {\n var buffer;\n if (!context) context = buffer = d3Path.path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n symbol2.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol2) : type;\n };\n symbol2.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol2) : size;\n };\n symbol2.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol2) : context;\n };\n return symbol2;\n }\n function noop() {\n }\n function point(that, x2, y2) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x2) / 6,\n (that._y0 + 4 * that._y1 + y2) / 6\n );\n }\n function Basis(context) {\n this._context = context;\n }\n Basis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3:\n point(this, this._x1, this._y1);\n // proceed\n case 2:\n this._context.lineTo(this._x1, this._y1);\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);\n // proceed\n default:\n point(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n }\n };\n function basis2(context) {\n return new Basis(context);\n }\n function BasisClosed(context) {\n this._context = context;\n }\n BasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x2 = x2, this._y2 = y2;\n break;\n case 1:\n this._point = 2;\n this._x3 = x2, this._y3 = y2;\n break;\n case 2:\n this._point = 3;\n this._x4 = x2, this._y4 = y2;\n this._context.moveTo((this._x0 + 4 * this._x1 + x2) / 6, (this._y0 + 4 * this._y1 + y2) / 6);\n break;\n default:\n point(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n }\n };\n function basisClosed(context) {\n return new BasisClosed(context);\n }\n function BasisOpen(context) {\n this._context = context;\n }\n BasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n var x0 = (this._x0 + 4 * this._x1 + x2) / 6, y0 = (this._y0 + 4 * this._y1 + y2) / 6;\n this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n point(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n }\n };\n function basisOpen(context) {\n return new BasisOpen(context);\n }\n function Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n }\n Bundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x2 = this._x, y2 = this._y, j = x2.length - 1;\n if (j > 0) {\n var x0 = x2[0], y0 = y2[0], dx = x2[j] - x0, dy = y2[j] - y0, i = -1, t;\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x2[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y2[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x2, y2) {\n this._x.push(+x2);\n this._y.push(+y2);\n }\n };\n var bundle = function custom(beta) {\n function bundle2(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n bundle2.beta = function(beta2) {\n return custom(+beta2);\n };\n return bundle2;\n }(0.85);\n function point$1(that, x2, y2) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x2),\n that._y2 + that._k * (that._y1 - y2),\n that._x2,\n that._y2\n );\n }\n function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n }\n Cardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n break;\n case 3:\n point$1(this, this._x1, this._y1);\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n this._x1 = x2, this._y1 = y2;\n break;\n case 2:\n this._point = 3;\n // proceed\n default:\n point$1(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var cardinal = function custom(tension) {\n function cardinal2(context) {\n return new Cardinal(context, tension);\n }\n cardinal2.tension = function(tension2) {\n return custom(+tension2);\n };\n return cardinal2;\n }(0);\n function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n }\n CardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x2, this._y3 = y2;\n break;\n case 1:\n this._point = 2;\n this._context.moveTo(this._x4 = x2, this._y4 = y2);\n break;\n case 2:\n this._point = 3;\n this._x5 = x2, this._y5 = y2;\n break;\n default:\n point$1(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var cardinalClosed = function custom(tension) {\n function cardinal2(context) {\n return new CardinalClosed(context, tension);\n }\n cardinal2.tension = function(tension2) {\n return custom(+tension2);\n };\n return cardinal2;\n }(0);\n function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n }\n CardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n point$1(this, x2, y2);\n break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var cardinalOpen = function custom(tension) {\n function cardinal2(context) {\n return new CardinalOpen(context, tension);\n }\n cardinal2.tension = function(tension2) {\n return custom(+tension2);\n };\n return cardinal2;\n }(0);\n function point$2(that, x2, y2) {\n var x1 = that._x1, y1 = that._y1, x22 = that._x2, y22 = that._y2;\n if (that._l01_a > epsilon) {\n var a2 = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a2 - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a2 - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x22 = (x22 * b + that._x1 * that._l23_2a - x2 * that._l12_2a) / m;\n y22 = (y22 * b + that._y1 * that._l23_2a - y2 * that._l12_2a) / m;\n }\n that._context.bezierCurveTo(x1, y1, x22, y22, that._x2, that._y2);\n }\n function CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n }\n CatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x2, this._y2);\n break;\n case 3:\n this.point(this._x2, this._y2);\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) {\n var x23 = this._x2 - x2, y23 = this._y2 - y2;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n // proceed\n default:\n point$2(this, x2, y2);\n break;\n }\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var catmullRom = function custom(alpha) {\n function catmullRom2(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n catmullRom2.alpha = function(alpha2) {\n return custom(+alpha2);\n };\n return catmullRom2;\n }(0.5);\n function CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n }\n CatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) {\n var x23 = this._x2 - x2, y23 = this._y2 - y2;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n switch (this._point) {\n case 0:\n this._point = 1;\n this._x3 = x2, this._y3 = y2;\n break;\n case 1:\n this._point = 2;\n this._context.moveTo(this._x4 = x2, this._y4 = y2);\n break;\n case 2:\n this._point = 3;\n this._x5 = x2, this._y5 = y2;\n break;\n default:\n point$2(this, x2, y2);\n break;\n }\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var catmullRomClosed = function custom(alpha) {\n function catmullRom2(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n catmullRom2.alpha = function(alpha2) {\n return custom(+alpha2);\n };\n return catmullRom2;\n }(0.5);\n function CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n }\n CatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;\n },\n lineEnd: function() {\n if (this._line || this._line !== 0 && this._point === 3) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) {\n var x23 = this._x2 - x2, y23 = this._y2 - y2;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n switch (this._point) {\n case 0:\n this._point = 1;\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);\n break;\n case 3:\n this._point = 4;\n // proceed\n default:\n point$2(this, x2, y2);\n break;\n }\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;\n }\n };\n var catmullRomOpen = function custom(alpha) {\n function catmullRom2(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n catmullRom2.alpha = function(alpha2) {\n return custom(+alpha2);\n };\n return catmullRom2;\n }(0.5);\n function LinearClosed(context) {\n this._context = context;\n }\n LinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n if (this._point) this._context.lineTo(x2, y2);\n else this._point = 1, this._context.moveTo(x2, y2);\n }\n };\n function linearClosed(context) {\n return new LinearClosed(context);\n }\n function sign(x2) {\n return x2 < 0 ? -1 : 1;\n }\n function slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n }\n function slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n }\n function point$3(that, t02, t12) {\n var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t02, x1 - dx, y1 - dx * t12, x1, y1);\n }\n function MonotoneX(context) {\n this._context = context;\n }\n MonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2:\n this._context.lineTo(this._x1, this._y1);\n break;\n case 3:\n point$3(this, this._t0, slope2(this, this._t0));\n break;\n }\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n var t12 = NaN;\n x2 = +x2, y2 = +y2;\n if (x2 === this._x1 && y2 === this._y1) return;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n break;\n case 2:\n this._point = 3;\n point$3(this, slope2(this, t12 = slope3(this, x2, y2)), t12);\n break;\n default:\n point$3(this, this._t0, t12 = slope3(this, x2, y2));\n break;\n }\n this._x0 = this._x1, this._x1 = x2;\n this._y0 = this._y1, this._y1 = y2;\n this._t0 = t12;\n }\n };\n function MonotoneY(context) {\n this._context = new ReflectContext(context);\n }\n (MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x2, y2) {\n MonotoneX.prototype.point.call(this, y2, x2);\n };\n function ReflectContext(context) {\n this._context = context;\n }\n ReflectContext.prototype = {\n moveTo: function(x2, y2) {\n this._context.moveTo(y2, x2);\n },\n closePath: function() {\n this._context.closePath();\n },\n lineTo: function(x2, y2) {\n this._context.lineTo(y2, x2);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x3, y3) {\n this._context.bezierCurveTo(y1, x1, y2, x2, y3, x3);\n }\n };\n function monotoneX(context) {\n return new MonotoneX(context);\n }\n function monotoneY(context) {\n return new MonotoneY(context);\n }\n function Natural(context) {\n this._context = context;\n }\n Natural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x2 = this._x, y2 = this._y, n = x2.length;\n if (n) {\n this._line ? this._context.lineTo(x2[0], y2[0]) : this._context.moveTo(x2[0], y2[0]);\n if (n === 2) {\n this._context.lineTo(x2[1], y2[1]);\n } else {\n var px = controlPoints(x2), py = controlPoints(y2);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x2[i1], y2[i1]);\n }\n }\n }\n if (this._line || this._line !== 0 && n === 1) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x2, y2) {\n this._x.push(+x2);\n this._y.push(+y2);\n }\n };\n function controlPoints(x2) {\n var i, n = x2.length - 1, m, a2 = new Array(n), b = new Array(n), r = new Array(n);\n a2[0] = 0, b[0] = 2, r[0] = x2[0] + 2 * x2[1];\n for (i = 1; i < n - 1; ++i) a2[i] = 1, b[i] = 4, r[i] = 4 * x2[i] + 2 * x2[i + 1];\n a2[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x2[n - 1] + x2[n];\n for (i = 1; i < n; ++i) m = a2[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a2[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a2[i] = (r[i] - a2[i + 1]) / b[i];\n b[n - 1] = (x2[n] + a2[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x2[i + 1] - a2[i + 1];\n return [a2, b];\n }\n function natural(context) {\n return new Natural(context);\n }\n function Step(context, t) {\n this._context = context;\n this._t = t;\n }\n Step.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || this._line !== 0 && this._point === 1) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x2, y2) {\n x2 = +x2, y2 = +y2;\n switch (this._point) {\n case 0:\n this._point = 1;\n this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);\n break;\n case 1:\n this._point = 2;\n // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y2);\n this._context.lineTo(x2, y2);\n } else {\n var x1 = this._x * (1 - this._t) + x2 * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y2);\n }\n break;\n }\n }\n this._x = x2, this._y = y2;\n }\n };\n function step(context) {\n return new Step(context, 0.5);\n }\n function stepBefore(context) {\n return new Step(context, 0);\n }\n function stepAfter(context) {\n return new Step(context, 1);\n }\n function none(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n }\n function none$1(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n }\n function stackValue(d, key) {\n return d[key];\n }\n function stack() {\n var keys = constant([]), order = none$1, offset = none, value = stackValue;\n function stack2(data) {\n var kz = keys.apply(this, arguments), i, m = data.length, n = kz.length, sz = new Array(n), oz;\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n offset(sz, oz);\n return sz;\n }\n stack2.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack2) : keys;\n };\n stack2.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack2) : value;\n };\n stack2.order = function(_) {\n return arguments.length ? (order = _ == null ? none$1 : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack2) : order;\n };\n stack2.offset = function(_) {\n return arguments.length ? (offset = _ == null ? none : _, stack2) : offset;\n };\n return stack2;\n }\n function expand(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y2; j < m; ++j) {\n for (y2 = i = 0; i < n; ++i) y2 += series[i][j][1] || 0;\n if (y2) for (i = 0; i < n; ++i) series[i][j][1] /= y2;\n }\n none(series, order);\n }\n function diverging(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\n }\n function silhouette(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y2 = 0; i < n; ++i) y2 += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y2 / 2;\n }\n none(series, order);\n }\n function wiggle(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y2 = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]], sij0 = si[j][1] || 0, sij1 = si[j - 1][1] || 0, s3 = (sij0 - sij1) / 2;\n for (var k2 = 0; k2 < i; ++k2) {\n var sk = series[order[k2]], skj0 = sk[j][1] || 0, skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y2;\n if (s1) y2 -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y2;\n none(series, order);\n }\n function appearance(series) {\n var peaks = series.map(peak);\n return none$1(series).sort(function(a2, b) {\n return peaks[a2] - peaks[b];\n });\n }\n function peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n }\n function ascending(series) {\n var sums = series.map(sum);\n return none$1(series).sort(function(a2, b) {\n return sums[a2] - sums[b];\n });\n }\n function sum(series) {\n var s2 = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s2 += v;\n return s2;\n }\n function descending$1(series) {\n return ascending(series).reverse();\n }\n function insideOut(series) {\n var n = series.length, i, j, sums = series.map(sum), order = appearance(series), top = 0, bottom = 0, tops = [], bottoms = [];\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n return bottoms.reverse().concat(tops);\n }\n function reverse(series) {\n return none$1(series).reverse();\n }\n exports2.arc = arc;\n exports2.area = area;\n exports2.areaRadial = areaRadial;\n exports2.curveBasis = basis2;\n exports2.curveBasisClosed = basisClosed;\n exports2.curveBasisOpen = basisOpen;\n exports2.curveBundle = bundle;\n exports2.curveCardinal = cardinal;\n exports2.curveCardinalClosed = cardinalClosed;\n exports2.curveCardinalOpen = cardinalOpen;\n exports2.curveCatmullRom = catmullRom;\n exports2.curveCatmullRomClosed = catmullRomClosed;\n exports2.curveCatmullRomOpen = catmullRomOpen;\n exports2.curveLinear = curveLinear;\n exports2.curveLinearClosed = linearClosed;\n exports2.curveMonotoneX = monotoneX;\n exports2.curveMonotoneY = monotoneY;\n exports2.curveNatural = natural;\n exports2.curveStep = step;\n exports2.curveStepAfter = stepAfter;\n exports2.curveStepBefore = stepBefore;\n exports2.line = line;\n exports2.lineRadial = lineRadial$1;\n exports2.linkHorizontal = linkHorizontal;\n exports2.linkRadial = linkRadial;\n exports2.linkVertical = linkVertical;\n exports2.pie = pie;\n exports2.pointRadial = pointRadial;\n exports2.radialArea = areaRadial;\n exports2.radialLine = lineRadial$1;\n exports2.stack = stack;\n exports2.stackOffsetDiverging = diverging;\n exports2.stackOffsetExpand = expand;\n exports2.stackOffsetNone = none;\n exports2.stackOffsetSilhouette = silhouette;\n exports2.stackOffsetWiggle = wiggle;\n exports2.stackOrderAppearance = appearance;\n exports2.stackOrderAscending = ascending;\n exports2.stackOrderDescending = descending$1;\n exports2.stackOrderInsideOut = insideOut;\n exports2.stackOrderNone = none$1;\n exports2.stackOrderReverse = reverse;\n exports2.symbol = symbol;\n exports2.symbolCircle = circle;\n exports2.symbolCross = cross;\n exports2.symbolDiamond = diamond;\n exports2.symbolSquare = square;\n exports2.symbolStar = star;\n exports2.symbolTriangle = triangle;\n exports2.symbolWye = wye;\n exports2.symbols = symbols;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/@plotly/d3-sankey/build/d3-sankey.js\n var require_d3_sankey = __commonJS({\n \"node_modules/@plotly/d3-sankey/build/d3-sankey.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_array(), require_d3_collection(), require_d3_shape()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-array\", \"d3-collection\", \"d3-shape\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3, global2.d3);\n })(exports, function(exports2, d3Array, d3Collection, d3Shape) {\n \"use strict\";\n function targetDepth(d) {\n return d.target.depth;\n }\n function left(node) {\n return node.depth;\n }\n function right(node, n) {\n return n - 1 - node.height;\n }\n function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n }\n function center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? d3Array.min(node.sourceLinks, targetDepth) - 1 : 0;\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n function ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n }\n function ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n }\n function ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n }\n function value(d) {\n return d.value;\n }\n function nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n }\n function weightedSource(link) {\n return nodeCenter(link.source) * link.value;\n }\n function weightedTarget(link) {\n return nodeCenter(link.target) * link.value;\n }\n function defaultId(d) {\n return d.index;\n }\n function defaultNodes(graph) {\n return graph.nodes;\n }\n function defaultLinks(graph) {\n return graph.links;\n }\n function find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n }\n var sankey = function() {\n var x0 = 0, y0 = 0, x1 = 1, y1 = 1, dx = 24, py = 8, id = defaultId, align = justify, nodes = defaultNodes, links = defaultLinks, iterations = 32, maxPaddedSpace = 2 / 3;\n function sankey2() {\n var graph = { nodes: nodes.apply(null, arguments), links: links.apply(null, arguments) };\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeBreadths(graph, iterations);\n computeLinkBreadths(graph);\n return graph;\n }\n sankey2.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n sankey2.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey2) : id;\n };\n sankey2.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey2) : align;\n };\n sankey2.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey2) : dx;\n };\n sankey2.nodePadding = function(_) {\n return arguments.length ? (py = +_, sankey2) : py;\n };\n sankey2.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey2) : nodes;\n };\n sankey2.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey2) : links;\n };\n sankey2.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey2) : [x1 - x0, y1 - y0];\n };\n sankey2.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey2) : [[x0, y0], [x1, y1]];\n };\n sankey2.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey2) : iterations;\n };\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function(node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = d3Collection.map(graph.nodes, id);\n graph.links.forEach(function(link, i) {\n link.index = i;\n var source = link.source, target = link.target;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n }\n function computeNodeValues(graph) {\n graph.nodes.forEach(function(node) {\n node.value = Math.max(\n d3Array.sum(node.sourceLinks, value),\n d3Array.sum(node.targetLinks, value)\n );\n });\n }\n function computeNodeDepths(graph) {\n var nodes2, next, x;\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.depth = x;\n node.sourceLinks.forEach(function(link) {\n if (next.indexOf(link.target) < 0) {\n next.push(link.target);\n }\n });\n });\n }\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.height = x;\n node.targetLinks.forEach(function(link) {\n if (next.indexOf(link.source) < 0) {\n next.push(link.source);\n }\n });\n });\n }\n var kx = (x1 - x0 - dx) / (x - 1);\n graph.nodes.forEach(function(node) {\n node.x1 = (node.x0 = x0 + Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x)))) * kx) + dx;\n });\n }\n function computeNodeBreadths(graph) {\n var columns = d3Collection.nest().key(function(d) {\n return d.x0;\n }).sortKeys(d3Array.ascending).entries(graph.nodes).map(function(d) {\n return d.values;\n });\n initializeNodeBreadth();\n resolveCollisions();\n for (var alpha = 1, n = iterations; n > 0; --n) {\n relaxRightToLeft(alpha *= 0.99);\n resolveCollisions();\n relaxLeftToRight(alpha);\n resolveCollisions();\n }\n function initializeNodeBreadth() {\n var L = d3Array.max(columns, function(nodes2) {\n return nodes2.length;\n });\n var maxNodePadding = maxPaddedSpace * (y1 - y0) / (L - 1);\n if (py > maxNodePadding) py = maxNodePadding;\n var ky = d3Array.min(columns, function(nodes2) {\n return (y1 - y0 - (nodes2.length - 1) * py) / d3Array.sum(nodes2, value);\n });\n columns.forEach(function(nodes2) {\n nodes2.forEach(function(node, i) {\n node.y1 = (node.y0 = i) + node.value * ky;\n });\n });\n graph.links.forEach(function(link) {\n link.width = link.value * ky;\n });\n }\n function relaxLeftToRight(alpha2) {\n columns.forEach(function(nodes2) {\n nodes2.forEach(function(node) {\n if (node.targetLinks.length) {\n var dy = (d3Array.sum(node.targetLinks, weightedSource) / d3Array.sum(node.targetLinks, value) - nodeCenter(node)) * alpha2;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n function relaxRightToLeft(alpha2) {\n columns.slice().reverse().forEach(function(nodes2) {\n nodes2.forEach(function(node) {\n if (node.sourceLinks.length) {\n var dy = (d3Array.sum(node.sourceLinks, weightedTarget) / d3Array.sum(node.sourceLinks, value) - nodeCenter(node)) * alpha2;\n node.y0 += dy, node.y1 += dy;\n }\n });\n });\n }\n function resolveCollisions() {\n columns.forEach(function(nodes2) {\n var node, dy, y = y0, n2 = nodes2.length, i;\n nodes2.sort(ascendingBreadth);\n for (i = 0; i < n2; ++i) {\n node = nodes2[i];\n dy = y - node.y0;\n if (dy > 0) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n for (i = n2 - 2; i >= 0; --i) {\n node = nodes2[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function(node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function(node) {\n var y02 = node.y0, y12 = y02;\n node.sourceLinks.forEach(function(link) {\n link.y0 = y02 + link.width / 2, y02 += link.width;\n });\n node.targetLinks.forEach(function(link) {\n link.y1 = y12 + link.width / 2, y12 += link.width;\n });\n });\n }\n return sankey2;\n };\n function horizontalSource(d) {\n return [d.source.x1, d.y0];\n }\n function horizontalTarget(d) {\n return [d.target.x0, d.y1];\n }\n var sankeyLinkHorizontal = function() {\n return d3Shape.linkHorizontal().source(horizontalSource).target(horizontalTarget);\n };\n exports2.sankey = sankey;\n exports2.sankeyCenter = center;\n exports2.sankeyLeft = left;\n exports2.sankeyRight = right;\n exports2.sankeyJustify = justify;\n exports2.sankeyLinkHorizontal = sankeyLinkHorizontal;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // node_modules/elementary-circuits-directed-graph/johnson.js\n var require_johnson = __commonJS({\n \"node_modules/elementary-circuits-directed-graph/johnson.js\"(exports, module) {\n var tarjan = require_scc();\n module.exports = function findCircuits(edges, cb) {\n var circuits = [];\n var stack = [];\n var blocked = [];\n var B2 = {};\n var Ak = [];\n var s;\n function unblock(u) {\n blocked[u] = false;\n if (B2.hasOwnProperty(u)) {\n Object.keys(B2[u]).forEach(function(w) {\n delete B2[u][w];\n if (blocked[w]) {\n unblock(w);\n }\n });\n }\n }\n function circuit(v) {\n var found = false;\n stack.push(v);\n blocked[v] = true;\n var i2;\n var w;\n for (i2 = 0; i2 < Ak[v].length; i2++) {\n w = Ak[v][i2];\n if (w === s) {\n output(s, stack);\n found = true;\n } else if (!blocked[w]) {\n found = circuit(w);\n }\n }\n if (found) {\n unblock(v);\n } else {\n for (i2 = 0; i2 < Ak[v].length; i2++) {\n w = Ak[v][i2];\n var entry = B2[w];\n if (!entry) {\n entry = {};\n B2[w] = entry;\n }\n entry[w] = true;\n }\n }\n stack.pop();\n return found;\n }\n function output(start, stack2) {\n var cycle = [].concat(stack2).concat(start);\n if (cb) {\n cb(circuit);\n } else {\n circuits.push(cycle);\n }\n }\n function subgraph(minId) {\n for (var i2 = 0; i2 < edges.length; i2++) {\n if (i2 < minId) edges[i2] = [];\n edges[i2] = edges[i2].filter(function(i3) {\n return i3 >= minId;\n });\n }\n }\n function adjacencyStructureSCC(from) {\n subgraph(from);\n var g = edges;\n var sccs = tarjan(g);\n var ccs = sccs.components.filter(function(scc) {\n return scc.length > 1;\n });\n var leastVertex = Infinity;\n var leastVertexComponent;\n for (var i2 = 0; i2 < ccs.length; i2++) {\n for (var j2 = 0; j2 < ccs[i2].length; j2++) {\n if (ccs[i2][j2] < leastVertex) {\n leastVertex = ccs[i2][j2];\n leastVertexComponent = i2;\n }\n }\n }\n var cc = ccs[leastVertexComponent];\n if (!cc) return false;\n var adjList = edges.map(function(l, index) {\n if (cc.indexOf(index) === -1) return [];\n return l.filter(function(i3) {\n return cc.indexOf(i3) !== -1;\n });\n });\n return {\n leastVertex,\n adjList\n };\n }\n s = 0;\n var n = edges.length;\n while (s < n) {\n var p = adjacencyStructureSCC(s);\n s = p.leastVertex;\n Ak = p.adjList;\n if (Ak) {\n for (var i = 0; i < Ak.length; i++) {\n for (var j = 0; j < Ak[i].length; j++) {\n var vertexId = Ak[i][j];\n blocked[+vertexId] = false;\n B2[vertexId] = {};\n }\n }\n circuit(s);\n s = s + 1;\n } else {\n s = n;\n }\n }\n if (cb) {\n return;\n } else {\n return circuits;\n }\n };\n }\n });\n\n // node_modules/@plotly/d3-sankey-circular/dist/d3-sankey-circular.js\n var require_d3_sankey_circular = __commonJS({\n \"node_modules/@plotly/d3-sankey-circular/dist/d3-sankey-circular.js\"(exports, module) {\n (function(global2, factory) {\n typeof exports === \"object\" && typeof module !== \"undefined\" ? factory(exports, require_d3_array(), require_d3_collection(), require_d3_shape(), require_johnson()) : typeof define === \"function\" && false ? define([\"exports\", \"d3-array\", \"d3-collection\", \"d3-shape\", \"elementary-circuits-directed-graph\"], factory) : factory(global2.d3 = global2.d3 || {}, global2.d3, global2.d3, global2.d3, null);\n })(exports, function(exports2, d3Array, d3Collection, d3Shape, findCircuits) {\n \"use strict\";\n findCircuits = findCircuits && findCircuits.hasOwnProperty(\"default\") ? findCircuits[\"default\"] : findCircuits;\n function targetDepth(d) {\n return d.target.depth;\n }\n function left(node) {\n return node.depth;\n }\n function right(node, n) {\n return n - 1 - node.height;\n }\n function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n }\n function center(node) {\n return node.targetLinks.length ? node.depth : node.sourceLinks.length ? d3Array.min(node.sourceLinks, targetDepth) - 1 : 0;\n }\n function constant(x) {\n return function() {\n return x;\n };\n }\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function(obj) {\n return typeof obj;\n } : function(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n function ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n }\n function ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n }\n function ascendingBreadth(a, b) {\n if (a.partOfCycle === b.partOfCycle) {\n return a.y0 - b.y0;\n } else {\n if (a.circularLinkType === \"top\" || b.circularLinkType === \"bottom\") {\n return -1;\n } else {\n return 1;\n }\n }\n }\n function value(d) {\n return d.value;\n }\n function nodeCenter(node) {\n return (node.y0 + node.y1) / 2;\n }\n function linkSourceCenter(link) {\n return nodeCenter(link.source);\n }\n function linkTargetCenter(link) {\n return nodeCenter(link.target);\n }\n function defaultId(d) {\n return d.index;\n }\n function defaultNodes(graph) {\n return graph.nodes;\n }\n function defaultLinks(graph) {\n return graph.links;\n }\n function find(nodeById, id) {\n var node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n }\n function getNodeID(node, id) {\n return id(node);\n }\n var verticalMargin = 25;\n var baseRadius = 10;\n var scale = 0.3;\n function sankeyCircular() {\n var x0 = 0, y0 = 0, x1 = 1, y1 = 1, dx = 24, py, id = defaultId, align = justify, nodes = defaultNodes, links = defaultLinks, iterations = 32, circularLinkGap = 2, paddingRatio, sortNodes = null;\n function sankeyCircular2() {\n var graph = {\n nodes: nodes.apply(null, arguments),\n links: links.apply(null, arguments)\n // Process the graph's nodes and links, setting their positions\n // 1. Associate the nodes with their respective links, and vice versa\n };\n computeNodeLinks(graph);\n identifyCircles(graph, id, sortNodes);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n selectCircularLinkTypes(graph, id);\n computeNodeBreadths(graph, iterations, id);\n computeLinkBreadths(graph);\n var linkSortingIterations = 4;\n for (var iteration = 0; iteration < linkSortingIterations; iteration++) {\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n resolveNodeLinkOverlaps(graph, y0, y1, id);\n sortSourceLinks(graph, y1, id);\n sortTargetLinks(graph, y1, id);\n }\n fillHeight(graph, y0, y1);\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n }\n sankeyCircular2.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : id;\n };\n sankeyCircular2.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : align;\n };\n sankeyCircular2.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankeyCircular2) : dx;\n };\n sankeyCircular2.nodePadding = function(_) {\n return arguments.length ? (py = +_, sankeyCircular2) : py;\n };\n sankeyCircular2.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : nodes;\n };\n sankeyCircular2.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankeyCircular2) : links;\n };\n sankeyCircular2.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankeyCircular2) : [x1 - x0, y1 - y0];\n };\n sankeyCircular2.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankeyCircular2) : [[x0, y0], [x1, y1]];\n };\n sankeyCircular2.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankeyCircular2) : iterations;\n };\n sankeyCircular2.circularLinkGap = function(_) {\n return arguments.length ? (circularLinkGap = +_, sankeyCircular2) : circularLinkGap;\n };\n sankeyCircular2.nodePaddingRatio = function(_) {\n return arguments.length ? (paddingRatio = +_, sankeyCircular2) : paddingRatio;\n };\n sankeyCircular2.sortNodes = function(_) {\n return arguments.length ? (sortNodes = _, sankeyCircular2) : sortNodes;\n };\n sankeyCircular2.update = function(graph) {\n selectCircularLinkTypes(graph, id);\n computeLinkBreadths(graph);\n graph.links.forEach(function(link) {\n if (link.circular) {\n link.circularLinkType = link.y0 + link.y1 < y1 ? \"top\" : \"bottom\";\n link.source.circularLinkType = link.circularLinkType;\n link.target.circularLinkType = link.circularLinkType;\n }\n });\n sortSourceLinks(graph, y1, id, false);\n sortTargetLinks(graph, y1, id);\n addCircularPathData(graph, circularLinkGap, y1, id);\n return graph;\n };\n function computeNodeLinks(graph) {\n graph.nodes.forEach(function(node, i) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n });\n var nodeById = d3Collection.map(graph.nodes, id);\n graph.links.forEach(function(link, i) {\n link.index = i;\n var source = link.source;\n var target = link.target;\n if ((typeof source === \"undefined\" ? \"undefined\" : _typeof(source)) !== \"object\") {\n source = link.source = find(nodeById, source);\n }\n if ((typeof target === \"undefined\" ? \"undefined\" : _typeof(target)) !== \"object\") {\n target = link.target = find(nodeById, target);\n }\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n });\n return graph;\n }\n function computeNodeValues(graph) {\n graph.nodes.forEach(function(node) {\n node.partOfCycle = false;\n node.value = Math.max(d3Array.sum(node.sourceLinks, value), d3Array.sum(node.targetLinks, value));\n node.sourceLinks.forEach(function(link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n node.targetLinks.forEach(function(link) {\n if (link.circular) {\n node.partOfCycle = true;\n node.circularLinkType = link.circularLinkType;\n }\n });\n });\n }\n function getCircleMargins(graph) {\n var totalTopLinksWidth = 0, totalBottomLinksWidth = 0, totalRightLinksWidth = 0, totalLeftLinksWidth = 0;\n var maxColumn = d3Array.max(graph.nodes, function(node) {\n return node.column;\n });\n graph.links.forEach(function(link) {\n if (link.circular) {\n if (link.circularLinkType == \"top\") {\n totalTopLinksWidth = totalTopLinksWidth + link.width;\n } else {\n totalBottomLinksWidth = totalBottomLinksWidth + link.width;\n }\n if (link.target.column == 0) {\n totalLeftLinksWidth = totalLeftLinksWidth + link.width;\n }\n if (link.source.column == maxColumn) {\n totalRightLinksWidth = totalRightLinksWidth + link.width;\n }\n }\n });\n totalTopLinksWidth = totalTopLinksWidth > 0 ? totalTopLinksWidth + verticalMargin + baseRadius : totalTopLinksWidth;\n totalBottomLinksWidth = totalBottomLinksWidth > 0 ? totalBottomLinksWidth + verticalMargin + baseRadius : totalBottomLinksWidth;\n totalRightLinksWidth = totalRightLinksWidth > 0 ? totalRightLinksWidth + verticalMargin + baseRadius : totalRightLinksWidth;\n totalLeftLinksWidth = totalLeftLinksWidth > 0 ? totalLeftLinksWidth + verticalMargin + baseRadius : totalLeftLinksWidth;\n return { \"top\": totalTopLinksWidth, \"bottom\": totalBottomLinksWidth, \"left\": totalLeftLinksWidth, \"right\": totalRightLinksWidth };\n }\n function scaleSankeySize(graph, margin) {\n var maxColumn = d3Array.max(graph.nodes, function(node) {\n return node.column;\n });\n var currentWidth = x1 - x0;\n var currentHeight = y1 - y0;\n var newWidth = currentWidth + margin.right + margin.left;\n var newHeight = currentHeight + margin.top + margin.bottom;\n var scaleX = currentWidth / newWidth;\n var scaleY = currentHeight / newHeight;\n x0 = x0 * scaleX + margin.left;\n x1 = margin.right == 0 ? x1 : x1 * scaleX;\n y0 = y0 * scaleY + margin.top;\n y1 = y1 * scaleY;\n graph.nodes.forEach(function(node) {\n node.x0 = x0 + node.column * ((x1 - x0 - dx) / maxColumn);\n node.x1 = node.x0 + dx;\n });\n return scaleY;\n }\n function computeNodeDepths(graph) {\n var nodes2, next, x;\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.depth = x;\n node.sourceLinks.forEach(function(link) {\n if (next.indexOf(link.target) < 0 && !link.circular) {\n next.push(link.target);\n }\n });\n });\n }\n for (nodes2 = graph.nodes, next = [], x = 0; nodes2.length; ++x, nodes2 = next, next = []) {\n nodes2.forEach(function(node) {\n node.height = x;\n node.targetLinks.forEach(function(link) {\n if (next.indexOf(link.source) < 0 && !link.circular) {\n next.push(link.source);\n }\n });\n });\n }\n graph.nodes.forEach(function(node) {\n node.column = Math.floor(align.call(null, node, x));\n });\n }\n function computeNodeBreadths(graph, iterations2, id2) {\n var columns = d3Collection.nest().key(function(d) {\n return d.column;\n }).sortKeys(d3Array.ascending).entries(graph.nodes).map(function(d) {\n return d.values;\n });\n initializeNodeBreadth(id2);\n resolveCollisions();\n for (var alpha = 1, n = iterations2; n > 0; --n) {\n relaxLeftAndRight(alpha *= 0.99, id2);\n resolveCollisions();\n }\n function initializeNodeBreadth(id3) {\n if (paddingRatio) {\n var padding = Infinity;\n columns.forEach(function(nodes2) {\n var thisPadding = y1 * paddingRatio / (nodes2.length + 1);\n padding = thisPadding < padding ? thisPadding : padding;\n });\n py = padding;\n }\n var ky = d3Array.min(columns, function(nodes2) {\n return (y1 - y0 - (nodes2.length - 1) * py) / d3Array.sum(nodes2, value);\n });\n ky = ky * scale;\n graph.links.forEach(function(link) {\n link.width = link.value * ky;\n });\n var margin = getCircleMargins(graph);\n var ratio = scaleSankeySize(graph, margin);\n ky = ky * ratio;\n graph.links.forEach(function(link) {\n link.width = link.value * ky;\n });\n columns.forEach(function(nodes2) {\n var nodesLength = nodes2.length;\n nodes2.forEach(function(node, i) {\n if (node.depth == columns.length - 1 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.depth == 0 && nodesLength == 1) {\n node.y0 = y1 / 2 - node.value * ky;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.partOfCycle) {\n if (numberOfNonSelfLinkingCycles(node, id3) == 0) {\n node.y0 = y1 / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n } else if (node.circularLinkType == \"top\") {\n node.y0 = y0 + i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = y1 - node.value * ky - i;\n node.y1 = node.y0 + node.value * ky;\n }\n } else {\n if (margin.top == 0 || margin.bottom == 0) {\n node.y0 = (y1 - y0) / nodesLength * i;\n node.y1 = node.y0 + node.value * ky;\n } else {\n node.y0 = (y1 - y0) / 2 - nodesLength / 2 + i;\n node.y1 = node.y0 + node.value * ky;\n }\n }\n });\n });\n }\n function relaxLeftAndRight(alpha2, id3) {\n var columnsLength = columns.length;\n columns.forEach(function(nodes2) {\n var n2 = nodes2.length;\n var depth = nodes2[0].depth;\n nodes2.forEach(function(node) {\n var nodeHeight;\n if (node.sourceLinks.length || node.targetLinks.length) {\n if (node.partOfCycle && numberOfNonSelfLinkingCycles(node, id3) > 0) ;\n else if (depth == 0 && n2 == 1) {\n nodeHeight = node.y1 - node.y0;\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else if (depth == columnsLength - 1 && n2 == 1) {\n nodeHeight = node.y1 - node.y0;\n node.y0 = y1 / 2 - nodeHeight / 2;\n node.y1 = y1 / 2 + nodeHeight / 2;\n } else {\n var avg = 0;\n var avgTargetY = d3Array.mean(node.sourceLinks, linkTargetCenter);\n var avgSourceY = d3Array.mean(node.targetLinks, linkSourceCenter);\n if (avgTargetY && avgSourceY) {\n avg = (avgTargetY + avgSourceY) / 2;\n } else {\n avg = avgTargetY || avgSourceY;\n }\n var dy = (avg - nodeCenter(node)) * alpha2;\n node.y0 += dy;\n node.y1 += dy;\n }\n }\n });\n });\n }\n function resolveCollisions() {\n columns.forEach(function(nodes2) {\n var node, dy, y = y0, n2 = nodes2.length, i;\n nodes2.sort(ascendingBreadth);\n for (i = 0; i < n2; ++i) {\n node = nodes2[i];\n dy = y - node.y0;\n if (dy > 0) {\n node.y0 += dy;\n node.y1 += dy;\n }\n y = node.y1 + py;\n }\n dy = y - py - y1;\n if (dy > 0) {\n y = node.y0 -= dy, node.y1 -= dy;\n for (i = n2 - 2; i >= 0; --i) {\n node = nodes2[i];\n dy = node.y1 + py - y;\n if (dy > 0) node.y0 -= dy, node.y1 -= dy;\n y = node.y0;\n }\n }\n });\n }\n }\n function computeLinkBreadths(graph) {\n graph.nodes.forEach(function(node) {\n node.sourceLinks.sort(ascendingTargetBreadth);\n node.targetLinks.sort(ascendingSourceBreadth);\n });\n graph.nodes.forEach(function(node) {\n var y02 = node.y0;\n var y12 = y02;\n var y0cycle = node.y1;\n var y1cycle = y0cycle;\n node.sourceLinks.forEach(function(link) {\n if (link.circular) {\n link.y0 = y0cycle - link.width / 2;\n y0cycle = y0cycle - link.width;\n } else {\n link.y0 = y02 + link.width / 2;\n y02 += link.width;\n }\n });\n node.targetLinks.forEach(function(link) {\n if (link.circular) {\n link.y1 = y1cycle - link.width / 2;\n y1cycle = y1cycle - link.width;\n } else {\n link.y1 = y12 + link.width / 2;\n y12 += link.width;\n }\n });\n });\n }\n return sankeyCircular2;\n }\n function identifyCircles(graph, id, sortNodes) {\n var circularLinkID = 0;\n if (sortNodes === null) {\n var adjList = [];\n for (var i = 0; i < graph.links.length; i++) {\n var link = graph.links[i];\n var source = link.source.index;\n var target = link.target.index;\n if (!adjList[source]) adjList[source] = [];\n if (!adjList[target]) adjList[target] = [];\n if (adjList[source].indexOf(target) === -1) adjList[source].push(target);\n }\n var cycles = findCircuits(adjList);\n cycles.sort(function(a, b) {\n return a.length - b.length;\n });\n var circularLinks = {};\n for (i = 0; i < cycles.length; i++) {\n var cycle = cycles[i];\n var last = cycle.slice(-2);\n if (!circularLinks[last[0]]) circularLinks[last[0]] = {};\n circularLinks[last[0]][last[1]] = true;\n }\n graph.links.forEach(function(link2) {\n var target2 = link2.target.index;\n var source2 = link2.source.index;\n if (target2 === source2 || circularLinks[source2] && circularLinks[source2][target2]) {\n link2.circular = true;\n link2.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n } else {\n link2.circular = false;\n }\n });\n } else {\n graph.links.forEach(function(link2) {\n if (link2.source[sortNodes] < link2.target[sortNodes]) {\n link2.circular = false;\n } else {\n link2.circular = true;\n link2.circularLinkID = circularLinkID;\n circularLinkID = circularLinkID + 1;\n }\n });\n }\n }\n function selectCircularLinkTypes(graph, id) {\n var numberOfTops = 0;\n var numberOfBottoms = 0;\n graph.links.forEach(function(link) {\n if (link.circular) {\n if (link.source.circularLinkType || link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType ? link.source.circularLinkType : link.target.circularLinkType;\n } else {\n link.circularLinkType = numberOfTops < numberOfBottoms ? \"top\" : \"bottom\";\n }\n if (link.circularLinkType == \"top\") {\n numberOfTops = numberOfTops + 1;\n } else {\n numberOfBottoms = numberOfBottoms + 1;\n }\n graph.nodes.forEach(function(node) {\n if (getNodeID(node, id) == getNodeID(link.source, id) || getNodeID(node, id) == getNodeID(link.target, id)) {\n node.circularLinkType = link.circularLinkType;\n }\n });\n }\n });\n graph.links.forEach(function(link) {\n if (link.circular) {\n if (link.source.circularLinkType == link.target.circularLinkType) {\n link.circularLinkType = link.source.circularLinkType;\n }\n if (selfLinking(link, id)) {\n link.circularLinkType = link.source.circularLinkType;\n }\n }\n });\n }\n function linkAngle(link) {\n var adjacent = Math.abs(link.y1 - link.y0);\n var opposite = Math.abs(link.target.x0 - link.source.x1);\n return Math.atan(opposite / adjacent);\n }\n function circularLinksCross(link1, link2) {\n if (link1.source.column < link2.target.column) {\n return false;\n } else if (link1.target.column > link2.source.column) {\n return false;\n } else {\n return true;\n }\n }\n function numberOfNonSelfLinkingCycles(node, id) {\n var sourceCount = 0;\n node.sourceLinks.forEach(function(l) {\n sourceCount = l.circular && !selfLinking(l, id) ? sourceCount + 1 : sourceCount;\n });\n var targetCount = 0;\n node.targetLinks.forEach(function(l) {\n targetCount = l.circular && !selfLinking(l, id) ? targetCount + 1 : targetCount;\n });\n return sourceCount + targetCount;\n }\n function onlyCircularLink(link) {\n var nodeSourceLinks = link.source.sourceLinks;\n var sourceCount = 0;\n nodeSourceLinks.forEach(function(l) {\n sourceCount = l.circular ? sourceCount + 1 : sourceCount;\n });\n var nodeTargetLinks = link.target.targetLinks;\n var targetCount = 0;\n nodeTargetLinks.forEach(function(l) {\n targetCount = l.circular ? targetCount + 1 : targetCount;\n });\n if (sourceCount > 1 || targetCount > 1) {\n return false;\n } else {\n return true;\n }\n }\n function calcVerticalBuffer(links, circularLinkGap, id) {\n links.sort(sortLinkColumnAscending);\n links.forEach(function(link, i) {\n var buffer = 0;\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n } else {\n var j = 0;\n for (j; j < i; j++) {\n if (circularLinksCross(links[i], links[j])) {\n var bufferOverThisLink = links[j].circularPathData.verticalBuffer + links[j].width / 2 + circularLinkGap;\n buffer = bufferOverThisLink > buffer ? bufferOverThisLink : buffer;\n }\n }\n link.circularPathData.verticalBuffer = buffer + link.width / 2;\n }\n });\n return links;\n }\n function addCircularPathData(graph, circularLinkGap, y1, id) {\n var buffer = 5;\n var minY = d3Array.min(graph.links, function(link) {\n return link.source.y0;\n });\n graph.links.forEach(function(link) {\n if (link.circular) {\n link.circularPathData = {};\n }\n });\n var topLinks = graph.links.filter(function(l) {\n return l.circularLinkType == \"top\";\n });\n calcVerticalBuffer(topLinks, circularLinkGap, id);\n var bottomLinks = graph.links.filter(function(l) {\n return l.circularLinkType == \"bottom\";\n });\n calcVerticalBuffer(bottomLinks, circularLinkGap, id);\n graph.links.forEach(function(link) {\n if (link.circular) {\n link.circularPathData.arcRadius = link.width + baseRadius;\n link.circularPathData.leftNodeBuffer = buffer;\n link.circularPathData.rightNodeBuffer = buffer;\n link.circularPathData.sourceWidth = link.source.x1 - link.source.x0;\n link.circularPathData.sourceX = link.source.x0 + link.circularPathData.sourceWidth;\n link.circularPathData.targetX = link.target.x0;\n link.circularPathData.sourceY = link.y0;\n link.circularPathData.targetY = link.y1;\n if (selfLinking(link, id) && onlyCircularLink(link)) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2;\n if (link.circularLinkType == \"bottom\") {\n link.circularPathData.verticalFullExtent = link.source.y1 + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n link.circularPathData.verticalFullExtent = link.source.y0 - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n } else {\n var thisColumn = link.source.column;\n var thisCircularLinkType = link.circularLinkType;\n var sameColumnLinks = graph.links.filter(function(l) {\n return l.source.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == \"bottom\") {\n sameColumnLinks.sort(sortLinkSourceYDescending);\n } else {\n sameColumnLinks.sort(sortLinkSourceYAscending);\n }\n var radiusOffset = 0;\n sameColumnLinks.forEach(function(l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.leftSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.leftLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n thisColumn = link.target.column;\n sameColumnLinks = graph.links.filter(function(l) {\n return l.target.column == thisColumn && l.circularLinkType == thisCircularLinkType;\n });\n if (link.circularLinkType == \"bottom\") {\n sameColumnLinks.sort(sortLinkTargetYDescending);\n } else {\n sameColumnLinks.sort(sortLinkTargetYAscending);\n }\n radiusOffset = 0;\n sameColumnLinks.forEach(function(l, i) {\n if (l.circularLinkID == link.circularLinkID) {\n link.circularPathData.rightSmallArcRadius = baseRadius + link.width / 2 + radiusOffset;\n link.circularPathData.rightLargeArcRadius = baseRadius + link.width / 2 + i * circularLinkGap + radiusOffset;\n }\n radiusOffset = radiusOffset + l.width;\n });\n if (link.circularLinkType == \"bottom\") {\n link.circularPathData.verticalFullExtent = Math.max(y1, link.source.y1, link.target.y1) + verticalMargin + link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent - link.circularPathData.rightLargeArcRadius;\n } else {\n link.circularPathData.verticalFullExtent = minY - verticalMargin - link.circularPathData.verticalBuffer;\n link.circularPathData.verticalLeftInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.leftLargeArcRadius;\n link.circularPathData.verticalRightInnerExtent = link.circularPathData.verticalFullExtent + link.circularPathData.rightLargeArcRadius;\n }\n }\n link.circularPathData.leftInnerExtent = link.circularPathData.sourceX + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightInnerExtent = link.circularPathData.targetX - link.circularPathData.rightNodeBuffer;\n link.circularPathData.leftFullExtent = link.circularPathData.sourceX + link.circularPathData.leftLargeArcRadius + link.circularPathData.leftNodeBuffer;\n link.circularPathData.rightFullExtent = link.circularPathData.targetX - link.circularPathData.rightLargeArcRadius - link.circularPathData.rightNodeBuffer;\n }\n if (link.circular) {\n link.path = createCircularPathString(link);\n } else {\n var normalPath = d3Shape.linkHorizontal().source(function(d) {\n var x = d.source.x0 + (d.source.x1 - d.source.x0);\n var y = d.y0;\n return [x, y];\n }).target(function(d) {\n var x = d.target.x0;\n var y = d.y1;\n return [x, y];\n });\n link.path = normalPath(link);\n }\n });\n }\n function createCircularPathString(link) {\n var pathString = \"\";\n if (link.circularLinkType == \"top\") {\n pathString = // start at the right of the source node\n \"M\" + link.circularPathData.sourceX + \" \" + link.circularPathData.sourceY + \" L\" + link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.sourceY + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftSmallArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + \" \" + (link.circularPathData.sourceY - link.circularPathData.leftSmallArcRadius) + \" L\" + link.circularPathData.leftFullExtent + \" \" + link.circularPathData.verticalLeftInnerExtent + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftLargeArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" L\" + link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightLargeArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + \" \" + link.circularPathData.verticalRightInnerExtent + \" L\" + link.circularPathData.rightFullExtent + \" \" + (link.circularPathData.targetY - link.circularPathData.rightSmallArcRadius) + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightSmallArcRadius + \" 0 0 0 \" + // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.targetY + \" L\" + link.circularPathData.targetX + \" \" + link.circularPathData.targetY;\n } else {\n pathString = // start at the right of the source node\n \"M\" + link.circularPathData.sourceX + \" \" + link.circularPathData.sourceY + \" L\" + link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.sourceY + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftSmallArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.leftFullExtent + \" \" + (link.circularPathData.sourceY + link.circularPathData.leftSmallArcRadius) + \" L\" + link.circularPathData.leftFullExtent + \" \" + link.circularPathData.verticalLeftInnerExtent + \" A\" + link.circularPathData.leftLargeArcRadius + \" \" + link.circularPathData.leftLargeArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.leftInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" L\" + link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.verticalFullExtent + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightLargeArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.rightFullExtent + \" \" + link.circularPathData.verticalRightInnerExtent + \" L\" + link.circularPathData.rightFullExtent + \" \" + (link.circularPathData.targetY + link.circularPathData.rightSmallArcRadius) + \" A\" + link.circularPathData.rightLargeArcRadius + \" \" + link.circularPathData.rightSmallArcRadius + \" 0 0 1 \" + // End of arc X //End of arc Y\n link.circularPathData.rightInnerExtent + \" \" + link.circularPathData.targetY + \" L\" + link.circularPathData.targetX + \" \" + link.circularPathData.targetY;\n }\n return pathString;\n }\n function sortLinkColumnAscending(link1, link2) {\n if (linkColumnDistance(link1) == linkColumnDistance(link2)) {\n return link1.circularLinkType == \"bottom\" ? sortLinkSourceYDescending(link1, link2) : sortLinkSourceYAscending(link1, link2);\n } else {\n return linkColumnDistance(link2) - linkColumnDistance(link1);\n }\n }\n function sortLinkSourceYAscending(link1, link2) {\n return link1.y0 - link2.y0;\n }\n function sortLinkSourceYDescending(link1, link2) {\n return link2.y0 - link1.y0;\n }\n function sortLinkTargetYAscending(link1, link2) {\n return link1.y1 - link2.y1;\n }\n function sortLinkTargetYDescending(link1, link2) {\n return link2.y1 - link1.y1;\n }\n function linkColumnDistance(link) {\n return link.target.column - link.source.column;\n }\n function linkXLength(link) {\n return link.target.x0 - link.source.x1;\n }\n function linkPerpendicularYToLinkSource(longerLink, shorterLink) {\n var angle = linkAngle(longerLink);\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n var yPerpendicular = incline(longerLink) == \"up\" ? longerLink.y1 + heightFromY1ToPependicular : longerLink.y1 - heightFromY1ToPependicular;\n return yPerpendicular;\n }\n function linkPerpendicularYToLinkTarget(longerLink, shorterLink) {\n var angle = linkAngle(longerLink);\n var heightFromY1ToPependicular = linkXLength(shorterLink) / Math.tan(angle);\n var yPerpendicular = incline(longerLink) == \"up\" ? longerLink.y1 - heightFromY1ToPependicular : longerLink.y1 + heightFromY1ToPependicular;\n return yPerpendicular;\n }\n function resolveNodeLinkOverlaps(graph, y0, y1, id) {\n graph.links.forEach(function(link) {\n if (link.circular) {\n return;\n }\n if (link.target.column - link.source.column > 1) {\n var columnToTest = link.source.column + 1;\n var maxColumnToTest = link.target.column - 1;\n var i = 1;\n var numberOfColumnsToTest = maxColumnToTest - columnToTest + 1;\n for (i = 1; columnToTest <= maxColumnToTest; columnToTest++, i++) {\n graph.nodes.forEach(function(node) {\n if (node.column == columnToTest) {\n var t = i / (numberOfColumnsToTest + 1);\n var B0_t = Math.pow(1 - t, 3);\n var B1_t = 3 * t * Math.pow(1 - t, 2);\n var B2_t = 3 * Math.pow(t, 2) * (1 - t);\n var B3_t = Math.pow(t, 3);\n var py_t = B0_t * link.y0 + B1_t * link.y0 + B2_t * link.y1 + B3_t * link.y1;\n var linkY0AtColumn = py_t - link.width / 2;\n var linkY1AtColumn = py_t + link.width / 2;\n var dy;\n if (linkY0AtColumn > node.y0 && linkY0AtColumn < node.y1) {\n dy = node.y1 - linkY0AtColumn + 10;\n dy = node.circularLinkType == \"bottom\" ? dy : -dy;\n node = adjustNodeHeight(node, dy, y0, y1);\n graph.nodes.forEach(function(otherNode) {\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (nodesOverlap(node, otherNode)) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY1AtColumn > node.y0 && linkY1AtColumn < node.y1) {\n dy = linkY1AtColumn - node.y0 + 10;\n node = adjustNodeHeight(node, dy, y0, y1);\n graph.nodes.forEach(function(otherNode) {\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n } else if (linkY0AtColumn < node.y0 && linkY1AtColumn > node.y1) {\n dy = linkY1AtColumn - node.y0 + 10;\n node = adjustNodeHeight(node, dy, y0, y1);\n graph.nodes.forEach(function(otherNode) {\n if (getNodeID(otherNode, id) == getNodeID(node, id) || otherNode.column != node.column) {\n return;\n }\n if (otherNode.y0 < node.y1 && otherNode.y1 > node.y1) {\n adjustNodeHeight(otherNode, dy, y0, y1);\n }\n });\n }\n }\n });\n }\n }\n });\n }\n function nodesOverlap(nodeA, nodeB) {\n if (nodeA.y0 > nodeB.y0 && nodeA.y0 < nodeB.y1) {\n return true;\n } else if (nodeA.y1 > nodeB.y0 && nodeA.y1 < nodeB.y1) {\n return true;\n } else if (nodeA.y0 < nodeB.y0 && nodeA.y1 > nodeB.y1) {\n return true;\n } else {\n return false;\n }\n }\n function adjustNodeHeight(node, dy, sankeyY0, sankeyY1) {\n if (node.y0 + dy >= sankeyY0 && node.y1 + dy <= sankeyY1) {\n node.y0 = node.y0 + dy;\n node.y1 = node.y1 + dy;\n node.targetLinks.forEach(function(l) {\n l.y1 = l.y1 + dy;\n });\n node.sourceLinks.forEach(function(l) {\n l.y0 = l.y0 + dy;\n });\n }\n return node;\n }\n function sortSourceLinks(graph, y1, id, moveNodes) {\n graph.nodes.forEach(function(node) {\n if (moveNodes && node.y + (node.y1 - node.y0) > y1) {\n node.y = node.y - (node.y + (node.y1 - node.y0) - y1);\n }\n var nodesSourceLinks = graph.links.filter(function(l) {\n return getNodeID(l.source, id) == getNodeID(node, id);\n });\n var nodeSourceLinksLength = nodesSourceLinks.length;\n if (nodeSourceLinksLength > 1) {\n nodesSourceLinks.sort(function(link1, link2) {\n if (!link1.circular && !link2.circular) {\n if (link1.target.column == link2.target.column) {\n return link1.y1 - link2.y1;\n } else if (!sameInclines(link1, link2)) {\n return link1.y1 - link2.y1;\n } else {\n if (link1.target.column > link2.target.column) {\n var link2Adj = linkPerpendicularYToLinkTarget(link2, link1);\n return link1.y1 - link2Adj;\n }\n if (link2.target.column > link1.target.column) {\n var link1Adj = linkPerpendicularYToLinkTarget(link1, link2);\n return link1Adj - link2.y1;\n }\n }\n }\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == \"top\" ? 1 : -1;\n }\n if (link1.circular && link2.circular) {\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"top\") {\n if (link1.target.column === link2.target.column) {\n return link1.target.y1 - link2.target.y1;\n } else {\n return link2.target.column - link1.target.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"bottom\") {\n if (link1.target.column === link2.target.column) {\n return link2.target.y1 - link1.target.y1;\n } else {\n return link1.target.column - link2.target.column;\n }\n } else {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n }\n }\n });\n }\n var ySourceOffset = node.y0;\n nodesSourceLinks.forEach(function(link) {\n link.y0 = ySourceOffset + link.width / 2;\n ySourceOffset = ySourceOffset + link.width;\n });\n nodesSourceLinks.forEach(function(link, i) {\n if (link.circularLinkType == \"bottom\") {\n var j = i + 1;\n var offsetFromBottom = 0;\n for (j; j < nodeSourceLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesSourceLinks[j].width;\n }\n link.y0 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n }\n function sortTargetLinks(graph, y1, id) {\n graph.nodes.forEach(function(node) {\n var nodesTargetLinks = graph.links.filter(function(l) {\n return getNodeID(l.target, id) == getNodeID(node, id);\n });\n var nodesTargetLinksLength = nodesTargetLinks.length;\n if (nodesTargetLinksLength > 1) {\n nodesTargetLinks.sort(function(link1, link2) {\n if (!link1.circular && !link2.circular) {\n if (link1.source.column == link2.source.column) {\n return link1.y0 - link2.y0;\n } else if (!sameInclines(link1, link2)) {\n return link1.y0 - link2.y0;\n } else {\n if (link2.source.column < link1.source.column) {\n var link2Adj = linkPerpendicularYToLinkSource(link2, link1);\n return link1.y0 - link2Adj;\n }\n if (link1.source.column < link2.source.column) {\n var link1Adj = linkPerpendicularYToLinkSource(link1, link2);\n return link1Adj - link2.y0;\n }\n }\n }\n if (link1.circular && !link2.circular) {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n } else if (link2.circular && !link1.circular) {\n return link2.circularLinkType == \"top\" ? 1 : -1;\n }\n if (link1.circular && link2.circular) {\n if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"top\") {\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n return link1.source.column - link2.source.column;\n }\n } else if (link1.circularLinkType === link2.circularLinkType && link1.circularLinkType == \"bottom\") {\n if (link1.source.column === link2.source.column) {\n return link1.source.y1 - link2.source.y1;\n } else {\n return link2.source.column - link1.source.column;\n }\n } else {\n return link1.circularLinkType == \"top\" ? -1 : 1;\n }\n }\n });\n }\n var yTargetOffset = node.y0;\n nodesTargetLinks.forEach(function(link) {\n link.y1 = yTargetOffset + link.width / 2;\n yTargetOffset = yTargetOffset + link.width;\n });\n nodesTargetLinks.forEach(function(link, i) {\n if (link.circularLinkType == \"bottom\") {\n var j = i + 1;\n var offsetFromBottom = 0;\n for (j; j < nodesTargetLinksLength; j++) {\n offsetFromBottom = offsetFromBottom + nodesTargetLinks[j].width;\n }\n link.y1 = node.y1 - offsetFromBottom - link.width / 2;\n }\n });\n });\n }\n function sameInclines(link1, link2) {\n return incline(link1) == incline(link2);\n }\n function incline(link) {\n return link.y0 - link.y1 > 0 ? \"up\" : \"down\";\n }\n function selfLinking(link, id) {\n return getNodeID(link.source, id) == getNodeID(link.target, id);\n }\n function fillHeight(graph, y0, y1) {\n var nodes = graph.nodes;\n var links = graph.links;\n var top = false;\n var bottom = false;\n links.forEach(function(link) {\n if (link.circularLinkType == \"top\") {\n top = true;\n } else if (link.circularLinkType == \"bottom\") {\n bottom = true;\n }\n });\n if (top == false || bottom == false) {\n var minY0 = d3Array.min(nodes, function(node) {\n return node.y0;\n });\n var maxY1 = d3Array.max(nodes, function(node) {\n return node.y1;\n });\n var currentHeight = maxY1 - minY0;\n var chartHeight = y1 - y0;\n var ratio = chartHeight / currentHeight;\n nodes.forEach(function(node) {\n var nodeHeight = (node.y1 - node.y0) * ratio;\n node.y0 = (node.y0 - minY0) * ratio;\n node.y1 = node.y0 + nodeHeight;\n });\n links.forEach(function(link) {\n link.y0 = (link.y0 - minY0) * ratio;\n link.y1 = (link.y1 - minY0) * ratio;\n link.width = link.width * ratio;\n });\n }\n }\n exports2.sankeyCircular = sankeyCircular;\n exports2.sankeyCenter = center;\n exports2.sankeyLeft = left;\n exports2.sankeyRight = right;\n exports2.sankeyJustify = justify;\n Object.defineProperty(exports2, \"__esModule\", { value: true });\n });\n }\n });\n\n // src/traces/sankey/constants.js\n var require_constants29 = __commonJS({\n \"src/traces/sankey/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n nodeTextOffsetHorizontal: 4,\n nodeTextOffsetVertical: 3,\n nodePadAcross: 10,\n sankeyIterations: 50,\n forceIterations: 5,\n forceTicksPerFrame: 10,\n duration: 500,\n ease: \"linear\",\n cn: {\n sankey: \"sankey\",\n sankeyLinks: \"sankey-links\",\n sankeyLink: \"sankey-link\",\n sankeyNodeSet: \"sankey-node-set\",\n sankeyNode: \"sankey-node\",\n nodeRect: \"node-rect\",\n nodeLabel: \"node-label\"\n }\n };\n }\n });\n\n // src/traces/sankey/render.js\n var require_render = __commonJS({\n \"src/traces/sankey/render.js\"(exports, module) {\n \"use strict\";\n var d3Force = require_d3_force();\n var interpolateNumber = (init_src2(), __toCommonJS(src_exports)).interpolateNumber;\n var d3 = require_d3();\n var d3Sankey = require_d3_sankey();\n var d3SankeyCircular = require_d3_sankey_circular();\n var c = require_constants29();\n var tinycolor = require_tinycolor();\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var strTranslate = Lib.strTranslate;\n var strRotate = Lib.strRotate;\n var gup = require_gup();\n var keyFun = gup.keyFun;\n var repeat = gup.repeat;\n var unwrap = gup.unwrap;\n var svgTextUtils = require_svg_text_utils();\n var Registry = require_registry();\n var alignmentConstants = require_alignment();\n var CAP_SHIFT = alignmentConstants.CAP_SHIFT;\n var LINE_SPACING = alignmentConstants.LINE_SPACING;\n var TEXTPAD = 3;\n function sankeyModel(layout, d, traceIndex) {\n var calcData = unwrap(d);\n var trace = calcData.trace;\n var domain = trace.domain;\n var horizontal = trace.orientation === \"h\";\n var nodePad = trace.node.pad;\n var nodeThickness = trace.node.thickness;\n var nodeAlign = {\n justify: d3Sankey.sankeyJustify,\n left: d3Sankey.sankeyLeft,\n right: d3Sankey.sankeyRight,\n center: d3Sankey.sankeyCenter\n }[trace.node.align];\n var width = layout.width * (domain.x[1] - domain.x[0]);\n var height = layout.height * (domain.y[1] - domain.y[0]);\n var nodes = calcData._nodes;\n var links = calcData._links;\n var circular = calcData.circular;\n var sankey;\n if (circular) {\n sankey = d3SankeyCircular.sankeyCircular().circularLinkGap(0);\n } else {\n sankey = d3Sankey.sankey();\n }\n sankey.iterations(c.sankeyIterations).size(horizontal ? [width, height] : [height, width]).nodeWidth(nodeThickness).nodePadding(nodePad).nodeId(function(d2) {\n return d2.pointNumber;\n }).nodeAlign(nodeAlign).nodes(nodes).links(links);\n var graph = sankey();\n if (sankey.nodePadding() < nodePad) {\n Lib.warn(\"node.pad was reduced to \", sankey.nodePadding(), \" to fit within the figure.\");\n }\n var i, j, k;\n for (var nodePointNumber in calcData._groupLookup) {\n var groupIndex = parseInt(calcData._groupLookup[nodePointNumber]);\n var groupingNode;\n for (i = 0; i < graph.nodes.length; i++) {\n if (graph.nodes[i].pointNumber === groupIndex) {\n groupingNode = graph.nodes[i];\n break;\n }\n }\n if (!groupingNode) continue;\n var child = {\n pointNumber: parseInt(nodePointNumber),\n x0: groupingNode.x0,\n x1: groupingNode.x1,\n y0: groupingNode.y0,\n y1: groupingNode.y1,\n partOfGroup: true,\n sourceLinks: [],\n targetLinks: []\n };\n graph.nodes.unshift(child);\n groupingNode.childrenNodes.unshift(child);\n }\n function computeLinkConcentrations() {\n for (i = 0; i < graph.nodes.length; i++) {\n var node = graph.nodes[i];\n var flows = {};\n var flowKey;\n var link;\n for (j = 0; j < node.targetLinks.length; j++) {\n link = node.targetLinks[j];\n flowKey = link.source.pointNumber + \":\" + link.target.pointNumber;\n if (!flows.hasOwnProperty(flowKey)) flows[flowKey] = [];\n flows[flowKey].push(link);\n }\n var keys = Object.keys(flows);\n for (j = 0; j < keys.length; j++) {\n flowKey = keys[j];\n var flowLinks = flows[flowKey];\n var total = 0;\n var totalPerLabel = {};\n for (k = 0; k < flowLinks.length; k++) {\n link = flowLinks[k];\n if (!totalPerLabel[link.label]) totalPerLabel[link.label] = 0;\n totalPerLabel[link.label] += link.value;\n total += link.value;\n }\n for (k = 0; k < flowLinks.length; k++) {\n link = flowLinks[k];\n link.flow = {\n value: total,\n labelConcentration: totalPerLabel[link.label] / total,\n concentration: link.value / total,\n links: flowLinks\n };\n if (link.concentrationscale) {\n link.color = tinycolor(link.concentrationscale(link.flow.labelConcentration));\n }\n }\n }\n var totalOutflow = 0;\n for (j = 0; j < node.sourceLinks.length; j++) {\n totalOutflow += node.sourceLinks[j].value;\n }\n for (j = 0; j < node.sourceLinks.length; j++) {\n link = node.sourceLinks[j];\n link.concentrationOut = link.value / totalOutflow;\n }\n var totalInflow = 0;\n for (j = 0; j < node.targetLinks.length; j++) {\n totalInflow += node.targetLinks[j].value;\n }\n for (j = 0; j < node.targetLinks.length; j++) {\n link = node.targetLinks[j];\n link.concenrationIn = link.value / totalInflow;\n }\n }\n }\n computeLinkConcentrations();\n function resolveCollisionsTopToBottom(columns2) {\n columns2.forEach(function(nodes2) {\n var node;\n var dy;\n var y = 0;\n var n = nodes2.length;\n var i2;\n nodes2.sort(function(a, b) {\n return a.y0 - b.y0;\n });\n for (i2 = 0; i2 < n; ++i2) {\n node = nodes2[i2];\n if (node.y0 >= y) {\n } else {\n dy = y - node.y0;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n }\n y = node.y1 + nodePad;\n }\n });\n }\n function snapToColumns(nodes2) {\n var orderedNodes = nodes2.map(function(n, i2) {\n return {\n x0: n.x0,\n index: i2\n };\n }).sort(function(a, b) {\n return a.x0 - b.x0;\n });\n var columns2 = [];\n var colNumber = -1;\n var colX;\n var lastX = -Infinity;\n var dx;\n for (i = 0; i < orderedNodes.length; i++) {\n var node = nodes2[orderedNodes[i].index];\n if (node.x0 > lastX + nodeThickness) {\n colNumber += 1;\n colX = node.x0;\n }\n lastX = node.x0;\n if (!columns2[colNumber]) columns2[colNumber] = [];\n columns2[colNumber].push(node);\n dx = colX - node.x0;\n node.x0 += dx, node.x1 += dx;\n }\n return columns2;\n }\n if (trace.node.x.length && trace.node.y.length) {\n for (i = 0; i < Math.min(trace.node.x.length, trace.node.y.length, graph.nodes.length); i++) {\n if (trace.node.x[i] && trace.node.y[i]) {\n var pos = [trace.node.x[i] * width, trace.node.y[i] * height];\n graph.nodes[i].x0 = pos[0] - nodeThickness / 2;\n graph.nodes[i].x1 = pos[0] + nodeThickness / 2;\n var nodeHeight = graph.nodes[i].y1 - graph.nodes[i].y0;\n graph.nodes[i].y0 = pos[1] - nodeHeight / 2;\n graph.nodes[i].y1 = pos[1] + nodeHeight / 2;\n }\n }\n if (trace.arrangement === \"snap\") {\n nodes = graph.nodes;\n var columns = snapToColumns(nodes);\n resolveCollisionsTopToBottom(columns);\n }\n sankey.update(graph);\n }\n return {\n circular,\n key: traceIndex,\n trace,\n guid: Lib.randstr(),\n horizontal,\n width,\n height,\n nodePad: trace.node.pad,\n nodeLineColor: trace.node.line.color,\n nodeLineWidth: trace.node.line.width,\n linkLineColor: trace.link.line.color,\n linkLineWidth: trace.link.line.width,\n linkArrowLength: trace.link.arrowlen,\n valueFormat: trace.valueformat,\n valueSuffix: trace.valuesuffix,\n textFont: trace.textfont,\n translateX: domain.x[0] * layout.width + layout.margin.l,\n translateY: layout.height - domain.y[1] * layout.height + layout.margin.t,\n dragParallel: horizontal ? height : width,\n dragPerpendicular: horizontal ? width : height,\n arrangement: trace.arrangement,\n sankey,\n graph,\n forceLayouts: {},\n interactionState: {\n dragInProgress: false,\n hovered: false\n }\n };\n }\n function linkModel(d, l, i) {\n var tc = tinycolor(l.color);\n var htc = tinycolor(l.hovercolor);\n var basicKey = l.source.label + \"|\" + l.target.label;\n var key = basicKey + \"__\" + i;\n l.trace = d.trace;\n l.curveNumber = d.trace.index;\n return {\n circular: d.circular,\n key,\n traceId: d.key,\n pointNumber: l.pointNumber,\n link: l,\n tinyColorHue: Color2.tinyRGB(tc),\n tinyColorAlpha: tc.getAlpha(),\n tinyColorHoverHue: Color2.tinyRGB(htc),\n tinyColorHoverAlpha: htc.getAlpha(),\n linkPath,\n linkLineColor: d.linkLineColor,\n linkLineWidth: d.linkLineWidth,\n linkArrowLength: d.linkArrowLength,\n valueFormat: d.valueFormat,\n valueSuffix: d.valueSuffix,\n sankey: d.sankey,\n parent: d,\n interactionState: d.interactionState,\n flow: l.flow\n };\n }\n function createCircularClosedPathString(link, arrowLen) {\n var pathString = \"\";\n var offset = link.width / 2;\n var coords = link.circularPathData;\n var isSourceBeforeTarget = coords.sourceX + coords.verticalBuffer < coords.targetX;\n var isPathOverlapped = coords.rightFullExtent - coords.rightLargeArcRadius - arrowLen <= coords.leftFullExtent - offset;\n var diff = Math.abs(coords.rightFullExtent - coords.leftFullExtent - offset) < offset;\n if (link.circularLinkType === \"top\") {\n pathString = // start at the left of the target node\n \"M \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY + offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY + offset) + \"A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightSmallArcRadius + offset) + \" 0 0 1 \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + (coords.targetY - coords.rightSmallArcRadius) + \"L \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius + offset)) + \" L \" + (coords.rightFullExtent + offset - (coords.rightLargeArcRadius - offset) - arrowLen) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius + offset)) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftLargeArcRadius + offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalRightInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightLargeArcRadius - offset) + \" 0 0 0 \" + (coords.rightFullExtent - offset - arrowLen - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius - offset)) + \" L \" + (coords.leftFullExtent + offset + (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalRightInnerExtent - (coords.rightLargeArcRadius - offset)) + \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftLargeArcRadius - offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n } else {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 1 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftLargeArcRadius + offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n }\n pathString += \" L \" + (coords.leftFullExtent + offset) + \" \" + (coords.sourceY - coords.leftSmallArcRadius) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 1 \" + coords.leftInnerExtent + \" \" + (coords.sourceY + offset) + \" L \" + coords.sourceX + \" \" + (coords.sourceY + offset) + // Walking back\n \" L \" + coords.sourceX + \" \" + (coords.sourceY - offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.sourceY - offset) + \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftSmallArcRadius - offset) + \" 0 0 0 \" + (coords.leftFullExtent - offset) + \" \" + (coords.sourceY - coords.leftSmallArcRadius) + \" L \" + (coords.leftFullExtent - offset) + \" \" + coords.verticalLeftInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent - offset) + \" \" + (coords.verticalFullExtent + offset) + \"L\" + (coords.rightFullExtent + offset - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 0 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else {\n pathString += \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftLargeArcRadius - offset) + \" 0 0 0 \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent + offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightLargeArcRadius - offset) + \" 0 0 0 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n }\n pathString += \" L \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + (coords.targetY - coords.rightSmallArcRadius) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 0 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY - offset) + \" L \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY - offset) + (arrowLen > 0 ? \" L \" + coords.targetX + \" \" + coords.targetY : \"\") + \"Z\";\n } else {\n pathString = \"M \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY - offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY - offset) + \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightSmallArcRadius + offset) + \" 0 0 0 \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + (coords.targetY + coords.rightSmallArcRadius) + \" L \" + (coords.rightFullExtent - offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.rightInnerExtent - offset - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" L \" + (coords.rightFullExtent + offset - arrowLen - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.rightFullExtent - arrowLen - offset - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.leftFullExtent + offset + (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n } else {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent + offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftLargeArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + coords.verticalLeftInnerExtent;\n }\n pathString += \" L \" + (coords.leftFullExtent + offset) + \" \" + (coords.sourceY + coords.leftSmallArcRadius) + \" A \" + (coords.leftLargeArcRadius + offset) + \" \" + (coords.leftSmallArcRadius + offset) + \" 0 0 0 \" + coords.leftInnerExtent + \" \" + (coords.sourceY - offset) + \" L \" + coords.sourceX + \" \" + (coords.sourceY - offset) + // Walking back\n \" L \" + coords.sourceX + \" \" + (coords.sourceY + offset) + \" L \" + coords.leftInnerExtent + \" \" + (coords.sourceY + offset) + \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftSmallArcRadius - offset) + \" 0 0 1 \" + (coords.leftFullExtent - offset) + \" \" + (coords.sourceY + coords.leftSmallArcRadius) + \" L \" + (coords.leftFullExtent - offset) + \" \" + coords.verticalLeftInnerExtent;\n if (isSourceBeforeTarget && isPathOverlapped) {\n pathString += \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.leftFullExtent - offset - (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.rightFullExtent + offset - arrowLen + (coords.rightLargeArcRadius - offset)) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else if (isSourceBeforeTarget) {\n pathString += \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.leftFullExtent + offset) + \" \" + (coords.verticalFullExtent + offset) + \" L \" + (coords.rightFullExtent - arrowLen - offset) + \" \" + (coords.verticalFullExtent + offset) + \" A \" + (coords.rightLargeArcRadius + offset) + \" \" + (coords.rightLargeArcRadius + offset) + \" 0 0 0 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n } else {\n pathString += \" A \" + (coords.leftLargeArcRadius - offset) + \" \" + (coords.leftLargeArcRadius - offset) + \" 0 0 1 \" + coords.leftInnerExtent + \" \" + (coords.verticalFullExtent - offset) + \" L \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.verticalFullExtent - offset) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightLargeArcRadius - offset) + \" 0 0 1 \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + coords.verticalRightInnerExtent;\n }\n pathString += \" L \" + (coords.rightFullExtent + offset - arrowLen) + \" \" + (coords.targetY + coords.rightSmallArcRadius) + \" A \" + (coords.rightLargeArcRadius - offset) + \" \" + (coords.rightSmallArcRadius - offset) + \" 0 0 1 \" + (coords.rightInnerExtent - arrowLen) + \" \" + (coords.targetY + offset) + \" L \" + (coords.targetX - arrowLen) + \" \" + (coords.targetY + offset) + (arrowLen > 0 ? \" L \" + coords.targetX + \" \" + coords.targetY : \"\") + \"Z\";\n }\n return pathString;\n }\n function linkPath() {\n var curvature = 0.5;\n function path(d) {\n var arrowLen = d.linkArrowLength;\n if (d.link.circular) {\n return createCircularClosedPathString(d.link, arrowLen);\n } else {\n var maxArrowLength = Math.abs((d.link.target.x0 - d.link.source.x1) / 2);\n if (arrowLen > maxArrowLength) {\n arrowLen = maxArrowLength;\n }\n var x0 = d.link.source.x1;\n var x1 = d.link.target.x0 - arrowLen;\n var xi = interpolateNumber(x0, x1);\n var x2 = xi(curvature);\n var x3 = xi(1 - curvature);\n var y0a = d.link.y0 - d.link.width / 2;\n var y0b = d.link.y0 + d.link.width / 2;\n var y1a = d.link.y1 - d.link.width / 2;\n var y1b = d.link.y1 + d.link.width / 2;\n var start = \"M\" + x0 + \",\" + y0a;\n var upperCurve = \"C\" + x2 + \",\" + y0a + \" \" + x3 + \",\" + y1a + \" \" + x1 + \",\" + y1a;\n var lowerCurve = \"C\" + x3 + \",\" + y1b + \" \" + x2 + \",\" + y0b + \" \" + x0 + \",\" + y0b;\n var rightEnd = arrowLen > 0 ? \"L\" + (x1 + arrowLen) + \",\" + (y1a + d.link.width / 2) : \"\";\n rightEnd += \"L\" + x1 + \",\" + y1b;\n return start + upperCurve + rightEnd + lowerCurve + \"Z\";\n }\n }\n return path;\n }\n function nodeModel(d, n) {\n var tc = tinycolor(n.color);\n var zoneThicknessPad = c.nodePadAcross;\n var zoneLengthPad = d.nodePad / 2;\n n.dx = n.x1 - n.x0;\n n.dy = n.y1 - n.y0;\n var visibleThickness = n.dx;\n var visibleLength = Math.max(0.5, n.dy);\n var key = \"node_\" + n.pointNumber;\n if (n.group) {\n key = Lib.randstr();\n }\n n.trace = d.trace;\n n.curveNumber = d.trace.index;\n return {\n index: n.pointNumber,\n key,\n partOfGroup: n.partOfGroup || false,\n group: n.group,\n traceId: d.key,\n trace: d.trace,\n node: n,\n nodePad: d.nodePad,\n nodeLineColor: d.nodeLineColor,\n nodeLineWidth: d.nodeLineWidth,\n textFont: d.textFont,\n size: d.horizontal ? d.height : d.width,\n visibleWidth: Math.ceil(visibleThickness),\n visibleHeight: visibleLength,\n zoneX: -zoneThicknessPad,\n zoneY: -zoneLengthPad,\n zoneWidth: visibleThickness + 2 * zoneThicknessPad,\n zoneHeight: visibleLength + 2 * zoneLengthPad,\n labelY: d.horizontal ? n.dy / 2 + 1 : n.dx / 2 + 1,\n left: n.originalLayer === 1,\n sizeAcross: d.width,\n forceLayouts: d.forceLayouts,\n horizontal: d.horizontal,\n darkBackground: tc.getBrightness() <= 128,\n tinyColorHue: Color2.tinyRGB(tc),\n tinyColorAlpha: tc.getAlpha(),\n valueFormat: d.valueFormat,\n valueSuffix: d.valueSuffix,\n sankey: d.sankey,\n graph: d.graph,\n arrangement: d.arrangement,\n uniqueNodeLabelPathId: [d.guid, d.key, key].join(\"_\"),\n interactionState: d.interactionState,\n figure: d\n };\n }\n function updateNodePositions(sankeyNode) {\n sankeyNode.attr(\"transform\", function(d) {\n return strTranslate(d.node.x0.toFixed(3), d.node.y0.toFixed(3));\n });\n }\n function updateNodeShapes(sankeyNode) {\n sankeyNode.call(updateNodePositions);\n }\n function updateShapes(sankeyNode, sankeyLink) {\n sankeyNode.call(updateNodeShapes);\n sankeyLink.attr(\"d\", linkPath());\n }\n function sizeNode(rect) {\n rect.attr(\"width\", function(d) {\n return d.node.x1 - d.node.x0;\n }).attr(\"height\", function(d) {\n return d.visibleHeight;\n });\n }\n function salientEnough(d) {\n return d.link.width > 1 || d.linkLineWidth > 0;\n }\n function sankeyTransform(d) {\n var offset = strTranslate(d.translateX, d.translateY);\n return offset + (d.horizontal ? \"matrix(1 0 0 1 0 0)\" : \"matrix(0 1 1 0 0 0)\");\n }\n function attachPointerEvents(selection, sankey, eventSet) {\n selection.on(\".basic\", null).on(\"mouseover.basic\", function(d) {\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.hover(this, d, sankey);\n d.interactionState.hovered = [this, d];\n }\n }).on(\"mousemove.basic\", function(d) {\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.follow(this, d);\n d.interactionState.hovered = [this, d];\n }\n }).on(\"mouseout.basic\", function(d) {\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.unhover(this, d, sankey);\n d.interactionState.hovered = false;\n }\n }).on(\"click.basic\", function(d) {\n if (d.interactionState.hovered) {\n eventSet.unhover(this, d, sankey);\n d.interactionState.hovered = false;\n }\n if (!d.interactionState.dragInProgress && !d.partOfGroup) {\n eventSet.select(this, d, sankey);\n }\n });\n }\n function attachDragHandler(sankeyNode, sankeyLink, callbacks, gd) {\n var dragBehavior = d3.behavior.drag().origin(function(d) {\n return {\n x: d.node.x0 + d.visibleWidth / 2,\n y: d.node.y0 + d.visibleHeight / 2\n };\n }).on(\"dragstart\", function(d) {\n if (d.arrangement === \"fixed\") return;\n Lib.ensureSingle(gd._fullLayout._infolayer, \"g\", \"dragcover\", function(s) {\n gd._fullLayout._dragCover = s;\n });\n Lib.raiseToTop(this);\n d.interactionState.dragInProgress = d.node;\n saveCurrentDragPosition(d.node);\n if (d.interactionState.hovered) {\n callbacks.nodeEvents.unhover.apply(0, d.interactionState.hovered);\n d.interactionState.hovered = false;\n }\n if (d.arrangement === \"snap\") {\n var forceKey = d.traceId + \"|\" + d.key;\n if (d.forceLayouts[forceKey]) {\n d.forceLayouts[forceKey].alpha(1);\n } else {\n attachForce(sankeyNode, forceKey, d, gd);\n }\n startForce(sankeyNode, sankeyLink, d, forceKey, gd);\n }\n }).on(\"drag\", function(d) {\n if (d.arrangement === \"fixed\") return;\n var x = d3.event.x;\n var y = d3.event.y;\n if (d.arrangement === \"snap\") {\n d.node.x0 = x - d.visibleWidth / 2;\n d.node.x1 = x + d.visibleWidth / 2;\n d.node.y0 = y - d.visibleHeight / 2;\n d.node.y1 = y + d.visibleHeight / 2;\n } else {\n if (d.arrangement === \"freeform\") {\n d.node.x0 = x - d.visibleWidth / 2;\n d.node.x1 = x + d.visibleWidth / 2;\n }\n y = Math.max(0, Math.min(d.size - d.visibleHeight / 2, y));\n d.node.y0 = y - d.visibleHeight / 2;\n d.node.y1 = y + d.visibleHeight / 2;\n }\n saveCurrentDragPosition(d.node);\n if (d.arrangement !== \"snap\") {\n d.sankey.update(d.graph);\n updateShapes(sankeyNode.filter(sameLayer(d)), sankeyLink);\n }\n }).on(\"dragend\", function(d) {\n if (d.arrangement === \"fixed\") return;\n d.interactionState.dragInProgress = false;\n for (var i = 0; i < d.node.childrenNodes.length; i++) {\n d.node.childrenNodes[i].x = d.node.x;\n d.node.childrenNodes[i].y = d.node.y;\n }\n if (d.arrangement !== \"snap\") persistFinalNodePositions(d, gd);\n });\n sankeyNode.on(\".drag\", null).call(dragBehavior);\n }\n function attachForce(sankeyNode, forceKey, d, gd) {\n switchToForceFormat(d.graph.nodes);\n var nodes = d.graph.nodes.filter(function(n) {\n return n.originalX === d.node.originalX;\n }).filter(function(n) {\n return !n.partOfGroup;\n });\n d.forceLayouts[forceKey] = d3Force.forceSimulation(nodes).alphaDecay(0).force(\"collide\", d3Force.forceCollide().radius(function(n) {\n return n.dy / 2 + d.nodePad / 2;\n }).strength(1).iterations(c.forceIterations)).force(\"constrain\", snappingForce(sankeyNode, forceKey, nodes, d, gd)).stop();\n }\n function startForce(sankeyNode, sankeyLink, d, forceKey, gd) {\n window.requestAnimationFrame(function faster() {\n var i;\n for (i = 0; i < c.forceTicksPerFrame; i++) {\n d.forceLayouts[forceKey].tick();\n }\n var nodes = d.graph.nodes;\n switchToSankeyFormat(nodes);\n d.sankey.update(d.graph);\n updateShapes(sankeyNode.filter(sameLayer(d)), sankeyLink);\n if (d.forceLayouts[forceKey].alpha() > 0) {\n window.requestAnimationFrame(faster);\n } else {\n var x = d.node.originalX;\n d.node.x0 = x - d.visibleWidth / 2;\n d.node.x1 = x + d.visibleWidth / 2;\n persistFinalNodePositions(d, gd);\n }\n });\n }\n function snappingForce(sankeyNode, forceKey, nodes, d) {\n return function _snappingForce() {\n var maxVelocity = 0;\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (n === d.interactionState.dragInProgress) {\n n.x = n.lastDraggedX;\n n.y = n.lastDraggedY;\n } else {\n n.vx = (n.originalX - n.x) / c.forceTicksPerFrame;\n n.y = Math.min(d.size - n.dy / 2, Math.max(n.dy / 2, n.y));\n }\n maxVelocity = Math.max(maxVelocity, Math.abs(n.vx), Math.abs(n.vy));\n }\n if (!d.interactionState.dragInProgress && maxVelocity < 0.1 && d.forceLayouts[forceKey].alpha() > 0) {\n d.forceLayouts[forceKey].alpha(0);\n }\n };\n }\n function persistFinalNodePositions(d, gd) {\n var x = [];\n var y = [];\n for (var i = 0; i < d.graph.nodes.length; i++) {\n var nodeX = (d.graph.nodes[i].x0 + d.graph.nodes[i].x1) / 2;\n var nodeY = (d.graph.nodes[i].y0 + d.graph.nodes[i].y1) / 2;\n x.push(nodeX / d.figure.width);\n y.push(nodeY / d.figure.height);\n }\n Registry.call(\"_guiRestyle\", gd, {\n \"node.x\": [x],\n \"node.y\": [y]\n }, d.trace.index).then(function() {\n if (gd._fullLayout._dragCover) gd._fullLayout._dragCover.remove();\n });\n }\n function persistOriginalPlace(nodes) {\n var distinctLayerPositions = [];\n var i;\n for (i = 0; i < nodes.length; i++) {\n nodes[i].originalX = (nodes[i].x0 + nodes[i].x1) / 2;\n nodes[i].originalY = (nodes[i].y0 + nodes[i].y1) / 2;\n if (distinctLayerPositions.indexOf(nodes[i].originalX) === -1) {\n distinctLayerPositions.push(nodes[i].originalX);\n }\n }\n distinctLayerPositions.sort(function(a, b) {\n return a - b;\n });\n for (i = 0; i < nodes.length; i++) {\n nodes[i].originalLayerIndex = distinctLayerPositions.indexOf(nodes[i].originalX);\n nodes[i].originalLayer = nodes[i].originalLayerIndex / (distinctLayerPositions.length - 1);\n }\n }\n function saveCurrentDragPosition(d) {\n d.lastDraggedX = d.x0 + d.dx / 2;\n d.lastDraggedY = d.y0 + d.dy / 2;\n }\n function sameLayer(d) {\n return function(n) {\n return n.node.originalX === d.node.originalX;\n };\n }\n function switchToForceFormat(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n nodes[i].y = (nodes[i].y0 + nodes[i].y1) / 2;\n nodes[i].x = (nodes[i].x0 + nodes[i].x1) / 2;\n }\n }\n function switchToSankeyFormat(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n nodes[i].y0 = nodes[i].y - nodes[i].dy / 2;\n nodes[i].y1 = nodes[i].y0 + nodes[i].dy;\n nodes[i].x0 = nodes[i].x - nodes[i].dx / 2;\n nodes[i].x1 = nodes[i].x0 + nodes[i].dx;\n }\n }\n module.exports = function(gd, svg, calcData, layout, callbacks) {\n var isStatic = gd._context.staticPlot;\n var firstRender = false;\n Lib.ensureSingle(gd._fullLayout._infolayer, \"g\", \"first-render\", function() {\n firstRender = true;\n });\n var dragcover = gd._fullLayout._dragCover;\n var styledData = calcData.filter(function(d) {\n return unwrap(d).trace.visible;\n }).map(sankeyModel.bind(null, layout));\n var sankey = svg.selectAll(\".\" + c.cn.sankey).data(styledData, keyFun);\n sankey.exit().remove();\n sankey.enter().append(\"g\").classed(c.cn.sankey, true).style(\"box-sizing\", \"content-box\").style(\"position\", \"absolute\").style(\"left\", 0).style(\"shape-rendering\", \"geometricPrecision\").style(\"pointer-events\", isStatic ? \"none\" : \"auto\").attr(\"transform\", sankeyTransform);\n sankey.each(function(d, i) {\n gd._fullData[i]._sankey = d;\n var dragboxClassName = \"bgsankey-\" + d.trace.uid + \"-\" + i;\n Lib.ensureSingle(gd._fullLayout._draggers, \"rect\", dragboxClassName);\n gd._fullData[i]._bgRect = d3.select(\".\" + dragboxClassName);\n gd._fullData[i]._bgRect.style(\"pointer-events\", isStatic ? \"none\" : \"all\").attr(\"width\", d.width).attr(\"height\", d.height).attr(\"x\", d.translateX).attr(\"y\", d.translateY).classed(\"bgsankey\", true).style({ fill: \"transparent\", \"stroke-width\": 0 });\n });\n sankey.transition().ease(c.ease).duration(c.duration).attr(\"transform\", sankeyTransform);\n var sankeyLinks = sankey.selectAll(\".\" + c.cn.sankeyLinks).data(repeat, keyFun);\n sankeyLinks.enter().append(\"g\").classed(c.cn.sankeyLinks, true).style(\"fill\", \"none\");\n var sankeyLink = sankeyLinks.selectAll(\".\" + c.cn.sankeyLink).data(function(d) {\n var links = d.graph.links;\n return links.filter(function(l) {\n return l.value;\n }).map(linkModel.bind(null, d));\n }, keyFun);\n sankeyLink.enter().append(\"path\").classed(c.cn.sankeyLink, true).call(attachPointerEvents, sankey, callbacks.linkEvents);\n sankeyLink.style(\"stroke\", function(d) {\n return salientEnough(d) ? Color2.tinyRGB(tinycolor(d.linkLineColor)) : d.tinyColorHue;\n }).style(\"stroke-opacity\", function(d) {\n return salientEnough(d) ? Color2.opacity(d.linkLineColor) : d.tinyColorAlpha;\n }).style(\"fill\", function(d) {\n return d.tinyColorHue;\n }).style(\"fill-opacity\", function(d) {\n return d.tinyColorAlpha;\n }).style(\"stroke-width\", function(d) {\n return salientEnough(d) ? d.linkLineWidth : 1;\n }).attr(\"d\", linkPath());\n sankeyLink.style(\"opacity\", function() {\n return gd._context.staticPlot || firstRender || dragcover ? 1 : 0;\n }).transition().ease(c.ease).duration(c.duration).style(\"opacity\", 1);\n sankeyLink.exit().transition().ease(c.ease).duration(c.duration).style(\"opacity\", 0).remove();\n var sankeyNodeSet = sankey.selectAll(\".\" + c.cn.sankeyNodeSet).data(repeat, keyFun);\n sankeyNodeSet.enter().append(\"g\").classed(c.cn.sankeyNodeSet, true);\n sankeyNodeSet.style(\"cursor\", function(d) {\n switch (d.arrangement) {\n case \"fixed\":\n return \"default\";\n case \"perpendicular\":\n return \"ns-resize\";\n default:\n return \"move\";\n }\n });\n var sankeyNode = sankeyNodeSet.selectAll(\".\" + c.cn.sankeyNode).data(function(d) {\n var nodes = d.graph.nodes;\n persistOriginalPlace(nodes);\n return nodes.map(nodeModel.bind(null, d));\n }, keyFun);\n sankeyNode.enter().append(\"g\").classed(c.cn.sankeyNode, true).call(updateNodePositions).style(\"opacity\", function(n) {\n return (gd._context.staticPlot || firstRender) && !n.partOfGroup ? 1 : 0;\n });\n sankeyNode.call(attachPointerEvents, sankey, callbacks.nodeEvents).call(attachDragHandler, sankeyLink, callbacks, gd);\n sankeyNode.transition().ease(c.ease).duration(c.duration).call(updateNodePositions).style(\"opacity\", function(n) {\n return n.partOfGroup ? 0 : 1;\n });\n sankeyNode.exit().transition().ease(c.ease).duration(c.duration).style(\"opacity\", 0).remove();\n var nodeRect = sankeyNode.selectAll(\".\" + c.cn.nodeRect).data(repeat);\n nodeRect.enter().append(\"rect\").classed(c.cn.nodeRect, true).call(sizeNode);\n nodeRect.style(\"stroke-width\", function(d) {\n return d.nodeLineWidth;\n }).style(\"stroke\", function(d) {\n return Color2.tinyRGB(tinycolor(d.nodeLineColor));\n }).style(\"stroke-opacity\", function(d) {\n return Color2.opacity(d.nodeLineColor);\n }).style(\"fill\", function(d) {\n return d.tinyColorHue;\n }).style(\"fill-opacity\", function(d) {\n return d.tinyColorAlpha;\n });\n nodeRect.transition().ease(c.ease).duration(c.duration).call(sizeNode);\n var nodeLabel = sankeyNode.selectAll(\".\" + c.cn.nodeLabel).data(repeat);\n nodeLabel.enter().append(\"text\").classed(c.cn.nodeLabel, true).style(\"cursor\", \"default\");\n nodeLabel.attr(\"data-notex\", 1).text(function(d) {\n return d.node.label;\n }).each(function(d) {\n var e = d3.select(this);\n Drawing.font(e, d.textFont);\n svgTextUtils.convertToTspans(e, gd);\n }).attr(\"text-anchor\", function(d) {\n return d.horizontal && d.left ? \"end\" : \"start\";\n }).attr(\"transform\", function(d) {\n var e = d3.select(this);\n var nLines = svgTextUtils.lineCount(e);\n var blockHeight = d.textFont.size * ((nLines - 1) * LINE_SPACING - CAP_SHIFT);\n var posX = d.nodeLineWidth / 2 + TEXTPAD;\n var posY = ((d.horizontal ? d.visibleHeight : d.visibleWidth) - blockHeight) / 2;\n if (d.horizontal) {\n if (d.left) {\n posX = -posX;\n } else {\n posX += d.visibleWidth;\n }\n }\n var flipText = d.horizontal ? \"\" : \"scale(-1,1)\" + strRotate(90);\n return strTranslate(\n d.horizontal ? posX : posY,\n d.horizontal ? posY : posX\n ) + flipText;\n });\n nodeLabel.transition().ease(c.ease).duration(c.duration);\n };\n }\n });\n\n // src/traces/sankey/plot.js\n var require_plot29 = __commonJS({\n \"src/traces/sankey/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var render = require_render();\n var Fx = require_fx();\n var Color2 = require_color();\n var cn = require_constants29().cn;\n var _ = Lib._;\n function renderableValuePresent(d) {\n return d !== \"\";\n }\n function ownTrace(selection, d) {\n return selection.filter(function(s) {\n return s.key === d.traceId;\n });\n }\n function makeTranslucent(element, alpha) {\n d3.select(element).select(\"path\").style(\"fill-opacity\", alpha);\n d3.select(element).select(\"rect\").style(\"fill-opacity\", alpha);\n }\n function makeTextContrasty(element) {\n d3.select(element).select(\"text.name\").style(\"fill\", \"black\");\n }\n function relatedLinks(d) {\n return function(l) {\n return d.node.sourceLinks.indexOf(l.link) !== -1 || d.node.targetLinks.indexOf(l.link) !== -1;\n };\n }\n function relatedNodes(l) {\n return function(d) {\n return d.node.sourceLinks.indexOf(l.link) !== -1 || d.node.targetLinks.indexOf(l.link) !== -1;\n };\n }\n function nodeHoveredStyle(sankeyNode, d, sankey) {\n if (d && sankey) {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(relatedLinks(d)).call(linkHoveredStyle.bind(0, d, sankey, false));\n }\n }\n function nodeNonHoveredStyle(sankeyNode, d, sankey) {\n if (d && sankey) {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(relatedLinks(d)).call(linkNonHoveredStyle.bind(0, d, sankey, false));\n }\n }\n function linkHoveredStyle(d, sankey, visitNodes, sankeyLink) {\n sankeyLink.style(\"fill\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverHue;\n }\n }).style(\"fill-opacity\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverAlpha;\n }\n });\n sankeyLink.each(function(curLink) {\n var label = curLink.link.label;\n if (label !== \"\") {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(function(l) {\n return l.link.label === label;\n }).style(\"fill\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverHue;\n }\n }).style(\"fill-opacity\", function(l) {\n if (!l.link.concentrationscale) {\n return l.tinyColorHoverAlpha;\n }\n });\n }\n });\n if (visitNodes) {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyNode).filter(relatedNodes(d)).call(nodeHoveredStyle);\n }\n }\n function linkNonHoveredStyle(d, sankey, visitNodes, sankeyLink) {\n sankeyLink.style(\"fill\", function(l) {\n return l.tinyColorHue;\n }).style(\"fill-opacity\", function(l) {\n return l.tinyColorAlpha;\n });\n sankeyLink.each(function(curLink) {\n var label = curLink.link.label;\n if (label !== \"\") {\n ownTrace(sankey, d).selectAll(\".\" + cn.sankeyLink).filter(function(l) {\n return l.link.label === label;\n }).style(\"fill\", function(l) {\n return l.tinyColorHue;\n }).style(\"fill-opacity\", function(l) {\n return l.tinyColorAlpha;\n });\n }\n });\n if (visitNodes) {\n ownTrace(sankey, d).selectAll(cn.sankeyNode).filter(relatedNodes(d)).call(nodeNonHoveredStyle);\n }\n }\n function castHoverOption(trace, attr) {\n var labelOpts = trace.hoverlabel || {};\n var val = Lib.nestedProperty(labelOpts, attr).get();\n return Array.isArray(val) ? false : val;\n }\n module.exports = function plot(gd, calcData) {\n var fullLayout = gd._fullLayout;\n var svg = fullLayout._paper;\n var size = fullLayout._size;\n for (var i = 0; i < gd._fullData.length; i++) {\n if (!gd._fullData[i].visible) continue;\n if (gd._fullData[i].type !== cn.sankey) continue;\n if (!gd._fullData[i]._viewInitial) {\n var node = gd._fullData[i].node;\n gd._fullData[i]._viewInitial = {\n node: {\n groups: node.groups.slice(),\n x: node.x.slice(),\n y: node.y.slice()\n }\n };\n }\n }\n var linkSelect = function(element, d) {\n var evt = d.link;\n evt.originalEvent = d3.event;\n gd._hoverdata = [evt];\n Fx.click(gd, { target: true });\n };\n var linkHover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(linkHoveredStyle.bind(0, d, sankey, true));\n if (d.link.trace.link.hoverinfo !== \"skip\") {\n d.link.fullData = d.link.trace;\n gd.emit(\"plotly_hover\", {\n event: d3.event,\n points: [d.link]\n });\n }\n };\n var sourceLabel = _(gd, \"source:\") + \" \";\n var targetLabel = _(gd, \"target:\") + \" \";\n var concentrationLabel = _(gd, \"concentration:\") + \" \";\n var incomingLabel = _(gd, \"incoming flow count:\") + \" \";\n var outgoingLabel = _(gd, \"outgoing flow count:\") + \" \";\n var linkHoverFollow = function(element, d) {\n if (gd._fullLayout.hovermode === false) return;\n var obj = d.link.trace.link;\n if (obj.hoverinfo === \"none\" || obj.hoverinfo === \"skip\") return;\n var hoverItems = [];\n function hoverCenterPosition(link2) {\n var hoverCenterX, hoverCenterY;\n if (link2.circular) {\n hoverCenterX = (link2.circularPathData.leftInnerExtent + link2.circularPathData.rightInnerExtent) / 2;\n hoverCenterY = link2.circularPathData.verticalFullExtent;\n } else {\n hoverCenterX = (link2.source.x1 + link2.target.x0) / 2;\n hoverCenterY = (link2.y0 + link2.y1) / 2;\n }\n var center = [hoverCenterX, hoverCenterY];\n if (link2.trace.orientation === \"v\") center.reverse();\n center[0] += d.parent.translateX;\n center[1] += d.parent.translateY;\n return center;\n }\n var anchorIndex = 0;\n for (var i2 = 0; i2 < d.flow.links.length; i2++) {\n var link = d.flow.links[i2];\n if (gd._fullLayout.hovermode === \"closest\" && d.link.pointNumber !== link.pointNumber) continue;\n if (d.link.pointNumber === link.pointNumber) anchorIndex = i2;\n link.fullData = link.trace;\n obj = d.link.trace.link;\n var hoverCenter = hoverCenterPosition(link);\n var hovertemplateLabels = { valueLabel: numberFormat(d.valueFormat)(link.value) + d.valueSuffix };\n hoverItems.push({\n x: hoverCenter[0],\n y: hoverCenter[1],\n name: hovertemplateLabels.valueLabel,\n text: [\n link.label || \"\",\n sourceLabel + link.source.label,\n targetLabel + link.target.label,\n link.concentrationscale ? concentrationLabel + numberFormat(\"%0.2f\")(link.flow.labelConcentration) : \"\"\n ].filter(renderableValuePresent).join(\"
\"),\n color: castHoverOption(obj, \"bgcolor\") || Color2.addOpacity(link.color, 1),\n borderColor: castHoverOption(obj, \"bordercolor\"),\n fontFamily: castHoverOption(obj, \"font.family\"),\n fontSize: castHoverOption(obj, \"font.size\"),\n fontColor: castHoverOption(obj, \"font.color\"),\n fontWeight: castHoverOption(obj, \"font.weight\"),\n fontStyle: castHoverOption(obj, \"font.style\"),\n fontVariant: castHoverOption(obj, \"font.variant\"),\n fontTextcase: castHoverOption(obj, \"font.textcase\"),\n fontLineposition: castHoverOption(obj, \"font.lineposition\"),\n fontShadow: castHoverOption(obj, \"font.shadow\"),\n nameLength: castHoverOption(obj, \"namelength\"),\n textAlign: castHoverOption(obj, \"align\"),\n idealAlign: d3.event.x < hoverCenter[0] ? \"right\" : \"left\",\n hovertemplate: obj.hovertemplate,\n hovertemplateLabels,\n eventData: [link]\n });\n }\n var tooltips = Fx.loneHover(hoverItems, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd,\n anchorIndex\n });\n tooltips.each(function() {\n var tooltip = this;\n if (!d.link.concentrationscale) {\n makeTranslucent(tooltip, 0.65);\n }\n makeTextContrasty(tooltip);\n });\n };\n var linkUnhover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(linkNonHoveredStyle.bind(0, d, sankey, true));\n if (d.link.trace.link.hoverinfo !== \"skip\") {\n d.link.fullData = d.link.trace;\n gd.emit(\"plotly_unhover\", {\n event: d3.event,\n points: [d.link]\n });\n }\n Fx.loneUnhover(fullLayout._hoverlayer.node());\n };\n var nodeSelect = function(element, d, sankey) {\n var evt = d.node;\n evt.originalEvent = d3.event;\n gd._hoverdata = [evt];\n d3.select(element).call(nodeNonHoveredStyle, d, sankey);\n Fx.click(gd, { target: true });\n };\n var nodeHover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(nodeHoveredStyle, d, sankey);\n if (d.node.trace.node.hoverinfo !== \"skip\") {\n d.node.fullData = d.node.trace;\n gd.emit(\"plotly_hover\", {\n event: d3.event,\n points: [d.node]\n });\n }\n };\n var nodeHoverFollow = function(element, d) {\n if (gd._fullLayout.hovermode === false) return;\n var obj = d.node.trace.node;\n if (obj.hoverinfo === \"none\" || obj.hoverinfo === \"skip\") return;\n var nodeRect = d3.select(element).select(\".\" + cn.nodeRect);\n var rootBBox = gd._fullLayout._paperdiv.node().getBoundingClientRect();\n var boundingBox = nodeRect.node().getBoundingClientRect();\n var hoverCenterX0 = boundingBox.left - 2 - rootBBox.left;\n var hoverCenterX1 = boundingBox.right + 2 - rootBBox.left;\n var hoverCenterY = boundingBox.top + boundingBox.height / 4 - rootBBox.top;\n var hovertemplateLabels = { valueLabel: numberFormat(d.valueFormat)(d.node.value) + d.valueSuffix };\n d.node.fullData = d.node.trace;\n gd._fullLayout._calcInverseTransform(gd);\n var scaleX = gd._fullLayout._invScaleX;\n var scaleY = gd._fullLayout._invScaleY;\n var tooltip = Fx.loneHover({\n x0: scaleX * hoverCenterX0,\n x1: scaleX * hoverCenterX1,\n y: scaleY * hoverCenterY,\n name: numberFormat(d.valueFormat)(d.node.value) + d.valueSuffix,\n text: [\n d.node.label,\n incomingLabel + d.node.targetLinks.length,\n outgoingLabel + d.node.sourceLinks.length\n ].filter(renderableValuePresent).join(\"
\"),\n color: castHoverOption(obj, \"bgcolor\") || d.tinyColorHue,\n borderColor: castHoverOption(obj, \"bordercolor\"),\n fontFamily: castHoverOption(obj, \"font.family\"),\n fontSize: castHoverOption(obj, \"font.size\"),\n fontColor: castHoverOption(obj, \"font.color\"),\n fontWeight: castHoverOption(obj, \"font.weight\"),\n fontStyle: castHoverOption(obj, \"font.style\"),\n fontVariant: castHoverOption(obj, \"font.variant\"),\n fontTextcase: castHoverOption(obj, \"font.textcase\"),\n fontLineposition: castHoverOption(obj, \"font.lineposition\"),\n fontShadow: castHoverOption(obj, \"font.shadow\"),\n nameLength: castHoverOption(obj, \"namelength\"),\n textAlign: castHoverOption(obj, \"align\"),\n idealAlign: \"left\",\n hovertemplate: obj.hovertemplate,\n hovertemplateLabels,\n eventData: [d.node]\n }, {\n container: fullLayout._hoverlayer.node(),\n outerContainer: fullLayout._paper.node(),\n gd\n });\n makeTranslucent(tooltip, 0.85);\n makeTextContrasty(tooltip);\n };\n var nodeUnhover = function(element, d, sankey) {\n if (gd._fullLayout.hovermode === false) return;\n d3.select(element).call(nodeNonHoveredStyle, d, sankey);\n if (d.node.trace.node.hoverinfo !== \"skip\") {\n d.node.fullData = d.node.trace;\n gd.emit(\"plotly_unhover\", {\n event: d3.event,\n points: [d.node]\n });\n }\n Fx.loneUnhover(fullLayout._hoverlayer.node());\n };\n render(\n gd,\n svg,\n calcData,\n {\n width: size.w,\n height: size.h,\n margin: {\n t: size.t,\n r: size.r,\n b: size.b,\n l: size.l\n }\n },\n {\n linkEvents: {\n hover: linkHover,\n follow: linkHoverFollow,\n unhover: linkUnhover,\n select: linkSelect\n },\n nodeEvents: {\n hover: nodeHover,\n follow: nodeHoverFollow,\n unhover: nodeUnhover,\n select: nodeSelect\n }\n }\n );\n };\n }\n });\n\n // src/traces/sankey/base_plot.js\n var require_base_plot9 = __commonJS({\n \"src/traces/sankey/base_plot.js\"(exports) {\n \"use strict\";\n var overrideAll = require_edit_types().overrideAll;\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var plot = require_plot29();\n var fxAttrs = require_layout_attributes();\n var setCursor = require_setcursor();\n var dragElement = require_dragelement();\n var prepSelect = require_selections().prepSelect;\n var Lib = require_lib();\n var Registry = require_registry();\n var SANKEY = \"sankey\";\n exports.name = SANKEY;\n exports.baseLayoutAttrOverrides = overrideAll({\n hoverlabel: fxAttrs.hoverlabel\n }, \"plot\", \"nested\");\n exports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, SANKEY)[0];\n plot(gd, calcData);\n exports.updateFx(gd);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadPlot = oldFullLayout._has && oldFullLayout._has(SANKEY);\n var hasPlot = newFullLayout._has && newFullLayout._has(SANKEY);\n if (hadPlot && !hasPlot) {\n oldFullLayout._paperdiv.selectAll(\".sankey\").remove();\n oldFullLayout._paperdiv.selectAll(\".bgsankey\").remove();\n }\n };\n exports.updateFx = function(gd) {\n for (var i = 0; i < gd._fullData.length; i++) {\n subplotUpdateFx(gd, i);\n }\n };\n function subplotUpdateFx(gd, index) {\n var trace = gd._fullData[index];\n var fullLayout = gd._fullLayout;\n var dragMode = fullLayout.dragmode;\n var cursor = fullLayout.dragmode === \"pan\" ? \"move\" : \"crosshair\";\n var bgRect = trace._bgRect;\n if (!bgRect) return;\n if (dragMode === \"pan\" || dragMode === \"zoom\") return;\n setCursor(bgRect, cursor);\n var xaxis = {\n _id: \"x\",\n c2p: Lib.identity,\n _offset: trace._sankey.translateX,\n _length: trace._sankey.width\n };\n var yaxis = {\n _id: \"y\",\n c2p: Lib.identity,\n _offset: trace._sankey.translateY,\n _length: trace._sankey.height\n };\n var dragOptions = {\n gd,\n element: bgRect.node(),\n plotinfo: {\n id: index,\n xaxis,\n yaxis,\n fillRangeItems: Lib.noop\n },\n subplot: index,\n // create mock x/y axes for hover routine\n xaxes: [xaxis],\n yaxes: [yaxis],\n doneFnCompleted: function(selection) {\n var traceNow = gd._fullData[index];\n var newGroups;\n var oldGroups = traceNow.node.groups.slice();\n var newGroup = [];\n function findNode(pt) {\n var nodes = traceNow._sankey.graph.nodes;\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].pointNumber === pt) return nodes[i];\n }\n }\n for (var j = 0; j < selection.length; j++) {\n var node = findNode(selection[j].pointNumber);\n if (!node) continue;\n if (node.group) {\n for (var k = 0; k < node.childrenNodes.length; k++) {\n newGroup.push(node.childrenNodes[k].pointNumber);\n }\n oldGroups[node.pointNumber - traceNow.node._count] = false;\n } else {\n newGroup.push(node.pointNumber);\n }\n }\n newGroups = oldGroups.filter(Boolean).concat([newGroup]);\n Registry.call(\"_guiRestyle\", gd, {\n \"node.groups\": [newGroups]\n }, index);\n }\n };\n dragOptions.prepFn = function(e, startX, startY) {\n prepSelect(e, startX, startY, dragOptions, dragMode);\n };\n dragElement.init(dragOptions);\n }\n }\n });\n\n // src/traces/sankey/select.js\n var require_select11 = __commonJS({\n \"src/traces/sankey/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var selection = [];\n var fullData = cd[0].trace;\n var nodes = fullData._sankey.graph.nodes;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n if (node.partOfGroup) continue;\n var pos = [(node.x0 + node.x1) / 2, (node.y0 + node.y1) / 2];\n if (fullData.orientation === \"v\") pos.reverse();\n if (selectionTester && selectionTester.contains(pos, false, i, searchInfo)) {\n selection.push({\n pointNumber: node.pointNumber\n // TODO: add eventData\n });\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/sankey/index.js\n var require_sankey = __commonJS({\n \"src/traces/sankey/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes60(),\n supplyDefaults: require_defaults56(),\n calc: require_calc35(),\n plot: require_plot29(),\n moduleType: \"trace\",\n name: \"sankey\",\n basePlotModule: require_base_plot9(),\n selectPoints: require_select11(),\n categories: [\"noOpacity\"],\n meta: {}\n };\n }\n });\n\n // lib/sankey.js\n var require_sankey2 = __commonJS({\n \"lib/sankey.js\"(exports, module) {\n \"use strict\";\n module.exports = require_sankey();\n }\n });\n\n // src/traces/indicator/base_plot.js\n var require_base_plot10 = __commonJS({\n \"src/traces/indicator/base_plot.js\"(exports) {\n \"use strict\";\n var plots = require_plots();\n exports.name = \"indicator\";\n exports.plot = function(gd, traces, transitionOpts, makeOnCompleteCallback) {\n plots.plotBasePlot(exports.name, gd, traces, transitionOpts, makeOnCompleteCallback);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n plots.cleanBasePlot(exports.name, newFullData, newFullLayout, oldFullData, oldFullLayout);\n };\n }\n });\n\n // src/traces/indicator/attributes.js\n var require_attributes61 = __commonJS({\n \"src/traces/indicator/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n var extendDeep = require_extend().extendDeep;\n var overrideAll = require_edit_types().overrideAll;\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var domainAttrs = require_domain().attributes;\n var axesAttrs = require_layout_attributes4();\n var templatedArray = require_plot_template().templatedArray;\n var delta = require_delta();\n var descriptionOnlyNumbers = require_axis_format_attributes().descriptionOnlyNumbers;\n var textFontAttrs = fontAttrs({\n editType: \"plot\",\n colorEditType: \"plot\"\n });\n var gaugeBarAttrs = {\n color: {\n valType: \"color\",\n editType: \"plot\"\n },\n line: {\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n width: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n thickness: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 1,\n editType: \"plot\"\n },\n editType: \"calc\"\n };\n var rangeAttr = {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"plot\" },\n { valType: \"number\", editType: \"plot\" }\n ],\n editType: \"plot\"\n };\n var stepsAttrs = templatedArray(\"step\", extendDeep({}, gaugeBarAttrs, {\n range: rangeAttr\n }));\n module.exports = {\n mode: {\n valType: \"flaglist\",\n editType: \"calc\",\n flags: [\"number\", \"delta\", \"gauge\"],\n dflt: \"number\"\n },\n value: {\n valType: \"number\",\n editType: \"calc\",\n anim: true\n },\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n editType: \"plot\"\n },\n // position\n domain: domainAttrs({ name: \"indicator\", trace: true, editType: \"calc\" }),\n title: {\n text: {\n valType: \"string\",\n editType: \"plot\"\n },\n align: {\n valType: \"enumerated\",\n values: [\"left\", \"center\", \"right\"],\n editType: \"plot\"\n },\n font: extendFlat({}, textFontAttrs, {}),\n editType: \"plot\"\n },\n number: {\n valueformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\",\n description: descriptionOnlyNumbers(\"value\")\n },\n font: extendFlat({}, textFontAttrs, {}),\n prefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n suffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n editType: \"plot\"\n },\n delta: {\n reference: {\n valType: \"number\",\n editType: \"calc\"\n },\n position: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\", \"left\", \"right\"],\n dflt: \"bottom\",\n editType: \"plot\"\n },\n relative: {\n valType: \"boolean\",\n editType: \"plot\",\n dflt: false\n },\n valueformat: {\n valType: \"string\",\n editType: \"plot\",\n description: descriptionOnlyNumbers(\"value\")\n },\n increasing: {\n symbol: {\n valType: \"string\",\n dflt: delta.INCREASING.SYMBOL,\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n dflt: delta.INCREASING.COLOR,\n editType: \"plot\"\n },\n // TODO: add attribute to show sign\n editType: \"plot\"\n },\n decreasing: {\n symbol: {\n valType: \"string\",\n dflt: delta.DECREASING.SYMBOL,\n editType: \"plot\"\n },\n color: {\n valType: \"color\",\n dflt: delta.DECREASING.COLOR,\n editType: \"plot\"\n },\n // TODO: add attribute to hide sign\n editType: \"plot\"\n },\n font: extendFlat({}, textFontAttrs, {}),\n prefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n suffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"plot\"\n },\n editType: \"calc\"\n },\n gauge: {\n shape: {\n valType: \"enumerated\",\n editType: \"plot\",\n dflt: \"angular\",\n values: [\"angular\", \"bullet\"]\n },\n bar: extendDeep({}, gaugeBarAttrs, {\n color: { dflt: \"green\" }\n }),\n // Background of the gauge\n bgcolor: {\n valType: \"color\",\n editType: \"plot\"\n },\n bordercolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n borderwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"plot\"\n },\n axis: overrideAll({\n range: rangeAttr,\n visible: extendFlat({}, axesAttrs.visible, {\n dflt: true\n }),\n // tick and title properties named and function exactly as in axes\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: extendFlat({}, axesAttrs.ticks, { dflt: \"outside\" }),\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n tickfont: fontAttrs({}),\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n tickprefix: axesAttrs.tickprefix,\n showtickprefix: axesAttrs.showtickprefix,\n ticksuffix: axesAttrs.ticksuffix,\n showticksuffix: axesAttrs.showticksuffix,\n separatethousands: axesAttrs.separatethousands,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n showexponent: axesAttrs.showexponent,\n editType: \"plot\"\n }, \"plot\"),\n // Steps (or ranges) and thresholds\n steps: stepsAttrs,\n threshold: {\n line: {\n color: extendFlat({}, gaugeBarAttrs.line.color, {}),\n width: extendFlat({}, gaugeBarAttrs.line.width, {\n dflt: 1\n }),\n editType: \"plot\"\n },\n thickness: extendFlat({}, gaugeBarAttrs.thickness, {\n dflt: 0.85\n }),\n value: {\n valType: \"number\",\n editType: \"calc\",\n dflt: false\n },\n editType: \"plot\"\n },\n editType: \"plot\"\n // TODO: in future version, add marker: (bar|needle)\n }\n };\n }\n });\n\n // src/traces/indicator/constants.js\n var require_constants30 = __commonJS({\n \"src/traces/indicator/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n // Defaults for delta\n defaultNumberFontSize: 80,\n bulletNumberDomainSize: 0.25,\n bulletPadding: 0.025,\n innerRadius: 0.75,\n valueThickness: 0.5,\n // thickness of value bars relative to full thickness,\n titlePadding: 5,\n horizontalPadding: 10\n };\n }\n });\n\n // src/traces/indicator/defaults.js\n var require_defaults57 = __commonJS({\n \"src/traces/indicator/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes61();\n var handleDomainDefaults = require_domain().defaults;\n var Template = require_plot_template();\n var handleArrayContainerDefaults = require_array_container_defaults();\n var cn = require_constants30();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleDomainDefaults(traceOut, layout, coerce);\n coerce(\"mode\");\n traceOut._hasNumber = traceOut.mode.indexOf(\"number\") !== -1;\n traceOut._hasDelta = traceOut.mode.indexOf(\"delta\") !== -1;\n traceOut._hasGauge = traceOut.mode.indexOf(\"gauge\") !== -1;\n var value = coerce(\"value\");\n traceOut._range = [0, typeof value === \"number\" ? 1.5 * value : 1];\n var auto = new Array(2);\n var bignumberFontSize;\n if (traceOut._hasNumber) {\n coerce(\"number.valueformat\");\n var numberFontDflt = Lib.extendFlat({}, layout.font);\n numberFontDflt.size = void 0;\n Lib.coerceFont(coerce, \"number.font\", numberFontDflt);\n if (traceOut.number.font.size === void 0) {\n traceOut.number.font.size = cn.defaultNumberFontSize;\n auto[0] = true;\n }\n coerce(\"number.prefix\");\n coerce(\"number.suffix\");\n bignumberFontSize = traceOut.number.font.size;\n }\n var deltaFontSize;\n if (traceOut._hasDelta) {\n var deltaFontDflt = Lib.extendFlat({}, layout.font);\n deltaFontDflt.size = void 0;\n Lib.coerceFont(coerce, \"delta.font\", deltaFontDflt);\n if (traceOut.delta.font.size === void 0) {\n traceOut.delta.font.size = (traceOut._hasNumber ? 0.5 : 1) * (bignumberFontSize || cn.defaultNumberFontSize);\n auto[1] = true;\n }\n coerce(\"delta.reference\", traceOut.value);\n coerce(\"delta.relative\");\n coerce(\"delta.valueformat\", traceOut.delta.relative ? \"2%\" : \"\");\n coerce(\"delta.increasing.symbol\");\n coerce(\"delta.increasing.color\");\n coerce(\"delta.decreasing.symbol\");\n coerce(\"delta.decreasing.color\");\n coerce(\"delta.position\");\n coerce(\"delta.prefix\");\n coerce(\"delta.suffix\");\n deltaFontSize = traceOut.delta.font.size;\n }\n traceOut._scaleNumbers = (!traceOut._hasNumber || auto[0]) && (!traceOut._hasDelta || auto[1]) || false;\n var titleFontDflt = Lib.extendFlat({}, layout.font);\n titleFontDflt.size = 0.25 * (bignumberFontSize || deltaFontSize || cn.defaultNumberFontSize);\n Lib.coerceFont(coerce, \"title.font\", titleFontDflt);\n coerce(\"title.text\");\n var gaugeIn, gaugeOut, axisIn, axisOut;\n function coerceGauge(attr, dflt) {\n return Lib.coerce(gaugeIn, gaugeOut, attributes.gauge, attr, dflt);\n }\n function coerceGaugeAxis(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);\n }\n if (traceOut._hasGauge) {\n gaugeIn = traceIn.gauge;\n if (!gaugeIn) gaugeIn = {};\n gaugeOut = Template.newContainer(traceOut, \"gauge\");\n coerceGauge(\"shape\");\n var isBullet = traceOut._isBullet = traceOut.gauge.shape === \"bullet\";\n if (!isBullet) {\n coerce(\"title.align\", \"center\");\n }\n var isAngular = traceOut._isAngular = traceOut.gauge.shape === \"angular\";\n if (!isAngular) {\n coerce(\"align\", \"center\");\n }\n coerceGauge(\"bgcolor\", layout.paper_bgcolor);\n coerceGauge(\"borderwidth\");\n coerceGauge(\"bordercolor\");\n coerceGauge(\"bar.color\");\n coerceGauge(\"bar.line.color\");\n coerceGauge(\"bar.line.width\");\n var defaultBarThickness = cn.valueThickness * (traceOut.gauge.shape === \"bullet\" ? 0.5 : 1);\n coerceGauge(\"bar.thickness\", defaultBarThickness);\n handleArrayContainerDefaults(gaugeIn, gaugeOut, {\n name: \"steps\",\n handleItemDefaults: stepDefaults\n });\n coerceGauge(\"threshold.value\");\n coerceGauge(\"threshold.thickness\");\n coerceGauge(\"threshold.line.width\");\n coerceGauge(\"threshold.line.color\");\n axisIn = {};\n if (gaugeIn) axisIn = gaugeIn.axis || {};\n axisOut = Template.newContainer(gaugeOut, \"axis\");\n coerceGaugeAxis(\"visible\");\n traceOut._range = coerceGaugeAxis(\"range\", traceOut._range);\n var opts = {\n font: layout.font,\n noAutotickangles: true,\n outerTicks: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true\n };\n handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, \"linear\");\n handlePrefixSuffixDefaults(axisIn, axisOut, coerceGaugeAxis, \"linear\", opts);\n handleTickLabelDefaults(axisIn, axisOut, coerceGaugeAxis, \"linear\", opts);\n handleTickMarkDefaults(axisIn, axisOut, coerceGaugeAxis, opts);\n } else {\n coerce(\"title.align\", \"center\");\n coerce(\"align\", \"center\");\n traceOut._isAngular = traceOut._isBullet = false;\n }\n traceOut._length = null;\n }\n function stepDefaults(stepIn, stepOut) {\n function coerce(attr, dflt) {\n return Lib.coerce(stepIn, stepOut, attributes.gauge.steps, attr, dflt);\n }\n coerce(\"color\");\n coerce(\"line.color\");\n coerce(\"line.width\");\n coerce(\"range\");\n coerce(\"thickness\");\n }\n module.exports = {\n supplyDefaults\n };\n }\n });\n\n // src/traces/indicator/calc.js\n var require_calc36 = __commonJS({\n \"src/traces/indicator/calc.js\"(exports, module) {\n \"use strict\";\n function calc(gd, trace) {\n var cd = [];\n var lastReading = trace.value;\n if (!(typeof trace._lastValue === \"number\")) trace._lastValue = trace.value;\n var secondLastReading = trace._lastValue;\n var deltaRef = secondLastReading;\n if (trace._hasDelta && typeof trace.delta.reference === \"number\") {\n deltaRef = trace.delta.reference;\n }\n cd[0] = {\n y: lastReading,\n lastY: secondLastReading,\n delta: lastReading - deltaRef,\n relativeDelta: (lastReading - deltaRef) / deltaRef\n };\n return cd;\n }\n module.exports = {\n calc\n };\n }\n });\n\n // src/traces/indicator/plot.js\n var require_plot30 = __commonJS({\n \"src/traces/indicator/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var interpolate = (init_src2(), __toCommonJS(src_exports)).interpolate;\n var interpolateNumber = (init_src2(), __toCommonJS(src_exports)).interpolateNumber;\n var Lib = require_lib();\n var strScale = Lib.strScale;\n var strTranslate = Lib.strTranslate;\n var rad2deg = Lib.rad2deg;\n var MID_SHIFT = require_alignment().MID_SHIFT;\n var Drawing = require_drawing();\n var cn = require_constants30();\n var svgTextUtils = require_svg_text_utils();\n var Axes = require_axes();\n var handleAxisDefaults = require_axis_defaults();\n var handleAxisPositionDefaults = require_position_defaults();\n var axisLayoutAttrs = require_layout_attributes4();\n var Color2 = require_color();\n var anchor = {\n left: \"start\",\n center: \"middle\",\n right: \"end\"\n };\n var position = {\n left: 0,\n center: 0.5,\n right: 1\n };\n var SI_PREFIX = /[yzafpnµmkMGTPEZY]/;\n function hasTransition(transitionOpts) {\n return transitionOpts && transitionOpts.duration > 0;\n }\n module.exports = function plot(gd, cdModule, transitionOpts, makeOnCompleteCallback) {\n var fullLayout = gd._fullLayout;\n var onComplete;\n if (hasTransition(transitionOpts)) {\n if (makeOnCompleteCallback) {\n onComplete = makeOnCompleteCallback();\n }\n }\n Lib.makeTraceGroups(fullLayout._indicatorlayer, cdModule, \"trace\").each(function(cd) {\n var cd0 = cd[0];\n var trace = cd0.trace;\n var plotGroup = d3.select(this);\n var hasGauge = trace._hasGauge;\n var isAngular = trace._isAngular;\n var isBullet = trace._isBullet;\n var domain = trace.domain;\n var size = {\n w: fullLayout._size.w * (domain.x[1] - domain.x[0]),\n h: fullLayout._size.h * (domain.y[1] - domain.y[0]),\n l: fullLayout._size.l + fullLayout._size.w * domain.x[0],\n r: fullLayout._size.r + fullLayout._size.w * (1 - domain.x[1]),\n t: fullLayout._size.t + fullLayout._size.h * (1 - domain.y[1]),\n b: fullLayout._size.b + fullLayout._size.h * domain.y[0]\n };\n var centerX = size.l + size.w / 2;\n var centerY = size.t + size.h / 2;\n var radius = Math.min(size.w / 2, size.h);\n var innerRadius = cn.innerRadius * radius;\n var numbersX, numbersY, numbersScaler;\n var numbersAlign = trace.align || \"center\";\n numbersY = centerY;\n if (!hasGauge) {\n numbersX = size.l + position[numbersAlign] * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, size.w, size.h);\n };\n } else {\n if (isAngular) {\n numbersX = centerX;\n numbersY = centerY + radius / 2;\n numbersScaler = function(el) {\n return fitTextInsideCircle(el, 0.9 * innerRadius);\n };\n }\n if (isBullet) {\n var padding = cn.bulletPadding;\n var p = 1 - cn.bulletNumberDomainSize + padding;\n numbersX = size.l + (p + (1 - p) * position[numbersAlign]) * size.w;\n numbersScaler = function(el) {\n return fitTextInsideBox(el, (cn.bulletNumberDomainSize - padding) * size.w, size.h);\n };\n }\n }\n drawNumbers(gd, plotGroup, cd, {\n numbersX,\n numbersY,\n numbersScaler,\n transitionOpts,\n onComplete\n });\n var gaugeBg, gaugeOutline;\n if (hasGauge) {\n gaugeBg = {\n range: trace.gauge.axis.range,\n color: trace.gauge.bgcolor,\n line: {\n color: trace.gauge.bordercolor,\n width: 0\n },\n thickness: 1\n };\n gaugeOutline = {\n range: trace.gauge.axis.range,\n color: \"rgba(0, 0, 0, 0)\",\n line: {\n color: trace.gauge.bordercolor,\n width: trace.gauge.borderwidth\n },\n thickness: 1\n };\n }\n var angularGauge = plotGroup.selectAll(\"g.angular\").data(isAngular ? cd : []);\n angularGauge.exit().remove();\n var angularaxisLayer = plotGroup.selectAll(\"g.angularaxis\").data(isAngular ? cd : []);\n angularaxisLayer.exit().remove();\n if (isAngular) {\n drawAngularGauge(gd, plotGroup, cd, {\n radius,\n innerRadius,\n gauge: angularGauge,\n layer: angularaxisLayer,\n size,\n gaugeBg,\n gaugeOutline,\n transitionOpts,\n onComplete\n });\n }\n var bulletGauge = plotGroup.selectAll(\"g.bullet\").data(isBullet ? cd : []);\n bulletGauge.exit().remove();\n var bulletaxisLayer = plotGroup.selectAll(\"g.bulletaxis\").data(isBullet ? cd : []);\n bulletaxisLayer.exit().remove();\n if (isBullet) {\n drawBulletGauge(gd, plotGroup, cd, {\n gauge: bulletGauge,\n layer: bulletaxisLayer,\n size,\n gaugeBg,\n gaugeOutline,\n transitionOpts,\n onComplete\n });\n }\n var title = plotGroup.selectAll(\"text.title\").data(cd);\n title.exit().remove();\n title.enter().append(\"text\").classed(\"title\", true);\n title.attr(\"text-anchor\", function() {\n return isBullet ? anchor.right : anchor[trace.title.align];\n }).text(trace.title.text).call(Drawing.font, trace.title.font).call(svgTextUtils.convertToTspans, gd);\n title.attr(\"transform\", function() {\n var titleX = size.l + size.w * position[trace.title.align];\n var titleY;\n var titlePadding = cn.titlePadding;\n var titlebBox = Drawing.bBox(title.node());\n if (hasGauge) {\n if (isAngular) {\n if (trace.gauge.axis.visible) {\n var bBox = Drawing.bBox(angularaxisLayer.node());\n titleY = bBox.top - titlePadding - titlebBox.bottom;\n } else {\n titleY = size.t + size.h / 2 - radius / 2 - titlebBox.bottom - titlePadding;\n }\n }\n if (isBullet) {\n titleY = numbersY - (titlebBox.top + titlebBox.bottom) / 2;\n titleX = size.l - cn.bulletPadding * size.w;\n }\n } else {\n titleY = trace._numbersTop - titlePadding - titlebBox.bottom;\n }\n return strTranslate(titleX, titleY);\n });\n });\n };\n function drawBulletGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n var bullet = opts.gauge;\n var axisLayer = opts.layer;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var size = opts.size;\n var domain = trace.domain;\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n var ax, vals, transFn, tickSign, shift;\n bullet.enter().append(\"g\").classed(\"bullet\", true);\n bullet.attr(\"transform\", strTranslate(size.l, size.t));\n axisLayer.enter().append(\"g\").classed(\"bulletaxis\", true).classed(\"crisp\", true);\n axisLayer.selectAll(\"g.xbulletaxistick,path,text\").remove();\n var bulletHeight = size.h;\n var innerBulletHeight = trace.gauge.bar.thickness * bulletHeight;\n var bulletLeft = domain.x[0];\n var bulletRight = domain.x[0] + (domain.x[1] - domain.x[0]) * (trace._hasNumber || trace._hasDelta ? 1 - cn.bulletNumberDomainSize : 1);\n ax = mockAxis(gd, trace.gauge.axis);\n ax._id = \"xbulletaxis\";\n ax.domain = [bulletLeft, bulletRight];\n ax.setScale();\n vals = Axes.calcTicks(ax);\n transFn = Axes.makeTransTickFn(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n shift = size.t + size.h;\n if (ax.visible) {\n Axes.drawTicks(gd, ax, {\n vals: ax.ticks === \"inside\" ? Axes.clipEnds(ax, vals) : vals,\n layer: axisLayer,\n path: Axes.makeTickPath(ax, shift, tickSign),\n transFn\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: axisLayer,\n transFn,\n labelFns: Axes.makeLabelFns(ax, shift)\n });\n }\n function drawRect(s) {\n s.attr(\"width\", function(d) {\n return Math.max(0, ax.c2p(d.range[1]) - ax.c2p(d.range[0]));\n }).attr(\"x\", function(d) {\n return ax.c2p(d.range[0]);\n }).attr(\"y\", function(d) {\n return 0.5 * (1 - d.thickness) * bulletHeight;\n }).attr(\"height\", function(d) {\n return d.thickness * bulletHeight;\n });\n }\n var boxes = [gaugeBg].concat(trace.gauge.steps);\n var bgBullet = bullet.selectAll(\"g.bg-bullet\").data(boxes);\n bgBullet.enter().append(\"g\").classed(\"bg-bullet\", true).append(\"rect\");\n bgBullet.select(\"rect\").call(drawRect).call(styleShape);\n bgBullet.exit().remove();\n var fgBullet = bullet.selectAll(\"g.value-bullet\").data([trace.gauge.bar]);\n fgBullet.enter().append(\"g\").classed(\"value-bullet\", true).append(\"rect\");\n fgBullet.select(\"rect\").attr(\"height\", innerBulletHeight).attr(\"y\", (bulletHeight - innerBulletHeight) / 2).call(styleShape);\n if (hasTransition(transitionOpts)) {\n fgBullet.select(\"rect\").transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n }).attr(\"width\", Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))));\n } else {\n fgBullet.select(\"rect\").attr(\"width\", typeof cd[0].y === \"number\" ? Math.max(0, ax.c2p(Math.min(trace.gauge.axis.range[1], cd[0].y))) : 0);\n }\n fgBullet.exit().remove();\n var data = cd.filter(function() {\n return trace.gauge.threshold.value || trace.gauge.threshold.value === 0;\n });\n var threshold = bullet.selectAll(\"g.threshold-bullet\").data(data);\n threshold.enter().append(\"g\").classed(\"threshold-bullet\", true).append(\"line\");\n threshold.select(\"line\").attr(\"x1\", ax.c2p(trace.gauge.threshold.value)).attr(\"x2\", ax.c2p(trace.gauge.threshold.value)).attr(\"y1\", (1 - trace.gauge.threshold.thickness) / 2 * bulletHeight).attr(\"y2\", (1 - (1 - trace.gauge.threshold.thickness) / 2) * bulletHeight).call(Color2.stroke, trace.gauge.threshold.line.color).style(\"stroke-width\", trace.gauge.threshold.line.width);\n threshold.exit().remove();\n var bulletOutline = bullet.selectAll(\"g.gauge-outline\").data([gaugeOutline]);\n bulletOutline.enter().append(\"g\").classed(\"gauge-outline\", true).append(\"rect\");\n bulletOutline.select(\"rect\").call(drawRect).call(styleShape);\n bulletOutline.exit().remove();\n }\n function drawAngularGauge(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n var size = opts.size;\n var radius = opts.radius;\n var innerRadius = opts.innerRadius;\n var gaugeBg = opts.gaugeBg;\n var gaugeOutline = opts.gaugeOutline;\n var gaugePosition = [size.l + size.w / 2, size.t + size.h / 2 + radius / 2];\n var gauge = opts.gauge;\n var axisLayer = opts.layer;\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n var theta = Math.PI / 2;\n function valueToAngle(v2) {\n var min = trace.gauge.axis.range[0];\n var max = trace.gauge.axis.range[1];\n var angle = (v2 - min) / (max - min) * Math.PI - theta;\n if (angle < -theta) return -theta;\n if (angle > theta) return theta;\n return angle;\n }\n function arcPathGenerator(size2) {\n return d3.svg.arc().innerRadius((innerRadius + radius) / 2 - size2 / 2 * (radius - innerRadius)).outerRadius((innerRadius + radius) / 2 + size2 / 2 * (radius - innerRadius)).startAngle(-theta);\n }\n function drawArc(p) {\n p.attr(\"d\", function(d) {\n return arcPathGenerator(d.thickness).startAngle(valueToAngle(d.range[0])).endAngle(valueToAngle(d.range[1]))();\n });\n }\n var ax, vals, transFn, tickSign;\n gauge.enter().append(\"g\").classed(\"angular\", true);\n gauge.attr(\"transform\", strTranslate(gaugePosition[0], gaugePosition[1]));\n axisLayer.enter().append(\"g\").classed(\"angularaxis\", true).classed(\"crisp\", true);\n axisLayer.selectAll(\"g.xangularaxistick,path,text\").remove();\n ax = mockAxis(gd, trace.gauge.axis);\n ax.type = \"linear\";\n ax.range = trace.gauge.axis.range;\n ax._id = \"xangularaxis\";\n ax.ticklabeloverflow = \"allow\";\n ax.setScale();\n var t2g = function(d) {\n return (ax.range[0] - d.x) / (ax.range[1] - ax.range[0]) * Math.PI + Math.PI;\n };\n var labelFns = {};\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) + Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ? \"middle\" : cos > 0 ? \"start\" : \"end\";\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var _transFn = function(rad) {\n return strTranslate(\n gaugePosition[0] + radius * Math.cos(rad),\n gaugePosition[1] - radius * Math.sin(rad)\n );\n };\n transFn = function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = function(d) {\n var rad = t2g(d);\n return _transFn(rad) + \"rotate(\" + -rad2deg(rad) + \")\";\n };\n vals = Axes.calcTicks(ax);\n tickSign = Axes.getTickSigns(ax)[2];\n if (ax.visible) {\n tickSign = ax.ticks === \"inside\" ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals,\n layer: axisLayer,\n path: \"M\" + tickSign * pad + \",0h\" + tickSign * ax.ticklen,\n transFn: transFn2\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: axisLayer,\n transFn,\n labelFns\n });\n }\n var arcs = [gaugeBg].concat(trace.gauge.steps);\n var bgArc = gauge.selectAll(\"g.bg-arc\").data(arcs);\n bgArc.enter().append(\"g\").classed(\"bg-arc\", true).append(\"path\");\n bgArc.select(\"path\").call(drawArc).call(styleShape);\n bgArc.exit().remove();\n var valueArcPathGenerator = arcPathGenerator(trace.gauge.bar.thickness);\n var valueArc = gauge.selectAll(\"g.value-arc\").data([trace.gauge.bar]);\n valueArc.enter().append(\"g\").classed(\"value-arc\", true).append(\"path\");\n var valueArcPath = valueArc.select(\"path\");\n if (hasTransition(transitionOpts)) {\n valueArcPath.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n onComplete && onComplete();\n }).attrTween(\"d\", arcTween(valueArcPathGenerator, valueToAngle(cd[0].lastY), valueToAngle(cd[0].y)));\n trace._lastValue = cd[0].y;\n } else {\n valueArcPath.attr(\"d\", typeof cd[0].y === \"number\" ? valueArcPathGenerator.endAngle(valueToAngle(cd[0].y)) : \"M0,0Z\");\n }\n valueArcPath.call(styleShape);\n valueArc.exit().remove();\n arcs = [];\n var v = trace.gauge.threshold.value;\n if (v || v === 0) {\n arcs.push({\n range: [v, v],\n color: trace.gauge.threshold.color,\n line: {\n color: trace.gauge.threshold.line.color,\n width: trace.gauge.threshold.line.width\n },\n thickness: trace.gauge.threshold.thickness\n });\n }\n var thresholdArc = gauge.selectAll(\"g.threshold-arc\").data(arcs);\n thresholdArc.enter().append(\"g\").classed(\"threshold-arc\", true).append(\"path\");\n thresholdArc.select(\"path\").call(drawArc).call(styleShape);\n thresholdArc.exit().remove();\n var gaugeBorder = gauge.selectAll(\"g.gauge-outline\").data([gaugeOutline]);\n gaugeBorder.enter().append(\"g\").classed(\"gauge-outline\", true).append(\"path\");\n gaugeBorder.select(\"path\").call(drawArc).call(styleShape);\n gaugeBorder.exit().remove();\n }\n function drawNumbers(gd, plotGroup, cd, opts) {\n var trace = cd[0].trace;\n var numbersX = opts.numbersX;\n var numbersY = opts.numbersY;\n var numbersAlign = trace.align || \"center\";\n var numbersAnchor = anchor[numbersAlign];\n var transitionOpts = opts.transitionOpts;\n var onComplete = opts.onComplete;\n var numbers = Lib.ensureSingle(plotGroup, \"g\", \"numbers\");\n var bignumberbBox, deltabBox;\n var numbersbBox;\n var data = [];\n if (trace._hasNumber) data.push(\"number\");\n if (trace._hasDelta) {\n data.push(\"delta\");\n if (trace.delta.position === \"left\") data.reverse();\n }\n var sel = numbers.selectAll(\"text\").data(data);\n sel.enter().append(\"text\");\n sel.attr(\"text-anchor\", function() {\n return numbersAnchor;\n }).attr(\"class\", function(d) {\n return d;\n }).attr(\"x\", null).attr(\"y\", null).attr(\"dx\", null).attr(\"dy\", null);\n sel.exit().remove();\n function transitionFormat(valueformat, fmt, from, to) {\n if (valueformat.match(\"s\") && // If using SI prefix\n from >= 0 !== to >= 0 && // If sign change\n (!fmt(from).slice(-1).match(SI_PREFIX) && !fmt(to).slice(-1).match(SI_PREFIX))) {\n var transitionValueFormat = valueformat.slice().replace(\"s\", \"f\").replace(/\\d+/, function(m) {\n return parseInt(m) - 1;\n });\n var transitionAx = mockAxis(gd, { tickformat: transitionValueFormat });\n return function(v) {\n if (Math.abs(v) < 1) return Axes.tickText(transitionAx, v).text;\n return fmt(v);\n };\n } else {\n return fmt;\n }\n }\n function drawBignumber() {\n var bignumberAx = mockAxis(gd, { tickformat: trace.number.valueformat }, trace._range);\n bignumberAx.setScale();\n Axes.prepTicks(bignumberAx);\n var bignumberFmt = function(v) {\n return Axes.tickText(bignumberAx, v).text;\n };\n var bignumberSuffix = trace.number.suffix;\n var bignumberPrefix = trace.number.prefix;\n var number = numbers.select(\"text.number\");\n function writeNumber() {\n var txt = typeof cd[0].y === \"number\" ? bignumberPrefix + bignumberFmt(cd[0].y) + bignumberSuffix : \"-\";\n number.text(txt).call(Drawing.font, trace.number.font).call(svgTextUtils.convertToTspans, gd);\n }\n if (hasTransition(transitionOpts)) {\n number.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).each(\"end\", function() {\n writeNumber();\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n writeNumber();\n onComplete && onComplete();\n }).attrTween(\"text\", function() {\n var that = d3.select(this);\n var interpolator = interpolateNumber(cd[0].lastY, cd[0].y);\n trace._lastValue = cd[0].y;\n var transitionFmt = transitionFormat(trace.number.valueformat, bignumberFmt, cd[0].lastY, cd[0].y);\n return function(t) {\n that.text(bignumberPrefix + transitionFmt(interpolator(t)) + bignumberSuffix);\n };\n });\n } else {\n writeNumber();\n }\n bignumberbBox = measureText(bignumberPrefix + bignumberFmt(cd[0].y) + bignumberSuffix, trace.number.font, numbersAnchor, gd);\n return number;\n }\n function drawDelta() {\n var deltaAx = mockAxis(gd, { tickformat: trace.delta.valueformat }, trace._range);\n deltaAx.setScale();\n Axes.prepTicks(deltaAx);\n var deltaFmt = function(v) {\n return Axes.tickText(deltaAx, v).text;\n };\n var deltaSuffix = trace.delta.suffix;\n var deltaPrefix = trace.delta.prefix;\n var deltaValue = function(d) {\n var value = trace.delta.relative ? d.relativeDelta : d.delta;\n return value;\n };\n var deltaFormatText = function(value, numberFmt) {\n if (value === 0 || typeof value !== \"number\" || isNaN(value)) return \"-\";\n return (value > 0 ? trace.delta.increasing.symbol : trace.delta.decreasing.symbol) + deltaPrefix + numberFmt(value) + deltaSuffix;\n };\n var deltaFill = function(d) {\n return d.delta >= 0 ? trace.delta.increasing.color : trace.delta.decreasing.color;\n };\n if (trace._deltaLastValue === void 0) {\n trace._deltaLastValue = deltaValue(cd[0]);\n }\n var delta2 = numbers.select(\"text.delta\");\n delta2.call(Drawing.font, trace.delta.font).call(Color2.fill, deltaFill({ delta: trace._deltaLastValue }));\n function writeDelta() {\n delta2.text(deltaFormatText(deltaValue(cd[0]), deltaFmt)).call(Color2.fill, deltaFill(cd[0])).call(svgTextUtils.convertToTspans, gd);\n }\n if (hasTransition(transitionOpts)) {\n delta2.transition().duration(transitionOpts.duration).ease(transitionOpts.easing).tween(\"text\", function() {\n var that = d3.select(this);\n var to = deltaValue(cd[0]);\n var from = trace._deltaLastValue;\n var transitionFmt = transitionFormat(trace.delta.valueformat, deltaFmt, from, to);\n var interpolator = interpolateNumber(from, to);\n trace._deltaLastValue = to;\n return function(t) {\n that.text(deltaFormatText(interpolator(t), transitionFmt));\n that.call(Color2.fill, deltaFill({ delta: interpolator(t) }));\n };\n }).each(\"end\", function() {\n writeDelta();\n onComplete && onComplete();\n }).each(\"interrupt\", function() {\n writeDelta();\n onComplete && onComplete();\n });\n } else {\n writeDelta();\n }\n deltabBox = measureText(deltaFormatText(deltaValue(cd[0]), deltaFmt), trace.delta.font, numbersAnchor, gd);\n return delta2;\n }\n var key = trace.mode + trace.align;\n var delta;\n if (trace._hasDelta) {\n delta = drawDelta();\n key += trace.delta.position + trace.delta.font.size + trace.delta.font.family + trace.delta.valueformat;\n key += trace.delta.increasing.symbol + trace.delta.decreasing.symbol;\n numbersbBox = deltabBox;\n }\n if (trace._hasNumber) {\n drawBignumber();\n key += trace.number.font.size + trace.number.font.family + trace.number.valueformat + trace.number.suffix + trace.number.prefix;\n numbersbBox = bignumberbBox;\n }\n if (trace._hasDelta && trace._hasNumber) {\n var bignumberCenter = [\n (bignumberbBox.left + bignumberbBox.right) / 2,\n (bignumberbBox.top + bignumberbBox.bottom) / 2\n ];\n var deltaCenter = [\n (deltabBox.left + deltabBox.right) / 2,\n (deltabBox.top + deltabBox.bottom) / 2\n ];\n var dx, dy;\n var padding = 0.75 * trace.delta.font.size;\n if (trace.delta.position === \"left\") {\n dx = cache(trace, \"deltaPos\", 0, -1 * (bignumberbBox.width * position[trace.align] + deltabBox.width * (1 - position[trace.align]) + padding), key, Math.min);\n dy = bignumberCenter[1] - deltaCenter[1];\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: deltabBox.left + dx,\n right: bignumberbBox.right,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if (trace.delta.position === \"right\") {\n dx = cache(trace, \"deltaPos\", 0, bignumberbBox.width * (1 - position[trace.align]) + deltabBox.width * position[trace.align] + padding, key, Math.max);\n dy = bignumberCenter[1] - deltaCenter[1];\n numbersbBox = {\n width: bignumberbBox.width + deltabBox.width + padding,\n height: Math.max(bignumberbBox.height, deltabBox.height),\n left: bignumberbBox.left,\n right: deltabBox.right + dx,\n top: Math.min(bignumberbBox.top, deltabBox.top + dy),\n bottom: Math.max(bignumberbBox.bottom, deltabBox.bottom + dy)\n };\n }\n if (trace.delta.position === \"bottom\") {\n dx = null;\n dy = deltabBox.height;\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height,\n bottom: bignumberbBox.bottom + deltabBox.height\n };\n }\n if (trace.delta.position === \"top\") {\n dx = null;\n dy = bignumberbBox.top;\n numbersbBox = {\n width: Math.max(bignumberbBox.width, deltabBox.width),\n height: bignumberbBox.height + deltabBox.height,\n left: Math.min(bignumberbBox.left, deltabBox.left),\n right: Math.max(bignumberbBox.right, deltabBox.right),\n top: bignumberbBox.bottom - bignumberbBox.height - deltabBox.height,\n bottom: bignumberbBox.bottom\n };\n }\n delta.attr({ dx, dy });\n }\n if (trace._hasNumber || trace._hasDelta) {\n numbers.attr(\"transform\", function() {\n var m = opts.numbersScaler(numbersbBox);\n key += m[2];\n var scaleRatio = cache(trace, \"numbersScale\", 1, m[0], key, Math.min);\n var translateY;\n if (!trace._scaleNumbers) scaleRatio = 1;\n if (trace._isAngular) {\n translateY = numbersY - scaleRatio * numbersbBox.bottom;\n } else {\n translateY = numbersY - scaleRatio * (numbersbBox.top + numbersbBox.bottom) / 2;\n }\n trace._numbersTop = scaleRatio * numbersbBox.top + translateY;\n var ref = numbersbBox[numbersAlign];\n if (numbersAlign === \"center\") ref = (numbersbBox.left + numbersbBox.right) / 2;\n var translateX = numbersX - scaleRatio * ref;\n translateX = cache(trace, \"numbersTranslate\", 0, translateX, key, Math.max);\n return strTranslate(translateX, translateY) + strScale(scaleRatio);\n });\n }\n }\n function styleShape(p) {\n p.each(function(d) {\n Color2.stroke(d3.select(this), d.line.color);\n }).each(function(d) {\n Color2.fill(d3.select(this), d.color);\n }).style(\"stroke-width\", function(d) {\n return d.line.width;\n });\n }\n function arcTween(arc, endAngle, newAngle) {\n return function() {\n var interp = interpolate(endAngle, newAngle);\n return function(t) {\n return arc.endAngle(interp(t))();\n };\n };\n }\n function mockAxis(gd, opts, zrange) {\n var fullLayout = gd._fullLayout;\n var axisIn = Lib.extendFlat({\n type: \"linear\",\n ticks: \"outside\",\n range: zrange,\n showline: true\n }, opts);\n var axisOut = {\n type: \"linear\",\n _id: \"x\" + opts._id\n };\n var axisOptions = {\n letter: \"x\",\n font: fullLayout.font,\n noAutotickangles: true,\n noHover: true,\n noTickson: true\n };\n function coerce(attr, dflt) {\n return Lib.coerce(axisIn, axisOut, axisLayoutAttrs, attr, dflt);\n }\n handleAxisDefaults(axisIn, axisOut, coerce, axisOptions, fullLayout);\n handleAxisPositionDefaults(axisIn, axisOut, coerce, axisOptions);\n return axisOut;\n }\n function fitTextInsideBox(textBB, width, height) {\n var ratio = Math.min(width / textBB.width, height / textBB.height);\n return [ratio, textBB, width + \"x\" + height];\n }\n function fitTextInsideCircle(textBB, radius) {\n var elRadius = Math.sqrt(textBB.width / 2 * (textBB.width / 2) + textBB.height * textBB.height);\n var ratio = radius / elRadius;\n return [ratio, textBB, radius];\n }\n function measureText(txt, font, textAnchor, gd) {\n var element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n var sel = d3.select(element);\n sel.text(txt).attr(\"x\", 0).attr(\"y\", 0).attr(\"text-anchor\", textAnchor).attr(\"data-unformatted\", txt).call(svgTextUtils.convertToTspans, gd).call(Drawing.font, font);\n return Drawing.bBox(sel.node());\n }\n function cache(trace, name2, initialValue, value, key, fn) {\n var objName = \"_cache\" + name2;\n if (!(trace[objName] && trace[objName].key === key)) {\n trace[objName] = { key, value: initialValue };\n }\n var v = Lib.aggNums(fn, null, [trace[objName].value, value], 2);\n trace[objName].value = v;\n return v;\n }\n }\n });\n\n // src/traces/indicator/index.js\n var require_indicator = __commonJS({\n \"src/traces/indicator/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"indicator\",\n basePlotModule: require_base_plot10(),\n categories: [\"svg\", \"noOpacity\", \"noHover\"],\n animatable: true,\n attributes: require_attributes61(),\n supplyDefaults: require_defaults57().supplyDefaults,\n calc: require_calc36().calc,\n plot: require_plot30(),\n meta: {}\n };\n }\n });\n\n // lib/indicator.js\n var require_indicator2 = __commonJS({\n \"lib/indicator.js\"(exports, module) {\n \"use strict\";\n module.exports = require_indicator();\n }\n });\n\n // src/traces/table/attributes.js\n var require_attributes62 = __commonJS({\n \"src/traces/table/attributes.js\"(exports, module) {\n \"use strict\";\n var annAttrs = require_attributes11();\n var extendFlat = require_extend().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var fontAttrs = require_font_attributes();\n var domainAttrs = require_domain().attributes;\n var descriptionOnlyNumbers = require_axis_format_attributes().descriptionOnlyNumbers;\n var attrs = module.exports = overrideAll({\n domain: domainAttrs({ name: \"table\", trace: true }),\n columnwidth: {\n valType: \"number\",\n arrayOk: true,\n dflt: null\n },\n columnorder: {\n valType: \"data_array\"\n },\n header: {\n values: {\n valType: \"data_array\",\n dflt: []\n },\n format: {\n valType: \"data_array\",\n dflt: [],\n description: descriptionOnlyNumbers(\"cell value\")\n },\n prefix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n suffix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n height: {\n valType: \"number\",\n dflt: 28\n },\n align: extendFlat({}, annAttrs.align, { arrayOk: true }),\n line: {\n width: {\n valType: \"number\",\n arrayOk: true,\n dflt: 1\n },\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"grey\"\n }\n },\n fill: {\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"white\"\n }\n },\n font: extendFlat({}, fontAttrs({ arrayOk: true }))\n },\n cells: {\n values: {\n valType: \"data_array\",\n dflt: []\n },\n format: {\n valType: \"data_array\",\n dflt: [],\n description: descriptionOnlyNumbers(\"cell value\")\n },\n prefix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n suffix: {\n valType: \"string\",\n arrayOk: true,\n dflt: null\n },\n height: {\n valType: \"number\",\n dflt: 20\n },\n align: extendFlat({}, annAttrs.align, { arrayOk: true }),\n line: {\n width: {\n valType: \"number\",\n arrayOk: true,\n dflt: 1\n },\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"grey\"\n }\n },\n fill: {\n color: {\n valType: \"color\",\n arrayOk: true,\n dflt: \"white\"\n }\n },\n font: extendFlat({}, fontAttrs({ arrayOk: true }))\n }\n }, \"calc\", \"from-root\");\n }\n });\n\n // src/traces/table/defaults.js\n var require_defaults58 = __commonJS({\n \"src/traces/table/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attributes = require_attributes62();\n var handleDomainDefaults = require_domain().defaults;\n function defaultColumnOrder(traceOut, coerce) {\n var specifiedColumnOrder = traceOut.columnorder || [];\n var commonLength = traceOut.header.values.length;\n var truncated = specifiedColumnOrder.slice(0, commonLength);\n var sorted = truncated.slice().sort(function(a, b) {\n return a - b;\n });\n var oneStepped = truncated.map(function(d) {\n return sorted.indexOf(d);\n });\n for (var i = oneStepped.length; i < commonLength; i++) {\n oneStepped.push(i);\n }\n coerce(\"columnorder\", oneStepped);\n }\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n handleDomainDefaults(traceOut, layout, coerce);\n coerce(\"columnwidth\");\n coerce(\"header.values\");\n coerce(\"header.format\");\n coerce(\"header.align\");\n coerce(\"header.prefix\");\n coerce(\"header.suffix\");\n coerce(\"header.height\");\n coerce(\"header.line.width\");\n coerce(\"header.line.color\");\n coerce(\"header.fill.color\");\n Lib.coerceFont(coerce, \"header.font\", layout.font);\n defaultColumnOrder(traceOut, coerce);\n coerce(\"cells.values\");\n coerce(\"cells.format\");\n coerce(\"cells.align\");\n coerce(\"cells.prefix\");\n coerce(\"cells.suffix\");\n coerce(\"cells.height\");\n coerce(\"cells.line.width\");\n coerce(\"cells.line.color\");\n coerce(\"cells.fill.color\");\n Lib.coerceFont(coerce, \"cells.font\", layout.font);\n traceOut._length = null;\n };\n }\n });\n\n // src/traces/table/calc.js\n var require_calc37 = __commonJS({\n \"src/traces/table/calc.js\"(exports, module) {\n \"use strict\";\n var wrap = require_gup().wrap;\n module.exports = function calc() {\n return wrap({});\n };\n }\n });\n\n // src/traces/table/constants.js\n var require_constants31 = __commonJS({\n \"src/traces/table/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n cellPad: 8,\n columnExtentOffset: 10,\n columnTitleOffset: 28,\n emptyHeaderHeight: 16,\n latexCheck: /^\\$.*\\$$/,\n goldenRatio: 1.618,\n lineBreaker: \"
\",\n maxDimensionCount: 60,\n overdrag: 45,\n releaseTransitionDuration: 120,\n releaseTransitionEase: \"cubic-out\",\n scrollbarCaptureWidth: 18,\n scrollbarHideDelay: 1e3,\n scrollbarHideDuration: 1e3,\n scrollbarOffset: 5,\n scrollbarWidth: 8,\n transitionDuration: 100,\n transitionEase: \"cubic-out\",\n uplift: 5,\n wrapSpacer: \" \",\n wrapSplitCharacter: \" \",\n cn: {\n // general class names\n table: \"table\",\n tableControlView: \"table-control-view\",\n scrollBackground: \"scroll-background\",\n yColumn: \"y-column\",\n columnBlock: \"column-block\",\n scrollAreaClip: \"scroll-area-clip\",\n scrollAreaClipRect: \"scroll-area-clip-rect\",\n columnBoundary: \"column-boundary\",\n columnBoundaryClippath: \"column-boundary-clippath\",\n columnBoundaryRect: \"column-boundary-rect\",\n columnCells: \"column-cells\",\n columnCell: \"column-cell\",\n cellRect: \"cell-rect\",\n cellText: \"cell-text\",\n cellTextHolder: \"cell-text-holder\",\n // scroll related class names\n scrollbarKit: \"scrollbar-kit\",\n scrollbar: \"scrollbar\",\n scrollbarSlider: \"scrollbar-slider\",\n scrollbarGlyph: \"scrollbar-glyph\",\n scrollbarCaptureZone: \"scrollbar-capture-zone\"\n }\n };\n }\n });\n\n // src/traces/table/data_preparation_helper.js\n var require_data_preparation_helper = __commonJS({\n \"src/traces/table/data_preparation_helper.js\"(exports, module) {\n \"use strict\";\n var c = require_constants31();\n var extendFlat = require_extend().extendFlat;\n var isNumeric = require_fast_isnumeric();\n var isTypedArray = require_array().isTypedArray;\n var isArrayOrTypedArray = require_array().isArrayOrTypedArray;\n module.exports = function calc(gd, trace) {\n var cellsValues = squareStringMatrix(trace.cells.values);\n var slicer = function(a) {\n return a.slice(trace.header.values.length, a.length);\n };\n var headerValuesIn = squareStringMatrix(trace.header.values);\n if (headerValuesIn.length && !headerValuesIn[0].length) {\n headerValuesIn[0] = [\"\"];\n headerValuesIn = squareStringMatrix(headerValuesIn);\n }\n var headerValues = headerValuesIn.concat(slicer(cellsValues).map(function() {\n return emptyStrings((headerValuesIn[0] || [\"\"]).length);\n }));\n var domain = trace.domain;\n var groupWidth = Math.floor(gd._fullLayout._size.w * (domain.x[1] - domain.x[0]));\n var groupHeight = Math.floor(gd._fullLayout._size.h * (domain.y[1] - domain.y[0]));\n var headerRowHeights = trace.header.values.length ? headerValues[0].map(function() {\n return trace.header.height;\n }) : [c.emptyHeaderHeight];\n var rowHeights = cellsValues.length ? cellsValues[0].map(function() {\n return trace.cells.height;\n }) : [];\n var headerHeight = headerRowHeights.reduce(sum, 0);\n var scrollHeight = groupHeight - headerHeight;\n var minimumFillHeight = scrollHeight + c.uplift;\n var anchorToRowBlock = makeAnchorToRowBlock(rowHeights, minimumFillHeight);\n var anchorToHeaderRowBlock = makeAnchorToRowBlock(headerRowHeights, headerHeight);\n var headerRowBlocks = makeRowBlock(anchorToHeaderRowBlock, []);\n var rowBlocks = makeRowBlock(anchorToRowBlock, headerRowBlocks);\n var uniqueKeys = {};\n var columnOrder = trace._fullInput.columnorder;\n if (isArrayOrTypedArray(columnOrder)) columnOrder = Array.from(columnOrder);\n columnOrder = columnOrder.concat(slicer(cellsValues.map(function(d, i) {\n return i;\n })));\n var columnWidths = headerValues.map(function(d, i) {\n var value = isArrayOrTypedArray(trace.columnwidth) ? trace.columnwidth[Math.min(i, trace.columnwidth.length - 1)] : trace.columnwidth;\n return isNumeric(value) ? Number(value) : 1;\n });\n var totalColumnWidths = columnWidths.reduce(sum, 0);\n columnWidths = columnWidths.map(function(d) {\n return d / totalColumnWidths * groupWidth;\n });\n var maxLineWidth = Math.max(arrayMax(trace.header.line.width), arrayMax(trace.cells.line.width));\n var calcdata = {\n // include staticPlot in the key so if it changes we delete and redraw\n key: trace.uid + gd._context.staticPlot,\n translateX: domain.x[0] * gd._fullLayout._size.w,\n translateY: gd._fullLayout._size.h * (1 - domain.y[1]),\n size: gd._fullLayout._size,\n width: groupWidth,\n maxLineWidth,\n height: groupHeight,\n columnOrder,\n // will be mutated on column move, todo use in callback\n groupHeight,\n rowBlocks,\n headerRowBlocks,\n scrollY: 0,\n // will be mutated on scroll\n cells: extendFlat({}, trace.cells, { values: cellsValues }),\n headerCells: extendFlat({}, trace.header, { values: headerValues }),\n gdColumns: headerValues.map(function(d) {\n return d[0];\n }),\n gdColumnsOriginalOrder: headerValues.map(function(d) {\n return d[0];\n }),\n prevPages: [0, 0],\n scrollbarState: { scrollbarScrollInProgress: false },\n columns: headerValues.map(function(label, i) {\n var foundKey = uniqueKeys[label];\n uniqueKeys[label] = (foundKey || 0) + 1;\n var key = label + \"__\" + uniqueKeys[label];\n return {\n key,\n label,\n specIndex: i,\n xIndex: columnOrder[i],\n xScale,\n x: void 0,\n // initialized below\n calcdata: void 0,\n // initialized below\n columnWidth: columnWidths[i]\n };\n })\n };\n calcdata.columns.forEach(function(col) {\n col.calcdata = calcdata;\n col.x = xScale(col);\n });\n return calcdata;\n };\n function arrayMax(maybeArray) {\n if (isArrayOrTypedArray(maybeArray)) {\n var max = 0;\n for (var i = 0; i < maybeArray.length; i++) {\n max = Math.max(max, arrayMax(maybeArray[i]));\n }\n return max;\n }\n return maybeArray;\n }\n function sum(a, b) {\n return a + b;\n }\n function squareStringMatrix(matrixIn) {\n var matrix = matrixIn.slice();\n var minLen = Infinity;\n var maxLen = 0;\n var i;\n for (i = 0; i < matrix.length; i++) {\n if (isTypedArray(matrix[i])) matrix[i] = Array.from(matrix[i]);\n else if (!isArrayOrTypedArray(matrix[i])) matrix[i] = [matrix[i]];\n minLen = Math.min(minLen, matrix[i].length);\n maxLen = Math.max(maxLen, matrix[i].length);\n }\n if (minLen !== maxLen) {\n for (i = 0; i < matrix.length; i++) {\n var padLen = maxLen - matrix[i].length;\n if (padLen) matrix[i] = matrix[i].concat(emptyStrings(padLen));\n }\n }\n return matrix;\n }\n function emptyStrings(len) {\n var padArray = new Array(len);\n for (var j = 0; j < len; j++) padArray[j] = \"\";\n return padArray;\n }\n function xScale(d) {\n return d.calcdata.columns.reduce(function(prev, next) {\n return next.xIndex < d.xIndex ? prev + next.columnWidth : prev;\n }, 0);\n }\n function makeRowBlock(anchorToRowBlock, auxiliary) {\n var blockAnchorKeys = Object.keys(anchorToRowBlock);\n return blockAnchorKeys.map(function(k) {\n return extendFlat({}, anchorToRowBlock[k], { auxiliaryBlocks: auxiliary });\n });\n }\n function makeAnchorToRowBlock(rowHeights, minimumFillHeight) {\n var anchorToRowBlock = {};\n var currentRowHeight;\n var currentAnchor = 0;\n var currentBlockHeight = 0;\n var currentBlock = makeIdentity();\n var currentFirstRowIndex = 0;\n var blockCounter = 0;\n for (var i = 0; i < rowHeights.length; i++) {\n currentRowHeight = rowHeights[i];\n currentBlock.rows.push({\n rowIndex: i,\n rowHeight: currentRowHeight\n });\n currentBlockHeight += currentRowHeight;\n if (currentBlockHeight >= minimumFillHeight || i === rowHeights.length - 1) {\n anchorToRowBlock[currentAnchor] = currentBlock;\n currentBlock.key = blockCounter++;\n currentBlock.firstRowIndex = currentFirstRowIndex;\n currentBlock.lastRowIndex = i;\n currentBlock = makeIdentity();\n currentAnchor += currentBlockHeight;\n currentFirstRowIndex = i + 1;\n currentBlockHeight = 0;\n }\n }\n return anchorToRowBlock;\n }\n function makeIdentity() {\n return {\n firstRowIndex: null,\n lastRowIndex: null,\n rows: []\n };\n }\n }\n });\n\n // src/traces/table/data_split_helpers.js\n var require_data_split_helpers = __commonJS({\n \"src/traces/table/data_split_helpers.js\"(exports) {\n \"use strict\";\n var extendFlat = require_extend().extendFlat;\n exports.splitToPanels = function(d) {\n var prevPages = [0, 0];\n var headerPanel = extendFlat({}, d, {\n key: \"header\",\n type: \"header\",\n page: 0,\n prevPages,\n currentRepaint: [null, null],\n dragHandle: true,\n values: d.calcdata.headerCells.values[d.specIndex],\n rowBlocks: d.calcdata.headerRowBlocks,\n calcdata: extendFlat({}, d.calcdata, { cells: d.calcdata.headerCells })\n });\n var revolverPanel1 = extendFlat({}, d, {\n key: \"cells1\",\n type: \"cells\",\n page: 0,\n prevPages,\n currentRepaint: [null, null],\n dragHandle: false,\n values: d.calcdata.cells.values[d.specIndex],\n rowBlocks: d.calcdata.rowBlocks\n });\n var revolverPanel2 = extendFlat({}, d, {\n key: \"cells2\",\n type: \"cells\",\n page: 1,\n prevPages,\n currentRepaint: [null, null],\n dragHandle: false,\n values: d.calcdata.cells.values[d.specIndex],\n rowBlocks: d.calcdata.rowBlocks\n });\n return [revolverPanel1, revolverPanel2, headerPanel];\n };\n exports.splitToCells = function(d) {\n var fromTo = rowFromTo(d);\n return (d.values || []).slice(fromTo[0], fromTo[1]).map(function(v, i) {\n var buster = typeof v === \"string\" && v.match(/[<$&> ]/) ? \"_keybuster_\" + Math.random() : \"\";\n return {\n // keyWithinBlock: /*fromTo[0] + */i, // optimized future version - no busting\n // keyWithinBlock: fromTo[0] + i, // initial always-unoptimized version - janky scrolling with 5+ columns\n keyWithinBlock: i + buster,\n // current compromise: regular content is very fast; async content is possible\n key: fromTo[0] + i,\n column: d,\n calcdata: d.calcdata,\n page: d.page,\n rowBlocks: d.rowBlocks,\n value: v\n };\n });\n };\n function rowFromTo(d) {\n var rowBlock = d.rowBlocks[d.page];\n var rowFrom = rowBlock ? rowBlock.rows[0].rowIndex : 0;\n var rowTo = rowBlock ? rowFrom + rowBlock.rows.length : 0;\n return [rowFrom, rowTo];\n }\n }\n });\n\n // src/traces/table/plot.js\n var require_plot31 = __commonJS({\n \"src/traces/table/plot.js\"(exports, module) {\n \"use strict\";\n var c = require_constants31();\n var d3 = require_d3();\n var Lib = require_lib();\n var numberFormat = Lib.numberFormat;\n var gup = require_gup();\n var Drawing = require_drawing();\n var svgUtil = require_svg_text_utils();\n var raiseToTop = require_lib().raiseToTop;\n var strTranslate = require_lib().strTranslate;\n var cancelEeaseColumn = require_lib().cancelTransition;\n var prepareData = require_data_preparation_helper();\n var splitData = require_data_split_helpers();\n var Color2 = require_color();\n module.exports = function plot(gd, wrappedTraceHolders) {\n var dynamic = !gd._context.staticPlot;\n var table = gd._fullLayout._paper.selectAll(\".\" + c.cn.table).data(wrappedTraceHolders.map(function(wrappedTraceHolder) {\n var traceHolder = gup.unwrap(wrappedTraceHolder);\n var trace = traceHolder.trace;\n return prepareData(gd, trace);\n }), gup.keyFun);\n table.exit().remove();\n table.enter().append(\"g\").classed(c.cn.table, true).attr(\"overflow\", \"visible\").style(\"box-sizing\", \"content-box\").style(\"position\", \"absolute\").style(\"left\", 0).style(\"overflow\", \"visible\").style(\"shape-rendering\", \"crispEdges\").style(\"pointer-events\", \"all\");\n table.attr(\"width\", function(d) {\n return d.width + d.size.l + d.size.r;\n }).attr(\"height\", function(d) {\n return d.height + d.size.t + d.size.b;\n }).attr(\"transform\", function(d) {\n return strTranslate(d.translateX, d.translateY);\n });\n var tableControlView = table.selectAll(\".\" + c.cn.tableControlView).data(gup.repeat, gup.keyFun);\n var cvEnter = tableControlView.enter().append(\"g\").classed(c.cn.tableControlView, true).style(\"box-sizing\", \"content-box\");\n if (dynamic) {\n var wheelEvent = \"onwheel\" in document ? \"wheel\" : \"mousewheel\";\n cvEnter.on(\"mousemove\", function(d) {\n tableControlView.filter(function(dd) {\n return d === dd;\n }).call(renderScrollbarKit, gd);\n }).on(wheelEvent, function(d) {\n if (d.scrollbarState.wheeling) return;\n d.scrollbarState.wheeling = true;\n var newY = d.scrollY + d3.event.deltaY;\n var noChange = makeDragRow(gd, tableControlView, null, newY)(d);\n if (!noChange) {\n d3.event.stopPropagation();\n d3.event.preventDefault();\n }\n d.scrollbarState.wheeling = false;\n }).call(renderScrollbarKit, gd, true);\n }\n tableControlView.attr(\"transform\", function(d) {\n return strTranslate(d.size.l, d.size.t);\n });\n var scrollBackground = tableControlView.selectAll(\".\" + c.cn.scrollBackground).data(gup.repeat, gup.keyFun);\n scrollBackground.enter().append(\"rect\").classed(c.cn.scrollBackground, true).attr(\"fill\", \"none\");\n scrollBackground.attr(\"width\", function(d) {\n return d.width;\n }).attr(\"height\", function(d) {\n return d.height;\n });\n tableControlView.each(function(d) {\n Drawing.setClipUrl(d3.select(this), scrollAreaBottomClipKey(gd, d), gd);\n });\n var yColumn = tableControlView.selectAll(\".\" + c.cn.yColumn).data(function(vm) {\n return vm.columns;\n }, gup.keyFun);\n yColumn.enter().append(\"g\").classed(c.cn.yColumn, true);\n yColumn.exit().remove();\n yColumn.attr(\"transform\", function(d) {\n return strTranslate(d.x, 0);\n });\n if (dynamic) {\n yColumn.call(\n d3.behavior.drag().origin(function(d) {\n var movedColumn = d3.select(this);\n easeColumn(movedColumn, d, -c.uplift);\n raiseToTop(this);\n d.calcdata.columnDragInProgress = true;\n renderScrollbarKit(tableControlView.filter(function(dd) {\n return d.calcdata.key === dd.key;\n }), gd);\n return d;\n }).on(\"drag\", function(d) {\n var movedColumn = d3.select(this);\n var getter = function(dd) {\n return (d === dd ? d3.event.x : dd.x) + dd.columnWidth / 2;\n };\n d.x = Math.max(-c.overdrag, Math.min(d.calcdata.width + c.overdrag - d.columnWidth, d3.event.x));\n var sortableColumns = flatData(yColumn).filter(function(dd) {\n return dd.calcdata.key === d.calcdata.key;\n });\n var newOrder = sortableColumns.sort(function(a, b) {\n return getter(a) - getter(b);\n });\n newOrder.forEach(function(dd, i) {\n dd.xIndex = i;\n dd.x = d === dd ? dd.x : dd.xScale(dd);\n });\n yColumn.filter(function(dd) {\n return d !== dd;\n }).transition().ease(c.transitionEase).duration(c.transitionDuration).attr(\"transform\", function(d2) {\n return strTranslate(d2.x, 0);\n });\n movedColumn.call(cancelEeaseColumn).attr(\"transform\", strTranslate(d.x, -c.uplift));\n }).on(\"dragend\", function(d) {\n var movedColumn = d3.select(this);\n var p = d.calcdata;\n d.x = d.xScale(d);\n d.calcdata.columnDragInProgress = false;\n easeColumn(movedColumn, d, 0);\n columnMoved(gd, p, p.columns.map(function(dd) {\n return dd.xIndex;\n }));\n })\n );\n }\n yColumn.each(function(d) {\n Drawing.setClipUrl(d3.select(this), columnBoundaryClipKey(gd, d), gd);\n });\n var columnBlock = yColumn.selectAll(\".\" + c.cn.columnBlock).data(splitData.splitToPanels, gup.keyFun);\n columnBlock.enter().append(\"g\").classed(c.cn.columnBlock, true).attr(\"id\", function(d) {\n return d.key;\n });\n columnBlock.style(\"cursor\", function(d) {\n return d.dragHandle ? \"ew-resize\" : d.calcdata.scrollbarState.barWiggleRoom ? \"ns-resize\" : \"default\";\n });\n var headerColumnBlock = columnBlock.filter(headerBlock);\n var cellsColumnBlock = columnBlock.filter(cellsBlock);\n if (dynamic) {\n cellsColumnBlock.call(\n d3.behavior.drag().origin(function(d) {\n d3.event.stopPropagation();\n return d;\n }).on(\"drag\", makeDragRow(gd, tableControlView, -1)).on(\"dragend\", function() {\n })\n );\n }\n renderColumnCellTree(gd, tableControlView, headerColumnBlock, columnBlock);\n renderColumnCellTree(gd, tableControlView, cellsColumnBlock, columnBlock);\n var scrollAreaClip = tableControlView.selectAll(\".\" + c.cn.scrollAreaClip).data(gup.repeat, gup.keyFun);\n scrollAreaClip.enter().append(\"clipPath\").classed(c.cn.scrollAreaClip, true).attr(\"id\", function(d) {\n return scrollAreaBottomClipKey(gd, d);\n });\n var scrollAreaClipRect = scrollAreaClip.selectAll(\".\" + c.cn.scrollAreaClipRect).data(gup.repeat, gup.keyFun);\n scrollAreaClipRect.enter().append(\"rect\").classed(c.cn.scrollAreaClipRect, true).attr(\"x\", -c.overdrag).attr(\"y\", -c.uplift).attr(\"fill\", \"none\");\n scrollAreaClipRect.attr(\"width\", function(d) {\n return d.width + 2 * c.overdrag;\n }).attr(\"height\", function(d) {\n return d.height + c.uplift;\n });\n var columnBoundary = yColumn.selectAll(\".\" + c.cn.columnBoundary).data(gup.repeat, gup.keyFun);\n columnBoundary.enter().append(\"g\").classed(c.cn.columnBoundary, true);\n var columnBoundaryClippath = yColumn.selectAll(\".\" + c.cn.columnBoundaryClippath).data(gup.repeat, gup.keyFun);\n columnBoundaryClippath.enter().append(\"clipPath\").classed(c.cn.columnBoundaryClippath, true);\n columnBoundaryClippath.attr(\"id\", function(d) {\n return columnBoundaryClipKey(gd, d);\n });\n var columnBoundaryRect = columnBoundaryClippath.selectAll(\".\" + c.cn.columnBoundaryRect).data(gup.repeat, gup.keyFun);\n columnBoundaryRect.enter().append(\"rect\").classed(c.cn.columnBoundaryRect, true).attr(\"fill\", \"none\");\n columnBoundaryRect.attr(\"width\", function(d) {\n return d.columnWidth + 2 * roundHalfWidth(d);\n }).attr(\"height\", function(d) {\n return d.calcdata.height + 2 * roundHalfWidth(d) + c.uplift;\n }).attr(\"x\", function(d) {\n return -roundHalfWidth(d);\n }).attr(\"y\", function(d) {\n return -roundHalfWidth(d);\n });\n updateBlockYPosition(null, cellsColumnBlock, tableControlView);\n };\n function roundHalfWidth(d) {\n return Math.ceil(d.calcdata.maxLineWidth / 2);\n }\n function scrollAreaBottomClipKey(gd, d) {\n return \"clip\" + gd._fullLayout._uid + \"_scrollAreaBottomClip_\" + d.key;\n }\n function columnBoundaryClipKey(gd, d) {\n return \"clip\" + gd._fullLayout._uid + \"_columnBoundaryClippath_\" + d.calcdata.key + \"_\" + d.specIndex;\n }\n function flatData(selection) {\n return [].concat.apply([], selection.map(function(g) {\n return g;\n })).map(function(g) {\n return g.__data__;\n });\n }\n function renderScrollbarKit(tableControlView, gd, bypassVisibleBar) {\n function calcTotalHeight(d) {\n var blocks = d.rowBlocks;\n return firstRowAnchor(blocks, blocks.length - 1) + (blocks.length ? rowsHeight(blocks[blocks.length - 1], Infinity) : 1);\n }\n var scrollbarKit = tableControlView.selectAll(\".\" + c.cn.scrollbarKit).data(gup.repeat, gup.keyFun);\n scrollbarKit.enter().append(\"g\").classed(c.cn.scrollbarKit, true).style(\"shape-rendering\", \"geometricPrecision\");\n scrollbarKit.each(function(d) {\n var s = d.scrollbarState;\n s.totalHeight = calcTotalHeight(d);\n s.scrollableAreaHeight = d.groupHeight - headerHeight(d);\n s.currentlyVisibleHeight = Math.min(s.totalHeight, s.scrollableAreaHeight);\n s.ratio = s.currentlyVisibleHeight / s.totalHeight;\n s.barLength = Math.max(s.ratio * s.currentlyVisibleHeight, c.goldenRatio * c.scrollbarWidth);\n s.barWiggleRoom = s.currentlyVisibleHeight - s.barLength;\n s.wiggleRoom = Math.max(0, s.totalHeight - s.scrollableAreaHeight);\n s.topY = s.barWiggleRoom === 0 ? 0 : d.scrollY / s.wiggleRoom * s.barWiggleRoom;\n s.bottomY = s.topY + s.barLength;\n s.dragMultiplier = s.wiggleRoom / s.barWiggleRoom;\n }).attr(\"transform\", function(d) {\n var xPosition2 = d.width + c.scrollbarWidth / 2 + c.scrollbarOffset;\n return strTranslate(xPosition2, headerHeight(d));\n });\n var scrollbar = scrollbarKit.selectAll(\".\" + c.cn.scrollbar).data(gup.repeat, gup.keyFun);\n scrollbar.enter().append(\"g\").classed(c.cn.scrollbar, true);\n var scrollbarSlider = scrollbar.selectAll(\".\" + c.cn.scrollbarSlider).data(gup.repeat, gup.keyFun);\n scrollbarSlider.enter().append(\"g\").classed(c.cn.scrollbarSlider, true);\n scrollbarSlider.attr(\"transform\", function(d) {\n return strTranslate(0, d.scrollbarState.topY || 0);\n });\n var scrollbarGlyph = scrollbarSlider.selectAll(\".\" + c.cn.scrollbarGlyph).data(gup.repeat, gup.keyFun);\n scrollbarGlyph.enter().append(\"line\").classed(c.cn.scrollbarGlyph, true).attr(\"stroke\", \"black\").attr(\"stroke-width\", c.scrollbarWidth).attr(\"stroke-linecap\", \"round\").attr(\"y1\", c.scrollbarWidth / 2);\n scrollbarGlyph.attr(\"y2\", function(d) {\n return d.scrollbarState.barLength - c.scrollbarWidth / 2;\n }).attr(\"stroke-opacity\", function(d) {\n return d.columnDragInProgress || !d.scrollbarState.barWiggleRoom || bypassVisibleBar ? 0 : 0.4;\n });\n scrollbarGlyph.transition().delay(0).duration(0);\n scrollbarGlyph.transition().delay(c.scrollbarHideDelay).duration(c.scrollbarHideDuration).attr(\"stroke-opacity\", 0);\n var scrollbarCaptureZone = scrollbar.selectAll(\".\" + c.cn.scrollbarCaptureZone).data(gup.repeat, gup.keyFun);\n scrollbarCaptureZone.enter().append(\"line\").classed(c.cn.scrollbarCaptureZone, true).attr(\"stroke\", \"white\").attr(\"stroke-opacity\", 0.01).attr(\"stroke-width\", c.scrollbarCaptureWidth).attr(\"stroke-linecap\", \"butt\").attr(\"y1\", 0).on(\"mousedown\", function(d) {\n var y = d3.event.y;\n var bbox = this.getBoundingClientRect();\n var s = d.scrollbarState;\n var pixelVal = y - bbox.top;\n var inverseScale = d3.scale.linear().domain([0, s.scrollableAreaHeight]).range([0, s.totalHeight]).clamp(true);\n if (!(s.topY <= pixelVal && pixelVal <= s.bottomY)) {\n makeDragRow(gd, tableControlView, null, inverseScale(pixelVal - s.barLength / 2))(d);\n }\n }).call(\n d3.behavior.drag().origin(function(d) {\n d3.event.stopPropagation();\n d.scrollbarState.scrollbarScrollInProgress = true;\n return d;\n }).on(\"drag\", makeDragRow(gd, tableControlView)).on(\"dragend\", function() {\n })\n );\n scrollbarCaptureZone.attr(\"y2\", function(d) {\n return d.scrollbarState.scrollableAreaHeight;\n });\n if (gd._context.staticPlot) {\n scrollbarGlyph.remove();\n scrollbarCaptureZone.remove();\n }\n }\n function renderColumnCellTree(gd, tableControlView, columnBlock, allColumnBlock) {\n var columnCells = renderColumnCells(columnBlock);\n var columnCell = renderColumnCell(columnCells);\n supplyStylingValues(columnCell);\n var cellRect = renderCellRect(columnCell);\n sizeAndStyleRect(cellRect);\n var cellTextHolder = renderCellTextHolder(columnCell);\n var cellText = renderCellText(cellTextHolder);\n setFont(cellText);\n populateCellText(cellText, tableControlView, allColumnBlock, gd);\n setCellHeightAndPositionY(columnCell);\n }\n function renderColumnCells(columnBlock) {\n var columnCells = columnBlock.selectAll(\".\" + c.cn.columnCells).data(gup.repeat, gup.keyFun);\n columnCells.enter().append(\"g\").classed(c.cn.columnCells, true);\n columnCells.exit().remove();\n return columnCells;\n }\n function renderColumnCell(columnCells) {\n var columnCell = columnCells.selectAll(\".\" + c.cn.columnCell).data(splitData.splitToCells, function(d) {\n return d.keyWithinBlock;\n });\n columnCell.enter().append(\"g\").classed(c.cn.columnCell, true);\n columnCell.exit().remove();\n return columnCell;\n }\n function renderCellRect(columnCell) {\n var cellRect = columnCell.selectAll(\".\" + c.cn.cellRect).data(gup.repeat, function(d) {\n return d.keyWithinBlock;\n });\n cellRect.enter().append(\"rect\").classed(c.cn.cellRect, true);\n return cellRect;\n }\n function renderCellText(cellTextHolder) {\n var cellText = cellTextHolder.selectAll(\".\" + c.cn.cellText).data(gup.repeat, function(d) {\n return d.keyWithinBlock;\n });\n cellText.enter().append(\"text\").classed(c.cn.cellText, true).style(\"cursor\", function() {\n return \"auto\";\n }).on(\"mousedown\", function() {\n d3.event.stopPropagation();\n });\n return cellText;\n }\n function renderCellTextHolder(columnCell) {\n var cellTextHolder = columnCell.selectAll(\".\" + c.cn.cellTextHolder).data(gup.repeat, function(d) {\n return d.keyWithinBlock;\n });\n cellTextHolder.enter().append(\"g\").classed(c.cn.cellTextHolder, true).style(\"shape-rendering\", \"geometricPrecision\");\n return cellTextHolder;\n }\n function supplyStylingValues(columnCell) {\n columnCell.each(function(d, i) {\n var spec = d.calcdata.cells.font;\n var col = d.column.specIndex;\n var font = {\n size: gridPick(spec.size, col, i),\n color: gridPick(spec.color, col, i),\n family: gridPick(spec.family, col, i),\n weight: gridPick(spec.weight, col, i),\n style: gridPick(spec.style, col, i),\n variant: gridPick(spec.variant, col, i),\n textcase: gridPick(spec.textcase, col, i),\n lineposition: gridPick(spec.lineposition, col, i),\n shadow: gridPick(spec.shadow, col, i)\n };\n d.rowNumber = d.key;\n d.align = gridPick(d.calcdata.cells.align, col, i);\n d.cellBorderWidth = gridPick(d.calcdata.cells.line.width, col, i);\n d.font = font;\n });\n }\n function setFont(cellText) {\n cellText.each(function(d) {\n Drawing.font(d3.select(this), d.font);\n });\n }\n function sizeAndStyleRect(cellRect) {\n cellRect.attr(\"width\", function(d) {\n return d.column.columnWidth;\n }).attr(\"stroke-width\", function(d) {\n return d.cellBorderWidth;\n }).each(function(d) {\n var atomicSelection = d3.select(this);\n Color2.stroke(atomicSelection, gridPick(d.calcdata.cells.line.color, d.column.specIndex, d.rowNumber));\n Color2.fill(atomicSelection, gridPick(d.calcdata.cells.fill.color, d.column.specIndex, d.rowNumber));\n });\n }\n function populateCellText(cellText, tableControlView, allColumnBlock, gd) {\n cellText.text(function(d) {\n var col = d.column.specIndex;\n var row = d.rowNumber;\n var userSuppliedContent = d.value;\n var stringSupplied = typeof userSuppliedContent === \"string\";\n var hasBreaks = stringSupplied && userSuppliedContent.match(/
/i);\n var userBrokenText = !stringSupplied || hasBreaks;\n d.mayHaveMarkup = stringSupplied && userSuppliedContent.match(/[<&>]/);\n var latex = isLatex(userSuppliedContent);\n d.latex = latex;\n var prefix = latex ? \"\" : gridPick(d.calcdata.cells.prefix, col, row) || \"\";\n var suffix = latex ? \"\" : gridPick(d.calcdata.cells.suffix, col, row) || \"\";\n var format = latex ? null : gridPick(d.calcdata.cells.format, col, row) || null;\n var prefixSuffixedText = prefix + (format ? numberFormat(format)(d.value) : d.value) + suffix;\n var hasWrapSplitCharacter;\n d.wrappingNeeded = !d.wrapped && !userBrokenText && !latex && (hasWrapSplitCharacter = hasWrapCharacter(prefixSuffixedText));\n d.cellHeightMayIncrease = hasBreaks || latex || d.mayHaveMarkup || (hasWrapSplitCharacter === void 0 ? hasWrapCharacter(prefixSuffixedText) : hasWrapSplitCharacter);\n d.needsConvertToTspans = d.mayHaveMarkup || d.wrappingNeeded || d.latex;\n var textToRender;\n if (d.wrappingNeeded) {\n var hrefPreservedText = c.wrapSplitCharacter === \" \" ? prefixSuffixedText.replace(/ pTop) {\n pages.push(blockIndex);\n }\n pTop += rowsHeight2;\n }\n return pages;\n }\n function updateBlockYPosition(gd, cellsColumnBlock, tableControlView) {\n var d = flatData(cellsColumnBlock)[0];\n if (d === void 0) return;\n var blocks = d.rowBlocks;\n var calcdata = d.calcdata;\n var bottom = firstRowAnchor(blocks, blocks.length);\n var scrollHeight = d.calcdata.groupHeight - headerHeight(d);\n var scrollY = calcdata.scrollY = Math.max(0, Math.min(bottom - scrollHeight, calcdata.scrollY));\n var pages = findPagesAndCacheHeights(blocks, scrollY, scrollHeight);\n if (pages.length === 1) {\n if (pages[0] === blocks.length - 1) {\n pages.unshift(pages[0] - 1);\n } else {\n pages.push(pages[0] + 1);\n }\n }\n if (pages[0] % 2) {\n pages.reverse();\n }\n cellsColumnBlock.each(function(d2, i) {\n d2.page = pages[i];\n d2.scrollY = scrollY;\n });\n cellsColumnBlock.attr(\"transform\", function(d2) {\n var yTranslate = firstRowAnchor(d2.rowBlocks, d2.page) - d2.scrollY;\n return strTranslate(0, yTranslate);\n });\n if (gd) {\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 0);\n conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, d.prevPages, d, 1);\n renderScrollbarKit(tableControlView, gd);\n }\n }\n function makeDragRow(gd, allTableControlView, optionalMultiplier, optionalPosition) {\n return function dragRow(eventD) {\n var d = eventD.calcdata ? eventD.calcdata : eventD;\n var tableControlView = allTableControlView.filter(function(dd) {\n return d.key === dd.key;\n });\n var multiplier = optionalMultiplier || d.scrollbarState.dragMultiplier;\n var initialScrollY = d.scrollY;\n d.scrollY = optionalPosition === void 0 ? d.scrollY + multiplier * d3.event.dy : optionalPosition;\n var cellsColumnBlock = tableControlView.selectAll(\".\" + c.cn.yColumn).selectAll(\".\" + c.cn.columnBlock).filter(cellsBlock);\n updateBlockYPosition(gd, cellsColumnBlock, tableControlView);\n return d.scrollY === initialScrollY;\n };\n }\n function conditionalPanelRerender(gd, tableControlView, cellsColumnBlock, pages, prevPages, d, revolverIndex) {\n var shouldComponentUpdate = pages[revolverIndex] !== prevPages[revolverIndex];\n if (shouldComponentUpdate) {\n clearTimeout(d.currentRepaint[revolverIndex]);\n d.currentRepaint[revolverIndex] = setTimeout(function() {\n var toRerender = cellsColumnBlock.filter(function(d2, i) {\n return i === revolverIndex && pages[i] !== prevPages[i];\n });\n renderColumnCellTree(gd, tableControlView, toRerender, cellsColumnBlock);\n prevPages[revolverIndex] = pages[revolverIndex];\n });\n }\n }\n function wrapTextMaker(columnBlock, element, tableControlView, gd) {\n return function wrapText() {\n var cellTextHolder = d3.select(element.parentNode);\n cellTextHolder.each(function(d) {\n var fragments = d.fragments;\n cellTextHolder.selectAll(\"tspan.line\").each(function(dd, i) {\n fragments[i].width = this.getComputedTextLength();\n });\n var separatorLength = fragments[fragments.length - 1].width;\n var rest = fragments.slice(0, -1);\n var currentRow = [];\n var currentAddition, currentAdditionLength;\n var currentRowLength = 0;\n var rowLengthLimit = d.column.columnWidth - 2 * c.cellPad;\n d.value = \"\";\n while (rest.length) {\n currentAddition = rest.shift();\n currentAdditionLength = currentAddition.width + separatorLength;\n if (currentRowLength + currentAdditionLength > rowLengthLimit) {\n d.value += currentRow.join(c.wrapSpacer) + c.lineBreaker;\n currentRow = [];\n currentRowLength = 0;\n }\n currentRow.push(currentAddition.text);\n currentRowLength += currentAdditionLength;\n }\n if (currentRowLength) {\n d.value += currentRow.join(c.wrapSpacer);\n }\n d.wrapped = true;\n });\n cellTextHolder.selectAll(\"tspan.line\").remove();\n populateCellText(cellTextHolder.select(\".\" + c.cn.cellText), tableControlView, columnBlock, gd);\n d3.select(element.parentNode.parentNode).call(setCellHeightAndPositionY);\n };\n }\n function updateYPositionMaker(columnBlock, element, tableControlView, gd, d) {\n return function updateYPosition() {\n if (d.settledY) return;\n var cellTextHolder = d3.select(element.parentNode);\n var l = getBlock(d);\n var rowIndex = d.key - l.firstRowIndex;\n var declaredRowHeight = l.rows[rowIndex].rowHeight;\n var requiredHeight = d.cellHeightMayIncrease ? element.parentNode.getBoundingClientRect().height + 2 * c.cellPad : declaredRowHeight;\n var finalHeight = Math.max(requiredHeight, declaredRowHeight);\n var increase = finalHeight - l.rows[rowIndex].rowHeight;\n if (increase) {\n l.rows[rowIndex].rowHeight = finalHeight;\n columnBlock.selectAll(\".\" + c.cn.columnCell).call(setCellHeightAndPositionY);\n updateBlockYPosition(null, columnBlock.filter(cellsBlock), 0);\n renderScrollbarKit(tableControlView, gd, true);\n }\n cellTextHolder.attr(\"transform\", function() {\n var element2 = this;\n var columnCellElement = element2.parentNode;\n var box = columnCellElement.getBoundingClientRect();\n var rectBox = d3.select(element2.parentNode).select(\".\" + c.cn.cellRect).node().getBoundingClientRect();\n var currentTransform = element2.transform.baseVal.consolidate();\n var yPosition = rectBox.top - box.top + (currentTransform ? currentTransform.matrix.f : c.cellPad);\n return strTranslate(xPosition(d, d3.select(element2.parentNode).select(\".\" + c.cn.cellTextHolder).node().getBoundingClientRect().width), yPosition);\n });\n d.settledY = true;\n };\n }\n function xPosition(d, optionalWidth) {\n switch (d.align) {\n case \"left\":\n return c.cellPad;\n case \"right\":\n return d.column.columnWidth - (optionalWidth || 0) - c.cellPad;\n case \"center\":\n return (d.column.columnWidth - (optionalWidth || 0)) / 2;\n default:\n return c.cellPad;\n }\n }\n function setCellHeightAndPositionY(columnCell) {\n columnCell.attr(\"transform\", function(d) {\n var headerHeight2 = d.rowBlocks[0].auxiliaryBlocks.reduce(function(p, n) {\n return p + rowsHeight(n, Infinity);\n }, 0);\n var l = getBlock(d);\n var rowAnchor = rowsHeight(l, d.key);\n var yOffset = rowAnchor + headerHeight2;\n return strTranslate(0, yOffset);\n }).selectAll(\".\" + c.cn.cellRect).attr(\"height\", function(d) {\n return getRow(getBlock(d), d.key).rowHeight;\n });\n }\n function firstRowAnchor(blocks, page) {\n var total = 0;\n for (var i = page - 1; i >= 0; i--) {\n total += allRowsHeight(blocks[i]);\n }\n return total;\n }\n function rowsHeight(rowBlock, key) {\n var total = 0;\n for (var i = 0; i < rowBlock.rows.length && rowBlock.rows[i].rowIndex < key; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n return total;\n }\n function allRowsHeight(rowBlock) {\n var cached = rowBlock.allRowsHeight;\n if (cached !== void 0) {\n return cached;\n }\n var total = 0;\n for (var i = 0; i < rowBlock.rows.length; i++) {\n total += rowBlock.rows[i].rowHeight;\n }\n rowBlock.allRowsHeight = total;\n return total;\n }\n function getBlock(d) {\n return d.rowBlocks[d.page];\n }\n function getRow(l, i) {\n return l.rows[i - l.firstRowIndex];\n }\n }\n });\n\n // src/traces/table/base_plot.js\n var require_base_plot11 = __commonJS({\n \"src/traces/table/base_plot.js\"(exports) {\n \"use strict\";\n var getModuleCalcData = require_get_data().getModuleCalcData;\n var tablePlot = require_plot31();\n var TABLE = \"table\";\n exports.name = TABLE;\n exports.plot = function(gd) {\n var calcData = getModuleCalcData(gd.calcdata, TABLE)[0];\n if (calcData.length) tablePlot(gd, calcData);\n };\n exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var hadTable = oldFullLayout._has && oldFullLayout._has(TABLE);\n var hasTable = newFullLayout._has && newFullLayout._has(TABLE);\n if (hadTable && !hasTable) {\n oldFullLayout._paperdiv.selectAll(\".table\").remove();\n }\n };\n }\n });\n\n // src/traces/table/index.js\n var require_table = __commonJS({\n \"src/traces/table/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes62(),\n supplyDefaults: require_defaults58(),\n calc: require_calc37(),\n plot: require_plot31(),\n moduleType: \"trace\",\n name: \"table\",\n basePlotModule: require_base_plot11(),\n categories: [\"noOpacity\"],\n meta: {}\n };\n }\n });\n\n // lib/table.js\n var require_table2 = __commonJS({\n \"lib/table.js\"(exports, module) {\n \"use strict\";\n module.exports = require_table();\n }\n });\n\n // src/traces/carpet/axis_attributes.js\n var require_axis_attributes2 = __commonJS({\n \"src/traces/carpet/axis_attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var colorAttrs = require_attributes3();\n var axesAttrs = require_layout_attributes4();\n var descriptionWithDates = require_axis_format_attributes().descriptionWithDates;\n var overrideAll = require_edit_types().overrideAll;\n var dash = require_attributes4().dash;\n var extendFlat = require_extend().extendFlat;\n module.exports = {\n color: {\n valType: \"color\",\n editType: \"calc\"\n },\n smoothing: {\n valType: \"number\",\n dflt: 1,\n min: 0,\n max: 1.3,\n editType: \"calc\"\n },\n title: {\n text: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n font: fontAttrs({\n editType: \"calc\"\n }),\n // TODO how is this different than `title.standoff`\n offset: {\n valType: \"number\",\n dflt: 10,\n editType: \"calc\"\n },\n editType: \"calc\"\n },\n type: {\n valType: \"enumerated\",\n // '-' means we haven't yet run autotype or couldn't find any data\n // it gets turned into linear in gd._fullLayout but not copied back\n // to gd.data like the others are.\n values: [\"-\", \"linear\", \"date\", \"category\"],\n dflt: \"-\",\n editType: \"calc\"\n },\n autotypenumbers: axesAttrs.autotypenumbers,\n autorange: {\n valType: \"enumerated\",\n values: [true, false, \"reversed\"],\n dflt: true,\n editType: \"calc\"\n },\n rangemode: {\n valType: \"enumerated\",\n values: [\"normal\", \"tozero\", \"nonnegative\"],\n dflt: \"normal\",\n editType: \"calc\"\n },\n range: {\n valType: \"info_array\",\n editType: \"calc\",\n items: [\n { valType: \"any\", editType: \"calc\" },\n { valType: \"any\", editType: \"calc\" }\n ]\n },\n fixedrange: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n cheatertype: {\n valType: \"enumerated\",\n values: [\"index\", \"value\"],\n dflt: \"value\",\n editType: \"calc\"\n },\n tickmode: {\n valType: \"enumerated\",\n values: [\"linear\", \"array\"],\n dflt: \"array\",\n editType: \"calc\"\n },\n nticks: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n tickvals: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n ticktext: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n showticklabels: {\n valType: \"enumerated\",\n values: [\"start\", \"end\", \"both\", \"none\"],\n dflt: \"start\",\n editType: \"calc\"\n },\n labelalias: extendFlat({}, axesAttrs.labelalias, { editType: \"calc\" }),\n tickfont: fontAttrs({\n editType: \"calc\"\n }),\n tickangle: {\n valType: \"angle\",\n dflt: \"auto\",\n editType: \"calc\"\n },\n tickprefix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n showtickprefix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"calc\"\n },\n ticksuffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n showticksuffix: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"calc\"\n },\n showexponent: {\n valType: \"enumerated\",\n values: [\"all\", \"first\", \"last\", \"none\"],\n dflt: \"all\",\n editType: \"calc\"\n },\n exponentformat: {\n valType: \"enumerated\",\n values: [\"none\", \"e\", \"E\", \"power\", \"SI\", \"B\"],\n dflt: \"B\",\n editType: \"calc\"\n },\n minexponent: {\n valType: \"number\",\n dflt: 3,\n min: 0,\n editType: \"calc\"\n },\n separatethousands: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n tickformat: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\",\n description: descriptionWithDates(\"tick label\")\n },\n tickformatstops: overrideAll(axesAttrs.tickformatstops, \"calc\", \"from-root\"),\n categoryorder: {\n valType: \"enumerated\",\n values: [\n \"trace\",\n \"category ascending\",\n \"category descending\",\n \"array\"\n /* , 'value ascending', 'value descending'*/\n // value ascending / descending to be implemented later\n ],\n dflt: \"trace\",\n editType: \"calc\"\n },\n categoryarray: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n labelpadding: {\n valType: \"integer\",\n dflt: 10,\n editType: \"calc\"\n },\n labelprefix: {\n valType: \"string\",\n editType: \"calc\"\n },\n labelsuffix: {\n valType: \"string\",\n dflt: \"\",\n editType: \"calc\"\n },\n // lines and grids\n showline: {\n valType: \"boolean\",\n dflt: false,\n editType: \"calc\"\n },\n linecolor: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"calc\"\n },\n linewidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n gridcolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n gridwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n griddash: extendFlat({}, dash, { editType: \"calc\" }),\n showgrid: {\n valType: \"boolean\",\n dflt: true,\n editType: \"calc\"\n },\n minorgridcount: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n minorgridwidth: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n minorgriddash: extendFlat({}, dash, { editType: \"calc\" }),\n minorgridcolor: {\n valType: \"color\",\n dflt: colorAttrs.lightLine,\n editType: \"calc\"\n },\n startline: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n startlinecolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n startlinewidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n endline: {\n valType: \"boolean\",\n editType: \"calc\"\n },\n endlinewidth: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n endlinecolor: {\n valType: \"color\",\n editType: \"calc\"\n },\n tick0: {\n valType: \"number\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n dtick: {\n valType: \"number\",\n min: 0,\n dflt: 1,\n editType: \"calc\"\n },\n arraytick0: {\n valType: \"integer\",\n min: 0,\n dflt: 0,\n editType: \"calc\"\n },\n arraydtick: {\n valType: \"integer\",\n min: 1,\n dflt: 1,\n editType: \"calc\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/traces/carpet/attributes.js\n var require_attributes63 = __commonJS({\n \"src/traces/carpet/attributes.js\"(exports, module) {\n \"use strict\";\n var fontAttrs = require_font_attributes();\n var axisAttrs = require_axis_attributes2();\n var colorAttrs = require_attributes3();\n var carpetFont = fontAttrs({\n editType: \"calc\"\n });\n var zorder = require_attributes12().zorder;\n carpetFont.family.dflt = '\"Open Sans\", verdana, arial, sans-serif';\n carpetFont.size.dflt = 12;\n carpetFont.color.dflt = colorAttrs.defaultLine;\n module.exports = {\n carpet: {\n valType: \"string\",\n editType: \"calc\"\n },\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n y: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n a: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n a0: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc\"\n },\n da: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n b: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n b0: {\n valType: \"number\",\n dflt: 0,\n editType: \"calc\"\n },\n db: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n cheaterslope: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n aaxis: axisAttrs,\n baxis: axisAttrs,\n font: carpetFont,\n color: {\n valType: \"color\",\n dflt: colorAttrs.defaultLine,\n editType: \"plot\"\n },\n zorder\n };\n }\n });\n\n // src/traces/carpet/xy_defaults.js\n var require_xy_defaults2 = __commonJS({\n \"src/traces/carpet/xy_defaults.js\"(exports, module) {\n \"use strict\";\n var isArray1D = require_lib().isArray1D;\n module.exports = function handleXYDefaults(traceIn, traceOut, coerce) {\n var x = coerce(\"x\");\n var hasX = x && x.length;\n var y = coerce(\"y\");\n var hasY = y && y.length;\n if (!hasX && !hasY) return false;\n traceOut._cheater = !x;\n if ((!hasX || isArray1D(x)) && (!hasY || isArray1D(y))) {\n var len = hasX ? x.length : Infinity;\n if (hasY) len = Math.min(len, y.length);\n if (traceOut.a && traceOut.a.length) len = Math.min(len, traceOut.a.length);\n if (traceOut.b && traceOut.b.length) len = Math.min(len, traceOut.b.length);\n traceOut._length = len;\n } else traceOut._length = null;\n return true;\n };\n }\n });\n\n // src/traces/carpet/axis_defaults.js\n var require_axis_defaults3 = __commonJS({\n \"src/traces/carpet/axis_defaults.js\"(exports, module) {\n \"use strict\";\n var carpetAttrs = require_attributes63();\n var addOpacity = require_color().addOpacity;\n var Registry = require_registry();\n var Lib = require_lib();\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleCategoryOrderDefaults = require_category_order_defaults();\n var setConvert = require_set_convert();\n var autoType = require_axis_autotype();\n module.exports = function handleAxisDefaults(containerIn, containerOut, options) {\n var letter = options.letter;\n var font = options.font || {};\n var attributes = carpetAttrs[letter + \"axis\"];\n function coerce(attr, dflt) {\n return Lib.coerce(containerIn, containerOut, attributes, attr, dflt);\n }\n function coerce2(attr, dflt) {\n return Lib.coerce2(containerIn, containerOut, attributes, attr, dflt);\n }\n if (options.name) {\n containerOut._name = options.name;\n containerOut._id = options.name;\n }\n coerce(\"autotypenumbers\", options.autotypenumbersDflt);\n var axType = coerce(\"type\");\n if (axType === \"-\") {\n if (options.data) setAutoType(containerOut, options.data);\n if (containerOut.type === \"-\") {\n containerOut.type = \"linear\";\n } else {\n axType = containerIn.type = containerOut.type;\n }\n }\n coerce(\"smoothing\");\n coerce(\"cheatertype\");\n coerce(\"showticklabels\");\n coerce(\"labelprefix\", letter + \" = \");\n coerce(\"labelsuffix\");\n coerce(\"showtickprefix\");\n coerce(\"showticksuffix\");\n coerce(\"separatethousands\");\n coerce(\"tickformat\");\n coerce(\"exponentformat\");\n coerce(\"minexponent\");\n coerce(\"showexponent\");\n coerce(\"categoryorder\");\n coerce(\"tickmode\");\n coerce(\"tickvals\");\n coerce(\"ticktext\");\n coerce(\"tick0\");\n coerce(\"dtick\");\n if (containerOut.tickmode === \"array\") {\n coerce(\"arraytick0\");\n coerce(\"arraydtick\");\n }\n coerce(\"labelpadding\");\n containerOut._hovertitle = letter;\n if (axType === \"date\") {\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleDefaults\");\n handleCalendarDefaults(containerIn, containerOut, \"calendar\", options.calendar);\n }\n setConvert(containerOut, options.fullLayout);\n containerOut.c2p = Lib.identity;\n var dfltColor = coerce(\"color\", options.dfltColor);\n var dfltFontColor = dfltColor === containerIn.color ? dfltColor : font.color;\n var title = coerce(\"title.text\");\n if (title) {\n Lib.coerceFont(coerce, \"title.font\", font, { overrideDflt: {\n size: Lib.bigFont(font.size),\n color: dfltFontColor\n } });\n coerce(\"title.offset\");\n }\n coerce(\"tickangle\");\n var autoRange = coerce(\"autorange\", !containerOut.isValidRange(containerIn.range));\n if (autoRange) coerce(\"rangemode\");\n coerce(\"range\");\n containerOut.cleanRange();\n coerce(\"fixedrange\");\n handleTickValueDefaults(containerIn, containerOut, coerce, axType);\n handlePrefixSuffixDefaults(containerIn, containerOut, coerce, axType, options);\n handleTickLabelDefaults(containerIn, containerOut, coerce, axType, options);\n handleCategoryOrderDefaults(containerIn, containerOut, coerce, {\n data: options.data,\n dataAttr: letter\n });\n var gridColor = coerce2(\"gridcolor\", addOpacity(dfltColor, 0.3));\n var gridWidth = coerce2(\"gridwidth\");\n var gridDash = coerce2(\"griddash\");\n var showGrid = coerce(\"showgrid\");\n if (!showGrid) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n delete containerOut.griddash;\n }\n var startLineColor = coerce2(\"startlinecolor\", dfltColor);\n var startLineWidth = coerce2(\"startlinewidth\", gridWidth);\n var showStartLine = coerce(\"startline\", containerOut.showgrid || !!startLineColor || !!startLineWidth);\n if (!showStartLine) {\n delete containerOut.startlinecolor;\n delete containerOut.startlinewidth;\n }\n var endLineColor = coerce2(\"endlinecolor\", dfltColor);\n var endLineWidth = coerce2(\"endlinewidth\", gridWidth);\n var showEndLine = coerce(\"endline\", containerOut.showgrid || !!endLineColor || !!endLineWidth);\n if (!showEndLine) {\n delete containerOut.endlinecolor;\n delete containerOut.endlinewidth;\n }\n if (!showGrid) {\n delete containerOut.gridcolor;\n delete containerOut.gridwidth;\n delete containerOut.griddash;\n } else {\n coerce(\"minorgridcount\");\n coerce(\"minorgridwidth\", gridWidth);\n coerce(\"minorgriddash\", gridDash);\n coerce(\"minorgridcolor\", addOpacity(gridColor, 0.06));\n if (!containerOut.minorgridcount) {\n delete containerOut.minorgridwidth;\n delete containerOut.minorgriddash;\n delete containerOut.minorgridcolor;\n }\n }\n if (containerOut.showticklabels === \"none\") {\n delete containerOut.tickfont;\n delete containerOut.tickangle;\n delete containerOut.showexponent;\n delete containerOut.exponentformat;\n delete containerOut.minexponent;\n delete containerOut.tickformat;\n delete containerOut.showticksuffix;\n delete containerOut.showtickprefix;\n }\n if (!containerOut.showticksuffix) {\n delete containerOut.ticksuffix;\n }\n if (!containerOut.showtickprefix) {\n delete containerOut.tickprefix;\n }\n coerce(\"tickmode\");\n return containerOut;\n };\n function setAutoType(ax, data) {\n if (ax.type !== \"-\") return;\n var id = ax._id;\n var axLetter = id.charAt(0);\n var calAttr = axLetter + \"calendar\";\n var calendar = ax[calAttr];\n ax.type = autoType(data, calendar, {\n autotypenumbers: ax.autotypenumbers\n });\n }\n }\n });\n\n // src/traces/carpet/ab_defaults.js\n var require_ab_defaults = __commonJS({\n \"src/traces/carpet/ab_defaults.js\"(exports, module) {\n \"use strict\";\n var handleAxisDefaults = require_axis_defaults3();\n var Template = require_plot_template();\n module.exports = function handleABDefaults(traceIn, traceOut, fullLayout, coerce, dfltColor) {\n var a = coerce(\"a\");\n if (!a) {\n coerce(\"da\");\n coerce(\"a0\");\n }\n var b = coerce(\"b\");\n if (!b) {\n coerce(\"db\");\n coerce(\"b0\");\n }\n mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor);\n };\n function mimickAxisDefaults(traceIn, traceOut, fullLayout, dfltColor) {\n var axesList = [\"aaxis\", \"baxis\"];\n axesList.forEach(function(axName) {\n var axLetter = axName.charAt(0);\n var axIn = traceIn[axName] || {};\n var axOut = Template.newContainer(traceOut, axName);\n var defaultOptions = {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n noTicklabelstep: true,\n tickfont: \"x\",\n id: axLetter + \"axis\",\n letter: axLetter,\n font: traceOut.font,\n name: axName,\n data: traceIn[axLetter],\n calendar: traceOut.calendar,\n dfltColor,\n bgColor: fullLayout.paper_bgcolor,\n autotypenumbersDflt: fullLayout.autotypenumbers,\n fullLayout\n };\n handleAxisDefaults(axIn, axOut, defaultOptions);\n axOut._categories = axOut._categories || [];\n if (!traceIn[axName] && axIn.type !== \"-\") {\n traceIn[axName] = { type: axIn.type };\n }\n });\n }\n }\n });\n\n // src/traces/carpet/defaults.js\n var require_defaults59 = __commonJS({\n \"src/traces/carpet/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYDefaults = require_xy_defaults2();\n var handleABDefaults = require_ab_defaults();\n var attributes = require_attributes63();\n var colorAttrs = require_attributes3();\n module.exports = function supplyDefaults(traceIn, traceOut, dfltColor, fullLayout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n traceOut._clipPathId = \"clip\" + traceOut.uid + \"carpet\";\n var defaultColor = coerce(\"color\", colorAttrs.defaultLine);\n Lib.coerceFont(coerce, \"font\", fullLayout.font);\n coerce(\"carpet\");\n handleABDefaults(traceIn, traceOut, fullLayout, coerce, defaultColor);\n if (!traceOut.a || !traceOut.b) {\n traceOut.visible = false;\n return;\n }\n if (traceOut.a.length < 3) {\n traceOut.aaxis.smoothing = 0;\n }\n if (traceOut.b.length < 3) {\n traceOut.baxis.smoothing = 0;\n }\n var validData = handleXYDefaults(traceIn, traceOut, coerce);\n if (!validData) {\n traceOut.visible = false;\n }\n if (traceOut._cheater) {\n coerce(\"cheaterslope\");\n }\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/carpet/map_1d_array.js\n var require_map_1d_array = __commonJS({\n \"src/traces/carpet/map_1d_array.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function mapArray(out, data, func) {\n var i;\n if (!isArrayOrTypedArray(out)) {\n out = [];\n } else if (out.length > data.length) {\n out = out.slice(0, data.length);\n }\n for (i = 0; i < data.length; i++) {\n out[i] = func(data[i]);\n }\n return out;\n };\n }\n });\n\n // src/traces/carpet/makepath.js\n var require_makepath = __commonJS({\n \"src/traces/carpet/makepath.js\"(exports, module) {\n \"use strict\";\n module.exports = function makePath(xp, yp, isBicubic) {\n if (xp.length === 0) return \"\";\n var i;\n var path = [];\n var stride = isBicubic ? 3 : 1;\n for (i = 0; i < xp.length; i += stride) {\n path.push(xp[i] + \",\" + yp[i]);\n if (isBicubic && i < xp.length - stride) {\n path.push(\"C\");\n path.push([\n xp[i + 1] + \",\" + yp[i + 1],\n xp[i + 2] + \",\" + yp[i + 2] + \" \"\n ].join(\" \"));\n }\n }\n return path.join(isBicubic ? \"\" : \"L\");\n };\n }\n });\n\n // src/traces/carpet/orient_text.js\n var require_orient_text = __commonJS({\n \"src/traces/carpet/orient_text.js\"(exports, module) {\n \"use strict\";\n module.exports = function orientText(trace, xaxis, yaxis, xy, dxy, refDxy) {\n var dx = dxy[0] * trace.dpdx(xaxis);\n var dy = dxy[1] * trace.dpdy(yaxis);\n var flip = 1;\n var offsetMultiplier = 1;\n if (refDxy) {\n var l1 = Math.sqrt(dxy[0] * dxy[0] + dxy[1] * dxy[1]);\n var l2 = Math.sqrt(refDxy[0] * refDxy[0] + refDxy[1] * refDxy[1]);\n var dot = (dxy[0] * refDxy[0] + dxy[1] * refDxy[1]) / l1 / l2;\n offsetMultiplier = Math.max(0, dot);\n }\n var angle = Math.atan2(dy, dx) * 180 / Math.PI;\n if (angle < -90) {\n angle += 180;\n flip = -flip;\n } else if (angle > 90) {\n angle -= 180;\n flip = -flip;\n }\n return {\n angle,\n flip,\n p: trace.c2p(xy, xaxis, yaxis),\n offsetMultplier: offsetMultiplier\n };\n };\n }\n });\n\n // src/traces/carpet/plot.js\n var require_plot32 = __commonJS({\n \"src/traces/carpet/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var map1dArray = require_map_1d_array();\n var makepath = require_makepath();\n var orientText = require_orient_text();\n var svgTextUtils = require_svg_text_utils();\n var Lib = require_lib();\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n var alignmentConstants = require_alignment();\n module.exports = function plot(gd, plotinfo, cdcarpet, carpetLayer) {\n var isStatic = gd._context.staticPlot;\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var fullLayout = gd._fullLayout;\n var clipLayer = fullLayout._clips;\n Lib.makeTraceGroups(carpetLayer, cdcarpet, \"trace\").each(function(cd) {\n var axisLayer = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var aax = trace.aaxis;\n var bax = trace.baxis;\n var minorLayer = Lib.ensureSingle(axisLayer, \"g\", \"minorlayer\");\n var majorLayer = Lib.ensureSingle(axisLayer, \"g\", \"majorlayer\");\n var boundaryLayer = Lib.ensureSingle(axisLayer, \"g\", \"boundarylayer\");\n var labelLayer = Lib.ensureSingle(axisLayer, \"g\", \"labellayer\");\n axisLayer.style(\"opacity\", trace.opacity);\n drawGridLines(xa, ya, majorLayer, aax, \"a\", aax._gridlines, true, isStatic);\n drawGridLines(xa, ya, majorLayer, bax, \"b\", bax._gridlines, true, isStatic);\n drawGridLines(xa, ya, minorLayer, aax, \"a\", aax._minorgridlines, true, isStatic);\n drawGridLines(xa, ya, minorLayer, bax, \"b\", bax._minorgridlines, true, isStatic);\n drawGridLines(xa, ya, boundaryLayer, aax, \"a-boundary\", aax._boundarylines, isStatic);\n drawGridLines(xa, ya, boundaryLayer, bax, \"b-boundary\", bax._boundarylines, isStatic);\n var labelOrientationA = drawAxisLabels(gd, xa, ya, trace, cd0, labelLayer, aax._labels, \"a-label\");\n var labelOrientationB = drawAxisLabels(gd, xa, ya, trace, cd0, labelLayer, bax._labels, \"b-label\");\n drawAxisTitles(gd, labelLayer, trace, cd0, xa, ya, labelOrientationA, labelOrientationB);\n drawClipPath(trace, cd0, clipLayer, xa, ya);\n });\n };\n function drawClipPath(trace, t, layer, xaxis, yaxis) {\n var seg, xp, yp, i;\n var clip = layer.select(\"#\" + trace._clipPathId);\n if (!clip.size()) {\n clip = layer.append(\"clipPath\").classed(\"carpetclip\", true);\n }\n var path = Lib.ensureSingle(clip, \"path\", \"carpetboundary\");\n var segments = t.clipsegments;\n var segs = [];\n for (i = 0; i < segments.length; i++) {\n seg = segments[i];\n xp = map1dArray([], seg.x, xaxis.c2p);\n yp = map1dArray([], seg.y, yaxis.c2p);\n segs.push(makepath(xp, yp, seg.bicubic));\n }\n var clipPathData = \"M\" + segs.join(\"L\") + \"Z\";\n clip.attr(\"id\", trace._clipPathId);\n path.attr(\"d\", clipPathData);\n }\n function drawGridLines(xaxis, yaxis, layer, axis, axisLetter, gridlines, isStatic) {\n var lineClass = \"const-\" + axisLetter + \"-lines\";\n var gridJoin = layer.selectAll(\".\" + lineClass).data(gridlines);\n gridJoin.enter().append(\"path\").classed(lineClass, true).style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\");\n gridJoin.each(function(d) {\n var gridline = d;\n var x = gridline.x;\n var y = gridline.y;\n var xp = map1dArray([], x, xaxis.c2p);\n var yp = map1dArray([], y, yaxis.c2p);\n var path = \"M\" + makepath(xp, yp, gridline.smoothing);\n var el = d3.select(this);\n el.attr(\"d\", path).style(\"stroke-width\", gridline.width).style(\"stroke\", gridline.color).style(\"stroke-dasharray\", Drawing.dashStyle(gridline.dash, gridline.width)).style(\"fill\", \"none\");\n });\n gridJoin.exit().remove();\n }\n function drawAxisLabels(gd, xaxis, yaxis, trace, t, layer, labels, labelClass) {\n var labelJoin = layer.selectAll(\"text.\" + labelClass).data(labels);\n labelJoin.enter().append(\"text\").classed(labelClass, true);\n var maxExtent = 0;\n var labelOrientation = {};\n labelJoin.each(function(label, i) {\n var orientation;\n if (label.axis.tickangle === \"auto\") {\n orientation = orientText(trace, xaxis, yaxis, label.xy, label.dxy);\n } else {\n var angle = (label.axis.tickangle + 180) * Math.PI / 180;\n orientation = orientText(trace, xaxis, yaxis, label.xy, [Math.cos(angle), Math.sin(angle)]);\n }\n if (!i) {\n labelOrientation = { angle: orientation.angle, flip: orientation.flip };\n }\n var direction = (label.endAnchor ? -1 : 1) * orientation.flip;\n var labelEl = d3.select(this).attr({\n \"text-anchor\": direction > 0 ? \"start\" : \"end\",\n \"data-notex\": 1\n }).call(Drawing.font, label.font).text(label.text).call(svgTextUtils.convertToTspans, gd);\n var bbox = Drawing.bBox(this);\n labelEl.attr(\n \"transform\",\n // Translate to the correct point:\n strTranslate(orientation.p[0], orientation.p[1]) + // Rotate to line up with grid line tangent:\n strRotate(orientation.angle) + // Adjust the baseline and indentation:\n strTranslate(label.axis.labelpadding * direction, bbox.height * 0.3)\n );\n maxExtent = Math.max(maxExtent, bbox.width + label.axis.labelpadding);\n });\n labelJoin.exit().remove();\n labelOrientation.maxExtent = maxExtent;\n return labelOrientation;\n }\n function drawAxisTitles(gd, layer, trace, t, xa, ya, labelOrientationA, labelOrientationB) {\n var a, b, xy, dxy;\n var aMin = Lib.aggNums(Math.min, null, trace.a);\n var aMax = Lib.aggNums(Math.max, null, trace.a);\n var bMin = Lib.aggNums(Math.min, null, trace.b);\n var bMax = Lib.aggNums(Math.max, null, trace.b);\n a = 0.5 * (aMin + aMax);\n b = bMin;\n xy = trace.ab2xy(a, b, true);\n dxy = trace.dxyda_rough(a, b);\n if (labelOrientationA.angle === void 0) {\n Lib.extendFlat(labelOrientationA, orientText(trace, xa, ya, xy, trace.dxydb_rough(a, b)));\n }\n drawAxisTitle(gd, layer, trace, t, xy, dxy, trace.aaxis, xa, ya, labelOrientationA, \"a-title\");\n a = aMin;\n b = 0.5 * (bMin + bMax);\n xy = trace.ab2xy(a, b, true);\n dxy = trace.dxydb_rough(a, b);\n if (labelOrientationB.angle === void 0) {\n Lib.extendFlat(labelOrientationB, orientText(trace, xa, ya, xy, trace.dxyda_rough(a, b)));\n }\n drawAxisTitle(gd, layer, trace, t, xy, dxy, trace.baxis, xa, ya, labelOrientationB, \"b-title\");\n }\n var lineSpacing = alignmentConstants.LINE_SPACING;\n var midShift = (1 - alignmentConstants.MID_SHIFT) / lineSpacing + 1;\n function drawAxisTitle(gd, layer, trace, t, xy, dxy, axis, xa, ya, labelOrientation, labelClass) {\n var data = [];\n if (axis.title.text) data.push(axis.title.text);\n var titleJoin = layer.selectAll(\"text.\" + labelClass).data(data);\n var offset = labelOrientation.maxExtent;\n titleJoin.enter().append(\"text\").classed(labelClass, true);\n titleJoin.each(function() {\n var orientation = orientText(trace, xa, ya, xy, dxy);\n if ([\"start\", \"both\"].indexOf(axis.showticklabels) === -1) {\n offset = 0;\n }\n var titleSize = axis.title.font.size;\n offset += titleSize + axis.title.offset;\n var labelNorm = labelOrientation.angle + (labelOrientation.flip < 0 ? 180 : 0);\n var angleDiff = (labelNorm - orientation.angle + 450) % 360;\n var reverseTitle = angleDiff > 90 && angleDiff < 270;\n var el = d3.select(this);\n el.text(axis.title.text).call(svgTextUtils.convertToTspans, gd);\n if (reverseTitle) {\n offset = (-svgTextUtils.lineCount(el) + midShift) * lineSpacing * titleSize - offset;\n }\n el.attr(\n \"transform\",\n strTranslate(orientation.p[0], orientation.p[1]) + strRotate(orientation.angle) + strTranslate(0, offset)\n ).attr(\"text-anchor\", \"middle\").call(Drawing.font, axis.title.font);\n });\n titleJoin.exit().remove();\n }\n }\n });\n\n // src/traces/carpet/cheater_basis.js\n var require_cheater_basis = __commonJS({\n \"src/traces/carpet/cheater_basis.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function(a, b, cheaterslope) {\n var i, j, ascal, bscal, aval, bval;\n var data = [];\n var na = isArrayOrTypedArray(a) ? a.length : a;\n var nb = isArrayOrTypedArray(b) ? b.length : b;\n var adata = isArrayOrTypedArray(a) ? a : null;\n var bdata = isArrayOrTypedArray(b) ? b : null;\n if (adata) {\n ascal = (adata.length - 1) / (adata[adata.length - 1] - adata[0]) / (na - 1);\n }\n if (bdata) {\n bscal = (bdata.length - 1) / (bdata[bdata.length - 1] - bdata[0]) / (nb - 1);\n }\n var xval;\n var xmin = Infinity;\n var xmax = -Infinity;\n for (j = 0; j < nb; j++) {\n data[j] = [];\n bval = bdata ? (bdata[j] - bdata[0]) * bscal : j / (nb - 1);\n for (i = 0; i < na; i++) {\n aval = adata ? (adata[i] - adata[0]) * ascal : i / (na - 1);\n xval = aval - bval * cheaterslope;\n xmin = Math.min(xval, xmin);\n xmax = Math.max(xval, xmax);\n data[j][i] = xval;\n }\n }\n var slope = 1 / (xmax - xmin);\n var offset = -xmin * slope;\n for (j = 0; j < nb; j++) {\n for (i = 0; i < na; i++) {\n data[j][i] = slope * data[j][i] + offset;\n }\n }\n return data;\n };\n }\n });\n\n // src/traces/carpet/array_minmax.js\n var require_array_minmax = __commonJS({\n \"src/traces/carpet/array_minmax.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function(a) {\n return minMax(a, 0);\n };\n function minMax(a, depth) {\n if (!isArrayOrTypedArray(a) || depth >= 10) {\n return null;\n }\n var min = Infinity;\n var max = -Infinity;\n var n = a.length;\n for (var i = 0; i < n; i++) {\n var datum = a[i];\n if (isArrayOrTypedArray(datum)) {\n var result = minMax(datum, depth + 1);\n if (result) {\n min = Math.min(result[0], min);\n max = Math.max(result[1], max);\n }\n } else {\n min = Math.min(datum, min);\n max = Math.max(datum, max);\n }\n }\n return [min, max];\n }\n }\n });\n\n // src/traces/carpet/calc_gridlines.js\n var require_calc_gridlines = __commonJS({\n \"src/traces/carpet/calc_gridlines.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var extendFlat = require_extend().extendFlat;\n module.exports = function calcGridlines(trace, axisLetter, crossAxisLetter) {\n var i, j, j0;\n var eps, bounds, n1, n2, n, value, v;\n var j1, v0, v1, d;\n var data = trace[\"_\" + axisLetter];\n var axis = trace[axisLetter + \"axis\"];\n var gridlines = axis._gridlines = [];\n var minorgridlines = axis._minorgridlines = [];\n var boundarylines = axis._boundarylines = [];\n var crossData = trace[\"_\" + crossAxisLetter];\n var crossAxis = trace[crossAxisLetter + \"axis\"];\n if (axis.tickmode === \"array\") {\n axis.tickvals = data.slice();\n }\n var xcp = trace._xctrl;\n var ycp = trace._yctrl;\n var nea = xcp[0].length;\n var neb = xcp.length;\n var na = trace._a.length;\n var nb = trace._b.length;\n Axes.prepTicks(axis);\n if (axis.tickmode === \"array\") delete axis.tickvals;\n var stride = axis.smoothing ? 3 : 1;\n function constructValueGridline(value2) {\n var i2, j2, j02, tj, pxy, i0, ti, xy, dxydi0, dxydi1, dxydj0, dxydj1;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n if (axisLetter === \"b\") {\n j2 = trace.b2j(value2);\n j02 = Math.floor(Math.max(0, Math.min(nb - 2, j2)));\n tj = j2 - j02;\n ret.length = nb;\n ret.crossLength = na;\n ret.xy = function(i3) {\n return trace.evalxy([], i3, j2);\n };\n ret.dxy = function(i02, ti2) {\n return trace.dxydi([], i02, j02, ti2, tj);\n };\n for (i2 = 0; i2 < na; i2++) {\n i0 = Math.min(na - 2, i2);\n ti = i2 - i0;\n xy = trace.evalxy([], i2, j2);\n if (crossAxis.smoothing && i2 > 0) {\n dxydi0 = trace.dxydi([], i2 - 1, j02, 0, tj);\n xpoints.push(pxy[0] + dxydi0[0] / 3);\n ypoints.push(pxy[1] + dxydi0[1] / 3);\n dxydi1 = trace.dxydi([], i2 - 1, j02, 1, tj);\n xpoints.push(xy[0] - dxydi1[0] / 3);\n ypoints.push(xy[1] - dxydi1[1] / 3);\n }\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n pxy = xy;\n }\n } else {\n i2 = trace.a2i(value2);\n i0 = Math.floor(Math.max(0, Math.min(na - 2, i2)));\n ti = i2 - i0;\n ret.length = na;\n ret.crossLength = nb;\n ret.xy = function(j3) {\n return trace.evalxy([], i2, j3);\n };\n ret.dxy = function(j03, tj2) {\n return trace.dxydj([], i0, j03, ti, tj2);\n };\n for (j2 = 0; j2 < nb; j2++) {\n j02 = Math.min(nb - 2, j2);\n tj = j2 - j02;\n xy = trace.evalxy([], i2, j2);\n if (crossAxis.smoothing && j2 > 0) {\n dxydj0 = trace.dxydj([], i0, j2 - 1, ti, 0);\n xpoints.push(pxy[0] + dxydj0[0] / 3);\n ypoints.push(pxy[1] + dxydj0[1] / 3);\n dxydj1 = trace.dxydj([], i0, j2 - 1, ti, 1);\n xpoints.push(xy[0] - dxydj1[0] / 3);\n ypoints.push(xy[1] - dxydj1[1] / 3);\n }\n xpoints.push(xy[0]);\n ypoints.push(xy[1]);\n pxy = xy;\n }\n }\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = value2;\n ret.constvar = crossAxisLetter;\n ret.index = n;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n return ret;\n }\n function constructArrayGridline(idx) {\n var j2, i0, j02, ti, tj;\n var xpoints = [];\n var ypoints = [];\n var ret = {};\n ret.length = data.length;\n ret.crossLength = crossData.length;\n if (axisLetter === \"b\") {\n j02 = Math.max(0, Math.min(nb - 2, idx));\n tj = Math.min(1, Math.max(0, idx - j02));\n ret.xy = function(i2) {\n return trace.evalxy([], i2, idx);\n };\n ret.dxy = function(i02, ti2) {\n return trace.dxydi([], i02, j02, ti2, tj);\n };\n for (j2 = 0; j2 < nea; j2++) {\n xpoints[j2] = xcp[idx * stride][j2];\n ypoints[j2] = ycp[idx * stride][j2];\n }\n } else {\n i0 = Math.max(0, Math.min(na - 2, idx));\n ti = Math.min(1, Math.max(0, idx - i0));\n ret.xy = function(j3) {\n return trace.evalxy([], idx, j3);\n };\n ret.dxy = function(j03, tj2) {\n return trace.dxydj([], i0, j03, ti, tj2);\n };\n for (j2 = 0; j2 < neb; j2++) {\n xpoints[j2] = xcp[j2][idx * stride];\n ypoints[j2] = ycp[j2][idx * stride];\n }\n }\n ret.axisLetter = axisLetter;\n ret.axis = axis;\n ret.crossAxis = crossAxis;\n ret.value = data[idx];\n ret.constvar = crossAxisLetter;\n ret.index = idx;\n ret.x = xpoints;\n ret.y = ypoints;\n ret.smoothing = crossAxis.smoothing;\n return ret;\n }\n if (axis.tickmode === \"array\") {\n eps = 5e-15;\n bounds = [\n Math.floor((data.length - 1 - axis.arraytick0) / axis.arraydtick * (1 + eps)),\n Math.ceil(-axis.arraytick0 / axis.arraydtick / (1 + eps))\n ].sort(function(a, b) {\n return a - b;\n });\n n1 = bounds[0] - 1;\n n2 = bounds[1] + 1;\n for (n = n1; n < n2; n++) {\n j = axis.arraytick0 + axis.arraydtick * n;\n if (j < 0 || j > data.length - 1) continue;\n gridlines.push(extendFlat(constructArrayGridline(j), {\n color: axis.gridcolor,\n width: axis.gridwidth,\n dash: axis.griddash\n }));\n }\n for (n = n1; n < n2; n++) {\n j0 = axis.arraytick0 + axis.arraydtick * n;\n j1 = Math.min(j0 + axis.arraydtick, data.length - 1);\n if (j0 < 0 || j0 > data.length - 1) continue;\n if (j1 < 0 || j1 > data.length - 1) continue;\n v0 = data[j0];\n v1 = data[j1];\n for (i = 0; i < axis.minorgridcount; i++) {\n d = j1 - j0;\n if (d <= 0) continue;\n v = v0 + (v1 - v0) * (i + 1) / (axis.minorgridcount + 1) * (axis.arraydtick / d);\n if (v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth,\n dash: axis.minorgriddash\n }));\n }\n }\n if (axis.startline) {\n boundarylines.push(extendFlat(constructArrayGridline(0), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n if (axis.endline) {\n boundarylines.push(extendFlat(constructArrayGridline(data.length - 1), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n } else {\n eps = 5e-15;\n bounds = [\n Math.floor((data[data.length - 1] - axis.tick0) / axis.dtick * (1 + eps)),\n Math.ceil((data[0] - axis.tick0) / axis.dtick / (1 + eps))\n ].sort(function(a, b) {\n return a - b;\n });\n n1 = bounds[0];\n n2 = bounds[1];\n for (n = n1; n <= n2; n++) {\n value = axis.tick0 + axis.dtick * n;\n gridlines.push(extendFlat(constructValueGridline(value), {\n color: axis.gridcolor,\n width: axis.gridwidth,\n dash: axis.griddash\n }));\n }\n for (n = n1 - 1; n < n2 + 1; n++) {\n value = axis.tick0 + axis.dtick * n;\n for (i = 0; i < axis.minorgridcount; i++) {\n v = value + axis.dtick * (i + 1) / (axis.minorgridcount + 1);\n if (v < data[0] || v > data[data.length - 1]) continue;\n minorgridlines.push(extendFlat(constructValueGridline(v), {\n color: axis.minorgridcolor,\n width: axis.minorgridwidth,\n dash: axis.minorgriddash\n }));\n }\n }\n if (axis.startline) {\n boundarylines.push(extendFlat(constructValueGridline(data[0]), {\n color: axis.startlinecolor,\n width: axis.startlinewidth\n }));\n }\n if (axis.endline) {\n boundarylines.push(extendFlat(constructValueGridline(data[data.length - 1]), {\n color: axis.endlinecolor,\n width: axis.endlinewidth\n }));\n }\n }\n };\n }\n });\n\n // src/traces/carpet/calc_labels.js\n var require_calc_labels = __commonJS({\n \"src/traces/carpet/calc_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var extendFlat = require_extend().extendFlat;\n module.exports = function calcLabels(trace, axis) {\n var i, tobj, prefix, suffix, gridline;\n var labels = axis._labels = [];\n var gridlines = axis._gridlines;\n for (i = 0; i < gridlines.length; i++) {\n gridline = gridlines[i];\n if ([\"start\", \"both\"].indexOf(axis.showticklabels) !== -1) {\n tobj = Axes.tickText(axis, gridline.value);\n extendFlat(tobj, {\n prefix,\n suffix,\n endAnchor: true,\n xy: gridline.xy(0),\n dxy: gridline.dxy(0, 0),\n axis: gridline.axis,\n length: gridline.crossAxis.length,\n font: gridline.axis.tickfont,\n isFirst: i === 0,\n isLast: i === gridlines.length - 1\n });\n labels.push(tobj);\n }\n if ([\"end\", \"both\"].indexOf(axis.showticklabels) !== -1) {\n tobj = Axes.tickText(axis, gridline.value);\n extendFlat(tobj, {\n endAnchor: false,\n xy: gridline.xy(gridline.crossLength - 1),\n dxy: gridline.dxy(gridline.crossLength - 2, 1),\n axis: gridline.axis,\n length: gridline.crossAxis.length,\n font: gridline.axis.tickfont,\n isFirst: i === 0,\n isLast: i === gridlines.length - 1\n });\n labels.push(tobj);\n }\n }\n };\n }\n });\n\n // src/traces/carpet/calc_clippath.js\n var require_calc_clippath = __commonJS({\n \"src/traces/carpet/calc_clippath.js\"(exports, module) {\n \"use strict\";\n module.exports = function makeClipPath(xctrl, yctrl, aax, bax) {\n var i, x, y;\n var segments = [];\n var asmoothing = !!aax.smoothing;\n var bsmoothing = !!bax.smoothing;\n var nea1 = xctrl[0].length - 1;\n var neb1 = xctrl.length - 1;\n for (i = 0, x = [], y = []; i <= nea1; i++) {\n x[i] = xctrl[0][i];\n y[i] = yctrl[0][i];\n }\n segments.push({ x, y, bicubic: asmoothing });\n for (i = 0, x = [], y = []; i <= neb1; i++) {\n x[i] = xctrl[i][nea1];\n y[i] = yctrl[i][nea1];\n }\n segments.push({ x, y, bicubic: bsmoothing });\n for (i = nea1, x = [], y = []; i >= 0; i--) {\n x[nea1 - i] = xctrl[neb1][i];\n y[nea1 - i] = yctrl[neb1][i];\n }\n segments.push({ x, y, bicubic: asmoothing });\n for (i = neb1, x = [], y = []; i >= 0; i--) {\n x[neb1 - i] = xctrl[i][0];\n y[neb1 - i] = yctrl[i][0];\n }\n segments.push({ x, y, bicubic: bsmoothing });\n return segments;\n };\n }\n });\n\n // src/traces/carpet/smooth_fill_2d_array.js\n var require_smooth_fill_2d_array = __commonJS({\n \"src/traces/carpet/smooth_fill_2d_array.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n module.exports = function smoothFill2dArray(data, a, b) {\n var i, j, k;\n var ip = [];\n var jp = [];\n var ni = data[0].length;\n var nj = data.length;\n function avgSurrounding(i2, j2) {\n var sum = 0;\n var val;\n var cnt = 0;\n if (i2 > 0 && (val = data[j2][i2 - 1]) !== void 0) {\n cnt++;\n sum += val;\n }\n if (i2 < ni - 1 && (val = data[j2][i2 + 1]) !== void 0) {\n cnt++;\n sum += val;\n }\n if (j2 > 0 && (val = data[j2 - 1][i2]) !== void 0) {\n cnt++;\n sum += val;\n }\n if (j2 < nj - 1 && (val = data[j2 + 1][i2]) !== void 0) {\n cnt++;\n sum += val;\n }\n return sum / Math.max(1, cnt);\n }\n var dmax = 0;\n for (i = 0; i < ni; i++) {\n for (j = 0; j < nj; j++) {\n if (data[j][i] === void 0) {\n ip.push(i);\n jp.push(j);\n data[j][i] = avgSurrounding(i, j);\n }\n dmax = Math.max(dmax, Math.abs(data[j][i]));\n }\n }\n if (!ip.length) return data;\n var dxp, dxm, dap, dam, dbp, dbm, c, d, diff, reldiff, overrelaxation;\n var tol = 1e-5;\n var resid = 0;\n var itermax = 100;\n var iter = 0;\n var n = ip.length;\n do {\n resid = 0;\n for (k = 0; k < n; k++) {\n i = ip[k];\n j = jp[k];\n var boundaryCnt = 0;\n var newVal = 0;\n var d0, d1, x0, x1, i0, j0;\n if (i === 0) {\n i0 = Math.min(ni - 1, 2);\n x0 = a[i0];\n x1 = a[1];\n d0 = data[j][i0];\n d1 = data[j][1];\n newVal += d1 + (d1 - d0) * (a[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if (i === ni - 1) {\n i0 = Math.max(0, ni - 3);\n x0 = a[i0];\n x1 = a[ni - 2];\n d0 = data[j][i0];\n d1 = data[j][ni - 2];\n newVal += d1 + (d1 - d0) * (a[ni - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n if ((i === 0 || i === ni - 1) && (j > 0 && j < nj - 1)) {\n dxp = b[j + 1] - b[j];\n dxm = b[j] - b[j - 1];\n newVal += (dxm * data[j + 1][i] + dxp * data[j - 1][i]) / (dxm + dxp);\n boundaryCnt++;\n }\n if (j === 0) {\n j0 = Math.min(nj - 1, 2);\n x0 = b[j0];\n x1 = b[1];\n d0 = data[j0][i];\n d1 = data[1][i];\n newVal += d1 + (d1 - d0) * (b[0] - x1) / (x1 - x0);\n boundaryCnt++;\n } else if (j === nj - 1) {\n j0 = Math.max(0, nj - 3);\n x0 = b[j0];\n x1 = b[nj - 2];\n d0 = data[j0][i];\n d1 = data[nj - 2][i];\n newVal += d1 + (d1 - d0) * (b[nj - 1] - x1) / (x1 - x0);\n boundaryCnt++;\n }\n if ((j === 0 || j === nj - 1) && (i > 0 && i < ni - 1)) {\n dxp = a[i + 1] - a[i];\n dxm = a[i] - a[i - 1];\n newVal += (dxm * data[j][i + 1] + dxp * data[j][i - 1]) / (dxm + dxp);\n boundaryCnt++;\n }\n if (!boundaryCnt) {\n dap = a[i + 1] - a[i];\n dam = a[i] - a[i - 1];\n dbp = b[j + 1] - b[j];\n dbm = b[j] - b[j - 1];\n c = dap * dam * (dap + dam);\n d = dbp * dbm * (dbp + dbm);\n newVal = (c * (dbm * data[j + 1][i] + dbp * data[j - 1][i]) + d * (dam * data[j][i + 1] + dap * data[j][i - 1])) / (d * (dam + dap) + c * (dbm + dbp));\n } else {\n newVal /= boundaryCnt;\n }\n diff = newVal - data[j][i];\n reldiff = diff / dmax;\n resid += reldiff * reldiff;\n overrelaxation = boundaryCnt ? 0 : 0.85;\n data[j][i] += diff * (1 + overrelaxation);\n }\n resid = Math.sqrt(resid);\n } while (iter++ < itermax && resid > tol);\n Lib.log(\"Smoother converged to\", resid, \"after\", iter, \"iterations\");\n return data;\n };\n }\n });\n\n // src/traces/carpet/constants.js\n var require_constants32 = __commonJS({\n \"src/traces/carpet/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n RELATIVE_CULL_TOLERANCE: 1e-6\n };\n }\n });\n\n // src/traces/carpet/catmull_rom.js\n var require_catmull_rom = __commonJS({\n \"src/traces/carpet/catmull_rom.js\"(exports, module) {\n \"use strict\";\n var CatmullRomExp = 0.5;\n module.exports = function makeControlPoints(p0, p1, p2, smoothness) {\n var d1x = p0[0] - p1[0];\n var d1y = p0[1] - p1[1];\n var d2x = p2[0] - p1[0];\n var d2y = p2[1] - p1[1];\n var d1a = Math.pow(d1x * d1x + d1y * d1y, CatmullRomExp / 2);\n var d2a = Math.pow(d2x * d2x + d2y * d2y, CatmullRomExp / 2);\n var numx = (d2a * d2a * d1x - d1a * d1a * d2x) * smoothness;\n var numy = (d2a * d2a * d1y - d1a * d1a * d2y) * smoothness;\n var denom1 = d2a * (d1a + d2a) * 3;\n var denom2 = d1a * (d1a + d2a) * 3;\n return [[\n p1[0] + (denom1 && numx / denom1),\n p1[1] + (denom1 && numy / denom1)\n ], [\n p1[0] - (denom2 && numx / denom2),\n p1[1] - (denom2 && numy / denom2)\n ]];\n };\n }\n });\n\n // src/traces/carpet/compute_control_points.js\n var require_compute_control_points = __commonJS({\n \"src/traces/carpet/compute_control_points.js\"(exports, module) {\n \"use strict\";\n var makeControlPoints = require_catmull_rom();\n var ensureArray = require_lib().ensureArray;\n function inferCubicControlPoint(p0, p2, p3) {\n var p2e0 = -0.5 * p3[0] + 1.5 * p2[0];\n var p2e1 = -0.5 * p3[1] + 1.5 * p2[1];\n return [\n (2 * p2e0 + p0[0]) / 3,\n (2 * p2e1 + p0[1]) / 3\n ];\n }\n module.exports = function computeControlPoints(xe, ye, x, y, asmoothing, bsmoothing) {\n var i, j, ie, je, xej, yej, xj, yj, cp, p1;\n var na = x[0].length;\n var nb = x.length;\n var nea = asmoothing ? 3 * na - 2 : na;\n var neb = bsmoothing ? 3 * nb - 2 : nb;\n xe = ensureArray(xe, neb);\n ye = ensureArray(ye, neb);\n for (ie = 0; ie < neb; ie++) {\n xe[ie] = ensureArray(xe[ie], nea);\n ye[ie] = ensureArray(ye[ie], nea);\n }\n for (j = 0, je = 0; j < nb; j++, je += bsmoothing ? 3 : 1) {\n xej = xe[je];\n yej = ye[je];\n xj = x[j];\n yj = y[j];\n for (i = 0, ie = 0; i < na; i++, ie += asmoothing ? 3 : 1) {\n xej[ie] = xj[i];\n yej[ie] = yj[i];\n }\n }\n if (asmoothing) {\n for (j = 0, je = 0; j < nb; j++, je += bsmoothing ? 3 : 1) {\n for (i = 1, ie = 3; i < na - 1; i++, ie += 3) {\n cp = makeControlPoints(\n [x[j][i - 1], y[j][i - 1]],\n [x[j][i], y[j][i]],\n [x[j][i + 1], y[j][i + 1]],\n asmoothing\n );\n xe[je][ie - 1] = cp[0][0];\n ye[je][ie - 1] = cp[0][1];\n xe[je][ie + 1] = cp[1][0];\n ye[je][ie + 1] = cp[1][1];\n }\n p1 = inferCubicControlPoint(\n [xe[je][0], ye[je][0]],\n [xe[je][2], ye[je][2]],\n [xe[je][3], ye[je][3]]\n );\n xe[je][1] = p1[0];\n ye[je][1] = p1[1];\n p1 = inferCubicControlPoint(\n [xe[je][nea - 1], ye[je][nea - 1]],\n [xe[je][nea - 3], ye[je][nea - 3]],\n [xe[je][nea - 4], ye[je][nea - 4]]\n );\n xe[je][nea - 2] = p1[0];\n ye[je][nea - 2] = p1[1];\n }\n }\n if (bsmoothing) {\n for (ie = 0; ie < nea; ie++) {\n for (je = 3; je < neb - 3; je += 3) {\n cp = makeControlPoints(\n [xe[je - 3][ie], ye[je - 3][ie]],\n [xe[je][ie], ye[je][ie]],\n [xe[je + 3][ie], ye[je + 3][ie]],\n bsmoothing\n );\n xe[je - 1][ie] = cp[0][0];\n ye[je - 1][ie] = cp[0][1];\n xe[je + 1][ie] = cp[1][0];\n ye[je + 1][ie] = cp[1][1];\n }\n p1 = inferCubicControlPoint(\n [xe[0][ie], ye[0][ie]],\n [xe[2][ie], ye[2][ie]],\n [xe[3][ie], ye[3][ie]]\n );\n xe[1][ie] = p1[0];\n ye[1][ie] = p1[1];\n p1 = inferCubicControlPoint(\n [xe[neb - 1][ie], ye[neb - 1][ie]],\n [xe[neb - 3][ie], ye[neb - 3][ie]],\n [xe[neb - 4][ie], ye[neb - 4][ie]]\n );\n xe[neb - 2][ie] = p1[0];\n ye[neb - 2][ie] = p1[1];\n }\n }\n if (asmoothing && bsmoothing) {\n for (je = 1; je < neb; je += (je + 1) % 3 === 0 ? 2 : 1) {\n for (ie = 3; ie < nea - 3; ie += 3) {\n cp = makeControlPoints(\n [xe[je][ie - 3], ye[je][ie - 3]],\n [xe[je][ie], ye[je][ie]],\n [xe[je][ie + 3], ye[je][ie + 3]],\n asmoothing\n );\n xe[je][ie - 1] = 0.5 * (xe[je][ie - 1] + cp[0][0]);\n ye[je][ie - 1] = 0.5 * (ye[je][ie - 1] + cp[0][1]);\n xe[je][ie + 1] = 0.5 * (xe[je][ie + 1] + cp[1][0]);\n ye[je][ie + 1] = 0.5 * (ye[je][ie + 1] + cp[1][1]);\n }\n p1 = inferCubicControlPoint(\n [xe[je][0], ye[je][0]],\n [xe[je][2], ye[je][2]],\n [xe[je][3], ye[je][3]]\n );\n xe[je][1] = 0.5 * (xe[je][1] + p1[0]);\n ye[je][1] = 0.5 * (ye[je][1] + p1[1]);\n p1 = inferCubicControlPoint(\n [xe[je][nea - 1], ye[je][nea - 1]],\n [xe[je][nea - 3], ye[je][nea - 3]],\n [xe[je][nea - 4], ye[je][nea - 4]]\n );\n xe[je][nea - 2] = 0.5 * (xe[je][nea - 2] + p1[0]);\n ye[je][nea - 2] = 0.5 * (ye[je][nea - 2] + p1[1]);\n }\n }\n return [xe, ye];\n };\n }\n });\n\n // src/traces/carpet/create_spline_evaluator.js\n var require_create_spline_evaluator = __commonJS({\n \"src/traces/carpet/create_spline_evaluator.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arrays, na, nb, asmoothing, bsmoothing) {\n var imax = na - 2;\n var jmax = nb - 2;\n if (asmoothing && bsmoothing) {\n return function(out, i, j) {\n if (!out) out = [];\n var f0, f1, f2, f3, ak, k;\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n i0 *= 3;\n j0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou3 * ak[j0][i0] + 3 * (ou2 * u * ak[j0][i0 + 1] + ou * u2 * ak[j0][i0 + 2]) + u3 * ak[j0][i0 + 3];\n f1 = ou3 * ak[j0 + 1][i0] + 3 * (ou2 * u * ak[j0 + 1][i0 + 1] + ou * u2 * ak[j0 + 1][i0 + 2]) + u3 * ak[j0 + 1][i0 + 3];\n f2 = ou3 * ak[j0 + 2][i0] + 3 * (ou2 * u * ak[j0 + 2][i0 + 1] + ou * u2 * ak[j0 + 2][i0 + 2]) + u3 * ak[j0 + 2][i0 + 3];\n f3 = ou3 * ak[j0 + 3][i0] + 3 * (ou2 * u * ak[j0 + 3][i0 + 1] + ou * u2 * ak[j0 + 3][i0 + 2]) + u3 * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else if (asmoothing) {\n return function(out, i, j) {\n if (!out) out = [];\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ov * ak[j0][i0] + v * ak[j0 + 1][i0];\n f1 = ov * ak[j0][i0 + 1] + v * ak[j0 + 1][i0 + 1];\n f2 = ov * ak[j0][i0 + 2] + v * ak[j0 + 1][i0 + 1];\n f3 = ov * ak[j0][i0 + 3] + v * ak[j0 + 1][i0 + 1];\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if (bsmoothing) {\n return function(out, i, j) {\n if (!out) out = [];\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n var ou = 1 - u;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n f2 = ou * ak[j0 + 2][i0] + u * ak[j0 + 2][i0 + 1];\n f3 = ou * ak[j0 + 3][i0] + u * ak[j0 + 3][i0 + 1];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n return function(out, i, j) {\n if (!out) out = [];\n var i0 = Math.max(0, Math.min(Math.floor(i), imax));\n var j0 = Math.max(0, Math.min(Math.floor(j), jmax));\n var u = Math.max(0, Math.min(1, i - i0));\n var v = Math.max(0, Math.min(1, j - j0));\n var f0, f1, k, ak;\n var ov = 1 - v;\n var ou = 1 - u;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ou * ak[j0][i0] + u * ak[j0][i0 + 1];\n f1 = ou * ak[j0 + 1][i0] + u * ak[j0 + 1][i0 + 1];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n };\n }\n });\n\n // src/traces/carpet/create_i_derivative_evaluator.js\n var require_create_i_derivative_evaluator = __commonJS({\n \"src/traces/carpet/create_i_derivative_evaluator.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arrays, asmoothing, bsmoothing) {\n if (asmoothing && bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, f2, f3, ak, k;\n i0 *= 3;\n j0 *= 3;\n var u2 = u * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ouu2 = ou * u * 2;\n var a = -3 * ou2;\n var b = 3 * (ou2 - ouu2);\n var c = 3 * (ouu2 - u2);\n var d = 3 * u2;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0][i0 + 1] + c * ak[j0][i0 + 2] + d * ak[j0][i0 + 3];\n f1 = a * ak[j0 + 1][i0] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 1][i0 + 2] + d * ak[j0 + 1][i0 + 3];\n f2 = a * ak[j0 + 2][i0] + b * ak[j0 + 2][i0 + 1] + c * ak[j0 + 2][i0 + 2] + d * ak[j0 + 2][i0 + 3];\n f3 = a * ak[j0 + 3][i0] + b * ak[j0 + 3][i0 + 1] + c * ak[j0 + 3][i0 + 2] + d * ak[j0 + 3][i0 + 3];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else if (asmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ouu2 = ou * u * 2;\n var a = -3 * ou2;\n var b = 3 * (ou2 - ouu2);\n var c = 3 * (ouu2 - u2);\n var d = 3 * u2;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0][i0 + 1] + c * ak[j0][i0 + 2] + d * ak[j0][i0 + 3];\n f1 = a * ak[j0 + 1][i0] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 1][i0 + 2] + d * ak[j0 + 1][i0 + 3];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n } else if (bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, f2, f3, k, ak;\n j0 *= 3;\n var v2 = v * v;\n var v3 = v2 * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ov3 = ov2 * ov;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0][i0 + 1] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0 + 1][i0];\n f2 = ak[j0 + 2][i0 + 1] - ak[j0 + 2][i0];\n f3 = ak[j0 + 3][i0 + 1] - ak[j0 + 3][i0];\n out[k] = ov3 * f0 + 3 * (ov2 * v * f1 + ov * v2 * f2) + v3 * f3;\n }\n return out;\n };\n } else {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, k, ak;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0][i0 + 1] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0 + 1][i0];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n };\n }\n });\n\n // src/traces/carpet/create_j_derivative_evaluator.js\n var require_create_j_derivative_evaluator = __commonJS({\n \"src/traces/carpet/create_j_derivative_evaluator.js\"(exports, module) {\n \"use strict\";\n module.exports = function(arrays, asmoothing, bsmoothing) {\n if (asmoothing && bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, f2, f3, ak, k;\n i0 *= 3;\n j0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n var v2 = v * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ovv2 = ov * v * 2;\n var a = -3 * ov2;\n var b = 3 * (ov2 - ovv2);\n var c = 3 * (ovv2 - v2);\n var d = 3 * v2;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0 + 1][i0] + c * ak[j0 + 2][i0] + d * ak[j0 + 3][i0];\n f1 = a * ak[j0][i0 + 1] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 2][i0 + 1] + d * ak[j0 + 3][i0 + 1];\n f2 = a * ak[j0][i0 + 2] + b * ak[j0 + 1][i0 + 2] + c * ak[j0 + 2][i0 + 2] + d * ak[j0 + 3][i0 + 2];\n f3 = a * ak[j0][i0 + 3] + b * ak[j0 + 1][i0 + 3] + c * ak[j0 + 2][i0 + 3] + d * ak[j0 + 3][i0 + 3];\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if (asmoothing) {\n return function(out, i0, j0, v, u) {\n if (!out) out = [];\n var f0, f1, f2, f3, k, ak;\n i0 *= 3;\n var u2 = u * u;\n var u3 = u2 * u;\n var ou = 1 - u;\n var ou2 = ou * ou;\n var ou3 = ou2 * ou;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0 + 1][i0] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0][i0 + 1];\n f2 = ak[j0 + 1][i0 + 2] - ak[j0][i0 + 2];\n f3 = ak[j0 + 1][i0 + 3] - ak[j0][i0 + 3];\n out[k] = ou3 * f0 + 3 * (ou2 * u * f1 + ou * u2 * f2) + u3 * f3;\n }\n return out;\n };\n } else if (bsmoothing) {\n return function(out, i0, j0, u, v) {\n if (!out) out = [];\n var f0, f1, k, ak;\n j0 *= 3;\n var ou = 1 - u;\n var v2 = v * v;\n var ov = 1 - v;\n var ov2 = ov * ov;\n var ovv2 = ov * v * 2;\n var a = -3 * ov2;\n var b = 3 * (ov2 - ovv2);\n var c = 3 * (ovv2 - v2);\n var d = 3 * v2;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = a * ak[j0][i0] + b * ak[j0 + 1][i0] + c * ak[j0 + 2][i0] + d * ak[j0 + 3][i0];\n f1 = a * ak[j0][i0 + 1] + b * ak[j0 + 1][i0 + 1] + c * ak[j0 + 2][i0 + 1] + d * ak[j0 + 3][i0 + 1];\n out[k] = ou * f0 + u * f1;\n }\n return out;\n };\n } else {\n return function(out, i0, j0, v, u) {\n if (!out) out = [];\n var f0, f1, k, ak;\n var ov = 1 - v;\n for (k = 0; k < arrays.length; k++) {\n ak = arrays[k];\n f0 = ak[j0 + 1][i0] - ak[j0][i0];\n f1 = ak[j0 + 1][i0 + 1] - ak[j0][i0 + 1];\n out[k] = ov * f0 + v * f1;\n }\n return out;\n };\n }\n };\n }\n });\n\n // src/traces/carpet/set_convert.js\n var require_set_convert2 = __commonJS({\n \"src/traces/carpet/set_convert.js\"(exports, module) {\n \"use strict\";\n var constants = require_constants32();\n var search = require_search().findBin;\n var computeControlPoints = require_compute_control_points();\n var createSplineEvaluator = require_create_spline_evaluator();\n var createIDerivativeEvaluator = require_create_i_derivative_evaluator();\n var createJDerivativeEvaluator = require_create_j_derivative_evaluator();\n module.exports = function setConvert(trace) {\n var a = trace._a;\n var b = trace._b;\n var na = a.length;\n var nb = b.length;\n var aax = trace.aaxis;\n var bax = trace.baxis;\n var amin = a[0];\n var amax = a[na - 1];\n var bmin = b[0];\n var bmax = b[nb - 1];\n var arange = a[a.length - 1] - a[0];\n var brange = b[b.length - 1] - b[0];\n var atol = arange * constants.RELATIVE_CULL_TOLERANCE;\n var btol = brange * constants.RELATIVE_CULL_TOLERANCE;\n amin -= atol;\n amax += atol;\n bmin -= btol;\n bmax += btol;\n trace.isVisible = function(a2, b2) {\n return a2 > amin && a2 < amax && b2 > bmin && b2 < bmax;\n };\n trace.isOccluded = function(a2, b2) {\n return a2 < amin || a2 > amax || b2 < bmin || b2 > bmax;\n };\n trace.setScale = function() {\n var x = trace._x;\n var y = trace._y;\n var result = computeControlPoints(trace._xctrl, trace._yctrl, x, y, aax.smoothing, bax.smoothing);\n trace._xctrl = result[0];\n trace._yctrl = result[1];\n trace.evalxy = createSplineEvaluator([trace._xctrl, trace._yctrl], na, nb, aax.smoothing, bax.smoothing);\n trace.dxydi = createIDerivativeEvaluator([trace._xctrl, trace._yctrl], aax.smoothing, bax.smoothing);\n trace.dxydj = createJDerivativeEvaluator([trace._xctrl, trace._yctrl], aax.smoothing, bax.smoothing);\n };\n trace.i2a = function(i) {\n var i0 = Math.max(0, Math.floor(i[0]), na - 2);\n var ti = i[0] - i0;\n return (1 - ti) * a[i0] + ti * a[i0 + 1];\n };\n trace.j2b = function(j) {\n var j0 = Math.max(0, Math.floor(j[1]), na - 2);\n var tj = j[1] - j0;\n return (1 - tj) * b[j0] + tj * b[j0 + 1];\n };\n trace.ij2ab = function(ij) {\n return [trace.i2a(ij[0]), trace.j2b(ij[1])];\n };\n trace.a2i = function(aval) {\n var i0 = Math.max(0, Math.min(search(aval, a), na - 2));\n var a0 = a[i0];\n var a1 = a[i0 + 1];\n return Math.max(0, Math.min(na - 1, i0 + (aval - a0) / (a1 - a0)));\n };\n trace.b2j = function(bval) {\n var j0 = Math.max(0, Math.min(search(bval, b), nb - 2));\n var b0 = b[j0];\n var b1 = b[j0 + 1];\n return Math.max(0, Math.min(nb - 1, j0 + (bval - b0) / (b1 - b0)));\n };\n trace.ab2ij = function(ab) {\n return [trace.a2i(ab[0]), trace.b2j(ab[1])];\n };\n trace.i2c = function(i, j) {\n return trace.evalxy([], i, j);\n };\n trace.ab2xy = function(aval, bval, extrapolate) {\n if (!extrapolate && (aval < a[0] || aval > a[na - 1] | bval < b[0] || bval > b[nb - 1])) {\n return [false, false];\n }\n var i = trace.a2i(aval);\n var j = trace.b2j(bval);\n var pt = trace.evalxy([], i, j);\n if (extrapolate) {\n var iex = 0;\n var jex = 0;\n var der = [];\n var i0, ti, j0, tj;\n if (aval < a[0]) {\n i0 = 0;\n ti = 0;\n iex = (aval - a[0]) / (a[1] - a[0]);\n } else if (aval > a[na - 1]) {\n i0 = na - 2;\n ti = 1;\n iex = (aval - a[na - 1]) / (a[na - 1] - a[na - 2]);\n } else {\n i0 = Math.max(0, Math.min(na - 2, Math.floor(i)));\n ti = i - i0;\n }\n if (bval < b[0]) {\n j0 = 0;\n tj = 0;\n jex = (bval - b[0]) / (b[1] - b[0]);\n } else if (bval > b[nb - 1]) {\n j0 = nb - 2;\n tj = 1;\n jex = (bval - b[nb - 1]) / (b[nb - 1] - b[nb - 2]);\n } else {\n j0 = Math.max(0, Math.min(nb - 2, Math.floor(j)));\n tj = j - j0;\n }\n if (iex) {\n trace.dxydi(der, i0, j0, ti, tj);\n pt[0] += der[0] * iex;\n pt[1] += der[1] * iex;\n }\n if (jex) {\n trace.dxydj(der, i0, j0, ti, tj);\n pt[0] += der[0] * jex;\n pt[1] += der[1] * jex;\n }\n }\n return pt;\n };\n trace.c2p = function(xy, xa, ya) {\n return [xa.c2p(xy[0]), ya.c2p(xy[1])];\n };\n trace.p2x = function(p, xa, ya) {\n return [xa.p2c(p[0]), ya.p2c(p[1])];\n };\n trace.dadi = function(i) {\n var i0 = Math.max(0, Math.min(a.length - 2, i));\n return a[i0 + 1] - a[i0];\n };\n trace.dbdj = function(j) {\n var j0 = Math.max(0, Math.min(b.length - 2, j));\n return b[j0 + 1] - b[j0];\n };\n trace.dxyda = function(i0, j0, u, v) {\n var dxydi = trace.dxydi(null, i0, j0, u, v);\n var dadi = trace.dadi(i0, u);\n return [dxydi[0] / dadi, dxydi[1] / dadi];\n };\n trace.dxydb = function(i0, j0, u, v) {\n var dxydj = trace.dxydj(null, i0, j0, u, v);\n var dbdj = trace.dbdj(j0, v);\n return [dxydj[0] / dbdj, dxydj[1] / dbdj];\n };\n trace.dxyda_rough = function(a2, b2, reldiff) {\n var h = arange * (reldiff || 0.1);\n var plus = trace.ab2xy(a2 + h, b2, true);\n var minus = trace.ab2xy(a2 - h, b2, true);\n return [\n (plus[0] - minus[0]) * 0.5 / h,\n (plus[1] - minus[1]) * 0.5 / h\n ];\n };\n trace.dxydb_rough = function(a2, b2, reldiff) {\n var h = brange * (reldiff || 0.1);\n var plus = trace.ab2xy(a2, b2 + h, true);\n var minus = trace.ab2xy(a2, b2 - h, true);\n return [\n (plus[0] - minus[0]) * 0.5 / h,\n (plus[1] - minus[1]) * 0.5 / h\n ];\n };\n trace.dpdx = function(xa) {\n return xa._m;\n };\n trace.dpdy = function(ya) {\n return ya._m;\n };\n };\n }\n });\n\n // src/traces/carpet/calc.js\n var require_calc38 = __commonJS({\n \"src/traces/carpet/calc.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var isArray1D = require_lib().isArray1D;\n var cheaterBasis = require_cheater_basis();\n var arrayMinmax = require_array_minmax();\n var calcGridlines = require_calc_gridlines();\n var calcLabels = require_calc_labels();\n var calcClipPath = require_calc_clippath();\n var clean2dArray = require_clean_2d_array();\n var smoothFill2dArray = require_smooth_fill_2d_array();\n var convertColumnData = require_convert_column_xyz();\n var setConvert = require_set_convert2();\n module.exports = function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var aax = trace.aaxis;\n var bax = trace.baxis;\n var x = trace.x;\n var y = trace.y;\n var cols = [];\n if (x && isArray1D(x)) cols.push(\"x\");\n if (y && isArray1D(y)) cols.push(\"y\");\n if (cols.length) {\n convertColumnData(trace, aax, bax, \"a\", \"b\", cols);\n }\n var a = trace._a = trace._a || trace.a;\n var b = trace._b = trace._b || trace.b;\n x = trace._x || trace.x;\n y = trace._y || trace.y;\n var t = {};\n if (trace._cheater) {\n var avals = aax.cheatertype === \"index\" ? a.length : a;\n var bvals = bax.cheatertype === \"index\" ? b.length : b;\n x = cheaterBasis(avals, bvals, trace.cheaterslope);\n }\n trace._x = x = clean2dArray(x);\n trace._y = y = clean2dArray(y);\n smoothFill2dArray(x, a, b);\n smoothFill2dArray(y, a, b);\n setConvert(trace);\n trace.setScale();\n var xrange = arrayMinmax(x);\n var yrange = arrayMinmax(y);\n var dx = 0.5 * (xrange[1] - xrange[0]);\n var xc = 0.5 * (xrange[1] + xrange[0]);\n var dy = 0.5 * (yrange[1] - yrange[0]);\n var yc = 0.5 * (yrange[1] + yrange[0]);\n var grow = 1.3;\n xrange = [xc - dx * grow, xc + dx * grow];\n yrange = [yc - dy * grow, yc + dy * grow];\n trace._extremes[xa._id] = Axes.findExtremes(xa, xrange, { padded: true });\n trace._extremes[ya._id] = Axes.findExtremes(ya, yrange, { padded: true });\n calcGridlines(trace, \"a\", \"b\");\n calcGridlines(trace, \"b\", \"a\");\n calcLabels(trace, aax);\n calcLabels(trace, bax);\n t.clipsegments = calcClipPath(trace._xctrl, trace._yctrl, aax, bax);\n t.x = x;\n t.y = y;\n t.a = a;\n t.b = b;\n return [t];\n };\n }\n });\n\n // src/traces/carpet/index.js\n var require_carpet = __commonJS({\n \"src/traces/carpet/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes63(),\n supplyDefaults: require_defaults59(),\n plot: require_plot32(),\n calc: require_calc38(),\n animatable: true,\n isContainer: true,\n // so carpet traces get `calc` before other traces\n moduleType: \"trace\",\n name: \"carpet\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"carpet\", \"carpetAxis\", \"notLegendIsolatable\", \"noMultiCategory\", \"noHover\", \"noSortingByValue\"],\n meta: {}\n };\n }\n });\n\n // lib/carpet.js\n var require_carpet2 = __commonJS({\n \"lib/carpet.js\"(exports, module) {\n \"use strict\";\n module.exports = require_carpet();\n }\n });\n\n // src/traces/scattercarpet/attributes.js\n var require_attributes64 = __commonJS({\n \"src/traces/scattercarpet/attributes.js\"(exports, module) {\n \"use strict\";\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var scatterMarkerAttrs = scatterAttrs.marker;\n var scatterLineAttrs = scatterAttrs.line;\n var scatterMarkerLineAttrs = scatterMarkerAttrs.line;\n module.exports = {\n carpet: {\n valType: \"string\",\n editType: \"calc\"\n },\n a: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n b: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n mode: extendFlat({}, scatterAttrs.mode, { dflt: \"markers\" }),\n text: extendFlat({}, scatterAttrs.text, {}),\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"a\", \"b\", \"text\"]\n }),\n hovertext: extendFlat({}, scatterAttrs.hovertext, {}),\n line: {\n color: scatterLineAttrs.color,\n width: scatterLineAttrs.width,\n dash: scatterLineAttrs.dash,\n backoff: scatterLineAttrs.backoff,\n shape: extendFlat(\n {},\n scatterLineAttrs.shape,\n { values: [\"linear\", \"spline\"] }\n ),\n smoothing: scatterLineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n marker: extendFlat(\n {\n symbol: scatterMarkerAttrs.symbol,\n opacity: scatterMarkerAttrs.opacity,\n maxdisplayed: scatterMarkerAttrs.maxdisplayed,\n angle: scatterMarkerAttrs.angle,\n angleref: scatterMarkerAttrs.angleref,\n standoff: scatterMarkerAttrs.standoff,\n size: scatterMarkerAttrs.size,\n sizeref: scatterMarkerAttrs.sizeref,\n sizemin: scatterMarkerAttrs.sizemin,\n sizemode: scatterMarkerAttrs.sizemode,\n line: extendFlat(\n {\n width: scatterMarkerLineAttrs.width,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker.line\")\n ),\n gradient: scatterMarkerAttrs.gradient,\n editType: \"calc\"\n },\n colorScaleAttrs(\"marker\")\n ),\n textfont: scatterAttrs.textfont,\n textposition: scatterAttrs.textposition,\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected,\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"a\", \"b\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs(),\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/scattercarpet/defaults.js\n var require_defaults60 = __commonJS({\n \"src/traces/scattercarpet/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var constants = require_constants8();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var attributes = require_attributes64();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n coerce(\"carpet\");\n traceOut.xaxis = \"x\";\n traceOut.yaxis = \"y\";\n var a = coerce(\"a\");\n var b = coerce(\"b\");\n var len = Math.min(a.length, b.length);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n traceOut._length = len;\n coerce(\"text\");\n coerce(\"texttemplate\");\n coerce(\"hovertext\");\n var defaultMode = len < constants.PTS_LINESONLY ? \"lines+markers\" : \"lines\";\n coerce(\"mode\", defaultMode);\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n var hoverOn = coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n if (hoverOn !== \"fills\") coerce(\"hovertemplate\");\n coerce(\"zorder\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scattercarpet/format_labels.js\n var require_format_labels7 = __commonJS({\n \"src/traces/scattercarpet/format_labels.js\"(exports, module) {\n \"use strict\";\n module.exports = function formatLabels(cdi, trace) {\n var labels = {};\n var carpet = trace._carpet;\n var ij = carpet.ab2ij([cdi.a, cdi.b]);\n var i0 = Math.floor(ij[0]);\n var ti = ij[0] - i0;\n var j0 = Math.floor(ij[1]);\n var tj = ij[1] - j0;\n var xy = carpet.evalxy([], i0, j0, ti, tj);\n labels.yLabel = xy[1].toFixed(3);\n return labels;\n };\n }\n });\n\n // src/traces/carpet/lookup_carpetid.js\n var require_lookup_carpetid = __commonJS({\n \"src/traces/carpet/lookup_carpetid.js\"(exports, module) {\n \"use strict\";\n module.exports = function(gd, trace) {\n var n = gd._fullData.length;\n var firstAxis;\n for (var i = 0; i < n; i++) {\n var maybeCarpet = gd._fullData[i];\n if (maybeCarpet.index === trace.index) continue;\n if (maybeCarpet.type === \"carpet\") {\n if (!firstAxis) {\n firstAxis = maybeCarpet;\n }\n if (maybeCarpet.carpet === trace.carpet) {\n return maybeCarpet;\n }\n }\n }\n return firstAxis;\n };\n }\n });\n\n // src/traces/scattercarpet/calc.js\n var require_calc39 = __commonJS({\n \"src/traces/scattercarpet/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var lookupCarpet = require_lookup_carpetid();\n module.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if (!carpet || !carpet.visible || carpet.visible === \"legendonly\") return;\n var i;\n trace.xaxis = carpet.xaxis;\n trace.yaxis = carpet.yaxis;\n var serieslen = trace._length;\n var cd = new Array(serieslen);\n var a, b;\n var needsCull = false;\n for (i = 0; i < serieslen; i++) {\n a = trace.a[i];\n b = trace.b[i];\n if (isNumeric(a) && isNumeric(b)) {\n var xy = carpet.ab2xy(+a, +b, true);\n var visible = carpet.isVisible(+a, +b);\n if (!visible) needsCull = true;\n cd[i] = { x: xy[0], y: xy[1], a, b, vis: visible };\n } else cd[i] = { x: false, y: false };\n }\n trace._needsCull = needsCull;\n cd[0].carpet = carpet;\n cd[0].trace = trace;\n calcMarkerSize(trace, serieslen);\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scattercarpet/plot.js\n var require_plot33 = __commonJS({\n \"src/traces/scattercarpet/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n var Axes = require_axes();\n var Drawing = require_drawing();\n module.exports = function plot(gd, plotinfoproxy, data, layer) {\n var i, trace, node;\n var carpet = data[0][0].carpet;\n var xaxis = Axes.getFromId(gd, carpet.xaxis || \"x\");\n var yaxis = Axes.getFromId(gd, carpet.yaxis || \"y\");\n var plotinfo = {\n xaxis,\n yaxis,\n plot: plotinfoproxy.plot\n };\n for (i = 0; i < data.length; i++) {\n trace = data[i][0].trace;\n trace._xA = xaxis;\n trace._yA = yaxis;\n }\n scatterPlot(gd, plotinfo, data, layer);\n for (i = 0; i < data.length; i++) {\n trace = data[i][0].trace;\n node = layer.selectAll(\"g.trace\" + trace.uid + \" .js-line\");\n Drawing.setClipUrl(node, data[i][0].carpet._clipPathId, gd);\n }\n };\n }\n });\n\n // src/traces/scattercarpet/hover.js\n var require_hover22 = __commonJS({\n \"src/traces/scattercarpet/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n var fillText = require_lib().fillText;\n module.exports = function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n var yFracUp = 1 - newPointData.y0 / pointData.ya._length;\n var xLen = pointData.xa._length;\n var xMin = xLen * yFracUp / 2;\n var xMax = xLen - xMin;\n newPointData.x0 = Math.max(Math.min(newPointData.x0, xMax), xMin);\n newPointData.x1 = Math.max(Math.min(newPointData.x1, xMax), xMin);\n return scatterPointData;\n }\n var cdi = newPointData.cd[newPointData.index];\n newPointData.a = cdi.a;\n newPointData.b = cdi.b;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n var trace = newPointData.trace;\n var carpet = trace._carpet;\n var labels = trace._module.formatLabels(cdi, trace);\n newPointData.yLabel = labels.yLabel;\n delete newPointData.text;\n var text = [];\n function textPart(ax, val) {\n var prefix;\n if (ax.labelprefix && ax.labelprefix.length > 0) {\n prefix = ax.labelprefix.replace(/ = $/, \"\");\n } else {\n prefix = ax._hovertitle;\n }\n text.push(prefix + \": \" + val.toFixed(3) + ax.labelsuffix);\n }\n if (!trace.hovertemplate) {\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"a\", \"b\", \"text\"];\n if (parts.indexOf(\"a\") !== -1) textPart(carpet.aaxis, cdi.a);\n if (parts.indexOf(\"b\") !== -1) textPart(carpet.baxis, cdi.b);\n text.push(\"y: \" + newPointData.yLabel);\n if (parts.indexOf(\"text\") !== -1) {\n fillText(cdi, trace, text);\n }\n newPointData.extraText = text.join(\"
\");\n }\n return scatterPointData;\n };\n }\n });\n\n // src/traces/scattercarpet/event_data.js\n var require_event_data15 = __commonJS({\n \"src/traces/scattercarpet/event_data.js\"(exports, module) {\n \"use strict\";\n module.exports = function eventData(out, pt, trace, cd, pointNumber) {\n var cdi = cd[pointNumber];\n out.a = cdi.a;\n out.b = cdi.b;\n out.y = cdi.y;\n return out;\n };\n }\n });\n\n // src/traces/scattercarpet/index.js\n var require_scattercarpet = __commonJS({\n \"src/traces/scattercarpet/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes64(),\n supplyDefaults: require_defaults60(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels7(),\n calc: require_calc39(),\n plot: require_plot33(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover22(),\n selectPoints: require_select2(),\n eventData: require_event_data15(),\n moduleType: \"trace\",\n name: \"scattercarpet\",\n basePlotModule: require_cartesian(),\n categories: [\"svg\", \"carpet\", \"symbols\", \"showLegend\", \"carpetDependent\", \"zoomScale\"],\n meta: {}\n };\n }\n });\n\n // lib/scattercarpet.js\n var require_scattercarpet2 = __commonJS({\n \"lib/scattercarpet.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattercarpet();\n }\n });\n\n // src/traces/contourcarpet/attributes.js\n var require_attributes65 = __commonJS({\n \"src/traces/contourcarpet/attributes.js\"(exports, module) {\n \"use strict\";\n var heatmapAttrs = require_attributes25();\n var contourAttrs = require_attributes28();\n var colorScaleAttrs = require_attributes8();\n var extendFlat = require_extend().extendFlat;\n var contourContourAttrs = contourAttrs.contours;\n module.exports = extendFlat(\n {\n carpet: {\n valType: \"string\",\n editType: \"calc\"\n },\n z: heatmapAttrs.z,\n a: heatmapAttrs.x,\n a0: heatmapAttrs.x0,\n da: heatmapAttrs.dx,\n b: heatmapAttrs.y,\n b0: heatmapAttrs.y0,\n db: heatmapAttrs.dy,\n text: heatmapAttrs.text,\n hovertext: heatmapAttrs.hovertext,\n transpose: heatmapAttrs.transpose,\n atype: heatmapAttrs.xtype,\n btype: heatmapAttrs.ytype,\n fillcolor: contourAttrs.fillcolor,\n autocontour: contourAttrs.autocontour,\n ncontours: contourAttrs.ncontours,\n contours: {\n type: contourContourAttrs.type,\n start: contourContourAttrs.start,\n end: contourContourAttrs.end,\n size: contourContourAttrs.size,\n coloring: {\n // from contourAttrs.contours.coloring but no 'heatmap' option\n valType: \"enumerated\",\n values: [\"fill\", \"lines\", \"none\"],\n dflt: \"fill\",\n editType: \"calc\"\n },\n showlines: contourContourAttrs.showlines,\n showlabels: contourContourAttrs.showlabels,\n labelfont: contourContourAttrs.labelfont,\n labelformat: contourContourAttrs.labelformat,\n operation: contourContourAttrs.operation,\n value: contourContourAttrs.value,\n editType: \"calc\",\n impliedEdits: { autocontour: false }\n },\n line: {\n color: contourAttrs.line.color,\n width: contourAttrs.line.width,\n dash: contourAttrs.line.dash,\n smoothing: contourAttrs.line.smoothing,\n editType: \"plot\"\n },\n zorder: contourAttrs.zorder\n },\n colorScaleAttrs(\"\", {\n cLetter: \"z\",\n autoColorDflt: false\n })\n );\n }\n });\n\n // src/traces/contourcarpet/defaults.js\n var require_defaults61 = __commonJS({\n \"src/traces/contourcarpet/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleXYZDefaults = require_xyz_defaults();\n var attributes = require_attributes65();\n var handleConstraintDefaults = require_constraint_defaults();\n var handleContoursDefaults = require_contours_defaults();\n var handleStyleDefaults = require_style_defaults3();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n function coerce2(attr) {\n return Lib.coerce2(traceIn, traceOut, attributes, attr);\n }\n coerce(\"carpet\");\n if (traceIn.a && traceIn.b) {\n var len = handleXYZDefaults(traceIn, traceOut, coerce, layout, \"a\", \"b\");\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"text\");\n var isConstraint = coerce(\"contours.type\") === \"constraint\";\n if (isConstraint) {\n handleConstraintDefaults(traceIn, traceOut, coerce, layout, defaultColor, { hasHover: false });\n } else {\n handleContoursDefaults(traceIn, traceOut, coerce, coerce2);\n handleStyleDefaults(traceIn, traceOut, coerce, layout, { hasHover: false });\n }\n } else {\n traceOut._defaultColor = defaultColor;\n traceOut._length = null;\n }\n coerce(\"zorder\");\n };\n }\n });\n\n // src/traces/contourcarpet/calc.js\n var require_calc40 = __commonJS({\n \"src/traces/contourcarpet/calc.js\"(exports, module) {\n \"use strict\";\n var colorscaleCalc = require_calc();\n var Lib = require_lib();\n var convertColumnData = require_convert_column_xyz();\n var clean2dArray = require_clean_2d_array();\n var interp2d = require_interp2d();\n var findEmpties = require_find_empties();\n var makeBoundArray = require_make_bound_array();\n var supplyDefaults = require_defaults61();\n var lookupCarpet = require_lookup_carpetid();\n var setContours = require_set_contours();\n module.exports = function calc(gd, trace) {\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n if (!carpet || !carpet.visible || carpet.visible === \"legendonly\") return;\n if (!trace.a || !trace.b) {\n var carpetdata = gd.data[carpet.index];\n var tracedata = gd.data[trace.index];\n if (!tracedata.a) tracedata.a = carpetdata.a;\n if (!tracedata.b) tracedata.b = carpetdata.b;\n supplyDefaults(tracedata, trace, trace._defaultColor, gd._fullLayout);\n }\n var cd = heatmappishCalc(gd, trace);\n setContours(trace, trace._z);\n return cd;\n };\n function heatmappishCalc(gd, trace) {\n var carpet = trace._carpetTrace;\n var aax = carpet.aaxis;\n var bax = carpet.baxis;\n var a, a0, da, b, b0, db, z;\n aax._minDtick = 0;\n bax._minDtick = 0;\n if (Lib.isArray1D(trace.z)) convertColumnData(trace, aax, bax, \"a\", \"b\", [\"z\"]);\n a = trace._a = trace._a || trace.a;\n b = trace._b = trace._b || trace.b;\n a = a ? aax.makeCalcdata(trace, \"_a\") : [];\n b = b ? bax.makeCalcdata(trace, \"_b\") : [];\n a0 = trace.a0 || 0;\n da = trace.da || 1;\n b0 = trace.b0 || 0;\n db = trace.db || 1;\n z = trace._z = clean2dArray(trace._z || trace.z, trace.transpose);\n trace._emptypoints = findEmpties(z);\n interp2d(z, trace._emptypoints);\n var xlen = Lib.maxRowLength(z);\n var xIn = trace.xtype === \"scaled\" ? \"\" : a;\n var xArray = makeBoundArray(trace, xIn, a0, da, xlen, aax);\n var yIn = trace.ytype === \"scaled\" ? \"\" : b;\n var yArray = makeBoundArray(trace, yIn, b0, db, z.length, bax);\n var cd0 = {\n a: xArray,\n b: yArray,\n z\n };\n if (trace.contours.type === \"levels\" && trace.contours.coloring !== \"none\") {\n colorscaleCalc(gd, trace, {\n vals: z,\n containerStr: \"\",\n cLetter: \"z\"\n });\n }\n return [cd0];\n }\n }\n });\n\n // src/traces/carpet/axis_aligned_line.js\n var require_axis_aligned_line = __commonJS({\n \"src/traces/carpet/axis_aligned_line.js\"(exports, module) {\n \"use strict\";\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n module.exports = function(carpet, carpetcd, a, b) {\n var idx, tangent, tanIsoIdx, tanIsoPar, segment, refidx;\n var p0, p1, v0, v1, start, end, range;\n var axis = isArrayOrTypedArray(a) ? \"a\" : \"b\";\n var ax = axis === \"a\" ? carpet.aaxis : carpet.baxis;\n var smoothing = ax.smoothing;\n var toIdx = axis === \"a\" ? carpet.a2i : carpet.b2j;\n var pt = axis === \"a\" ? a : b;\n var iso = axis === \"a\" ? b : a;\n var n = axis === \"a\" ? carpetcd.a.length : carpetcd.b.length;\n var m = axis === \"a\" ? carpetcd.b.length : carpetcd.a.length;\n var isoIdx = Math.floor(axis === \"a\" ? carpet.b2j(iso) : carpet.a2i(iso));\n var xy = axis === \"a\" ? function(value) {\n return carpet.evalxy([], value, isoIdx);\n } : function(value) {\n return carpet.evalxy([], isoIdx, value);\n };\n if (smoothing) {\n tanIsoIdx = Math.max(0, Math.min(m - 2, isoIdx));\n tanIsoPar = isoIdx - tanIsoIdx;\n tangent = axis === \"a\" ? function(i, ti) {\n return carpet.dxydi([], i, tanIsoIdx, ti, tanIsoPar);\n } : function(j, tj) {\n return carpet.dxydj([], tanIsoIdx, j, tanIsoPar, tj);\n };\n }\n var vstart = toIdx(pt[0]);\n var vend = toIdx(pt[1]);\n var dir = vstart < vend ? 1 : -1;\n var tol = (vend - vstart) * 1e-8;\n var dirfloor = dir > 0 ? Math.floor : Math.ceil;\n var dirceil = dir > 0 ? Math.ceil : Math.floor;\n var dirmin = dir > 0 ? Math.min : Math.max;\n var dirmax = dir > 0 ? Math.max : Math.min;\n var idx0 = dirfloor(vstart + tol);\n var idx1 = dirceil(vend - tol);\n p0 = xy(vstart);\n var segments = [[p0]];\n for (idx = idx0; idx * dir < idx1 * dir; idx += dir) {\n segment = [];\n start = dirmax(vstart, idx);\n end = dirmin(vend, idx + dir);\n range = end - start;\n refidx = Math.max(0, Math.min(n - 2, Math.floor(0.5 * (start + end))));\n p1 = xy(end);\n if (smoothing) {\n v0 = tangent(refidx, start - refidx);\n v1 = tangent(refidx, end - refidx);\n segment.push([\n p0[0] + v0[0] / 3 * range,\n p0[1] + v0[1] / 3 * range\n ]);\n segment.push([\n p1[0] - v1[0] / 3 * range,\n p1[1] - v1[1] / 3 * range\n ]);\n }\n segment.push(p1);\n segments.push(segment);\n p0 = p1;\n }\n return segments;\n };\n }\n });\n\n // src/traces/contourcarpet/plot.js\n var require_plot34 = __commonJS({\n \"src/traces/contourcarpet/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var map1dArray = require_map_1d_array();\n var makepath = require_makepath();\n var Drawing = require_drawing();\n var Lib = require_lib();\n var makeCrossings = require_make_crossings();\n var findAllPaths = require_find_all_paths();\n var contourPlot = require_plot6();\n var constants = require_constants16();\n var convertToConstraints = require_convert_to_constraints();\n var emptyPathinfo = require_empty_pathinfo();\n var closeBoundaries = require_close_boundaries();\n var lookupCarpet = require_lookup_carpetid();\n var axisAlignedLine = require_axis_aligned_line();\n module.exports = function plot(gd, plotinfo, cdcontours, contourcarpetLayer) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n Lib.makeTraceGroups(contourcarpetLayer, cdcontours, \"contour\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var trace = cd0.trace;\n var carpet = trace._carpetTrace = lookupCarpet(gd, trace);\n var carpetcd = gd.calcdata[carpet.index][0];\n if (!carpet.visible || carpet.visible === \"legendonly\") return;\n var a = cd0.a;\n var b = cd0.b;\n var contours = trace.contours;\n var pathinfo = emptyPathinfo(contours, plotinfo, cd0);\n var isConstraint = contours.type === \"constraint\";\n var operation = contours._operation;\n var coloring = isConstraint ? operation === \"=\" ? \"lines\" : \"fill\" : contours.coloring;\n function ab2p(ab) {\n var pt = carpet.ab2xy(ab[0], ab[1], true);\n return [xa.c2p(pt[0]), ya.c2p(pt[1])];\n }\n var perimeter = [\n [a[0], b[b.length - 1]],\n [a[a.length - 1], b[b.length - 1]],\n [a[a.length - 1], b[0]],\n [a[0], b[0]]\n ];\n makeCrossings(pathinfo);\n var atol = (a[a.length - 1] - a[0]) * 1e-8;\n var btol = (b[b.length - 1] - b[0]) * 1e-8;\n findAllPaths(pathinfo, atol, btol);\n var fillPathinfo = pathinfo;\n if (contours.type === \"constraint\") {\n fillPathinfo = convertToConstraints(pathinfo, operation);\n }\n mapPathinfo(pathinfo, ab2p);\n var seg, xp, yp, i;\n var segs = [];\n for (i = carpetcd.clipsegments.length - 1; i >= 0; i--) {\n seg = carpetcd.clipsegments[i];\n xp = map1dArray([], seg.x, xa.c2p);\n yp = map1dArray([], seg.y, ya.c2p);\n xp.reverse();\n yp.reverse();\n segs.push(makepath(xp, yp, seg.bicubic));\n }\n var boundaryPath = \"M\" + segs.join(\"L\") + \"Z\";\n makeBackground(plotGroup, carpetcd.clipsegments, xa, ya, isConstraint, coloring);\n makeFills(trace, plotGroup, xa, ya, fillPathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath);\n makeLinesAndLabels(plotGroup, pathinfo, gd, cd0, contours, plotinfo, carpet);\n Drawing.setClipUrl(plotGroup, carpet._clipPathId, gd);\n });\n };\n function mapPathinfo(pathinfo, map) {\n var i, j, k, pi, pedgepaths, ppaths, pedgepath, ppath, path;\n for (i = 0; i < pathinfo.length; i++) {\n pi = pathinfo[i];\n pedgepaths = pi.pedgepaths = [];\n ppaths = pi.ppaths = [];\n for (j = 0; j < pi.edgepaths.length; j++) {\n path = pi.edgepaths[j];\n pedgepath = [];\n for (k = 0; k < path.length; k++) {\n pedgepath[k] = map(path[k]);\n }\n pedgepaths.push(pedgepath);\n }\n for (j = 0; j < pi.paths.length; j++) {\n path = pi.paths[j];\n ppath = [];\n for (k = 0; k < path.length; k++) {\n ppath[k] = map(path[k]);\n }\n ppaths.push(ppath);\n }\n }\n }\n function makeLinesAndLabels(plotgroup, pathinfo, gd, cd0, contours, plotinfo, carpet) {\n var isStatic = gd._context.staticPlot;\n var lineContainer = Lib.ensureSingle(plotgroup, \"g\", \"contourlines\");\n var showLines = contours.showlines !== false;\n var showLabels = contours.showlabels;\n var clipLinesForLabels = showLines && showLabels;\n var linegroup = contourPlot.createLines(lineContainer, showLines || showLabels, pathinfo, isStatic);\n var lineClip = contourPlot.createLineClip(lineContainer, clipLinesForLabels, gd, cd0.trace.uid);\n var labelGroup = plotgroup.selectAll(\"g.contourlabels\").data(showLabels ? [0] : []);\n labelGroup.exit().remove();\n labelGroup.enter().append(\"g\").classed(\"contourlabels\", true);\n if (showLabels) {\n var xa = plotinfo.xaxis;\n var ya = plotinfo.yaxis;\n var xLen = xa._length;\n var yLen = ya._length;\n var labelClipPathData = [[\n [0, 0],\n [xLen, 0],\n [xLen, yLen],\n [0, yLen]\n ]];\n var labelData = [];\n Lib.clearLocationCache();\n var contourFormat = contourPlot.labelFormatter(gd, cd0);\n var dummyText = Drawing.tester.append(\"text\").attr(\"data-notex\", 1).call(Drawing.font, contours.labelfont);\n var bounds = {\n left: 0,\n right: xLen,\n center: xLen / 2,\n top: 0,\n bottom: yLen,\n middle: yLen / 2\n };\n var plotDiagonal = Math.sqrt(xLen * xLen + yLen * yLen);\n var normLength = constants.LABELDISTANCE * plotDiagonal / Math.max(1, pathinfo.length / constants.LABELINCREASE);\n linegroup.each(function(d) {\n var textOpts = contourPlot.calcTextOpts(d.level, contourFormat, dummyText, gd);\n d3.select(this).selectAll(\"path\").each(function(pathData) {\n var path = this;\n var pathBounds = Lib.getVisibleSegment(path, bounds, textOpts.height / 2);\n if (!pathBounds) return;\n constrainToCarpet(path, pathData, d, pathBounds, carpet, textOpts.height);\n if (pathBounds.len < (textOpts.width + textOpts.height) * constants.LABELMIN) return;\n var maxLabels = Math.min(\n Math.ceil(pathBounds.len / normLength),\n constants.LABELMAX\n );\n for (var i = 0; i < maxLabels; i++) {\n var loc = contourPlot.findBestTextLocation(\n path,\n pathBounds,\n textOpts,\n labelData,\n bounds\n );\n if (!loc) break;\n contourPlot.addLabelData(loc, textOpts, labelData, labelClipPathData);\n }\n });\n });\n dummyText.remove();\n contourPlot.drawLabels(\n labelGroup,\n labelData,\n gd,\n lineClip,\n clipLinesForLabels ? labelClipPathData : null\n );\n }\n if (showLabels && !showLines) linegroup.remove();\n }\n function constrainToCarpet(path, pathData, levelData, pathBounds, carpet, textHeight) {\n var pathABData;\n for (var i = 0; i < levelData.pedgepaths.length; i++) {\n if (pathData === levelData.pedgepaths[i]) {\n pathABData = levelData.edgepaths[i];\n }\n }\n if (!pathABData) return;\n var aMin = carpet.a[0];\n var aMax = carpet.a[carpet.a.length - 1];\n var bMin = carpet.b[0];\n var bMax = carpet.b[carpet.b.length - 1];\n function getOffset(abPt, pathVector) {\n var offset = 0;\n var edgeVector;\n var dAB = 0.1;\n if (Math.abs(abPt[0] - aMin) < dAB || Math.abs(abPt[0] - aMax) < dAB) {\n edgeVector = normalizeVector(carpet.dxydb_rough(abPt[0], abPt[1], dAB));\n offset = Math.max(offset, textHeight * vectorTan(pathVector, edgeVector) / 2);\n }\n if (Math.abs(abPt[1] - bMin) < dAB || Math.abs(abPt[1] - bMax) < dAB) {\n edgeVector = normalizeVector(carpet.dxyda_rough(abPt[0], abPt[1], dAB));\n offset = Math.max(offset, textHeight * vectorTan(pathVector, edgeVector) / 2);\n }\n return offset;\n }\n var startVector = getUnitVector(path, 0, 1);\n var endVector = getUnitVector(path, pathBounds.total, pathBounds.total - 1);\n var minStart = getOffset(pathABData[0], startVector);\n var maxEnd = pathBounds.total - getOffset(pathABData[pathABData.length - 1], endVector);\n if (pathBounds.min < minStart) pathBounds.min = minStart;\n if (pathBounds.max > maxEnd) pathBounds.max = maxEnd;\n pathBounds.len = pathBounds.max - pathBounds.min;\n }\n function getUnitVector(path, p0, p1) {\n var pt0 = path.getPointAtLength(p0);\n var pt1 = path.getPointAtLength(p1);\n var dx = pt1.x - pt0.x;\n var dy = pt1.y - pt0.y;\n var len = Math.sqrt(dx * dx + dy * dy);\n return [dx / len, dy / len];\n }\n function normalizeVector(v) {\n var len = Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n return [v[0] / len, v[1] / len];\n }\n function vectorTan(v0, v1) {\n var cos = Math.abs(v0[0] * v1[0] + v0[1] * v1[1]);\n var sin = Math.sqrt(1 - cos * cos);\n return sin / cos;\n }\n function makeBackground(plotgroup, clipsegments, xaxis, yaxis, isConstraint, coloring) {\n var seg, xp, yp, i;\n var bggroup = Lib.ensureSingle(plotgroup, \"g\", \"contourbg\");\n var bgfill = bggroup.selectAll(\"path\").data(coloring === \"fill\" && !isConstraint ? [0] : []);\n bgfill.enter().append(\"path\");\n bgfill.exit().remove();\n var segs = [];\n for (i = 0; i < clipsegments.length; i++) {\n seg = clipsegments[i];\n xp = map1dArray([], seg.x, xaxis.c2p);\n yp = map1dArray([], seg.y, yaxis.c2p);\n segs.push(makepath(xp, yp, seg.bicubic));\n }\n bgfill.attr(\"d\", \"M\" + segs.join(\"L\") + \"Z\").style(\"stroke\", \"none\");\n }\n function makeFills(trace, plotgroup, xa, ya, pathinfo, perimeter, ab2p, carpet, carpetcd, coloring, boundaryPath) {\n var hasFills = coloring === \"fill\";\n if (hasFills) {\n closeBoundaries(pathinfo, trace.contours);\n }\n var fillgroup = Lib.ensureSingle(plotgroup, \"g\", \"contourfill\");\n var fillitems = fillgroup.selectAll(\"path\").data(hasFills ? pathinfo : []);\n fillitems.enter().append(\"path\");\n fillitems.exit().remove();\n fillitems.each(function(pi) {\n var fullpath = (pi.prefixBoundary ? boundaryPath : \"\") + joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya);\n if (!fullpath) {\n d3.select(this).remove();\n } else {\n d3.select(this).attr(\"d\", fullpath).style(\"stroke\", \"none\");\n }\n });\n }\n function joinAllPaths(trace, pi, perimeter, ab2p, carpet, carpetcd, xa, ya) {\n var i;\n var fullpath = \"\";\n var startsleft = pi.edgepaths.map(function(v, i2) {\n return i2;\n });\n var newloop = true;\n var endpt, newendpt, cnt, nexti, possiblei, addpath;\n var atol = Math.abs(perimeter[0][0] - perimeter[2][0]) * 1e-4;\n var btol = Math.abs(perimeter[0][1] - perimeter[2][1]) * 1e-4;\n function istop(pt) {\n return Math.abs(pt[1] - perimeter[0][1]) < btol;\n }\n function isbottom(pt) {\n return Math.abs(pt[1] - perimeter[2][1]) < btol;\n }\n function isleft(pt) {\n return Math.abs(pt[0] - perimeter[0][0]) < atol;\n }\n function isright(pt) {\n return Math.abs(pt[0] - perimeter[2][0]) < atol;\n }\n function pathto(pt0, pt1) {\n var i2, j, segments, axis;\n var path = \"\";\n if (istop(pt0) && !isright(pt0) || isbottom(pt0) && !isleft(pt0)) {\n axis = carpet.aaxis;\n segments = axisAlignedLine(carpet, carpetcd, [pt0[0], pt1[0]], 0.5 * (pt0[1] + pt1[1]));\n } else {\n axis = carpet.baxis;\n segments = axisAlignedLine(carpet, carpetcd, 0.5 * (pt0[0] + pt1[0]), [pt0[1], pt1[1]]);\n }\n for (i2 = 1; i2 < segments.length; i2++) {\n path += axis.smoothing ? \"C\" : \"L\";\n for (j = 0; j < segments[i2].length; j++) {\n var pt = segments[i2][j];\n path += [xa.c2p(pt[0]), ya.c2p(pt[1])] + \" \";\n }\n }\n return path;\n }\n i = 0;\n endpt = null;\n while (startsleft.length) {\n var startpt = pi.edgepaths[i][0];\n if (endpt) {\n fullpath += pathto(endpt, startpt);\n }\n addpath = Drawing.smoothopen(pi.edgepaths[i].map(ab2p), pi.smoothing);\n fullpath += newloop ? addpath : addpath.replace(/^M/, \"L\");\n startsleft.splice(startsleft.indexOf(i), 1);\n endpt = pi.edgepaths[i][pi.edgepaths[i].length - 1];\n nexti = -1;\n for (cnt = 0; cnt < 4; cnt++) {\n if (!endpt) {\n Lib.log(\"Missing end?\", i, pi);\n break;\n }\n if (istop(endpt) && !isright(endpt)) {\n newendpt = perimeter[1];\n } else if (isleft(endpt)) {\n newendpt = perimeter[0];\n } else if (isbottom(endpt)) {\n newendpt = perimeter[3];\n } else if (isright(endpt)) {\n newendpt = perimeter[2];\n }\n for (possiblei = 0; possiblei < pi.edgepaths.length; possiblei++) {\n var ptNew = pi.edgepaths[possiblei][0];\n if (Math.abs(endpt[0] - newendpt[0]) < atol) {\n if (Math.abs(endpt[0] - ptNew[0]) < atol && (ptNew[1] - endpt[1]) * (newendpt[1] - ptNew[1]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else if (Math.abs(endpt[1] - newendpt[1]) < btol) {\n if (Math.abs(endpt[1] - ptNew[1]) < btol && (ptNew[0] - endpt[0]) * (newendpt[0] - ptNew[0]) >= 0) {\n newendpt = ptNew;\n nexti = possiblei;\n }\n } else {\n Lib.log(\"endpt to newendpt is not vert. or horz.\", endpt, newendpt, ptNew);\n }\n }\n if (nexti >= 0) break;\n fullpath += pathto(endpt, newendpt);\n endpt = newendpt;\n }\n if (nexti === pi.edgepaths.length) {\n Lib.log(\"unclosed perimeter path\");\n break;\n }\n i = nexti;\n newloop = startsleft.indexOf(i) === -1;\n if (newloop) {\n i = startsleft[0];\n fullpath += pathto(endpt, newendpt) + \"Z\";\n endpt = null;\n }\n }\n for (i = 0; i < pi.paths.length; i++) {\n fullpath += Drawing.smoothclosed(pi.paths[i].map(ab2p), pi.smoothing);\n }\n return fullpath;\n }\n }\n });\n\n // src/traces/contourcarpet/index.js\n var require_contourcarpet = __commonJS({\n \"src/traces/contourcarpet/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attributes: require_attributes65(),\n supplyDefaults: require_defaults61(),\n colorbar: require_colorbar3(),\n calc: require_calc40(),\n plot: require_plot34(),\n style: require_style7(),\n moduleType: \"trace\",\n name: \"contourcarpet\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"carpet\", \"contour\", \"symbols\", \"showLegend\", \"hasLines\", \"carpetDependent\", \"noHover\", \"noSortingByValue\"],\n meta: {}\n };\n }\n });\n\n // lib/contourcarpet.js\n var require_contourcarpet2 = __commonJS({\n \"lib/contourcarpet.js\"(exports, module) {\n \"use strict\";\n module.exports = require_contourcarpet();\n }\n });\n\n // src/traces/ohlc/attributes.js\n var require_attributes66 = __commonJS({\n \"src/traces/ohlc/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_lib().extendFlat;\n var scatterAttrs = require_attributes12();\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var dash = require_attributes4().dash;\n var fxAttrs = require_attributes();\n var delta = require_delta();\n var INCREASING_COLOR = delta.INCREASING.COLOR;\n var DECREASING_COLOR = delta.DECREASING.COLOR;\n var lineAttrs = scatterAttrs.line;\n function directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, lineAttrs.color, { dflt: lineColorDefault }),\n width: lineAttrs.width,\n dash,\n editType: \"style\"\n },\n editType: \"style\"\n };\n }\n module.exports = {\n xperiod: scatterAttrs.xperiod,\n xperiod0: scatterAttrs.xperiod0,\n xperiodalignment: scatterAttrs.xperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n x: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n open: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n high: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n low: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n close: {\n valType: \"data_array\",\n editType: \"calc\"\n },\n line: {\n width: extendFlat({}, lineAttrs.width, {}),\n dash: extendFlat({}, dash, {}),\n editType: \"style\"\n },\n increasing: directionAttrs(INCREASING_COLOR),\n decreasing: directionAttrs(DECREASING_COLOR),\n text: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n hovertext: {\n valType: \"string\",\n dflt: \"\",\n arrayOk: true,\n editType: \"calc\"\n },\n tickwidth: {\n valType: \"number\",\n min: 0,\n max: 0.5,\n dflt: 0.3,\n editType: \"calc\"\n },\n hoverlabel: extendFlat({}, fxAttrs.hoverlabel, {\n split: {\n valType: \"boolean\",\n dflt: false,\n editType: \"style\"\n }\n }),\n zorder: scatterAttrs.zorder\n };\n }\n });\n\n // src/traces/ohlc/ohlc_defaults.js\n var require_ohlc_defaults = __commonJS({\n \"src/traces/ohlc/ohlc_defaults.js\"(exports, module) {\n \"use strict\";\n var Registry = require_registry();\n var Lib = require_lib();\n module.exports = function handleOHLC(traceIn, traceOut, coerce, layout) {\n var x = coerce(\"x\");\n var open = coerce(\"open\");\n var high = coerce(\"high\");\n var low = coerce(\"low\");\n var close = coerce(\"close\");\n coerce(\"hoverlabel.split\");\n var handleCalendarDefaults = Registry.getComponentMethod(\"calendars\", \"handleTraceDefaults\");\n handleCalendarDefaults(traceIn, traceOut, [\"x\"], layout);\n if (!(open && high && low && close)) return;\n var len = Math.min(open.length, high.length, low.length, close.length);\n if (x) len = Math.min(len, Lib.minRowLength(x));\n traceOut._length = len;\n return len;\n };\n }\n });\n\n // src/traces/ohlc/defaults.js\n var require_defaults62 = __commonJS({\n \"src/traces/ohlc/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleOHLC = require_ohlc_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes66();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleOHLC(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce, { x: true });\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"line.width\");\n coerce(\"line.dash\");\n handleDirection(traceIn, traceOut, coerce, \"increasing\");\n handleDirection(traceIn, traceOut, coerce, \"decreasing\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"tickwidth\");\n layout._requestRangeslider[traceOut.xaxis] = true;\n coerce(\"zorder\");\n };\n function handleDirection(traceIn, traceOut, coerce, direction) {\n coerce(direction + \".line.color\");\n coerce(direction + \".line.width\", traceOut.line.width);\n coerce(direction + \".line.dash\", traceOut.line.dash);\n }\n }\n });\n\n // src/traces/ohlc/calc.js\n var require_calc41 = __commonJS({\n \"src/traces/ohlc/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var _ = Lib._;\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var BADNUM = require_numerical().BADNUM;\n function calc(gd, trace) {\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var tickLen = convertTickWidth(gd, xa, trace);\n var minDiff = trace._minDiff;\n trace._minDiff = null;\n var origX = trace._origX;\n trace._origX = null;\n var x = trace._xcalc;\n trace._xcalc = null;\n var cd = calcCommon(gd, trace, origX, x, ya, ptFunc);\n trace._extremes[xa._id] = Axes.findExtremes(xa, x, { vpad: minDiff / 2 });\n if (cd.length) {\n Lib.extendFlat(cd[0].t, {\n wHover: minDiff / 2,\n tickLen\n });\n return cd;\n } else {\n return [{ t: { empty: true } }];\n }\n }\n function ptFunc(o, h, l, c) {\n return {\n o,\n h,\n l,\n c\n };\n }\n function calcCommon(gd, trace, origX, x, ya, ptFunc2) {\n var o = ya.makeCalcdata(trace, \"open\");\n var h = ya.makeCalcdata(trace, \"high\");\n var l = ya.makeCalcdata(trace, \"low\");\n var c = ya.makeCalcdata(trace, \"close\");\n var hasTextArray = Lib.isArrayOrTypedArray(trace.text);\n var hasHovertextArray = Lib.isArrayOrTypedArray(trace.hovertext);\n var increasing = true;\n var cPrev = null;\n var hasPeriod = !!trace.xperiodalignment;\n var cd = [];\n for (var i = 0; i < x.length; i++) {\n var xi = x[i];\n var oi = o[i];\n var hi = h[i];\n var li = l[i];\n var ci = c[i];\n if (xi !== BADNUM && oi !== BADNUM && hi !== BADNUM && li !== BADNUM && ci !== BADNUM) {\n if (ci === oi) {\n if (cPrev !== null && ci !== cPrev) increasing = ci > cPrev;\n } else increasing = ci > oi;\n cPrev = ci;\n var pt = ptFunc2(oi, hi, li, ci);\n pt.pos = xi;\n pt.yc = (oi + ci) / 2;\n pt.i = i;\n pt.dir = increasing ? \"increasing\" : \"decreasing\";\n pt.x = pt.pos;\n pt.y = [li, hi];\n if (hasPeriod) pt.orig_p = origX[i];\n if (hasTextArray) pt.tx = trace.text[i];\n if (hasHovertextArray) pt.htx = trace.hovertext[i];\n cd.push(pt);\n } else {\n cd.push({ pos: xi, empty: true });\n }\n }\n trace._extremes[ya._id] = Axes.findExtremes(ya, Lib.concat(l, h), { padded: true });\n if (cd.length) {\n cd[0].t = {\n labels: {\n open: _(gd, \"open:\") + \" \",\n high: _(gd, \"high:\") + \" \",\n low: _(gd, \"low:\") + \" \",\n close: _(gd, \"close:\") + \" \"\n }\n };\n }\n return cd;\n }\n function convertTickWidth(gd, xa, trace) {\n var minDiff = trace._minDiff;\n if (!minDiff) {\n var fullData = gd._fullData;\n var ohlcTracesOnThisXaxis = [];\n minDiff = Infinity;\n var i;\n for (i = 0; i < fullData.length; i++) {\n var tracei = fullData[i];\n if (tracei.type === \"ohlc\" && tracei.visible === true && tracei.xaxis === xa._id) {\n ohlcTracesOnThisXaxis.push(tracei);\n var origX = xa.makeCalcdata(tracei, \"x\");\n tracei._origX = origX;\n var xcalc = alignPeriod(trace, xa, \"x\", origX).vals;\n tracei._xcalc = xcalc;\n var _minDiff = Lib.distinctVals(xcalc).minDiff;\n if (_minDiff && isFinite(_minDiff)) {\n minDiff = Math.min(minDiff, _minDiff);\n }\n }\n }\n if (minDiff === Infinity) minDiff = 1;\n for (i = 0; i < ohlcTracesOnThisXaxis.length; i++) {\n ohlcTracesOnThisXaxis[i]._minDiff = minDiff;\n }\n }\n return minDiff * trace.tickwidth;\n }\n module.exports = {\n calc,\n calcCommon\n };\n }\n });\n\n // src/traces/ohlc/plot.js\n var require_plot35 = __commonJS({\n \"src/traces/ohlc/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Lib = require_lib();\n module.exports = function plot(gd, plotinfo, cdOHLC, ohlcLayer) {\n var ya = plotinfo.yaxis;\n var xa = plotinfo.xaxis;\n var posHasRangeBreaks = !!xa.rangebreaks;\n Lib.makeTraceGroups(ohlcLayer, cdOHLC, \"trace ohlc\").each(function(cd) {\n var plotGroup = d3.select(this);\n var cd0 = cd[0];\n var t = cd0.t;\n var trace = cd0.trace;\n if (trace.visible !== true || t.empty) {\n plotGroup.remove();\n return;\n }\n var tickLen = t.tickLen;\n var paths = plotGroup.selectAll(\"path\").data(Lib.identity);\n paths.enter().append(\"path\");\n paths.exit().remove();\n paths.attr(\"d\", function(d) {\n if (d.empty) return \"M0,0Z\";\n var xo = xa.c2p(d.pos - tickLen, true);\n var xc = xa.c2p(d.pos + tickLen, true);\n var x = posHasRangeBreaks ? (xo + xc) / 2 : xa.c2p(d.pos, true);\n var yo = ya.c2p(d.o, true);\n var yh = ya.c2p(d.h, true);\n var yl = ya.c2p(d.l, true);\n var yc = ya.c2p(d.c, true);\n return \"M\" + xo + \",\" + yo + \"H\" + x + \"M\" + x + \",\" + yh + \"V\" + yl + \"M\" + xc + \",\" + yc + \"H\" + x;\n });\n });\n };\n }\n });\n\n // src/traces/ohlc/style.js\n var require_style19 = __commonJS({\n \"src/traces/ohlc/style.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var Drawing = require_drawing();\n var Color2 = require_color();\n module.exports = function style(gd, cd, sel) {\n var s = sel ? sel : d3.select(gd).selectAll(\"g.ohlclayer\").selectAll(\"g.trace\");\n s.style(\"opacity\", function(d) {\n return d[0].trace.opacity;\n });\n s.each(function(d) {\n var trace = d[0].trace;\n d3.select(this).selectAll(\"path\").each(function(di) {\n if (di.empty) return;\n var dirLine = trace[di.dir].line;\n d3.select(this).style(\"fill\", \"none\").call(Color2.stroke, dirLine.color).call(Drawing.dashLine, dirLine.dash, dirLine.width).style(\"opacity\", trace.selectedpoints && !di.selected ? 0.3 : 1);\n });\n });\n };\n }\n });\n\n // src/traces/ohlc/hover.js\n var require_hover23 = __commonJS({\n \"src/traces/ohlc/hover.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n var Lib = require_lib();\n var Fx = require_fx();\n var Color2 = require_color();\n var fillText = require_lib().fillText;\n var delta = require_delta();\n var DIRSYMBOL = {\n increasing: delta.INCREASING.SYMBOL,\n decreasing: delta.DECREASING.SYMBOL\n };\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n if (trace.hoverlabel.split) {\n return hoverSplit(pointData, xval, yval, hovermode);\n }\n return hoverOnPoints(pointData, xval, yval, hovermode);\n }\n function _getClosestPoint(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var xa = pointData.xa;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var type = trace.type;\n var minAttr = type === \"ohlc\" ? \"l\" : \"min\";\n var maxAttr = type === \"ohlc\" ? \"h\" : \"max\";\n var hoverPseudoDistance, spikePseudoDistance;\n var centerShift = t.bPos || 0;\n var shiftPos = function(di2) {\n return di2.pos + centerShift - xval;\n };\n var displayHalfWidth = t.bdPos || t.tickLen;\n var hoverHalfWidth = t.wHover;\n var pseudoDistance = Math.min(1, displayHalfWidth / Math.abs(xa.r2c(xa.range[1]) - xa.r2c(xa.range[0])));\n hoverPseudoDistance = pointData.maxHoverDistance - pseudoDistance;\n spikePseudoDistance = pointData.maxSpikeDistance - pseudoDistance;\n function dx(di2) {\n var pos = shiftPos(di2);\n return Fx.inbox(pos - hoverHalfWidth, pos + hoverHalfWidth, hoverPseudoDistance);\n }\n function dy(di2) {\n var min = di2[minAttr];\n var max = di2[maxAttr];\n return min === max || Fx.inbox(min - yval, max - yval, hoverPseudoDistance);\n }\n function dxy(di2) {\n return (dx(di2) + dy(di2)) / 2;\n }\n var distfn = Fx.getDistanceFunction(hovermode, dx, dy, dxy);\n Fx.getClosest(cd, distfn, pointData);\n if (pointData.index === false) return null;\n var di = cd[pointData.index];\n if (di.empty) return null;\n var dir = di.dir;\n var container = trace[dir];\n var lc = container.line.color;\n if (Color2.opacity(lc) && container.line.width) pointData.color = lc;\n else pointData.color = container.fillcolor;\n pointData.x0 = xa.c2p(di.pos + centerShift - displayHalfWidth, true);\n pointData.x1 = xa.c2p(di.pos + centerShift + displayHalfWidth, true);\n pointData.xLabelVal = di.orig_p !== void 0 ? di.orig_p : di.pos;\n pointData.spikeDistance = dxy(di) * spikePseudoDistance / hoverPseudoDistance;\n pointData.xSpike = xa.c2p(di.pos, true);\n return pointData;\n }\n function hoverSplit(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var closeBoxData = [];\n var closestPoint = _getClosestPoint(pointData, xval, yval, hovermode);\n if (!closestPoint) return [];\n var cdIndex = closestPoint.index;\n var di = cd[cdIndex];\n var hoverinfo = di.hi || trace.hoverinfo;\n var hoverParts = hoverinfo.split(\"+\");\n var isAll = hoverinfo === \"all\";\n var hasY = isAll || hoverParts.indexOf(\"y\") !== -1;\n if (!hasY) return [];\n var attrs = [\"high\", \"open\", \"close\", \"low\"];\n var usedVals = {};\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n var val = trace[attr][closestPoint.index];\n var valPx = ya.c2p(val, true);\n var pointData2;\n if (val in usedVals) {\n pointData2 = usedVals[val];\n pointData2.yLabel += \"
\" + t.labels[attr] + Axes.hoverLabelText(ya, val, trace.yhoverformat);\n } else {\n pointData2 = Lib.extendFlat({}, closestPoint);\n pointData2.y0 = pointData2.y1 = valPx;\n pointData2.yLabelVal = val;\n pointData2.yLabel = t.labels[attr] + Axes.hoverLabelText(ya, val, trace.yhoverformat);\n pointData2.name = \"\";\n closeBoxData.push(pointData2);\n usedVals[val] = pointData2;\n }\n }\n return closeBoxData;\n }\n function hoverOnPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var ya = pointData.ya;\n var trace = cd[0].trace;\n var t = cd[0].t;\n var closestPoint = _getClosestPoint(pointData, xval, yval, hovermode);\n if (!closestPoint) return [];\n var cdIndex = closestPoint.index;\n var di = cd[cdIndex];\n var i = closestPoint.index = di.i;\n var dir = di.dir;\n function getLabelLine(attr) {\n return t.labels[attr] + Axes.hoverLabelText(ya, trace[attr][i], trace.yhoverformat);\n }\n var hoverinfo = di.hi || trace.hoverinfo;\n var hoverParts = hoverinfo.split(\"+\");\n var isAll = hoverinfo === \"all\";\n var hasY = isAll || hoverParts.indexOf(\"y\") !== -1;\n var hasText = isAll || hoverParts.indexOf(\"text\") !== -1;\n var textParts = hasY ? [\n getLabelLine(\"open\"),\n getLabelLine(\"high\"),\n getLabelLine(\"low\"),\n getLabelLine(\"close\") + \" \" + DIRSYMBOL[dir]\n ] : [];\n if (hasText) fillText(di, trace, textParts);\n closestPoint.extraText = textParts.join(\"
\");\n closestPoint.y0 = closestPoint.y1 = ya.c2p(di.yc, true);\n return [closestPoint];\n }\n module.exports = {\n hoverPoints,\n hoverSplit,\n hoverOnPoints\n };\n }\n });\n\n // src/traces/ohlc/select.js\n var require_select12 = __commonJS({\n \"src/traces/ohlc/select.js\"(exports, module) {\n \"use strict\";\n module.exports = function selectPoints(searchInfo, selectionTester) {\n var cd = searchInfo.cd;\n var xa = searchInfo.xaxis;\n var ya = searchInfo.yaxis;\n var selection = [];\n var i;\n var posOffset = cd[0].t.bPos || 0;\n if (selectionTester === false) {\n for (i = 0; i < cd.length; i++) {\n cd[i].selected = 0;\n }\n } else {\n for (i = 0; i < cd.length; i++) {\n var di = cd[i];\n if (selectionTester.contains([xa.c2p(di.pos + posOffset), ya.c2p(di.yc)], null, di.i, searchInfo)) {\n selection.push({\n pointNumber: di.i,\n x: xa.c2d(di.pos),\n y: ya.c2d(di.yc)\n });\n di.selected = 1;\n } else {\n di.selected = 0;\n }\n }\n }\n return selection;\n };\n }\n });\n\n // src/traces/ohlc/index.js\n var require_ohlc = __commonJS({\n \"src/traces/ohlc/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"ohlc\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"showLegend\"],\n meta: {},\n attributes: require_attributes66(),\n supplyDefaults: require_defaults62(),\n calc: require_calc41().calc,\n plot: require_plot35(),\n style: require_style19(),\n hoverPoints: require_hover23().hoverPoints,\n selectPoints: require_select12()\n };\n }\n });\n\n // lib/ohlc.js\n var require_ohlc2 = __commonJS({\n \"lib/ohlc.js\"(exports, module) {\n \"use strict\";\n module.exports = require_ohlc();\n }\n });\n\n // src/traces/candlestick/attributes.js\n var require_attributes67 = __commonJS({\n \"src/traces/candlestick/attributes.js\"(exports, module) {\n \"use strict\";\n var extendFlat = require_lib().extendFlat;\n var axisHoverFormat = require_axis_format_attributes().axisHoverFormat;\n var OHLCattrs = require_attributes66();\n var boxAttrs = require_attributes24();\n function directionAttrs(lineColorDefault) {\n return {\n line: {\n color: extendFlat({}, boxAttrs.line.color, { dflt: lineColorDefault }),\n width: boxAttrs.line.width,\n editType: \"style\"\n },\n fillcolor: boxAttrs.fillcolor,\n editType: \"style\"\n };\n }\n module.exports = {\n xperiod: OHLCattrs.xperiod,\n xperiod0: OHLCattrs.xperiod0,\n xperiodalignment: OHLCattrs.xperiodalignment,\n xhoverformat: axisHoverFormat(\"x\"),\n yhoverformat: axisHoverFormat(\"y\"),\n x: OHLCattrs.x,\n open: OHLCattrs.open,\n high: OHLCattrs.high,\n low: OHLCattrs.low,\n close: OHLCattrs.close,\n line: {\n width: extendFlat({}, boxAttrs.line.width, {}),\n editType: \"style\"\n },\n increasing: directionAttrs(OHLCattrs.increasing.line.color.dflt),\n decreasing: directionAttrs(OHLCattrs.decreasing.line.color.dflt),\n text: OHLCattrs.text,\n hovertext: OHLCattrs.hovertext,\n whiskerwidth: extendFlat({}, boxAttrs.whiskerwidth, { dflt: 0 }),\n hoverlabel: OHLCattrs.hoverlabel,\n zorder: boxAttrs.zorder\n };\n }\n });\n\n // src/traces/candlestick/defaults.js\n var require_defaults63 = __commonJS({\n \"src/traces/candlestick/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var handleOHLC = require_ohlc_defaults();\n var handlePeriodDefaults = require_period_defaults();\n var attributes = require_attributes67();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleOHLC(traceIn, traceOut, coerce, layout);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n handlePeriodDefaults(traceIn, traceOut, layout, coerce, { x: true });\n coerce(\"xhoverformat\");\n coerce(\"yhoverformat\");\n coerce(\"line.width\");\n handleDirection(traceIn, traceOut, coerce, \"increasing\");\n handleDirection(traceIn, traceOut, coerce, \"decreasing\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"whiskerwidth\");\n layout._requestRangeslider[traceOut.xaxis] = true;\n coerce(\"zorder\");\n };\n function handleDirection(traceIn, traceOut, coerce, direction) {\n var lineColor = coerce(direction + \".line.color\");\n coerce(direction + \".line.width\", traceOut.line.width);\n coerce(direction + \".fillcolor\", Color2.addOpacity(lineColor, 0.5));\n }\n }\n });\n\n // src/traces/candlestick/calc.js\n var require_calc42 = __commonJS({\n \"src/traces/candlestick/calc.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n var alignPeriod = require_align_period();\n var calcCommon = require_calc41().calcCommon;\n module.exports = function(gd, trace) {\n var fullLayout = gd._fullLayout;\n var xa = Axes.getFromId(gd, trace.xaxis);\n var ya = Axes.getFromId(gd, trace.yaxis);\n var origX = xa.makeCalcdata(trace, \"x\");\n var x = alignPeriod(trace, xa, \"x\", origX).vals;\n var cd = calcCommon(gd, trace, origX, x, ya, ptFunc);\n if (cd.length) {\n Lib.extendFlat(cd[0].t, {\n num: fullLayout._numBoxes,\n dPos: Lib.distinctVals(x).minDiff / 2,\n posLetter: \"x\",\n valLetter: \"y\"\n });\n fullLayout._numBoxes++;\n return cd;\n } else {\n return [{ t: { empty: true } }];\n }\n };\n function ptFunc(o, h, l, c) {\n return {\n min: l,\n q1: Math.min(o, c),\n med: c,\n q3: Math.max(o, c),\n max: h\n };\n }\n }\n });\n\n // src/traces/candlestick/index.js\n var require_candlestick = __commonJS({\n \"src/traces/candlestick/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"candlestick\",\n basePlotModule: require_cartesian(),\n categories: [\"cartesian\", \"svg\", \"showLegend\", \"candlestick\", \"boxLayout\"],\n meta: {},\n attributes: require_attributes67(),\n layoutAttributes: require_layout_attributes7(),\n supplyLayoutDefaults: require_layout_defaults6().supplyLayoutDefaults,\n crossTraceCalc: require_cross_trace_calc3().crossTraceCalc,\n supplyDefaults: require_defaults63(),\n calc: require_calc42(),\n plot: require_plot4().plot,\n layerName: \"boxlayer\",\n style: require_style5().style,\n hoverPoints: require_hover23().hoverPoints,\n selectPoints: require_select12()\n };\n }\n });\n\n // lib/candlestick.js\n var require_candlestick2 = __commonJS({\n \"lib/candlestick.js\"(exports, module) {\n \"use strict\";\n module.exports = require_candlestick();\n }\n });\n\n // src/plots/polar/set_convert.js\n var require_set_convert3 = __commonJS({\n \"src/plots/polar/set_convert.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var setConvertCartesian = require_set_convert();\n var deg2rad = Lib.deg2rad;\n var rad2deg = Lib.rad2deg;\n module.exports = function setConvert(ax, polarLayout, fullLayout) {\n setConvertCartesian(ax, fullLayout);\n switch (ax._id) {\n case \"x\":\n case \"radialaxis\":\n setConvertRadial(ax, polarLayout);\n break;\n case \"angularaxis\":\n setConvertAngular(ax, polarLayout);\n break;\n }\n };\n function setConvertRadial(ax, polarLayout) {\n var subplot = polarLayout._subplot;\n ax.setGeometry = function() {\n var rl0 = ax._rl[0];\n var rl1 = ax._rl[1];\n var b = subplot.innerRadius;\n var m = (subplot.radius - b) / (rl1 - rl0);\n var b2 = b / m;\n var rFilter = rl0 > rl1 ? function(v) {\n return v <= 0;\n } : function(v) {\n return v >= 0;\n };\n ax.c2g = function(v) {\n var r = ax.c2l(v) - rl0;\n return (rFilter(r) ? r : 0) + b2;\n };\n ax.g2c = function(v) {\n return ax.l2c(v + rl0 - b2);\n };\n ax.g2p = function(v) {\n return v * m;\n };\n ax.c2p = function(v) {\n return ax.g2p(ax.c2g(v));\n };\n };\n }\n function toRadians(v, unit) {\n return unit === \"degrees\" ? deg2rad(v) : v;\n }\n function fromRadians(v, unit) {\n return unit === \"degrees\" ? rad2deg(v) : v;\n }\n function setConvertAngular(ax, polarLayout) {\n var axType = ax.type;\n if (axType === \"linear\") {\n var _d2c = ax.d2c;\n var _c2d = ax.c2d;\n ax.d2c = function(v, unit) {\n return toRadians(_d2c(v), unit);\n };\n ax.c2d = function(v, unit) {\n return _c2d(fromRadians(v, unit));\n };\n }\n ax.makeCalcdata = function(trace, coord) {\n var arrayIn = trace[coord];\n var len = trace._length;\n var arrayOut, i;\n var _d2c2 = function(v) {\n return ax.d2c(v, trace.thetaunit);\n };\n if (arrayIn) {\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = _d2c2(arrayIn[i]);\n }\n } else {\n var coord0 = coord + \"0\";\n var dcoord = \"d\" + coord;\n var v0 = coord0 in trace ? _d2c2(trace[coord0]) : 0;\n var dv = trace[dcoord] ? _d2c2(trace[dcoord]) : (ax.period || 2 * Math.PI) / len;\n arrayOut = new Array(len);\n for (i = 0; i < len; i++) {\n arrayOut[i] = v0 + i * dv;\n }\n }\n return arrayOut;\n };\n ax.setGeometry = function() {\n var sector = polarLayout.sector;\n var sectorInRad = sector.map(deg2rad);\n var dir = { clockwise: -1, counterclockwise: 1 }[ax.direction];\n var rot = deg2rad(ax.rotation);\n var rad2g = function(v) {\n return dir * v + rot;\n };\n var g2rad = function(v) {\n return (v - rot) / dir;\n };\n var rad2c, c2rad;\n var rad2t, t2rad;\n switch (axType) {\n case \"linear\":\n c2rad = rad2c = Lib.identity;\n t2rad = deg2rad;\n rad2t = rad2deg;\n ax.range = Lib.isFullCircle(sectorInRad) ? [sector[0], sector[0] + 360] : sectorInRad.map(g2rad).map(rad2deg);\n break;\n case \"category\":\n var catLen = ax._categories.length;\n var _period = ax.period ? Math.max(ax.period, catLen) : catLen;\n if (_period === 0) _period = 1;\n c2rad = t2rad = function(v) {\n return v * 2 * Math.PI / _period;\n };\n rad2c = rad2t = function(v) {\n return v * _period / Math.PI / 2;\n };\n ax.range = [0, _period];\n break;\n }\n ax.c2g = function(v) {\n return rad2g(c2rad(v));\n };\n ax.g2c = function(v) {\n return rad2c(g2rad(v));\n };\n ax.t2g = function(v) {\n return rad2g(t2rad(v));\n };\n ax.g2t = function(v) {\n return rad2t(g2rad(v));\n };\n };\n }\n }\n });\n\n // src/plots/polar/constants.js\n var require_constants33 = __commonJS({\n \"src/plots/polar/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attr: \"subplot\",\n name: \"polar\",\n axisNames: [\"angularaxis\", \"radialaxis\"],\n axisName2dataArray: { angularaxis: \"theta\", radialaxis: \"r\" },\n layerNames: [\n \"draglayer\",\n \"plotbg\",\n \"backplot\",\n \"angular-grid\",\n \"radial-grid\",\n \"frontplot\",\n \"angular-line\",\n \"radial-line\",\n \"angular-axis\",\n \"radial-axis\"\n ],\n radialDragBoxSize: 50,\n angularDragBoxSize: 30,\n cornerLen: 25,\n cornerHalfWidth: 2,\n // pixels to move mouse before you stop clamping to starting point\n MINDRAG: 8,\n // smallest radial distance [px] allowed for a zoombox\n MINZOOM: 20,\n // distance [px] off (r=0) or (r=radius) where we transition\n // from single-sided to two-sided radial zoom\n OFFEDGE: 20\n };\n }\n });\n\n // src/plots/polar/helpers.js\n var require_helpers19 = __commonJS({\n \"src/plots/polar/helpers.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var polygonTester = require_polygon().tester;\n var findIndexOfMin = Lib.findIndexOfMin;\n var isAngleInsideSector = Lib.isAngleInsideSector;\n var angleDelta = Lib.angleDelta;\n var angleDist = Lib.angleDist;\n function isPtInsidePolygon(r, a, rBnds, aBnds, vangles) {\n if (!isAngleInsideSector(a, aBnds)) return false;\n var r0, r1;\n if (rBnds[0] < rBnds[1]) {\n r0 = rBnds[0];\n r1 = rBnds[1];\n } else {\n r0 = rBnds[1];\n r1 = rBnds[0];\n }\n var polygonIn = polygonTester(makePolygon(r0, aBnds[0], aBnds[1], vangles));\n var polygonOut = polygonTester(makePolygon(r1, aBnds[0], aBnds[1], vangles));\n var xy = [r * Math.cos(a), r * Math.sin(a)];\n return polygonOut.contains(xy) && !polygonIn.contains(xy);\n }\n function findIntersectionXY(v0, v1, a, xpyp) {\n var xstar, ystar;\n var xp = xpyp[0];\n var yp = xpyp[1];\n var dsin = clampTiny(Math.sin(v1) - Math.sin(v0));\n var dcos = clampTiny(Math.cos(v1) - Math.cos(v0));\n var tanA = Math.tan(a);\n var cotanA = clampTiny(1 / tanA);\n var m = dsin / dcos;\n var b = yp - m * xp;\n if (cotanA) {\n if (dsin && dcos) {\n xstar = b / (tanA - m);\n ystar = tanA * xstar;\n } else if (dcos) {\n xstar = yp * cotanA;\n ystar = yp;\n } else {\n xstar = xp;\n ystar = xp * tanA;\n }\n } else {\n if (dsin && dcos) {\n xstar = 0;\n ystar = b;\n } else if (dcos) {\n xstar = 0;\n ystar = yp;\n } else {\n xstar = ystar = NaN;\n }\n }\n return [xstar, ystar];\n }\n function findXYatLength(l, m, xp, yp) {\n var t = -m * xp;\n var a = m * m + 1;\n var b = 2 * (m * t - xp);\n var c = t * t + xp * xp - l * l;\n var del = Math.sqrt(b * b - 4 * a * c);\n var x0 = (-b + del) / (2 * a);\n var x1 = (-b - del) / (2 * a);\n return [\n [x0, m * x0 + t + yp],\n [x1, m * x1 + t + yp]\n ];\n }\n function makeRegularPolygon(r, vangles) {\n var len = vangles.length;\n var vertices = new Array(len + 1);\n var i;\n for (i = 0; i < len; i++) {\n var va = vangles[i];\n vertices[i] = [r * Math.cos(va), r * Math.sin(va)];\n }\n vertices[i] = vertices[0].slice();\n return vertices;\n }\n function makeClippedPolygon(r, a0, a1, vangles) {\n var len = vangles.length;\n var vertices = [];\n var i, j;\n function a2xy(a) {\n return [r * Math.cos(a), r * Math.sin(a)];\n }\n function findXY(va0, va1, s) {\n return findIntersectionXY(va0, va1, s, a2xy(va0));\n }\n function cycleIndex(ind) {\n return Lib.mod(ind, len);\n }\n function isInside(v) {\n return isAngleInsideSector(v, [a0, a1]);\n }\n var i0 = findIndexOfMin(vangles, function(v) {\n return isInside(v) ? angleDist(v, a0) : Infinity;\n });\n var xy0 = findXY(vangles[i0], vangles[cycleIndex(i0 - 1)], a0);\n vertices.push(xy0);\n for (i = i0, j = 0; j < len; i++, j++) {\n var va = vangles[cycleIndex(i)];\n if (!isInside(va)) break;\n vertices.push(a2xy(va));\n }\n var iN = findIndexOfMin(vangles, function(v) {\n return isInside(v) ? angleDist(v, a1) : Infinity;\n });\n var xyN = findXY(vangles[iN], vangles[cycleIndex(iN + 1)], a1);\n vertices.push(xyN);\n vertices.push([0, 0]);\n vertices.push(vertices[0].slice());\n return vertices;\n }\n function makePolygon(r, a0, a1, vangles) {\n return Lib.isFullCircle([a0, a1]) ? makeRegularPolygon(r, vangles) : makeClippedPolygon(r, a0, a1, vangles);\n }\n function findPolygonOffset(r, a0, a1, vangles) {\n var minX = Infinity;\n var minY = Infinity;\n var vertices = makePolygon(r, a0, a1, vangles);\n for (var i = 0; i < vertices.length; i++) {\n var v = vertices[i];\n minX = Math.min(minX, v[0]);\n minY = Math.min(minY, -v[1]);\n }\n return [minX, minY];\n }\n function findEnclosingVertexAngles(a, vangles) {\n var minFn = function(v) {\n var adelta = angleDelta(v, a);\n return adelta > 0 ? adelta : Infinity;\n };\n var i0 = findIndexOfMin(vangles, minFn);\n var i1 = Lib.mod(i0 + 1, vangles.length);\n return [vangles[i0], vangles[i1]];\n }\n function clampTiny(v) {\n return Math.abs(v) > 1e-10 ? v : 0;\n }\n function transformForSVG(pts0, cx, cy) {\n cx = cx || 0;\n cy = cy || 0;\n var len = pts0.length;\n var pts1 = new Array(len);\n for (var i = 0; i < len; i++) {\n var pt = pts0[i];\n pts1[i] = [cx + pt[0], cy - pt[1]];\n }\n return pts1;\n }\n function pathPolygon(r, a0, a1, vangles, cx, cy) {\n var poly = makePolygon(r, a0, a1, vangles);\n return \"M\" + transformForSVG(poly, cx, cy).join(\"L\");\n }\n function pathPolygonAnnulus(r0, r1, a0, a1, vangles, cx, cy) {\n var rStart, rEnd;\n if (r0 < r1) {\n rStart = r0;\n rEnd = r1;\n } else {\n rStart = r1;\n rEnd = r0;\n }\n var inner = transformForSVG(makePolygon(rStart, a0, a1, vangles), cx, cy);\n var outer = transformForSVG(makePolygon(rEnd, a0, a1, vangles), cx, cy);\n return \"M\" + outer.reverse().join(\"L\") + \"M\" + inner.join(\"L\");\n }\n module.exports = {\n isPtInsidePolygon,\n findPolygonOffset,\n findEnclosingVertexAngles,\n findIntersectionXY,\n findXYatLength,\n clampTiny,\n pathPolygon,\n pathPolygonAnnulus\n };\n }\n });\n\n // src/plots/smith/helpers.js\n var require_helpers20 = __commonJS({\n \"src/plots/smith/helpers.js\"(exports, module) {\n \"use strict\";\n function sign(x) {\n return x < 0 ? -1 : x > 0 ? 1 : 0;\n }\n function smith(a) {\n var R = a[0];\n var X = a[1];\n if (!isFinite(R) || !isFinite(X)) return [1, 0];\n var D2 = (R + 1) * (R + 1) + X * X;\n return [(R * R + X * X - 1) / D2, 2 * X / D2];\n }\n function transform(subplot, a) {\n var x = a[0];\n var y = a[1];\n return [\n x * subplot.radius + subplot.cx,\n -y * subplot.radius + subplot.cy\n ];\n }\n function scale(subplot, r) {\n return r * subplot.radius;\n }\n function reactanceArc(subplot, X, R1, R2) {\n var t12 = transform(subplot, smith([R1, X]));\n var x1 = t12[0];\n var y1 = t12[1];\n var t22 = transform(subplot, smith([R2, X]));\n var x2 = t22[0];\n var y2 = t22[1];\n if (X === 0) {\n return [\n \"M\" + x1 + \",\" + y1,\n \"L\" + x2 + \",\" + y2\n ].join(\" \");\n }\n var r = scale(subplot, 1 / Math.abs(X));\n return [\n \"M\" + x1 + \",\" + y1,\n \"A\" + r + \",\" + r + \" 0 0,\" + (X < 0 ? 1 : 0) + \" \" + x2 + \",\" + y2\n ].join(\" \");\n }\n function resistanceArc(subplot, R, X1, X2) {\n var r = scale(subplot, 1 / (R + 1));\n var t12 = transform(subplot, smith([R, X1]));\n var x1 = t12[0];\n var y1 = t12[1];\n var t22 = transform(subplot, smith([R, X2]));\n var x2 = t22[0];\n var y2 = t22[1];\n if (sign(X1) !== sign(X2)) {\n var t02 = transform(subplot, smith([R, 0]));\n var x0 = t02[0];\n var y0 = t02[1];\n return [\n \"M\" + x1 + \",\" + y1,\n \"A\" + r + \",\" + r + \" 0 0,\" + (0 < X1 ? 0 : 1) + \" \" + x0 + \",\" + y0,\n \"A\" + r + \",\" + r + \" 0 0,\" + (X2 < 0 ? 0 : 1) + x2 + \",\" + y2\n ].join(\" \");\n }\n return [\n \"M\" + x1 + \",\" + y1,\n \"A\" + r + \",\" + r + \" 0 0,\" + (X2 < X1 ? 0 : 1) + \" \" + x2 + \",\" + y2\n ].join(\" \");\n }\n module.exports = {\n smith,\n reactanceArc,\n resistanceArc,\n smithTransform: transform\n };\n }\n });\n\n // src/plots/polar/polar.js\n var require_polar = __commonJS({\n \"src/plots/polar/polar.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var tinycolor = require_tinycolor();\n var Registry = require_registry();\n var Lib = require_lib();\n var strRotate = Lib.strRotate;\n var strTranslate = Lib.strTranslate;\n var Color2 = require_color();\n var Drawing = require_drawing();\n var Plots = require_plots();\n var Axes = require_axes();\n var setConvertCartesian = require_set_convert();\n var setConvertPolar = require_set_convert3();\n var doAutoRange = require_autorange().doAutoRange;\n var dragBox = require_dragbox();\n var dragElement = require_dragelement();\n var Fx = require_fx();\n var Titles = require_titles();\n var prepSelect = require_selections().prepSelect;\n var selectOnClick = require_selections().selectOnClick;\n var clearOutline = require_selections().clearOutline;\n var setCursor = require_setcursor();\n var clearGlCanvases = require_clear_gl_canvases();\n var redrawReglTraces = require_subroutines().redrawReglTraces;\n var MID_SHIFT = require_alignment().MID_SHIFT;\n var constants = require_constants33();\n var helpers = require_helpers19();\n var smithHelpers = require_helpers20();\n var smith = smithHelpers.smith;\n var reactanceArc = smithHelpers.reactanceArc;\n var resistanceArc = smithHelpers.resistanceArc;\n var smithTransform = smithHelpers.smithTransform;\n var _ = Lib._;\n var mod = Lib.mod;\n var deg2rad = Lib.deg2rad;\n var rad2deg = Lib.rad2deg;\n function Polar(gd, id, isSmith) {\n this.isSmith = isSmith || false;\n this.id = id;\n this.gd = gd;\n this._hasClipOnAxisFalse = null;\n this.vangles = null;\n this.radialAxisAngle = null;\n this.traceHash = {};\n this.layers = {};\n this.clipPaths = {};\n this.clipIds = {};\n this.viewInitial = {};\n var fullLayout = gd._fullLayout;\n var clipIdBase = \"clip\" + fullLayout._uid + id;\n this.clipIds.forTraces = clipIdBase + \"-for-traces\";\n this.clipPaths.forTraces = fullLayout._clips.append(\"clipPath\").attr(\"id\", this.clipIds.forTraces);\n this.clipPaths.forTraces.append(\"path\");\n this.framework = fullLayout[\"_\" + (isSmith ? \"smith\" : \"polar\") + \"layer\"].append(\"g\").attr(\"class\", id);\n this.getHole = function(s) {\n return this.isSmith ? 0 : s.hole;\n };\n this.getSector = function(s) {\n return this.isSmith ? [0, 360] : s.sector;\n };\n this.getRadial = function(s) {\n return this.isSmith ? s.realaxis : s.radialaxis;\n };\n this.getAngular = function(s) {\n return this.isSmith ? s.imaginaryaxis : s.angularaxis;\n };\n if (!isSmith) {\n this.radialTickLayout = null;\n this.angularTickLayout = null;\n }\n }\n var proto = Polar.prototype;\n module.exports = function createPolar(gd, id, isSmith) {\n return new Polar(gd, id, isSmith);\n };\n proto.plot = function(polarCalcData, fullLayout) {\n var _this = this;\n var polarLayout = fullLayout[_this.id];\n var found = false;\n for (var i = 0; i < polarCalcData.length; i++) {\n var trace = polarCalcData[i][0].trace;\n if (trace.cliponaxis === false) {\n found = true;\n break;\n }\n }\n _this._hasClipOnAxisFalse = found;\n _this.updateLayers(fullLayout, polarLayout);\n _this.updateLayout(fullLayout, polarLayout);\n Plots.generalUpdatePerTraceModule(_this.gd, _this, polarCalcData, polarLayout);\n _this.updateFx(fullLayout, polarLayout);\n if (_this.isSmith) {\n delete polarLayout.realaxis.range;\n delete polarLayout.imaginaryaxis.range;\n }\n };\n proto.updateLayers = function(fullLayout, polarLayout) {\n var _this = this;\n var isSmith = _this.isSmith;\n var layers = _this.layers;\n var radialLayout = _this.getRadial(polarLayout);\n var angularLayout = _this.getAngular(polarLayout);\n var layerNames = constants.layerNames;\n var frontPlotIndex = layerNames.indexOf(\"frontplot\");\n var layerData = layerNames.slice(0, frontPlotIndex);\n var isAngularAxisBelowTraces = angularLayout.layer === \"below traces\";\n var isRadialAxisBelowTraces = radialLayout.layer === \"below traces\";\n if (isAngularAxisBelowTraces) layerData.push(\"angular-line\");\n if (isRadialAxisBelowTraces) layerData.push(\"radial-line\");\n if (isAngularAxisBelowTraces) layerData.push(\"angular-axis\");\n if (isRadialAxisBelowTraces) layerData.push(\"radial-axis\");\n layerData.push(\"frontplot\");\n if (!isAngularAxisBelowTraces) layerData.push(\"angular-line\");\n if (!isRadialAxisBelowTraces) layerData.push(\"radial-line\");\n if (!isAngularAxisBelowTraces) layerData.push(\"angular-axis\");\n if (!isRadialAxisBelowTraces) layerData.push(\"radial-axis\");\n var subLayer = (isSmith ? \"smith\" : \"polar\") + \"sublayer\";\n var join = _this.framework.selectAll(\".\" + subLayer).data(layerData, String);\n join.enter().append(\"g\").attr(\"class\", function(d) {\n return subLayer + \" \" + d;\n }).each(function(d) {\n var sel = layers[d] = d3.select(this);\n switch (d) {\n case \"frontplot\":\n if (!isSmith) {\n sel.append(\"g\").classed(\"barlayer\", true);\n }\n sel.append(\"g\").classed(\"scatterlayer\", true);\n break;\n case \"backplot\":\n sel.append(\"g\").classed(\"maplayer\", true);\n break;\n case \"plotbg\":\n layers.bg = sel.append(\"path\");\n break;\n case \"radial-grid\":\n sel.style(\"fill\", \"none\");\n break;\n case \"angular-grid\":\n sel.style(\"fill\", \"none\");\n break;\n case \"radial-line\":\n sel.append(\"line\").style(\"fill\", \"none\");\n break;\n case \"angular-line\":\n sel.append(\"path\").style(\"fill\", \"none\");\n break;\n }\n });\n join.order();\n };\n proto.updateLayout = function(fullLayout, polarLayout) {\n var _this = this;\n var layers = _this.layers;\n var gs = fullLayout._size;\n var radialLayout = _this.getRadial(polarLayout);\n var angularLayout = _this.getAngular(polarLayout);\n var xDomain = polarLayout.domain.x;\n var yDomain = polarLayout.domain.y;\n _this.xOffset = gs.l + gs.w * xDomain[0];\n _this.yOffset = gs.t + gs.h * (1 - yDomain[1]);\n var xLength = _this.xLength = gs.w * (xDomain[1] - xDomain[0]);\n var yLength = _this.yLength = gs.h * (yDomain[1] - yDomain[0]);\n var sector = _this.getSector(polarLayout);\n _this.sectorInRad = sector.map(deg2rad);\n var sectorBBox = _this.sectorBBox = computeSectorBBox(sector);\n var dxSectorBBox = sectorBBox[2] - sectorBBox[0];\n var dySectorBBox = sectorBBox[3] - sectorBBox[1];\n var arDomain = yLength / xLength;\n var arSector = Math.abs(dySectorBBox / dxSectorBBox);\n var xLength2, yLength2;\n var xDomain2, yDomain2;\n var gap;\n if (arDomain > arSector) {\n xLength2 = xLength;\n yLength2 = xLength * arSector;\n gap = (yLength - yLength2) / gs.h / 2;\n xDomain2 = [xDomain[0], xDomain[1]];\n yDomain2 = [yDomain[0] + gap, yDomain[1] - gap];\n } else {\n xLength2 = yLength / arSector;\n yLength2 = yLength;\n gap = (xLength - xLength2) / gs.w / 2;\n xDomain2 = [xDomain[0] + gap, xDomain[1] - gap];\n yDomain2 = [yDomain[0], yDomain[1]];\n }\n _this.xLength2 = xLength2;\n _this.yLength2 = yLength2;\n _this.xDomain2 = xDomain2;\n _this.yDomain2 = yDomain2;\n var xOffset2 = _this.xOffset2 = gs.l + gs.w * xDomain2[0];\n var yOffset2 = _this.yOffset2 = gs.t + gs.h * (1 - yDomain2[1]);\n var radius = _this.radius = xLength2 / dxSectorBBox;\n var innerRadius = _this.innerRadius = _this.getHole(polarLayout) * radius;\n var cx = _this.cx = xOffset2 - radius * sectorBBox[0];\n var cy = _this.cy = yOffset2 + radius * sectorBBox[3];\n var cxx = _this.cxx = cx - xOffset2;\n var cyy = _this.cyy = cy - yOffset2;\n var side = radialLayout.side;\n var trueSide;\n if (side === \"counterclockwise\") {\n trueSide = side;\n side = \"top\";\n } else if (side === \"clockwise\") {\n trueSide = side;\n side = \"bottom\";\n }\n _this.radialAxis = _this.mockAxis(fullLayout, polarLayout, radialLayout, {\n // make this an 'x' axis to make positioning (especially rotation) easier\n _id: \"x\",\n // convert to 'x' axis equivalent\n side,\n // keep track of real side\n _trueSide: trueSide,\n // spans length 1 radius\n domain: [innerRadius / gs.w, radius / gs.w]\n });\n _this.angularAxis = _this.mockAxis(fullLayout, polarLayout, angularLayout, {\n side: \"right\",\n // to get auto nticks right\n domain: [0, Math.PI],\n // don't pass through autorange logic\n autorange: false\n });\n _this.doAutoRange(fullLayout, polarLayout);\n _this.updateAngularAxis(fullLayout, polarLayout);\n _this.updateRadialAxis(fullLayout, polarLayout);\n _this.updateRadialAxisTitle(fullLayout, polarLayout);\n _this.xaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: \"x\",\n domain: xDomain2\n });\n _this.yaxis = _this.mockCartesianAxis(fullLayout, polarLayout, {\n _id: \"y\",\n domain: yDomain2\n });\n var dPath = _this.pathSubplot();\n _this.clipPaths.forTraces.select(\"path\").attr(\"d\", dPath).attr(\"transform\", strTranslate(cxx, cyy));\n layers.frontplot.attr(\"transform\", strTranslate(xOffset2, yOffset2)).call(Drawing.setClipUrl, _this._hasClipOnAxisFalse ? null : _this.clipIds.forTraces, _this.gd);\n layers.bg.attr(\"d\", dPath).attr(\"transform\", strTranslate(cx, cy)).call(Color2.fill, polarLayout.bgcolor);\n };\n proto.mockAxis = function(fullLayout, polarLayout, axLayout, opts) {\n var ax = Lib.extendFlat({}, axLayout, opts);\n setConvertPolar(ax, polarLayout, fullLayout);\n return ax;\n };\n proto.mockCartesianAxis = function(fullLayout, polarLayout, opts) {\n var _this = this;\n var isSmith = _this.isSmith;\n var axId = opts._id;\n var ax = Lib.extendFlat({ type: \"linear\" }, opts);\n setConvertCartesian(ax, fullLayout);\n var bboxIndices = {\n x: [0, 2],\n y: [1, 3]\n };\n ax.setRange = function() {\n var sectorBBox = _this.sectorBBox;\n var ind = bboxIndices[axId];\n var rl = _this.radialAxis._rl;\n var drl = (rl[1] - rl[0]) / (1 - _this.getHole(polarLayout));\n ax.range = [sectorBBox[ind[0]] * drl, sectorBBox[ind[1]] * drl];\n };\n ax.isPtWithinRange = axId === \"x\" && !isSmith ? function(d) {\n return _this.isPtInside(d);\n } : function() {\n return true;\n };\n ax.setRange();\n ax.setScale();\n return ax;\n };\n proto.doAutoRange = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var radialAxis = _this.radialAxis;\n var radialLayout = _this.getRadial(polarLayout);\n doAutoRange(gd, radialAxis);\n var rng = radialAxis.range;\n radialLayout.range = rng.slice();\n radialLayout._input.range = rng.slice();\n radialAxis._rl = [\n radialAxis.r2l(rng[0], null, \"gregorian\"),\n radialAxis.r2l(rng[1], null, \"gregorian\")\n ];\n if (radialAxis.minallowed !== void 0) {\n var minallowed = radialAxis.r2l(radialAxis.minallowed);\n if (radialAxis._rl[0] > radialAxis._rl[1]) {\n radialAxis._rl[1] = Math.max(radialAxis._rl[1], minallowed);\n } else {\n radialAxis._rl[0] = Math.max(radialAxis._rl[0], minallowed);\n }\n }\n if (radialAxis.maxallowed !== void 0) {\n var maxallowed = radialAxis.r2l(radialAxis.maxallowed);\n if (radialAxis._rl[0] < radialAxis._rl[1]) {\n radialAxis._rl[1] = Math.min(radialAxis._rl[1], maxallowed);\n } else {\n radialAxis._rl[0] = Math.min(radialAxis._rl[0], maxallowed);\n }\n }\n };\n proto.updateRadialAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = _this.getRadial(polarLayout);\n var a0 = mod(_this.getSector(polarLayout)[0], 360);\n var ax = _this.radialAxis;\n var hasRoomForIt = innerRadius < radius;\n var isSmith = _this.isSmith;\n if (!isSmith) {\n _this.fillViewInitialKey(\"radialaxis.angle\", radialLayout.angle);\n _this.fillViewInitialKey(\"radialaxis.range\", ax.range.slice());\n ax.setGeometry();\n }\n if (ax.tickangle === \"auto\" && (a0 > 90 && a0 <= 270)) {\n ax.tickangle = 180;\n }\n var transFn = isSmith ? function(d) {\n var t = smithTransform(_this, smith([d.x, 0]));\n return strTranslate(t[0] - cx, t[1] - cy);\n } : function(d) {\n return strTranslate(ax.l2p(d.x) + innerRadius, 0);\n };\n var gridPathFn = isSmith ? function(d) {\n return resistanceArc(_this, d.x, -Infinity, Infinity);\n } : function(d) {\n return _this.pathArc(ax.r2p(d.x) + innerRadius);\n };\n var newTickLayout = strTickLayout(radialLayout);\n if (_this.radialTickLayout !== newTickLayout) {\n layers[\"radial-axis\"].selectAll(\".xtick\").remove();\n _this.radialTickLayout = newTickLayout;\n }\n if (hasRoomForIt) {\n ax.setScale();\n var labelShift = 0;\n var vals = isSmith ? (ax.tickvals || []).filter(function(x) {\n return x >= 0;\n }).map(function(x) {\n return Axes.tickText(ax, x, true, false);\n }) : Axes.calcTicks(ax);\n var valsClipped = isSmith ? vals : Axes.clipEnds(ax, vals);\n var tickSign = Axes.getTickSigns(ax)[2];\n if (isSmith) {\n if (ax.ticks === \"top\" && ax.side === \"bottom\" || ax.ticks === \"bottom\" && ax.side === \"top\") {\n tickSign = -tickSign;\n }\n if (ax.ticks === \"top\" && ax.side === \"top\") labelShift = -ax.ticklen;\n if (ax.ticks === \"bottom\" && ax.side === \"bottom\") labelShift = ax.ticklen;\n }\n Axes.drawTicks(gd, ax, {\n vals,\n layer: layers[\"radial-axis\"],\n path: Axes.makeTickPath(ax, 0, tickSign),\n transFn,\n crisp: false\n });\n Axes.drawGrid(gd, ax, {\n vals: valsClipped,\n layer: layers[\"radial-grid\"],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: layers[\"radial-axis\"],\n transFn,\n labelFns: Axes.makeLabelFns(ax, labelShift)\n });\n }\n var angle = _this.radialAxisAngle = _this.vangles ? rad2deg(snapToVertexAngle(deg2rad(radialLayout.angle), _this.vangles)) : radialLayout.angle;\n var tLayer = strTranslate(cx, cy);\n var tLayer2 = tLayer + strRotate(-angle);\n updateElement(\n layers[\"radial-axis\"],\n hasRoomForIt && (radialLayout.showticklabels || radialLayout.ticks),\n { transform: tLayer2 }\n );\n updateElement(\n layers[\"radial-grid\"],\n hasRoomForIt && radialLayout.showgrid,\n { transform: isSmith ? \"\" : tLayer }\n );\n updateElement(\n layers[\"radial-line\"].select(\"line\"),\n hasRoomForIt && radialLayout.showline,\n {\n x1: isSmith ? -radius : innerRadius,\n y1: 0,\n x2: radius,\n y2: 0,\n transform: tLayer2\n }\n ).attr(\"stroke-width\", radialLayout.linewidth).call(Color2.stroke, radialLayout.linecolor);\n };\n proto.updateRadialAxisTitle = function(fullLayout, polarLayout, _angle) {\n if (this.isSmith) return;\n var _this = this;\n var gd = _this.gd;\n var radius = _this.radius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialLayout = _this.getRadial(polarLayout);\n var titleClass = _this.id + \"title\";\n var pad = 0;\n if (radialLayout.title) {\n var h = Drawing.bBox(_this.layers[\"radial-axis\"].node()).height;\n var ts = radialLayout.title.font.size;\n var side = radialLayout.side;\n pad = side === \"top\" ? ts : side === \"counterclockwise\" ? -(h + ts * 0.4) : h + ts * 0.8;\n }\n var angle = _angle !== void 0 ? _angle : _this.radialAxisAngle;\n var angleRad = deg2rad(angle);\n var cosa = Math.cos(angleRad);\n var sina = Math.sin(angleRad);\n var x = cx + radius / 2 * cosa + pad * sina;\n var y = cy - radius / 2 * sina + pad * cosa;\n _this.layers[\"radial-axis-title\"] = Titles.draw(gd, titleClass, {\n propContainer: radialLayout,\n propName: _this.id + \".radialaxis.title\",\n placeholder: _(gd, \"Click to enter radial axis title\"),\n attributes: {\n x,\n y,\n \"text-anchor\": \"middle\"\n },\n transform: { rotate: -angle }\n });\n };\n proto.updateAngularAxis = function(fullLayout, polarLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var angularLayout = _this.getAngular(polarLayout);\n var ax = _this.angularAxis;\n var isSmith = _this.isSmith;\n if (!isSmith) {\n _this.fillViewInitialKey(\"angularaxis.rotation\", angularLayout.rotation);\n ax.setGeometry();\n ax.setScale();\n }\n var t2g = isSmith ? function(d) {\n var t = smithTransform(_this, smith([0, d.x]));\n return Math.atan2(t[0] - cx, t[1] - cy) - Math.PI / 2;\n } : function(d) {\n return ax.t2g(d.x);\n };\n if (ax.type === \"linear\" && ax.thetaunit === \"radians\") {\n ax.tick0 = rad2deg(ax.tick0);\n ax.dtick = rad2deg(ax.dtick);\n }\n var _transFn = function(rad) {\n return strTranslate(cx + radius * Math.cos(rad), cy - radius * Math.sin(rad));\n };\n var transFn = isSmith ? function(d) {\n var t = smithTransform(_this, smith([0, d.x]));\n return strTranslate(t[0], t[1]);\n } : function(d) {\n return _transFn(t2g(d));\n };\n var transFn2 = isSmith ? function(d) {\n var t = smithTransform(_this, smith([0, d.x]));\n var rad = Math.atan2(t[0] - cx, t[1] - cy) - Math.PI / 2;\n return strTranslate(t[0], t[1]) + strRotate(-rad2deg(rad));\n } : function(d) {\n var rad = t2g(d);\n return _transFn(rad) + strRotate(-rad2deg(rad));\n };\n var gridPathFn = isSmith ? function(d) {\n return reactanceArc(_this, d.x, 0, Infinity);\n } : function(d) {\n var rad = t2g(d);\n var cosRad = Math.cos(rad);\n var sinRad = Math.sin(rad);\n return \"M\" + [cx + innerRadius * cosRad, cy - innerRadius * sinRad] + \"L\" + [cx + radius * cosRad, cy - radius * sinRad];\n };\n var out = Axes.makeLabelFns(ax, 0);\n var labelStandoff = out.labelStandoff;\n var labelFns = {};\n labelFns.xFn = function(d) {\n var rad = t2g(d);\n return Math.cos(rad) * labelStandoff;\n };\n labelFns.yFn = function(d) {\n var rad = t2g(d);\n var ff = Math.sin(rad) > 0 ? 0.2 : 1;\n return -Math.sin(rad) * (labelStandoff + d.fontSize * ff) + Math.abs(Math.cos(rad)) * (d.fontSize * MID_SHIFT);\n };\n labelFns.anchorFn = function(d) {\n var rad = t2g(d);\n var cos = Math.cos(rad);\n return Math.abs(cos) < 0.1 ? \"middle\" : cos > 0 ? \"start\" : \"end\";\n };\n labelFns.heightFn = function(d, a, h) {\n var rad = t2g(d);\n return -0.5 * (1 + Math.sin(rad)) * h;\n };\n var newTickLayout = strTickLayout(angularLayout);\n if (_this.angularTickLayout !== newTickLayout) {\n layers[\"angular-axis\"].selectAll(\".\" + ax._id + \"tick\").remove();\n _this.angularTickLayout = newTickLayout;\n }\n var vals = isSmith ? [Infinity].concat(ax.tickvals || []).map(function(x) {\n return Axes.tickText(ax, x, true, false);\n }) : Axes.calcTicks(ax);\n if (isSmith) {\n vals[0].text = \"\\u221E\";\n vals[0].fontSize *= 1.75;\n }\n var vangles;\n if (polarLayout.gridshape === \"linear\") {\n vangles = vals.map(t2g);\n if (Lib.angleDelta(vangles[0], vangles[1]) < 0) {\n vangles = vangles.slice().reverse();\n }\n } else {\n vangles = null;\n }\n _this.vangles = vangles;\n if (ax.type === \"category\") {\n vals = vals.filter(function(d) {\n return Lib.isAngleInsideSector(t2g(d), _this.sectorInRad);\n });\n }\n if (ax.visible) {\n var tickSign = ax.ticks === \"inside\" ? -1 : 1;\n var pad = (ax.linewidth || 1) / 2;\n Axes.drawTicks(gd, ax, {\n vals,\n layer: layers[\"angular-axis\"],\n path: \"M\" + tickSign * pad + \",0h\" + tickSign * ax.ticklen,\n transFn: transFn2,\n crisp: false\n });\n Axes.drawGrid(gd, ax, {\n vals,\n layer: layers[\"angular-grid\"],\n path: gridPathFn,\n transFn: Lib.noop,\n crisp: false\n });\n Axes.drawLabels(gd, ax, {\n vals,\n layer: layers[\"angular-axis\"],\n repositionOnUpdate: true,\n transFn,\n labelFns\n });\n }\n updateElement(layers[\"angular-line\"].select(\"path\"), angularLayout.showline, {\n d: _this.pathSubplot(),\n transform: strTranslate(cx, cy)\n }).attr(\"stroke-width\", angularLayout.linewidth).call(Color2.stroke, angularLayout.linecolor);\n };\n proto.updateFx = function(fullLayout, polarLayout) {\n if (!this.gd._context.staticPlot) {\n var hasDrag = !this.isSmith;\n if (hasDrag) {\n this.updateAngularDrag(fullLayout);\n this.updateRadialDrag(fullLayout, polarLayout, 0);\n this.updateRadialDrag(fullLayout, polarLayout, 1);\n }\n this.updateHoverAndMainDrag(fullLayout);\n }\n };\n proto.updateHoverAndMainDrag = function(fullLayout) {\n var _this = this;\n var isSmith = _this.isSmith;\n var gd = _this.gd;\n var layers = _this.layers;\n var zoomlayer = fullLayout._zoomlayer;\n var MINZOOM = constants.MINZOOM;\n var OFFEDGE = constants.OFFEDGE;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var sectorInRad = _this.sectorInRad;\n var vangles = _this.vangles;\n var radialAxis = _this.radialAxis;\n var clampTiny = helpers.clampTiny;\n var findXYatLength = helpers.findXYatLength;\n var findEnclosingVertexAngles = helpers.findEnclosingVertexAngles;\n var chw = constants.cornerHalfWidth;\n var chl = constants.cornerLen / 2;\n var scaleX;\n var scaleY;\n var mainDrag = dragBox.makeDragger(layers, \"path\", \"maindrag\", fullLayout.dragmode === false ? \"none\" : \"crosshair\");\n d3.select(mainDrag).attr(\"d\", _this.pathSubplot()).attr(\"transform\", strTranslate(cx, cy));\n mainDrag.onmousemove = function(evt) {\n Fx.hover(gd, evt, _this.id);\n gd._fullLayout._lasthover = mainDrag;\n gd._fullLayout._hoversubplot = _this.id;\n };\n mainDrag.onmouseout = function(evt) {\n if (gd._dragging) return;\n dragElement.unhover(gd, evt);\n };\n var dragOpts = {\n element: mainDrag,\n gd,\n subplot: _this.id,\n plotinfo: {\n id: _this.id,\n xaxis: _this.xaxis,\n yaxis: _this.yaxis\n },\n xaxes: [_this.xaxis],\n yaxes: [_this.yaxis]\n };\n var x0, y0;\n var r0, r1;\n var path0, dimmed, lum;\n var zb, corners;\n function norm(x, y) {\n return Math.sqrt(x * x + y * y);\n }\n function xy2r(x, y) {\n return norm(x - cxx, y - cyy);\n }\n function xy2a(x, y) {\n return Math.atan2(cyy - y, x - cxx);\n }\n function ra2xy(r, a) {\n return [r * Math.cos(a), r * Math.sin(-a)];\n }\n function pathCorner(r, a) {\n if (r === 0) return _this.pathSector(2 * chw);\n var da = chl / r;\n var am = a - da;\n var ap = a + da;\n var rb = Math.max(0, Math.min(r, radius));\n var rm = rb - chw;\n var rp = rb + chw;\n return \"M\" + ra2xy(rm, am) + \"A\" + [rm, rm] + \" 0,0,0 \" + ra2xy(rm, ap) + \"L\" + ra2xy(rp, ap) + \"A\" + [rp, rp] + \" 0,0,1 \" + ra2xy(rp, am) + \"Z\";\n }\n function pathCornerForPolygons(r, va0, va1) {\n if (r === 0) return _this.pathSector(2 * chw);\n var xy0 = ra2xy(r, va0);\n var xy1 = ra2xy(r, va1);\n var x = clampTiny((xy0[0] + xy1[0]) / 2);\n var y = clampTiny((xy0[1] + xy1[1]) / 2);\n var innerPts, outerPts;\n if (x && y) {\n var m = y / x;\n var mperp = -1 / m;\n var midPts = findXYatLength(chw, m, x, y);\n innerPts = findXYatLength(chl, mperp, midPts[0][0], midPts[0][1]);\n outerPts = findXYatLength(chl, mperp, midPts[1][0], midPts[1][1]);\n } else {\n var dx, dy;\n if (y) {\n dx = chl;\n dy = chw;\n } else {\n dx = chw;\n dy = chl;\n }\n innerPts = [[x - dx, y - dy], [x + dx, y - dy]];\n outerPts = [[x - dx, y + dy], [x + dx, y + dy]];\n }\n return \"M\" + innerPts.join(\"L\") + \"L\" + outerPts.reverse().join(\"L\") + \"Z\";\n }\n function zoomPrep() {\n r0 = null;\n r1 = null;\n path0 = _this.pathSubplot();\n dimmed = false;\n var polarLayoutNow = gd._fullLayout[_this.id];\n lum = tinycolor(polarLayoutNow.bgcolor).getLuminance();\n zb = dragBox.makeZoombox(zoomlayer, lum, cx, cy, path0);\n zb.attr(\"fill-rule\", \"evenodd\");\n corners = dragBox.makeCorners(zoomlayer, cx, cy);\n clearOutline(gd);\n }\n function clampAndSetR0R1(rr0, rr1) {\n rr1 = Math.max(Math.min(rr1, radius), innerRadius);\n if (rr0 < OFFEDGE) rr0 = 0;\n else if (radius - rr0 < OFFEDGE) rr0 = radius;\n else if (rr1 < OFFEDGE) rr1 = 0;\n else if (radius - rr1 < OFFEDGE) rr1 = radius;\n if (Math.abs(rr1 - rr0) > MINZOOM) {\n if (rr0 < rr1) {\n r0 = rr0;\n r1 = rr1;\n } else {\n r0 = rr1;\n r1 = rr0;\n }\n return true;\n } else {\n r0 = null;\n r1 = null;\n return false;\n }\n }\n function applyZoomMove(path1, cpath) {\n path1 = path1 || path0;\n cpath = cpath || \"M0,0Z\";\n zb.attr(\"d\", path1);\n corners.attr(\"d\", cpath);\n dragBox.transitionZoombox(zb, corners, dimmed, lum);\n dimmed = true;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n gd.emit(\"plotly_relayouting\", updateObj);\n }\n function zoomMove(dx, dy) {\n dx = dx * scaleX;\n dy = dy * scaleY;\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var rr0 = xy2r(x0, y0);\n var rr1 = Math.min(xy2r(x1, y1), radius);\n var a0 = xy2a(x0, y0);\n var path1;\n var cpath;\n if (clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if (r0) path1 += _this.pathSector(r0);\n cpath = pathCorner(r0, a0) + pathCorner(r1, a0);\n }\n applyZoomMove(path1, cpath);\n }\n function findPolygonRadius(x, y, va0, va1) {\n var xy = helpers.findIntersectionXY(va0, va1, va0, [x - cxx, cyy - y]);\n return norm(xy[0], xy[1]);\n }\n function zoomMoveForPolygons(dx, dy) {\n var x1 = x0 + dx;\n var y1 = y0 + dy;\n var a0 = xy2a(x0, y0);\n var a1 = xy2a(x1, y1);\n var vangles0 = findEnclosingVertexAngles(a0, vangles);\n var vangles1 = findEnclosingVertexAngles(a1, vangles);\n var rr0 = findPolygonRadius(x0, y0, vangles0[0], vangles0[1]);\n var rr1 = Math.min(findPolygonRadius(x1, y1, vangles1[0], vangles1[1]), radius);\n var path1;\n var cpath;\n if (clampAndSetR0R1(rr0, rr1)) {\n path1 = path0 + _this.pathSector(r1);\n if (r0) path1 += _this.pathSector(r0);\n cpath = [\n pathCornerForPolygons(r0, vangles0[0], vangles0[1]),\n pathCornerForPolygons(r1, vangles0[0], vangles0[1])\n ].join(\" \");\n }\n applyZoomMove(path1, cpath);\n }\n function zoomDone() {\n dragBox.removeZoombox(gd);\n if (r0 === null || r1 === null) return;\n var updateObj = {};\n computeZoomUpdates(updateObj);\n dragBox.showDoubleClickNotifier(gd);\n Registry.call(\"_guiRelayout\", gd, updateObj);\n }\n function computeZoomUpdates(update) {\n var rl = radialAxis._rl;\n var m = (rl[1] - rl[0]) / (1 - innerRadius / radius) / radius;\n var newRng = [\n rl[0] + (r0 - innerRadius) * m,\n rl[0] + (r1 - innerRadius) * m\n ];\n update[_this.id + \".radialaxis.range\"] = newRng;\n }\n function zoomClick(numClicks, evt) {\n var clickMode = gd._fullLayout.clickmode;\n dragBox.removeZoombox(gd);\n if (numClicks === 2) {\n var updateObj = {};\n for (var k in _this.viewInitial) {\n updateObj[_this.id + \".\" + k] = _this.viewInitial[k];\n }\n gd.emit(\"plotly_doubleclick\", null);\n Registry.call(\"_guiRelayout\", gd, updateObj);\n }\n if (clickMode.indexOf(\"select\") > -1 && numClicks === 1) {\n selectOnClick(evt, gd, [_this.xaxis], [_this.yaxis], _this.id, dragOpts);\n }\n if (clickMode.indexOf(\"event\") > -1) {\n Fx.click(gd, evt, _this.id);\n }\n }\n dragOpts.prepFn = function(evt, startX, startY) {\n var dragModeNow = gd._fullLayout.dragmode;\n var bbox = mainDrag.getBoundingClientRect();\n gd._fullLayout._calcInverseTransform(gd);\n var inverse = gd._fullLayout._invTransform;\n scaleX = gd._fullLayout._invScaleX;\n scaleY = gd._fullLayout._invScaleY;\n var transformedCoords = Lib.apply3DTransform(inverse)(startX - bbox.left, startY - bbox.top);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n if (vangles) {\n var offset = helpers.findPolygonOffset(radius, sectorInRad[0], sectorInRad[1], vangles);\n x0 += cxx + offset[0];\n y0 += cyy + offset[1];\n }\n switch (dragModeNow) {\n case \"zoom\":\n dragOpts.clickFn = zoomClick;\n if (!isSmith) {\n if (vangles) {\n dragOpts.moveFn = zoomMoveForPolygons;\n } else {\n dragOpts.moveFn = zoomMove;\n }\n dragOpts.doneFn = zoomDone;\n zoomPrep(evt, startX, startY);\n }\n break;\n case \"select\":\n case \"lasso\":\n prepSelect(evt, startX, startY, dragOpts, dragModeNow);\n break;\n }\n };\n dragElement.init(dragOpts);\n };\n proto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var innerRadius = _this.innerRadius;\n var cx = _this.cx;\n var cy = _this.cy;\n var radialAxis = _this.radialAxis;\n var bl = constants.radialDragBoxSize;\n var bl2 = bl / 2;\n if (!radialAxis.visible) return;\n var angle0 = deg2rad(_this.radialAxisAngle);\n var rl = radialAxis._rl;\n var rl0 = rl[0];\n var rl1 = rl[1];\n var rbase = rl[rngIndex];\n var m = 0.75 * (rl[1] - rl[0]) / (1 - _this.getHole(polarLayout)) / radius;\n var tx, ty, className;\n if (rngIndex) {\n tx = cx + (radius + bl2) * Math.cos(angle0);\n ty = cy - (radius + bl2) * Math.sin(angle0);\n className = \"radialdrag\";\n } else {\n tx = cx + (innerRadius - bl2) * Math.cos(angle0);\n ty = cy - (innerRadius - bl2) * Math.sin(angle0);\n className = \"radialdrag-inner\";\n }\n var radialDrag = dragBox.makeRectDragger(layers, className, \"crosshair\", -bl2, -bl2, bl, bl);\n var dragOpts = { element: radialDrag, gd };\n if (fullLayout.dragmode === false) {\n dragOpts.dragmode = false;\n }\n updateElement(d3.select(radialDrag), radialAxis.visible && innerRadius < radius, {\n transform: strTranslate(tx, ty)\n });\n var moveFn2;\n var angle1;\n var rprime;\n function moveFn(dx, dy) {\n if (moveFn2) {\n moveFn2(dx, dy);\n } else {\n var dvec = [dx, -dy];\n var rvec = [Math.cos(angle0), Math.sin(angle0)];\n var comp = Math.abs(Lib.dot(dvec, rvec) / Math.sqrt(Lib.dot(dvec, dvec)));\n if (!isNaN(comp)) {\n moveFn2 = comp < 0.5 ? rotateMove : rerangeMove;\n }\n }\n var update = {};\n computeRadialAxisUpdates(update);\n gd.emit(\"plotly_relayouting\", update);\n }\n function computeRadialAxisUpdates(update) {\n if (angle1 !== null) {\n update[_this.id + \".radialaxis.angle\"] = angle1;\n } else if (rprime !== null) {\n update[_this.id + \".radialaxis.range[\" + rngIndex + \"]\"] = rprime;\n }\n }\n function doneFn() {\n if (angle1 !== null) {\n Registry.call(\"_guiRelayout\", gd, _this.id + \".radialaxis.angle\", angle1);\n } else if (rprime !== null) {\n Registry.call(\"_guiRelayout\", gd, _this.id + \".radialaxis.range[\" + rngIndex + \"]\", rprime);\n }\n }\n function rotateMove(dx, dy) {\n if (rngIndex === 0) return;\n var x1 = tx + dx;\n var y1 = ty + dy;\n angle1 = Math.atan2(cy - y1, x1 - cx);\n if (_this.vangles) angle1 = snapToVertexAngle(angle1, _this.vangles);\n angle1 = rad2deg(angle1);\n var transform = strTranslate(cx, cy) + strRotate(-angle1);\n layers[\"radial-axis\"].attr(\"transform\", transform);\n layers[\"radial-line\"].select(\"line\").attr(\"transform\", transform);\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, angle1);\n }\n function rerangeMove(dx, dy) {\n var dr = Lib.dot([dx, -dy], [Math.cos(angle0), Math.sin(angle0)]);\n rprime = rbase - m * dr;\n if (m > 0 !== (rngIndex ? rprime > rl0 : rprime < rl1)) {\n rprime = null;\n return;\n }\n var fullLayoutNow = gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n radialAxis.range[rngIndex] = rprime;\n radialAxis._rl[rngIndex] = rprime;\n _this.updateRadialAxis(fullLayoutNow, polarLayoutNow);\n _this.xaxis.setRange();\n _this.xaxis.setScale();\n _this.yaxis.setRange();\n _this.yaxis.setScale();\n var hasRegl = false;\n for (var traceType in _this.traceHash) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if (Registry.traceIs(traceType, \"gl\") && moduleCalcDataVisible.length) hasRegl = true;\n }\n if (hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n }\n dragOpts.prepFn = function() {\n moveFn2 = null;\n angle1 = null;\n rprime = null;\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n clearOutline(gd);\n };\n dragOpts.clampFn = function(dx, dy) {\n if (Math.sqrt(dx * dx + dy * dy) < constants.MINDRAG) {\n dx = 0;\n dy = 0;\n }\n return [dx, dy];\n };\n dragElement.init(dragOpts);\n };\n proto.updateAngularDrag = function(fullLayout) {\n var _this = this;\n var gd = _this.gd;\n var layers = _this.layers;\n var radius = _this.radius;\n var angularAxis = _this.angularAxis;\n var cx = _this.cx;\n var cy = _this.cy;\n var cxx = _this.cxx;\n var cyy = _this.cyy;\n var dbs = constants.angularDragBoxSize;\n var angularDrag = dragBox.makeDragger(layers, \"path\", \"angulardrag\", fullLayout.dragmode === false ? \"none\" : \"move\");\n var dragOpts = { element: angularDrag, gd };\n if (fullLayout.dragmode === false) {\n dragOpts.dragmode = false;\n } else {\n d3.select(angularDrag).attr(\"d\", _this.pathAnnulus(radius, radius + dbs)).attr(\"transform\", strTranslate(cx, cy)).call(setCursor, \"move\");\n }\n function xy2a(x, y) {\n return Math.atan2(cyy + dbs - y, x - cxx - dbs);\n }\n var scatterTraces = layers.frontplot.select(\".scatterlayer\").selectAll(\".trace\");\n var scatterPoints = scatterTraces.selectAll(\".point\");\n var scatterTextPoints = scatterTraces.selectAll(\".textpoint\");\n var x0, y0;\n var rot0, rot1;\n var rrot1;\n var a0;\n function moveFn(dx, dy) {\n var fullLayoutNow = _this.gd._fullLayout;\n var polarLayoutNow = fullLayoutNow[_this.id];\n var x1 = x0 + dx * fullLayout._invScaleX;\n var y1 = y0 + dy * fullLayout._invScaleY;\n var a1 = xy2a(x1, y1);\n var da = rad2deg(a1 - a0);\n rot1 = rot0 + da;\n layers.frontplot.attr(\n \"transform\",\n strTranslate(_this.xOffset2, _this.yOffset2) + strRotate([-da, cxx, cyy])\n );\n if (_this.vangles) {\n rrot1 = _this.radialAxisAngle + da;\n var trans = strTranslate(cx, cy) + strRotate(-da);\n var trans2 = strTranslate(cx, cy) + strRotate(-rrot1);\n layers.bg.attr(\"transform\", trans);\n layers[\"radial-grid\"].attr(\"transform\", trans);\n layers[\"radial-axis\"].attr(\"transform\", trans2);\n layers[\"radial-line\"].select(\"line\").attr(\"transform\", trans2);\n _this.updateRadialAxisTitle(fullLayoutNow, polarLayoutNow, rrot1);\n } else {\n _this.clipPaths.forTraces.select(\"path\").attr(\n \"transform\",\n strTranslate(cxx, cyy) + strRotate(da)\n );\n }\n scatterPoints.each(function() {\n var sel = d3.select(this);\n var xy = Drawing.getTranslate(sel);\n sel.attr(\"transform\", strTranslate(xy.x, xy.y) + strRotate([da]));\n });\n scatterTextPoints.each(function() {\n var sel = d3.select(this);\n var tx = sel.select(\"text\");\n var xy = Drawing.getTranslate(sel);\n sel.attr(\"transform\", strRotate([da, tx.attr(\"x\"), tx.attr(\"y\")]) + strTranslate(xy.x, xy.y));\n });\n angularAxis.rotation = Lib.modHalf(rot1, 360);\n _this.updateAngularAxis(fullLayoutNow, polarLayoutNow);\n if (_this._hasClipOnAxisFalse && !Lib.isFullCircle(_this.sectorInRad)) {\n scatterTraces.call(Drawing.hideOutsideRangePoints, _this);\n }\n var hasRegl = false;\n for (var traceType in _this.traceHash) {\n if (Registry.traceIs(traceType, \"gl\")) {\n var moduleCalcData = _this.traceHash[traceType];\n var moduleCalcDataVisible = Lib.filterVisible(moduleCalcData);\n var _module = moduleCalcData[0][0].trace._module;\n _module.plot(gd, _this, moduleCalcDataVisible, polarLayoutNow);\n if (moduleCalcDataVisible.length) hasRegl = true;\n }\n }\n if (hasRegl) {\n clearGlCanvases(gd);\n redrawReglTraces(gd);\n }\n var update = {};\n computeRotationUpdates(update);\n gd.emit(\"plotly_relayouting\", update);\n }\n function computeRotationUpdates(updateObj) {\n updateObj[_this.id + \".angularaxis.rotation\"] = rot1;\n if (_this.vangles) {\n updateObj[_this.id + \".radialaxis.angle\"] = rrot1;\n }\n }\n function doneFn() {\n scatterTextPoints.select(\"text\").attr(\"transform\", null);\n var updateObj = {};\n computeRotationUpdates(updateObj);\n Registry.call(\"_guiRelayout\", gd, updateObj);\n }\n dragOpts.prepFn = function(evt, startX, startY) {\n var polarLayoutNow = fullLayout[_this.id];\n rot0 = polarLayoutNow.angularaxis.rotation;\n var bbox = angularDrag.getBoundingClientRect();\n x0 = startX - bbox.left;\n y0 = startY - bbox.top;\n gd._fullLayout._calcInverseTransform(gd);\n var transformedCoords = Lib.apply3DTransform(fullLayout._invTransform)(x0, y0);\n x0 = transformedCoords[0];\n y0 = transformedCoords[1];\n a0 = xy2a(x0, y0);\n dragOpts.moveFn = moveFn;\n dragOpts.doneFn = doneFn;\n clearOutline(gd);\n };\n if (_this.vangles && !Lib.isFullCircle(_this.sectorInRad)) {\n dragOpts.prepFn = Lib.noop;\n setCursor(d3.select(angularDrag), null);\n }\n dragElement.init(dragOpts);\n };\n proto.isPtInside = function(d) {\n if (this.isSmith) return true;\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var thetag = this.angularAxis.c2g(d.theta);\n var radialAxis = this.radialAxis;\n var r = radialAxis.c2l(d.r);\n var rl = radialAxis._rl;\n var fn = vangles ? helpers.isPtInsidePolygon : Lib.isPtInsideSector;\n return fn(r, thetag, rl, sectorInRad, vangles);\n };\n proto.pathArc = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathArc;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n };\n proto.pathSector = function(r) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygon : Lib.pathSector;\n return fn(r, sectorInRad[0], sectorInRad[1], vangles);\n };\n proto.pathAnnulus = function(r0, r1) {\n var sectorInRad = this.sectorInRad;\n var vangles = this.vangles;\n var fn = vangles ? helpers.pathPolygonAnnulus : Lib.pathAnnulus;\n return fn(r0, r1, sectorInRad[0], sectorInRad[1], vangles);\n };\n proto.pathSubplot = function() {\n var r0 = this.innerRadius;\n var r1 = this.radius;\n return r0 ? this.pathAnnulus(r0, r1) : this.pathSector(r1);\n };\n proto.fillViewInitialKey = function(key, val) {\n if (!(key in this.viewInitial)) {\n this.viewInitial[key] = val;\n }\n };\n function strTickLayout(axLayout) {\n var out = axLayout.ticks + String(axLayout.ticklen) + String(axLayout.showticklabels);\n if (\"side\" in axLayout) out += axLayout.side;\n return out;\n }\n function computeSectorBBox(sector) {\n var s0 = sector[0];\n var s1 = sector[1];\n var arc = s1 - s0;\n var a0 = mod(s0, 360);\n var a1 = a0 + arc;\n var ax0 = Math.cos(deg2rad(a0));\n var ay0 = Math.sin(deg2rad(a0));\n var ax1 = Math.cos(deg2rad(a1));\n var ay1 = Math.sin(deg2rad(a1));\n var x0, y0, x1, y1;\n if (a0 <= 90 && a1 >= 90 || a0 > 90 && a1 >= 450) {\n y1 = 1;\n } else if (ay0 <= 0 && ay1 <= 0) {\n y1 = 0;\n } else {\n y1 = Math.max(ay0, ay1);\n }\n if (a0 <= 180 && a1 >= 180 || a0 > 180 && a1 >= 540) {\n x0 = -1;\n } else if (ax0 >= 0 && ax1 >= 0) {\n x0 = 0;\n } else {\n x0 = Math.min(ax0, ax1);\n }\n if (a0 <= 270 && a1 >= 270 || a0 > 270 && a1 >= 630) {\n y0 = -1;\n } else if (ay0 >= 0 && ay1 >= 0) {\n y0 = 0;\n } else {\n y0 = Math.min(ay0, ay1);\n }\n if (a1 >= 360) {\n x1 = 1;\n } else if (ax0 <= 0 && ax1 <= 0) {\n x1 = 0;\n } else {\n x1 = Math.max(ax0, ax1);\n }\n return [x0, y0, x1, y1];\n }\n function snapToVertexAngle(a, vangles) {\n var fn = function(v) {\n return Lib.angleDist(a, v);\n };\n var ind = Lib.findIndexOfMin(vangles, fn);\n return vangles[ind];\n }\n function updateElement(sel, showAttr, attrs) {\n if (showAttr) {\n sel.attr(\"display\", null);\n sel.attr(attrs);\n } else if (sel) {\n sel.attr(\"display\", \"none\");\n }\n return sel;\n }\n }\n });\n\n // src/plots/polar/layout_attributes.js\n var require_layout_attributes21 = __commonJS({\n \"src/plots/polar/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var axesAttrs = require_layout_attributes4();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_lib().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var axisLineGridAttr = overrideAll({\n color: axesAttrs.color,\n showline: extendFlat({}, axesAttrs.showline, { dflt: true }),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, { dflt: true }),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n griddash: axesAttrs.griddash\n // TODO add spike* attributes down the road\n // should we add zeroline* attributes?\n }, \"plot\", \"from-root\");\n var axisTickAttrs = overrideAll({\n tickmode: axesAttrs.minor.tickmode,\n nticks: axesAttrs.nticks,\n tick0: axesAttrs.tick0,\n dtick: axesAttrs.dtick,\n tickvals: axesAttrs.tickvals,\n ticktext: axesAttrs.ticktext,\n ticks: axesAttrs.ticks,\n ticklen: axesAttrs.ticklen,\n tickwidth: axesAttrs.tickwidth,\n tickcolor: axesAttrs.tickcolor,\n ticklabelstep: axesAttrs.ticklabelstep,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n showexponent: axesAttrs.showexponent,\n exponentformat: axesAttrs.exponentformat,\n minexponent: axesAttrs.minexponent,\n separatethousands: axesAttrs.separatethousands,\n tickfont: axesAttrs.tickfont,\n tickangle: axesAttrs.tickangle,\n tickformat: axesAttrs.tickformat,\n tickformatstops: axesAttrs.tickformatstops,\n layer: axesAttrs.layer\n }, \"plot\", \"from-root\");\n var radialAxisAttrs = {\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n type: extendFlat({}, axesAttrs.type, {\n values: [\"-\", \"linear\", \"log\", \"date\", \"category\"]\n }),\n autotypenumbers: axesAttrs.autotypenumbers,\n autorangeoptions: {\n minallowed: axesAttrs.autorangeoptions.minallowed,\n maxallowed: axesAttrs.autorangeoptions.maxallowed,\n clipmin: axesAttrs.autorangeoptions.clipmin,\n clipmax: axesAttrs.autorangeoptions.clipmax,\n include: axesAttrs.autorangeoptions.include,\n editType: \"plot\"\n },\n autorange: extendFlat({}, axesAttrs.autorange, { editType: \"plot\" }),\n rangemode: {\n valType: \"enumerated\",\n values: [\"tozero\", \"nonnegative\", \"normal\"],\n dflt: \"tozero\",\n editType: \"calc\"\n },\n minallowed: extendFlat({}, axesAttrs.minallowed, { editType: \"plot\" }),\n maxallowed: extendFlat({}, axesAttrs.maxallowed, { editType: \"plot\" }),\n range: extendFlat({}, axesAttrs.range, {\n items: [\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } },\n { valType: \"any\", editType: \"plot\", impliedEdits: { \"^autorange\": false } }\n ],\n editType: \"plot\"\n }),\n categoryorder: axesAttrs.categoryorder,\n categoryarray: axesAttrs.categoryarray,\n angle: {\n valType: \"angle\",\n editType: \"plot\"\n },\n autotickangles: axesAttrs.autotickangles,\n side: {\n valType: \"enumerated\",\n // TODO add 'center' for `showline: false` radial axes\n values: [\"clockwise\", \"counterclockwise\"],\n dflt: \"clockwise\",\n editType: \"plot\"\n },\n title: {\n // radial title is not gui-editable at the moment,\n // so it needs dflt: '', similar to carpet axes.\n text: extendFlat({}, axesAttrs.title.text, { editType: \"plot\", dflt: \"\" }),\n font: extendFlat({}, axesAttrs.title.font, { editType: \"plot\" }),\n // TODO\n // - might need a 'titleside' and even 'titledirection' down the road\n // - what about standoff ??\n editType: \"plot\"\n },\n hoverformat: axesAttrs.hoverformat,\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n extendFlat(\n radialAxisAttrs,\n // N.B. radialaxis grid lines are circular,\n // but radialaxis lines are straight from circle center to outer bound\n axisLineGridAttr,\n axisTickAttrs\n );\n var angularAxisAttrs = {\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n type: {\n valType: \"enumerated\",\n // 'linear' should maybe be called 'angle' or 'angular' here\n // to make clear that axis here is periodic and more tightly match\n // `thetaunit`?\n //\n // skip 'date' for first push\n // no 'log' for now\n values: [\"-\", \"linear\", \"category\"],\n dflt: \"-\",\n editType: \"calc\",\n _noTemplating: true\n },\n autotypenumbers: axesAttrs.autotypenumbers,\n categoryorder: axesAttrs.categoryorder,\n categoryarray: axesAttrs.categoryarray,\n thetaunit: {\n valType: \"enumerated\",\n values: [\"radians\", \"degrees\"],\n dflt: \"degrees\",\n editType: \"calc\"\n },\n period: {\n valType: \"number\",\n editType: \"calc\",\n min: 0\n // Examples for date axes:\n //\n // - period that equals the timeseries length\n // http://flowingdata.com/2017/01/24/one-dataset-visualized-25-ways/18-polar-coordinates/\n // - and 1-year periods (focusing on seasonal change0\n // http://otexts.org/fpp2/seasonal-plots.html\n // https://blogs.scientificamerican.com/sa-visual/why-are-so-many-babies-born-around-8-00-a-m/\n // http://www.seasonaladjustment.com/2012/09/05/clock-plot-visualising-seasonality-using-r-and-ggplot2-part-3/\n // https://i.pinimg.com/736x/49/b9/72/49b972ccb3206a1a6d6f870dac543280.jpg\n // https://www.climate-lab-book.ac.uk/spirals/\n },\n direction: {\n valType: \"enumerated\",\n values: [\"counterclockwise\", \"clockwise\"],\n dflt: \"counterclockwise\",\n editType: \"calc\"\n },\n rotation: {\n valType: \"angle\",\n editType: \"calc\"\n },\n hoverformat: axesAttrs.hoverformat,\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n extendFlat(\n angularAxisAttrs,\n // N.B. angular grid lines are straight lines from circle center to outer bound\n // the angular line is circular bounding the polar plot area.\n axisLineGridAttr,\n // N.B. ticksuffix defaults to '°' for angular axes with `thetaunit: 'degrees'`\n axisTickAttrs\n );\n module.exports = {\n // TODO for x/y/zoom system for paper-based zooming:\n // x: {},\n // y: {},\n // zoom: {},\n domain: domainAttrs({ name: \"polar\", editType: \"plot\" }),\n sector: {\n valType: \"info_array\",\n items: [\n { valType: \"number\", editType: \"plot\" },\n { valType: \"number\", editType: \"plot\" }\n ],\n dflt: [0, 360],\n editType: \"plot\"\n },\n hole: {\n valType: \"number\",\n min: 0,\n max: 1,\n dflt: 0,\n editType: \"plot\"\n },\n bgcolor: {\n valType: \"color\",\n editType: \"plot\",\n dflt: colorAttrs.background\n },\n radialaxis: radialAxisAttrs,\n angularaxis: angularAxisAttrs,\n gridshape: {\n valType: \"enumerated\",\n values: [\"circular\", \"linear\"],\n dflt: \"circular\",\n editType: \"plot\"\n },\n // TODO maybe?\n // annotations:\n uirevision: {\n valType: \"any\",\n editType: \"none\"\n },\n editType: \"calc\"\n };\n }\n });\n\n // src/plots/polar/layout_defaults.js\n var require_layout_defaults19 = __commonJS({\n \"src/plots/polar/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var handleSubplotDefaults = require_subplot_defaults();\n var getSubplotData = require_get_data().getSubplotData;\n var handleTickValueDefaults = require_tick_value_defaults();\n var handleTickMarkDefaults = require_tick_mark_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleCategoryOrderDefaults = require_category_order_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var handleAutorangeOptionsDefaults = require_autorange_options_defaults();\n var autoType = require_axis_autotype();\n var layoutAttributes = require_layout_attributes21();\n var setConvert = require_set_convert3();\n var constants = require_constants33();\n var axisNames = constants.axisNames;\n function handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce(\"bgcolor\");\n opts.bgColor = Color2.combine(bgColor, opts.paper_bgcolor);\n var sector = coerce(\"sector\");\n coerce(\"hole\");\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n function coerceAxis(attr, dflt) {\n return coerce(axName + \".\" + attr, dflt);\n }\n for (var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n if (!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + \".\" + axName;\n axOut._traceIndices = subplotData.map(function(t) {\n return t.index;\n });\n var dataAttr = constants.axisName2dataArray[axName];\n var axType = handleAxisTypeDefaults(axIn, axOut, coerceAxis, subplotData, dataAttr, opts);\n handleCategoryOrderDefaults(axIn, axOut, coerceAxis, {\n axData: subplotData,\n dataAttr\n });\n var visible = coerceAxis(\"visible\");\n setConvert(axOut, contOut, layoutOut);\n coerceAxis(\"uirevision\", contOut.uirevision);\n axOut._m = 1;\n switch (axName) {\n case \"radialaxis\":\n coerceAxis(\"minallowed\");\n coerceAxis(\"maxallowed\");\n var range = coerceAxis(\"range\");\n var autorangeDflt = axOut.getAutorangeDflt(range);\n var autorange = coerceAxis(\"autorange\", autorangeDflt);\n var shouldAutorange;\n if (range && (range[0] === null && range[1] === null || (range[0] === null || range[1] === null) && (autorange === \"reversed\" || autorange === true) || range[0] !== null && (autorange === \"min\" || autorange === \"max reversed\") || range[1] !== null && (autorange === \"max\" || autorange === \"min reversed\"))) {\n range = void 0;\n delete axOut.range;\n axOut.autorange = true;\n shouldAutorange = true;\n }\n if (!shouldAutorange) {\n autorangeDflt = axOut.getAutorangeDflt(range);\n autorange = coerceAxis(\"autorange\", autorangeDflt);\n }\n axIn.autorange = autorange;\n if (autorange) {\n handleAutorangeOptionsDefaults(coerceAxis, autorange, range);\n if (axType === \"linear\" || axType === \"-\") coerceAxis(\"rangemode\");\n if (axOut.isReversed()) axOut._m = -1;\n }\n axOut.cleanRange(\"range\", { dfltRange: [0, 1] });\n break;\n case \"angularaxis\":\n if (axType === \"date\") {\n Lib.log(\"Polar plots do not support date angular axes yet.\");\n for (var j = 0; j < subplotData.length; j++) {\n subplotData[j].visible = false;\n }\n axType = axIn.type = axOut.type = \"linear\";\n }\n if (axType === \"linear\") {\n coerceAxis(\"thetaunit\");\n } else {\n coerceAxis(\"period\");\n }\n var direction = coerceAxis(\"direction\");\n coerceAxis(\"rotation\", { counterclockwise: 0, clockwise: 90 }[direction]);\n break;\n }\n handlePrefixSuffixDefaults(axIn, axOut, coerceAxis, axOut.type, {\n tickSuffixDflt: axOut.thetaunit === \"degrees\" ? \"\\xB0\" : void 0\n });\n if (visible) {\n var dfltColor;\n var dfltFontColor;\n var dfltFontSize;\n var dfltFontFamily;\n var dfltFontWeight;\n var dfltFontStyle;\n var dfltFontVariant;\n var dfltFontTextcase;\n var dfltFontLineposition;\n var dfltFontShadow;\n var font = opts.font || {};\n dfltColor = coerceAxis(\"color\");\n dfltFontColor = dfltColor === axIn.color ? dfltColor : font.color;\n dfltFontSize = font.size;\n dfltFontFamily = font.family;\n dfltFontWeight = font.weight;\n dfltFontStyle = font.style;\n dfltFontVariant = font.variant;\n dfltFontTextcase = font.textcase;\n dfltFontLineposition = font.lineposition;\n dfltFontShadow = font.shadow;\n handleTickValueDefaults(axIn, axOut, coerceAxis, axOut.type);\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n font: {\n weight: dfltFontWeight,\n style: dfltFontStyle,\n variant: dfltFontVariant,\n textcase: dfltFontTextcase,\n lineposition: dfltFontLineposition,\n shadow: dfltFontShadow,\n color: dfltFontColor,\n size: dfltFontSize,\n family: dfltFontFamily\n },\n noAutotickangles: axName === \"angularaxis\",\n noTicklabelshift: true,\n noTicklabelstandoff: true\n });\n handleTickMarkDefaults(axIn, axOut, coerceAxis, { outerTicks: true });\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n coerceAxis(\"layer\");\n if (axName === \"radialaxis\") {\n coerceAxis(\"side\");\n coerceAxis(\"angle\", sector[0]);\n coerceAxis(\"title.text\");\n Lib.coerceFont(coerceAxis, \"title.font\", {\n weight: dfltFontWeight,\n style: dfltFontStyle,\n variant: dfltFontVariant,\n textcase: dfltFontTextcase,\n lineposition: dfltFontLineposition,\n shadow: dfltFontShadow,\n color: dfltFontColor,\n size: Lib.bigFont(dfltFontSize),\n family: dfltFontFamily\n });\n }\n }\n if (axType !== \"category\") coerceAxis(\"hoverformat\");\n axOut._input = axIn;\n }\n if (contOut.angularaxis.type === \"category\") {\n coerce(\"gridshape\");\n }\n }\n function handleAxisTypeDefaults(axIn, axOut, coerce, subplotData, dataAttr, options) {\n var autotypenumbers = coerce(\"autotypenumbers\", options.autotypenumbersDflt);\n var axType = coerce(\"type\");\n if (axType === \"-\") {\n var trace;\n for (var i = 0; i < subplotData.length; i++) {\n if (subplotData[i].visible) {\n trace = subplotData[i];\n break;\n }\n }\n if (trace && trace[dataAttr]) {\n axOut.type = autoType(trace[dataAttr], \"gregorian\", {\n noMultiCategory: true,\n autotypenumbers\n });\n }\n if (axOut.type === \"-\") {\n axOut.type = \"linear\";\n } else {\n axIn.type = axOut.type;\n }\n }\n return axOut.type;\n }\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults,\n font: layoutOut.font,\n autotypenumbersDflt: layoutOut.autotypenumbers,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData,\n layoutOut\n });\n };\n }\n });\n\n // src/plots/polar/index.js\n var require_polar2 = __commonJS({\n \"src/plots/polar/index.js\"(exports, module) {\n \"use strict\";\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var createPolar = require_polar();\n var constants = require_constants33();\n var attr = constants.attr;\n var name2 = constants.name;\n var counter = counterRegex(name2);\n var attributes = {};\n attributes[attr] = {\n valType: \"subplotid\",\n dflt: name2,\n editType: \"calc\"\n };\n function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var subplotIds = fullLayout._subplots[name2];\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, name2, id);\n var subplot = fullLayout[id]._subplot;\n if (!subplot) {\n subplot = createPolar(gd, id);\n fullLayout[id]._subplot = subplot;\n }\n subplot.plot(subplotCalcData, fullLayout, gd._promises);\n }\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldIds = oldFullLayout._subplots[name2] || [];\n var hadGl = oldFullLayout._has && oldFullLayout._has(\"gl\");\n var hasGl = newFullLayout._has && newFullLayout._has(\"gl\");\n var mustCleanScene = hadGl && !hasGl;\n for (var i = 0; i < oldIds.length; i++) {\n var id = oldIds[i];\n var oldSubplot = oldFullLayout[id]._subplot;\n if (!newFullLayout[id] && !!oldSubplot) {\n oldSubplot.framework.remove();\n oldSubplot.layers[\"radial-axis-title\"].remove();\n for (var k in oldSubplot.clipPaths) {\n oldSubplot.clipPaths[k].remove();\n }\n }\n if (mustCleanScene && oldSubplot._scene) {\n oldSubplot._scene.destroy();\n oldSubplot._scene = null;\n }\n }\n }\n module.exports = {\n attr,\n name: name2,\n idRoot: name2,\n idRegex: counter,\n attrRegex: counter,\n attributes,\n layoutAttributes: require_layout_attributes21(),\n supplyLayoutDefaults: require_layout_defaults19(),\n plot,\n clean,\n toSVG: require_cartesian().toSVG\n };\n }\n });\n\n // src/traces/scatterpolar/attributes.js\n var require_attributes68 = __commonJS({\n \"src/traces/scatterpolar/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var lineAttrs = scatterAttrs.line;\n module.exports = {\n mode: scatterAttrs.mode,\n r: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n theta: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n r0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n dr: {\n valType: \"number\",\n dflt: 1,\n editType: \"calc\"\n },\n theta0: {\n valType: \"any\",\n dflt: 0,\n editType: \"calc+clearAxisTypes\"\n },\n dtheta: {\n valType: \"number\",\n editType: \"calc\"\n },\n thetaunit: {\n valType: \"enumerated\",\n values: [\"radians\", \"degrees\", \"gradians\"],\n dflt: \"degrees\",\n editType: \"calc+clearAxisTypes\"\n },\n text: scatterAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"r\", \"theta\", \"text\"]\n }),\n hovertext: scatterAttrs.hovertext,\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width,\n dash: lineAttrs.dash,\n backoff: lineAttrs.backoff,\n shape: extendFlat({}, lineAttrs.shape, {\n values: [\"linear\", \"spline\"]\n }),\n smoothing: lineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: scatterAttrs.marker,\n cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, { dflt: false }),\n textposition: scatterAttrs.textposition,\n textfont: scatterAttrs.textfont,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n // TODO error bars\n // https://stackoverflow.com/a/26597487/4068492\n // error_x (error_r, error_theta)\n // error_y\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"r\", \"theta\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs(),\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected\n };\n }\n });\n\n // src/traces/scatterpolar/defaults.js\n var require_defaults64 = __commonJS({\n \"src/traces/scatterpolar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var PTS_LINESONLY = require_constants8().PTS_LINESONLY;\n var attributes = require_attributes68();\n function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"thetaunit\");\n coerce(\"mode\", len < PTS_LINESONLY ? \"lines+markers\" : \"lines\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n }\n function handleRThetaDefaults(traceIn, traceOut, layout, coerce) {\n var r = coerce(\"r\");\n var theta = coerce(\"theta\");\n if (Lib.isTypedArray(r)) {\n traceOut.r = r = Array.from(r);\n }\n if (Lib.isTypedArray(theta)) {\n traceOut.theta = theta = Array.from(theta);\n }\n var len;\n if (r) {\n if (theta) {\n len = Math.min(r.length, theta.length);\n } else {\n len = r.length;\n coerce(\"theta0\");\n coerce(\"dtheta\");\n }\n } else {\n if (!theta) return 0;\n len = traceOut.theta.length;\n coerce(\"r0\");\n coerce(\"dr\");\n }\n traceOut._length = len;\n return len;\n }\n module.exports = {\n handleRThetaDefaults,\n supplyDefaults\n };\n }\n });\n\n // src/traces/scatterpolar/format_labels.js\n var require_format_labels8 = __commonJS({\n \"src/traces/scatterpolar/format_labels.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n var radialAxis;\n var angularAxis;\n if (!subplot) {\n subplot = fullLayout[trace.subplot];\n radialAxis = subplot.radialaxis;\n angularAxis = subplot.angularaxis;\n } else {\n radialAxis = subplot.radialAxis;\n angularAxis = subplot.angularAxis;\n }\n var rVal = radialAxis.c2l(cdi.r);\n labels.rLabel = Axes.tickText(radialAxis, rVal, true).text;\n var thetaVal = angularAxis.thetaunit === \"degrees\" ? Lib.rad2deg(cdi.theta) : cdi.theta;\n labels.thetaLabel = Axes.tickText(angularAxis, thetaVal, true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scatterpolar/calc.js\n var require_calc43 = __commonJS({\n \"src/traces/scatterpolar/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var Axes = require_axes();\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = radialAxis.makeCalcdata(trace, \"r\");\n var thetaArray = angularAxis.makeCalcdata(trace, \"theta\");\n var len = trace._length;\n var cd = new Array(len);\n for (var i = 0; i < len; i++) {\n var r = rArray[i];\n var theta = thetaArray[i];\n var cdi = cd[i] = {};\n if (isNumeric(r) && isNumeric(theta)) {\n cdi.r = r;\n cdi.theta = theta;\n } else {\n cdi.r = BADNUM;\n }\n }\n var ppad = calcMarkerSize(trace, len);\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, { ppad });\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scatterpolar/plot.js\n var require_plot36 = __commonJS({\n \"src/traces/scatterpolar/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n var BADNUM = require_numerical().BADNUM;\n module.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select(\"g.scatterlayer\");\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n var plotinfo = {\n xaxis: xa,\n yaxis: ya,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n for (var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n for (var j = 0; j < cdi.length; j++) {\n if (j === 0) {\n cdi[0].trace._xA = xa;\n cdi[0].trace._yA = ya;\n }\n var cd = cdi[j];\n var r = cd.r;\n if (r === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(cd.theta);\n cd.x = rg * Math.cos(thetag);\n cd.y = rg * Math.sin(thetag);\n }\n }\n }\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n };\n }\n });\n\n // src/traces/scatterpolar/hover.js\n var require_hover24 = __commonJS({\n \"src/traces/scatterpolar/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n return scatterPointData;\n }\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n if (!subplot.isPtInside(cdi)) return;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n newPointData.hovertemplate = trace.hovertemplate;\n return scatterPointData;\n }\n function makeHoverPointText(cdi, trace, subplot, pointData) {\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n radialAxis._hovertitle = \"r\";\n angularAxis._hovertitle = \"\\u03B8\";\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(cdi, trace, fullLayout);\n pointData.rLabel = labels.rLabel;\n pointData.thetaLabel = labels.thetaLabel;\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var text = [];\n function textPart(ax, val) {\n text.push(ax._hovertitle + \": \" + val);\n }\n if (!trace.hovertemplate) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"r\", \"theta\", \"text\"];\n if (parts.indexOf(\"r\") !== -1) textPart(radialAxis, pointData.rLabel);\n if (parts.indexOf(\"theta\") !== -1) textPart(angularAxis, pointData.thetaLabel);\n if (parts.indexOf(\"text\") !== -1 && pointData.text) {\n text.push(pointData.text);\n delete pointData.text;\n }\n pointData.extraText = text.join(\"
\");\n }\n }\n module.exports = {\n hoverPoints,\n makeHoverPointText\n };\n }\n });\n\n // src/traces/scatterpolar/index.js\n var require_scatterpolar = __commonJS({\n \"src/traces/scatterpolar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"scatterpolar\",\n basePlotModule: require_polar2(),\n categories: [\"polar\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes68(),\n supplyDefaults: require_defaults64().supplyDefaults,\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels8(),\n calc: require_calc43(),\n plot: require_plot36(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover24().hoverPoints,\n selectPoints: require_select2(),\n meta: {}\n };\n }\n });\n\n // lib/scatterpolar.js\n var require_scatterpolar2 = __commonJS({\n \"lib/scatterpolar.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatterpolar();\n }\n });\n\n // src/traces/scatterpolargl/attributes.js\n var require_attributes69 = __commonJS({\n \"src/traces/scatterpolargl/attributes.js\"(exports, module) {\n \"use strict\";\n var scatterPolarAttrs = require_attributes68();\n var scatterGlAttrs = require_attributes50();\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n module.exports = {\n mode: scatterPolarAttrs.mode,\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n text: scatterPolarAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"r\", \"theta\", \"text\"]\n }),\n hovertext: scatterPolarAttrs.hovertext,\n hovertemplate: scatterPolarAttrs.hovertemplate,\n line: {\n color: scatterGlAttrs.line.color,\n width: scatterGlAttrs.line.width,\n dash: scatterGlAttrs.line.dash,\n editType: \"calc\"\n },\n connectgaps: scatterGlAttrs.connectgaps,\n marker: scatterGlAttrs.marker,\n // no cliponaxis\n fill: scatterGlAttrs.fill,\n fillcolor: scatterGlAttrs.fillcolor,\n textposition: scatterGlAttrs.textposition,\n textfont: scatterGlAttrs.textfont,\n hoverinfo: scatterPolarAttrs.hoverinfo,\n // no hoveron\n selected: scatterPolarAttrs.selected,\n unselected: scatterPolarAttrs.unselected\n };\n }\n });\n\n // src/traces/scatterpolargl/defaults.js\n var require_defaults65 = __commonJS({\n \"src/traces/scatterpolargl/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleRThetaDefaults = require_defaults64().handleRThetaDefaults;\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var PTS_LINESONLY = require_constants8().PTS_LINESONLY;\n var attributes = require_attributes69();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"thetaunit\");\n coerce(\"mode\", len < PTS_LINESONLY ? \"lines+markers\" : \"lines\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { noAngleRef: true, noStandOff: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce, {\n noFontShadow: true,\n noFontLineposition: true,\n noFontTextcase: true\n });\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n }\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/scatterpolargl/format_labels.js\n var require_format_labels9 = __commonJS({\n \"src/traces/scatterpolargl/format_labels.js\"(exports, module) {\n \"use strict\";\n var scatterPolarFormatLabels = require_format_labels8();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var i = cdi.i;\n if (!(\"r\" in cdi)) cdi.r = trace._r[i];\n if (!(\"theta\" in cdi)) cdi.theta = trace._theta[i];\n return scatterPolarFormatLabels(cdi, trace, fullLayout);\n };\n }\n });\n\n // src/traces/scatterpolargl/calc.js\n var require_calc44 = __commonJS({\n \"src/traces/scatterpolargl/calc.js\"(exports, module) {\n \"use strict\";\n var calcColorscale = require_colorscale_calc();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n var convert = require_convert10();\n var Axes = require_axes();\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = trace._r = radialAxis.makeCalcdata(trace, \"r\");\n var thetaArray = trace._theta = angularAxis.makeCalcdata(trace, \"theta\");\n var len = trace._length;\n var stash = {};\n if (len < rArray.length) rArray = rArray.slice(0, len);\n if (len < thetaArray.length) thetaArray = thetaArray.slice(0, len);\n stash.r = rArray;\n stash.theta = thetaArray;\n calcColorscale(gd, trace);\n var opts = stash.opts = convert.style(gd, trace);\n var ppad;\n if (len < TOO_MANY_POINTS) {\n ppad = calcMarkerSize(trace, len);\n } else if (opts.marker) {\n ppad = 2 * (opts.marker.sizeAvg || Math.max(opts.marker.size, 3));\n }\n trace._extremes.x = Axes.findExtremes(radialAxis, rArray, { ppad });\n return [{ x: false, y: false, t: stash, trace }];\n };\n }\n });\n\n // src/traces/scatterpolargl/hover.js\n var require_hover25 = __commonJS({\n \"src/traces/scatterpolargl/hover.js\"(exports, module) {\n \"use strict\";\n var hover = require_hover16();\n var makeHoverPointText = require_hover24().makeHoverPointText;\n function hoverPoints(pointData, xval, yval, hovermode) {\n var cd = pointData.cd;\n var stash = cd[0].t;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n var scatterPointData = hover.hoverPoints(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n return scatterPointData;\n }\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n cdi.r = rArray[newPointData.index];\n cdi.theta = thetaArray[newPointData.index];\n if (!subplot.isPtInside(cdi)) return;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n return scatterPointData;\n }\n module.exports = {\n hoverPoints\n };\n }\n });\n\n // src/traces/scatterpolargl/base_index.js\n var require_base_index4 = __commonJS({\n \"src/traces/scatterpolargl/base_index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"scatterpolargl\",\n basePlotModule: require_polar2(),\n categories: [\"gl\", \"regl\", \"polar\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes69(),\n supplyDefaults: require_defaults65(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels9(),\n calc: require_calc44(),\n hoverPoints: require_hover25().hoverPoints,\n selectPoints: require_select7(),\n meta: {}\n };\n }\n });\n\n // src/traces/scatterpolargl/plot.js\n var require_plot37 = __commonJS({\n \"src/traces/scatterpolargl/plot.js\"(exports, module) {\n \"use strict\";\n var cluster = require_point_cluster();\n var isNumeric = require_fast_isnumeric();\n var scatterglPlot = require_plot19();\n var sceneUpdate = require_scene_update();\n var convert = require_convert10();\n var Lib = require_lib();\n var TOO_MANY_POINTS = require_constants23().TOO_MANY_POINTS;\n var reglPrecompiled = {};\n module.exports = function plot(gd, subplot, cdata) {\n if (!cdata.length) return;\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n var scene = sceneUpdate(gd, subplot);\n cdata.forEach(function(cdscatter) {\n if (!cdscatter || !cdscatter[0] || !cdscatter[0].trace) return;\n var cd = cdscatter[0];\n var trace = cd.trace;\n var stash = cd.t;\n var len = trace._length;\n var rArray = stash.r;\n var thetaArray = stash.theta;\n var opts = stash.opts;\n var i;\n var subRArray = rArray.slice();\n var subThetaArray = thetaArray.slice();\n for (i = 0; i < rArray.length; i++) {\n if (!subplot.isPtInside({ r: rArray[i], theta: thetaArray[i] })) {\n subRArray[i] = NaN;\n subThetaArray[i] = NaN;\n }\n }\n var positions = new Array(len * 2);\n var x = Array(len);\n var y = Array(len);\n for (i = 0; i < len; i++) {\n var r = subRArray[i];\n var xx, yy;\n if (isNumeric(r)) {\n var rg = radialAxis.c2g(r);\n var thetag = angularAxis.c2g(subThetaArray[i], trace.thetaunit);\n xx = rg * Math.cos(thetag);\n yy = rg * Math.sin(thetag);\n } else {\n xx = yy = NaN;\n }\n x[i] = positions[i * 2] = xx;\n y[i] = positions[i * 2 + 1] = yy;\n }\n stash.tree = cluster(positions);\n if (opts.marker && len >= TOO_MANY_POINTS) {\n opts.marker.cluster = stash.tree;\n }\n if (opts.marker) {\n opts.markerSel.positions = opts.markerUnsel.positions = opts.marker.positions = positions;\n }\n if (opts.line && positions.length > 1) {\n Lib.extendFlat(\n opts.line,\n convert.linePositions(gd, trace, positions)\n );\n }\n if (opts.text) {\n Lib.extendFlat(\n opts.text,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.marker)\n );\n Lib.extendFlat(\n opts.textSel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerSel)\n );\n Lib.extendFlat(\n opts.textUnsel,\n { positions },\n convert.textPosition(gd, trace, opts.text, opts.markerUnsel)\n );\n }\n if (opts.fill && !scene.fill2d) scene.fill2d = true;\n if (opts.marker && !scene.scatter2d) scene.scatter2d = true;\n if (opts.line && !scene.line2d) scene.line2d = true;\n if (opts.text && !scene.glText) scene.glText = true;\n scene.lineOptions.push(opts.line);\n scene.fillOptions.push(opts.fill);\n scene.markerOptions.push(opts.marker);\n scene.markerSelectedOptions.push(opts.markerSel);\n scene.markerUnselectedOptions.push(opts.markerUnsel);\n scene.textOptions.push(opts.text);\n scene.textSelectedOptions.push(opts.textSel);\n scene.textUnselectedOptions.push(opts.textUnsel);\n scene.selectBatch.push([]);\n scene.unselectBatch.push([]);\n stash.x = x;\n stash.y = y;\n stash.rawx = x;\n stash.rawy = y;\n stash.r = rArray;\n stash.theta = thetaArray;\n stash.positions = positions;\n stash._scene = scene;\n stash.index = scene.count;\n scene.count++;\n });\n return scatterglPlot(gd, subplot, cdata);\n };\n module.exports.reglPrecompiled = reglPrecompiled;\n }\n });\n\n // src/traces/scatterpolargl/index.js\n var require_scatterpolargl = __commonJS({\n \"src/traces/scatterpolargl/index.js\"(exports, module) {\n \"use strict\";\n var index = require_base_index4();\n index.plot = require_plot37();\n module.exports = index;\n }\n });\n\n // lib/scatterpolargl.js\n var require_scatterpolargl2 = __commonJS({\n \"lib/scatterpolargl.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scatterpolargl();\n }\n });\n\n // src/traces/barpolar/attributes.js\n var require_attributes70 = __commonJS({\n \"src/traces/barpolar/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var scatterPolarAttrs = require_attributes68();\n var barAttrs = require_attributes23();\n module.exports = {\n r: scatterPolarAttrs.r,\n theta: scatterPolarAttrs.theta,\n r0: scatterPolarAttrs.r0,\n dr: scatterPolarAttrs.dr,\n theta0: scatterPolarAttrs.theta0,\n dtheta: scatterPolarAttrs.dtheta,\n thetaunit: scatterPolarAttrs.thetaunit,\n // orientation: {\n // valType: 'enumerated',\n // values: ['radial', 'angular'],\n // editType: 'calc+clearAxisTypes',\n //\n // },\n base: extendFlat({}, barAttrs.base, {}),\n offset: extendFlat({}, barAttrs.offset, {}),\n width: extendFlat({}, barAttrs.width, {}),\n text: extendFlat({}, barAttrs.text, {}),\n hovertext: extendFlat({}, barAttrs.hovertext, {}),\n // textposition: {},\n // textfont: {},\n // insidetextfont: {},\n // outsidetextfont: {},\n // constraintext: {},\n // cliponaxis: extendFlat({}, barAttrs.cliponaxis, {dflt: false}),\n marker: barPolarMarker(),\n hoverinfo: scatterPolarAttrs.hoverinfo,\n hovertemplate: hovertemplateAttrs(),\n selected: barAttrs.selected,\n unselected: barAttrs.unselected\n // error_x (error_r, error_theta)\n // error_y\n };\n function barPolarMarker() {\n var marker = extendFlat({}, barAttrs.marker);\n delete marker.cornerradius;\n return marker;\n }\n }\n });\n\n // src/traces/barpolar/layout_attributes.js\n var require_layout_attributes22 = __commonJS({\n \"src/traces/barpolar/layout_attributes.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n barmode: {\n valType: \"enumerated\",\n values: [\"stack\", \"overlay\"],\n dflt: \"stack\",\n editType: \"calc\"\n },\n bargap: {\n valType: \"number\",\n dflt: 0.1,\n min: 0,\n max: 1,\n editType: \"calc\"\n }\n };\n }\n });\n\n // src/traces/barpolar/defaults.js\n var require_defaults66 = __commonJS({\n \"src/traces/barpolar/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var handleRThetaDefaults = require_defaults64().handleRThetaDefaults;\n var handleStyleDefaults = require_style_defaults();\n var attributes = require_attributes70();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRThetaDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"thetaunit\");\n coerce(\"base\");\n coerce(\"offset\");\n coerce(\"width\");\n coerce(\"text\");\n coerce(\"hovertext\");\n coerce(\"hovertemplate\");\n handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n }\n });\n\n // src/traces/barpolar/layout_defaults.js\n var require_layout_defaults20 = __commonJS({\n \"src/traces/barpolar/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var attrs = require_layout_attributes22();\n module.exports = function(layoutIn, layoutOut, fullData) {\n var subplotsDone = {};\n var sp;\n function coerce(attr, dflt) {\n return Lib.coerce(layoutIn[sp] || {}, layoutOut[sp], attrs, attr, dflt);\n }\n for (var i = 0; i < fullData.length; i++) {\n var trace = fullData[i];\n if (trace.type === \"barpolar\" && trace.visible === true) {\n sp = trace.subplot;\n if (!subplotsDone[sp]) {\n coerce(\"barmode\");\n coerce(\"bargap\");\n subplotsDone[sp] = 1;\n }\n }\n }\n };\n }\n });\n\n // src/traces/barpolar/calc.js\n var require_calc45 = __commonJS({\n \"src/traces/barpolar/calc.js\"(exports, module) {\n \"use strict\";\n var hasColorscale = require_helpers().hasColorscale;\n var colorscaleCalc = require_calc();\n var isArrayOrTypedArray = require_lib().isArrayOrTypedArray;\n var arraysToCalcdata = require_arrays_to_calcdata2();\n var setGroupPositions = require_cross_trace_calc().setGroupPositions;\n var calcSelection = require_calc_selection();\n var traceIs = require_registry().traceIs;\n var extendFlat = require_lib().extendFlat;\n function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var radialAxis = fullLayout[subplotId].radialaxis;\n var angularAxis = fullLayout[subplotId].angularaxis;\n var rArray = radialAxis.makeCalcdata(trace, \"r\");\n var thetaArray = angularAxis.makeCalcdata(trace, \"theta\");\n var len = trace._length;\n var cd = new Array(len);\n var sArray = rArray;\n var pArray = thetaArray;\n for (var i = 0; i < len; i++) {\n cd[i] = { p: pArray[i], s: sArray[i] };\n }\n function d2c(attr) {\n var val = trace[attr];\n if (val !== void 0) {\n trace[\"_\" + attr] = isArrayOrTypedArray(val) ? angularAxis.makeCalcdata(trace, attr) : angularAxis.d2c(val, trace.thetaunit);\n }\n }\n if (angularAxis.type === \"linear\") {\n d2c(\"width\");\n d2c(\"offset\");\n }\n if (hasColorscale(trace, \"marker\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.color,\n containerStr: \"marker\",\n cLetter: \"c\"\n });\n }\n if (hasColorscale(trace, \"marker.line\")) {\n colorscaleCalc(gd, trace, {\n vals: trace.marker.line.color,\n containerStr: \"marker.line\",\n cLetter: \"c\"\n });\n }\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n }\n function crossTraceCalc(gd, polarLayout, subplotId) {\n var calcdata = gd.calcdata;\n var barPolarCd = [];\n for (var i = 0; i < calcdata.length; i++) {\n var cdi = calcdata[i];\n var trace = cdi[0].trace;\n if (trace.visible === true && traceIs(trace, \"bar\") && trace.subplot === subplotId) {\n barPolarCd.push(cdi);\n }\n }\n var rAxis = extendFlat({}, polarLayout.radialaxis, { _id: \"x\" });\n var aAxis = polarLayout.angularaxis;\n setGroupPositions(gd, aAxis, rAxis, barPolarCd, {\n mode: polarLayout.barmode,\n norm: polarLayout.barnorm,\n gap: polarLayout.bargap,\n groupgap: polarLayout.bargroupgap\n });\n }\n module.exports = {\n calc,\n crossTraceCalc\n };\n }\n });\n\n // src/traces/barpolar/plot.js\n var require_plot38 = __commonJS({\n \"src/traces/barpolar/plot.js\"(exports, module) {\n \"use strict\";\n var d3 = require_d3();\n var isNumeric = require_fast_isnumeric();\n var Lib = require_lib();\n var Drawing = require_drawing();\n var helpers = require_helpers19();\n module.exports = function plot(gd, subplot, cdbar) {\n var isStatic = gd._context.staticPlot;\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n var pathFn = makePathFn(subplot);\n var barLayer = subplot.layers.frontplot.select(\"g.barlayer\");\n Lib.makeTraceGroups(barLayer, cdbar, \"trace bars\").each(function() {\n var plotGroup = d3.select(this);\n var pointGroup = Lib.ensureSingle(plotGroup, \"g\", \"points\");\n var bars = pointGroup.selectAll(\"g.point\").data(Lib.identity);\n bars.enter().append(\"g\").style(\"vector-effect\", isStatic ? \"none\" : \"non-scaling-stroke\").style(\"stroke-miterlimit\", 2).classed(\"point\", true);\n bars.exit().remove();\n bars.each(function(di) {\n var bar = d3.select(this);\n var rp0 = di.rp0 = radialAxis.c2p(di.s0);\n var rp1 = di.rp1 = radialAxis.c2p(di.s1);\n var thetag0 = di.thetag0 = angularAxis.c2g(di.p0);\n var thetag1 = di.thetag1 = angularAxis.c2g(di.p1);\n var dPath;\n if (!isNumeric(rp0) || !isNumeric(rp1) || !isNumeric(thetag0) || !isNumeric(thetag1) || rp0 === rp1 || thetag0 === thetag1) {\n dPath = \"M0,0Z\";\n } else {\n var rg1 = radialAxis.c2g(di.s1);\n var thetagMid = (thetag0 + thetag1) / 2;\n di.ct = [\n xa.c2p(rg1 * Math.cos(thetagMid)),\n ya.c2p(rg1 * Math.sin(thetagMid))\n ];\n dPath = pathFn(rp0, rp1, thetag0, thetag1);\n }\n Lib.ensureSingle(bar, \"path\").attr(\"d\", dPath);\n });\n Drawing.setClipUrl(\n plotGroup,\n subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null,\n gd\n );\n });\n };\n function makePathFn(subplot) {\n var cxx = subplot.cxx;\n var cyy = subplot.cyy;\n if (subplot.vangles) {\n return function(r0, r1, _a0, _a1) {\n var a0, a1;\n if (Lib.angleDelta(_a0, _a1) > 0) {\n a0 = _a0;\n a1 = _a1;\n } else {\n a0 = _a1;\n a1 = _a0;\n }\n var va0 = helpers.findEnclosingVertexAngles(a0, subplot.vangles)[0];\n var va1 = helpers.findEnclosingVertexAngles(a1, subplot.vangles)[1];\n var vaBar = [va0, (a0 + a1) / 2, va1];\n return helpers.pathPolygonAnnulus(r0, r1, a0, a1, vaBar, cxx, cyy);\n };\n }\n return function(r0, r1, a0, a1) {\n return Lib.pathAnnulus(r0, r1, a0, a1, cxx, cyy);\n };\n }\n }\n });\n\n // src/traces/barpolar/hover.js\n var require_hover26 = __commonJS({\n \"src/traces/barpolar/hover.js\"(exports, module) {\n \"use strict\";\n var Fx = require_fx();\n var Lib = require_lib();\n var getTraceColor = require_hover3().getTraceColor;\n var fillText = Lib.fillText;\n var makeHoverPointText = require_hover24().makeHoverPointText;\n var isPtInsidePolygon = require_helpers19().isPtInsidePolygon;\n module.exports = function hoverPoints(pointData, xval, yval) {\n var cd = pointData.cd;\n var trace = cd[0].trace;\n var subplot = pointData.subplot;\n var radialAxis = subplot.radialAxis;\n var angularAxis = subplot.angularAxis;\n var vangles = subplot.vangles;\n var inboxFn = vangles ? isPtInsidePolygon : Lib.isPtInsideSector;\n var maxHoverDistance = pointData.maxHoverDistance;\n var period = angularAxis._period || 2 * Math.PI;\n var rVal = Math.abs(radialAxis.g2p(Math.sqrt(xval * xval + yval * yval)));\n var thetaVal = Math.atan2(yval, xval);\n if (radialAxis.range[0] > radialAxis.range[1]) {\n thetaVal += Math.PI;\n }\n var distFn = function(di) {\n if (inboxFn(rVal, thetaVal, [di.rp0, di.rp1], [di.thetag0, di.thetag1], vangles)) {\n return maxHoverDistance + // add a little to the pseudo-distance for wider bars, so that like scatter,\n // if you are over two overlapping bars, the narrower one wins.\n Math.min(1, Math.abs(di.thetag1 - di.thetag0) / period) - 1 + // add a gradient so hovering near the end of a\n // bar makes it a little closer match\n (di.rp1 - rVal) / (di.rp1 - di.rp0) - 1;\n } else {\n return Infinity;\n }\n };\n Fx.getClosest(cd, distFn, pointData);\n if (pointData.index === false) return;\n var index = pointData.index;\n var cdi = cd[index];\n pointData.x0 = pointData.x1 = cdi.ct[0];\n pointData.y0 = pointData.y1 = cdi.ct[1];\n var _cdi = Lib.extendFlat({}, cdi, { r: cdi.s, theta: cdi.p });\n fillText(cdi, trace, pointData);\n makeHoverPointText(_cdi, trace, subplot, pointData);\n pointData.hovertemplate = trace.hovertemplate;\n pointData.color = getTraceColor(trace, cdi);\n pointData.xLabelVal = pointData.yLabelVal = void 0;\n if (cdi.s < 0) {\n pointData.idealAlign = \"left\";\n }\n return [pointData];\n };\n }\n });\n\n // src/traces/barpolar/index.js\n var require_barpolar = __commonJS({\n \"src/traces/barpolar/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"barpolar\",\n basePlotModule: require_polar2(),\n categories: [\"polar\", \"bar\", \"showLegend\"],\n attributes: require_attributes70(),\n layoutAttributes: require_layout_attributes22(),\n supplyDefaults: require_defaults66(),\n supplyLayoutDefaults: require_layout_defaults20(),\n calc: require_calc45().calc,\n crossTraceCalc: require_calc45().crossTraceCalc,\n plot: require_plot38(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels8(),\n style: require_style4().style,\n styleOnSelect: require_style4().styleOnSelect,\n hoverPoints: require_hover26(),\n selectPoints: require_select3(),\n meta: {}\n };\n }\n });\n\n // lib/barpolar.js\n var require_barpolar2 = __commonJS({\n \"lib/barpolar.js\"(exports, module) {\n \"use strict\";\n module.exports = require_barpolar();\n }\n });\n\n // src/plots/smith/constants.js\n var require_constants34 = __commonJS({\n \"src/plots/smith/constants.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n attr: \"subplot\",\n name: \"smith\",\n axisNames: [\n \"realaxis\",\n \"imaginaryaxis\"\n // imaginary axis should be second here so that the `tickvals` defaults could be inherited from realaxis\n ],\n axisName2dataArray: { imaginaryaxis: \"imag\", realaxis: \"real\" }\n };\n }\n });\n\n // src/plots/smith/layout_attributes.js\n var require_layout_attributes23 = __commonJS({\n \"src/plots/smith/layout_attributes.js\"(exports, module) {\n \"use strict\";\n var colorAttrs = require_attributes3();\n var axesAttrs = require_layout_attributes4();\n var domainAttrs = require_domain().attributes;\n var extendFlat = require_lib().extendFlat;\n var overrideAll = require_edit_types().overrideAll;\n var axisLineGridAttr = overrideAll({\n color: axesAttrs.color,\n showline: extendFlat({}, axesAttrs.showline, { dflt: true }),\n linecolor: axesAttrs.linecolor,\n linewidth: axesAttrs.linewidth,\n showgrid: extendFlat({}, axesAttrs.showgrid, { dflt: true }),\n gridcolor: axesAttrs.gridcolor,\n gridwidth: axesAttrs.gridwidth,\n griddash: axesAttrs.griddash\n }, \"plot\", \"from-root\");\n var axisTickAttrs = overrideAll({\n ticklen: axesAttrs.ticklen,\n tickwidth: extendFlat({}, axesAttrs.tickwidth, { dflt: 2 }),\n tickcolor: axesAttrs.tickcolor,\n showticklabels: axesAttrs.showticklabels,\n labelalias: axesAttrs.labelalias,\n showtickprefix: axesAttrs.showtickprefix,\n tickprefix: axesAttrs.tickprefix,\n showticksuffix: axesAttrs.showticksuffix,\n ticksuffix: axesAttrs.ticksuffix,\n tickfont: axesAttrs.tickfont,\n tickformat: axesAttrs.tickformat,\n hoverformat: axesAttrs.hoverformat,\n layer: axesAttrs.layer\n }, \"plot\", \"from-root\");\n var realAxisAttrs = extendFlat({\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n tickvals: {\n dflt: [0.2, 0.5, 1, 2, 5],\n valType: \"data_array\",\n editType: \"plot\"\n },\n tickangle: extendFlat({}, axesAttrs.tickangle, { dflt: 90 }),\n ticks: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\", \"\"],\n editType: \"ticks\"\n },\n side: {\n valType: \"enumerated\",\n values: [\"top\", \"bottom\"],\n dflt: \"top\",\n editType: \"plot\"\n },\n editType: \"calc\"\n }, axisLineGridAttr, axisTickAttrs);\n var imaginaryAxisAttrs = extendFlat({\n visible: extendFlat({}, axesAttrs.visible, { dflt: true }),\n tickvals: {\n valType: \"data_array\",\n editType: \"plot\"\n },\n ticks: axesAttrs.ticks,\n editType: \"calc\"\n }, axisLineGridAttr, axisTickAttrs);\n module.exports = {\n domain: domainAttrs({ name: \"smith\", editType: \"plot\" }),\n bgcolor: {\n valType: \"color\",\n editType: \"plot\",\n dflt: colorAttrs.background\n },\n realaxis: realAxisAttrs,\n imaginaryaxis: imaginaryAxisAttrs,\n editType: \"calc\"\n };\n }\n });\n\n // src/plots/smith/layout_defaults.js\n var require_layout_defaults21 = __commonJS({\n \"src/plots/smith/layout_defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var Color2 = require_color();\n var Template = require_plot_template();\n var handleSubplotDefaults = require_subplot_defaults();\n var getSubplotData = require_get_data().getSubplotData;\n var handlePrefixSuffixDefaults = require_prefix_suffix_defaults();\n var handleTickLabelDefaults = require_tick_label_defaults();\n var handleLineGridDefaults = require_line_grid_defaults();\n var setConvertCartesian = require_set_convert();\n var layoutAttributes = require_layout_attributes23();\n var constants = require_constants34();\n var axisNames = constants.axisNames;\n var makeImagDflt = memoize(function(realTickvals) {\n if (Lib.isTypedArray(realTickvals)) realTickvals = Array.from(realTickvals);\n return realTickvals.slice().reverse().map(function(x) {\n return -x;\n }).concat([0]).concat(realTickvals);\n }, String);\n function handleDefaults(contIn, contOut, coerce, opts) {\n var bgColor = coerce(\"bgcolor\");\n opts.bgColor = Color2.combine(bgColor, opts.paper_bgcolor);\n var subplotData = getSubplotData(opts.fullData, constants.name, opts.id);\n var layoutOut = opts.layoutOut;\n var axName;\n function coerceAxis(attr, dflt) {\n return coerce(axName + \".\" + attr, dflt);\n }\n for (var i = 0; i < axisNames.length; i++) {\n axName = axisNames[i];\n if (!Lib.isPlainObject(contIn[axName])) {\n contIn[axName] = {};\n }\n var axIn = contIn[axName];\n var axOut = Template.newContainer(contOut, axName);\n axOut._id = axOut._name = axName;\n axOut._attr = opts.id + \".\" + axName;\n axOut._traceIndices = subplotData.map(function(t) {\n return t.index;\n });\n var visible = coerceAxis(\"visible\");\n axOut.type = \"linear\";\n setConvertCartesian(axOut, layoutOut);\n handlePrefixSuffixDefaults(axIn, axOut, coerceAxis, axOut.type);\n if (visible) {\n var isRealAxis = axName === \"realaxis\";\n if (isRealAxis) coerceAxis(\"side\");\n if (isRealAxis) {\n coerceAxis(\"tickvals\");\n } else {\n var imagTickvalsDflt = makeImagDflt(\n contOut.realaxis.tickvals || layoutAttributes.realaxis.tickvals.dflt\n );\n coerceAxis(\"tickvals\", imagTickvalsDflt);\n }\n if (Lib.isTypedArray(axOut.tickvals)) axOut.tickvals = Array.from(axOut.tickvals);\n var dfltColor;\n var dfltFontColor;\n var dfltFontSize;\n var dfltFontFamily;\n var font = opts.font || {};\n if (visible) {\n dfltColor = coerceAxis(\"color\");\n dfltFontColor = dfltColor === axIn.color ? dfltColor : font.color;\n dfltFontSize = font.size;\n dfltFontFamily = font.family;\n }\n handleTickLabelDefaults(axIn, axOut, coerceAxis, axOut.type, {\n noAutotickangles: true,\n noTicklabelshift: true,\n noTicklabelstandoff: true,\n noTicklabelstep: true,\n noAng: !isRealAxis,\n noExp: true,\n font: {\n color: dfltFontColor,\n size: dfltFontSize,\n family: dfltFontFamily\n }\n });\n Lib.coerce2(contIn, contOut, layoutAttributes, axName + \".ticklen\");\n Lib.coerce2(contIn, contOut, layoutAttributes, axName + \".tickwidth\");\n Lib.coerce2(contIn, contOut, layoutAttributes, axName + \".tickcolor\", contOut.color);\n var showTicks = coerceAxis(\"ticks\");\n if (!showTicks) {\n delete contOut[axName].ticklen;\n delete contOut[axName].tickwidth;\n delete contOut[axName].tickcolor;\n }\n handleLineGridDefaults(axIn, axOut, coerceAxis, {\n dfltColor,\n bgColor: opts.bgColor,\n // default grid color is darker here (60%, vs cartesian default ~91%)\n // because the grid is not square so the eye needs heavier cues to follow\n blend: 60,\n showLine: true,\n showGrid: true,\n noZeroLine: true,\n attributes: layoutAttributes[axName]\n });\n coerceAxis(\"layer\");\n }\n coerceAxis(\"hoverformat\");\n delete axOut.type;\n axOut._input = axIn;\n }\n }\n module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {\n handleSubplotDefaults(layoutIn, layoutOut, fullData, {\n noUirevision: true,\n type: constants.name,\n attributes: layoutAttributes,\n handleDefaults,\n font: layoutOut.font,\n paper_bgcolor: layoutOut.paper_bgcolor,\n fullData,\n layoutOut\n });\n };\n function memoize(fn, keyFn) {\n var cache = {};\n return function(val) {\n var newKey = keyFn ? keyFn(val) : val;\n if (newKey in cache) {\n return cache[newKey];\n }\n var out = fn(val);\n cache[newKey] = out;\n return out;\n };\n }\n }\n });\n\n // src/plots/smith/index.js\n var require_smith = __commonJS({\n \"src/plots/smith/index.js\"(exports, module) {\n \"use strict\";\n var getSubplotCalcData = require_get_data().getSubplotCalcData;\n var counterRegex = require_lib().counterRegex;\n var createPolar = require_polar();\n var constants = require_constants34();\n var attr = constants.attr;\n var name2 = constants.name;\n var counter = counterRegex(name2);\n var attributes = {};\n attributes[attr] = {\n valType: \"subplotid\",\n dflt: name2,\n editType: \"calc\"\n };\n function plot(gd) {\n var fullLayout = gd._fullLayout;\n var calcData = gd.calcdata;\n var subplotIds = fullLayout._subplots[name2];\n for (var i = 0; i < subplotIds.length; i++) {\n var id = subplotIds[i];\n var subplotCalcData = getSubplotCalcData(calcData, name2, id);\n var subplot = fullLayout[id]._subplot;\n if (!subplot) {\n subplot = createPolar(gd, id, true);\n fullLayout[id]._subplot = subplot;\n }\n subplot.plot(subplotCalcData, fullLayout, gd._promises);\n }\n }\n function clean(newFullData, newFullLayout, oldFullData, oldFullLayout) {\n var oldIds = oldFullLayout._subplots[name2] || [];\n for (var i = 0; i < oldIds.length; i++) {\n var id = oldIds[i];\n var oldSubplot = oldFullLayout[id]._subplot;\n if (!newFullLayout[id] && !!oldSubplot) {\n oldSubplot.framework.remove();\n for (var k in oldSubplot.clipPaths) {\n oldSubplot.clipPaths[k].remove();\n }\n }\n }\n }\n module.exports = {\n attr,\n name: name2,\n idRoot: name2,\n idRegex: counter,\n attrRegex: counter,\n attributes,\n layoutAttributes: require_layout_attributes23(),\n supplyLayoutDefaults: require_layout_defaults21(),\n plot,\n clean,\n toSVG: require_cartesian().toSVG\n };\n }\n });\n\n // src/traces/scattersmith/attributes.js\n var require_attributes71 = __commonJS({\n \"src/traces/scattersmith/attributes.js\"(exports, module) {\n \"use strict\";\n var hovertemplateAttrs = require_template_attributes().hovertemplateAttrs;\n var texttemplateAttrs = require_template_attributes().texttemplateAttrs;\n var extendFlat = require_extend().extendFlat;\n var makeFillcolorAttr = require_fillcolor_attribute();\n var scatterAttrs = require_attributes12();\n var baseAttrs = require_attributes2();\n var lineAttrs = scatterAttrs.line;\n module.exports = {\n mode: scatterAttrs.mode,\n real: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n imag: {\n valType: \"data_array\",\n editType: \"calc+clearAxisTypes\"\n },\n text: scatterAttrs.text,\n texttemplate: texttemplateAttrs({ editType: \"plot\" }, {\n keys: [\"real\", \"imag\", \"text\"]\n }),\n hovertext: scatterAttrs.hovertext,\n line: {\n color: lineAttrs.color,\n width: lineAttrs.width,\n dash: lineAttrs.dash,\n backoff: lineAttrs.backoff,\n shape: extendFlat({}, lineAttrs.shape, {\n values: [\"linear\", \"spline\"]\n }),\n smoothing: lineAttrs.smoothing,\n editType: \"calc\"\n },\n connectgaps: scatterAttrs.connectgaps,\n marker: scatterAttrs.marker,\n cliponaxis: extendFlat({}, scatterAttrs.cliponaxis, { dflt: false }),\n textposition: scatterAttrs.textposition,\n textfont: scatterAttrs.textfont,\n fill: extendFlat({}, scatterAttrs.fill, {\n values: [\"none\", \"toself\", \"tonext\"],\n dflt: \"none\"\n }),\n fillcolor: makeFillcolorAttr(),\n hoverinfo: extendFlat({}, baseAttrs.hoverinfo, {\n flags: [\"real\", \"imag\", \"text\", \"name\"]\n }),\n hoveron: scatterAttrs.hoveron,\n hovertemplate: hovertemplateAttrs(),\n selected: scatterAttrs.selected,\n unselected: scatterAttrs.unselected\n };\n }\n });\n\n // src/traces/scattersmith/defaults.js\n var require_defaults67 = __commonJS({\n \"src/traces/scattersmith/defaults.js\"(exports, module) {\n \"use strict\";\n var Lib = require_lib();\n var subTypes = require_subtypes();\n var handleMarkerDefaults = require_marker_defaults();\n var handleLineDefaults = require_line_defaults();\n var handleLineShapeDefaults = require_line_shape_defaults();\n var handleTextDefaults = require_text_defaults();\n var handleFillColorDefaults = require_fillcolor_defaults();\n var PTS_LINESONLY = require_constants8().PTS_LINESONLY;\n var attributes = require_attributes71();\n module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout) {\n function coerce(attr, dflt) {\n return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);\n }\n var len = handleRealImagDefaults(traceIn, traceOut, layout, coerce);\n if (!len) {\n traceOut.visible = false;\n return;\n }\n coerce(\"mode\", len < PTS_LINESONLY ? \"lines+markers\" : \"lines\");\n coerce(\"text\");\n coerce(\"hovertext\");\n if (traceOut.hoveron !== \"fills\") coerce(\"hovertemplate\");\n if (subTypes.hasMarkers(traceOut)) {\n handleMarkerDefaults(traceIn, traceOut, defaultColor, layout, coerce, { gradient: true });\n }\n if (subTypes.hasLines(traceOut)) {\n handleLineDefaults(traceIn, traceOut, defaultColor, layout, coerce, { backoff: true });\n handleLineShapeDefaults(traceIn, traceOut, coerce);\n coerce(\"connectgaps\");\n }\n if (subTypes.hasText(traceOut)) {\n coerce(\"texttemplate\");\n handleTextDefaults(traceIn, traceOut, layout, coerce);\n }\n var dfltHoverOn = [];\n if (subTypes.hasMarkers(traceOut) || subTypes.hasText(traceOut)) {\n coerce(\"cliponaxis\");\n coerce(\"marker.maxdisplayed\");\n dfltHoverOn.push(\"points\");\n }\n coerce(\"fill\");\n if (traceOut.fill !== \"none\") {\n handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);\n if (!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);\n }\n if (traceOut.fill === \"tonext\" || traceOut.fill === \"toself\") {\n dfltHoverOn.push(\"fills\");\n }\n coerce(\"hoveron\", dfltHoverOn.join(\"+\") || \"points\");\n Lib.coerceSelectionMarkerOpacity(traceOut, coerce);\n };\n function handleRealImagDefaults(traceIn, traceOut, layout, coerce) {\n var real = coerce(\"real\");\n var imag = coerce(\"imag\");\n var len;\n if (real && imag) {\n len = Math.min(real.length, imag.length);\n }\n if (Lib.isTypedArray(real)) {\n traceOut.real = real = Array.from(real);\n }\n if (Lib.isTypedArray(imag)) {\n traceOut.imag = imag = Array.from(imag);\n }\n traceOut._length = len;\n return len;\n }\n }\n });\n\n // src/traces/scattersmith/format_labels.js\n var require_format_labels10 = __commonJS({\n \"src/traces/scattersmith/format_labels.js\"(exports, module) {\n \"use strict\";\n var Axes = require_axes();\n module.exports = function formatLabels(cdi, trace, fullLayout) {\n var labels = {};\n var subplot = fullLayout[trace.subplot]._subplot;\n labels.realLabel = Axes.tickText(subplot.radialAxis, cdi.real, true).text;\n labels.imagLabel = Axes.tickText(subplot.angularAxis, cdi.imag, true).text;\n return labels;\n };\n }\n });\n\n // src/traces/scattersmith/calc.js\n var require_calc46 = __commonJS({\n \"src/traces/scattersmith/calc.js\"(exports, module) {\n \"use strict\";\n var isNumeric = require_fast_isnumeric();\n var BADNUM = require_numerical().BADNUM;\n var calcColorscale = require_colorscale_calc();\n var arraysToCalcdata = require_arrays_to_calcdata();\n var calcSelection = require_calc_selection();\n var calcMarkerSize = require_calc3().calcMarkerSize;\n module.exports = function calc(gd, trace) {\n var fullLayout = gd._fullLayout;\n var subplotId = trace.subplot;\n var realAxis = fullLayout[subplotId].realaxis;\n var imaginaryAxis = fullLayout[subplotId].imaginaryaxis;\n var realArray = realAxis.makeCalcdata(trace, \"real\");\n var imagArray = imaginaryAxis.makeCalcdata(trace, \"imag\");\n var len = trace._length;\n var cd = new Array(len);\n for (var i = 0; i < len; i++) {\n var real = realArray[i];\n var imag = imagArray[i];\n var cdi = cd[i] = {};\n if (isNumeric(real) && isNumeric(imag)) {\n cdi.real = real;\n cdi.imag = imag;\n } else {\n cdi.real = BADNUM;\n }\n }\n calcMarkerSize(trace, len);\n calcColorscale(gd, trace);\n arraysToCalcdata(cd, trace);\n calcSelection(cd, trace);\n return cd;\n };\n }\n });\n\n // src/traces/scattersmith/plot.js\n var require_plot39 = __commonJS({\n \"src/traces/scattersmith/plot.js\"(exports, module) {\n \"use strict\";\n var scatterPlot = require_plot();\n var BADNUM = require_numerical().BADNUM;\n var helpers = require_helpers20();\n var smith = helpers.smith;\n module.exports = function plot(gd, subplot, moduleCalcData) {\n var mlayer = subplot.layers.frontplot.select(\"g.scatterlayer\");\n var xa = subplot.xaxis;\n var ya = subplot.yaxis;\n var plotinfo = {\n xaxis: xa,\n yaxis: ya,\n plot: subplot.framework,\n layerClipId: subplot._hasClipOnAxisFalse ? subplot.clipIds.forTraces : null\n };\n for (var i = 0; i < moduleCalcData.length; i++) {\n var cdi = moduleCalcData[i];\n for (var j = 0; j < cdi.length; j++) {\n if (j === 0) {\n cdi[0].trace._xA = xa;\n cdi[0].trace._yA = ya;\n }\n var cd = cdi[j];\n var real = cd.real;\n if (real === BADNUM) {\n cd.x = cd.y = BADNUM;\n } else {\n var t = smith([real, cd.imag]);\n cd.x = t[0];\n cd.y = t[1];\n }\n }\n }\n scatterPlot(gd, plotinfo, moduleCalcData, mlayer);\n };\n }\n });\n\n // src/traces/scattersmith/hover.js\n var require_hover27 = __commonJS({\n \"src/traces/scattersmith/hover.js\"(exports, module) {\n \"use strict\";\n var scatterHover = require_hover2();\n function hoverPoints(pointData, xval, yval, hovermode) {\n var scatterPointData = scatterHover(pointData, xval, yval, hovermode);\n if (!scatterPointData || scatterPointData[0].index === false) return;\n var newPointData = scatterPointData[0];\n if (newPointData.index === void 0) {\n return scatterPointData;\n }\n var subplot = pointData.subplot;\n var cdi = newPointData.cd[newPointData.index];\n var trace = newPointData.trace;\n if (!subplot.isPtInside(cdi)) return;\n newPointData.xLabelVal = void 0;\n newPointData.yLabelVal = void 0;\n makeHoverPointText(cdi, trace, subplot, newPointData);\n newPointData.hovertemplate = trace.hovertemplate;\n return scatterPointData;\n }\n function makeHoverPointText(cdi, trace, subplot, pointData) {\n var realAxis = subplot.radialAxis;\n var imaginaryAxis = subplot.angularAxis;\n realAxis._hovertitle = \"real\";\n imaginaryAxis._hovertitle = \"imag\";\n var fullLayout = {};\n fullLayout[trace.subplot] = { _subplot: subplot };\n var labels = trace._module.formatLabels(cdi, trace, fullLayout);\n pointData.realLabel = labels.realLabel;\n pointData.imagLabel = labels.imagLabel;\n var hoverinfo = cdi.hi || trace.hoverinfo;\n var text = [];\n function textPart(ax, val) {\n text.push(ax._hovertitle + \": \" + val);\n }\n if (!trace.hovertemplate) {\n var parts = hoverinfo.split(\"+\");\n if (parts.indexOf(\"all\") !== -1) parts = [\"real\", \"imag\", \"text\"];\n if (parts.indexOf(\"real\") !== -1) textPart(realAxis, pointData.realLabel);\n if (parts.indexOf(\"imag\") !== -1) textPart(imaginaryAxis, pointData.imagLabel);\n if (parts.indexOf(\"text\") !== -1 && pointData.text) {\n text.push(pointData.text);\n delete pointData.text;\n }\n pointData.extraText = text.join(\"
\");\n }\n }\n module.exports = {\n hoverPoints,\n makeHoverPointText\n };\n }\n });\n\n // src/traces/scattersmith/index.js\n var require_scattersmith = __commonJS({\n \"src/traces/scattersmith/index.js\"(exports, module) {\n \"use strict\";\n module.exports = {\n moduleType: \"trace\",\n name: \"scattersmith\",\n basePlotModule: require_smith(),\n categories: [\"smith\", \"symbols\", \"showLegend\", \"scatter-like\"],\n attributes: require_attributes71(),\n supplyDefaults: require_defaults67(),\n colorbar: require_marker_colorbar(),\n formatLabels: require_format_labels10(),\n calc: require_calc46(),\n plot: require_plot39(),\n style: require_style2().style,\n styleOnSelect: require_style2().styleOnSelect,\n hoverPoints: require_hover27().hoverPoints,\n selectPoints: require_select2(),\n meta: {}\n };\n }\n });\n\n // lib/scattersmith.js\n var require_scattersmith2 = __commonJS({\n \"lib/scattersmith.js\"(exports, module) {\n \"use strict\";\n module.exports = require_scattersmith();\n }\n });\n\n // node_modules/world-calendars/dist/main.js\n var require_main = __commonJS({\n \"node_modules/world-calendars/dist/main.js\"(exports, module) {\n var assign = require_object_assign();\n function Calendars() {\n this.regionalOptions = [];\n this.regionalOptions[\"\"] = {\n invalidCalendar: \"Calendar {0} not found\",\n invalidDate: \"Invalid {0} date\",\n invalidMonth: \"Invalid {0} month\",\n invalidYear: \"Invalid {0} year\",\n differentCalendars: \"Cannot mix {0} and {1} dates\"\n };\n this.local = this.regionalOptions[\"\"];\n this.calendars = {};\n this._localCals = {};\n }\n assign(Calendars.prototype, {\n /** Obtain a calendar implementation and localisation.\n @memberof Calendars\n @param [name='gregorian'] {string} The name of the calendar, e.g. 'gregorian', 'persian', 'islamic'.\n @param [language=''] {string} The language code to use for localisation (default is English).\n @return {Calendar} The calendar and localisation.\n @throws Error if calendar not found. */\n instance: function(name2, language) {\n name2 = (name2 || \"gregorian\").toLowerCase();\n language = language || \"\";\n var cal = this._localCals[name2 + \"-\" + language];\n if (!cal && this.calendars[name2]) {\n cal = new this.calendars[name2](language);\n this._localCals[name2 + \"-\" + language] = cal;\n }\n if (!cal) {\n throw (this.local.invalidCalendar || this.regionalOptions[\"\"].invalidCalendar).replace(/\\{0\\}/, name2);\n }\n return cal;\n },\n /** Create a new date - for today if no other parameters given.\n @memberof Calendars\n @param year {CDate|number} The date to copy or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @param [calendar='gregorian'] {BaseCalendar|string} The underlying calendar or the name of the calendar.\n @param [language=''] {string} The language to use for localisation (default English).\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day, calendar, language) {\n calendar = (year != null && year.year ? year.calendar() : typeof calendar === \"string\" ? this.instance(calendar, language) : calendar) || this.instance();\n return calendar.newDate(year, month, day);\n },\n /** A simple digit substitution function for localising numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @return {function} The substitution function. */\n substituteDigits: function(digits) {\n return function(value) {\n return (value + \"\").replace(/[0-9]/g, function(digit) {\n return digits[digit];\n });\n };\n },\n /** Digit substitution function for localising Chinese style numbers via the Calendar digits option.\n @member Calendars\n @param digits {string[]} The substitute digits, for 0 through 9.\n @param powers {string[]} The characters denoting powers of 10, i.e. 1, 10, 100, 1000.\n @return {function} The substitution function. */\n substituteChineseDigits: function(digits, powers) {\n return function(value) {\n var localNumber = \"\";\n var power = 0;\n while (value > 0) {\n var units = value % 10;\n localNumber = (units === 0 ? \"\" : digits[units] + powers[power]) + localNumber;\n power++;\n value = Math.floor(value / 10);\n }\n if (localNumber.indexOf(digits[1] + powers[1]) === 0) {\n localNumber = localNumber.substr(1);\n }\n return localNumber || digits[0];\n };\n }\n });\n function CDate(calendar, year, month, day) {\n this._calendar = calendar;\n this._year = year;\n this._month = month;\n this._day = day;\n if (this._calendar._validateLevel === 0 && !this._calendar.isValid(this._year, this._month, this._day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/, this._calendar.local.name);\n }\n }\n function pad(value, length) {\n value = \"\" + value;\n return \"000000\".substring(0, length - value.length) + value;\n }\n assign(CDate.prototype, {\n /** Create a new date.\n @memberof CDate\n @param [year] {CDate|number} The date to copy or the year for the date (default this date).\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n newDate: function(year, month, day) {\n return this._calendar.newDate(year == null ? this : year, month, day);\n },\n /** Set or retrieve the year for this date.\n @memberof CDate\n @param [year] {number} The year for the date.\n @return {number|CDate} The date's year (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n year: function(year) {\n return arguments.length === 0 ? this._year : this.set(year, \"y\");\n },\n /** Set or retrieve the month for this date.\n @memberof CDate\n @param [month] {number} The month for the date.\n @return {number|CDate} The date's month (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n month: function(month) {\n return arguments.length === 0 ? this._month : this.set(month, \"m\");\n },\n /** Set or retrieve the day for this date.\n @memberof CDate\n @param [day] {number} The day for the date.\n @return {number|CData} The date's day (if no parameter) or the updated date.\n @throws Error if an invalid date. */\n day: function(day) {\n return arguments.length === 0 ? this._day : this.set(day, \"d\");\n },\n /** Set new values for this date.\n @memberof CDate\n @param year {number} The year for the date.\n @param month {number} The month for the date.\n @param day {number} The day for the date.\n @return {CDate} The updated date.\n @throws Error if an invalid date. */\n date: function(year, month, day) {\n if (!this._calendar.isValid(year, month, day)) {\n throw (_exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate).replace(/\\{0\\}/, this._calendar.local.name);\n }\n this._year = year;\n this._month = month;\n this._day = day;\n return this;\n },\n /** Determine whether this date is in a leap year.\n @memberof CDate\n @return {boolean} true if this is a leap year, false if not. */\n leapYear: function() {\n return this._calendar.leapYear(this);\n },\n /** Retrieve the epoch designator for this date, e.g. BCE or CE.\n @memberof CDate\n @return {string} The current epoch. */\n epoch: function() {\n return this._calendar.epoch(this);\n },\n /** Format the year, if not a simple sequential number.\n @memberof CDate\n @return {string} The formatted year. */\n formatYear: function() {\n return this._calendar.formatYear(this);\n },\n /** Retrieve the month of the year for this date,\n i.e. the month's position within a numbered year.\n @memberof CDate\n @return {number} The month of the year: minMonth to months per year. */\n monthOfYear: function() {\n return this._calendar.monthOfYear(this);\n },\n /** Retrieve the week of the year for this date.\n @memberof CDate\n @return {number} The week of the year: 1 to weeks per year. */\n weekOfYear: function() {\n return this._calendar.weekOfYear(this);\n },\n /** Retrieve the number of days in the year for this date.\n @memberof CDate\n @return {number} The number of days in this year. */\n daysInYear: function() {\n return this._calendar.daysInYear(this);\n },\n /** Retrieve the day of the year for this date.\n @memberof CDate\n @return {number} The day of the year: 1 to days per year. */\n dayOfYear: function() {\n return this._calendar.dayOfYear(this);\n },\n /** Retrieve the number of days in the month for this date.\n @memberof CDate\n @return {number} The number of days. */\n daysInMonth: function() {\n return this._calendar.daysInMonth(this);\n },\n /** Retrieve the day of the week for this date.\n @memberof CDate\n @return {number} The day of the week: 0 to number of days - 1. */\n dayOfWeek: function() {\n return this._calendar.dayOfWeek(this);\n },\n /** Determine whether this date is a week day.\n @memberof CDate\n @return {boolean} true if a week day, false if not. */\n weekDay: function() {\n return this._calendar.weekDay(this);\n },\n /** Retrieve additional information about this date.\n @memberof CDate\n @return {object} Additional information - contents depends on calendar. */\n extraInfo: function() {\n return this._calendar.extraInfo(this);\n },\n /** Add period(s) to a date.\n @memberof CDate\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n add: function(offset, period) {\n return this._calendar.add(this, offset, period);\n },\n /** Set a portion of the date.\n @memberof CDate\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if not a valid date. */\n set: function(value, period) {\n return this._calendar.set(this, value, period);\n },\n /** Compare this date to another date.\n @memberof CDate\n @param date {CDate} The other date.\n @return {number} -1 if this date is before the other date,\n 0 if they are equal, or +1 if this date is after the other date. */\n compareTo: function(date) {\n if (this._calendar.name !== date._calendar.name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[\"\"].differentCalendars).replace(/\\{0\\}/, this._calendar.local.name).replace(/\\{1\\}/, date._calendar.local.name);\n }\n var c = this._year !== date._year ? this._year - date._year : this._month !== date._month ? this.monthOfYear() - date.monthOfYear() : this._day - date._day;\n return c === 0 ? 0 : c < 0 ? -1 : 1;\n },\n /** Retrieve the calendar backing this date.\n @memberof CDate\n @return {BaseCalendar} The calendar implementation. */\n calendar: function() {\n return this._calendar;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CDate\n @return {number} The equivalent Julian date. */\n toJD: function() {\n return this._calendar.toJD(this);\n },\n /** Create a new date from a Julian date.\n @memberof CDate\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n return this._calendar.fromJD(jd);\n },\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @return {Date} The equivalent JavaScript date. */\n toJSDate: function() {\n return this._calendar.toJSDate(this);\n },\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof CDate\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this._calendar.fromJSDate(jsd);\n },\n /** Convert to a string for display.\n @memberof CDate\n @return {string} This date as a string. */\n toString: function() {\n return (this.year() < 0 ? \"-\" : \"\") + pad(Math.abs(this.year()), 4) + \"-\" + pad(this.month(), 2) + \"-\" + pad(this.day(), 2);\n }\n });\n function BaseCalendar() {\n this.shortYearCutoff = \"+10\";\n }\n assign(BaseCalendar.prototype, {\n _validateLevel: 0,\n // \"Stack\" to turn validation on/off\n /** Create a new date within this calendar - today if no parameters given.\n @memberof BaseCalendar\n @param year {CDate|number} The date to duplicate or the year for the date.\n @param [month] {number} The month for the date.\n @param [day] {number} The day for the date.\n @return {CDate} The new date.\n @throws Error if not a valid date or a different calendar used. */\n newDate: function(year, month, day) {\n if (year == null) {\n return this.today();\n }\n if (year.year) {\n this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n day = year.day();\n month = year.month();\n year = year.year();\n }\n return new CDate(this, year, month, day);\n },\n /** Create a new date for today.\n @memberof BaseCalendar\n @return {CDate} Today's date. */\n today: function() {\n return this.fromJSDate(/* @__PURE__ */ new Date());\n },\n /** Retrieve the epoch designator for this date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {string} The current epoch.\n @throws Error if an invalid year or a different calendar used. */\n epoch: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return date.year() < 0 ? this.local.epochs[0] : this.local.epochs[1];\n },\n /** Format the year, if not a simple sequential number\n @memberof BaseCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return (date.year() < 0 ? \"-\" : \"\") + pad(Math.abs(date.year()), 4);\n },\n /** Retrieve the number of months in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return 12;\n },\n /** Calculate the month's ordinal position within the year -\n for those calendars that don't start at month 1!\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @return {number} The ordinal position, starting from minMonth.\n @throws Error if an invalid year/month or a different calendar used. */\n monthOfYear: function(year, month) {\n var date = this._validate(\n year,\n month,\n this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[\"\"].invalidMonth\n );\n return (date.month() + this.monthsInYear(date) - this.firstMonth) % this.monthsInYear(date) + this.minMonth;\n },\n /** Calculate actual month from ordinal position, starting from minMonth.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param ord {number} The month's ordinal position.\n @return {number} The month's number.\n @throws Error if an invalid year/month. */\n fromMonthOfYear: function(year, ord) {\n var m = (ord + this.firstMonth - 2 * this.minMonth) % this.monthsInYear(year) + this.minMonth;\n this._validate(\n year,\n m,\n this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[\"\"].invalidMonth\n );\n return m;\n },\n /** Retrieve the number of days in a year.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n return this.leapYear(date) ? 366 : 365;\n },\n /** Retrieve the day of the year for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The day of the year.\n @throws Error if an invalid date or a different calendar used. */\n dayOfYear: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return date.toJD() - this.newDate(\n date.year(),\n this.fromMonthOfYear(date.year(), this.minMonth),\n this.minDay\n ).toJD() + 1;\n },\n /** Retrieve the number of days in a week.\n @memberof BaseCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 7;\n },\n /** Retrieve the day of the week for a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return (Math.floor(this.toJD(date)) + 2) % this.daysInWeek();\n },\n /** Retrieve additional information about a date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return {};\n },\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n this._validate(\n date,\n this.minMonth,\n this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return this._correctAdd(date, this._add(date, offset, period), offset, period);\n },\n /** Add period(s) to a date.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _add: function(date, offset, period) {\n this._validateLevel++;\n if (period === \"d\" || period === \"w\") {\n var jd = date.toJD() + offset * (period === \"w\" ? this.daysInWeek() : 1);\n var d = date.calendar().fromJD(jd);\n this._validateLevel--;\n return [d.year(), d.month(), d.day()];\n }\n try {\n var y = date.year() + (period === \"y\" ? offset : 0);\n var m = date.monthOfYear() + (period === \"m\" ? offset : 0);\n var d = date.day();\n var resyncYearMonth = function(calendar) {\n while (m < calendar.minMonth) {\n y--;\n m += calendar.monthsInYear(y);\n }\n var yearMonths = calendar.monthsInYear(y);\n while (m > yearMonths - 1 + calendar.minMonth) {\n y++;\n m -= yearMonths;\n yearMonths = calendar.monthsInYear(y);\n }\n };\n if (period === \"y\") {\n if (date.month() !== this.fromMonthOfYear(y, m)) {\n m = this.newDate(y, date.month(), this.minDay).monthOfYear();\n }\n m = Math.min(m, this.monthsInYear(y));\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n } else if (period === \"m\") {\n resyncYearMonth(this);\n d = Math.min(d, this.daysInMonth(y, this.fromMonthOfYear(y, m)));\n }\n var ymd = [y, this.fromMonthOfYear(y, m), d];\n this._validateLevel--;\n return ymd;\n } catch (e) {\n this._validateLevel--;\n throw e;\n }\n },\n /** Correct a candidate date after adding period(s) to a date.\n Handle no year zero if necessary.\n @memberof BaseCalendar\n @private\n @param date {CDate} The starting date.\n @param ymd {number[]} The added date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date. */\n _correctAdd: function(date, ymd, offset, period) {\n if (!this.hasYearZero && (period === \"y\" || period === \"m\")) {\n if (ymd[0] === 0 || // In year zero\n date.year() > 0 !== ymd[0] > 0) {\n var adj = {\n y: [1, 1, \"y\"],\n m: [1, this.monthsInYear(-1), \"m\"],\n w: [this.daysInWeek(), this.daysInYear(-1), \"d\"],\n d: [1, this.daysInYear(-1), \"d\"]\n }[period];\n var dir = offset < 0 ? -1 : 1;\n ymd = this._add(date, offset * adj[0] + dir * adj[1], adj[2]);\n }\n }\n return date.date(ymd[0], ymd[1], ymd[2]);\n },\n /** Set a portion of the date.\n @memberof BaseCalendar\n @param date {CDate} The starting date.\n @param value {number} The new value for the period.\n @param period {string} One of 'y' for year, 'm' for month, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if an invalid date or a different calendar used. */\n set: function(date, value, period) {\n this._validate(\n date,\n this.minMonth,\n this.minDay,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n var y = period === \"y\" ? value : date.year();\n var m = period === \"m\" ? value : date.month();\n var d = period === \"d\" ? value : date.day();\n if (period === \"y\" || period === \"m\") {\n d = Math.min(d, this.daysInMonth(y, m));\n }\n return date.date(y, m, d);\n },\n /** Determine whether a date is valid for this calendar.\n @memberof BaseCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n this._validateLevel++;\n var valid = this.hasYearZero || year !== 0;\n if (valid) {\n var date = this.newDate(year, month, this.minDay);\n valid = month >= this.minMonth && month - this.minMonth < this.monthsInYear(date) && (day >= this.minDay && day - this.minDay < this.daysInMonth(date));\n }\n this._validateLevel--;\n return valid;\n },\n /** Convert the date to a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n return _exports.instance().fromJD(this.toJD(date)).toJSDate();\n },\n /** Convert the date from a standard (Gregorian) JavaScript Date.\n @memberof BaseCalendar\n @param jsd {Date} The JavaScript date.\n @return {CDate} The equivalent calendar date. */\n fromJSDate: function(jsd) {\n return this.fromJD(_exports.instance().fromJSDate(jsd).toJD());\n },\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param [month] {number} The month to validate.\n @param [day] {number} The day to validate.\n @param error {string} Rrror message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n if (year.year) {\n if (this._validateLevel === 0 && this.name !== year.calendar().name) {\n throw (_exports.local.differentCalendars || _exports.regionalOptions[\"\"].differentCalendars).replace(/\\{0\\}/, this.local.name).replace(/\\{1\\}/, year.calendar().local.name);\n }\n return year;\n }\n try {\n this._validateLevel++;\n if (this._validateLevel === 1 && !this.isValid(year, month, day)) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n var date = this.newDate(year, month, day);\n this._validateLevel--;\n return date;\n } catch (e) {\n this._validateLevel--;\n throw e;\n }\n }\n });\n function GregorianCalendar(language) {\n this.local = this.regionalOptions[language] || this.regionalOptions[\"\"];\n }\n GregorianCalendar.prototype = new BaseCalendar();\n assign(GregorianCalendar.prototype, {\n /** The calendar name.\n @memberof GregorianCalendar */\n name: \"Gregorian\",\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 17214255e-1,\n /** Days per month in a common year.\n @memberof GregorianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof GregorianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof GregorianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof GregorianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof GregorianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof GregorianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on
formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Gregorian\",\n epochs: [\"BCE\", \"CE\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"mm/dd/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n _exports.local.invalidYear || _exports.regionalOptions[\"\"].invalidYear\n );\n var year = date.year() + (date.year() < 0 ? 1 : 0);\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year, starting from 1.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(\n year,\n month,\n this.minDay,\n _exports.local.invalidMonth || _exports.regionalOptions[\"\"].invalidMonth\n );\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) {\n year++;\n }\n if (month < 3) {\n month += 12;\n year--;\n }\n var a = Math.floor(year / 100);\n var b = 2 - a + Math.floor(a / 4);\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day + b - 1524.5;\n },\n /** Create a new date from a Julian date.\n @memberof GregorianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var z = Math.floor(jd + 0.5);\n var a = Math.floor((z - 186721625e-2) / 36524.25);\n a = z + 1 + a - Math.floor(a / 4);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var day = b - d - Math.floor(e * 30.6001);\n var month = e - (e > 13.5 ? 13 : 1);\n var year = c - (month > 2.5 ? 4716 : 4715);\n if (year <= 0) {\n year--;\n }\n return this.newDate(year, month, day);\n },\n /** Convert this date to a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {Date} The equivalent JavaScript date.\n @throws Error if an invalid date or a different calendar used. */\n toJSDate: function(year, month, day) {\n var date = this._validate(\n year,\n month,\n day,\n _exports.local.invalidDate || _exports.regionalOptions[\"\"].invalidDate\n );\n var jsd = new Date(date.year(), date.month() - 1, date.day());\n jsd.setHours(0);\n jsd.setMinutes(0);\n jsd.setSeconds(0);\n jsd.setMilliseconds(0);\n jsd.setHours(jsd.getHours() > 12 ? jsd.getHours() + 2 : 0);\n return jsd;\n },\n /** Create a new date from a standard (Gregorian) JavaScript Date.\n @memberof GregorianCalendar\n @param jsd {Date} The JavaScript date to convert.\n @return {CDate} The equivalent date. */\n fromJSDate: function(jsd) {\n return this.newDate(jsd.getFullYear(), jsd.getMonth() + 1, jsd.getDate());\n }\n });\n var _exports = module.exports = new Calendars();\n _exports.cdate = CDate;\n _exports.baseCalendar = BaseCalendar;\n _exports.calendars.gregorian = GregorianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/plus.js\n var require_plus = __commonJS({\n \"node_modules/world-calendars/dist/plus.js\"() {\n var assign = require_object_assign();\n var main = require_main();\n assign(main.regionalOptions[\"\"], {\n invalidArguments: \"Invalid arguments\",\n invalidFormat: \"Cannot format a date from another calendar\",\n missingNumberAt: \"Missing number at position {0}\",\n unknownNameAt: \"Unknown name at position {0}\",\n unexpectedLiteralAt: \"Unexpected literal at position {0}\",\n unexpectedText: \"Additional text found at end\"\n });\n main.local = main.regionalOptions[\"\"];\n assign(main.cdate.prototype, {\n /** Format this date.\n Found in the jquery.calendars.plus.js module.\n @memberof CDate\n @param [format] {string} The date format to use (see formatDate).\n @param [settings] {object} Options for the formatDate function.\n @return {string} The formatted date. */\n formatDate: function(format, settings) {\n if (typeof format !== \"string\") {\n settings = format;\n format = \"\";\n }\n return this._calendar.formatDate(format || \"\", this, settings);\n }\n });\n assign(main.baseCalendar.prototype, {\n UNIX_EPOCH: main.instance().newDate(1970, 1, 1).toJD(),\n SECS_PER_DAY: 24 * 60 * 60,\n TICKS_EPOCH: main.instance().jdEpoch,\n // 1 January 0001 CE\n TICKS_PER_DAY: 24 * 60 * 60 * 1e7,\n /** Date form for ATOM (RFC 3339/ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ATOM: \"yyyy-mm-dd\",\n /** Date form for cookies.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n COOKIE: \"D, dd M yyyy\",\n /** Date form for full date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n FULL: \"DD, MM d, yyyy\",\n /** Date form for ISO 8601.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n ISO_8601: \"yyyy-mm-dd\",\n /** Date form for Julian date.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n JULIAN: \"J\",\n /** Date form for RFC 822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_822: \"D, d M yy\",\n /** Date form for RFC 850.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_850: \"DD, dd-M-yy\",\n /** Date form for RFC 1036.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1036: \"D, d M yy\",\n /** Date form for RFC 1123.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_1123: \"D, d M yyyy\",\n /** Date form for RFC 2822.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RFC_2822: \"D, d M yyyy\",\n /** Date form for RSS (RFC 822).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n RSS: \"D, d M yy\",\n /** Date form for Windows ticks.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TICKS: \"!\",\n /** Date form for Unix timestamp.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n TIMESTAMP: \"@\",\n /** Date form for W3c (ISO 8601).\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar */\n W3C: \"yyyy-mm-dd\",\n /** Format a date object into a string value.\n The format can be combinations of the following:\n

    \n
  • d - day of month (no leading zero)
  • \n
  • dd - day of month (two digit)
  • \n
  • o - day of year (no leading zeros)
  • \n
  • oo - day of year (three digit)
  • \n
  • D - day name short
  • \n
  • DD - day name long
  • \n
  • w - week of year (no leading zero)
  • \n
  • ww - week of year (two digit)
  • \n
  • m - month of year (no leading zero)
  • \n
  • mm - month of year (two digit)
  • \n
  • M - month name short
  • \n
  • MM - month name long
  • \n
  • yy - year (two digit)
  • \n
  • yyyy - year (four digit)
  • \n
  • YYYY - formatted year
  • \n
  • J - Julian date (days since January 1, 4713 BCE Greenwich noon)
  • \n
  • @ - Unix timestamp (s since 01/01/1970)
  • \n
  • ! - Windows ticks (100ns since 01/01/0001)
  • \n
  • '...' - literal text
  • \n
  • '' - single quote
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param [format] {string} The desired format of the date (defaults to calendar format).\n @param date {CDate} The date value to format.\n @param [settings] {object} Addition options, whose attributes include:\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @property [calculateWeek] {CalendarsPickerCalculateWeek} Function that determines week of the year.\n @property [localNumbers=false] {boolean} true to localise numbers (if available),\n false to use normal Arabic numerals.\n @return {string} The date in the above format.\n @throws Errors if the date is from a different calendar. */\n formatDate: function(format, date, settings) {\n if (typeof format !== \"string\") {\n settings = date;\n date = format;\n format = \"\";\n }\n if (!date) {\n return \"\";\n }\n if (date.calendar() !== this) {\n throw main.local.invalidFormat || main.regionalOptions[\"\"].invalidFormat;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var calculateWeek = settings.calculateWeek || this.local.calculateWeek;\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n var formatNumber = function(match, value, len, step) {\n var num = \"\" + value;\n if (doubled(match, step)) {\n while (num.length < len) {\n num = \"0\" + num;\n }\n }\n return num;\n };\n var formatName = function(match, value, shortNames, longNames) {\n return doubled(match) ? longNames[value] : shortNames[value];\n };\n var calendar = this;\n var formatMonth = function(date2) {\n return typeof monthNumbers === \"function\" ? monthNumbers.call(calendar, date2, doubled(\"m\")) : localiseNumbers(formatNumber(\"m\", date2.month(), 2));\n };\n var formatMonthName = function(date2, useLongName) {\n if (useLongName) {\n return typeof monthNames === \"function\" ? monthNames.call(calendar, date2) : monthNames[date2.month() - calendar.minMonth];\n } else {\n return typeof monthNamesShort === \"function\" ? monthNamesShort.call(calendar, date2) : monthNamesShort[date2.month() - calendar.minMonth];\n }\n };\n var digits = this.local.digits;\n var localiseNumbers = function(value) {\n return settings.localNumbers && digits ? digits(value) : value;\n };\n var output = \"\";\n var literal = false;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n } else {\n output += format.charAt(iFormat);\n }\n } else {\n switch (format.charAt(iFormat)) {\n case \"d\":\n output += localiseNumbers(formatNumber(\"d\", date.day(), 2));\n break;\n case \"D\":\n output += formatName(\n \"D\",\n date.dayOfWeek(),\n dayNamesShort,\n dayNames\n );\n break;\n case \"o\":\n output += formatNumber(\"o\", date.dayOfYear(), 3);\n break;\n case \"w\":\n output += formatNumber(\"w\", date.weekOfYear(), 2);\n break;\n case \"m\":\n output += formatMonth(date);\n break;\n case \"M\":\n output += formatMonthName(date, doubled(\"M\"));\n break;\n case \"y\":\n output += doubled(\"y\", 2) ? date.year() : (date.year() % 100 < 10 ? \"0\" : \"\") + date.year() % 100;\n break;\n case \"Y\":\n doubled(\"Y\", 2);\n output += date.formatYear();\n break;\n case \"J\":\n output += date.toJD();\n break;\n case \"@\":\n output += (date.toJD() - this.UNIX_EPOCH) * this.SECS_PER_DAY;\n break;\n case \"!\":\n output += (date.toJD() - this.TICKS_EPOCH) * this.TICKS_PER_DAY;\n break;\n case \"'\":\n if (doubled(\"'\")) {\n output += \"'\";\n } else {\n literal = true;\n }\n break;\n default:\n output += format.charAt(iFormat);\n }\n }\n }\n return output;\n },\n /** Parse a string value into a date object.\n See formatDate for the possible formats, plus:\n
    \n
  • * - ignore rest of string
  • \n
\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param format {string} The expected format of the date ('' for default calendar format).\n @param value {string} The date in the above format.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The extracted date value or null if value is blank.\n @throws Errors if the format and/or value are missing,\n if the value doesn't match the format, or if the date is invalid. */\n parseDate: function(format, value, settings) {\n if (value == null) {\n throw main.local.invalidArguments || main.regionalOptions[\"\"].invalidArguments;\n }\n value = typeof value === \"object\" ? value.toString() : value + \"\";\n if (value === \"\") {\n return null;\n }\n format = format || this.local.dateFormat;\n settings = settings || {};\n var shortYearCutoff = settings.shortYearCutoff || this.shortYearCutoff;\n shortYearCutoff = typeof shortYearCutoff !== \"string\" ? shortYearCutoff : this.today().year() % 100 + parseInt(shortYearCutoff, 10);\n var dayNamesShort = settings.dayNamesShort || this.local.dayNamesShort;\n var dayNames = settings.dayNames || this.local.dayNames;\n var parseMonth = settings.parseMonth || this.local.parseMonth;\n var monthNumbers = settings.monthNumbers || this.local.monthNumbers;\n var monthNamesShort = settings.monthNamesShort || this.local.monthNamesShort;\n var monthNames = settings.monthNames || this.local.monthNames;\n var jd = -1;\n var year = -1;\n var month = -1;\n var day = -1;\n var doy = -1;\n var shortYear = false;\n var literal = false;\n var doubled = function(match, step) {\n var matches = 1;\n while (iFormat + matches < format.length && format.charAt(iFormat + matches) === match) {\n matches++;\n }\n iFormat += matches - 1;\n return Math.floor(matches / (step || 1)) > 1;\n };\n var getNumber = function(match, step) {\n var isDoubled = doubled(match, step);\n var size = [2, 3, isDoubled ? 4 : 2, isDoubled ? 4 : 2, 10, 11, 20][\"oyYJ@!\".indexOf(match) + 1];\n var digits = new RegExp(\"^-?\\\\d{1,\" + size + \"}\");\n var num = value.substring(iValue).match(digits);\n if (!num) {\n throw (main.local.missingNumberAt || main.regionalOptions[\"\"].missingNumberAt).replace(/\\{0\\}/, iValue);\n }\n iValue += num[0].length;\n return parseInt(num[0], 10);\n };\n var calendar = this;\n var getMonthNumber = function() {\n if (typeof monthNumbers === \"function\") {\n doubled(\"m\");\n var month2 = monthNumbers.call(calendar, value.substring(iValue));\n iValue += month2.length;\n return month2;\n }\n return getNumber(\"m\");\n };\n var getName = function(match, shortNames, longNames, step) {\n var names2 = doubled(match, step) ? longNames : shortNames;\n for (var i = 0; i < names2.length; i++) {\n if (value.substr(iValue, names2[i].length).toLowerCase() === names2[i].toLowerCase()) {\n iValue += names2[i].length;\n return i + calendar.minMonth;\n }\n }\n throw (main.local.unknownNameAt || main.regionalOptions[\"\"].unknownNameAt).replace(/\\{0\\}/, iValue);\n };\n var getMonthName = function() {\n if (typeof monthNames === \"function\") {\n var month2 = doubled(\"M\") ? monthNames.call(calendar, value.substring(iValue)) : monthNamesShort.call(calendar, value.substring(iValue));\n iValue += month2.length;\n return month2;\n }\n return getName(\"M\", monthNamesShort, monthNames);\n };\n var checkLiteral = function() {\n if (value.charAt(iValue) !== format.charAt(iFormat)) {\n throw (main.local.unexpectedLiteralAt || main.regionalOptions[\"\"].unexpectedLiteralAt).replace(/\\{0\\}/, iValue);\n }\n iValue++;\n };\n var iValue = 0;\n for (var iFormat = 0; iFormat < format.length; iFormat++) {\n if (literal) {\n if (format.charAt(iFormat) === \"'\" && !doubled(\"'\")) {\n literal = false;\n } else {\n checkLiteral();\n }\n } else {\n switch (format.charAt(iFormat)) {\n case \"d\":\n day = getNumber(\"d\");\n break;\n case \"D\":\n getName(\"D\", dayNamesShort, dayNames);\n break;\n case \"o\":\n doy = getNumber(\"o\");\n break;\n case \"w\":\n getNumber(\"w\");\n break;\n case \"m\":\n month = getMonthNumber();\n break;\n case \"M\":\n month = getMonthName();\n break;\n case \"y\":\n var iSave = iFormat;\n shortYear = !doubled(\"y\", 2);\n iFormat = iSave;\n year = getNumber(\"y\", 2);\n break;\n case \"Y\":\n year = getNumber(\"Y\", 2);\n break;\n case \"J\":\n jd = getNumber(\"J\") + 0.5;\n if (value.charAt(iValue) === \".\") {\n iValue++;\n getNumber(\"J\");\n }\n break;\n case \"@\":\n jd = getNumber(\"@\") / this.SECS_PER_DAY + this.UNIX_EPOCH;\n break;\n case \"!\":\n jd = getNumber(\"!\") / this.TICKS_PER_DAY + this.TICKS_EPOCH;\n break;\n case \"*\":\n iValue = value.length;\n break;\n case \"'\":\n if (doubled(\"'\")) {\n checkLiteral();\n } else {\n literal = true;\n }\n break;\n default:\n checkLiteral();\n }\n }\n }\n if (iValue < value.length) {\n throw main.local.unexpectedText || main.regionalOptions[\"\"].unexpectedText;\n }\n if (year === -1) {\n year = this.today().year();\n } else if (year < 100 && shortYear) {\n year += shortYearCutoff === -1 ? 1900 : this.today().year() - this.today().year() % 100 - (year <= shortYearCutoff ? 0 : 100);\n }\n if (typeof month === \"string\") {\n month = parseMonth.call(this, year, month);\n }\n if (doy > -1) {\n month = 1;\n day = doy;\n for (var dim = this.daysInMonth(year, month); day > dim; dim = this.daysInMonth(year, month)) {\n month++;\n day -= dim;\n }\n }\n return jd > -1 ? this.fromJD(jd) : this.newDate(year, month, day);\n },\n /** A date may be specified as an exact value or a relative one.\n Found in the jquery.calendars.plus.js module.\n @memberof BaseCalendar\n @param dateSpec {CDate|number|string} The date as an object or string in the given format or\n an offset - numeric days from today, or string amounts and periods, e.g. '+1m +2w'.\n @param defaultDate {CDate} The date to use if no other supplied, may be null.\n @param currentDate {CDate} The current date as a possible basis for relative dates,\n if null today is used (optional)\n @param [dateFormat] {string} The expected date format - see formatDate.\n @param [settings] {object} Additional options whose attributes include:\n @property [shortYearCutoff] {number} The cutoff year for determining the century.\n @property [dayNamesShort] {string[]} Abbreviated names of the days from Sunday.\n @property [dayNames] {string[]} Names of the days from Sunday.\n @property [monthNamesShort] {string[]} Abbreviated names of the months.\n @property [monthNames] {string[]} Names of the months.\n @return {CDate} The decoded date. */\n determineDate: function(dateSpec, defaultDate, currentDate, dateFormat, settings) {\n if (currentDate && typeof currentDate !== \"object\") {\n settings = dateFormat;\n dateFormat = currentDate;\n currentDate = null;\n }\n if (typeof dateFormat !== \"string\") {\n settings = dateFormat;\n dateFormat = \"\";\n }\n var calendar = this;\n var offsetString = function(offset) {\n try {\n return calendar.parseDate(dateFormat, offset, settings);\n } catch (e) {\n }\n offset = offset.toLowerCase();\n var date = (offset.match(/^c/) && currentDate ? currentDate.newDate() : null) || calendar.today();\n var pattern = /([+-]?[0-9]+)\\s*(d|w|m|y)?/g;\n var matches = pattern.exec(offset);\n while (matches) {\n date.add(parseInt(matches[1], 10), matches[2] || \"d\");\n matches = pattern.exec(offset);\n }\n return date;\n };\n defaultDate = defaultDate ? defaultDate.newDate() : null;\n dateSpec = dateSpec == null ? defaultDate : typeof dateSpec === \"string\" ? offsetString(dateSpec) : typeof dateSpec === \"number\" ? isNaN(dateSpec) || dateSpec === Infinity || dateSpec === -Infinity ? defaultDate : calendar.today().add(dateSpec, \"d\") : calendar.newDate(dateSpec);\n return dateSpec;\n }\n });\n }\n });\n\n // node_modules/world-calendars/dist/calendars/chinese.js\n var require_chinese = __commonJS({\n \"node_modules/world-calendars/dist/calendars/chinese.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n var gregorianCalendar = main.instance();\n function ChineseCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n ChineseCalendar.prototype = new main.baseCalendar();\n assign(ChineseCalendar.prototype, {\n /** The calendar name.\n @memberof ChineseCalendar */\n name: \"Chinese\",\n /** Julian date of start of Gregorian epoch: 1 January 0001 CE.\n @memberof GregorianCalendar */\n jdEpoch: 17214255e-1,\n /** true if has a year zero, false if not.\n @memberof ChineseCalendar */\n hasYearZero: false,\n /** The minimum month number.\n This calendar uses month indices to account for intercalary months. \n @memberof ChineseCalendar */\n minMonth: 0,\n /** The first month in the year.\n This calendar uses month indices to account for intercalary months. \n @memberof ChineseCalendar */\n firstMonth: 0,\n /** The minimum day number.\n @memberof ChineseCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ChineseCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Chinese\",\n epochs: [\"BEC\", \"EC\"],\n monthNumbers: function(date, padded) {\n if (typeof date === \"string\") {\n var match = date.match(MONTH_NUMBER_REGEXP);\n return match ? match[0] : \"\";\n }\n var year = this._validateYear(date);\n var monthIndex = date.month();\n var month = \"\" + this.toChineseMonth(year, monthIndex);\n if (padded && month.length < 2) {\n month = \"0\" + month;\n }\n if (this.isIntercalaryMonth(year, monthIndex)) {\n month += \"i\";\n }\n return month;\n },\n monthNames: function(date) {\n if (typeof date === \"string\") {\n var match = date.match(MONTH_NAME_REGEXP);\n return match ? match[0] : \"\";\n }\n var year = this._validateYear(date);\n var monthIndex = date.month();\n var month = this.toChineseMonth(year, monthIndex);\n var monthName = [\n \"\\u4E00\\u6708\",\n \"\\u4E8C\\u6708\",\n \"\\u4E09\\u6708\",\n \"\\u56DB\\u6708\",\n \"\\u4E94\\u6708\",\n \"\\u516D\\u6708\",\n \"\\u4E03\\u6708\",\n \"\\u516B\\u6708\",\n \"\\u4E5D\\u6708\",\n \"\\u5341\\u6708\",\n \"\\u5341\\u4E00\\u6708\",\n \"\\u5341\\u4E8C\\u6708\"\n ][month - 1];\n if (this.isIntercalaryMonth(year, monthIndex)) {\n monthName = \"\\u95F0\" + monthName;\n }\n return monthName;\n },\n monthNamesShort: function(date) {\n if (typeof date === \"string\") {\n var match = date.match(MONTH_SHORT_NAME_REGEXP);\n return match ? match[0] : \"\";\n }\n var year = this._validateYear(date);\n var monthIndex = date.month();\n var month = this.toChineseMonth(year, monthIndex);\n var monthName = [\n \"\\u4E00\",\n \"\\u4E8C\",\n \"\\u4E09\",\n \"\\u56DB\",\n \"\\u4E94\",\n \"\\u516D\",\n \"\\u4E03\",\n \"\\u516B\",\n \"\\u4E5D\",\n \"\\u5341\",\n \"\\u5341\\u4E00\",\n \"\\u5341\\u4E8C\"\n ][month - 1];\n if (this.isIntercalaryMonth(year, monthIndex)) {\n monthName = \"\\u95F0\" + monthName;\n }\n return monthName;\n },\n parseMonth: function(year, monthString) {\n year = this._validateYear(year);\n var month = parseInt(monthString);\n var isIntercalary;\n if (!isNaN(month)) {\n var i = monthString[monthString.length - 1];\n isIntercalary = i === \"i\" || i === \"I\";\n } else {\n if (monthString[0] === \"\\u95F0\") {\n isIntercalary = true;\n monthString = monthString.substring(1);\n }\n if (monthString[monthString.length - 1] === \"\\u6708\") {\n monthString = monthString.substring(0, monthString.length - 1);\n }\n month = 1 + [\n \"\\u4E00\",\n \"\\u4E8C\",\n \"\\u4E09\",\n \"\\u56DB\",\n \"\\u4E94\",\n \"\\u516D\",\n \"\\u4E03\",\n \"\\u516B\",\n \"\\u4E5D\",\n \"\\u5341\",\n \"\\u5341\\u4E00\",\n \"\\u5341\\u4E8C\"\n ].indexOf(monthString);\n }\n var monthIndex = this.toMonthIndex(year, month, isIntercalary);\n return monthIndex;\n },\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 1,\n isRTL: false\n }\n },\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof BaseCalendar\n @private\n @param year {CDate|number} The date or the year to validate.\n @param error {string} Error message if invalid.\n @return {number} The year.\n @throws Error if year out of range. */\n _validateYear: function(year, error) {\n if (year.year) {\n year = year.year();\n }\n if (typeof year !== \"number\" || year < 1888 || year > 2111) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return year;\n },\n /** Retrieve the month index (i.e. accounting for intercalary months).\n @memberof ChineseCalendar\n @param year {number} The year.\n @param month {number} The month (1 for first month).\n @param [isIntercalary=false] {boolean} If month is intercalary.\n @return {number} The month index (0 for first month).\n @throws Error if an invalid month/year or a different calendar used. */\n toMonthIndex: function(year, month, isIntercalary) {\n var intercalaryMonth = this.intercalaryMonth(year);\n var invalidIntercalaryMonth = isIntercalary && month !== intercalaryMonth;\n if (invalidIntercalaryMonth || month < 1 || month > 12) {\n throw main.local.invalidMonth.replace(/\\{0\\}/, this.local.name);\n }\n var monthIndex;\n if (!intercalaryMonth) {\n monthIndex = month - 1;\n } else if (!isIntercalary && month <= intercalaryMonth) {\n monthIndex = month - 1;\n } else {\n monthIndex = month;\n }\n return monthIndex;\n },\n /** Retrieve the month (i.e. accounting for intercalary months).\n @memberof ChineseCalendar\n @param year {CDate|number} The date or the year to examine.\n @param monthIndex {number} The month index (0 for first month).\n @return {number} The month (1 for first month).\n @throws Error if an invalid month/year or a different calendar used. */\n toChineseMonth: function(year, monthIndex) {\n if (year.year) {\n year = year.year();\n monthIndex = year.month();\n }\n var intercalaryMonth = this.intercalaryMonth(year);\n var maxMonthIndex = intercalaryMonth ? 12 : 11;\n if (monthIndex < 0 || monthIndex > maxMonthIndex) {\n throw main.local.invalidMonth.replace(/\\{0\\}/, this.local.name);\n }\n var month;\n if (!intercalaryMonth) {\n month = monthIndex + 1;\n } else if (monthIndex < intercalaryMonth) {\n month = monthIndex + 1;\n } else {\n month = monthIndex;\n }\n return month;\n },\n /** Determine the intercalary month of a year (if any).\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The intercalary month number, or 0 if none.\n @throws Error if an invalid year or a different calendar used. */\n intercalaryMonth: function(year) {\n year = this._validateYear(year);\n var monthDaysTable = LUNAR_MONTH_DAYS[year - LUNAR_MONTH_DAYS[0]];\n var intercalaryMonth = monthDaysTable >> 13;\n return intercalaryMonth;\n },\n /** Determine whether this date is an intercalary month.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [monthIndex] {number} The month index to examine.\n @return {boolean} true if this is an intercalary month, false if not.\n @throws Error if an invalid year or a different calendar used. */\n isIntercalaryMonth: function(year, monthIndex) {\n if (year.year) {\n year = year.year();\n monthIndex = year.month();\n }\n var intercalaryMonth = this.intercalaryMonth(year);\n return !!intercalaryMonth && intercalaryMonth === monthIndex;\n },\n /** Determine whether this date is in a leap year.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n return this.intercalaryMonth(year) !== 0;\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [monthIndex] {number} The month index to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, monthIndex, day) {\n var validatedYear = this._validateYear(year, main.local.invalidyear);\n var packedDate = CHINESE_NEW_YEAR[validatedYear - CHINESE_NEW_YEAR[0]];\n var y = packedDate >> 9 & 4095;\n var m = packedDate >> 5 & 15;\n var d = packedDate & 31;\n var firstThursday;\n firstThursday = gregorianCalendar.newDate(y, m, d);\n firstThursday.add(4 - (firstThursday.dayOfWeek() || 7), \"d\");\n var offset = this.toJD(year, monthIndex, day) - firstThursday.toJD();\n return 1 + Math.floor(offset / 7);\n },\n /** Retrieve the number of months in a year.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n return this.leapYear(year) ? 13 : 12;\n },\n /** Retrieve the number of days in a month.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [monthIndex] {number} The month index.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, monthIndex) {\n if (year.year) {\n monthIndex = year.month();\n year = year.year();\n }\n year = this._validateYear(year);\n var monthDaysTable = LUNAR_MONTH_DAYS[year - LUNAR_MONTH_DAYS[0]];\n var intercalaryMonth = monthDaysTable >> 13;\n var maxMonthIndex = intercalaryMonth ? 12 : 11;\n if (monthIndex > maxMonthIndex) {\n throw main.local.invalidMonth.replace(/\\{0\\}/, this.local.name);\n }\n var daysInMonth = monthDaysTable & 1 << 12 - monthIndex ? 30 : 29;\n return daysInMonth;\n },\n /** Determine whether this date is a week day.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [monthIndex] {number} The month index to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, monthIndex, day) {\n return (this.dayOfWeek(year, monthIndex, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ChineseCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [monthIndex] {number} The month index to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, monthIndex, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = this._validateYear(date.year());\n monthIndex = date.month();\n day = date.day();\n var isIntercalary = this.isIntercalaryMonth(year, monthIndex);\n var month = this.toChineseMonth(year, monthIndex);\n var solar = toSolar(year, month, day, isIntercalary);\n return gregorianCalendar.toJD(solar.year, solar.month, solar.day);\n },\n /** Create a new date from a Julian date.\n @memberof ChineseCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var lunar = toLunar(date.year(), date.month(), date.day());\n var monthIndex = this.toMonthIndex(\n lunar.year,\n lunar.month,\n lunar.isIntercalary\n );\n return this.newDate(lunar.year, monthIndex, lunar.day);\n },\n /** Create a new date from a string.\n @memberof ChineseCalendar\n @param dateString {string} String representing a Chinese date\n @return {CDate} The new date.\n @throws Error if an invalid date. */\n fromString: function(dateString) {\n var match = dateString.match(DATE_REGEXP);\n var year = this._validateYear(+match[1]);\n var month = +match[2];\n var isIntercalary = !!match[3];\n var monthIndex = this.toMonthIndex(year, month, isIntercalary);\n var day = +match[4];\n return this.newDate(year, monthIndex, day);\n },\n /** Add period(s) to a date.\n Cater for no year zero.\n @memberof ChineseCalendar\n @param date {CDate} The starting date.\n @param offset {number} The number of periods to adjust by.\n @param period {string} One of 'y' for year, 'm' for month, 'w' for week, 'd' for day.\n @return {CDate} The updated date.\n @throws Error if a different calendar used. */\n add: function(date, offset, period) {\n var year = date.year();\n var monthIndex = date.month();\n var isIntercalary = this.isIntercalaryMonth(year, monthIndex);\n var month = this.toChineseMonth(year, monthIndex);\n var cdate = Object.getPrototypeOf(ChineseCalendar.prototype).add.call(this, date, offset, period);\n if (period === \"y\") {\n var resultYear = cdate.year();\n var resultMonthIndex = cdate.month();\n var resultCanBeIntercalaryMonth = this.isIntercalaryMonth(resultYear, month);\n var correctedMonthIndex = isIntercalary && resultCanBeIntercalaryMonth ? this.toMonthIndex(resultYear, month, true) : this.toMonthIndex(resultYear, month, false);\n if (correctedMonthIndex !== resultMonthIndex) {\n cdate.month(correctedMonthIndex);\n }\n }\n return cdate;\n }\n });\n var DATE_REGEXP = /^\\s*(-?\\d\\d\\d\\d|\\d\\d)[-/](\\d?\\d)([iI]?)[-/](\\d?\\d)/m;\n var MONTH_NUMBER_REGEXP = /^\\d?\\d[iI]?/m;\n var MONTH_NAME_REGEXP = /^闰?十?[一二三四五六七八九]?月/m;\n var MONTH_SHORT_NAME_REGEXP = /^闰?十?[一二三四五六七八九]?/m;\n main.calendars.chinese = ChineseCalendar;\n var LUNAR_MONTH_DAYS = [\n 1887,\n 5780,\n 5802,\n 19157,\n 2742,\n 50359,\n 1198,\n 2646,\n 46378,\n 7466,\n 3412,\n 30122,\n 5482,\n 67949,\n 2396,\n 5294,\n 43597,\n 6732,\n 6954,\n 36181,\n 2772,\n 4954,\n 18781,\n 2396,\n 54427,\n 5274,\n 6730,\n 47781,\n 5800,\n 6868,\n 21210,\n 4790,\n 59703,\n 2350,\n 5270,\n 46667,\n 3402,\n 3496,\n 38325,\n 1388,\n 4782,\n 18735,\n 2350,\n 52374,\n 6804,\n 7498,\n 44457,\n 2906,\n 1388,\n 29294,\n 4700,\n 63789,\n 6442,\n 6804,\n 56138,\n 5802,\n 2772,\n 38235,\n 1210,\n 4698,\n 22827,\n 5418,\n 63125,\n 3476,\n 5802,\n 43701,\n 2484,\n 5302,\n 27223,\n 2646,\n 70954,\n 7466,\n 3412,\n 54698,\n 5482,\n 2412,\n 38062,\n 5294,\n 2636,\n 32038,\n 6954,\n 60245,\n 2772,\n 4826,\n 43357,\n 2394,\n 5274,\n 39501,\n 6730,\n 72357,\n 5800,\n 5844,\n 53978,\n 4790,\n 2358,\n 38039,\n 5270,\n 87627,\n 3402,\n 3496,\n 54708,\n 5484,\n 4782,\n 43311,\n 2350,\n 3222,\n 27978,\n 7498,\n 68965,\n 2904,\n 5484,\n 45677,\n 4700,\n 6444,\n 39573,\n 6804,\n 6986,\n 19285,\n 2772,\n 62811,\n 1210,\n 4698,\n 47403,\n 5418,\n 5780,\n 38570,\n 5546,\n 76469,\n 2420,\n 5302,\n 51799,\n 2646,\n 5414,\n 36501,\n 3412,\n 5546,\n 18869,\n 2412,\n 54446,\n 5276,\n 6732,\n 48422,\n 6822,\n 2900,\n 28010,\n 4826,\n 92509,\n 2394,\n 5274,\n 55883,\n 6730,\n 6820,\n 47956,\n 5812,\n 2778,\n 18779,\n 2358,\n 62615,\n 5270,\n 5450,\n 46757,\n 3492,\n 5556,\n 27318,\n 4718,\n 67887,\n 2350,\n 3222,\n 52554,\n 7498,\n 3428,\n 38252,\n 5468,\n 4700,\n 31022,\n 6444,\n 64149,\n 6804,\n 6986,\n 43861,\n 2772,\n 5338,\n 35421,\n 2650,\n 70955,\n 5418,\n 5780,\n 54954,\n 5546,\n 2740,\n 38074,\n 5302,\n 2646,\n 29991,\n 3366,\n 61011,\n 3412,\n 5546,\n 43445,\n 2412,\n 5294,\n 35406,\n 6732,\n 72998,\n 6820,\n 6996,\n 52586,\n 2778,\n 2396,\n 38045,\n 5274,\n 6698,\n 23333,\n 6820,\n 64338,\n 5812,\n 2746,\n 43355,\n 2358,\n 5270,\n 39499,\n 5450,\n 79525,\n 3492,\n 5548\n ];\n var CHINESE_NEW_YEAR = [\n 1887,\n 966732,\n 967231,\n 967733,\n 968265,\n 968766,\n 969297,\n 969798,\n 970298,\n 970829,\n 971330,\n 971830,\n 972362,\n 972863,\n 973395,\n 973896,\n 974397,\n 974928,\n 975428,\n 975929,\n 976461,\n 976962,\n 977462,\n 977994,\n 978494,\n 979026,\n 979526,\n 980026,\n 980558,\n 981059,\n 981559,\n 982091,\n 982593,\n 983124,\n 983624,\n 984124,\n 984656,\n 985157,\n 985656,\n 986189,\n 986690,\n 987191,\n 987722,\n 988222,\n 988753,\n 989254,\n 989754,\n 990286,\n 990788,\n 991288,\n 991819,\n 992319,\n 992851,\n 993352,\n 993851,\n 994383,\n 994885,\n 995385,\n 995917,\n 996418,\n 996918,\n 997450,\n 997949,\n 998481,\n 998982,\n 999483,\n 1000014,\n 1000515,\n 1001016,\n 1001548,\n 1002047,\n 1002578,\n 1003080,\n 1003580,\n 1004111,\n 1004613,\n 1005113,\n 1005645,\n 1006146,\n 1006645,\n 1007177,\n 1007678,\n 1008209,\n 1008710,\n 1009211,\n 1009743,\n 1010243,\n 1010743,\n 1011275,\n 1011775,\n 1012306,\n 1012807,\n 1013308,\n 1013840,\n 1014341,\n 1014841,\n 1015373,\n 1015874,\n 1016404,\n 1016905,\n 1017405,\n 1017937,\n 1018438,\n 1018939,\n 1019471,\n 1019972,\n 1020471,\n 1021002,\n 1021503,\n 1022035,\n 1022535,\n 1023036,\n 1023568,\n 1024069,\n 1024568,\n 1025100,\n 1025601,\n 1026102,\n 1026633,\n 1027133,\n 1027666,\n 1028167,\n 1028666,\n 1029198,\n 1029699,\n 1030199,\n 1030730,\n 1031231,\n 1031763,\n 1032264,\n 1032764,\n 1033296,\n 1033797,\n 1034297,\n 1034828,\n 1035329,\n 1035830,\n 1036362,\n 1036861,\n 1037393,\n 1037894,\n 1038394,\n 1038925,\n 1039427,\n 1039927,\n 1040459,\n 1040959,\n 1041491,\n 1041992,\n 1042492,\n 1043023,\n 1043524,\n 1044024,\n 1044556,\n 1045057,\n 1045558,\n 1046090,\n 1046590,\n 1047121,\n 1047622,\n 1048122,\n 1048654,\n 1049154,\n 1049655,\n 1050187,\n 1050689,\n 1051219,\n 1051720,\n 1052220,\n 1052751,\n 1053252,\n 1053752,\n 1054284,\n 1054786,\n 1055285,\n 1055817,\n 1056317,\n 1056849,\n 1057349,\n 1057850,\n 1058382,\n 1058883,\n 1059383,\n 1059915,\n 1060415,\n 1060947,\n 1061447,\n 1061947,\n 1062479,\n 1062981,\n 1063480,\n 1064012,\n 1064514,\n 1065014,\n 1065545,\n 1066045,\n 1066577,\n 1067078,\n 1067578,\n 1068110,\n 1068611,\n 1069112,\n 1069642,\n 1070142,\n 1070674,\n 1071175,\n 1071675,\n 1072207,\n 1072709,\n 1073209,\n 1073740,\n 1074241,\n 1074741,\n 1075273,\n 1075773,\n 1076305,\n 1076807,\n 1077308,\n 1077839,\n 1078340,\n 1078840,\n 1079372,\n 1079871,\n 1080403,\n 1080904\n ];\n function toLunar(yearOrDate, monthOrResult, day, result) {\n var solarDate;\n var lunarDate;\n if (typeof yearOrDate === \"object\") {\n solarDate = yearOrDate;\n lunarDate = monthOrResult || {};\n } else {\n var isValidYear = typeof yearOrDate === \"number\" && yearOrDate >= 1888 && yearOrDate <= 2111;\n if (!isValidYear)\n throw new Error(\"Solar year outside range 1888-2111\");\n var isValidMonth = typeof monthOrResult === \"number\" && monthOrResult >= 1 && monthOrResult <= 12;\n if (!isValidMonth)\n throw new Error(\"Solar month outside range 1 - 12\");\n var isValidDay = typeof day === \"number\" && day >= 1 && day <= 31;\n if (!isValidDay)\n throw new Error(\"Solar day outside range 1 - 31\");\n solarDate = {\n year: yearOrDate,\n month: monthOrResult,\n day\n };\n lunarDate = result || {};\n }\n var chineseNewYearPackedDate = CHINESE_NEW_YEAR[solarDate.year - CHINESE_NEW_YEAR[0]];\n var packedDate = solarDate.year << 9 | solarDate.month << 5 | solarDate.day;\n lunarDate.year = packedDate >= chineseNewYearPackedDate ? solarDate.year : solarDate.year - 1;\n chineseNewYearPackedDate = CHINESE_NEW_YEAR[lunarDate.year - CHINESE_NEW_YEAR[0]];\n var y = chineseNewYearPackedDate >> 9 & 4095;\n var m = chineseNewYearPackedDate >> 5 & 15;\n var d = chineseNewYearPackedDate & 31;\n var daysFromNewYear;\n var chineseNewYearJSDate = new Date(y, m - 1, d);\n var jsDate = new Date(solarDate.year, solarDate.month - 1, solarDate.day);\n daysFromNewYear = Math.round(\n (jsDate - chineseNewYearJSDate) / (24 * 3600 * 1e3)\n );\n var monthDaysTable = LUNAR_MONTH_DAYS[lunarDate.year - LUNAR_MONTH_DAYS[0]];\n var i;\n for (i = 0; i < 13; i++) {\n var daysInMonth = monthDaysTable & 1 << 12 - i ? 30 : 29;\n if (daysFromNewYear < daysInMonth) {\n break;\n }\n daysFromNewYear -= daysInMonth;\n }\n var intercalaryMonth = monthDaysTable >> 13;\n if (!intercalaryMonth || i < intercalaryMonth) {\n lunarDate.isIntercalary = false;\n lunarDate.month = 1 + i;\n } else if (i === intercalaryMonth) {\n lunarDate.isIntercalary = true;\n lunarDate.month = i;\n } else {\n lunarDate.isIntercalary = false;\n lunarDate.month = i;\n }\n lunarDate.day = 1 + daysFromNewYear;\n return lunarDate;\n }\n function toSolar(yearOrDate, monthOrResult, day, isIntercalaryOrResult, result) {\n var solarDate;\n var lunarDate;\n if (typeof yearOrDate === \"object\") {\n lunarDate = yearOrDate;\n solarDate = monthOrResult || {};\n } else {\n var isValidYear = typeof yearOrDate === \"number\" && yearOrDate >= 1888 && yearOrDate <= 2111;\n if (!isValidYear)\n throw new Error(\"Lunar year outside range 1888-2111\");\n var isValidMonth = typeof monthOrResult === \"number\" && monthOrResult >= 1 && monthOrResult <= 12;\n if (!isValidMonth)\n throw new Error(\"Lunar month outside range 1 - 12\");\n var isValidDay = typeof day === \"number\" && day >= 1 && day <= 30;\n if (!isValidDay)\n throw new Error(\"Lunar day outside range 1 - 30\");\n var isIntercalary;\n if (typeof isIntercalaryOrResult === \"object\") {\n isIntercalary = false;\n solarDate = isIntercalaryOrResult;\n } else {\n isIntercalary = !!isIntercalaryOrResult;\n solarDate = result || {};\n }\n lunarDate = {\n year: yearOrDate,\n month: monthOrResult,\n day,\n isIntercalary\n };\n }\n var daysFromNewYear;\n daysFromNewYear = lunarDate.day - 1;\n var monthDaysTable = LUNAR_MONTH_DAYS[lunarDate.year - LUNAR_MONTH_DAYS[0]];\n var intercalaryMonth = monthDaysTable >> 13;\n var monthsFromNewYear;\n if (!intercalaryMonth) {\n monthsFromNewYear = lunarDate.month - 1;\n } else if (lunarDate.month > intercalaryMonth) {\n monthsFromNewYear = lunarDate.month;\n } else if (lunarDate.isIntercalary) {\n monthsFromNewYear = lunarDate.month;\n } else {\n monthsFromNewYear = lunarDate.month - 1;\n }\n for (var i = 0; i < monthsFromNewYear; i++) {\n var daysInMonth = monthDaysTable & 1 << 12 - i ? 30 : 29;\n daysFromNewYear += daysInMonth;\n }\n var packedDate = CHINESE_NEW_YEAR[lunarDate.year - CHINESE_NEW_YEAR[0]];\n var y = packedDate >> 9 & 4095;\n var m = packedDate >> 5 & 15;\n var d = packedDate & 31;\n var jsDate = new Date(y, m - 1, d + daysFromNewYear);\n solarDate.year = jsDate.getFullYear();\n solarDate.month = 1 + jsDate.getMonth();\n solarDate.day = jsDate.getDate();\n return solarDate;\n }\n }\n });\n\n // node_modules/world-calendars/dist/calendars/coptic.js\n var require_coptic = __commonJS({\n \"node_modules/world-calendars/dist/calendars/coptic.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function CopticCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n CopticCalendar.prototype = new main.baseCalendar();\n assign(CopticCalendar.prototype, {\n /** The calendar name.\n @memberof CopticCalendar */\n name: \"Coptic\",\n /** Julian date of start of Coptic epoch: 29 August 284 CE (Gregorian).\n @memberof CopticCalendar */\n jdEpoch: 18250295e-1,\n /** Days per month in a common year.\n @memberof CopticCalendar */\n daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5],\n /** true if has a year zero, false if not.\n @memberof CopticCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof CopticCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof CopticCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof CopticCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof CopticCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Coptic\",\n epochs: [\"BAM\", \"AM\"],\n monthNames: [\n \"Thout\",\n \"Paopi\",\n \"Hathor\",\n \"Koiak\",\n \"Tobi\",\n \"Meshir\",\n \"Paremhat\",\n \"Paremoude\",\n \"Pashons\",\n \"Paoni\",\n \"Epip\",\n \"Mesori\",\n \"Pi Kogi Enavot\"\n ],\n monthNamesShort: [\n \"Tho\",\n \"Pao\",\n \"Hath\",\n \"Koi\",\n \"Tob\",\n \"Mesh\",\n \"Pat\",\n \"Pad\",\n \"Pash\",\n \"Pao\",\n \"Epi\",\n \"Meso\",\n \"PiK\"\n ],\n dayNames: [\"Tkyriaka\", \"Pesnau\", \"Pshoment\", \"Peftoou\", \"Ptiou\", \"Psoou\", \"Psabbaton\"],\n dayNamesShort: [\"Tky\", \"Pes\", \"Psh\", \"Pef\", \"Pti\", \"Pso\", \"Psa\"],\n dayNamesMin: [\"Tk\", \"Pes\", \"Psh\", \"Pef\", \"Pt\", \"Pso\", \"Psa\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0);\n return year % 4 === 3 || year % 4 === -1;\n },\n /** Retrieve the number of months in a year.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(\n year,\n this.minMonth,\n this.minDay,\n main.local.invalidYear || main.regionalOptions[\"\"].invalidYear\n );\n return 13;\n },\n /** Determine the week of the year for a date.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number) the month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 13 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof CopticCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof CopticCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number) the month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n if (year < 0) {\n year++;\n }\n return date.day() + (date.month() - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof CopticCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var c = Math.floor(jd) + 0.5 - this.jdEpoch;\n var year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n }\n c = Math.floor(jd) + 0.5 - this.newDate(year, 1, 1).toJD();\n var month = Math.floor(c / 30) + 1;\n var day = c - (month - 1) * 30 + 1;\n return this.newDate(year, month, day);\n }\n });\n main.calendars.coptic = CopticCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/discworld.js\n var require_discworld = __commonJS({\n \"node_modules/world-calendars/dist/calendars/discworld.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function DiscworldCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n DiscworldCalendar.prototype = new main.baseCalendar();\n assign(DiscworldCalendar.prototype, {\n /** The calendar name.\n @memberof DiscworldCalendar */\n name: \"Discworld\",\n /** Julian date of start of Discworld epoch: 1 January 0001 CE.\n @memberof DiscworldCalendar */\n jdEpoch: 17214255e-1,\n /** Days per month in a common year.\n @memberof DiscworldCalendar */\n daysPerMonth: [16, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],\n /** true if has a year zero, false if not.\n @memberof DiscworldCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof DiscworldCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof DiscworldCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof DiscworldCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof DiscworldCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Discworld\",\n epochs: [\"BUC\", \"UC\"],\n monthNames: [\n \"Ick\",\n \"Offle\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"Grune\",\n \"August\",\n \"Spune\",\n \"Sektober\",\n \"Ember\",\n \"December\"\n ],\n monthNamesShort: [\"Ick\", \"Off\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Gru\", \"Aug\", \"Spu\", \"Sek\", \"Emb\", \"Dec\"],\n dayNames: [\"Sunday\", \"Octeday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Oct\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Oc\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 2,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return false;\n },\n /** Retrieve the number of months in a year.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 13;\n },\n /** Retrieve the number of days in a year.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 400;\n },\n /** Determine the week of the year for a date.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 8) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1];\n },\n /** Retrieve the number of days in a week.\n @memberof DiscworldCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 8;\n },\n /** Retrieve the day of the week for a date.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return (date.day() + 1) % 8;\n },\n /** Determine whether this date is a week day.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n var dow = this.dayOfWeek(year, month, day);\n return dow >= 2 && dow <= 6;\n },\n /** Retrieve additional information about a date.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return { century: centuries[Math.floor((date.year() - 1) / 100) + 1] || \"\" };\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof DiscworldCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year() + (date.year() < 0 ? 1 : 0);\n month = date.month();\n day = date.day();\n return day + (month > 1 ? 16 : 0) + (month > 2 ? (month - 2) * 32 : 0) + (year - 1) * 400 + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof DiscworldCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd + 0.5) - Math.floor(this.jdEpoch) - 1;\n var year = Math.floor(jd / 400) + 1;\n jd -= (year - 1) * 400;\n jd += jd > 15 ? 16 : 0;\n var month = Math.floor(jd / 32) + 1;\n var day = jd - (month - 1) * 32 + 1;\n return this.newDate(year <= 0 ? year - 1 : year, month, day);\n }\n });\n var centuries = {\n 20: \"Fruitbat\",\n 21: \"Anchovy\"\n };\n main.calendars.discworld = DiscworldCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/ethiopian.js\n var require_ethiopian = __commonJS({\n \"node_modules/world-calendars/dist/calendars/ethiopian.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function EthiopianCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n EthiopianCalendar.prototype = new main.baseCalendar();\n assign(EthiopianCalendar.prototype, {\n /** The calendar name.\n @memberof EthiopianCalendar */\n name: \"Ethiopian\",\n /** Julian date of start of Ethiopian epoch: 27 August 8 CE (Gregorian).\n @memberof EthiopianCalendar */\n jdEpoch: 17242205e-1,\n /** Days per month in a common year.\n @memberof EthiopianCalendar */\n daysPerMonth: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5],\n /** true if has a year zero, false if not.\n @memberof EthiopianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof EthiopianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof EthiopianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof EthiopianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof EthiopianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Ethiopian\",\n epochs: [\"BEE\", \"EE\"],\n monthNames: [\n \"Meskerem\",\n \"Tikemet\",\n \"Hidar\",\n \"Tahesas\",\n \"Tir\",\n \"Yekatit\",\n \"Megabit\",\n \"Miazia\",\n \"Genbot\",\n \"Sene\",\n \"Hamle\",\n \"Nehase\",\n \"Pagume\"\n ],\n monthNamesShort: [\n \"Mes\",\n \"Tik\",\n \"Hid\",\n \"Tah\",\n \"Tir\",\n \"Yek\",\n \"Meg\",\n \"Mia\",\n \"Gen\",\n \"Sen\",\n \"Ham\",\n \"Neh\",\n \"Pag\"\n ],\n dayNames: [\"Ehud\", \"Segno\", \"Maksegno\", \"Irob\", \"Hamus\", \"Arb\", \"Kidame\"],\n dayNamesShort: [\"Ehu\", \"Seg\", \"Mak\", \"Iro\", \"Ham\", \"Arb\", \"Kid\"],\n dayNamesMin: [\"Eh\", \"Se\", \"Ma\", \"Ir\", \"Ha\", \"Ar\", \"Ki\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = date.year() + (date.year() < 0 ? 1 : 0);\n return year % 4 === 3 || year % 4 === -1;\n },\n /** Retrieve the number of months in a year.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(\n year,\n this.minMonth,\n this.minDay,\n main.local.invalidYear || main.regionalOptions[\"\"].invalidYear\n );\n return 13;\n },\n /** Determine the week of the year for a date.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 13 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof EthiopianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n if (year < 0) {\n year++;\n }\n return date.day() + (date.month() - 1) * 30 + (year - 1) * 365 + Math.floor(year / 4) + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof EthiopianCalendar\n @param jd {number} the Julian date to convert.\n @return {CDate} the equivalent date. */\n fromJD: function(jd) {\n var c = Math.floor(jd) + 0.5 - this.jdEpoch;\n var year = Math.floor((c - Math.floor((c + 366) / 1461)) / 365) + 1;\n if (year <= 0) {\n year--;\n }\n c = Math.floor(jd) + 0.5 - this.newDate(year, 1, 1).toJD();\n var month = Math.floor(c / 30) + 1;\n var day = c - (month - 1) * 30 + 1;\n return this.newDate(year, month, day);\n }\n });\n main.calendars.ethiopian = EthiopianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/hebrew.js\n var require_hebrew = __commonJS({\n \"node_modules/world-calendars/dist/calendars/hebrew.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function HebrewCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n HebrewCalendar.prototype = new main.baseCalendar();\n assign(HebrewCalendar.prototype, {\n /** The calendar name.\n @memberof HebrewCalendar */\n name: \"Hebrew\",\n /** Julian date of start of Hebrew epoch: 7 October 3761 BCE.\n @memberof HebrewCalendar */\n jdEpoch: 347995.5,\n /** Days per month in a common year.\n @memberof HebrewCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 29],\n /** true if has a year zero, false if not.\n @memberof HebrewCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof HebrewCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof HebrewCalendar */\n firstMonth: 7,\n /** The minimum day number.\n @memberof HebrewCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof HebrewCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Hebrew\",\n epochs: [\"BAM\", \"AM\"],\n monthNames: [\n \"Nisan\",\n \"Iyar\",\n \"Sivan\",\n \"Tammuz\",\n \"Av\",\n \"Elul\",\n \"Tishrei\",\n \"Cheshvan\",\n \"Kislev\",\n \"Tevet\",\n \"Shevat\",\n \"Adar\",\n \"Adar II\"\n ],\n monthNamesShort: [\"Nis\", \"Iya\", \"Siv\", \"Tam\", \"Av\", \"Elu\", \"Tis\", \"Che\", \"Kis\", \"Tev\", \"She\", \"Ada\", \"Ad2\"],\n dayNames: [\"Yom Rishon\", \"Yom Sheni\", \"Yom Shlishi\", \"Yom Revi'i\", \"Yom Chamishi\", \"Yom Shishi\", \"Yom Shabbat\"],\n dayNamesShort: [\"Ris\", \"She\", \"Shl\", \"Rev\", \"Cha\", \"Shi\", \"Sha\"],\n dayNamesMin: [\"Ri\", \"She\", \"Shl\", \"Re\", \"Ch\", \"Shi\", \"Sha\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return this._leapYear(date.year());\n },\n /** Determine whether this date is in a leap year.\n @memberof HebrewCalendar\n @private\n @param year {number} The year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n _leapYear: function(year) {\n year = year < 0 ? year + 1 : year;\n return mod(year * 7 + 1, 19) < 7;\n },\n /** Retrieve the number of months in a year.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return this._leapYear(year.year ? year.year() : year) ? 13 : 12;\n },\n /** Determine the week of the year for a date.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n year = date.year();\n return this.toJD(year === -1 ? 1 : year + 1, 7, 1) - this.toJD(year, 7, 1);\n },\n /** Retrieve the number of days in a month.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n if (year.year) {\n month = year.month();\n year = year.year();\n }\n this._validate(year, month, this.minDay, main.local.invalidMonth);\n return month === 12 && this.leapYear(year) ? 30 : (\n // Adar I\n month === 8 && mod(this.daysInYear(year), 10) === 5 ? 30 : (\n // Cheshvan in shlemah year\n month === 9 && mod(this.daysInYear(year), 10) === 3 ? 29 : (\n // Kislev in chaserah year\n this.daysPerMonth[month - 1]\n )\n )\n );\n },\n /** Determine whether this date is a week day.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 6;\n },\n /** Retrieve additional information about a date - year type.\n @memberof HebrewCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return { yearType: (this.leapYear(date) ? \"embolismic\" : \"common\") + \" \" + [\"deficient\", \"regular\", \"complete\"][this.daysInYear(date) % 10 - 3] };\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof HebrewCalendar\n @param year {CDate)|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var adjYear = year <= 0 ? year + 1 : year;\n var jd = this.jdEpoch + this._delay1(adjYear) + this._delay2(adjYear) + day + 1;\n if (month < 7) {\n for (var m = 7; m <= this.monthsInYear(year); m++) {\n jd += this.daysInMonth(year, m);\n }\n for (var m = 1; m < month; m++) {\n jd += this.daysInMonth(year, m);\n }\n } else {\n for (var m = 7; m < month; m++) {\n jd += this.daysInMonth(year, m);\n }\n }\n return jd;\n },\n /** Test for delay of start of new year and to avoid\n Sunday, Wednesday, or Friday as start of the new year.\n @memberof HebrewCalendar\n @private\n @param year {number} The year to examine.\n @return {number} The days to offset by. */\n _delay1: function(year) {\n var months = Math.floor((235 * year - 234) / 19);\n var parts = 12084 + 13753 * months;\n var day = months * 29 + Math.floor(parts / 25920);\n if (mod(3 * (day + 1), 7) < 3) {\n day++;\n }\n return day;\n },\n /** Check for delay in start of new year due to length of adjacent years.\n @memberof HebrewCalendar\n @private\n @param year {number} The year to examine.\n @return {number} The days to offset by. */\n _delay2: function(year) {\n var last = this._delay1(year - 1);\n var present = this._delay1(year);\n var next = this._delay1(year + 1);\n return next - present === 356 ? 2 : present - last === 382 ? 1 : 0;\n },\n /** Create a new date from a Julian date.\n @memberof HebrewCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((jd - this.jdEpoch) * 98496 / 35975351) - 1;\n while (jd >= this.toJD(year === -1 ? 1 : year + 1, 7, 1)) {\n year++;\n }\n var month = jd < this.toJD(year, 1, 1) ? 7 : 1;\n while (jd > this.toJD(year, month, this.daysInMonth(year, month))) {\n month++;\n }\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n });\n function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n main.calendars.hebrew = HebrewCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/islamic.js\n var require_islamic = __commonJS({\n \"node_modules/world-calendars/dist/calendars/islamic.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function IslamicCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n IslamicCalendar.prototype = new main.baseCalendar();\n assign(IslamicCalendar.prototype, {\n /** The calendar name.\n @memberof IslamicCalendar */\n name: \"Islamic\",\n /** Julian date of start of Islamic epoch: 16 July 622 CE.\n @memberof IslamicCalendar */\n jdEpoch: 19484395e-1,\n /** Days per month in a common year.\n @memberof IslamicCalendar */\n daysPerMonth: [30, 29, 30, 29, 30, 29, 30, 29, 30, 29, 30, 29],\n /** true if has a year zero, false if not.\n @memberof IslamicCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof IslamicCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof IslamicCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof IslamicCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof IslamicCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Islamic\",\n epochs: [\"BH\", \"AH\"],\n monthNames: [\n \"Muharram\",\n \"Safar\",\n \"Rabi' al-awwal\",\n \"Rabi' al-thani\",\n \"Jumada al-awwal\",\n \"Jumada al-thani\",\n \"Rajab\",\n \"Sha'aban\",\n \"Ramadan\",\n \"Shawwal\",\n \"Dhu al-Qi'dah\",\n \"Dhu al-Hijjah\"\n ],\n monthNamesShort: [\"Muh\", \"Saf\", \"Rab1\", \"Rab2\", \"Jum1\", \"Jum2\", \"Raj\", \"Sha'\", \"Ram\", \"Shaw\", \"DhuQ\", \"DhuH\"],\n dayNames: [\n \"Yawm al-ahad\",\n \"Yawm al-ithnayn\",\n \"Yawm ath-thulaathaa'\",\n \"Yawm al-arbi'aa'\",\n \"Yawm al-kham\\u012Bs\",\n \"Yawm al-jum'a\",\n \"Yawm as-sabt\"\n ],\n dayNamesShort: [\"Aha\", \"Ith\", \"Thu\", \"Arb\", \"Kha\", \"Jum\", \"Sab\"],\n dayNamesMin: [\"Ah\", \"It\", \"Th\", \"Ar\", \"Kh\", \"Ju\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 6,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return (date.year() * 11 + 14) % 30 < 11;\n },\n /** Determine the week of the year for a date.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n return this.leapYear(year) ? 355 : 354;\n },\n /** Retrieve the number of days in a month.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof IslamicCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n year = year <= 0 ? year + 1 : year;\n return day + Math.ceil(29.5 * (month - 1)) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30) + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof IslamicCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var year = Math.floor((30 * (jd - this.jdEpoch) + 10646) / 10631);\n year = year <= 0 ? year - 1 : year;\n var month = Math.min(12, Math.ceil((jd - 29 - this.toJD(year, 1, 1)) / 29.5) + 1);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n });\n main.calendars.islamic = IslamicCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/julian.js\n var require_julian = __commonJS({\n \"node_modules/world-calendars/dist/calendars/julian.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function JulianCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n JulianCalendar.prototype = new main.baseCalendar();\n assign(JulianCalendar.prototype, {\n /** The calendar name.\n @memberof JulianCalendar */\n name: \"Julian\",\n /** Julian date of start of Julian epoch: 1 January 0001 AD = 30 December 0001 BCE.\n @memberof JulianCalendar */\n jdEpoch: 17214235e-1,\n /** Days per month in a common year.\n @memberof JulianCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof JulianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof JulianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof JulianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof JulianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof JulianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Julian\",\n epochs: [\"BC\", \"AD\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"mm/dd/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = date.year() < 0 ? date.year() + 1 : date.year();\n return year % 4 === 0;\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(4 - (checkDate.dayOfWeek() || 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof JulianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} True if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof JulianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n if (year < 0) {\n year++;\n }\n if (month <= 2) {\n year--;\n month += 12;\n }\n return Math.floor(365.25 * (year + 4716)) + Math.floor(30.6001 * (month + 1)) + day - 1524.5;\n },\n /** Create a new date from a Julian date.\n @memberof JulianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var a = Math.floor(jd + 0.5);\n var b = a + 1524;\n var c = Math.floor((b - 122.1) / 365.25);\n var d = Math.floor(365.25 * c);\n var e = Math.floor((b - d) / 30.6001);\n var month = e - Math.floor(e < 14 ? 1 : 13);\n var year = c - Math.floor(month > 2 ? 4716 : 4715);\n var day = b - d - Math.floor(30.6001 * e);\n if (year <= 0) {\n year--;\n }\n return this.newDate(year, month, day);\n }\n });\n main.calendars.julian = JulianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/mayan.js\n var require_mayan = __commonJS({\n \"node_modules/world-calendars/dist/calendars/mayan.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function MayanCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n MayanCalendar.prototype = new main.baseCalendar();\n assign(MayanCalendar.prototype, {\n /** The calendar name.\n @memberof MayanCalendar */\n name: \"Mayan\",\n /** Julian date of start of Mayan epoch: 11 August 3114 BCE.\n @memberof MayanCalendar */\n jdEpoch: 584282.5,\n /** true if has a year zero, false if not.\n @memberof MayanCalendar */\n hasYearZero: true,\n /** The minimum month number.\n @memberof MayanCalendar */\n minMonth: 0,\n /** The first month in the year.\n @memberof MayanCalendar */\n firstMonth: 0,\n /** The minimum day number.\n @memberof MayanCalendar */\n minDay: 0,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof MayanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left.\n @property haabMonths {string[]} The names of the Haab months.\n @property tzolkinMonths {string[]} The names of the Tzolkin months. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Mayan\",\n epochs: [\"\", \"\"],\n monthNames: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\"\n ],\n monthNamesShort: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\"\n ],\n dayNames: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\"\n ],\n dayNamesShort: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\"\n ],\n dayNamesMin: [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"10\",\n \"11\",\n \"12\",\n \"13\",\n \"14\",\n \"15\",\n \"16\",\n \"17\",\n \"18\",\n \"19\"\n ],\n digits: null,\n dateFormat: \"YYYY.m.d\",\n firstDay: 0,\n isRTL: false,\n haabMonths: [\n \"Pop\",\n \"Uo\",\n \"Zip\",\n \"Zotz\",\n \"Tzec\",\n \"Xul\",\n \"Yaxkin\",\n \"Mol\",\n \"Chen\",\n \"Yax\",\n \"Zac\",\n \"Ceh\",\n \"Mac\",\n \"Kankin\",\n \"Muan\",\n \"Pax\",\n \"Kayab\",\n \"Cumku\",\n \"Uayeb\"\n ],\n tzolkinMonths: [\n \"Imix\",\n \"Ik\",\n \"Akbal\",\n \"Kan\",\n \"Chicchan\",\n \"Cimi\",\n \"Manik\",\n \"Lamat\",\n \"Muluc\",\n \"Oc\",\n \"Chuen\",\n \"Eb\",\n \"Ben\",\n \"Ix\",\n \"Men\",\n \"Cib\",\n \"Caban\",\n \"Etznab\",\n \"Cauac\",\n \"Ahau\"\n ]\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return false;\n },\n /** Format the year, if not a simple sequential number.\n @memberof MayanCalendar\n @param year {CDate|number} The date to format or the year to format.\n @return {string} The formatted year.\n @throws Error if an invalid year or a different calendar used. */\n formatYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n year = date.year();\n var baktun = Math.floor(year / 400);\n year = year % 400;\n year += year < 0 ? 400 : 0;\n var katun = Math.floor(year / 20);\n return baktun + \".\" + katun + \".\" + year % 20;\n },\n /** Convert from the formatted year back to a single number.\n @memberof MayanCalendar\n @param years {string} The year as n.n.n.\n @return {number} The sequential year.\n @throws Error if an invalid value is supplied. */\n forYear: function(years) {\n years = years.split(\".\");\n if (years.length < 3) {\n throw \"Invalid Mayan year\";\n }\n var year = 0;\n for (var i = 0; i < years.length; i++) {\n var y = parseInt(years[i], 10);\n if (Math.abs(y) > 19 || i > 0 && y < 0) {\n throw \"Invalid Mayan year\";\n }\n year = year * 20 + y;\n }\n return year;\n },\n /** Retrieve the number of months in a year.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of months.\n @throws Error if an invalid year or a different calendar used. */\n monthsInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 18;\n },\n /** Determine the week of the year for a date.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n this._validate(year, month, day, main.local.invalidDate);\n return 0;\n },\n /** Retrieve the number of days in a year.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return 360;\n },\n /** Retrieve the number of days in a month.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n this._validate(year, month, this.minDay, main.local.invalidMonth);\n return 20;\n },\n /** Retrieve the number of days in a week.\n @memberof MayanCalendar\n @return {number} The number of days. */\n daysInWeek: function() {\n return 5;\n },\n /** Retrieve the day of the week for a date.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The day of the week: 0 to number of days - 1.\n @throws Error if an invalid date or a different calendar used. */\n dayOfWeek: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return date.day();\n },\n /** Determine whether this date is a week day.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n this._validate(year, month, day, main.local.invalidDate);\n return true;\n },\n /** Retrieve additional information about a date - Haab and Tzolkin equivalents.\n @memberof MayanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {object} Additional information - contents depends on calendar.\n @throws Error if an invalid date or a different calendar used. */\n extraInfo: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var jd = date.toJD();\n var haab = this._toHaab(jd);\n var tzolkin = this._toTzolkin(jd);\n return {\n haabMonthName: this.local.haabMonths[haab[0] - 1],\n haabMonth: haab[0],\n haabDay: haab[1],\n tzolkinDayName: this.local.tzolkinMonths[tzolkin[0] - 1],\n tzolkinDay: tzolkin[0],\n tzolkinTrecena: tzolkin[1]\n };\n },\n /** Retrieve Haab date from a Julian date.\n @memberof MayanCalendar\n @private\n @param jd {number} The Julian date.\n @return {number[]} Corresponding Haab month and day. */\n _toHaab: function(jd) {\n jd -= this.jdEpoch;\n var day = mod(jd + 8 + (18 - 1) * 20, 365);\n return [Math.floor(day / 20) + 1, mod(day, 20)];\n },\n /** Retrieve Tzolkin date from a Julian date.\n @memberof MayanCalendar\n @private\n @param jd {number} The Julian date.\n @return {number[]} Corresponding Tzolkin day and trecena. */\n _toTzolkin: function(jd) {\n jd -= this.jdEpoch;\n return [amod(jd + 20, 20), amod(jd + 4, 13)];\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof MayanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n return date.day() + date.month() * 20 + date.year() * 360 + this.jdEpoch;\n },\n /** Create a new date from a Julian date.\n @memberof MayanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5 - this.jdEpoch;\n var year = Math.floor(jd / 360);\n jd = jd % 360;\n jd += jd < 0 ? 360 : 0;\n var month = Math.floor(jd / 20);\n var day = jd % 20;\n return this.newDate(year, month, day);\n }\n });\n function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n function amod(a, b) {\n return mod(a - 1, b) + 1;\n }\n main.calendars.mayan = MayanCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/nanakshahi.js\n var require_nanakshahi = __commonJS({\n \"node_modules/world-calendars/dist/calendars/nanakshahi.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function NanakshahiCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n NanakshahiCalendar.prototype = new main.baseCalendar();\n var gregorian = main.instance(\"gregorian\");\n assign(NanakshahiCalendar.prototype, {\n /** The calendar name.\n @memberof NanakshahiCalendar */\n name: \"Nanakshahi\",\n /** Julian date of start of Nanakshahi epoch: 14 March 1469 CE.\n @memberof NanakshahiCalendar */\n jdEpoch: 22576735e-1,\n /** Days per month in a common year.\n @memberof NanakshahiCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 30, 30],\n /** true if has a year zero, false if not.\n @memberof NanakshahiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof NanakshahiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof NanakshahiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof NanakshahiCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof NanakshahiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Nanakshahi\",\n epochs: [\"BN\", \"AN\"],\n monthNames: [\n \"Chet\",\n \"Vaisakh\",\n \"Jeth\",\n \"Harh\",\n \"Sawan\",\n \"Bhadon\",\n \"Assu\",\n \"Katak\",\n \"Maghar\",\n \"Poh\",\n \"Magh\",\n \"Phagun\"\n ],\n monthNamesShort: [\"Che\", \"Vai\", \"Jet\", \"Har\", \"Saw\", \"Bha\", \"Ass\", \"Kat\", \"Mgr\", \"Poh\", \"Mgh\", \"Pha\"],\n dayNames: [\"Somvaar\", \"Mangalvar\", \"Budhvaar\", \"Veervaar\", \"Shukarvaar\", \"Sanicharvaar\", \"Etvaar\"],\n dayNamesShort: [\"Som\", \"Mangal\", \"Budh\", \"Veer\", \"Shukar\", \"Sanichar\", \"Et\"],\n dayNamesMin: [\"So\", \"Ma\", \"Bu\", \"Ve\", \"Sh\", \"Sa\", \"Et\"],\n digits: null,\n dateFormat: \"dd-mm-yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(\n year,\n this.minMonth,\n this.minDay,\n main.local.invalidYear || main.regionalOptions[\"\"].invalidYear\n );\n return gregorian.leapYear(date.year() + (date.year() < 1 ? 1 : 0) + 1469);\n },\n /** Determine the week of the year for a date.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(1 - (checkDate.dayOfWeek() || 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof NanakshahiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidMonth);\n var year = date.year();\n if (year < 0) {\n year++;\n }\n var doy = date.day();\n for (var m = 1; m < date.month(); m++) {\n doy += this.daysPerMonth[m - 1];\n }\n return doy + gregorian.toJD(year + 1468, 3, 13);\n },\n /** Create a new date from a Julian date.\n @memberof NanakshahiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd + 0.5);\n var year = Math.floor((jd - (this.jdEpoch - 1)) / 366);\n while (jd >= this.toJD(year + 1, 1, 1)) {\n year++;\n }\n var day = jd - Math.floor(this.toJD(year, 1, 1) + 0.5) + 1;\n var month = 1;\n while (day > this.daysInMonth(year, month)) {\n day -= this.daysInMonth(year, month);\n month++;\n }\n return this.newDate(year, month, day);\n }\n });\n main.calendars.nanakshahi = NanakshahiCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/nepali.js\n var require_nepali = __commonJS({\n \"node_modules/world-calendars/dist/calendars/nepali.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function NepaliCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n NepaliCalendar.prototype = new main.baseCalendar();\n assign(NepaliCalendar.prototype, {\n /** The calendar name.\n @memberof NepaliCalendar */\n name: \"Nepali\",\n /** Julian date of start of Nepali epoch: 14 April 57 BCE.\n @memberof NepaliCalendar */\n jdEpoch: 17007095e-1,\n /** Days per month in a common year.\n @memberof NepaliCalendar */\n daysPerMonth: [31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n /** true if has a year zero, false if not.\n @memberof NepaliCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof NepaliCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof NepaliCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof NepaliCalendar */\n minDay: 1,\n /** The number of days in the year.\n @memberof NepaliCalendar */\n daysPerYear: 365,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof NepaliCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Nepali\",\n epochs: [\"BBS\", \"ABS\"],\n monthNames: [\n \"Baisakh\",\n \"Jestha\",\n \"Ashadh\",\n \"Shrawan\",\n \"Bhadra\",\n \"Ashwin\",\n \"Kartik\",\n \"Mangsir\",\n \"Paush\",\n \"Mangh\",\n \"Falgun\",\n \"Chaitra\"\n ],\n monthNamesShort: [\"Bai\", \"Je\", \"As\", \"Shra\", \"Bha\", \"Ash\", \"Kar\", \"Mang\", \"Pau\", \"Ma\", \"Fal\", \"Chai\"],\n dayNames: [\"Aaitabaar\", \"Sombaar\", \"Manglbaar\", \"Budhabaar\", \"Bihibaar\", \"Shukrabaar\", \"Shanibaar\"],\n dayNamesShort: [\"Aaita\", \"Som\", \"Mangl\", \"Budha\", \"Bihi\", \"Shukra\", \"Shani\"],\n dayNamesMin: [\"Aai\", \"So\", \"Man\", \"Bu\", \"Bi\", \"Shu\", \"Sha\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 1,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n return this.daysInYear(year) !== this.daysPerYear;\n },\n /** Determine the week of the year for a date.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n year = date.year();\n if (typeof this.NEPALI_CALENDAR_DATA[year] === \"undefined\") {\n return this.daysPerYear;\n }\n var daysPerYear = 0;\n for (var month_number = this.minMonth; month_number <= 12; month_number++) {\n daysPerYear += this.NEPALI_CALENDAR_DATA[year][month_number];\n }\n return daysPerYear;\n },\n /** Retrieve the number of days in a month.\n @memberof NepaliCalendar\n @param year {CDate|number| The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n if (year.year) {\n month = year.month();\n year = year.year();\n }\n this._validate(year, month, this.minDay, main.local.invalidMonth);\n return typeof this.NEPALI_CALENDAR_DATA[year] === \"undefined\" ? this.daysPerMonth[month - 1] : this.NEPALI_CALENDAR_DATA[year][month];\n },\n /** Determine whether this date is a week day.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof NepaliCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(nepaliYear, nepaliMonth, nepaliDay) {\n var date = this._validate(nepaliYear, nepaliMonth, nepaliDay, main.local.invalidDate);\n nepaliYear = date.year();\n nepaliMonth = date.month();\n nepaliDay = date.day();\n var gregorianCalendar = main.instance();\n var gregorianDayOfYear = 0;\n var nepaliMonthToCheck = nepaliMonth;\n var nepaliYearToCheck = nepaliYear;\n this._createMissingCalendarData(nepaliYear);\n var gregorianYear = nepaliYear - (nepaliMonthToCheck > 9 || nepaliMonthToCheck === 9 && nepaliDay >= this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0] ? 56 : 57);\n if (nepaliMonth !== 9) {\n gregorianDayOfYear = nepaliDay;\n nepaliMonthToCheck--;\n }\n while (nepaliMonthToCheck !== 9) {\n if (nepaliMonthToCheck <= 0) {\n nepaliMonthToCheck = 12;\n nepaliYearToCheck--;\n }\n gregorianDayOfYear += this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][nepaliMonthToCheck];\n nepaliMonthToCheck--;\n }\n if (nepaliMonth === 9) {\n gregorianDayOfYear += nepaliDay - this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0];\n if (gregorianDayOfYear < 0) {\n gregorianDayOfYear += gregorianCalendar.daysInYear(gregorianYear);\n }\n } else {\n gregorianDayOfYear += this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][9] - this.NEPALI_CALENDAR_DATA[nepaliYearToCheck][0];\n }\n return gregorianCalendar.newDate(gregorianYear, 1, 1).add(gregorianDayOfYear, \"d\").toJD();\n },\n /** Create a new date from a Julian date.\n @memberof NepaliCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var gregorianCalendar = main.instance();\n var gregorianDate = gregorianCalendar.fromJD(jd);\n var gregorianYear = gregorianDate.year();\n var gregorianDayOfYear = gregorianDate.dayOfYear();\n var nepaliYear = gregorianYear + 56;\n this._createMissingCalendarData(nepaliYear);\n var nepaliMonth = 9;\n var dayOfFirstJanInPaush = this.NEPALI_CALENDAR_DATA[nepaliYear][0];\n var daysSinceJanFirstToEndOfNepaliMonth = this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth] - dayOfFirstJanInPaush + 1;\n while (gregorianDayOfYear > daysSinceJanFirstToEndOfNepaliMonth) {\n nepaliMonth++;\n if (nepaliMonth > 12) {\n nepaliMonth = 1;\n nepaliYear++;\n }\n daysSinceJanFirstToEndOfNepaliMonth += this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth];\n }\n var nepaliDayOfMonth = this.NEPALI_CALENDAR_DATA[nepaliYear][nepaliMonth] - (daysSinceJanFirstToEndOfNepaliMonth - gregorianDayOfYear);\n return this.newDate(nepaliYear, nepaliMonth, nepaliDayOfMonth);\n },\n /** Creates missing data in the NEPALI_CALENDAR_DATA table.\n This data will not be correct but just give an estimated result. Mostly -/+ 1 day\n @private\n @param nepaliYear {number} The missing year number. */\n _createMissingCalendarData: function(nepaliYear) {\n var tmp_calendar_data = this.daysPerMonth.slice(0);\n tmp_calendar_data.unshift(17);\n for (var nepaliYearToCreate = nepaliYear - 1; nepaliYearToCreate < nepaliYear + 2; nepaliYearToCreate++) {\n if (typeof this.NEPALI_CALENDAR_DATA[nepaliYearToCreate] === \"undefined\") {\n this.NEPALI_CALENDAR_DATA[nepaliYearToCreate] = tmp_calendar_data;\n }\n }\n },\n NEPALI_CALENDAR_DATA: {\n // These data are from http://www.ashesh.com.np\n 1970: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1971: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 1972: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1973: [19, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1974: [19, 31, 31, 32, 30, 31, 31, 30, 29, 30, 29, 30, 30],\n 1975: [18, 31, 31, 32, 32, 30, 31, 30, 29, 30, 29, 30, 30],\n 1976: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1977: [18, 31, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 1978: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1979: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1980: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1981: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1982: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1983: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1984: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1985: [18, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 1986: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1987: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 1988: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 1989: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 1990: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1991: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n // These data are from http://nepalicalendar.rat32.com/index.php\n 1992: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1993: [18, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 1994: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1995: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 1996: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 1997: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1998: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 1999: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2e3: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2001: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2002: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2003: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2004: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2005: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2006: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2007: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2008: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2009: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2010: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2011: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2012: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2013: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2014: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2015: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2016: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2017: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2018: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2019: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2020: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2021: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2022: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2023: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2024: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2025: [18, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2026: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2027: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2028: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2029: [18, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2030: [17, 31, 32, 31, 32, 31, 30, 30, 30, 30, 30, 30, 31],\n 2031: [17, 31, 32, 31, 32, 31, 31, 31, 31, 31, 31, 31, 31],\n 2032: [17, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32],\n 2033: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2034: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2035: [17, 30, 32, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2036: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2037: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2038: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2039: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2040: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2041: [18, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2042: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2043: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2044: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2045: [18, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2046: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2047: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2048: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2049: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2050: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2051: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2052: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2053: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2054: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2055: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 29, 30],\n 2056: [17, 31, 31, 32, 31, 32, 30, 30, 29, 30, 29, 30, 30],\n 2057: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2058: [17, 30, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2059: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2060: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2061: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2062: [17, 30, 32, 31, 32, 31, 31, 29, 30, 29, 30, 29, 31],\n 2063: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2064: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2065: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2066: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 29, 31],\n 2067: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2068: [17, 31, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2069: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2070: [17, 31, 31, 31, 32, 31, 31, 29, 30, 30, 29, 30, 30],\n 2071: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2072: [17, 31, 32, 31, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2073: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 31],\n 2074: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2075: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2076: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n 2077: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 29, 31],\n 2078: [17, 31, 31, 31, 32, 31, 31, 30, 29, 30, 29, 30, 30],\n 2079: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30],\n 2080: [16, 31, 32, 31, 32, 31, 30, 30, 30, 29, 29, 30, 30],\n // These data are from http://www.ashesh.com.np/nepali-calendar/\n 2081: [17, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2082: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2083: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2084: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2085: [17, 31, 32, 31, 32, 31, 31, 30, 30, 29, 30, 30, 30],\n 2086: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2087: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2088: [16, 30, 31, 32, 32, 30, 31, 30, 30, 29, 30, 30, 30],\n 2089: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2090: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2091: [16, 31, 31, 32, 31, 31, 31, 30, 30, 29, 30, 30, 30],\n 2092: [16, 31, 31, 32, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2093: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2094: [17, 31, 31, 32, 31, 31, 30, 30, 30, 29, 30, 30, 30],\n 2095: [17, 31, 31, 32, 31, 31, 31, 30, 29, 30, 30, 30, 30],\n 2096: [17, 30, 31, 32, 32, 31, 30, 30, 29, 30, 29, 30, 30],\n 2097: [17, 31, 32, 31, 32, 31, 30, 30, 30, 29, 30, 30, 30],\n 2098: [17, 31, 31, 32, 31, 31, 31, 29, 30, 29, 30, 30, 31],\n 2099: [17, 31, 31, 32, 31, 31, 31, 30, 29, 29, 30, 30, 30],\n 2100: [17, 31, 32, 31, 32, 30, 31, 30, 29, 30, 29, 30, 30]\n }\n });\n main.calendars.nepali = NepaliCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/persian.js\n var require_persian = __commonJS({\n \"node_modules/world-calendars/dist/calendars/persian.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function PersianCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n PersianCalendar.prototype = new main.baseCalendar();\n assign(PersianCalendar.prototype, {\n /** The calendar name.\n @memberof PersianCalendar */\n name: \"Persian\",\n /** Julian date of start of Persian epoch: 19 March 622 CE.\n @memberof PersianCalendar */\n jdEpoch: 19483205e-1,\n /** Days per month in a common year.\n @memberof PersianCalendar */\n daysPerMonth: [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29],\n /** true if has a year zero, false if not.\n @memberof PersianCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof PersianCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof PersianCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof PersianCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof PersianCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Persian\",\n epochs: [\"BP\", \"AP\"],\n monthNames: [\n \"Farvardin\",\n \"Ordibehesht\",\n \"Khordad\",\n \"Tir\",\n \"Mordad\",\n \"Shahrivar\",\n \"Mehr\",\n \"Aban\",\n \"Azar\",\n \"Day\",\n \"Bahman\",\n \"Esfand\"\n ],\n monthNamesShort: [\"Far\", \"Ord\", \"Kho\", \"Tir\", \"Mor\", \"Sha\", \"Meh\", \"Aba\", \"Aza\", \"Day\", \"Bah\", \"Esf\"],\n dayNames: [\"Yekshambe\", \"Doshambe\", \"Seshambe\", \"Ch\\xE6harshambe\", \"Panjshambe\", \"Jom'e\", \"Shambe\"],\n dayNamesShort: [\"Yek\", \"Do\", \"Se\", \"Ch\\xE6\", \"Panj\", \"Jom\", \"Sha\"],\n dayNamesMin: [\"Ye\", \"Do\", \"Se\", \"Ch\", \"Pa\", \"Jo\", \"Sh\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 6,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return ((date.year() - (date.year() > 0 ? 474 : 473)) % 2820 + 474 + 38) * 682 % 2816 < 682;\n },\n /** Determine the week of the year for a date.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-((checkDate.dayOfWeek() + 1) % 7), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a month.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 12 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof PersianCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof PersianCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n year = date.year();\n month = date.month();\n day = date.day();\n var epBase = year - (year >= 0 ? 474 : 473);\n var epYear = 474 + mod(epBase, 2820);\n return day + (month <= 7 ? (month - 1) * 31 : (month - 1) * 30 + 6) + Math.floor((epYear * 682 - 110) / 2816) + (epYear - 1) * 365 + Math.floor(epBase / 2820) * 1029983 + this.jdEpoch - 1;\n },\n /** Create a new date from a Julian date.\n @memberof PersianCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n jd = Math.floor(jd) + 0.5;\n var depoch = jd - this.toJD(475, 1, 1);\n var cycle = Math.floor(depoch / 1029983);\n var cyear = mod(depoch, 1029983);\n var ycycle = 2820;\n if (cyear !== 1029982) {\n var aux1 = Math.floor(cyear / 366);\n var aux2 = mod(cyear, 366);\n ycycle = Math.floor((2134 * aux1 + 2816 * aux2 + 2815) / 1028522) + aux1 + 1;\n }\n var year = ycycle + 2820 * cycle + 474;\n year = year <= 0 ? year - 1 : year;\n var yday = jd - this.toJD(year, 1, 1) + 1;\n var month = yday <= 186 ? Math.ceil(yday / 31) : Math.ceil((yday - 6) / 30);\n var day = jd - this.toJD(year, month, 1) + 1;\n return this.newDate(year, month, day);\n }\n });\n function mod(a, b) {\n return a - b * Math.floor(a / b);\n }\n main.calendars.persian = PersianCalendar;\n main.calendars.jalali = PersianCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/taiwan.js\n var require_taiwan = __commonJS({\n \"node_modules/world-calendars/dist/calendars/taiwan.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n var gregorianCalendar = main.instance();\n function TaiwanCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n TaiwanCalendar.prototype = new main.baseCalendar();\n assign(TaiwanCalendar.prototype, {\n /** The calendar name.\n @memberof TaiwanCalendar */\n name: \"Taiwan\",\n /** Julian date of start of Taiwan epoch: 1 January 1912 CE (Gregorian).\n @memberof TaiwanCalendar */\n jdEpoch: 24194025e-1,\n /** Difference in years between Taiwan and Gregorian calendars.\n @memberof TaiwanCalendar */\n yearsOffset: 1911,\n /** Days per month in a common year.\n @memberof TaiwanCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof TaiwanCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof TaiwanCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof TaiwanCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof TaiwanCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof TaiwanCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Taiwan\",\n epochs: [\"BROC\", \"ROC\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 1,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n /** Retrieve the number of days in a month.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof TaiwanCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n /** Create a new date from a Julian date.\n @memberof TaiwanCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n /** Convert Taiwanese to Gregorian year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Taiwanese year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n },\n /** Convert Gregorian to Taiwanese year.\n @memberof TaiwanCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Taiwanese year. */\n _g2tYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n }\n });\n main.calendars.taiwan = TaiwanCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/thai.js\n var require_thai = __commonJS({\n \"node_modules/world-calendars/dist/calendars/thai.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n var gregorianCalendar = main.instance();\n function ThaiCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n ThaiCalendar.prototype = new main.baseCalendar();\n assign(ThaiCalendar.prototype, {\n /** The calendar name.\n @memberof ThaiCalendar */\n name: \"Thai\",\n /** Julian date of start of Thai epoch: 1 January 543 BCE (Gregorian).\n @memberof ThaiCalendar */\n jdEpoch: 15230985e-1,\n /** Difference in years between Thai and Gregorian calendars.\n @memberof ThaiCalendar */\n yearsOffset: 543,\n /** Days per month in a common year.\n @memberof ThaiCalendar */\n daysPerMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n /** true if has a year zero, false if not.\n @memberof ThaiCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof ThaiCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof ThaiCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof ThaiCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof ThaiCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Thai\",\n epochs: [\"BBE\", \"BE\"],\n monthNames: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ],\n monthNamesShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n dayNames: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n dayNamesShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n dayNamesMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n digits: null,\n dateFormat: \"dd/mm/yyyy\",\n firstDay: 0,\n isRTL: false\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.leapYear(year);\n },\n /** Determine the week of the year for a date - ISO 8601.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.weekOfYear(year, date.month(), date.day());\n },\n /** Retrieve the number of days in a month.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n return this.daysPerMonth[date.month() - 1] + (date.month() === 2 && this.leapYear(date.year()) ? 1 : 0);\n },\n /** Determine whether this date is a week day.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return (this.dayOfWeek(year, month, day) || 7) < 6;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof ThaiCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var year = this._t2gYear(date.year());\n return gregorianCalendar.toJD(year, date.month(), date.day());\n },\n /** Create a new date from a Julian date.\n @memberof ThaiCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var date = gregorianCalendar.fromJD(jd);\n var year = this._g2tYear(date.year());\n return this.newDate(year, date.month(), date.day());\n },\n /** Convert Thai to Gregorian year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Thai year.\n @return {number} The corresponding Gregorian year. */\n _t2gYear: function(year) {\n return year - this.yearsOffset - (year >= 1 && year <= this.yearsOffset ? 1 : 0);\n },\n /** Convert Gregorian to Thai year.\n @memberof ThaiCalendar\n @private\n @param year {number} The Gregorian year.\n @return {number} The corresponding Thai year. */\n _g2tYear: function(year) {\n return year + this.yearsOffset + (year >= -this.yearsOffset && year <= -1 ? 1 : 0);\n }\n });\n main.calendars.thai = ThaiCalendar;\n }\n });\n\n // node_modules/world-calendars/dist/calendars/ummalqura.js\n var require_ummalqura = __commonJS({\n \"node_modules/world-calendars/dist/calendars/ummalqura.js\"() {\n var main = require_main();\n var assign = require_object_assign();\n function UmmAlQuraCalendar(language) {\n this.local = this.regionalOptions[language || \"\"] || this.regionalOptions[\"\"];\n }\n UmmAlQuraCalendar.prototype = new main.baseCalendar();\n assign(UmmAlQuraCalendar.prototype, {\n /** The calendar name.\n @memberof UmmAlQuraCalendar */\n name: \"UmmAlQura\",\n //jdEpoch: 1948440, // Julian date of start of UmmAlQura epoch: 14 March 1937 CE\n //daysPerMonth: // Days per month in a common year, replaced by a method.\n /** true if has a year zero, false if not.\n @memberof UmmAlQuraCalendar */\n hasYearZero: false,\n /** The minimum month number.\n @memberof UmmAlQuraCalendar */\n minMonth: 1,\n /** The first month in the year.\n @memberof UmmAlQuraCalendar */\n firstMonth: 1,\n /** The minimum day number.\n @memberof UmmAlQuraCalendar */\n minDay: 1,\n /** Localisations for the plugin.\n Entries are objects indexed by the language code ('' being the default US/English).\n Each object has the following attributes.\n @memberof UmmAlQuraCalendar\n @property name {string} The calendar name.\n @property epochs {string[]} The epoch names.\n @property monthNames {string[]} The long names of the months of the year.\n @property monthNamesShort {string[]} The short names of the months of the year.\n @property dayNames {string[]} The long names of the days of the week.\n @property dayNamesShort {string[]} The short names of the days of the week.\n @property dayNamesMin {string[]} The minimal names of the days of the week.\n @property dateFormat {string} The date format for this calendar.\n See the options on formatDate for details.\n @property firstDay {number} The number of the first day of the week, starting at 0.\n @property isRTL {number} true if this localisation reads right-to-left. */\n regionalOptions: {\n // Localisations\n \"\": {\n name: \"Umm al-Qura\",\n epochs: [\"BH\", \"AH\"],\n monthNames: [\n \"Al-Muharram\",\n \"Safar\",\n \"Rabi' al-awwal\",\n \"Rabi' Al-Thani\",\n \"Jumada Al-Awwal\",\n \"Jumada Al-Thani\",\n \"Rajab\",\n \"Sha'aban\",\n \"Ramadan\",\n \"Shawwal\",\n \"Dhu al-Qi'dah\",\n \"Dhu al-Hijjah\"\n ],\n monthNamesShort: [\"Muh\", \"Saf\", \"Rab1\", \"Rab2\", \"Jum1\", \"Jum2\", \"Raj\", \"Sha'\", \"Ram\", \"Shaw\", \"DhuQ\", \"DhuH\"],\n dayNames: [\"Yawm al-Ahad\", \"Yawm al-Ithnain\", \"Yawm al-Thal\\u0101th\\u0101\\u2019\", \"Yawm al-Arba\\u2018\\u0101\\u2019\", \"Yawm al-Kham\\u012Bs\", \"Yawm al-Jum\\u2018a\", \"Yawm al-Sabt\"],\n dayNamesMin: [\"Ah\", \"Ith\", \"Th\", \"Ar\", \"Kh\", \"Ju\", \"Sa\"],\n digits: null,\n dateFormat: \"yyyy/mm/dd\",\n firstDay: 6,\n isRTL: true\n }\n },\n /** Determine whether this date is in a leap year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {boolean} true if this is a leap year, false if not.\n @throws Error if an invalid year or a different calendar used. */\n leapYear: function(year) {\n var date = this._validate(year, this.minMonth, this.minDay, main.local.invalidYear);\n return this.daysInYear(date.year()) === 355;\n },\n /** Determine the week of the year for a date.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {number} The week of the year.\n @throws Error if an invalid date or a different calendar used. */\n weekOfYear: function(year, month, day) {\n var checkDate = this.newDate(year, month, day);\n checkDate.add(-checkDate.dayOfWeek(), \"d\");\n return Math.floor((checkDate.dayOfYear() - 1) / 7) + 1;\n },\n /** Retrieve the number of days in a year.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @return {number} The number of days.\n @throws Error if an invalid year or a different calendar used. */\n daysInYear: function(year) {\n var daysCount = 0;\n for (var i = 1; i <= 12; i++) {\n daysCount += this.daysInMonth(year, i);\n }\n return daysCount;\n },\n /** Retrieve the number of days in a month.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year of the month.\n @param [month] {number} The month.\n @return {number} The number of days in this month.\n @throws Error if an invalid month/year or a different calendar used. */\n daysInMonth: function(year, month) {\n var date = this._validate(year, month, this.minDay, main.local.invalidMonth);\n var mcjdn = date.toJD() - 24e5 + 0.5;\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) {\n return ummalqura_dat[index] - ummalqura_dat[index - 1];\n }\n index++;\n }\n return 30;\n },\n /** Determine whether this date is a week day.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to examine or the year to examine.\n @param [month] {number} The month to examine.\n @param [day] {number} The day to examine.\n @return {boolean} true if a week day, false if not.\n @throws Error if an invalid date or a different calendar used. */\n weekDay: function(year, month, day) {\n return this.dayOfWeek(year, month, day) !== 5;\n },\n /** Retrieve the Julian date equivalent for this date,\n i.e. days since January 1, 4713 BCE Greenwich noon.\n @memberof UmmAlQuraCalendar\n @param year {CDate|number} The date to convert or the year to convert.\n @param [month] {number} The month to convert.\n @param [day] {number} The day to convert.\n @return {number} The equivalent Julian date.\n @throws Error if an invalid date or a different calendar used. */\n toJD: function(year, month, day) {\n var date = this._validate(year, month, day, main.local.invalidDate);\n var index = 12 * (date.year() - 1) + date.month() - 15292;\n var mcjdn = date.day() + ummalqura_dat[index - 1] - 1;\n return mcjdn + 24e5 - 0.5;\n },\n /** Create a new date from a Julian date.\n @memberof UmmAlQuraCalendar\n @param jd {number} The Julian date to convert.\n @return {CDate} The equivalent date. */\n fromJD: function(jd) {\n var mcjdn = jd - 24e5 + 0.5;\n var index = 0;\n for (var i = 0; i < ummalqura_dat.length; i++) {\n if (ummalqura_dat[i] > mcjdn) break;\n index++;\n }\n var lunation = index + 15292;\n var ii = Math.floor((lunation - 1) / 12);\n var year = ii + 1;\n var month = lunation - 12 * ii;\n var day = mcjdn - ummalqura_dat[index - 1] + 1;\n return this.newDate(year, month, day);\n },\n /** Determine whether a date is valid for this calendar.\n @memberof UmmAlQuraCalendar\n @param year {number} The year to examine.\n @param month {number} The month to examine.\n @param day {number} The day to examine.\n @return {boolean} true if a valid date, false if not. */\n isValid: function(year, month, day) {\n var valid = main.baseCalendar.prototype.isValid.apply(this, arguments);\n if (valid) {\n year = year.year != null ? year.year : year;\n valid = year >= 1276 && year <= 1500;\n }\n return valid;\n },\n /** Check that a candidate date is from the same calendar and is valid.\n @memberof UmmAlQuraCalendar\n @private\n @param year {CDate|number} The date to validate or the year to validate.\n @param month {number} The month to validate.\n @param day {number} The day to validate.\n @param error {string} Error message if invalid.\n @throws Error if different calendars used or invalid date. */\n _validate: function(year, month, day, error) {\n var date = main.baseCalendar.prototype._validate.apply(this, arguments);\n if (date.year < 1276 || date.year > 1500) {\n throw error.replace(/\\{0\\}/, this.local.name);\n }\n return date;\n }\n });\n main.calendars.ummalqura = UmmAlQuraCalendar;\n var ummalqura_dat = [\n 20,\n 50,\n 79,\n 109,\n 138,\n 168,\n 197,\n 227,\n 256,\n 286,\n 315,\n 345,\n 374,\n 404,\n 433,\n 463,\n 492,\n 522,\n 551,\n 581,\n 611,\n 641,\n 670,\n 700,\n 729,\n 759,\n 788,\n 818,\n 847,\n 877,\n 906,\n 936,\n 965,\n 995,\n 1024,\n 1054,\n 1083,\n 1113,\n 1142,\n 1172,\n 1201,\n 1231,\n 1260,\n 1290,\n 1320,\n 1350,\n 1379,\n 1409,\n 1438,\n 1468,\n 1497,\n 1527,\n 1556,\n 1586,\n 1615,\n 1645,\n 1674,\n 1704,\n 1733,\n 1763,\n 1792,\n 1822,\n 1851,\n 1881,\n 1910,\n 1940,\n 1969,\n 1999,\n 2028,\n 2058,\n 2087,\n 2117,\n 2146,\n 2176,\n 2205,\n 2235,\n 2264,\n 2294,\n 2323,\n 2353,\n 2383,\n 2413,\n 2442,\n 2472,\n 2501,\n 2531,\n 2560,\n 2590,\n 2619,\n 2649,\n 2678,\n 2708,\n 2737,\n 2767,\n 2796,\n 2826,\n 2855,\n 2885,\n 2914,\n 2944,\n 2973,\n 3003,\n 3032,\n 3062,\n 3091,\n 3121,\n 3150,\n 3180,\n 3209,\n 3239,\n 3268,\n 3298,\n 3327,\n 3357,\n 3386,\n 3416,\n 3446,\n 3476,\n 3505,\n 3535,\n 3564,\n 3594,\n 3623,\n 3653,\n 3682,\n 3712,\n 3741,\n 3771,\n 3800,\n 3830,\n 3859,\n 3889,\n 3918,\n 3948,\n 3977,\n 4007,\n 4036,\n 4066,\n 4095,\n 4125,\n 4155,\n 4185,\n 4214,\n 4244,\n 4273,\n 4303,\n 4332,\n 4362,\n 4391,\n 4421,\n 4450,\n 4480,\n 4509,\n 4539,\n 4568,\n 4598,\n 4627,\n 4657,\n 4686,\n 4716,\n 4745,\n 4775,\n 4804,\n 4834,\n 4863,\n 4893,\n 4922,\n 4952,\n 4981,\n 5011,\n 5040,\n 5070,\n 5099,\n 5129,\n 5158,\n 5188,\n 5218,\n 5248,\n 5277,\n 5307,\n 5336,\n 5366,\n 5395,\n 5425,\n 5454,\n 5484,\n 5513,\n 5543,\n 5572,\n 5602,\n 5631,\n 5661,\n 5690,\n 5720,\n 5749,\n 5779,\n 5808,\n 5838,\n 5867,\n 5897,\n 5926,\n 5956,\n 5985,\n 6015,\n 6044,\n 6074,\n 6103,\n 6133,\n 6162,\n 6192,\n 6221,\n 6251,\n 6281,\n 6311,\n 6340,\n 6370,\n 6399,\n 6429,\n 6458,\n 6488,\n 6517,\n 6547,\n 6576,\n 6606,\n 6635,\n 6665,\n 6694,\n 6724,\n 6753,\n 6783,\n 6812,\n 6842,\n 6871,\n 6901,\n 6930,\n 6960,\n 6989,\n 7019,\n 7048,\n 7078,\n 7107,\n 7137,\n 7166,\n 7196,\n 7225,\n 7255,\n 7284,\n 7314,\n 7344,\n 7374,\n 7403,\n 7433,\n 7462,\n 7492,\n 7521,\n 7551,\n 7580,\n 7610,\n 7639,\n 7669,\n 7698,\n 7728,\n 7757,\n 7787,\n 7816,\n 7846,\n 7875,\n 7905,\n 7934,\n 7964,\n 7993,\n 8023,\n 8053,\n 8083,\n 8112,\n 8142,\n 8171,\n 8201,\n 8230,\n 8260,\n 8289,\n 8319,\n 8348,\n 8378,\n 8407,\n 8437,\n 8466,\n 8496,\n 8525,\n 8555,\n 8584,\n 8614,\n 8643,\n 8673,\n 8702,\n 8732,\n 8761,\n 8791,\n 8821,\n 8850,\n 8880,\n 8909,\n 8938,\n 8968,\n 8997,\n 9027,\n 9056,\n 9086,\n 9115,\n 9145,\n 9175,\n 9205,\n 9234,\n 9264,\n 9293,\n 9322,\n 9352,\n 9381,\n 9410,\n 9440,\n 9470,\n 9499,\n 9529,\n 9559,\n 9589,\n 9618,\n 9648,\n 9677,\n 9706,\n 9736,\n 9765,\n 9794,\n 9824,\n 9853,\n 9883,\n 9913,\n 9943,\n 9972,\n 10002,\n 10032,\n 10061,\n 10090,\n 10120,\n 10149,\n 10178,\n 10208,\n 10237,\n 10267,\n 10297,\n 10326,\n 10356,\n 10386,\n 10415,\n 10445,\n 10474,\n 10504,\n 10533,\n 10562,\n 10592,\n 10621,\n 10651,\n 10680,\n 10710,\n 10740,\n 10770,\n 10799,\n 10829,\n 10858,\n 10888,\n 10917,\n 10947,\n 10976,\n 11005,\n 11035,\n 11064,\n 11094,\n 11124,\n 11153,\n 11183,\n 11213,\n 11242,\n 11272,\n 11301,\n 11331,\n 11360,\n 11389,\n 11419,\n 11448,\n 11478,\n 11507,\n 11537,\n 11567,\n 11596,\n 11626,\n 11655,\n 11685,\n 11715,\n 11744,\n 11774,\n 11803,\n 11832,\n 11862,\n 11891,\n 11921,\n 11950,\n 11980,\n 12010,\n 12039,\n 12069,\n 12099,\n 12128,\n 12158,\n 12187,\n 12216,\n 12246,\n 12275,\n 12304,\n 12334,\n 12364,\n 12393,\n 12423,\n 12453,\n 12483,\n 12512,\n 12542,\n 12571,\n 12600,\n 12630,\n 12659,\n 12688,\n 12718,\n 12747,\n 12777,\n 12807,\n 12837,\n 12866,\n 12896,\n 12926,\n 12955,\n 12984,\n 13014,\n 13043,\n 13072,\n 13102,\n 13131,\n 13161,\n 13191,\n 13220,\n 13250,\n 13280,\n 13310,\n 13339,\n 13368,\n 13398,\n 13427,\n 13456,\n 13486,\n 13515,\n 13545,\n 13574,\n 13604,\n 13634,\n 13664,\n 13693,\n 13723,\n 13752,\n 13782,\n 13811,\n 13840,\n 13870,\n 13899,\n 13929,\n 13958,\n 13988,\n 14018,\n 14047,\n 14077,\n 14107,\n 14136,\n 14166,\n 14195,\n 14224,\n 14254,\n 14283,\n 14313,\n 14342,\n 14372,\n 14401,\n 14431,\n 14461,\n 14490,\n 14520,\n 14550,\n 14579,\n 14609,\n 14638,\n 14667,\n 14697,\n 14726,\n 14756,\n 14785,\n 14815,\n 14844,\n 14874,\n 14904,\n 14933,\n 14963,\n 14993,\n 15021,\n 15051,\n 15081,\n 15110,\n 15140,\n 15169,\n 15199,\n 15228,\n 15258,\n 15287,\n 15317,\n 15347,\n 15377,\n 15406,\n 15436,\n 15465,\n 15494,\n 15524,\n 15553,\n 15582,\n 15612,\n 15641,\n 15671,\n 15701,\n 15731,\n 15760,\n 15790,\n 15820,\n 15849,\n 15878,\n 15908,\n 15937,\n 15966,\n 15996,\n 16025,\n 16055,\n 16085,\n 16114,\n 16144,\n 16174,\n 16204,\n 16233,\n 16262,\n 16292,\n 16321,\n 16350,\n 16380,\n 16409,\n 16439,\n 16468,\n 16498,\n 16528,\n 16558,\n 16587,\n 16617,\n 16646,\n 16676,\n 16705,\n 16734,\n 16764,\n 16793,\n 16823,\n 16852,\n 16882,\n 16912,\n 16941,\n 16971,\n 17001,\n 17030,\n 17060,\n 17089,\n 17118,\n 17148,\n 17177,\n 17207,\n 17236,\n 17266,\n 17295,\n 17325,\n 17355,\n 17384,\n 17414,\n 17444,\n 17473,\n 17502,\n 17532,\n 17561,\n 17591,\n 17620,\n 17650,\n 17679,\n 17709,\n 17738,\n 17768,\n 17798,\n 17827,\n 17857,\n 17886,\n 17916,\n 17945,\n 17975,\n 18004,\n 18034,\n 18063,\n 18093,\n 18122,\n 18152,\n 18181,\n 18211,\n 18241,\n 18270,\n 18300,\n 18330,\n 18359,\n 18388,\n 18418,\n 18447,\n 18476,\n 18506,\n 18535,\n 18565,\n 18595,\n 18625,\n 18654,\n 18684,\n 18714,\n 18743,\n 18772,\n 18802,\n 18831,\n 18860,\n 18890,\n 18919,\n 18949,\n 18979,\n 19008,\n 19038,\n 19068,\n 19098,\n 19127,\n 19156,\n 19186,\n 19215,\n 19244,\n 19274,\n 19303,\n 19333,\n 19362,\n 19392,\n 19422,\n 19452,\n 19481,\n 19511,\n 19540,\n 19570,\n 19599,\n 19628,\n 19658,\n 19687,\n 19717,\n 19746,\n 19776,\n 19806,\n 19836,\n 19865,\n 19895,\n 19924,\n 19954,\n 19983,\n 20012,\n 20042,\n 20071,\n 20101,\n 20130,\n 20160,\n 20190,\n 20219,\n 20249,\n 20279,\n 20308,\n 20338,\n 20367,\n 20396,\n 20426,\n 20455,\n 20485,\n 20514,\n 20544,\n 20573,\n 20603,\n 20633,\n 20662,\n 20692,\n 20721,\n 20751,\n 20780,\n 20810,\n 20839,\n 20869,\n 20898,\n 20928,\n 20957,\n 20987,\n 21016,\n 21046,\n 21076,\n 21105,\n 21135,\n 21164,\n 21194,\n 21223,\n 21253,\n 21282,\n 21312,\n 21341,\n 21371,\n 21400,\n 21430,\n 21459,\n 21489,\n 21519,\n 21548,\n 21578,\n 21607,\n 21637,\n 21666,\n 21696,\n 21725,\n 21754,\n 21784,\n 21813,\n 21843,\n 21873,\n 21902,\n 21932,\n 21962,\n 21991,\n 22021,\n 22050,\n 22080,\n 22109,\n 22138,\n 22168,\n 22197,\n 22227,\n 22256,\n 22286,\n 22316,\n 22346,\n 22375,\n 22405,\n 22434,\n 22464,\n 22493,\n 22522,\n 22552,\n 22581,\n 22611,\n 22640,\n 22670,\n 22700,\n 22730,\n 22759,\n 22789,\n 22818,\n 22848,\n 22877,\n 22906,\n 22936,\n 22965,\n 22994,\n 23024,\n 23054,\n 23083,\n 23113,\n 23143,\n 23173,\n 23202,\n 23232,\n 23261,\n 23290,\n 23320,\n 23349,\n 23379,\n 23408,\n 23438,\n 23467,\n 23497,\n 23527,\n 23556,\n 23586,\n 23616,\n 23645,\n 23674,\n 23704,\n 23733,\n 23763,\n 23792,\n 23822,\n 23851,\n 23881,\n 23910,\n 23940,\n 23970,\n 23999,\n 24029,\n 24058,\n 24088,\n 24117,\n 24147,\n 24176,\n 24206,\n 24235,\n 24265,\n 24294,\n 24324,\n 24353,\n 24383,\n 24413,\n 24442,\n 24472,\n 24501,\n 24531,\n 24560,\n 24590,\n 24619,\n 24648,\n 24678,\n 24707,\n 24737,\n 24767,\n 24796,\n 24826,\n 24856,\n 24885,\n 24915,\n 24944,\n 24974,\n 25003,\n 25032,\n 25062,\n 25091,\n 25121,\n 25150,\n 25180,\n 25210,\n 25240,\n 25269,\n 25299,\n 25328,\n 25358,\n 25387,\n 25416,\n 25446,\n 25475,\n 25505,\n 25534,\n 25564,\n 25594,\n 25624,\n 25653,\n 25683,\n 25712,\n 25742,\n 25771,\n 25800,\n 25830,\n 25859,\n 25888,\n 25918,\n 25948,\n 25977,\n 26007,\n 26037,\n 26067,\n 26096,\n 26126,\n 26155,\n 26184,\n 26214,\n 26243,\n 26272,\n 26302,\n 26332,\n 26361,\n 26391,\n 26421,\n 26451,\n 26480,\n 26510,\n 26539,\n 26568,\n 26598,\n 26627,\n 26656,\n 26686,\n 26715,\n 26745,\n 26775,\n 26805,\n 26834,\n 26864,\n 26893,\n 26923,\n 26952,\n 26982,\n 27011,\n 27041,\n 27070,\n 27099,\n 27129,\n 27159,\n 27188,\n 27218,\n 27248,\n 27277,\n 27307,\n 27336,\n 27366,\n 27395,\n 27425,\n 27454,\n 27484,\n 27513,\n 27542,\n 27572,\n 27602,\n 27631,\n 27661,\n 27691,\n 27720,\n 27750,\n 27779,\n 27809,\n 27838,\n 27868,\n 27897,\n 27926,\n 27956,\n 27985,\n 28015,\n 28045,\n 28074,\n 28104,\n 28134,\n 28163,\n 28193,\n 28222,\n 28252,\n 28281,\n 28310,\n 28340,\n 28369,\n 28399,\n 28428,\n 28458,\n 28488,\n 28517,\n 28547,\n 28577,\n // From 1356\n 28607,\n 28636,\n 28665,\n 28695,\n 28724,\n 28754,\n 28783,\n 28813,\n 28843,\n 28872,\n 28901,\n 28931,\n 28960,\n 28990,\n 29019,\n 29049,\n 29078,\n 29108,\n 29137,\n 29167,\n 29196,\n 29226,\n 29255,\n 29285,\n 29315,\n 29345,\n 29375,\n 29404,\n 29434,\n 29463,\n 29492,\n 29522,\n 29551,\n 29580,\n 29610,\n 29640,\n 29669,\n 29699,\n 29729,\n 29759,\n 29788,\n 29818,\n 29847,\n 29876,\n 29906,\n 29935,\n 29964,\n 29994,\n 30023,\n 30053,\n 30082,\n 30112,\n 30141,\n 30171,\n 30200,\n 30230,\n 30259,\n 30289,\n 30318,\n 30348,\n 30378,\n 30408,\n 30437,\n 30467,\n 30496,\n 30526,\n 30555,\n 30585,\n 30614,\n 30644,\n 30673,\n 30703,\n 30732,\n 30762,\n 30791,\n 30821,\n 30850,\n 30880,\n 30909,\n 30939,\n 30968,\n 30998,\n 31027,\n 31057,\n 31086,\n 31116,\n 31145,\n 31175,\n 31204,\n 31234,\n 31263,\n 31293,\n 31322,\n 31352,\n 31381,\n 31411,\n 31441,\n 31471,\n 31500,\n 31530,\n 31559,\n 31589,\n 31618,\n 31648,\n 31676,\n 31706,\n 31736,\n 31766,\n 31795,\n 31825,\n 31854,\n 31884,\n 31913,\n 31943,\n 31972,\n 32002,\n 32031,\n 32061,\n 32090,\n 32120,\n 32150,\n 32180,\n 32209,\n 32239,\n 32268,\n 32298,\n 32327,\n 32357,\n 32386,\n 32416,\n 32445,\n 32475,\n 32504,\n 32534,\n 32563,\n 32593,\n 32622,\n 32652,\n 32681,\n 32711,\n 32740,\n 32770,\n 32799,\n 32829,\n 32858,\n 32888,\n 32917,\n 32947,\n 32976,\n 33006,\n 33035,\n 33065,\n 33094,\n 33124,\n 33153,\n 33183,\n 33213,\n 33243,\n 33272,\n 33302,\n 33331,\n 33361,\n 33390,\n 33420,\n 33450,\n 33479,\n 33509,\n 33539,\n 33568,\n 33598,\n 33627,\n 33657,\n 33686,\n 33716,\n 33745,\n 33775,\n 33804,\n 33834,\n 33863,\n 33893,\n 33922,\n 33952,\n 33981,\n 34011,\n 34040,\n 34069,\n 34099,\n 34128,\n 34158,\n 34187,\n 34217,\n 34247,\n 34277,\n 34306,\n 34336,\n 34365,\n 34395,\n 34424,\n 34454,\n 34483,\n 34512,\n 34542,\n 34571,\n 34601,\n 34631,\n 34660,\n 34690,\n 34719,\n 34749,\n 34778,\n 34808,\n 34837,\n 34867,\n 34896,\n 34926,\n 34955,\n 34985,\n 35015,\n 35044,\n 35074,\n 35103,\n 35133,\n 35162,\n 35192,\n 35222,\n 35251,\n 35280,\n 35310,\n 35340,\n 35370,\n 35399,\n 35429,\n 35458,\n 35488,\n 35517,\n 35547,\n 35576,\n 35605,\n 35635,\n 35665,\n 35694,\n 35723,\n 35753,\n 35782,\n 35811,\n 35841,\n 35871,\n 35901,\n 35930,\n 35960,\n 35989,\n 36019,\n 36048,\n 36078,\n 36107,\n 36136,\n 36166,\n 36195,\n 36225,\n 36254,\n 36284,\n 36314,\n 36343,\n 36373,\n 36403,\n 36433,\n 36462,\n 36492,\n 36521,\n 36551,\n 36580,\n 36610,\n 36639,\n 36669,\n 36698,\n 36728,\n 36757,\n 36786,\n 36816,\n 36845,\n 36875,\n 36904,\n 36934,\n 36963,\n 36993,\n 37022,\n 37052,\n 37081,\n 37111,\n 37141,\n 37170,\n 37200,\n 37229,\n 37259,\n 37288,\n 37318,\n 37347,\n 37377,\n 37406,\n 37436,\n 37465,\n 37495,\n 37524,\n 37554,\n 37584,\n 37613,\n 37643,\n 37672,\n 37701,\n 37731,\n 37760,\n 37790,\n 37819,\n 37849,\n 37878,\n 37908,\n 37938,\n 37967,\n 37997,\n 38027,\n 38056,\n 38085,\n 38115,\n 38144,\n 38174,\n 38203,\n 38233,\n 38262,\n 38292,\n 38322,\n 38351,\n 38381,\n 38410,\n 38440,\n 38469,\n 38499,\n 38528,\n 38558,\n 38587,\n 38617,\n 38646,\n 38676,\n 38705,\n 38735,\n 38764,\n 38794,\n 38823,\n 38853,\n 38882,\n 38912,\n 38941,\n 38971,\n 39001,\n 39030,\n 39059,\n 39089,\n 39118,\n 39148,\n 39178,\n 39208,\n 39237,\n 39267,\n 39297,\n 39326,\n 39355,\n 39385,\n 39414,\n 39444,\n 39473,\n 39503,\n 39532,\n 39562,\n 39592,\n 39621,\n 39650,\n 39680,\n 39709,\n 39739,\n 39768,\n 39798,\n 39827,\n 39857,\n 39886,\n 39916,\n 39946,\n 39975,\n 40005,\n 40035,\n 40064,\n 40094,\n 40123,\n 40153,\n 40182,\n 40212,\n 40241,\n 40271,\n 40300,\n 40330,\n 40359,\n 40389,\n 40418,\n 40448,\n 40477,\n 40507,\n 40536,\n 40566,\n 40595,\n 40625,\n 40655,\n 40685,\n 40714,\n 40744,\n 40773,\n 40803,\n 40832,\n 40862,\n 40892,\n 40921,\n 40951,\n 40980,\n 41009,\n 41039,\n 41068,\n 41098,\n 41127,\n 41157,\n 41186,\n 41216,\n 41245,\n 41275,\n 41304,\n 41334,\n 41364,\n 41393,\n 41422,\n 41452,\n 41481,\n 41511,\n 41540,\n 41570,\n 41599,\n 41629,\n 41658,\n 41688,\n 41718,\n 41748,\n 41777,\n 41807,\n 41836,\n 41865,\n 41894,\n 41924,\n 41953,\n 41983,\n 42012,\n 42042,\n 42072,\n 42102,\n 42131,\n 42161,\n 42190,\n 42220,\n 42249,\n 42279,\n 42308,\n 42337,\n 42367,\n 42397,\n 42426,\n 42456,\n 42485,\n 42515,\n 42545,\n 42574,\n 42604,\n 42633,\n 42662,\n 42692,\n 42721,\n 42751,\n 42780,\n 42810,\n 42839,\n 42869,\n 42899,\n 42929,\n 42958,\n 42988,\n 43017,\n 43046,\n 43076,\n 43105,\n 43135,\n 43164,\n 43194,\n 43223,\n 43253,\n 43283,\n 43312,\n 43342,\n 43371,\n 43401,\n 43430,\n 43460,\n 43489,\n 43519,\n 43548,\n 43578,\n 43607,\n 43637,\n 43666,\n 43696,\n 43726,\n 43755,\n 43785,\n 43814,\n 43844,\n 43873,\n 43903,\n 43932,\n 43962,\n 43991,\n 44021,\n 44050,\n 44080,\n 44109,\n 44139,\n 44169,\n 44198,\n 44228,\n 44258,\n 44287,\n 44317,\n 44346,\n 44375,\n 44405,\n 44434,\n 44464,\n 44493,\n 44523,\n 44553,\n 44582,\n 44612,\n 44641,\n 44671,\n 44700,\n 44730,\n 44759,\n 44788,\n 44818,\n 44847,\n 44877,\n 44906,\n 44936,\n 44966,\n 44996,\n 45025,\n 45055,\n 45084,\n 45114,\n 45143,\n 45172,\n 45202,\n 45231,\n 45261,\n 45290,\n 45320,\n 45350,\n 45380,\n 45409,\n 45439,\n 45468,\n 45498,\n 45527,\n 45556,\n 45586,\n 45615,\n 45644,\n 45674,\n 45704,\n 45733,\n 45763,\n 45793,\n 45823,\n 45852,\n 45882,\n 45911,\n 45940,\n 45970,\n 45999,\n 46028,\n 46058,\n 46088,\n 46117,\n 46147,\n 46177,\n 46206,\n 46236,\n 46265,\n 46295,\n 46324,\n 46354,\n 46383,\n 46413,\n 46442,\n 46472,\n 46501,\n 46531,\n 46560,\n 46590,\n 46620,\n 46649,\n 46679,\n 46708,\n 46738,\n 46767,\n 46797,\n 46826,\n 46856,\n 46885,\n 46915,\n 46944,\n 46974,\n 47003,\n 47033,\n 47063,\n 47092,\n 47122,\n 47151,\n 47181,\n 47210,\n 47240,\n 47269,\n 47298,\n 47328,\n 47357,\n 47387,\n 47417,\n 47446,\n 47476,\n 47506,\n 47535,\n 47565,\n 47594,\n 47624,\n 47653,\n 47682,\n 47712,\n 47741,\n 47771,\n 47800,\n 47830,\n 47860,\n 47890,\n 47919,\n 47949,\n 47978,\n 48008,\n 48037,\n 48066,\n 48096,\n 48125,\n 48155,\n 48184,\n 48214,\n 48244,\n 48273,\n 48303,\n 48333,\n 48362,\n 48392,\n 48421,\n 48450,\n 48480,\n 48509,\n 48538,\n 48568,\n 48598,\n 48627,\n 48657,\n 48687,\n 48717,\n 48746,\n 48776,\n 48805,\n 48834,\n 48864,\n 48893,\n 48922,\n 48952,\n 48982,\n 49011,\n 49041,\n 49071,\n 49100,\n 49130,\n 49160,\n 49189,\n 49218,\n 49248,\n 49277,\n 49306,\n 49336,\n 49365,\n 49395,\n 49425,\n 49455,\n 49484,\n 49514,\n 49543,\n 49573,\n 49602,\n 49632,\n 49661,\n 49690,\n 49720,\n 49749,\n 49779,\n 49809,\n 49838,\n 49868,\n 49898,\n 49927,\n 49957,\n 49986,\n 50016,\n 50045,\n 50075,\n 50104,\n 50133,\n 50163,\n 50192,\n 50222,\n 50252,\n 50281,\n 50311,\n 50340,\n 50370,\n 50400,\n 50429,\n 50459,\n 50488,\n 50518,\n 50547,\n 50576,\n 50606,\n 50635,\n 50665,\n 50694,\n 50724,\n 50754,\n 50784,\n 50813,\n 50843,\n 50872,\n 50902,\n 50931,\n 50960,\n 50990,\n 51019,\n 51049,\n 51078,\n 51108,\n 51138,\n 51167,\n 51197,\n 51227,\n 51256,\n 51286,\n 51315,\n 51345,\n 51374,\n 51403,\n 51433,\n 51462,\n 51492,\n 51522,\n 51552,\n 51582,\n 51611,\n 51641,\n 51670,\n 51699,\n 51729,\n 51758,\n 51787,\n 51816,\n 51846,\n 51876,\n 51906,\n 51936,\n 51965,\n 51995,\n 52025,\n 52054,\n 52083,\n 52113,\n 52142,\n 52171,\n 52200,\n 52230,\n 52260,\n 52290,\n 52319,\n 52349,\n 52379,\n 52408,\n 52438,\n 52467,\n 52497,\n 52526,\n 52555,\n 52585,\n 52614,\n 52644,\n 52673,\n 52703,\n 52733,\n 52762,\n 52792,\n 52822,\n 52851,\n 52881,\n 52910,\n 52939,\n 52969,\n 52998,\n 53028,\n 53057,\n 53087,\n 53116,\n 53146,\n 53176,\n 53205,\n 53235,\n 53264,\n 53294,\n 53324,\n 53353,\n 53383,\n 53412,\n 53441,\n 53471,\n 53500,\n 53530,\n 53559,\n 53589,\n 53619,\n 53648,\n 53678,\n 53708,\n 53737,\n 53767,\n 53796,\n 53825,\n 53855,\n 53884,\n 53913,\n 53943,\n 53973,\n 54003,\n 54032,\n 54062,\n 54092,\n 54121,\n 54151,\n 54180,\n 54209,\n 54239,\n 54268,\n 54297,\n 54327,\n 54357,\n 54387,\n 54416,\n 54446,\n 54476,\n 54505,\n 54535,\n 54564,\n 54593,\n 54623,\n 54652,\n 54681,\n 54711,\n 54741,\n 54770,\n 54800,\n 54830,\n 54859,\n 54889,\n 54919,\n 54948,\n 54977,\n 55007,\n 55036,\n 55066,\n 55095,\n 55125,\n 55154,\n 55184,\n 55213,\n 55243,\n 55273,\n 55302,\n 55332,\n 55361,\n 55391,\n 55420,\n 55450,\n 55479,\n 55508,\n 55538,\n 55567,\n 55597,\n 55627,\n 55657,\n 55686,\n 55716,\n 55745,\n 55775,\n 55804,\n 55834,\n 55863,\n 55892,\n 55922,\n 55951,\n 55981,\n 56011,\n 56040,\n 56070,\n 56100,\n 56129,\n 56159,\n 56188,\n 56218,\n 56247,\n 56276,\n 56306,\n 56335,\n 56365,\n 56394,\n 56424,\n 56454,\n 56483,\n 56513,\n 56543,\n 56572,\n 56601,\n 56631,\n 56660,\n 56690,\n 56719,\n 56749,\n 56778,\n 56808,\n 56837,\n 56867,\n 56897,\n 56926,\n 56956,\n 56985,\n 57015,\n 57044,\n 57074,\n 57103,\n 57133,\n 57162,\n 57192,\n 57221,\n 57251,\n 57280,\n 57310,\n 57340,\n 57369,\n 57399,\n 57429,\n 57458,\n 57487,\n 57517,\n 57546,\n 57576,\n 57605,\n 57634,\n 57664,\n 57694,\n 57723,\n 57753,\n 57783,\n 57813,\n 57842,\n 57871,\n 57901,\n 57930,\n 57959,\n 57989,\n 58018,\n 58048,\n 58077,\n 58107,\n 58137,\n 58167,\n 58196,\n 58226,\n 58255,\n 58285,\n 58314,\n 58343,\n 58373,\n 58402,\n 58432,\n 58461,\n 58491,\n 58521,\n 58551,\n 58580,\n 58610,\n 58639,\n 58669,\n 58698,\n 58727,\n 58757,\n 58786,\n 58816,\n 58845,\n 58875,\n 58905,\n 58934,\n 58964,\n 58994,\n 59023,\n 59053,\n 59082,\n 59111,\n 59141,\n 59170,\n 59200,\n 59229,\n 59259,\n 59288,\n 59318,\n 59348,\n 59377,\n 59407,\n 59436,\n 59466,\n 59495,\n 59525,\n 59554,\n 59584,\n 59613,\n 59643,\n 59672,\n 59702,\n 59731,\n 59761,\n 59791,\n 59820,\n 59850,\n 59879,\n 59909,\n 59939,\n 59968,\n 59997,\n 60027,\n 60056,\n 60086,\n 60115,\n 60145,\n 60174,\n 60204,\n 60234,\n 60264,\n 60293,\n 60323,\n 60352,\n 60381,\n 60411,\n 60440,\n 60469,\n 60499,\n 60528,\n 60558,\n 60588,\n 60618,\n 60648,\n 60677,\n 60707,\n 60736,\n 60765,\n 60795,\n 60824,\n 60853,\n 60883,\n 60912,\n 60942,\n 60972,\n 61002,\n 61031,\n 61061,\n 61090,\n 61120,\n 61149,\n 61179,\n 61208,\n 61237,\n 61267,\n 61296,\n 61326,\n 61356,\n 61385,\n 61415,\n 61445,\n 61474,\n 61504,\n 61533,\n 61563,\n 61592,\n 61621,\n 61651,\n 61680,\n 61710,\n 61739,\n 61769,\n 61799,\n 61828,\n 61858,\n 61888,\n 61917,\n 61947,\n 61976,\n 62006,\n 62035,\n 62064,\n 62094,\n 62123,\n 62153,\n 62182,\n 62212,\n 62242,\n 62271,\n 62301,\n 62331,\n 62360,\n 62390,\n 62419,\n 62448,\n 62478,\n 62507,\n 62537,\n 62566,\n 62596,\n 62625,\n 62655,\n 62685,\n 62715,\n 62744,\n 62774,\n 62803,\n 62832,\n 62862,\n 62891,\n 62921,\n 62950,\n 62980,\n 63009,\n 63039,\n 63069,\n 63099,\n 63128,\n 63157,\n 63187,\n 63216,\n 63246,\n 63275,\n 63305,\n 63334,\n 63363,\n 63393,\n 63423,\n 63453,\n 63482,\n 63512,\n 63541,\n 63571,\n 63600,\n 63630,\n 63659,\n 63689,\n 63718,\n 63747,\n 63777,\n 63807,\n 63836,\n 63866,\n 63895,\n 63925,\n 63955,\n 63984,\n 64014,\n 64043,\n 64073,\n 64102,\n 64131,\n 64161,\n 64190,\n 64220,\n 64249,\n 64279,\n 64309,\n 64339,\n 64368,\n 64398,\n 64427,\n 64457,\n 64486,\n 64515,\n 64545,\n 64574,\n 64603,\n 64633,\n 64663,\n 64692,\n 64722,\n 64752,\n 64782,\n 64811,\n 64841,\n 64870,\n 64899,\n 64929,\n 64958,\n 64987,\n 65017,\n 65047,\n 65076,\n 65106,\n 65136,\n 65166,\n 65195,\n 65225,\n 65254,\n 65283,\n 65313,\n 65342,\n 65371,\n 65401,\n 65431,\n 65460,\n 65490,\n 65520,\n 65549,\n 65579,\n 65608,\n 65638,\n 65667,\n 65697,\n 65726,\n 65755,\n 65785,\n 65815,\n 65844,\n 65874,\n 65903,\n 65933,\n 65963,\n 65992,\n 66022,\n 66051,\n 66081,\n 66110,\n 66140,\n 66169,\n 66199,\n 66228,\n 66258,\n 66287,\n 66317,\n 66346,\n 66376,\n 66405,\n 66435,\n 66465,\n 66494,\n 66524,\n 66553,\n 66583,\n 66612,\n 66641,\n 66671,\n 66700,\n 66730,\n 66760,\n 66789,\n 66819,\n 66849,\n 66878,\n 66908,\n 66937,\n 66967,\n 66996,\n 67025,\n 67055,\n 67084,\n 67114,\n 67143,\n 67173,\n 67203,\n 67233,\n 67262,\n 67292,\n 67321,\n 67351,\n 67380,\n 67409,\n 67439,\n 67468,\n 67497,\n 67527,\n 67557,\n 67587,\n 67617,\n 67646,\n 67676,\n 67705,\n 67735,\n 67764,\n 67793,\n 67823,\n 67852,\n 67882,\n 67911,\n 67941,\n 67971,\n 68e3,\n 68030,\n 68060,\n 68089,\n 68119,\n 68148,\n 68177,\n 68207,\n 68236,\n 68266,\n 68295,\n 68325,\n 68354,\n 68384,\n 68414,\n 68443,\n 68473,\n 68502,\n 68532,\n 68561,\n 68591,\n 68620,\n 68650,\n 68679,\n 68708,\n 68738,\n 68768,\n 68797,\n 68827,\n 68857,\n 68886,\n 68916,\n 68946,\n 68975,\n 69004,\n 69034,\n 69063,\n 69092,\n 69122,\n 69152,\n 69181,\n 69211,\n 69240,\n 69270,\n 69300,\n 69330,\n 69359,\n 69388,\n 69418,\n 69447,\n 69476,\n 69506,\n 69535,\n 69565,\n 69595,\n 69624,\n 69654,\n 69684,\n 69713,\n 69743,\n 69772,\n 69802,\n 69831,\n 69861,\n 69890,\n 69919,\n 69949,\n 69978,\n 70008,\n 70038,\n 70067,\n 70097,\n 70126,\n 70156,\n 70186,\n 70215,\n 70245,\n 70274,\n 70303,\n 70333,\n 70362,\n 70392,\n 70421,\n 70451,\n 70481,\n 70510,\n 70540,\n 70570,\n 70599,\n 70629,\n 70658,\n 70687,\n 70717,\n 70746,\n 70776,\n 70805,\n 70835,\n 70864,\n 70894,\n 70924,\n 70954,\n 70983,\n 71013,\n 71042,\n 71071,\n 71101,\n 71130,\n 71159,\n 71189,\n 71218,\n 71248,\n 71278,\n 71308,\n 71337,\n 71367,\n 71397,\n 71426,\n 71455,\n 71485,\n 71514,\n 71543,\n 71573,\n 71602,\n 71632,\n 71662,\n 71691,\n 71721,\n 71751,\n 71781,\n 71810,\n 71839,\n 71869,\n 71898,\n 71927,\n 71957,\n 71986,\n 72016,\n 72046,\n 72075,\n 72105,\n 72135,\n 72164,\n 72194,\n 72223,\n 72253,\n 72282,\n 72311,\n 72341,\n 72370,\n 72400,\n 72429,\n 72459,\n 72489,\n 72518,\n 72548,\n 72577,\n 72607,\n 72637,\n 72666,\n 72695,\n 72725,\n 72754,\n 72784,\n 72813,\n 72843,\n 72872,\n 72902,\n 72931,\n 72961,\n 72991,\n 73020,\n 73050,\n 73080,\n 73109,\n 73139,\n 73168,\n 73197,\n 73227,\n 73256,\n 73286,\n 73315,\n 73345,\n 73375,\n 73404,\n 73434,\n 73464,\n 73493,\n 73523,\n 73552,\n 73581,\n 73611,\n 73640,\n 73669,\n 73699,\n 73729,\n 73758,\n 73788,\n 73818,\n 73848,\n 73877,\n 73907,\n 73936,\n 73965,\n 73995,\n 74024,\n 74053,\n 74083,\n 74113,\n 74142,\n 74172,\n 74202,\n 74231,\n 74261,\n 74291,\n 74320,\n 74349,\n 74379,\n 74408,\n 74437,\n 74467,\n 74497,\n 74526,\n 74556,\n 74586,\n 74615,\n 74645,\n 74675,\n 74704,\n 74733,\n 74763,\n 74792,\n 74822,\n 74851,\n 74881,\n 74910,\n 74940,\n 74969,\n 74999,\n 75029,\n 75058,\n 75088,\n 75117,\n 75147,\n 75176,\n 75206,\n 75235,\n 75264,\n 75294,\n 75323,\n 75353,\n 75383,\n 75412,\n 75442,\n 75472,\n 75501,\n 75531,\n 75560,\n 75590,\n 75619,\n 75648,\n 75678,\n 75707,\n 75737,\n 75766,\n 75796,\n 75826,\n 75856,\n 75885,\n 75915,\n 75944,\n 75974,\n 76003,\n 76032,\n 76062,\n 76091,\n 76121,\n 76150,\n 76180,\n 76210,\n 76239,\n 76269,\n 76299,\n 76328,\n 76358,\n 76387,\n 76416,\n 76446,\n 76475,\n 76505,\n 76534,\n 76564,\n 76593,\n 76623,\n 76653,\n 76682,\n 76712,\n 76741,\n 76771,\n 76801,\n 76830,\n 76859,\n 76889,\n 76918,\n 76948,\n 76977,\n 77007,\n 77036,\n 77066,\n 77096,\n 77125,\n 77155,\n 77185,\n 77214,\n 77243,\n 77273,\n 77302,\n 77332,\n 77361,\n 77390,\n 77420,\n 77450,\n 77479,\n 77509,\n 77539,\n 77569,\n 77598,\n 77627,\n 77657,\n 77686,\n 77715,\n 77745,\n 77774,\n 77804,\n 77833,\n 77863,\n 77893,\n 77923,\n 77952,\n 77982,\n 78011,\n 78041,\n 78070,\n 78099,\n 78129,\n 78158,\n 78188,\n 78217,\n 78247,\n 78277,\n 78307,\n 78336,\n 78366,\n 78395,\n 78425,\n 78454,\n 78483,\n 78513,\n 78542,\n 78572,\n 78601,\n 78631,\n 78661,\n 78690,\n 78720,\n 78750,\n 78779,\n 78808,\n 78838,\n 78867,\n 78897,\n 78926,\n 78956,\n 78985,\n 79015,\n 79044,\n 79074,\n 79104,\n 79133,\n 79163,\n 79192,\n 79222,\n 79251,\n 79281,\n 79310,\n 79340,\n 79369,\n 79399,\n 79428,\n 79458,\n 79487,\n 79517,\n 79546,\n 79576,\n 79606,\n 79635,\n 79665,\n 79695,\n 79724,\n 79753,\n 79783,\n 79812,\n 79841,\n 79871,\n 79900,\n 79930,\n 79960,\n 79990\n ];\n }\n });\n\n // src/components/calendars/calendars.js\n var require_calendars = __commonJS({\n \"src/components/calendars/calendars.js\"(exports, module) {\n \"use strict\";\n module.exports = require_main();\n require_plus();\n require_chinese();\n require_coptic();\n require_discworld();\n require_ethiopian();\n require_hebrew();\n require_islamic();\n require_julian();\n require_mayan();\n require_nanakshahi();\n require_nepali();\n require_persian();\n require_taiwan();\n require_thai();\n require_ummalqura();\n }\n });\n\n // src/components/calendars/index.js\n var require_calendars2 = __commonJS({\n \"src/components/calendars/index.js\"(exports, module) {\n \"use strict\";\n var calendars = require_calendars();\n var Lib = require_lib();\n var constants = require_numerical();\n var EPOCHJD = constants.EPOCHJD;\n var ONEDAY = constants.ONEDAY;\n var attributes = {\n valType: \"enumerated\",\n values: Lib.sortObjectKeys(calendars.calendars),\n editType: \"calc\",\n dflt: \"gregorian\"\n };\n var handleDefaults = function(contIn, contOut, attr, dflt) {\n var attrs = {};\n attrs[attr] = attributes;\n return Lib.coerce(contIn, contOut, attrs, attr, dflt);\n };\n var handleTraceDefaults = function(traceIn, traceOut, coords, layout) {\n for (var i = 0; i < coords.length; i++) {\n handleDefaults(traceIn, traceOut, coords[i] + \"calendar\", layout.calendar);\n }\n };\n var CANONICAL_TICK = {\n chinese: \"2000-01-01\",\n coptic: \"2000-01-01\",\n discworld: \"2000-01-01\",\n ethiopian: \"2000-01-01\",\n hebrew: \"5000-01-01\",\n islamic: \"1000-01-01\",\n julian: \"2000-01-01\",\n mayan: \"5000-01-01\",\n nanakshahi: \"1000-01-01\",\n nepali: \"2000-01-01\",\n persian: \"1000-01-01\",\n jalali: \"1000-01-01\",\n taiwan: \"1000-01-01\",\n thai: \"2000-01-01\",\n ummalqura: \"1400-01-01\"\n };\n var CANONICAL_SUNDAY = {\n chinese: \"2000-01-02\",\n coptic: \"2000-01-03\",\n discworld: \"2000-01-03\",\n ethiopian: \"2000-01-05\",\n hebrew: \"5000-01-01\",\n islamic: \"1000-01-02\",\n julian: \"2000-01-03\",\n mayan: \"5000-01-01\",\n nanakshahi: \"1000-01-05\",\n nepali: \"2000-01-05\",\n persian: \"1000-01-01\",\n jalali: \"1000-01-01\",\n taiwan: \"1000-01-04\",\n thai: \"2000-01-04\",\n ummalqura: \"1400-01-06\"\n };\n var DFLTRANGE = {\n chinese: [\"2000-01-01\", \"2001-01-01\"],\n coptic: [\"1700-01-01\", \"1701-01-01\"],\n discworld: [\"1800-01-01\", \"1801-01-01\"],\n ethiopian: [\"2000-01-01\", \"2001-01-01\"],\n hebrew: [\"5700-01-01\", \"5701-01-01\"],\n islamic: [\"1400-01-01\", \"1401-01-01\"],\n julian: [\"2000-01-01\", \"2001-01-01\"],\n mayan: [\"5200-01-01\", \"5201-01-01\"],\n nanakshahi: [\"0500-01-01\", \"0501-01-01\"],\n nepali: [\"2000-01-01\", \"2001-01-01\"],\n persian: [\"1400-01-01\", \"1401-01-01\"],\n jalali: [\"1400-01-01\", \"1401-01-01\"],\n taiwan: [\"0100-01-01\", \"0101-01-01\"],\n thai: [\"2500-01-01\", \"2501-01-01\"],\n ummalqura: [\"1400-01-01\", \"1401-01-01\"]\n };\n var UNKNOWN = \"##\";\n var d3ToWorldCalendars = {\n d: { 0: \"dd\", \"-\": \"d\" },\n // 2-digit or unpadded day of month\n e: { 0: \"d\", \"-\": \"d\" },\n // alternate, always unpadded day of month\n a: { 0: \"D\", \"-\": \"D\" },\n // short weekday name\n A: { 0: \"DD\", \"-\": \"DD\" },\n // full weekday name\n j: { 0: \"oo\", \"-\": \"o\" },\n // 3-digit or unpadded day of the year\n W: { 0: \"ww\", \"-\": \"w\" },\n // 2-digit or unpadded week of the year (Monday first)\n m: { 0: \"mm\", \"-\": \"m\" },\n // 2-digit or unpadded month number\n b: { 0: \"M\", \"-\": \"M\" },\n // short month name\n B: { 0: \"MM\", \"-\": \"MM\" },\n // full month name\n y: { 0: \"yy\", \"-\": \"yy\" },\n // 2-digit year (map unpadded to zero-padded)\n Y: { 0: \"yyyy\", \"-\": \"yyyy\" },\n // 4-digit year (map unpadded to zero-padded)\n U: UNKNOWN,\n // Sunday-first week of the year\n w: UNKNOWN,\n // day of the week [0(sunday),6]\n // combined format, we replace the date part with the world-calendar version\n // and the %X stays there for d3 to handle with time parts\n c: { 0: \"D M d %X yyyy\", \"-\": \"D M d %X yyyy\" },\n x: { 0: \"mm/dd/yyyy\", \"-\": \"mm/dd/yyyy\" }\n };\n function worldCalFmt(fmt, x, calendar) {\n var dateJD = Math.floor((x + 0.05) / ONEDAY) + EPOCHJD;\n var cDate = getCal(calendar).fromJD(dateJD);\n var i = 0;\n var modifier, directive, directiveLen, directiveObj, replacementPart;\n while ((i = fmt.indexOf(\"%\", i)) !== -1) {\n modifier = fmt.charAt(i + 1);\n if (modifier === \"0\" || modifier === \"-\" || modifier === \"_\") {\n directiveLen = 3;\n directive = fmt.charAt(i + 2);\n if (modifier === \"_\") modifier = \"-\";\n } else {\n directive = modifier;\n modifier = \"0\";\n directiveLen = 2;\n }\n directiveObj = d3ToWorldCalendars[directive];\n if (!directiveObj) {\n i += directiveLen;\n } else {\n if (directiveObj === UNKNOWN) replacementPart = UNKNOWN;\n else replacementPart = cDate.formatDate(directiveObj[modifier]);\n fmt = fmt.substr(0, i) + replacementPart + fmt.substr(i + directiveLen);\n i += replacementPart.length;\n }\n }\n return fmt;\n }\n var allCals = {};\n function getCal(calendar) {\n var calendarObj = allCals[calendar];\n if (calendarObj) return calendarObj;\n calendarObj = allCals[calendar] = calendars.instance(calendar);\n return calendarObj;\n }\n function makeAttrs(description) {\n return Lib.extendFlat({}, attributes, { description });\n }\n function makeTraceAttrsDescription(coord) {\n return \"Sets the calendar system to use with `\" + coord + \"` date data.\";\n }\n var xAttrs = {\n xcalendar: makeAttrs(makeTraceAttrsDescription(\"x\"))\n };\n var xyAttrs = Lib.extendFlat({}, xAttrs, {\n ycalendar: makeAttrs(makeTraceAttrsDescription(\"y\"))\n });\n var xyzAttrs = Lib.extendFlat({}, xyAttrs, {\n zcalendar: makeAttrs(makeTraceAttrsDescription(\"z\"))\n });\n var axisAttrs = makeAttrs([\n \"Sets the calendar system to use for `range` and `tick0`\",\n \"if this is a date axis. This does not set the calendar for\",\n \"interpreting data on this axis, that's specified in the trace\",\n \"or via the global `layout.calendar`\"\n ].join(\" \"));\n module.exports = {\n moduleType: \"component\",\n name: \"calendars\",\n schema: {\n traces: {\n scatter: xyAttrs,\n bar: xyAttrs,\n box: xyAttrs,\n heatmap: xyAttrs,\n contour: xyAttrs,\n histogram: xyAttrs,\n histogram2d: xyAttrs,\n histogram2dcontour: xyAttrs,\n scatter3d: xyzAttrs,\n surface: xyzAttrs,\n mesh3d: xyzAttrs,\n scattergl: xyAttrs,\n ohlc: xAttrs,\n candlestick: xAttrs\n },\n layout: {\n calendar: makeAttrs([\n \"Sets the default calendar system to use for interpreting and\",\n \"displaying dates throughout the plot.\"\n ].join(\" \"))\n },\n subplots: {\n xaxis: { calendar: axisAttrs },\n yaxis: { calendar: axisAttrs },\n scene: {\n xaxis: { calendar: axisAttrs },\n // TODO: it's actually redundant to include yaxis and zaxis here\n // because in the scene attributes these are the same object so merging\n // into one merges into them all. However, I left them in for parity with\n // cartesian, where yaxis is unused until we Plotschema.get() when we\n // use its presence or absence to determine whether to delete attributes\n // from yaxis if they only apply to x (rangeselector/rangeslider)\n yaxis: { calendar: axisAttrs },\n zaxis: { calendar: axisAttrs }\n },\n polar: {\n radialaxis: { calendar: axisAttrs }\n }\n }\n },\n layoutAttributes: attributes,\n handleDefaults,\n handleTraceDefaults,\n CANONICAL_SUNDAY,\n CANONICAL_TICK,\n DFLTRANGE,\n getCal,\n worldCalFmt\n };\n }\n });\n\n // lib/calendars.js\n var require_calendars3 = __commonJS({\n \"lib/calendars.js\"(exports, module) {\n \"use strict\";\n module.exports = require_calendars2();\n }\n });\n\n // lib/index.js\n var require_lib2 = __commonJS({\n \"lib/index.js\"(exports, module) {\n var Plotly = require_core2();\n Plotly.register([\n // traces\n require_bar2(),\n require_box2(),\n require_heatmap2(),\n require_histogram2(),\n require_histogram2d2(),\n require_histogram2dcontour2(),\n require_contour2(),\n require_scatterternary2(),\n require_violin2(),\n require_funnel2(),\n require_waterfall2(),\n require_image2(),\n require_pie2(),\n require_sunburst2(),\n require_treemap2(),\n require_icicle2(),\n require_funnelarea2(),\n require_scatter3d2(),\n require_surface2(),\n require_isosurface2(),\n require_volume2(),\n require_mesh3d2(),\n require_cone2(),\n require_streamtube2(),\n require_scattergeo2(),\n require_choropleth2(),\n require_scattergl2(),\n require_splom2(),\n require_parcoords3(),\n require_parcats3(),\n require_scattermapbox2(),\n require_choroplethmapbox2(),\n require_densitymapbox2(),\n require_scattermap2(),\n require_choroplethmap2(),\n require_densitymap2(),\n require_sankey2(),\n require_indicator2(),\n require_table2(),\n require_carpet2(),\n require_scattercarpet2(),\n require_contourcarpet2(),\n require_ohlc2(),\n require_candlestick2(),\n require_scatterpolar2(),\n require_scatterpolargl2(),\n require_barpolar2(),\n require_scattersmith2(),\n // components\n require_calendars3()\n ]);\n module.exports = Plotly;\n }\n });\n return require_lib2();\n})();\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\n/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/*!\n * pad-left \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT license.\n */\n/*!\n * repeat-string \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n/*! Bundled license information:\n\nnative-promise-only/lib/npo.src.js:\n (*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n *)\n\npolybooljs/index.js:\n (*\n * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n * @license MIT\n * @preserve Project Home: https://github.com/voidqk/polybooljs\n *)\n\nieee754/index.js:\n (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *)\n\nbuffer/index.js:\n (*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n *)\n\nsafe-buffer/index.js:\n (*! safe-buffer. MIT License. Feross Aboukhadijeh *)\n\nassert/build/internal/util/comparisons.js:\n (*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n *)\n\nobject-assign/index.js:\n (*\n object-assign\n (c) Sindre Sorhus\n @license MIT\n *)\n\nmaplibre-gl/dist/maplibre-gl.js:\n (**\n * MapLibre GL JS\n * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v4.7.1/LICENSE.txt\n *)\n*/\n\nwindow.Plotly = Plotly;\nreturn Plotly;\n}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _factory = _interopRequireDefault(require(\"./factory\"));\n\nvar _plotly = _interopRequireDefault(require(\"plotly.js/dist/plotly\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar PlotComponent = (0, _factory[\"default\"])(_plotly[\"default\"]);\nvar _default = PlotComponent;\nexports[\"default\"] = _default;\n//# sourceMappingURL=react-plotly.js.map"],"names":["base64Js","b64","lens","getLens","validLen","placeHoldersLen","tmp","i","arr","Arr","_byteLength","curByte","len","revLookup","charCodeAt","uint8","length","extraBytes","parts","maxChunkLength","len2","push","encodeChunk","lookup","join","Uint8Array","Array","code","Error","indexOf","start","end","num","output","ieee754","buffer","offset","isLE","mLen","nBytes","e","m","eLen","eMax","eBias","nBits","d","s","NaN","Infinity","Math","pow","value","c","rt","abs","isNaN","floor","log","LN2","base64","require$$0","require$$1","customInspectSymbol","Symbol","exports","Buffer","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","buf","Object","setPrototypeOf","prototype","arg","encodingOrOffset","TypeError","allocUnsafe","from","string","encoding","isEncoding","byteLength","actual","write","slice","fromString","ArrayBuffer","isView","arrayView","isInstance","copy","fromArrayBuffer","byteOffset","fromArrayLike","fromArrayView","SharedArrayBuffer","valueOf","b","obj","isBuffer","checked","numberIsNaN","type","isArray","data","fromObject","toPrimitive","assertSize","size","array","toString","mustMatch","arguments","loweredCase","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","this","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","bidirectionalIndexOf","val","dir","arrayIndexOf","call","lastIndexOf","indexSize","arrLength","valLength","String","read","readUInt16BE","foundIndex","found","j","hexWrite","Number","remaining","strLen","parsed","parseInt","substr","utf8Write","blitBuffer","asciiWrite","str","byteArray","asciiToBytes","base64Write","ucs2Write","units","hi","lo","utf16leToBytes","fromByteArray","min","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","apply","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","proto","foo","typedArraySupport","console","error","defineProperty","enumerable","get","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","a","x","y","concat","list","pos","set","swap16","swap32","swap64","toLocaleString","equals","inspect","max","replace","trim","target","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","_arr","ret","out","hexSliceLookupTable","bytes","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","BigInt","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","subarray","readUintLE","readUIntLE","mul","readUintBE","readUIntBE","readUint8","readUInt8","readUint16LE","readUInt16LE","readUint16BE","readUint32LE","readUInt32LE","readUint32BE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","first","last","boundsError","__pow","readBigUInt64BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUintLE","writeUIntLE","writeUintBE","writeUIntBE","writeUint8","writeUInt8","writeUint16LE","writeUInt16LE","writeUint16BE","writeUInt16BE","writeUint32LE","writeUInt32LE","writeUint32BE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","errors","E","sym","getMessage","Base","constructor","super","writable","configurable","name","stack","message","addNumericalSeparator","range","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","input","msg","received","isInteger","INVALID_BASE64_RE","leadSurrogate","toByteArray","split","base64clean","src","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","_typeof","iterator","Plotly","PlotlyComponent","_Component","subClass","superClass","create","_setPrototypeOf","_inherits","Derived","hasNativeReflectConstruct","_super","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","self","_assertThisInitialized","_possibleConstructorReturn","props","_this","instance","Constructor","_classCallCheck","p","Promise","resolve","resizeHandler","handlers","syncWindowResize","bind","syncEventHandlers","attachUpdateEvents","getRef","handleUpdate","figureCallback","updatePlotly","protoProps","descriptor","key","_defineProperties","_createClass","shouldInvokeResizeHandler","figureCallbackFunction","shouldAttachUpdateEvents","_this2","then","unmounting","el","react","layout","config","frames","err","onError","onInitialized","prevProps","numPrevFrames","numNextFrames","figureChanged","revisionDefined","revision","revisionChanged","onUpdate","onPurge","isBrowser","window","removeEventListener","removeUpdateEvents","purge","_this3","removeListener","updateEvents","forEach","updateEvent","on","_this4","callback","_this$el","_transitionData","_frames","invoke","_this5","useResizeHandler","Plots","resize","addEventListener","debug","gd","_this6","eventNames","eventName","prop","handler","hasHandler","addEventHandler","removeEventHandler","getPlotlyEventName","_react","createElement","id","divId","style","ref","className","Component","propTypes","_propTypes","arrayOf","object","number","func","bool","defaultProps","position","display","nodeInterop","__esModule","default","cache","_getRequireWildcardCache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","hasOwnProperty","desc","_interopRequireWildcard","WeakMap","cacheBabelInterop","cacheNodeInterop","o","__proto__","ReferenceError","getPrototypeOf","root","factory","__create","__defProp","__defProps","defineProperties","__getOwnPropDesc","__getOwnPropDescs","getOwnPropertyDescriptors","__getOwnPropNames","getOwnPropertyNames","__getOwnPropSymbols","getOwnPropertySymbols","__getProtoOf","__hasOwnProp","__propIsEnum","propertyIsEnumerable","__defNormalProp","__esm","__commonJS","cb","mod","__export","all","name2","__copyProps","to","except","__toCommonJS","require_version","version","require_npo_src","module","context","definition","builtInProp","cycle","scheduling_queue","ToString","timer","setImmediate","setTimeout","schedule","self2","add","drain","isThenable","_then","o_type","notify","chain","notifyIsolated","state","success","failure","reject","promise","triggered","def","def_wrapper","MakeDefWrapper","iteratePromises","resolver","rejecter","idx","idx2","MakeDef","Promise2","executor","__NPO__","resolve2","reject2","item","Item","next","f","PromisePrototype","msgs","count","module2","require_d3","d3","d3_arraySlice","d3_array","d3_document","document","d3_documentElement","node","ownerDocument","documentElement","d3_window","defaultView","childNodes","nodeType","Date","now","setProperty","d3_element_prototype","Element","d3_element_setAttribute","setAttribute","d3_element_setAttributeNS","setAttributeNS","d3_style_prototype","CSSStyleDeclaration","d3_style_setProperty","space","local","priority","d3_ascending","d3_number","d3_numeric","d3_bisector","left","mid","right","ascending","descending","extent","sum","mean","quantile","values","H","h","v","median","numbers","sort","variance","deviation","sqrt","d3_bisect","d3_transposeLength","bisectLeft","bisect","bisectRight","bisector","shuffle","i0","i1","t","random","permute","indexes","permutes","pairs","p1","transpose","matrix","row","zip","keys","map","entries","merge","arrays","merged","d3_class","ctor","properties","d3_Map","_","d3_map_escape","d3_map_unescape","d3_map_has","d3_map_remove","d3_map_keys","d3_map_size","d3_map_empty","d3_Set","d3_identity","d3_rebind","source","method","d3_vendorSymbol","charAt","toUpperCase","d3_vendorPrefixes","prefixName","stop","step","k","d3_range_integerScale","key2","remove","empty","nest","sortValues","rollup","sortKeys","mapType","depth","keyValue","setter","valuesByKey","keyValue2","values2","map2","sortKey","keyMap","order","behavior","rebind","d3_noop","d3_dispatch","d3_dispatch_event","dispatch","listeners","listenerByName","event","l","z","listener","d3_eventPreventDefault","preventDefault","d3_eventSource","sourceEvent","d3_eventDispatch","of","thiz","argumentz","e1","e0","requote","d3_requote_re","d3_subclass","property","d3_selection","groups","d3_selectionPrototype","d3_select","querySelector","d3_selectAll","querySelectorAll","d3_selectMatches","d3_selectMatcher","matches","n2","s2","Sizzle","matchesSelector","selection","select","d3_selection_selector","selector","d3_selection_selectorAll","subgroup","subnode","group","subgroups","parentNode","__data__","selectAll","d3_nsXhtml","d3_nsPrefix","svg","xhtml","xlink","xml","xmlns","d3_selection_attr","ns","qualify","removeAttributeNS","removeAttribute","d3_collapse","d3_selection_classedRe","RegExp","d3_selection_classes","d3_selection_classed","d3_selection_classedName","re","classList","getAttribute","lastIndex","test","d3_selection_style","removeProperty","d3_selection_property","d3_selection_creator","createElementNS","document2","namespace","namespaceURI","d3_selectionRemove","parent","removeChild","d3_selection_dataNode","d3_selection_filter","d3_selection_sortComparator","comparator","d3_selection_each","d3_selection_enter","d3_selection_enterPrototype","prefix","attr","getAttributeNS","each","classed","contains","getComputedStyle","getPropertyValue","text","textContent","html","innerHTML","append","appendChild","insert","before","insertBefore","group2","groupData","i2","node2","nodeData","n0","updateNodes","enterNodes","exitNodes","nodeByKeyValue","keyValues","update","enter","exit","datum","filter","nextSibling","args","d3_selection_on","capture","wrap","d3_selection_onListener","d3_selection_onFilters","onRemove","$","d3_selection_onFilter","match","name3","upgroup","j0","nodes","mouseenter","mouseleave","related","relatedTarget","compareDocumentPosition","d3_event_dragSelect","d3_event_dragId","d3_event_dragSuppress","click","w","suppressClick","off","mouse","container","d3_mousePoint","d3_mouse_bug44083","navigator","userAgent","changedTouches","ownerSVGElement","createSVGPoint","point","window2","scrollX","scrollY","ctm","top","margin","padding","border","getScreenCTM","pageX","pageY","clientX","clientY","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","d3_behavior_dragTouchId","identifier","touch","touches","drag","origin","mousedown","dragstart","touchstart","subject","move","dragOffset","that","correspondingElement","dragged","dragId","dragName","dragSubject","dx","dy","position1","position0","dragRestore","PI","d3_radians","d3_degrees","d3_asin","asin","d3_cosh","exp","SQRT2","interpolateZoom","p0","S","ux0","uy0","w0","ux1","uy1","w1","d2","d1","b0","b1","r0","r1","coshr0","u","d3_sinh","duration","zoom","translate0","center0","center","mousewheelTimer","touchtime","x0","x1","y0","y1","view","scaleExtent","d3_behavior_zoomInfinity","zooming","mousemove","mouseup","g","mousedowned","d3_behavior_zoomWheel","mousewheeled","dblclicked","touchstarted","location2","scaleTo","translateTo","zoomTo","__chart__","transition","rescale","domain","invert","zoomstarted","zoomed","scale","translate","zoomended","location0","d3_selection_interrupt","scale0","locations0","distance0","zoomName","touchmove","touchend","targets","relocate","started","moved","ended","changed","q","l0","l1","distance1","scale1","d3_behavior_zoomDelta","shiftKey","ceil","deltaY","deltaMode","wheelDelta","detail","view1","d3_transitionInheritId","tween","cx","cy","d3_color","d3_hsl","d3_rgb_parse","d3_rgb_hsl","color","rgb","hsl","d3_hslPrototype","d3_hsl_rgb","m1","m2","vv","h2","round","d3_rgb","d3_hcl","d3_lab_hcl","d3_lab","d3_rgb_lab","r","brighter","darker","hcl","d3_hclPrototype","d3_hcl_lab","cos","sin","d3_lab_K","lab","d3_lab_X","d3_lab_Y","d3_lab_Z","d3_labPrototype","d3_lab_rgb","d3_xyz_rgb","d3_lab_xyz","atan2","d3_xyz_lab","d3_rgbNumber","d3_rgbString","d3_rgbPrototype","d3_rgb_hex","format","rgb2","hsl3","color2","exec","parseFloat","d3_rgb_parseNumber","d3_rgb_names","d3_rgb_xyz","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","d3_functor","d3_xhrType","response","url","mimeType","d3_xhr","xhr","headers","request","XMLHttpRequest","responseType","respond","status","responseText","d3_xhrHasResponse","load","XDomainRequest","onload","onerror","onreadystatechange","readyState","onprogress","progress","header","send","callback2","open","setRequestHeader","overrideMimeType","request2","beforesend","abort","d3_xhr_fixCallback","functor","dsv","delimiter","reFormat","delimiterCode","typedResponse","parse","formatRow","formatValue","parseRows","row2","eol","EOL","EOF","rows","N","I","token","formatRows","fieldSet","fields","field","csv","tsv","d3_timer_queueHead","d3_timer_queueTail","d3_timer_interval","d3_timer_timeout","d3_timer_frame","d3_timer","delay","clearTimeout","d3_timer_step","d3_timer_mark","d3_timer_sweep","t02","t12","time","d3_geom_pointX","d3_geom_pointY","d3_geom_hullUpper","points","hull","hs","d3_geom_hullOrder","flush","geom","vertices","fx","fy","flippedPoints","upper","lower","skipLeft","skipRight","polygon","coordinates","d3_geom_polygonPrototype","d3_geom_polygonInside","d3_geom_polygonIntersect","x3","x21","x43","y3","y21","y43","ua","d3_geom_polygonClosed","area","centroid","clip","closed","d3_geom_voronoiEdges","d3_geom_voronoiCells","d3_geom_voronoiBeaches","d3_geom_voronoiFirstCircle","d3_geom_voronoiCircles","d3_geom_voronoiBeachPool","d3_geom_voronoiCirclePool","d3_geom_voronoiBeach","d3_geom_voronoiRedBlackNode","edge","site","circle","d3_geom_voronoiCreateBeach","beach","pop","d3_geom_voronoiDetachBeach","d3_geom_voronoiDetachCircle","d3_geom_voronoiRemoveBeach","vertex","previous","P","disappearing","lArc","unshift","rArc","iArc","nArcs","d3_geom_voronoiSetEdgeEnd","d3_geom_voronoiCreateEdge","d3_geom_voronoiAttachCircle","d3_geom_voronoiAddBeach","dxl","dxr","directrix","d3_geom_voronoiLeftBreakPoint","L","d3_geom_voronoiRightBreakPoint","R","newArc","lSite","ax","ay","bx","by","rSite","hb","hc","arc","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","d3_geom_voronoiCell","edges","d3_geom_voronoiHalfEdgeOrder","angle","d3_geom_voronoiCircle","cSite","ha","d3_geom_voronoiConnectEdge","vb","fm","fb","va","lx","ly","rx","ry","d3_geom_voronoiEdge","d3_geom_voronoiHalfEdge","d3_geom_voronoiCreateBorderEdge","d3_geom_voronoiRedBlackTree","U","C","d3_geom_voronoiRedBlackRotateLeft","tree","d3_geom_voronoiRedBlackRotateRight","d3_geom_voronoiRedBlackFirst","d3_geom_voronoi","sites","bbox","d3_geom_voronoiVertexOrder","line","splice","d3_geom_voronoiClipEdges","x2","y2","cell","iHalfEdge","halfEdges","nHalfEdges","cells","iCell","prepare","d3_geom_voronoiCloseCells","diagram","after","grandpa","uncle","sibling","voronoi","clipExtent","d3_geom_voronoiClipExtent","polygons","links","triangles","s0","s1","d3_geom_quadtreeCompatX","d3_geom_quadtreeCompatY","d3_geom_quadtreeVisit","sx","sy","children","d3_interpolateRgb","ar","ag","ab","br","bg","bb","d3_interpolateObject","d3_interpolate","d3_interpolateNumber","d3_interpolateString","am","bm","bs","bi","d3_interpolate_numberA","d3_interpolate_numberB","index","delaunay","quadtree","compat","xs","ys","x1_","y1_","x2_","y2_","x_","y_","x12","y12","x22","y22","leaf","nx","ny","insertChild","nPoint","xm","ym","below","closestPoint","minDistance2","find","distance2","distance","d3_geom_quadtreeFind","interpolateRgb","interpolateObject","interpolateNumber","interpolateString","interpolators","d3_interpolateArray","na","nb","interpolate","interpolateArray","d3_ease_default","d3_ease","linear","poly","quad","d3_ease_quad","cubic","d3_ease_cubic","d3_ease_sin","d3_ease_exp","d3_ease_circle","elastic","back","bounce","d3_ease_bounce","d3_ease_mode","in","d3_ease_reverse","d3_ease_reflect","d3_ease_cubicInOut","t22","t32","d3_interpolateRound","d3_transform","kx","d3_transformNormalize","kz","d3_transformDot","ky","rotate","skew","ease","interpolateHcl","ah","ac","al","bh","bc","bl","interpolateHsl","as","interpolateLab","aa","ba","interpolateRound","transform","string2","baseVal","consolidate","d3_transformIdentity","d3_interpolateTransformPop","d3_interpolateTransform","ta","tb","d3_interpolateTranslate","ra","rb","d3_interpolateRotate","wa","wb","d3_interpolateSkew","ka","kb","d3_interpolateScale","d3_uninterpolateNumber","d3_uninterpolateClamp","d3_layout_bundlePath","link","lca","aNodes","d3_layout_bundleAncestors","bNodes","aNode","bNode","sharedNode","d3_layout_bundleLeastCommonAncestor","ancestors","d3_layout_forceDragstart","fixed","d3_layout_forceDragend","d3_layout_forceMouseover","px","py","d3_layout_forceMouseout","d3_layout_forceAccumulate","alpha","charges","charge","pointCharge","interpolateTransform","bundle","paths","chord","chords","sortGroups","sortSubgroups","sortChords","relayout","groupSums","groupIndex","subgroupIndex","di","dj","a0","a1","subindex","startAngle","endAngle","resort","force","distances","strengths","friction","linkDistance","d3_layout_forceLinkDistance","linkStrength","d3_layout_forceLinkStrength","chargeDistance2","d3_layout_forceChargeDistance2","gravity","theta2","repulse","dw","dn","dragmove","resume","tick","weight","visit","chargeDistance","theta","neighbors","dimension","size2","o2","candidates","d3_layout_hierarchyRebind","hierarchy","d3_layout_hierarchyLinks","d3_layout_hierarchyVisitBefore","d3_layout_hierarchyVisitAfter","nodes2","d3_layout_hierarchyChildren","d3_layout_hierarchyValue","d3_layout_hierarchySort","child","childs","childs2","revalue","partition","pie","d3_layout_pieSortByValue","padAngle","da","pa","arcs","d3_layout_stackX","d3_layout_stackY","d3_layout_stackOut","d3_layout_stackOrderDefault","d3_layout_stackOffsetZero","series","orders","offsets","d3_layout_stackOrders","d3_layout_stackOffsets","d3_layout_stackMaxIndex","sums","d3_layout_stackReduceSum","bottom","tops","bottoms","reverse","silhouette","wiggle","s3","o0","expand","zero","reduce","d3_layout_stackSum","d3_layout_histogramBinSturges","d3_layout_histogramBinFixed","d3_layout_histogramRange","d3_layout_packSort","d3_layout_packInsert","_pack_next","_pack_prev","d3_layout_packSplice","d3_layout_packIntersects","dr","d3_layout_packSiblings","xMin","xMax","yMin","yMax","d3_layout_packLink","bound","d3_layout_packPlace","isect","cr","d3_layout_packUnlink","d3_layout_packTransform","db","dc","d3_layout_treeSeparation","d3_layout_treeLeft","d3_layout_treeRight","d3_layout_treeMove","wm","wp","shift","change","d3_layout_treeAncestor","vim","ancestor","d3_layout_clusterLeft","d3_layout_clusterRight","d3_layout_treemapPadNull","d3_layout_treemapPad","d3_scaleExtent","d3_scaleRange","rangeExtent","d3_scale_bilinear","uninterpolate","d3_scale_nice","nice","d3_scale_niceStep","d3_scale_niceIdentity","histogram","frequency","valuer","ranger","binner","bin","bins","thresholds","pack","radius","separation","nodeSize","root0","root1","node1","A","queue","wrapTree","firstWalk","secondWalk","sizeNode","tx","siblings","d3_layout_treeShift","midpoint","vip","vop","vom","sip","sop","sim","som","apportion","cluster","previousNode","d3_layout_clusterX","d3_layout_clusterY","treemap","stickies","pad","sticky","mode","ratio","squarify","score","best","worst","stickify","rmax","rmin","padConstant","normal","mu","sigma","logNormal","bates","irwinHall","d3_scale_polylinear","j2","d3_scale_linear","clamp","linear2","rangeRound","ticks","d3_scale_linearTicks","tickFormat","d3_scale_linearTickFormat","d3_scale_linearNice","d3_scale_linearRebind","d3_scale_linearTickRange","span","LN10","d3_scale_log","base","positive","niced","d3_scale_logNiceNegative","d3_scale_pow","exponent","powp","d3_scale_powPow","powb","d3_scale_ordinal","rangeBand","steps","xi","rangePoints","rangeRoundPoints","rangeBands","outerPadding","rangeRoundBands","ordinal","category10","d3_category10","category20","d3_category20","category20b","d3_category20b","category20c","d3_category20c","d3_scale_quantile","quantiles","invertExtent","d3_scale_quantize","d3_scale_threshold","d3_scale_identity","identity2","d3_zero","quantize","threshold","identity","innerRadius","d3_svg_arcInnerRadius","outerRadius","d3_svg_arcOuterRadius","cornerRadius","padRadius","d3_svg_arcAuto","d3_svg_arcStartAngle","d3_svg_arcEndAngle","d3_svg_arcPadAngle","cw","rc","circleSegment","rp","ap","path","d3_svg_arcSweep","h1","h0","rc1","rc0","oc","kc","acos","lc","t30","d3_svg_arcCornerTangents","t03","t21","x01","y01","ox","oy","D2","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","d3_true","d3_svg_line","projection","defined","d3_svg_lineLinear","interpolateKey","tension","segments","segment","d3_svg_lineInterpolators","d3_svg_lineLinearClosed","d3_svg_lineStepBefore","d3_svg_lineStepAfter","basis","d3_svg_lineBasis","pi","d3_svg_lineDot4","d3_svg_lineBasisBezier3","d3_svg_lineBasisBezier","cardinal","d3_svg_lineHermite","d3_svg_lineCardinalTangents","monotone","tangents","d3_svg_lineSlope","d3_svg_lineFiniteDifferences","d3_svg_lineMonotoneTangents","lp","p2","d3_svg_lineBasisBezier1","d3_svg_lineBasisBezier2","d3_svg_lineRadial","d3_svg_area","interpolateReverse","points0","points1","fx0","fy0","fx1","fy1","d3_source","d3_target","d3_svg_chordRadius","d3_svg_diagonalProjection","d3_svg_symbolSize","d3_svg_symbolType","d3_svg_symbolCircle","radial","curve","subgroup2","diagonal","p3","projection_","d3_svg_diagonalRadialProjection","symbol","d3_svg_symbols","cross","diamond","d3_svg_symbolTan30","square","d3_svg_symbolSqrt3","symbolTypes","d3_transitionId","d3_transitionNamespace","d3_transitionInherit","d3_transition","interrupt","d3_selection_interruptNS","lock","activeId","active","d3_transitionPrototype","d3_transition_tween","d3_transition_text","d3_transitionNode","inherit","tweens","elapsed","cancelId","cancel","subnodes","nameNS","attrNull","attrNullNS","attrTween","styleNull","styleTween","inheritId","id0","id1","axis","tickFormat_","orient","d3_svg_axisDefaultOrient","innerTickSize","outerTickSize","tickPadding","tickArguments_","tickValues","tickTransform","g2","tickEnter","tickExit","tickUpdate","tickSpacing","pathUpdate","lineEnter","lineUpdate","textEnter","textUpdate","sign","d3_svg_axisX","d3_svg_axisY","d3_svg_axisOrients","tickSize","tickSubdivide","v0","brush","xExtentDomain","yExtentDomain","xExtent","yExtent","xClamp","yClamp","resizes","d3_svg_brushResizes","brushstart","background","d3_svg_brushCursor","gUpdate","backgroundUpdate","redrawX","redrawY","redraw","eventTarget","event_","resizing","resizingX","resizingY","dragging","keyCode","brushmove","brushend","ex","ey","altKey","move1","extent1","extent0","yi","clear","nw","ne","se","sw","d3_json","JSON","d3_html","createRange","selectNode","body","createContextualFragment","json","responseXML","require_d3_time","global2","exports2","newInterval","floori","offseti","interval","date","d0","setTime","every","millisecond","milliseconds","durationSecond","durationMinute","durationHour","durationDay","durationWeek","second","getMilliseconds","getUTCSeconds","seconds","minute","getSeconds","getMinutes","minutes","hour","getHours","hours","day","setHours","setDate","getDate","getTimezoneOffset","days","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","sundays","mondays","tuesdays","wednesdays","thursdays","fridays","saturdays","month","setMonth","getMonth","getFullYear","months","year","setFullYear","years","utcMinute","setUTCSeconds","getUTCMinutes","utcMinutes","utcHour","setUTCMinutes","getUTCHours","utcHours","utcDay","setUTCHours","setUTCDate","getUTCDate","utcDays","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcSundays","utcMondays","utcTuesdays","utcWednesdays","utcThursdays","utcFridays","utcSaturdays","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","utcMonths","utcYear","setUTCFullYear","utcYears","timeDay","timeDays","timeFriday","timeFridays","timeHour","timeHours","timeInterval","timeMillisecond","timeMilliseconds","timeMinute","timeMinutes","timeMonday","timeMondays","timeMonth","timeMonths","timeSaturday","timeSaturdays","timeSecond","timeSeconds","timeSunday","timeSundays","timeThursday","timeThursdays","timeTuesday","timeTuesdays","timeWednesday","timeWednesdays","timeWeek","timeWeeks","timeYear","timeYears","utcMillisecond","utcMilliseconds","utcSecond","utcSeconds","utcWeek","utcWeeks","require_d3_time_format","d3Time","localDate","M","utcDate","UTC","newDate","formatLocale","locale2","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","B","formatDayOfMonth","formatMicroseconds","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","Q","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","V","formatWeekNumberISO","formatWeekdayNumberSunday","W","formatWeekNumberMonday","X","formatYear","Y","formatFullYear","Z","formatZone","formatLiteralPercent","utcFormats","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseSpecifier","parseDayOfMonth","parseMicroseconds","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseYear","parseFullYear","parseZone","parseLiteralPercent","newFormat","specifier","formats2","pad2","pads","newParse","week","parse2","utcFormat","utcParse","locale","numberRe","percentRe","requoteRe","width","names2","getUTCMilliseconds","dow","defaultLocale","timeFormat","timeParse","isoSpecifier","formatIso","toISOString","parseIso","isoFormat","isoParse","timeFormatDefaultLocale","timeFormatLocale","require_d3_format","formatDecimalParts","toExponential","coefficient","prefixExponent","formatSpecifier","FormatSpecifier","align","comma","precision","formatRounded","exponent2","formatTypes","toFixed","toPrecision","prefixes","grouping","thousands","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","zero2","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","formatPrefix","value2","formatDefaultLocale","precisionFixed","precisionPrefix","precisionRound","globalThis","require_is_string_blank","require_fast_isnumeric","allBlankCharCodes","original","require_numerical","BADNUM","FP_SAFE","MAX_VALUE","ONEMAXYEAR","ONEAVGYEAR","ONEMINYEAR","ONEMAXQUARTER","ONEAVGQUARTER","ONEMINQUARTER","ONEMAXMONTH","ONEAVGMONTH","ONEMINMONTH","ONEWEEK","ONEDAY","ONEHOUR","ONEMIN","ONESEC","ONEMILLI","ONEMICROSEC","EPOCHJD","ALMOST_EQUAL","LOG_CLIP","MINUS_SIGN","require_base64_arraybuffer_umd","chars","decode","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","encode","require_is_plain_object","process","versions","require_array","b64decode","isPlainObject","dv","DataView","isTypedArray","isArrayOrTypedArray","isArray1D","ensureArray","typedArrays","u1c","Uint8ClampedArray","Int8Array","u1","Int16Array","u2","Uint16Array","i4","Int32Array","u4","Uint32Array","f4","Float32Array","f8","Float64Array","isArrayBuffer","_rowLength","len0","uint8c","int8","uint16","int16","uint32","int32","float32","float64","decodeTypedArraySpec","vIn","bdata","dtype","shape","coerceTypedArraySpec","T","BYTES_PER_ELEMENT","nj","ndim","ni","rowBytes","nk","_inputArray","isTypedArraySpec","_constructor","arg0","argi","posi","leni","allArray","totalLen","maxRowLength","minRowLength","require_nested_property","isNumeric","npGet","cont","retainNull","curPart","allSame","curCont","propStr","indexed","indices","propParts","astr","badContainer","npSet","ARGS_PATTERN","isDeletable","propPart","toDelete","setArrayAll","checkNewContainer","joinPropStr","newPart","toAdd","containerArray","innerParts","arrayVal","allSet","thisVal","thisPropStr","deleteThis","firstPart","part","nextPart","require_keyed_container","nestedProperty","SIMPLE_PROPERTY_REGEX","baseObj","keyName","valueName","baseProp","changeTypes","indexLookup","isSimpleValueProp","changeType","newValue","rename","newName","constructUpdate","require_relative_attr","ASCEND","SIMPLEATTR","baseAttr","relativeAttr","require_to_log_range","newVal","require_relink_private","relinkPrivateKeys","toContainer","fromContainer","fromVal","toVal","minLen","require_mod","modHalf","require_tinycolor","Math2","trimLeft","trimRight","tinyCounter","mathRound","mathMin","mathMax","mathRandom","tinycolor","opts","ok","named2","matchers","rgba","hsla","hsv","hsva","hex8","parseIntFromHex","convertHexToDecimal","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","bound01","convertToPercentage","hsvToRgb","hue2rgb","q2","hslToRgb","boundAlpha","inputToRGB","_originalInput","_r","_g","_b","_a","_roundA","_format","_gradientType","gradientType","_ok","_tc_id","rgbToHsl","rgbToHsv","rgbToHex","allow3Char","hex2","rgbaToArgbHex","convertDecimalToHex","desaturate","amount","toHsl","clamp01","saturate","greyscale","lighten","brighten","toRgb","darken","spin","hue2","complement","triad","tetrad","splitcomplement","analogous","results","slices","monochromatic","toHsv","modification","isDark","getBrightness","isLight","isValid","getOriginalInput","getFormat","getAlpha","getLuminance","RsRGB","GsRGB","BsRGB","setAlpha","toHsvString","toHslString","toHex","toHexString","toHex8","allow4Char","rgbaToHex","toHex8String","toRgbString","toPercentageRgb","toPercentageRgbString","toName","hexNames","toFilter","secondColor","hex8String","secondHex8String","formatSet","formattedString","hasAlpha","clone","_applyModification","_applyCombination","fromRatio","newColor","color1","mix","rgb1","readability","c1","c2","isReadable","wcag2","wcag2Parms","parms","level","mostReadable","baseColor","colorList","includeFallbackColors","bestColor","bestScore","names","burntsienna","flipped","flip","isOnePointZero","processPercent","isPercentage","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","require_extend","_extend","inputs","isDeep","keepAllKeys","noArrayCopies","copyIsArray","allPrimitives","primitivesLoopSplice","extendFlat","extendDeep","extendDeepAll","extendDeepNoArrays","require_font_attributes","variantValues","editType","colorEditType","valType","extras","dflt","noNumericWeightValues","attrs","family","noBlank","strict","variant","noFontVariant","textcase","noFontTextcase","lineposition","noFontLineposition","flags","shadow","noFontShadow","autoShadowDflt","autoSize","autoColor","arrayOk","require_constants","YANGLE","HOVERARROWSIZE","HOVERTEXTPAD","HOVERFONTSIZE","HOVERFONT","HOVERMINTIME","HOVERID","require_layout_attributes","constants","fontAttrs","font","clickmode","dragmode","hovermode","hoversubplots","hoverdistance","spikedistance","hoverlabel","bgcolor","bordercolor","grouptitlefont","namelength","selectdirection","require_attributes","hoverLabelAttrs","require_attributes2","fxAttrs","_noTemplating","visible","showlegend","legend","legendgroup","legendgrouptitle","legendrank","legendwidth","opacity","uid","anim","ids","customdata","meta","selectedpoints","hoverinfo","stream","maxpoints","uirevision","require_scales","scales","Greys","YlGnBu","Greens","YlOrRd","Bluered","RdBu","Reds","Blues","Picnic","Rainbow","Portland","Jet","Hot","Blackbody","Earth","Electric","Viridis","Cividis","defaultScale","isValidScaleArray","scl","highestVal","si","parseScale","require_attributes3","defaults","defaultLine","lightLine","borderLine","lightFraction","require_color","colorAttrs","cleanOne","valTrim","rgba3","rgbStr","tinyRGB","tc","cstr","addOpacity","op","combine","front","fc","bcflat","fcflat","factor","sc","ic","contrast","lightAmount","darkAmount","stroke","clean","el0","require_interactions","SHOW_PLACEHOLDER","HIDE_PLACEHOLDER","DESELECTDIM","require_regex","counter","head","tail","openEnded","matchBeginning","fullTail","startWithPrefix","require_coerce","baseTraceAttrs","colorscales","Color2","counterRegex","validate","valObjectDef","valObjectMeta","validateFunction","failed","propMock","coerceFunction","data_array","propOut","enumerated","coerceNumber","boolean","integer","okToCoerce","colorlist","colorscale","subplotid","regex","flaglist","vParts","vi","any","info_array","coercePart","v2","opts2","dflt2","v3","vNew","twoD","dimensions","items","vOut","arrayItems","arrayItems2D","innerItemsOnly","freeLength","coerce","containerIn","containerOut","attributes","attribute","propIn","template","_template","coerce2","valIn","coerceFont","dfltObj","overrideDflt","dfltShadow","coercePattern","markerColor","hasMarkerColorscale","isOverlay","coerceHoverinfo","traceIn","traceOut","layoutOut","moduleAttrs","_module","valObj","_dataLength","coerceSelectionMarkerOpacity","marker","smoDflt","usmoDflt","mo","selected","unselected","require_plot_config","configAttributes","staticPlot","typesetMath","plotlyServerURL","editable","edits","annotationPosition","annotationTail","annotationText","axisTitleText","colorbarPosition","colorbarTitleText","legendPosition","legendText","shapePosition","titleText","editSelection","autosizable","responsive","fillFrame","frameMargins","scrollZoom","doubleClick","doubleClickDelay","showAxisDragHandles","showAxisRangeEntryBoxes","showTips","showLink","linkText","sendData","showSources","displayModeBar","showSendToCloud","showEditInChartStudio","modeBarButtonsToRemove","modeBarButtonsToAdd","modeBarButtons","toImageButtonOptions","displaylogo","watermark","plotGlPixelRatio","setBackground","topojsonURL","mapboxAccessToken","logging","notifyOnLogging","queueLength","locales","dfltConfig","crawl","require_notifier","NOTEDATA","displayLength","ts","notifierContainer","thisText","note","killNote","lines","thisIndex","require_loggers","notifier","loggers","messages","warn","require_noop","require_push_unique","itemStr","require_create","require_clone","require_copy","require_identity","require_transpose","a01","a02","a03","a12","a13","a23","require_invert","a00","a10","a11","a20","a21","a22","a30","a31","a32","a33","b00","b01","b02","b03","b04","b05","b06","b07","b08","b09","b10","b11","det","require_adjoint","require_determinant","require_multiply","b2","b3","require_translate","require_scale","require_rotate","rad","b12","b20","b21","b22","require_rotateX","require_rotateY","require_rotateZ","require_fromRotation","require_fromRotationTranslation","z2","xx","xy","xz","yy","yz","zz","wx","wy","wz","require_fromScaling","require_fromTranslation","require_fromXRotation","require_fromYRotation","require_fromZRotation","require_fromQuat","yx","zx","zy","require_frustum","near","far","rl","nf","require_perspective","fovy","aspect","require_perspectiveFromFieldOfView","fov","upTan","upDegrees","downTan","downDegrees","leftTan","leftDegrees","rightTan","rightDegrees","xScale","yScale","require_ortho","lr","bt","require_lookAt","eye","up","z0","z1","eyex","eyey","eyez","upx","upy","upz","centerx","centery","centerz","require_str","require_gl_mat4","adjoint","determinant","multiply","rotateX","rotateY","rotateZ","fromRotation","fromRotationTranslation","fromScaling","fromTranslation","fromXRotation","fromYRotation","fromZRotation","fromQuat","frustum","perspective","perspectiveFromFieldOfView","ortho","lookAt","require_matrix","mat4X4","init2dArray","rowLength","colLength","transposeRagged","maxlen","zlen","dot","yTranspose","translationMatrix","rotationMatrix","rotationXYMatrix","apply3DTransform","xyz","apply2DTransform","apply2DTransform2","at","xys","convertCssMatrix","inverseTransformMatrix","require_dom","removeElement","elParent","addRelatedStyleRule","styleString","getElementById","createTextNode","styleSheet","sheet","insertRule","addRule","getElementTransformMatrix","element","getElementAndAncestors","allElements","isTransformableElement","ShadowRoot","host","HTMLElement","getGraphDiv","gdElement","isPlotDiv","el3","addStyleRule","deleteRelatedStyleRule","setStyleOnHover","activeSelector","childSelector","activeStyle","inactiveStyle","activeStyleParts","inactiveStyleParts","eventAddedAttrName","childEl","getFullTransformMatrix","equalDomRects","require_animation_attributes","direction","fromcurrent","frame","easing","ordering","require_edit_types","traceOpts","layoutOpts","traceEditTypeFlags","layoutEditTypeFlags","falseObj","overrideAll","editTypeOverride","overrideContainers","overrideOne","traces","traceFlags","layoutFlags","editTypeParts","require_attributes4","dash","pattern","fillmode","fgcolor","fgopacity","solidity","require_docs","FORMAT_LINK","DATE_FORMAT_LINK","require_template_attributes","docs","describeVariables","extra","descPart","description","quotedKeys","hovertemplateAttrs","hovertemplate","texttemplateAttrs","texttemplate","shapeTexttemplateAttrs","newshape","require_label_texttemplate","d2l","l2d","x0shiftFn","x0shift","x1shiftFn","x1shift","y0shiftFn","y0shift","y1shiftFn","y1shift","dxFn","xa","dyFn","ya","slope","height","xcenter","ycenter","require_attributes5","basePlotAttributes","shapeLabelTexttemplateVars","fillcolor","fillrule","layer","drawdirection","label","textposition","textangle","xanchor","yanchor","activeshape","require_attributes6","newselection","activeselection","require_pad_attributes","require_layout_attributes2","animationAttrs","drawNewShapeAttrs","drawNewSelectionAttrs","padAttrs","globalFont","title","subtitle","xref","yref","automargin","uniformtext","minsize","autosize","minreducedwidth","minreducedheight","autoexpand","computed","paper_bgcolor","plot_bgcolor","autotypenumbers","separators","hidesources","colorway","datarevision","editrevision","selectionrevision","init_maplibre_gl","init_maplibre_gl2","require_registry","Loggers","noop","pushUnique","ExtendModule","baseLayoutAttributes","registerTraceModule","thisType","categoriesIn","categories","modules","subplotsRegistry","basePlotModule","plotType","componentName","findArrayRegexps","componentsRegistry","mergeComponentAttrsToSubplot","registerSubplot","categoryObj","allCategories","allTypes","mergeComponentAttrsToTrace","layoutAttributes","traceLayoutAttributes","bpmName","styleRules","PlotlyGeoAssets","topojson","registerComponentModule","traceType","_isLinkedToArray","layoutArrayContainers","subplotName","schema","registerTransformModule","hasTransform","hasCalcTransform","calcTransform","supplyDefaults","registerLocale","baseLocale","newDict","dictionary","hasDict","hasFormat","localeRegistry","localeObj","baseLocaleObj","arrayAttrRegexps","_arrayAttrRegexps","layoutArrayRegexes","componentSchema","traceAttrs","subplots","subplotModule","subplotAttrs","subplotAttr","componentLayoutAttrs","getTraceType","apiMethodRegistry","collectableSubplotTypes","register","_modules","newModule","moduleType","getModule","trace","traceIs","category","getComponentMethod","require_dates","MIN_MS","MAX_MS","Registry","DATETIME_REGEXP","DATETIME_REGEXP_CN","YFIRST","isWorldCalendar","calendar","calendars","lpad","digits","dateTick0","dayOfWeek","tick0","_dateTick0","dateTime2ms","ms2DateTime","dfltRange","isJSDate","getTime","tzOffset","offsetTweak","comb","isWorld","isChinese","cDate","calInstance","isIntercalary","toMonthIndex","toJD","isDateTime","NINETYDAYS","THREEHOURS","FIVEMIN","includeTime","dateStr","msec10","ms","msecTenths","msRounded","dateJD","timeMs","fromJD","formatDate","ms2DateTimeLocal","cleanDate","fracMatch","halfYearMatch","quarterToHalfYear","modDateFormat","fmt","formatter","MAXSECONDS","tr","extraFormat","timePart","timeStr","secStr","formatTime","dayMonthYear","dayMonth","THREEDAYS","incrementMonth","dMonth","findExactDates","exactYears","exactMonths","exactDays","blankCount","dataCount","require_identity2","require_search","roundingError","lessThan","lessOrEqual","greaterThan","greaterOrEqual","findBin","linelow","n1","binSize","sorterAsc","sorterDes","distinctVals","valsIn","vals","preV","minDiff","errDiff","newVals","diff","roundUp","arrayIn","low","high","dlow","dhigh","rounded","sortFn","notOrdered","notReversed","pairOrder","findIndexOfMin","ind","require_sort_object_keys","require_stats","aggNums","geometricMean","midRange","numArr","stdev","interp","frac","require_angles","modModule","twoPI","isFullCircle","aBnds","angleDelta","isAngleInsideSector","_path","isClosed","aStart","aMid","aEnd","rStart","rEnd","isCircle","pt","largeArc","deg2rad","deg","rad2deg","angleDist","isPtInsideSector","rBnds","pathArc","pathSector","pathAnnulus","require_anchor_utils","isLeftAnchor","isCenterAnchor","isRightAnchor","isTopAnchor","isMiddleAnchor","isBottomAnchor","require_geometry2d","locationCache","workingPath","workingTextWidth","segmentsIntersect","x4","y4","perpDistance2","xab","yab","llab","xac","yac","fcAB","xbc","ybc","crossProduct","segmentDistance","x34","y34","ll12","ll34","dist2","getTextLocation","totalPathLen","positionOnPath","textWidth","getPointAtLength","atan","pCenter","clearLocationCache","getVisibleSegment","bounds","pt0","ptTotal","pMin","pTotal","getTotalLength","pMax","getDistToPlot","distToPlot","total","findPointOnPath","coord","pathLength","tolerance","iterationLimit","require_throttle","timerCache","_clearTimeout","throttle","minInterval","idi","onDone","done","previousOnDone","require_clear_responsive","_responsiveChartHandler","require_is_mobile","isMobile","mobileRE","notMobileRE","tabletRE","tablet","featureDetect","maxTouchPoints","require_preserve_drawing_buffer","isMobileOrTablet","getUserAgent","enable","allParts","prevPart","require_make_trace_groups","traceLayer","cdModule","cls","cd","require_localize","_context","dict","require_filter_unique","seen","require_filter_visible","baseFilter","calcDataFilter","_length","filterFn","require_increment","delta","newX","lenX1","lenDt","require_clean_number","JUNK","require_lib","d3Format","numConstants","MAX_SAFE","MIN_SAFE","lib","adjustFormat","formatStr","seenBadFormats","warnBadFormat","noFormat","numberFormat","keyedContainer","toLogRange","arrayModule","coerceModule","datesModule","searchModule","sortObjectKeys","statsModule","matrixModule","anglesModule","anchorUtils","geom2dModule","extendModule","loggersModule","regexModule","throttleModule","throttleDone","clearThrottle","domModule","makePtIndex2PtNumber","indexToPoints","ptIndex2ptNumber","pts","clearResponsive","preserveDrawingBuffer","makeTraceGroups","filterUnique","filterVisible","increment","cleanNumber","ensureNumber","isIndex","repeat","cnt","swapAttrs","attrList","part1","part2","xp","yp","temp","raiseToTop","elem","cancelTransition","constrain","v1","bBoxIntersect","simpleMap","randstr","existing","bits","_recursion","rem","OptionControl","opt","optname","optObj","optionList","smooth","FWHM","alen","alen2","wlen","arrayOut","syncOrAsync","sequence","finalStep","continueAsync","fni","stripTrailingSlash","noneOrAll","hasAny","hasAll","mergeArray","traceAttr","cdAttr","hasFn","imax","mergeArrayCastPositive","fillArray","castOption","ptNumber","extractOption","calcPt","calcKey","traceKey","traceVal","tagSelected","calcTrace","ptNumber2cdIndex","_indexToPoints","ptIndex","cdIndex","selIndices2selPoints","getTargetArray","transformOpts","minExtend","obj1","obj2","objOut","arrayLen","titleCase","containsAny","fragments","IS_SAFARI_REGEX","isSafari","IS_IOS_REGEX","isIOS","FIREFOX_VERSION_REGEX","getFirefoxVersion","versionInt","isD3Selection","ensureSingle","enterFn","sel","ensureSingleById","objectFromPath","tmpObj","dottedPropertyRegex","indexedPropertyRegex","notValid","expandObjectPaths","dest","trailingPath","numSeparate","separatethousands","thousandsRe","decimalSep","thouSep","TEMPLATE_STRING_REGEX","templateString","getterCache","dummy","hovertemplateWarnings","hovertemplateString","templateFormatString","texttemplateWarnings","texttemplateString","MULT_DIV_REGEX","texttemplateWarningsForShapes","parseMultDiv","texttemplateStringForShapes","TEMPLATE_STRING_FORMAT_SEPARATOR","labels","d3locale","rawKey","isSpaceOther","isSpaceOtherSpace","isOtherSpace","hasOther","parsedOp","parsedNumber","_match","inputStr","multDivParser","keyLabel","subplotSort","numA","numB","charA","charB","isNumA","isNumB","randSeed","seedPseudoRandom","pseudoRandom","lastVal","fillText","contOut","htx","isValidTextValue","formatPercent","isHidden","strTranslate","strRotate","strScale","getTextTransform","noCenter","textX","textY","targetX","targetY","anchorX","anchorY","setTransormAndDisplay","ensureUniformFontSize","baseFont","_fullLayout","join2","mainSeparator","lastSeparator","bigFont","firefoxVersion","isProblematicFirefox","getPositionFromD3Event","layerX","layerY","offsetX","offsetY","require_plotcss","fullSelector","Lib","rules","require_client","require_has_hover","hasHover","matchMedia","require_events","ReflectOwnKeys","ReflectApply","receiver","Function","ownKeys","NumberIsNaN","EventEmitter","init","once","emitter","errorListener","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","newListener","emit","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","wrapListener","setMaxListeners","getMaxListeners","doError","er","addListener","prependListener","prependOnceListener","originalListener","spliceOne","removeAllListeners","rawListeners","require_events2","Events","plotObj","_ev","ev","internalEv","_internalEv","_internalOn","_internalOnce","_removeInternalListener","_removeAllInternalListeners","triggerHandler","require_queue","undoFunc","undoArgs","redoFunc","redoArgs","queueObj","queueIndex","undoQueue","autoplay","inSequence","beginSequence","undo","calls","redo","plotDo","copyArgArray","require_frame_attributes","baseframe","require_plot_schema","baseAttributes","frameAttributes","animationAttributes","editTypes","IS_SUBPLOT_OBJ","IS_LINKED_TO_ARRAY","DEPRECATED","UNDERSCORE_ATTRS","recurseIntoValObject","valObject","newValObject","index2","getLayoutAttributes","handleBasePlotModule","xaxis","yaxis","xkey","autoshift","insertAttrs","formatAttributes","makeSrcAttr","attrName","attrs2","isValObject","role","mergeValTypeAndRole","itemName","formatArrayContainers","walk","stringify","np","baseAttrs","newAttrs","copyBaseAttributes","copyModuleAttributes","fullAttrString","selectPoints","animatable","getTraceAttributes","defs","valObjects","metaKeys","impliedEdits","animation","specifiedLevel","attrString","findArrayAttributes","baseContainer","baseAttrName","arrayAttributes","isArrayStack","crawlIntoTrace","astrPartial","newAstrPartial","getTraceValObject","getLayoutValObject","fullLayout","basePlotModules","_basePlotModules","attrRegex","layoutAttrOverrides","baseOverrides","baseLayoutAttrOverrides","layoutHeadAttr","require_plot_template","plotAttributes","TEMPLATEITEMNAME","templateAttrs","validItemName","arrayDefaultKey","lastChar","templatedArray","traceTemplater","dataTemplate","typeTemplates","traceCounts","newTrace","typei","newContainer","baseName","arrayTemplater","inclusionAttr","defaultsTemplate","templateItems","usedNames","newItem","itemIn","_input","templateItemName","templateItem","defaultItems","outi","_templateitemname","arrayEditor","parentIn","containerStr","itemOut","lengthIn","_index","resetUpdate","modifyItem","getUpdateObj","updateOut","modifyBase","applyUpdate","updateToApply","require_constants2","idRegex","xAxisMatch","yAxisMatch","AX_ID_PATTERN","AX_NAME_PATTERN","SUBPLOT_PATTERN","HOUR_PATTERN","WEEKDAY_PATTERN","MINDRAG","MINZOOM","DRAGGERSIZE","REDRAWDELAY","DFLTRANGEX","DFLTRANGEY","traceLayerClasses","clipOnAxisFalseQuery","layerValue2layerClass","zindexSeparator","require_axis_ids","isFound","axId","id2name","axNum","name2id","cleanId","axLetter","domainId","domainTest","only2d","idList","listIds","sceneIds3D","_subplots","gl3d","scene","zaxis","subplotLists","getFromId","getFromTrace","fullTrace","idSort","id2","letter1","letter2","ref2id","isLinked","_axisMatchGroups","_axisConstraintGroups","require_handle_outline","clearOutlineControllers","zoomLayer","_zoomlayer","clearOutline","_outlining","require_layout_attributes3","scattermode","scattergap","require_get_data","getSubplotCalcData","calcData","subplotId","subplotCalcData","getModuleCalcData","calcdata","arg1","arg2","plotMethod","moduleCalcData","remainingCalcData","plot","zorder","filterByZ","getSubplotData","subplotData","require_command","bindingValueHasChanged","binding","_fullData","computeLayoutBindings","bindings","aobj","computeDataBindings","_attr","thisTraces","nAttr","thisPath","manageCommandObserver","commandList","onchange","enabled","_commandObserver","lookupTable","hasSimpleAPICommandBindings","check","disable","checkEvents","bindingsByValue","refBinding","command","computeAPICommandBindings","executeAPICommand","_method","allArgs","catch","computeAnimateBindings","require_plots","b64encode","PlotSchema","Template","axisIDs","scatterAttrs","frameAttrs","plots","commandModule","redrawText","previousPromises","resolveLastResize","_redrawTimer","_resolveResize","oldchanged","_promises","addLinks","linkContainer","_paper","getComputedTextLength","toolspan","spacespan","sourcespan","class","sendDataToCloud","location","pathname","query","search","positionPlayWithData","baseUrl","PLOTLYENV","BASE_URL","hiddenformDiv","hiddenform","action","graphJson","submit","d3FormatKeys","extraFormatKeys","getFormatObj","formatKeys","formatDone","formatObj","includeFormat","formatFinished","formatKey","formatj","en","findMainSubplot","mockGd","isX","_id","anchorAx","_mainAxis","_anchorAxis","mainSubplotID","nextBestMainSubplotID","anchorID","_plots","counterIDs","_counterAxes","counterPart","counterAx","overlaying","getComputedSize","initMargins","_size","gs","_pushmargin","_pushmarginIds","_reservedMargin","skipUpdateCalc","oldFullLayout","_skipDefaults","newFullLayout","newLayout","oldFullData","newFullData","newData","oldCalcdata","createTransitionData","_dfltTitle","colorbar","annotation","_traceWord","_mapboxAccessToken","_initialAutoSizeIsDone","oldWidth","oldHeight","supplyLayoutGlobalDefaults","sanitizeMargins","missingWidthOrHeight","plotAutoSize","_d3locale","getFormatter","_extraFormat","_visibleModules","subplotType","emptySubplotLists","splomAxes","_splomAxes","splomSubplots","_splomSubplots","_splomGridDflt","_scatterStackOpts","_firstScatter","_alignmentOpts","_colorAxes","_requestRangeslider","_traceUids","prevFullInput","oldFullInput","thisFullInput","_fullInput","oldLen","seenUids","setUid","tryUid","newUid","getTraceUids","supplyDataDefaults","splomXa","splomYa","cartesian","_has","_hasPlotType","supplyLayoutModuleDefaults","crossTraceDefaultsFuncs","funci","crossTraceDefaults","_hasOnlyLargeSploms","shapes","images","linkSubplots","cleanPlot","hadBgLayer","hasBgLayer","_bgLayer","_shouldCreateBgLayer","_dragging","_meta","meta4data","fillMetaTextHelpers","_preGUI","_tracePreGUI","tracePreGUI","uids","supplyDefaultsUpdateCalc","cd0","oldTrace","_hasCalcTransform","oldArrayVal","arrayAttrs","_arrayAttrs","_frameHash","_counter","_interruptCallbacks","hadGl","hasGl","_glcontainer","_glcanvas","hasInfoLayer","_infolayer","oldLoop","oldUid","oldSubplots","newSubplots","plotinfo","oldSubplot","_subplotsWith","_hasClipOnAxisFalse","cliponaxis","axList","mainAx","anchor","_mainSubplot","spikemode","mirror","ax2","_counterDomainMin","_counterDomainMax","clearExpandedTraceDefaultColors","_colorAttrs","dataIn","dataOut","visibleModules","colorCnt","pushModule","fullTrace2","_transformModules","carpetIndex","carpetDependents","templater","supplyTraceDefaults","carpet","carpetAxis","_carpet","supplyAnimationDefaults","optsOut","supplyAnimationFrameDefaults","supplyAnimationTransitionDefaults","supplyFrameDefaults","frameIn","frameOut","colorIndex","traceInIndex","defaultColor","attri","vali","_dfltShowLegend","layoutIn","_dataTemplate","fontSize","titleYref","titleAutomargin","newWidth","newHeight","innerWidth","innerHeight","overflow","computedStyle","maxWidth","maxHeight","minWidth","minHeight","widthHasChanged","heightHasChanged","_initialAutoSize","fullData","transitionData","component","Cartesian","includeBasePlot","finalizeSubplots","supplyLayoutDefaults","transformModules","_modeBar","destroy","_animationRaf","cancelAnimationFrame","fid","undoqueue","undonum","_hmlumcount","_hmpixcount","_transitioning","_transitioningWithDuration","_dragged","_dragdata","_hoverdata","_snapshotInProgress","_editing","_mouseDownTime","_legendMouseDownTime","styleModules","correction","plotWidth","plotHeight","clearAutoMarginIds","allowAutoMargin","autoMargin","minFinalWidth","minFinalHeight","maxSpaceW","maxSpaceH","pushMargin","pushMarginIds","rW","rH","xl","xr","yt","yb","_replotting","doAutoMargin","reservedMargins","oldMargins","ml","mr","mt","mb","margins","side","autoMarginPush","extraMargin","k1","pushleft","pushbottom","fl","pl","pb","availableWidth","availableHeight","k2","fr","pr","newL","newR","ft","newB","newT","didMarginChange","needsRedrawForShift","_redrawFromAutoMarginCount","maxNumberOfRedraws","hideFn","refineTicks","marginKeys","_transition","transitionOpts","aborted","seq","executeCallbacks","prepareFn","rehover","reselect","numCallbacks","numCompleted","makeCallback","flushCallbacks","runFn","transitionStarting","margin0","margin1","m0","dataonly","useDefaults","includeConfig","stripObj","keepFunction","dIsArray","dIsTypedArray","fit","modifyFrames","operations","oldName","computeFrame","frameName","traceIndices","traceIndex","destIndex","frameLookup","framePtr","frameStack","frameNameStack","extendLayout","extendTrace","recomputeFrameHash","hash","extendObjectWithContainers","containerPaths","containerProp","containerVal","destProp","srcContainer","destContainer","expandedObj","containerObj","srcObj","dataArrayContainers","destTrace","srcTrace","destLayout","srcLayout","frameOpts","transitionedTraces","axEdits","dataLength","traceIdx","layoutUpdate","axisAttrRe","doCalcdata","xr0","yr0","xr1","yr1","editX","editY","_name","r2l","traceTransitionOpts","hasAxisTransition","transitionAxes","transitionFromReact","restyleFlags","relayoutFlags","setScale","axisTransitionOpts","allTraceIndices","transitionTraces","_numBoxes","_numViolins","_violinScaleGroupStats","_piecolormap","_sunburstcolormap","_treemapcolormap","_iciclecolormap","_funnelareacolormap","_extremes","polarIds","polar","radialaxis","angularaxis","cOpts","cauto","cmin","cmax","transformCalci","transforms","calc","cdi","_scene","dirty","transformsRegistry","calci","isContainer","setupAxisCategories","doCrossTraceCalc","sorted","affectedTraces","zMapCategory","type2","axLetter2","counterAxLetter","xCategorical","yCategorical","l2","aggFn","sortAscending","sortDescending","categoryorder","sortAxisCategoriesByValueRegex","aggregator","categoriesValue","_categories","_traceIndices","_xautoBinFinished","_yautoBinFinished","isSplom","isScattergl","catIndex","currentDimensionIndex","_axesDim","associatedXAxisID","_diag","_categoriesMap","mapping","_categoriesValue","categoriesAggregatedValue","_categoriesAggregatedValue","_initialCategories","sortByInitialCategories","sortAxisCategoriesByValue","axLookup","setupOne","clearCalc","setupMultiCategory","matchGroups","crossTraceCalc","spType","methods","sp","spInfo","_rehover","redrag","_redrag","A2","selections","B2","_previousSelections","mayEmitSelected","_reselect","generalUpdatePerTraceModule","subplot","subplotLayout","traceHashOld","traceHash","calcTraces","moduleNameOld","fakeCalcTrace","moduleName","plotBasePlot","desiredType","makeOnCompleteCallback","cdmodule","cleanBasePlot","had","require_xmlns_namespaces","svgAttrs","require_alignment","FROM_BL","middle","FROM_TL","FROM_BR","LINE_SPACING","CAP_SHIFT","MID_SHIFT","OPPOSITE_SIDE","require_svg_text_utils","xmlnsNamespaces","FIND_TEX","convertToTspans","_callback","tex","MathJax","svgClass","_texString","_config","originalRenderer","originalConfig","originalProcessSectionDelay","tmpDiv","MathJaxVersion","setConfig2","Hub","processSectionDelay","Config","messageStyle","tex2jax","inlineMath","displayAlign","setConfig3","setRenderer2","menuSettings","renderer","setRenderer","setRenderer3","startup","initiateMathJax","randomID","tmpNode","visibility","LT_MATCH","GT_MATCH","Typeset","typeset","finalizeMathJax","glyphDefs","nodeBBox","resetRenderer2","resetRenderer3","resetConfig2","resetConfig3","Queue","defaultReady","texToSVG","_svgEl","_glyphDefs","_svgBBox","newSvg","showText","mathjaxGroup","cloneNode","firstChild","preserveAspectRatio","hasLink","containerNode","NEWLINES","currentNode","nodeStack","currentLine","newLine","lineNode","oldNodeStack","enterNode","nodeSpec2","nodeAttrs","href2","href","popup","onclick","newNode","addTextNode","ZERO_WIDTH_SPACE","resetter","RESET_DY","SHIFT_DY","exitNode","innerNode","hasLines","BR_TAG","SPLIT_TAGS","parti","ONE_TAG","tagType","tagStyle","TAG_STYLES","convertEntities","nodeSpec","css","getQuotedMatch","STYLEMATCH","COLORMATCH","HREFMATCH","safeHref","sanitizeHref","TARGETMATCH","POPUPMATCH","buildSVGText","positionText","sup","em","PROTOCOLS","BR_TAG_ALL","_str","plainText","allowedTags","oldParts","newParts","prevTag","pLen","pLen2","ellipsis","entityToUnicode","amp","lt","gt","nbsp","times","plusmn","ENTITY_MATCH","fullMatch","innerMatch","stringFromCodePoint","fromCodePoint","stringFromCharCode","decodedHref","encodeURI","decodeURI","dummyAnchor1","dummyAnchor2","protocol","alignHTMLWith","_base","options","thisRect","getTop","getLeft","alignH","horizontalAlign","alignV","verticalAlign","bRect","cRect","_calcInverseTransform","transformedCoords","_invTransform","sanitizeHTML","rootNode","lineCount","setOrGet","thisX","thisY","nodeName","onePx","makeTextShadow","makeEditable","_delegate","delegate","handlerElement","handleClick","div","cStyle","initialText","fontFamily","outline","contenteditable","mathjaxClass","edit","editDiv","activeElement","blur","which","selectElementContents","_el","selectNodeContents","getSelection","removeAllRanges","addRange","focus","immediate","require_helpers","isValidScale","constantAttrs","letterAttrs","extractOpts","cLetter","colorAx","_colorAx","cont2","_sync","k3","k22","extractScale","reversescale","flipScale","sclNew","makeColorScaleFunc","specs","_range","sclFunc","_sclFunc","noNumericCheck","returnArray","colorArray2rbga","colorArray","colorObj","hasColorscale","colorKey","isArrayWithOneNumber","showscale","makeColorScaleFuncFromTrace","require_axis_format_attributes","descriptionOnlyNumbers","descriptionWithDates","axisHoverFormat","noDates","require_layout_attributes4","HOUR","DAY_OF_WEEK","minorTickmode","dtick","tickmode","makeNticks","minor","tickvals","makeTicklen","makeTickwidth","tickcolor","gridcolor","makeGridwidth","griddash","showgrid","standoff","autorange","autorangeoptions","minallowed","maxallowed","clipmin","clipmax","include","rangemode","fixedrange","insiderange","scaleanchor","scaleratio","constraintoward","rangebreaks","dvalue","nticks","ticklabelstep","ticktext","tickson","ticklabelmode","ticklabelposition","ticklabeloverflow","ticklabelshift","ticklabelstandoff","ticklabelindex","ticklen","tickwidth","showticklabels","labelalias","showspikes","spikecolor","spikethickness","spikedash","spikesnap","tickfont","tickangle","autotickangles","tickprefix","showtickprefix","ticksuffix","showticksuffix","showexponent","exponentformat","minexponent","tickformat","tickformatstops","dtickrange","hoverformat","showline","linecolor","linewidth","gridwidth","zeroline","zerolinecolor","zerolinewidth","showdividers","dividercolor","dividerwidth","categoryarray","require_attributes7","axesAttrs","orientation","thicknessmode","thickness","lenmode","xpad","ypad","outlinecolor","outlinewidth","borderwidth","require_attributes8","colorbarAttrs","palettes","onlyIfNumerical","colorAttr","noScale","showScaleDflt","colorscaleDflt","auto","autoImpliedEdits","minmaxImpliedEdits","autocolorscale","autoColorDflt","noColorAxis","coloraxis","require_layout_attributes5","colorScaleAttrs","sequential","sequentialminus","diverging","_isSubplotObj","require_has_colorbar","require_clean_ticks","axType","isLog","isDate","isCat","dtickDflt","dtickNum","require_tick_value_defaults","cleanTicks","isMinor","cIn","cOut","readInput","_tick0","_dtick","_tickvals","require_tick_mark_defaults","lAttr","tickLen","tickWidth","tickColor","outerTicks","require_show_dflt","showAttrs","require_array_container_defaults","parentObjIn","parentObjOut","previousContOut","contIn","handleItemDefaults","require_tick_label_defaults","getShowAttrDflt","handleArrayContainerDefaults","tickformatstopDefaults","valueIn","valueOut","showAttrDflt","noTicklabelshift","noTicklabelstandoff","contColor","dfltFontColor","bgColor","noTicklabelstep","noAng","tickAngle","noAutotickangles","noExp","require_prefix_suffix_defaults","tickSuffixDflt","require_defaults","handleTickValueDefaults","handleTickMarkDefaults","handleTickLabelDefaults","handlePrefixSuffixDefaults","colorbarOut","colorbarIn","isVertical","defaultX","defaultY","defaultYAnchor","isPaperY","isPaperX","defaultXAnchor","tickFont","dfltTitleFont","require_defaults2","hasColorbar","colorbarDefaults","npMaybe","parentCont","colorScaleDefaults","parentContIn","parentContOut","inTrace","thisFn","colorAxes","colorbarVisuals","stash","minIn","maxIn","validMinMax","autoColorscaleDflt","sclIn","sclTemplate","require_layout_defaults","colorAxIn","colorAxOut","coerceAx","require_cross_trace_defaults","relinkColorAttrs","outerCont","cbOpt","isAuto","cbOpts","require_calc","minVal","maxVal","require_colorscale","helpers","handleDefaults","getScale","require_subtypes","hasMarkers","hasText","isBubble","require_make_bubble_size_func","sizeRef","sizeref","sizeMin","sizemin","baseFn","sizemode","baseSize","require_helpers2","getSubplot","geo","isTraceInSubplots","xaxes","yaxes","flat","p2c","axArray","getDistanceFunction","dxy","quadrature","getClosest","distfn","pointData","newDistance","inbox","passVal","makeEventData","pointNumber","curveNumber","pointIndices","pointIndex","eventData","xVal","yVal","zLabelVal","appendArrayPointValue","getPointKey","pointVal","getPointData","appendArrayMultiPointValues","pointNumbers","keyVal","pointKeyMap","locations","parents","xyHoverMode","unifiedHoverMode","isUnifiedHover","isXYhover","require_parse_svg_path","parseValues","require_symbol_defs","lastPathIn","lastPathOut","lastAngle","lastStandoff","parseSvgPath","emptyPath","sqrt2","sqrt3","skipAngle","t4","cosT","sinT","cmd","cmdI","E2","rs","rd","rc2","r2","pentagon","hexagon","hexagon2","octagon","star","hexagram","aPart","hourglass","noDot","bowtie","needLine","noFill","asterisk","backoff","arrow","headAngle","require_drawing","Colorscale","svgTextUtils","subTypes","makeBubbleSizeFn","drawing","dropNone","textcase2transformOptions","textcase2transform","lineposition2decorationLine","setFillStyle","forLegend","markerPattern","fillpattern","fillgradient","patternShape","getPatternAttr","patternBGColor","patternFGColor","patternFGOpacity","patternSize","patternSolidity","patternID","gradientID","gradient","_xA","c2p","_yA","gradientWithBounds","setPosition","setSize","setRect","translatePoint","translatePoints","hideOutsideRangePoint","xcalendar","ycalendar","isPtWithinRange","hideOutsideRangePoints","traceGroups","crispRound","lineWidth","singleLineStyle","lw","ld","lw1","dashLine","lineGroupStyle","dashStyle","dlw","singleFillStyle","fillGroupStyle","SYMBOLDEFS","symbolNames","symbolFuncs","symbolBackOffs","symbolNeedLines","symbolNoDot","symbolNoFill","symbolList","symDef","MAXSYMBOL","makePointPath","symbolNumber","vbase","stopFormatter","gradientInfo","radialreversed","reversed","horizontal","horizontalreversed","vertical","verticalreversed","inUserSpace","info","gradientUnits","colorStops","fullID","_uid","_defs","stops","getFullUrl","calledBy","mcc","isLegend","patternTag","patternAttrs","fgC","fgRGB","patternUnits","patternTransform","bgC","bgRGB","bgAlpha","rects","patterns","initGradients","initPatterns","mp","pointStyle","fns","makePointStyleFns","singlePointStyle","markerLine","selectedOpacityFn","ms2mrc","mrc","selectedSizeFn","mx","om","getMarkerAngle","getMarkerStandoff","fillColor","lineColor","perPointGradient","so","outlierwidth","outliercolor","markerLineWidth","mlw","mlcc","lineScale","mlc","markerScale","mc","colors","selectedColorFn","isBlank","markerGradient","mgt","gradientColor","mgc","perPointPattern","tryColorscale","makeSelectedPointStyleFns","selectedAttrs","unselectedAttrs","selectedMarker","unselectedMarker","smo","usmo","smoIsDefined","usmoIsDefined","smc","usmc","sms","usms","smsIsDefined","usmsIsDefined","makeSelectedTextStyleFns","textFont","textfont","selectedTextFont","unselectedTextFont","stc","utc","selectedTextColorFn","selectedPointStyle","mrc2","lastDrawnX","lastDrawnY","TEXTOFFSETSIGN","textPointPosition","textPosition","markerRadius","dontTouchParent","numLines","extracTextFontSize","roundEnd","isY","isLastPoint","applyBackoff","roundY","roundX","makeTangent","prevpt","thispt","nextpt","smoothness","d1x","d1y","d2x","d2y","d1a","CatmullRomExp","d2a","numx","numy","denom1","denom2","textPointStyle","formatLabels","pointValues","tp","fontColor","tf","tw","ty","tv","tC","tE","tS","selectedTextStyle","smoothopen","smoothclosed","pLast","STEPPATH","hv","vh","hvh","vhv","STEPLINEAR","arrayBackoff","endI","endMarker","endMarkerSymbol","endMarkerSize","onestep","makeTester","tester","testref","savedBBoxes","savedBBoxesCount","nodeHash","inputText","localId","_exportedPlot","_baseUrl","bBox","inTester","testNode","innerBB","testRect","refRect","setClipUrl","getTranslate","setTranslate","getter","SCALE_RE","setPointGroupScale","TEXT_POINT_LAST_TRANSLATION_RE","mf","_geo","setTextPointsScale","existingTransform","previousLon","previousLat","previousX","previousY","previousI","previousTraceUid","ma","angleref","project","lonlat","lon","lat","north","east","lon1","lat1","lon2","lat2","dLon","deltaX","dX","dY","lastShapeChar","require_titles","Drawing","interactConstants","numStripRE","draw","titleClass","editAttr","propContainer","propName","placeholder","avoid","containerGroup","txt","titleIsPlaceholder","fontWeight","fontStyle","fontVariant","fontTextcase","fontLineposition","fontShadow","subtitleEnabled","subtitlePropName","subtitlePlaceholder","subtitleTxt","subtitleIsPlaceholder","subtitleOpacity","subtitleFont","subFontFamily","subFontSize","subFontColor","subFontWeight","subFontStyle","subFontVariant","subFontTextcase","subFontLineposition","subFontShadow","matchesPlaceholder","placeholder2","hColorbarMoveTitle","elShouldExist","_hColorbarMoveTitle","subtitleEl","subtitleClass","subtitleElShouldExist","titleLayout","titleEl","subtitleEl2","drawTitle","scootTitle","titleAndSubtitleEls","transformVal","titleElMathGroup2","subtitleElement","titleElMathBbox2","getBBox","subtitleY3","titleElMathGroup","titleElBbox2","titleElMathBbox","subtitleY2","subtitleAttributes","titleElIn","titleGroup","backside","shiftSign","titlebb","paperbb","maxshift","maxShift","offsetLeft","offsetTop","avoidbb","_titleScoot","shiftTemplate","setPlaceholder","placeholderText","titleElBbox","subtitleY","SUBTITLE_PADDING_EM","SUBTITLE_PADDING_MATHJAX_EM","require_set_convert","axisIds","fromLog","isValidCategory","toLog","dt2ms","msUTC","ms2dt","getCategoryName","setCategoryIndex","curLength","getCategoryIndex","getCategoryPosition","getRangePosition","_l2p","_p2l","l2p","_m","p2l","_rangebreaks","signAx","_B","_m2","pmin","pmax","c2l","l2c","d2r","r2d","d2c","r2c","c2d","c2r","l2r","d2p","r2p","p2d","p2r","cleanPos","d2l_noadd","fraction2r","r2c_just_indices","_matchGroup","axId2","ind0","ind1","rl0","rl1","r2fraction","limitRange","rangeAttr","rng","axrev","minL","maxL","_max","_min","cleanRange","_cleanRange","nullRange0","nullRange1","linCenter","inc","usePrivateRange","brk","isY2","_offset","_lBreaks","locateBreaks","maskBreaks","bnds","vDate","rangebreaksIn","_cachedPatterns","brk2","_cachedValues","rangebreaksOut","addBreak","isNewBreak","brkj","bndDelta","t0Date","makeCalcdata","cal","setMultiCategoryIndex","isValidRange","nullOk","getAutorangeDflt","autorangeDflt","reverseDflt","isReversed","_emptyCategories","categoriesMap","_dateFormat","_separators","_numFormat","_minDtick","_forceTick0","require_axis_autotype","hasTypeNumber","convertNumeric","getIncrement","noMultiCategory","multiCategory","dats","nums","ai","stri","moreDates","cats","linearOK","require_autorange","axIds","getAutoRange","newRange","getPadMin","makePadFn","getPadMax","extremes","concatExtremes","minArray","maxArray","minmin","maxmax","axReverse","minpt","maxpt","minbest","maxbest","dp","rangeMode","toZero","nonNegative","axLen","minSpan","mbest","calcBreaksLength","nopad","maxPad","prev","rangeEnd","applyAutorangeOptions","lBreaks","extrappad","anchorAxis","_vals","_tickAngles","cosA","sinA","_selections","thisLabel","padInsideLabelsOnAnchorAxis","_inputDomain","extrapad","noMatch","_concat","collapseMinArray","collapseMaxArray","annotations","_annIndices","_shapeIndices","extremes2","lenRatio","newPad","collapseArray","atLeastAsExtreme","tozero","includeThis","clipAtZero","goodNumber","hasValidMinAndMax","lMin","lMax","applyAutorangeMinOptions","applyAutorangeMaxOptions","doAutoRange","presetRange","_rl","axIn","rangeslider","axeRangeOpts","findExtremes","dmin","dmax","ppadiplus","ppadiminus","vmin","vmax","padded","hasArrayOption","vpadLinearized","makePadAccessor","ppadplus","ppadminus","ppad","vpadplus","vpad","vpadminus","collapseOpts","addItem","iMax","require_axes","Titles","axAttrs","HALFDAY","ZERO_PATH","K","GRID_PATH","MINORGRID_PATH","TICK_PATH","TICK_TEXT","MARGIN_MAPPING","alignmentConstants","axes","setConvert","autoType","expandRange","coerceRef","extraOption","axlist","refAttr","attrDef","getRefType","coercePosition","axRef","cleanPosition","redrawComponents","_redrawOneComp","methodName","stashName","shortCircuit","getDataConversions","targetArray","d2cTarget","toNum","isMultiple","bigger","smaller","isClose","nMonths","filterRangeBreaks","ticksOut","syncTicks","baseAxis","noTick","tickText","arrayTicks","majorOnly","exRng","tickMin","tickMax","tickVal2l","getDataToCoordFunc","counterLetter","minDtick","newDiff","newFirst","allow","saveRangeInitial","overwrite","hasOneAxisChanged","isNew","_rangeInitial0","_rangeInitial1","hasChanged","autorange2","_autorangeInitial","saveShowSpikeInitial","allSpikesEnabled","_showSpikeInitial","_showspikes","_cartesianSpikesEnabled","autoBin","nbins","is2d","dummyAx","dataMin","dataMax","_dataSpan","size0","distinctData","msexp","minSize","autoTicks","binEnd","finalSize","binStart","tickIncrement","tickFirst","edgecount","midcount","intcount","nearEdge","binshift","autoShiftNumericBins","stats","numMonths","nextBinStart","autoShiftMonthBins","prepMinorTicks","mockAx","mockMinorRange","hasMajor","_tmin","tick2","_isMinor","prepTicks","numericMajor","numericMinor","majorNum","minorNum","_tick0Init","minPx","nt","_roughDTick","definedDelta","mDate","isMDate","getTickFormat","noDtick","_dtickInit","_dowTick0","_rawTick0","_definedDelta","adjustPeriodDelta","autoTickRound","calcTicks","period","lastVisibleHead","isPeriod","ticklabelIndex","minRange","maxRange","maxTicks","minorTicks","tickVals","minorTickVals","allTicklabelVals","hasMinor","major","startTick","endTick","numDtick","isDLog","majorId","_dTick","prevX","moveOutsideBreak","simpleLabel","skipLabel","allTickVals","majorIdx","nextLabelIdx","minorIdx","majorValues","inBetween","actualDelta","periodLength","endPeriod","drop","periodX","positionPeriodTicks","prevL","isAngular","_tmax","_prevDateHead","_inCalcTicks","hideLabel","setTickLabel","tickVal","_minor","_value","roundBase10","roundBase24","roundBase60","roundDays","roundLog1","roundLog2","roundAngles","roundDTick","roughDTick","roundingSet","_tickexponent","_tickround","tick0ms","tick0str","tick0len","tick1len","maxend","rangeexp","isSIFormat","beyondSI","tickTextObj","getBase","roughX2","_hasDayOfWeekBreaks","olddtick","axSign","tType","dtSigned","tickset","sRound","tmin","dtNum","mult","newDTick","hover","noSuffixPrefix","arrayMode","extraPrecision","inbounds","xbnd","showAttr","firstOrLast","hideexp","headStr","splitIndex","isInside","insideTicklabelposition","_trueSide","dtChar0","numFormat","absP","exponentFormat","firstChar","formatLog","tt","formatCategory","tt2","text2","formatMultiCategory","thetaunit","almostEq","findGCD","findPrecision","gcd","num2frac","isNeg","formatAngle","formatLinear","hoverLabelText","val2","logOffScale","SIPREFIXES","fmtoverride","tickRound","signedExponent","filterPush","keepMargin","nextKey","getSecondaryLabelVals","getPosX","tickDataFn","axInfo","approxTitleDepth","extraLines","clipEnds","selectTickLabel","gTick","mj","axAutoMarginID","axMirrorAutoMarginID","rangeSliderAutoMarginID","mergeAxisGroups","intoSet","fromSet","swapAxisGroup","xIds","yIds","xFullAxes","yFullAxes","allAxKeys","noSwapAttrs","numericTypes","keyi","allEqual","coerceLinearX","coerceLinearY","xVali","yVali","swapAxisAttrs","ann","dfltTitle","hideCounterAxisInsideTickLabels","_hideCounterAxisInsideTickLabels","incrementShift","shiftVal","axShifts","normalize","shiftValAdj","overlay","tickstop","stopi","convertFn","leftDtick","rightDtick","convertToMs","compareLogTicks","leftPriority","rightPriority","isProperLogStop","isLeftDtickNull","isRightDtickNull","isDtickInRangeLeft","isDtickInRangeRight","getSubplots","subplotObj","allSubplots","gl2d","findSubplotsWithAxis","aParts","bParts","axMatch","subplotsWithAx","makeClipPaths","fullWidth","fullHeight","xaList","yaList","clipList","axClips","_clips","xaxislayer","yaxislayer","minorGridlayer","gridlayer","zerolinelayer","overlayingShiftedAx","overlayingIndex","findIndex","false","axDone","drawOne","_shiftPusher","_fullDepth","mainPlotinfo","selfPush","skipTitle","_shift","setShiftVal","mainAxLayer","mainLinePosition","_mainLinePosition","mainLinePositionShift","mainMirrorPosition","_mainMirrorPosition","_prevTickAngles","_depth","llbboxes","valsClipped","transTickFn","makeTransTickFn","transTickLabelFn","makeTransTickLabelFn","insideTicks","outsideTicks","boundaryVals","_push","bndIndex","xb","getBoundaryVals","tickPath","gridVals","_gridVals","dividerVals","current","getDividerVals","finishedGrids","counterAxis","mainCounterID","gridPath","drawGrid","minorLayer","transFn","drawZeroLine","majorTickSigns","getTickSigns","minorTickSigns","mirrorMajorTickPath","mirrorMinorTickPath","fullMajorTickPath","fullMinorTickPath","majorTickPath","makeTickPath","minorTickPath","dividerLookup","drawTicks","tickSubplots","_linepositions","linepositions","spTickPath","drawLabels","labelFns","makeLabelFns","bboxKey","getLabelLevelBbox","repositionOnUpdate","secondary","dividers","drawDividers","hasRangeSlider","titleStandoff","offsetBase","getPxPosition","tickLabels","translation","_titleStandoff","llbbox","mirrorPush","rangeSliderPush","sMirror","outsideTickLen","axDepth","titleDepth","domainIndices","rExtra","lExtra","bExtra","tExtra","dummyCalc","yFn","xFn","calcLabelLevelBbox","sideOpposite","main","uv","isTop","isLeft","isRight","isBottom","isAligned","getTickLabelUV","labelsInside","labelsOutside","sgn","insideTickLabels","labelsOverTicks","labelStandoff","labelShift","ff","flipIt","endSide","xQ","anchorFn","heightFn","ang","rA","crisp","minorVals","majorVals","shouldShowZeroLine","isArrayMode","_gw","wMinor","majorLayer","grid","show","zl","prevAngle","labelsReady","positionLabels","nLines","lineHeight","anchorHeight","_adjustTickLabelsOverflow","mjShift","newPromise","hideOverflow","p02","p12","visibleLabelMin","visibleLabelMax","adjust","anchorAx2","partialOpts","anchoredAxes","isPeriodLabel","autoangle","maxFontSize","lbbArray","maxLines","preventOverlapWithTick","vLen","adjacent","opposite","maxCos","autoTickAnglesRadians","degrees3","angleRadians","currentMax","nextAngle","newAngle","gap","lbb","computeTickLabelBoundingBoxes","labelsMaxW","labelsMaxH","_insideTickLabelsUpdaterange","BBs","otherIndex","anchorAxRange","_tempNewRange","q0","q1","dist","mainCounterAxis","zeroPosition","mainplotinfo","overlays","lineNearZero","counterLetterAxes","counterAxis2","closeEnough","pos2","linePositions","anyCounterAxLineAtZero","hasBarsOrFill","axGroups","groupsi","groupj","group0","makeAxisGroups","require_autorange_options_defaults","require_range_defaults","handleAutorangeOptionsDefaults","axTemplate","noInsiderange","shouldAutorange","require_mouse_event_offset","rootPosition","currentTarget","srcElement","require_has_passive_events","supported","detect","require_align","vc","require_cursor","cursorset","require_unhover","hoverConstants","unhover","evt","raw","oldhoverdata","_hoverlayer","require_dragelement","mouseOffset","supportsPassive","dragElement","getCursor","coverSlip","cover","zIndex","pointerOffset","unhoverRaw","startX","startY","newMouseDownTime","cursor","dragCover","initialEvent","initialTarget","rightClick","numClicks","pointerEvents","onmousedown","onStart","_ontouchstart","passive","ontouchstart","clampFn","minDrag","buttons","ctrlKey","prepFn","onMove","dxdy","moveFn","clickEvent","doneFn","toElement","clickFn","dispatchEvent","MouseEvent","require_setcursor","csr","require_override_cursor","setCursor","STASHATTR","savedCursor","classes","require_attributes9","traceorder","tracegroupgap","entrywidth","entrywidthmode","indentation","itemsizing","itemwidth","itemclick","itemdoubleclick","groupclick","valign","require_helpers3","isGrouped","legendLayout","require_defaults3","plotsAttrs","basePlotLayoutAttributes","groupDefaults","legendId","itemFont","traceCoerce","legendTraceCount","legendReallyHasATrace","defaultOrder","shapesWithLegend","allLegendItems","isShape","_isShape","barmode","showLegend","isHorizontal","allLegendsData","mockTrace","legends","_legends","require_handle_click","SHOWISOLATETIP","itemClick","itemDoubleClick","groupClick","toggleGroup","hiddenSlices","hiddenlabels","legendItem","groupTitle","noClick","kcont","dataUpdate","dataIndices","carrs","carrIdx","updatedShapes","shapesUpdated","thisLegend","fullInput","tracei","hasLegendgroup","traceIndicesInGroup","nextVisibility","setVisibility","isClicked","notInLegend","otherState","_item","isIsolated","updateKeys","thisLabelIndex","unhideList","dLabel","fullInput2","isShape2","nextVisibility2","attrIndex","valueArray","insertDataUpdate","require_constants3","scrollBarWidth","scrollBarMinHeight","scrollBarColor","scrollBarMargin","scrollBarEnterAttrs","titlePad","itemGap","require_get_legend_data","hasMultipleLegends","inHover","_inHover","grouped","lgroupToTraces","lgroups","hasOneNonBlankGroup","slicesShown","lgroupi","maxNameLength","addOneItem","legendGroup","uniqueGroup","lid","lgroup","labelj","shouldCollapse","legendData","groupMinRank","rank","_groupMinRank","_preGroupSort","orderFn2","_preSort","firstItemTrace","_groupTitleFont","hasPieLike","_lgroupsLength","_maxNameLength","require_helpers4","vRounded","formatPiePercent","formatPieValue","getFirstFilled","getRotationAngle","rotation","require_fill_one","require_style_one","fillOne","require_style","stylePie","pieCastOption","getGradientDirection","isRadial","getStyleGuide","contours","showLine","showMarker","showFill","showGradientLine","showGradientFill","coloring","showlines","_operation","anyLine","anyFill","dimAttr","constantItemSizing","itemWidth","centerPos","centerTransform","boundLineWidth","cst","styleBarLike","lThis","pathStr","cornerradius","isVisible","barpath","stylePieLike","tMod","d0Mod","traceGroup","layers","markerOffsetY","markerOffsetX","useGradient","ptsData","dd","vertexcolor","facecolor","isWaterfall","_distinct","hasTotals","boxpoints","dMod","styleGuide","pathStart","this3","boundVal","attrIn","arrayToValFn","valToBound","pickFirst","dEdit","tEdit","ptgroup","require_draw","getLegendData","LEGEND_PATTERN","clipId","legendObj","getId","shapeLegend","_topdefs","clipPath","scrollBox","_titleWidth","_titleHeight","textLayout","scrollBar","drawTexts","setupTraceToggle","isFraction","bw","bw2","textGap","endPad","getYanchor","isBelowPlotArea","isAbovePlotArea","traceGroupGap","legendGroupWidths","_maxHeight","toggleRectWidth","_width","_height","titleSize","getTitleSize","getXanchor","isLeftOfPlotArea","isRightOfPlotArea","isBeyondPlotAreaY","hw","_maxWidth","maxItemWidth","combinedItemWidth","getTraceWidth","maxRowWidth","maxGroupHeightInRow","groupOffsetX","groupOffsetY","maxWidthInGroup","offsetY2","nTraces","oneRowLegend","maxItemHeightInRow","rowWidth","_effHeight","isEditable","traceToggle","traceWidth","computeLegendDimensions","xf","yf","titleOffset","textNode","horizontalAlignTitle","expMargin","sideY","sideX","possibleReservedMargins","expandMargin","lx0","ly0","_scrollY","eventY0","eventY1","scrollBoxY0","scrollBarHeight","scrollBarYMax","scrollBoxYMax","scrollRatio","scrollBoxY","scrollHandler","scrollBarDrag","scrollBoxTouchDrag","scrollBoxY2","scrollBarHeight2","scrollRatio2","newY","clickedTrace","clickOrDoubleClick","legendWidth","traceLegendWidth","evtData","expandedIndex","_group","clickVal","_clickTimeout","isPieLike","textEl","ensureLength","maxLength","targetLength","aTitle","mathjaxNode","mathjaxBB","textLines","computeTextDimensions","newLegends","require_hover","overrideCursor","Axes","legendSupplyDefaults","legendDraw","YA_RADIANS","YFACTOR","YSHIFTX","YSHIFTY","multipleHoverPoints","box","ohlc","violin","candlestick","cartesianScatterPoints","scatter","scattergl","splom","distanceSort","hoverDataKey","noHoverEvent","spId","firstXaxis","firstYaxis","hasCartesian","hovermodeHasX","hovermodeHasY","subplotsLength","subplotsWith","overlayedSubplots","xaArray","yaArray","supportsCompare","_subplot","xvalArray","yvalArray","itemnum","curvenum","subploti","_mode","xval","yval","closedataPreviousLength","hoverData","searchData","spikePoints","hLinePoint","vLinePoint","hasOneHorizontalTrace","xpx","ypx","zorderedCalcdata","dbb","pointerX","pointerY","findHoverPoints","customXVal","customYVal","maxHoverDistance","maxSpikeDistance","spikeDistance","xSpike","ySpike","xLabelVal","yLabelVal","_splomScenes","hoverPoints","newPoints","finiteRange","hoverLayer","newPoint","newPointNum","cleanPoint","closestPoints","tmpPoint","closestVPoints","closestVPt","fillSpikePoint","closestHPoints","closestHPt","selectClosestPoint","pointsData","spikedistance2","spikeOnWinning2","thisSpikeDistance","resultPoint","minDistance","spikelineOpts","_spikepoints","newspikepoints","sortHoverData","hoverDataInSubplot","hoverDataOutSubplot","orderRangePoints","spikeOnWinning","tmpHPoint","tmpVPoint","createSpikelines","winningPoint","initLen","getCoord","finalPoints","newHd","oldId","oldHd","newhoverdata","gTop","getTopOffset","gLeft","getLeftOffset","ht","_x0","_x1","_y0","_y1","rotateLabels","hoverText","createHoverText","outerContainer","commonLabelOpts","hoverLabels","commonLabelBoundingBox","donepositioning","topOverlap","bottomOverlap","pti","sumdp","axKey","crossAxKey","nummoves","nLabels","pointgroups","axisLabelMinX","minX","axisLabelMaxX","maxX","axisLabelMinY","minY","axisLabelMaxY","maxY","pX","_invScaleX","pY","_invScaleY","constrainGroup","grp2","minPt","maxPt","deleteCount","del","crossAx","axIsX","labelMin","labelMax","getHoverLabelOffsets","horzSign","crossPos","tx2width","endX","posref","g0","g1","grp","hoverPt","hoverAvoidOverlaps","alignHoverText","tagName","hasClickToShow","oldPt","newPt","hoverChanged","xvals","yvals","_hover","loneHover","hoverItems","multiHover","hoverLabel","hoverItem","inOut_bbox","xLabel","yLabel","zLabel","idealAlign","borderColor","nameLength","textAlign","hovertemplateLabels","lastBottomY","topY","anchorIndex","EXTRA_STRING_REGEX","c0","axLabel","outerContainerBB","outerTop","outerWidth","outerHeight","showCommonLabel","traceHoverinfo","allHaveZ","commonLabel","commonLabelRect","lpath","ltext","commonBgColor","commonStroke","contrastColor","commonLabelOptsFont","commonLabelFont","lx2","ly2","tbb2","topsign","halfWidth","tooltipMidX","leftsign","halfHeight","lty","ltx","dummyBB","textClip","_topclips","groupedHoverData","mockLayoutIn","mockLayoutOut","mockLegend","texts","getHoverLabelText","lyBottom","lyTop","lxRight","lxLeft","legendContainer","tbb","tWidth","tHeight","avgX","avgY","pointWon","xOffset","yOffset","dColor","color0","numsColor","nameColor","texts2","tx2","tx2height","t2bb","hty","tbbWidth","tbbHeight","ty0","txwidth","anchorStartOK","anchorEndOK","txTotalWidth","txHalfWidth","overflowR","overflowL","nameOverride","extraText","scaleX","scaleY","alignShift","textShiftX","text2ShiftX","shiftX","isMiddle","posX","posY","pass","getVal","xhoverformat","yhoverformat","xerr","xeText","xerrneg","yerr","yeText","yerrneg","infomode","showY","showX","hLinePointX","hLinePointY","xBase","xEndSpike","dfltHLineColor","yMode","yThickness","yColor","xEdge","xAcross0","xAcross1","vLinePointX","vLinePointY","yBase","yEndSpike","dfltVLineColor","xMode","xThickness","xColor","yEdge","yAcross0","yAcross1","periodalignment","posLetter","boxmode","violinmode","dPos","Ax","Ay","Bx","By","require_hoverlabel_defaults","hasLegend","inheritFontAttr","require_layout_global_defaults","handleHoverLabelDefaults","require_defaults4","require_hovermode_defaults","require_layout_defaults2","handleHoverModeDefaults","hasMapbox","hasMap","hasGeo","require_calc2","paste","makeCoerceHoverInfo","trace2","fillFn","require_click","annotationsDone","emitClick","stopImmediatePropagation","require_fx","hoverModule","castHoverOption","castHoverinfo","loneUnhover","containerOrSelection","require_helpers5","selectMode","drawMode","openMode","rectMode","freeMode","selectingOrDrawing","require_clear_gl_canvases","regl","require_ploticon","home","zoombox","pan","zoom_plus","zoom_minus","autoscale","tooltip_basic","tooltip_compare","plotlylogo","camera","movie","question","disk","drawopenpath","drawclosedpath","lasso","selectbox","drawline","drawrect","drawcircle","eraseshape","spikeline","pencil","newplotlylogo","require_constants4","CIRCLE_SIDES","i000","i090","i180","i270","cos45","sin45","require_helpers6","axValue","getTransform","require_helpers7","cartesianHelpers","iC","iQS","writePaths","nI","nJ","nK","realK","readPaths","isActiveShape","initX","initY","polys","recStart","newPos","cenX","cenY","xPixelSized","xsizemode","yPixelSized","ysizemode","noOffset","_x","_y","pointsOnRectangle","pointsOnEllipse","handleEllipse","isEllipse","ellipseOver","fixDatesForPaths","xIsDate","yIsDate","require_newshapes","dragHelpers","createShapeObj","outlines","dragOptions","newStyle","xPaper","yPaper","isOpenMode","newShape","xA","xB","xC","xD","yA","yB","yC","yD","xDateOrLog","yDateOrLog","newShapes","_activeShapeIndex","editHelpers","allShapes","beforeEdit","afterEdit","require_newselections","isActiveSelection","_activeSelectionIndex","newSelection","allSelections","require_constants5","segmentRE","paramRE","paramIsX","drawn","paramIsY","numParams","require_helpers8","getPixelShift","shiftPixels","rangeToShapePosition","shapePositionToRange","decodeDate","convertToPx","encodeDate","convertToDate","extractPathCoords","paramsToUse","isRaw","extractedCoordinates","relevantParamIdx","params","getDataToPixel","refType","dataToPixel","getPixelToData","pixelToData","roundPositionForSharpStrokeRendering","strokeWidth","strokeWidthIsOdd","posValAsInt","makeShapesOptionsAndPlotinfo","_hadPlotinfo","makeSelectionsOptionsAndPlotinfo","getPathString","x2r","x2p","y2r","y2p","xRefType","yRefType","xShiftStart","xShiftEnd","yShiftStart","yShiftEnd","pathIn","xSizemode","ySizemode","xAnchor","yAnchor","paramNumber","segmentType","xParams","yParams","nParams","paramString","param","convertPath","xAnchorPos","yAnchorPos","rightPt","require_display_labels","shapeGroup","templateValues","_xa","_ya","shapex0","shapex1","shapey0","shapey1","labelGroupAttrs","labelText","calcTextAngle","textPos","shapeOptions","actualTextAngle","textBB","textx","texty","paddingX","paddingY","textAngle","textPadding","shapeType","textAngleRad","paddingConstantsX","paddingConstantsY","paddingDirection","shiftFraction","baselineAdjust","textHeight","calcTextPosition","require_display_outlines","newSelections","drawLabel","getNextPoint","nextJ","nextX","nextY","displayOutlines","nCalls","redrawing","updateObject","vertexDragOptions","groupDragOptions","indexI","indexJ","copyPolygons","isDrawMode","isSelectMode","polygonsOut","polygonsIn","recordPositions","onRect","onEllipse","nextPoint","rectSelection","startDragVertex","endDragVertexController","clickVertexController","addVertexControllers","startDragGroupController","endDragGroupController","clickGroupController","addGroupControllers","moveVertexController","_dx","_dy","newPolygon","removeVertex","moveGroupController","moveGroup","erasedSelection","_deselect","eraseActiveSelection","require_draw2","_shapeUpperLayer","_shapeLowerLayer","shapelayer","shouldSkipEdits","couldHaveActiveShape","_paperdiv","drawShape","shapeLayer","lineDash","isOpen","setClipPath","shapePath","optN","optS","optW","optE","dragMode","MINWIDTH","MINHEIGHT","isLine","isPath","shiftXStart","shiftXEnd","shiftYStart","shiftYEnd","p2x","p2y","sensoryElement","obtainSensoryElement","startDrag","endDrag","abortDrag","createLineDragHandles","minSensoryWidth","sensoryWidth","circleStyle","circleRadius","updateDragMode","dragBBox","renderVisualCues","deactivateClipPathTemporarily","moveShape","resizeShape","removeVisualCues","noOp","moveX","moveY","movePath","newX0","newY0","newX1","newY1","hasN","hasS","hasW","hasE","newN","newS","newW","newE","shapeLayer2","shapeOptions2","renderAnchor","isNotPath","visualCues","crossPath","vBarPath","hBarPath","shapePath2","gd2","xa2","ya2","clipAxes","onmousemove","setupDragElement","deactivateShape","_deactivateShape","activateShape","shapelayerBetween","eraseActiveShape","require_buttons","Icons","handleCartesian","button","axName","mag","rangeNow","rangeNew","_isHoriz","handleDrag3d","sceneIds","val2d","handleCamera3d","resetLastSave","resetDefault","didUpdate","sceneId","aspectratio","aspectmode","viewInitial","getNextHover3d","_previousVal","currentSpikes","sceneLayout","hovermodeAStr","spikeAStr","handleGeo","geoIds","geoLayout","newScale","resetView","getNextHover","toggleHover","newHover","handleMapboxZoom","_handleMapZoom","handleMapZoom","subplotIds","aObj","viewKeys","toImage","icon","filename","editInChartStudio","zoom2d","_cat","pan2d","select2d","lasso2d","zoomIn2d","zoomOut2d","autoScale2d","resetScale2d","hoverClosestCartesian","hoverCompareCartesian","zoom3d","pan3d","orbitRotation","tableRotation","resetCameraDefault3d","resetCameraLastSave3d","hoverClosest3d","toggle","zoomInGeo","zoomOutGeo","resetGeo","hoverClosestGeo","hoverClosestPie","resetViewSankey","_viewInitial","resetViews","toggleSpikelines","areSpikesOn","setSpikelineVisibility","resetViewMapbox","resetViewMap","zoomInMapbox","zoomInMap","zoomOutMapbox","zoomOutMap","require_constants6","buttonList","DRAW_MODES","backButtons","foreButtons","addToForeButtons","require_attributes10","activecolor","require_defaults5","modebar","require_modebar","Parser","DOMParser","ModeBar","graphInfo","modeBarId","groupSelector","backgroundColor","needsNewButtons","hasButtons","needsNewLogo","hasLogo","needsNewLocale","removeAllButtons","updateButtons","logoGroup","getLogo","updateActiveButton","buttonElements","buttonsNames","buttonGroup","createGroup","buttonConfig","buttonName","createButton","createIcon","thisIcon","iconHeight","ascent","descent","svgNS","parseFromString","buttonClicked","dataAttrClicked","thisval","dataAttr","isToggleButton","button3","updateButtonStyle","button2","isActive2","isActive","currentButtons","modeBar","_modebardiv","_privateplot","require_manage","scatterSubTypes","createModeBar","buttonGroups","customButtons","originalModeBarButtons","fillCustomButton","layoutAdd","layoutRemove","buttonsToAdd","buttonsToRemove","hasGL3D","hasPie","hasFunnelarea","hasTernary","hasPolar","hasSmith","hasSankey","allAxesFixed","areAllAxesFixed","hasUnifiedHoverLabel","addGroup","newGroup","commonGroup","zoomGroup","hoverGroup","resetGroup","dragModeGroup","hasNoHover","selectable","isSelectable","enabledHoverGroup","enableHover","newList","appendButtonsToGroups","getButtonGroups","require_modebar2","manage","require_scale_zoom","centerFraction","rangeLinear","require_constraints","scaleZoom","handleOneAxDefaults","axOut","hasImage","constraintGroups","splomStash","thisID","_constraintGroup","linkableAxes","thisGroup","getConstraintGroup","linkableAxesNoLoops","canLink","scaleanchorDflt","updateConstraintGroups","matchedAx","matchRatio","thatID","groupi","keyj","thisGroupIndex","thisGroupKeys","baseScale","multiplyScales","aLen","bLen","aPrefix","bPrefix","finalRatios","yRatio","updateDomain","inputDomain","axHasImage","stashAttr","axName2","matchAttrs","hasRange","hasDayOfWeekBreaks","setAttrVal","baseAx","enforce","axisID","normScale","minScale","maxScale","matchScale","normScales","hasAnyDomainConstraint","_inputRange","_constraintShrinkable","domainShrunk","rangeShrunk","rangeCenter","rangeMin","rangeMax","halfRange","outerMin","outerMax","getAxisGroup","isConstrained","require_subroutines","clearGlCanvases","axisConstraints","enforceAxisConstraints","cleanAxisConstraints","SVG_TEXT_ANCHOR_START","SVG_TEXT_ANCHOR_MIDDLE","SVG_TEXT_ANCHOR_END","overlappingDomain","xDomain","yDomain","domains","existingX","existingY","lsInner","_hasZeroWidth","_hasZeroHeight","drawMainTitle","getLinePosition","counterAx2","lwHalf","_lw","lowerBackgroundIDs","backgroundIds","lowerDomains","noNeedForBg","mainplot","plotgroup","pgNode","plotgroupBg","xLinesXLeft","xLinesXRight","xLinesYBottom","xLinesYTop","leftYLineWidth","rightYLineWidth","yLinesYBottom","yLinesYTop","yLinesXLeft","yLinesXRight","connectYBottom","connectYTop","extraSubplot","lowerBackgrounds","subplot2","plotClipId","layerClipId","plotClip","clipRect","xLinePath","xLinePathFree","yLinePath","yLinePathFree","mainPath","pathFn","pathFnFree","xPath","shouldShowLinesOrTicks","findCounterAxisLineWidth","xlines","yPath","ylines","shouldShowLineThisSide","sideIndex","axi","getMainTitleDyAdj","layoutStyles","textAnchor","getMainTitleTextAnchor","getMainTitleDy","vPadShift","getMainTitleY","hPadShift","getMainTitleX","titleObj","titleHeight","titleY","titleYanchor","curMargin","containerPushVal","needsMarginPush","titleID","reservedPush","yPosTop","yPosRel","isOutsideContainer","applyTitleAutoMargin","newDy","subtitleObj","titleBB","doTraceStyle","editStyleCalls","arraysToCalcdata","editStyle","redrawReglTraces","doColorBars","layoutReplot","doLegend","doTicksRelayout","updateGrid","doModeBar","updateFx","doCamera","setViewport","drawData","cartesianIds","_splomGrid","doAutoRangeAndConstraints","autoRangeDone","matchGroup","finalDraw","drawMarginPushers","require_draw3","_selectionLayer","selectionLayer","couldHaveActiveSelection","allPaths","sensory","forePath","deactivateSelection","_deactivateSelection","activateSelection","drawSelection","selectionPath","selectionOptions","activateLastSelection","require_build_log","my","nextSegmentId","curVert","segmentId","checkIntersection","seg1","seg2","segmentChop","seg","statusRemove","segmentUpdate","segmentNew","primary","segmentRemove","tempStatus","above","rewind","vert","reset","segs","chainStart","chainRemoveHead","chainRemoveTail","chainNew","pt1","pt2","chainMatch","chainClose","chainAddHead","chainAddTail","chainConnect","index1","chainReverse","chainJoin","require_epsilon","eps","epsilon","pointAboveOrOnLine","Cx","pointBetween","d_py_ly","d_rx_lx","d_px_lx","d_ry_ly","pointsSameX","pointsSameY","pointsSame","pointsCompare","pointsCollinear","pt3","dx2","dy2","linesIntersect","adx","ady","bdx","bdy","axb","alongA","alongB","pointInsideRegion","region","last_x","last_y","inside","curr_x","curr_y","require_linked_list","exists","isEmpty","getHead","here","findTransition","require_intersecter","LinkedList","selfIntersection","buildLog","segmentCopy","myFill","otherFill","event_root","eventAdd","other_pt","p1_isStart","p1_1","p1_2","p2_isStart","p2_1","p2_2","comp","eventCompare","isStart","other","eventAddSegment","ev_start","eventAddSegmentStart","ev_end","eventAddSegmentEnd","eventDivide","eventUpdateEnd","calculate","primaryPolyInverted","secondaryPolyInverted","status_root","statusFindSurrounding","ev2","ev1","a2","statusCompare","a1_equ_b1","a2_equ_b2","a1_between","a2_between","checkBothIntersections2","eve2","surrounding","eve","st","addRegion","forward","inverted","segments1","inverted1","segments2","inverted2","require_segment_chainer","chains","regions","first_match","matches_head","matches_pt1","second_match","next_match","setMatch","addToHead","grow","grow2","oppo","oppo2","F","reverseF","reverseChain","appendChain","chain1","chain2","tail3","tail22","head3","head22","require_segment_selector","SegmentSelector","union","intersect","difference","differenceRev","xor","require_geojson","GeoJSON","toPolygon","PolyBool","geojson","GeoPoly","coords","LineString","ls","reg","out2","selectDifference","selectUnion","fromPolygon","regionInsideRegion","region2","roots","addChild","forceWinding","clockwise","winding","geopolys","addExterior","poly2","getInterior","require_polybooljs","BuildLog","Epsilon","Intersecter","SegmentChainer","operate","poly1","seg3","combined","selectIntersect","selectDifferenceRev","selectXor","polygonFromGeoJSON","polygonToGeoJSON","require_nested","vs","xj","yj","require_polygon","ptsIn","xmin","xmax","ymin","ymax","rectFirstEdgeTest","isRect","degenerate","lastPt","omitFirstEdge","xmini","ycross","crossings","isSegmentBent","partParallel","startPt","segmentSquared","segmentLen","unitPerp","ptsFiltered","doneRawIndex","doneFilteredIndex","addPt","prevFilterLen","iLast","filtered","require_constants7","BENDPX","MINSELECT","SELECTDELAY","SELECTID","require_select","polybool","pointInPolygon","Fx","shapeHelpers","shapeConstants","newShapeHelpers","libPolygon","filteredPolygon","polygonTester","hasSubplot","selectOnClick","xAxes","yAxes","polygonOutlines","searchTraces","searchInfo","currentSelectionDef","selectionTesters","thisTracesSelection","pointOrBinSelected","subtract","sendEvents","hoverOnBox","isHoverDataSet","coerceSelectionsCache","clickedPtInfo","hoverDatum","binNumber","extractClickedPtInfo","determineSearchTraces","tracesWithSelectedPts","isOnlyThisBinSelected","isOnlyOnePointSelected","isPointOrBinSelected","updateSelectedState","clearSelectionsCache","emitDeselect","newPointSelectionDef","multiTester","selectionDefs","fillSelectionItem","mergedPolygons","convertPoly","emitSelected","isPointSelectionDef","newPointNumTester","pointSelectionDef","idxWantedTrace","testers","contained","selectingOnSameSubplot","_lastSelectedSubplot","hasModifierKey","immediateSelect","hasActiveShape","hasActiveSelection","_noEmitSelectedAtStart","getAxId","xAxisIds","yAxisIds","_xaxes","_yaxes","createSearchInfo","sankeyInfo","ptNum","ptNums","ptNumToTest","fullInputTrace","hasRegl","styleOnSelect","node3","nodeRangePlot3","updateReglSelectedState","mergePolygons","allPolygons","getSubtract","_doSelect","thisSelection","xRef","yRef","hadSearchTraces","allSearchTraces","layoutPolygons","getLayoutPolygons","outlinePolys","draftPolygons","convert","splomScenes","selectBatch","epmtySplomSelectionBatch","seenSplom","yAt","_xRef","_yRef","_selectionTesters","addTester","_searchTraces","activePolygons","castMultiPolygon","makeFillRangeItems","fillRangeItems","deselect","subplotSelected","deselectSubplot","currentPolygon","onlyActiveOnes","multiPolygons","allX","allY","previousPolygons","previousPolygon","allAxes","lassoPoints","prepSelect","isCartesian","isFreeMode","isRectMode","isLineOrEllipse","filterPoly","path0","xAxis","yAxis","pw","ph","fillC","strokeC","corners","throttleID","_clearSubplotSelections","selectionErased","getFillRangeItems","_res","extraPoints","emitSelecting","evt2","clickedXaxis","clickedYaxis","subSelections","doneFnCompleted","require_arrow_paths","noRotate","require_axis_placeable_objects","axisRefDescription","axisname","require_attributes11","ARROWPATHS","cartesianConstants","borderpad","showarrow","arrowcolor","arrowhead","startarrowhead","arrowside","arrowsize","startarrowsize","arrowwidth","startstandoff","axref","ayref","xshift","yshift","clicktoshow","xclick","yclick","hovertext","captureevents","require_constants8","PTS_LINESONLY","minTolerance","toleranceGrowth","maxScreensAway","eventDataKeys","require_fillcolor_attribute","hasFillgradient","require_attributes12","makeFillcolorAttr","xperiod","yperiod","xperiod0","yperiod0","xperiodalignment","yperiodalignment","offsetgroup","alignmentgroup","stackgroup","groupnorm","stackgaps","hoveron","smoothing","simplify","connectgaps","maxdisplayed","require_attributes13","annAttrs","scatterLineAttrs","require_defaults6","handleSelectionDefaults","selectionIn","selectionOut","noPath","axLetters","pos2r","r2pos","gdMock","_selectionIndices","attr0","attr1","in0","in1","require_defaults7","require_include_components","containerArrayName","cartesianList","itemi","hasXref","hasYref","newAxis","require_selections","drawModule","supplyDrawNewSelectionDefaults","require_dragbox","SHOWZOOMOUTTIP","makeDragger","dragClass","dragger3","draglayer","makeRectDragger","dragger","isDirectionActive","activeVal","zoomAxRanges","r0Fraction","r1Fraction","updates","linkedAxes","r0F","r1F","axRangeLinear0","axRangeLinearSpan","linkedR0Fraction","dragAxList","pix","dZoom","makeZoombox","zoomlayer","lum","makeCorners","updateZoombox","zb","dimmed","transitionZoombox","removeZoombox","showDoubleClickNotifier","xyCorners","clen","calcLinks","xaHash","yaHash","exclude","xID","yID","xLinkID","yLinkID","isSubplotConstrained","xLinks","yLinks","xExclude","yExclude","xaHashLinked","xaxesLinked","yaHashLinked","yaxesLinked","attachWheelEventHandler","wheelEventName","onwheel","_onwheel","onmousewheel","isAddedWheelEvent","hashValues","makeDragBox","ew","xa0","ya0","xActive","yActive","allFixedRanges","hasScatterGl","hasSplom","hasSVG","isMainDrag","singleEnd","recomputeAxisLists","spConstrained","nsew","getDragCursor","zoomMode","zoomDragged","clearAndResetSelect","doubleClickConfig","hasRangeInitial","autorangeInitial","attrStr","dig","initialVal","getEndText","hAlign","vAlign","zoomMove","noZoom","xCorners","yCorners","computeZoomUpdates","updateMatchedAxRange","zoomDone","dragTail","dragModePrev","dragModeNow","zoomPrep","plotDrag","dragDataNow","dragModeNow2","updateSubplots","scrollViewBox","redrawTimer","spDx","spDy","ticksAndAnnotations","xStart","yStart","dxySign","dxyFraction","dz","xSize","ySize","movedAx","newLinearizedEnd","otherEnd","newEnd","matchedAxes","constrainedAxes","activeAxIds","pushActiveAxIds","pushActiveAxIdsSynced","axisType","axListI","axListIType","viewBox","plotinfos","xrng","yrng","xScaleFactor","yScaleFactor","xScaleFactor2","yScaleFactor2","clipDx","clipDy","editX2","editY2","getShift","scaleAndGetShift","getLinkedScaleFactor","plotDx","plotDy","zoomScalePts","zoomScaleTxt","clipOnAxisFalseTraces","scaleFactor","_scrollZoom","_enablescrollzoom","stopPropagation","gbb","xfrac","yfrac","zoomWheelOneAxis","zoom2","axRange","require_graph_interact","initInteractions","maindrag","_hoversubplot","_lasthover","onmouseout","_draggers","require_container_array_match","arrayStr","rootContainers","regexpContainers","rootPart","require_manage_arrays","containerArrayMatch","isAddVal","isRemoveVal","applyContainerArrayChanges","_nestedProperty","componentType","supplyComponentDefaults","replotLater","replot","recalc","fullVal","componentNum","objEdits","objKeys","objVal","adding","componentNums","componentArrayIn","componentArray","componentArrayFull","deletes","firstIndexChange","maxIndex","indicesToDraw","require_helpers9","AxisIds","cleanAxRef","cleanFinanceDir","dirContainer","dirName","commonPrefix","name1","show1","show2","cleanTextPosition","emptyContainer","outer","innerStr","clearPromiseQueue","cleanLayout","xaxis1","yaxis1","scene1","axisAttrRegex","ternary","isdate","islog","annotationsLen","shapesLen","imagesLen","image","cleanData","ybins","xbins","swapXYData","reversescl","containerName","dims","highlightColor","highlightcolor","highlightWidth","highlightwidth","increasingShowlegend","increasing","decreasingShowlegend","decreasing","increasingName","decreasingName","autobinx","autobiny","error_x","error_y","errorY","copyYstyle","copy_ystyle","hoverInfoParts","coerceTraceIndices","traceIndicesOut","manageArrayContainers","undoit","pLength","pLastIsNumber","contPath","ATTR_TAIL_RE","getParent","hasParent","attrParent","clearAxisTypes","axAttr","sceneName","typeAttr","require_plot_api","handleRangeDefaults","cartesianLayoutAttributes","manageArrays","subroutines","numericNameWarningCount","emitAfterPlot","opaqueSetBackground","setPlotContext","clientHeight","clientWidth","szIn","szOut","mapbox","positivifyIndices","parentLength","positiveIndices","assertIndexArray","arrayName","checkMoveTracesArgs","currentIndices","newIndices","spliceTraces","update2","maxPoints","updateArray","maxPointsIsObject","assertExtendTracesArgs","updateProps","maxp","getExtendProperties","undoUpdate","undoPoints","concatTypedArray","arr0","arr1","arr2","restyle","_traces","_restyle","fullReplot","_doPlot","markerSize","addAxRangeSequence","colorbars","redoit","plotDone","undefinedToNull","makeNP","preGUI","guiEditFlag","storeCurrent","arrayNew","maxLen","objNew","objBoth","_guiEditing","layoutNP","addToAxlist","axid","autorangeAttr","getFullTrace","doextra","extraparam","allBins","binAttr","arrayBins","vij","contFull","oldVal","finalPart","prefixDot","innerContFull","impliedKey","labelsTo","valuesTo","_pielayer","topOrBottom","thicknorm","lennorm","defaultOrientation","_relayout","axRangeSupplyDefaultsByPass","layoutstyle","axrange","rangesAltered","drawAxes","AX_RANGE_RE","AX_AUTORANGE_RE","AX_DOMAIN_RE","arrayEdits","axisAttr","newkey","recordAlteredAxis","pleafPlus2","pend","pleaf","pleafPlus","ptrunk","parentFull","vOld","oppositeAttr","axFull","fullProp","newType","updateValObject","groupAxId","updateAutosize","traceUpdate","restyleSpecs","relayoutSpecs","guiEdit","layoutUIControlPatterns","traceUIControlPatterns","findUIPattern","patternSpecs","spec","getNewRev","revAttr","newRev","getFullTraceIndexFromUid","getTraceIndexFromUid","valsMatch","v1IsObj","v1IsArray","getDiffFlags","oldContainer","outerparts","getValObject","immutable","inArray","arrayIndex","nChanges","nChangesAnim","newDataRevision","valObjectCanBeDataArray","valObject2","tickMode","_compareAsJSON","canBeDataArray","wasArray","nowArray","inputKey","oldValIn","newValIn","arrayEditIndices","extraIndices","diffConfig","oldConfig","newConfig","calcInverseTransform","newBBox","_lastBBox","animate","frameOrGroupNameOrFrameList","animationOpts","trans","_frameQueue","getTransitionOpts","getFrameOpts","callbackOnNthTime","_frameWaitingCnt","configCounter","setTransitionConfig","frame2","frameList","allFrames","isFrameArray","frameOrName","onInterrupt","discardExistingFrames","currentFrame","_currentFrame","filteredFrameList","frameList2","computedFrame","frameOpts2","transitionOpts2","nextFrame2","onComplete","_lastFrameAt","_timeToNext","_runningTransitions","doFrame","requestAnimationFrame","newFrame","stringName","nextFrame","beginAnimationLoop","queueFrames","addFrames","bigIndex","insertions","_frameHashLocal","lookupName","collisionPresent","ops","revops","frameCount","deleteFrames","addTraces","deleteTraces","checkAddTracesArgs","startSequence","moveTraces","stopSequence","deletedTrace","extendTraces","newArray","remainder","none","both","numberOfItemsFromInsert","numberOfItemsFromTarget","targetBegin","prependTraces","movingTraceMap","newIndex","newPlot","graphWasEmpty","gd3","_container","_toppaper","_hoverpaper","otherUids","layerBelow","_imageLowerLayer","_cartesianlayer","_polarlayer","_smithlayer","_ternarylayer","_geolayer","_funnelarealayer","_iciclelayer","_treemaplayer","_sunburstlayer","_indicatorlayer","_glimages","layerAbove","_imageUpperLayer","_menulayer","makePlotFramework","drawFrameworkCalls","marginPushers","drawFramework","pick","_gl","drawingBufferWidth","drawingBufferHeight","insideTickLabelsUpdaterange","configChanged","oldRev","preGUIVal","newNP","layoutPreGUI","bothInheritAutorange","newAutorangeIn","newRangeAccepted","pre0","pre1","preAuto","newAx","allTracePreGUI","fulli","newTracei","applyUIRevisions","startsWith","newDomain","oldDomain","oldInputDomain","diffOpts","diffLayout","sameTraceLength","seenUIDs","diffData","allNames","emptyCategories","setPlotConfig","_guiRelayout","_guiRestyle","_guiUpdate","_storeDirectGUIEdit","require_helpers10","getDelay","getRedrawFunc","encodeSVG","encodeURIComponent","encodeJSON","DOM_URL","URL","webkitURL","createObjectURL","blob","revokeObjectURL","createBlob","Blob","binary","fixBinary","atob","octetStream","IMAGE_URL_PREFIX","require_tosvg","DOUBLEQUOTE_REGEX","DUMMY_SUB","DUMMY_REGEX","toppaper","toSVG","topGroups","topGroup","fw","fs","fv","XMLSerializer","serializeToString","hiddenDiv","replaced","htmlEntityDecode","require_svgtoimg","svgBlob","Image2","Image","canvas","ctx","getContext","willReadFrequently","img","imgData","drawImage","toDataURL","errorMsg","require_to_image","plotApi","svgToImg","imageDataOnly","isImpliedOrValid","fullOpts","clonedGd","layoutImage","configImage","redrawFunc","wait","width2","height2","cleanup","urlToImageData","require_validate","objIn","valOut","nestedSchema","getNestedSchema","nestedValType","isInfoArray","isColorscale","isInSchema","valInPart","valOutPart","_p","_nestedSchema","indexList","valInj","valOutj","errorList","traceSchema","layoutSchema","traceLayoutAttr","fillLayoutSchema","code2msgFunc","inBase","unused","dynamic","invisible","convertPathToAttributeString","splitKey","keyMinusId","idMatch","require_filesaver","saveLink","canUseSaveLink","objectUrl","download","require_download","fileSaver","_gd","require_template_api","mergeTemplates","oldTemplate","newTemplate","oldKeys","mergeOne","oldVal2","key3","oldItem","templateitemname","getBaseKey","baseKey2","walkStyleKeys","templateOut","getAttributeInfo","basePath","pathAttr","nextPath","getNextPath","nextBasePath","baseKey","dfltDone","namedIndex","dfltPath","pathInArray","itemPropInArray","getLayoutInfo","getTraceInfo","hasPlainObject","templateCount","makeTemplate","figure","traceTemplate","traceType2","typeTemplates2","oldTypeTemplates","oldTypeLen","typeLen","oldLayoutTemplate","oldDataTemplate","validateTemplate","figureIn","layoutTemplate","layoutPaths","crawlLayoutForContainers","nextPaths","crawlLayoutTemplateForContainers","typeCount","crawlForMissingTemplates","require_plot_api2","deleteActiveShape","downloadImage","templateApi","require_xy_defaults","handleCalendarDefaults","xlen","require_period_defaults","getPeriod0Dflt","require_stack_defaults","perStackAttrs","stackOpts","stackGroup","subplotStackOpts","groupOpts","firstTrace","dflts","attrFound","traceHasAttr","isOrientation","fillDflt","require_marker_defaults","colorscaleDefaults","noAngle","noAngleRef","noStandOff","noSelect","noLine","require_line_defaults","noDash","require_line_shape_defaults","require_text_defaults","require_fillcolor_defaults","averageGradientColor","inheritColorFromMarker","markerLineColor","moduleHasFillgradient","gradientColorscale","averageColorI","averageColors","require_defaults8","handleXYDefaults","handlePeriodDefaults","handleStackDefaults","handleMarkerDefaults","handleLineDefaults","handleLineShapeDefaults","handleTextDefaults","handleFillColorDefaults","stackGroupOpts","defaultMode","dfltHoverOn","errorBarsSupplyDefaults","require_grouping_defaults","posAxId","groupId","alignmentOpts","alignmentGroups","alignmentGroupOpts","alignmentIndex","offsetGroups","offsetGroupOpts","_offsetIndex","offsetIndex","require_cross_trace_defaults2","handleGroupingDefaults","filli","tracej","require_layout_defaults3","groupBarmode","bargap","require_align_period","alignment","mPeriod","isEnd","period0","starts","ends","nEstimated","startTime","endTime","require_colorscale_calc","calcColorscale","require_arrays_to_calcdata","require_calc_selection","require_calc3","alignPeriod","calcSelection","calcAxisExpansion","serieslen","xId","yId","firstScatter","firstScatterGroup","stackOrientation","getStackOpts","xOptions","yOptions","calcMarkerSize","markerTrans","sizeOut","setFirstScatter","stackAx","isV","origX","origY","xObj","yObj","interpolateGaps","posAttr","xAttr","yAttr","hasPeriodX","hasPeriodY","xValid","yValid","orig_x","xEnd","orig_y","yEnd","pos0","require_sieve","Sieve","sepNegVal","overlapNoMerge","width1","posAxis","positions","bar","distinctPositions","binWidth","put","getLabel","oldValue","require_cross_trace_calc","setGroupPositions","sa","excluded","included","scalendar","hasB","hasBase","initBase","setGroupPositionsInOverlayMode","sieve","norm","setOffsetAndWidth","offsetindex","inTraceSieve","unhideBarsWithinTrace","sieveBars","normalizeBars","setBaseAndTop","setGroupPositionsInGroupMode","crValue","crForm","cornerradiusvalue","cornerradiusform","standardizeCornerradius","isFunnel","sLetter","getAxisLetter","stackBars","_outmost","setGroupPositionsInStackOrRelativeMode","setCornerradius","pLetter","extents","roundFactor","sMinByPos","sMaxByPos","anyTraceHasCornerradius","some","poffset","poffsetIsArray","pVal","sMin","sMax","_sMin","_sMax","setHelperValuesForRoundedCorners","collectExtents","barWidthPlusGap","barWidth","offsetFromCenter","overlap","barGroupWidth","groupgap","nOffsetGroups","barwidth","bargroupwidth","bardelta","newPoffset","calcTrace0","initialPoffset","initialBarwidth","newBarwidth","applyAttributes","barwidthIsArray","calcBar","setBarCenterAndWidth","updatePositionAxis","allowMinDtick","calcBarOffset","calcBarWidth","isScatter","sTop","sTiny","needsPadding","fullTraces","calcTracesHorz","calcTracesVert","_computePh","ph0","ph1","xCat","yCat","barnorm","bargroupgap","require_cross_trace_calc2","insertBlank","hasAnyBlanks","newEntry","prevEntry","getInterp","groupCrossTraceCalc","posj","sumj","valAttr","allPositions","_rawLength","cdj","sNorm","arrayPad","ppadRaw","require_line_points","LOG_CLIP_PLUS","LOG_CLIP_MINUS","clusterStartPt","clusterEndPt","clusterHighPt","clusterLowPt","thisPt","clusterHighFirst","clusterUnitVector","thisVector","clusterRefDist","clusterHighVal","clusterLowVal","clusterMinDeviation","clusterMaxDeviation","thisDeviation","latestXFrac","latestYFrac","xLog","yLog","xLen","yLen","connectGaps","baseTolerance","getPt","linearized","crossesViewport","xFrac0","yFrac0","xFrac1","yFrac1","norm2","getTolerance","nextPt2","xFrac","yFrac","offScreenFraction","ptDist","lastXEdge","lastYEdge","lastFarPt","edgePt","getEdgeIntersections","xEdge0","xEdge1","yEdge0","yEdge1","onlyConstrainedPoint","sameEdge","getABAEdgeIntersections","dim","limit0","limit1","ptInt1","ptInt2","midShift","updateEdge","xSame","ySame","xSame2","ySame2","updateEdgesForReentry","ptCount","ptInt","arrayMarker","intersections","nextPt","trimmed","newSegments","require_link_traces","LINKEDFILLS","tonextx","tonexty","tonext","cdscatter","prevtrace","groupIndices","needsSort","prevGroupIndex","nextGroupIndex","prevUnstackedGroupIndex","_groupIndex","cdscatterSorted","traceA","traceB","prevtraces","_nexttrace","_prevtrace","_ownfill","require_plot","linePoints","linkTraces","plotOne","cdscatterAll","isStatic","yr","mnum","tnum","vis","selectMarkers","hasTransition","errorBarGroup","ownFillEl3","fillAxisIndex","fillAxisZero","ownFillDir","isRangePlot","thispath","thisrevpath","prevRevpath","prevPolygons","prevFillsegments","prevFillElement","_prevRevpath","_nextFill","_ownPolygons","_fillsegments","_fillElement","pathfn","revpathbase","revpathfn","lastSegment","fullpath","revpath","thisPolygons","_polygons","fillsegments","makeUpdate","_ownFill","pts2","fillsegmentCount","curpoints","_fillExclusionElement","isEnter","lineJoin","makeSelfPolygons","makePolygonsToPrevious","prevFillsegments2","reversedPrevFillsegment","pt02","pt12","polypoints","clearFill","points2","cdscatter2","showMarkers","keyFunc2","keyFunc","getKeyFunc","markerFilter","hideFilter","textFilter","showFilter","isInferZero","_needsCull","visFilterWithGaps","visFilter","gapFilter","styleFns","makePoints","clipUrl","scatterLayer","isFullReplot","traceJoin","fills","fillData","fillJoin","createFills","require_marker_colorbar","require_format_labels","require_style2","stylePoints","styleText","require_get_trace_color","subtypes","require_hover2","getTraceColor","minRad","xPeriod","yPeriod","di2","rad2","kink","dxRaw","dyRaw","xc","yc","sizeVal","isHoverPointInFillElement","svgElement","domPoint","DOMPoint","isPointInFill","TypeError2","svgPoint","hoverLabelCoords","yPos","xAtYPos","getHoverLabelPosition","require_select2","selectionTester","require_attributes14","require_type_defaults","getBoxPosLetter","isBoxWithoutPositionCoords","isBox","isCandlestick","autotypenumbersDflt","getFirstNonEmptyTrace","calAttr","_hasPreCompStats","boxPositions","setAutoType","require_category_order_defaults","orderDefault","isValidArray","axData","findCategories","require_line_grid_defaults","colorMix","dfltColor","gridColor","blend","gridWidth","gridDash","showGrid","minorGridColor","minorGridWidth","minorGridDash","noZeroLine","zeroLineColor","zeroLineWidth","require_axis_defaults","handleCategoryOrderDefaults","handleLineGridDefaults","rangebreaksDefaults","dfltPattern","indexOfDay","letter","visibleDflt","noTicklabelmode","noTicklabelindex","noTicklabelposition","noTicklabeloverflow","noHover","keepIsMinor","ticksonDflt","isMultiCategory","noTickson","dayStrToNum","sun","mon","tue","wed","thu","fri","sat","require_position_defaults","dfltAnchor","dfltDomain","dfltSide","dfltPosition","dfltShift","dfltAutomargin","counterAxes","overlayableAxes","overlayingDomain","_domains","_axisMap","_anchors","require_layout_defaults4","handleTypeDefaults","handleAxisDefaults","constraints","handlePositionDefaults","appendList","ax2traces","xaMayHide","yaMayHide","xaMustDisplay","yaMustDisplay","yaMustNotReverse","yaMayReverse","noGrids","xaName","yaName","_cheater","xNames","yNames","axNames","plotBgColor","axLayoutIn","axLayoutOut","newAxLayoutOut","_imgIndices","getCounterAxes","getOverlayableAxes","axName22","allAxisIds","missingMatchedAxisIdsLookup","missingMatchedAxisIds","addMissingMatchedAxis","matchesIn","unifiedHover","defaultOptions","unifiedSpike","overlayingAxis","overlayingAnchorDomain","overlayingAnchor","defaultOptions2","rangeSliderDefaults","rangeSelectorDefaults","anchoredAxis","require_transition_axes","raf","easeFn","unsetSubplotTransform","transitionInterrupt","tInterp","updateSubplot","transitionComplete","ylen","fracDx","fracDy","require_cartesian","ensureSingleAndAddDatum","cdSubplot","cdModuleAndOthers","zindices","_zindices","layerData","zoomScaleQueryParts","classBaseName","layerName","zindex","zoomScale","className2","makeSubplotLayer","hasZ","xLayer","yLayer","hasOnlyLargeSploms","hasMultipleZ","backLayer","imagelayer","betweenLayer","imagelayerBetween","overlinesBelow","overaxesBelow","overplot","overlinesAbove","overaxesAbove","mainplotgroup","purgeSubplotLayers","overlayIdsToRemove","removeSubplotExtras","overlayInfo","idRoot","xList","yList","spSVG","spAll","ki","subplotInfo","idWithZ","pcd","oldPlots","newPlots","oldSubplotList","oldAxIDs","oldAxId","hadCartesian","oldSubplotId","traceZorderGroups","zi","initialSubplotData","numZ","regulars","zStr","makeSubplotData","newSubplotData","subplotLayers","posZ","idWithoutZ","rangePlot","imageRoot","canvases","imageData","require_scatter","require_draw_arrow_head","startRot","endRot","headStyle","startHeadStyle","startScale","doStart","doEnd","backOff","startBackOff","hideLine","backOffX","backOffY","startBackOffX","startbackOffY","pathlen","dashArray","start0","dstart","end0","dend","drawhead","arrowHeadStyle","rot","arrowScale","require_draw4","drawArrowHead","drawRaw","shiftPosition","axa","dAx","optAx","axDomainRef","gsDim","annClipID","annPosPx","annGroup","annTextGroup","editTextPosition","textEvents","annTextGroupInner","hoverOptions","hoverFont","bBoxRef","borderfull","annTextBG","isSizeConstrained","annTextClip","annText","_text","fullAnnotation","drawGraphicalElements","anchor3","hasMathjax","anntextBB","annWidth","annHeight","anchor2","annotationIsOffscreen","letters","basePx","textPadShift","alignPosition","autoAlignFraction","textShift","tailRef","dimAngle","annSizeFromWidth","annSizeFromHeight","annSize","overallShift","posPx","axRefType","posFraction","axRefTypeEqDomain","arrowLength","tailRefType","maxPx","shiftPlus","shiftMinus","xShift","yShift","baseTextTransform","drawArrow","headX","headY","tailX","tailY","applyTransform","applyTransform2","xLeft","xRight","yTop","yBottom","strokewidth","arrowColor","arrowSide","arrowGroup","arrowDragHeadX","arrowDragHeadY","arrowLength2","annx0","anny0","arrowDrag","annxy0","notesBox","selectedObj","xUpdate","yUpdate","widthFraction","_xsize","_xshift","heightFraction","_ysize","_yshift","require_click2","getToggleSets","anni","showMode","pointj","onSet","offSet","explicitOffSet","hoverLen","clickData2r","_xclick","_yclick","explicitOff","sets","onClick","toggleSets","annotationsOut","require_common_defaults","annIn","annOut","borderOpacity","borderWidth","showArrow","globalHoverLabel","hoverBG","hoverBorder","fontDflt","require_defaults9","handleAnnotationCommonDefaults","handleAnnotationDefaults","clickToShow","arrowPosDflt","arrowPosAttr","aaxRef","aDflt","xClick","yClick","require_calc_autorange","annAutorange","apos","aref","padplus","padminus","headSize","headPlus","headMinus","startHeadSize","startHeadPlus","startHeadMinus","extremeArrowHead","extremeText","require_convert_coords","doExtra","attrPrefix","currentVal","require_annotations","clickModule","calcAutorange","convertCoords","require_attributes15","require_defaults10","zref","sceneLayoutIn","sceneLayoutOut","require_convert","mockAnnAxes","fullSceneLayout","pdata","_pdata","anns","require_project","xformMatrix","model","require_draw5","dataScale","glplot","cameraParams","graphDiv","require_annotations3d","GL3D","require_attributes16","require_defaults11","handleShapeDefaults","shapeIn","shapeOut","xSizeMode","ySizeMode","attrAnchor","sizeMode","inAnchor","labelTextTemplate","labelTextPosition","dfltLabelYanchor","require_defaults12","require_calc_autorange2","calcXPaddingOptions","calcPaddingOptions","calcYPaddingOptions","isYAxis","axisDirectionReverted","maxValue","minValue","beforePad","afterPad","shapeBounds","isCategory","shiftStart","shiftEnd","convertVal","drawnParam","shapeList","require_shapes","supplyDrawNewShapeDefaults","require_attributes17","sizex","sizey","sizing","require_defaults13","imageDefaults","imageIn","imageOut","require_draw6","imageDataAbove","imageDataSubplot","imageDataBelow","anchors","setImage","thisImage","_imgSrc","imagePromise","img2","errorHandler","dataURL","xIsDomain","yIsDomain","xPos","imgDataFunc","imgSort","imagesBelow","imagesAbove","imagesOnSubplot","require_convert_coords2","currentPos","currentSize","newSize","require_images","require_constants9","containerClassName","headerGroupClassName","headerClassName","headerArrowClassName","dropdownButtonGroupClassName","dropdownButtonClassName","buttonClassName","itemRectClassName","itemTextClassName","menuIndexAttrName","autoMarginIdRoot","blankHeaderOpts","textPadX","arrowPadX","textOffsetX","textOffsetY","arrowOffsetX","gapButtonHeader","gapButton","activeColor","hoverColor","arrowSymbol","down","require_attributes18","buttonsAttrs","args2","execute","showactive","require_defaults14","buttonAttrs","menuDefaults","menuIn","menuOut","buttonDefaults","buttonIn","buttonOut","require_scrollbox","ScrollBox","translateX","translateY","hbar","vbar","barLength","barRadius","barPad","barColor","boxL","boxR","boxT","boxB","isDown","isUp","boxW","boxH","_box","needsHorizontalScrollBar","hbarW","hbarH","hbarL","hbarT","_hbarXMin","_hbarTranslateMax","needsVerticalScrollBar","vbarW","vbarH","vbarL","vbarT","_vbarYMin","_vbarTranslateMax","clipL","clipR","clipT","clipB","_clipRect","onBoxDrag","_onBoxDrag","_onBoxWheel","onBarDrag","_onBarDrag","translateXMax","translateYMax","require_draw7","keyFunction","menuOpts","gButton","setActive","buttonOpts","gHeader","buttonIndex","isSilentUpdate","drawButtons","drawHeader","_dims","headerOpts","posOpts","yPad","xPad","positionOverrides","headerWidth","headerHeight","drawItem","setItemPosition","styleOnMouseOver","styleOnMouseOut","buttonData","isFolded","klass","openHeight","openWidth","scrollBoxPosition","defaultPrevented","menu","styleButtons","heights","widths","drawScrollBox","hasHBar","hasVBar","hideScrollBox","itemOpts","drawItemRect","drawItemText","findDimensions","height1","totalWidth","totalHeight","fakeButtons","wEff","tLines","hEff","paddedWidth","paddedHeight","graphSize","autoMarginId","overrideOpts","finalHeight","spanOffset","newMenuIndexAttr","menuData","clearAutoMargin","menuOpts2","menus","headerGroups","scrollBoxId","_gButton","require_updatemenus","require_constants10","groupClassName","inputAreaClass","railRectClass","railTouchRectClass","gripRectClass","tickRectClass","inputProxyClass","labelsClass","labelGroupClass","labelClass","currentValueClass","railHeight","railRadius","railWidth","railBorder","railBorderWidth","railBorderColor","railBgColor","railInset","stepInset","gripRadius","gripWidth","gripHeight","gripBorder","gripBorderWidth","gripBorderColor","gripBgColor","gripBgActiveColor","labelPadding","labelOffset","tickOffset","tickLength","minorTickOffset","minorTickColor","minorTickLength","currentValuePadding","currentValueInset","require_attributes19","stepsAttrs","currentvalue","activebgcolor","minorticklen","require_defaults15","stepAttrs","sliderDefaults","sliderIn","sliderOut","stepDefaults","stepCount","_stepCount","visSteps","_visibleSteps","require_draw8","sliderOpts","sliderLabels","maxLabelWidth","labelHeight","stepOpts","inputAreaWidth","outerLength","inputAreaStart","inputAreaLength","availableSpacePerLabel","computedSpacePerLabel","labelStride","currentValueMaxWidth","currentValueHeight","currentValueTotalHeight","currentValueMaxLines","dummyGroup","curValPrefix","drawCurrentValue","curValSize","marginOpts","sliderGroup","valueOverride","curVal","drawGrip","attachGripEvents","drawLabelGroup","labelItems","labelSteps","normalizedValueToPosition","fraction","handleInput","normalizedPosition","doTransition","quantizedPosition","quantizedIndex","doCallback","previousActive","setGripPosition","slider","interaction","_nextMethod","_nextMethodRaf","_step","$gd","mouseDownHandler","getSliderOpts","grip","positionToNormalizedValue","mouseMoveHandler","sliderOpts2","normalizedPosition2","mouseUpHandler","isMajor","_invokingCommand","drawTouchRect","drawRail","computedLength","sliderData","contOpts","makeSliderData","sliders","clearSlider","sliderGroups","gSlider","nsteps","computeLabelSteps","drawSlider","require_sliders","require_attributes20","colorAttributes","require_oppaxis_attributes","require_constants11","bgClassName","rangePlotClassName","maskMinClassName","maskMaxClassName","slideBoxClassName","grabberMinClassName","grabAreaMinClassName","handleMinClassName","grabberMaxClassName","grabAreaMaxClassName","handleMaxClassName","maskMinOppAxisClassName","maskMaxOppAxisClassName","maskColor","maskOppAxisColor","slideBoxFill","slideBoxCursor","grabAreaFill","grabAreaCursor","grabAreaWidth","handleWidth","handleRadius","handleStrokeWidth","extraPad","require_helpers11","rangeSlider","makeData","rangeSliderData","_offsetShift","_rangeSliderData","autoMarginOpts","bottomDepth","require_defaults16","oppAxisAttrs","rangeContainerIn","rangeContainerOut","yName","rangemodeDflt","yAxOut","coerceRange","require_calc_autorange3","listAxes","require_draw9","eventX","drawBg","axisOpts","borderCorrect","offsetShift","addClipPath","_clipId","drawRangePlot","rangePlots","isMainPlot","oppAxisOpts","oppAxisName","oppAxisRangeOpts","mockFigure","filterRangePlotCalcData","drawMasks","maskOppBorder","drawSlideBox","drawGrabbers","grabberMin","grabberMax","handleFixAttrs","handleDynamicAttrs","grabAreaFixAttrs","rangeSliders","newRng","axRng","drl","rsBreaks","range0OppAxis","distOppAxis","d2pOppAxis","slideBox","grabAreaMin","grabAreaMax","mouseMove","pixelMin","pixelMax","_pixelMin","_pixelMax","setDataRange","mouseUp","hw2","clampOppAxis","clampHandle","pixelMinOppAxis","pixelMaxOppAxis","setPixelRange","require_rangeslider","require_attributes21","stepmode","require_constants12","minButtonWidth","require_defaults17","selectorOut","selectorIn","rangeselector","posDflt","anchoredList","getPosDflt","require_get_update_object","axisLayout","buttonLayout","xrange","range0","currentRange","utcStep","base2","range1","getXRange","require_draw10","getUpdateObject","selectorKeyFunc","drawButtonRect","selectorLayout","_isActive","_isHovered","getFillColor","drawButtonText","selectors","makeSelectorData","reposition","require_rangeselector","require_domain","noGridCell","column","dfltDomains","dfltX","dfltY","columns","require_grid","domainAttrs","cartesianIdRegex","gridAttrs","roworder","xgap","ygap","xside","yside","getAxes","gridVal","splomVal","fillGridPositions","dfltGap","dirGap","cellDomain","cellStart","fillGridAxes","axesIn","axesAllowed","axisMap","fillOneAxis","axisId","sizeDefaults","gridIn","dfltRows","dfltColumns","hasSubplotGrid","hasXaxes","hasYaxes","isSplomGenerated","gridOut","_hasSubplotGrid","dfltSideX","dfltSideY","dfltGapX","dfltGapY","contentDefaults","subplotsOut","useDefaultSubplots","subplotsIn","rowOut","rowIn","iFinal","require_attributes22","symmetric","arrayminus","valueminus","traceref","tracerefminus","copy_zstyle","require_defaults18","objName","copyAttr","require_compute_error","makeComputeErrorValue","dataPt","valMinus","computeErrorValue","computeErrorValueMinus","require_calc4","makeComputeError","calcOneAxis","computeError","iIn","calcCoord","shoe","hat","baseExtremes","require_plot2","hasAnimation","sparse","errorbars","errorbar","yh","noYS","xh","noXS","errorCoords","yerror","yw","xerror","xw","require_style3","require_errorbars","xyAttrs","xyzAttrs","error_z","scatter3d","hoverInfo","calcPoint","hoverPoint","require_constants13","cn","cbbg","cbfill","cbfills","cbline","cblines","cbaxis","cbtitleunshift","cbtitle","cboutline","jsPlaceholder","require_draw11","handleAxisPositionDefaults","axisLayoutAttrs","colorBars","initOpts","_fillcolor","_line","_levels","_filllevels","_fillgradient","_zrange","calcOpts","moduleOpts","allowsMultiplotCbs","contName","_traceIndex","_propPrefix","colorAxOpts","makeColorBarData","optsX","optsY","titleSide","zrange","lineColormap","fillColormap","levelsIn","levelsOut","lineLevels","fillLevels","zr0","zr1","fillLevelsIn","calcLevels","thickPx","thickFrac","lenPx","lenFrac","posW","posH","uPx","xRatio","uFrac","vFrac","vPx","_lenFrac","_thickFrac","_uFrac","_vFrac","_axis","cbAxisIn","cbAxisOut","axisOptions","noInsideRange","mockColorBarAxis","titlex","titley","autoNtick","dtFactor","dtexp","titleCont","titleFontSize","axLayer","titleWidth","titleOpts","dfltTitleOpts","otherClass","drawDummyTitle","drawCbTitle","nlines","drawAxis","titleTrans","mathJaxNode","lineSize","zBounds","fillEl","colorString","tickSign","positionCB","innerThickness","titleWidth2","topSideVertical","rightSideHorizontal","outerThickness","_hColorbarMoveCBTitle","extraW","numTicks","oBb","oTr","TEXTPAD","iBb","iTr","iRight","iLeft","lFrac","rFrac","tFrac","bFrac","extraThickness","drawColorBar","require_colorbar","require_legend","require_locale_en","require_locale_en_us","require_cloneplot","cloneLayoutOverride","tileClass","override","graphObj","oldData","oldLayout","axesImageOverride","showaxeslabels","linetickenable","plotTile","td","defaultLayout","require_toimage","clonePlot","require_snapshot","Snapshot","require_core","methodNames","PlotlyLocales","require_core2","require_constants14","require_attributes23","textFontAttrs","insidetextanchor","insidetextfont","outsidetextfont","constraintext","require_layout_attributes6","barcornerradius","require_style_defaults","require_defaults19","handleStyleDefaults","validateCornerradius","handleText","moduleHasSelected","moduleHasUnselected","moduleHasConstrain","moduleHasCliponaxis","moduleHasTextangle","moduleHasInsideanchor","hasPathbar","hasBoth","hasInside","hasOutside","dfltFont","insideTextFontDefault","isColorInheritedFromLayoutFont","pathbarTextFontDefault","require_layout_defaults5","hasBars","shouldBeGapless","gappedAnyway","usedSubplots","isGroup","require_arrays_to_calcdata2","require_calc5","colorscaleCalc","origPos","pObj","hasPeriod","sizeOpts","orig_p","require_uniform_text","getMinKey","recordMinTextSize","minKey","hide","clearMinTextSize","resizeText","gTrace","shouldHide","require_helpers12","coerceString","attributeDefinition","defaultValue","coerceColor","coerceEnumerated","getValue","arrayOrScalar","getLineWidth","require_style4","attributeTextFont","attributeInsideTextFont","attributeOutsideTextFont","styleTextPoints","determineFont","layoutFont","getBarColor","getInsideTextFont","getOutsideTextFont","getTextFont","getFontValue","defaultFont","attributeValue","familyValue","sizeValue","colorValue","weightValue","styleValue","variantValue","textcaseValue","linepositionValue","shadowValue","barcount","txs","selectedFontColor","styleTextInSelectionMode","stylePointsInSelectionMode","require_plot3","uniformText","attributeText","attributeTextPosition","dirSign","textfitsInsideBar","barHeight","getRotateFromAngle","getRotatedTextSize","absSin","absCos","toMoveInsideBar","constrained","toRight","leftToRight","toLeft","overhead","textpad","padForRounding","scaleAndPad","clippedR","rX","rY","scaleTextForRoundedBar","bartraces","plotGroup","isHistogram","isBar","shouldDisplayZeros","adjustPixel","connector","withTransition","pointGroup","bars","sAxis","pAxis","getXY","roundWithLine","fixpx","hideZeroSpan","outerBound","crPx","stackedBarTotalLength","maxRadius","calcCornerRadius","rectanglePath","refPoint","xdir","ydir","cornersweep","xminfunc","yminfunc","appendTextNode","bar2","font2","vLetter","vAxis","formatLabel","formatNumber","labelLabel","valueLabel","rawS","deltaLabel","final","finalLabel","initial","initialLabel","percentInitial","begR","percentInitialLabel","percentPrevious","difR","percentPreviousLabel","percentTotal","sumR","percenTotalLabel","calcTexttemplate","textinfo","hasFlag","flag","nPercent","hasMultiplePercents","calcTextinfo","getText","getTextPosition","inStackOrRelativeMode","isOutmostBar","barIsRounded","insideTextFont","outsideTextFont","textSelection","fitsInside","textHasSize","currentTransform","toMoveOutsideBar","appendBarText","hasClipOnAxisFalse","require_hover3","hoverOnBars","posVal","sizeLetter","pRangeCalc","isClosest","sizeFn","positionFn","isClosestOrPeriod","thisBarMinPos","thisBarExtPos","thisBarMaxPos","minPos","maxPos","_minPos","_maxPos","maxDistance","getSize","baseLabel","thisBarPositionFn","barPointData","require_event_data","require_select3","getCentroid","ct","require_bar","require_bar2","require_attributes24","barAttrs","scatterMarkerAttrs","scatterMarkerLineAttrs","q3","lowerfence","upperfence","notched","notchwidth","notchspan","jitter","pointpos","sdmultiple","boxmean","sd","quartilemethod","whiskerwidth","showwhiskers","require_layout_attributes7","boxgap","boxgroupgap","require_defaults20","handleSampleDefaults","getDims","valid","sLen","yDims","xDims","setInX","hasCategories","handlePointsDefaults","outlierColorDflt","lineoutliercolor","modeDflt","hasPreCompStats","boxmeanDflt","notchedDflt","require_layout_defaults6","_supply","hasTraceType","require_calc6","valAxis","valLetter","numKey","boxVals","allPosArrays","hasPosArray","hasPos0","hasPosStep","pos0c","getPosArrays","posArray","posDistinct","ptFilterFn","lf","uf","valArrayRaw","med","sortByVal","extractVal","computeLowerFence","computeUpperFence","computeLowerOutlierBound","uo","computeUpperOutlierBound","computeNotchSpan","ln","un","imin","valArray","posBins","makeBins","ptsPerBin","initNestedArray","minLowerNotch","maxUpperNotch","usesExclusive","usesInclusive","mci","TRACE_TO_CALC","require_cross_trace_calc3","orientations","setPositionOffset","boxList","pointList","shownPts","boxdv","dPos0","numTotal","groupFraction","groupGapFraction","bdPos","bPos","wHover","pushplus","pushminus","edgeplus","edgeminus","pp","pm","require_plot4","plotBoxAndWhiskers","bdPos0","bdPos1","posHasRangeBreaks","wdPos","bPosPxOffset","whiskerWidth","showWhiskers","lcenter","pos1","posc","posw0","posw1","posm0","posm1","sdmode","useExtremes","plotPoints","gPoints","newJitter","typicalSpread","minSpread","spreadLimit","jitterFactors","maxJitterFactor","jitterFactor","jitterOffset","plotBoxMean","meanline","sl","sh","cdbox","boxLayer","require_style5","styleBox","boxSel","lineWidth2","allBoxes","boxData","thisBox","require_hover4","hoverOnBoxes","vVal","hoverPseudoDistance","spikePseudoDistance","boxDeltaPos","boxDeltaNeg","dVal","isViolin","boxDelta","posAcceptance","shiftPos","pseudoDistance","spikePosAttr","hasMean","hasFences","rev","spikePosition","closeBoxData","valPx","pointData2","hoverOnPoints","closePtData","xPx","yPx","ijClosest","require_event_data2","require_select4","require_box","require_box2","require_attributes25","xtype","ytype","zsmooth","hoverongaps","zhoverformat","require_xyz_defaults","coordDefaults","coordStr","xName","allRowsAreArrays","oneRowIsFilled","hasOneNumber","isValidZ","require_label_defaults","require_style_defaults2","require_defaults21","handleXYZDefaults","handleHeatmapLabelDefaults","require_bin_functions","counterData","avg","counts","require_norm_functions","nMax","probability","density","yinc","require_average","require_bin_label_vals","oneYear","oneMonth","oneDay","oneHour","oneMin","oneSec","biggestDigitChanged","digit","biggestGuaranteedDigitChanged","nextDigit","didDigitChange","dateParts1","dateParts","dateParts2","leftGap","rightGap","binEdges","disambiguateEdges","dv0","dv1","dv2","edge0","edge1","leftDigit","rightDigit","dashExclude","isRightEdge","dashPos","roundedV","nextV","require_calc7","binFunctions","normFunctions","doAvg","getBinSpanLabelRound","calcAllAutoBins","mainData","_overlayEdgeCase","autoVals","cumulativeSpec","groupName","binOpts","_histogramBinOpts","cleanBound","setBound","newBins","allPos","isFirstVisible","has2dMap","hasHist2dContour","mainDatai","dirs","_autoBin","newBinSpec","sizeFound","bingroup","overlaidTraceGroup","xid","yid","getConnectedHistograms","pastThisTrace","singleValuedTraces","resulti","binSpeci","isSingleValued","dataVals","handleSingleValueOverlays","cumulative","currentbin","traceInputBins","traceBinOptsCalc","mainStart","startIn","hasStart","startFound","traceStart","newStart","mainEnd","endIn","hasEnd","endFound","traceEnd","autoBinAttr","binsAndPos","binSpec","nonuniformBins","inputPoints","histnorm","histfunc","densityNorm","rawCounterData","sizeInit","binFunc","normFunc","isAvg","pr2c","_roundFnOpts","roundFnOpts","roundFn","uniqueValsPerBin","roundFnOpts2","currentBin","prevSum","firstHalfPoint","nextHalfPoint","cdf","seriesLen","firstNonzero","lastNonzero","require_calc8","makeIncrements","nonuniform","binsToCalc","getRanges","uniqueVals","gapLow","gapHigh","xr2c","yr2c","xBinsAndPos","xBinSpec","xPos0","yBinsAndPos","yBinSpec","yPos0","onecol","zerocol","nonuniformBinsX","nonuniformBinsY","xEdges","yEdges","densitynorm","sizeinit","binfunc","normfunc","doavg","xinc","xBinSize","xBinStart","xBinEnd","yBinSize","yBinStart","yBinEnd","ipCol","yc2r","uniqueValsPerX","uniqueValsPerY","xVals","yVals","xGapLow","xGapHigh","yGapLow","yGapHigh","xRanges","yRanges","require_convert_column_xyz","ax1","var1Name","var2Name","arrayVarNames","colLen","col1","col2","textCol","hasColumnText","hoverTextCol","hasColumnHoverText","col1dv","col1vals","col2dv","col2vals","newArrays","after2before","arrayVar","_hovertext","_after2before","require_clean_2d_array","zOld","rowlen","collen","getCollen","old2new","cleanZvalue","zOld2","axisMapping","axMapping","traceCategories","xMap","yMap","zNew","require_interp2d","NEIGHBORSHIFTS","correctionOvershoot","maxFractionalChange","iterateInterp2d","emptyPoints","overshoot","neighborShift","neighborRow","neighborVal","neighborCount","neighborSum","minNeighbor","maxNeighbor","require_find_empties","prevRow","newNeighborHash","foundNewNeighbors","empties","neighborHash","noNeighborList","nextRow","blank","require_make_bound_array","v0In","dvIn","numbricks","isContour","isHist","require_calc9","histogram2dCalc","convertColumnData","clean2dArray","interp2d","findEmpties","makeBoundArray","skipBreaks","binned","zIn","_z","noZsmooth","scaleIsLinear","avgdx","maxErrX","newZ","dropZonBreaks","_emptypoints","_islinear","xIn","xArray","yIn","yArray","xCenter","yCenter","dummyTrace","xfill","yfill","require_pixelated_image","CSS_DECLARATIONS","STYLE","require_supports_pixelated_image","_supportsPixelated","unsupportedBrowser","declarations","supports","CSS","supportsCSS","image3","imageRendering","require_plot5","supportsPixelatedImage","PIXELATED_IMAGE_STYLE","selectLabels","removeLabels","findInterp","pixel","pixArray","maxBin","pix0","pix1","bin0","bin1","findInterpFromCenters","centerPixArray","putColor","pixels","pxIndex","cdheatmaps","heatmapLayer","xGap","yGap","xrev","yrev","drawingMethod","canvasW","canvasH","imageWidth","imageHeight","xbi","ybi","pixcount","rcount","gcount","bcount","setColor","pixsize","interpColor","r02","r12","xinterp","yinterp2","z00","z01","z10","z11","yinterp","xForPx","yForPx","xPixArray","yPixArray","xinterpArray","findInterpX","findInterpY","createImageData","pxArray","dlen","putImageData","xGapLeft","yGapTop","fillStyle","fillRect","avgColor","aHistogram2dContour","aContour","iStop","jStart","jStop","textData","zVal","theText","_t","nL","nC","globalFontSize","minW","minH","maxC","nextD","require_colorbar2","require_style6","require_hover5","yl","zmask","require_heatmap","require_heatmap2","require_bin_attributes","require_constants15","require_attributes26","makeBinAttrs","nbinsx","nbinsy","require_defaults22","sampleLetter","aggLetter","require_cross_trace_defaults3","BINATTRS","aStr","BINDIRECTIONS","binDir","allBinOpts","histTraces","mustMatchTracesLookup","otherTracesList","attr2","orientation2binDir","traceOut2","fillBinOpts","groupName2","binDir2","fallbackGroupName","getAxisType","binOpts2","needsNewItem","aGroupId","binGroupFound","bingroupIn","binGroup","binGroupInDir","attrSpec","nbinsFound","require_hover6","barHover","require_event_data3","require_histogram","require_histogram2","require_attributes27","histogramAttrs","heatmapAttrs","xbingroup","ybingroup","require_sample_defaults","require_defaults23","require_hover7","heatmapHover","xRange","yRange","require_histogram2d","require_histogram2d2","require_filter_ops","COMPARISON_OPS","COMPARISON_OPS2","INTERVAL_OPS","SET_OPS","CONSTRAINT_REDUCTION","require_attributes28","axisFormat","filterOps","autocontour","ncontours","showlabels","labelfont","labelformat","operation","require_attributes29","histogram2dAttrs","contourAttrs","require_contours_defaults","contourStart","contourEnd","missingEnd","contourSize","require_label_defaults2","require_style_defaults3","handleLabelDefaults","showLines","require_defaults24","handleContoursDefaults","require_set_contours","autoContours","zmin","zmax","zauto","inputContours","require_end_plus","require_calc10","heatmapCalc","setContours","endPlus","zOut","cVals","cs","nc","min0","require_constants16","BOTTOMSTART","TOPSTART","LEFTSTART","RIGHTSTART","NEWDELTA","CHOOSESADDLE","SADDLEREMAINDER","LABELDISTANCE","LABELINCREASE","LABELMIN","LABELMAX","LABELOPTIMIZER","EDGECOST","ANGLECOST","NEIGHBORCOST","SAMELEVELFACTOR","SAMELEVELDISTANCE","MAXCOST","INITIALSEARCHPOINTS","ITERATIONS","require_make_crossings","getMarchingIndex","mi","pathinfo","startIndices","ystartIndices","twoWide","require_find_all_paths","equalPts","xtol","ytol","makePath","loc","edgeflag","locStr","marchStep","getStartStep","getInterpPx","startLoc","startStep","atEdge","distgroup","cnt2","cnt3","newpt","ptcnt","ptavg","thisdist","edgepathi","edgepathj","closedpath","totaldist","distThresholdFactor","alldists","cropstart","distThreshold","getpt","edgepaths","doublemerged","locx","locy","zxy","dyl","require_constraint_mapping","coerceValue","coercedValue","hasArrayValue","makeRangeSettings","makeInequalitySettings","require_empty_pathinfo","constraintMapping","contoursFinal","_carpetTrace","basePathinfo","aaxis","baxis","ci","require_convert_to_constraints","copyPathinfo","pi0","pi1","op0","op1","require_close_boundaries","edgeVal2","prefixBoundary","boundaryMax","boundaryMin","contoursValue","require_plot6","heatmapPlot","makeCrossings","findAllPaths","emptyPathinfo","convertToConstraints","closeBoundaries","costConstants","joinAllPaths","perimeter","endpt","newendpt","nexti","possiblei","addpath","startsleft","newloop","isbottom","isleft","isright","ptNew","locationCost","textOpts","labelData","normX","normY","cost","labeli","dxd","dyd","sameLevel","distOffset","makeClipMask","emptyPoint","cdcontours","contourLayer","heatmapColoringLayer","leftedge","rightedge","bottomedge","topedge","fillPathinfo","bgfill","makeBackground","hasFills","boundaryPath","fillitems","makeFills","lineContainer","showLabels","clipLinesForLabels","linegroup","createLines","lineClip","createLineClip","labelGroup","labelClipPathData","contourFormat","labelFormatter","dummyText","xRng","yRng","plotDiagonal","normLength","calcTextOpts","pathBounds","maxLabels","findBestTextLocation","addLabelData","makeLinesAndLabels","clips","clipPathInfo","clipGaps","makeLines","opencontourlines","pedgepaths","closedcontourlines","ppaths","formatAxis","plotBounds","newLocation","newCost","rotateXY","bBoxPts","require_make_color_map","zmin0","zmax0","zRange","zRangeInput","require_style7","heatmapStyle","makeColorMap","contours2","isConstraintType","colorLines","colorFills","colorMap","labelFont","firstFill","require_colorbar3","isColorbar","require_hover8","heatmapHoverPoints","require_histogram2dcontour","require_histogram2dcontour2","require_constraint_defaults","zvalue","handleConstraintValueDefaults","require_defaults25","handleConstraintDefaults","isConstraint","require_contour","require_contour2","require_attributes30","require_defaults26","require_format_labels2","aLabel","bLabel","cLabel","caxis","require_calc11","dataArrays","arraysToFill","dataArray","fillArray1","fillArray2","displaySum","normSum","require_plot7","scatterPlot","plotContainer","clipIdRelative","frontplot","require_hover9","scatterHover","scatterPointData","newPointData","yFracUp","textPart","_hovertitle","require_event_data4","require_ternary","Ternary","makeFramework","aTickLayout","bTickLayout","cTickLayout","layoutId","ternaryCalcData","ternaryLayout","updateLayers","adjustLayout","plotbg","clipDef","clipDefRelative","backplot","grids","plotLayers","toplevel","whRatio","xDomainFinal","yDomainFinal","xDomainCenter","yDomainCenter","wmax","hmax","amin","bmin","yDomain0","triangleClip","triangleClipRelative","plotTransform","bTransform","bgrid","aTransform","agrid","cTransform","cgrid","aline","bline","cline","doTitles","titlesuffix","drawAx","apad","bpad","axLayout","stashKey","newTickLayout","caRad","CLEN","BLPATH","BRPATH","TOPPATH","mins0","span0","mins","_mins","clickZoomPan","clickMode","getAFrac","getBFrac","getCFrac","afrac","bfrac","cfrac","xSpan","dxScaled","dyScaled","minsorted","minindices","plotTransform2","dragDone","require_layout_attributes8","ternaryAxesAttrs","require_subplot_defaults","handleDomainDefaults","subplotLayoutIn","subplotLayoutOut","subplotAttributes","idsLength","baseId","noUirevision","require_layout_defaults7","handleSubplotDefaults","axesNames","handleTernaryDefaults","ternaryLayoutIn","ternaryLayoutOut","letterUpper","require_ternary2","TERNARY","ternaryIds","ternaryId","oldTernaryKeys","oldTernaryKey","oldTernary","require_scatterternary","require_scatterternary2","require_attributes31","boxAttrs","bandwidth","scalegroup","scalemode","spanmode","require_layout_attributes9","boxLayoutAttrs","violingap","violingroupgap","require_defaults27","boxDefaults","spanmodeDflt","boxWidth","boxFillColor","boxLineColor","boxLineWidth","meanLineColor","meanLineWidth","require_layout_defaults8","boxLayoutDefaults","require_helpers13","kernels","makeKDE","calcItem","kernel","getPositionOnKdePath","valuePx","pointOnPath","posCenterPx","posOnPath0","getKdeValue","valueDist","kde","posDensityScale","require_calc12","boxCalc","calcBandwidth","ssd","iqr","silvermanRule","calcSpan","spanOut","spanIn","spanTight","spanLoose","calcSpanItem","spanMin","spanMax","maxKDE","maxCount","violinScaleGroupStats","scaleGroup","groupStats","require_cross_trace_calc4","violinList","require_plot8","boxPlot","cdViolins","violinLayer","hasBothSides","hasPositiveSide","hasNegativeSide","violins","pathPos","pathNeg","pathSel","posCenter","endPt","bdPosScaled","meanPaths","require_style8","boxLine","meanLineStyle","require_hover10","boxHoverPoints","violinLineAttrs","hasHoveronViolins","hasHoveronKDE","closeData","kdePointData","vValPx","kdeVal","pOnPath","paOffset","paLength","medId","violinLine","require_violin","require_violin2","require_constants17","require_attributes32","lineAttrs","require_layout_attributes10","funnelmode","funnelgap","funnelgroupgap","require_defaults28","cBase","defaultFillColor","require_layout_defaults9","require_arrays_to_calcdata3","require_calc13","fixNum","prevGoodNum","connectToNext","cNext","vTotal","require_cross_trace_calc5","funnels","funnelsVert","funnelsHorz","funnelnorm","nextP0","nextS0","nextP1","nextS1","require_plot9","barPlot","connectors","plotConnectorRegions","plotConnectorLines","require_style9","barStyle","require_hover11","percentTotalLabel","isAll","require_event_data5","require_funnel","require_funnel2","require_constants18","require_attributes33","directionAttrs","dirTxt","measure","totals","require_layout_attributes11","waterfallmode","waterfallgap","waterfallgroupgap","require_delta","INCREASING","COLOR","SYMBOL","DECREASING","require_defaults29","INCREASING_COLOR","DECREASING_COLOR","handleDirection","require_layout_defaults10","require_calc14","isAbsolute","isTotal","previousSum","isSum","require_cross_trace_calc6","waterfalls","waterfallsVert","waterfallsHorz","waterfallnorm","require_plot10","plotConnectors","require_style10","require_hover12","DIRSYMBOL","require_event_data6","require_waterfall","require_waterfall2","require_constants19","colormodel","rgba256","zminDflt","zmaxDflt","require_attributes34","cm","zminDesc","zmaxDesc","require_defaults30","dataUri","_hasSource","_hasZ","require_inherits_browser","superCtor","super_","TempCtor","require_stream_browser","require_base64_js","len22","require_ieee754","require_buffer","Buffer2","byteLength2","require_shams","symObj","syms","require_shams2","hasSymbols","toStringTag","require_es_errors","require_eval","EvalError","require_range","require_ref","require_syntax","SyntaxError","require_type","require_uri","URIError","require_has_symbols","origSymbol","hasSymbolSham","require_has_proto","$Object","require_implementation","toStr","concatty","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","require_function_bind","implementation","require_hasown","$hasOwn","require_get_intrinsic","undefined2","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$TypeError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","errorProto","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt64Array","BigUint64Array","decodeURIComponent","eval","FinalizationRegistry","Map","Set","WeakRef","WeakSet","doEval","doEval2","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","allowMissing","alias","intrinsicName","quote","subString","stringToPath","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","require_es_define_property","$defineProperty","GetIntrinsic","require_gopd","require_define_data_property","gopd","nonEnumerable","nonWritable","nonConfigurable","loose","require_has_property_descriptors","hasPropertyDescriptors","hasArrayLengthDefineBug","require_set_function_length","define2","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","require_call_bind","setFunctionLength","$apply","$call","$reflectApply","$max","originalFunction","applyBind","require_callBound","callBind","$indexOf","require_is_arguments","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","require_is_generator_function","GeneratorFunction","fnToStr","isFnRegex","generatorFunc","getGeneratorFunc","require_is_callable","badArrayLike","isCallableMarker","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","strClass","require_for_each","isCallable","hasOwnProperty2","thisArg","forEachArray","forEachString","forEachObject","require_available_typed_arrays","possibleNames","require_which_typed_array","availableTypedArrays","$slice","typedArray","superProto","tag","trySlices","tryTypedArrays","require_is_typed_array","toStrTags","anyTrue","require_types","isArgumentsObject","isGeneratorFunction","whichTypedArray","uncurryThis","bigIntValue","symbolValue","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","working","isDataViewToString","isDataView","isPromise","isArrayBufferView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isMap","isSet","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","require_isBufferBrowser","require_util","descriptors","formatRegExp","isString","objects","isNull","isObject","deprecate","noDeprecation","throwDeprecation","traceDeprecation","debugEnv","debugs","debugEnvRegex","stylize","stylizeNoColor","isBoolean","showHidden","isUndefined","customInspect","stylizeWithColor","styleType","styles","recurseTimes","isFunction","primitive","simple","isNumber","formatPrimitive","visibleKeys","arrayToHash","isError","formatError","isRegExp","braces","toUTCString","formatProperty","formatArray","cur","reduceToSingleString","objectToString","debuglog","pid","bold","italic","underline","special","undefined","null","regexp","types","isNullOrUndefined","isSymbol","isNativeError","isPrimitive","inherits","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","nextTick","rej","require_buffer_list","enumerableOnly","symbols","_defineProperty","staticProps","BufferList","entry","hasStrings","_getString","_getBuffer","_objectSpread","require_destroy","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","_writableState","emitClose","_readableState","readableDestroyed","destroyed","writableDestroyed","errorEmitted","_destroy","err2","undestroy","reading","endEmitted","ending","finalCalled","prefinished","finished","errorOrDestroy","rState","wState","autoDestroy","require_errors_browser","codes","createErrorType","NodeError","_Base","NodeError2","arg3","oneOf","expected","thing","determiner","this_len","endsWith","require_state","ERR_INVALID_OPT_VALUE","getHighWaterMark","duplexKey","isDuplex","hwm","highWaterMark","highWaterMarkFrom","objectMode","require_browser","localStorage","require_stream_writable","CorkedRequest","finish","corkReq","pendingcb","corkedRequestsFree","onCorkedFinish","Duplex","Writable","WritableState","realHasInstance","internalUtil","Stream","OurUint8Array","destroyImpl","_require$codes","ERR_METHOD_NOT_IMPLEMENTED","ERR_MULTIPLE_CALLBACK","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","require_stream_duplex","writableObjectMode","needDrain","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","writelen","onwriteStateUpdate","finishMaybe","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","bufferedRequestCount","_write","writev","_writev","_final","doWrite","chunk","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","hasInstance","pipe","_uint8ArrayToBuffer","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_undestroy","objectKeys","keys2","Readable","require_stream_readable","allowHalfOpen","readable","onend","onEndNT","require_safe_buffer","copyProps","SafeBuffer","require_string_decoder","StringDecoder","enc","nenc","retried","_normalizeEncoding","normalizeEncoding","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","utf8CheckByte","byte","utf8CheckExtraBytes","utf8CheckIncomplete","require_end_of_stream","ERR_STREAM_PREMATURE_CLOSE","eos","called","_len","_key","onlegacyfinish","onfinish","writableEnded","readableEnded","onclose","onrequest","req","setHeader","isRequest","require_async_iterator","_Object$setPrototypeO","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","lastPromise","wrapForNext","asyncIterator","_Object$create","require_from_browser","ReadableState","EElistenerCount","debugUtil","createReadableStreamAsyncIterator","ERR_STREAM_PUSH_AFTER_EOF","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","kProxyEvents","readableObjectMode","pipes","pipesCount","flowing","needReadable","emittedReadable","readableListening","resumeScheduled","paused","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","emitReadable","emitReadable_","onEofChunk","chunkInvalid","addChunk","maybeReadMore","isPaused","setEncoding","content","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","ondrain","ondata","cleanedUp","pipeOnDrain","pause","dests","_fromList","iterable","require_stream_transform","Transform","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","_transformState","transforming","writechunk","needTransform","writeencoding","_transform","_flush","require_stream_passthrough","PassThrough","require_pipeline","ERR_MISSING_ARGS","streams","popCallback","destroys","destroyer","require_stream_browserify","EE","pipeline","_isStdio","didOnEnd","require_util2","require_errors","_createSuper","assert","util","require_assert","inspected","require_assertion_error","_toPropertyKey","hint","prim","_toPrimitive","_wrapNativeSuper","Class","_cache","Class2","Wrapper","_construct","Parent","Parent2","kReadableOperator","deepStrictEqual","strictEqual","strictEqualObject","deepEqual","equal","notDeepStrictEqual","notStrictEqual","notStrictEqualObject","notDeepEqual","notEqual","notIdentical","copyError","inspectValue","compact","maxArrayLength","breakLength","showProxy","getters","createErrDiff","operator","lastPos","skipped","actualInspected","actualLines","expectedLines","indicator","inputLength","isTTY","_actualLines","printedLines","skippedMsg","expectedLine","actualLine","divergingLines","AssertionError","_Error","_inspect$custom","AssertionError2","stackStartFn","stackTraceLimit","getColorDepth","knownOperators","generatedMessage","captureStackTrace","require_isArguments","isArgs","require_implementation2","keysShim","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","isArguments","theKeys","skipProto","skipConstructor","require_object_keys","origKeys","originalKeys","shim","keysWorksWithArguments","require_implementation3","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","getSymbols","propValue","require_polyfill","assign","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","require_implementation4","require_polyfill2","is","require_define_properties","origDefineProperty","supportsDescriptors","predicate","predicates","require_shim","getPolyfill","polyfill","require_object_is","require_implementation5","require_polyfill3","require_shim2","require_is_nan","require_comparisons","_slicedToArray","_arrayWithHoles","return","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","regexFlagsSupported","arrayFromSet","arrayFromMap","objectIs","objectGetOwnPropertySymbols","_require$types","isNonIndex","getOwnNonIndexProperties","innerDeepEqual","val1","memos","buf1","buf2","val1Tag","keys1","keyCheck","areSimilarTypedArrays","areSimilarFloatArrays","_keys","_keys2","isEqualBoxedPrimitive","getEnumerables","iterationType","aKeys","bKeys","symbolKeysA","symbolKeysB","_symbolKeysB","val2MemoA","val2MemoB","areEq","memo","aValues","setMightHaveLoosePrim","bValues","_i","_val","setHasEqualElement","setEquiv","aEntries","_aEntries$i","item1","item2","mapMightHaveLoosePrim","bEntries","_i2","_bEntries$_i","mapHasEqualEntry","mapEquiv","keysA","_key2","objEquiv","delete","setValues","findLooseMatchingPrimitives","altValue","curB","key1","isDeepEqual","isDeepStrictEqual","ERR_AMBIGUOUS_ARGUMENT","ERR_INVALID_ARG_VALUE","ERR_INVALID_RETURN_VALUE","objectAssign","RegExpPrototypeTest","lazyLoadComparison","comparison","NO_EXCEPTION_SENTINEL","innerFail","innerOk","argLen","fail","internalMessage","argsLen","emitWarning","errArgs","Comparison","Comparison2","expectedException","compareExceptionKey","isPrototypeOf","getActual","checkIsPromise","waitForActual","promiseFn","resultPromise","expectsError","details","fnType","expectsNoError","internalMatch","fnName","_len6","_key6","throws","_len2","rejects","_len3","_key3","doesNotThrow","_len4","_key4","doesNotReject","_len5","_key5","ifError","newErr","origStack","tmp2","tmp1","doesNotMatch","require_ms","plural","long","fmtShort","require_debug","prevTime","createDebug","curr","formatters","formatArgs","useColors","selectColor","namespaces","save","skips","humanize","require_browser2","storage","define_process_env_default","DEBUG","useColors2","lastC","removeItem","WebkitAppearance","firebug","exception","$1","chrome","localstorage","require_stream_parser","_parserBytesLeft","_parserBuffers","_parserBuffered","_parserState","_parserCallback","_parserOutput","_parserInit","_bytes","_skipBytes","_passthrough","process2","async","trampoline","rtn","isTransform","isWritable","_data","require_common","streamParser","ParserStream","ProbeError","statusCode","sliceEq","str2arr","require_miaf_utils","unbox","boxtype","scan_ipco","sandbox","sizes","scan_iloc","offset_size","length_size","base_offset_size","item_count","item_ID","data_reference_index","base_offset","extent_count","first_extent_offset","first_extent_length","item_loc","scan_iinf","item_id","item_name","item_inf","scan_iprp","readSizeFromMeta","scan_meta","maxWidthSize","maxHeightSize","maxSize","rotate_ccw","mirror_vert","exif_location","Exif","variants","getMimeType","brand","mif1","msf1","miaf","mime","avif","avis","heic","heix","hevc","hevx","heis","require_exif_utils","utf8_decode","escape","ExifParser","jpeg_bin","exif_start","exif_end","sig","big_endian","on_entry","read_uint32","ifds_to_read","scan_ifd","read_uint16","is_subifd_link","ifd","exif_format_length","exif_format_read","ifd_no","entry_count","comp_length","data_length","data_offset","comp_offset","is_big_endian","entry_offset","get_orientation","require_avif","exif","SIG_FTYP","firstBox","fileType","imgSize","wUnits","hUnits","sig_offset","exif_data","require_bmp","SIG_BM","require_gif","SIG_GIF87a","SIG_GIF89a","require_ico","numImages","require_jpeg","SIG_EXIF","require_png","SIG_PNG","SIG_IHDR","require_psd","SIG_8BPS","require_svg","isFinitePositive","SVG_HEADER_RE","SVG_TAG_RE","SVG_WIDTH_RE","SVG_HEIGHT_RE","SVG_VIEWBOX_RE","SVG_UNITS_RE","chr","canBeSvg","svgTag","viewbox","vbWidth","vbHeight","require_tiff","SIG_1","SIG_2","readUInt16","readUInt32","readIFDValue","ifd_size","require_webp","SIG_RIFF","SIG_WEBP","parseVP8","parseVP8L","parseVP8X","exif_orientation","fileLength","require_parsers_sync","bmp","gif","ico","jpeg","png","psd","tiff","webp","require_sync","parsers","parser_names","probeBuffer","require_helpers14","probeSync","getImageSize","buff","require_calc15","yrange","_scaler","_sArray","ck","makeScaler","require_plot11","cdimage","imageLayer","supportsPixelated","realImage","_realImage","flipX","flipY","_canvas","_image","drawMagnifiedPixelsOnCanvas","getImageData","readPixel","ipx","jpx","ipx0","ipx1","jpx0","jpx1","require_style11","require_hover13","fmtColor","colorstring","colorLabel","require_event_data7","require_image","require_image2","require_attributes35","label0","dlabel","insidetextorientation","hole","pull","require_defaults31","handleLabelsAndValues","hasLabels","hasValues","hasPositive","isPie","markerColors","_hasLabels","_hasValues","textInfo","textTemplate","titlePosition","require_layout_attributes12","piecolorway","extendpiecolors","require_layout_defaults11","require_calc16","extendedColorWayList","makePullColorFn","generateExtendedColors","extendedColorWays","hiddenLabels","allThisTraceLabels","pullColor","isAggregated","hidden","colorWay","dfltColorCount","require_event_data8","require_plot12","attachFxHandlers","sliceTop","isFunnelArea","_hasHoverLabel","_hasHoverEvent","fullLayout2","rInscribed","hoverCenterX","pxmid","hoverCenterY","percentLabel","TL","TR","BL","originalEvent","determineInsideTextFont","customColor","prerenderTitles","dummyTitle","titleBox","transformInsideText","rpx1","startangle","stopangle","rCenter","textPosAngle","ring","halfAngle","halfangle","midAngle","midangle","isTangential","allTransforms","considerCrossing","isCrossing","dStart","dStop","closestEdge","calcTanTransform","calcRadTransform","textDiameter","calcMaxHalfSize","calcRCenter","calcRotate","getInscribedRadiusFraction","transformOutsideText","outside","positionTitleOutside","plotSize","maxPull","topMiddle","getMaxPull","getTitleSpace","pieBoxHeight","layoutAreas","scaleGroups","baseratio","groupScale","getCoords","formatSliceLabel","hasLabel","hasValue","hasPercent","ptTx","computeTransform","midX","midY","plotGroups","currentCoords","currentAngle","angleFactor","firstPt","setCoords","quadrants","hasOutsideText","slicePath","cxFinal","cyFinal","outerCircle","px0","outerArc","px1","rim","sliceTextGroup","sliceText","determineOutsideTextFont","newFont","textXY","yLabelMin","yLabelMid","yLabelMax","labelExtraX","labelExtraY","titleTextGroup","positionTitleInside","xHalf","yHalf","equatorFirst","farthestX","farthestY","xDiffSign","yDiffSign","thisQuad","oppositeQuad","wholeSide","thisQuadOutside","firstOppositeOutsidePt","topFirst","bottomFirst","scootOneLabel","prevPt2","xBuffer","otherPt","newExtraX","prevOuterY","thisInnerY","thisOuterY","thisSliceOuterY","newExtraY","prevPt","scootLabels","lineStartX","textLinePath","finalX","yFromX","yNet","plotTextLines","traceBbox","vpw","vph","require_style12","styleOne","traceSelection","require_base_plot","require_pie","require_pie2","require_base_plot2","require_constants20","CLICK_TRANSITION_TIME","CLICK_TRANSITION_EASING","require_attributes36","pieAttrs","branchvalues","maxdepth","require_layout_attributes13","sunburstcolorway","extendsunburstcolors","require_defaults32","withColorscale","_hasColorscale","require_layout_defaults12","require_d3_hierarchy","defaultSeparation","meanXReduce","maxYReduce","Node","valued","defaultChildren","eachBefore","computeHeight","copyData","eachAfter","leastCommonAncestor","descendants","leaves","enclose","circles","enclosesWeak","encloseBasis","extendBasis","enclosesWeakAll","enclosesNot","encloseBasis2","encloseBasis3","r21","r3","a3","c3","C2","place","intersects","Node$1","packEnclose","ca","sj","sk","required","constantZero","constant","defaultRadius","radiusLeaf","packChildren","translateChild","roundNode","treemapDice","preroot","ambiguous","defaultId","defaultParentId","parentId","defaultSeparation$1","nextLeft","nextRight","moveSubtree","nextAncestor","TreeNode","treemapSlice","phi","squarifyRatio","nodeValue","sumValue","newRatio","minRatio","beta","dice","squarify2","resquarify","resquarify2","_squarify","cluster2","meanX","leafLeft","leafRight","packSiblings","partition2","positionNode","stratify","stratify2","nodeId","nodeKey","nodeByKey","tree2","treeRoot","siblings2","executeShifts","tile","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingOuter","treemapBinary","x02","y02","valueOffset","valueTarget","valueLeft","valueRight","xk","yk","treemapResquarify","treemapSliceDice","treemapSquarify","require_calc17","d3Hierarchy","makeColorScaleFn","sunburstExtendedColorWays","treemapExtendedColorWays","icicleExtendedColorWays","countDescendants","nChild","branches","_values","hasIds","parent2children","refs","isValidKey","isValidVal","dummyId","hasMultipleRoots","impliedRoots","hasImpliedRoot","cdi2","partialSum","scaleColor","hasColors","_runCrossTraceCalc","rootColor","pickColor","define_default","extend","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","init_define","Color","color_formatHex","formatHex","color_formatHex8","formatHex8","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","rgbn","Rgb","rgbConvert","rgb_formatHex","hex","rgb_formatHex8","rgb_formatRgb","clampa","clampi","Hsl","clamph","clampt","hsl2rgb","radians","degrees","Xn","Yn","Zn","t0","t1","t2","t3","init_color","channels","displayable","init_math","labConvert","Lab","Hcl","hcl2lab","rgb2lrgb","xyz2lab","lab2xyz","lrgb2rgb","hclConvert","D","ED","EB","BC_DA","init_lab","cubehelix","Cubehelix","cubehelixConvert","init_cubehelix","cosh2","sinh2","init_src","basis_default","init_basis","basisClosed_default","constant_default","init_basisClosed","init_constant","hue","gamma","nogamma","exponential","rgb_default","rgbBasis","rgbBasisClosed","init_color2","rgbSpline","spline","init_rgb","rgbGamma","numberArray_default","isNumberArray","init_numberArray","array_default","genericArray","value_default","init_array","init_value","date_default","init_date","number_default","init_number","object_default","reA","reB","init_object","string_default","one","init_string","discrete_default","init_discrete","hue_default","init_hue","round_default","degrees2","init_round","decompose_default","skewX","svgNode","init_decompose","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","parseSvg","interpolateTransformCss","interpolateTransformSvg","init_parse","pxComma","pxParen","degParen","zoom_default","init_transform","cosh","hsl_default","hslLong","init_zoom","zoomRho","rho","rho2","rho4","sinh","_1","_2","hsl2","init_hsl","lab2","hcl_default","hclLong","init_lab2","hcl2","cubehelix_default","cubehelixLong","init_hcl","cubehelix2","cubehelixGamma","cubehelix3","init_cubehelix2","piecewise","init_piecewise","quantize_default","interpolator","samples","init_quantize","src_exports","interpolateBasis","interpolateBasisClosed","interpolateCubehelix","interpolateCubehelixLong","interpolateDate","interpolateDiscrete","interpolateHclLong","interpolateHslLong","interpolateHue","interpolateNumberArray","interpolateRgbBasis","interpolateRgbBasisClosed","import_color_name","color_parse_default","baseHues","init_src2","require_fill_one2","fadedColor","require_style13","isLeaf","require_helpers15","pieHelpers","getParentId","findEntryWithLevel","getPtId","findEntryWithChild","childId","isEntry","getPtLabel","isHierarchyRoot","setSliceCursor","isTransitioning","hideOnRoot","hideOnLeaves","getInsideTextFontKey","keyStr","onPathbar","getOutsideTextFontKey","isOutsideText","determineTextFont","getMaxDepth","isHeader","_maxDepth","listPath","getPath","require_fx2","parentString","isSunburst","isTreemapOrIcicle","fullLayoutNow","traceNow","isRoot","_cast","_hoverX","_hoverY","currentPath","allPercents","insertPercent","percentParent","percentEntry","percentRoot","hovered","noTransition","nextEntry","nextLevel","typeClickEvtData","animOpts","transitionTime","transitionEasing","require_plot13","piePlot","maxDepth","rMax","prevLookup","rpx0","sliceData","cutoff","baseX","y2rpx","pathSlice","getTargetX","getTextXY","getTargetY","entryPrev","parentChildren","makeExitSliceInterpolator","nextX1ofPrevEntry","prevEntryId","updateSlices","interpX0X1FromParent","parentPrev","xmid","prev0","makeUpdateSliceInterpolator","strTransform","textBB2","textPosAngleFn","rpx1Fn","x0Fn","x1Fn","scaleFn","rotateFn","_rCenterFn","rCenterFn","makeUpdateTextInterpolator","addPercent","percentParentLabel","percentEntryLabel","percentRootLabel","require_sunburst","require_sunburst2","require_base_plot3","require_constants21","gapWithPathbar","require_attributes37","sunburstAttrs","tiling","packing","squarifyratio","depthfade","pathbar","edgeshape","require_layout_attributes14","treemapcolorway","extendtreemapcolors","require_defaults33","bottomText","headerSize","_hovered","require_layout_defaults13","require_calc18","require_flip_tree","flipTree","swapXY","require_partition","getTilingMethod","inner","require_style14","_backgroundColor","_maxVisibleLayers","_entryDepth","_atRootLevel","require_draw_ancestors","barDifY","viewX","viewY","toMoveInsideSlice","handleSlicesExit","eachWidth","pathIds","require_plot_one","drawAncestors","getKey","drawDescendants","isIcicle","selAncestors","selDescendants","barW","barH","pathbarOrigin","findClosestEdge","isLeftOfRect","isRightOfRect","isBottomOfRect","isTopOfRect","prevLookupPathbar","prevLookupSlices","nextOfPrevEntry","getPrev","getOrigin","hasVisibleDepth","viewMapX","viewMapY","barY0","barX0","viewBarX","viewBarY","limitX0","hasTop","hasLeft","hasRight","hasBottom","_hasRight","limY","interpFromParent","halfH","pL","pR","pA","pB","pC","pD","require_draw12","require_draw_descendants","noRoomForHeader","minVisibleDepth","maxVisibleDepth","getRefRect","singleLineHeader","require_plot14","require_treemap","require_treemap2","require_base_plot4","require_attributes38","treemapAttrs","require_layout_attributes15","iciclecolorway","extendiciclecolors","require_defaults34","require_layout_defaults14","require_calc19","require_partition2","require_style15","require_draw_descendants2","require_plot15","require_icicle","require_icicle2","require_base_plot5","require_attributes39","require_layout_attributes16","funnelareacolorway","extendfunnelareacolors","require_defaults35","require_layout_defaults15","require_calc20","pieCalc","require_plot16","getBetween","totalValues","sumSteps","allPoints","getPoint","lastX","prevLeft","prevRight","BR","calcPos","require_style16","require_funnelarea","require_funnelarea2","require_stackgl_modules","__webpack_modules__","__unused_webpack_exports","__webpack_require__2","alpha_shape","convex_hull","delaunay_triangulate","gl_cone3d","gl_error3d","gl_line3d","gl_mesh3d","gl_plot3d","gl_scatter3d","gl_streamtube3d","gl_surface3d","ndarray","ndarray_linear_interpolate","__unused_webpack_module","_callSuper","e2","hp","IS","module22","limits","distanceLimits","turntable","createTurntable","orbit","createOrbit","createMatrix","setDistanceLimits","ViewController","controllers","_controllerNames","_controllerList","_active","modes","computedMatrix","computedEye","computedUp","computedCenter","computedRadius","cc","idle","setMatrix","setDistance","recalcMatrix","getDistance","getDistanceLimits","lastT","setMode","getMode","weakMap","createVAO","TriangleCache","gl2","triangleVAO","handle","_triangleBuffer","FLOAT","drawArrays","TRIANGLES","unbind","padLeft","delim","totalDigits","linearlyIndependent","nhull","simplex","circumradius","bnd","solve","rationalize","cmp","isRat","isBN","num2bn","str2bn","makeRational","numer","denom","ushln","BN","words","ctz","countTrailingZeros","snumer","sdenom","neg","cmpn","bnsign","bn2num","divmod","iv","ir","negative","divRound","ybits","bitLength","ge","le","eq","INT_BITS","INT_MAX","INT_MIN","mask","isPow2","log2","log10","popCount","nextPow2","prevPow2","parity","REVERSE_TABLE","tab","interleave2","deinterleave2","interleave3","deinterleave3","nextCombination","module3","endian","_init","wordSize","parseHex4Bits","parseHexByte","lowerBound","parseBase","_initNumber","_initArray","_parseHex","_parseBase","toArray","strip","limbLen","limbPow","word","imuln","_iaddn","_expand","_normSign","zeros","groupSizes","groupBases","smallMulTo","carry","ncarry","rword","maxJ","groupSize","groupBase","isZero","modn","idivn","toNumber","toBuffer","toArrayLike","ArrayType","reqLength","andln","iushrn","clz32","_countBits","_zeroBits","zeroBits","toTwos","inotn","iaddn","fromTwos","testn","notn","ineg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","al0","ah0","al1","ah1","al2","ah2","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","bl0","bh0","bl1","bh1","bl2","bh2","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","imul","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","jumboMulTo","FFTM","mulp","mulTo","hncarry","bigMulTo","makeRBT","revBin","rbt","rws","iws","rtws","itws","rtwdf","itwdf","rtwdf_","itwdf_","ie","ro","io","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","toBitArray","iushln","carryMask","newCarry","ishln","extended","maskedWords","ishrn","shln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","bhi","qj","divn","umod","dm","half","acc","egcd","isEven","im","isOdd","jm","_invmp","invm","bincn","ucmp","gtn","gten","gte","ltn","lten","lte","eqn","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","_strip","outLen","prime2","mod3","one2","nOne","lpow","inv","wnd","currentLen","mont","nmd","sz","ptr","RESULT","boxIntersect","appendItem","intersectBipartiteArray","pool","sweep","boxIntersectIter","boxEmpty","convertBoxes","boxes","full","retval","redList","mallocDouble","redIds","mallocInt32","sweepComplete","blueList","blueIds","sweepBipartite","free","bruteForcePlanner","isFull","ri","be","es","bp","rv","bruteForceRedFull","bruteForceBlueFull","fp","bruteForceRedFlip","bruteForceRed","bruteForceBlueFlip","bruteForceBlue","partial","initFull","xBoxes","xIndex","yBoxes","yIndex","levels","maxInts","IFRAME_SIZE","BOX_ISTACK","maxDoubles","DFRAME_SIZE","BOX_DSTACK","iterInit","elemSize","iterPush","iptr","redStart","redEnd","blueStart","blueEnd","dptr","redIndex","blueIndex","partitionStartLessThan","partitionEndLessThanEqual","redCount","blueCount","SCAN_COMPLETE_CUTOFF","scanComplete","BRUTE_FORCE_CUTOFF","bruteForcePartial","SCAN_CUTOFF","scanBipartite","red0","partitionInteriorContainsInterval","bruteForceFull","blue0","findMedian","blue1","partitionStartEqual","onePointFull","onePointPartial","red1","partitionContainsPoint","redX","partitionContainsPointProper","bruteForce","genPartition","blueOffset","blueId","bluePtr","blueX","red_loop","redPtr","redId","pivot","PARTITION_THRESHOLD","insertionSort","pivot0","value0","pivot1","value1","pivot2","aPtr","bPtr","boxPtr","P2F","INSERT_SORT_CUTOFF","quickSort","jptr","shufflePivot","comparePivot","sixth","index5","index3","index4","el1","el2","el4","el5","less","great","pivot1X","pivot1Y","pivot2X","pivot2Y","ptr0","ptr2","ptr4","ptr5","ptr6","ptr7","RED_SWEEP_QUEUE","RED_SWEEP_INDEX","BLUE_SWEEP_QUEUE","BLUE_SWEEP_INDEX","COMMON_SWEEP_QUEUE","COMMON_SWEEP_INDEX","eventLength","SWEEP_EVENTS","istart","iend","redOffset","BLUE_FLAG","isort","redActive","blueActive","sqPop","sqPush","commonActive","redShift","blueShift","isRed","oidx","INIT_CAPACITY","monotoneTriangulate","makeIndex","delaunayFlip","filterTriangulation","canonicalizeEdge","compareEdge","getDefault","interior","exterior","infinity","triangulation","canonicalizeEdges","addTriangle","inCircle","testFlip","numPoints","stars","bsearch","FaceIndex","neighbor","constraint","boundary","compareCell","locate","indexCells","filterCells","PartialHull","lowerIds","upperIds","Event","compareEvent","testPoint","addPoint","hulls","findSplit","splitHulls","splitIdx","mergeHulls","mergeIdx","numEdges","numEvents","Triangulation","numVerts","removePair","compareLex","removeTriangle","dup","barycentricCircumcenter","circumcenter","weights","barycenetric","avgDist","prevEdges","augEdges","modified","useColor","dedupPoints","boundPoints","dedupEdges","preRound","snapRound","UnionFind","segseg","rat","ratCmp","ratToFloat","ratVec","nextafter","solveIntersection","boundRat","floatPoints","ratPoints","floatBounds","noDupes","compareLex2","compareLex3","edgeBounds","boundEdges","getCrossings","tjunctions","vertBounds","getTJunctions","junctions","crossing","ee","ef","junction","cutEdges","rvSub","baXdc","ratPerp","ratSign","dcXac","ratDiv","rvMuls","rvAdd","ratMul","ratSub","jet","hot","spring","summer","autumn","winter","bone","copper","greys","yignbu","greens","yiorrd","bluered","rdbu","picnic","rainbow","portland","blackbody","earth","electric","viridis","inferno","magma","plasma","warm","cool","bathymetry","cdom","chlorophyll","oxygen","par","phase","salinity","temperature","turbidity","colorScale","lerp","rgb2float","rgb2hex","rgbaStr","indicies","fromrgba","torgba","cmap","colormap","nshades","amt","bcd","sabc","sabd","testInterior","abc","twoSum","robustProduct","robustSum","aw","az","bz","compareInt","compareCells","convexHull1d","convexHull2d","convexHullnd","monotoneHull","ich","aff","npoints","invPermute","ti","ti2","h00","h10","h01","h11","derivative","dh00","dh10","dh01","dh11","ch","uniq","LiftedPoint","compareLifted","includePointAtInfinity","lifted","triangulate1D","dpoints","dindex","hasTypedArrays","DOUBLE_VIEW","UINT_VIEW","toDoubleLE2","lowUintLE2","highUintLE2","toDoubleBE2","lowUintBE2","highUintBE2","toDouble2","lowUint2","highUint2","denormalized","dupe_array","dupe_number","numVertices","adj","zNear","zFar","zf","initState","initVelocity","initTime","FilteredVector","getZero","cubicHermite","state0","velocity0","_state","_velocity","_time","_scratch","velocity","dt","steady","dcurve","stable","jump","sf","statePtr","RBNode","_color","_count","repaint","recount","RedBlackTree","_compare","defaultCompare","doVisitFull","doVisitHalf","doVisit","RedBlackTreeIterator","_stack","n_stack","d_stack","ppp","last_ptr","iproto","swapNode","cstack","fixDoubleBlack","createText","createBackground","getCubeProperties","Ticks","copyVec3","gl","pixelRatio","tickEnable","tickFontStyle","tickFontWeight","tickFontVariant","tickAlign","tickPad","lastCubeProps","cubeEdges","labelEnable","labelFontStyle","labelFontWeight","labelFontVariant","labelSize","labelAngle","labelAlign","labelColor","labelPad","lineEnable","lineMirror","lineTickEnable","lineTickMirror","lineTickLength","lineTickWidth","lineTickColor","gridEnable","zeroEnable","backgroundEnable","_firstInit","_lines","_background","OffsetInfo","primalOffset","primalMinor","mirrorOffset","mirrorMinor","parseOption","cons","nextTicks","NUMBER","BOOLEAN","STRING","ticksUpdate","boundsChanged","labelUpdate","labelFontOpts","tickFontOpts","dispose","LINE_OFFSET","computeLineOffset","cubeAxis","dualOffset","dualMinor","CUBE_ENABLE","DEFAULT_PARAMS","_ortho","isOpaque","isTransparent","drawTransparent","PRIMAL_MINOR","MIRROR_MINOR","PRIMAL_OFFSET","isOrtho","cubeParams","cz","pixelScaleF","lineOffset","alignOpt","enableAlign","alignDir","minor2","major2","i22","cubeEnable","drawZero","drawAxisLine","drawAxisTicks","alignTo","elements","ELEMENT_ARRAY_BUFFER","vao","stride","shader","createShader","BackgroundCube","needsBG","POLYGON_OFFSET_FILL","polygonOffset","uniforms","mvp","transformHg","pCubeVerts","closest","cubeVerts","o1","f1","f0","f2","zero3","polygonArea","farthest","CUBE_EDGES","CUBE_AXIS","cutCorner","CUBE_RESULT","splitPoly","mat","FRUSTUM_PLANES","ux","uy","vx","vy","tickCount","gridOffset","gridCount","vertBuf","Lines","MAJOR_AXIS","MINOR_AXIS","SCREEN_AXIS","OFFSET_VEC","SHAPE","zeroVec","copyVec","vertBuffer","screenShape","minorAxis","majorAxis","screenAxis","noffset","glslify","lineVert","lineFrag","textVert","textFrag","bgVert","bgFrag","TextSprites","vectorizeText","globals","global","__TEXT_CACHE","labelCount","pixelScale","resolution","lineSpacing2","styletags2","fontKey","fontcache","mesh","tryVectorizeText","textBaseline","lineSpacing","styletags","breaklines","bolds","italics","subscripts","superscripts","prettyPrint","spacing","stepStr","sigFigs","xstr","xis","ticksA","ticksB","m4mul","ranges","RANGES","pixelsPerDataUnit","getPlanes","m4transpose","SCRATCH_X","i_loop","grad","v4transformMat4","AxesRange3D","SCRATCH_P","SCRATCH_Q","SUPPORTED_TYPES","GLBuffer","usage","updateTypeArray","dataLen","bufferData","bufferSubData","makeScratchTypeArray","malloc","bindBuffer","deleteBuffer","getExtension","isPacked","ndt","ARRAY_BUFFER","DYNAMIC_DRAW","STATIC_DRAW","STREAM_DRAW","vec3","vectorfield","vectors","vertexIntensity","vertexIntensityBounds","coneOffset","maxNorm","minZ","maxZ","positionVectors","vectorScale","skipIt","rawSizemodemode","coneSizemode","minV","maxV","invertedMaxNorm","coneScale","coneSize","absoluteConeSize","intensity","shaders","createMesh","createConeMesh","createTexture","IDENTITY","VectorMesh","texture","triShader","pickShader","trianglePositions","triangleVectors","triangleIds","triangleColors","triangleUVs","triangleCount","pickId","clipBounds","lightPosition","ambientLight","diffuseLight","specularLight","roughness","fresnel","tubeScale","_model","_view","_projection","_resolution","pickSlots","setPickBase","ambient","diffuse","specular","minFilter","LINEAR_MIPMAP_LINEAR","magFilter","LINEAR","setPixels","genColormap","generateMipmap","tPos","tVec","tCol","tUVs","tIds","meshColor","intensityLo","intensityHi","takeZComponent","fill_loop","inverseModel","kambient","kdiffuse","kspecular","eyePosition","CULL_FACE","invCameraMatrix","drawPick","pickData","cellId","dataCoordinate","divergence","meshShader","fragment","vector","createMeshShader","createPickShader","meshTexture","UNSIGNED_BYTE","normalized","triVertSrc","triFragSrc","pickVertSrc","pickFragSrc","gl10","ErrorBars","capSize","updateBounds","LINES","FACE_TABLE","emitFace","verts","vertexCount","vertSrc","fragSrc","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","WEBGL_draw_buffers","colorAttachmentArrays","maxColorAttachments","getParameter","MAX_COLOR_ATTACHMENTS_WEBGL","COLOR_ATTACHMENT0","NONE","lazyInitColorAttachments","maxFBOSize","MAX_RENDERBUFFER_SIZE","numColors","colorType","OES_texture_float","float","preferFloat","useDepth","useStencil","stencil","Framebuffer","saveFBOState","FRAMEBUFFER_BINDING","RENDERBUFFER_BINDING","TEXTURE_BINDING_2D","restoreFBOState","bindFramebuffer","FRAMEBUFFER","bindRenderbuffer","RENDERBUFFER","bindTexture","TEXTURE_2D","throwFBOError","initTexture","attachment","NEAREST","mipSamples","framebufferTexture2D","initRenderBuffer","createRenderbuffer","renderbufferStorage","framebufferRenderbuffer","_shape","_destroyed","_ext","_color_rb","_depth_rb","_colorType","_useDepth","_useStencil","shapeVector","_shapeVector","fbo","createFramebuffer","RGBA","RGBA4","drawBuffersWEBGL","WEBGL_depth_texture","UNSIGNED_INT_24_8_WEBGL","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","UNSIGNED_SHORT","DEPTH_COMPONENT","DEPTH_ATTACHMENT","DEPTH_COMPONENT16","STENCIL_INDEX","STENCIL_ATTACHMENT","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","deleteFramebuffer","deleteRenderbuffer","rebuildFBO","reshapeFBO","viewport","sprintf","glConstants","shaderName","addLineNumbers","errLog","typeName","FRAGMENT_SHADER","longForm","shortForm","errorStrings","errorString","lineNo","short","forwardFrag","pickFrag","ATTRIBUTES","nextPosition","arcLength","defaultTexture","REPEAT","linePlot","LinePlot","UINT8_VIEW","FLOAT_VIEW","filterClipBounds","PickResult","tau","dashScale","dashTexture","TRIANGLE_STRIP","arcLengthArray","pointArray","hadGap","acolor","bcolor","prefixSum","dashes","unpackFloat","dataIndex","barycentric","closestPointToTriangle","projectVertex","pixelCoord","simplex2D","closestIndex","closestDist","barycentricCoord","edgeVertSrc","edgeFragSrc","pointVertSrc","pointFragSrc","pickPointVertSrc","contourVertSrc","contourFragSrc","wireShader","pointShader","pointPickShader","contourShader","normals","getContour","SimplicialMesh","lineShader","pointShader2","pickShader2","pointPickShader2","contourShader2","triangleNormals","edgePositions","edgeIds","edgeColors","edgeUVs","edgeVAO","pointPositions","pointIds","pointColors","pointUVs","pointSizes","pointVAO","contourPositions","contourVAO","edgeCount","pointCount","contourLineWidth","contourCount","contourColor","contourEnable","pickVertex","opacityscale","getOpacityFromScale","highlight","vertexIds","vertexWeights","numCells","mallocFloat32","wi","tNor","ePos","eCol","eUVs","eIds","pPos","pCol","pUVs","pSiz","pIds","vertexNormals","cellNormals","vertexNormalsEpsilon","faceNormalsEpsilon","useFacetNormals","faceNormals","vertexColors","cellColors","vertexUVs","cellUVs","cellIntensity","cellIntensityBounds","meshPointSize","pointSize","POINTS","_cellCenter","interpIntensity","createWireShader","createPointShader","createPointPickShader","createContourShader","zoomMin","zoomMax","createView","pmatrix","keyBindingMode","enableWheel","rotateSpeed","zoomSpeed","translateSpeed","ctime","sizeChanged","pitch","yaw","roll","curUp","curEye","curCenter","ncenter","neye","nup","_lastX","_lastY","_lastMods","control","alt","enableMouseListeners","handleInteraction","mods","ctrl","drot","kzoom","mouseListener","mouseChange","hasPassive","wheelListener","mouseWheel","createCamera","createAxes","axesRanges","createSpikes","createSelect","createFBO","drawTriangle","MouseSelect","screen","dataPosition","roundUpPow10","defaultBool","createScene","glOptions","premultipliedAlpha","antialias","accumBuffer","accumShader","cameraObject","cameraOptions","axesOptions","spikeOptions","spikes","pickBufferIds","pickBufferCount","pickBuffers","pickDirty","viewShape","contextLost","axesPixels","aspectRatio","pickRadius","clearColor","autoResize","autoBounds","autoScale","autoCenter","clipToBounds","snapToData","onselect","onrender","oncontextloss","_stopped","getAspectratio","setAspectratio","setBounds","axisIndex","setClearColor","clearRGBA","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","pickShape","resizeListener","nextWidth","nextHeight","reallocPickIds","numObjs","numPick","obj_loop","pickCount","nbuffer","checkContextLoss","isContextLost","options2","_mouseRotating","_prevButtons","prevObj","objPick","nBounds","prevBounds","cameraMoved","obb","olo","ohi","bounds2","maxS","calcCameraParams","axesBounds","colorMask","depthMask","BLEND","DEPTH_TEST","depthFunc","LEQUAL","begin","renderPick","hasTransparent","LESS","blendEquation","FUNC_ADD","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","render","omega","cosom","sinom","fontCache","GLYPH_CACHE","triSymbol","lineSymbol","createShaderWrapper","perspectiveVertSrc","orthographicVertSrc","projectionVertSrc","drawFragSrc","pickPerspective","pickOrtho","pickProject","glyph","createPerspective","createOrtho","createProject","createPickPerspective","createPickOrtho","createPickProject","isAllBlank","mat4mult","getGlyph","getSimpleString","transformMat4","ScatterPlotPickResult","fixOpacity","PointCloud","orthoShader","projectShader","pointBuffer","colorBuffer","glyphBuffer","idBuffer","pickPerspectiveShader","pickOrthoShader","pickProjectShader","lineVertexCount","projectScale","projectOpacity","projectHasAlpha","_selectResult","useOrtho","axesProject","highlightId","highlightScale","pointCloud","pickBase","VIEW_SHAPE","U_VEC","V_VEC","MU_VEC","MV_VEC","SCRATCH_MATRIX","SCRATCH_VEC","CLIP_BOUNDS","augment","hg","af","setComponent","drawProject","getClipBounds","screenSize","pickGroup","pmodel","du","mdu","mdv","su","sv","fragClipBounds","CLIP_GROUP","drawFull","pshader","transparent","forceDraw","get_glyphData","glyphs","pointId","orthographic","alignmentX","alignmentY","upperBound","angles","lineColors","pickCounter","triVertexCount","count_loop","glyphMesh","glyphData","glyphLines","glyphBounds","positionArray","mallocFloat","glyphArray","idArray","mallocUint32","triOffset","isColorArray","isLineColorArray","glyphVisible","textOffset","mallocUint8","SelectBuffer","SelectResult","_readTimeout","_readCallback","readPixels","closestD2","closestX","closestY","selectRange","createUniformWrapper","createAttributeWrapper","makeReflect","shaderCache","runtime","GLError","Shader","lastAttribCount","_vref","_fref","_relink","vertShader","fragShader","program","compareAttributes","newAttribCount","getProgramParameter","ACTIVE_ATTRIBUTES","oldAttribCount","enableVertexAttribArray","disableVertexAttribArray","useProgram","vertSource","fragSource","wrapper","pvref","VERTEX_SHADER","pfref","testProgram","createProgram","attachShader","linkProgram","LINK_STATUS","getProgramInfoLog","deleteProgram","attributeUnpacked","attributeNames","attributeLocations","locVector","curLocation","uniformLocations","relink","getUniformLocation","rawError","shortMessage","longMessage","locs","addVectorAttribute","addMatrixAttribute","ShaderAttribute","constFunc","_wrapper","_locations","_dimension","_constFunc","pointer","vertexAttribPointer","allFns","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","scratch","vertexAttrib","coallesceUniforms","makeVector","makeSetter","enumerateIndices","objPath","uniform1i","uniform1f","vidx","tprefix","storeProperty","processObject","gl3","wrapper2","locations2","getUniform","coallesced","useIndex","numUniforms","ACTIVE_UNIFORMS","getActiveUniform","getType","numAttributes","getActiveAttrib","GL_TO_GLSL_TYPES","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT","INT_VEC2","INT_VEC3","INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","SAMPLER_CUBE","GL_TABLE","typeNames","tn","getCache","getShaderReference","vref","fref","attribs","getProgram","formatCompilerError","CACHE","SHADER_COUNTER","ShaderReference","programs","ContextCache","deleteShader","ctxCache","isShader","shaderObj","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","getShaderInfoLog","prog","isProgram","vshader","fshader","bindAttribLocation","AxisSpikes","drawSides","OUTER_FACE","INNER_FACE","outerFace","innerFace","vec4","GRID_TYPES","createTubes","maxDivergence","velocities","tubes","divergences","faces","previousVerts","currentVerts","intensities","previousIntensity","currentIntensity","currentVector","previousVector","fwd","tmp3","streamToTube","tube","newCell","findLastSmallerIndex","findMinSeparation","minSeparation","vectorField","startingPositions","tubeSize","absoluteTubeSize","gridFill","gridInfo","reversedX","reversedY","reversedZ","filled","getVelocity","meshgrid","x0off","x1off","y0off","y1off","z0off","z1off","mX0","mX1","mY0","mY1","mZ0","v000","v001","v010","v011","v100","v101","v110","v111","c00","c01","c10","c11","sampleMeshgrid","getDivergence","vz","maxStepSize","maxStepSizeSq","zs","xSep","ySep","zSep","calculateMinPositionDistance","dvLength","sqLen","squaredLength","squaredDistance","createTubeMesh","pickSrc","createPickContourShader","contourPickShader","coordinateBuffer","SURFACE_VERTEX_SIZE","contourBuffer","dynamicBuffer","dynamicVAO","N_COLORS","surface","SurfacePlot","nparams","surfaceNets","QUAD","PERMUTATIONS","SurfacePickResult","objectOffset","intensityBounds","_shader","_pickShader","_coordinateBuffer","_vao","_colorMap","_contourShader","_contourPickShader","_contourBuffer","_contourVAO","_contourOffsets","_contourCounts","_vertexCount","_pickResult","_dynamicBuffer","_dynamicVAO","_dynamicOffsets","_dynamicCounts","contourWidth","contourLevels","contourTint","showContour","showSurface","enableHighlight","highlightTint","highlightLevel","enableDynamic","dynamicLevel","dynamicColor","dynamicTint","dynamicWidth","surfaceProject","contourProject","colorBounds","_field","vertexColor","divseq","hasAlphaScale","ZERO_VEC","PROJECT_DATA","projections","computeProjectionData","axisSquish","nclipBounds","UNIFORMS","permutation","zOffset","MATRIX_INVERSE","DEFAULT_PERM","drawCore","clipClamped","projectData","PICK_UNIFORMS","handleArray","toColor","handleColor","ix","iy","levelIndex","padField","dstField","srcField","srcShape","dstShape","levelsChanged","fsize","freeFloat","dfields","dxdu","dxdv","dydu","dydv","dzdu","dzdv","nz","nl","lo_intensity","hi_intensity","tverts","tptr","j_loop","vf","change_test","contourVerts","contourLevel","levelOffsets","levelCounts","graph","edge_loop","axis_loop","iu","floatBuffer","dyanamicLevel","scratchBuffer","jx","hx","jy","hy","w00","w01","cu","cv","linearTypes","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","filterTypes","NEAREST_MIPMAP_NEAREST","wrapTypes","CLAMP_TO_EDGE","MIRRORED_REPEAT","lazyInitLinearTypes","createTextureShape","directData","acceptTextureDOM","texImage2D","Texture2D","createTextureDOM","MAX_TEXTURE_SIZE","packed","buf_store","LUMINANCE","ALPHA","LUMINANCE_ALPHA","RGB","buf_array","convertFloatToUint8","createTextureArray","HTMLCanvasElement","HTMLImageElement","HTMLVideoElement","ImageData","inp","muls","reshapeTexture","_mipLevels","_magFilter","_minFilter","_wrapS","_wrapT","_anisoSamples","wrapVector","wrapS","wrapT","_wrapVector","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","maxTextureSize","psamples","texParameterf","TEXTURE_MAX_ANISOTROPY_EXT","unit","activeTexture","TEXTURE0","ACTIVE_TEXTURE","deleteTexture","x_off","y_off","mip_level","texSubImage2D","cformat","ctype","mipLevels","needsMip","pack_buffer","pack_view","freeFloat32","freeUint8","texSubImageArray","nattribs","MAX_VERTEX_ATTRIBS","attrib","bindAttribs","VAOEmulated","_elements","_attributes","_elementsType","elementsType","drawElements","VertexAttribute","VAONative","_attribs","_useElements","bindVertexArrayOES","deleteVertexArrayOES","createVertexArrayOES","createVAONative","createVAOEmulated","ExtensionShim","bindVertexArray","createVertexArray","deleteVertexArray","tempA","fromValues","tempB","cosine","EPSILON","vec","exactEquals","divide","scaleAndAdd","sqrDist","sqrLen","negate","transformMat3","transformQuat","zScale","pz","qx","qy","qz","qw","iz","iw","vecNormalize","vecScale","tokenize","atob2","tokens","NORMAL","col","isnum","isoperator","allBuiltins","builtins100","allLiterals","literals100","builtins300es","literals300es","builtinsDict","literalsDict","last2","BLOCK_COMMENT","block_comment","LINE_COMMENT","line_comment","PREPROCESSOR","preprocessor","OPERATOR","INTEGER","HEX","TOKEN","readtoken","WHITESPACE","whitespace","determine_operator","is_composite_operator","operators","contentstr","KEYWORD","BUILTIN","IDENT","generator","strings","exprs","randomSearch","initialSimplex","initialCoords","initialCell","Simplex","useRandom","Fw","lastVisited","GlueFacet","compareGlue","BAKED","simplices","tuple","handleBoundaryDegeneracy","toVisit","cellAdj","nv","initIndex","outerLoop","cellVerts","addPeaks","tovisit","glueFacets","indexOfN","indexOfNeg1","vverts","vadj","ncell","uu","nface","nptr","bcell","IntervalTreeNode","leftPoints","rightPoints","intervals","IntervalTree","createIntervalTree","rebuild","ntree","rebuildWithInterval","rebuildWithoutInterval","reportLeftRange","reportRightRange","reportRange","compareNumbers","compareBegin","compareEnd","leftIntervals","rightIntervals","centerIntervals","queryPoint","queryInterval","tproto","isSlowBuffer","perspectiveMatrix","tmpVec4","pdum3","scale2","quaternion","mat4x4","mat3from4","m44","recompose","decompose","slerp","state1","mat4","m4interp","invert44","DEFAULT_CENTER","MatrixCameraController","initialMatrix","_components","prevMatrix","nextMatrix","computedInverse","_limits","tidx","comps","imat","tvec","lim","buttonState","attached","updateMods","metaKey","handleEvent","nextButtons","clearState","handleBlur","handleMods","handleMouseMove","handleMouseDown","handleMouseUp","attachListeners","mouseElement","toPX","noScroll","deltaZ","arrayArguments","scalars","scalarArguments","typesig","vertexFunc","faceFunc","phaseFunc","scalarArgs","proc","freeUint32","compileSurfaceProcedure","face","c0_0","t0_0","t0_1","d0_1","c0_1","d0_2","c0_2","d0_3","c0_3","u0_0","u0_1","e3","CACHED_CWiseOp","SS","d0s0","fdTemplate1","t0p0","d1s0","fdTemplate2","t0p1","t1p0","t1p1","t2p0","t2p1","d0s1","d1s1","d2s0","d2s1","CACHED_thunk","cdiff","compile2","CACHED","array0","array1","array2","array4","r4","createThunk","thunk","funcName","compile","cwiseCompiler","user_args","TEMPLATE_CACHE","GRADIENT_CACHE","centralDiff","zeroOut","generateTemplate","CACHED_link","grad1","grad2","cached","boundaryConditions","linkArgs","generateGradient","interp1d","interp3d","fz","u0","w000","w010","w100","w110","w001","w011","interpNd","Y0","t0p2","d0s2","t1p2","offset0","offset1","j1","d1s2","scalar2","mulseq","scalar1","divs","makeOp","assign_ops","do_convert","_inline_1_i","_inline_1_v","getMallocFree","CACHED_insertionSort","cptr","sptr","__g","__l","CACHED_quickSort","ndarrayQuickSort1d0uint32","tmp0","ptr1","b_ptr0","b_ptr1","b_ptr2","b_ptr3","b_ptr4","b_ptr5","b_ptr6","b_ptr7","ptr3","pivot_ptr","ptr_shift","pivots_are_equal","comp_pivot1","comp_pivot2","elementSize","__l1","__l2","__l3","__l4","__l5","__l6","__l7","__l8","__l9","__l16","__l17","CACHED_sort","allocator","createInsertionSort","createQuickSort","compiled","compare1st","terms","View","TrivialArray","CTOR_LIST","ORDER","i3","c4","compileConstructor","inType","inDimension","dKey","procedure","CACHED_CONSTRUCTORS","generic","uint8_clamped","bigint64","biguint64","arrayDType","ctor_list","doubleBits","SMALLEST_DENORM","UINT_MAX","specifiedEpsilon","d01","m01","d21","m21","rz","uz","normalize4","OrbitCameraController","filterVector","mat4FromQuat","quatFromFrame","len3","len4","initQuat","initCenter","initRadius","computedRotation","quat","rr","getMatrix","ul","ru","cl","fromJSON","ncycle2","cycles","cut","noCut","nextCell","nextVertex","nextDir","nbhd","compareAngle","extractCycle","pcycle","ncycle","e2a","live","dead","npositions","nedges","trimLeaves","planarDual","numFaces","t00","twoProduct","t01","t10","t11","containment","loopVertices","pmc","preprocessPolygon","fadj","makeArrayOfArrays","edgeAdjacency","internalVertices","makeArray","sharedBoundary","polyline","nnbhr","loops","numLoops","vsegments","loop","classifyEmpty","testVertical","buildVerticalIndex","slabs","makeSlabs","testSlab","bucket","lastOrientation","buildSlabSearch","testNormal","createClassifyPointDegen","makeIntervalTree","visitInterval","intervalTable","intervalSearch","V0","V1","V2","sqrDistance","invDet","bnadd","bnsub","compareOrientedCell","performance","robustScale","compress","determinant_2","prod","compress2","determinant_3","determinant_4","determinant_5","compileDeterminant","det0","det1","det2","det3","det4","det5","CACHE2","generateDispatch","robustDiff","inSphere3","inSphere4","inSphere5","inSphere6","w0m1","w0m2","w1m0","w1m2","w2m0","w2m1","m3","w0m3","w1m3","w2m3","w3m0","w3m1","w3m2","m4","w0m4","w1m4","w2m4","w3m4","w4m0","w4m1","w4m2","w4m3","m5","w0m5","w1m5","w2m5","w3m5","w4m5","w5m0","w5m1","w5m2","w5m3","w5m4","slowInSphere","proc2","slow","o3","o4","o5","o6","generateInSphereTest","generateSolver","solve2d","solve3d","solve4d","solve5d","solve6d","s4","s5","robustSubtract","orientation_3","orientation_4","orientation_5","orientation3Exact","orientation4Exact","tol","cdx","cdy","adz","bdz","cdz","bdxcdy","cdxbdy","cdxady","adxcdy","adxbdy","bdxady","slowOrient","generateOrientationProc","pq","checkCollinear","bv","av","scalarScalar","eptr","fptr","ei","ea","fi","fa","_bv","getDimension","vertexSigns","getSigns","maxEdges","ePtr","ndsort","getEdges","signs","edata","getCrossingWeights","vcascade","lastV","getCascade","contourAlgorithm","uedges","unpackEdges","uweights","compareZipped","zipped","unique","findCell","incidence","from_cells","to_cells","il","kn","skeleton","k0","countVertices","jl","cloneCells","ncells","dual","vertex_count","explode","connectedComponents","components","component_labels","ranks","connectedComponents_dense","vj","connectedComponents_sparse","makeSet","xd","yd","minArea","outv","computeWeight","perim","heapSwap","heap","heapWeight","heapParent","heapDown","heapCount","heapUp","heapPop","heapUpdate","kill","hmin","tortoiseHare","nh","tin","tout","cin","cout","horizontalOrder","alo","ahi","blo","numSegments","createRBTree","orderSegments","horiz","IntervalSegment","SlabDecomposition","compareHorizontal","searchBucket","lastNode","castUp","hitNode","lastHit","otherHitNode","hbucket","robustDot","planeT","plane","lerpW","__WEBPACK_AMD_DEFINE_RESULT__","not_type","not_primitive","numeric_arg","modulo","key_access","index_access","parse_tree","argv","pad_character","pad_length","is_positive","tree_length","param_no","pad_char","sprintf_format","sprintf_cache","_fmt","arg_names","field_list","replacement_field","field_match","sprintf_parse","vsprintf","zc","zeroCrossings","npos","ncel","mesh1D","inKey","generateContourExtractor","buildSurfaceNets","genContour","contour","parseUnit","PIXELS_PER_INCH","getPropertyInPX","testDIV","getSizeBrutal","findOrthoPair","normalize3","toward","ut","dot3","TurntableController","rotateM","clamp1","computedRight","computedAngle","computedToward","minDist","maxDist","ur","ctheta","stheta","cphi","sphi","zAxis","dtheta","dphi","droll","noSnap","ushift","vshift","ez","cf","tu","tz","tl","angleState","lastTheta","lastPhi","SPLITTER","__TYPEDARRAY_POOL","UINT8","UINT16","UINT32","BIGUINT64","INT8","INT16","INT32","BIGINT64","DOUBLE","DATA","UINT8C","BUFFER","hasUint8C","hasBigUint64","hasBigInt64","POOL","freeArrayBuffer","log_n","mallocArrayBuffer","mallocUint16","mallocInt8","mallocInt16","mallocUint8Clamped","mallocBigUint64","mallocBigInt64","mallocDataView","mallocBuffer","freeUint16","freeBigUint64","freeInt8","freeInt16","freeInt32","freeBigInt64","freeFloat64","freeDouble","freeUint8Clamped","freeDataView","freeBuffer","mallocFloat64","clearCache","unique_pred","unique_eq","defaultCanvas","defaultContext","processPixels","rawString","parseTag","TAG_bold","CHR_bold","TAG_italic","CHR_italic","TAG_super","CHR_super","TAG_sub","CHR_sub","allStyles","zPos","allTexts","numberOfLines","nDone","writeBuffer","measureText","getTextFontSize","changeStyle","oldStyle","ctxFont","oldIndex_Sub","CHR_sub0","newIndex_Sub","oldSub","newSub","oldIndex_Super","CHR_super0","newIndex_Super","oldSuper","newSuper","wasBold","is_Bold","wasItalic","is_Italic","xCut","yCut","getPixels","cleanPSLG","cdt2d","toPolygonCrappy","TAG_CHR","opnTag","clsTag","nOPN","nCLS","isRecursive","processPixelsImpl","simplify2","doSimplify","baseline","transformPositions","nresult","nloops","nloop","triangulate","triangle","ses","weakMapPermitHostObjects","doubleWeakMapCheckSilentFailure","HostWeakMap","testMap","testObject","freeze","gopn","defProp","isExtensible","HIDDEN_NAME_PREFIX","HIDDEN_NAME","crypto","getRandomValues","u8s","u8","isNotHiddenName","originalGetPropertyNames","getPropertyNames","oldFreeze","getHiddenRecord","oldSeal","seal","oldPreventExtensions","calledAsFunctionWarningDone","nextId","OurWeakMap","calledAsFunctionWarning","get___","opt_default","hiddenRecord","has___","set___","delete___","DoubleWeakMap","dset","hmap","omap","enableSwitching","permitHostObjects___","hiddenStore","store","createStore","privates","fallback","Y1","scalar3","core","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_exports__","require_color_name","require_color_parse","isRGB","baseHues2","G","saturation","lightness","brightness","require_color_rgba","hsl2rgb2","require_clamp","require_dtype","require_color_normalize","normalize2","isInt","require_str2rgbarray","require_gl_format_color","colorDflt","colorDfltRgba","calculateColor","colorIn","opacityIn","colorOut","validateColor","validateOpacity","formatColor","getColor","getOpacity","colori","opacityi","isArrayColorIn","isArrayOpacityIn","parseColorScale","require_gl3d_dashes","solid","longdash","dashdot","longdashdot","require_gl3d_markers","require_calc_errors","calculateAxisErrors","_lowerLogErrorBound","_lowerErrorBound","errorBounds","require_convert2","createLinePlot","createScatterPlot","createErrorBars","str2RgbaArray","DASH_PATTERNS","MARKER_SYMBOLS","calculateError","LineWithMarkers","errorBars","textMarkers","delaunayMesh","dataPoints","textLabels","parseAlignmentX","parseAlignmentY","calculateSize","sizeIn","calculateSymbol","symbolIn","formatParam","paramIn","extraFn","paramOut","convertPlotlyOptions","zcalendar","lineDashes","scatterColor","scatterSize","scatterMarker","scatterLineWidth","scatterLineColor","scatterAngle","calculateTextOffset","textColor","textSize","textFontFamily","textFontWeight","textFontStyle","textFontVariant","errorParams","calculateErrorParams","errorColor","errorLineWidth","errorCapSize","delaunayAxis","surfaceaxis","delaunayColor","surfacecolor","_arrayToColor","arrayToColor","handlePick","textLabel","traceCoordinate","lineOptions","scatterOptions","errorOptions","textOptions","dashPattern","_trace","scatterOpacity","delaunayOptions","filteredPoints","filteredIds","constructDelaunay","require_attributes40","DASHES","require_defaults36","_xlength","_ylength","_zlength","require_calc21","require_get_canvas_context","require_webgl_context","require_show_no_webgl_msg","require_convert3","AXES_NAMES","AxesOptions","_defaultTickPad","_defaultLabelPad","_defaultLineTickLength","showbackground","backgroundcolor","require_spikes","str2RGBArray","SpikeOptions","spikesides","require_tick_marks","glRange","_input_range","tickModeCached","dataTicks","tlevel","clevel","contourLevelsFromTicks","require_scene","STATIC_CANVAS","STATIC_CONTEXT","glPlot3d","createPlot","passiveSupported","str2RGBAarray","showNoWebGlMsg","createAxesOptions","createSpikeOptions","computeTickMarks","tabletmode","Scene","sceneContainer","svgContainer","plotArgs","staticMode","convertAnnotations","drawAnnotations","initializeGLPlot","prepareOptions","firstInit","tryCreatePlot","initializeGLCamera","cameraData","make4thDimension","isCameraChanged","getCamera","isAspectChanged","relayoutCallback","scene2","saveLayout","recoverContext","clientRect","lastPicked","setContourLevels","hoverinfoParts","isHoverinfoAll","vectorTx","uLabel","uhoverformat","vLabel","vhoverformat","wLabel","whoverformat","normLabel","divergenceLabel","_mockAxis","valuehoverformat","oldEventData","tryRecover","axisProperties","computeTraceBounds","axisName","sceneData","dataBounds","computeAnnotationBounds","traceIds","traceIdLoop","sceneBounds","axisTypeRatios","objBounds","_pad","userRatio","axesScaleRatio","axisRatio","containerStyle","cameraDataLastSave","aspectData","aspectDataLastSave","cameraNestedProp","aspectNestedProp","cameraChanged","aspectChanged","fullCamera","zUp","flipPixels","correctRGB","require_attributes41","require_axis_attributes","require_layout_attributes17","gl3dAxisAttrs","makeCameraVector","require_axis_defaults2","gridLightness","require_defaults37","supplyGl3dAxisLayoutDefaults","handleGl3dDefaults","bgColorCombined","cameraKeys","hasAspect","aspectMode","fullGl3dData","getDfltFromLayout","hasNon3D","require_gl3d","SCENE","fullSceneData","oldSceneKeys","oldSceneKey","sceneNum","require_scatter3d","markerSymbols","require_scatter3d2","require_attributes42","makeContourAttr","usecolormap","hidesurface","lightposition","lighting","require_defaults38","opacityscaleDefaults","minOpacity","createWave","contourDim","require_calc22","require_convert4","createSurface","ndarrayInterp2d","SurfaceTrace","minValues","maxValues","dataScaleX","dataScaleY","refineData","getXat","getYat","getZat","_interpolatedZ","shortPrimes","getPow","getFactors","powers","smallestDivisor","leastCommonMultiple","calcXnums","totalDist","calcYnums","highlyComposites","MIN_RESOLUTION","MAX_RESOLUTION","fnHomography","homography","warped","warp","insertIfNewLevel","estimateScale","resSrc","resDst","arrayLCM","refineCoords","scaleW","scaleH","padWidth","padHeight","padImg","scaledImg","newLevels","useNewLevels","needsUpdate","allLevels","rawCoords","highlightEnable","contourParams","isColormapCircular","require_surface","require_surface2","require_attributes43","surfaceAttrs","delaunayaxis","alphahull","intensitymode","flatshading","vertexnormalsepsilon","facenormalsepsilon","require_attributes44","meshAttrs","isomin","isomax","spaceframe","caps","require_defaults39","supplyIsoDefaults","capDim","sliceDim","require_calc23","processGrid","filledX","filledY","filledZ","firstX","firstY","lastY","firstZ","lastZ","zMax","zMin","Xs","Ys","Zs","getArray","getVals","getDir","arrK","arrJ","arrI","arbitrary","getIndex","_j","_k","dirK","dirJ","dirI","q000","q001","q010","q100","_u","_v","_w","_gridFill","_Xs","_Ys","_Zs","startx","starty","startz","slen","_startsX","_startsY","_startsZ","normMax","normMin","_slen","_normMax","_xbnds","_ybnds","_zbnds","require_calc24","_minValues","_maxValues","_vMin","_vMax","require_zip3","require_convert5","zip3","findNearestOnAxis","distRatio","IsosurfaceTrace","rawId","_meshX","_meshY","_meshZ","selectIndex","toDataCoords","generateIsoMeshes","_meshI","_meshJ","_meshK","_meshIntensity","beginVertextLength","allXs","allYs","allZs","allVs","activeFill","showSpaceframe","surfaceFill","spaceframeFill","drawingSurface","drawingSpaceframe","vMin","vMax","findVertexId","beginGroup","emptyVertices","addVertex","setFill","styleIncludes","char","mapValue","drawTri","xyzv","allXYZVs","allABCs","openTri","getCenter","createOpenTri","pnts","calcIntersection","pointOut","pointIn","inRange","almostInFinalRange","vErr","getXYZV","indecies","tryCreateTri","nPass","tryDrawTri","style2","xyzv2","abc2","interpolated","tryCreateTetra","abcd","makeTri","drawTetra","p4","drawQuad","addCube","p000","p001","p010","p011","p100","p101","p110","p111","addRect","previousResult","begin2dCell","p00","p01","p10","p11","beginSection","distRatios","makeSection","rZ","begin3dCell","cellStyle","draw2dX","draw2dY","draw2dZ","draw3d","drawSurface","drawSectionX","drawSectionY","drawSectionZ","insertGridPoints","surfacePattern","surfaceCount","setupMinMax","preRes","activeMin","activeMax","exactIndices","ceilIndices","cap","drawAll","createIsosurfaceTrace","require_isosurface","require_isosurface2","require_attributes45","isosurfaceAttrs","require_defaults40","require_convert6","VolumeTrace","require_volume","require_volume2","require_defaults41","readComponents","require_calc25","require_convert7","alphaShape","convexHull","Mesh3DTrace","parseColorArray","toRoundIndex","hasValidIndices","delaunayCells","require_mesh3d","require_mesh3d2","require_attributes46","mesh3dAttrs","require_defaults42","require_calc26","ww","require_convert8","conePlot","Cone","axisName2scaleIndex","anchor2coneOffset","tip","anchor2coneSpan","coneOpts","meshData","cone","require_cone","require_cone2","require_attributes47","require_defaults43","require_convert9","tube2mesh","Streamtube","getDfltStartingPositions","getBoundPads","tubeOpts","meshx","meshy","meshz","sy0","xbnds","ybnds","zbnds","xpads","ypads","zpads","fromDataScale","uvx","streamtube","require_streamtube","tubex","tubey","tubez","tubeu","tubev","tubew","require_streamtube2","require_attributes48","locationmode","featureidkey","require_defaults44","locationmodeDflt","require_format_labels3","mockAxis","lonLabel","latLabel","require_calc27","calcMarkerColorscale","isNonBlankString","isValidLoc","hasLocationData","require_constants22","projNames","airy","aitoff","albers","august","baker","bertin1953","boggs","bonne","bottomley","bromley","collignon","craig","craster","eckert1","eckert2","eckert3","eckert4","eckert5","eckert6","eisenlohr","equirectangular","fahey","foucaut","ginzburg4","ginzburg5","ginzburg6","ginzburg8","ginzburg9","gnomonic","gringorten","guyou","hammer","hill","homolosine","hufnagel","hyperelliptical","kavrayskiy7","lagrange","larrivee","laskowski","loximuthal","mercator","miller","mollweide","nicolosi","patterson","polyconic","robinson","satellite","sinusoidal","stereographic","wagner4","wagner6","wiechel","winkel3","lonaxisSpan","lataxisSpan","scopeDefaults","world","lonaxisRange","lataxisRange","projType","projRotate","usa","europe","projParallels","asia","africa","clipPad","landColor","waterColor","locationmodeToLayer","sphereSVG","fillLayers","ocean","land","lakes","lineLayers","subunits","countries","coastlines","rivers","layersForChoropleth","layerNameToAdjective","require_topojson_client","transform2","topology","bboxPoint","bboxGeometry","geometries","feature$1","bbox2","geometry","transformPoint","arcs2","stitch","stitchedArcs","fragmentByStart","fragmentByEnd","emptyIndex","fragmentByEnd2","fragmentByStart2","fg","gf","meshArcs","object2","geomsByArc","extract0","extract1","extract2","extract3","geoms","extractArcs","mergeArcs","polygonsByArc","extract","planarRingArea","neighbors2","polygon2","polygons2","untransform","feature","features","indexesByArc","geometryType","MultiLineString","Polygon","MultiPolygon","ij","ik","outputs","quantizePoint","quantizeGeometry","require_topojson_utils","topojsonUtils","topojsonFeature","getTopojsonName","scope","getTopojsonPath","topojsonName","getTopojsonFeatures","require_geojson_utils","calcTraceToLineCoords","lineString","makeLine","makePolygon","_coords","makeBlank","require_country_regex","AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","CPV","KHM","CMR","CAN","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COK","CRI","CIV","HRV","CUB","CUW","CYP","CSK","CZE","COD","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DDR","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","ANT","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","KOR","MDA","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","THA","MKD","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","TZA","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","YMD","YUG","ZMB","EAZ","ZWE","require_cjs","earthRadius","factors","centimeters","centimetres","feet","inches","kilometers","kilometres","meters","metres","miles","millimeters","millimetres","nauticalmiles","yards","areaFactors","acres","hectares","feat","featureCollection","multiLineString","multiPoint","multiPolygon","radiansToLength","radians2","lengthToRadians","radiansToDegrees","azimuthToBearing","bearingToAzimuth","bearing","convertArea","originalUnit","finalUnit","startFactor","finalFactor","convertLength","degreesToRadians","_options","geometryCollection","lengthToDegrees","lineStrings","multiplier","validateBBox","validateId","require_cjs2","_helpers","coordEach","excludeWrapCoord","stopG","geometryMaybeCollection","isGeometryCollection","wrapShrink","coordIndex","isFeatureCollection","isFeature","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","propEach","featureEach","geomEach","featureProperties","featureBBox","featureId","flattenEach","segmentEach","feature2","segmentIndex","previousCoords","previousFeatureIndex","previousMultiIndex","prevGeomIndex","currentCoord","featureIndexCoord","multiPartIndexCoord","currentSegment","lineEach","coordAll","coordReduce","initialValue","previousValue","featureReduce","currentFeature","findPoint","findSegment","flattenReduce","geomReduce","currentGeometry","lineReduce","propReduce","currentProperties","segmentReduce","require_cjs3","calculateArea","ringArea","FACTOR","PI_OVER_180","coordsLength","lowerX","middleY","turf_area_default","require_cjs4","xSum","ySum","turf_centroid_default","require_cjs5","recompute","turf_bbox_default","require_geo_location_utils","countryRegex","turfArea","turfCentroid","turfBbox","countryIds","locationmodeToIdFinder","countryName","iso3","getTraceGeojson","PlotlyGeoAssets2","geojsonIn","locationToFeature","filteredFeatures","locationId","gu","feature2polygons","appendPolygon","doesCrossAntiMerdian","_pts","crossAntiMeridianIndex","extractTraceFeature","featuresOut","appendFeature","fIn","fOut","maxArea","polyi","findCentroid","featuresIn","fetchTraceGeoData","promises","fetch2","url2","setInterval","clearInterval","computeBbox","require_style17","scatterStyle","styleTrace","require_plot17","geoJsonUtils","geoUtils","calcGeoJSON","lonArray","latArray","fitbounds","bboxGeojson","lonaxis","_ax","lataxis","gTraces","removeBADNUM","lineCoords","lineData","require_hover14","isLonLatOverEdges","lonlat2","hasLocation","hasLon","hasLat","getExtraText","require_event_data9","require_select5","require_d3_array","ascendingBisect","pair","valueof","mean2","sum2","min2","max2","range2","e10","e5","power","tickStep","step0","step1","sturges","transpose2","values0","values1","histogram2","thresholdFreedmanDiaconis","thresholdScott","thresholdSturges","pairs2","scan","ticks2","require_d3_geo","d3Array","adder","Adder","adder2","epsilon22","halfPi","quarterPi","haversin","streamGeometry","streamGeometryType","streamObjectType","Feature","FeatureCollection","Sphere","sphere","Point","MultiPoint","coordinates2","streamLine","streamPolygon","GeometryCollection","coordinate","lineStart","lineEnd","polygonStart","polygonEnd","geoStream","lambda00","phi00","lambda0","cosPhi0","sinPhi0","areaRingSum","areaSum","areaStream","areaRingStart","areaRingEnd","areaRing","areaPointFirst","areaPoint","lambda","dLambda","sdLambda","adLambda","cosPhi","sinPhi","spherical","cartesian2","spherical2","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","cartesianNormalizeInPlace","lambda0$1","phi0","lambda1","phi1","lambda2","lambda00$1","phi00$1","W0","W1","X0","Z0","X1","Z1","X2","Y2","Z2","lambda00$2","phi00$2","deltaSum","boundsStream","boundsPoint","boundsLineStart","boundsLineEnd","boundsRingPoint","boundsRingStart","boundsRingEnd","linePoint","inflection","phii","sign2","lambdai","antimeridian","lambda02","lambda12","rangeCompare","rangeContains","centroidStream","centroidPoint","centroidLineStart","centroidLineEnd","centroidRingStart","centroidRingEnd","centroidPointCartesian","centroidLinePointFirst","centroidLinePoint","centroidRingPointFirst","centroidRingPoint","compose","compose2","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation2","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","circleStream","cosRadius","sinRadius","clipBuffer","rejoin","pointEqual","Intersection","clipRejoin","compareIntersection2","startInside","interpolate2","clip2","isSubject","longitude","polygonContains","angle2","point0","phi02","sinPhi02","cosPhi02","sinPhi1","cosPhi1","point1","phi12","absDelta","intersection","phiArc","pointVisible","clipLine2","sink","ringBuffer","ringSink","polygonStarted","pointRing","ringStart","ringEnd","compareIntersection","pointLine","point2","ringSegments","validSegment","clipAntimeridian","sign0","sign1","sinLambda0Lambda1","clipAntimeridianIntersect","clipCircle","smallRadius","notHemisphere","two","n2n2","n1n2","n1xn2","A5","delta2","code2","v00","clipMax","clipMin","clipRectangle","corner","comparePoint","x__","y__","v__","v_","activeStream","bufferStream","clipStream","linePoint2","ring2","polygonInside","cleanInside","visible2","clipLine","lambda0$2","sinPhi0$1","cosPhi0$1","lengthSum","lengthStream","lengthPointFirst","lengthLineEnd","lengthPoint","cosDelta","containsObjectType","containsGeometry","containsGeometryType","containsPoint","containsLine","containsPolygon","ao","bo","ringRadians","pointRadians","graticuleX","graticuleY","graticule","X12","X02","Y12","Y02","DX","DY","graticule2","extentMajor","extentMinor","stepMajor","stepMinor","x00","y00","x0$1","y0$1","areaSum$1","areaRingSum$1","areaStream$1","areaRingStart$1","areaRingEnd$1","area2","areaPointFirst$1","areaPoint$1","x00$1","y00$1","x0$3","y0$3","x0$2","y0$2","boundsStream$1","X0$1","Y0$1","Z0$1","X1$1","Y1$1","Z1$1","X2$1","Y2$1","Z2$1","centroidStream$1","centroidPoint$1","centroidLineStart$1","centroidLineEnd$1","centroidRingStart$1","centroidRingEnd$1","centroid2","centroidPointFirstLine","centroidPointLine","centroidPointFirstRing","centroidPointRing","PathContext","_radius","pointRadius","_point","closePath","moveTo","lineTo","lengthRing","x00$2","y00$2","x0$4","y0$4","lengthSum$1","lengthStream$1","lengthPointFirst$1","lengthPoint$1","length2","PathString","_string","circle$1","transformer","TransformStream","projection2","fitBounds","fitExtent","extent2","fitSize","fitWidth","fitHeight","_circle","cosMinDistance","resample","resampleLineTo","phi2","lambda22","lambda002","x002","y002","resampleStream","ringPoint","resample$1","resampleNone","transformRadians","scaleTranslate","scaleTranslateRotate","cosAlpha","sinAlpha","projectionMutator","projectAt","projectResample","projectTransform","projectRotateTransform","cacheStream","preclip","postclip","recenter","transformRotate","clipAngle","reflectX","reflectY","conicProjection","parallels","conicEqualAreaRaw","cylindricalEqualAreaRaw","r0y","conicEqualArea","azimuthalRaw","azimuthalInvert","azimuthalEqualAreaRaw","cxcy","azimuthalEquidistantRaw","mercatorRaw","mercatorProjection","reclip","tany","conicConformalRaw","equirectangularRaw","conicEquidistantRaw","gy","A1","A3","A4","equalEarthRaw","l6","gnomonicRaw","naturalEarth1Raw","phi4","orthographicRaw","stereographicRaw","transverseMercatorRaw","geoAlbers","geoAlbersUsa","lower48Point","alaskaPoint","hawaiiPoint","lower48","alaska","hawaii","pointStream","albersUsa2","geoArea","geoAzimuthalEqualArea","geoAzimuthalEqualAreaRaw","geoAzimuthalEquidistant","geoAzimuthalEquidistantRaw","geoBounds","deltaMax","geoCentroid","geoCircle","circle2","geoClipAntimeridian","geoClipCircle","geoClipExtent","geoClipRectangle","geoConicConformal","geoConicConformalRaw","geoConicEqualArea","geoConicEqualAreaRaw","geoConicEquidistant","geoConicEquidistantRaw","geoContains","geoDistance","geoEqualEarth","geoEqualEarthRaw","geoEquirectangular","geoEquirectangularRaw","geoGnomonic","geoGnomonicRaw","geoGraticule","geoGraticule10","geoIdentity","geoInterpolate","sy1","kx0","ky0","kx1","ky1","geoLength","geoMercator","geoMercatorRaw","geoNaturalEarth1","geoNaturalEarth1Raw","geoOrthographic","geoOrthographicRaw","geoPath","projectionStream","contextStream","geoProjection","geoProjectionMutator","geoRotation","geoStereographic","geoStereographicRaw","geoTransform","geoTransverseMercator","geoTransverseMercatorRaw","require_d3_geo_projection","d3Geo","sqrt1_2","SQRT1_2","sqrtPi","airyRaw","tanBeta_2","cosx","cosy","siny","cosz","z_2","cosz_2","sinz_2","tanz_2","lnsecz_2","sinz","aitoffRaw","sincia","sinci","armadilloRaw","sPhi0","tanPhi0","cosLambda","sinLambda","dxdLambda","dxdPhi","dydLambda","dydPhi","denominator","dPhi","augustRaw","tanPhi","sinx","sinx_2","cosx_2","sin_2y","sin2y","cos2y","sin2x_2","dxdx","dydx","dydy","sin3Eta","eta","arcosh","arsinh","cosEta","coshXi","sqrt8","bakerRaw","berghausRaw","lobes2","theta0","cotAlpha","hammerRaw","B3","hammerQuarticAuthalicRaw","MAX_ITERATIONS","eb","dxa","dya","dxb","dyb","bertin1953Raw","hammer$$1","mollweideBromleyTheta","cp","cpsinPhi","mollweideBromleyRaw","cosPhi_2","tanPhi_2","mollweideRaw","boggsRaw","parallel1","parallel","sinusoidalRaw","bonneRaw","cotPhi0","bottomleyRaw","sinPsi","bromleyRaw","cosdLambda","sindPhi","sindLambda","chamberlinRaw","beta0","beta1","beta2","chamberlin","collignonRaw","craigRaw","crasterRaw","cylindricalStereographicRaw","eckert1Raw","eckert2Raw","eckert3Raw","eckert4Raw","eckert5Raw","eckert6Raw","eisenlohrK","eisenlohrRaw","_0","cos1","vm1v","vp1v","deltatDeltaLambda","deltatDeltaPhi","deltacDeltat","deltacDeltaLambda","deltacDeltaPhi","deltavDeltaLambda","deltavDeltaPhi","deltaxDeltaLambda","deltaxDeltaPhi","deltayDeltaLambda","deltayDeltaPhi","faheyK","faheyRaw","foucautRaw","cosk","foucautSinusoidalRaw","equatorial","cosphi","sinphi","forwardMeridian","gilbertForward","gilbertInvert","gingeryRaw","rhoCosAlpha","k_","s_","gingeryLength","gingeryIntegrate","dTheta","x_halfPi","rhosinAlpha","sinRhoCosAlpha","halfPi_RhoCosAlpha","ginzburgPolyconicRaw","dAlphadLambda","xB2","dxBdPhi","dyBdPhi","dmdPhi","mcosAlpha","msinAlpha","dAlphadPhi","ginzburg4Raw","ginzburg5Raw","ginzburg6Raw","ginzburg8Raw","lambda4","ginzburg9Raw","squareRaw","projectSquare","gringortenRaw","sLambda","sPhi","secPhi","drdPhi","dvdPhi","dp2dPhi","nu","zeta","zetaMug","gringortenHexadecant","ellipticJ","twon","ellipticF","guyouRaw","K3","psi","y_1","guyouComplexAtan","sinhPsi","cscPhi","cotPhi2","cotLambda2","ellipticFi","hammerRetroazimuthalRaw","hammerRetroazimuthalRotation","dpdPhi","dhdPhi","gringortenHexadecantInvert","guyouComplexDivide","healpixParallel","healpixLambert","healpixRaw","sphereTop","sphereBottom","sphereNudge","hillRaw","Bt","rho0","K22","L2","sinTheta","cosTheta","Bt_Bt1","sinuMollweidePhi","sinuMollweideY","sinuMollweideRaw","homolosineRaw","hufnagelRaw","psiMax","inversemapping","kr","adsimp","nanEncountered","sr","maxDepthCount","integrate","hyperellipticalRaw","gamma2","elliptic","approx","interpolateLine","resampled","inverse2","sphere2","sign$$1","lobe","stream_","rotateStream","sphereStream","lobes","interpolateSphere","lobes$1","lobes$2","lobes$3","lobes$4","lobes$5","kavrayskiy7Raw","lagrangeRaw","pi_sqrt2","larriveeRaw","laskowskiRaw","littrowRaw","loximuthalRaw","millerRaw","modifiedStereographicRaw","zr","deltar","deltai","sinc","sqrtcosPhi","sinPhi_2","sinLambda_6","cosLambda_6","df0dPhi","df0dLambda","df1dPhi","df1dLambda","lambdaPhi","y2_1","x2_y2_1","gs48","gs50","miller$1","lee","modifiedStereographic","coefficients","sqrt6","sqrt7","mtFlatPolarParabolicRaw","mtFlatPolarQuarticRaw","mtFlatPolarSinusoidalRaw","naturalEarth2Raw","phi6","nellHammerRaw","sinTheta_2","lobes$6","nicolosiRaw","b2d2","d2b2","x2y2","pi2","pattersonK1","pattersonK2","pattersonK3","pattersonK4","pattersonC1","pattersonC2","pattersonYmax","pattersonRaw","polyconicRaw","angle$1","polyhedral","faceInvert","faceDegrees","recurse","faceEdges","shared","sharedEdge","pointEqual$1","hasInverse","proj","notPoles","octahedron","octahedron$1","collignonK","projectFeatureCollection","projectFeature","projectGeometry","projectGeometryCollection","sinkPoint","sinkLine","sinkPolygon","holes","contains2","pj","quincuncial","projectQuincuncial","peirce","rectangularPolyconicRaw","cotPhi","K$1","robinsonRaw","satelliteRaw","satelliteVerticalRaw","cosOmega","sinOmega","x0e","x1e","y0e","y1e","nonempty","normalizePoint","clampPoint","clamped","clampPoints","extractFragments","rings","pointk","fragmentBefore","stitchFragments","startFragment","endFragment","stitchFeature","stitchGeometry","timesRaw","twoPoint","twoPointAzimuthalRaw","cosd","twoPointAzimuthal","twoPointEquidistantRaw","lambdaa","lambdab","z02","tanLambda0","za","cosza","coszb","twoPointEquidistant","vanDerGrintenRaw","A22","P2","P2_A2","G_P2","vanDerGrinten2Raw","vanDerGrinten3Raw","vanDerGrinten4Raw","B22","C22","BC","B_C2","B_3C","D22","wagnerRaw","poleline","inflation","vratio","wagnerFormula","wagner","mutate","x2_y2","theta1","C_","B_C","F_","sqrtF","wagner4Raw","wagner6Raw","wiechelRaw","sin1_Phi","winkel3Raw","sin_2phi","sin2phi","cos2phi","sinlambda","coslambda_2","sinlambda_2","sin2lambda_2","dxdlambda","dxdphi","dydlambda","dydphi","dlambda","geoNaturalEarth","geoNaturalEarthRaw","geoAiry","geoAiryRaw","geoAitoff","geoAitoffRaw","geoArmadillo","geoArmadilloRaw","geoAugust","geoAugustRaw","geoBaker","geoBakerRaw","geoBerghaus","epsilon$$1","delta0","geoBerghausRaw","geoBertin1953","geoBertin1953Raw","geoBoggs","geoBoggsRaw","geoBonne","geoBonneRaw","geoBottomley","geoBottomleyRaw","geoBromley","geoBromleyRaw","geoChamberlin","geoChamberlinRaw","geoChamberlinAfrica","geoCollignon","geoCollignonRaw","geoCraig","geoCraigRaw","geoCraster","geoCrasterRaw","geoCylindricalEqualArea","geoCylindricalEqualAreaRaw","geoCylindricalStereographic","geoCylindricalStereographicRaw","geoEckert1","geoEckert1Raw","geoEckert2","geoEckert2Raw","geoEckert3","geoEckert3Raw","geoEckert4","geoEckert4Raw","geoEckert5","geoEckert5Raw","geoEckert6","geoEckert6Raw","geoEisenlohr","geoEisenlohrRaw","geoFahey","geoFaheyRaw","geoFoucaut","geoFoucautRaw","geoFoucautSinusoidal","geoFoucautSinusoidalRaw","geoGilbert","projectionType","gilbert2","geoGingery","cRho","sRho","geoGingeryRaw","geoGinzburg4","geoGinzburg4Raw","geoGinzburg5","geoGinzburg5Raw","geoGinzburg6","geoGinzburg6Raw","geoGinzburg8","geoGinzburg8Raw","geoGinzburg9","geoGinzburg9Raw","geoGringorten","geoGringortenRaw","geoGuyou","geoGuyouRaw","geoHammer","geoHammerRaw","geoHammerRetroazimuthal","rotate_","geoHammerRetroazimuthalRaw","geoHealpix","geoHealpixRaw","geoHill","geoHillRaw","geoHomolosine","geoHomolosineRaw","geoHufnagel","geoHufnagelRaw","geoHyperelliptical","geoHyperellipticalRaw","geoInterrupt","geoInterruptedBoggs","geoInterruptedHomolosine","geoInterruptedMollweide","geoInterruptedMollweideHemispheres","geoInterruptedSinuMollweide","geoInterruptedSinusoidal","geoKavrayskiy7","geoKavrayskiy7Raw","geoLagrange","geoLagrangeRaw","geoLarrivee","geoLarriveeRaw","geoLaskowski","geoLaskowskiRaw","geoLittrow","geoLittrowRaw","geoLoximuthal","geoLoximuthalRaw","geoMiller","geoMillerRaw","geoModifiedStereographic","geoModifiedStereographicRaw","geoModifiedStereographicAlaska","geoModifiedStereographicGs48","geoModifiedStereographicGs50","geoModifiedStereographicMiller","geoModifiedStereographicLee","geoMollweide","geoMollweideRaw","geoMtFlatPolarParabolic","geoMtFlatPolarParabolicRaw","geoMtFlatPolarQuartic","geoMtFlatPolarQuarticRaw","geoMtFlatPolarSinusoidal","geoMtFlatPolarSinusoidalRaw","geoNaturalEarth2","geoNaturalEarth2Raw","geoNellHammer","geoNellHammerRaw","geoInterruptedQuarticAuthalic","geoNicolosi","geoNicolosiRaw","geoPatterson","geoPattersonRaw","geoPolyconic","geoPolyconicRaw","geoPolyhedral","geoPolyhedralButterfly","faceProjection","geoPolyhedralCollignon","geoPolyhedralWaterman","face2","cornerNormals","geoProject","geoGringortenQuincuncial","geoPeirceQuincuncial","geoPierceQuincuncial","geoQuantize","input2","output2","quantizePoints","quantizePointsNoDuplicates","quantizePolygon","quantizeFeature","geoQuincuncial","geoRectangularPolyconic","geoRectangularPolyconicRaw","geoRobinson","geoRobinsonRaw","geoSatellite","tilt","geoSatelliteRaw","geoSinuMollweide","geoSinuMollweideRaw","geoSinusoidal","geoSinusoidalRaw","geoStitch","geoTimes","geoTimesRaw","geoTwoPointAzimuthal","geoTwoPointAzimuthalRaw","geoTwoPointAzimuthalUsa","geoTwoPointEquidistant","geoTwoPointEquidistantRaw","geoTwoPointEquidistantUsa","geoVanDerGrinten","geoVanDerGrintenRaw","geoVanDerGrinten2","geoVanDerGrinten2Raw","geoVanDerGrinten3","geoVanDerGrinten3Raw","geoVanDerGrinten4","geoVanDerGrinten4Raw","geoWagner","geoWagner7","geoWagnerRaw","geoWagner4","geoWagner4Raw","geoWagner6","geoWagner6Raw","geoWiechel","geoWiechelRaw","geoWinkel3","geoWinkel3Raw","require_zoom","zoomstartStyle","zoomendStyle","initZoom","userOpts","fullNp","fitScale","zoomScoped","syncCb","midPt","zoomNonClipped","mouse0","rotate0","lastRotate","zoomPoint","mouse1","rotate1","didZoom","position2","zoomClipped","argumentz2","d3eventDispatch","zoomOn","_rotate","euler","sinGamma","cosGamma","between","halfgamma","rotateBetween","newEuler","eulerFromQuaternion","rotateAngles","ptRotated","rotateCartesian","newYaw1","newYaw2","newPitch1","newPitch2","dist1","angleDistance","unRoll","yaw0","pitch0","yaw1","pitch1","dYaw","angleMod","dPitch","angleRads","vectorOut","cosa","sina","_isScoped","_isClipped","require_geo","createGeoZoom","Geo","hasChoropleth","basePaths","dataPaths","bgRect","makeRangeBox","lon0","lat0","dlon4","geoCalcData","_geoCalcData","geoPromises","needsTopojson","hasMarkerAngles","_hasMarkerAngles","topojsonNameNew","fetchTopojson","topojsonPath","updateProjection","saveViewInitial","updateBaseLayers","updateDims","choroplethLayer","choropleth","_render","projLayout","axLon","axLat","projName","_isSatellite","dummyFn","getBounds","getProjection","midLon","midLat","lonHalfSpan","latHalfSpan","rangeBox","_isAlbersUsa","centerPx","isAxisLayer","isLineLayer","isFillLayer","framework","oppRng","coordFn","isScoped","makeGraticule","hFrameWidth","framewidth","updateObj","mayRedrawOnUpdates","lonlatPx","hideShowPoints","require_layout_attributes18","geoAxesAttrs","showcoastlines","coastlinecolor","coastlinewidth","showland","landcolor","showocean","oceancolor","showlakes","lakecolor","showrivers","rivercolor","riverwidth","showcountries","countrycolor","countrywidth","showsubunits","subunitcolor","subunitwidth","showframe","framecolor","require_layout_defaults16","handleGeoDefaults","geoLayoutIn","geoLayoutOut","scopeParams","isAlbersUsa","isSatellite","isConic","_isConic","isClipped","rangeDflt","dfltSpans","hSpan","lonRange","latRange","projLon","centerLonDflt","centerLatDflt","centerLon","dfltProjRotate","require_geo2","createGeo","geoId","oldGeoKeys","oldGeoKey","oldGeo","require_scattergeo","require_scattergeo2","require_attributes49","scatterGeoAttrs","scatterGeoMarkerLineAttrs","require_defaults45","require_calc28","require_style18","require_plot18","bboxFeature","require_hover15","altXy","hasName","makeHoverInfo","require_event_data10","require_select6","require_choropleth","require_choropleth2","require_hover16","calcHover","hbg","hbc","hts","htc","htf","hnl","fakeCd","_origX","_origY","closestId","ptx","pty","_xStarts","_xEnds","_yStarts","_yEnds","require_constants23","TOO_MANY_POINTS","SYMBOL_SDF_SIZE","SYMBOL_SIZE","SYMBOL_STROKE","DOT_RE","OPEN_RE","require_attributes50","require_helpers16","isOpenSymbol","isDotSymbol","require_defaults46","require_format_labels4","scatterFormatLabels","require_search_bounds","require_pick_by_alias","keepRest","toList","occupied","aliases","require_parse_rect","require_array_bounds","require_defined","require_flatten_vertex_data","dstLength","Ctor","require_is_obj","require_math_log2","LOG2E","require_quad","flatten","isObj","lox","loy","hix","hiy","srcPoints","sublevels","diam","ids2","levelItems","levelGroups","sublevel","offset2","lolo","lohi","hilo","hihi","nextOffset","lod","nminX","nminY","nmaxX","nmaxY","maxLevel","levelGroupStart","levelGroupEnd","startOffset","endOffset","offsets2","off0","off1","off2","off3","require_point_cluster","require_abs_svg_path","require_cjs6","_n","_d","_e","_s","sliceIterator","TAU","mapToEllipse","_ref","approxUnitArc","ang1","ang2","vectorAngle","_ref2","_ref2$xAxisRotation","xAxisRotation","_ref2$largeArcFlag","largeArcFlag","_ref2$sweepFlag","sweepFlag","curves","pxp","pyp","_getArcCenter","rxsq","rysq","pxpsq","pypsq","radicant","centerxp","centeryp","vx1","vy1","vx2","vy2","getArcCenter","_getArcCenter2","_mapToEllipse","_mapToEllipse2","_mapToEllipse3","require_normalize_svg_path","bezierX","bezierY","quadX","quadY","arcToCurve","quadratic","require_is_svg_path","require_svg_path_bounds","isSvgPath","require_normalize_svg_path2","_120","large_arc_flag","sweep_flag","recursive","rx2","ry2","f2old","x2old","y2old","degress","require_draw_svg_path","beginPath","require_bitmap_sdf","intData","channel","CanvasRenderingContext2D","gridOuter","gridInner","INF","edt","edt1d","require_svg_path_sdf","path2DSupported","parsePath","drawPath","bitmapSdf","strokeStyle","ctx2","Path2D","idata","isPath2DSupported","path2d","setTransform","require_convert10","svgSdf","AxisIDs","convertTextStyle","textfontIn","textpositionIn","tfc","tfs","tff","tfw","tfy","tfv","fonti","weightFallBack","convertMarkerStyle","optsIn","multiSymbol","multiAngle","multiColor","multiLineColor","multiOpacity","multiSize","multiLineWidth","borderColors","markers","getSymbolSdf","markerSizeFunc","sizeAvg","borderSizes","sizeTotal","convertMarkerSelection","convertTextSelection","convertErrorBarStyle","SYMBOL_SDF","SYMBOL_SVG_CIRCLE","symbolPath","symbolSdf","symbolFunc","isDot","markerSel","markerUnsel","errorX","textSel","textUnsel","markerStyle","markerSelection","midPtX","midPtY","hasNaN","errorBarPositions","convertOneAxis","pOffset","eOffset","minShoe","maxHat","dl","lv","_bnds","markerOpts","fontOpts","hSign","vSign","require_scene_update","resetOpts","fillOptions","markerOptions","markerSelectedOptions","markerUnselectedOptions","errorXOptions","errorYOptions","textSelectedOptions","textUnselectedOptions","unselectBatch","fill2d","scatter2d","error2d","line2d","glText","fillOrder","require_calc29","scatterCalc","sceneUpdate","expandForErrorBars","errExt","hasTooManyPoints","_ids","sceneOptions","snap","require_edit_style","styleTextSelection","els","unels","baseOpts","selOpts","unselOpts","hasArrayBase","basej","require_select7","hasOnlyLines","require_base_index","require_color_id","require_object_assign","propIsEnumerable","test1","test2","test3","shouldUseNative","require_browser3","require_update_diff","mappers","require_is_iexplorer","appVersion","require_to_float32","fract32","fract","narr","require_bundle","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","colorId","extend2","updateDiff","f32","parseRect","Scatter","paletteTexture","palette","maxColors","tooManyColors","markerCache","markerTextures","paletteIds","shaderOptions","constPointSize","paletteSize","scaleFract","translateFract","markerTexture","positionBuffer","xFract","positionFractBuffer","yFract","sizeBuffer","borderSize","borderColorId","activation","srcRGB","dstRGB","srcAlpha","dstAlpha","scissor","frag","drawMarker","circleOptions","drawCircle","pixelSize","_refresh","getMarkerDrawOptions","batch","markerId","selectionBuffer","subdata","_lod$l","ondraw","hasSize","hasColor","updateColor","_bounds","_positions","count2","float_data","markerMasks","addMarker","_id2","vp","_group2","_i3","_colorId","_i4","sdf","distArr","_i5","_i6","updatePalette","requiredHeight","subimage","extend$1","scatter$1","require_earcut","earcut","holeIndices","invSize","hasHoles","outerLen","outerNode","linkedList","steiner","getLeftmost","compareX","eliminateHole","eliminateHoles","earcutLinked","signedArea","insertNode","removeNode","filterPoints","again","ear","zOrder","prevZ","nextZ","numMerges","pSize","qSize","inSize","sortLinked","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","locallyInside","isValidDiagonal","splitPolygon","bridge","tanMin","sectorContainsSector","findHoleBridge","bridgeReverse","leftmost","intersectsPolygon","middleInside","onSegment","an","trianglesArea","holeIndex","require_array_normalize","require_is_implemented","require_noop2","require_is_value","_undefined","require_is_implemented2","plainObject","require_is_object","isValue","function","require_valid_value","require_create2","nullObject","polyProps","require_shim3","objIsPrototypeOf","nullDesc","tmpObj1","tmpObj2","ignore","isNullBase","nullPolyfill","require_set_prototype_of","require_valid_object","require_random_uniq","generated","require_is","require_is2","possibleTypes","require_is3","require_is4","isPrototype","require_is5","classRe","functionToString","require_is_implemented3","trzy","require_is_implemented4","require_shim4","require_keys","require_shim5","require_assign","require_normalize_options","opts1","require_is_implemented5","require_shim6","searchString","require_contains","require_d","isPlainFunction","normalizeOpts","dscr","require_is_arguments2","objToString","require_is_string","require_is_implemented6","require_implementation6","naiveFallback","__global__","require_global_this","require_is_implemented7","validTypes","Symbol2","require_is_symbol","require_validate_symbol","require_generate_name","objPrototype","created","ie11BugWorkaround","postfix","require_standard_symbols","NativeSymbol","SymbolPolyfill","isConcatSpreadable","species","unscopables","require_symbol_registry","validateSymbol","registry","for","keyFor","require_polyfill4","HiddenSymbol","isNativeSafe","generateName","setupStandardSymbols","setupSymbolRegistry","__description__","__name__","require_es6_symbol","require_clear","require_valid_callable","require_coerce2","valueToString","require_safe_to_string","error2","require_to_short_string","safeToString","reNewLine","require_resolve_exception","stringCoerce","toShortString","resolveMessage","defaultMessage","inputOptions","isOptional","errorMessage","require_ensure","resolveException","require_ensure2","require_is_implemented8","require_is_function","isFunctionStringTag","require_is_implemented9","require_shim7","require_sign","require_to_integer","require_to_pos_integer","toInteger","require_shim8","iteratorSymbol","toPosInt","callable","validValue","arrayLike","Context","getIterator","mapFn","require_from","require_copy2","aFrom","propertyNames","propertyName","ensure","require_iterate","objPropertyIsEnumerable","defVal","compareFn","require_for_each2","require_map","targetObj","require_auto_bind","ensureValue","ensurePlainFunction","normalizeOptions","dgs","overwriteDefinition","resolveContext","require_es6_iterator","Iterator","autoBind","__list__","__context__","__nextIndex__","_onAdd","_onDelete","_onClear","_next","__redo__","_unBind","_createResult","_resolve","require_array2","ArrayIterator","kind","__kind__","require_string","StringIterator","__length__","require_is_iterable","require_valid_iterable","isIterable","require_get","require_for_of","doBreak","broken","require_is_native_implemented","require_polyfill5","WeakMapPoly","randomUniq","forOf","toStringTagSymbol","isNative","objHasOwnProperty","__weakMapData__","require_es6_weak_map","require_array_find_index","require_regl_line2d","WeakMap2","Line2D","hasExtension","passes","createShaders","dashMult","maxPatternLength","precisionThreshold","drawMiterLine","offsetBuffer","instances","miterMode","miterLimit","dashLength","viewportWidth","viewportHeight","equation","drawRectLine","divisor","lineTop","aCoord","bCoord","aCoordFract","bCoordFract","cull","aColor","bColor","prevCoord","nextCoord","positionFract","miter","close","splitNull","lastId","splits","split_triangles","hole_base","last_id","seg_pos","positionData","frac_data","boundsW","boundsH","rangeW","rangeH","dashData","colorData","require_regl_error2d","drawErrors","errorBuffer","meshBuffer","WEIGHTS","capOffset","drawGroup","scaleRatio","errorCount","options3","options4","errorData","require_unquote","require_css_global_keywords","require_css_system_font_keywords","require_css_font_weight_keywords","require_css_font_style_keywords","require_css_font_stretch_keywords","require_parenthesis","brackets","escape2","bracket","pRE","replaceToken","str2","refId","prevStr","escape3","res2","replaceRef","parenthesis","require_string_split_by","paren","separator","cleanParts","require_css_font_size_keywords","require_util3","isSize","require_parse","unquote","globalKeywords","systemFontKeywords","fontWeightKeywords","fontStyleKeywords","fontStretchKeywords","splitBy","parseFont","system","stretch","parseLineHeight","require_stringify","a2o","systems","stretches","fams","serif","monospace","cursive","fantasy","verify","require_css_font","require_regl_unchecked","VARIABLE_COUNTER","DynamicVariable","escapeStr","splitParts","subparts","toAccessorString","define","isDynamic","_reglType","accessor","raf2","clock","parseExtensions","getElement","parseArgs","args_","contextAttributes","extensions","optionalExtensions","devicePixelRatio","profile","cachedCode","onDestroy","isWebGLContext","resizeObserver","ResizeObserver","observe","disconnect","createCanvas","createContext","createPool","bufferPool","nextPow16","allocType","freeType","GL_TEXTURE_2D","GL_RGBA","GL_FLOAT","GL_FRAMEBUFFER","isNDArrayLike","flattenUtils","array_","out_","flatten1D","flatten2D","flatten3D","flattenRec","ptr_","arrayTypes","glTypes","usageTypes","static","arrayFlatten","arrayShape","GL_UNSIGNED_BYTE$2","GL_FLOAT$2","DTYPES_SIZES","typedArrayCode","copyArray","shapeX","shapeY","strideX","strideY","primTypes","GL_UNSIGNED_BYTE$3","GL_UNSIGNED_SHORT$1","GL_UNSIGNED_INT$1","GL_ELEMENT_ARRAY_BUFFER","convertToHalfFloat","ushorts","isArrayLike","GL_TEXTURE_2D$1","GL_TEXTURE_CUBE_MAP$1","GL_TEXTURE_CUBE_MAP_POSITIVE_X$1","GL_RGBA$1","GL_ALPHA","GL_RGB","GL_LUMINANCE","GL_LUMINANCE_ALPHA","GL_RGB5_A1","GL_DEPTH_COMPONENT","GL_DEPTH_STENCIL","GL_SRGB_EXT","GL_SRGB_ALPHA_EXT","GL_HALF_FLOAT_OES","GL_COMPRESSED_RGB_S3TC_DXT1_EXT","GL_COMPRESSED_RGBA_S3TC_DXT1_EXT","GL_COMPRESSED_RGBA_S3TC_DXT3_EXT","GL_COMPRESSED_RGBA_S3TC_DXT5_EXT","GL_UNSIGNED_BYTE$4","GL_UNSIGNED_SHORT$2","GL_UNSIGNED_INT$2","GL_FLOAT$3","GL_CLAMP_TO_EDGE","GL_NEAREST","GL_NEAREST_MIPMAP_NEAREST","GL_LINEAR_MIPMAP_LINEAR","GL_DONT_CARE","GL_TEXTURE0$1","MIPMAP_FILTERS","CHANNELS_FORMAT","FORMAT_CHANNELS","objectName","CANVAS_CLASS","OFFSCREENCANVAS_CLASS","CONTEXT2D_CLASS","BITMAP_CLASS","IMAGE_CLASS","VIDEO_CLASS","PIXEL_CLASSES","TYPE_SIZES","FORMAT_SIZES_SPECIAL","isNumericArray","isRectArray","classString","isCanvasElement","isOffscreenCanvas","isPixelData","typedArrayCode$1","preConvert","postConvert","getTextureSize","isMipmap","isCube","createTextureSet","reglPoll","contextState","stats2","mipmapHint","fast","wrapModes","magFilters","nearest","minFilters","mipmap","colorSpace","browser","textureTypes","rgba4","rgb565","textureFormats","luminance","compressedTextureFormats","ext_srgb","srgb","srgba","oes_texture_float","oes_texture_half_float","webgl_depth_texture","webgl_compressed_texture_s3tc","webgl_compressed_texture_atc","webgl_compressed_texture_pvrtc","webgl_compressed_texture_etc1","supportedCompressedFormats","supportedFormats","textureFormatsInvert","textureTypesInvert","magFiltersInvert","minFiltersInvert","wrapModesInvert","colorFormats","glenum","TexFlags","internalformat","compressed","premultiplyAlpha","unpackAlignment","copyFlags","parseFlags","hasChannels","setFlags","pixelStorei","TexImage","needsFree","needsCopy","parseImage","viewW","viewH","converted","convertData","shapeC","strideC","transposeData","isBitmap","isImageElement","naturalWidth","naturalHeight","isVideoElement","videoWidth","videoHeight","arrayShape2","allocData","miplevel","compressedTexImage2D","copyTexImage2D","setSubImage","compressedTexSubImage2D","copyTexSubImage2D","imagePool","allocImage","freeImage","MipMap","genMipmaps","mipmask","parseMipMapFromShape","parseMipMapFromObject","mipData","setMipMap","mipPool","allocMipMap","freeMipMap","TexInfo","anisotropic","parseTexInfo","optWrapS","optWrapT","hasMipMap","setTexInfo","ext_texture_filter_anisotropic","textureCount","textureSet","numTexUnits","maxTextureUnits","textureUnits","REGLTexture","refCount","bindCount","texInfo","tempBind","tempRestore","decRef","getTotalTextureSize","create2D","reglTexture2D","level_","w_","h_","_h","_texture","createCube","cubeCount","reglTextureCube","a42","a52","faceInput","radius_","getTexture","restore","refresh","GL_RENDERBUFFER","GL_RGBA4$1","FORMAT_SIZES","getRenderbufferSize","GL_FRAMEBUFFER$1","GL_RENDERBUFFER$1","GL_TEXTURE_2D$2","textureFormatChannels","textureTypeSizes","GL_ELEMENT_ARRAY_BUFFER$1","AttributeRecord","wrapReadPixels","framebufferState","glAttributes","readPixelsImpl","colorAttachments","framebufferWidth","framebufferHeight","setFBO","framebuffer","readPixelsFBO","hex_sha256","hex_tab","rstr2hex","binb2rstr","T1","T2","HASH","safe_add","sha256_Gamma1256","sha256_Gamma0256","sha256_Sigma1256","sha256_Ch","sha256_K","sha256_Sigma0256","sha256_Maj","binb_sha256","rstr2binb","rstr_sha256","str2rstr_utf8","sha256_S","sha256_R","lsw","CUTE_COMPONENTS","S_DITHER","S_BLEND_ENABLE","S_BLEND_COLOR","S_BLEND_EQUATION","S_BLEND_FUNC","S_DEPTH_ENABLE","S_DEPTH_FUNC","S_DEPTH_RANGE","S_DEPTH_MASK","S_COLOR_MASK","S_CULL_ENABLE","S_CULL_FACE","S_FRONT_FACE","S_LINE_WIDTH","S_POLYGON_OFFSET_ENABLE","S_POLYGON_OFFSET_OFFSET","S_SAMPLE_ALPHA","S_SAMPLE_ENABLE","S_SAMPLE_COVERAGE","S_STENCIL_ENABLE","S_STENCIL_MASK","S_STENCIL_FUNC","S_STENCIL_OPFRONT","S_STENCIL_OPBACK","S_SCISSOR_ENABLE","S_SCISSOR_BOX","S_VIEWPORT","S_PROFILE","S_FRAMEBUFFER","S_VERT","S_FRAG","S_ELEMENTS","S_PRIMITIVE","S_COUNT","S_OFFSET","S_INSTANCES","S_VAO","SUFFIX_WIDTH","SUFFIX_HEIGHT","S_FRAMEBUFFER_WIDTH","S_FRAMEBUFFER_HEIGHT","S_VIEWPORT_WIDTH","S_VIEWPORT_HEIGHT","S_DRAWINGBUFFER","S_DRAWINGBUFFER_WIDTH","S_DRAWINGBUFFER_HEIGHT","NESTED_OPTIONS","GL_ARRAY_BUFFER$2","GL_ELEMENT_ARRAY_BUFFER$2","GL_FLOAT_VEC2","GL_FLOAT_VEC3","GL_FLOAT_VEC4","GL_INT_VEC2","GL_INT_VEC3","GL_INT_VEC4","GL_BOOL_VEC2","GL_BOOL_VEC3","GL_BOOL_VEC4","GL_FLOAT_MAT2","GL_FLOAT_MAT3","GL_FLOAT_MAT4","GL_SAMPLER_2D","GL_SAMPLER_CUBE","GL_FRONT","GL_BACK","GL_CCW","GL_KEEP","blendFuncs","compareFuncs","never","lequal","greater","notequal","gequal","always","stencilOps","keep","decrement","orientationType","ccw","isBufferArgs","sortState","Declaration","thisDep","contextDep","propDep","decl","createStaticDecl","createDynamicDecl","dyn","numArgs","subDyn","subArgs","SCOPE_DECL","reglCore","stringStore","bufferState","elementState","textureState","uniformState","attributeState","shaderState","drawState","AttributeRecord2","Record","blendEquations","ext_blend_minmax","extInstancing","angle_instanced_arrays","extDrawBuffers","webgl_draw_buffers","extVertexArrays","oes_vertex_array_object","currentState","nextState","GL_STATE_NAMES","GL_FLAGS","GL_VARIABLES","stateFlag","sname","stateVariable","hasVariableReference","sharedState","sharedConstants","backBuffer","drawBuffer","maxDrawbuffers","drawCallCounter","createREGLEnvironment","env","varCounter","linkedNames","linkedValues","isStable","block","vars","entryToString","exitToString","globalBlock","procedures","bodyToString","cond","pred","thenBlock","elseBlock","thenToString","elseToString","else","elseClause","createEnvironment","batchId","SHARED","nextVars","currentVars","variable","argList","attribCache","scopeAttribs","scopeAttrib","parseArguments","attribLocations","staticOptions","staticAttributes","sAttributes","parseAttribLocations","dynamicOptions","getFramebuffer","env2","CONTEXT","FRAMEBUFFER_FUNC","FRAMEBUFFER_STATE","parseFramebuffer","viewportAndScissor","parseBox","isStatic2","BOX_W","BOX_H","dynBox","BOX","BOX_X","BOX_Y","prevViewport","VIEWPORT","scissor_box","parseViewportScissor","staticDraw","vaoActive","vao2","getVAO","vaoRef","parseVAO","elementsActive","elements2","getElements","result2","ELEMENTS","IS_BUFFER_ARGS","ELEMENT_STATE","elementDefn","elements3","elementStream","ifte","parseElements","parseParam","isOffset","OFFSET","dynValue","primitive2","dynPrimitive","PRIM_TYPES","parsePrimitive","dynCount","parseVertCount","parseDraw","STATE","parseStatic","parseDynamic","COMPARE_FUNCS","BLEND_FUNCS","SRC_RGB","SRC_ALPHA","BLEND_EQUATIONS","zfail","zpass","STENCIL_OPS","parseGLState","parseShader","progVar","fragId","SHADER_STATE","progDef","parseProgram","copyBox","defn","scopeVAO","drawVAO","useVAO","profileEnable","parseProfile","staticUniforms","dynamicUniforms","reglType","ITEM","parseUniforms","staticBindings","dynamicAttributes","attributeDefs","record","isStream","VALUE","BUFFER_STATE","defaultRecord","TYPE","emitReadRecord","parseAttributes","staticContext","dynamicContext","parseContext","emitContext","contextEnter","emitPollFramebuffer","skipCheck","EXT_DRAW_BUFFERS","GL","NEXT","DRAW_BUFFERS","BACK_BUFFER","emitPollState","CURRENT_VARS","NEXT_VARS","CURRENT_STATE","NEXT_STATE","CURRENT","emitSetOptions","injectExtensions","instancing","emitProfile","useScope","incrementCounter","CPU_START","QUERY_COUNTER","USE_PROFILE","STATS","TIMER","profileArg","perfCounter","emitProfileStart","emitProfileEnd","scopeProfile","emitAttributes","ATTRIBUTE","LOCATION","BINDING","CONST_COMPONENTS","COMMON_KEYS","emitBuffer","SIZE","DIVISOR","emitConstant","emitBindAttribute","typeLength","emitUniforms","isBatchInnerLoop","infix","uniform","TEX_VALUE","MAT_VALUE","unroll","TEX","matSize","STORAGE","prevS","emitDraw","ELEMENTS2","DRAW_STATE","drawOptions","contextDynamic","emitValue","INSTANCES","EXT_INSTANCING","PRIMITIVE","COUNT","COUNT2","emitCount","ELEMENT_TYPE","elementsStatic","emitInstancing","emitRegular","createBody","emitBody","parentEnv","emitDrawBody","emitBatchDynamicShaderBody","emitBatchBody","BATCH_ID","PROPS","isInnerDefn","isOuterDefn","needsContext","needsFramebuffer","progCache","PROGRAM","PROG_ID","CACHED_PROC","program2","splatObject","isDynamicObject","objectRef","deps","procs","poll","common","INSTANCING","TEMP_BINDING","MAX_ATTRIBUTES","maxAttributes","drawCache","emitDrawProc","VARIABLE2","VARIABLE","saveShader","emitScopeProc","progDefn","batchCache","emitBatchProc","createTimer","ext_disjoint_timer_query","queryPool","freeQuery","pendingQueries","PendingStats","startQueryIndex","endQueryIndex","pendingStatsPool","pendingStats","pushScopeStats","ps","timeSum","queryPtr","beginQuery","createQueryEXT","beginQueryEXT","endQuery","endQueryEXT","pendingStats2","queryTime","getQueryObjectEXT","startPtr","endPtr","gpuTime","getNumPendingQueries","deleteQueryEXT","CONTEXT_LOST_EVENT","CONTEXT_RESTORED_EVENT","haystack","needle","getContextAttributes","extensionState","tryLoadExtension","name_","createExtensionCache","stringIds","stringValues","stats$$1","vaoCount","bufferCount","elementsCount","framebufferCount","shaderCount","renderbufferCount","START_TIME","WIDTH","HEIGHT","maxAnisotropic","readFloat","readFloatTexture","getError","npotTextureCube","cubeTexture","colorBits","depthBits","stencilBits","subpixelBits","pointSizeDims","lineWidthDims","maxViewportDims","maxCombinedTextureUnits","maxCubeMapSize","maxRenderbufferSize","maxVertexUniforms","maxVertexTextureUnits","maxVaryingVectors","maxFragmentUniforms","glsl","vendor","wrapLimits","destroyBuffer","bufferSet","REGLBuffer","persistentData","streamPool","initBufferFromTypedArray","initBufferFromData","persist","flatData","typedData","transposeData2","getTotalBufferSize","deferInit","persistent","reglBuffer","setSubData","_buffer","offset_","createStream","destroyStream","stream$$1","_initBuffer","wrapBufferState","elementSet","elementCount","elementTypes","REGLElementBuffer","primType","vertCount","oes_element_index_uint","initElements","predictedType","destroyElements","reglElements","wrapElementsState","NUM_ATTRIBUTES","attributeBindings","vaoSet","currentVAO","targetVAO","extVAO","REGLVAO","updateVAO","ownsElements","bufUpdated","nattributes","rec","buffers","setVAO","bindAttrs","exti","extInstanced","offfset","vertexAttribDivisorANGLE","extension","wrapAttributeState","fragShaders","vertShaders","ActiveInfo","insertActiveInfo","getShader","programCache","programList","PROGRAM_COUNTER","REGLProgram","vertId","uniformsCount","attributesCount","getAttribLocation","getMaxUniformsCount","getMaxAttributesCount","prevProgram","wrapShaderState","renderbufferState","ext_color_buffer_half_float","webgl_color_buffer_float","formatTypesInvert","renderbufferSet","REGLRenderbuffer","renderbuffer","getTotalRenderbufferSize","reglRenderbuffer","_renderbuffer","wrapRenderbuffers","colorTextureFormats","colorRenderbufferFormats","FramebufferAttachment","incRefAndCheckShape","attach","parseAttachment","allocAttachment","isTexture","unwrapAttachment","resizeAttachment","framebufferSet","REGLFramebuffer","depthAttachment","stencilAttachment","depthStencilAttachment","decFBORefs","updateFramebuffer","reglFramebuffer","needsDepth","needsStencil","colorTexture","colorFormat","colorCount","depthBuffer","stencilBuffer","depthStencilBuffer","depthStencilTexture","depthTexture","depthStencil","_framebuffer","use","reglFramebufferCube","colorCubes","cubeMapParams","cube","wrapFBOState","rafCallbacks","lossCallbacks","restoreCallbacks","destroyCallbacks","activeRAF","handleRAF","startRAF","stopRAF","handleContextLoss","handleContextRestored","compileProcedure","separateDynamic","useArrays","staticItems","dynamicItems","option","opBack","opFront","flattenNestedOptions","stats$$12","cpuTime","EMPTY_ARRAY","reserve","clearImpl","clearFlags","clearDepth","clearStencil","pendingCancel","pollViewport","scissorBox","framebuffer_reglType","framebufferCube","callbacks","getCachedCode","preloadCachedCode","moreCache","kv","createREGL","require_context","isCanvas","isContext","require_font_atlas","stringifyFont","defaultChars","newchars","require_twiddle","require_dup","require_pool","require_is_plain_obj","require_parse_unit","require_topx","require_detect_kerning","kerning","asciiPairs","createPairs","kerningWidth","emWidth","leftChar","ascii","require_font_measure","applyOrigin","tittle","clearRect","topPx","firstTop","bottomPx","alphabetic","medianPx","hangingPx","hanging","ideographicPx","ideographic","capHeight","xHeight","firstBottom","overshootPx","iData","require_dist","Font","createRegl","createGl","fontAtlas","metrics","isStretchSupported","fontStretch","GlText","isRegl","charBuffer","charOffset","atlasSize","atlas","atlasDim","cols","charStep","positionOffset","this$1","viewportArray","baseFontSize","newAtlasChars","newFontSize","baseString","this$1$1","fonts","fontString","metrics2","textArray","textOffsets","i$1","atlasContext","atlas2","char2","baseChar","i$2","j$1","charIds","sizeData","i$3","ptr$1","count$1","j$2","prevChar","prevWidth","currWidth","kerning$1","maxCols","maxAtlasSize","atlasWidth","atlasHeight","atlasCanvas","alignOffset","baselineOffset","i$4","l$1","i$5","i$6","require_prepare_regl","reglPrecompiled","require_plot19","createScatter","createLine","createError","Text","prepareRegl","getViewport","cdata","textsToAdd","textsToRemove","srcPos","firstptdef","lastptdef","errorBatch","stash2","nextTrace","nextOptions","nextPos","prevLinePos","clickSelectEnabled","selPts","selDict","unselPts","vpRange0","vpRange","require_scattergl","require_scattergl2","require_attributes51","scatterGlAttrs","markerLineAttrs","markerAttrs","makeAxesValObject","showupperhalf","showlowerhalf","require_merge_length","dimi","require_defaults47","mergeLength","dimensionDefaults","dimIn","dimOut","showDiag","showUpper","showLower","dimLength","xAxesDflt","yAxesDflt","diag","fillAxisStashes","counterAxId","dim2","mustShiftX","mustShiftY","iN","xaId","yaId","require_scene_update2","matrixOptions","require_calc30","commonLength","ldata","visibleDims","_visibleDims","ccol","vcalendar","selectedOptions","unselectedOptions","require_performance_now","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","hr","uptime","require_raf","frameDuration","vendors","caf","_now","cancelled","require_array_range","require_regl_splom","arrRange","SPLOM","passId","getBox","iloy","ihiy","jlox","jhix","iitem","jitem","getPad","planned","updateItem","tracePasses","passOffset","multirange","multipadding","ih","passId2","require_plot20","matrixOpts","visibleLength","viewOpts","dmn","needsBaseUpdate","splomCalcData","require_helpers17","getDimIndex","require_hover17","_hoverPoints","axisHoversubplots","_pointData","require_select8","require_edit_style2","require_base_index2","Grid","require_base_plot6","dragOne","splomGrid","fullView","lcolor","lwidth","xLength","yLength","gridBatches","makeGridData","require_splom","require_splom2","require_attributes52","labelangle","labelside","rangefont","constraintrange","multiselect","require_constants24","maxDimensionCount","overdrag","verticalPadding","tickDistance","canvasPixelRatio","blockLineCount","axisTitleOffset","axisExtentOffset","captureWidth","fillOpacity","snapDuration","snapRatio","snapClose","strokeOpacity","handleHeight","handleOpacity","handleOverlap","axisExtentText","parcoordsLineLayers","parcoordsLineLayer","parcoords","parcoordsControlView","axisOverlays","axisHeading","axisTitle","axisExtent","axisExtentTop","axisExtentTopText","axisExtentBottom","axisExtentBottomText","axisBrush","filterBarPattern","require_gup","keyFun","descend","require_axisbrush","sortAsc","snapOvershoot","vAdjacent","closeToCovering","ordinalScaleSnap","isHigh","existingRanges","overlappingExisting","aHere","aPrev","nextI","aNext","barHorizontalSetup","backgroundBarHorizontalSetup","setHighlight","filterSpecified","sectionHeight","iNext","pixelRanges","unitToPx","getConsolidated","currentGap","unitRanges","clearCursor","styleHighlight","renderHighlight","tweenCallback","getInterval","closestInterval","pixIntervals","hoveredInterval","previousInterval","nextInterval","fPix","getRegion","intervalPix","unitTickvals","unitLocation","unitToPaddedPx","rangei","clickableOrdinalRange","svgBrush","wasDragged","grabbingBar","newExtent","grabPoint","startExtent","stayingIntervals","brushCallback","attachDragBehavior","inBrushDrag","unitRange","pixelRange","int2","brushStartCallback","grabLocation","brushClear","brushEndCallback","mergeIntervals","hasNewExtent","dragend","startAsc","dedupeRealRanges","currentInterval","makeBrush","rangeSpecified","initialRange","consolidated","makeFilter","getBrushExtent","ensureAxisBrush","paperColor","highlightShadow","renderAxisBrush","cleanRanges","sortedTickVals","rSnapped","require_defaults48","dimensionIn","dimensionOut","parentOut","constraintRange","dimensionsIn","require_calc31","cscale","constHalf","rgb_default2","hsl_default2","init_color_parse","init_rgb2","init_hsl2","color_rgba_exports","rgba2","init_color_rgba","require_helpers18","convertTypedArray","isOrdinal","require_lines","vertexShaderSource","fragmentShaderSource","maxDim","depthLimitEpsilon","maskHeight","dummyPixel","dataPixel","paletteTextureConfig","SCISSOR_TEST","renderBlock","glAes","renderState","sampleCount","rafKey","drawCompleted","ensureDraw","blockNumber","currentRafs","scissorX","scissorY","scissorWidth","viewBoxSize","clearOnly","unitToColor","calcPickColor","rgbIndex","makeVecAttr","vecIndex","pointPairs","getAttrName","makeItem","rightmost","itemNumber","panelSizeX","panelSizeY","crossfilterDimensionIndex","drwLayer","canvasOverdrag","canvasWidth","canvasHeight","padL","padB","layoutHeight","layoutWidth","deselectedLinesColor","deselectedLines","deselectedLinesOpacity","viewBoxPos","dim0A","dim0B","dim0C","dim0D","dim1A","dim1B","dim1C","dim1D","contextColor","scissorHeight","viewportX","viewportY","expandedPixelRange","dh","canvasGL","vm","initialDims","maskTexture","isPick","supportedLineWidth","ALIASED_LINE_WIDTH_RANGE","viewModel","emptyAttributes","prevAxisOrder","dither","loA","hiA","loB","hiB","loC","hiC","loD","hiD","dNew","paddedUnitValues","setAttributes","panels","setChanged","panelCount","lowestX","highestX","dim0","canvasX","dim1","isContext2","bitMask","prevEnd","nextRange","textureData","makeConstraints","canvasY","plotGlPixelRatio2","pixelArray","require_parcoords","gup","lineLayerMaker","findExtreme","fixExtremes","dimensionExtent","domainScale","unitVal","ordinalScale","unitToColorScale","colorTuples","polylinearUnitScales","someFiltersActive","labelSide","rangeFont","groupWidth","groupHeight","rowContentWidth","rowHeight","colCount","model2","unitPad","_unitToPaddedPx","uniqueKeys","domainToPaddedUnit","padFraction","domainToPaddedUnitScale","foundKey","specifiedConstraint","filterRangeSpecified","filterRange","truncatedValues","makeTickItem","sortTickItem","tickItems","visibleIndex","linePickActive","focusLayer","filtersActive","contextShown","contextLayer","pickLayer","filterChanged","invScale","newRanges","styleExtentTexts","calcTilt","updatePanelLayout","linearFormat","glContainer","calcAllTicks","glLayers","lastHovered","lineLayer","controlOverlay","axesMoved","wantedTickCount","sdom","require_plot21","visibleIndices","orig","origIndex","currentIndex","currentDims","fullIndices","inputIndices","initialDimIndex","newConstraints","fullDimension","restyleData","sorter","require_base_plot7","parcoordsPlot","hadParcoords","hasParcoords","require_base_index3","require_parcoords2","require_parcoords3","require_attributes53","arrangement","bundlecolors","sortpaths","displayindex","require_defaults49","require_calc32","updateCategoryModel","categoryModel","valueInd","valueInds","createPathModel","categoryInds","rawColor","updatePathModel","pathModel","totalCount","uniqueInfoDims","categoryValues","allNumeric","uniqueValues","uniqueValueCounts","uniqueValueInds","inds","uniqueVal","valInd","itemInd","uniqueCounts","getUniqueInfo","displayInds","indsSpecified","isRangePermutation","_displayindex","validateDimensionDisplayInds","dimInd","uniqueInfoDim","_categoryarray","_ticktext","validateCategoryProperties","markerColorscale","numValues","pathModels","categoryIndsDims","categoryIndsPath","pathColorInfo","pathKey","categoryInd","dimensionModels","dimensionInd","containerInd","displayInd","dimensionLabel","dragX","createDimensionModel","catInd","catValue","catLabel","categoryValue","categoryLabel","dragY","maxCats","createParcatsModel","require_parcats","performPlot","parcatsModels","viewModels","createParcatsViewModel","layerSelection","traceEnter","pathSelection","pathSelectionEnter","stylePathsNoHover","svgD","compareRawColor","mouseoverPath","mouseoutPath","clickPath","dimensionSelection","categorySelection","categoryGroupEnterSelection","styleCategoriesNoHover","bandSelection","catViewModel","bands","bandsSelectionEnter","bandModel","parcatsViewModel","styleBandsNoHover","catInRightDim","catModel","categorylabelfont","mouseoverCategoryBand","mouseoutCategory","dragDimensionStart","dragDimension","dragDimensionEnd","numDims","leftDimInd","hoverinfoItems","stylePathsHover","buildPointsArrayForPath","buildConstraintsForPath","pathCenterX","pathCenterY","hoverX","rootBBox","graphDivBBox","leftXs","dimWidths","leftDim","rightDim","topYs","prob","countLabel","probabilityLabel","hovertextParts","mouseX","getTraceIndex","bandsSelection","selectPathsThroughCategoryBandColor","catBandViewModel","categoryViewModel","pathViewModel","emitPointsEventCategoryHovermode","bandElement","bandViewModel","bandSel","bvm","emitPointsEventColorHovermode","createHoverLabelForCategoryHovermode","hoverLabelIdealAlign","rectBoundingBox","dimensionModel","catPaths","styleForColorHovermode","styleForCategoryHovermode","bandBoundingBox","bandColorCount","catCount","pColorAndCat","pCatGivenColor","pColorGivenCat","categorycount","colorcount","bandcolorcount","createHoverLabelForColorHovermode","allHoverlabels","createHoverLabelForDimensionHovermode","dragDimensionDisplayInd","initialDragDimensionDisplayInds","dragHasMoved","dragCategoryDisplayInd","catMouseX","catMouseY","initialDragCategoryDisplayInds","potentialClickBand","dragDimInd","prevDimInd","nextDimInd","dragDimension2","dragCategory","categoryY","catDisplayInd","dimCategoryViews","catAbove","catBelow","prevDimension","nextDimension","updateDimensionViewModels","updatePathViewModels","updateSvgCategories","updateSvgPaths","traceInd","finalDragDimensionDisplayInds","anyDimsReordered","initDimDisplay","finalDimDisplay","anyCatsReordered","finalDragCategoryDisplayInds","initCatDisplay","sortedCategoryModels","newCategoryArray","newCategoryLabels","allTraces","newAnchor","wrappedParcatsModel","parcatsModel","figureWidth","figureHeight","traceHeight","traceX","traceY","pathShape","buildSvgPath","leftXPositions","pathYs","pathHeight","curvature","refInterpolator","xRefPoints1","xRefPoints2","dimensionViewModels","nextYPositions","catToDisplayIndPerDim","dimToDisplayInd","displayToDimInd","pathDisplayCategoryInds","pathModel2","dimensionInds","catInd2","sortArray1","sortArray2","pathViewModels","pathNumber","dimDisplayInd","catViewModle","numBands","lastCatBand","bandY","currentBand","dimensionsIndInfo","dimModel","createDimensionViewModel","dimX","numDimensions","nextCatHeight","nextCatModel","nextCat","numCats","nextCatY","categoryIndInfo","require_plot22","parcats","require_base_plot8","parcatsPlot","PARCATS","hadTable","hasTable","require_parcats2","require_parcats3","require_constants25","requiredVersion","OSM","carto","stamenTerrainOrToner","stylesNonMapbox","sources","attribution","tiles","tileSize","minzoom","maxzoom","paint","styleValuesNonMapbox","styleUrlPrefix","styleUrlSuffix","styleValuesMapbox","styleValueDflt","traceLayerPrefix","layoutLayerPrefix","wrongVersionErrorMsg","noAccessTokenErrorMsg","missingStyleErrorMsg","multipleTokensErrorMsg","mapOnErrorMsg","mapboxLogo","path1","path2","canary","require_layout_attributes19","fontAttr","accesstoken","west","south","sourcetype","sourcelayer","sourceattribution","iconsize","placement","require_attributes54","mapboxAttrs","mapboxLayoutAtributes","allowoverlap","require_constants26","supportedFonts","isSupportedFont","require_defaults50","handleLonLatDefaults","clusterMaxzoom","clusterStep","clusterColor","clusterSize","clusterOpacity","layoutFontFamily","require_format_labels5","require_convert_text_opts","iconSize","vPos","hPos","xInc","yInc","anchorVals","require_convert11","convertTextOpts","initContainer","getFillFunc","numeric","blankFillFunc","isBADNUM","arrayifyAttribute","newAttribute","isItalic","hasFill","hasCircles","hasCluster","circleOpts","colorFn","opacityFn","arrayColor","arraySize","arrayOpacity","addTraceOpacity","size2radius","makeCircleOpts","clusterCount","fillSymbol","fillAngle","makeSymbolGeoJSON","require_plot23","LAYER_PREFIX","nonCluster","ScatterMapbox","clusterEnabled","sourceIds","layerIds","addSource","sourceOpts","clusterMaxZoom","isSourceExists","getSource","setData","setSourceData","addLayer","layerExist","currentLayerId","getMapLayers","setOptions","optsAll","belowLookup","hadCluster","noSource","removeLayer","removeSource","wasHidden","_glTrace","scatterMapbox","require_hover18","clusteredPointsIds","elems","queryRenderedFeatures","lonShift","xval2","lonlatShifted","require_event_data11","require_select9","require_mapbox_gl_unminified","worker","mapboxgl","workerBundleString","sharedChunk","workerUrl","createCommonjsModule","unitbezier","UnitBezier","p1x","p1y","sampleCurveX","sampleCurveY","sampleCurveDerivativeX","solveCurveX","t13","t23","pointGeometry","_add","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","_mult","_div","rotateAround","_rotateAround","matMult","_matMult","_unit","perp","_perp","_round","distSqr","angleTo","angleWith","angleWithSep","window$1","MAX_SAFE_INTEGER","bezier","bezier2","sources2","uniqueId","uuid","validateUuid","bindAll","mapObject","filterObject","warnOnceHistory","warnOnce","isCounterClockwise","calculateSignedArea","isWorker","WorkerGlobalScope","parseCacheControl","cacheControl","$0","$2","$3","maxAge","_isSafari","safari","storageAvailable","setItem","linkEl","reducedMotionQuery","glForTesting","webpImgTest","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","msCancelAnimationFrame","exported","resolveURL","hardwareConcurrency","prefersReducedMotion","API_URL","EVENTS_URL","FEEDBACK_URL","REQUIRE_ACCESS_TOKEN","ACCESS_TOKEN","MAX_PARALLEL_IMAGE_REQUESTS","exported$1","testSupport","webpCheckComplete","webpImgTestOnloadComplete","testWebpTextureUpload","SKU_ID","RequestManager","transformRequestFn","customAccessToken","_transformRequestFn","_customAccessToken","_createSkuToken","isMapboxURL","skuToken","sessionRandomizer","tokenExpiresAt","createSkuToken","_skuToken","_skuTokenExpiresAt","_isSkuTokenExpired","transformRequest","normalizeStyleURL","accessToken","urlObject","parseUrl","_makeAPIURL","normalizeGlyphsURL","normalizeSourceURL","authority","normalizeSpriteURL","formatUrl","normalizeTileURL","tileURL","getAccessToken","canonicalizeTileURL","removeAccessToken","canonicalizeTileset","tileJSON","sourceURL","canonical","isMapboxHTTPURL","help","apiUrlObject","mapboxHTTPURLRe","urlRe","telemEventKey","parseAccessToken","TelemetryEvent","anonId","pendingRequest","getStorageKey","tokenData","btoa","fetchEventData","isLocalStorageAvailable","storageKey","uuidKey","getItem","uuid2","saveEventData","processRequests","postEvent","timestamp","additionalPayload","eventsUrlObject","payload","sdkIdentifier","sdkVersion","skuId","userId","finalPayload","postData","queueRequest","sharedCache","responseConstructorSupportsReadableStream","MapLoadEvent","TelemetryEvent2","MapLoadEvent2","postMapLoadEvent","tileUrls","mapId","turnstileEvent_","TurnstileEvent2","postTurnstileEvent","lastSuccess","tokenU","dueForEvent","nextUpdate","lastUpdate","nextDate","daysElapsed","mapLoadEvent_","CACHE_NAME","cacheLimit","cacheCheckThreshold","cacheOpen","caches","cachePut","requestTime","statusText","Headers","Response","ReadableStream","prepareBody","clonedResponse","stripQueryParameters","cacheGet","strippedURL","fresh","expires","isFresh","supportsOffscreenCanvas","globalEntryCounter","offscreenCanvasSupported","OffscreenCanvas","createImageBitmap","ResourceType","Unknown","Style","Source","Tile","Glyphs","SpriteImage","SpriteJSON","AJAXError","Error2","AJAXError2","status2","getReferrer","referrer","makeFetchRequest","requestParameters","controller","AbortController","Request","credentials","signal","complete","cacheIgnoringSearch","validateOrFetch","cachedResponse","responseIsFresh","finishRequest","fetch","cacheableResponse","arrayBuffer","imageQueue","numImageRequests","makeRequest","actor","withCredentials","getResponseHeader","makeXMLHttpRequest","getArrayBuffer","transparentPngUrl","getImage","accept","queued","advanced","advanceImageRequestQueue","requestParameters2","imgBitmap","arrayBufferToImageBitmap","URL2","arrayBufferToImage","_addEventListener","listenerList","_removeEventListener","ErrorEvent","Event2","ErrorEvent2","Evented","_oneTimeListeners","fire","properties2","listens","list$1","listener$1","_eventedParent","_eventedParentData","setEventedParent","$version","$root","metadata","light","sprite","source_vector","scheme","tms","promoteId","volatile","source_raster","raster","source_raster_dem","terrarium","source_geojson","maximum","minimum","clusterRadius","clusterMinPoints","clusterProperties","lineMetrics","generateId","source_video","video","urls","source_image","heatmap","hillshade","layout_background","layout_fill","expression","parameters","layout_circle","layout_heatmap","layout_line","butt","bevel","requires","layout_symbol","uppercase","lowercase","layout_raster","layout_hillshade","filter_operator","within","geometry_type","categorical","function_stop","paint_fill","paint_line","paint_circle","paint_heatmap","paint_symbol","overridable","paint_raster","paint_hillshade","paint_background","ValidationError","__line__","validateConstants","unbundle","deepUnbundle","unbundledValue","ParsingError","ParsingError2","Scope","expression2","NullType","NumberType","StringType","BooleanType","ColorType","ObjectType","ValueType","CollatorType","FormattedType","ResolvedImageType","itemType","valueMemberTypes","checkSubtype","isValidType","provided","allowedTypes","isValidNativeType","csscolorparser","exports3","kCSSColorTable","clamp_css_byte","clamp_css_float","parse_css_int","parse_css_float","css_hue_to_rgb","parseCSSColor","css_str","ep","fname","csscolorparser_1","Collator","caseSensitive","diacriticSensitive","sensitivity","collator","Intl","lhs","rhs","resolvedLocale","resolvedOptions","FormattedSection","fontStack","Formatted","sections","unformatted","section","serialize","serialized","ResolvedImage","available","validateRGBA","mixed","typeOf","toString$1","Literal","expectedType","evaluate","eachChild","outputDefined","RuntimeError","Assertion","type$1","FormatExpression","firstArg","nextTokenMayBeObject","lastExpression","evaluatedContent","ImageExpression","evaluatedImageName","availableImages","types$1","Coercion","parseColor","geometryTypes","EvaluationContext","featureState","formattedSection","_parseColorCache","canonicalID","CompoundExpression","_evaluate","ref$1","definitions","availableOverloads","overloads","ref2","signature","signatureContext","ParsingContext","parsedArgs","argParseFailed","arg$1","signatures","params2","actualTypes","parsed$1","registry2","CollatorExpression","EXTENT","updateBBox","boxWithinBox","bbox1","getTileCoordinates","tilesAtZoom","rayIntersect","pointWithinPolygon","pointWithinPolygons","twoSided","lineIntersectPolygon","vectorP","vectorQ","lineStringWithinPolygon","lineStringWithinPolygons","getTilePolygon","getTilePolygons","updatePoint","polyBBox","worldSize","halfWorldSize","getTilePoints","pointBBox","shifts","tilePoints","getTileLines","lineBBox","tileLines","tileLine","list$3","list$2","Within","isFeatureConstant","isStateConstant","isGlobalPropertyConstant","polygonGeometry","tilePolygon","tilePolygons","tilePoints$1","pointsWithinPolygons","tileLines$1","linesWithinPolygons","Var","boundExpression","isConstant","isTypeAnnotation","childrenConstant","findStopLessThanOrEqualTo","currentValue","nextValue","lowerIndex","upperIndex","expr","_parse","annotate","parsed2","typeAnnotation","Expr","ec","error$1","Step","outputType","labelKey","valueKey","stopCount","Xn2","Zn2","xyz2lab2","lab2xyz2","xyz2rgb","rgb2xyz","rgbToLab","rgbColor","labToRgb","labColor","lab3","hcl3","hclColor","colorSpaces","Interpolate","interpolation","exponentialInterpolation","lowerValue","upperValue","interpolationFactor","controlPoints","rest","outputLower","outputUpper","Coalesce","needsAnnotation","requestedImageName","argCount","Let","At","In","IndexOf","fromIndex","Match","inputType","cases","otherwise","labelContext","groupedByOutput","outputLookup","outputIndex","coerceLabel","label2","outputIndex$1","Case","Slice","beginIndex","endIndex","isComparableType","eqCollate","makeComparison","compareBasic","compareWithCollator","isOrderComparison","hasUntypedArgument","op2","lt2","lt$1","rt$1","Equals","NotEquals","LessThan","GreaterThan","LessThanOrEqual","GreaterThanOrEqual","NumberFormat","number2","minFractionDigits","maxFractionDigits","minimumFractionDigits","maximumFractionDigits","Length","expressions","case","coalesce","let","literal","var","varargs","supportsPropertyExpression","spec2","supportsZoomExpression","supportsInterpolation","identityFunction","createFunction","propertySpec","innerFun","hashedStops","categoricalKeyType","isColor","zoomAndFeatureDependent","featureDependent","zoomDependent","stop2","evaluateExponentialFunction","evaluateIntervalFunction","evaluateCategoricalFunction","evaluateIdentityFunction","featureFunctions","zoomStops","stop$1","featureFunctionStops","interpolationType","interpolationType$1","keyType","colorspace","evaluatedLower","evaluatedUpper","typeof","heatmapDensity","lineProgress","accumulated","ln2","binarySearch","isSupportedScript","upcase","downcase","StyleExpression","_warningHistory","_evaluator","_defaultValue","_enumValues","isExpression","createExpression","types2","parser","enum","formatted","resolvedImage","evaluateWithoutErrorHandling","ZoomConstantExpression","_styleExpression","isStateDependent","ZoomDependentExpression","createPropertyExpression","isFeatureConstant$1","isZoomConstant","zoomCurve","findZoomCurve","StylePropertyFunction","specification","_parameters","_specification","childResult","validateObject","elementSpecs","valueSpec","elementValidators","objectElementValidators","styleSpec","objectKey","elementSpecKey","elementSpec","validateElement","elementSpecKey$1","validateArray","arraySpec","validateArrayElement","arrayElementValidator","arrayElementSpec","stopKeyType","previousStopDomainValue","previousStopDomainZoom","functionValueSpec","functionType","stopDomainValues","isZoomFunction","isPropertyFunction","isZoomAndPropertyFunction","errors2","validateFunctionStop","validateStopDomainValue","reportValue","validateExpression","expressionContext","expressionObj","propertyKey","propertyType","validateEnum","isExpressionFilter","filter2","deserialize","filterSpec","createFilter","needGeometry","convertFilter","globalProperties","geometryNeeded","filters","convertComparisonOp","convertNegation","convertInOp","convertHasOp","validateFilter","validateNonExpressionFilter","validateProperty","layerSpec","layerType","transitionMatch","tokenMatch","validatePaintProperty","validateLayoutProperty","validateLayer","layer2","layerId","otherLayer","layer3","source2","sourceType","validateString","validateSource","mapExpr","reduceExpr","validateLight","light2","lightSpec","rootType","VALIDATORS","validateGlyphsURL","validateStyleMin","sortErrors","wrapCleanErrors","paintProperty","layoutProperty","validateStyle","validateLight$1","validatePaintProperty$1","validateLayoutProperty$1","emitValidationErrors","hasErrors","gridIndex","GridIndex","NUM_PARAMS","keysOffset","bboxesOffset","bboxes","_insertReadonly","_forEachCell","_insertCell","cellIndex","intersectionTest","_queryCell","_convertToCellCoord","cx2","cy2","_convertFromCellCoord","toArrayBuffer","metadataLength","totalCellLength","ImageData2","ImageBitmap2","ImageBitmap","writeable","omit","shallow","transferables","_classRegistryKey","isImageBitmap","$name","ZoomHistory","now2","floorZ","lastIntegerZoom","lastIntegerZoomTime","lastZoom","lastFloorZoom","unicodeBlockLookup","Arabic","Khmer","Hiragana","Katakana","Bopomofo","Kanbun","allowsVerticalWritingMode","charHasUprightVerticalOrientation","charAllowsLetterSpacing","charHasRotatedVerticalOrientation","charHasNeutralVerticalOrientation","charInComplexShapingScript","charInRTLScript","charInSupportedScript","canRenderRTL","stringContainsRTLText","_completionCallback","pluginStatus","pluginURL","triggerPluginCompletionEvent","sendPluginStateToWorker","evented","getRTLTextPluginStatus","downloadRTLTextPlugin","plugin","applyArabicShaping","processBidirectionalText","processStyledBidirectionalText","isLoaded","isLoading","setState","isParsed","getPluginURL","EvaluationParameters","fadeDuration","zoomHistory","isStringInSupportedScript","crossFadingFactor","getCrossfadeParameters","fromScale","toScale","PropertyValue","normalizePropertyExpression","isDataDriven","possiblyEvaluate","TransitionablePropertyValue","transitioned","prior","TransitioningPropertyValue","untransitioned","Transitionable","_properties","defaultTransitionablePropertyValues","setValue","getTransition","setTransition","transition2","Transitioning","finalValue","t33","easeCubicInOut","defaultTransitioningPropertyValues","PossiblyEvaluated","Layout","defaultPropertyValues","PossiblyEvaluatedPropertyValue","constantOr","defaultPossiblyEvaluatedValues","DataConstantProperty","DataDrivenProperty","overrides","CrossFadedDataDrivenProperty","DataDrivenProperty2","CrossFadedDataDrivenProperty2","evaluatedValue","constantValue","_calculate","cameraVal","CrossFadedProperty","ColorRampProperty","Properties","overridableProperties","defaultPropertyValue","defaultTransitionablePropertyValue","TRANSITION_SUFFIX","StyleLayer","Evented2","StyleLayer2","_featureFilter","sourceLayer","_unevaluatedLayout","_transitionablePaint","setPaintProperty","property$1","setLayoutProperty","_transitioningPaint","_crossfadeParameters","getLayoutProperty","_validate","getPaintProperty","transitionable","isCrossFadedProperty","wasDataDriven","_handleSpecialPaintPropertyUpdate","_handleOverridablePaintPropertyUpdate","updateTransitions","recalculate","validate2","is3D","isTileClipped","hasOffscreenPass","viewTypes","Int8","Uint8","Int16","Uint16","Int32","Uint32","Float32","Struct","structArray","_structArray","_pos1","_pos2","_pos4","_pos8","StructArray","isTransferred","capacity","createLayout","members2","members","member","typeSize","memberOffset","_trim","bytesPerElement","_refreshViews","oldUint8Array","StructArrayLayout2i4","StructArray2","StructArrayLayout2i42","emplaceBack","emplace","StructArrayLayout4i8","StructArrayLayout4i82","StructArrayLayout2i4i12","StructArrayLayout2i4i122","v4","v5","StructArrayLayout2i4ub8","StructArrayLayout2i4ub82","StructArrayLayout2f8","StructArrayLayout2f82","StructArrayLayout10ui20","StructArrayLayout10ui202","v6","v7","v8","v9","StructArrayLayout4i4ui4i24","StructArrayLayout4i4ui4i242","v10","v11","StructArrayLayout3f12","StructArrayLayout3f122","StructArrayLayout1ul4","StructArrayLayout1ul42","StructArrayLayout6i1ul2ui20","StructArrayLayout6i1ul2ui202","StructArrayLayout2i2i2i12","StructArrayLayout2i2i2i122","StructArrayLayout2f1f2i16","StructArrayLayout2f1f2i162","StructArrayLayout2ub2f12","StructArrayLayout2ub2f122","StructArrayLayout3ui6","StructArrayLayout3ui62","StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48","StructArrayLayout2i2ui3ul3ui2f3ub1ul1i482","v12","v13","v14","v15","v16","StructArrayLayout8i15ui1ul4f68","StructArrayLayout8i15ui1ul4f682","v17","v18","v19","v20","v21","v22","v23","v24","v25","v26","v27","StructArrayLayout1f4","StructArrayLayout1f42","StructArrayLayout3i6","StructArrayLayout3i62","StructArrayLayout1ul2ui8","StructArrayLayout1ul2ui82","StructArrayLayout2ui4","StructArrayLayout2ui42","StructArrayLayout1ui2","StructArrayLayout1ui22","StructArrayLayout4f16","StructArrayLayout4f162","CollisionBoxStruct","Struct2","CollisionBoxStruct2","prototypeAccessors2","anchorPointX","anchorPointY","sourceLayerIndex","bucketIndex","anchorPoint","CollisionBoxArray","CollisionBoxArray2","PlacedSymbolStruct","PlacedSymbolStruct2","prototypeAccessors$12","glyphStartIndex","numGlyphs","vertexStartIndex","lineStartIndex","lineLength","lowerSize","upperSize","lineOffsetX","lineOffsetY","writingMode","placedOrientation","crossTileID","associatedIconIndex","PlacedSymbolArray","PlacedSymbolArray2","SymbolInstanceStruct","SymbolInstanceStruct2","prototypeAccessors$2","rightJustifiedTextSymbolIndex","centerJustifiedTextSymbolIndex","leftJustifiedTextSymbolIndex","verticalPlacedTextSymbolIndex","placedIconSymbolIndex","verticalPlacedIconSymbolIndex","textBoxStartIndex","textBoxEndIndex","verticalTextBoxStartIndex","verticalTextBoxEndIndex","iconBoxStartIndex","iconBoxEndIndex","verticalIconBoxStartIndex","verticalIconBoxEndIndex","numHorizontalGlyphVertices","numVerticalGlyphVertices","numIconVertices","numVerticalIconVertices","useRuntimeCollisionCircles","textBoxScale","textOffset0","textOffset1","collisionCircleDiameter","SymbolInstanceArray","SymbolInstanceArray2","GlyphOffsetArray","GlyphOffsetArray2","getoffsetX","SymbolLineVertexArray","SymbolLineVertexArray2","getx","gety","gettileUnitDistanceFromAnchor","FeatureIndexStruct","FeatureIndexStruct2","prototypeAccessors$3","FeatureIndexArray","FeatureIndexArray2","SegmentVector","packUint8ToFloat","prepareSegment","layoutVertexArray","indexArray","MAX_VERTEX_ARRAY_LENGTH","vertexLength","vertexOffset","primitiveOffset","primitiveLength","vaos","simpleSegment","patternAttributes","murmurhash3_gc","seed","h1b","murmurhash2_gc","murmurhashJs","murmur3_1","murmur2_1","murmur3","murmur2","FeaturePositionMap","getNumericId","getPositions","intId","MAX_SAFE_INTEGER$1","numValue","Uniform","Uniform1i","Uniform2","Uniform1i2","Uniform1f","Uniform1f2","Uniform2f","Uniform2f2","uniform2f","Uniform3f","Uniform3f2","uniform3f","Uniform4f","Uniform4f2","uniform4f","UniformColor","UniformColor2","emptyMat4","UniformMatrix4f","UniformMatrix4f2","uniformMatrix4fv","packColor","color3","ConstantBinder","uniformNames","setUniform","getBinding","CrossFadedConstantBinder","patternFrom","patternTo","pixelRatioFrom","pixelRatioTo","setConstantPatternPositions","posTo","posFrom","tlbr","uniformName","SourceExpressionBinder","PaintVertexArray","paintVertexAttributes","paintVertexArray","populatePaintArray","newLength","imagePositions","_setPaintValue","updatePaintArray","upload","paintVertexBuffer","updateData","createVertexBuffer","CompositeExpressionBinder","useIntegerZoom","minColor","maxColor","currentZoom","CrossFadedCompositeBinder","zoomInPaintVertexArray","zoomOutPaintVertexArray","_setPaintValues","imageMin","imageMid","imageMax","zoomInPaintVertexBuffer","zoomOutPaintVertexBuffer","ProgramConfiguration","filterProperties","binders","_buffers","paintAttributeNames","propType","isCrossFaded","StructArrayLayout","layoutType","StructArrayLayout$1","cacheKey","getMaxValue","binder","populatePaintArrays","updatePaintArrays","featureStates","featureMap","vtLayer","defines","getBinderAttributes","getBinderUniforms","getPaintVertexBuffers","getUniforms","setUniforms","binderUniforms","updatePaintBuffers","crossfade","patternVertexBuffer","ProgramConfigurationSet","programConfigurations","needsUpload","_featureMap","_bufferOffset","binderType","defaultLayouts","composite","layoutException","getLayoutException","EXTENT$1","MAX","BITS","MIN","loadGeometry","toEvaluationFeature","addCircleVertex","extrudeX","extrudeY","CircleBucket","overscaling","hasPattern","stateDependentLayerIds","polygonIntersectsPolygon","polygonA","polygonB","polygonContainsPoint","lineIntersectsLine","polygonIntersectsBufferedPoint","pointIntersectsBufferedLine","polygonIntersectsMultiPolygon","multiPolygonContainsPoint","lineIntersectsBufferedLine","lineA","lineB","lineSegmentIntersectsLineSegment","radiusSquared","distToSegmentSquared","edgeIntersectsBox","getMaximumPaintValue","translateDistance","translate2","queryGeometry","translateAnchor","pixelsToTileUnits","translated","populate","styleLayer","bucketFeatures","circleSortKey","evaluationFeature","bucketFeature","bucketFeature$1","index$1","sourceLayerIndex$1","addFeature","states","stateDependentLayers","uploadPending","uploaded","layoutVertexBuffer","indexBuffer","createIndexBuffer","layout$2","ARRAY_TYPE","hypot","arguments$1","create$4","create$5","CircleStyleLayer","CircleStyleLayer2","createBucket","queryRadius","circleBucket","queryIntersectsFeature","pixelPosMatrix","translatedPolygon","alignWithMap","transformedPolygon","projectPoint","projectQueryGeometry","transformedSize","transformedPoint","adjustedSize","projectedCenter","cameraToCenterDistance","HeatmapBucket","CircleBucket2","HeatmapBucket2","createImage","resizeImage","newImage","copyImage","srcImg","dstImg","srcPt","dstPt","srcData","dstData","srcOffset","dstOffset","AlphaImage","RGBAImage","properties$1","renderColorRamp","evaluationGlobals","renderPixel","stride2","progress2","evaluationKey","pxColor","progress$1","HeatmapStyleLayer","HeatmapStyleLayer2","_updateColorRamp","colorRamp","colorRampTexture","heatmapFbo","properties$2","HillshadeStyleLayer","HillshadeStyleLayer2","members$1","earcut_1","default_1","indexCurve","minTX","minTY","maxTX","maxTY","quickselect","compare2","quickselectStep","swap$1","classifyRings","maxRings","compareAreas","patternDependencies","hasPattern2","patternProperty","constantPattern","addPatternDependencies","patternFeature","patternPropertyValue","FillBucket","patternFeatures","indexArray2","fillSortKey","addFeatures","indexBuffer2","triangleSegment","triangleIndex","flattened","ring$1","lineSegment","lineIndex","layout$4","properties$3","FillStyleLayer","FillStyleLayer2","outlineColor","members$2","vectortilefeature","VectorTileFeature","pbf2","_pbf","_geometry","readFields","readFeature","readVarint","readTag","signedArea$1","cmdLen","readSVarint","toGeoJSON","classifyRings$1","vectortilelayer","VectorTileLayer","_features","readLayer","readString","readDouble","readVarint64","readBoolean","readValueMessage","readTile","vectorTile","VectorTile","vectorTileFeatureTypes","vertexArray","FillExtrusionBucket","isBoundaryEdge","isEntirelyOutside","edgeDistance","perp2","bottomRight","ring$2","p$1","properties$4","FillExtrusionStyleLayer","FillExtrusionStyleLayer2","projectedQueryGeometry","projectQueryGeometry$1","projected","zBase","zTop","projectedBase","projectedTop","baseXZ","baseYZ","baseZZ","baseWZ","topXZ","topYZ","topZZ","topWZ","ringBase","ringTop","sX","sY","sZ","sW","baseZ","baseW","topX","topZ","topW","projectExtrusion","closestDistance","getIntersectionDistance","topA","topB","baseA","dot$2","projectedFace","dotABAB","dotABAC","dotACAC","dotAPAB","dotAPAC","members$3","members$4","vectorTileFeatureTypes$1","COS_HALF_SHARP_CORNER","MAX_LINE_DISTANCE","LINE_DISTANCE_BUFFER_BITS","LineBucket","lineClipsArray","gradients","layoutVertexArray2","maxLineLength","lineSortKey","patternBucketFeature","layoutVertexBuffer2","lineFeatureClips","layout2","roundLimit","lineClips","addLine","scaledDistance","totalDistance","updateScaledDistance","isPolygon","currentVertex","sharpCornerOffset","SHARP_CORNER_OFFSET","prevVertex","prevNormal","nextNormal","joinNormal","cosAngle","cosHalfAngle","miterLength","approxAngle","isSharpCorner","lineTurnsLeft","prevSegmentLength","newPrevVertex","updateDistance","addCurrentVertex","middleVertex","currentJoin","bevelLength","offsetA","offsetB","extrude","addHalfVertex","offset$1","nextSegmentLength","newCurrentVertex","endLeft","endRight","leftX","leftY","rightX","rightY","linesofarScaled","uvX","layout$6","properties$5","LineFloorwidthProperty","LineFloorwidthProperty2","lineFloorwidthProperty","LineStyleLayer","LineStyleLayer2","gradientVersion","stepInterpolant","gradientExpression","lineBucket","newRings","newRing","aToB","bToC","offsetLine","multiLine","polygonIntersectsBufferedMultiLine","lineGapWidth","symbolLayoutAttributes","dynamicLayoutAttributes","collisionVertexAttributes","collisionBoxLayout","collisionCircleLayout","transformText$1","toLocaleUpperCase","toLocaleLowerCase","transformText","verticalizedCharacterMap","ONE_EM","pbf","Pbf","Varint","Fixed64","Bytes","Fixed32","SHIFT_LEFT_32","SHIFT_RIGHT_32","utf8TextDecoder","TextDecoder","readPackedEnd","isSigned","makeRoomForExtraLength","startPos","extraLen","realloc","writePackedVarint","writeVarint","writePackedSVarint","writeSVarint","writePackedFloat","writePackedDouble","writePackedBoolean","writeBoolean","writePackedFixed32","writeFixed32","writePackedSFixed32","writeSFixed32","writePackedFixed64","writeFixed64","writePackedSFixed64","writeSFixed64","writeInt32","readInt32","readFontstacks","readMessage","readFontstack","readGlyph","bitmap","advance","readBytes","potpack","spaces","box$1","readField","skip","readFixed32","readSFixed32","readFixed64","readSFixed64","readVarintRemainder","readUtf8TextDecoder","readUtf8","readPackedVarint","readPackedSVarint","readPackedBoolean","readPackedFloat","readPackedDouble","readPackedFixed32","readPackedSFixed32","readPackedFixed64","readPackedSFixed64","writeTag","writeBigVarintLow","lsb","writeBigVarintHigh","writeBigVarint","writeString","lead","writeUtf8","writeBytes","writeRawMessage","writeMessage","writeBytesField","writeFixed32Field","writeSFixed32Field","writeFixed64Field","writeSFixed64Field","writeVarintField","writeSVarintField","writeStringField","writeFloatField","writeDoubleField","writeBooleanField","ImagePosition","paddedRect","version2","stretchX","stretchY","prototypeAccessors","displaySize","IMAGE_PADDING","ImageAtlas","icons","iconPositions","patternPositions","haveRenderCallbacks","addImages","id$1","src$1","bin$1","w$1","h$1","hasRenderCallback","patchUpdatedImages","imageManager","dispatchRenderCallbacks","updatedImages","patchUpdatedImage","WritingMode","horizontalOnly","SHAPING_DEFAULT_OFFSET","SectionOptions","imageName","forText","forImage","imageOptions","TaggedString","sectionIndex","imageSectionID","shapeText","glyphMap","glyphPositions","defaultFontStack","textJustify","allowVerticalPlacement","symbolPlacement","layoutTextSize","layoutTextSizeThisZoom","logicalInput","fromFeature","verticalizePunctuation","determineLineBreaks","taggedLine","line$1","taggedLine$1","lineBreakPoints","lineBreak","breakLines","positionedLines","shaping","iconsInText","verticalizable","maxLineHeight","justify","lineMaxScale","getMaxScale","maxLineOffset","positionedLine","positionedGlyphs","getSection","getSectionIndex","getCharCode","baselineOffset2","verticalAdvance","imagePosition","glyphPosition","justifyLine","currentLineHeight","getAnchorAlignment","blockHeight","shiftY","positionedGlyph","align$1","shapeLines","addImageSection","addTextSection","nextCharCode","prevCharCode","beginningWhitespace","trailingWhitespace","substring2","nextImageSectionCharCode","getNextImageSectionCharCode","breakable","getGlyphAdvance","calculateBadness","targetWidth","penalty","isLastBreak","raggedness","calculatePenalty","nextCodePoint","penalizableIdeographicBreak","evaluateBreak","breakIndex","breakX","potentialBreaks","bestPriorBreak","bestBreakBadness","potentialBreak","breakBadness","badness","priorBreak","leastBadBreaks","lastLineBreak","potentialLineBreaks","determineAverageLineWidth","hasServerSuggestedBreakpoints","currentX","ideographicBreak","lastPositionedGlyph","lastAdvance","lineIndent","fitIconToText","shapedIcon","shapedText","textFit","iconOffset","fontScale","collisionPadding","textLeft","textRight","textTop","textBottom","Anchor","Point2","Anchor2","SIZE_PACK_FACTOR","getSizeData","tileZoom","layoutSize","minZoom","maxZoom","evaluateSizeForFeature","uSize","uSizeT","evaluateSizeForZoom","symbolSize","checkMaxAngle","labelLength","windowSize","maxAngle","anchorDistance","recentCorners","recentAngleDelta","getLineLength","getAngleWindowSize","glyphSize","boxScale","getShapedLabelLength","getCenterAnchor","angleWindowSize","prevDistance","centerDistance","getAnchors","tileExtent","shapedLabelLength","isLineContinued","placeAtMiddle","halfLabelLength","markedDistance","segmentDist","clippedLines","clippedLine","getIconQuads","iconRotate","isSDFIcon","hasIconTextFit","quads","iconWidth","reduceRanges","stretchWidth","stretchHeight","fixedWidth","fixedHeight","stretchOffsetX","stretchContentWidth","stretchOffsetY","stretchContentHeight","fixedOffsetX","fixedContentWidth","fixedOffsetY","fixedContentHeight","sumWithinRange","makeBox","leftEm","getEmOffset","leftPx","getPxOffset","topEm","rightEm","rightPx","bottomEm","pixelOffsetTL","pixelOffsetBR","glyphOffset","minFontScaleX","minFontScaleY","isSDF","xCuts","stretchZonesToCuts","yCuts","stretchZones","fixedSize","stretchSize","cuts","stretchOffset","fixedOffset","CollisionFeature","collisionBoxArray","shaped","alignLine","rotate2","boxStartIndex","circleDiameter","collisionPadding$1","boxEndIndex","TinyQueue","defaultCompare$1","_down","findPoleOfInaccessibility","polygonRings","outerRing","cellSize","cellQueue","compareMax","Cell","bestCell","getCentroidCell","minDistSq","pointToPolygonDist","_up","peek","halfLength","INVALID_TEXT_OFFSET","POSITIVE_INFINITY","evaluateVariableOffset","fromTextOffset","radialOffset","hypotenuse","fromRadialOffset","getAnchorJustification","MAX_GLYPH_ICON_SIZE","MAX_PACKED_SIZE","addTextVertices","imageMap","textAlongLine","lineArray","placementTypes","placedTextSymbolIndices","placedIconIndex","glyphQuads","alongLine","textRotate","textureRect","rectBuffer","GLYPH_PBF_BORDER","rotateVerticalGlyph","halfAdvance","scaledGlyphOffset","imageOffset","glyphOffset2","builtInOffset","verticalizedLabelOffset","verticalRotation","xHalfWidthOffsetCorrection","yImageOffsetCorrection","halfWidthOffsetCorrection","verticalOffsetCorrection","getGlyphQuads","textSizeData","compositeTextSizes","addSymbols","placedSymbolArray","getDefaultHorizontalShaping","horizontalShaping","justification","anchorIsTooClose","repeatDistance","compareText","otherAnchors","vectorTileFeatureTypes$2","shaderOpacityAttributes","addVertex$1","sizeVertex","pixelOffsetX","pixelOffsetY","aSizeX","aSizeY","addDynamicAttributes","dynamicLayoutVertexArray","containsRTLText","formattedText","SymbolBuffers","opacityVertexArray","dynamicIndexBuffer","upload$1","dynamicLayoutVertexBuffer","opacityVertexBuffer","itemSize","CollisionBuffers","LayoutArray","IndexArray","collisionVertexArray","collisionVertexBuffer","SymbolBucket","hasRTLText","sortKeyRanges","collisionCircleArray","placementInvProjMatrix","placementViewportMatrix","unevaluatedLayoutValues","iconSizeData","zOrder2","canOverlap","sortFeaturesByKey","zOrderByViewportY","sortFeaturesByY","writingModes","sourceID","createArrays","glyphOffsetArray","lineVertexArray","symbolInstances","calculateGlyphDependencies","doesAllowVerticalWritingMode","verticalChar","textField","iconImage","hasIcon","symbolSortKey","iconDependencies","stacks","glyphDependencies","resolvedTokens","getValueAndResolveTokens","resolvedTokens$1","symbolFeature","sectionFont","sectionStack","leftIndex","rightIndex","mergedFeatures","mergedIndex","add2","mergeFromRight","leftKey2","rightKey2","geom2","mergeFromLeft","onRight","leftKey","rightKey","mergeLines","hasDebugData","textCollisionBox","iconCollisionBox","destroyDebugData","addToLineVertexArray","sumForwardLength","sumBackwardLength","tileUnitDistanceFromAnchor","labelAnchor","glyphOffsetArrayStart","_addCollisionDebugVertex","addCollisionDebugVertices","boxAnchorPoint","symbolInstance2","addDebugCollisionBoxes","startIndex","isText","generateCollisionDebugBuffers","_deserializeCollisionBoxesForSymbol","textStartIndex","textEndIndex","verticalTextStartIndex","verticalTextEndIndex","iconStartIndex","iconEndIndex","verticalIconStartIndex","verticalIconEndIndex","collisionArrays","textBox","textFeatureIndex","k$1","verticalTextBox","verticalTextFeatureIndex","k$2","box$2","iconBox","iconFeatureIndex","k$3","box$3","verticalIconBox","verticalIconFeatureIndex","deserializeCollisionBoxes","hasTextData","hasIconData","hasTextCollisionBoxData","hasIconCollisionBoxData","addIndicesForPlacedSymbol","iconOrText","placedSymbolIndex","placedSymbol","vertexIndex","getSortedSymbolIndexes","sortedAngle","symbolInstanceIndexes","rotatedYs","featureIndexes","aIndex","bIndex","addToSortKeyRanges","symbolInstanceIndex","symbolInstanceEnd","symbolInstanceStart","sortFeatures","featureSortOrder","MAX_GLYPHS","layout$7","properties$6","runtimeType","getOverride","hasOverride","FormatSectionOverride","SymbolStyleLayer","SymbolStyleLayer2","deduped","_setPaintOverrides","unevaluated","hasPaintOverride","overriden","styleExpression","_interpolationType","hasOverrides","checkSections","checkExpression","properties$7","BackgroundStyleLayer","BackgroundStyleLayer2","properties$8","RasterStyleLayer","RasterStyleLayer2","CustomStyleLayer","CustomStyleLayer2","renderingMode","prerender","onAdd","painter","subclasses","HTMLImageElement2","HTMLCanvasElement2","HTMLVideoElement2","ImageData$1","ImageBitmap$1","Texture","useMipmap","pixelStoreUnpackFlipY","pixelStoreUnpack","pixelStoreUnpackPremultiplyAlpha","premultiply","isSizePowerOfTwo","wrap2","ThrottledInvoker","_triggered","MessageChannel","_channel","port2","onmessage","trigger","port1","postMessage","Actor","tasks","taskQueue","cancelCallbacks","invoker","receive","globalScope","getMercCoords","targetMapId","mustQueue","hasCallback","sourceMapId","cancel2","processTask","task","completed","callback$1","getWorkerSource","LngLatBounds","setSouthWest","setNorthEast","_ne","LngLat","lng","_sw","sw2","ne2","lngLatBoundsObj","lngLatObj","getSouthWest","getNorthEast","getNorthWest","getWest","getNorth","getSouthEast","getEast","getSouth","lnglat","containsLatitude","containsLongitude","distanceTo","lngLat","toBounds","latAccuracy","lngAccuracy","earthCircumfrence","circumferenceAtLatitude","latitude","mercatorXfromLng$1","mercatorYfromLat$1","mercatorZfromAltitude","altitude","latFromMercatorY","MercatorCoordinate","fromLngLat","lngLatLike","toLngLat","toAltitude","meterInMercatorCoordinateUnits","CanonicalTileID","calculateKey","quadkey","getQuadkey","getTilePoint","UnwrappedTileID","OverscaledTileID","overscaledZ","scaledTo","targetZ","zDifference","calculateScaledKey","withWrap","isChildOf","sourceMaxZoom","isLessThan","unwrapTo","overscaleFactor","toUnwrapped","DEMData","_idx","_unpackTerrarium","_unpackMapbox","getUnpackVector","backfillBorder","borderTile","DictionaryCoder","_stringToNumber","_numberToString","vectorTileFeature","_vectorTileFeature","prototypeAccessors$1","SourceFeatureState","stateChanges","deletedStates","updateState","newState","removeFeatureState","getState","changes","reconciledState","featureDeletions","initializeTileState","setFeatureState","coalesceChanges","featuresChanged","layerStates","sourceLayer$1","layerStates$1","FeatureIndex","tileID","promoteId2","grid3D","featureIndexArray","evaluateProperties","serializedProperties","styleLayerProperties","topDownFeatureComparator","loadVTLayers","vtLayers","rawTileData","sourceLayerCoder","styleLayers","serializedLayers","sourceFeatureState","queryPadding","matching","cameraBounds","cameraQueryGeometry","matching3D","bx1","by1","bx2","by2","boxX1","boxY1","boxX2","boxY2","polygonIntersectsBox","previousIndex","featureGeometry","loadMatchingFeature","filterLayerIDs","layerIDs","bucketLayerIDs","arraysIntersect","sourceLayerName","layerID","serializedLayer","intersectionZ","geojsonFeature","layerResult","lookupSymbolFeatures","symbolFeatureIndexes","filterSpec2","symbolFeatureIndex","hasLayer","sourceLayerId","uses","buckets","expirationTime","hasSymbolBuckets","dependencies","expiredRequestCount","registerFadeDuration","fadeEndTime","timeAdded","wasRequested","loadVectorData","justReloaded","hasData","unloadVectorData","latestFeatureIndex","latestRawTileData","getLayer","lId","deserialize$1","bucket$1","id$2","bucket$2","imageAtlas","glyphAtlasImage","imageAtlasTexture","glyphAtlasTexture","getBucket","maxPitchScaleFactor","querySourceFeatures","_geojsonTileLayer","patternsLoaded","setExpiryData","parsedCC","isExpired","getExpiryTimeout","sourceLayerStates","holdingForFade","symbolFadeHoldUntil","symbolFadeFinished","clearFadeHold","setHoldDuration","setDependencies","hasDependency","performance2","RequestPerformance","_marks","mark","resourceTimingData","getEntriesByName","clearMarks","clearMeasures","Point$1","Protobuf","asyncAll","cacheEntryPossiblyAdded","dispatcher","getActor","clearTileCache","clone$1","clone$2","create$1","create$2","createStyleLayer","dot$1","enforceCacheSizeLimit","featureFilter","getJSON","getVideo","muted","onloadstart","crossOrigin","isChar","keysDifference","mercatorXfromLng","mercatorYfromLat","mvt","nextPowerOfTwo","parseGlyphPBF","performSymbolLayout","showCollisionBoxes","tilePixelRatio","iconsNeedLinear","minZoom$1","maxZoom$1","compositeIconSizes","layoutIconSize","textMaxSize","keepUpright","fontstack","shapedTextOrientations","unformattedText","spacingIfAllowed","allowsLetterSpacing","variableTextAnchor","addVerticalShapingForPointLabelIfNeeded","justifications","singleLine","shaping$1","iconAnchor","shapeIcon","sdfIcons","verticallyShapedIcon","defaultHorizontalShaping","textMaxBoxScale","iconBoxScale","symbolMinDistance","iconPadding","textMaxAngle","iconAlongLine","textRepeatDistance","iconTextFit","addSymbolAtAnchor","line2","textCollisionFeature","iconCollisionFeature","verticalTextCollisionFeature","verticalIconCollisionFeature","verticalTextRotation","verticalShaping","iconQuads","verticalIconQuads","getCollisionCircleHeight","prevHeight","addSymbol","anchor$1","poi","list$4","line$2","list$6","list$5","refProperties","registerForPluginStateChange","scale$1","scale$2","setCacheLimits","checkThreshold","setRTLTextPlugin","deferred","sphericalToCartesian","azimuthal","validateCustomStyleLayer","layerObject","webpSupported","str$1","StyleLayerIndex","layerConfigs","keyCache","_layerConfigs","_layers","removedIds","layerConfig","familiesBySource","cachedKeys","groupByLayout","layerConfig2","layer$1","sourceId","sourceGroup","sourceLayerFamilies","GlyphAtlas","stackPositions","stack$1","glyphs$1","WorkerTile","collectResourceTiming","returnDependencies","recalculateLayers","loadVectorTile","rawData","layerIndex","iconMap","patternMap","layerFamilies","maybePrepare","glyphAtlas","bucket2","VectorTileWorkerSource","loading","loadTile","perf","workerTile","resourceTiming","reloadTile","vtSource","reloadCallback","abortTile","removeTile","RasterDEMTileWorkerSource","rawImageData","imagePixels","dem","offscreenCanvas","offscreenCanvasContext","geojsonRewind","gj","rewindRings","rewindRing","FeatureWrapper","_feature","tags","geometry$1","point$1","GeoJSONWrapper","geojson_wrapper","GeoJSONWrapper$1","FeatureWrapper$1","rawGeometry","vtPbf","fromVectorTileJs","fromVectorTileJs_1","fromGeojsonVt_1","GeoJSONWrapper_1","writeLayer","writeTile","keycache","valuecache","writeFeature","writeValue","writeProperties","writeGeometry","keyIndex","valueIndex","zigzag","sortKD","swapItem","sqDist","fromGeojsonVt","defaultGetX","defaultGetY","KDBush","getX2","getY2","IndexArrayType","nextAxis","minPoints","Supercluster","trees","createCluster","createPointCluster","lngX","latY","getClusterJSON","getClusterProperties","abbrev","cluster_id","point_count","point_count_abbreviated","getX","getY","sqTolerance","maxSqDist","minPosToMid","getSqSegDist","posToMid","createFeature","calcLineBBox","calcBBox","convertFeature","convertPoint","convertLine","convertLines","projectX","projectY","minAll","maxAll","clipped","newGeometry","clipPoints","clipLines","newGeom","trackMetrics","segLen","newSlice","intersectX","intersectY","exited","shiftFeatureCoords","newFeatures","shiftCoords","transformTile","transformed","createTile","numSimplified","numFeatures","simplified","tileFeature","isOuter","rewind$1","GeoJSONVT","tileCoords","splitTile","toID","loadGeoJSONTile","_geoJSONIndex","geoJSONTile","getTile","geojsonWrapper","clusters","_cluster","getClusters","minLng","minLat","maxLng","maxLat","easternHem","westernHem","_limitZoom","getChildren","clusterId","originId","_getOriginId","originZoom","_getOriginZoom","getLeaves","_appendLeaves","_addTileFeatures","getClusterExpansionZoom","expansionZoom","isCluster","neighborIds","numPointsOrigin","neighborId","_map","neighborId$1","b$1","numPoints2","neighborId$2","b$2","indexMaxZoom","indexMaxPoints","k4","GeoJSONWorkerSource","VectorTileWorkerSource2","GeoJSONWorkerSource2","loadGeoJSON","loadData","_pendingCallback","abandoned","_pendingLoadDataParams","_loadData","superclusterOptions","mapExpressions","reduceExpressions","mapExpression","mapExpressionParsed","reduceExpressionParsed","pointProperties","list2","clusterProperties2","getSuperclusterOptions","geojsonvt","geojsonVtOptions","getClusterChildren","getClusterLeaves","Worker2","layerIndexes","workerSourceTypes","workerSources","demWorkerSources","registerWorkerSource","WorkerSource","registerRTLTextPlugin","rtlTextPlugin","setReferrer","mapID","setImages","workerSource","setLayers","getLayerIndex","loadDEMTile","getDEMWorkerSource","removeDEMTile","worker2","loadWorkerSource","importScripts","syncRTLPluginState","getAvailableImages","mapboxGlSupported","isSupported","notSupportedReason","reduceRight","isSealed","isFrozen","workerURL","Worker","terminate","isWorkerSupported","isCanvasGetImageDataSupported","failIfMajorPerformanceCaveat","isWebGLSupportedCache","webGLContextAttributes","probablySupportsContext","supportsContext","getWebGLContext","isWebGLSupported","docStyle","testProp","userSelect","selectProp","disableDrag","enableDrag","transformProp","options$1","renderStyleImage","userImage","mousePos","touchPos","mouseButton","InstallTrigger","platform","ImageManager","ImageManager2","callbackDispatchedThisFrame","requestors","atlasImage","setLoaded","_notify","addImage","_validateStretch","_validateContent","updateImage","oldImage","removeImage","listImages","getImages","hasAllDependencies","getPixelSize","getPattern","_updatePatternAtlas","atlasTexture","beginFrame","tinySdf","TinySDF","alphaChannel","GlyphManager","requestManager","localIdeographFontFamily","setURL","getGlyphs","stack2","requests","_tinySDF","loadGlyphRange","id3","_doesCharSupportLocalGlyph","glyphs2","tinySDF","urlTemplate","LightPositionProperty","Light","Light2","lightOptions","_transitionable","setLight","getLight","LineAtlas","dashEntry","getDash","dasharray","addDash","getDashRanges","lineAtlasWidth","isDash","zeroLength","currentDashLength","addRoundDash","halfStretch","currIndex","distLeft","distRight","signedDistance","distMiddle","distEdge","addRegularDash","Dispatcher","Dispatcher2","workerPool","actors","currentActor","workers","acquire","loadTileJSON","vector_layers","vectorLayers","vectorLayerIds","broadcast","release","TileBounds","validateBounds","VectorTileSource","VectorTileSource2","eventedParent","reparseOverscaled","_loaded","_collectResourceTiming","dataType","_tileJSONRequest","_requestManager","tileBounds","_getMapId","sourceDataType","hasTile","setSourceProperty","sourceCaches","clearTiles","setTiles","setUrl","_refreshExpiredTiles","unloadTile","RasterTileSource","RasterTileSource2","roundZoom","getTileTexture","extTextureFilterAnisotropic","extTextureFilterAnisotropicMax","saveTileTexture","RasterDEMTileSource","RasterDEMTileSource2","needsHillshadePrepare","neighboringTiles","_getNeighboringTiles","pxw","nxw","backfilled","demTexture","GeoJSONSource","GeoJSONSource2","_removed","_resourceTiming","workerOptions","_updateWorkerData","data2","rasterBoundsAttributes","ImageSource","ImageSource2","newCoordinates","successCallback","_finishLoading","setCoordinates","cornerCoords","dMax","getCoordinatesCenterTileID","_boundsArray","boundsBuffer","boundsSegments","VideoSource","VideoSource2","triggerRepaint","play","seek","seekableRange","seekable","currentTime","CanvasSource","CanvasSource2","_hasInvalidDimensions","_playing","getCanvas","sourceTypes","getPixelPosMatrix","calculatePosMatrix","sourceCache","has3DLayer","queryIncludes3DLayer","tilesIn","sortTilesIn","renderedFeatureLayers","tileIn","wrappedTileID","queryResults","wrappedIDLayerMap","wrappedID","wrappedIDLayers","tileFeatures","wrappedIDFeatures","resultFeatures","mergeRenderedFeatureLayers","featureWrapper","getFeatureState","idA","idB","TileCache","removedData","timeout","expiryTimeout","dataWrapper","_getAndRemoveByKey","getAndRemove","getByKey","setMaxSize","removed","IndexBuffer","dynamicDraw","unbindVAO","bindElementBuffer","AttributeType","VertexBuffer","bindVertexBuffer","enableAttributes","attribIndex","setVertexAttribPointers","BaseValue","setDefault","ClearColor","BaseValue2","ClearColor2","ClearDepth","ClearDepth2","ClearStencil","ClearStencil2","ColorMask","ColorMask2","DepthMask","DepthMask2","StencilMask","StencilMask2","stencilMask","StencilFunc","StencilFunc2","ALWAYS","stencilFunc","StencilOp","StencilOp2","KEEP","stencilOp","StencilTest","StencilTest2","STENCIL_TEST","DepthRange","DepthRange2","depthRange","DepthTest","DepthTest2","DepthFunc","DepthFunc2","Blend","Blend2","BlendFunc","BlendFunc2","ZERO","BlendColor","BlendColor2","blendColor","BlendEquation","BlendEquation2","CullFace","CullFace2","CullFaceSide","CullFaceSide2","BACK","cullFace","FrontFace","FrontFace2","CCW","frontFace","Program","Program2","ActiveTextureUnit","ActiveTextureUnit2","Viewport","Viewport2","BindFramebuffer","BindFramebuffer2","BindRenderbuffer","BindRenderbuffer2","BindTexture","BindTexture2","BindVertexBuffer","BindVertexBuffer2","BindElementBuffer","BindElementBuffer2","BindVertexArrayOES","BindVertexArrayOES2","extVertexArrayObject","PixelStoreUnpack","PixelStoreUnpack2","UNPACK_ALIGNMENT","PixelStoreUnpackPremultiplyAlpha","PixelStoreUnpackPremultiplyAlpha2","UNPACK_PREMULTIPLY_ALPHA_WEBGL","PixelStoreUnpackFlipY","PixelStoreUnpackFlipY2","UNPACK_FLIP_Y_WEBGL","FramebufferAttachment2","ColorAttachment","ColorAttachment2","setDirty","DepthAttachment","DepthAttachment2","hasDepth","colorAttachment","DepthMode","ReadOnly","ReadWrite","disabled","StencilMode","depthFail","ColorMode","blendFunction","Replace","unblended","alphaBlended","CullFaceMode","backCCW","stencilTest","depthTest","cullFaceSide","MAX_TEXTURE_MAX_ANISOTROPY_EXT","extTextureHalfFloat","extRenderToTextureHalfFloat","extTimerQuery","storageFormat","rbo","setCullFace","cullFaceMode","setDepthMode","depthMode","setStencilMode","stencilMode","setColorMode","colorMode","SourceCache","SourceCache2","_sourceLoaded","_paused","reload","_sourceErrored","_source","_tiles","_unloadTile","_timers","_cacheTimers","_maxTileCacheSize","_loadedParentTiles","_coveredTiles","shouldReload","_shouldReloadOnResume","_loadTile","_abortTile","getIds","compareTileId","getRenderableIds","symbolLayer","renderables","_isIdRenderable","a_","b_","rotatedA","rotatedB","hasRenderableParent","parentTile","findLoadedParent","_reloadTile","_tileLoaded","previousState","refreshedUponExpiration","_setTileReloadTimer","_backfillDEM","borderId","getTileByID","fillBorder","tile2","borderTile2","borderId2","_retainLoadedChildren","idealTiles","maxCoveringZoom","retain","topmostLoadedID","parentID","minCoveringZoom","parentTileID","_getLoadedTile","updateCacheSize","approxTilesInView","viewDependentMaxSize","handleWrapJump","worldDifference","_prevLng","wrapDelta","tile$1","idealTileIDs","used","getVisibleUnwrappedCoordinates","unwrapped","coveringTiles","coveringZoomLevel","maxOverzooming","maxUnderzooming","_updateRetainedTiles","isRasterType","parentsForFading","fadingTiles","_addTile","retainedId","tileID$1","_fadeDuration","_removeTile","_updateLoadedParentTileCache","releaseSymbolFadeTiles","missingTiles","childCoord","childTile","parentWasRequested","tileKey","currentId","pointQueryGeometry","tileResults","cameraPointQueryGeometry","getCameraQueryGeometry","pointCoordinate","tileSpaceBounds","tileSpaceQueryGeometry","tileSpaceCameraQueryGeometry","getVisibleCoordinates","posMatrix","reloadTilesForDependencies","aWrap","bWrap","WebWorker","PRELOAD_POOL_ID","WorkerPool","workerCount","numActive","isPreloaded","globalWorkerPool","availableLogicalProcessors","getGlobalWorkerPool","deref","derefLayers","setStyle","setFilter","setGeoJSONSourceData","setLayerZoomRange","setLayerProperty","setCenter","setZoom","setBearing","setPitch","setSprite","setGlyphs","commands","sourcesRemoved","updateSource","canUpdateGeoJSON","diffLayerPropertyChanges","pluckId","indexById","diffStyles","removeOrAddSourceCommands","diffSources","beforeLayers","beforeLayer","afterLayer","insertBeforeLayerId","beforeOrder","afterOrder","beforeIndex","afterIndex","tracker","diffLayers","PathInterpolator","points_","padding_","_distances","paddedLength","distOfCurrentIdx","distToTarget","idxOfPrevPoint","distOfPrevIdx","segmentLength","segmentT","boxCells","circleCells","xCellCount","yCellCount","circleKeys","boxKeys","boxUid","circleUid","getLabelPlaneMatrix","pitchWithMap","rotateWithMap","pixelsToTileUnits2","labelPlaneMatrix","getGlCoordMatrix","glCoordMatrix","xyTransformMat4","signedDistanceFromCamera","getPerspectiveRatio","anchorPos","clippingBuffer","updateLineLabels","partiallyEvaluatedSize","placedSymbols","useVertical","hideGlyphs","cameraToAnchorDistance","perspectiveRatio","pitchScaledFontSize","tileAnchorPoint","projectionCache","placeUnflipped","placeGlyphsAlongLine","notEnoughRoom","needsFlipping","placeFirstAndLastGlyph","glyphEndIndex","lineEndIndex","firstGlyphOffset","lastGlyphOffset","firstPlacedGlyph","placeGlyphAlongLine","lastPlacedGlyph","requiresOrientationChange","firstPoint","lastPoint","placedGlyphs","firstAndLastGlyph","orientationChange","glyphIndex","tileVertexIndex","tileSegmentEnd","projectedVertex","projectTruncatedLineSegment","orientationChange$1","singleGlyph","previousTilePoint","currentTilePoint","previousProjectedPoint","minimumLength","projectionMatrix","projectedUnitVertex","projectedUnitSegment","anchorSegment","combinedOffsetX","distanceToPrev","currentSegmentDistance","absOffsetX","pathVertices","previousLineVertexIndex","segmentInterpolationT","prevToCurrent","segmentAngle","keysLength","_insertBoxCell","insertCircle","_insertCircleCell","_query","hitTest","queryArgs","_queryCircle","_queryCellCircle","hitTestCircle","boxCell","circleCell","_circleAndRectCollide","_circlesCollide","_convertToXCellCoord","_convertToYCellCoord","bothRadii","circleX","circleY","halfRectWidth","distX","halfRectHeight","distY","hiddenGlyphAttributes","viewportPadding","CollisionIndex","ignoredGrid","pitchfactor","_pitch","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","pixelValue","placeCollisionBox","collisionBox2","allowOverlap","textPixelRatio","collisionGroupPredicate","projectedPoint","projectAndGetPerspectiveRatio","tileToViewport","tlX","tlY","brX","brY","isInsideGrid","offscreen","isOffscreen","placeCollisionCircles","labelToScreenMatrix","showCollisionCircles","circlePixelDiameter","textPixelPadding","placedCollisionCircles","tileUnitAnchorPoint","screenAnchorPoint","labelPlaneFontScale","labelPlaneAnchorPoint","collisionDetected","inGrid","entirelyOffscreen","screenPlaneMin","screenPlaneMax","projectedPath","circleDist","screenSpacePath","minPoint","maxPoint","numCircles","circlePosition","centerX","centerY","queryRenderedSymbols","viewportQueryGeometry","gridPoint","seenFeatures","featureKey","bucketInstanceId","insertCollisionBox","ignorePlacement","collisionGroupID","insertCollisionCircles","collisionCircles","getViewportMatrix","OpacityState","prevState","placed","skipFade","JointOpacityState","placedText","placedIcon","JointPlacement","CollisionCircleArray","invProjMatrix","viewportMatrix","RetainedQueryData","CollisionGroups","crossSourceCollisions","maxGroupID","collisionGroups","calculateVariableLayoutShift","shiftVariableCollisionBox","rotatedOffset","ID","nextGroupID","Placement","prevPlacement","collisionIndex","placements","opacities","variableOffsets","stale","commitTime","retainedQueryData","collisionCircleArrays","placedOrientations","updateCollisionVertices","notUsed","getBucketParts","sortAcrossTiles","symbolBucket","bucketFeatureIndex","pixelsToTiles","textLabelPlaneMatrix","glMatrix","partiallyEvaluatedTextSize","collisionGroup","attemptAnchorPlacement","textAllowOverlap","symbolInstance","prevAnchor","placedGlyphBoxes","markUsedJustification","markUsedOrientation","placeLayerBucketPart","bucketPart","seenCrossTileIDs","textOptional","iconOptional","iconAllowOverlap","alwaysShowText","alwaysShowIcon","placeSymbol","placeText","placeIcon","placedVerticalText","placedGlyphCircles","placedIconBoxes","updatePreviousOrientationIfNotPlaced","isPlaced","previousOrientation","prevPlacedOrientation","placeTextForPlacementModes","placeHorizontalFn","placeVerticalFn","prevOffsets","placeBoxForVariableAnchors","collisionTextBox","collisionIconBox","variableIconBox","placedBox","placementAttempts","wasPlaced","prevOrientation","prevOffset","placeBox","placedFeature","placeIconFeature","shiftedIconBox","iconWithoutText","textWithoutIcon","circleArray2","symbolIndexes","symbolIndex","circleArray","placedAnchor","autoIndex","commit","zoomAtLastRecencyCheck","placementChanged","prevZoomAdjustment","zoomAdjustment","symbolFadeChange","prevOpacities","prevOrientations","jointPlacement","prevOpacity","crossTileID$1","prevOpacity$1","jointOpacity","crossTileID$2","crossTileID$3","lastPlacementChangeTime","updateLayerOpacities","updateBucketOpacities","duplicateOpacityState","variablePlacement","defaultOpacityState","addOpacities","isDuplicate","opacityState","horizontalHidden","verticalHidden","packedOpacity","packOpacity","horizontalOpacity","PACKED_HIDDEN_OPACITY","verticalOpacity","symbolHidden","packedOpacity$1","useHorizontal","horizontalOpacity$1","verticalOpacity$1","variableOffset","verticalIconUsed","hasTransitions","stillRecent","durationAdjustment","setStale","shift25","shift24","shift17","shift16","shift9","shift8","shift1","targetBit","opacityBits","LayerPlacement","_sortAcrossTiles","_currentTileIndex","_currentPartIndex","_seenCrossTileIDs","_bucketParts","continuePlacement","shouldPausePlacement","bucketParts","PauseablePlacement","forceFullPlacement","_currentPlacementIndex","_forceFullPlacement","_showCollisionBoxes","_done","isDone","layerTiles","elapsedTime","placementZoom","_inProgressLayer","roundingFactor","TileLayerIndex","indexedSymbolInstances","getScaledCoordinates","childTileID","findMatches","newTileID","zoomCrossTileIDs","indexedInstances","scaledSymbolCoord","thisTileSymbol","CrossTileIDs","maxCrossTileID","generate","CrossTileSymbolLayerIndex","usedCrossTileIDs","zoomIndexes","newZoomIndex","addBucket","crossTileIDs","removeBucketCrossTileIDs","childIndex","parentIndex","symbolInstance$1","removedBucket","removeStaleBuckets","currentIDs","tilesChanged","CrossTileSymbolIndex","maxBucketInstanceId","bucketsInCurrentPlacement","symbolBucketsChanged","currentBucketIDs","pruneUnusedLayers","usedLayers","usedLayerMap","usedLayer","supportedDiffOperations","ignoredDiffOperations","styleKey","emptyStyle","Style2","glyphManager","lineAtlas","crossTileSymbolIndex","_serializedLayers","_order","_availableImages","_resetUpdates","_rtlTextPluginCallback","_validateLayer","loadURL","_request","_load","loadJSON","loadEmpty","stylesheet","_loadSprite","_serializeLayers","_spriteRequest","baseURL","jsonRequest","maybeComplete","imageRequest","loadSprite","_updatedSources","_checkLoaded","_changed","updatedIds","_updatedLayers","_removedLayers","_updateWorkerLayers","_reloadSource","_clearSource","_updateTilesForChangedImages","_updatedPaintProps","sourcesUsedBefore","sourceId$1","sourceCache$1","changedImages","_changedImages","unimplementedOps","_afterImageUpdated","isSourceLoaded","_layerOrderChanged","_updateLayer","moveLayer","getFilter","_flattenAndSortRenderedFeatures","sourceResults","isLayer3D","layerId2","features3D","layerFeatures","layerId$1","topmost3D","layerFeatures$1","featureWrapper$1","includedSources","renderedSymbols","bucketQueryData","queryData","bucketSymbols","layerSymbols","sortedA","loop$1","layerName2","dataTiles","dataID","addSourceType","SourceType","getSourceType","setSourceType","workerSourceURL","_update","_remove","_updateSources","_generateCollisionBoxes","_updatePlacement","placementCommitted","layerBucketsChanged","pauseablePlacement","layerID$1","styleLayer$1","_releaseSymbolFadeTiles","getResource","posAttributes","prelude","backgroundPattern","clippingMask","heatmapTexture","collisionBox","collisionCircle","fillOutline","fillOutlinePattern","fillPattern","fillExtrusion","fillExtrusionPattern","hillshadePrepare","lineGradient","linePattern","lineSDF","symbolIcon","symbolSDF","symbolTextAndIcon","fragmentSource","vertexSource","fragmentUniforms","vertexUniforms","fragmentPragmas","attrType","unpackType","VertexArrayObject","boundProgram","boundLayoutVertexBuffer","boundPaintVertexBuffers","boundIndexBuffer","boundVertexOffset","boundDynamicVertexBuffer","getTokenizedAttributesAndUniforms","paintVertexBuffers","dynamicVertexBuffer","dynamicVertexBuffer2","paintBuffersDiffer","isFreshBindRequired","boundDynamicVertexBuffer2","freshBind","numPrevAttributes","numNextAttributes","currentNumAttributes","vertexBuffer$1","Program$1","configuration","fixedUniforms","showOverdrawInspector","staticAttrInfo","dynamicAttrInfo","allAttrInfo","staticUniformsInfo","dynamicUniformsInfo","allUniformsInfo","fragmentShader","failedToCreate","vertexShader","it","uniform$1","uniformLocation","patternUniformValues","tileRatio","numTiles","tileSizeAtNearestZoom","pixelX","pixelY","u_image","u_texsize","u_scale","u_fade","u_pixel_coord_upper","u_pixel_coord_lower","uniformValues","dynamicLayoutBuffer","dynamicLayoutBuffer2","primitiveSize","LINE_STRIP","fillExtrusionUniformValues","shouldUseVerticalGradient","_lp","lightPos","lightMat","lightColor","u_matrix","u_lightpos","u_lightintensity","u_lightcolor","u_vertical_gradient","u_opacity","fillExtrusionPatternUniformValues","u_height_factor","fillUniformValues","fillPatternUniformValues","fillOutlineUniformValues","drawingBufferSize","u_world","fillOutlinePatternUniformValues","circleUniformValues","extrudeScale","pixelsToGLUnits","u_camera_to_center_distance","u_scale_with_map","translatePosMatrix","u_pitch_with_map","u_device_pixel_ratio","u_extrude_scale","collisionUniformValues","u_pixels_to_tile_units","u_overscale_factor","collisionCircleUniformValues","invMatrix","u_inv_matrix","u_viewport_size","debugUniformValues","u_color","u_overlay","u_overlay_scale","clippingMaskUniformValues","heatmapUniformValues","u_intensity","getTileLatRange","lineUniformValues","calculateMatrix","u_ratio","u_units_to_pixels","lineGradientUniformValues","u_image_height","linePatternUniformValues","tileZoomRatio","calculateTileRatio","lineSDFUniformValues","posA","posB","widthA","widthB","u_patternscale_a","u_patternscale_b","u_sdfgamma","u_tex_y_a","u_tex_y_b","u_mix","rasterUniformValues","parentTL","parentScaleBy","fade","u_tl_parent","u_scale_parent","u_buffer_scale","u_fade_t","u_image0","u_image1","u_brightness_low","u_brightness_high","u_saturation_factor","u_contrast_factor","u_spin_weights","spinWeights","quadTriangles","symbolIconUniformValues","rotateInShader","texSize","u_is_size_zoom_constant","u_is_size_feature_constant","u_size_t","u_size","u_pitch","u_rotate_symbol","u_aspect_ratio","u_fade_change","u_label_plane_matrix","u_coord_matrix","u_is_text","u_texture","symbolSDFUniformValues","isHalo","u_gamma_scale","u_is_halo","symbolTextAndIconUniformValues","texSizeSDF","texSizeIcon","u_texsize_icon","u_texture_icon","backgroundUniformValues","backgroundPatternUniformValues","imagePosA","imagePosB","u_pattern_tl_a","u_pattern_br_a","u_pattern_tl_b","u_pattern_br_b","u_pattern_size_a","u_pattern_size_b","u_scale_a","u_scale_b","u_tile_units_to_pixels","bgPatternUniformValues","programUniforms","u_color_ramp","u_latrange","u_light","u_shadow","u_highlight","u_accent","u_dimension","u_zoom","u_unpack","drawCollisionDebug","tileBatches","circleCount","circleOffset","invTransform","colorModeForRenderPass","circleProgram","vertexData","circleIdx","collision","quadCount","triCount","createQuadTriangles","vertexBuffer","batch$1","identityMat4","calculateVariableRenderShift","renderTextSize","updateVariableAnchorsForBucket","tileScale","updateTextFitIcon","dynamicTextLayoutVertexArray","dynamicIconLayoutVertexArray","placedTextShifts","skipOrientation","tileAnchor","projectedAnchor","shiftedAnchor","placedIcons","shift$1","g$1","getSymbolProgramName","drawLayerSymbols","rotationAlignment","pitchAlignment","hasSortKey","depthModeForSublayer","tileRenderState","programConfiguration","atlasInterpolation","atlasTextureIcon","atlasInterpolationIcon","zoomDependentSize","rotating","iconScaled","hasVariableAnchors","uLabelPlaneMatrix","uglCoordMatrix","hasHalo","segmentState","state$1","TEXTURE1","uniformValues$1","drawSymbolElements","drawFillTiles","isOutline","programName","tileMatrix","stencilModeForClipping","drawExtrusionTiles","renderHillshade","accent","moving","hillshadeUniformValues","rasterBoundsBuffer","quadTriangleIndexBuffer","rasterBoundsSegments","prepareHillshade","textureStride","pixelData","renderTexture","hillshadeUniformPrepareValues","getFadeValues","sinceTile","sinceParent","idealZ","fadeIn","childOpacity","topColor","btmColor","leftColor","rightColor","centerColor","drawDebugPadding","padding2","drawHorizontalLine","drawVerticalLine","centerPoint","drawDebugSSRect","drawCrosshair","drawDebugTile","emptyTexture","debugBuffer","tileBorderIndexBuffer","debugSegments","tileRawData","tileByteLength","tileSizeKb","tileIdText","initDebugOverlayCanvas","debugOverlayCanvas","ctx2d","shadowColor","shadowBlur","strokeText","debugOverlayTexture","drawTextToOverlay","draw$1","renderPass","pixelToTileScale","updateVariableAnchors","segmentsRenderStates","segmentsState","programConfiguration$1","program$1","layoutVertexBuffer$1","indexBuffer$1","internalFormat","HALF_FLOAT_OES","bindTextureToFramebuffer","textureUnit","colorRampUnit","heatmapTextureUniformValues","viewportBuffer","viewportSegments","renderTextureToMap","programId","firstTile","programChanged","layerGradient","gradientTexture","textureResolution","potentialOverzoom","maxTextureCoverage","opaquePassEnabledForLayer","depthMode$1","depthRangeFor3D","stencilModeFor3D","tileIDs","stencilConfigForOverlap","stencilModes","minTileZ","textureFilter","isPatternMissing","tileExtentBuffer","tileExtentSegments","setCustomLayerDefaults","customLayerMatrix","setBaseState","Painter","_tileTextures","setup","numSublayers","depthEpsilon","gpuTimers","tileExtentArray","debugArray","rasterBoundsArray","tileLineStripIndices","quadTriangleIndices","stencilClearMode","nextStencilID","currentStencilSource","_renderTileClippingMasks","_tileClippingMaskIDs","REPLACE","NOTEQUAL","EQUAL","stencilValues","zToStencilMode","GEQUAL","_showOverdrawInspector","CONSTANT_COLOR","currentLayer","opaquePassCutoff","selectedSource","sourceCache$4","coordsAscending","coordsDescending","coordsDescendingSymbol","renderLayer","sourceCache$2","coords$1","layer$2","sourceCache$3","coords$2","showTileBoundaries","showPadding","gpuTimingStart","gpuTimingEnd","gpuTiming","layerTimer","TIME_ELAPSED_EXT","collectGpuTimers","currentLayerTimers","queryGpuTimers","gpuTimer","QUERY_RESULT_EXT","inViewportPixelUnitsUnits","translatedMatrix","textures","Frustum","planes_","planes","fromInvProjectionMatrix","invProj","frustumCoords","frustumPlanes","Aabb","min_","max_","quadrant","qMin","qMax","distanceX","distanceY","aabbPoints","fullyInside","pointsInside","projMin","projMax","EdgeInsets","minPitch","maxPitch","renderWorldCopies","maxValidLatitude","_renderWorldCopies","_minZoom","_maxZoom","_minPitch","_maxPitch","setMaxBounds","_center","_fov","_unmodified","_edgeInsets","_posMatrixCache","_alignedPosMatrixCache","centerOffset","unmodified","clone2","_calcMatrices","_zoom","zoomFraction","_constrain","isPaddingEqual","interpolatePadding","utl","utr","ubl","ubr","actualZ","centerCoord","cameraFrustum","newRootTile","aabb","fullyVisible","intersectResult","longestDim","distToSplit","distanceSq","childX","childY","unproject","setLocationAtPoint","locationCoordinate","newCenter","coordinateLocation","locationPoint","coordinatePoint","pointLocation","coord0","coord1","pixelMatrixInverse","pixelMatrix","getMaxBounds","lngRange","unwrappedTileID","aligned","posMatrixKey","unwrappedX","alignedProjMatrix","projMatrix","mercatorMatrix","_constraining","halfFov","groundAngle","fovAboveCenter","topHalfSurfaceDistance","farZ","nearZ","angleCos","angleSin","alignedM","getCameraPoint","Hash","hashName","pending","timerId","later","_hashName","_updateHash","_updateHashUnthrottled","addTo","_onHashChange","getHashString","mapFeedback","getZoom","getBearing","getPitch","_getCurrentHash","keyval","dragRotate","isEnabled","touchZoomRotate","jumpTo","history","replaceState","SecurityError","defaultInertiaOptions","linearity","defaultPanInertiaOptions","deceleration","maxSpeed","defaultZoomInertiaOptions","defaultBearingInertiaOptions","defaultPitchInertiaOptions","HandlerInertia","extendDuration","easeOptions","calculateEasing","inertiaDuration","inertiaOptions","speed","_inertiaBuffer","settings","_drainInertiaBuffer","inertia","_onMoveEnd","panInertiaOptions","deltas","pinchAround","around","zoomDelta","bearingDelta","pitchDelta","panDelta","result$1","result$2","result$3","noMoveStart","MapMouseEvent","MapMouseEvent2","getCanvasContainer","_defaultPrevented","MapTouchEvent","MapTouchEvent2","lngLats","MapWheelEvent","MapWheelEvent2","MapEventHandler","_clickTolerance","clickTolerance","_mousedownPos","wheel","_firePreventable","dblclick","mouseover","mouseout","touchcancel","mapEvent","BlockableMapEventHandler","_delayContextMenu","_contextMenuEvent","contextmenu","BoxZoomHandler","getContainer","indexTouches","_enabled","_startPos","_lastPos","mousemoveWindow","_fireEvent","mouseupWindow","cameraAnimation","fitScreenCoordinates","keydown","SingleTapRecognizer","numTouches","mapTouches","timeStamp","newTouches","prevPos","TapRecognizer","singleTap","numTaps","lastTime","lastTap","tap","soonEnough","TapZoomHandler","_zoomIn","_zoomOut","zoomInPoint","zoomOutPoint","easeTo","BUTTONS_FLAGS","MouseHandler","_moved","_lastPoint","_eventButton","_correctButton","_move","eventButton","buttonStillPressed","MousePanHandler","MouseHandler2","MousePanHandler2","MouseRotateHandler","MouseRotateHandler2","MousePitchHandler","MousePitchHandler2","TouchPanHandler","_minTouches","_touches","_sum","_calculateTransform","touchPointSum","touchDeltaSum","touchDeltaCount","prevPoint","TwoTouchHandler","getTouchById","getZoomDelta","lastDistance","_firstTwoTouches","_start","_aroundCenter","TouchZoomHandler","TwoTouchHandler2","TouchZoomHandler2","_distance","_startDistance","getBearingDelta","TouchRotateHandler","TouchRotateHandler2","_minDiameter","_startVector","_vector","lastVector","_isBelowThreshold","bearingDeltaSinceStart","TouchPitchHandler","TouchPitchHandler2","_valid","_firstMove","_lastPoints","vectorA","vectorB","gestureBeginsVertically","movedA","movedB","isSameDirection","panStep","bearingStep","pitchStep","KeyboardHandler","stepOptions","_panStep","_bearingStep","_pitchStep","_rotationDisabled","easeOut","zoomDir","bearingDir","pitchDir","xDir","yDir","easeId","disableRotation","enableRotation","wheelZoomDelta","wheelZoomRate","ScrollZoomHandler","_handler","_delta","_defaultZoomRate","_wheelZoomRate","setZoomRate","zoomRate","setWheelZoomRate","wheelZoomRate2","_finishTimeout","isZooming","_zooming","WheelEvent","DOM_DELTA_LINE","timeDelta","_lastWheelEventTime","_type","_lastValue","_timeout","_onTimeout","_lastWheelEvent","_frameId","_around","_aroundPoint","_triggerRenderFrame","renderFrame","_targetZoom","_startZoom","_easing","_smoothOutEasing","targetZoom","startZoom","noInertia","needsRenderFrame","_prevEase","DoubleClickZoomHandler","clickZoom","TapZoom","_clickZoom","_tapZoom","ClickZoomHandler","TapDragZoomHandler","_tap","_swipePoint","_swipeTouch","_tapTime","newSwipePoint","DragPanHandler","mousePan","touchPan","_mousePan","_touchPan","_inertiaOptions","DragRotateHandler","mouseRotate","mousePitch","_pitchWithRotate","pitchWithRotate","_mouseRotate","_mousePitch","TouchZoomRotateHandler","touchZoom","touchRotate","tapDragZoom","_touchZoom","_touchRotate","_tapDragZoom","isMoving","RenderFrameEvent","RenderFrameEvent2","hasChange","HandlerManager","_handlers","_handlersById","_changes","_inertia","_bearingSnap","bearingSnap","_previousActiveHandlers","_eventsInProgress","_addDefaultHandlers","listenerOptions","handleWindowEvent","boxZoom","tapZoom","doubleClickZoom","touchPitch","dragPan","keyboard","interactive","handlerName","allowed","allowEndAnimation","_updatingCamera","_fireEvents","isRotating","_blockedByActive","activeHandlers","myName","_getMapTouches","inputEvent","mergedHandlerResult","eventsInProgress","mergeHandlerResult","deactivatedHandlers","_stop","handlerResult","_applyChanges","combinedEventsInProgress","combinedDeactivatedHandlers","_updateMapTransform","combinedResult","newEventsInProgress","wasMoving","nowMoving","startEvents","eventName$1","originalEvent$1","originalEndEvent","endEvents","eventName$2","ref$2","originalEvent$2","name$1","stillMoving","inertialEase","shouldSnapToNorth","resetNorth","_requestFrame","_renderTaskQueue","Camera","Camera2","_moving","panBy","panTo","zoomIn","zoomOut","getPadding","setPadding","rotateTo","resetNorthPitch","snapToNorth","cameraForBounds","_cameraForBoxAndBearing","defaultPadding","edgePadding","p0world","p1world","p0rotated","p1rotated","upperRight","lowerLeft","paddingOffsetX","paddingOffsetY","rotatedPaddingOffset","offsetAtFinalZoom","_fitInternal","calculatedOptions","flyTo","zoomChanged","bearingChanged","pitchChanged","essential","startBearing","startPitch","startPadding","_normalizeBearing","offsetAsPoint","pointAtOffset","locationAtOffset","_normalizeCenter","aroundPoint","finalScale","currently","_rotating","pitching","_pitching","_padding","_easeId","_prepareEase","_ease","speedup","_fireMoveEvents","interruptingEaseId","_afterEase","wasZooming","wasRotating","wasPitching","coercedOptions","wMax","screenSpeed","maxDuration","isEasing","_easeFrameId","allowGestures","_cancelRenderFrame","_onEaseFrame","_onEaseEnd","onEaseEnd","_easeStart","_easeOptions","_requestRenderFrame","_renderFrameCallback","currentBearing","AttributionControl","getDefaultPosition","_compactButton","_toggleAttribution","_setElementTitle","_innerContainer","_updateAttributions","_updateEditLink","_updateData","_updateCompact","_attribHTML","_getUIString","editLink","_editLink","styleOwner","styleId","_hash","rel","attributions","customAttribution","owner","attribHTML","offsetWidth","LogoControl","_updateLogo","_logoRequired","mapbox_logo","containerChildren","TaskQueue","_queue","_cleared","_currentlyRunning","running","run","HTMLElement2","defaultMaxPitch","defaultOptions$1","attributionControl","trackResize","refreshExpiredTiles","maxTileCacheSize","Map2","Map3","_interactive","_failIfMajorPerformanceCaveat","_preserveDrawingBuffer","_antialias","_trackResize","_crossSourceCollisions","_crossFadingFactor","_controls","_mapId","_locale","maxBounds","_setupContainer","_setupPainter","_onWindowOnline","_onWindowResize","fitBoundsOptions","_localIdeographFontFamily","addControl","logoPosition","controlElement","positionContainer","_controlPositions","removeControl","hasControl","_containerDimensions","_resizeCanvas","fireMoving","setMinZoom","getMinZoom","setMaxZoom","getMaxZoom","setMinPitch","getMinPitch","setMaxPitch","getMaxPitch","getRenderWorldCopies","setRenderWorldCopies","_createDelegatedListener","mousein","delegates","mousein$1","delegatedListener","_delegatedListeners","delegatedListeners","removeDelegatedListener","_diffStyle","_updateStyle","_lazyInitEmptyStyle","_updateDiff","getStyle","isStyleLoaded","areTilesLoaded","width$1","height$1","data$1","existingImage","loadImage","beforeId","_canvasContainer","_detectMissingCSS","_missingCSSCanary","canvasContainer","_contextLost","_contextRestored","controlContainer","_controlContainer","positionName","_onMapScroll","_frame","scrollTop","scrollLeft","_styleDirty","_sourcesDirty","updateStyle","paintStartTimeStamp","frameStartTime","crossFading","_placementDirty","renderCPUTime","renderGPUTime","frameLayerQueries","renderedLayerTimes","layerTimes","somethingDirty","_repaint","_fullyLoaded","loseContext","_showTileBoundaries","_showPadding","_vertices","_setCacheLimits","defaultOptions$2","showCompass","showZoom","visualizePitch","NavigationControl","_zoomInButton","_createButton","_zoomOutButton","_compass","_compassIcon","_updateZoomButtons","isMax","isMin","_rotateCompassArrow","_setButtonTitle","MouseRotateWrapper","smartWrap","priorPos","offTemp","targetTouches","anchorTranslate","applyAnchorClass","supportsGeolocation","Marker","Marker2","legacyOptions","_anchor","_scale","_draggable","draggable","_isDragging","_rotation","_rotationAlignment","_pitchAlignment","_element","_defaultMarker","createNS","defaultHeight","defaultWidth","markerLarge","page1","ellipse","background2","bgPath","borderPath","maki","circleContainer","circle1","_popup","setDraggable","_onMapClick","_addDragHandler","_onUp","_onMove","getLngLat","_lngLat","setLngLat","_pos","setPopup","_onKeyPress","_originalTabIndex","linearOffset","markerHeight","legacyCode","charCode","togglePopup","targetElement","getPopup","getOffset","setOffset","_pointerdownPos","_positionDelta","shouldBeDraggable","isDraggable","setRotation","getRotation","setRotationAlignment","getRotationAlignment","setPitchAlignment","getPitchAlignment","defaultOptions$3","positionOptions","enableHighAccuracy","maximumAge","trackUserLocation","showAccuracyCircle","showUserLocation","numberOfWatches","noTimeout","GeolocateControl","GeolocateControl2","_setupUI","permissions","geolocation","_geolocationWatchID","clearWatch","_userLocationDotMarker","_accuracyCircleMarker","_onZoom","_isOutOfMapMaxBounds","_setErrorState","_watchState","_geolocateButton","_onSuccess","_updateMarker","_finish","_lastKnownPosition","_updateCamera","_dotElement","accuracy","geolocateSource","_accuracy","_updateCircleRadius","metersPerPixel","_circleElement","_onError","_clearWatch","_timeoutId","title$1","_setup","fromResize","watchPosition","getCurrentPosition","defaultOptions$4","ScaleControl","updateScale","maxMeters","maxFeet","pow10","getDecimalRoundNum","setUnit","FullscreenControl","_fullscreen","_fullscreenchange","_checkFullscreenSupport","_changeIcon","fullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","webkitFullscreenEnabled","_fullscreenButton","_updateTitle","_onClickFullscreen","_getTitle","_isFullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","exitFullscreen","mozCancelFullScreen","msExitFullscreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","msRequestFullscreen","webkitRequestFullscreen","defaultOptions$5","closeButton","closeOnClick","focusAfterOpen","focusQuerySelector","Popup","Popup2","_onClose","closeOnMove","_focusFirstElement","_trackPointer","_onMouseMove","_onMouseUp","_content","_onDrag","trackPointer","setText","setDOMContent","setHTML","createDocumentFragment","getMaxWidth","setMaxWidth","htmlNode","hasChildNodes","_createCloseButton","addClassName","removeClassName","toggleClassName","_closeButton","hasPosition","_tip","normalizeOffset","anchorComponents","offsetHeight","offsetedPos","firstFocusable","cornerOffset","convertedOffset","prewarm","clearPrewarmedResources","baseApiUrl","maxParallelImageRequests","numRequests","clearStorage","require_layers","MapboxLayer","idSource","idLayer","convertOpts","needsNewImage","needsNewSource","updateLayer","needsNewLayer","lookupBelow","_below","findFollowingMapboxLayerId","convertSourceOpts","mapLayers","convertedOpts","mapboxLayer","require_mapbox","createMapboxLayer","Mapbox","createFramework","styleObj","layerList","wheeling","updateMap","createMap","getStyleObj","convertCenter","rejectOnError","initFx","fillBelowLookup","updateLayout","resolveOnRender","hasTraceAtTop","getBelow","val2list","traceType2orderIndex","choroplethmapbox","densitymapbox","scattermapbox","convertStyleVal","traceObj","calcDataSorted","idLoop","updateFramework","onRender","emitUpdate","viewNow","getView","getViewEditsWithDerived","optsNow","getViewEdits","onClickInPanFn","oldDragOptions","onClickInPanHandler","pxpy","mapCenter","_derived","require_layout_defaults17","handleLayerDefaults","layerIn","layerOut","typeDflt","mustBeRasterLayer","require_mapbox2","MAPBOX","deprecationWarning","firstPlot","isStyleRequireAccessToken","mapboxIds","tokensUseful","tokensListed","hasOneSetMapboxStyle","wontWork","findAccessToken","oldMapboxKeys","oldMapboxKey","subplotDiv","offsetParent","logo","attributionGroup","attributionText","multilineAttributions","require_scattermapbox","require_scattermapbox2","require_attributes55","choroplethAttrs","require_defaults51","require_convert12","convertOnSelect","opacitySetting","_opts","mo2","lineColorFn","lineWidthFn","require_plot24","ChoroplethMapbox","updateOnSelect","_removeLayers","_addLayers","choroplethMapbox","require_choroplethmapbox","hr_name","require_choroplethmapbox2","require_attributes56","scatterMapboxAttrs","require_defaults52","require_calc33","require_convert13","hasArrayRadius","scl01","heatmapColor","zExp","require_plot25","DensityMapbox","densityMapbox","require_hover19","scatterMapboxHoverPoints","require_event_data12","require_densitymapbox","require_densitymapbox2","require_arcgis_sat_hybrid","ortoEsri","ortoInstaMaps","ortoICGC","openmaptiles","require_arcgis_sat","require_constants27","arcgisSatHybrid","cartoPositron","cartoDarkmatter","cartoVoyager","stylesMap","basic","streets","outdoors","dark","styleValuesMap","require_layout_attributes20","require_attributes57","mapAttrs","mapLayoutAtributes","require_constants28","require_defaults53","require_format_labels6","require_convert_text_opts2","require_convert14","require_plot26","ScatterMap","scatterMap","require_hover20","require_event_data13","require_select10","require_maplibre_gl","maplibregl","_dependencies","moduleFactory","sharedModule","setWorkerUrl","t5","t6","throw","SuppressedError","VideoFrame","copyTo","n3","l3","MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME","MAX_TILE_CACHE_ZOOM_LEVELS","REGISTERED_PROTOCOLS","WORKER_URL","O","sendAsync","Accept","e4","sky","terrain","redFactor","blueFactor","greenFactor","baseShift","cooperative","exaggeration","globe","K2","J","et","ot","xt","vt","wt","St","kt","Mt","It","zt","Pt","Ct","Vt","Et","Ft","Tt","$t","Dt","Lt","Ot","Rt","jt","Ut","padEnd","qt","Nt","Zt","Gt","Kt","overwriteGetter","t7","t8","n4","Xt","Ht","Yt","Jt","Wt","Qt","te","ae","oe","ue","ce","he","pe","fe","_isConstant","de","ye","me","xe","ve","we","Ae","ke","Me","Ie","ze","Pe","Ce","variableAnchorOffsetCollection","Be","Ve","Ee","Fe","Te","$e","Le","De","Oe","je","Re","Ue","qe","Ne","Ze","Ge","Ke","Xe","He","Ye","Je","We","Qe","nr","gr","vr","wr","Ar","Sr","pointOnLine","Mr","Ir","Pr","Cr","Br","Vr","Er","Fr","Tr","$r","Lr","Dr","Or","jr","n5","Rr","Ur","qr","Nr","Zr","Gr","Kr","Xr","Qr","Hr","Yr","Jr","Wr","rn","nn","sn","hn","pn","mn","yn","gn","xn","vn","bn","wn","An","Sn","Mn","zn","Bn","Cn","Pn","Vn","Tn","En","Fn","$n","Ln","Dn","On","jn","Rn","validateSpec","u3","Un","qn","Nn","Gn","Kn","Hn","Yn2","Jn","Wn","Qn","sourceName","ii","oi","li","ui","__spreadProps","__spreadValues","gi","Ai","Si","Mi","Ii","Pi","Ti","Ci","Ei","Bi","Vi","Fi","$i","Li","Di","Oi","ji","Ri","setMethods","Ui","qi","Ni","Gi","Zi","Ki","Yi","Xi","Hi","Ji","Wi","Qi","ss","os","us","ds","As","Ss","ks","Ms","S2","M2","I2","C3","Is","Ps","Cs","Bs","Vs","Es","Fs","Ts","$s","Ls","textAnchorOffsetStartIndex","textAnchorOffsetEndIndex","Ds","Os","js","Rs","Us","qs","Ns","Gs","Ks","Hs","Js","Ws","Qs","ia","oa","la","ga","Aa","Sa","Ma","Ia","Pa","Ca","Ba","Va","Fa","Ta","Ea","$a","La","Da","Oa","ja","Ra","Ua","qa","Wa","Ka","Na","Ha","Za","Ja","Ga","Xa","Ya","Qa","eo","no","oo","co","ho","po","fo","yo","go","xo","vo","wo","_o","Ao","So","ko","Mo","heatmapFbos","Io","zo","Po","Co","Bo","Vo","Eo","No","jo","Ro","To","Xo","Fo","Ko","qo","Lo","$o","Do","Oo","Zo","Ho","Wo","Go","Qo","Uo","Jo","Yo","ol","ll","vl","wl","_l","Al","Sl","kl","Ml","Il","centroidVertexArray","centroidVertexBuffer","Cl","Pl","Bl","Vl","El","h3","f3","Tl","Fl","$l","Ll","Dl","Ol","Rl","Ul","ql","mapbox_clip_start","mapbox_clip_end","Nl","Zl","Gl","Kl","Xl","Hl","Yl","Jl","Wl","Ql","eu","lu","au","ou","hu","pu","fu","yu","xu","vu","bu","wu","Au","Su","ku","Mu","Lu","Iu","Pu","Cu","Bu","Eu","Tu","textFitWidth","textFitHeight","$u","Du","Ou","ju","Uu","Ru","Yu","g3","l4","_3","g4","Wu","Ju","qu","Nu","Zu","Gu","Ku","Xu","Hu","Qu","uc","pc","hasVisibleVertices","textAnchorOffsets","gc","wc","_c","Ac","Sc","Mc","Ic","_methodToThrottle","Pc","Cc","Bc","Vc","Ec","Fc","Tc","$c","Lc","Dc","Rc","Oc","jc","Uc","MIN_SAFE_INTEGER","unpack","qc","Nc","Zc","Kc","Xc","Gc","Hc","Yc","Jc","Wc","Qc","th","eh","rh","lh","uh","C4","E3","F2","D3","O2","oh","hh","fh","aq","gh","wh","Ah","S3","M3","I3","z3","P3","B4","d4","R2","U2","N2","G2","H2","J2","W2","Q2","r5","Sh","Vu","isDoubleResolution","kh","Mh","numItems","_finished","Ih","Bh","zh","Ph","Ch","Vh","fullLoad","Eh","Fh","Th","$h","Lh","Dh","clearMetrics","getPerformanceMetrics","fullLoadTime","fps","percentDroppedFrames","totalFrames","resolveRejects","abortControllers","messageHandlers","subscription","unsubscribe","registerMessageHandler","transfer","completeTask","a$","aA","aB","aC","aD","aE","aF","aG","aH","aI","aJ","aK","aL","aM","aN","aO","aP","aQ","aR","aS","aT","aU","aV","aW","aX","aY","aZ","ad","aj","ak","bA","bB","bC","bD","bd","bf","bj","bk","bq","inFlightDependencies","fetching","fround","clusterProps","_createTree","_dataUpdateable","_pendingRequest","_pendingData","loadAndProcessGeoJSON","getData","dataDiff","removeAll","removeAllProperties","removeProperties","addOrUpdateProperties","externalWorkerSourceTypes","addProtocol","removeProtocol","_getDEMWorkerSource","_getWorkerSource","_syncRTLPluginState","_setImages","_getLayerIndex","_getAvailableImages","frameAsync","getImageCanvasContext","suppressClickInternal","boundingClientRect","resetRequestQueue","addThrottleControl","removeThrottleControl","abortController","supportImageRefresh","onSuccess","fetchPriority","setTransformRequest","_getImagesForIds","spriteData","_getAndCacheGlyphsPromise","glyphWidth","glyphHeight","glyphLeft","glyphTop","glyphAdvance","_createCanvas","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","setSky","getSky","calculateFogBlendOpacity","adjustAntiMeridian","getPixelRatio","reloadPromise","_afterTileLoadWorkerResponse","readImageNow","needsTerrainPrepare","_pendingLoads","setClusterOptions","finally","_syncState","clearRTLTextPlugin","_requestImport","lazyLoad","rtt","rttCoords","clearTextures","_dataHandler","_maxTileCacheZoomLevels","_didEmitContent","_updated","usedForTerrain","findLoadedSibling","_updateCoveredAndRetainedTiles","_updateLoadedSiblingTileCache","cancelPendingTileRequestsWhileZooming","_loadedSiblingTiles","overlapMode","isOccluded","getElevation","cachedAnchorPoint","anyProjectionOccluded","distanceFromAnchor","previousVertex","useSpecialProjectionForSymbols","projectTileCoordinates","mapProjection","pitchFactor","perspectiveRatioCutoff","_projectCollisionBox","allPointsOccluded","placeable","projectPathToScreenSpace","getPitchedTextCorrection","collisionBoxArrays","_getTerrainElevationFunc","translatePosition","translationText","translationIcon","D4","P4","occluded","storeCollisionData","getCircleRadiusCorrection","_symbolsByKey","getCrossTileIDsLists","_rtlPluginLoaded","_spritesImagesIds","_loadStyleRequest","_frameRequest","transformStyle","_createLayers","setTerrain","i5","_unloadSprite","_serializeByIds","_serializedAllLayers","_updateTilesForChangedGlyphs","_glyphsDidChange","_getOperationsToPerform","unimplemented","getLayersOrder","getTerrain","getGlyphsUrl","addSprite","removeSprite","getSprite","terrainDepth","terrainCoords","boundDynamicVertexBuffer3","u_ele_delta","u_fog_matrix","u_fog_color","u_fog_ground_blend","u_fog_ground_blend_opacity","u_horizon_color","u_horizon_fog_blend","terrainUniforms","u_depth","u_terrain","u_terrain_dim","u_terrain_matrix","u_terrain_unpack","u_terrain_exaggeration","TEXTURE2","TEXTURE3","Se","u_is_along_line","u_is_variable_anchor","u_translation","u_pitched_scale","u_pixel_extrude_scale","u_terrain_coords_id","u_sky_color","u_horizon","u_sky_horizon_blend","VERSION","HALF_FLOAT","RGBA16F","RGBA16F_EXT","RGB16F","RGB16F_EXT","STENCIL_BUFFER_BIT","getTerrainData","terrainData","getTerrainMesh","renderToTexture","getMeshFrameDelta","calculateFogMatrix","terrainFacilitator","renderTime","maybeDrawDepthAndCoords","prepareForRender","getHorizon","flatMap","modelViewProjectionMatrix","tilesAfterTime","getRenderableTiles","getCoordsTexture","coordsIndex","s6","overLimit","_elevation","_fogMatrixCache","minElevationForCurrentTile","elevation","invModelViewProjectionMatrix","tileDistanceToCamera","getMinMaxElevation","minElevation","l5","maxElevation","getCameraPosition","_pixelPerMeter","recalculateZoom","getElevationForLngLatZoom","pixelMatrix3D","calculateTileMatrix","alignedModelViewProjectionMatrix","fogMatrix","getConstrained","lngLatToCameraDepth","_removeHash","_ignoreContextMenu","_requestedCameraState","_tr","_moveStateManager","moveStateManager","_moveFunction","_activateOnStart","activateOnStart","assignEvents","endMove","dragStart","isValidStartEvent","startMove","dragMove","isValidMoveEvent","dragEnd","isValidEndEvent","getClickTolerance","_correctEvent","checkCorrectEvent","_firstTouch","_isOneFingerTouch","_isSameTouchEvent","bearingDegreesPerPixelMoved","pitchDegreesPerPixelMoved","_shouldBePrevented","cooperativeGestures","notifyGestureBlocked","_currentTouchCount","isBypassed","_tapPoint","_bypassKey","_destroyUI","gestureType","_getTransformForUpdate","_terrainMovement","_elevationFreeze","_applyUpdatedTransform","freezeElevation","calculateCameraOptionsFromTo","_prepareElevation","_updateElevation","_finalizeElevation","_elevationCenter","_elevationStart","_elevationTarget","getMinTileElevationForLngLatZoom","transformCameraUpdate","_elevateCameraIfInsideTerrain","queryTerrainElevation","_compact","_updateCompactMinimize","_renderableTilesKeys","_sourceTileCache","deltaZoom","destruct","freeRtt","getTerrainCoords","getSourceTile","qualityFactor","meshSize","_demMatrixCache","_coordsTextureSize","getDEMElevation","mercatorX","mercatorY","_getOverscaledTileIDFromLngLatZoom","_emptyDemTexture","_emptyDepthTexture","_emptyDemUnpack","_emptyDemMatrix","_fboDepthTexture","_fbo","_fboCoordsTexture","_coordsTexture","depthAtPoint","_mesh","_tileSize","_objects","_recentlyUsed","_stamp","_createObject","stamp","inUse","getObjectForId","useObject","stampObject","getOrCreateFreeObject","freeObject","freeAllObjects","_stacks","_prevType","_rttTiles","_renderableTiles","_renderableLayerIds","_coordsDescendingInv","_coordsDescendingInvStr","maplibreLogo","maxTileCacheZoomLevels","maxCanvasSize","touchmoveWindow","startMouse","moveMouse","startTouch","moveTouch","_flatPos","_subpixelPositioning","_updateOpacity","subpixelPositioning","setOpacity","opacityWhenCovered","_opacityTimeout","setSubpixelPositioning","_opacityWhenCovered","_opacity","CooperativeGesturesHandler","_onFullscreenChange","shadowRoot","_handleFullscreenChange","_exitFullscreen","_requestFullscreen","_prevCooperativeGesturesEnabled","_togglePseudoFullScreen","_finishSetupUI","_idleTriggered","_overridePixelRatio","_maxCanvasSize","_imageQueueHandle","_resizeObserver","_validateStyle","_getClampedPixelRatio","setPixelRatio","_saveDelegatedListener","_removeDelegatedListener","_terrainDataCallback","requestedAttributes","statusMessage","getCameraTargetElevation","TerrainControl","_toggleTerrain","_updateTerrainIcon","_terrainButton","TwoFingersTouchPitchHandler","TwoFingersTouchRotateHandler","TwoFingersTouchZoomHandler","TwoFingersTouchZoomRotateHandler","getMaxParallelImageRequests","getVersion","getWorkerCount","getWorkerUrl","importScriptInWorkers","setMaxParallelImageRequests","setWorkerCount","require_layers2","MapLayer","findFollowingMapLayerId","mapLayer","require_map2","createMapLayer","requestedIcons","choroplethmap","densitymap","scattermap","require_layout_defaults18","require_map3","MAP","mapIds","oldMapKeys","oldMapKey","require_scattermap","require_scattermap2","require_attributes58","require_defaults54","require_convert15","require_plot27","ChoroplethMap","choroplethMap","require_choroplethmap","require_choroplethmap2","require_attributes59","scatterMapAttrs","require_defaults55","require_calc34","require_convert16","require_plot28","DensityMap","densityMap","require_hover21","scatterMapHoverPoints","require_event_data14","require_densitymap","require_densitymap2","require_attributes60","valueformat","valuesuffix","arrowlen","hovercolor","require_defaults56","concentrationscalesDefaults","Out","hoverlabelDefault","nodeIn","nodeOut","coerceNode","defaultNodePalette","linkIn","linkOut","coerceLink","dfltArrangement","darkBG","linkColor","makeDefaultHoverColor","_linkColor","require_scc","adjList","lowValue","scc","sccLinks","sccAdjList","strongConnect","linkCount","allLinks","adjacencyList","require_calc35","tarjan","convertToD3Sankey","linkSpec","hasLinkColorArray","hasLinkHoverColorArray","hasLinkCustomdataArray","linkedNodes","componentCount","maxNodeId","nodeCount","groupLookup","nodeIndex","groupedLinks","concentrationscale","hasNodeColorArray","hasNodeCustomdataArray","childrenNodes","circular","nodeLen","circularityPresent","_nodes","_links","_groups","_groupLookup","require_d3_quadtree","_root","Quad","Quadtree","addAll","leaf_copy","treeProto","retainer","visitAfter","require_d3_collection","createObject","setObject","setMap","map$$1","Set2","entries2","set2","nest2","createResult","setResult","values3","require_d3_dispatch","Dispatch","typename","require_d3_timer","taskHead","taskTail","clockLast","clockNow","clockSkew","setFrame","clearNow","Timer","_call","restart","timerFlush","wake","sleep","nap","poke","require_d3_force","d3Quadtree","d3Collection","d3Dispatch","d3Timer","jiggle","nodeById","x$1","y$1","initialAngle","forceCenter","initialize","forceCollide","radii","strength","iterations","ri2","rj","forceLink","bias","link2","initializeStrength","initializeDistance","forceManyBody","distanceMin2","distanceMax2","accumulate","strength2","distanceMin","distanceMax","forceRadial","radiuses","forceSimulation","simulation2","alphaMin","alphaDecay","alphaTarget","velocityDecay","forces","stepper","initializeNodes","initializeForce","forceX","forceY","require_d3_path","tauEpsilon","Path","quadraticCurveTo","bezierCurveTo","arcTo","l01_2","x20","y20","l21_2","l20_2","l21","l01","require_d3_shape","d3Path","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","cornerTangents","x11","y11","x10","y10","Linear","curveLinear","defined0","x0z","y0z","areaStart","areaEnd","arealine","lineX0","lineY0","lineY1","lineX1","curveRadialLinear","curveRadial","Radial","_curve","lineRadial","lineRadial$1","areaRadial","lineStartAngle","lineEndAngle","lineInnerRadius","lineOuterRadius","pointRadial","linkSource","linkTarget","curveHorizontal","curveVertical","curveRadial$1","tan30","tan30_2","wye","Basis","BasisClosed","BasisOpen","Bundle","_basis","_beta","_x2","_x3","_x4","_y2","_y3","_y4","bundle2","Cardinal","cardinal2","tension2","CardinalClosed","_x5","_y5","cardinalClosed","CardinalOpen","cardinalOpen","point$2","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","catmullRom2","alpha2","CatmullRomClosed","catmullRomClosed","CatmullRomOpen","catmullRomOpen","LinearClosed","slope3","slope2","point$3","MonotoneX","MonotoneY","ReflectContext","Natural","none$1","stackValue","appearance","peaks","peak","_t0","arc2","da0","da1","x32","y32","curveBasis","curveBasisClosed","curveBasisOpen","curveBundle","curveCardinal","curveCardinalClosed","curveCardinalOpen","curveCatmullRom","curveCatmullRomClosed","curveCatmullRomOpen","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","linkHorizontal","linkRadial","linkVertical","pie2","radialArea","radialLine","oz","sij","stackOffsetDiverging","stackOffsetExpand","stackOffsetNone","stackOffsetSilhouette","stackOffsetWiggle","sij0","stackOrderAppearance","stackOrderAscending","stackOrderDescending","stackOrderInsideOut","stackOrderNone","stackOrderReverse","symbol2","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","require_d3_sankey","d3Shape","targetDepth","sourceLinks","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","nodeCenter","weightedSource","weightedTarget","defaultNodes","defaultLinks","horizontalSource","horizontalTarget","sankey","maxPaddedSpace","sankey2","targetLinks","computeNodeLinks","computeNodeValues","computeNodeDepths","initializeNodeBreadth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","maxNodePadding","computeNodeBreadths","computeLinkBreadths","nodeAlign","nodeWidth","nodePadding","sankeyCenter","sankeyLeft","sankeyRight","sankeyJustify","sankeyLinkHorizontal","require_johnson","circuits","blocked","Ak","unblock","circuit","adjacencyStructureSCC","minId","subgraph","leastVertexComponent","ccs","leastVertex","vertexId","require_d3_sankey_circular","findCircuits","partOfCycle","circularLinkType","linkSourceCenter","linkTargetCenter","getNodeID","verticalMargin","baseRadius","selectCircularLinkTypes","numberOfTops","numberOfBottoms","selfLinking","linkAngle","numberOfNonSelfLinkingCycles","sourceCount","targetCount","onlyCircularLink","nodeSourceLinks","nodeTargetLinks","calcVerticalBuffer","circularLinkGap","sortLinkColumnAscending","link1","circularPathData","verticalBuffer","bufferOverThisLink","addCircularPathData","arcRadius","leftNodeBuffer","rightNodeBuffer","sourceWidth","sourceX","sourceY","leftSmallArcRadius","leftLargeArcRadius","rightSmallArcRadius","rightLargeArcRadius","verticalFullExtent","verticalLeftInnerExtent","verticalRightInnerExtent","thisColumn","thisCircularLinkType","sameColumnLinks","sortLinkSourceYDescending","sortLinkSourceYAscending","radiusOffset","circularLinkID","sortLinkTargetYDescending","sortLinkTargetYAscending","leftInnerExtent","rightInnerExtent","leftFullExtent","rightFullExtent","createCircularPathString","normalPath","linkColumnDistance","linkXLength","linkPerpendicularYToLinkSource","longerLink","shorterLink","heightFromY1ToPependicular","incline","linkPerpendicularYToLinkTarget","resolveNodeLinkOverlaps","columnToTest","maxColumnToTest","numberOfColumnsToTest","B0_t","B1_t","B2_t","B3_t","py_t","linkY0AtColumn","linkY1AtColumn","adjustNodeHeight","otherNode","nodeA","nodeB","sankeyY0","sankeyY1","sortSourceLinks","moveNodes","nodesSourceLinks","nodeSourceLinksLength","sameInclines","link2Adj","ySourceOffset","offsetFromBottom","sortTargetLinks","nodesTargetLinks","nodesTargetLinksLength","yTargetOffset","sankeyCircular","paddingRatio","sortNodes","sankeyCircular2","circularLinks","target2","identifyCircles","iterations2","relaxLeftAndRight","thisPadding","totalTopLinksWidth","totalBottomLinksWidth","totalRightLinksWidth","totalLeftLinksWidth","maxColumn","getCircleMargins","currentWidth","currentHeight","scaleSankeySize","nodesLength","columnsLength","nodeHeight","avgTargetY","avgSourceY","iteration","minY0","fillHeight","y0cycle","y1cycle","nodePaddingRatio","require_constants29","nodeTextOffsetHorizontal","nodeTextOffsetVertical","nodePadAcross","sankeyIterations","forceIterations","forceTicksPerFrame","sankeyLinks","sankeyLink","sankeyNodeSet","sankeyNode","nodeRect","nodeLabel","require_render","d3Force","d3Sankey","d3SankeyCircular","sankeyModel","nodePad","nodeThickness","nodePointNumber","groupingNode","partOfGroup","flowKey","flows","flowLinks","totalPerLabel","labelConcentration","concentration","totalOutflow","concentrationOut","totalInflow","concenrationIn","computeLinkConcentrations","colX","orderedNodes","columns2","colNumber","snapToColumns","guid","nodeLineColor","nodeLineWidth","linkLineColor","linkLineWidth","linkArrowLength","valueFormat","dragParallel","dragPerpendicular","forceLayouts","interactionState","dragInProgress","linkModel","traceId","tinyColorHue","tinyColorAlpha","tinyColorHoverHue","tinyColorHoverAlpha","linkPath","arrowLen","pathString","isSourceBeforeTarget","isPathOverlapped","createCircularClosedPathString","maxArrowLength","y0a","y0b","y1a","y1b","upperCurve","lowerCurve","rightEnd","nodeModel","zoneThicknessPad","zoneLengthPad","visibleThickness","visibleWidth","visibleHeight","zoneX","zoneY","zoneWidth","zoneHeight","labelY","originalLayer","sizeAcross","darkBackground","uniqueNodeLabelPathId","updateNodePositions","updateNodeShapes","updateShapes","salientEnough","sankeyTransform","attachPointerEvents","eventSet","follow","attachDragHandler","dragBehavior","_dragCover","saveCurrentDragPosition","nodeEvents","forceKey","switchToForceFormat","originalX","maxVelocity","lastDraggedX","lastDraggedY","snappingForce","attachForce","faster","switchToSankeyFormat","sameLayer","persistFinalNodePositions","startForce","nodeX","nodeY","firstRender","dragcover","styledData","_sankey","dragboxClassName","_bgRect","linkEvents","distinctLayerPositions","originalY","originalLayerIndex","persistOriginalPlace","flipText","require_plot29","renderableValuePresent","ownTrace","makeTranslucent","makeTextContrasty","relatedLinks","relatedNodes","nodeHoveredStyle","linkHoveredStyle","nodeNonHoveredStyle","linkNonHoveredStyle","visitNodes","curLink","labelOpts","sourceLabel","targetLabel","concentrationLabel","incomingLabel","outgoingLabel","hoverCenter","hoverCenterPosition","boundingBox","hoverCenterX0","hoverCenterX1","tooltip","require_base_plot9","SANKEY","subplotUpdateFx","newGroups","oldGroups","findNode","hadPlot","hasPlot","require_select11","require_sankey","require_sankey2","require_base_plot10","require_attributes61","gaugeBarAttrs","reference","relative","gauge","require_constants30","defaultNumberFontSize","bulletNumberDomainSize","bulletPadding","valueThickness","titlePadding","horizontalPadding","require_defaults57","stepIn","stepOut","_hasNumber","_hasDelta","_hasGauge","bignumberFontSize","deltaFontSize","numberFontDflt","deltaFontDflt","_scaleNumbers","gaugeIn","gaugeOut","axisIn","axisOut","titleFontDflt","coerceGauge","coerceGaugeAxis","_isBullet","_isAngular","require_calc36","lastReading","secondLastReading","deltaRef","relativeDelta","require_plot30","SI_PREFIX","styleShape","fitTextInsideBox","numbersX","numbersY","numbersScaler","gaugeBg","gaugeOutline","hasGauge","isBullet","numbersAlign","elRadius","fitTextInsideCircle","bignumberbBox","deltabBox","numbersbBox","numbersAnchor","transitionFormat","transitionValueFormat","transitionAx","drawBignumber","bignumberAx","bignumberFmt","bignumberSuffix","bignumberPrefix","writeNumber","transitionFmt","drawDelta","deltaAx","deltaFmt","deltaSuffix","deltaPrefix","deltaValue","deltaFormatText","numberFmt","deltaFill","_deltaLastValue","writeDelta","bignumberCenter","deltaCenter","_numbersTop","drawNumbers","angularGauge","angularaxisLayer","gaugePosition","axisLayer","valueToAngle","arcPathGenerator","drawArc","t2g","_transFn","transFn2","bgArc","valueArcPathGenerator","valueArc","valueArcPath","thresholdArc","gaugeBorder","drawAngularGauge","bulletGauge","bulletaxisLayer","bullet","bulletHeight","innerBulletHeight","bulletLeft","bulletRight","drawRect","bgBullet","fgBullet","bulletOutline","drawBulletGauge","titleX","titlebBox","require_indicator","require_indicator2","require_attributes62","columnwidth","columnorder","require_defaults58","specifiedColumnOrder","truncated","oneStepped","defaultColumnOrder","require_calc37","require_constants31","cellPad","columnExtentOffset","columnTitleOffset","emptyHeaderHeight","latexCheck","goldenRatio","lineBreaker","releaseTransitionDuration","releaseTransitionEase","scrollbarCaptureWidth","scrollbarHideDelay","scrollbarHideDuration","scrollbarOffset","scrollbarWidth","transitionDuration","transitionEase","uplift","wrapSpacer","wrapSplitCharacter","tableControlView","scrollBackground","yColumn","columnBlock","scrollAreaClip","scrollAreaClipRect","columnBoundary","columnBoundaryClippath","columnBoundaryRect","columnCells","columnCell","cellRect","cellText","cellTextHolder","scrollbarKit","scrollbar","scrollbarSlider","scrollbarGlyph","scrollbarCaptureZone","require_data_preparation_helper","arrayMax","maybeArray","squareStringMatrix","matrixIn","padLen","emptyStrings","padArray","columnWidth","makeRowBlock","anchorToRowBlock","auxiliary","auxiliaryBlocks","makeAnchorToRowBlock","rowHeights","minimumFillHeight","currentRowHeight","currentAnchor","currentBlockHeight","currentBlock","firstRowIndex","lastRowIndex","currentFirstRowIndex","blockCounter","rowIndex","cellsValues","slicer","headerValuesIn","headerValues","headerRowHeights","headerRowBlocks","rowBlocks","columnOrder","columnWidths","totalColumnWidths","maxLineWidth","headerCells","gdColumns","gdColumnsOriginalOrder","prevPages","scrollbarState","scrollbarScrollInProgress","specIndex","require_data_split_helpers","splitToPanels","headerPanel","page","currentRepaint","dragHandle","splitToCells","fromTo","rowBlock","rowFrom","rowTo","rowFromTo","keyWithinBlock","require_plot31","svgUtil","cancelEeaseColumn","prepareData","splitData","roundHalfWidth","scrollAreaBottomClipKey","columnBoundaryClipKey","renderScrollbarKit","bypassVisibleBar","blocks","firstRowAnchor","rowsHeight","calcTotalHeight","scrollableAreaHeight","currentlyVisibleHeight","barWiggleRoom","wiggleRoom","bottomY","dragMultiplier","xPosition2","columnDragInProgress","pixelVal","inverseScale","makeDragRow","renderColumnCellTree","allColumnBlock","renderColumnCells","renderColumnCell","gridPick","rowNumber","cellBorderWidth","supplyStylingValues","renderCellRect","atomicSelection","sizeAndStyleRect","renderCellTextHolder","renderCellText","setFont","populateCellText","setCellHeightAndPositionY","userSuppliedContent","stringSupplied","hasBreaks","userBrokenText","mayHaveMarkup","latex","hasWrapSplitCharacter","textToRender","prefixSuffixedText","wrappingNeeded","hasWrapCharacter","cellHeightMayIncrease","needsConvertToTspans","hrefRestoredFragments","renderCallback","wrapTextMaker","updateYPositionMaker","xPosition","easeColumn","cellsBlock","headerBlock","updateBlockYPosition","cellsColumnBlock","scrollHeight","pages","pTop","blockIndex","blockRows","rowsHeight2","allRowsHeight","findPagesAndCacheHeights","yTranslate","conditionalPanelRerender","allTableControlView","optionalMultiplier","optionalPosition","eventD","initialScrollY","revolverIndex","toRerender","currentAddition","currentAdditionLength","separatorLength","currentRow","currentRowLength","rowLengthLimit","settledY","getBlock","declaredRowHeight","element2","rectBox","yPosition","optionalWidth","headerHeight2","rowAnchor","getRow","wrappedTraceHolders","wrappedTraceHolder","cvEnter","wheelEvent","movedColumn","columnMoved","headerColumnBlock","require_base_plot11","tablePlot","TABLE","require_table","require_table2","require_axis_attributes2","cheatertype","labelpadding","labelprefix","labelsuffix","minorgridcount","minorgridwidth","minorgriddash","minorgridcolor","startline","startlinecolor","startlinewidth","endline","endlinewidth","endlinecolor","arraytick0","arraydtick","require_attributes63","axisAttrs","carpetFont","cheaterslope","require_xy_defaults2","hasX","hasY","require_axis_defaults3","carpetAttrs","startLineColor","startLineWidth","endLineColor","endLineWidth","require_ab_defaults","mimickAxisDefaults","require_defaults59","handleABDefaults","_clipPathId","require_map_1d_array","require_makepath","isBicubic","require_orient_text","refDxy","dpdx","dpdy","offsetMultiplier","offsetMultplier","require_plot32","map1dArray","makepath","orientText","drawGridLines","axisLetter","gridlines","lineClass","gridJoin","gridline","drawAxisLabels","labelJoin","maxExtent","labelOrientation","endAnchor","labelEl","cdcarpet","carpetLayer","clipLayer","aax","bax","boundaryLayer","labelLayer","_gridlines","_minorgridlines","_boundarylines","labelOrientationA","_labels","labelOrientationB","aMin","aMax","bMin","bMax","ab2xy","dxyda_rough","dxydb_rough","drawAxisTitle","drawAxisTitles","clipsegments","bicubic","clipPathData","drawClipPath","titleJoin","angleDiff","reverseTitle","require_cheater_basis","ascal","bscal","bval","adata","require_array_minmax","minMax","require_calc_gridlines","crossAxisLetter","minorgridlines","boundarylines","crossData","crossAxis","xcp","_xctrl","ycp","_yctrl","nea","neb","constructValueGridline","j02","tj","pxy","dxydi0","dxydi1","dxydj0","dxydj1","xpoints","ypoints","b2j","crossLength","evalxy","i02","dxydi","a2i","j3","j03","tj2","dxydj","constvar","constructArrayGridline","require_calc_labels","tobj","isFirst","isLast","require_calc_clippath","xctrl","yctrl","asmoothing","bsmoothing","nea1","neb1","require_smooth_fill_2d_array","dxp","dxm","dap","dam","dbp","dbm","reldiff","overrelaxation","ip","jp","resid","boundaryCnt","require_constants32","RELATIVE_CULL_TOLERANCE","require_catmull_rom","require_compute_control_points","makeControlPoints","inferCubicControlPoint","p2e0","p2e1","xej","yej","require_create_spline_evaluator","jmax","ou2","ou3","ov","ov2","ov3","require_create_i_derivative_evaluator","ouu2","require_create_j_derivative_evaluator","ovv2","require_set_convert2","computeControlPoints","createSplineEvaluator","createIDerivativeEvaluator","createJDerivativeEvaluator","amax","bmax","arange","brange","atol","btol","i2a","j2b","ij2ab","aval","ab2ij","i2c","extrapolate","iex","jex","der","dadi","dbdj","dxyda","dxydb","plus","require_calc38","cheaterBasis","arrayMinmax","calcGridlines","calcLabels","calcClipPath","smoothFill2dArray","avals","bvals","require_carpet","require_carpet2","require_attributes64","require_defaults60","require_format_labels7","require_lookup_carpetid","firstAxis","maybeCarpet","require_calc39","lookupCarpet","needsCull","require_plot33","plotinfoproxy","require_hover22","require_event_data15","require_scattercarpet","require_scattercarpet2","require_attributes65","contourContourAttrs","atype","btype","require_defaults61","_defaultColor","require_calc40","carpetdata","tracedata","heatmappishCalc","require_axis_aligned_line","carpetcd","tangent","tanIsoIdx","tanIsoPar","refidx","toIdx","iso","isoIdx","vstart","vend","dirfloor","dirceil","dirmin","dirmax","idx0","idx1","require_plot34","contourPlot","axisAlignedLine","getUnitVector","normalizeVector","vectorTan","contourcarpetLayer","pedgepath","ppath","mapPathinfo","ab2p","istop","pathto","startpt","pathData","levelData","pathABData","startVector","endVector","minStart","maxEnd","abPt","pathVector","edgeVector","dAB","constrainToCarpet","require_contourcarpet","require_contourcarpet2","require_attributes66","lineColorDefault","require_ohlc_defaults","require_defaults62","handleOHLC","require_calc41","ptFunc","calcCommon","ptFunc2","hasTextArray","hasHovertextArray","cPrev","_minDiff","ohlcTracesOnThisXaxis","xcalc","_xcalc","convertTickWidth","require_plot35","cdOHLC","ohlcLayer","require_style19","dirLine","require_hover23","_getClosestPoint","minAttr","maxAttr","centerShift","displayHalfWidth","hoverHalfWidth","hoverSplit","hoverParts","usedVals","getLabelLine","textParts","require_select12","posOffset","require_ohlc","require_ohlc2","require_attributes67","OHLCattrs","require_defaults63","require_calc42","require_candlestick","require_candlestick2","require_set_convert3","setConvertCartesian","polarLayout","setGeometry","rFilter","c2g","g2c","g2p","setConvertRadial","_d2c","_c2d","toRadians","fromRadians","_d2c2","dcoord","rad2c","c2rad","rad2t","t2rad","sector","sectorInRad","counterclockwise","rad2g","g2rad","catLen","_period","g2t","setConvertAngular","require_constants33","axisNames","axisName2dataArray","layerNames","radialDragBoxSize","angularDragBoxSize","cornerLen","cornerHalfWidth","OFFEDGE","require_helpers19","findIntersectionXY","xpyp","xstar","ystar","dsin","clampTiny","dcos","tanA","cotanA","vangles","makeRegularPolygon","a2xy","findXY","va0","va1","cycleIndex","xy0","xyN","makeClippedPolygon","transformForSVG","pts0","pts1","isPtInsidePolygon","polygonIn","polygonOut","findPolygonOffset","findEnclosingVertexAngles","adelta","findXYatLength","pathPolygon","pathPolygonAnnulus","require_helpers20","smith","reactanceArc","R1","resistanceArc","smithTransform","require_polar","setConvertPolar","dragBox","smithHelpers","Polar","isSmith","radialAxisAngle","clipPaths","clipIds","clipIdBase","forTraces","getHole","getSector","getRadial","realaxis","getAngular","imaginaryaxis","radialTickLayout","angularTickLayout","strTickLayout","snapToVertexAngle","updateElement","polarCalcData","radialLayout","angularLayout","frontPlotIndex","isAngularAxisBelowTraces","isRadialAxisBelowTraces","subLayer","xLength2","yLength2","xDomain2","yDomain2","sectorBBox","ax0","ay0","ay1","computeSectorBBox","dxSectorBBox","dySectorBBox","arDomain","arSector","trueSide","xOffset2","yOffset2","cxx","cyy","radialAxis","angularAxis","updateAngularAxis","updateRadialAxis","updateRadialAxisTitle","mockCartesianAxis","dPath","pathSubplot","bboxIndices","setRange","isPtInside","hasRoomForIt","fillViewInitialKey","gridPathFn","tLayer","tLayer2","_angle","angleRad","cosRad","sinRad","gridshape","updateAngularDrag","updateRadialDrag","updateHoverAndMainDrag","chw","chl","mainDrag","dragOpts","xy2r","xy2a","ra2xy","pathCorner","rm","pathCornerForPolygons","innerPts","outerPts","xy1","mperp","midPts","clampAndSetR0R1","rr0","rr1","applyZoomMove","cpath","findPolygonRadius","zoomMoveForPolygons","vangles0","vangles1","zoomClick","polarLayoutNow","rngIndex","angle0","rbase","moveFn2","angle1","rprime","radialDrag","dvec","rvec","rotateMove","rerangeMove","computeRadialAxisUpdates","moduleCalcDataVisible","dbs","angularDrag","rot0","rot1","rrot1","scatterTraces","scatterPoints","scatterTextPoints","trans2","computeRotationUpdates","thetag","require_layout_attributes21","axisLineGridAttr","axisTickAttrs","radialAxisAttrs","angularAxisAttrs","require_layout_defaults19","coerceAxis","handleAxisTypeDefaults","dfltFontSize","dfltFontFamily","dfltFontWeight","dfltFontStyle","dfltFontVariant","dfltFontTextcase","dfltFontLineposition","dfltFontShadow","require_polar2","createPolar","oldIds","mustCleanScene","require_attributes68","require_defaults64","handleRThetaDefaults","require_format_labels8","rVal","rLabel","thetaVal","thetaLabel","require_calc43","rArray","thetaArray","require_plot36","mlayer","rg","require_hover24","makeHoverPointText","require_scatterpolar","require_scatterpolar2","require_attributes69","scatterPolarAttrs","require_defaults65","require_format_labels9","scatterPolarFormatLabels","_theta","require_calc44","require_hover25","require_base_index4","require_plot37","scatterglPlot","subRArray","subThetaArray","rawx","rawy","require_scatterpolargl","require_scatterpolargl2","require_attributes70","require_layout_attributes22","require_defaults66","require_layout_defaults20","subplotsDone","require_calc45","sArray","pArray","barPolarCd","rAxis","aAxis","require_plot38","cdbar","_a0","_a1","vaBar","makePathFn","barLayer","rp0","rp1","thetag0","thetag1","rg1","thetagMid","require_hover26","inboxFn","_cdi","require_barpolar","require_barpolar2","require_constants34","require_layout_attributes23","realAxisAttrs","imaginaryAxisAttrs","require_layout_defaults21","keyFn","makeImagDflt","realTickvals","newKey","isRealAxis","require_smith","require_attributes71","real","imag","require_defaults67","handleRealImagDefaults","require_format_labels10","realLabel","imagLabel","require_calc46","realAxis","imaginaryAxis","realArray","imagArray","require_plot39","require_hover27","require_scattersmith","require_scattersmith2","require_main","Calendars","regionalOptions","invalidCalendar","invalidDate","invalidMonth","invalidYear","differentCalendars","_localCals","CDate","_calendar","_year","_month","_day","_validateLevel","_exports","BaseCalendar","shortYearCutoff","GregorianCalendar","language","substituteDigits","substituteChineseDigits","localNumber","leapYear","epoch","monthOfYear","weekOfYear","daysInYear","dayOfYear","daysInMonth","weekDay","extraInfo","compareTo","jd","toJSDate","fromJSDate","jsd","today","minMonth","minDay","epochs","monthsInYear","firstMonth","fromMonthOfYear","ord","daysInWeek","_correctAdd","yearMonths","resyncYearMonth","ymd","hasYearZero","jdEpoch","daysPerMonth","monthNames","monthNamesShort","dayNames","dayNamesShort","dayNamesMin","dateFormat","firstDay","isRTL","checkDate","setMinutes","setSeconds","setMilliseconds","cdate","baseCalendar","gregorian","require_plus","invalidArguments","invalidFormat","missingNumberAt","unknownNameAt","unexpectedLiteralAt","unexpectedText","UNIX_EPOCH","SECS_PER_DAY","TICKS_EPOCH","TICKS_PER_DAY","ATOM","COOKIE","FULL","ISO_8601","JULIAN","RFC_822","RFC_850","RFC_1036","RFC_1123","RFC_2822","RSS","TICKS","TIMESTAMP","W3C","monthNumbers","calculateWeek","date2","shortNames","longNames","doubled","iFormat","formatMonthName","useLongName","localiseNumbers","localNumbers","parseDate","parseMonth","doy","shortYear","getNumber","isDoubled","iValue","getMonthNumber","month2","getName","getMonthName","checkLiteral","iSave","determineDate","dateSpec","defaultDate","currentDate","offsetString","require_chinese","gregorianCalendar","ChineseCalendar","MONTH_NUMBER_REGEXP","_validateYear","monthIndex","toChineseMonth","isIntercalaryMonth","MONTH_NAME_REGEXP","monthName","MONTH_SHORT_NAME_REGEXP","monthString","intercalaryMonth","LUNAR_MONTH_DAYS","firstThursday","validatedYear","invalidyear","packedDate","CHINESE_NEW_YEAR","monthDaysTable","solar","yearOrDate","monthOrResult","isIntercalaryOrResult","solarDate","lunarDate","daysFromNewYear","monthsFromNewYear","jsDate","toSolar","lunar","chineseNewYearPackedDate","chineseNewYearJSDate","toLunar","dateString","DATE_REGEXP","resultYear","resultMonthIndex","resultCanBeIntercalaryMonth","correctedMonthIndex","chinese","require_coptic","CopticCalendar","coptic","require_discworld","DiscworldCalendar","century","centuries","discworld","require_ethiopian","EthiopianCalendar","ethiopian","require_hebrew","HebrewCalendar","_leapYear","yearType","adjYear","_delay1","_delay2","present","hebrew","require_islamic","IslamicCalendar","islamic","require_julian","JulianCalendar","julian","require_mayan","MayanCalendar","amod","haabMonths","tzolkinMonths","baktun","forYear","haab","_toHaab","tzolkin","_toTzolkin","haabMonthName","haabMonth","haabDay","tzolkinDayName","tzolkinDay","tzolkinTrecena","mayan","require_nanakshahi","NanakshahiCalendar","nanakshahi","require_nepali","NepaliCalendar","daysPerYear","NEPALI_CALENDAR_DATA","month_number","nepaliYear","nepaliMonth","nepaliDay","gregorianDayOfYear","nepaliMonthToCheck","nepaliYearToCheck","_createMissingCalendarData","gregorianYear","gregorianDate","dayOfFirstJanInPaush","daysSinceJanFirstToEndOfNepaliMonth","nepaliDayOfMonth","tmp_calendar_data","nepaliYearToCreate","nepali","require_persian","PersianCalendar","epBase","epYear","depoch","cyear","ycycle","aux1","aux2","yday","persian","jalali","require_taiwan","TaiwanCalendar","yearsOffset","_t2gYear","_g2tYear","taiwan","require_thai","ThaiCalendar","thai","require_ummalqura","UmmAlQuraCalendar","daysCount","mcjdn","ummalqura_dat","lunation","ummalqura","require_calendars","require_calendars2","UNKNOWN","d3ToWorldCalendars","allCals","getCal","calendarObj","makeAttrs","makeTraceAttrsDescription","xAttrs","histogram2d","histogram2dcontour","mesh3d","handleTraceDefaults","CANONICAL_SUNDAY","CANONICAL_TICK","DFLTRANGE","worldCalFmt","modifier","directive","directiveLen","directiveObj","replacementPart","require_calendars3","require_lib2","_factory","_interopRequireDefault","_plotly","_default"],"mappings":"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MP,EAAIsE,OAAOjgM,MAAQ,EAAI,IAAM27L,EAAIuE,WAAavE,EAAIuE,UAAUhE,MAAQ,EAAI,IAAMP,EAAIuE,WAAavE,EAAIuE,UAAUlgM,MAAQ,EAAI,GAC1I,IAArBjtB,EAAU0rB,IACZviC,EAAOlV,KAAK,CACV0a,GAAIq+N,EAAWA,EAASzE,aAAc,EACtC7zO,MAAOk0O,EAAIl0O,MACXC,IAAKi0O,EAAIj0O,IACTu4O,OAAQ,CACN/D,MAA4B,IAArBnpN,EAAU0rB,GAEjBuB,MAA4B,IAArBjtB,EAAU0rB,IAGnByhM,UAAW,MAEf,IAEEH,GACFA,EAASvoJ,SAASt7E,GACbA,EAET,IAAIuoO,EAAkB,CACpBC,MAAO,SAASprL,EAAUymL,GACxB,OAAO/sN,EAAOsmC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCymL,EACL,EACA4E,UAAW,SAASrrL,EAAUymL,GAC5B,OAAO/sN,EAAOsmC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCymL,EACL,EACA6E,WAAY,SAAStrL,EAAUymL,GAC7B,OAAO/sN,EAAOsmC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCymL,EACL,EACA8E,cAAe,SAASvrL,EAAUymL,GAChC,OAAO/sN,EAAOsmC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCymL,EACL,EACA+E,IAAK,SAASxrL,EAAUymL,GACtB,OAAO/sN,EAAOsmC,EAAU,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GACCymL,KAGPl6N,EAAOjc,QAAU66O,KAKjBM,GAAkB//N,EAAW,CAC/B,yCAAyCpb,EAASic,GAChD,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mBACL,IAAK,QACL,IAAK,OACL,IAAK,QACL,IAAK,SACL,IAAK,UACL,IAAK,WACL,IAAK,SACL,IAAK,SACL,IAAK,YACL,IAAK,sBACL,IAAK,YACL,IAAK,sBACL,IAAK,YACL,IAAK,sBACL,IAAK,YACL,IAAK,sBACL,IAAK,qBACL,KAAM,qBACN,KAAM,QACN,KAAM,OACN,KAAM,iBACN,KAAM,eACN,KAAM,gBACN,KAAM,oBACN,KAAM,gBACN,KAAM,gCACN,KAAM,KACN,KAAM,MACN,KAAM,aACN,KAAM,YACN,KAAM,iBACN,KAAM,aACN,KAAM,cACN,KAAM,aACN,KAAM,kBACN,KAAM,oBACN,KAAM,aACN,KAAM,eACN,KAAM,sBACN,KAAM,eACN,KAAM,qBACN,KAAM,eACN,KAAM,0BACN,KAAM,0BACN,KAAM,cACN,KAAM,oBACN,KAAM,WACN,KAAM,SACN,KAAM,QACN,KAAM,cACN,KAAM,eACN,KAAM,oBACN,KAAM,kBACN,KAAM,mBACN,KAAM,iBACN,KAAM,mBACN,KAAM,oBACN,KAAM,gBACN,KAAM,WACN,KAAM,aACN,KAAM,YACN,KAAM,aACN,KAAM,aACN,KAAM,eACN,KAAM,aACN,KAAM,YACN,KAAM,UACN,KAAM,SACN,KAAM,OACN,KAAM,gBACN,KAAM,QACN,KAAM,iBACN,KAAM,MACN,KAAM,eACN,KAAM,QACN,KAAM,SACN,KAAM,UACN,KAAM,gBACN,KAAM,kBACN,KAAM,QACN,KAAM,MACN,KAAM,OACN,KAAM,YACN,KAAM,kBACN,KAAM,OACN,KAAM,UACN,KAAM,OACN,KAAM,OACN,KAAM,SACN,KAAM,WACN,KAAM,UACN,KAAM,UACN,KAAM,SACN,KAAM,yBACN,KAAM,wBACN,KAAM,wBACN,KAAM,uBACN,MAAO,qBACP,MAAO,qBACP,MAAO,iBACP,MAAO,iBACP,MAAO,SACP,MAAO,uBACP,MAAO,mBACP,MAAO,iBACP,MAAO,2BACP,MAAO,iBACP,MAAO,2BACP,MAAO,cACP,MAAO,WACP,MAAO,qBACP,MAAO,gBACP,MAAO,wBACP,MAAO,yBACP,MAAO,yBACP,MAAO,sBACP,MAAO,wBACP,MAAO,QACP,MAAO,UACP,MAAO,qBACP,MAAO,2BACP,MAAO,kBACP,MAAO,iBACP,MAAO,UACP,MAAO,wBACP,MAAO,yBACP,MAAO,gBACP,MAAO,gBACP,MAAO,kBACP,MAAO,kBACP,MAAO,gBACP,MAAO,uBACP,MAAO,oBACP,MAAO,2BACP,MAAO,uBACP,MAAO,kBACP,MAAO,2BACP,MAAO,2BACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,KAAM,YACN,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,iBACP,MAAO,wBACP,MAAO,gBACP,MAAO,YACP,MAAO,YACP,MAAO,mBACP,MAAO,2BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,8BACP,MAAO,4BACP,MAAO,8BACP,MAAO,2BACP,MAAO,6BACP,MAAO,2BACP,MAAO,wBACP,MAAO,8BACP,MAAO,iCACP,MAAO,6BACP,MAAO,cACP,MAAO,eACP,MAAO,oBACP,MAAO,oBACP,MAAO,+BACP,MAAO,+BACP,MAAO,uBACP,MAAO,qBACP,MAAO,iCACP,MAAO,0BACP,MAAO,eACP,MAAO,uBACP,MAAO,uBACP,MAAO,+BACP,MAAO,qCACP,MAAO,cACP,MAAO,cACP,MAAO,eACP,MAAO,kBACP,MAAO,gBACP,MAAO,iCACP,MAAO,mCACP,MAAO,cACP,MAAO,aACP,MAAO,aACP,MAAO,aACP,MAAO,WACP,MAAO,WACP,MAAO,WACP,MAAO,OACP,MAAO,YACP,MAAO,YACP,MAAO,YACP,MAAO,aACP,MAAO,aACP,MAAO,aACP,MAAO,aACP,MAAO,eACP,MAAO,gBACP,MAAO,iBACP,MAAO,cACP,MAAO,kBACP,MAAO,kBACP,MAAO,mBACP,MAAO,kBACP,MAAO,4BACP,MAAO,uBACP,MAAO,oBACP,MAAO,8BACP,MAAO,2BACP,MAAO,kBACP,MAAO,mBACP,MAAO,0BACP,MAAO,yBACP,MAAO,sBACP,MAAO,uBACP,MAAO,qCACP,MAAO,qCACP,MAAO,uCACP,MAAO,+CACP,MAAO,uBACP,MAAO,oCACP,MAAO,4CACP,MAAO,oCACP,MAAO,0BACP,MAAO,oBACP,MAAO,mBACP,MAAO,qBACP,MAAO,cACP,MAAO,eACP,MAAO,qBACP,MAAO,sBACP,MAAO,+BACP,MAAO,iBACP,MAAO,wBACP,MAAO,0BACP,MAAO,yBACP,MAAO,0BACP,MAAO,0BACP,MAAO,4BACP,MAAO,SACP,MAAO,YACP,MAAO,eACP,MAAO,aACP,MAAO,UACP,MAAO,aACP,MAAO,WACP,MAAO,kBACP,MAAO,6BACP,MAAO,sBACP,MAAO,+BACP,MAAO,sBACP,MAAO,iCACP,MAAO,qBACP,MAAO,qCACP,MAAO,0BAKb,KAAA,SAEWgf,EAASg/Y,EAA0BC,GACtC,IAAAmkC,EAAOnkC,EAAqB,KACxBmB,EAAAp/Z,QAAU,SAAwBwY,GACxC,OAAO4pb,EAAK5pb,EACd,GAIJ,KAAA,SAEWwG,EAASg/Y,EAA0BC,GAE1Cj/Y,EAAQhf,QA8OR,SAAyB4/I,GACvB,IAAIyhR,EAAMzhR,EAAQkwS,GACd5xb,EAASoC,EAAa+ga,GACtB0zB,EAAM5zB,EAAUE,EAAK,CACvB,CACEnja,OAAAA,EACAuE,KAAM4+Z,EAAII,MACV1+Z,KAAM,EACN5E,OAAQ,EACR62b,OAAQ,IAEV,CACE92b,OAAAA,EACAuE,KAAM4+Z,EAAII,MACV1+Z,KAAM,EACN5E,OAAQ,GACR62b,OAAQ,IAEV,CACE92b,OAAAA,EACAuE,KAAM4+Z,EAAII,MACV1+Z,KAAM,EACN5E,OAAQ,GACR62b,OAAQ,MAGRC,EAASC,EAAa7zB,GACnB4zB,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWtyD,MAAMggG,SAAW,EAC5Bu7T,EAAAjpW,WAAW7tF,OAAOu7H,SAAW,EACpC,IAAIpnH,EAAS,IAAI+vb,EAAUhhC,EAAKnja,EAAQ62b,EAAKE,GAEtC,OADP3ib,EAAO8b,OAAOwxH,GACPttI,GA7QL,IAAAhS,EAAe29Z,EAAqB,MACpCkD,EAAYlD,EAAqB,MACjCi3B,EAAej3B,EAAqB,MACpC6/B,EAAW,CACb,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,SAASuE,EAAUhhC,EAAKnja,EAAQ62b,EAAKE,GACnCxxb,KAAKqsb,GAAKzuB,EACV59Z,KAAKwxb,OAASA,EACdxxb,KAAKvF,OAASA,EACduF,KAAKsxb,IAAMA,EACXtxb,KAAKssb,WAAa,EACbtsb,KAAA2wG,OAAS,CAAC,CAACp1G,IAAUA,IAAUA,KAAW,EAAC,KAAW,KAAW,MACjEyE,KAAAi7b,WAAa,CAAC,EAAC,KAAW,KAAW,KAAY,CAAC1/b,IAAUA,IAAUA,MAC3EyE,KAAK42J,UAAY,CAAC,EAAG,EAAG,GACxB52J,KAAK6+b,QAAU,CAAC,GAAI,GAAI,IACxB7+b,KAAKk9I,UAAY,CAAC,EAAG,EAAG,GACxBl9I,KAAKwwb,WAAa,CAAC,EAAG,EAAG,GACzBxwb,KAAK0gF,QAAU,EACf1gF,KAAK+5E,UAAW,EAElB,IAAIn2E,EAAQg7b,EAAU1hc,UAiCb,SAAA4hc,EAAanuV,EAAQvjF,GAC5B,IAAA,IAASv0B,EAAI,EAAGA,EAAI,IAAKA,EACvB83G,EAAO,GAAG93G,GAAK2C,KAAKoH,IAAI+tG,EAAO,GAAG93G,GAAIu0B,EAAMv0B,IAC5C83G,EAAO,GAAG93G,GAAK2C,KAAK8J,IAAIqrG,EAAO,GAAG93G,GAAIu0B,EAAMv0B,IAnChD+K,EAAMksb,SAAW,WACf,OAAQ9vb,KAAK+5E,QACf,EACAn2E,EAAMmsb,cAAgB,WACpB,OAAO/vb,KAAK+5E,QACd,EACAn2E,EAAMosb,gBAAkBpsb,EAAMuhK,KAAO,SAASmjI,GAC5C,IAAIs1H,EAAM59Z,KAAKqsb,GACXyF,EAAW9xb,KAAKwxb,OAAOM,SAC3B9xb,KAAKwxb,OAAOzhb,OACZ,IAAIqiB,EAAO0/Z,EAAS1/Z,KAAOk2Q,EAAal2Q,MAAQioa,EAC5CzuY,EAAakmY,EAASlmY,WAAa08O,EAAa18O,YAAcyuY,EACzDvI,EAAA5pJ,MAAQI,EAAaJ,OAASmyJ,EACvCvI,EAASmJ,WAAaj7b,KAAKi7b,WAC3BnJ,EAASpxW,QAAU1gF,KAAK0gF,QACpB,IAAA/qD,EAAKvD,EAAK,IACVwD,EAAKxD,EAAK,IACVk+Z,EAAKl+Z,EAAK,IACVs3B,EAAKt3B,EAAK,IAGVm+Z,GAFUjoJ,EAAaunJ,OACF,EAAI,GACA7vb,KAAKssb,YAAc1gY,EAAW,GAAKj2B,EAAKi2B,EAAW,GAAKh2B,EAAKg2B,EAAW,IAAM0kY,EAAK1kY,EAAW,IAAMlC,GAAMk0W,EAAI9zJ,oBAC3I9pQ,KAAKsxb,IAAIvhb,OACT,IAAA,IAASlX,EAAI,EAAGA,EAAI,IAAKA,EACvB+ka,EAAIhnQ,UAAU52J,KAAK42J,UAAU/9J,GAAKmH,KAAKssb,YACvCwF,EAAS+M,QAAU7+b,KAAK6+b,QAAQhmc,GAAK03b,EACjCvwb,KAAKk9I,UAAUrkJ,IACb+ka,EAAAK,WAAWL,EAAImhC,MAAO/+b,KAAKwwb,WAAW33b,GAAImH,KAAKk9I,UAAUrkJ,IAGjEmH,KAAKsxb,IAAInzB,QACX,EAOA,IAAI6gC,EAAa,WAEf,IADI,IAAA1xb,EAAQ,IAAItT,MAAM,GACboB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAE1B,IADA,IAAI0kB,EAAM,GACDve,EAAI,EAAGA,GAAK,IAAKA,EACxB,IAAA,IAASlG,GAAI,EAAIA,GAAK,EAAGA,GAAK,EAAG,CAC3B,IACAsJ,EAAI,CAAC,EAAG,EAAG,GACfA,GAFSpD,EAAInG,GAAK,GAEXC,EACPykB,EAAInmB,KAAKgL,GAGb2I,EAAMlS,GAAK0kB,EAEN,OAAAxS,CAAA,CAdQ,GAgBjB,SAAS2xb,EAASC,EAAOx6b,EAAG/I,EAAGP,GAE7B,IADI,IAAA2iD,EAAUihZ,EAAW5jc,GAChBvC,EAAI,EAAGA,EAAIklD,EAAQzkD,SAAUT,EAAG,CACnC,IAAAud,EAAI2nC,EAAQllD,GACVqmc,EAAAvlc,KACJ+K,EAAE,GACFA,EAAE,GACFA,EAAE,GACF/I,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACFya,EAAE,GACFA,EAAE,GACFA,EAAE,IAGN,OAAO2nC,EAAQzkD,OAEXsK,EAAA+mB,OAAS,SAASwxH,GAElB,cADJA,EAAUA,GAAW,CAAC,KAEpBn8I,KAAK42J,UAAYza,EAAQya,UACpB58J,MAAMiF,QAAQe,KAAK42J,aACtB52J,KAAK42J,UAAY,CAAC52J,KAAK42J,UAAW52J,KAAK42J,UAAW52J,KAAK42J,aAGvD,YAAaza,IACfn8I,KAAK6+b,QAAU1iT,EAAQ0iT,QAClB7kc,MAAMiF,QAAQe,KAAK6+b,WACtB7+b,KAAK6+b,QAAU,CAAC7+b,KAAK6+b,QAAS7+b,KAAK6+b,QAAS7+b,KAAK6+b,WAGrD7+b,KAAK+5E,UAAW,EACZ,YAAaoiE,IACVn8I,KAAA0gF,SAAWy7D,EAAQz7D,QACpB1gF,KAAK0gF,QAAU,IACjB1gF,KAAK+5E,UAAW,IAGpB,IAAIrhD,EAASyjH,EAAQlmH,OAAS,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACxD9gB,EAAWgnI,EAAQhnI,SACnBnR,EAAQm4I,EAAQn4I,MAIpB,GAHKhK,MAAMiF,QAAQy5B,EAAO,MACfA,EAAA,CAACA,EAAQA,EAAQA,IAExBvjB,GAAYnR,EAAO,CACrB,IAAIk7b,EAAQ,GACR1+b,EAAI2U,EAAS7b,OACb6lc,EAAc,EAClBn/b,KAAK2wG,OAAS,CACZ,CAACp1G,IAAUA,IAAUA,KACrB,EAAC,KAAW,KAAW,MAEzByE,KAAKk9I,UAAY,CAAC,EAAG,EAAG,GACxB,IAAA,IAAS37I,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACrBvB,KAAAwwb,WAAWjvb,GAAK49b,EACrB/H,EACE,IAAA,IAASv+b,EAAI,EAAGA,EAAI2H,IAAK3H,EAAG,CAE1B,IADI,IAAA4W,EAAI0F,EAAStc,GACRipB,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAAhmB,MAAM2T,EAAEqS,MAAQ/b,SAAS0J,EAAEqS,IACpB,SAAAs1a,EAGT,IA2CE1yb,EA3CF5J,EAAIkJ,EAAMnL,GACV8C,EAAI+8B,EAAOn3B,GACXvH,MAAMiF,QAAQtD,EAAE,MAClBA,EAAI+8B,EAAO7/B,IAEI,IAAb8C,EAAErC,OACAqC,EAAA,CAACA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,GACD,IAAbA,EAAErC,SACXqC,EAAI,CAACA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KACpBqE,KAAK+5E,UAAYp+E,EAAE,GAAK,SAAQo+E,UAAW,IAE9Cj+E,MAAMhB,EAAE,GAAGyG,KAAOzF,MAAMhB,EAAE,GAAGyG,MAG7BzG,EAAE,GAAGyG,GAAK,KACRmD,EAAI+K,EAAE3R,SACRyD,IAAMzG,EAAE,GAAGyG,GACP29b,EAAAvlc,KACJ8V,EAAE,GACFA,EAAE,GACFA,EAAE,GACF9T,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACF,EACA,EACA,EACA+I,EAAE,GACFA,EAAE,GACFA,EAAE,GACF/I,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACF,EACA,EACA,GAEWmjc,EAAA9+b,KAAK2wG,OAAQjsG,GAC1By6b,GAAe,EAAIF,EAASC,EAAOx6b,EAAG/I,EAAG4F,IAEvCzG,EAAE,GAAGyG,GAAK,KACRmD,EAAI+K,EAAE3R,SACRyD,IAAMzG,EAAE,GAAGyG,GACP29b,EAAAvlc,KACJ8V,EAAE,GACFA,EAAE,GACFA,EAAE,GACF9T,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACF,EACA,EACA,EACA+I,EAAE,GACFA,EAAE,GACFA,EAAE,GACF/I,EAAE,GACFA,EAAE,GACFA,EAAE,GACFA,EAAE,GACF,EACA,EACA,GAEWmjc,EAAA9+b,KAAK2wG,OAAQjsG,GAC1By6b,GAAe,EAAIF,EAASC,EAAOx6b,EAAG/I,EAAG4F,KAG/CvB,KAAKk9I,UAAU37I,GAAK49b,EAAcn/b,KAAKwwb,WAAWjvb,GAE/CvB,KAAAvF,OAAOkwB,OAAOu0a,GAEvB,EACAt7b,EAAMyrb,QAAU,WACdrvb,KAAKwxb,OAAOnC,UACZrvb,KAAKvF,OAAO40b,UACZrvb,KAAKsxb,IAAIjC,SACX,GAsCJ,KAAA,SAEW9za,EAASg/Y,EAA0BC,GAEtC,IAAAg6B,EAAUh6B,EAAqB,MAC/Bi3B,EAAej3B,EAAqB,MACpC4kC,EAAU5K,EAAQ,CAAC,kgBACnB6K,EAAU7K,EAAQ,CAAC,6zBACf74B,EAAAp/Z,QAAU,SAASqha,GACzB,OAAO6zB,EAAa7zB,EAAKwhC,EAASC,EAAS,KAAM,CAC/C,CAAEpzb,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,SAAUjN,KAAM,SAE5B,GAIJ,KAAA,SAEWuc,EAASg/Y,EAA0BC,GAEtC,IAAA4/B,EAAgB5/B,EAAqB,MACzCj/Y,EAAQhf,QAuTR,SAAmBqha,EAAKt4V,EAAO04B,EAAQm+C,GAChCmjT,IACHA,EAA0B1hC,EAAI0hC,wBAC9BC,EAAoC3hC,EAAI2hC,kCACxCC,EAAoC5hC,EAAI4hC,kCACxCC,EAA4C7hC,EAAI6hC,2CAE9C,IAAAC,EAAqB9hC,EAAIy6B,aAAa,sBAStC,IARCsH,GAAyBD,GA9SvB,SAAyB9hC,EAAKr3Z,GACrC,IAAIq5b,EAAsBhiC,EAAIiiC,aAAat5b,EAAIu5b,6BACvBH,EAAA,IAAI3lc,MAAM4lc,EAAsB,GACxD,IAAA,IAAS/mc,EAAI,EAAGA,GAAK+mc,IAAuB/mc,EAAG,CAE7C,IADI,IAAA6L,EAAI,IAAI1K,MAAM4lc,GACTr+b,EAAI,EAAGA,EAAI1I,IAAK0I,EACrBmD,EAAAnD,GAAKq8Z,EAAImiC,kBAAoBx+b,EAEjC,IAASA,EAAI1I,EAAG0I,EAAIq+b,IAAuBr+b,EACvCmD,EAAAnD,GAAKq8Z,EAAIoiC,KAEbL,EAAsB9mc,GAAK6L,GAoS3Bu7b,CAAyBriC,EAAK8hC,GAE5B1lc,MAAMiF,QAAQqmE,KACN62E,EAAAn+C,EACDA,EAAW,EAAX14B,EAAM,GACPA,EAAW,EAAXA,EAAM,IAEK,iBAAVA,EACH,MAAA,IAAIprE,MAAM,mCAElB,IAAIgmc,EAAatiC,EAAIiiC,aAAajiC,EAAIuiC,uBACtC,GAAI76X,EAAQ,GAAKA,EAAQ46X,GAAcliW,EAAS,GAAKA,EAASkiW,EACtD,MAAA,IAAIhmc,MAAM,4CAGlB,IAAIkmc,EAAY,EAChB,GAAI,UAFJjkT,EAAUA,GAAW,CAAC,GAEE,CAEtB,IADAikT,EAAY5kc,KAAK8J,IAAoB,EAAhB62I,EAAQlmH,MAAW,IACxB,EACR,MAAA,IAAI/7B,MAAM,uDAElB,GAAIkmc,EAAY,EAAG,CACjB,IAAKV,EACG,MAAA,IAAIxlc,MAAM,2DACPkmc,EAAYxiC,EAAIiiC,aAAaH,EAAmBI,6BACzD,MAAM,IAAI5lc,MAAM,oCAAsCkmc,EAAY,kBAIxE,IAAIC,EAAYziC,EAAIygC,cAChBiC,EAAoB1iC,EAAIy6B,aAAa,qBACrC,GAAAl8S,EAAQokT,OAASH,EAAY,EAAG,CAClC,IAAKE,EACG,MAAA,IAAIpmc,MAAM,4DAElBmmc,EAAYziC,EAAII,KACP,MAAA7hR,EAAQqkT,aAAeJ,EAAY,GACxCE,IACFD,EAAYziC,EAAII,OAGpB,IAAIyiC,GAAW,EACX,UAAWtkT,IACFskT,IAAEtkT,EAAQ35H,OAEvB,IAAIk+a,GAAa,EAIjB,MAHI,YAAavkT,IACFukT,IAAEvkT,EAAQwkT,SAElB,IAAIC,EACThjC,EACAt4V,EACA04B,EACAqiW,EACAD,EACAK,EACAC,EACAhB,IAxXJ,IACIJ,EACAC,EACAC,EACAC,EAJAE,EAAwB,KAK5B,SAASkB,EAAajjC,GAIb,MAAA,CAHGA,EAAIiiC,aAAajiC,EAAIkjC,qBACrBljC,EAAIiiC,aAAajiC,EAAImjC,sBACrBnjC,EAAIiiC,aAAajiC,EAAIojC,qBAGxB,SAAAC,EAAgBrjC,EAAK1+Z,GAC5B0+Z,EAAIsjC,gBAAgBtjC,EAAIujC,YAAajic,EAAK,IAC1C0+Z,EAAIwjC,iBAAiBxjC,EAAIyjC,aAAcnic,EAAK,IAC5C0+Z,EAAI0jC,YAAY1jC,EAAI2jC,WAAYric,EAAK,IAgBvC,SAASsic,EAAcx+Z,GACrB,OAAQA,GACN,KAAKs8Z,EACG,MAAA,IAAIplc,MAAM,mCAClB,KAAKqlc,EACG,MAAA,IAAIrlc,MAAM,6CAClB,KAAKslc,EACG,MAAA,IAAItlc,MAAM,6CAClB,KAAKulc,EACG,MAAA,IAAIvlc,MAAM,qDAClB,QACQ,MAAA,IAAIA,MAAM,sDAGtB,SAASunc,EAAY7jC,EAAKt4V,EAAO04B,EAAQh/F,EAAMu5B,EAAQmpa,GACrD,IAAK1ic,EACI,OAAA,KAET,IAAI6P,EAASurb,EAAcx8B,EAAKt4V,EAAO04B,EAAQzlE,EAAQv5B,GAMhD,OALP6P,EAAOutb,UAAYx+B,EAAI+jC,QACvB9yb,EAAOqtb,UAAYt+B,EAAI+jC,QACvB9yb,EAAO+yb,WAAa,EACpB/yb,EAAOkB,OACH6tZ,EAAAikC,qBAAqBjkC,EAAIujC,YAAaO,EAAY9jC,EAAI2jC,WAAY1yb,EAAOivZ,OAAQ,GAC9EjvZ,EAET,SAASizb,EAAiBlkC,EAAKt4V,EAAO04B,EAAQ+kC,EAAW2+T,GACnD,IAAA7yb,EAAS+uZ,EAAImkC,qBAIV,OAHHnkC,EAAAwjC,iBAAiBxjC,EAAIyjC,aAAcxyb,GACvC+uZ,EAAIokC,oBAAoBpkC,EAAIyjC,aAAct+T,EAAWz9D,EAAO04B,GAC5D4/T,EAAIqkC,wBAAwBrkC,EAAIujC,YAAaO,EAAY9jC,EAAIyjC,aAAcxyb,GACpEA,EAkFA,SAAA+xb,EAAYhjC,EAAKt4V,EAAO04B,EAAQqiW,EAAWD,EAAWK,EAAUC,EAAYn6b,GACnFvG,KAAKqsb,GAAKzuB,EACV59Z,KAAKkic,OAAS,CAAS,EAAR58X,EAAoB,EAAT04B,GAC1Bh+F,KAAKmic,YAAa,EAClBnic,KAAKoic,KAAO77b,EACPvG,KAAAi2B,MAAQ,IAAIj8B,MAAMomc,GACvB,IAAA,IAASvnc,EAAI,EAAGA,EAAIunc,IAAavnc,EAC1BmH,KAAAi2B,MAAMp9B,GAAK,KAElBmH,KAAKqic,UAAY,KACjBric,KAAKwiB,MAAQ,KACbxiB,KAAKsic,UAAY,KACjBtic,KAAKuic,WAAalC,EAClBrgc,KAAKwic,UAAY/B,EACjBzgc,KAAKyic,YAAc/B,EACnB,IAAIp4a,EAAStoB,KACT0ic,EAAc,CAAS,EAARp9X,EAAoB,EAAT04B,GAC9BhhG,OAAO6Z,iBAAiB6rb,EAAa,CACnC,EAAG,CACDv+b,IAAK,WACI,OAAAmkB,EAAO45a,OAAO,EACvB,EACAn9b,IAAK,SAASynB,GACZ,OAAOlE,EAAOg9C,MAAQ94C,IAG1B,EAAG,CACDroB,IAAK,WACI,OAAAmkB,EAAO45a,OAAO,EACvB,EACAn9b,IAAK,SAASqZ,GACZ,OAAOkK,EAAO01E,OAAS5/E,MAI7Bpe,KAAK2ic,aAAeD,EAnHtB,SAAoBE,GACd,IAAAhpb,EAAQinb,EAAa+B,EAAIvW,IACzBzuB,EAAMglC,EAAIvW,GACVvuB,EAAS8kC,EAAI9kC,OAASF,EAAIilC,oBAC1Bv9X,EAAQs9X,EAAIV,OAAO,GACnBlkW,EAAS4kW,EAAIV,OAAO,GACpB9B,EAAYwC,EAAI3sa,MAAM38B,OACtBiN,EAAMq8b,EAAIR,KACV1B,EAAakC,EAAIH,YACjBhC,EAAWmC,EAAIJ,UACfnC,EAAYuC,EAAIL,WAChB3kC,EAAAsjC,gBAAgBtjC,EAAIujC,YAAarjC,GACrC,IAAA,IAASjla,EAAI,EAAGA,EAAIunc,IAAavnc,EAC/B+pc,EAAI3sa,MAAMp9B,GAAK4oc,EAAY7jC,EAAKt4V,EAAO04B,EAAQqiW,EAAWziC,EAAIklC,KAAMllC,EAAImiC,kBAAoBlnc,GAE5E,IAAdunc,GACEwC,EAAAP,UAAYP,EAAiBlkC,EAAKt4V,EAAO04B,EAAQ4/T,EAAImlC,MAAOnlC,EAAImiC,mBAChEx5b,GACEA,EAAAy8b,iBAAiBrD,EAAsB,KAEpCS,EAAY,GACjB75b,EAAAy8b,iBAAiBrD,EAAsBS,IAEzC,IAAA6C,EAAsBrlC,EAAIy6B,aAAa,uBACvC4K,EACEvC,EACFkC,EAAIpgb,MAAQi/a,EACV7jC,EACAt4V,EACA04B,EACAilW,EAAoBC,wBACpBtlC,EAAIulC,cACJvlC,EAAIwlC,0BAEG3C,IACTmC,EAAIpgb,MAAQi/a,EACV7jC,EACAt4V,EACA04B,EACA4/T,EAAIylC,eACJzlC,EAAI0lC,gBACJ1lC,EAAI2lC,mBAIJ9C,GAAYC,EACVkC,EAAAN,UAAYR,EAAiBlkC,EAAKt4V,EAAO04B,EAAQ4/T,EAAIulC,cAAevlC,EAAIwlC,0BACnE3C,EACLmC,EAAAN,UAAYR,EAAiBlkC,EAAKt4V,EAAO04B,EAAQ4/T,EAAI4lC,kBAAmB5lC,EAAI2lC,kBACvE7C,IACLkC,EAAAN,UAAYR,EAAiBlkC,EAAKt4V,EAAO04B,EAAQ4/T,EAAI6lC,cAAe7lC,EAAI8lC,qBAGhF,IAAI1ga,EAAS46X,EAAI+lC,uBAAuB/lC,EAAIujC,aACxC,GAAAn+Z,IAAW46X,EAAIgmC,qBAAsB,CAavC,IAZAhB,EAAIT,YAAa,EACbvkC,EAAAsjC,gBAAgBtjC,EAAIujC,YAAa,MACjCvjC,EAAAimC,kBAAkBjB,EAAI9kC,QAC1B8kC,EAAI9kC,OAAS,KACT8kC,EAAIpgb,QACNogb,EAAIpgb,MAAM6sa,UACVuT,EAAIpgb,MAAQ,MAEVogb,EAAIN,YACF1kC,EAAAkmC,mBAAmBlB,EAAIN,WAC3BM,EAAIN,UAAY,MAETzpc,EAAI,EAAGA,EAAI+pc,EAAI3sa,MAAM38B,SAAUT,EAClC+pc,EAAA3sa,MAAMp9B,GAAGw2b,UACTuT,EAAA3sa,MAAMp9B,GAAK,KAEb+pc,EAAIP,YACFzkC,EAAAkmC,mBAAmBlB,EAAIP,WAC3BO,EAAIP,UAAY,MAElBpB,EAAgBrjC,EAAKhkZ,GACrB4nb,EAAcx+Z,GAEhBi+Z,EAAgBrjC,EAAKhkZ,GAsCrBmqb,CAAW/jc,MAEb,IAAI4D,EAAQg9b,EAAY1jc,UACf,SAAA8mc,EAAWpB,EAAKp2a,EAAGpO,GAC1B,GAAIwkb,EAAIT,WACA,MAAA,IAAIjoc,MAAM,sCAEd,GAAA0oc,EAAIV,OAAO,KAAO11a,GAAKo2a,EAAIV,OAAO,KAAO9jb,EAAzC,CAGJ,IAAIw/Y,EAAMglC,EAAIvW,GACV6T,EAAatiC,EAAIiiC,aAAajiC,EAAIuiC,uBACtC,GAAI3za,EAAI,GAAKA,EAAI0za,GAAc9hb,EAAI,GAAKA,EAAI8hb,EACpC,MAAA,IAAIhmc,MAAM,gDAEd0oc,EAAAV,OAAO,GAAK11a,EACZo2a,EAAAV,OAAO,GAAK9jb,EAEhB,IADI,IAAAxE,EAAQinb,EAAajjC,GAChB/ka,EAAI,EAAGA,EAAI+pc,EAAI3sa,MAAM38B,SAAUT,EACtC+pc,EAAI3sa,MAAMp9B,GAAGo1E,MAAQ20X,EAAIV,OAEvBU,EAAIP,YACNzkC,EAAIwjC,iBAAiBxjC,EAAIyjC,aAAcuB,EAAIP,WAC3CzkC,EAAIokC,oBAAoBpkC,EAAIyjC,aAAczjC,EAAImlC,MAAOH,EAAIV,OAAO,GAAIU,EAAIV,OAAO,KAE7EU,EAAIpgb,QACFogb,EAAApgb,MAAMyrD,MAAQ20X,EAAIV,QAEpBU,EAAIN,YACN1kC,EAAIwjC,iBAAiBxjC,EAAIyjC,aAAcuB,EAAIN,WACvCM,EAAIJ,WAAaI,EAAIH,YACvB7kC,EAAIokC,oBAAoBpkC,EAAIyjC,aAAczjC,EAAIulC,cAAeP,EAAIV,OAAO,GAAIU,EAAIV,OAAO,IAC9EU,EAAIJ,UACb5kC,EAAIokC,oBAAoBpkC,EAAIyjC,aAAczjC,EAAI4lC,kBAAmBZ,EAAIV,OAAO,GAAIU,EAAIV,OAAO,IAClFU,EAAIH,aACb7kC,EAAIokC,oBAAoBpkC,EAAIyjC,aAAczjC,EAAI6lC,cAAeb,EAAIV,OAAO,GAAIU,EAAIV,OAAO,KAG3FtkC,EAAIsjC,gBAAgBtjC,EAAIujC,YAAayB,EAAI9kC,QACzC,IAAI96X,EAAS46X,EAAI+lC,uBAAuB/lC,EAAIujC,aACxCn+Z,IAAW46X,EAAIgmC,uBACjBhB,EAAIvT,UACJ4R,EAAgBrjC,EAAKhkZ,GACrB4nb,EAAcx+Z,IAEhBi+Z,EAAgBrjC,EAAKhkZ,IAEvB5c,OAAO6Z,iBAAiBjT,EAAO,CAC7BqqE,MAAS,CACP9pE,IAAK,WACH,OAAInE,KAAKmic,WACA,CAAC,EAAG,GAENnic,KAAK2ic,YACd,EACA59b,IAAK,SAASL,GAIR,GAHC1K,MAAMiF,QAAQyF,KACjBA,EAAI,CAAK,EAAJA,EAAW,EAAJA,IAEG,IAAbA,EAAEpL,OACE,MAAA,IAAIY,MAAM,yCAEd,IAAAsyB,EAAW,EAAP9nB,EAAE,GACN0Z,EAAW,EAAP1Z,EAAE,GAEH,OADIs/b,EAAAhkc,KAAMwsB,EAAGpO,GACb,CAACoO,EAAGpO,EACb,EACAla,YAAY,GAEdohE,MAAS,CACPnhE,IAAK,WACH,OAAInE,KAAKmic,WACA,EAEFnic,KAAKkic,OAAO,EACrB,EACAn9b,IAAK,SAASynB,GAGL,OADPw3a,EAAWhkc,KADXwsB,GAAQ,EACYxsB,KAAKkic,OAAO,IACzB11a,CACT,EACAtoB,YAAY,GAEd85F,OAAU,CACR75F,IAAK,WACH,OAAInE,KAAKmic,WACA,EAEFnic,KAAKkic,OAAO,EACrB,EACAn9b,IAAK,SAASqZ,GAGL,OAFPA,GAAQ,EACR4lb,EAAWhkc,KAAMA,KAAKkic,OAAO,GAAI9jb,GAC1BA,CACT,EACAla,YAAY,KAGhBN,EAAMmM,KAAO,WACX,IAAI/P,KAAKmic,WAAT,CAGA,IAAIvkC,EAAM59Z,KAAKqsb,GACfzuB,EAAIsjC,gBAAgBtjC,EAAIujC,YAAanhc,KAAK89Z,QACtCF,EAAAqmC,SAAS,EAAG,EAAGjkc,KAAKkic,OAAO,GAAIlic,KAAKkic,OAAO,IACjD,EACAt+b,EAAMyrb,QAAU,WACd,IAAIrvb,KAAKmic,WAAT,CAGAnic,KAAKmic,YAAa,EAClB,IAAIvkC,EAAM59Z,KAAKqsb,GACXzuB,EAAAimC,kBAAkB7jc,KAAK89Z,QAC3B99Z,KAAK89Z,OAAS,KACV99Z,KAAKwiB,QACPxiB,KAAKwiB,MAAM6sa,UACXrvb,KAAKwiB,MAAQ,MAEXxiB,KAAKsic,YACH1kC,EAAAkmC,mBAAmB9jc,KAAKsic,WAC5Btic,KAAKsic,UAAY,MAEnB,IAAA,IAASzpc,EAAI,EAAGA,EAAImH,KAAKi2B,MAAM38B,SAAUT,EAClCmH,KAAAi2B,MAAMp9B,GAAGw2b,UACTrvb,KAAAi2B,MAAMp9B,GAAK,KAEdmH,KAAKqic,YACHzkC,EAAAkmC,mBAAmB9jc,KAAKqic,WAC5Bric,KAAKqic,UAAY,MAErB,GAyEJ,KAAA,SAEW9mb,EAASg/Y,EAA0BC,GACtC,IAAA0pC,EAAU1pC,EAAqB,MAAM0pC,QACrCC,EAAc3pC,EAAqB,MACnC4pC,EAAa5pC,EAAqB,MAClC6pC,EAAiB7pC,EAAqB,MAC1Cj/Y,EAAQhf,QACC,SAAoB+nc,EAAQn3b,EAAKnO,GAEpC,IAAAgZ,EAAQosb,EAAWj3b,IAAQ,6CAC3Bo3b,EAAW,oBACF,IAATvlc,IACSulc,EAAAvlc,IAASmlc,EAAYK,gBAAkB,WAAa,UAMjE,IAJA,IAAIC,EAAWP,EAAQ,kCAAmCK,EAAUvsb,GAChE0sb,EAAYR,EAAQ,OAAQO,EAAUH,GACtCK,EAAeL,EAAOr3b,MAAM,MAC5BzB,EAAS,CAAC,EACL3S,EAAI,EAAGA,EAAI8rc,EAAarrc,OAAQT,IAAK,CACxC,IAAA+rc,EAAcD,EAAa9rc,GAC3B,GAAgB,KAAhB+rc,GAAsC,OAAhBA,EAAtB,CACJ,IAAIC,EAAShjc,SAAS+ic,EAAY33b,MAAM,KAAK,IACzC,GAAAnR,MAAM+oc,GACR,MAAM,IAAI3qc,MAAMgqc,EAAQ,4BAA6BU,IAEvDp5b,EAAOq5b,GAAUD,CAL+B,EAOlD,IAAI52W,EAAQq2W,EAAel3b,GAAKF,MAAM,MACtC,IAASpU,EAAI,EAAGA,EAAIm1F,EAAM10F,OAAQT,IAChC,IAAK2S,EAAO3S,EAAI,IAAO2S,EAAO3S,EAAI,IAAO2S,EAAO3S,EAAI,MAEpD4rc,GADWz2W,EAAMn1F,GACE,KACf2S,EAAO3S,EAAI,IAAI,CACb,IAAAiC,EAAI0Q,EAAO3S,EAAI,GACnBiC,EAAIA,EAAEgH,OAAOhH,EAAEmS,MAAM,IAAK,GAAGnT,KAAK,KAAKR,OAAS,GAAGkM,OACvCi/b,GAAAP,EAAQ,aAAcppc,GAG/B,MAAA,CACLkkY,KAAMylE,EAASj/b,OACfs/b,MAAOJ,EAAUl/b,UAMzB,KAAA,SAEW81Z,EAAyBtlW,EAAUwkW,GACtC,IAAAg6B,EAAUh6B,EAAqB,MAC/Bi3B,EAAej3B,EAAqB,MACpC4kC,EAAU5K,EAAQ,CAAC,g+BACnBuQ,EAAcvQ,EAAQ,CAAC,mjCACvBwQ,EAAWxQ,EAAQ,CAAC,gzDACpByQ,EAAa,CACf,CAAEh5b,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,eAAgBjN,KAAM,QAC9B,CAAEiN,KAAM,YAAajN,KAAM,SAC3B,CAAEiN,KAAM,YAAajN,KAAM,SAC3B,CAAEiN,KAAM,QAASjN,KAAM,SAEhBg3D,EAAAy7X,aAAe,SAAS7zB,GAC/B,OAAO6zB,EAAa7zB,EAAKwhC,EAAS2F,EAAa,KAAME,EACvD,EACSjvY,EAAAmoY,iBAAmB,SAASvgC,GACnC,OAAO6zB,EAAa7zB,EAAKwhC,EAAS4F,EAAU,KAAMC,EACpD,GAIJ,KAAA,SAEW1pb,EAASg/Y,EAA0BC,GAE1Cj/Y,EAAQhf,QA8WR,SAAwB4/I,GACtB,IAAIyhR,EAAMzhR,EAAQkwS,IAAMlwS,EAAQlsB,OAASksB,EAAQlsB,MAAMo8T,GACnDmF,EAASC,EAAa7zB,GACnB4zB,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAW28W,aAAajvU,SAAW,EACnCu7T,EAAAjpW,WAAW48W,UAAUlvU,SAAW,EAChCu7T,EAAAjpW,WAAWquE,UAAU3gC,SAAW,EAChCu7T,EAAAjpW,WAAWtyD,MAAMggG,SAAW,EAC/B,IAAAwkU,EAAa0D,EAAiBvgC,GACvB68B,EAAAlyW,WAAWpzE,SAAS8gH,SAAW,EAC/BwkU,EAAAlyW,WAAW28W,aAAajvU,SAAW,EACnCwkU,EAAAlyW,WAAW48W,UAAUlvU,SAAW,EAChCwkU,EAAAlyW,WAAWquE,UAAU3gC,SAAW,EAChCwkU,EAAAlyW,WAAWtyD,MAAMggG,SAAW,EAmCvC,IAlCIx7H,IAAAA,EAASoC,EAAa+ga,GACtB0zB,EAAM5zB,EAAUE,EAAK,CACvB,CACEnja,OAAUA,EACV6E,KAAQ,EACR5E,OAAU,EACV62b,OAAU,IAEZ,CACE92b,OAAUA,EACV6E,KAAQ,EACR5E,OAAU,GACV62b,OAAU,IAEZ,CACE92b,OAAUA,EACV6E,KAAQ,EACR5E,OAAU,GACV62b,OAAU,IAEZ,CACE92b,OAAUA,EACV6E,KAAQ,EACR5E,OAAU,GACV62b,OAAU,IAEZ,CACE92b,OAAUA,EACV6E,KAAQ,EACR5E,OAAU,GACV62b,OAAU,MAGV6T,EAAiBhqC,EAAQ,IAAIpha,MAAM,MAAU,CAAC,IAAK,EAAG,IACjDnB,EAAI,EAAGA,EAAI,OAAWA,EACdusc,EAAAlmc,KAAKrG,GAAK,IAEvB,IAAA0hc,EAAUH,EAAcx8B,EAAKwnC,GACjC7K,EAAQnva,KAAOwyY,EAAIynC,OACf,IAAAC,EAAW,IAAIC,EAAS3nC,EAAK4zB,EAAQiJ,EAAYhgc,EAAQ62b,EAAKiJ,GAE3D,OADP+K,EAAS36a,OAAOwxH,GACTmpT,GApaL,IAAAzoc,EAAe29Z,EAAqB,MACpCkD,EAAYlD,EAAqB,MACjC4/B,EAAgB5/B,EAAqB,MACrCgrC,EAAa,IAAIzrc,WAAW,GAC5B0rc,EAAa,IAAI14X,aAAay4X,EAAW/qc,QAQzCijb,EAAUljB,EAAqB,MAC/BY,EAAUZ,EAAqB,MAC/By/B,EAAUz/B,EAAqB,MAC/Bi3B,EAAewI,EAAQxI,aACvB0M,EAAmBlE,EAAQkE,iBAC3Bx1Y,EAAY,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEO,SAAA3V,EAASvuC,EAAG9F,GAEnB,IADA,IAAItD,EAAI,EACCxC,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAIuC,EAAIqJ,EAAE5L,GAAK8F,EAAE9F,GACjBwC,GAAKD,EAAIA,EAEJ,OAAAI,KAAKmjB,KAAKtjB,GAEnB,SAASqqc,EAAiB/0V,GAExB,IADI,IAAA9hG,EAAS,CAAC,EAAO,KAAA,KAAU,KAAG,CAAC,IAAK,IAAK,MACpChW,EAAI,EAAGA,EAAI,IAAKA,EACvBgW,EAAO,GAAGhW,GAAK2C,KAAK8J,IAAIqrG,EAAO,GAAG93G,GAAIgW,EAAO,GAAGhW,IAChDgW,EAAO,GAAGhW,GAAK2C,KAAKoH,IAAI+tG,EAAO,GAAG93G,GAAIgW,EAAO,GAAGhW,IAE3C,OAAAgW,EAET,SAAS82b,EAAWC,EAAKzwb,EAAUi8B,EAAOysZ,GACxC79b,KAAKmlc,UAAYS,EACjB5lc,KAAKmV,SAAWA,EAChBnV,KAAKoxC,MAAQA,EACbpxC,KAAK69b,eAAiBA,EAExB,SAAS0H,EAAS3nC,EAAK4zB,EAAQiJ,EAAYhgc,EAAQ62b,EAAKiJ,GACtDv6b,KAAKqsb,GAAKzuB,EACV59Z,KAAKwxb,OAASA,EACdxxb,KAAKy6b,WAAaA,EAClBz6b,KAAKvF,OAASA,EACduF,KAAKsxb,IAAMA,EACXtxb,KAAKi7b,WAAa,CAChB,EAAC,KAAW,KAAW,KACvB,CAAC1/b,IAAUA,IAAUA,MAEvByE,KAAK8mC,OAAS,GACd9mC,KAAKmlc,UAAY,GACjBnlc,KAAKm/b,YAAc,EACdn/b,KAAA2wG,OAAS,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACjC3wG,KAAKg7b,OAAS,EACdh7b,KAAK42J,UAAY,EACjB52J,KAAKu6b,QAAUA,EACfv6b,KAAK6lc,UAAY,EACjB7lc,KAAK0gF,QAAU,EACf1gF,KAAK+5E,UAAW,EAChB/5E,KAAKquI,OAAQ,EACbruI,KAAKssb,WAAa,EAEpB,IAAI1ob,EAAQ2hc,EAASroc,UACrB0G,EAAMmsb,cAAgB,WACpB,OAAO/vb,KAAK+5E,QACd,EACAn2E,EAAMksb,SAAW,WACf,OAAQ9vb,KAAK+5E,QACf,EACAn2E,EAAMi4b,UAAY,EACZj4b,EAAAk4b,YAAc,SAASznb,GAC3BrU,KAAKg7b,OAAS3mb,CAChB,EACAzQ,EAAMosb,gBAAkBpsb,EAAMuhK,KAAO,SAAS4+C,GACxC,GAAC/jN,KAAKm/b,YAAN,CACJ,IAAIvhC,EAAM59Z,KAAKqsb,GACXmF,EAASxxb,KAAKwxb,OACdF,EAAMtxb,KAAKsxb,IACfE,EAAOzhb,OACPyhb,EAAOM,SAAW,CAChB5pJ,MAAOnkF,EAAOmkF,OAASv/O,EACvBv2B,KAAM2xL,EAAO3xL,MAAQu2B,EACrBiD,WAAYm4J,EAAOn4J,YAAcjD,EACjCsyY,WAAYyK,EAAiB1lc,KAAKi7b,YAClC6K,YAAa9lc,KAAKu6b,QAAQxqb,OAC1B81b,UAAW7lc,KAAK6lc,UAAY7lc,KAAKmlc,UAAUnlc,KAAKmlc,UAAU7rc,OAAS,GACnEonF,QAAS1gF,KAAK0gF,QACdyzW,YAAa,CAACv2B,EAAI/zJ,mBAAoB+zJ,EAAI9zJ,qBAC1CwiL,WAAYtsb,KAAKssb,YAEnBgF,EAAIvhb,OACJuhb,EAAInsR,KAAKy4P,EAAImoC,eAAgB/lc,KAAKm/b,aAClC7N,EAAInzB,QAlBmB,CAmBzB,EACMv6Z,EAAA85b,SAAW,SAAS35O,GACpB,GAAC/jN,KAAKm/b,YAAN,CACJ,IAAIvhC,EAAM59Z,KAAKqsb,GACXmF,EAASxxb,KAAKy6b,WACdnJ,EAAMtxb,KAAKsxb,IACfE,EAAOzhb,OACPyhb,EAAOM,SAAW,CAChB5pJ,MAAOnkF,EAAOmkF,OAASv/O,EACvBv2B,KAAM2xL,EAAO3xL,MAAQu2B,EACrBiD,WAAYm4J,EAAOn4J,YAAcjD,EACjCqyY,OAAQh7b,KAAKg7b,OACbC,WAAYyK,EAAiB1lc,KAAKi7b,YAClC9G,YAAa,CAACv2B,EAAI/zJ,mBAAoB+zJ,EAAI9zJ,qBAC1CwiL,WAAYtsb,KAAKssb,YAEnBgF,EAAIvhb,OACJuhb,EAAInsR,KAAKy4P,EAAImoC,eAAgB/lc,KAAKm/b,aAClC7N,EAAInzB,QAhBmB,CAiBzB,EACMv6Z,EAAA+mB,OAAS,SAASwxH,GACtB,IAAItjJ,EAAG0I,EACPvB,KAAKquI,OAAQ,EACT,IAAAm3I,IAAgBrpI,EAAQqpI,YACxB,cAAerpI,IACjBn8I,KAAK6lc,UAAY1pT,EAAQ0pT,WAE3B7lc,KAAK+5E,UAAW,EACZ,YAAaoiE,IACVn8I,KAAA0gF,SAAWy7D,EAAQz7D,QACpB1gF,KAAK0gF,QAAU,IACjB1gF,KAAK+5E,UAAW,IAGpB,IAAIt/E,EAAS,GACTurc,EAAiB,GACjBC,EAAa,GACbd,EAAY,EACZhG,EAAc,EACdxuV,EAAS,CACX,CAACp1G,IAAUA,IAAUA,KACrB,EAAC,KAAW,KAAW,MAErB8hR,EAAYlhI,EAAQhnI,UAAYgnI,EAAQkhI,UAC5C,GAAIA,EAAW,CACT,IAAArhH,EAAS7f,EAAQlmH,OAASkmH,EAAQ6f,QAAU,CAAC,EAAG,EAAG,EAAG,GACtDpF,EAAYza,EAAQya,WAAa,EACjCsvS,GAAS,EACbhJ,EACE,IAAKrkc,EAAI,EAAGA,EAAIwkR,EAAU/jR,SAAUT,EAAG,CACjC,IAkBAstc,EAAQC,EA0BRx1a,EA5CAnsB,EAAI44Q,EAAUxkR,EAAI,GAClB8F,EAAI0+Q,EAAUxkR,GAGlB,IAFAmtc,EAAersc,KAAKwrc,GACTc,EAAAtsc,KAAK8K,EAAE3G,SACbyD,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,GAAAzF,MAAM2I,EAAElD,KAAOzF,MAAM6C,EAAE4C,MAAQwE,SAAStB,EAAElD,MAAQwE,SAASpH,EAAE4C,IAAK,CACpE,IAAKikR,GAAe/qR,EAAOnB,OAAS,EAAG,CACrC,IAAA,IAASwoB,EAAI,EAAGA,EAAI,KAAMA,EACxBrnB,EAAOd,KAAKc,EAAOA,EAAOnB,OAAS,KAEtB6lc,GAAA,EACN+G,GAAA,EAEF,SAAAhJ,EAEXvsV,EAAO,GAAGpvG,GAAK/F,KAAKoH,IAAI+tG,EAAO,GAAGpvG,GAAIkD,EAAElD,GAAI5C,EAAE4C,IAC9CovG,EAAO,GAAGpvG,GAAK/F,KAAK8J,IAAIqrG,EAAO,GAAGpvG,GAAIkD,EAAElD,GAAI5C,EAAE4C,IAG5CvH,MAAMiF,QAAQ+8J,EAAO,KACvBmqS,EAASnqS,EAAO1iK,OAAST,EAAI,EAAImjK,EAAOnjK,EAAI,GAE1CmjK,EAAO1iK,OAAS,EAAI0iK,EAAOA,EAAO1iK,OAAS,GAAC,CAEzC,EAAG,EAAG,EAAG,GAGd8sc,EAASpqS,EAAO1iK,OAAST,EAAImjK,EAAOnjK,GAElCmjK,EAAO1iK,OAAS,EAAI0iK,EAAOA,EAAO1iK,OAAS,GAAC,CAEzC,EAAG,EAAG,EAAG,IAId6sc,EAASC,EAASpqS,EAEE,IAAlBmqS,EAAO7sc,SACA6sc,EAAA,CAACA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI,IAEvB,IAAlBC,EAAO9sc,SACA8sc,EAAA,CAACA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAI,KAExCpmc,KAAK+5E,UAAYosX,EAAO,GAAK,SAAQpsX,UAAW,GAGnDnpD,EADE52B,MAAMiF,QAAQ23J,GACXA,EAAUt9J,OAAST,EAAI,EAAI+9J,EAAU/9J,EAAI,GAE5C+9J,EAAUt9J,OAAS,EAAIs9J,EAAUA,EAAUt9J,OAAS,GAAC,CAElD,EAAG,EAAG,EAAG,GAITs9J,EAEP,IAAIpwH,EAAM2+Z,EAEV,GADaA,GAAAnyZ,EAASvuC,EAAG9F,GACrBunc,EAAQ,CACV,IAAK3kc,EAAI,EAAGA,EAAI,IAAKA,EACZ9G,EAAAd,KACL8K,EAAE,GACFA,EAAE,GACFA,EAAE,GACF9F,EAAE,GACFA,EAAE,GACFA,EAAE,GACF6nC,EACA5V,EACAu1a,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,IAGIhH,GAAA,EACN+G,GAAA,EAEJzrc,EAAAd,KACL8K,EAAE,GACFA,EAAE,GACFA,EAAE,GACF9F,EAAE,GACFA,EAAE,GACFA,EAAE,GACF6nC,EACA5V,EACAu1a,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACP1hc,EAAE,GACFA,EAAE,GACFA,EAAE,GACF9F,EAAE,GACFA,EAAE,GACFA,EAAE,GACF6nC,GACC5V,EACDu1a,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPxnc,EAAE,GACFA,EAAE,GACFA,EAAE,GACF8F,EAAE,GACFA,EAAE,GACFA,EAAE,GACF0gc,GACCv0a,EACDw1a,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPznc,EAAE,GACFA,EAAE,GACFA,EAAE,GACF8F,EAAE,GACFA,EAAE,GACFA,EAAE,GACF0gc,EACAv0a,EACAw1a,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,IAEMjH,GAAA,GAUrB,GAPKn/b,KAAAvF,OAAOkwB,OAAOlwB,GACnBurc,EAAersc,KAAKwrc,GACpBc,EAAWtsc,KAAK0jR,EAAUA,EAAU/jR,OAAS,GAAGwE,SAChDkC,KAAK2wG,OAASA,EACd3wG,KAAKm/b,YAAcA,EACnBn/b,KAAK8mC,OAASm/Z,EACdjmc,KAAKmlc,UAAYa,EACb,WAAY7pT,EAAS,CACvB,IACIkqT,EADYlqT,EAAQmqT,OACExoc,QAE1B,IADAuoc,EAAUj8Z,QAAQ,GACbvxC,EAAI,EAAGA,EAAIwtc,EAAU/sc,SAAUT,EAClCwtc,EAAUxtc,GAAKwtc,EAAUxtc,EAAI,GAAKwtc,EAAUxtc,GAE1C,IAAAitc,EAAc1qC,EAAQ,IAAIpha,MAAM,MAAU,CAAC,IAAK,EAAG,IACvD,IAAKnB,EAAI,EAAGA,EAAI,MAAOA,EAAG,CACxB,IAAK0I,EAAI,EAAGA,EAAI,IAAKA,EACnBukc,EAAY/gc,IAAIlM,EAAG,EAAG0I,EAAG,GAE4C,EAAnEm8a,EAAQjd,GAAG4lC,EAAWA,EAAUA,EAAU/sc,OAAS,GAAKT,EAAI,KAC9Ditc,EAAY/gc,IAAIlM,EAAG,EAAG,EAAG,GAEzBitc,EAAY/gc,IAAIlM,EAAG,EAAG,EAAG,KAGxBmH,KAAAu6b,QAAQ+B,UAAUwJ,GAE3B,EACAlic,EAAMyrb,QAAU,WACdrvb,KAAKwxb,OAAOnC,UACZrvb,KAAKsxb,IAAIjC,UACTrvb,KAAKvF,OAAO40b,SACd,EACMzrb,EAAA+lQ,KAAO,SAASjkP,GACpB,IAAKA,EACI,OAAA,KAEL,GAAAA,EAAUrR,KAAOrU,KAAKg7b,OACjB,OAAA,KAET,IAAI4K,EAvUN,SAAqBlhc,EAAGC,EAAGif,EAAG4I,GAK5B,OAJAg5a,EAAW,GAAKh5a,EAChBg5a,EAAW,GAAK5hb,EAChB4hb,EAAW,GAAK7gc,EAChB6gc,EAAW,GAAK9gc,EACT+gc,EAAW,GAkURc,CACR7gb,EAAUhqB,MAAM,GAChBgqB,EAAUhqB,MAAM,GAChBgqB,EAAUhqB,MAAM,GAChB,GAEE01C,EAAQssY,EAAQjd,GAAGzga,KAAKmlc,UAAWS,GACvC,GAAIx0Z,EAAQ,EACH,OAAA,KAET,GAAIA,IAAUpxC,KAAKmlc,UAAU7rc,OAAS,EACpC,OAAO,IAAIqsc,EACT3lc,KAAKmlc,UAAUnlc,KAAKmlc,UAAU7rc,OAAS,GACvC0G,KAAK8mC,OAAO9mC,KAAK8mC,OAAOxtC,OAAS,GAAGwE,QACpCszC,GAQJ,IALI,IAAA3sC,EAAIzE,KAAK8mC,OAAOsK,GAChBzyC,EAAIqB,KAAK8mC,OAAOtrC,KAAKoH,IAAIwuC,EAAQ,EAAGpxC,KAAK8mC,OAAOxtC,OAAS,IACzD+lB,GAAKumb,EAAM5lc,KAAKmlc,UAAU/zZ,KAAWpxC,KAAKmlc,UAAU/zZ,EAAQ,GAAKpxC,KAAKmlc,UAAU/zZ,IAChF21Y,EAAK,EAAI1na,EACT3a,EAAI,CAAC,EAAG,EAAG,GACN7L,EAAI,EAAGA,EAAI,IAAKA,EACrB6L,EAAA7L,GAAKkub,EAAKtib,EAAE5L,GAAKwmB,EAAI1gB,EAAE9F,GAEvB,IAAA2tc,EAAYhrc,KAAKoH,IAAIyc,EAAI,GAAM+xB,EAAQA,EAAQ,EAAGpxC,KAAK8mC,OAAOxtC,OAAS,GAC3E,OAAO,IAAIqsc,EACTC,EACAlhc,EACA8hc,EACAxmc,KAAK8mC,OAAO0/Z,GAEhB,GA6DJ,KAAA,SAEWjrb,GACPA,EAAQhf,QACR,SAAekI,GACT,IAAA0B,EAAM,IAAI4mE,aAAa,IAiBpB,OAhBH5mE,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACL0B,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,WACM,IAAA4J,EAAM,IAAI4mE,aAAa,IAiBpB,OAhBP5mE,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAqBkI,GACf,IAAA6qF,EAAM7qF,EAAE,GAAIsqF,EAAMtqF,EAAE,GAAIuqF,EAAMvqF,EAAE,GAAIwqF,EAAMxqF,EAAE,GAAI8qF,EAAM9qF,EAAE,GAAI+qF,EAAM/qF,EAAE,GAAIyqF,EAAMzqF,EAAE,GAAI0qF,EAAM1qF,EAAE,GAAIgrF,EAAMhrF,EAAE,GAAIirF,EAAMjrF,EAAE,GAAIkrF,EAAMlrF,EAAE,IAAK2qF,EAAM3qF,EAAE,IAAKmrF,EAAMnrF,EAAE,IAAKorF,EAAMprF,EAAE,IAAKqrF,EAAMrrF,EAAE,IAAKsrF,EAAMtrF,EAAE,IAC9L,OADyM6qF,EAAME,EAAMT,EAAMQ,IAA6SI,EAAMI,EAAMX,EAAMU,IAApTR,EAAMJ,EAAMF,EAAMO,IAAmPG,EAAMK,EAAMX,EAAMS,IAA1PP,EAAMH,EAAMF,EAAMM,IAAyLG,EAAMI,EAAMH,EAAME,IAAhMd,EAAMG,EAAMF,EAAMQ,IAA+HC,EAAMM,EAAMX,EAAMQ,IAAtIb,EAAMI,EAAMF,EAAMO,IAAqEC,EAAMK,EAAMH,EAAMC,IAA5EZ,EAAMG,EAAMF,EAAMC,IAAWO,EAAMI,EAAMH,EAAME,KAOtZ,KAAA,SAEWr0E,GACPA,EAAQhf,QACC,SAAS4J,EAAKyuB,GACjB,IAAAlwB,EAAIkwB,EAAE,GAAIjwB,EAAIiwB,EAAE,GAAIhR,EAAIgR,EAAE,GAAIpI,EAAIoI,EAAE,GAAI0Z,EAAK5pC,EAAIA,EAAG6pC,EAAK5pC,EAAIA,EAAGotF,EAAKnuE,EAAIA,EAAGouE,EAAKttF,EAAI4pC,EAAIykD,EAAKpuF,EAAI2pC,EAAI6jD,EAAKxtF,EAAI4pC,EAAIykD,EAAKpvE,EAAI0qB,EAAI2kD,EAAKrvE,EAAI2qB,EAAI8jD,EAAKzuE,EAAImuE,EAAIO,EAAK9lE,EAAI8hB,EAAIikD,EAAK/lE,EAAI+hB,EAAIikD,EAAKhmE,EAAIulE,EAiB1L,OAhBH5rF,EAAA,GAAK,EAAIgsF,EAAKE,EACdlsF,EAAA,GAAK4sF,EAAKP,EACVrsF,EAAA,GAAK6sF,EAAKT,EACdpsF,EAAI,GAAK,EACLA,EAAA,GAAK4sF,EAAKP,EACVrsF,EAAA,GAAK,EAAI6rF,EAAKK,EACdlsF,EAAA,GAAK8sF,EAAKX,EACdnsF,EAAI,GAAK,EACLA,EAAA,GAAK6sF,EAAKT,EACVpsF,EAAA,GAAK8sF,EAAKX,EACVnsF,EAAA,IAAM,EAAI6rF,EAAKG,EACnBhsF,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAwB4J,EAAKyuB,EAAGvW,GACnC,IAAA3Z,EAAIkwB,EAAE,GAAIjwB,EAAIiwB,EAAE,GAAIhR,EAAIgR,EAAE,GAAIpI,EAAIoI,EAAE,GAAI0Z,EAAK5pC,EAAIA,EAAG6pC,EAAK5pC,EAAIA,EAAGotF,EAAKnuE,EAAIA,EAAGouE,EAAKttF,EAAI4pC,EAAI2jD,EAAKvtF,EAAI6pC,EAAI2jD,EAAKxtF,EAAIqtF,EAAII,EAAKxtF,EAAI4pC,EAAI6jD,EAAKztF,EAAIotF,EAAIM,EAAKzuE,EAAImuE,EAAIO,EAAK9lE,EAAI8hB,EAAIikD,EAAK/lE,EAAI+hB,EAAIikD,EAAKhmE,EAAIulE,EAiB1L,OAhBH5rF,EAAA,GAAK,GAAKgsF,EAAKE,GACflsF,EAAA,GAAK8rF,EAAKO,EACVrsF,EAAA,GAAK+rF,EAAKK,EACdpsF,EAAI,GAAK,EACLA,EAAA,GAAK8rF,EAAKO,EACVrsF,EAAA,GAAK,GAAK6rF,EAAKK,GACflsF,EAAA,GAAKisF,EAAKE,EACdnsF,EAAI,GAAK,EACLA,EAAA,GAAK+rF,EAAKK,EACVpsF,EAAA,GAAKisF,EAAKE,EACVnsF,EAAA,IAAM,GAAK6rF,EAAKG,GACpBhsF,EAAI,IAAM,EACNA,EAAA,IAAMkY,EAAE,GACRlY,EAAA,IAAMkY,EAAE,GACRlY,EAAA,IAAMkY,EAAE,GACZlY,EAAI,IAAM,EACHA,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAmB4J,GAiBV,OAhBPA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACHA,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAO4J,EAAK1B,GACnB,IAAI6qF,EAAM7qF,EAAE,GAAIsqF,EAAMtqF,EAAE,GAAIuqF,EAAMvqF,EAAE,GAAIwqF,EAAMxqF,EAAE,GAAI8qF,EAAM9qF,EAAE,GAAI+qF,EAAM/qF,EAAE,GAAIyqF,EAAMzqF,EAAE,GAAI0qF,EAAM1qF,EAAE,GAAIgrF,EAAMhrF,EAAE,GAAIirF,EAAMjrF,EAAE,GAAIkrF,EAAMlrF,EAAE,IAAK2qF,EAAM3qF,EAAE,IAAKmrF,EAAMnrF,EAAE,IAAKorF,EAAMprF,EAAE,IAAKqrF,EAAMrrF,EAAE,IAAKsrF,EAAMtrF,EAAE,IAAKurF,EAAMV,EAAME,EAAMT,EAAMQ,EAAKU,EAAMX,EAAMJ,EAAMF,EAAMO,EAAKW,EAAMZ,EAAMH,EAAMF,EAAMM,EAAKY,EAAMpB,EAAMG,EAAMF,EAAMQ,EAAKY,EAAMrB,EAAMI,EAAMF,EAAMO,EAAKa,EAAMrB,EAAMG,EAAMF,EAAMC,EAAKoB,EAAMb,EAAMI,EAAMH,EAAME,EAAKW,EAAMd,EAAMK,EAAMH,EAAMC,EAAKY,EAAMf,EAAMM,EAAMX,EAAMQ,EAAKa,EAAMf,EAAMI,EAAMH,EAAME,EAAKa,EAAMhB,EAAMK,EAAMX,EAAMS,EAAKc,EAAMhB,EAAMI,EAAMX,EAAMU,EAAKc,EAAMZ,EAAMW,EAAMV,EAAMS,EAAMR,EAAMO,EAAMN,EAAMK,EAAMJ,EAAMG,EAAMF,EAAMC,EAC9mB,OAAKM,GAGLA,EAAM,EAAIA,EACVzqF,EAAI,IAAMqpF,EAAMmB,EAAMzB,EAAMwB,EAAMvB,EAAMsB,GAAOG,EAC/CzqF,EAAI,IAAM6oF,EAAM0B,EAAM3B,EAAM4B,EAAM1B,EAAMwB,GAAOG,EAC/CzqF,EAAI,IAAM0pF,EAAMQ,EAAMP,EAAMM,EAAML,EAAMI,GAAOS,EAC/CzqF,EAAI,IAAMwpF,EAAMS,EAAMV,EAAMW,EAAMjB,EAAMe,GAAOS,EAC/CzqF,EAAI,IAAM+oF,EAAMsB,EAAMjB,EAAMoB,EAAMxB,EAAMoB,GAAOK,EAC/CzqF,EAAI,IAAMmpF,EAAMqB,EAAM3B,EAAMwB,EAAMvB,EAAMsB,GAAOK,EAC/CzqF,EAAI,IAAM2pF,EAAMI,EAAMN,EAAMS,EAAMN,EAAME,GAAOW,EAC/CzqF,EAAI,IAAMspF,EAAMY,EAAMV,EAAMO,EAAMd,EAAMa,GAAOW,EAC/CzqF,EAAI,IAAMopF,EAAMmB,EAAMlB,EAAMgB,EAAMrB,EAAMmB,GAAOM,EAC/CzqF,EAAI,IAAM4oF,EAAMyB,EAAMlB,EAAMoB,EAAMzB,EAAMqB,GAAOM,EAC/CzqF,EAAI,KAAOypF,EAAMQ,EAAMP,EAAMK,EAAMH,EAAMC,GAAOY,EAChDzqF,EAAI,KAAOupF,EAAMQ,EAAMT,EAAMW,EAAMhB,EAAMY,GAAOY,EAChDzqF,EAAI,KAAOqpF,EAAMe,EAAMhB,EAAMkB,EAAMvB,EAAMoB,GAAOM,EAChDzqF,EAAI,KAAOmpF,EAAMmB,EAAM1B,EAAMwB,EAAMvB,EAAMsB,GAAOM,EAChDzqF,EAAI,KAAO0pF,EAAMI,EAAML,EAAMO,EAAML,EAAME,GAAOY,EAChDzqF,EAAI,KAAOspF,EAAMU,EAAMT,EAAMO,EAAMN,EAAMK,GAAOY,EACzCzqF,GAnBE,OAyBf,KAAA,SAEWoV,EAASg/Y,EAA0BC,GACtC,IAAA7xW,EAAY6xW,EAAqB,MACrCj/Y,EAAQhf,QACR,SAAgB4J,EAAKuuF,EAAK7iE,EAAQ8iE,GAC5B,IAAA3iE,EAAIC,EAAIqc,EAAIpc,EAAIC,EAAIoc,EAAIqmD,EAAIC,EAAI9C,EAAI74F,EAAK47F,EAAOJ,EAAI,GAAIK,EAAOL,EAAI,GAAIM,EAAON,EAAI,GAAIO,EAAMN,EAAG,GAAIO,EAAMP,EAAG,GAAIQ,EAAMR,EAAG,GAAIS,EAAUvjE,EAAO,GAAIwjE,EAAUxjE,EAAO,GAAIyjE,EAAUzjE,EAAO,GAC5L,OAAIr2B,KAAKK,IAAIi5F,EAAOM,GAAW,MAAQ55F,KAAKK,IAAIk5F,EAAOM,GAAW,MAAQ75F,KAAKK,IAAIm5F,EAAOM,GAAW,KAC5F3sC,EAAUxiD,IAEnByuF,EAAKE,EAAOM,EACZP,EAAKE,EAAOM,EACZtD,EAAKiD,EAAOM,EACNp8F,EAAA,EAAIsC,KAAKmjB,KAAKi2E,EAAKA,EAAKC,EAAKA,EAAK9C,EAAKA,GAIxC//D,EAAAkjE,GADCnD,GAAA74F,GACUi8F,GAFVN,GAAA37F,GAGD+4B,EAAAkjE,GAJCP,GAAA17F,GAIU+7F,EAAMlD,EACjBzjD,EAAA2mD,EAAMJ,EAAKK,EAAMN,GACtB17F,EAAMsC,KAAKmjB,KAAKqT,EAAKA,EAAKC,EAAKA,EAAKqc,EAAKA,KAOjCtc,GADN94B,EAAM,EAAIA,EAEJ+4B,GAAA/4B,EACAo1C,GAAAp1C,IAPD84B,EAAA,EACAC,EAAA,EACAqc,EAAA,GAOFpc,EAAA2iE,EAAKvmD,EAAKyjD,EAAK9/D,EACfE,EAAA4/D,EAAK//D,EAAK4iE,EAAKtmD,EACfC,EAAAqmD,EAAK3iE,EAAK4iE,EAAK7iE,GACpB94B,EAAMsC,KAAKmjB,KAAKuT,EAAKA,EAAKC,EAAKA,EAAKoc,EAAKA,KAOjCrc,GADNh5B,EAAM,EAAIA,EAEJi5B,GAAAj5B,EACAq1C,GAAAr1C,IAPDg5B,EAAA,EACAC,EAAA,EACAoc,EAAA,GAOPpoC,EAAI,GAAK6rB,EACT7rB,EAAI,GAAK+rB,EACT/rB,EAAI,GAAKyuF,EACTzuF,EAAI,GAAK,EACTA,EAAI,GAAK8rB,EACT9rB,EAAI,GAAKgsB,EACThsB,EAAI,GAAK0uF,EACT1uF,EAAI,GAAK,EACTA,EAAI,GAAKmoC,EACTnoC,EAAI,GAAKooC,EACTpoC,EAAI,IAAM4rF,EACV5rF,EAAI,IAAM,EACVA,EAAI,MAAQ6rB,EAAK8iE,EAAO7iE,EAAK8iE,EAAOzmD,EAAK0mD,GACzC7uF,EAAI,MAAQ+rB,EAAK4iE,EAAO3iE,EAAK4iE,EAAOxmD,EAAKymD,GACzC7uF,EAAI,MAAQyuF,EAAKE,EAAOD,EAAKE,EAAOhD,EAAKiD,GACzC7uF,EAAI,IAAM,EACHA,KAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAS4J,EAAK1B,EAAG9F,GACxB,IAAI2wF,EAAM7qF,EAAE,GAAIsqF,EAAMtqF,EAAE,GAAIuqF,EAAMvqF,EAAE,GAAIwqF,EAAMxqF,EAAE,GAAI8qF,EAAM9qF,EAAE,GAAI+qF,EAAM/qF,EAAE,GAAIyqF,EAAMzqF,EAAE,GAAI0qF,EAAM1qF,EAAE,GAAIgrF,EAAMhrF,EAAE,GAAIirF,EAAMjrF,EAAE,GAAIkrF,EAAMlrF,EAAE,IAAK2qF,EAAM3qF,EAAE,IAAKmrF,EAAMnrF,EAAE,IAAKorF,EAAMprF,EAAE,IAAKqrF,EAAMrrF,EAAE,IAAKsrF,EAAMtrF,EAAE,IACjMysB,EAAKvyB,EAAE,GAAIwyB,EAAKxyB,EAAE,GAAIqyF,EAAKryF,EAAE,GAAIsyF,EAAKtyF,EAAE,GA6BrC,OA5BHwH,EAAA,GAAK+qB,EAAKo+D,EAAMn+D,EAAKo+D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC3CzpF,EAAA,GAAK+qB,EAAK69D,EAAM59D,EAAKq+D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC3C1pF,EAAA,GAAK+qB,EAAK89D,EAAM79D,EAAK+9D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAC3C3pF,EAAA,GAAK+qB,EAAK+9D,EAAM99D,EAAKg+D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EAC/C7+D,EAAKvyB,EAAE,GACPwyB,EAAKxyB,EAAE,GACPqyF,EAAKryF,EAAE,GACPsyF,EAAKtyF,EAAE,GACHwH,EAAA,GAAK+qB,EAAKo+D,EAAMn+D,EAAKo+D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC3CzpF,EAAA,GAAK+qB,EAAK69D,EAAM59D,EAAKq+D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC3C1pF,EAAA,GAAK+qB,EAAK89D,EAAM79D,EAAK+9D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAC3C3pF,EAAA,GAAK+qB,EAAK+9D,EAAM99D,EAAKg+D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EAC/C7+D,EAAKvyB,EAAE,GACPwyB,EAAKxyB,EAAE,GACPqyF,EAAKryF,EAAE,IACPsyF,EAAKtyF,EAAE,IACHwH,EAAA,GAAK+qB,EAAKo+D,EAAMn+D,EAAKo+D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC3CzpF,EAAA,GAAK+qB,EAAK69D,EAAM59D,EAAKq+D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC3C1pF,EAAA,IAAM+qB,EAAK89D,EAAM79D,EAAK+9D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAC5C3pF,EAAA,IAAM+qB,EAAK+9D,EAAM99D,EAAKg+D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EAChD7+D,EAAKvyB,EAAE,IACPwyB,EAAKxyB,EAAE,IACPqyF,EAAKryF,EAAE,IACPsyF,EAAKtyF,EAAE,IACHwH,EAAA,IAAM+qB,EAAKo+D,EAAMn+D,EAAKo+D,EAAMyB,EAAKvB,EAAMwB,EAAKrB,EAC5CzpF,EAAA,IAAM+qB,EAAK69D,EAAM59D,EAAKq+D,EAAMwB,EAAKtB,EAAMuB,EAAKpB,EAC5C1pF,EAAA,IAAM+qB,EAAK89D,EAAM79D,EAAK+9D,EAAM8B,EAAKrB,EAAMsB,EAAKnB,EAC5C3pF,EAAA,IAAM+qB,EAAK+9D,EAAM99D,EAAKg+D,EAAM6B,EAAK5B,EAAM6B,EAAKlB,EACzC5pF,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAe4J,EAAKsX,EAAME,EAAO0gC,EAAQ5wB,EAAK0lE,EAAMC,GAC9C,IAAAmB,EAAK,GAAK92E,EAAOE,GAAQ62E,EAAK,GAAKn2C,EAAS5wB,GAAM6lE,EAAK,GAAKH,EAAOC,GAiBhE,OAhBHjtF,EAAA,IAAU,EAAAouF,EACdpuF,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACLA,EAAA,IAAU,EAAAquF,EACdruF,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACLA,EAAA,IAAM,EAAImtF,EACdntF,EAAI,IAAM,EACNA,EAAA,KAAOsX,EAAOE,GAAS42E,EACvBpuF,EAAA,KAAOsnB,EAAM4wB,GAAUm2C,EACvBruF,EAAA,KAAOitF,EAAMD,GAAQG,EACzBntF,EAAI,IAAM,EACHA,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAqB4J,EAAKqtF,EAAMC,EAAQN,EAAMC,GACxC,IAAAj4E,EAAI,EAAI3f,KAAKimC,IAAI+xD,EAAO,GAAIF,EAAK,GAAKH,EAAOC,GAiB1C,OAhBHjtF,EAAA,GAAKgV,EAAIs4E,EACbttF,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAKgV,EACThV,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACLA,EAAA,KAAOitF,EAAMD,GAAQG,EACzBntF,EAAI,KAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EACVA,EAAI,IAAM,EAAIitF,EAAMD,EAAOG,EAC3BntF,EAAI,IAAM,EACHA,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAgB4J,EAAK1B,EAAG4sF,EAAKjgC,GACvB,IAA+E/1D,EAAGM,EAAG0jB,EAAGiwE,EAAKP,EAAKC,EAAKC,EAAKM,EAAKC,EAAKN,EAAKC,EAAKM,EAAKC,EAAKC,EAAKP,EAAKY,EAAKC,EAAKC,EAAKQ,EAAKC,EAAKW,EAAKC,EAAKC,EAAKC,EAA5L/sF,EAAI0sD,EAAK,GAAIzsD,EAAIysD,EAAK,GAAIxtC,EAAIwtC,EAAK,GAAIl4D,EAAMsC,KAAKmjB,KAAKja,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,GAC/E,OAAIpoB,KAAKK,IAAI3C,GAAO,KACX,MAGJwL,GADLxL,EAAM,EAAIA,EAELyL,GAAAzL,EACA0qB,GAAA1qB,EACDmC,EAAAG,KAAK+7B,IAAI85D,GACT11F,EAAAH,KAAK87B,IAAI+5D,GACbhyE,EAAI,EAAI1jB,EACR2zF,EAAM7qF,EAAE,GACRsqF,EAAMtqF,EAAE,GACRuqF,EAAMvqF,EAAE,GACRwqF,EAAMxqF,EAAE,GACR8qF,EAAM9qF,EAAE,GACR+qF,EAAM/qF,EAAE,GACRyqF,EAAMzqF,EAAE,GACR0qF,EAAM1qF,EAAE,GACRgrF,EAAMhrF,EAAE,GACRirF,EAAMjrF,EAAE,GACRkrF,EAAMlrF,EAAE,IACR2qF,EAAM3qF,EAAE,IACFurF,EAAAtrF,EAAIA,EAAI2a,EAAI1jB,EACZs0F,EAAAtrF,EAAID,EAAI2a,EAAIuE,EAAIvoB,EAChB60F,EAAAtsE,EAAIlf,EAAI2a,EAAI1a,EAAItJ,EAChBq1F,EAAAhsF,EAAIC,EAAI0a,EAAIuE,EAAIvoB,EAChBs1F,EAAAhsF,EAAIA,EAAI0a,EAAI1jB,EACZ21F,EAAA1tE,EAAIjf,EAAI0a,EAAI3a,EAAIrJ,EAChBk2F,EAAA7sF,EAAIkf,EAAIvE,EAAI1a,EAAItJ,EAChBm2F,EAAA7sF,EAAIif,EAAIvE,EAAI3a,EAAIrJ,EAChBo2F,EAAA7tE,EAAIA,EAAIvE,EAAI1jB,EAClBwK,EAAI,GAAKmpF,EAAMU,EAAMT,EAAMU,EAAMR,EAAMS,EACvC/pF,EAAI,GAAK4oF,EAAMiB,EAAMR,EAAMS,EAAMP,EAAMQ,EACvC/pF,EAAI,GAAK6oF,EAAMgB,EAAMd,EAAMe,EAAMN,EAAMO,EACvC/pF,EAAI,GAAK8oF,EAAMe,EAAMb,EAAMc,EAAMb,EAAMc,EACvC/pF,EAAI,GAAKmpF,EAAMoB,EAAMnB,EAAMoB,EAAMlB,EAAM6B,EACvCnrF,EAAI,GAAK4oF,EAAM2B,EAAMlB,EAAMmB,EAAMjB,EAAM4B,EACvCnrF,EAAI,GAAK6oF,EAAM0B,EAAMxB,EAAMyB,EAAMhB,EAAM2B,EACvCnrF,EAAI,GAAK8oF,EAAMyB,EAAMvB,EAAMwB,EAAMvB,EAAMkC,EACvCnrF,EAAI,GAAKmpF,EAAMiC,EAAMhC,EAAMiC,EAAM/B,EAAMgC,EACvCtrF,EAAI,GAAK4oF,EAAMwC,EAAM/B,EAAMgC,EAAM9B,EAAM+B,EACvCtrF,EAAI,IAAM6oF,EAAMuC,EAAMrC,EAAMsC,EAAM7B,EAAM8B,EACxCtrF,EAAI,IAAM8oF,EAAMsC,EAAMpC,EAAMqC,EAAMpC,EAAMqC,EACpChtF,IAAM0B,IACJA,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,KAEP0B,KAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAQ4J,EAAK1B,EAAG4sF,GACvB,IAAIh2F,EAAIG,KAAK+7B,IAAI85D,GAAM11F,EAAIH,KAAK87B,IAAI+5D,GAAM9B,EAAM9qF,EAAE,GAAI+qF,EAAM/qF,EAAE,GAAIyqF,EAAMzqF,EAAE,GAAI0qF,EAAM1qF,EAAE,GAAIgrF,EAAMhrF,EAAE,GAAIirF,EAAMjrF,EAAE,GAAIkrF,EAAMlrF,EAAE,IAAK2qF,EAAM3qF,EAAE,IAmBhI,OAlBHA,IAAM0B,IACJA,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,KAEd0B,EAAI,GAAKopF,EAAM5zF,EAAI8zF,EAAMp0F,EACzB8K,EAAI,GAAKqpF,EAAM7zF,EAAI+zF,EAAMr0F,EACzB8K,EAAI,GAAK+oF,EAAMvzF,EAAIg0F,EAAMt0F,EACzB8K,EAAI,GAAKgpF,EAAMxzF,EAAIyzF,EAAM/zF,EACzB8K,EAAI,GAAKspF,EAAM9zF,EAAI4zF,EAAMl0F,EACzB8K,EAAI,GAAKupF,EAAM/zF,EAAI6zF,EAAMn0F,EACzB8K,EAAI,IAAMwpF,EAAMh0F,EAAIuzF,EAAM7zF,EAC1B8K,EAAI,IAAMipF,EAAMzzF,EAAIwzF,EAAM9zF,EACnB8K,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAQ4J,EAAK1B,EAAG4sF,GACvB,IAAIh2F,EAAIG,KAAK+7B,IAAI85D,GAAM11F,EAAIH,KAAK87B,IAAI+5D,GAAM/B,EAAM7qF,EAAE,GAAIsqF,EAAMtqF,EAAE,GAAIuqF,EAAMvqF,EAAE,GAAIwqF,EAAMxqF,EAAE,GAAIgrF,EAAMhrF,EAAE,GAAIirF,EAAMjrF,EAAE,GAAIkrF,EAAMlrF,EAAE,IAAK2qF,EAAM3qF,EAAE,IAmBhI,OAlBHA,IAAM0B,IACJA,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,KAEd0B,EAAI,GAAKmpF,EAAM3zF,EAAI8zF,EAAMp0F,EACzB8K,EAAI,GAAK4oF,EAAMpzF,EAAI+zF,EAAMr0F,EACzB8K,EAAI,GAAK6oF,EAAMrzF,EAAIg0F,EAAMt0F,EACzB8K,EAAI,GAAK8oF,EAAMtzF,EAAIyzF,EAAM/zF,EACzB8K,EAAI,GAAKmpF,EAAMj0F,EAAIo0F,EAAM9zF,EACzBwK,EAAI,GAAK4oF,EAAM1zF,EAAIq0F,EAAM/zF,EACzBwK,EAAI,IAAM6oF,EAAM3zF,EAAIs0F,EAAMh0F,EAC1BwK,EAAI,IAAM8oF,EAAM5zF,EAAI+zF,EAAMzzF,EACnBwK,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAQ4J,EAAK1B,EAAG4sF,GACvB,IAAIh2F,EAAIG,KAAK+7B,IAAI85D,GAAM11F,EAAIH,KAAK87B,IAAI+5D,GAAM/B,EAAM7qF,EAAE,GAAIsqF,EAAMtqF,EAAE,GAAIuqF,EAAMvqF,EAAE,GAAIwqF,EAAMxqF,EAAE,GAAI8qF,EAAM9qF,EAAE,GAAI+qF,EAAM/qF,EAAE,GAAIyqF,EAAMzqF,EAAE,GAAI0qF,EAAM1qF,EAAE,GAmB/H,OAlBHA,IAAM0B,IACJA,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,KAEd0B,EAAI,GAAKmpF,EAAM3zF,EAAI4zF,EAAMl0F,EACzB8K,EAAI,GAAK4oF,EAAMpzF,EAAI6zF,EAAMn0F,EACzB8K,EAAI,GAAK6oF,EAAMrzF,EAAIuzF,EAAM7zF,EACzB8K,EAAI,GAAK8oF,EAAMtzF,EAAIwzF,EAAM9zF,EACzB8K,EAAI,GAAKopF,EAAM5zF,EAAI2zF,EAAMj0F,EACzB8K,EAAI,GAAKqpF,EAAM7zF,EAAIozF,EAAM1zF,EACzB8K,EAAI,GAAK+oF,EAAMvzF,EAAIqzF,EAAM3zF,EACzB8K,EAAI,GAAKgpF,EAAMxzF,EAAIszF,EAAM5zF,EAClB8K,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAM4J,EAAK1B,EAAG4Z,GACjB,IAAA3Z,EAAI2Z,EAAE,GAAI1Z,EAAI0Z,EAAE,GAAIuF,EAAIvF,EAAE,GAiBvB,OAhBPlY,EAAI,GAAK1B,EAAE,GAAKC,EAChByB,EAAI,GAAK1B,EAAE,GAAKC,EAChByB,EAAI,GAAK1B,EAAE,GAAKC,EAChByB,EAAI,GAAK1B,EAAE,GAAKC,EAChByB,EAAI,GAAK1B,EAAE,GAAKE,EAChBwB,EAAI,GAAK1B,EAAE,GAAKE,EAChBwB,EAAI,GAAK1B,EAAE,GAAKE,EAChBwB,EAAI,GAAK1B,EAAE,GAAKE,EAChBwB,EAAI,GAAK1B,EAAE,GAAKmf,EAChBzd,EAAI,GAAK1B,EAAE,GAAKmf,EAChBzd,EAAI,IAAM1B,EAAE,IAAMmf,EAClBzd,EAAI,IAAM1B,EAAE,IAAMmf,EACdzd,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACL0B,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAU4J,EAAK1B,EAAG4Z,GACrB,IAA8BixE,EAAKP,EAAKC,EAAKC,EAAKM,EAAKC,EAAKN,EAAKC,EAAKM,EAAKC,EAAKC,EAAKP,EAArF1qF,EAAI2Z,EAAE,GAAI1Z,EAAI0Z,EAAE,GAAIuF,EAAIvF,EAAE,GAoCvB,OAnCH5Z,IAAM0B,GACRA,EAAI,IAAM1B,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAIF,EAAE,GAAKmf,EAAInf,EAAE,IAC7C0B,EAAI,IAAM1B,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAIF,EAAE,GAAKmf,EAAInf,EAAE,IAC7C0B,EAAI,IAAM1B,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAIF,EAAE,IAAMmf,EAAInf,EAAE,IAC9C0B,EAAI,IAAM1B,EAAE,GAAKC,EAAID,EAAE,GAAKE,EAAIF,EAAE,IAAMmf,EAAInf,EAAE,MAE9C6qF,EAAM7qF,EAAE,GACRsqF,EAAMtqF,EAAE,GACRuqF,EAAMvqF,EAAE,GACRwqF,EAAMxqF,EAAE,GACR8qF,EAAM9qF,EAAE,GACR+qF,EAAM/qF,EAAE,GACRyqF,EAAMzqF,EAAE,GACR0qF,EAAM1qF,EAAE,GACRgrF,EAAMhrF,EAAE,GACRirF,EAAMjrF,EAAE,GACRkrF,EAAMlrF,EAAE,IACR2qF,EAAM3qF,EAAE,IACR0B,EAAI,GAAKmpF,EACTnpF,EAAI,GAAK4oF,EACT5oF,EAAI,GAAK6oF,EACT7oF,EAAI,GAAK8oF,EACT9oF,EAAI,GAAKopF,EACTppF,EAAI,GAAKqpF,EACTrpF,EAAI,GAAK+oF,EACT/oF,EAAI,GAAKgpF,EACThpF,EAAI,GAAKspF,EACTtpF,EAAI,GAAKupF,EACTvpF,EAAI,IAAMwpF,EACVxpF,EAAI,IAAMipF,EACNjpF,EAAA,IAAMmpF,EAAM5qF,EAAI6qF,EAAM5qF,EAAI8qF,EAAM7rE,EAAInf,EAAE,IACtC0B,EAAA,IAAM4oF,EAAMrqF,EAAI8qF,EAAM7qF,EAAI+qF,EAAM9rE,EAAInf,EAAE,IACtC0B,EAAA,IAAM6oF,EAAMtqF,EAAIwqF,EAAMvqF,EAAIgrF,EAAM/rE,EAAInf,EAAE,IACtC0B,EAAA,IAAM8oF,EAAMvqF,EAAIyqF,EAAMxqF,EAAIyqF,EAAMxrE,EAAInf,EAAE,KAErC0B,IAMb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAU4J,EAAK1B,GACtB,GAAI0B,IAAQ1B,EAAG,CACT,IAAAsqF,EAAMtqF,EAAE,GAAIuqF,EAAMvqF,EAAE,GAAIwqF,EAAMxqF,EAAE,GAAIyqF,EAAMzqF,EAAE,GAAI0qF,EAAM1qF,EAAE,GAAI2qF,EAAM3qF,EAAE,IACpE0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,IACX0B,EAAI,GAAK4oF,EACL5oF,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,IACX0B,EAAI,GAAK6oF,EACT7oF,EAAI,GAAK+oF,EACL/oF,EAAA,IAAM1B,EAAE,IACZ0B,EAAI,IAAM8oF,EACV9oF,EAAI,IAAMgpF,EACVhpF,EAAI,IAAMipF,CAAA,MAENjpF,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,IACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,IACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,GACR0B,EAAA,IAAM1B,EAAE,GACR0B,EAAA,IAAM1B,EAAE,IACR0B,EAAA,IAAM1B,EAAE,IAEP,OAAA0B,IAMb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAEtC,IAAAisC,EAAcjsC,EAAqB,MACnCksC,EAAyBlsC,EAAqB,MAEzC,SAAAvyH,EAAYltS,EAAGsjB,GAEtB,IADA,IAAIlY,EAAM,CAAC,EAAG,EAAG,EAAG,GACXtN,EAAI,EAAGA,EAAI,IAAKA,EACvB,IAAA,IAAS0I,EAAI,EAAGA,EAAI,IAAKA,EACnB4E,EAAA5E,IAAMxG,EAAE,EAAIlC,EAAI0I,GAAK8c,EAAExlB,GAGxB,OAAAsN,EAET,SAASwgc,EAActob,EAAG6pR,EAAO91Q,EAAMw5B,EAAY0pY,GAQjD,IAPA,IAAI7lb,EAAIw4R,EACNr8O,EACAq8O,EACE71Q,EACA61Q,EAAYC,EAAO,CAAC7pR,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,MAGjCxlB,EAAI,EAAGA,EAAI,IAAKA,EACrB4W,EAAA5W,IAAM4W,EAAE,GAEZ,MAAO,CAAC,GAAM6lb,EAAW,IAAM,EAAI7lb,EAAE,IAAK,GAAM6lb,EAAW,IAAM,EAAI7lb,EAAE,KAuBhE,SAAAikC,EAAY+qX,EAASihB,GAE5B,IADA,IAAI7wa,EAAS,CAAC,EAAG,EAAG,GACXhW,EAAI,EAAGA,EAAI4la,EAAQnla,SAAUT,EAGpC,IAFI,IAAA4W,EAAIgvZ,EAAQ5la,GACZ2zB,EAAIkzZ,EAAQ7mb,GACP0I,EAAI,EAAGA,EAAI,IAAKA,EACvBsN,EAAOtN,IAAMirB,EAAI/c,EAAElO,GAGhB,OAAAsN,EArDT0M,EAAQhf,QAuDR,SAAoCkia,EAASmoC,EAAY1+J,EAAO91Q,EAAMw5B,EAAY0pY,GAC5E,GAAmB,IAAnB72B,EAAQnla,OACV,MAAO,CAAC,EAAGmla,EAAQ,GAAG3ga,SAGxB,IADA,IAAI+oc,EAAY,IAAI7sc,MAAMyka,EAAQnla,QACzBT,EAAI,EAAGA,EAAI4la,EAAQnla,SAAUT,EAC1Bguc,EAAAhuc,GAAK8tc,EAAcloC,EAAQ5la,GAAIqvS,EAAO91Q,EAAMw5B,EAAY0pY,GAEpE,IAAIwR,EAAe,EACfC,EAAcxrc,IAClB,IAAS1C,EAAI,EAAGA,EAAIguc,EAAUvtc,SAAUT,EAAG,CAEzC,IADA,IAAIm4B,EAAK,EACAzvB,EAAI,EAAGA,EAAI,IAAKA,EACjByvB,GAAAx1B,KAAKC,IAAIorc,EAAUhuc,GAAG0I,GAAKqlc,EAAWrlc,GAAI,GAE9CyvB,EAAK+1a,IACOA,EAAA/1a,EACC81a,EAAAjuc,GAGf,IAAA6mb,EApDG,SAAiBjhB,EAASrxY,GAC7B,GAAmB,IAAnBqxY,EAAQnla,OAAc,CAGxB,IAFA,IAAIg9D,EAAK,EACLrlC,EAAK,EACAp4B,EAAI,EAAGA,EAAI,IAAKA,EACjBy9D,GAAA96D,KAAKC,IAAI2xB,EAAMv0B,GAAK4la,EAAQ,GAAG5la,GAAI,GACnCo4B,GAAAz1B,KAAKC,IAAI2xB,EAAMv0B,GAAK4la,EAAQ,GAAG5la,GAAI,GAIvC,OAFCy9D,EAAA96D,KAAKmjB,KAAK23C,KACVrlC,EAAAz1B,KAAKmjB,KAAKsS,IACD,KACL,CAAC,EAAG,GAEN,CAACA,GAAMqlC,EAAKrlC,GAAKqlC,GAAMrlC,EAAKqlC,GAAG,CAAA,GACV,IAAnBmoW,EAAQnla,OAAc,CAC3B,IAAAs5C,EAAe,CAAC,EAAG,GAEhB,OADgB8zZ,EAAAjoC,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIrxY,EAAOwlB,GAC3D6zZ,EAAYhoC,EAAS7rX,GAE9B,MAAO,GAiCOo0Z,CAAiBH,EAAWD,GACtCvrc,EAAI,EACR,IAASxC,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,GAAI6mb,EAAQ7mb,UAAc6mb,EAAQ7mb,GAAK,OAC9B,OAAA,KAETwC,GAAKqkb,EAAQ7mb,GAEf,OAAI2C,KAAKK,IAAIR,EAAI,GAAK,KACb,KAEF,CAACyrc,EAAcpzZ,EAAY+qX,EAASihB,GAAUA,KAK3D,IAAA,SAEWpkB,EAAyBtlW,EAAUwkW,GACtC,IAAAg6B,EAAUh6B,EAAqB,MAC/B+jC,EAAa/J,EAAQ,CAAC,w9BACtBgK,EAAahK,EAAQ,CAAC,k8FACtByS,EAAczS,EAAQ,CAAC,uXACvB0S,EAAc1S,EAAQ,CAAC,40BACvB2S,EAAe3S,EAAQ,CAAC,4gCACxB4S,EAAe5S,EAAQ,CAAC,gVACxBiK,EAAcjK,EAAQ,CAAC,iUACvBkK,EAAclK,EAAQ,CAAC,2wBACvB6S,EAAmB7S,EAAQ,CAAC,6gCAC5B8S,EAAiB9S,EAAQ,CAAC,6MAC1B+S,EAAiB/S,EAAQ,CAAC,6IAC9Bx+X,EAAS+nY,WAAa,CACpBh0Z,OAAQw0Z,EACRP,SAAUQ,EACVj2W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,SAAUjN,KAAM,QACxB,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,KAAMjN,KAAM,UAGxBg3D,EAASwxY,WAAa,CACpBz9Z,OAAQk9Z,EACRjJ,SAAUkJ,EACV3+W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,KAAMjN,KAAM,UAGxBg3D,EAASyxY,YAAc,CACrB19Z,OAAQo9Z,EACRnJ,SAAUoJ,EACV7+W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,YAAajN,KAAM,WAG/Bg3D,EAASykY,WAAa,CACpB1wZ,OAAQ00Z,EACRT,SAAUU,EACVn2W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,KAAMjN,KAAM,UAGxBg3D,EAAS0xY,gBAAkB,CACzB39Z,OAAQs9Z,EACRrJ,SAAUU,EACVn2W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,YAAajN,KAAM,SAC3B,CAAEiN,KAAM,KAAMjN,KAAM,UAGxBg3D,EAAS2xY,cAAgB,CACvB59Z,OAAQu9Z,EACRtJ,SAAUuJ,EACVh/W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,WAMlC,KAAA,SAEWuc,EAASg/Y,EAA0BC,GAE1C,IAEIi3B,EAAej3B,EAAqB,MACpC39Z,EAAe29Z,EAAqB,MACpCkD,EAAYlD,EAAqB,MACjC4/B,EAAgB5/B,EAAqB,MACrCotC,EAAUptC,EAAqB,MAC/B7kU,EAAW6kU,EAAqB,MAChChnY,EAASgnY,EAAqB,MAC9BY,EAAUZ,EAAqB,MAC/B+qB,EAAW/qB,EAAqB,MAChCqtC,EAAartC,EAAqB,MAClC8Y,EAAO9Y,EAAqB,MAC5By/B,EAAUz/B,EAAqB,KAC/B5nX,EAAe4nX,EAAqB,MACpCujC,EAAa9D,EAAQ8D,WACrByJ,EAAavN,EAAQuN,WACrBC,EAAcxN,EAAQwN,YACtBhN,EAAaR,EAAQQ,WACrBiN,EAAkBzN,EAAQyN,gBAC1BC,EAAgB1N,EAAQ0N,cACxBtN,EAAW,CACb,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEO,SAAAyN,EAAelqC,EAAK28B,EAASC,EAAWuN,EAAYC,EAAcC,EAAaC,EAAkBC,EAAgBzN,EAAmBE,EAAaC,EAAgBC,EAAasN,EAAiBvqC,EAAawqC,EAAeC,EAASC,EAAYC,EAASC,EAASC,EAAgBC,EAAUC,EAAaC,EAAUC,EAAYC,EAAUC,EAAkBC,GAClWjpc,KAAKqsb,GAAKzuB,EACV59Z,KAAKssb,WAAa,EAClBtsb,KAAK4uC,MAAQ,GACb5uC,KAAKq9Q,UAAY,GACjBr9Q,KAAKg6b,UAAY,GACjBh6b,KAAKu6b,QAAUA,EACfv6b,KAAKquI,OAAQ,EACbruI,KAAKw6b,UAAYA,EACjBx6b,KAAK+nc,WAAaA,EAClB/nc,KAAKync,YAAcO,EACnBhoc,KAAKy6b,WAAawN,EAClBjoc,KAAK0nc,gBAAkBQ,EACvBloc,KAAK2nc,cAAgBQ,EACrBnoc,KAAK06b,kBAAoBA,EACzB16b,KAAK66b,eAAiBA,EACtB76b,KAAKooc,gBAAkBA,EACvBpoc,KAAK86b,YAAcA,EACnB96b,KAAK46b,YAAcA,EACnB56b,KAAK69Z,YAAcA,EACnB79Z,KAAK+6b,cAAgB,EACrB/6b,KAAK42J,UAAY,EACjB52J,KAAKqoc,cAAgBA,EACrBroc,KAAKuoc,WAAaA,EAClBvoc,KAAKwoc,QAAUA,EACfxoc,KAAKsoc,QAAUA,EACftoc,KAAKyoc,QAAUA,EACfzoc,KAAKkpc,UAAY,EACjBlpc,KAAK0oc,eAAiBA,EACtB1oc,KAAK4oc,YAAcA,EACnB5oc,KAAK6oc,SAAWA,EAChB7oc,KAAK8oc,WAAaA,EAClB9oc,KAAK2oc,SAAWA,EAChB3oc,KAAK+oc,SAAWA,EAChB/oc,KAAKmpc,WAAa,EAClBnpc,KAAKopc,iBAAmB,EACxBppc,KAAKgpc,iBAAmBA,EACxBhpc,KAAKipc,WAAaA,EAClBjpc,KAAKqpc,aAAe,EACpBrpc,KAAKspc,aAAe,CAAC,EAAG,EAAG,GAC3Btpc,KAAKupc,eAAgB,EACrBvpc,KAAKwpc,YAAa,EAClBxpc,KAAKg7b,OAAS,EACdh7b,KAAK2wG,OAAS,CACZ,CAACp1G,IAAUA,IAAUA,KACrB,EAAC,KAAW,KAAW,MAEzByE,KAAKi7b,WAAa,CAChB,EAAC,KAAW,KAAW,KACvB,CAAC1/b,IAAUA,IAAUA,MAEvByE,KAAKk7b,cAAgB,CAAC,IAAK,IAAK,GAChCl7b,KAAKm7b,aAAe,GACpBn7b,KAAKo7b,aAAe,GACpBp7b,KAAKq7b,cAAgB,EACrBr7b,KAAKs7b,UAAY,GACjBt7b,KAAKu7b,QAAU,IACfv7b,KAAK0gF,QAAU,EACf1gF,KAAK+5E,UAAW,EAChB/5E,KAAKypc,cAAe,EACpBzpc,KAAKy7b,OAASpB,EACdr6b,KAAK07b,MAAQrB,EACbr6b,KAAK27b,YAActB,EACdr6b,KAAA47b,YAAc,CAAC,EAAG,GAEzB,IAAIh4b,EAAQkkc,EAAe5qc,UAWlB,SAAAwsc,EAAoB/kZ,EAAO8kZ,GAC9B,IAACA,EAAqB,OAAA,EACtB,IAACA,EAAanwc,OAAe,OAAA,EACjC,IAAA,IAAST,EAAI,EAAGA,EAAI4wc,EAAanwc,SAAUT,EAAG,CACxC,GAAA4wc,EAAanwc,OAAS,EAAU,OAAA,EAChC,GAAAmwc,EAAa5wc,GAAG,KAAO8rD,EAAc,OAAA8kZ,EAAa5wc,GAAG,GACzD,GAAI4wc,EAAa5wc,GAAG,GAAK8rD,GAAS9rD,EAAI,EAAG,CACvC,IAAIuC,GAAKquc,EAAa5wc,GAAG,GAAK8rD,IAAU8kZ,EAAa5wc,GAAG,GAAK4wc,EAAa5wc,EAAI,GAAG,IACjF,OAAO4wc,EAAa5wc,GAAG,IAAM,EAAIuC,GAAKA,EAAIquc,EAAa5wc,EAAI,GAAG,IAG3D,OAAA,EArBT+K,EAAMksb,SAAW,WACf,OAAQ9vb,KAAK+5E,QACf,EACAn2E,EAAMmsb,cAAgB,WACpB,OAAO/vb,KAAK+5E,QACd,EACAn2E,EAAMi4b,UAAY,EACZj4b,EAAAk4b,YAAc,SAASznb,GAC3BrU,KAAKg7b,OAAS3mb,CAChB,EA0CMzQ,EAAA+lc,UAAY,SAASjkb,GACzB,GAAKA,GAAc1lB,KAAKupc,cAAxB,CAWA,IAPA,IAAIxuX,EAAQ8sX,EAAW7nc,KAAK4uC,MAAO5uC,KAAKg6b,UAAWt0a,EAAUs0a,WACzDprZ,EAAQmsC,EAAMnsC,MACdg7Z,EAAY7uX,EAAM6uX,UAClBC,EAAgB9uX,EAAM8uX,cACtBC,EAAWl7Z,EAAMt1C,OACjBuV,EAASyka,EAAKy2B,cAAc,EAAQD,GACpC72B,EAAM,EACDp6a,EAAI,EAAGA,EAAIixc,IAAYjxc,EAE9B,IADI,IAAA8C,EAAIizC,EAAM/1C,GACL0I,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAA8c,EAAI1iB,EAAE,GACO,IAAbA,EAAErC,SACJ+kB,EAAI1iB,EAAE4F,IAQR,IANA,IAAIkD,EAAImlc,EAAUvrb,GAAG,GACjB1f,EAAIirc,EAAUvrb,GAAG,GACjBmO,EAAIq9a,EAAcxrb,GAClB2rb,EAAK,EAAIx9a,EACT8wB,EAAKt9C,KAAKq9Q,UAAU54Q,GACpBkiI,EAAK3mI,KAAKq9Q,UAAU1+Q,GACfmjB,EAAI,EAAGA,EAAI,IAAKA,EAChBjT,EAAAoka,KAASzmZ,EAAI8wB,EAAGx7B,GAAKkob,EAAKrjU,EAAG7kH,GAIrC9hB,KAAAqpc,aAAep2B,EAAM,EAAI,EAC9Bjza,KAAKgpc,iBAAiBr+a,OAAO9b,EAAO1H,SAAS,EAAG8ra,IAChDK,EAAKgB,KAAKzla,QA9BR7O,KAAKqpc,aAAe,CA+BxB,EACMzlc,EAAA+mB,OAAS,SAASmgM,GACtBA,EAASA,GAAU,CAAC,EACpB,IAAI8yM,EAAM59Z,KAAKqsb,GACfrsb,KAAKquI,OAAQ,EACT,kBAAmBy8E,IACrB9qN,KAAKupc,cAAgBz+O,EAAOy+O,eAE1B,iBAAkBz+O,IACpB9qN,KAAKspc,aAAex+O,EAAOw+O,cAEzB,cAAex+O,IACjB9qN,KAAK42J,UAAYk0D,EAAOl0D,WAEtB,kBAAmBk0D,IACrB9qN,KAAKk7b,cAAgBpwO,EAAOowO,eAE9Bl7b,KAAK+5E,UAAW,EACZ,YAAa+wI,IACf9qN,KAAK0gF,QAAUoqI,EAAOpqI,QAClB1gF,KAAK0gF,QAAU,IACjB1gF,KAAK+5E,UAAW,IAGhB,iBAAkB+wI,IACpB9qN,KAAKypc,aAAe3+O,EAAO2+O,aAC3Bzpc,KAAK+5E,UAAW,GAEd,YAAa+wI,IACf9qN,KAAKm7b,aAAerwO,EAAOixO,SAEzB,YAAajxO,IACf9qN,KAAKo7b,aAAetwO,EAAOkxO,SAEzB,aAAclxO,IAChB9qN,KAAKq7b,cAAgBvwO,EAAOmxO,UAE1B,cAAenxO,IACjB9qN,KAAKs7b,UAAYxwO,EAAOwwO,WAEtB,YAAaxwO,IACf9qN,KAAKu7b,QAAUzwO,EAAOywO,SAEpBzwO,EAAOyvO,SACTv6b,KAAKu6b,QAAQlL,UACbrvb,KAAKu6b,QAAUH,EAAcx8B,EAAK9yM,EAAOyvO,UAChCzvO,EAAOy6N,WAChBvlb,KAAKu6b,QAAQtsX,MAAQ,CAAC,IAAK,KACtBjuE,KAAAu6b,QAAQ2B,UAAYt+B,EAAIu+B,qBACxBn8b,KAAAu6b,QAAQ6B,UAAYx+B,EAAIy+B,OAC7Br8b,KAAKu6b,QAAQ+B,UA/GR,SAAYrvO,EAAOw8O,GAO1B,IANA,IAAIztS,EAASupR,EAAS,CACpBA,SAAUt4N,EACVu4N,QAAS,IACTjtZ,OAAQ,SAEN1pB,EAAS,IAAI9U,WAAW,MACnBlB,EAAI,EAAGA,EAAI,MAAOA,EAAG,CAE5B,IADI,IAAA8C,EAAIqgK,EAAOnjK,GACN0I,EAAI,EAAGA,EAAI,IAAKA,EACvBsN,EAAO,EAAIhW,EAAI0I,GAAK5F,EAAE4F,GAKfsN,EAAA,EAAIhW,EAAI,GAHZ4wc,EAGiB,IAAMC,EAAoB7wc,EAAI,IAAK4wc,GAFnC,IAAM9tc,EAAE,GAKzB,OAAAy/Z,EAAQvsZ,EAAQ,CAAC,IAAK,IAAK,GAAI,CAAC,EAAG,EAAG,IA6FpB0tb,CAAYzxO,EAAOy6N,SAAUvlb,KAAKypc,eACzDzpc,KAAKu6b,QAAQiC,kBAEf,IAAI5tZ,EAAQk8K,EAAOl8K,MACfyuO,EAAYvyD,EAAOuyD,UACnB,GAACA,GAAczuO,EAAf,CAGJ,IAAI6tZ,EAAO,GACPE,EAAO,GACPsN,EAAO,GACPrN,EAAO,GACPC,EAAO,GACPqN,EAAO,GACPC,EAAO,GACPC,EAAO,GACPC,EAAO,GACPC,EAAO,GACPC,EAAO,GACPC,EAAO,GACPC,EAAO,GACPC,EAAO,GACX1qc,KAAK4uC,MAAQA,EACb5uC,KAAKq9Q,UAAYA,EACjB,IAAIstL,EAAgB7/O,EAAO6/O,cACvBC,EAAc9/O,EAAO8/O,YACrBC,OAAuD,IAAhC//O,EAAO+/O,qBAzQC,KAyQkE//O,EAAO+/O,qBACxGC,OAAmD,IAA9BhgP,EAAOggP,mBAzQC,KAyQ8DhgP,EAAOggP,mBAClGhgP,EAAOigP,kBAAoBH,IAC7BA,EAAchD,EAAQoD,YAAYp8Z,EAAOyuO,EAAWytL,IAEjDF,GAAgBD,IACnBA,EAAgB/C,EAAQ+C,cAAc/7Z,EAAOyuO,EAAWwtL,IAE1D,IAAII,EAAengP,EAAOmgP,aACtBC,EAAapgP,EAAOogP,WACpBpO,EAAYhyO,EAAOgyO,WAAa,CAAC,EAAG,EAAG,EAAG,GAC1CqO,EAAYrgP,EAAOqgP,UACnBpS,EAAkBjuO,EAAOiuO,gBACzBqS,EAAUtgP,EAAOsgP,QACjBC,EAAgBvgP,EAAOugP,cACvBtO,EAAcxhc,IACdyhc,GAAc,IACd,IAACmO,IAAcC,EACjB,GAAIrS,EACF,GAAIjuO,EAAOkuO,sBACK+D,GAACjyO,EAAOkuO,sBAAsB,GAC9BgE,GAAClyO,EAAOkuO,sBAAsB,QAE5C,IAAA,IAASngc,EAAI,EAAGA,EAAIkgc,EAAgBz/b,SAAUT,EAAG,CAC3C,IAAAsiB,EAAI49a,EAAgBlgc,GACVkkc,EAAAvhc,KAAKoH,IAAIm6b,EAAa5hb,GACtB6hb,EAAAxhc,KAAK8J,IAAI03b,EAAa7hb,WAG/Bkwb,EACT,GAAIvgP,EAAOwgP,oBACKvO,GAACjyO,EAAOwgP,oBAAoB,GAC5BtO,GAAClyO,EAAOwgP,oBAAoB,QAE1C,IAASzyc,EAAI,EAAGA,EAAIwyc,EAAc/xc,SAAUT,EACtCsiB,EAAIkwb,EAAcxyc,GACRkkc,EAAAvhc,KAAKoH,IAAIm6b,EAAa5hb,GACtB6hb,EAAAxhc,KAAK8J,IAAI03b,EAAa7hb,QAIxC,IAAStiB,EAAI,EAAGA,EAAIwkR,EAAU/jR,SAAUT,EAClCsiB,EAAIkiQ,EAAUxkR,GAAG,GACPkkc,EAAAvhc,KAAKoH,IAAIm6b,EAAa5hb,GACtB6hb,EAAAxhc,KAAK8J,IAAI03b,EAAa7hb,GAKxCnb,KAAKg6b,UADHjB,GAEOsS,GAvKb,SAAwB9rc,GAGtB,IAFA,IAAIiB,EAAIjB,EAAMjG,OACVuV,EAAS,IAAI7U,MAAMwG,GACd3H,EAAI,EAAGA,EAAI2H,IAAK3H,EACvBgW,EAAOhW,GAAK0G,EAAM1G,GAAG,GAEhB,OAAAgW,EAoKYoub,CAAe5/K,GAE7Br9Q,KAAAwpc,aAAe6B,GAAiBH,GACrC,IAAIpC,EAAah+O,EAAOg+O,WACpByC,EAAgBzgP,EAAO0gP,WAAa,EAExC,IADKxrc,KAAA2wG,OAAS,CAAC,CAACp1G,IAAUA,IAAUA,KAAW,EAAC,KAAW,KAAW,MAC7D1C,EAAI,EAAGA,EAAIwkR,EAAU/jR,SAAUT,EAEtC,IADI,IAAA4W,EAAI4tQ,EAAUxkR,GACT0I,EAAI,EAAGA,EAAI,IAAKA,GACnBzF,MAAM2T,EAAElO,KAAQwE,SAAS0J,EAAElO,MAG/BvB,KAAK2wG,OAAO,GAAGpvG,GAAK/F,KAAKoH,IAAI5C,KAAK2wG,OAAO,GAAGpvG,GAAIkO,EAAElO,IAClDvB,KAAK2wG,OAAO,GAAGpvG,GAAK/F,KAAK8J,IAAItF,KAAK2wG,OAAO,GAAGpvG,GAAIkO,EAAElO,KAGtD,IAAIw5b,EAAgB,EAChBmO,EAAY,EACZC,EAAa,EACjBjM,EACE,IAASrkc,EAAI,EAAGA,EAAI+1C,EAAMt1C,SAAUT,EAAG,CACjC,IAAA21C,EAAOI,EAAM/1C,GACjB,OAAQ21C,EAAKl1C,QACX,KAAK,EAGH,IADImW,EAAI4tQ,EADJh/P,EAAImwB,EAAK,IAEJjtC,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAAzF,MAAM2T,EAAElO,MAAQwE,SAAS0J,EAAElO,IACpB,SAAA27b,EAGRoN,EAAA3wc,KAAK8V,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAGtB9T,EADEsvc,EACEA,EAAa5sb,GACR6sb,EACLA,EAAWryc,GAEXikc,EAEF98b,KAAKypc,cAAgB1Q,EAClB4D,EAAAhjc,KACHgC,EAAE,GACFA,EAAE,GACFA,EAAE,GACFqE,KAAK0gF,QAAUgpX,GACZ3Q,EAAgB16a,GAAK0+a,IAAgBC,EAAcD,GACpD/8b,KAAKypc,eAGa,IAAb9tc,EAAErC,OACNixc,EAAA5wc,KAAKgC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIqE,KAAK0gF,UAEjC6pX,EAAK5wc,KAAKgC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKqE,KAAK0gF,SACpC/kF,EAAE,GAAK,SAAQo+E,UAAW,IAI9Bi3G,EADEm6Q,EACGA,EAAU9sb,GACN06a,EACJ,EACFA,EAAgB16a,GAAK0+a,IAAgBC,EAAcD,GACpD,GAEOqO,EACJA,EAAQvyc,GACJwyc,EACJ,EACFA,EAAcxyc,GAAKkkc,IAAgBC,EAAcD,GAClD,GAGG,EACFttb,EAAE,GAAKstb,IAAgBC,EAAcD,GACtC,GAGJyN,EAAK7wc,KAAKq3L,EAAG,GAAIA,EAAG,IAChB83Q,EACG2B,EAAA9wc,KAAKmvc,EAAWzqb,IAErBosb,EAAK9wc,KAAK4xc,GAEZb,EAAK/wc,KAAKd,GACIswc,GAAA,EACd,MACF,KAAK,EACH,IAAS5nc,EAAI,EAAGA,EAAI,IAAKA,EACnB,CACAkO,EAAI4tQ,EADJh/P,EAAImwB,EAAKjtC,IAEb,IAFI,IAEKugB,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAAhmB,MAAM2T,EAAEqS,MAAQ/b,SAAS0J,EAAEqS,IACpB,SAAAo7a,CAJC,CAQhB,IAAS37b,EAAI,EAAGA,EAAI,IAAKA,EAEnBkO,EAAI4tQ,EADJh/P,EAAImwB,EAAKjtC,IAER2oc,EAAAvwc,KAAK8V,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAGtB9T,EADEsvc,EACEA,EAAa5sb,GACR6sb,EACLA,EAAWryc,GAEXikc,EAEF98b,KAAKypc,cAAgB1Q,EAClB4D,EAAAhjc,KACHgC,EAAE,GACFA,EAAE,GACFA,EAAE,GACFqE,KAAK0gF,QAAUgpX,GACZ3Q,EAAgB16a,GAAK0+a,IAAgBC,EAAcD,GACpD/8b,KAAKypc,eAGa,IAAb9tc,EAAErC,OACN6wc,EAAAxwc,KAAKgC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIqE,KAAK0gF,UAEjCypX,EAAKxwc,KAAKgC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKqE,KAAK0gF,SACpC/kF,EAAE,GAAK,SAAQo+E,UAAW,IAI9Bi3G,EADEm6Q,EACGA,EAAU9sb,GACN06a,EACJ,EACFA,EAAgB16a,GAAK0+a,IAAgBC,EAAcD,GACpD,GAEOqO,EACJA,EAAQvyc,GACJwyc,EACJ,EACFA,EAAcxyc,GAAKkkc,IAAgBC,EAAcD,GAClD,GAGG,EACFttb,EAAE,GAAKstb,IAAgBC,EAAcD,GACtC,GAGJqN,EAAKzwc,KAAKq3L,EAAG,GAAIA,EAAG,IACpBq5Q,EAAK1wc,KAAKd,GAECqwc,GAAA,EACb,MACF,KAAK,EACH,IAAS3nc,EAAI,EAAGA,EAAI,IAAKA,EAGvB,IADIkO,EAAI4tQ,EADJh/P,EAAImwB,EAAKjtC,IAEJugB,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAAhmB,MAAM2T,EAAEqS,MAAQ/b,SAAS0J,EAAEqS,IACpB,SAAAo7a,EAIf,IAAS37b,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAA8c,EAGA1iB,EA0BAq1L,EAsBAp8J,EAlDAnlB,EAAI4tQ,EADJh/P,EAAImwB,EAAK,EAAIjtC,IAEZk7b,EAAA9ic,KAAK8V,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAGtB9T,EADEsvc,EACEA,EAAa5sb,GACR6sb,EACLA,EAAWryc,GAEXikc,GAIK98b,KAAKypc,cAAgB1Q,EACzB4D,EAAAhjc,KACHgC,EAAE,GACFA,EAAE,GACFA,EAAE,GACFqE,KAAK0gF,QAAUgpX,GACZ3Q,EAAgB16a,GAAK0+a,IAAgBC,EAAcD,GACpD/8b,KAAKypc,eAGa,IAAb9tc,EAAErC,OACNqjc,EAAAhjc,KAAKgC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIqE,KAAK0gF,UAEjCi8W,EAAKhjc,KAAKgC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKqE,KAAK0gF,SACpC/kF,EAAE,GAAK,SAAQo+E,UAAW,IAf9B4iX,EAAKhjc,KAAK,GAAK,GAAK,GAAK,GAmBzBq3L,EADEm6Q,EACGA,EAAU9sb,GACN06a,EACJ,EACFA,EAAgB16a,GAAK0+a,IAAgBC,EAAcD,GACpD,GAEOqO,EACJA,EAAQvyc,GACJwyc,EACJ,EACFA,EAAcxyc,GAAKkkc,IAAgBC,EAAcD,GAClD,GAGG,EACFttb,EAAE,GAAKstb,IAAgBC,EAAcD,GACtC,GAGJH,EAAKjjc,KAAKq3L,EAAG,GAAIA,EAAG,IAGlBp8J,EADE+1a,EACEA,EAActsb,GAEdusb,EAAY/xc,GAEboxc,EAAAtwc,KAAKi7B,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACxBioa,EAAKljc,KAAKd,GAEKkic,GAAA,GAMzB/6b,KAAKmpc,WAAaA,EAClBnpc,KAAKkpc,UAAYA,EACjBlpc,KAAK+6b,cAAgBA,EAChB/6b,KAAA0oc,eAAe/9a,OAAO2/a,GACtBtqc,KAAA4oc,YAAYj+a,OAAO4/a,GACnBvqc,KAAA6oc,SAASl+a,OAAO6/a,GAChBxqc,KAAA8oc,WAAWn+a,OAAO8/a,GACvBzqc,KAAK2oc,SAASh+a,OAAO,IAAIkiD,YAAY69X,IAChC1qc,KAAAqoc,cAAc19a,OAAOu/a,GACrBlqc,KAAAuoc,WAAW59a,OAAOw/a,GAClBnqc,KAAAwoc,QAAQ79a,OAAOy/a,GACpBpqc,KAAKsoc,QAAQ39a,OAAO,IAAIkiD,YAAYw9X,IAC/Brqc,KAAA06b,kBAAkB/va,OAAO8xa,GACzBz8b,KAAA66b,eAAelwa,OAAOgya,GACtB38b,KAAA86b,YAAYnwa,OAAOiya,GACnB58b,KAAAooc,gBAAgBz9a,OAAOs/a,GAC5Bjqc,KAAK46b,YAAYjwa,OAAO,IAAIkiD,YAAYgwX,IAC1C,EACAj5b,EAAMosb,gBAAkBpsb,EAAMuhK,KAAO,SAAS2lD,GAC5CA,EAASA,GAAU,CAAC,EAMpB,IALA,IAAI8yM,EAAM59Z,KAAKqsb,GACXnkJ,EAAQp9E,EAAOo9E,OAASmyJ,EACxBjoa,EAAO04L,EAAO14L,MAAQioa,EACtBzuY,EAAak/J,EAAOl/J,YAAcyuY,EAClCY,EAAa,CAAC,EAAO,KAAA,KAAU,KAAG,CAAC,IAAK,IAAK,MACxCpic,EAAI,EAAGA,EAAI,IAAKA,EACvBoic,EAAW,GAAGpic,GAAK2C,KAAK8J,IAAI21b,EAAW,GAAGpic,GAAImH,KAAKi7b,WAAW,GAAGpic,IACjEoic,EAAW,GAAGpic,GAAK2C,KAAKoH,IAAIq4b,EAAW,GAAGpic,GAAImH,KAAKi7b,WAAW,GAAGpic,IAEnE,IAAIi5b,EAAW,CACb5pJ,QACA91Q,OACAw5B,aACAuxY,aAAc9C,EAASv8b,QACvBm9b,aACAmC,SAAUp9b,KAAKm7b,aACfkC,SAAUr9b,KAAKo7b,aACfkC,UAAWt9b,KAAKq7b,cAChBC,UAAWt7b,KAAKs7b,UAChBC,QAASv7b,KAAKu7b,QACdgC,YAAa,CAAC,EAAG,EAAG,GACpBrC,cAAe,CAAC,EAAG,EAAG,GACtBoO,aAActpc,KAAKspc,aACnB/O,QAAS,GAEXzI,EAASqL,aAAe3pa,EAAOs+Z,EAASqL,aAAcrL,EAAS5pJ,OAC3D01H,EAAA/pS,QAAQ+pS,EAAI4/B,WACXx9b,KAAAu6b,QAAQxqb,KAAK,GACd,IAAA0tb,EAAkB,IAAIzjc,MAAM,IAIhC,IAHA27F,EAAS8nW,EAAiB3L,EAAS1/Z,KAAM0/Z,EAAS5pJ,OACzCvyM,EAAA8nW,EAAiB3L,EAASlmY,WAAY6xY,GAC/Cjqa,EAAOiqa,EAAiBA,GACf5kc,EAAI,EAAGA,EAAI,IAAKA,EACdi5b,EAAAyL,YAAY1kc,GAAK4kc,EAAgB,GAAK5kc,GAAK4kc,EAAgB,IAElE,IAqCEjM,EArCFhla,EAAIixa,EAAgB,IACxB,IAAS5kc,EAAI,EAAGA,EAAI,IAAKA,EACvB2zB,GAAKxsB,KAAKk7b,cAAcric,GAAK4kc,EAAgB,EAAI5kc,EAAI,GAEvD,IAASA,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAE1B,IADI,IAAAwC,EAAIoic,EAAgB,GAAK5kc,GACpB0I,EAAI,EAAGA,EAAI,IAAKA,EACvBlG,GAAKoic,EAAgB,EAAIl8b,EAAI1I,GAAKmH,KAAKk7b,cAAc35b,GAE9Cuwb,EAAAoJ,cAAcric,GAAKwC,EAAImxB,EAE9BxsB,KAAK+6b,cAAgB,KACnBvJ,EAASxxb,KAAKw6b,WACXzqb,OACPyhb,EAAOM,SAAWA,EAClB9xb,KAAK69Z,YAAY9tZ,OACjB6tZ,EAAIK,WAAWL,EAAIM,UAAW,EAAwB,EAArBl+Z,KAAK+6b,eACtC/6b,KAAK69Z,YAAYM,UAEfn+Z,KAAKkpc,UAAY,GAAKlpc,KAAK42J,UAAY,KACrC46R,EAASxxb,KAAK+nc,YACXh4b,OACPyhb,EAAOM,SAAWA,EAClB9xb,KAAKyoc,QAAQ14b,OACb6tZ,EAAIhnQ,UAAU52J,KAAK42J,UAAY52J,KAAKssb,YACpC1uB,EAAIK,WAAWL,EAAImhC,MAAO,EAAoB,EAAjB/+b,KAAKkpc,WAClClpc,KAAKyoc,QAAQtqC,UAEXn+Z,KAAKmpc,WAAa,KAChB3X,EAASxxb,KAAKync,aACX13b,OACPyhb,EAAOM,SAAWA,EAClB9xb,KAAK+oc,SAASh5b,OACd6tZ,EAAIK,WAAWL,EAAI6tC,OAAQ,EAAGzrc,KAAKmpc,YACnCnpc,KAAK+oc,SAAS5qC,UAEZn+Z,KAAKupc,eAAiBvpc,KAAKqpc,aAAe,GAAKrpc,KAAKopc,iBAAmB,KACrE5X,EAASxxb,KAAK2nc,eACX53b,OACPyhb,EAAOM,SAAWA,EAClB9xb,KAAKipc,WAAWl5b,OAChB6tZ,EAAIK,WAAWL,EAAImhC,MAAO,EAAG/+b,KAAKqpc,cAClCrpc,KAAKipc,WAAW9qC,SAEpB,EACMv6Z,EAAA85b,SAAW,SAAS5yO,GACxBA,EAASA,GAAU,CAAC,EAMpB,IALA,IAAI8yM,EAAM59Z,KAAKqsb,GACXnkJ,EAAQp9E,EAAOo9E,OAASmyJ,EACxBjoa,EAAO04L,EAAO14L,MAAQioa,EACtBzuY,EAAak/J,EAAOl/J,YAAcyuY,EAClCY,EAAa,CAAC,EAAO,KAAA,KAAU,KAAG,CAAC,IAAK,IAAK,MACxCpic,EAAI,EAAGA,EAAI,IAAKA,EACvBoic,EAAW,GAAGpic,GAAK2C,KAAK8J,IAAI21b,EAAW,GAAGpic,GAAImH,KAAKi7b,WAAW,GAAGpic,IACjEoic,EAAW,GAAGpic,GAAK2C,KAAKoH,IAAIq4b,EAAW,GAAGpic,GAAImH,KAAKi7b,WAAW,GAAGpic,IAEnEmH,KAAKy7b,OAAS,GAAG39b,MAAM+C,KAAKqnS,GAC5BloS,KAAK07b,MAAQ,GAAG59b,MAAM+C,KAAKuxB,GAC3BpyB,KAAK27b,YAAc,GAAG79b,MAAM+C,KAAK+qD,GACjC5rD,KAAK47b,YAAc,CAACh+B,EAAI/zJ,mBAAoB+zJ,EAAI9zJ,qBAChD,IAsBM0nL,EAtBFM,EAAW,CACb5pJ,QACA91Q,OACAw5B,aACAqvY,aACAD,OAAQh7b,KAAKg7b,OAAS,MAEpBxJ,EAASxxb,KAAKy6b,YACX1qb,OACPyhb,EAAOM,SAAWA,EACd9xb,KAAK+6b,cAAgB,IACvB/6b,KAAK69Z,YAAY9tZ,OACjB6tZ,EAAIK,WAAWL,EAAIM,UAAW,EAAwB,EAArBl+Z,KAAK+6b,eACtC/6b,KAAK69Z,YAAYM,UAEfn+Z,KAAKkpc,UAAY,IACnBlpc,KAAKyoc,QAAQ14b,OACb6tZ,EAAIhnQ,UAAU52J,KAAK42J,UAAY52J,KAAKssb,YACpC1uB,EAAIK,WAAWL,EAAImhC,MAAO,EAAoB,EAAjB/+b,KAAKkpc,WAClClpc,KAAKyoc,QAAQtqC,UAEXn+Z,KAAKmpc,WAAa,KAChB3X,EAASxxb,KAAK0nc,iBACX33b,OACPyhb,EAAOM,SAAWA,EAClB9xb,KAAK+oc,SAASh5b,OACd6tZ,EAAIK,WAAWL,EAAI6tC,OAAQ,EAAGzrc,KAAKmpc,YACnCnpc,KAAK+oc,SAAS5qC,SAElB,EACMv6Z,EAAA+lQ,KAAO,SAASg0L,GACpB,IAAKA,EACI,OAAA,KAEL,GAAAA,EAAStpb,KAAOrU,KAAKg7b,OAChB,OAAA,KAMT,IAJA,IAAI4C,EAASD,EAASjic,MAAM,GAAK,IAAMiic,EAASjic,MAAM,GAAK,MAAQiic,EAASjic,MAAM,GAC9E8yC,EAAOxuC,KAAK4uC,MAAMgvZ,GAClBvgL,EAAYr9Q,KAAKq9Q,UACjBohJ,EAAU,IAAIzka,MAAMw0C,EAAKl1C,QACpBT,EAAI,EAAGA,EAAI21C,EAAKl1C,SAAUT,EACjC4la,EAAQ5la,GAAKwkR,EAAU7uO,EAAK31C,IAE1B,IAAA6L,EAAIi5b,EAASrsV,MAAM,GACnB3sG,EAAIg5b,EAASrsV,MAAM,GACnB,IAACtxG,KAAKwpc,WAAY,CACpB,IAAI73T,EAAK3xI,KAAKq9Q,UAAU7uO,EAAK,IACzBqjG,EAAK7xI,KAAKq9Q,UAAU7uO,EAAK,IACzBksW,EAAK16Y,KAAKq9Q,UAAU7uO,EAAK,IACzBqvZ,EAAiB,EAClBlsT,EAAG,GAAKE,EAAG,GAAK6oQ,EAAG,IAAM,GACzB/oQ,EAAG,GAAKE,EAAG,GAAK6oQ,EAAG,IAAM,GACzB/oQ,EAAG,GAAKE,EAAG,GAAK6oQ,EAAG,IAAM,GAErB,MAAA,CACLgxD,aAAa,EACbv2b,SAAU,CAACzQ,EAAGC,GACdysC,MAAOwsZ,EACPpvZ,OACAovZ,SACA5D,UAAWh6b,KAAKg6b,UAAU4D,GAC1BC,kBAGJ,IAAI3+b,EAAO0zC,EACT6rX,EACA,CAAC/5Z,EAAI1E,KAAKssb,WAAYtsb,KAAK47b,YAAY,GAAKj3b,EAAI3E,KAAKssb,YACrDtsb,KAAKy7b,OACLz7b,KAAK07b,MACL17b,KAAK27b,YACL37b,KAAK47b,aAEP,IAAK18b,EACI,OAAA,KAEL,IAAAwgb,EAAUxgb,EAAK,GACfysc,EAAkB,EACtB,IAAS9yc,EAAI,EAAGA,EAAI21C,EAAKl1C,SAAUT,EACjC8yc,GAAmBjsB,EAAQ7mb,GAAKmH,KAAKg6b,UAAUxrZ,EAAK31C,IAE/C,MAAA,CACLsc,SAAUjW,EAAK,GACfkyC,MAAO5C,EAAKtvC,EAAK,IACjBsvC,OACAovZ,SACA5D,UAAW2R,EACX9N,eAAgB79b,KAAKq9Q,UAAU7uO,EAAKtvC,EAAK,KAE7C,EACA0E,EAAMyrb,QAAU,WACdrvb,KAAKu6b,QAAQlL,UACbrvb,KAAKw6b,UAAUnL,UACfrvb,KAAK+nc,WAAW1Y,UAChBrvb,KAAKync,YAAYpY,UACjBrvb,KAAKy6b,WAAWpL,UAChBrvb,KAAK0nc,gBAAgBrY,UACrBrvb,KAAK69Z,YAAYwxB,UACjBrvb,KAAK06b,kBAAkBrL,UACvBrvb,KAAK66b,eAAexL,UACpBrvb,KAAK86b,YAAYzL,UACjBrvb,KAAKooc,gBAAgB/Y,UACrBrvb,KAAK46b,YAAYvL,UACjBrvb,KAAKyoc,QAAQpZ,UACbrvb,KAAKqoc,cAAchZ,UACnBrvb,KAAKuoc,WAAWlZ,UAChBrvb,KAAKwoc,QAAQnZ,UACbrvb,KAAKsoc,QAAQjZ,UACbrvb,KAAK+oc,SAAS1Z,UACdrvb,KAAK0oc,eAAerZ,UACpBrvb,KAAK4oc,YAAYvZ,UACjBrvb,KAAK6oc,SAASxZ,UACdrvb,KAAK8oc,WAAWzZ,UAChBrvb,KAAK2oc,SAAStZ,UACdrvb,KAAKipc,WAAW5Z,UAChBrvb,KAAKgpc,iBAAiB3Z,UACtBrvb,KAAK2nc,cAActY,SACrB,EAoMA9za,EAAQhf,QA1JC,SAAqBqha,EAAK9yM,GAMjC,GALyB,IAArBprN,UAAUpG,SAEZska,GADS9yM,EAAA8yM,GACIyuB,MAELzuB,EAAIy6B,aAAa,6BAA+Bz6B,EAAIy6B,aAAa,iCAAmCz6B,EAAIy6B,aAAa,oCAEvH,MAAA,IAAIn+b,MAAM,6BACd,IAAAsgc,EAjDN,SAA0B58B,GACxB,IAAI4zB,EAASC,EAAa7zB,EAAKmgC,EAAWh0Z,OAAQg0Z,EAAWC,UAKtD,OAJAxM,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWtyD,MAAMggG,SAAW,EAC5Bu7T,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAAAjpW,WAAWnjC,OAAO6wE,SAAW,EAC7Bu7T,EA2CS0M,CAAiBtgC,GAC7BmqC,EA1CN,SAA0BnqC,GACxB,IAAI4zB,EAASC,EAAa7zB,EAAK4pC,EAAWz9Z,OAAQy9Z,EAAWxJ,UAItD,OAHAxM,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWtyD,MAAMggG,SAAW,EAC5Bu7T,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAqCUoa,CAAiBhuC,GAC9BoqC,EApCN,SAA2BpqC,GACzB,IAAI4zB,EAASC,EAAa7zB,EAAK6pC,EAAY19Z,OAAQ09Z,EAAYzJ,UAKxD,OAJAxM,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWtyD,MAAMggG,SAAW,EAC5Bu7T,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAAAjpW,WAAWijX,UAAUv1U,SAAW,EAChCu7T,EA8BYqa,CAAkBjuC,GACjCqqC,EA7BN,SAA0BrqC,GACxB,IAAI4zB,EAASC,EAAa7zB,EAAK68B,EAAW1wZ,OAAQ0wZ,EAAWuD,UAGtD,OAFAxM,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWl0E,GAAG4hH,SAAW,EACzBu7T,EAyBW2M,CAAiBvgC,GAC/BsqC,EAxBN,SAA+BtqC,GAC7B,IAAI4zB,EAASC,EAAa7zB,EAAK8pC,EAAgB39Z,OAAQ29Z,EAAgB1J,UAIhE,OAHAxM,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWl0E,GAAG4hH,SAAW,EACzBu7T,EAAAjpW,WAAWijX,UAAUv1U,SAAW,EAChCu7T,EAmBgBsa,CAAsBluC,GACzCuqC,EAlBN,SAA6BvqC,GAC3B,IAAI4zB,EAASC,EAAa7zB,EAAK+pC,EAAc59Z,OAAQ49Z,EAAc3J,UAE5D,OADAxM,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAecua,CAAoBnuC,GACrCwgC,EAAchE,EAChBx8B,EACAxC,EAAQ,IAAIrha,WAAW,CAAC,IAAK,IAAK,IAAK,MAAO,CAAC,EAAG,EAAG,KAEvDqkc,EAAY5B,iBACZ4B,EAAYlC,UAAYt+B,EAAIu+B,qBAC5BiC,EAAYhC,UAAYx+B,EAAIy+B,OACxB,IAAA3B,EAAoB79b,EAAa+ga,GACjCi9B,EAAiBh+b,EAAa+ga,GAC9Bk9B,EAAcj+b,EAAa+ga,GAC3BwqC,EAAkBvrc,EAAa+ga,GAC/Bg9B,EAAc/9b,EAAa+ga,GAC3BC,EAAcH,EAAUE,EAAK,CAC/B,CACEnja,OAAQigc,EACR17b,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQmgc,EACR57b,KAAM4+Z,EAAIygC,cACV/+b,KAAM,EACNg/b,YAAY,GAEd,CACE7jc,OAAQogc,EACR77b,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQqgc,EACR97b,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQ2tc,EACRppc,KAAM4+Z,EAAII,MACV1+Z,KAAM,KAGN+oc,EAAgBxrc,EAAa+ga,GAC7B2qC,EAAa1rc,EAAa+ga,GAC1B4qC,EAAU3rc,EAAa+ga,GACvB0qC,EAAUzrc,EAAa+ga,GACvB6qC,EAAU/qC,EAAUE,EAAK,CAC3B,CACEnja,OAAQ4tc,EACRrpc,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQ6tc,EACRtpc,KAAM4+Z,EAAIygC,cACV/+b,KAAM,EACNg/b,YAAY,GAEd,CACE7jc,OAAQ8tc,EACRvpc,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQ+tc,EACRxpc,KAAM4+Z,EAAII,MACV1+Z,KAAM,KAGNopc,EAAiB7rc,EAAa+ga,GAC9BgrC,EAAc/rc,EAAa+ga,GAC3BirC,EAAWhsc,EAAa+ga,GACxBkrC,EAAajsc,EAAa+ga,GAC1B+qC,EAAW9rc,EAAa+ga,GACxBmrC,EAAWrrC,EAAUE,EAAK,CAC5B,CACEnja,OAAQiuc,EACR1pc,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQkuc,EACR3pc,KAAM4+Z,EAAIygC,cACV/+b,KAAM,EACNg/b,YAAY,GAEd,CACE7jc,OAAQmuc,EACR5pc,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQouc,EACR7pc,KAAM4+Z,EAAII,MACV1+Z,KAAM,GAER,CACE7E,OAAQquc,EACR9pc,KAAM4+Z,EAAII,MACV1+Z,KAAM,KAGN0pc,EAAmBnsc,EAAa+ga,GAQhC+3B,EAAO,IAAImS,EACblqC,EACAwgC,EACA5D,EACAuN,EACAC,EACAC,EACAC,EACAC,EACAzN,EACAE,EACAC,EACAC,EACAsN,EACAvqC,EACAwqC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAjCetrC,EAAUE,EAAK,CAC9B,CACEnja,OAAQuuc,EACRhqc,KAAM4+Z,EAAII,MACV1+Z,KAAM,MAiCH,OADPq2b,EAAKhra,OAAOmgM,GACL6qO,IAMb,KAAA,SAEWp6a,EAASg/Y,EAA0BC,GAE1Cj/Y,EAAQhf,QAOC,SAAas8F,EAASsjD,GAC7BtjD,EAAUA,GAAWh9E,SAAS65C,KAE1B,IAAAkmW,EAAS,CAAC,IAAMrga,KAChB,mBAFJ4gJ,EAAUA,GAAW,CAAC,KAGpBy/Q,EAAO,GAAKz/Q,EAAQ0/Q,eAAe,GACnCD,EAAO,GAAKz/Q,EAAQ0/Q,eAAe,IAEjC,YAAa1/Q,IACRy/Q,EAAA,GAAKz/Q,EAAQ6vT,SAElB,YAAa7vT,IACRy/Q,EAAA,GAAKz/Q,EAAQ8vT,SAEtB,IAAI75a,EAAO85a,EAAW,CACpBr6a,OAAQsqH,EAAQtqH,QAAU,CAAC,EAAG,EAAG,GACjC8iE,GAAIwnD,EAAQxnD,IAAM,CAAC,EAAG,EAAG,GACzBD,IAAKynD,EAAQznD,KAAO,CAAC,EAAG,EAAG,IAC3BhwC,KAAMy3F,EAAQz3F,MAAQ,QACtBm3W,eAAgBD,IAEduwC,EAAU,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACxDn5Z,EAAW,EACXsyB,EAAQuzB,EAAQmiK,YAChBh9J,EAASnF,EAAQkiK,aACjBh3C,EAAS,CACXqoP,eAAgB,SAChBC,aAAa,EACbj6a,OACAymE,UACA1yD,MAAOg2G,EAAQh2G,OAAS,GACxBmma,YAAanwT,EAAQmwT,aAAe,EACpCC,UAAWpwT,EAAQowT,WAAa,EAChCC,eAAgBrwT,EAAQqwT,gBAAkB,EAC1CzgE,QAAS5vP,EAAQ4vP,MACjBC,QAAS7vP,EAAQ6vP,MACjBywB,MAAOrqY,EAAKqqY,MACZozB,OAAQ1zS,EAAQ0zS,QAAU1zS,EAAQvwF,YAA0C,iBAA5BuwF,EAAQvwF,WAAW5sD,OAA2B,EAC9F08C,KAAM,WACJ,IAAIr8B,EAAI9C,IACJ4pB,EAAQnmC,KAAKmmC,MACbsma,EAAQptb,EAAI,EAAI8mB,EACf/T,EAAA4qY,KAAK39Y,EAAI8mB,GACd/T,EAAK+qY,aAAasvC,GAClBr6a,EAAK8U,MAAM7nB,GAAK,IAAc,EAAR8mB,IAGtB,IAFA,IAAIuhJ,GAAW,EACX7nK,EAASuS,EAAKsqY,eACT7ja,EAAI,EAAGA,EAAI,KAAMA,EACxB6uL,EAAWA,GAAYykR,EAAQtzc,KAAOgnB,EAAOhnB,GACrCszc,EAAAtzc,GAAKgnB,EAAOhnB,GAEtB,IAAI6zc,EAAc7zW,EAAQmiK,cAAgB11L,GAASuzB,EAAQkiK,eAAiB/8J,EAG5E,OAFA14B,EAAQuzB,EAAQmiK,YAChBh9J,EAASnF,EAAQkiK,aACbrzE,GACMglR,GAEV15Z,EAAWx3C,KAAK60B,IAAI+B,EAAK0qY,eAAe,KACjC,EACT,EACAnmU,OAAQ,SAASjC,EAAK7iE,EAAQ8iE,GAC5BviE,EAAKukE,OAAOvkE,EAAKkrY,QAAS5oU,EAAK7iE,EAAQ8iE,EACzC,EACAl/C,OAAQ,SAASk3Z,EAAOC,EAAKC,GAC3Bz6a,EAAKqjB,OAAOrjB,EAAKkrY,QAASqvC,EAAOC,EAAKC,EACxC,EACArpP,IAAK,SAAS9zL,EAAIC,EAAIshO,GACpB7+N,EAAKoxL,IAAIpxL,EAAKkrY,QAAS5tY,EAAIC,EAAIshO,EACjC,EACAr9N,UAAW,SAASlE,EAAIC,EAAIshO,GAC1B7+N,EAAKwB,UAAUxB,EAAKkrY,QAAS5tY,EAAIC,EAAIshO,KA+JlC,OA5JPj0P,OAAO6Z,iBAAiBktM,EAAQ,CAC9BlkM,OAAQ,CACN1b,IAAK,WACH,OAAOiuB,EAAKsqY,cACd,EACA33Z,IAAK,SAASiub,GAEZ,OADA5ga,EAAK6qY,UAAU7qY,EAAKkrY,QAAS01B,GACtB5ga,EAAKsqY,cACd,EACAx4Z,YAAY,GAEdwgD,KAAM,CACJvgD,IAAK,WACH,OAAOiuB,EAAKorY,SACd,EACAz4Z,IAAK,SAAS2/C,GACR,IAAAooZ,EAAQ16a,EAAKwqY,WAAW9+Z,QACxBivc,EAAS36a,EAAKuqY,YAAY7+Z,QAC1Bkvc,EAAY56a,EAAKyqY,eAAe/+Z,QAEpC,GADAs0B,EAAKmrY,QAAQ74W,GACA,cAATA,EAAsB,CACxB,IAAIle,EAAMjqB,IACV6V,EAAKoqY,QAAQ7lU,OAAOnwD,EAAKuma,EAAQC,EAAWF,GACvC16a,EAAAoqY,QAAQ7lU,OAAOnwD,EAAM,IAAKuma,EAAQC,EAAW,CAAC,EAAG,EAAG,IACpD56a,EAAAoqY,QAAQt1X,MAAMV,GAErB,OAAOpU,EAAKorY,SACd,EACAt5Z,YAAY,GAEd2tB,OAAQ,CACN1tB,IAAK,WACH,OAAOiuB,EAAKyqY,cACd,EACA93Z,IAAK,SAASkoc,GAEZ,OADA76a,EAAKukE,OAAOvkE,EAAKkrY,QAAS,KAAM2vC,GACzB76a,EAAKyqY,cACd,EACA34Z,YAAY,GAEdwwF,IAAK,CACHvwF,IAAK,WACH,OAAOiuB,EAAKuqY,WACd,EACA53Z,IAAK,SAASmoc,GAEZ,OADA96a,EAAKukE,OAAOvkE,EAAKkrY,QAAS4vC,GACnB96a,EAAKuqY,WACd,EACAz4Z,YAAY,GAEdywF,GAAI,CACFxwF,IAAK,WACH,OAAOiuB,EAAKwqY,UACd,EACA73Z,IAAK,SAASooc,GAEZ,OADA/6a,EAAKukE,OAAOvkE,EAAKkrY,QAAS,KAAM,KAAM6vC,GAC/B/6a,EAAKwqY,UACd,EACA14Z,YAAY,GAEd8uC,SAAU,CACR7uC,IAAK,WACI,OAAA6uC,CACT,EACAjuC,IAAK,SAAS3J,GAEL,OADPg3B,EAAK8qY,YAAY9qY,EAAKkrY,QAASlia,GACxBA,CACT,EACA8I,YAAY,GAEd23Z,eAAgB,CACd13Z,IAAK,WACI,OAAAiuB,EAAKirY,kBAAkBzB,EAChC,EACA72Z,IAAK,SAASsZ,GAEL,OADP+T,EAAK+pY,kBAAkB99Y,GAChBA,CACT,EACAna,YAAY,KAGR20F,EAAAtlF,iBAAiB,eAAe,SAASkyG,GAExC,OADPA,EAAG1hG,kBACI,CAAA,IAETggM,EAAOqpP,QAAS,EAChBrpP,EAAOspP,QAAS,EACTtpP,EAAAupP,UAAY,CAAEvsZ,OAAO,EAAOwsZ,SAAS,EAAOC,KAAK,EAAOzsX,MAAM,GACrEgjI,EAAO0pP,qBAAuB,WAe5B,SAASC,EAAkBtzQ,EAAS11L,EAAGC,EAAGgpc,GACxC,IAAIvB,EAAiBroP,EAAOqoP,eAC5B,IAAuB,IAAnBA,EAAJ,CACA,IAAI32Z,EAA4B,WAAnB22Z,EACT5oP,EAAyB,QAAnB4oP,EACN16a,EAA0B,SAAnB06a,EACPwB,IAASD,EAAKJ,QACdC,IAAQG,EAAKH,IACbzsZ,IAAU4sZ,EAAK5sZ,MACftjC,KAAoB,EAAV28K,GACVz8K,KAAqB,EAAVy8K,GACXhnD,KAAsB,EAAVgnD,GACZzmK,EAAQ,EAAIklE,EAAQkiK,aACpBrrO,EAAKiE,GAASjvB,EAAIq/M,EAAOqpP,QACzBz9a,EAAKgE,GAAShvB,EAAIo/M,EAAOspP,QACzBthE,EAAQhoL,EAAOgoL,MAAQ,GAAI,EAC3BC,EAAQjoL,EAAOioL,MAAQ,GAAI,EAC3B6hE,EAAOryc,KAAKu0B,GAAKg0L,EAAOuoP,YACxBjtb,EAAI9C,IACR,IAA4B,IAAxBwnM,EAAOqpP,SAAuC,IAAtBrpP,EAAOspP,UAC7B53Z,GAAUh4B,IAASmwb,IAASJ,IAAQzsZ,GAAStjC,IAASmwb,IAASJ,GAAOzsZ,IACnE3uB,EAAAqjB,OAAOp2B,EAAG0sX,EAAQ8hE,EAAOn+a,GAAKs8W,EAAQ6hE,EAAOl+a,EAAI,IAEpD6zL,GAAO/lM,IAASmwb,IAASJ,IAAQzsZ,GAASpjC,GAASF,GAAQmwb,IAASJ,IAAQzsZ,IACzE3uB,EAAAoxL,IAAInkM,GAAI0kM,EAAOyoP,eAAiB98a,EAAKsjB,EAAU+wK,EAAOyoP,eAAiB78a,EAAKqjB,EAAU,GAEzFthB,GAAQjU,IAASmwb,IAASJ,IAAQzsZ,GAASqyF,GAAU31H,IAASmwb,GAAQJ,IAAQzsZ,GAAO,CACnF,IAAA+sZ,GAAS/pP,EAAOwoP,UAAY58a,EAAKxd,OAAOgwH,aAAe9iH,EAAI+S,EAAKkrY,SAAW,IAC1ElrY,EAAAoxL,IAAInkM,EAAG,EAAG,EAAG2zB,GAAYx3C,KAAK60B,IAAIy9a,GAAS,IAM7C,OAHP/pP,EAAOqpP,OAAS1oc,EAChBq/M,EAAOspP,OAAS1oc,EAChBo/M,EAAOupP,UAAYK,GACZ,CAhCuB,EAhBzB5pP,EAAAgqP,cAAgBC,EAAYn1W,EAAS60W,GACpC70W,EAAAtlF,iBAAiB,cAAc,SAASkyG,GAC9C,IAAIxzB,EAAKymG,EAAYjzE,EAAGx4F,eAAe,GAAI4rE,GACzB60W,EAAA,EAAGz7W,EAAG,GAAIA,EAAG,GAAI8xH,EAAOupP,WACxBI,EAAA,EAAGz7W,EAAG,GAAIA,EAAG,GAAI8xH,EAAOupP,eACzCW,GAAa,CAAEj0Q,SAAS,IACnBnhG,EAAAtlF,iBAAiB,aAAa,SAASkyG,GAC7C,IAAIxzB,EAAKymG,EAAYjzE,EAAGx4F,eAAe,GAAI4rE,GACzB60W,EAAA,EAAGz7W,EAAG,GAAIA,EAAG,GAAI8xH,EAAOupP,WAC1C7nV,EAAG1hG,qBACFkqb,GAAa,CAAEj0Q,SAAS,IACnBnhG,EAAAtlF,iBAAiB,YAAY,SAASkyG,GAC5CioV,EAAkB,EAAG3pP,EAAOqpP,OAAQrpP,EAAOspP,OAAQtpP,EAAOupP,eACzDW,GAAa,CAAEj0Q,SAAS,IAqC3B+pB,EAAOmqP,cAAgBC,EAAWt1W,GAAS,SAASnpE,EAAIC,GAClD,IAA0B,IAA1Bo0L,EAAOqoP,gBACNroP,EAAOsoP,YAAR,CACA,IAAAtgE,EAAQhoL,EAAOgoL,MAAQ,GAAI,EAC3BC,EAAQjoL,EAAOioL,MAAQ,GAAI,EAC3B3sX,EAAI9C,IACR,GAAI/gB,KAAKK,IAAI6zB,GAAMl0B,KAAKK,IAAI8zB,GAC1ByC,EAAKqjB,OAAOp2B,EAAG,EAAG,GAAIqQ,EAAKq8W,EAAQvwY,KAAKu0B,GAAKg0L,EAAOuoP,YAAcn6b,OAAO+vH,iBAErE,IAAC6hF,EAAO8rO,OAAQ,CACd,IAAAie,GAAS/pP,EAAOwoP,UAAYvgE,EAAQr8W,EAAKxd,OAAOgwH,aAAe9iH,EAAI+S,EAAKkrY,SAAW,GAClFlrY,EAAAoxL,IAAInkM,EAAG,EAAG,EAAG2zB,GAAYx3C,KAAK60B,IAAIy9a,GAAS,IAT3B,KAYxB,EACL,EACA/pP,EAAO0pP,uBACA1pP,GA3OL,IAAAxnM,EAAMi+Y,EAAqB,MAC3B0xC,EAAa1xC,EAAqB,MAClCwzC,EAAcxzC,EAAqB,KACnC2zC,EAAa3zC,EAAqB,MAClC9hO,EAAc8hO,EAAqB,IACnCyzC,EAAazzC,EAAqB,OA2O1C,IAAA,SAEWj/Y,EAASg/Y,EAA0BC,GACtC,IAAAg6B,EAAUh6B,EAAqB,MAC/Bi3B,EAAej3B,EAAqB,MACpC4kC,EAAU5K,EAAQ,CAAC,uKACnB6K,EAAU7K,EAAQ,CAAC,+NACf74B,EAAAp/Z,QAAU,SAASqha,GACzB,OAAO6zB,EAAa7zB,EAAKwhC,EAASC,EAAS,KAAM,CAAC,CAAEpzb,KAAM,WAAYjN,KAAM,SAC9E,GAIJ,KAAA,SAEWuc,EAASg/Y,EAA0BC,GAEtC,IAAA4zC,EAAe5zC,EAAqB,MACpC6zC,EAAa7zC,EAAqB,MAClC8zC,EAAa9zC,EAAqB,MAClC+zC,EAAe/zC,EAAqB,MACpCg0C,EAAeh0C,EAAqB,MACpCi0C,EAAYj0C,EAAqB,MACjCk0C,EAAel0C,EAAqB,MACpCwzC,EAAcxzC,EAAqB,KACnChkU,EAAcgkU,EAAqB,MACnC9jU,EAAQ8jU,EAAqB,MAC7Bi3B,EAAej3B,EAAqB,KACpCloT,EAAWkoT,EAAqB,KAArBA,CAA2B,CAAE9nT,QAAQ,EAAMC,eAAe,IAKzE,SAASg8V,IACF3uc,KAAA2sB,MAAQ,EAAC,GAAM,GACpB3sB,KAAK4uc,OAAS,KACd5uc,KAAKgzC,SAAWz3C,IAChByE,KAAKoxC,MAAQ,KACbpxC,KAAK69b,eAAiB,KACtB79b,KAAK6uc,aAAe,KACpB7uc,KAAK8U,OAAS,KACd9U,KAAKd,KAAO,KAcd,SAAS4vc,EAAapqc,GACpB,IAAIC,EAAInJ,KAAKk7B,MAAMl7B,KAAKQ,IAAIR,KAAKK,IAAI6I,IAAMlJ,KAAKQ,IAAI,KACpD,GAAI2I,EAAI,EAAG,CACL,IAAA+hD,EAAOlrD,KAAKk7B,MAAMl7B,KAAKC,IAAI,IAAKkJ,IACpC,OAAOnJ,KAAK25B,KAAKzwB,EAAIgiD,GAAQA,CAAA,CAAA,OACpB/hD,EAAI,GACT+hD,EAAOlrD,KAAKk7B,MAAMl7B,KAAKC,IAAI,GAAIkJ,IAC5BnJ,KAAK25B,KAAKzwB,EAAIgiD,GAAQA,GAExBlrD,KAAK25B,KAAKzwB,GAEnB,SAASqqc,EAAYrqc,GACf,MAAa,kBAANA,GACFA,EAvCX6W,EAAQhf,QAAU,CAChByyc,YA0CF,SAAqB7yT,IACnBA,EAAUA,GAAW,CAAC,GACd4nE,OAAS5nE,EAAQ4nE,QAAU,CAAC,EACpC,IAAIwqD,EAASpyH,EAAQoyH,OAChBA,IACMA,EAAA1yP,SAASzH,cAAc,UAC5B+nI,EAAQvvH,UACMuvH,EAAQvvH,UACdhD,YAAY2kP,GAEb1yP,SAAA65C,KAAK9rC,YAAY2kP,IAG9B,IAAIqvJ,EAAMzhR,EAAQkwS,GAclB,GAbKzuB,IACCzhR,EAAQ8yT,YACC38V,IAAE6pC,EAAQ8yT,UAAUp4V,uBAE3B+mT,EA/CD,SAAWrvJ,EAAQpyH,GAC1B,IAAIyhR,EAAM,KACN,KACIA,EAAArvJ,EAAOE,WAAW,QAAStyH,MAEzByhR,EAAArvJ,EAAOE,WAAW,qBAAsBtyH,UAEzCrhJ,GACA,OAAA,KAEF,OAAA8ia,EAqCCnvJ,CACJF,EACApyH,EAAQ8yT,WAAa,CACnBC,oBAAoB,EACpBC,WAAW,EACXt4V,sBAAuBvE,MAIxBsrT,EACG,MAAA,IAAI1ja,MAAM,uBAElB,IAAIy2G,EAASwrC,EAAQxrC,QAAU,CAAC,EAAC,IAAU,IAAA,IAAM,CAAC,GAAI,GAAI,KACtDjrF,EAAY,IAAIipb,EAChBS,EAAcX,EAChB7wC,EACAA,EAAI/zJ,mBACJ+zJ,EAAI9zJ,oBACJ,CACE02L,aAAcluV,IAGd+8V,EAAc5d,EAAa7zB,GAC3BwyB,EAAUj0S,EAAQmzT,eAAgD,IAAhCnzT,EAAQmzT,aAAazf,QAAmB1zS,EAAQ4nE,OAAOn4J,YAAiD,iBAAnCuwF,EAAQ4nE,OAAOn4J,WAAW5sD,OAA2B,EAC5Juwc,EAAgB,CAClB76W,IAAKynD,EAAQ4nE,OAAOrvH,KAAO,CAAC,EAAG,EAAG,GAClC7iE,OAAQsqH,EAAQ4nE,OAAOlyL,QAAU,CAAC,EAAG,EAAG,GACxC8iE,GAAIwnD,EAAQ4nE,OAAOpvH,IAAM,CAAC,EAAG,EAAG,GAChCq3W,QAAS7vT,EAAQ4nE,OAAOkoP,SAAW,GACnCA,QAAS9vT,EAAQ4nE,OAAOioP,SAAW,IACnCtnZ,KAAMy3F,EAAQ4nE,OAAOr/J,MAAQ,YAC7BmrY,OAAQO,GAENof,EAAcrzT,EAAQi7B,MAAQ,CAAC,EAC/BA,EAAOi3R,EAAWzwC,EAAK4xC,GACtBp4R,EAAApkE,QAAUw8V,EAAY37U,QACvB,IAAA47U,EAAetzT,EAAQuzT,QAAU,CAAC,EAClCA,EAASnB,EAAa3wC,EAAK6xC,GAC3B52F,EAAU,GACV82F,EAAgB,GAChBC,EAAkB,GAClBC,EAAc,GACdxhU,GAAQ,EACRyhU,GAAY,EACZlkZ,EAAa,IAAI5xD,MAAM,IACvBkuS,EAAQ,IAAIluS,MAAM,IAClBsuS,EAAe,CACjBl2Q,KAAM,KACNw5B,aACAs8O,QACA2nJ,QAAQ,GAGNkgB,GADAD,GAAY,EACA,CAAClyC,EAAI/zJ,mBAAoB+zJ,EAAI9zJ,sBACzC/lD,EAAS5nE,EAAQmzT,cAAgBlB,EAAa7/L,EAAQghM,GACtDt/U,EAAQ,CACVo8T,GAAIzuB,EACJoyC,aAAa,EACb1jB,WAAYnwS,EAAQmwS,YAAc,EAClC/9K,SACA7oP,YACAq+L,SACA3sC,OACA64R,WAAY,KACZP,SACA/+V,SACAkoQ,UACA5qS,MAAO8hY,EACPt8W,OAAQ0oD,EAAQ+zT,aAAe,CAAC,EAAG,EAAG,GACtCC,WAAYh0T,EAAQg0T,YAAc,GAClC/mB,MAAOjtS,EAAQitS,OAAS,IACxBC,KAAMltS,EAAQktS,MAAQ,IACtB71V,KAAM2oD,EAAQ3oD,MAAQh4F,KAAKu0B,GAAK,EAChCqgb,WAAYj0T,EAAQi0T,YAAc,CAAC,EAAG,EAAG,EAAG,GAC5CC,WAAYtB,EAAY5yT,EAAQk0T,YAChCC,WAAYvB,EAAY5yT,EAAQm0T,YAChCC,YAAap0T,EAAQo0T,UACrBC,WAAYzB,EAAY5yT,EAAQq0T,YAChCC,aAAc1B,EAAY5yT,EAAQs0T,cAClCC,aAAcv0T,EAAQu0T,WACtBC,SAAUx0T,EAAQw0T,UAAY,KAC9BC,SAAUz0T,EAAQy0T,UAAY,KAC9Bz4T,QAASgE,EAAQhE,SAAW,KAC5BmwJ,eACAuoK,cAAe,KACf9C,cAAe,KACf+C,UAAU,EACVC,eAAgB,WACP,MAAA,CACLrsc,EAAG1E,KAAKyzF,OAAO,GACf9uF,EAAG3E,KAAKyzF,OAAO,GACf7vE,EAAG5jB,KAAKyzF,OAAO,GAEnB,EACAu9W,eAAgB,SAAS94O,GAClBl4N,KAAAyzF,OAAO,GAAKykI,EAAYxzN,EACxB1E,KAAAyzF,OAAO,GAAKykI,EAAYvzN,EACxB3E,KAAAyzF,OAAO,GAAKykI,EAAYt0M,EACjBksb,GAAA,CACd,EACAmB,UAAW,SAASC,EAAW7kc,GAC7BrM,KAAK2wG,OAAO,GAAGugW,GAAa7kc,EAAMzJ,IAClC5C,KAAK2wG,OAAO,GAAGugW,GAAa7kc,EAAM/G,GACpC,EACA6rc,cAAe,SAASf,GACtBpwc,KAAKowc,WAAaA,CACpB,EACAgB,UAAW,WACTpxc,KAAKqsb,GAAG+jB,WACNpwc,KAAKowc,WAAW,GAChBpwc,KAAKowc,WAAW,GAChBpwc,KAAKowc,WAAW,GAChBpwc,KAAKowc,WAAW,IAElBpwc,KAAKqsb,GAAGr3X,MACNh1D,KAAKqsb,GAAGglB,iBAAmBrxc,KAAKqsb,GAAGilB,oBAIrCC,EAAY,CAAC3zC,EAAI/zJ,mBAAqB55I,EAAMq8T,WAAa,EAAG1uB,EAAI9zJ,oBAAsB75I,EAAMq8T,WAAa,GAC7G,SAASklB,IACP,IAAIvhV,EAAM6gV,UAGL7gV,EAAMogV,WAAP,CAGJ,IAAI/nb,EAASimP,EAAOpoP,WAChBm/C,EAAQ,EACR04B,EAAS,EACT11E,GAAUA,IAAWzM,SAAS65C,MAChC4P,EAAQh9C,EAAO0yO,YACfh9J,EAAS11E,EAAOyyO,eAEhBz1L,EAAQnzD,OAAO+vH,WACflkC,EAAS7rF,OAAOgwH,aAElB,IAAIsvU,EAAkD,EAAtCj2c,KAAK25B,KAAKmwC,EAAQ2qD,EAAMq8T,YACpColB,EAAoD,EAAvCl2c,KAAK25B,KAAK6oE,EAASiyB,EAAMq8T,YAC1C,GAAImlB,IAAcljM,EAAOjpM,OAASosY,IAAenjM,EAAOvwK,OAAQ,CAC9DuwK,EAAOjpM,MAAQmsY,EACfljM,EAAOvwK,OAAS0zW,EAChB,IAAIn9b,EAAQg6P,EAAOh6P,MACbA,EAAAY,SAAWZ,EAAMY,UAAY,WACnCZ,EAAMkJ,KAAO,MACblJ,EAAMkZ,IAAM,MACZlZ,EAAM+wD,MAAQA,EAAQ,KACtB/wD,EAAMypF,OAASA,EAAS,KAChBqwC,GAAA,IAOZ,SAASsjU,IAGP,IAFA,IAAIC,EAAU/4F,EAAQv/W,OAClBu4c,EAAUhC,EAAYv2c,OACjBT,EAAI,EAAGA,EAAIg5c,IAAWh5c,EAC7B+2c,EAAgB/2c,GAAK,EAEvBi5c,EACE,IAASj5c,EAAI,EAAGA,EAAI+4c,IAAW/4c,EAAG,CAC5B,IAAA+F,EAAMi6W,EAAQhgX,GACdk5c,EAAYnzc,EAAIi9b,UACpB,GAAKkW,EAAL,CAIA,IAAA,IAASxwc,EAAI,EAAGA,EAAIswc,IAAWtwc,EAC7B,GAAIquc,EAAgBruc,GAAKwwc,EAAY,IAAK,CACxCpC,EAAc92c,GAAK0I,EACnB3C,EAAIk9b,YAAY8T,EAAgBruc,GAAK,GACrCquc,EAAgBruc,IAAMwwc,EACb,SAAAD,EAGT,IAAAE,EAAUxD,EAAa5wC,EAAKmyC,GAChCJ,EAAc92c,GAAKg5c,EACnBhC,EAAYl2c,KAAKq4c,GACjBpC,EAAgBj2c,KAAKo4c,GACrBnzc,EAAIk9b,YAAY,GACL+V,GAAA,OAhBTlC,EAAc92c,IAAK,EAkBzB,KAAOg5c,EAAU,GAAsC,IAAjCjC,EAAgBiC,EAAU,IAC9CjC,EAAgBjma,MACJkma,EAAAlma,MAAM0lZ,UAuItB,SAAS4iB,IACP,GAAIhiV,EAAM+/U,YACD,OAAA,EAELpyC,EAAIs0C,kBACNjiV,EAAM+/U,aAAc,EACpB//U,EAAM89U,cAAcv6U,SAAU,EAC9BvD,EAAMvqG,UAAU5Q,OAAS,KACrBm7G,EAAM4gV,eACR5gV,EAAM4gV,iBAnLR5gV,EAAMogV,YACOmB,IAEVr/b,OAAAoB,iBAAiB,SAAUi+b,GAmC5BvhV,EAAAtlG,OAAS,SAASwnb,GAClBliV,EAAM6gV,WAIFziU,GAAA,EACIyhU,GAAA,EACd,EACM7/U,EAAA72G,IAAM,SAASxa,GACfqxH,EAAM6gV,WAGVlyc,EAAIw4K,KAAOA,EACXyhM,EAAQl/W,KAAKiF,GACb+wc,EAAch2c,MAAO,GACb00I,GAAA,EACIyhU,GAAA,EACG6B,IACjB,EACM1hV,EAAAhuG,OAAS,SAASrjB,GACtB,IAAIqxH,EAAM6gV,SAAV,CAGI,IAAAt2b,EAAMq+V,EAAQ1+W,QAAQyE,GACtB4b,EAAM,IAGFq+V,EAAAzqU,OAAO5zB,EAAK,GACpBm1b,EAAchma,MACN0kG,GAAA,EACIyhU,GAAA,EACG6B,KACjB,EACA1hV,EAAMo/T,QAAU,WACd,IAAIp/T,EAAM6gV,WAGV7gV,EAAM6gV,UAAW,EACV3+b,OAAAC,oBAAoB,SAAUo/b,GAC9BjjM,EAAAn8P,oBAAoB,mBAAoB6/b,GAC/ChiV,EAAM89U,cAAcv6U,SAAU,GAC1BvD,EAAM+/U,aAAV,CAGA54R,EAAKi4Q,UACLqgB,EAAOrgB,UACP,IAAA,IAASx2b,EAAI,EAAGA,EAAIggX,EAAQv/W,SAAUT,EAC5BggX,EAAAhgX,GAAGw2b,UAGb,IADA+f,EAAY/f,UACHx2b,EAAI,EAAGA,EAAIg3c,EAAYv2c,SAAUT,EAC5Bg3c,EAAAh3c,GAAGw2b,UAEjBggB,EAAYhgB,UACNzxB,EAAA,KACCxmP,EAAA,KACEs4R,EAAA,KACT72F,EAAU,GACZ,EACA5oP,EAAMmiV,gBAAiB,EACvBniV,EAAMoiV,aAAe,EACrBpiV,EAAMw9U,qBAAuB,WAC3Bx9U,EAAM89U,cAAgBC,EAAYz/L,GAAQ,SAASn0E,EAAS11L,EAAGC,GAC7D,IAAIsrH,EAAM6gV,SAAV,CAGA,IAAIe,EAAUhC,EAAYv2c,OACtBs4c,EAAU/4F,EAAQv/W,OAClBg5c,EAAU5sb,EAAU5Q,OACxB4Q,EAAUstB,SAAWz3C,IACXmqB,EAAAiH,MAAM,GAAKjoB,EACXghB,EAAAiH,MAAM,GAAKhoB,EACrB+gB,EAAU5Q,OAAS,KACnB4Q,EAAUkpb,OAAS,KACTlpb,EAAAm4a,eAAiBn4a,EAAUmpb,aAAe,KACpD,IAAI7tZ,GAAS,EACT,GAAAo5I,GAAWnqE,EAAMoiV,aACnBpiV,EAAMmiV,gBAAiB,MAClB,CACDniV,EAAMmiV,iBACItC,GAAA,GAEd7/U,EAAMmiV,gBAAiB,EACvB,IAAA,IAASv5c,EAAI,EAAGA,EAAIg5c,IAAWh5c,EAAG,CAChC,IAAIgW,EAASghc,EAAYh3c,GAAGs9H,MAAMzxH,EAAG6sc,EAAU,GAAK5sc,EAAI,EAAGsrH,EAAMkgV,YACjE,GAAIthc,EAAQ,CACN,GAAAA,EAAOmkC,SAAWttB,EAAUstB,SAC9B,SAEF,IAAA,IAASzxC,EAAI,EAAGA,EAAIqwc,IAAWrwc,EAAG,CAC5B,IAAA3C,EAAMi6W,EAAQt3W,GACd,GAAAouc,EAAcpuc,KAAO1I,EAArB,CAGA,IAAA05c,EAAU3zc,EAAI+qQ,KAAK96P,GACnB0jc,IACF7sb,EAAU00K,QAAUA,EACpB10K,EAAUkpb,OAAS//b,EAAOyiG,MAC1B5rF,EAAUstB,SAAWnkC,EAAOmkC,SAC5BttB,EAAU5Q,OAASlW,EACnB8mB,EAAU0rB,MAAQmha,EAAQv/Z,SAC1BttB,EAAUmpb,aAAe0D,EAAQp9b,SACjCuQ,EAAUm4a,eAAiB0U,EAAQ1U,eACnCn4a,EAAUxmB,KAAOqzc,EACRvxZ,GAAA,OAMfsxZ,GAAWA,IAAY5sb,EAAU5Q,SAC/Bw9b,EAAQ3I,WACV2I,EAAQ3I,UAAU,MAEZt7T,GAAA,GAEN3oH,EAAU5Q,SACR4Q,EAAU5Q,OAAO60b,WACTjkb,EAAA5Q,OAAO60b,UAAUjkb,EAAUxmB,MAE/BmvI,GAAA,IAEDrtF,EAAAA,GAAUt7B,EAAU5Q,SAAWw9b,IAC1BriV,EAAM0gV,UAClB1gV,EAAM0gV,SAASjrb,GAEH,EAAV00K,KAAsC,EAArBnqE,EAAMoiV,eAAqBpiV,EAAMkoB,SACpDloB,EAAMkoB,QAAQzyH,GAEhBuqG,EAAMoiV,aAAej4Q,EAAA,GAEzB,EAcOm0E,EAAAh7P,iBAAiB,mBAAoB0+b,GA6B5C,IAAIO,EAAU,CACZ,CAACj3c,IAAUA,IAAUA,KACrB,EAAC,KAAW,KAAW,MAErBk3c,EAAa,CAACD,EAAQ,GAAG10c,QAAS00c,EAAQ,GAAG10c,SACjD,SAASi2D,IACP,IAAIk+Y,IAAJ,CAGeT,IACX,IAAAkB,EAAcziV,EAAM8zF,OAAOroK,OAClB4sP,EAAAl2Q,KAAO69F,EAAM8zF,OAAOlkM,OACjCwuH,EAAQA,GAASqkU,EACjB5C,EAAYA,GAAa4C,EACzBt7R,EAAKk1Q,WAAar8T,EAAMq8T,WACxBojB,EAAOpjB,WAAar8T,EAAMq8T,WAC1B,IAAIslB,EAAU/4F,EAAQv/W,OAClBmJ,EAAK+vc,EAAQ,GACbhwc,EAAKgwc,EAAQ,GACjB/vc,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKlH,IACxBiH,EAAG,GAAKA,EAAG,GAAKA,EAAG,IAAK,IACxB,IAAA,IAAS3J,EAAI,EAAGA,EAAI+4c,IAAW/4c,EAAG,EAC5B+F,EAAMi6W,EAAQhgX,IACdyzb,WAAar8T,EAAMq8T,WACvB1tb,EAAIw4K,KAAOnnD,EAAMmnD,KACT/oC,EAAAA,KAAWzvI,EAAIyvI,MACXyhU,EAAAA,KAAelxc,EAAIyvI,MAC/B,IAAIskU,EAAM/zc,EAAI+xG,OACd,GAAIgiW,EAGF,IAFI,IAAAC,EAAMD,EAAI,GACVE,EAAMF,EAAI,GACLpxc,EAAI,EAAGA,EAAI,IAAKA,EACpBkB,EAAAlB,GAAK/F,KAAKoH,IAAIH,EAAGlB,GAAIqxc,EAAIrxc,IACzBiB,EAAAjB,GAAK/F,KAAK8J,IAAI9C,EAAGjB,GAAIsxc,EAAItxc,IAIlC,IAAIuxc,EAAU7iV,EAAMtf,OACpB,GAAIsf,EAAMqgV,WACR,IAAS/uc,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,GAAIiB,EAAGjB,GAAKkB,EAAGlB,GACbkB,EAAGlB,IAAK,EACRiB,EAAGjB,GAAK,MACH,CACDkB,EAAGlB,KAAOiB,EAAGjB,KACfkB,EAAGlB,IAAM,EACTiB,EAAGjB,IAAM,GAEX,IAAIosB,EAAU,KAAQnrB,EAAGjB,GAAKkB,EAAGlB,IACjCkB,EAAGlB,GAAKkB,EAAGlB,GAAKosB,EAChBnrB,EAAGjB,GAAKiB,EAAGjB,GAAKosB,EAElBmlb,EAAQ,GAAGvxc,GAAKkB,EAAGlB,GACnBuxc,EAAQ,GAAGvxc,GAAKiB,EAAGjB,GAGvB,IAAI0tb,GAAgB,EACpB,IAAS1tb,EAAI,EAAGA,EAAI,IAAKA,EACvB0tb,EAAgBA,GAAiBwjB,EAAW,GAAGlxc,KAAOuxc,EAAQ,GAAGvxc,IAAMkxc,EAAW,GAAGlxc,KAAOuxc,EAAQ,GAAGvxc,GACvGkxc,EAAW,GAAGlxc,GAAKuxc,EAAQ,GAAGvxc,GAC9Bkxc,EAAW,GAAGlxc,GAAKuxc,EAAQ,GAAGvxc,GAIhC,GAFAuuc,EAAYA,GAAa7gB,EACzB5gT,EAAQA,GAAS4gT,EACjB,CAGA,GAAIA,EAAe,CACjB,IAAI/8X,EAAc,CAAC,EAAG,EAAG,GACzB,IAASr5D,EAAI,EAAGA,EAAI,IAAKA,EACvBq5D,EAAYr5D,GAAKi2c,GAAcgE,EAAQ,GAAGj6c,GAAKi6c,EAAQ,GAAGj6c,IAAM,IAE9Du+K,EAAKsE,UACPtE,EAAKzsJ,OAAO,CACVgmF,OAAQmiW,EACR5gZ,gBAGFklH,EAAKzsJ,OAAO,CACVgmF,OAAQmiW,IAId,IAAIxtY,EAAQs4V,EAAI/zJ,mBACZ7rK,EAAS4/T,EAAI9zJ,oBAMjB,IALAimM,EAAU,GAAKzqY,EACfyqY,EAAU,GAAK/xW,EACLuzW,EAAA,GAA6C,EAAxC/1c,KAAK8J,IAAIggE,EAAQ2qD,EAAMq8T,WAAY,GACxCilB,EAAA,GAA8C,EAAzC/1c,KAAK8J,IAAI04F,EAASiyB,EAAMq8T,WAAY,GAuH9C,SAAiBr8T,EAAOmgU,GAC/B,IAAIz/U,EAASsf,EAAMtf,OACf23L,EAAer4K,EAAMq4K,aACrB18O,EAAa08O,EAAa18O,WAC1Bs8O,EAAQI,EAAaJ,MACrB5iO,EAAQ2qD,EAAMo8T,GAAGxiL,mBACjB7rK,EAASiyB,EAAMo8T,GAAGviL,oBAClBs/K,EAAQn5T,EAAMm5T,MACdC,EAAOp5T,EAAMo5T,KACb71V,EAAOy8B,EAAMz8B,KACbx8D,EAAIsuC,EAAQ04B,EACZoyV,GACF15V,EACE9qC,GACC50B,EACDA,GACA,EACA,EACAoyZ,EACAC,GAEF/gJ,EAAaunJ,QAAS,IAEtBr5V,EACE5qC,EACA4nC,EACAx8D,EACAoyZ,EACAC,GAEF/gJ,EAAaunJ,QAAS,GAExB,IAAA,IAASh3b,EAAI,EAAGA,EAAI,KAAMA,EACxBqvS,EAAMrvS,GAAK,EAEbqvS,EAAM,IAAM,EACZ,IAAI6qK,EAAO,EACX,IAASl6c,EAAI,EAAGA,EAAI,IAAKA,EACvBk6c,EAAOv3c,KAAK8J,IAAIytc,EAAMpiW,EAAO,GAAG93G,GAAK83G,EAAO,GAAG93G,IAEjD,IAASA,EAAI,EAAGA,EAAI,IAAKA,EACnBo3H,EAAMsgV,UACRroK,EAAM,EAAIrvS,GAAKo3H,EAAMx8B,OAAO56F,IAAM83G,EAAO,GAAG93G,GAAK83G,EAAO,GAAG93G,IAErDqvS,EAAA,EAAIrvS,GAAK,EAAIk6c,EAEjB9iV,EAAMugV,aACRtoK,EAAM,GAAKrvS,GAAqB,IAAfqvS,EAAM,EAAIrvS,IAAY83G,EAAO,GAAG93G,GAAK83G,EAAO,GAAG93G,KArKlEm6c,CAAiB/iV,EAAOmgU,GACfv3b,EAAI,EAAGA,EAAI+4c,IAAW/4c,GACzB+F,EAAMi6W,EAAQhgX,IACdo6c,WAAaH,EACb7iV,EAAMwgV,eACR7xc,EAAIq8b,WAAa6X,GAGjBptb,EAAU5Q,SACRm7G,EAAMygV,WACRhB,EAAOv6b,SAAWuQ,EAAUm4a,eAE5B6R,EAAOv6b,SAAWuQ,EAAUmpb,aAE9Ba,EAAO/+V,OAASmiW,GAEdhD,IACUA,GAAA,EAtIhB,WACE,IAAImC,IAAJ,CAGAr0C,EAAIs1C,WAAU,GAAM,GAAM,GAAM,GAChCt1C,EAAIu1C,WAAU,GACVv1C,EAAA/pS,QAAQ+pS,EAAIw1C,OACZx1C,EAAA5qT,OAAO4qT,EAAIy1C,YACXz1C,EAAA01C,UAAU11C,EAAI21C,QAGlB,IAFA,IAAI3B,EAAU/4F,EAAQv/W,OAClBu4c,EAAUhC,EAAYv2c,OACjBiI,EAAI,EAAGA,EAAIswc,IAAWtwc,EAAG,CAC5B,IAAAxE,EAAM8yc,EAAYtuc,GACtBxE,EAAIkxE,MAAQsjY,EACZx0c,EAAIy2c,QACJ,IAAA,IAAS36c,EAAI,EAAGA,EAAI+4c,IAAW/4c,EACzB,GAAA82c,EAAc92c,KAAO0I,EAArB,CAGA,IAAA3C,EAAMi6W,EAAQhgX,GACd+F,EAAI8+b,WACN9+b,EAAI0tb,WAAa,EACjB1tb,EAAI8+b,SAASp1J,IAGjBvrS,EAAI1C,QA8GOo5c,IAEbxjV,EAAMggV,WAAa3B,EAAWr+U,EAAMmnD,KAAMkxH,EAAchjO,EAAO04B,GAC3DiyB,EAAM2gV,UACR3gV,EAAM2gV,WAEJhzC,EAAAsjC,gBAAgBtjC,EAAIujC,YAAa,MACrCvjC,EAAIqmC,SAAS,EAAG,EAAG3+X,EAAO04B,GAC1BiyB,EAAMmhV,YACNxzC,EAAIu1C,WAAU,GACdv1C,EAAIs1C,WAAU,GAAM,GAAM,GAAM,GAC5Bt1C,EAAA5qT,OAAO4qT,EAAIy1C,YACXz1C,EAAA01C,UAAU11C,EAAI21C,QACd31C,EAAA/pS,QAAQ+pS,EAAIw1C,OACZx1C,EAAA/pS,QAAQ+pS,EAAI4/B,WAChB,IAAIkW,GAAiB,EAUrB,IATIt8R,EAAKpkE,SACU0gW,EAAAA,GAAkBt8R,EAAK24Q,gBACxC34Q,EAAKjS,KAAKmjI,IAEZonK,EAAOt4R,KAAOA,EACV1xJ,EAAU5Q,QACZ46b,EAAOvqS,KAAKmjI,GAEVs1H,EAAA/pS,QAAQ+pS,EAAI4/B,WACP3kc,EAAI,EAAGA,EAAI+4c,IAAW/4c,GACzB+F,EAAMi6W,EAAQhgX,IACdu+K,KAAOA,EACXx4K,EAAI0tb,WAAar8T,EAAMq8T,WACnB1tb,EAAIkxb,UAAYlxb,EAAIkxb,YACtBlxb,EAAIumK,KAAKmjI,GAEP1pS,EAAImxb,eAAiBnxb,EAAImxb,kBACV2jB,GAAA,GAGrB,GAAIA,EAAgB,CAUlB,IATAtE,EAAYnhY,MAAQ8hY,EACpBX,EAAYr/b,OACR6tZ,EAAA5oW,MAAM4oW,EAAI0zC,kBACd1zC,EAAIs1C,WAAU,GAAO,GAAO,GAAO,GACnCt1C,EAAIu1C,WAAU,GACVv1C,EAAA01C,UAAU11C,EAAI+1C,MACdv8R,EAAKpkE,QAAUokE,EAAK24Q,iBACtB34Q,EAAK44Q,gBAAgB1nJ,GAEdzvS,EAAI,EAAGA,EAAI+4c,IAAW/4c,GACzB+F,EAAMi6W,EAAQhgX,IACVi3b,UAAYlxb,EAAIkxb,YACtBlxb,EAAIumK,KAAKmjI,GAab,IAVIs1H,EAAA5qT,OAAO4qT,EAAIw1C,OACXx1C,EAAAg2C,cAAch2C,EAAIi2C,UACtBj2C,EAAIk2C,UAAUl2C,EAAIm2C,IAAKn2C,EAAIo2C,qBAC3Bp2C,EAAIs1C,WAAU,GAAM,GAAM,GAAM,GAChCt1C,EAAIu1C,WAAU,GACdv1C,EAAIwyC,WAAW,EAAG,EAAG,EAAG,GACpBxyC,EAAA5oW,MAAM4oW,EAAIyzC,kBACVj6R,EAAK24Q,iBACP34Q,EAAK44Q,gBAAgB1nJ,GAEdzvS,EAAI,EAAGA,EAAI+4c,IAAW/4c,EAAG,CAC5B,IAAA+F,KAAMi6W,EAAQhgX,IACVk3b,eAAiBnxb,EAAImxb,iBAC3Bnxb,EAAIoxb,gBAAgB1nJ,GAGpBs1H,EAAAsjC,gBAAgBtjC,EAAIujC,YAAa,MACrCvjC,EAAIk2C,UAAUl2C,EAAIm2C,IAAKn2C,EAAIo2C,qBACvBp2C,EAAA/pS,QAAQ+pS,EAAIy1C,YAChBhE,EAAYt/b,OACZq/b,EAAYn5a,MAAM,GAAGlmB,KAAK,GAC1Bs/b,EAAYvd,SAASsd,YAAc,EACnCV,EAAa9wC,GACTA,EAAA/pS,QAAQ+pS,EAAIw1C,OAGlB,IADQ/kU,GAAA,EACCx1I,EAAI,EAAGA,EAAI+4c,IAAW/4c,EACrBggX,EAAAhgX,GAAGw1I,OAAQ,IAmBhB,OATPpe,EAAMw9U,uBAPN,SAASwG,IACHhkV,EAAM6gV,UAAY7gV,EAAM+/U,cAGrBj8Y,IACP+xM,sBAAsBmuM,IAGjBA,GACPhkV,EAAMl8D,OAAS,WACTk8D,EAAM6gV,WAGFziU,GAAA,EACDt6E,IACT,EACOk8D,GAnnBPm+U,iBA2qBN,IAAA,SAEW7yb,GACPA,EAAQhf,QACR,SAAe4J,EAAK1B,EAAG9F,EAAG0gB,GACxB,IACI60b,EAAOC,EAAOC,EAAOpgb,EAAQgB,EAD7BqW,EAAK5mC,EAAE,GAAI6mC,EAAK7mC,EAAE,GAAI0hb,EAAK1hb,EAAE,GAAIyhb,EAAKzhb,EAAE,GAAI8mC,EAAK5sC,EAAE,GAAI6sC,EAAK7sC,EAAE,GAAIynb,EAAKznb,EAAE,GAAImpM,EAAKnpM,EAAE,GAuBjF,OArBPw1c,EAAQ9oa,EAAKE,EAAKD,EAAKE,EAAK26Y,EAAKC,EAAKF,EAAKp+O,GAC/B,IACVqsQ,GAASA,EACT5oa,GAAMA,EACNC,GAAMA,EACN46Y,GAAMA,EACNt+O,GAAMA,GAEJ,EAAIqsQ,EAAQ,MACND,EAAA14c,KAAK+uD,KAAK4pZ,GACVC,EAAA54c,KAAK+7B,IAAI28a,GACjBlgb,EAASx4B,KAAK+7B,KAAK,EAAIlY,GAAK60b,GAASE,EACrCp/a,EAASx5B,KAAK+7B,IAAIlY,EAAI60b,GAASE,IAE/Bpgb,EAAS,EAAI3U,EACJ2V,EAAA3V,GAEXlZ,EAAI,GAAK6tB,EAASqX,EAAKrW,EAASuW,EAChCplC,EAAI,GAAK6tB,EAASsX,EAAKtW,EAASwW,EAChCrlC,EAAI,GAAK6tB,EAASmyZ,EAAKnxZ,EAASoxZ,EAChCjgb,EAAI,GAAK6tB,EAASkyZ,EAAKlxZ,EAAS8yK,EACzB3hM,IAKb,KAAA,SAEWoV,GAECogZ,EAAAp/Z,QAAU,SAASkI,GACzB,OAAQA,GAAW,IAANA,EAAeA,EAAEjF,WAAP,EACzB,GAIJ,KAAA,SAEW+b,EAASg/Y,EAA0BC,GAEtC,IAAAw6B,EAAgBx6B,EAAqB,MACzCj/Y,EAAQhf,QAEC,SAASyyD,EAAQiwB,EAAMqtW,GAC9B,IAAImJ,EAAU,CACZx2W,EAAK1qE,MACL0qE,EAAKtjC,OACLsjC,EAAKxB,QACLwB,EAAK3B,QACLxjF,KAAK,KACHu6c,EAAYC,EAAY7e,GAI5B,GAHK4e,IACSA,EAAAC,EAAY7e,GAAW,CAAC,GAElCzmY,KAAUqlZ,EACZ,OAAOA,EAAUrlZ,GAEnB,IAAI59C,EAAS,CACX2nM,UAAW,SACX88O,aAAc,SACdxiQ,WAAY,EACZp0G,KAAMA,EAAK3B,OACXwoF,UAAW7mF,EAAK1qE,MAChBsxJ,WAAY5mF,EAAKtjC,OACjBoqH,YAAa9mF,EAAKxB,QAClBq4W,YAAa,KACbC,UAAW,CACTC,YAAY,EACZC,OAAO,EACPC,SAAS,EACTC,YAAY,EACZC,cAAc,GAGlBhlb,WAAmB,GACfmjc,EAAYvf,EAAchmY,EAAQ59C,GACtCA,EAAOs+B,WAAY,EACf,IACA72C,EAAG0I,EADHizc,EAAaxf,EAAchmY,EAAQ59C,GAEnC,GAAAk7a,GAA6B,IAAfA,EAAkB,CAClC,IAAKzzb,EAAI,EAAGA,EAAI07c,EAAUl3L,UAAU/jR,SAAUT,EACvC,IAAA0I,EAAI,EAAGA,EAAIgzc,EAAUl3L,UAAUxkR,GAAGS,SAAUiI,EAC/Cgzc,EAAUl3L,UAAUxkR,GAAG0I,IAAM+qb,EAGjC,IAAKzzb,EAAI,EAAGA,EAAI27c,EAAWn3L,UAAU/jR,SAAUT,EACxC,IAAA0I,EAAI,EAAGA,EAAIizc,EAAWn3L,UAAUxkR,GAAGS,SAAUiI,EAChDizc,EAAWn3L,UAAUxkR,GAAG0I,IAAM+qb,EAIhC,IAAA37U,EAAS,CAAC,CAACp1G,IAAUA,KAAW,EAAC,KAAW,MAC5CiF,EAAIg0c,EAAWn3L,UAAU/jR,OAC7B,IAAKT,EAAI,EAAGA,EAAI2H,IAAK3H,EAAG,CAClB,IAAA4W,EAAI+kc,EAAWn3L,UAAUxkR,GAC7B,IAAK0I,EAAI,EAAGA,EAAI,IAAKA,EACnBovG,EAAO,GAAGpvG,GAAK/F,KAAKoH,IAAI+tG,EAAO,GAAGpvG,GAAIkO,EAAElO,IACxCovG,EAAO,GAAGpvG,GAAK/F,KAAK8J,IAAIqrG,EAAO,GAAGpvG,GAAIkO,EAAElO,IAG5C,OAAO8yc,EAAUrlZ,GAAU,CAACulZ,EAAWC,EAAY7jW,IA1DrD,IAAI2jW,EAAc,CAAC,GA+DvB,KAAA,SAEWh5C,EAAyBtlW,EAAUwkW,GACtC,IAAAi6C,EAAsBj6C,EAAqB,MAC3Cg6B,EAAUh6B,EAAqB,MAC/Bk6C,EAAqBlgB,EAAQ,CAAC,q6CAC9BmgB,EAAsBngB,EAAQ,CAAC,m+CAC/BogB,EAAoBpgB,EAAQ,CAAC,6iDAC7BqgB,EAAcrgB,EAAQ,CAAC,q1BACvBkK,EAAclK,EAAQ,CAAC,wyBACvByQ,EAAa,CACf,CAAEh5b,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,KAAMjN,KAAM,SAElBw3F,EAAc,CAChBzsD,OAAQ2qa,EACR1W,SAAU6W,EACVtsX,WAAY08W,GACXvuW,EAAQ,CACT3sD,OAAQ4qa,EACR3W,SAAU6W,EACVtsX,WAAY08W,GACXjhS,EAAU,CACXj6H,OAAQ6qa,EACR5W,SAAU6W,EACVtsX,WAAY08W,GACX6P,EAAkB,CACnB/qa,OAAQ2qa,EACR1W,SAAUU,EACVn2W,WAAY08W,GACX8P,EAAY,CACbhra,OAAQ4qa,EACR3W,SAAUU,EACVn2W,WAAY08W,GACX+P,EAAc,CACfjra,OAAQ6qa,EACR5W,SAAUU,EACVn2W,WAAY08W,GAEL,SAAAxT,EAAa7zB,EAAKzwZ,GACrB,IAAAqkb,EAASijB,EAAoB72C,EAAKzwZ,GAClC6b,EAAOwoa,EAAOjpW,WAKX,OAJPv/D,EAAK7T,SAAS8gH,SAAW,EACzBjtG,EAAKiN,MAAMggG,SAAW,EACtBjtG,EAAKisb,MAAMh/U,SAAW,EACtBjtG,EAAK3U,GAAG4hH,SAAW,EACZu7T,EAEAx7X,EAAAk/Y,kBAAoB,SAASt3C,GAC7B,OAAA6zB,EAAa7zB,EAAKpnU,EAC3B,EACSxgC,EAAAm/Y,YAAc,SAASv3C,GACvB,OAAA6zB,EAAa7zB,EAAKlnU,EAC3B,EACS1gC,EAAAo/Y,cAAgB,SAASx3C,GACzB,OAAA6zB,EAAa7zB,EAAK55P,EAC3B,EACShuG,EAAAq/Y,sBAAwB,SAASz3C,GACjC,OAAA6zB,EAAa7zB,EAAKk3C,EAC3B,EACS9+Y,EAAAs/Y,gBAAkB,SAAS13C,GAC3B,OAAA6zB,EAAa7zB,EAAKm3C,EAC3B,EACS/+Y,EAAAu/Y,kBAAoB,SAAS33C,GAC7B,OAAA6zB,EAAa7zB,EAAKo3C,EAC3B,GAIJ,KAAA,SAEWz5b,EAASg/Y,EAA0BC,GAEtC,IAAAg7C,EAAah7C,EAAqB,MAClC39Z,EAAe29Z,EAAqB,MACpCkD,EAAYlD,EAAqB,MACjC8Y,EAAO9Y,EAAqB,MAC5Bi7C,EAAWj7C,EAAqB,MAChCy/B,EAAUz/B,EAAqB,MAC/Bk7C,EAAWl7C,EAAqB,MAChCm7C,EAAkBn7C,EAAqB,MACvC6/B,EAAW,CACb,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEE/pZ,EAAKtyC,YACL4tE,EAAKC,SAIT,SAASE,EAAoBtnE,GAC3B,OAAOzK,MAAMiF,QAAQwF,IAJvB,SAAsBA,GACpB,OAAO6rC,EAAGryC,OAAOwG,MAAQA,aAAamnE,GAGXE,CAAarnE,GAGjC,SAAAmxc,EAAclxc,EAAG3J,GACpB,IAAAi3B,EAAKttB,EAAE,GACPutB,EAAKvtB,EAAE,GACP4pC,EAAK5pC,EAAE,GACPujC,EAAKvjC,EAAE,GAKJ,OAJPA,EAAE,GAAK3J,EAAE,GAAKi3B,EAAKj3B,EAAE,GAAKk3B,EAAKl3B,EAAE,GAAKuzC,EAAKvzC,EAAE,IAAMktC,EACnDvjC,EAAE,GAAK3J,EAAE,GAAKi3B,EAAKj3B,EAAE,GAAKk3B,EAAKl3B,EAAE,GAAKuzC,EAAKvzC,EAAE,IAAMktC,EACnDvjC,EAAE,GAAK3J,EAAE,GAAKi3B,EAAKj3B,EAAE,GAAKk3B,EAAKl3B,EAAE,IAAMuzC,EAAKvzC,EAAE,IAAMktC,EACpDvjC,EAAE,GAAK3J,EAAE,GAAKi3B,EAAKj3B,EAAE,GAAKk3B,EAAKl3B,EAAE,IAAMuzC,EAAKvzC,EAAE,IAAMktC,EAC7CvjC,EAET,SAASs/J,EAAQv0J,EAAG4O,EAAGtjB,EAAG2J,GAGjB,OAFOkxc,EAAAlxc,EAAGA,GACHkxc,EAAAlxc,EAAGA,GACVkxc,EAAclxc,EAAGA,GAEjB,SAAAmxc,EAAsBzka,EAAOj8B,GACpCnV,KAAKoxC,MAAQA,EACRpxC,KAAA69b,eAAiB79b,KAAKmV,SAAWA,EAExC,SAAS2gc,EAAWrxc,GACd,OAAM,IAANA,GACAA,EAAI,EADe,EAEhBA,EAET,SAASsxc,EAAWn4C,EAAK4zB,EAAQwkB,EAAaC,EAAeC,EAAaC,EAAaC,EAAaC,EAAU/kB,EAAKglB,EAAuBC,EAAiBC,GACzJx2c,KAAKqsb,GAAKzuB,EACV59Z,KAAKssb,WAAa,EAClBtsb,KAAKwxb,OAASA,EACdxxb,KAAKg2c,YAAcA,EACnBh2c,KAAKi2c,cAAgBA,EACrBj2c,KAAKk2c,YAAcA,EACnBl2c,KAAKm2c,YAAcA,EACnBn2c,KAAKo2c,YAAcA,EACnBp2c,KAAKq2c,SAAWA,EAChBr2c,KAAKsxb,IAAMA,EACXtxb,KAAKm/b,YAAc,EACnBn/b,KAAKy2c,gBAAkB,EACvBz2c,KAAK0gF,QAAU,EACf1gF,KAAK+5E,UAAW,EAChB/5E,KAAK42J,UAAY,EACjB52J,KAAK02c,aAAe,CAAC,EAAI,EAAG,EAAI,EAAG,EAAI,GACvC12c,KAAK22c,eAAiB,CAAC,EAAG,EAAG,GAC7B32c,KAAK42c,iBAAkB,EACvB52c,KAAKg7b,OAAS,EACdh7b,KAAKs2c,sBAAwBA,EAC7Bt2c,KAAKu2c,gBAAkBA,EACvBv2c,KAAKw2c,kBAAoBA,EACzBx2c,KAAK8mC,OAAS,GACT9mC,KAAA62c,cAAgB,IAAIhB,EAAsB,EAAG,CAAC,EAAG,EAAG,IACzD71c,KAAK82c,UAAW,EAChB92c,KAAK2wG,OAAS,CACZ,CAACp1G,IAAUA,IAAUA,KACrB,EAAC,KAAW,KAAW,MAEzByE,KAAK+2c,YAAc,EAAC,GAAM,GAAM,GAChC/2c,KAAKizc,WAAa,CAChB,EAAC,KAAW,KAAW,KACvB,CAAC13c,IAAUA,IAAUA,MAEvByE,KAAKg3c,YAAc,CAAC,EAAG,EAAG,EAAG,GAC7Bh3c,KAAKi3c,eAAiB,EACtBj3c,KAAKi7b,WAAa,CAChB,EAAC,KAAW,KAAW,KACvB,CAAC1/b,IAAUA,IAAUA,MAEvByE,KAAKquI,OAAQ,EAnEf9yH,EAAQhf,QAmoBR,SAA0B4/I,GACxB,IAAIyhR,EAAMzhR,EAAQkwS,GACdmF,EAASyI,EAAQib,kBAAkBt3C,GACnCo4C,EAAc/b,EAAQkb,YAAYv3C,GAClCq4C,EAAgBhc,EAAQmb,cAAcx3C,GACtC04C,EAAwBrc,EAAQob,sBAAsBz3C,GACtD24C,EAAkBtc,EAAQqb,gBAAgB13C,GAC1C44C,EAAoBvc,EAAQsb,kBAAkB33C,GAC9Cs4C,EAAcr5c,EAAa+ga,GAC3Bu4C,EAAct5c,EAAa+ga,GAC3Bw4C,EAAcv5c,EAAa+ga,GAC3By4C,EAAWx5c,EAAa+ga,GACxB0zB,EAAM5zB,EAAUE,EAAK,CACvB,CACEnja,OAAQy7c,EACR52c,KAAM,EACNN,KAAM4+Z,EAAII,OAEZ,CACEvja,OAAQ07c,EACR72c,KAAM,EACNN,KAAM4+Z,EAAII,OAEZ,CACEvja,OAAQ27c,EACR92c,KAAM,EACNN,KAAM4+Z,EAAII,OAEZ,CACEvja,OAAQ47c,EACR/2c,KAAM,EACNN,KAAM4+Z,EAAIygC,cACVC,YAAY,KAGZ4Y,EAAa,IAAInB,EACnBn4C,EACA4zB,EACAwkB,EACAC,EACAC,EACAC,EACAC,EACAC,EACA/kB,EACAglB,EACAC,EACAC,GAGK,OADPU,EAAWvsb,OAAOwxH,GACX+6T,GAhnBT,IAAItzc,EAAQmyc,EAAW74c,UACvB0G,EAAMi4b,UAAY,EACZj4b,EAAAk4b,YAAc,SAASqb,GAC3Bn3c,KAAKg7b,OAASmc,CAChB,EACAvzc,EAAMmsb,cAAgB,WACpB,GAAI/vb,KAAK+5E,SACA,OAAA,EAET,IAAA,IAASlhF,EAAI,EAAGA,EAAI,IAAKA,EACvB,GAAImH,KAAK+2c,YAAYl+c,IAAMmH,KAAK42c,gBACvB,OAAA,EAGJ,OAAA,CACT,EACAhzc,EAAMksb,SAAW,WACX,IAAC9vb,KAAK+5E,SACD,OAAA,EAET,IAAA,IAASlhF,EAAI,EAAGA,EAAI,IAAKA,EACvB,GAAImH,KAAK+2c,YAAYl+c,KAAOmH,KAAK42c,gBACxB,OAAA,EAGJ,OAAA,CACT,EACI,IAAAQ,EAAa,CAAC,EAAG,GACjBC,EAAQ,CAAC,EAAG,EAAG,GACfC,EAAQ,CAAC,EAAG,EAAG,GACfC,EAAS,CAAC,EAAG,EAAG,EAAG,GACnBC,EAAS,CAAC,EAAG,EAAG,EAAG,GACnBC,EAAiBpd,EAASv8b,QAC1B45c,EAAc,CAAC,EAAG,EAAG,GACrBC,EAAc,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACrC,SAAS3jB,EAAQvvb,GAER,OADPA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAK,EACdA,EAEA,SAAAmzc,EAAQC,EAAIC,GAKZ,OAJJD,EAAA,GAAKC,EAAG,GACRD,EAAA,GAAKC,EAAG,GACRD,EAAA,GAAKC,EAAG,GACXD,EAAG,GAAK,EACDA,EAET,SAASE,EAAa5xc,EAAKkY,EAAGxlB,EAAG6L,GAKxB,OAJHyB,EAAA,GAAKkY,EAAE,GACPlY,EAAA,GAAKkY,EAAE,GACPlY,EAAA,GAAKkY,EAAE,GACXlY,EAAItN,GAAK6L,EACFyB,EAWT,SAAS6xc,EAAYxmB,EAAQ1qZ,EAAQi9K,EAAQuoO,GAC3C,IAQIkD,EARAunB,EAAcjwa,EAAOiwa,YACrBn5C,EAAM92X,EAAOulZ,GACbyF,EAAWN,EAAOM,SAClB5pJ,EAAQnkF,EAAOmkF,OAASmyJ,EACxBjoa,EAAO2xL,EAAO3xL,MAAQioa,EACtBzuY,EAAam4J,EAAOn4J,YAAcyuY,EAClC1pV,EAAS7pE,EAAOmsa,WAChBhY,EAjBN,SAAuBtqV,GAErB,IADA,IAAI9hG,EAAS8oc,EACJ9+c,EAAI,EAAGA,EAAI,IAAKA,EACvB,IAAA,IAAS0I,EAAI,EAAGA,EAAI,IAAKA,EACvBsN,EAAOhW,GAAG0I,GAAK/F,KAAK8J,IAAI9J,KAAKoH,IAAI+tG,EAAO93G,GAAG0I,GAAI,MAAU,KAGtD,OAAAsN,EAUUopc,CAAcnxa,EAAOm0Z,YAGzBzL,EADT1oZ,EAAOswI,MAAQtwI,EAAOswI,KAAKy1Q,cAClB/lZ,EAAOswI,KAAKy1Q,cAAcz7X,KAE1B,CAAC,EAAG,EAAG,GAETgmZ,EAAA,GAAK,EAAIx5C,EAAI/zJ,mBACbutM,EAAA,GAAK,EAAIx5C,EAAI9zJ,oBACxB0nL,EAAOzhb,OACP+hb,EAAS1/Z,KAAOA,EAChB0/Z,EAASlmY,WAAaA,EACtBkmY,EAASomB,WAAad,EACtBtlB,EAASklB,YAAclwa,EAAOkwa,YAC9BllB,EAASmlB,eAAiBnwa,EAAOmwa,eACjCnlB,EAASmJ,WAAaA,EACbnJ,EAAAqmB,UAAYrxa,EAAOk0Z,OAAS,IACrClJ,EAASxF,WAAaA,EACtB,IAAA,IAASzzb,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAACk+c,EAAYl+c,GAAb,CAGKi5b,EAAAn+Z,MAAQmT,EAAO4va,aAAa79c,GAC5Bi5b,EAAApxW,QAAU55C,EAAO6va,eAAe99c,GAEzC,IADA,IAAIu/c,EAASX,EACJl2c,EAAI,EAAGA,EAAI,KAAMA,EACxB62c,EAAO72c,GAAK,EAEd,IAASA,EAAI,EAAGA,EAAI,IAAKA,EAChB62c,EAAA,EAAI72c,GAAK,EAEX62c,EAAA,EAAIv/c,GAAK,EACZ22b,EAAS32b,GAAK,EAChBu/c,EAAO,GAAKv/c,GAAK83G,EAAO,GAAG93G,GAE3Bu/c,EAAO,GAAKv/c,GAAK83G,EAAO,GAAG93G,GAEpB48c,EAAA2C,EAAQlwK,EAAOkwK,GACxBtmB,EAAS5pJ,MAAQkwK,EACb,IAAA7mb,GAAK14B,EAAI,GAAK,EACdwlB,GAAKxlB,EAAI,GAAK,EACdw/c,EAAKrkB,EAAQqjB,GACb7nI,EAAMwkH,EAAQsjB,GAClBe,EAAG9mb,GAAK,EACRi+S,EAAInxT,GAAK,EACL,IAAAi6b,EAAMt0S,EAAQp4G,EAAYx5B,EAAM81Q,EAAO0vK,EAAQL,EAAQc,IACvDE,EAAMv0S,EAAQp4G,EAAYx5B,EAAM81Q,EAAO0vK,EAAQJ,EAAQhoI,IACvD,GAAAh0U,KAAKK,IAAIy8c,EAAI,IAAM98c,KAAKK,IAAI08c,EAAI,IAAK,CACvC,IAAI3/c,EAAM0/c,EACJA,EAAAC,EACAA,EAAA3/c,EACAA,EAAAy/c,EACDA,EAAA7oI,EACCA,EAAA52U,EACN,IAAIymB,EAAIkS,EACJA,EAAAlT,EACAA,EAAAgB,EAEFi5b,EAAI,GAAK,IACXD,EAAG9mb,IAAK,GAENgnb,EAAI,GAAK,IACX/oI,EAAInxT,IAAK,GAEX,IAAIm6b,EAAK,EACLC,EAAK,EACT,IAASl3c,EAAI,EAAGA,EAAI,IAAKA,EACvBi3c,GAAMh9c,KAAKC,IAAIysS,EAAM,EAAI32Q,EAAIhwB,GAAI,GACjCk3c,GAAMj9c,KAAKC,IAAIysS,EAAM,EAAI7pR,EAAI9c,GAAI,GAEnC82c,EAAG9mb,IAAM/1B,KAAKmjB,KAAK65b,GACnBhpI,EAAInxT,IAAM7iB,KAAKmjB,KAAK85b,GACX3mB,EAAA16Q,KAAK,GAAKihS,EACVvmB,EAAA16Q,KAAK,GAAKo4J,EACVsiH,EAAA4mB,eAAe,GAAKX,EAAaL,EAAazc,EAAW,GAAIpic,GAAO,KACpEi5b,EAAA4mB,eAAe,GAAKX,EAAaL,EAAazc,EAAW,GAAIpic,EAAG,KACzEiuC,EAAOwqZ,IAAIvhb,OACX+2B,EAAOwqZ,IAAInsR,KAAKy4P,EAAIM,UAAWp3X,EAAOq4Z,aAClCr4Z,EAAO8vH,UAAY,IACjBgnQ,EAAAhnQ,UAAU9vH,EAAO8vH,UAAY01R,GACjCxlZ,EAAOwqZ,IAAInsR,KAAKy4P,EAAImhC,MAAOj4Z,EAAO2va,gBAAiB3va,EAAOq4Z,cAE5Dr4Z,EAAOwqZ,IAAInzB,UAGf,IAEIw6C,EAAa,CAFG,EAAO,KAAA,KAAU,KACjB,CAAC,IAAK,IAAK,MAE/B,SAASC,EAASpnB,EAAQqnB,EAAS/xa,EAAQi9K,EAAQuoO,EAAYwsB,EAAaC,GAC1E,IAAIn7C,EAAM92X,EAAOulZ,GAIb,IAHAysB,IAAgBhya,EAAO8va,iBAAmBmC,IAChCf,EAAAa,EAAS/xa,EAAQi9K,EAAQuoO,GAEnCwsB,IAAgBhya,EAAOizC,UAAYg/X,EAAW,CAChDvnB,EAAOzhb,OACP,IAAI+hb,EAAWN,EAAOM,SACbA,EAAA5pJ,MAAQnkF,EAAOmkF,OAASmyJ,EACxBvI,EAAA1/Z,KAAO2xL,EAAO3xL,MAAQioa,EACtBvI,EAAAlmY,WAAam4J,EAAOn4J,YAAcyuY,EAChC+c,EAAA,GAAK,EAAIx5C,EAAI/zJ,mBACbutM,EAAA,GAAK,EAAIx5C,EAAI9zJ,oBACxBgoL,EAASomB,WAAad,EACtBtlB,EAASklB,YAAclwa,EAAOkwa,YAC9BllB,EAASmlB,eAAiBnwa,EAAOmwa,eACjCnlB,EAAS4mB,eAAiBC,EACjB7mB,EAAAmJ,WAAan0Z,EAAOswI,KAAKzmE,OAClCmhV,EAASpxW,QAAU55C,EAAO45C,QACjBoxW,EAAAqmB,UAAYrxa,EAAOk0Z,OAAS,IACrClJ,EAASxF,WAAaA,EACtBxlZ,EAAOwqZ,IAAIvhb,OACX+2B,EAAOwqZ,IAAInsR,KAAKy4P,EAAIM,UAAWp3X,EAAOq4Z,aAClCr4Z,EAAO8vH,UAAY,IACjBgnQ,EAAAhnQ,UAAU9vH,EAAO8vH,UAAY01R,GACjCxlZ,EAAOwqZ,IAAInsR,KAAKy4P,EAAImhC,MAAOj4Z,EAAO2va,gBAAiB3va,EAAOq4Z,cAE5Dr4Z,EAAOwqZ,IAAInzB,UA6Cf,SAAS66C,EAAcC,EAAQ7na,EAAO6tC,EAAMqtW,GACtC,IAAApqb,EAGAA,EAFA6pE,EAAoBktY,GAClB7na,EAAQ6na,EAAO3/c,OACX2/c,EAAO7na,QAEP,EAGF6na,EAER/2c,EAAMyzc,EAAgBzzc,GACtB,IAAIi+E,GAAU,EACVq1X,EAAWtzc,KACPA,EAAA,IACIi+E,GAAA,GAEPlB,IAAMA,EAAO,CAAC,GACnB,IAAI3B,EAAS2B,EAAK3B,OACdvR,EAAoBuR,KAASA,EAASA,EAAOlsC,IAC5CksC,IAAiBA,EAAA,UACtB,IAAI3hC,EAASsjC,EAAKtjC,OACdowB,EAAoBpwB,KAASA,EAASA,EAAOvK,IAC5CuK,IAAiBA,EAAA,UACtB,IAAIpnC,EAAQ0qE,EAAK1qE,MACbw3D,EAAoBx3D,KAAQA,EAAQA,EAAM68B,IACzC78B,IAAeA,EAAA,UACpB,IAAIkpE,EAAUwB,EAAKxB,QACf1R,EAAoB0R,KAAUA,EAAUA,EAAQrsC,IAC/CqsC,IAAmBA,EAAA,UACpB,IAAAw3X,EAAQS,EAASxzc,EAAK,CACxBo7E,SACA3hC,SACApnC,QACAkpE,WACC6uW,GAEI,MAAA,CACLqJ,MAFEsf,EAAQS,EAASxzc,EAAK+8E,EAAMqtW,IAElB,GACZt+V,MAAOinX,EAAM,GACbtkW,OAAQskW,EAAM,GACd90X,WAnFEv8E,EAAAuhK,KAAO,SAAS4+C,GAEX60P,EADI54c,KAAK82c,SAAW92c,KAAKg2c,YAAch2c,KAAKwxb,OACpCxxb,KAAKi2c,cAAej2c,KAAM+jN,EAAQ/jN,KAAKssb,YAAY,GAAO,EAC7E,EACM1ob,EAAAosb,gBAAkB,SAASjsO,GAEtB60P,EADI54c,KAAK82c,SAAW92c,KAAKg2c,YAAch2c,KAAKwxb,OACpCxxb,KAAKi2c,cAAej2c,KAAM+jN,EAAQ/jN,KAAKssb,YAAY,GAAM,EAC5E,EACM1ob,EAAA85b,SAAW,SAAS35O,GAExB60P,EADa54c,KAAK82c,SAAW92c,KAAKu2c,gBAAkBv2c,KAAKs2c,sBACxCt2c,KAAKw2c,kBAAmBx2c,KAAM+jN,EAAQ,GAAG,GAAM,EAClE,EACMngN,EAAA+lQ,KAAO,SAASx/K,GACpB,IAAKA,EACI,OAAA,KAEL,GAAAA,EAAS91E,KAAOrU,KAAKg7b,OAChB,OAAA,KAET,IAAIt2b,EAAIylF,EAASzuF,MAAM,IAAMyuF,EAASzuF,MAAM,IAAM,IAAMyuF,EAASzuF,MAAM,IAAM,IAC7E,GAAIgJ,GAAK1E,KAAKmpc,YAAczkc,EAAI,EACvB,OAAA,KAEL,IAAA4sG,EAAQtxG,KAAK8mC,OAAOpiC,GACpBmK,EAAS7O,KAAK62c,cAClBhoc,EAAOuiC,MAAQ1sC,EACf,IAAA,IAAS7L,EAAI,EAAGA,EAAI,IAAKA,EAChBgW,EAAAsG,SAAStc,GAAKgW,EAAOgvb,eAAehlc,GAAKy4G,EAAMz4G,GAEjD,OAAAgW,CACT,EACMjL,EAAA+lc,UAAY,SAASjkb,GACzB,GAAKA,EAEE,CACL,IAAIwzb,EAAUxzb,EAAU0rB,MACpB+I,EAAe,IAAV++Z,EACL9+Z,EAAK8+Z,GAAW,EAAI,IACpBzkO,EAAKykO,GAAW,GAAK,IACpBl5c,KAAAg3c,YAAc,CAAC78Z,EAAK,IAAKC,EAAK,IAAKq6L,EAAK,IAAK,QANlDz0O,KAAKg3c,YAAc,CAAC,EAAG,EAAG,EAAG,EAQjC,EA6CMpzc,EAAA+mB,OAAS,SAASwxH,GAWtB,GATI,gBADJA,EAAUA,GAAW,CAAC,KAEfn8I,KAAA82c,UAAY36T,EAAQ3lD,aAEvB,iBAAkB2lD,IACfn8I,KAAA82c,WAAa36T,EAAQg9T,cAExB,cAAeh9T,IACjBn8I,KAAK42J,UAAYza,EAAQya,WAEvB,YAAaza,EACX,GAAApwE,EAAoBowE,EAAQ6nB,SAC9BhkK,KAAK+2c,YAAc56T,EAAQ6nB,YACtB,CACD,IAAA3lJ,IAAM89H,EAAQ6nB,QAClBhkK,KAAK+2c,YAAc,CAAC14b,EAAGA,EAAGA,GAG9B,GAAI,iBAAkB89H,EAChB,GAAApwE,EAAoBowE,EAAQu6T,cACzB12c,KAAA02c,aAAev6T,EAAQu6T,aAAa54c,YACpC,CACD,IAAAzC,GAAK8gJ,EAAQu6T,aACjB12c,KAAK02c,aAAe,CAACr7c,EAAGA,EAAGA,GAI/B,GADA2E,KAAK42c,iBAAkB,EACnB,mBAAoBz6T,EAAS,CAC3BpwE,EAAoBowE,EAAQw6T,gBACzB32c,KAAA22c,eAAiBx6T,EAAQw6T,eAAe74c,SAEzCzC,GAAK8gJ,EAAQw6T,eACjB32c,KAAK22c,eAAiB,CAACt7c,EAAGA,EAAGA,IAE/B,IAAA,IAASxC,EAAI,EAAGA,EAAI,IAAKA,EACvBmH,KAAK22c,eAAe99c,GAAKi9c,EAAW91c,KAAK22c,eAAe99c,IACpDmH,KAAK22c,eAAe99c,GAAK,IAC3BmH,KAAK42c,iBAAkB,GAI7B52c,KAAK+5E,UAAW,EACZ,YAAaoiE,IACVn8I,KAAA0gF,QAAUo1X,EAAW35T,EAAQz7D,SAC9B1gF,KAAK0gF,QAAU,IACjB1gF,KAAK+5E,UAAW,IAGpB/5E,KAAKquI,OAAQ,EACb,IAQI+qU,EACAC,EATAvya,EAASq1G,EAAQhnI,SACjB8pE,EAAO,CACT3B,OAAQ6+D,EAAQl9D,MAAQ,SACxB1qE,MAAO4nI,EAAQ2pB,WAAa,SAC5BnqH,OAAQwgG,EAAQ0pB,YAAc,SAC9BpoF,QAAS0+D,EAAQ4pB,aAAe,UAE9B+zG,EAAY39H,EAAQ29H,WAAa,CAAC,EAAG,GAGrC,GAAqB,IAArBA,EAAUxgR,OACZ8/c,EAAat/L,EAAU,GACvBu/L,EAAav/L,EAAU,QAIvB,IAFAs/L,EAAa,GACbC,EAAa,GACJxgd,EAAI,EAAGA,EAAIihR,EAAUxgR,SAAUT,EACtCugd,EAAWvgd,GAAKihR,EAAUjhR,GAAG,GAC7Bwgd,EAAWxgd,GAAKihR,EAAUjhR,GAAG,GAGjC,IAAIspa,EAAa,CAAC5ma,IAAUA,IAAUA,KAClC+9c,EAAa,EAAC,KAAW,KAAW,KACpCL,EAAS98T,EAAQ84T,MACjBj5S,EAAS7f,EAAQlmH,MACjBwsW,EAAQtmP,EAAQ78I,KAChBi6c,EAASp9T,EAAQ3vG,MACjBgta,EAAar9T,EAAQif,UACrBq+S,GAAc,EACdC,EAAiB,EACjBjD,EAAkB,EAClBj5B,EAAY,EAChB,GAAI12Y,EAAOxtC,OAAQ,CACjBkkb,EAAY12Y,EAAOxtC,OACnBqgd,EACE,IAAS9gd,EAAI,EAAGA,EAAI2kb,IAAa3kb,EAAG,CAElC,IADI,IAAA6L,EAAIoiC,EAAOjuC,GACN0I,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAAzF,MAAM4I,EAAEnD,MAAQwE,SAASrB,EAAEnD,IACpB,SAAAo4c,EAGb,IACIC,GADAC,EAAYb,EAAcC,EAAQpgd,EAAGomF,EAAMj/E,KAAKssb,aAC1BqJ,KACtBmkB,EAAaD,EAAU7rX,MACvB+rX,EAAcF,EAAUlpW,OACV+oW,GAAyB,EAAzBE,EAAUhra,MAAMt1C,OACfm9c,GAA0B,EAA1BqD,EAAWxta,MAAMhzC,QAG1C,IAAI6lc,EAAcua,EAAiBjD,EAC/BuD,EAAgB1mC,EAAK2mC,YAAY,EAAI9a,GACrCz+S,EAAa4yR,EAAK2mC,YAAY,EAAI9a,GAClC+a,EAAa5mC,EAAK2mC,YAAY,EAAI9a,GAClCgb,EAAU7mC,EAAK8mC,aAAajb,GAChC,GAAIA,EAAc,EAAG,CACnB,IAAIkb,EAAY,EACZ7pB,EAAakpB,EACbhhb,EAAS,CAAC,EAAG,EAAG,EAAG,GACnB0iI,EAAY,CAAC,EAAG,EAAG,EAAG,GACtBk/S,EAAevuY,EAAoBiwF,IAAWjwF,EAAoBiwF,EAAO,IACzEu+S,EAAmBxuY,EAAoBytY,IAAeztY,EAAoBytY,EAAW,IACzFtc,EACE,IAASrkc,EAAI,EAAGA,EAAI2kb,IAAa3kb,EAAG,CAGlC,IAFe4gd,GAAA,EACX/0c,EAAIoiC,EAAOjuC,GACN0I,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,GAAAzF,MAAM4I,EAAEnD,MAAQwE,SAASrB,EAAEnD,IACpB,SAAA27b,EAEAoc,EAAA/3c,GAAK/F,KAAK8J,IAAIg0c,EAAW/3c,GAAImD,EAAEnD,IAC/B4ga,EAAA5ga,GAAK/F,KAAKoH,IAAIu/Z,EAAW5ga,GAAImD,EAAEnD,IAGxCq4c,GADAC,EAAYb,EAAcC,EAAQpgd,EAAGomF,EAAMj/E,KAAKssb,aAC1BqJ,KACtBmkB,EAAaD,EAAU7rX,MACvB+rX,EAAcF,EAAUlpW,OAH5B,IAAIkpW,EAIAW,EAAeX,EAAU15X,QAC7B,GAAKq6X,EACI,GAAAzuY,EAAoBiwF,IAWvB,GAAa,KAPbrgK,EAFA2+c,EACEzhd,EAAImjK,EAAO1iK,OACT0iK,EAAOnjK,GAEP,CAAC,EAAG,EAAG,EAAG,GAGZmjK,GAEA1iK,OAAc,CAClB,IAASiI,EAAI,EAAGA,EAAI,IAAKA,EAChBm3B,EAAAn3B,GAAK5F,EAAE4F,GAEhBm3B,EAAO,GAAK,CAAA,MAAA,GACU,IAAb/8B,EAAErC,OAAc,CACzB,IAASiI,EAAI,EAAGA,EAAI,IAAKA,EAChBm3B,EAAAn3B,GAAK5F,EAAE4F,IAEXvB,KAAK+5E,UAAYp+E,EAAE,GAAK,SAAQo+E,UAAW,SAGlDrhD,EAAO,GAAKA,EAAO,GAAKA,EAAO,GAAK,EACpCA,EAAO,GAAK,OAzBKA,EAAS,CAAC,EAAG,EAAG,EAAG,GA2BtC,GAAK8hb,EACI,GAAAzuY,EAAoBytY,GAAa,CACpC,IAAA79c,EAUA,GAAa,KAPbA,EAFA4+c,EACE1hd,EAAI2gd,EAAWlgd,OACbkgd,EAAW3gd,GAEX,CAAC,EAAG,EAAG,EAAG,GAGZ2gd,GAEAlgd,OAAc,CAClB,IAASiI,EAAI,EAAGA,EAAI,IAAKA,EACb65J,EAAA75J,GAAK5F,EAAE4F,GAEnB65J,EAAU75J,GAAK,CAAA,MAAA,GACO,IAAb5F,EAAErC,OAAc,CACzB,IAASiI,EAAI,EAAGA,EAAI,IAAKA,EACb65J,EAAA75J,GAAK5F,EAAE4F,IAEdvB,KAAK+5E,UAAYp+E,EAAE,GAAK,SAAQo+E,UAAW,GAClD,MAEAqhF,EAAU,GAAKA,EAAU,GAAKA,EAAU,GAAK,EAC7CA,EAAU,GAAK,OAzBEA,EAAY,CAAC,EAAG,EAAG,EAAG,GA2BzC,IAAI97J,EAAO,GACNk7c,EACIzuY,EAAoB02T,GAElBnjY,EADLzG,EAAI4pY,EAAMnpY,QACJmpY,EAAM5pY,GAEP,GAEA4pY,EACTnjY,GAAQmjY,EACCziY,KAAK82c,WACPx3c,EAAA,IAViBA,EAAA,EAY1B,IAAIktC,EAAQ,EACRu/B,EAAoBwtY,GAEZ/sa,EADN3zC,EAAI0gd,EAAOjgd,QACJigd,EAAO1gd,GAER,EAED0gd,IACT/sa,GAAS+sa,GAEP,IAAAjib,EAAM97B,KAAK87B,IAAIkV,GACfjV,EAAM/7B,KAAK+7B,IAAIiV,GAEnB,IADI9nC,EAAIoiC,EAAOjuC,GACN0I,EAAI,EAAGA,EAAI,IAAKA,EACZ+3c,EAAA/3c,GAAK/F,KAAK8J,IAAIg0c,EAAW/3c,GAAImD,EAAEnD,IAC/B4ga,EAAA5ga,GAAK/F,KAAKoH,IAAIu/Z,EAAW5ga,GAAImD,EAAEnD,IAE5C,IAAIosS,EAAcyrK,EACdxrK,EAAcyrK,EACd1rK,EAAc,EACd5hO,EAAoBqtY,GAEpBzrK,EADE90S,EAAIugd,EAAW9/c,OACH8/c,EAAWvgd,GAEX,EAEPugd,IACKzrK,EAAAyrK,GAEZxrK,EAAc,EACd7hO,EAAoBstY,GAEpBzrK,EADE/0S,EAAIwgd,EAAW//c,OACH+/c,EAAWxgd,GAEX,EAEPwgd,IACKzrK,EAAAyrK,GAIZ,IAAAoB,EAAa,CAFjB9sK,GAAeA,EAAc,EAAI,EAAIosK,EAAY,GAAG,GAAKpsK,EAAc,EAAI,EAAIosK,EAAY,GAAG,GAAK,EACnGnsK,GAAeA,EAAc,EAAI,EAAImsK,EAAY,GAAG,GAAKnsK,EAAc,EAAI,EAAImsK,EAAY,GAAG,GAAK,GAE/Fnra,EAAQgra,EAAUhra,OAAS,GAC3BswZ,EAAQ0a,EAAUv8L,WAAa,GACnC,IAAS97Q,EAAI,EAAGA,EAAIqtC,EAAMt1C,SAAUiI,EAElC,IADI,IAAAitC,EAAOI,EAAMrtC,GACRugB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAA,IAAS6B,GAAI,EAAGA,GAAI,IAAKA,GACvBq2b,EAAc,EAAIK,EAAY12b,IAAKjf,EAAEif,IAEvC,IAASA,GAAI,EAAGA,GAAI,IAAKA,GACvB+8H,EAAW,EAAI25T,EAAY12b,IAAK+U,EAAO/U,IAEzCw2b,EAAQE,GAAaZ,EACrB,IAAIhqc,GAAIyvb,EAAM1wZ,EAAK1sB,IACnBo4b,EAAW,EAAIG,GAAa/6c,GAAQg4B,EAAM7nB,GAAE,GAAK8nB,EAAM9nB,GAAE,GAAKgrc,EAAW,IACzEP,EAAW,EAAIG,EAAY,GAAK/6c,GAAQi4B,EAAM9nB,GAAE,GAAK6nB,EAAM7nB,GAAE,GAAKgrc,EAAW,IAChEJ,GAAA,EAKjB,IAFIzra,EAAQkra,EAAWxta,MACnB4yZ,EAAQ4a,EAAWz8L,UACd97Q,EAAI,EAAGA,EAAIqtC,EAAMt1C,SAAUiI,EAElC,IADIitC,EAAOI,EAAMrtC,GACRugB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAS6B,GAAI,EAAGA,GAAI,IAAKA,GACvBq2b,EAAc,EAAIxpB,EAAa7sa,IAAKjf,EAAEif,IAExC,IAASA,GAAI,EAAGA,GAAI,IAAKA,GACvB+8H,EAAW,EAAI8vS,EAAa7sa,IAAKy3I,EAAUz3I,IAE7Cw2b,EAAQ3pB,GAAcipB,EAClBhqc,GAAIyvb,EAAM1wZ,EAAK1sB,IACnBo4b,EAAW,EAAI1pB,GAAclxb,GAAQg4B,EAAM7nB,GAAE,GAAK8nB,EAAM9nB,GAAE,GAAKgrc,EAAW,IAC1EP,EAAW,EAAI1pB,EAAa,GAAKlxb,GAAQi4B,EAAM9nB,GAAE,GAAK6nB,EAAM7nB,GAAE,GAAKgrc,EAAW,IAChEjqB,GAAA,IAKnBxwb,KAAA2wG,OAAS,CAACwxT,EAAYm3C,GAC3Bt5c,KAAK8mC,OAASA,EACd9mC,KAAKmpc,WAAaria,EAAOxtC,OACzB0G,KAAKm/b,YAAcua,EACnB15c,KAAKy2c,gBAAkBA,EAClBz2c,KAAAk2c,YAAYvrb,OAAOqvb,GACnBh6c,KAAAm2c,YAAYxrb,OAAO+1H,GACnB1gJ,KAAAo2c,YAAYzrb,OAAOuvb,GACnBl6c,KAAAq2c,SAAS1rb,OAAOwvb,GACrB7mC,EAAKgB,KAAK0lC,GACV1mC,EAAKgB,KAAK5zR,GACV4yR,EAAKgB,KAAK4lC,GACV5mC,EAAKgB,KAAK6lC,EACZ,EACAv2c,EAAMyrb,QAAU,WACdrvb,KAAKwxb,OAAOnC,UACZrvb,KAAKg2c,YAAY3mB,UACjBrvb,KAAKs2c,sBAAsBjnB,UAC3Brvb,KAAKu2c,gBAAgBlnB,UACrBrvb,KAAKsxb,IAAIjC,UACTrvb,KAAKk2c,YAAY7mB,UACjBrvb,KAAKm2c,YAAY9mB,UACjBrvb,KAAKo2c,YAAY/mB,UACjBrvb,KAAKq2c,SAAShnB,SAChB,GAwDJ,KAAA,SAEW9za,EAASg/Y,EAA0BC,GAE1Cj/Y,EAAQhf,QAuJC,SAAmBqha,EAAK3vV,GAC3B,IAAA3I,EAAQ2I,EAAM,GACd+vB,EAAS/vB,EAAM,GAEf20X,EAAM6L,EAAU7wC,EAAKt4V,EAAO04B,EADlB,CAAC,GAEXvjG,EAAS64a,EAAKonC,YAAYp1Y,EAAQ04B,EAAS,GAC/C,OAAO,IAAI28W,EAAa/8C,EAAKglC,EAAKnoc,IA5JhC,IAAAg0c,EAAYj0C,EAAqB,MACjC8Y,EAAO9Y,EAAqB,MAC5BY,EAAUZ,EAAqB,MAC/B2G,EAAW3G,EAAqB,MAAM2G,SA2B1C,SAASy5C,EAAal2c,EAAGC,EAAG0P,EAAI3Y,EAAOs3C,GAChChzC,KAAAsxG,MAAQ,CAAC5sG,EAAGC,GACjB3E,KAAKqU,GAAKA,EACVrU,KAAKtE,MAAQA,EACbsE,KAAKgzC,SAAWA,EAET,SAAA2na,EAAa/8C,EAAKglC,EAAKnoc,GAC9BuF,KAAKqsb,GAAKzuB,EACV59Z,KAAK4ic,IAAMA,EACX5ic,KAAKvF,OAASA,EACduF,KAAK66c,aAAe,KACpB,IAAI1hc,EAAQnZ,KACZA,KAAK86c,cAAgB,WACd3hc,EAAMkza,KAGXuW,EAAI7yb,OACJ6tZ,EAAIm9C,WAAW,EAAG,EAAGnY,EAAI30X,MAAM,GAAI20X,EAAI30X,MAAM,GAAI2vV,EAAIklC,KAAMllC,EAAIygC,cAAellb,EAAM1e,QACpF0e,EAAM0hc,aAAe,KACvB,EAEF,IAAIj3c,EAAQ+2c,EAAaz9c,UAClBF,OAAAiH,eAAeL,EAAO,QAAS,CACpCO,IAAK,WACC,OAACnE,KAAKqsb,GAGHrsb,KAAK4ic,IAAI30X,MAAMnwE,QAFb,CAAC,EAAG,EAGf,EACAiH,IAAK,SAASsZ,GACR,GAACre,KAAKqsb,GAAN,CAGJrsb,KAAK4ic,IAAI30X,MAAQ5vD,EACjB,IAAI1iB,EAAIqE,KAAK4ic,IAAI30X,MAAM,GACnBj3C,EAAIh3B,KAAK4ic,IAAI30X,MAAM,GACvB,GAAIj3C,EAAIr7B,EAAI,EAAIqE,KAAKvF,OAAOnB,OAAQ,CAC7Bg6a,EAAAgB,KAAKt0a,KAAKvF,QAEf,IADIA,IAAAA,EAASuF,KAAKvF,OAAS64a,EAAKonC,YAAYv5C,EAASnqY,EAAIr7B,EAAI,IACpD9C,EAAI,EAAGA,EAAIm+B,EAAIr7B,EAAI,IAAK9C,EAC/B4B,EAAO5B,GAAK,IAGT,OAAAwlB,MAGXza,EAAM4vc,MAAQ,WACZ,IAAI51C,EAAM59Z,KAAKqsb,GACErsb,KAAAiuE,MACZ2vV,IAGL59Z,KAAK4ic,IAAI7yb,OACT6tZ,EAAIwyC,WAAW,EAAG,EAAG,EAAG,GACxBxyC,EAAI5oW,MAAM4oW,EAAIyzC,iBAAmBzzC,EAAI0zC,kBACvC,EACA1tc,EAAMvJ,IAAM,WACV,IAAIuja,EAAM59Z,KAAKqsb,GACVzuB,IAGDA,EAAAsjC,gBAAgBtjC,EAAIujC,YAAa,MAChCnhc,KAAK66c,cACRz0a,aAAapmC,KAAK66c,cAEpB76c,KAAK66c,aAAe5hc,WAAWjZ,KAAK86c,cAAe,GACrD,EACAl3c,EAAMuyH,MAAQ,SAASzxH,EAAGC,EAAG+9C,GACvB,IAAC1iD,KAAKqsb,GACD,OAAA,KAET,IAAIp+W,EAAQjuE,KAAK4ic,IAAI30X,MAAMnwE,QAC3B4G,GAAQ,EACRC,GAAQ,EACc,iBAAX+9C,IACAA,EAAA,GAEX,IAAI1wB,EAAmD,EAA9Cx2B,KAAKoH,IAAIpH,KAAK8J,IAAIZ,EAAIg+C,EAAQ,GAAIurB,EAAM,IAC7Ch8C,EAAmD,EAA9Cz2B,KAAKoH,IAAIpH,KAAK8J,IAAIZ,EAAIg+C,EAAQ,GAAIurB,EAAM,IAC7C/7C,EAAmD,EAA9C12B,KAAKoH,IAAIpH,KAAK8J,IAAIX,EAAI+9C,EAAQ,GAAIurB,EAAM,IAC7C97C,EAAmD,EAA9C32B,KAAKoH,IAAIpH,KAAK8J,IAAIX,EAAI+9C,EAAQ,GAAIurB,EAAM,IAC7C,GAAAh8C,GAAMD,GAAMG,GAAMD,EACb,OAAA,KAET,IAAIkmO,EAAO,CAACnmO,EAAKD,EAAIG,EAAKD,GACtBy/M,EAASypL,EACXp7Z,KAAKvF,OACL,CAAC29P,EAAK,GAAIA,EAAK,GAAI,GACnB,CAAC,EAAc,EAAXnqL,EAAM,GAAQ,GAClB,GAAKj8C,EAAKi8C,EAAM,GAAK/7C,IAEnBgga,EArHY,SAASp5b,EAAK4L,EAAGC,GAMjC,IALA,IAAIq2c,EAAY,IACZC,GAAW,EACXC,GAAW,EACX3sY,EAAKz1E,EAAIm1E,MAAM,GACfI,EAAKv1E,EAAIm1E,MAAM,GACVp1E,EAAI,EAAGA,EAAI01E,EAAI11E,IACtB,IAAA,IAAS0I,EAAI,EAAGA,EAAI8sE,EAAI9sE,IAAK,CAC3B,IAAIy1B,EAAIl+B,EAAIqL,IAAItL,EAAG0I,EAAG,GAClBmxB,EAAI55B,EAAIqL,IAAItL,EAAG0I,EAAG,GAClB5C,EAAI7F,EAAIqL,IAAItL,EAAG0I,EAAG,GAClBkD,EAAI3L,EAAIqL,IAAItL,EAAG0I,EAAG,GACtB,GAAIy1B,EAAI,KAAOtE,EAAI,KAAO/zB,EAAI,KAAO8F,EAAI,IAAK,CAC5C,IAAIirB,EAAKhrB,EAAI7L,EACT82B,EAAKhrB,EAAIpD,EACTyvB,EAAKtB,EAAKA,EAAKC,EAAKA,EACpBqB,EAAKgqb,IACKA,EAAAhqb,EACDiqb,EAAApid,EACAqid,EAAA35c,IAKZ,MAAA,CAAC05c,EAAUC,EAAUF,EAC9B,CA4FgBG,CAAYxpO,EAAOnvO,GAAG41P,EAAK,GAAIA,EAAK,GAAI,GAAI11M,EAAQA,GAC9DhzB,EAAKwia,EAAQ,GACbvia,EAAKuia,EAAQ,GACb,OAAAxia,EAAK,GAAKl0B,KAAKC,IAAIuE,KAAK0iD,OAAQ,GAAKwvY,EAAQ,GACxC,KAMF,IAAI0oB,EACTlrb,EAAKsC,EAAK,EACVrC,EAAKuC,EAAK,EANHy/M,EAAOxtO,IAAIurB,EAAIC,EAAI,GAQ1B,CAPOgiN,EAAOxtO,IAAIurB,EAAIC,EAAI,GACnBgiN,EAAOxtO,IAAIurB,EAAIC,EAAI,GACnBgiN,EAAOxtO,IAAIurB,EAAIC,EAAI,IAM1Bn0B,KAAKmjB,KAAKuza,EAAQ,IAEtB,EACAtub,EAAMyrb,QAAU,WACTrvb,KAAKqsb,KAGVrsb,KAAK4ic,IAAIvT,UACJ/b,EAAAgB,KAAKt0a,KAAKvF,QACfuF,KAAKqsb,GAAK,KACNrsb,KAAK66c,cACPz0a,aAAapmC,KAAK66c,cAEtB,GAYJ,KAAA,SAEWt/b,EAASg/Y,EAA0BC,GAEtC,IAAA4gD,EAAuB5gD,EAAqB,MAC5C6gD,EAAyB7gD,EAAqB,MAC9C8gD,EAAc9gD,EAAqB,KACnC+gD,EAAc/gD,EAAqB,MACnCghD,EAAUhhD,EAAqB,MAC/BihD,EAAUjhD,EAAqB,MACnC,SAASkhD,EAAO99C,GACd59Z,KAAKqsb,GAAKzuB,EACV59Z,KAAKqsb,GAAGsvB,gBAAkB,EAC1B37c,KAAK47c,MAAQ57c,KAAK67c,MAAQ77c,KAAK87c,QAAU97c,KAAK+7c,WAAa/7c,KAAKg8c,WAAah8c,KAAKi8c,QAAUj8c,KAAKuoF,WAAavoF,KAAK8xb,SAAW9xb,KAAK27W,MAAQ,KAE7I,IAAI/3W,EAAQ83c,EAAOx+c,UAkCV,SAAAg/c,EAAkBz3c,EAAG9F,GACxB,OAAA8F,EAAEwH,KAAOtN,EAAEsN,MACN,EAEF,EArCTrI,EAAMmM,KAAO,WAIP,IAAAlX,EAHCmH,KAAKi8c,SACRj8c,KAAK87c,UAGH,IAAAK,EAAiBn8c,KAAKqsb,GAAG+vB,oBAAoBp8c,KAAKi8c,QAASj8c,KAAKqsb,GAAGgwB,mBACnEC,EAAiBt8c,KAAKqsb,GAAGsvB,gBAC7B,GAAIQ,EAAiBG,EACnB,IAAKzjd,EAAIyjd,EAAgBzjd,EAAIsjd,EAAgBtjd,IACtCmH,KAAAqsb,GAAGkwB,wBAAwB1jd,QAClC,GACSyjd,EAAiBH,EAC1B,IAAKtjd,EAAIsjd,EAAgBtjd,EAAIyjd,EAAgBzjd,IACtCmH,KAAAqsb,GAAGmwB,yBAAyB3jd,GAGrCmH,KAAKqsb,GAAGsvB,gBAAkBQ,EACrBn8c,KAAAqsb,GAAGowB,WAAWz8c,KAAKi8c,QAC1B,EACAr4c,EAAMyrb,QAAU,WAEd,IADI,IAAAitB,EAAiBt8c,KAAKqsb,GAAGsvB,gBACpB9id,EAAI,EAAGA,EAAIyjd,EAAgBzjd,IAC7BmH,KAAAqsb,GAAGmwB,yBAAyB3jd,GAEnCmH,KAAKqsb,GAAGsvB,gBAAkB,EACtB37c,KAAK67c,OACP77c,KAAK67c,MAAMxsB,UAETrvb,KAAK47c,OACP57c,KAAK47c,MAAMvsB,UAEbrvb,KAAKuoF,WAAavoF,KAAK27W,MAAQ37W,KAAK+7c,WAAa/7c,KAAKg8c,WAAah8c,KAAKi8c,QAAUj8c,KAAK87c,QAAU97c,KAAK67c,MAAQ77c,KAAK47c,MAAQ,IAC7H,EAOAh4c,EAAM+mB,OAAS,SAAS+xb,EAAYC,EAAY7qB,EAAUvpW,GACxD,IAAKo0X,GAAmC,IAArBj9c,UAAUpG,OAAc,CACzC,IAAIsF,EAAM89c,EACVA,EAAa99c,EAAImrC,OACjB4ya,EAAa/9c,EAAIo/b,SACjBlM,EAAWlzb,EAAIkzb,SACfvpW,EAAa3pF,EAAI2pF,WAEnB,IAAIq0X,EAAU58c,KACV49Z,EAAMg/C,EAAQvwB,GACdwwB,EAAQD,EAAQhB,MACpBgB,EAAQhB,MAAQL,EAAY/pB,OAAO5zB,EAAKA,EAAIk/C,cAAeJ,GACvDG,GACFA,EAAMxtB,UAEAutB,EAAAb,WAAaa,EAAQhB,MAAMpqB,OACnC,IAAIurB,EAAQ/8c,KAAK67c,MAMb,GALJe,EAAQf,MAAQN,EAAY/pB,OAAO5zB,EAAKA,EAAI4mC,gBAAiBmY,GACzDI,GACFA,EAAM1tB,UAEAutB,EAAAZ,WAAaY,EAAQf,MAAMrqB,QAC9BM,IAAavpW,EAAY,CACxB,IAAAy0X,EAAcp/C,EAAIq/C,gBAItB,GAHIr/C,EAAAs/C,aAAaF,EAAaJ,EAAQZ,YAClCp+C,EAAAs/C,aAAaF,EAAaJ,EAAQb,YACtCn+C,EAAIu/C,YAAYH,IACXp/C,EAAIw+C,oBAAoBY,EAAap/C,EAAIw/C,aAAc,CACtD,IAAA9Y,EAAS1mC,EAAIy/C,kBAAkBL,GACnC,MAAM,IAAIvB,EAAQnX,EAAQ,yBAA2BA,GAEvDxS,EAAWA,GAAY0pB,EAAQ1pB,SAASl0B,EAAKo/C,GAC7Cz0X,EAAaA,GAAcizX,EAAQjzX,WAAWq1U,EAAKo/C,GACnDp/C,EAAI0/C,cAAcN,IAEpBz0X,EAAaA,EAAWzqF,SACb0gB,KAAK09b,GAChB,IAGIrjd,EAHA0kd,EAAoB,GACpBC,EAAiB,GACjBC,EAAqB,GAEzB,IAAK5kd,EAAI,EAAGA,EAAI0vF,EAAWjvF,SAAUT,EAAG,CAClC,IAAAmwB,EAAOu/D,EAAW1vF,GACtB,GAAImwB,EAAKhqB,KAAK7E,QAAQ,QAAU,EAAG,CAGjC,IAFI,IAAAmF,EAAgD,EAAzC0pB,EAAKhqB,KAAKwiB,OAAOwH,EAAKhqB,KAAK1F,OAAS,GAC3Cokd,EAAY,IAAI1jd,MAAMsF,GACjBiC,EAAI,EAAGA,EAAIjC,IAAQiC,EAChBm8c,EAAAn8c,GAAKk8c,EAAmBnkd,OAClCkkd,EAAe7jd,KAAKqvB,EAAK/c,KAAO,IAAM1K,EAAI,KACb,iBAAlBynB,EAAKitG,SACKwnV,EAAA9jd,KAAKqvB,EAAKitG,SAAW10H,GAC/BvH,MAAMiF,QAAQ+pB,EAAKitG,WAAajtG,EAAKitG,SAAS38H,SAAWgG,GAAoC,iBAArB0pB,EAAKitG,SAAS10H,GAC/Fk8c,EAAmB9jd,KAAwB,EAAnBqvB,EAAKitG,SAAS10H,IAEtCk8c,EAAmB9jd,MAAO,GAG9B4jd,EAAkB5jd,KAAK,CACrBsS,KAAM+c,EAAK/c,KACXjN,KAAMgqB,EAAKhqB,KACXuyJ,UAAWmsT,GACZ,MAEDH,EAAkB5jd,KAAK,CACrBsS,KAAM+c,EAAK/c,KACXjN,KAAMgqB,EAAKhqB,KACXuyJ,UAAW,CAACksT,EAAmBnkd,UAElBkkd,EAAA7jd,KAAKqvB,EAAK/c,MACI,iBAAlB+c,EAAKitG,SACKwnV,EAAA9jd,KAAqB,EAAhBqvB,EAAKitG,UAE7BwnV,EAAmB9jd,MAAO,GAIhC,IAAIgkd,EAAc,EAClB,IAAK9kd,EAAI,EAAGA,EAAI4kd,EAAmBnkd,SAAUT,EACvC,GAAA4kd,EAAmB5kd,GAAK,EAAG,CAC7B,KAAO4kd,EAAmBtjd,QAAQwjd,IAAgB,GACjCA,GAAA,EAEjBF,EAAmB5kd,GAAK8kd,EAG5B,IAAIC,EAAmB,IAAI5jd,MAAM83b,EAASx4b,QAC1C,SAASukd,IACPjB,EAAQX,QAAUV,EAAYU,QAC5Br+C,EACAg/C,EAAQhB,MACRgB,EAAQf,MACR2B,EACAC,GAEF,IAAA,IAASvzb,EAAK,EAAGA,EAAK4na,EAASx4b,SAAU4wB,EACtB0zb,EAAA1zb,GAAM0zY,EAAIkgD,mBACzBlB,EAAQX,QACRnqB,EAAS5na,GAAIje,MAIZ4xc,IACPjB,EAAQd,QAAU+B,EAClBjB,EAAQjhG,MAAQ,CACdm2E,SAAUwpB,EAAYxpB,GACtBvpW,WAAY+yX,EAAY/yX,IAE1Bq0X,EAAQr0X,WAAa8yX,EACnBz9C,EACAg/C,EACAW,EACAE,GAEKzgd,OAAAiH,eAAe24c,EAAS,WAAYxB,EACzCx9C,EACAg/C,EACA9qB,EACA8rB,GAEJ,EAWAric,EAAQhf,QAVR,SAAsBqha,EAAK8+C,EAAYC,EAAY7qB,EAAUvpW,GACvD,IAAAipW,EAAS,IAAIkqB,EAAO99C,GAOjB,OANA4zB,EAAA7ma,OACL+xb,EACAC,EACA7qB,EACAvpW,GAEKipW,IAMb,KAAA,SAEWj2a,GACE,SAAAkgc,EAAQsC,EAAUC,EAAcC,GACvCj+c,KAAKg+c,aAAeA,GAAgB,GACpCh+c,KAAKi+c,YAAcA,GAAe,GAClCj+c,KAAK+9c,SAAWA,GAAY,GAC5B/9c,KAAKmM,QAAU,eAAiB6xc,GAAgBD,GAAY,KAAOE,EAAc,KAAOA,EAAc,IACjGj+c,KAAAkM,OAAQ,IAAIhS,OAAQgS,MAEnBuvc,EAAAv+c,UAAY,IAAIhD,MACxBuhd,EAAQv+c,UAAU+O,KAAO,UACzBwvc,EAAQv+c,UAAU2O,YAAc4vc,EAChClgc,EAAQhf,QAAUk/c,GAItB,KAAA,SAEWlgc,EAASg/Y,EAA0BC,GAE1Cj/Y,EAAQhf,QA2KR,SAAgCqha,EAAKg/C,EAASr0X,EAAYgpE,GAE/C,IADT,IAAI3yJ,EAAM,CAAC,EACF/F,EAAI,EAAG2H,EAAI+nF,EAAWjvF,OAAQT,EAAI2H,IAAK3H,EAAG,CAC7C,IAAA4L,EAAI8jF,EAAW1vF,GACfmf,EAAQvT,EAAEwH,KACVjN,EAAOyF,EAAEzF,KACTk/c,EAAOz5c,EAAE8sJ,UACb,OAAQvyJ,GACN,IAAK,OACL,IAAK,MACL,IAAK,QACHm/c,EACEvgD,EACAg/C,EACAsB,EAAK,GACL3sT,EACA,EACA3yJ,EACAoZ,GAEF,MACF,QACE,GAAIhZ,EAAK7E,QAAQ,QAAU,EAAG,CAExB,IADAiB,EAAI4D,EAAK5F,WAAW4F,EAAK1F,OAAS,GAAK,IACnC,GAAK8B,EAAI,EACf,MAAM,IAAIqgd,EAAQ,GAAI,mCAAqCzjc,EAAQ,KAAOhZ,GAE5Em/c,EACEvgD,EACAg/C,EACAsB,EAAK,GACL3sT,EACAn2J,EACAwD,EACAoZ,EAEO,KAAA,MAAAhZ,EAAK7E,QAAQ,QAAU,GAehC,MAAM,IAAIshd,EAAQ,GAAI,mCAAqCzjc,EAAQ,KAAOhZ,GAd1E,IAAI5D,EACA,IADAA,EAAI4D,EAAK5F,WAAW4F,EAAK1F,OAAS,GAAK,IACnC,GAAK8B,EAAI,EACf,MAAM,IAAIqgd,EAAQ,GAAI,mCAAqCzjc,EAAQ,KAAOhZ,GAE5Eo/c,EACExgD,EACAg/C,EACAsB,EACA3sT,EACAn2J,EACAwD,EACAoZ,KAQH,OAAApZ,GAlOL,IAAA68c,EAAUjhD,EAAqB,MACnC,SAAS6jD,EAAgBzgD,EAAKg/C,EAASxra,EAAOmgH,EAAWv1G,EAAWsia,GAClEt+c,KAAK4pQ,IAAMg0J,EACX59Z,KAAKu+c,SAAW3B,EAChB58c,KAAKstH,OAASl8E,EACdpxC,KAAKw+c,WAAajtT,EAClBvxJ,KAAKy+c,WAAazia,EAClBh8C,KAAK0+c,WAAaJ,EAEpB,IAAI16c,EAAQy6c,EAAgBnhd,UAC5B0G,EAAM+6c,QAAU,SAA0B3/c,EAAMs/b,EAAY/M,EAAQ72b,GAClE,IAAIye,EAAQnZ,KACR49Z,EAAMzkZ,EAAMywP,IACZ52O,EAAY7Z,EAAMqlc,WAAWrlc,EAAMm0G,QACnCswS,EAAAghD,oBACF5rb,EACA7Z,EAAMslc,WACNz/c,GAAQ4+Z,EAAII,QACVsgC,EACF/M,GAAU,EACV72b,GAAU,GAEZkja,EAAI2+C,wBAAwBvpb,EAC9B,EACApvB,EAAMmB,IAAM,SAASitB,EAAIC,EAAIqc,EAAIrG,GACxB,OAAAjoC,KAAK0+c,WAAW1+c,KAAKw+c,WAAWx+c,KAAKstH,QAASt7F,EAAIC,EAAIqc,EAAIrG,EACnE,EACOjrC,OAAAiH,eAAeL,EAAO,WAAY,CACvCO,IAAK,WACI,OAAAnE,KAAKw+c,WAAWx+c,KAAKstH,OAC9B,EACAvoH,IAAK,SAASsZ,GAKZ,OAJIA,IAAMre,KAAKw+c,WAAWx+c,KAAKstH,UAC7BttH,KAAKw+c,WAAWx+c,KAAKstH,QAAc,EAAJjvG,EAC/Bre,KAAKu+c,SAAStC,QAAU,MAEf,EAAJ59b,KAGX,IAAIwgc,EAAS,CACX,SAASjhD,EAAKv/Y,EAAG2T,GACX,YAAc,IAAdA,EAAG14B,OACEska,EAAIkhD,eAAezgc,EAAG2T,GAEtB4rY,EAAImhD,gBAAgB1gc,EAAG2T,EAElC,EACA,SAAS4rY,EAAKv/Y,EAAG2T,EAAIC,GACf,YAAc,IAAdD,EAAG14B,OACEska,EAAIohD,eAAe3gc,EAAG2T,EAAIC,GAE1B2rY,EAAIqhD,gBAAgB5gc,EAAG2T,EAElC,EACA,SAAS4rY,EAAKv/Y,EAAG2T,EAAIC,EAAIqc,GACnB,YAAc,IAAdtc,EAAG14B,OACEska,EAAIshD,eAAe7gc,EAAG2T,EAAIC,EAAIqc,GAE9BsvX,EAAIuhD,gBAAgB9gc,EAAG2T,EAElC,EACA,SAAS4rY,EAAKv/Y,EAAG2T,EAAIC,EAAIqc,EAAIrG,GACvB,YAAc,IAAdjW,EAAG14B,OACEska,EAAIwhD,eAAe/gc,EAAG2T,EAAIC,EAAIqc,EAAIrG,GAElC21X,EAAIyhD,gBAAgBhhc,EAAG2T,KAIpC,SAASmsb,EAAmBvgD,EAAKg/C,EAASxra,EAAOmgH,EAAWv1G,EAAWp9C,EAAKoZ,GACtE,IAAAsmc,EAAYO,EAAO7ia,GACnBhzB,EAAO,IAAIq1b,EACbzgD,EACAg/C,EACAxra,EACAmgH,EACAv1G,EACAsia,GAEKthd,OAAAiH,eAAerF,EAAKoZ,EAAO,CAChCjT,IAAK,SAASL,GAGL,OAFHk5Z,EAAA4+C,yBAAyBjrT,EAAUngH,IACvCkta,EAAU1gD,EAAKrsQ,EAAUngH,GAAQ1sC,GAC1BA,CACT,EACAP,IAAK,WACI,OAAA6kB,CACT,EACA9kB,YAAY,IAGhB,SAASk6c,EAAmBxgD,EAAKg/C,EAASxra,EAAOmgH,EAAWv1G,EAAWp9C,EAAKoZ,GAG1E,IAFI,IAAAxe,EAAQ,IAAIQ,MAAMgiD,GAClBqhC,EAAQ,IAAIrjF,MAAMgiD,GACbnjD,EAAI,EAAGA,EAAImjD,IAAanjD,EAC/Bsld,EACEvgD,EACAg/C,EACAxra,EAAMv4C,GACN04J,EACAv1G,EACAxiD,EACAX,GAEIwkF,EAAAxkF,GAAKW,EAAMX,GAEZmE,OAAAiH,eAAezK,EAAO,WAAY,CACvCuL,IAAK,SAASsZ,GACR,GAAArkB,MAAMiF,QAAQof,GAChB,IAAA,IAAS6L,EAAK,EAAGA,EAAK8xB,IAAa9xB,EACjCmzD,EAAMnzD,GAAI+rG,SAAW53G,EAAE6L,QAGzB,IAASA,EAAK,EAAGA,EAAK8xB,IAAa9xB,EAC3BmzD,EAAAnzD,GAAI+rG,SAAW53G,EAAI6L,EAGtB,OAAA7L,CACT,EACAla,IAAK,WAEH,IADI,IAAA0K,EAAS,IAAI7U,MAAMgiD,GACd9xB,EAAK,EAAGA,EAAK8xB,IAAa9xB,EACjCrb,EAAOqb,GAAMqnI,EAAUngH,EAAMlnB,IAExB,OAAArb,CACT,EACA3K,YAAY,IAEd1K,EAAMmld,QAAU,SAAS3/c,EAAMs/b,EAAY/M,EAAQ72b,GACjDsE,EAAOA,GAAQ4+Z,EAAII,MACnBsgC,IAAeA,EACf/M,EAASA,GAAUv1Y,EAAYA,EAC/BthD,EAASA,GAAU,EACnB,IAAA,IAASwvB,EAAK,EAAGA,EAAK8xB,IAAa9xB,EAAI,CACrC,IAAI8I,EAAYu+H,EAAUngH,EAAMlnB,IAC5B0zY,EAAAghD,oBACF5rb,EACAgpB,EACAh9C,EACAs/b,EACA/M,EACA72b,EAASwvB,EAAK8xB,GAEhB4hX,EAAI2+C,wBAAwBvpb,GAEhC,EACI,IAAAssb,EAAU,IAAItld,MAAMgiD,GACpBuja,EAAe3hD,EAAI,eAAiB5hX,EAAY,MAC7Ch/C,OAAAiH,eAAerF,EAAKoZ,EAAO,CAChCjT,IAAK,SAASL,GACZ,IAAA,IAASwlB,EAAK,EAAGA,EAAK8xB,IAAa9xB,EAAI,CACrC,IAAI8hU,EAAMz6L,EAAUngH,EAAMlnB,IAE1B,GADA0zY,EAAI4+C,yBAAyBxwH,GACzBhyV,MAAMiF,QAAQyF,EAAE,IAClB66c,EAAa1+c,KAAK+8Z,EAAK5xE,EAAKtnV,EAAEwlB,QACzB,CACL,IAAA,IAAS3oB,EAAI,EAAGA,EAAIy6C,IAAaz6C,EAC/B+9c,EAAQ/9c,GAAKmD,EAAEs3C,EAAY9xB,EAAK3oB,GAErBg+c,EAAA1+c,KAAK+8Z,EAAK5xE,EAAKszH,IAGzB,OAAA56c,CACT,EACAP,IAAK,WACI,OAAA3K,CACT,EACA0K,YAAY,MAgEpB,KAAA,SAEWqX,EAASg/Y,EAA0BC,GAEtC,IAAAglD,EAAoBhlD,EAAqB,KACzCihD,EAAUjhD,EAAqB,MAEnC,SAAS7xW,EAAUjkD,GACjB,OAAO,WACE,OAAAA,CACT,EAEO,SAAA+6c,EAAWnmd,EAAQ+K,GAE1B,IADI,IAAAwK,EAAS,IAAI7U,MAAMV,GACdT,EAAI,EAAGA,EAAIS,IAAUT,EAC5BgW,EAAOhW,GAAKwL,EAEP,OAAAwK,EAXT0M,EAAQhf,QAaR,SAA8Bqha,EAAKg/C,EAAS9qB,EAAUvgS,GAMpD,SAASmuT,EAAW1gd,GACX,OAAA,SAAwBJ,GAE7B,IADI,IAAAmxE,EAAU4vY,EAAiB,GAAI3gd,GAC1BnG,EAAI,EAAGA,EAAIk3E,EAAQz2E,SAAUT,EAAG,CACnC,IAAAmiB,EAAO+0D,EAAQl3E,GACfkxD,EAAO/uC,EAAK,GACZR,EAAMQ,EAAK,GACX,GAAAu2I,EAAU/2I,GAAM,CAClB,IAAIolc,EAAUhhd,EACd,GAAoB,iBAATmrD,IAA4C,IAAtBA,EAAK5vD,QAAQ,MAAoC,IAAtB4vD,EAAK5vD,QAAQ,MAAa,CACpF,IAAIqW,EAAMu5C,EAIV,GAH0B,IAAtBA,EAAK5vD,QAAQ,OACTqW,EAAAu5C,EAAKjsD,MAAM,IAEf0S,EAAIrW,QAAQ,OAASqW,EAAIlX,OAAS,EAAG,CACnC,IAAAiI,EAAIiP,EAAIrW,QAAQ,KAChBmsI,EAAK91H,EAAI1S,MAAM,EAAGyD,GAClBulI,EAAKt2H,EAAI1S,MAAMyD,EAAI,EAAGiP,EAAIlX,OAAS,GACvCsmd,EAAUt5U,EAAK1nI,EAAI0nI,GAAIQ,GAAMloI,EAAIkoI,EAAE,MAEnC84U,EAAUhhd,EAAI4R,GAGd,IACApV,EADAikB,EAAIyya,EAASt3a,GAAKxb,KAEtB,OAAQqgB,GACN,IAAK,OACL,IAAK,MACL,IAAK,YACL,IAAK,cACHu+Y,EAAIiiD,UAAUtuT,EAAU/2I,GAAMolc,GAC9B,MACF,IAAK,QACHhiD,EAAIkiD,UAAUvuT,EAAU/2I,GAAMolc,GAC9B,MACF,QACM,IAAAG,EAAO1gc,EAAEllB,QAAQ,OACrB,KAAI,GAAK4ld,GAAQA,GAAQ,GAAK1gc,EAAE/lB,SAAW,EAAIymd,GAe7C,IAC8B,IAArB1gc,EAAEllB,QAAQ,QAA6B,IAAbklB,EAAE/lB,OAAc,CAE/C,IADJ8B,EAAIikB,EAAEjmB,WAAWimB,EAAE/lB,OAAS,GAAK,IACzB,GAAK8B,EAAI,EACf,MAAM,IAAIqgd,EAAQ,GAAI,6CAA+Cxvc,KAAO,KAAOoT,GAEjFu+Y,EAAA,gBAAkBxia,EAAI,MAAMm2J,EAAU/2I,IAAM,EAAOolc,GACvD,KAAA,CAEA,MAAM,IAAInE,EAAQ,GAAI,iCAAmCxvc,KAAO,KAAOoT,GAtBnE,IADJjkB,EAAIikB,EAAEjmB,WAAWimB,EAAE/lB,OAAS,GAAK,IACzB,GAAK8B,EAAI,EACT,MAAA,IAAIqgd,EAAQ,GAAI,qBAEhB,OAAAp8b,EAAEmC,OAAO,IACf,IAAK,IACL,IAAK,IACHo8Y,EAAI,UAAYxia,EAAI,MAAMm2J,EAAU/2I,GAAMolc,GAC1C,MACF,IAAK,IACHhiD,EAAI,UAAYxia,EAAI,MAAMm2J,EAAU/2I,GAAMolc,GAC1C,MACF,QACE,MAAM,IAAInE,EAAQ,GAAI,qCAAuCxvc,KAAO,KAAOoT,MAe3F,EAEO,SAAAsgc,EAAiB52b,EAAQ/pB,GAC5B,GAAgB,iBAATA,EACT,MAAO,CAAC,CAAC+pB,EAAQ/pB,IAEnB,IAAI+wE,EAAU,GACd,IAAA,IAAS17D,KAAMrV,EAAM,CACf,IAAA6U,EAAO7U,EAAKqV,GACZ2rc,EAAUj3b,EACVlnB,SAASwS,GAAM,KAAOA,EACxB2rc,GAAW,IAAM3rc,EAAK,IAEtB2rc,GAAW,IAAM3rc,EAEC,iBAATR,EACTk8D,EAAQp2E,KAAK6J,MAAMusE,EAAS4vY,EAAiBK,EAASnsc,IAEtDk8D,EAAQp2E,KAAK,CAACqmd,EAASnsc,IAGpB,OAAAk8D,EAkCA,SAAAkwY,EAAcrhd,EAAKiV,EAAM7U,GAC5B,GAAgB,iBAATA,EAAmB,CACxB,IAAA69C,EAAQqja,EAAclhd,GACnBhC,OAAAiH,eAAerF,EAAKiV,EAAM,CAC/B1P,IAAKwkD,EAAU9L,GACf93C,IAAK26c,EAAW1gd,GAChBkF,YAAY,EACZ8H,cAAc,GACf,MAEGulJ,EAAUvyJ,GACLhC,OAAAiH,eAAerF,EAAKiV,EAAM,CAC/B1P,KA1IYqW,EA0IIxb,EAzIf,SAASmhd,EAAKC,EAAUC,GAC7B,OAAOF,EAAIG,WAAWF,EAASnE,QAASoE,EAAW7lc,GACrD,GAwIMzV,IAAK26c,EAAW1gd,GAChBkF,YAAY,EACZ8H,cAAc,IAGhBpN,EAAIiV,GAlDV,SAAsB7U,GACpB,OAAQA,GACN,IAAK,OACI,OAAA,EACT,IAAK,MACL,IAAK,YACL,IAAK,cAEL,IAAK,QACI,OAAA,EACT,QACM,IAAA+gd,EAAO/gd,EAAK7E,QAAQ,OACxB,GAAI,GAAK4ld,GAAQA,GAAQ,GAAK/gd,EAAK1F,SAAW,EAAIymd,EAAM,CAElD,IADA3kd,EAAI4D,EAAK5F,WAAW4F,EAAK1F,OAAS,GAAK,IACnC,GAAK8B,EAAI,EACT,MAAA,IAAIqgd,EAAQ,GAAI,qBAExB,MAAuB,MAAnBz8c,EAAKwiB,OAAO,GACPi+b,EAAWrkd,GAAG,GAEhBqkd,EAAWrkd,EAAG,EAAC,CAAA,GACW,IAAxB4D,EAAK7E,QAAQ,QAAgC,IAAhB6E,EAAK1F,OAAc,CACzD,IAAI8B,EACA,IADAA,EAAI4D,EAAK5F,WAAW4F,EAAK1F,OAAS,GAAK,IACnC,GAAK8B,EAAI,EACf,MAAM,IAAIqgd,EAAQ,GAAI,6CAA+Cxvc,KAAO,KAAOjN,GAE9E,OAAAygd,EAAWrkd,EAAIA,EAAG,EAAC,CAE1B,MAAM,IAAIqgd,EAAQ,GAAI,iCAAmCxvc,KAAO,KAAOjN,IAsB7D64T,CAAai6H,EAAS9yb,GAAMA,MAhJ9C,IAAoBwb,EAoJpB,SAAS0lc,EAActhd,GACjB,IAAAiQ,EACA,GAAA7U,MAAMiF,QAAQL,GAAM,CACbiQ,EAAA,IAAI7U,MAAM4E,EAAItF,QACvB,IAAA,IAAST,EAAI,EAAGA,EAAI+F,EAAItF,SAAUT,EAChCond,EAAcpxc,EAAQhW,EAAG+F,EAAI/F,GAC/B,MAGA,IAAA,IAASwb,KADTxF,EAAS,CAAC,EACKjQ,EACbqhd,EAAcpxc,EAAQwF,EAAIzV,EAAIyV,IAG3B,OAAAxF,EAEL,IAAA0xc,EAAaf,EAAkB1tB,GAAU,GACtC,MAAA,CACL3tb,IAAKwkD,EAAUu3Z,EAAcK,IAC7Bx7c,IAAK26c,EAAWa,GAChBr8c,YAAY,EACZ8H,cAAc,KAMtB,IAAA,SAEWuP,GAEPA,EAAQhf,QACC,SAAiBu1b,EAAU0uB,GAElC,IADA,IAAI5hd,EAAM,CAAC,EACF/F,EAAI,EAAGA,EAAIi5b,EAASx4b,SAAUT,EAIrC,IAHI,IACAW,EADIs4b,EAASj5b,GAAGoT,KACNgB,MAAM,KAChBmJ,EAAIxX,EACC2C,EAAI,EAAGA,EAAI/H,EAAMF,SAAUiI,EAAG,CACrC,IAAImD,EAAIlL,EAAM+H,GAAG0L,MAAM,KACnB,GAAAvI,EAAEpL,OAAS,EAAG,CACVoL,EAAE,KAAM0R,IACZA,EAAE1R,EAAE,IAAM,IAER0R,EAAAA,EAAE1R,EAAE,IACR,IAAA,IAASod,EAAI,EAAGA,EAAIpd,EAAEpL,SAAUwoB,EAAG,CACjC,IAAInd,EAAI9C,SAAS6C,EAAEod,IACfA,EAAIpd,EAAEpL,OAAS,GAAKiI,EAAI/H,EAAMF,OAAS,GACnCqL,KAAKyR,IACL0L,EAAIpd,EAAEpL,OAAS,EACf8c,EAAAzR,GAAK,GAELyR,EAAAzR,GAAK,CAAC,GAGZyR,EAAIA,EAAEzR,IAGJyR,EAAEzR,GADA67c,EACK3nd,EAEAi5b,EAASj5b,GAAGmG,KAIhB,MAAAuC,EAAI/H,EAAMF,OAAS,GACtBoL,EAAE,KAAM0R,IACZA,EAAE1R,EAAE,IAAM,CAAC,GAET0R,EAAAA,EAAE1R,EAAE,KAGJ0R,EAAA1R,EAAE,IADF87c,EACQ3nd,EAEAi5b,EAASj5b,GAAGmG,KAKvB,OAAAJ,IAKb,KAAA,SAEW08Z,EAAyBtlW,GAEhCA,EAAS87X,SAiCA,SAAgBl0B,EAAKq+C,GAG5B,IAFA,IAAIwE,EAAc7iD,EAAIw+C,oBAAoBH,EAASr+C,EAAI8iD,iBACnD7xc,EAAS,GACJhW,EAAI,EAAGA,EAAI4nd,IAAe5nd,EAAG,CACpC,IAAIggK,EAAO+kQ,EAAI+iD,iBAAiB1E,EAASpjd,GACzC,GAAIggK,EAAM,CACR,IAAI75J,EAAO4hd,EAAQhjD,EAAK/kQ,EAAK75J,MACzB,GAAA65J,EAAKv5J,KAAO,EACd,IAAA,IAASiC,EAAI,EAAGA,EAAIs3J,EAAKv5J,OAAQiC,EAC/BsN,EAAOlV,KAAK,CACVsS,KAAM4sJ,EAAK5sJ,KAAK1G,QAAQ,MAAO,IAAMhE,EAAI,KACzCvC,cAIJ6P,EAAOlV,KAAK,CACVsS,KAAM4sJ,EAAK5sJ,KACXjN,UAKD,OAAA6P,GAtDTmnD,EAASuyB,WAwDA,SAAkBq1U,EAAKq+C,GAG9B,IAFA,IAAI4E,EAAgBjjD,EAAIw+C,oBAAoBH,EAASr+C,EAAIy+C,mBACrDxtc,EAAS,GACJhW,EAAI,EAAGA,EAAIgod,IAAiBhod,EAAG,CACtC,IAAIggK,EAAO+kQ,EAAIkjD,gBAAgB7E,EAASpjd,GACpCggK,GACFhqJ,EAAOlV,KAAK,CACVsS,KAAM4sJ,EAAK5sJ,KACXjN,KAAM4hd,EAAQhjD,EAAK/kQ,EAAK75J,QAIvB,OAAA6P,GAnET,IAAIkyc,EAAmB,CACrB/iD,MAAS,QACTgjD,WAAc,OACdC,WAAc,OACdC,WAAc,OACdC,IAAO,MACPC,SAAY,QACZC,SAAY,QACZC,SAAY,QACZC,KAAQ,OACRC,UAAa,QACbC,UAAa,QACbC,UAAa,QACbC,WAAc,OACdC,WAAc,OACdC,WAAc,OACdC,WAAc,YACdC,aAAgB,eAEdC,EAAW,KACN,SAAApB,EAAQhjD,EAAK5+Z,GACpB,IAAKgjd,EAAU,CACT,IAAAC,EAAYjld,OAAOgjB,KAAK+gc,GAC5BiB,EAAW,CAAC,EACZ,IAAA,IAASnpd,EAAI,EAAGA,EAAIopd,EAAU3od,SAAUT,EAAG,CACrC,IAAAqpd,EAAKD,EAAUppd,GACnBmpd,EAASpkD,EAAIskD,IAAOnB,EAAiBmB,IAGzC,OAAOF,EAAShjd,KA2CtB,KAAA,SAEWs8Z,EAAyBtlW,EAAUwkW,GAE1CxkW,EAASw7X,OAgHA,SAAmB5zB,EAAK5+Z,EAAMmO,GACrC,OAAOg1c,EAASvkD,GAAKwkD,mBAAmBpjd,EAAMmO,IAhHhD6oD,EAASimZ,QAkHT,SAAuBr+C,EAAKykD,EAAMC,EAAMC,EAAShxT,GAC/C,OAAO4wT,EAASvkD,GAAK4kD,WAAWH,EAAMC,EAAMC,EAAShxT,IAlHnD,IAAAkqT,EAAUjhD,EAAqB,MAC/BioD,EAAsBjoD,EAAqB,MAE3CkoD,EAAQ,IADqB,oBAAZzsc,QAA0BukZ,EAAqB,KAAOvkZ,SAEvE0sc,EAAiB,EACrB,SAASC,EAAgBvuc,EAAIlH,EAAKnO,EAAMwyb,EAAQqxB,EAAUvnc,EAAO9F,GAC/DxV,KAAKqU,GAAKA,EACVrU,KAAKmN,IAAMA,EACXnN,KAAKhB,KAAOA,EACZgB,KAAKwxb,OAASA,EACdxxb,KAAKsb,MAAQA,EACbtb,KAAK6id,SAAW,GAChB7id,KAAKwV,MAAQA,EAkBf,SAASstc,EAAallD,GACpB59Z,KAAKqsb,GAAKzuB,EACV59Z,KAAKi6b,QAAU,CAAC,CAAC,EAAG,IACpBj6b,KAAK6id,SAAW,CAAC,EAnBHD,EAAA1ld,UAAUmyb,QAAU,WAC9B,GAAiB,KAAfrvb,KAAKsb,MAAa,CAIb,IAHT,IAAI9F,EAAQxV,KAAKwV,MACbooZ,EAAMpoZ,EAAM62a,GACZw2B,EAAW7id,KAAK6id,SACXhqd,EAAI,EAAG2H,EAAIqid,EAASvpd,OAAQT,EAAI2H,IAAK3H,EAAG,CAC/C,IAAI4W,EAAI+F,EAAMqtc,SAASA,EAAShqd,IAC5B4W,WACK+F,EAAMqtc,SAAShqd,GACtB+ka,EAAI0/C,cAAc7tc,IAGlBmuZ,EAAAmlD,aAAa/id,KAAKwxb,eACfh8a,EAAMykb,QAAQj6b,KAAKhB,OAAS4+Z,EAAI4mC,gBAAkB,GAAGxkc,KAAKmN,KAErE,EAMA,IAAIvJ,EAAQk/c,EAAa5ld,UAmEzB,SAASild,EAASvkD,GACZ,IAAAolD,EAAWN,EAAMv+c,IAAIy5Z,GAKlB,OAJFolD,IACQA,EAAA,IAAIF,EAAallD,GACtB8kD,EAAA39c,IAAI64Z,EAAKolD,IAEVA,EAxDHp/c,EAAAw+c,mBAAqB,SAASpjd,EAAMmO,GACxC,IAAIywZ,EAAM59Z,KAAKqsb,GACX4N,EAAUj6b,KAAKi6b,QAAQj7b,IAAS4+Z,EAAI4mC,gBAAkB,GACtDhT,EAASyI,EAAQ9sb,GACrB,GAAKqkb,GAAW5zB,EAAIqlD,SAASzxB,EAAOA,QAYlCA,EAAOl2a,OAAS,MAZ2B,CAC3C,IAAI4nc,EArBC,SAActlD,EAAK5+Z,EAAMmO,GAC5B,IAAAqkb,EAAS5zB,EAAI6zB,aAAazyb,GAG9B,GAFI4+Z,EAAAulD,aAAa3xB,EAAQrkb,GACzBywZ,EAAIwlD,cAAc5xB,IACb5zB,EAAIylD,mBAAmB7xB,EAAQ5zB,EAAI0lD,gBAAiB,CACnD,IAAAhf,EAAS1mC,EAAI2lD,iBAAiB/xB,GAC9B,IACF,IAAI7oV,EAAM85W,EAAoBne,EAAQn3b,EAAKnO,SACpClE,GAEP,MAAM,IAAI2gd,EAAQnX,EAAQ,4BAA8BA,GAE1D,MAAM,IAAImX,EAAQnX,EAAQ37V,EAAIm8V,MAAOn8V,EAAIq2R,MAEpC,OAAAwyD,EAOW4xB,CAAcxlD,EAAK5+Z,EAAMmO,GAChCqkb,EAAAyI,EAAQ9sb,GAAO,IAAIy1c,EAC1BD,IACAx1c,EACAnO,EACAkkd,EACA,GACA,EACAljd,KACF,CAIK,OAAAwxb,CACT,EAeA5tb,EAAM4+c,WAAa,SAASH,EAAMC,EAAMC,EAAShxT,GAC/C,IAAIjsH,EAAQ,CAAC+8a,EAAKhuc,GAAIiuc,EAAKjuc,GAAIkuc,EAAQzod,KAAK,KAAMy3J,EAAUz3J,KAAK,MAAMA,KAAK,KACxE0pd,EAAOxjd,KAAK6id,SAASv9a,GAYlB,OAXFk+a,GAASxjd,KAAKqsb,GAAGo3B,UAAUD,KACzBxjd,KAAA6id,SAASv9a,GAASk+a,EAlB3B,SAAqB5lD,EAAK8lD,EAASC,EAASpB,EAAShxT,GAC/C,IAAA0qT,EAAUr+C,EAAIq/C,gBACdr/C,EAAAs/C,aAAajB,EAASyH,GACtB9lD,EAAAs/C,aAAajB,EAAS0H,GAC1B,IAAA,IAAS9qd,EAAI,EAAGA,EAAI0pd,EAAQjpd,SAAUT,EACpC+ka,EAAIgmD,mBAAmB3H,EAAS1qT,EAAU14J,GAAI0pd,EAAQ1pd,IAGxD,GADA+ka,EAAIu/C,YAAYlB,IACXr+C,EAAIw+C,oBAAoBH,EAASr+C,EAAIw/C,aAAc,CAClD,IAAA9Y,EAAS1mC,EAAIy/C,kBAAkBpB,GACnC,MAAM,IAAIR,EAAQnX,EAAQ,0BAA4BA,GAEjD,OAAA2X,EAMyBkB,CAC5Bn9c,KAAKqsb,GACLg2B,EAAK7wB,OACL8wB,EAAK9wB,OACL+wB,EACAhxT,GAEG8wT,EAAAQ,SAASlpd,KAAK2rC,GACdg9a,EAAAO,SAASlpd,KAAK2rC,IAEdk+a,CACT,GAkBJ,KAAA,SAEWjoc,EAASg/Y,EAA0BC,GAEtC,IAAAg6B,EAAUh6B,EAAqB,MAC/Bi3B,EAAej3B,EAAqB,MACpC4kC,EAAU5K,EAAQ,CAAC,k4BACnB6K,EAAU7K,EAAQ,CAAC,4HACf74B,EAAAp/Z,QAAU,SAASqha,GACzB,OAAO6zB,EAAa7zB,EAAKwhC,EAASC,EAAS,KAAM,CAC/C,CAAEpzb,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,SAAUjN,KAAM,UAE5B,GAIJ,KAAA,SAEWuc,EAASg/Y,EAA0BC,GAEtC,IAAA39Z,EAAe29Z,EAAqB,MACpCkD,EAAYlD,EAAqB,MACjCi3B,EAAej3B,EAAqB,MACxCj/Y,EAAQhf,QAiHC,SAAaqha,EAAKzhR,GACzB,IAAIj9I,EAAO,GACX,SAASivC,EAAKzpC,EAAGC,EAAGif,EAAG/qB,EAAG8qB,EAAGvF,GACvB,IAAA0B,EAAM,CAACpb,EAAGC,EAAGif,EAAG,EAAG,EAAG,EAAG,GACzB9D,EAAAjnB,EAAI,GAAK,EACbinB,EAAIjnB,GAAK8qB,EACJzkB,EAAAvF,KAAK6J,MAAMtE,EAAM4gB,GACtBA,EAAI,IAAK,EACJ5gB,EAAAvF,KAAK6J,MAAMtE,EAAM4gB,GACtBA,EAAIjnB,GAAKulB,EACJlf,EAAAvF,KAAK6J,MAAMtE,EAAM4gB,GACjB5gB,EAAAvF,KAAK6J,MAAMtE,EAAM4gB,GACtBA,EAAI,GAAK,EACJ5gB,EAAAvF,KAAK6J,MAAMtE,EAAM4gB,GACtBA,EAAIjnB,GAAK8qB,EACJzkB,EAAAvF,KAAK6J,MAAMtE,EAAM4gB,GAExBquB,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GACpBA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GACpBA,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GACpBA,EAAK,EAAG,EAAG,EAAG,KAAO,GACrBA,EAAK,EAAG,EAAG,EAAG,KAAO,GACrBA,EAAK,EAAG,EAAG,EAAG,KAAO,GACrBA,EAAK,EAAG,EAAG,EAAG,KAAO,GACrBA,EAAK,EAAG,EAAG,EAAG,KAAO,GACrBA,EAAK,EAAG,EAAG,EAAG,KAAO,GACjB1zC,IAAAA,EAASoC,EAAa+ga,EAAK1+Z,GAC3Boyb,EAAM5zB,EAAUE,EAAK,CAAC,CACxB5+Z,KAAM4+Z,EAAII,MACVvja,OAAAA,EACA6E,KAAM,EACN5E,OAAQ,EACR62b,OAAQ,IACP,CACDvyb,KAAM4+Z,EAAII,MACVvja,OAAAA,EACA6E,KAAM,EACN5E,OAAQ,GACR62b,OAAQ,IACP,CACDvyb,KAAM4+Z,EAAII,MACVvja,OAAAA,EACA6E,KAAM,EACN5E,OAAQ,GACR62b,OAAQ,MAENC,EAASC,EAAa7zB,GACnB4zB,EAAAjpW,WAAWpzE,SAAS8gH,SAAW,EAC/Bu7T,EAAAjpW,WAAWtyD,MAAMggG,SAAW,EAC5Bu7T,EAAAjpW,WAAW5sC,OAAOs6E,SAAW,EACpC,IAAIy5U,EAAS,IAAImU,EAAWjmD,EAAKnja,EAAQ62b,EAAKE,GAEvC,OADPke,EAAO/kb,OAAOwxH,GACPuzT,GApKT,IAAI/mZ,EAAY,CACd,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEF,SAASk7Z,EAAWjmD,EAAKnja,EAAQ62b,EAAKE,GACpCxxb,KAAKqsb,GAAKzuB,EACV59Z,KAAKvF,OAASA,EACduF,KAAKsxb,IAAMA,EACXtxb,KAAKwxb,OAASA,EACdxxb,KAAKssb,WAAa,EACbtsb,KAAA2wG,OAAS,CAAC,EAAO,KAAA,KAAU,KAAG,CAAC,IAAK,IAAK,MAC9C3wG,KAAKmV,SAAW,CAAC,EAAG,EAAG,GACvBnV,KAAK42J,UAAY,CAAC,EAAG,EAAG,GACxB52J,KAAKg8J,OAAS,CAAC,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IACrDh8J,KAAKwzH,QAAU,EAAC,GAAM,GAAM,GAC5BxzH,KAAK8jd,UAAY,EAAC,GAAM,GAAM,GAC9B9jd,KAAKo3K,KAAO,KAEd,IAAIxzK,EAAQigd,EAAW3md,UACnB6md,EAAa,CAAC,EAAG,EAAG,GACpBC,EAAa,CAAC,EAAG,EAAG,GACpBjwB,EAAQ,CAAC,EAAG,GAChBnwb,EAAMmsb,cAAgB,WACb,OAAA,CACT,EACMnsb,EAAAosb,gBAAkB,SAASjsO,GACjC,EACMngN,EAAAuhK,KAAO,SAAS4+C,GACpB,IAAI65M,EAAM59Z,KAAKqsb,GACXiF,EAAMtxb,KAAKsxb,IACXE,EAASxxb,KAAKwxb,OAClBF,EAAIvhb,OACJyhb,EAAOzhb,OACH,IAGAqhD,EAHA82O,EAAQnkF,EAAOmkF,OAASv/O,EACxBv2B,EAAO2xL,EAAO3xL,MAAQu2B,EACtBiD,EAAam4J,EAAOn4J,YAAcjD,EAElC3oD,KAAKo3K,OACAhmH,EAAApxD,KAAKo3K,KAAKy1Q,cAAcz7X,MAIjC,IAFA,IAAI6yZ,EAAYF,EACZG,EAAYF,EACPnrd,EAAI,EAAGA,EAAI,IAAKA,EACnBu4D,GAAQA,EAAKv4D,GAAK,GACpBord,EAAUprd,GAAKmH,KAAK2wG,OAAO,GAAG93G,GAC9Bqrd,EAAUrrd,GAAKmH,KAAK2wG,OAAO,GAAG93G,KAE9Bord,EAAUprd,GAAKmH,KAAK2wG,OAAO,GAAG93G,GAC9Bqrd,EAAUrrd,GAAKmH,KAAK2wG,OAAO,GAAG93G,IAWlC,IARMk7b,EAAA,GAAKn2B,EAAI/zJ,mBACTkqL,EAAA,GAAKn2B,EAAI9zJ,oBACf0nL,EAAOM,SAAS5pJ,MAAQA,EACxBspJ,EAAOM,SAAS1/Z,KAAOA,EACvBo/Z,EAAOM,SAASlmY,WAAaA,EAC7B4lY,EAAOM,SAASjqZ,YAAc,CAAC7nC,KAAKmV,SAAU8uc,EAAWC,GAClD1yB,EAAAM,SAAS91R,OAASh8J,KAAKg8J,OAC9Bw1R,EAAOM,SAASqC,YAAcJ,EACrBl7b,EAAI,EAAGA,EAAI,IAAKA,EACvB24b,EAAOM,SAASl7R,UAAY52J,KAAK42J,UAAU/9J,GAAKmH,KAAKssb,WACjDtsb,KAAKwzH,QAAQ36H,KACfy4b,EAAInsR,KAAKy4P,EAAIM,UAAW,EAAG,EAAIrla,GAC3BmH,KAAK8jd,UAAUjrd,IACjBy4b,EAAInsR,KAAKy4P,EAAIM,UAAW,GAAI,GAAK,GAAKrla,IAI5Cy4b,EAAInzB,QACN,EACMv6Z,EAAA+mB,OAAS,SAASwxH,GACjBA,IAGD,WAAYA,IACdn8I,KAAK2wG,OAASwrC,EAAQxrC,QAEpB,aAAcwrC,IAChBn8I,KAAKmV,SAAWgnI,EAAQhnI,UAEtB,cAAegnI,IACjBn8I,KAAK42J,UAAYza,EAAQya,WAEvB,WAAYza,IACdn8I,KAAKg8J,OAAS7f,EAAQ6f,QAEpB,YAAa7f,IACfn8I,KAAKwzH,QAAU2oB,EAAQ3oB,SAErB,cAAe2oB,IACjBn8I,KAAK8jd,UAAY3nU,EAAQ2nU,WAE7B,EACAlgd,EAAMyrb,QAAU,WACdrvb,KAAKsxb,IAAIjC,UACTrvb,KAAKvF,OAAO40b,UACZrvb,KAAKwxb,OAAOnC,SACd,GA0DJ,KAAA,SAEW/zB,EAAyBtlW,EAAUwkW,GACtC,IAAAg6B,EAAUh6B,EAAqB,MAC/B+jC,EAAa/J,EAAQ,CAAC,siFACtBgK,EAAahK,EAAQ,CAAC,2pFACtBiK,EAAcjK,EAAQ,CAAC,k1DACvBkK,EAAclK,EAAQ,CAAC,2wBAC3Bx+X,EAAS+nY,WAAa,CACpBh0Z,OAAQw0Z,EACRP,SAAUQ,EACVj2W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,QAASjN,KAAM,QACvB,CAAEiN,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,SAAUjN,KAAM,UAG5Bg3D,EAASykY,WAAa,CACpB1wZ,OAAQ00Z,EACRT,SAAUU,EACVn2W,WAAY,CACV,CAAEt8E,KAAM,WAAYjN,KAAM,QAC1B,CAAEiN,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,SAAUjN,KAAM,WAMhC,KAAA,SAEWuc,EAASg/Y,EAA0BC,GAEtC,IAAAo+B,EAAOp+B,EAAqB,MAC5B2pD,EAAO3pD,EAAqB,MAC5B4pD,EAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,OAiFjDC,EAAc,SAASl2F,EAASo3D,EAAU++B,EAAe3xQ,GAE3D,IADA,IAAIumP,EAAU,EACLrgc,EAAI,EAAGA,EAAIs1X,EAAQ70X,OAAQT,IAElC,IADI,IAAA0rd,EAAap2F,EAAQt1X,GAAG0rd,WACnBhjd,EAAI,EAAGA,EAAIgjd,EAAWjrd,OAAQiI,IACrC23b,EAAU19b,KAAK8J,IACb4zb,EACAN,EAAKt/b,OAAOird,EAAWhjd,KAI7B,IAAIijd,EAAQr2F,EAAQluW,KAAI,SAAS5kB,GAC/B,OA5Fe,SAAS6lF,EAAQojY,EAAe3xQ,EAAaumP,GAe9D,IAdA,IAAIpyZ,EAASo6C,EAAOp6C,OAChBy9a,EAAarjY,EAAOqjY,WACpBE,EAAcvjY,EAAOujY,YACrBvlB,EAAQ,GACRwlB,EAAQ,GACR5rB,EAAU,GACV6rB,EAAgB,GAChBC,EAAe,GACfC,EAAc,GACdC,EAAoB,EACpBC,EAAmB,EACnBC,EAAgBb,EAAKl2c,SACrBg3c,EAAiBd,EAAKl2c,SAEjBpV,EAAI,EAAGA,EAAIiuC,EAAOxtC,OAAQT,IAAK,CAClC,IAAA4W,EAAIq3B,EAAOjuC,GACXqsd,EAAMX,EAAW1rd,GACjBm+B,EAAIytb,EAAY5rd,GACE,IAAlByrd,IACFttb,EAAkB,IAAd27K,GAEaoyQ,EAAAnsB,EAAKt/b,OAAO4rd,GAAOhsB,EACtC8rB,EAAgBb,EAAKl2c,SAChB2qb,EAAAx6b,KAAK4md,EAAeE,GACzBF,EAAc,GAAKhub,EACnB,IAAA,IAASvyB,EAAI,EAAGA,EAZL,EAYiBA,IAC1Bmgd,EAAangd,GAAK,CAACgL,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIhL,GAEnC,GAAAkgd,EAAcrrd,OAAS,EACzB,IAASmL,EAAI,EAAGA,EAhBP,EAgBmBA,IAAK,CAC3B,IAAA21C,GAAM31C,EAAI,GAjBP,EAkBDy6b,EAAAvlc,KACJgrd,EAAclgd,GACdmgd,EAAangd,GACbmgd,EAAaxqa,GACbwqa,EAAaxqa,GACbuqa,EAAcvqa,GACduqa,EAAclgd,IAERq0b,EAAAn/b,KACNsrd,EACAD,EACAA,EACAA,EACAC,EACAA,GAEUJ,EAAAlrd,KACVmrd,EACAC,EACAA,EACAA,EACAD,EACAA,GAEF,IAAI5rd,EAAMgmc,EAAM5lc,OACVord,EAAA/qd,KACJ,CAACT,EAAM,EAAGA,EAAM,EAAGA,EAAM,GACzB,CAACA,EAAM,EAAGA,EAAM,EAAGA,EAAM,IAI/B,IAAI0lY,EAAO+lF,EACKA,EAAAC,EACDA,EAAAhmF,EACf,IAAID,EAAOsmF,EACMA,EAAAD,EACDA,EAAArmF,EAChB,IAAIwmF,EAAOL,EACSA,EAAAC,EACDA,EAAAI,EAEd,MAAA,CACL9nM,UAAW6hL,EACXtwZ,MAAO81a,EACP5rB,UACAC,gBAAiB8rB,EAErB,CAaWO,CAAa/pd,EAAGipd,EAAe3xQ,EAAaumP,EAAO,IAExD77K,EAAY,GACZzuO,EAAQ,GACRkqZ,EAAU,GACVC,EAAkB,GACtB,IAASlgc,EAAI,EAAGA,EAAI2rd,EAAMlrd,OAAQT,IAAK,CACjC,IAAAwsd,EAAOb,EAAM3rd,GACb6B,EAAS2iR,EAAU/jR,OAIvB,IAHY+jR,EAAAA,EAAUz4Q,OAAOygd,EAAKhoM,WACxBy7K,EAAAA,EAAQl0b,OAAOygd,EAAKvsB,SACZC,EAAAA,EAAgBn0b,OAAOygd,EAAKtsB,iBACrCx3b,EAAI,EAAGA,EAAI8jd,EAAKz2a,MAAMt1C,OAAQiI,IAAK,CACtC,IAAAitC,EAAO62a,EAAKz2a,MAAMrtC,GAClB+jd,EAAU,GACd12a,EAAMj1C,KAAK2rd,GACX,IAAA,IAASxjc,EAAI,EAAGA,EAAI0sB,EAAKl1C,OAAQwoB,IAC/Bwjc,EAAQ3rd,KAAK60C,EAAK1sB,GAAKpnB,IAItB,MAAA,CACL2iR,YACAzuO,QACAkqZ,UACAC,kBACAxT,WAEJ,EACIggC,EAAuB,SAASz+a,EAAQzoB,GAC1C,IACIxlB,EADAK,EAAM4tC,EAAOxtC,OAEjB,IAAKT,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACpB,IAAA4W,EAAIq3B,EAAOjuC,GACX,GAAA4W,IAAM4O,EAAU,OAAAxlB,EACX,GAAA4W,EAAI4O,EAAG,OAAOxlB,EAAI,EAEtB,OAAAA,CACT,EACIgtD,EAAQ,SAASxnC,EAAGzb,EAAK0C,GAC3B,OAAO+Y,EAAIzb,EAAMA,EAAMyb,EAAI/Y,EAAMA,EAAM+Y,CACzC,EA0IImnc,EAAoB,SAASh0a,GAC/B,IAAIi0a,EAAgBlqd,IACjBi2C,EAAAhzB,MAAK,SAAS/Z,EAAG9F,GAClB,OAAO8F,EAAI9F,CAAA,IAGb,IADA,IAAIzF,EAAMs4C,EAAGl4C,OACJT,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxB,IAAAuC,EAAII,KAAKK,IAAI21C,EAAG34C,GAAK24C,EAAG34C,EAAI,IAC5BuC,EAAIqqd,IACUA,EAAArqd,GAGb,OAAAqqd,CACT,EA2BQ9pD,EAAAp/Z,QAAU,SAASmpd,EAAa/0W,GACtC,IAAI0sK,EAAYqoM,EAAYC,kBACxB94Q,EAAY64Q,EAAY74Q,WAAa,IACrC+4Q,EAAWF,EAAYE,UAAY,EACnCC,EAAmBH,EAAYG,iBAC/BC,EAAWJ,EAAYI,UAAY,SACnCC,EAAW,CAAC,GACmB,IAA/BD,EAAS3rd,QAAQ,QACnB4rd,EAASC,WAAY,IAEY,IAA/BF,EAAS3rd,QAAQ,QACnB4rd,EAASE,WAAY,IAEY,IAA/BH,EAAS3rd,QAAQ,QACnB4rd,EAASG,WAAY,GAEdH,EAAAI,OAAS/B,EAAWjqd,QAAQ2rd,EAASvgd,QAAQ,KAAM,IAAIA,QAAQ,MAAO,KAC/E,IAyBwB+nD,EAClB5oD,EACAC,EACAif,EA5BFwic,EAAcV,EAAYU,aAAe,SAAS94Z,GAC7C,OAnMU,SAASlgC,EAAOs4b,EAAaK,GAChD,IAAIjtB,EAAU4sB,EAAY5sB,QACtButB,EAAWX,EAAYW,SACvB3hd,EAAI0oB,EAAM,GACVzoB,EAAIyoB,EAAM,GACVxJ,EAAIwJ,EAAM,GACVZ,EAAI65b,EAAS,GAAG/sd,OAChB8kB,EAAIioc,EAAS,GAAG/sd,OAChB8B,EAAIird,EAAS,GAAG/sd,OAChB04B,EAAKuzb,EAAqBc,EAAS,GAAI3hd,GACvCwtB,EAAKqzb,EAAqBc,EAAS,GAAI1hd,GACvCiwF,EAAK2wX,EAAqBc,EAAS,GAAIzic,GACvCqO,EAAKD,EAAK,EACVG,EAAKD,EAAK,EACV2iE,EAAKD,EAAK,EAOd,GANA5iE,EAAK6zB,EAAM7zB,EAAI,EAAGxF,EAAI,GACtByF,EAAK4zB,EAAM5zB,EAAI,EAAGzF,EAAI,GACtB0F,EAAK2zB,EAAM3zB,EAAI,EAAG9T,EAAI,GACtB+T,EAAK0zB,EAAM1zB,EAAI,EAAG/T,EAAI,GACtBw2E,EAAK/uC,EAAM+uC,EAAI,EAAGx5F,EAAI,GACtBy5F,EAAKhvC,EAAMgvC,EAAI,EAAGz5F,EAAI,GAClB42B,EAAK,GAAKE,EAAK,GAAK0iE,EAAK,GAAK3iE,EAAKzF,EAAI,GAAK2F,EAAK/T,EAAI,GAAKy2E,EAAKz5F,EAAI,EACrE,OAAOw9b,EAAK3qb,SAEd,IAYIq4c,EACAC,EACAC,EACAC,EACAC,EACAC,EAjBAC,EAAMP,EAAS,GAAGr0b,GAClB60b,EAAMR,EAAS,GAAGp0b,GAClB60b,EAAMT,EAAS,GAAGn0b,GAClB60b,EAAMV,EAAS,GAAGl0b,GAClB60b,EAAMX,EAAS,GAAGzxX,GAElBy1G,GAAM3lM,EAAIkid,IAAQC,EAAMD,GACxBt8Q,GAAM3lM,EAAImid,IAAQC,EAAMD,GACxBx9B,GAAM1la,EAAIojc,IAHJX,EAAS,GAAGxxX,GAGMmyX,GAsB5B,OArBKjhd,SAASskM,KAAUA,EAAA,IACnBtkM,SAASukM,KAAUA,EAAA,IACnBvkM,SAASujb,KAAUA,EAAA,IAOpBy8B,EAASC,YACXh0b,EAAKxF,EAAI,EAAIwF,EACbC,EAAKzF,EAAI,EAAIyF,GAEX8zb,EAASE,YACX/zb,EAAK9T,EAAI,EAAI8T,EACbC,EAAK/T,EAAI,EAAI+T,GAEX4zb,EAASG,YACXtxX,EAAKx5F,EAAI,EAAIw5F,EACbC,EAAKz5F,EAAI,EAAIy5F,GAEPkxX,EAASI,QACf,KAAK,EACKO,EAAA9xX,EACA+xX,EAAA9xX,EACR2xX,EAAQt0b,EAAK92B,EACbqrd,EAAQt0b,EAAK/2B,EACbkrd,EAAQt0b,EAAK52B,EAAIgjB,EACjBmoc,EAAQt0b,EAAK72B,EAAIgjB,EACjB,MACF,KAAK,EACKsoc,EAAA9xX,EACA+xX,EAAA9xX,EACRyxX,EAAQt0b,EAAK52B,EACbmrd,EAAQt0b,EAAK72B,EACbord,EAAQt0b,EAAK92B,EAAIoxB,EACjBi6b,EAAQt0b,EAAK/2B,EAAIoxB,EACjB,MACF,KAAK,EACKg6b,EAAAt0b,EACAu0b,EAAAt0b,EACRu0b,EAAQ9xX,EAAKx2E,EACbuoc,EAAQ9xX,EAAKz2E,EACbkoc,EAAQt0b,EAAK5T,EAAIhjB,EACjBmrd,EAAQt0b,EAAK7T,EAAIhjB,EACjB,MACF,KAAK,EACKord,EAAAt0b,EACAu0b,EAAAt0b,EACRm0b,EAAQt0b,EAAK5T,EACbmoc,EAAQt0b,EAAK7T,EACbsoc,EAAQ9xX,EAAKx2E,EAAIoO,EACjBm6b,EAAQ9xX,EAAKz2E,EAAIoO,EACjB,MACF,KAAK,EACK85b,EAAAt0b,EACAu0b,EAAAt0b,EACRy0b,EAAQ9xX,EAAKpoE,EACbm6b,EAAQ9xX,EAAKroE,EACbg6b,EAAQt0b,EAAK1F,EAAIpxB,EACjBqrd,EAAQt0b,EAAK3F,EAAIpxB,EACjB,MACF,QACUkrd,EAAAt0b,EACAu0b,EAAAt0b,EACRu0b,EAAQt0b,EAAK1F,EACbi6b,EAAQt0b,EAAK3F,EACbk6b,EAAQ9xX,EAAKpoE,EAAIpO,EACjBuoc,EAAQ9xX,EAAKroE,EAAIpO,EAGrB,IAAI6oc,EAAOnuB,EAAQwtB,EAAQE,EAAQE,GAC/BQ,EAAOpuB,EAAQwtB,EAAQE,EAAQG,GAC/BQ,EAAOruB,EAAQwtB,EAAQG,EAAQC,GAC/BU,EAAOtuB,EAAQwtB,EAAQG,EAAQE,GAC/BU,EAAOvuB,EAAQytB,EAAQC,EAAQE,GAC/BY,EAAOxuB,EAAQytB,EAAQC,EAAQG,GAC/BY,EAAOzuB,EAAQytB,EAAQE,EAAQC,GAC/Bc,EAAO1uB,EAAQytB,EAAQE,EAAQE,GAC/Bc,EAAM7uB,EAAK3qb,SACXy5c,EAAM9uB,EAAK3qb,SACX05c,EAAM/uB,EAAK3qb,SACX25c,EAAMhvB,EAAK3qb,SACf2qb,EAAK7T,KAAK0iC,EAAKR,EAAMI,EAAMh9Q,GAC3BuuP,EAAK7T,KAAK2iC,EAAKR,EAAMI,EAAMj9Q,GAC3BuuP,EAAK7T,KAAK4iC,EAAKR,EAAMI,EAAMl9Q,GAC3BuuP,EAAK7T,KAAK6iC,EAAKR,EAAMI,EAAMn9Q,GACvB,IAAAgP,EAAKu/O,EAAK3qb,SACVwsE,EAAKm+W,EAAK3qb,SACd2qb,EAAK7T,KAAK1rO,EAAIouQ,EAAKE,EAAKr9Q,GACxBsuP,EAAK7T,KAAKtqW,EAAIitY,EAAKE,EAAKt9Q,GACpB,IAAA3uM,EAAIi9b,EAAK3qb,SAEN,OADP2qb,EAAK7T,KAAKppb,EAAG09M,EAAI5+H,EAAI6uW,GACd3tb,CACT,CAoEWksd,CAAev6Z,EAAIo4Z,EAAaK,EACzC,EACI+B,EAAgBpC,EAAYoC,eAAiB,SAASx6Z,EAAIwF,GACxD,IAAAk/G,EAAK4mR,EAAK3qb,SACVnT,EAAI,KACR89b,EAAKx/a,IAAI44J,EAAI1kH,EAAI,CAACxyD,EAAG,EAAG,IACpB,IAAAs4b,EAAKgzB,EAAYp0S,GAChB4mR,EAAAl7M,SAAS01M,EAAIA,EAAItgY,GACtB8lY,EAAKjla,MAAMy/Z,EAAIA,EAAI,EAAIt4b,GACvB89b,EAAKx/a,IAAI44J,EAAI1kH,EAAI,CAAC,EAAGxyD,EAAG,IACpB,IAAAu4b,EAAK+yB,EAAYp0S,GAChB4mR,EAAAl7M,SAAS21M,EAAIA,EAAIvgY,GACtB8lY,EAAKjla,MAAM0/Z,EAAIA,EAAI,EAAIv4b,GACvB89b,EAAKx/a,IAAI44J,EAAI1kH,EAAI,CAAC,EAAG,EAAGxyD,IACpB,IAAAitd,EAAK3B,EAAYp0S,GAKd,OAJF4mR,EAAAl7M,SAASqqO,EAAIA,EAAIj1Z,GACtB8lY,EAAKjla,MAAMo0b,EAAIA,EAAI,EAAIjtd,GAClB89b,EAAAx/a,IAAI44J,EAAIohR,EAAIC,GACZuF,EAAAx/a,IAAI44J,EAAIA,EAAI+1S,GACV/1S,CACT,EACIm8M,EAAU,GACVz4K,EAAO/kG,EAAO,GAAG,GAAImlG,EAAOnlG,EAAO,GAAG,GAAIwoV,EAAOxoV,EAAO,GAAG,GAC3DilG,EAAOjlG,EAAO,GAAG,GAAIqlG,EAAOrlG,EAAO,GAAG,GAAIyoV,EAAOzoV,EAAO,GAAG,GAQ3Dq3W,EAAc,GADDpvB,EAAK5lZ,SAAS29D,EAAO,GAAIA,EAAO,IACbk8F,EAChCo7Q,EAAgBD,EAAcA,EAC9Br1Q,EAAc,EACd2xQ,EAAgB,EAChBprd,EAAMmkR,EAAU/jR,OAChBJ,EAAM,IACRy5M,EAjF+B,SAAS0qE,GAI1C,IAHA,IAAI7rO,EAAK,GAAIC,EAAK,GAAIy2a,EAAK,GACvB5ga,EAAK,CAAC,EAAGyN,EAAK,CAAC,EAAGymO,EAAK,CAAC,EACxBtiS,EAAMmkR,EAAU/jR,OACXT,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxB,IAAA4W,EAAI4tQ,EAAUxkR,GACd6L,EAAI+K,EAAE,GAAI9K,EAAI8K,EAAE,GAAImU,EAAInU,EAAE,GACzB63C,EAAG5iD,KACN8sC,EAAG73C,KAAK+K,GACR4iD,EAAG5iD,IAAK,GAELqwD,EAAGpwD,KACN8sC,EAAG93C,KAAKgL,GACRowD,EAAGpwD,IAAK,GAEL62R,EAAG53Q,KACNskc,EAAGvud,KAAKiqB,GACR43Q,EAAG53Q,IAAK,GAGR,IAAAukc,EAAO3C,EAAkBh0a,GACzB42a,EAAO5C,EAAkB/za,GACzB42a,EAAO7C,EAAkB0C,GACzBzC,EAAgBjqd,KAAKoH,IAAIuld,EAAMC,EAAMC,GAClC,OAAAtid,SAAS0/c,GAAiBA,EAAgB,CACnD,CAwDkB6C,CAA6BjrM,IAE7C,IAAA,IAASxkR,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxB,IAAA4W,EAAImpb,EAAK3qb,SACb2qb,EAAKx6b,KAAKqR,EAAG4tQ,EAAUxkR,IACnB,IAAAqoF,EAAS,CAACzxE,GACV80c,EAAa,GACblmc,EAAI+nc,EAAY32c,GAChBs0E,EAAKt0E,EACT80c,EAAW5qd,KAAK0kB,GAChB,IAAIomc,EAAc,GACd74Y,EAAKk8Y,EAAcr4c,EAAG4O,GACtBkqc,EAAW3vB,EAAKt/b,OAAOsyE,GACvB7lE,SAASwid,IAAaA,EAAWjE,IACnBA,EAAAiE,GAElB9D,EAAY9qd,KAAK4ud,GACjBp6F,EAAQx0X,KAAK,CAAEmtC,OAAQo6C,EAAQqjY,aAAYE,gBAEpC,IADP,IAAIljd,EAAI,EACDA,EAAgB,IAAZsrM,GAAmB3rH,EAAO5nF,OAASuzM,IA/B1CnoM,SACAC,SACAif,SAFAlf,GADkB4oD,EAgC8C79C,GA/BzD,GACP9K,EAAI2oD,EAAG,GACP1pC,EAAI0pC,EAAG,KACF5oD,EAAIgxM,GAAQhxM,EAAIkxM,GAAQjxM,EAAImxM,GAAQnxM,EAAIqxM,GAAQpyL,EAAIu1a,GAAQv1a,EAAIw1a,KA4BD,CACtE73b,IACI,IAAA2nH,EAAK0vU,EAAK5+W,MAAM37D,GAChBmqc,EAAQ5vB,EAAK6vB,cAAcv/V,GAC/B,GAAc,IAAVs/V,EACF,MACSA,EAAQP,GACjBrvB,EAAKjla,MAAMu1F,EAAIA,EAAI8+V,EAAcxsd,KAAKmjB,KAAK6pc,IAExC5vB,EAAAx/a,IAAI8vG,EAAIA,EAAIz5G,GACjB4O,EAAI+nc,EAAYl9V,GACZ0vU,EAAK8vB,gBAAgB3kY,EAAImlC,GAAM++V,QAAwBA,IACzD/mY,EAAOvnF,KAAKuvH,GACPnlC,EAAAmlC,EACLq7V,EAAW5qd,KAAK0kB,GACZutD,EAAKk8Y,EAAc5+V,EAAI7qG,GACvBkqc,EAAW3vB,EAAKt/b,OAAOsyE,GACvB7lE,SAASwid,IAAaA,EAAWjE,IACnBA,EAAAiE,GAElB9D,EAAY9qd,KAAK4ud,IAEf94c,EAAAy5G,GAGR,IAAIs7V,EAAQH,EAAYl2F,EAASu3F,EAAYngC,SAAU++B,EAAe3xQ,GAS/D,OARHkzQ,EACFrB,EAAMhpB,UAAYqqB,GAEI,IAAlBvB,IACcA,EAAA,GAEZE,EAAAhpB,UAAuB,GAAXoqB,EAAiBjzQ,EAAc2xQ,GAE5CE,CACT,EACI,IAAAvqB,EAAUz/B,EAAqB,MAC/B0/B,EAAa1/B,EAAqB,MAAM0/B,WAC5C3+a,EAAQhf,QAAQosd,eAAiB,SAAS/qD,EAAK9yM,GACtC,OAAAovO,EAAWt8B,EAAK9yM,EAAQ,CAC7BmvO,UACAl3V,UAAW,cAEf,GAIJ,IAAA,SAEWu4T,EAAyBtlW,EAAUwkW,GACtC,IAAAi3B,EAAej3B,EAAqB,MACpCg6B,EAAUh6B,EAAqB,MAC/B4kC,EAAU5K,EAAQ,CAAC,kvCACnB6K,EAAU7K,EAAQ,CAAC,gzEACnB8S,EAAiB9S,EAAQ,CAAC,gnCAC1Bo0B,EAAUp0B,EAAQ,CAAC,urCACdx+X,EAAAy7X,aAAe,SAAS7zB,GAC/B,IAAI4zB,EAASC,EAAa7zB,EAAKwhC,EAASC,EAAS,KAAM,CACrD,CAAEpzb,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,IAAKjN,KAAM,QACnB,CAAEiN,KAAM,SAAUjN,KAAM,UAKnB,OAHAwyb,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAAAjpW,WAAWptE,EAAE86G,SAAW,EACxBu7T,EAAAjpW,WAAWnjC,OAAO6wE,SAAW,EAC7Bu7T,CACT,EACSx7X,EAAAmoY,iBAAmB,SAASvgC,GACnC,IAAI4zB,EAASC,EAAa7zB,EAAKwhC,EAASwpB,EAAS,KAAM,CACrD,CAAE38c,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,IAAKjN,KAAM,QACnB,CAAEiN,KAAM,SAAUjN,KAAM,UAKnB,OAHAwyb,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAAAjpW,WAAWptE,EAAE86G,SAAW,EACxBu7T,EAAAjpW,WAAWnjC,OAAO6wE,SAAW,EAC7Bu7T,CACT,EACSx7X,EAAA+1Y,oBAAsB,SAASnuC,GACtC,IAAI4zB,EAASC,EAAa7zB,EAAK0pC,EAAgBjI,EAAS,KAAM,CAC5D,CAAEpzb,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,IAAKjN,KAAM,WAId,OAFAwyb,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAAAjpW,WAAWptE,EAAE86G,SAAW,EACxBu7T,CACT,EACSx7X,EAAA6yZ,wBAA0B,SAASjrD,GAC1C,IAAI4zB,EAASC,EAAa7zB,EAAK0pC,EAAgBshB,EAAS,KAAM,CAC5D,CAAE38c,KAAM,KAAMjN,KAAM,QACpB,CAAEiN,KAAM,IAAKjN,KAAM,WAId,OAFAwyb,EAAAjpW,WAAWyoG,GAAG/6D,SAAW,EACzBu7T,EAAAjpW,WAAWptE,EAAE86G,SAAW,EACxBu7T,CACT,GAIJ,KAAA,SAEWj2a,EAASg/Y,EAA0BC,GAE1Cj/Y,EAAQhf,QAwhCR,SAA2BuuN,GACzB,IAAI8yM,EAAM9yM,EAAOuhO,GACbmF,EAASC,EAAa7zB,GACtB68B,EAAa0D,EAAiBvgC,GAC9B+pC,EAAgBoE,EAAoBnuC,GACpCkrD,EAAoBD,EAAwBjrD,GAC5CmrD,EAAmBlsd,EAAa+ga,GAChC0zB,EAAM5zB,EAAUE,EAAK,CACvB,CACEnja,OAAQsud,EACRzpd,KAAM,EACNiyb,OAAQy3B,EACRtud,OAAQ,GAEV,CACED,OAAQsud,EACRzpd,KAAM,EACNiyb,OAAQy3B,EACRtud,OAAQ,IAEV,CACED,OAAQsud,EACRzpd,KAAM,EACNiyb,OAAQy3B,EACRtud,OAAQ,MAGRuud,EAAgBpsd,EAAa+ga,GAC7BqrC,EAAavrC,EAAUE,EAAK,CAC9B,CACEnja,OAAQwud,EACR3pd,KAAM,EACNiyb,OAAQ,GACR72b,OAAQ,GAEV,CACED,OAAQwud,EACR3pd,KAAM,EACNiyb,OAAQ,GACR72b,OAAQ,MAGRwud,EAAgBrsd,EAAa+ga,GAC7BurD,EAAazrD,EAAUE,EAAK,CAC9B,CACEnja,OAAQyud,EACR5pd,KAAM,EACNN,KAAM4+Z,EAAII,SAGVsnB,EAAO8U,EAAcx8B,EAAK,EAAGwrD,EAAUxrD,EAAIklC,KAAMllC,EAAIygC,eACzD/Y,EAAK4W,UAAYt+B,EAAIy+B,OACrB/W,EAAK8W,UAAYx+B,EAAIy+B,OACrB,IAAIgtB,EAAU,IAAIC,EAChB1rD,EACA,CAAC,EAAG,GAEJ,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAEnB4zB,EACAiJ,EACAsuB,EACAz3B,EACAhM,EACAqiB,EACAmhB,EACAG,EACAhgB,EACAigB,EACAC,EACA,CAAC,EAAG,EAAG,IAGLI,EAAU,CACZ5zC,OAAQ,CAAC,GAAI,GAAI,KAEnB,IAAA,IAAStha,KAAMy2M,EACLy+P,EAAAl1c,GAAMy2M,EAAOz2M,GAIhB,OAFCk1c,EAAAhkC,SAAWgkC,EAAQhkC,UAAY,MACvC8jC,EAAQ1+b,OAAO4+b,GACRF,GAxmCL,IAAA9wW,EAAOiiT,EAAqB,MAC5B39Z,EAAe29Z,EAAqB,MACpCkD,EAAYlD,EAAqB,MACjC4/B,EAAgB5/B,EAAqB,MACrC8Y,EAAO9Y,EAAqB,MAC5B+qB,EAAW/qB,EAAqB,MAChC9zJ,EAAM8zJ,EAAqB,MAC3B/3W,EAAO+3W,EAAqB,MAC5BY,EAAUZ,EAAqB,MAC/BgvD,EAAchvD,EAAqB,MACnC7kU,EAAW6kU,EAAqB,MAChChnY,EAASgnY,EAAqB,MAC9BkjB,EAAUljB,EAAqB,MAC/B7kQ,EAAW6kQ,EAAqB,MAChCy/B,EAAUz/B,EAAqB,KAC/Bi3B,EAAewI,EAAQxI,aACvBsa,EAAsB9R,EAAQ8R,oBAC9B5N,EAAmBlE,EAAQkE,iBAC3B0qB,EAA0B5uB,EAAQ4uB,wBAClCG,EAAsB,GACtB3uB,EAAW,CACb,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEovB,EAAO,CACT,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,GACJ,CAAC,EAAG,IAEFC,EAAe,CACjB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACzB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACzB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAY3B,SAASC,EAAkBx0c,EAAUi8B,EAAO4/I,EAAIj2G,EAAO8iX,GACrD79b,KAAKmV,SAAWA,EAChBnV,KAAKoxC,MAAQA,EACbpxC,KAAKgxL,GAAKA,EACVhxL,KAAK+6E,MAAQA,EACb/6E,KAAK69b,eAAiBA,GAfxB,WACE,IAAA,IAAShlc,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAA4W,EAAIi6c,EAAa7wd,GAEjBwlB,GAAKxlB,EAAI,GAAK,EAChB4W,GAFO5W,EAAI,GAAK,EAEZ,GAAK,EACT4W,EAAA4O,EAAI,GAAK,EACT5O,EAAA5W,EAAI,GAAK,EAEZ,CATH,GAiBA,IAAIuwd,EAAW,IACf,SAASE,EAAY1rD,EAAK3vV,EAAO0iC,EAAQ6gV,EAAQiJ,EAAY5yZ,EAAaypZ,EAAK77F,EAAUkyG,EAAemhB,EAAmBG,EAAehgB,EAAYigB,EAAeC,EAAYS,GAC/K5pd,KAAKqsb,GAAKzuB,EACV59Z,KAAKiuE,MAAQA,EACbjuE,KAAK2wG,OAASA,EACd3wG,KAAK4pd,aAAeA,EACpB5pd,KAAK6pd,gBAAkB,GACvB7pd,KAAK8pd,QAAUt4B,EACfxxb,KAAK+pd,YAActvB,EACnBz6b,KAAKgqd,kBAAoBnib,EACzB7nC,KAAKiqd,KAAO34B,EACZtxb,KAAKkqd,UAAYz0H,EACjBz1V,KAAKmqd,eAAiBxiB,EACtB3nc,KAAKoqd,mBAAqBtB,EAC1B9od,KAAKqqd,eAAiBpB,EACtBjpd,KAAKsqd,YAAcrhB,EACnBjpc,KAAKuqd,gBAAkB,CAAC,GAAI,GAAI,IAChCvqd,KAAKwqd,eAAiB,CAAC,GAAI,GAAI,IAC/Bxqd,KAAKyqd,aAAe,EACfzqd,KAAA0qd,YAAc,IAAIf,EAAkB,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,GAAI,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACtF3pd,KAAK2qd,eAAiBzB,EACtBlpd,KAAK4qd,YAAczB,EACnBnpd,KAAK6qd,gBAAkB,CAAC,EAAG,EAAG,GAC9B7qd,KAAK8qd,eAAiB,CAAC,EAAG,EAAG,GAC7B9qd,KAAK+qd,aAAe,CAAC,EAAG,EAAG,GACtB/qd,KAAAgrd,cAAgB,CAAC,CAAC,GAAI,CAAC,GAAI,CAAC,IACjChrd,KAAKird,YAAc,CAAC,EAAG,EAAG,GAC1Bjrd,KAAKspc,aAAe,CAAC,CAAC,GAAK,GAAK,GAAK,GAAI,CAAC,GAAK,GAAK,GAAK,GAAI,CAAC,GAAK,GAAK,GAAK,IAC7Etpc,KAAKkrd,aAAc,EACnBlrd,KAAKmrd,aAAc,EACnBnrd,KAAKord,gBAAkB,EAAC,GAAM,GAAM,GACpCprd,KAAKq4P,eAAiB,CAAC,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAC7Dr4P,KAAKqrd,cAAgB,CAAC,EAAG,EAAG,GAC5Brrd,KAAKsrd,eAAiB,EAAK,GAAA,GAAM,GACjCtrd,KAAKurd,cAAgB,EAAC,GAAM,GAAM,GAClCvrd,KAAKwrd,aAAe,CAAClwd,IAAKA,IAAKA,KAC/B0E,KAAKyrd,aAAe,CAAC,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IAC3Dzrd,KAAK0rd,YAAc,CAAC,EAAG,EAAG,GAC1B1rd,KAAK2rd,aAAe,CAAC,EAAG,EAAG,GACtB3rd,KAAAizc,WAAa,CAAC,CAAC13c,IAAUA,IAAUA,KAAW,EAAC,KAAW,KAAW,MAC1EyE,KAAK4rd,eAAiB,EAAC,GAAO,GAAO,GACrC5rd,KAAK6rd,eAAiB,CACpB,EAAC,GAAO,GAAO,GACf,EAAC,GAAO,GAAO,GACf,EAAC,GAAO,GAAO,IAEZ7rd,KAAA8rd,YAAc,EAAC,GAAO,GAC3B9rd,KAAK+rd,OAAS,CACZ3wD,EAAQkY,EAAK2mC,YAAY,MAAO,CAAC,EAAG,IACpC7+C,EAAQkY,EAAK2mC,YAAY,MAAO,CAAC,EAAG,IACpC7+C,EAAQkY,EAAK2mC,YAAY,MAAO,CAAC,EAAG,KAEtCj6c,KAAKg7b,OAAS,EACTh7b,KAAAi7b,WAAa,CAAC,EAAC,KAAW,KAAW,KAAY,CAAC1/b,IAAUA,IAAUA,MAC3EyE,KAAK0wc,YAAa,EAClB1wc,KAAKssb,WAAa,EAClBtsb,KAAK0gF,QAAU,EACf1gF,KAAKk7b,cAAgB,CAAC,GAAI,IAAK,GAC/Bl7b,KAAKm7b,aAAe,GACpBn7b,KAAKo7b,aAAe,GACpBp7b,KAAKq7b,cAAgB,EACrBr7b,KAAKs7b,UAAY,GACjBt7b,KAAKu7b,QAAU,IACfv7b,KAAKgsd,YAAc,EACnBhsd,KAAKquI,OAAQ,EAEf,IAAIzqI,EAAQ0ld,EAAYpsd,UAClB0G,EAAA24b,YAAc,SAASvkb,EAAOyxb,GAClC,IAAI1vX,GAAW,EACXr1E,EAAI+9C,EAAK,CAAC8iY,EAAS,CACrBA,SAAUvta,EACVwta,QAAS4jC,EACT7wb,OAAQ,SACPtY,KAAI,SAAStkB,EAAG9C,GACb,IAAA4L,EAAIglc,EAkBH,SAAoB9kZ,EAAO8kZ,GAC9B,IAACA,EAAqB,OAAA,EACtB,IAACA,EAAanwc,OAAe,OAAA,EACjC,IAAA,IAAST,EAAI,EAAGA,EAAI4wc,EAAanwc,SAAUT,EAAG,CACxC,GAAA4wc,EAAanwc,OAAS,EAAU,OAAA,EAChC,GAAAmwc,EAAa5wc,GAAG,KAAO8rD,EAAc,OAAA8kZ,EAAa5wc,GAAG,GACzD,GAAI4wc,EAAa5wc,GAAG,GAAK8rD,GAAS9rD,EAAI,EAAG,CACvC,IAAIuC,GAAKquc,EAAa5wc,GAAG,GAAK8rD,IAAU8kZ,EAAa5wc,GAAG,GAAK4wc,EAAa5wc,EAAI,GAAG,IACjF,OAAO4wc,EAAa5wc,GAAG,IAAM,EAAIuC,GAAKA,EAAIquc,EAAa5wc,EAAI,GAAG,IAG3D,OAAA,EA7BkB6wc,CAAoB7wc,EAAI,IAAK4wc,GAAgB9tc,EAAE,GAE/D,OADH8I,EAAI,IAAcs1E,GAAA,GACf,CAACp+E,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAAM8I,EACjC,MAGM,OAFHiiQ,EAAAulN,OAAOvnd,EAAG,KACd1E,KAAKksd,cAAgBnyY,EACdr1E,CACT,EACAd,EAAMmsb,cAAgB,WACb,OAAA/vb,KAAK0gF,QAAU,GAAK1gF,KAAKksd,aAClC,EACAtod,EAAMksb,SAAW,WACR,OAAC9vb,KAAK+vb,eACf,EACAnsb,EAAMi4b,UAAY,EACZj4b,EAAAk4b,YAAc,SAASznb,GAC3BrU,KAAKg7b,OAAS3mb,CAChB,EAcA,IAAI83c,EAAW,CAAC,EAAG,EAAG,GAClBC,EAAe,CACjBjB,aAAa,EACbD,aAAa,EACbmB,YAAa,CAAChyB,EAASv8b,QAASu8b,EAASv8b,QAASu8b,EAASv8b,SAC3Dm9b,WAAY,CACV,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACnB,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IACnB,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,MAGd,SAAAqxB,EAAsBvoQ,EAAQnlN,GACrC,IAAI/F,EAAG0I,EAAGugB,EACN0ta,EAAW5wb,EAAIw4K,MAAQx4K,EAAIw4K,KAAKy1Q,cAAcz7X,MAAQ+6Z,EACtDhB,EAAcvsd,EAAIusd,YAClBD,EAActsd,EAAIssd,YACtB,IAAKryd,EAAI,EAAGA,EAAI,IAAKA,EAEnB,IADcsyd,EAAAA,GAAevsd,EAAIgtd,eAAe/yd,GAC3C0I,EAAI,EAAGA,EAAI,IAAKA,EACnB2pd,EAAcA,GAAetsd,EAAIitd,eAAehzd,GAAG0I,GAGvD,IAAK1I,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,IAAA0zd,EAAaH,EAAaC,YAAYxzd,GAC1C,IAAK0I,EAAI,EAAGA,EAAI,KAAMA,EACpBgrd,EAAWhrd,GAAK,EAElB,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EACRgrd,EAAA,EAAIhrd,GAAK,EAEXgrd,EAAA,EAAI1zd,GAAK,EACT0zd,EAAA,GAAK1zd,GAAK+F,EAAIq0c,aAAazjB,EAAS32b,GAAK,IAAIA,GAC/C88F,EAAA42X,EAAYxoQ,EAAOmkF,MAAOqkL,GAC/B,IAAAC,EAAcJ,EAAanxB,WAAWpic,GAC1C,IAAKipB,EAAI,EAAGA,EAAI,IAAKA,EACnB,IAAKvgB,EAAI,EAAGA,EAAI,IAAKA,EACPird,EAAA1qc,GAAGvgB,GAAKwiN,EAAOk3O,WAAWn5a,GAAGvgB,GAGjCird,EAAA,GAAG3zd,IAAK,IACR2zd,EAAA,GAAG3zd,GAAK,IAIf,OAFPuzd,EAAajB,YAAcA,EAC3BiB,EAAalB,YAAcA,EACpBkB,EAET,IAAIK,EAAW,CACbvkL,MAAOmyJ,EACPjoa,KAAMioa,EACNzuY,WAAYyuY,EACZ8C,aAAc9C,EAASv8b,QACvBqka,WAAY,CAAC,EAAG,EAAG,GACnBm3C,WAAY,CAAC,EAAG,EAAG,GACnB7jH,SAAU,EACVwlG,WAAY,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAC/Bj9V,OAAQ,EACRitX,YAAa,EACb3hB,aAAc,CAAC,EAAG,EAAG,EAAG,GACxBojB,YAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtCC,SAAS,KACT/C,aAAc,CAAC,EAAG,EAAG,GACrBxsB,SAAU,EACVC,SAAU,EACVC,UAAW,EACXpC,cAAe,CAAC,IAAK,IAAK,KAC1BqC,YAAa,CAAC,EAAG,EAAG,GACpBjC,UAAW,EACXC,QAAS,EACT76W,QAAS,EACTsrY,YAAa,GAEXY,EAAiBvyB,EAASv8b,QAC1B+ud,EAAe,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACnC,SAAAC,EAAShiQ,EAAQguP,GACxBhuP,EAASA,GAAU,CAAC,EACpB,IAAI8yM,EAAM59Z,KAAKqsb,GACXzuB,EAAA/pS,QAAQ+pS,EAAI4/B,WACXx9b,KAAAkqd,UAAUn6c,KAAK,GACpB,IAAI+hb,EAAW26B,EACN36B,EAAA5pJ,MAAQp9E,EAAOo9E,OAASmyJ,EACxBvI,EAAA1/Z,KAAO04L,EAAO14L,MAAQioa,EACtBvI,EAAAlmY,WAAak/J,EAAOl/J,YAAcyuY,EAClCvI,EAAA3vB,WAAa,CAACnia,KAAK2wG,OAAO,GAAG,GAAI3wG,KAAK2wG,OAAO,GAAG,GAAI3wG,KAAK8rd,YAAY,IAAM9rd,KAAK2wG,OAAO,GAAG,IAC1FmhV,EAAAwnB,WAAa,CAACt5c,KAAK2wG,OAAO,GAAG,GAAI3wG,KAAK2wG,OAAO,GAAG,GAAI3wG,KAAK8rd,YAAY,IAAM9rd,KAAK2wG,OAAO,GAAG,IACnGmhV,EAAS83B,aAAe5pd,KAAK4pd,aACpB93B,EAAAwX,aAAetpc,KAAKspc,aAAa,GAC1CxX,EAASqL,aAAe3pa,EAAOs+Z,EAASqL,aAAcrL,EAAS5pJ,OAC/D,IAAA,IAASrvS,EAAI,EAAGA,EAAI,IAAKA,EAEvB,IADI,IAAAk0d,EAAcj7B,EAASmJ,WAAWpic,GAC7B0I,EAAI,EAAGA,EAAI,IAAKA,EACvBwrd,EAAYxrd,GAAK/F,KAAKoH,IAAIpH,KAAK8J,IAAItF,KAAKi7b,WAAWpic,GAAG0I,IAAI,KAAO,KAGrEuwb,EAASsL,SAAWp9b,KAAKm7b,aACzBrJ,EAASuL,SAAWr9b,KAAKo7b,aACzBtJ,EAASwL,UAAYt9b,KAAKq7b,cAC1BvJ,EAASwJ,UAAYt7b,KAAKs7b,UAC1BxJ,EAASyJ,QAAUv7b,KAAKu7b,QACxBzJ,EAASpxW,QAAU1gF,KAAK0gF,QACxBoxW,EAAS9zV,OAAS,EAClB8zV,EAAS46B,YAAcG,EACvB/6B,EAASk6B,YAAchsd,KAAKgsd,YAC5B,IAAIvuB,EAAkBmvB,EAItB,IAHAj3X,EAAS8nW,EAAiB3L,EAAS1/Z,KAAM0/Z,EAAS5pJ,OACzCvyM,EAAA8nW,EAAiB3L,EAASlmY,WAAY6xY,GAC/Cjqa,EAAOiqa,EAAiBA,GACnB5kc,EAAI,EAAGA,EAAI,IAAKA,EACVi5b,EAAAyL,YAAY1kc,GAAK4kc,EAAgB,GAAK5kc,GAAK4kc,EAAgB,IAElE,IAAAjxa,EAAIixa,EAAgB,IACxB,IAAK5kc,EAAI,EAAGA,EAAI,IAAKA,EACnB2zB,GAAKxsB,KAAKk7b,cAAcric,GAAK4kc,EAAgB,EAAI5kc,EAAI,GAEvD,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,IAAAwC,EAAIoic,EAAgB,GAAK5kc,GAC7B,IAAK0I,EAAI,EAAGA,EAAI,IAAKA,EACnBlG,GAAKoic,EAAgB,EAAIl8b,EAAI1I,GAAKmH,KAAKk7b,cAAc35b,GAE9Cuwb,EAAAoJ,cAAcric,GAAKwC,EAAImxB,EAE9B,IAAAwgc,EAAcV,EAAsBx6B,EAAU9xb,MAClD,GAAIgtd,EAAY7B,YAAa,CAO3B,IANAnrd,KAAK8pd,QAAQ/5c,OACb/P,KAAK8pd,QAAQh4B,SAAWA,EACxB9xb,KAAKiqd,KAAKl6c,OACN/P,KAAKmrd,aAAenrd,KAAKyqd,cAC3Bzqd,KAAKiqd,KAAK9kT,KAAKy4P,EAAIM,UAAWl+Z,KAAKyqd,cAEhC5xd,EAAI,EAAGA,EAAI,IAAKA,EACdmH,KAAK4rd,eAAe/yd,IAAOmH,KAAKm/b,cAGrCn/b,KAAK8pd,QAAQh4B,SAAS5pJ,MAAQ8kL,EAAYX,YAAYxzd,GACtDmH,KAAK8pd,QAAQh4B,SAASmJ,WAAa+xB,EAAY/xB,WAAWpic,GAC1DmH,KAAKiqd,KAAK9kT,KAAKy4P,EAAIM,UAAWl+Z,KAAKyqd,eAErCzqd,KAAKiqd,KAAK9rD,SAEZ,GAAI6uD,EAAY9B,YAAa,CAC3B,IAAI15B,EAASxxb,KAAKmqd,eAClBr4B,EAASsL,SAAW,EACpBtL,EAASuL,SAAW,EACpBvL,EAASwL,UAAY,EACrBxL,EAASpxW,QAAU,EACnB8wW,EAAOzhb,OACPyhb,EAAOM,SAAWA,EAClB,IAAIR,EAAMtxb,KAAKsqd,YAEf,IADAh5B,EAAIvhb,OACClX,EAAI,EAAGA,EAAI,IAAKA,EAGd,IAFE24b,EAAAM,SAAS46B,YAAchD,EAAa7wd,GAC3C+ka,EAAIhnQ,UAAU52J,KAAK+qd,aAAalyd,GAAKmH,KAAKssb,YACrC/qb,EAAI,EAAGA,EAAIvB,KAAKgrd,cAAcnyd,GAAGS,SAAUiI,EAC1CA,IAAMvB,KAAKsrd,eAAezyd,IAC5B24b,EAAOM,SAASwX,aAAetpc,KAAKq4P,eAAex/P,GACnD24b,EAAOM,SAASm5B,YAAcjrd,KAAKqrd,cAAcxyd,IAClC,IAAN0I,GAAWA,EAAI,IAAMvB,KAAKsrd,eAAezyd,KAClD24b,EAAOM,SAASwX,aAAetpc,KAAKspc,aAAazwc,GACjD24b,EAAOM,SAASm5B,YAAcjrd,KAAKird,YAAYpyd,IAE5CmH,KAAKwqd,eAAe3xd,GAAG0I,KAG5Biwb,EAAOM,SAAS9zV,OAASh+F,KAAKgrd,cAAcnyd,GAAG0I,GAC/C+vb,EAAInsR,KAAKy4P,EAAImhC,MAAO/+b,KAAKwqd,eAAe3xd,GAAG0I,GAAIvB,KAAKuqd,gBAAgB1xd,GAAG0I,KAG3E,IAAK1I,EAAI,EAAGA,EAAI,IAAKA,EAGnB,IAFA24b,EAAOM,SAAS5pJ,MAAQ8kL,EAAYX,YAAYxzd,GAChD24b,EAAOM,SAASmJ,WAAa+xB,EAAY/xB,WAAWpic,GAC/C0I,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAKvB,KAAK6rd,eAAehzd,GAAG0I,GAA5B,CAGOiwb,EAAAM,SAAS46B,YAAchD,EAAanod,GAC3Cq8Z,EAAIhnQ,UAAU52J,KAAK+qd,aAAaxpd,GAAKvB,KAAKssb,YACjC,IAAA,IAAAxqa,EAAI,EAAGA,EAAI9hB,KAAKgrd,cAAczpd,GAAGjI,SAAUwoB,EAC9CA,IAAM9hB,KAAKsrd,eAAe/pd,IAC5Biwb,EAAOM,SAASwX,aAAetpc,KAAKq4P,eAAe92P,GACnDiwb,EAAOM,SAASm5B,YAAcjrd,KAAKqrd,cAAc9pd,IAClC,IAANugB,GAAWA,EAAI,IAAM9hB,KAAKsrd,eAAe/pd,KAClDiwb,EAAOM,SAASwX,aAAetpc,KAAKspc,aAAa/nc,GACjDiwb,EAAOM,SAASm5B,YAAcjrd,KAAKird,YAAY1pd,IAE5CvB,KAAKwqd,eAAejpd,GAAGugB,KAG5B0va,EAAOM,SAAS9zV,OAASh+F,KAAKgrd,cAAczpd,GAAGugB,GAC/Cwva,EAAInsR,KAAKy4P,EAAImhC,MAAO/+b,KAAKwqd,eAAejpd,GAAGugB,GAAI9hB,KAAKuqd,gBAAgBhpd,GAAGugB,KAO7E,IAHAwva,EAAInzB,UACJmzB,EAAMtxb,KAAK4qd,aACP76c,OACClX,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAA+B,IAA3BmH,KAAK8qd,eAAejyd,GAWxB,IARO24b,EAAAM,SAAS5pJ,MAAQ4pJ,EAAS5pJ,MAC1BspJ,EAAAM,SAASmJ,WAAanJ,EAASmJ,WAC/BzJ,EAAAM,SAAS46B,YAAchD,EAAa7wd,GAC3C+ka,EAAIhnQ,UAAU52J,KAAK2rd,aAAa9yd,GAAKmH,KAAKssb,YAC1CkF,EAAOM,SAASwX,aAAetpc,KAAKyrd,aAAa5yd,GACjD24b,EAAOM,SAASm5B,YAAcjrd,KAAK0rd,YAAY7yd,GAC/C24b,EAAOM,SAAS9zV,OAASh+F,KAAKwrd,aAAa3yd,GACvCy4b,EAAAnsR,KAAKy4P,EAAImhC,MAAO/+b,KAAK8qd,eAAejyd,GAAImH,KAAK6qd,gBAAgBhyd,IAC5D0I,EAAI,EAAGA,EAAI,IAAKA,EACdvB,KAAK6rd,eAAetqd,GAAG1I,KAG5B24b,EAAOM,SAAS5pJ,MAAQ8kL,EAAYX,YAAY9qd,GAChDiwb,EAAOM,SAASmJ,WAAa+xB,EAAY/xB,WAAW15b,GAChD+vb,EAAAnsR,KAAKy4P,EAAImhC,MAAO/+b,KAAK8qd,eAAejyd,GAAImH,KAAK6qd,gBAAgBhyd,KAGrEy4b,EAAInzB,UAGFv6Z,EAAAuhK,KAAO,SAAS2lD,GACpB,OAAOgiQ,EAASjsd,KAAKb,KAAM8qN,GAAQ,EACrC,EACMlnN,EAAAosb,gBAAkB,SAASllO,GAC/B,OAAOgiQ,EAASjsd,KAAKb,KAAM8qN,GAAQ,EACrC,EACA,IAAImiQ,EAAgB,CAClB/kL,MAAOmyJ,EACPjoa,KAAMioa,EACNzuY,WAAYyuY,EACZ8C,aAAc9C,EACdY,WAAY,CAAC,CAAC,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,IAC/Bj9V,OAAQ,EACR/vB,MAAO,CAAC,EAAG,GACX+sX,OAAQ,EACR74B,WAAY,CAAC,EAAG,EAAG,GACnBm3C,WAAY,CAAC,EAAG,EAAG,GACnBqT,QAAS,EACT/C,aAAc,CAAC,EAAG,EAAG,GACrB8C,YAAa,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GACtCxxB,cAAe,CAAC,EAAG,EAAG,GACtBqC,YAAa,CAAC,EAAG,EAAG,IA0Jb,SAAA2vB,EAAYjgQ,EAAO1sM,GACtB,OAAAvmB,MAAMiF,QAAQguN,GACT,CAAC1sM,EAAK0sM,EAAM,IAAK1sM,EAAK0sM,EAAM,IAAK1sM,EAAK0sM,EAAM,KAE9C,CAAC1sM,EAAK0sM,GAAQ1sM,EAAK0sM,GAAQ1sM,EAAK0sM,IAEzC,SAASkgQ,EAAQzod,GACX,OAAA1K,MAAMiF,QAAQyF,GACC,IAAbA,EAAEpL,OACG,CAACoL,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,GAErB,CAACA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAEvB,CAAC,EAAG,EAAG,EAAG,GAEnB,SAAS0od,EAAYngQ,GACf,GAAAjzN,MAAMiF,QAAQguN,GAAQ,CACpB,GAAAjzN,MAAMiF,QAAQguN,GACT,MAAA,CACLkgQ,EAAQlgQ,EAAM,IACdkgQ,EAAQlgQ,EAAM,IACdkgQ,EAAQlgQ,EAAM,KAGZ,IAAAtxN,EAAIwxd,EAAQlgQ,GACT,MAAA,CACLtxN,EAAEmC,QACFnC,EAAEmC,QACFnC,EAAEmC,UApLJ8F,EAAA85b,SAAW,SAAS5yO,GACxBA,EAASA,GAAU,CAAC,EACpB,IAAI8yM,EAAM59Z,KAAKqsb,GACXzuB,EAAA/pS,QAAQ+pS,EAAI4/B,WAChB,IAAI1L,EAAWm7B,EACNn7B,EAAA5pJ,MAAQp9E,EAAOo9E,OAASmyJ,EACxBvI,EAAA1/Z,KAAO04L,EAAO14L,MAAQioa,EACtBvI,EAAAlmY,WAAak/J,EAAOl/J,YAAcyuY,EAC3CvI,EAAS7jX,MAAQjuE,KAAK+rd,OAAO,GAAG99Y,MACvB6jX,EAAAkJ,OAASh7b,KAAKg7b,OAAS,IACvBlJ,EAAA3vB,WAAania,KAAK2wG,OAAO,GACzBmhV,EAAAwnB,WAAat5c,KAAK2wG,OAAO,GAClCmhV,EAAS83B,aAAe5pd,KAAK4pd,aAC7B93B,EAAS46B,YAAcG,EACvB,IAAA,IAASh0d,EAAI,EAAGA,EAAI,IAAKA,EAEvB,IADI,IAAAk0d,EAAcj7B,EAASmJ,WAAWpic,GAC7B0I,EAAI,EAAGA,EAAI,IAAKA,EACvBwrd,EAAYxrd,GAAK/F,KAAKoH,IAAIpH,KAAK8J,IAAItF,KAAKi7b,WAAWpic,GAAG0I,IAAI,KAAO,KAGjE,IAAAyrd,EAAcV,EAAsBx6B,EAAU9xb,MAClD,GAAIgtd,EAAY7B,YAAa,CAK3B,IAJAnrd,KAAK+pd,YAAYh6c,OACjB/P,KAAK+pd,YAAYj4B,SAAWA,EAC5B9xb,KAAKiqd,KAAKl6c,OACV/P,KAAKiqd,KAAK9kT,KAAKy4P,EAAIM,UAAWl+Z,KAAKyqd,cAC9B5xd,EAAI,EAAGA,EAAI,IAAKA,EACdmH,KAAK4rd,eAAe/yd,KAGzBmH,KAAK+pd,YAAYj4B,SAAS5pJ,MAAQ8kL,EAAYX,YAAYxzd,GAC1DmH,KAAK+pd,YAAYj4B,SAASmJ,WAAa+xB,EAAY/xB,WAAWpic,GAC9DmH,KAAKiqd,KAAK9kT,KAAKy4P,EAAIM,UAAWl+Z,KAAKyqd,eAErCzqd,KAAKiqd,KAAK9rD,SAEZ,GAAI6uD,EAAY9B,YAAa,CAC3B,IAAI15B,EAASxxb,KAAKoqd,mBAClB54B,EAAOzhb,OACPyhb,EAAOM,SAAWA,EAClB,IAAIR,EAAMtxb,KAAKsqd,YAEf,IADAh5B,EAAIvhb,OACCxO,EAAI,EAAGA,EAAI,IAAKA,EAGd,IAFLq8Z,EAAIhnQ,UAAU52J,KAAK+qd,aAAaxpd,GAAKvB,KAAKssb,YACnCkF,EAAAM,SAAS46B,YAAchD,EAAanod,GACtC1I,EAAI,EAAGA,EAAImH,KAAKgrd,cAAczpd,GAAGjI,SAAUT,EAC1CmH,KAAKwqd,eAAejpd,GAAG1I,KACzB24b,EAAOM,SAAS9zV,OAASh+F,KAAKgrd,cAAczpd,GAAG1I,GAC/Cy4b,EAAInsR,KAAKy4P,EAAImhC,MAAO/+b,KAAKwqd,eAAejpd,GAAG1I,GAAImH,KAAKuqd,gBAAgBhpd,GAAG1I,KAI7E,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EAGnB,IAFA24b,EAAOM,SAAS5pJ,MAAQ8kL,EAAYX,YAAYxzd,GAChD24b,EAAOM,SAASmJ,WAAa+xB,EAAY/xB,WAAWpic,GAC/C0I,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAKvB,KAAK6rd,eAAehzd,GAAG0I,GAA5B,CAGOiwb,EAAAM,SAAS46B,YAAchD,EAAanod,GAC3Cq8Z,EAAIhnQ,UAAU52J,KAAK+qd,aAAaxpd,GAAKvB,KAAKssb,YACjC,IAAA,IAAAxqa,EAAI,EAAGA,EAAI9hB,KAAKgrd,cAAczpd,GAAGjI,SAAUwoB,EAC9C9hB,KAAKwqd,eAAejpd,GAAGugB,KACzB0va,EAAOM,SAAS9zV,OAASh+F,KAAKgrd,cAAczpd,GAAGugB,GAC/Cwva,EAAInsR,KAAKy4P,EAAImhC,MAAO/+b,KAAKwqd,eAAejpd,GAAGugB,GAAI9hB,KAAKuqd,gBAAgBhpd,GAAGugB,KAK/Ewva,EAAInzB,SAER,EACMv6Z,EAAA+lQ,KAAO,SAASjkP,GACpB,IAAKA,EACI,OAAA,KAEL,GAAAA,EAAUrR,KAAOrU,KAAKg7b,OACjB,OAAA,KAET,IAAI/sX,EAAQjuE,KAAK+rd,OAAO,GAAG99Y,MACvBp/D,EAAS7O,KAAK0qd,YACdhmd,EAAIupE,EAAM,IAAMvoD,EAAUhqB,MAAM,IAAMgqB,EAAUhqB,MAAM,IAAM,GAAK,IAAM,IACvE2xd,EAAK7xd,KAAKO,MAAM2I,GAChB2iC,EAAK3iC,EAAI2od,EACT1od,EAAIspE,EAAM,IAAMvoD,EAAUhqB,MAAM,IAA2B,GAArBgqB,EAAUhqB,MAAM,IAAW,IAAM,IACvE4xd,EAAK9xd,KAAKO,MAAM4I,GAChB2iC,EAAK3iC,EAAI2od,EACPD,GAAA,EACAC,GAAA,EACN,IAAIxod,EAAM+J,EAAOsG,SACjBrQ,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAK,EAC3B,IAAA,IAAS4qB,EAAK,EAAGA,EAAK,IAAKA,EAEzB,IADI,IAAAr0B,EAAIq0B,EAAK2X,EAAK,EAAIA,EACb1X,EAAK,EAAGA,EAAK,IAAKA,EAKzB,IAJI,IACAqH,EAAIq2b,EAAK39b,EACT/zB,EAAI2xd,EAAK39b,EACTnD,EAAInxB,GAHAs0B,EAAK2X,EAAK,EAAIA,GAIbzuC,EAAI,EAAGA,EAAI,IAAKA,EACnBiM,EAAAjM,IAAMmH,KAAK+rd,OAAOlzd,GAAGsL,IAAI6yB,EAAGr7B,GAAK6wB,EAK3C,IADI,IAAA+gc,EAAavtd,KAAK0qd,YAAY3vY,MACzBx5E,EAAI,EAAGA,EAAI,IAAKA,EAEnB,GADOgsd,EAAAhsd,GAAKm8a,EAAQjd,GAAGzga,KAAKgrd,cAAczpd,GAAIuD,EAAIvD,IAClDgsd,EAAWhsd,GAAK,EACdvB,KAAKgrd,cAAczpd,GAAGjI,OAAS,IACjCi0d,EAAWhsd,GAAK,QAClB,GACSgsd,EAAWhsd,GAAKvB,KAAKgrd,cAAczpd,GAAGjI,OAAS,EAAG,CAC3D,IAAImL,EAAIzE,KAAKgrd,cAAczpd,GAAGgsd,EAAWhsd,IACrC5C,EAAIqB,KAAKgrd,cAAczpd,GAAGgsd,EAAWhsd,GAAK,GAC1C/F,KAAKK,IAAI4I,EAAIK,EAAIvD,IAAM/F,KAAKK,IAAI8C,EAAImG,EAAIvD,MAC1Cgsd,EAAWhsd,IAAM,GAQvB,IAJAsN,EAAOuiC,MAAM,GAAK/J,EAAK,GAAMgmb,EAAKA,EAAK,EACvCx+c,EAAOuiC,MAAM,GAAK9J,EAAK,GAAMgmb,EAAKA,EAAK,EACvCz+c,EAAOmiL,GAAG,GAAKtsL,EAAIupE,EAAM,GACzBp/D,EAAOmiL,GAAG,GAAKrsL,EAAIspE,EAAM,GACpBp1E,EAAI,EAAGA,EAAI,IAAKA,EACnBgW,EAAOgvb,eAAehlc,GAAKmH,KAAK+rd,OAAOlzd,GAAGsL,IAAI0K,EAAOuiC,MAAM,GAAIviC,EAAOuiC,MAAM,IAEvE,OAAAviC,CACT,EACMjL,EAAA4pd,SAAW,SAASC,EAAUC,GAC9B,IAAAC,EAAWD,EAASz/Y,MAAMnwE,QAC1B8vd,EAAWH,EAASx/Y,MAAMnwE,QAC9B4oQ,EAAIwvH,OAAOu3F,EAAShrd,GAAG,EAAG,GAAGD,GAAGmrd,EAAS,GAAIA,EAAS,IAAKD,GACvDhnN,EAAAwvH,OACFu3F,EAAShrd,GAAG,GAAGD,GAAGmrd,EAAS,GAAI,GAC/BD,EAASlrd,GAAGmrd,EAAS,GAAI,IAEvBjnN,EAAAwvH,OACFu3F,EAAShrd,GAAG,EAAGmrd,EAAS,GAAK,GAAGprd,GAAGmrd,EAAS,GAAI,GAChDD,EAASjrd,GAAG,EAAGkrd,EAAS,GAAK,GAAGnrd,GAAGmrd,EAAS,GAAI,IAE9CjnN,EAAAwvH,OACFu3F,EAAShrd,GAAG,EAAG,GAAGD,GAAG,EAAGmrd,EAAS,IACjCD,EAASlrd,GAAG,IAEVkkQ,EAAAwvH,OACFu3F,EAAShrd,GAAGmrd,EAAS,GAAK,EAAG,GAAGprd,GAAG,EAAGmrd,EAAS,IAC/CD,EAASjrd,GAAGkrd,EAAS,GAAK,IAE5BF,EAAS1od,IAAI,EAAG,EAAG2od,EAASvpd,IAAI,EAAG,IACnCspd,EAAS1od,IAAI,EAAG6od,EAAS,GAAK,EAAGF,EAASvpd,IAAI,EAAGwpd,EAAS,GAAK,IAC/DF,EAAS1od,IAAI6od,EAAS,GAAK,EAAG,EAAGF,EAASvpd,IAAIwpd,EAAS,GAAK,EAAG,IAC/DF,EAAS1od,IAAI6od,EAAS,GAAK,EAAGA,EAAS,GAAK,EAAGF,EAASvpd,IAAIwpd,EAAS,GAAK,EAAGA,EAAS,GAAK,GAC7F,EAkCM/pd,EAAA+mB,OAAS,SAASmgM,GACtBA,EAASA,GAAU,CAAC,EACf9qN,KAAA4pd,aAAe9+P,EAAO8+P,cAAgB5pd,KAAK4pd,aAChD5pd,KAAKquI,OAAQ,EACT,iBAAkBy8E,IACpB9qN,KAAK+qd,aAAemC,EAAYpiQ,EAAOigQ,aAActpd,SAEnD,gBAAiBqpN,IACnB9qN,KAAKkrd,YAAcgC,EAAYpiQ,EAAOogQ,YAAav8c,UAEjD,gBAAiBm8M,IACd9qN,KAAAmrd,cAAgBrgQ,EAAOqgQ,aAE1B,gBAAiBrgQ,IACnB9qN,KAAKird,YAAciC,EAAYpiQ,EAAOmgQ,YAAat8c,UAEjD,iBAAkBm8M,IACf9qN,KAAAspc,aAAe8jB,EAAYtiQ,EAAOw+O,eAErC,mBAAoBx+O,IACtB9qN,KAAK6rd,eAAiBqB,EAAYpiQ,EAAO+gQ,gBAAgB,SAASv9a,GACzD,OAAA4+a,EAAY5+a,EAAI3/B,QAAO,KAG9B,mBAAoBm8M,IACtB9qN,KAAK4rd,eAAiB9gQ,EAAO8gQ,gBAE3B,iBAAkB9gQ,IACf9qN,KAAAyrd,aAAe2B,EAAYtiQ,EAAO2gQ,eAErC,gBAAiB3gQ,IACnB9qN,KAAK0rd,YAAcwB,EAAYpiQ,EAAO4gQ,YAAajqd,SAEjD,iBAAkBqpN,IACpB9qN,KAAK2rd,aAAeuB,EAAYpiQ,EAAO6gQ,aAAclqd,SAEnD,YAAaqpN,IACf9qN,KAAK0gF,QAAUoqI,EAAOpqI,SAEpB,iBAAkBoqI,IACpB9qN,KAAKypc,aAAe3+O,EAAO2+O,cAEzB,gBAAiB3+O,IACnB9qN,KAAK8rd,YAAchhQ,EAAOghQ,aAExB,gBAAiBhhQ,IACd9qN,KAAAgsd,YAAclhQ,EAAOkhQ,YAAc,EAAI,GAE1C,aAAclhQ,GACX9qN,KAAAkqd,UAAU5tB,UAAUt8b,KAAKu8b,YAAYzxO,EAAOy6N,SAAUvlb,KAAKypc,eAE9D,IAAA/ja,EAAQolL,EAAOplL,OAASolL,EAAOktB,QAAUltB,EAAOktB,OAAO,IAAM,KAC7D61O,GAAgB,EAQhB,GAPCnob,IAEOA,EADN1lC,KAAK+rd,OAAO,GAAG99Y,MAAM,IAAMjuE,KAAK+rd,OAAO,GAAG99Y,MAAM,GAC1CjuE,KAAK+rd,OAAO,GAAGtpd,GAAG,EAAG,GAAGD,GAAGxC,KAAK+rd,OAAO,GAAG99Y,MAAM,GAAK,EAAGjuE,KAAK+rd,OAAO,GAAG99Y,MAAM,GAAK,GAElFjuE,KAAK+rd,OAAO,GAAGvpd,GAAG,EAAG,IAG7B,UAAWsoN,GAAU,WAAYA,EAAQ,CACvC,IAAAgjQ,GAASpob,EAAMuoC,MAAM,GAAK,IAAMvoC,EAAMuoC,MAAM,GAAK,GACjD6/Y,EAAQ9td,KAAK+rd,OAAO,GAAG7sd,KAAK5F,SAC9Bg6a,EAAKy6C,UAAU/td,KAAK+rd,OAAO,GAAG7sd,MACzBc,KAAA+rd,OAAO,GAAG7sd,KAAOo0a,EAAK2mC,YAAY1hW,EAAK4oT,SAAS2sD,KAElD9td,KAAA+rd,OAAO,GAAK3wD,EAAQp7Z,KAAK+rd,OAAO,GAAG7sd,KAAM,CAACwmC,EAAMuoC,MAAM,GAAK,EAAGvoC,EAAMuoC,MAAM,GAAK,IACpFjuE,KAAKwtd,SAASxtd,KAAK+rd,OAAO,GAAIrmb,GACzB1lC,KAAAiuE,MAAQvoC,EAAMuoC,MAAMnwE,QAEzB,IADA,IAAImwE,EAAQjuE,KAAKiuE,MACRp1E,EAAI,EAAGA,EAAI,IAAKA,EACnBmH,KAAK+rd,OAAO,GAAGzsd,KAAOU,KAAK+rd,OAAOlzd,GAAGqG,KAAK5F,SAC5Cg6a,EAAKy6C,UAAU/td,KAAK+rd,OAAOlzd,GAAGqG,MACzBc,KAAA+rd,OAAOlzd,GAAGqG,KAAOo0a,EAAK2mC,YAAYj6c,KAAK+rd,OAAO,GAAGzsd,OAExDU,KAAK+rd,OAAOlzd,GAAKuia,EAAQp7Z,KAAK+rd,OAAOlzd,GAAGqG,KAAM,CAAC+uE,EAAM,GAAK,EAAGA,EAAM,GAAK,IAE1E,GAAI68I,EAAOktB,OAAQ,CACjB,IAAIA,EAASltB,EAAOktB,OACpB,IAAKh+O,MAAMiF,QAAQ+4O,IAA6B,IAAlBA,EAAO1+O,OAC7B,MAAA,IAAIY,MAAM,2CAElB,IAAKrB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,IAAAy4G,EAAQ0mI,EAAOn/O,GACnB,IAAK0I,EAAI,EAAGA,EAAI,IAAKA,EACnB,GAAI+vG,EAAMrjC,MAAM1sE,KAAO0sE,EAAM1sE,GACrB,MAAA,IAAIrH,MAAM,2CAGpB8F,KAAKwtd,SAASxtd,KAAK+rd,OAAOlzd,GAAIy4G,GAChC,MAAA,GACSw5G,EAAO9kK,MAAO,CACvB,IAAIA,EAAQ8kK,EAAO9kK,MACnB,IAAKhsD,MAAMiF,QAAQ+mD,IAA2B,IAAjBA,EAAM1sD,OAC3B,MAAA,IAAIY,MAAM,6BAElB,IAAKrB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,IAAA6iD,EAAOsK,EAAMntD,GAIjB,IAHImB,MAAMiF,QAAQy8C,IAASA,EAAKpiD,UAC9BoiD,EAAO0/W,EAAQ1/W,IAEbA,EAAKuyB,MAAM,KAAOA,EAAMp1E,GACpB,MAAA,IAAIqB,MAAM,mCAElB,IAAI6iL,EAAQq+O,EAAQ1/W,EAAKx8C,KAAM+uE,GAC/B8uG,EAAMw0Q,OAAO14b,GAAK6iD,EAAK61Y,OAAO,GACxBx0Q,EAAAw0Q,OAAW,EAAJ14b,GAAS,EACtBmH,KAAKwtd,SAASxtd,KAAK+rd,OAAOlzd,GAAIkkL,GAChC,KACK,CACL,IAAKlkL,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,IAAA6B,EAAS,CAAC,EAAG,GACjBA,EAAO7B,GAAK,EACPmH,KAAA+rd,OAAOlzd,GAAKuia,EAAQp7Z,KAAK+rd,OAAOlzd,GAAGqG,KAAM,CAAC+uE,EAAM,GAAK,EAAGA,EAAM,GAAK,GAAIvzE,EAAQ,GAEtFsF,KAAK+rd,OAAO,GAAGhnd,IAAI,EAAG,EAAG,GACzB,IAAA,IAASxD,EAAI,EAAGA,EAAI0sE,EAAM,KAAM1sE,EAC9BvB,KAAK+rd,OAAO,GAAGhnd,IAAIxD,EAAI,EAAG,EAAGA,GAI/B,IAFAvB,KAAK+rd,OAAO,GAAGhnd,IAAIkpE,EAAM,GAAK,EAAG,EAAGA,EAAM,GAAK,GAC/CjuE,KAAK+rd,OAAO,GAAGhnd,IAAI,EAAG,EAAG,GACpBxD,EAAI,EAAGA,EAAI0sE,EAAM,KAAM1sE,EAC1BvB,KAAK+rd,OAAO,GAAGhnd,IAAI,EAAGxD,EAAI,EAAGA,GAE/BvB,KAAK+rd,OAAO,GAAGhnd,IAAI,EAAGkpE,EAAM,GAAK,EAAGA,EAAM,GAAK,GAEjD,IAAIxoC,EAASzlC,KAAK+rd,OACdiC,EAAU5yD,EAAQkY,EAAK2mC,YAA6B,EAAjBx0a,EAAO,GAAGnmC,KAAW,GAAI,CAAC,EAAG2uE,EAAM,GAAK,EAAGA,EAAM,GAAK,EAAG,IAChG,IAAKp1E,EAAI,EAAGA,EAAI,IAAKA,EACnB88J,EAASq4T,EAAQrkN,KAAK9wQ,GAAI4sC,EAAO5sC,GAAI,UAEnC,IAAA+uc,EAAUxsC,EAAQkY,EAAK2mC,YAA6B,EAAjBx0a,EAAO,GAAGnmC,MAAW,CAAC2uE,EAAM,GAAK,EAAGA,EAAM,GAAK,EAAG,IACpF,IAAAp1E,EAAI,EAAGA,EAAIo1E,EAAM,GAAK,IAAKp1E,EACzB,IAAA0I,EAAI,EAAGA,EAAI0sE,EAAM,GAAK,IAAK1sE,EAAG,CACjC,IAAI0sd,EAAOD,EAAQ7pd,IAAI,EAAGtL,EAAG0I,EAAG,GAC5B2sd,EAAOF,EAAQ7pd,IAAI,EAAGtL,EAAG0I,EAAG,GAC5B4sd,EAAOH,EAAQ7pd,IAAI,EAAGtL,EAAG0I,EAAG,GAC5B6sd,EAAOJ,EAAQ7pd,IAAI,EAAGtL,EAAG0I,EAAG,GAC5B8sd,EAAOL,EAAQ7pd,IAAI,EAAGtL,EAAG0I,EAAG,GAC5B+sd,EAAON,EAAQ7pd,IAAI,EAAGtL,EAAG0I,EAAG,GAC5B8wC,EAAK87a,EAAOG,EAAOF,EAAOC,EAC1B/7a,EAAK+7a,EAAOH,EAAOI,EAAOL,EAC1BM,EAAKN,EAAOG,EAAOF,EAAOC,EAC1BK,EAAKhzd,KAAKmjB,KAAK0zB,EAAKA,EAAKC,EAAKA,EAAKi8a,EAAKA,GACxCC,EAAK,MACPA,EAAKhzd,KAAK8J,IAAI9J,KAAKK,IAAIw2C,GAAK72C,KAAKK,IAAIy2C,GAAK92C,KAAKK,IAAI0yd,KAC1C,MACFA,EAAA,EACLj8a,EAAKD,EAAK,EACLm8a,EAAA,GAELA,EAAK,EAAIA,EAGNA,EAAA,EAAIhzd,KAAKmjB,KAAK6vc,GAErB5mB,EAAQ7ic,IAAIlM,EAAG0I,EAAG,EAAG8wC,EAAKm8a,GAC1B5mB,EAAQ7ic,IAAIlM,EAAG0I,EAAG,EAAG+wC,EAAKk8a,GAC1B5mB,EAAQ7ic,IAAIlM,EAAG0I,EAAG,EAAGgtd,EAAKC,GAGzBl7C,EAAAgB,KAAK05C,EAAQ9ud,MAClB,IAAIuD,EAAK,CAAClH,IAAUA,IAAUA,KAC1BiH,EAAK,EAAC,KAAW,KAAW,KAC5Bisd,EAAelzd,IACfmzd,GAAe,IACfpzc,GAAS2yD,EAAM,GAAK,IAAMA,EAAM,GAAK,GAAK,EAC1C0gZ,EAASr7C,EAAK2mC,YAAY1hW,EAAK4oT,SAAS,GAAK7lZ,IAC7Cszc,EAAO,EACPzvB,EAAc,EACb,IAAAtmc,EAAI,EAAGA,EAAIo1E,EAAM,GAAK,IAAKp1E,EAC9Bg2d,EACO,IAAAttd,EAAI,EAAGA,EAAI0sE,EAAM,GAAK,IAAK1sE,EAAG,CACjC,IAAA,IAASmuB,EAAK,EAAGA,EAAK,IAAKA,EACzB,IAAA,IAASC,EAAK,EAAGA,EAAK,IAAKA,EACzB,IAAA,IAAS7N,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAA3G,EAAInb,KAAK+rd,OAAOjqc,GAAG3d,IAAI,EAAItL,EAAI62B,EAAI,EAAInuB,EAAIouB,GAC/C,GAAI7zB,MAAMqf,KAAOpV,SAASoV,GACf,SAAA0zc,EAKjB,IAAK/sc,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAIkV,EAAIn+B,EAAI4wd,EAAK3nc,GAAG,GAChBnmB,EAAI4F,EAAIkod,EAAK3nc,GAAG,GAChBwhC,EAAKtjD,KAAK+rd,OAAO,GAAG5nd,IAAI6yB,EAAI,EAAGr7B,EAAI,GACnC6kK,EAAKxgK,KAAK+rd,OAAO,GAAG5nd,IAAI6yB,EAAI,EAAGr7B,EAAI,GACnCwf,EAAAnb,KAAK+rd,OAAO,GAAG5nd,IAAI6yB,EAAI,EAAGr7B,EAAI,GAClC02C,EAAKu1Z,EAAQzjc,IAAI6yB,EAAI,EAAGr7B,EAAI,EAAG,GAC/B22C,EAAKs1Z,EAAQzjc,IAAI6yB,EAAI,EAAGr7B,EAAI,EAAG,GAC/B4yd,EAAK3mB,EAAQzjc,IAAI6yB,EAAI,EAAGr7B,EAAI,EAAG,GAC3BmvN,EAAOkvO,YACT80B,EAAKhkQ,EAAOkvO,UAAU71b,IAAI6yB,EAAGr7B,IAE/B,IAAImzd,EAAKhkQ,EAAOkvO,UAAYlvO,EAAOkvO,UAAU71b,IAAI6yB,EAAGr7B,GAAKwf,EAAInb,KAAK4pd,aAAa,GAC/E+E,EAAOC,KAAU53b,EACjB23b,EAAOC,KAAUjzd,EACjBgzd,EAAOC,KAAUtra,EACjBqra,EAAOC,KAAUpuT,EACjBmuT,EAAOC,KAAUzzc,EACjBwzc,EAAOC,KAAU,EACjBD,EAAOC,KAAUE,EACjBH,EAAOC,KAAUv8a,EACjBs8a,EAAOC,KAAUt8a,EACjBq8a,EAAOC,KAAUL,EACd9rd,EAAA,GAAKjH,KAAKoH,IAAIH,EAAG,GAAI6gD,EAAKtjD,KAAK4pd,aAAa,IAC5Cnnd,EAAA,GAAKjH,KAAKoH,IAAIH,EAAG,GAAI+9J,EAAKxgK,KAAK4pd,aAAa,IAC5Cnnd,EAAA,GAAKjH,KAAKoH,IAAIH,EAAG,GAAI0Y,EAAInb,KAAK4pd,aAAa,IAC/B6E,EAAAjzd,KAAKoH,IAAI6rd,EAAcK,GACnCtsd,EAAA,GAAKhH,KAAK8J,IAAI9C,EAAG,GAAI8gD,EAAKtjD,KAAK4pd,aAAa,IAC5Cpnd,EAAA,GAAKhH,KAAK8J,IAAI9C,EAAG,GAAIg+J,EAAKxgK,KAAK4pd,aAAa,IAC5Cpnd,EAAA,GAAKhH,KAAK8J,IAAI9C,EAAG,GAAI2Y,EAAInb,KAAK4pd,aAAa,IAC/B8E,EAAAlzd,KAAK8J,IAAIopd,EAAcI,GACvB3vB,GAAA,GAQvB,IAJIr0O,EAAO++P,kBACM4E,GAAC3jQ,EAAO++P,gBAAgB,GACxB6E,GAAC5jQ,EAAO++P,gBAAgB,IAEpChxd,EAAI,EAAGA,EAAI+1d,EAAM/1d,GAAK,GACzB81d,EAAO91d,IAAM81d,EAAO91d,GAAK41d,IAAiBC,EAAeD,GAE3Dzud,KAAKyqd,aAAetrB,EACpBn/b,KAAKgqd,kBAAkBr/b,OAAOgkc,EAAOxnd,SAAS,EAAGynd,IACjDt7C,EAAKy6C,UAAUY,GACVr7C,EAAAgB,KAAKszB,EAAQ1oc,MACbc,KAAA2wG,OAAS,CAACluG,EAAID,GACnBxC,KAAKg6b,UAAYlvO,EAAOkvO,WAAah6b,KAAK+rd,OAAO,GAC7C/rd,KAAK6pd,gBAAgB,KAAO4E,GAAgBzud,KAAK6pd,gBAAgB,KAAO6E,IAC1Db,GAAA,GAEb7td,KAAA6pd,gBAAkB,CAAC4E,EAAcC,GAExC,GAAI,WAAY5jQ,EAAQ,CACtB,IAAI6qN,EAAS7qN,EAAO6qN,OAMpB,IAFEA,EAHG37a,MAAMiF,QAAQ02a,EAAO,IAGfA,EAAO73a,QAFP,CAAC,GAAI,GAAI63a,GAIf98a,EAAI,EAAGA,EAAI,IAAKA,EACnB88a,EAAO98a,GAAK88a,EAAO98a,GAAGiF,QACtB63a,EAAO98a,GAAG2lB,MAAK,SAAS/Z,EAAG9F,GACzB,OAAO8F,EAAI9F,CAAA,IAGf,IAAK9F,EAAI,EAAGA,EAAI,IAAKA,EACd,IAAA0I,EAAI,EAAGA,EAAIo0a,EAAO98a,GAAGS,SAAUiI,EAClCo0a,EAAO98a,GAAG0I,IAAMvB,KAAK4pd,aAAa/wd,GAGtCk2d,EACE,IAAKl2d,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAClB,GAAA88a,EAAO98a,GAAGS,SAAW0G,KAAKgrd,cAAcnyd,GAAGS,OAAQ,CACrCu0d,GAAA,EAChB,MAEG,IAAAtsd,EAAI,EAAGA,EAAIo0a,EAAO98a,GAAGS,SAAUiI,EAC9B,GAAAo0a,EAAO98a,GAAG0I,KAAOvB,KAAKgrd,cAAcnyd,GAAG0I,GAAI,CAC7Bssd,GAAA,EACV,MAAAkB,GAId/ud,KAAKgrd,cAAgBr1C,EAEvB,GAAIk4C,EAAe,CACjBpob,EAASzlC,KAAK+rd,OACd99Y,EAAQjuE,KAAKiuE,MAEb,IADA,IAAI+gZ,EAAe,GACV5nM,EAAM,EAAGA,EAAM,IAAKA,EAAK,CAC5B,IAAA6nM,GAAejvd,KAAKgrd,cAAc5jM,GAClC8nM,GAAe,GACfC,GAAc,GACd31d,GAAQ,CAAC,EAAG,EAAG,GACnB,IAAKX,EAAI,EAAGA,EAAIo2d,GAAa31d,SAAUT,EAAG,CACpC,IAAAu2d,GAAQ5F,EAAYxpd,KAAK+rd,OAAO3kM,GAAM6nM,GAAap2d,IACvDq2d,GAAav1d,KAAKq1d,EAAa11d,OAAS,EAAI,GAC9B6lc,EAAA,EACdkwB,EACE,IAAK9td,EAAI,EAAGA,EAAI6td,GAAMxgb,MAAMt1C,SAAUiI,EAAG,CACnC,IAAAzG,GAAIs0d,GAAMxgb,MAAMrtC,GACpB,IAAKugB,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAIrS,GAAI2/c,GAAM/xM,UAAUviR,GAAEgnB,IACtBpd,GAAI+K,GAAE,GACN49c,GAAqB,EAAhB7xd,KAAKO,MAAM2I,IAChB2iC,GAAK3iC,GAAI2od,GACT1od,GAAI8K,GAAE,GACN69c,GAAqB,EAAhB9xd,KAAKO,MAAM4I,IAChB2iC,GAAK3iC,GAAI2od,GACT9/E,IAAO,EACX8hF,EACE,IAAA,IAASl+Z,GAAO,EAAGA,GAAO,IAAKA,GAAM,CACnC53D,GAAM43D,IAAQ,EACV,IAAAm+Z,IAAMnoM,EAAMh2N,GAAO,GAAK,EAC5B,IAAK1hC,EAAK,EAAGA,EAAK,IAAKA,EAAI,CACrB,IAAAr0B,GAAIq0B,EAAK2X,GAAK,EAAIA,GAEtB,IADIrQ,EAA2C,EAA3Cx7B,KAAKoH,IAAIpH,KAAK8J,IAAI+nd,GAAK39b,EAAI,GAAIu+C,EAAM,IACpCt+C,EAAK,EAAGA,EAAK,IAAKA,EAAI,CACrB,IAAAtQ,GAAIsQ,EAAK2X,GAAK,EAAIA,GAOtB,GANI3rC,EAA2C,EAA3CH,KAAKoH,IAAIpH,KAAK8J,IAAIgod,GAAK39b,EAAI,GAAIs+C,EAAM,IAEvC9yD,EADEi2C,GAAO,EACLpxD,KAAK+rd,OAAOwD,IAAIprd,IAAI6yB,EAAGr7B,IAEtBqE,KAAKg6b,UAAU71b,IAAI6yB,EAAGr7B,GAAKqE,KAAK6pd,gBAAgB,KAAO7pd,KAAK6pd,gBAAgB,GAAK7pd,KAAK6pd,gBAAgB,KAExG9jd,SAASoV,IAAMrf,MAAMqf,GAAI,CACrBqyX,IAAA,EACD,MAAA8hF,EAER,IAAI9ic,GAAInxB,GAAIgkB,GACN7lB,GAAA43D,KAAS5kC,GAAIrR,IAI3B,GAAKqyX,GASE,CACL,GAAI1rX,EAAI,EAAG,CACT,IAAA,IAAS6B,GAAI,EAAGA,GAAI,IAAKA,GACvBqrc,EAAarlb,MAEAw1Z,GAAA,EAER,SAAAkwB,EAfIL,EAAAr1d,KACXH,GAAM,GACNA,GAAM,GACNiW,GAAE,GACFA,GAAE,GACFjW,GAAM,IAEO2lc,GAAA,GAYvBgwB,GAAYx1d,KAAKwlc,GAEdn/b,KAAAuqd,gBAAgBnjM,GAAO8nM,GACvBlvd,KAAAwqd,eAAepjM,GAAO+nM,GAE7B,IAAIK,GAAcl8C,EAAK2mC,YAAY+U,EAAa11d,QAChD,IAAKT,EAAI,EAAGA,EAAIm2d,EAAa11d,SAAUT,EACzB22d,GAAA32d,GAAKm2d,EAAan2d,GAE3BmH,KAAAqqd,eAAe1/b,OAAO6kc,IAC3Bl8C,EAAKy6C,UAAUyB,IAEnB,EACA5rd,EAAMyrb,QAAU,WACdrvb,KAAK8pd,QAAQz6B,UACbrvb,KAAKiqd,KAAK56B,UACVrvb,KAAKgqd,kBAAkB36B,UACvBrvb,KAAKkqd,UAAU76B,UACfrvb,KAAKqqd,eAAeh7B,UACpBrvb,KAAKsqd,YAAYj7B,UACjBrvb,KAAKmqd,eAAe96B,UACpBrvb,KAAKoqd,mBAAmB/6B,UACxBrvb,KAAK2qd,eAAet7B,UACpBrvb,KAAK4qd,YAAYv7B,UACjB,IAAA,IAASx2b,EAAI,EAAGA,EAAI,IAAKA,EACvBy6a,EAAKy6C,UAAU/td,KAAK+rd,OAAOlzd,GAAGqG,KAElC,EACM0E,EAAA+lc,UAAY,SAASjkb,GACrB,IAAA7sB,EAcA88a,EAbJ,IAAKjwZ,EAIH,OAHA1lB,KAAK8qd,eAAiB,CAAC,EAAG,EAAG,GAC7B9qd,KAAKyvd,cAAgB,CAACn0d,IAAKA,IAAKA,UAChC0E,KAAKsrd,eAAiB,EAAK,GAAA,GAAM,IAGnC,IAAKzyd,EAAI,EAAGA,EAAI,IAAKA,EACfmH,KAAKord,gBAAgBvyd,GACvBmH,KAAKsrd,eAAezyd,GAAK6sB,EAAUq1D,MAAMliF,GAEpCmH,KAAAsrd,eAAezyd,IAAK,EAS7B,IAJE88a,EADE31a,KAAK0wc,WACEhrb,EAAUm4a,eAEVn4a,EAAUvQ,SAEhBtc,EAAI,EAAGA,EAAI,IAAKA,EACnB88a,EAAO98a,IAAMmH,KAAK4pd,aAAa/wd,GAEjC,GAAMmH,KAAKurd,cAAc,IAAM51C,EAAO,KAAO31a,KAAKwrd,aAAa,IAASxrd,KAAKurd,cAAc,IAAM51C,EAAO,KAAO31a,KAAKwrd,aAAa,IAASxrd,KAAKurd,cAAc,IAAM51C,EAAO,KAAO31a,KAAKwrd,aAAa,GAAnM,CAMA,IAHA,IAAIrsB,EAAc,EACdlxX,EAAQjuE,KAAKiuE,MACbyhZ,EAAgBp8C,EAAK2mC,YAAY,GAAKhsY,EAAM,GAAKA,EAAM,IAClD7yE,EAAI,EAAGA,EAAI,IAAKA,EACvB,GAAK4E,KAAKurd,cAAcnwd,GAAxB,CAKA4E,KAAKwrd,aAAapwd,GAAKu6a,EAAOv6a,GAC1B,IAAAm2B,GAAKn2B,EAAI,GAAK,EACdijB,GAAKjjB,EAAI,GAAK,EACd+f,EAAInb,KAAK+rd,OAAO3wd,GAChBs3B,EAAI1yB,KAAK+rd,OAAOx6b,GAChBnT,EAAIpe,KAAK+rd,OAAO1tc,GAChB+wc,EAAQ5F,EAAYruc,EAAGw6Z,EAAOv6a,IAC9BkxC,EAAQ8ib,EAAMxgb,MACdyuO,EAAY+xM,EAAM/xM,UAEtB,IADKr9Q,KAAA6qd,gBAAgBzvd,GAAK+jc,EACrBtmc,EAAI,EAAGA,EAAIyzC,EAAMhzC,SAAUT,EAE9B,IADI,IAAAiC,EAAIwxC,EAAMzzC,GACL0I,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAIkO,EAAI4tQ,EAAUviR,EAAEyG,IAChBmD,GAAK+K,EAAE,GACP49c,EAAS,EAAJ3od,EACLird,EAAkC,EAA7Bn0d,KAAKoH,IAAIyqd,EAAK,EAAGp/Y,EAAM,IAC5B5mC,EAAK3iC,EAAI2od,EACTuC,EAAK,EAAIvob,EACT1iC,GAAK8K,EAAE,GACP69c,EAAS,EAAJ3od,EACLkrd,EAAkC,EAA7Br0d,KAAKoH,IAAI0qd,EAAK,EAAGr/Y,EAAM,IAC5B3mC,EAAK3iC,EAAI2od,EACTwC,EAAK,EAAIxob,EACTyob,EAAMH,EAAKE,EACXE,EAAMJ,EAAKtob,EACX2iY,EAAM5iY,EAAKyob,EACX5lD,EAAM7iY,EAAKC,EACX2ob,EAAKF,EAAMr9b,EAAEvuB,IAAIkpd,EAAIC,GAAM0C,EAAMt9b,EAAEvuB,IAAIkpd,EAAIwC,GAAM5lD,EAAMv3Y,EAAEvuB,IAAIwrd,EAAIrC,GAAMpjD,EAAMx3Y,EAAEvuB,IAAIwrd,EAAIE,GACvFK,EAAKH,EAAM3xc,EAAEja,IAAIkpd,EAAIC,GAAM0C,EAAM5xc,EAAEja,IAAIkpd,EAAIwC,GAAM5lD,EAAM7rZ,EAAEja,IAAIwrd,EAAIrC,GAAMpjD,EAAM9rZ,EAAEja,IAAIwrd,EAAIE,GAC3F,GAAI/zd,MAAMm0d,IAAOn0d,MAAMo0d,GAAK,CACtB3ud,IACa49b,GAAA,GAEjB,MAEYuwB,EAAA,EAAIvwB,EAAc,GAAK8wB,EACvBP,EAAA,EAAIvwB,EAAc,GAAK+wB,EACtB/wB,GAAA,EAGnBn/b,KAAK8qd,eAAe1vd,GAAK+jc,EAAcn/b,KAAK6qd,gBAAgBzvd,QA7CrD4E,KAAAwrd,aAAapwd,GAAKE,IAClB0E,KAAA8qd,eAAe1vd,GAAK,EA8C7B4E,KAAK2qd,eAAehgc,OAAO+kc,EAAcvod,SAAS,EAAG,EAAIg4b,IACzD7rB,EAAKy6C,UAAU2B,GACjB,GAuFJ,KAAA,SAEWn0c,EAASg/Y,EAA0BC,GAEtC,IAAAY,EAAUZ,EAAqB,MAC/B9zJ,EAAM8zJ,EAAqB,MAC3B8Y,EAAO9Y,EAAqB,MAChCj/Y,EAAQhf,QAyeR,SAAyBqha,GACnB,GAAAl+Z,UAAUpG,QAAU,EAChB,MAAA,IAAIY,MAAM,6DAKlB,GAHKi2d,GAzeP,SAA6BvyD,GACbuyD,EAAA,CACZvyD,EAAIy+B,OACJz+B,EAAIwyD,sBACJxyD,EAAIyyD,sBACJzyD,EAAIyyD,uBAEQC,EAAA,CACZ1yD,EAAI+jC,QACJ/jC,EAAIy+B,OACJz+B,EAAI2yD,uBACJ3yD,EAAIwyD,sBACJxyD,EAAIyyD,sBACJzyD,EAAIu+B,sBAEMq0B,EAAA,CACV5yD,EAAIynC,OACJznC,EAAI6yD,cACJ7yD,EAAI8yD,iBAwdJC,CAAoB/yD,GAEM,iBAAjBl+Z,UAAU,GACnB,OAAOkxd,EAAmBhzD,EAAKl+Z,UAAU,GAAIA,UAAU,GAAIA,UAAU,IAAMk+Z,EAAIklC,KAAMpjc,UAAU,IAAMk+Z,EAAIygC,eAE3G,GAAIrkc,MAAMiF,QAAQS,UAAU,IACnB,OAAAkxd,EAAmBhzD,EAAuB,EAAlBl+Z,UAAU,GAAG,GAA0B,EAAlBA,UAAU,GAAG,GAAQA,UAAU,IAAMk+Z,EAAIklC,KAAMpjc,UAAU,IAAMk+Z,EAAIygC,eAEzH,GAA4B,iBAAjB3+b,UAAU,GAAiB,CAChC,IAAAd,EAAMc,UAAU,GAChBmxd,EAAaC,EAAiBlyd,GAAOA,EAAMA,EAAI05L,IACnD,GAAIu4R,EACF,OA5FN,SAA0BjzD,EAAKizD,EAAYvrZ,EAAO04B,EAAQzlE,EAAQv5B,GAC5D,IAAAg1I,EAAMytT,EAAY7jC,GAEtB,OADAA,EAAImzD,WAAWnzD,EAAI2jC,WAAY,EAAGhpa,EAAQA,EAAQv5B,EAAM6xd,GACjD,IAAIG,EAAUpzD,EAAK5pR,EAAK1uE,EAAO04B,EAAQzlE,EAAQv5B,GAyF3Ciyd,CAAiBrzD,EAAKizD,EAAwB,EAAZjyd,EAAI0mE,MAAwB,EAAb1mE,EAAIo/F,OAAYt+F,UAAU,IAAMk+Z,EAAIklC,KAAMpjc,UAAU,IAAMk+Z,EAAIygC,kBAC7Gz/b,EAAIqvE,OAASrvE,EAAIM,MAAQN,EAAI2yb,OAC/B,OAzFJ,SAAmB3zB,EAAKr+Z,GAC/B,IAAIyuE,EAAQzuE,EAAMyuE,MACdC,EAAQ1uE,EAAM0uE,MAAMnwE,QACpBimY,EAAU65B,EAAIiiC,aAAajiC,EAAIszD,kBACnC,GAAIjjZ,EAAM,GAAK,GAAKA,EAAM,GAAK81T,GAAW91T,EAAM,GAAK,GAAKA,EAAM,GAAK81T,EAC7D,MAAA,IAAI7pY,MAAM,sCAElB,IAAIi3d,EAAS74B,EAASrqX,EAAO1uE,EAAMgyb,OAAOzzb,SACtCkB,EAAO,EACG,YAAVgvE,EACFhvE,EAAO4+Z,EAAII,MACQ,YAAVhwV,GACThvE,EAAO4+Z,EAAII,MACFmzD,GAAA,EACDnjZ,EAAA,WACW,UAAVA,EACThvE,EAAO4+Z,EAAIygC,eAEXr/b,EAAO4+Z,EAAIygC,cACF8yB,GAAA,EACDnjZ,EAAA,SAEV,IAwBIvzE,EAAQ22d,EAxBR74b,EAAS,EACT,GAAiB,IAAjB01C,EAAM30E,OACRi/B,EAASqlY,EAAIyzD,UACbpjZ,EAAQ,CAACA,EAAM,GAAIA,EAAM,GAAI,GAC7B1uE,EAAQ67Z,EAAQ77Z,EAAML,KAAM+uE,EAAO,CAAC1uE,EAAMgyb,OAAO,GAAIhyb,EAAMgyb,OAAO,GAAI,GAAIhyb,EAAM7E,YAAM,IAC5D,IAAjBuzE,EAAM30E,OAaT,MAAA,IAAIY,MAAM,2CAZZ,GAAa,IAAb+zE,EAAM,GACR11C,EAASqlY,EAAI0zD,WACJ,GAAa,IAAbrjZ,EAAM,GACf11C,EAASqlY,EAAI2zD,qBACJ,GAAa,IAAbtjZ,EAAM,GACf11C,EAASqlY,EAAI4zD,QACJ,IAAa,IAAbvjZ,EAAM,GAGT,MAAA,IAAI/zE,MAAM,gDAFhBq+B,EAASqlY,EAAIklC,MAOb9jc,IAAS4+Z,EAAII,OAAUJ,EAAIy6B,aAAa,uBAC1Cr5b,EAAO4+Z,EAAIygC,cACF8yB,GAAA,GAGX,IAAI7xd,EAAOC,EAAMD,KACjB,GAAK6xd,EAWH12d,EAD0B,IAAjB8E,EAAM7E,QAAgB6E,EAAML,KAAK5F,SAAWgG,EAC5CC,EAAML,KAENK,EAAML,KAAKiI,SAAS5H,EAAM7E,OAAQ6E,EAAM7E,OAAS4E,OAb/C,CACP,IAAAiyb,EAAS,CAACtjX,EAAM,GAAIA,EAAM,GAAKA,EAAM,GAAI,GACjCmjZ,EAAA99C,EAAK4kB,OAAO54b,EAAM0uE,GAC9B,IAAIyjZ,EAAYr2D,EAAQg2D,EAAWnjZ,EAAOsjX,EAAQ,GACnC,YAAVvjX,GAAiC,YAAVA,GAAwBhvE,IAAS4+Z,EAAIygC,cAG3D33L,EAAAwvH,OAAOu7F,EAAWlyd,GAFtBmyd,EAAoBD,EAAWlyd,GAIxB9E,EAAA22d,EAAUjqd,SAAS,EAAG7H,EAAI,CAMjC,IAAA00I,EAAMytT,EAAY7jC,GAKf,OAJPA,EAAImzD,WAAWnzD,EAAI2jC,WAAY,EAAGhpa,EAAQ01C,EAAM,GAAIA,EAAM,GAAI,EAAG11C,EAAQv5B,EAAMvE,GAC1E02d,GACH79C,EAAKgB,KAAK88C,GAEL,IAAIJ,EAAUpzD,EAAK5pR,EAAK/lE,EAAM,GAAIA,EAAM,GAAI11C,EAAQv5B,GAqBhD2yd,CAAmB/zD,EAAKh/Z,GAG7B,MAAA,IAAI1E,MAAM,8DA9flB,IAAIi2d,EAAc,KACdG,EAAc,KACdE,EAAY,KAsBhB,SAASM,EAAiBlyd,GACxB,MAAO,oBAAsBgzd,mBAAqBhzd,aAAegzd,mBAAqB,oBAAsBC,kBAAoBjzd,aAAeizd,kBAAoB,oBAAsBC,kBAAoBlzd,aAAekzd,kBAAoB,oBAAsBC,WAAanzd,aAAemzd,UAEhS,IAAAL,EAAsB,SAASvrd,EAAK6rd,GAClCtrN,EAAAurN,KAAK9rd,EAAK6rd,EAAK,IACrB,EACS,SAAAE,EAAel+U,EAAKxnH,EAAGpO,GAC9B,IAAIw/Y,EAAM5pR,EAAIq4S,GACVtoD,EAAU65B,EAAIiiC,aAAajiC,EAAIszD,kBACnC,GAAI1kc,EAAI,GAAKA,EAAIu3W,GAAW3lX,EAAI,GAAKA,EAAI2lX,EACjC,MAAA,IAAI7pY,MAAM,sCAMX,OAJH85I,EAAAkuT,OAAS,CAAC11a,EAAGpO,GACjB41H,EAAIjkI,OACJ6tZ,EAAImzD,WAAWnzD,EAAI2jC,WAAY,EAAGvtT,EAAIz7G,OAAQ/L,EAAGpO,EAAG,EAAG41H,EAAIz7G,OAAQy7G,EAAIh1I,KAAM,MACzEg1I,EAAAm+U,WAAa,CAAC,GACXn+U,EAET,SAASg9U,EAAUpzD,EAAKE,EAAQx4V,EAAO04B,EAAQzlE,EAAQv5B,GACrDgB,KAAKqsb,GAAKzuB,EACV59Z,KAAK89Z,OAASA,EACd99Z,KAAKu4B,OAASA,EACdv4B,KAAKhB,KAAOA,EACPgB,KAAAkic,OAAS,CAAC58X,EAAO04B,GACjBh+F,KAAAmyd,WAAa,CAAC,GACnBnyd,KAAKoyd,WAAax0D,EAAI+jC,QACtB3hc,KAAKqyd,WAAaz0D,EAAI+jC,QACtB3hc,KAAKsyd,OAAS10D,EAAI6yD,cAClBzwd,KAAKuyd,OAAS30D,EAAI6yD,cAClBzwd,KAAKwyd,cAAgB,EACrB,IAAIlqc,EAAStoB,KACTyyd,EAAa,CAACzyd,KAAKsyd,OAAQtyd,KAAKuyd,QACpCv1d,OAAO6Z,iBAAiB47c,EAAY,CAClC,CACEtud,IAAK,WACH,OAAOmkB,EAAOgqc,MAChB,EACAvtd,IAAK,SAASsZ,GACZ,OAAOiK,EAAOoqc,MAAQr0c,IAG1B,CACEla,IAAK,WACH,OAAOmkB,EAAOiqc,MAChB,EACAxtd,IAAK,SAASsZ,GACZ,OAAOiK,EAAOqqc,MAAQt0c,MAI5Bre,KAAK4yd,YAAcH,EACf,IAAA/vB,EAAc,CAAC1ic,KAAKkic,OAAO,GAAIlic,KAAKkic,OAAO,IAC/Cllc,OAAO6Z,iBAAiB6rb,EAAa,CACnC,CACEv+b,IAAK,WACI,OAAAmkB,EAAO45a,OAAO,EACvB,EACAn9b,IAAK,SAASsZ,GACZ,OAAOiK,EAAOg9C,MAAQjnD,IAG1B,CACEla,IAAK,WACI,OAAAmkB,EAAO45a,OAAO,EACvB,EACAn9b,IAAK,SAASsZ,GACZ,OAAOiK,EAAO01E,OAAS3/E,MAI7Bre,KAAK2ic,aAAeD,EAEtB,IAAI9+b,EAAQotd,EAAU9zd,UAsMb,SAAAo7b,EAASrqX,EAAOsjX,GACnB,OAAiB,IAAjBtjX,EAAM30E,OACa,IAAdi4b,EAAO,IAAYA,EAAO,KAAOtjX,EAAM,GAAKA,EAAM,IAAMsjX,EAAO,KAAOtjX,EAAM,GAEhE,IAAdsjX,EAAO,IAAYA,EAAO,KAAOtjX,EAAM,GA8FhD,SAASwzX,EAAY7jC,GACf,IAAA5pR,EAAM4pR,EAAIw8B,gBAMP,OALHx8B,EAAA0jC,YAAY1jC,EAAI2jC,WAAYvtT,GAChC4pR,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIk1D,mBAAoBl1D,EAAI+jC,SAC9D/jC,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIm1D,mBAAoBn1D,EAAI+jC,SAC9D/jC,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIo1D,eAAgBp1D,EAAI6yD,eAC1D7yD,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIq1D,eAAgBr1D,EAAI6yD,eACnDz8U,EAET,SAAS48U,EAAmBhzD,EAAKt4V,EAAO04B,EAAQzlE,EAAQv5B,GACtD,IAAIk0d,EAAiBt1D,EAAIiiC,aAAajiC,EAAIszD,kBAC1C,GAAI5rZ,EAAQ,GAAKA,EAAQ4tZ,GAAkBl1X,EAAS,GAAKA,EAASk1X,EAC1D,MAAA,IAAIh5d,MAAM,uCAElB,GAAI8E,IAAS4+Z,EAAII,QAAUJ,EAAIy6B,aAAa,qBACpC,MAAA,IAAIn+b,MAAM,wEAEd,IAAA85I,EAAMytT,EAAY7jC,GAEtB,OADIA,EAAAmzD,WAAWnzD,EAAI2jC,WAAY,EAAGhpa,EAAQ+sC,EAAO04B,EAAQ,EAAGzlE,EAAQv5B,EAAM,MACnE,IAAIgyd,EAAUpzD,EAAK5pR,EAAK1uE,EAAO04B,EAAQzlE,EAAQv5B,GA1TxDhC,OAAO6Z,iBAAiBjT,EAAO,CAC7Bs4b,UAAW,CACT/3b,IAAK,WACH,OAAOnE,KAAKqyd,UACd,EACAttd,IAAK,SAASsZ,GACZre,KAAK+P,OACL,IAAI6tZ,EAAM59Z,KAAKqsb,GAMf,GALIrsb,KAAKhB,OAAS4+Z,EAAII,OAASmyD,EAAYh2d,QAAQkkB,IAAM,IAClDu/Y,EAAIy6B,aAAa,8BACpBh6a,EAAIu/Y,EAAI+jC,UAGR2uB,EAAYn2d,QAAQkkB,GAAK,EACrB,MAAA,IAAInkB,MAAM,qCAAuCmkB,GAGzD,OADAu/Y,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIk1D,mBAAoBz0c,GACnDre,KAAKqyd,WAAah0c,IAG7B+9a,UAAW,CACTj4b,IAAK,WACH,OAAOnE,KAAKoyd,UACd,EACArtd,IAAK,SAASsZ,GACZre,KAAK+P,OACL,IAAI6tZ,EAAM59Z,KAAKqsb,GAMf,GALIrsb,KAAKhB,OAAS4+Z,EAAII,OAASmyD,EAAYh2d,QAAQkkB,IAAM,IAClDu/Y,EAAIy6B,aAAa,8BACpBh6a,EAAIu/Y,EAAI+jC,UAGR2uB,EAAYn2d,QAAQkkB,GAAK,EACrB,MAAA,IAAInkB,MAAM,qCAAuCmkB,GAGzD,OADAu/Y,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIm1D,mBAAoB10c,GACnDre,KAAKoyd,WAAa/zc,IAG7Bujb,WAAY,CACVz9b,IAAK,WACH,OAAOnE,KAAKwyd,aACd,EACAztd,IAAK,SAASlM,GACZ,IAAIs6d,EAAWnzd,KAAKwyd,cAEhB,GADJxyd,KAAKwyd,cAAiC,EAAjBh3d,KAAK8J,IAAIzM,EAAG,GAC7Bs6d,IAAanzd,KAAKwyd,cAAe,CACnC,IAAIjsd,EAAMvG,KAAKqsb,GAAGgM,aAAa,kCAC3B9xb,GACGvG,KAAAqsb,GAAG+mC,cAAcpzd,KAAKqsb,GAAGkV,WAAYh7b,EAAI8sd,2BAA4Brzd,KAAKwyd,eAGnF,OAAOxyd,KAAKwyd,gBAGhBE,MAAO,CACLvud,IAAK,WACH,OAAOnE,KAAKsyd,MACd,EACAvtd,IAAK,SAASsZ,GAEZ,GADAre,KAAK+P,OACDygd,EAAUr2d,QAAQkkB,GAAK,EACnB,MAAA,IAAInkB,MAAM,mCAAqCmkB,GAGvD,OADKre,KAAAqsb,GAAGwmC,cAAc7yd,KAAKqsb,GAAGkV,WAAYvhc,KAAKqsb,GAAG2mC,eAAgB30c,GAC3Dre,KAAKsyd,OAASj0c,IAGzBs0c,MAAO,CACLxud,IAAK,WACH,OAAOnE,KAAKuyd,MACd,EACAxtd,IAAK,SAASsZ,GAEZ,GADAre,KAAK+P,OACDygd,EAAUr2d,QAAQkkB,GAAK,EACnB,MAAA,IAAInkB,MAAM,mCAAqCmkB,GAGvD,OADKre,KAAAqsb,GAAGwmC,cAAc7yd,KAAKqsb,GAAGkV,WAAYvhc,KAAKqsb,GAAG4mC,eAAgB50c,GAC3Dre,KAAKuyd,OAASl0c,IAGzB+M,KAAM,CACJjnB,IAAK,WACH,OAAOnE,KAAK4yd,WACd,EACA7td,IAAK,SAASsZ,GAIR,GAHCrkB,MAAMiF,QAAQof,KACbA,EAAA,CAACA,EAAGA,IAEO,IAAbA,EAAE/kB,OACE,MAAA,IAAIY,MAAM,6DAElB,IAAA,IAASrB,EAAI,EAAGA,EAAI,IAAKA,EACvB,GAAI23d,EAAUr2d,QAAQkkB,EAAExlB,IAAM,EACtB,MAAA,IAAIqB,MAAM,mCAAqCmkB,GAGpDre,KAAAsyd,OAASj0c,EAAE,GACXre,KAAAuyd,OAASl0c,EAAE,GAChB,IAAIu/Y,EAAM59Z,KAAKqsb,GAIR,OAHPrsb,KAAK+P,OACL6tZ,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIo1D,eAAgBhzd,KAAKsyd,QAC3D10D,EAAIi1D,cAAcj1D,EAAI2jC,WAAY3jC,EAAIq1D,eAAgBjzd,KAAKuyd,QACpDl0c,IAGX4vD,MAAO,CACL9pE,IAAK,WACH,OAAOnE,KAAK2ic,YACd,EACA59b,IAAK,SAASL,GACZ,GAAK1K,MAAMiF,QAAQyF,IAGb,GAAa,IAAbA,EAAEpL,OACE,MAAA,IAAIY,MAAM,4CAHlBwK,EAAI,CAAK,EAAJA,EAAW,EAAJA,GAOP,OADQwtd,EAAAlyd,KAAa,EAAP0E,EAAE,GAAe,EAAPA,EAAE,IAC1B,CAAQ,EAAPA,EAAE,GAAe,EAAPA,EAAE,MAGxB4gE,MAAO,CACLnhE,IAAK,WACI,OAAAnE,KAAKkic,OAAO,EACrB,EACAn9b,IAAK,SAASynB,GAGL,OADP0lc,EAAelyd,KADfwsB,GAAQ,EACgBxsB,KAAKkic,OAAO,IAC7B11a,IAGXwxE,OAAQ,CACN75F,IAAK,WACI,OAAAnE,KAAKkic,OAAO,EACrB,EACAn9b,IAAK,SAASqZ,GAGL,OAFPA,GAAQ,EACR8zc,EAAelyd,KAAMA,KAAKkic,OAAO,GAAI9jb,GAC9BA,MAIPxa,EAAAmM,KAAO,SAASujd,GACpB,IAAI11D,EAAM59Z,KAAKqsb,GAKf,YAJa,IAATinC,GACF11D,EAAI21D,cAAc31D,EAAI41D,UAAmB,EAAPF,IAEpC11D,EAAI0jC,YAAY1jC,EAAI2jC,WAAYvhc,KAAK89Z,aACxB,IAATw1D,EACY,EAAPA,EAEF11D,EAAIiiC,aAAajiC,EAAI61D,gBAAkB71D,EAAI41D,QACpD,EACA5vd,EAAMyrb,QAAU,WACTrvb,KAAAqsb,GAAGqnC,cAAc1zd,KAAK89Z,OAC7B,EACAl6Z,EAAM44b,eAAiB,WACrBx8b,KAAK+P,OACL/P,KAAKqsb,GAAGmQ,eAAex8b,KAAKqsb,GAAGkV,YAE/B,IADI,IAAA59a,EAAInoB,KAAKoH,IAAI5C,KAAKkic,OAAO,GAAIlic,KAAKkic,OAAO,IACpCrpc,EAAI,EAAG8qB,EAAI,IAAK9qB,EAAG8qB,KAAO,EAC7B3jB,KAAKmyd,WAAWh4d,QAAQtB,GAAK,GAC1BmH,KAAAmyd,WAAWx4d,KAAKd,EAG3B,EACA+K,EAAM04b,UAAY,SAASp9b,EAAMy0d,EAAOC,EAAOC,GAC7C,IAAIj2D,EAAM59Z,KAAKqsb,GACfrsb,KAAK+P,OACD/V,MAAMiF,QAAQ00d,IACJE,EAAAD,EACJA,EAAW,EAAXD,EAAM,GACNA,EAAW,EAAXA,EAAM,KAEdA,EAAQA,GAAS,EACjBC,EAAQA,GAAS,GAEnBC,EAAYA,GAAa,EACzB,IAAIhD,EAAaC,EAAiB5xd,GAAQA,EAAOA,EAAKo5L,IACtD,GAAIu4R,EACa7wd,KAAKmyd,WAAWh4d,QAAQ05d,GAAa,GAE9Cj2D,EAAAmzD,WAAWnzD,EAAI2jC,WAAY,EAAGvhc,KAAKu4B,OAAQv4B,KAAKu4B,OAAQv4B,KAAKhB,KAAM6xd,GAClE7wd,KAAAmyd,WAAWx4d,KAAKk6d,IAEjBj2D,EAAAk2D,cAAcl2D,EAAI2jC,WAAYsyB,EAAWF,EAAOC,EAAO5zd,KAAKu4B,OAAQv4B,KAAKhB,KAAM6xd,aAE5E3xd,EAAK+uE,OAAS/uE,EAAKqyb,QAAUryb,EAAKA,MAMrC,MAAA,IAAIhF,MAAM,uCALZ,GAAAgF,EAAK+uE,MAAM30E,OAAS,GAAKq6d,EAAQz0d,EAAK+uE,MAAM,GAAKjuE,KAAKkic,OAAO,KAAO2xB,GAAaD,EAAQ10d,EAAK+uE,MAAM,GAAKjuE,KAAKkic,OAAO,KAAO2xB,GAAaF,EAAQ,GAAKC,EAAQ,EAC1J,MAAA,IAAI15d,MAAM,uDAab,SAAiB0ja,EAAK+1D,EAAOC,EAAOC,EAAWE,EAASC,EAAOC,EAAW10d,GACjF,IAAIyuE,EAAQzuE,EAAMyuE,MACdC,EAAQ1uE,EAAM0uE,MAAMnwE,QACxB,GAAImwE,EAAM30E,OAAS,GAAK20E,EAAM30E,OAAS,EAC/B,MAAA,IAAIY,MAAM,mDAEd,IAAA8E,EAAO,EAAGu5B,EAAS,EACnB44b,EAAS74B,EAASrqX,EAAO1uE,EAAMgyb,OAAOzzb,SAetC,GAdU,YAAVkwE,EACFhvE,EAAO4+Z,EAAII,MACQ,YAAVhwV,GACThvE,EAAO4+Z,EAAII,MACFmzD,GAAA,EACDnjZ,EAAA,WACW,UAAVA,EACThvE,EAAO4+Z,EAAIygC,eAEXr/b,EAAO4+Z,EAAIygC,cACF8yB,GAAA,EACDnjZ,EAAA,SAGW,IAAjBC,EAAM30E,OACRi/B,EAASqlY,EAAIyzD,UACbpjZ,EAAQ,CAACA,EAAM,GAAIA,EAAM,GAAI,GAC7B1uE,EAAQ67Z,EAAQ77Z,EAAML,KAAM+uE,EAAO,CAAC1uE,EAAMgyb,OAAO,GAAIhyb,EAAMgyb,OAAO,GAAI,GAAIhyb,EAAM7E,YAAM,IAC5D,IAAjBuzE,EAAM30E,OAcT,MAAA,IAAIY,MAAM,2CAbZ,GAAa,IAAb+zE,EAAM,GACR11C,EAASqlY,EAAI0zD,WACJ,GAAa,IAAbrjZ,EAAM,GACf11C,EAASqlY,EAAI2zD,qBACJ,GAAa,IAAbtjZ,EAAM,GACf11C,EAASqlY,EAAI4zD,QACJ,IAAa,IAAbvjZ,EAAM,GAGT,MAAA,IAAI/zE,MAAM,gDAFhBq+B,EAASqlY,EAAIklC,KAIJ70X,EAAM,GAOnB,GAHK11C,IAAWqlY,EAAIyzD,WAAa94b,IAAWqlY,EAAI0zD,OAAWyC,IAAYn2D,EAAIyzD,WAAa0C,IAAYn2D,EAAI0zD,QAC7F/4b,EAAAw7b,GAEPx7b,IAAWw7b,EACP,MAAA,IAAI75d,MAAM,2DAElB,IAAIoF,EAAOC,EAAMD,KACb40d,EAAWD,EAAU95d,QAAQ05d,GAAa,EAI1C,GAHAK,GACFD,EAAUt6d,KAAKk6d,GAEb70d,IAASg1d,GAAS7C,EACC,IAAjB5xd,EAAM7E,QAAgB6E,EAAML,KAAK5F,SAAWgG,EAC1C40d,EACFt2D,EAAImzD,WAAWnzD,EAAI2jC,WAAYsyB,EAAWE,EAAS9lZ,EAAM,GAAIA,EAAM,GAAI,EAAG8lZ,EAASC,EAAOz0d,EAAML,MAEhG0+Z,EAAIk2D,cAAcl2D,EAAI2jC,WAAYsyB,EAAWF,EAAOC,EAAO3lZ,EAAM,GAAIA,EAAM,GAAI8lZ,EAASC,EAAOz0d,EAAML,MAGnGg1d,EACEt2D,EAAAmzD,WAAWnzD,EAAI2jC,WAAYsyB,EAAWE,EAAS9lZ,EAAM,GAAIA,EAAM,GAAI,EAAG8lZ,EAASC,EAAOz0d,EAAML,KAAKiI,SAAS5H,EAAM7E,OAAQ6E,EAAM7E,OAAS4E,IAEvIs+Z,EAAAk2D,cAAcl2D,EAAI2jC,WAAYsyB,EAAWF,EAAOC,EAAO3lZ,EAAM,GAAIA,EAAM,GAAI8lZ,EAASC,EAAOz0d,EAAML,KAAKiI,SAAS5H,EAAM7E,OAAQ6E,EAAM7E,OAAS4E,QAG/I,CACD,IAAA60d,EAEYA,EADZH,IAAUp2D,EAAII,MACFsV,EAAKy2B,cAAczqc,GAEnBg0a,EAAKonC,YAAYp7c,GAEjC,IAAI80d,EAAYh5D,EAAQ+4D,EAAalmZ,EAAO,CAACA,EAAM,GAAIA,EAAM,GAAKA,EAAM,GAAI,IACxEjvE,IAAS4+Z,EAAII,OAASg2D,IAAUp2D,EAAIygC,cACtCqzB,EAAoB0C,EAAW70d,GAE3BmnQ,EAAAwvH,OAAOk+F,EAAW70d,GAEpB20d,EACFt2D,EAAImzD,WAAWnzD,EAAI2jC,WAAYsyB,EAAWE,EAAS9lZ,EAAM,GAAIA,EAAM,GAAI,EAAG8lZ,EAASC,EAAOG,EAAYhtd,SAAS,EAAG7H,IAElHs+Z,EAAIk2D,cAAcl2D,EAAI2jC,WAAYsyB,EAAWF,EAAOC,EAAO3lZ,EAAM,GAAIA,EAAM,GAAI8lZ,EAASC,EAAOG,EAAYhtd,SAAS,EAAG7H,IAErH00d,IAAUp2D,EAAII,MAChBsV,EAAK+gD,YAAYF,GAEjB7gD,EAAKghD,UAAUH,IAnGAI,CAAA32D,EAAK+1D,EAAOC,EAAOC,EAAW7zd,KAAKu4B,OAAQv4B,KAAKhB,KAAMgB,KAAKmyd,WAAYjzd,GAI5F,GA8NJ,KAAA,SAEWqc,GAoDPA,EAAQhf,QAlDC,SAAOqha,EAAKwzB,EAAU7oW,GACzB6oW,EACFA,EAASrhb,OAEL6tZ,EAAAu6B,WAAWv6B,EAAIyzB,qBAAsB,MAE3C,IAAImjC,EAAsD,EAA3C52D,EAAIiiC,aAAajiC,EAAI62D,oBACpC,GAAIlsY,EAAY,CACV,GAAAA,EAAWjvF,OAASk7d,EAChB,MAAA,IAAIt6d,MAAM,sCAElB,IAAA,IAASrB,EAAI,EAAGA,EAAI0vF,EAAWjvF,SAAUT,EAAG,CACtC,IAAA67d,EAASnsY,EAAW1vF,GACxB,GAAI67d,EAAOj6d,OAAQ,CACjB,IAAIA,EAASi6d,EAAOj6d,OAChB6E,EAAOo1d,EAAOp1d,MAAQ,EACtBN,EAAO01d,EAAO11d,MAAQ4+Z,EAAII,MAC1BsgC,IAAeo2B,EAAOp2B,WACtB/M,EAASmjC,EAAOnjC,QAAU,EAC1B72b,EAASg6d,EAAOh6d,QAAU,EAC9BD,EAAOsV,OACP6tZ,EAAI2+C,wBAAwB1jd,GAC5B+ka,EAAIghD,oBAAoB/ld,EAAGyG,EAAMN,EAAMs/b,EAAY/M,EAAQ72b,EAAM,KAC5D,CACD,GAAkB,iBAAXg6d,EACL92D,EAAAkhD,eAAejmd,EAAG67d,QAAM,GACD,IAAlBA,EAAOp7d,OAChBska,EAAIkhD,eAAejmd,EAAG67d,EAAO,SAAE,GACJ,IAAlBA,EAAOp7d,OAChBska,EAAIohD,eAAenmd,EAAG67d,EAAO,GAAIA,EAAO,SAAE,GACf,IAAlBA,EAAOp7d,OACZska,EAAAshD,eAAermd,EAAG67d,EAAO,GAAIA,EAAO,GAAIA,EAAO,QAAE,IAC1B,IAAlBA,EAAOp7d,OAGV,MAAA,IAAIY,MAAM,oCAFhB0ja,EAAIwhD,eAAevmd,EAAG67d,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAIhE92D,EAAI4+C,yBAAyB3jd,IAG1B,KAAAA,EAAI27d,IAAY37d,EACrB+ka,EAAI4+C,yBAAyB3jd,EAC/B,MAGA,IADI+ka,EAAAu6B,WAAWv6B,EAAI46B,aAAc,MACxB3/b,EAAI,EAAGA,EAAI27d,IAAY37d,EAC9B+ka,EAAI4+C,yBAAyB3jd,KAQvC,IAAA,SAEW0iB,EAASg/Y,EAA0BC,GAEtC,IAAAm6D,EAAcn6D,EAAqB,MACvC,SAASo6D,EAAYh3D,GACnB59Z,KAAKqsb,GAAKzuB,EACV59Z,KAAK60d,UAAY,KACjB70d,KAAK80d,YAAc,KACnB90d,KAAK+0d,cAAgBn3D,EAAIylC,eAEfuxB,EAAA13d,UAAU6S,KAAO,WAC3B4kd,EAAY30d,KAAKqsb,GAAIrsb,KAAK60d,UAAW70d,KAAK80d,YAC5C,EACAF,EAAY13d,UAAUytB,OAAS,SAAS49D,EAAY6oW,EAAU4jC,GAC5Dh1d,KAAK60d,UAAYzjC,EACjBpxb,KAAK80d,YAAcvsY,EACdvoF,KAAA+0d,cAAgBC,GAAgBh1d,KAAKqsb,GAAGgX,cAC/C,EACYuxB,EAAA13d,UAAUmyb,QAAU,WAChC,EACYulC,EAAA13d,UAAUiha,OAAS,WAC/B,EACAy2D,EAAY13d,UAAUioK,KAAO,SAASzgH,EAAMppC,EAAO5gB,GACjDA,EAASA,GAAU,EACnB,IAAIkja,EAAM59Z,KAAKqsb,GACXrsb,KAAK60d,UACPj3D,EAAIq3D,aAAavwa,EAAMppC,EAAOtb,KAAK+0d,cAAer6d,GAE9Ckja,EAAAK,WAAWv5W,EAAMhqD,EAAQ4gB,EAEjC,EAIAC,EAAQhf,QAHR,SAA2Bqha,GAClB,OAAA,IAAIg3D,EAAYh3D,KAM7B,KAAA,SAEWriZ,EAASg/Y,EAA0BC,GAEtC,IAAAm6D,EAAcn6D,EAAqB,MACvC,SAAS06D,EAAgBlic,EAAWgpB,EAAWv3C,EAAG9F,EAAGhD,EAAGP,GACtD4E,KAAKi2H,SAAWjjG,EAChBhzB,KAAKg8C,UAAYA,EACjBh8C,KAAKyE,EAAIA,EACTzE,KAAKrB,EAAIA,EACTqB,KAAKrE,EAAIA,EACTqE,KAAK5E,EAAIA,EAkBF,SAAA+5d,EAAUv3D,EAAKr3Z,EAAKu3Z,GAC3B99Z,KAAKqsb,GAAKzuB,EACV59Z,KAAKoic,KAAO77b,EACZvG,KAAK89Z,OAASA,EACd99Z,KAAKo1d,SAAW,GAChBp1d,KAAKq1d,cAAe,EACpBr1d,KAAK+0d,cAAgBn3D,EAAIylC,eAtBX6xB,EAAAh4d,UAAU6S,KAAO,SAAS6tZ,GACxC,OAAQ59Z,KAAKg8C,WACX,KAAK,EACH4hX,EAAIkhD,eAAe9+c,KAAKi2H,SAAUj2H,KAAKyE,GACvC,MACF,KAAK,EACHm5Z,EAAIohD,eAAeh/c,KAAKi2H,SAAUj2H,KAAKyE,EAAGzE,KAAKrB,GAC/C,MACF,KAAK,EACCi/Z,EAAAshD,eAAel/c,KAAKi2H,SAAUj2H,KAAKyE,EAAGzE,KAAKrB,EAAGqB,KAAKrE,GACvD,MACF,KAAK,EACCiia,EAAAwhD,eAAep/c,KAAKi2H,SAAUj2H,KAAKyE,EAAGzE,KAAKrB,EAAGqB,KAAKrE,EAAGqE,KAAK5E,GAGrE,EASU+5d,EAAAj4d,UAAU6S,KAAO,WACpB/P,KAAAoic,KAAKkzB,mBAAmBt1d,KAAK89Z,QAClC,IAAA,IAASjla,EAAI,EAAGA,EAAImH,KAAKo1d,SAAS97d,SAAUT,EAC1CmH,KAAKo1d,SAASv8d,GAAGkX,KAAK/P,KAAKqsb,GAE/B,EACU8oC,EAAAj4d,UAAUiha,OAAS,WACtBn+Z,KAAAoic,KAAKkzB,mBAAmB,KAC/B,EACUH,EAAAj4d,UAAUmyb,QAAU,WACvBrvb,KAAAoic,KAAKmzB,qBAAqBv1d,KAAK89Z,OACtC,EACAq3D,EAAUj4d,UAAUytB,OAAS,SAAS49D,EAAY6oW,EAAU4jC,GAKtD,GAJJh1d,KAAK+P,OACO4kd,EAAA30d,KAAKqsb,GAAI+E,EAAU7oW,GAC/BvoF,KAAKm+Z,SACLn+Z,KAAKo1d,SAAS97d,OAAS,EACnBivF,EACF,IAAA,IAAS1vF,EAAI,EAAGA,EAAI0vF,EAAWjvF,SAAUT,EAAG,CACtC,IAAA4L,EAAI8jF,EAAW1vF,GACF,iBAAN4L,EACTzE,KAAKo1d,SAASz7d,KAAK,IAAIu7d,EAAgBr8d,EAAG,EAAG4L,IACpCzK,MAAMiF,QAAQwF,IACvBzE,KAAKo1d,SAASz7d,KAAK,IAAIu7d,EAAgBr8d,EAAG4L,EAAEnL,OAAQmL,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAGzEzE,KAAAq1d,eAAiBjkC,EACjBpxb,KAAA+0d,cAAgBC,GAAgBh1d,KAAKqsb,GAAGgX,cAC/C,EACA8xB,EAAUj4d,UAAUioK,KAAO,SAASzgH,EAAMppC,EAAO5gB,GAC/CA,EAASA,GAAU,EACnB,IAAIkja,EAAM59Z,KAAKqsb,GACXrsb,KAAKq1d,aACPz3D,EAAIq3D,aAAavwa,EAAMppC,EAAOtb,KAAK+0d,cAAer6d,GAE9Ckja,EAAAK,WAAWv5W,EAAMhqD,EAAQ4gB,EAEjC,EAIAC,EAAQhf,QAHC,SAAgBqha,EAAKr3Z,GAC5B,OAAO,IAAI4ud,EAAUv3D,EAAKr3Z,EAAKA,EAAIivd,0BAMzC,KAAA,SAEWj6c,EAASg/Y,EAA0BC,GAEtC,IAAAi7D,EAAkBj7D,EAAqB,MACvCk7D,EAAoBl7D,EAAqB,KAC7C,SAASm7D,EAAc/3D,GACrB59Z,KAAKs1d,mBAAqB13D,EAAIg4D,gBAAgB7ld,KAAK6tZ,GACnD59Z,KAAKw1d,qBAAuB53D,EAAIi4D,kBAAkB9ld,KAAK6tZ,GACvD59Z,KAAKu1d,qBAAuB33D,EAAIk4D,kBAAkB/ld,KAAK6tZ,GAazDriZ,EAAQhf,QAXR,SAAmBqha,EAAKr1U,EAAY6oW,EAAU4jC,GACxC,IACA1jC,EADA/qb,EAAMq3Z,EAAIi4D,kBAAoB,IAAIF,EAAc/3D,GAAOA,EAAIy6B,aAAa,2BAQrE,OALC/G,EADJ/qb,EACIkvd,EAAgB73D,EAAKr3Z,GAErBmvd,EAAkB93D,IAEtBjzY,OAAO49D,EAAY6oW,EAAU4jC,GAC1B1jC,IAMb,KAAA,SAEW/1a,GACPA,EAAQhf,QACC,SAAI4J,EAAK1B,EAAG9F,GAIZ,OAHPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAC1Cj/Y,EAAQhf,QAIC,SAAMkI,EAAG9F,GACZ,IAAAo3d,EAAQC,EAAWvxd,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACjCwxd,EAAQD,EAAWr3d,EAAE,GAAIA,EAAE,GAAIA,EAAE,IACrC4pL,EAAUwtS,EAAOA,GACjBxtS,EAAU0tS,EAAOA,GACb,IAAAC,EAAS9+X,EAAI2+X,EAAOE,GACxB,OAAIC,EAAS,EACJ,EAEA16d,KAAK+uD,KAAK2ra,IAZjB,IAAAF,EAAax7D,EAAqB,MAClCjyO,EAAYiyO,EAAqB,MACjCpjU,EAAMojU,EAAqB,MAgBnC,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAK4J,EAAK1B,GAIV,OAHP0B,EAAI,GAAK3K,KAAK25B,KAAK1wB,EAAE,IACrB0B,EAAI,GAAK3K,KAAK25B,KAAK1wB,EAAE,IACrB0B,EAAI,GAAK3K,KAAK25B,KAAK1wB,EAAE,IACd0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAekI,GACT,IAAA0B,EAAM,IAAI4mE,aAAa,GAIpB,OAHH5mE,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACJ0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAK4J,EAAK1B,GAIV,OAHH0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACJ0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,WACM,IAAA4J,EAAM,IAAI4mE,aAAa,GAIpB,OAHP5mE,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAM4J,EAAK1B,EAAG9F,GACjB,IAAA0sC,EAAK5mC,EAAE,GAAI6mC,EAAK7mC,EAAE,GAAI0hb,EAAK1hb,EAAE,GAAI8mC,EAAK5sC,EAAE,GAAI6sC,EAAK7sC,EAAE,GAAIynb,EAAKznb,EAAE,GAI3D,OAHPwH,EAAI,GAAKmlC,EAAK86Y,EAAKD,EAAK36Y,EACxBrlC,EAAI,GAAKggb,EAAK56Y,EAAKF,EAAK+6Y,EACxBjgb,EAAI,GAAKklC,EAAKG,EAAKF,EAAKC,EACjBplC,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAASkI,EAAG9F,GACnB,IAAI+F,EAAI/F,EAAE,GAAK8F,EAAE,GAAIE,EAAIhG,EAAE,GAAK8F,EAAE,GAAImf,EAAIjlB,EAAE,GAAK8F,EAAE,GACnD,OAAOjJ,KAAKmjB,KAAKja,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,KAK3C,KAAA,SAEWrI,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAO4J,EAAK1B,EAAG9F,GAIf,OAHPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,IAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAIkI,EAAG9F,GACd,OAAO8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,KAKlD,KAAA,SAEW4c,GACPA,EAAQhf,QAAU,MAItB,KAAA,SAEWgf,EAASg/Y,EAA0BC,GAC1Cj/Y,EAAQhf,QAEC,SAAOkI,EAAG9F,GACb,IAAAw7C,EAAK11C,EAAE,GACP21C,EAAK31C,EAAE,GACPgwO,EAAKhwO,EAAE,GACPysB,EAAKvyB,EAAE,GACPwyB,EAAKxyB,EAAE,GACPqyF,EAAKryF,EAAE,GACJ,OAAAnD,KAAKK,IAAIs+C,EAAKjpB,IAAOilc,EAAU36d,KAAK8J,IAAI,EAAG9J,KAAKK,IAAIs+C,GAAK3+C,KAAKK,IAAIq1B,KAAQ11B,KAAKK,IAAIu+C,EAAKjpB,IAAOglc,EAAU36d,KAAK8J,IAAI,EAAG9J,KAAKK,IAAIu+C,GAAK5+C,KAAKK,IAAIs1B,KAAQ31B,KAAKK,IAAI44O,EAAKzjJ,IAAOmlY,EAAU36d,KAAK8J,IAAI,EAAG9J,KAAKK,IAAI44O,GAAKj5O,KAAKK,IAAIm1F,KAR3N,IAAAmlY,EAAU37D,EAAqB,OAavC,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAYkI,EAAG9F,GACtB,OAAO8F,EAAE,KAAO9F,EAAE,IAAM8F,EAAE,KAAO9F,EAAE,IAAM8F,EAAE,KAAO9F,EAAE,KAK1D,KAAA,SAEW4c,GACPA,EAAQhf,QACC,SAAM4J,EAAK1B,GAIX,OAHP0B,EAAI,GAAK3K,KAAKO,MAAM0I,EAAE,IACtB0B,EAAI,GAAK3K,KAAKO,MAAM0I,EAAE,IACtB0B,EAAI,GAAK3K,KAAKO,MAAM0I,EAAE,IACf0B,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAC1Cj/Y,EAAQhf,QAER,SAAiBkI,EAAG8sb,EAAQ72b,EAAQ4gB,EAAO9N,EAAIrQ,GAC7C,IAAItE,EAAG8qB,EAYP,IAXK4ta,IACMA,EAAA,GAEN72b,IACMA,EAAA,GAGTipB,EADErI,EACE9f,KAAKoH,IAAI0Y,EAAQi2a,EAAS72b,EAAQ+J,EAAEnL,QAEpCmL,EAAEnL,OAEHT,EAAI6B,EAAQ7B,EAAI8qB,EAAG9qB,GAAK04b,EACvB6kC,EAAA,GAAK3xd,EAAE5L,GACXu9d,EAAI,GAAK3xd,EAAE5L,EAAI,GACfu9d,EAAI,GAAK3xd,EAAE5L,EAAI,GACZ2U,EAAA4od,EAAKA,EAAKj5d,GACXsH,EAAA5L,GAAKu9d,EAAI,GACX3xd,EAAE5L,EAAI,GAAKu9d,EAAI,GACf3xd,EAAE5L,EAAI,GAAKu9d,EAAI,GAEV,OAAA3xd,GAvBL,IAAA2xd,EAAM57D,EAAqB,KAArBA,IA4Bd,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAWmI,EAAGC,EAAGif,GACpB,IAAAzd,EAAM,IAAI4mE,aAAa,GAIpB,OAHP5mE,EAAI,GAAKzB,EACTyB,EAAI,GAAKxB,EACTwB,EAAI,GAAKyd,EACFzd,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAC1Cj/Y,EAAQhf,QAAU,CAChB45d,QAAS37D,EAAqB,MAC9BvsZ,OAAQusZ,EAAqB,MAC7BxgV,MAAOwgV,EAAqB,MAC5BhuX,MAAOguX,EAAqB,MAC5Bw7D,WAAYx7D,EAAqB,MACjCp8Z,KAAMo8Z,EAAqB,MAC3Bz1Z,IAAKy1Z,EAAqB,MAC1Bp1Z,OAAQo1Z,EAAqB,MAC7B67D,YAAa77D,EAAqB,MAClCphZ,IAAKohZ,EAAqB,MAC1B98K,SAAU88K,EAAqB,MAC/B/vZ,IAAK+vZ,EAAqB,MAC1B7kU,SAAU6kU,EAAqB,MAC/BlzZ,IAAKkzZ,EAAqB,MAC1B87D,OAAQ97D,EAAqB,MAC7B18Q,IAAK08Q,EAAqB,MAC1B53Z,IAAK43Z,EAAqB,MAC1Bl1Z,IAAKk1Z,EAAqB,MAC1Bz+Z,MAAOy+Z,EAAqB,MAC5BrlY,KAAMqlY,EAAqB,MAC3B9jY,MAAO8jY,EAAqB,MAC5B7mY,MAAO6mY,EAAqB,MAC5B+7D,YAAa/7D,EAAqB,MAClCxnX,SAAUwnX,EAAqB,MAC/BzkO,KAAMykO,EAAqB,MAC3BkuD,gBAAiBluD,EAAqB,MACtCg8D,QAASh8D,EAAqB,MAC9Blha,OAAQkha,EAAqB,MAC7Btha,IAAKsha,EAAqB,KAC1BiuD,cAAejuD,EAAqB,MACpCi8D,OAAQj8D,EAAqB,MAC7Bk8D,OAAQl8D,EAAqB,MAC7BrsY,QAASqsY,EAAqB,KAC9BjyO,UAAWiyO,EAAqB,MAChCpjU,IAAKojU,EAAqB,KAC1BtrW,MAAOsrW,EAAqB,MAC5BuqB,KAAMvqB,EAAqB,MAC3Bl7Y,OAAQk7Y,EAAqB,MAC7Bo7C,cAAep7C,EAAqB,MACpCm8D,cAAen8D,EAAqB,KACpCo8D,cAAep8D,EAAqB,KACpC5kU,QAAS4kU,EAAqB,MAC9B3kU,QAAS2kU,EAAqB,KAC9B1kU,QAAS0kU,EAAqB,MAC9B9nZ,QAAS8nZ,EAAqB,QAKpC,IAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAQ4J,EAAK1B,GAIb,OAHP0B,EAAI,GAAK,EAAI1B,EAAE,GACf0B,EAAI,GAAK,EAAI1B,EAAE,GACf0B,EAAI,GAAK,EAAI1B,EAAE,GACR0B,IAKb,IAAA,SAEWoV,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACR,SAAgBkI,GACV,IAAAC,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAC9B,OAAOjJ,KAAKmjB,KAAKja,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,KAK3C,KAAA,SAEWrI,GACPA,EAAQhf,QACR,SAAc4J,EAAK1B,EAAG9F,EAAG0gB,GACnB,IAAAgsB,EAAK5mC,EAAE,GAAI6mC,EAAK7mC,EAAE,GAAI0hb,EAAK1hb,EAAE,GAI1B,OAHP0B,EAAI,GAAKklC,EAAKhsB,GAAK1gB,EAAE,GAAK0sC,GAC1BllC,EAAI,GAAKmlC,EAAKjsB,GAAK1gB,EAAE,GAAK2sC,GAC1BnlC,EAAI,GAAKggb,EAAK9ma,GAAK1gB,EAAE,GAAKwnb,GACnBhgb,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAI4J,EAAK1B,EAAG9F,GAIZ,OAHHwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACnBwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAI4J,EAAK1B,EAAG9F,GAIZ,OAHHwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACnBwH,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAS4J,EAAK1B,EAAG9F,GAIjB,OAHPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAO4J,EAAK1B,GAIZ,OAHP0B,EAAI,IAAM1B,EAAE,GACZ0B,EAAI,IAAM1B,EAAE,GACZ0B,EAAI,IAAM1B,EAAE,GACL0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAU4J,EAAK1B,GAClB,IAAAC,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAC1BvL,EAAMwL,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EAOvB,OANH1qB,EAAM,IACFA,EAAA,EAAIsC,KAAKmjB,KAAKzlB,GACpBiN,EAAI,GAAK1B,EAAE,GAAKvL,EAChBiN,EAAI,GAAK1B,EAAE,GAAKvL,EAChBiN,EAAI,GAAK1B,EAAE,GAAKvL,GAEXiN,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAO4J,EAAKwtB,GACnBA,EAAQA,GAAS,EACjB,IAAIqD,EAAoB,EAAhBx7B,KAAK8jB,SAAe9jB,KAAKu0B,GAC7BnM,EAAoB,EAAhBpoB,KAAK8jB,SAAe,EACxBu3c,EAASr7d,KAAKmjB,KAAK,EAAIiF,EAAIA,GAAK+P,EAI7B,OAHPxtB,EAAI,GAAK3K,KAAK87B,IAAIN,GAAK6/b,EACvB1wd,EAAI,GAAK3K,KAAK+7B,IAAIP,GAAK6/b,EACnB1wd,EAAA,GAAKyd,EAAI+P,EACNxtB,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAiB4J,EAAK1B,EAAG9F,EAAGhD,GACtB,IAAA6vC,EAAK7sC,EAAE,GACPynb,EAAKznb,EAAE,GACPm6C,EAAKr0C,EAAE,GAAK+mC,EACZsrb,EAAKryd,EAAE,GAAK2hb,EACZ9hW,EAAK9oF,KAAK+7B,IAAI57B,GACdoha,EAAKvha,KAAK87B,IAAI37B,GAIX,OAHHwK,EAAA,GAAK1B,EAAE,GACX0B,EAAI,GAAKqlC,EAAKsN,EAAKikX,EAAK+5D,EAAKxyY,EAC7Bn+E,EAAI,GAAKigb,EAAKttY,EAAKwrC,EAAKwyY,EAAK/5D,EACtB52Z,IAKb,IAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAiB4J,EAAK1B,EAAG9F,EAAGhD,GACtB,IAAA4vC,EAAK5sC,EAAE,GACPynb,EAAKznb,EAAE,GACPk6C,EAAKp0C,EAAE,GAAK8mC,EACZurb,EAAKryd,EAAE,GAAK2hb,EACZ9hW,EAAK9oF,KAAK+7B,IAAI57B,GACdoha,EAAKvha,KAAK87B,IAAI37B,GAIX,OAHPwK,EAAI,GAAKolC,EAAKurb,EAAKxyY,EAAKzrC,EAAKkkX,EACzB52Z,EAAA,GAAK1B,EAAE,GACX0B,EAAI,GAAKigb,EAAK0wC,EAAK/5D,EAAKlkX,EAAKyrC,EACtBn+E,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAiB4J,EAAK1B,EAAG9F,EAAGhD,GACtB,IAAA4vC,EAAK5sC,EAAE,GACP6sC,EAAK7sC,EAAE,GACPk6C,EAAKp0C,EAAE,GAAK8mC,EACZuN,EAAKr0C,EAAE,GAAK+mC,EACZ84C,EAAK9oF,KAAK+7B,IAAI57B,GACdoha,EAAKvha,KAAK87B,IAAI37B,GAIX,OAHPwK,EAAI,GAAKolC,EAAKsN,EAAKkkX,EAAKjkX,EAAKwrC,EAC7Bn+E,EAAI,GAAKqlC,EAAKqN,EAAKyrC,EAAKxrC,EAAKikX,EACzB52Z,EAAA,GAAK1B,EAAE,GACJ0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAM4J,EAAK1B,GAIX,OAHP0B,EAAI,GAAK3K,KAAKk7B,MAAMjyB,EAAE,IACtB0B,EAAI,GAAK3K,KAAKk7B,MAAMjyB,EAAE,IACtB0B,EAAI,GAAK3K,KAAKk7B,MAAMjyB,EAAE,IACf0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAM4J,EAAK1B,EAAG9F,GAId,OAHPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAChBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAChBwH,EAAI,GAAK1B,EAAE,GAAK9F,EACTwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAqB4J,EAAK1B,EAAG9F,EAAGg1B,GAIvB,OAHPxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EACvBxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EACvBxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EAChBxtB,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAa4J,EAAKzB,EAAGC,EAAGif,GAIf,OAHPzd,EAAI,GAAKzB,EACTyB,EAAI,GAAKxB,EACTwB,EAAI,GAAKyd,EACFzd,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAgBkI,EAAG9F,GAC1B,IAAI+F,EAAI/F,EAAE,GAAK8F,EAAE,GAAIE,EAAIhG,EAAE,GAAK8F,EAAE,GAAImf,EAAIjlB,EAAE,GAAK8F,EAAE,GACnD,OAAOC,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,IAKjC,KAAA,SAEWrI,GACPA,EAAQhf,QACR,SAAuBkI,GACjB,IAAAC,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAC9B,OAAOC,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,IAKjC,KAAA,SAEWrI,EAASg/Y,EAA0BC,GAClCmB,EAAAp/Z,QAAUi+Z,EAAqB,OAI3C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAS4J,EAAK1B,EAAG9F,GAIjB,OAHPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,IAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAc4J,EAAK1B,EAAG1J,GACzB,IAAA2J,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAIvB,OAHP0B,EAAI,GAAKzB,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,GACrCoL,EAAI,GAAKzB,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,GACrCoL,EAAI,GAAKzB,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,GAC9BoL,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAc4J,EAAK1B,EAAG1J,GACzB,IAAA2J,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAI+nB,EAAIzxB,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,IAAM6oB,EAAI7oB,EAAE,IAKnE,OAJPyxB,EAAIA,GAAK,EACTrmB,EAAI,IAAMpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,KAAOyxB,EACpDrmB,EAAI,IAAMpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,KAAOyxB,EACpDrmB,EAAI,IAAMpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,IAAM6oB,EAAI7oB,EAAE,KAAOyxB,EAC9CrmB,IAKb,IAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAc4J,EAAK1B,EAAGmwB,GACzB,IAAAlwB,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAIsyd,EAAKnic,EAAE,GAAIoic,EAAKpic,EAAE,GAAIqic,EAAKric,EAAE,GAAIsic,EAAKtic,EAAE,GAAIy4b,EAAK6J,EAAKxyd,EAAIsyd,EAAKpzc,EAAIqzc,EAAKtyd,EAAG2od,EAAK4J,EAAKvyd,EAAIsyd,EAAKvyd,EAAIqyd,EAAKnzc,EAAGuzc,EAAKD,EAAKtzc,EAAImzc,EAAKpyd,EAAIqyd,EAAKtyd,EAAG0yd,GAAML,EAAKryd,EAAIsyd,EAAKryd,EAAIsyd,EAAKrzc,EAIjM,OAHHzd,EAAA,GAAKknd,EAAK6J,EAAKE,GAAML,EAAKzJ,GAAM2J,EAAKE,GAAMH,EAC3C7wd,EAAA,GAAKmnd,EAAK4J,EAAKE,GAAMJ,EAAKG,GAAMJ,EAAK1J,GAAM4J,EAC3C9wd,EAAA,GAAKgxd,EAAKD,EAAKE,GAAMH,EAAK5J,GAAM2J,EAAK1J,GAAMyJ,EACxC5wd,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAI4J,EAAK1B,EAAG9F,GAKZ,OAJPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAekI,GACT,IAAA0B,EAAM,IAAI4mE,aAAa,GAKpB,OAJH5mE,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACJ0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAK4J,EAAK1B,GAKV,OAJH0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACP0B,EAAA,GAAK1B,EAAE,GACJ0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,WACM,IAAA4J,EAAM,IAAI4mE,aAAa,GAKpB,OAJP5mE,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACTA,EAAI,GAAK,EACFA,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAASkI,EAAG9F,GACf,IAAA+F,EAAI/F,EAAE,GAAK8F,EAAE,GAAIE,EAAIhG,EAAE,GAAK8F,EAAE,GAAImf,EAAIjlB,EAAE,GAAK8F,EAAE,GAAI+nB,EAAI7tB,EAAE,GAAK8F,EAAE,GAC7D,OAAAjJ,KAAKmjB,KAAKja,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EAAI4I,EAAIA,KAKnD,KAAA,SAEWjR,GACPA,EAAQhf,QACC,SAAO4J,EAAK1B,EAAG9F,GAKf,OAJPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAIkI,EAAG9F,GACP,OAAA8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,KAKhE,KAAA,SAEW4c,GACPA,EAAQhf,QACR,SAAoBmI,EAAGC,EAAGif,EAAG4I,GACvB,IAAArmB,EAAM,IAAI4mE,aAAa,GAKpB,OAJP5mE,EAAI,GAAKzB,EACTyB,EAAI,GAAKxB,EACTwB,EAAI,GAAKyd,EACTzd,EAAI,GAAKqmB,EACFrmB,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GAC1Cj/Y,EAAQhf,QAAU,CAChB0R,OAAQusZ,EAAqB,MAC7BxgV,MAAOwgV,EAAqB,MAC5Bw7D,WAAYx7D,EAAqB,MACjCp8Z,KAAMo8Z,EAAqB,MAC3Bz1Z,IAAKy1Z,EAAqB,MAC1BphZ,IAAKohZ,EAAqB,MAC1B98K,SAAU88K,EAAqB,MAC/B7kU,SAAU6kU,EAAqB,MAC/B87D,OAAQ97D,EAAqB,MAC7B53Z,IAAK43Z,EAAqB,MAC1Bl1Z,IAAKk1Z,EAAqB,KAC1B7mY,MAAO6mY,EAAqB,MAC5B+7D,YAAa/7D,EAAqB,MAClCxnX,SAAUwnX,EAAqB,MAC/BkuD,gBAAiBluD,EAAqB,MACtClha,OAAQkha,EAAqB,MAC7BiuD,cAAejuD,EAAqB,KACpCk8D,OAAQl8D,EAAqB,MAC7BrsY,QAASqsY,EAAqB,MAC9BjyO,UAAWiyO,EAAqB,MAChCpjU,IAAKojU,EAAqB,MAC1BuqB,KAAMvqB,EAAqB,MAC3Bl7Y,OAAQk7Y,EAAqB,MAC7Bo7C,cAAep7C,EAAqB,MACpCo8D,cAAep8D,EAAqB,QAK1C,KAAA,SAEWj/Y,GACPA,EAAQhf,QACC,SAAQ4J,EAAK1B,GAKb,OAJP0B,EAAI,GAAK,EAAI1B,EAAE,GACf0B,EAAI,GAAK,EAAI1B,EAAE,GACf0B,EAAI,GAAK,EAAI1B,EAAE,GACf0B,EAAI,GAAK,EAAI1B,EAAE,GACR0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAgBkI,GACd,IAAIC,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAI+nB,EAAI/nB,EAAE,GACjC,OAAAjJ,KAAKmjB,KAAKja,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EAAI4I,EAAIA,KAKnD,KAAA,SAEWjR,GACPA,EAAQhf,QACR,SAAc4J,EAAK1B,EAAG9F,EAAG0gB,GACvB,IAAIgsB,EAAK5mC,EAAE,GAAI6mC,EAAK7mC,EAAE,GAAI0hb,EAAK1hb,EAAE,GAAIyhb,EAAKzhb,EAAE,GAKrC,OAJP0B,EAAI,GAAKklC,EAAKhsB,GAAK1gB,EAAE,GAAK0sC,GAC1BllC,EAAI,GAAKmlC,EAAKjsB,GAAK1gB,EAAE,GAAK2sC,GAC1BnlC,EAAI,GAAKggb,EAAK9ma,GAAK1gB,EAAE,GAAKwnb,GAC1Bhgb,EAAI,GAAK+/a,EAAK7ma,GAAK1gB,EAAE,GAAKunb,GACnB//a,IAKb,IAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAI4J,EAAK1B,EAAG9F,GAKZ,OAJHwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAK8J,IAAIb,EAAE,GAAI9F,EAAE,IACnBwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAI4J,EAAK1B,EAAG9F,GAKZ,OAJHwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACtBwH,EAAA,GAAK3K,KAAKoH,IAAI6B,EAAE,GAAI9F,EAAE,IACnBwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAS4J,EAAK1B,EAAG9F,GAKjB,OAJPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAO4J,EAAK1B,GAKZ,OAJP0B,EAAI,IAAM1B,EAAE,GACZ0B,EAAI,IAAM1B,EAAE,GACZ0B,EAAI,IAAM1B,EAAE,GACZ0B,EAAI,IAAM1B,EAAE,GACL0B,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAU4J,EAAK1B,GACtB,IAAIC,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAI+nB,EAAI/nB,EAAE,GACpCvL,EAAMwL,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EAAI4I,EAAIA,EAQ/B,OAPHtzB,EAAM,IACFA,EAAA,EAAIsC,KAAKmjB,KAAKzlB,GAChBiN,EAAA,GAAKzB,EAAIxL,EACTiN,EAAA,GAAKxB,EAAIzL,EACTiN,EAAA,GAAKyd,EAAI1qB,EACTiN,EAAA,GAAKqmB,EAAItzB,GAERiN,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GACtC,IAAA68D,EAAe78D,EAAqB,MACpC88D,EAAW98D,EAAqB,MACpCj/Y,EAAQhf,QACC,SAAO4J,EAAKwtB,GAQZ,OAPPA,EAAQA,GAAS,EACbxtB,EAAA,GAAK3K,KAAK8jB,SACVnZ,EAAA,GAAK3K,KAAK8jB,SACVnZ,EAAA,GAAK3K,KAAK8jB,SACVnZ,EAAA,GAAK3K,KAAK8jB,SACd+3c,EAAalxd,EAAKA,GACTmxd,EAAAnxd,EAAKA,EAAKwtB,GACZxtB,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAM4J,EAAK1B,EAAG9F,GAKd,OAJPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAChBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAChBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAChBwH,EAAI,GAAK1B,EAAE,GAAK9F,EACTwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAqB4J,EAAK1B,EAAG9F,EAAGg1B,GAKvB,OAJPxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EACvBxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EACvBxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EACvBxtB,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAAKg1B,EAChBxtB,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACR,SAAa4J,EAAKzB,EAAGC,EAAGif,EAAG4I,GAKlB,OAJPrmB,EAAI,GAAKzB,EACTyB,EAAI,GAAKxB,EACTwB,EAAI,GAAKyd,EACTzd,EAAI,GAAKqmB,EACFrmB,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAgBkI,EAAG9F,GACtB,IAAA+F,EAAI/F,EAAE,GAAK8F,EAAE,GAAIE,EAAIhG,EAAE,GAAK8F,EAAE,GAAImf,EAAIjlB,EAAE,GAAK8F,EAAE,GAAI+nB,EAAI7tB,EAAE,GAAK8F,EAAE,GACpE,OAAOC,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EAAI4I,EAAIA,IAKzC,IAAA,SAEWjR,GACPA,EAAQhf,QACR,SAAuBkI,GACrB,IAAIC,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAI+nB,EAAI/nB,EAAE,GACxC,OAAOC,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EAAI4I,EAAIA,IAKzC,KAAA,SAEWjR,GACPA,EAAQhf,QACC,SAAS4J,EAAK1B,EAAG9F,GAKjB,OAJPwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GAClBwH,EAAI,GAAK1B,EAAE,GAAK9F,EAAE,GACXwH,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAc4J,EAAK1B,EAAG1J,GAC7B,IAAI2J,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAI+nB,EAAI/nB,EAAE,GAKjC,OAJP0B,EAAI,GAAKpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,IAAMyxB,EAClDrmB,EAAI,GAAKpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,GAAK6oB,EAAI7oB,EAAE,IAAMyxB,EAClDrmB,EAAI,GAAKpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,IAAM6oB,EAAI7oB,EAAE,IAAMyxB,EACnDrmB,EAAI,GAAKpL,EAAE,GAAK2J,EAAI3J,EAAE,GAAK4J,EAAI5J,EAAE,IAAM6oB,EAAI7oB,EAAE,IAAMyxB,EAC5CrmB,IAKb,KAAA,SAEWoV,GACPA,EAAQhf,QACC,SAAc4J,EAAK1B,EAAGmwB,GACzB,IAAAlwB,EAAID,EAAE,GAAIE,EAAIF,EAAE,GAAImf,EAAInf,EAAE,GAAIsyd,EAAKnic,EAAE,GAAIoic,EAAKpic,EAAE,GAAIqic,EAAKric,EAAE,GAAIsic,EAAKtic,EAAE,GAAIy4b,EAAK6J,EAAKxyd,EAAIsyd,EAAKpzc,EAAIqzc,EAAKtyd,EAAG2od,EAAK4J,EAAKvyd,EAAIsyd,EAAKvyd,EAAIqyd,EAAKnzc,EAAGuzc,EAAKD,EAAKtzc,EAAImzc,EAAKpyd,EAAIqyd,EAAKtyd,EAAG0yd,GAAML,EAAKryd,EAAIsyd,EAAKryd,EAAIsyd,EAAKrzc,EAKjM,OAJHzd,EAAA,GAAKknd,EAAK6J,EAAKE,GAAML,EAAKzJ,GAAM2J,EAAKE,GAAMH,EAC3C7wd,EAAA,GAAKmnd,EAAK4J,EAAKE,GAAMJ,EAAKG,GAAMJ,EAAK1J,GAAM4J,EAC3C9wd,EAAA,GAAKgxd,EAAKD,EAAKE,GAAMH,EAAK5J,GAAM2J,EAAK1J,GAAMyJ,EAC3C5wd,EAAA,GAAK1B,EAAE,GACJ0B,IAKb,KAAA,SAEWoV,EAASg/Y,EAA0BC,GACtC,IAAA+8D,EAAW/8D,EAAqB,MAChCg9D,EAAQh9D,EAAqB,MACjCj/Y,EAAQhf,QACR,SAAiB4Q,GAEf,IADA,IAAIsqd,EAASz9d,MAAMiF,QAAQkO,GAAOA,EAAMoqd,EAASpqd,GACxCtU,EAAI,EAAGA,EAAI4+d,EAAOn+d,OAAQT,IAAK,CAClC,IAAAysC,EAAQmyb,EAAO5+d,GACf,GAAe,iBAAfysC,EAAMtmC,KAAN,CACJ,IAAI0sB,EAAQ4Z,EAAMpmC,KAAKwsB,MAAM,yCAC7B,GAAKA,GACAA,EAAM,GAAP,CACA,IAAAnzB,EAAMmzB,EAAM,GACZ1T,EAAQ0T,EAAM,GAClB,OAAQnzB,EAAMi/d,EAAMx/c,GAASA,GAAOxS,MAHrB,CAHoB,KAY3C,KAAA,SAEW+V,EAASg/Y,EAA0BC,GAC1Cj/Y,EAAQhf,QAiBR,SAAkBo8G,GACZ,IAAiCh9G,EAAG2M,EAA6IpP,EAAjLL,EAAI,EAAGu4G,EAAQ,EAAG1sD,EAAOgza,EAAiBtsG,EAAU,GAAIqsG,EAAS,GAAmCtpb,EAAO,EAAGwpb,EAAM,EAAGv9d,EAAQ,EAAGw9d,GAAQ,EAAOC,GAAa,EAAOnrd,EAAQ,GAE7Kord,EAAcC,EACdC,EAAcC,EACE,YAHpBt/W,EAAMA,GAAO,CAAC,GAGNrgG,UACQw/c,EAAAI,EACAF,EAAAG,GAEhB,IAAIC,EAAe,GAAIC,EAAe,CAAC,EACvC,IAASx/d,EAAI,EAAGA,EAAIi/d,EAAYx+d,OAAQT,IACzBu/d,EAAAN,EAAYj/d,KAAM,EAEjC,IAASA,EAAI,EAAGA,EAAIm/d,EAAY1+d,OAAQT,IACzBw/d,EAAAL,EAAYn/d,KAAM,EAEjC,OAAO,SAASqG,GAEd,OADAu4d,EAAS,GACI,OAATv4d,EAcN,SAAe0kX,GAKT,IAAA00G,EACJ,IALIz/d,EAAA,EACA+qX,EAAMpkX,WAAkBokX,EAAAA,EAAMpkX,YACzBkN,GAAAk3W,EAAMr+W,QAAQ,QAAS,MAChCrM,EAAMwT,EAAMpT,OAELqC,EAAI+Q,EAAM7T,GAAIA,EAAIK,GAAK,CAE5B,OADQo/d,EAAAz/d,EACA6rD,GACN,KAAK6za,EACH1/d,EAAI2/d,IACJ,MACF,KAAKC,EACH5/d,EAAI6/d,IACJ,MACF,KAAKC,EACH9/d,EAAI+/d,IACJ,MACF,KAAKC,EACHhge,EAAIu4X,IACJ,MACF,KAAK0nG,EACHjge,EAAI8tF,IACJ,MACF,KAAKoyY,EACHlge,EAAI09E,IACJ,MACF,KAAKynV,EACHnla,EAAI8uE,IACJ,MACF,KAAKqxZ,EACHnge,EAAIoge,IACJ,MACF,KAAKC,EACHrge,EAAIsge,IACJ,MACF,KAAKzB,EACH7+d,EAAIusD,IAGJkza,IAAUz/d,IAEL,OADC6T,EAAM4rd,IAEJX,EAAA,IACJxpb,KAGAwpb,GAOH,OAFEvmX,GAAAv4G,EACD6T,EAAAA,EAAM5O,MAAMjF,GACb4+d,EApEmB55d,CAAMqB,IAuE5BksX,EAAQ9xX,QACJgsC,EAAA8lV,EAAQtxX,KAAK,KAEd4qD,EAAAxf,EACPI,EAAM,SACCmyb,EA1ET,EACA,SAASnyb,EAAMpmC,GACTA,EAAK5F,QACPm+d,EAAO99d,KAAK,CACVqF,KAAMihB,EAAIykC,GACVxlD,OACAiW,SAAU/a,EACV+zC,OACA23Q,OAAQ6xK,IAoEd,SAASvya,IAEH,OADMgmU,EAAAA,EAAQ9xX,OAAS,GAAK8xX,EACnB,MAAT9iX,GAAsB,MAAN3M,GAClBvB,EAAQg3G,EAAQv4G,EAAI,EACb6rD,EAAA6za,EACAjwd,EAAA3M,EACA9C,EAAI,GAEA,MAATyP,GAAsB,MAAN3M,GAClBvB,EAAQg3G,EAAQv4G,EAAI,EACb6rD,EAAA+za,EACAnwd,EAAA3M,EACA9C,EAAI,GAEH,MAAN8C,GACK+oD,EAAAi0a,EACPv+d,EAAQg3G,EAAQv4G,EACTA,GAEL,KAAK+uB,KAAKjsB,IACL+oD,EAAAw0a,EACP9+d,EAAQg3G,EAAQv4G,EACTA,IAED++d,EAAA,KAAKhwc,KAAKjsB,GACLk8d,EAAA,SAASjwc,KAAKjsB,GAC3BvB,EAAQg3G,EAAQv4G,EACT6rD,EAAAkza,EAAQkB,EAAUjB,EAAagB,EAAWG,EAC1Cnge,GAET,SAASsge,IACH,MAAA,SAASvxc,KAAKjsB,IACV2pC,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,IAETuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,GAEb,SAAS+/d,IACP,MAAW,OAANj9d,GAAoB,OAANA,GAAwB,OAAT2M,GAKlC8iX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,IANHysC,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,GAMX,SAAS6/d,IACP,OAAOE,IAET,SAASJ,IACH,MAAM,MAAN78d,GAAsB,MAAT2M,GACf8iX,EAAQzxX,KAAKgC,GACP2pC,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,EAAI,IAEbuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,GAEb,SAASu4X,IACP,GAAa,MAAT9oX,GAAgB,KAAKsf,KAAKjsB,GAErB,OADA+oD,EAAAs5W,EACAnla,EAEL,GAAS,MAATyP,GAAsB,MAAN3M,EAEX,OADA+oD,EAAA6za,EACA1/d,EAEL,GAAS,MAATyP,GAAsB,MAAN3M,EAEX,OADA+oD,EAAA+za,EACA5/d,EAEL,GAAM,MAAN8C,GAAayvX,EAAQ9xX,OAAQ,CACxB,KAAA8/d,EAAmBhuG,KAEnB,OADA1mU,EAAAs5W,EACAnla,EAET,GAAU,MAAN8C,GAAmB,MAANA,GAAmB,MAANA,EAAW,CACvC,GAAIyvX,EAAQ9xX,OAAe,KAAA8/d,EAAmBhuG,KAG9C,OAFA9lV,EAAM3pC,GACC+oD,EAAAgza,EACA7+d,EAAI,EAEb,IAAIwge,EAA2C,IAAnBjuG,EAAQ9xX,QAAsB,MAANqC,EACpD,GAAI,YAAYisB,KAAKjsB,IAAM09d,EAAuB,CACzC,KAAAD,EAAmBhuG,KAEnB,OADA1mU,EAAAgza,EACA7+d,EAIT,OAFAuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,EAEb,SAASuge,EAAmBr8d,GAEvB,IADC,IAAOyd,EAAK3X,EAAZtB,EAAI,IACL,CAGD,GAFMiZ,EAAA8+c,EAAUn/d,QAAQ4C,EAAIe,MAAM,EAAGf,EAAIzD,OAASiI,GAAGzH,KAAK,KAC1D+I,EAAMy2d,EAAU9+c,IACA,IAAZA,EAAY,CACV,GAAAjZ,IAAMxE,EAAIzD,OAAS,EAAG,SAC1BuJ,EAAM9F,EAAIe,MAAM,EAAG,GAAGhE,KAAK,IAK7B,OAHAwrC,EAAMziC,GACNzI,GAASyI,EAAIvJ,QACH8xX,EAAAA,EAAQttX,MAAM+E,EAAIvJ,SACbA,QAGnB,SAASi9E,IACH,MAAA,eAAe3uD,KAAKjsB,IAChB2pC,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,IAETuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,GAEb,SAAS8tF,IACP,MAAU,MAANhrF,GAMA,OAAOisB,KAAKjsB,IALdyvX,EAAQzxX,KAAKgC,GACN+oD,EAAAs5W,EACA11Z,EAAA3M,EACA9C,EAAI,GAQH,MAAN8C,GAAgC,IAAnByvX,EAAQ9xX,QAA+B,MAAf8xX,EAAQ,IACxC1mU,EAAAq0a,EACP3tG,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,GAET,QAAQ+uB,KAAKjsB,IACT2pC,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,IAETuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,GAEb,SAAS8uE,IAMH,MALM,MAANhsE,IACFyvX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACF9C,GAAA,GAEH,OAAO+uB,KAAKjsB,IACdyvX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,IAEF,MAAN8C,GAAmB,MAANA,IAAc,OAAOisB,KAAKtf,KAKxC,QAAQsf,KAAKjsB,IACT2pC,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,IAPPuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,GAWf,SAASoge,IACH,GAAA,WAAWrxc,KAAKjsB,GAAI,CAClB,IAAA49d,EAAanuG,EAAQtxX,KAAK,IAUvB,OARE4qD,EADL2za,EAAakB,GACRC,EACEpB,EAAamB,GACfE,EAEAC,EAEHp0b,EAAA8lV,EAAQtxX,KAAK,KACZ4qD,EAAAgza,EACA7+d,EAIT,OAFAuyX,EAAQzxX,KAAKgC,GACN2M,EAAA3M,EACA9C,EAAI,IAhTf,IAAIo/d,EAAcz9D,EAAqB,KAAM8+D,EAAY9+D,EAAqB,MAAOu9D,EAAcv9D,EAAqB,MAAO29D,EAAgB39D,EAAqB,MAAO09D,EAAgB19D,EAAqB,MAC5Mk9D,EAAS,IAAKsB,EAAQ,KAAMT,EAAgB,EAAGE,EAAe,EAAGE,EAAe,EAAGE,EAAW,EAAGC,EAAU,EAAG96D,EAAQ,EAAG07D,EAAQ,EAAGD,EAAU,EAAGD,EAAU,EAAGN,EAAa,EAAGh0b,EAAM,GAAI6zb,EAAM,GAC9L94c,EAAM,CACR,gBACA,eACA,eACA,WACA,UACA,QACA,QACA,UACA,UACA,aACA,MACA,YAwSN,KAAA,SAEW1E,EAASg/Y,EAA0BC,GACtC,IAAA6sD,EAAO7sD,EAAqB,MAChC6sD,EAAOA,EAAKvpd,QAAQitB,QAAO,SAASpsB,GAC3B,OAAC,kBAAkBipB,KAAKjpB,EAAC,IAE1Bg9Z,EAAAp/Z,QAAU8qd,EAAKzid,OAAO,CAE5B,cACA,gBACA,cACA,eACA,eACA,iBACA,eACA,gBACA,sBACA,6BACA,4BACA,6BACA,gCACA,kCACA,0BACA,+BACA,oBACA,2BACA,2BACA,0BACA,gBACA,QACA,QACA,YACA,QACA,QACA,iBACA,kBACA,iBACA,kBACA,gBACA,kBACA,gBACA,kBACA,eACA,iBACA,eACA,YACA,cACA,UACA,UACA,cACA,cACA,aACA,gBACA,aACA,mBACA,oBACA,mBACA,iBACA,uBACA,cACA,oBACA,kBACA,2BAKN,KAAA,SAEW2W,GACPA,EAAQhf,QAAU,CAEhB,MACA,OACA,MACA,MACA,OACA,OACA,OACA,QACA,MACA,QACA,OACA,OACA,UACA,WACA,MACA,QACA,MACA,OACA,cACA,QACA,QACA,eACA,2BACA,sBACA,kBACA,wBACA,eACA,gBACA,WACA,gBACA,0BACA,eACA,eACA,eACA,eACA,SACA,cACA,kBACA,mBACA,eACA,eACA,cACA,eACA,kBACA,gBACA,iBACA,4BACA,uBACA,mBACA,yBACA,gBACA,0BACA,wBACA,mBACA,iBACA,2BACA,wBACA,mBACA,kCACA,oBACA,kCACA,eACA,sBACA,0BACA,qBACA,sBACA,sBACA,gCACA,gCACA,qBACA,4BACA,qCACA,8BACA,+BACA,sCACA,+CACA,wCACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,oBACA,YACA,kBACA,iBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,qBACA,eACA,cACA,sBACA,6BACA,sCACA,+BACA,oBACA,cACA,qBACA,mBACA,0BACA,mCACA,4BACA,YACA,cACA,mBACA,cACA,SACA,WACA,gBACA,MACA,OACA,iBACA,MACA,MACA,MACA,MACA,YACA,MACA,WACA,MACA,UACA,UACA,UACA,OACA,MACA,aACA,OACA,OACA,MACA,YACA,eACA,gBACA,mBACA,cACA,iBACA,kBACA,sBACA,oBACA,mBACA,uBACA,uBAKN,KAAA,SAEWgf,EAASg/Y,EAA0BC,GACtC,IAAA6sD,EAAO7sD,EAAqB,KAChCj/Y,EAAQhf,QAAU8qd,EAAKvpd,QAAQ8G,OAAO,CACpC,SACA,WACA,SACA,OACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,SACA,QACA,QACA,QACA,oBACA,iBACA,uBACA,aACA,aACA,eACA,kBACA,aACA,aACA,eACA,kBACA,WACA,WACA,WACA,YACA,WACA,cACA,gBACA,QACA,SACA,aACA,SACA,YACA,SACA,SACA,UACA,UACA,UACA,YACA,WACA,WACA,WACA,aACA,WACA,WACA,WACA,aACA,eACA,eACA,gBACA,gBACA,gBACA,gBACA,gBACA,gBACA,qBACA,qBACA,cACA,eACA,eACA,iBACA,uBACA,aACA,kBACA,aACA,kBACA,iBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,eACA,mBACA,oBACA,uBAKN,IAAA,SAEW2W,GACPA,EAAQhf,QAAU,CAEhB,YACA,QACA,UACA,OACA,YACA,QACA,UACA,UACA,QACA,WACA,KACA,MACA,QACA,KACA,OACA,KACA,MACA,QACA,QACA,MACA,OACA,OACA,OACA,OACA,QACA,UACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,YACA,YACA,YACA,cACA,kBACA,kBACA,SACA,MACA,QACA,QACA,OACA,UACA,WACA,OACA,SACA,OACA,SACA,UACA,SACA,WACA,WACA,SACA,SACA,SACA,W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tY,EACA,MAAAwB,EAER,GAAI10P,GAAO,EACH,MAAA00P,EAEKZ,GAAA/id,EAEfqid,EAASh3b,EAAKyqY,EACdwsD,EAASj3b,EAAK0qY,EACFgtD,EAAA3se,EACZwte,MAAW9od,EAAK,EAAGA,EAAKorF,IAAMprF,EAAI,CAIhC,GAFAsnd,EAAOE,EAASS,GAChB9zP,GAAOr0O,EAFP07a,EAAO+rD,EAASU,GAEInoe,EAAKwne,IACd,EAAG,CACLD,EAAArsD,EACDA,EAAAC,EACAA,EAAAosD,EACA,MAAAyB,EAER,GAAI30P,GAAO,EACH,MAAA20P,EAEKb,GAAA/id,EAYf,IAVAqid,EAASh3b,EAAKuqY,EACd0sD,EAASj3b,EAAKwqY,EACd0sD,EAASl3b,EAAK4pD,EACdutY,EAASn3b,EAAKyqY,EACd2sD,EAASp3b,EAAK0qY,EACd2sD,EAASr3b,EAAKkgM,EACdo3P,EAASt3b,EAAKqqY,EACdktD,EAASv3b,EAAKoqY,EACFqtD,EAAA,EACAC,EAAA3se,EACP0kB,EAAK,EAAGA,EAAKorF,IAAMprF,EACtBw7Z,EAAO+rD,EAASU,EAChBX,EAAOE,EAASS,EAChBxsD,EAAOgsD,EAASQ,EAChBF,EAAOL,EAASO,EAChBvsD,EAAOisD,EAASM,EAChBtsD,EAAOisD,EAASK,EAChBrsD,EAAOisD,EAASI,EAChBpsD,EAAOisD,EAASG,EACTnuD,GAAAkuD,GAAaloe,EAAKwne,GAClBttD,GAAAguD,GAAaloe,EAAKioe,GACzBG,EAAmBA,GAAoBpuD,GAAOkuD,KAAehuD,GAAOguD,GACpE1ie,EAAIxF,EAAK07a,GACTj2a,EAAIzF,EAAK27a,GACTj3Z,EAAI1kB,EAAK47a,GACT57a,EAAK67a,GAAQr2a,EACbxF,EAAK87a,GAAQr2a,EACbzF,EAAK+7a,GAAQr3Z,IACXwjd,EACWC,GAAAp2c,EAKf,IAHA01c,EAASh3b,EAAKo4E,EACd6+W,EAASj3b,EAAKlyB,EACF4pd,EAAA3se,EACP0kB,EAAK,EAAGA,EAAKorF,IAAMprF,EAEtBsnd,EAAOE,EAASS,EACXn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CA,EACA,EACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEO,SAAAC,EAAOp2f,EAAG9F,GACb,GAAA8F,EAAI9F,EAAU,OAAA,EAElB,IADA,IAAI6B,EAAI,EACqB,IAAtBhF,KAAKO,MAAM0I,EAAI9F,IACf8F,GAAA9F,EACL6B,IAEK,OAAAA,EAET,SAASs6f,EAAWr2f,GAElB,IADA,IAAIs2f,EAAS,GACJligB,EAAI,EAAGA,EAAI+hgB,EAAYthgB,OAAQT,IAAK,CACvC,IAAA8F,EAAIi8f,EAAY/hgB,GACbkigB,EAAAphgB,KACLkhgB,EAAOp2f,EAAG9F,IAGP,OAAAo8f,EAET,SAASC,EAAgBv2f,GAGvB,IAFI,IAAAktI,EAAKmpX,EAAWr2f,GAChBoK,EAASpK,EACJ5L,EAAI,EAAGA,EAAI+hgB,EAAYthgB,OAAQT,IAClC,GAAA84I,EAAG94I,GAAK,EAAG,CACbgW,EAAS+rf,EAAY/hgB,GACrB,MAGG,OAAAgW,EAEA,SAAAosf,EAAoBx2f,EAAG9F,GAC9B,KAAI8F,EAAI,GAAK9F,EAAI,GAAjB,CAIA,IAHI,IAAAgzI,EAAKmpX,EAAWr2f,GAChBotI,EAAKipX,EAAWn8f,GAChB6B,EAAI,EACC3H,EAAI,EAAGA,EAAI+hgB,EAAYthgB,OAAQT,IACtC2H,GAAKhF,KAAKC,IACRm/f,EAAY/hgB,GACZ2C,KAAK8J,IAAIqsI,EAAG94I,GAAIg5I,EAAGh5I,KAGhB,OAAA2H,CAVoB,EAoBvBoD,EAAAs3f,UAAY,SAAStlP,GACrB,IAAA/8Q,EACA23K,EAAO,GACX,IAAK33K,EAAI,EAAGA,EAAI+8Q,EAAM/8Q,IAAK,CACzB,IAAI4L,EAAIzE,KAAKw6f,OAAO3hgB,EAAI,EAAG,GACvB8F,EAAIqB,KAAKw6f,OAAO3hgB,EAAG,GAErB23K,EAAK33K,EAAI,GADP8F,IAAM8F,GAAN9F,MAAW8F,GAAX9F,MAAyCA,EAC7BnD,KAAKK,IAAI8C,EAAI8F,GAEb,EAGlB,IAAI02f,EAAY,EAChB,IAAKtigB,EAAI,EAAGA,EAAI+8Q,EAAM/8Q,IACPsigB,GAAA3qV,EAAK33K,EAAI,GAExB,IAAKA,EAAI,EAAGA,EAAI+8Q,EAAM/8Q,IACA,IAAhB23K,EAAK33K,EAAI,GACN23K,EAAA33K,EAAI,GAAK,EAET23K,EAAA33K,EAAI,GAAK2C,KAAKk7B,MAAMyke,EAAY3qV,EAAK33K,EAAI,IAG3C,OAAA23K,CACT,EACM5sK,EAAAw3f,UAAY,SAASjjO,GACrB,IAAAt/R,EACA23K,EAAO,GACX,IAAK33K,EAAI,EAAGA,EAAIs/R,EAAMt/R,IAAK,CACzB,IAAI4L,EAAIzE,KAAKy6f,OAAO,EAAG5hgB,EAAI,GACvB8F,EAAIqB,KAAKy6f,OAAO,EAAG5hgB,GAErB23K,EAAK33K,EAAI,GADP8F,IAAM8F,GAAN9F,MAAW8F,GAAX9F,MAAyCA,EAC7BnD,KAAKK,IAAI8C,EAAI8F,GAEb,EAGlB,IAAI02f,EAAY,EAChB,IAAKtigB,EAAI,EAAGA,EAAIs/R,EAAMt/R,IACPsigB,GAAA3qV,EAAK33K,EAAI,GAExB,IAAKA,EAAI,EAAGA,EAAIs/R,EAAMt/R,IACA,IAAhB23K,EAAK33K,EAAI,GACN23K,EAAA33K,EAAI,GAAK,EAET23K,EAAA33K,EAAI,GAAK2C,KAAKk7B,MAAMyke,EAAY3qV,EAAK33K,EAAI,IAG3C,OAAA23K,CACT,EACA,IAAI6qV,EAAmB,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAClFC,EAAiBD,EAAiB,GAClCE,EAAiBF,EAAiB,IAkB7B,SAAAG,EAAar1f,EAAK6rd,EAAKvwZ,GAC9B,IAAIj1C,EAAIi1C,EAAE,GAAKA,EAAE,GAAKuwZ,EAAI,GAAKvwZ,EAAE,GAAKuwZ,EAAI,GAGnC,OAFP7rd,EAAI,IAAMs7D,EAAE,GAAKA,EAAE,GAAKuwZ,EAAI,GAAKvwZ,EAAE,GAAKuwZ,EAAI,IAAMxlc,EAClDrmB,EAAI,IAAMs7D,EAAE,GAAKA,EAAE,GAAKuwZ,EAAI,GAAKvwZ,EAAE,GAAKuwZ,EAAI,IAAMxlc,EAC3CrmB,EAEA,SAAAs1f,EAAW1+Y,EAAM5vG,EAAKs0D,GAEtB,OAET,SAAcs7C,EAAM5vG,EAAK6H,EAAMysD,GAI7B,IAHI,IAAAi6b,EAAS,CAAC,EAAG,GACbntb,EAAKwuC,EAAK9uC,MAAM,GAChBI,EAAK0uC,EAAK9uC,MAAM,GACXp1E,EAAI,EAAGA,EAAI01E,EAAI11E,IACtB,IAAA,IAAS0I,EAAI,EAAGA,EAAI8sE,EAAI9sE,IACtByT,EAAK0mf,EAAQ,CAAC7igB,EAAG0I,GAAIkgE,GAChBs7C,EAAAh4G,IAAIlM,EAAG0I,EAAG04f,EAAgB9sf,EAAKuuf,EAAO,GAAIA,EAAO,KAVrDC,CAAA5+Y,EAAM5vG,EAAKquf,EAAc/5b,GACvBs7C,EA0CA,SAAA6+Y,EAAiB9igB,EAAKo5E,GAE7B,IADA,IAAI5wE,GAAQ,EACHwgB,EAAI,EAAGA,EAAIhpB,EAAIQ,OAAQwoB,IAC1B,GAAAowD,IAAap5E,EAAIgpB,GAAI,CACfxgB,GAAA,EACR,OAGU,IAAVA,GAAqBxI,EAAAa,KAAKu4E,GA3E1BtuE,EAAAi4f,cAAgB,SAASC,EAAQ1qc,GAGrC,IAFI,IACA2qc,EAAS,EA/Df,SAAkBpqX,GACZ,GAAc,IAAdA,EAAGr4I,OAAH,CAEJ,IADA,IAAIkH,EAAI,EACC3H,EAAI,EAAGA,EAAI84I,EAAGr4I,OAAQT,IAC7B2H,EAAIy6f,EAAoBz6f,EAAGmxI,EAAG94I,IAEzB,OAAA2H,CALqB,EA8DXw7f,CADG,IAAT5qc,EAAapxD,KAAKk7f,UAAUY,GAAU97f,KAAKo7f,UAAUU,IAEzDC,EAAST,GACJS,GAAA,EAEZ,KAAOA,EAASR,GACdQ,IACAA,GAAUf,EAAgBe,KAC1BA,EACaT,IACFS,EAAAR,GAGb,IAAI5ne,EAAQn4B,KAAKk7B,MAAMqle,EAASD,GACzB,OAAAnoe,EAAQ,EAAIA,EAAQ,CAC7B,EAuBM/vB,EAAAq4f,aAAe,SAASjkR,GAqB5B,IApBA,IAAIkkR,EAASl8f,KAAKq6f,WACd8B,EAASn8f,KAAKs6f,WACdh1b,EAAQ0yK,EAAO,GAAG/pK,MAAM,GACxB+vB,EAASg6I,EAAO,GAAG/pK,MAAM,GACzB+zD,EAAyD,EAA9CxmI,KAAKO,MAAMi8O,EAAO,GAAG/pK,MAAM,GAAKiub,EAAS,GACpDj6X,EAA0D,EAA9CzmI,KAAKO,MAAMi8O,EAAO,GAAG/pK,MAAM,GAAKkub,EAAS,GACrDC,EAAW,EAAI92b,EAAQ,EACvB+2b,EAAY,EAAIr+Z,EAAS,EACzBs+Z,EAASlhG,EAAQ,IAAIruV,aAAaqvb,EAAWC,GAAY,CAACD,EAAUC,IACpE56b,EAAI,CACN,EAAIy6b,EACJ,EACA,EACA,EACA,EAAIC,EACJ,EACA,EACA,EACA,GAEOtjgB,EAAI,EAAGA,EAAIm/O,EAAO1+O,SAAUT,EAAG,CACtCmH,KAAKqpd,QAAQmE,SAAS8uC,EAAQtkR,EAAOn/O,IACjC,IAAA0jgB,EAAYnhG,EAAQ,IAAIruV,aAAai1D,EAAWC,GAAY,CAACD,EAAUC,IAChEw5X,EAAAc,EAAWD,EAAQ76b,GAC9Bu2K,EAAOn/O,GAAK0jgB,EAEhB,EAWA34f,EAAMkxf,iBAAmB,WACvB,IAGIj8f,EAAG0I,EAAG7F,EAHN8ggB,EAAY,CAAC,GAAI,GAAI,IACrBC,EAAe,EAAC,GAAO,GAAO,GAC9BC,GAAc,EAElB,IAAK7jgB,EAAI,EAAGA,EAAI,IAAKA,EACf,GAAAmH,KAAKkrd,YAAYryd,KACL6jgB,GAAA,EACV18f,KAAKwoV,YAAY3vV,GAAK,GAA8B,OAAzBmH,KAAKqoV,aAAaxvV,IAAsC,OAAvBmH,KAAKsoV,WAAWzvV,IAAemH,KAAKsoV,WAAWzvV,GAAKmH,KAAKqoV,aAAaxvV,IAEpI,IADA4jgB,EAAa5jgB,IAAK,EACb0I,EAAIvB,KAAKqoV,aAAaxvV,GAAI0I,EAAIvB,KAAKsoV,WAAWzvV,GAAI0I,GAAKvB,KAAKwoV,YAAY3vV,GAC3E6C,EAAQ6F,EAAIvB,KAAKiwH,MAAMm4K,UAAUvvS,GAChB+igB,EAAAY,EAAU3jgB,GAAI6C,GAKvC,GAAIghgB,EAAa,CACf,IAAIC,EAAY,CAAC,GAAI,GAAI,IACzB,IAAK9jgB,EAAI,EAAGA,EAAI,IAAKA,EACfmH,KAAKkrd,YAAYryd,KACT8jgB,EAAA9jgB,GAAK4jgB,EAAa5jgB,GAAK2jgB,EAAU3jgB,GAAKmH,KAAKiwH,MAAM+6V,cAAcnyd,IAG7EmH,KAAKqpd,QAAQ1+b,OAAO,CAAEgrZ,OAAQgnF,IAElC,EACM/4f,EAAA+mB,OAAS,SAASzrB,GACtB,IASIrG,EAAG0I,EAAGugB,EAAGzD,EATT4xG,EAAQjwH,KAAKiwH,MACbuoG,EAAcvoG,EAAM23K,gBACpByhL,EAAUrpd,KAAKqpd,QACf9jC,EAAWymE,EAAgB9sf,GAC3Bk0P,EAAcnjI,EAAMm4K,UACpBxyB,EAAO12Q,EAAK0kB,EAAE,GAAGtqB,OACjB6+R,EAAOj5R,EAAK+xf,SACZjmC,EAAgB/6V,EAAM+6V,cAC1Bhrd,KAAKd,KAAOA,EAEZ,IAAI09f,EAAY,GAChB,IAAK/jgB,EAAI,EAAGA,EAAI,EAAGA,IAEjB,IADU+jgB,EAAA/jgB,GAAK,GACV0I,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpBq7f,EAAU/jgB,GAAG0I,GAAK,GAGtB,IAAKA,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpB,IAAKugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IACpB86e,EAAU,GAAGr7f,GAAGugB,GAAK9hB,KAAKw6f,OAAOj5f,EAAGugB,EAAG5iB,EAAKo3J,UAAWkiE,EAAYtwG,OACnE00Y,EAAU,GAAGr7f,GAAGugB,GAAK9hB,KAAKy6f,OAAOl5f,EAAGugB,EAAG5iB,EAAKq3J,UAAWiiE,EAAYrwG,OACnEy0Y,EAAU,GAAGr7f,GAAGugB,GAAK9hB,KAAK06f,OAAOn5f,EAAGugB,EAAG5iB,EAAKmvf,UAAW71R,EAAYtoG,OAGvE,GAAIhxH,EAAKkpP,YAIP,IAHAlpP,EAAK89U,aAAeZ,EAAYwgL,EAAU,IAC1CzgL,EAASygL,EAAU,GAAI19f,EAAK89U,cAC5B99U,EAAKy7f,eAAiB,GACjBp5f,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IAEpB,IADKrC,EAAAy7f,eAAep5f,GAAK,GACpBugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IACf5iB,EAAAy7f,eAAep5f,GAAGugB,GAAK86e,EAAU,GAAGr7f,GAAGugB,GAIlD,IAAKjpB,EAAI,EAAGA,EAAI,EAAGA,IACjB,IAAK0I,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpB,IAAKugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IAEhBzD,OADJA,EAAIu+e,EAAU/jgB,GAAG0I,GAAGugB,IAElB86e,EAAU/jgB,GAAG0I,GAAGugB,GAAKxmB,IAEjB+iB,EAAAu+e,EAAU/jgB,GAAG0I,GAAGugB,IAAMsxO,EAAYv6P,GAK9C,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IACjB,IAAK0I,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpB,IAAKugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IAEhBzD,OADJA,EAAIu+e,EAAU/jgB,GAAG0I,GAAGugB,MAEd9hB,KAAKm6f,UAAUthgB,GAAKwlB,IACjBre,KAAAm6f,UAAUthgB,GAAKwlB,GAElBre,KAAKo6f,UAAUvhgB,GAAKwlB,IACjBre,KAAAo6f,UAAUvhgB,GAAKwlB,IAM9B,IAAKxlB,EAAI,EAAGA,EAAI,EAAGA,IACZmH,KAAA4pd,aAAa/wd,GAAK,IAAOmH,KAAKm6f,UAAUthgB,GAAKmH,KAAKo6f,UAAUvhgB,IAEnE,IAAKA,EAAI,EAAGA,EAAI,EAAGA,IACjB,IAAK0I,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpB,IAAKugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IAEhBzD,OADJA,EAAIu+e,EAAU/jgB,GAAG0I,GAAGugB,MAER86e,EAAA/jgB,GAAG0I,GAAGugB,IAAM9hB,KAAK4pd,aAAa/wd,IAKhD,IAAIm/O,EAAS,CACXojL,EAAQ,IAAIruV,aAAa6oM,EAAOuiB,GAAO,CAACviB,EAAMuiB,IAC9CijI,EAAQ,IAAIruV,aAAa6oM,EAAOuiB,GAAO,CAACviB,EAAMuiB,IAC9CijI,EAAQ,IAAIruV,aAAa6oM,EAAOuiB,GAAO,CAACviB,EAAMuiB,KAEhD,IAAKt/R,EAAI,EAAGA,EAAI,EAAGA,IACjB,IAAK0I,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpB,IAAKugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IACbk2N,EAAAn/O,GAAGkM,IAAIxD,EAAGugB,EAAG86e,EAAU/jgB,GAAG0I,GAAGugB,IAI1C86e,EAAY,GACZ,IAAI9xS,EAAS,CACXy6N,WACA5P,OAAQ,CAAC,GAAI,GAAI,IACjBu1C,YAAa,EAAC,GAAM,GAAM,GAC1BC,aAAcjsd,EAAKo6f,YACnBztC,eAAgB,CACd,EAAC,GAAO,GAAO,GACf,EAAC,GAAO,GAAO,GACf,EAAC,GAAO,GAAO,IAEjBd,aAAc,CAAC,EAAG,EAAG,GACrBzhB,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IACrD2hB,YAAa,CAAC,EAAG,EAAG,GACpBQ,aAAc,CAAC,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,GAAI,CAAC,EAAG,EAAG,EAAG,IACrDE,aAAc,CAAC,EAAG,EAAG,GACrBD,YAAa,CAAC,EAAG,EAAG,GACpBjiB,aAAcvqc,EAAKuqc,aACnB/oX,QAASxhF,EAAKwhF,SAEZktD,EAAQ0R,EAAYpgJ,GAExB,GADA4rN,EAAO++P,gBAAkB,CAACj8U,EAAMhrI,IAAKgrI,EAAMtoI,KACvCpG,EAAK0wf,aAAc,CACjB,IAAA51D,EAAY5+B,EAAQ,IAAIruV,aAAa6oM,EAAOuiB,GAAO,CAACviB,EAAMuiB,IAC9D,IAAK52R,EAAI,EAAGA,EAAIq0Q,EAAMr0Q,IACpB,IAAKugB,EAAI,EAAGA,EAAIq2Q,EAAMr2Q,IACVk4a,EAAAj1b,IAAIxD,EAAGugB,EAAG5iB,EAAK0wf,aAAa9te,GAAGvgB,IAG7Cy2O,EAAOr+O,KAAKqgc,EAAS,MAErBlvO,EAAO++P,gBAAgB,IAAMz2N,EAAY,GACzCtoC,EAAO++P,gBAAgB,IAAMz2N,EAAY,IAEvCmoQ,EAAiBvjR,EAAO,GAAG/pK,MAAM,IAAMstb,EAAiBvjR,EAAO,GAAG/pK,MAAM,MAC1EjuE,KAAKu6f,YAAa,IAEI,IAApBv6f,KAAKu6f,aACFv6f,KAAAq6f,WAAar6f,KAAK67f,cAAc7jR,EAAO,GAAG/pK,MAAM,GAAI,GACpDjuE,KAAAs6f,WAAat6f,KAAK67f,cAAc7jR,EAAO,GAAG/pK,MAAM,GAAI,GACjC,IAApBjuE,KAAKq6f,YAAwC,IAApBr6f,KAAKs6f,YAChCt6f,KAAKi8f,aAAajkR,IAGlB94O,EAAK0wf,eACA9kS,EAAAkvO,UAAYhiN,EAAOruM,OAE5B,IAAIkzd,EAAkB,EAAC,GAAM,GAAM,GAC/Bzrc,EAAO,CAAC,IAAK,IAAK,KACtB,IAAKv4D,EAAI,EAAGA,EAAI,IAAKA,EAAG,CACtB,IAAIikgB,EAAgB59f,EAAKukM,SAASryI,EAAKv4D,IACvBgkgB,EAAAhkgB,GAAKikgB,EAAcnzD,UACnC7+O,EAAOogQ,YAAYryd,GAAKikgB,EAAc/pU,MAAQ+pU,EAAcnzD,UACvD7+O,EAAOogQ,YAAYryd,KACjBiyN,EAAA+gQ,eAAehzd,GAAK,CACzBikgB,EAAc94V,QAAQt/J,EACtBo4f,EAAc94V,QAAQr/J,EACtBm4f,EAAc94V,QAAQpgJ,GAEpBk5e,EAAc/pU,MACX/yL,KAAAkrd,YAAYryd,IAAK,EACtBiyN,EAAO6qN,OAAO98a,GAAKmyd,EAAcnyd,GACzBwwd,EAAAhxN,eAAex/P,GAAKiyN,EAAOw+O,aAAazwc,GAAKm0f,EAAc8P,EAAc7me,OAC7E6me,EAAczD,YAChBhwC,EAAQgC,cAAcxyd,GAAKiyN,EAAOmgQ,YAAYpyd,GAAK,EAEnDwwd,EAAQgC,cAAcxyd,GAAKiyN,EAAOmgQ,YAAYpyd,GAAK,EAE9CiyN,EAAAigQ,aAAalyd,GAAKikgB,EAAcx3b,MAClCtlE,KAAAqoV,aAAaxvV,GAAKikgB,EAAc1igB,MAChC4F,KAAAsoV,WAAWzvV,GAAKikgB,EAAczigB,IAC9B2F,KAAAwoV,YAAY3vV,GAAKikgB,EAAcx9f,OAE/BU,KAAAkrd,YAAYryd,IAAK,EACjBmH,KAAAqoV,aAAaxvV,GAAK,KAClBmH,KAAAsoV,WAAWzvV,GAAK,KAChBmH,KAAAwoV,YAAY3vV,GAAK,GAEpBikgB,EAAcnzD,YAChB7+O,EAAO2gQ,aAAa5yd,GAAKm0f,EAAc8P,EAAcxkQ,gBAC9CxtC,EAAA6gQ,aAAa9yd,GAAKikgB,EAActkQ,kBA7yB7C,SAA4B+sL,GACtB,IAAAl9a,EAAQk9a,EAAS,GAAGrvZ,IACpB5tB,EAAOi9a,EAASA,EAASjsb,OAAS,GAAG48B,IAClC,OAAA7tB,EAAM,KAAOC,EAAK,IAAMD,EAAM,KAAOC,EAAK,IAAMD,EAAM,KAAOC,EAAK,IAAMD,EAAM,KAAOC,EAAK,IA6yB7Fy0f,CAAmBx3E,KACrBz6N,EAAOkhQ,aAAc,GAEvBlhQ,EAAO8+P,aAAe5pd,KAAK4pd,aAC3B9+P,EAAOktB,OAASA,EAChBqxO,EAAQ1+b,OAAOmgM,GACfu+P,EAAQlpY,QAAUjhF,EAAKihF,QACvBkpY,EAAQkC,cAAgBsxC,EACxBxzC,EAAQ+B,gBAAkByxC,EAC1BxzC,EAAQ3Y,YAAa,EACjB,aAAcxxc,IACRmqd,EAAAluB,aAAej8b,EAAKs6f,SAASz9D,QAC7BstB,EAAAjuB,aAAel8b,EAAKs6f,SAASx9D,QAC7BqtB,EAAAhuB,cAAgBn8b,EAAKs6f,SAASv9D,SAC9BotB,EAAA/tB,UAAYp8b,EAAKs6f,SAASl+D,UAC1B+tB,EAAA9tB,QAAUr8b,EAAKs6f,SAASj+D,SAE9B,kBAAmBr8b,IACbmqd,EAAAnuB,cAAgB,CAACh8b,EAAKq6f,cAAc70f,EAAGxF,EAAKq6f,cAAc50f,EAAGzF,EAAKq6f,cAAc31e,GAE5F,EACAhgB,EAAMyrb,QAAU,WACdrvb,KAAKiwH,MAAMo4K,OAAOpmR,OAAOjiB,KAAKqpd,SAC9Brpd,KAAKqpd,QAAQh6B,SACf,EAUA72a,EAAOjc,QATE,SAAmB0zH,EAAO/wH,GAC7B,IAAA0+Z,EAAM3tS,EAAMo4K,OAAOgkJ,GACnBg9B,EAAU2wC,EAAc,CAAE3tE,GAAIzuB,IAC9B/uZ,EAAS,IAAIqrf,EAAajqY,EAAOo5V,EAASnqd,EAAKyhF,KAI5C,OAHP0oY,EAAQknC,OAAS1hf,EACjBA,EAAO8b,OAAOzrB,GACR+wH,EAAAo4K,OAAOjvR,IAAIiwc,GACVx6c,MAOTmuf,GAAkBrlf,EAAW,CAC/B,8BAA8Bpb,EAASic,GAErCA,EAAOjc,QAAU,CACfgsF,WAAY4wa,KACZ31Z,eAAgBi2Z,KAAqBj2Z,eACrCm2B,SAAU,CACR/2H,IAAK,OACL0C,IAAK,QAEP4oI,KAAM4rX,KACN1nY,KAAM2nY,KACN70Z,WAAY,QACZj5F,KAAM,UACN41F,eAAgB62Z,KAChBh3Z,WAAY,CAAC,OAAQ,QAAS,cAC9B3gB,KAAM,CAAA,MAMRk8a,GAAmBtlf,EAAW,CAChC,iBAAiBpb,EAASic,GAExBA,EAAOjc,QAAUyggB,QAKjBE,GAAuBvlf,EAAW,CACpC,kCAAkCpb,EAASic,GAEzC,IAAIqvI,EAAkBhB,KAClBzF,EAAkBH,KAAiCG,gBACnD1kD,EAAqBP,KAA8BO,mBACnDyga,EAAehE,KACfhwY,EAAYnpC,IACZvD,EAAaT,IAAiBS,WAClCjkE,EAAOjc,QAAUkgF,EACf,CACE/3E,EAAG,CACDu4E,QAAS,aACTF,SAAU,uBAEZp4E,EAAG,CACDs4E,QAAS,aACTF,SAAU,uBAEZn5D,EAAG,CACDq5D,QAAS,aACTF,SAAU,uBAEZlkF,EAAG,CACDokF,QAAS,aACTF,SAAU,QAEZx7E,EAAG,CACD07E,QAAS,aACTF,SAAU,QAEZj7D,EAAG,CACDm7D,QAAS,aACTF,SAAU,QAEZxzD,KAAM,CACJ0zD,QAAS,SACTE,KAAM,GACNkB,SAAS,EACTtB,SAAU,QAEZ2pK,UAAW,CACTzpK,QAAS,SACTE,KAAM,GACNkB,SAAS,EACTtB,SAAU,QAEZ4f,cAAeD,EAAmB,CAAE3f,SAAU,SAC9CwhI,aAAcn9D,EAAgB,KAC9Bo9D,aAAcp9D,EAAgB,KAC9BurL,aAAcvrL,EAAgB,KAC9Bg8W,aAAc,CACZngb,QAAS,aACT/+D,OAAQ,CAAC,IAAK,IAAK,KACnBi/D,KAAM,IACNJ,SAAU,QAEZsgb,UAAW,CACTpgb,QAAS,SACTE,MAAM,EACNJ,SAAU,QAEZi9W,UAAW,CACT/8W,QAAS,aACTF,SAAU,QAEZugb,cAAe,CACbrgb,QAAS,aACT/+D,OAAQ,CAAC,SAAU,QACnBi/D,KAAM,SACNJ,SAAU,QAGZ9mD,MAAO,CACLgnD,QAAS,QACTF,SAAU,QAEZ4oH,YAAa,CACX1oH,QAAS,aACTF,SAAU,QAEZ6oH,UAAW,CACT3oH,QAAS,aACTF,SAAU,SAGd8qE,EAAgB,GAAI,CAClBZ,UAAW,cACXE,eAAe,EACfjsD,iBAAkB,SAEpB,CACExa,QAASy8a,EAAaz8a,QAEtB68a,YAAa,CACXtgb,QAAS,UACTE,MAAM,EACNJ,SAAU,QAEZ4ga,QAAS,CACP5qT,KAAMt2G,EAAW,GAAI0gb,EAAa15T,SAAS/+L,EAAEquL,KAAM,IACnD98J,MAAOkne,EAAa15T,SAAS/+L,EAAEuxB,MAC/BqvC,MAAO63b,EAAa15T,SAAS/+L,EAAE4gE,MAC/ByX,SAAU,QAEZw8a,cAAe,CACb70f,EAAG+3E,EAAW,CAAA,EAAI0gb,EAAa5D,cAAc70f,EAAG,CAAEy4E,KAAM,MACxDx4E,EAAG83E,EAAW,CAAA,EAAI0gb,EAAa5D,cAAc50f,EAAG,CAAEw4E,KAAM,MACxDv5D,EAAG64D,EAAW,CAAA,EAAI0gb,EAAa5D,cAAc31e,EAAG,CAAEu5D,KAAM,IACxDJ,SAAU,QAEZy8a,SAAU/8a,EAAW,CACnB+gb,qBAAsB,CACpBvgb,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,MAENJ,SAAU,QAEZ0gb,mBAAoB,CAClBxgb,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,KAENJ,SAAU,QAEZA,SAAU,QACTogb,EAAa3D,UAChBv4a,UAAWxE,EAAW,GAAI0sC,EAAUloC,UAAW,CAAElE,SAAU,SAC3DqD,WAAY3D,EAAW,GAAI0sC,EAAU/oC,WAAY,CAAEjD,MAAM,SAO7Dugb,GAAuB/lf,EAAW,CACpC,sCAAsCpb,EAASic,GAE7C,IAAIqvI,EAAkBhB,KAClBzF,EAAkBH,KAAiCG,gBACnD1kD,EAAqBP,KAA8BO,mBACnDiha,EAAYT,KACZ/zY,EAAYnpC,IACZvD,EAAaT,IAAiBS,WAC9Bwe,EAAcN,KAAqBM,YAiCnC5d,EAAQ7kE,EAAOjc,QAAU0+F,EAAYxe,EACvC,CACE/3E,EAAG,CACDu4E,QAAS,cAEXt4E,EAAG,CACDs4E,QAAS,cAEXr5D,EAAG,CACDq5D,QAAS,cAEXvhF,MAAO,CACLuhF,QAAS,cAEX2gb,OAAQ,CACN3gb,QAAS,UAEX4gb,OAAQ,CACN5gb,QAAS,UAEXosY,QAAS,CACPt2R,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAER7hE,MAAO,CACL2hE,QAAS,UACTE,KAAM,EACNv6E,IAAK,GAEPyB,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,GAERwe,QAAS,CACP1e,QAAS,WACTc,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,KAC5Bb,OAAQ,CAAC,MAAO,MAAO,QACvBC,KAAM,QAGV2gb,WAAY,CACV/qU,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,MAGVvF,OAAQ,CACNlzE,EAvFG,CACLquL,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAERo0E,UAAW,CACTt0E,QAAS,aACTE,KAAM,IAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,IA2ENx4E,EAxFG,CACLouL,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAERo0E,UAAW,CACTt0E,QAAS,aACTE,KAAM,IAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,IA4ENv5D,EAzFG,CACLmvK,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAERo0E,UAAW,CACTt0E,QAAS,aACTE,KAAM,IAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,KA8ER4gb,KAAM,CACJr5f,EA1EG,CACLquL,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,IAkENx4E,EA3EG,CACLouL,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,IAmENv5D,EA5EG,CACLmvK,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,KAqER5zD,KAAM,CACJ0zD,QAAS,SACTE,KAAM,GACNkB,SAAS,GAEXqoK,UAAW,CACTzpK,QAAS,SACTE,KAAM,GACNkB,SAAS,GAEXse,cAAeD,IACf6hH,aAAcn9D,EAAgB,KAC9Bo9D,aAAcp9D,EAAgB,KAC9BurL,aAAcvrL,EAAgB,KAC9Bu0W,iBAAkBv0W,EAAgB,QAAS,GAC3ChhE,WAAY3D,EAAW,GAAI0sC,EAAU/oC,WAAY,CAAEjD,MAAM,KAE3D0qE,EAAgB,GAAI,CAClBZ,UAAW,UACXE,eAAe,EACfjsD,iBAAkB,SAEpB,CACExa,QAASi9a,EAAUj9a,QACnB64a,cAAeoE,EAAUpE,cACzBC,SAAUmE,EAAUnE,SACpB+D,YAAaI,EAAUJ,YACvB5f,QAASggB,EAAUhgB,QACnB18Z,UAAWxE,EAAW,GAAI0sC,EAAUloC,aAErC,OAAQ,UACX5D,EAAMkgb,YAAYpgb,MAAO,EACnBE,EAAAm8a,SAASiE,mBAAmBtgb,KAAO,EACnCE,EAAA34E,EAAEq4E,SAAWM,EAAM14E,EAAEo4E,SAAWM,EAAMz5D,EAAEm5D,SAAWM,EAAM3hF,MAAMqhF,SAAW,yBAKhFihb,GAAqBrmf,EAAW,CAClC,oCAAoCpb,EAASic,GAE3C,IAAIspG,EAAMrN,KACN9O,EAAW1E,KACX1Y,EAAam1a,KACb9mP,EAAqBxqH,KAOzB,SAAS6xW,EAAkB10a,EAASC,EAAU+3C,EAAcpwH,EAAQi3E,GAC9D,IAAAw1a,EAASx1a,EAAO,UAChBy1a,EAASz1a,EAAO,UAChBy1a,eAAwCD,GAAwCA,EAASC,IAC3Fr0a,EAASo0a,OAAS,KAClBp0a,EAASq0a,OAAS,MAEhB,IAAAn5f,EAAI0jF,EAAO,KACXzjF,EAAIyjF,EAAO,KACXxkE,EAAIwkE,EAAO,KACX1sF,EAAQ0sF,EAAO,SACd1jF,GAAMA,EAAEpL,QAAWqL,GAAMA,EAAErL,QAAWsqB,GAAMA,EAAEtqB,QAAWoC,GAAUA,EAAMpC,QAIjDqsG,EAASJ,mBAAmB,YAAa,sBACtEowK,CAAuBpsL,EAASC,EAAU,CAAC,IAAK,IAAK,KAAMr4E,GAC3Di3E,EAAO,oBACP,CAAC,IAAK,IAAK,KAAK11E,SAAQ,SAAS00Q,GAC/Bh/L,EAAOg/L,EAAM,eACb,IAAI82O,EAAS,QAAU92O,EACTh/L,EAAO81a,EAAS,UAE5B91a,EAAO81a,EAAS,SAElB,IAAIC,EAAW,UAAY/2O,EACXh/L,EAAO+1a,EAAW,WAEhC/1a,EAAO+1a,EAAW,SAClB/1a,EAAO+1a,EAAW,cACpB,IAEmB/1a,EAAO,oBAE1BA,EAAO,mBAESA,EAAO,kBAEvBA,EAAO,iBACPA,EAAO,gBACPA,EAAO,oBAESA,EAAO,kBAEvBA,EAAO,iBACPA,EAAO,kBAET,CACE,OACA,YACA,gBACA,mBACA,mBACA,oBACA,qBACA,mBACA,gCACA,8BACA,kBACA,kBACA,kBACA,cACA,WACA11E,SAAQ,SAAS47B,GACjB85C,EAAO95C,EAAE,IAEQsoO,EAAArtL,EAASC,EAAUr4E,EAAQi3E,EAAQ,CAAEr/D,OAAQ,GAAIw2H,QAAS,MAC7E/1D,EAASwqB,QAAU,MAvDjBxqB,EAASrJ,SAAU,EAyDvB3nE,EAAOjc,QAAU,CACfinG,eA5EF,SAAwBja,EAASC,EAAU+3C,EAAcpwH,GAIvD8sf,EAAkB10a,EAASC,EAAU+3C,EAAcpwH,GAH1C,SAAO6X,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,OA2EzD8gb,wBAMFG,GAAiBzmf,EAAW,CAC9B,gCAAgCpb,EAASic,GAEvC,IAAIspG,EAAMrN,KACNkiN,EAAiB1oK,KAkErB,SAASowW,EAAYj5Z,GACnB,IAIIvsG,EAAG0I,EAAGugB,EAQNw8e,EACAC,EACAC,EACAC,EAAQ5kG,EACR6kG,EAAQC,EACRC,EAAQC,EAjBRn6f,EAAI0gG,EAAM4hH,GACVriN,EAAIygG,EAAM6hH,GACVrjM,EAAIwhF,EAAMq3O,GACVvjV,EAAMksG,EAAMkiR,KAEZznU,GAAO,IACPD,EAAOrkD,IACPwkD,GAAO,IACPD,EAAOvkD,IACPujgB,GAAO,IACPC,EAAOxjgB,IACPuqd,EAAW,GAiBf,IAVI5sd,IACFulgB,EAAS/5f,EAAE,GACXg6f,EAAS/5f,EAAE,GACXi6f,EAASh7e,EAAE,IAET1qB,EAAM,IACA2ga,EAAAn1Z,EAAExL,EAAM,GACRylgB,EAAAh6f,EAAEzL,EAAM,GACR2lgB,EAAAj7e,EAAE1qB,EAAM,IAEbL,EAAI,EAAGA,EAAIK,EAAKL,IACnBgnD,EAAOrkD,KAAK8J,IAAIu6C,EAAMn7C,EAAE7L,IACxB+mD,EAAOpkD,KAAKoH,IAAIg9C,EAAMl7C,EAAE7L,IACxBknD,EAAOvkD,KAAK8J,IAAIy6C,EAAMp7C,EAAE9L,IACxBinD,EAAOtkD,KAAKoH,IAAIk9C,EAAMn7C,EAAE9L,IACxBimgB,EAAOtjgB,KAAK8J,IAAIw5f,EAAMl7e,EAAE/qB,IACxBkmgB,EAAOvjgB,KAAKoH,IAAIm8f,EAAMn7e,EAAE/qB,IACnBylgB,GAAW55f,EAAE7L,KAAO4lgB,IACbH,GAAA,EACEx4C,GAAA,KAETy4C,GAAW55f,EAAE9L,KAAO6lgB,IACbH,GAAA,EACEz4C,GAAA,KAET04C,GAAW56e,EAAE/qB,KAAO+lgB,IACbJ,GAAA,EACE14C,GAAA,KAGXw4C,IAAqBx4C,GAAA,KACrBy4C,IAAqBz4C,GAAA,KACrB04C,IAAqB14C,GAAA,KACtB,IAAAk5C,EAAKp0Z,EAAaxF,EAAM4hH,IACxBi4S,EAAKr0Z,EAAaxF,EAAM6hH,IACxBi4S,EAAKt0Z,EAAaxF,EAAMq3O,IAG5BqpI,GADAA,GADAA,EAAWA,EAASvgd,QAAQ,KAAMk5f,EAAS5kG,EAAQ,IAAM,KAAO,MAC5Ct0Z,QAAQ,KAAMm5f,EAASC,EAAQ,IAAM,KAAO,MAC5Cp5f,QAAQ,KAAMq5f,EAASC,EAAQ,IAAM,KAAO,KAChE,IAAI38e,EAAQ,WACJhpB,EAAA,EACN8lgB,EAAK,GACLC,EAAK,GACLC,EAAK,EACP,IACKhmgB,GAAOA,EAAM8lgB,EAAG1lgB,OAAS2lgB,EAAG3lgB,OAAS4lgB,EAAG5lgB,SAAc4oB,IACvD,IAAAi9e,EAAW,SAASxjgB,GACtB,MAAa,MAANA,EAAY+I,EAAU,MAAN/I,EAAYgJ,EAAIif,CACzC,EACIw7e,EAAU,SAASzjgB,GACrB,MAAa,MAANA,EAAYqjgB,EAAW,MAANrjgB,EAAYsjgB,EAAKC,CAC3C,EACIG,EAAS,SAAS1jgB,GACpB,OAAOA,EAAEzC,EAAM,GAAKyC,EAAE,IAAU,EAAA,CAClC,EACI2jgB,EAAOH,EAASr5C,EAAS,IACzBy5C,EAAOJ,EAASr5C,EAAS,IACzB05C,EAAOL,EAASr5C,EAAS,IACzBr3Y,EAAK2wb,EAAQt5C,EAAS,IAAIxsd,OAC1B+0E,EAAK+wb,EAAQt5C,EAAS,IAAIxsd,OAC1Bi1E,EAAK6wb,EAAQt5C,EAAS,IAAIxsd,OAC1BmmgB,GAAY,EACZC,EAAW,SAASxlI,EAAIylI,EAAIC,GACvB,OAAAnxb,GAAMJ,EAAK6rT,EAAKylI,GAAMC,CAC/B,EACIC,EAAOR,EAAOF,EAASr5C,EAAS,KAChCg6C,EAAOT,EAAOF,EAASr5C,EAAS,KAChCi6C,EAAOV,EAAOF,EAASr5C,EAAS,KACpC,IAAKjtd,EAAI,EAAGA,EAAI01E,EAAK,EAAG11E,IAAK,CAC3B,IAAK0I,EAAI,EAAGA,EAAI8sE,EAAK,EAAG9sE,IAAK,CAC3B,IAAKugB,EAAI,EAAGA,EAAI2sD,EAAK,EAAG3sD,IAAK,CAC3B,IAAIk+e,EAAON,EAAS7mgB,EAAG0I,EAAGugB,GACtBm+e,EAAOP,EAAS7mgB,EAAG0I,EAAGugB,EAAI,GAC1Bo+e,EAAOR,EAAS7mgB,EAAG0I,EAAI,EAAGugB,GAC1Bq+e,EAAOT,EAAS7mgB,EAAI,EAAG0I,EAAGugB,GAI9B,GAHMw9e,EAAKU,GAAQH,EAAOP,EAAKW,GAAQJ,GAAWN,EAAKS,GAAQF,EAAOP,EAAKW,GAAQJ,GAAWN,EAAKQ,GAAQD,EAAOP,EAAKW,GAAQJ,IACjHN,GAAA,GAEVA,EAAW,MAEjB,GAAIA,EAAW,MAEjB,GAAIA,EAAW,MAMV,OAJHA,IACF39Y,EAAIxzB,KAAK,iEACHpsE,KAED,CACL09B,OACAE,OACAi/c,OACAl/c,OACAE,OACA++c,OACAE,KACAC,KACAC,KACAhmgB,MACAmL,KAAMyhd,GAGV,SAASl7W,EAAa+sX,GACb,OAAA71W,EAAIlX,aAAa+sX,GAAK7sX,KAEtB,SAAA//E,EAAOjyB,EAAKI,GAEf,QADQ,IAARA,IAAgBA,EAAMJ,EAAIQ,QAC1BwoH,EAAIh2C,aAAahzE,UAAaA,EAAIqO,SAAS,EAAGjO,GAElD,IADA,IAAIglB,EAAS,GACJrlB,EAAI,EAAGA,EAAIK,EAAKL,IACvBqlB,EAAOrlB,IAAMC,EAAID,GAEZ,OAAAqlB,EAET1F,EAAOjc,QAAU,CACf2xI,KAvMO,SAAKz6H,EAAI2xF,GAChBA,EAAMkiR,KAAO9rX,KAAKoH,IAChBwiG,EAAM7zE,EAAEj4B,OACR8rG,EAAM/mF,EAAE/kB,OACR8rG,EAAM54E,EAAElzB,OACR8rG,EAAM1gG,EAAEpL,OACR8rG,EAAMzgG,EAAErL,OACR8rG,EAAMxhF,EAAEtqB,QAEV8rG,EAAMg7Z,GAAKr1e,EAAOq6E,EAAM7zE,EAAG6zE,EAAMkiR,MACjCliR,EAAMi7Z,GAAKt1e,EAAOq6E,EAAM/mF,EAAG+mF,EAAMkiR,MACjCliR,EAAMk7Z,GAAKv1e,EAAOq6E,EAAM54E,EAAG44E,EAAMkiR,MACjCliR,EAAM4hH,GAAKj8L,EAAOq6E,EAAM1gG,EAAG0gG,EAAMkiR,MACjCliR,EAAM6hH,GAAKl8L,EAAOq6E,EAAMzgG,EAAGygG,EAAMkiR,MACjCliR,EAAMq3O,GAAK1xT,EAAOq6E,EAAMxhF,EAAGwhF,EAAMkiR,MAC7B,IAAAx0L,EAAOurU,EAAYj5Z,GACvBA,EAAMm7Z,UAAYztU,EAAKzuL,KACvB+gG,EAAMo7Z,IAAM1tU,EAAKksU,GACjB55Z,EAAMq7Z,IAAM3tU,EAAKmsU,GACjB75Z,EAAMs7Z,IAAM5tU,EAAKosU,GACjB95Z,EAAMkiR,KAAOx0L,EAAK55L,IAClB,IACIyngB,EAAQC,EAAQC,EADhBC,EAAO,EAEP17Z,EAAM80K,SACRymP,EAAS51e,EAAOq6E,EAAM80K,OAAOx1Q,GAAK,IAClCk8f,EAAS71e,EAAOq6E,EAAM80K,OAAOv1Q,GAAK,IAClCk8f,EAAS91e,EAAOq6E,EAAM80K,OAAOt2P,GAAK,IAClCk9e,EAAOtlgB,KAAKoH,IAAI+9f,EAAOrngB,OAAQsngB,EAAOtngB,OAAQungB,EAAOvngB,SAEjD8rG,EAAA27Z,SAAWJ,GAAU,GACrBv7Z,EAAA47Z,SAAWJ,GAAU,GACrBx7Z,EAAA67Z,SAAWJ,GAAU,GAC3B,IAEIhogB,EAFAqogB,EAAU,EACVC,EAAU5lgB,IAEd,IAAK1C,EAAI,EAAGA,EAAIusG,EAAMkiR,KAAMzuX,IAAK,CAC3B,IAAA04B,EAAI6zE,EAAMg7Z,GAAGvngB,GACbwlB,EAAI+mF,EAAMi7Z,GAAGxngB,GACb2zB,EAAI44E,EAAMk7Z,GAAGzngB,GACb0lR,EAAO/iR,KAAKmjB,KAAK4S,EAAIA,EAAIlT,EAAIA,EAAImO,EAAIA,GAC/B00e,EAAA1lgB,KAAK8J,IAAI47f,EAAS3iP,GAClB4iP,EAAA3lgB,KAAKoH,IAAIu+f,EAAS5iP,GAO9B,IALAo4C,EAAeljT,EAAI2xF,EAAO,CACxB0F,KAAM,CAACq2Z,EAASD,GAChB/zY,aAAc,GACdoyB,QAAS,MAEN1mJ,EAAI,EAAGA,EAAIiogB,EAAMjogB,IAAK,CACrB,IAAAm3C,EAAK2wd,EAAO9ngB,GAChBi6L,EAAKjzI,KAAOrkD,KAAK8J,IAAIwtL,EAAKjzI,KAAM7P,GAChC8iJ,EAAKlzI,KAAOpkD,KAAKoH,IAAIkwL,EAAKlzI,KAAM5P,GAC5B,IAAAC,EAAK2wd,EAAO/ngB,GAChBi6L,EAAK/yI,KAAOvkD,KAAK8J,IAAIwtL,EAAK/yI,KAAM9P,GAChC6iJ,EAAKhzI,KAAOtkD,KAAKoH,IAAIkwL,EAAKhzI,KAAM7P,GAC5B,IAAA+iY,EAAK6tF,EAAOhogB,GAChBi6L,EAAKgsU,KAAOtjgB,KAAK8J,IAAIwtL,EAAKgsU,KAAM9rF,GAChClgP,EAAKisU,KAAOvjgB,KAAKoH,IAAIkwL,EAAKisU,KAAM/rF,GAElC5tU,EAAMg8Z,MAAQN,EACd17Z,EAAMi8Z,SAAWH,EACjB97Z,EAAMk8Z,OAAS,CAACxuU,EAAKlzI,KAAMkzI,EAAKjzI,MAChCulD,EAAMm8Z,OAAS,CAACzuU,EAAKhzI,KAAMgzI,EAAK/yI,MAChCqlD,EAAMo8Z,OAAS,CAAC1uU,EAAKisU,KAAMjsU,EAAKgsU,OAyIhC/ze,SACAsze,kBAMFoD,GAAiB9pf,EAAW,CAC9B,gCAAgCpb,EAASic,GAEvC,IAAIm+S,EAAiB1oK,KACjBowW,EAAcD,KAAiBC,YAC/Btze,EAASqze,KAAiBrze,OAC9BvS,EAAOjc,QAAU,SAAckX,EAAI2xF,GACjCA,EAAMkiR,KAAO9rX,KAAKoH,IAChBwiG,EAAM1gG,EAAEpL,OACR8rG,EAAMzgG,EAAErL,OACR8rG,EAAMxhF,EAAEtqB,OACR8rG,EAAM1pG,MAAMpC,QAEd8rG,EAAM4hH,GAAKj8L,EAAOq6E,EAAM1gG,EAAG0gG,EAAMkiR,MACjCliR,EAAM6hH,GAAKl8L,EAAOq6E,EAAMzgG,EAAGygG,EAAMkiR,MACjCliR,EAAMq3O,GAAK1xT,EAAOq6E,EAAMxhF,EAAGwhF,EAAMkiR,MACjCliR,EAAM87E,OAASn2J,EAAOq6E,EAAM1pG,MAAO0pG,EAAMkiR,MACrC,IAAAx0L,EAAOurU,EAAYj5Z,GACvBA,EAAMm7Z,UAAYztU,EAAKzuL,KACvB+gG,EAAMo7Z,IAAM1tU,EAAKksU,GACjB55Z,EAAMq7Z,IAAM3tU,EAAKmsU,GACjB75Z,EAAMs7Z,IAAM5tU,EAAKosU,GACjB95Z,EAAMkiR,KAAOx0L,EAAK55L,IAGlB,IAFA,IAAI0J,EAAMrH,IACN+J,GAAM,IACDzM,EAAI,EAAGA,EAAIusG,EAAMkiR,KAAMzuX,IAAK,CAC/B,IAAAwlB,EAAI+mF,EAAM87E,OAAOroL,GACf+J,EAAApH,KAAKoH,IAAIA,EAAKyb,GACd/Y,EAAA9J,KAAK8J,IAAIA,EAAK+Y,GAEtB+mF,EAAMs8Z,WAAa9+f,EACnBwiG,EAAMu8Z,WAAar8f,EACb8/F,EAAAw8Z,WAAyB,IAAjBx8Z,EAAMw4Z,QAAsC,OAAjBx4Z,EAAMw4Z,OAAkBh7f,EAAMwiG,EAAMw4Z,OACvEx4Z,EAAAy8Z,WAAyB,IAAjBz8Z,EAAMy4Z,QAAsC,OAAjBz4Z,EAAMy4Z,OAAkBv4f,EAAM8/F,EAAMy4Z,OAC7ElnM,EAAeljT,EAAI2xF,EAAO,CACxB0F,KAAM,CAAC1F,EAAMw8Z,MAAOx8Z,EAAMy8Z,OAC1B10Y,aAAc,GACdoyB,QAAS,KAEb,KAKAuiX,GAAenqf,EAAW,CAC5B,yBAAyBpb,EAASic,GAEhCA,EAAOjc,QAAU,SAAcmI,EAAGC,EAAGif,EAAG1qB,GACtCA,EAAMA,GAAOwL,EAAEpL,OAEf,IADI,IAAAuV,EAAS,IAAI7U,MAAMd,GACdL,EAAI,EAAGA,EAAIK,EAAKL,IAChBgW,EAAAhW,GAAK,CAAC6L,EAAE7L,GAAI8L,EAAE9L,GAAI+qB,EAAE/qB,IAEtB,OAAAgW,CACT,KAKAkzf,GAAmBpqf,EAAW,CAChC,mCAAmCpb,EAASic,GAEtC,IAAA0hb,EAAa7/B,KAA0BU,UACvCixF,EAAkBhB,KAA0BgB,gBAC5Cjgb,EAAsB0oC,KAAc1oC,oBACpCihb,EAAgBjC,KAChBzrW,EAAc8O,KAAqB9O,YACnC0iX,EAAOF,KACPG,EAAoB,SAASz1e,EAAG1zB,GAClC,IAAA,IAAS87B,EAAI97B,EAAIQ,OAAS,EAAGs7B,EAAI,EAAGA,IAAK,CACnC,IAAAhyB,EAAMpH,KAAKoH,IAAI9J,EAAI87B,GAAI97B,EAAI87B,EAAI,IAC/BtvB,EAAM9J,KAAK8J,IAAIxM,EAAI87B,GAAI97B,EAAI87B,EAAI,IACnC,GAAItvB,EAAM1C,GAAOA,EAAM4pB,GAAKA,GAAKlnB,EACxB,MAAA,CACL+O,GAAIugB,EACJste,WAAY58f,EAAMknB,IAAMlnB,EAAM1C,IAI7B,MAAA,CACLyR,GAAI,EACJ6tf,UAAW,EAEf,EACS,SAAAC,EAAgBlyY,EAAO0lU,EAAMh1W,GACpC3gF,KAAKiwH,MAAQA,EACbjwH,KAAK2gF,IAAMA,EACX3gF,KAAK21b,KAAOA,EACZ31b,KAAKiM,KAAO,GACZjM,KAAKd,KAAO,KACZc,KAAKkrd,aAAc,EAErB,IAAItnd,EAAQu+f,EAAgBjlgB,UACtB0G,EAAAmsf,WAAa,SAASrqe,GACtB,GAAAA,EAAU5Q,SAAW9U,KAAK21b,KAAM,CAC9B,IAAAysE,EAAQ18e,EAAUxmB,KAAKkyC,MACvB1sC,EAAI1E,KAAKd,KAAKmjgB,OAAOD,GACrBz9f,EAAI3E,KAAKd,KAAKojgB,OAAOF,GACrBx+e,EAAI5jB,KAAKd,KAAKqjgB,OAAOH,GACrBpka,EAASh+F,KAAKd,KAAKuhgB,IAAInngB,OACvBkpB,EAAQxiB,KAAKd,KAAKwhgB,IAAIpngB,OACtBT,EAAIopgB,EAAkBv9f,EAAG1E,KAAKd,KAAKshgB,KAAKnsf,GACxC9S,EAAI0ggB,EAAkBt9f,EAAG3E,KAAKd,KAAKuhgB,KAAKpsf,GACxCyN,EAAImgf,EAAkBr+e,EAAG5jB,KAAKd,KAAKwhgB,KAAKrsf,GACxCmuf,EAAc98e,EAAU0rB,MAAQtvB,EAAIU,EAAQjhB,EAAIihB,EAAQw7E,EAASnlG,EACrE6sB,EAAUuqe,gBAAkB,CAC1Bjwf,KAAKd,KAAKmjgB,OAAOG,GACjBxigB,KAAKd,KAAKojgB,OAAOE,GACjBxigB,KAAKd,KAAKqjgB,OAAOC,GACjBxigB,KAAKd,KAAKgiL,OAAOshV,IAEnB,IAAIj5e,EAAOvpB,KAAKd,KAAKwnP,WAAa1mP,KAAKd,KAAKqqB,KAMrC,OALHwiD,EAAoBxiD,SAA+B,IAAtBA,EAAKi5e,GAC1B98e,EAAAsqe,UAAYzme,EAAKi5e,GAClBj5e,IACT7D,EAAUsqe,UAAYzme,IAEjB,EAEX,EACM3lB,EAAA+mB,OAAS,SAASzrB,GACtB,IAAI+wH,EAAQjwH,KAAKiwH,MACb9+G,EAAS8+G,EAAM23K,gBAEnB,SAAS66N,EAAarxc,EAAMkgD,EAAO39E,EAAOqyE,GACjC,OAAAsL,EAAMrxF,KAAI,SAASvb,GACxB,OAAO0sD,EAAK6rC,IAAIv4F,EAAG,EAAGshG,GAAYryE,CAAA,IAHjC3zB,KAAAd,KAAOwjgB,EAAkBxjgB,GAM9B,IAMIkS,EAAS,CACXisQ,UAPc2kP,EACdS,EAAatxf,EAAO+2G,MAAOhpH,EAAKmjgB,OAAQpyY,EAAMm4K,UAAU,GAAIlpS,EAAKo3J,WACjEmsW,EAAatxf,EAAOg3G,MAAOjpH,EAAKojgB,OAAQryY,EAAMm4K,UAAU,GAAIlpS,EAAKq3J,WACjEksW,EAAatxf,EAAO++G,MAAOhxH,EAAKqjgB,OAAQtyY,EAAMm4K,UAAU,GAAIlpS,EAAKmvf,YAKjEz/c,MAHUozd,EAAK9igB,EAAKyjgB,OAAQzjgB,EAAK0jgB,OAAQ1jgB,EAAK2jgB,QAI9C3nE,cAAe,CAACh8b,EAAKq6f,cAAc70f,EAAGxF,EAAKq6f,cAAc50f,EAAGzF,EAAKq6f,cAAc31e,GAC/Em4a,QAAS78b,EAAKs6f,SAASz9D,QACvBC,QAAS98b,EAAKs6f,SAASx9D,QACvBC,SAAU/8b,EAAKs6f,SAASv9D,SACxBX,UAAWp8b,EAAKs6f,SAASl+D,UACzBC,QAASr8b,EAAKs6f,SAASj+D,QACvBsP,qBAAsB3rc,EAAKs6f,SAASgE,qBACpC1yD,mBAAoB5rc,EAAKs6f,SAASiE,mBAClC/8a,QAASxhF,EAAKwhF,QACd6oX,cAAerqc,EAAKy+e,QAAQ5qT,KAC5Bu2Q,aAAc0jD,EAAc9tf,EAAKy+e,QAAQ1nd,OAAOn4B,MAAM,EAAG,GACzDitd,aAAc7rd,EAAKy+e,QAAQr4a,MAC3BylY,gBAAiB7rc,EAAKq+f,aAEpB3vX,EAAQ0R,EAAYpgJ,GACxBkS,EAAO2nb,gBAAkB75b,EAAK4jgB,eAC9B1xf,EAAO4nb,sBAAwB,CAACprT,EAAMhrI,IAAKgrI,EAAMtoI,KAC1C8L,EAAAm0a,SAAWymE,EAAgB9sf,GAC7Bc,KAAA21b,KAAKhra,OAAOvZ,EACnB,EACAxN,EAAMyrb,QAAU,WACdrvb,KAAKiwH,MAAMo4K,OAAOpmR,OAAOjiB,KAAK21b,MAC9B31b,KAAK21b,KAAKtG,SACZ,EACA,IAAI+0B,EAAa,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,OACrD,SAASs+C,EAAkBxjgB,GACzBA,EAAKyjgB,OAAS,GACdzjgB,EAAK0jgB,OAAS,GACd1jgB,EAAK2jgB,OAAS,GACV,IAOA35E,EACA65E,EA4BAC,EACAC,EACAC,EACAC,EAkDAC,EAzFAj4C,EAAcjsd,EAAKmqd,QAAQt2R,KAC3BswU,EAAiBnkgB,EAAK4+f,WAAW/qU,KACjCuwU,EAAcpkgB,EAAKmqd,QAAQhld,KAC3Bk/f,EAAiBrkgB,EAAK4+f,WAAWz5f,KACjCm/f,GAAiB,EACjBC,GAAoB,EACpB52B,EAAW,EAGXmyB,EAAK9/f,EAAKshgB,IACVvB,EAAK//f,EAAKuhgB,IACVvB,EAAKhggB,EAAKwhgB,IACVp7b,EAAQ05b,EAAG1lgB,OACX0kG,EAASiha,EAAG3lgB,OACZkpB,EAAQ08e,EAAG5lgB,OACX6sd,EAAS/B,EAAWjqd,QAAQ+E,EAAKqhgB,UAAUh7f,QAAQ,KAAM,IAAIA,QAAQ,MAAO,KAC5Em6f,EAAW,SAAS7mgB,EAAG0I,EAAGugB,GAC5B,OAAQqkc,GACN,KAAK,EACH,OAAOrkc,EAAIU,EAAQjhB,EAAIihB,EAAQw7E,EAASnlG,EAC1C,KAAK,EACH,OAAOipB,EAAIU,EAAQ3pB,EAAI2pB,EAAQ8iD,EAAQ/jE,EACzC,KAAK,EACH,OAAOA,EAAIy8F,EAASl8E,EAAIk8E,EAASx7E,EAAQ3pB,EAC3C,KAAK,EACH,OAAO0I,EAAIy8F,EAASnlG,EAAImlG,EAAS14B,EAAQxjD,EAC3C,KAAK,EACH,OAAOjpB,EAAIysE,EAAQxjD,EAAIwjD,EAAQ9iD,EAAQjhB,EACzC,QACE,OAAO1I,EAAIysE,EAAQ/jE,EAAI+jE,EAAQ04B,EAASl8E,EAE9C,EACIq4e,EAAYj7f,EAAKwigB,WACjBtH,EAAYl7f,EAAKyigB,WACjB+B,EAAOxkgB,EAAK0igB,MACZ+B,EAAOzkgB,EAAK2igB,MAKP,SAAA+B,EAAal/f,EAAGC,EAAGif,GAE1B,IADA,IAAI1qB,EAAMiqgB,EAAM7pgB,OACP6hB,EAAI4nf,EAAoB5nf,EAAIjiB,EAAKiiB,IACpC,GAAAzW,IAAMs+f,EAAM7nf,IAAMxW,IAAMs+f,EAAM9nf,IAAMyI,IAAMs/e,EAAM/nf,GAC3C,OAAAA,EAGJ,OAAA,EAET,SAAS0of,IACcd,EAAA75E,EAEvB,SAAS46E,IACPd,EAAQ,GACRC,EAAQ,GACRC,EAAQ,GACRC,EAAQ,GACMj6E,EAAA,EACH26E,IAEb,SAASE,EAAUr/f,EAAGC,EAAGif,EAAGvF,GAM1B,OALA2kf,EAAMrpgB,KAAK+K,GACXu+f,EAAMtpgB,KAAKgL,GACXu+f,EAAMvpgB,KAAKiqB,GACXu/e,EAAMxpgB,KAAK0kB,KACX6qa,EACqB,EAgBd,SAAA1vB,EAAW7nR,EAAIE,EAAI76G,GAE1B,IADA,IAAIsnC,EAAI,GACCzlE,EAAI,EAAGA,EAAI84I,EAAGr4I,OAAQT,IAC3BylE,EAAAzlE,GAAK84I,EAAG94I,IAAM,EAAIm+B,GAAKA,EAAI66G,EAAGh5I,GAE3B,OAAAylE,EAGT,SAAS0lc,EAAQ3/f,GACF++f,EAAA/+f,EAiCN,SAAA4/f,EAAc1vf,EAAO2vf,GAC5B,MAAc,QAAV3vf,GAA6B,OAAVA,GAChBA,EAAMpa,QAAQ+pgB,IAAQ,EAEtB,SAAAC,EAAS5vf,EAAO7Y,GACnB,OAAU,OAAV6Y,EAAuB7Y,EACpB6Y,EAEA,SAAA6vf,EAAQ7vf,EAAO8vf,EAAMv+E,GACjB+9E,IACP,IAlEWp/f,EAAG9F,EAAGhD,EAkEjB2ogB,EAAW,CAACD,GACZE,EAAU,CAACz+E,GACf,GAAIs9E,GAAc,EAChBkB,EAAW,CAACD,GACZE,EAAU,CAACz+E,QAAG,GACLs9E,EAAa,EAAG,CACrB,IAAAoB,EA/CC,SAAcH,EAAMv+E,GACvB,IAAAn0S,EAAK0yX,EAAK,GACVxyX,EAAKwyX,EAAK,GACV3pH,EAAK2pH,EAAK,GACVja,EAtBG,SAAUz4W,EAAIE,EAAI6oQ,GAEzB,IADA,IAAIp8U,EAAI,GACCzlE,EAAI,EAAGA,EAAI84I,EAAGr4I,OAAQT,IAC3BylE,EAAAzlE,IAAM84I,EAAG94I,GAAKg5I,EAAGh5I,GAAK6hZ,EAAG7hZ,IAAM,EAE5B,OAAAylE,EAiBCmmc,CAAU9yX,EAAIE,EAAI6oQ,GACtB1jX,EAAIx7B,KAAKmjB,KAAK,EAAIykf,GAClBzjf,EAAK65Y,EAAW4wF,EAAGz4W,EAAI36G,GACvBs2B,EAAKksW,EAAW4wF,EAAGv4W,EAAI76G,GACvB63B,EAAK2qW,EAAW4wF,EAAG1vG,EAAI1jX,GACvBvyB,EAAIqhb,EAAI,GACRnnb,EAAImnb,EAAI,GACRnqb,EAAImqb,EAAI,GACL,MAAA,CACLu+E,KAAM,CACJ,CAAC1yX,EAAIE,EAAIvkF,GACT,CAACA,EAAI3tC,EAAIgyH,GACT,CAACE,EAAI6oQ,EAAI7rV,GACT,CAACA,EAAIvB,EAAIukF,GACT,CAAC6oQ,EAAI/oQ,EAAIhyH,GACT,CAACA,EAAIkvC,EAAI6rV,IAEXorC,IAAK,CACH,CAACrhb,EAAG9F,GAAK,GACT,EAAK,GAAA,EAAI8F,GACT,CAAC9F,EAAGhD,GAAK,GACT,EAAK,GAAA,EAAIgD,GACT,CAAChD,EAAG8I,GAAK,GACT,EAAK,GAAA,EAAI9I,KAoBG+ogB,CAAcL,EAAMv+E,GAClCw+E,EAAWE,EAAQH,KACnBE,EAAUC,EAAQ1+E,IAEpB,IAAA,IAAS3qa,EAAI,EAAGA,EAAImpf,EAAShrgB,OAAQ6hB,IAAK,CACxCkpf,EAAOC,EAASnpf,GAChB2qa,EAAMy+E,EAAQppf,GAEd,IADA,IAAIwpf,EAAO,GACF9rgB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI6L,EAAI2/f,EAAKxrgB,GAAG,GACZ8L,EAAI0/f,EAAKxrgB,GAAG,GACZ+qB,EAAIygf,EAAKxrgB,GAAG,GACZwlB,EAAIgmf,EAAKxrgB,GAAG,GACZwb,EAAKyxa,EAAIjtb,IAAK,EAAKitb,EAAIjtb,GAAK+qgB,EAAal/f,EAAGC,EAAGif,GAEjD+gf,EAAK9rgB,GADHwb,GAAS,EACDA,EAEA0vf,EAAUr/f,EAAGC,EAAGif,EAAGugf,EAAS5vf,EAAO8J,IAzFpC5Z,EA4FLkggB,EAAK,GA5FGhmgB,EA4FCgmgB,EAAK,GA5FHhpgB,EA4FOgpgB,EAAK,GA3F5BzlgB,EAAAyjgB,OAAOhpgB,KAAK8K,GACZvF,EAAA0jgB,OAAOjpgB,KAAKgF,GACZO,EAAA2jgB,OAAOlpgB,KAAKgC,KACjBkxe,GA2GF,SAAS+3B,EAAiBC,EAAUC,EAASligB,EAAK0C,GAC5C,IAAA5J,EAAQmpgB,EAAS,GACjBnpgB,EAAQkH,IAAalH,EAAAkH,GACrBlH,EAAQ4J,IAAa5J,EAAA4J,GAGzB,IAFI,IAAAq/C,GAASkgd,EAAS,GAAKnpgB,IAAUmpgB,EAAS,GAAKC,EAAQ,GAAK,MAC5Dj2f,EAAS,GACJxT,EAAI,EAAGA,EAAI,EAAGA,IACdwT,EAAAxT,IAAM,EAAIspD,GAASkgd,EAASxpgB,GAAKspD,EAAQmgd,EAAQzpgB,GAEnD,OAAAwT,EAEA,SAAAk2f,EAAQrpgB,EAAOkH,EAAK0C,GACpB,OAAA5J,GAASkH,GAAOlH,GAAS4J,EAElC,SAAS0/f,EAAmBtpgB,GACtB,IAAAupgB,EAAO,MAAQtB,EAAOD,GAC1B,OAAOhogB,GAASgogB,EAAOuB,GAAQvpgB,GAASiogB,EAAOsB,EAEjD,SAASC,EAAQC,GAEf,IADA,IAAId,EAAO,GACFzve,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACtB,IAAAwc,EAAQ+zd,EAASvwe,GAChByve,EAAA1qgB,KACH,CACEuF,EAAK8nN,GAAG51K,GACRlyC,EAAK+nN,GAAG71K,GACRlyC,EAAKu9U,GAAGrrS,GACRlyC,EAAKgiL,OAAO9vI,KAIX,OAAAizd,EAGT,SAASe,EAAa7wf,EAAO8vf,EAAMv+E,EAAKljb,EAAK0C,EAAK+/f,GAC3CA,IAAeA,EAAA,GACdv/E,EAAA,EAAK,GAAA,GAAM,GACjB,IAAIj3a,GAAS,EACTolE,EAAK,CACP8wb,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,GACzBy/f,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,GACzBy/f,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,IAEvB,IAAC2uE,EAAG,KAAOA,EAAG,KAAOA,EAAG,GACnB,OAAA,EAET,IAAIqxb,EAAa,SAASC,EAAQC,EAAOC,GACvC,OAEET,EAAmBQ,EAAM,GAAG,KAAOR,EAAmBQ,EAAM,GAAG,KAAOR,EAAmBQ,EAAM,GAAG,KAE1FpB,EAAAmB,EAAQC,EAAOC,IAChB,GACEJ,EApBA,GAqBFD,EAAaG,EAAQC,EAAOC,EAAM/B,EAAMC,IAAQ0B,EAG3D,EACI,GAAApxb,EAAG,IAAMA,EAAG,IAAMA,EAAG,GACvB,OAAOqxb,EAAW/wf,EAAO8vf,EAAMv+E,IAAQj3a,EAEzC,IAAI62f,GAAe,EAiBnB,MAhBA,CACE,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,IACPhzf,SAAQ,SAAS5X,GACjB,GAAIm5E,EAAGn5E,EAAE,KAAOm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,IAAK,CACrC,IAAI62I,EAAK0yX,EAAKvpgB,EAAE,IACZ+2I,EAAKwyX,EAAKvpgB,EAAE,IACZ4/Y,EAAK2pH,EAAKvpgB,EAAE,IACZ6kB,EAAKilf,EAAiBlqH,EAAI/oQ,EAAI/uI,EAAK0C,GACnCgoD,EAAKs3c,EAAiBlqH,EAAI7oQ,EAAIjvI,EAAK0C,GACvCuJ,EAASy2f,EAAW/wf,EAAO,CAAC+4C,EAAI3tC,EAAIgyH,GAAK,EAAK,GAAA,EAAIm0S,EAAIhrb,EAAE,OAAS+T,EACxDA,EAAAy2f,EAAW/wf,EAAO,CAACo9H,EAAIE,EAAIvkF,GAAK,CAACw4X,EAAIhrb,EAAE,IAAKgrb,EAAIhrb,EAAE,KAAK,KAAQ+T,EACzD62f,GAAA,EACjB,IAEEA,GACJ,CACE,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,IACPhzf,SAAQ,SAAS5X,GACjB,GAAIm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,IAAK,CACtC,IAAI62I,EAAK0yX,EAAKvpgB,EAAE,IACZ+2I,EAAKwyX,EAAKvpgB,EAAE,IACZ4/Y,EAAK2pH,EAAKvpgB,EAAE,IACZ6kB,EAAKilf,EAAiB/yX,EAAIF,EAAI/uI,EAAK0C,GACnCgoD,EAAKs3c,EAAiBlqH,EAAI/oQ,EAAI/uI,EAAK0C,GACvCuJ,EAASy2f,EAAW/wf,EAAO,CAAC+4C,EAAI3tC,EAAIgyH,GAAK,EAAK,GAAA,EAAIm0S,EAAIhrb,EAAE,OAAS+T,EAClD62f,GAAA,EACjB,IAduB72f,EAkB3B,SAAS82f,EAAepxf,EAAOqxf,EAAMhjgB,EAAK0C,GACxC,IAAIuJ,GAAS,EACTw1f,EAAOa,EAAQU,GACf3xb,EAAK,CACP8wb,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,GACzBy/f,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,GACzBy/f,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,GACzBy/f,EAAQV,EAAK,GAAG,GAAIzhgB,EAAK0C,IAE3B,KAAK2uE,EAAG,IAAOA,EAAG,IAAOA,EAAG,IAAOA,EAAG,IAC7B,OAAAplE,EAEL,GAAAolE,EAAG,IAAMA,EAAG,IAAMA,EAAG,IAAMA,EAAG,GAIzB,OAHHwvb,IACF50f,EAvHG,SAAU0F,EAAO8vf,EAAMuB,GAC9B,IAAIC,EAAU,SAAShtgB,EAAG0I,EAAGugB,GACnBsif,EAAA7vf,EAAO,CAAC8vf,EAAKxrgB,GAAIwrgB,EAAK9igB,GAAI8igB,EAAKvif,IAAK,CAAC8jf,EAAK/sgB,GAAI+sgB,EAAKrkgB,GAAIqkgB,EAAK9jf,IACtE,EACQ+jf,EAAA,EAAG,EAAG,GACNA,EAAA,EAAG,EAAG,GACNA,EAAA,EAAG,EAAG,GACNA,EAAA,EAAG,EAAG,GAgHDC,CAAUvxf,EAAO8vf,EAAMuB,IAAS/2f,GAEpCA,EAET,IAAI62f,GAAe,EAuBnB,MAtBA,CACE,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,IACVhzf,SAAQ,SAAS5X,GACb,GAAAm5E,EAAGn5E,EAAE,KAAOm5E,EAAGn5E,EAAE,KAAOm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,IAAK,CACjD,IAAI62I,EAAK0yX,EAAKvpgB,EAAE,IACZ+2I,EAAKwyX,EAAKvpgB,EAAE,IACZ4/Y,EAAK2pH,EAAKvpgB,EAAE,IACZmwD,EAAKo5c,EAAKvpgB,EAAE,IAChB,GAAI2ogB,EACO50f,EAAAu1f,EAAQ7vf,EAAO,CAACo9H,EAAIE,EAAI6oQ,GAAK,CAACkrH,EAAK9qgB,EAAE,IAAK8qgB,EAAK9qgB,EAAE,IAAK8qgB,EAAK9qgB,EAAE,OAAS+T,MAC1E,CACL,IAAI8Q,EAAKilf,EAAiB35c,EAAI0mF,EAAI/uI,EAAK0C,GACnCgoD,EAAKs3c,EAAiB35c,EAAI4mF,EAAIjvI,EAAK0C,GACnCupD,EAAK+1c,EAAiB35c,EAAIyvV,EAAI93Y,EAAK0C,GACvCuJ,EAASu1f,EAAQ,KAAM,CAACzkf,EAAI2tC,EAAIuB,GAAK,EAAK,GAAA,GAAM,KAAMhgD,EAEzC62f,GAAA,EACjB,IAEEA,IACJ,CACE,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,IACVhzf,SAAQ,SAAS5X,GACb,GAAAm5E,EAAGn5E,EAAE,KAAOm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,IAAK,CAClD,IAAI62I,EAAK0yX,EAAKvpgB,EAAE,IACZ+2I,EAAKwyX,EAAKvpgB,EAAE,IACZ4/Y,EAAK2pH,EAAKvpgB,EAAE,IACZmwD,EAAKo5c,EAAKvpgB,EAAE,IACZ6kB,EAAKilf,EAAiBlqH,EAAI/oQ,EAAI/uI,EAAK0C,GACnCgoD,EAAKs3c,EAAiBlqH,EAAI7oQ,EAAIjvI,EAAK0C,GACnCupD,EAAK+1c,EAAiB35c,EAAI4mF,EAAIjvI,EAAK0C,GACnCyggB,EAAKnB,EAAiB35c,EAAI0mF,EAAI/uI,EAAK0C,GACnCm+f,GACF50f,EAASu1f,EAAQ7vf,EAAO,CAACo9H,EAAIo0X,EAAIpmf,GAAK,CAACimf,EAAK9qgB,EAAE,KAAS,GAAA,KAAQ+T,EAC/DA,EAASu1f,EAAQ7vf,EAAO,CAACs9H,EAAIvkF,EAAIuB,GAAK,CAAC+2c,EAAK9qgB,EAAE,KAAS,GAAA,KAAQ+T,GAE/DA,EA/KC,SAAS0F,EAAO8vf,EAAMuB,GAC7B,IAAIC,EAAU,SAAShtgB,EAAG0I,EAAGugB,GACnBsif,EAAA7vf,EAAO,CAAC8vf,EAAKxrgB,GAAIwrgB,EAAK9igB,GAAI8igB,EAAKvif,IAAK,CAAC8jf,EAAK/sgB,GAAI+sgB,EAAKrkgB,GAAIqkgB,EAAK9jf,IACtE,EACQ+jf,EAAA,EAAG,EAAG,GACNA,EAAA,EAAG,EAAG,GA0KCG,CAAS,KAAM,CAACrmf,EAAI2tC,EAAIuB,EAAIk3c,GAAK,EAAK,GAAA,GAAQ,GAAA,KAAQl3f,EAElD62f,GAAA,EACjB,IAEEA,GACJ,CACE,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,GACV,CAAC,EAAG,EAAG,EAAG,IACVhzf,SAAQ,SAAS5X,GACb,GAAAm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,MAAQm5E,EAAGn5E,EAAE,IAAK,CACnD,IAAI62I,EAAK0yX,EAAKvpgB,EAAE,IACZ+2I,EAAKwyX,EAAKvpgB,EAAE,IACZ4/Y,EAAK2pH,EAAKvpgB,EAAE,IACZmwD,EAAKo5c,EAAKvpgB,EAAE,IACZ6kB,EAAKilf,EAAiB/yX,EAAIF,EAAI/uI,EAAK0C,GACnCgoD,EAAKs3c,EAAiBlqH,EAAI/oQ,EAAI/uI,EAAK0C,GACnCupD,EAAK+1c,EAAiB35c,EAAI0mF,EAAI/uI,EAAK0C,GACnCm+f,GACF50f,EAASu1f,EAAQ7vf,EAAO,CAACo9H,EAAIhyH,EAAI2tC,GAAK,CAACs4c,EAAK9qgB,EAAE,KAAS,GAAA,KAAQ+T,EAC/DA,EAASu1f,EAAQ7vf,EAAO,CAACo9H,EAAIrkF,EAAIuB,GAAK,CAAC+2c,EAAK9qgB,EAAE,KAAS,GAAA,KAAQ+T,EAC/DA,EAASu1f,EAAQ7vf,EAAO,CAACo9H,EAAI9iF,EAAIlvC,GAAK,CAACimf,EAAK9qgB,EAAE,KAAS,GAAA,KAAQ+T,GAE/DA,EAASu1f,EAAQ,KAAM,CAACzkf,EAAI2tC,EAAIuB,GAAK,EAAK,GAAA,GAAM,KAAMhgD,EAEzC62f,GAAA,EACjB,KAlDuB72f,EAsDlB,SAAAo3f,EAAQ1xf,EAAO2xf,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAM7jgB,EAAK0C,GAC3E,IAAIuJ,GAAS,EAqBN,OApBH20f,IACES,EAAc1vf,EAAO,OACd1F,EAAA82f,EAAe,KAAM,CAACO,EAAMC,EAAMC,EAAME,GAAO1jgB,EAAK0C,IAAQuJ,GAEnEo1f,EAAc1vf,EAAO,OACd1F,EAAA82f,EAAe,KAAM,CAACQ,EAAMC,EAAMC,EAAMI,GAAO7jgB,EAAK0C,IAAQuJ,GAEnEo1f,EAAc1vf,EAAO,OACd1F,EAAA82f,EAAe,KAAM,CAACQ,EAAMG,EAAMC,EAAME,GAAO7jgB,EAAK0C,IAAQuJ,GAEnEo1f,EAAc1vf,EAAO,OACd1F,EAAA82f,EAAe,KAAM,CAACS,EAAME,EAAME,EAAMC,GAAO7jgB,EAAK0C,IAAQuJ,GAEnEo1f,EAAc1vf,EAAO,OACd1F,EAAA82f,EAAe,KAAM,CAACQ,EAAMC,EAAME,EAAMG,GAAO7jgB,EAAK0C,IAAQuJ,IAGrE40f,IACO50f,EAAA82f,EAAepxf,EAAO,CAAC4xf,EAAMC,EAAME,EAAMG,GAAO7jgB,EAAK0C,IAAQuJ,GAEjEA,EAEA,SAAA63f,EAAQnyf,EAAO9P,EAAG9F,EAAGhD,EAAGP,EAAGwH,EAAK0C,EAAKqhgB,GACrC,MAAA,EACiB,IAAtBA,EAAe,IAAqBvB,EAAa7wf,EAAO2wf,EAAQ,CAACzggB,EAAG9F,EAAGhD,IAAK,CAAC8I,EAAG9F,EAAGhD,GAAIiH,EAAK0C,IACtE,IAAtBqhgB,EAAe,IAAqBvB,EAAa7wf,EAAO2wf,EAAQ,CAACvpgB,EAAGP,EAAGqJ,IAAK,CAAC9I,EAAGP,EAAGqJ,GAAI7B,EAAK0C,IAGvF,SAAAshgB,EAAYryf,EAAOsyf,EAAKC,EAAKC,EAAKC,EAAKpkgB,EAAK0C,EAAKopa,EAAQi4F,GAChE,OAAIj4F,EACKg4F,EAAQnyf,EAAOsyf,EAAKC,EAAKE,EAAKD,EAAKnkgB,EAAK0C,EAAKqhgB,GAE7CD,EAAQnyf,EAAOuyf,EAAKE,EAAKD,EAAKF,EAAKjkgB,EAAK0C,EAAKqhgB,GAGxD,SAASM,EAAa1yf,EAAO1b,EAAG0I,EAAGugB,EAAGlf,EAAK0C,EAAK4hgB,GAC9C,IACIv1X,EAAIE,EAAI6oQ,EAAIzvV,EADZp8C,GAAS,EAETs4f,EAAc,WAChBt4f,EAASu2f,EAAa7wf,EAAO,CAACo9H,EAAIE,EAAI6oQ,GAAK,EAAC,GAAQ,GAAA,GAAK93Y,EAAK0C,IAAQuJ,EACtEA,EAASu2f,EAAa7wf,EAAO,CAACmmY,EAAIzvV,EAAI0mF,GAAK,EAAC,GAAQ,GAAA,GAAK/uI,EAAK0C,IAAQuJ,CACxE,EACIusT,EAAK8rM,EAAW,GAChB7rM,EAAK6rM,EAAW,GAChBE,EAAKF,EAAW,GAsBb,OArBH9rM,IACFzpL,EAAK6nR,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIs5S,GACtGvpL,EAAK2nR,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIs5S,GACtGs/E,EAAK8e,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIs5S,GACtGnwQ,EAAKuuW,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIs5S,GAC1F+rM,KAEV9rM,IACF1pL,EAAK6nR,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIu5S,GACtGxpL,EAAK2nR,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIu5S,GACtGq/E,EAAK8e,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIu5S,GACtGpwQ,EAAKuuW,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAGugB,EAAI,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIu5S,GAC1F8rM,KAEVC,IACFz1X,EAAK6nR,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIslf,GACtGv1X,EAAK2nR,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIslf,GACtG1sH,EAAK8e,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIslf,GACtGn8c,EAAKuuW,EAAW0rG,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,KAAK,GAAIojf,EAAQ,CAACxF,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,KAAK,GAAIslf,GAC1FD,KAEPt4f,EAET,SAASw4f,EAAY9yf,EAAO2xf,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAM7jgB,EAAK0C,EAAKopa,GACpF,IAAI44F,EAAY/yf,EAChB,OAAIm6Z,GACE80F,GAA4B,SAAVjvf,IAA8B+yf,EAAA,MAC7CrB,EAAQqB,EAAWpB,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAMC,EAAM7jgB,EAAK0C,KAE3Ek+f,GAA4B,QAAVjvf,IAA6B+yf,EAAA,MAC5CrB,EAAQqB,EAAWb,EAAMD,EAAMD,EAAMD,EAAMD,EAAMD,EAAMD,EAAMD,EAAMtjgB,EAAK0C,IAGnF,SAASiigB,EAAQhzf,EAAOuzE,EAAOllF,EAAK0C,EAAKqhgB,GAGvC,IAFA,IAAI93f,EAAS,GACTrO,EAAI,EACCo0B,EAAI,EAAGA,EAAIkzD,EAAMxuF,OAAQs7B,IAEhC,IADI,IAAA/7B,EAAIivF,EAAMlzD,GACL9S,EAAI,EAAGA,EAAIU,EAAOV,IACzB,IAAA,IAASvgB,EAAI,EAAGA,EAAIy8F,EAAQz8F,IACnBsN,EAAAlV,KACLitgB,EACEryf,EACAmrf,EAAS7mgB,EAAG0I,EAAI,EAAGugB,EAAI,GACvB49e,EAAS7mgB,EAAG0I,EAAI,EAAGugB,GACnB49e,EAAS7mgB,EAAG0I,EAAGugB,EAAI,GACnB49e,EAAS7mgB,EAAG0I,EAAGugB,GACflf,EACA0C,GACCzM,EAAI0I,EAAIugB,GAAK,EACd6kf,GAAkBA,EAAenmgB,GAAKmmgB,EAAenmgB,GAAK,KAG9DA,IAIC,OAAAqO,EAET,SAAS24f,EAAQjzf,EAAOuzE,EAAOllF,EAAK0C,EAAKqhgB,GAGvC,IAFA,IAAI93f,EAAS,GACTrO,EAAI,EACCo0B,EAAI,EAAGA,EAAIkzD,EAAMxuF,OAAQs7B,IAEhC,IADI,IAAArzB,EAAIumF,EAAMlzD,GACL/7B,EAAI,EAAGA,EAAIysE,EAAOzsE,IACzB,IAAA,IAASipB,EAAI,EAAGA,EAAIU,EAAOV,IAClBjT,EAAAlV,KACLitgB,EACEryf,EACAmrf,EAAS7mgB,EAAI,EAAG0I,EAAGugB,EAAI,GACvB49e,EAAS7mgB,EAAG0I,EAAGugB,EAAI,GACnB49e,EAAS7mgB,EAAI,EAAG0I,EAAGugB,GACnB49e,EAAS7mgB,EAAG0I,EAAGugB,GACflf,EACA0C,GACCzM,EAAI0I,EAAIugB,GAAK,EACd6kf,GAAkBA,EAAenmgB,GAAKmmgB,EAAenmgB,GAAK,KAG9DA,IAIC,OAAAqO,EAET,SAAS44f,EAAQlzf,EAAOuzE,EAAOllF,EAAK0C,EAAKqhgB,GAGvC,IAFA,IAAI93f,EAAS,GACTrO,EAAI,EACCo0B,EAAI,EAAGA,EAAIkzD,EAAMxuF,OAAQs7B,IAEhC,IADI,IAAA9S,EAAIgmE,EAAMlzD,GACLrzB,EAAI,EAAGA,EAAIy8F,EAAQz8F,IAC1B,IAAA,IAAS1I,EAAI,EAAGA,EAAIysE,EAAOzsE,IAClBgW,EAAAlV,KACLitgB,EACEryf,EACAmrf,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,GACvB49e,EAAS7mgB,EAAI,EAAG0I,EAAGugB,GACnB49e,EAAS7mgB,EAAG0I,EAAI,EAAGugB,GACnB49e,EAAS7mgB,EAAG0I,EAAGugB,GACflf,EACA0C,GACCzM,EAAI0I,EAAIugB,GAAK,EACd6kf,GAAkBA,EAAenmgB,GAAKmmgB,EAAenmgB,GAAK,KAG9DA,IAIC,OAAAqO,EAEA,SAAA64f,EAAOnzf,EAAO3R,EAAK0C,GAC1B,IAAA,IAASwc,EAAI,EAAGA,EAAIU,EAAOV,IACzB,IAAA,IAASvgB,EAAI,EAAGA,EAAIy8F,EAAQz8F,IAC1B,IAAA,IAAS1I,EAAI,EAAGA,EAAIysE,EAAOzsE,IACzBwugB,EACE9yf,EACAmrf,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,EAAI,GAC3B49e,EAAS7mgB,EAAI,EAAG0I,EAAI,EAAGugB,GACvB49e,EAAS7mgB,EAAI,EAAG0I,EAAGugB,EAAI,GACvB49e,EAAS7mgB,EAAI,EAAG0I,EAAGugB,GACnB49e,EAAS7mgB,EAAG0I,EAAI,EAAGugB,EAAI,GACvB49e,EAAS7mgB,EAAG0I,EAAI,EAAGugB,GACnB49e,EAAS7mgB,EAAG0I,EAAGugB,EAAI,GACnB49e,EAAS7mgB,EAAG0I,EAAGugB,GACflf,EACA0C,GACCzM,EAAI0I,EAAIugB,GAAK,GAWf,SAAA6lf,EAAYpzf,EAAO3R,EAAK0C,GACdk+f,GAAA,EACVkE,EAAAnzf,EAAO3R,EAAK0C,GACFk+f,GAAA,EAEnB,SAASoE,GAAarzf,EAAOuzE,EAAOllF,EAAK0C,EAAK4hgB,EAAYP,GAGxD,IAFA,IAAI93f,EAAS,GACTrO,EAAI,EACCo0B,EAAI,EAAGA,EAAIkzD,EAAMxuF,OAAQs7B,IAEhC,IADI,IAAA/7B,EAAIivF,EAAMlzD,GACL9S,EAAI,EAAGA,EAAIU,EAAOV,IACzB,IAAA,IAASvgB,EAAI,EAAGA,EAAIy8F,EAAQz8F,IACnBsN,EAAAlV,KACLstgB,EACE1yf,EACA1b,EACA0I,EACAugB,EACAlf,EACA0C,EACA4hgB,EAAWtye,GACX+xe,GAAkBA,EAAenmgB,IAAKmmgB,EAAenmgB,KAGzDA,IAIC,OAAAqO,EAET,SAASg5f,GAAatzf,EAAOuzE,EAAOllF,EAAK0C,EAAK4hgB,EAAYP,GAGxD,IAFA,IAAI93f,EAAS,GACTrO,EAAI,EACCo0B,EAAI,EAAGA,EAAIkzD,EAAMxuF,OAAQs7B,IAEhC,IADI,IAAArzB,EAAIumF,EAAMlzD,GACL/7B,EAAI,EAAGA,EAAIysE,EAAOzsE,IACzB,IAAA,IAASipB,EAAI,EAAGA,EAAIU,EAAOV,IAClBjT,EAAAlV,KACLstgB,EACE1yf,EACA1b,EACA0I,EACAugB,EACAlf,EACA0C,EACA4hgB,EAAWtye,GACX+xe,GAAkBA,EAAenmgB,IAAKmmgB,EAAenmgB,KAGzDA,IAIC,OAAAqO,EAET,SAASi5f,GAAavzf,EAAOuzE,EAAOllF,EAAK0C,EAAK4hgB,EAAYP,GAGxD,IAFA,IAAI93f,EAAS,GACTrO,EAAI,EACCo0B,EAAI,EAAGA,EAAIkzD,EAAMxuF,OAAQs7B,IAEhC,IADI,IAAA9S,EAAIgmE,EAAMlzD,GACLrzB,EAAI,EAAGA,EAAIy8F,EAAQz8F,IAC1B,IAAA,IAAS1I,EAAI,EAAGA,EAAIysE,EAAOzsE,IAClBgW,EAAAlV,KACLstgB,EACE1yf,EACA1b,EACA0I,EACAugB,EACAlf,EACA0C,EACA4hgB,EAAWtye,GACX+xe,GAAkBA,EAAenmgB,IAAKmmgB,EAAenmgB,KAGzDA,IAIC,OAAAqO,EAEA,SAAA2mD,GAAY/wD,EAAG9F,GAEtB,IADA,IAAI0N,EAAQ,GACHuoB,EAAInwB,EAAGmwB,EAAIj2B,EAAGi2B,IACrBvoB,EAAM1S,KAAKi7B,GAEN,OAAAvoB,EAiIF,OAhHP,WACgBy3f,IAhBhB,WACE,IAAA,IAASjrgB,EAAI,EAAGA,EAAIysE,EAAOzsE,IACzB,IAAA,IAAS0I,EAAI,EAAGA,EAAIy8F,EAAQz8F,IAC1B,IAAA,IAASugB,EAAI,EAAGA,EAAIU,EAAOV,IAAK,CAC9B,IAAIsvB,EAAQsud,EAAS7mgB,EAAG0I,EAAGugB,GAC3Biif,EACE7kgB,EAAK8nN,GAAG51K,GACRlyC,EAAK+nN,GAAG71K,GACRlyC,EAAKu9U,GAAGrrS,GACRlyC,EAAKgiL,OAAO9vI,KAQH22d,GACjB,IAAIlua,EAAc,KAKlB,GAJIwpa,GAAkBE,IACpBS,EAAQT,GA/GUE,GAAA,EACbiE,EA+GU7ta,EAAa6pa,EAAMC,GA9GhBF,GAAA,GAgHhBt4C,GAAem4C,EAAa,CAC9BU,EAAQV,GAGR,IAFI,IAAA0E,EAAiB9ogB,EAAKmqd,QAAQ1tX,QAC9Bssa,EAAe/ogB,EAAKmqd,QAAQ/tc,MACvBsZ,EAAI,EAAGA,EAAIqze,EAAcrze,IAAK,CACrC,IAAI+vB,EAAyB,IAAjBsjd,EAAqB,GAAMrze,GAAKqze,EAAe,GACvDltb,GAAS,EAAIp2B,GAAS++c,EAAO/+c,EAAQg/c,EAGrC7sE,EAFKt7b,KAAKK,IAAIk/E,EAAQo/a,GACjB3+f,KAAKK,IAAIk/E,EAAQq/a,GACH,CAACD,EAAWp/a,GAAS,CAACA,EAAOq/a,GACpDuN,EAAYK,EAAgBlxE,EAAO,GAAIA,EAAO,KAGlD,IAAIoxE,EAAc,CAChB,CAAC1sgB,KAAKoH,IAAI8ggB,EAAMtJ,GAAY5+f,KAAK8J,IAAIo+f,EAAMtJ,IAC3C,CAAC5+f,KAAKoH,IAAIu3f,EAAWwJ,GAAOnogB,KAAK8J,IAAI60f,EAAWwJ,KAElD,CAAC,IAAK,IAAK,KAAKjxf,SAAQ,SAAS5X,GAE/B,IADA,IAAIqtgB,EAAS,GACJ9sgB,EAAI,EAAGA,EAAI6sgB,EAAY5ugB,OAAQ+B,IAAK,CAC3C,IAAIigB,EAAQ,EACR8sf,EAAYF,EAAY7sgB,GAAG,GAC3BgtgB,EAAYH,EAAY7sgB,GAAG,GAC3ByC,EAAQoB,EAAK04E,OAAO98E,GACpB,GAAAgD,EAAMi1L,MAAQj1L,EAAMuG,KAAM,CAC5B2/f,EAAQlmgB,EAAMuG,MACd,IAAIikgB,EAAe,GACfC,EAAc,GACdrB,EAAa,GACb,GAAAppgB,EAAMyzJ,UAAUj4J,OAClB,IAAA,IAAS87E,EAAK,EAAGA,EAAKt3E,EAAMyzJ,UAAUj4J,OAAQ87E,IAAM,CAClD,IAAI+d,EAAO8ua,EACTnkgB,EAAMyzJ,UAAUn8E,GACV,MAANt6E,EAAYkkgB,EAAW,MAANlkgB,EAAYmkgB,EAAKC,GAEb,IAAnB/ra,EAAK+ua,UACMoG,EAAA3ugB,KAAKw5F,EAAK9+E,IACd8+E,EAAK9+E,GAAK,IACPk0f,EAAA5ugB,KAAKw5F,EAAK9+E,IACZ,MAANvZ,EACFosgB,EAAWvtgB,KAAK,CAACw5F,EAAK+ua,UAAW,EAAG,IACrB,MAANpngB,EACTosgB,EAAWvtgB,KAAK,CAAC,EAAGw5F,EAAK+ua,UAAW,IAEpCgF,EAAWvtgB,KAAK,CAAC,EAAG,EAAGw5F,EAAK+ua,kBAMjBoG,EAAA9yc,GAAY,EADnB,MAAN16D,EAC4BwqE,EAAQ,EACvB,MAANxqE,EACqBkjG,EAAS,EAETx7E,EAAQ,GAGtC+lf,EAAYjvgB,OAAS,IAEd6ugB,EAAA7sf,GADC,MAANxgB,EACc8sgB,GAAa/ta,EAAa0ua,EAAaH,EAAWC,EAAWnB,EAAYiB,EAAO7sf,IACjF,MAANxgB,EACO+sgB,GAAahua,EAAa0ua,EAAaH,EAAWC,EAAWnB,EAAYiB,EAAO7sf,IAEhFwsf,GAAajua,EAAa0ua,EAAaH,EAAWC,EAAWnB,EAAYiB,EAAO7sf,IAElGA,KAEEgtf,EAAahvgB,OAAS,IAEf6ugB,EAAA7sf,GADC,MAANxgB,EACcysgB,EAAQ1ta,EAAayua,EAAcF,EAAWC,EAAWF,EAAO7sf,IACjE,MAANxgB,EACO0sgB,EAAQ3ta,EAAayua,EAAcF,EAAWC,EAAWF,EAAO7sf,IAEhEmsf,EAAQ5ta,EAAayua,EAAcF,EAAWC,EAAWF,EAAO7sf,IAElFA,KAGA,IAAAktf,EAAMtpgB,EAAK6+f,KAAKjjgB,GAChB0tgB,EAAIz1U,MAAQy1U,EAAInkgB,OAClB2/f,EAAQwE,EAAInkgB,MAEV8jgB,EAAO7sf,GADC,MAANxgB,EACcysgB,EAAQ1ta,EAAa,CAAC,EAAGv0B,EAAQ,GAAI8ic,EAAWC,EAAWF,EAAO7sf,IACnE,MAANxgB,EACO0sgB,EAAQ3ta,EAAa,CAAC,EAAGmE,EAAS,GAAIoqa,EAAWC,EAAWF,EAAO7sf,IAEnEmsf,EAAQ5ta,EAAa,CAAC,EAAGr3E,EAAQ,GAAI4lf,EAAWC,EAAWF,EAAO7sf,IAEpFA,KAEJ,IAEe,IAAbuxd,GACYi3B,IAEhB5kgB,EAAKmjgB,OAASW,EACd9jgB,EAAKojgB,OAASW,EACd/jgB,EAAKqjgB,OAASW,EACdhkgB,EAAK4jgB,eAAiBK,EACtBjkgB,EAAKshgB,IAAMxB,EACX9/f,EAAKuhgB,IAAMxB,EACX//f,EAAKwhgB,IAAMxB,EAELuJ,GACDvpgB,EAWTsZ,EAAOjc,QAAU,CACf0lgB,oBACAS,oBACAgG,sBAZO,SAAsBz4Y,EAAO/wH,GAChC,IAAA0+Z,EAAM3tS,EAAMo4K,OAAOgkJ,GACnBsJ,EAAOuE,EAAW,CAAE7N,GAAIzuB,IACxB/uZ,EAAS,IAAIszf,EAAgBlyY,EAAO0lU,EAAMz2b,EAAKyhF,KAI5C,OAHPg1W,EAAK46D,OAAS1hf,EACdA,EAAO8b,OAAOzrB,GACR+wH,EAAAo4K,OAAOjvR,IAAIu8a,GACV9mb,OAWT85f,GAAqBhxf,EAAW,CAClC,iCAAiCpb,EAASic,GAExCA,EAAOjc,QAAU,CACfgsF,WAAYm1a,KACZl6Z,eAAgBw6Z,KAAqBx6Z,eACrC0qC,KAAMuzX,KACN9nY,SAAU,CACR/2H,IAAK,OACL0C,IAAK,QAEP8sH,KAAM2vY,KAAmB2G,sBACzBxja,WAAY,QACZj5F,KAAM,aACN41F,eAAgB62Z,KAChBh3Z,WAAY,CAAC,OAAQ,cACrB3gB,KAAM,CAAA,MAMR6nb,GAAsBjxf,EAAW,CACnC,oBAAoBpb,EAASic,GAE3BA,EAAOjc,QAAUosgB,QAKjBE,GAAuBlxf,EAAW,CACpC,kCAAkCpb,EAASic,GAEzC,IAAIqvI,EAAkBhB,KAClBiiX,EAAkBpL,KAClBP,EAAehE,KACfhwY,EAAYnpC,IACZvD,EAAaT,IAAiBS,WAC9Bwe,EAAcN,KAAqBM,YACnC5d,EAAQ7kE,EAAOjc,QAAU0+F,EAAYxe,EACvC,CACE/3E,EAAGokgB,EAAgBpkgB,EACnBC,EAAGmkgB,EAAgBnkgB,EACnBif,EAAGklf,EAAgBllf,EACnBloB,MAAOotgB,EAAgBptgB,MACvBkigB,OAAQkL,EAAgBlL,OACxBC,OAAQiL,EAAgBjL,OACxBx0C,QAASy/C,EAAgBz/C,QACzBy0C,WAAY,CACV/qU,KAAM,CACJ91G,QAAS,UACTE,MAAM,GAER94E,KAAM,CACJ44E,QAAS,SACTr6E,IAAK,EACL0C,IAAK,EACL63E,KAAM,IAGVvF,OAAQkxb,EAAgBlxb,OACxBmmb,KAAM+K,EAAgB/K,KACtBx0e,KAAMu/e,EAAgBv/e,KACtBm9N,UAAWoiR,EAAgBpiR,UAC3BnoC,aAAcuqT,EAAgBvqT,aAC9BC,aAAcsqT,EAAgBtqT,aAC9BmuH,aAAcm8L,EAAgBn8L,aAC9BgpL,iBAAkBmT,EAAgBnT,iBAClCh5Z,cAAemsa,EAAgBnsa,eAEjCkrD,EAAgB,GAAI,CAClBZ,UAAW,UACXE,eAAe,EACfjsD,iBAAkB,SAEpB,CACEy+B,SAAUmvY,EAAgBnvY,SAC1Bj5C,QAASoob,EAAgBpob,QACzB+oX,aAAc0zD,EAAa1zD,aAC3B8vD,cAAeuP,EAAgBvP,cAC/BC,SAAUsP,EAAgBtP,SAC1B+D,YAAauL,EAAgBvL,YAC7B5f,QAASmrB,EAAgBnrB,QACzB18Z,UAAWxE,EAAW,GAAI0sC,EAAUloC,WACpCb,WAAY3D,EAAW,GAAI0sC,EAAU/oC,WAAY,CAAEjD,MAAM,MAE1D,OAAQ,UACLE,EAAA34E,EAAEq4E,SAAWM,EAAM14E,EAAEo4E,SAAWM,EAAMz5D,EAAEm5D,SAAWM,EAAM3hF,MAAMqhF,SAAW,yBAKhFgsb,GAAqBpxf,EAAW,CAClC,gCAAgCpb,EAASic,GAEvC,IAAIspG,EAAMrN,KACNlsB,EAAasgb,KACb5K,EAAoBD,KAAqBC,kBACzCvE,EAAuBD,KAAqBC,qBAChDlhf,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAEzD8gb,EAAkB10a,EAASC,EAAU+3C,EAAcpwH,EAAQi3E,GACtCsxa,EAAAnwa,EAASC,EAAUr4E,EAAQi3E,EAClD,KAKA4gb,GAAmBrxf,EAAW,CAChC,+BAA+Bpb,EAASic,GAElC,IAAA0hb,EAAa7/B,KAA0BU,UACvCixF,EAAkBhB,KAA0BgB,gBAC5Cjgb,EAAsB0oC,KAAc1oC,oBACpCihb,EAAgBjC,KAChBzrW,EAAc8O,KAAqB9O,YACnC0iX,EAAOF,KACPG,EAAoBF,KAAmBE,kBACvCS,EAAoBX,KAAmBW,kBAClC,SAAAuG,EAAYh5Y,EAAO0lU,EAAMh1W,GAChC3gF,KAAKiwH,MAAQA,EACbjwH,KAAK2gF,IAAMA,EACX3gF,KAAK21b,KAAOA,EACZ31b,KAAKiM,KAAO,GACZjM,KAAKd,KAAO,KACZc,KAAKkrd,aAAc,EAErB,IAAItnd,EAAQqlgB,EAAY/rgB,UAClB0G,EAAAmsf,WAAa,SAASrqe,GACtB,GAAAA,EAAU5Q,SAAW9U,KAAK21b,KAAM,CAC9B,IAAAysE,EAAQ18e,EAAUxmB,KAAKkyC,MACvB1sC,EAAI1E,KAAKd,KAAKmjgB,OAAOD,GACrBz9f,EAAI3E,KAAKd,KAAKojgB,OAAOF,GACrBx+e,EAAI5jB,KAAKd,KAAKqjgB,OAAOH,GACrBpka,EAASh+F,KAAKd,KAAKuhgB,IAAInngB,OACvBkpB,EAAQxiB,KAAKd,KAAKwhgB,IAAIpngB,OACtBT,EAAIopgB,EAAkBv9f,EAAG1E,KAAKd,KAAKshgB,KAAKnsf,GACxC9S,EAAI0ggB,EAAkBt9f,EAAG3E,KAAKd,KAAKuhgB,KAAKpsf,GACxCyN,EAAImgf,EAAkBr+e,EAAG5jB,KAAKd,KAAKwhgB,KAAKrsf,GACxCmuf,EAAc98e,EAAU0rB,MAAQtvB,EAAIU,EAAQjhB,EAAIihB,EAAQw7E,EAASnlG,EACrE6sB,EAAUuqe,gBAAkB,CAC1Bjwf,KAAKd,KAAKmjgB,OAAOG,GACjBxigB,KAAKd,KAAKojgB,OAAOE,GACjBxigB,KAAKd,KAAKqjgB,OAAOC,GACjBxigB,KAAKd,KAAKgiL,OAAOshV,IAEnB,IAAIj5e,EAAOvpB,KAAKd,KAAKwnP,WAAa1mP,KAAKd,KAAKqqB,KAMrC,OALHwiD,EAAoBxiD,SAA+B,IAAtBA,EAAKi5e,GAC1B98e,EAAAsqe,UAAYzme,EAAKi5e,GAClBj5e,IACT7D,EAAUsqe,UAAYzme,IAEjB,EAEX,EACM3lB,EAAA+mB,OAAS,SAASzrB,GACtB,IAAI+wH,EAAQjwH,KAAKiwH,MACb9+G,EAAS8+G,EAAM23K,gBAEnB,SAAS66N,EAAarxc,EAAMkgD,EAAO39E,EAAOqyE,GACjC,OAAAsL,EAAMrxF,KAAI,SAASvb,GACxB,OAAO0sD,EAAK6rC,IAAIv4F,EAAG,EAAGshG,GAAYryE,CAAA,IAHjC3zB,KAAAd,KAAOwjgB,EAAkBxjgB,GAM9B,IAMIkS,EAAS,CACXisQ,UAPc2kP,EACdS,EAAatxf,EAAO+2G,MAAOhpH,EAAKmjgB,OAAQpyY,EAAMm4K,UAAU,GAAIlpS,EAAKo3J,WACjEmsW,EAAatxf,EAAOg3G,MAAOjpH,EAAKojgB,OAAQryY,EAAMm4K,UAAU,GAAIlpS,EAAKq3J,WACjEksW,EAAatxf,EAAO++G,MAAOhxH,EAAKqjgB,OAAQtyY,EAAMm4K,UAAU,GAAIlpS,EAAKmvf,YAKjEz/c,MAHUozd,EAAK9igB,EAAKyjgB,OAAQzjgB,EAAK0jgB,OAAQ1jgB,EAAK2jgB,QAI9C3nE,cAAe,CAACh8b,EAAKq6f,cAAc70f,EAAGxF,EAAKq6f,cAAc50f,EAAGzF,EAAKq6f,cAAc31e,GAC/Em4a,QAAS78b,EAAKs6f,SAASz9D,QACvBC,QAAS98b,EAAKs6f,SAASx9D,QACvBC,SAAU/8b,EAAKs6f,SAASv9D,SACxBX,UAAWp8b,EAAKs6f,SAASl+D,UACzBC,QAASr8b,EAAKs6f,SAASj+D,QACvBsP,qBAAsB3rc,EAAKs6f,SAASgE,qBACpC1yD,mBAAoB5rc,EAAKs6f,SAASiE,mBAClC/8a,QAASxhF,EAAKwhF,QACd+oX,aAAcvqc,EAAKuqc,aACnBF,cAAerqc,EAAKy+e,QAAQ5qT,KAC5Bu2Q,aAAc0jD,EAAc9tf,EAAKy+e,QAAQ1nd,OAAOn4B,MAAM,EAAG,GACzDitd,aAAc7rd,EAAKy+e,QAAQr4a,MAC3BylY,gBAAiB7rc,EAAKq+f,aAEpB3vX,EAAQ0R,EAAYpgJ,GACxBkS,EAAO2nb,gBAAkB75b,EAAK4jgB,eAC9B1xf,EAAO4nb,sBAAwB,CAACprT,EAAMhrI,IAAKgrI,EAAMtoI,KAC1C8L,EAAAm0a,SAAWymE,EAAgB9sf,GAC7Bc,KAAA21b,KAAKhra,OAAOvZ,EACnB,EACAxN,EAAMyrb,QAAU,WACdrvb,KAAKiwH,MAAMo4K,OAAOpmR,OAAOjiB,KAAK21b,MAC9B31b,KAAK21b,KAAKtG,SACZ,EAUA72a,EAAOjc,QATE,SAAkB0zH,EAAO/wH,GAC5B,IAAA0+Z,EAAM3tS,EAAMo4K,OAAOgkJ,GACnBsJ,EAAOuE,EAAW,CAAE7N,GAAIzuB,IACxB/uZ,EAAS,IAAIo6f,EAAYh5Y,EAAO0lU,EAAMz2b,EAAKyhF,KAIxC,OAHPg1W,EAAK46D,OAAS1hf,EACdA,EAAO8b,OAAOzrB,GACR+wH,EAAAo4K,OAAOjvR,IAAIu8a,GACV9mb,MAOTq6f,GAAiBvxf,EAAW,CAC9B,6BAA6Bpb,EAASic,GAEpCA,EAAOjc,QAAU,CACfgsF,WAAYsgb,KACZrla,eAAgBula,KAChB76X,KAAMuzX,KACN9nY,SAAU,CACR/2H,IAAK,OACL0C,IAAK,QAEP8sH,KAAM42Y,KACN9ja,WAAY,QACZj5F,KAAM,SACN41F,eAAgB62Z,KAChBh3Z,WAAY,CAAC,OAAQ,cACrB3gB,KAAM,CAAA,MAMRoob,GAAkBxxf,EAAW,CAC/B,gBAAgBpb,EAASic,GAEvBA,EAAOjc,QAAU2sgB,QAKjBE,GAAqBzxf,EAAW,CAClC,gCAAgCpb,EAASic,GAEvC,IAAImtF,EAAW1E,KACX6gB,EAAMrN,KACNmiK,EAAqBxqH,KACrB7jE,EAAa20a,KACjB1kf,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAEzD,SAASksb,EAAe9pgB,GACtB,IAAI2G,EAAM3G,EAAM0gB,KAAI,SAAS+I,GACvB,IAAAna,EAASu5E,EAAOp/D,GACpB,OAAIna,GAAUizG,EAAI/1C,oBAAoBl9D,GAAgBA,EAC/C,IAAA,IAEF,OAAA3I,EAAIswD,OAAM,SAAS9xD,GACxB,OAAOA,GAAKA,EAAEpL,SAAW4M,EAAI,GAAG5M,MACjC,KAAK4M,EAEKmjgB,EAAe,CAAC,IAAK,IAAK,OAKvCA,EAAe,CAAC,IAAK,IAAK,QACtB7/a,EAAS3wF,GAAO2wF,EAASjoF,GAAMioF,EAAS1nE,MAAM0nE,EAASjoF,GAAOioF,EAAS1nE,GAAM0nE,EAAS3wF,MAAM2wF,EAAS1nE,GAAO0nE,EAAS3wF,GAAM2wF,EAASjoF,IAI3GokG,EAASJ,mBAAmB,YAAa,sBACtEowK,CAAuBpsL,EAASC,EAAU,CAAC,IAAK,IAAK,KAAMr4E,GAC3D,CACE,mBACA,mBACA,oBACA,qBACA,mBACA,gCACA,8BACA,kBACA,kBACA,kBACA,cACA,YACA,eACA,WACAuB,SAAQ,SAAShO,GACjB0jF,EAAO1jF,EAAC,IAEQ0jF,EAAO,kBAEvBA,EAAO,iBACPA,EAAO,kBAEL,cAAemB,GACjBnB,EAAO,aACPA,EAAO,iBACYwuL,EAAArtL,EAASC,EAAUr4E,EAAQi3E,EAAQ,CAAEr/D,OAAQ,GAAIw2H,QAAS,QAE7E/1D,EAASu3D,WAAY,EACjB,cAAex3D,EAASnB,EAAO,aAC1B,gBAAiBmB,EAASnB,EAAO,eACrCA,EAAO,QAASm5C,IAEvBn5C,EAAO,QACPA,EAAO,aACPA,EAAO,iBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPoB,EAASwqB,QAAU,MA5CjBxqB,EAASrJ,SAAU,GALnBqJ,EAASrJ,SAAU,CAkDvB,KAKAmpb,GAAiB3xf,EAAW,CAC9B,4BAA4Bpb,EAASic,GAEnC,IAAIm+S,EAAiB1oK,KACrBz1I,EAAOjc,QAAU,SAAckX,EAAI2xF,GAC7BA,EAAM40V,WACRrjI,EAAeljT,EAAI2xF,EAAO,CACxB0F,KAAM1F,EAAM40V,UACZ7sU,aAAc,GACdoyB,QAAS,KAGf,KAKAgqX,GAAmB5xf,EAAW,CAChC,+BAA+Bpb,EAASic,GAElC,IAAA0hb,EAAa7/B,KAA0BU,UACvCyrF,EAAcnsF,KAA0BM,qBACxC6uG,EAAanvG,KAA0BI,YACvCgvG,EAAapvG,KAA0BK,YACvCsxF,EAAkBhB,KAA0BgB,gBAC5Cjgb,EAAsB0oC,KAAc1oC,oBACpCihb,EAAgBjC,KAChBzrW,EAAc8O,KAAqB9O,YACnC0iX,EAAOF,KACF,SAAA4H,EAAYz5Y,EAAO0lU,EAAMh1W,GAChC3gF,KAAKiwH,MAAQA,EACbjwH,KAAK2gF,IAAMA,EACX3gF,KAAK21b,KAAOA,EACZ31b,KAAKiM,KAAO,GACZjM,KAAKi2B,MAAQ,OACbj2B,KAAKd,KAAO,KACZc,KAAKkrd,aAAc,EAErB,IAAItnd,EAAQ8lgB,EAAYxsgB,UAsBxB,SAASysgB,EAAgB3tW,GAGvB,IAFA,IAAIr9J,EAAI,GACJzF,EAAM8iK,EAAO1iK,OACRT,EAAI,EAAGA,EAAIK,EAAKL,IACvB8F,EAAE9F,GAAKm0f,EAAchxV,EAAOnjK,IAEvB,OAAA8F,EAET,SAAS8jgB,EAAarxc,EAAMkgD,EAAO39E,EAAOqyE,GAGxC,IAFA,IAAIrnG,EAAI,GACJzF,EAAMo4G,EAAMh4G,OACPT,EAAI,EAAGA,EAAIK,EAAKL,IACrB8F,EAAA9F,GAAKu4D,EAAK6rC,IAAIqU,EAAMz4G,GAAI,EAAGmtG,GAAYryE,EAEpC,OAAAh1B,EAET,SAASirgB,EAAanlgB,GAGpB,IAFA,IAAI9F,EAAI,GACJzF,EAAMuL,EAAEnL,OACHT,EAAI,EAAGA,EAAIK,EAAKL,IACvB8F,EAAE9F,GAAK2C,KAAKk7B,MAAMjyB,EAAE5L,IAEf,OAAA8F,EAWA,SAAAkrgB,EAAgBhlgB,EAAMqkb,GAE7B,IADA,IAAIhwb,EAAM2L,EAAKvL,OACNT,EAAI,EAAGA,EAAIK,EAAKL,IACnB,GAAAgM,EAAKhM,KAAM,IAAQgM,EAAKhM,IAAMqwb,EAAc,GACvC,OAAA,EAGJ,OAAA,EA7DHtlb,EAAAmsf,WAAa,SAASrqe,GACtB,GAAAA,EAAU5Q,SAAW9U,KAAK21b,KAAM,CAClC,IAAI6sE,EAAc98e,EAAU0rB,MAAQ1rB,EAAUxmB,KAAKkyC,MAC/C1rB,EAAUxmB,KAAKwsc,YACPhmb,EAAAuqe,gBAAkBvqe,EAAUxmB,KAAK2+b,eAE3Cn4a,EAAUuqe,gBAAkB,CAC1Bjwf,KAAKd,KAAKwF,EAAE89f,GACZxigB,KAAKd,KAAKyF,EAAE69f,GACZxigB,KAAKd,KAAK0kB,EAAE4+e,IAGhB,IAAIj5e,EAAOvpB,KAAKd,KAAKwnP,WAAa1mP,KAAKd,KAAKqqB,KAMrC,OALHwiD,EAAoBxiD,SAA+B,IAAtBA,EAAKi5e,GAC1B98e,EAAAsqe,UAAYzme,EAAKi5e,GAClBj5e,IACT7D,EAAUsqe,UAAYzme,IAEjB,EAEX,EA2CM3lB,EAAA+mB,OAAS,SAASzrB,GACtB,IAAI+wH,EAAQjwH,KAAKiwH,MACb9+G,EAAS8+G,EAAM23K,gBACnB5nS,KAAKd,KAAOA,EACR,IAMA0vC,EANAs6Y,EAAchqb,EAAKwF,EAAEpL,OACrB+jR,EAAY2kP,EACdS,EAAatxf,EAAO+2G,MAAOhpH,EAAKwF,EAAGurH,EAAMm4K,UAAU,GAAIlpS,EAAKo3J,WAC5DmsW,EAAatxf,EAAOg3G,MAAOjpH,EAAKyF,EAAGsrH,EAAMm4K,UAAU,GAAIlpS,EAAKq3J,WAC5DksW,EAAatxf,EAAO++G,MAAOhxH,EAAK0kB,EAAGqsG,EAAMm4K,UAAU,GAAIlpS,EAAKmvf,YAG9D,GAAInvf,EAAKrG,GAAKqG,EAAKqC,GAAKrC,EAAK4iB,EAAG,CAC9B,GAAI5iB,EAAKrG,EAAES,SAAW4F,EAAKqC,EAAEjI,QAAU4F,EAAKqC,EAAEjI,SAAW4F,EAAK4iB,EAAExoB,SAAWuwgB,EAAgB3qgB,EAAKrG,EAAGqwb,KAAiB2gF,EAAgB3qgB,EAAKqC,EAAG2nb,KAAiB2gF,EAAgB3qgB,EAAK4iB,EAAGona,GACnL,OAEMt6Y,EAAAozd,EACN4H,EAAa1qgB,EAAKrG,GAClB+wgB,EAAa1qgB,EAAKqC,GAClBqogB,EAAa1qgB,EAAK4iB,GACpB,MAEA8sB,EAD4B,IAAnB1vC,EAAKm+f,UACNoM,EAAWpsP,GACVn+Q,EAAKm+f,UAAY,EAClBmM,EAAWtqgB,EAAKm+f,UAAWhgP,GAzC9B,SAAc+/O,EAAc//O,GAInC,IAHA,IAAIjiR,EAAI,CAAC,IAAK,IAAK,KAAKjB,QAAQijgB,GAC5Bz+f,EAAI,GACJzF,EAAMmkR,EAAU/jR,OACXT,EAAI,EAAGA,EAAIK,EAAKL,IACvB8F,EAAE9F,GAAK,CAACwkR,EAAUxkR,IAAIuC,EAAI,GAAK,GAAIiiR,EAAUxkR,IAAIuC,EAAI,GAAK,IAE5D,OAAOorf,EAAY7nf,GAoCTmrgB,CAAc5qgB,EAAKk+f,aAAc//O,GAE3C,IAAIjsQ,EAAS,CACXisQ,YACAzuO,QACAssZ,cAAe,CAACh8b,EAAKq6f,cAAc70f,EAAGxF,EAAKq6f,cAAc50f,EAAGzF,EAAKq6f,cAAc31e,GAC/Em4a,QAAS78b,EAAKs6f,SAASz9D,QACvBC,QAAS98b,EAAKs6f,SAASx9D,QACvBC,SAAU/8b,EAAKs6f,SAASv9D,SACxBX,UAAWp8b,EAAKs6f,SAASl+D,UACzBC,QAASr8b,EAAKs6f,SAASj+D,QACvBsP,qBAAsB3rc,EAAKs6f,SAASgE,qBACpC1yD,mBAAoB5rc,EAAKs6f,SAASiE,mBAClC/8a,QAASxhF,EAAKwhF,QACd6oX,cAAerqc,EAAKy+e,QAAQ5qT,KAC5Bu2Q,aAAc0jD,EAAc9tf,EAAKy+e,QAAQ1nd,OAAOn4B,MAAM,EAAG,GACzDitd,aAAc7rd,EAAKy+e,QAAQr4a,MAC3BylY,gBAAiB7rc,EAAKq+f,aAExB,GAAIr+f,EAAK86b,UAAW,CACd,IAAApsT,EAAQ0R,EAAYpgJ,GACxBc,KAAKi2B,MAAQ,OACb,IAAIyuB,EAAOxlD,EAAKo+f,cACTlsf,EAAAszC,EAAO,aAAexlD,EAAK86b,UAClC5ob,EAAOszC,EAAO,mBAAqB,CAACkpF,EAAMhrI,IAAKgrI,EAAMtoI,KAC9C8L,EAAAm0a,SAAWymE,EAAgB9sf,EAAI,MAC7BA,EAAKymM,aACT3lM,KAAAi2B,MAAQ/2B,EAAKymM,YAAY,GACvBv0L,EAAA65b,aAAe0+D,EAAgBzqgB,EAAKymM,cAClCzmM,EAAK0mM,WACT5lM,KAAAi2B,MAAQ/2B,EAAK0mM,UAAU,GACrBx0L,EAAA85b,WAAay+D,EAAgBzqgB,EAAK0mM,aAEzC5lM,KAAKi2B,MAAQ/2B,EAAK+2B,MACX7kB,EAAA0rb,UAAYkwD,EAAc9tf,EAAK+2B,QAEnCj2B,KAAA21b,KAAKhra,OAAOvZ,EACnB,EACAxN,EAAMyrb,QAAU,WACdrvb,KAAKiwH,MAAMo4K,OAAOpmR,OAAOjiB,KAAK21b,MAC9B31b,KAAK21b,KAAKtG,SACZ,EAUA72a,EAAOjc,QATE,SAAkB0zH,EAAO/wH,GAC5B,IAAA0+Z,EAAM3tS,EAAMo4K,OAAOgkJ,GACnBsJ,EAAOuE,EAAW,CAAE7N,GAAIzuB,IACxB/uZ,EAAS,IAAI66f,EAAYz5Y,EAAO0lU,EAAMz2b,EAAKyhF,KAIxC,OAHPg1W,EAAK46D,OAAS1hf,EACdA,EAAO8b,OAAOzrB,GACR+wH,EAAAo4K,OAAOjvR,IAAIu8a,GACV9mb,MAOTk7f,GAAiBpyf,EAAW,CAC9B,6BAA6Bpb,EAASic,GAEpCA,EAAOjc,QAAU,CACfgsF,WAAY20a,KACZ15Z,eAAgB4la,KAChBl7X,KAAMo7X,KACN3vY,SAAU,CACR/2H,IAAK,OACL0C,IAAK,QAEP8sH,KAAMm3Y,KACNrka,WAAY,QACZj5F,KAAM,SACN41F,eAAgB62Z,KAChBh3Z,WAAY,CAAC,OAAQ,cACrB3gB,KAAM,CAAA,MAMRipb,GAAkBryf,EAAW,CAC/B,gBAAgBpb,EAASic,GAEvBA,EAAOjc,QAAUwtgB,QAKjBE,GAAuBtyf,EAAW,CACpC,gCAAgCpb,EAASic,GAEvC,IAAIqvI,EAAkBhB,KAClBzF,EAAkBH,KAAiCG,gBACnD1kD,EAAqBP,KAA8BO,mBACnDwta,EAAchN,KACd/zY,EAAYnpC,IACZvD,EAAaT,IAAiBS,WAC9BY,EAAQ,CACV34E,EAAG,CACDu4E,QAAS,aACTF,SAAU,uBAEZp4E,EAAG,CACDs4E,QAAS,aACTF,SAAU,uBAEZn5D,EAAG,CACDq5D,QAAS,aACTF,SAAU,uBAEZxrD,EAAG,CACD0rD,QAAS,aACTF,SAAU,QAEZ1+D,EAAG,CACD4+D,QAAS,aACTF,SAAU,QAEZvwD,EAAG,CACDywD,QAAS,aACTF,SAAU,QA0CZmyE,SAAU,CACRjyE,QAAS,aACT/+D,OAAQ,CAAC,SAAU,WAAY,OAC/B6+D,SAAU,OACVI,KAAM,UAER2xE,QAAS,CACP7xE,QAAS,SACTF,SAAU,OACVn6E,IAAK,GAEP28H,OAAQ,CACNtiD,QAAS,aACTF,SAAU,OACV7+D,OAAQ,CAAC,MAAO,OAAQ,KAAM,UAC9Bi/D,KAAM,MAER5zD,KAAM,CACJ0zD,QAAS,SACTE,KAAM,GACNkB,SAAS,EACTtB,SAAU,QAEZ2pK,UAAW,CACTzpK,QAAS,SACTE,KAAM,GACNkB,SAAS,EACTtB,SAAU,QAEZ4f,cAAeD,EAAmB,CAAE3f,SAAU,QAAU,CAAE/8D,KAAM,CAAC,UACjEm1e,aAAc/zW,EAAgB,IAAK,GACnCi0W,aAAcj0W,EAAgB,IAAK,GACnCm0W,aAAcn0W,EAAgB,IAAK,GACnCm9D,aAAcn9D,EAAgB,KAC9Bo9D,aAAcp9D,EAAgB,KAC9BurL,aAAcvrL,EAAgB,KAC9BhhE,WAAY3D,EAAW,GAAI0sC,EAAU/oC,WAAY,CAAEjD,MAAM,KAEhDV,EAAAY,EAAOwqE,EAAgB,GAAI,CACpCZ,UAAW,aACXE,eAAe,EACfjsD,iBAAkB,UAEH,CAAC,UAAW,gBAAiB,YACnCxoF,SAAQ,SAASoP,GACpBu7D,EAAAv7D,GAAKoof,EAAYpof,EAAC,IAE1Bu7D,EAAM4D,UAAYxE,EAAW,CAAA,EAAI0sC,EAAUloC,UAAW,CACpDlE,SAAU,OACVgB,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,OAAQ,QACtDZ,KAAM,yBAER3kE,EAAOjc,QAAU8gF,KAKjB8sb,GAAqBxyf,EAAW,CAClC,8BAA8Bpb,EAASic,GAErC,IAAIspG,EAAMrN,KACNmiK,EAAqBxqH,KACrB7jE,EAAa0hb,KACjBzxf,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAErD,IAAA5rD,EAAI62D,EAAO,KACX/pE,EAAI+pE,EAAO,KACX57D,EAAI47D,EAAO,KACX1jF,EAAI0jF,EAAO,KACXzjF,EAAIyjF,EAAO,KACXxkE,EAAIwkE,EAAO,KACf,GAAK72D,GAAMA,EAAEj4B,QAAW+kB,GAAMA,EAAE/kB,QAAWkzB,GAAMA,EAAElzB,QAAWoL,GAAMA,EAAEpL,QAAWqL,GAAMA,EAAErL,QAAWsqB,GAAMA,EAAEtqB,OAA5G,CAII,IAAA41J,EAAW9mE,EAAO,YACtBA,EAAO,UAAwB,QAAb8mE,EAAqB,EAAI,IAC3C9mE,EAAO,UACPA,EAAO,oBACPA,EAAO,oBACPA,EAAO,qBACPA,EAAO,sBACPA,EAAO,oBACPA,EAAO,mBACPA,EAAO,mBACPA,EAAO,mBACYwuL,EAAArtL,EAASC,EAAUr4E,EAAQi3E,EAAQ,CAAEr/D,OAAQ,GAAIw2H,QAAS,MAC7En3D,EAAO,QACPA,EAAO,aACPA,EAAO,iBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPoB,EAASwqB,QAAU,UAxBjBxqB,EAASrJ,SAAU,CAyBvB,KAKAiqb,GAAiBzyf,EAAW,CAC9B,0BAA0Bpb,EAASic,GAEjC,IAAIm+S,EAAiB1oK,KACrBz1I,EAAOjc,QAAU,SAAckX,EAAI2xF,GAcjC,IAbA,IAAI7zE,EAAI6zE,EAAM7zE,EACVlT,EAAI+mF,EAAM/mF,EACVmO,EAAI44E,EAAM54E,EACVtzB,EAAMsC,KAAKoH,IACbwiG,EAAM1gG,EAAEpL,OACR8rG,EAAMzgG,EAAErL,OACR8rG,EAAMxhF,EAAEtqB,OACRi4B,EAAEj4B,OACF+kB,EAAE/kB,OACFkzB,EAAElzB,QAEA4ngB,GAAU,IACVC,EAAU5lgB,IACL1C,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxB,IAAA6ie,EAAKnqc,EAAE14B,GACP29B,EAAKnY,EAAExlB,GACPwxgB,EAAK79e,EAAE3zB,GACP0lR,EAAO/iR,KAAKmjB,KAAK+8c,EAAKA,EAAKllc,EAAKA,EAAK6ze,EAAKA,GACpCnJ,EAAA1lgB,KAAK8J,IAAI47f,EAAS3iP,GAClB4iP,EAAA3lgB,KAAKoH,IAAIu+f,EAAS5iP,GAE9Bn5K,EAAMkiR,KAAOpuX,EACbksG,EAAMi8Z,SAAWH,EACjBvqM,EAAeljT,EAAI2xF,EAAO,CACxB0F,KAAM,CAACq2Z,EAASD,GAChB/zY,aAAc,GACdoyB,QAAS,KAEb,KAKA+qX,GAAmB3yf,EAAW,CAChC,6BAA6Bpb,EAASic,GAEhC,IAAA+xf,EAAWlwG,KAA0BO,UACrCu/B,EAAiB9/B,KAA0BO,UAAUu/B,eACrD/hV,EAAY3D,KAAc2D,UAC1B4zY,EAAkBhB,KAA0BgB,gBAC5C1sW,EAAc8O,KAAqB9O,YACnCvzE,EAAsB0oC,KAAc1oC,oBACpCi2b,EAAOF,KACF,SAAA0I,EAAKv6Y,EAAOtvC,GACnB3gF,KAAKiwH,MAAQA,EACbjwH,KAAK2gF,IAAMA,EACX3gF,KAAK21b,KAAO,KACZ31b,KAAKd,KAAO,KAEd,IAAI0E,EAAQ4mgB,EAAKttgB,UACX0G,EAAAmsf,WAAa,SAASrqe,GACtB,GAAAA,EAAU5Q,SAAW9U,KAAK21b,KAAM,CAClC,IAAI6sE,EAAc98e,EAAU0rB,MAAQ1rB,EAAUxmB,KAAKkyC,MAC/C4gD,EAAKhyF,KAAKd,KAAKwF,EAAE89f,GACjBrwa,EAAKnyF,KAAKd,KAAKyF,EAAE69f,GACjBnwa,EAAKryF,KAAKd,KAAK0kB,EAAE4+e,GACjB9mC,EAAK17d,KAAKd,KAAKqyB,EAAEixe,GACjBhse,EAAKx2B,KAAKd,KAAKmf,EAAEmkf,GACjB6H,EAAKrqgB,KAAKd,KAAKstB,EAAEg2e,GACrB98e,EAAUuqe,gBAAkB,CAC1Bj+Z,EACAG,EACAE,EACAqpY,EACAllc,EACA6ze,EACA7ugB,KAAKmjB,KAAK+8c,EAAKA,EAAKllc,EAAKA,EAAK6ze,EAAKA,IAErC,IAAI9gf,EAAOvpB,KAAKd,KAAKwnP,WAAa1mP,KAAKd,KAAKqqB,KAMrC,OALHwiD,EAAoBxiD,SAA+B,IAAtBA,EAAKi5e,GAC1B98e,EAAAsqe,UAAYzme,EAAKi5e,GAClBj5e,IACT7D,EAAUsqe,UAAYzme,IAEjB,EAEX,EACA,IAAIkhf,EAAsB,CAAEviZ,MAAO,EAAGC,MAAO,EAAG+H,MAAO,GACnDw6Y,EAAoB,CAAEC,IAAK,EAAGtlb,KAAM,EAAGikR,GAAI,IAAMz3U,OAAQ,IACzD+4e,EAAkB,CAAED,IAAK,EAAGtlb,KAAM,EAAGikR,GAAI,IAAMz3U,OAAQ,IAClD,SAAA+vN,EAAQ3xH,EAAO7qB,GACtB,IAAIozH,EAAcvoG,EAAM23K,gBACpBQ,EAAYn4K,EAAMm4K,UAClByiO,EAAW,CAAC,EACP,SAAApI,EAAa3pgB,EAAKk9f,GACrB,IAAA3qd,EAAKmtL,EAAYw9R,GACjBrie,EAAQy0Q,EAAUqiO,EAAoBzU,IACnC,OAAA59Y,EAAUt/G,GAAK,SAASulB,GACtB,OAAAgtB,EAAG4xD,IAAI5+E,GAAKsV,CAAA,IAGvBk3e,EAAS/xE,QAAUkpE,EACjBS,EAAar9Z,EAAM7zE,EAAG,SACtBkxe,EAAar9Z,EAAM/mF,EAAG,SACtBokf,EAAar9Z,EAAM54E,EAAG,SACtB44E,EAAMkiR,MAERujJ,EAASxtP,UAAY2kP,EACnBS,EAAar9Z,EAAM1gG,EAAG,SACtB+9f,EAAar9Z,EAAMzgG,EAAG,SACtB89f,EAAar9Z,EAAMxhF,EAAG,SACtBwhF,EAAMkiR,MAEJ,IAAA15O,EAAQ0R,EAAYl6C,GACfyla,EAAAtlF,SAAWymE,EAAgB5mZ,GAC3Byla,EAAA7xE,sBAAwB,CAACprT,EAAMhrI,IAAMwiG,EAAMi8Z,SAAUzzX,EAAMtoI,IAAM8/F,EAAMi8Z,UACvEwJ,EAAA5xE,WAAayxE,EAAkBtla,EAAMm6B,QAC9C,IAAI2vB,EAAW9pD,EAAM8pD,SACJ,WAAbA,EACO27W,EAAA/wE,SAAW10V,EAAM0pD,SAAW,GACf,aAAbI,EACA27W,EAAA/wE,SAAW10V,EAAM0pD,SAAW1pD,EAAMi8Z,SAAWj8Z,EAAM0pD,QAAU1pD,EAAMi8Z,SAAW,GACjE,QAAbnyW,IACT27W,EAAS/wE,SAAW10V,EAAM0pD,SAE5B+7W,EAASpxE,aAAevqS,EACpB,IAAA47W,EAAWP,EAASM,GACpBx9c,EAAK+3C,EAAMm0Z,cASR,OARPuR,EAAS5vE,cAAgB,CAAC7tY,EAAG3oD,EAAG2oD,EAAG1oD,EAAG0oD,EAAGzpC,GAChCknf,EAAA/uE,QAAU32V,EAAMo0Z,SAASz9D,QACzB+uE,EAAA9uE,QAAU52V,EAAMo0Z,SAASx9D,QACzB8uE,EAAA7uE,SAAW72V,EAAMo0Z,SAASv9D,SAC1B6uE,EAAAxvE,UAAYl2V,EAAMo0Z,SAASl+D,UAC3BwvE,EAAAvvE,QAAUn2V,EAAMo0Z,SAASj+D,QAClCuvE,EAASpqb,QAAU0kB,EAAM1kB,QACnB0kB,EAAAqxZ,KAAOmU,EAAgBxla,EAAMm6B,QAAUurY,EAASxxE,YAAcwxE,EAASjxE,UAAYz0V,EAAMi8Z,SACxFyJ,EAEHlngB,EAAA+mB,OAAS,SAASzrB,GACtBc,KAAKd,KAAOA,EACZ,IAAI4rgB,EAAWlpR,EAAQ5hP,KAAKiwH,MAAO/wH,GAC9Bc,KAAA21b,KAAKhra,OAAOmgf,EACnB,EACAlngB,EAAMyrb,QAAU,WACdrvb,KAAKiwH,MAAMo4K,OAAOpmR,OAAOjiB,KAAK21b,MAC9B31b,KAAK21b,KAAKtG,SACZ,EAYA72a,EAAOjc,QAXE,SAAgB0zH,EAAO/wH,GAC1B,IAAA0+Z,EAAM3tS,EAAMo4K,OAAOgkJ,GACnBy+E,EAAWlpR,EAAQ3xH,EAAO/wH,GAC1By2b,EAAOwE,EAAev8B,EAAKktG,GAC3BC,EAAO,IAAIP,EAAKv6Y,EAAO/wH,EAAKyhF,KAKzB,OAJPoqb,EAAKp1E,KAAOA,EACZo1E,EAAK7rgB,KAAOA,EACZy2b,EAAK46D,OAASwa,EACR96Y,EAAAo4K,OAAOjvR,IAAIu8a,GACVo1E,MAOTC,GAAerzf,EAAW,CAC5B,2BAA2Bpb,EAASic,GAElCA,EAAOjc,QAAU,CACf2oG,WAAY,QACZj5F,KAAM,OACN41F,eAAgB62Z,KAChBh3Z,WAAY,CAAC,OAAQ,cACrBnZ,WAAY0hb,KACZzma,eAAgB2ma,KAChBxwY,SAAU,CACR/2H,IAAK,OACL0C,IAAK,QAEP4oI,KAAMk8X,KACNh4Y,KAAMk4Y,KACN35W,UAAW,SAASxqJ,EAAKsnG,GAEhB,OADHtnG,EAAAo4Q,KAAO9wK,EAAGwiZ,gBAAgB,GACvB9pf,CACT,EACA46E,KAAM,CAAA,MAMRkqb,GAAgBtzf,EAAW,CAC7B,cAAcpb,EAASic,GAErBA,EAAOjc,QAAUyugB,QAKjBE,GAAuBvzf,EAAW,CACpC,sCAAsCpb,EAASic,GAE7C,IAAIqvI,EAAkBhB,KAClBzF,EAAkBH,KAAiCG,gBACnD1kD,EAAqBP,KAA8BO,mBACnDwta,EAAchN,KACd/zY,EAAYnpC,IACZvD,EAAaT,IAAiBS,WAC9BY,EAAQ,CACV34E,EAAG,CACDu4E,QAAS,aACTF,SAAU,uBAEZp4E,EAAG,CACDs4E,QAAS,aACTF,SAAU,uBAEZn5D,EAAG,CACDq5D,QAAS,aACTF,SAAU,uBAEZxrD,EAAG,CACD0rD,QAAS,aACTF,SAAU,QAEZ1+D,EAAG,CACD4+D,QAAS,aACTF,SAAU,QAEZvwD,EAAG,CACDywD,QAAS,aACTF,SAAU,QAEZm9L,OAAQ,CACNx1Q,EAAG,CACDu4E,QAAS,aACTF,SAAU,QAEZp4E,EAAG,CACDs4E,QAAS,aACTF,SAAU,QAEZn5D,EAAG,CACDq5D,QAAS,aACTF,SAAU,QAEZA,SAAU,QAEZsrK,aAAc,CACZprK,QAAS,UACTr6E,IAAK,EACLu6E,KAAM,IACNJ,SAAU,QAiBZ+xE,QAAS,CACP7xE,QAAS,SACTF,SAAU,OACVn6E,IAAK,EACLu6E,KAAM,GAER5zD,KAAM,CACJ0zD,QAAS,SACTE,KAAM,GACNJ,SAAU,QAEZ2pK,UAAW,CACTzpK,QAAS,SACTE,KAAM,GACNJ,SAAU,QAEZ4f,cAAeD,EAAmB,CAAE3f,SAAU,QAAU,CACtD/8D,KAAM,CACJ,QACA,QACA,QACA,QACA,QACA,QACA,OACA,gBAGJm1e,aAAc/zW,EAAgB,IAAK,GACnCi0W,aAAcj0W,EAAgB,IAAK,GACnCm0W,aAAcn0W,EAAgB,IAAK,GACnCm9D,aAAcn9D,EAAgB,KAC9Bo9D,aAAcp9D,EAAgB,KAC9BurL,aAAcvrL,EAAgB,KAC9BhhE,WAAY3D,EAAW,GAAI0sC,EAAU/oC,WAAY,CAAEjD,MAAM,KAEhDV,EAAAY,EAAOwqE,EAAgB,GAAI,CACpCZ,UAAW,aACXE,eAAe,EACfjsD,iBAAkB,UAEH,CAAC,UAAW,gBAAiB,YACnCxoF,SAAQ,SAASoP,GACpBu7D,EAAAv7D,GAAKoof,EAAYpof,EAAC,IAE1Bu7D,EAAM4D,UAAYxE,EAAW,CAAA,EAAI0sC,EAAUloC,UAAW,CACpDlE,SAAU,OACVgB,MAAO,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAAQ,aAAc,OAAQ,QACpEZ,KAAM,yBAER3kE,EAAOjc,QAAU8gF,KAKjB8tb,GAAqBxzf,EAAW,CAClC,oCAAoCpb,EAASic,GAE3C,IAAIspG,EAAMrN,KACNmiK,EAAqBxqH,KACrB7jE,EAAa2ib,KACjB1yf,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAErD,IAAA5rD,EAAI62D,EAAO,KACX/pE,EAAI+pE,EAAO,KACX57D,EAAI47D,EAAO,KACX1jF,EAAI0jF,EAAO,KACXzjF,EAAIyjF,EAAO,KACXxkE,EAAIwkE,EAAO,KACV72D,GAAMA,EAAEj4B,QAAW+kB,GAAMA,EAAE/kB,QAAWkzB,GAAMA,EAAElzB,QAAWoL,GAAMA,EAAEpL,QAAWqL,GAAMA,EAAErL,QAAWsqB,GAAMA,EAAEtqB,QAI5G8uF,EAAO,YACPA,EAAO,YACPA,EAAO,YACPA,EAAO,gBACPA,EAAO,WACPA,EAAO,oBACPA,EAAO,oBACPA,EAAO,qBACPA,EAAO,sBACPA,EAAO,oBACPA,EAAO,mBACPA,EAAO,mBACPA,EAAO,mBACYwuL,EAAArtL,EAASC,EAAUr4E,EAAQi3E,EAAQ,CAAEr/D,OAAQ,GAAIw2H,QAAS,MAC7En3D,EAAO,QACPA,EAAO,aACPA,EAAO,iBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPA,EAAO,gBACPoB,EAASwqB,QAAU,MA1BjBxqB,EAASrJ,SAAU,CA2BvB,KAKAirb,GAAmBzzf,EAAW,CAChC,mCAAmCpb,EAASic,GAEtC,IAAA6yf,EAAYhxG,KAA0Ba,gBACtCytD,EAAiB0iD,EAAU1iD,eAC3B7mW,EAAMrN,KACNu3Y,EAAkBhB,KAA0BgB,gBAC5C1sW,EAAc8O,KAAqB9O,YACnC0iX,EAAOF,KACP2I,EAAsB,CAAEviZ,MAAO,EAAGC,MAAO,EAAG+H,MAAO,GAC9C,SAAAo7Y,EAAWr7Y,EAAOtvC,GACzB3gF,KAAKiwH,MAAQA,EACbjwH,KAAK2gF,IAAMA,EACX3gF,KAAK21b,KAAO,KACZ31b,KAAKd,KAAO,KAEd,IAAI0E,EAAQ0ngB,EAAWpugB,UA4BvB,SAASqugB,EAAyBn1C,GAChC,IAAIl9d,EAAMk9d,EAAI98d,OASP,OAPHJ,EAAM,EACJk9d,EAAIt4d,MAAM,EAAG5E,EAAM,GACN,IAARA,EACL,EAAEk9d,EAAI,GAAKA,EAAI,IAAM,GAErBA,EAIR,SAASo1C,EAAap1C,GACpB,IAAIl9d,EAAMk9d,EAAI98d,OACd,OAAY,IAARJ,EACK,CAAC,GAAK,IAEN,CAACk9d,EAAI,GAAKA,EAAI,GAAIA,EAAIl9d,EAAM,GAAKk9d,EAAIl9d,EAAM,IAG7C,SAAA0oP,EAAQ3xH,EAAO7qB,GACtB,IAAIozH,EAAcvoG,EAAM23K,gBACpBQ,EAAYn4K,EAAMm4K,UAClBlvS,EAAMksG,EAAMkiR,KACZmkJ,EAAW,CAAC,EACP,SAAAhJ,EAAa3pgB,EAAKk9f,GACrB,IAAA3qd,EAAKmtL,EAAYw9R,GACjBrie,EAAQy0Q,EAAUqiO,EAAoBzU,IAC1C,OAAOl0Y,EAAI1J,UAAUt/G,GAAK,SAASulB,GAC1B,OAAAgtB,EAAG4xD,IAAI5+E,GAAKsV,CAAA,IASvB,GANA83e,EAAS3yE,QAAUkpE,EACjBS,EAAar9Z,EAAMg7Z,GAAI,SACvBqC,EAAar9Z,EAAMi7Z,GAAI,SACvBoC,EAAar9Z,EAAMk7Z,GAAI,SACvBpngB,IAEGA,EACI,MAAA,CACLmkR,UAAW,GACXzuO,MAAO,IAGX,IAAI88d,EAAQjJ,EAAar9Z,EAAMo7Z,IAAK,SAChCmL,EAAQlJ,EAAar9Z,EAAMq7Z,IAAK,SAChCmL,EAAQnJ,EAAar9Z,EAAMs7Z,IAAK,SAIpC,GAHA+K,EAASplD,SAAW,CAACqlD,EAAOC,EAAOC,GACnCH,EAAS3lD,SAAW1gX,EAAMm7Z,UACfn7Z,EAAMg8Z,MAEfqK,EAAS9lD,kBAAoBq8C,EAC3BS,EAAar9Z,EAAM27Z,SAAU,SAC7B0B,EAAar9Z,EAAM47Z,SAAU,SAC7ByB,EAAar9Z,EAAM67Z,SAAU,cAE1B,CAML,IALI,IAAA4K,EAAMF,EAAM,GACZ37d,EAAKu7d,EAAyBG,GAC9B14F,EAAKu4F,EAAyBK,GAC9BjmD,EAAoB,IAAI3rd,MAAMg2C,EAAG12C,OAAS05a,EAAG15a,QAC7CyB,EAAI,EACClC,EAAI,EAAGA,EAAIm3C,EAAG12C,OAAQT,IAC7B,IAAA,IAASipB,EAAI,EAAGA,EAAIkxZ,EAAG15a,OAAQwoB,IACX6jc,EAAA5qd,KAAO,CAACi1C,EAAGn3C,GAAIgzgB,EAAK74F,EAAGlxZ,IAG7C2pf,EAAS9lD,kBAAoBA,EAEtB8lD,EAAAlmF,SAAWymE,EAAgB5mZ,GACpCqma,EAAS7lD,SAAWxgX,EAAM0pD,QAC1B28W,EAAS5+T,UAAYznG,EAAMijJ,aAC3B,IAAIyjR,EAAQrJ,EAAar9Z,EAAMk8Z,OAAQ,SACnCyK,EAAQtJ,EAAar9Z,EAAMm8Z,OAAQ,SACnCyK,EAAQvJ,EAAar9Z,EAAMo8Z,OAAQ,SACnCyK,EAAQT,EAAaE,GACrBQ,EAAQV,EAAaG,GACrBQ,EAAQX,EAAaI,GACrBj7Z,EAAS,CACX,CAACm7Z,EAAM,GAAKG,EAAM,GAAIF,EAAM,GAAKG,EAAM,GAAIF,EAAM,GAAKG,EAAM,IAC5D,CAACL,EAAM,GAAKG,EAAM,GAAIF,EAAM,GAAKG,EAAM,GAAIF,EAAM,GAAKG,EAAM,KAE1DrB,EAAWO,EAAUI,EAAU96Z,GAC/Bi9B,EAAQ0R,EAAYl6C,GACf0la,EAAA9xE,sBAAwB,CAACprT,EAAMhrI,IAAMwiG,EAAMi8Z,SAAUzzX,EAAMtoI,IAAM8/F,EAAMi8Z,UAChF,IAAIh0c,EAAK+3C,EAAMm0Z,cASR,OARPuR,EAAS5vE,cAAgB,CAAC7tY,EAAG3oD,EAAG2oD,EAAG1oD,EAAG0oD,EAAGzpC,GAChCknf,EAAA/uE,QAAU32V,EAAMo0Z,SAASz9D,QACzB+uE,EAAA9uE,QAAU52V,EAAMo0Z,SAASx9D,QACzB8uE,EAAA7uE,SAAW72V,EAAMo0Z,SAASv9D,SAC1B6uE,EAAAxvE,UAAYl2V,EAAMo0Z,SAASl+D,UAC3BwvE,EAAAvvE,QAAUn2V,EAAMo0Z,SAASj+D,QAClCuvE,EAASpqb,QAAU0kB,EAAM1kB,QACzB0kB,EAAMqxZ,KAAOqU,EAAStvE,UAAYp2V,EAAM0pD,QAAU,EAC3Cg8W,EAzHHlngB,EAAAmsf,WAAa,SAASrqe,GACtB,IAAA8yM,EAAcx4N,KAAKiwH,MAAM23K,gBACzBQ,EAAYpoS,KAAKiwH,MAAMm4K,UAClB,SAAAgkO,EAAc/tf,EAAG23e,GACpB,IAAA3qd,EAAKmtL,EAAYw9R,GACjBrie,EAAQy0Q,EAAUqiO,EAAoBzU,IACnC,OAAA3qd,EAAGogI,IAAIptJ,GAAKsV,EAEjB,GAAAjO,EAAU5Q,SAAW9U,KAAK21b,KAAM,CAC9B,IAAA7wb,EAAM4gB,EAAUxmB,KAAKiW,SACrBk3f,EAAM3mf,EAAUxmB,KAAKirb,SAclB,OAbPzka,EAAUuqe,gBAAkB,CAC1Bmc,EAActngB,EAAI,GAAI,SACtBsngB,EAActngB,EAAI,GAAI,SACtBsngB,EAActngB,EAAI,GAAI,SACtBsngB,EAAcC,EAAI,GAAI,SACtBD,EAAcC,EAAI,GAAI,SACtBD,EAAcC,EAAI,GAAI,SAEtB3mf,EAAUxmB,KAAK86b,UAAYh6b,KAAKd,KAAKmigB,SAErC37e,EAAUxmB,KAAK4+b,YAEjBp4a,EAAUsqe,UAAYhwf,KAAKd,KAAKwnP,WAAa1mP,KAAKd,KAAKqqB,MAChD,EAEX,EAiGM3lB,EAAA+mB,OAAS,SAASzrB,GACtBc,KAAKd,KAAOA,EACZ,IAAI4rgB,EAAWlpR,EAAQ5hP,KAAKiwH,MAAO/wH,GAC9Bc,KAAA21b,KAAKhra,OAAOmgf,EACnB,EACAlngB,EAAMyrb,QAAU,WACdrvb,KAAKiwH,MAAMo4K,OAAOpmR,OAAOjiB,KAAK21b,MAC9B31b,KAAK21b,KAAKtG,SACZ,EAYA72a,EAAOjc,QAXE,SAAsB0zH,EAAO/wH,GAChC,IAAA0+Z,EAAM3tS,EAAMo4K,OAAOgkJ,GACnBy+E,EAAWlpR,EAAQ3xH,EAAO/wH,GAC1By2b,EAAOgzB,EAAe/qD,EAAKktG,GAC3BwB,EAAa,IAAIhB,EAAWr7Y,EAAO/wH,EAAKyhF,KAKrC,OAJP2rb,EAAW32E,KAAOA,EAClB22E,EAAWptgB,KAAOA,EAClBy2b,EAAK46D,OAAS+b,EACRr8Y,EAAAo4K,OAAOjvR,IAAIu8a,GACV22E,MAOTC,GAAqB50f,EAAW,CAClC,iCAAiCpb,EAASic,GAExCA,EAAOjc,QAAU,CACf2oG,WAAY,QACZj5F,KAAM,aACN41F,eAAgB62Z,KAChBh3Z,WAAY,CAAC,OAAQ,cACrBnZ,WAAY2ib,KACZ1na,eAAgB2na,KAChBxxY,SAAU,CACR/2H,IAAK,OACL0C,IAAK,QAEP4oI,KAAMkwX,KAAiBlwX,KACvB9b,KAAMg5Y,KACNz6W,UAAW,SAASxqJ,EAAKsnG,GAYhB,OAXPtnG,EAAIqmgB,MAAQrmgB,EAAIzB,EAChByB,EAAIsmgB,MAAQtmgB,EAAIxB,EAChBwB,EAAIumgB,MAAQvmgB,EAAIyd,EACZzd,EAAAwmgB,MAAQl/Z,EAAGwiZ,gBAAgB,GAC3B9pf,EAAAymgB,MAAQn/Z,EAAGwiZ,gBAAgB,GAC3B9pf,EAAA0mgB,MAAQp/Z,EAAGwiZ,gBAAgB,GAC3B9pf,EAAAo4Q,KAAO9wK,EAAGwiZ,gBAAgB,GAC1B9pf,EAAA23b,WAAarwV,EAAGwiZ,gBAAgB,UAC7B9pf,EAAIzB,SACJyB,EAAIxB,SACJwB,EAAIyd,EACJzd,CACT,EACA46E,KAAM,CAAA,MAMR+rb,GAAsBn1f,EAAW,CACnC,oBAAoBpb,EAASic,GAE3BA,EAAOjc,QAAUgwgB,QAKjBQ,GAAuBp1f,EAAW,CACpC,sCAAsCpb,EAASic,GAEzC,IAAAkkF,EAAqBP,KAA8BO,mBACnDE,EAAoBT,KAA8BS,kBAClDyqJ,EAAoBH,KACpBryH,EAAeuyH,KACfj+H,EAAYnpC,IACZ29N,EAAkB92J,KAClBnrD,EAAOD,KAAsBC,KAC7Bjf,EAAaT,IAAiBS,WAC9Bwe,EAAcN,KAAqBM,YACnC4mO,EAAqBhtM,EAAa9qC,OAClCy+J,EAAmB3zH,EAAa1mF,KAChC2zR,EAAyBD,EAAmB1zR,KAChD31B,EAAOjc,QAAU0+F,EAAY,CAC3BipE,IAAK,CACHjnF,QAAS,cAEXknF,IAAK,CACHlnF,QAAS,cAEXs0E,UAAW,CACTt0E,QAAS,cAEX+vb,aAAc,CACZ/vb,QAAS,aACT/+D,OAAQ,CAAC,QAAS,aAAc,gBAAiB,cACjDi/D,KAAM,SAER26J,QAAS,CACP76J,QAAS,MACTF,SAAU,QAEZkwb,aAAc,CACZhwb,QAAS,SACTF,SAAU,OACVI,KAAM,MAERz4B,KAAM+3B,EAAW,GAAIo4C,EAAanwE,KAAM,CAAEy4B,KAAM,YAChD5zD,KAAMkzD,EAAW,CAAA,EAAIo4C,EAAatrG,KAAM,CAAA,GACxCszE,aAAcD,EAAkB,CAAE7f,SAAU,QAAU,CACpD/8D,KAAM,CAAC,MAAO,MAAO,WAAY,UAEnC0mO,UAAWjqK,EAAW,CAAA,EAAIo4C,EAAa6xH,UAAW,CAAA,GAClDhpF,SAAU7oC,EAAa6oC,SACvB/+D,aAAck2B,EAAal2B,aAC3BxwD,KAAM,CACJlY,MAAOuyN,EAAiBvyN,MACxBqvC,MAAOkjL,EAAiBljL,MACxBo2B,QAEF0sJ,YAAavzH,EAAauzH,YAC1Br+J,OAAQtN,EACN,CACEztB,OAAQ6yQ,EAAmB7yQ,OAC3B0xB,QAASmhP,EAAmBnhP,QAC5Bl0C,MAAOq1R,EAAmBr1R,MAC1Bu3H,SAAUtnF,EAAW,GAAIolP,EAAmB99J,SAAU,CACpD7lJ,OAAQ,CAAC,WAAY,KAAM,WAE7BokI,SAAUu/K,EAAmBv/K,SAC7BhjJ,KAAMuiU,EAAmBviU,KACzBwvJ,QAAS+yK,EAAmB/yK,QAC5BE,QAAS6yK,EAAmB7yK,QAC5BE,SAAU2yK,EAAmB3yK,SAC7Bv1B,SAAUkoM,EAAmBloM,SAC7BxrF,KAAMsuC,EACJ,CACEnX,MAAOw8P,EAAuBx8P,OAEhCq4O,EAAgB,gBAElBhoJ,SAAUksK,EAAmBlsK,UAE/BgoJ,EAAgB,WAElBt5S,KAAM,CACJ44E,QAAS,aACT/+D,OAAQ,CAAC,OAAQ,UACjBi/D,KAAM,QAERmhB,UAAW+oJ,IACXl9J,SAAU0qC,EAAa1qC,SACvBC,WAAYyqC,EAAazqC,WACzBnJ,UAAWxE,EAAW,GAAI0sC,EAAUloC,UAAW,CAC7ClD,MAAO,CAAC,MAAO,MAAO,WAAY,OAAQ,UAE5C4e,cAAeD,KACd,OAAQ,aAKXwwa,GAAqBv1f,EAAW,CAClC,oCAAoCpb,EAASic,GAE3C,IAAIspG,EAAMrN,KACN6/C,EAAW9F,KACX0pH,EAAuBvB,KACvBwB,EAAqBjB,KACrBmB,EAAqBhB,KACrBiB,EAA0BhB,KAC1B/uL,EAAawkb,KACjBv0f,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAErD,IACAjkF,EADAq4J,EAAYnpE,EAAO,aAEnB,GAAAmpE,GAAaA,EAAUj4J,OAAQ,CAC7B,IACA6zgB,EADAr1R,EAAU1vJ,EAAO,YAEE,iBAAZ0vJ,GAAoC,KAAZA,GAAkBh2H,EAAIn2C,cAAcmsK,MAClDq1R,EAAA,cAGA,eADF/kb,EAAO,eAAgB+kb,IAExC/kb,EAAO,gBAETlvF,EAAMq4J,EAAUj4J,MAAA,KACX,CACL,IAAI4qK,EAAM97E,EAAO,QAAU,GACvB+7E,EAAM/7E,EAAO,QAAU,GAC3BlvF,EAAMsC,KAAKoH,IAAIshK,EAAI5qK,OAAQ6qK,EAAI7qK,QAE5BJ,GAILswF,EAASwqB,QAAU96G,EACnBkvF,EAAO,QACPA,EAAO,aACPA,EAAO,iBACPA,EAAO,QACHksE,EAAS7F,WAAWjlE,IACD0uL,EAAA3uL,EAASC,EAAU+3C,EAAcpwH,EAAQi3E,EAAQ,CAAEutE,UAAU,IAEhFrB,EAAS1b,SAASpvD,KACpB2uL,EAAmB5uL,EAASC,EAAU+3C,EAAcpwH,EAAQi3E,GAC5DA,EAAO,gBAELksE,EAAS5F,QAAQllE,KACnBpB,EAAO,gBACYiwL,EAAA9uL,EAASC,EAAUr4E,EAAQi3E,IAEhDA,EAAO,QACe,SAAlBoB,EAASnlF,MACai0Q,EAAA/uL,EAASC,EAAU+3C,EAAcn5C,GAEvD05B,EAAAh4B,6BAA6BN,EAAUpB,IAvBzCoB,EAASrJ,SAAU,CAwBvB,KAKAitb,GAAyBz1f,EAAW,CACtC,yCAAyCpb,EAASic,GAEhD,IAAI+0L,EAAO/2B,KACXh+J,EAAOjc,QAAU,SAAsB4xI,EAAK/oC,EAAOwlB,GACjD,IAAIxM,EAAS,CAAC,EAEV/yE,EADMu/E,EAAWxlB,EAAMkqD,KAAKggD,SACnB+9T,SACTppW,EAAS91B,EAAI81B,OAGV,OAFA7lD,EAAAkvZ,SAAW//T,EAAKn0B,SAAS/tI,EAAIA,EAAGmgI,IAAIvH,EAAO,KAAK,GAAM16I,KACtD60F,EAAAmvZ,SAAWhgU,EAAKn0B,SAAS/tI,EAAIA,EAAGmgI,IAAIvH,EAAO,KAAK,GAAM16I,KACtD60F,CACT,KAKAovZ,GAAiB71f,EAAW,CAC9B,gCAAgCpb,EAASic,GAEvC,IAAI82D,EAAYrG,IACZI,EAASD,IAAoBC,OAC7Bokc,EAAuBlzP,KACvB5uC,EAAmB8uC,KACnBI,EAAgBH,KAChB3uM,EAAsB0oC,KAAc1oC,oBACpCrrD,EAAI+zF,KAAc/zF,EACtB,SAASgtf,EAAiBrvf,GACjB,OAAAA,GAAkB,iBAANA,EAErB7F,EAAOjc,QAAU,SAAckX,EAAI2xF,GAC7B,IAGAuoa,EAHAC,EAAkB7hc,EAAoBq5B,EAAMmsD,WAC5Cr4J,EAAM00gB,EAAkBxoa,EAAMmsD,UAAUj4J,OAAS8rG,EAAM4O,QACvD6G,EAAY,IAAI7gH,MAAMd,GAGxBy0gB,EADEvoa,EAAM0yI,QACK,SAASz5N,GACpB,OAAOqvf,EAAiBrvf,IAAMixD,EAAUjxD,EAC1C,EAEaqvf,EAEf,IAAA,IAAS70gB,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CAC5B,IAAI2hH,EAASK,EAAUhiH,GAAK,CAAC,EAC7B,GAAI+0gB,EAAiB,CACf,IAAA5hL,EAAM5mP,EAAMmsD,UAAU14J,GAC1B2hH,EAAOwxO,IAAM2hL,EAAW3hL,GAAOA,EAAM,IAAA,KAChC,CACD,IAAA9nL,EAAM9+D,EAAM8+D,IAAIrrK,GAChBsrK,EAAM/+D,EAAM++D,IAAItrK,GAChBy2E,EAAU40F,IAAQ50F,EAAU60F,GAAa3pD,EAAAypD,OAAS,EAAEC,GAAMC,GAClD3pD,EAAAypD,OAAS,CAAC56F,EAAQA,IAc3B,OAXPsiK,EAAiB9wH,EAAWzV,GAC5Bqoa,EAAqBh6f,EAAI2xF,GACzBy1K,EAAchgK,EAAWzV,GACrBlsG,IACQ2hH,EAAA,GAAGx7F,EAAI,CACf++F,OAAQ,CACN+lD,IAAKzjJ,EAAEjN,EAAI,QAAU,IACrBywJ,IAAKxjJ,EAAEjN,EAAI,QAAU,OAIpBonG,CACT,KAKAgzZ,GAAsBl2f,EAAW,CACnC,6BAA6Bpb,GAE3BA,EAAQuxgB,UAAY,CAClBC,KAAM,OACNC,OAAQ,SACR,aAAc,YACdC,OAAQ,SAERC,OAAQ,SACR,uBAAwB,qBACxB,wBAAyB,uBACzBC,MAAO,QAEPC,WAAY,aACZC,MAAO,QACPC,MAAO,QACPC,UAAW,YACXC,QAAS,UAGTC,UAAW,YACX,kBAAmB,iBACnB,mBAAoB,iBACpB,oBAAqB,mBACrBC,MAAO,QACPC,QAAS,UACT,yBAA0B,uBAC1B,4BAA6B,2BAC7BC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,QAAS,UACTC,UAAW,YACX,cAAe,aACfC,gBAAiB,kBACjBC,MAAO,QACP,qBAAsB,oBACtBC,QAAS,UAGTC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,SAAU,WACV,yBAA0B,wBAC1BC,WAAY,aACZC,MAAO,QAEPC,OAAQ,SAERC,KAAM,OACNC,WAAY,aACZC,SAAU,WACVC,gBAAiB,kBAQjBC,YAAa,cACbC,SAAU,WACVC,SAAU,WACVC,UAAW,YAEXC,WAAY,aACZC,SAAU,WACVC,OAAQ,SAORC,UAAW,YACX,0BAA2B,uBAC3B,wBAAyB,qBACzB,2BAA4B,wBAC5B,gBAAiB,eACjB,iBAAkB,gBAClB,iBAAkB,gBAClB,cAAe,aACfC,SAAU,WACVx3D,aAAc,eACdy3D,UAAW,YACX,qBAAsB,oBACtBC,UAAW,YAIX,wBAAyB,uBACzBC,SAAU,WACVC,UAAW,YACX,iBAAkB,gBAClBC,WAAY,aACZC,cAAe,gBACf91X,MAAO,QACP,sBAAuB,qBAKvB,kBAAmB,gBACnB,mBAAoB,iBACpB,mBAAoB,iBACpB,mBAAoB,iBACpB+1X,QAAS,UACTC,QAAS,UAGTC,QAAS,UACT,gBAAiB,UACjBC,QAAS,WAEH90gB,EAAAmhW,UAAY,CAAC,UAAW,WAChCnhW,EAAQ+0gB,YAAc,CACpBn4D,aAAc,IACd,uBAAwB,IACxB,wBAAyB,IACzB,kBAAmB,IACnBw2D,SAAU,IACVsB,cAAe,IACf,sBAAuB,IACvB,IAAK,KAEP10gB,EAAQg1gB,YAAc,CACpB,kBAAmB,IACnBN,cAAe,MACf,IAAK,KAEP10gB,EAAQi1gB,cAAgB,CACtBC,MAAO,CACLC,aAAc,EAAC,IAAM,KACrBC,aAAc,EAAC,GAAK,IACpBC,SAAU,kBACVC,WAAY,CAAC,EAAG,EAAG,IAErBC,IAAK,CACHJ,aAAc,EAAC,KAAS,IACxBC,aAAc,CAAC,GAAI,IACnBC,SAAU,cAEZG,OAAQ,CACNL,aAAc,EAAC,GAAK,IACpBC,aAAc,CAAC,GAAI,IACnBC,SAAU,kBACVC,WAAY,CAAC,GAAI,EAAG,GACpBG,cAAe,CAAC,EAAG,KAErBC,KAAM,CACJP,aAAc,CAAC,GAAI,KACnBC,aAAc,EAAC,GAAK,IACpBC,SAAU,WACVC,WAAY,CAAC,EAAG,EAAG,IAErBK,OAAQ,CACNR,aAAc,EAAC,GAAK,IACpBC,aAAc,EAAC,GAAK,IACpBC,SAAU,WACVC,WAAY,CAAC,EAAG,EAAG,IAErB,gBAAiB,CACfH,aAAc,EAAC,KAAS,IACxBC,aAAc,CAAC,EAAG,IAClBC,SAAU,kBACVC,WAAY,EAAO,IAAA,EAAG,GACtBG,cAAe,CAAC,KAAM,OAExB,gBAAiB,CACfN,aAAc,EAAC,KAAS,IACxBC,aAAc,EAAC,GAAK,IACpBC,SAAU,WACVC,WAAY,CAAC,EAAG,EAAG,KAGvBt1gB,EAAQ41gB,QAAU,KAClB51gB,EAAQuqE,UAAY,GACpBvqE,EAAQ61gB,UAAY,UACpB71gB,EAAQ81gB,WAAa,UACrB91gB,EAAQ+1gB,oBAAsB,CAC5B,QAAS,YACT,aAAc,WACd,gBAAiB,aAEX/1gB,EAAAg2gB,UAAY,CAAEvzgB,KAAM,UAC5BzC,EAAQi2gB,WAAa,CACnBC,MAAO,EACPC,KAAM,EACNC,MAAO,GAETp2gB,EAAQq2gB,WAAa,CACnBC,SAAU,EACVC,UAAW,EACXC,WAAY,EACZC,OAAQ,EACRx4a,MAAO,GAETj+F,EAAQ8oM,OAAS,CACf,KACA,QACA,OACA,QACA,WACA,YACA,aACA,SACA,UACA,UACA,QACA,WACA,aAEF9oM,EAAQ02gB,oBAAsB,CAC5B,KACA,QACA,OACA,WACA,YACA,aACA,UACA,UACA,QACA,WACA,SACA,QACA,aAEF12gB,EAAQ22gB,qBAAuB,CAC7BT,MAAO,QACPC,KAAM,OACNC,MAAO,OACPE,SAAU,UACVC,UAAW,UACXC,WAAY,YACZC,OAAQ,QACRx4a,MAAO,YAMT24a,GAA0Bx7f,EAAW,CACvC,uDAAuDpb,EAASic,GAC7D,IAASu9C,EAASt/C,EAATs/C,EAEPx5D,EAFgBka,EAEP,SAASu/C,GAEnB,SAASrN,EAAUjkD,GACV,OAAAA,EAET,SAAS+xC,EAAU28d,GACb,GAAc,MAAdA,EAA2B,OAAAzqd,EAC3B,IAAA32B,EAAIE,EAAIkjB,EAAKg+d,EAAWz/e,MAAM,GAAI6hB,EAAK49d,EAAWz/e,MAAM,GAAIjE,EAAK0jf,EAAWx/e,UAAU,GAAIjE,EAAKyjf,EAAWx/e,UAAU,GACjH,OAAA,SAASlnB,EAAO7T,GAChBA,IAAGm5B,EAAKE,EAAK,GACd,IAAA3wB,EAAI,EAAGf,EAAIkM,EAAMpT,OAAQiB,EAAS,IAAIP,MAAMwG,GAGzC,IAFPjG,EAAO,IAAMy3B,GAAMtlB,EAAM,IAAM0oC,EAAK1lB,EACpCn1B,EAAO,IAAM23B,GAAMxlB,EAAM,IAAM8oC,EAAK7lB,EAC7BpuB,EAAIf,GAAUjG,EAAAgH,GAAKmL,EAAMnL,KAAMA,EAC/B,OAAAhH,CACT,EAEF,SAAS0zC,EAAKole,GACZ,IAAuC7igB,EAAnC6O,EAAIo3B,EAAU48d,EAAS58d,WAAiBzkB,EAAKz2B,IAAU22B,EAAKF,EAAIC,GAAMD,EAAIG,GAAMH,EACpF,SAASshf,EAAU7jgB,IACjBA,EAAI4P,EAAE5P,IACA,GAAKuiB,IAAIA,EAAKviB,EAAE,IAClBA,EAAE,GAAKwiB,IAAIA,EAAKxiB,EAAE,IAClBA,EAAE,GAAKyiB,IAAIA,EAAKziB,EAAE,IAClBA,EAAE,GAAK0iB,IAAIA,EAAK1iB,EAAE,IAExB,SAAS8jgB,EAAan9f,GACpB,OAAQA,EAAEpX,MACR,IAAK,qBACDoX,EAAAo9f,WAAW9ggB,QAAQ6ggB,GACrB,MACF,IAAK,QACHD,EAAUl9f,EAAEyxB,aACZ,MACF,IAAK,aACDzxB,EAAAyxB,YAAYn1B,QAAQ4ggB,IAcvB,IAAA9igB,KAVI6igB,EAAA91d,KAAK7qC,SAAQ,SAASk5B,GAEtB,IADP,IAA4Bn8B,EAAxB5W,GAAI,EAAI2H,EAAIorC,EAAItyC,SACXT,EAAI2H,IACXiP,EAAI4P,EAAEusB,EAAI/yC,GAAIA,IACR,GAAKm5B,IAAIA,EAAKviB,EAAE,IAClBA,EAAE,GAAKwiB,IAAIA,EAAKxiB,EAAE,IAClBA,EAAE,GAAKyiB,IAAIA,EAAKziB,EAAE,IAClBA,EAAE,GAAK0iB,IAAIA,EAAK1iB,EAAE,GACxB,IAEU4jgB,EAASx6J,QACN06J,EAAAF,EAASx6J,QAAQroW,IAEhC,MAAO,CAACwhB,EAAIE,EAAID,EAAIE,GAYb,SAAAshf,EAAUJ,EAAUj9f,GAC3B,IAAI/B,EAAK+B,EAAE/B,GAAIq/f,EAAQt9f,EAAE63B,KAAMztB,EAA6B,MAAhBpK,EAAEoK,WAAqB,CAAK,EAAApK,EAAEoK,WAAYmzf,EAAW7+f,EAAOu+f,EAAUj9f,GAC3G,OAAM,MAAN/B,GAAuB,MAATq/f,EAAgB,CAAE10gB,KAAM,UAAWwhB,aAAYmzf,YAAsB,MAATD,EAAgB,CAAE10gB,KAAM,UAAWqV,KAAImM,aAAYmzf,YAAa,CAAE30gB,KAAM,UAAWqV,KAAI45B,KAAMyle,EAAOlzf,aAAYmzf,YAE1L,SAAA7+f,EAAOu+f,EAAUj9f,GACxB,IAAIw9f,EAAiBn9d,EAAU48d,EAAS58d,WAAY8G,EAAO81d,EAAS91d,KAC3D,SAAA3R,EAAI/yC,EAAGiuC,GACVA,EAAOxtC,QAAQwtC,EAAO6C,MAC1B,IAAA,IAASllC,EAAI84C,EAAK1kD,EAAI,GAAKA,EAAIA,GAAIipB,EAAI,EAAGthB,EAAIiE,EAAEnL,OAAQwoB,EAAIthB,IAAKshB,EAC/DglB,EAAOntC,KAAKi6gB,EAAenvgB,EAAEqd,GAAIA,IAE/BjpB,EAAI,GArBH,SAAQ0G,EAAOiB,GAEtB,IADA,IAAI6e,EAAG9d,EAAIhC,EAAMjG,OAAQT,EAAI0I,EAAIf,EAC1B3H,IAAM0I,GAAG8d,EAAI9f,EAAM1G,GAAI0G,EAAM1G,KAAO0G,EAAMgC,GAAIhC,EAAMgC,GAAK8d,EAmB3Cm/B,CAAA1X,EAAQtmC,GAE7B,SAAS4sB,EAAM3d,GACb,OAAOmkgB,EAAenkgB,GAExB,SAAS0+B,EAAK0le,GAEZ,IADA,IAAI/se,EAAS,GACJjuC,EAAI,EAAG2H,EAAIqzgB,EAAMv6gB,OAAQT,EAAI2H,IAAK3H,EAAG+yC,EAAIioe,EAAMh7gB,GAAIiuC,GAErD,OADHA,EAAOxtC,OAAS,KAAUK,KAAKmtC,EAAO,IACnCA,EAET,SAASoqW,EAAK2iI,GAEZ,IADI,IAAA/se,EAASqH,EAAK0le,GACX/se,EAAOxtC,OAAS,KAAUK,KAAKmtC,EAAO,IACtC,OAAAA,EAET,SAASc,EAAQise,GACR,OAAAA,EAAM5zf,IAAIixX,GA8BnB,OA5BA,SAASyiI,EAASz3d,GACZ,IAAgBrU,EAAhB7oC,EAAOk9C,EAAGl9C,KACd,OAAQA,GACN,IAAK,qBACH,MAAO,CAAEA,OAAMw0gB,WAAYt3d,EAAGs3d,WAAWvzf,IAAI0zf,IAC/C,IAAK,QACW9re,EAAAza,EAAM8uB,EAAGrU,aACvB,MACF,IAAK,aACWA,EAAAqU,EAAGrU,YAAY5nB,IAAImN,GACjC,MACF,IAAK,aACWya,EAAAsG,EAAK+N,EAAGqB,MACtB,MACF,IAAK,kBACW1V,EAAAqU,EAAGqB,KAAKt9B,IAAIkuB,GAC1B,MACF,IAAK,UACWtG,EAAAD,EAAQsU,EAAGqB,MACzB,MACF,IAAK,eACW1V,EAAAqU,EAAGqB,KAAKt9B,IAAI2nB,GAC1B,MACF,QACS,OAAA,KAEJ,MAAA,CAAE5oC,OAAM6oC,eAEV8re,CAASv9f,GAET,SAAA09f,EAAOT,EAAU91d,GACxB,IAAIw2d,EAAe,GAAIC,EAAkB,CAAC,EAAGC,EAAgB,CAAA,EAAIr4Z,EAAY,GAAIs4Z,GAAa,EA4CrF,SAAAhte,EAAMite,EAAgBC,GAC7B,IAAA,IAAStyf,KAAKqyf,EAAgB,CACxB,IAAAh5f,EAAIg5f,EAAeryf,UAChBsyf,EAAiBj5f,EAAE/gB,cACnB+gB,EAAE/gB,aACF+gB,EAAE9gB,IACP8gB,EAAAzI,SAAQ,SAAS7Z,GACjBk7gB,EAAal7gB,EAAI,GAAKA,EAAIA,GAAK,CAAA,IAEjC+iH,EAAUjiH,KAAKwhB,IAQZ,OA5DFoiC,EAAA7qC,SAAQ,SAAS7Z,EAAG0I,GACnB,IAAqC8d,EAArCusB,EAAMyne,EAAS91d,KAAK1kD,EAAI,GAAKA,EAAIA,GACjC+yC,EAAItyC,OAAS,IAAMsyC,EAAI,GAAG,KAAOA,EAAI,GAAG,KACtCvsB,EAAAk+B,IAAO22d,GAAa32d,EAAK22d,GAAcr7gB,EAAG0kD,EAAKh8C,GAAK8d,EAC1D,IAEGk+B,EAAA7qC,SAAQ,SAAS7Z,GACpB,IAA2CsiB,EAAGuX,EAA1C53B,EA4BN,SAAcjC,GACZ,IAAsD8mB,EAAlDisB,EAAMyne,EAAS91d,KAAK1kD,EAAI,GAAKA,EAAIA,GAAI23B,EAAKob,EAAI,GAK3C,OAJHyne,EAAS58d,WAAW92B,EAAK,CAAC,EAAG,GAAIisB,EAAIl5B,SAAQ,SAASs/J,GACrDryJ,EAAA,IAAMqyJ,EAAG,GAAIryJ,EAAG,IAAMqyJ,EAAG,EAAC,KAErBryJ,EAAAisB,EAAIA,EAAItyC,OAAS,GACpBT,EAAI,EAAI,CAAC8mB,EAAI6Q,GAAM,CAACA,EAAI7Q,GAlCvBw6P,CAAKthR,GAAIuB,EAAQU,EAAE,GAAIT,EAAMS,EAAE,GACnC,GAAAqgB,EAAI84f,EAAc75gB,GAIhB,UAHG65gB,EAAc94f,EAAE9gB,KACvB8gB,EAAExhB,KAAKd,GACPsiB,EAAE9gB,IAAMA,EACJq4B,EAAIshf,EAAgB35gB,GAAM,QACrB25gB,EAAgBthf,EAAEt4B,OACzB,IAAIi6gB,EAAK3hf,IAAMvX,EAAIA,EAAIA,EAAEvW,OAAO8tB,GAChBshf,EAAAK,EAAGj6gB,MAAQ+gB,EAAE/gB,OAAS65gB,EAAcI,EAAGh6gB,IAAMq4B,EAAEr4B,KAAOg6gB,CAAA,MAEtEL,EAAgB74f,EAAE/gB,OAAS65gB,EAAc94f,EAAE9gB,KAAO8gB,OAE3C,GAAAA,EAAI64f,EAAgB35gB,GAIzB,UAHG25gB,EAAgB74f,EAAE/gB,OACzB+gB,EAAEivB,QAAQvxC,GACVsiB,EAAE/gB,MAAQA,EACNs4B,EAAIuhf,EAAc75gB,GAAQ,QACrB65gB,EAAcvhf,EAAEr4B,KACvB,IAAIi6gB,EAAK5hf,IAAMvX,EAAIA,EAAIuX,EAAE9tB,OAAOuW,GAChB64f,EAAAM,EAAGl6gB,MAAQs4B,EAAEt4B,OAAS65gB,EAAcK,EAAGj6gB,IAAM8gB,EAAE9gB,KAAOi6gB,CAAA,MAEtEN,EAAgB74f,EAAE/gB,OAAS65gB,EAAc94f,EAAE9gB,KAAO8gB,OAIpC64f,GADhB74f,EAAI,CAACtiB,IACauB,MAAQA,GAAS65gB,EAAc94f,EAAE9gB,IAAMA,GAAO8gB,CAClE,IAsBF+rB,EAAM+se,EAAeD,GACrB9se,EAAM8se,EAAiBC,GAClB12d,EAAA7qC,SAAQ,SAAS7Z,GACfk7gB,EAAal7gB,EAAI,GAAKA,EAAIA,IAAc+iH,EAAAjiH,KAAK,CAACd,GAAE,IAEhD+iH,EAKA,SAAA24Z,EAASlB,EAAUmB,EAASzpf,GACnC,IAAIwyB,EAAM1kD,EAAG2H,EACb,GAAId,UAAUpG,OAAS,IAIhB,SAAY+5gB,EAAUmB,EAASzpf,GACtC,IAAgCoc,EAA5BoW,EAAO,GAAIk3d,EAAa,GAC5B,SAASC,EAAS77gB,GAChB,IAAI0I,EAAI1I,EAAI,GAAKA,EAAIA,GACpB47gB,EAAWlzgB,KAAOkzgB,EAAWlzgB,GAAK,KAAK5H,KAAK,CAAEd,IAAG65B,EAAGyU,IAEvD,SAASwte,EAASd,GAChBA,EAAMnhgB,QAAQgigB,GAEhB,SAASE,EAASf,GAChBA,EAAMnhgB,QAAQiigB,GAEhB,SAASE,EAAShB,GAChBA,EAAMnhgB,QAAQkigB,GAEhB,SAASjB,EAASv9f,GACR,OAAA+wB,EAAO/wB,EAAGA,EAAEpX,MAClB,IAAK,qBACDoX,EAAAo9f,WAAW9ggB,QAAQihgB,GACrB,MACF,IAAK,aACHgB,EAASv+f,EAAEmnC,MACX,MACF,IAAK,kBACL,IAAK,UACHq3d,EAASx+f,EAAEmnC,MACX,MACF,IAAK,eACHs3d,EAASz+f,EAAEmnC,OAUV,OANPo2d,EAASa,GACTC,EAAW/hgB,QAAkB,MAAVqY,EAAiB,SAAS+pf,GAC3Cv3d,EAAK5jD,KAAKm7gB,EAAM,GAAGj8gB,EACrB,EAAI,SAASi8gB,GACP/pf,EAAO+pf,EAAM,GAAGpif,EAAGoif,EAAMA,EAAMx7gB,OAAS,GAAGo5B,IAAI6qB,EAAK5jD,KAAKm7gB,EAAM,GAAGj8gB,EAAC,GAElE0kD,EA1C0Bw3d,CAAY1B,EAAUmB,EAASzpf,YACtDlyB,EAAI,EAAG0kD,EAAO,IAAIvjD,MAAMwG,EAAI6ygB,EAAS91d,KAAKjkD,QAAST,EAAI2H,IAAK3H,EAAG0kD,EAAK1kD,GAAKA,EACnF,MAAO,CAAEmG,KAAM,kBAAmBu+C,KAAMu2d,EAAOT,EAAU91d,IAkDlD,SAAAy3d,EAAU3B,EAAUx6J,GAC3B,IAAIo8J,EAAgB,CAAC,EAAGzle,EAAW,GAAI3qB,EAAS,GAehD,SAASqwf,EAAQtte,GACPA,EAAAl1B,SAAQ,SAASw+X,GAClBA,EAAAx+X,SAAQ,SAASk5B,IACnBqpe,EAAcrpe,EAAMA,EAAM,GAAKA,EAAMA,KAASqpe,EAAcrpe,GAAO,KAAKjyC,KAAKiuC,EAAO,GACtF,IAEH4H,EAAS71C,KAAKiuC,GAEhB,SAASa,EAAKyoW,GACZ,OAjCJ,SAAwBA,GAEf,IADH,IAAyBzsY,EAAzB5L,GAAQ,EAAA2H,EAAI0wY,EAAK53Y,OAAWqF,EAAIuyY,EAAK1wY,EAAI,GAAIioC,EAAO,IAC/C5vC,EAAI2H,GAAGiE,EAAI9F,EAAGA,EAAIuyY,EAAKr4Y,GAAI4vC,GAAQhkC,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAC5D,OAAAnD,KAAKK,IAAI4sC,GA8BP0se,CAAerggB,EAAOu+f,EAAU,CAAEr0gB,KAAM,UAAWu+C,KAAM,CAAC2zV,KAASrpW,YAAY,IAyBjF,OAhDPgxU,EAAQnmW,SACR,SAASihgB,EAASv9f,GAChB,OAAQA,EAAEpX,MACR,IAAK,qBACDoX,EAAAo9f,WAAW9ggB,QAAQihgB,GACrB,MACF,IAAK,UACHuB,EAAQ9+f,EAAEmnC,MACV,MACF,IAAK,eACDnnC,EAAAmnC,KAAK7qC,QAAQwigB,OAeZ1le,EAAA98B,SAAQ,SAASk1B,GACpB,IAACA,EAAQlnB,EAAG,CACd,IAAIuF,EAAQ,GAAImvf,EAAa,CAACxte,GAGvB,IAFPA,EAAQlnB,EAAI,EACZmE,EAAOlrB,KAAKssB,GACL2hB,EAAUwte,EAAWzre,OAC1B1jB,EAAMtsB,KAAKiuC,GACHA,EAAAl1B,SAAQ,SAASw+X,GAClBA,EAAAx+X,SAAQ,SAASk5B,GACNqpe,EAAArpe,EAAM,GAAKA,EAAMA,GAAKl5B,SAAQ,SAAS2igB,GAC9CA,EAAS30f,IACZ20f,EAAS30f,EAAI,EACb00f,EAAWz7gB,KAAK07gB,GAClB,GACD,GACF,IAGP,IAEO7le,EAAA98B,SAAQ,SAASk1B,UACjBA,EAAQlnB,CAAA,IAEV,CACL1hB,KAAM,eACNu+C,KAAM14B,EAAO5E,KAAI,SAASq1f,GACpB,IAAW90gB,EAAX+8C,EAAO,GAWN,GAVK+3d,EAAA5igB,SAAQ,SAASk1B,GACjBA,EAAAl1B,SAAQ,SAASw+X,GAClBA,EAAAx+X,SAAQ,SAASk5B,GAChBqpe,EAAcrpe,EAAM,GAAKA,EAAMA,GAAKtyC,OAAS,GAC/CikD,EAAK5jD,KAAKiyC,EACZ,GACD,GACF,KAGEprC,GADE+8C,EAAAu2d,EAAOT,EAAU91d,IACVjkD,QAAU,EACtB,IAAA,IAAmCshS,EAAIv7Q,EAA9BxmB,EAAI,EAAGipB,EAAI2mB,EAAK8U,EAAK,IAAY1kD,EAAI2H,IAAK3H,GAC5C+hS,EAAKnyP,EAAK8U,EAAK1kD,KAAOipB,IACzBzC,EAAIk+B,EAAK,GAAIA,EAAK,GAAKA,EAAK1kD,GAAI0kD,EAAK1kD,GAAKwmB,EAAGyC,EAAI84Q,GAIhD,OAAAr9O,CAAA,IACNxyB,QAAO,SAASwyB,GACjB,OAAOA,EAAKjkD,OAAS,CACtB,KAGI,SAAAylB,EAAOta,EAAGC,GAEjB,IADI,IAAAjC,EAAK,EAAGD,EAAKiC,EAAEnL,OACZmJ,EAAKD,GAAI,CACV,IAAAkb,EAAMjb,EAAKD,IAAO,EAClBiC,EAAEiZ,GAAOhZ,IAAQgZ,EAAM,EACjBlb,EAAAkb,EAEL,OAAAjb,EA+CT,SAAS8ygB,EAAYnC,GACf,GAAc,MAAdA,EAA2B,OAAAzqd,EAC3B,IAAA32B,EAAIE,EAAIkjB,EAAKg+d,EAAWz/e,MAAM,GAAI6hB,EAAK49d,EAAWz/e,MAAM,GAAIjE,EAAK0jf,EAAWx/e,UAAU,GAAIjE,EAAKyjf,EAAWx/e,UAAU,GACjH,OAAA,SAASlnB,EAAO7T,GAChBA,IAAGm5B,EAAKE,EAAK,GACd,IAAA3wB,EAAI,EAAGf,EAAIkM,EAAMpT,OAAQiB,EAAS,IAAIP,MAAMwG,GAAIyxB,EAAKz2B,KAAKk7B,OAAOhqB,EAAM,GAAKgjB,GAAM0lB,GAAKjjB,EAAK32B,KAAKk7B,OAAOhqB,EAAM,GAAKijB,GAAM6lB,GAGtH,IAFPj7C,EAAO,GAAK03B,EAAKD,EAAIA,EAAKC,EAC1B13B,EAAO,GAAK43B,EAAKD,EAAIA,EAAKC,EACnB5wB,EAAIf,GAAUjG,EAAAgH,GAAKmL,EAAMnL,KAAMA,EAC/B,OAAAhH,CACT,EAqDFy7D,EAAS/nB,KAAOA,EAChB+nB,EAASw/c,QA9XA,SAAQnC,EAAUj9f,GAElB,MADU,iBAANA,IAAoBA,EAAAi9f,EAASx6J,QAAQziW,IAC9B,uBAAXA,EAAEpX,KAAgC,CAAEA,KAAM,oBAAqBy2gB,SAAUr/f,EAAEo9f,WAAWvzf,KAAI,SAASi8B,GACjG,OAAAu3d,EAAUJ,EAAUn3d,EAC5B,KAAMu3d,EAAUJ,EAAUj9f,IA2X7B4/C,EAAS71C,MAvMT,SAAekzf,GACb,OAAOv+f,EAAOu+f,EAAU2B,EAAUxxgB,MAAMxD,KAAMN,aAuMhDs2D,EAASg/c,UAAYA,EACrBh/c,EAAS2/X,KA/PT,SAAc09E,GACZ,OAAOv+f,EAAOu+f,EAAUkB,EAAS/wgB,MAAMxD,KAAMN,aA+P/Cs2D,EAASu+c,SAAWA,EACpBv+c,EAASja,UAlHT,SAAmB88T,GACjB,IAAI68J,EAAe,CAAC,EAAGN,EAAav8J,EAAQ54V,KAAI,WAC9C,MAAO,EAAC,IAED,SAAAkuB,EAAKoP,EAAMrzB,GACbqzB,EAAA7qC,SAAQ,SAASjO,GAChBA,EAAI,IAAGA,GAAKA,GACZ,IAAA2R,EAAIs/f,EAAajxgB,GACjB2R,EAAKA,EAAAzc,KAAKuwB,GACIwrf,EAAAjxgB,GAAK,CAACylB,EAAE,IAGrB,SAAA0d,EAAQ2V,EAAMrzB,GAChBqzB,EAAA7qC,SAAQ,SAASk5B,GACpBuC,EAAKvC,EAAK1hB,EAAE,IAShB,IAAIyrf,EAAe,CACjB19R,WAAY9pM,EACZyne,gBAAiBhue,EACjBiue,QAASjue,EACTkue,aAAc,SAASv4d,EAAMrzB,GACtBqzB,EAAA7qC,SAAQ,SAASk5B,GACpBhE,EAAQgE,EAAK1hB,EAAE,MAKrB,IAAA,IAASrxB,KADTggX,EAAQnmW,SAhBC,SAAAihgB,EAASv9f,EAAG8T,GACJ,uBAAX9T,EAAEpX,OAAiCw0gB,WAAW9ggB,SAAQ,SAASwpC,GACjEy3d,EAASz3d,EAAIhyB,EAAE,IAER9T,EAAEpX,QAAQ22gB,GAAcA,EAAav/f,EAAEpX,MAAMoX,EAAEmnC,KAAMrzB,MAalDwrf,EACZ,IAAA,IAASl2f,EAAUk2f,EAAa78gB,GAAIkC,EAAIykB,EAAQlmB,OAAQiI,EAAI,EAAGA,EAAIxG,IAAKwG,EACtE,IAAA,IAASugB,EAAIvgB,EAAI,EAAGugB,EAAI/mB,IAAK+mB,EAAG,CAC9B,IAAsCthB,EAAlCu1gB,EAAKv2f,EAAQje,GAAIy0gB,EAAKx2f,EAAQsC,IAC7BthB,EAAI40gB,EAAWW,IAAKl9gB,EAAIkmB,EAAOve,EAAGw1gB,MAASA,GAAIx1gB,EAAE4tC,OAAOv1C,EAAG,EAAGm9gB,IAC9Dx1gB,EAAI40gB,EAAWY,IAAKn9gB,EAAIkmB,EAAOve,EAAGu1gB,MAASA,GAAIv1gB,EAAE4tC,OAAOv1C,EAAG,EAAGk9gB,GAIlE,OAAAX,GAwETp/c,EAASnN,SA1DA,SAASwqd,EAAUD,GAC1B,GAAIC,EAAS58d,UAAiB,MAAA,IAAIv8C,MAAM,qBACxC,GAAKk5gB,GAAeA,EAAWz/e,MAM7Bo6K,EAAMslU,EAASple,SANqB,CAChC,MAAGztC,EAAIhF,KAAKO,MAAMq3gB,KAAgB,GAAI,MAAM,IAAIl5gB,MAAM,gBAE1D,IAAwDsG,EAApDwxB,GADE+7K,EAAAslU,EAASple,MAAQA,EAAKole,IACf,GAAInhf,EAAK67K,EAAI,GAAI97K,EAAK87K,EAAI,GAAI57K,EAAK47K,EAAI,GACvCqlU,EAAA,CAAEz/e,MAAO,CAAC1B,EAAKD,GAAMC,EAAKD,IAAOxxB,EAAI,GAAK,EAAG2xB,EAAKD,GAAMC,EAAKD,IAAO1xB,EAAI,GAAK,GAAIozB,UAAW,CAAC5B,EAAIE,GAAI,CAIhH,IAA6B67K,EAAKv9L,EAAlC6O,EAAIk2f,EAAYnC,GAAuBl3b,EAASm3b,EAASx6J,QAASo9J,EAAU,CAAC,EACjF,SAASC,EAAc9of,GACrB,OAAO/N,EAAE+N,GAEX,SAAS+of,EAAiBzpgB,GACpB,IAAAnS,EACJ,OAAQmS,EAAM1N,MACZ,IAAK,qBACMzE,EAAA,CAAEyE,KAAM,qBAAsBw0gB,WAAY9mgB,EAAM8mgB,WAAWvzf,IAAIk2f,IACxE,MACF,IAAK,QACH57gB,EAAS,CAAEyE,KAAM,QAAS6oC,YAAaque,EAAcxpgB,EAAMm7B,cAC3D,MACF,IAAK,aACMttC,EAAA,CAAEyE,KAAM,aAAc6oC,YAAan7B,EAAMm7B,YAAY5nB,IAAIi2f,IAClE,MACF,QACS,OAAAxpgB,EAKJ,OAHS,MAAZA,EAAM2H,KAAY9Z,EAAO8Z,GAAK3H,EAAM2H,IACtB,MAAd3H,EAAMuhC,OAAc1zC,EAAO0zC,KAAOvhC,EAAMuhC,MACpB,MAApBvhC,EAAM8T,aAAoBjmB,EAAOimB,WAAa9T,EAAM8T,YACjDjmB,EAUJ,IAAAiW,KAAO0rE,EAAgB+5b,EAAAzlgB,GAAO2lgB,EAAiBj6b,EAAO1rE,IACpD,MAAA,CACLxR,KAAM,WACNivC,KAAM8/J,EACNt3J,UAAW28d,EACXv6J,QAASo9J,EACT14d,KAAM81d,EAAS91d,KAAKt9B,KAdtB,SAAqBvT,GACf,IAAiC+C,EAAjC5W,EAAI,EAAG0I,EAAI,EAAG+jB,EAAK5Y,EAAMpT,OAAWiB,EAAS,IAAIP,MAAMsrB,GAE3D,IADA/qB,EAAO,GAAK8kB,EAAE3S,EAAM,GAAI,KACf7T,EAAIysB,KAAS7V,EAAI4P,EAAE3S,EAAM7T,GAAIA,IAAI,IAAM4W,EAAE,MAAIlV,EAAOgH,KAAOkO,GAG7D,OAFG,IAANlO,IAAShH,EAAOgH,KAAO,CAAC,EAAG,IAC/BhH,EAAOjB,OAASiI,EACThH,OAmBXy7D,EAASvf,UAAYA,EACrBuf,EAASu/c,YAAcA,EACvBv4gB,OAAOiH,eAAe+xD,EAAU,aAAc,CAAEt6D,OAAO,GAAM,EAlcE+a,EAA5C,iBAAZla,QAA0C,IAAXic,EAAiCjc,GAAmFw5D,EAAUA,GAAW9mD,MAAsB4zF,SAAW9sC,EAAQ8sC,UAAY,CAAA,MAwctOuza,GAAyBz+f,EAAW,CACtC,4BAA4Bpb,EAASic,GAE/B,IAAA69f,EAAgB79f,EAAOjc,QAAU,CAAC,EAClC+1gB,EAAsBzE,KAAsByE,oBAC5CgE,EAAkBnD,KAA0BqC,QAClCa,EAAAE,gBAAkB,SAAS19S,GAChC,MAAA,CACLA,EAAU29S,MAAMjxgB,QAAQ,KAAM,KAC9B,IACAszN,EAAUy8N,WAAW91b,WACrB,KACA1F,KAAK,GACT,EACcu8gB,EAAAI,gBAAkB,SAASzpb,EAAa0pb,GACpD,OAAO1pb,EAAc0pb,EAAe,OACtC,EACcL,EAAAM,oBAAsB,SAASvxa,EAAOvC,GAC9C,IAAArE,EAAQ8za,EAAoBlta,EAAM4na,cAClCpugB,EAAMikG,EAASg2Q,QAAQr6Q,GACpB,OAAA83a,EAAgBzza,EAAUjkG,GAAK62gB,QACxC,KAKAmB,GAAwBj/f,EAAW,CACrC,2BAA2Bpb,GAErB,IAAA8sE,EAASD,IAAoBC,OACzB9sE,EAAAs6gB,sBAAwB,SAASh8Z,GAKvC,IAJI,IACAutI,EADQvtI,EAAU,GAAGzV,MACDgjJ,YACpBpQ,EAAS,GACT8+R,EAAa,GACRj+gB,EAAI,EAAGA,EAAIgiH,EAAUvhH,OAAQT,IAAK,CACrC,IACAorK,EADSppD,EAAUhiH,GACHorK,OAChBA,EAAO,KAAO56F,EAChBytc,EAAWn9gB,KAAKsqK,IACNmkF,GAAe0uR,EAAWx9gB,OAAS,IAC7C0+O,EAAOr+O,KAAKm9gB,GACZA,EAAa,IAMV,OAHHA,EAAWx9gB,OAAS,GACtB0+O,EAAOr+O,KAAKm9gB,GAEP9+R,CACT,EACQz7O,EAAAw6gB,SAAW,SAAS/+R,GACtB,OAAkB,IAAlBA,EAAO1+O,OACF,CACL0F,KAAM,aACN6oC,YAAamwM,EAAO,IAGf,CACLh5O,KAAM,kBACN6oC,YAAamwM,EAGnB,EACQz7O,EAAAy6gB,YAAc,SAASh/R,GACzB,GAAkB,IAAlBA,EAAO1+O,OACF,MAAA,CACL0F,KAAM,UACN6oC,YAAamwM,GAIf,IADA,IAAIi/R,EAAU,IAAIj9gB,MAAMg+O,EAAO1+O,QACtBT,EAAI,EAAGA,EAAIm/O,EAAO1+O,OAAQT,IACjCo+gB,EAAQp+gB,GAAK,CAACm/O,EAAOn/O,IAEhB,MAAA,CACLmG,KAAM,eACN6oC,YAAaove,EAGnB,EACA16gB,EAAQ26gB,UAAY,WACX,MAAA,CACLl4gB,KAAM,QACN6oC,YAAa,GAEjB,KAKAsve,GAAwBx/f,EAAW,CACrC,sCAAsCpb,EAASic,GAC7CA,EAAOjc,QAAU,CACf66gB,IAAK,SACLC,IAAK,aACLC,IAAK,UACLC,IAAK,UACLC,IAAK,uBACLC,IAAK,UACLC,IAAK,SACLC,IAAK,YACLC,IAAK,aACLC,IAAK,UACLC,IAAK,WACLC,IAAK,UACLC,IAAK,2BACLC,IAAK,YACLC,IAAK,4CACLC,IAAK,aACLC,IAAK,UACLC,IAAK,UACLC,IAAK,oCACLC,IAAK,WACLC,IAAK,gBACLC,IAAK,wBACLC,IAAK,kCACLC,IAAK,eACLC,IAAK,UACLC,IAAK,SACLC,IAAK,UACLC,IAAK,sEACLC,IAAK,qBACLC,IAAK,oBACLC,IAAK,SACLC,IAAK,SACLC,IAAK,yBACLC,IAAK,SACLC,IAAK,WACLC,IAAK,+BACLC,IAAK,UACLC,IAAK,QACLC,IAAK,2BACLC,IAAK,WACLC,IAAK,SACLC,IAAK,SACLC,IAAK,8BACLC,IAAK,UACLC,IAAK,WACLC,IAAK,uFACLC,IAAK,YACLC,IAAK,mBACLC,IAAK,WACLC,IAAK,SACLC,IAAK,0GACLC,IAAK,UACLC,IAAK,cACLC,IAAK,eACLC,IAAK,UACLC,IAAK,UACLC,IAAK,iCACLC,IAAK,SACLC,IAAK,iBACLC,IAAK,oCACLC,IAAK,+IACLC,IAAK,UACLC,IAAK,WACLC,IAAK,gBACLC,IAAK,gBACLC,IAAK,UACLC,IAAK,QACLC,IAAK,eACLC,IAAK,0CACLC,IAAK,UACLC,IAAK,UACLC,IAAK,qBACLC,IAAK,oBACLC,IAAK,eACLC,IAAK,OACLC,IAAK,UACLC,IAAK,iEACLC,IAAK,wBACLC,IAAK,2BACLC,IAAK,mBACLC,IAAK,QACLC,IAAK,SACLC,IAAK,wBACLC,IAAK,0EACLC,IAAK,qDACLC,IAAK,oBACLC,IAAK,YACLC,IAAK,yBACLC,IAAK,YACLC,IAAK,UACLC,IAAK,aACLC,IAAK,UACLC,IAAK,YACLC,IAAK,WACLC,IAAK,8DACLC,IAAK,8BACLC,IAAK,yBACLC,IAAK,QACLC,IAAK,kBACLC,IAAK,8BACLC,IAAK,wBACLC,IAAK,aACLC,IAAK,wBACLC,IAAK,UACLC,IAAK,kBACLC,IAAK,YACLC,IAAK,iBACLC,IAAK,sBACLC,IAAK,kCACLC,IAAK,sBACLC,IAAK,SACLC,IAAK,QACLC,IAAK,UACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,QACLC,IAAK,iDACLC,IAAK,WACLC,IAAK,wEACLC,IAAK,SACLC,IAAK,iBACLC,IAAK,cACLC,IAAK,SACLC,IAAK,UACLC,IAAK,iBACLC,IAAK,UACLC,IAAK,QACLC,IAAK,gBACLC,IAAK,YACLC,IAAK,qBACLC,IAAK,YACLC,IAAK,sBACLC,IAAK,eACLC,IAAK,WACLC,IAAK,UACLC,IAAK,aACLC,IAAK,WACLC,IAAK,WACLC,IAAK,aACLC,IAAK,aACLC,IAAK,YACLC,IAAK,aACLC,IAAK,WACLC,IAAK,kCACLC,IAAK,SACLC,IAAK,WACLC,IAAK,4BACLC,IAAK,aACLC,IAAK,mBACLC,IAAK,aACLC,IAAK,gBACLC,IAAK,UACLC,IAAK,QACLC,IAAK,QACLC,IAAK,2CACLC,IAAK,gCACLC,IAAK,iBACLC,IAAK,eACLC,IAAK,YACLC,IAAK,iBACLC,IAAK,UACLC,IAAK,OACLC,IAAK,UACLC,IAAK,UACLC,IAAK,SACLC,IAAK,kBACLC,IAAK,yBACLC,IAAK,QACLC,IAAK,8BACLC,IAAK,SACLC,IAAK,oBACLC,IAAK,WACLC,IAAK,OACLC,IAAK,cACLC,IAAK,WACLC,IAAK,SACLC,IAAK,WACLC,IAAK,eACLC,IAAK,QACLC,IAAK,6EACLC,IAAK,wBACLC,IAAK,cACLC,IAAK,iBACLC,IAAK,gEACLC,IAAK,SACLC,IAAK,iBACLC,IAAK,SACLC,IAAK,iBACLC,IAAK,WACLC,IAAK,0FACLC,IAAK,WACLC,IAAK,UACLC,IAAK,qBACLC,IAAK,cACLC,IAAK,uBACLC,IAAK,oBACLC,IAAK,UACLC,IAAK,uBACLC,IAAK,WACLC,IAAK,SACLC,IAAK,YACLC,IAAK,mCACLC,IAAK,qBACLC,IAAK,WACLC,IAAK,UACLC,IAAK,SACLC,IAAK,8BACLC,IAAK,0BACLC,IAAK,kBACLC,IAAK,QACLC,IAAK,oBACLC,IAAK,0BACLC,IAAK,wBACLC,IAAK,WACLC,IAAK,YACLC,IAAK,SACLC,IAAK,cACLC,IAAK,QACLC,IAAK,mDACLC,IAAK,QACLC,IAAK,mBACLC,IAAK,kBACLC,IAAK,yCACLC,IAAK,OACLC,IAAK,UACLC,IAAK,QACLC,IAAK,kBACLC,IAAK,UACLC,IAAK,SACLC,IAAK,UACLC,IAAK,QACLC,IAAK,SACLC,IAAK,SACLC,IAAK,SACLC,IAAK,8CACLC,IAAK,uCACLC,IAAK,WACLC,IAAK,uFACLC,IAAK,sBACLC,IAAK,UACLC,IAAK,QACLC,IAAK,wBACLC,IAAK,YACLC,IAAK,yDACLC,IAAK,0EACLC,IAAK,qDACLC,IAAK,gBACLC,IAAK,iBACLC,IAAK,qGACLC,IAAK,mHACLC,IAAK,aACLC,IAAK,4BACLC,IAAK,WACLC,IAAK,yCAMPC,GAAcxvgB,EAAW,CAC3B,gDAAgDpb,GAE9CS,OAAOiH,eAAe1H,EAAS,aAAc,CAAEb,OAAO,IACtD,IAAI0rhB,EAAc,UACdC,EAAU,CACZC,YAAaF,UACbG,YAAaH,UACb7jI,QAAS,KAAO,EAAI/nZ,KAAKu0B,IACzBy3f,KAAMJ,gBACNK,OAAsB,MAAdL,EACRM,WAAYN,UACZO,WAAYP,UACZQ,OAAQR,EACRS,OAAQT,EACRU,MAAOV,kBACPW,YAAaX,WACbY,YAAaZ,WACba,cAAeb,EAAc,KAC7B9jI,QAAS,EACT4kI,MAAOd,mBAELe,EAAc,CAChBC,MAAO,UACPd,YAAa,IACbC,YAAa,IACbC,KAAM,aACNa,SAAU,KACVZ,OAAQ,eACRC,WAAY,KACZC,WAAY,KACZC,OAAQ,EACRC,OAAQ,EACRC,MAAO,OACPG,cAAe,sBACfF,YAAa,IACbC,YAAa,IACbE,MAAO,aAET,SAAS1S,EAAQrue,EAAM3mB,EAAY27H,EAAU,CAAA,GACrC,MAAAmsY,EAAO,CAAEtphB,KAAM,WASd,OARY,IAAfm9I,EAAQ9nI,IAAY8nI,EAAQ9nI,MAC9Bi0gB,EAAKj0gB,GAAK8nI,EAAQ9nI,IAEhB8nI,EAAQluG,OACVq6e,EAAKr6e,KAAOkuG,EAAQluG,MAEjBq6e,EAAA9ngB,WAAaA,GAAc,CAAC,EACjC8ngB,EAAK3U,SAAWxse,EACTmhf,EAoBT,SAASl7f,EAAMya,EAAarnB,EAAY27H,EAAU,CAAA,GAChD,IAAKt0G,EACG,MAAA,IAAI3tC,MAAM,2BAElB,IAAKF,MAAMiF,QAAQ4oC,GACX,MAAA,IAAI3tC,MAAM,gCAEd,GAAA2tC,EAAYvuC,OAAS,EACjB,MAAA,IAAIY,MAAM,+CAEd,IAACkgX,EAASvyU,EAAY,MAAQuyU,EAASvyU,EAAY,IAC/C,MAAA,IAAI3tC,MAAM,oCAMX,OAAAs7gB,EAJM,CACXx2gB,KAAM,QACN6oC,eAEmBrnB,EAAY27H,GAUnC,SAASv0G,EAAQC,EAAarnB,EAAY27H,EAAU,CAAA,GAClD,IAAA,MAAW+0P,KAAQrpW,EAAa,CAC1B,GAAAqpW,EAAK53Y,OAAS,EAChB,MAAM,IAAIY,MACR,+DAGA,GAAAg3Y,EAAKA,EAAK53Y,OAAS,GAAGA,SAAW43Y,EAAK,GAAG53Y,OACrC,MAAA,IAAIY,MAAM,+CAET,IAAA,IAAAqH,EAAI,EAAGA,EAAI2vY,EAAKA,EAAK53Y,OAAS,GAAGA,OAAQiI,IAC5C,GAAA2vY,EAAKA,EAAK53Y,OAAS,GAAGiI,KAAO2vY,EAAK,GAAG3vY,GACjC,MAAA,IAAIrH,MAAM,+CAQf,OAAAs7gB,EAJM,CACXx2gB,KAAM,UACN6oC,eAEmBrnB,EAAY27H,GAUnC,SAAS26X,EAAWjve,EAAarnB,EAAY27H,EAAU,CAAA,GACjD,GAAAt0G,EAAYvuC,OAAS,EACjB,MAAA,IAAIY,MAAM,yDAMX,OAAAs7gB,EAJM,CACXx2gB,KAAM,aACN6oC,eAEmBrnB,EAAY27H,GAUnC,SAASosY,EAAkB9S,EAAUt5X,EAAU,IACvC,MAAAj4D,EAAK,CAAEllF,KAAM,qBAQZ,OAPHm9I,EAAQ9nI,KACV6vE,EAAG7vE,GAAK8nI,EAAQ9nI,IAEd8nI,EAAQluG,OACVi2C,EAAGj2C,KAAOkuG,EAAQluG,MAEpBi2C,EAAGuxb,SAAWA,EACPvxb,EAET,SAASskc,EAAgB3gf,EAAarnB,EAAY27H,EAAU,CAAA,GAKnD,OAAAq5X,EAJM,CACXx2gB,KAAM,kBACN6oC,eAEmBrnB,EAAY27H,GAEnC,SAASssY,EAAW5gf,EAAarnB,EAAY27H,EAAU,CAAA,GAK9C,OAAAq5X,EAJM,CACXx2gB,KAAM,aACN6oC,eAEmBrnB,EAAY27H,GAEnC,SAASusY,EAAa7gf,EAAarnB,EAAY27H,EAAU,CAAA,GAKhD,OAAAq5X,EAJM,CACXx2gB,KAAM,eACN6oC,eAEmBrnB,EAAY27H,GAgB1B,SAAAwsY,EAAgBC,EAAUrmhB,EAAQ,cACnC,MAAA8hF,EAASgjc,EAAQ9khB,GACvB,IAAK8hF,EACG,MAAA,IAAInqF,MAAMqI,EAAQ,qBAE1B,OAAOqmhB,EAAWvkc,EAEX,SAAAwkc,EAAgB71e,EAAUzwC,EAAQ,cACnC,MAAA8hF,EAASgjc,EAAQ9khB,GACvB,IAAK8hF,EACG,MAAA,IAAInqF,MAAMqI,EAAQ,qBAE1B,OAAOywC,EAAWqxC,EAkBpB,SAASykc,EAAiBF,GAEjB,OADUA,GAAY,EAAIpthB,KAAKu0B,IACpB,IAAMv0B,KAAKu0B,GA0B/B,SAASqqV,EAAS9/W,GACT,OAACwB,MAAMxB,IAAgB,OAARA,IAAiBN,MAAMiF,QAAQ3E,GA6BvDiC,EAAQ4rhB,YAAcA,EACtB5rhB,EAAQwshB,iBAjER,SAA0Bv8e,GAExB,OADAA,GAAgB,KACJ,EACHA,EAAQ,IAAMA,EAAQ,IAAMA,EAC9BA,GAAe,IAAAA,EAAQ,IAAMA,GA8DtCjwC,EAAQyshB,iBAzER,SAA0BC,GACxB,IAAIz8e,EAAQy8e,EAAU,IAIf,OAHHz8e,EAAQ,IACDA,GAAA,KAEJA,GAqETjwC,EAAQ2shB,YA/CR,SAAqBzgf,EAAM0gf,EAAe,SAAUC,EAAY,cAC1D,KAAE3gf,GAAQ,GACN,MAAA,IAAIvuC,MAAM,kCAEZ,MAAAmvhB,EAAclB,EAAYgB,GAChC,IAAKE,EACG,MAAA,IAAInvhB,MAAM,0BAEZ,MAAAovhB,EAAcnB,EAAYiB,GAChC,IAAKE,EACG,MAAA,IAAIpvhB,MAAM,uBAElB,OAAOuuC,EAAO4gf,EAAcC,GAoC9B/shB,EAAQgthB,cAtDR,SAAuBjwhB,EAAQ6vhB,EAAe,aAAcC,EAAY,cAClE,KAAE9vhB,GAAU,GACR,MAAA,IAAIY,MAAM,oCAElB,OAAOyuhB,EAAgBE,EAAgBvvhB,EAAQ6vhB,GAAeC,IAmDhE7shB,EAAQithB,iBA3DR,SAA0B10V,GAEjB,OADUA,EAAW,IACVt5L,KAAKu0B,GAAK,KA0D9BxzB,EAAQ6qhB,YAAcA,EACtB7qhB,EAAQ8qhB,QAAUA,EAClB9qhB,EAAQi5gB,QAAUA,EAClBj5gB,EAAQgshB,kBAAoBA,EAC5BhshB,EAAQo3gB,SA7OR,SAAkB30gB,EAAM6oC,EAAa4hf,EAAW,CAAA,GAC9C,OAAQzqhB,GACN,IAAK,QACI,OAAAouB,EAAMya,GAAa8re,SAC5B,IAAK,aACI,OAAAmD,EAAWjve,GAAa8re,SACjC,IAAK,UACI,OAAA/re,EAAQC,GAAa8re,SAC9B,IAAK,aACI,OAAA8U,EAAW5gf,GAAa8re,SACjC,IAAK,kBACI,OAAA6U,EAAgB3gf,GAAa8re,SACtC,IAAK,eACI,OAAA+U,EAAa7gf,GAAa8re,SACnC,QACQ,MAAA,IAAIz5gB,MAAM8E,EAAO,iBA+N7BzC,EAAQmthB,mBAjHR,SAA4BlW,EAAYhzf,EAAY27H,EAAU,CAAA,GAKrD,OAAAq5X,EAJM,CACXx2gB,KAAM,qBACNw0gB,cAEmBhzf,EAAY27H,IA6GnC5/I,EAAQ69W,SAAWA,EACnB79W,EAAQw8W,SAxCR,SAAkBrsW,GACT,OAAU,OAAVA,GAAmC,iBAAVA,IAAuB1S,MAAMiF,QAAQyN,IAwCvEnQ,EAAQothB,gBAxFC,SAAgB32e,EAAUzwC,GACjC,OAAOumhB,EAAiBD,EAAgB71e,EAAUzwC,KAwFpDhG,EAAQsshB,gBAAkBA,EAC1BtshB,EAAQu6gB,WAAaA,EACrBv6gB,EAAQqthB,YA/JR,SAAqB/hf,EAAarnB,EAAY27H,EAAU,CAAA,GAC/C,OAAAosY,EACL1gf,EAAY5nB,KAAK+3N,GACR8+R,EAAW9+R,EAAQx3N,KAE5B27H,IA2JJ5/I,EAAQishB,gBAAkBA,EAC1BjshB,EAAQkshB,WAAaA,EACrBlshB,EAAQmshB,aAAeA,EACvBnshB,EAAQ6wB,MAAQA,EAChB7wB,EAAQuqC,OApNR,SAAgBe,EAAarnB,EAAY27H,EAAU,CAAA,GAC1C,OAAAosY,EACL1gf,EAAY5nB,KAAK+3N,GACR5qN,EAAM4qN,EAAQx3N,KAEvB27H,IAgNJ5/I,EAAQqrC,QAAUA,EAClBrrC,EAAQizC,SAxLR,SAAkB3H,EAAarnB,EAAY27H,EAAU,CAAA,GAC5C,OAAAosY,EACL1gf,EAAY5nB,KAAK+3N,GACRpwM,EAAQowM,EAAQx3N,KAEzB27H,IAoLJ5/I,EAAQushB,iBAAmBA,EAC3BvshB,EAAQoshB,gBAAkBA,EAC1BpshB,EAAQm6B,MA1HC,SAAMp8B,EAAKwsE,EAAY,GAC1B,GAAAA,KAAeA,GAAa,GACxB,MAAA,IAAI5sE,MAAM,uCAElB,MAAM2vhB,EAAaruhB,KAAKC,IAAI,GAAIqrE,GAAa,GAC7C,OAAOtrE,KAAKk7B,MAAMp8B,EAAMuvhB,GAAcA,GAsHxCtthB,EAAQuthB,aApDR,SAAsB77e,GACpB,IAAKA,EACG,MAAA,IAAI/zC,MAAM,oBAElB,IAAKF,MAAMiF,QAAQgvC,GACX,MAAA,IAAI/zC,MAAM,yBAElB,GAAoB,IAAhB+zC,EAAK30C,QAAgC,IAAhB20C,EAAK30C,OACtB,MAAA,IAAIY,MAAM,2CAEb+zC,EAAAv7B,SAASpY,IACR,IAAC8/W,EAAS9/W,GACN,MAAA,IAAIJ,MAAM,sCAyCtBqC,EAAQwthB,WArCR,SAAoB11gB,GAClB,IAAKA,EACG,MAAA,IAAIna,MAAM,kBAEd,IAAgD,IAAhD,CAAC,SAAU,UAAUC,eAAeka,GAChC,MAAA,IAAIna,MAAM,uCAqCpB8vhB,GAAerygB,EAAW,CAC5B,6CAA6Cpb,GAE3CS,OAAOiH,eAAe1H,EAAS,aAAc,CAAEb,OAAO,IACtD,IAAIuuhB,EAAW9C,KACN,SAAA+C,EAAUpyS,EAAShlO,EAAUq3gB,GACpC,GAAgB,OAAZryS,EAGJ,IADI,IAAAv2O,EAAGugB,EAAG6B,EAAGgwf,EAAUyW,EAAOpyS,EAAQqyS,EAAyDC,EAAhCC,EAAa,EAAGC,EAAa,EAAyBxrhB,EAAO84O,EAAQ94O,KAAMyrhB,EAA+B,sBAATzrhB,EAA8B0rhB,EAAqB,YAAT1rhB,EAAoB4iB,EAAO6ogB,EAAsB3yS,EAAQ29R,SAASn8gB,OAAS,EAC5QqxhB,EAAe,EAAGA,EAAe/ogB,EAAM+ogB,IAAgB,CAGtDP,GADeE,KADGD,EAAAI,EAAsB3yS,EAAQ29R,SAASkV,GAAchX,SAAW+W,EAAY5yS,EAAQ67R,SAAW77R,IACvC,uBAAjCuyS,EAAwBrrhB,MAC1CqrhB,EAAwB7W,WAAWl6gB,OAAS,EAC3E,IAAA,IAASsxhB,EAAY,EAAGA,EAAYR,EAAOQ,IAAa,CACtD,IAAIC,EAAoB,EACpBC,EAAgB,EAEpB,GAAiB,QADjBnX,EAAW2W,EAAuBD,EAAwB7W,WAAWoX,GAAaP,GAClF,CAEAryS,EAAS27R,EAAS9re,YAClB,IAAIkjf,EAAWpX,EAAS30gB,KAExB,OADAurhB,GAAaJ,GAAkC,YAAbY,GAAuC,iBAAbA,EAAmC,EAAJ,EACnFA,GACN,KAAK,KACH,MACF,IAAK,QACC,IAME,IANFj4gB,EACFklO,EACAwyS,EACAG,EACAE,EACAC,GAEO,OAAA,EACTN,IACAK,IACA,MACF,IAAK,aACL,IAAK,aACH,IAAKtphB,EAAI,EAAGA,EAAIy2O,EAAO1+O,OAAQiI,IAAK,CAC9B,IAME,IANFuR,EACFklO,EAAOz2O,GACPiphB,EACAG,EACAE,EACAC,GAEO,OAAA,EACTN,IACiB,eAAbO,GACFF,IAEa,eAAbE,GACFF,IACF,MACF,IAAK,UACL,IAAK,kBACH,IAAKtphB,EAAI,EAAGA,EAAIy2O,EAAO1+O,OAAQiI,IAAK,CAC7B,IAAAugB,EAAI,EAAGA,EAAIk2N,EAAOz2O,GAAGjI,OAASixhB,EAAYzogB,IAAK,CAC9C,IAME,IANFhP,EACFklO,EAAOz2O,GAAGugB,GACV0ogB,EACAG,EACAE,EACAC,GAEO,OAAA,EACTN,IAEe,oBAAbO,GACFF,IACe,YAAbE,GACFD,IAEa,YAAbC,GACFF,IACF,MACF,IAAK,eACH,IAAKtphB,EAAI,EAAGA,EAAIy2O,EAAO1+O,OAAQiI,IAAK,CAElC,IADgBuphB,EAAA,EACXhpgB,EAAI,EAAGA,EAAIk2N,EAAOz2O,GAAGjI,OAAQwoB,IAAK,CAChC,IAAA6B,EAAI,EAAGA,EAAIq0N,EAAOz2O,GAAGugB,GAAGxoB,OAASixhB,EAAY5mgB,IAAK,CACjD,IAME,IANF7Q,EACFklO,EAAOz2O,GAAGugB,GAAG6B,GACb6mgB,EACAG,EACAE,EACAC,GAEO,OAAA,EACTN,IAEFM,IAEFD,IAEF,MACF,IAAK,qBACH,IAAKtphB,EAAI,EAAGA,EAAIoygB,EAASH,WAAWl6gB,OAAQiI,IAC1C,IAAsE,IAAlE2ohB,EAAUvW,EAASH,WAAWjygB,GAAIuR,EAAUq3gB,GACvC,OAAA,EACX,MACF,QACQ,MAAA,IAAIjwhB,MAAM,yBArFlB,IA+GC,SAAA8whB,EAASlzS,EAAShlO,GACrB,IAAAja,EACJ,OAAQi/O,EAAQ94O,MACd,IAAK,oBACH,IAAKnG,EAAI,EAAGA,EAAIi/O,EAAQ29R,SAASn8gB,SACqB,IAAhDwZ,EAASglO,EAAQ29R,SAAS58gB,GAAG2nB,WAAY3nB,GADNA,KAIzC,MACF,IAAK,UACMia,EAAAglO,EAAQt3N,WAAY,IAc1B,SAAAyqgB,EAAYnzS,EAAShlO,GACxB,GAAiB,YAAjBglO,EAAQ94O,KACV8T,EAASglO,EAAS,QAAC,GACO,sBAAjBA,EAAQ94O,KACjB,IAAA,IAASnG,EAAI,EAAGA,EAAIi/O,EAAQ29R,SAASn8gB,SACM,IAArCwZ,EAASglO,EAAQ29R,SAAS58gB,GAAIA,GADSA,MAuBxC,SAAAqyhB,EAASpzS,EAAShlO,GACrB,IAAAja,EAAG0I,EAAGmxB,EAAGihf,EAAUyW,EAAOC,EAAyBC,EAAsBa,EAAmBC,EAAaC,EAAWV,EAAe,EAAGF,EAAuC,sBAAjB3yS,EAAQ94O,KAA8B0rhB,EAA6B,YAAjB5yS,EAAQ94O,KAAoB4iB,EAAO6ogB,EAAsB3yS,EAAQ29R,SAASn8gB,OAAS,EACrS,IAAKT,EAAI,EAAGA,EAAI+oB,EAAM/oB,IAAK,CAOzB,IAN0BwxhB,EAAAI,EAAsB3yS,EAAQ29R,SAAS58gB,GAAG86gB,SAAW+W,EAAY5yS,EAAQ67R,SAAW77R,EAC1FqzS,EAAAV,EAAsB3yS,EAAQ29R,SAAS58gB,GAAG2nB,WAAakqgB,EAAY5yS,EAAQt3N,WAAa,CAAC,EAC/F4qgB,EAAAX,EAAsB3yS,EAAQ29R,SAAS58gB,GAAGo1C,KAAOy8e,EAAY5yS,EAAQ7pM,UAAO,EAC9Eo9e,EAAAZ,EAAsB3yS,EAAQ29R,SAAS58gB,GAAGwb,GAAKq2gB,EAAY5yS,EAAQzjO,QAAK,EAE5E+1gB,GADeE,IAAAD,GAA2D,uBAAjCA,EAAwBrrhB,MAC1CqrhB,EAAwB7W,WAAWl6gB,OAAS,EACtEo5B,EAAI,EAAGA,EAAI03f,EAAO13f,IAErB,GAAiB,QADjBihf,EAAW2W,EAAuBD,EAAwB7W,WAAW9gf,GAAK23f,GAY1E,OAAQ1W,EAAS30gB,MACf,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACC,IAME,IANF8T,EACF6ggB,EACAgX,EACAQ,EACAC,EACAC,GAEO,OAAA,EACT,MAEF,IAAK,qBACH,IAAK9phB,EAAI,EAAGA,EAAIoygB,EAASH,WAAWl6gB,OAAQiI,IACtC,IAME,IANFuR,EACF6ggB,EAASH,WAAWjygB,GACpBophB,EACAQ,EACAC,EACAC,GAEO,OAAA,EAEX,MAEF,QACQ,MAAA,IAAInxhB,MAAM,8BAzCd,IAME,IANF4Y,EACF,KACA63gB,EACAQ,EACAC,EACAC,GAEO,OAAA,EAqCbV,KAuBK,SAAAW,EAAYxzS,EAAShlO,GAC5Bo4gB,EAASpzS,GAAS,SAAS67R,EAAUgX,EAAcnqgB,EAAYytB,EAAM55B,GACnE,IAcI02gB,EAdA/rhB,EAAoB,OAAb20gB,EAAoB,KAAOA,EAAS30gB,KAC/C,OAAQA,GACN,KAAK,KACL,IAAK,QACL,IAAK,aACL,IAAK,UACC,OAIE,IAJF8T,EACFm3gB,EAASzU,QAAQ30gB,UAAK,EAAQ8ygB,EAAUnzf,EAAY,CAAEytB,OAAM55B,OAC5Ds2gB,EACA,SAGF,EAGJ,OAAQ3rhB,GACN,IAAK,aACQ+rhB,EAAA,QACX,MACF,IAAK,kBACQA,EAAA,aACX,MACF,IAAK,eACQA,EAAA,UAGf,IAAA,IAASF,EAAoB,EAAGA,EAAoBlX,EAAS9re,YAAYvuC,OAAQuxhB,IAAqB,CAChG,IACA1jf,EAAO,CACTnoC,KAAM+rhB,EACNljf,YAHe8re,EAAS9re,YAAYgjf,IAKlC,IAA+F,IAA/F/3gB,EAASm3gB,EAASzU,QAAQ30gB,UAAK,EAAQsmC,EAAM3mB,GAAamqgB,EAAcE,GACnE,OAAA,EACX,IAqBK,SAAAU,EAAYzzS,EAAShlO,GAC5Bw4gB,EAAYxzS,GAAS,SAAS0zS,EAAUb,EAAcE,GACpD,IAAIY,EAAe,EACnB,GAAKD,EAAS7X,SAAd,CAEI,IAAA30gB,EAAOwshB,EAAS7X,SAAS30gB,KACzB,GAAS,UAATA,GAA6B,eAATA,EAApB,CAEA,IAAA0shB,EACAC,EAAuB,EACvBC,EAAqB,EACrBC,EAAgB,EAChB,OA2BE,IA3BF3B,EACFsB,GACA,SAASM,EAActB,EAAYuB,EAAmBC,EAAqBlB,GACzE,QAAuB,IAAnBY,GAA6Bf,EAAegB,GAAwBK,EAAsBJ,GAAsBd,EAAgBe,EAMlI,OALiBH,EAAAI,EACMH,EAAAhB,EACFiB,EAAAI,EACLH,EAAAf,OACDW,EAAA,GAGb,IAAAQ,EAAiBhC,EAASnT,WAAWj2gB,UACvC,EACA,CAAC6qhB,EAAgBI,GACjBN,EAAShrgB,YAEP,IAME,IANF1N,EACFm5gB,EACAtB,EACAE,EACAC,EACAW,GAEO,OAAA,EACTA,IACiBC,EAAAI,WAzBjB,CALF,CAHA,CAoCO,IAyBJ,SAAAI,EAASp0S,EAAShlO,GACzB,IAAKglO,EACG,MAAA,IAAI59O,MAAM,uBAClBoxhB,EAAYxzS,GAAS,SAAS0zS,EAAUb,EAAcE,GACpD,GAA0B,OAAtBW,EAAS7X,SAAb,CAEI,IAAA30gB,EAAOwshB,EAAS7X,SAAS30gB,KACzBg5O,EAASwzS,EAAS7X,SAAS9re,YAC/B,OAAQ7oC,GACN,IAAK,aACH,IAAkE,IAA9D8T,EAAS04gB,EAAUb,EAAcE,EAAmB,EAAG,GAClD,OAAA,EACT,MACF,IAAK,UACH,IAAA,IAASC,EAAgB,EAAGA,EAAgB9yS,EAAO1+O,OAAQwxhB,IACrD,IAKE,IALFh4gB,EACFm3gB,EAASnT,WAAWj2gB,UAAK,EAAQm3O,EAAO8yS,GAAgBU,EAAShrgB,YACjEmqgB,EACAE,EACAC,GAEO,OAAA,EAhBb,CAmBF,IAiMJvuhB,EAAQ4vhB,SAzaR,SAAkBr0S,GAChB,IAAIE,EAAS,GAIN,OAHGkyS,EAAApyS,GAAS,SAASxmI,GAC1B0mI,EAAOr+O,KAAK23G,EAAK,IAEZ0mI,GAqaTz7O,EAAQ2thB,UAAYA,EACpB3thB,EAAQ6vhB,YA5eR,SAAqBt0S,EAAShlO,EAAUu5gB,EAAclC,GACpD,IAAImC,EAAgBD,EAkBb,OAjBPnC,EACEpyS,GACA,SAASg0S,EAActB,EAAYG,EAAcE,EAAmBC,GAEhDwB,EADC,IAAf9B,QAAqC,IAAjB6B,EACNP,EAEAh5gB,EACdw5gB,EACAR,EACAtB,EACAG,EACAE,EACAC,EAEN,GACAX,GAEKmC,GA0dT/vhB,EAAQ0uhB,YAAcA,EACtB1uhB,EAAQgwhB,cAvbC,SAAcz0S,EAAShlO,EAAUu5gB,GACxC,IAAIC,EAAgBD,EAOb,OANKpB,EAAAnzS,GAAS,SAAS00S,EAAgB7B,GAE1B2B,EADG,IAAjB3B,QAAuC,IAAjB0B,EACRG,EAEA15gB,EAASw5gB,EAAeE,EAAgB7B,EAAY,IAEjE2B,GAgbT/vhB,EAAQkwhB,UAhFC,SAAU30S,EAAS37F,GAE1B,GADAA,EAAUA,GAAW,CAAC,GACjB8tY,EAASlxK,SAASl4W,UAAK,EAAQs7I,GAC5B,MAAA,IAAIjiJ,MAAM,sBACd,IAKAy5gB,EALAgX,EAAexuY,EAAQwuY,cAAgB,EACvCE,EAAoB1uY,EAAQ0uY,mBAAqB,EACjDC,EAAgB3uY,EAAQ2uY,eAAiB,EACzCN,EAAaruY,EAAQquY,YAAc,EACnChqgB,EAAa27H,EAAQ37H,WAEzB,OAAQs3N,EAAQ94O,MACd,IAAK,oBACC2rhB,EAAe,IACFA,EAAA7yS,EAAQ29R,SAASn8gB,OAASqxhB,GAC3CnqgB,EAAaA,GAAcs3N,EAAQ29R,SAASkV,GAAcnqgB,WAC/Cmzf,EAAA77R,EAAQ29R,SAASkV,GAAchX,SAC1C,MACF,IAAK,UACHnzf,EAAaA,GAAcs3N,EAAQt3N,WACnCmzf,EAAW77R,EAAQ67R,SACnB,MACF,IAAK,QACL,IAAK,aACI,OAAA,KACT,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACQA,EAAA77R,EACX,MACF,QACQ,MAAA,IAAI59O,MAAM,sBAEpB,GAAiB,OAAby5gB,EACK,OAAA,KACT,IAAI37R,EAAS27R,EAAS9re,YACtB,OAAQ8re,EAAS30gB,MACf,IAAK,QACH,OAAOirhB,EAAS78f,MAAMvsB,UAAK,EAAQm3O,EAAQx3N,EAAY27H,GACzD,IAAK,aAGI,OAFH0uY,EAAoB,IACtBA,EAAoB7yS,EAAO1+O,OAASuxhB,GAC/BZ,EAAS78f,MAAMvsB,UAAK,EAAQm3O,EAAO6yS,GAAoBrqgB,EAAY27H,GAC5E,IAAK,aAGI,OAFHquY,EAAa,IACfA,EAAaxyS,EAAO1+O,OAASkxhB,GACxBP,EAAS78f,MAAMvsB,UAAK,EAAQm3O,EAAOwyS,GAAahqgB,EAAY27H,GACrE,IAAK,UAKI,OAJH2uY,EAAgB,IAClBA,EAAgB9yS,EAAO1+O,OAASwxhB,GAC9BN,EAAa,IACFA,EAAAxyS,EAAO8yS,GAAexxhB,OAASkxhB,GACvCP,EAAS78f,MAAMvsB,UAAK,EAAQm3O,EAAO8yS,GAAeN,GAAahqgB,EAAY27H,GACpF,IAAK,kBAKI,OAJH0uY,EAAoB,IACtBA,EAAoB7yS,EAAO1+O,OAASuxhB,GAClCL,EAAa,IACFA,EAAAxyS,EAAO6yS,GAAmBvxhB,OAASkxhB,GAC3CP,EAAS78f,MAAMvsB,UAAK,EAAQm3O,EAAO6yS,GAAmBL,GAAahqgB,EAAY27H,GACxF,IAAK,eAOH,OANI0uY,EAAoB,IACtBA,EAAoB7yS,EAAO1+O,OAASuxhB,GAClCC,EAAgB,IACFA,EAAA9yS,EAAO6yS,GAAmBvxhB,OAASwxhB,GACjDN,EAAa,IACfA,EAAaxyS,EAAO6yS,GAAmBC,GAAexxhB,OAASkxhB,GAC1DP,EAAS78f,MAAMvsB,UACpB,EACAm3O,EAAO6yS,GAAmBC,GAAeN,GACzChqgB,EACA27H,GAGA,MAAA,IAAIjiJ,MAAM,uBAQlBqC,EAAQmwhB,YAjLC,SAAY50S,EAAS37F,GAE5B,GADAA,EAAUA,GAAW,CAAC,GACjB8tY,EAASlxK,SAASl4W,UAAK,EAAQs7I,GAC5B,MAAA,IAAIjiJ,MAAM,sBACd,IAKAy5gB,EALAgX,EAAexuY,EAAQwuY,cAAgB,EACvCE,EAAoB1uY,EAAQ0uY,mBAAqB,EACjDC,EAAgB3uY,EAAQ2uY,eAAiB,EACzCW,EAAetvY,EAAQsvY,cAAgB,EACvCjrgB,EAAa27H,EAAQ37H,WAEzB,OAAQs3N,EAAQ94O,MACd,IAAK,oBACC2rhB,EAAe,IACFA,EAAA7yS,EAAQ29R,SAASn8gB,OAASqxhB,GAC3CnqgB,EAAaA,GAAcs3N,EAAQ29R,SAASkV,GAAcnqgB,WAC/Cmzf,EAAA77R,EAAQ29R,SAASkV,GAAchX,SAC1C,MACF,IAAK,UACHnzf,EAAaA,GAAcs3N,EAAQt3N,WACnCmzf,EAAW77R,EAAQ67R,SACnB,MACF,IAAK,QACL,IAAK,aACI,OAAA,KACT,IAAK,aACL,IAAK,UACL,IAAK,kBACL,IAAK,eACQA,EAAA77R,EACX,MACF,QACQ,MAAA,IAAI59O,MAAM,sBAEpB,GAAiB,OAAby5gB,EACK,OAAA,KACT,IAAI37R,EAAS27R,EAAS9re,YACtB,OAAQ8re,EAAS30gB,MACf,IAAK,QACL,IAAK,aACI,OAAA,KACT,IAAK,aAGH,OAFIyshB,EAAe,IACFA,EAAAzzS,EAAO1+O,OAASmyhB,EAAe,GACzCxB,EAASnT,WAAWj2gB,UACzB,EACA,CAACm3O,EAAOyzS,GAAezzS,EAAOyzS,EAAe,IAC7CjrgB,EACA27H,GAEJ,IAAK,UAKH,OAJI2uY,EAAgB,IAClBA,EAAgB9yS,EAAO1+O,OAASwxhB,GAC9BW,EAAe,IACjBA,EAAezzS,EAAO8yS,GAAexxhB,OAASmyhB,EAAe,GACxDxB,EAASnT,WAAWj2gB,UACzB,EACA,CACEm3O,EAAO8yS,GAAeW,GACtBzzS,EAAO8yS,GAAeW,EAAe,IAEvCjrgB,EACA27H,GAEJ,IAAK,kBAKH,OAJI0uY,EAAoB,IACtBA,EAAoB7yS,EAAO1+O,OAASuxhB,GAClCY,EAAe,IACjBA,EAAezzS,EAAO6yS,GAAmBvxhB,OAASmyhB,EAAe,GAC5DxB,EAASnT,WAAWj2gB,UACzB,EACA,CACEm3O,EAAO6yS,GAAmBY,GAC1BzzS,EAAO6yS,GAAmBY,EAAe,IAE3CjrgB,EACA27H,GAEJ,IAAK,eAOH,OANI0uY,EAAoB,IACtBA,EAAoB7yS,EAAO1+O,OAASuxhB,GAClCC,EAAgB,IACFA,EAAA9yS,EAAO6yS,GAAmBvxhB,OAASwxhB,GACjDW,EAAe,IACjBA,EAAezzS,EAAO6yS,GAAmBC,GAAexxhB,OAASmyhB,EAAe,GAC3ExB,EAASnT,WAAWj2gB,UACzB,EACA,CACEm3O,EAAO6yS,GAAmBC,GAAeW,GACzCzzS,EAAO6yS,GAAmBC,GAAeW,EAAe,IAE1DjrgB,EACA27H,GAGA,MAAA,IAAIjiJ,MAAM,uBAoFlBqC,EAAQ+uhB,YAAcA,EACtB/uhB,EAAQowhB,cApTC,SAAc70S,EAAShlO,EAAUu5gB,GACxC,IAAIC,EAAgBD,EAeb,OAdPf,EACExzS,GACA,SAAS00S,EAAgB7B,EAAcE,GAEnByB,EADG,IAAjB3B,GAA4C,IAAtBE,QAA4C,IAAjBwB,EACnCG,EAEA15gB,EACdw5gB,EACAE,EACA7B,EACAE,MAIDyB,GAqST/vhB,EAAQ2uhB,SAAWA,EACnB3uhB,EAAQqwhB,WAjXC,SAAW90S,EAAShlO,EAAUu5gB,GACrC,IAAIC,EAAgBD,EAiBb,OAhBPnB,EACEpzS,GACA,SAAS+0S,EAAiBlC,EAAcQ,EAAmBC,EAAaC,GAEpDiB,EADG,IAAjB3B,QAAuC,IAAjB0B,EACRQ,EAEA/5gB,EACdw5gB,EACAO,EACAlC,EACAQ,EACAC,EACAC,MAIDiB,GAgWT/vhB,EAAQ2vhB,SAAWA,EACnB3vhB,EAAQuwhB,WA1MC,SAAWh1S,EAAShlO,EAAUu5gB,GACrC,IAAIC,EAAgBD,EAgBb,OAfPH,EACEp0S,GACA,SAASrgG,EAAakzY,EAAcE,EAAmBC,GAEnCwB,EADG,IAAjB3B,QAAuC,IAAjB0B,EACR50Y,EAEA3kI,EACdw5gB,EACA70Y,EACAkzY,EACAE,EACAC,MAIDwB,GA0LT/vhB,EAAQyuhB,SAAWA,EACnBzuhB,EAAQwwhB,WArdC,SAAWj1S,EAAShlO,EAAUu5gB,GACrC,IAAIC,EAAgBD,EAOb,OANErB,EAAAlzS,GAAS,SAASk1S,EAAmBrC,GAE1B2B,EADG,IAAjB3B,QAAuC,IAAjB0B,EACRW,EAEAl6gB,EAASw5gB,EAAeU,EAAmBrC,EAAY,IAEpE2B,GA8cT/vhB,EAAQgvhB,YAAcA,EACtBhvhB,EAAQ0whB,cA/PC,SAAcn1S,EAAShlO,EAAUu5gB,GACxC,IAAIC,EAAgBD,EAChB73f,GAAU,EAkBP,OAjBP+2f,EACEzzS,GACA,SAASm0S,EAAgBtB,EAAcE,EAAmBC,EAAeW,GAErDa,GADF,IAAZ93f,QAAsC,IAAjB63f,EACPJ,EAEAn5gB,EACdw5gB,EACAL,EACAtB,EACAE,EACAC,EACAW,GAEMj3f,GAAA,KAGP83f,MAgPTY,GAAev1gB,EAAW,CAC5B,6CAA6Cpb,GAE3CS,OAAOiH,eAAe1H,EAAS,aAAc,CAAEb,OAAO,IACtD,IAAIuuhB,EAAW9C,KACX9pZ,EAAQ2sZ,KACZ,SAASvhf,EAAKqvM,GACZ,OAAOz6G,EAAMuvZ,WAAW/rhB,UACtB,EACAi3O,GACA,CAACp8O,EAAOyrC,IACCzrC,EAKb,SAAuByrC,GACrB,IACItuC,EADAu4G,EAAQ,EAEZ,OAAQjqE,EAAKnoC,MACX,IAAK,UACI,OAAAyzb,EAAYtrZ,EAAKU,aAC1B,IAAK,eACH,IAAKhvC,EAAI,EAAGA,EAAIsuC,EAAKU,YAAYvuC,OAAQT,IACvCu4G,GAASqhV,EAAYtrZ,EAAKU,YAAYhvC,IAEjC,OAAAu4G,EACT,IAAK,QACL,IAAK,aACL,IAAK,aACL,IAAK,kBACI,OAAA,EAEJ,OAAA,EAtBY+7a,CAAchmf,IAE/B,GAsBJ,SAASsrZ,EAAYz6M,GACnB,IAAI5mI,EAAQ,EACR,GAAA4mI,GAAUA,EAAO1+O,OAAS,EAAG,CAC/B83G,GAAS51G,KAAKK,IAAIuxhB,EAASp1S,EAAO,KAClC,IAAA,IAASn/O,EAAI,EAAGA,EAAIm/O,EAAO1+O,OAAQT,IACjCu4G,GAAS51G,KAAKK,IAAIuxhB,EAASp1S,EAAOn/O,KAG/B,OAAAu4G,EAET,IAAIi8a,EAASpD,EAAS7C,YAAc6C,EAAS7C,YAAc,EACvDkG,EAAc9xhB,KAAKu0B,GAAK,IAC5B,SAASq9f,EAASp1S,GACV,MAAAu1S,EAAev1S,EAAO1+O,OAAS,EACrC,GAAIi0hB,GAAgB,EACX,OAAA,EACT,IAAIn8a,EAAQ,EACRv4G,EAAI,EACR,KAAOA,EAAI00hB,GAAc,CACjB,MAAA9lf,EAAQuwM,EAAOn/O,GACfu6I,EAAS4kG,EAAOn/O,EAAI,IAAM00hB,EAAe,EAAI10hB,EAAI,GACjD2uC,EAAQwwM,EAAOn/O,EAAI,GAAK00hB,GAAgB10hB,EAAI,GAAK00hB,EAAe10hB,EAAI,GACpE20hB,EAAS/lf,EAAM,GAAK6lf,EACpBG,EAAUr6Y,EAAO,GAAKk6Y,EAE5Bl8a,IADe5pE,EAAM,GAAK8lf,EACPE,GAAUhyhB,KAAK+7B,IAAIk2f,GACtC50hB,IAEF,OAAOu4G,EAAQi8a,EAEjB,IAAIK,EAAoBjlf,EACxBlsC,EAAQksC,KAAOA,EACflsC,EAAQgZ,QAAUm4gB,KAKlBC,GAAeh2gB,EAAW,CAC5B,iDAAiDpb,GAE/CS,OAAOiH,eAAe1H,EAAS,aAAc,CAAEb,OAAO,IACtD,IAAIuuhB,EAAW9C,KACX9pZ,EAAQ2sZ,KACZ,SAASthf,EAASovM,EAAS37F,EAAU,IACnC,IAAIyxY,EAAO,EACPC,EAAO,EACP30hB,EAAM,EAWH,OAVPmkI,EAAM6sZ,UAAUrphB,UACd,EACAi3O,GACA,SAASxmI,GACPs8a,GAAQt8a,EAAM,GACdu8a,GAAQv8a,EAAM,GACdp4G,GACF,IACA,GAEK+whB,EAAS78f,MAAMvsB,UAAK,EAAQ,CAAC+shB,EAAO10hB,EAAK20hB,EAAO30hB,GAAMijJ,EAAQ37H,YAEvE,IAAIstgB,EAAwBplf,EAC5BnsC,EAAQmsC,SAAWA,EACnBnsC,EAAQgZ,QAAUu4gB,KAKlBC,GAAep2gB,EAAW,CAC5B,6CAA6Cpb,GAE3CS,OAAOiH,eAAe1H,EAAS,aAAc,CAAEb,OAAO,IACtD,IAAI2hI,EAAQ2sZ,KACZ,SAAS/7e,EAAK6pM,EAAS37F,EAAU,IAC/B,GAAoB,MAAhB27F,EAAQ7pM,OAAgB,IAASkuG,EAAQ6xY,UAC3C,OAAOl2S,EAAQ7pM,KAEjB,MAAMp/B,EAAS,CAACtT,IAAUA,KAAU,KAAW,KAexC,OAdP8hI,EAAM6sZ,UAAUrphB,UAAK,EAAQi3O,GAAUxmI,IACjCziG,EAAO,GAAKyiG,EAAM,KACbziG,EAAA,GAAKyiG,EAAM,IAEhBziG,EAAO,GAAKyiG,EAAM,KACbziG,EAAA,GAAKyiG,EAAM,IAEhBziG,EAAO,GAAKyiG,EAAM,KACbziG,EAAA,GAAKyiG,EAAM,IAEhBziG,EAAO,GAAKyiG,EAAM,KACbziG,EAAA,GAAKyiG,EAAM,OAGfziG,EAET,IAAIo/gB,EAAoBhgf,EACxB1xC,EAAQ0xC,KAAOA,EACf1xC,EAAQgZ,QAAU04gB,KAKlBC,GAA6Bv2gB,EAAW,CAC1C,gCAAgCpb,EAASic,GAEvC,IAAIiD,EAAKD,IACL2ygB,EAAehX,MACb1ue,KAAM2lf,GAAalB,MACnBxkf,SAAU2lf,GAAiBV,MAC3B1/e,KAAMqgf,GAAaP,KACrBple,EAAYohD,KACZ3b,EAAUF,IACVviB,EAAgBL,IAChBkG,EAAiBnC,IACjBznC,EAAUyyM,KACVk0S,EAAavxhB,OAAOgjB,KAAKmugB,GACzBK,EAAyB,CAC3B,QAAS7le,EACT,aAAcA,EACd,gBAEF,SAA2B8le,GACzB,IAAA,IAAS51hB,EAAI,EAAGA,EAAI01hB,EAAWj1hB,OAAQT,IAAK,CACtC,IAAA61hB,EAAOH,EAAW11hB,GAElB,GADQ,IAAIuuB,OAAO+mgB,EAAaO,IAC1B9mgB,KAAK6mgB,EAAYjphB,OAAO1F,eAAuB,OAAA4uhB,EAGpD,OADCtgc,EAAApyF,IAAI,8BAAgCyyhB,EAAc,MACnD,IAsGT,SAASE,EAAgBvpb,GACvB,IAAI1yE,EAAI0yE,EAAM0yI,QACV82S,EAAmBz8gB,OAAOywF,iBAAmB,CAAC,EAC9Cisb,EAAyB,iBAANn8f,EAAiBk8f,EAAiBl8f,GAAKA,EAC1D,OAACi5C,EAAckjd,GAIZA,GAHGzgc,EAAApqF,MAAM,+CAAiD0uB,IACxD,GAiJXla,EAAOjc,QAAU,CACfuyhB,kBA5PO,SAAkB9hB,EAAch6e,EAAWyif,GAClD,IAAKzif,GAAkC,iBAAdA,EAA+B,OAAA,EACxD,IACI+7f,EACA5zgB,EAAGtiB,EAFHm2hB,EAAaR,EAAuBxhB,GAAch6e,GAGtD,GAAIg8f,EAAY,CACd,GAAqB,eAAjBhiB,EAEF,IADA+hB,EAAmB,GACdl2hB,EAAI,EAAGA,EAAI48gB,EAASn8gB,OAAQT,KAC/BsiB,EAAIs6f,EAAS58gB,IACP2nB,YAAcrF,EAAEqF,WAAWyugB,IAA0B,QAApB9zgB,EAAEqF,WAAWyugB,IAClDF,EAAiBp1hB,KAAKwhB,QAIP4zgB,EAAAtZ,EAErB,IAAK58gB,EAAI,EAAGA,EAAIk2hB,EAAiBz1hB,OAAQT,IAEnC,IADJsiB,EAAI4zgB,EAAiBl2hB,IACfwb,KAAO26gB,EAAmB,OAAA7zgB,EAElCizE,EAAQpyF,IAAI,CACV,mBACAgzhB,EACA,iEACAl1hB,KAAK,MAEF,OAAA,GAkOPo1hB,iBAhOF,SAA0B1Z,GACxB,IAII2Z,EAAe5thB,EAAGugB,EAAG/mB,EAJrB44gB,EAAW6B,EAAQ7B,SACnB37R,EAAS27R,EAAS9re,YAClBmkT,EAAMwpL,EAAQnhgB,GACdm7B,EAAW,GAEf,SAAS4/e,EAAqBz4a,GAC5B,IAAA,IAAShzF,EAAI,EAAGA,EAAIgzF,EAAIr9G,OAAS,EAAGqqB,IAClC,GAAIgzF,EAAIhzF,GAAG,GAAK,GAAKgzF,EAAIhzF,EAAI,GAAG,GAAK,EAAU,OAAAA,EAE1C,OAAA,KA6CT,OA1CEwrgB,EADU,QAARnjM,GAAyB,QAARA,EACH,SAASqjM,GACnB,IAAA14a,EACA,GAA+B,OAA/By4a,EAAqBC,GACjB14a,EAAA04a,OAGN,IADM14a,EAAA,IAAI38G,MAAMq1hB,EAAK/1hB,QAChByB,EAAI,EAAGA,EAAIs0hB,EAAK/1hB,OAAQyB,IAC3B47G,EAAI57G,GAAK,CACPs0hB,EAAKt0hB,GAAG,GAAK,EAAIs0hB,EAAKt0hB,GAAG,GAAK,IAAMs0hB,EAAKt0hB,GAAG,GAC5Cs0hB,EAAKt0hB,GAAG,IAIdy0C,EAAS71C,KAAKiuC,EAAQk6H,OAAOnrD,GAC/B,EACiB,QAARq1O,EACO,SAASr1O,GACnB,IAAA24a,EAAyBF,EAAqBz4a,GAClD,GAA+B,OAA3B24a,EACF,OAAO9/e,EAAS71C,KAAKiuC,EAAQk6H,OAAOnrD,IAEtC,IAAIm9Z,EAAS,IAAI95gB,MAAM28G,EAAIr9G,OAAS,GAChCupF,EAAK,EACT,IAAK9nF,EAAI,EAAGA,EAAI47G,EAAIr9G,OAAQyB,IACtBA,EAAIu0hB,EACNxb,EAAOjxb,KAAQ,CAAC8zB,EAAI57G,GAAG,GAAK,IAAK47G,EAAI57G,GAAG,IAC/BA,IAAMu0hB,GACRxb,EAAAjxb,KAAQ8zB,EAAI57G,GACZ+4gB,EAAAjxb,KAAQ,CAAC8zB,EAAI57G,GAAG,IAAO,KAEvB+4gB,EAAAjxb,KAAQ8zB,EAAI57G,GAGnB,IAAA+mK,EAASl6H,EAAQk6H,OAAOgyW,GAC5BhyW,EAAOnrD,IAAIhtE,MACX6F,EAAS71C,KAAKmoK,EAChB,EAEgB,SAASnrD,GACvBnnE,EAAS71C,KAAKiuC,EAAQk6H,OAAOnrD,GAC/B,EAEMg9Z,EAAS30gB,MACf,IAAK,eACH,IAAKuC,EAAI,EAAGA,EAAIy2O,EAAO1+O,OAAQiI,IAC7B,IAAKugB,EAAI,EAAGA,EAAIk2N,EAAOz2O,GAAGjI,OAAQwoB,IAChCqtgB,EAAcn3S,EAAOz2O,GAAGugB,IAG5B,MACF,IAAK,UACH,IAAKvgB,EAAI,EAAGA,EAAIy2O,EAAO1+O,OAAQiI,IACf4thB,EAAAn3S,EAAOz2O,IAIpB,OAAAiuC,GA4JPm/e,kBACAY,oBAjJF,SAA6B10a,GACvB,IAAAzV,EAAQyV,EAAU,GAAGzV,MACrBypb,EAAYF,EAAgBvpb,GAC5B,IAACypb,EAAkB,OAAA,EACvB,IAEIh2hB,EAFAgB,EAAS,CAAC,EACV21hB,EAAc,GAElB,IAAK32hB,EAAI,EAAGA,EAAIusG,EAAM4O,QAASn7G,IAAK,CAC9B,IAAAs1I,EAAMtzB,EAAUhiH,IAChBs1I,EAAI69M,KAAmB,IAAZ79M,EAAI69M,OACVnyV,EAAAs0I,EAAI69M,KAAO79M,GAGtB,SAASshZ,EAAcC,GACrB,IAAIr7gB,EAAKm9D,EAAek+c,EAAKtqb,EAAM6na,cAAgB,MAAM9ogB,MACrDu8Y,EAAO7mZ,EAAOwa,GAClB,GAAIqsY,EAAM,CACR,IAAIizH,EAAW+b,EAAI/b,SACnB,GAAsB,YAAlBA,EAAS30gB,MAAwC,iBAAlB20gB,EAAS30gB,KAAyB,CACnE,IAAI2whB,EAAO,CACT3whB,KAAM,UACNqV,KACAs/f,WACAnzf,WAAY,CAAA,GAEVmvgB,EAAKhc,SAAS9re,YAAYvuC,OAAS,EAChCq2hB,EAAAnvgB,WAAWghT,GA+C1B,SAAsBg0M,GACpB,IACIzhe,EADA4/d,EAAW6B,EAAQ7B,SAEnB,GAAkB,iBAAlBA,EAAS30gB,KAGX,IAFA,IAAIg5O,EAAS27R,EAAS9re,YAClB+nf,EAAU,EACL/2hB,EAAI,EAAGA,EAAIm/O,EAAO1+O,OAAQT,IAAK,CACtC,IAAIg3hB,EAAQ,CAAE7whB,KAAM,UAAW6oC,YAAamwM,EAAOn/O,IAC/C4vC,EAAO2lf,EAASyB,GAChBpnf,EAAOmnf,IACCA,EAAAnnf,EACHsL,EAAA87e,QAIJ97e,EAAA4/d,EAEF,OAAA0a,EAAat6e,GAAM4/d,SAAS9re,YAhENiof,CAAaH,GAElCA,EAAKnvgB,WAAWghT,GAAK,CAAClmU,IAAKA,KAE7BolZ,EAAKgvI,IAAMA,EACXhvI,EAAKivI,KAAOA,EACZH,EAAY71hB,KAAKg2hB,EAAI,MAErBvhc,EAAQpyF,IAAI,CACV,WACA0kZ,EAAK10D,IACL,0CACA,qDACA,4CACAlyV,KAAK,aAGJD,EAAOwa,GAEhB,OAAQw6gB,EAAU7vhB,MAChB,IAAK,oBACH,IAAI+whB,EAAalB,EAAUpZ,SAC3B,IAAK58gB,EAAI,EAAGA,EAAIk3hB,EAAWz2hB,OAAQT,IACnB42hB,EAAAM,EAAWl3hB,IAE3B,MACF,IAAK,UACH42hB,EAAcZ,GACd,MACF,QAOS,OANPzgc,EAAQE,KAAK,CACX,wBACCugc,EAAU7vhB,MAAQ,QAAU,IAC7B,qDACA,4CACAlF,KAAK,OACA,EAEX,IAAA,IAASkyV,KAAOnyV,EACdu0F,EAAQpyF,IAAI,CACV,aAAegwV,EAAM,IACrB,+CACA,IAAM5mP,EAAM6na,aAAe,MAC3BnzgB,KAAK,MAEF,OAAA01hB,GA2EPQ,kBAtDF,SAA2Bt+Z,GACrB,IAAAk9Z,EAAmBz8gB,OAAOywF,iBAAmB,CAAC,EAC9Cqtb,EAAW,GACf,SAASC,EAAOC,GACd,OAAO,IAAIzghB,SAAQ,SAASC,EAASoK,GACnC0B,EAAGm6C,KAAKu6d,GAAM,SAAS7+gB,EAAKlW,GAC1B,GAAIkW,EAAK,QACAs9gB,EAAiBuB,GACxB,IAAIxjhB,EAAqB,MAAf2E,EAAI0xB,OAAiB,mBAAqBmtf,EAAO,oBAAsB,wCAA0CA,EAC3H,OAAOp2gB,EAAO,IAAI7f,MAAMyS,IAG1B,OADAiihB,EAAiBuB,GAAQ/0hB,EAClBuU,EAAQvU,EAAC,GACjB,IAGL,SAASs0Q,EAAKygR,GACZ,OAAO,IAAIzghB,SAAQ,SAASC,EAASoK,GACnC,IAAIu9F,EAAM,EACNlhD,EAAWg6d,aAAY,WACzB,OAAIxB,EAAiBuB,IAAoC,YAA3BvB,EAAiBuB,IAC7CE,cAAcj6d,GACPzmD,EAAQi/gB,EAAiBuB,KAE9B74a,EAAM,KACR+4a,cAAcj6d,GACPr8C,EAAO,wCAA0Co2gB,SAE1D74a,MACC,GAAE,IAGT,IAAA,IAASz+G,EAAI,EAAGA,EAAI64H,EAASp4H,OAAQT,IAAK,CACxC,IACI0pC,EADQmvF,EAAS74H,GAAG,GAAGusG,MACX0yI,QACG,iBAARv1M,IACJqsf,EAAiBrsf,GAGe,YAA1Bqsf,EAAiBrsf,IACjB0tf,EAAAt2hB,KAAK+1Q,EAAKntO,KAHnBqsf,EAAiBrsf,GAAO,UACf0tf,EAAAt2hB,KAAKu2hB,EAAO3tf,MAMpB,OAAA0tf,GAWPK,YATF,SAAqBl1hB,GACnB,OAAOkzhB,EAASlzhB,QAclBm1hB,GAAkB54gB,EAAW,CAC/B,iCAAiCpb,EAASic,GAExC,IAAIiD,EAAKD,IACLwpJ,EAAU7Q,KACVtuE,EAASxC,IACTmtc,EAAe5hQ,KACfC,EAAc2hQ,EAAa3hQ,YAC3BC,EAAY0hQ,EAAa1hQ,UAC7Bt2Q,EAAOjc,QAAU,SAAekX,EAAIonG,GAC9BA,GAEG,SAAWpnG,EAAIonG,GAClB,IAAAzV,EAAQyV,EAAU,GAAGzV,MACrB/pG,EAAIw/G,EAAU,GAAG+lI,MACrBvlP,EAAEkZ,MAAM,UAAWsmG,EAAU,GAAGzV,MAAM1kB,SAC1BmuM,EAAAxzR,EAAG+pG,EAAO3xF,GACZq7Q,EAAAzzR,EAAG+pG,EAAO3xF,GAClBpY,EAAAgrB,UAAU,gBAAgB9R,MAAM,OAAQ,QAAQ2U,MAAK,SAAS9tB,GAC1D,IAAA2uD,EAAOtuC,EAAGkK,OAAO3lB,MACjBgiN,EAAS5mN,EAAEgqG,MACXj3D,EAAO6zK,EAAO7zK,MAAQ,CAAC,EAC3B4b,EAAKlpD,KAAKglF,EAAOlB,OAAQx2C,EAAKlY,OAAOp1B,KAAKmkK,EAAQ/N,SAAU9oH,EAAKutD,MAAQ,GAAIvtD,EAAKm3B,OAAS,GACvE,SAAhB08I,EAAO39M,MACT0lD,EAAKlpD,KAAKglF,EAAOxhF,KAAM29M,EAAO1jH,UAChC,IAfwBmyb,CAAAh9gB,EAAIonG,EAChC,KAqBA61a,GAAiB/4gB,EAAW,CAC9B,gCAAgCpb,EAASic,GAEvC,IAAIiD,EAAKD,IACLsmG,EAAMrN,KACNkia,EAAsBP,KAAyBO,oBAC/Cga,EAAe/Z,KACfga,EAAW1C,KACX94W,EAAetE,KAAoBsE,aACnC/rG,EAASD,IAAoBC,OAC7BmyM,EAAiBb,KAAgBa,eACjClnH,EAAW9F,KACXj6I,EAAQg8gB,KAkEZ/3gB,EAAOjc,QAAU,CACfs0hB,YApCO,SAAYh2a,EAAW+P,GAC1B,IAIA/xH,EAAG2hH,EAJHpV,EAAQyV,EAAU,GAAGzV,MACrByzH,EAAYjuG,EAAWxlB,EAAMkqD,KAC7BA,EAAMupE,EAAUvpB,SAChBp2M,EAAMksG,EAAM4O,QAEhB,GAAI8N,EAAI/1C,oBAAoBq5B,EAAMmsD,WAAY,CAC5C,IAAIy7W,EAAe5na,EAAM4na,aACrByI,EAA4B,eAAjBzI,EAAgC4jB,EAASrB,oBAAoB10a,GAAa87Z,EAAoBvxa,EAAOkqD,EAAIzsD,UACxH,IAAKhqG,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxB2hH,EAASK,EAAUhiH,GACf,IAAA28gB,EAA2B,eAAjBxI,EAAgCxyZ,EAAOm1a,KAAOiB,EAAS9B,kBAAkB9hB,EAAcxyZ,EAAOwxO,IAAKypL,GACjHj7Z,EAAOypD,OAASuxW,EAAUA,EAAQh1f,WAAWghT,GAAK,CAACn4P,EAAQA,IAG3D,IACAynd,EACAC,EAFA/8c,EAAO,CAAE2hG,QAAQ,GAGrB,GAA4B,YAAxBkjD,EAAUm4T,WAAkD,eAAvB5rb,EAAM4na,aAA+B,CAC5E,IAAIikB,EAAcL,EAASN,YAAYM,EAASjC,gBAAgBvpb,IAChE0rb,EAAW,CAACG,EAAY,GAAIA,EAAY,IACxCF,EAAW,CAACE,EAAY,GAAIA,EAAY,GAAE,KACrC,CAGL,IAFWH,EAAA,IAAI92hB,MAAMd,GACV63hB,EAAA,IAAI/2hB,MAAMd,GAChBL,EAAI,EAAGA,EAAIK,EAAKL,IACnB2hH,EAASK,EAAUhiH,GACnBi4hB,EAASj4hB,GAAK2hH,EAAOypD,OAAO,GAC5B8sX,EAASl4hB,GAAK2hH,EAAOypD,OAAO,GAEzBjwF,EAAAiiG,KAAOulG,EAAep2K,EAAOlsG,GAEpCksG,EAAMmoC,UAAU22B,IAAMkR,EAAayjD,EAAUq4T,QAAQC,IAAKL,EAAU98c,GACpEoxB,EAAMmoC,UAAU42B,IAAMiR,EAAayjD,EAAUu4T,QAAQD,IAAKJ,EAAU/8c,IAIpEo+C,KAnEO,SAAK3+G,EAAI67I,EAAK59B,GACrB,IAAIy8J,EAAe7+H,EAAI+1C,OAAOwyJ,UAAUlyU,OAAO,iBAC3C0rgB,EAAUvva,EAAIhL,gBAAgBq3K,EAAcz8J,EAAU,oBACjD,SAAA4/Z,EAAal2hB,EAAG2gB,GACnB3gB,EAAE6oK,OAAO,KAAO56F,GACf5tD,EAAAkK,OAAO5J,GAAMkG,SAGZovgB,EAAAhrgB,UAAU,KAAKpE,SACfovgB,EAAAnogB,MAAK,SAAS2xF,GAChB,IAAAx/G,EAAIogB,EAAGkK,OAAO3lB,MACdolG,EAAQyV,EAAU,GAAGzV,MACzB,GAAIkvD,EAAS1b,SAASxzC,IAAyB,SAAfA,EAAM/gG,KAAiB,CACjD,IAAAkthB,EAAaZ,EAAa9Z,sBAAsBh8Z,GAChD22a,EAA0B,SAAfpsb,EAAM/gG,KAAkBsshB,EAAa3Z,YAAYua,GAAcZ,EAAa5Z,SAASwa,GAClGl2hB,EAAAgrB,UAAU,gBAAgBnnB,KAAK,CAAC,CAAE44O,QAAS05S,EAAUpsb,WAAUx6E,QAAQjB,OAAO,QAAQR,QAAQ,WAAW,GAAM5U,MAAM,oBAAqB,GAE1I+/I,EAAS7F,WAAWrpD,IACtB/pG,EAAEgrB,UAAU,cAAcnnB,KAAK4iH,EAAI/4D,UAAUn+B,QAAQjB,OAAO,QAAQR,QAAQ,SAAS,GAAMD,MAAK,SAASsxF,GACvG82a,EAAa92a,EAAQx6G,KAAI,IAGzBs0J,EAAS5F,QAAQtpD,IACnB/pG,EAAEgrB,UAAU,KAAKnnB,KAAK4iH,EAAI/4D,UAAUn+B,QAAQjB,OAAO,KAAKA,OAAO,QAAQT,MAAK,SAASsxF,GACnF82a,EAAa92a,EAAQx6G,KAAI,IAG7BuU,EAAMd,EAAIonG,EAAS,SA8CvB42a,GAAkB95gB,EAAW,CAC/B,iCAAiCpb,EAASic,GAExC,IAAIgkO,EAAKl6B,KACLj5I,EAASD,IAAoBC,OAC7B6lN,EAAgBH,KAChBnvK,EAAWnL,KAAcmL,SACzBr3B,EAAawkb,KACjBv0f,EAAOjc,QAAU,SAAqB2zJ,EAAW2/C,EAAMC,GACrD,IAAIv8F,EAAK28C,EAAU38C,GACfnO,EAAQmO,EAAG,GAAGnO,MACdxH,EAAKsyD,EAAUtyD,GACfE,EAAKoyD,EAAUpyD,GACfwxD,EAAMY,EAAUhe,QAChBw/Y,EAAoBpiY,EAAI1jG,WAAW8le,kBACnC1tX,EAAU1U,EAAI0U,QAad,GADDw4E,EAAAxsF,WAAWz8C,GAXd,SAAgBn4G,GACd,IAAIu2hB,EAAUv2hB,EAAE6oK,OAChB,GAAI0tX,EAAQ,KAAOtod,EAAe,OAAA9tE,IAC9B,GAAAm2hB,EAAkBC,GAAiB,OAAAp2hB,IACnC,IAAAkyG,EAAKu2D,EAAQ2tX,GACb94e,EAAKmrH,EAAQ,CAAC6rC,EAAMC,IACpBpgL,EAAKl0B,KAAKK,IAAI4xG,EAAG,GAAK50D,EAAG,IACzBlpB,EAAKn0B,KAAKK,IAAI4xG,EAAG,GAAK50D,EAAG,IACzB02O,EAAO/zR,KAAK8J,IAAI,EAAGlK,EAAEy/J,KAAO,GAChC,OAAOr/J,KAAK8J,IAAI9J,KAAKmjB,KAAK+Q,EAAKA,EAAKC,EAAKA,GAAM4/P,EAAM,EAAI,EAAIA,KAErCr/H,IACF,IAApBA,EAAU9+G,MAAV,CACA,IAAA6I,EAAKs5D,EAAG28C,EAAU9+G,OAClB6yH,EAAShqH,EAAGgqH,OACZn/J,EAAM,CAAC84F,EAAGi4D,IAAIoO,GAASnmE,EAAG+3D,IAAIoO,IAC9B5yE,EAAMp3C,EAAG4gH,KAAO,EACV3K,EAAAl+H,GAAKltB,EAAI,GAAKusF,EACd6+D,EAAAj+H,GAAKntB,EAAI,GAAKusF,EACd6+D,EAAAh+H,GAAKptB,EAAI,GAAKusF,EACd6+D,EAAA/9H,GAAKrtB,EAAI,GAAKusF,EACxB6+D,EAAU87L,IAAM/xS,EAAG+xS,IACT97L,EAAAgU,IAAMD,EAAO,GACb/T,EAAAiU,IAAMF,EAAO,GACvB,IAAIr5C,EAAa,CAAC,EAClBA,EAAWxlB,EAAMkqD,KAAO,CAAEggD,SAAUhgD,GACpC,IAAIlxC,EAAShZ,EAAMzb,QAAQu2E,aAAajmH,EAAImrD,EAAOwlB,GAMnD,OALAslC,EAAUo9W,SAAWlvZ,EAAOkvZ,SAC5Bp9W,EAAUq9W,SAAWnvZ,EAAOmvZ,SAClBr9W,EAAAj6H,MAAQi5P,EAAc9pL,EAAOnrD,GAC7Bi2G,EAAAytD,UAIZ,SAAsBv4G,EAAOqI,EAAIyiD,EAAW9xC,GAC1C,IAAIhZ,EAAMzI,cAAV,CACI,IAAA1b,EAAYwsB,EAAGjrG,IAAM4iG,EAAMnkB,UAC3BznF,EAAsB,QAAdynF,EAAsBsH,EAAWtH,UAAUlD,MAAQkD,EAAUh0E,MAAM,KAC3E2khB,GAAkD,IAApCp4hB,EAAMW,QAAQ,aAAsBH,MAAMiF,QAAQmmG,EAAMmsD,WACtEsgY,GAAkC,IAAzBr4hB,EAAMW,QAAQ,OACvB23hB,GAAkC,IAAzBt4hB,EAAMW,QAAQ,OACvBu0J,GAAoC,IAA1Bl1J,EAAMW,QAAQ,QACxBovB,EAAO,GAgBJ,OAZHqogB,EACGrogB,EAAA5vB,KAAK8zG,EAAGu+O,KACJ6lM,GAAUC,EACdvogB,EAAA5vB,KAAK,IAAM4+B,EAAO23H,EAAUq9W,UAAY,KAAOh1e,EAAO23H,EAAUo9W,UAAY,KACxEukB,EACTtogB,EAAK5vB,KAAKykH,EAAO8lD,IAAM3rI,EAAO23H,EAAUo9W,WAC/BwkB,GACTvogB,EAAK5vB,KAAKykH,EAAO+lD,IAAM5rI,EAAO23H,EAAUq9W,WAEtC7+W,GACO9uC,EAAAnS,EAAIrI,EAAO77E,GAEfA,EAAKzvB,KAAK,OAvBQ,CAQzB,SAASy+B,EAAO73B,GACd,OAAOA,EAAM,KAdOqxhB,CAAa3sb,EAAOnrD,EAAIi2G,EAAW38C,EAAG,GAAGl0F,EAAE++F,QACjE8xC,EAAUvzD,cAAgByI,EAAMzI,cACzB,CAACuzD,EApBuB,CAqBjC,KA+BA8hY,GAAsBr6gB,EAAW,CACnC,sCAAsCpb,EAASic,GAE7CA,EAAOjc,QAAU,SAAmB4J,EAAKsnG,EAAIrI,EAAOmO,EAAIg9C,GACtDpqJ,EAAI+9J,IAAMz2D,EAAGy2D,IACb/9J,EAAIg+J,IAAM12D,EAAG02D,IACbh+J,EAAI8vH,SAAWxoB,EAAGu+O,IAAMv+O,EAAGu+O,IAAM,KAC7B,IAAA79M,EAAM56B,EAAGg9C,GAIN,OAHHpiB,EAAIuhZ,KAAOvhZ,EAAIuhZ,IAAIlvgB,aACjBra,EAAAqa,WAAa2tH,EAAIuhZ,IAAIlvgB,YAEpBra,CACT,KAKA8rhB,GAAkBt6gB,EAAW,CAC/B,kCAAkCpb,EAASic,GAEzC,IAAIw2Q,EAAWxgI,KACXnlF,EAASD,IAAoBC,OACjC7wD,EAAOjc,QAAU,SAAsB8gP,EAAYqzC,GACjD,IAKIz2O,EAAIgqH,EAAQv/J,EAAGC,EAAG9L,EALlB06G,EAAK8pI,EAAW9pI,GAChB3V,EAAKy/I,EAAWn1H,MAChBpqB,EAAKu/I,EAAWl1H,MAChBziG,EAAY,GACZ0/E,EAAQmO,EAAG,GAAGnO,MAGd,IADgB4pL,EAASvgI,WAAWrpD,KAAW4pL,EAAStgI,QAAQtpD,SAC3C,GACzB,IAAwB,IAApBsrL,EACF,IAAK73R,EAAI,EAAGA,EAAI06G,EAAGj6G,OAAQT,IACtB06G,EAAA16G,GAAGsxF,SAAW,OAGnB,IAAKtxF,EAAI,EAAGA,EAAI06G,EAAGj6G,OAAQT,KAEzBorK,GADAhqH,EAAKs5D,EAAG16G,IACIorK,QACD,KAAO56F,IACd3kE,EAAAk5F,EAAGi4D,IAAIoO,GACPt/J,EAAAm5F,EAAG+3D,IAAIoO,GACPysH,EAAgBtnQ,SAAS,CAAC1kB,EAAGC,GAAI,KAAM9L,EAAGwkP,IAC5C33N,EAAU/rB,KAAK,CACb42J,YAAa13J,EACbqrK,IAAKD,EAAO,GACZE,IAAKF,EAAO,KAEdhqH,EAAGkwC,SAAW,GAEdlwC,EAAGkwC,SAAW,GAIb,OAAAzkE,CACT,KAKAwsgB,GAAmBv6gB,EAAW,CAChC,yCAAyCpb,EAASic,GAC/C,IAASu9C,EAASt/C,EAATs/C,EAEPx5D,EAFgBka,EAEP,SAASu/C,GAEV,SAAAp4C,EAAUnZ,EAAG9F,GACb,OAAA8F,EAAI9F,GAAS,EAAA8F,EAAI9F,EAAI,EAAI8F,GAAK9F,EAAI,EAAIrD,IAE/C,SAAS2jB,EAASza,GAyBlB,IAA6B2W,EAvBpB,OADgB,IAAnB3W,EAAQlL,SAwBe6hB,EAxB6B3W,EAA9BA,EAyBnB,SAASpJ,EAAGsJ,GACjB,OAAOkZ,EAAUzC,EAAE/f,GAAIsJ,EACzB,GA1BO,CACL+Y,KAAM,SAAShZ,EAAGC,EAAGjC,EAAID,GAGvB,IAFU,MAANC,IAAiBA,EAAA,GACX,MAAND,IAAYA,EAAKiC,EAAEnL,QAChBmJ,EAAKD,GAAI,CACV,IAAAkb,EAAMjb,EAAKD,IAAO,EAClBgC,EAAQC,EAAEiZ,GAAMhZ,GAAK,IAAQgZ,EAAM,EAC7Blb,EAAAkb,EAEL,OAAAjb,CACT,EACAkb,MAAO,SAASlZ,EAAGC,EAAGjC,EAAID,GAGxB,IAFU,MAANC,IAAiBA,EAAA,GACX,MAAND,IAAYA,EAAKiC,EAAEnL,QAChBmJ,EAAKD,GAAI,CACV,IAAAkb,EAAMjb,EAAKD,IAAO,EAClBgC,EAAQC,EAAEiZ,GAAMhZ,GAAK,EAAQlC,EAAAkb,IACvBA,EAAM,EAEX,OAAAjb,IAST,IAAA0vhB,EAAkBlzgB,EAASrB,GAC3BoB,EAAcmzgB,EAAgBx0gB,MAC9BmB,EAAaqzgB,EAAgB10gB,KAOxB,SAAA20gB,EAAK3thB,EAAG9F,GACR,MAAA,CAAC8F,EAAG9F,GAeb,SAASoW,EAAOrQ,GACP,OAAM,OAANA,EAAapJ,KAAOoJ,EAEpB,SAAA+Z,EAASP,EAAQm0gB,GACpB,IAA6C32hB,EAAOy4G,EAApD3zG,EAAI0d,EAAO5kB,OAAQyB,EAAI,EAAGlC,GAAI,EAAIy5hB,EAAQ,EAAiBC,EAAO,EACtE,GAAe,MAAXF,EACK,OAAEx5hB,EAAI2H,GACN1E,MAAMJ,EAAQqZ,EAAOmJ,EAAOrlB,OAG/B05hB,IAFAp+a,EAAQz4G,EAAQ42hB,IAEC52hB,GADjB42hB,GAASn+a,IAAUp5G,UAKhB,OAAElC,EAAI2H,GACN1E,MAAMJ,EAAQqZ,EAAOs9gB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,OAG9Cq0gB,IAFAp+a,EAAQz4G,EAAQ42hB,IAEC52hB,GADjB42hB,GAASn+a,IAAUp5G,KAKzB,GAAIA,EAAI,EAAU,OAAAw3hB,GAAQx3hB,EAAI,GAEvB,SAAA2jB,EAAUskd,EAAQ7nd,GACrB,IAAAkD,EAAII,EAASukd,EAAQ7nd,GACzB,OAAOkD,EAAI7iB,KAAKmjB,KAAKN,GAAKA,EAEnB,SAAAP,EAAOI,EAAQm0gB,GACtB,IAA+B32hB,EAAO82hB,EAAMC,EAAxCjyhB,EAAI0d,EAAO5kB,OAAQT,GAAI,EAC3B,GAAe,MAAXw5hB,GACK,OAAEx5hB,EAAI2H,GACX,GAA2B,OAAtB9E,EAAQwiB,EAAOrlB,KAAe6C,GAASA,EAEnC,IADP82hB,EAAOC,EAAO/2hB,IACL7C,EAAI2H,GACgB,OAAtB9E,EAAQwiB,EAAOrlB,MACd25hB,EAAO92hB,IAAc82hB,EAAA92hB,GACrB+2hB,EAAO/2hB,IAAc+2hB,EAAA/2hB,SAM1B,OAAE7C,EAAI2H,GACN,GAA0C,OAA1C9E,EAAQ22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,KAAoBxiB,GAASA,EAEvD,IADP82hB,EAAOC,EAAO/2hB,IACL7C,EAAI2H,GACoC,OAA1C9E,EAAQ22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,MAC7Bs0gB,EAAO92hB,IAAc82hB,EAAA92hB,GACrB+2hB,EAAO/2hB,IAAc+2hB,EAAA/2hB,IAM5B,MAAA,CAAC82hB,EAAMC,GAEhB,IAAIlzhB,EAAQvF,MAAMkD,UACdY,EAAQyB,EAAMzB,MACdmiB,EAAM1gB,EAAM0gB,IAChB,SAASm7X,EAAS12Y,GAChB,OAAO,WACE,OAAAA,CACT,EAEF,SAASikD,EAAUjkD,GACV,OAAAA,EAEA,SAAA2H,EAAMjS,EAAOwnB,EAAMC,GAC1BznB,GAASA,EAAOwnB,GAAQA,EAAMC,GAAQrhB,EAAId,UAAUpG,QAAU,GAAKsoB,EAAOxnB,EAAOA,EAAQ,EAAG,GAAKoG,EAAI,EAAI,GAAKqhB,EAEvG,IADP,IAAIhpB,GAAQ,EAAA2H,EAAoD,EAAhDhF,KAAK8J,IAAI,EAAG9J,KAAK25B,MAAMvT,EAAOxnB,GAASynB,IAAY6wgB,EAAS,IAAI14hB,MAAMwG,KAC7E3H,EAAI2H,GACJkyhB,EAAA75hB,GAAKuB,EAAQvB,EAAIgpB,EAEnB,OAAA6wgB,EAET,IAAIC,EAAMn3hB,KAAKmjB,KAAK,IAAKi0gB,EAAKp3hB,KAAKmjB,KAAK,IAAK68Y,EAAKhga,KAAKmjB,KAAK,GAqBnD,SAAAm9J,EAAc1hL,EAAOwnB,EAAMtG,GAC9B,IAAAuG,GAAQD,EAAOxnB,GAASoB,KAAK8J,IAAI,EAAGgW,GAAQu3gB,EAAQr3hB,KAAKO,MAAMP,KAAKQ,IAAI6lB,GAAQrmB,KAAKgrD,MAAOxiD,EAAQ6d,EAAOrmB,KAAKC,IAAI,GAAIo3hB,GAC5H,OAAOA,GAAS,GAAK7uhB,GAAS2uhB,EAAM,GAAK3uhB,GAAS4uhB,EAAK,EAAI5uhB,GAASw3Z,EAAK,EAAI,GAAKhga,KAAKC,IAAI,GAAIo3hB,IAAUr3hB,KAAKC,IAAI,IAAKo3hB,IAAU7uhB,GAAS2uhB,EAAM,GAAK3uhB,GAAS4uhB,EAAK,EAAI5uhB,GAASw3Z,EAAK,EAAI,GAElL,SAAAs3H,EAAS14hB,EAAOwnB,EAAMtG,GACzB,IAAAy3gB,EAAQv3hB,KAAKK,IAAI+lB,EAAOxnB,GAASoB,KAAK8J,IAAI,EAAGgW,GAAQ03gB,EAAQx3hB,KAAKC,IAAI,GAAID,KAAKO,MAAMP,KAAKQ,IAAI+2hB,GAASv3hB,KAAKgrD,OAAQxiD,EAAQ+uhB,EAAQC,EAIjI,OAHHhvhB,GAAS2uhB,EAAcK,GAAA,GAClBhvhB,GAAS4uhB,EAAaI,GAAA,EACtBhvhB,GAASw3Z,IAAaw3H,GAAA,GACxBpxgB,EAAOxnB,GAAS44hB,EAAQA,EAEjC,SAASC,EAAQ/0gB,GACR,OAAA1iB,KAAK25B,KAAK35B,KAAKQ,IAAIkiB,EAAO5kB,QAAUkC,KAAKS,KAAO,EA0ChD,SAAAgiB,EAASC,EAAQzO,EAAG4ihB,GAEvB,GADW,MAAXA,IAA2BA,EAAAt9gB,GACzBvU,EAAI0d,EAAO5kB,OAAb,CACJ,IAAKmW,GAAKA,IAAM,GAAKjP,EAAI,EAAU,OAAC6xhB,EAAQn0gB,EAAO,GAAI,EAAGA,GACtD,GAAAzO,GAAK,EAAG,OAAQ4ihB,EAAQn0gB,EAAO1d,EAAI,GAAIA,EAAI,EAAG0d,GAClD,IAAI1d,EAAG3H,GAAK2H,EAAI,GAAKiP,EAAG0P,EAAK3jB,KAAKO,MAAMlD,GAAIogb,GAAUo5G,EAAQn0gB,EAAOiB,GAAKA,EAAIjB,GACvE,OAAA+6Z,IAD0Fo5G,EAAQn0gB,EAAOiB,EAAK,GAAIA,EAAK,EAAGjB,GACvG+6Z,IAAWpgb,EAAIsmB,EAJf,EAqFnB,SAAAvc,EAAIsb,EAAQm0gB,GACnB,IAA+B32hB,EAAO82hB,EAAlChyhB,EAAI0d,EAAO5kB,OAAQT,KACvB,GAAe,MAAXw5hB,GACK,OAAEx5hB,EAAI2H,GACX,GAA2B,OAAtB9E,EAAQwiB,EAAOrlB,KAAe6C,GAASA,EAEnC,IADA82hB,EAAA92hB,IACE7C,EAAI2H,GACgB,OAAtB9E,EAAQwiB,EAAOrlB,KAAe25hB,EAAO92hB,IACjC82hB,EAAA92hB,QAMR,OAAE7C,EAAI2H,GACN,GAA0C,OAA1C9E,EAAQ22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,KAAoBxiB,GAASA,EAEvD,IADA82hB,EAAA92hB,IACE7C,EAAI2H,GACoC,OAA1C9E,EAAQ22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,KAAoBs0gB,EAAO92hB,IACrD82hB,EAAA92hB,GAMV,OAAA82hB,EAyCT,SAAS5ygB,EAAUC,GACjB,KAAMrf,EAAIqf,EAAOvmB,cAAgB,GACjC,IAAA,IAAST,GAAI,EAAIkC,EAAI6H,EAAIid,EAAQvmB,GAAS45hB,EAAa,IAAIl5hB,MAAMe,KAAMlC,EAAIkC,GACzE,IAAA,IAAiByF,EAARe,GAAI,EAAOue,EAAMozgB,EAAWr6hB,GAAK,IAAImB,MAAMwG,KAAMe,EAAIf,GAC5Dsf,EAAIve,GAAKse,EAAOte,GAAG1I,GAGhB,OAAAq6hB,EAET,SAAS55hB,EAAO8B,GACd,OAAOA,EAAE9B,OAKX08D,EAASj3C,OAASC,EAClBg3C,EAASh3C,YAAcA,EACvBg3C,EAASl3C,WAAaA,EACtBk3C,EAASp4C,UAAYA,EACrBo4C,EAAS/2C,SAAWA,EACpB+2C,EAAS9G,MAjVA,SAAMike,EAASC,EAASr0e,GAC/B,IAA2E5/B,EAAIC,EAAIvmB,EAAGogb,EAAlF5uZ,EAAK8ogB,EAAQ75hB,OAAQkxG,EAAK4ob,EAAQ95hB,OAAQ4kB,EAAS,IAAIlkB,MAAMqwB,EAAKmgF,GAEtE,IADc,MAAVzrD,IAAyBA,EAAAqze,GACxBjzgB,EAAKtmB,EAAI,EAAGsmB,EAAKkL,IAAMlL,EACrB,IAAA85Z,EAASk6G,EAAQh0gB,GAAKC,EAAK,EAAGA,EAAKorF,IAAMprF,IAAMvmB,EAClDqlB,EAAOrlB,GAAKkmD,EAAOk6X,EAAQm6G,EAAQh0gB,IAGhC,OAAAlB,GA0UT83C,EAASn4C,WAxUA,SAAWpZ,EAAG9F,GACd,OAAAA,EAAI8F,GAAS,EAAA9F,EAAI8F,EAAI,EAAI9F,GAAK8F,EAAI,EAAInJ,KAwU/C06D,EAASt3C,UAAYA,EACrBs3C,EAASl4C,OAASA,EAClBk4C,EAAS/T,UAzNT,WACE,IAAIvmD,EAAQitD,EAAWp1B,EAASzV,EAAQgrC,EAAYmqe,EACpD,SAASI,EAAWn0hB,GACd,IAAArG,EAAoB6L,EAAjBlE,EAAItB,EAAK5F,OAAW4kB,EAAS,IAAIlkB,MAAMwG,GAC9C,IAAK3H,EAAI,EAAGA,EAAI2H,IAAK3H,EACnBqlB,EAAOrlB,GAAK6C,EAAMwD,EAAKrG,GAAIA,EAAGqG,GAEhC,IAAIgzF,EAAK3+D,EAAOrV,GAAS8T,EAAKkgE,EAAG,GAAIjgE,EAAKigE,EAAG,GAAI2tZ,EAAK/2b,EAAU5qC,EAAQ8T,EAAIC,GACvEj4B,MAAMiF,QAAQ4gf,KACZA,EAAAizC,EAAS9ggB,EAAIC,EAAI4td,GACjBA,EAAAxze,EAAM7Q,KAAK25B,KAAKnD,EAAK6td,GAAMA,EAAI5td,EAAI4td,IAG1C,IADA,IAAI9kf,EAAI8kf,EAAGvmf,OACJumf,EAAG,IAAM7td,GAAO6td,EAAA9+b,UAAWhmD,EAC3B,KAAA8kf,EAAG9kf,EAAI,GAAKk3B,GAAO4td,EAAAl2c,QAAS5uC,EACnC,IAA6BunD,EAAzBC,EAAO,IAAIvoD,MAAMe,EAAI,GACzB,IAAKlC,EAAI,EAAGA,GAAKkC,IAAKlC,GACdypD,EAAAC,EAAK1pD,GAAK,IACZm5B,GAAKn5B,EAAI,EAAIgnf,EAAGhnf,EAAI,GAAKm5B,EAC7BswB,EAAIrwB,GAAKp5B,EAAIkC,EAAI8kf,EAAGhnf,GAAKo5B,EAE3B,IAAKp5B,EAAI,EAAGA,EAAI2H,IAAK3H,EAEfm5B,IADJttB,EAAIwZ,EAAOrlB,KACI6L,GAAKutB,GACbswB,EAAAvjC,EAAY6ge,EAAIn7e,EAAG,EAAG3J,IAAIpB,KAAKuF,EAAKrG,IAGtC,OAAA0pD,EAWF,OATI8we,EAAA33hB,MAAQ,SAASglB,GACnB,OAAAhhB,UAAUpG,QAAUoC,EAAqB,mBAANglB,EAAmBA,EAAI06X,EAAS16X,GAAI2ygB,GAAc33hB,CAC9F,EACW23hB,EAAA9/f,OAAS,SAAS7S,GAC3B,OAAOhhB,UAAUpG,QAAUi6B,EAAsB,mBAAN7S,EAAmBA,EAAI06X,EAAS,CAAC16X,EAAE,GAAIA,EAAE,KAAM2ygB,GAAc9/f,CAC1G,EACW8/f,EAAA7we,WAAa,SAAS9hC,GACxB,OAAAhhB,UAAUpG,QAAUwvD,EAAyB,mBAANpoC,EAAmBA,EAAI1mB,MAAMiF,QAAQyhB,GAAK06X,EAASt9Y,EAAM+C,KAAK6f,IAAM06X,EAAS16X,GAAI2ygB,GAAcvqe,CAC/I,EACOuqe,GAoLTr9d,EAASs9d,0BA1KA,SAAiBp1gB,EAAQs0gB,EAAMC,GAEtC,OADAv0gB,EAAS+B,EAAIpf,KAAKqd,EAAQnJ,GAAQyJ,KAAKZ,GAChCpiB,KAAK25B,MAAMs9f,EAAOD,IAAS,GAAKv0gB,EAASC,EAAQ,KAAQD,EAASC,EAAQ,MAAS1iB,KAAKC,IAAIyiB,EAAO5kB,QAAQ,EAAK,MAyKzH08D,EAASu9d,eAvKA,SAAMr1gB,EAAQs0gB,EAAMC,GAC3B,OAAOj3hB,KAAK25B,MAAMs9f,EAAOD,IAAS,IAAM9zgB,EAAUR,GAAU1iB,KAAKC,IAAIyiB,EAAO5kB,QAAQ,EAAK,MAuK3F08D,EAASw9d,iBAAmBP,EAC5Bj9d,EAAS1wD,IAtKA,SAAI4Y,EAAQm0gB,GACnB,IAA+B32hB,EAAO+2hB,EAAlCjyhB,EAAI0d,EAAO5kB,OAAQT,KACvB,GAAe,MAAXw5hB,GACK,OAAEx5hB,EAAI2H,GACX,GAA2B,OAAtB9E,EAAQwiB,EAAOrlB,KAAe6C,GAASA,EAEnC,IADA+2hB,EAAA/2hB,IACE7C,EAAI2H,GACgB,OAAtB9E,EAAQwiB,EAAOrlB,KAAe6C,EAAQ+2hB,IAClCA,EAAA/2hB,QAMR,OAAE7C,EAAI2H,GACN,GAA0C,OAA1C9E,EAAQ22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,KAAoBxiB,GAASA,EAEvD,IADA+2hB,EAAA/2hB,IACE7C,EAAI2H,GACoC,OAA1C9E,EAAQ22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,KAAoBxiB,EAAQ+2hB,IACtDA,EAAA/2hB,GAMV,OAAA+2hB,GA8ITz8d,EAASh4C,KA5IA,SAAKE,EAAQm0gB,GAChB,IAAkC32hB,EAAlC8E,EAAI0d,EAAO5kB,OAAQyB,EAAIyF,EAAG3H,GAAI,EAAW05hB,EAAO,EACpD,GAAe,MAAXF,EACK,OAAEx5hB,EAAI2H,GACN1E,MAAMJ,EAAQqZ,EAAOmJ,EAAOrlB,OAC1BkC,EADwCw3hB,GAAA72hB,OAI1C,OAAE7C,EAAI2H,GACN1E,MAAMJ,EAAQqZ,EAAOs9gB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,OACzCnjB,EAD4Dw3hB,GAAA72hB,EAInE,GAAAX,SAAUw3hB,EAAOx3hB,GAgIvBi7D,EAAS13C,OA9HA,SAAOJ,EAAQm0gB,GACtB,IAA+B32hB,EAA3B8E,EAAI0d,EAAO5kB,OAAQT,GAAQ,EAAO0lB,EAAU,GAChD,GAAe,MAAX8zgB,EACK,OAAEx5hB,EAAI2H,GACN1E,MAAMJ,EAAQqZ,EAAOmJ,EAAOrlB,MAC/B0lB,EAAQ5kB,KAAK+B,QAIV,OAAE7C,EAAI2H,GACN1E,MAAMJ,EAAQqZ,EAAOs9gB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,MAC9CK,EAAQ5kB,KAAK+B,GAInB,OAAOuiB,EAASM,EAAQC,KAAKZ,GAAY,KAgH3Co4C,EAAS71C,MA9GT,SAAeC,GAEb,IADI,IAAmBrlB,EAAkBslB,EAAQ2id,EAA7Cxie,EAAI4f,EAAO9mB,OAAWT,GAAQ,EAAA0I,EAAI,IAC7B1I,EAAI2H,GAAQe,GAAA6e,EAAOvnB,GAAGS,OAExB,IADE+mB,EAAA,IAAIrmB,MAAMuH,KACVf,GAAK,GAGL,IADPzF,GADAioe,EAAS5id,EAAO5f,IACLlH,SACFyB,GAAK,GACZslB,IAAS9e,GAAKyhe,EAAOjoe,GAGlB,OAAAslB,GAoGT21C,EAASpzD,IAAMA,EACfozD,EAASt2C,MAvWA,SAAMsjd,EAAQ7nd,GACZ,MAALA,IAAeA,EAAAi3gB,GAEZ,IADP,IAAIv5hB,EAAI,EAAG2H,EAAIwie,EAAO1pe,OAAS,EAAGmW,EAAIuzd,EAAO,GAAIywD,EAAS,IAAIz5hB,MAAMwG,EAAI,EAAI,EAAIA,GACzE3H,EAAI2H,GAAGizhB,EAAO56hB,GAAKsiB,EAAE1L,EAAGA,EAAIuzd,IAASnqe,IACrC,OAAA46hB,GAoWTz9d,EAASz2C,QAzEA,SAAQyjd,EAAQxjd,GAEvB,IADA,IAAI3mB,EAAI2mB,EAAQlmB,OAAQmmB,EAAW,IAAIzlB,MAAMnB,GACtCA,KAAc4mB,EAAA5mB,GAAKmqe,EAAOxjd,EAAQ3mB,IAClC,OAAA4mB,GAuETu2C,EAAS/3C,SAAWA,EACpB+3C,EAAS3pD,MAAQA,EACjB2pD,EAAS09d,KAvEA,SAAKx1gB,EAAQ1Z,GAChB,GAAEhE,EAAI0d,EAAO5kB,OAAb,CACA,IAAAkH,EAAiB8mD,EAAdzuD,EAAI,EAAG0I,EAAI,EAAO44O,EAAKj8N,EAAO3c,GAE9B,IADQ,MAAXiD,IAA2BA,EAAAoZ,KACtB/kB,EAAI2H,IACPgE,EAAQ8iD,EAAKppC,EAAOrlB,GAAIshP,GAAM,GAAyB,IAApB31O,EAAQ21O,EAAIA,MACjDA,EAAK7yL,EAAI/lD,EAAI1I,GAGjB,OAAwB,IAApB2L,EAAQ21O,EAAIA,GAAkB54O,OAAlC,CAR0B,GAuE5By0D,EAAS92C,QA7DA,SAAQ8jd,EAAQ7jd,EAAIC,GAE3B,IADA,IAAyEC,EAAGxmB,EAAxEkC,GAAW,MAANqkB,EAAa4jd,EAAO1pe,OAAS8lB,IAAOD,EAAW,MAANA,EAAa,GAAKA,GAC7DpkB,GACDlC,EAAA2C,KAAK8jB,SAAWvkB,IAAM,EACtBskB,EAAA2jd,EAAOjoe,EAAIokB,GACf6jd,EAAOjoe,EAAIokB,GAAM6jd,EAAOnqe,EAAIsmB,GACrB6jd,EAAAnqe,EAAIsmB,GAAME,EAEZ,OAAA2jd,GAsDThta,EAASj4C,IApDA,SAAIG,EAAQm0gB,GACnB,IAA+B32hB,EAA3B8E,EAAI0d,EAAO5kB,OAAQT,GAAI,EAAW05hB,EAAO,EAC7C,GAAe,MAAXF,EACK,OAAEx5hB,EAAI2H,IACP9E,GAASwiB,EAAOrlB,MAAY05hB,GAAA72hB,QAG3B,OAAE7C,EAAI2H,IACP9E,GAAS22hB,EAAQn0gB,EAAOrlB,GAAIA,EAAGqlB,MAAiBq0gB,GAAA72hB,GAGjD,OAAA62hB,GA0CTv8d,EAAShQ,MA3QA,SAAM5rD,EAAOwnB,EAAMtG,GAC1B,IAAIkjC,EAAiBh+C,EAAGmzhB,EAAQ9xgB,EAAnBhpB,GAAQ,EAErB,GAD8ByiB,GAASA,GAAzBlhB,GAASA,KAAvBwnB,GAAQA,IACctG,EAAQ,EAAG,MAAO,CAAClhB,GAEzC,IADIokD,EAAU58B,EAAOxnB,OAAWA,EAAOA,EAAQwnB,EAAMA,EAAOphB,GACT,KAA9CqhB,EAAOi6J,EAAc1hL,EAAOwnB,EAAMtG,MAAkBvV,SAAS8b,GAAO,MAAO,GAChF,GAAIA,EAAO,EAIT,IAHQznB,EAAAoB,KAAK25B,KAAK/6B,EAAQynB,GACnBD,EAAApmB,KAAKO,MAAM6lB,EAAOC,GAChB8xgB,EAAA,IAAI35hB,MAAMwG,EAAIhF,KAAK25B,KAAKvT,EAAOxnB,EAAQ,MACvCvB,EAAI2H,KAAU3H,IAAMuB,EAAQvB,GAAKgpB,OAK1C,IAHQznB,EAAAoB,KAAKO,MAAM3B,EAAQynB,GACpBD,EAAApmB,KAAK25B,KAAKvT,EAAOC,GACf8xgB,EAAA,IAAI35hB,MAAMwG,EAAIhF,KAAK25B,KAAK/6B,EAAQwnB,EAAO,MACvC/oB,EAAI2H,KAAU3H,IAAMuB,EAAQvB,GAAKgpB,EAGrC,OADH28B,KAAgBA,UACbm1e,GA0PT39d,EAAS8lH,cAAgBA,EACzB9lH,EAAS88d,SAAWA,EACpB98d,EAASp2C,UAAYA,EACrBo2C,EAASv3C,SAAWA,EACpBu3C,EAASj2C,IAjCT,WACE,OAAOH,EAAUlgB,YAiCnB1C,OAAOiH,eAAe+xD,EAAU,aAAc,CAAEt6D,OAAO,GAAM,EA3ZE+a,EAA5C,iBAAZla,QAA0C,IAAXic,EAAiCjc,EAA0Fw5D,EAAQt6C,GAAKs6C,EAAQt6C,IAAM,CAAA,MAia9Lm4gB,GAAiBj8gB,EAAW,CAC9B,qCAAqCpb,EAASic,GAC3C,IAASu9C,EAASt/C,EAATs/C,EAEPx5D,EAFgBka,EAEP,SAASu/C,EAAU69d,GAE7B,SAASC,IACP,OAAO,IAAIC,EAEb,SAASA,IACP/zhB,KAAKgvO,QAEP+kT,EAAM72hB,UAAY,CAChB2O,YAAakohB,EACb/kT,MAAO,WACAhvO,KAAA3E,EACL2E,KAAKqf,EAAI,CACX,EACAjG,IAAK,SAASzU,GACRyU,EAAAy+F,EAAMlzG,EAAG3E,KAAKqf,GAClBjG,EAAIpZ,KAAM63G,EAAKx8G,EAAG2E,KAAK3E,GACnB2E,KAAK3E,EAAQ2E,KAAAqf,GAAKw4F,EAAKx4F,EACtBrf,KAAK3E,EAAIw8G,EAAKx4F,CACrB,EACA3gB,QAAS,WACP,OAAOsB,KAAK3E,IAGZ,IAAAw8G,EAAO,IAAIk8a,EACN,SAAA36gB,EAAI46gB,EAAQvvhB,EAAG9F,GAClB,IAAA+F,EAAIsvhB,EAAO34hB,EAAIoJ,EAAI9F,EAAG62e,EAAK9we,EAAID,EAAGgxe,EAAK/we,EAAI8we,EACxCw+C,EAAA30gB,EAAI5a,EAAIgxe,GAAM92e,EAAI62e,GAE3B,IAAItlQ,EAAU,KACV+jT,EAAY,MACZxne,EAAKjxD,KAAKu0B,GACVmkgB,EAASzne,EAAK,EACd0ne,EAAY1ne,EAAK,EACjBm5Y,EAAW,EAALn5Y,EACNqoI,EAAW,IAAMroI,EACjBm8d,EAAWn8d,EAAK,IAChB5wD,EAAML,KAAKK,IACX00G,EAAO/0G,KAAK+0G,KACZt4E,EAAQz8B,KAAKy8B,MACbX,EAAM97B,KAAK87B,IACXnC,EAAO35B,KAAK25B,KACZ9E,EAAM70B,KAAK60B,IACXr0B,EAAMR,KAAKQ,IACXP,EAAMD,KAAKC,IACX87B,EAAM/7B,KAAK+7B,IACXi7B,EAAOh3D,KAAKg3D,MAAQ,SAAS9tD,GAC/B,OAAOA,EAAI,EAAI,EAAIA,EAAI,GAAS,EAAA,CAClC,EACIia,EAAOnjB,KAAKmjB,KACZ8iB,EAAMjmC,KAAKimC,IACf,SAAS8oB,EAAK7lD,GACL,OAAAA,EAAI,EAAI,EAAIA,KAAS+nD,EAAKjxD,KAAK+uD,KAAK7lD,GAE7C,SAASyrB,EAAKzrB,GACL,OAAAA,EAAI,EAAIwvhB,EAASxvhB,MAAUwvhB,EAAS14hB,KAAK20B,KAAKzrB,GAEvD,SAAS0vhB,EAAS1vhB,GAChB,OAAQA,EAAI6yB,EAAI7yB,EAAI,IAAMA,EAE5B,SAASy8F,KAEA,SAAAkzb,EAAe1gB,EAAUzyb,GAC5Byyb,GAAY2gB,EAAmBx+gB,eAAe69f,EAAS30gB,OACzDs1hB,EAAmB3gB,EAAS30gB,MAAM20gB,EAAUzyb,GAGhD,IAAIqzc,EAAmB,CACrBC,QAAS,SAAShgB,EAAStzb,GACVmzc,EAAA7f,EAAQb,SAAUzyb,EACnC,EACAuzc,kBAAmB,SAASjgB,EAAStzb,GAE5B,IADP,IAAIu0b,EAAWjB,EAAQiB,SAAU58gB,GAAI,EAAI2H,EAAIi1gB,EAASn8gB,SAC7CT,EAAI2H,GAAG6zhB,EAAe5e,EAAS58gB,GAAG86gB,SAAUzyb,KAGrDozc,EAAqB,CACvBI,OAAQ,SAASlgB,EAAStzb,GACxBA,EAAOyzc,QACT,EACAC,MAAO,SAASpgB,EAAStzb,GACvBszb,EAAUA,EAAQ3se,YACXq5C,EAAA9zD,MAAMonf,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAC/C,EACAqgB,WAAY,SAASrgB,EAAStzb,GAE5B,IADA,IAAI4zc,EAAetgB,EAAQ3se,YAAahvC,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,SACxDT,EAAI2H,GAAag0gB,EAAAsgB,EAAaj8hB,GAAIqoF,EAAO9zD,MAAMonf,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAC1F,EACAv8R,WAAY,SAASu8R,EAAStzb,GACjB6zc,EAAAvgB,EAAQ3se,YAAaq5C,EAAQ,EAC1C,EACA00b,gBAAiB,SAASpB,EAAStzb,GAE1B,IADP,IAAI4zc,EAAetgB,EAAQ3se,YAAahvC,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,SACxDT,EAAI2H,GAAGu0hB,EAAWD,EAAaj8hB,GAAIqoF,EAAQ,EACtD,EACA20b,QAAS,SAASrB,EAAStzb,GACX8zc,EAAAxgB,EAAQ3se,YAAaq5C,EACrC,EACA40b,aAAc,SAAStB,EAAStzb,GAE9B,IADA,IAAI4zc,EAAetgB,EAAQ3se,YAAahvC,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,SACxDT,EAAI2H,KAAiBs0hB,EAAaj8hB,GAAIqoF,EACjD,EACA+zc,mBAAoB,SAASzgB,EAAStzb,GAEpC,IADA,IAAIsyb,EAAagB,EAAQhB,WAAY36gB,GAAI,EAAI2H,EAAIgzgB,EAAWl6gB,SACnDT,EAAI2H,KAAkBgzgB,EAAW36gB,GAAIqoF,KAGzC,SAAA6zc,EAAWD,EAAc5zc,EAAQt4C,GACxC,IAA8Cssf,EAA1Cr8hB,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,OAASsvC,EAEtC,IADAs4C,EAAOi0c,cACEt8hB,EAAI2H,GAAgB00hB,EAAAJ,EAAaj8hB,GAAIqoF,EAAO9zD,MAAM8ngB,EAAW,GAAIA,EAAW,GAAIA,EAAW,IACpGh0c,EAAOk0c,UAEA,SAAAJ,EAAcF,EAAc5zc,GAC/B,IAAAroF,GAAQ,EAAA2H,EAAIs0hB,EAAax7hB,OAEtB,IADP4nF,EAAOm0c,iBACEx8hB,EAAI2H,GAAGu0hB,EAAWD,EAAaj8hB,GAAIqoF,EAAQ,GACpDA,EAAOo0c,aAEA,SAAAC,EAAU/gB,EAAStzb,GACtBszb,GAAW+f,EAAiBz+gB,eAAe0+f,EAAQx1gB,MACrDu1hB,EAAiB/f,EAAQx1gB,MAAMw1gB,EAAStzb,GAExCmzc,EAAe7f,EAAStzb,GAG5B,IACuBs0c,EAAUC,EAAOC,EAASC,EAASC,EADtDC,EAAc/B,IACdgC,EAAUhC,IACViC,EAAa,CACf3ogB,MAAO+zE,EACPg0b,UAAWh0b,EACXi0b,QAASj0b,EACTk0b,aAAc,WACZQ,EAAY7mT,QACZ+mT,EAAWZ,UAAYa,EACvBD,EAAWX,QAAUa,CACvB,EACAX,WAAY,WACV,IAAIY,GAAYL,EAChBC,EAAQ18gB,IAAI88gB,EAAW,EAAItwF,EAAMswF,EAAWA,GAC5Cl2hB,KAAKm1hB,UAAYn1hB,KAAKo1hB,QAAUp1hB,KAAKotB,MAAQ+zE,CAC/C,EACAwzb,OAAQ,WACNmB,EAAQ18gB,IAAIwsb,KAGhB,SAASowF,IACPD,EAAW3ogB,MAAQ+ogB,EAErB,SAASF,IACPG,EAAUZ,EAAUC,GAEb,SAAAU,EAAeE,EAAQ95I,GAC9Bw5I,EAAW3ogB,MAAQgpgB,EACnBZ,EAAWa,EAAQZ,EAAQl5I,EAEjBm5I,EADVW,GAAUzN,EACQ+M,EAAUr+f,EAAIilX,GADZA,GAAOqsI,GACiB,EAAIuL,GAAYyB,EAAUr+f,EAAIglX,GAEnE,SAAA65I,EAAUC,EAAQ95I,GAGzB,IAAI+5I,GAFJD,GAAUzN,GAEa8M,EAASa,EAAWD,GAAW,EAAI,GAAQ,EAAAE,EAAWD,EAAWD,EAASG,EAASn/f,EAD1GilX,GADoBA,GAAOqsI,GACf,EAAIuL,GACoGuC,EAASn/f,EAAIglX,GAAMz6X,EAAI8zgB,EAAUc,EAAQnlgB,EAAIokgB,EAAUc,EAAS30gB,EAAIwV,EAAIk/f,GAAWn4gB,EAAIyD,EAAIy0gB,EAAWh/f,EAAIi/f,GAC9NX,EAAYz8gB,IAAI6e,EAAM5Z,EAAGkT,IACfmkgB,EAAAW,EAAQV,EAAUc,EAAQb,EAAUc,EAOhD,SAASC,EAAUC,GACjB,MAAO,CAAC3+f,EAAM2+f,EAAW,GAAIA,EAAW,IAAKzmgB,EAAKymgB,EAAW,KAE/D,SAASx6Z,EAAUy6Z,GACb,IAAAR,EAASQ,EAAW,GAAIt6I,EAAMs6I,EAAW,GAAIJ,EAASn/f,EAAIilX,GACvD,MAAA,CAACk6I,EAASn/f,EAAI++f,GAASI,EAASl/f,EAAI8+f,GAAS9+f,EAAIglX,IAEjD,SAAAu6I,EAAaryhB,EAAG9F,GACvB,OAAO8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAErC,SAAAo4hB,EAAetyhB,EAAG9F,GACzB,MAAO,CAAC8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAI8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAI8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,IAE9E,SAAAq4hB,EAAoBvyhB,EAAG9F,GAC9B8F,EAAE,IAAM9F,EAAE,GAAI8F,EAAE,IAAM9F,EAAE,GAAI8F,EAAE,IAAM9F,EAAE,GAE/B,SAAAs4hB,EAAeh5F,EAAQn8a,GAC9B,MAAO,CAACm8a,EAAO,GAAKn8a,EAAGm8a,EAAO,GAAKn8a,EAAGm8a,EAAO,GAAKn8a,GAEpD,SAASo1gB,GAA0B97hB,GACjC,IAAIuoB,EAAIhF,EAAKvjB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAChDA,EAAA,IAAMuoB,EAAGvoB,EAAE,IAAMuoB,EAAGvoB,EAAE,IAAMuoB,EAE5B,IAAAwzgB,GAAWC,GAAMC,GAASC,GAAMC,GAASC,GAAYC,GAASjngB,GAAwBsma,GAAQzqb,GAsI9FqrhB,GAAIC,GAAIC,GAAI5yD,GAAI6yD,GAAIC,GAAIvuC,GAAIwuC,GAAIC,GAAIC,GAAIC,GAAIC,GAAYC,GAASpmgB,GAAIE,GAAI0iE,GAtIPyjc,GAAWvE,IAC7EwE,GAAe,CACjBlrgB,MAAOmrgB,GACPpD,UAAWqD,GACXpD,QAASqD,GACTpD,aAAc,WACZiD,GAAalrgB,MAAQsrgB,GACrBJ,GAAanD,UAAYwD,GACzBL,GAAalD,QAAUwD,GACvBP,GAASrpT,QACT+mT,EAAWV,cACb,EACAC,WAAY,WACVS,EAAWT,aACXgD,GAAalrgB,MAAQmrgB,GACrBD,GAAanD,UAAYqD,GACzBF,GAAalD,QAAUqD,GACnB5C,EAAc,GAAesB,KAAEE,GAAU,KAAMD,KAASE,GAAO,KAC1De,GAAWnoT,EAAgBonT,GAAA,GAC3Be,WAA4BjB,IAAA,IACrC/qhB,GAAM,GAAK8qhB,GAAW9qhB,GAAM,GAAKgrhB,EACnC,EACA1C,OAAQ,WACNwC,KAAcE,GAAU,KAAMD,KAASE,GAAO,MAGzC,SAAAiB,GAAYlC,EAAQ95I,GAC3Bu6C,GAAOn9b,KAAK0S,GAAQ,CAAC8qhB,GAAYd,EAAQgB,GAAUhB,IAC/C95I,EAAM66I,KAAaA,GAAA76I,GACnBA,EAAM+6I,KAAaA,GAAA/6I,GAEhB,SAAAs8I,GAAUxC,EAAQ95I,GACzB,IAAI9sY,EAAI2sH,EAAU,CAACi6Z,EAASzN,EAAUrsI,EAAMqsI,IAC5C,GAAIp4f,GAAI,CACN,IAAI40B,EAAS2xe,EAAevmgB,GAAI/gB,GAA6CqphB,EAAa/B,EAAzC,CAAC3xe,EAAO,IAAKA,EAAO,GAAI,GAA4CA,GACrH8xe,GAA0B4B,GAC1BA,EAAanC,EAAUmC,GACvB,IAAsGC,EAAlG5kb,EAAQkib,EAASkB,GAASyB,EAAQ7kb,EAAQ,EAAI,GAAQ,EAAA8kb,EAAUH,EAAW,GAAKhkW,EAAWkkW,EAAaE,EAAer9hB,EAAIs4G,GAAS,IACpI+kb,GAAgBF,EAAQzB,GAAU0B,GAAWA,EAAUD,EAAQ3C,IAC1D0C,EAAAD,EAAW,GAAKhkW,GACZwiW,KAAaA,GAAAyB,GACwBG,GAAgBF,EAAQzB,IAA/D0B,GAAWA,EAAU,KAAO,IAAM,MAAkDA,EAAUD,EAAQ3C,IACxG0C,GAACD,EAAW,GAAKhkW,GACbsiW,KAAaA,GAAA2B,IAEpBx8I,EAAM66I,KAAaA,GAAA76I,GACnBA,EAAM+6I,KAAaA,GAAA/6I,IAErB28I,EACE7C,EAASkB,GACP/qf,GAAM2qf,GAAWd,GAAU7pf,GAAM2qf,GAAWE,MAAoBA,GAAAhB,GAEhE7pf,GAAM6pf,EAAQgB,IAAW7qf,GAAM2qf,GAAWE,MAAsBF,GAAAd,GAGlEgB,IAAWF,IACTd,EAASc,KAAuBA,GAAAd,GAChCA,EAASgB,KAAmBA,GAAAhB,IAE5BA,EAASkB,GACP/qf,GAAM2qf,GAAWd,GAAU7pf,GAAM2qf,GAAWE,MAAoBA,GAAAhB,GAEhE7pf,GAAM6pf,EAAQgB,IAAW7qf,GAAM2qf,GAAWE,MAAsBF,GAAAd,EAG1E,MAEAv/F,GAAOn9b,KAAK0S,GAAQ,CAAC8qhB,GAAYd,EAAQgB,GAAUhB,IAEjD95I,EAAM66I,KAAaA,GAAA76I,GACnBA,EAAM+6I,KAAaA,GAAA/6I,GACvB/rX,GAAK/gB,EAAG8nhB,GAAUlB,EAEpB,SAASmC,KACPF,GAAalrgB,MAAQyrgB,GAEvB,SAASJ,KACPpshB,GAAM,GAAK8qhB,GAAW9qhB,GAAM,GAAKgrhB,GACjCiB,GAAalrgB,MAAQmrgB,GAChB/ngB,GAAA,KAEE,SAAAkogB,GAAgBrC,EAAQ95I,GAC/B,GAAI/rX,GAAI,CACN,IAAI2jF,EAAQkib,EAASkB,GACZc,GAAAj/gB,IAAIvd,EAAIs4G,GAAS,IAAMA,GAASA,EAAQ,EAAI,KAAM,KAAQA,EAAK,MAExEqjb,GAAanB,EAAQoB,GAAUl7I,EAEtBw5I,EAAA3ogB,MAAMipgB,EAAQ95I,GACzBs8I,GAAUxC,EAAQ95I,GAEpB,SAASo8I,KACP5C,EAAWZ,YAEb,SAASyD,KACPF,GAAgBlB,GAAYC,IAC5B1B,EAAWX,UACPv5hB,EAAIw8hB,IAAYnoT,IAASinT,KAAcE,GAAU,MACrDhrhB,GAAM,GAAK8qhB,GAAW9qhB,GAAM,GAAKgrhB,GAC5B7mgB,GAAA,KAEE,SAAAgc,GAAM2sf,EAAUC,GACvB,OAAQA,GAAYD,GAAY,EAAIC,EAAW,IAAMA,EAE9C,SAAAC,GAAa50hB,EAAG9F,GACvB,OAAO8F,EAAE,GAAK9F,EAAE,GAET,SAAA26hB,GAAc5G,EAAQhuhB,GACtB,OAAAguhB,EAAO,IAAMA,EAAO,GAAKA,EAAO,IAAMhuhB,GAAKA,GAAKguhB,EAAO,GAAKhuhB,EAAIguhB,EAAO,IAAMA,EAAO,GAAKhuhB,EA2BlG,IAAI60hB,GAAiB,CACnB5E,OAAQxzb,EACR/zE,MAAOosgB,GACPrE,UAAWsE,GACXrE,QAASsE,GACTrE,aAAc,WACZkE,GAAepE,UAAYwE,GAC3BJ,GAAenE,QAAUwE,EAC3B,EACAtE,WAAY,WACViE,GAAepE,UAAYsE,GAC3BF,GAAenE,QAAUsE,KAGpB,SAAAF,GAAcnD,EAAQ95I,GAC7B85I,GAAUzN,EACN,IAAA6N,EAASn/f,EADOilX,GAAOqsI,GAEJiR,GAAApD,EAASn/f,EAAI++f,GAASI,EAASl/f,EAAI8+f,GAAS9+f,EAAIglX,IAEhE,SAAAs9I,GAAuBn1hB,EAAGC,EAAGif,KAClC8zgB,GACFE,KAAOlzhB,EAAIkzhB,IAAMF,GACjB1yD,KAAOrge,EAAIqge,IAAM0yD,GACjBG,KAAOj0gB,EAAIi0gB,IAAMH,GAEnB,SAAS+B,KACPF,GAAensgB,MAAQ0sgB,GAEhB,SAAAA,GAAuBzD,EAAQ95I,GACtC85I,GAAUzN,EACN,IAAA6N,EAASn/f,EADOilX,GAAOqsI,GAEtB52f,GAAAykgB,EAASn/f,EAAI++f,GACbnkgB,GAAAukgB,EAASl/f,EAAI8+f,GAClBzhc,GAAKr9D,EAAIglX,GACTg9I,GAAensgB,MAAQ2sgB,GACAF,GAAA7ngB,GAAIE,GAAI0iE,IAExB,SAAAmlc,GAAkB1D,EAAQ95I,GACjC85I,GAAUzN,EACN,IAAA6N,EAASn/f,EADOilX,GAAOqsI,GACJlkhB,EAAI+xhB,EAASn/f,EAAI++f,GAAS1xhB,EAAI8xhB,EAASl/f,EAAI8+f,GAASzygB,EAAI2T,EAAIglX,GAAM/vX,EAAIyL,EAAMtZ,GAAM6N,EAAI0F,GAAKtO,EAAIgxE,GAAKjwF,GAAK6nB,GAAKA,EAAIooE,GAAKlwF,EAAIstB,GAAKpO,GAAK4I,GAAKA,EAAIwF,GAAKrtB,EAAIutB,GAAKxtB,GAAK8nB,GAAIwF,GAAKttB,EAAIwtB,GAAKvtB,EAAIiwF,GAAKhxE,GAC7M+zgB,IAAAnrgB,EACAsrgB,IAAAtrgB,GAAKwF,IAAMA,GAAKttB,IAChB6kf,IAAA/8d,GAAK0F,IAAMA,GAAKvtB,IAChBozhB,IAAAvrgB,GAAKooE,IAAMA,GAAKhxE,IACCi2gB,GAAA7ngB,GAAIE,GAAI0iE,IAEjC,SAAS8kc,KACPH,GAAensgB,MAAQosgB,GAEzB,SAASG,KACPJ,GAAensgB,MAAQ4sgB,GAEzB,SAASJ,KACPK,GAAkB9B,GAAYC,IAC9BmB,GAAensgB,MAAQosgB,GAEhB,SAAAQ,GAAuB3D,EAAQ95I,GACtC47I,GAAa9B,EAAQ+B,GAAU77I,EAC/B85I,GAAUzN,EAAUrsI,GAAOqsI,EAC3B2Q,GAAensgB,MAAQ6sgB,GACnB,IAAAxD,EAASn/f,EAAIilX,GACZvqX,GAAAykgB,EAASn/f,EAAI++f,GACbnkgB,GAAAukgB,EAASl/f,EAAI8+f,GAClBzhc,GAAKr9D,EAAIglX,GACcs9I,GAAA7ngB,GAAIE,GAAI0iE,IAExB,SAAAqlc,GAAkB5D,EAAQ95I,GACjC85I,GAAUzN,EACN,IAAA6N,EAASn/f,EADOilX,GAAOqsI,GACJlkhB,EAAI+xhB,EAASn/f,EAAI++f,GAAS1xhB,EAAI8xhB,EAASl/f,EAAI8+f,GAASzygB,EAAI2T,EAAIglX,GAAM5mX,EAAKzD,GAAKtO,EAAIgxE,GAAKjwF,EAAGixB,EAAKg/D,GAAKlwF,EAAIstB,GAAKpO,EAAG0sa,EAAKt+Z,GAAKrtB,EAAIutB,GAAKxtB,EAAG3J,EAAI4jB,EAAKgX,EAAKA,EAAKC,EAAKA,EAAK06Z,EAAKA,GAAK9ja,EAAI2D,EAAKp1B,GAAIsjB,EAAItjB,IAAMyxB,EAAIzxB,EAC7Ni9hB,IAAM35gB,EAAIsX,EACVsigB,IAAM55gB,EAAIuX,EACVsigB,IAAM75gB,EAAIiya,EACJqnG,IAAAnrgB,EACAsrgB,IAAAtrgB,GAAKwF,IAAMA,GAAKttB,IAChB6kf,IAAA/8d,GAAK0F,IAAMA,GAAKvtB,IAChBozhB,IAAAvrgB,GAAKooE,IAAMA,GAAKhxE,IACCi2gB,GAAA7ngB,GAAIE,GAAI0iE,IAcjC,SAASwmT,GAAS12Y,GAChB,OAAO,WACE,OAAAA,CACT,EAEO,SAAAw1hB,GAAQz1hB,EAAG9F,GACT,SAAAw7hB,EAASz1hB,EAAGC,GACZ,OAAAD,EAAID,EAAEC,EAAGC,GAAIhG,EAAE+F,EAAE,GAAIA,EAAE,IAKzB,OAHHD,EAAE+uB,QAAU70B,EAAE60B,WAAiBA,OAAS,SAAS9uB,EAAGC,GACtD,OAAOD,EAAI/F,EAAE60B,OAAO9uB,EAAGC,KAASF,EAAE+uB,OAAO9uB,EAAE,GAAIA,EAAE,GACnD,GACOy1hB,EAEA,SAAAC,GAAiB/D,EAAQ95I,GAChC,MAAO,CAAC1gZ,EAAIw6hB,GAAU5pe,EAAK4pe,EAAS76hB,KAAKk7B,OAAO2/f,EAASzwF,GAAOA,EAAMywF,EAAQ95I,GAGvE,SAAA89I,GAAcC,EAAaC,EAAUC,GACpC,OAAAF,GAAe10F,GAAO20F,GAAYC,EAAaN,GAAQO,GAAeH,GAAcI,GAAiBH,EAAUC,IAAeC,GAAeH,GAAeC,GAAYC,EAAaE,GAAiBH,EAAUC,GAAcJ,GAExO,SAASO,GAAsBL,GACtB,OAAA,SAASjE,EAAQ95I,GACtB,MAA8B,EAAvB85I,GAAUiE,GAAuB7te,EAAK4pe,EAASzwF,EAAMywF,GAAU5pe,EAAK4pe,EAASzwF,EAAMywF,EAAQ95I,EACpG,EAEF,SAASk+I,GAAeH,GAClB,IAAAM,EAAYD,GAAsBL,GAE/B,OADGM,EAAApngB,OAASmngB,IAAuBL,GACnCM,EAEA,SAAAF,GAAiBH,EAAUC,GAClC,IAAIK,EAAcvjgB,EAAIijgB,GAAWO,EAAcvjgB,EAAIgjgB,GAAWQ,EAAgBzjgB,EAAIkjgB,GAAaQ,EAAgBzjgB,EAAIijgB,GAC1G,SAAAI,EAAUvE,EAAQ95I,GACrB,IAAAk6I,EAASn/f,EAAIilX,GAAM73Y,EAAI4yB,EAAI++f,GAAUI,EAAQ9xhB,EAAI4yB,EAAI8+f,GAAUI,EAAQ7ygB,EAAI2T,EAAIglX,GAAMz6X,EAAI8B,EAAIi3gB,EAAcn2hB,EAAIo2hB,EAC5G,MAAA,CACL7igB,EAAMtzB,EAAIo2hB,EAAgBj5gB,EAAIk5gB,EAAet2hB,EAAIm2hB,EAAcj3gB,EAAIk3gB,GACnE3qgB,EAAKrO,EAAIi5gB,EAAgBp2hB,EAAIq2hB,IAU1B,OAPGJ,EAAApngB,OAAS,SAAS6igB,EAAQ95I,GAC9B,IAAAk6I,EAASn/f,EAAIilX,GAAM73Y,EAAI4yB,EAAI++f,GAAUI,EAAQ9xhB,EAAI4yB,EAAI8+f,GAAUI,EAAQ7ygB,EAAI2T,EAAIglX,GAAMz6X,EAAI8B,EAAIm3gB,EAAgBp2hB,EAAIq2hB,EAC9G,MAAA,CACL/igB,EAAMtzB,EAAIo2hB,EAAgBn3gB,EAAIo3gB,EAAet2hB,EAAIm2hB,EAAc/4gB,EAAIg5gB,GACnE3qgB,EAAKrO,EAAI+4gB,EAAcn2hB,EAAIo2hB,GAE/B,EACOF,EAET,SAAS73V,GAASttJ,GAEhB,SAAS4/L,EAAQy/S,GAEf,OADeA,EAAAr/e,EAAOq/e,EAAa,GAAKlM,EAAUkM,EAAa,GAAKlM,IAChD,IAAM9zV,EAAUggW,EAAa,IAAMhgW,EAAUggW,EAM5D,OATPr/e,EAAS4kf,GAAc5kf,EAAO,GAAKmze,EAAUnze,EAAO,GAAKmze,EAAUnze,EAAOn8C,OAAS,EAAIm8C,EAAO,GAAKmze,EAAW,GAKtGvzS,EAAA7hN,OAAS,SAASshgB,GAExB,OADeA,EAAAr/e,EAAOjiB,OAAOshgB,EAAa,GAAKlM,EAAUkM,EAAa,GAAKlM,IACvD,IAAM9zV,EAAUggW,EAAa,IAAMhgW,EAAUggW,CACnE,EACOz/S,EAET,SAAS4lT,GAAa/5c,EAAQx+B,EAAQyxD,EAAO7Z,EAAW9zD,EAAKC,GAC3D,GAAK0tE,EAAL,CACI,IAAA+mb,EAAY5jgB,EAAIorB,GAASy4e,EAAY5jgB,EAAImrB,GAAS7gC,EAAOy4E,EAAY6Z,EAC9D,MAAP3tE,GACFA,EAAMkc,EAAS43C,EAAYsrW,EAC3Bn/Z,EAAMic,EAAS7gC,EAAO,IAEhB2kB,EAAA6tL,GAAa6mU,EAAW10f,GACxBC,EAAA4tL,GAAa6mU,EAAWz0f,IAC1B6zD,EAAY,EAAI9zD,EAAMC,EAAMD,EAAMC,QAAY6zD,EAAYsrW,IAEvD,IAAA,IAAAx4a,EAAO/N,EAAImnB,EAAK8zD,EAAY,EAAIj7E,EAAIonB,EAAMpnB,EAAIonB,EAAKpnB,GAAKwC,EAC/DuL,EAAQupgB,EAAU,CAACuE,GAAYC,EAAY7jgB,EAAIjY,IAAK87gB,EAAY5jgB,EAAIlY,KACpE6hE,EAAO9zD,MAAMA,EAAM,GAAIA,EAAM,GAZnB,EAeL,SAAAinM,GAAa6mU,EAAW9tgB,IAC/BA,EAAQgvG,EAAUhvG,IAAc,IAAM8tgB,EACtChE,GAA0B9pgB,GAC1B,IAAIs1B,EAAS6H,GAAMn9B,EAAM,IAChB,SAACA,EAAM,GAAK,GAAKs1B,EAASA,GAAUkjZ,EAAM11N,GAAW01N,EA4BhE,SAASw1F,KACH,IAAYjtf,EAAZ6/C,EAAQ,GACL,MAAA,CACL5gE,MAAO,SAAS1oB,EAAGC,EAAG5J,GACpBozC,EAAKx0C,KAAK,CAAC+K,EAAGC,EAAG5J,GACnB,EACAo6hB,UAAW,WACHnnc,EAAAr0F,KAAKw0C,EAAO,GACpB,EACAinf,QAASj0b,EACTk6b,OAAQ,WACFrtc,EAAM10F,OAAS,GAAG00F,EAAMr0F,KAAKq0F,EAAMrkD,MAAM/kC,OAAOopF,EAAMjtC,SAC5D,EACAlyC,OAAQ,WACN,IAAIA,EAASm/E,EAGN,OAFPA,EAAQ,GACD7/C,EAAA,KACAt/B,IAIJ,SAAAyshB,GAAW72hB,EAAG9F,GACrB,OAAO9C,EAAI4I,EAAE,GAAK9F,EAAE,IAAMuxO,GAAWr0O,EAAI4I,EAAE,GAAK9F,EAAE,IAAMuxO,EAE1D,SAASqrT,GAAanugB,EAAO0Z,EAAQ4sM,EAAO0pI,GAC1Cp9W,KAAK0E,EAAI0oB,EACTptB,KAAK4jB,EAAIkjB,EACT9mC,KAAKoW,EAAIs9N,EACT1zO,KAAKlF,EAAIsiX,EACTp9W,KAAKqe,GAAI,EACJre,KAAAQ,EAAIR,KAAKyP,EAAI,KAEpB,SAAS+rhB,GAAWvve,EAAUwve,EAAsBC,EAAaC,EAAcz6c,GAC7E,IAA8BroF,EAAG2H,EAA7ByuB,EAAU,GAAI2sgB,EAAQ,GAkBtB,GAjBK3ve,EAAAv5C,SAAQ,SAASw5C,GACxB,MAAK5mC,EAAK4mC,EAAQ5yD,OAAS,IAAM,GAAjC,CACI,IAAAgsB,EAAwC5gB,EAApCivL,EAAMznI,EAAQ,GAAIvsC,EAAKusC,EAAQ5mC,GACnC,GAAAg2gB,GAAW3nW,EAAKh0K,GAAK,CACvB,IAAKg0K,EAAI,KAAOh0K,EAAG,GAAI,CAErB,IADAuhE,EAAOi0c,YACFt8hB,EAAI,EAAGA,EAAIysB,IAAMzsB,EAAUqoF,EAAA9zD,OAAOumK,EAAMznI,EAAQrzD,IAAI,GAAI86L,EAAI,IAEjE,YADAzyG,EAAOk0c,UAGNz1gB,EAAA,IAAM,KAEHsP,EAAAt1B,KAAK+K,EAAI,IAAI62hB,GAAa5nW,EAAKznI,EAAS,MAAM,IAChD0ve,EAAAjiiB,KAAK+K,EAAE0R,EAAI,IAAImlhB,GAAa5nW,EAAK,KAAMjvL,GAAG,IACxCuqB,EAAAt1B,KAAK+K,EAAI,IAAI62hB,GAAa57gB,EAAIusC,EAAS,MAAM,IAC/C0ve,EAAAjiiB,KAAK+K,EAAE0R,EAAI,IAAImlhB,GAAa57gB,EAAI,KAAMjb,GAAG,GAdX,CAcgB,IAEjDuqB,EAAQ31B,OAAT,CAIC,IAHLsiiB,EAAMp9gB,KAAKi9gB,GACX1jf,GAAK9oB,GACL8oB,GAAK6jf,GACA/iiB,EAAI,EAAG2H,EAAIo7hB,EAAMtiiB,OAAQT,EAAI2H,IAAK3H,EACrC+iiB,EAAM/iiB,GAAGiC,EAAI4giB,GAAeA,EAG9B,IADA,IAAwB50f,EAAQ1Z,EAA5BhzB,EAAQ60B,EAAQ,KACV,CAER,IADI,IAAAm+J,EAAUhzL,EAAOyhiB,GAAY,EAC1BzuW,EAAQ/uK,OAAQ+uK,EAAUA,EAAQ5sL,KAAOpG,EAAO,OACvD0sC,EAASsmJ,EAAQxpK,EACjBs9D,EAAOi0c,YACJ,EAAA,CAED,GADQ/nW,EAAA/uK,EAAI+uK,EAAQh3K,EAAEiI,GAAI,EACtB+uK,EAAQtyL,EAAG,CACb,GAAI+giB,EACF,IAAKhjiB,EAAI,EAAG2H,EAAIsmC,EAAOxtC,OAAQT,EAAI2H,IAAK3H,IAAUu0B,OAAOA,EAAQ0Z,EAAOjuC,IAAI,GAAIu0B,EAAM,SAEtFuugB,EAAavuW,EAAQ1oL,EAAG0oL,EAAQ5sL,EAAEkE,EAAG,EAAGw8E,GAE1CksG,EAAUA,EAAQ5sL,CAAA,KACb,CACL,GAAIq7hB,EAEF,IADA/0f,EAASsmJ,EAAQ39K,EAAEmU,EACd/qB,EAAIiuC,EAAOxtC,OAAS,EAAGT,GAAK,IAAKA,EAAGqoF,EAAO9zD,OAAOA,EAAQ0Z,EAAOjuC,IAAI,GAAIu0B,EAAM,SAEpFuugB,EAAavuW,EAAQ1oL,EAAG0oL,EAAQ39K,EAAE/K,KAAOw8E,GAE3CksG,EAAUA,EAAQ39K,EAGpBq3B,GADAsmJ,EAAUA,EAAQh3K,GACDwN,EACjBi4gB,GAAaA,CAAA,QACLzuW,EAAQ/uK,GAClB6iE,EAAOk0c,UAnCY,EAsCvB,SAASr9e,GAAKx4C,GACR,GAAEiB,EAAIjB,EAAMjG,OAAZ,CAEG,IADP,IAAIkH,EAAwB7B,EAArB9F,EAAI,EAAG4L,EAAIlF,EAAM,KACf1G,EAAI2H,GACTiE,EAAAjE,EAAI7B,EAAIY,EAAM1G,GAChB8F,EAAE8Q,EAAIhL,EACFA,EAAA9F,EAEJ8F,EAAAjE,EAAI7B,EAAIY,EAAM,GAChBZ,EAAE8Q,EAAIhL,CARmB,EAtL3B21hB,GAAiB5mgB,OAAS4mgB,GAgM1B,IAAIr8gB,GAAM+1gB,IACV,SAASgI,GAAU1ugB,GACjB,OAAIvxB,EAAIuxB,EAAM,KAAOq/B,EACZr/B,EAAM,GAENolC,EAAKplC,EAAM,MAAQvxB,EAAIuxB,EAAM,IAAMq/B,GAAMm5Y,EAAMn5Y,GAEjD,SAAAsve,GAAgBn0f,EAASxa,GAC5B,IAAAipgB,EAASyF,GAAU1ugB,GAAQmvX,EAAMnvX,EAAM,GAAIspgB,EAASn/f,EAAIglX,GAAMn3V,EAAS,CAAC7tB,EAAI8+f,IAAU/+f,EAAI++f,GAAS,GAAI2F,EAAS,EAAGljT,EAAU,EACjI/6N,GAAIixN,QACW,IAAX0nT,EAAcn6I,EAAM23I,EAAShkT,GACb,IAAXwmT,IAAqBn6I,GAAC23I,EAAShkT,GAC/B,IAAA,IAAAr3O,EAAI,EAAG2H,EAAIonC,EAAQtuC,OAAQT,EAAI2H,IAAK3H,EAC3C,GAAMkC,GAAKm2Y,EAAOtpW,EAAQ/uC,IAAIS,OAE9B,IADI,IAAA43Y,EAAMn2Y,EAAGkhiB,EAAS/qJ,EAAKn2Y,EAAI,GAAIo+hB,EAAW2C,GAAUG,GAASC,EAAQD,EAAO,GAAK,EAAI9H,EAAWgI,EAAW5kgB,EAAI2kgB,GAAQE,EAAW9kgB,EAAI4kgB,GACjI36hB,EAAI,EAAGA,EAAIxG,IAAKwG,EAAG43hB,EAAWC,EAAU+C,EAAWE,EAASD,EAAWE,EAASL,EAASM,EAAQ,CACxG,IAAIA,EAASrrJ,EAAK3vY,GAAI63hB,EAAW0C,GAAUS,GAASC,EAAQD,EAAO,GAAK,EAAIpI,EAAWkI,EAAU9kgB,EAAIilgB,GAAQF,EAAUhlgB,EAAIklgB,GAAQrob,EAAQilb,EAAWD,EAAUH,EAAQ7kb,GAAS,EAAI,GAAI,EAAIsob,EAAWzD,EAAQ7kb,EAAO+kb,EAAeuD,EAAWhwe,EAAI3qC,EAAIq6gB,EAAWE,EAGpQ,GAFAt+gB,GAAI3E,IAAI6e,EAAMnW,EAAIk3gB,EAAQzhgB,EAAIklgB,GAAWL,EAAWE,EAAUx6gB,EAAIwV,EAAImlgB,KAC5DT,GAAA9C,EAAe/kb,EAAQ6kb,EAAQpzF,EAAMzxV,EAC3C+kb,EAAeC,GAAY9C,EAAS+C,GAAY/C,EAAQ,CAC1D,IAAIzqf,EAAMmrf,EAAe36Z,EAAU6/Z,GAAS7/Z,EAAUmga,IACtDrF,GAA0Btrf,GACtB,IAAA8wf,EAAe3F,EAAe3xe,EAAQxZ,GAC1Csrf,GAA0BwF,GACtB,IAAAC,GAAUzD,EAAe/kb,GAAS,KAAS,GAAKhkF,EAAKusgB,EAAa,KAClEngJ,EAAMogJ,GAAUpgJ,IAAQogJ,IAAW/wf,EAAI,IAAMA,EAAI,OACxCktM,GAAAogT,EAAe/kb,GAAS,EAAI,GAAI,IAK3C,OAAA6nb,GAAqB,MAAAA,EAAS9rT,GAAWnyN,UAA4B,EAAV+6N,EAErE,SAASnwM,GAAKi0f,EAAcC,EAAWlB,EAAcvhiB,GACnD,OAAO,SAAS0iiB,GACd,IAAiHl1f,EAASqkB,EAAUilV,EAAhI/iW,EAAO0uf,EAAUC,GAAOC,EAAa3B,KAAc4B,EAAWH,EAAUE,GAAaE,GAAiB,EACtGrB,EAAQ,CACVxugB,QACA+ngB,YACAC,UACAC,aAAc,WACZuG,EAAMxugB,MAAQ8vgB,EACdtB,EAAMzG,UAAYgI,EAClBvB,EAAMxG,QAAUgI,EAChBnxe,EAAW,GACXrkB,EAAU,EACZ,EACA0tf,WAAY,WACVsG,EAAMxugB,MAAQA,EACdwugB,EAAMzG,UAAYA,EAClByG,EAAMxG,QAAUA,EACLnpe,EAAA4ne,EAAQ1zgB,MAAM8rC,GACrB,IAAAyve,EAAcK,GAAgBn0f,EAASxtC,GACvC6xD,EAAS3yD,QACN2jiB,IAAqBH,EAAAzH,eAAgB4H,GAAiB,GAC3DzB,GAAWvve,EAAUoxe,GAAqB3B,EAAaC,EAAcmB,IAC5DpB,IACJuB,IAAqBH,EAAAzH,eAAgB4H,GAAiB,GAC3DH,EAAK3H,YACQwG,EAAA,KAAM,KAAM,EAAGmB,GAC5BA,EAAK1H,WAEH6H,IAAgBH,EAAKxH,aAAc2H,GAAiB,GACxDhxe,EAAWrkB,EAAU,IACvB,EACA+sf,OAAQ,WACNmI,EAAKzH,eACLyH,EAAK3H,YACQwG,EAAA,KAAM,KAAM,EAAGmB,GAC5BA,EAAK1H,UACL0H,EAAKxH,eAGA,SAAAlogB,EAAMipgB,EAAQ95I,GACjBqgJ,EAAavG,EAAQ95I,IAAWugJ,EAAA1vgB,MAAMipgB,EAAQ95I,GAE3C,SAAA+gJ,EAAUjH,EAAQ95I,GACpBpuW,EAAA/gB,MAAMipgB,EAAQ95I,GAErB,SAAS44I,IACPyG,EAAMxugB,MAAQkwgB,EACdnvf,EAAKgnf,YAEP,SAASC,IACPwG,EAAMxugB,MAAQA,EACd+gB,EAAKinf,UAEE,SAAA8H,EAAU7G,EAAQ95I,GACzBrL,EAAKv3Y,KAAK,CAAC08hB,EAAQ95I,IACVygJ,EAAA5vgB,MAAMipgB,EAAQ95I,GAEzB,SAAS4gJ,IACPH,EAAS7H,YACTjkJ,EAAO,GAET,SAASksJ,IACGF,EAAAhsJ,EAAK,GAAG,GAAIA,EAAK,GAAG,IAC9B8rJ,EAAS5H,UACT,IAAkEv8hB,EAA4BkC,EAAGmxD,EAASqxe,EAAtG34c,EAAQo4c,EAASp4c,QAAS44c,EAAeT,EAAWluhB,SAAarO,EAAIg9hB,EAAalkiB,OAItF,GAHA43Y,EAAKvnW,MACL/B,EAAQjuC,KAAKu3Y,GACNA,EAAA,KACF1wY,EACL,GAAY,EAARokF,GAEF,IAAK7pF,GADLmxD,EAAUsxe,EAAa,IACNlkiB,OAAS,GAAK,EAAG,CAGhC,IAFK2jiB,IAAqBH,EAAAzH,eAAgB4H,GAAiB,GAC3DH,EAAK3H,YACAt8hB,EAAI,EAAGA,EAAIkC,IAAKlC,EAAQikiB,EAAA1vgB,OAAOmwgB,EAASrxe,EAAQrzD,IAAI,GAAI0kiB,EAAO,IACpET,EAAK1H,gBAIL50hB,EAAI,GAAa,EAARokF,GAAwB44c,EAAA7jiB,KAAK6jiB,EAAa7zf,MAAM/kC,OAAO44hB,EAAaz8e,UACjFkL,EAAStyD,KAAK6jiB,EAAazygB,OAAO0ygB,KAE7B,OAAA7B,CACT,EAEF,SAAS6B,GAAavxe,GACpB,OAAOA,EAAQ5yD,OAAS,EAEjB,SAAA+jiB,GAAoB54hB,EAAG9F,GAC9B,QAAS8F,EAAIA,EAAEC,GAAG,GAAK,EAAID,EAAE,GAAKyvhB,EAAShkT,EAAUgkT,EAASzvhB,EAAE,MAAQ9F,EAAIA,EAAE+F,GAAG,GAAK,EAAI/F,EAAE,GAAKu1hB,EAAShkT,EAAUgkT,EAASv1hB,EAAE,IAEjI,IAAI++hB,GAAmB/0f,IACrB,WACS,OAAA,CACT,IAKF,SAA8Bu4C,GAC5B,IAA8C0D,EAA1Cu0c,EAAW79hB,IAAK4giB,EAAQ5giB,IAAKqiiB,EAAQriiB,IAClC,MAAA,CACL65hB,UAAW,WACTj0c,EAAOi0c,YACCvwc,EAAA,CACV,EACAx3D,MAAO,SAASgsgB,EAAUoD,GACpB,IAAAoB,EAAQxE,EAAW,EAAI3se,GAAMA,EAAI0nD,EAAQt4G,EAAIu9hB,EAAWD,GACxDt9hB,EAAIs4G,EAAQ1nD,GAAMyjL,GACbhvJ,EAAA9zD,MAAM+rgB,EAAU+C,GAASA,EAAQM,GAAS,EAAI,EAAItI,GAAUA,GAC5Dhzc,EAAA9zD,MAAMuwgB,EAAOzB,GACpBh7c,EAAOk0c,UACPl0c,EAAOi0c,YACAj0c,EAAA9zD,MAAMwwgB,EAAO1B,GACbh7c,EAAA9zD,MAAMgsgB,EAAU8C,GACft3c,EAAA,GACC+4c,IAAUC,GAASzpb,GAAS1nD,IACjC5wD,EAAIs9hB,EAAWwE,GAASztT,OAAqBytT,EAAQztT,GACrDr0O,EAAIu9hB,EAAWwE,GAAS1tT,OAAqB0tT,EAAQ1tT,GACzDgsT,EAmBR,SAAmC/C,EAAU+C,EAAO9C,EAAUoD,GAC5D,IAAIJ,EAAUE,EAASuB,EAAoBtmgB,EAAI4hgB,EAAWC,GAC1D,OAAOv9hB,EAAIgiiB,GAAqB3tT,EAAU3/H,GAAMh5E,EAAI2kgB,IAAUI,EAAUhlgB,EAAIklgB,IAAUjlgB,EAAI6hgB,GAAY7hgB,EAAIilgB,IAAUJ,EAAW9kgB,EAAI4kgB,IAAU3kgB,EAAI4hgB,KAAciD,EAAWE,EAAUuB,KAAuB3B,EAAQM,GAAS,EArB9MsB,CAA0B3E,EAAU+C,EAAO9C,EAAUoD,GACtDt7c,EAAA9zD,MAAMuwgB,EAAOzB,GACpBh7c,EAAOk0c,UACPl0c,EAAOi0c,YACAj0c,EAAA9zD,MAAMwwgB,EAAO1B,GACZt3c,EAAA,GAEV1D,EAAO9zD,MAAM+rgB,EAAWC,EAAU8C,EAAQM,GAClCmB,EAAAC,CACV,EACAxI,QAAS,WACPl0c,EAAOk0c,UACP+D,EAAW+C,EAAQ5giB,GACrB,EACAspF,MAAO,WACL,OAAO,EAAIA,OAQjB,SAAqCrnF,EAAM2a,EAAIoiF,EAAWpZ,GACpD,IAAAq7T,EACJ,GAAY,MAARh/Y,EACFg/Y,EAAMjiT,EAAY45b,EACXhzc,EAAA9zD,OAAOq/B,EAAI8vV,GACXr7T,EAAA9zD,MAAM,EAAGmvX,GACTr7T,EAAA9zD,MAAMq/B,EAAI8vV,GACVr7T,EAAA9zD,MAAMq/B,EAAI,GACVy0B,EAAA9zD,MAAMq/B,GAAK8vV,GACXr7T,EAAA9zD,MAAM,GAAImvX,GACjBr7T,EAAO9zD,OAAOq/B,GAAK8vV,GACZr7T,EAAA9zD,OAAOq/B,EAAI,GACXy0B,EAAA9zD,OAAOq/B,EAAI8vV,QAAG,GACZ1gZ,EAAI0B,EAAK,GAAK2a,EAAG,IAAMg4N,EAAS,CACrC,IAAAmmT,EAAS94hB,EAAK,GAAK2a,EAAG,GAAKu0C,GAAMA,EACrC8vV,EAAMjiT,EAAY+7b,EAAS,EACpBn1c,EAAA9zD,OAAOipgB,EAAQ95I,GACfr7T,EAAA9zD,MAAM,EAAGmvX,GACTr7T,EAAA9zD,MAAMipgB,EAAQ95I,EAAG,MAExBr7T,EAAO9zD,MAAMlV,EAAG,GAAIA,EAAG,MAjEzB,EAAEu0C,GAAKyne,IAoET,SAAS6J,GAAWr7e,GAClB,IAAItC,EAAK9oB,EAAIorB,GAASyxD,EAAQ,EAAIy0a,EAAUoV,EAAc59e,EAAK,EAAG69e,EAAgBpiiB,EAAIukD,GAAM8vL,EAInF,SAAA/vJ,EAAQk2c,EAAQ95I,GACvB,OAAOjlX,EAAI++f,GAAU/+f,EAAIilX,GAAOn8V,EA8DzB,SAAAk3L,EAAU7yO,EAAG9F,EAAGu/hB,GACvB,IACI1zb,EAAK,CAAC,EAAG,EAAG,GAAIllF,EAAKyxgB,EADhB36Z,EAAU33H,GAAS23H,EAAUz9H,IACWw/hB,EAAOrH,EAAaxxgB,EAAIA,GAAK84gB,EAAO94gB,EAAG,GAAIowE,EAAcyoc,EAAOC,EAAOA,EACxH,IAAK1oc,EAAoB,OAACwoc,GAAOz5hB,EAC7B,IAAAg2E,EAAKr6B,EAAK+9e,EAAOzoc,EAAahb,GAAMt6B,EAAKg+e,EAAO1oc,EAAa2oc,EAAQtH,EAAevsb,EAAIllF,GAAKg5gB,EAAKrH,EAAezsb,EAAI/vB,GACzHu8c,EAAoBsH,EAD+GrH,EAAe3xgB,EAAIo1D,IAEtJ,IAAInpD,EAAI8sgB,EAAO7xgB,EAAIsqgB,EAAawH,EAAI/sgB,GAAImqc,EAAKo7D,EAAavlgB,EAAGA,GAAIyjB,EAAMxoB,EAAIA,EAAIkvc,GAAMo7D,EAAawH,EAAIA,GAAM,GAC5G,KAAItpf,EAAM,GAAV,CACI,IAAA31B,EAAIV,EAAKq2B,GAAMpgB,EAAIqigB,EAAe1lgB,IAAK/E,EAAInN,GAAKq8c,GAGhD,GAFJs7D,EAAoBpigB,EAAG0pgB,GACvB1pgB,EAAI+hgB,EAAU/hgB,IACTspgB,EAAY,OAAAtpgB,EACjB,IAAkEhR,EAA9Du1gB,EAAW10hB,EAAE,GAAI20hB,EAAWz6hB,EAAE,GAAIu9hB,EAAQz3hB,EAAE,GAAI+3hB,EAAQ79hB,EAAE,GAC1Dy6hB,EAAWD,IAAUv1gB,EAAIu1gB,EAAUA,EAAWC,EAAUA,EAAWx1gB,GACnE,IAAA26gB,EAASnF,EAAWD,EAAU1rZ,EAAQ5xI,EAAI0iiB,EAAS9xe,GAAMyjL,EAE7D,IADKziG,GAAS+uZ,EAAQN,MAAWA,EAAOA,EAAQM,EAAOA,EAAQ54gB,GADkB6pH,GAAS8wZ,EAASruT,EAEpFziG,EAAQyuZ,EAAQM,EAAQ,EAAI5ngB,EAAE,IAAM/4B,EAAI+4B,EAAE,GAAKukgB,GAAYjpT,EAAUgsT,EAAQM,GAASN,GAAStngB,EAAE,IAAMA,EAAE,IAAM4ngB,EAAQ+B,EAAS9xe,GAAM0se,GAAYvkgB,EAAE,IAAMA,EAAE,IAAMwkgB,GAAW,CAC1L,IAAItjW,EAAKmhW,EAAe1lgB,IAAK/E,EAAInN,GAAKq8c,GAEtC,OADAs7D,EAAoBlhW,EAAIwoW,GACjB,CAAC1pgB,EAAG+hgB,EAAU7gW,IAZV,EAeN77L,SAAAA,EAAKo8hB,EAAQ95I,GACpB,IAAIvlX,EAAIgngB,EAAct7e,EAAS+J,EAAK/J,EAAQ87e,EAAQ,EAK7CA,OAJHnI,GAAUr/f,EAAYwngB,GAAA,EACjBnI,EAASr/f,IAAYwngB,GAAA,GAC1BjiJ,GAAOvlX,EAAYwngB,GAAA,EACdjiJ,EAAMvlX,IAAYwngB,GAAA,GACpBA,EAET,OAAO71f,GAAKw3C,GA1FZ,SAAmBe,GACb,IAAA+6c,EAAQ5iV,EAAIvmJ,EAAI2re,EAAK75c,EAClB,MAAA,CACLuwc,UAAW,WACTsJ,EAAM3re,GAAK,EACH8xB,EAAA,CACV,EACAx3D,MAAO,SAASipgB,EAAQ95I,GACtB,IAA4BghJ,EAAxBhB,EAAS,CAAClG,EAAQ95I,GAAcl+X,EAAI8hE,EAAQk2c,EAAQ95I,GAAM5gZ,EAAIqiiB,EAAc3/gB,EAAI,EAAIpkB,EAAKo8hB,EAAQ95I,GAAOl+X,EAAIpkB,EAAKo8hB,GAAUA,EAAS,EAAI5pe,GAAMA,GAAK8vV,GAAO,EAO9J,IANK0/I,IAAWwC,EAAM3re,EAAKz0C,MAAW82gB,YAClC92gB,IAAMy0C,MACCyqe,EAAAjmT,EAAU2kT,EAAQM,KACZjB,GAAWW,EAAQsB,IAAWjC,GAAWiB,EAAQgB,MAC9DhB,EAAO,GAAK,GAEZl+gB,IAAMy0C,EACA8xB,EAAA,EACJvmE,GACF6iE,EAAOi0c,YACEoI,EAAAjmT,EAAUilT,EAAQN,GAC3B/6c,EAAO9zD,MAAMmwgB,EAAO,GAAIA,EAAO,MAEtBA,EAAAjmT,EAAU2kT,EAAQM,GAC3Br7c,EAAO9zD,MAAMmwgB,EAAO,GAAIA,EAAO,GAAI,GACnCr8c,EAAOk0c,WAEA6G,EAAAsB,OACA,GAAAU,GAAiBhC,GAAU+B,EAAc3/gB,EAAG,CACjD,IAAAgB,EACE1jB,EAAI09M,KAAQh6L,EAAIi4N,EAAUilT,EAAQN,GAAQ,MACtCr3c,EAAA,EACJo5c,GACF98c,EAAOi0c,YACAj0c,EAAA9zD,MAAM/N,EAAE,GAAG,GAAIA,EAAE,GAAG,IACpB6hE,EAAA9zD,MAAM/N,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC3B6hE,EAAOk0c,YAEAl0c,EAAA9zD,MAAM/N,EAAE,GAAG,GAAIA,EAAE,GAAG,IAC3B6hE,EAAOk0c,UACPl0c,EAAOi0c,YACAj0c,EAAA9zD,MAAM/N,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAI,MAIjChB,GAAO49gB,GAAWX,GAAWW,EAAQM,IACvCr7c,EAAO9zD,MAAMmvgB,EAAO,GAAIA,EAAO,IAExBN,EAAAM,EAAQzpe,EAAKz0C,EAAGg7L,EAAK19M,CAChC,EACAy5hB,QAAS,WACHtie,KAAWsie,UACN6G,EAAA,IACX,EAGAr3c,MAAO,WACE,OAAAA,GAAS65c,GAAO3re,IAAO,OA9DpC,SAAsBv1D,EAAM2a,EAAIoiF,EAAWpZ,GACzC+5c,GAAa/5c,EAAQx+B,EAAQyxD,EAAO7Z,EAAW/8F,EAAM2a,KA+FT8lhB,EAAc,CAAC,GAAIt7e,GAAU,EAAE+J,EAAI/J,EAAS+J,IAgDxF,IAAAiye,GAAU,IAAKC,IAAU,IAC7B,SAASC,GAAchgJ,EAAKC,EAAK7sW,EAAKC,GAC3B,SAAAkuC,EAAQz7E,EAAGC,GAClB,OAAOi6Y,GAAOl6Y,GAAKA,GAAKstC,GAAO6sW,GAAOl6Y,GAAKA,GAAKstC,EAElD,SAAS0pf,EAAap+hB,EAAM2a,EAAIoiF,EAAWpZ,GACrC,IAAAz8E,EAAI,EAAG21C,EAAK,EAChB,GAAY,MAAR78C,IAAiBkH,EAAIo6hB,EAAOthiB,EAAM+8F,OAAiBlgD,EAAKykf,EAAO3mhB,EAAIoiF,KAAewkc,EAAavhiB,EAAM2a,GAAM,EAAIoiF,EAAY,EAC7H,GACSpZ,EAAA9zD,MAAY,IAAN3oB,GAAiB,IAANA,EAAUm6Y,EAAM5sW,EAAKvtC,EAAI,EAAIwtC,EAAM4sW,UACrDp6Y,GAAKA,EAAI61F,EAAY,GAAK,KAAOlgD,QAEzC8mC,EAAO9zD,MAAMlV,EAAG,GAAIA,EAAG,IAGlB,SAAA2mhB,EAAOpvhB,EAAG6qF,GACjB,OAAOz+F,EAAI4T,EAAE,GAAKmvY,GAAO1uK,EAAU51I,EAAY,EAAI,EAAI,EAAIz+F,EAAI4T,EAAE,GAAKuiC,GAAOk+L,EAAU51I,EAAY,EAAI,EAAI,EAAIz+F,EAAI4T,EAAE,GAAKovY,GAAO3uK,EAAU51I,EAAY,EAAI,EAAI,EAAIA,EAAY,EAAI,EAAI,EAEhL,SAAAmhc,EAAqBh3hB,EAAG9F,GAC/B,OAAOmgiB,EAAar6hB,EAAEC,EAAG/F,EAAE+F,GAEpB,SAAAo6hB,EAAar6hB,EAAG9F,GACnB,IAAAo8Y,EAAK8jJ,EAAOp6hB,EAAG,GAAImT,EAAKinhB,EAAOlgiB,EAAG,GACtC,OAAOo8Y,IAAOnjY,EAAKmjY,EAAKnjY,EAAY,IAAPmjY,EAAWp8Y,EAAE,GAAK8F,EAAE,GAAY,IAAPs2Y,EAAWt2Y,EAAE,GAAK9F,EAAE,GAAY,IAAPo8Y,EAAWt2Y,EAAE,GAAK9F,EAAE,GAAKA,EAAE,GAAK8F,EAAE,GAEnH,OAAO,SAASy8E,GACd,IAAwDj1B,EAAUrkB,EAASspW,EAAM6tJ,EAAKC,EAAKC,EAAKntf,EAAIC,EAAImtf,EAAI72hB,EAAOu8E,EAA/Gu6c,EAAej+c,EAAQk+c,EAAehE,KACtCiE,EAAa,CACfjygB,QACA+ngB,UAyCF,WACEkK,EAAWjygB,MAAQkygB,EACf13f,GAASA,EAAQjuC,KAAKu3Y,EAAO,IACzB7oY,GAAA,EACH62hB,GAAA,EACLptf,EAAKC,EAAKz2C,KA7CV85hB,QA+CF,WACMnpe,IACFqze,EAAWP,EAAKC,GACZC,GAAOC,GAAIE,EAAa/D,SACnBpve,EAAAtyD,KAAKyliB,EAAavwhB,WAE7BwwhB,EAAWjygB,MAAQA,EACf8xgB,KAAiB9J,WArDrBC,aAoBF,WACE8J,EAAeC,EAAcnze,EAAW,GAAIrkB,EAAU,GAAIg9C,GAAQ,GApBlE0wc,WAsBF,WACM,IAAAoG,EAlBN,WAEW,IADT,IAAI5iT,EAAU,EACLjgP,EAAI,EAAG2H,EAAIonC,EAAQtuC,OAAQT,EAAI2H,IAAK3H,EAClC,IAAA,IAAgEshD,EAAIC,EAApEmlf,EAAQ33f,EAAQ/uC,GAAI0I,EAAI,EAAGxG,EAAIwkiB,EAAMjmiB,OAAQikiB,EAASgC,EAAM,GAAYrugB,EAAKqsgB,EAAO,GAAIpsgB,EAAKosgB,EAAO,GAAIh8hB,EAAIxG,IAAKwG,EACxH44C,EAAKjpB,EAAIkpB,EAAKjpB,EAAuBD,GAAnBqsgB,EAASgC,EAAMh+hB,IAAgB,GAAI4vB,EAAKosgB,EAAO,GAC7Dnjf,GAAMnI,EACJ9gB,EAAK8gB,IAAQ/gB,EAAKipB,IAAOlI,EAAMmI,IAAOjpB,EAAKipB,IAAOwkW,EAAMzkW,MAAO2+L,EAE/D3nN,GAAM8gB,IAAQ/gB,EAAKipB,IAAOlI,EAAMmI,IAAOjpB,EAAKipB,IAAOwkW,EAAMzkW,MAAO2+L,EAInE,OAAAA,EAMW0mT,GAAiBC,EAAc76c,GAAS82c,EAAagE,GAAYzze,EAAW4ne,EAAQ1zgB,MAAM8rC,IAAW3yD,QACnHmmiB,GAAeC,KACjBx+c,EAAOm0c,eACHoK,IACFv+c,EAAOi0c,YACMwG,EAAA,KAAM,KAAM,EAAGz6c,GAC5BA,EAAOk0c,WAELsK,GACFlE,GAAWvve,EAAUwve,EAAsBC,EAAaC,EAAcz6c,GAExEA,EAAOo0c,cAEM6J,EAAAj+c,EAAQj1B,EAAWrkB,EAAUspW,EAAO,OAlC5C,SAAA9jX,EAAM1oB,EAAGC,GACZw7E,EAAQz7E,EAAGC,IAAiBw6hB,EAAA/xgB,MAAM1oB,EAAGC,GAmDlC,SAAA26hB,EAAW56hB,EAAGC,GACjB,IAAA0Z,EAAI8hE,EAAQz7E,EAAGC,GAEnB,GADIijC,GAAcspW,EAAAv3Y,KAAK,CAAC+K,EAAGC,IACvB0D,EACI02hB,EAAAr6hB,EAAGs6hB,EAAMr6hB,EAAGs6hB,EAAM5ghB,EAChBhW,GAAA,EACJgW,IACF8ghB,EAAahK,YACAgK,EAAA/xgB,MAAM1oB,EAAGC,SAGxB,GAAI0Z,GAAK6ghB,EAAiBC,EAAA/xgB,MAAM1oB,EAAGC,OAC9B,CACC,IAAAF,EAAI,CAACqtC,EAAKt2C,KAAK8J,IAAIq5hB,GAASnjiB,KAAKoH,IAAI87hB,GAAS5sf,IAAMC,EAAKv2C,KAAK8J,IAAIq5hB,GAASnjiB,KAAKoH,IAAI87hB,GAAS3sf,KAAOpzC,EAAI,CAAC+F,EAAIlJ,KAAK8J,IAAIq5hB,GAASnjiB,KAAKoH,IAAI87hB,GAASh6hB,IAAKC,EAAInJ,KAAK8J,IAAIq5hB,GAASnjiB,KAAKoH,IAAI87hB,GAAS/5hB,MAjJ5M,SAAkBF,EAAG9F,EAAGigZ,EAAKC,EAAK7sW,EAAKC,GACjC,IAA0Fjb,EAA1FqU,EAAK5mC,EAAE,GAAI6mC,EAAK7mC,EAAE,GAA0B+hC,EAAM,EAAGC,EAAM,EAAG/W,EAAnC/wB,EAAE,GAA2C0sC,EAAI1b,EAAtChxB,EAAE,GAA8C2sC,EAEtF,GADJtU,EAAI4nX,EAAMvzW,EACL3b,KAAMsH,EAAI,GAAX,CAEJ,GADKA,GAAAtH,EACDA,EAAK,EAAG,CACV,GAAIsH,EAAIwP,EAAK,OACTxP,EAAIyP,IAAWA,EAAAzP,EAAA,MAAA,GACVtH,EAAK,EAAG,CACjB,GAAIsH,EAAIyP,EAAK,OACTzP,EAAIwP,IAAWA,EAAAxP,GAGjB,GADJA,EAAIgb,EAAM3G,EACL3b,KAAMsH,EAAI,GAAX,CAEJ,GADKA,GAAAtH,EACDA,EAAK,EAAG,CACV,GAAIsH,EAAIyP,EAAK,OACTzP,EAAIwP,IAAWA,EAAAxP,EAAA,MAAA,GACVtH,EAAK,EAAG,CACjB,GAAIsH,EAAIwP,EAAK,OACTxP,EAAIyP,IAAWA,EAAAzP,GAGjB,GADJA,EAAI6nX,EAAMvzW,EACL3b,KAAMqH,EAAI,GAAX,CAEJ,GADKA,GAAArH,EACDA,EAAK,EAAG,CACV,GAAIqH,EAAIwP,EAAK,OACTxP,EAAIyP,IAAWA,EAAAzP,EAAA,MAAA,GACVrH,EAAK,EAAG,CACjB,GAAIqH,EAAIyP,EAAK,OACTzP,EAAIwP,IAAWA,EAAAxP,GAGjB,GADJA,EAAIib,EAAM3G,EACL3b,KAAMqH,EAAI,GAAX,CAEJ,GADKA,GAAArH,EACDA,EAAK,EAAG,CACV,GAAIqH,EAAIyP,EAAK,OACTzP,EAAIwP,IAAWA,EAAAxP,EAAA,MAAA,GACVrH,EAAK,EAAG,CACjB,GAAIqH,EAAIwP,EAAK,OACTxP,EAAIyP,IAAWA,EAAAzP,GAId,OAFHwP,EAAM,IAAK/hC,EAAA,GAAK4mC,EAAK7E,EAAM9W,EAAIjrB,EAAE,GAAK6mC,EAAK9E,EAAM7W,GACjD8W,EAAM,IAAK9nC,EAAA,GAAK0sC,EAAK5E,EAAM/W,EAAI/wB,EAAE,GAAK2sC,EAAK7E,EAAM9W,IAC9C,CAXW,CAVA,CAVA,CAVA,EA+INgwgB,CAASl7hB,EAAG9F,EAAGigZ,EAAKC,EAAK7sW,EAAKC,GAQvB5zB,IACT8ghB,EAAahK,YACAgK,EAAA/xgB,MAAM1oB,EAAGC,GACdigF,GAAA,IAVHs6c,IACHC,EAAahK,YACbgK,EAAa/xgB,MAAM3oB,EAAE,GAAIA,EAAE,KAE7B06hB,EAAa/xgB,MAAMzuB,EAAE,GAAIA,EAAE,IACtB0f,GAAG8ghB,EAAa/J,UACbxwc,GAAA,GAQT9yC,EAAAptC,EAAGqtC,EAAKptC,EAAGu6hB,EAAK7ghB,EAEhB,OAAAghhB,CACT,EAaF,IAAyBO,GAAWC,GAAWC,GAA3CC,GAAYjM,IACZkM,GAAe,CACjBrL,OAAQxzb,EACR/zE,MAAO+zE,EACPg0b,UAKF,WACE6K,GAAa5ygB,MAAQ6ygB,GACrBD,GAAa5K,QAAU8K,IANvB9K,QAASj0b,EACTk0b,aAAcl0b,EACdm0b,WAAYn0b,GAMd,SAAS++b,KACMF,GAAA5ygB,MAAQ4ygB,GAAa5K,QAAUj0b,EAErC,SAAA8+b,GAAiB5J,EAAQ95I,GAEhCqjJ,GADAvJ,GAAUzN,EACUiX,GAAYtogB,EADZglX,GAAOqsI,GACekX,GAAYxogB,EAAIilX,GAC1DyjJ,GAAa5ygB,MAAQ+ygB,GAEd,SAAAA,GAAY9J,EAAQ95I,GAC3B85I,GAAUzN,EACV,IAAI8N,EAASn/f,EADOglX,GAAOqsI,GACJ6N,EAASn/f,EAAIilX,GAAMpoS,EAAQt4G,EAAIw6hB,EAASuJ,IAAYQ,EAAW9ogB,EAAI68E,GAA+BzvG,EAAI+xhB,EAAhBl/f,EAAI48E,GAA+BxvG,EAAIm7hB,GAAYpJ,EAASmJ,GAAYpJ,EAAS2J,EAAUx8gB,EAAIi8gB,GAAYnJ,EAASoJ,GAAYrJ,EAAS2J,EAC5OL,GAAA3mhB,IAAI6e,EAAMtZ,EAAKja,EAAIA,EAAIC,EAAIA,GAAIif,IAC7Bg8gB,GAAAvJ,EAAQwJ,GAAYnJ,EAAQoJ,GAAYrJ,EAEtD,SAASn9hB,GAAOk7gB,GAGd,OAFAurB,GAAU/wT,QACVumT,EAAU/gB,EAASwrB,KACXD,GAEN,IAAAl4f,GAAc,CAAC,KAAM,MAAO/yB,GAAS,CAAE9V,KAAM,aAAc6oC,gBACtD,SAAAmL,GAASvuC,EAAG9F,GAGnB,OAFAkpC,GAAY,GAAKpjC,EACjBojC,GAAY,GAAKlpC,EACVrF,GAAOwb,IAEhB,IAAIurhB,GAAqB,CACvB7L,QAAS,SAAShgB,EAASpnf,GAClB,OAAAkzgB,GAAiB9rB,EAAQb,SAAUvmf,EAC5C,EACAqngB,kBAAmB,SAASjgB,EAASpnf,GAE5B,IADP,IAAIqof,EAAWjB,EAAQiB,SAAU58gB,GAAI,EAAI2H,EAAIi1gB,EAASn8gB,SAC7CT,EAAI2H,MAAO8/hB,GAAiB7qB,EAAS58gB,GAAG86gB,SAAUvmf,GAAe,OAAA,EACnE,OAAA,IAGPmzgB,GAAuB,CACzB7L,OAAQ,WACC,OAAA,CACT,EACAE,MAAO,SAASpgB,EAASpnf,GAChB,OAAAozgB,GAAchsB,EAAQ3se,YAAaza,EAC5C,EACAyngB,WAAY,SAASrgB,EAASpnf,GAErB,IADP,IAAI0ngB,EAAetgB,EAAQ3se,YAAahvC,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,SACxDT,EAAI2H,MAAOggiB,GAAc1L,EAAaj8hB,GAAIu0B,GAAe,OAAA,EAC3D,OAAA,CACT,EACA6qN,WAAY,SAASu8R,EAASpnf,GACrB,OAAAqzgB,GAAajsB,EAAQ3se,YAAaza,EAC3C,EACAwof,gBAAiB,SAASpB,EAASpnf,GAE1B,IADP,IAAI0ngB,EAAetgB,EAAQ3se,YAAahvC,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,SACxDT,EAAI2H,MAAOigiB,GAAa3L,EAAaj8hB,GAAIu0B,GAAe,OAAA,EAC1D,OAAA,CACT,EACAyof,QAAS,SAASrB,EAASpnf,GAClB,OAAAszgB,GAAgBlsB,EAAQ3se,YAAaza,EAC9C,EACA0of,aAAc,SAAStB,EAASpnf,GAEvB,IADP,IAAI0ngB,EAAetgB,EAAQ3se,YAAahvC,GAAI,EAAI2H,EAAIs0hB,EAAax7hB,SACxDT,EAAI2H,MAAOkgiB,GAAgB5L,EAAaj8hB,GAAIu0B,GAAe,OAAA,EAC7D,OAAA,CACT,EACA6ngB,mBAAoB,SAASzgB,EAASpnf,GAE7B,IADP,IAAIomf,EAAagB,EAAQhB,WAAY36gB,GAAI,EAAI2H,EAAIgzgB,EAAWl6gB,SACnDT,EAAI2H,MAAO8/hB,GAAiB9sB,EAAW36gB,GAAIu0B,GAAe,OAAA,EAC5D,OAAA,IAGF,SAAAkzgB,GAAiB3sB,EAAUvmf,GAClC,SAAOumf,IAAY4sB,GAAqBzqhB,eAAe69f,EAAS30gB,QAAQuhiB,GAAqB5sB,EAAS30gB,MAAM20gB,EAAUvmf,GAE/G,SAAAozgB,GAAc1L,EAAc1ngB,GAC5B,OAAkC,IAAlC4lB,GAAS8hf,EAAc1ngB,GAEvB,SAAAqzgB,GAAa3L,EAAc1ngB,GAElC,IADA,IAAIuzgB,EAAIC,EAAItwf,EACHz3C,EAAI,EAAG2H,EAAIs0hB,EAAax7hB,OAAQT,EAAI2H,EAAG3H,IAAK,CAE/C,GAAO,KADX+niB,EAAK5tf,GAAS8hf,EAAaj8hB,GAAIu0B,IACV,OAAA,EACrB,GAAIv0B,EAAI,IACNy3C,EAAK0C,GAAS8hf,EAAaj8hB,GAAIi8hB,EAAaj8hB,EAAI,KACvC,GAAK8niB,GAAMrwf,GAAMswf,GAAMtwf,IAAOqwf,EAAKC,EAAKtwf,IAAO,EAAI90C,KAAKC,KAAKkliB,EAAKC,GAAMtwf,EAAI,IAAM2jf,EAAY3jf,EAC9F,OAAA,EAENqwf,EAAAC,EAEA,OAAA,EAEA,SAAAF,GAAgB5L,EAAc1ngB,GAC9B,QAAE2ugB,GAAgBjH,EAAa70gB,IAAI4ghB,IAAcC,GAAa1zgB,IAEvE,SAASyzgB,GAAY3vJ,GACnB,OAAOA,EAAOA,EAAKjxX,IAAI6ghB,KAAoBn3f,MAAOunW,EAEpD,SAAS4vJ,GAAa1zgB,GACb,MAAA,CAACA,EAAM,GAAKw7f,EAAUx7f,EAAM,GAAKw7f,GAKjC,SAAAmY,GAAWliJ,EAAK5sW,EAAKtiB,GACxB,IAAAhrB,EAAIkvhB,EAAQxnhB,MAAMwyY,EAAK5sW,EAAMi+L,EAASvgN,GAAI/qB,OAAOqtC,GACrD,OAAO,SAASvtC,GACP,OAAAC,EAAEsb,KAAI,SAASsuB,GACb,MAAA,CAAC7pC,EAAG6pC,EAAE,GAEjB,EAEO,SAAAyyf,GAAWpiJ,EAAK5sW,EAAKtiB,GACxB,IAAAhrB,EAAImvhB,EAAQxnhB,MAAMuyY,EAAK5sW,EAAMk+L,EAASxgN,GAAI9qB,OAAOotC,GACrD,OAAO,SAASrtC,GACP,OAAAD,EAAEub,KAAI,SAASquB,GACb,MAAA,CAACA,EAAI3pC,EAAC,GAEjB,EAEF,SAASs8hB,KACH,IAAAjvf,EAAK4sW,EAAKsiJ,EAAKC,EAAKlvf,EAAK4sW,EAAKuiJ,EAAKC,EAA0C38hB,EAAGC,EAAG88D,EAAGE,EAA9CjyC,EAAK,GAAIC,EAAKD,EAAI4xgB,EAAK,GAAIC,EAAK,IAAiBz6d,EAAY,IACzG,SAAS06d,IACP,MAAO,CAAExiiB,KAAM,kBAAmB6oC,YAAammD,KAEjD,SAASA,IACP,OAAO6lc,EAAQxnhB,MAAM8oB,EAAKgsgB,EAAMG,GAAMA,EAAIJ,EAAKI,GAAIrhhB,IAAIwhD,GAAG78D,OAAOivhB,EAAQxnhB,MAAM8oB,EAAKksgB,EAAME,GAAMA,EAAIH,EAAKG,GAAIthhB,IAAI0hD,IAAI/8D,OAAOivhB,EAAQxnhB,MAAM8oB,EAAKypX,EAAMlvX,GAAMA,EAAIsiB,EAAKtiB,GAAI3E,QAAO,SAASujB,GAC/K,OAAAzyC,EAAIyyC,EAAKgzf,GAAMpxT,CAAA,IACrBjwN,IAAIvb,IAAIE,OAAOivhB,EAAQxnhB,MAAM8oB,EAAK0pX,EAAMlvX,GAAMA,EAAIsiB,EAAKtiB,GAAI5E,QAAO,SAASwjB,GACrE,OAAA1yC,EAAI0yC,EAAKgzf,GAAMrxT,CAAA,IACrBjwN,IAAItb,IA8DF,OA5DP68hB,EAAWxzc,MAAQ,WACjB,OAAOA,IAAQ/tE,KAAI,SAAS60gB,GAC1B,MAAO,CAAE91hB,KAAM,aAAc6oC,YAAaitf,EAAa,GAE3D,EACA0M,EAAWtjZ,QAAU,WACZ,MAAA,CACLl/I,KAAM,UACN6oC,YAAa,CACX45B,EAAE0/d,GAAKv8hB,OACL+8D,EAAEy/d,GAAKtjiB,MAAM,GACb2jE,EAAEy/d,GAAK1if,UAAU1gD,MAAM,GACvB6jE,EAAE0/d,GAAK7if,UAAU1gD,MAAM,KAI/B,EACW0jiB,EAAA1jhB,OAAS,SAAS4C,GAC3B,OAAKhhB,UAAUpG,OACRkoiB,EAAWC,YAAY/ghB,GAAGghhB,YAAYhhhB,GADf8ghB,EAAWE,aAE3C,EACWF,EAAAC,YAAc,SAAS/ghB,GAChC,OAAKhhB,UAAUpG,QACT6niB,GAACzghB,EAAE,GAAG,GAAIwghB,GAAOxghB,EAAE,GAAG,GACtB2ghB,GAAC3ghB,EAAE,GAAG,GAAI0ghB,GAAO1ghB,EAAE,GAAG,GACxByghB,EAAMD,IAAKxghB,EAAIyghB,EAAKA,EAAMD,EAAKA,EAAMxghB,GACrC2ghB,EAAMD,IAAK1ghB,EAAI2ghB,EAAKA,EAAMD,EAAKA,EAAM1ghB,GAClC8ghB,EAAW16d,UAAUA,IALE,CAAC,CAACq6d,EAAKE,GAAM,CAACH,EAAKE,GAMnD,EACWI,EAAAE,YAAc,SAAShhhB,GAChC,OAAKhhB,UAAUpG,QACTslZ,GAACl+X,EAAE,GAAG,GAAIsxB,GAAOtxB,EAAE,GAAG,GACtBm+X,GAACn+X,EAAE,GAAG,GAAIuxB,GAAOvxB,EAAE,GAAG,GACxBk+X,EAAM5sW,IAAKtxB,EAAIk+X,EAAKA,EAAM5sW,EAAKA,EAAMtxB,GACrCm+X,EAAM5sW,IAAKvxB,EAAIm+X,EAAKA,EAAM5sW,EAAKA,EAAMvxB,GAClC8ghB,EAAW16d,UAAUA,IALE,CAAC,CAAC83U,EAAKC,GAAM,CAAC7sW,EAAKC,GAMnD,EACWuvf,EAAA3/gB,KAAO,SAASnB,GACzB,OAAKhhB,UAAUpG,OACRkoiB,EAAWG,UAAUjhhB,GAAGkhhB,UAAUlhhB,GADX8ghB,EAAWI,WAE3C,EACWJ,EAAAG,UAAY,SAASjhhB,GAC9B,OAAKhhB,UAAUpG,QACfgoiB,GAAM5ghB,EAAE,GAAI6ghB,GAAM7ghB,EAAE,GACb8ghB,GAFuB,CAACF,EAAIC,EAGrC,EACWC,EAAAI,UAAY,SAASlhhB,GAC9B,OAAKhhB,UAAUpG,QACfo2B,GAAMhP,EAAE,GAAIiP,GAAMjP,EAAE,GACb8ghB,GAFuB,CAAC9xgB,EAAIC,EAGrC,EACW6xgB,EAAA16d,UAAY,SAASpmD,GAC1B,OAAChhB,UAAUpG,QACfwtE,GAAapmD,EACThc,EAAAq8hB,GAAWliJ,EAAK5sW,EAAK,IACrBttC,EAAAq8hB,GAAWpiJ,EAAK5sW,EAAK80B,GACrBrF,EAAAs/d,GAAWM,EAAKD,EAAK,IACrBz/d,EAAAq/d,GAAWG,EAAKD,EAAKp6d,GAClB06d,GANuB16d,CAOhC,EACO06d,EAAWC,YAAY,CAAC,EAAC,KAAM,WAAgB,CAAC,IAAK,aAAgBC,YAAY,CAAC,EAAC,KAAM,WAAgB,CAAC,IAAK,aAmBxH,SAAS/4e,GAAUjkD,GACV,OAAAA,EAEL,IAA8Cm9hB,GAAKC,GAAKC,GAAMC,GAA9DC,GAAYnO,IAASoO,GAAgBpO,IACrCqO,GAAe,CACjB/0gB,MAAO+zE,EACPg0b,UAAWh0b,EACXi0b,QAASj0b,EACTk0b,aAAc,WACZ8M,GAAahN,UAAYiN,GACzBD,GAAa/M,QAAUiN,EACzB,EACA/M,WAAY,WACV6M,GAAahN,UAAYgN,GAAa/M,QAAU+M,GAAa/0gB,MAAQ+zE,EAC3D8gc,GAAA7ohB,IAAIvd,EAAIqmiB,KAClBA,GAAclzT,OAChB,EACAngO,OAAQ,WACN,IAAIyzhB,EAAQL,GAAY,EAEjB,OADPA,GAAUjzT,QACHszT,IAGX,SAASF,KACPD,GAAa/0gB,MAAQm1gB,GAEd,SAAAA,GAAiB79hB,EAAGC,GAC3Bw9hB,GAAa/0gB,MAAQo1gB,GACfX,GAAAE,GAAOr9hB,EAAGo9hB,GAAME,GAAOr9hB,EAEtB,SAAA69hB,GAAY99hB,EAAGC,GACtBu9hB,GAAc9ohB,IAAI4ohB,GAAOt9hB,EAAIq9hB,GAAOp9hB,GACpCo9hB,GAAOr9hB,EAAGs9hB,GAAOr9hB,EAEnB,SAAS09hB,KACPG,GAAYX,GAAKC,IAEnB,IAmB8FW,GAAOC,GAAOC,GAAMC,GAnB9GC,GAAOtniB,IAAUuniB,GAAOD,GAAM5wgB,IAAM4wgB,GAAM1wgB,GAAKF,GAC/C8wgB,GAAiB,CACnB31gB,MAWO,SAAc1oB,EAAGC,GACpBD,EAAIm+hB,KAAaA,GAAAn+hB,GACjBA,EAAIutB,KAASA,GAAAvtB,GACbC,EAAIm+hB,KAAaA,GAAAn+hB,GACjBA,EAAIwtB,KAASA,GAAAxtB,IAdjBwwhB,UAAWh0b,EACXi0b,QAASj0b,EACTk0b,aAAcl0b,EACdm0b,WAAYn0b,EACZtyF,OAAQ,WACF,IAAAikc,EAAU,CAAC,CAAC+vF,GAAMC,IAAO,CAAC7wgB,GAAIE,KAE3B,OADFF,GAAAE,KAAO2wgB,GAAOD,GAAOtniB,KACnBu3c,IASPkwF,GAAO,EAAGC,GAAO,EAAGC,GAAO,EAAGC,GAAO,EAAGC,GAAO,EAAGC,GAAO,EAAGC,GAAO,EAAGC,GAAO,EAAGC,GAAO,EACvFC,GAAmB,CACrBr2gB,MAAOs2gB,GACPvO,UAAWwO,GACXvO,QAASwO,GACTvO,aAAc,WACZoO,GAAiBtO,UAAY0O,GAC7BJ,GAAiBrO,QAAU0O,EAC7B,EACAxO,WAAY,WACVmO,GAAiBr2gB,MAAQs2gB,GACzBD,GAAiBtO,UAAYwO,GAC7BF,GAAiBrO,QAAUwO,EAC7B,EACA/0hB,OAAQ,WACF,IAAAk1hB,EAAYP,GAAO,CAACF,GAAOE,GAAMD,GAAOC,IAAQH,GAAO,CAACF,GAAOE,GAAMD,GAAOC,IAAQH,GAAO,CAACF,GAAOE,GAAMD,GAAOC,IAAQ,CAAC5niB,IAAKA,KAE3H,OADP0niB,GAAOC,GAAOC,GAAOC,GAAOC,GAAOC,GAAOC,GAAOC,GAAOC,GAAO,EACxDO,IAGF,SAAAL,GAAgBh/hB,EAAGC,GAClBq+hB,IAAAt+hB,EACAu+hB,IAAAt+hB,IACNu+hB,GAEJ,SAASS,KACPF,GAAiBr2gB,MAAQ42gB,GAElB,SAAAA,GAAuBt/hB,EAAGC,GACjC8+hB,GAAiBr2gB,MAAQ62gB,GACTP,GAAAf,GAAOj+hB,EAAGk+hB,GAAOj+hB,GAE1B,SAAAs/hB,GAAkBv/hB,EAAGC,GACxB,IAAA+qB,EAAKhrB,EAAIi+hB,GAAMhzgB,EAAKhrB,EAAIi+hB,GAAMh/gB,EAAIjF,EAAK+Q,EAAKA,EAAKC,EAAKA,GAClDwzgB,IAAAv/gB,GAAK++gB,GAAOj+hB,GAAK,EACjB0+hB,IAAAx/gB,GAAKg/gB,GAAOj+hB,GAAK,EACjB0+hB,IAAAz/gB,EACQ8/gB,GAAAf,GAAOj+hB,EAAGk+hB,GAAOj+hB,GAEnC,SAASi/hB,KACPH,GAAiBr2gB,MAAQs2gB,GAE3B,SAASG,KACPJ,GAAiBr2gB,MAAQ82gB,GAE3B,SAASJ,KACPK,GAAkB1B,GAAOC,IAElB,SAAAwB,GAAuBx/hB,EAAGC,GACjC8+hB,GAAiBr2gB,MAAQ+2gB,GACzBT,GAAgBjB,GAAQE,GAAOj+hB,EAAGg+hB,GAAQE,GAAOj+hB,GAE1C,SAAAw/hB,GAAkBz/hB,EAAGC,GACxB,IAAA+qB,EAAKhrB,EAAIi+hB,GAAMhzgB,EAAKhrB,EAAIi+hB,GAAMh/gB,EAAIjF,EAAK+Q,EAAKA,EAAKC,EAAKA,GAClDwzgB,IAAAv/gB,GAAK++gB,GAAOj+hB,GAAK,EACjB0+hB,IAAAx/gB,GAAKg/gB,GAAOj+hB,GAAK,EACjB0+hB,IAAAz/gB,EAER0/gB,KADI1/gB,EAAAg/gB,GAAOl+hB,EAAIi+hB,GAAOh+hB,IACTg+hB,GAAOj+hB,GACpB6+hB,IAAQ3/gB,GAAKg/gB,GAAOj+hB,GACpB6+hB,IAAY,EAAJ5/gB,EACQ8/gB,GAAAf,GAAOj+hB,EAAGk+hB,GAAOj+hB,GAEnC,SAASy/hB,GAAY3rhB,GACnBzY,KAAKyzG,SAAWh7F,EAElB2rhB,GAAYlniB,UAAY,CACtBmniB,QAAS,IACTC,YAAa,SAAS5jhB,GACb,OAAA1gB,KAAKqkiB,QAAU3jhB,EAAG1gB,IAC3B,EACAq1hB,aAAc,WACZr1hB,KAAKitT,MAAQ,CACf,EACAqoO,WAAY,WACVt1hB,KAAKitT,MAAQ3xT,GACf,EACA65hB,UAAW,WACTn1hB,KAAKukiB,OAAS,CAChB,EACAnP,QAAS,WACY,IAAfp1hB,KAAKitT,OAAajtT,KAAKyzG,SAAS+wb,YACpCxkiB,KAAKukiB,OAASjpiB,GAChB,EACA8xB,MAAO,SAAS1oB,EAAGC,GACjB,OAAQ3E,KAAKukiB,QACX,KAAK,EACEvkiB,KAAAyzG,SAASgxb,OAAO//hB,EAAGC,GACxB3E,KAAKukiB,OAAS,EACd,MAEF,KAAK,EACEvkiB,KAAAyzG,SAASixb,OAAOhgiB,EAAGC,GACxB,MAEF,QACE3E,KAAKyzG,SAASgxb,OAAO//hB,EAAI1E,KAAKqkiB,QAAS1/hB,GACvC3E,KAAKyzG,SAAS7nE,IAAIlnC,EAAGC,EAAG3E,KAAKqkiB,QAAS,EAAGz+F,GAI/C,EACA/2b,OAAQsyF,GAEV,IAA2Bwjc,GAAYC,GAAOC,GAAOC,GAAMC,GAAvDC,GAAclR,IACdmR,GAAiB,CACnB73gB,MAAO+zE,EACPg0b,UAAW,WACT8P,GAAe73gB,MAAQ83gB,EACzB,EACA9P,QAAS,WACHuP,IAA0BQ,GAAAP,GAAOC,IACrCI,GAAe73gB,MAAQ+zE,CACzB,EACAk0b,aAAc,WACCsP,IAAA,CACf,EACArP,WAAY,WACGqP,GAAA,IACf,EACA91hB,OAAQ,WACN,IAAIu2hB,GAAWJ,GAER,OADPA,GAAYh2T,QACLo2T,IAGF,SAAAF,GAAmBxgiB,EAAGC,GAC7BsgiB,GAAe73gB,MAAQ+3gB,GACfP,GAAAE,GAAOpgiB,EAAGmgiB,GAAQE,GAAOpgiB,EAE1B,SAAAwgiB,GAAczgiB,EAAGC,GACxBmgiB,IAAQpgiB,EAAGqgiB,IAAQpgiB,EACnBqgiB,GAAY5rhB,IAAIuF,EAAKmmhB,GAAOA,GAAOC,GAAOA,KAC1CD,GAAOpgiB,EAAGqgiB,GAAOpgiB,EAEnB,SAAS0giB,KACPrliB,KAAKsliB,QAAU,GAkDjB,SAASC,GAAS7if,GAChB,MAAO,MAAQA,EAAS,IAAMA,EAAS,IAAMA,EAAS,aAAmB,EAAAA,EAAS,IAAMA,EAAS,IAAMA,EAAS,YAAc,EAAIA,EAAS,IAgD7I,SAAS8if,GAAYn0Z,GACnB,OAAO,SAASnwD,GACV,IAAA7lF,EAAI,IAAIoqiB,GACZ,IAAA,IAASj1hB,KAAO6gI,EAASh2I,EAAEmV,GAAO6gI,EAAQ7gI,GAEnC,OADPnV,EAAE6lF,OAASA,EACJ7lF,CACT,EAEF,SAASoqiB,MAuBA,SAAAp8Z,GAAIq8Z,EAAaC,EAAWnxB,GACnC,IAAIonB,EAAQ8J,EAAYp2f,YAAco2f,EAAYp2f,aAM3C,OALPo2f,EAAY/xgB,MAAM,KAAKC,UAAU,CAAC,EAAG,IACxB,MAATgogB,GAA2B8J,EAAAp2f,WAAW,MAC1Cimf,EAAU/gB,EAASkxB,EAAYxkd,OAAO6hd,KAC5B4C,EAAA5C,GAAel0hB,UACZ,MAAT+shB,GAA2B8J,EAAAp2f,WAAWssf,GACnC8J,EAEA,SAAAE,GAAUF,EAAaG,EAASrxB,GAChC,OAAAnrY,GAAIq8Z,GAAa,SAAS/miB,GAC/B,IAAI6tB,EAAIq5gB,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GAAIznhB,EAAIynhB,EAAQ,GAAG,GAAKA,EAAQ,GAAG,GAAI/jhB,EAAItmB,KAAKoH,IAAI4pB,GAAK7tB,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAKyf,GAAKzf,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAM+F,GAAKmhiB,EAAQ,GAAG,IAAMr5gB,EAAI1K,GAAKnjB,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAO,EAAGgG,GAAKkhiB,EAAQ,GAAG,IAAMznhB,EAAI0D,GAAKnjB,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAO,EAC3O+miB,EAAA/xgB,MAAM,IAAM7R,GAAG8R,UAAU,CAAClvB,EAAGC,MACxC6vgB,GAEI,SAAAsxB,GAAQJ,EAAapmiB,EAAMk1gB,GAC3B,OAAAoxB,GAAUF,EAAa,CAAC,CAAC,EAAG,GAAIpmiB,GAAOk1gB,GAEvC,SAAAuxB,GAASL,EAAapge,EAAOkvc,GAC7B,OAAAnrY,GAAIq8Z,GAAa,SAAS/miB,GAC/B,IAAI6tB,GAAK84C,EAAOxjD,EAAI0K,GAAK7tB,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAK+F,GAAK8nB,EAAI1K,GAAKnjB,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAO,EAAGgG,GAAKmd,EAAInjB,EAAE,GAAG,GACtF+miB,EAAA/xgB,MAAM,IAAM7R,GAAG8R,UAAU,CAAClvB,EAAGC,MACxC6vgB,GAEI,SAAAwxB,GAAUN,EAAa1nc,EAAQw2a,GAC/B,OAAAnrY,GAAIq8Z,GAAa,SAAS/miB,GAC/B,IAAIyf,GAAK4/E,EAAQl8E,EAAI1D,GAAKzf,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAK+F,GAAKod,EAAInjB,EAAE,GAAG,GAAIgG,GAAKyZ,EAAI0D,GAAKnjB,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAO,EACxF+miB,EAAA/xgB,MAAM,IAAM7R,GAAG8R,UAAU,CAAClvB,EAAGC,MACxC6vgB,GA5JL6wB,GAAWnoiB,UAAY,CACrBmniB,QAAS,IACT4B,QAASV,GAAS,KAClBjB,YAAa,SAAS5jhB,GAEb,OADFA,GAAKA,KAAO1gB,KAAKqkiB,UAAcrkiB,KAAAqkiB,QAAU3jhB,EAAG1gB,KAAKimiB,QAAU,MACzDjmiB,IACT,EACAq1hB,aAAc,WACZr1hB,KAAKitT,MAAQ,CACf,EACAqoO,WAAY,WACVt1hB,KAAKitT,MAAQ3xT,GACf,EACA65hB,UAAW,WACTn1hB,KAAKukiB,OAAS,CAChB,EACAnP,QAAS,WACY,IAAfp1hB,KAAKitT,OAAkBjtT,KAAAsliB,QAAQ3riB,KAAK,KACxCqG,KAAKukiB,OAASjpiB,GAChB,EACA8xB,MAAO,SAAS1oB,EAAGC,GACjB,OAAQ3E,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKsliB,QAAQ3riB,KAAK,IAAK+K,EAAG,IAAKC,GAC/B3E,KAAKukiB,OAAS,EACd,MAEF,KAAK,EACHvkiB,KAAKsliB,QAAQ3riB,KAAK,IAAK+K,EAAG,IAAKC,GAC/B,MAEF,QACsB,MAAhB3E,KAAKimiB,eAAsBA,QAAUV,GAASvliB,KAAKqkiB,UACvDrkiB,KAAKsliB,QAAQ3riB,KAAK,IAAK+K,EAAG,IAAKC,EAAG3E,KAAKimiB,SAI7C,EACAp3hB,OAAQ,WACF,GAAA7O,KAAKsliB,QAAQhsiB,OAAQ,CACvB,IAAIuV,EAAS7O,KAAKsliB,QAAQxriB,KAAK,IAExB,OADPkG,KAAKsliB,QAAU,GACRz2hB,CAAA,CAEA,OAAA,OA+Db42hB,GAAgBvoiB,UAAY,CAC1B2O,YAAa45hB,GACbr4gB,MAAO,SAAS1oB,EAAGC,GACZ3E,KAAAkhF,OAAO9zD,MAAM1oB,EAAGC,EACvB,EACAgwhB,OAAQ,WACN30hB,KAAKkhF,OAAOyzc,QACd,EACAQ,UAAW,WACTn1hB,KAAKkhF,OAAOi0c,WACd,EACAC,QAAS,WACPp1hB,KAAKkhF,OAAOk0c,SACd,EACAC,aAAc,WACZr1hB,KAAKkhF,OAAOm0c,cACd,EACAC,WAAY,WACVt1hB,KAAKkhF,OAAOo0c,eAiChB,IAAmB4Q,GAAiB5ugB,EAAI,GAAKsxf,GACpC,SAAAud,GAASniY,EAASu6X,GACzB,OAAQA,EAUD,SAAWv6X,EAASu6X,GAC3B,SAAS6H,EAAexnJ,EAAKC,EAAKs6I,EAAUh/e,EAAIjpB,EAAImoL,EAAIrnK,EAAKC,EAAKmnf,EAAUh/e,EAAIjpB,EAAIspD,EAAIj4D,EAAO0+D,GACzF,IAAAxxD,EAAKsiB,EAAM4sW,EAAKjvX,EAAKsiB,EAAM4sW,EAAK7tX,EAAKtB,EAAKA,EAAKC,EAAKA,EACpD,GAAAqB,EAAK,EAAIutgB,GAAU/7gB,IAAS,CAC9B,IAAI/d,EAAI01C,EAAKC,EAAIz7C,EAAIuyB,EAAKC,EAAIx1B,EAAI09M,EAAK5+H,EAAI1/E,EAAI4jB,EAAKla,EAAIA,EAAI9F,EAAIA,EAAIhD,EAAIA,GAAI0qiB,EAAOl2gB,EAAKx0B,GAAKZ,GAAIuriB,EAAWzqiB,EAAIA,EAAIF,GAAK,GAAKu0O,GAAWr0O,EAAIs9hB,EAAWC,GAAYlpT,GAAWipT,EAAWC,GAAY,EAAInhgB,EAAMt5B,EAAG8F,GAAIgL,EAAIu0J,EAAQsiY,EAAUD,GAAO/3f,EAAK7+B,EAAE,GAAI8+B,EAAK9+B,EAAE,GAAIuhO,EAAM1iM,EAAKswW,EAAK3tK,EAAM1iM,EAAKswW,EAAK5tJ,EAAKthO,EAAKqhN,EAAMthN,EAAKuhN,GAC3TggB,EAAKA,EAAKjgO,EAAKutgB,GAAU1iiB,GAAK6zB,EAAKshN,EAAMrhN,EAAKshN,GAAOjgN,EAAK,IAAO,IAAOmpB,EAAKC,EAAKlpB,EAAKC,EAAKkoL,EAAK5+H,EAAKyrd,MACxGE,EAAexnJ,EAAKC,EAAKs6I,EAAUh/e,EAAIjpB,EAAImoL,EAAI/qK,EAAIC,EAAI+3f,EAAU7hiB,GAAK1J,EAAG4D,GAAK5D,EAAGY,EAAG6mB,EAAO0+D,GACpFA,EAAA9zD,MAAMkhB,EAAIC,GACjB63f,EAAe93f,EAAIC,EAAI+3f,EAAU7hiB,EAAG9F,EAAGhD,EAAGq2C,EAAKC,EAAKmnf,EAAUh/e,EAAIjpB,EAAIspD,EAAIj4D,EAAO0+D,KAIvF,OAAO,SAASA,GACV,IAAAqld,EAAWC,EAAMC,EAAMn3c,EAAKU,EAAKy3X,EAAK0xE,EAAUv6I,EAAKC,EAAK1kW,EAAIjpB,EAAImoL,EAClEqtV,EAAiB,CACnBt5gB,QACA+ngB,YACAC,UACAC,aAAc,WACZn0c,EAAOm0c,eACPqR,EAAevR,UAAYgI,CAC7B,EACA7H,WAAY,WACVp0c,EAAOo0c,aACPoR,EAAevR,UAAYA,IAGtB,SAAA/ngB,EAAM1oB,EAAGC,GACZD,EAAAs/J,EAAQt/J,EAAGC,GACfu8E,EAAO9zD,MAAM1oB,EAAE,GAAIA,EAAE,IAEvB,SAASywhB,IACDv2I,EAAAtjZ,IACNoriB,EAAet5gB,MAAQkygB,EACvBp+c,EAAOi0c,YAEA,SAAAmK,EAAWjJ,EAAQ95I,GACtB,IAAA5gZ,EAAIygI,EAAU,CAACi6Z,EAAQ95I,IAAO9sY,EAAIu0J,EAAQqyX,EAAQ95I,GACtD6pJ,EAAexnJ,EAAKC,EAAKs6I,EAAUh/e,EAAIjpB,EAAImoL,EAAIulM,EAAMnvY,EAAE,GAAIovY,EAAMpvY,EAAE,GAAI0phB,EAAW9C,EAAQl8e,EAAKx+C,EAAE,GAAIu1B,EAAKv1B,EAAE,GAAI09M,EAAK19M,EAAE,GAlD9G,GAkD4HulF,GAC9HA,EAAA9zD,MAAMwxX,EAAKC,GAEpB,SAASu2I,IACPsR,EAAet5gB,MAAQA,EACvB8zD,EAAOk0c,UAET,SAAS+H,IACGhI,IACVuR,EAAet5gB,MAAQu5gB,EACvBD,EAAetR,QAAUgI,EAElB,SAAAuJ,EAAUtQ,EAAQ95I,GACzB+iJ,EAAWiH,EAAYlQ,EAAQ95I,GAAMiqJ,EAAO5nJ,EAAK6nJ,EAAO5nJ,EAAKvvT,EAAMn1C,EAAI61C,EAAM9+D,EAAIu2b,EAAMpuQ,EACvFqtV,EAAet5gB,MAAQkygB,EAEzB,SAASlC,IACPgJ,EAAexnJ,EAAKC,EAAKs6I,EAAUh/e,EAAIjpB,EAAImoL,EAAImtV,EAAMC,EAAMF,EAAWj3c,EAAKU,EAAKy3X,EAnEvE,GAmEsFvmY,GAC/Fwld,EAAetR,QAAUA,EACjBA,IAEH,OAAAsR,CACT,EAtEiBE,CAAW5iY,EAASu6X,GAEvC,SAAsBv6X,GACpB,OAAOwhY,GAAY,CACjBp4gB,MAAO,SAAS1oB,EAAGC,GACbD,EAAAs/J,EAAQt/J,EAAGC,GACf3E,KAAKkhF,OAAO9zD,MAAM1oB,EAAE,GAAIA,EAAE,OANiBmiiB,CAAa7iY,GAwE9D,IAAI8iY,GAAmBtB,GAAY,CACjCp4gB,MAAO,SAAS1oB,EAAGC,GACjB3E,KAAKkhF,OAAO9zD,MAAM1oB,EAAIkkhB,EAAUjkhB,EAAIikhB,MAWxC,SAASme,GAAejlhB,EAAG4N,EAAIC,EAAIqgB,EAAIC,GAC5B,SAAAmje,EAAW1ugB,EAAGC,GAGrB,MAAO,CAAC+qB,EAAK5N,GAFRpd,GAAAsrC,GAEergB,EAAK7N,GADpBnd,GAAAsrC,IAMA,OAHImje,EAAA5/e,OAAS,SAAS9uB,EAAGC,GACvB,MAAA,EAAED,EAAIgrB,GAAM5N,EAAIkuB,GAAKrgB,EAAKhrB,GAAKmd,EAAImuB,EAC5C,EACOmje,EAET,SAAS4zB,GAAqBllhB,EAAG4N,EAAIC,EAAIqgB,EAAIC,EAAIgJ,GAC/C,IAAIguf,EAAW3vgB,EAAI2hB,GAAQiuf,EAAW3vgB,EAAI0hB,GAAQx0C,EAAIwiiB,EAAWnlhB,EAAGnjB,EAAIuoiB,EAAWplhB,EAAG2uJ,EAAKw2X,EAAWnlhB,EAAGmvB,EAAKi2f,EAAWplhB,EAAG8sU,GAAMs4M,EAAWv3gB,EAAKs3gB,EAAWv3gB,GAAM5N,EAAGi0d,GAAMmxD,EAAWx3gB,EAAKu3gB,EAAWt3gB,GAAM7N,EACpM,SAAAsxf,EAAW1ugB,EAAGC,GAGd,MAAA,CAACF,GAFHC,GAAAsrC,GAEWrxC,GADXgG,GAAAsrC,GACmBvgB,EAAIC,EAAKhxB,EAAI+F,EAAID,EAAIE,GAKxC,OAHIyugB,EAAA5/e,OAAS,SAAS9uB,EAAGC,GAC9B,MAAO,CAACqrC,GAAMygI,EAAK/rK,EAAIusC,EAAKtsC,EAAIiqV,GAAK3+S,GAAM8lc,EAAK9kc,EAAKvsC,EAAI+rK,EAAK9rK,GAChE,EACOyugB,EAET,SAASxnd,GAAWo4G,GAClB,OAAOmjY,IAAkB,WAChB,OAAAnjY,IADFmjY,GAIT,SAASA,GAAkBC,GACzB,IAAIpjY,EAAwGvuH,EAAyFopW,EAAK7sW,EAAKC,EAAyCo1f,EAAiBC,EAAkBC,EAAwB/xhB,EAAOgyhB,EAA7S1lhB,EAAI,IAAKpd,EAAI,IAAKC,EAAI,IAAK0xhB,EAAS,EAAG95I,EAAM,EAAG+9I,EAAc,EAAGC,EAAW,EAAGC,EAAa,EAAWvhf,EAAQ,EAAGjJ,EAAK,EAAGC,EAAK,EAAG6L,EAAQ,KAAM2rf,EAAU/J,GAAkB9+I,EAAM,KAAqB8oJ,EAAW/+e,GAAW41e,EAAS,GACnP,SAASmH,EAAYt4gB,GACZ,OAAAm6gB,EAAuBn6gB,EAAM,GAAKw7f,EAAUx7f,EAAM,GAAKw7f,GAEhE,SAASp1f,EAAOpG,GAEP,OADPA,EAAQm6gB,EAAuB/zgB,OAAOpG,EAAM,GAAIA,EAAM,MACtC,CAACA,EAAM,GAAK0nK,EAAU1nK,EAAM,GAAK0nK,GAqDnD,SAAS6yW,IACP,IAAI91gB,EAASm1gB,GAAqBllhB,EAAG,EAAG,EAAGkuB,EAAIC,EAAIgJ,GAAOz1C,MAAM,KAAMwgK,EAAQqyX,EAAQ95I,IAAO62H,GAAcn6d,EAAQ+tf,GAAuBD,IAAgBjlhB,EAAGpd,EAAImtB,EAAO,GAAIltB,EAAIktB,EAAO,GAAIme,EAAIC,EAAIgJ,GAKnM,OAJSxD,EAAA4kf,GAAcC,EAAaC,EAAUC,GAC3B8M,EAAApN,GAAQl2X,EAASovW,GACXm0B,EAAArN,GAAQzkf,EAAQ6xf,GACvBD,EAAAlB,GAASmB,EAAkB/I,GACtCvvT,IAET,SAASA,IAEA,OADPx5N,EAAQgyhB,EAAc,KACf9B,EAET,OA/DYA,EAAAxkd,OAAS,SAASA,GAC5B,OAAO1rE,GAASgyhB,IAAgBtmd,EAAS1rE,EAAQA,EAAQsxhB,GA9C7D,SAAyBrxf,GACvB,OAAO+vf,GAAY,CACjBp4gB,MAAO,SAAS1oB,EAAGC,GACb,IAAAqyB,EAAIye,EAAO/wC,EAAGC,GACX,OAAA3E,KAAKkhF,OAAO9zD,MAAM4J,EAAE,GAAIA,EAAE,OA0CuC4wgB,CAAgBnyf,EAAhBmyf,CAAwBH,EAAQJ,EAAgBK,EAASF,EAActmd,MACnJ,EACYwkd,EAAA+B,QAAU,SAAS/mhB,GAC7B,OAAOhhB,UAAUpG,QAAUmuiB,EAAU/mhB,EAAGo7B,OAAQ,EAAQkzL,KAAWy4T,CACrE,EACY/B,EAAAgC,SAAW,SAAShnhB,GACvB,OAAAhhB,UAAUpG,QAAUouiB,EAAWhnhB,EAAGk+X,EAAMC,EAAM7sW,EAAMC,EAAM,KAAM+8L,KAAW04T,CACpF,EACYhC,EAAAmC,UAAY,SAASnnhB,GAC/B,OAAOhhB,UAAUpG,QAAUmuiB,GAAW/mhB,EAAIq9gB,GAAWjif,EAAQp7B,EAAIkogB,IAAa9se,EAAQ,KAAM4hf,IAAmB1uT,KAAWlzL,EAAQg5I,CACpI,EACY4wW,EAAAp2f,WAAa,SAAS5uB,GACzB,OAAAhhB,UAAUpG,QAAUouiB,EAAgB,MAALhnhB,GAAak+X,EAAMC,EAAM7sW,EAAMC,EAAM,KAAM0W,IAAai2e,GAAchgJ,GAAOl+X,EAAE,GAAG,GAAIm+X,GAAOn+X,EAAE,GAAG,GAAIsxB,GAAOtxB,EAAE,GAAG,GAAIuxB,GAAOvxB,EAAE,GAAG,IAAKsuN,KAAkB,MAAP4vK,EAAc,KAAO,CAAC,CAACA,EAAKC,GAAM,CAAC7sW,EAAKC,GAClO,EACYyzf,EAAA/xgB,MAAQ,SAASjT,GAC3B,OAAOhhB,UAAUpG,QAAUwoB,GAAKpB,EAAGinhB,KAAc7lhB,CACnD,EACY4jhB,EAAA9xgB,UAAY,SAASlT,GAC/B,OAAOhhB,UAAUpG,QAAUoL,GAAKgc,EAAE,GAAI/b,GAAK+b,EAAE,GAAIinhB,KAAc,CAACjjiB,EAAGC,EACrE,EACY+giB,EAAA7zgB,OAAS,SAASnR,GACrB,OAAAhhB,UAAUpG,QAAU+8hB,EAAS31gB,EAAE,GAAK,IAAMkogB,EAAUrsI,EAAM77X,EAAE,GAAK,IAAMkogB,EAAU+e,KAAc,CAACtR,EAASvhW,EAAUynN,EAAMznN,EAClI,EACY4wW,EAAAjwf,OAAS,SAAS/0B,GAC5B,OAAOhhB,UAAUpG,QAAUghiB,EAAc55gB,EAAE,GAAK,IAAMkogB,EAAU2R,EAAW75gB,EAAE,GAAK,IAAMkogB,EAAU4R,EAAa95gB,EAAEpnB,OAAS,EAAIonB,EAAE,GAAK,IAAMkogB,EAAW,EAAG+e,KAAc,CAACrN,EAAcxlW,EAAUylW,EAAWzlW,EAAU0lW,EAAa1lW,EACpO,EACY4wW,EAAAl5f,MAAQ,SAAS9rB,GACpB,OAAAhhB,UAAUpG,QAAU2/C,EAAQv4B,EAAI,IAAMkogB,EAAU+e,KAAc1uf,EAAQ67I,CAC/E,EACY4wW,EAAAoC,SAAW,SAASpnhB,GACvB,OAAAhhB,UAAUpG,QAAU02C,EAAKtvB,KAAS,EAAGinhB,KAAc33f,EAAK,CACjE,EACY01f,EAAAqC,SAAW,SAASrnhB,GACvB,OAAAhhB,UAAUpG,QAAU22C,EAAKvvB,KAAS,EAAGinhB,KAAc13f,EAAK,CACjE,EACYy1f,EAAA5+d,UAAY,SAASpmD,GAC/B,OAAOhhB,UAAUpG,QAAU+tiB,EAAkBlB,GAASmB,EAAkB/I,EAAS79gB,EAAIA,GAAIsuN,KAAWrwN,EAAK4/gB,EAC3G,EACYmH,EAAAE,UAAY,SAASC,EAASrxB,GACjC,OAAAoxB,GAAUF,EAAaG,EAASrxB,EACzC,EACYkxB,EAAAI,QAAU,SAASxmiB,EAAMk1gB,GAC5B,OAAAsxB,GAAQJ,EAAapmiB,EAAMk1gB,EACpC,EACYkxB,EAAAK,SAAW,SAASzge,EAAOkvc,GAC9B,OAAAuxB,GAASL,EAAapge,EAAOkvc,EACtC,EACYkxB,EAAAM,UAAY,SAAShoc,EAAQw2a,GAChC,OAAAwxB,GAAUN,EAAa1nc,EAAQw2a,EACxC,EAaO,WAGL,OAFUxwW,EAAAojY,EAAU5jiB,MAAMxD,KAAMN,WACpBgmiB,EAAAlygB,OAASwwI,EAAQxwI,QAAUA,EAChCm0gB,GACT,EAEF,SAASK,GAAgBZ,GACvB,IAAIlL,EAAQ,EAAGM,EAAQ/ve,EAAK,EAAG1xD,EAAIosiB,GAAkBC,GAAY33hB,EAAI1U,EAAEmhiB,EAAOM,GAIvE,OAHL/shB,EAAAw4hB,UAAY,SAASvnhB,GACrB,OAAOhhB,UAAUpG,OAASyB,EAAEmhiB,EAAQx7gB,EAAE,GAAKkogB,EAAU4T,EAAQ97gB,EAAE,GAAKkogB,GAAY,CAACsT,EAAQpnW,EAAU0nW,EAAQ1nW,EAC7G,EACOrlL,EAYA,SAAAy4hB,GAAkBrpJ,EAAK5sW,GAC1B,IAAA45d,EAAMt0e,EAAIsnX,GAAMr+Y,GAAKqrgB,EAAMt0e,EAAI0a,IAAQ,EAC3C,GAAIp2C,EAAI2E,GAAK0vO,EAAS,OAZxB,SAAiCgsT,GAC3B,IAAAE,EAAW9kgB,EAAI4kgB,GACV,SAAA7mT,EAAQghT,EAAQ95I,GACvB,MAAO,CAAC85I,EAAS+F,EAAU7kgB,EAAIglX,GAAO6/I,GAKjC,OAHC/mT,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,MAAO,CAACD,EAAI03hB,EAAUjsgB,EAAKxrB,EAAIy3hB,GACjC,EACO/mT,EAIsB8yT,CAAwBtpJ,GACjD,IAAAljZ,EAAI,EAAIkwgB,GAAO,EAAIrrgB,EAAIqrgB,GAAMz6e,EAAKzS,EAAKhjB,GAAK6E,EACvC,SAAAwjK,EAAQt/J,EAAGC,GACd,IAAAqyB,EAAIrY,EAAKhjB,EAAI,EAAI6E,EAAI+2B,EAAI5yB,IAAMnE,EAC5B,MAAA,CAACw2B,EAAIO,EAAI7yB,GAAKlE,GAAI4wB,EAAK4F,EAAIM,EAAI5yB,IAQjC,OANCs/J,EAAAxwI,OAAS,SAAS9uB,EAAGC,GACvB,IAAAyjiB,EAAMh3gB,EAAKzsB,EAAGgf,EAAIsU,EAAMvzB,EAAG7I,EAAIusiB,IAAQ51e,EAAK41e,GAGhD,OAFIA,EAAM5niB,EAAI,IACZmjB,GAAK8oC,EAAK+F,EAAK9tD,GAAK8tD,EAAK41e,IACpB,CAACzkhB,EAAInjB,EAAG2vB,GAAMx0B,GAAK+I,EAAIA,EAAI0jiB,EAAMA,GAAO5niB,EAAIA,IAAM,EAAIA,IAC/D,EACOwjK,EAET,SAASqkY,KACA,OAAAL,GAAgBE,IAAmBv0gB,MAAM,SAAS9B,OAAO,CAAC,EAAG,UAEtE,SAASo8e,KACA,OAAAo6B,KAAiBJ,UAAU,CAAC,KAAM,OAAOt0gB,MAAM,MAAMC,UAAU,CAAC,IAAK,MAAM6hB,OAAO,CAAC,GAAI,IAAI5jB,OAAO,EAAO,GAAA,OAkFlH,SAASy2gB,GAAa30gB,GACb,OAAA,SAASjvB,EAAGC,GACb,IAAAgxB,EAAK2B,EAAI5yB,GAAIkxB,EAAK0B,EAAI3yB,GAAImd,EAAI6R,EAAMgC,EAAKC,GACtC,MAAA,CACL9T,EAAI8T,EAAK2B,EAAI7yB,GACbod,EAAIyV,EAAI5yB,GAEZ,EAEF,SAAS4jiB,GAAgBvM,GAChB,OAAA,SAASt3hB,EAAGC,GACjB,IAAIif,EAAIjF,EAAKja,EAAIA,EAAIC,EAAIA,GAAIhJ,EAAIqgiB,EAAOp4gB,GAAI0gE,EAAK/sD,EAAI57B,GAAIoha,EAAKzlY,EAAI37B,GAC3D,MAAA,CACLs8B,EAAMvzB,EAAI4/E,EAAI1gE,EAAIm5Y,GAClB5sY,EAAKvM,GAAKjf,EAAI2/E,EAAK1gE,GAEvB,EAEE,IAAA4khB,GAAwBF,IAAa,SAASG,GACzC,OAAA9phB,EAAK,GAAK,EAAI8phB,GAAK,IAEND,GAAAh1gB,OAAS+0gB,IAAgB,SAAS3khB,GAC/C,OAAA,EAAIuM,EAAKvM,EAAI,EAAC,IAKnB,IAAA8khB,GAA0BJ,IAAa,SAAS3siB,GAClD,OAAQA,EAAI4uD,EAAK5uD,KAAOA,EAAI47B,EAAI57B,EAAC,IAQ1B,SAAAgtiB,GAAYtS,EAAQ95I,GACpB,MAAA,CAAC85I,EAAQr6hB,EAAIylC,GAAKyyf,EAAS33I,GAAO,KAQ3C,SAASqsJ,GAAmB5kY,GAC1B,IAAiI66O,EAAK7sW,EAAKC,EAAvIl3C,EAAI6wD,GAAWo4G,GAAUnyI,EAAS92B,EAAE82B,OAAQ8B,EAAQ54B,EAAE44B,MAAOC,EAAY74B,EAAE64B,UAAW0b,EAAav0C,EAAEu0C,WAAYsvW,EAAM,KAa3H,SAASiqJ,IACP,IAAI/mhB,EAAI2qC,EAAK94B,IAAStU,EAAItkB,EAAEgoM,GAAShoM,EAAE06C,UAAUjiB,OAAO,CAAC,EAAG,KAC5D,OAAO8b,EAAkB,MAAPsvW,EAAc,CAAC,CAACv/X,EAAE,GAAKyC,EAAGzC,EAAE,GAAKyC,GAAI,CAACzC,EAAE,GAAKyC,EAAGzC,EAAE,GAAKyC,IAAMkiJ,IAAY2kY,GAAc,CAAC,CAACntiB,KAAK8J,IAAI+Z,EAAE,GAAKyC,EAAG88X,GAAMC,GAAM,CAACrjZ,KAAKoH,IAAIyc,EAAE,GAAKyC,EAAGkwB,GAAMC,IAAQ,CAAC,CAAC2sW,EAAKpjZ,KAAK8J,IAAI+Z,EAAE,GAAKyC,EAAG+8X,IAAO,CAAC7sW,EAAKx2C,KAAKoH,IAAIyc,EAAE,GAAKyC,EAAGmwB,MAExO,OAhBEl3C,EAAA44B,MAAQ,SAASjT,GACjB,OAAOhhB,UAAUpG,QAAUq6B,EAAMjT,GAAImohB,KAAYl1gB,GACnD,EACE54B,EAAA64B,UAAY,SAASlT,GACrB,OAAOhhB,UAAUpG,QAAUs6B,EAAUlT,GAAImohB,KAAYj1gB,GACvD,EACE74B,EAAA82B,OAAS,SAASnR,GAClB,OAAOhhB,UAAUpG,QAAUu4B,EAAOnR,GAAImohB,KAAYh3gB,GACpD,EACE92B,EAAAu0C,WAAa,SAAS5uB,GACf,OAAAhhB,UAAUpG,QAAe,MAALonB,EAAYk+X,EAAMC,EAAM7sW,EAAMC,EAAM,MAAQ2sW,GAAOl+X,EAAE,GAAG,GAAIm+X,GAAOn+X,EAAE,GAAG,GAAIsxB,GAAOtxB,EAAE,GAAG,GAAIuxB,GAAOvxB,EAAE,GAAG,IAAKmohB,KAAmB,MAAPjqJ,EAAc,KAAO,CAAC,CAACA,EAAKC,GAAM,CAAC7sW,EAAKC,GAC9L,EAKO42f,IAET,SAASC,GAAKnkiB,GACL,OAAA88B,GAAKyyf,EAASvvhB,GAAK,GAEnB,SAAAokiB,GAAkBlqJ,EAAK5sW,GAC9B,IAAIkZ,EAAM7zB,EAAIunX,GAAMr+Y,EAAIq+Y,IAAQ5sW,EAAM1a,EAAIsnX,GAAO7iZ,EAAImvD,EAAM7zB,EAAI2a,IAAQj2C,EAAI8siB,GAAK72f,GAAO62f,GAAKjqJ,IAAO1jY,EAAIgwC,EAAM1vD,EAAIqtiB,GAAKjqJ,GAAMr+Y,GAAKA,EAC7H,IAACA,EAAU,OAAAmoiB,GACN,SAAA3kY,EAAQt/J,EAAGC,GACdwW,EAAI,EACFxW,GAAKuvhB,EAAShkT,IAASvrO,GAAKuvhB,EAAShkT,GAErCvrO,EAAIuvhB,EAAShkT,IAASvrO,EAAIuvhB,EAAShkT,GAEzC,IAAIl5M,EAAI7b,EAAI1f,EAAIqtiB,GAAKnkiB,GAAInE,GAClB,MAAA,CAACw2B,EAAIO,EAAI/2B,EAAIkE,GAAIyW,EAAI6b,EAAIM,EAAI92B,EAAIkE,IAQnC,OANCs/J,EAAAxwI,OAAS,SAAS9uB,EAAGC,GACvB,IAAA2iC,EAAKnsB,EAAIxW,EAAGqyB,EAAIw7B,EAAKhyD,GAAKme,EAAKja,EAAIA,EAAI4iC,EAAKA,GAAK3jB,EAAIsU,EAAMvzB,EAAG7I,EAAIyrC,IAAOkrB,EAAKlrB,GAGlF,OAFIA,EAAK9mC,EAAI,IACXmjB,GAAK8oC,EAAK+F,EAAK9tD,GAAK8tD,EAAKlrB,IACpB,CAAC3jB,EAAInjB,EAAG,EAAI+vG,EAAK90G,EAAI0f,EAAI6b,EAAG,EAAIx2B,IAAM0zhB,EAC/C,EACOlwX,EAKA,SAAAglY,GAAmB3S,EAAQ95I,GAC3B,MAAA,CAAC85I,EAAQ95I,GAMT,SAAA0sJ,GAAoBpqJ,EAAK5sW,GAChC,IAAIkZ,EAAM7zB,EAAIunX,GAAMr+Y,EAAIq+Y,IAAQ5sW,EAAM1a,EAAIsnX,IAAQ1zV,EAAM7zB,EAAI2a,KAASA,EAAM4sW,GAAMnsX,EAAIy4B,EAAM3qD,EAAIq+Y,EAC/F,GAAIhjZ,EAAI2E,GAAK0vO,EAAgB,OAAA84T,GACpB,SAAAhlY,EAAQt/J,EAAGC,GAClB,IAAIukiB,EAAKx2gB,EAAI/tB,EAAG0tC,EAAK7xC,EAAIkE,EAClB,MAAA,CAACwkiB,EAAK3xgB,EAAI8a,GAAK3f,EAAIw2gB,EAAK5xgB,EAAI+a,IAQ9B,OANC2xH,EAAAxwI,OAAS,SAAS9uB,EAAGC,GACvB,IAAAukiB,EAAKx2gB,EAAI/tB,EAAGgf,EAAIsU,EAAMvzB,EAAG7I,EAAIqtiB,IAAO12e,EAAK02e,GAG7C,OAFIA,EAAK1oiB,EAAI,IACXmjB,GAAK8oC,EAAK+F,EAAK9tD,GAAK8tD,EAAK02e,IACpB,CAACvlhB,EAAInjB,EAAGkyB,EAAI8/B,EAAKhyD,GAAKme,EAAKja,EAAIA,EAAIwkiB,EAAKA,GACjD,EACOllY,EAjFe0kY,GAAAl1gB,OAAS+0gB,IAAgB,SAAS3khB,GACjD,OAAAA,CAAA,IAQG+khB,GAAAn1gB,OAAS,SAAS9uB,EAAGC,GACxB,MAAA,CAACD,EAAG,EAAI6rG,EAAKlgF,EAAI1rB,IAAMuvhB,EAChC,EAqDA8U,GAAmBx1gB,OAASw1gB,GAsB5B,IAAIG,GAAK,SAAUx3Z,IAAK,QAAWy3Z,GAAK,OAAQC,GAAK,QAAS/qe,GAAI3/C,EAAK,GAAK,EACnE,SAAA2qhB,GAAcjT,EAAQ95I,GAC7B,IAAI54X,EAAIwM,EAAKmuC,GAAI/mC,EAAIglX,IAAOptQ,EAAKxrH,EAAIA,EAAG4lhB,EAAKp6Z,EAAKA,EAAKA,EAChD,MAAA,CACLknZ,EAAS/+f,EAAI3T,IAAM26C,IAAK6qe,GAAK,EAAIx3Z,GAAKxC,EAAKo6Z,GAAM,EAAIH,GAAK,EAAIC,GAAKl6Z,KACnExrH,GAAKwlhB,GAAKx3Z,GAAKxC,EAAKo6Z,GAAMH,GAAKC,GAAKl6Z,KAmB/B,SAAAq6Z,GAAY9kiB,EAAGC,GACtB,IAAIixB,EAAK0B,EAAI3yB,GAAImd,EAAIwV,EAAI5yB,GAAKkxB,EACvB,MAAA,CAACA,EAAK2B,EAAI7yB,GAAKod,EAAGyV,EAAI5yB,GAAKmd,GA2E3B,SAAA2nhB,GAAiBpT,EAAQ95I,GAChC,IAAI8pJ,EAAO9pJ,EAAMA,EAAKmtJ,EAAOrD,EAAOA,EAC7B,MAAA,CACLhQ,GAAU,MAAS,QAAWgQ,EAAOqD,GAAoBA,GAAQ,QAAUrD,EAAO,QAAUqD,GAAnC,UACzDntJ,GAAO,SAAW8pJ,GAAQ,QAAWqD,GAAoB,QAAWrD,EAAX,QAAkB,QAAUqD,MAiBhF,SAAAC,GAAgBjliB,EAAGC,GACnB,MAAA,CAAC2yB,EAAI3yB,GAAK4yB,EAAI7yB,GAAI6yB,EAAI5yB,IAMtB,SAAAiliB,GAAiBlliB,EAAGC,GACvB,IAAAixB,EAAK0B,EAAI3yB,GAAImd,EAAI,EAAIwV,EAAI5yB,GAAKkxB,EAC3B,MAAA,CAACA,EAAK2B,EAAI7yB,GAAKod,EAAGyV,EAAI5yB,GAAKmd,GAQ3B,SAAA+nhB,GAAsBxT,EAAQ95I,GAC9B,MAAA,CAACvgZ,EAAIylC,GAAKyyf,EAAS33I,GAAO,KAAM85I,GApI3BiT,GAAA91gB,OAAS,SAAS9uB,EAAGC,GAExB,IADT,IACgBwvG,EADZxwF,EAAIhf,EAAGwqI,EAAKxrH,EAAIA,EAAG4lhB,EAAKp6Z,EAAKA,EAAKA,EAC7Bt2I,EAAI,EAAmBA,EAV0D,KAarD0wiB,GAAZp6Z,GAAlBxrH,GAAAwwF,GAFAxwF,GAAKwlhB,GAAKx3Z,GAAKxC,EAAKo6Z,GAAMH,GAAKC,GAAKl6Z,IAAOxqI,IAC1CwkiB,GAAK,EAAIx3Z,GAAKxC,EAAKo6Z,GAAM,EAAIH,GAAK,EAAIC,GAAKl6Z,KACjBxrH,GAAawrH,EAAKA,IAC9CtzI,EAAIs4G,GAAS8/a,MAJ+Bp7hB,GAM3C,MAAA,CACLylE,GAAI55D,GAAKykiB,GAAK,EAAIx3Z,GAAKxC,EAAKo6Z,GAAM,EAAIH,GAAK,EAAIC,GAAKl6Z,IAAO73G,EAAI3T,GAC/DwM,EAAKoH,EAAI5T,GAAK26C,IAElB,EAQYkre,GAAAh2gB,OAAS+0gB,GAAgBh4b,GAgFpBk5b,GAAAj2gB,OAAS,SAAS9uB,EAAGC,GAChC,IAAiBwvG,EAAjBooS,EAAM53Y,EAAG9L,EAAI,GACd,EAAA,CACD,IAAIwtiB,EAAO9pJ,EAAMA,EAAKmtJ,EAAOrD,EAAOA,EAC7B9pJ,GAAApoS,GAASooS,GAAO,SAAW8pJ,GAAQ,QAAWqD,GAAoB,QAAWrD,EAAvB,QAA8B,QAAUqD,KAAU/kiB,IAAM,SAAW0hiB,GAAQ,QAAeqD,GAAwB,QAAerD,EAA/B,QAAsC,QAAU,GAAKqD,WAC7M7tiB,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GAChC,MAAA,CACL6L,GAAK,OAAU2hiB,EAAO9pJ,EAAMA,IAAoB8pJ,GAAoBA,EAAOA,EAAOA,GAAQ,QAAU,QAAUA,GAAtD,SAApB,UACpC9pJ,EAEJ,EAOgBotJ,GAAAn2gB,OAAS+0gB,GAAgBp4gB,GAQxBy5gB,GAAAp2gB,OAAS+0gB,IAAgB,SAAS3khB,GAC1C,OAAA,EAAI2sF,EAAK3sF,EAAC,IAQGimhB,GAAAr2gB,OAAS,SAAS9uB,EAAGC,GAClC,MAAA,EAAEA,EAAG,EAAI4rG,EAAKlgF,EAAI3rB,IAAMwvhB,EACjC,EAWAl+d,EAAS8ze,UAAY77B,GACrBj4c,EAAS+ze,aAnUT,WACM,IAAAv0hB,EAAOgyhB,EAAiCwC,EAAiGC,EAA+FC,EAAa98gB,EAAjO+8gB,EAAUl8B,KAAwBm8B,EAAS/B,KAAiB5yf,OAAO,CAAC,IAAK,IAAI5jB,OAAO,EAAC,EAAI,OAAOo2gB,UAAU,CAAC,GAAI,KAAmBoC,EAAShC,KAAiB5yf,OAAO,CAAC,IAAK,IAAI5jB,OAAO,EAAK,EAAA,OAAOo2gB,UAAU,CAAC,EAAG,KAA0BqC,EAAc,CAAEl9gB,MAAO,SAAS1oB,EAAGC,GACzRyoB,EAAA,CAAC1oB,EAAGC,EAAC,GAEf,SAAS4liB,EAAWzV,GAClB,IAAIpwhB,EAAIowhB,EAAa,GAAInwhB,EAAImwhB,EAAa,GAC1C,OAAO1ngB,EAAQ,KAAO48gB,EAAa58gB,MAAM1oB,EAAGC,GAAIyoB,IAAW68gB,EAAY78gB,MAAM1oB,EAAGC,GAAIyoB,KAAW88gB,EAAY98gB,MAAM1oB,EAAGC,GAAIyoB,GAuC1H,SAAS4hN,IAEA,OADPx5N,EAAQgyhB,EAAc,KACf+C,EAEF,OAzCIA,EAAA/2gB,OAAS,SAASshgB,GACvB,IAAAhzgB,EAAIqohB,EAAQx2gB,QAAStU,EAAI8qhB,EAAQv2gB,YAAalvB,GAAKowhB,EAAa,GAAKz1gB,EAAE,IAAMyC,EAAGnd,GAAKmwhB,EAAa,GAAKz1gB,EAAE,IAAMyC,EAC3G,OAAAnd,GAAK,KAAQA,EAAI,MAASD,IAAe,MAAAA,QAAa0liB,EAASzliB,GAAK,MAASA,EAAI,MAASD,IAAe,MAAAA,QAAa2liB,EAASF,GAAS32gB,OAAOshgB,EACzJ,EACWyV,EAAArpd,OAAS,SAASA,GACpB,OAAA1rE,GAASgyhB,IAAgBtmd,EAAS1rE,GA1C1B24W,EA0CoD,CAACg8K,EAAQjpd,OAAOsmd,EAActmd,GAASkpd,EAAOlpd,OAAOA,GAASmpd,EAAOnpd,OAAOA,IAzC7I1gF,EAAI2tX,EAAQ70X,OAyCmCkc,EAxC5C,CACL4X,MAAO,SAAS1oB,EAAGC,GAEV,IADP,IAAI9L,GAAI,IACCA,EAAI2H,GAAG2tX,EAAQt1X,GAAGu0B,MAAM1oB,EAAGC,EACtC,EACAgwhB,OAAQ,WAEN,IADA,IAAI97hB,GAAI,IACCA,EAAI2H,GAAW2tX,EAAAt1X,GAAG87hB,QAC7B,EACAQ,UAAW,WAET,IADA,IAAIt8hB,GAAI,IACCA,EAAI2H,GAAW2tX,EAAAt1X,GAAGs8hB,WAC7B,EACAC,QAAS,WAEP,IADA,IAAIv8hB,GAAI,IACCA,EAAI2H,GAAW2tX,EAAAt1X,GAAGu8hB,SAC7B,EACAC,aAAc,WAEZ,IADA,IAAIx8hB,GAAI,IACCA,EAAI2H,GAAW2tX,EAAAt1X,GAAGw8hB,cAC7B,EACAC,WAAY,WAEV,IADA,IAAIz8hB,GAAI,IACCA,EAAI2H,GAAW2tX,EAAAt1X,GAAGy8hB,gBAzBjC,IAAmBnnK,EACb3tX,CA0CJ,EACW+piB,EAAAzje,UAAY,SAASpmD,GAC9B,OAAKhhB,UAAUpG,QACP6wiB,EAAArje,UAAUpmD,GAAI0phB,EAAOtje,UAAUpmD,GAAI2phB,EAAOvje,UAAUpmD,GACrDsuN,KAFuBm7T,EAAQrje,WAGxC,EACWyje,EAAA52gB,MAAQ,SAASjT,GAC1B,OAAKhhB,UAAUpG,QACP6wiB,EAAAx2gB,MAAMjT,GAAI0phB,EAAOz2gB,MAAU,IAAJjT,GAAW2phB,EAAO12gB,MAAMjT,GAChD6phB,EAAW32gB,UAAUu2gB,EAAQv2gB,cAFNu2gB,EAAQx2gB,OAGxC,EACW42gB,EAAA32gB,UAAY,SAASlT,GAC9B,IAAKhhB,UAAUpG,OAAQ,OAAO6wiB,EAAQv2gB,YACtC,IAAI9R,EAAIqohB,EAAQx2gB,QAASjvB,GAAKgc,EAAE,GAAI/b,GAAK+b,EAAE,GAI3C,OAHesphB,EAAAG,EAAQv2gB,UAAUlT,GAAG4uB,WAAW,CAAC,CAAC5qC,EAAI,KAAQod,EAAGnd,EAAI,KAAQmd,GAAI,CAACpd,EAAI,KAAQod,EAAGnd,EAAI,KAAQmd,KAAKo/D,OAAOopd,GACxHL,EAAcG,EAAOx2gB,UAAU,CAAClvB,EAAI,KAAQod,EAAGnd,EAAI,KAAQmd,IAAIwtB,WAAW,CAAC,CAAC5qC,EAAI,KAAQod,EAAIouN,EAASvrO,EAAI,IAAOmd,EAAIouN,GAAU,CAACxrO,EAAI,KAAQod,EAAIouN,EAASvrO,EAAI,KAAQmd,EAAIouN,KAAWhvJ,OAAOopd,GAC1LJ,EAAcG,EAAOz2gB,UAAU,CAAClvB,EAAI,KAAQod,EAAGnd,EAAI,KAAQmd,IAAIwtB,WAAW,CAAC,CAAC5qC,EAAI,KAAQod,EAAIouN,EAASvrO,EAAI,KAAQmd,EAAIouN,GAAU,CAACxrO,EAAI,KAAQod,EAAIouN,EAASvrO,EAAI,KAAQmd,EAAIouN,KAAWhvJ,OAAOopd,GACpLt7T,GACT,EACWu7T,EAAA3E,UAAY,SAASC,EAASrxB,GAChC,OAAAoxB,GAAU2E,EAAY1E,EAASrxB,EACxC,EACW+1B,EAAAzE,QAAU,SAASxmiB,EAAMk1gB,GAC3B,OAAAsxB,GAAQyE,EAAYjriB,EAAMk1gB,EACnC,EACW+1B,EAAAxE,SAAW,SAASzge,EAAOkvc,GAC7B,OAAAuxB,GAASwE,EAAYjle,EAAOkvc,EACrC,EACW+1B,EAAAvE,UAAY,SAAShoc,EAAQw2a,GAC/B,OAAAwxB,GAAUuE,EAAYvsc,EAAQw2a,EACvC,EAKO+1B,EAAW52gB,MAAM,OAmR1BqiC,EAASw0e,QAhjET,SAAch2B,GAGZ,OAFAshB,EAAQ9mT,QACRumT,EAAU/gB,EAASuhB,GACF,EAAVD,GA8iET9/d,EAASy0e,sBA1PT,WACS,OAAA7+e,GAAW48e,IAAuB70gB,MAAM,QAAQk0gB,UAAU,UA0PnE7xe,EAAS00e,yBAA2BlC,GACpCxye,EAAS20e,wBAnPT,WACS,OAAA/+e,GAAW88e,IAAyB/0gB,MAAM,SAASk0gB,UAAU,UAmPtE7xe,EAAS40e,2BAA6BlC,GACtC1ye,EAAS60e,UA36DT,SAAgBr1B,GACd,IAAI38gB,EAAG2H,EAAGiE,EAAG9F,EAAG0hB,EAAQyqhB,EAAU32b,EAI9B,GAHGmjb,GAAAD,KAAYF,GAAYC,GAAO77hB,KACtCu7b,GAAS,GACTy+F,EAAU/f,EAAS8iB,IACf93hB,EAAIs2b,GAAOx9b,OAAQ,CAErB,IADAw9b,GAAOt4a,KAAK66gB,IACPxgiB,EAAI,EAAkBwnB,EAAS,CAAxB5b,EAAIqyb,GAAO,IAAkBj+b,EAAI2H,IAAK3H,EAE5CygiB,GAAc70hB,GADlB9F,EAAIm4b,GAAOj+b,IACY,KAAOygiB,GAAc70hB,EAAG9F,EAAE,KAC3C6tC,GAAM/nC,EAAE,GAAI9F,EAAE,IAAM6tC,GAAM/nC,EAAE,GAAIA,EAAE,QAAO,GAAK9F,EAAE,IAChD6tC,GAAM7tC,EAAE,GAAI8F,EAAE,IAAM+nC,GAAM/nC,EAAE,GAAIA,EAAE,QAAO,GAAK9F,EAAE,KAE7C0hB,EAAA1mB,KAAK8K,EAAI9F,GAGpB,IAAKmsiB,GAAW,IAAkCjyiB,EAAI,EAAG4L,EAAI4b,EAAlC7f,EAAI6f,EAAO/mB,OAAS,GAAyBT,GAAK2H,EAAGiE,EAAI9F,IAAK9F,EACvF8F,EAAI0hB,EAAOxnB,IACNs7G,EAAQ3nE,GAAM/nC,EAAE,GAAI9F,EAAE,KAAOmsiB,IAAUA,EAAW32b,EAAOgjb,GAAYx4hB,EAAE,GAAI04hB,GAAU5yhB,EAAE,IAIzF,OADPqyb,GAASzqb,GAAQ,KACV8qhB,KAAc57hB,KAAY67hB,KAAS77hB,IAAW,CAAC,CAACD,IAAKA,KAAM,CAACA,IAAKA,MAAQ,CAAC,CAAC67hB,GAAWC,IAAO,CAACC,GAASC,MAs5DhHthe,EAAS+0e,YAr0DT,SAAkBv2B,GACXkjB,GAAAC,GAAKC,GAAK5yD,GAAK6yD,GAAKC,GAAKvuC,GAAKwuC,GAAKC,GAAKC,GAAKC,GAAK,EACvD3C,EAAU/gB,EAAS+kB,IACf,IAAA70hB,EAAIszhB,GAAIrzhB,EAAIszhB,GAAIr0gB,EAAIs0gB,GAAIn9hB,EAAI2J,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,EACpD,OAAI7oB,EAAIk5hB,IACFvvhB,EAAAozhB,GAAInzhB,EAAI4kf,GAAI3le,EAAIm0gB,GAChBJ,GAAKznT,IAASxrO,EAAIkzhB,GAAIjzhB,EAAIqge,GAAIphd,EAAIi0gB,KACtC98hB,EAAI2J,EAAIA,EAAIC,EAAIA,EAAIif,EAAIA,GAChBqwgB,GAAkB,CAAC34hB,IAAKA,KAE3B,CAAC28B,EAAMtzB,EAAGD,GAAKowL,EAAU3kK,EAAKvM,EAAIjF,EAAK5jB,IAAM+5L,IA4zDtD9+H,EAASg1e,UAvuDT,WACE,IAA+E95J,EAAMz7V,EAAjF5jB,EAASupX,GAAS,CAAC,EAAG,IAAK14V,EAAS04V,GAAS,IAAKt0U,EAAYs0U,GAAS,GAAkBl6T,EAAS,CAAE9zD,MAC/F,SAAM1oB,EAAGC,GAChBusY,EAAKv3Y,KAAK+K,EAAI+wC,EAAO/wC,EAAGC,IACxBD,EAAE,IAAMowL,EAAUpwL,EAAE,IAAMowL,IAE5B,SAASm2W,IACP,IAAItviB,EAAIk2B,EAAOruB,MAAMxD,KAAMN,WAAYs3B,EAAI0rB,EAAOl/C,MAAMxD,KAAMN,WAAakphB,EAAUn5gB,EAAIq3D,EAAUtjE,MAAMxD,KAAMN,WAAakphB,EAMrH,OALP13I,EAAO,GACPz7V,EAAS4kf,IAAe1+hB,EAAE,GAAKithB,GAAWjthB,EAAE,GAAKithB,EAAU,GAAGp1f,OACjDyngB,GAAA/5c,EAAQlqD,EAAGvnB,EAAG,GAC3B9T,EAAI,CAAEqD,KAAM,UAAW6oC,YAAa,CAACqpW,IACrCA,EAAOz7V,EAAS,KACT95C,EAWF,OATCsviB,EAAAp5gB,OAAS,SAASnR,GACxB,OAAOhhB,UAAUpG,QAAUu4B,EAAsB,mBAANnR,EAAmBA,EAAI06X,GAAS,EAAE16X,EAAE,IAAKA,EAAE,KAAMuqhB,GAAWp5gB,CACzG,EACQo5gB,EAAAvof,OAAS,SAAShiC,GACjB,OAAAhhB,UAAUpG,QAAUopD,EAAsB,mBAANhiC,EAAmBA,EAAI06X,IAAU16X,GAAIuqhB,GAAWvof,CAC7F,EACQuof,EAAAnke,UAAY,SAASpmD,GACpB,OAAAhhB,UAAUpG,QAAUwtE,EAAyB,mBAANpmD,EAAmBA,EAAI06X,IAAU16X,GAAIuqhB,GAAWnke,CAChG,EACOmke,GAgtDTj1e,EAASk1e,oBAAsBxN,GAC/B1ne,EAASm1e,cAAgBpN,GACzB/ne,EAASo1e,cA3pCT,WACM,IAAwC51hB,EAAOgyhB,EAAa5L,EAA5Dh9I,EAAM,EAAGC,EAAM,EAAG7sW,EAAM,IAAKC,EAAM,IACvC,OAAO2pf,EAAQ,CACb16c,OAAQ,SAASA,GACf,OAAO1rE,GAASgyhB,IAAgBtmd,EAAS1rE,EAAQA,EAAQophB,GAAchgJ,EAAKC,EAAK7sW,EAAKC,EAA7B2sf,CAAkC4I,EAActmd,EAC3G,EACApjE,OAAQ,SAAS4C,GACf,OAAOhhB,UAAUpG,QAAUslZ,GAAOl+X,EAAE,GAAG,GAAIm+X,GAAOn+X,EAAE,GAAG,GAAIsxB,GAAOtxB,EAAE,GAAG,GAAIuxB,GAAOvxB,EAAE,GAAG,GAAIlL,EAAQgyhB,EAAc,KAAM5L,GAAS,CAAC,CAACh9I,EAAKC,GAAM,CAAC7sW,EAAKC,OAqpCzJ+jB,EAASq1e,iBAAmBzM,GAC5B5oe,EAASs1e,kBArMT,WACS,OAAAtD,GAAgBe,IAAmBp1gB,MAAM,OAAOs0gB,UAAU,CAAC,GAAI,MAqMxEjye,EAASu1e,qBAAuBxC,GAChC/ye,EAASw1e,kBAAoBnD,GAC7Brye,EAASy1e,qBAAuBvD,GAChClye,EAAS01e,oBAhLT,WACS,OAAA1D,GAAgBiB,IAAqBt1gB,MAAM,SAAS9B,OAAO,CAAC,EAAG,WAgLxEmkC,EAAS21e,uBAAyB1C,GAClCjze,EAAS41e,YAziCA,SAASp3B,EAASpnf,GACzB,OAAQonf,GAAW6rB,GAAmBvqhB,eAAe0+f,EAAQx1gB,MAAQqhiB,GAAmB7rB,EAAQx1gB,MAAQshiB,IAAkB9rB,EAASpnf,IAyiCrI4oC,EAAS61e,YAAc74f,GACvBgjB,EAAS81e,cA5JT,WACE,OAAOlgf,GAAW09e,IAAe31gB,MAAM,UA4JzCqiC,EAAS+1e,iBAAmBzC,GAC5Btze,EAASg2e,mBAxMT,WACE,OAAOpgf,GAAWo9e,IAAoBr1gB,MAAM,SAwM9CqiC,EAASi2e,sBAAwBjD,GACjChze,EAASk2e,YAxJT,WACE,OAAOtgf,GAAW49e,IAAa71gB,MAAM,SAASk0gB,UAAU,KAwJ1D7xe,EAASm2e,eAAiB3C,GAC1Bxze,EAASo2e,aAAenL,GACxBjre,EAASq2e,eAr9BT,WACE,OAAOpL,QAq9BTjre,EAASs2e,YAzJT,WACM,IAAkDvxJ,EAAIj9H,EAAgB+gI,EAAK7sW,EAAKC,EAK1Dz8B,EAAOgyhB,EAL7B1lhB,EAAI,EAAGwhC,EAAK,EAAGk9G,EAAK,EAAGxwH,EAAK,EAAGC,EAAK,EAAGgJ,EAAQ,EAAW2lW,EAAM,KAAqBxpW,EAAK,EAAGI,EAAK,EAAG49d,EAAaoyB,GAAY,CAChIp4gB,MAAO,SAAS1oB,EAAGC,GACjB,IAAI8K,EAAIi2hB,EAAY,CAAChhiB,EAAGC,IACxB3E,KAAKkhF,OAAO9zD,MAAM3d,EAAE,GAAIA,EAAE,OAE1Bi4hB,EAAW/+e,GACf,SAASqmL,IAIA,OAHP55L,EAAKtzB,EAAIkuB,EACTwF,EAAK1zB,EAAImuB,EACTz6B,EAAQgyhB,EAAc,KACf9B,EAET,SAASA,EAAYj2hB,GACf,IAAA/K,EAAI+K,EAAE,GAAK2lC,EAAIzwC,EAAI8K,EAAE,GAAK+lC,EAC9B,GAAIyD,EAAO,CACL,IAAA55B,EAAI1a,EAAIo2Y,EAAKr2Y,EAAIo5Q,EACjBp5Q,EAAAA,EAAIq2Y,EAAKp2Y,EAAIm5Q,EACbn5Q,EAAA0a,EAEN,MAAO,CAAC3a,EAAI4+C,EAAI3+C,EAAI67J,GA+Cf,OA7CKklY,EAAAlygB,OAAS,SAAS/jB,GACxB,IAAA/K,EAAI+K,EAAE,GAAK6zC,EAAI3+C,EAAI8K,EAAE,GAAK+wJ,EAC9B,GAAIvnH,EAAO,CACL,IAAA55B,EAAI1a,EAAIo2Y,EAAKr2Y,EAAIo5Q,EACjBp5Q,EAAAA,EAAIq2Y,EAAKp2Y,EAAIm5Q,EACbn5Q,EAAA0a,EAEN,MAAO,CAAC3a,EAAI0wC,EAAIzwC,EAAI6wC,EACtB,EACYkwf,EAAAxkd,OAAS,SAASA,GACrB,OAAA1rE,GAASgyhB,IAAgBtmd,EAAS1rE,EAAQA,EAAQ49f,EAAWs0B,EAASF,EAActmd,GAC7F,EACYwkd,EAAAgC,SAAW,SAAShnhB,GACvB,OAAAhhB,UAAUpG,QAAUouiB,EAAWhnhB,EAAGk+X,EAAMC,EAAM7sW,EAAMC,EAAM,KAAM+8L,KAAW04T,CACpF,EACYhC,EAAAp2f,WAAa,SAAS5uB,GACzB,OAAAhhB,UAAUpG,QAAUouiB,EAAgB,MAALhnhB,GAAak+X,EAAMC,EAAM7sW,EAAMC,EAAM,KAAM0W,IAAai2e,GAAchgJ,GAAOl+X,EAAE,GAAG,GAAIm+X,GAAOn+X,EAAE,GAAG,GAAIsxB,GAAOtxB,EAAE,GAAG,GAAIuxB,GAAOvxB,EAAE,GAAG,IAAKsuN,KAAkB,MAAP4vK,EAAc,KAAO,CAAC,CAACA,EAAKC,GAAM,CAAC7sW,EAAKC,GAClO,EACYyzf,EAAA/xgB,MAAQ,SAASjT,GAC3B,OAAOhhB,UAAUpG,QAAUwoB,GAAKpB,EAAGsuN,KAAWltN,CAChD,EACY4jhB,EAAA9xgB,UAAY,SAASlT,GAC/B,OAAOhhB,UAAUpG,QAAUgqD,GAAM5iC,EAAE,GAAI8/I,GAAM9/I,EAAE,GAAIsuN,KAAW,CAAC1rL,EAAIk9G,EACrE,EACYklY,EAAAl5f,MAAQ,SAAS9rB,GAC3B,OAAOhhB,UAAUpG,QAAsCwkR,EAAKvmP,EAAjC0hB,EAAQv4B,EAAI,IAAMkogB,GAA2B7tI,EAAKzjX,EAAI2hB,GAAQ+1L,KAAW/1L,EAAQ67I,CAC9G,EACY4wW,EAAAoC,SAAW,SAASpnhB,GACvB,OAAAhhB,UAAUpG,QAAU02C,EAAKtvB,KAAS,EAAGsuN,KAAWh/L,EAAK,CAC9D,EACY01f,EAAAqC,SAAW,SAASrnhB,GACvB,OAAAhhB,UAAUpG,QAAU22C,EAAKvvB,KAAS,EAAGsuN,KAAW/+L,EAAK,CAC9D,EACYy1f,EAAAE,UAAY,SAASC,EAASrxB,GACjC,OAAAoxB,GAAUF,EAAaG,EAASrxB,EACzC,EACYkxB,EAAAI,QAAU,SAASxmiB,EAAMk1gB,GAC5B,OAAAsxB,GAAQJ,EAAapmiB,EAAMk1gB,EACpC,EACYkxB,EAAAK,SAAW,SAASzge,EAAOkvc,GAC9B,OAAAuxB,GAASL,EAAapge,EAAOkvc,EACtC,EACYkxB,EAAAM,UAAY,SAAShoc,EAAQw2a,GAChC,OAAAwxB,GAAUN,EAAa1nc,EAAQw2a,EACxC,EACOkxB,GAuFT1ve,EAASu2e,eAp9BA,SAAY9niB,EAAG9F,GACtB,IAAIigZ,EAAMn6Y,EAAE,GAAKmkhB,EAAU/pI,EAAMp6Y,EAAE,GAAKmkhB,EAAU52e,EAAMrzC,EAAE,GAAKiqhB,EAAU32e,EAAMtzC,EAAE,GAAKiqhB,EAAUz9d,EAAM7zB,EAAIunX,GAAMgtH,EAAMt0e,EAAIsnX,GAAMxzV,EAAM/zB,EAAI2a,GAAMu6f,EAAMj1gB,EAAI0a,GAAMw6f,EAAMthf,EAAM7zB,EAAIsnX,GAAM8tJ,EAAMvhf,EAAM5zB,EAAIqnX,GAAM+tJ,EAAMthf,EAAM/zB,EAAI0a,GAAM46f,EAAMvhf,EAAM9zB,EAAIya,GAAM52C,EAAI,EAAI+0B,EAAKxR,EAAKy1gB,EAASnif,EAAM4sW,GAAO1zV,EAAME,EAAM+oe,EAASpif,EAAM4sW,KAAQ98X,EAAIyV,EAAIn8B,GACvUugiB,EAAevgiB,EAAI,SAASikB,GAC1B,IAAAwyH,EAAKt6G,EAAIlY,GAAKjkB,GAAK0mB,EAAGw8gB,EAAK/mgB,EAAIn8B,EAAIikB,GAAKyC,EAAGpd,EAAI45hB,EAAKmO,EAAM56Z,EAAK86Z,EAAKhoiB,EAAI25hB,EAAKoO,EAAM76Z,EAAK+6Z,EAAKhphB,EAAI06gB,EAAKzyB,EAAMh6X,EAAK26Z,EAC9G,MAAA,CACLv0gB,EAAMtzB,EAAGD,GAAKowL,EACd78J,EAAMrU,EAAGjF,EAAKja,EAAIA,EAAIC,EAAIA,IAAMmwL,EAClC,EACE,WACF,MAAO,CAAC8pN,EAAM9pN,EAAU+pN,EAAM/pN,EAChC,EAEO,OADP6mW,EAAa3of,SAAW53C,EACjBugiB,GAy8BT3le,EAAS62e,UAAYvziB,GACrB08D,EAAS82e,YAtQT,WACE,OAAOlE,GAAmBD,IAAah1gB,MAAM,IAAMiya,IAsQrD5vY,EAAS+2e,eAAiBpE,GAC1B3ye,EAASg3e,iBAvET,WACE,OAAOphf,GAAW69e,IAAkB91gB,MAAM,UAuE5CqiC,EAASi3e,oBAAsBxD,GAC/Bzze,EAASk3e,gBAlET,WACS,OAAAthf,GAAW+9e,IAAiBh2gB,MAAM,OAAOk0gB,UAAU,YAkE5D7xe,EAASm3e,mBAAqBxD,GAC9B3ze,EAASo3e,QAztBA,SAAM1H,EAAajthB,GACtB,IAAmB40hB,EAAkBC,EAArChJ,EAAc,IAClB,SAASv6e,EAAKyqd,GAKZ,OAJIA,IACyB,mBAAhB8vB,GAA0CgJ,EAAAhJ,aAAaA,EAAY9giB,MAAMxD,KAAMN,YAChF61hB,EAAA/gB,EAAS64B,EAAiBC,KAE/BA,EAAcz+hB,SAgCvB,OA9BKk7C,EAAAthB,KAAO,SAAS+re,GAEnB,OADU+gB,EAAA/gB,EAAS64B,EAAiBlL,KAC7BA,GAAatzhB,QACtB,EACKk7C,EAAA+8S,QAAU,SAAS0tK,GAEtB,OADU+gB,EAAA/gB,EAAS64B,EAAiBpI,KAC7BA,GAAep2hB,QACxB,EACKk7C,EAAA4mD,OAAS,SAAS6ja,GAErB,OADU+gB,EAAA/gB,EAAS64B,EAAiBtK,KAC7BA,GAAel0hB,QACxB,EACKk7C,EAAArhB,SAAW,SAAS8re,GAEvB,OADU+gB,EAAA/gB,EAAS64B,EAAiB5J,KAC7BA,GAAiB50hB,QAC1B,EACKk7C,EAAA6B,WAAa,SAASlrC,GAClB,OAAAhhB,UAAUpG,QAAU+ziB,EAAwB,MAAL3shB,GAAaglhB,EAAc,KAAM/8e,KAAc+8e,EAAchlhB,GAAGwgE,OAAQn3B,GAAQ27e,CAChI,EACK37e,EAAAtxC,QAAU,SAASiI,GAClB,OAAChhB,UAAUpG,QACCg0iB,EAAK,MAAL5shB,GAAajI,EAAU,KAAM,IAAI4shB,IAAgB,IAAIjB,GAAY3rhB,EAAUiI,GAChE,mBAAhB4jhB,GAA4BgJ,EAAchJ,YAAYA,GAC1Dv6e,GAHuBtxC,CAIhC,EACKsxC,EAAAu6e,YAAc,SAAS5jhB,GACtB,OAAChhB,UAAUpG,QACDgriB,EAAa,mBAAN5jhB,EAAmBA,GAAK4shB,EAAchJ,aAAa5jhB,IAAKA,GACtEqpC,GAFuBu6e,CAGhC,EACOv6e,EAAK6B,WAAW85e,GAAajthB,QAAQA,IAmrB9Cu9C,EAASu3e,cAAgB3hf,GACzBoK,EAASw3e,qBAAuBrG,GAChCnxe,EAASy3e,YAAc1qW,GACvB/sI,EAAS03e,iBA9DT,WACE,OAAO9hf,GAAWg+e,IAAkBj2gB,MAAM,KAAKk0gB,UAAU,MA8D3D7xe,EAAS23e,oBAAsB/D,GAC/B5ze,EAASu/d,UAAYA,EACrBv/d,EAAS43e,aAvrBT,SAAmBv8Z,GACV,MAAA,CACLnwD,OAAQskd,GAAYn0Z,KAsrBxBr7E,EAAS63e,sBAzDT,WACM,IAAA9yiB,EAAI6tiB,GAAmBiB,IAAwBh4gB,EAAS92B,EAAE82B,OAAQ4jB,EAAS16C,EAAE06C,OAO1E,OANL16C,EAAA82B,OAAS,SAASnR,GACX,OAAAhhB,UAAUpG,OAASu4B,EAAO,EAAEnR,EAAE,GAAIA,EAAE,KAAsB,EAAdA,EAAImR,KAAa,IAAKnR,EAAE,GAC7E,EACE3lB,EAAA06C,OAAS,SAAS/0B,GAClB,OAAOhhB,UAAUpG,OAASm8C,EAAO,CAAC/0B,EAAE,GAAIA,EAAE,GAAIA,EAAEpnB,OAAS,EAAIonB,EAAE,GAAK,GAAK,KAAsB,EAAdA,EAAI+0B,KAAa,GAAI/0B,EAAE,GAAIA,EAAE,GAAK,GACrH,EACO+0B,EAAO,CAAC,EAAG,EAAG,KAAK9hB,MAAM,UAkDlCqiC,EAAS83e,yBAA2BjE,GACpC7siB,OAAOiH,eAAe+xD,EAAU,aAAc,CAAEt6D,OAAO,GAAM,EArwE1C,iBAAZa,QAA0C,IAAXic,EAAyB/B,EAAQla,EAAS21hB,MAAqIz7gB,GAA3Bs/C,EAAUA,GAAW9mD,MAAsBwM,GAAKs6C,EAAQt6C,IAAM,CAAC,EAAGs6C,EAAQt6C,OA2wEtQsyhB,GAA4Bp2hB,EAAW,CACzC,2DAA2Dpb,EAASic,GACjE,IAASu9C,EAASt/C,EAATs/C,EAEPx5D,EAFgBka,EAEP,SAASu/C,EAAUg4e,EAAOna,GAEpC,IAAIh4hB,EAAML,KAAKK,IACX00G,EAAO/0G,KAAK+0G,KACZt4E,EAAQz8B,KAAKy8B,MACbX,EAAM97B,KAAK87B,IACXjH,EAAM70B,KAAK60B,IACXt0B,EAAQP,KAAKO,MACbC,EAAMR,KAAKQ,IACXsJ,EAAM9J,KAAK8J,IACX1C,EAAMpH,KAAKoH,IACXnH,EAAMD,KAAKC,IACXi7B,EAAQl7B,KAAKk7B,MACb87B,EAAOh3D,KAAKg3D,MAAQ,SAAS9tD,GAC/B,OAAOA,EAAI,EAAI,EAAIA,EAAI,GAAS,EAAA,CAClC,EACI6yB,EAAM/7B,KAAK+7B,IACXkK,EAAMjmC,KAAKimC,IACXyuM,EAAU,KACV+jT,EAAY,MACZxne,EAAKjxD,KAAKu0B,GACVmkgB,EAASzne,EAAK,EACd0ne,EAAY1ne,EAAK,EACjBwhf,EAAUzyiB,KAAK0yiB,QACf57Y,EAAQ3zI,EAAK,GACbwvhB,EAASxvhB,EAAK8tC,GACdm5Y,EAAW,EAALn5Y,EACNqoI,EAAW,IAAMroI,EACjBm8d,EAAWn8d,EAAK,IAIpB,SAASt8B,EAAKzrB,GACL,OAAAA,EAAI,EAAIwvhB,EAASxvhB,MAAUwvhB,EAAS14hB,KAAK20B,KAAKzrB,GAEvD,SAAS6lD,EAAK7lD,GACL,OAAAA,EAAI,EAAI,EAAIA,KAAS+nD,EAAKjxD,KAAK+uD,KAAK7lD,GAE7C,SAASia,EAAKja,GACZ,OAAOA,EAAI,EAAIlJ,KAAKmjB,KAAKja,GAAK,EAMhC,SAAS4gZ,EAAM5gZ,GACb,OAAQ2rB,EAAI3rB,GAAK2rB,GAAK3rB,IAAM,EAE9B,SAAS2gZ,EAAM3gZ,GACb,OAAQ2rB,EAAI3rB,GAAK2rB,GAAK3rB,IAAM,EAQ9B,SAAS0piB,EAAQvxJ,GACf,IAAIwxJ,EAAY5sgB,EAAIo7W,EAAO,GAAIl+Y,EAAI,EAAI3C,EAAIs7B,EAAIulX,EAAO,KAAOwxJ,EAAYA,GAChE,SAAAh5T,EAAQ3wO,EAAGC,GAClB,IAAI2piB,EAAOh3gB,EAAI5yB,GAAI6piB,EAAOj3gB,EAAI3yB,GAAI6piB,EAAOj3gB,EAAI5yB,GAAI8piB,EAAOF,EAAOD,EAAMxna,KAAQ,EAAI2na,EAAOzyiB,GAAK,EAAIyyiB,GAAQ,IAAM,EAAIA,IAAgB,IAAA9viB,GAAK,EAAI8viB,IAC5I,MAAO,CAAC3na,EAAKyna,EAAOh3gB,EAAI7yB,GAAIoiI,EAAK0na,GAY5B,OAVCn5T,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAoDwvG,EAAhDn9E,EAAIrY,EAAKja,EAAIA,EAAIC,EAAIA,GAAIif,GAAKi5X,EAAO,EAAGhkZ,EAAI,GAChD,IAAKm+B,EAAU,MAAA,CAAC,EAAG,GAChB,EAAA,CACD,IAAI03gB,EAAM9qhB,EAAI,EAAG+qhB,EAASr3gB,EAAIo3gB,GAAME,EAASr3gB,EAAIm3gB,GAAMG,EAASD,EAASD,EAAQG,GAAY9yiB,EAAIH,EAAI8yiB,IACrG/qhB,GAAKuwF,GAAS,EAAI06b,EAASC,EAAWnwiB,EAAIkwiB,EAAS73gB,KAAO83gB,GAAYF,EAASA,GAAU,EAAIjwiB,GAAK,EAAIgwiB,EAASA,KAAYA,EAAS,EAAI,GAAM,SACvI9yiB,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GACnC,IAAAk2iB,EAAOx3gB,EAAI3T,GACf,MAAO,CAACqU,EAAMvzB,EAAIqqiB,EAAM/3gB,EAAIM,EAAI1T,IAAKuM,EAAKxrB,EAAIoqiB,EAAO/3gB,GACvD,EACOq+M,EASA,SAAA25T,EAAUtqiB,EAAGC,GACpB,IAAI4piB,EAAOj3gB,EAAI3yB,GAAIsqiB,EAtDrB,SAAevqiB,GACb,OAAOA,EAAIA,EAAIlJ,KAAK+7B,IAAI7yB,GAAK,EAqDDwqiB,CAAM3kf,EAAKgkf,EAAOj3gB,EAAI5yB,GAAK,KAChD,MAAA,CAAC,EAAI6piB,EAAOh3gB,EAAI7yB,GAAKuqiB,EAAQ13gB,EAAI5yB,GAAKsqiB,GAgB/C,SAASE,EAAajT,GAChB,IAAAtG,EAAUr+f,EAAI2kgB,GAAQvG,EAAUr+f,EAAI4kgB,GAAQkT,EAAQlT,GAAS,EAAI,GAAI,EAAImT,EAAU5tgB,EAAI2tgB,EAAQlT,GAAQp1Z,GAAM,EAAI8uZ,EAAUD,GAAW,EACjI,SAAAtgT,EAAQghT,EAAQ95I,GACvB,IAAIk6I,EAASn/f,EAAIilX,GAAM+yJ,EAAYh4gB,EAAI++f,GAAU,GAC1C,MAAA,EACJ,EAAII,GAAUl/f,EAAI8+f,IAClB+Y,EAAQ7yJ,GAAOtkX,EAAMq3gB,EAAWD,GAAW,KAAO,EAAa,IAARD,GAActoa,EAAKvvG,EAAIglX,GAAOo5I,GAAW,EAAIc,GAAUb,EAAU0Z,GAatH,OATCj6T,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAI0xhB,EAAS,EAAG95I,EAAM,EAAG1jZ,EAAI,GAC1B,EAAA,CACD,IAAIy2iB,EAAYh4gB,EAAI++f,GAASkZ,EAAYh4gB,EAAI8+f,GAASI,EAASn/f,EAAIilX,GAAMm6I,EAASn/f,EAAIglX,GAAM6sJ,EAAK,EAAI3S,EAAQpvf,EAAK+hgB,EAAKmG,EAAY7qiB,EAAG4iC,EAAKw/F,EAAK4vZ,EAASf,EAAUyT,EAAKxT,EAAU0Z,EAAY3qiB,EAAG6qiB,EAAYpG,EAAKkG,EAAY,EAAGG,GAAUF,EAAY7Y,EAAQgZ,EAAY9Z,EAAUwT,EAAKmG,EAAY,EAAGI,EAASha,EAAUc,EAASb,EAAU0Z,EAAY5Y,EAAQkZ,EAAcH,EAASC,EAAYC,EAASH,EAAWlZ,GAAWhvf,EAAKmogB,EAASpogB,EAAKsogB,GAAUC,EAAc,EAAGC,GAAQxogB,EAAKqogB,EAAYpogB,EAAKkogB,GAAaI,EAC1f/ziB,EAAIg0iB,GAAQ,IAAWA,GAAA,GAC3BxZ,GAAUC,EAAS/5I,GAAOszJ,SAClBh0iB,EAAIy6hB,GAAWpmT,GAAWr0O,EAAIg0iB,GAAQ3/T,MAAcr3O,EAAI,GAClE,OAAOu2iB,EAAQ7yJ,GAAOtkX,EAAMX,EAAI++f,GAASgZ,GAAW,KAAO,CAAU,EAAThZ,EAAY95I,GAAO,IACjF,EACOlnK,EAyBA,SAAAy6T,EAAUzZ,EAAQ95I,GACzB,IAAIwzJ,EAAStugB,EAAI86W,EAAM,GAAIz1Q,EAAKnoH,EAAK,EAAIoxhB,EAASA,GAASp0iB,EAAI,EAAImrI,EAAKxvG,EAAI++f,GAAU,GAAI3xhB,EAAI6yB,EAAI8+f,GAAUvvZ,EAAKnrI,EAAGgJ,EAAIoriB,EAASp0iB,EAAG2yC,EAAK5pC,EAAIA,EAAG6pC,EAAK5pC,EAAIA,EAClJ,MAAA,CACL,EAAI,EAAID,GAAK,EAAI4pC,EAAK,EAAIC,GAC1B,EAAI,EAAI5pC,GAAK,EAAI,EAAI2pC,EAAKC,IA9DpByggB,EAAAx7gB,OAAS,SAAS9uB,EAAGC,GAC7B,KAAID,EAAIA,EAAI,EAAIC,EAAIA,EAAI8nD,EAAKA,EAAKyjL,GAAlC,CACA,IAAIl+L,EAAMttC,EAAGutC,EAAMttC,EAAG9L,EAAI,GACvB,EAAA,CACG,IAAqRsiB,EAArR60hB,EAAOz4gB,EAAIya,GAAMi+f,EAAS14gB,EAAIya,EAAM,GAAIk+f,EAAS54gB,EAAI0a,EAAM,GAAIw8f,EAAOj3gB,EAAI0a,GAAMs8f,EAAOj3gB,EAAI2a,GAAMk+f,EAAS54gB,EAAI,EAAI0a,GAAMm+f,EAAQ5B,EAAOA,EAAM6B,EAAQ9B,EAAOA,EAAM+B,EAAUL,EAASA,EAAQt0iB,EAAI,EAAI00iB,EAAQH,EAASA,EAAQp1iB,EAAIa,EAAI4uD,EAAKgkf,EAAO2B,GAAUvxhB,EAAKxD,EAAI,EAAIxf,GAAKwf,EAAI,EAAMksB,EAAK,EAAIvsC,EAAIyziB,EAAO0B,EAASvriB,EAAG4iC,EAAKxsC,EAAI0ziB,EAAO7piB,EAAG4riB,EAAOp1hB,GAAKk1hB,EAAQC,EAAUx1iB,EAAIyziB,EAAO2B,EAASE,GAAQ51W,EAAOr/K,GAAK,GAAM60hB,EAAOG,EAAa,EAAJr1iB,EAAQ0ziB,EAAOyB,GAASO,EAAW,IAAJr1hB,GAAYg1hB,EAASF,EAASn1iB,EAAI0ziB,EAAO6B,EAAQL,GAAOS,EAAOt1hB,GAAKi1hB,EAAQF,EAASp1iB,EAAIw1iB,EAAU/B,GAAO3qhB,EAAI42K,EAAOg2W,EAAOC,EAAOF,EAC7kB,IAAK3shB,EAAG,MACJ,IAAA8L,GAAM4X,EAAKkzJ,EAAOnzJ,EAAKopgB,GAAQ7shB,EAAG+L,GAAM0X,EAAKmpgB,EAAOlpgB,EAAKipgB,GAAQ3shB,EACrEouB,GAAOtiB,EAAIuiB,GAAOtiB,SACV9zB,EAAI6zB,GAAMwgN,GAAWr0O,EAAI8zB,GAAMugN,MAAcr3O,EAAI,GACpD,MAAA,CAACm5C,EAAKC,EAR8B,CAS7C,EAuDU69f,EAAAt8gB,OAAS,SAAS9uB,EAAGC,GAE7B,GADYA,GAAK,EAAI,IAAhBD,GAAA,EAAI,IACC7I,EAAI8I,GAAK,EAAU,OAAA,KACzB,IAAwBtJ,EAAI,EAAvBqJ,EAAIA,EAAQC,EAAIA,EAAoB+riB,EAAU/xhB,GAAMtjB,EAAIsjB,EAAKtjB,EAAIA,EAAI,EAAIsJ,EAAIA,IAAM,GAAIgsiB,EAAMxghB,EAAKughB,GAAW,EAAGppf,EAAKopf,EApGhI,SAAgBhsiB,GACd,OAAO1I,EAAI0I,EAAIia,EAAKja,EAAIA,EAAI,IAmG4GksiB,CAAO/0iB,EAAI8I,EAAI+riB,IAAY,EAvGrK,SAAgBhsiB,GACd,OAAO1I,EAAI0I,EAAIia,EAAKja,EAAIA,EAAI,IAsG2ImsiB,CAAOh1iB,EAAI6I,IAAM,EAAGosiB,EAASx5gB,EAAIq5gB,GAAMI,EAAS1rJ,EAAM/9V,GAAKlsD,EAAI21iB,EAASA,EAASD,EAASA,EAC1P,MAAA,CACK,EAAVt+e,EAAK9tD,GAASuzB,EAAMqtX,EAAMh+V,GAAMwpf,EAAQ,IAAO11iB,GACrC,EAAVo3D,EAAK7tD,GAASszB,EAAM84gB,EAASx5gB,EAAIo5gB,GAAM,IAAOv1iB,GAElD,EAIA,IAAI41iB,EAAQryhB,EAAK,GAAIy4gB,EAAOp7hB,EAAI,EAAIs2J,GAC3B,SAAA2+Y,EAAS5a,EAAQ95I,GACpB,IAAA2/I,EAAQrgiB,EAAI0gZ,GAChB,OAAO2/I,EAAQ/H,EAAY,CAACkC,EAAQr6hB,EAAIylC,EAAI0yf,EAAY53I,EAAM,KAAO,CAAC85I,EAAS/+f,EAAI4kgB,IAAU,EAAI5pY,EAAQ,EAAI/6H,EAAI2kgB,IAAS1pe,EAAK+pV,IAAQ,EAAIjqP,GAAS4pY,EAAQ/H,GAAan4hB,EAAIylC,EAAIy6f,EAAQ,MAc3L,SAASgV,EAAYC,GACf,IAAArqa,EAAK,EAAIr6E,EAAK0kf,EACT,SAAA97T,EAAQghT,EAAQ95I,GACvB,IAAI9sY,EAAIu+hB,EAAMpD,2BAA2BvU,EAAQ95I,GAC7C,GAAA1gZ,EAAIw6hB,GAAUnC,EAAQ,CACxB,IAAIp4e,EAAQ7jB,EAAMxoB,EAAE,GAAIA,EAAE,IAAKunB,EAAIrY,EAAKlP,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAK2hiB,EAAStqa,EAAKpwG,GAAOolB,EAAQo4e,GAAUptZ,GAAMotZ,EAAQj7e,EAAQhhB,EAAMV,EAAIukB,GAASs1f,GAAS,EAAI95gB,EAAIwkB,IACrKA,EAAQs1f,EAASjhhB,EAAKs8B,EAAKz1B,EAAIO,EAAI0hB,IAAUA,EAC7CxpC,EAAE,GAAKunB,EAAIM,EAAIwkB,GACfrsC,EAAE,GAAKunB,EAAIO,EAAIukB,GAEV,OAAArsC,EAWF,OATC4lO,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAIqyB,EAAIrY,EAAKja,EAAIA,EAAIC,EAAIA,GACzB,GAAIqyB,EAAIk9f,EAAQ,CACd,IAAIp4e,EAAQ7jB,EAAMtzB,EAAGD,GAAI0siB,EAAStqa,EAAKpwG,GAAOolB,EAAQo4e,GAAUptZ,GAAMotZ,EAAQ74hB,EAAIygD,EAAQs1f,KAAc,EAAGhI,EAAKpygB,EAAIM,EAAI85gB,EAASt1f,GAAQu1f,EAAW,EAAI5vgB,EAAIpmC,EAAIkvD,GAAM6+e,EAAK38e,GAAM9tC,EAAK8tC,GAAMA,EAAK,EAAI28e,GAAMpygB,EAAIA,KACvM8kB,EAAAs1f,EAAS,EAAI7gc,GAAM8gc,EAAWh2iB,EAAIsjB,EAAK0yhB,EAAWA,EAAW,IAAM,GAC3E3siB,EAAIsyB,EAAIM,EAAIwkB,GAAQn3C,EAAIqyB,EAAIO,EAAIukB,GAElC,OAAOkyf,EAAMpD,2BAA2Bp3gB,OAAO9uB,EAAGC,EACpD,EACO0wO,EA4BA,SAAAi8T,EAAUlI,EAAImI,GAEjB,GADA7xiB,UAAUpG,OAAS,IAAQi4iB,EAAAnI,GACpB,IAAPmI,EAAU,OAAOvD,EAAMtD,yBACvB,GAAA6G,IAAOh2iB,IAAiB,OAAAi2iB,EACnB,SAAAn8T,EAAQghT,EAAQ95I,GACvB,IAAI10W,EAAcmmgB,EAAMtD,yBAAyBrU,EAASkb,EAAIh1J,GAEvD,OADP10W,EAAY,IAAMuhgB,EACXvhgB,EAOF,OALCwtM,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAIkjC,EAAcmmgB,EAAMtD,yBAAyBl3gB,OAAO9uB,EAAI0kiB,EAAIzkiB,GAEzD,OADPkjC,EAAY,IAAM0pgB,EACX1pgB,CACT,EACOwtM,EAEA,SAAAm8T,EAAyBnb,EAAQ95I,GACjC,MAAA,CACL85I,EAAS/+f,EAAIilX,GAAOjlX,EAAIilX,GAAO,GAC/B,EAAIhlX,EAAIglX,IAkBH,SAAAqiB,EAAMzjZ,EAAGxW,EAAGD,GACf,IAAayvG,EAAOm+U,EAAID,EAAxBhrY,EAAQ,IACR3iD,OAAM,IAANA,EAAe,GAAKA,EACxBC,GAAKA,EACF,IACD2tb,EAAKn3a,EAAEzW,OACF2tb,EAAAl3a,EAAEzW,EAAIwrO,MACImiN,EAAKC,EAAKpiN,GACzBxrO,GAAKyvG,GAAQ,MAAgBm+U,EAAK3tb,IAAM2tb,EAAKD,SACtChrY,KAAU,GAAKxrD,EAAIs4G,GAAS+7H,GAC9B,OAAA7oL,EAAQ,EAAI/rD,IAAMoJ,EAElB,SAAAive,EAAQx4d,EAAGs2hB,EAAgBxhU,GAGlC,YAFuB,IAAnBwhU,IAA4CA,EAAA,SACpC,IAARxhU,IAAsBA,EAAAgkT,GACnB,SAASvvhB,EAAGC,EAAGF,EAAG9F,GACvB,IAAI0/W,EAAMhhU,EAAIkD,EACV97C,OAAM,IAANA,EAAe,GAAKA,EACpB9F,OAAM,IAANA,EAAe,GAAKA,EACxB,IAAA,IAAS9F,EAAI,EAAGA,EAAI44iB,EAAgB54iB,IAAK,CACvC,IAAI4W,EAAI0L,EAAE1W,EAAG9F,GAAI2kD,EAAK7zC,EAAE,GAAK/K,EAAG87J,EAAK/wJ,EAAE,GAAK9K,EAC5C,GAAI9I,EAAIynD,GAAM2sL,GAAOp0O,EAAI2kK,GAAMyvE,EAAK,MAChC,IAAA7xN,EAAIklC,EAAKA,EAAKk9G,EAAKA,EACvB,GAAIpiJ,EAAIigW,EACN55W,GAAK44C,GAAM,EACX1+C,GAAK4hD,GAAM,MAFb,CAKO89T,EAAAjgW,EACP,IAAI03d,GAAMrxe,EAAI,GAAI,EAAK,GAAKwrO,EAAKyhU,GAAM/yiB,EAAI,GAAI,EAAK,GAAKsxO,EAAK3yL,EAAKniC,EAAE1W,EAAIqxe,EAAIn3e,GAAIgoI,EAAKxrH,EAAE1W,EAAG9F,EAAI+yiB,GAAKC,GAAOr0f,EAAG,GAAK7tC,EAAE,IAAMqme,EAAI87D,GAAOt0f,EAAG,GAAK7tC,EAAE,IAAMqme,EAAI+7D,GAAOlra,EAAG,GAAKl3H,EAAE,IAAMiiiB,EAAII,GAAOnra,EAAG,GAAKl3H,EAAE,IAAMiiiB,EAAIzmf,EAAK6mf,EAAMH,EAAMC,EAAMC,EAAKluhB,GAAK9nB,EAAIovD,GAAM,GAAM,GAAM,GAAKA,EAK5Q,GAFKxmD,GAFC44C,GAAAmjH,EAAKqxY,EAAMvuf,EAAKwuf,GAAOnuhB,EAGxBhlB,GAFC4hD,GAAA+C,EAAKsuf,EAAMpxY,EAAKmxY,GAAOhuhB,EAGzB9nB,EAAIwhD,GAAM4yL,GAAOp0O,EAAI0kD,GAAM0vL,EAAK,OAE/B,MAAA,CAACxrO,EAAG9F,EACb,EAEF,SAASoziB,IACP,IAAIC,EAAYV,EAAU,KAAM,GACvB,SAAAj8T,EAAQghT,EAAQ95I,GACnB,GAAA85I,EAAS95I,GAAW,IAAA,CACtB,IAAIhrX,GAAK8kgB,EAAS95I,EAAM,MAAQ85I,EAAS95I,EAHJ,KAGgB,EAC3C85I,GAAA9kgB,EACVgrX,GAAO,GAAMhrX,EAAIgG,EAAIglX,EAAM9vV,EAAK,GAE9B,IAAAz1B,EAAIg7gB,EAAU3b,EAAQ95I,GACtBnhZ,GAAK,EAAIk8B,EAAI++f,EAAS95I,IARuB,GAe1C,OANHvlX,EAAE,GAAK,IACPA,EAAA,IAAM,EAAI57B,GAEV47B,EAAE,GAAK,IACPA,EAAA,IAAM,EAAI57B,EAAI,IAAM47B,EAAE,GAAKA,EAAE,IAE1BA,EAGF,OADCq+M,EAAA7hN,OAASmgd,EAAQt+P,GAClBA,EAKA,SAAA48T,EAAsBC,EAAI31J,GACjC,IAAsCpoS,EAAlCg+b,EAAWD,EAAK36gB,EAAIglX,GAAM1jZ,EAAI,GAClC,GACS0jZ,GAAApoS,GAASooS,EAAMhlX,EAAIglX,GAAO41J,IAAa,EAAI76gB,EAAIilX,UACjD1gZ,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GACrC,OAAO0jZ,EAAM,EAEN,SAAA61J,EAAoBz8gB,EAAIC,EAAIs8gB,GAC1B,SAAA78T,EAAQghT,EAAQ95I,GACvB,MAAO,CAAC5mX,EAAK0ggB,EAAS/+f,EAAIilX,EAAM01J,EAAsBC,EAAI31J,IAAO3mX,EAAK2B,EAAIglX,IAKrE,OAHClnK,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,OAAOA,EAAIwrB,EAAKxrB,EAAIixB,GAAK,CAAClxB,GAAKixB,EAAK2B,EAAI3yB,IAAKwrB,GAAM,EAAIxrB,EAAI4yB,EAAI,EAAI5yB,IAAMutiB,GAC3E,EACO78T,EA/KA47T,EAAAz9gB,OAAS,SAAS9uB,EAAGC,GAC5B,IAAKk6Y,EAAMhjZ,EAAI8I,IAAMyyhB,EAAa,MAAA,CAAC1yhB,EAAG,EAAI6rG,EAAKlgF,EAAI1rB,IAAMuvhB,GACzD,IAA6B//a,EAAO0qS,EAAhCtC,EAAM43I,EAAWt7hB,EAAI,GACtB,EAAA,CACG,IAAAw5iB,EAAW/6gB,EAAIilX,EAAM,GAAI+1J,EAAW7wgB,EAAI86W,EAAM,GAC3CA,GAAApoS,GAAS68b,GAASz0J,EAAM43I,GAAan4hB,EAAIs2iB,GAAYzzJ,IAAQmyJ,EAAQqB,EAAWA,GAAY,EAAIC,UAChGz2iB,EAAIs4G,GAAS8/a,KAAep7hB,EAAI,GACzC,MAAO,CAAC6L,GAAK4yB,EAAIilX,IAAQy0J,EAAQ,EAAIz5gB,EAAIglX,KAAQ/pV,EAAK7tD,GAAK43Y,EAC7D,EA2EyBi1J,EAAAh+gB,OAAS,SAAS9uB,EAAGC,GAC5C,IAAI43Y,EAAM,EAAIpsX,EAAKxrB,EAAI,GAChB,MAAA,CACLD,EAAI4yB,EAAIilX,EAAM,GAAKjlX,EAAIilX,GACvBA,EAEJ,EAwFA,IAAIg2J,EAAeH,EAAoB9/Y,EAAQ4hY,EAAQ5hY,EAAO7lG,GAI1D3qC,EAAI,QAAS0K,EAAI,QACZ,SAAAgmhB,EAASnc,EAAQ95I,GACpB,IAAAzgW,EAAQm2f,EAAsBxlf,EAAI8vV,GACtC,MAAO,CAACz6X,EAAIu0gB,GAAU,EAAI/+f,EAAIilX,GAAO/vX,EAAI8K,EAAIwkB,KAAUygW,EAAMjqP,EAAQ/6H,EAAIukB,IAAUh6B,GAcrF,SAAS2whB,EAAUrL,GACb,IAAAlL,EAAQ,EAAGnhiB,EAAIiziB,EAAMR,qBAAqBpG,GAAY33hB,EAAI1U,EAAEmhiB,GAIzD,OAHLzshB,EAAAijiB,SAAW,SAAShyhB,GACpB,OAAOhhB,UAAUpG,OAASyB,EAAEmhiB,EAAQx7gB,EAAIkogB,GAAYsT,EAAQpnW,CAC9D,EACOrlL,EAEA,SAAAkjiB,EAActc,EAAQ95I,GAC7B,MAAO,CAAC85I,EAAS/+f,EAAIilX,GAAMA,GAQ7B,SAASq2J,GAAS1W,GACZ,IAACA,EAAc,OAAAyW,EACf,IAAAE,EAAU,EAAIpxgB,EAAIy6f,GACb,SAAA7mT,EAAQghT,EAAQ95I,GACnB,IAAAmN,EAAMmpJ,EAAU3W,EAAQ3/I,EAAKzhZ,EAAI4uZ,EAAM2sI,EAAS/+f,EAAIilX,GAAOmN,EAAMA,EAC9D,MAAA,CAACA,EAAMnyX,EAAIz8B,GAAI+3iB,EAAUnpJ,EAAMpyX,EAAIx8B,IAMrC,OAJCu6O,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAA+kZ,EAAM/qY,EAAKja,EAAIA,GAAKC,EAAIkuiB,EAAUluiB,GAAKA,GAAI43Y,EAAMs2J,EAAU3W,EAAQxyI,EAChE,MAAA,CAACA,EAAMpyX,EAAIilX,GAAOtkX,EAAMvzB,EAAGC,GAAI43Y,EACxC,EACOlnK,EAKT,SAASy9T,GAAaC,GACX,SAAA19T,EAAQghT,EAAQ95I,GACnB,IAAAmN,EAAMwqI,EAAS33I,EAAKo0J,EAAMjnJ,EAAM2sI,EAAS0c,EAASx7gB,EAAImyX,GAAOA,EAAMA,EAChE,MAAA,CAACA,EAAMnyX,EAAIo5gB,GAAOoC,EAAQ7e,EAASxqI,EAAMpyX,EAAIq5gB,IAM/C,OAJCt7T,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAIqtC,EAAMttC,EAAIquiB,EAAQ9ggB,EAAMiif,EAASvvhB,EAAG+kZ,EAAM/qY,EAAKqzB,EAAMA,EAAMC,EAAMA,GAAM0+f,EAAM14gB,EAAM+Z,EAAKC,GACrF,MAAA,EAAEy3W,EAAMA,EAAMnyX,EAAImyX,GAAO,GAAKinJ,EAAMoC,EAAQ7e,EAASxqI,EAC9D,EACOr0K,EArDAm9T,EAAAh/gB,OAAS,SAAS9uB,EAAGC,GACxB,IAA4DwvG,EAAOooS,EAAnE/mW,EAAK1zB,EAAInd,EAAGm3C,EAAQn3C,EAAI,GAAKwvhB,EAAYA,EAAWt7hB,EAAI,GACzD,GACK0jZ,EAAA/mW,EAAK88G,EAAQ/6H,EAAIukB,GACdA,GAAAq4D,GAAS58E,EAAI,EAAIukB,GAAS,EAAIA,EAAQ2Q,EAAKl1B,EAAIglX,KAAS,EAAIjlX,EAAI,EAAIwkB,GAAS,EAAI2Q,EAAKn1B,EAAIilX,GAAOjqP,EAAQh7H,EAAIwkB,UAC/GjgD,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GAEhC,OADD0jZ,EAAA/mW,EAAK88G,EAAQ/6H,EAAIukB,GAChB,CAACp3C,GAAK,EAAI4yB,EAAIilX,GAAO/vX,EAAI8K,EAAIwkB,IAAUh6B,EAAGy6X,EACnD,EAcco2J,EAAAn/gB,OAAS,SAAS9uB,EAAGC,GACjC,MAAO,CAACD,EAAI4yB,EAAI3yB,GAAIA,EACtB,EAsCA,IAAIquiB,GAAaZ,EAAoB,EAAG,EAAI3lf,EAAIA,GAIhD,SAASzZ,GAAS68f,EAAMp1d,EAAI7qC,EAAI8qC,EAAIn1D,EAAI+wgB,GAClC,IAA2Bt/f,EAA3Bi8gB,EAAa37gB,EAAIg/f,GACrB,GAAIz6hB,EAAIg0iB,GAAQ,GAAKh0iB,EAAIy6hB,GAAW,EAClCt/f,EAAIuzB,EAAK3a,EAAKrqB,EAAKk1D,EAAKC,EAAKu4d,OACxB,CACD,IAAAC,EAAU37gB,EAAIs4gB,EAAO,GAAIsD,EAAa57gB,EAAI++f,EAAU,GACpDt/f,EAAA,EAAI7G,EAAKxR,EAAKu0hB,EAAUA,EAAUz4d,EAAKC,EAAKy4d,EAAaA,IAExD,OAAAt3iB,EAAIm7B,GAAKk5M,EAAU,CAACl5M,EAAGiB,EAAMyiD,EAAKnjD,EAAI++f,GAAU77c,EAAKl1D,EAAKqqB,EAAK8qC,EAAKu4d,IAAe,CAAC,EAAG,GAEvF,SAAAzmgB,GAAM7tC,EAAGhD,EAAG8I,GACZ,OAAA8lD,GAAM5rD,EAAIA,EAAIhD,EAAIA,EAAI8I,EAAIA,IAAM,EAAI9F,EAAIhD,IAEjD,SAASmgiB,GAAUzF,GACjB,OAAOA,EAAS,EAAI5pe,EAAK1wD,GAAOs6hB,EAAS5pe,IAAO,EAAIA,IAE7C,SAAA2mf,GAAc5ihB,EAAI7Q,EAAI2tC,GAM7B,IALA,IAKyB3uD,EALrBsuR,EAAU,CACZ,CAACz8P,EAAG,GAAIA,EAAG,GAAI+G,EAAI/G,EAAG,IAAK8G,EAAI9G,EAAG,KAClC,CAAC7Q,EAAG,GAAIA,EAAG,GAAI4X,EAAI5X,EAAG,IAAK2X,EAAI3X,EAAG,KAClC,CAAC2tC,EAAG,GAAIA,EAAG,GAAI/1B,EAAI+1B,EAAG,IAAKh2B,EAAIg2B,EAAG,MAE3B7oD,EAAIwoR,EAAQ,GAAOp0R,EAAI,EAAGA,EAAI,IAAKA,EAAG4L,EAAI9F,EACjDA,EAAIsuR,EAAQp0R,GACV4L,EAAA4Z,EAAI20B,GAASr0C,EAAE,GAAK8F,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI9F,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAK8F,EAAE,IAC3DA,EAAA2oB,MAAQ,CAAC,EAAG,GAEhB,IAAIimhB,EAAQ7mgB,GAAMygP,EAAQ,GAAG5uQ,EAAE,GAAI4uQ,EAAQ,GAAG5uQ,EAAE,GAAI4uQ,EAAQ,GAAG5uQ,EAAE,IAAKi1hB,EAAQ9mgB,GAAMygP,EAAQ,GAAG5uQ,EAAE,GAAI4uQ,EAAQ,GAAG5uQ,EAAE,GAAI4uQ,EAAQ,GAAG5uQ,EAAE,IAAKk1hB,EAAQ9mf,EAAK4mf,EACrJpmR,EAAQ,GAAG7/P,MAAM,GAAK,EACtB6/P,EAAQ,GAAG7/P,MAAM,KAAO6/P,EAAQ,GAAG7/P,MAAM,GAAK6/P,EAAQ,GAAG5uQ,EAAE,GAAK,GAChE,IAAIL,EAAO,CACTivQ,EAAQ,GAAG7/P,MAAM,GAAK6/P,EAAQ,GAAG7/P,MAAM,GAAK6/P,EAAQ,GAAG5uQ,EAAE,GAAKiZ,EAAI+7gB,GAClE,GAAKpmR,EAAQ,GAAG7/P,MAAM,GAAK6/P,EAAQ,GAAG7/P,MAAM,GAAK6/P,EAAQ,GAAG5uQ,EAAE,GAAKkZ,EAAI87gB,KA+BlE,OA7BE,SAAQhd,EAAQ95I,GACvB,IAA4DryX,EAAxDwsgB,EAASn/f,EAAIglX,GAAMk6I,EAASn/f,EAAIilX,GAAMl+X,EAAI,IAAIrkB,MAAM,GACxD,IAAKkwB,EAAK,EAAGA,EAAK,IAAKA,EAAI,CACrB,IAAAza,EAAIw9Q,EAAQ/iQ,GAEhB,GADA7L,EAAE6L,GAAM8oB,GAASupW,EAAM9sY,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIgnhB,EAAQC,EAAQL,EAAS5mhB,EAAE,KAC/D4O,EAAE6L,GAAI,UAAWza,EAAE2d,MACxB/O,EAAE6L,GAAI,GAAK4xgB,GAAUz9gB,EAAE6L,GAAI,GAAKza,EAAE4O,EAAE,IAElC,IAAA+O,EAAQpP,EAAKlgB,QACjB,IAAKosB,EAAK,EAAGA,EAAK,IAAKA,EAAI,CACzB,IAAI3oB,EAAU,GAAN2oB,EAAU,EAAIA,EAAK,EACvBuqN,EAAKjoM,GAAMygP,EAAQ/iQ,GAAI7L,EAAE,GAAIA,EAAE6L,GAAI,GAAI7L,EAAE9c,GAAG,IAC5C8c,EAAE6L,GAAI,GAAK,OAASuqN,GACnBvqN,EAGY,GAANA,GACTuqN,EAAK6+T,EAAQ7+T,EACPrnN,EAAA,IAAM/O,EAAE6L,GAAI,GAAKoN,EAAIm9M,GACrBrnN,EAAA,IAAM/O,EAAE6L,GAAI,GAAKqN,EAAIk9M,KAE3BA,EAAK8+T,EAAQ9+T,EACPrnN,EAAA,IAAM/O,EAAE6L,GAAI,GAAKoN,EAAIm9M,GACrBrnN,EAAA,IAAM/O,EAAE6L,GAAI,GAAKqN,EAAIk9M,KATrBrnN,EAAA,IAAM/O,EAAE6L,GAAI,GAAKoN,EAAIm9M,GACrBrnN,EAAA,IAAM/O,EAAE6L,GAAI,GAAKqN,EAAIk9M,IAYxB,OADPrnN,EAAM,IAAM,EAAGA,EAAM,IAAM,EACpBA,GAIX,SAAS0zgB,GAAarxhB,GACpB,OAAOA,EAAE,IAAMm5gB,EAAUn5gB,EAAE,IAAMm5gB,EAAUn5gB,EAKpC,SAAA+jiB,GAAWhjhB,EAAI7Q,EAAI2tC,GACtB,IAAA3xD,EAAIqyiB,EAAMjD,YAAY,CAAE/riB,KAAM,aAAc6oC,YAAa,CAACrX,EAAI7Q,EAAI2tC,KAAQpiB,EAAI,EAAEvvC,EAAE,IAAKA,EAAE,IAAKq7B,EAAIg3gB,EAAMP,YAAYvigB,GAAI/vB,EAAIi4hB,GAActS,GAAa9pgB,EAAExG,IAAMswgB,GAAa9pgB,EAAErX,IAAMmhhB,GAAa9pgB,EAAEs2B,KACrMnyC,EAAAqY,OAASmgd,EAAQx4d,GACf,IAAA1L,EAAIu+hB,EAAMT,cAAcpyhB,GAAGs6B,OAAOvK,GAAIrZ,EAASpiB,EAAEoiB,OAK9C,cAJApiB,EAAEgmC,OACPhmC,EAAAoiB,OAAS,SAASnR,GACX,OAAAhhB,UAAUpG,OAASu4B,EAAOmF,EAAEtW,IAAMsW,EAAExD,OAAO3B,IACpD,EACOpiB,EAAEo4hB,UAAU,IAEZ,SAAA4L,GAAapd,EAAQ95I,GAC5B,IAAItjW,EAAQt6B,EAAK,EAAI4Y,EAAIglX,IACzB,MAAO,CAAC,EAAI4xJ,EAAS9X,EAASp9e,EAAOk1f,GAAU,EAAIl1f,IASrD,SAASy6f,GAASxX,GACZ,IAAAmT,EAAU5tgB,EAAIy6f,GACT,SAAA7mT,EAAQghT,EAAQ95I,GACvB,MAAO,CAAC85I,GAASA,EAASA,EAAS9+f,EAAI8+f,GAAU,IAAM9+f,EAAIglX,GAAOjlX,EAAI++f,GAAUgZ,EAAU/3gB,EAAIilX,KASzF,OAPPlnK,EAAQ7hN,OAAS67gB,EAAU,SAAS3qiB,EAAGC,GACjCD,IAAGC,GAAK4yB,EAAI7yB,GAAKA,GACjB,IAAA4qiB,EAAYh4gB,EAAI5yB,GACpB,MAAO,CAACA,EAAG,EAAIuzB,EAAMtZ,EAAK2whB,EAAYA,EAAYD,EAAUA,EAAU1qiB,EAAIA,GAAK2qiB,EAAWD,EAAU1qiB,GAAE,EACpG,SAASD,EAAGC,GACP,MAAA,CAACD,EAAGyrB,EAAKzrB,EAAIC,EAAI88B,EAAI/8B,GAAKA,EAAIC,GACvC,EACO0wO,EAnBIo+T,GAAAjghB,OAAS,SAAS9uB,EAAGC,GAChC,IAAI0xhB,GAAUA,EAAS1xhB,EAAIwpiB,EAAS,GAAK9X,EACzC,MAAO,CAACA,EAAS,EAAI3xhB,EAAIia,EAAK8tC,EAAK4pe,GAAU,EAAI,EAAGlmgB,EAAK,EAAIkmgB,GAC/D,EAqBI,IAAA9jY,GAAQ5zI,EAAK,GACR,SAAAg1hB,GAAWtd,EAAQ95I,GAC1B,MAAO,CAAChqP,GAAQ8jY,GAAU,EAAI/+f,EAAI,EAAIilX,EAAM,GAAK,GAAK4xJ,EAAQ57Y,GAAQ47Y,EAAS52gB,EAAIglX,EAAM,IAS3F,SAAS4rJ,GAAwBjM,GAC3B,IAAAvG,EAAUr+f,EAAI4kgB,GACT,SAAA7mT,EAAQghT,EAAQ95I,GACvB,MAAO,CAAC85I,EAASV,EAASp+f,EAAIglX,GAAOo5I,GAKhC,OAHCtgT,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,MAAO,CAACD,EAAIixhB,EAASxlgB,EAAKxrB,EAAIgxhB,GAChC,EACOtgT,EAKT,SAASu+T,GAA4B1X,GAC/B,IAAAvG,EAAUr+f,EAAI4kgB,GACT,SAAA7mT,EAAQghT,EAAQ95I,GAChB,MAAA,CAAC85I,EAASV,GAAU,EAAIA,GAAWl0f,EAAI86W,EAAM,IAK/C,OAHClnK,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACpB,MAAA,CAACD,EAAIixhB,EAAmC,EAA1Bplb,EAAK5rG,GAAK,EAAIgxhB,IACrC,EACOtgT,EAKA,SAAAw+T,GAAWxd,EAAQ95I,GAC1B,IAAItjW,EAAQt6B,EAAK,GAAK,EAAI8tC,IACnB,MAAA,CACLxT,EAAQo9e,GAAU,EAAIx6hB,EAAI0gZ,GAAO9vV,GACjCxT,EAAQsjW,GAaH,SAAAu3J,GAAWzd,EAAQ95I,GACtB,IAAAtjW,EAAQt6B,EAAK,EAAI,EAAI4Y,EAAI17B,EAAI0gZ,KAC1B,MAAA,CACL,EAAI59X,EAAK,EAAI8tC,GAAM4pe,EAASp9e,EAC5BuZ,EAAK+pV,GAAO59X,EAAK,EAAI8tC,EAAK,IAAM,EAAIxT,IAa/B,SAAA86f,GAAW1d,EAAQ95I,GAC1B,IAAIz1Q,EAAKnoH,EAAK8tC,GAAM,EAAIA,IACjB,MAAA,CACL,EAAIq6E,EAAKuvZ,GAAU,EAAI13gB,EAAK,EAAI,EAAI49X,EAAMA,GAAO9vV,EAAKA,KACtD,EAAIq6E,EAAKy1Q,GAaJ,SAAAy3J,GAAW3d,EAAQ95I,GAC1B,IAAIz1Q,GAAM,EAAIotZ,GAAU38f,EAAIglX,GACrBA,GAAA,EACE,IAAA,IAAA1jZ,EAAI,EAAGs7G,EAAQ54G,IAAU1C,EAAI,IAAMgD,EAAIs4G,GAAS+7H,EAASr3O,IAAK,CACjE,IAAA49hB,EAASn/f,EAAIilX,GACVA,GAAApoS,GAASooS,EAAMhlX,EAAIglX,IAAQk6I,EAAS,GAAK3vZ,IAAO,EAAI2vZ,GAAU,EAAIA,IAEpE,MAAA,CACL,EAAI93gB,EAAK8tC,GAAM,EAAIA,IAAO4pe,GAAU,EAAI/+f,EAAIilX,IAC5C,EAAI59X,EAAK8tC,GAAM,EAAIA,IAAOl1B,EAAIglX,IAazB,SAAA03J,GAAW5d,EAAQ95I,GACnB,MAAA,CACL85I,GAAU,EAAI/+f,EAAIilX,IAAQ59X,EAAK,EAAI8tC,GACnC,EAAI8vV,EAAM59X,EAAK,EAAI8tC,IAad,SAAAynf,GAAW7d,EAAQ95I,GAEjB,IADT,IAAIz1Q,GAAM,EAAIotZ,GAAU38f,EAAIglX,GACnB1jZ,EAAI,EAAGs7G,EAAQ54G,IAAU1C,EAAI,IAAMgD,EAAIs4G,GAAS+7H,EAASr3O,IACzD0jZ,GAAApoS,GAASooS,EAAMhlX,EAAIglX,GAAOz1Q,IAAO,EAAIxvG,EAAIilX,IAG3C,OADFz1Q,EAAAnoH,EAAK,EAAI8tC,GACP,CACL4pe,GAAU,EAAI/+f,EAAIilX,IAAQz1Q,EAC1B,EAAIy1Q,EAAMz1Q,GAlIH6sa,GAAAnghB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAI43Y,EAAM,EAAIpsX,EAAKxrB,GAAK4tJ,GAAQ47Y,IACzB,MAAA,CAACA,EAASzpiB,GAAK6tJ,IAAS,EAAIj7H,EAAI,EAAIilX,EAAM,GAAK,IAAKA,EAC7D,EAqCWs3J,GAAArghB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAIs0C,EAAQt6B,EAAK,GAAK,EAAI8tC,IAAM8vV,EAAM53Y,EAAIs0C,EACnC,MAAA,CACLv0C,GAAKu0C,GAAS,EAAIp9C,EAAI0gZ,GAAO9vV,IAC7B8vV,EAEJ,EAWWu3J,GAAAtghB,OAAS,SAAS9uB,EAAGC,GAC1B,IAAAs0C,EAAQ,EAAIp9C,EAAI8I,GAAKga,EAAK,EAAI8tC,EAAK,GAChC,MAAA,CACL/nD,EAAIia,EAAK,EAAI8tC,IAAO,EAAIxT,GACxBuZ,EAAK7tD,GAAKwrB,GAAM,EAAI8oB,EAAQA,GAAS,GAEzC,EAWW86f,GAAAvghB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAImiI,EAAKnoH,EAAK8tC,GAAM,EAAIA,IAAO,EACxB,MAAA,CACL/nD,EAAIoiI,GAAM,EAAInoH,EAAK,EAAIha,EAAIA,GAAK,EAAI8nD,IAAO,EAAIA,KAC/C9nD,EAAImiI,EAAK,EAEb,EAgBWkta,GAAAxghB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAIykiB,EAAKzkiB,EAAIga,GAAM,EAAI8tC,GAAMA,GAAM,EAAGq6E,EAAK32G,EAAKi5gB,GAAKztiB,EAAI27B,EAAIwvG,GACtD,MAAA,CACLpiI,GAAK,EAAIia,EAAK8tC,GAAM,EAAIA,KAAQ,EAAI9wD,IACpCw0B,GAAM22G,EAAKsia,GAAMztiB,EAAI,KAAO,EAAIu4hB,IAEpC,EAUW+f,GAAAzghB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAImiI,EAAKnoH,EAAK,EAAI8tC,GAAK8vV,EAAM53Y,EAAImiI,EAAK,EAC/B,MAAA,CACLA,EAAKpiI,GAAK,EAAI4yB,EAAIilX,IAClBA,EAEJ,EAeW23J,GAAA1ghB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAIpD,EAAI,EAAI2yhB,EAAQptZ,EAAKnoH,EAAKpd,EAAI,GAC3B,MAAA,CACD,EAAJmD,EAAQoiI,GAAM,EAAIxvG,EAAI3yB,GAAKmiI,IAC3B32G,GAAMxrB,EAAI4yB,EAAI5yB,IAAMpD,GAExB,EAII,IAAA4yiB,GAAa,EAAI,EAAI7hZ,EAChB,SAAA8hZ,GAAa/d,EAAQ95I,GACxB,IAAA5sW,EAAKpY,EAAI8+f,GAAU,GAAIh9U,EAAK/hL,EAAI++f,GAASvvZ,EAAKnoH,EAAK2Y,EAAIilX,IAAO9hU,EAAKnjD,EAAIilX,GAAO,GAAIl9X,EAAIkY,EAAIglX,IAAQ9hU,EAAK63E,EAAQ+mD,EAAKvyE,GAAKnrI,EAAIgjB,EAAK,GAAK,EAAIU,EAAIA,IAAKhB,EAAIM,GAAM2zI,EAAQ73E,GAAM4+H,EAAK1pK,GAAMm3F,IAAOwrB,EAAQ73E,GAAM4+H,EAAK1pK,GAAMm3F,IACpN,MAAA,CACLqta,IAAcx4iB,GAAK0iB,EAAI,EAAIA,GAAK,EAAIriB,EAAIqiB,IACxC81hB,IAAcx4iB,EAAI0jB,GAAKhB,EAAI,EAAIA,GAAK,EAAIkyF,EAAKlxF,KAGpC+0hB,GAAA5ghB,OAAS,SAAS9uB,EAAGC,GAC5B,KAAE8K,EAAIqgiB,EAAUt8gB,OAAO9uB,EAAI,IAAS,MAAJC,IAAoB,OAAA,KACpD,IAAmC8K,EAAnC4mhB,EAAS5mhB,EAAE,GAAI8sY,EAAM9sY,EAAE,GAAI5W,EAAI,GACnC6L,GAAKyviB,GAAYxviB,GAAKwviB,GACnB,EAAA,CACG,IAAAE,EAAKhe,EAAS,EAAGvsI,EAAKvN,EAAM,EAAG5sW,EAAKpY,EAAI88gB,GAAKh7V,EAAK/hL,EAAI+8gB,GAAKzkgB,EAAKrY,EAAIuyX,GAAKrvU,EAAKnjD,EAAIwyX,GAAKwqJ,EAAOh9gB,EAAIilX,GAAMz1Q,EAAKnoH,EAAK21hB,GAAOj1hB,EAAIuwB,GAAM6qC,EAAK63E,EAAQ+mD,EAAKvyE,GAAK9xF,EAAM31B,EAAIA,EAAG1jB,EAAIgjB,EAAK,GAAK,EAAIq2B,IAA2EuyC,GAA/D+qE,EAAQ73E,GAAM4+H,EAAK1pK,GAAMm3F,IAASwrB,EAAQ73E,GAAM4+H,EAAK1pK,GAAMm3F,GAAkBzoH,EAAIM,EAAK4oE,GAAKgtd,EAAOl2hB,EAAI,EAAIA,EAAGm2hB,EAAOn2hB,EAAI,EAAIA,EAAGgpB,EAAK1rC,EAAI44iB,EAAO,EAAIv4iB,EAAIqiB,GAAK3Z,EAAG4iC,EAAK3rC,EAAI0jB,EAAIm1hB,EAAO,EAAIjkc,EAAKlxF,GAAK1a,EAAG8viB,EAAoB7kgB,GAAMq+f,EAAUnna,EAAKn3F,EAAKqF,EAAMpF,EAAI8kgB,GAAkBpiZ,EAAQ+mD,EAAK5+H,EAAKqsD,IAAO,GAAKrsD,EAAK63E,EAAQ+mD,EAAKvyE,IAAOrsD,EAAK63E,EAAQ+mD,EAAKvyE,GAAMA,GAAK6ta,GAAe,GAAOt1hB,EAAI1jB,EAAIA,EAAIA,EAAGi5iB,EAAoBD,EAAeF,EAAmBI,EAAiBF,EAAeD,EAAgBtL,GAAMA,EAAK,EAAI3ud,EAAK63E,EAAQxrB,GAAMuyE,EAAK1pK,IAAOy5f,EAAK/qhB,EAAGy2hB,GAAqBxiZ,EAAQ+mD,EAAK5+H,EAAKqsD,EAAKwta,GAAQlL,EAAI2L,GAAmBziZ,EAAQ3iH,EAAKC,GAAOk3F,EAAKsia,GAAK4L,EAAoBT,EAAOK,EAAoB,EAAIE,EAAoBz2hB,EAAI1iB,GAAKm5iB,EAAoBA,EAAoBvtd,GAAK0td,EAAiBV,EAAOM,EAAiB,EAAIE,EAAiB12hB,EAAI1iB,GAAKo5iB,EAAiBA,EAAiBxtd,GAAK2td,EAAoB71hB,EAAIm1hB,EAAOI,EAAoB,EAAIH,GAAqB,EAAIz/f,GAAOr5C,EAAI64iB,EAAOC,EAAoB94iB,EAAI0jB,GAAKy1hB,EAAoBA,EAAoBvtd,GAAK4td,EAAiB91hB,EAAIm1hB,EAAOK,EAAiB,EAAIH,GAAkB,EAAI1/f,GAAOr5C,EAAI64iB,EAAOE,EAAiB/4iB,EAAI0jB,GAAK01hB,EAAiBA,EAAiBxtd,GAAKqod,EAAcqF,EAAiBC,EAAoBC,EAAiBH,EAC18C,IAAKpF,EAAa,MACd,IAAAtV,GAAehzf,EAAK2tgB,EAAiB5tgB,EAAK8tgB,GAAkBvF,EAAarV,GAAYlzf,EAAK6tgB,EAAoB5tgB,EAAK0tgB,GAAqBpF,EAClIvZ,GAAAiE,EACV/9I,EAAMj3Y,GAAK4uhB,EAAQtxhB,EAAIsxhB,EAAQ33I,EAAMg+I,WAC7B1+hB,EAAIy+hB,GAAepqT,GAAWr0O,EAAI0+hB,GAAYrqT,MAAcr3O,EAAI,GAC1E,OAAOgD,EAAIA,EAAI0gZ,GAAO23I,GAAUhkT,EAAU,CAAC,EAAGqsK,GAAO1jZ,GAAK,CAACw9hB,EAAQ95I,EACrE,EAII,IAAA64J,GAAS99gB,EAAI,GAAKsxf,GACb,SAAAysB,GAAShf,EAAQ95I,GACpB,IAAAl9X,EAAIoiB,EAAI86W,EAAM,GACX,MAAA,CAAC85I,EAAS+e,GAASz2hB,EAAK,EAAIU,EAAIA,IAAK,EAAI+1hB,IAAU/1hB,GASnD,SAAAi2hB,GAAWjf,EAAQ95I,GAC1B,IAAIz1Q,EAAKy1Q,EAAM,EAAGg5J,EAAOj+gB,EAAIwvG,GAC7B,MAAO,CAAC,EAAIuvZ,EAAS8X,EAAS72gB,EAAIilX,GAAOg5J,EAAOA,EAAMpH,EAAS1sgB,EAAIqlG,IASrE,SAAS0ua,GAAqBv8f,GAC5B,IAAI4jW,EAAO,EAAI5jW,EAAOw8f,EAAan9W,EAAI7rI,EAAI,GAAG,GAAK6rI,GAAK7rI,EAAI,GAAG,GAAoD9H,EAAQhmC,EAAK,GAArD25K,EAAI,EAAG47V,GAAQ,GAAK57V,EAAI,GAAI47V,GAAQ,IAA6BuhB,GACnI,SAAAn9W,EAAI+9V,EAAQ95I,GACnB,IAAIm5J,EAASp+gB,EAAIilX,GAAMo5J,EAASp+gB,EAAIglX,GAC7B,MAAA,CACLm5J,GAAU74J,EAAO5jW,EAAQy8f,GAAUrf,EACnCx5I,EAAON,EAAMtjW,EAAQ08f,GAGhB,SAAAtgU,EAAQghT,EAAQ95I,GACnB,IAAA9sY,EAAI6oL,EAAI+9V,EAAQ95I,GACb,MAAA,CAAC9sY,EAAE,GAAKk1C,EAAOl1C,EAAE,GAAKk1C,GAE/B,SAASixf,EAAgBr5J,GACvB,OAAOlnK,EAAQ,EAAGknK,GAAK,GAMlB,OAJClnK,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAA43Y,EAAMqiB,EAAMg3I,EAAiBjxiB,GAC1B,MAAA,CADuCD,EAAIigD,GAAS1L,EAAQ4jW,EAAOvlX,EAAIilX,IAC9DA,EAClB,EACOlnK,EAST,SAASwgU,GAAezohB,GACtB,MAAO,CAACA,EAAM,GAAK,EAAG+C,EAAKsR,EAAIrU,EAAM,GAAK,EAAIw7f,IAAa9zV,GAE7D,SAASghX,GAAc1ohB,GACrB,MAAO,CAAY,EAAXA,EAAM,GAAQ,EAAImjF,EAAKh5E,EAAInK,EAAM,GAAKw7f,IAAa9zV,GAuDpD,SAAAihX,GAAWrsJ,EAAKlpZ,GACvB,IAAIsmI,EAAK,EAAIr6E,EAAKjsD,EAAGmpZ,EAAOD,EAAMA,EACzB,SAAAr0K,EAAQghT,EAAQ95I,GACvB,IAAI9sY,EAAIu+hB,EAAMpD,2BAA2BvU,EAAQ95I,GAAM73Y,EAAI+K,EAAE,GAAI9K,EAAI8K,EAAE,GAAIyjJ,EAAKxuJ,EAAIA,EAAIC,EAAIA,EAC5F,GAAIuuJ,EAAKy2P,EAAM,CACT,IAAA3yX,EAAIrY,EAAKu0I,GAAKp3G,EAAQ7jB,EAAMtzB,EAAGD,GAAI0siB,EAAStqa,EAAKpwG,EAAMolB,EAAQgrF,GAAK7tF,EAAQ6C,EAAQs1f,EAAQ4E,EAActsJ,EAAMpyX,EAAI2hB,GAAQg9f,GAAMvsJ,EAAMnyX,EAAI0hB,GAASA,EAAQ1hB,EAAIy+gB,KAAiB9hB,EAAS8hB,GAAcE,EAAKC,GAAcl9f,EAAOg9f,GAAKn7iB,GAAK2xD,EAAKi9V,GAAO0sJ,GAAiBF,EAAIF,EAAavpf,GAC3R/nD,EAAAsyB,EACJ,IAAYm9E,EAARt7G,EAAI,GACL,GACI6L,GAAAyvG,GAASu1S,EAAM0sJ,GAAiBF,EAAIF,EAAatxiB,GAAK5J,EAAIk8B,IAAMk/gB,EAAGxxiB,GAAK5J,SACtEe,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GACnC8L,EAAAs0C,EAAQ1hB,EAAI7yB,GACZA,EAAIwvhB,IAAavvhB,GAAAsxiB,GAAMvxiB,EAAIwvhB,IAC/B,IAAI74hB,EAAIk8B,EAAI65gB,GAASz1iB,EAAI27B,EAAI85gB,GAC7B3hiB,EAAE,GAAK/K,EAAI/I,EAAIgJ,EAAItJ,EACnBoU,EAAE,GAAK/K,EAAIrJ,EAAIsJ,EAAIhJ,EAEd,OAAA8T,EAqBF,OAnBC4lO,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAAuuJ,EAAKxuJ,EAAIA,EAAIC,EAAIA,EACrB,GAAIuuJ,EAAKy2P,EAAM,CACb,IAAI3yX,EAAIrY,EAAKu0I,GAAKp3G,EAAQ7jB,EAAMtzB,EAAGD,GAAI0siB,EAAStqa,EAAKpwG,EAAMolB,EAAQgrF,GAAKuva,EAASv6f,EAAQs1f,EACrF1siB,EAAAsyB,EAAIM,EAAI++gB,GACR1xiB,EAAAqyB,EAAIO,EAAI8+gB,GAEZ,IADA,IAAIC,EAAW5xiB,EAAIwvhB,EAAQ8b,EAAOz4gB,EAAI7yB,GAAIu0C,EAAQt0C,EAAIqriB,EAAM77b,EAAQzvG,EAAIwvhB,EAAS34hB,IAAW,EAAG1C,EAAI,KACtF,CACP,IAAA09iB,EAAc7sJ,EAAMnyX,EAAI0hB,GAAQ+8f,EAActsJ,EAAMpyX,EAAI2hB,GAAQu9f,EAAiBj/gB,EAAIy+gB,GAAcS,EAAqBviB,EAAS8hB,EAAaC,GAAMM,EAAct9f,EAAQu9f,GAAkBC,EAAoBP,EAAKC,GAAcl9f,EAAOg9f,GAC9O,GAAIp6iB,EAAIs4G,GAAS8/a,OAAgBp7hB,EAAG,MAC3BogD,GAAAk7D,GAASl7D,EAAQ+2f,EAAOiG,EAAKK,EAAW3xiB,IAAMqriB,EAAkB,EAAXsG,GAAgBG,GAAsBT,EAAc/8f,EAAQs9f,EAAcj/gB,EAAI0+gB,GAAeQ,GAAkBD,GAAeA,EAAct9f,EAAQu9f,KAAoBC,EAAqBA,IAIzP/xiB,GAFAsyB,EAAA0yX,EAAM0sJ,GAAiBF,EAAIF,EAAatxiB,IAAM+nD,EAAKi9V,GAAO0sJ,GAAiBF,EAAIF,EAAavpf,IAExFn1B,EADRwkB,EAAQs1f,EAASn4f,GAEbt0C,EAAAqyB,EAAIO,EAAIukB,GAEd,OAAOkyf,EAAMpD,2BAA2Bp3gB,OAAO9uB,EAAGC,EACpD,EACO0wO,EAEA,SAAA8gU,GAAcl9f,EAAO6tF,GAC5B,OAAO,SAASpiI,GACV,IAAAqtC,EAAKkH,EAAQ3hB,EAAI5yB,GAEd,OADHA,EAAIwvhB,IAAcnif,GAAA+0F,GACfnoH,EAAK,EAAIozB,EAAKA,EACvB,EAEO,SAAAqkgB,GAAiBj7hB,EAAG1W,EAAG9F,GAE9B,IADI,IAAQyf,GAAKzf,EAAI8F,GAAb,GAAqBpJ,EAAI8f,EAAE1W,GAAK0W,EAAExc,GACjC9F,EAAI,EAAG6L,EAAID,EAAG5L,EADf,KACwBA,EAAQwC,GAAA,EAAI8f,EAAEzW,GAAK0Z,GACnD,MAAW,GAAJ/iB,EAAU+iB,EA6BV,SAAAs4hB,GAAqBjyiB,EAAG9F,EAAGhD,EAAGP,EAAGN,EAAGqgB,EAAGuX,EAAGtU,GAExC,SAAAi3N,EAAQghT,EAAQ95I,GACvB,IAAKA,EAAK,MAAO,CAAC93Y,EAAI4xhB,EAAS5pe,EAAI,GACnC,IAAI45e,EAAO9pJ,EAAMA,EAAKl0L,EAAK5jN,EAAI4hiB,GAAQ1niB,EAAI0niB,GAAQ1qiB,EAAI0qiB,EAAOjriB,IAAKqtN,EAAK8zL,GAAOzhZ,EAAI,EAAIuriB,GAAQlrhB,EAAIiD,EAAIiohB,EAAO3zgB,IAAK33B,GAAKstN,EAAKA,EAAKI,EAAKA,IAAO,EAAIA,GAAKxvK,EAAQo9e,EAASlmgB,EAAKk4L,EAAKttN,GAAK0xD,EACvL,MAAO,CAAC1xD,EAAIw8B,EAAI0hB,GAAQsjW,GAAO,EAAI8pJ,EAAOjohB,GAAKrjB,GAAK,EAAIu8B,EAAI2hB,KAYvD,OAhBHv5C,UAAUpG,OAAS,IAAO8kB,EAAA,GAMtBi3N,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAA8B21hB,EAAaC,EAA3ClE,EAAS5pe,EAAK/nD,EAAID,EAAG83Y,EAAM53Y,EAA0B9L,EAAI,GAC1D,EAAA,CACD,IAAIwtiB,EAAO9pJ,EAAMA,EAAKl0L,EAAK5jN,EAAI4hiB,GAAQ1niB,EAAI0niB,GAAQ1qiB,EAAI0qiB,EAAOjriB,IAAKqtN,EAAK8zL,GAAOzhZ,EAAI,EAAIuriB,GAAQlrhB,EAAIiD,EAAIiohB,EAAO3zgB,IAAKjjB,EAAI44M,EAAKA,EAAKI,EAAKA,EAAI7zL,EAAI,EAAI6zL,EAAI1tN,EAAI0U,EAAImlB,EAAG2B,EAAKx7B,EAAIA,EAAG47iB,EAAgBxmhB,EAAKk4L,EAAKttN,GAAK0xD,EAAIxT,EAAQo9e,EAASsgB,EAAeC,EAAMvuV,EAAKA,EAAIwuV,GAAW,EAAIl4iB,EAAI0niB,GAAQ,EAAI1qiB,EAAW,EAAP0qiB,EAAWjriB,IAAMmhZ,EAAKu6J,EAAUh8iB,EAAIuriB,GAAQ,EAAIlrhB,EAAW,EAAPkrhB,EAAW3zgB,GAAkFqkhB,GAArE,GAAK1uV,EAAKwuV,EAAUpuV,GAAMquV,EAAU,IAAoDlihB,EAAInlB,GAA1C,GAAKqniB,EAAU,MAA0ClihB,EAAIA,GAAIqygB,EAAW3vgB,EAAI2hB,GAAQiuf,EAAW3vgB,EAAI0hB,GAAQ+9f,EAAYj8iB,EAAIksiB,EAAUgQ,EAAYl8iB,EAAImsiB,EAAUgQ,EAAa7gB,EAAS5pe,GAAM,EAAI9tC,EAAK,EAAIi4hB,EAAMrghB,KAAQsghB,EAAU97iB,EAAIstN,EAAK0uV,GAAUxghB,EAAI8Q,EAAK4vgB,EAAYvyiB,EAAG4iC,EAAKi1W,GAAO,EAAI8pJ,EAAOjohB,GAAKrjB,EAAIi8iB,EAAYryiB,EAAGswiB,EAAiB8B,EAAS7P,EAAW8P,EAAYE,EAAYlC,EAAoBgC,EAAYL,EAAexB,EAAiB,EAAI4B,GAAUA,EAAS9P,EAAWgQ,EAAYC,GAAahC,EAAoB+B,EAAYN,EAAe/G,EAAcqF,EAAiBC,EAAoBC,EAAiBH,EACzgC,IAAKpF,EAAa,MAClBvZ,GAAUiE,GAAehzf,EAAK2tgB,EAAiB5tgB,EAAK8tgB,GAAkBvF,EACtErzJ,GAAOg+I,GAAYlzf,EAAK6tgB,EAAoB5tgB,EAAK0tgB,GAAqBpF,SAC9D/ziB,EAAIy+hB,GAAepqT,GAAWr0O,EAAI0+hB,GAAYrqT,MAAcr3O,EAAI,GACnE,MAAA,CAACw9hB,EAAQ95I,EAClB,EACOlnK,EA1MAggU,GAAA7hhB,OAAS,SAAS9uB,EAAGC,GACxB,IAAA0a,EAAI1a,GAAK,EAAIywiB,IACjB,MAAO,CAAC1wiB,GAAKA,GAAK0wiB,GAASz2hB,EAAK,EAAIU,EAAIA,IAAK,EAAIkxF,EAAKlxF,GACxD,EAQWi2hB,GAAA9hhB,OAAS,SAAS9uB,EAAGC,GAC1B,IAAAmiI,EAAKv2B,EAAK5rG,EAAIwpiB,GAASoH,EAAOj+gB,EAAIwvG,GAAKy1Q,EAAM,EAAIz1Q,EAC9C,MAAA,CAACpiI,EAAIypiB,EAAS,GAAK72gB,EAAIilX,GAAOg5J,EAAOA,GAAOh5J,EACrD,EA8LI,IAAA46J,GAAeT,GAAqB,QAAQ,OAAS,QAAmB,OAAA,gBAAmB,SAI3FU,GAAeV,GAAqB,UAAU,QAAW,SAAqB,QAAA,kBAAqB,SAInGW,GAAeX,GAAqB,EAAI,EAAIjqf,GAAc,QAAA,MAAS,EAAG,QAAkB,OAAA,EAAG,MAItF,SAAA6qf,GAAajhB,EAAQ95I,GAC5B,IAAIg7I,EAAUlB,EAASA,EAAQgQ,EAAO9pJ,EAAMA,EACrC,MAAA,CACL85I,GAAU,EAAI,QAAWgQ,IAAS,IAAO,UAAY9O,EAAUA,GAC/Dh7I,GAAO,EAAI8pJ,EAAO,KAGTiR,GAAA9jhB,OAAS,SAAS9uB,EAAGC,GAChC,IAAiCwvG,EAA7Bkib,EAAS3xhB,EAAG63Y,EAAM53Y,EAAG9L,EAAI,GAC1B,EAAA,CACD,IAAIwtiB,EAAO9pJ,EAAMA,EACjBA,GAAOpoS,GAASooS,GAAO,EAAI8pJ,EAAO,IAAM1hiB,IAAM,EAAI0hiB,EAAO,SAClDxqiB,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GACnCA,EAAA,GACJ6L,GAAK,EAAI,QAAW2hiB,EACjB,EAAA,CACG,IAAAkR,GAAWA,EAAUlhB,EAASA,GAAUkhB,EAC5ClhB,GAAUlib,GAASkib,GAAU,IAAO,UAAYkhB,GAAW7yiB,IAAM,IAAO,UAAY6yiB,SAC7E17iB,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GAChC,MAAA,CAACw9hB,EAAQ95I,EAClB,EAII,IAAAi7J,GAAed,GAAqB,QAAQ,OAAU,QAAoB,QAAA,gBAAmB,SAIjG,SAASe,GAAUzzY,GACjB,IAAIt0I,EAAKs0I,EAAQkwX,EAAQ,GAAG,GAAKlwX,GAASkwX,EAAQ,GAAG,GAC5C,SAAAwjB,EAAcrhB,EAAQ95I,GACzB,IAAAlhZ,EAAIg7hB,EAAS,GAAW,GAAA,GAAKjpgB,EAAQ42I,EAAQqyX,EAASh7hB,EAAIoxD,EAAI8vV,GAE3D,OADDnvX,EAAA,IAAM/xB,EAAIq0B,EACTtC,EASF,OAPH42I,EAAQxwI,SAAQkkhB,EAAclkhB,OAAS,SAAS9uB,EAAGC,GACrD,IAAItJ,EAAIqJ,EAAI,GAAW,GAAA,GAAKsuB,EAAYgxI,EAAQxwI,OAAO9uB,EAAIrJ,EAAIq0B,EAAI/qB,GAAI0xhB,EAASrjgB,EAAU,GAAK33B,EAAIoxD,EAI5F,OAHH4pe,GAAU5pe,EAAI4pe,GAAU,EAAI5pe,EACvB4pe,EAAS5pe,IAAI4pe,GAAU,EAAI5pe,GACpCz5B,EAAU,GAAKqjgB,EACRrjgB,CACT,GACO0khB,EAEA,SAAAC,GAActhB,EAAQ95I,GACzB,IAAAq7J,EAAUplf,EAAK6je,GAASwhB,EAAOrlf,EAAK+pV,GAAMk6I,EAASn/f,EAAIilX,GAAM73Y,EAAI4yB,EAAI++f,GAAUI,EAAQ9xhB,EAAI4yB,EAAI8+f,GAAUI,EAAQ7ygB,EAAI2T,EAAIsghB,EAAOt7J,GACpI85I,EAASx6hB,EAAIo8B,EAAMtzB,EAAGif,IACtB24X,EAAMpsX,EAAKzrB,GACP7I,EAAIw6hB,EAASnC,GAAUhkT,IAAmBmmT,GAAAnC,GAC1C,IAAA9mgB,EAWG,SAAqBipgB,EAAQ95I,GACpC,GAAIA,IAAQ23I,EAAe,MAAA,CAAC,EAAG,GAC3B,IAAkNxvhB,EAAG7L,EAArN69hB,EAASn/f,EAAIglX,GAAMvlX,EAAI0/f,EAASA,EAAQxjY,EAAKl8H,EAAIA,EAAGz1B,EAAI,EAAI2xJ,EAAIpsB,EAAK,EAAI,EAAIosB,EAAIt+H,EAAI,EAAIs+H,EAAItvI,EAAIuM,EAAK,EAAIxR,EAAKpd,IAAK8c,EAAIuW,EAAIoC,EAAIz1B,EAAIqiB,EAAG0pC,GAAM,EAAIope,GAAUr4gB,EAAG5O,EAAIkP,EAAK2uC,GAAKmnL,EAAKnnL,EAAK/rD,EAAGkD,EAAIka,EAAK81N,GAAKr2N,EAAI3O,EAAImlB,EAC/M,GAAW,IAAXyhgB,EAAqB,MAAA,CAAC,IAAKj4gB,EAAI4Y,EAAIvyB,IACnC,IAAmY0vG,EAAnYsib,EAASn/f,EAAIilX,GAAMu7J,EAAS,EAAIrhB,EAAQshB,EAAS,EAAIrhB,EAASD,EAAQuhB,IAAU,EAAKhhhB,EAAIpT,EAAIkjH,GAAMixa,EAAQE,IAAY55hB,EAAIo4gB,GAAU,EAAIC,GAAUshB,IAAW35hB,EAAIA,GAAyHgnC,GAAMyyf,EAASC,EAAQG,GAAMJ,GAAjE9ghB,EAAIz1B,EAAI02iB,EAAU3qf,EAAKw5E,EAAKixa,GAAwDI,GAAY,EAAAL,GAA5IljhB,GAA5B,GAAMqjhB,EAAUxoiB,GAAyB,EAAIunB,EAAIvnB,EAAIsoiB,GAAoI1gB,EAAU,EAAIhB,EAAS5pe,EAC/X,GAAA4pe,EAAS,KAAQ5pe,GAAM8vV,EAAM9vV,EAAK,GAAK4pe,EAAS,KAAQ5pe,EAAI,CAE9D,GADK/nD,GAAA0Z,EAAI4Y,EAAIrY,EAAK81N,GAAM,EAAIvhF,GAAM90I,EAAIA,KAAO,EAAI80I,GAC7CmjY,EAAS5pe,EAAK,EAAU,MAAA,CAAC/nD,EAAGA,GAC5B,IAAAstC,EAAMttC,EAAGk6Y,EAAM,GAAMl6Y,EACrBA,EAAA,IAAOk6Y,EAAM5sW,GAAMn5C,EAAI,GACxB,EAAA,CACD,IAA0BsiB,EAAIzW,GAAKyziB,EAAO9yf,EAAlC1mC,EAAK81N,EAAK/vO,EAAIA,IAA8BwziB,EAAK/nhB,EAAKzrB,EAAID,GAAK4yhB,EACvE,IAAKl8gB,EAAG,MACJA,EAAI,EAASyjY,EAAAl6Y,EACNstC,EAAAttC,EACXA,EAAI,IAAOk6Y,EAAM5sW,EAAA,OACVn2C,EAAIm2C,EAAM4sW,GAAO1uK,KAAar3O,EAAI,EAAA,KACtC,CACL6L,EAAIwrO,EAASr3O,EAAI,GACd,EAAA,CACG,IAAAy1C,EAAK5pC,EAAIA,EAAGotD,EAAKnzC,EAAK81N,EAAKnmM,GAAK8pgB,EAAUD,EAAO9yf,EAAKyM,EAAIygY,EAAK7tb,EAAI0ziB,EAAUF,EAAK/nhB,EAAKzrB,EAAID,GAAK4yhB,EAC/F3yhB,GAAAyvG,EAAQriD,EAAKygY,GADgG6lH,GAAWF,EAAK7yf,EAAK/W,GAAMwjB,GACjH,QACrBj2D,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GAElC,MAAA,CAAC6L,GAAI0Z,EAAI4Y,EAAIrY,EAAK81N,EAAK/vO,EAAIA,IAnCtB2ziB,CAAqBhiB,EAAS5pe,EAAK,EAAIyne,EAASmC,EAASA,EAAQ95I,GAEtE,OADH85I,EAAS5pe,EAAK,IAAO7oC,EAAAwJ,EAAM,GAAIA,EAAM,IAAMA,EAAM,GAAIA,EAAM,IAAMxJ,GAC9DwJ,EAAM,IAAMwqhB,EAASxqhB,EAAM,KAAOyqhB,EAAMzqhB,EAuExC,SAAAkrhB,GAAU/mhB,EAAGx2B,GAChB,IAAA01K,EAAI9xK,EAAG49Y,EAAKl9X,EAAGk5hB,EA3+BN7ziB,EA4+Bb,GAAI3J,EAAIm1O,EAIC,MAAA,EAHP7wN,EAAIkY,EAAIhG,KAEHk/I,EAAA11K,GAAKw2B,EAAIlS,GADd1gB,EAAI24B,EAAI/F,KACe,GAEZ5yB,EACTA,EAAI8xK,EAAKpxJ,EACT,EAAItkB,EAAIskB,EAAIA,EAAI,EAChBkS,EAAIk/I,GAGJ,GAAA11K,GAAK,QAMA,OALP01K,GAAM,EAAI11K,GAAK,EAGfwhZ,EAAM,GAFN59Y,EAAI0mZ,EAAM9zX,IAIH,EAHPlS,IAz/BE3a,EAAA2rB,EAAI,GADK3rB,EA0/BD6sB,KAx/BA,IAAM7sB,EAAI,IA4/Bd+rK,IAFC8nY,EAAA55iB,EAAI2mZ,EAAM/zX,IAEEA,IAAM5yB,EAAIA,GAC3B49Y,EAAM9rO,EAAKpxJ,EAAIk9X,GAAOg8J,EAAOhnhB,GAC7BgrX,EAAM9rO,EAAKpxJ,EAAIk9X,GAAOg8J,EAAOhnhB,GAC7B,EAAIg/E,EAAKlgF,EAAIkB,IAAM2igB,EAASzjX,GAAM8nY,EAAOhnhB,GAAK5yB,GAG9C,IAAA8F,EAAI,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI9I,EAAI,CAACgjB,EAAK5jB,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIlC,EAAI,EAGzE,IAFH8F,EAAAggB,EAAK,EAAI5jB,GACNw9iB,EAAA,EACA18iB,EAAIF,EAAE9C,GAAK4L,EAAE5L,IAAMq3O,GAAWr3O,EAAI,GACvC43K,EAAKhsK,EAAE5L,KACL8C,EAAA9C,IAAM43K,EAAK9xK,GAAK,EAChB8F,EAAA5L,IAAM43K,EAAK9xK,GAAK,EACdA,EAAAggB,EAAK8xJ,EAAK9xK,GACN45iB,GAAA,EAEJh8J,EAAAg8J,EAAO9ziB,EAAE5L,GAAK04B,EACjB,GAEMgrX,GAAApsX,EADH9Q,EAAA1jB,EAAE9C,GAAK0+B,EAAI54B,EAAI49Y,GAAO93Y,EAAE5L,IACX0jZ,GAAO,UACf1jZ,GACX,MAAO,CAAC0+B,EAAIglX,GAAMl9X,EAAIiY,EAAIilX,GAAMl9X,EAAIiY,EAAIilX,EAAM59Y,GAAI49Y,GAgB3C,SAAAi8J,GAAUj8J,EAAKxhZ,GAClB,IAACA,EAAU,OAAAwhZ,EACX,GAAM,IAANxhZ,EAAgB,OAAAiB,EAAIylC,EAAI86W,EAAM,EAAI43I,IAEtC,IADI,IAAA1vhB,EAAI,EAAG9F,EAAIggB,EAAK,EAAI5jB,GAAIY,EAAIgjB,EAAK5jB,GAC5BlC,EAAI,EAAGgD,EAAIF,GAAKu0O,EAASr3O,IAAK,CACrC,GAAI0jZ,EAAM9vV,EAAI,CACZ,IAAIojf,EAAOt/b,EAAK5xG,EAAI8iC,EAAI86W,GAAO93Y,GAC3BoriB,EAAO,IAAWA,GAAApjf,GACtB8vV,GAAOszJ,KAAUtzJ,EAAM9vV,GAAMA,OACjB8vV,GAAAA,EACd5gZ,GAAK8I,EAAI9F,GAAK,EACVA,EAAAggB,EAAKla,EAAI9F,GACPhD,IAAA8I,EAAI9I,GAAKgD,GAAK,EAEtB,OAAO49Y,GAAO9gZ,EAAI,EAAG5C,GAAK4L,GAEnB,SAAAg0iB,GAASpiB,EAAQ95I,GACxB,IAAI05J,GAAM3jZ,EAAQ,IAAMA,EAAQ,GAAIxrB,EAAKnoH,EAAK,EAAIs3hB,EAAKA,GAAKyC,EAAKF,GAAUtkB,EAAQptZ,EAAKA,GAAa6xa,EAAM38iB,EAAIylC,EAAIgrB,EAAK,EAAI5wD,EAAI0gZ,GAAO,IAAKvlX,EAAI3G,GAA/C,EAAuDsohB,GAAOh6hB,EAAKs3hB,GAAKp+c,EAGlK,SAAiBnzF,EAAGC,GACvB,IAAA2pC,EAAK5pC,EAAIA,EAAGk0iB,EAAMj0iB,EAAI,EAAG0a,EAAI,EAAIivB,EAAK3pC,EAAIA,EACvC,MAAA,CACL,KAAQD,GAAK,EAAIwvhB,GAAUA,GAAUj8f,EAAM5Y,EAAG,EAAI3a,KAClD,IAAQ1I,EAAIqjB,EAAIA,EAAI,EAAIivB,GAAM,GAAMtyC,EAAI48iB,EAAMA,EAAMtqgB,IAPwHuqgB,CAAiB7hhB,EAAIM,GAAlG,EAA0G++f,GAASr/f,EAAIO,GAAvH,EAA+H8+f,IAAUh3gB,EA/BnO,SAAWk9X,EAAKo8J,EAAK59iB,GACxB,IAAAi8B,EAAIn7B,EAAI0gZ,GAAoBu8J,EAAUxzJ,EAApBzpZ,EAAI88iB,IAC1B,GAAI3hhB,EAAG,CACL,IAAI+hhB,EAAS,EAAIxhhB,EAAIP,GAAIgihB,EAAU,GAAKv3gB,EAAIzK,GAAKyK,EAAIzK,IAAKr4B,IAAMq6iB,EAAUj+iB,GAAK+9iB,EAAUA,EAAUC,EAASA,GAAU,EAAIh+iB,GAA2Bk+iB,IAAet6iB,EAAIggB,EAAKhgB,EAAIA,GAA9C5D,EAAI,GAAKi+iB,EAAyC,IAAU,EACxL,MAAA,CACLR,GAAUjoc,EAAK,EAAI5xF,EAAKs6hB,IAAcl+iB,GAAKy3D,EAAK+pV,GAChDi8J,GAAUjoc,EAAK5xF,GAAMs6hB,EAAaD,EAAU,GAAKj+iB,IAAK,EAAIA,GAAKy3D,EAAKmmf,IAGjE,MAAA,CACL,EACAH,GAAUjoc,EAAKuoc,GAAU,EAAI/9iB,GAAKy3D,EAAKmmf,IAoBqMO,CAAWrhd,EAAG,GAAIA,EAAG,GAAIivC,EAAKA,GAC5Q,MAAO,EAAEznH,EAAE,IAAKk9X,GAAO,EAAI,GAAW,IAAA,GAAMm8J,EAAKr5hB,EAAE,KA0BrD,SAAS85hB,GAAwBjd,GAC3B,IAAAtG,EAAUr+f,EAAI2kgB,GAAQvG,EAAUr+f,EAAI4kgB,GAAQzmf,EAAS2jgB,GAA6Bld,GAE7E,SAAA7mT,EAAQghT,EAAQ95I,GACnB,IAAA9sY,EAAIgmC,EAAO4gf,EAAQ95I,GACvB85I,EAAS5mhB,EAAE,GAAI8sY,EAAM9sY,EAAE,GACvB,IAAIinhB,EAASn/f,EAAIglX,GAAMk6I,EAASn/f,EAAIilX,GAAM+yJ,EAAYh4gB,EAAI++f,GAASzygB,EAAI2mC,EAAKqre,EAAUc,EAASf,EAAUc,EAAS6Y,GAAYP,EAAOx3gB,EAAI3T,GAAI80hB,EAAK78iB,EAAIkziB,GAAQ7+T,EAAUtsN,EAAImrhB,EAAO,EAC5K,MAAA,CACL2J,EAAK/iB,EAAUp+f,EAAI8+f,IAClBx6hB,EAAIw6hB,GAAUnC,EAASwkB,GAAMA,IAAO9iB,EAAUa,EAASd,EAAUe,EAAS4Y,IAOxE,OAdA75f,EAAAjiB,OAAS4lhB,IAA8Bld,GAUtC7mT,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAI+kZ,EAAM/qY,EAAKja,EAAIA,EAAIC,EAAIA,GAAIoqiB,GAAQx3gB,EAAImyX,GAAM+kJ,EAAOn3gB,EAAIoyX,GAAMjlZ,EAAIilZ,EAAM+kJ,EAAM9viB,GAAKgG,EAAIoqiB,EAAMpziB,EAAI+tZ,EAAMksI,EAASx6hB,EAAIujB,EAAKla,EAAIA,EAAI9F,EAAIA,EAAIhD,EAAIA,GAAI4gZ,EAAMtkX,EAAMxzB,EAAI9I,EAAIgD,EAAIvD,EAAGuD,EAAIhD,EAAI8I,EAAIrJ,GAAIi7hB,GAAU3sI,EAAMwqI,GAAS,EAAK,GAAKj8f,EAAMvzB,EAAIqqiB,EAAMrlJ,EAAMpyX,EAAIilX,GAAOkyJ,EAAO9piB,EAAI4yB,EAAIglX,GAAOwyJ,GACnR,OAAAt5f,EAAOjiB,OAAO6igB,EAAQ95I,EAC/B,EACOlnK,EAET,SAAS+jU,GAA6Bld,GACpC,IAAItG,EAAUr+f,EAAI2kgB,GAAQvG,EAAUr+f,EAAI4kgB,GACjC,OAAA,SAAS7F,EAAQ95I,GACtB,IAAIk6I,EAASn/f,EAAIilX,GAAM73Y,EAAI4yB,EAAI++f,GAAUI,EAAQ9xhB,EAAI4yB,EAAI8+f,GAAUI,EAAQ7ygB,EAAI2T,EAAIglX,GAC5E,MAAA,CACLtkX,EAAMtzB,EAAGD,EAAIixhB,EAAU/xgB,EAAIgygB,GAC3BzlgB,EAAKvM,EAAI+xgB,EAAUjxhB,EAAIkxhB,GAE3B,EApMY+hB,GAAAnkhB,OAAS,SAAS9uB,EAAGC,GAC7B9I,EAAI6I,GAAK,MAAiB,EAAV8tD,EAAK9tD,GAASA,GAC9B7I,EAAI8I,GAAK,MAAiB,EAAV6tD,EAAK7tD,GAASA,GAClC,IAAIqrC,EAAKwiB,EAAK9tD,GAAIurC,EAAKuiB,EAAK7tD,GAAIi6Y,GAAO5uW,EAAKtrC,EAAGm6Y,GAAO5uW,EAAKtrC,EAAG0a,EAAIw/X,EAAMD,EAAM,EAAGnvY,EA8B1E,SAA2B/K,EAAGC,GAErC,IADA,IAAIi6Y,EAAM,EAAG5sW,EAAM,EAAGhb,EAAI,GAAKn+B,EAAI,KACtB,CACP,IAAAq6J,EAAKl8H,EAAIA,EAAG0/f,EAAS/3gB,EAAKqY,GAAIpT,EAAIuM,EAAK,EAAIxR,EAAK,EAAIu0I,IAAM70I,EAAI,EAAI60I,EAAKl8H,GAAK,EAAIk8H,GAAMtvI,EAAG0pC,GAAM,EAAIope,GAAUr4gB,EAAG5O,EAAIkP,EAAK2uC,GAAKmnL,EAAKnnL,GAAM,EAAI4lG,GAAK90I,EAAI3O,GAAK,EAAIyjJ,GAAsBxgI,EAAI/T,EAAhB81N,EAAK/vO,EAAIA,GAAiBm6Y,EAAMl6Y,EAAIyZ,EAAI4Y,EAAItE,EACrN,GAAA72B,EAAIm2C,EAAM4sW,GAAOq1I,GAAqB,KAANp7hB,GAAmB,IAARgmZ,EAAW,MACtDA,EAAM,EAASD,EAAA5nX,EACRgb,EAAAhb,EACXA,EAAI,IAAO4nX,EAAM5sW,GAEf,IAACn5C,EAAU,OAAA,KACf,IAAI0jZ,EAAMpsX,EAAKumgB,GAASD,EAASn/f,EAAIilX,GAAMu7J,EAAS,EAAIrhB,EAAQshB,EAAS,EAAIrhB,EAASD,EAAuDwhB,IAAY55hB,EAAIo4gB,IAAhD,EAAAz/f,EAAIpT,GAAK,EAAI,EAAIsvI,IAAO6kZ,GAAkC,EAAIrhB,KAAqBr4gB,EAAIA,GAAIg7hB,EAAS,GAAMpB,EAAUxoiB,EAAG6piB,GAAU,EAAIpmZ,GAAMmmZ,EAAS,EAAIrihB,EAAIvnB,EAAIsoiB,EAC7Q,MAAO,CAACtrf,EAAK,GAAK/nD,IAD+Q,EAAAoziB,EAASwB,GAAcxB,EAASC,EAC9RrlhB,IAD4SolhB,GAAU9ghB,GAAK,EAAIk8H,GAAM+kZ,EAAU3qf,GAAM,EAAI,EAAI4lG,GAAM6kZ,GACzV5nhB,EAAKzrB,EAAIia,EAAK81N,KAAO8nK,GAzCmBg9J,CAA2Bl6hB,EAAIw/X,EAAMD,EAAKv/X,EAAIu/X,EAAMC,GAAMw3I,EAAS5mhB,EAAE,GAAI8sY,EAAM9sY,EAAE,GAAIgnhB,EAASn/f,EAAIilX,GAEvL,OADIl9X,IAAYg3gB,GAACnC,EAASmC,GACnB,CAACrmf,GAAM/X,EAAMV,EAAI8+f,GAAUI,GAASl/f,EAAIglX,IAAQ9vV,GAAKxc,EAAK9f,EAAKmH,EAAI++f,GAAUI,GACtF,EA0JSgiB,GAAAjlhB,OAAS,SAAS9uB,EAAGC,GACxB,IAhHc4sB,EAAGlT,EAAGtjB,EACpB0J,EAAG9F,EAAGhD,EA+GNs6iB,GAAM3jZ,EAAQ,IAAMA,EAAQ,GAAIxrB,EAAKnoH,EAAK,EAAIs3hB,EAAKA,GAAKyC,EAAKF,GAAUtkB,EAAQptZ,EAAKA,GAAavlI,GAhHhF8c,GAgH8G3Z,EAhH3G3J,EAgH8G+rI,EAAKA,GAhHzHv1G,EAgHkG,GAAMmnhB,EAAK/ziB,IAtG3HF,EAAA6ziB,GAAU/mhB,EAAGx2B,GACZsjB,GAEL1iB,GADIgD,EAAA25iB,GAAUj6hB,EAAG,EAAItjB,IACf,GAAK4D,EAAE,GAAK5D,EAAI0J,EAAE,GAAKA,EAAE,GAAK9F,EAAE,GAAKA,EAAE,GACtC,CACL,CAAC8F,EAAE,GAAK9F,EAAE,GAAKhD,EAAG8I,EAAE,GAAKA,EAAE,GAAK9F,EAAE,GAAKA,EAAE,GAAKhD,GAC9C,CAAC8I,EAAE,GAAK9F,EAAE,GAAKhD,GAAI8I,EAAE,GAAKA,EAAE,GAAK9F,EAAE,GAAKA,EAAE,GAAKhD,GAC/C,CAAC8I,EAAE,GAAK9F,EAAE,GAAKA,EAAE,GAAKhD,GAAIZ,EAAI0J,EAAE,GAAKA,EAAE,GAAK9F,EAAE,GAAKhD,KANtC,CAAC,CAAC8I,EAAE,GAAI,GAAI,CAACA,EAAE,GAAI,GAAI,CAACA,EAAE,GAAI,KAPpC,CACL,CAAC,GAFC9F,EAAA25iB,GAAUj6hB,EAAG,EAAItjB,IAEb,GAAK4D,EAAE,IACb,CAAC,EAAIA,EAAE,GAAI,GACX,CAACA,EAAE,GAAKA,EAAE,GAAI,KAyG8Hujd,EARzI,SAAmBz9c,EAAG9F,GACzB,IAAAixiB,EAAcjxiB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAClC,MAAA,EACJ8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,IAAMixiB,GAC7BnriB,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,IAAMixiB,GAIqH4J,CAAmBj4iB,EAAE,GAAIA,EAAE,IACzK,MAAA,CADuL02B,EAAMiqb,EAAG,GAAIA,EAAG,KAA7G,EAG/F,EAAI3xW,EAAKlgF,GAAI,GAAUr0B,EAAIi6iB,EAAK/zF,EAAG,GAAKA,EAAG,GAAK+zF,EAAK/zF,EAAG,GAAKA,EAAG,MAAQgyE,EAE5E,EAgEI,IAAQulB,GAAkBtphB,EAAK,EAAI,EAA9B,GAAwC2kK,EAAU4kX,GAAiBvR,GAAwB,GACpG,SAASwR,GAAWx7hB,GACd,IAAA+9gB,EAAQud,GAAkB7wB,EAAUl5f,EAAK+jhB,GAAahnf,EAAIyve,GAAO,GAAKuX,IAAchnf,EAAIyve,GAAO,GAAIr9I,EAAM66J,GAAe,EAAGxd,GAAO,GAAIjqf,EAAMwhgB,GAAa,EAAGvX,GAAO,GAAIzwe,EAAM0if,EAASl8f,EAAK60F,EAAK8+T,EAAMznb,EAAGsrZ,EAAK,EAAIm8B,EAAKxnb,EAAIygY,EAAMpzV,EAAMA,EAAM,EAAIm6Y,EAC5O,SAAAvwN,EAAQghT,EAAQ95I,GACnB,IAAAnvX,EAAOi5gB,EAAOxqiB,EAAI0gZ,GACtB,GAAI8pJ,EAAOnK,EAAO,CACZ,IAAArjiB,EAAI+J,EAAIub,EAAI,EAAG7Y,EAAI,EAAGvJ,GAAOs6hB,EAAS5pe,GAAMq6E,MAExC15G,EAAAqmhB,GADRpd,GAAU5pe,GAAMtuC,EAAI,GAAKA,EAAItlB,EAAIiuI,EACJu/Z,IACvB,GAAKj5gB,EAAM,GAAKw4a,EAAMl2a,EAAKk2a,GAAOznb,EAAI,IAAM,EAAIA,GAAKtlB,EAAI+sc,EAAMznb,EAC/DiP,EAAA,GAAKyxX,EAAyB,GAAlBzxX,EAAM,GAAK6kB,GAAWwZ,EAAMm6Y,EAC1CrpD,EAAM,IAAGnvX,EAAM,IAAMA,EAAM,GAAC,MAExBA,EAAAsshB,GAAerjB,EAAQ95I,GAG1B,OADPnvX,EAAM,IAAMq8Y,EAAIr8Y,EAAM,IAAMhP,EACrBgP,EAeF,OAbCioN,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3BD,GAAK+ka,EACD,IAAAl7X,EAAK1yC,EADA8I,GAAKyZ,GAEd,GAAImwB,EAAKswW,EAAK,CACR,IAAAhmZ,EAAI+J,EAAIub,EAAI,EAAG7Y,EAAI,EAAGvJ,GAAO2I,EAAI+nD,GAAMq6E,KAC3CpiI,GAAKA,EAAI+nD,GAAMtuC,EAAI,GAAKA,EAAItlB,EAAIiuI,GAAMp3G,EAAKk2a,EACvC,IAAAx4a,EAAQqmhB,GAAajghB,OAAO9uB,EAAG,KAAQ6pC,EAAKswW,GAAO+mD,EAAMn6Y,EAAMxZ,GAG5D,OAFP7kB,EAAM,IAAMq/B,GAAMtuC,EAAI,GAAKA,EAAItlB,EAAIiuI,EAC/BniI,EAAI,IAAGyoB,EAAM,IAAMA,EAAM,IACtBA,EAEF,OAAAsshB,GAAelmhB,OAAO9uB,EAAGC,EAClC,EACO0wO,EAEA,SAAAukU,GAAUl1iB,EAAG7L,GACpB,MAAO,CAAC6L,EAAO,EAAJ7L,EAAQ,UAAe4gjB,IAE3B,SAAAI,GAAan1iB,EAAG7L,GACvB,MAAO,CAAC6L,EAAO,EAAJ7L,GAAQ,WAAiB4gjB,IAEtC,SAASK,GAAY1+iB,GACZ,MAAA,CAAI,QAAHA,EAAE,GAAoBA,EAAE,IA2BlC,SAAS2+iB,GAAQrB,GACf,IAAkGnH,EAA9FvmgB,EAAI,EAAI0tgB,EAAwBsB,EAAK7phB,EAAjBoH,EAAI,EAAIyT,IAAsBo+f,EAAK,EAAIzqhB,EAAK8tC,GAAM8kf,EAAK9kf,EAAK,EAAIutf,EAAKhvgB,IAASivgB,EAAO,GAAM7Q,GAAMp+f,EAAIrsB,EAAK+5hB,GAAM,EAAIA,KAAOwB,EAAMxB,EAAKA,EAAIyB,EAAKnvgB,EAAIA,EAClK,SAAAqqM,EAAQghT,EAAQ95I,GACvB,IAAsBmN,EAAKwqD,EAAvB70b,EAAI,EAAIkY,EAAIglX,GACZ,GAAAl9X,GAAKA,EAAI,EAAG,CACd,IAAkC80F,EAA9Br4D,EAAQo4e,EAAS33I,EAAK1jZ,EAAI,GAC3B,EAAA,CACD,IAAIuhjB,EAAW7ihB,EAAIukB,GAAQu+f,EAAW/ihB,EAAIwkB,GAAQw+f,EAASN,EAAK/hhB,EAAMmihB,EAAUpvgB,EAAIqvgB,GAAW3/J,EAAK,EAAIy/J,EAAK,EAAInvgB,EAAIqvgB,EACrHv+f,GAASq4D,GAASr4D,EAAQo+f,EAAMF,EAAKhvgB,EAAIovgB,EAAW1/J,EAAK4/J,EAAS,GAAMj7hB,EAAIkyhB,IAAO,EAAIvmgB,EAAIovgB,EAAWE,SAC/Fz+iB,EAAIs4G,GAAS8/a,KAAep7hB,EAAI,GACnC6wZ,EAAA0/I,EAAKzqhB,EAAK+7X,GAChBw5D,EAAQmiF,EAASikB,EAAS7tf,CAAA,MAE1Bi9V,EAAM0/I,GAAMsP,EAAKr5hB,GACjB60b,EAAQmiF,EAAS2jB,EAAKvtf,EAEjB,MAAA,CACLi9V,EAAMnyX,EAAI28a,GACV+lG,EAAOvwJ,EAAMpyX,EAAI48a,IAUd,OAPC7+N,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAAglZ,EAAOjlZ,EAAIA,GAAKC,GAAKs1iB,GAAQt1iB,EAAG01iB,GAAY,EAAIF,EAAKxwJ,GAAQy/I,EAAKA,KAAQ,EAAIp+f,GAAI8Q,EAAQyO,EAAK8vf,GAAWD,EAAW7ihB,EAAIukB,GAAQw+f,EAASN,EAAK/hhB,EAAMmihB,EAAUpvgB,EAAIqvgB,GAChK,MAAA,CACLlqhB,EAAKzrB,EAAIia,EAAKgrY,IAASl9V,EAAK6tf,EAC5BnqhB,EAAK,EAAI,GAAK2rB,EAAQo+f,EAAMF,EAAKhvgB,EAAIovgB,GAAY,EAAID,EAAK,EAAInvgB,EAAIqvgB,GAAYC,GAAU/I,GAE5F,EACOl8T,EAST,IAAIklU,GAAmB,kBACnBC,GAAiB,eACZ,SAAAC,GAAiBpkB,EAAQ95I,GAChC,OAAOA,GAAM,oBAAqB85I,EAASkc,EAAalc,EAAQ95I,IAAa,IAAMi+J,GAAgBnkB,GAAUsc,EAActc,EAAQ95I,GAQ5H,SAAAm+J,GAAcrkB,EAAQ95I,GACtB,OAAA1gZ,EAAI0gZ,GAAOg+J,KAAoBlkB,EAASkc,EAAalc,EAAQ95I,IAAa,IAAMA,EAAM,EAAIi+J,mBAAkCnkB,GAAUsc,EAActc,EAAQ95I,GAQrK,SAASo+J,GAAYl2iB,EAAG9F,EAAGi8iB,EAAQj2f,GACjC,IAAImiF,EAAKnoH,EACP,EAAI8tC,GAAM,EAAImuf,GAAU,EAAIn2iB,EAAI9F,EAAI,GAAK44B,EAAI,EAAIqjhB,IAAWn2iB,EAAI9F,GAAK,EAAI44B,EAAI,EAAIqjhB,GAAUj8iB,EAAI,EAAI44B,EAAI,EAAIqjhB,KAC1Gj/iB,EAAIgjB,EACLgmC,EAAQptB,EAAIqjhB,GAAUj8hB,GAAM,EAAIla,EAAI6yB,EAAI,EAAIsjhB,GAAUj8iB,EAAI24B,EAAI,EAAIsjhB,KAAY,EAAIn2iB,EAAI9F,KACrF2/D,EAAIs8e,EAASrqa,EAAQ,GACxB,SAAS7tF,EAAOi2f,GACP,OAAAh6hB,EAAK,EAAIla,EAAI6yB,EAAI,EAAIqhhB,GAAOh6iB,EAAI24B,EAAI,EAAIqhhB,IAEjD,SAASpoa,EAAQlxH,GACf,IAAIs5hB,EAAMt5hB,EAAIu7hB,EACN,OAAA,EAAIjC,GAAO,EAAIl0iB,EAAI9F,EAAI,GAAK44B,EAAI,EAAIohhB,IAAQl0iB,EAAI9F,GAAK,EAAI44B,EAAI,EAAIohhB,GAAOh6iB,EAAI,EAAI44B,EAAI,EAAIohhB,IAAQiC,EAE1G,SAASC,EAAelC,GACtB,OAAOj2f,EAAOi2f,GAAOphhB,EAAIohhB,GAEvB,IAAAtjU,EAAU,SAASghT,EAAQ95I,GACzB,IAAAo8J,EAAMiC,EAASh8I,EAAMruR,EAASjyE,EAAI/mC,EAAIglX,GAAOq+J,EAAQr+J,EAAM9vV,GAC3D3wD,MAAM68iB,KAAYA,EAAAiC,EAASpof,EAAK+pV,IAChC,IAAAu+J,EAAKh0a,EAAKpkF,EAAOi2f,GACrB,MAAO,CAACmC,EAAKn/iB,EAAI06hB,EAAS5pe,EAAKn1B,EAAIqhhB,GAAMmC,EAAKn/iB,EAAI47B,EAAIohhB,GACxD,EAiBO,OAhBCtjU,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAIg0iB,EAAM/5I,EAAMi8I,EAAgBl2iB,EAAIhJ,EAAImrI,GACjC,MAAA,CACLpiI,EAAI+nD,GAAMn1B,EAAIqhhB,GAAO7xa,EAAKnrI,EAAI+mD,EAAOi2f,IACrCxohB,EAAKyqhB,EAASrqa,EAAQooa,EAAMiC,GAAUt8e,GAE1C,EACe,IAAXs8e,IACG9za,EAAAnoH,EAAKgmC,EAAQ8H,IACR4oL,EAAA,SAASghT,EAAQ95I,GACzB,MAAO,CAAC85I,EAASvvZ,EAAIvvG,EAAIglX,GAAOz1Q,EAClC,GACQtzG,OAAS,SAAS9uB,EAAGC,GAC3B,MAAO,CAACD,EAAIoiI,EAAI32G,EAAKxrB,EAAImiI,GAC3B,GAEKuuG,EAkBA,SAAA0lU,GAAO5/hB,EAAG1W,EAAG9F,EAAGq3e,EAAIlpc,EAAIC,EAAImic,EAAIsF,EAAKj8F,EAAU/1X,EAAO5I,GAC7D,GAAIA,EAAMohiB,eACD,OAAA1/iB,IAEL,IAAA8iB,EAAGi0a,EAAIE,EAAI1oH,EAAIoxO,EAAI11hB,EAAIxqB,EAAGo0e,EAAIC,EAAI99d,EAIlC,GAFC+gb,EAAAl3a,EAAE1W,EAAQ,KADf2Z,EAAIzf,EAAI8F,IAEH8tb,EAAAp3a,EAAExc,EAAQ,IAAJyf,GACPtiB,MAAMu2b,GACRz4a,EAAMohiB,gBAAiB,MADrB,CAIA,IAAAl/iB,MAAMy2b,GAQV,OADAjhb,IADAiU,GAFAskT,EAAKzrT,GAAK43d,EAAK,EAAI3jD,EAAKvlZ,GAAM,KAC9BmugB,EAAK78hB,GAAK0uB,EAAK,EAAIylZ,EAAKxlZ,GAAM,KAElBmic,GAAM,GACd1sd,EAAQ+1X,GACJ3+X,EAAAshiB,gBACC31hB,EAAKjU,GACH9V,KAAKK,IAAIyV,GAAOkje,EAClBjvd,EAAKjU,GAGZ69d,EAAK4rE,GAAO5/hB,EAAG1W,EADf1J,EAAI0J,EAAQ,GAAJ2Z,EACa43d,EAAI3jD,EAAIvlZ,EAAI+8R,EAAU,GAAN2qK,EAAWj8F,EAAU/1X,EAAQ,EAAG5I,GACjE9d,MAAMqze,IACRv1d,EAAMohiB,gBAAiB,EAChB1/iB,MAET8ze,EAAK2rE,GAAO5/hB,EAAGpgB,EAAG4D,EAAGmuC,EAAIylZ,EAAIxlZ,EAAIkugB,EAAU,GAANzmE,EAAWj8F,EAAU/1X,EAAQ,EAAG5I,GACjE9d,MAAMsze,IACRx1d,EAAMohiB,gBAAiB,EAChB1/iB,KAEF6ze,EAAKC,IAxBZx1d,EAAMohiB,gBAAiB,GA2B3B,SAASG,GAAUhgiB,EAAG1W,EAAG9F,EAAG61e,EAAKj8F,QAQd,IAAbA,IACSA,EAAA,IAET,IAAAy9F,EAAK76d,EAAE1W,GACPqoC,EAAK3xB,EAAE,IAAO1W,EAAI9F,IAClBouC,EAAK5xB,EAAExc,GAGJ,OADMo8iB,GAAO5/hB,EAAG1W,EAAG9F,EAAGq3e,EAAIlpc,EAAIC,GAD3Bipc,EAAK,EAAIlpc,EAAKC,IAAOpuC,EAAI8F,GAAK,EACK+ve,EAAKj8F,EAAU,EAdhD,CACV2iK,cAAe,EACfF,gBAAgB,IAeX,SAAAI,GAAmBnigB,EAAO6tF,EAAIu0a,GACrC,SAASC,EAASngiB,GACT,OAAA89B,GAAS,EAAIA,GAASx9C,EAAI,EAAIA,EAAI0f,EAAG2rH,GAAK,EAAIA,GAEvD,SAASljH,EAAEzI,GACT,OAAOggiB,GAAUG,EAAU,EAAGngiB,EAAG,MAG1B,IADT,IAAIive,EAAI,EAAIxme,EAAE,GAAIpjB,EAAI,IAAKzF,GAAK,EAAI,MAAQqvf,EAAGmxD,EAAS,GAC/C1ijB,EAAI,EAAGA,GAAK2H,EAAG3H,IACtB0ijB,EAAO5hjB,KAAKiqB,EAAE/qB,EAAI2H,GAAKzF,GACzB,SAAS4mE,EAAEg0e,GACT,IAAIzwf,EAAO,EAAGD,EAAOzkD,EAAGw2B,EAAIx2B,IACzB,GACG+6iB,EAAOvkhB,GAAK2+gB,EAAe1wf,EAAAjuB,EACnBkuB,EAAAluB,EACZA,EAAIkuB,EAAOD,GAAQ,QACZjuB,EAAIkuB,GACb,IAAI3zB,EAAIgqhB,EAAOvkhB,EAAI,GAAKukhB,EAAOvkhB,GAEvB,OADJzF,IAAQA,GAAAokhB,EAAS4F,EAAOvkhB,EAAI,IAAMzF,IAC9ByF,EAAI,EAAIzF,GAAK/wB,EAEvB,IAAImkD,EAAQ,EAAIgd,EAAE,GAAKlV,EAAK29b,EAAIixD,EAC5BhmU,EAAU,SAASghT,EAAQ95I,GACzB,IAAA53Y,EAAIg9D,EAAE9lE,EAAI07B,EAAIglX,KAAQ73Y,EAAI42iB,EAAS32iB,GAAK0xhB,EAE5C,OADK1xhB,GAAAggD,EACE,CAACjgD,EAAG63Y,GAAO,EAAI53Y,GAAKA,EAC7B,EAOO,OANC0wO,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAA43Y,EAGJ,OADI1gZ,EADC8I,GAAAggD,GACQ,MAAS6N,EAAK7tD,GAAKwrB,EAAKvM,EAAE/nB,EAAI8I,IAAMylf,IAC1C,CAAC1lf,EAAI42iB,EAASz/iB,EAAI8I,IAAK43Y,EAChC,EACOlnK,EAeA,SAAAimT,GAAW72hB,EAAG9F,GACrB,OAAO9C,EAAI4I,EAAE,GAAK9F,EAAE,IAAMuxO,GAAWr0O,EAAI4I,EAAE,GAAK9F,EAAE,IAAMuxO,EAEjD,SAAAsrU,GAAgB3zgB,EAAa9sC,GAE7B,IADP,IAAyD4kB,EAAI+P,EAAIC,EAA7D92B,GAAI,EAAI2H,EAAIqnC,EAAYvuC,OAAQk3B,EAAKqX,EAAY,GAAgB4zgB,EAAY,KACxE5ijB,EAAI2H,GAAG,CAEdkvB,IADA/P,EAAKkoB,EAAYhvC,IACR,GAAK23B,EAAG,IAAMz1B,EACvB40B,GAAMhQ,EAAG,GAAK6Q,EAAG,IAAMz1B,EACvB,IAAA,IAASwG,EAAI,EAAGA,EAAIxG,IAAKwG,IAAa5H,KAAK,CAAC62B,EAAG,GAAKjvB,EAAImuB,EAAIc,EAAG,GAAKjvB,EAAIouB,IACnEa,EAAA7Q,EAGA,OADP87hB,EAAU9hjB,KAAKgmB,GACR87hB,EA+BA,SAAA7rf,GAAUo0G,EAASmtY,EAAQuK,GAClC,IAAIC,EAAShrc,EACJ,SAAA0kI,EAAQghT,EAAQ95I,GAEvB,IADI,IAAAq/J,EAAUr/J,EAAM,GAAI,EAAK,EAAGs/J,EAAO1K,IAAS50J,EAAM,IAC7C1jZ,EAAI,EAAG2H,EAAIq7iB,EAAKvijB,OAAS,EAAGT,EAAI2H,GAAK61hB,EAASwlB,EAAKhjjB,GAAG,GAAG,KAAMA,GACpE,IAAAy0D,EAAK02G,EAAQqyX,EAASwlB,EAAKhjjB,GAAG,GAAG,GAAI0jZ,GAElC,OADPjvV,EAAG,IAAM02G,EAAQ63Y,EAAKhjjB,GAAG,GAAG,GAAI+ijB,EAAUr/J,EAAMq/J,EAAUC,EAAKhjjB,GAAG,GAAG,GAAKgjjB,EAAKhjjB,GAAG,GAAG,GAAK0jZ,GAAK,GACxFjvV,EAELouf,EACMrmU,EAAA7hN,OAASkohB,EAASrmU,GACjBrxE,EAAQxwI,SACT6hN,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAElB,IADL,IAAAs7C,EAAQ0wD,IAAShsG,EAAI,IAAKk3iB,EAAO1K,IAASxsiB,EAAI,IACzC9L,EAAI,EAAG2H,EAAIy/C,EAAM3mD,OAAQT,EAAI2H,IAAK3H,EAAG,CACxC,IAAA8F,EAAIshD,EAAMpnD,GACV,GAAA8F,EAAE,GAAG,IAAM+F,GAAKA,EAAI/F,EAAE,GAAG,IAAMA,EAAE,GAAG,IAAMgG,GAAKA,EAAIhG,EAAE,GAAG,GAAI,CAC9D,IAAI2uD,EAAK02G,EAAQxwI,OAAO9uB,EAAIs/J,EAAQ63Y,EAAKhjjB,GAAG,GAAG,GAAI,GAAG,GAAI8L,GAE1D,OADA2oD,EAAG,IAAMuuf,EAAKhjjB,GAAG,GAAG,GACbyiiB,GAAWjmT,EAAQ/nL,EAAG,GAAIA,EAAG,IAAK,CAAC5oD,EAAGC,IAAM2oD,EAAK,MAG9D,GAEF,IAAI79C,EAAIu+hB,EAAMT,cAAcl4T,GAAUymU,EAAUrsiB,EAAEyxE,OAuC3C,OAtCLzxE,EAAAyxE,OAAS,SAASA,GAClB,IAAIzrC,EAAShmC,EAAEgmC,SAAUsmgB,EAAeD,EAAQ56d,GAAS86d,GAAgBvsiB,EAAEgmC,OAAO,CAAC,EAAG,IAAKqmgB,EAAQ56d,IAK5F,OAJPzxE,EAAEgmC,OAAOA,GACTsmgB,EAAapnB,OAAS,WACdqZ,EAAAzY,UAAUomB,EAASK,EAC3B,EACOD,CACT,EACEtsiB,EAAAwsiB,MAAQ,SAASv7hB,GACjB,OAAKhhB,UAAUpG,QASfqijB,EAxEJ,SAA2BxK,GACzB,IAAsB0K,EAAMnmB,EAASwG,EAAO5E,EAAMC,EAAS8O,EAAMxtiB,EAA7DgvC,EAAc,GAAkDrnC,EAAI2wiB,EAAO,GAAG73iB,OAClF,IAAKT,EAAI,EAAGA,EAAI2H,IAAK3H,EAEnB68hB,GADOmmB,EAAA1K,EAAO,GAAGt4iB,IACF,GAAG,GAAIqjiB,EAAQ2f,EAAK,GAAG,GAAIvkB,EAAOukB,EAAK,GAAG,GAC/CtkB,EAAAskB,EAAK,GAAG,GAAIxV,EAAOwV,EAAK,GAAG,GACrCh0gB,EAAYluC,KAAK6hjB,GAAgB,CAC/B,CAAC9lB,EAAUxlT,EAASgsT,EAAQhsT,GAC5B,CAACwlT,EAAUxlT,EAASonT,EAAOpnT,GAC3B,CAACqnT,EAAUrnT,EAASonT,EAAOpnT,GAC3B,CAACqnT,EAAUrnT,EAASm2T,EAAOn2T,IAC1B,KAEA,IAAAr3O,EAAIs4iB,EAAO,GAAG73iB,OAAS,EAAGT,GAAK,IAAKA,EAEvC68hB,GADOmmB,EAAA1K,EAAO,GAAGt4iB,IACF,GAAG,GAAIqjiB,EAAQ2f,EAAK,GAAG,GAAIvkB,EAAOukB,EAAK,GAAG,GAC/CtkB,EAAAskB,EAAK,GAAG,GAAIxV,EAAOwV,EAAK,GAAG,GACrCh0gB,EAAYluC,KAAK6hjB,GAAgB,CAC/B,CAACjkB,EAAUrnT,EAASm2T,EAAOn2T,GAC3B,CAACqnT,EAAUrnT,EAASonT,EAAOpnT,GAC3B,CAACwlT,EAAUxlT,EAASonT,EAAOpnT,GAC3B,CAACwlT,EAAUxlT,EAASgsT,EAAQhsT,IAC3B,KAEE,MAAA,CACLlxO,KAAM,UACN6oC,YAAa,CAACgsf,EAAQ1zgB,MAAM0nB,KA8ClBq0gB,CAAkBx7hB,GACnBywhB,EAAAzwhB,EAAET,KAAI,SAAS47hB,GACf,OAAAA,EAAK57hB,KAAI,SAAS0D,GAChB,MAAA,CACL,CAACA,EAAE,GAAG,GAAKilgB,EAAUjlgB,EAAE,GAAG,GAAKilgB,GAC/B,CAACjlgB,EAAE,GAAG,GAAKilgB,EAAUjlgB,EAAE,GAAG,GAAKilgB,GAC/B,CAACjlgB,EAAE,GAAG,GAAKilgB,EAAUjlgB,EAAE,GAAG,GAAKilgB,GACjC,GACD,IAEMj4a,EAAAwgc,EAAOlxhB,KAAI,SAAS47hB,GACpB,OAAAA,EAAK57hB,KAAI,SAAS0D,GACnB,IAAgJtE,EAAhJu/X,EAAM56O,EAAQrgJ,EAAE,GAAG,GAAIA,EAAE,GAAG,IAAI,GAAIquB,EAAMgyH,EAAQrgJ,EAAE,GAAG,GAAIA,EAAE,GAAG,IAAI,GAAIk7X,EAAM76O,EAAQrgJ,EAAE,GAAG,GAAIA,EAAE,GAAG,IAAI,GAAIsuB,EAAM+xH,EAAQrgJ,EAAE,GAAG,GAAIA,EAAE,GAAG,IAAI,GAEzI,OADHk7X,EAAM5sW,IAAK5yB,EAAIw/X,EAAKA,EAAM5sW,EAAKA,EAAM5yB,GAClC,CAAC,CAACu/X,EAAKC,GAAM,CAAC7sW,EAAKC,GAAI,GAC/B,IAEIxiC,GA1BuB0hiB,EAAOlxhB,KAAI,SAAS47hB,GACzC,OAAAA,EAAK57hB,KAAI,SAAS0D,GAChB,MAAA,CACL,CAACA,EAAE,GAAG,GAAKmxK,EAAUnxK,EAAE,GAAG,GAAKmxK,GAC/B,CAACnxK,EAAE,GAAG,GAAKmxK,EAAUnxK,EAAE,GAAG,GAAKmxK,GAC/B,CAACnxK,EAAE,GAAG,GAAKmxK,EAAUnxK,EAAE,GAAG,GAAKmxK,GACjC,GACD,GAoBL,EACc,MAAVq8W,GAAkB1hiB,EAAAwsiB,MAAM9K,GACrB1hiB,EA5RQgriB,GAAAjnhB,OAAS,SAAS9uB,EAAGC,GAC7B,OAAAA,GAAwB,kBAAA4tiB,EAAa/+gB,OAAO9uB,EAAGC,EAAI61iB,IAAkB7H,EAAcn/gB,OAAO9uB,EAAGC,EACtG,EAOc+1iB,GAAAlnhB,OAAS,SAAS9uB,EAAGC,GACjC,OAAO9I,EAAI8I,GAAK41iB,GAAmBhI,EAAa/+gB,OAAO9uB,EAAGC,GAAKA,EAAI,EAAI61iB,IAAiC,iBAAI7H,EAAcn/gB,OAAO9uB,EAAGC,EACtI,EAmRA,IAAIs3iB,GAAQ,CAAC,CAEX,CAAC,EAAO,IAAA,GAAI,EAAO,IAAA,IAAK,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,GAAI,IAAK,CAAC,IAAK,KAC1B,CAED,CAAC,EAAO,IAAA,GAAI,EAAO,KAAA,IAAM,EAAO,IAAA,IAChC,CAAC,EAAO,IAAA,GAAI,EAAM,IAAA,IAAM,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,IAAI,IAAM,CAAC,GAAI,IAC3B,CAAC,CAAC,GAAI,GAAI,CAAC,KAAK,IAAM,CAAC,IAAK,MAK1BE,GAAU,CAAC,CAEb,CAAC,EAAO,IAAA,GAAI,EAAO,IAAA,IAAK,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,GAAI,IAAK,CAAC,IAAK,KAC1B,CAED,CAAC,EAAO,IAAA,GAAI,EAAO,KAAA,IAAM,EAAO,IAAA,IAChC,CAAC,EAAO,IAAA,GAAI,EAAM,IAAA,IAAM,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,IAAI,IAAM,CAAC,GAAI,IAC3B,CAAC,CAAC,GAAI,GAAI,CAAC,KAAK,IAAM,CAAC,IAAK,MAK1BC,GAAU,CAAC,CAEb,CAAC,EAAO,IAAA,GAAI,EAAO,IAAA,IAAK,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,GAAI,IAAK,CAAC,IAAK,KAC1B,CAED,CAAC,EAAO,IAAA,GAAI,EAAO,KAAA,IAAM,EAAO,IAAA,IAChC,CAAC,EAAO,IAAA,GAAI,EAAM,IAAA,IAAM,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,IAAI,IAAM,CAAC,GAAI,IAC3B,CAAC,CAAC,GAAI,GAAI,CAAC,KAAK,IAAM,CAAC,IAAK,MAK1BC,GAAU,CAAC,CAEb,CAAC,EAAO,IAAA,GAAI,EAAM,GAAA,IAAK,CAAC,EAAG,IAC3B,CAAC,CAAC,EAAG,GAAI,CAAC,GAAI,IAAK,CAAC,IAAK,KACxB,CAED,CAAC,EAAO,IAAA,GAAI,EAAM,IAAA,IAAM,CAAC,EAAG,IAC5B,CAAC,CAAC,EAAG,GAAI,CAAC,IAAI,IAAM,CAAC,IAAK,MAKxBC,GAAU,CAAC,CAEb,CAAC,EAAO,IAAA,IAAK,EAAM,GAAA,IAAK,CAAC,EAAG,KAC5B,CAAC,CAAC,EAAG,IAAK,CAAC,GAAI,IAAK,CAAC,IAAK,MACzB,CAED,CAAC,EAAO,KAAA,IAAM,EAAO,KAAA,IAAM,EAAM,IAAA,KACjC,CAAC,EAAM,IAAA,IAAM,CAAC,GAAG,IAAM,CAAC,IAAI,KAC5B,CAAC,CAAC,IAAI,IAAM,CAAC,KAAK,IAAM,CAAC,KAAK,OAK5BC,GAAU,CAAC,CAEb,CAAC,EAAO,IAAA,GAAI,EAAO,IAAA,IAAK,EAAM,GAAA,IAC9B,CAAC,EAAM,GAAA,GAAI,CAAC,EAAG,IAAK,CAAC,GAAI,IACzB,CAAC,CAAC,GAAI,GAAI,CAAC,IAAK,IAAK,CAAC,IAAK,KAC1B,CAED,CAAC,EAAO,IAAA,GAAI,EAAO,KAAA,IAAM,EAAM,GAAA,IAC/B,CAAC,EAAM,GAAA,GAAI,CAAC,GAAG,IAAM,CAAC,GAAI,IAC1B,CAAC,CAAC,GAAI,GAAI,CAAC,KAAK,IAAM,CAAC,IAAK,MAKrB,SAAAC,GAAenmB,EAAQ95I,GACvB,MAAA,CAAC,EAAIqpD,EAAMywF,EAAS13gB,EAAK8tC,EAAKA,EAAK,EAAI8vV,EAAMA,GAAMA,GAQ5D,SAASkgK,GAAYj8iB,GACV,SAAA60O,EAAQghT,EAAQ95I,GACvB,GAAI1gZ,EAAIA,EAAI0gZ,GAAO23I,GAAUhkT,EAAS,MAAO,CAAC,EAAGqsK,EAAM,KAAS,GAC5D,IAAAm6I,EAASn/f,EAAIglX,GAAMl+X,EAAI5iB,GAAK,EAAIi7hB,IAAW,EAAIA,GAASl2hB,EAAI,GAAI7E,EAAI,IAAO0iB,EAAI,EAAIA,GAAKiZ,EAAI++f,GAAU71hB,GACnG,MAAA,CACL,EAAI+2B,EAAI8+f,GAAU16hB,GACjB0iB,EAAI,EAAIA,GAAK1iB,GAeX,OAZC05O,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAAk6Y,EAAMhjZ,EAAI8I,GACd,GAAI9I,EAAIgjZ,EAAM,GAAK3uK,EAAS,OAAOxrO,EAAI,KAAO,CAAC,EAAG8tD,EAAK7tD,GAAKuvhB,GACxD,GAAAr1I,EAAM,EAAU,OAAA,KAEhB,IAAAvwW,GADJ5pC,GAAK,GACQA,EAAG6pC,GADR5pC,GAAK,GACYA,EAAG0a,EAAI,EAAI1a,GAAK,EAAI2pC,EAAKC,GAE3C,OADPlvB,EAAI5jB,GAAK,EAAI4jB,IAAM,EAAIA,GAAI,EAAI7e,GACxB,CACLy3B,EAAM,EAAIvzB,EAAG,EAAI4pC,EAAKC,GAAM/tC,EAC5B2vB,GAAM9Q,EAAI,IAAMA,EAAI,IAExB,EACOg2N,EA3BMmnU,GAAAhphB,OAAS,SAAS9uB,EAAGC,GAC3B,MAAA,CAACihc,EAAM,EAAIlhc,EAAIia,EAAK8tC,EAAKA,EAAK,EAAI9nD,EAAIA,GAAIA,EACnD,EAkCA,IAAI+3iB,GAAWjwf,EAAK6lG,EACX,SAAAqqZ,GAAYtmB,EAAQ95I,GACpB,MAAA,CACL85I,GAAU,EAAI13gB,EAAK2Y,EAAIilX,KAAS,EAChCA,GAAOjlX,EAAIilX,EAAM,GAAKjlX,EAAI++f,EAAS,KAkB9B,SAAAumB,GAAavmB,EAAQ95I,GAC5B,IAAIg7I,EAAUlB,EAASA,EAAQgQ,EAAO9pJ,EAAMA,EACrC,MAAA,CACL85I,GAAU,QAAWgQ,aAAoB9O,EAAA,SAA8B,SAAP8O,IAChE9pJ,GAAO,QAAUg7I,GAAW,iBAAY8O,EAA4B,UAAV9O,GAAuB8O,GAAQ,UAAmB,SAAPA,KAchG,SAAAwW,GAAWxmB,EAAQ95I,GACnB,MAAA,CACLhlX,EAAI8+f,GAAU/+f,EAAIilX,GAClB96W,EAAI86W,GAAOjlX,EAAI++f,IAanB,SAASymB,GAAc5gB,GACjB,IAAAvG,EAAUr+f,EAAI4kgB,GAAQmT,EAAU5tgB,EAAI0yf,EAAY+H,EAAQ,GACnD,SAAA7mT,EAAQghT,EAAQ95I,GACvB,IAAI53Y,EAAI43Y,EAAM2/I,EAAOx3hB,EAAI7I,EAAI8I,GAAKurO,EAAUmmT,EAASV,EAAU95hB,EAAI6I,EAAIyvhB,EAAY53I,EAAM,GAAKrsK,GAAWr0O,EAAIA,EAAI6I,GAAKwvhB,GAAUhkT,EAAU,EAAImmT,EAAS1xhB,EAAI3I,EAAIylC,EAAI/8B,GAAK2qiB,GACjK,MAAA,CAAC3qiB,EAAGC,GASN,OAPC0wO,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAA0xhB,EAAQ95I,EAAM53Y,EAAIu3hB,EACf,MAAA,CACLrgiB,EAAI8I,GAAKurO,EAAUxrO,EAAIixhB,EAAU95hB,EAAIw6hB,EAASlC,EAAY53I,EAAM,GAAKrsK,GAAWr0O,EAAIA,EAAIw6hB,GAAUnC,GAAUhkT,EAAU,EAAIxrO,EAAI1I,EAAIylC,EAAI40f,GAAUgZ,GAAW1qiB,EAC3J43Y,EAEJ,EACOlnK,EAKA,SAAA0nU,GAAU1mB,EAAQ95I,GAClB,MAAA,CAAC85I,EAAQ,KAAOr6hB,EAAIylC,EAAI0yf,EAAY,GAAM53I,KAQnD,SAASygK,GAAyBtiK,GAC5B,IAAA3/Y,EAAI2/Y,EAAGphZ,OAAS,EACX,SAAA+7O,EAAQghT,EAAQ95I,GAEhB,IADP,IAA2Jl9X,EAAvJo3gB,EAASn/f,EAAIilX,GAAMz1Q,EAAK,GAAK,EAAI2vZ,EAASn/f,EAAI++f,IAAU4mB,EAAKn2a,EAAK2vZ,EAASl/f,EAAI8+f,GAAS76P,EAAK10J,EAAKvvG,EAAIglX,GAAM1jZ,EAAIkC,EAAG0ua,EAAK/uB,EAAG7hZ,GAAIu3C,EAAKq5X,EAAG,GAAIh5P,EAAKg5P,EAAG,KAC9I5wa,GAAK,GAEZu3C,GADAq5X,EAAK/uB,EAAG7hZ,IACA,GAAKokjB,GAAM59hB,EAAI+wB,GAAMorP,EAAK/qH,EAClCA,EAAKg5P,EAAG,GAAKwzI,EAAKxsY,EAAK+qH,EAAKn8Q,EAIvB,MAAA,CAFF+wB,EAAA6sgB,GAAM59hB,EAAI+wB,GAAMorP,EAAK/qH,EACrBA,EAAAwsY,EAAKxsY,EAAK+qH,EAAKn8Q,GA2Bf,OAxBCg2N,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAI9L,EAAI,GAAIokjB,EAAKv4iB,EAAG82R,EAAK72R,EACtB,EAAA,CAEM,IADP,IAA+D0a,EAA3D9d,EAAIxG,EAAG0ua,EAAK/uB,EAAGn5Y,GAAI6uC,EAAKq5X,EAAG,GAAIh5P,EAAKg5P,EAAG,GAAIl5X,EAAK,EAAGU,EAAK,IACnD1vC,GAAK,GAEZgvC,EAAKH,EAAK6sgB,GAAM59hB,EAAIkxB,GAAMirP,EAAKvqP,EAC1BA,EAAAw/H,EAAKwsY,EAAKhsgB,EAAKuqP,EAAKn8Q,EACzB+wB,GAHAq5X,EAAK/uB,EAAGn5Y,IAGA,GAAK07iB,GAAM59hB,EAAI+wB,GAAMorP,EAAK/qH,EAClCA,EAAKg5P,EAAG,GAAKwzI,EAAKxsY,EAAK+qH,EAAKn8Q,EAM9B,IAAqC69hB,EAAQC,EAAzCvN,GAJJr/f,EAAKH,EAAK6sgB,GAAM59hB,EAAIkxB,GAAMirP,EAAKvqP,GAIRV,GAHlBU,EAAAw/H,EAAKwsY,EAAKhsgB,EAAKuqP,EAAKn8Q,GAGQ4xB,EACjCgsgB,GAAMC,IAHN9sgB,EAAK6sgB,GAAM59hB,EAAI+wB,GAAMorP,EAAK/qH,EAAK/rK,GAGV6rC,GAFhBkgI,EAAAwsY,EAAKxsY,EAAK+qH,EAAKn8Q,EAAI1a,GAEOssC,GAAM2+f,EACrCp0Q,GAAM2hR,GAAU1sY,EAAKlgI,EAAKH,EAAKa,GAAM2+f,CAAA,OAC9B/ziB,EAAIqhjB,GAAUrhjB,EAAIshjB,GAAUjtU,SAAuBr3O,EAAI,GAChE,GAAIA,EAAG,CACL,IAAI6wZ,EAAM/qY,EAAKs+hB,EAAKA,EAAKzhR,EAAKA,GAAK7/R,EAAI,EAAI40G,EAAW,GAANm5S,GAAY0zJ,EAAO7lhB,EAAI57B,GACvE,MAAO,CAACs8B,EAAMglhB,EAAKG,EAAM1zJ,EAAMpyX,EAAI37B,IAAK+tZ,EAAMv5X,EAAKqrQ,EAAK4hR,EAAO1zJ,GAAO,GAE1E,EACOr0K,EAjHGsnU,GAAAnphB,OAAS,SAAS9uB,EAAGC,GAC3B,IAAAi6Y,EAAM/iZ,EAAI6I,GAAIm6Y,EAAMhjZ,EAAI8I,GAAI0xhB,EAASnmT,EAASqsK,EAAM23I,EACpDr1I,EAAM69J,GAAUngK,GAAOsC,EAAM69J,GAClBrmB,GAAA,EAAI9re,EAAKmyf,GAAW79J,GACnC,IAAA,IAAShmZ,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAI69hB,EAASn/f,EAAIglX,GAAM8gK,EAAa1+hB,EAAK2Y,EAAIilX,IAAO+gK,EAAW/lhB,EAAIglX,EAAM,GAAI81J,EAAW/6gB,EAAIilX,EAAM,GAAIghK,EAAchmhB,EAAI8+f,EAAS,GAAImnB,EAAclmhB,EAAI++f,EAAS,GAAI/jG,EAAK,GAAM+jG,GAAU,EAAIgnB,GAAcz+J,EAAKyzC,EAAK91C,GAAO81J,EAAWmL,GAAe3+J,EAAK4+J,EAAUJ,OAAqBhnB,EAASK,EAAS2mB,EAAa,EAAGK,EAAa,IAAO,EAAIL,GAAaM,GAAW,EAAI,GAAMphK,EAAM+gK,EAAWjL,IAAaA,EAAWmL,GAAcI,EAAarhK,EAAM81J,GAAYkL,EAAc,IAAMC,EAAcA,GAAcn+I,EAAQo+I,EAAUG,EAAaD,EAAUD,EAAY7N,GAAQv9G,EAAKsrH,EAAavrH,EAAKqrH,GAAcr+I,EAAOi3H,GAAWjkG,EAAKorH,EAAUnrH,EAAKqrH,GAAWt+I,EAG/oB,GAFO9iB,GAAAszJ,EACGxZ,GAAAC,EACNz6hB,EAAIg0iB,GAAQ3/T,GAAWr0O,EAAIy6hB,GAAWpmT,EAAS,MAE9C,MAAA,CAACxrO,EAAI,GAAK2xhB,EAASA,EAAQ1xhB,EAAI,GAAK43Y,EAAMA,EACnD,EAWaqgK,GAAApphB,OAAS,SAAS9uB,EAAGC,GAC5B,IAAA0xhB,EAAS7je,EAAK9tD,GAAK+nD,EAAI8vV,EAAM53Y,EAAI,EAAG9L,EAAI,GACzC,EAAA,CACG,IAAA0+hB,EAAUlB,EAASA,EAAQgQ,EAAO9pJ,EAAMA,EAAKshK,EAAYxnB,EAAS95I,EAAKl1W,EAAKgvf,GAAU,QAAWgQ,IAA8B,SAAV9O,WAA6C,SAAtB8O,IAAsB3hiB,EAAG4iC,EAAKi1W,GAAO,QAAUg7I,GAAW,iBAAY8O,EAA4B,UAAV9O,GAAuB8O,GAAQ,mBAAYA,IAAsB1hiB,EAAGqwiB,EAAoB,QAAW3O,GAAQ,QAAW,EAAI9O,EAAU,SAAmB,SAAP8O,GAAmB4O,GAAkB4I,GAAa,QAAe,SAAgBxX,EAAO,SAAgB9O,GAAU2d,EAAoB2I,GAAa,SAAgB,QAAgBtmB,GAAU,MAAe8O,GAAO8O,EAAiB,QAAU5d,GAAW,SAAY,UAAYA,GAAW8O,GAAQ,GAAK,SAAY,OAAU9O,GAAW,QAAgB8O,GAAOuJ,EAAcqF,EAAiBC,EAAoBC,EAAiBH,EAAmB1a,GAAehzf,EAAK2tgB,EAAiB5tgB,EAAK8tgB,GAAkBvF,EAAarV,GAAYlzf,EAAK6tgB,EAAoB5tgB,EAAK0tgB,GAAqBpF,EACx7BvZ,GAAUiE,EAAa/9I,GAAOg+I,SACtB1+hB,EAAIy+hB,GAAepqT,GAAWr0O,EAAI0+hB,GAAYrqT,MAAcr3O,EAAI,GACnE,OAAAA,GAAK,CAACw9hB,EAAQ95I,EACvB,EAUWsgK,GAAArphB,OAAS,SAAS9uB,EAAGC,GAC1B,IAAA2pC,EAAK5pC,EAAIA,EAAeo5iB,EAAPn5iB,EAAIA,EAAe,EAAGo5iB,EAAUzvgB,EAAKwvgB,EAAMrnB,EAAS/xhB,EAAIupiB,EAAUtvhB,GAAMo/hB,EAAUp/hB,EAAKo/hB,EAAUA,EAAU,EAAIzvgB,IAAOA,GAAM,EAAI3vB,EAAKm/hB,GACnJ,MAAA,CACL3thB,EAAKzrB,EAAI+xhB,GACTjke,EAAK7tD,GAAK4lD,EAAKkse,GAEnB,EAyBUsmB,GAAAvphB,OAAS,SAAS9uB,EAAGC,GACtB,MAAA,CAACD,EAAG,IAAM6rG,EAAKlgF,EAAI,GAAM1rB,IAAM,KAAQ8nD,EAChD,EA2CI,IAAA29e,GAAS,CAAC,CAAC,SAAW,GAAI,CAAC,UAAU,UAAY,CAAC,SAAU,UAAW,EAAa,UAAA,UAAa,CAAC,UAAW,UAAa,CAAC,UAAW,WAAc4T,GAAO,CAAC,CAAC,OAAS,GAAI,CAAC,EAAG,GAAI,EAAY,QAAA,GAAI,CAAC,EAAG,GAAI,CAAC,QAAU,IAAKC,GAAO,CAAC,CAAC,QAAU,GAAI,CAAC,SAAW,UAAW,EAAa,UAAA,UAAa,EAAa,UAAA,UAAa,CAAC,SAAW,UAAY,CAAC,QAAU,UAAY,CAAC,SAAS,UAAa,CAAC,UAAU,UAAa,EAAa,SAAA,UAAY,EAAa,SAAA,WAAaC,GAAW,CAAC,CAAC,MAAQ,GAAI,CAAC,EAAG,GAAI,CAAC,OAAS,IAAKC,GAAM,CAAC,CAAC,QAAU,GAAI,CAAC,EAAG,GAAI,EAAa,WAAA,YAgBniB,SAAAC,GAAsBC,EAAc5ogB,GAC3C,IAAIhmC,EAAIu+hB,EAAMT,cAAcyP,GAAyBqB,IAAe5ogB,OAAOA,GAAQoyf,UAAU,IAAK7wgB,EAAIg3gB,EAAMP,YAAYh4f,GAAS5jB,EAASpiB,EAAEoiB,OAKrI,cAJApiB,EAAEgmC,OACPhmC,EAAAoiB,OAAS,SAASnR,GACX,OAAAhhB,UAAUpG,OAASu4B,EAAOmF,EAAEtW,IAAMsW,EAAExD,OAAO3B,IACpD,EACOpiB,EAET,IAAI6uiB,GAAQ3/hB,EAAK,GAAI4/hB,GAAQ5/hB,EAAK,GACzB,SAAA6/hB,GAAwBnoB,EAAQ95I,GACvC,IAAIzgW,EAAQ3rB,EAAK,EAAIoH,EAAIglX,IAAQ,EAAI+hK,KAC9B,MAAA,CACLA,GAAQjoB,GAAU,EAAI/+f,EAAI,EAAIwkB,EAAQ,GAAK,GAAKyigB,GAChD,EAAIhnhB,EAAIukB,EAAQ,GAAKyigB,IAahB,SAAAE,GAAsBpoB,EAAQ95I,GAErC,IADA,IACgBpoS,EADZ2yB,GAAM,EAAImna,GAAW12gB,EAAIglX,GAAMzgW,EAAQygW,EAClC1jZ,EAAI,EAAUA,EAAI,KACzBijD,GAASq4D,GAAS58E,EAAIukB,EAAQ,GAAKvkB,EAAIukB,GAASgrF,IAAO,GAAMxvG,EAAIwkB,EAAQ,GAAKxkB,EAAIwkB,MAC9EjgD,EAAIs4G,GAAS+7H,IAFYr3O,KAIxB,MAAA,CACLw9hB,GAAU,EAAI,EAAI/+f,EAAIwkB,GAASxkB,EAAIwkB,EAAQ,KAAO,EAAIw2G,GACtD,EAAI3zI,EAAK,GAAK4Y,EAAIukB,EAAQ,GAAKn9B,EAAK,EAAI2zI,IAanC,SAAAosZ,GAAyBroB,EAAQ95I,GAExC,IADA,IACgBpoS,EADZi1b,EAAKzqhB,EAAK,GAAK,EAAI8tC,IAAMq6E,GAAM,EAAIr6E,EAAK,GAAKl1B,EAAIglX,GAAMzgW,EAAQygW,EAAM,EAChE1jZ,EAAI,EAAUA,EAAI,KAChBijD,GAAAq4D,GAASr4D,EAAQ,EAAIvkB,EAAIukB,GAASgrF,IAAO,GAAMxvG,EAAIwkB,MACxDjgD,EAAIs4G,GAAS+7H,IAFYr3O,KAIxB,MAAA,CACLuwiB,GAAM,GAAM9xgB,EAAIwkB,IAAUu6e,EAAS,IACnC+S,EAAKttf,GAcA,SAAA6igB,GAAiBtoB,EAAQ95I,GAChC,IAAI8pJ,EAAO9pJ,EAAMA,EAAKmtJ,EAAOrD,EAAOA,EAAMuY,EAAOvY,EAAOqD,EACjD,MAAA,CACLrT,GAAU,OAAU,OAAUgQ,EAAOuY,EAAOA,GAAmB,OAAUvY,EAArB,OAA4B,OAAUqD,EAAO,OAASkV,IAC1GriK,GAAO,QAAUmtJ,EAAOA,GAAmB,OAAUrD,EAAV,OAAiB,OAASqD,KAqBhE,SAAAmV,GAAcxoB,EAAQ95I,GACtB,MAAA,CACL85I,GAAU,EAAI/+f,EAAIilX,IAAQ,EAC1B,GAAKA,EAAM96W,EAAI86W,EAAM,KAjFDiiK,GAAAhrhB,OAAS,SAAS9uB,EAAGC,GAC3C,IAAIm3C,EAAQ,EAAI3rB,EAAKxrB,EAAI45iB,GAAQ,GAC1B,MAAA,CACL75iB,EAAI65iB,IAASD,IAAS,EAAIhnhB,EAAI,EAAIwkB,EAAQ,GAAK,IAC/C3rB,EAAkB,EAAboH,EAAIukB,GAAawigB,GAAQ,GAElC,EAesBG,GAAAjrhB,OAAS,SAAS9uB,EAAGC,GACzC,IAAIm6iB,EAAan6iB,EAAIga,EAAK,EAAI2zI,IAAU,EAAI3zI,EAAK,IAAKm9B,EAAQ,EAAI3rB,EAAK2uhB,GAChE,MAAA,CACL,EAAIxsZ,EAAQ5tJ,GAAK,EAAI,EAAI4yB,EAAIwkB,GAASxkB,EAAIwkB,EAAQ,IAClD3rB,GAAM2uhB,EAAavnhB,EAAIukB,KAAW,EAAImyf,IAE1C,EAeyByQ,GAAAlrhB,OAAS,SAAS9uB,EAAGC,GAC5C,IAAIykiB,EAAKzqhB,EAAK,GAAK,EAAI8tC,IAAM3Q,EAAQn3C,EAAIykiB,EAElC,OADHvtiB,EAAIA,EAAIigD,GAASo4e,GAAUhkT,IAAiBp0L,EAAAA,EAAQ,GAAKo4e,EAASA,GAC/D,CACL,IAAMxvhB,GAAK0kiB,GAAM,GAAM9xgB,EAAIwkB,KAC3B3rB,GAAM2rB,EAAQ,EAAIvkB,EAAIukB,KAAW,EAAI2Q,EAAK,IAE9C,EAWiBkyf,GAAAnrhB,OAAS,SAAS9uB,EAAGC,GACpC,IAAqBwvG,EAAOkyb,EAAMqD,EAAMkV,EAApCriK,EAAM53Y,EAAG9L,EAAI,GACd,GAGM0jZ,GAAApoS,GAASooS,GAAO,SADvBmtJ,GADArD,EAAO9pJ,EAAMA,GACC8pJ,GAC0BqD,GAAmB,OAAUrD,EAAV,OAAiB,OAASqD,IAAS/kiB,IAAM,QAAU+kiB,EAAOA,GAAuB,OAAerD,EAA9B,QAAqC,OAAeqD,UAC1K7tiB,EAAIs4G,GAAS8/a,KAAep7hB,EAAI,GAIlC,MAAA,CACL6L,GAAK,OAAU,QAJjB2hiB,EAAO9pJ,EAAMA,IAEbqiK,EAAOvY,GADPqD,EAAOrD,EAAOA,IAG2BuY,GAAmB,OAAUvY,EAArB,OAA4B,OAAUqD,EAAO,OAASkV,IACrGriK,EAEJ,EAUcsiK,GAAArrhB,OAAS,SAAS9uB,EAAGC,GAExB,IADT,IAAI8K,EAAI9K,EAAI,EACH9L,EAAI,EAAGs7G,EAAQ54G,IAAU1C,EAAI,IAAMgD,EAAIs4G,GAAS+7H,IAAWr3O,EAAG,CACjE,IAAA8C,EAAI27B,EAAI3yB,EAAI,GACXA,GAAAwvG,GAASxvG,EAAI88B,EAAI98B,EAAI,GAAK8K,IAAM,EAAI,IAAO9T,EAAIA,IAE/C,MAAA,CACL,EAAI+I,GAAK,EAAI4yB,EAAI3yB,IACjBA,EAEJ,EAIA,IAAIo6iB,GAAU,CAAC,CAEb,CAAC,EAAO,IAAA,GAAI,EAAM,GAAA,IAAK,CAAC,EAAG,IAC3B,CAAC,CAAC,EAAG,GAAI,CAAC,GAAI,IAAK,CAAC,IAAK,KACxB,CAED,CAAC,EAAO,IAAA,GAAI,EAAM,IAAA,IAAM,CAAC,EAAG,IAC5B,CAAC,CAAC,EAAG,GAAI,CAAC,IAAI,IAAM,CAAC,IAAK,MAKnB,SAAAC,GAAY3oB,EAAQ95I,GACvB,IAAAm6I,EAASn/f,EAAIglX,GAAM3nX,EAAI0C,EAAIilX,GAAMlhZ,EAAIm3D,EAAK6je,GAC1C,GAAW,IAAXA,GAAgBx6hB,EAAI0gZ,KAAS23I,EAAQ,MAAO,CAAC,EAAG33I,GAAG,GACtC,IAARA,EAAkB,MAAA,CAAC85I,EAAQ,GAC3B,GAAAx6hB,EAAIw6hB,KAAYnC,QAAe,CAACmC,EAASzhgB,EAAGs/f,EAASwC,GAC9D,IAAI/3hB,EAAI8tD,GAAM,EAAI4pe,GAAU,EAAIA,EAAS5pe,EAAI9wD,EAAI,EAAI4gZ,EAAM9vV,EAAIrxD,GAAK,EAAIO,EAAIA,IAAM+6hB,EAAS/6hB,GACvFq1F,EAAKryF,EAAIA,EAAGqyB,EAAK51B,EAAIA,EAAG6jjB,EAAO,EAAIjud,EAAKhgE,EAAIkuhB,EAAO,EAAIluhB,EAAKggE,EAC5D1yB,GAAK3/D,EAAI+3hB,EAASt7hB,EAAIuD,EAAI,GAAKsgjB,EAAM75gB,GAAKpU,EAAK0lgB,EAAS1lc,EAAK51F,EAAI,GAAK8jjB,EAAgC1+iB,EAAI4kC,EAAIA,GAAKpU,EAAK0lgB,EAASA,EAAS1lc,EAAK51F,EAAIs7hB,EAAS,GAAKwoB,EAC9J,MAAA,CACLhrB,GAAU51d,EAAI3/C,EAFoE2/C,EAAIA,EAAI1pC,EAAIA,EAAIqqhB,GAE1E5jjB,GACxB64hB,GAAU9uf,EAAIzmB,EAAKne,EAAI,EAAI,EAAIA,GAAKgyD,GAAM+pV,EAAM59Y,GAAKtD,IAG7C2jjB,GAAAxrhB,OAAS,SAAS9uB,EAAGC,GAG3B,IAAA2pC,GAFC5pC,GAAAwvhB,GAEQxvhB,EAAey6iB,EAAO7wgB,GAD9B3pC,GAAAuvhB,GACoBvvhB,EAAmBy6iB,EAAM3yf,EAAKA,EAChD,MAAA,CACL/nD,GAAKy6iB,EAAO,EAAIxgiB,GAAM,EAAIwgiB,IAAS,EAAIA,GAAQ,EAAI7wgB,KAAQ,EAAI5pC,GAAKwvhB,EAAS,EAC7Et1H,GAAM,SAASriB,GACb,OAAO4iK,GAAQ1yf,EAAKl1B,EAAIglX,GAAO,EAAIA,GAAO9vV,EAAK,EAAI8vV,EAAMA,GAAO53Y,EAAI4yB,EAAIglX,IAAQ,EAAI9vV,EAAK8vV,EAAM6iK,EAAMz6iB,IACpG,GAEP,EAIA,IAAI06iB,GAAc,OAAQC,GAAc,OAASC,IAAc,OAAUC,GAAc,OAASC,GAAcJ,GAAaK,GAAc,EAAIJ,GAA2EK,GAAgB,YAC/N,SAAAC,GAAavpB,EAAQ95I,GAC5B,IAAI8pJ,EAAO9pJ,EAAMA,EACV,MAAA,CACL85I,EACA95I,GAAO8iK,GAAchZ,EAAOA,GAAQiZ,GAAcjZ,GAAQkZ,GAAcC,GAAcnZ,MAgBjF,SAAAwZ,GAAaxpB,EAAQ95I,GAC5B,GAAI1gZ,EAAI0gZ,GAAOrsK,EAAgB,MAAA,CAACmmT,EAAQ,GACxC,IAAI0Z,EAAStugB,EAAI86W,GAAMz1Q,EAAKuvZ,EAAS9+f,EAAIglX,GAClC,MAAA,CACLhlX,EAAIuvG,GAAMipa,EACVxzJ,GAAO,EAAIjlX,EAAIwvG,IAAOipa,GAmBjB,SAAAlwhB,GAAOpb,EAAG9F,GACjB,IAAI4yB,EAAImsN,GAASj5O,EAAE,GAAIA,EAAE,IAAK4Z,EAAIq/N,GAAS/+O,EAAE,GAAIA,EAAE,IAAK49Y,EA0DjD,SAAQ93Y,EAAG9F,GACX,OAAAs5B,EAAMxzB,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAI8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,IA3DDmhjB,CAAQvuhB,EAAGlT,GAAIhjB,EAAI/B,GAAOi4B,GAAKj4B,GAAO+kB,GACpG,OAAOs3E,GAAS,CACd,EACA,EACAlxF,EAAE,GAAG,GACL,EACA,EACAA,EAAE,GAAG,IACJkxF,GAAS,CACVt6F,EACA,EACA,EACA,EACAA,EACA,GACCs6F,GAAS,CACVr+D,EAAIilX,GACJhlX,EAAIglX,GACJ,GACChlX,EAAIglX,GACLjlX,EAAIilX,GACJ,GACC,CACD,EACA,GACC59Y,EAAE,GAAG,GACN,EACA,GACCA,EAAE,GAAG,OAcD,SAAAg3F,GAASlxF,EAAG9F,GACZ,MAAA,CACL8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAC9BA,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,IAGzB,SAAAi5O,GAASj5O,EAAG9F,GACnB,MAAO,CAAC8F,EAAE,GAAK9F,EAAE,GAAI8F,EAAE,GAAK9F,EAAE,IAEhC,SAASrF,GAAO+kB,GACd,OAAOM,EAAKN,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAK5B,SAAA0hiB,GAAWvpiB,EAAMqqd,EAAM7pc,GA2BrB,SAAAq+M,EAAQghT,EAAQ95I,GACvB,IAAyFl9X,EAArFtD,EAAO8kd,EAAKw1D,EAAQ95I,GAAMnvX,EAAQrR,EAAKioJ,QAAQ,CAACqyX,EAASvhW,EAAUynN,EAAMznN,IACzE,OAAAz1K,EAAItD,EAAK06B,WACJ,CACLp3B,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,KACpCA,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,MAG5C+N,EAAM,IAAMA,EAAM,GACXA,GAMA,SAAA4yhB,EAAWjkiB,EAAM8rB,GACxB,IAzEa9sC,EACX+rI,EAwEEtzG,EAASzX,EAAKioJ,QAAQxwI,OAAQnU,EAAItD,EAAK06B,UAAWrpB,EAAQya,EAQ1D,GAPAxoB,IAEM+N,EAAA,EADR/N,EAzEG,EADHynH,EAAK,IADM/rI,EA2ECskB,GA1EA,GAAKtkB,EAAE,GAAKA,EAAE,GAAKA,EAAE,KAE9BA,EAAE,IACN+rI,EAAK/rI,EAAE,GACR+rI,GAAM/rI,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,KAC5B+rI,EAAK/rI,EAAE,GACR+rI,EAAK/rI,EAAE,GACP+rI,GAAM/rI,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,MAqEvB,GAAKqyB,EAAM,GAAK/N,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,GACtCA,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,GAAK+N,EAAM,GAAK/N,EAAE,KAGtCmU,GAAUzX,IAMhB,SAAqB8rB,GACZ,OAAAg5b,EAAKh5b,EAAY,GAAK+gf,EAAU/gf,EAAY,GAAK+gf,GAPjCq3B,CAAYxwiB,EAAI+jB,EAAOpG,IAAgB,OAAA3d,EAErD,IADL,IAAAA,EAAGygC,EAAWn0B,EAAKm0B,SACdr3C,EAAI,EAAG2H,EAAI0vC,GAAYA,EAAS52C,OAAQT,EAAI2H,IAAK3H,EACxD,GAAI4W,EAAIuwiB,EAAW9vgB,EAASr3C,GAAIgvC,GAAqB,OAAAp4B,GApDhD,SAAAywiB,EAAQnkiB,EAAMuM,GAErB,GADKvM,EAAAuwB,MA+GT,SAAmBu0b,GAEjB,IADA,IAAIrge,EAAIqge,EAAKvne,OAAQgzC,EAAQ,GACpB7nC,EAAIo8d,EAAKrge,EAAI,GAAI3H,EAAI,EAAGA,EAAI2H,IAAK3H,EAAGyzC,EAAM3yC,KAAK,CAAC8K,EAAGA,EAAIo8d,EAAKhoe,KAC9D,OAAAyzC,EAlHQ6zgB,CAAUpkiB,EAAK8kd,MACxBv4c,EAAOu4c,KAAM,CACX,IAAAu/E,EAASrkiB,EAAKqkiB,OAgGf,SAAW37iB,EAAG9F,GAErB,IADA,IAAI+F,EAAGC,EAAGnE,EAAIiE,EAAEnL,OAAQgI,EAAQ,KACvBzI,EAAI,EAAGA,EAAI2H,IAAK3H,EAAG,CAC1B6L,EAAID,EAAE5L,GACN,IAAA,IAAS0I,EAAI5C,EAAErF,SAAUiI,GAAK,GAExB,GADJoD,EAAIhG,EAAE4C,GACFmD,EAAE,KAAOC,EAAE,IAAMD,EAAE,KAAOC,EAAE,GAAI,CAClC,GAAIrD,EAAO,MAAO,CAACA,EAAOoD,GAClBpD,EAAAoD,IAxGiB27iB,CAAWtkiB,EAAK8kd,KAAMv4c,EAAOu4c,MAAO9le,EAAI8kB,GAAOugiB,EAAOngiB,IAAIqI,EAAO07I,SAAUo8Y,EAAOngiB,IAAIlE,EAAKioJ,UACtHjoJ,EAAK06B,UAAYnuB,EAAOmuB,UAAYk/C,GAASrtE,EAAOmuB,UAAW17C,GAAKA,EAE3D,IADT,IAAIuxC,EAAQhkB,EAAOgkB,MACVzzC,EAAI,EAAG2H,EAAI8rC,EAAMhzC,OAAQT,EAAI2H,IAAK3H,EACrCynjB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,KAAOynjB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,MAAWyzC,EAAAzzC,GAAKkjB,GACzFukiB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,KAAOynjB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,MAAWyzC,EAAAzzC,GAAKkjB,GAG1F,IAAAljB,EAAI,EAAG2H,GADZ8rC,EAAQvwB,EAAKuwB,OACShzC,OAAQT,EAAI2H,IAAK3H,EACjCynjB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,KAAOynjB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,MAAWyzC,EAAAzzC,GAAKyvB,GACzFg4hB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,KAAOynjB,GAAaF,EAAO,GAAI9zgB,EAAMzzC,GAAG,MAAWyzC,EAAAzzC,GAAKyvB,EAC/F,MAEAvM,EAAK06B,UAAYnuB,EAAOmuB,UAOnB,OALH16B,EAAKm0B,UACFn0B,EAAAm0B,SAASx9B,SAAQ,SAASmqC,GAC7BqjgB,EAAQrjgB,EAAO9gC,EAAI,IAGhBA,EAxBTmkiB,CAAQ1piB,EAAM,CAAEigC,UAAW,OAqCvB8pgB,GAAW/piB,OAAegd,OAAS,SAAS9uB,EAAGC,GACjD,IAAIkjC,EAAcm4gB,EAAWxpiB,EAAM,CAAC9R,GAAIC,IACjC,OAAAkjC,IAAgBA,EAAY,IAAM+gf,EAAU/gf,EAAY,IAAM+gf,EAAU/gf,EACjF,GAmBA,IAAI24gB,EAAOxS,EAAMT,cAAcl4T,GAAUymU,EAAU0E,EAAKt/d,OAaxD,OAZKs/d,EAAAt/d,OAAS,SAASA,GACrB,IAAIzrC,EAAS+qgB,EAAK/qgB,SAAUsmgB,EAAeD,EAAQ56d,GAAS86d,GAAgBwE,EAAK/qgB,OAAO,CAAC,EAAG,IAAKqmgB,EAAQ56d,IASlG,OARPs/d,EAAK/qgB,OAAOA,GACZsmgB,EAAapnB,OAAS,WACpBqnB,EAAa3mB,eACb2mB,EAAa7mB,YACbj3Y,GAAQ89Z,EAAcxliB,GACtBwliB,EAAa5mB,UACb4mB,EAAa1mB,YACf,EACOymB,CACT,EACOyE,EAAKh0gB,MAAW,MAALxV,GAAY,GAAMA,EAAI89J,GAEjC,SAAA52C,GAAQh9D,EAAQnlE,EAAMuM,GACzB,IAAA8E,EAA6Ckc,EAAtCgD,EAAQvwB,EAAKuwB,MAAO9rC,EAAI8rC,EAAMhzC,OAAcmvhB,EAAa,CAAEzphB,KAAM,aAAc6oC,YAAa9rB,EAAK8kd,MAAQ4/E,EAAW1kiB,EAAK8kd,KAAK91c,QAAO,SAAS3vB,GACvJ,OAAqB,KAAdS,EAAIT,EAAE,OACXuD,EAAIqviB,EAAMnD,UAAU,CAAE7riB,KAAM,aAAc6oC,YAAa44gB,IAAa3uU,GAAS,EAAOvwO,GAAQ,EAAAmuB,EAAK/wB,EAAE,GAAG,GAAKA,EAAE,GAAG,GAChHhD,EAAW,MAAP+zB,GAAqB,MAAPA,EAAa,EAAE/wB,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAM,GAAIA,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAM,GAAKqviB,EAAMjD,YAAYtiB,GAC1G,GAAInggB,EAAQ,OAAS/mB,EAAIf,GACnB8rC,EAAM/qC,KAAO+mB,MAEjB/mB,EACF,IAAA,IAAS1I,EAAI,EAAGA,EAAI2H,IAAK3H,EAChBywC,EAAAgD,GAAOzzC,EAAI0I,GAAKf,GACnBxG,MAAMiF,QAAQqqC,IACXwoM,IACH5wJ,EAAO9zD,OAAOA,EAAQ4ghB,EAAMzB,eAAejjgB,EAAK,GAAI3tC,EAA9BqyiB,CAAiC99T,IAAU,GAAI9iN,EAAM,IAClE0kN,GAAA,GAEX5wJ,EAAO9zD,OAAOA,EAAQ4ghB,EAAMzB,eAAejjgB,EAAK,GAAI3tC,EAA9BqyiB,CAAiC99T,IAAU,GAAI9iN,EAAM,MAElE0kN,GAAA,EACLxoM,IAAShhB,GAAgB41H,GAAAh9D,EAAQ53C,EAAMvtB,IAIxC,SAAAukiB,GAAa77iB,EAAG9F,GACvB,OAAO8F,GAAK9F,GAAK8F,EAAE,KAAO9F,EAAE,IAAM8F,EAAE,KAAO9F,EAAE,GAoB/C,SAAS4hjB,GAAWxkiB,GACX,OAAAA,EAAKioJ,QAAQxwI,QAAUzX,EAAKm0B,UAAYn0B,EAAKm0B,SAASgwO,KAAKqgS,IA3NvDX,GAAApshB,OAAS,SAAS9uB,EAAGC,GAC5BA,EAAIg7iB,GAAmBh7iB,EAAAg7iB,GAClBh7iB,iBAAwBA,GAAA,aACjC,IAAYwvG,EAARy7K,EAAKjrR,EACN,EAAA,CACD,IAAI4pC,EAAKqhP,EAAKA,EACdA,GAAMz7K,GAASy7K,GAAMyvR,GAAc9wgB,EAAKA,GAAM+wgB,GAAc/wgB,GAAMgxgB,GAAcC,GAAcjxgB,KAAQ5pC,IAAM86iB,GAAclxgB,EAAKA,GAAMmxgB,GAAcnxgB,GAdgD,OAcdA,EAdjB,UAciB,OAC9K1yC,EAAIs4G,GAAS+7H,GACf,MAAA,CAACxrO,EAAGkrR,EACb,EAYaiwR,GAAArshB,OAAS,SAAS9uB,EAAGC,GAChC,GAAI9I,EAAI8I,GAAKurO,EAAgB,MAAA,CAACxrO,EAAG,GAC7B,IAA2CyvG,EAA3C2yB,EAAKpiI,EAAIA,EAAIC,EAAIA,EAAG43Y,EAAU,GAAJ53Y,EAAS9L,EAAI,GACxC,EAAA,CACD,IAAIk3iB,EAAStugB,EAAI86W,GAAMu7J,EAAS,EAAIxghB,EAAIilX,GAAMh7Y,EAAIulI,EAAK,EAAIniI,EAAI43Y,EAAMA,EAAMA,EAC3EA,GAAOpoS,GAAS47b,EAASxuiB,EAAI,GAAKg7Y,EAAM53Y,KAAO,EAAIpD,EAAIu2iB,EAASA,EAAS,GAAKv7J,EAAM53Y,GAAKoriB,SAClFl0iB,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GAEhC,OADPk3iB,EAAStugB,EAAI86W,GACN,EACJ1gZ,EAAI8I,GAAK9I,EAAI0gZ,EAAM,EAAIwzJ,GAAU5/gB,EAAKzrB,EAAIqriB,GAAUv9e,EAAK7tD,GAAK6tD,EAAK9tD,IAAM6lD,EAAK1uD,EAAI6I,EAAIqriB,IAAW7b,IAAW38f,EAAIglX,GACjHA,EAEJ,EA4LA,IAAImkK,GAAa,CACf,CAAC,EAAG,IACJ,KAAM,GACN,CAAC,EAAG,GACJ,CAAC,GAAI,GACL,CAAC,IAAK,GACN,CAAC,GAAM,KAELC,GAAe,CACjB,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,GACP,CAAC,EAAG,EAAG,IACP1giB,KAAI,SAAS4gd,GACN,OAAAA,EAAK5gd,KAAI,SAASpnB,GACvB,OAAO6njB,GAAW7njB,EAAC,GACpB,IAkBCu8C,GAAK,EAAIz2B,EAAK,GACT,SAAAiiiB,GAAWn8iB,EAAG9F,GACjB,IAAA8Q,EAAIgkiB,GAAahviB,EAAG9F,GACxB,MAAO,CAAC8Q,EAAE,GAAK2lC,GAAI3lC,EAAE,IA8Ed,SAAA2nF,GAAI3yF,EAAG9F,GACd,IAAA,IAAS9F,EAAI,EAAG2H,EAAIiE,EAAEnL,OAAQ+B,EAAI,EAAGxC,EAAI2H,IAAK3H,EAAQwC,GAAAoJ,EAAE5L,GAAK8F,EAAE9F,GACxD,OAAAwC,EAST,SAASs7hB,GAAUC,GACV,MAAA,CACL3+f,EAAM2+f,EAAW,GAAIA,EAAW,IAAM9hW,EACtC3kK,EAAK7qB,GAAI,EAAI1C,EAAI,EAAGg0hB,EAAW,MAAQ9hW,GAG3C,SAAS14D,GAAUv0F,GACjB,IAAIwuf,EAASxuf,EAAY,GAAK+gf,EAAUrsI,EAAM10W,EAAY,GAAK+gf,EAAU8sB,EAASp+gB,EAAIilX,GAC/E,MAAA,CACLm5J,EAASp+gB,EAAI++f,GACbqf,EAASn+gB,EAAI8+f,GACb9+f,EAAIglX,IAGR,SAASp7S,MAgCA,SAAA0/c,GAAyBzqiB,EAAG8qE,GAC5B,MAAA,CACLliF,KAAM,oBACNy2gB,SAAUr/f,EAAEq/f,SAASx1f,KAAI,SAAS9E,GACzB,OAAA2liB,GAAe3liB,EAAG+lE,EAC1B,KAGI,SAAA4/d,GAAe1qiB,EAAG8qE,GAClB,MAAA,CACLliF,KAAM,UACNqV,GAAI+B,EAAE/B,GACNmM,WAAYpK,EAAEoK,WACdmzf,SAAUotC,GAAgB3qiB,EAAEu9f,SAAUzyb,IAWjC,SAAA6/d,GAAgB3qiB,EAAG8qE,GACtB,IAAC9qE,EAAU,OAAA,KACf,GAAe,uBAAXA,EAAEpX,KAAsC,OAVrC,SAA0BoX,EAAG8qE,GAC7B,MAAA,CACLliF,KAAM,qBACNw0gB,WAAYp9f,EAAEo9f,WAAWvzf,KAAI,SAASi8B,GAC7B,OAAA6kgB,GAAgB7kgB,EAAIglC,EAC5B,KAKyC8/d,CAA0B5qiB,EAAG8qE,GACrE,IAAA47c,EACJ,OAAQ1mhB,EAAEpX,MACR,IAAK,QAGL,IAAK,aACI89hB,EAAAmkB,GACP,MACF,IAAK,aAGL,IAAK,kBACInkB,EAAAokB,GACP,MACF,IAAK,UAGL,IAAK,eAGL,IAAK,SACIpkB,EAAAqkB,GACP,MACF,QACS,OAAA,KAGX,OADAnT,EAAMzY,UAAUn/gB,EAAG8qE,EAAO47c,IACnBA,EAAKjuhB,SA3LH+xiB,GAAApthB,OAAS,SAAS9uB,EAAGC,GAC9B,OAAO8uiB,GAAajghB,OAAO9uB,EAAI0wC,GAAIzwC,EACrC,EA2LA,IAAImiC,GAAS,GAAIknD,GAAQ,GACrBizd,GAAY,CACd7zhB,MAAO,SAAS1oB,EAAGC,GACjBmiC,GAAOntC,KAAK,CAAC+K,EAAGC,GAClB,EACAkK,OAAQ,WACF,IAAAA,EAAUi4B,GAAOxtC,OAAgBwtC,GAAOxtC,OAAS,EAAI,CAAE0F,KAAM,QAAS6oC,YAAaf,GAAO,IAAO,CAAE9nC,KAAM,aAAc6oC,YAAaf,IAA1G,KAEvB,OADPA,GAAS,GACFj4B,IAGPqyiB,GAAW,CACb/rB,UAAWh0b,GACX/zE,MAAO,SAAS1oB,EAAGC,GACjBmiC,GAAOntC,KAAK,CAAC+K,EAAGC,GAClB,EACAywhB,QAAS,WACHtuf,GAAOxtC,SAAQ00F,GAAMr0F,KAAKmtC,IAASA,GAAS,GAClD,EACAj4B,OAAQ,WACF,IAAAA,EAAUm/E,GAAM10F,OAAgB00F,GAAM10F,OAAS,EAAI,CAAE0F,KAAM,aAAc6oC,YAAammD,GAAM,IAAO,CAAEhvF,KAAM,kBAAmB6oC,YAAammD,IAAlH,KAEtB,OADPA,GAAQ,GACDn/E,IAGPsyiB,GAAc,CAChB9rB,aAAcl0b,GACdg0b,UAAWh0b,GACX/zE,MAAO,SAAS1oB,EAAGC,GACjBmiC,GAAOntC,KAAK,CAAC+K,EAAGC,GAClB,EACAywhB,QAAS,WACP,IAAI50hB,EAAIsmC,GAAOxtC,OACf,GAAIkH,EAAG,CACL,GACEsmC,GAAOntC,KAAKmtC,GAAO,GAAGhpC,iBACf0C,EAAI,GACbwtF,GAAMr0F,KAAKmtC,IAASA,GAAS,GAEjC,EACAwuf,WAAYn0b,GACZtyF,OAAQ,WACF,IAACm/E,GAAM10F,OAAe,OAAA,KAC1B,IAAIk2C,EAAW,GAAI4xgB,EAAQ,GAe3B,OAdMpzd,GAAAt7E,SAAQ,SAASw+X,IAlI3B,SAAmBA,GACjB,IAAK1wY,EAAI0wY,EAAK53Y,QAAU,EAAU,OAAA,EAE3B,IADH,IAAOkH,EAAP3H,EAAI,EAAM4vC,EAAOyoW,EAAK1wY,EAAI,GAAG,GAAK0wY,EAAK,GAAG,GAAKA,EAAK1wY,EAAI,GAAG,GAAK0wY,EAAK,GAAG,KACnEr4Y,EAAI2H,GAAWioC,GAAAyoW,EAAKr4Y,EAAI,GAAG,GAAKq4Y,EAAKr4Y,GAAG,GAAKq4Y,EAAKr4Y,EAAI,GAAG,GAAKq4Y,EAAKr4Y,GAAG,GAC/E,OAAO4vC,GAAQ,EA+HPowM,CAAUq4J,GACTkwK,EAAMznjB,KAAKu3Y,KADcv3Y,KAAK,CAACu3Y,GAChB,IAEhBkwK,EAAA1uiB,SAAQ,SAAS86X,GACjB,IAAApgX,EAAQogX,EAAK,GACRh+V,EAAA0wO,MAAK,SAASt4O,GACrB,GAnIC,SAASspW,EAAM9jX,GAEb,IADL,IAAA1oB,EAAI0oB,EAAM,GAAIzoB,EAAIyoB,EAAM,GAAIi0hB,GAAY,EACnCxojB,EAAI,EAAG2H,EAAI0wY,EAAK53Y,OAAQiI,EAAIf,EAAI,EAAG3H,EAAI2H,EAAGe,EAAI1I,IAAK,CACtD,IAAAumjB,EAAMluK,EAAKr4Y,GAAIyuD,EAAK83f,EAAI,GAAIrqf,EAAKqqf,EAAI,GAAIkC,EAAKpwK,EAAK3vY,GAAI44O,EAAKmnU,EAAG,GAAIlnU,EAAKknU,EAAG,GAC3Evsf,EAAKpwD,EAAIy1O,EAAKz1O,GAAKD,GAAKy1O,EAAK7yL,IAAO3iD,EAAIowD,IAAOqlL,EAAKrlL,GAAMzN,OAAiB+5f,GAE1E,OAAAA,EA6HGj4hB,CAASwe,EAAQ,GAAIxa,GAEhB,OADPwa,EAAQjuC,KAAK6zY,IACN,CAEV,KAAKh+V,EAAS71C,KAAK,CAAC6zY,GAAK,IAE5Bx/S,GAAQ,GACAx+C,EAASl2C,OAAgBk2C,EAASl2C,OAAS,EAAI,CAAE0F,KAAM,eAAgB6oC,YAAa2H,GAAa,CAAExwC,KAAM,UAAW6oC,YAAa2H,EAAS,IAAxH,OAG9B,SAAS+xgB,GAAYv9Y,GACnB,IAAIt0I,EAAKs0I,EAAQkwX,EAAQ,GAAG,GAAKlwX,GAASkwX,EAAQ,GAAG,GAC5C,SAAAstB,EAAmBnrB,EAAQ95I,GAClC,IAAIl9X,EAAIxjB,EAAIw6hB,GAAUnC,EAAQzkhB,EAAIu0J,EAAQ3kJ,EAAIg3gB,EAASA,EAAS,EAAIA,EAAS5pe,EAAK4pe,EAAS5pe,EAAI8vV,GAAM73Y,GAAK+K,EAAE,GAAKA,EAAE,IAAMw+hB,EAAStpiB,GAAK8K,EAAE,GAAKA,EAAE,IAAMw+hB,EACtJ,GAAI5uhB,EAAG,MAAO,CAAC3a,EAAGC,GACd,IAAAvJ,EAAIs0B,EAAKu+gB,EAAS5yiB,EAAIqJ,EAAI,EAAIC,EAAI,GAAS,EAAA,EAC/C,MAAO,CAACtJ,EAAIqJ,EAAI8tD,EAAK7tD,GAAKvJ,EAAGC,EAAIsJ,EAAI6tD,EAAK9tD,GAAKtJ,GAajD,OAXI4oK,EAAQxwI,SAAQguhB,EAAmBhuhB,OAAS,SAASorX,EAAKC,GAC5D,IAAIn6Y,GAAKk6Y,EAAMC,GAAOovJ,EAAStpiB,GAAKk6Y,EAAMD,GAAOqvJ,EAAS5uhB,EAAIxjB,EAAI6I,GAAK,GAAMgrB,GAAM7zB,EAAI8I,GAAK,GAAM+qB,EAClG,IAAKrQ,EAAG,CACF,IAAAjkB,EAAIs0B,EAAKu+gB,EAAS5yiB,EAAIqJ,EAAI,EAAIC,EAAI,GAAI,EAAK,EAAGqtC,GAAO32C,EAAIujZ,GAAOj6Y,EAAI,EAAI,GAAI,GAAMvJ,EAAG62C,GAAO52C,EAAIwjZ,GAAOn6Y,EAAI,EAAI,GAAU,GAAAtJ,EACxHsJ,IAACstC,EAAMC,GAAOg8f,EACnBtpiB,GAAKqtC,EAAMC,GAAOg8f,EAEpB,IAAIx+hB,EAAIu0J,EAAQxwI,OAAO9uB,EAAGC,GAEnB,OADF0a,IAAK5P,EAAA,IAAM/K,EAAI,EAAI+nD,GAAMA,GACvBh9C,CACT,GACOu+hB,EAAMT,cAAciU,GAAoB/rgB,OAAO,EAAM,IAAA,GAAK,KAAKoyf,UAAU,SAKlF,SAAS4Z,KACP,OAAOF,GAAY9I,IAAU9khB,MAAM,QAgFrC,SAAS+thB,GAAwBxlB,GAC3B,IAAAtG,EAAUr+f,EAAI2kgB,GACT,SAAA7mT,EAAQghT,EAAQ95I,GACnB,IAAA6sJ,EAAKxT,EAAUn0f,EAAI40f,EAAST,EAAU,GAAKA,EAAUS,EAAS,EAClE,IAAK95I,EAAK,MAAO,CAAC,EAAI6sJ,GAAKlN,GACvB,IAAAppY,EAAK,EAAIviD,EAAK64b,EAAK7xgB,EAAIglX,IAAOolK,EAAS,EAAIlghB,EAAI86W,GAC5C,MAAA,CACLhlX,EAAIu7H,GAAM6uZ,EACVplK,GAAO,EAAIjlX,EAAIw7H,IAAO6uZ,EAASzlB,GAgB5B,OAbC7mT,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,GAAI9I,EAAI8I,GAAKu3hB,GAAShsT,QAAgB,CAAC0lT,EAAU,EAAIrlb,EAAKqlb,EAAUlxhB,EAAI,GAAKkxhB,EAAUlxhB,EAAG,GACtF,IAAqCyvG,EAArC2yB,EAAKpiI,EAAIA,EAAIC,EAAIA,EAAG43Y,EAAM,EAAG1jZ,EAAI,GAClC,EAAA,CACD,IAAIk3iB,EAAStugB,EAAI86W,GAAMu7J,EAAS,EAAIxghB,EAAIilX,GAAMh7Y,EAAIulI,EAAK,EAAIniI,EAAI43Y,EAAMA,EAAMA,EAC3EA,GAAOpoS,GAAS47b,EAASxuiB,EAAI,GAAKg7Y,EAAM53Y,KAAO,EAAIpD,EAAIu2iB,EAASA,EAAS,GAAKv7J,EAAM53Y,GAAKoriB,SAClFl0iB,EAAIs4G,GAAS+7H,KAAar3O,EAAI,GACvC,IAAIi6J,EAAKpuJ,GAAKqriB,EAAStugB,EAAI86W,IAAO6sJ,EAAK3ngB,EAAI5lC,EAAI8I,GAAK9I,EAAI0gZ,EAAM,EAAIwzJ,GAAqB,GAAX5/gB,EAAK2iI,GAAuB,GAAXvoG,EAAKuoG,GAAYrmG,EAAK,GAAKl1B,EAAIglX,GACrH,MAAA,CACLq5I,EAAU,EAAIrlb,EAAKqlb,EAAUwT,GAAMxT,EAAU,EAAIwT,EACjD7sJ,EAEJ,EACOlnK,EAKT,IAAIusU,GAAM,CACR,CAAC,OAAc,MACf,CAAC,EAAG,GACJ,CAAC,MAAQ,MACT,CAAC,MAAQ,MACT,CAAC,IAAM,MACP,CAAC,MAAQ,MACT,CAAC,KAAO,KACR,CAAC,IAAM,MACP,CAAC,MAAQ,MACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,KAAO,OACR,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,OACT,CAAC,MAAQ,IAKF,SAAAC,GAAYxrB,EAAQ95I,GACvB,IAAsLz1Q,EAAtLjuI,EAAI+J,EAAI,GAAe,GAAX/G,EAAI0gZ,GAAY9vV,GAAKttC,EAAKpjB,EAAMlD,GAAIohD,EAAKphD,EAAIsmB,EAAIksB,GAAMy7F,EAAK86a,GAAIziiB,IAAK,GAAImsB,EAAKw7F,EAAG,GAAIv7F,GAAMu7F,EAAK86a,KAAMziiB,IAAK,GAAIqsB,EAAKs7F,EAAG,GAAInxG,GAAMmxG,EAAK86a,GAAIh/iB,EAAI,KAAMuc,KAAM,GAAIyW,EAAKkxG,EAAG,GAC/K,MAAA,CACLuvZ,GAAU9qf,EAAK0O,GAAMtkB,EAAK0V,GAAM,EAAI4O,EAAKA,GAAMtkB,EAAK,EAAI4V,EAAKF,GAAM,IAClEkxW,EAAM,EAAI23I,GAAUA,IAAW1of,EAAKyO,GAAMrkB,EAAK0V,GAAM,EAAI2O,EAAKA,GAAMrkB,EAAK,EAAI4V,EAAKF,GAAM,IAgDpF,SAAAw2gB,GAAa73gB,EAAGiqa,GACnB,IAAAx7S,EAlBN,SAA8BzuH,GACnB,SAAAorM,EAAQghT,EAAQ95I,GACnB,IAAAk6I,EAASn/f,EAAIilX,GAAMz1Q,GAAM78F,EAAI,IAAMA,EAAIwsf,EAASn/f,EAAI++f,IACjD,MAAA,CACLvvZ,EAAK2vZ,EAASl/f,EAAI8+f,GAClBvvZ,EAAKvvG,EAAIglX,IAUN,OAPClnK,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAAAglZ,EAAOjlZ,EAAIA,EAAIC,EAAIA,EAAG+kZ,EAAM/qY,EAAKgrY,GAAOyzJ,GAAQnzgB,EAAItrB,EAAK,EAAIgrY,GAAQ1/W,EAAI,IAAMA,EAAI,OAASA,EAAI,GAAKy/W,EAAMA,GAAOz/W,EAAI,IACnH,MAAA,CACLhS,EAAMvzB,EAAI04iB,EAAM1zJ,EAAM/qY,EAAK,EAAIy+hB,EAAOA,IACtC1zJ,EAAMv5X,EAAKxrB,EAAIy4iB,EAAO1zJ,GAAO,EAEjC,EACOr0K,EAGQ0sU,CAAqB93gB,GAChC,IAACiqa,EAAc,OAAAx7S,EACnB,IAAIspZ,EAAW1qhB,EAAI48a,GAAQ+tG,EAAW1qhB,EAAI28a,GACjC,SAAA7+N,EAAQghT,EAAQ95I,GACvB,IAAI10W,EAAc6wH,EAAS29X,EAAQ95I,GAAM53Y,EAAIkjC,EAAY,GAAIuhgB,EAAKzkiB,EAAIs9iB,GAAYh4gB,EAAI,GAAK+3gB,EACpF,MAAA,CACLn6gB,EAAY,GAAKm6gB,EAAW5Y,EAC5BzkiB,EAAIykiB,GAOD,OAJC/zT,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAImiI,GAAM78F,EAAI,IAAMA,EAAI,EAAItlC,EAAIs9iB,GAChC,OAAOvpZ,EAASllI,OAAOszG,EAAKpiI,EAAGoiI,EAAKniI,EAAIq9iB,EAC1C,EACO3sU,EAtELusU,GAAAlviB,SAAQ,SAAStX,GACnBA,EAAE,IAAM,MAAA,IASEymjB,GAAAruhB,OAAS,SAAS9uB,EAAGC,GAC/B,IAAIwtF,EAAKxtF,EAAIuvhB,EAAQ33I,EAAW,GAALpqT,EAASt5F,EAAI+J,EAAI,GAAI/G,EAAI0gZ,EAAM,IAAKp9X,EAAK7Z,EAAI,EAAGvJ,EAAMlD,IAC9E,EAAA,CACG,IAAAyyC,EAAKs2gB,GAAIziiB,GAAI,GAAIqsB,EAAKo2gB,GAAIziiB,EAAK,GAAG,GAAIyW,EAAKgshB,GAAIh/iB,EAAI,GAAIuc,EAAK,IAAI,GAAIoS,EAAIqE,EAAK0V,EAAIjtB,EAAIuX,EAAK,EAAI4V,EAAKF,EAAIjsB,EAAI,GAAKxjB,EAAIs2F,GAAM3mD,GAAMja,EAAG51B,EAAI0iB,EAAIkT,EAAG0oB,EAAK56B,GAAK,EAAI1jB,EAAI0jB,GAAK,EAAI,EAAI1jB,EAAI0jB,IACjL,GAAA46B,GAAM,GAAY,IAAP96B,EAAU,CACvBo9X,GAAO53Y,GAAK,EAAI,GAAI,IAAOs1C,EAAKphD,GAChC,IAAYs7G,EAAR5yG,EAAI,GACL,GAGD04C,GAFAphD,EAAI+J,EAAI,GAAI/G,EAAI0gZ,GAAO,KACvBp9X,EAAKpjB,EAAMlD,IAENyyC,EAAAs2gB,GAAIziiB,GAAI,GACbqsB,EAAKo2gB,GAAIziiB,EAAK,GAAG,GACjByW,EAAKgshB,GAAIh/iB,EAAI,GAAIuc,EAAK,IAAI,GAC1Bo9X,IAAQpoS,GAASxvG,GAAK,EAAIuvhB,GAAUA,IAAW1of,EAAKyO,GAAMrkB,EAAK0V,GAAM,EAAI2O,EAAKA,GAAMrkB,EAAK,EAAI4V,EAAKF,GAAM,GAAK3mC,GAAKmwL,QAC3Gj5L,EAAIs4G,GAAS8/a,KAAe1yhB,EAAI,GACzC,MACF,SACS4d,GAAM,GACb,IAAAksB,EAAKu2gB,GAAIziiB,GAAI,GAAIosB,EAAKq2gB,GAAIziiB,EAAK,GAAG,GAAIwW,EAAKishB,GAAIh/iB,EAAI,GAAIuc,EAAK,IAAI,GAC7D,MAAA,CACLza,GAAK6mC,EAAK0O,GAAMtkB,EAAK0V,GAAM,EAAI4O,EAAKA,GAAMtkB,EAAK,EAAI4V,EAAKF,GAAM,GAC9DkxW,EAAMqsI,EAEV,EAkDI,IAAwC52f,IAAW,IAAAkwhB,IAAMlwhB,SAA0BmwhB,GAAMlwhB,SAA0BmwhB,IAAMlwhB,QAAyBmwhB,GAAMlwhB,QAC5J,SAASmwhB,GAASz6gB,GAChB,OAAOA,EAAYvuC,OAAS,EAK9B,SAASipjB,GAAe59iB,GACtB,OARgH,KAQzGA,GARyI,KAQ7HA,EAAW,CAAC,EAAGA,GAAK,CAACqtB,IAJtBttB,EAIqCC,EAHhDnJ,KAAKO,MALyB,IAKnB2I,GALmB,MAIvC,IAAoBA,EAMpB,SAAS89iB,GAAW/yiB,GACd,IAAA/K,EAAI+K,EAAE,GAAI9K,EAAI8K,EAAE,GAAIgziB,GAAU,EAKlC,OAJI/9iB,GAAKw9iB,IAASx9iB,EAAAstB,GAAIywhB,GAAU,GACvB/9iB,GAAKy9iB,KAASz9iB,EAbyD,IAarD+9iB,GAAU,GACjC99iB,GAAKy9iB,IAASz9iB,GAd8F,GAc1F89iB,GAAU,GACvB99iB,GAAK09iB,KAAS19iB,EAfyH,GAerH89iB,GAAU,GAC9BA,EAAU,CAAC/9iB,EAAGC,GAAK8K,EAE5B,SAASiziB,GAAYz1R,GACZ,OAAAA,EAAQhtQ,IAAIuiiB,IAEZ,SAAAG,GAAiBC,EAAOh7gB,EAASg0E,GAC/B,IAAA,IAAAr6G,EAAI,EAAGxG,EAAI6njB,EAAMtpjB,OAAQiI,EAAIxG,IAAKwG,EAAG,CAC5C,IAAI2vY,EAAO0xK,EAAMrhjB,GAAGzD,QACpB89G,EAAUjiH,KAAK,CAAEy3C,OAAW,EAAAxJ,UAASspW,SAC5B,IAAA,IAAAr4Y,EAAI,EAAG2H,EAAI0wY,EAAK53Y,OAAQT,EAAI2H,IAAK3H,EAAG,CACvC,IAAAu0B,EAAQ8jX,EAAKr4Y,GAAI6L,EAAI0oB,EAAM,GAAIzoB,EAAIyoB,EAAM,GAC7C,GAAI1oB,GAAKw9iB,IAAOx9iB,GAAKy9iB,IAAOx9iB,GAAKy9iB,IAAOz9iB,GAAK09iB,GAAK,CAC3CnxK,EAAAr4Y,GAAK2pjB,GAAWp1hB,GACrB,IAAA,IAAS05G,EAAKjuI,EAAI,EAAGiuI,EAAKtmI,IAAKsmI,EAAI,CAC7B,IAAA+7a,EAAS3xK,EAAKpqQ,GAAKo4Q,EAAK2jK,EAAO,GAAI1jK,EAAK0jK,EAAO,GACnD,GAAI3jK,EAAKgjK,IAAOhjK,EAAKijK,IAAOhjK,EAAKijK,IAAOjjK,EAAKkjK,GAAK,MAEhD,GAAAv7a,IAAOjuI,EAAI,EAAG,SAClB,GAAIA,EAAG,CACD,IAAAiqjB,EAAiB,CAAE1xgB,OAAW,EAAAxJ,UAASspW,KAAMA,EAAKpzY,MAAM,EAAGjF,EAAI,IACnEiqjB,EAAe5xK,KAAK4xK,EAAe5xK,KAAK53Y,OAAS,GAAKipjB,GAAe59iB,GAC3Di3G,EAAAA,EAAUtiH,OAAS,GAAKwpjB,CAAA,QACnBn5gB,MACjB,GAAIm9F,GAAMtmI,EAAG,MACbo7G,EAAUjiH,KAAK,CAAEy3C,OAAO,EAAIxJ,UAASspW,KAAMA,EAAOA,EAAKpzY,MAAMgpI,EAAK,KAClEoqQ,EAAK,GAAKqxK,GAAerxK,EAAK,GAAG,IAC7Br4Y,GAAA,EACJ2H,EAAI0wY,EAAK53Y,UAKjB,SAASypjB,GAAgBnnc,GACnB,IAAA/iH,EAC0Cmlc,EAAU5jc,EAAO4ojB,EAAe3ojB,EAAK4ojB,EAD5EzijB,EAAIo7G,EAAUtiH,OACjB06gB,EAAkB,CAAI,EAAAC,EAAgB,CAAA,EAC1C,IAAKp7gB,EAAI,EAAGA,EAAI2H,IAAK3H,EAEXuB,GADR4jc,EAAWpiV,EAAU/iH,IACJq4Y,KAAK,GACtB72Y,EAAM2jc,EAAS9sD,KAAK8sD,EAAS9sD,KAAK53Y,OAAS,GACvCc,EAAM,KAAOC,EAAI,IAAMD,EAAM,KAAOC,EAAI,IAK5C2jc,EAAS5sZ,MAAQv4C,EACjBm7gB,EAAgB55gB,GAAS65gB,EAAc55gB,GAAO2jc,IALnCA,EAAAp2Z,QAAQjuC,KAAKqkc,EAAS9sD,MAC/Bt1R,EAAU/iH,GAAK,MAMnB,IAAKA,EAAI,EAAGA,EAAI2H,IAAK3H,EAEnB,GADAmlc,EAAWpiV,EAAU/iH,GACP,CAOR,GANIuB,EAAA4jc,EAAS9sD,KAAK,GACtB72Y,EAAM2jc,EAAS9sD,KAAK8sD,EAAS9sD,KAAK53Y,OAAS,GAC3C0pjB,EAAgB/uC,EAAc75gB,GAC9B6ojB,EAAcjvC,EAAgB35gB,UACvB25gB,EAAgB55gB,UAChB65gB,EAAc55gB,GACjBD,EAAM,KAAOC,EAAI,IAAMD,EAAM,KAAOC,EAAI,GAAI,CACrC2jc,EAAAp2Z,QAAQjuC,KAAKqkc,EAAS9sD,MAC/B,SAEE8xK,UACK/uC,EAAc75gB,UACd45gB,EAAgBgvC,EAAc9xK,KAAK,IAC1C8xK,EAAc9xK,KAAKvnW,MACTiyE,EAAAonc,EAAc5xgB,OAAS,KACjC4sZ,EAAW,CAAE5sZ,OAAW,EAAAxJ,QAASo7gB,EAAcp7gB,QAASspW,KAAM8xK,EAAc9xK,KAAKtsY,OAAOo5b,EAAS9sD,OAC7F8xK,IAAkBC,EACXjlH,EAAAp2Z,QAAQjuC,KAAKqkc,EAAS9sD,OAE/B8sD,EAAS5sZ,MAAQ5wC,IACjBo7G,EAAUjiH,KAAKq6gB,EAAgBh2E,EAAS9sD,KAAK,IAAM+iI,EAAcj2E,EAAS9sD,KAAK8sD,EAAS9sD,KAAK53Y,OAAS,IAAM0kc,KAErGilH,UACFjvC,EAAgB35gB,UAChB45gB,EAAcgvC,EAAY/xK,KAAK+xK,EAAY/xK,KAAK53Y,OAAS,IAChE0kc,EAAS9sD,KAAKvnW,MACdq0Z,EAAW,CAAE5sZ,MAAO5wC,IAAKonC,QAASq7gB,EAAYr7gB,QAASspW,KAAM8sD,EAAS9sD,KAAKtsY,OAAOq+iB,EAAY/xK,OACpFt1R,EAAAqnc,EAAY7xgB,OAAS,KAC/BwqE,EAAUjiH,KAAKq6gB,EAAgBh2E,EAAS9sD,KAAK,IAAM+iI,EAAcj2E,EAAS9sD,KAAK8sD,EAAS9sD,KAAK53Y,OAAS,IAAM0kc,KAE5GA,EAAS9sD,KAAKv3Y,KAAKqkc,EAAS9sD,KAAK,IACxB8sD,EAAAp2Z,QAAQjuC,KAAKqkc,EAAS9sD,QAKvC,SAASgyK,GAAcx2iB,GACjB,IAAAnS,EAAS,CAAEyE,KAAM,UAAW20gB,SAAUwvC,GAAez2iB,EAAMingB,WAIxD,OAHS,MAAZjngB,EAAM2H,KAAY9Z,EAAO8Z,GAAK3H,EAAM2H,IACtB,MAAd3H,EAAMuhC,OAAc1zC,EAAO0zC,KAAOvhC,EAAMuhC,MACpB,MAApBvhC,EAAM8T,aAAoBjmB,EAAOimB,WAAa9T,EAAM8T,YACjDjmB,EAET,SAAS4ojB,GAAez2iB,GAClB,GAAS,MAATA,EAAsB,OAAAA,EACtB,IAAAnS,EAAQqhH,EAAW/iH,EAAG2H,EAC1B,OAAQkM,EAAM1N,MACZ,IAAK,qBACMzE,EAAA,CAAEyE,KAAM,qBAAsBw0gB,WAAY9mgB,EAAM8mgB,WAAWvzf,IAAIkjiB,KACxE,MACF,IAAK,QACH5ojB,EAAS,CAAEyE,KAAM,QAAS6oC,YAAa26gB,GAAW91iB,EAAMm7B,cACxD,MACF,IAAK,aACL,IAAK,aACMttC,EAAA,CAAEyE,KAAM0N,EAAM1N,KAAM6oC,YAAa66gB,GAAYh2iB,EAAMm7B,cAC5D,MACF,IAAK,kBACMttC,EAAA,CAAEyE,KAAM,kBAAmB6oC,YAAan7B,EAAMm7B,YAAY5nB,IAAIyiiB,KACvE,MACF,IAAK,UACH,IAAI96gB,EAAU,GACd+6gB,GAAiBj2iB,EAAMm7B,YAAaD,EAASg0E,EAAY,IACzDmnc,GAAgBnnc,GAChBrhH,EAAS,CAAEyE,KAAM,UAAW6oC,YAAaD,GACzC,MAEF,IAAK,eACHg0E,EAAY,GAAI/iH,GAAQ,EAAA2H,EAAIkM,EAAMm7B,YAAYvuC,OAE9C,IADI,IAAAk2C,EAAW,IAAIx1C,MAAMwG,KAChB3H,EAAI2H,GAAGmijB,GAAiBj2iB,EAAMm7B,YAAYhvC,GAAI22C,EAAS32C,GAAK,GAAI+iH,GACzEmnc,GAAgBnnc,GAChBrhH,EAAS,CAAEyE,KAAM,eAAgB6oC,YAAa2H,EAASzkB,OAAOu3hB,KAC9D,MAEF,QACS,OAAA51iB,EAGJ,OADW,MAAdA,EAAMuhC,OAAc1zC,EAAO0zC,KAAOvhC,EAAMuhC,MACrC1zC,EAgBA,SAAA6ojB,GAAS/sB,EAAQ95I,GACpB,IAAAl9X,EAAIoiB,EAAI86W,EAAM,GAAIlhZ,EAAIk8B,EAAI48f,EAAY90gB,GACnC,MAAA,CACLg3gB,GAAU,OAAU,OAAUh7hB,EAAIA,GAClC,QAAUgkB,GAaL,SAAAgkiB,GAAS/qX,EAAK9nK,EAAI7Q,GACzB,IAAI9mB,EAAIm1iB,EAAMzB,eAAe/7gB,EAAI7Q,GAAKvJ,EAAIvd,EAAE,IAAM4L,EAAIupiB,EAAMP,YAAY,EAAEr3hB,EAAE,IAAKA,EAAE,IAA7B43hB,CAAkCx9gB,GAAK7xB,EAAI9F,EAAEm6C,SAAW,EAAGruC,GAAKwrB,EAAKoH,EAAI9yB,EAAE,GAAKmkhB,GAAYrxf,EAAI54B,IAAKusC,EAAI,EAAE90B,EAAE,IAAKA,EAAE,KAAM3R,EAAE,GAAK,EAAIgoD,EAAK9nD,EAAIA,GAAKmwL,GAAWrlL,EAAIu+hB,EAAMT,cAAcj1W,EAAI35L,IAAI82C,OAAOvK,GAAIlU,EAAIg3gB,EAAMP,YAAYvigB,GAAIrZ,EAASpiB,EAAEoiB,OAK7R,cAJApiB,EAAEgmC,OACPhmC,EAAAoiB,OAAS,SAASnR,GACX,OAAAhhB,UAAUpG,OAASu4B,EAAOmF,EAAEtW,IAAMsW,EAAExD,OAAO3B,IACpD,EACOpiB,EAAEo4hB,UAAU,IAErB,SAASyb,GAAqBlojB,GACxB,IAAAmojB,EAAOjshB,EAAIl8B,GACN,SAAAi6O,EAAQghT,EAAQ95I,GACvB,IAAI10W,EAAcmmgB,EAAM7B,eAAe9V,EAAQ95I,GAExC,OADP10W,EAAY,IAAM07gB,EACX17gB,EAKF,OAHCwtM,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,OAAOqpiB,EAAM7B,eAAe34gB,OAAO9uB,EAAI6+iB,EAAM5+iB,EAC/C,EACO0wO,EAKA,SAAAmuU,GAAkBhzhB,EAAI7Q,GACtB,OAAA0jiB,GAASC,GAAsB9yhB,EAAI7Q,GAE5C,SAAS8jiB,GAAuB7ud,GAC9B,KAAMA,GAAM,GAAI,OAAOo5c,EAAMpD,2BAC7B,IAAI8Y,GAAW9ud,EAAK,EAAG+ud,GAAWD,EAASE,EAAMhvd,EAAKA,EAAIivd,EAAapihB,EAAIkihB,GAAUlzhB,EAAI,GAAM8G,EAAIoshB,GAC1F,SAAAtuU,EAAQghT,EAAQ95I,GACnB,IAAAunK,EAAKv5f,EAAKjzB,EAAIilX,GAAOjlX,EAAI++f,EAASqtB,IAAW53T,EAAKvhM,EAAKjzB,EAAIilX,GAAOjlX,EAAI++f,EAASstB,IAE5E,MAAA,GADPG,GAAMA,IAAIh4T,GAAMA,KAED,EAAIl3J,IAHgF2nT,EAAM,GAAS,EAAA,GAI3G59X,EAAK,EAAIiliB,EAAM93T,GAAM83T,EAAME,EAAKh4T,IAAO83T,EAAME,EAAKh4T,KAAQ,EAAIl3J,IAUhE,OAPCygJ,EAAA7hN,OAAS,SAAS9uB,EAAGC,GACvB,IAA0G0a,EAAGjkB,EAA7GmzC,EAAK5pC,EAAIA,EAAGo/iB,EAAQzshB,EAAI3Y,EAAK4vB,GAAMlvB,EAAI3a,EAAIg/iB,GAAWrkiB,IAAK2kiB,EAAQ1shB,EAAI3Y,EAAK4vB,GAAMlvB,EAAI3a,EAAIi/iB,GAAWtkiB,IAClG,MAAA,CACL4Y,EAAM78B,EAAI2ojB,EAAQC,EAAO3kiB,GAAK0kiB,EAAQC,GAASH,IAC9Cl/iB,EAAI,GAAI,EAAK,GAAK4lD,EAAK5rC,EAAKU,EAAIA,EAAIjkB,EAAIA,GAAKq1B,GAElD,EACO4kN,EAKA,SAAA4uU,GAAoBzzhB,EAAI7Q,GACxB,OAAA0jiB,GAASI,GAAwBjzhB,EAAI7Q,GAErC,SAAAukiB,GAAiB7tB,EAAQ95I,GAChC,GAAI1gZ,EAAI0gZ,GAAOrsK,EAAgB,MAAA,CAACmmT,EAAQ,GACxC,IAAI+jB,EAAWv+iB,EAAI0gZ,EAAM23I,GAASp4e,EAAQ3rB,EAAKiqhB,GAC3C,GAAAv+iB,EAAIw6hB,GAAUnmT,GAAWr0O,EAAIA,EAAI0gZ,GAAO23I,GAAUhkT,EAAgB,MAAA,CAAC,EAAG19K,EAAK+pV,GAAO9vV,EAAKhrB,EAAIqa,EAAQ,IACvG,IAAIu+f,EAAW/ihB,EAAIwkB,GAAQstf,EAAKvtiB,EAAI4wD,EAAK4pe,EAASA,EAAS5pe,GAAM,EAAG03f,EAAM/a,EAAKA,EAAIh/C,EAAIiwD,GAAYD,EAAWC,EAAW,GAAIpwgB,EAAImgd,GAAK,EAAIgwD,EAAW,GAAIgK,EAAKn6gB,EAAIA,EAAGo6gB,EAAQD,EAAKD,EAAKG,EAAOl6D,EAAIg6D,EAAItjf,EAAIqjf,EAAM/5D,EACzM,MAAA,CACL53b,EAAK6je,GAAU5pe,GAAM28e,EAAKkb,EAAO3liB,EAAKwliB,EAAMG,EAAOA,EAAOD,GAASj6D,EAAIA,EAAIg6D,KAAQC,EACnF7xf,EAAK+pV,GAAO9vV,GAAMxiB,EAAI62B,EAAIsoe,EAAKzqhB,GAAMwliB,EAAM,GAAKE,EAAQvjf,EAAIA,IAAMujf,GAe7D,SAAAE,GAAkBluB,EAAQ95I,GACjC,GAAI1gZ,EAAI0gZ,GAAOrsK,EAAgB,MAAA,CAACmmT,EAAQ,GACxC,IAAI+jB,EAAWv+iB,EAAI0gZ,EAAM23I,GAASp4e,EAAQ3rB,EAAKiqhB,GAC3C,GAAAv+iB,EAAIw6hB,GAAUnmT,GAAWr0O,EAAIA,EAAI0gZ,GAAO23I,GAAUhkT,EAAgB,MAAA,CAAC,EAAG19K,EAAK+pV,GAAO9vV,EAAKhrB,EAAIqa,EAAQ,IACnG,IAAAu+f,EAAW/ihB,EAAIwkB,GAAQstf,EAAKvtiB,EAAI4wD,EAAK4pe,EAASA,EAAS5pe,GAAM,EAAG03f,EAAM/a,EAAKA,EAAIp3f,EAAMqogB,GAAY17hB,EAAK,EAAIwliB,GAAO/a,EAAKiR,IAAa,EAAI8J,EAAM/J,EAAWA,GACrJ,MAAA,CACL5nf,EAAK6je,GAAU5pe,EAAKza,EACpBwgB,EAAK+pV,GAAO9vV,EAAK9tC,EAAK,EAAIqzB,GAAO,EAAIo3f,EAAKp3f,KAcrC,SAAAwygB,GAAkBnuB,EAAQ95I,GACjC,GAAI1gZ,EAAI0gZ,GAAOrsK,EAAgB,MAAA,CAACmmT,EAAQ,GACxC,IAAI+jB,EAAW79J,EAAM23I,EAAQp4e,EAAQ3rB,EAAKiqhB,GAC1C,GAAIv+iB,EAAIw6hB,GAAUnmT,GAAWr0O,EAAIA,EAAI0gZ,GAAO23I,GAAUhkT,QAAgB,CAAC,EAAGzjL,EAAKhrB,EAAIqa,EAAQ,IACvF,IAAAstf,GAAM38e,EAAK4pe,EAASA,EAAS5pe,GAAM,EAAGxa,EAAMmogB,GAAY,EAAI9ihB,EAAIwkB,IAC7D,MAAA,CACL2Q,GAAM+F,EAAK6je,GAAU13gB,EAAKyqhB,EAAKA,EAAK,EAAIn3f,EAAMA,GAAOm3f,GACrD38e,EAAKxa,GAcA,SAAAwygB,GAAkBpuB,EAAQ95I,GACjC,IAAKA,EAAY,MAAA,CAAC85I,EAAQ,GACtB,IAAA6F,EAAQrgiB,EAAI0gZ,GAChB,IAAK85I,GAAU6F,IAAUhI,EAAe,MAAA,CAAC,EAAG33I,GAC5C,IAAIg1J,EAAKrV,EAAQhI,EAAQwwB,EAAMnT,EAAKA,EAAI72J,GAAM,EAAI62J,EAAKmT,GAAOA,EAAM,GAAK,IAAM,EAAIA,GAAOnT,EAAK,IAAKoT,EAAMjqK,EAAKA,EAAIkqK,EAAKrT,EAAK72J,EAAImqK,EAAOH,EAAMC,EAAM,EAAIC,EAAIE,EAAOvT,EAAK,EAAI72J,EAAIg7I,EAAUW,EAASnC,EAAQmD,EAAU3B,EAAU,EAAIA,EAASzqe,EAAKuH,EAAK32D,EAAIw6hB,GAAUnC,GAAUv1gB,EAAK04gB,EAAUA,EAAU,GAAI0tB,EAAM95f,EAAKA,EAAoHjZ,GAAOiZ,GAAM45f,EAAOF,EAAM,GAAK,EAAIhmiB,EAA/IkmiB,GAAQH,EAAMC,EAAMI,EAAM,IAAM,EAAIL,IAAQA,GAAOI,EAAOA,EAAO,EAAIH,GAAO,GAAKC,EAAKD,EAAM,EAAIA,EAAMA,MAAqD,EAAIE,EAAOE,GAC7d,MAAA,CACLvyf,EAAK6je,GAAUnC,EAASlif,EACxBwgB,EAAK+pV,GAAO23I,EAASv1gB,EAAK,EAAIssC,EAAKpvD,EAAIm2C,GAAOA,EAAMA,IAqCxD,SAASgzgB,GAAUC,EAAUhd,EAAWid,EAAWvggB,GACjD,IAAI2ye,EAAO7qe,EAAK,EACLw4f,EAAA3/iB,EAAI2/iB,EAAU/0U,GACb+3T,EAAA3iiB,EAAI2iiB,EAAW/3T,GAChB+0U,EAAArijB,EAAIqijB,EAAU/wB,GACb+T,EAAArliB,EAAIqliB,EAAWx7e,EAAKyjL,GACpBg1U,EAAA5/iB,EAAI4/iB,EAAW,GACfA,EAAAtijB,EAAIsijB,EAAW,WAEvB,IACAC,GAFIxggB,EAAAr/C,EAAIq/C,EAAOurL,IAEE,IACjB35M,EAAKg0B,GAFQ26f,EAAY,IAAM,GAER5thB,EAAIgggB,IAASA,EAAMhhgB,EAAKiB,EAAI0thB,GAAY1thB,EAAIhB,EAAK29f,GAAS1zhB,EAAIyniB,EAAYx7e,EAAIq6E,EAAKnoH,EAAKwmiB,EAAS5thB,EAAI0thB,EAAW,GAAK1thB,EAAI0wgB,EAAY,IAChK,OA7BF,SAAuBtygB,EAAIC,EAAIU,EAAIC,EAAI/1B,GAC5B,SAAA60O,EAAQghT,EAAQ95I,GACnB,IAAAlhZ,EAAIi7B,EAAKiB,EAAIhB,EAAKgmX,GAAMljM,EAAK16L,EAAK,EAAItjB,EAAIA,GAAIo/E,EAAK97D,EAAK,GAAK,EAAI06L,EAAK/hL,EAAI++f,GAAU71hB,KACjF,MAAA,CACLm1B,EAAK0jL,EAAK5+H,EAAKljD,EAAI8+f,GACnBzggB,EAAKv6B,EAAIo/E,GAUN,OAPC46J,EAAA7hN,OAAS,SAAS9uB,EAAGC,GAC3B,IAAI8hC,EAAM/hC,EAAIixB,EAAIqf,EAAMrwC,EAAIixB,EAAInmB,EAAIkP,EAAK8nB,EAAMA,EAAMuO,EAAMA,GAAMr5C,EAAI,EAAIw0B,EAAK1gB,EAAI,GAC3E,MAAA,CACLwoB,EAAMvzB,EAAI+8B,EAAI9lC,GAAIg6B,EAAKlmB,GAAKjP,EAC5BiP,GAAK0gB,EAAKxrB,EAAI4yB,EAAI57B,IAAMi6B,EAAKU,EAAK7mB,IAAM8mB,EAE5C,EACO8+M,EAcA+vU,CADmKt+a,EAAKnoH,EAAKne,EAAI81B,EAAKC,GAAU,GAAKuwG,EAAKnoH,EAAKne,EAAI81B,EAAKC,IAClMD,EAAIC,EAAI/1B,GAEvC,SAAS6kjB,KACH,IAAAJ,EAAW,GAAKr8B,EAAUqf,EAAY,GAAKrf,EAAUs8B,EAAY,GAAIvggB,EAAQ,IAAK2ggB,EAAStX,EAAMR,qBAAqBwX,IAAYp5f,EAAa05f,EAAOL,EAAUhd,EAAWid,EAAWvggB,GAanL,OAZIiH,EAAAq5f,SAAW,SAASvkiB,GACtB,OAAAhhB,UAAUpG,OAASgsjB,EAAOL,GAAYvkiB,EAAIkogB,EAAUqf,EAAWid,EAAWvggB,GAASsggB,EAAWnwX,CACvG,EACWlpI,EAAAq8e,UAAY,SAASvnhB,GACvB,OAAAhhB,UAAUpG,OAASgsjB,EAAOL,EAAUhd,GAAavnhB,EAAIkogB,EAAUs8B,EAAWvggB,GAASsjf,EAAYnzW,CACxG,EACWlpI,EAAAs5f,UAAY,SAASxkiB,GACvB,OAAAhhB,UAAUpG,OAASgsjB,EAAOL,EAAUhd,EAAWid,GAAaxkiB,EAAGikC,GAASuggB,CACjF,EACWt5f,EAAAjH,MAAQ,SAASjkC,GACnB,OAAAhhB,UAAUpG,OAASgsjB,EAAOL,EAAUhd,EAAWid,EAAWvggB,GAASjkC,GAAKikC,CACjF,EACOiH,EAAWj4B,MAAM,SAtMjByvhB,GAAA5vhB,OAAS,SAAS9uB,EAAGC,GAC5B,IAAI0a,EAAI1a,EAAI,QAAStJ,EAAIk8B,EAAI48f,EAAY90gB,GAClC,MAAA,CACL3a,GAAK,OAAU,OAAUrJ,EAAIA,GAC7B,EAAIk1G,EAAKlxF,GAEb,EAkEiB6kiB,GAAA1whB,OAAS,SAAS9uB,EAAGC,GACpC,GAAI9I,EAAI8I,GAAKurO,EAAgB,MAAA,CAACxrO,EAAG,GACjC,GAAI7I,EAAI6I,GAAKwrO,QAAgB,CAAC,EAAGgkT,EAAS38f,EAAI,EAAIg5E,EAAK5rG,EAAI8nD,KAC3D,IAAIne,GAAM5pC,GAAK+nD,GAAM/nD,EAAG6pC,GAAM5pC,GAAK8nD,GAAM9nD,EAAG4gjB,EAAQj3gB,EAAKC,EAAI3qB,EAAI2hiB,EAAQA,EAAO9qe,GAAM5+E,EAAI8I,IAAM,EAAI4gjB,GAAQ7qe,EAAKD,EAAK,EAAIlsC,EAAKD,EAAImsW,GAAU,EAAAhgU,EAAK,EAAI,EAAIlsC,EAAK3qB,EAAGxoB,EAAImzC,EAAKksW,GAAM,EAAI//T,EAAKA,EAAKA,GAAM+/T,EAAKA,EAAKA,GAAM,EAAIhgU,EAAKC,GAAM+/T,EAAKA,IAAO,GAAIrgW,GAAMqgC,EAAKC,EAAKA,GAAM,EAAI+/T,IAAOA,EAAInkX,EAAK,EAAI3X,GAAMy7B,EAAK,GAAIorgB,EAASj7f,EAAK,EAAInvD,GAAKg/C,EAAK9jB,IAAO,EAC7U,MAAA,CACLm2B,GAAM84f,EAAQ,EAAI5miB,EAAK,EAAI,GAAK2vB,EAAKC,GAAM3qB,KAAO,EAAIlf,GACtD8tD,EAAK7tD,GAAK8nD,IAAOn2B,EAAKgB,EAAIkuhB,EAAS/4f,EAAK,GAAKiuB,GAAM,EAAI+/T,IAE3D,EAckB8pK,GAAA/whB,OAAS,SAAS9uB,EAAGC,GACrC,IAAKD,EAAU,MAAA,CAAC,EAAGwvhB,EAAS38f,EAAI,EAAIg5E,EAAK5rG,EAAI8nD,KACzC,IAAAza,EAAMn2C,EAAI6I,EAAI+nD,GAAK28e,GAAM,EAAIp3f,EAAMA,GAAOrtC,GAAK8nD,GAAM9nD,IAAM,EAAIqtC,GAAqBu/f,EAAK5yhB,EAAdyqhB,EAAKA,EAAoB,GACjG,MAAA,CACL52e,EAAK9tD,GAAK+nD,GAAM8kf,EAAKnI,GACrB52e,EAAK7tD,GAAKuvhB,EAAS38f,EAAI,EAAIU,EAAMtZ,GAAM,EAAI,EAAIyqhB,EAAKp3f,IAAQo3f,EAAKmI,GAAMv/f,GAAMrzB,EAAK4yhB,EAAKnI,EAAKp3f,KAEhG,EAckBwygB,GAAAhxhB,OAAS,SAAS9uB,EAAGC,GACrC,IAAKA,EAAU,MAAA,CAACD,EAAG,GACnB,IAAIutC,EAAMttC,EAAI8nD,EAAI28e,GAAM38e,EAAKA,GAAM,EAAIxa,EAAMA,GAAOvtC,EAAIA,IAAM,EAAI+nD,EAAK/nD,GAChE,MAAA,CACLA,EAAI+nD,GAAM+F,EAAK9tD,GAAKia,EAAKyqhB,EAAKA,EAAK,GAAKA,GAAM,EAC9ClV,EAAS38f,EAAI,EAAIg5E,EAAKt+D,IAE1B,EAckBwygB,GAAAjxhB,OAAS,SAAS9uB,EAAGC,GACjC,IAAAwvG,EACJ,IAAKzvG,IAAMC,EAAU,MAAA,CAACD,EAAGC,GACpBA,GAAA8nD,EACD,IAAAza,EAAMwgB,EAAK9tD,GAAKA,EAAIwvhB,EAAQjpe,GAAMjZ,EAAMA,EAAM,EAAI,EAAIrtC,EAAIA,GAAK9I,EAAIm2C,GAAM+ygB,EAAM95f,EAAKA,EAAIsmf,EAAK,EAAI5siB,EAAG9L,EAAI,GACzG,EAAA,CACD,IAAI6rjB,EAAMnT,EAAKA,EAAI72J,GAAM,EAAI62J,EAAKmT,GAAOA,EAAM,GAAK,IAAM,EAAIA,GAAOnT,EAAK,IAAKkU,GAAM,EAAIlU,EAAKmT,EAAMnT,EAAK,KAAO,EAAImT,EAAMnT,GAAKoT,EAAMjqK,EAAKA,EAAIkqK,EAAKrT,EAAK72J,EAAIgrK,EAAMnU,EAAK72J,EAAImqK,EAAOa,EAAMA,EAAKZ,EAAOvT,EAAK,EAAI72J,EAAgHirK,GAAK,EAAKD,GAAO,EAAId,EAAKD,GAAO,EAAI,EAAID,EAAM,EAAIA,EAAMA,IAAQ,EAAIe,GAAMd,GAAY,GAAKD,EAAL,EAAWK,GAAY,EAAIL,EAAJ,EAAU,EAAIK,GAAOU,GAAMb,GAAW,GAAKF,EAAV,GAAuB,GAAKA,EAAL,GAAWK,GAAOU,IAAMG,EAAQjniB,EAA9SkmiB,GAAQH,EAAMC,EAAMI,EAAM,IAAM,EAAIL,IAAQA,GAAOI,EAAOA,EAAO,EAAIH,GAAOA,GAAO,GAAKC,EAAK,EAAID,KACtTpT,GAAMp9b,GAD0gBlpD,GAAM45f,EAAOF,EAAM,GAAK,EAAIiB,EAAQ5zgB,GAAO,EAAI6ygB,EAAOE,KAAW95f,GAAM,EAAIyvV,EAAK+qK,EAAK,EAAIC,GAAO,EAAID,IAAOE,EAAKC,EAAQ,EAAIF,GAAOz6f,IAAM,EAAK05f,EAAME,GAAQ,EAAIe,IAAU,EAAIH,IAAOV,EAAM,EAAIF,GAExsB,OAAA1wc,EAAQ+7H,KAAar3O,EAAI,GAC3B,MAAA,CACL25D,EAAK9tD,IAAMia,EAAKssC,EAAKA,EAAK,GAAKA,GAAMwB,EAAK,EAC1Cyne,EAASqd,EAEb,EAsDA,IAAI5/Z,GAAK,EAAIllF,EAAK,EAAI9tC,EAAK,GAAIkzH,GAAK,EAAIlzH,EAAK,EAAI8tC,EAAK9tC,EAAK,GAAKgzH,IAC5Dk0a,GAAazT,EAAoBvga,GAAKlzH,EAAK,GAAK8tC,EAAIolF,GAAIF,GAAK,GAIxD,SAAAm0a,GAAWzvB,EAAQ95I,GACnB,MAAA,CAAC85I,EAAS13gB,EAAK,EAAI,EAAI49X,EAAMA,GAAO9vV,EAAKA,IAAM8vV,GAQ/C,SAAAwpK,GAAW1vB,EAAQ95I,GAC1B,IAAIk6I,EAASn/f,EAAIilX,GAAMm6I,EAASp/f,EAAI++f,GAAUI,EAAQuvB,EAAW,EAAItvB,EAAQ4Y,EAAYh4gB,EAAI++f,EAASp+f,EAAMV,EAAI8+f,GAAUI,GAASl/f,EAAIglX,KAAQgzJ,EAAYh4gB,EAAI8+f,GAExJ,MAAA,CACLkZ,GAFO9Y,EAAA93gB,EAAK,EAAI+3gB,EAASA,IAEJ4Y,EAAY0W,GAChC1W,EAAY7Y,EAAS8Y,EAAYyW,GAa7B,SAAAC,GAAW5vB,EAAQ95I,GACtB,IAAA10W,EAAcmngB,EAAU3Y,EAAQ95I,GAC7B,MAAA,EACJ10W,EAAY,GAAKwuf,EAASnC,GAAU,GACpCrsf,EAAY,GAAK00W,GAAO,GA5BlBupK,GAAAtyhB,OAAS,SAAS9uB,EAAGC,GACvB,MAAA,CAACD,EAAIia,EAAK,EAAI,EAAIha,EAAIA,GAAK8nD,EAAKA,IAAM9nD,EAC/C,EAYWohjB,GAAAvyhB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAI8ka,GAAM/ka,EAAIA,EAAIC,EAAIA,IAAK,EAAImiI,EAAKnoH,GAAM8qZ,GAAM,EAAIA,IAAM9qa,EAAIgG,EAAI8ka,EAAK/ka,EAAIoiI,EAAIriI,EAAIC,EAAI+ka,EAAK9ka,EAAImiI,EAAI77E,EAAKtsC,EAAKla,EAAIA,EAAI9F,EAAIA,GACnH,MAAA,CACLs5B,EAAM6uG,EAAKnoI,EAAGssD,GAAM,EAAIw+W,IACxBx+W,GAAM96B,EAAK22G,EAAKriI,EAAIwmD,GAAM,EAE9B,EAWWg7f,GAAAzyhB,OAAS,SAAS9uB,EAAGC,GAC9B,IAAI0xhB,EAAS3xhB,EAAG63Y,EAAM53Y,EAAG9L,EAAI,GAC1B,EAAA,CACG,IAAqW49O,EAArWi/T,EAASp+gB,EAAIilX,GAAMo5J,EAASp+gB,EAAIglX,GAAM2pK,EAAW3uhB,EAAI,EAAIglX,GAAM4pK,EAAUxQ,EAASA,EAAQyQ,EAAU1Q,EAASA,EAAQ2Q,EAAY9uhB,EAAI8+f,GAASiwB,EAAchvhB,EAAI++f,EAAS,GAAIkwB,EAAchvhB,EAAI8+f,EAAS,GAAImwB,EAAeD,EAAcA,EAAa7rK,EAAK,EAAI0rK,EAAUE,EAAcA,EAAaxzZ,EAAK4nP,EAAKnwV,EAAKmrf,EAAS4Q,GAAe3niB,EAAK83N,EAAI,EAAIikK,GAAMjkK,EAAI,EAAMpvM,EAAK,IAAO,EAAIyrH,EAAK4iZ,EAAS6Q,EAAclwB,EAASnC,GAAUxvhB,EAAG4iC,EAAK,IAAOwrH,EAAK6iZ,EAASp5J,GAAO53Y,EAAG8hjB,EAAY,GAAMhwU,GAAK2vU,EAAUI,EAAe1zZ,EAAK4iZ,EAAS4Q,EAAcH,GAAW,GAAMjyB,EAAQwyB,EAASjwU,GAAK4vU,EAAYH,EAAW,EAAIpzZ,EAAK6iZ,EAAS4Q,GAAcI,EAAY,KAAQlwU,GAAKyvU,EAAWK,EAAczzZ,EAAK6iZ,EAASyQ,EAAUC,GAAYO,EAAS,GAAMnwU,GAAK0vU,EAAUG,EAAcxzZ,EAAK0zZ,EAAe9Q,GAAU,GAAK9F,EAAc8W,EAASC,EAAYC,EAASH,EAAWI,GAAWv/gB,EAAKo/gB,EAASr/gB,EAAKu/gB,GAAUhX,EAAavwD,GAAQh4c,EAAKs/gB,EAAYr/gB,EAAKm/gB,GAAa7W,EACx7BvZ,GAAUwwB,EAAStqK,GAAO8iG,SAClBxjf,EAAIgrjB,GAAW32U,GAAWr0O,EAAIwjf,GAAQnvQ,MAAcr3O,EAAI,GAC3D,MAAA,CAACw9hB,EAAQ95I,EAClB,EAIAvmV,EAAS8wf,gBAAkB9Y,EAAMhB,iBACjCh3e,EAAS+wf,mBAAqB/Y,EAAMf,oBACpCj3e,EAASgxf,QAhjGT,WACM,IAAAnqK,EAAOq3I,EAAQn5hB,EAAIiziB,EAAMR,qBAAqBY,GAAU3+hB,EAAI1U,EAAE8hZ,GAIlE,OAHEptY,EAAAizC,OAAS,SAAShiC,GAClB,OAAOhhB,UAAUpG,OAASyB,EAAE8hZ,EAAOn8X,EAAIkogB,GAAY/rI,EAAO/nN,CAC5D,EACOrlL,EAAEkkB,MAAM,SAASk0gB,UAAU,MA4iGpC7xe,EAASixf,WAAa7Y,EACtBp4e,EAASkxf,UA5hGT,WACE,OAAOlZ,EAAMT,cAAcyB,GAAWr7gB,MAAM,SA4hG9CqiC,EAASmxf,aAAenY,EACxBh5e,EAASoxf,aAtgGT,WACM,IAAAlrB,EAAQ,GAAKtT,EAAUwmB,EAAQlT,GAAS,EAAI,GAAQ,EAAAmT,EAAU5tgB,EAAI2tgB,EAAQlT,GAAQnhiB,EAAIiziB,EAAMR,qBAAqB2B,GAAe1/hB,EAAI1U,EAAEmhiB,GAAQ4f,EAAUrsiB,EAAEyxE,OAoBvJ,OAnBLzxE,EAAAijiB,SAAW,SAAShyhB,GACpB,OAAKhhB,UAAUpG,QACL+1iB,EAAA5tgB,GAAK2tgB,GAASlT,EAAQx7gB,EAAIkogB,IAAa,EAAI,MAAUsT,GACxDnhiB,EAAEmhiB,IAFqBA,EAAQpnW,CAGxC,EACErlL,EAAAyxE,OAAS,SAASA,GACd,IAAAzrC,EAAShmC,EAAEgmC,SAAUsmgB,EAAeD,EAAQ56d,GAAS86d,GAAgBvsiB,EAAEgmC,OAAO,CAAC,EAAG,IAAKqmgB,EAAQ56d,IAAUpa,EAAYr3D,EAAEq3D,YAWpH,OAVPr3D,EAAEgmC,OAAOA,GACTsmgB,EAAapnB,OAAS,WACPqnB,EAAA3mB,eAAgB2mB,EAAa7mB,YAC1C,IAAA,IAASkB,GAAiB,IAAR+Y,EAAcA,EAAQ/Y,EAAS,IAAKA,GAAkB,GAAR+Y,EACjD4M,EAAA5uhB,MAAMipgB,EAAgB,GAAR+Y,GAC7B,GAAIlT,EAAc,KAAAkT,GAAS/Y,GAAU,EAAI+Y,EAAQtoe,KAAoB,KACnEk1e,EAAa5uhB,MAAMipgB,EAAQ+Y,GAASn3gB,EAAMX,EAAI++f,EAASzN,EAAW,GAAIymB,GAAWv6W,GAEtEknX,EAAA5mB,UAAW4mB,EAAa1mB,YACvC,EACOymB,CACT,EACOtsiB,EAAEkkB,MAAM,SAAS9B,OAAO,CAAC,EAAG,WAk/FrCmkC,EAASqxf,gBAAkBlY,EAC3Bn5e,EAASsxf,UAj+FT,WACE,OAAOtZ,EAAMT,cAAcuC,GAAWn8gB,MAAM,UAi+F9CqiC,EAASuxf,aAAezX,EACxB95e,EAASwxf,SAl9FT,WACE,OAAOxZ,EAAMT,cAAc0D,GAAUt9gB,MAAM,UAk9F7CqiC,EAASyxf,YAAcxW,EACvBj7e,EAAS0xf,YA17FT,WACM,IAAAvW,EAAS,EAAGp2iB,EAAIiziB,EAAMR,qBAAqB0D,GAAczhiB,EAAI1U,EAAEo2iB,GAAS9D,EAAmB59hB,EAAEyxE,OAAQyme,EAAa,IAAMvngB,GAAM9oB,EAAIqwhB,EAAa/+B,GAAWqyB,EAAK1jhB,EAAIowhB,EAAa/+B,GAuBpL,OAtBEn5gB,EAAAwsiB,MAAQ,SAASv7hB,GACjB,OAAOhhB,UAAUpG,OAASyB,EAAEo2iB,GAAUzwhB,GAAKywhB,CAC7C,EACE1hiB,EAAAyxE,OAAS,SAASA,GAClB,IAAIzrC,EAAShmC,EAAEgmC,SAAUsmgB,EAAe1O,EAAiBnsd,GAAS86d,GAAgBvsiB,EAAEgmC,OAAO,CAAC,EAAG,IAAK43f,EAAiBnsd,IAgB9G,OAfPzxE,EAAEgmC,OAAOA,GACTsmgB,EAAapnB,OAAS,WACPqnB,EAAA3mB,eAAgB2mB,EAAa7mB,YACjC,IAAA,IAAAt8hB,EAAI,EAAGs7G,EAAQ,IAAMg9b,EAAQyW,EAAS,EAAIn7f,EAAK0kf,EAAQ50J,EAAM,GAAK,IAAM40J,EAAQjV,EAAQhI,EAAQr7hB,EAAIs4iB,IAAUt4iB,EAAG0jZ,GAAOpoS,EAAO+nb,GAAS0rB,EAC/I5L,EAAa5uhB,MAAM6K,EAAMgjhB,EAAK3jhB,EAAI4kgB,GAAQ97e,GAAM00I,EAAU3kK,EAAK8qhB,EAAK1jhB,EAAI2kgB,IAAUpnW,GAC9EynN,GAAW,IACby/J,EAAa5uhB,OAAM,IAAY,IAAAmvX,EAAMorK,GACrC3L,EAAa5uhB,OAAM,IAAY,IAAAmvX,EAAMorK,KAExB3L,EAAA5uhB,MAAM,GAAImvX,EAAMorK,GAChB3L,EAAA5uhB,MAAM,GAAImvX,EAAMorK,IAGpB3L,EAAA5mB,UAAW4mB,EAAa1mB,YACvC,EACOymB,CACT,EACOtsiB,EAAEkkB,MAAM,SAAS9B,OAAO,CAAC,EAAG,UAAUg2gB,UAAU,UAm6FzD7xe,EAAS6xf,eAAiB3W,EAC1Bl7e,EAAS8xf,cAj0FT,WACE,OAAO9Z,EAAMT,cAAcwE,KAAiBt8f,OAAO,EAAQ,MAAA,KAAM9hB,MAAM,QAAQ9B,OAAO,CAAC,KAAM,OAi0F/FmkC,EAAS+xf,iBAAmBhW,EAC5B/7e,EAASgyf,SA9xFT,WACE,OAAOha,EAAMT,cAAciF,GAAU7+gB,MAAM,UA8xF7CqiC,EAASiyf,YAAczV,EACvBx8e,EAASkyf,SAhwFT,WACE,OAAOzV,EAAUG,IAAUj/gB,MAAM,SAAS9B,OAAO,CAAC,EAAG,UAAU6ghB,SAAS,KAgwF1E18e,EAASmyf,YAAcvV,GACvB58e,EAASoyf,aApvFT,WACM,IAAArV,EAAS,GAAKh4iB,EAAIiziB,EAAMR,qBAAqBsF,IAAerjiB,EAAI1U,EAAEg4iB,GAI/D,OAHLtjiB,EAAA0rS,SAAW,SAASz6R,GACpB,OAAOhhB,UAAUpG,OAASyB,EAAEg4iB,GAAUryhB,GAAKqyhB,CAC7C,EACOtjiB,EAAEkkB,MAAM,UAgvFjBqiC,EAASqyf,gBAAkBvV,GAC3B98e,EAASsyf,WA9uFT,WACE,OAAOta,EAAMT,cAAcyF,IAAYr/gB,MAAM,SA8uF/CqiC,EAASuyf,cAAgBvV,GACzBh9e,EAASwyf,cAAgBhV,GACzBx9e,EAASyyf,iBAAmBrV,GAC5Bp9e,EAAS0yf,oBA3qFT,WACS,OAAAlV,GAAW,CAAC,EAAG,IAAK,CAAC,GAAI,IAAK,CAAC,MAAS,KAAG7/gB,MAAM,KAAK9B,OAAO,CAAC,KAAM,KA2qF7EmkC,EAAS2yf,aAvpFT,WACS,OAAA3a,EAAMT,cAAckG,IAAc9/gB,MAAM,SAAS9B,OAAO,CAAC,EAAG,MAupFrEmkC,EAAS4yf,gBAAkBnV,GAC3Bz9e,EAAS6yf,SAxoFT,WACE,OAAOpW,EAAUiB,IAAU//gB,MAAM,SAASk0gB,UAAU,KAwoFtD7xe,EAAS8yf,YAAcpV,GACvB19e,EAAS+yf,WA/nFT,WACE,OAAO/a,EAAMT,cAAcoG,IAAYhghB,MAAM,SA+nF/CqiC,EAASgzf,cAAgBrV,GACzB39e,EAASizf,wBApnFT,WACE,OAAOxW,EAAUtK,IAAyBuK,SAAS,OAAO/+gB,MAAM,UAonFlEqiC,EAASkzf,2BAA6B/gB,GACtCnye,EAASmzf,4BAzmFT,WACE,OAAO1W,EAAUmB,IAA6BjghB,MAAM,SAymFtDqiC,EAASozf,+BAAiCxV,GAC1C59e,EAASqzf,WA1lFT,WACE,OAAOrb,EAAMT,cAAcsG,IAAYlghB,MAAM,UA0lF/CqiC,EAASszf,cAAgBzV,GACzB79e,EAASuzf,WA3kFT,WACE,OAAOvb,EAAMT,cAAcuG,IAAYnghB,MAAM,UA2kF/CqiC,EAASwzf,cAAgB1V,GACzB99e,EAASyzf,WA5jFT,WACE,OAAOzb,EAAMT,cAAcwG,IAAYpghB,MAAM,UA4jF/CqiC,EAAS0zf,cAAgB3V,GACzB/9e,EAAS2zf,WAxiFT,WACE,OAAO3b,EAAMT,cAAcyG,IAAYrghB,MAAM,UAwiF/CqiC,EAAS4zf,cAAgB5V,GACzBh+e,EAAS6zf,WA1hFT,WACE,OAAO7b,EAAMT,cAAc0G,IAAYtghB,MAAM,UA0hF/CqiC,EAAS8zf,cAAgB7V,GACzBj+e,EAAS+zf,WAvgFT,WACE,OAAO/b,EAAMT,cAAc2G,IAAYvghB,MAAM,UAugF/CqiC,EAASg0f,cAAgB9V,GACzBl+e,EAASi0f,aAj/ET,WACE,OAAOjc,EAAMT,cAAc6G,IAAczghB,MAAM,UAi/EjDqiC,EAASk0f,gBAAkB9V,GAC3Bp+e,EAASm0f,SAv+ET,WACE,OAAOnc,EAAMT,cAAc8H,IAAU1hhB,MAAM,UAu+E7CqiC,EAASo0f,YAAc/U,GACvBr/e,EAASq0f,WA99ET,WACE,OAAOrc,EAAMT,cAAc+H,IAAY3hhB,MAAM,UA89E/CqiC,EAASs0f,cAAgBhV,GACzBt/e,EAASu0f,qBAv8ET,WACM,IAAAtxgB,EAAQ,GAAKl+C,EAAIiziB,EAAMR,qBAAqBgI,IAAuB/liB,EAAI1U,EAAEk+C,GAItE,OAHLxpC,EAAAwpC,MAAQ,SAASv4B,GACjB,OAAOhhB,UAAUpG,OAASyB,EAAEk+C,GAASv4B,GAAKu4B,CAC5C,EACOxpC,EAAEkkB,MAAM,UAm8EjBqiC,EAASw0f,wBAA0BhV,GACnCx/e,EAASy0f,WA57ET,SAAiBC,GACO,MAAlBA,IAAwBA,EAAiB1c,EAAMd,iBAC/C,IAAAthf,EAAa8+f,IAAkBv7C,EAAkB6+B,EAAMhC,qBAAqBr4gB,MAAMmhK,GAAUhuH,UAAU,GAAG+ge,UAAU,MAAMj0gB,UAAU,CAAC,EAAG,IAC3I,SAAS+2hB,EAASv9hB,GACT,OAAAw+B,EAAWiqf,GAAezohB,IA0BnC,SAASzI,EAAS3M,GACP2yiB,EAAA3yiB,GAAS,WAChB,OAAOtY,UAAUpG,QAAUsyD,EAAW5zC,GAAOxU,MAAMooD,EAAYlsD,WAAYirjB,GAAY/+f,EAAW5zC,IACpG,EAkBK,OA7CH4zC,EAAWp4B,SAAiBm3hB,EAAAn3hB,OAAS,SAASpG,GAChD,OAAO0ohB,GAAclqf,EAAWp4B,OAAOpG,GACzC,GACSu9hB,EAAAzpe,OAAS,SAASA,GACzB,IAAItxC,EAAKgc,EAAWs1B,OAAOA,GAASvxC,EAAKw/d,EAAgBjub,OAAO,CAC9D9zD,MAAO,SAASipgB,EAAQ95I,GACnB3sW,EAAAxiB,MAAMipgB,EAAS,EAAGlmgB,EAAKsR,GAAK86W,EAAM,EAAIqsI,IAAa9zV,EACxD,EACAqgW,UAAW,WACTvlf,EAAGulf,WACL,EACAC,QAAS,WACPxlf,EAAGwlf,SACL,EACAC,aAAc,WACZzlf,EAAGylf,cACL,EACAC,WAAY,WACV1lf,EAAG0lf,gBAIA,OADP3lf,EAAGglf,OAAS/kf,EAAG+kf,OACRhlf,CACT,EAMSg7gB,EAAAl1gB,OAAS,SAAS/0B,GAClB,OAAAhhB,UAAUpG,QAAU61gB,EAAgB15d,OAAO/0B,GAAIiqiB,GAAYx7C,EAAgB15d,QACpF,EACSk1gB,EAAA94hB,OAAS,SAASnR,GACzB,OAAOhhB,UAAUpG,QAAUsyD,EAAW/5B,OAAOgkhB,GAAen1hB,IAAKiqiB,GAAY7U,GAAclqf,EAAW/5B,SACxG,EACAlN,EAAS,SACTA,EAAS,aACTA,EAAS,cACTA,EAAS,aACTA,EAAS,aACTA,EAAS,WACTA,EAAS,YACTA,EAAS,SACTA,EAAS,aACTA,EAAS,aACFgmiB,EAASh3hB,MAAM,QA04ExBqiC,EAAS40f,WAp1ET,WACE,IAAIpqjB,EAAI,EAAGkpZ,EAAM,GAAKk/H,EAAUiiC,EAAOvzhB,EAAIoyX,GAAMohK,EAAOvzhB,EAAImyX,GAAM3uZ,EAAIiziB,EAAMR,qBAAqBuI,IAAatmiB,EAAI1U,EAAE2uZ,EAAKlpZ,GAAIs7iB,EAAUrsiB,EAAEyxE,OAA2B9gC,GAAM9oB,EAAZ,IAA6Bsxf,GAAWqyB,EAAK1jhB,EAA7C,IAA8Dqxf,GAwB5N,OAvBEn5gB,EAAAizC,OAAS,SAAShiC,GAClB,OAAKhhB,UAAUpG,QACRuxjB,EAAAvzhB,EAAIoyX,EAAMhpY,EAAIkogB,GACrBkiC,EAAOvzhB,EAAImyX,GACJ3uZ,EAAE2uZ,EAAKlpZ,IAHgBkpZ,EAAM50N,CAItC,EACErlL,EAAAwsiB,MAAQ,SAASv7hB,GACb,OAAChhB,UAAUpG,OACRyB,EAAE2uZ,EAAKlpZ,GAAKkgB,GADWlgB,CAEhC,EACEiP,EAAAyxE,OAAS,SAASA,GAClB,IAAIzrC,EAAShmC,EAAEgmC,SAAUsmgB,EAAeD,EAAQ56d,GAAS86d,GAAgBvsiB,EAAEgmC,OAAO,CAAC,EAAG,IAAKqmgB,EAAQ56d,IAU5F,OATPzxE,EAAEgmC,OAAOA,GACTsmgB,EAAapnB,OAAS,WACPqnB,EAAA3mB,eAAgB2mB,EAAa7mB,YAC1C,IAAA,IAASt8hB,EAAI,EAAGs7G,EAAQ,EAAI1nD,EAAKjsD,EAAG+7Y,EAAM,EAAG1jZ,EAAI2H,IAAK3H,EAAG0jZ,GAAOpoS,EAC9D6nc,EAAa5uhB,MAAM6K,EAAMgjhB,EAAK3jhB,EAAIilX,GAAMn8V,GAAM00I,EAAU3kK,EAAK8qhB,EAAK1jhB,EAAIglX,IAAQznN,GAC9EknX,EAAa5uhB,MAAM6K,EAAM6yhB,EAAOxzhB,EAAIilX,EAAMpoS,EAAQ,GAAI02c,GAAQ/1X,EAAU3kK,EAAK26hB,EAAOvzhB,EAAIglX,EAAMpoS,EAAQ,IAAM2gF,GAEjGknX,EAAA5mB,UAAW4mB,EAAa1mB,YACvC,EACOymB,CACT,EACOtsiB,EAAEgmC,OAAO,CAAC,IAAO,KAAG9hB,MAAM,SAASk0gB,UAAU,UA4zEtD7xe,EAAS+0f,cAAgBhV,GACzB//e,EAASg1f,aAvyET,WACE,OAAOhd,EAAMT,cAAc4J,IAAcxjhB,MAAM,UAuyEjDqiC,EAASi1f,gBAAkB9T,GAC3Bnhf,EAASk1f,aAryET,WACE,OAAOld,EAAMT,cAAc6J,IAAczjhB,MAAM,SAqyEjDqiC,EAASm1f,gBAAkB/T,GAC3Bphf,EAASo1f,aAnyET,WACE,OAAOpd,EAAMT,cAAc8J,IAAc1jhB,MAAM,UAmyEjDqiC,EAASq1f,gBAAkBhU,GAC3Brhf,EAASs1f,aA7wET,WACE,OAAOtd,EAAMT,cAAc+J,IAAc3jhB,MAAM,UA6wEjDqiC,EAASu1f,gBAAkBjU,GAC3Bthf,EAASw1f,aA3wET,WACE,OAAOxd,EAAMT,cAAciK,IAAc7jhB,MAAM,UA2wEjDqiC,EAASy1f,gBAAkBjU,GAC3Bxhf,EAAS01f,cAnsET,WACE,OAAO1d,EAAMT,cAAckK,GAAUE,KAAgBhkhB,MAAM,SAmsE7DqiC,EAAS21f,iBAAmBhU,GAC5B3hf,EAAS41f,SA5kET,WACE,OAAO5d,EAAMT,cAAckK,GAAUgB,KAAW9khB,MAAM,UA4kExDqiC,EAAS61f,YAAcpT,GACvBzif,EAAS81f,UAj8FT,WACM,IAAAva,EAAK,EAAGx2iB,EAAIiziB,EAAMR,qBAAqB8D,GAAY7hiB,EAAI1U,EAAEw2iB,GAKtD,OAJL9hiB,EAAA+2D,YAAc,SAAS9lD,GACnB,OAAChhB,UAAUpG,OACRyB,EAAEw2iB,GAAM7whB,GADe6whB,CAEhC,EACO9hiB,EAAEkkB,MAAM,UA47FjBqiC,EAAS+1f,aAAeza,EACxBt7e,EAASg2f,wBAjjET,WACE,IAAI9vB,EAAQ,EAAGnhiB,EAAIiziB,EAAMR,qBAAqB2L,IAA0B1piB,EAAI1U,EAAEmhiB,GAAQ+vB,EAAUx8iB,EAAEgmC,OAAQqmgB,EAAUrsiB,EAAEyxE,OAAQ13C,EAASwkgB,EAAMhD,YA6BtI,OA5BLv7hB,EAAAijiB,SAAW,SAAShyhB,GACpB,IAAKhhB,UAAUpG,OAAQ,OAAO4iiB,EAAQpnW,EAClC,IAAA99J,EAAIvnB,EAAEgmC,SACV,OAAO16C,EAAEmhiB,EAAQx7gB,EAAIkogB,GAAUnze,OAAOze,EACxC,EACEvnB,EAAAgmC,OAAS,SAAS/0B,GAClB,OAAKhhB,UAAUpG,QACP2yjB,EAAAprjB,KAAK4O,EAAG,CAACiR,EAAE,GAAIA,EAAE,GAAKw7gB,EAAQpnW,IAC/BtrJ,EAAA3X,OAAO,EAAEnR,EAAE,IAAKA,EAAE,KAClBjR,KAHuBiR,EAAIuriB,EAAQprjB,KAAK4O,IAAM,IAAMyshB,EAAQpnW,EAAUp0K,EAI/E,EACEjR,EAAAyxE,OAAS,SAASA,GAeX,OAdPA,EAAS46d,EAAQ56d,IACVyzc,OAAS,WACdzzc,EAAOm0c,eACP,IAA4G/ne,EAArF4jV,EAAO1nW,EAAOkZ,OAAO,MAAdlZ,GAAiC3B,YAAY,GAAIrnC,EAAI0wY,EAAK53Y,OAAS,EAAGT,GAAQ,EAE5G,IADAqoF,EAAOi0c,cACEt8hB,EAAI2H,GAAG0gF,EAAO9zD,OAAOkgC,EAAK4jV,EAAKr4Y,IAAI,GAAIy0D,EAAG,IAKnD,IAJA4zB,EAAOk0c,UAEP50hB,GADA0wY,EAAO1nW,EAAOkZ,OAAO,MAAdlZ,GAAiC3B,YAAY,IAC3CvuC,OAAS,EAClB4nF,EAAOi0c,cACEt8hB,GAAK,GAAGqoF,EAAO9zD,OAAOkgC,EAAK4jV,EAAKr4Y,IAAI,GAAIy0D,EAAG,IACpD4zB,EAAOk0c,UACPl0c,EAAOo0c,YACT,EACOp0c,CACT,EACOzxE,EAAEkkB,MAAM,SAAS++gB,SAAS,IAAI7K,UAAU,UAohEjD7xe,EAASk2f,2BAA6B/S,GACtCnjf,EAASm2f,WA/9DT,WACE,IAAIhuiB,EAAI,EAAGpjB,EAAIiziB,EAAMR,qBAAqBmM,IAAalqiB,EAAI1U,EAAEojB,GAAI29hB,EAAUrsiB,EAAEyxE,OAYtE,OAXLzxE,EAAAwsiB,MAAQ,SAASv7hB,GACjB,OAAOhhB,UAAUpG,OAASyB,EAAEojB,GAAKuC,GAAKvC,CACxC,EACE1O,EAAAyxE,OAAS,SAASA,GAClB,IAAIzrC,EAAShmC,EAAEgmC,SAAUsmgB,EAAeD,EAAQ56d,GAAS86d,GAAgBvsiB,EAAEgmC,OAAO,CAAC,EAAG,IAAKqmgB,EAAQ56d,IAK5F,OAJPzxE,EAAEgmC,OAAOA,GACTsmgB,EAAapnB,OAAS,WAlB1B,IAAgB9ygB,EACVlmB,EAkBAqyiB,EAAMzY,WAnBI1zgB,EAmBa,IAAM1D,EAlB7BxiB,EAAI,GAAGiJ,OACTivhB,EAAQxnhB,OAAY,IAAA,IAAMwV,EAAO,EAAGA,GAAM5B,IAAI25hB,IAC9C/lB,EAAQxnhB,MAAM,KAAY,IAAAwV,EAAO,GAAIA,GAAM5B,IAAI45hB,KAE1C,CACL76iB,KAAM,UACN6oC,YAAa,CAAU,MAAThmB,EAAelmB,EAAEskB,IAAI65hB,IAAen+iB,KAYfqgjB,EACnC,EACOD,CACT,EACOtsiB,EAAEkkB,MAAM,SAm9DjBqiC,EAASo2f,cAAgBzS,GACzB3jf,EAASq2f,QAp7DT,WACM,IAAA3T,EAAK,EAAG39iB,EAAIiziB,EAAMR,qBAAqBuM,IAAUtqiB,EAAI1U,EAAE29iB,GAIpD,OAHLjpiB,EAAAk1C,MAAQ,SAASjkC,GACjB,OAAOhhB,UAAUpG,OAASyB,EAAE29iB,GAAMh4hB,GAAKg4hB,CACzC,EACOjpiB,EAAEkkB,MAAM,SAAS9B,OAAO,CAAC,EAAG,SAg7DrCmkC,EAASs2f,WAAavS,GACtB/jf,EAASu2f,cA95DT,WACE,OAAOve,EAAMT,cAAcmN,IAAe/mhB,MAAM,SA85DlDqiC,EAASw2f,iBAAmB9R,GAC5B1kf,EAASy2f,YAr3DT,WACE,IAAIhojB,EAAI,EAAG9F,EAAI,EAAGi8iB,EAAS,GAAKhyB,EAAUjke,EAAQ,EAAG2ggB,EAAStX,EAAMR,qBAAqBmN,IAAc/uf,EAAa05f,EAAO7gjB,EAAG9F,EAAGi8iB,EAAQj2f,GAalI,OAZIiH,EAAAnnD,EAAI,SAASic,GACf,OAAAhhB,UAAUpG,OAASgsjB,EAAO7gjB,GAAKic,EAAG/hB,EAAGi8iB,EAAQj2f,GAASlgD,CAC/D,EACWmnD,EAAAjtD,EAAI,SAAS+hB,GACf,OAAAhhB,UAAUpG,OAASgsjB,EAAO7gjB,EAAG9F,GAAK+hB,EAAGk6hB,EAAQj2f,GAAShmD,CAC/D,EACWitD,EAAAgvf,OAAS,SAASl6hB,GACpB,OAAAhhB,UAAUpG,OAASgsjB,EAAO7gjB,EAAG9F,EAAGi8iB,GAAUl6hB,EAAIkogB,EAAUjke,GAASi2f,EAAS9lX,CACnF,EACWlpI,EAAAjH,MAAQ,SAASjkC,GACnB,OAAAhhB,UAAUpG,OAASgsjB,EAAO7gjB,EAAG9F,EAAGi8iB,EAAQj2f,GAASjkC,GAAKikC,CAC/D,EACOiH,EAAWj4B,MAAM,UAw2D1BqiC,EAAS02f,eAAiB/R,GAC1B3kf,EAAS22f,mBA1wDT,WACE,IAAI1zgB,EAAQ,EAAG6tF,EAAK,IAAKu0a,EAAS,SAAUtgjB,EAAIiziB,EAAMR,qBAAqB4N,IAAqB3riB,EAAI1U,EAAEk+C,EAAO6tF,EAAIu0a,GAU1G,OATL5riB,EAAAwpC,MAAQ,SAASv4B,GACV,OAAAhhB,UAAUpG,OAASyB,EAAEk+C,GAASv4B,EAAGomH,EAAIu0a,GAAUpigB,CACxD,EACExpC,EAAAqS,EAAI,SAASpB,GACN,OAAAhhB,UAAUpG,OAASyB,EAAEk+C,EAAO6tF,GAAMpmH,EAAG26hB,GAAUv0a,CACxD,EACEr3H,EAAAs2Y,MAAQ,SAASrlY,GACV,OAAAhhB,UAAUpG,OAASyB,EAAEk+C,EAAO6tF,EAAIu0a,GAAU36hB,GAAK26hB,CACxD,EACO5riB,EAAEkkB,MAAM,SAgwDjBqiC,EAAS42f,sBAAwBxR,GACjCplf,EAAS62f,aAAej9f,GACxBoG,EAAS82f,oBAxoDT,WACE,OAAOl9f,GAAU4if,EAAUyJ,IAAOtohB,MAAM,UAwoD1CqiC,EAAS+2f,yBA3nDT,WACE,OAAOn9f,GAAU8qf,GAAeyB,IAASxohB,MAAM,SA2nDjDqiC,EAASg3f,wBA9mDT,WACE,OAAOp9f,GAAU2if,EAAc6J,IAASzohB,MAAM,UA8mDhDqiC,EAASi3f,mCAnmDT,WACS,OAAAr9f,GAAU2if,EAAc8J,IAAS1ohB,MAAM,SAAS8hB,OAAO,CAAC,GAAI,KAmmDrEugB,EAASk3f,4BAvlDT,WACE,OAAOt9f,GAAU6qf,GAAkB6B,GAAS3oE,GAASl+b,OAAO,EAAM,IAAA,KAAM9hB,MAAM,SAAS9B,OAAO,CAAC,aAulDjGmkC,EAASm3f,yBA1kDT,WACS,OAAAv9f,GAAU+if,EAAe4J,IAAS5ohB,MAAM,QAAQ8hB,OAAO,EAAM,GAAA,KA0kDtEugB,EAASo3f,eAlkDT,WACE,OAAOpf,EAAMT,cAAciP,IAAgB7ohB,MAAM,UAkkDnDqiC,EAASq3f,kBAAoB7Q,GAC7Bxmf,EAASs3f,YA1iDT,WACM,IAAA9sjB,EAAI,GAAKzF,EAAIiziB,EAAMR,qBAAqBiP,IAAchtiB,EAAI1U,EAAEyF,GAIzD,OAHLiP,EAAA6mb,QAAU,SAAS51a,GACnB,OAAOhhB,UAAUpG,OAASyB,EAAEyF,GAAKkgB,GAAKlgB,CACxC,EACOiP,EAAEkkB,MAAM,SAsiDjBqiC,EAASu3f,eAAiB9Q,GAC1Bzmf,EAASw3f,YAlhDT,WACE,OAAOxf,EAAMT,cAAcoP,IAAahphB,MAAM,UAkhDhDqiC,EAASy3f,eAAiB9Q,GAC1B3mf,EAAS03f,aAlgDT,WACE,OAAO1f,EAAMT,cAAcqP,IAAcjphB,MAAM,SAkgDjDqiC,EAAS23f,gBAAkB/Q,GAC3B5mf,EAAS43f,WAp/CT,WACS,OAAA5f,EAAMT,cAAcsP,IAAYlphB,MAAM,SAASk0gB,UAAU,SAo/ClE7xe,EAAS63f,cAAgBhR,GACzB7mf,EAAS83f,cAp+CT,WACE,OAAOrb,EAAUqK,IAAepK,SAAS,IAAI/+gB,MAAM,UAo+CrDqiC,EAAS+3f,iBAAmBjR,GAC5B9mf,EAASg4f,UA79CT,WACE,OAAOhgB,EAAMT,cAAcwP,IAAWpphB,MAAM,UA69C9CqiC,EAASi4f,aAAelR,GACxB/mf,EAASk4f,yBAA2B9P,GACpCpof,EAASm4f,4BAA8BnR,GACvChnf,EAASo4f,+BAt7CT,WACS,OAAAhQ,GAAsBhU,GAAQ,CAAC,UAAWz2gB,MAAM,MAAM9B,OAAO,EAAC,QAAU,UAAUg2gB,UAAU,IAAIr7f,MAAM,MAs7C/GwpB,EAASq4f,6BAp7CT,WACE,OAAOjQ,GAAsBJ,GAAM,CAAC,IAAI,KAAMrqhB,MAAM,KAAKk0gB,UAAU,IAAIh2gB,OAAO,EAAC,QAAU,WAo7C3FmkC,EAASs4f,6BAl7CT,WACE,OAAOlQ,GAAsBH,GAAM,CAAC,KAAK,KAAMtqhB,MAAM,SAASk0gB,UAAU,IAAIh2gB,OAAO,EAAC,QAAU,WAk7ChGmkC,EAASu4f,+BAh7CT,WACE,OAAOnQ,GAAsBF,GAAU,EAAM,IAAA,KAAMvqhB,MAAM,SAAS9B,OAAO,CAAC,GAAI,UAAUg2gB,UAAU,KAg7CpG7xe,EAASw4f,4BA96CT,WACE,OAAOpQ,GAAsBD,GAAK,CAAC,IAAK,KAAKxqhB,MAAM,KAAKk0gB,UAAU,KAAKh2gB,OAAO,EAAC,WA86CjFmkC,EAASy4f,aAn5FT,WACE,OAAOzgB,EAAMT,cAAcgF,GAAc5+gB,MAAM,UAm5FjDqiC,EAAS04f,gBAAkBnc,EAC3Bv8e,EAAS24f,wBAv5CT,WACE,OAAO3gB,EAAMT,cAAciR,IAAyB7qhB,MAAM,UAu5C5DqiC,EAAS44f,2BAA6BpQ,GACtCxof,EAAS64f,sBAp4CT,WACE,OAAO7gB,EAAMT,cAAckR,IAAuB9qhB,MAAM,UAo4C1DqiC,EAAS84f,yBAA2BrQ,GACpCzof,EAAS+4f,yBAh3CT,WACE,OAAO/gB,EAAMT,cAAcmR,IAA0B/qhB,MAAM,UAg3C7DqiC,EAASg5f,4BAA8BtQ,GACvC1of,EAASi5f,iBAz1CT,WACE,OAAOjhB,EAAMT,cAAcoR,IAAkBhrhB,MAAM,UAy1CrDqiC,EAASk5f,oBAAsBvQ,GAC/B3of,EAASm5f,cAv0CT,WACE,OAAOnhB,EAAMT,cAAcsR,IAAelrhB,MAAM,SAu0ClDqiC,EAASo5f,iBAAmBvQ,GAC5B7of,EAASq5f,8BA7zCT,WACE,OAAOz/f,GAAU0hf,EAAU/1iB,KAAWwjjB,IAAStpgB,OAAO,CAAC,GAAI,IAAI9hB,MAAM,SA6zCvEqiC,EAASs5f,YAnyCT,WACE,OAAOthB,EAAMT,cAAcyR,IAAarrhB,MAAM,UAmyChDqiC,EAASu5f,eAAiBvQ,GAC1Bhpf,EAASw5f,aAhxCT,WACE,OAAOxhB,EAAMT,cAAcqS,IAAcjshB,MAAM,UAgxCjDqiC,EAASy5f,gBAAkB7P,GAC3B5pf,EAAS05f,aA1vCT,WACE,OAAO1hB,EAAMT,cAAcsS,IAAclshB,MAAM,SA0vCjDqiC,EAAS25f,gBAAkB9P,GAC3B7pf,EAAS45f,cAAgB7P,GACzB/pf,EAAS65f,uBA5iCT,SAAmBC,GACAA,EAAAA,GAAkB,SAASjvF,GACtC,IAAAlle,EAAIqyiB,EAAMjD,YAAY,CAAE/riB,KAAM,aAAc6oC,YAAag5b,IACtD,OAAAmtE,EAAM9B,cAAcv4gB,MAAM,GAAGC,UAAU,CAAC,EAAG,IAAI6hB,OAAO,EAAE95C,EAAE,IAAKA,EAAE,IAC1E,EACA,IAAI+od,EAAQi8F,GAAa1giB,KAAI,SAAS4gd,GACpC,MAAO,CAAEA,OAAM78T,QAAS8rZ,EAAejvF,GAAM,IAM/C,MAJA,EAAK,EAAA,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGnud,SAAQ,SAAStX,EAAGvC,GACxC,IAAAkjB,EAAO2oc,EAAMtpd,GACR2gB,IAAAA,EAAKm0B,WAAan0B,EAAKm0B,SAAW,KAAKv2C,KAAK+qd,EAAM7rd,GAAE,IAExDknjB,GAAWr7F,EAAM,IAAI,SAAS2xE,EAAQ95I,GACpC,OAAAmoE,EAAM2xE,GAAU5pe,EAAK,EAAI8vV,EAAM,EAAI,EAAI,EAAI85I,EAAS,EAAI95I,EAAM,EAAI,EAAI,EAAI85I,EAAS5pe,EAAK,EAAI8vV,EAAM,EAAI,EAAI,EAAIA,EAAM,EAAI,EAAI,MAClI/vW,OAAM,IAAK7Y,MAAM,SAAS9B,OAAO,CAAC,EAAG,MA+hC1CmkC,EAAS+5f,uBArhCT,SAAqBD,GACFA,EAAAA,GAAkB,SAASjvF,GACtC,IAAAlle,EAAIqyiB,EAAMjD,YAAY,CAAE/riB,KAAM,aAAc6oC,YAAag5b,IAC7D,OAAOmtE,EAAMT,cAAcqT,IAAYhthB,UAAU,CAAC,EAAG,IAAID,MAAM,GAAG8hB,OAAO95C,EAAE,GAAK,EAAI,EAAEA,EAAE,GAAI,GAAK,CAAC,IAAMA,EAAE,GAAI,KAChH,EACA,IAAI+od,EAAQi8F,GAAa1giB,KAAI,SAAS4gd,GACpC,MAAO,CAAEA,OAAM78T,QAAS8rZ,EAAejvF,GAAM,IAM/C,MAJA,EAAK,EAAA,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGnud,SAAQ,SAAStX,EAAGvC,GACxC,IAAAkjB,EAAO2oc,EAAMtpd,GACR2gB,IAAAA,EAAKm0B,WAAan0B,EAAKm0B,SAAW,KAAKv2C,KAAK+qd,EAAM7rd,GAAE,IAExDknjB,GAAWr7F,EAAM,IAAI,SAAS2xE,EAAQ95I,GACpC,OAAAmoE,EAAM2xE,GAAU5pe,EAAK,EAAI8vV,EAAM,EAAI,EAAI,EAAI85I,EAAS,EAAI95I,EAAM,EAAI,EAAI,EAAI85I,EAAS5pe,EAAK,EAAI8vV,EAAM,EAAI,EAAI,EAAIA,EAAM,EAAI,EAAI,MAClI/vW,OAAM,IAAK7Y,MAAM,SAAS9B,OAAO,CAAC,EAAG,WAwgC1CmkC,EAASg6f,sBAtgCT,SAAkBF,GACCA,EAAAA,GAAkB,SAASG,GAC1C,IAAIt0jB,EAAqB,IAAjBs0jB,EAAM32jB,OAAe00iB,EAAMjD,YAAY,CAAE/riB,KAAM,aAAc6oC,YAAaoohB,IAAWA,EAAM,GAC5F,OAAAjiB,EAAM9B,cAAcv4gB,MAAM,GAAGC,UAAU,CAAC,EAAG,IAAI6hB,OAAO,EAAE95C,EAAE,IAAKA,EAAE,IAC1E,EACA,IAAIiua,EAAK+2I,GAAa1giB,KAAI,SAASgwiB,GAEjC,IADA,IAAgEtxjB,EAA5D+4F,EAAMu4d,EAAMhwiB,IAAIm8G,IAAY57H,EAAIk3F,EAAIp+F,OAAQmL,EAAIizF,EAAIl3F,EAAI,GAAO4yJ,EAAU,GACpEv6J,EAAI,EAAGA,EAAI2H,IAAK3H,EACvB8F,EAAI+4F,EAAI7+F,GACRu6J,EAAQz5J,KAAKg9hB,GAAU,CACd,kBAAPlyhB,EAAE,GAAiC,mBAAP9F,EAAE,GACvB,kBAAP8F,EAAE,GAAiC,mBAAP9F,EAAE,GACvB,kBAAP8F,EAAE,GAAiC,mBAAP9F,EAAE,KAC5Bg4hB,GAAU,CACL,kBAAPh4hB,EAAE,GAAiC,mBAAP8F,EAAE,GACvB,kBAAP9F,EAAE,GAAiC,mBAAP8F,EAAE,GACvB,kBAAP9F,EAAE,GAAiC,mBAAP8F,EAAE,MAE5BA,EAAA9F,EAEC,OAAAy0J,CAAA,IAEL88Z,EAAgB,GAChB1+Z,EAAU,EAAK,EAAA,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAClCo4Q,EAAAl3Z,SAAQ,SAAS0gJ,EAAS7xJ,GAE3B,IADI,IAoCOkD,EAAG9F,EApCVsxjB,EAAQtP,GAAap/iB,GAAIf,EAAIyvjB,EAAM32jB,OAAQsuc,EAAUsoH,EAAc3ujB,GAAK,GACnE1I,EAAI,EAAGA,EAAI2H,IAAK3H,EACvB+wa,EAAGjwa,KAAK,CACNs2jB,EAAMp3jB,GACNu6J,GAAa,EAAJv6J,EAAQ,IAAM,EAAI2H,IAC3B4yJ,GAAa,EAAJv6J,EAAQ,IAAM,EAAI2H,MAE7BgxJ,EAAQ73J,KAAK4H,GACbqmc,EAAQjuc,MA4BC8K,EA3BP23H,GAAUg3B,GAAa,EAAJv6J,EAAQ,IAAM,EAAI2H,KA2B3B7B,EA1BVy9H,GAAUg3B,GAAa,EAAJv6J,EAAQ,IAAM,EAAI2H,KA2BpC,CACLiE,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,KA5BvB,IAEF,IAAI+ld,EAAQ96C,EAAG3pZ,KAAI,SAASgwiB,GACnB,MAAA,CACLjsZ,QAAS8rZ,EAAeG,GACxBpvF,KAAMovF,EACR,IAYF,OAVQz+Z,EAAA9+I,SAAQ,SAAStX,EAAGvC,GACtB,IAAAyvB,EAASo8b,EAAMtpd,GACRktB,IAAAA,EAAO4nB,WAAa5nB,EAAO4nB,SAAW,KAAKv2C,KAAK+qd,EAAM7rd,GAAE,IAQ9DknjB,GAAWr7F,EAAM,IANf,SAAK2xE,EAAQ95I,GACpB,IAAIm5J,EAASp+gB,EAAIilX,GAAM9sY,EAAI,CAACimiB,EAASp+gB,EAAI++f,GAASqf,EAASn+gB,EAAI8+f,GAAS9+f,EAAIglX,IACxEnpP,EAAUijY,GAAU5pe,EAAK,EAAI8vV,EAAM,EAAI,EAAI,EAAI85I,EAAS,EAAI95I,EAAM,EAAI,EAAI,EAAI85I,EAAS5pe,EAAK,EAAI8vV,EAAM,EAAI,EAAI,EAAIA,EAAM,EAAI,EAAI,EAChI/7Y,EAAI0vjB,EAAc98Z,GACtB,OAAOsxT,EAAMttX,GAAI52F,EAAE,GAAIiP,GAAK,EAAI,EAAI,EAAI2jJ,EAAUh8D,GAAI52F,EAAE,GAAIiP,GAAK,EAAI,EAAI,EAAI2jJ,EAAU,EAAIh8D,GAAI52F,EAAE,GAAIiP,GAAK,EAAI,EAAI,EAAI2jJ,EAAU,EAAIA,MAEpG5mH,OAAM,IAAK7Y,MAAM,SAAS9B,OAAO,CAAC,EAAG,MAg9BzEmkC,EAASm6f,WAr6BA,SAAMr7iB,EAAQ82C,GACjB,IAA4Bo4G,EAA5B9iF,EAASt1B,EAAWs1B,OACxB,IAAKA,EAAc,MAAA,IAAIhnF,MAAM,sBACrB,OAAA4a,GAAUA,EAAO9V,MACvB,IAAK,UACOglK,EAAA88Y,GACV,MACF,IAAK,oBACO98Y,EAAA68Y,GACV,MACF,QACY78Y,EAAA+8Y,GAGP,OAAA/8Y,EAAQlvJ,EAAQosE,IAw5BzBlrB,EAASo6f,yBA5wBT,WACE,OAAO7O,GAAY5J,IAAehkhB,MAAM,UA4wB1CqiC,EAASq6f,qBAAuB5O,GAChCzrf,EAASs6f,qBAAuB7O,GAChCzrf,EAASu6f,YAzwBA,SAAS7jjB,EAAOy5F,GACnB,KAAE,IAAMA,GAAUA,IAAWA,GAAU,IAAK,MAAM,IAAIjsG,MAAM,kBAChE,SAASg8gB,EAAcs6C,GACjB,IAAAhwjB,EAAIgwjB,EAAOl3jB,OAAQT,EAAI,EAAG43jB,EAAU,IAAIz2jB,MAAMwG,GAG3C,IAFPiwjB,EAAQ,IAAMD,EAAO,GAAGtpf,QAAQi/B,GAChCsqd,EAAQ,IAAMD,EAAO,GAAGtpf,QAAQi/B,GACzBttG,EAAI2H,GAAWiwjB,EAAA53jB,GAAK23jB,EAAO33jB,KAAMA,EACjC,OAAA43jB,EAET,SAASC,EAAeF,GACf,OAAAA,EAAOvwiB,IAAIi2f,GAEpB,SAASy6C,EAA2BH,GAGlC,IAFA,IAAIv0B,EAAS/lB,EAAcs6C,EAAO,IAC9BC,EAAU,CAACx0B,GACNpjiB,EAAI,EAAGA,EAAI23jB,EAAOl3jB,OAAQT,IAAK,CACtC,IAAIu0B,EAAQ8of,EAAcs6C,EAAO33jB,KAC7Bu0B,EAAM9zB,OAAS,GAAK8zB,EAAM,IAAM6ugB,EAAO,IAAM7ugB,EAAM,IAAM6ugB,EAAO,MAClEw0B,EAAQ92jB,KAAKyzB,GACJ6ugB,EAAA7ugB,GAMN,OAHgB,IAAnBqjiB,EAAQn3jB,QAAgBk3jB,EAAOl3jB,OAAS,GAC1Cm3jB,EAAQ92jB,KAAKu8gB,EAAcs6C,EAAOA,EAAOl3jB,OAAS,KAE7Cm3jB,EAET,SAASG,EAAgBJ,GAChB,OAAAA,EAAOvwiB,IAAI0wiB,GAEpB,SAASx6C,EAAiBq6C,GACpB,GAAU,MAAVA,EAAuB,OAAAA,EACvB,IAAAC,EACJ,OAAQD,EAAOxxjB,MACb,IAAK,qBACOyxjB,EAAA,CAAEzxjB,KAAM,qBAAsBw0gB,WAAYg9C,EAAOh9C,WAAWvzf,IAAIk2f,IAC1E,MACF,IAAK,QACHs6C,EAAU,CAAEzxjB,KAAM,QAAS6oC,YAAaque,EAAcs6C,EAAO3ohB,cAC7D,MACF,IAAK,aACO4ohB,EAAA,CAAEzxjB,KAAMwxjB,EAAOxxjB,KAAM6oC,YAAa6ohB,EAAeF,EAAO3ohB,cAClE,MACF,IAAK,aACO4ohB,EAAA,CAAEzxjB,KAAMwxjB,EAAOxxjB,KAAM6oC,YAAa8ohB,EAA2BH,EAAO3ohB,cAC9E,MACF,IAAK,kBACL,IAAK,UACO4ohB,EAAA,CAAEzxjB,KAAMwxjB,EAAOxxjB,KAAM6oC,YAAa+ohB,EAAgBJ,EAAO3ohB,cACnE,MACF,IAAK,eACO4ohB,EAAA,CAAEzxjB,KAAM,eAAgB6oC,YAAa2ohB,EAAO3ohB,YAAY5nB,IAAI2wiB,IACtE,MACF,QACS,OAAAJ,EAGJ,OADY,MAAfA,EAAOvihB,OAAcwihB,EAAQxihB,KAAOuihB,EAAOvihB,MACxCwihB,EAET,SAASI,EAAgBL,GACnB,IAAAC,EAAU,CAAEzxjB,KAAM,UAAWwhB,WAAYgwiB,EAAOhwiB,WAAYmzf,SAAUwC,EAAiBq6C,EAAO78C,WAG3F,OAFU,MAAb68C,EAAOn8iB,KAAYo8iB,EAAQp8iB,GAAKm8iB,EAAOn8iB,IACxB,MAAfm8iB,EAAOvihB,OAAcwihB,EAAQxihB,KAAOuihB,EAAOvihB,MACxCwihB,EAET,GAAa,MAAT/jjB,EAAuB,OAAAA,EAAM1N,MAC/B,IAAK,UACH,OAAO6xjB,EAAgBnkjB,GACzB,IAAK,oBACC,IAAAnS,EAAS,CAAEyE,KAAM,oBAAqBy2gB,SAAU/ogB,EAAM+ogB,SAASx1f,IAAI4wiB,IAEhE,OADW,MAAdnkjB,EAAMuhC,OAAc1zC,EAAO0zC,KAAOvhC,EAAMuhC,MACrC1zC,EAET,QACE,OAAO47gB,EAAiBzpgB,GAErB,OAAAA,GA8rBTspD,EAAS86f,eAAiBvP,GAC1Bvrf,EAAS+6f,wBAnqBT,WACE,OAAOte,EAAUiP,IAAyB/thB,MAAM,UAmqBlDqiC,EAASg7f,2BAA6BtP,GACtC1rf,EAASi7f,YAzmBT,WACE,OAAOjjB,EAAMT,cAAcsU,IAAaluhB,MAAM,SAymBhDqiC,EAASk7f,eAAiBrP,GAC1B7rf,EAASm7f,aAtkBT,WACE,IAAIp+gB,EAAY,EAAGmha,EAAQ,EAAGn5c,EAAIiziB,EAAMR,qBAAqBsU,IAAeryiB,EAAI1U,EAAEg4C,EAAWmha,GAStF,OARLzkc,EAAAujC,SAAW,SAAStyB,GAChB,OAAChhB,UAAUpG,OACRyB,EAAEg4C,GAAaryB,EAAGwzb,GADKnha,CAEhC,EACEtjC,EAAA2hjB,KAAO,SAAS1wiB,GAChB,OAAKhhB,UAAUpG,OACRyB,EAAEg4C,EAAWmha,EAAQxzb,EAAIkogB,GADF10E,EAAQp/Q,CAExC,EACOrlL,EAAEkkB,MAAM,SAASk0gB,UAAUt9e,EAAK,EAAIxX,GAAa+hJ,EAAW,OA6jBrE9+H,EAASq7f,gBAAkBvP,GAC3B9rf,EAASs7f,iBA5+DT,WACE,OAAOtjB,EAAMT,cAAckN,IAAkBhlgB,OAAO,EAAM,IAAA,KAAM9hB,MAAM,SAAS9B,OAAO,CAAC,aA4+DzFmkC,EAASu7f,oBAAsB9W,GAC/Bzkf,EAASw7f,cAv5FT,WACE,OAAOxjB,EAAMT,cAAcoF,GAAeh/gB,MAAM,SAu5FlDqiC,EAASy7f,iBAAmB9e,EAC5B38e,EAAS07f,UA7aT,SAAgBhljB,GACV,GAAS,MAATA,EAAsB,OAAAA,EAC1B,OAAQA,EAAM1N,MACZ,IAAK,UACH,OAAOkkjB,GAAcx2iB,GACvB,IAAK,oBACC,IAAAnS,EAAS,CAAEyE,KAAM,oBAAqBy2gB,SAAU/ogB,EAAM+ogB,SAASx1f,IAAIijiB,KAEhE,OADW,MAAdx2iB,EAAMuhC,OAAc1zC,EAAO0zC,KAAOvhC,EAAMuhC,MACrC1zC,EAET,QACE,OAAO4ojB,GAAez2iB,KAma5BspD,EAAS27f,SAlZT,WACE,OAAO3jB,EAAMT,cAAc6V,IAAUzvhB,MAAM,UAkZ7CqiC,EAAS47f,YAAcxO,GACvBptf,EAAS67f,qBAAuBrO,GAChCxtf,EAAS87f,wBAA0BxO,GACnCttf,EAAS+7f,wBA/XT,WACE,OAAOvO,GAAkB,EAAO,IAAA,MAAO,EAAC,GAAK,KAAK3b,UAAU,IAAIl0gB,MAAM,MA+XxEqiC,EAASg8f,uBAAyB/N,GAClCjuf,EAASi8f,0BAA4BxO,GACrCztf,EAASk8f,0BAxWT,WACE,OAAOjO,GAAoB,EAAO,IAAA,MAAO,EAAC,GAAK,KAAKpc,UAAU,KAAKl0gB,MAAM,UAwW3EqiC,EAASm8f,iBAhVT,WACE,OAAOnkB,EAAMT,cAAc2W,IAAkBvwhB,MAAM,UAgVrDqiC,EAASo8f,oBAAsBlO,GAC/Bluf,EAASq8f,kBA7TT,WACE,OAAOrkB,EAAMT,cAAcgX,IAAmB5whB,MAAM,UA6TtDqiC,EAASs8f,qBAAuB/N,GAChCvuf,EAASu8f,kBA1ST,WACE,OAAOvkB,EAAMT,cAAciX,IAAmB7whB,MAAM,UA0StDqiC,EAASw8f,qBAAuBhO,GAChCxuf,EAASy8f,kBAjRT,WACE,OAAOzkB,EAAMT,cAAckX,IAAmB9whB,MAAM,SAiRtDqiC,EAAS08f,qBAAuBjO,GAChCzuf,EAAS28f,UAAYtN,GACrBrvf,EAAS48f,WAlOT,WACE,OAAOvN,KAASJ,SAAS,IAAIhd,UAAU,IAAIid,UAAU,GAAGvggB,MAAM,KAAKhxB,MAAM,UAkO3EqiC,EAAS68f,aAAe7N,GACxBhvf,EAAS88f,WA/NT,WACE,OAAO9kB,EAAMT,cAAcsY,IAAYlyhB,MAAM,SA+N/CqiC,EAAS+8f,cAAgBlN,GACzB7vf,EAASg9f,WAxNT,WACE,OAAOhlB,EAAMT,cAAcuY,IAAYnyhB,MAAM,SAwN/CqiC,EAASi9f,cAAgBnN,GACzB9vf,EAASk9f,WAxMT,WACE,OAAOllB,EAAMT,cAAcwY,IAAYtwgB,OAAO,CAAC,GAAG,GAAK,KAAK9hB,MAAM,QAAQk0gB,UAAU,UAwMtF7xe,EAASm9f,cAAgBpN,GACzB/vf,EAASo9f,WAxLT,WACE,OAAOplB,EAAMT,cAAc0Y,IAAYtyhB,MAAM,UAwL/CqiC,EAASq9f,cAAgBpN,GACzBjpjB,OAAOiH,eAAe+xD,EAAU,aAAc,CAAEt6D,OAAO,GAAM,EAjzG1C,iBAAZa,QAA0C,IAAXic,EAAyB/B,EAAQla,EAASq3hB,KAAkB1B,MAAmHz7gB,EAAQs/C,EAAQt6C,GAAKs6C,EAAQt6C,IAAM,CAAC,EAAGs6C,EAAQt6C,GAAIs6C,EAAQt6C,OAuzGlR63iB,GAAe37iB,EAAW,CAC5B,wBAAwBpb,EAASic,GAE/B,IAAIiD,EAAKD,IACLsmG,EAAMrN,KACN9O,EAAW1E,KACX2nb,EAAWpthB,KAAKu0B,GAAK,IACrB+kK,EAAW,IAAMt5L,KAAKu0B,GACtBwjiB,EAAiB,CAAEj6X,OAAQ,WAC3Bk6X,EAAe,CAAEl6X,OAAQ,QAcpB,SAAAm6X,EAASnka,EAAK1jG,GACrB,OAAOnwC,EAAGyH,SAASwO,OAAOkC,UAAUg4B,EAAWh4B,aAAaD,MAAMi4B,EAAWj4B,SAEtE,SAAA8uV,EAAKnzN,EAAK1jG,EAAYh0C,GAC7B,IAAIvD,EAAKi7I,EAAIj7I,GACTZ,EAAK67I,EAAIi5I,SACTp3R,EAASsC,EAAGtC,OACZuijB,EAAWvijB,EAAOkD,GAClBu2G,EAAan3G,EAAGutG,YAChBquJ,EAAWzkJ,EAAWv2G,GACtBkpP,EAAS,CAAC,EACV5sG,EAAY,CAAC,EACR,SAAA5rJ,EAAI8qE,EAASnvE,GACb68P,EAAAlpP,EAAK,IAAMw7D,GAAWiyC,EAAItwC,eAAekif,EAAU7jf,GAAS1rE,MACnEwhG,EAAS9kG,KAAK,sBAAuBsQ,EAAQy5G,EAAW4S,QAAS+/H,GACjE,IAAIo2T,EAAS7xc,EAAItwC,eAAe69L,EAAUx/L,GACtC8jf,EAAOxvjB,QAAUzD,IACnBizjB,EAAO5ujB,IAAIrE,GACXohH,EAAItwC,eAAekif,EAAU7jf,GAAS9qE,IAAIrE,GAChCiwJ,EAAAt8I,EAAK,IAAMw7D,GAAWnvE,GAGpCkX,EAAG7S,GACHA,EAAI,mBAAoB6mD,EAAWj4B,QAAU27H,EAAIska,UACjD7ujB,EAAI,aAAa,GACd0O,EAAAmwG,KAAK,kBAAmB+sC,GAEpB,SAAAkja,EAAWvka,EAAK1jG,GACnB,IAAAl6B,EAAO+hiB,EAASnka,EAAK1jG,GAczB,SAASkogB,EAAO/ujB,GACd,IAAI8sB,EAAS+5B,EAAWp4B,OAAO87H,EAAIyka,OAC/BhvjB,EAAA,aAAc8sB,EAAO,IACrB9sB,EAAA,aAAc8sB,EAAO,IAOpB,OADFH,EAAA9e,GAAG,aAtBR,WACE6I,EAAGkK,OAAO3lB,MAAMuU,MAAMg/iB,MAqBc3gjB,GAAG,QAnBzC,WACag5C,EAAAj4B,MAAMlY,EAAGiI,MAAMiQ,OAAOC,UAAUnY,EAAGiI,MAAMkQ,WACpD07H,EAAI2kT,QAAO,GACX,IAAIpib,EAAS+5B,EAAWp4B,OAAO87H,EAAIyka,OAC/Bzka,EAAAi5I,SAAS3kL,KAAK,qBAAsB,CACtC,uBAAwBh4D,EAAWj4B,QAAU27H,EAAIska,SACjD,iBAAkB/hiB,EAAO,GACzB,iBAAkBA,EAAO,QAYgCjf,GAAG,WAJhE,WACE6I,EAAGkK,OAAO3lB,MAAMuU,MAAMi/iB,GACjB/wM,EAAAnzN,EAAK1jG,EAAYkogB,MAGjBpiiB,EAEA,SAAAsiiB,EAAe1ka,EAAK1jG,GACvB,IAEAqogB,EAAQC,EAASviiB,EAAYwiiB,EAAYC,EAAWC,EAAQC,EAAS/3B,EAAQg4B,EAF7E7iiB,EAAO+hiB,EAASnka,EAAK1jG,GAGzB,SAAS4ogB,EAAU9vjB,GACV,OAAAknD,EAAWp4B,OAAO9uB,GAiD3B,SAASovjB,EAAO/ujB,GACV,IAAA0wC,EAASmW,EAAWnW,SACpB5jB,EAAS+5B,EAAWp4B,OAAO87H,EAAIyka,OACnChvjB,EAAI,2BAA4B0wC,EAAO,IACnC1wC,EAAA,aAAc8sB,EAAO,IACrB9sB,EAAA,aAAc8sB,EAAO,IAGpB,OADFH,EAAA9e,GAAG,aAhDR,WACE6I,EAAGkK,OAAO3lB,MAAMuU,MAAMg/iB,GACbU,EAAAx4iB,EAAGkR,MAAM3sB,MAClBk0jB,EAAUtogB,EAAWnW,SACrB9jB,EAAai6B,EAAWh4B,YACXugiB,EAAAD,EACbE,EAAYI,EAAUP,MA0CcrhjB,GAAG,QAxCzC,WAEM,GADKyhjB,EAAA54iB,EAAGkR,MAAM3sB,MAfpB,SAAiB0E,GACX,IAAAI,EAAM0vjB,EAAU9vjB,GAChB,IAACI,EAAY,OAAA,EACb,IAAA2oG,EAAK7hD,EAAW9mD,GACpB,OAAOtJ,KAAKK,IAAI4xG,EAAG,GAAK/oG,EAAE,IATH,GAS+BlJ,KAAKK,IAAI4xG,EAAG,GAAK/oG,EAAE,IATlD,EAqBnB4tY,CAAQ2hL,GAGV,OAFKviiB,EAAAiC,MAAMi4B,EAAWj4B,cACjBjC,EAAAkC,UAAUg4B,EAAWh4B,aAGjBg4B,EAAAj4B,MAAMlY,EAAGiI,MAAMiQ,OACfi4B,EAAAh4B,UAAU,CAACjC,EAAW,GAAIlW,EAAGiI,MAAMkQ,UAAU,KACnDwgiB,EAGMI,EAAUH,KACnB93B,EAASi4B,EAAUH,GACnBC,EAAU,CAACH,EAAW,IAAM53B,EAAO,GAAK63B,EAAU,IAAKF,EAAQ,GAAIA,EAAQ,IAC3EtogB,EAAWnW,OAAO6+gB,GACLH,EAAAG,GALbF,EAAYI,EADHP,EAAAI,GAQDE,GAAA,EACVjla,EAAI2kT,QAAO,GACP,IAAAx+Z,EAASmW,EAAWnW,SACpB5jB,EAAS+5B,EAAWp4B,OAAO87H,EAAIyka,OAC/Bzka,EAAAi5I,SAAS3kL,KAAK,qBAAsB,CACtC,uBAAwBh4D,EAAWj4B,QAAU27H,EAAIska,SACjD,iBAAkB/hiB,EAAO,GACzB,iBAAkBA,EAAO,GACzB,+BAAgC4jB,EAAO,QAckB7iC,GAAG,WAXhE,WACE6I,EAAGkK,OAAO3lB,MAAMuU,MAAMi/iB,GAClBe,GAAS9xM,EAAKnzN,EAAK1jG,EAAYkogB,MAU9BpiiB,EAEA,SAAA+iiB,EAAYnla,EAAK1jG,GACRA,EAAWnW,SAAamW,EAAWj4B,QAC/C,IAIAygiB,EAJA1iiB,EAAO+hiB,EAASnka,EAAK1jG,GACrBloC,EAyLN,SAAyBje,GAIvB,IAHA,IAAI5M,EAAI,EACJ2H,EAAId,UAAUpG,OACd+qB,EAAY,KACPxrB,EAAI2H,KAAa7G,KAAK+F,UAAU7G,IACzC,IAAI0qB,EAAW9H,EAAG8H,SAAS/f,MAAM,KAAM6gB,GAchC,OAbEd,EAAAY,GAAK,SAASC,EAAMswiB,GAC3B,OAAO,SAASpwiB,GACV,IAAAC,EACA,IACGA,EAAAD,EAAGL,YAAcxI,EAAGiI,MACzBY,EAAG7e,OAASA,EACZgW,EAAGiI,MAAQY,EACXf,EAASe,EAAGtlB,MAAMwE,MAAM4gB,EAAMswiB,EAAU,CACxC,QACAj5iB,EAAGiI,MAAQa,EAEf,CACF,EACOhB,EA5MKoxiB,CAAgBjjiB,EAAM,YAAa,OAAQ,WACnDa,EAAU,EACVqiiB,EAASljiB,EAAK9e,GAsDlB,SAASkhjB,EAAO/ujB,GACV,IAAA8vjB,EAAUjpgB,EAAWnW,SACzB1wC,EAAI,2BAA4B8vjB,EAAQ,IACxC9vjB,EAAI,2BAA4B8vjB,EAAQ,IAE1C,OAzDKnjiB,EAAA9e,GAAG,aAAa,WACnB6I,EAAGkK,OAAO3lB,MAAMuU,MAAMg/iB,GAClB,IA6DqBuB,EACvBz+B,EACA95I,EACA8+J,EACA9L,EACAD,EACA5Y,EACAD,EACAs+B,EACAC,EA7BiBzxiB,EAzCf0wiB,EAASx4iB,EAAGkR,MAAM3sB,MAClBk0jB,EAAUtogB,EAAWnW,SACrB0+gB,EAAaD,EACbviiB,EAAai6B,EAAWh4B,YACxBgB,GA0DFyhgB,EAAS,IADcy+B,EAzDGZ,GA0DL,GAAKtrC,EAC1BrsI,EAAM,GAAMu4K,EAAM,GAAKlsC,EACvByyB,EAAS,GAAMyZ,EAAM,GAAKlsC,EAC1B2mB,EAAY/ziB,KAAK+7B,IAAI8+f,GACrBiZ,EAAY9ziB,KAAK87B,IAAI++f,GACrBK,EAASl7hB,KAAK+7B,IAAIglX,GAClBk6I,EAASj7hB,KAAK87B,IAAIilX,GAClBw4K,EAAWv5jB,KAAK+7B,IAAI8jhB,GACpB2Z,EAAWx5jB,KAAK87B,IAAI+jhB,GACjB,CACL/L,EAAY7Y,EAASu+B,EAAWzlB,EAAY7Y,EAASq+B,EACrDxlB,EAAY9Y,EAASu+B,EAAW1lB,EAAY5Y,EAASq+B,EACrDzlB,EAAY5Y,EAASs+B,EAAWzlB,EAAY9Y,EAASs+B,EACrDzlB,EAAY7Y,EAASs+B,EAAWxlB,EAAY7Y,EAASs+B,IAtEzCZ,EAAAj/iB,EAASy2C,EAAYqogB,GAC1BW,EAAA/zjB,KAAK6wB,EAAM,QAAQ,WACpB,IAuEQjtB,EAAG9F,EACfw7C,EACAC,EACAq6L,EACA+lK,EACAtpX,EACAC,EACA6/D,EACAC,EA/EIoje,EAAS54iB,EAAGkR,MAAM3sB,MAEtB,GADW4rD,EAAAj4B,MAAelY,EAAGiI,MAAMiQ,OAC9BygiB,GAGM,GAAAj/iB,EAASy2C,EAAYyogB,GAAS,CACvCzogB,EAAWnW,OAAOy+gB,GAAStgiB,UAAUjC,GACjC,IAAA4qgB,EAASpnhB,EAASy2C,EAAYyogB,GAC9BY,EA+EH,SAAcxwjB,EAAG9F,GACpB,GAAC8F,GAAM9F,EAAP,CACA,IAAAyyD,EA4EG,SAAM3sD,EAAG9F,GACT,MAAA,CACL8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,GACvB8F,EAAE,GAAK9F,EAAE,GAAK8F,EAAE,GAAK9F,EAAE,IAhFduwD,CAAMzqD,EAAG9F,GAChB4/Q,EAAO/iR,KAAKmjB,KAAKy4E,EAAIhmC,EAAMA,IAC3B8jgB,EAAY,GAAM15jB,KAAK+uD,KAAK/uD,KAAK8J,KAAI,EAAI9J,KAAKoH,IAAI,EAAGw0F,EAAI3yF,EAAG9F,MAC5DmjB,EAAItmB,KAAK+7B,IAAI29hB,GAAa32S,EAC9B,OAAOA,GAAQ,CAAC/iR,KAAK87B,IAAI49hB,GAAY9jgB,EAAK,GAAKtvC,GAAIsvC,EAAK,GAAKtvC,EAAGsvC,EAAK,GAAKtvC,EAL5D,EAhFMqziB,CAAcf,EAAW73B,GACnC64B,EAsIZ,SAA6BxgiB,GACpB,MAAA,CACLp5B,KAAKy8B,MAAM,GAAKrD,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAK,EAAI,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,KAAOkgK,EACnFt5L,KAAK20B,KAAK30B,KAAK8J,OAAQ9J,KAAKoH,IAAI,EAAG,GAAKgyB,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,OAASkgK,EACxEt5L,KAAKy8B,MAAM,GAAKrD,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,IAAK,EAAI,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,KAAOkgK,GA1IhEugY,EA8DF12jB,EA9DkCs2jB,EA+DjD96gB,GADY11C,EA9DkCmwB,GA+DvC,GACPwlB,EAAK31C,EAAE,GACPgwO,EAAKhwO,EAAE,GACP+1Y,EAAK/1Y,EAAE,GACPysB,EAAKvyB,EAAE,GACPwyB,EAAKxyB,EAAE,GACPqyF,EAAKryF,EAAE,GACPsyF,EAAKtyF,EAAE,GACJ,CACLw7C,EAAKjpB,EAAKkpB,EAAKjpB,EAAKsjN,EAAKzjJ,EAAKwpT,EAAKvpT,EACnC92C,EAAKhpB,EAAKipB,EAAKlpB,EAAKujN,EAAKxjJ,EAAKupT,EAAKxpT,EACnC72C,EAAK62C,EAAK52C,EAAK62C,EAAKwjJ,EAAKvjN,EAAKspX,EAAKrpX,EACnCgpB,EAAK82C,EAAK72C,EAAK42C,EAAKyjJ,EAAKtjN,EAAKqpX,EAAKtpX,KA1E3BokiB,EAqFH,SAAOA,EAAc7nd,EAAI0md,GAChC,IAAIoB,EAAYC,EAAgB/nd,EAAI,EAAG6nd,EAAa,IACpDC,EAAYC,EAAgBD,EAAW,EAAGD,EAAa,IAC3CC,EAAAC,EAAgBD,EAAW,EAAGD,EAAa,GAAKnB,EAAW,IACnE,IAQAx1jB,EACA82jB,EATA/wjB,EAAI+oG,EAAG,GACP9oG,EAAI8oG,EAAG,GACP7pF,EAAI6pF,EAAG,GACPtyF,EAAIo6iB,EAAU,GACd7iiB,EAAI6iiB,EAAU,GACdn3iB,EAAIm3iB,EAAU,GACdz5gB,EAAQtgD,KAAKy8B,MAAMtzB,EAAGD,GAAKowL,EAC3BrwL,EAAIjJ,KAAKmjB,KAAKja,EAAIA,EAAIC,EAAIA,GAG1BnJ,KAAKK,IAAI62B,GAAKjuB,GACLgxjB,GAAA/iiB,EAAI,EAAI,IAAY,IAAAopB,EAC3Bn9C,EAAA,IAEJ82jB,EAAUj6jB,KAAK20B,KAAKuC,EAAIjuB,GAAKqwL,EAAWh5I,EACxCn9C,EAAInD,KAAKmjB,KAAKla,EAAIA,EAAIiuB,EAAIA,IAExB,IAAAgjiB,EAAU,IAAMD,EAAU,EAAI35gB,EAC9B65gB,GAAan6jB,KAAKy8B,MAAM7Z,EAAGjD,GAAK3f,KAAKy8B,MAAMrU,EAAGjlB,IAAMm2L,EACpD8gY,GAAap6jB,KAAKy8B,MAAM7Z,EAAGjD,GAAK3f,KAAKy8B,MAAMrU,GAAIjlB,IAAMm2L,EACrD+gY,EAAQC,EAAc3B,EAAW,GAAIA,EAAW,GAAIsB,EAASE,GAC7D1ld,EAAQ6ld,EAAc3B,EAAW,GAAIA,EAAW,GAAIuB,EAASE,GAC7D,OAAAC,GAAS5ld,EAAc,CAACwld,EAASE,EAAWxB,EAAW,IAC/C,CAACuB,EAASE,EAAWzB,EAAW,IAhHV4B,CAAOX,EAAUhB,EAAWD,GACnDpujB,SAASuvjB,EAAa,KAAQvvjB,SAASuvjB,EAAa,KAAQvvjB,SAASuvjB,EAAa,MACtEA,EAAAnB,GAEjBvogB,EAAWnW,OAAO6/gB,GACLnB,EAAAmB,QAXDlB,EAAAj/iB,EAASy2C,EADZqogB,EAAAI,GAcJ3wiB,EAAMS,GAAGnkB,KAAMN,UAqBf6jB,CAAA,CAAEvkB,KAAM,QArBiB,IAiBfukB,EAfPG,EAAMS,GAAGnkB,KAAMN,WAgBtB6yB,KAAWhP,EAAS,CAAEvkB,KAAM,aAhBI,IACpC4T,GAAG,WAAW,WAoBjB,IAAmB2Q,EAnBjB9H,EAAGkK,OAAO3lB,MAAMuU,MAAMi/iB,GACfoB,EAAA/zjB,KAAK6wB,EAAM,OAAQ,MAkBTnO,EAjBPG,EAAMS,GAAGnkB,KAAMN,aAkBlB6yB,KAAkB,CAAEvzB,KAAM,YAjB5ByjX,EAAAnzN,EAAK1jG,EAAYkogB,EAAM,IAC3BlhjB,GAAG,eAAe,WACnB08I,EAAI2kT,QAAO,GACP,IAAA4gH,EAAUjpgB,EAAWnW,SACrB65G,EAAAi5I,SAAS3kL,KAAK,qBAAsB,CACtC,uBAAwBh4D,EAAWj4B,QAAU27H,EAAIska,SACjD,+BAAgCiB,EAAQ,GACxC,+BAAgCA,EAAQ,IACzC,IAgBIp5iB,EAAG0H,OAAOuO,EAAMhO,EAAO,MAEvB,SAAAvO,EAASy2C,EAAYx+B,GACxB,IAAAupgB,EAAY/qe,EAAWp4B,OAAOpG,GAClC,OAAOupgB,GAAa5whB,SAAS4whB,EAAU,KAAO5whB,SAAS4whB,EAAU,KAkGnE,SAAmBA,GACb,IAAAN,EAASM,EAAU,GAAK/N,EACxBrsI,EAAMo6I,EAAU,GAAK/N,EACrB6N,EAASj7hB,KAAK87B,IAAIilX,GACf,MAAA,CACLk6I,EAASj7hB,KAAK87B,IAAI++f,GAClBI,EAASj7hB,KAAK+7B,IAAI8+f,GAClB76hB,KAAK+7B,IAAIglX,IAzG6DngR,CAAUu6Z,GAwEpF,SAASm/B,EAAcE,EAAMC,EAAQC,EAAMC,GACrC,IAAAC,EAAOC,EAASH,EAAOF,GACvBM,EAASD,EAASF,EAASF,GAC/B,OAAOz6jB,KAAKmjB,KAAKy3iB,EAAOA,EAAOE,EAASA,GAE1C,SAASD,EAAS7phB,GACR,OAAAA,EAAQ,IAAM,KAAO,IAAM,IAE5B,SAAAgphB,EAAgBv3H,EAAQ7sY,EAAM5kB,GACrC,IAAI+phB,EAAY/phB,EAAQo8e,EACpB4tC,EAAYv4H,EAAOngc,QACnBk6U,EAAe,IAAT5mR,EAAa,EAAI,EACvBuuE,EAAe,IAATvuE,EAAa,EAAI,EACvBqlgB,EAAOj7jB,KAAK87B,IAAIi/hB,GAChBG,EAAOl7jB,KAAK+7B,IAAIg/hB,GAGb,OAFGC,EAAAx+O,GAAOimH,EAAOjmH,GAAOy+O,EAAOx4H,EAAOt+T,GAAO+2b,EAC1CF,EAAA72b,GAAOs+T,EAAOt+T,GAAO82b,EAAOx4H,EAAOjmH,GAAO0+O,EAC7CF,EAmBA,SAAAp/d,EAAI3yF,EAAG9F,GAEd,IADA,IAAItD,EAAI,EACCxC,EAAI,EAAG2H,EAAIiE,EAAEnL,OAAQT,EAAI2H,IAAK3H,EAAQwC,GAAAoJ,EAAE5L,GAAK8F,EAAE9F,GACjD,OAAAwC,EA1STmd,EAAOjc,QAZE,SAAc+yJ,EAAKupE,GAC1B,IAAIjtK,EAAa0jG,EAAI1jG,WASd,OAPHitK,EAAU89V,UACM9C,EACTh7V,EAAU+9V,WACDnC,EAEAT,GAEG1ka,EAAK1jG,OA8U9BirgB,GAAcl/iB,EAAW,CAC3B,uBAAuBpb,EAASic,GAE9B,IAAIiD,EAAKD,IACL8zI,EAAMskY,KACNwZ,EAAU99Y,EAAI89Y,QACdvB,EAAcv8Y,EAAIu8Y,YAClB0B,EAAgBQ,KAChBpoc,EAAW1E,KACX6gB,EAAMrN,KACNyL,EAAe4B,EAAI5B,aACnBr6B,EAASxC,IACT2hF,EAAU7Q,KACVqoF,EAAKl6B,KACLjvM,EAAQmhH,KACR+4E,EAAO/2B,KACPxF,EAAeF,KAAoBE,aACnC4nB,EAAcH,KACd8qD,EAAawG,KAAqBxG,WAClCpyH,EAAe44H,KAAqB54H,aACpC6rH,EAAgB+M,KAAqB/M,cACrC85U,EAAgBxD,KAChBv0e,EAAY8ub,KACZ+iB,EAAW1C,KACX7X,EAAgBD,KAChBE,EAAkBnD,KAA0BqC,QAChD,SAASuhD,EAAI/if,GACXh0E,KAAKqU,GAAK2/D,EAAK3/D,GACfrU,KAAKuoS,SAAWv0N,EAAKu0N,SACrBvoS,KAAK4sB,UAAYonD,EAAKpnD,UACtB5sB,KAAKgtF,YAAchZ,EAAKgZ,YACxBhtF,KAAKgqR,SAAWh2M,EAAKuW,WACrBvqF,KAAK02gB,aAAe,KACpB12gB,KAAK6iG,SAAW,KAChB7iG,KAAK4rD,WAAa,KAClB5rD,KAAKw2gB,MAAQ,KACbx2gB,KAAKo4N,YAAc,KACnBp4N,KAAK4zjB,SAAW,KAChB5zjB,KAAK2wG,OAAS,KACd3wG,KAAK+zjB,MAAQ,KACb/zjB,KAAKg3jB,eAAgB,EACrBh3jB,KAAKqyI,UAAY,CAAC,EAClBryI,KAAKqlM,OAAS,CAAC,EACfrlM,KAAKi3jB,UAAY,CAAC,EAClBj3jB,KAAKk3jB,UAAY,CAAC,EAClBl3jB,KAAKwtf,WAAa,CAAC,EACnBxtf,KAAKk5V,QAAU,KACfl5V,KAAK+oO,SAAW,KAChB/oO,KAAKm3jB,OAAS,KACdn3jB,KAAKw4V,gBAEP,IAAI50V,EAAQmzjB,EAAI75jB,UA+hBP,SAAAk6jB,EAAalzZ,EAAKC,GACzB,IAAIguW,EAAUpzb,EAAUozb,QACpBklD,EAAOnzZ,EAAI,GAAKiuW,EAChB7tW,EAAOJ,EAAI,GAAKiuW,EAChBmlD,EAAOnzZ,EAAI,GAAKguW,EAChB5tW,EAAOJ,EAAI,GAAKguW,EAChBklD,EAAO,GAAK/yZ,EAAO,IAAWA,GAAA,KAC9B,IAAAizZ,GAASjzZ,EAAO+yZ,GAAQ,EACrB,MAAA,CACLr4jB,KAAM,UACN6oC,YAAa,CAAC,CACZ,CAACwvhB,EAAMC,GACP,CAACD,EAAM9yZ,GACP,CAAC8yZ,EAAOE,EAAOhzZ,GACf,CAAC8yZ,EAAO,EAAIE,EAAOhzZ,GACnB,CAAC8yZ,EAAO,EAAIE,EAAOhzZ,GACnB,CAACD,EAAMC,GACP,CAACD,EAAMgzZ,GACP,CAAChzZ,EAAOizZ,EAAOD,GACf,CAAChzZ,EAAO,EAAIizZ,EAAOD,GACnB,CAAChzZ,EAAO,EAAIizZ,EAAOD,GACnB,CAACD,EAAMC,MAnjBN/7iB,EAAAhf,QAAU,SAAmBy3E,GAC3B,OAAA,IAAI+if,EAAI/if,EACjB,EACApwE,EAAMwuH,KAAO,SAASolc,EAAa5sc,EAAYqla,EAAU96R,GACvD,IAAI9lP,EAAQrP,KACZ,GAAIm1P,EAAe,OAAA9lP,EAAMsb,OAAO6siB,EAAa5sc,GAAY,GACzDv7G,EAAMoojB,aAAeD,EACrBnojB,EAAM2xG,YAAc4J,EAChB,IAAAiuG,EAAYjuG,EAAW5qH,KAAKqU,IAC5BqjjB,EAAc,GACdC,GAAgB,EACX,IAAA,IAAA71iB,KAAKi9D,EAAUm0b,qBACtB,GAAU,UAANpxf,GAAiB+2M,EAAU,OAAS/2M,GAAI,CAC1B61iB,GAAA,EAChB,MAIJ,IADA,IAAIC,GAAkB,EACb/+jB,EAAI,EAAGA,EAAI2+jB,EAAYl+jB,OAAQT,IAAK,CAC3C,IAAIusG,EAAQoyd,EAAY,GAAG,GAAGpyd,MAC9BA,EAAMi+D,KAAOh0J,EACT+1F,EAAM4na,eACQ2qD,GAAA,GAElB,IAAI5te,EAASqb,EAAMrb,OACnB,GAAIA,EAAQ,CACV,IAAIv9C,EAAQu9C,EAAOv9C,MACfu3H,EAAWh6E,EAAOg6E,UAClBv3H,GAAsB,UAAbu3H,GAAqC,aAAbA,KAA2C6zZ,GAAA,IAIpF,GADA53jB,KAAK63jB,iBAAmBD,EACpBD,EAAe,CACb,IAAAG,EAAkBzhD,EAAcE,gBAAgB19S,GAC7B,OAAnBxpN,EAAMwzF,UAAqBi1d,IAAoBzojB,EAAMqngB,eACvDrngB,EAAMqngB,aAAeohD,OACgC,IAAjDl1d,gBAAgBC,SAASxzF,EAAMqngB,eACrBghD,EAAA/9jB,KAAK0V,EAAM0ojB,kBAI7BL,EAAcA,EAAY9yjB,OAAOgshB,EAASZ,kBAAkBwnC,IAC5DvnC,EAASt2hB,KAAK,IAAI+V,SAAQ,SAASC,EAASoK,GAC1CrK,QAAQqI,IAAI2/iB,GAAa3mjB,MAAK,WAC5B1B,EAAMwzF,SAAWD,gBAAgBC,SAASxzF,EAAMqngB,cAC1CrngB,EAAAsb,OAAO6siB,EAAa5sc,GAClBj7G,GAAA,IACP2kH,MAAMv6G,MAEb,EACAnW,EAAMm0jB,cAAgB,WACpB,IAAI1ojB,EAAQrP,KACRg4jB,EAAe3hD,EAAcI,gBAAgBpngB,EAAM29E,YAAa39E,EAAMqngB,cAC1E,OAAO,IAAIhngB,SAAQ,SAASC,EAASoK,GACnC0B,EAAGm6C,KAAKoigB,GAAc,SAAS1mjB,EAAKuxF,GAClC,GAAIvxF,EACE,OAAe,MAAfA,EAAI0xB,OACCjpB,EAAO,IAAI7f,MAAM,CACtB,4CACA89jB,EAAe,IACf,iDACA,oBACAl+jB,KAAK,OAEAigB,EAAO,IAAI7f,MAAM,CACtB,mDACA89jB,GACAl+jB,KAAK,OAGK8oG,gBAAAC,SAASxzF,EAAMqngB,cAAgB7za,EACvClzF,GAAA,GACT,GAEL,EACA/L,EAAM+mB,OAAS,SAAS6siB,EAAa5sc,EAAYuqI,GAC3C,IAAAt8B,EAAYjuG,EAAW5qH,KAAKqU,IAChCrU,KAAKg3jB,eAAgB,EACrB,IAAA,IAASn+jB,EAAI,EAAGA,EAAI2+jB,EAAYl+jB,OAAQT,IAAK,CACvC,IAAAgiH,EAAY28c,EAAY3+jB,GACxBusG,EAAQyV,EAAU,GAAGzV,MACN,eAAfA,EAAMpmG,OACRgB,KAAKg3jB,eAAgB,IAED,IAAlB5xd,EAAMjlB,SAAoBilB,EAAM4O,QAAU,GACtC5O,EAAAzb,QAAQknc,YAAYh2a,EAAW+P,GAGzC,IAAKuqI,EAAQ,CAEX,GADuBn1P,KAAKi4jB,iBAAiBT,EAAa5sc,GACpC,OACjB5qH,KAAKo4N,aAAep4N,KAAKw2gB,QAAU39S,EAAU29S,OAChDx2gB,KAAKk4jB,gBAAgBr/V,GAGzB74N,KAAKw2gB,MAAQ39S,EAAU29S,MAClBx2gB,KAAAm4jB,iBAAiBvtc,EAAYiuG,GAC7B74N,KAAAo4jB,WAAWxtc,EAAYiuG,GACvB74N,KAAAosO,SAASxhH,EAAYiuG,GAC1BxlN,EAAM4+H,4BAA4BjyI,KAAKuoS,SAAUvoS,KAAMw3jB,EAAa3+V,GACpE,IAAIs1D,EAAenuR,KAAKqlM,OAAOwyJ,UAAUlyU,OAAO,iBAChD3lB,KAAKwtf,WAAWpge,MAAQ+gQ,EAAa9nQ,UAAU,UAC/CrmB,KAAKwtf,WAAWjke,KAAO4kQ,EAAa9nQ,UAAU,QAC9CrmB,KAAKk3jB,UAAU/ohB,KAAOggP,EAAa9nQ,UAAU,YAC7C,IAAIgyiB,EAAkBr4jB,KAAKqlM,OAAO+zJ,SAASzzU,OAAO,oBAClD3lB,KAAKk3jB,UAAUoB,WAAaD,EAAgBhyiB,UAAU,QACtDrmB,KAAKu4jB,SACP,EACM30jB,EAAAq0jB,iBAAmB,SAAST,EAAa5sc,GAC7C,IAAIn3G,EAAKzT,KAAKuoS,SACV1vE,EAAYjuG,EAAW5qH,KAAKqU,IAC5BukH,EAAKhO,EAAW+N,MAChBplG,EAASslM,EAAUtlM,OACnBiliB,EAAa3/V,EAAUjtK,WACvBsle,EAAUr4T,EAAUq4T,QACpBE,EAAUv4T,EAAUu4T,QACpBqnC,EAAQvnC,EAAQC,IAChBunC,EAAQtnC,EAAQD,IAChBvle,EAAa5rD,KAAK4rD,WA4UxB,SAAuBitK,GACrB,IAAI2/V,EAAa3/V,EAAUjtK,WACvBgmd,EAAW4mD,EAAWx5jB,KACtB25jB,EAAW55e,EAAU+ub,UAAU8D,GACxB+mD,EAAA,MAAQ72c,EAAIpG,UAAUi9c,GAQjC,IAPA,IACI/sgB,GADS0jG,EAAIqpa,IAAaprB,EAAcorB,MAExC9wB,EAAYhvU,EAAU+/V,aAAoD,IAArCp9jB,KAAK+uD,KAAK,EAAIiugB,EAAWxlhB,UAAkBx3C,KAAKu0B,GAAK8oM,EAAU+9V,WAAa73e,EAAUuyb,YAAYM,GAAY,EAAI,KACvJvgY,EAAU,CAAC,SAAU,SAAU,YAAa,cAC5Cwnb,EAAU,SAASn4iB,GACd,OAAAA,EAAIkrC,EAAa,EAC1B,EACS/yD,EAAI,EAAGA,EAAIw4I,EAAQ/3I,OAAQT,IAAK,CACnC,IAAAkC,EAAIs2I,EAAQx4I,GACa,mBAAlB+yD,EAAW7wD,KACpB6wD,EAAW7wD,GAAK89jB,GA6Bb,OA1BIjtgB,EAAA8le,kBAAoB,SAASztX,GAClC,GAAuB,OAAvBr4G,EAAWq4G,GACN,OAAA,EAET,GAAI4jY,EAAW,CACT,IAAA7wgB,EAAI40B,EAAWnW,SAGnB,OAFYo2f,EAAY5nY,EAAQ,EAAEjtI,EAAE,IAAKA,EAAE,KAC5B6wgB,EAAYrsiB,KAAKu0B,GAAK,GACtB,CAER,OAAA,CAEX,EACA67B,EAAWqiW,QAAU,WACZ,OAAAm/I,IAAUxhf,WAAWA,EAC9B,EACWA,EAAAktgB,UAAY,SAAShkjB,GAC9B,OAAO82C,EAAWqiW,UAAUt9S,OAAO77F,EACrC,EACW82C,EAAAkb,UAAUiY,EAAUjY,WAC3B+xJ,EAAU+/V,cACZhtgB,EAAWwlgB,KAAKoH,EAAWpH,MAAMp+gB,SAASwlhB,EAAWxlhB,UAEnD60f,GACSj8e,EAAAi8e,UAAUA,EAAY9od,EAAUozb,SAEtCvmd,EAxX4BmtgB,CAAclgW,GAC7C/6M,EAAS,CAAC,CACZ86G,EAAGj1G,EAAIi1G,EAAGpsG,EAAI+G,EAAO7uB,EAAE,GACvBk0H,EAAGv5G,EAAIu5G,EAAGx6G,GAAK,EAAImV,EAAO5uB,EAAE,KAC3B,CACDi0H,EAAGj1G,EAAIi1G,EAAGpsG,EAAI+G,EAAO7uB,EAAE,GACvBk0H,EAAGv5G,EAAIu5G,EAAGx6G,GAAK,EAAImV,EAAO5uB,EAAE,MAE1BktB,EAASgnM,EAAUhnM,QAAU,CAAC,EAC9BkxK,EAAWy1X,EAAWz1X,UAAY,CAAC,EACnC2uU,EAAewf,EAAQ7khB,OAAS,GAChCslgB,EAAeyf,EAAQ/khB,OAAS,GACpC,GAAIwsN,EAAUm4T,UAAW,CACjBynC,EAAAzkd,QAAUl2F,EAAO,GAAG,GAAKA,EAAO,GAAG,GACnC46iB,EAAA1kd,QAAUl2F,EAAO,GAAG,GAAKA,EAAO,GAAG,GACnC26iB,EAAApsjB,MAAQ2kK,EAAav9J,EAAIgljB,GACzBC,EAAArsjB,MAAQ2kK,EAAav9J,EAAIiljB,GAC3B,IAAAM,GAAUP,EAAMpsjB,MAAM,GAAKosjB,EAAMpsjB,MAAM,IAAM,EAC7C4sjB,GAAUP,EAAMrsjB,MAAM,GAAKqsjB,EAAMrsjB,MAAM,IAAM,EACjD,GAAIwsN,EAAU89V,UACZ9kiB,EAAS,CAAEqyI,IAAK80Z,EAAQ70Z,IAAK80Z,QAAO,GAC3BpgW,EAAU+9V,WAAY,CAC/B/kiB,EAAS,CAAEqyI,IAAK80Z,EAAQ70Z,IAAK80Z,GAC7Bl2X,EAAW,CAAE7+B,IAAK80Z,EAAQ70Z,IAAK80Z,EAAQpsH,KAAM9pQ,EAAS8pQ,MACtD,IAAI+kE,EAAW4mD,EAAWx5jB,KACtBk6jB,EAAcn6e,EAAUuyb,YAAYM,GAAY,GAAK,IACrDunD,EAAcp6e,EAAUwyb,YAAYK,GAAY,GAAK,GACzDF,EAAe,CAACsnD,EAASE,EAAaF,EAASE,GAC/CvnD,EAAe,CAACsnD,EAASE,EAAaF,EAASE,EAAW,MAE1DtniB,EAAS,CAAEqyI,IAAK80Z,EAAQ70Z,IAAK80Z,GAClBl2X,EAAA,CAAE7+B,IAAK80Z,EAAQ70Z,IAAK4+B,EAAS5+B,IAAK0oS,KAAM9pQ,EAAS8pQ,MAGrDjhZ,EAAA/5B,OAAO,CAACA,EAAOqyI,IAAM6+B,EAAS7+B,IAAKryI,EAAOsyI,IAAM4+B,EAAS5+B,MAAM1uH,OAAO,EAAEstJ,EAAS7+B,KAAM6+B,EAAS5+B,IAAK4+B,EAAS8pQ,OAAOo7F,UAAUuwB,EAAWvwB,WACjJ,IAAAmxB,EAAWhC,EAAa1lD,EAAcC,GAC/B/ld,EAAAg6e,UAAU9nhB,EAAQs7iB,GAC7B,IAAIz6jB,EAAIqB,KAAK2wG,OAAS/kD,EAAWktgB,UAAUM,GACvC/9jB,EAAI2E,KAAK4zjB,SAAWhogB,EAAWj4B,QAC/BtU,EAAIusC,EAAWh4B,YACnB,GAAIilM,EAAUm4T,UAAW,CACnB,IAAAhgc,EAAKplC,EAAWktgB,UAAU1B,EAAaqB,EAAMpsjB,MAAOqsjB,EAAMrsjB,QAC1Dy6H,EAAKtrI,KAAKoH,KACXjE,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAOqyF,EAAG,GAAG,GAAKA,EAAG,GAAG,KACvCryF,EAAE,GAAG,GAAKA,EAAE,GAAG,KAAOqyF,EAAG,GAAG,GAAKA,EAAG,GAAG,KAEtCjrF,SAAS+gI,GACAl7E,EAAAj4B,MAAMmzG,EAAKzrI,GAEtBymH,EAAIxzB,KAAK,8BAAgCtuF,KAAKqU,GAAK,0BACrD,MAEWu3C,EAAAj4B,MAAM6kiB,EAAW7kiB,MAAQt4B,GAElC,IAAA04jB,EAAQ/zjB,KAAK+zjB,MAAQ,EACtBp1jB,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAM,GACrBA,EAAE,GAAG,GAAKA,EAAE,GAAG,IAAM,GAGxB,GADWitD,EAAAh4B,UAAU,CAACvU,EAAE,IAAM00iB,EAAM,GAAK10iB,EAAE,IAAKA,EAAE,IAAM00iB,EAAM,GAAK10iB,EAAE,MAAMiwB,WAAW3wC,GAClFk6N,EAAUwgW,aAAc,CAC1B,IAAIC,EAAW1tgB,EAAW,CAAC/5B,EAAOqyI,IAAKryI,EAAOsyI,MAC1CsgB,EAAK74H,EAAWh4B,YACpBg4B,EAAWh4B,UAAU,CACnB6wJ,EAAG,IAAM60Y,EAAS,GAAK70Y,EAAG,IAC1BA,EAAG,IAAM60Y,EAAS,GAAK70Y,EAAG,MAGhC,EACM7gL,EAAAu0jB,iBAAmB,SAASvtc,EAAYiuG,GAC5C,IAAIxpN,EAAQrP,KACR6iG,EAAWxzF,EAAMwzF,SACjBwiG,EAASh2L,EAAMg2L,OACf4xX,EAAY5njB,EAAM4njB,UACtB,SAASsC,EAAYn+jB,GACZ,MAAM,YAANA,GAAyB,YAANA,EAE5B,SAASo+jB,EAAYp+jB,GACnB,OAAOuT,QAAQowE,EAAU6zb,WAAWx3gB,IAEtC,SAASq+jB,EAAYr+jB,GACnB,OAAOuT,QAAQowE,EAAUyzb,WAAWp3gB,IAEtC,IACIw9R,GADY54R,KAAKg3jB,cAAgBj4e,EAAUk0b,oBAAsBl0b,EAAUsmH,QACrDt6K,QAAO,SAAS3vB,GACxC,OAAOo+jB,EAAYp+jB,IAAMq+jB,EAAYr+jB,GAAKy9N,EAAU,OAASz9N,IAAKm+jB,EAAYn+jB,IAAKy9N,EAAUz9N,GAAGinJ,QAAW,IAEzGvoJ,EAAOuV,EAAMqqjB,UAAUrziB,UAAU,UAAUnnB,KAAK05R,EAAW13R,QAC/DpH,EAAK+wB,OAAO3B,MAAK,SAAS9tB,UACjBiqM,EAAOjqM,UACP67jB,EAAU77jB,GACdqgB,EAAAkK,OAAO3lB,MAAMiiB,QAAO,IAEpBnoB,EAAA8wB,QAAQjB,OAAO,KAAKX,KAAK,SAAS,SAAS5tB,GAC9C,MAAO,SAAWA,CAAA,IACjB8tB,MAAK,SAAS9tB,GACf,IAAIojG,EAAQ6mG,EAAOjqM,GAAKqgB,EAAGkK,OAAO3lB,MACxB,OAAN5E,EACFiU,EAAM8njB,OAAS34d,EAAM70E,OAAO,QAAQpV,MAAM,iBAAkB,OACnDgljB,EAAYn+jB,GACX67jB,EAAA77jB,GAAKojG,EAAM70E,OAAO,QAAQpV,MAAM,OAAQ,QACnC,aAANnZ,EACTojG,EAAM70E,OAAO,KAAKR,QAAQ,mBAAmB,GAC9B,cAAN/tB,EACTojG,EAAM70E,OAAO,KAAKR,QAAQ,gBAAgB,GACjCqwiB,EAAYp+jB,GACrB67jB,EAAU77jB,GAAKojG,EAAM70E,OAAO,QAAQpV,MAAM,OAAQ,QAAQA,MAAM,oBAAqB,GAC5EkljB,EAAYr+jB,KACX67jB,EAAA77jB,GAAKojG,EAAM70E,OAAO,QAAQpV,MAAM,SAAU,QACtD,IAEFza,EAAKmpB,QACAnpB,EAAAovB,MAAK,SAAS9tB,GACb,IAAA2uD,EAAOktgB,EAAU77jB,GACjB+tb,EAAMpqW,EAAUm0b,qBAAqB93gB,GAC/B,UAANA,EACG2uD,EAAAj/B,MAAMi0D,EAAUwzb,WACZinD,EAAYp+jB,IAAMq+jB,EAAYr+jB,GACvC2uD,EAAKj/B,MAAMwrf,EAAgBzza,EAAUA,EAASg2Q,QAAQz9W,KAC7Cm+jB,EAAYn+jB,IAChB2uD,EAAAj/B,MAmQF,SAAckre,EAAUn9R,EAAWjuG,GAC1C,IAIIsiD,EACAysZ,EACAC,EANA1pV,EAAU,KACVppK,EAAY,IACZq0R,EAAWtiI,EAAUm9R,GACrBwb,EAAgBzyb,EAAUyyb,cAAc34S,EAAU29S,OAIrC,YAAbxgB,GACF9oV,EAAMskW,EAAcE,aACpBioD,EAASnoD,EAAcG,aACbioD,EAAA,SAASrye,EAAI4nD,GACd,MAAA,CAAC5nD,EAAI4nD,EACd,GACsB,YAAb6mX,IACT9oV,EAAMskW,EAAcG,aACpBgoD,EAASnoD,EAAcE,aACbkoD,EAAA,SAASrye,EAAI4nD,GACd,MAAA,CAACA,EAAI5nD,EACd,GAEF,IAAI2zF,EAAU,CACZl8K,KAAM,SACNqN,MAAO,CAAC6gK,EAAI,GAAIA,EAAI,GAAKgjE,GACzB5pI,MAAO60P,EAAS70P,MAChBo7C,MAAOy5M,EAASz5M,OAEb6rD,EAAAl2B,WAAW6D,EAAStwD,GACrB,IAAA9f,EAAOyiG,EAAKlvB,UAAUnD,GACrB29C,EAAUghW,UAAyB,YAAb7jE,GACzBlrZ,EAAKnhE,MAIP,IAFA,IAAIzwC,EAAM4xG,EAAKxxG,OACX0+O,EAAS,IAAIh+O,MAAMd,GACdL,EAAI,EAAGA,EAAIK,EAAKL,IAGd,IAFL,IAAAwlB,EAAIysF,EAAKjyG,GAAG6L,EACZypC,EAAO6pM,EAAOn/O,GAAK,GACd8qB,EAAIg2iB,EAAO,GAAIh2iB,EAAIg2iB,EAAO,GAAK7yf,EAAWnjD,GAAKmjD,EACtD34B,EAAKx0C,KAAKigkB,EAAQv7iB,EAAGsF,IAGlB,MAAA,CACL3kB,KAAM,kBACN6oC,YAAamwM,GA9SA8hV,CAAc1+jB,EAAGy9N,EAAWjuG,IAAa/pH,KAAKglF,EAAOlB,OAAQk0I,EAAUz9N,GAAG8mJ,WAAWrhJ,KAAKmkK,EAAQ/N,SAAU4hE,EAAUz9N,GAAGgnJ,SAAUy2E,EAAUz9N,GAAGsqJ,WAEzJ8za,EAAYp+jB,GACd2uD,EAAKlpD,KAAKglF,EAAOlB,OAAQk0I,EAAUswN,EAAM,UAAUtob,KAAKmkK,EAAQ/N,SAAU,GAAI4hE,EAAUswN,EAAM,UACrFswI,EAAYr+jB,IACrB2uD,EAAKlpD,KAAKglF,EAAOxhF,KAAMw0N,EAAUswN,EAAM,SACzC,GAEJ,EACMvlb,EAAAw0jB,WAAa,SAASxtc,EAAYiuG,GACtC,IAAIl6N,EAAIqB,KAAK2wG,OACTopd,GAAelhW,EAAUmhW,YAAc,GAAK,EAC5Cr2iB,EAAIhlB,EAAE,GAAG,GAAKo7jB,EACd16iB,EAAI1gB,EAAE,GAAG,GAAKo7jB,EACdvtiB,EAAI7tB,EAAE,GAAG,GAAKglB,EAAIo2iB,EAClB37iB,EAAIzf,EAAE,GAAG,GAAK0gB,EAAI06iB,EACtB/0Z,EAAQ9O,QAAQl2J,KAAK+oO,SAAUplN,EAAGtE,EAAGmN,EAAGpO,GACxCpe,KAAKm3jB,OAAOt2jB,KAAKmkK,EAAQ9O,QAASvyI,EAAGtE,EAAGmN,EAAGpO,GAAGvd,KAAKglF,EAAOxhF,KAAMw0N,EAAUp5I,SAC1Ez/E,KAAKkoH,MAAM+lD,QAAUtqJ,EACrB3jB,KAAKkoH,MAAMlU,QAAUxnF,EACrBxsB,KAAKmoH,MAAM8lD,QAAU5uJ,EACrBrf,KAAKmoH,MAAMnU,QAAU51F,CACvB,EACMxa,EAAAwoO,SAAW,SAASxhH,EAAYiuG,GACpC,IAAIxpN,EAAQrP,KACRyT,EAAKpE,EAAMk5R,SACX4uR,EAAS9njB,EAAM8njB,OACflkW,EAAWroG,EAAWzrC,SACtB68Q,EAAYpxO,EAAW1rC,UAC3B,IAAI7vE,EAAM26Q,SAAV,CAgBI,IAYAliE,EAAc,CAChBjvH,QAASxpF,EAAM8njB,OAAOp7iB,OACtBtI,KACAurH,SAAU,CACR3qH,GAAIhF,EAAMgF,GACV6zG,MAAO74G,EAAM64G,MACbC,MAAO94G,EAAM84G,MACbu6H,eAnBiB,SAAS/xF,EAAW58G,GACnCA,EAAK6mM,QACMjqF,EAAUtkJ,MAAQ,CAAC,GACzBgD,EAAMgF,IAAM,CACjBmf,EAAO,CAACugB,EAAKwmM,KAAMxmM,EAAK0mM,OACxBjnN,EAAO,CAACugB,EAAKymM,KAAMzmM,EAAK2mM,SAGZ/pF,EAAU2yF,YAAc,CAAC,GAC/Bj0O,EAAMgF,IAAM0/B,EAAK9zB,IAAIuT,EAEjC,GAUEg8H,MAAO,CAACngJ,EAAM64G,OACdunC,MAAO,CAACpgJ,EAAM84G,OACd+pB,QAAS7iI,EAAMgF,GACfwmL,QAAS,SAASlB,GACE,IAAdA,GACFxoE,EAAa19G,KAIF,QAAbw/M,GACKkkW,EAAAp7iB,OAAO89K,YAAc,KAC5Bs9X,EAAOt2jB,KAAKi2jB,EAAcznjB,EAAOwpN,IAC1Bs+V,EAAAvkjB,GAAG,iBAhDZ,WACE,IAAIwlN,EAAc/oN,EAAM+oN,YACpB6hW,EAAY,CAAC,EACjB,IAAA,IAASn4iB,KAAKs2M,EACZ6hW,EAAU5qjB,EAAMgF,GAAK,IAAMyN,GAAKs2M,EAAYt2M,GAErC6jF,EAAA9kG,KAAK,eAAgB4S,EAAIwmjB,GAC/BxmjB,EAAAmwG,KAAK,qBAAsB,SA0CzBnwG,EAAGggG,SAAS4/I,YAAY/jG,KACpB6na,EAAAvkjB,GAAG,aAAc,OAEJ,WAAbqgN,GAAsC,UAAbA,IAC3BkkW,EAAAvkjB,GAAG,QAAS,MACnBk1M,EAAYxtB,OAAS,SAASx/L,EAAGq+L,EAAQC,GACvCmqD,EAAWzoP,EAAGq+L,EAAQC,EAAQ0uB,EAAamL,EAC7C,EACAr6B,EAAYh2E,KAAKklG,IAEZqvW,EAAAvkjB,GAAG,aAAa,WACrB,IAAIqxJ,EAAS50J,EAAMu8C,WAAWp4B,OAAOsuF,EAAIP,0BACzC,IAAK0iD,EACH,OAAO20B,EAAYR,QAAQ3kL,EAAIgI,EAAGiI,OAE9BrU,EAAA64G,MAAMynC,IAAM,WAChB,OAAOsU,EAAO,EAChB,EACM50J,EAAA84G,MAAMwnC,IAAM,WAChB,OAAOsU,EAAO,EAChB,EACAu4E,EAAGn5D,MAAM5vK,EAAIgI,EAAGiI,MAAOrU,EAAMgF,GAAE,IAE1B8ijB,EAAAvkjB,GAAG,YAAY,WAChBa,EAAG2pH,WACKw7D,EAAAR,QAAQ3kL,EAAIgI,EAAGiI,MAAK,IAE3ByziB,EAAAvkjB,GAAG,SAAS,WACA,WAAbqgN,GAAsC,UAAbA,IACvB+oI,EAAU7hW,QAAQ,WAAgB,GACpC6iP,EACEvhO,EAAGiI,MACHjQ,EACA,CAACpE,EAAM64G,OACP,CAAC74G,EAAM84G,OACP94G,EAAMgF,GACNyzM,GAGAk0I,EAAU7hW,QAAQ,UAAe,GAChCqiP,EAAAjwN,MAAM9Y,EAAIgI,EAAGiI,OAEpB,GA5FkB,CAUpB,SAAS8P,EAAOywI,GACP,OAAA50J,EAAMu8C,WAAWp4B,OAAO,CAC7BywI,EAAO,GAAK50J,EAAM64G,MAAM+lD,QACxBhK,EAAO,GAAK50J,EAAM84G,MAAM8lD,UAiF9B,EACArqK,EAAM40V,cAAgB,WACpB,IAAInpV,EAAQrP,KACRyT,EAAKpE,EAAMk5R,SACX39K,EAAan3G,EAAGutG,YAChBgmF,EAAS,OAASp8E,EAAWquC,KAAO5pJ,EAAMgF,GACxChF,EAAA6pV,QAAUtuO,EAAW4/D,OAAO7gK,OAAO,YAAYX,KAAK,KAAMg+K,GAChE33L,EAAM05N,SAAW15N,EAAM6pV,QAAQvvU,OAAO,QACtCta,EAAMqqjB,UAAYj+iB,EAAGkK,OAAOtW,EAAMud,WAAWjD,OAAO,KAAKX,KAAK,QAAS,OAAS3Z,EAAMgF,IAAIxT,KAAKmkK,EAAQnC,WAAYmkC,EAAQvzL,GACrHpE,EAAA20J,QAAU,SAAS3lJ,GACnB,IAAAw6B,EAAKxpC,EAAMu8C,WAAWvtC,GAC1B,OAAOw6B,EAAK,CAACA,EAAG,GAAKxpC,EAAM64G,MAAM+lD,QAASp1H,EAAG,GAAKxpC,EAAM84G,MAAM8lD,SAAW,CAAC,KAAM,KAClF,EACA5+J,EAAM64G,MAAQ,CACZ0P,IAAK,IACLi+B,IAAK,SAASx3I,GACZ,OAAOhP,EAAM20J,QAAQ3lJ,GAAG,KAG5BhP,EAAM84G,MAAQ,CACZyP,IAAK,IACLi+B,IAAK,SAASx3I,GACZ,OAAOhP,EAAM20J,QAAQ3lJ,GAAG,KAG5BhP,EAAMg+f,SAAW,CACfrugB,KAAM,SACNgmJ,aAAc,MACdC,eAAgB,KAEbsoD,EAAAl2B,WAAWhoK,EAAMg+f,SAAUziZ,EAClC,EACMhnH,EAAAs0jB,gBAAkB,SAASr/V,GAC3B,IAOAv8H,EAPAzqE,EAASgnM,EAAUhnM,QAAU,CAAC,EAC9B2miB,EAAa3/V,EAAUjtK,WACvBm3I,EAAWy1X,EAAWz1X,UAAY,CAAC,EACvC/iM,KAAKo4N,YAAc,CACjB44T,UAAWn4T,EAAUm4T,UACrB,mBAAoBwnC,EAAW7kiB,OAIvB2oE,EADNu8H,EAAU89V,UACJ,CACN,aAAc9kiB,EAAOqyI,IACrB,aAAcryI,EAAOsyI,KAEd00D,EAAU+9V,WACX,CACN,0BAA2B7zX,EAAS7+B,IACpC,0BAA2B6+B,EAAS5+B,KAG9B,CACN,aAActyI,EAAOqyI,IACrB,aAAcryI,EAAOsyI,IACrB,0BAA2B4+B,EAAS7+B,KAGpCpiD,EAAArlC,WAAWz8E,KAAKo4N,YAAa97H,EACnC,EACM14F,EAAAqwc,OAAS,SAASimH,GAClBl6jB,KAAK63jB,kBAAoBqC,EAC3Bl6jB,KAAKoyH,KAAKpyH,KAAKy3jB,aAAcz3jB,KAAKghH,YAAa,IAAI,GAEnDhhH,KAAKu4jB,SAET,EACA30jB,EAAM20jB,QAAU,WACd,IAEIz2iB,EAFA8pC,EAAa5rD,KAAK4rD,WAClBy9K,EAASz9K,EAAWqiW,UAExB,SAAS73P,EAAgBh7J,GACnB,IAAA++jB,EAAWvugB,EAAWxwD,EAAE6oK,QACrB,OAAAk2Z,EAAWj6c,EAAai6c,EAAS,GAAIA,EAAS,IAAM,KAE7D,SAASC,EAAeh/jB,GACtB,OAAOwwD,EAAW8le,kBAAkBt2hB,EAAE6oK,QAAU,OAAS,KAEtD,IAAAniJ,KAAK9hB,KAAKi3jB,UACbj3jB,KAAKi3jB,UAAUn1iB,GAAGkH,KAAK,IAAKqgN,GAEzB,IAAAvnN,KAAK9hB,KAAKk3jB,UACbl3jB,KAAKk3jB,UAAUp1iB,GAAGkH,KAAK,KAAK,SAAS5tB,GAC5B,OAAAiuO,EAAOjuO,EAAE08O,QAAO,IAGtB,IAAAh2N,KAAK9hB,KAAKwtf,WACRxtf,KAAAwtf,WAAW1re,GAAGkH,KAAK,UAAWoxiB,GAAgBpxiB,KAAK,YAAaotI,EAEzE,KA0HAika,GAA8B1ijB,EAAW,CAC3C,qCAAqCpb,EAASic,GAE5C,IAAI8qE,EAAaP,IACbqjO,EAAcR,KAAiBr9N,WAC/BmT,EAAOD,KAAsBC,KAC7B3c,EAAY8ub,KACZ5ya,EAAcN,KAAqBM,YACnC0a,EAAiB1J,KACjBqud,EAAe,CACjBjujB,MAAO,CACL4wE,QAAS,aACT6K,MAAO,CACL,CAAE7K,QAAS,UACX,CAAEA,QAAS,YAGfolE,SAAU,CACRplE,QAAS,UACTE,MAAM,GAERmpB,MAAO,CACLrpB,QAAS,SACTE,KAAM,GAERukE,MAAO,CACLzkE,QAAS,UAEXilE,UAAW,CACTjlE,QAAS,QACTE,KAAMmG,EAAWJ,WAEnBwiE,UAAW,CACTzoE,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,GAERilE,SAAU1mD,IAEAljF,EAAOjc,QAAU0+F,EAAY,CACvC1nE,OAAQ6yR,EAAY,CAAEn6S,KAAM,OAAS,CAAA,GACrC+khB,UAAW,CACT/zc,QAAS,aACT/+D,OAAQ,EAAC,EAAO,YAAa,WAC7Bi/D,MAAM,EACNJ,SAAU,QAEZu4W,WAAY,CACVr4W,QAAS,aACT/+D,OAAQ,CAAC,IAAK,IACdi/D,KAAM,IACNsJ,cAAc,GAEhB+vb,MAAO,CACLv5b,QAAS,aACT/+D,OAAQy3F,EAAe52B,EAAUyyb,eACjCr0b,KAAM,SAERvxB,WAAY,CACV5sD,KAAM,CACJi+E,QAAS,aACT/+D,OAAQy3F,EAAe52B,EAAU+ub,YAEnC/qU,SAAU,CACR7+B,IAAK,CACHjnF,QAAS,UAEXknF,IAAK,CACHlnF,QAAS,UAEX4vX,KAAM,CACJ5vX,QAAS,WAGbm0e,KAAM,CACJn0e,QAAS,SACTE,KAAM,GAERnqC,SAAU,CACRiqC,QAAS,SACTr6E,IAAK,MACLu6E,KAAM,GAER8qd,UAAW,CACThrd,QAAS,aACT6K,MAAO,CACL,CAAE7K,QAAS,UACX,CAAEA,QAAS,YAGftpD,MAAO,CACLspD,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,IAGVtrD,OAAQ,CACNqyI,IAAK,CACHjnF,QAAS,UAEXknF,IAAK,CACHlnF,QAAS,WAGbkD,QAAS,CACPlD,QAAS,UACTE,MAAM,GAERo9e,eAAgB,CACdt9e,QAAS,WAEXu9e,eAAgB,CACdv9e,QAAS,QACTE,KAAMmG,EAAWL,aAEnBw3e,eAAgB,CACdx9e,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,GAERu9e,SAAU,CACRz9e,QAAS,UACTE,MAAM,GAERw9e,UAAW,CACT19e,QAAS,QACTE,KAAM4B,EAAUqzb,WAElBwoD,UAAW,CACT39e,QAAS,UACTE,MAAM,GAER09e,WAAY,CACV59e,QAAS,QACTE,KAAM4B,EAAUszb,YAElByoD,UAAW,CACT79e,QAAS,UACTE,MAAM,GAER49e,UAAW,CACT99e,QAAS,QACTE,KAAM4B,EAAUszb,YAElB2oD,WAAY,CACV/9e,QAAS,UACTE,MAAM,GAER89e,WAAY,CACVh+e,QAAS,QACTE,KAAM4B,EAAUszb,YAElB6oD,WAAY,CACVj+e,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,GAERg+e,cAAe,CACbl+e,QAAS,WAEXm+e,aAAc,CACZn+e,QAAS,QACTE,KAAMmG,EAAWL,aAEnBo4e,aAAc,CACZp+e,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,GAERm+e,aAAc,CACZr+e,QAAS,WAEXs+e,aAAc,CACZt+e,QAAS,QACTE,KAAMmG,EAAWL,aAEnBu4e,aAAc,CACZv+e,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,GAERs+e,UAAW,CACTx+e,QAAS,WAEXy+e,WAAY,CACVz+e,QAAS,QACTE,KAAMmG,EAAWL,aAEnB+2e,WAAY,CACV/8e,QAAS,SACTr6E,IAAK,EACLu6E,KAAM,GAERsC,QAAS,CACPxC,QAAS,QACTE,KAAMmG,EAAW7vB,YAEnBy9d,QAASopC,EACTlpC,QAASkpC,GACR,OAAQ,cACLl5e,WAAa,CACjBnE,QAAS,MACTF,SAAU,WAMZ4+e,GAA4BhkjB,EAAW,CACzC,mCAAmCpb,EAASic,GAE1C,IAAIspG,EAAMrN,KACNgpP,EAAwBT,KACxBzqO,EAAiBf,KAAmBe,eACpCxzC,EAAY8ub,KACZrra,EAAmB63d,KACnB38N,EAAY3+Q,EAAU2+Q,UAU1B,SAASk+N,EAAkBC,EAAaC,EAAc1ze,EAAQpU,GAC5D,IACI21D,EADcpX,EAAev+C,EAAK6uD,SAAU,MAAO7uD,EAAK3/D,IAC7B4L,KAAI,SAASZ,GAC1C,OAAOA,EAAE+xB,KAAA,IAEPkkZ,EAAaltW,EAAO,cACpBoub,EAAQpub,EAAO,SACf2ze,EAAch9e,EAAUyyb,cAAcgF,GACtC5E,EAAWxpb,EAAO,kBAAmB2ze,EAAYnqD,UACjDoqD,EAAcF,EAAazC,aAA4B,eAAbznD,EAC1CoqD,IAAqBxlD,EAAAslD,EAAatlD,MAAQ,OAC1C,IAAAqjD,EAAWiC,EAAanF,UAAsB,UAAVngD,EACpCylD,EAAcH,EAAalD,aAA4B,cAAbhnD,EAC1CsqD,EAAUJ,EAAaK,cAAWvqD,EAASz3gB,QAAQ,UAAgC,WAAby3gB,EACtEwqD,EAAYN,EAAalF,aAAe73e,EAAUuyb,YAAYM,GAC9D,IAAwB,IAAxBiqD,EAAY17e,QAAmB,CACjC,IAAIqyL,EAAc1wJ,EAAIplC,WAAW,CAAA,EAAIo/e,EAAanze,WAClD6pL,EAAY+nT,gBAAiB,EAC7B/nT,EAAY2oT,eAAgB,EAC5B3oT,EAAYipT,WAAY,EACxBjpT,EAAYsoT,WAAY,EACxBtoT,EAAYkoT,UAAW,EACvBloT,EAAYooT,WAAY,EACxBpoT,EAAYwoT,YAAa,EACzBxoT,EAAY8oT,cAAe,EACvB9oT,EAAY0+Q,UAAqB1+Q,EAAA0+Q,QAAQ7uY,UAAW,GACpDmwH,EAAY4+Q,UAAqB5+Q,EAAA4+Q,QAAQ/uY,UAAW,GACxDy5a,EAAanze,UAAY6pL,EAI3B,IAFI,IAAAryL,EAAUiI,EAAO,WAEZvvF,EAAI,EAAGA,EAAI6kW,EAAUpkW,OAAQT,IAAK,CACrC,IAEAwjkB,EAFArmE,EAAWt4J,EAAU7kW,GACrB2vJ,EAAY,CAAC,GAAI,IAAI3vJ,GAEzB,GAAIghkB,EACUwC,EAAAN,EAAY/lE,EAAW,aAC9B,CACD,IAAAsmE,EAAYv9e,EAAUi3a,EAAW,QACjCumE,GAASD,EAAU1qD,IAAa0qD,EAAU,MAAQ,EAClDx+R,EAAM11M,EACR,uBAAyB4ta,EAASl0f,OAAO,EAAG,GAC5Ci6jB,EAAYlqD,WAAWh5gB,IAEzBwjkB,EAAY,CAACv+R,EAAMy+R,EAAOz+R,EAAMy+R,GAElC,IAAIlwjB,EAAQ+7E,EAAO4ta,EAAW,SAAUqmE,GACxCj0e,EAAO4ta,EAAW,UACX5ta,EAAA4ta,EAAW,SAAUxtW,GACrBpgE,EAAO4ta,EAAW,cAAc71a,QAAkB,KAEvDiI,EAAO4ta,EAAW,cAClB5ta,EAAO4ta,EAAW,cAClB5ta,EAAO4ta,EAAW,cAEP8lE,EAAA9lE,GAAUm7B,IAAM,CAC3BnyhB,KAAM,SACN44H,IAAKo+X,EAASl4f,MAAM,EAAG,GACvB8xI,cAAejG,EACfgD,SAAU7qB,EAAI/4D,SACdyiH,IAAK1pD,EAAI/4D,SACTqjF,IAAKtqB,EAAI/4D,SACTw5F,WAAW,EACXl2I,MAAOA,EAAMvO,QACbktK,GAAI,EACJr+C,OAAQ,CAAA,GAGR,IAAA6vc,EAAWV,EAAa5qC,QAAQ7khB,MAChCowjB,EAAWX,EAAa1qC,QAAQ/khB,MAChCgrjB,EAAOmF,EAAS,GAChBl4Z,EAAOk4Z,EAAS,GAChBnF,EAAO,GAAK/yZ,EAAO,IAAWA,GAAA,KAC9B,IACAo4Z,EAcAC,EACAC,EAhBAC,GAAaxF,EAAO/yZ,GAAQ,EAEhC,IAAK03Z,EAAa,CAChB,IAAIc,EAAiBjD,EAAWkC,EAAYlqD,WAAa,CAACgrD,EAAW,EAAG,GACxEH,EAAUt0e,EAAO,0BAA2B00e,EAAe,IACpD10e,EAAA,0BAA2B00e,EAAe,IAC1C10e,EAAA,2BAA4B00e,EAAe,IAC3C10e,EAAO,kBAAmByxe,GAAY15e,KAE3CiI,EAAO,kBACPA,EAAO,mBAEFA,EAAO,cAAcjI,QAAkB,MAC7B,cAIf67e,GACcW,GAAA,KACAC,EAAA,OAEhBD,EAAgB9C,EAAWgD,EAAYH,EACvCE,GAAiBH,EAAS,GAAKA,EAAS,IAAM,GAEhDr0e,EAAO,aAAcu0e,GACrBv0e,EAAO,aAAcw0e,GACjBX,IACF7ze,EAAO,mBACPA,EAAO,wBAEL8ze,GAEF9ze,EAAO,uBADiB2ze,EAAY/pD,eAAiB,CAAC,EAAG,KAG3D5pb,EAAO,oBACAA,EAAO,aAAajI,QAAkB,MAC5B,aACViI,EAAO,cAAcjI,QAAkB,MAC7B,aACViI,EAAO,eAAejI,QAAkB,KAE7CiI,EAAO,cACPA,EAAO,eAEFA,EAAO,gBAAiByxe,GAAsB,QAAVrjD,GAAmBr2b,KAE5DiI,EAAO,gBACPA,EAAO,kBAEK,QAAVoub,GAA6B,kBAAVA,GAA4C,KAAflhF,KAClDltW,EAAO,eAAgBjI,GACvBiI,EAAO,gBACPA,EAAO,iBAEJyxe,GACIzxe,EAAO,YAAajI,KAEzBiI,EAAO,cACPA,EAAO,eAGXA,EAAO,WACSA,EAAO,sBAEd0ze,EAAalwgB,WAAWj4B,MAC3BkmiB,UACKiC,EAAajqiB,OAAOqyI,WACpB43Z,EAAajqiB,OAAOsyI,KAClBi4Z,UACFN,EAAajqiB,OAAOqyI,WACpB43Z,EAAajqiB,OAAOsyI,WACpB23Z,EAAalwgB,WAAWm3I,SAAS7+B,WACjC43Z,EAAalwgB,WAAWm3I,SAAS5+B,WACjC23Z,EAAa5qC,QAAQ7khB,aACrByvjB,EAAa1qC,QAAQ/khB,eAErByvjB,EAAajqiB,OAAOqyI,WACpB43Z,EAAajqiB,OAAOsyI,WACpB23Z,EAAalwgB,WAAWm3I,SAAS7+B,MAhK9C1rJ,EAAOjc,QAAU,SAA8BolI,EAAUl4C,EAAWo5C,GAC5C46N,EAAA97N,EAAUl4C,EAAWo5C,EAAU,CACnD7jI,KAAM,MACNupF,WAAYia,EACZ8rD,eAAgBsta,EAChB/4b,WACA5lF,UAAW,KAEf,KAgKA8/gB,GAAepljB,EAAW,CAC5B,yBAAyBpb,EAASic,GAE5B,IAAAi5G,EAAqBD,KAAmBC,mBACxC3rC,EAAe2uB,KAAc3uB,aAC7Bk3e,EAAYnG,KACZv6C,EAAM,MACNn3b,EAAUW,EAAaw2b,GACvB/zb,EAAa,CAAC,EAClBA,EAAW+zb,GAAO,CAChBr/b,QAAS,YACTE,KAAMm/b,EACNv/b,SAAU,QA4CZvkE,EAAOjc,QAAU,CACfysB,KAAMszf,EACNrwgB,KAAMqwgB,EACN/hP,OAAQ+hP,EACRvuZ,QAAS5oC,EACT4lC,UAAW5lC,EACXoD,aACAia,iBAAkB63d,KAClBl3b,qBAAsBw4b,KACtBvpc,KAnDF,SAAiB3+G,GAIf,IAHA,IAAIm3G,EAAan3G,EAAGutG,YAChB0Q,EAAWj+G,EAAGq+G,SACd8mG,EAAShuG,EAAWmF,UAAUusZ,GACzBzjhB,EAAI,EAAGA,EAAI+/N,EAAOt/N,OAAQT,IAAK,CAClC,IAAAokkB,EAAQrkW,EAAO//N,GACf2+jB,EAAc/lc,EAAmBC,EAAU4qZ,EAAK2gD,GAEhD3ta,EADY1kC,EAAWqyc,GACP3tX,SACfhgD,IACHA,EAAM0ta,EAAU,CACd3ojB,GAAI4ojB,EACJ10R,SAAU90R,EACVmZ,UAAWg+F,EAAWi+I,UAAU9sP,OAChCixE,YAAav5E,EAAGggG,SAASzmB,YACzBzC,WAAY92E,EAAGggG,SAASlpB,aAEfqgC,EAAAqyc,GAAO3tX,SAAWhgD,GAE/BA,EAAIl9B,KAAKolc,EAAa5sc,EAAYn3G,EAAG8hH,aAiCvC62G,SAnBF,SAAkB34N,GAGhB,IAFA,IAAIm3G,EAAan3G,EAAGutG,YAChBs4G,EAAa1uG,EAAWmF,UAAUusZ,GAC7BzjhB,EAAI,EAAGA,EAAIygO,EAAWhgO,OAAQT,IAAK,CAC1C,IAAIs5I,EAAgBvnB,EAAW0uG,EAAWzgO,IACzBs5I,EAAcm9D,SACpB88B,SAASxhH,EAAYunB,KAclCvtD,MA/BF,SAAe00C,EAAaH,EAAeE,EAAaJ,GAEtD,IADA,IAAIikc,EAAajkc,EAAclJ,UAAUusZ,IAAQ,GACxCzjhB,EAAI,EAAGA,EAAIqkkB,EAAW5jkB,OAAQT,IAAK,CACtC,IAAAskkB,EAAYD,EAAWrkkB,GACvBukkB,EAASnkc,EAAckkc,GAAW7tX,UACjCn2E,EAAcgkc,IAAgBC,IACjCA,EAAO1D,UAAUz3iB,SACjBm7iB,EAAOlkO,QAAQj3U,gBA8BrBo7iB,GAAqB1ljB,EAAW,CAClC,iCAAiCpb,EAASic,GAExCA,EAAOjc,QAAU,CACfgsF,WAAYwkb,KACZvpa,eAAgB0pa,KAChBvzY,SAAU+0J,KACVxuH,aAAcktW,KACdl/X,KAAMs/X,KACNqjB,YAAaH,KAAiBG,YAC9Bz+Z,KAAMs+Z,KAAiBt+Z,KACvB79G,MAAOg8gB,KACP5vS,cAAeiuC,KAAiBjuC,cAChCpvC,YAAakgV,KACb9gY,UAAWqhY,KACXxoa,aAAcyoa,KACd/sb,WAAY,QACZj5F,KAAM,aACN41F,eAAgBk7d,KAChBr7d,WAAY,CAAC,MAAO,UAAW,aAAc,gBAC7C3gB,KAAM,CAAA,MAMRu8e,GAAsB3ljB,EAAW,CACnC,oBAAoBpb,EAASic,GAE3BA,EAAOjc,QAAU8gkB,QAKjBE,GAAuB5ljB,EAAW,CACpC,sCAAsCpb,EAASic,GAEzC,IAAAkkF,EAAqBP,KAA8BO,mBACnD8ge,EAAkBzwD,KAClBllX,EAAkBhB,KAClB19B,EAAYnpC,IACZiD,EAAcF,IAAsBE,YACpCxG,EAAaT,IAAiBS,WAC9Bghf,EAA4BD,EAAgBzze,OAAO57C,KACvD31B,EAAOjc,QAAUkgF,EACf,CACE80E,UAAW,CACTt0E,QAAS,aACTF,SAAU,QAEZiwb,aAAcwwD,EAAgBxwD,aAC9Bppf,EAAG,CACDq5D,QAAS,aACTF,SAAU,QAEZ+6J,QAASr7J,EAAW,CAAA,EAAI+gf,EAAgB1lV,QAAS,CAAA,GACjDm1R,aAAcuwD,EAAgBvwD,aAC9B1jf,KAAMkzD,EAAW,CAAA,EAAI+gf,EAAgBj0iB,KAAM,CAAA,GAC3Cm9N,UAAWjqK,EAAW,CAAA,EAAI+gf,EAAgB92U,UAAW,CAAA,GACrD38J,OAAQ,CACN57C,KAAM,CACJlY,MAAOwmD,EAAW,GAAIghf,EAA0BxniB,MAAO,CAAEknD,KAAM8F,IAC/D3d,MAAOmX,EAAW,GAAIghf,EAA0Bn4f,MAAO,CAAE6X,KAAM,IAC/DJ,SAAU,QAEZ2D,QAAS,CACPzD,QAAS,SACToB,SAAS,EACTz7E,IAAK,EACL0C,IAAK,EACL63E,KAAM,EACNJ,SAAU,SAEZA,SAAU,QAEZoN,SAAU,CACRJ,OAAQ,CACNrJ,QAAS88e,EAAgBrze,SAASJ,OAAOrJ,QACzC3D,SAAU,QAEZA,SAAU,QAEZqN,WAAY,CACVL,OAAQ,CACNrJ,QAAS88e,EAAgBpze,WAAWL,OAAOrJ,QAC3C3D,SAAU,QAEZA,SAAU,QAEZkE,UAAWxE,EAAW,GAAI0sC,EAAUloC,UAAW,CAC7ClE,SAAU,OACVgB,MAAO,CAAC,WAAY,IAAK,OAAQ,UAEnC4e,cAAeD,IACftc,WAAY3D,EAAW,GAAI0sC,EAAU/oC,WAAY,CAAEjD,MAAM,KAE3D0qE,EAAgB,GAAI,CAClBtI,QAAS,IACTrkD,iBAAkB,aAOtBwie,GAAqB/ljB,EAAW,CAClC,oCAAoCpb,EAASic,GAE3C,IAAIspG,EAAMrN,KACNmiK,EAAqBxqH,KACrB7jE,EAAag1e,KACjB/kjB,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAErD,IAAAo0E,EAAYnpE,EAAO,aACnBxkE,EAAIwkE,EAAO,KACX,GAAEmpE,GAAaA,EAAUj4J,QAAUwoH,EAAI/1C,oBAAoBnoD,IAAMA,EAAEtqB,OAAnE,CAIJkwF,EAASwqB,QAAUx4G,KAAKoH,IAAI2uJ,EAAUj4J,OAAQsqB,EAAEtqB,QAC5C,IACA6zgB,EADAr1R,EAAU1vJ,EAAO,YAEE,iBAAZ0vJ,GAAoC,KAAZA,GAAkBh2H,EAAIn2C,cAAcmsK,MAClDq1R,EAAA,cAGA,eADF/kb,EAAO,eAAgB+kb,IAExC/kb,EAAO,gBAETA,EAAO,QACPA,EAAO,aACPA,EAAO,iBACGA,EAAO,wBACD,qBAChBA,EAAO,kBACYwuL,EAAArtL,EAASC,EAAUr4E,EAAQi3E,EAAQ,CAAEr/D,OAAQ,GAAIw2H,QAAS,MACzEz9B,EAAAh4B,6BAA6BN,EAAUpB,QApBzCoB,EAASrJ,SAAU,CAqBvB,KAKAw9e,GAAiBhmjB,EAAW,CAC9B,gCAAgCpb,EAASic,GAEvC,IAAI82D,EAAYrG,IACZI,EAASD,IAAoBC,OAC7BstP,EAAiB1oK,KACjB09E,EAAmB8uC,KACnBI,EAAgBH,KACpB,SAASgzP,EAAiBrvf,GACjB,OAAAA,GAAkB,iBAANA,EAErB7F,EAAOjc,QAAU,SAAckX,EAAI2xF,GACjC,IAEIuoa,EAFAz0gB,EAAMksG,EAAM4O,QACZ6G,EAAY,IAAI7gH,MAAMd,GAGxBy0gB,EADEvoa,EAAM0yI,QACK,SAASz5N,GACpB,OAAOqvf,EAAiBrvf,IAAMixD,EAAUjxD,EAC1C,EAEaqvf,EAEf,IAAA,IAAS70gB,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CAC5B,IAAI2hH,EAASK,EAAUhiH,GAAK,CAAC,EACzBmzV,EAAM5mP,EAAMmsD,UAAU14J,GACtB+qB,EAAIwhF,EAAMxhF,EAAE/qB,GACZ80gB,EAAW3hL,IAAQ18Q,EAAU1rD,IAC/B42F,EAAOwxO,IAAMA,EACbxxO,EAAO52F,EAAIA,IAEX42F,EAAOwxO,IAAM,KACbxxO,EAAO52F,EAAIylD,GAEbmxC,EAAOppE,MAAQv4C,EASV,OAPP8yO,EAAiB9wH,EAAWzV,GAC5BuxN,EAAeljT,EAAI2xF,EAAO,CACxB0F,KAAM1F,EAAMxhF,EACZupG,aAAc,GACdoyB,QAAS,MAEXs7H,EAAchgK,EAAWzV,GAClByV,CACT,KAKA+id,GAAkBjmjB,EAAW,CAC/B,iCAAiCpb,EAASic,GAExC,IAAIiD,EAAKD,IACLqqE,EAASxC,IACT2hF,EAAU7Q,KACVC,EAAahG,KAIR,SAAAqiY,EAAWh9gB,EAAIonG,GAClB,IAAAzV,EAAQyV,EAAU,GAAGzV,MAErB84W,EADIrjW,EAAU,GAAG+lI,MACRv6N,UAAU,uBACnB0jE,EAASqb,EAAMrb,QAAU,CAAC,EAC1B2wE,EAAa3wE,EAAO57C,MAAQ,CAAC,EAC7BkyG,EAAU+T,EAAWpT,4BAA4B57C,GAChD84W,EAAAh1b,MAAK,SAAS9tB,GACjBqgB,EAAGkK,OAAO3lB,MAAMgpB,KAAK,OAAQq3H,EAAQjlJ,EAAEwoB,IAAI/iB,KAAKglF,EAAOlB,OAAQvpF,EAAEygK,KAAOnB,EAAWzkI,OAAOp1B,KAAKmkK,EAAQ/N,SAAU,GAAI77J,EAAEsgK,KAAOhB,EAAWp1F,OAAS,GAAG/wD,MAAM,UAAWw1E,EAAOrJ,QAAO,IAE9KskF,EAAAhH,mBAAmBkgT,EAAM94W,GAWnC5sF,EAAOjc,QAAU,CACfgY,MAzBO,SAAMd,EAAIonG,GACbA,GAAsB41a,EAAAh9gB,EAAIonG,IAyB9B8lI,cAXO,SAAcltO,EAAIonG,GACrB,IAAAx/G,EAAIw/G,EAAU,GAAG+lI,MACjBx7I,EAAQyV,EAAU,GAAGzV,MACrBA,EAAMpkB,eACRgkF,EAAQhH,mBAAmB3iK,EAAEgrB,UAAU,uBAAwB++E,GAE/Dqrb,EAAWh9gB,EAAIonG,QAWnBgjd,GAAiBlmjB,EAAW,CAC9B,gCAAgCpb,EAASic,GAEvC,IAAIiD,EAAKD,IACLsmG,EAAMrN,KACNm8a,EAAW1C,KACXvX,EAAsBP,KAAyBO,oBAC/CvhW,EAAetE,KAAoBsE,aACnC7gK,EAAQqpjB,KAAkBrpjB,MA2C9BiE,EAAOjc,QAAU,CACfs0hB,YAjCO,SAAYh2a,EAAW+P,GAS9B,IARI,IAAAxlB,EAAQyV,EAAU,GAAGzV,MACrByzH,EAAYjuG,EAAWxlB,EAAMkqD,KAC7BA,EAAMupE,EAAUvpB,SAChB09T,EAAe5na,EAAM4na,aACrB9zgB,EAAMksG,EAAM4O,QACZyha,EAA4B,eAAjBzI,EAAgC4jB,EAASrB,oBAAoB10a,GAAa87Z,EAAoBvxa,EAAOkqD,EAAIzsD,UACpHiub,EAAW,GACXC,EAAW,GACNl4hB,EAAI,EAAGA,EAAIK,EAAKL,IAAK,CACxB,IAAA2hH,EAASK,EAAUhiH,GACnB28gB,EAA2B,eAAjBxI,EAAgCxyZ,EAAOm1a,KAAOiB,EAAS9B,kBAAkB9hB,EAAcxyZ,EAAOwxO,IAAKypL,GACjH,GAAID,EAAS,CACXh7Z,EAAOs9H,QAAU09R,EACVh7Z,EAAAgnN,GAAKg0M,EAAQh1f,WAAWghT,GACxBhnN,EAAAuxK,UAAY6kQ,EAAS1B,iBAAiB1Z,GACzC,IAAAsoD,EAAcltC,EAASN,YAAY9a,GACvCsb,EAASn3hB,KAAKmkkB,EAAY,GAAIA,EAAY,IAC1C/sC,EAASp3hB,KAAKmkkB,EAAY,GAAIA,EAAY,GAAE,MAE5Ctjd,EAAOs9H,QAAU,KAGrB,GAA4B,YAAxBjf,EAAUm4T,WAA4C,eAAjBhkB,EAA+B,CACtE,IAAIikB,EAAcL,EAASN,YAAYM,EAASjC,gBAAgBvpb,IAChE0rb,EAAW,CAACG,EAAY,GAAIA,EAAY,IACxCF,EAAW,CAACE,EAAY,GAAIA,EAAY,IAEtC,IAAAj9c,EAAO,CAAE2hG,QAAQ,GACrBvwE,EAAMmoC,UAAU22B,IAAMkR,EAAayjD,EAAUq4T,QAAQC,IAAKL,EAAU98c,GACpEoxB,EAAMmoC,UAAU42B,IAAMiR,EAAayjD,EAAUu4T,QAAQD,IAAKJ,EAAU/8c,IAIpEo+C,KA5CO,SAAK3+G,EAAI67I,EAAK59B,GACrB,IAAI2mc,EAAkB/oa,EAAI+1C,OAAO+zJ,SAASzzU,OAAO,oBACjDm8F,EAAIhL,gBAAgBuhd,EAAiB3mc,EAAU,oBAAoBxoG,MAAK,SAAS2xF,GAC3E,IACAthE,EADM99B,EAAGkK,OAAO3lB,MACJqmB,UAAU,2BAA2BnnB,KAAK4iH,EAAI/4D,UAC9DxP,EAAM3uB,QAAQjB,OAAO,QAAQR,QAAQ,sBAAsB,GACrDowB,EAAA1uB,OAAO5I,SACb1N,EAAMd,EAAIonG,EAAS,SA2CvBkjd,GAAkBpmjB,EAAW,CAC/B,iCAAiCpb,EAASic,GAExC,IAAI+0L,EAAO/2B,KACPjuF,EAAag1e,KACb39c,EAAWnL,KAAcmL,SAC7BpnG,EAAOjc,QAAU,SAAqB2zJ,EAAW2/C,EAAMC,GACrD,IAGIriG,EAAI50G,EAAG0I,EAAGyiL,EAHVzwE,EAAK28C,EAAU38C,GACfnO,EAAQmO,EAAG,GAAGnO,MACdkqD,EAAMY,EAAUhe,QAEhBjgD,EAAK,CAAC49G,EAAMC,GACZkuX,EAAQ,CAACnuX,EAAO,IAAKC,GACzB,IAAKj3M,EAAI,EAAGA,EAAI06G,EAAGj6G,OAAQT,IAGzB,GADWmrL,GAAA,GADXv2E,EAAK8F,EAAG16G,IAEDkzR,UAAW,CAChB,IAAKxqR,EAAI,EAAGA,EAAIksG,EAAGs+K,UAAUzyR,OAAQiI,IAC/BksG,EAAGs+K,UAAUxqR,GAAG6nB,SAAS6oE,KAC3B+xF,GAAYA,GAEVv2E,EAAGs+K,UAAUxqR,GAAG6nB,SAAS40iB,KAC3Bh6Y,GAAYA,GAGhB,GAAIA,EAAU,MAGd,GAACA,GAAav2E,EASlB,OARAyiD,EAAUl+H,GAAKk+H,EAAUj+H,GAAKi+H,EAAUtyD,GAAGi4D,IAAIpoD,EAAG+zN,IAClDtxK,EAAUh+H,GAAKg+H,EAAU/9H,GAAK+9H,EAAUpyD,GAAG+3D,IAAIpoD,EAAG+zN,IAClDtxK,EAAU9+G,MAAQq8D,EAAGr8D,MACrB8+G,EAAUj6B,SAAWxoB,EAAGu+O,IACxB97L,EAAUtsI,EAAI6pF,EAAG7pF,EACjBssI,EAAUyoD,OAASpL,EAAKn0B,SAAS9pB,EAAI+9W,SAAU/9W,EAAI+9W,SAAS7hW,IAAI/9D,EAAG7pF,GAAI,SAAS2F,KAChF2mI,EAAUvzD,cAAgB8Q,EAAG9Q,cAItB,SAAcuzD,EAAW9qD,EAAOqI,GACvC,IAAIrI,EAAMzI,cAAV,CACI,IAAA1b,EAAYwsB,EAAGjrG,IAAM4iG,EAAMnkB,UAC3B+qQ,EAAM9qV,OAAOusG,EAAGu+O,KAChBxyV,EAAsB,QAAdynF,EAAsBsH,EAAWtH,UAAUlD,MAAQkD,EAAUh0E,MAAM,KAC3EgxjB,GAAoC,IAA1BzkkB,EAAMW,QAAQ,QACxBy3hB,GAA4C,IAA9Bp4hB,EAAMW,QAAQ,YAC5Bi/R,GAA8B,IAAvB5/R,EAAMW,QAAQ,KACrBu0J,GAAoC,IAA1Bl1J,EAAMW,QAAQ,QAExBovB,EAAO,IADa00iB,GAAWrsC,EAGjC1hY,EAAUwtD,aAAesuI,GAErBiyO,IAAmB/ta,EAAAwtD,aAAet4G,EAAMn5F,MACxC2lhB,GAAkBrogB,EAAA5vB,KAAKqyV,IAEzB5yD,GACG7vQ,EAAA5vB,KAAKu2J,EAAUyoD,QAElBjqD,GACO9uC,EAAAnS,EAAIrI,EAAO77E,GAEZ2mI,EAAAytD,UAAYp0L,EAAKzvB,KAAK,OAtBP,EAJXokkB,CAAAhua,EAAW9qD,EAAOqI,GACzB,CAACyiD,EACV,KA8BAiua,GAAuBxmjB,EAAW,CACpC,sCAAsCpb,EAASic,GAE7CA,EAAOjc,QAAU,SAAmB4J,EAAKsnG,EAAIrI,EAAOmO,EAAIg9C,GACtDpqJ,EAAI8vH,SAAWxoB,EAAGwoB,SAClB9vH,EAAIyd,EAAI6pF,EAAG7pF,EACP,IAAAuqH,EAAM56B,EAAGg9C,GAKN,OAJHpiB,EAAIuhZ,KAAOvhZ,EAAIuhZ,IAAIlvgB,aACjBra,EAAAqa,WAAa2tH,EAAIuhZ,IAAIlvgB,YAE3Bra,EAAIq7T,GAAKrzL,EAAIqzL,GACNr7T,CACT,KAKAi4jB,GAAkBzmjB,EAAW,CAC/B,kCAAkCpb,EAASic,GAEzCA,EAAOjc,QAAU,SAAsB8gP,EAAYqzC,GACjD,IAII73R,EAAGohD,EAAIunR,EAAI98T,EAAGC,EAJd4uG,EAAK8pI,EAAW9pI,GAChB3V,EAAKy/I,EAAWn1H,MAChBpqB,EAAKu/I,EAAWl1H,MAChBziG,EAAY,GAEhB,IAAwB,IAApBgrQ,EACF,IAAK73R,EAAI,EAAGA,EAAI06G,EAAGj6G,OAAQT,IACtB06G,EAAA16G,GAAGsxF,SAAW,OAGnB,IAAKtxF,EAAI,EAAGA,EAAI06G,EAAGj6G,OAAQT,KAEzB2oU,GADAvnR,EAAKs5D,EAAG16G,IACA2oU,MAEJ98T,EAAAk5F,EAAGi4D,IAAI2rK,GACP78T,EAAAm5F,EAAG+3D,IAAI2rK,GACP9wC,EAAgBtnQ,SAAS,CAAC1kB,EAAGC,GAAI,KAAM9L,EAAGwkP,IAC5C33N,EAAU/rB,KAAK,CACb42J,YAAa13J,EACbqrK,IAAKs9J,EAAG,GACRr9J,IAAKq9J,EAAG,KAEVvnR,EAAGkwC,SAAW,GAEdlwC,EAAGkwC,SAAW,GAIb,OAAAzkE,CACT,KAKA24iB,GAAqB1mjB,EAAW,CAClC,iCAAiCpb,EAASic,GAExCA,EAAOjc,QAAU,CACfgsF,WAAYg1e,KACZ/5d,eAAgBk6d,KAChB/jc,SAAU2pN,KACVp1M,KAAMyvb,KACN9sC,YAAagtC,KAAiBhtC,YAC9Bz+Z,KAAMyrc,KAAiBzrc,KACvB79G,MAAOqpjB,KAAkBrpjB,MACzBosO,cAAei9U,KAAkBj9U,cACjCpvC,YAAawsX,KACbpta,UAAWwta,KACX30c,aAAc40c,KACdl5d,WAAY,QACZj5F,KAAM,aACN41F,eAAgBk7d,KAChBr7d,WAAY,CAAC,MAAO,YAAa,cACjC3gB,KAAM,CAAA,MAMRu9e,GAAsB3mjB,EAAW,CACnC,oBAAoBpb,EAASic,GAE3BA,EAAOjc,QAAU8hkB,QAKjBE,GAAkB5mjB,EAAW,CAC/B,gCAAgCpb,EAASic,GAEvC,IAAImtF,EAAW1E,KACX6gB,EAAMrN,KACNy6K,EAAgBH,KAmFpB,SAASyvS,EAAUtua,EAAWxrJ,EAAGC,EAAGygG,GAClC,IAAIxH,EAAKsyD,EAAUtyD,GACfE,EAAKoyD,EAAUpyD,GACf8gZ,EAAU1uV,EAAUl9G,SACpB88G,EAAMI,EAAUJ,IAChBz7I,EAAK67I,EAAU9+G,MACf6I,EAAK,CACPs2G,YAAal8I,EACb3P,EAAGA,EAAE2P,GACL1P,EAAGA,EAAE0P,IAEJ4lC,EAAAqJ,GAAKw+D,EAAI/1C,oBAAoBq5B,EAAM77E,MAAQ67E,EAAM77E,KAAKlV,GAAM+wF,EAAM77E,KAClE0wB,EAAA6lE,IAAM9lH,MAAMiF,QAAQmmG,EAAMshJ,WAAathJ,EAAMshJ,UAAUryO,GAAM+wF,EAAMshJ,UACnEzsM,EAAA/6C,KAAOlF,MAAMiF,QAAQmmG,EAAMtkB,YAAcskB,EAAMtkB,WAAWzsE,GAAM+wF,EAAMtkB,WACtE7mC,EAAAmmH,GAAKpmK,MAAMiF,QAAQmmG,EAAMzG,cAAgByG,EAAMzG,aAAatqF,GAAM+wF,EAAMzG,aAC3E,IAAI1f,EAAOmmB,EAAMs4D,SACbz+E,IACChlC,EAAA0zC,GAAKm0B,EAAI/1C,oBAAoBkT,EAAK3/E,MAAQ2/E,EAAK3/E,KAAK+U,GAAM4qE,EAAK3/E,KAC/D26C,EAAA2pC,GAAKk+B,EAAI/1C,oBAAoBkT,EAAKhpD,OAASgpD,EAAKhpD,MAAM5hB,GAAM4qE,EAAKhpD,MACjEgkB,EAAAqmH,GAAKtmK,MAAMiF,QAAQggF,EAAK3B,QAAU2B,EAAK3B,OAAOjpE,GAAM4qE,EAAK3B,OACzDrjC,EAAAsmH,GAAKvmK,MAAMiF,QAAQggF,EAAKtjC,QAAUsjC,EAAKtjC,OAAOtnC,GAAM4qE,EAAKtjC,OACzD1B,EAAAumH,GAAKxmK,MAAMiF,QAAQggF,EAAK1qE,OAAS0qE,EAAK1qE,MAAMF,GAAM4qE,EAAK1qE,MACvD0lC,EAAAwmH,GAAKzmK,MAAMiF,QAAQggF,EAAKxB,SAAWwB,EAAKxB,QAAQppE,GAAM4qE,EAAKxB,SAEhE,IAAIsM,EAASqb,EAAMrb,OACfA,IACC9vC,EAAA6tD,GAAKga,EAAI/1C,oBAAoBge,EAAOzqF,MAAQyqF,EAAOzqF,KAAK+U,GAAM01E,EAAOzqF,KACrE26C,EAAAiwC,GAAK43B,EAAI/1C,oBAAoBge,EAAOrJ,SAAWqJ,EAAOrJ,QAAQrsE,GAAM01E,EAAOrJ,QAC3EzmC,EAAA8gH,GAAKj5C,EAAI/1C,oBAAoBge,EAAO/6B,QAAU+6B,EAAO/6B,OAAO36C,GAAM01E,EAAO/6B,OACzE/U,EAAA6pH,GAAKhiD,EAAI/1C,oBAAoBge,EAAOv9C,OAASu9C,EAAOv9C,MAAMn4B,GAAM01E,EAAOv9C,MACvEyN,EAAA8hH,GAAKj6C,EAAI/1C,oBAAoBge,EAAO9zD,OAAS8zD,EAAO9zD,MAAM5hB,GAAM01E,EAAO9zD,OAExE,IAAAkY,EAAO47C,GAAUA,EAAO57C,KACxBA,IACC8L,EAAA4hH,IAAM7hK,MAAMiF,QAAQkvC,EAAKlY,OAASkY,EAAKlY,MAAM5hB,GAAM85B,EAAKlY,MACxDgkB,EAAAyhH,IAAM55C,EAAI/1C,oBAAoB59B,EAAKm3B,OAASn3B,EAAKm3B,MAAMjxD,GAAM85B,EAAKm3B,OAEnE,IAAA+xX,EAAOttW,GAAUA,EAAO4rE,SACxB0hS,GAAsB,SAAdA,EAAKr4b,OACZi7C,EAAAmiH,IAAMpiK,MAAMiF,QAAQo4b,EAAKr4b,MAAQq4b,EAAKr4b,KAAKqV,GAAMgjb,EAAKr4b,KACtDi7C,EAAAqiH,IAAMtiK,MAAMiF,QAAQo4b,EAAKpha,OAASoha,EAAKpha,MAAM5hB,GAAMgjb,EAAKpha,OAE7D,IAAI0hF,EAAK/Z,EAAGi4D,IAAI57G,EAAGv1C,GAAG,GAClBkzG,EAAK9Z,EAAG+3D,IAAI57G,EAAGt1C,GAAG,GAClB0sF,EAAMp3C,EAAG4gH,KAAO,EAChBr7E,EAAa4lB,EAAM5lB,WACnBA,IACCvlC,EAAAwkhB,IAAMzkkB,MAAMiF,QAAQugF,EAAWC,SAAWD,EAAWC,QAAQprE,GAAMmrE,EAAWC,QAC9ExlC,EAAAykhB,IAAM1kkB,MAAMiF,QAAQugF,EAAWE,aAAeF,EAAWE,YAAYrrE,GAAMmrE,EAAWE,YACzFzlC,EAAG0khB,IAAM78c,EAAI/1C,oBAAoByT,EAAWP,KAAK3/E,MAAQkgF,EAAWP,KAAK3/E,KAAK+U,GAAMmrE,EAAWP,KAAK3/E,KACpG26C,EAAG2khB,IAAM5kkB,MAAMiF,QAAQugF,EAAWP,KAAKhpD,OAASupD,EAAWP,KAAKhpD,MAAM5hB,GAAMmrE,EAAWP,KAAKhpD,MAC5FgkB,EAAG4khB,IAAM7kkB,MAAMiF,QAAQugF,EAAWP,KAAK3B,QAAUkC,EAAWP,KAAK3B,OAAOjpE,GAAMmrE,EAAWP,KAAK3B,OAC3FrjC,EAAA6khB,IAAMh9c,EAAI/1C,oBAAoByT,EAAWI,YAAcJ,EAAWI,WAAWvrE,GAAMmrE,EAAWI,YAEnG,IAAIqB,EAAYmkB,EAAMnkB,UAClBA,IACFhnC,EAAGz3C,GAAKxI,MAAMiF,QAAQgiF,GAAaA,EAAU5sE,GAAM4sE,GAErD,IAAI0b,EAAgByI,EAAMzI,cACtBA,IACF1iD,EAAGk6J,GAAKn6M,MAAMiF,QAAQ09F,GAAiBA,EAActoF,GAAMsoF,GAE7D,IAAIoie,EAAS,CAAC,EACPA,EAAA7ua,EAAU9+G,OAAS6I,EAC1B,IAAI6hO,EAAQ12K,EAAM45d,OACdjjT,EAAQ32K,EAAM65d,OACdrzP,EAAa9pN,EAAIrlC,WAAW,CAAA,EAAIyzE,EAAW,CAC7Cj6H,MAAOi5P,EAAc9pL,EAAOnrD,GAC5BjoB,GAAI2lF,EAAKtmB,EACTp/D,GAAI0lF,EAAKtmB,EACT+/G,UAAW0qE,EAAQA,EAAMznQ,GAAM4lC,EAAGv1C,EAClCwtB,GAAI0lF,EAAKvmB,EACTl/D,GAAIylF,EAAKvmB,EACTggH,UAAW0qE,EAAQA,EAAM1nQ,GAAM4lC,EAAGt1C,EAClC4uG,GAAIwrd,EACJ/rhB,SAAU4rc,EACV3tS,cAAenhD,EACfnzD,cAAe1iD,EAAGk6J,KAOb,OALHl6J,EAAG6lE,IAAgB8rN,EAAAriT,KAAO0wB,EAAG6lE,IACxB7lE,EAAGqJ,GAAesoR,EAAAriT,KAAO0wB,EAAGqJ,GAC5B8hD,EAAM77E,OAAiBqiT,EAAAriT,KAAO67E,EAAM77E,MACzCu4F,EAAAlC,SAAS3lE,EAAImrD,EAAOwmO,GACxBjmO,EAASJ,mBAAmB,YAAa,YAAzCI,CAAsD1rD,EAAImrD,EAAOwmO,GAC1DA,EAETpzT,EAAOjc,QAAU,CACfg1M,YAzKF,SAAqBrhD,EAAW2/C,EAAMC,EAAM1wH,GAC1C,IAUIyB,EAwBA/+D,EAAGo9iB,EAAWC,EAAKC,EAAKvmkB,EAAG62B,EAAIC,EAAIomK,EAAMjmC,EAlCzCv8C,EAAK28C,EAAU38C,GACfy5C,EAAQz5C,EAAG,GAAGl0F,EACd+lF,EAAQmO,EAAG,GAAGnO,MACdxH,EAAKsyD,EAAUtyD,GACfE,EAAKoyD,EAAUpyD,GACfp5F,EAAIsoJ,EAAMtoJ,EACVC,EAAIqoJ,EAAMroJ,EACV2rM,EAAM1yG,EAAGi4D,IAAIg6C,GACbU,EAAMzyG,EAAG+3D,IAAIi6C,GACbkxH,EAAc9wK,EAAUl9G,SAE5B,GAAIg6G,EAAMp/G,KAAM,CACd,IAAI03F,EAAK1nC,EAAG+xD,IAAI2gD,EAAM0wH,GAClBz7L,EAAK3nC,EAAG+xD,IAAI2gD,EAAM0wH,GAClByiB,EAAK3lP,EAAG6xD,IAAI4gD,EAAMywH,GAClB/2C,EAAKnsL,EAAG6xD,IAAI4gD,EAAMywH,GAEpBngP,EADgB,MAAdzB,EACI4tE,EAAMp/G,KAAKvhC,MACf7Q,KAAKoH,IAAI0iI,EAAIC,GACb/pI,KAAKoH,IAAIk7F,EAAGk3E,IAAI,GAAIl3E,EAAGk3E,IAAI,IAC3Bx5K,KAAK8J,IAAIggI,EAAIC,GACb/pI,KAAK8J,IAAIw4F,EAAGk3E,IAAI,GAAIl3E,EAAGk3E,IAAI,KAGvBhoB,EAAMp/G,KAAKvhC,MACf7Q,KAAKoH,IAAI0iI,EAAIC,GACb/pI,KAAKoH,IAAI6gV,EAAIx5D,GACbzuR,KAAK8J,IAAIggI,EAAIC,GACb/pI,KAAK8J,IAAIm+U,EAAIx5D,GAEjB,MAEAppM,EAAMmsE,EAAMnsE,IAGd,IAAI+9Z,EAAU59K,EACd,GAAkB,MAAd5hP,EAAmB,CACjB,IAAAgwM,IAAYhqL,EAAMsiJ,iBAClB2nC,IAAYjqL,EAAMuiJ,iBACtB,IAAK9uP,EAAI,EAAGA,EAAIgoF,EAAIvnF,OAAQT,IAAK,CAI/B,GAFAsmkB,EAAMz6jB,EADNod,EAAI++D,EAAIhoF,IAER62B,EAAKl0B,KAAKK,IAAI+hG,EAAGi4D,IAAIspa,GAAO7uX,GACxB8+E,EAAS,CACX,IAAIp9P,EAAK4rE,EAAGi4D,IAAIzwD,EAAMi6d,SAASv9iB,IAC3BmQ,EAAK2rE,EAAGi4D,IAAIzwD,EAAMk6d,OAAOx9iB,IAC7B4N,EAAK4gL,GAAO90M,KAAKoH,IAAIovB,EAAIC,IAAOq+K,GAAO90M,KAAK8J,IAAI0sB,EAAIC,GAAM,EAAI12B,IAEhE,GAAIm0B,EAAKkvd,EAAS,CAIhB,GAHUA,EAAAlvd,EACV0viB,EAAMz6jB,EAAEmd,GACH6N,EAAAmuE,EAAG+3D,IAAIupa,GAAO7uX,EACf8+E,EAAS,CACX,IAAIn9P,EAAK4rE,EAAG+3D,IAAIzwD,EAAMm6d,SAASz9iB,IAC3BqQ,EAAK2rE,EAAG+3D,IAAIzwD,EAAMo6d,OAAO19iB,IAC7B6N,EAAK4gL,GAAO/0M,KAAKoH,IAAIsvB,EAAIC,IAAOo+K,GAAO/0M,KAAK8J,IAAI4sB,EAAIC,GAAM,EAAI52B,IAEhEu0J,EAAMt0J,KAAKmjB,KAAK+Q,EAAKA,EAAKC,EAAKA,GAC/BuviB,EAAYr+e,EAAIhoF,IAEpB,MAEA,IAAKA,EAAIgoF,EAAIvnF,OAAS,EAAGT,KAAQA,IAE/BsmkB,EAAMz6jB,EADNod,EAAI++D,EAAIhoF,IAERumkB,EAAMz6jB,EAAEmd,GACH4N,EAAAkuE,EAAGi4D,IAAIspa,GAAO7uX,EACd3gL,EAAAmuE,EAAG+3D,IAAIupa,GAAO7uX,GACnBxa,EAAOv6L,KAAKmjB,KAAK+Q,EAAKA,EAAKC,EAAKA,IACrBivd,IACTA,EAAU9uV,EAAMimC,EACJmpY,EAAAp9iB,GAOlB,OAHAouI,EAAU9+G,MAAQ8thB,EAClBhva,EAAUl9G,SAAW4rc,EACrB1uV,EAAUJ,IAAMA,OACE,IAAdova,EAA6B,CAAChva,GAC3B,CAACsua,EAAUtua,EAAWxrJ,EAAGC,EAAGygG,KA0FnCo5d,gBAMFiB,GAAsB9njB,EAAW,CACnC,oCAAoCpb,EAASic,GAG3CA,EAAOjc,QAAU,CACfmjkB,gBAAiB,IACjBC,gBAAiB,IACjBC,YAJgB,GAKhBC,cAAeD,EACfE,OAAQ,OACRC,QAAS,QACTjvE,OAAQ,CACN5E,MAAO,CAAC,GACR90Z,IAAK,CAAC,EAAG,GACTsE,KAAM,CAAC,EAAG,GACVywZ,SAAU,CAAC,EAAG,GACdC,QAAS,CAAC,EAAG,EAAG,EAAG,GACnBC,YAAa,CAAC,EAAG,EAAG,EAAG,QAO3B2zE,GAAuBrojB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5C,IAAI2wG,EAAYnpC,IACZhB,EAAYnC,IACZwqK,EAAoBH,KACpBryH,EAAeuyH,KACfhmG,EAAkBH,KAAiCG,gBACnDyG,EAAkBhB,KAClBlxC,EAAiB1J,KACjBxvB,EAAaT,IAAiBS,WAC9Bwe,EAAcN,KAAqBM,YACnC61Z,EAAS2uE,KAAsB3uE,OAC/BtoQ,EAAmB3zH,EAAa1mF,KAChC0zR,EAAqBhtM,EAAa9qC,OAClC+3O,EAAyBD,EAAmB1zR,KAC5CkvC,EAAQ7kE,EAAOjc,QAAU0+F,EAAY,CACvCv2F,EAAGmwH,EAAanwH,EAChBstB,GAAI6iG,EAAa7iG,GACjBtC,GAAImlG,EAAanlG,GACjB/qB,EAAGkwH,EAAalwH,EAChButB,GAAI2iG,EAAa3iG,GACjBvC,GAAIklG,EAAallG,GACjB23N,QAASzyH,EAAayyH,QACtBC,QAAS1yH,EAAa0yH,QACtBC,SAAU3yH,EAAa2yH,SACvBC,SAAU5yH,EAAa4yH,SACvBC,iBAAkB7yH,EAAa6yH,iBAC/BC,iBAAkB9yH,EAAa8yH,iBAC/BppC,aAAcn9D,EAAgB,KAC9Bo9D,aAAcp9D,EAAgB,KAC9B73H,KAAMsrG,EAAatrG,KACnBm9N,UAAW7xH,EAAa6xH,UACxB/nJ,aAAck2B,EAAal2B,aAC3B++D,SAAU1+E,EAAU,CAClBf,cAAc,EACdH,oBAAoB,EACpBF,gBAAgB,EAChBb,SAAU,OACVC,cAAe,QACfqB,SAAS,EACTjB,uBAAuB,EACvBN,cAAe,CAAC,SAAU,gBAE5Bp4B,KAAM,CACJu4B,QAAS,WACTc,MAAO,CAAC,QAAS,UAAW,QAC5Bb,OAAQ,CAAC,SAEX/uC,KAAM,CACJlY,MAAOuyN,EAAiBvyN,MACxBqvC,MAAOkjL,EAAiBljL,MACxB2I,MAAO,CACLgP,QAAS,aACT/+D,OAAQ,CAAC,SAAU,KAAM,KAAM,MAAO,OACtCi/D,KAAM,SACNJ,SAAU,QAEZ2e,KAAM,CACJze,QAAS,aACT/+D,OAAQy3F,EAAem7Y,GACvB3za,KAAM,UAGV4M,OAAQtN,EAAW,CAAA,EAAIorE,EAAgB,UAAW,CAChD74F,OAAQ6yQ,EAAmB7yQ,OAC3BxiB,MAAOq1R,EAAmBr1R,MAC1BltC,KAAMuiU,EAAmBviU,KACzBwvJ,QAAS+yK,EAAmB/yK,QAC5BE,QAAS6yK,EAAmB7yK,QAC5BE,SAAU2yK,EAAmB3yK,SAC7BxuE,QAASmhP,EAAmBnhP,QAC5Bi5C,SAAUkoM,EAAmBloM,SAC7BxrF,KAAMsuC,EAAW,CAAA,EAAIorE,EAAgB,eAAgB,CACnDviF,MAAOw8P,EAAuBx8P,UAGlC8iL,YAAavzH,EAAauzH,YAC1B/jP,KAAMo4E,EAAW,GAAIo4C,EAAaxwH,KAAM,CAAE84E,KAAM,SAChDmhB,UAAW+oJ,IAEXl9J,SAAU,CACRJ,OAAQ8qC,EAAa1qC,SAASJ,OAC9B2zE,SAAU7oC,EAAa1qC,SAASuzE,UAElCtzE,WAAY,CACVL,OAAQ8qC,EAAazqC,WAAWL,OAChC2zE,SAAU7oC,EAAazqC,WAAWszE,UAEpCh9E,QAASyoC,EAAUzoC,SAClB,OAAQ,UACLrD,EAAA34E,EAAEq4E,SAAWM,EAAM14E,EAAEo4E,SAAWM,EAAMrrD,GAAG+qD,SAAWM,EAAMnrD,GAAG6qD,SAAW,sBAC9EM,EAAMsf,cAAgBk4B,EAAal4B,cACnCtf,EAAMwf,aAAeg4B,EAAah4B,gBAKlCoje,GAAoBtojB,EAAW,CACjC,kCAAkCpb,GAEhC,IAAIwiF,EAAY0gf,KACRljkB,EAAA2jkB,aAAe,SAASlxgB,GACvB,MAAkB,iBAAXA,EAAsB+vB,EAAUghf,QAAQn4iB,KAAKonC,GAAUA,EAAS,IAAM,GACtF,EACQzyD,EAAA4jkB,YAAc,SAASnxgB,GACtB,MAAkB,iBAAXA,EAAsB+vB,EAAU+gf,OAAOl4iB,KAAKonC,GAAUA,EAAS,GAC/E,KAKAoxgB,GAAqBzojB,EAAW,CAClC,mCAAmCpb,EAASic,GAE1C,IAAIspG,EAAMrN,KACN9O,EAAW1E,KACXotD,EAAU4xa,KACV13e,EAAay3e,KACbjhf,EAAY6nK,KACZtyF,EAAW9F,KACXupH,EAAmBrC,KACnBsC,EAAuBnC,KACvBqC,EAAuBvB,KACvBwB,EAAqBjB,KACrBoB,EAA0BhB,KAC1Be,EAAqBhB,KACzB7+P,EAAOjc,QAAU,SAAwBgtF,EAASC,EAAU+3C,EAAcpwH,GAC/D,SAAAi3E,EAAOp/D,EAAMm0D,GACpB,OAAO2kC,EAAI15B,OAAOmB,EAASC,EAAUjB,EAAYv/D,EAAMm0D,GAErD,IAAAu1I,IAASnpI,EAAQQ,QAASskE,EAAQ6xa,aAAa32e,EAAQQ,OAAO/6B,QAC9D2/F,EAAW2F,EAAS3F,SAASplE,GAC7BrwF,EAAM6+Q,EAAiBxuL,EAASC,EAAUr4E,EAAQi3E,GACtD,GAAKlvF,EAAL,CAIqB8+Q,EAAAzuL,EAASC,EAAUr4E,EAAQi3E,GAChDA,EAAO,gBACPA,EAAO,gBACP,IAAIowL,EAAct/Q,EAAM6lF,EAAU8nK,cAAgB,gBAAkB,QACpEz+J,EAAO,QACPA,EAAO,aACPA,EAAO,iBACPA,EAAO,OAAQowL,GACXlkH,EAAS7F,WAAWjlE,KACD0uL,EAAA3uL,EAASC,EAAU+3C,EAAcpwH,EAAQi3E,EAAQ,CAAE0uL,YAAY,EAAMC,YAAY,IACtG3uL,EAAO,oBAAqBsqI,GAAU/jE,EAAW,EAAI,IAEnD2F,EAAS1b,SAASpvD,KACpBpB,EAAO,eACP+vL,EAAmB5uL,EAASC,EAAU+3C,EAAcpwH,EAAQi3E,GAC5DA,EAAO,eAELksE,EAAS5F,QAAQllE,KACnBpB,EAAO,gBACYiwL,EAAA9uL,EAASC,EAAUr4E,EAAQi3E,EAAQ,CACpDnK,cAAc,EACdH,oBAAoB,EACpBF,gBAAgB,KAGpB,IAAIw9E,GAAa5xE,EAASr7C,MAAQ,CAAI,GAAAlY,MAClCkzD,GAAeK,EAASO,QAAU,CAAI,GAAA9zD,MAC1CmyD,EAAO,QACe,SAAlBoB,EAASnlF,MACai0Q,EAAA/uL,EAASC,EAAU+3C,EAAcn5C,GAE3D,IAAIswL,EAA0B/yK,EAASJ,mBAAmB,YAAa,kBAC/CmzK,EAAAnvL,EAASC,EAAU4xE,GAAajyE,GAAeo4C,EAAc,CAAEnwE,KAAM,MACrEsnN,EAAAnvL,EAASC,EAAU4xE,GAAajyE,GAAeo4C,EAAc,CAAEnwE,KAAM,IAAKf,QAAS,MACvGyxD,EAAAh4B,6BAA6BN,EAAUpB,QArCzCoB,EAASrJ,SAAU,CAsCvB,KAKAkgf,GAAyB1ojB,EAAW,CACtC,wCAAwCpb,EAASic,GAE/C,IAAI8njB,EAAsB3xS,KAC1Bn2Q,EAAOjc,QAAU,SAAsB4xI,EAAK/oC,EAAOwlB,GACjD,IAAI/xH,EAAIs1I,EAAIt1I,EAGL,MAFD,MAAOs1I,MAAUzpI,EAAI0gG,EAAM4hH,GAAGnuN,IAC9B,MAAOs1I,MAAUxpI,EAAIygG,EAAM6hH,GAAGpuN,IAC7BynkB,EAAoBnyb,EAAK/oC,EAAOwlB,EACzC,KAKA21c,GAAwB5ojB,EAAW,CACrC,qDAAqDpb,EAASic,GAE5D,SAASgoZ,EAAG/7Z,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GAEtB,IADA,IAAIvlB,EAAIulB,EAAI,EACLuF,GAAKvF,GAAG,CACb,IAAIrjB,EAAI4oB,EAAIvF,IAAM,EAAG1Z,EAAID,EAAE1J,SACb,IAANY,EAAeA,EAAE+I,EAAGC,GAAKD,EAAIC,IAC5B,GACH9L,EAAAkC,EACJqjB,EAAIrjB,EAAI,GAER4oB,EAAI5oB,EAAI,EAGL,OAAAlC,EAET,SAASoiJ,EAAGx2I,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GAEtB,IADA,IAAIvlB,EAAIulB,EAAI,EACLuF,GAAKvF,GAAG,CACb,IAAIrjB,EAAI4oB,EAAIvF,IAAM,EAAG1Z,EAAID,EAAE1J,SACb,IAANY,EAAeA,EAAE+I,EAAGC,GAAKD,EAAIC,GAC7B,GACF9L,EAAAkC,EACJqjB,EAAIrjB,EAAI,GAER4oB,EAAI5oB,EAAI,EAGL,OAAAlC,EAET,SAASmiJ,EAAGv2I,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GAEtB,IADA,IAAIvlB,EAAI8qB,EAAI,EACLA,GAAKvF,GAAG,CACb,IAAIrjB,EAAI4oB,EAAIvF,IAAM,EAAG1Z,EAAID,EAAE1J,SACb,IAANY,EAAeA,EAAE+I,EAAGC,GAAKD,EAAIC,GAC7B,GACF9L,EAAAkC,EACJ4oB,EAAI5oB,EAAI,GAERqjB,EAAIrjB,EAAI,EAGL,OAAAlC,EAET,SAAS4na,EAAGh8Z,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GAEtB,IADA,IAAIvlB,EAAI8qB,EAAI,EACLA,GAAKvF,GAAG,CACb,IAAIrjB,EAAI4oB,EAAIvF,IAAM,EAAG1Z,EAAID,EAAE1J,SACb,IAANY,EAAeA,EAAE+I,EAAGC,GAAKD,EAAIC,IAC5B,GACH9L,EAAAkC,EACJ4oB,EAAI5oB,EAAI,GAERqjB,EAAIrjB,EAAI,EAGL,OAAAlC,EAET,SAAS6na,EAAGj8Z,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GACtB,KAAOuF,GAAKvF,GAAG,CACb,IAAIrjB,EAAI4oB,EAAIvF,IAAM,EAAG1Z,EAAID,EAAE1J,GACvB0U,OAAU,IAAN9T,EAAeA,EAAE+I,EAAGC,GAAKD,EAAIC,EACrC,GAAU,IAAN8K,EACK,OAAA1U,EAEL0U,GAAK,EACPkU,EAAI5oB,EAAI,EAERqjB,EAAIrjB,EAAI,EAGL,OAAA,EAET,SAASwjR,EAAK95Q,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,EAAGjD,GACvB,MAAa,mBAANxf,EACFwf,EAAE1W,EAAGE,EAAGhJ,OAAS,IAANgoB,EAAe,EAAQ,EAAJA,OAAa,IAANvF,EAAe3Z,EAAEnL,OAAS,EAAQ,EAAJ8kB,GAErEjD,EAAE1W,EAAGE,OAAG,OAAc,IAANhJ,EAAe,EAAQ,EAAJA,OAAa,IAANgoB,EAAelf,EAAEnL,OAAS,EAAQ,EAAJqqB,GAEjFnL,EAAOjc,QAAU,CACfika,GAAI,SAAS/7Z,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GACvB,OAAOmgQ,EAAK95Q,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,EAAGoiZ,EAC7B,EACAvlR,GAAI,SAASx2I,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GACvB,OAAOmgQ,EAAK95Q,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,EAAG68H,EAC7B,EACAD,GAAI,SAASv2I,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GACvB,OAAOmgQ,EAAK95Q,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,EAAG48H,EAC7B,EACAylR,GAAI,SAASh8Z,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GACvB,OAAOmgQ,EAAK95Q,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,EAAGqiZ,EAC7B,EACAC,GAAI,SAASj8Z,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,GACvB,OAAOmgQ,EAAK95Q,EAAGE,EAAGhJ,EAAGgoB,EAAGvF,EAAGsiZ,QAO/B8/J,GAAwB7ojB,EAAW,CACrC,sCAAsCpb,EAASic,GAE7CA,EAAOjc,QAAU,SAAc4Q,EAAKiC,EAAOqxjB,GACrC,IAAa5sjB,EAAMhb,EAAnBgW,EAAS,GAET,GADiB,iBAAVO,IAAoBA,EAAQsxjB,EAAOtxjB,IAC1CpV,MAAMiF,QAAQmQ,GAAQ,CACxB,IAAIvM,EAAM,CAAC,EACX,IAAKhK,EAAI,EAAGA,EAAIuW,EAAM9V,OAAQT,IACxBgK,EAAAuM,EAAMvW,KAAM,EAEVuW,EAAAvM,EAEV,IAAKgR,KAAQzE,EACXA,EAAMyE,GAAQ6sjB,EAAOtxjB,EAAMyE,IAE7B,IAAI8sjB,EAAW,CAAC,EAChB,IAAK9sjB,KAAQzE,EAAO,CACd,IAAAwxjB,EAAUxxjB,EAAMyE,GAChB,GAAA7Z,MAAMiF,QAAQ2hkB,GAChB,IAAK/nkB,EAAI,EAAGA,EAAI+nkB,EAAQtnkB,OAAQT,IAAK,CAC/B,IAAA82W,EAAQixN,EAAQ/nkB,GAIpB,GAHI4nkB,IACFE,EAAShxN,IAAS,GAEhBA,KAASxiW,EAAK,CAEhB,GADO0B,EAAAgF,GAAQ1G,EAAIwiW,GACf8wN,EACF,IAAA,IAASl/jB,EAAI1I,EAAG0I,EAAIq/jB,EAAQtnkB,OAAQiI,IACzBo/jB,EAAAC,EAAQr/jB,KAAM,EAG3B,YAGKsS,KAAQ1G,IACbiC,EAAMyE,KACDhF,EAAAgF,GAAQ1G,EAAI0G,IAEjB4sjB,IACFE,EAAS9sjB,IAAQ,IAIvB,GAAI4sjB,EACF,IAAK5sjB,KAAQ1G,EACPwzjB,EAAS9sjB,KACNhF,EAAAgF,GAAQ1G,EAAI0G,IAGhB,OAAAhF,CACT,EACA,IAAI6zc,EAAQ,CAAC,EACb,SAASg+G,EAAOvjkB,GACd,OAAIuld,EAAMvld,GAAauld,EAAMvld,IACV,iBAARA,IACTA,EAAMuld,EAAMvld,GAAOA,EAAI8P,MAAM,gBAExB9P,OAMT0jkB,GAAqBlpjB,EAAW,CAClC,mCAAmCpb,EAASic,GAE1C,IAAImxP,EAAO62T,KACXhojB,EAAOjc,QACP,SAAmBY,GACb,IAAAixB,EA0DG,OAzDH1uB,UAAUpG,OAAS,IACf6D,EAAAuC,WAEW,iBAARvC,EACTA,EAAMA,EAAI8P,MAAM,MAAMgT,IAAI2Y,YACF,iBAARz7B,IAChBA,EAAM,CAACA,IAELA,EAAI7D,QAA4B,iBAAX6D,EAAI,GAElBixB,EADU,IAAfjxB,EAAI7D,OACC,CACLgsE,MAAOnoE,EAAI,GACX6gG,OAAQ7gG,EAAI,GACZuH,EAAG,EACHC,EAAG,GAEmB,IAAfxH,EAAI7D,OACN,CACLgsE,MAAOnoE,EAAI,GACX6gG,OAAQ7gG,EAAI,GACZuH,EAAG,EACHC,EAAG,GAGE,CACLD,EAAGvH,EAAI,GACPwH,EAAGxH,EAAI,GACPmoE,MAAOnoE,EAAI,GAAKA,EAAI,IAAM,EAC1B6gG,OAAQ7gG,EAAI,GAAKA,EAAI,IAAM,GAGtBA,IASFixB,EAAA,CACL1pB,GATFvH,EAAMwsQ,EAAKxsQ,EAAK,CACdsgB,KAAM,gBACNgQ,IAAK,cACL63C,MAAO,kBACP04B,OAAQ,mBACR3/C,OAAQ,kBACR1gC,MAAO,mBAGAF,MAAQ,EACf9Y,EAAGxH,EAAIswB,KAAO,GAEC,MAAbtwB,EAAImoE,MACFnoE,EAAIwgB,MAAOyQ,EAAKk3C,MAAQnoE,EAAIwgB,MAAQyQ,EAAK1pB,IACnC4gE,MAAQ,EAElBl3C,EAAKk3C,MAAQnoE,EAAImoE,MAED,MAAdnoE,EAAI6gG,OACF7gG,EAAIkhD,OAAQjwB,EAAK4vE,OAAS7gG,EAAIkhD,OAASjwB,EAAKzpB,IACtCq5F,OAAS,EAEnB5vE,EAAK4vE,OAAS7gG,EAAI6gG,QAGf5vE,MAMT0yiB,GAAuBnpjB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5CA,EAAOjc,QACE,SAAUzD,EAAKsuR,GACtB,IAAKtuR,GAAqB,MAAdA,EAAIQ,OAAgB,MAAMY,MAAM,+BACrBktR,EAAZ,MAAPA,EAAmB,EACZ5rR,KAAKO,MAAMqrR,GAEtB,IADI,IAAAz2K,EAAS32G,MAAY,EAANotR,GACV1sR,EAAS,EAAGA,EAAS0sR,EAAK1sR,IAAU,CAEpC,IADP,IAAI4K,GAAM,IAAW1C,EAAMrH,IAAU1C,EAAI6B,EAAQipB,EAAI7qB,EAAIQ,OAClDT,EAAI8qB,EAAG9qB,GAAKuuR,EACbtuR,EAAID,GAAKyM,IAAKA,EAAMxM,EAAID,IACxBC,EAAID,GAAK+J,IAAKA,EAAM9J,EAAID,IAE9B83G,EAAOj2G,GAAUkI,EACV+tG,EAAAy2K,EAAM1sR,GAAU4K,EAElB,OAAAqrG,MAMTowd,GAAkBppjB,EAAW,CAC/B,gCAAgCpb,EAASic,GACvCA,EAAOjc,QAAU,WACf,IAAA,IAAS1D,EAAI,EAAGA,EAAI6G,UAAUpG,OAAQT,IACpC,QAAqB,IAAjB6G,UAAU7G,GAAe,OAAO6G,UAAU7G,EAElD,KAKAmokB,GAA8BrpjB,EAAW,CAC3C,4CAA4Cpb,EAASic,GACnD,IAAIw1D,EAAQ28a,KACZnye,EAAOjc,QACE,SAAkB2C,EAAM3E,EAAQG,GACvC,IAAKwE,EAAY,MAAA,IAAI7B,UAAU,wCAE/B,GADS3C,EAAiB,IAAfA,GAAU,GACjBV,MAAMiF,QAAQC,IAAUA,EAAK,IAA4B,iBAAfA,EAAK,GAAG,GAAkB,CAClE,IAEArG,EAAG0I,EAAGugB,EAAG6B,EAFTyjQ,EAAMloR,EAAK,GAAG5F,OACdA,EAAS4F,EAAK5F,OAAS8tR,EAEtB7sR,GAA4B,iBAAXA,IACpBA,EAAS,IAAKyzE,EAAMzzE,GAAU,WAArB,CAAiCjB,EAASoB,IAEjD,IAAAumkB,EAAY1mkB,EAAOjB,OAASoB,EAChC,GAAIpB,IAAW2nkB,EACP,MAAA,IAAI/mkB,MAAM,iBAAmBZ,EAAS,KAAO8tR,EAAM,IAAMloR,EAAK5F,OAAS,uCAAyC2nkB,GAExH,IAAKpokB,EAAI,EAAGipB,EAAIpnB,EAAQ7B,EAAIqG,EAAK5F,OAAQT,IACvC,IAAK0I,EAAI,EAAGA,EAAI6lR,EAAK7lR,IACnBhH,EAAOunB,KAAsB,OAAf5iB,EAAKrG,GAAG0I,GAAcjG,IAAM4D,EAAKrG,GAAG0I,EAEtD,MAEA,GAAKhH,GAA4B,iBAAXA,EAgBbA,EAAAwK,IAAI7F,EAAMxE,OAhBwB,CACrC,IAAAwmkB,EAAOlzf,EAAMzzE,GAAU,WAC3B,GAAIP,MAAMiF,QAAQC,IAAoB,UAAX3E,EAEpB,IAAA1B,EAAI,EAAGipB,EAAIpnB,EAAQipB,GADxBppB,EAAS,IAAI2mkB,EAAKhikB,EAAK5F,OAASoB,IACGpB,OAAQwoB,EAAI6B,EAAG7B,IAAKjpB,IAC9C0B,EAAAunB,GAAiB,OAAZ5iB,EAAKrG,GAAcyC,IAAM4D,EAAKrG,QAG7B,IAAX6B,EACOH,EAAA,IAAI2mkB,EAAKhikB,IAElB3E,EAAS,IAAI2mkB,EAAKhikB,EAAK5F,OAASoB,IACzBqK,IAAI7F,EAAMxE,EAErB,CAKG,OAAAH,MAMT4mkB,GAAiBxpjB,EAAW,CAC9B,+BAA+Bpb,EAASic,GAE/B+C,EAAAhf,QAAU,SAASmI,GACxB,IAAI1F,SAAc0F,EAClB,OAAa,OAANA,IAAwB,WAAT1F,GAA8B,aAATA,EAC7C,KAKAoikB,GAAoBzpjB,EAAW,CACjC,kCAAkCpb,EAASic,GAEzCA,EAAOjc,QAAUf,KAAKwla,MAAQ,SAASt8Z,GACrC,OAAOlJ,KAAKQ,IAAI0I,GAAKlJ,KAAK6lkB,KAC5B,KAKAC,GAAe3pjB,EAAW,CAC5B,6CAA6Cpb,EAASic,GAEpD,IAAI49G,EAASmqc,KACT16gB,EAAQ6kc,KACRt8d,EAAOyyiB,KACP/H,EAAYgI,KACZn3T,EAAO62T,KACP30gB,EAAUk1gB,KACVQ,EAAUP,KACVQ,EAAQL,KACRnzf,EAAQ28a,KACR3pF,EAAOogK,KAuMF,SAAA74Y,EAAU5xE,EAAKhG,GACtB,IAAK8wd,EAAKC,EAAKC,EAAKC,GAAOjxd,EACvBitG,EAAS,GAAK+jX,EAAMF,GACpB5jX,EAAS,GAAK+jX,EAAMF,GACpB7yjB,EAAS,IAAI7U,MAAM28G,EAAIr9G,QAClB,IAAA,IAAAT,EAAI,EAAG2H,EAAIm2G,EAAIr9G,OAAS,EAAGT,EAAI2H,EAAG3H,IAClCgW,EAAA,EAAIhW,GAAKgtD,GAAO8wD,EAAI,EAAI99G,GAAK4okB,GAAO7jX,EAAQ,EAAG,GACtD/uM,EAAO,EAAIhW,EAAI,GAAKgtD,GAAO8wD,EAAI,EAAI99G,EAAI,GAAK6okB,GAAO7jX,EAAQ,EAAG,GAEzD,OAAAhvM,EA9MT2J,EAAOjc,QAAU,SAAiBslkB,EAAW1lb,GACtCA,IAASA,EAAU,CAAC,GACb0lb,EAAAN,EAAQM,EAAW,WAC/B1lb,EAAUwtH,EAAKxtH,EAAS,CACtBxrC,OAAQ,+BACRi/S,SAAU,yDACV5hV,MAAO,iDAKT,IAAI4hV,EAAW/jW,EAAQswF,EAAQyzQ,SAAU,KACrCj/S,EAAS9kD,EAAQswF,EAAQxrC,OAAQmod,EAAU+I,EAAW,IACtDlxd,EAAO,KAAOA,EAAO,MAAW,KAChCA,EAAO,KAAOA,EAAO,MAAW,KAChC,IAEA9vB,EAFA/5C,EAASyhJ,EAAUs5Y,EAAWlxd,GAC9BnwG,EAAIqhkB,EAAUvokB,SAAW,EAExB6iJ,EAAQnuE,QAAOmuE,EAAQnuE,MAAQ,SACP,iBAAlBmuE,EAAQnuE,MACjB6S,EAAM,IAAK7S,EAAMmuE,EAAQnuE,OAAnB,CAA2BxtE,GACxB27I,EAAQnuE,QACjB6S,EAAMs7D,EAAQnuE,MACVh0E,MAAMiF,QAAQ4hF,OAAUvnF,OAASkH,IAEvC,IAAA,IAAS3H,EAAI,EAAGA,EAAI2H,IAAK3H,EACvBgoF,EAAIhoF,GAAKA,EAEX,IAAI88a,EAAS,GACTmsJ,EAAY,GACZj9iB,EAAS,GACTk5B,EAAU,IAiBd,SAASv/B,EAAK9Z,EAAGC,EAAGo9jB,EAAMC,EAAMjnf,EAAO/wD,GACjC,IAACg4iB,EAAK1okB,OAAe,OAAA,KACzB,IAAI2okB,EAAatsJ,EAAO56V,KAAW46V,EAAO56V,GAAS,IAC/Cmnf,EAAcr9iB,EAAOk2D,KAAWl2D,EAAOk2D,GAAS,IAChDonf,EAAWL,EAAU/mf,KAAW+mf,EAAU/mf,GAAS,IACnDqnf,EAAUH,EAAW3okB,OAErB,KADJyhF,EACY60U,GAAY5lY,EAxDT,WAwDgC,CAC7C,IAAA,IAASnxB,EAAI,EAAGA,EAAImpkB,EAAK1okB,OAAQT,IACpBopkB,EAAAtokB,KAAKqokB,EAAKnpkB,IACrBqpkB,EAAYvokB,KAAKqwB,GACjBm4iB,EAASxokB,KAAK,KAAM,KAAM,KAAM,MAE3B,OAAAyokB,EAIL,GAFOH,EAAAtokB,KAAKqokB,EAAK,IACrBE,EAAYvokB,KAAKqwB,GACbg4iB,EAAK1okB,QAAU,EAEV,OADP6okB,EAASxokB,KAAK,KAAM,KAAM,KAAM,MACzByokB,EAET,IAAIpxiB,EAAY,GAAP+wiB,EACLpsiB,EAAKjxB,EAAIssB,EAAI4E,EAAKjxB,EAAIqsB,EACtBqxiB,EAAO,GAAIC,EAAO,GAAIC,EAAO,GAAIC,EAAO,GAC5C,IAAA,IAAS3pkB,EAAI,EAAG8qB,EAAIq+iB,EAAK1okB,OAAQT,EAAI8qB,EAAG9qB,IAAK,CAC3C,IAAI2hB,EAAMwnjB,EAAKnpkB,GAAIy1C,EAAKxH,EAAa,EAANtsB,GAAU+zB,EAAKzH,EAAa,EAANtsB,EAAU,GAC/D8zB,EAAK3Y,EAAK4Y,EAAK3Y,EAAKysiB,EAAK1okB,KAAK6gB,GAAO8njB,EAAK3okB,KAAK6gB,GAAO+zB,EAAK3Y,EAAK2siB,EAAK5okB,KAAK6gB,GAAOgojB,EAAK7okB,KAAK6gB,GAStF,OAPIwP,IAAA,EACFm4iB,EAAAxokB,KACP6kB,EAAK9Z,EAAGC,EAAGqsB,EAAIqxiB,EAAMtnf,EAAO/wD,GAC5BxL,EAAK9Z,EAAGkxB,EAAI5E,EAAIsxiB,EAAMvnf,EAAO/wD,EAAS,GACtCxL,EAAKmX,EAAIhxB,EAAGqsB,EAAIuxiB,EAAMxnf,EAAO/wD,EAAS,GACtCxL,EAAKmX,EAAIC,EAAI5E,EAAIwxiB,EAAMznf,EAAO/wD,EAAS,IAElCo4iB,EAnDT5jjB,CAAK,EAAG,EAAG,EAAGqiE,EAAK,EAAG,GACtB,IAAInmF,EAAS,EACb,IAAA,IAASqgF,EAAQ,EAAGA,EAAQ46V,EAAOr8a,OAAQyhF,IAAS,CAC9C,IAAAknf,EAAatsJ,EAAO56V,GACxB,GAAI8F,EAAI97E,IAAS87E,EAAA97E,IAAIk9jB,EAAYvnkB,QAE/B,IAAA,IAAS7B,EAAI,EAAG8qB,EAAIs+iB,EAAW3okB,OAAQT,EAAI8qB,EAAG9qB,IAC5CgoF,EAAIhoF,EAAI6B,GAAUunkB,EAAWppkB,GAGjC,IAAI4pkB,EAAa/nkB,EAASi7a,EAAO56V,GAAOzhF,OACxCykD,EAAQg9B,GAAS,CAACrgF,EAAQ+nkB,GACjB/nkB,EAAA+nkB,EAGJ,OADP5hf,EAAIx0E,MAuCJ,YAAkB4e,GACZ,IAAAknb,EACJ,GAAIqvH,EAAMv2iB,EAAKA,EAAK3xB,OAAS,IAAK,CAC5B,IAAA6D,EAAM8tB,EAAK0e,MACV1e,EAAK3xB,QAAoB,MAAT6D,EAAIuH,GAAsB,MAATvH,EAAIwmB,GAAyB,MAAZxmB,EAAIsgB,OACzDwN,EAAO,CAAC9tB,GACRg1c,EAAW,CAAC,GAEdA,EAAWxoM,EAAKxsQ,EAAK,CACnB49E,MAAO,iBACP3/E,EAAG,uEACHsnkB,IAAK,8BACN,MAEDvwH,EAAW,CAAC,EAETlnb,EAAK3xB,SAAe2xB,EAAA0lF,GACrB,IAAAo9F,EAAM3/K,KAAQnD,IACbyqL,EAAMI,EAAMF,EAAMI,GAAQ,CAC7Bx6M,KAAKoH,IAAImrM,EAAIrpM,EAAGqpM,EAAIrpM,EAAIqpM,EAAIzoI,OAC5B9pE,KAAKoH,IAAImrM,EAAIppM,EAAGopM,EAAIppM,EAAIopM,EAAI/vG,QAC5BxiG,KAAK8J,IAAIyoM,EAAIrpM,EAAGqpM,EAAIrpM,EAAIqpM,EAAIzoI,OAC5B9pE,KAAK8J,IAAIyoM,EAAIppM,EAAGopM,EAAIppM,EAAIopM,EAAI/vG,UAEzB2ke,EAAOC,EAAOC,EAAOC,GAASv6Y,EAAU,CAACmtB,EAAMI,EAAMF,EAAMI,GAAOrlG,GACnEoyd,EAAWl3gB,EAAQsmZ,EAASp3X,MAAO46V,EAAOr8a,QAC1C,GAAc,MAAd64c,EAAS/2c,EAAW,CAClB,IAAAA,EACsB,iBAAf+2c,EAAS/2c,IAAoB,CAAC+2c,EAAS/2c,EAAG+2c,EAAS/2c,GACrD+2c,EAAS/2c,EAAE9B,SAAQ8B,EAAI+2c,EAAS/2c,GACzC2nkB,EAAWvnkB,KAAKoH,IACdpH,KAAK8J,IACH9J,KAAK25B,MAAM6rY,EAAKxla,KAAKK,IAAIT,EAAE,KAAOu1G,EAAO,GAAKA,EAAO,MACrDn1G,KAAK25B,MAAM6rY,EAAKxla,KAAKK,IAAIT,EAAE,KAAOu1G,EAAO,GAAKA,EAAO,OAEvDoyd,GAIJ,GADAA,EAAWvnkB,KAAKoH,IAAImgkB,EAAUptJ,EAAOr8a,QACjC64c,EAASuwH,IACX,OA6CJ,SAAajB,EAAKC,EAAKC,EAAKC,EAAKmB,GAC/B,IAAIjsI,EAAS,GACb,IAAA,IAAS/7W,EAAQ,EAAGA,EAAQgof,EAAUhof,IAAS,CACzC,IAAAmnf,EAAcr9iB,EAAOk2D,GACrBx9E,EAAOwgD,EAAQg9B,GAAO,GACtBiof,EAAkB/8iB,EAAMw7iB,EAAKC,EAAK3mf,GAClCkof,EAAgBh9iB,EAAM07iB,EAAKC,EAAK7mf,GAChCmof,EAAc9sc,EAAOoqS,GAAG0hK,EAAac,GACrCG,EAAY/sc,EAAO6kB,GAAGinb,EAAae,EAAeC,EAAahB,EAAY5okB,OAAS,GACxFw9b,EAAO/7W,GAAS,CAACmof,EAAc3lkB,EAAM4lkB,EAAY5lkB,GAE5C,OAAAu5b,EAxDE4rI,CAAIC,EAAOC,EAAOC,EAAOC,EAAOC,GAEzC,IAAIr9iB,EAAY,GAyCT,OAvCP,SAASC,EAAO87iB,EAAKC,EAAKtmkB,EAAG2/E,EAAOx9E,EAAM2a,GACpC,GAAS,OAAT3a,GAAwB,OAAP2a,EAAa,OAClC,IACI0pjB,EAAMF,EAAMtmkB,EAChB,GAAIunkB,EAFMlB,EAAMrmkB,GAEGwnkB,EAAQhB,GAAOiB,EAAQpB,GAAOqB,EAAQpB,EAAK,OAC9D,GAAI3mf,GAASgof,EAAU,OACvB,GAAIxlkB,IAAS2a,EAAI,OACb,IAAA+pjB,EAAatsJ,EAAO56V,QACb,IAAP7iE,IAAeA,EAAK+pjB,EAAW3okB,QACnC,IAAA,IAAST,EAAI0E,EAAM1E,EAAIqf,EAAIrf,IAAK,CAC1B,IAAAwb,EAAK4tjB,EAAWppkB,GAChBggD,EAAKgphB,EAAe,EAALxtjB,GACfykC,EAAK+ohB,EAAe,EAALxtjB,EAAS,GACxBwkC,GAAM68J,GAAQ78J,GAAM+8J,GAAQ98J,GAAMg9J,GAAQh9J,GAAMk9J,GAClDtwL,EAAU/rB,KAAK0a,GAGf,IAAA+ujB,EAAWtB,EAAU/mf,GACrBsof,EAAOD,EAAgB,EAAP7lkB,EAAW,GAC3B+lkB,EAAOF,EAAgB,EAAP7lkB,EAAW,GAC3BgmkB,EAAOH,EAAgB,EAAP7lkB,EAAW,GAC3BimkB,EAAOJ,EAAgB,EAAP7lkB,EAAW,GAC3BlD,EAQG,SAAW+okB,EAAU7lkB,GACxB,IAAA6kkB,EAAU,KAAMvpkB,EAAI,EACxB,KAAmB,OAAZupkB,GAGD,GAFMA,EAAAgB,EAAgB,EAAP7lkB,EAAW1E,GAC9BA,IACIA,EAAIuqkB,EAAS9pkB,OAAe,OAAA,KAE3B,OAAA8okB,EAfGK,CAAWW,EAAU7lkB,EAAO,GAClCyzB,EAAS,GAAJ51B,EACLi0Z,EAAYt0U,EAAQ,EACjBp1D,EAAA87iB,EAAKC,EAAK1wiB,EAAIq+X,EAAWg0K,EAAMC,GAAQC,GAAQC,GAAQnpkB,GACvDsrB,EAAA87iB,EAAKC,EAAM1wiB,EAAIA,EAAIq+X,EAAWi0K,EAAMC,GAAQC,GAAQnpkB,GAC3DsrB,EAAO87iB,EAAMzwiB,EAAI0wiB,EAAK1wiB,EAAIq+X,EAAWk0K,EAAMC,GAAQnpkB,GACnDsrB,EAAO87iB,EAAMzwiB,EAAI0wiB,EAAM1wiB,EAAIA,EAAIq+X,EAAWm0K,EAAMnpkB,GA7BlDsrB,CAAO,EAAG,EAAG,EAAG,EAAG,EAAG,GAwCfD,GAzHFm7D,EAwIE,SAAA56D,EAAMvhB,EAAGC,EAAGo2E,GACnB,IAAI/wD,EAAS,EACT2L,EAAK,GAAKC,EAAK,GACfmsiB,EAAO,GACX,IAAA,IAASlpkB,EAAI,EAAGA,EAAIkiF,EAAOliF,IACdmxB,IAAA,EACDA,GAAAtlB,EAAIixB,EAAKhxB,EAAIixB,EAAK,EAAI,EAAIjxB,EAAIixB,EAAK,EAAI,EACzCmsiB,GAAA,GACFpsiB,GAAAjxB,EAAIixB,GAAMosiB,EAAOA,EACjBnsiB,GAAAjxB,EAAIixB,GAAMmsiB,EAAOA,EAElB,OAAA/3iB,EAEX,KAgBAy5iB,GAAwB9rjB,EAAW,CACrC,8CAA8Cpb,EAASic,GAErDA,EAAOjc,QAAU+kkB,QAKjBoC,GAAuB/rjB,EAAW,CACpC,qCAAqCpb,EAASic,GAC5CA,EAAOjc,QACP,SAAoBwtD,GAClB,IAAIovI,EAAS,EACTC,EAAS,EACT10L,EAAI,EACJC,EAAI,EACD,OAAAolD,EAAK9pC,KAAI,SAASquN,GAEnB,IAAAtvO,GADJsvO,EAAMA,EAAIxwO,SACK,GACXm2H,EAAUj1H,EAAKyiB,cACnB,GAAIziB,GAAQi1H,EAEV,OADAq6G,EAAI,GAAKr6G,EACDj1H,GACN,IAAK,IACHsvO,EAAI,IAAM5pO,EACV4pO,EAAI,IAAM3pO,EACV,MACF,IAAK,IACH2pO,EAAI,IAAM3pO,EACV,MACF,IAAK,IACH2pO,EAAI,IAAM5pO,EACV,MACF,QACE,IAAA,IAAS7L,EAAI,EAAGA,EAAIy1O,EAAIh1O,QACtBg1O,EAAIz1O,MAAQ6L,EACZ4pO,EAAIz1O,MAAQ8L,EAIpB,OAAQsvH,GACN,IAAK,IACCvvH,EAAAy0L,EACAx0L,EAAAy0L,EACJ,MACF,IAAK,IACH10L,EAAI4pO,EAAI,GACR,MACF,IAAK,IACH3pO,EAAI2pO,EAAI,GACR,MACF,IAAK,IACC5pO,EAAAy0L,EAASm1C,EAAI,GACb3pO,EAAAy0L,EAASk1C,EAAI,GACjB,MACF,QACM5pO,EAAA4pO,EAAIA,EAAIh1O,OAAS,GACjBqL,EAAA2pO,EAAIA,EAAIh1O,OAAS,GAElB,OAAAg1O,CAAA,QAOXq1V,GAAehsjB,EAAW,CAC5B,oDAAoDpb,EAASic,GAEpDxb,OAAAiH,eAAe1H,EAAS,aAAc,CAC3Cb,OAAO,IAET,IAAI87X,EAA4C,WAuBvC,OAAA,SAAS1+X,EAAKD,GACf,GAAAmB,MAAMiF,QAAQnG,GACT,OAAAA,EACE,GAAAwD,OAAOqR,YAAY3Q,OAAOlE,GAC5B,OA1BF,SAAcA,EAAKD,GAC1B,IAAIoN,EAAO,GACP29jB,GAAK,EACLC,GAAK,EACLC,OAAK,EACL,IACF,IAAA,IAAsCC,EAA7B7pM,EAAKphY,EAAIwD,OAAOqR,cAAmBi2jB,GAAMG,EAAK7pM,EAAGh/W,QAAQ+2F,QAC3DhsG,EAAAtM,KAAKoqkB,EAAGrokB,QACT7C,GAAKoN,EAAK3M,SAAWT,GAF8C+qkB,GAAK,UAIvEtyjB,GACFuyjB,GAAA,EACAC,EAAAxyjB,CAAA,CACL,QACI,KACGsyjB,GAAM1pM,EAAW,QAAGA,EAAW,QAAE,CACtC,QACA,GAAI2pM,EAAU,MAAAC,GAGX,OAAA79jB,EAME+9jB,CAAclrkB,EAAKD,GAEpB,MAAA,IAAIwE,UAAU,uDAExB,CAAA,CA/B8C,GAiC5C4mkB,EAAgB,EAAVzokB,KAAKu0B,GACXm0iB,EAAe,SAAuBC,EAAMh3hB,EAAIC,EAAIsogB,EAAQC,EAAQvgd,EAASC,GAC/E,IAAI3wF,EAAIy/jB,EAAKz/jB,EAAGC,EAAIw/jB,EAAKx/jB,EAKlB,MAAA,CACLD,EAHOgxiB,GAFJhxiB,GAAAyoC,GAEiBwogB,GADjBhxiB,GAAAyoC,GAIKgoD,EACRzwF,EAHOgxiB,EAASjxiB,EAAIgxiB,EAAS/wiB,EAGrB0wF,EAEZ,EACI+ue,EAAgB,SAAwBC,EAAMC,GAChD,IAAI7/jB,EAAa,qBAAT6/jB,EAA8B,eAA0B,qBAATA,GAAiD,cAAA,EAAI,EAAI9okB,KAAKimC,IAAI6iiB,EAAO,GAC5HryiB,EAAKz2B,KAAK87B,IAAI+siB,GACdlyiB,EAAK32B,KAAK+7B,IAAI8siB,GACd/1hB,EAAK9yC,KAAK87B,IAAI+siB,EAAOC,GACrB/1hB,EAAK/yC,KAAK+7B,IAAI8siB,EAAOC,GACzB,MAAO,CAAC,CACN5/jB,EAAGutB,EAAKE,EAAK1tB,EACbE,EAAGwtB,EAAKF,EAAKxtB,GACZ,CACDC,EAAG4pC,EAAKC,EAAK9pC,EACbE,EAAG4pC,EAAKD,EAAK7pC,GACZ,CACDC,EAAG4pC,EACH3pC,EAAG4pC,GAEP,EACIg2hB,EAAc,SAAsBrxI,EAAIC,EAAIC,EAAIC,GAClD,IACIj8V,EAAM87V,EAAKE,EAAKD,EAAKE,EAOlB,OANHj8V,EAAM,IACFA,EAAA,GAEJA,GAAU,IACNA,GAAA,IANG87V,EAAKG,EAAKF,EAAKC,EAAK,GAAS,EAAA,GAQ1B53b,KAAK+uD,KAAK6sC,EAC1B,EAoEA76F,EAAQgZ,QAtCU,SAAsBivjB,GACtC,IAAI3rhB,EAAK2rhB,EAAM3rhB,GAAIC,EAAK0rhB,EAAM1rhB,GAAInjB,EAAK6uiB,EAAM7uiB,GAAIC,EAAK4uiB,EAAM5uiB,GAAIuX,EAAKq3hB,EAAMr3hB,GAAIC,EAAKo3hB,EAAMp3hB,GAAIq3hB,EAAsBD,EAAME,cAAeA,OAAwC,IAAxBD,EAAiC,EAAIA,EAAqBE,EAAqBH,EAAMI,aAAcA,OAAsC,IAAvBD,EAAgC,EAAIA,EAAoBE,EAAkBL,EAAMM,UAAWA,OAAgC,IAApBD,EAA6B,EAAIA,EAC/YE,EAAS,GACT,GAAO,IAAP53hB,GAAmB,IAAPC,EACd,MAAO,GAET,IAAIuogB,EAASn6iB,KAAK+7B,IAAImtiB,EAAgBT,EAAM,KACxCvuB,EAASl6iB,KAAK87B,IAAIotiB,EAAgBT,EAAM,KACxCe,EAAMtvB,GAAU78f,EAAKljB,GAAM,EAAIgghB,GAAU78f,EAAKljB,GAAM,EACpDqviB,GAAOtvB,GAAU98f,EAAKljB,GAAM,EAAI+/gB,GAAU58f,EAAKljB,GAAM,EACrD,GAAQ,IAARoviB,GAAqB,IAARC,EACf,MAAO,GAEJ93hB,EAAA3xC,KAAKK,IAAIsxC,GACTC,EAAA5xC,KAAKK,IAAIuxC,GACd,IAAIipf,EAAS76hB,KAAKC,IAAIupkB,EAAK,GAAKxpkB,KAAKC,IAAI0xC,EAAI,GAAK3xC,KAAKC,IAAIwpkB,EAAK,GAAKzpkB,KAAKC,IAAI2xC,EAAI,GAC9Eipf,EAAS,IACLlpf,GAAA3xC,KAAKmjB,KAAK03gB,GACVjpf,GAAA5xC,KAAKmjB,KAAK03gB,IAElB,IAAI6uC,EAjDa,SAAuBrshB,EAAIC,EAAInjB,EAAIC,EAAIuX,EAAIC,EAAIw3hB,EAAcE,EAAWnvB,EAAQD,EAAQsvB,EAAKC,GAC9G,IAAIE,EAAO3pkB,KAAKC,IAAI0xC,EAAI,GACpBi4hB,EAAO5pkB,KAAKC,IAAI2xC,EAAI,GACpBi4hB,EAAQ7pkB,KAAKC,IAAIupkB,EAAK,GACtBM,EAAQ9pkB,KAAKC,IAAIwpkB,EAAK,GACtBM,EAAWJ,EAAOC,EAAOD,EAAOG,EAAQF,EAAOC,EAC/CE,EAAW,IACFA,EAAA,GAEDA,GAAAJ,EAAOG,EAAQF,EAAOC,EAE9B,IAAAG,GADJD,EAAW/pkB,KAAKmjB,KAAK4mjB,IAAaX,IAAiBE,GAAiB,EAAA,IAC1C33hB,EAAKC,EAAK63hB,EAChCQ,EAAWF,GAAYn4hB,EAAKD,EAAK63hB,EACjC5ve,EAAUsgd,EAAS8vB,EAAW7vB,EAAS8vB,GAAY5shB,EAAKljB,GAAM,EAC9D0/D,EAAUsgd,EAAS6vB,EAAW9vB,EAAS+vB,GAAY3shB,EAAKljB,GAAM,EAC9D8viB,GAAOV,EAAMQ,GAAYr4hB,EACzBw4hB,GAAOV,EAAMQ,GAAYr4hB,EACzBw4hB,IAAQZ,EAAMQ,GAAYr4hB,EAC1B04hB,IAAQZ,EAAMQ,GAAYr4hB,EAC1Bi3hB,EAAOE,EAAY,EAAG,EAAGmB,EAAKC,GAC9BrB,EAAOC,EAAYmB,EAAKC,EAAKC,EAAKC,GAOtC,OANkB,IAAdf,GAAmBR,EAAO,IACpBA,GAAAL,GAEQ,IAAda,GAAmBR,EAAO,IACpBA,GAAAL,GAEH,CAAC7ue,EAASC,EAASgve,EAAMC,EAClC,CAqBsBwB,CAAajthB,EAAIC,EAAInjB,EAAIC,EAAIuX,EAAIC,EAAIw3hB,EAAcE,EAAWnvB,EAAQD,EAAQsvB,EAAKC,GAAMc,EAAiBvuM,EAAe0tM,EAAe,GAAI9ve,EAAU2we,EAAe,GAAI1we,EAAU0we,EAAe,GAAI1B,EAAO0B,EAAe,GAAIzB,EAAOyB,EAAe,GACtQphhB,EAAQnpD,KAAKK,IAAIyokB,IAASL,EAAM,GAChCzokB,KAAKK,IAAI,EAAI8oD,GAAS,OAChBA,EAAA,GAEV,IAAIsH,EAAWzwD,KAAK8J,IAAI9J,KAAK25B,KAAKwvB,GAAQ,GAClC2/gB,GAAAr4gB,EACR,IAAA,IAASpzD,EAAI,EAAGA,EAAIozD,EAAUpzD,IAC5BkskB,EAAOprkB,KAAKyqkB,EAAcC,EAAMC,IACxBD,GAAAC,EAEH,OAAAS,EAAO9kjB,KAAI,SAASyuC,GACzB,IAAIs3gB,EAAgB9B,EAAax1gB,EAAM,GAAIvhB,EAAIC,EAAIsogB,EAAQC,EAAQvgd,EAASC,GAAUpjE,EAAK+ziB,EAActhkB,EAAGytB,EAAK6ziB,EAAcrhkB,EAC3HshkB,EAAiB/B,EAAax1gB,EAAM,GAAIvhB,EAAIC,EAAIsogB,EAAQC,EAAQvgd,EAASC,GAAU/mD,EAAK23hB,EAAevhkB,EAAG6pC,EAAK03hB,EAAethkB,EAC9HuhkB,EAAiBhC,EAAax1gB,EAAM,GAAIvhB,EAAIC,EAAIsogB,EAAQC,EAAQvgd,EAASC,GAC7E,MAAO,CAAEpjE,KAAIE,KAAImc,KAAIC,KAAI7pC,EADkEwhkB,EAAexhkB,EAC9EC,EADqFuhkB,EAAevhkB,EAClG,GAElC,EAEA6T,EAAOjc,QAAUA,EAAQgZ,WAKzB4wjB,GAA6BxujB,EAAW,CAC1C,wEAAwEpb,EAASic,GAE/EA,EAAOjc,QAEP,SAAmBwtD,GAWjB,IAVI,IAAA2oH,EACA7jK,EAAS,GACTu3jB,EAAU,EACVC,EAAU,EACVltY,EAAS,EACTC,EAAS,EACTktY,EAAQ,KACRC,EAAQ,KACR7hkB,EAAI,EACJC,EAAI,EACC9L,EAAI,EAAGK,EAAM6wD,EAAKzwD,OAAQT,EAAIK,EAAKL,IAAK,CAC3C,IAAAy1O,EAAMvkL,EAAKlxD,GACXo7H,EAAUq6G,EAAI,GAClB,OAAQr6G,GACN,IAAK,IACHklE,EAASm1C,EAAI,GACbl1C,EAASk1C,EAAI,GACb,MACF,IAAK,IACH,IAAIy2V,EAASyB,EAAW,CACtB3thB,GAAIn0C,EACJo0C,GAAIn0C,EACJgxB,GAAI24M,EAAI,GACR14M,GAAI04M,EAAI,GACRnhM,GAAImhM,EAAI,GACRlhM,GAAIkhM,EAAI,GACRo2V,cAAep2V,EAAI,GACnBs2V,aAAct2V,EAAI,GAClBw2V,UAAWx2V,EAAI,KAEb,IAACy2V,EAAOzrkB,OAAQ,SACpB,IAAA,IAAgBqC,EAAP4F,EAAI,EAAMA,EAAIwjkB,EAAOzrkB,OAAQiI,IAEpC+sO,EAAM,CAAC,KADP3yO,EAAIopkB,EAAOxjkB,IACG0wB,GAAIt2B,EAAEw2B,GAAIx2B,EAAE2yC,GAAI3yC,EAAE4yC,GAAI5yC,EAAE+I,EAAG/I,EAAEgJ,GACvCpD,EAAIwjkB,EAAOzrkB,OAAS,GAAGuV,EAAOlV,KAAK20O,GAEzC,MACF,IAAK,IACH,IAAI34M,EAAKjxB,EACLkxB,EAAKjxB,EACG,KAAR+tK,GAAuB,KAARA,IACjB/8I,GAAMA,EAAKywiB,EACXxwiB,GAAMA,EAAKywiB,GAEb/3V,EAAM,CAAC,IAAK34M,EAAIC,EAAI04M,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAChD,MACF,IAAK,IACS,KAAR57D,GAAuB,KAARA,GACjB4zZ,EAAY,EAAJ5hkB,EAAQ4hkB,EAChBC,EAAY,EAAJ5hkB,EAAQ4hkB,IAERD,EAAA5hkB,EACA6hkB,EAAA5hkB,GAEJ2pO,EAAAm4V,EAAU/hkB,EAAGC,EAAG2hkB,EAAOC,EAAOj4V,EAAI,GAAIA,EAAI,IAChD,MACF,IAAK,IACHg4V,EAAQh4V,EAAI,GACZi4V,EAAQj4V,EAAI,GACZA,EAAMm4V,EAAU/hkB,EAAGC,EAAG2pO,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAClD,MACF,IAAK,IACGA,EAAAngM,EAAKzpC,EAAGC,EAAG2pO,EAAI,GAAIA,EAAI,IAC7B,MACF,IAAK,IACHA,EAAMngM,EAAKzpC,EAAGC,EAAG2pO,EAAI,GAAI3pO,GACzB,MACF,IAAK,IACH2pO,EAAMngM,EAAKzpC,EAAGC,EAAGD,EAAG4pO,EAAI,IACxB,MACF,IAAK,IACHA,EAAMngM,EAAKzpC,EAAGC,EAAGw0L,EAAQC,GAGtB1mB,EAAAz+C,EACHvvH,EAAA4pO,EAAIA,EAAIh1O,OAAS,GACjBqL,EAAA2pO,EAAIA,EAAIh1O,OAAS,GACjBg1O,EAAIh1O,OAAS,GACL8skB,EAAA93V,EAAIA,EAAIh1O,OAAS,GACjB+skB,EAAA/3V,EAAIA,EAAIh1O,OAAS,KAEjB8skB,EAAA1hkB,EACA2hkB,EAAA1hkB,GAEZkK,EAAOlV,KAAK20O,GAEP,OAAAz/N,GAxFT,IAAI23jB,EAAa7C,KA0FjB,SAASx1hB,EAAKlc,EAAIE,EAAImc,EAAIC,GACxB,MAAO,CAAC,IAAKtc,EAAIE,EAAImc,EAAIC,EAAID,EAAIC,GAEnC,SAASk4hB,EAAUx0iB,EAAIE,EAAIwD,EAAIC,EAAI0Y,EAAIC,GAC9B,MAAA,CACL,IACAtc,EAAK,EAAI,EAAI,EAAI0D,EACjBxD,EAAK,EAAI,EAAI,EAAIyD,EACjB0Y,EAAK,EAAI,EAAI,EAAI3Y,EACjB4Y,EAAK,EAAI,EAAI,EAAI3Y,EACjB0Y,EACAC,OAOJm4hB,GAAsB/ujB,EAAW,CACnC,oCAAoCpb,EAASic,GAEpC+C,EAAAhf,QAAU,SAAgB2F,GAC3B,MAAe,iBAARA,IACXA,EAAMA,EAAIsD,UACN,0CAA0CoiB,KAAK1lB,IAAQ,UAAU0lB,KAAK1lB,IAAQA,EAAI5I,OAAS,GAEjG,KAKAqtkB,GAA0BhvjB,EAAW,CACvC,wCAAwCpb,EAASic,GAE/C,IAAIusD,EAAS8sF,KACTh2J,EAAM6nkB,KACNn7Y,EAAY49Y,KACZS,EAAYF,KACZ33M,EAASE,KACbz2W,EAAOjc,QACP,SAAoBwtD,GASd,GARA/vD,MAAMiF,QAAQ8qD,IAAyB,IAAhBA,EAAKzwD,QAAmC,iBAAZywD,EAAK,KAAiBA,EAAOA,EAAK,IACrE,iBAATA,IACFglU,EAAA63M,EAAU78gB,GAAO,8BACxBA,EAAOgb,EAAOhb,IAEhBglU,EAAO/0X,MAAMiF,QAAQ8qD,GAAO,6DAC5BA,EAAOluD,EAAIkuD,KACXA,EAAOw+H,EAAUx+H,IACPzwD,OAAQ,MAAO,CAAC,EAAG,EAAG,EAAG,GAEnC,IADA,IAAIq3G,EAAS,CAACp1G,IAAUA,KAAU,KAAW,KACpC1C,EAAI,EAAG8qB,EAAIomC,EAAKzwD,OAAQT,EAAI8qB,EAAG9qB,IAEtC,IADA,IAAIiuC,EAASijB,EAAKlxD,GAAGiF,MAAM,GAClByD,EAAI,EAAGA,EAAIulC,EAAOxtC,OAAQiI,GAAK,EAClCulC,EAAOvlC,EAAI,GAAKovG,EAAO,KAAIA,EAAO,GAAK7pE,EAAOvlC,EAAI,IAClDulC,EAAOvlC,EAAI,GAAKovG,EAAO,KAAIA,EAAO,GAAK7pE,EAAOvlC,EAAI,IAClDulC,EAAOvlC,EAAI,GAAKovG,EAAO,KAAIA,EAAO,GAAK7pE,EAAOvlC,EAAI,IAClDulC,EAAOvlC,EAAI,GAAKovG,EAAO,KAAIA,EAAO,GAAK7pE,EAAOvlC,EAAI,IAGnD,OAAAovG,MAMTk2d,GAA8BlvjB,EAAW,CAC3C,2CAA2Cpb,EAASic,GAClD,IAAI,EAAShd,KAAKu0B,GACd+2iB,EAAOl+C,EAAS,KAgFpB,SAASz6e,EAAKlc,EAAIE,EAAImc,EAAIC,GACxB,MAAO,CAAC,IAAKtc,EAAIE,EAAImc,EAAIC,EAAID,EAAIC,GAEnC,SAASk4hB,EAAUx0iB,EAAIE,EAAIwD,EAAIC,EAAI0Y,EAAIC,GAC9B,MAAA,CACL,IACAtc,EAAK,EAAI,EAAI,EAAI0D,EACjBxD,EAAK,EAAI,EAAI,EAAIyD,EACjB0Y,EAAK,EAAI,EAAI,EAAI3Y,EACjB4Y,EAAK,EAAI,EAAI,EAAI3Y,EACjB0Y,EACAC,GAGK,SAAA3C,EAAI3Z,EAAIE,EAAIgb,EAAIC,EAAIZ,EAAOu6hB,EAAgBC,EAAY14hB,EAAIC,EAAI04hB,GACtE,GAAKA,EA8BH50I,EAAK40I,EAAU,GACf10I,EAAK00I,EAAU,GACftxiB,EAAKsxiB,EAAU,GACfrxiB,EAAKqxiB,EAAU,OAjCD,CACd,IAAIh1e,EAAKx8C,EAAOxjB,EAAIE,GAAKqa,GACzBva,EAAKggE,EAAGvtF,EACRytB,EAAK8/D,EAAGttF,EAIJ,IAAAD,GAAKutB,GAFTqc,GADA2jD,EAAKx8C,EAAOnH,EAAIC,GAAK/B,IACb9nC,IAEY,EAChBC,GAAKwtB,GAFToc,EAAK0jD,EAAGttF,IAEY,EAChByZ,EAAI1Z,EAAIA,GAAKyoC,EAAKA,GAAMxoC,EAAIA,GAAKyoC,EAAKA,GACtChvB,EAAI,IAEN+uB,GADI/uB,EAAA5iB,KAAKmjB,KAAKP,GAEdgvB,GAAKhvB,GAEP,IAAI8ojB,EAAM/5hB,EAAKA,EACXg6hB,EAAM/5hB,EAAKA,EACXtrB,GAAKiljB,GAAkBC,GAAa,EAAK,GAAKxrkB,KAAKmjB,KAAKnjB,KAAKK,KAAKqrkB,EAAMC,EAAMD,EAAMvikB,EAAIA,EAAIwikB,EAAMzikB,EAAIA,IAAMwikB,EAAMvikB,EAAIA,EAAIwikB,EAAMzikB,EAAIA,KACpIod,GAAKvmB,MAAcumB,EAAA,GACvB,IAAI6T,EAAK7T,EAAIqrB,EAAKxoC,EAAIyoC,GAAMnb,EAAKqc,GAAM,EACnC1Y,EAAK9T,GAAKsrB,EAAK1oC,EAAIyoC,GAAMhb,EAAKoc,GAAM,EACpC8jZ,EAAK72b,KAAK20B,OAAOgC,EAAKyD,GAAMwX,GAAI85B,QAAQ,IACxCqrX,EAAK/2b,KAAK20B,OAAOoe,EAAK3Y,GAAMwX,GAAI85B,QAAQ,KACvCmrX,EAAApga,EAAK0D,EAAK,EAAS08Z,EAAKA,GAEpB,IAAQA,EAAS,EAAT,EAAaA,IADzBE,EAAAjkZ,EAAK3Y,EAAK,EAAS48Z,EAAKA,GAEpB,IAAQA,EAAS,EAAT,EAAaA,GAC1By0I,GAAc30I,EAAKE,IAAIF,GAAmB,EAAT,IAChC20I,GAAcz0I,EAAKF,IAAIE,GAAmB,EAAT,EAAS,CAOjD,GAAI/2b,KAAKK,IAAI02b,EAAKF,GAAMy0I,EAAM,CAC5B,IAAIM,EAAQ70I,EACR80I,EAAQ/4hB,EACRg5hB,EAAQ/4hB,EACZgkZ,EAAKF,EAAKy0I,GAAQE,GAAcz0I,EAAKF,EAAK,GAAI,GAG9C,IAAIxvb,EAAM+oC,EAFV0C,EAAK3Y,EAAKwX,EAAK3xC,KAAK87B,IAAIi7Z,GACxBhkZ,EAAK3Y,EAAKwX,EAAK5xC,KAAK+7B,IAAIg7Z,GACFplZ,EAAIC,EAAIZ,EAAO,EAAGw6hB,EAAYK,EAAOC,EAAO,CAAC/0I,EAAI60I,EAAOzxiB,EAAIC,IAEpF,IAAIvW,EAAI7jB,KAAKimC,KAAK8wZ,EAAKF,GAAM,GACzBu9B,EAAK,EAAI,EAAIzib,EAAK9tB,EAClBywc,EAAK,EAAI,EAAI1ib,EAAK/tB,EAClBqvC,EAAQ,CACV,EAAIz8B,GAAMA,EAAK29b,EAAKp0d,KAAK+7B,IAAI86Z,IAC7B,EAAIlga,GAAMA,EAAK29b,EAAKt0d,KAAK87B,IAAI+6Z,IAC7B/jZ,EAAKshb,EAAKp0d,KAAK+7B,IAAIg7Z,GACnBhkZ,EAAKuhb,EAAKt0d,KAAK87B,IAAIi7Z,GACnBjkZ,EACAC,GAEF,GAAI04hB,EAAkB,OAAAv4gB,EAClB7rD,IAAK6rD,EAAQA,EAAM9pD,OAAO/B,IAC9B,IAAA,IAAShK,EAAI,EAAGA,EAAI61D,EAAMp1D,QAAU,CAC9B,IAAAwkS,EAAMroP,EAAOiZ,EAAM71D,GAAI61D,EAAM71D,EAAI,GAAI2zC,GACnCkiB,EAAA71D,KAAOilS,EAAIp5R,EACXgqD,EAAA71D,KAAOilS,EAAIn5R,EAEZ,OAAA+pD,EAEA,SAAAjZ,EAAO/wC,EAAGC,EAAG0sF,GACb,MAAA,CACL3sF,EAAGA,EAAIlJ,KAAK87B,IAAI+5D,GAAO1sF,EAAInJ,KAAK+7B,IAAI85D,GACpC1sF,EAAGD,EAAIlJ,KAAK+7B,IAAI85D,GAAO1sF,EAAInJ,KAAK87B,IAAI+5D,IAGxC,SAASu3b,EAAS2+C,GAChB,OAAOA,GAAW,EAAS,KArK7B/ujB,EAAOjc,QACP,SAAmBwtD,GAWjB,IAVI,IAAA2oH,EACA7jK,EAAS,GACTu3jB,EAAU,EACVC,EAAU,EACVltY,EAAS,EACTC,EAAS,EACTktY,EAAQ,KACRC,EAAQ,KACR7hkB,EAAI,EACJC,EAAI,EACC9L,EAAI,EAAGK,EAAM6wD,EAAKzwD,OAAQT,EAAIK,EAAKL,IAAK,CAC3C,IAAAy1O,EAAMvkL,EAAKlxD,GACXo7H,EAAUq6G,EAAI,GAClB,OAAQr6G,GACN,IAAK,IACHklE,EAASm1C,EAAI,GACbl1C,EAASk1C,EAAI,GACb,MACF,IAAK,KACGA,EAAA1iM,EAAIlnC,EAAGC,EAAG2pO,EAAI,GAAIA,EAAI,GAAIs6S,EAASt6S,EAAI,IAAKA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,KAC1ElkM,QAAQ,KACRkkM,EAAIh1O,OAAS,IACfuV,EAAOlV,KAAK20O,EAAIlgM,OAAO,EAAG,IAC1BkgM,EAAIlkM,QAAQ,MAEd,MACF,IAAK,IACH,IAAIzU,EAAKjxB,EACLkxB,EAAKjxB,EACG,KAAR+tK,GAAuB,KAARA,IACjB/8I,GAAMA,EAAKywiB,EACXxwiB,GAAMA,EAAKywiB,GAEb/3V,EAAM,CAAC,IAAK34M,EAAIC,EAAI04M,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAChD,MACF,IAAK,IACS,KAAR57D,GAAuB,KAARA,GACjB4zZ,EAAY,EAAJ5hkB,EAAQ4hkB,EAChBC,EAAY,EAAJ5hkB,EAAQ4hkB,IAERD,EAAA5hkB,EACA6hkB,EAAA5hkB,GAEJ2pO,EAAAm4V,EAAU/hkB,EAAGC,EAAG2hkB,EAAOC,EAAOj4V,EAAI,GAAIA,EAAI,IAChD,MACF,IAAK,IACHg4V,EAAQh4V,EAAI,GACZi4V,EAAQj4V,EAAI,GACZA,EAAMm4V,EAAU/hkB,EAAGC,EAAG2pO,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAClD,MACF,IAAK,IACGA,EAAAngM,EAAKzpC,EAAGC,EAAG2pO,EAAI,GAAIA,EAAI,IAC7B,MACF,IAAK,IACHA,EAAMngM,EAAKzpC,EAAGC,EAAG2pO,EAAI,GAAI3pO,GACzB,MACF,IAAK,IACH2pO,EAAMngM,EAAKzpC,EAAGC,EAAGD,EAAG4pO,EAAI,IACxB,MACF,IAAK,IACHA,EAAMngM,EAAKzpC,EAAGC,EAAGw0L,EAAQC,GAGtB1mB,EAAAz+C,EACHvvH,EAAA4pO,EAAIA,EAAIh1O,OAAS,GACjBqL,EAAA2pO,EAAIA,EAAIh1O,OAAS,GACjBg1O,EAAIh1O,OAAS,GACL8skB,EAAA93V,EAAIA,EAAIh1O,OAAS,GACjB+skB,EAAA/3V,EAAIA,EAAIh1O,OAAS,KAEjB8skB,EAAA1hkB,EACA2hkB,EAAA1hkB,GAEZkK,EAAOlV,KAAK20O,GAEP,OAAAz/N,MA8FT24jB,GAAwB7vjB,EAAW,CACrC,sCAAsCpb,EAASic,GAC7C,IAAI3c,EAAM6nkB,KACNn7Y,EAAYs+Y,KACZx1b,EAAU,CACZ/yE,EAAK,SACL5wB,EAAK,iBAEAnyB,EAAAhf,QAAU,SAASkc,EAASwzC,GACjCxzC,EAAQgvjB,YACEl/Y,EAAA1sL,EAAIowD,IAAWv5C,SACvB,SAASw5C,GACH,IAAA+nE,EAAU/nE,EAAQ,GAClBjhC,EAAOihC,EAAQpuD,MAAM,GACzB2a,EAAQ44H,EAAQpd,IAAUzwH,MAAMiV,EAASwS,MAG7CxS,EAAQ+rhB,WACV,KAKAkjC,GAAqB/vjB,EAAW,CAClC,mCAAmCpb,EAASic,GAE1C,IAAIqtC,EAAQ6kc,KACZlye,EAAOjc,QAEE,SAAQ4Q,EAAKgvI,GACfA,IAASA,EAAU,CAAC,GACzB,IAGI3vH,EAAGpO,EAAG9e,EAAMJ,EAAMyokB,EAASp2I,EAAQ/iL,EAAKD,EAAQK,EAAS/1Q,EAAG8qB,EAH5DssY,EAA2B,MAAlB9zQ,EAAQ8zQ,OAAiB,IAAO9zQ,EAAQ8zQ,OACjDvtW,EAA2B,MAAlBy5F,EAAQz5F,OAAiB,EAAIy5F,EAAQz5F,OAC9CklhB,EAAUzrb,EAAQyrb,SAAW,EAEjC,GAAI5pkB,YAAYC,OAAOkP,IAAQnT,MAAMiF,QAAQkO,GAAM,CAC7C,IAACgvI,EAAQ72E,QAAU62E,EAAQn+C,OAAQ,MAAM9jG,MAAM,+DAC/CsyB,EAAA2vH,EAAQ72E,MAAOlnD,EAAI+9H,EAAQn+C,OACxB9+F,EAAAiO,IACFgvI,EAAQo1S,OACCp1S,EAAQo1S,OADQ/1b,KAAKO,MAAMoR,EAAI7T,OAASkzB,EAAIpO,EACpC,MAElBjM,OAAOy/c,mBAAqBzkd,aAAegF,OAAOy/c,mBAE9CpjN,GADGD,EAAAphQ,GACIshQ,WAAW,MACpBjiP,EAAA+hP,EAAOjpM,MAAOlnD,EAAImwP,EAAOvwK,OAE7B9+F,GADA0vQ,EAAUJ,EAAI49H,aAAa,EAAG,EAAG5/W,EAAGpO,IACrBlf,KACNqyb,EAAA,GACAp/a,OAAO01jB,0BAA4B16jB,aAAegF,OAAO01jB,0BAE5Dr5T,EAAArhQ,EACFqf,GAFJ+hP,EAASphQ,EAAIohQ,QAEFjpM,MAAOlnD,EAAImwP,EAAOvwK,OAE7B9+F,GADA0vQ,EAAUJ,EAAI49H,aAAa,EAAG,EAAG5/W,EAAGpO,IACrBlf,KACNqyb,EAAA,GACAp/a,OAAO4/c,WAAa5kd,aAAegF,OAAO4/c,YACzCnjN,EAAAzhQ,EACNqf,EAAArf,EAAIm4D,MAAOlnD,EAAIjR,EAAI6wF,OACvB9+F,EAAO0vQ,EAAQ1vQ,KACNqyb,EAAA,GAIT,GADGjyb,EAAA9D,KAAK8J,IAAIknB,EAAGpO,GACfjM,OAAOi6D,mBAAqBltE,aAAgBiT,OAAOi6D,mBAAqBj6D,OAAOpY,YAAcmF,aAAgBiT,OAAOpY,WAGtH,IAFU4tkB,EAAAzokB,EACHA,EAAAlF,MAAMwyB,EAAIpO,GACZvlB,EAAI,EAAG8qB,EAAIgkjB,EAAQrukB,OAAQT,EAAI8qB,EAAG9qB,IACrCqG,EAAKrG,GAAK8ukB,EAAQ9ukB,EAAI04b,EAASq2I,GAAW,SAG5C,GAAe,IAAXr2I,EAAoB,MAAAr3b,MAAM,4CAE5B,IAAA4tkB,EAAY9tkB,MAAMwyB,EAAIpO,GACtB2pjB,EAAY/tkB,MAAMwyB,EAAIpO,GACtBjD,EAAInhB,MAAMsF,GACVlE,EAAIpB,MAAMsF,GACVskB,EAAI5pB,MAAMsF,EAAO,GACjB+e,EAAIrkB,MAAMsF,GACd,IAAKzG,EAAI,EAAG8qB,EAAI6I,EAAIpO,EAAGvlB,EAAI8qB,EAAG9qB,IAAK,CAC7B,IAAA4L,EAAIvF,EAAKrG,GACbivkB,EAAUjvkB,GAAW,IAAN4L,EAAU,EAAU,IAANA,EAAUujkB,EAAMxskB,KAAKC,IAAID,KAAK8J,IAAI,EAAG,GAAMb,GAAI,GAC5EsjkB,EAAUlvkB,GAAW,IAAN4L,EAAUujkB,EAAY,IAANvjkB,EAAU,EAAIjJ,KAAKC,IAAID,KAAK8J,IAAI,EAAGb,EAAI,IAAM,GAE9EwjkB,EAAIH,EAAWt7iB,EAAGpO,EAAGjD,EAAG/f,EAAGijB,EAAGuF,GAC9BqkjB,EAAIF,EAAWv7iB,EAAGpO,EAAGjD,EAAG/f,EAAGijB,EAAGuF,GAC1B,IAAAmyK,EAAO5jL,OAAO46D,aAAe,IAAIA,aAAavgD,EAAIpO,GAAK,IAAIpkB,MAAMwyB,EAAIpO,GACzE,IAAKvlB,EAAI,EAAG8qB,EAAI6I,EAAIpO,EAAGvlB,EAAI8qB,EAAG9qB,IAC5Bk9L,EAAKl9L,GAAKgtD,EAAM,IAAMiihB,EAAUjvkB,GAAKkvkB,EAAUlvkB,IAAM6pD,EAASutW,GAAS,EAAG,GAErE,OAAAl6N,GA9DT,IAAIiyY,EAAM,KAgEV,SAASC,EAAI/okB,EAAMomE,EAAO04B,EAAQ7iF,EAAG/f,EAAGijB,EAAGuF,GACzC,IAAA,IAASlf,EAAI,EAAGA,EAAI4gE,EAAO5gE,IAAK,CAC9B,IAAA,IAASC,EAAI,EAAGA,EAAIq5F,EAAQr5F,IAC1BwW,EAAExW,GAAKzF,EAAKyF,EAAI2gE,EAAQ5gE,GAG1B,IADAwjkB,EAAM/sjB,EAAG/f,EAAGijB,EAAGuF,EAAGo6E,GACbr5F,EAAI,EAAGA,EAAIq5F,EAAQr5F,IACtBzF,EAAKyF,EAAI2gE,EAAQ5gE,GAAKtJ,EAAEuJ,GAG5B,IAAKA,EAAI,EAAGA,EAAIq5F,EAAQr5F,IAAK,CAC3B,IAAKD,EAAI,EAAGA,EAAI4gE,EAAO5gE,IACrByW,EAAEzW,GAAKxF,EAAKyF,EAAI2gE,EAAQ5gE,GAG1B,IADAwjkB,EAAM/sjB,EAAG/f,EAAGijB,EAAGuF,EAAG0hD,GACb5gE,EAAI,EAAGA,EAAI4gE,EAAO5gE,IAChBxF,EAAAyF,EAAI2gE,EAAQ5gE,GAAKlJ,KAAKmjB,KAAKvjB,EAAEsJ,KAIxC,SAASwjkB,EAAM/sjB,EAAG/f,EAAGijB,EAAGuF,EAAGpjB,GACzB6d,EAAE,GAAK,EACLuF,EAAA,IAAK,KACLA,EAAA,GAAK,KACP,IAAA,IAASgR,EAAI,EAAG9S,EAAI,EAAG8S,EAAIp0B,EAAGo0B,IAAK,CAE1B,IADH,IAAAv5B,GAAK8f,EAAEyZ,GAAKA,EAAIA,GAAKzZ,EAAEkD,EAAEyD,IAAMzD,EAAEyD,GAAKzD,EAAEyD,MAAQ,EAAI8S,EAAI,EAAIvW,EAAEyD,IAC3DzmB,GAAKuoB,EAAE9B,IACZA,IACKzmB,GAAA8f,EAAEyZ,GAAKA,EAAIA,GAAKzZ,EAAEkD,EAAEyD,IAAMzD,EAAEyD,GAAKzD,EAAEyD,MAAQ,EAAI8S,EAAI,EAAIvW,EAAEyD,IAGhEzD,IADAyD,GACO8S,EACPhR,EAAE9B,GAAKzmB,EACLuoB,EAAA9B,EAAI,GAAK,KAEb,IAAK8S,EAAI,EAAG9S,EAAI,EAAG8S,EAAIp0B,EAAGo0B,IAAK,CAC7B,KAAOhR,EAAE9B,EAAI,GAAK8S,GAAG9S,IACrB1mB,EAAEw5B,IAAMA,EAAIvW,EAAEyD,KAAO8S,EAAIvW,EAAEyD,IAAM3G,EAAEkD,EAAEyD,SAOzCqmjB,GAAuBxwjB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5C,IAuDI4vjB,EAvDA10O,EAAaizO,KACb0B,EAAYx2a,KACZy2a,EAAWd,KACXZ,EAAYF,KACZ6B,EAAYb,KACZn5T,EAAS1yP,SAASzH,cAAc,UAChCo6P,EAAMD,EAAOE,WAAW,MAC5Bj2P,EAAOjc,QACE,SAAQwtD,EAAMoyF,GACrB,IAAKyqb,EAAU78gB,GAAO,MAAM7vD,MAAM,4CAElC,IAAIsyB,EAAGpO,EADF+9H,IAASA,EAAU,CAAC,GAErBA,EAAQluE,OACNzhD,EAAA2vH,EAAQluE,MAAM,GACd7vD,EAAA+9H,EAAQluE,MAAM,KAElBzhD,EAAI+hP,EAAOjpM,MAAQ62E,EAAQ3vH,GAAK2vH,EAAQ72E,OAAS,IACjDlnD,EAAImwP,EAAOvwK,OAASm+C,EAAQ/9H,GAAK+9H,EAAQn+C,QAAU,KAErD,IAAI1+F,EAAO9D,KAAKoH,IAAI4pB,EAAGpO,GACnBumE,EAASw3D,EAAQx3D,QAAU,EAC3BqkT,EAAU7sP,EAAQ6sP,SAAW7sP,EAAQ61G,SAAW0hG,EAAW3pS,GAC3Dp2B,EAAQ,CAACnH,GAAKw8W,EAAQ,GAAKA,EAAQ,IAAK5qX,GAAK4qX,EAAQ,GAAKA,EAAQ,KAClEjkK,EAAWvpO,KAAKoH,IAAI+wB,EAAM,IAAM,EAAGA,EAAM,IAAM,GAAK,EAexD,GAdA66O,EAAI2zE,UAAY,QAChB3zE,EAAI4zE,SAAS,EAAG,EAAG51T,EAAGpO,GACtBowP,EAAI2zE,UAAY,QACZx9P,IACmB,iBAAVA,IAA6BA,EAAA,GAEtC6pL,EAAIg6T,YADF7jf,EAAS,EACO,QAEA,QAEhB6pL,EAAA53G,UAAYp7J,KAAKK,IAAI8oF,IAE3B6pL,EAAI56O,UAAc,GAAJpH,EAAa,GAAJpO,GACnBowP,EAAA76O,MAAMoxM,EAAUA,GAmBtB,WACM,GAAmB,MAAnBqjW,EAAgC,OAAAA,EACpC,IAAIK,EAAO5sjB,SAASzH,cAAc,UAAUq6P,WAAW,MAEvD,GADAg6T,EAAKl6T,OAAOjpM,MAAQmjgB,EAAKl6T,OAAOvwK,OAAS,GACpC7rF,OAAOu2jB,OAAQ,OAAON,GAAkB,EACzC,IAAAr+gB,EAAO,IAAI2+gB,OAAO,mBACtBD,EAAKtmP,UAAY,QACjBsmP,EAAKpkkB,KAAK0lD,GACV,IAAI4+gB,EAAQF,EAAKr8L,aAAa,EAAG,EAAG,EAAG,GACvC,OAAOg8L,EAAkBO,GAASA,EAAMzpkB,MAA0B,MAAlBypkB,EAAMzpkB,KAAK,GA3BvD0pkB,GAAqB,CACnB,IAAAC,EAAS,IAAIH,OAAO3+gB,GACxBykN,EAAInqQ,KAAKwkkB,GACClkf,GAAA6pL,EAAI7pL,OAAOkkf,EAAM,KACtB,CACD,IAAA58gB,EAAWo8gB,EAAUt+gB,GACzBu+gB,EAAS95T,EAAKviN,GACduiN,EAAInqQ,OACJsgF,GAAU6pL,EAAI7pL,SAOT,OALP6pL,EAAIs6T,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACrBP,EAAU/5T,EAAK,CACxByhJ,OAA0B,MAAlB9zQ,EAAQ8zQ,OAAiB9zQ,EAAQ8zQ,OAAS,GAClDvtW,OAA0B,MAAlBy5F,EAAQz5F,OAAiBy5F,EAAQz5F,OAAgB,GAAPpjD,QAoBtDypkB,GAAoBpxjB,EAAW,CACjC,kCAAkCpb,EAASic,GAEzC,IAAI82D,EAAYrG,IACZ+/f,EAASb,KACT1kf,EAAQmna,KACRjlZ,EAAW1E,KACX6gB,EAAMrN,KACN1oC,EAAsB+1C,EAAI/1C,oBAC1Bi5F,EAAU7Q,KACV80a,EAAUh6c,KACVw8X,EAAcT,KAA0BS,YACxCn3V,EAAW9F,KACX+F,EAAmB3F,KACnBP,EAAU4xa,KACVlhf,EAAY0gf,KACZx6e,EAAcH,IAAuBG,YACrCm5E,EAAiB,CACnBhkK,MAAO,EACPqjB,KAAM,EACNpjB,KAAK,EACLsjB,OAAO,EACPy1H,OAAQ,EACRvhH,OAAQ,EACRwsB,OAAQ,EACR5wB,KAAK,GAEHsjI,EAAwB3B,KAAmB2B,sBA8DtC,SAAAm4a,EAAiBz1jB,EAAI2xF,GAC5B,IAYIvsG,EAZA+xH,EAAan3G,EAAGutG,YAChB1lG,EAAQ8pF,EAAM4O,QACdm1d,EAAa/je,EAAMs4D,SACnB0ra,EAAiBhke,EAAMzG,aACvBuvH,EAAUniJ,EAAoBq9f,GAAkBA,EAAiB,CAACA,GAClEC,EAAMF,EAAWlziB,MACjBqziB,EAAMH,EAAW7pkB,KACjBiqkB,EAAMJ,EAAW7rf,OACjBksf,EAAML,EAAWxthB,OACjB8thB,EAAMN,EAAW50jB,MACjBm1jB,EAAMP,EAAW1rf,QACjBsjD,EAAU,CAAC,EAEXj0C,EAAmBr5E,EAAGggG,SAAS3mB,iBAC/B+P,EAAeuI,EAAMvI,aACzB,GAAIA,EAAc,CAChBkkC,EAAQx3G,KAAO,GACf,IAAI80F,EAAWuM,EAAW0P,UACtBr7H,EAAUjF,MAAMiF,QAAQ49F,GACxBz3D,EAAInmC,EAAUzD,KAAKoH,IAAIi6F,EAAavjG,OAAQgiB,GAASA,EACrDqqJ,EAAM1mK,EAAU,SAASirB,GAC3B,OAAO2yE,EAAa3yE,EAAE,EACpB,WACK,OAAA2yE,CACT,EACA,IAAKhkG,EAAI,EAAGA,EAAIusC,EAAGvsC,IAAK,CAClB,IAAAuC,EAAI,CAAEvC,KACNulH,EAAShZ,EAAMzb,QAAQu2E,aAAa9kK,EAAGgqG,EAAOwlB,GAC9Cu1C,EAAc,CAAC,EACGpP,EAAAoP,EAAa/6D,EAAOvsG,GACtC,IAAAkoF,EAAOqkB,EAAMi4B,OAAS,CAAC,EAC3B0D,EAAQx3G,KAAK5vB,KAAKmoH,EAAIhE,mBAAmB6nD,EAAI9sK,GAAIulH,EAAQC,EAAU8hD,EAAa/kK,EAAG2lF,IACrF,MAEIhV,EAAoBq5B,EAAM77E,OAAS67E,EAAM77E,KAAKjwB,OAASgiB,EACjDylH,EAAAx3G,KAAO67E,EAAM77E,KAAKzrB,QAE1BijI,EAAQx3G,KAAO67E,EAAM77E,KAGrB,GAAAwiD,EAAoBg1D,EAAQx3G,MAC9B,IAAK1wB,EAAIkoI,EAAQx3G,KAAKjwB,OAAQT,EAAIyiB,EAAOziB,IAC/BkoI,EAAAx3G,KAAK1wB,GAAK,GAOtB,IAJAkoI,EAAQrgD,QAAU0kB,EAAM1kB,QACxBqgD,EAAQ9hD,KAAO,CAAC,EAChB8hD,EAAQn6D,MAAQ,GAChBm6D,EAAQolX,SAAW,GACdttf,EAAI,EAAGA,EAAIq1N,EAAQ50N,OAAQT,IAAK,CACnC,IAAIunK,EAAK8tD,EAAQr1N,GAAGoU,MAAM,OAClB,OAAAmzJ,EAAG,IACT,IAAK,OACKr/B,EAAAn6D,MAAMjtE,KAAK,SACnB,MACF,IAAK,QACKonI,EAAAn6D,MAAMjtE,KAAK,QACnB,MACF,QACEonI,EAAQn6D,MAAMjtE,KAAKymK,EAAG,IAElB,OAAAA,EAAG,IACT,IAAK,MACKr/B,EAAAolX,SAASxsf,KAAK,UACtB,MACF,IAAK,SACKonI,EAAAolX,SAASxsf,KAAK,OACtB,MACF,QACEonI,EAAQolX,SAASxsf,KAAKymK,EAAG,KAG3B,GAAAr0F,EAAoBs9f,GAEtB,IADQtoc,EAAA9qG,MAAQ,IAAIj8B,MAAMshB,GACrBziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrBkoI,EAAQ9qG,MAAMp9B,GAAKwwkB,EAAIxwkB,QAGzBkoI,EAAQ9qG,MAAQoziB,EAElB,GAAIt9f,EAAoBu9f,IAAQtvkB,MAAMiF,QAAQsqkB,IAAQx9f,EAAoBy9f,IAAQxvkB,MAAMiF,QAAQwqkB,IAAQzvkB,MAAMiF,QAAQyqkB,GAEpH,IADQ3oc,EAAA9hD,KAAO,IAAIjlF,MAAMshB,GACpBziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IAAK,CAC1B,IAAI8wkB,EAAQ5oc,EAAQ9hD,KAAKpmF,GAAK,CAAC,EACzB8wkB,EAAArqkB,MAAQwiH,EAAIh2C,aAAaw9f,GAAOA,EAAIzwkB,GAAKkzE,EAAoBu9f,GAAOh6f,EAAUg6f,EAAIzwkB,IAAMywkB,EAAIzwkB,GAAK,EAAIywkB,GAAOx8e,EAClH68e,EAAMrsf,OAAStjF,MAAMiF,QAAQsqkB,GAAOA,EAAI1wkB,GAAK0wkB,EACvCI,EAAAhuhB,OAASiuhB,EAAe79f,EAAoBy9f,GAAOA,EAAI3wkB,GAAK2wkB,GAClEG,EAAMp1jB,MAAQva,MAAMiF,QAAQwqkB,GAAOA,EAAI5wkB,GAAK4wkB,EAC5CE,EAAMlsf,QAAUzjF,MAAMiF,QAAQyqkB,GAAOA,EAAI7wkB,GAAK6wkB,OAGhD3oc,EAAQ9hD,KAAO,CACb3/E,KAAMgqkB,EAAMx8e,EACZxP,OAAQisf,EACR5thB,OAAQiuhB,EAAeJ,GACvBj1jB,MAAOk1jB,EACPhsf,QAASisf,GAGN,OAAA3oc,EAET,SAAS6oc,EAAep9iB,GACtB,OAAIA,GAAK,IACAA,EAAI,IAAM,OAAS,SAErBA,EAEA,SAAAq9iB,EAAmBp2jB,EAAI2xF,GAC9B,IAGIvsG,EAQA65N,EAXAp3M,EAAQ8pF,EAAM4O,QACd81d,EAAS1ke,EAAMrb,OACfg3C,EAAU,CAAC,EAEXgpc,EAAch+f,EAAoB+9f,EAAO96gB,QACzCg7gB,EAAaj+f,EAAoB+9f,EAAOt9hB,OACxCy9hB,EAAal+f,EAAoB+9f,EAAO7ziB,OACxCi0iB,EAAiBn+f,EAAoB+9f,EAAO37hB,KAAKlY,OACjDk0iB,EAAep+f,EAAoB+9f,EAAOppf,SAC1C0pf,EAAYr+f,EAAoB+9f,EAAOxqkB,MACvC+qkB,EAAiBt+f,EAAoB+9f,EAAO37hB,KAAKm3B,OAGrD,GADKykgB,IAAar3W,EAASrkE,EAAQ6xa,aAAa4J,EAAO96gB,SACnD+6gB,GAAeE,GAAcC,GAAkBC,GAAgBH,EAAY,CACrEjpc,EAAAi8O,QAAU,IAAIhjX,MAAMshB,GACpBylH,EAAAw4U,OAAS,IAAIv/c,MAAMshB,GACnBylH,EAAAi7B,OAAS,IAAIhiK,MAAMshB,GACnBylH,EAAAupc,aAAe,IAAItwkB,MAAMshB,GACjC,IAAI0hW,EAAU8sN,EAAO96gB,OACjBuqZ,EAASuwH,EAAOt9hB,MAChBwvH,EAASyvV,EAAYq+E,EAAQA,EAAOppf,QAASplE,GAC7CgvjB,EAAe7+E,EAAYq+E,EAAO37hB,KAAM27hB,EAAOppf,QAASplE,GAC5D,IAAKywD,EAAoBu+f,EAAa,IAAK,CACzC,IAAIzxX,EAAcyxX,EAElB,IADAA,EAAetwkB,MAAMshB,GAChBziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrByxkB,EAAazxkB,GAAKggN,EAGtB,IAAK9sI,EAAoBiwF,EAAO,IAAK,CACnC,IAAItjI,EAASsjI,EAEb,IADAA,EAAShiK,MAAMshB,GACVziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrBmjK,EAAOnjK,GAAK6/B,EAGZ,IAACqzC,EAAoBixS,GAAU,CACjC,IAAIhuT,EAASguT,EAEb,IADAA,EAAUhjX,MAAMshB,GACXziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrBmkX,EAAQnkX,GAAKm2D,EAGb,IAAC+c,EAAoBwtY,GAAS,CAChC,IAAI/sa,EAAQ+sa,EAEZ,IADAA,EAASv/c,MAAMshB,GACVziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrB0gd,EAAO1gd,GAAK2zC,EAOhB,IAJAu0F,EAAQi8O,QAAUA,EAClBj8O,EAAQw4U,OAASA,EACjBx4U,EAAQi7B,OAASA,EACjBj7B,EAAQupc,aAAeA,EAClBzxkB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACjBkxkB,IACFr3W,EAASrkE,EAAQ6xa,aAAa4J,EAAO96gB,OAAOn2D,KAE1C65N,IACF43W,EAAazxkB,GAAKmjK,EAAOnjK,GAAGiF,QAC5Bk+J,EAAOnjK,GAAKmjK,EAAOnjK,GAAGiF,QACfk+J,EAAAnjK,GAAG,GAAK,GAKnB,IAFAkoI,EAAQrgD,QAAU0kB,EAAM1kB,QAChBqgD,EAAAwpc,QAAU,IAAIvwkB,MAAMshB,GACvBziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACbkoI,EAAAwpc,QAAQ1xkB,GAAK2xkB,EAAa,CAChCzva,GAAIh6B,EAAQi8O,QAAQnkX,GACpBirK,GAAI/iC,EAAQw4U,OAAO1gd,IAClBusG,EACL,MAEIstH,GACF3xF,EAAQ9qG,MAAQwtD,EAAMqmf,EAAO7ziB,MAAO,SAC5B8qG,EAAA9qG,MAAM,GAAK,EACnB8qG,EAAQ83E,YAAcp1H,EAAMqmf,EAAO7ziB,MAAO,WAE1C8qG,EAAQ9qG,MAAQwtD,EAAMqmf,EAAO7ziB,MAAO,SACpC8qG,EAAQ83E,YAAcp1H,EAAMqmf,EAAO37hB,KAAKlY,MAAO,UAEzC8qG,EAAArgD,QAAU0kB,EAAM1kB,QAAUopf,EAAOppf,QACzCqgD,EAAQh3C,OAASygf,EAAa,CAC5Bzva,GAAI+ua,EAAO96gB,OACX80G,GAAIgma,EAAOt9hB,OACV44D,GAEL,IAEI/pG,EADAovkB,EAAiBl2a,EAAiBnvD,EADrB,GAGjB,GAAIgle,GAAaC,EAAgB,CAC/B,IAGIK,EAHAjoM,EAAQ1hQ,EAAQ0hQ,MAAQ,IAAIzoY,MAAMshB,GAClCqvjB,EAAc5pc,EAAQ4pc,YAAc,IAAI3wkB,MAAMshB,GAC9CsvjB,EAAY,EAEhB,GAAIR,EAAW,CACb,IAAKvxkB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrB4pY,EAAM5pY,GAAK4xkB,EAAeX,EAAOxqkB,KAAKzG,IACtC+xkB,GAAanoM,EAAM5pY,GAErB6xkB,EAAUE,EAAYtvjB,CAAA,MAGtB,IADIjgB,EAAAovkB,EAAeX,EAAOxqkB,MACrBzG,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrB4pY,EAAM5pY,GAAKwC,EAGf,GAAIgvkB,EACF,IAAKxxkB,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrB8xkB,EAAY9xkB,GAAKixkB,EAAO37hB,KAAKm3B,MAAMzsE,QAIrC,IADAwC,EAAIyukB,EAAO37hB,KAAKm3B,MACXzsE,EAAI,EAAGA,EAAIyiB,EAAOziB,IACrB8xkB,EAAY9xkB,GAAKwC,EAGrB0lI,EAAQ2pc,QAAUA,CAAA,MAElB3pc,EAAQzhI,KAAOmrkB,EAAeX,GAAUA,EAAOxqkB,MAAQ,IACvDyhI,EAAQ4pc,YAAcF,EAAeX,EAAO37hB,KAAKm3B,OAE5C,OAAAy7D,EAEA,SAAA8pc,EAAuBp3jB,EAAI2xF,EAAO3/F,GACzC,IAAIqkkB,EAAS1ke,EAAMrb,OACfg3C,EAAU,CAAC,EACX,OAACt7H,GACDA,EAAOskF,QAAUtkF,EAAOskF,OAAO/6B,OACvB+xE,EAAA8oc,EAAmBp2jB,EAAIquG,EAAIrlC,WAAW,CAAA,EAAIqtf,EAAQrkkB,EAAOskF,SAC1DtkF,EAAOskF,SACZtkF,EAAOskF,OAAOzqF,OAAcyhI,EAAAzhI,KAAOmG,EAAOskF,OAAOzqF,MACjDmG,EAAOskF,OAAO9zD,QAAe8qG,EAAAi7B,OAASv2J,EAAOskF,OAAO9zD,YAC1B,IAA1BxwB,EAAOskF,OAAOrJ,UAA4BqgD,EAAArgD,QAAUj7E,EAAOskF,OAAOrJ,UAEjEqgD,GARaA,EAUb,SAAA+pc,EAAqBr3jB,EAAI2xF,EAAO3/F,GACvC,IAAIs7H,EAAU,CAAC,EACX,IAACt7H,EAAe,OAAAs7H,EACpB,GAAIt7H,EAAOi4J,SAAU,CACnB,IAAIosa,EAAS,CACXppf,QAAS,EACTn3D,KAAM67E,EAAM77E,KACZszE,aAAcuI,EAAMvI,aACpB8B,aAAcyG,EAAMzG,aACpB++D,SAAU57C,EAAIrlC,WAAW,CAAC,EAAG2oB,EAAMs4D,WAEjCj4J,EAAOi4J,UACT57C,EAAIrlC,WAAWqtf,EAAOpsa,SAAUj4J,EAAOi4J,UAE/B38B,EAAAmoc,EAAiBz1jB,EAAIq2jB,GAE1B,OAAA/oc,EAEA,SAAAgqc,EAAqB3le,EAAO3/F,EAAQqnF,GAC3C,IAAIi0C,EAAU,CACZ89T,QAAwB,EAAfp5b,EAAO6/D,MAAYwnB,EAC5B8pE,UAAWnxJ,EAAO6gJ,UAAYx5D,EAC9B72D,MAAOxwB,EAAOwwB,OAKT,OAHHxwB,EAAO4zP,cACTt4H,EAAU37B,EAAM8zJ,SAEXn4H,EAET,IAAI4+b,EAAkB5gf,EAAU4gf,gBAC5BC,EAAc7gf,EAAU6gf,YACxBC,EAAgB9gf,EAAU8gf,cAC1BmL,EAAa,CAAC,EACdC,EAAoBjma,EAAQvN,YAAY,GAAiB,IAAdmoa,GACtC,SAAA4K,EAAapvkB,EAAGgqG,GACvB,IAEI8le,EAAYC,EAFZn8gB,EAAS5zD,EAAE2/J,GACX,GAAW,WAAX/rG,EAA4B,OAAA,KAE5B,IAAAkpG,EAAe8M,EAAQ9M,aAAalpG,GACpCo8gB,EAAapma,EAAQvN,YAAYS,EAAe,KAChDN,IAAgBoN,EAAQpN,YAAYM,EAAe,KACnDL,IAAiBmN,EAAQnN,aAAaK,EAAe,KACrDmza,EAAQh9a,EAAQ8xa,YAAYnxgB,GAEhC,GADI5zD,EAAE0oK,KAAc90G,GAAA,IAAM5zD,EAAE0oK,IACxBkna,EAAWh8gB,GAAS,OAAOg8gB,EAAWh8gB,GAC1C,IAAIxiB,EAAQw4H,EAAQ/J,eAAe7/J,EAAGgqG,GAatC,OAXE8le,EADEG,IAAUzza,EACCwza,EAAyB,IAAdxL,EAAmBpzhB,GAASy+hB,EAEvCG,EAAWxL,EAAapzhB,GAEvC2+hB,EAAYnC,EAAOkC,EAAY,CAC7B1+iB,EAAGmziB,EACHvhjB,EAAGuhjB,EACH3tU,QAAS,EAAE4tU,GAAcA,EAAaA,EAAaA,GACnDj7e,OAAQkzE,EAAegoa,GAAiBA,IAE1CmL,EAAWh8gB,GAAUm8gB,EACdA,GAAa,KAuLtB3yjB,EAAOjc,QAAU,CACfgY,MAriBO,SAAad,EAAI2xF,GACpB,IAAAvsG,EACAm7E,EAAO,CACT+V,YAAQ,EACRuhf,eAAW,EACXC,iBAAa,EACbp9hB,UAAM,EACN9pC,UAAM,EACNmnkB,YAAQ,EACRryU,YAAQ,EACR5vO,UAAM,EACNkijB,aAAS,EACTC,eAAW,GAET5+e,EAAmBr5E,EAAGggG,SAAS3mB,iBAC/B,IAAkB,IAAlBsY,EAAMjlB,QAAyB,OAAAnM,EAM/B,GALAsgF,EAAS5F,QAAQtpD,KACdpxB,EAAAzqD,KAAO2/iB,EAAiBz1jB,EAAI2xF,GACjCpxB,EAAKy3f,QAAUX,EAAqBr3jB,EAAI2xF,EAAOA,EAAMjb,UACrDnW,EAAK03f,UAAYZ,EAAqBr3jB,EAAI2xF,EAAOA,EAAMhb,aAErDkqE,EAAS7F,WAAWrpD,KACjBpxB,EAAA+V,OAAS8/e,EAAmBp2jB,EAAI2xF,GACrCpxB,EAAKs3f,UAAYT,EAAuBp3jB,EAAI2xF,EAAOA,EAAMjb,UACzDnW,EAAKu3f,YAAcV,EAAuBp3jB,EAAI2xF,EAAOA,EAAMhb,aACtDgb,EAAMhb,YAAcre,EAAoBq5B,EAAMrb,OAAOrJ,UAAU,CAC9D,IAAAwJ,EAAKkb,EAAMrb,OAAOrJ,QAEtB,IADA1M,EAAKu3f,YAAY7qf,QAAU,IAAI1mF,MAAMkwF,EAAG5wF,QACnCT,EAAI,EAAGA,EAAIqxF,EAAG5wF,OAAQT,IACzBm7E,EAAKu3f,YAAY7qf,QAAQ7nF,GAAKosF,EAAciF,EAAGrxF,GAIjD,GAAAy7J,EAAS1b,SAASxzC,GAAQ,CAC5BpxB,EAAK7lC,KAAO,CACVs6I,SAAS,EACTniC,UAAWlhD,EAAMj3D,KAAKm3B,MAAQwnB,EAC9B72D,MAAOmvE,EAAMj3D,KAAKlY,MAClByqD,QAAS0kB,EAAM1kB,SAEb,IAAA4lX,GAAUvnX,EAAU+xa,OAAO1rZ,EAAMj3D,KAAKutD,OAAS,CAAC,IAAI59F,QACxD,IAAKjF,EAAI,EAAGA,EAAIytc,EAAOhtc,SAAUT,EAC/Bytc,EAAOztc,IAAMusG,EAAMj3D,KAAKm3B,MAAQwnB,EAElC9Y,EAAK7lC,KAAKm4Z,OAASA,EAed,OAbHlhW,EAAM6zJ,SAAW7zJ,EAAM6zJ,QAAQ94K,UACjCnM,EAAKw3f,OAAST,EAAqB3le,EAAOA,EAAM6zJ,QAASnsK,IAEvDsY,EAAM8zJ,SAAW9zJ,EAAM8zJ,QAAQ/4K,UACjCnM,EAAKmlL,OAAS4xU,EAAqB3le,EAAOA,EAAM8zJ,QAASpsK,IAErDsY,EAAM/gG,MAAuB,SAAf+gG,EAAM/gG,OACxB2vE,EAAK3vE,KAAO,CACVukC,QAAQ,EACRvkC,KAAM+gG,EAAM9G,UACZgoD,UAAW,IAGRtyE,GA2eP23f,YAAa9B,EACb+B,gBAAiBf,EACjBp0Y,cAzLO,SAAqBhjL,EAAI2xF,EAAOi4K,GACvC,IAEI5mF,EACA59L,EAHAK,EAAMmkR,EAAU/jR,OAChBgiB,EAAQpiB,EAAM,EAGlB,GAAIo7J,EAAS1b,SAASxzC,IAAU9pF,EAC1B,GAAqB,OAArB8pF,EAAMj3D,KAAK8/B,MAAgB,CAE7B,IADAwoH,EAAgB,GACX59L,EAAI,EAAGA,EAAIyiB,EAAQ,EAAGziB,IACrBiD,MAAMuhR,EAAc,EAAJxkR,KAAWiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IACrD49L,EAAc98L,KAAK2B,IAAKA,IAAKA,IAAKA,MAEpBm7L,EAAA98L,KAAK0jR,EAAc,EAAJxkR,GAAQwkR,EAAc,EAAJxkR,EAAQ,IAClDiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,KAAQiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IAG7C49L,EAAA98L,KAAK2B,IAAKA,KAFVm7L,EAAA98L,KAAK0jR,EAAc,EAAJxkR,EAAQ,GAAIwkR,EAAc,EAAJxkR,EAAQ,KAMnD49L,EAAA98L,KAAK0jR,EAAUnkR,EAAM,GAAImkR,EAAUnkR,EAAM,GAC9C,MAAA,GAAqB,QAArBksG,EAAMj3D,KAAK8/B,MAAiB,CAErC,IADAwoH,EAAgB,GACX59L,EAAI,EAAGA,EAAIyiB,EAAQ,EAAGziB,IACrB,GAAAiD,MAAMuhR,EAAc,EAAJxkR,KAAWiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,KAAOiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,KAAOiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IAC9GiD,MAAMuhR,EAAc,EAAJxkR,KAAYiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IAGzC49L,EAAA98L,KAAK2B,IAAKA,KAFVm7L,EAAA98L,KAAK0jR,EAAc,EAAJxkR,GAAQwkR,EAAc,EAAJxkR,EAAQ,IAI3C49L,EAAA98L,KAAK2B,IAAKA,SACnB,CACD,IAAAuwkB,GAAUxuT,EAAc,EAAJxkR,GAASwkR,EAAc,EAAJxkR,EAAQ,IAAM,EAC3C49L,EAAA98L,KACZ0jR,EAAc,EAAJxkR,GACVwkR,EAAc,EAAJxkR,EAAQ,GAClBgzkB,EACAxuT,EAAc,EAAJxkR,EAAQ,GAClBgzkB,EACAxuT,EAAc,EAAJxkR,EAAQ,IAIV49L,EAAA98L,KAAK0jR,EAAUnkR,EAAM,GAAImkR,EAAUnkR,EAAM,GAC9C,MAAA,GAAqB,QAArBksG,EAAMj3D,KAAK8/B,MAAiB,CAErC,IADAwoH,EAAgB,GACX59L,EAAI,EAAGA,EAAIyiB,EAAQ,EAAGziB,IACrB,GAAAiD,MAAMuhR,EAAc,EAAJxkR,KAAWiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,KAAOiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,KAAOiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IAC9GiD,MAAMuhR,EAAc,EAAJxkR,KAAYiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IAGzC49L,EAAA98L,KAAK2B,IAAKA,KAFVm7L,EAAA98L,KAAK0jR,EAAc,EAAJxkR,GAAQwkR,EAAc,EAAJxkR,EAAQ,IAI3C49L,EAAA98L,KAAK2B,IAAKA,SACnB,CACD,IAAAwwkB,GAAUzuT,EAAc,EAAJxkR,EAAQ,GAAKwkR,EAAc,EAAJxkR,EAAQ,IAAM,EAC/C49L,EAAA98L,KACZ0jR,EAAc,EAAJxkR,GACVwkR,EAAc,EAAJxkR,EAAQ,GAClBwkR,EAAc,EAAJxkR,GACVizkB,EACAzuT,EAAc,EAAJxkR,EAAQ,GAClBizkB,GAIQr1Y,EAAA98L,KAAK0jR,EAAUnkR,EAAM,GAAImkR,EAAUnkR,EAAM,GAC9C,MAAA,GAAqB,OAArBksG,EAAMj3D,KAAK8/B,MAAgB,CAEpC,IADAwoH,EAAgB,GACX59L,EAAI,EAAGA,EAAIyiB,EAAQ,EAAGziB,IACrBiD,MAAMuhR,EAAc,EAAJxkR,KAAWiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IACrD49L,EAAc98L,KAAK2B,IAAKA,IAAKA,IAAKA,MAEpBm7L,EAAA98L,KAAK0jR,EAAc,EAAJxkR,GAAQwkR,EAAc,EAAJxkR,EAAQ,IAClDiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,KAAQiD,MAAMuhR,EAAc,EAAJxkR,EAAQ,IAG7C49L,EAAA98L,KAAK2B,IAAKA,KAFVm7L,EAAA98L,KAAK0jR,EAAc,EAAJxkR,GAAQwkR,EAAc,EAAJxkR,EAAQ,KAM/C49L,EAAA98L,KAAK0jR,EAAUnkR,EAAM,GAAImkR,EAAUnkR,EAAM,GAAE,MAEzCu9L,EAAA4mF,EAGpB,IAAI0uT,GAAS,EACb,IAAKlzkB,EAAI,EAAGA,EAAI49L,EAAcn9L,OAAQT,IACpC,GAAIiD,MAAM26L,EAAc59L,IAAK,CAClBkzkB,GAAA,EACT,MAGA,IAAAjykB,EAAOiykB,GAAUt1Y,EAAcn9L,OAASylF,EAAU2gf,iBAA2Bpra,EAAS7F,WAAWrpD,GAA7B,OAA+C,QACnH,GAAA2me,GAAU3me,EAAMgjJ,YAAa,CAC3B,IAAAyxK,EAAQpjO,EAAc,GACtBkoU,EAAQloU,EAAc,GAC1B,IAAK59L,EAAI,EAAGA,EAAI49L,EAAcn9L,OAAQT,GAAK,EACrCiD,MAAM26L,EAAc59L,KAAOiD,MAAM26L,EAAc59L,EAAI,KACrD49L,EAAc59L,GAAKgha,EACLpjO,EAAA59L,EAAI,GAAK8lgB,IAEvB9kG,EAAQpjO,EAAc59L,GACd8lgB,EAAAloU,EAAc59L,EAAI,IAIzB,MAAA,CACLiB,OACAujR,UAAW5mF,IA6Ebu1Y,kBA1EF,SAAkCv4jB,EAAI2xF,EAAOi4K,EAAW34Q,EAAGC,GACzD,IAAIqlT,EAAmBrkN,EAASJ,mBAAmB,YAAa,oBAC5D3H,EAAKqre,EAAQ74c,UAAU38G,EAAI2xF,EAAM8iB,MAAO,KACxCpqB,EAAKmre,EAAQ74c,UAAU38G,EAAI2xF,EAAM+iB,MAAO,KACxC7sG,EAAQ+hQ,EAAU/jR,OAAS,EAC3B6M,EAAM,CAAC,EACF,SAAA8lkB,EAAej0V,EAAQ3sM,GAC9B,IAAImkF,EAAWnkF,EAAGusF,IAAIp2G,OAAO,GACzBwyD,EAAOoxB,EAAM,SAAWoqB,GACxB,GAAAx7C,GAAQA,EAAKmM,UAAwB,WAAZ90C,EAAGrsC,MAAiC,QAAZqsC,EAAGrsC,MAAiB,CAO9D,IANL,IAAAkrT,EAAeF,EAAiBh2O,GAChCk4f,EAAU,CAAExnkB,EAAG,EAAGC,EAAG,GAAI6qH,GACzB28c,EAAU,CAAEznkB,EAAG,CAAC,EAAG,EAAG,EAAG,GAAIC,EAAG,CAAC,EAAG,EAAG,EAAG,IAAK6qH,GAC/ChkH,EAAS,IAAIyhE,aAAa,EAAI3xD,GAC9B8wjB,EAAU7wkB,IACV8wkB,GAAS,IACJxzkB,EAAI,EAAG0I,EAAI,EAAG1I,EAAIyiB,EAAOziB,IAAK0I,GAAK,EAAG,CACzC,IAAAi/C,EAAKw3L,EAAOn/O,GACZ,GAAAy2E,EAAU9uB,GAAK,CACjB,IAAI8rhB,EAAKjvT,EAAc,EAAJxkR,EAAQqzkB,GACvBphe,EAAOo/M,EAAa1pQ,EAAI3nD,GACxB0zkB,EAAKzhe,EAAK,GACVo2D,EAAKp2D,EAAK,GACd,GAAIx7B,EAAUi9f,IAAOj9f,EAAU4xF,GAAK,CAClC,IAAImpJ,EAAO7pQ,EAAK+rhB,EACZjiR,EAAM9pQ,EAAK0gH,EACR11J,EAAAjK,EAAI4qkB,EAAQ,IAAMG,EAAKjhiB,EAAGmgI,IAAI6+I,GAC9B7+S,EAAAjK,EAAI4qkB,EAAQ,IAAM9giB,EAAGmgI,IAAI8+I,GAAOgiR,EACvC9gkB,EAAOjK,EAAI4qkB,EAAQ,IAAM,EACzB3gkB,EAAOjK,EAAI4qkB,EAAQ,IAAM,EACzBC,EAAU5wkB,KAAKoH,IAAIwpkB,EAAS5rhB,EAAK+rhB,GACjCF,EAAS7wkB,KAAK8J,IAAI+mkB,EAAQ7rhB,EAAK0gH,KAIrC/6J,EAAIqpH,GAAY,CACd6tJ,YACA7xQ,SACAghkB,MAAO,CAACJ,EAASC,KAMhB,OAFPJ,EAAevnkB,EAAGk5F,GAClBque,EAAetnkB,EAAGm5F,GACX33F,GA+BPm4J,aA7BF,SAA6B7qJ,EAAI2xF,EAAO2rP,EAAU07O,GAChD,IAEI5zkB,EAFAyiB,EAAQ8pF,EAAM4O,QACd7tG,EAAM,CAAC,EAEP,GAAAmuJ,EAAS7F,WAAWrpD,GAAQ,CAC9B,IAAIsne,EAAW37O,EAAS9xQ,KACpBrY,EAAQmqR,EAASnqR,MACjBu/a,EAAWp1J,EAASo1J,SAExB,IADIhgf,EAAAzL,OAAS,IAAIV,MAAMshB,GAClBziB,EAAI,EAAGA,EAAIyiB,EAAOziB,IAAK,CAC1B,IAAIivG,EAAK2ke,EAAWhqM,MAAQgqM,EAAWhqM,MAAM5pY,GAAK4zkB,EAAWntkB,KACzDsuQ,EAAK7hM,EAAoB2ggB,GAAYA,EAAS7zkB,GAAGyG,KAAOotkB,EAASptkB,KACjEmF,EAAIsnE,EAAoBnF,GAASA,EAAMttE,OAAS,EAAIstE,EAAM/tE,GAAK+tE,EAAM,GAAKA,EAC1EjoE,EAAIotE,EAAoBo6a,GAAYA,EAAS7sf,OAAS,EAAI6sf,EAASttf,GAAKstf,EAAS,GAAKA,EACtFwmF,EAAQvua,EAAe35J,GACvBmokB,EAAQxua,EAAez/J,GACvBk0S,EAAO/qM,EAAKA,EAAK,GAAM,EAAI,EAC3B8qM,GAAQg6R,EAAQ/5R,EAAe,GAAR+5R,EACvBzmkB,EAAAzL,OAAO7B,GAAK,CAAC8zkB,EAAQ95R,EAAOjlC,EAAIglC,EAAOhlC,IAGxC,OAAAznQ,OAcT0mkB,GAAuBl1jB,EAAW,CACpC,uCAAuCpb,EAASic,GAE9C,IAAIspG,EAAMrN,KACVj8F,EAAOjc,QAAU,SAAqBkX,EAAIy+H,GACxC,IAAIjiB,EAAQiiB,EAAQ9D,OAChB0+b,EAAY,CAEdxxjB,MAAO,EAEP+yH,OAAO,EAEP6hX,YAAa,GACb68E,YAAa,GACbC,cAAe,GACfC,sBAAuB,GACvBC,wBAAyB,GACzBC,cAAe,GACfC,cAAe,GACf/8E,YAAa,GACbg9E,oBAAqB,GACrBC,sBAAuB,GAEvBxrV,YAAa,GACbyrV,cAAe,IAEbxgR,EAAW,CACbygR,QAAQ,EACRC,WAAW,EACXC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACR5zW,UAAU,GAyFL,OAvFF9nF,EAAQ9D,UACHne,EAAAiiB,EAAQ9D,OAAS,CAAC,GACpBxrB,KAAO,WACPd,EAAArlC,WAAWwzC,EAAO88L,EAAU+/Q,EAClC,EACA78c,EAAMrN,OACAqN,EAAAtlG,OAAS,SAAgBguF,GAC7B,IAAI3kC,EAAO8tC,EAAIzK,OAAOsB,EAAKsX,EAAM30G,OAMjC,GALI20G,EAAMu9c,QAAcv9c,EAAAu9c,OAAO7ijB,OAAOqpD,GAClCi8C,EAAMw9c,WAAiBx9c,EAAAw9c,UAAU9ijB,OAAOqpD,GACxCi8C,EAAM09c,QAAc19c,EAAA09c,OAAOhjjB,OAAOqpD,GAClCi8C,EAAMy9c,SAAez9c,EAAAy9c,QAAQ/ijB,OAAOqpD,EAAKpvE,OAAOovE,IAChDi8C,EAAM+pG,UAAgB/pG,EAAA+pG,SAASrvM,OAAOqpD,GACtCi8C,EAAM29c,OACR,IAAA,IAAS/0kB,EAAI,EAAGA,EAAIo3H,EAAM30G,MAAOziB,IAC/Bo3H,EAAM29c,OAAO/0kB,GAAG8xB,OAAOguF,EAG7B,EACMsX,EAAAk1C,KAAO,WAUX,IATA,IAAI7pJ,EAAQ20G,EAAM30G,MACdkyjB,EAASv9c,EAAMu9c,OACfE,EAAUz9c,EAAMy9c,QAChBC,EAAS19c,EAAM09c,OACfF,EAAYx9c,EAAMw9c,UAClBG,EAAS39c,EAAM29c,OACf5zW,EAAW/pG,EAAM+pG,SACjB8nB,EAAc7xH,EAAM6xH,YACpByrV,EAAgBt9c,EAAMs9c,cACjB10kB,EAAI,EAAGA,EAAIyiB,EAAOziB,IAAK,CAW9B,GAVI20kB,GAAUv9c,EAAM49c,UAAUh1kB,IAC5B20kB,EAAOroa,KAAKl1C,EAAM49c,UAAUh1kB,IAE1B80kB,GAAU19c,EAAMigY,YAAYr3f,IAC9B80kB,EAAOxoa,KAAKtsK,GAEV60kB,IACEz9c,EAAMk9c,cAAct0kB,IAAI60kB,EAAQvoa,KAAKtsK,GACrCo3H,EAAMm9c,cAAcv0kB,IAAY60kB,EAAAvoa,KAAKtsK,EAAIyiB,IAE3CmyjB,GAAax9c,EAAM+8c,cAAcn0kB,GAC/B,GAAA00kB,EAAc10kB,GAAGS,OAAQ,CAC3B,IAAI6D,EAAM2kH,EAAIzK,OAAO,GAAI4Y,EAAM30G,OAC3Bne,EAAAtE,GAAK00kB,EAAc10kB,GACvB40kB,EAAUtoa,KAAKhoK,EACN,MAAC2kP,EAAYjpP,GAAGS,QACzBm0kB,EAAUtoa,KAAKtsK,GAGf+0kB,EAAO/0kB,IAAMo3H,EAAMogY,YAAYx3f,IAC1B+0kB,EAAA/0kB,GAAGo7c,SAGVj6O,GACFA,EAAS70D,KAAK28E,GAEhB7xH,EAAMoe,OAAQ,CAChB,EACMpe,EAAAqT,QAAU,WACVrT,EAAMu9c,QAAUv9c,EAAMu9c,OAAOlqc,SAASrT,EAAMu9c,OAAOlqc,UACnDrT,EAAMw9c,WAAax9c,EAAMw9c,UAAUnqc,SAASrT,EAAMw9c,UAAUnqc,UAC5DrT,EAAMy9c,SAAWz9c,EAAMy9c,QAAQpqc,SAASrT,EAAMy9c,QAAQpqc,UACtDrT,EAAM09c,QAAU19c,EAAM09c,OAAOrqc,SAASrT,EAAM09c,OAAOrqc,UACnDrT,EAAM+pG,UAAY/pG,EAAM+pG,SAAS12F,SAASrT,EAAM+pG,SAAS12F,UACzDrT,EAAM29c,QACF39c,EAAA29c,OAAOl7jB,SAAQ,SAAS6W,GACxBA,EAAK+5G,SAAS/5G,EAAK+5G,SAAQ,IAGnCrT,EAAMigY,YAAc,KACpBjgY,EAAM88c,YAAc,KACpB98c,EAAM+8c,cAAgB,KACtB/8c,EAAMg9c,sBAAwB,KAC9Bh9c,EAAMi9c,wBAA0B,KAChCj9c,EAAMk9c,cAAgB,KACtBl9c,EAAMm9c,cAAgB,KACtBn9c,EAAMogY,YAAc,KACpBpgY,EAAMo9c,oBAAsB,KAC5Bp9c,EAAMq9c,sBAAwB,KAC9Br9c,EAAM6xH,YAAc,KACpB7xH,EAAMs9c,cAAgB,KACtBr7b,EAAQ9D,OAAS,IACnB,GAEGne,EAAMoe,OACLvsB,EAAArlC,WAAWwzC,EAAO68c,GAEjB78c,CACT,KAKA69c,GAAiBn2jB,EAAW,CAC9B,+BAA+Bpb,EAASic,GAEtC,IAAI0rC,EAAUu/gB,KACV3hd,EAAMrN,KACNw0d,EAAUh6c,KACVmmD,EAAetE,KAAoBsE,aACnCwlG,EAAcf,KACdk0T,EAAcpzT,KACda,EAAiBuyT,EAAYvyT,eAC7BV,EAAoBizT,EAAYjzT,kBAChCa,EAAkBoyT,EAAYpyT,gBAC9BnB,EAAiBD,KACjB34B,EAAUmnV,KACViF,EAAcnB,KACdxjgB,EAASD,IAAoBC,OAC7Bq2f,EAAkBD,KAAsBC,gBA0FnC,SAAAuO,EAAmB7oe,EAAO/5D,EAAI2oC,GACrC,IAAIq9F,EAAWjsE,EAAMmoC,UAAUliG,EAAGusF,KAC9Bs2c,EAAS94Z,EAAa/pI,EAAI2oC,EAAKw4f,MAAO,CAAE72Z,QAAQ,IACpDtE,EAASzuK,IAAMyuK,EAASzuK,IAAIgC,OAAOspkB,EAAOtrkB,KAC1CyuK,EAAS/rK,IAAM+rK,EAAS/rK,IAAIV,OAAOspkB,EAAO5okB,KA7F5CkT,EAAOjc,QAAU,SAAckX,EAAI2xF,GACjC,IAQIvsG,EARA+xH,EAAan3G,EAAGutG,YAChBpjB,EAAKwH,EAAMwwD,IAAMqza,EAAQ74c,UAAU38G,EAAI2xF,EAAM8iB,MAAO,KACpDpqB,EAAKsH,EAAM0wD,IAAMmza,EAAQ74c,UAAU38G,EAAI2xF,EAAM+iB,MAAO,KACpD+pB,EAAUtnB,EAAWuN,OAAO/yB,EAAM8iB,MAAQ9iB,EAAM+iB,OAChDjvH,EAAMksG,EAAM4O,QACZm6d,EAAmBj1kB,GAAOwmkB,EAC1BhmkB,EAAa,EAANR,EACP8zJ,EAAQ,CAAC,EAET8uH,EAAQl+K,EAAGqxE,aAAa7pE,EAAO,KAC/B22K,EAAQj+K,EAAGmxE,aAAa7pE,EAAO,KAC/B42K,EAAOpB,EAAYx1K,EAAOxH,EAAI,IAAKk+K,GACnCG,EAAOrB,EAAYx1K,EAAOtH,EAAI,IAAKi+K,GACnCr3Q,EAAIs3Q,EAAKlxK,KACTnmG,EAAIs3Q,EAAKnxK,KACb1F,EAAM4hH,GAAKtiN,EACX0gG,EAAM6hH,GAAKtiN,EACPygG,EAAMsiJ,mBACRtiJ,EAAM45d,OAASljT,EACf12K,EAAMi6d,SAAWrjT,EAAK9B,OACtB90K,EAAMk6d,OAAStjT,EAAK7B,MAElB/0K,EAAMuiJ,mBACRviJ,EAAM65d,OAASljT,EACf32K,EAAMm6d,SAAWtjT,EAAK/B,OACtB90K,EAAMo6d,OAASvjT,EAAK9B,MAElB,IAAAkD,EAAY,IAAIrjR,MAAMN,GACtB00kB,EAAO,IAAIp0kB,MAAMd,GACrB,IAAKL,EAAI,EAAGA,EAAIK,EAAKL,IACTwkR,EAAI,EAAJxkR,GAAS6L,EAAE7L,KAAOwwE,EAAS/tE,IAAMoJ,EAAE7L,GACnCwkR,EAAI,EAAJxkR,EAAQ,GAAK8L,EAAE9L,KAAOwwE,EAAS/tE,IAAMqJ,EAAE9L,GACjDu1kB,EAAKv1kB,GAAKA,EAER,GAAY,QAAZ+kG,EAAG5+F,KACL,IAAKnG,EAAI,EAAGA,EAAIa,EAAMb,GAAK,EACzBwkR,EAAUxkR,GAAK+kG,EAAG4tE,IAAI6xG,EAAUxkR,IAGhC,GAAY,QAAZilG,EAAG9+F,KACL,IAAKnG,EAAI,EAAGA,EAAIa,EAAMb,GAAK,EACzBwkR,EAAUxkR,GAAKilG,EAAG0tE,IAAI6xG,EAAUxkR,IAGhCs1kB,GAAiC,QAAZvwe,EAAG5+F,MAA8B,QAAZ8+F,EAAG9+F,KACzCguJ,EAAAp/G,KAAOsW,EAAQm5N,GAErBrwH,EAAMnsE,IAAMutf,EAEd5zT,EAAe/mQ,EAAI2xF,GACnB,IAGI6wE,EAHAjiG,EA4CN,SAAsBvgE,EAAIy+H,EAAS9sC,EAAOi4K,EAAW34Q,EAAGC,GACtD,IAAIqvE,EAAO4tK,EAAQrtO,MAAMd,EAAI2xF,GAUzB,GATApxB,EAAK+V,SACP/V,EAAK+V,OAAOszL,UAAYA,GAEtBrpM,EAAK7lC,MAAQkvO,EAAU/jR,OAAS,GAC9BwoH,EAAArlC,WACFzI,EAAK7lC,KACLyzM,EAAQnrD,cAAchjL,EAAI2xF,EAAOi4K,IAGjCrpM,EAAKw3f,QAAUx3f,EAAKmlL,OAAQ,CAC9B,IAAI3tP,EAASo2O,EAAQoqV,kBAAkBv4jB,EAAI2xF,EAAOi4K,EAAW34Q,EAAGC,GAC5DqvE,EAAKw3f,QACP1pd,EAAIrlC,WAAWzI,EAAKw3f,OAAQhgkB,EAAO9G,GAEjCsvE,EAAKmlL,QACPr3I,EAAIrlC,WAAWzI,EAAKmlL,OAAQ3tP,EAAO7G,GAoBhC,OAjBHqvE,EAAKzqD,OACHu4F,EAAArlC,WACFzI,EAAKzqD,KACL,CAAE8zP,aACFz7B,EAAQtjF,aAAa7qJ,EAAI2xF,EAAOpxB,EAAKzqD,KAAMyqD,EAAK+V,SAE9C+3B,EAAArlC,WACFzI,EAAKy3f,QACL,CAAEpuT,aACFz7B,EAAQtjF,aAAa7qJ,EAAI2xF,EAAOpxB,EAAKzqD,KAAMyqD,EAAKs3f,YAE9Cxpd,EAAArlC,WACFzI,EAAK03f,UACL,CAAEruT,aACFz7B,EAAQtjF,aAAa7qJ,EAAI2xF,EAAOpxB,EAAKzqD,KAAMyqD,EAAKu3f,eAG7Cv3f,EAjFIq6f,CAAa56jB,EAAIy+H,EAAS9sC,EAAOi4K,EAAW34Q,EAAGC,GACtDsrH,EAAQ+9c,EAAYv6jB,EAAIy+H,GAmCrB,OAlCPypI,EAAgB/wJ,EAAYxlB,GAEvB+oe,EAEMn6f,EAAK+V,SACPksF,EAAAjiG,EAAK+V,OAAO2gf,SAAWlvkB,KAAK8J,IAAI0uE,EAAK+V,OAAOzqF,KAAM,IAFlD22K,EAAAulG,EAAep2K,EAAOlsG,GAI/B4hR,EAAkBrnQ,EAAI2xF,EAAOxH,EAAIE,EAAIp5F,EAAGC,EAAGsxK,GACvCjiG,EAAKw3f,QAAQyC,EAAmB7oe,EAAOxH,EAAI5pB,EAAKw3f,QAChDx3f,EAAKmlL,QAAQ80U,EAAmB7oe,EAAOtH,EAAI9pB,EAAKmlL,QAChDnlL,EAAK3vE,OAAS4rH,EAAMu9c,WAAcA,QAAS,GAC3Cx5f,EAAK+V,SAAWkmC,EAAMw9c,cAAiBA,WAAY,GACnDz5f,EAAK7lC,OAAS8hF,EAAM09c,WAAcA,QAAS,IAC1C35f,EAAKw3f,SAAUx3f,EAAKmlL,QAAYlpI,EAAMy9c,YAAeA,SAAU,GAChE15f,EAAKzqD,OAAS0mG,EAAM29c,WAAcA,QAAS,GAC3C55f,EAAK+V,SAAa/V,EAAA+V,OAAOukf,KAAOp1kB,GAC9B+2H,EAAAigY,YAAYv2f,KAAKq6E,EAAK7lC,MACtB8hF,EAAAk9c,cAAcxzkB,KAAKq6E,EAAKw3f,QACxBv7c,EAAAm9c,cAAczzkB,KAAKq6E,EAAKmlL,QACxBlpI,EAAA88c,YAAYpzkB,KAAKq6E,EAAK3vE,MACtB4rH,EAAA+8c,cAAcrzkB,KAAKq6E,EAAK+V,QACxBkmC,EAAAg9c,sBAAsBtzkB,KAAKq6E,EAAKs3f,WAChCr7c,EAAAi9c,wBAAwBvzkB,KAAKq6E,EAAKu3f,aAClCt7c,EAAAogY,YAAY12f,KAAKq6E,EAAKzqD,MACtB0mG,EAAAo9c,oBAAoB1zkB,KAAKq6E,EAAKy3f,SAC9Bx7c,EAAAq9c,sBAAsB3zkB,KAAKq6E,EAAK03f,WAChCz7c,EAAA6xH,YAAYnoP,KAAK,IACjBs2H,EAAAs9c,cAAc5zkB,KAAK,IACzBqzJ,EAAM5e,OAASne,EACf+8B,EAAM57G,MAAQ6+E,EAAM30G,MACpB0xI,EAAMtoJ,EAAIA,EACVsoJ,EAAMroJ,EAAIA,EACVqoJ,EAAMqwH,UAAYA,EACZptJ,EAAA30G,QACC,CAAC,CAAE5W,GAAG,EAAOC,GAAG,EAAO0a,EAAG2tI,EAAO5nD,SAC1C,KAkDAmpe,GAAqB52jB,EAAW,CAClC,qCAAqCpb,EAASic,GAE5C,IAAIspG,EAAMrN,KACN5uB,EAASxC,IACT4B,EAAcH,IAAuBG,YAgCzCzsE,EAAOjc,QAAU,CACfiykB,mBAhCF,SAA4Bj7d,GACtB,IAWA16G,EAAG0I,EAXHs8H,EAAMtqB,EAAG,GACTnO,EAAQy4B,EAAIz4B,MACZ4nD,EAAQnvB,EAAIx+G,EACZ4wG,EAAQ+8B,EAAM5e,OACdh9F,EAAQ47G,EAAM57G,MACdq9hB,EAAMx+c,EAAM6xH,YAAY1wM,GACxBs9hB,EAAQz+c,EAAMs9c,cAAcn8hB,GAC5Bu9hB,EAAW1+c,EAAMogY,YAAYj/c,GAC7Bw9hB,EAAU3+c,EAAMo9c,oBAAoBj8hB,IAAU,CAAC,EAC/Cy9hB,EAAY5+c,EAAMq9c,sBAAsBl8hB,IAAU,CAAC,EACnD4iC,EAAO8tC,EAAIrlC,WAAW,CAAA,EAAIkyf,GAE1B,GAAAF,EAAIn1kB,QAAUo1kB,EAAMp1kB,OAAQ,CAC9B,IAAIukK,EAAM+wa,EAAQ34iB,MACd6nI,EAAM+wa,EAAU54iB,MAChBywB,EAAOiohB,EAAS14iB,MAChB64iB,EAAehtd,EAAI/1C,oBAAoBrlB,GAE3C,IADAstB,EAAK/9C,MAAQ,IAAIj8B,MAAMorG,EAAM4O,SACxBn7G,EAAI,EAAGA,EAAI41kB,EAAIn1kB,OAAQT,IAC1B0I,EAAIktkB,EAAI51kB,GACRm7E,EAAK/9C,MAAM10B,GAAKs8J,IAAQixa,EAAepohB,EAAKnlD,GAAKmlD,GAEnD,IAAK7tD,EAAI,EAAGA,EAAI61kB,EAAMp1kB,OAAQT,IAAK,CACjC0I,EAAImtkB,EAAM71kB,GACV,IAAIk2kB,EAAQD,EAAepohB,EAAKnlD,GAAKmlD,EAChCstB,EAAA/9C,MAAM10B,GAAKu8J,IAAYD,EAAMkxa,EAAQlpf,EAAO/B,WAAWirf,EAAO9pf,KAGvEgrC,EAAM29c,OAAOx8hB,GAAOzmB,OAAOqpD,QAS7Bg7f,GAAkBr3jB,EAAW,CAC/B,iCAAiCpb,EAASic,GAExC,IAAI87I,EAAW9F,KACXggb,EAAqBD,KAAqBC,mBAC9Ch2jB,EAAOjc,QAAU,SAAgB8gP,EAAYqzC,GAC3C,IAAIn9K,EAAK8pI,EAAW9pI,GAChB3V,EAAKy/I,EAAWn1H,MAChBpqB,EAAKu/I,EAAWl1H,MAChBziG,EAAY,GACZ0/E,EAAQmO,EAAG,GAAGnO,MACd4nD,EAAQz5C,EAAG,GAAGl0F,EACdnmB,EAAMksG,EAAM4O,QACZtvG,EAAIsoJ,EAAMtoJ,EACVC,EAAIqoJ,EAAMroJ,EACVsrH,EAAQ+8B,EAAM5e,OACdh9F,EAAQ47G,EAAM57G,MACd,IAAC6+E,EAAc,OAAAvqG,EACf,IAAAgpI,EAAU4F,EAAS5F,QAAQtpD,GAC3BqpD,EAAa6F,EAAS7F,WAAWrpD,GACjC6pe,GAAgBxgb,IAAeC,EACnC,IAAsB,IAAlBtpD,EAAMjlB,SAAoB8uf,EAAqB,OAAAvpjB,EACnD,IAAI+ojB,EAAM,GACNC,EAAQ,GACZ,IAAwB,IAApBh+S,IAA8BA,EAAgB71C,WAChD,IAAA,IAAShiP,EAAI,EAAGA,EAAIK,EAAKL,IACnB63R,EAAgBtnQ,SAAS,CAAC4jI,EAAMsjD,IAAIz3M,GAAIm0J,EAAMujD,IAAI13M,KAAK,EAAOA,EAAGwkP,IACnEoxV,EAAI90kB,KAAKd,GACT6sB,EAAU/rB,KAAK,CACb42J,YAAa13J,EACb6L,EAAGk5F,EAAGkuE,IAAIpnK,EAAE7L,IACZ8L,EAAGm5F,EAAGguE,IAAInnK,EAAE9L,OAGd61kB,EAAM/0kB,KAAKd,GAIjB,GAAI41J,EAAY,CACd,IAAIg/a,EAAYx9c,EAAMw9c,UACtB,GAAKgB,EAAIn1kB,QAAWo1kB,EAAMp1kB,QAIf,IAAC22H,EAAM6xH,YAAY1wM,GAAO93C,SAAW22H,EAAMs9c,cAAcn8hB,GAAO93C,OAAQ,CACjF,IAAIu1kB,EAAY,IAAI70kB,MAAMi2H,EAAM30G,OAChCuzjB,EAAUz9hB,GAAS6+E,EAAMi9c,wBAAwB97hB,GACvCq8hB,EAAA9ijB,OAAOnnB,MAAMiqkB,EAAWoB,QAPF,CAChC,IAAIF,EAAW,IAAI30kB,MAAMi2H,EAAM30G,OAC/BqzjB,EAASv9hB,GAAS6+E,EAAM+8c,cAAc57hB,GAC5Bq8hB,EAAA9ijB,OAAOnnB,MAAMiqkB,EAAWkB,EACzB,EAWN,OALD1+c,EAAA6xH,YAAY1wM,GAASq9hB,EACrBx+c,EAAAs9c,cAAcn8hB,GAASs9hB,EACzBhgb,GACF8/a,EAAmBj7d,GAEd7tF,CACT,KAKAwpjB,GAAqBv3jB,EAAW,CAClC,qCAAqCpb,EAASic,GAE5C,IAAI6qK,EAAQk7Y,KACZ/ljB,EAAOjc,QAAU,CACf2oG,WAAY,QACZj5F,KAAM,YACN41F,eAAgBy2L,KAChB52L,WAAY,CAAC,KAAM,OAAQ,YAAa,UAAW,cAAe,aAAc,gBAChFnZ,WAAYy3e,KACZx8d,eAAgB48d,KAChB1jc,mBAAoB48I,KACpB3/I,SAAU+0J,KACVxuH,aAAcmga,KACdnyb,KAAM4/b,KACNv8X,YAAaluB,EAAMkuB,YACnB/nF,aAAcwld,KACdjuf,KAAM,CAAA,MAMRouf,GAAmBx3jB,EAAW,CAChC,iCAAiCpb,EAASic,GAExC,IAAIqtC,EAAQ6kc,KAIH,SAAA3mF,EAAStgV,EAAO66W,GACL,MAAdA,IAAiCA,GAAA,GACrC,IAAItna,EAAIysD,EAAM,GAAI/wD,EAAI+wD,EAAM,GAAI9kF,EAAI8kF,EAAM,GAAIh/E,EAAIg/E,EAAM,GAajD,OAZE,MAALh/E,IAAeA,EAAA65b,EAAa,EAAI,KAChCA,IACGtna,GAAA,IACAtE,GAAA,IACA/zB,GAAA,IACA8F,GAAA,KAMK,UAJZuyB,EAAuB,IAAnB6uB,EAAM7uB,EAAG,EAAG,QAChBtE,EAAuB,IAAnBmzB,EAAMnzB,EAAG,EAAG,OAGa,MAF7B/zB,EAAuB,IAAnBknD,EAAMlnD,EAAG,EAAG,OAEyB,IADzC8F,EAAuB,IAAnBohD,EAAMphD,EAAG,EAAG,MAhBlB+T,EAAOjc,QAAUwna,EACjBvrZ,EAAOjc,QAAQ2b,GAAK6rZ,EACpBvrZ,EAAOjc,QAAQgB,KAkBN,SAAWiD,EAAG89b,GAErB,IAAItna,GADJx2B,GAAKA,KACS,GACVkyB,GAAS,SAAJlyB,KAAkB,GACvB7B,GAAS,MAAJ6B,KAAe,EACpBiE,EAAQ,IAAJjE,EACR,OAAmB,IAAf89b,EAA6B,CAACtna,EAAGtE,EAAG/zB,EAAG8F,GACpC,CAACuyB,EAAI,IAAKtE,EAAI,IAAK/zB,EAAI,IAAK8F,EAAI,SAMzC2qkB,GAAwBz3jB,EAAW,CACrC,sCAAsCpb,EAASic,GAE7C,IAAIpB,EAAwBpa,OAAOoa,sBAC/B28V,EAAkB/2W,OAAOE,UAAU4Y,eACnCu5jB,EAAmBrykB,OAAOE,UAAUsa,qBAuCxCgB,EAAOjc,QAhCP,WACM,IACE,IAACS,OAAOk5X,OACH,OAAA,EAEL,IAAAo5M,EAAQ,IAAIpukB,OAAO,OAEvB,GADAoukB,EAAM,GAAK,KACkC,MAAzCtykB,OAAOka,oBAAoBo4jB,GAAO,GAC7B,OAAA,EAGT,IADA,IAAIC,EAAQ,CAAC,EACJ12kB,EAAI,EAAGA,EAAI,GAAIA,IACtB02kB,EAAM,IAAMrukB,OAAOqC,aAAa1K,IAAMA,EAKxC,GAAwB,eAHXmE,OAAOka,oBAAoBq4jB,GAAOtvjB,KAAI,SAASzf,GAC1D,OAAO+ukB,EAAM/ukB,EAAC,IAEL1G,KAAK,IACP,OAAA,EAET,IAAI01kB,EAAQ,CAAC,EAIb,MAHA,uBAAuBvikB,MAAM,IAAIyF,SAAQ,SAASsgR,GAChDw8S,EAAMx8S,GAAUA,CAAA,IAEqC,yBAAnDh2R,OAAOgjB,KAAKhjB,OAAOk5X,OAAO,CAAA,EAAIs5M,IAAQ11kB,KAAK,UAIxCwX,GACA,OAAA,GAGMm+jB,GAAoBzykB,OAAOk5X,OAAS,SAASzwX,EAAQ4b,GAIpE,IAHI,IAAA9jB,EAEAy/W,EADA9kW,EAxCN,SAAkBxX,GACZ,GAAAA,QACI,MAAA,IAAIrD,UAAU,yDAEtB,OAAOL,OAAO0D,GAoCLg1X,CAASjwX,GAETpK,EAAI,EAAGA,EAAIqE,UAAUpG,OAAQ+B,IAAK,CAEzC,IAAA,IAASmV,KADFjT,EAAAP,OAAO0C,UAAUrE,IAElB04W,EAAgBlzW,KAAKtD,EAAMiT,KAC1B0H,EAAA1H,GAAOjT,EAAKiT,IAGnB,GAAI4G,EAAuB,CACzB4lW,EAAU5lW,EAAsB7Z,GAChC,IAAA,IAAS1E,EAAI,EAAGA,EAAImkX,EAAQ1jX,OAAQT,IAC9Bw2kB,EAAiBxukB,KAAKtD,EAAMy/W,EAAQnkX,MACtCqf,EAAG8kW,EAAQnkX,IAAM0E,EAAKy/W,EAAQnkX,MAK/B,OAAAqf,CACT,KAKAw3jB,GAAmB/3jB,EAAW,CAChC,kCAAkCpb,EAASic,GAClC+C,EAAAhf,QAAU,SAASq9d,GACD,iBAAZA,IAAsBA,EAAU,CAACA,IAG5C,IAFA,IAAIC,EAAQ,GAAG/7d,MAAM+C,KAAKnB,UAAW,GACjClG,EAAQ,GACHX,EAAI,EAAGA,EAAI+ge,EAAQtge,OAAS,EAAGT,IACtCW,EAAMG,KAAKige,EAAQ/ge,GAAIghe,EAAMhhe,IAAM,IAG9B,OADDW,EAAAG,KAAKige,EAAQ/ge,IACZW,EAAMM,KAAK,GACpB,KAKA61kB,GAAsBh4jB,EAAW,CACnC,oCAAoCpb,EAASic,GAE3CA,EAAOjc,QAAU,SAAoBqC,EAAKusG,EAAMyke,GACzC51kB,MAAMiF,QAAQ2wkB,KAAoBA,EAAA,GAAG9xkB,MAAM+C,KAAKnB,UAAW,IAChE,IAAA,IAAS7G,EAAI,EAAG8qB,EAAIisjB,EAAQt2kB,OAAQT,EAAI8qB,EAAG9qB,IAAK,CAC1C,IAAA66G,EAAOk8d,EAAQ/2kB,GACnB,IAAA,IAASgb,KAAQ6/F,EACf,SAAmB,IAAfvI,EAAKt3F,IAAqB7Z,MAAMiF,QAAQksG,EAAKt3F,KAAUjV,EAAIiV,KAAUs3F,EAAKt3F,KAC1EA,KAAQs3F,EAAM,CACZ,IAAAt8F,EACJ,IAAmB,IAAf6kG,EAAK7/F,GAAgBhF,EAASs8F,EAAKt3F,OAC9B,KAAe,IAAf6/F,EAAK7/F,GAAiB,SAAA,GACA,mBAAf6/F,EAAK7/F,SAEJ,KADfhF,EAAS6kG,EAAK7/F,GAAMs3F,EAAKt3F,GAAOjV,EAAKusG,IACd,SAEzBvsG,EAAIiV,GAAQhF,GAIX,OAAAjQ,CACT,KAKAixkB,GAAuBl4jB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5CA,EAAOjc,QAA+B,oBAAdwwB,YAA8B,OAAOnF,KAAKmF,UAAUC,YAAc,YAAYpF,KAAKmF,UAAU+ijB,gBAKrHC,GAAqBp4jB,EAAW,CAClC,mCAAmCpb,EAASic,GAE1CA,EAAOjc,QAAUoxE,EACjBn1D,EAAOjc,QAAQoxE,QAAUn1D,EAAOjc,QAAQgkc,MAAQ5yX,EAChDn1D,EAAOjc,QAAQyzkB,QAAUx3jB,EAAOjc,QAAQ0zkB,MAE/B,SAAQn3kB,EAAKm3kB,GACpB,GAAIn3kB,EAAIQ,OAAQ,CACd,GAAIR,aAAei0E,aAAc,OAAO,IAAIA,aAAaj0E,EAAIQ,QACvD22kB,aAAiBljgB,eAAekjgB,EAAQtigB,EAAQ70E,IACtD,IAAA,IAASD,EAAI,EAAG8qB,EAAIssjB,EAAM32kB,OAAQT,EAAI8qB,EAAG9qB,IACvCo3kB,EAAMp3kB,GAAKC,EAAID,GAAKo3kB,EAAMp3kB,GAErB,OAAAo3kB,EAET,OAAOtigB,EAAQ70E,EAAM60E,EAAQ70E,KAV3B,IAAAo3kB,EAAO,IAAInjgB,aAAa,GAY5B,SAASY,EAAQ70E,GACf,OAAIA,EAAIQ,OACFR,aAAei0E,aAAqBj0E,EACjC,IAAIi0E,aAAaj0E,IAE1Bo3kB,EAAK,GAAKp3kB,EACHo3kB,EAAK,QAMdC,GAAiBx4jB,EAAW,CAC9B,wCAAwCpb,EAASic,GAuBtC,SAAAg/W,EAAe1+X,EAAKD,GACpB,OAQT,SAAyBC,GACvB,GAAIkB,MAAMiF,QAAQnG,GAAa,OAAAA,EATxB2+X,CAAgB3+X,IAtBhB,SAAsBA,EAAKD,GAClC,IAAIqhY,EAAK,MAAQphY,EAAM,KAAO,oBAAsBwD,QAAUxD,EAAIwD,OAAOqR,WAAa7U,EAAI,cAC1F,GAAI,MAAQohY,EAAI,CACV,IAAA6pM,EAAID,EAAI98W,EAAIvxI,EAAIxvE,EAAO,GAAI29jB,GAAK,EAAMC,GAAK,EAC3C,IACE,GAAA78W,GAAMkzK,EAAKA,EAAGr5X,KAAK/H,IAAMoiB,KAAM,IAAMriB,eAGzB+qkB,GAAMG,EAAK/8W,EAAGnmN,KAAKq5X,IAAKjoR,QAAUhsG,EAAKtM,KAAKoqkB,EAAGrokB,OAAQuK,EAAK3M,SAAWT,GAAI+qkB,GAAK,UACzFtyjB,GACPuyjB,GAAK,EAAMC,EAAKxyjB,CAAA,CAChB,QACI,IACF,IAAKsyjB,GAAM,MAAQ1pM,EAAGxC,SAAWjiT,EAAKykT,EAAGxC,SAAU16X,OAAOy4E,KAAQA,GAAK,MAAA,CACvE,QACA,GAAIouf,EAAU,MAAAC,GAGX,OAAA79jB,GAIsB0xX,CAAsB7+X,EAAKD,IAAMg/X,EAA4B/+X,EAAKD,IA8BnG,WACQ,MAAA,IAAIwE,UAAU,6IA/BmFy6X,GAEzG,SAASs4M,EAAmBt3kB,GACnB,OAET,SAA4BA,GAC1B,GAAIkB,MAAMiF,QAAQnG,GAAM,OAAO8+X,EAAkB9+X,GAH1Cu3kB,CAAmBv3kB,IAQ5B,SAA0B8vX,GACxB,GAAsB,oBAAXtsX,QAAmD,MAAzBssX,EAAKtsX,OAAOqR,WAA2C,MAAtBi7W,EAAK,cAA8B,OAAA5uX,MAAMuD,KAAKqrX,GATlF0nN,CAAiBx3kB,IAAQ++X,EAA4B/+X,IAwBzF,WACQ,MAAA,IAAIuE,UAAU,wIAzB2EkzkB,GAWxF,SAAA14M,EAA4BzhX,EAAG+8D,GACtC,GAAK/8D,EAAL,CACA,GAAiB,iBAANA,EAAuB,OAAAwhX,EAAkBxhX,EAAG+8D,GACnD,IAAA3yE,EAAIxD,OAAOE,UAAUsC,SAASqB,KAAKuV,GAAGtY,MAAM,GAAK,GAErD,MADU,WAAN0C,GAAkB4V,EAAEvK,cAAarL,EAAI4V,EAAEvK,YAAYI,MAC7C,QAANzL,GAAqB,QAANA,EAAoBxG,MAAMuD,KAAK6Y,GACxC,cAAN5V,GAAqB,2CAA2ConB,KAAKpnB,GAAWo3X,EAAkBxhX,EAAG+8D,QAArG,CALI,EAOD,SAAAykT,EAAkB9+X,EAAKI,IACnB,MAAPA,GAAeA,EAAMJ,EAAIQ,YAAcR,EAAIQ,QAC/C,IAAA,IAAST,EAAI,EAAG6jQ,EAAO,IAAI1iQ,MAAMd,GAAML,EAAIK,EAAKL,IAAK6jQ,EAAK7jQ,GAAKC,EAAID,GAC5D,OAAA6jQ,EAQT,IAAIj5K,EAAQmna,KACRkuE,EAAYgI,KACZ0P,EAAUrB,KACVjrhB,EAAUu/gB,KACVgN,EAAUrB,KACV56I,EAAUk7I,KACV/lU,EAAO62T,KACPkQ,EAAaf,KACbpO,EAAUP,KACVr1J,EAAKkkK,KACLc,EAAMZ,KACNa,EAAY/P,KACZzyX,EAAUyiY,EACL,SAAAA,EAAQztX,EAAMjnE,GACrB,IAAI9sI,EAAQrP,KACZ,KAAMA,gBAAgB6wkB,UAAiB,IAAIA,EAAQztX,EAAMjnE,GACrC,mBAATinE,GACJjnE,IAASA,EAAU,CAAC,GACzBA,EAAQinE,KAAOA,IAELjnE,EAAAinE,EACHA,EAAA,MAELjnE,GAAWA,EAAQ7iJ,SAAQ6iJ,EAAQkhI,UAAYlhI,GAEnD,IAAoB20b,EAAhBlzK,GADJx6M,EAAOjnE,EAAQinE,MACAwmD,IAAqBmnU,EAAU,GAC1CC,EAAY,IAChBhxkB,KAAKixkB,cAAgBtlK,EACrBmlK,EAAiB1tX,EAAKm3O,QAAQ,CAC5Br7b,KAAM,IAAInF,WAAWi3kB,MACrB1rgB,MAAO0rgB,EACPhze,OAAQ,EACRh/F,KAAM,QACNu5B,OAAQ,OACRm6b,MAAO,QACPC,MAAO,QACPr7P,IAAK,UACL10N,IAAK,YAEP6tkB,EAAQzwkB,KAAM,CACZojN,OACAipO,GAAIzuB,EACJ/4Y,OAjB0E,GAkB1EqsjB,YAlBqH,CAAC,MAmBtHC,eAnB+F,CAAC,MAoBhGJ,UACAK,WArB6D,GAsB7DN,iBACAE,YACAjtM,QAvB6B,IAwB7Bx1H,OAAQqvJ,EAAIrvJ,SAEdvuQ,KAAK2qB,OAAOwxH,GACZ,IAAIk1b,EAAgB,CAClBv/I,SAAU,CACRw/I,iBAAkBn1b,EAAQm1b,eAC1B5wf,QAAS0iI,EAAKvvM,KAAK,WACnB09jB,YAAa,SAAqB/iU,EAAK36P,GACrC,MAAO,CAACxE,EAAM4hkB,cAAgB,EAAID,EAAWF,EAAe9ye,OAC9D,EACAsuV,WAAYlpO,EAAK3qM,QAAQ,cACzBkb,MAAOyvL,EAAKvvM,KAAK,SACjB29jB,WAAYpuX,EAAKvvM,KAAK,cACtB+f,UAAWwvL,EAAKvvM,KAAK,aACrB49jB,eAAgBruX,EAAKvvM,KAAK,kBAC1B69jB,cAAetuX,EAAKvvM,KAAK,iBACzBi9jB,kBAEFvof,WAAY,CAEV7jF,EAAG,SAAW8pQ,EAAK36P,GACjB,OAAOA,EAAKuoQ,OAAS,CACnB3hR,OAAQoZ,EAAK89jB,eACbpgJ,OAAQ,EACR72b,OAAQ,EAEZ,EACAiK,EAAG,SAAW6pQ,EAAK36P,GACjB,OAAOA,EAAKwoQ,OAAS,CACnB5hR,OAAQoZ,EAAK89jB,eACbpgJ,OAAQ,EACR72b,OAAQ,EAEZ,EACAk3kB,OAAQ,SAAgBpjU,EAAK36P,GAC3B,OAAOA,EAAKuoQ,MAAQ,CAClBg/H,SAAU,CAAC,EAAG,IACZ,CACF3gZ,OAAQoZ,EAAKg+jB,oBACbtgJ,OAAQ,EACR72b,OAAQ,EAEZ,EACAo3kB,OAAQ,SAAgBtjU,EAAK36P,GAC3B,OAAOA,EAAKwoQ,MAAQ,CAClB++H,SAAU,CAAC,EAAG,IACZ,CACF3gZ,OAAQoZ,EAAKg+jB,oBACbtgJ,OAAQ,EACR72b,OAAQ,EAEZ,EACA4E,KAAM,SAAckvQ,EAAK36P,GAChB,OAAAA,EAAKvU,KAAKhG,OAAS,CACxBmB,OAAQoZ,EAAKk+jB,WACbxgJ,OAAQ,EACR72b,OAAQ,GACN,CACF0gZ,SAAU,CAAC5/Y,KAAKk7B,MAAkB,IAAZ7iB,EAAKvU,KAAa+P,EAAM00X,UAElD,EACAiuM,WAAY,SAAoBxjU,EAAK36P,GAC5B,OAAAA,EAAKm+jB,WAAW14kB,OAAS,CAC9BmB,OAAQoZ,EAAKk+jB,WACbxgJ,OAAQ,EACR72b,OAAQ,GACN,CACF0gZ,SAAU,CAAC5/Y,KAAKk7B,MAAwB,IAAlB7iB,EAAKm+jB,WAAmB3ikB,EAAM00X,UAExD,EACAysM,QAAS,SAAkBhiU,EAAK36P,GACvB,OAAAA,EAAKoiB,MAAM38B,OAAS,CACzBmB,OAAQoZ,EAAKsic,YACb5kB,OAAQlib,EAAM4hkB,cAAgB,EAAI,EAClCv2kB,OAAQ,GACN,CACF0gZ,SAAU/rY,EAAM4hkB,cAAgBF,EAAQjzkB,MAAmB,EAAb+V,EAAKoiB,MAAwB,EAAbpiB,EAAKoiB,MAAY,GAAK,CAACpiB,EAAKoiB,OAE9F,EACAg8iB,cAAe,SAAuBzjU,EAAK36P,GAClC,OAAAA,EAAKglM,YAAYv/M,OAAS,CAC/BmB,OAAQoZ,EAAKsic,YACb5kB,OAAQlib,EAAM4hkB,cAAgB,EAAI,EAClCv2kB,OAAQ2U,EAAM4hkB,cAAgB,EAAI,GAChC,CACF71L,SAAU/rY,EAAM4hkB,cAAgBF,EAAQjzkB,MAAyB,EAAnB+V,EAAKglM,YAAoC,EAAnBhlM,EAAKglM,YAAkB,GAAK,CAAChlM,EAAKglM,aAE1G,EACAumB,SAAU,SAAkBovC,EAAK36P,GACxB,OAAoB,IAApBA,EAAKq+jB,WAAsB,CAChC92L,SAAU,CAAC,IACTvnY,EAAKq+jB,WAAar+jB,EAAKq+jB,WAAa,CACtC92L,SAAU,CAAC,MAIjBppH,MAAO,CACLh/K,QAAQ,EACR/8E,MAAO,CAAC,EAAG,EAAG,EAAG,GAEjBjhB,KAAM,CACJm9jB,OAAQ,YACRC,OAAQ,sBACRC,SAAU,sBACVC,SAAU,QAGdC,QAAS,CACPv/d,QAAQ,EACR+6F,IAAKqV,EAAKvvM,KAAK,aAEjBowb,SAAU7gP,EAAKvvM,KAAK,YACpB8sb,QAAS,CACP3tV,QAAQ,GAEVxwF,MAAO,CACLwwF,QAAQ,GAEVo+U,SAAUhuO,EAAKvvM,KAAK,YACpByH,MAAO8nM,EAAKvvM,KAAK,SACjBnZ,OAAQ0oN,EAAKvvM,KAAK,UAClBqmW,UAAW,UAET8yN,EAAgByD,EAAQ,CAAC,EAAGY,GAChCrE,EAAcwF,KAAOh+I,EAAQ,CAAC,0jCAC9Bw4I,EAAcj+V,KAAOylN,EAAQ,CAAC,shEACzBx0b,KAAAyykB,WAAarvX,EAAK4pX,GACvB,IAAI0F,EAAgBjC,EAAQ,CAAC,EAAGY,GAChCqB,EAAcF,KAAOh+I,EAAQ,CAAC,0xBAC9Bk+I,EAAc3jW,KAAOylN,EAAQ,CAAC,q3DAC1B7oB,IACF+mK,EAAcF,KAAOE,EAAcF,KAAKjtkB,QAAQ,aAAc,cAC9DynkB,EAAcwF,KAAOxF,EAAcwF,KAAKjtkB,QAAQ,aAAc,eAE3DvF,KAAA2ykB,WAAavvX,EAAKsvX,GAEzB7B,EAAQ7tf,SAAW,CACjB/sD,MAAO,QACP4iL,YAAa,cACbm5X,WAAY,EACZ1ykB,KAAM,GACNohF,QAAS,EACTqJ,YAAQ,EACRk6W,SAAU,KACV53b,MAAO,KACPumkB,UAAW,KACXt3jB,MAAO,EACP5gB,OAAQ,EACRi2G,OAAQ,KACR0sK,UAAW,GACXixT,KAAM,KAEAuC,EAAA3zkB,UAAU+2c,OAAS,WAKlB,OAJHv0c,UAAUpG,QACP0G,KAAA2qB,OAAOnnB,MAAMxD,KAAMN,WAE1BM,KAAKmlK,OACEnlK,IACT,EACQ6wkB,EAAA3zkB,UAAUioK,KAAO,WAEvB,IADA,IAAIr0J,EAAS9Q,KACJsnX,EAAO5nX,UAAUpG,OAAQ2xB,EAAO,IAAIjxB,MAAMstX,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC1Et8V,EAAAs8V,GAAQ7nX,UAAU6nX,GAEzB,IAAI1iW,EAAS7kB,KAAK6kB,OAKlB,GAJoB,IAAhBoG,EAAK3xB,QAAgBU,MAAMiF,QAAQgsB,EAAK,MAAuB,OAAfA,EAAK,GAAG,IAAejxB,MAAMiF,QAAQgsB,EAAK,GAAG,OAC/FA,EAAOA,EAAK,IAEdjrB,KAAKojN,KAAKyvX,WACN5njB,EAAK3xB,OACP,IAAA,IAAST,EAAI,EAAGA,EAAIoyB,EAAK3xB,OAAQT,IAC/BmH,KAAKizS,SAASp6S,EAAGoyB,EAAKpyB,SAGjBgsB,EAAAnS,SAAQ,SAASuT,EAAOiE,GAC7BpZ,EAAOmiS,SAAS/oR,EAAE,IAGf,OAAAlqB,IACT,EACA6wkB,EAAQ3zkB,UAAU+1S,SAAW,SAAS5+R,EAAIo6jB,GACxC,IAAI5pjB,EAAS7kB,KAAK6kB,OACdoB,EAAQpB,EAAOxQ,GAMnB,GALmB,iBAARo6jB,IACJp6jB,EAAAo6jB,EACLxojB,EAAQpB,EAAO4pjB,GACTA,EAAA,MAEFxojB,GAASA,EAAM3K,OAAS2K,EAAMy6D,QAApC,CACIz6D,EAAMisjB,WAAW,IACnBlykB,KAAK2ykB,WAAW3ykB,KAAK8ykB,qBAAqB,EAAG7sjB,EAAOwojB,IAGtD,IADA,IAAIsE,EAAQ,GACHl6kB,EAAI,EAAGA,EAAIotB,EAAMisjB,WAAW54kB,OAAQT,IACtCotB,EAAMisjB,WAAWr5kB,MAA8B,IAAxBotB,EAAMisjB,WAAWr5kB,IAAgBotB,EAAMisjB,WAAWr5kB,GAAGqG,KAAK5F,SAChFy5kB,EAAAp5kB,KAAK6J,MAAMuvkB,EAAO3C,EAAmBpwkB,KAAK8ykB,qBAAqBj6kB,EAAGotB,EAAOwojB,KAE7EsE,EAAMz5kB,QACR0G,KAAKyykB,WAAWM,EAV4B,CAYhD,EACAlC,EAAQ3zkB,UAAU41kB,qBAAuB,SAASE,EAAU/sjB,EAAOmra,GACjE,IAAI/kb,EAAQ4Z,EAAM5Z,MAAOuhC,EAAO3nB,EAAM2nB,KAAMq2Z,EAAWh+a,EAAMg+a,SAAUiuI,EAAajsjB,EAAMisjB,WAAYe,EAAkBhtjB,EAAMgtjB,gBAAiB33jB,EAAQ2K,EAAM3K,MAE7J,GADgBtb,KAAAojN,MACXx1K,EACH,OAAIwjZ,EACK,CAACq/I,EAAQ,CAAC,EAAGxqjB,EAAO,CACzByrjB,cAAe1xkB,KAAKmxkB,eAAe6B,GACnCd,WAAYA,EAAWc,GACvB13jB,MAAO81a,EAAS93b,OAChB83b,WACA12b,OAAQ,KAGL,CAAC+1kB,EAAQ,CAAC,EAAGxqjB,EAAO,CACzByrjB,cAAe1xkB,KAAKmxkB,eAAe6B,GACnCd,WAAYA,EAAWc,GACvBt4kB,OAAQ,KAGZ,IAAIq4kB,EAAQ,GACRrQ,EAAM90hB,EAAKvhC,MAAMA,EAAO,CAC1Bq2jB,KAAK,EACL7phB,GAAI,EAAExsC,EAAM,GAAKA,EAAM,IAAM43b,EAAS3+X,OAAQj5D,EAAM,GAAKA,EAAM,IAAM43b,EAASjmW,UAEhF,GAAIozV,EAAU,CAIZ,IAHI,IACAtwB,EADmBoxK,EAAWc,GACN9zkB,KACxBA,EAAO,IAAInF,WAAWuhB,GACjBziB,EAAI,EAAGA,EAAIu4b,EAAS93b,OAAQT,IAAK,CACpC,IAAAwb,EAAK+8a,EAASv4b,GAClBqG,EAAKmV,GAAMysZ,EAAOA,EAAKzsZ,GAAM,EAE/B4+jB,EAAgBC,QAAQh0kB,GAEjB,IAAA,IAAAykB,EAAI++iB,EAAIppkB,OAAQqqB,KAAO,CAC9B,IAAIwvjB,EAAS37M,EAAekrM,EAAI/+iB,GAAI,GAAIpmB,EAAO41kB,EAAO,GAAIj7jB,EAAKi7jB,EAAO,GACtEJ,EAAMp5kB,KAAK82kB,EAAQ,CAAA,EAAIxqjB,EAAO,CAC5ByrjB,cAAe1xkB,KAAKmxkB,eAAe6B,GACnCd,WAAY9gJ,EAAW6hJ,EAAkBf,EAAWc,GACpDt4kB,OAAQ6C,EACR+d,MAAOpD,EAAK3a,KAGT,OAAAw1kB,CACT,EACQlC,EAAA3zkB,UAAUytB,OAAS,WAEzB,IADA,IAAIpY,EAASvS,KACJ89X,EAAQp+X,UAAUpG,OAAQ2xB,EAAO,IAAIjxB,MAAM8jY,GAAQ7C,EAAQ,EAAGA,EAAQ6C,EAAO7C,IAC/EhwW,EAAAgwW,GAASv7X,UAAUu7X,GAEtB,GAAChwW,EAAK3xB,OAAN,CACgB,IAAhB2xB,EAAK3xB,QAAgBU,MAAMiF,QAAQgsB,EAAK,MAAYA,EAAAA,EAAK,IAC7D,IAAIpG,EAAS7kB,KAAK6kB,OAAQ+4Y,EAAM59Z,KAAKqsb,GAAIjpO,EAAOpjN,KAAKojN,KAAM2gL,EAAU/jY,KAAK+jY,QAASitM,EAAYhxkB,KAAKgxkB,UAAWD,EAAU/wkB,KAAK+wkB,QAC9H/wkB,KAAK6kB,OAASA,EAASoG,EAAKhL,KAAI,SAASk8H,EAAStjJ,GAC5C,IAAAotB,EAAQpB,EAAOhsB,GACf,QAAY,IAAZsjJ,EAA2B,OAAAl2H,EACf,OAAZk2H,EAA4BA,EAAA,CAC9BkhI,UAAW,MAEe,mBAAZlhI,EAAkCA,EAAA,CAChDi3b,OAAQj3b,GAEqB,iBAAfA,EAAQ,KAA2BA,EAAA,CACjDkhI,UAAWlhI,IAgBa,QAd1BA,EAAUwtH,EAAKxtH,EAAS,CACtBkhI,UAAW,wBACXixT,KAAM,wBACNhvkB,KAAM,oBACN0ykB,WAAY,+IACZ/7iB,MAAO,yCACP4iL,YAAa,2DACb9uH,OAAQ,uBACR19E,MAAO,wBACP43b,SAAU,oCACVvjX,QAAS,6BACTiwB,OAAQ,iCACRsge,cAAe,qEAEL5zT,YAAoBlhI,EAAQkhI,UAAY,IACvB,MAAzBlhI,EAAQ80b,gBAAuB1+jB,EAAO0+jB,cAAgB90b,EAAQ80b,eAC7DhrjB,IACIpB,EAAAhsB,GAAKotB,EAAQ,CAClB5R,GAAIxb,EACJ86B,MAAO,KACPC,UAAW,KACX49iB,WAAY,KACZC,eAAgB,KAEhBS,WAAY,GAEZe,gBAAiB7vX,EAAK3oN,OAAO,CAC3ByE,KAAM,IAAInF,WAAW,GACrB69b,MAAO,SACP54b,KAAM,UAIR+ykB,WAAY3uX,EAAK3oN,OAAO,CACtByE,KAAM,IAAInF,WAAW,GACrB69b,MAAO,UACP54b,KAAM,UAERm3c,YAAa/yP,EAAK3oN,OAAO,CACvByE,KAAM,IAAInF,WAAW,GACrB69b,MAAO,UACP54b,KAAM,UAER2ykB,eAAgBvuX,EAAK3oN,OAAO,CAC1ByE,KAAM,IAAInF,WAAW,GACrB69b,MAAO,UACP54b,KAAM,UAER6ykB,oBAAqBzuX,EAAK3oN,OAAO,CAC/ByE,KAAM,IAAInF,WAAW,GACrB69b,MAAO,UACP54b,KAAM,WAGVm9I,EAAUs0b,EAAQ,CAAA,EAAII,EAAQ7tf,SAAUm5D,IAEtCA,EAAQkhI,aAAe,WAAYlhI,KACrCA,EAAQpyD,OAAS9jE,EAAM8jE,cAChB9jE,EAAM8jE,QAEXoyD,EAAQpyD,UAAY,cAAeoyD,KACrCA,EAAQkhI,UAAYp3P,EAAMo3P,iBACnBp3P,EAAMo3P,WAEX,IAAAg2T,EAAU,EAAGC,EAAW,EAmK5B,GAlKW5C,EAAAzqjB,EAAOk2H,EAAS,CAAC,CAC1Bmyb,MAAM,EACNhvkB,KAAM,SAAejE,EAAG2uB,GAGf,OAFE,MAAL3uB,IAAeA,EAAAw1kB,EAAQ7tf,SAAS1jF,MACzB+zkB,GAAAh4kB,GAAKA,EAAE/B,OAAS,EAAI,EACxB+B,CACT,EACA22kB,WAAY,SAAqB32kB,EAAG2uB,GAG3B,OAFE,MAAL3uB,IAAeA,EAAAw1kB,EAAQ7tf,SAASgvf,YACzBqB,GAAAh4kB,GAAKA,EAAE/B,OAAS,EAAI,EACxB+B,CACT,EACAqlF,QAAS9nD,WAET3C,MAAO,SAAgBt6B,EAAGquB,GAIjB,OAHE,MAALruB,IAAeA,EAAAk1kB,EAAQ7tf,SAAS/sD,OAChCt6B,EAAA4W,EAAOghkB,YAAY53kB,GACvB23kB,IACO33kB,CACT,EACAk9M,YAAa,SAAsBl9M,EAAGquB,GAI7B,OAHE,MAALruB,IAAeA,EAAAk1kB,EAAQ7tf,SAAS61H,aAChCl9M,EAAA4W,EAAOghkB,YAAY53kB,GACvB23kB,IACO33kB,CACT,EACAg1G,OAAQ,SAAgB6ie,EAASxpjB,EAAQmob,GAEhC,MADD,UAAWA,IAAWA,EAAS9lc,MAAQ,MACtCmnkB,CACT,EACAn2T,UAAW,SAAmBo2T,EAAYzpjB,EAAQmob,GAChD,IAAIm8H,EAAOtkjB,EAAOskjB,KACdqD,EAAiB3njB,EAAO2njB,eAAgBE,EAAsB7njB,EAAO6njB,oBAAqBoB,EAAkBjpjB,EAAOipjB,gBACnH,GAAAQ,EAAW/ukB,GAAK+ukB,EAAW9ukB,EAgCtB,OA/BH8ukB,EAAW/ukB,EAAEpL,OACf0wB,EAAOoyP,MAAQ,CACb3hR,OAAQ2oN,EAAK3oN,OAAOg5kB,EAAW/ukB,GAC/BhK,OAAQ,EACR62b,OAAQ,EACRj2a,MAAOm4jB,EAAW/ukB,EAAEpL,QAGtB0wB,EAAOoyP,MAAQ,CACb3hR,OAAQg5kB,EAAW/ukB,EAAEjK,OACrBC,OAA8B,EAAtB+4kB,EAAW/ukB,EAAEhK,QAAc,EACnC62b,OAAqC,GAA5BkiJ,EAAW/ukB,EAAE6sb,QAAU,GAChCj2a,MAAOm4jB,EAAW/ukB,EAAE4W,OAGpBm4jB,EAAW9ukB,EAAErL,OACf0wB,EAAOqyP,MAAQ,CACb5hR,OAAQ2oN,EAAK3oN,OAAOg5kB,EAAW9ukB,GAC/BjK,OAAQ,EACR62b,OAAQ,EACRj2a,MAAOm4jB,EAAW9ukB,EAAErL,QAGtB0wB,EAAOqyP,MAAQ,CACb5hR,OAAQg5kB,EAAW9ukB,EAAElK,OACrBC,OAA8B,EAAtB+4kB,EAAW9ukB,EAAEjK,QAAc,EACnC62b,OAAqC,GAA5BkiJ,EAAW9ukB,EAAE4sb,QAAU,GAChCj2a,MAAOm4jB,EAAW9ukB,EAAE2W,OAGjB0O,EAAA1O,MAAQ9f,KAAK8J,IAAI0kB,EAAOoyP,MAAM9gQ,MAAO0O,EAAOqyP,MAAM/gQ,OAClDm4jB,EAEIA,EAAAlS,EAAQkS,EAAY,WACjC,IAAIC,EAAS1pjB,EAAO1O,MAAQ9f,KAAKO,MAAM03kB,EAAWn6kB,OAAS,GACvDq3G,EAAS3mF,EAAO2mF,OAAS+ie,EAAS5a,EAAU2a,EAAY,GAAK,KAgBjE,GAfKthI,EAAS9lc,OAAU2d,EAAO3d,eACtB2d,EAAO3d,MACd8lc,EAAS9lc,MAAQskG,GAEdwhW,EAASpoX,QAAW//D,EAAO+/D,gBACvB//D,EAAO+/D,OACdooX,EAASpoX,OAAS,MAEhBukf,KAAkB,IAATA,GAAiBoF,EAASpF,GAC9BtkjB,EAAA4jB,KAAOsW,EAAQuvhB,EAAY,CAChC9ie,WAEO29d,GAAQA,EAAKh1kB,SACtB0wB,EAAO4jB,KAAO0giB,GAEZtkjB,EAAO4jB,KAAM,CACf,IAAIomC,EAAO,CACTkmS,UAAW,SACX09E,MAAO,SACP14b,KAAM8qB,EAAO4jB,KACb5uC,KAAM,UAEJgrB,EAAOona,SAAiBpna,EAAAona,SAASp9W,GACzBhqD,EAAAona,SAAWhuO,EAAKguO,SAASp9W,GAEnC,IAAA2/f,EAAahD,EAAIhjgB,QAAQ8lgB,GAetB,OAdQ9B,EAAA,CACbzykB,KAAMy0kB,EACN/7I,MAAO,YAGWi6I,EAAA,CAClB3ykB,KAFcyxkB,EAAIX,QAAQyD,EAAYE,GAGtC/7I,MAAO,YAEOq7I,EAAA,CACd/zkB,KAAM,IAAInF,WAAW25kB,GACrB10kB,KAAM,QACN44b,MAAO,WAEF67I,IAER,CAED1pf,OAAQ,SAAgBwgf,EAASvgjB,EAAQmob,GACvC,IAAI+/H,EAAalojB,EAAOkojB,WAKxB,GAJWA,EAAAx/jB,SAAQ,SAASjY,GAC1B,OAAOA,GAAUA,EAAO6oI,SAAW7oI,EAAO6oI,SAAQ,IAEpD4uc,EAAW54kB,OAAS,EACfixkB,GAAiC,iBAAfA,EAAQ,GAGxB,CAEL,IADA,IAAIqJ,EAAc,GACT15M,EAAK,EAAGv2W,EAAInoB,KAAKoH,IAAI2nkB,EAAQjxkB,OAAQ0wB,EAAO1O,OAAQ4+W,EAAKv2W,EAAGu2W,IAAM,CACzE,IAAItiQ,EAAMrlH,EAAOshkB,UAAUtJ,EAAQrwM,IAC9B05M,EAAYh8c,KAAMg8c,EAAYh8c,GAAO,IAAI79H,WAAWiwB,EAAO1O,QACpDs4jB,EAAAh8c,GAAKsiQ,GAAM,EAEzB,IAAA,IAAS45M,EAAO,EAAGA,EAAOF,EAAYt6kB,OAAQw6kB,IACxC,GAACF,EAAYE,GAAb,CACJ,IAAI9/f,EAAO,CACT90E,KAAM00kB,EAAYE,GAClB90kB,KAAM,QACN44b,MAAO,UAEJs6I,EAAW4B,GAGH5B,EAAA4B,GAAM9/f,GAFjBk+f,EAAW4B,GAAQ1wX,EAAK3oN,OAAOu5E,GAIjCk+f,EAAW4B,GAAM50kB,KAAO00kB,EAAYE,EAXZ,OAT1B5B,EADS3/jB,EAAOshkB,UAAUtJ,KACT,EAuBZ,OAAAA,CACT,EACAl+jB,MAAO,SAAe+zI,EAAQp2H,EAAQmob,GACpC,IAAIxhW,EAAS3mF,EAAO2mF,OACpB,GAAKA,EAME,OALFyvC,IAAiBA,EAAAzvC,GACtB3mF,EAAO2J,MAAQ,CAAC,GAAKysH,EAAO,GAAKA,EAAO,IAAK,GAAKA,EAAO,GAAKA,EAAO,KAC9Dp2H,EAAA4J,UAAY,EAAEwsH,EAAO,IAAKA,EAAO,IACxCp2H,EAAOwnjB,WAAab,EAAIV,MAAMjmjB,EAAO2J,OACrC3J,EAAOynjB,eAAiBd,EAAIV,MAAMjmjB,EAAO4J,WAClCwsH,CACT,EACA6jT,SAAU,SAAkB8vI,GAEnB,OADInD,EAAUmD,GAAM,CAACn2K,EAAI/zJ,mBAAoB+zJ,EAAI9zJ,0BAIxDupU,EAAS,CACX,IAAI9mY,EAAStmL,EAAO3K,EAAQixL,EAAOjxL,MAAOhc,EAAOitM,EAAOjtM,KAAM0ykB,EAAazlY,EAAOylY,WAAYD,EAAaxlY,EAAOwlY,WAC9GtvM,EAAQ,IAAI1oY,WAAmB,EAARuhB,GACvB,GAAAhc,EAAKhG,QAAU04kB,EAAW14kB,OAC5B,IAAA,IAASshY,EAAM,EAAGA,EAAMt/W,EAAOs/W,IAC7B6H,EAAY,EAAN7H,GAAWp/X,KAAKk7B,MAA+C,KAA3B,MAAbp3B,EAAKs7X,GAAet7X,EAAOA,EAAKs7X,IAAcmJ,GAC3EtB,EAAY,EAAN7H,EAAU,GAAKp/X,KAAKk7B,MAAiE,KAAvC,MAAnBs7iB,EAAWp3M,GAAeo3M,EAAaA,EAAWp3M,IAAcmJ,GAG1FguM,EAAA,CACT7ykB,KAAMujY,EACNm1D,MAAO,YAGX,GAAI07I,EAAU,CACZ,IACIt3a,EADAg4a,EAAU/tjB,EAAO4ka,EAASmpJ,EAAQ14jB,MAAOod,EAASs7iB,EAAQ/9iB,MAAO4iL,EAAcm7X,EAAQn7X,YAAas9P,EAAc69H,EAAQ79H,YAE9H,GAAI5jc,EAAO0+jB,eACL,GAAAv4iB,EAAOp/B,QAAUu/M,EAAYv/M,OAAQ,CAC9B0iK,EAAA,IAAIjiK,WAAoB,EAAT8wb,GACxB,IAAA,IAASopJ,EAAM,EAAGA,EAAMppJ,EAAQopJ,IAAO,CACjC,IAAAC,EAAWx7iB,EAAOu7iB,GACtBj4a,EAAa,EAANi4a,GAAWlD,EAAmB,EAAXmD,GAC1Bl4a,EAAa,EAANi4a,EAAU,GAAKlD,EAAmB,EAAXmD,EAAe,GAC7Cl4a,EAAa,EAANi4a,EAAU,GAAKlD,EAAmB,EAAXmD,EAAe,GAC7Cl4a,EAAa,EAANi4a,EAAU,GAAKlD,EAAmB,EAAXmD,EAAe,GACzC,IAAAjC,EAAgBp5X,EAAYo7X,GAChCj4a,EAAa,EAANi4a,EAAU,GAAKlD,EAAwB,EAAhBkB,GAC9Bj2a,EAAa,EAANi4a,EAAU,GAAKlD,EAAwB,EAAhBkB,EAAoB,GAClDj2a,EAAa,EAANi4a,EAAU,GAAKlD,EAAwB,EAAhBkB,EAAoB,GAClDj2a,EAAa,EAANi4a,EAAU,GAAKlD,EAAwB,EAAhBkB,EAAoB,UAIlD,GAAAv5iB,EAAOp/B,QAAUu/M,EAAYv/M,OAAQ,CACvC0iK,EAAS,IAAIjiK,WAAoB,EAAT8wb,EAAa,GACrC,IAAA,IAASspJ,EAAM,EAAGA,EAAMtpJ,EAAQspJ,IACX,MAAfz7iB,EAAOy7iB,KACTn4a,EAAa,EAANm4a,GAAWz7iB,EAAOy7iB,GAAOnD,EACzBh1a,EAAM,EAANm4a,EAAU,GAAK34kB,KAAKO,MAAM28B,EAAOy7iB,GAAOnD,IAEzB,MAApBn4X,EAAYs7X,KACdn4a,EAAa,EAANm4a,EAAU,GAAKt7X,EAAYs7X,GAAOnD,EAClCh1a,EAAM,EAANm4a,EAAU,GAAK34kB,KAAKO,MAAM88M,EAAYs7X,GAAOnD,IAKhD76H,EAAA,CACVj3c,KAAM88J,GAAU,IAAIjiK,WAAW,GAC/BiF,KAAM,QACN44b,MAAO,YAGJ,OAAA3xa,CAAA,GAxSS,CA0SpB,EACQ4qjB,EAAA3zkB,UAAU22kB,UAAY,SAASO,GACrC,IAGIC,EAHAlD,EAAiBnxkB,KAAKmxkB,eAAgB/tX,EAAOpjN,KAAKojN,KAAM8tX,EAAclxkB,KAAKkxkB,YAC3EpskB,EAAa,MAAPsvkB,EAAc,EAAIlD,EAAY/2kB,QAAQi6kB,GAC5C,GAAAtvkB,GAAO,EAAU,OAAAA,EAEjB,GAAAsvkB,aAAer6kB,YAAcq6kB,aAAehogB,kBACpCiogB,EAAAD,MACL,CACKC,EAAA,IAAIt6kB,WAAWq6kB,EAAI96kB,QAC7B,IAAA,IAAST,EAAI,EAAG8qB,EAAIywjB,EAAI96kB,OAAQT,EAAI8qB,EAAG9qB,IACrCw7kB,EAAQx7kB,GAAc,IAATu7kB,EAAIv7kB,GAGrB,IAAI6pD,EAASlnD,KAAKO,MAAMP,KAAKmjB,KAAK01jB,EAAQ/6kB,SAUnC,OATPwL,EAAMqskB,EAAe73kB,OACrB43kB,EAAYv3kB,KAAKy6kB,GACFjD,EAAAx3kB,KAAKypN,EAAKm3O,QAAQ,CAC/Bv2C,SAAU,EACV9kZ,KAAMm1kB,EACN3xhB,SACA40K,IAAK,SACL10N,IAAK,YAEAkC,CACT,EACQ+rkB,EAAA3zkB,UAAUq2kB,YAAc,SAASv3a,GACvC,IAAIo1a,EAAapxkB,KAAKoxkB,WAAYL,EAAU/wkB,KAAK+wkB,QAASC,EAAYhxkB,KAAKgxkB,UACtEh3kB,MAAMiF,QAAQ+8J,KACjBA,EAAS,CAACA,IAEZ,IAAIxhJ,EAAM,GACV,GAAyB,iBAAdwhJ,EAAO,GAAiB,CACjC,IAAI+kC,EAAU,GACV,GAAA/mM,MAAMiF,QAAQ+8J,GAChB,IAAA,IAASnjK,EAAI,EAAGA,EAAImjK,EAAO1iK,OAAQT,GAAK,EACtCkoM,EAAQpnM,KAAKqiK,EAAOl+J,MAAMjF,EAAGA,EAAI,SAGnC,IAAA,IAASy7kB,EAAM,EAAGA,EAAMt4a,EAAO1iK,OAAQg7kB,GAAO,EAC5CvzY,EAAQpnM,KAAKqiK,EAAO70J,SAASmtkB,EAAKA,EAAM,IAGnCt4a,EAAA+kC,EAEX,IAAA,IAASwzY,EAAM,EAAGA,EAAMv4a,EAAO1iK,OAAQi7kB,IAAO,CACxC,IAAA77iB,EAASsjI,EAAOu4a,GACX77iB,EAAA+qD,EAAM/qD,EAAQ,SACnB,IAAArkB,EAAKm8jB,EAAQ93iB,GAAQ,GACrB,GAAkB,MAAlB04iB,EAAW/8jB,GAAa,CAC1B,IAAIvP,EAAMiskB,EAAQz3kB,OAClB83kB,EAAW/8jB,GAAM7Y,KAAKO,MAAM+I,EAAM,GAC1BiskB,EAAAjskB,GAAO4zB,EAAO,GACtBq4iB,EAAQjskB,EAAM,GAAK4zB,EAAO,GAC1Bq4iB,EAAQjskB,EAAM,GAAK4zB,EAAO,GAC1Bq4iB,EAAQjskB,EAAM,GAAK4zB,EAAO,GAExBle,EAAA+5jB,GAAOnD,EAAW/8jB,GAIxB,OAFKrU,KAAKixkB,eAAiBF,EAAQz3kB,OAAqB,EAAZ03kB,SAAoBC,eAAgB,GAChFjxkB,KAAKw0kB,cAAczD,GACG,IAAfv2jB,EAAIlhB,OAAekhB,EAAI,GAAKA,CACrC,EACQq2jB,EAAA3zkB,UAAUs3kB,cAAgB,SAASzD,GACzC,IAAI/wkB,KAAKixkB,cAAT,CACA,IAAID,EAAYhxkB,KAAKgxkB,UAAWF,EAAiB9wkB,KAAK8wkB,eAClD2D,EAAiBj5kB,KAAK25B,KAAsB,IAAjB47iB,EAAQz3kB,OAAgB03kB,GACvD,GAAIyD,EAAiB,EAEV,IAAA,IAAA57kB,EAAqB,KAD9Bk4kB,EAAUA,EAAQjzkB,SACGxE,OAAgB03kB,EAAWn4kB,EAAI47kB,EAAiBzD,EAAWn4kB,IAC9Ek4kB,EAAQp3kB,KAAK,EAAG,EAAG,EAAG,GAGtBm3kB,EAAe9ye,OAASy2e,GACX3D,EAAAx9jB,OAAO09jB,EAAWyD,GAEnC3D,EAAe4D,SAAS,CACtBpvgB,MAAO9pE,KAAKoH,IAAqB,IAAjBmukB,EAAQz3kB,OAAe03kB,GACvChze,OAAQy2e,EACRv1kB,KAAM6xkB,GACL,EAAG,EAhBkB,CAiB1B,EACQF,EAAA3zkB,UAAUomI,QAAU,WAiBnB,OAhBFtjI,KAAA6kB,OAAOnS,SAAQ,SAASuT,GAC3BA,EAAM8rjB,WAAWzuc,UACjBr9G,EAAM0rjB,eAAeruc,UACrBr9G,EAAM4rjB,oBAAoBvuc,UAC1Br9G,EAAMkwb,YAAY7yU,UACZr9G,EAAAisjB,WAAWx/jB,SAAQ,SAAS/T,GAChC,OAAOA,GAAKA,EAAE2kI,SAAW3kI,EAAE2kI,SAAQ,IAErCr9G,EAAMgtjB,gBAAgB3vc,UAClBr9G,EAAMmra,UAAgBnra,EAAAmra,SAAS9tT,SAAQ,IAE7CtjI,KAAK6kB,OAAOvrB,OAAS,EACrB0G,KAAK8wkB,eAAextc,UACftjI,KAAAmxkB,eAAez+jB,SAAQ,SAASizJ,GACnC,OAAOA,GAAOA,EAAIriC,SAAWqiC,EAAIriC,SAAQ,IAEpCtjI,IACT,EACA,IAAI20kB,EAAWvF,KAkBf52jB,EAAOjc,QAjBa,SAAwB6mN,EAAMjnE,GAChD,IAAIy4b,EAAY,IAAIxmY,EAAQgV,EAAMjnE,GAC9B83T,EAAS2gI,EAAU3gI,OAAOlkc,KAAK6kkB,GAa5B,OAZPD,EAAS1gI,EAAQ,CACfA,SACAtpb,OAAQiqjB,EAAUjqjB,OAAO5a,KAAK6kkB,GAC9Bzva,KAAMyva,EAAUzva,KAAKp1J,KAAK6kkB,GAC1Btxc,QAASsxc,EAAUtxc,QAAQvzH,KAAK6kkB,GAChCxxX,KAAMwxX,EAAUxxX,KAChBipO,GAAIuoJ,EAAUvoJ,GACd99K,OAAQqmU,EAAUvoJ,GAAG99K,OACrB1pP,OAAQ+vjB,EAAU/vjB,OAClB0ljB,QAASqK,EAAU1D,YACnBH,QAAS6D,EAAU7D,UAEd98H,CACT,KAMA4gI,GAAiBl9jB,EAAW,CAC9B,oCAAoCpb,EAASic,GAIlC,SAAAs8jB,EAAO51kB,EAAM61kB,EAAa3tT,GACjCA,EAAMA,GAAO,EACT,IAEA1xE,EAAMI,EAAMF,EAAMI,EAAMtxM,EAAGC,EAAGqwkB,EAF9BC,EAAWF,GAAeA,EAAYz7kB,OAAQ47kB,EAAWD,EAAWF,EAAY,GAAK3tT,EAAMloR,EAAK5F,OAAQ67kB,EAAYC,EAAWl2kB,EAAM,EAAGg2kB,EAAU9tT,GAAK,GAAO13O,EAAY,GAC9K,IAAKyliB,GAAaA,EAAUj6jB,OAASi6jB,EAAUzia,KAAa,OAAAhjI,EAGxD,GADAuliB,IAAsBE,EAmJ5B,SAAwBj2kB,EAAM61kB,EAAaI,EAAW/tT,GACpD,IAAgBvuR,EAAGK,EAAiB2L,EAAhCo+C,EAAQ,GACZ,IAAKpqD,EAAI,EAAGK,EAAM67kB,EAAYz7kB,OAAQT,EAAIK,EAAKL,KAG7CgM,EAAOuwkB,EAAWl2kB,EAFV61kB,EAAYl8kB,GAAKuuR,EACnBvuR,EAAIK,EAAM,EAAI67kB,EAAYl8kB,EAAI,GAAKuuR,EAAMloR,EAAK5F,OAChB8tR,GAAK,MAC5BviR,EAAKqW,OAAMrW,EAAKwwkB,SAAU,GACjCpyhB,EAAAtpD,KAAK27kB,EAAYzwkB,IAGzB,IADAo+C,EAAMzkC,KAAK+2jB,GACN18kB,EAAI,EAAGA,EAAIoqD,EAAM3pD,OAAQT,IAC5Bs8kB,EAAYK,EAAcvyhB,EAAMpqD,GAAIs8kB,GAE/B,OAAAA,EAhKmBM,CAAev2kB,EAAM61kB,EAAaI,EAAW/tT,IACnEloR,EAAK5F,OAAS,GAAK8tR,EAAK,CACnB1xE,EAAAE,EAAO12M,EAAK,GACZ42M,EAAAE,EAAO92M,EAAK,GACnB,IAAA,IAASrG,EAAIuuR,EAAKvuR,EAAIq8kB,EAAUr8kB,GAAKuuR,GACnC1iR,EAAIxF,EAAKrG,IAED68M,IAAaA,EAAAhxM,IADjBC,EAAAzF,EAAKrG,EAAI,IAELi9M,IAAaA,EAAAnxM,GACjBD,EAAIkxM,IAAaA,EAAAlxM,GACjBC,EAAIqxM,IAAaA,EAAArxM,GAGbqwkB,EAAY,KADtBA,EAAUx5kB,KAAK8J,IAAIswM,EAAOF,EAAMM,EAAOF,IACb,MAAQk/X,EAAU,EAGvC,OADPU,EAAaP,EAAWzliB,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,EAAS,GACtDtliB,EAET,SAAS0liB,EAAWl2kB,EAAM9E,EAAOC,EAAK+sR,EAAKvuC,GACzC,IAAIhgP,EAAGyP,EACP,GAAIuwO,IAAc88V,EAAWz2kB,EAAM9E,EAAOC,EAAK+sR,GAAO,EACpD,IAAKvuR,EAAIuB,EAAOvB,EAAIwB,EAAKxB,GAAKuuR,EAAY9+Q,EAAAstkB,EAAW/8kB,EAAGqG,EAAKrG,GAAIqG,EAAKrG,EAAI,GAAIyP,QAE9E,IAAKzP,EAAIwB,EAAM+sR,EAAKvuR,GAAKuB,EAAOvB,GAAKuuR,EAAK9+Q,EAAOstkB,EAAW/8kB,EAAGqG,EAAKrG,GAAIqG,EAAKrG,EAAI,GAAIyP,GAMhF,OAJHA,GAAQlD,EAAOkD,EAAMA,EAAK4S,QAC5B26jB,EAAWvtkB,GACXA,EAAOA,EAAK4S,MAEP5S,EAEA,SAAAwtkB,EAAa17kB,EAAOC,GACvB,IAACD,EAAc,OAAAA,EACdC,IAAWA,EAAAD,GAChB,IAAe27kB,EAAXtmkB,EAAIrV,EACL,GAED,GADQ27kB,GAAA,EACHtmkB,EAAE4lkB,UAAYjwkB,EAAOqK,EAAGA,EAAEyL,OAAqC,IAA5ButB,EAAKh5B,EAAEijK,KAAMjjK,EAAGA,EAAEyL,MAMxDzL,EAAIA,EAAEyL,SANgE,CAGlE,GAFJ26jB,EAAWpmkB,IACXA,EAAIpV,EAAMoV,EAAEijK,QACFjjK,EAAEyL,KAAM,MACV66jB,GAAA,CAAA,QAIHA,GAAStmkB,IAAMpV,GACjB,OAAAA,EAET,SAASq7kB,EAAaM,EAAKtmiB,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,EAAS32X,GAC9D,GAAK23X,EAAL,EACK33X,GAAQ22X,GA2Jf,SAAoB56kB,EAAOs7M,EAAMI,EAAMk/X,GACrC,IAAIvlkB,EAAIrV,EACL,GACW,IAARqV,EAAEmU,IAASnU,EAAEmU,EAAIqyjB,EAAOxmkB,EAAE/K,EAAG+K,EAAE9K,EAAG+wM,EAAMI,EAAMk/X,IAClDvlkB,EAAEymkB,MAAQzmkB,EAAEijK,KACZjjK,EAAE0mkB,MAAQ1mkB,EAAEyL,KACZzL,EAAIA,EAAEyL,WACCzL,IAAMrV,GACfqV,EAAEymkB,MAAMC,MAAQ,KAChB1mkB,EAAEymkB,MAAQ,KAGZ,SAAoBrxkB,GACd,IAAAhM,EAAG4W,EAAGmlB,EAAG95B,EAAGuqF,EAAM+wf,EAAWC,EAAOC,EAAOC,EAAS,EACrD,EAAA,CAKD,IAJI9mkB,EAAA5K,EACGA,EAAA,KACAwgF,EAAA,KACK+wf,EAAA,EACL3mkB,GAAG,CAIR,IAHA2mkB,IACIxhjB,EAAAnlB,EACI4mkB,EAAA,EACHx9kB,EAAI,EAAGA,EAAI09kB,IACdF,IACAzhjB,EAAIA,EAAEuhjB,OAFgBt9kB,KAMxB,IADQy9kB,EAAAC,EACDF,EAAQ,GAAKC,EAAQ,GAAK1hjB,GACjB,IAAVyhjB,IAA0B,IAAVC,IAAgB1hjB,GAAKnlB,EAAEmU,GAAKgR,EAAEhR,IAC5C9oB,EAAA2U,EACJA,EAAIA,EAAE0mkB,MACNE,MAEIv7kB,EAAA85B,EACJA,EAAIA,EAAEuhjB,MACNG,KAEEjxf,IAAW8wf,MAAQr7kB,EACX+J,EAAA/J,EACZA,EAAEo7kB,MAAQ7wf,EACHA,EAAAvqF,EAEL2U,EAAAmlB,EAENywD,EAAK8wf,MAAQ,KACHI,GAAA,QACHH,EAAY,GAtCrBI,CAAW/mkB,IArKsBumkB,EAAKtgY,EAAMI,EAAMk/X,GAE3C,IADH,IAAYtia,EAAMx3J,EAAlB0G,EAAOo0jB,EACJA,EAAItja,OAASsja,EAAI96jB,MAGlB,GAFJw3J,EAAOsja,EAAItja,KACXx3J,EAAO86jB,EAAI96jB,KACP85jB,EAAUyB,EAAYT,EAAKtgY,EAAMI,EAAMk/X,GAAW0B,EAAMV,GAC1DtmiB,EAAU/1C,KAAK+4K,EAAK75K,EAAIuuR,EAAM,GAC9B13O,EAAU/1C,KAAKq8kB,EAAIn9kB,EAAIuuR,EAAM,GAC7B13O,EAAU/1C,KAAKuhB,EAAKriB,EAAIuuR,EAAM,GAC9ByuT,EAAWG,GACXA,EAAM96jB,EAAKA,KACX0G,EAAO1G,EAAKA,UAId,IADM86jB,EAAA96jB,KACM0G,EAAM,CACXy8L,EAEe,IAATA,EAETq3X,EADAM,EAAMW,EAAuBb,EAAaE,GAAMtmiB,EAAW03O,GACzC13O,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,EAAS,GACrC,IAAT32X,GACTu4X,EAAYZ,EAAKtmiB,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,GALhCU,EAAAI,EAAaE,GAAMtmiB,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,EAAS,GAOvE,MAzBM,EA6BZ,SAAS0B,EAAMV,GACb,IAAIvxkB,EAAIuxkB,EAAItja,KAAM/zK,EAAIq3kB,EAAKr6kB,EAAIq6kB,EAAI96jB,KACnC,GAAIutB,EAAKhkC,EAAG9F,EAAGhD,IAAM,EAAU,OAAA,EAI/B,IAHA,IAAI0vC,EAAK5mC,EAAEC,EAAG6mC,EAAK5sC,EAAE+F,EAAGixB,EAAKh6B,EAAE+I,EAAG4mC,EAAK7mC,EAAEE,EAAG6mC,EAAK7sC,EAAEgG,EAAGixB,EAAKj6B,EAAEgJ,EACzDqtB,EAAKqZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EAAIzD,EAAKoZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EAAI3D,EAAKoZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EAAIxD,EAAKmZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EACpNnmB,EAAI9T,EAAEuf,KACHzL,IAAMhL,GAAG,CACd,GAAIgL,EAAE/K,GAAKstB,GAAMviB,EAAE/K,GAAKutB,GAAMxiB,EAAE9K,GAAKutB,GAAMziB,EAAE9K,GAAKwtB,GAAM0kjB,EAAgBxriB,EAAIC,EAAIC,EAAIC,EAAI7V,EAAIC,EAAInmB,EAAE/K,EAAG+K,EAAE9K,IAAM8jC,EAAKh5B,EAAEijK,KAAMjjK,EAAGA,EAAEyL,OAAS,EAAU,OAAA,EAClJzL,EAAIA,EAAEyL,KAED,OAAA,EAET,SAASu7jB,EAAYT,EAAKtgY,EAAMI,EAAMk/X,GACpC,IAAIvwkB,EAAIuxkB,EAAItja,KAAM/zK,EAAIq3kB,EAAKr6kB,EAAIq6kB,EAAI96jB,KACnC,GAAIutB,EAAKhkC,EAAG9F,EAAGhD,IAAM,EAAU,OAAA,EAK/B,IAJA,IAAI0vC,EAAK5mC,EAAEC,EAAG6mC,EAAK5sC,EAAE+F,EAAGixB,EAAKh6B,EAAE+I,EAAG4mC,EAAK7mC,EAAEE,EAAG6mC,EAAK7sC,EAAEgG,EAAGixB,EAAKj6B,EAAEgJ,EACzDqtB,EAAKqZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EAAIzD,EAAKoZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EAAI3D,EAAKoZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EAAIxD,EAAKmZ,EAAKE,EAAKF,EAAK1V,EAAK0V,EAAK1V,EAAK4V,EAAK5V,EAAK4V,EAAK5V,EACpNuja,EAAO88I,EAAOjkjB,EAAIE,EAAIwjL,EAAMI,EAAMk/X,GAAU57I,EAAO68I,EAAOhkjB,EAAIE,EAAIujL,EAAMI,EAAMk/X,GAC9EvlkB,EAAIumkB,EAAIE,MAAO11kB,EAAIw1kB,EAAIG,MACpB1mkB,GAAKA,EAAEmU,GAAKu1a,GAAQ34b,GAAKA,EAAEojB,GAAKw1a,GAAM,CAC3C,GAAI3pb,EAAE/K,GAAKstB,GAAMviB,EAAE/K,GAAKutB,GAAMxiB,EAAE9K,GAAKutB,GAAMziB,EAAE9K,GAAKwtB,GAAM1iB,IAAMhL,GAAKgL,IAAM9T,GAAKk7kB,EAAgBxriB,EAAIC,EAAIC,EAAIC,EAAI7V,EAAIC,EAAInmB,EAAE/K,EAAG+K,EAAE9K,IAAM8jC,EAAKh5B,EAAEijK,KAAMjjK,EAAGA,EAAEyL,OAAS,EAAU,OAAA,EAExK,GADAzL,EAAIA,EAAEymkB,MACF11kB,EAAEkE,GAAKstB,GAAMxxB,EAAEkE,GAAKutB,GAAMzxB,EAAEmE,GAAKutB,GAAM1xB,EAAEmE,GAAKwtB,GAAM3xB,IAAMiE,GAAKjE,IAAM7E,GAAKk7kB,EAAgBxriB,EAAIC,EAAIC,EAAIC,EAAI7V,EAAIC,EAAIp1B,EAAEkE,EAAGlE,EAAEmE,IAAM8jC,EAAKjoC,EAAEkyK,KAAMlyK,EAAGA,EAAE0a,OAAS,EAAU,OAAA,EACxK1a,EAAIA,EAAE21kB,MAED,KAAA1mkB,GAAKA,EAAEmU,GAAKu1a,GAAM,CACvB,GAAI1pb,EAAE/K,GAAKstB,GAAMviB,EAAE/K,GAAKutB,GAAMxiB,EAAE9K,GAAKutB,GAAMziB,EAAE9K,GAAKwtB,GAAM1iB,IAAMhL,GAAKgL,IAAM9T,GAAKk7kB,EAAgBxriB,EAAIC,EAAIC,EAAIC,EAAI7V,EAAIC,EAAInmB,EAAE/K,EAAG+K,EAAE9K,IAAM8jC,EAAKh5B,EAAEijK,KAAMjjK,EAAGA,EAAEyL,OAAS,EAAU,OAAA,EACxKzL,EAAIA,EAAEymkB,MAED,KAAA11kB,GAAKA,EAAEojB,GAAKw1a,GAAM,CACvB,GAAI54b,EAAEkE,GAAKstB,GAAMxxB,EAAEkE,GAAKutB,GAAMzxB,EAAEmE,GAAKutB,GAAM1xB,EAAEmE,GAAKwtB,GAAM3xB,IAAMiE,GAAKjE,IAAM7E,GAAKk7kB,EAAgBxriB,EAAIC,EAAIC,EAAIC,EAAI7V,EAAIC,EAAIp1B,EAAEkE,EAAGlE,EAAEmE,IAAM8jC,EAAKjoC,EAAEkyK,KAAMlyK,EAAGA,EAAE0a,OAAS,EAAU,OAAA,EACxK1a,EAAIA,EAAE21kB,MAED,OAAA,EAEA,SAAAQ,EAAuBv8kB,EAAOs1C,EAAW03O,GAChD,IAAI33Q,EAAIrV,EACL,EAAA,CACD,IAAIqK,EAAIgL,EAAEijK,KAAM/zK,EAAI8Q,EAAEyL,KAAKA,MACtB9V,EAAOX,EAAG9F,IAAMi8Y,EAAWn2Y,EAAGgL,EAAGA,EAAEyL,KAAMvc,IAAMm4kB,EAAcrykB,EAAG9F,IAAMm4kB,EAAcn4kB,EAAG8F,KAC1FirC,EAAU/1C,KAAK8K,EAAE5L,EAAIuuR,EAAM,GAC3B13O,EAAU/1C,KAAK8V,EAAE5W,EAAIuuR,EAAM,GAC3B13O,EAAU/1C,KAAKgF,EAAE9F,EAAIuuR,EAAM,GAC3ByuT,EAAWpmkB,GACXomkB,EAAWpmkB,EAAEyL,MACbzL,EAAIrV,EAAQuE,GAEd8Q,EAAIA,EAAEyL,WACCzL,IAAMrV,GACf,OAAO07kB,EAAarmkB,GAEtB,SAASmnkB,EAAYx8kB,EAAOs1C,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,GACtD,IAAIvwkB,EAAIrK,EACL,EAAA,CAEM,IADH,IAAAuE,EAAI8F,EAAEyW,KAAKA,KACRvc,IAAM8F,EAAEiuK,MAAM,CACnB,GAAIjuK,EAAE5L,IAAM8F,EAAE9F,GAAKk+kB,EAAgBtykB,EAAG9F,GAAI,CACpC,IAAAhD,EAAIq7kB,EAAavykB,EAAG9F,GAKxB,OAJI8F,EAAAqxkB,EAAarxkB,EAAGA,EAAEyW,MAClBvf,EAAAm6kB,EAAan6kB,EAAGA,EAAEuf,MACtBw6jB,EAAajxkB,EAAGirC,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,EAAS,QACrDU,EAAa/5kB,EAAG+zC,EAAW03O,EAAK1xE,EAAMI,EAAMk/X,EAAS,GAGvDr2kB,EAAIA,EAAEuc,KAERzW,EAAIA,EAAEyW,WACCzW,IAAMrK,GAiBR,SAAAm7kB,EAAS9wkB,EAAG9F,GACZ,OAAA8F,EAAEC,EAAI/F,EAAE+F,EAER,SAAA8wkB,EAAchoM,EAAM2nM,GACvB,IAAA8B,EAQG,SAAezpM,EAAM2nM,GACxB,IAAyDp6kB,EAAzD0U,EAAI0lkB,EAAWvlH,EAAKpiF,EAAK9oY,EAAGord,EAAKtiF,EAAK7oY,EAAGoyd,GAAK,IAC/C,EAAA,CACG,GAAAjH,GAAMrgd,EAAE9K,GAAKmrd,GAAMrgd,EAAEyL,KAAKvW,GAAK8K,EAAEyL,KAAKvW,IAAM8K,EAAE9K,EAAG,CACnD,IAAID,EAAI+K,EAAE/K,GAAKord,EAAKrgd,EAAE9K,IAAM8K,EAAEyL,KAAKxW,EAAI+K,EAAE/K,IAAM+K,EAAEyL,KAAKvW,EAAI8K,EAAE9K,GACxD,GAAAD,GAAKkrd,GAAMlrd,EAAIqyd,IACZA,EAAAryd,EACL3J,EAAI0U,EAAE/K,EAAI+K,EAAEyL,KAAKxW,EAAI+K,EAAIA,EAAEyL,KACvBxW,IAAMkrd,GAAW,OAAA70d,EAGzB0U,EAAIA,EAAEyL,WACCzL,IAAM0lkB,GACX,IAACp6kB,EAAU,OAAA,KACX,IAAiD0mC,EAAjD7f,EAAO7mB,EAAGggK,EAAKhgK,EAAE2J,EAAGopO,EAAK/yO,EAAE4J,EAAGuykB,EAAS37kB,IACvCkU,EAAA1U,EACD,GACG60d,GAAMngd,EAAE/K,GAAK+K,EAAE/K,GAAKq2J,GAAM60T,IAAOngd,EAAE/K,GAAKmykB,EAAgB/mH,EAAKhiP,EAAK8hP,EAAKmH,EAAIjH,EAAI/0T,EAAI+yE,EAAIgiP,EAAKhiP,EAAKipP,EAAKnH,EAAIE,EAAIrgd,EAAE/K,EAAG+K,EAAE9K,KACvH88B,EAAMjmC,KAAKK,IAAIi0d,EAAKrgd,EAAE9K,IAAMird,EAAKngd,EAAE/K,GAC/BoykB,EAAcrnkB,EAAG+9X,KAAU/rW,EAAMy1iB,GAAUz1iB,IAAQy1iB,IAAWznkB,EAAE/K,EAAI3J,EAAE2J,GAAK+K,EAAE/K,IAAM3J,EAAE2J,GAAKyykB,EAAqBp8kB,EAAG0U,OAChH1U,EAAA0U,EACKynkB,EAAAz1iB,IAGbhyB,EAAIA,EAAEyL,WACCzL,IAAMmS,GACR,OAAA7mB,EAlCMq8kB,CAAe5pM,EAAM2nM,GAClC,IAAK8B,EACI,OAAA9B,EAEL,IAAAkC,EAAgBL,EAAaC,EAAQzpM,GAElC,OADMsoM,EAAAuB,EAAeA,EAAcn8jB,MACnC46jB,EAAamB,EAAQA,EAAO/7jB,MA8B5B,SAAAi8jB,EAAqBp8kB,EAAG0U,GAC/B,OAAOg5B,EAAK1tC,EAAE23K,KAAM33K,EAAG0U,EAAEijK,MAAQ,GAAKjqI,EAAKh5B,EAAEyL,KAAMngB,EAAGA,EAAEmgB,MAAQ,EAqDlE,SAAS+6jB,EAAOvxkB,EAAGC,EAAG+wM,EAAMI,EAAMk/X,GAWhC,OALKtwkB,EAAc,aADdA,EAAc,YADdA,EAAc,YADdA,EAAc,WAFdA,GAAAA,EAAIgxM,GAAQs/X,EAAU,GAElBtwkB,GAAK,IACLA,GAAK,IACLA,GAAK,IACLA,GAAK,KAITC,EAAc,aADdA,EAAc,YADdA,EAAc,YADdA,EAAc,WALdA,GAAAA,EAAImxM,GAAQk/X,EAAU,GAKlBrwkB,GAAK,IACLA,GAAK,IACLA,GAAK,IACLA,GAAK,KACE,EAElB,SAAS2wkB,EAAYl7kB,GACf,IAAAqV,EAAIrV,EAAOk9kB,EAAWl9kB,EACvB,IACGqV,EAAE/K,EAAI4ykB,EAAS5ykB,GAAK+K,EAAE/K,IAAM4ykB,EAAS5ykB,GAAK+K,EAAE9K,EAAI2ykB,EAAS3ykB,KAAc2ykB,EAAA7nkB,GAC3EA,EAAIA,EAAEyL,WACCzL,IAAMrV,GACR,OAAAk9kB,EAEA,SAAAT,EAAgBxriB,EAAIC,EAAIC,EAAIC,EAAI7V,EAAIC,EAAIijB,EAAIC,GAC3C,OAAAnjB,EAAKkjB,IAAOvN,EAAKwN,KAAQzN,EAAKwN,IAAOjjB,EAAKkjB,KAAQzN,EAAKwN,IAAOrN,EAAKsN,KAAQvN,EAAKsN,IAAOvN,EAAKwN,KAAQvN,EAAKsN,IAAOjjB,EAAKkjB,KAAQnjB,EAAKkjB,IAAOrN,EAAKsN,GAE/I,SAAAi+hB,EAAgBtykB,EAAG9F,GAC1B,OAAO8F,EAAEyW,KAAKriB,IAAM8F,EAAE9F,GAAK4L,EAAEiuK,KAAK75K,IAAM8F,EAAE9F,IA6BnC,SAAkB4L,EAAG9F,GAC5B,IAAI8Q,EAAIhL,EACL,EAAA,CACG,GAAAgL,EAAE5W,IAAM4L,EAAE5L,GAAK4W,EAAEyL,KAAKriB,IAAM4L,EAAE5L,GAAK4W,EAAE5W,IAAM8F,EAAE9F,GAAK4W,EAAEyL,KAAKriB,IAAM8F,EAAE9F,GAAK+hZ,EAAWnrY,EAAGA,EAAEyL,KAAMzW,EAAG9F,GAAW,OAAA,EAC9G8Q,EAAIA,EAAEyL,WACCzL,IAAMhL,GACR,OAAA,EAnCyC8ykB,CAAkB9ykB,EAAG9F,KACpEm4kB,EAAcrykB,EAAG9F,IAAMm4kB,EAAcn4kB,EAAG8F,IAuClC,SAAaA,EAAG9F,GACvB,IAAI8Q,EAAIhL,EAAGqtO,GAAS,EAAOj5L,GAAMp0C,EAAEC,EAAI/F,EAAE+F,GAAK,EAAGo0C,GAAMr0C,EAAEE,EAAIhG,EAAEgG,GAAK,EACjE,GACG8K,EAAE9K,EAAIm0C,GAAOrpC,EAAEyL,KAAKvW,EAAIm0C,GAAMrpC,EAAEyL,KAAKvW,IAAM8K,EAAE9K,GAAKk0C,GAAMppC,EAAEyL,KAAKxW,EAAI+K,EAAE/K,IAAMo0C,EAAKrpC,EAAE9K,IAAM8K,EAAEyL,KAAKvW,EAAI8K,EAAE9K,GAAK8K,EAAE/K,IAC9GotO,GAAUA,GACZriO,EAAIA,EAAEyL,WACCzL,IAAMhL,GACR,OAAAqtO,EA9CwC0lW,CAAa/ykB,EAAG9F,KAC9D8pC,EAAKhkC,EAAEiuK,KAAMjuK,EAAG9F,EAAE+zK,OAASjqI,EAAKhkC,EAAG9F,EAAE+zK,KAAM/zK,KAC5CyG,EAAOX,EAAG9F,IAAM8pC,EAAKhkC,EAAEiuK,KAAMjuK,EAAGA,EAAEyW,MAAQ,GAAKutB,EAAK9pC,EAAE+zK,KAAM/zK,EAAGA,EAAEuc,MAAQ,GAElE,SAAAutB,EAAKh5B,EAAGmlB,EAAGoC,GAClB,OAAQpC,EAAEjwB,EAAI8K,EAAE9K,IAAMqyB,EAAEtyB,EAAIkwB,EAAElwB,IAAMkwB,EAAElwB,EAAI+K,EAAE/K,IAAMsyB,EAAEryB,EAAIiwB,EAAEjwB,GAEnD,SAAAS,EAAOua,EAAI2tC,GAClB,OAAO3tC,EAAGjb,IAAM4oD,EAAG5oD,GAAKib,EAAGhb,IAAM2oD,EAAG3oD,EAEtC,SAASi2Y,EAAWj7X,EAAIm2K,EAAIxoI,EAAI8nB,GAC9B,IAAIg9W,EAAK5/X,EAAK/pB,EAAK9oB,EAAIm2K,EAAIxoI,IACvBpR,EAAKsW,EAAK/pB,EAAK9oB,EAAIm2K,EAAI1gH,IACvBi+Z,EAAK7gb,EAAK/pB,EAAK6kB,EAAI8nB,EAAIz1D,IACvB2zd,EAAK9gb,EAAK/pB,EAAK6kB,EAAI8nB,EAAI0gH,IAC3B,OAAIs8P,IAAOl2Y,GAAMm3b,IAAOC,KACb,IAAPlhD,IAAYqlJ,EAAU93jB,EAAI2tC,EAAIwoI,OACvB,IAAP55I,IAAYu7hB,EAAU93jB,EAAIy1D,EAAI0gH,OACvB,IAAPu9S,IAAYokG,EAAUnqhB,EAAI3tC,EAAIy1D,OACvB,IAAPk+Z,IAAYmkG,EAAUnqhB,EAAIwoI,EAAI1gH,IAG3B,SAAAqigB,EAAUhokB,EAAGmlB,EAAGoC,GACvB,OAAOpC,EAAElwB,GAAKlJ,KAAK8J,IAAImK,EAAE/K,EAAGsyB,EAAEtyB,IAAMkwB,EAAElwB,GAAKlJ,KAAKoH,IAAI6M,EAAE/K,EAAGsyB,EAAEtyB,IAAMkwB,EAAEjwB,GAAKnJ,KAAK8J,IAAImK,EAAE9K,EAAGqyB,EAAEryB,IAAMiwB,EAAEjwB,GAAKnJ,KAAKoH,IAAI6M,EAAE9K,EAAGqyB,EAAEryB,GAEvH,SAAS6tD,EAAKl4D,GACZ,OAAOA,EAAM,EAAI,EAAIA,EAAM,GAAS,EAAA,EAU7B,SAAAw8kB,EAAcrykB,EAAG9F,GACxB,OAAO8pC,EAAKhkC,EAAEiuK,KAAMjuK,EAAGA,EAAEyW,MAAQ,EAAIutB,EAAKhkC,EAAG9F,EAAG8F,EAAEyW,OAAS,GAAKutB,EAAKhkC,EAAGA,EAAEiuK,KAAM/zK,IAAM,EAAI8pC,EAAKhkC,EAAG9F,EAAG8F,EAAEiuK,MAAQ,GAAKjqI,EAAKhkC,EAAGA,EAAEyW,KAAMvc,GAAK,EAWlI,SAAAq4kB,EAAavykB,EAAG9F,GACnB,IAAA81O,EAAK,IAAI0kK,EAAK10Y,EAAE5L,EAAG4L,EAAEC,EAAGD,EAAEE,GAAIqsF,EAAK,IAAImoT,EAAKx6Y,EAAE9F,EAAG8F,EAAE+F,EAAG/F,EAAEgG,GAAI+ykB,EAAKjzkB,EAAEyW,KAAM05Z,EAAKj2a,EAAE+zK,KAS7E,OARPjuK,EAAEyW,KAAOvc,EACTA,EAAE+zK,KAAOjuK,EACTgwO,EAAGv5N,KAAOw8jB,EACVA,EAAGhla,KAAO+hE,EACVzjJ,EAAG91E,KAAOu5N,EACVA,EAAG/hE,KAAO1hF,EACV4jV,EAAG15Z,KAAO81E,EACVA,EAAG0hF,KAAOkiQ,EACH5jV,EAET,SAAS4kf,EAAW/8kB,EAAG6L,EAAGC,EAAG2D,GAC3B,IAAImH,EAAI,IAAI0pY,EAAKtgZ,EAAG6L,EAAGC,GAUhB,OATF2D,GAIHmH,EAAEyL,KAAO5S,EAAK4S,KACdzL,EAAEijK,KAAOpqK,EACTA,EAAK4S,KAAKw3J,KAAOjjK,EACjBnH,EAAK4S,KAAOzL,IANZA,EAAEijK,KAAOjjK,EACTA,EAAEyL,KAAOzL,GAOJA,EAET,SAASomkB,EAAWpmkB,GAChBA,EAAAyL,KAAKw3J,KAAOjjK,EAAEijK,KACdjjK,EAAAijK,KAAKx3J,KAAOzL,EAAEyL,KACZzL,EAAEymkB,QAASzmkB,EAAAymkB,MAAMC,MAAQ1mkB,EAAE0mkB,OAC3B1mkB,EAAE0mkB,QAAS1mkB,EAAA0mkB,MAAMD,MAAQzmkB,EAAEymkB,OAExB,SAAA/8L,EAAKtgZ,EAAG6L,EAAGC,GAClB3E,KAAKnH,EAAIA,EACTmH,KAAK0E,EAAIA,EACT1E,KAAK2E,EAAIA,EACT3E,KAAK0yK,KAAO,KACZ1yK,KAAKkb,KAAO,KACZlb,KAAK4jB,EAAI,EACT5jB,KAAKk2kB,MAAQ,KACbl2kB,KAAKm2kB,MAAQ,KACbn2kB,KAAKq1kB,SAAU,EAwBjB,SAASM,EAAWz2kB,EAAM9E,EAAOC,EAAK+sR,GAE3B,IADT,IAAIrpQ,EAAM,EACDllB,EAAIuB,EAAOmH,EAAIlH,EAAM+sR,EAAKvuR,EAAIwB,EAAKxB,GAAKuuR,EAC/CrpQ,IAAQ7e,EAAKqC,GAAKrC,EAAKrG,KAAOqG,EAAKrG,EAAI,GAAKqG,EAAKqC,EAAI,IACjDA,EAAA1I,EAEC,OAAAklB,EAvZTvF,EAAOjc,QAAUu4kB,EACjBt8jB,EAAOjc,QAAQgZ,QAAUu/jB,EA0XzBA,EAAOp2jB,UAAY,SAASxf,EAAM61kB,EAAa3tT,EAAK13O,GAC9C,IAAAuliB,EAAWF,GAAeA,EAAYz7kB,OACtC47kB,EAAWD,EAAWF,EAAY,GAAK3tT,EAAMloR,EAAK5F,OAClDm5b,EAAcj3b,KAAKK,IAAI85kB,EAAWz2kB,EAAM,EAAGg2kB,EAAU9tT,IACzD,GAAI6tT,EACF,IAAA,IAASp8kB,EAAI,EAAGK,EAAM67kB,EAAYz7kB,OAAQT,EAAIK,EAAKL,IAAK,CAClD,IAAAuB,EAAQ26kB,EAAYl8kB,GAAKuuR,EACzB/sR,EAAMxB,EAAIK,EAAM,EAAI67kB,EAAYl8kB,EAAI,GAAKuuR,EAAMloR,EAAK5F,OACxDm5b,GAAej3b,KAAKK,IAAI85kB,EAAWz2kB,EAAM9E,EAAOC,EAAK+sR,IAGzD,IAAIuwT,EAAgB,EACpB,IAAK9+kB,EAAI,EAAGA,EAAI62C,EAAUp2C,OAAQT,GAAK,EAAG,CACpC,IAAA4L,EAAIirC,EAAU72C,GAAKuuR,EACnBzoR,EAAI+wC,EAAU72C,EAAI,GAAKuuR,EACvBzrR,EAAI+zC,EAAU72C,EAAI,GAAKuuR,EAC3BuwT,GAAiBn8kB,KAAKK,KACnBqD,EAAKuF,GAAKvF,EAAKvD,KAAOuD,EAAKP,EAAI,GAAKO,EAAKuF,EAAI,KAAOvF,EAAKuF,GAAKvF,EAAKP,KAAOO,EAAKvD,EAAI,GAAKuD,EAAKuF,EAAI,KAG/F,OAAgB,IAAhBgub,GAAuC,IAAlBklJ,EAAsB,EAAIn8kB,KAAKK,KAAK87kB,EAAgBllJ,GAAeA,EACjG,EASOqiJ,EAAAvT,QAAU,SAASrikB,GAExB,IADA,IAAIkoR,EAAMloR,EAAK,GAAG,GAAG5F,OAAQuV,EAAS,CAAEu4B,SAAU,GAAIg6gB,MAAO,GAAIv5d,WAAYu/L,GAAOwwT,EAAY,EACvF/+kB,EAAI,EAAGA,EAAIqG,EAAK5F,OAAQT,IAAK,CACpC,IAAA,IAAS0I,EAAI,EAAGA,EAAIrC,EAAKrG,GAAGS,OAAQiI,IAClC,IAAA,IAASnG,EAAI,EAAGA,EAAIgsR,EAAKhsR,IAAYyT,EAAAu4B,SAASztC,KAAKuF,EAAKrG,GAAG0I,GAAGnG,IAE5DvC,EAAI,IACO++kB,GAAA14kB,EAAKrG,EAAI,GAAGS,OAClBuV,EAAAuyiB,MAAMznjB,KAAKi+kB,IAGf,OAAA/okB,CACT,KAKAgpkB,GAA0BlgkB,EAAW,CACvC,wCAAwCpb,EAASic,GAE/C,IAAIsgjB,EAAYgI,KAChBtojB,EAAOjc,QACE,SAAUzD,EAAKsuR,EAAKz2K,GAC3B,IAAK73G,GAAqB,MAAdA,EAAIQ,OAAgB,MAAMY,MAAM,+BACjC,MAAPktR,IAAmBA,EAAA,GACT,MAAVz2K,IAAyBA,EAAAmod,EAAUhgkB,EAAKsuR,IAC5C,IAAA,IAAS1sR,EAAS,EAAGA,EAAS0sR,EAAK1sR,IAAU,CAC3C,IAAI4K,EAAMqrG,EAAOy2K,EAAM1sR,GAASkI,EAAM+tG,EAAOj2G,GAAS7B,EAAI6B,EAAQipB,EAAI7qB,EAAIQ,OACtE,GAAAgM,IAAQ/J,KAAYqH,KAAQ,IAC9B,IAAK/J,EAAI6B,EAAQ7B,EAAI8qB,EAAG9qB,GAAKuuR,EACvBtuR,EAAAD,GAAKC,EAAID,KAAOyM,EAAM,EAAIxM,EAAID,KAAO+J,EAAM,EAAI,QACrD,GACS0C,IAAQ/J,IACjB,IAAK1C,EAAI6B,EAAQ7B,EAAI8qB,EAAG9qB,GAAKuuR,EAC3BtuR,EAAID,GAAKC,EAAID,KAAOyM,EAAM,EAAI,OAChC,GACS1C,KAAQ,IACjB,IAAK/J,EAAI6B,EAAQ7B,EAAI8qB,EAAG9qB,GAAKuuR,EAC3BtuR,EAAID,GAAKC,EAAID,KAAO+J,EAAM,EAAI,MAE3B,CACL,IAAIyJ,EAAQ/G,EAAM1C,EAClB,IAAK/J,EAAI6B,EAAQ7B,EAAI8qB,EAAG9qB,GAAKuuR,EACtBtrR,MAAMhD,EAAID,MACTC,EAAAD,GAAe,IAAVwT,EAAc,IAAOvT,EAAID,GAAK+J,GAAOyJ,IAK/C,OAAAvT,MAMTg/kB,GAAyBngkB,EAAW,CACtC,8CAA8Cpb,EAASic,GAErDA,EAAOjc,QAAU,WACf,IAAIkha,EAAS7+Z,EACT,GAAmB,mBAAZqX,QAA+B,OAAA,EACtC,IACFwnZ,EAAU,IAAIxnZ,QAAQ,CAAC,CAACrX,EAAM,GAAI,OAAQ,CAAC,CAAA,EAAI,OAAQ,CAAC,CAAA,EAAI,iBACrD9D,GACA,OAAA,EAET,MAAwB,qBAApBoG,OAAOu8Z,IACgB,mBAAhBA,EAAQ14Z,KACf04Z,EAAQ14Z,IAAI,CAAA,EAAI,KAAO04Z,GACG,mBAAnBA,EAAQtiC,QACQ,mBAAhBsiC,EAAQ/nZ,KACM,QAArB+nZ,EAAQt5Z,IAAIvF,EAElB,KAKAm5kB,GAAgBpgkB,EAAW,CAC7B,wCAAwCpb,EAASic,GAE/CA,EAAOjc,QAAU,WACjB,KAKAy7kB,GAAmBrgkB,EAAW,CAChC,0CAA0Cpb,EAASic,GAE7C,IAAAy/jB,EAAaF,OACVx8jB,EAAAhf,QAAU,SAASmE,GACjB,OAAAA,IAAQu3kB,GAAsB,OAARv3kB,CAC/B,KAKAw3kB,GAA0BvgkB,EAAW,CACvC,iEAAiEpb,EAASic,GAExE,IAAIvK,EAASjR,OAAOiR,OAChBsI,EAAiBvZ,OAAOuZ,eACxB4hkB,EAAc,CAAC,EACnB3/jB,EAAOjc,QAAU,WACf,IAAIU,EAAiBD,OAAOC,eACxB,MAA0B,mBAAnBA,GACJsZ,EAAetZ,GAFqCyC,UAAU,IAAMuO,GAEzB,MAAOkqkB,MAAkBA,CAC7E,KAKAC,GAAoBzgkB,EAAW,CACjC,2CAA2Cpb,EAASic,GAElD,IAAI6/jB,EAAUL,KACV/3jB,EAAM,CAAEq4jB,UAAU,EAAMxjkB,QAAQ,GAC7ByG,EAAAhf,QAAU,SAASb,GACxB,OAAO28kB,EAAQ38kB,IAAUukB,SAAWvkB,KAAU,CAChD,KAKA68kB,GAAsB5gkB,EAAW,CACnC,6CAA6Cpb,EAASic,GAEpD,IAAI6/jB,EAAUL,KACPz8jB,EAAAhf,QAAU,SAASb,GACxB,IAAK28kB,EAAQ38kB,GAAc,MAAA,IAAI2B,UAAU,gCAClC,OAAA3B,CACT,KAKA88kB,GAAkB7gkB,EAAW,CAC/B,wCAAwCpb,EAASic,GAE/C,IACI+8W,EAKEkjN,EAAYC,EAAW3ikB,EANzB9H,EAASjR,OAAOiR,OAEfiqkB,SACH3iN,EAAOojN,MAETngkB,EAAOjc,QAEAg5X,EACc,IAAfA,EAAKx6S,MAAoB9sE,GAC7BwqkB,EAAa,CAAC,EACdC,EAAY,CAAC,EACN3ikB,EAAA,CAAE/J,cAAc,EAAO9H,YAAY,EAAO6H,UAAU,EAAMrQ,WAAO,GACxEsB,OAAOka,oBAAoBla,OAAOE,WAAWwV,SAAQ,SAASsF,GAU5D0gkB,EAAU1gkB,GATI,cAAVA,EASejC,EARE,CACjB/J,cAAc,EACd9H,YAAY,EACZ6H,UAAU,EACVrQ,WAAO,EAIQ,IAEdsB,OAAA6Z,iBAAiB4hkB,EAAYC,GAC7B17kB,OAAAiH,eAAesxX,EAAM,eAAgB,CAC1CvpX,cAAc,EACd9H,YAAY,EACZ6H,UAAU,EACVrQ,MAAO+8kB,IAEF,SAASv7kB,EAAWkS,GACzB,OAAOnB,EAAqB,OAAd/Q,EAAqBu7kB,EAAav7kB,EAAWkS,EAC7D,GA1BkBnB,KAgCpB0qkB,GAAgBhhkB,EAAW,CAC7B,uDAAuDpb,EAASic,GAE9D,IAKIutE,EAMsB/iD,EACpBx1B,EAAIzI,EAZNg0W,EAAWq/N,KACX18kB,EAAQ68kB,KACRK,EAAmB57kB,OAAOE,UAAU6/X,cACpC94X,EAAiBjH,OAAOiH,eACxB40kB,EAAW,CAAE7skB,cAAc,EAAM9H,YAAY,EAAO6H,UAAU,EAAMrQ,WAAO,GAEpEqqF,EAAA,SAASnnF,EAAK1B,GAEvB,GADAxB,EAAMkD,GACY,OAAd1B,GAAsB67W,EAAS77W,GAAmB,OAAA0B,EAChD,MAAA,IAAIvB,UAAU,sCACtB,EACOke,EAAAhf,SAAmBymC,EAmCxB,WACE,IAAiEj+B,EAA7D+zkB,EAA0B97kB,OAAOiR,OAAO,MAAO8qkB,EAAU,CAAA,EAAShjkB,EAAO/Y,OAAO6Y,yBAAyB7Y,OAAOE,UAAW,aAC/H,GAAI6Y,EAAM,CACJ,KACFhR,EAAMgR,EAAKhR,KACPlE,KAAKi4kB,EAASC,SACXC,IAEL,GAAAh8kB,OAAOuZ,eAAeuikB,KAAaC,EAAgB,MAAA,CAAEh0kB,MAAKg2E,MAAO,GAGnE,OADJ+9f,EAAQzikB,UAAY0ikB,EAChB/7kB,OAAOuZ,eAAeuikB,KAAaC,EAAgB,CAAEh+f,MAAO,KAChE+9f,EAAU,CAAC,GACHzikB,UAAY0ikB,EAChB/7kB,OAAOuZ,eAAeuikB,KAAaC,GAAgB,CAAEh+f,MAAO,GAEhE,CAhBF,GAjCK/3C,GACgB,IAAjBA,EAAO+3C,MACL/3C,EAAOj+B,KACTA,EAAMi+B,EAAOj+B,IACRyI,EAAA,SAAS5O,EAAK1B,GAEV,OADP6H,EAAIlE,KAAKklF,EAASnnF,EAAK1B,GAAYA,GAC5B0B,CACT,GAEK4O,EAAA,SAAS5O,EAAK1B,GAEV,OADE6oF,EAAAnnF,EAAK1B,GAAWmZ,UAAYnZ,EAC9B0B,CACT,EAGG4O,EAAA,SAAS2L,EAAMva,EAAK1B,GACnB,IAAA+7kB,EAOG,OANPlzf,EAASnnF,EAAK1B,IACd+7kB,EAAaL,EAAiB/3kB,KAAKsY,EAAM+/jB,aAAct6kB,YAChCua,EAAM+/jB,aAAa7ikB,UACxB,OAAdnZ,IAAoBA,EAAYic,EAAM+/jB,cAC1Ct6kB,EAAIyX,UAAYnZ,EACZ+7kB,GAAYh1kB,EAAekV,EAAM+/jB,aAAc,YAAaL,GACzDj6kB,CACT,EAEK5B,OAAOiH,eAAeuJ,EAAI,QAAS,CACxCxB,cAAc,EACd9H,YAAY,EACZ6H,UAAU,EACVrQ,MAAOsnC,EAAO+3C,SA9BI,MAmDNy9f,QAKhBW,GAA2BxhkB,EAAW,CACxC,wDAAwDpb,EAASic,GAE/DA,EAAOjc,QAAU27kB,OAA8Bl7kB,OAAOC,eAAiB07kB,QAKvES,GAAuBzhkB,EAAW,CACpC,8CAA8Cpb,EAASic,GAErD,IAAIugW,EAAWq/N,KACR78jB,EAAAhf,QAAU,SAASb,GACpB,IAACq9W,EAASr9W,SAAc,IAAI2B,UAAU3B,EAAQ,qBAC3C,OAAAA,CACT,KAKA29kB,GAAsB1hkB,EAAW,CACnC,6CAA6Cpb,EAASic,GAEhD,IAAA8gkB,EAAmCt8kB,OAAAiR,OAAO,MAC1CqR,EAAS9jB,KAAK8jB,OAClB9G,EAAOjc,QAAU,WACX,IAAA2F,EACD,GACDA,EAAMod,IAAS9f,SAAS,IAAI1B,MAAM,SAC3Bw7kB,EAAUp3kB,IACZ,OAAAA,CACT,KAKAq3kB,GAAa5hkB,EAAW,CAC1B,gCAAgCpb,EAASic,GAGhC+C,EAAAhf,QAAU,SAASb,GACjB,OAAAA,OACT,KAKA89kB,GAAc7hkB,EAAW,CAC3B,iCAAiCpb,EAASic,GAExC,IAAI6/jB,EAAUkB,KACVE,EAAgB,CAClB3kkB,QAAU,EACVwjkB,UAAY,EACZ98N,WAAa,GAGRjgW,EAAAhf,QAAU,SAASb,GACxB,QAAK28kB,EAAQ38kB,IACNoa,eAAejV,KAAK44kB,SAAsB/9kB,EACnD,KAKAg+kB,GAAc/hkB,EAAW,CAC3B,oCAAoCpb,EAASic,GAE3C,IAAIugW,EAAWygO,KACRj+jB,EAAAhf,QAAU,SAASb,GACxB,IAAKq9W,EAASr9W,GAAe,OAAA,EACzB,IACE,QAACA,EAAMmQ,aACJnQ,EAAMmQ,YAAY3O,YAAcxB,QAChCsI,GACA,OAAA,EAEX,KAKA21kB,GAAchikB,EAAW,CAC3B,mCAAmCpb,EAASic,GAE1C,IAAIohkB,EAAcF,KACXn+jB,EAAAhf,QAAU,SAASb,GACpB,GAAiB,mBAAVA,EAA6B,OAAA,EACxC,IAAKoa,eAAejV,KAAKnF,EAAO,UAAkB,OAAA,EAC9C,IACF,GAA4B,iBAAjBA,EAAMpC,OAA4B,OAAA,EAC7C,GAA0B,mBAAfoC,EAAMmF,KAA4B,OAAA,EAC7C,GAA2B,mBAAhBnF,EAAM8H,MAA6B,OAAA,QACvCQ,GACA,OAAA,EAEF,OAAC41kB,EAAYl+kB,EACtB,KAKAm+kB,GAAclikB,EAAW,CAC3B,yCAAyCpb,EAASic,GAEhD,IAAIyhW,EAAa0/N,KACbG,EAAU,mBACVC,EAAmBv3d,SAAStlH,UAAUsC,SACnC+b,EAAAhf,QAAU,SAASb,GACxB,QAAKu+W,EAAWv+W,KACZo+kB,EAAQlyjB,KAAKmyjB,EAAiBl5kB,KAAKnF,GAEzC,KAKAs+kB,GAA0BrikB,EAAW,CACvC,uDAAuDpb,EAASic,GAE9DA,EAAOjc,QAAU,WACX,IAAwBqC,EAAxBs3X,EAASl5X,OAAOk5X,OAChB,MAAkB,mBAAXA,IAEJA,EADDt3X,EAAA,CAAEiF,IAAK,OACD,CAAEy5Q,IAAK,OAAS,CAAE28T,KAAM,SAC7Br7kB,EAAIiF,IAAMjF,EAAI0+Q,IAAM1+Q,EAAIq7kB,OAAS,aAC1C,KAKAC,GAA0BvikB,EAAW,CACvC,qDAAqDpb,EAASic,GAE5DA,EAAOjc,QAAU,WACX,IAEK,OADPS,OAAOgjB,KAAK,cACL,QACAllB,GACA,OAAA,EAEX,KAKAq/kB,GAAgBxikB,EAAW,CAC7B,2CAA2Cpb,EAASic,GAElD,IAAI6/jB,EAAUL,KACVh4jB,EAAOhjB,OAAOgjB,KACXzE,EAAAhf,QAAU,SAASuY,GACxB,OAAOkL,EAAKq4jB,EAAQvjkB,GAAU9X,OAAO8X,GAAUA,EACjD,KAKAslkB,GAAezikB,EAAW,CAC5B,4CAA4Cpb,EAASic,GAEnDA,EAAOjc,QAAU29kB,OAA8Bl9kB,OAAOgjB,KAAOm6jB,QAK7DE,GAAgB1ikB,EAAW,CAC7B,6CAA6Cpb,EAASic,GAEpD,IAAIwH,EAAOo6jB,KACP1+kB,EAAQ68kB,KACRjzkB,EAAM9J,KAAK8J,IACRiW,EAAAhf,QAAU,SAASwgH,EAAM5vG,GAC9B,IAAInJ,EAAOnL,EAAsCq9X,EAAnC58X,EAASgM,EAAI5F,UAAUpG,OAAQ,GAS7C,IAROyjH,EAAA//G,OAAOtB,EAAMqhH,IACpBm5Q,EAAS,SAAS1lX,GACZ,IACGusG,EAAAvsG,GAAOrD,EAAIqD,SACT1V,GACFkJ,IAAeA,EAAAlJ,GAExB,EACKjC,EAAI,EAAGA,EAAIS,IAAUT,EAEnBmnB,EADL7S,EAAMzN,UAAU7G,IACN6Z,QAAQwjX,GAEhB,QAAU,IAAVlyX,EAAwB,MAAAA,EACrB,OAAA+4G,CACT,KAKAu9d,GAAiB3ikB,EAAW,CAC9B,8CAA8Cpb,EAASic,GAErDA,EAAOjc,QAAUy9kB,OAA8Bh9kB,OAAOk5X,OAASmkN,QAK/DE,GAA4B5ikB,EAAW,CACzC,mDAAmDpb,EAASic,GAE1D,IAAI6/jB,EAAUL,KACVtlkB,EAAU1Y,MAAMkD,UAAUwV,QAC1BzE,EAASjR,OAAOiR,OAKbsN,EAAAhf,QAAU,SAASi+kB,GACpB,IAAA3rkB,EAASZ,EAAO,MAKb,OAJCyE,EAAA7R,KAAKnB,WAAW,SAASy8I,GAC1Bk8b,EAAQl8b,IAPF,SAAShvI,EAAKvO,GACvB,IAAA4R,EACJ,IAAKA,KAAOrD,EAAKvO,EAAI4R,GAAOrD,EAAIqD,EAClC,CAKa8wX,CAAAtkY,OAAOm/I,GAAUttI,EAAM,IAE3BA,CACT,KAKA4rkB,GAA0B9ikB,EAAW,CACvC,2DAA2Dpb,EAASic,GAElE,IAAItW,EAAM,aACVsW,EAAOjc,QAAU,WACf,MAA4B,mBAAjB2F,EAAIknB,WACgB,IAAxBlnB,EAAIknB,SAAS,SAA2C,IAAxBlnB,EAAIknB,SAAS,MACtD,KAKAsxjB,GAAgB/ikB,EAAW,CAC7B,iDAAiDpb,EAASic,GAEpD,IAAAre,EAAU+G,OAAOhE,UAAU/C,QACxBohB,EAAAhf,QAAU,SAASo+kB,GACxB,OAAOxglB,EAAQ0G,KAAKb,KAAM26kB,EAAcj7kB,UAAU,KAAM,CAC1D,KAKAk7kB,GAAmBjjkB,EAAW,CAChC,kDAAkDpb,EAASic,GAEzDA,EAAOjc,QAAUk+kB,OAA8Bv5kB,OAAOhE,UAAUksB,SAAWsxjB,QAK3EG,GAAYljkB,EAAW,CACzB,0BAA0Bpb,EAASic,GAEjC,IAAI6/jB,EAAUkB,KACVuB,EAAkBjB,KAClB3jN,EAASokN,KACTS,EAAgBR,KAChBnxjB,EAAWwxjB,KACXx/kB,EAAIod,EAAOjc,QAAU,SAASy+kB,EAAMt/kB,GAClC,IAAAC,EAAGb,EAAG0xB,EAAG2vH,EAASpmI,EAiBtB,OAhBIrW,UAAUpG,OAAS,GAAqB,iBAAT0hlB,GACvB7+b,EAAAzgJ,EACFA,EAAAs/kB,EACDA,EAAA,MAEP7+b,EAAUz8I,UAAU,GAElB24kB,EAAQ2C,IACNr/kB,EAAAytB,EAASvoB,KAAKm6kB,EAAM,KACpBlglB,EAAAsuB,EAASvoB,KAAKm6kB,EAAM,KACpBxujB,EAAApD,EAASvoB,KAAKm6kB,EAAM,OAExBr/kB,EAAI6wB,GAAI,EACJ1xB,GAAA,GAENib,EAAO,CAAEra,QAAOsQ,aAAcrQ,EAAGuI,WAAYpJ,EAAGiR,SAAUygB,GAClD2vH,EAAiB+5O,EAAO6kN,EAAc5+b,GAAUpmI,GAAtCA,CACpB,EACA3a,EAAEw9H,GAAK,SAASoid,EAAM72kB,EAAKY,GACrB,IAAApJ,EAAGb,EAAGqhJ,EAASpmI,EA4BnB,MA3BoB,iBAATilkB,GACC7+b,EAAAp3I,EACJA,EAAAZ,EACAA,EAAA62kB,EACCA,EAAA,MAEP7+b,EAAUz8I,UAAU,GAEjB24kB,EAAQl0kB,GAED22kB,EAAgB32kB,GAGhBk0kB,EAAQtzkB,GAER+1kB,EAAgB/1kB,KAChBo3I,EAAAp3I,EACJA,OAAA,GAHAA,OAAA,GAHIo3I,EAAAh4I,EACVA,EAAMY,OAAM,GAHNZ,OAAA,EAUJk0kB,EAAQ2C,IACNr/kB,EAAAytB,EAASvoB,KAAKm6kB,EAAM,KACpBlglB,EAAAsuB,EAASvoB,KAAKm6kB,EAAM,OAEpBr/kB,GAAA,EACAb,GAAA,GAENib,EAAO,CAAE5R,MAAKY,MAAKiH,aAAcrQ,EAAGuI,WAAYpJ,GACxCqhJ,EAAiB+5O,EAAO6kN,EAAc5+b,GAAUpmI,GAAtCA,CACpB,KAKAklkB,GAAwBtjkB,EAAW,CACrC,gDAAgDpb,EAASic,GAEnD,IAAA0ikB,EAAcl+kB,OAAOE,UAAUsC,SAC/B6U,EAAK6mkB,EAAYr6kB,KAAgC,WAC5C,OAAAnB,UAD4C,IAG9C6b,EAAAhf,QAAU,SAASb,GACjB,OAAAw/kB,EAAYr6kB,KAAKnF,KAAW2Y,CACrC,KAKA8mkB,GAAoBxjkB,EAAW,CACjC,2CAA2Cpb,EAASic,GAE9C,IAAA0ikB,EAAcl+kB,OAAOE,UAAUsC,SAC/B6U,EAAK6mkB,EAAYr6kB,KAAK,IACnB0a,EAAAhf,QAAU,SAASb,GACxB,MAAwB,iBAAVA,GAAsBA,GAA0B,iBAAVA,IAAuBA,aAAiBwF,QAAUg6kB,EAAYr6kB,KAAKnF,KAAW2Y,KAAO,CAC3I,KAKA+mkB,GAA0BzjkB,EAAW,CACvC,iDAAiDpb,EAASic,GAExDA,EAAOjc,QAAU,WACX,MAAsB,iBAAfwsE,cACNA,YACEA,WAAW/uE,QAAUA,KAC9B,KAKAqhlB,GAA0B1jkB,EAAW,CACvC,iDAAiDpb,EAASic,GACxD,IAAI8ikB,EAAgB,WAClB,GAAoB,iBAATrskB,MAAqBA,KAAa,OAAAA,KAC7C,GAAsB,iBAAXkD,QAAuBA,OAAe,OAAAA,OAC3C,MAAA,IAAIjY,MAAM,kCAClB,EACAse,EAAOjc,QAAU,WACf,GAAIyD,KAAa,OAAAA,KACb,IACKhD,OAAAiH,eAAejH,OAAOE,UAAW,aAAc,CACpDiH,IAAK,WACI,OAAAnE,IACT,EACAgM,cAAc,UAEThI,GACP,OAAOs3kB,IAEL,IACE,OAACC,YAAmBD,GACjB,CACP,eACOt+kB,OAAOE,UAAUq+kB,WAC1B,CAjBe,MAuBjBC,GAAsB7jkB,EAAW,CACnC,wCAAwCpb,EAASic,GAE/CA,EAAOjc,QAAU6+kB,OAA8BrygB,WAAasygB,QAK5DI,GAA0B9jkB,EAAW,CACvC,4CAA4Cpb,EAASic,GAEnD,IAAIu9C,EAAUylhB,KACVE,EAAa,CAAE5mkB,QAAQ,EAAMk6C,QAAQ,GACzCx2C,EAAOjc,QAAU,WACf,IACIyyD,EADA2shB,EAAU5lhB,EAAQz5D,OAElB,GAAmB,mBAAZq/kB,EAA+B,OAAA,EAC1C3shB,EAAS2shB,EAAQ,eACb,IACFz6kB,OAAO8tD,SACAl0D,GACA,OAAA,EAET,QAAK4glB,SAAkBC,EAAQhukB,aAC1B+tkB,SAAkBC,EAAQv8kB,gBAC1Bs8kB,SAAkBC,EAAQ9wO,YAEjC,KAKA+wO,GAAoBjkkB,EAAW,CACjC,uCAAuCpb,EAASic,GAEvC+C,EAAAhf,QAAU,SAASb,GACpB,QAACA,IACgB,iBAAVA,KACNA,EAAMmQ,aACoB,WAA3BnQ,EAAMmQ,YAAYI,MAC0B,WAAzCvQ,EAAMA,EAAMmQ,YAAYg/V,aACjC,KAKAgxO,GAA0BlkkB,EAAW,CACvC,6CAA6Cpb,EAASic,GAEpD,IAAIqjW,EAAW+/N,KACRrgkB,EAAAhf,QAAU,SAASb,GACpB,IAACmgX,EAASngX,SAAc,IAAI2B,UAAU3B,EAAQ,oBAC3C,OAAAA,CACT,KAKAoglB,GAAwBnkkB,EAAW,CACrC,uDAAuDpb,EAASic,GAE9D,IAAIpd,EAAIy/kB,KACJ5skB,EAASjR,OAAOiR,OAChBhK,EAAiBjH,OAAOiH,eACxB83kB,EAAe/+kB,OAAOE,UACtB8+kB,EAAU/tkB,EAAO,MACdsN,EAAAhf,QAAU,SAASwZ,GAExB,IADI,IAAaiC,EAAOikkB,EAApBC,EAAU,EACPF,EAAQjmkB,GAAQmmkB,GAAW,QAAQA,EAcnC,OAZPF,EADAjmkB,GAAQmmkB,GAAW,KACH,EAEhBj4kB,EACE83kB,EAFF/jkB,EAAQ,KAAOjC,EAIb3a,EAAEw9H,GAAG,MAAM,SAASl9H,GACduglB,IACgBA,GAAA,EACpBh4kB,EAAejE,KAAMgY,EAAO5c,EAAEM,IACVuglB,GAAA,EACrB,KAEIjkkB,CACT,KAKAmkkB,GAA2BxkkB,EAAW,CACxC,gEAAgEpb,EAASic,GAEvE,IAAIpd,EAAIy/kB,KACJuB,EAAeZ,KAAsBl/kB,OAClCif,EAAAhf,QAAU,SAAS8/kB,GACjB,OAAAr/kB,OAAO6Z,iBAAiBwlkB,EAAgB,CAG7Ch4N,YAAajpX,EACX,GACAghlB,GAAgBA,EAAa/3N,aAAeg4N,EAAe,gBAE7DC,mBAAoBlhlB,EAClB,GACAghlB,GAAgBA,EAAaE,oBAAsBD,EAAe,uBAEpE1ukB,SAAUvS,EAAE,GAAIghlB,GAAgBA,EAAazukB,UAAY0ukB,EAAe,aACxE3wjB,MAAOtwB,EAAE,GAAIghlB,GAAgBA,EAAa1wjB,OAAS2wjB,EAAe,UAClE92kB,QAASnK,EAAE,GAAIghlB,GAAgBA,EAAa72kB,SAAW82kB,EAAe,YACtEjmd,OAAQh7H,EAAE,GAAIghlB,GAAgBA,EAAahmd,QAAUimd,EAAe,WACpEE,QAASnhlB,EAAE,GAAIghlB,GAAgBA,EAAaG,SAAWF,EAAe,YACtEpvkB,MAAO7R,EAAE,GAAIghlB,GAAgBA,EAAanvkB,OAASovkB,EAAe,UAClEj9kB,YAAahE,EACX,GACAghlB,GAAgBA,EAAah9kB,aAAei9kB,EAAe,gBAE7DxxO,YAAazvW,EACX,GACAghlB,GAAgBA,EAAavxO,aAAewxO,EAAe,gBAE7DG,YAAaphlB,EACX,GACAghlB,GAAgBA,EAAaI,aAAeH,EAAe,iBAGjE,KAKAI,GAA0B9kkB,EAAW,CACvC,+DAA+Dpb,EAASic,GAEtE,IAAIpd,EAAIy/kB,KACJ6B,EAAiBb,KACjBc,EAAkC3/kB,OAAAiR,OAAO,MACtCsN,EAAAhf,QAAU,SAAS8/kB,GACjB,OAAAr/kB,OAAO6Z,iBAAiBwlkB,EAAgB,CAC7CO,IAAKxhlB,GAAE,SAASoV,GACd,OAAImskB,EAASnskB,GAAamskB,EAASnskB,GAC5BmskB,EAASnskB,GAAO6rkB,EAAen7kB,OAAOsP,GAAI,IAEnDqskB,OAAQzhlB,GAAE,SAAS4zD,GACb,IAAAx+C,EAEJ,IAAKA,KADLkskB,EAAe1thB,GACH2thB,EACV,GAAIA,EAASnskB,KAASw+C,EAAe,OAAAx+C,CAGxC,KAEL,KAKAsskB,GAAoBnlkB,EAAW,CACjC,sCAAsCpb,EAASic,GAE7C,IASI6jkB,EACAU,EACAC,EAXA5hlB,EAAIy/kB,KACJ6B,EAAiBb,KACjBO,EAAeZ,KAAsBl/kB,OACrC2glB,EAAenB,KACfoB,EAAuBf,KACvBgB,EAAsBV,KACtBxukB,EAASjR,OAAOiR,OAChB4I,EAAmB7Z,OAAO6Z,iBAC1B5S,EAAiBjH,OAAOiH,eAIxB,GAAwB,mBAAjBm4kB,EACL,IACFl7kB,OAAOk7kB,KACQY,GAAA,QACRhE,SAGMoD,EAAA,KAEFW,EAAA,SAAiBvgf,GAC9B,GAAIx8F,gBAAgB+8kB,EAAoB,MAAA,IAAI1/kB,UAAU,+BACtD,OAAOg/kB,EAAe7/e,EACxB,EACAhkF,EAAOjc,QAAU8/kB,EAAiB,SAASV,EAAQn/e,GAC7C,IAAAxtC,EACJ,GAAIhvD,gBAAgB27kB,EAAe,MAAA,IAAIt+kB,UAAU,+BAC7C,OAAA2/kB,EAAqBZ,EAAa5/e,IAC7BxtC,EAAA/gD,EAAO8ukB,EAAa7/kB,WAC7Bs/F,OAA8B,IAAhBA,EAAyB,GAAKt7F,OAAOs7F,GAC5C3lF,EAAiBm4C,EAAQ,CAC9BouhB,gBAAiBhilB,EAAE,GAAIohG,GACvB6gf,SAAUjilB,EAAE,GAAI6hlB,EAAazgf,MAEjC,EACA0gf,EAAqBb,GACrBc,EAAoBd,GACpBxlkB,EAAiBkmkB,EAAa7/kB,UAAW,CACvC2O,YAAazQ,EAAEihlB,GACf78kB,SAAUpE,EAAE,IAAI,WACd,OAAO4E,KAAKq9kB,QACb,MAEHxmkB,EAAiBwlkB,EAAen/kB,UAAW,CACzCsC,SAAUpE,GAAE,WACV,MAAO,WAAashlB,EAAe18kB,MAAMo9kB,gBAAkB,GAAA,IAE7D1+kB,QAAStD,GAAE,WACT,OAAOshlB,EAAe18kB,KACvB,MAEHiE,EACEo4kB,EAAen/kB,UACfm/kB,EAAej9kB,YACfhE,EAAE,IAAI,WACA,IAAA4zD,EAAS0thB,EAAe18kB,MACxB,MAAkB,iBAAXgvD,EAA4BA,EAChCA,EAAOxvD,UACf,KAEHyE,EAAeo4kB,EAAen/kB,UAAWm/kB,EAAexxO,YAAazvW,EAAE,IAAK,WAC5E6I,EACE84kB,EAAa7/kB,UACbm/kB,EAAexxO,YACfzvW,EAAE,IAAKihlB,EAAen/kB,UAAUm/kB,EAAexxO,eAEjD5mW,EACE84kB,EAAa7/kB,UACbm/kB,EAAej9kB,YACfhE,EAAE,IAAKihlB,EAAen/kB,UAAUm/kB,EAAej9kB,kBAMjDk+kB,GAAqB3lkB,EAAW,CAClC,mCAAmCpb,EAASic,GAE1CA,EAAOjc,QAAUk/kB,OAA8BD,KAAsBl/kB,OAASwglB,QAK9ES,GAAgB5lkB,EAAW,CAC7B,wCAAwCpb,EAASic,GAE/C,IAAI9c,EAAQ68kB,KACZ//jB,EAAOjc,QAAU,WAER,OADDb,EAAAsE,MAAM1G,OAAS,EACd0G,IACT,KAKAw9kB,GAAyB7lkB,EAAW,CACtC,gDAAgDpb,EAASic,GAEhD+C,EAAAhf,QAAU,SAASiR,GACxB,GAAkB,mBAAPA,QAAyB,IAAInQ,UAAUmQ,EAAK,sBAChD,OAAAA,CACT,KAKAiwkB,GAAkB9lkB,EAAW,CAC/B,qCAAqCpb,EAASic,GAE5C,IAAI6/jB,EAAUkB,KACVxgO,EAAWygO,KACXv+N,EAAiBj+W,OAAOE,UAAUsC,SAC/B+b,EAAAhf,QAAU,SAASb,GACxB,IAAK28kB,EAAQ38kB,GAAe,OAAA,KACxB,GAAAq9W,EAASr9W,GAAQ,CACnB,IAAIgilB,EAAgBhilB,EAAM8D,SACtB,GAAyB,mBAAlBk+kB,EAAqC,OAAA,KAC5C,GAAAA,IAAkBziO,EAAuB,OAAA,KAE3C,IACF,MAAO,GAAKv/W,QACLsI,GACA,OAAA,KAEX,KAKA25kB,GAAyBhmkB,EAAW,CACtC,0CAA0Cpb,EAASic,GAE1C+C,EAAAhf,QAAU,SAASb,GACpB,IACF,OAAOA,EAAM8D,iBACNwE,GACH,IACF,OAAO9C,OAAOxF,SACPkilB,GACA,OAAA,MAGb,KAKAC,GAA0BlmkB,EAAW,CACvC,2CAA2Cpb,EAASic,GAElD,IAAIslkB,EAAeH,KACfI,EAAY,sBACTxikB,EAAAhf,QAAU,SAASb,GACpB,IAAA8B,EAASsglB,EAAapilB,GACtB,OAAW,OAAX8B,EAAwB,mCACxBA,EAAOlE,OAAS,MAAKkE,EAASA,EAAOM,MAAM,EAAG,IAAM,KACxDN,EAASA,EAAO+H,QAAQw4kB,GAAW,SAAS75E,GAC1C,OAAQA,GACN,IAAK,KACI,MAAA,MACT,IAAK,KACI,MAAA,MACT,IAAK,SACI,MAAA,UACT,IAAK,SACI,MAAA,UAET,QACQ,MAAA,IAAIhqgB,MAAM,wBACpB,IAGJ,KAKA8jlB,GAA4BrmkB,EAAW,CACzC,6CAA6Cpb,EAASic,GAEpD,IAAI6/jB,EAAUkB,KACVxgO,EAAWygO,KACXyE,EAAeR,KACfS,EAAgBL,KAChBM,EAAiB,SAAShykB,EAASzQ,GACrC,OAAOyQ,EAAQ5G,QAAQ,KAAM24kB,EAAcxilB,GAC7C,EACA8c,EAAOjc,QAAU,SAASb,EAAO0ilB,EAAgBC,GAC3C,IAACtlO,EAASslO,GAAe,MAAM,IAAIhhlB,UAAU8glB,EAAeC,EAAgB1ilB,IAC5E,IAAC28kB,EAAQ38kB,GAAQ,CACnB,GAAI,YAAa2ilB,EAAqB,OAAAA,EAAsB,QACxD,GAAAA,EAAaC,WAAmB,OAAA,KAElC,IAAAC,EAAeN,EAAaI,EAAaE,cAE7C,MADKlG,EAAQkG,KAA8BA,EAAAH,GACrC,IAAI/glB,UAAU8glB,EAAeI,EAAc7ilB,GACnD,KAKA8ilB,GAAiB7mkB,EAAW,CAC9B,oCAAoCpb,EAASic,GAE3C,IAAIimkB,EAAmBT,KACnBvnN,EAAK8iN,KACFh+jB,EAAAhf,QAAU,SAASb,GACpB,OAAA+6X,EAAG/6X,GAAeA,EACf+ilB,EAAiB/ilB,EAAO,gBAAiBgE,UAAU,GAC5D,KAKAg/kB,GAAkB/mkB,EAAW,CAC/B,6CAA6Cpb,EAASic,GAEpD,IAAIimkB,EAAmBT,KACnBvnN,EAAKojN,KACFt+jB,EAAAhf,QAAU,SAASb,GACpB,OAAA+6X,EAAG/6X,GAAeA,EACf+ilB,EAAiB/ilB,EAAO,6BAA8BgE,UAAU,GACzE,KAKAi/kB,GAA0BhnkB,EAAW,CACvC,oDAAoDpb,EAASic,GAE3DA,EAAOjc,QAAU,WACX,IAAmBzD,EAAK+V,EAAxBtR,EAAOvD,MAAMuD,KACb,MAAgB,mBAATA,IAEXsR,EAAStR,EADHzE,EAAA,CAAC,MAAO,QAEP6V,QAAQE,GAAUA,IAAW/V,GAAqB,QAAd+V,EAAO,IACpD,KAKA+vkB,GAAsBjnkB,EAAW,CACnC,+CAA+Cpb,EAASic,GAElD,IAAA0ikB,EAAcl+kB,OAAOE,UAAUsC,SAC/Bq/kB,EAAsBz3jB,OAAOlqB,UAAU0qB,KAAK7X,KAAK,mCAC9CwL,EAAAhf,QAAU,SAASb,GACxB,MAAwB,mBAAVA,GAAwBmjlB,EAAoB3D,EAAYr6kB,KAAKnF,GAC7E,KAKAojlB,GAA0BnnkB,EAAW,CACvC,mDAAmDpb,EAASic,GAE1DA,EAAOjc,QAAU,WACf,IAAIi2D,EAAOh3D,KAAKg3D,KACZ,MAAgB,mBAATA,GACS,IAAbA,EAAK,MAA2B,IAAdA,MAC3B,KAKAushB,GAAgBpnkB,EAAW,CAC7B,yCAAyCpb,EAASic,GAEzC+C,EAAAhf,QAAU,SAASb,GAExB,OADAA,EAAQ+F,OAAO/F,GACXI,MAAMJ,IAAoB,IAAVA,EAAoBA,EACjCA,EAAQ,EAAI,GAAI,CACzB,KAKAsjlB,GAAernkB,EAAW,CAC5B,0CAA0Cpb,EAASic,GAEjDA,EAAOjc,QAAUuilB,OAA8BtjlB,KAAKg3D,KAAOushB,QAK3DE,GAAqBtnkB,EAAW,CAClC,4CAA4Cpb,EAASic,GAEnD,IAAIg6C,EAAOwshB,KACPnjlB,EAAML,KAAKK,IACXE,EAAQP,KAAKO,MACVwf,EAAAhf,QAAU,SAASb,GACpB,OAAAI,MAAMJ,GAAe,EAEX,KADdA,EAAQ+F,OAAO/F,KACKqK,SAASrK,GACtB82D,EAAK92D,GAASK,EAAMF,EAAIH,IADaA,CAE9C,KAKAwjlB,GAAyBvnkB,EAAW,CACtC,gDAAgDpb,EAASic,GAEvD,IAAI2mkB,EAAYF,KACZ35kB,EAAM9J,KAAK8J,IACRiW,EAAAhf,QAAU,SAASb,GACxB,OAAO4J,EAAI,EAAG65kB,EAAUzjlB,GAC1B,KAKA0jlB,GAAgBznkB,EAAW,CAC7B,0CAA0Cpb,EAASic,GAE7C,IAAA6mkB,EAAiB/B,KAAqB3vkB,SACtCqnX,EAAcimN,KACdhhO,EAAa2kO,KACbU,EAAWJ,KACXK,EAAW/B,KACXgC,EAAajH,KACbF,EAAUL,KACVp/N,EAAWuiO,KACXl8kB,EAAUjF,MAAMiF,QAChB4B,EAAO2hH,SAAStlH,UAAU2D,KAC1BkV,EAAO,CAAE/J,cAAc,EAAM9H,YAAY,EAAM6H,UAAU,EAAMrQ,MAAO,MACtEuI,EAAiBjH,OAAOiH,eACrBsX,EAAAhf,QAAU,SAASkjlB,GACxB,IAAkDC,EAAS7mlB,EAAG0I,EAAGzI,EAAKQ,EAAQW,EAAM0T,EAAUkB,EAAQ8wkB,EAAajklB,EAA/GkklB,EAAQlglB,UAAU,GAAIs0W,EAAUt0W,UAAU,GAG9C,GAFY+/kB,EAAAzilB,OAAOwilB,EAAWC,IAC1BpH,EAAQuH,IAAQL,EAASK,GACxB5/kB,MAAQA,OAAShG,OAAUigX,EAAWj6W,MAiB/B0/kB,EAAA1/kB,SAjBsC,CAChD,IAAK4/kB,EAAO,CACN,GAAA5qN,EAAYyqN,GAEd,OAAe,KADfnmlB,EAASmmlB,EAAUnmlB,QACMU,MAAMwJ,MAAM,KAAMi8kB,KACrC3mlB,EAAA,IAAIkB,MAAM,IACZ,GAAKyllB,EAAU,GACZ3mlB,GAEL,GAAAmG,EAAQwglB,GAAY,CAEjB,IADL3mlB,EAAM,IAAIkB,MAAMV,EAASmmlB,EAAUnmlB,QAC9BT,EAAI,EAAGA,EAAIS,IAAUT,EAAOC,EAAAD,GAAK4mlB,EAAU5mlB,GACzC,OAAAC,GAGXA,EAAM,EAAC,CAIL,IAACmG,EAAQwglB,GACX,QAAkD,KAA7CE,EAAcF,EAAUJ,IAA6B,CAKjD,IAJP1xkB,EAAW4xkB,EAASI,GAAa9+kB,KAAK4+kB,GAClCC,IAAe5mlB,EAAA,IAAI4mlB,GACvB7wkB,EAASlB,EAASuN,OACdriB,EAAA,GACIgW,EAAOojG,MACLv2G,EAAAkklB,EAAQ/+kB,EAAKA,KAAK++kB,EAAO5rO,EAASnlW,EAAOnT,MAAO7C,GAAKgW,EAAOnT,MAChEgklB,GACF3pkB,EAAKra,MAAQA,EACEuI,EAAAnL,EAAKD,EAAGkd,IAEvBjd,EAAID,GAAK6C,EAEXmT,EAASlB,EAASuN,SAChBriB,EAEKS,EAAAT,CAAA,MAAA,GACA+/W,EAAS6mO,GAAY,CAG9B,IAFAnmlB,EAASmmlB,EAAUnmlB,OACfomlB,IAAe5mlB,EAAA,IAAI4mlB,GAClB7mlB,EAAI,EAAG0I,EAAI,EAAG1I,EAAIS,IAAUT,EAC/B6C,EAAQ+jlB,EAAU5mlB,GACdA,EAAI,EAAIS,IACHW,EAAAyB,EAAMtC,WAAW,KACZ,OAASa,GAAQ,QAAgByB,GAAA+jlB,IAAY5mlB,IAE3D6C,EAAQkklB,EAAQ/+kB,EAAKA,KAAK++kB,EAAO5rO,EAASt4W,EAAO6F,GAAK7F,EAClDgklB,GACF3pkB,EAAKra,MAAQA,EACEuI,EAAAnL,EAAKyI,EAAGwU,IAEvBjd,EAAIyI,GAAK7F,IAET6F,EAEKjI,EAAAiI,EAGb,QAAe,IAAXjI,EAGF,IAFSA,EAAAgmlB,EAASG,EAAUnmlB,QACxBomlB,IAAS5mlB,EAAM,IAAI4mlB,EAAQpmlB,IAC1BT,EAAI,EAAGA,EAAIS,IAAUT,EAChB6C,EAAAkklB,EAAQ/+kB,EAAKA,KAAK++kB,EAAO5rO,EAASyrO,EAAU5mlB,GAAIA,GAAK4mlB,EAAU5mlB,GACnE6mlB,GACF3pkB,EAAKra,MAAQA,EACEuI,EAAAnL,EAAKD,EAAGkd,IAEvBjd,EAAID,GAAK6C,EAQR,OAJHgklB,IACF3pkB,EAAKra,MAAQ,KACb5C,EAAIQ,OAASA,GAERR,CACT,KAKA+mlB,GAAelokB,EAAW,CAC5B,2CAA2Cpb,EAASic,GAElDA,EAAOjc,QAAUoilB,OAA8B3klB,MAAMuD,KAAO6hlB,QAK5DU,GAAgBnokB,EAAW,CAC7B,sCAAsCpb,EAASic,GAE7C,IAAIunkB,EAAQF,KACR3pN,EAASokN,KACT5+kB,EAAQ68kB,KACLh9jB,EAAAhf,QAAU,SAASqC,GACxB,IAAIR,EAAOpB,OAAOtB,EAAMkD,IAAOohlB,EAAgBtglB,UAAU,GAAIy8I,EAAUn/I,OAAO0C,UAAU,IACxF,GAAItB,IAASQ,IAAQohlB,EAAsB,OAAA5hlB,EAC3C,IAAIyQ,EAAS,CAAC,EAQP,OAPHmxkB,EACID,EAAAC,GAAe,SAASC,IACxB9jc,EAAQ+jc,QAAUD,KAAgBrhlB,OAAYqhlB,GAAgBrhlB,EAAIqhlB,GAAY,IAGpF/pN,EAAOrnX,EAAQjQ,GAEViQ,CACT,KAKAsxkB,GAAkBxokB,EAAW,CAC/B,0CAA0Cpb,EAASic,GAEjD,IAAI+mkB,EAAW/B,KACX9hlB,EAAQ68kB,KACRxokB,EAAOyyG,SAAStlH,UAAU6S,KAC1BlP,EAAO2hH,SAAStlH,UAAU2D,KAC1Bmf,EAAOhjB,OAAOgjB,KACdogkB,EAA0BpjlB,OAAOE,UAAUsa,qBACxC+D,EAAAhf,QAAU,SAAS+kB,EAAQ++jB,GACzB,OAAA,SAASzhlB,EAAKgZ,GACnB,IAAI/S,EAAMmvW,EAAUt0W,UAAU,GAAI4glB,EAAY5glB,UAAU,GAQxD,OAPMd,EAAA5B,OAAOtB,EAAMkD,IACnB2glB,EAAS3nkB,GACT/S,EAAOmb,EAAKphB,GACR0hlB,GACGz7kB,EAAA2Z,KAA0B,mBAAd8hkB,EAA2BvwkB,EAAKlP,KAAKy/kB,EAAW1hlB,QAAO,GAEpD,mBAAX0iB,IAAuBA,EAASzc,EAAKyc,IACzCzgB,EAAKA,KAAKygB,EAAQzc,GAAM,SAAS2L,EAAK4gC,GAC3C,OAAKgviB,EAAwBv/kB,KAAKjC,EAAK4R,GAChC3P,EAAKA,KAAK+W,EAAIo8V,EAASp1W,EAAI4R,GAAMA,EAAK5R,EAAKwyC,GADEiviB,CACG,GAE3D,CACF,KAKAE,GAAoB5okB,EAAW,CACjC,0CAA0Cpb,EAASic,GAE1C+C,EAAAhf,QAAU4jlB,KAAkB,cAKnCK,GAAc7okB,EAAW,CAC3B,qCAAqCpb,EAASic,GAE5C,IAAI+mkB,EAAW/B,KACX9qkB,EAAU6tkB,KACV1/kB,EAAO2hH,SAAStlH,UAAU2D,KACvB0a,EAAAhf,QAAU,SAASqC,EAAKgZ,GAC7B,IAAI/I,EAAS,CAAI,EAAAmlW,EAAUt0W,UAAU,GAK9B,OAJP6/kB,EAAS3nkB,GACTlF,EAAQ9T,GAAK,SAASlD,EAAO8U,EAAKiwkB,EAAWrviB,GACpCviC,EAAA2B,GAAO3P,EAAKA,KAAK+W,EAAIo8V,EAASt4W,EAAO8U,EAAKiwkB,EAAWrviB,EAAK,IAE5DviC,CACT,KAKA6xkB,GAAoB/okB,EAAW,CACjC,8BAA8Bpb,EAASic,GAErC,IASI24V,EATAknO,EAAUkB,KACVoH,EAAcnC,KACdoC,EAAsBlC,KACtBtglB,EAAO0hlB,KACPe,EAAmBtG,KACnBt6jB,EAAMugkB,KACNzwkB,EAAOyyG,SAAStlH,UAAU6S,KAC1B9L,EAAiBjH,OAAOiH,eACxB8vW,EAAkB/2W,OAAOE,UAAU4Y,eAE7Bq7V,EAAA,SAASn5V,EAAOjC,EAAMomI,GAC9B,IAAkE2kc,EAA9DpllB,EAAQillB,EAAY5qkB,IAAS6qkB,EAAoB7qkB,EAAKra,OAUnD,cATPollB,EAAM1ilB,EAAK2X,IACAhK,gBACJ+0kB,EAAIpllB,MACXollB,EAAI38kB,IAAM,WACJ,OAACg4I,EAAQ4kc,qBAAuBhtO,EAAgBlzW,KAAKb,KAAMgY,GAAetc,GACzEqa,EAAAra,MAAQqU,EAAKlP,KAAKnF,EAAOygJ,EAAQ6kc,eAAiB7kc,EAAQ6kc,eAAehhlB,MAAQA,MACvEiE,EAAAjE,KAAMgY,EAAOjC,GACrB/V,KAAKgY,GACd,EACO8okB,CACT,EACOvlkB,EAAAhf,QAAU,SAAS6S,GACxB,IAAI+sI,EAAU0kc,EAAiBnhlB,UAAU,IAEzC,OADI24kB,EAAQl8b,EAAQ6kc,iBAAiBJ,EAAoBzkc,EAAQ6kc,gBAC1D/gkB,EAAI7Q,GAAO,SAAS2G,EAAMiC,GACxB,OAAAm5V,EAAQn5V,EAAOjC,EAAMomI,EAAO,GAEvC,KAKA8kc,GAAuBtpkB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5C,IASI0okB,EATAlshB,EAAQuohB,KACRrnN,EAASokN,KACTiF,EAAW/B,KACX9hlB,EAAQ68kB,KACRn9kB,EAAIy/kB,KACJsG,EAAWT,KACX/E,EAAU2B,KACVr5kB,EAAiBjH,OAAOiH,eACxB4S,EAAmB7Z,OAAO6Z,iBAE9B2B,EAAOjc,QAAU2klB,EAAW,SAASr8kB,EAAM4T,GACzC,KAAMzY,gBAAgBkhlB,GAAiB,MAAA,IAAI7jlB,UAAU,8BACrDwZ,EAAiB7W,KAAM,CACrBohlB,SAAUhmlB,EAAE,IAAKM,EAAMmJ,IACvBw8kB,YAAajmlB,EAAE,IAAKqd,GACpB6okB,cAAelmlB,EAAE,IAAK,KAEnBqd,IACL8mkB,EAAS9mkB,EAAQ7F,IACT6F,EAAA7F,GAAG,OAAQ5S,KAAKuhlB,QAChB9okB,EAAA7F,GAAG,UAAW5S,KAAKwhlB,WACnB/okB,EAAA7F,GAAG,SAAU5S,KAAKyhlB,UAC5B,SACOP,EAAShklB,UAAU2O,YAC1BgL,EACEqqkB,EAAShklB,UACTg5X,EACE,CACEwrN,MAAOtmlB,GAAE,WACH,IAAAvC,EACA,GAACmH,KAAKohlB,SACV,OAAIphlB,KAAK2hlB,eAEG,KADN9olB,EAAAmH,KAAK2hlB,SAAS5giB,SACOloD,EAEvBmH,KAAKshlB,cAAgBthlB,KAAKohlB,SAAS9nlB,OAAe0G,KAAKshlB,qBAC3DthlB,KAAK4hlB,SACE,IAET1mkB,KAAM9f,GAAE,WACN,OAAO4E,KAAK6hlB,cAAc7hlB,KAAK0hlB,QAAO,IAExCG,cAAezmlB,GAAE,SAASvC,GACxB,YAAU,IAANA,EAAqB,CAAEo5G,MAAM,EAAMv2G,WAAO,GACvC,CAAEu2G,MAAM,EAAOv2G,MAAOsE,KAAK8hlB,SAASjplB,GAAG,IAEhDiplB,SAAU1mlB,GAAE,SAASvC,GACZ,OAAAmH,KAAKohlB,SAASvolB,EAAC,IAExB+olB,QAASxmlB,GAAE,WACT4E,KAAKohlB,SAAW,YACTphlB,KAAK2hlB,SACP3hlB,KAAKqhlB,cACVrhlB,KAAKqhlB,YAAY30jB,IAAI,OAAQ1sB,KAAKuhlB,QAClCvhlB,KAAKqhlB,YAAY30jB,IAAI,UAAW1sB,KAAKwhlB,WACrCxhlB,KAAKqhlB,YAAY30jB,IAAI,SAAU1sB,KAAKyhlB,UACpCzhlB,KAAKqhlB,YAAc,KAAA,IAErB7hlB,SAAUpE,GAAE,WACV,MAAO,YAAc4E,KAAK27kB,EAAQ9wO,cAAgB,UAAY,GAC/D,KAEHs2O,EAAS,CACPI,OAAQnmlB,GAAE,SAASg2C,GACbA,GAASpxC,KAAKshlB,kBAChBthlB,KAAKshlB,cACFthlB,KAAK2hlB,UAIV3hlB,KAAK2hlB,SAASjvkB,SAAQ,SAASo0G,EAAMjuH,GAC/BiuH,GAAQ11E,IAAOpxC,KAAK2hlB,SAAS9olB,KAAOiuH,KACvC9mH,MACEA,KAAA2hlB,SAASholB,KAAKy3C,IANjBntC,EAAejE,KAAM,WAAY5E,EAAE,IAAK,CAACg2C,KAMnB,IAE1BowiB,UAAWpmlB,GAAE,SAASg2C,GAChB,IAAAv4C,EACAu4C,GAASpxC,KAAKshlB,kBAChBthlB,KAAKshlB,cACFthlB,KAAK2hlB,YAEI,KADV9olB,EAAAmH,KAAK2hlB,SAASxnlB,QAAQi3C,KACZpxC,KAAK2hlB,SAASvziB,OAAOv1C,EAAG,GACtCmH,KAAK2hlB,SAASjvkB,SAAQ,SAASo0G,EAAMvlH,GAC/BulH,EAAO11E,IAAOpxC,KAAK2hlB,SAASpglB,KAAOulH,KACtC9mH,OAAI,IAETyhlB,SAAUrmlB,GAAE,WACN4E,KAAK2hlB,UAAgB3shB,EAAAn0D,KAAKb,KAAK2hlB,UACnC3hlB,KAAKshlB,cAAgB,CACtB,QAIPr9kB,EACEi9kB,EAAShklB,UACTy+kB,EAAQhukB,SACRvS,GAAE,WACO,OAAA4E,IACR,QAMH+hlB,GAAiBpqkB,EAAW,CAC9B,qCAAqCpb,EAASic,GAE5C,IAMIwpkB,EANA/klB,EAAiBk8kB,KACjB/vjB,EAAWwxjB,KACXx/kB,EAAIy/kB,KACJc,EAAU2B,KACV4D,EAAWD,KACXh9kB,EAAiBjH,OAAOiH,eAE5B+9kB,EAAgBxpkB,EAAOjc,QAAU,SAASzD,EAAKmplB,GAC7C,KAAMjilB,gBAAgBgilB,GAAsB,MAAA,IAAI3klB,UAAU,8BACjD6jlB,EAAArglB,KAAKb,KAAMlH,GAE8BmplB,EAD7CA,EACI74jB,EAASvoB,KAAKohlB,EAAM,aAAqB,YACzC74jB,EAASvoB,KAAKohlB,EAAM,OAAe,MAChC,QAHM,QAIlBh+kB,EAAejE,KAAM,WAAY5E,EAAE,GAAI6mlB,GACzC,EACIhllB,GAA+BA,EAAA+klB,EAAed,UAC3Cc,EAAc9klB,UAAU2O,YAC/Bm2kB,EAAc9klB,UAAYF,OAAOiR,OAAOizkB,EAAShklB,UAAW,CAC1D4klB,SAAU1mlB,GAAE,SAASvC,GACnB,MAAsB,UAAlBmH,KAAKkilB,SAA6BlilB,KAAKohlB,SAASvolB,GAC9B,cAAlBmH,KAAKkilB,SAAiC,CAACrplB,EAAGmH,KAAKohlB,SAASvolB,IACrDA,CACR,MAEHoL,EAAe+9kB,EAAc9klB,UAAWy+kB,EAAQ9wO,YAAazvW,EAAE,IAAK,sBAKpE+mlB,GAAiBxqkB,EAAW,CAC9B,sCAAsCpb,EAASic,GAE7C,IAKI4pkB,EALAnllB,EAAiBk8kB,KACjB/9kB,EAAIy/kB,KACJc,EAAU2B,KACV4D,EAAWD,KACXh9kB,EAAiBjH,OAAOiH,eAEXuU,EAAAA,EAAOjc,QAAU,SAAS2F,GACzC,KAAMlC,gBAAgBoilB,GAAuB,MAAA,IAAI/klB,UAAU,8BAC3D6E,EAAMhB,OAAOgB,GACJg/kB,EAAArglB,KAAKb,KAAMkC,GACpB+B,EAAejE,KAAM,aAAc5E,EAAE,GAAI8G,EAAI5I,QAC/C,EACI2D,GAA+BA,EAAAmllB,EAAgBlB,UAC5CkB,EAAelllB,UAAU2O,YAChCu2kB,EAAelllB,UAAYF,OAAOiR,OAAOizkB,EAAShklB,UAAW,CAC3DwklB,MAAOtmlB,GAAE,WACH,GAAC4E,KAAKohlB,SACV,OAAIphlB,KAAKshlB,cAAgBthlB,KAAKqilB,WAAmBrilB,KAAKshlB,qBACtDthlB,KAAK4hlB,SACE,IAETE,SAAU1mlB,GAAE,SAASvC,GACnB,IAA6BoB,EAAzBiqgB,EAAOlkgB,KAAKohlB,SAASvolB,GACzB,OAAImH,KAAKshlB,gBAAkBthlB,KAAKqilB,WAAmBn+E,GAC5CjqgB,EAAAiqgB,EAAK9qgB,WAAW,KACX,OAASa,GAAQ,MAAciqgB,EAAOlkgB,KAAKohlB,SAASphlB,KAAKshlB,iBAC9Dp9E,CACR,MAEHjggB,EAAem+kB,EAAelllB,UAAWy+kB,EAAQ9wO,YAAazvW,EAAE,IAAK,uBAKrEknlB,GAAsB3qkB,EAAW,CACnC,2CAA2Cpb,EAASic,GAElD,IAAIw8W,EAAcimN,KACd5C,EAAUL,KACVp/N,EAAWuiO,KACXkE,EAAiB/B,KAAqB3vkB,SACtC1O,EAAUjF,MAAMiF,QACbsc,EAAAhf,QAAU,SAASb,GACxB,SAAK28kB,EAAQ38kB,KACTuD,EAAQvD,KACRk9W,EAASl9W,KACTs5X,EAAYt5X,IACwB,mBAA1BA,EAAM2jlB,GACtB,KAKAkD,GAAyB5qkB,EAAW,CACtC,8CAA8Cpb,EAASic,GAErD,IAAIgqkB,EAAaF,KACV/mkB,EAAAhf,QAAU,SAASb,GACpB,IAAC8mlB,EAAW9mlB,SAAc,IAAI2B,UAAU3B,EAAQ,oBAC7C,OAAAA,CACT,KAKA+mlB,GAAc9qkB,EAAW,CAC3B,mCAAmCpb,EAASic,GAE1C,IAAIw8W,EAAcimN,KACdriO,EAAWuiO,KACX6G,EAAgBD,KAChBK,EAAiBD,KACjBj1N,EAAWq1N,KACXlD,EAAiB/B,KAAqB3vkB,SACnC4N,EAAAhf,QAAU,SAASqC,GACpB,MAAyC,mBAAlCsuX,EAAStuX,GAAKyglB,GAAuCzglB,EAAIyglB,KAChErqN,EAAYp2X,GAAa,IAAIojlB,EAAcpjlB,GAC3Cg6W,EAASh6W,GAAa,IAAIwjlB,EAAexjlB,GACtC,IAAIojlB,EAAcpjlB,EAC3B,KAKA8jlB,GAAiB/qkB,EAAW,CAC9B,sCAAsCpb,EAASic,GAE7C,IAAIw8W,EAAcimN,KACdsE,EAAW/B,KACX5kO,EAAWuiO,KACXh3kB,EAAMs+kB,KACNxjlB,EAAUjF,MAAMiF,QAChB4B,EAAO2hH,SAAStlH,UAAU2D,KAC1Bq/Q,EAAOlmR,MAAMkD,UAAUgjR,KACpB3kQ,EAAAhf,QAAU,SAAS2wX,EAAUt1W,GAC9B,IAAA8sC,EAA8B71C,EAAQ8zkB,EAASC,EAAQ/plB,EAAGS,EAAQ4qgB,EAAMjqgB,EAAlE+5W,EAAUt0W,UAAU,GAQ9B,GAPIT,EAAQiuX,IAAa8H,EAAY9H,GAAkBxoU,EAAA,QAC9Ck0T,EAASsU,GAAkBxoU,EAAA,SAC/BwoU,EAAW/oX,EAAI+oX,GACpBqyN,EAAS3nkB,GACT+qkB,EAAU,WACCC,GAAA,CACX,EACa,UAATl+hB,EAOJ,GAAa,WAATA,EAcG,IADP71C,EAASq+W,EAAShyW,QACVrM,EAAOojG,MAAM,CAEnB,GADApxG,EAAKA,KAAK+W,EAAIo8V,EAASnlW,EAAOnT,MAAOinlB,GACjCC,EAAQ,OACZ/zkB,EAASq+W,EAAShyW,YAflB,IADA5hB,EAAS4zX,EAAS5zX,OACbT,EAAI,EAAGA,EAAIS,IACd4qgB,EAAOh3I,EAASr0X,GACZA,EAAI,EAAIS,IACHW,EAAAiqgB,EAAK9qgB,WAAW,KACX,OAASa,GAAQ,QAAeiqgB,GAAAh3I,IAAWr0X,IAEzDgI,EAAKA,KAAK+W,EAAIo8V,EAASkwJ,EAAMy+E,IACzBC,KAPoB/plB,QARrBqnR,EAAAr/Q,KAAKqsX,GAAU,SAASxxX,GAEpB,OADPmF,EAAKA,KAAK+W,EAAIo8V,EAASt4W,EAAOinlB,GACvBC,CAAA,GAuBb,KAKAC,GAAgClrkB,EAAW,CAC7C,qDAAqDpb,EAASic,GAE5DA,EAAOjc,QACkB,mBAAZ0Z,SAC8D,qBAAlEjZ,OAAOE,UAAUsC,SAASqB,KAAyB,IAAAoV,YAM5D6skB,GAAoBnrkB,EAAW,CACjC,wCAAwCpb,EAASic,GAE/C,IAcIuqkB,EAdA1K,EAAUL,KACV/6kB,EAAiBk8kB,KACjBrkkB,EAASskkB,KACTuH,EAAcpI,KACdyK,EAAa3J,KACbj+kB,EAAIy/kB,KACJ8E,EAAc8C,KACdQ,EAAQP,KACRQ,EAAoB5F,KAAqBzyO,YACzCs4O,EAAWN,KACX5jlB,EAAUjF,MAAMiF,QAChBgF,EAAiBjH,OAAOiH,eACxBm/kB,EAAoBpmlB,OAAOE,UAAU4Y,eACrCS,EAAiBvZ,OAAOuZ,eAErBgF,EAAAhf,QAAUwmlB,EAAc,WACzB,IAAyB5pkB,EAAzB+zW,EAAWxtX,UAAU,GACzB,KAAMM,gBAAgB+ilB,GAAoB,MAAA,IAAI1llB,UAAU,8BAMpD,OALI8b,EAAAgqkB,GAAYlmlB,GAAkBgZ,UAAY8skB,EAAc9llB,EAAmC,IAAAgZ,QAAWM,EAAevW,OAASA,KAClIq4kB,EAAQnrN,KACLjuX,EAAQiuX,KAAWA,EAAWyyN,EAAYzyN,KAEjDjpX,EAAekV,EAAO,kBAAmB/d,EAAE,IAAK,YAAc4nlB,MACzD91N,GACC+1N,EAAA/1N,GAAU,SAASxsX,GACvBiglB,EAAYjglB,GACZyY,EAAMpU,IAAIrE,EAAI,GAAIA,EAAI,GAAE,IAEnByY,GALeA,CAMxB,EACIgqkB,IACElmlB,GAA+BA,EAAA8llB,EAAa9skB,SACpC8skB,EAAA7llB,UAAYF,OAAOiR,OAAOgI,QAAQ/Y,UAAW,CAAE2O,YAAazQ,EAAE2nlB,MAErE/llB,OAAA6Z,iBAAiBkskB,EAAY7llB,UAAW,CAC7Ci+X,OAAQ//X,GAAE,SAASoV,GACjB,QAAI4ykB,EAAkBvilB,KAAKiU,EAAOtE,GAAMxQ,KAAKqjlB,0BACpC7ykB,EAAIxQ,KAAKqjlB,kBACT,EAEF,IAETl/kB,IAAK/I,GAAE,SAASoV,GACV,GAAC4ykB,EAAkBvilB,KAAKiU,EAAOtE,GAAMxQ,KAAKqjlB,iBACvC,OAAA7ykB,EAAIxQ,KAAKqjlB,gBAAe,IAEjC3tkB,IAAKta,GAAE,SAASoV,GACd,OAAO4ykB,EAAkBvilB,KAAKiU,EAAOtE,GAAMxQ,KAAKqjlB,gBAAe,IAEjEt+kB,IAAK3J,GAAE,SAASoV,EAAK9U,GAEZ,OADQuI,EAAA6Q,EAAOtE,GAAMxQ,KAAKqjlB,gBAAiBjolB,EAAE,IAAKM,IAClDsE,IAAA,IAETR,SAAUpE,GAAE,WACH,MAAA,kBACR,MAEH6I,EAAe8+kB,EAAY7llB,UAAWgmlB,EAAmB9nlB,EAAE,IAAK,eAKhEkolB,GAAuB3rkB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5CA,EAAOjc,QAAUu7kB,OAA6B7hkB,QAAU6skB,QAKxDS,GAA2B5rkB,EAAW,CACxC,yCAAyCpb,EAASic,GAEhDA,EAAOjc,QAAU,SAASzD,EAAK+9X,EAAWroH,GACxC,GAAyC,mBAA9Bx0Q,MAAMkD,UAAU8tL,UAClB,OAAAlyL,EAAIkyL,UAAU6rM,EAAWroH,GAE9B,GAAqB,mBAAdqoH,EACH,MAAA,IAAIx5X,UAAU,gCAElB,IAAAwH,EAAO7H,OAAOlE,GACdI,EAAM2L,EAAKvL,OACf,GAAY,IAARJ,EACK,OAAA,EAET,IAAA,IAASL,EAAI,EAAGA,EAAIK,EAAKL,IACnB,GAAAg+X,EAAUh2X,KAAK2tQ,EAAK3pQ,EAAKhM,GAAIA,EAAGgM,GAC3B,OAAAhM,EAGJ,OAAA,CACT,KAKA2qlB,GAAsB7rkB,EAAW,CACnC,oCAAoCpb,EAASic,GAE3C,IAAIirE,EAAQmna,KACRkuE,EAAYgI,KACZ2P,EAAUrB,KACVzlU,EAAO62T,KACPe,EAAUP,KACVx6E,EAAcquF,KACdtsZ,EAAYsvZ,MACZlqgB,QAAEA,EAAAqigB,QAASA,GAAYD,KACvB0T,EAAWH,KACX1S,EAAY/P,KACZ71Y,EAAYu4Z,KAgYP,SAAAG,EAAOtgY,EAAMjnE,GACpB,KAAMn8I,gBAAgB0jlB,UAAgB,IAAIA,EAAOtgY,EAAMjnE,GASvD,GARoB,mBAATinE,GACJjnE,IAASA,EAAU,CAAC,GACzBA,EAAQinE,KAAOA,GAELjnE,EAAAinE,EAERjnE,EAAQ7iJ,SAAQ6iJ,EAAQkhI,UAAYlhI,KACxCinE,EAAOjnE,EAAQinE,MACLugY,aAAa,0BACrB,MAAMzplB,MAAM,sEAEd8F,KAAKqsb,GAAKjpO,EAAKwmD,IACf5pQ,KAAKojN,KAAOA,EACZpjN,KAAK4jlB,OAAS,GACT5jlB,KAAAi6b,QAAUypJ,EAAOzpJ,QAAQvkb,IAAI0tM,GAAQsgY,EAAOzpJ,QAAQ91b,IAAIi/M,GAAQsgY,EAAOzpJ,QAAQl1b,IAAIq+M,EAAMsgY,EAAOG,cAAczgY,IAAOj/M,IAAIi/M,GAC9HpjN,KAAK2qB,OAAOwxH,GAlBd3jI,EAAOjc,QAAUmnlB,EAoBjBA,EAAOI,SAAW,EAClBJ,EAAOK,iBAAmB,IAC1BL,EAAOM,mBAAqB,IAC5BN,EAAO5nV,UAAY,IACnB4nV,EAAOnvZ,SAAW,KACXmvZ,EAAAzpJ,QAAU,IAAIwpJ,EACdC,EAAAG,cAAgB,SAASzgY,GAC1B,IAwGA6gY,EAxGAC,EAAe9gY,EAAK3oN,OAAO,CAC7Bm9b,MAAO,SACP54b,KAAM,QACNE,KAAM,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,KAE1BmykB,EAAgB,CAClBn3N,UAAW,iBACXiqO,UAAW/gY,EAAKvvM,KAAK,SACrByH,MAAO,EACP5gB,OAAQ,EACRo3b,SAAU,CACRsyJ,UAAW,CAAC51U,EAAK36P,IAAuB,UAAdA,EAAK/Z,KAAmB,EAAI,EACtDuqlB,WAAYjhY,EAAKvvM,KAAK,cACtB8f,MAAOyvL,EAAKvvM,KAAK,SACjB29jB,WAAYpuX,EAAKvvM,KAAK,cACtB49jB,eAAgBruX,EAAKvvM,KAAK,kBAC1B+f,UAAWwvL,EAAKvvM,KAAK,aACrByyI,UAAW88D,EAAKvvM,KAAK,aACrBiyb,YAAa1iP,EAAKvvM,KAAK,eACvB6sE,QAAS0iI,EAAKvvM,KAAK,WACnBy4a,WAAYlpO,EAAK3qM,QAAQ,cACzBpE,GAAI+uM,EAAKvvM,KAAK,MACdywkB,WAAYlhY,EAAKvvM,KAAK,cACtBowb,SAAU,CAACtoc,EAAG8T,IAAM,CAACA,EAAEw0b,SAASv/b,EAAG+K,EAAEw0b,SAASt/b,EAAGhJ,EAAE4olB,cAAe5olB,EAAE6olB,gBACpEhikB,MAAO4gM,EAAKvvM,KAAK,UAEnBm+Q,MAAO,CACLh/K,QAAQ,EACR/8E,MAAO,CAAC,EAAG,EAAG,EAAG,GACjBwujB,SAAU,CACRvujB,IAAK,MACL+iB,MAAO,OAETjkC,KAAM,CACJm9jB,OAAQ,YACRC,OAAQ,sBACRC,SAAU,sBACVC,SAAU,QAGd9vjB,MAAO,CACLwwF,OAAQ,CAACr3G,EAAG8T,KACFA,EAAEg5K,SAGdk4Q,QAAS,CAAE3tV,QAAQ,GACnBu/d,QAAS,CACPv/d,QAAQ,EACR+6F,IAAKqV,EAAKvvM,KAAK,aAEjBowb,SAAU7gP,EAAKvvM,KAAK,aAElB6wkB,EAAethY,EAAKqtX,EAAQ,CAC9B1hW,KA9cW,guCA+cXyjW,KAvaW,yaAwaXjqf,WAAY,CAEV6sc,QAAS,CACP36hB,OAAQyplB,EACRS,QAAS,EACTpzJ,OAAQ,EACR72b,OAAQ,GAGVkqlB,QAAS,CACPnqlB,OAAQyplB,EACRS,QAAS,EACTpzJ,OAAQ,EACR72b,OAAQ,GAGVmqlB,OAAQ,CACNpqlB,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,GAGXG,OAAQ,CACNrqlB,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,GACRiqlB,QAAS,GAEXI,YAAa,CACXtqlB,OAAQ2oN,EAAKvvM,KAAK,uBAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,GAEXK,YAAa,CACXvqlB,OAAQ2oN,EAAKvvM,KAAK,uBAClB09a,OAAQ,EACR72b,OAAQ,GACRiqlB,QAAS,GAEX1ujB,MAAO,CACLx7B,OAAQ2oN,EAAKvvM,KAAK,eAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,KAGZtT,IAEC,IACF4S,EAAgB7gY,EAAKqtX,EAAQ,CAE3BwU,KAAM,CACJjye,QAAQ,EACR6tX,KAAM,QAER9xP,KAzaW,6uQA0aXyjW,KA7NW,mkEA8NXjqf,WAAY,CAEV6sc,QAAS,CACP36hB,OAAQyplB,EACRS,QAAS,EACTpzJ,OAAQ,EACR72b,OAAQ,GAGVkqlB,QAAS,CACPnqlB,OAAQyplB,EACRS,QAAS,EACTpzJ,OAAQ,EACR72b,OAAQ,GAGVwqlB,OAAQ,CACNzqlB,OAAQ2oN,EAAKvvM,KAAK,eAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,GAGXQ,OAAQ,CACN1qlB,OAAQ2oN,EAAKvvM,KAAK,eAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,GAEXS,UAAW,CACT3qlB,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,GAEXE,OAAQ,CACNpqlB,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,EACRiqlB,QAAS,GAEXG,OAAQ,CACNrqlB,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,GACRiqlB,QAAS,GAEXU,UAAW,CACT5qlB,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,GACRiqlB,QAAS,KAGZtT,UACIv2kB,GACSmplB,EAAAS,EAqCX,MAAA,CACLrglB,KApCa++M,EAAK,CAClB82J,UAAW,WACXk3E,SAAU,CAAC5iL,EAAK36P,IAASA,EAAK67B,UAC9Bh1C,OAAQ,EACRq0O,KA9gBW,4oBA+gBXyjW,KAlfW,uGAmfX1gJ,SAAU,CACRn+Z,MAAOyvL,EAAKvvM,KAAK,SACjBoiB,MAAOmtL,EAAKvvM,KAAK,QACjB29jB,WAAYpuX,EAAKvvM,KAAK,cACtB49jB,eAAgBruX,EAAKvvM,KAAK,kBAC1B+f,UAAWwvL,EAAKvvM,KAAK,aACrB6sE,QAAS0iI,EAAKvvM,KAAK,WACnBy4a,WAAYlpO,EAAK3qM,QAAQ,cACzBpE,GAAI+uM,EAAKvvM,KAAK,MACdowb,SAAU,CAACz1L,EAAK36P,IAAS,CAACA,EAAKowb,SAASv/b,EAAGmP,EAAKowb,SAASt/b,EAAG6pQ,EAAI+1U,cAAe/1U,EAAIg2U,iBAErFj8f,WAAY,CACVpzE,SAAU,CACR1a,OAAQ2oN,EAAKvvM,KAAK,kBAClB09a,OAAQ,EACR72b,OAAQ,GAEV4qlB,cAAe,CACb7qlB,OAAQ2oN,EAAKvvM,KAAK,uBAClB09a,OAAQ,EACR72b,OAAQ,IAGZs3R,MAAOq/S,EAAcr/S,MACrBxvQ,MAAO,CAAEwwF,QAAQ,GACjBu/d,QAASlB,EAAckB,QACvB5xI,QAAS0wI,EAAc1wI,QACvBsD,SAAUotI,EAAcptI,WAIxB71a,KAAMs2jB,EACNa,MAAOtB,EAEX,EACAP,EAAO1ggB,SAAW,CAChBsjX,OAAQ,KACRxsc,KAAM,QACNuqlB,WAAY,EACZ/9b,UAAW,GACXkiX,IAAK,SACLvye,MAAO,QACPyqD,QAAS,EACT+nG,SAAS,EACTw7Q,SAAU,KACV53b,MAAO,KACPm5kB,OAAO,EACPnhlB,KAAM,MAEDq/kB,EAAAxmlB,UAAU+2c,OAAS,YAAYhpb,GAChCA,EAAK3xB,QACF0G,KAAA2qB,UAAUM,GAEjBjrB,KAAKmlK,MACP,EACOu+a,EAAAxmlB,UAAUioK,KAAO,YAAYl6I,GAkB3B,OAjBNA,EAAK3xB,OAAS2xB,EAAOjrB,KAAK4jlB,QAAQlxkB,SAAQ,CAACrX,EAAGxC,KACzC,GAAAwC,GAAKrB,MAAMiF,QAAQ5D,GAAW,OAAA2E,KAAKmlK,QAAQ9pK,GAC9B,iBAANA,IAAoBA,EAAA2E,KAAK4jlB,OAAOvolB,IACrCA,GAAKA,EAAEigB,MAAQ,GAAKjgB,EAAEqlF,UAC5B1gF,KAAKojN,KAAKyvX,WACNx3kB,EAAEgJ,MAAQhJ,EAAEq0C,WAAar0C,EAAEq0C,UAAUp2C,OAAS,GAC3C0G,KAAAi6b,QAAQ51b,KAAKhJ,GAEfA,EAAEirJ,YACHjrJ,EAAEs4B,MAAM,GAAKt4B,EAAE4oc,SAAS3+X,MAAQo+gB,EAAOM,oBAAsB3olB,EAAEs4B,MAAM,GAAKt4B,EAAE4oc,SAASjmW,OAAS0lf,EAAOM,oBAEnF,SAAX3olB,EAAEvB,OAAoBuB,EAAEvB,OAASuB,EAAEirJ,WAAa,GAAKjrJ,EAAEigB,OAASookB,EAAO5nV,WAD3E97P,KAAAi6b,QAAQ7ra,KAAK/yB,GAIb2E,KAAAi6b,QAAQsrJ,MAAMlqlB,QAGhB2E,IACT,EACO0jlB,EAAAxmlB,UAAUytB,OAAS,SAASwxH,GACjC,IAAKA,EAAS,OACQ,MAAlBA,EAAQ7iJ,OACgB,iBAAf6iJ,EAAQ,OAA2B,CAAC,CAAEkhI,UAAWlhI,KAClDniJ,MAAMiF,QAAQk9I,KAAUA,EAAU,CAACA,IAC/C,IAAIinE,KAAEA,EAAMipO,GAAIzuB,GAAQ59Z,KA4QxB,GA3QQm8I,EAAAzpI,SAAQ,CAAC0D,EAAGvd,KACd,IAAA+gB,EAAQ5Z,KAAK4jlB,OAAO/qlB,GACxB,QAAU,IAANud,EACJ,GAAU,OAANA,EAAJ,CA+EA,GA3EoB,iBAATA,EAAE,KAAqBA,EAAA,CAAEinQ,UAAWjnQ,IAC/CA,EAAIuzP,EAAKvzP,EAAG,CACVinQ,UAAW,+BACX/2H,UAAW,iGACXxsJ,KAAM,mCACNuqlB,WAAY,wBACZ/9I,OAAQ,6CACRrwa,MAAO,8DACP5xB,KAAM,4BACNq8E,QAAS,gBACT+nG,QAAS,mCACT+8Z,MAAO,qCACPn5kB,MAAO,gBACP43b,SAAU,mBACVz2D,KAAM,oBACNi4M,UAAW,cAER7rkB,IACE5Z,KAAA4jlB,OAAO/qlB,GAAK+gB,EAAQ,CACvBvF,GAAIxb,EACJ86B,MAAO,KACP69iB,WAAY,KACZ59iB,UAAW,KACX69iB,eAAgB,KAChBn2jB,MAAO,EACPkyX,KAAM,GACNhrX,MAAO,EACP8hkB,WAAY,EACZx+I,YAAa1iP,EAAKm3O,QAAQ,CACxBv2C,SAAU,EACV9kZ,KAAM,IAAInF,WAAW,CAAC,MACtBurE,MAAO,EACP04B,OAAQ,EACRs5H,IAAK,SACL10N,IAAK,WAEPuzc,YAAa/yP,EAAK3oN,OAAO,CACvBm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,aAEZ43kB,eAAgBvuX,EAAK3oN,OAAO,CAC1Bm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,aAEZ83kB,oBAAqBzuX,EAAK3oN,OAAO,CAC/Bm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,cAGdqc,EAAIq6jB,EAAQ,CAAA,EAAIiT,EAAO1ggB,SAAU5sE,IAEhB,MAAfA,EAAEkwI,cAAyBA,UAAY1tH,WAAWxiB,EAAEkwI,YACvC,MAAblwI,EAAEsqE,YAAuBA,QAAU9nD,WAAWxiB,EAAEsqE,UAChC,MAAhBtqE,EAAEiukB,eAA0BA,WAAazrjB,WAAWxiB,EAAEiukB,aACzC,MAAbjukB,EAAEqyK,UACE7uK,EAAA6uK,UAAYryK,EAAEqyK,QAChB5vL,EAAI6qlB,EAAOnvZ,WACP36K,EAAA4I,MAAQ,GAAKkhkB,EAAOnvZ,SAAW,EAAI17L,EAAI6qlB,EAAOnvZ,UAAYmvZ,EAAOnvZ,SAAW,IAGxE,MAAVn+K,EAAEtc,OAAc8f,EAAM9f,KAAOsc,EAAEtc,MACrB,MAAVsc,EAAEo3X,OAAc5zX,EAAM4zX,KAAOp3X,EAAEo3X,MACrB,MAAVp3X,EAAE/R,OAAcuV,EAAMvV,KAAQ+R,EAAE/R,KAAco/E,EAAMrtE,EAAE/R,KAAM,SAArB,MACzB,MAAd+R,EAAE6tb,aAAwBA,SAAW2sI,EAAUx6jB,EAAE6tb,WAChDrqb,EAAMqqb,WACTrqb,EAAMqqb,SAAW2sI,EAAU,CACzBhzK,EAAI/zJ,mBACJ+zJ,EAAI9zJ,uBAGO,MAAX1zP,EAAEovkB,QAAe5rkB,EAAM4rkB,MAAQpvkB,EAAEovkB,OACjB,OAAhBpvkB,EAAEinQ,YAAoBjnQ,EAAEinQ,UAAY,IACpCjnQ,EAAEinQ,UAAW,CACf,IAAIA,EAAW/hQ,EACf,GAAIlF,EAAEinQ,UAAU34Q,GAAK0R,EAAEinQ,UAAU14Q,EAAG,CAC9B,IAAAsnS,EAAO71R,EAAEinQ,UAAU34Q,EACnB4rR,EAAOl6Q,EAAEinQ,UAAU14Q,EACf2W,EAAA1B,EAAM0B,MAAQ9f,KAAK8J,IACzB2mS,EAAK3yS,OACLg3R,EAAKh3R,QAEK+jR,EAAA,IAAIpwM,aAAqB,EAAR3xD,GAC7B,IAAA,IAAS4O,EAAK,EAAGA,EAAK5O,EAAO4O,IAC3BmzP,EAAe,EAALnzP,GAAU+hR,EAAK/hR,GACzBmzP,EAAe,EAALnzP,EAAS,GAAKomQ,EAAKpmQ,EAC/B,MAEYmzP,EAAAkkT,EAAQnrjB,EAAEinQ,UAAW,WACjC/hQ,EAAQ1B,EAAM0B,MAAQ9f,KAAKO,MAAMshR,EAAU/jR,OAAS,GAEtD,IAAIq3G,EAAS/2F,EAAM+2F,OAASmod,EAAUz7S,EAAW,GACjD,GAAIzjQ,EAAMvV,KAAM,CACd,IAAIS,EAAM,GACN+7E,EAAM,CAAC,EACP6kgB,EAAS,EACJ,IAAA,IAAAx7jB,EAAK,EAAG+oZ,EAAM,EAAGtvZ,EAAI/J,EAAM0B,MAAO4O,EAAKvG,EAAGuG,IAAM,CACnD,IAAAxlB,EAAI24Q,EAAe,EAALnzP,GACdvlB,EAAI04Q,EAAe,EAALnzP,EAAS,GACvBpuB,MAAM4I,IAAM5I,MAAM6I,IAAW,MAALD,GAAkB,MAALC,GACnCD,EAAA24Q,EAAmB,EAATqoU,GACV/glB,EAAA04Q,EAAmB,EAATqoU,EAAa,GAC3B7kgB,EAAI32D,GAAMw7jB,GAEDA,EAAAx7jB,EAEXplB,EAAImua,KAASvua,EACbI,EAAImua,KAAStua,EAEf,GAAIyR,EAAEqvkB,UAAW,CACT7rkB,EAAM0B,MAAQ,KAAKulE,MAAUjnE,EAAM0B,OAAS1B,EAAM0B,MAAQ,GAChE,IAAIqqkB,EAAS3olB,OAAOgjB,KAAK6gE,GAAK5gE,IAAIxe,QAAQ+c,MAAK,CAAC/Z,EAAG9F,IAAM8F,EAAI9F,IACzDinlB,EAAkB,GAClBl/hB,EAAO,EACPm/hB,EAA0B,MAAdjskB,EAAM4zX,KAAe5zX,EAAM4zX,KAAK,GAAK,KACrD,GAAiB,MAAbq4M,EAAmB,CACrB,IAAIC,EAAU96Z,EAAU26Z,GAAS7qlB,GAAMA,GAAK+qlB,IACnCF,EAAAA,EAAO7nlB,MAAM,EAAGgolB,GACzBH,EAAOhslB,KAAKkslB,GAEd,IAAA,IAAS37jB,EAAK,EAAGA,EAAKy7jB,EAAOrslB,OAAQ4wB,IAAM,CACrC,IAAA67jB,EAAUjhlB,EAAIhH,MAAa,EAAP4oD,EAAuB,EAAbi/hB,EAAOz7jB,IAAStlB,OAChDihlB,EAAY/glB,EAAIhH,MAAkB,EAAZ+nlB,GAAiB,IAErCr4M,GAAQ5zX,EAAM4zX,MAAQ,IAAIvtX,KAAKnlB,GAAMA,EAAI+qlB,GAAaF,EAAOz7jB,GAAMw8B,KACnEhX,EAAY82c,EAAYu/F,EAASv4M,GACrC99V,EAAYA,EAAUzvB,KACnBnlB,GAAMA,EAAI4rD,GAAQ5rD,EAAI4rD,EAAOi/hB,EAAOz7jB,GAAM,EAAI27jB,EAAYF,EAAOz7jB,MAEpD07jB,EAAAjslB,QAAQ+1C,GACjBgX,EAAAi/hB,EAAOz7jB,GAAM,EAEtB,IAAA,IAASA,EAAK,EAAGvG,EAAIiikB,EAAgBtslB,OAAQ4wB,EAAKvG,EAAGuG,IACnB,MAA5B22D,EAAI+kgB,EAAgB17jB,MAA8B07jB,EAAA17jB,GAAM22D,EAAI+kgB,EAAgB17jB,KAElFtQ,EAAM81B,UAAYk2iB,CAAA,KACb,CACL,IAAIl2iB,EAAY82c,EAAY1hf,EAAK8U,EAAM4zX,MAAQ,IAC/C,IAAA,IAAStjX,EAAK,EAAGvG,EAAI+rB,EAAUp2C,OAAQ4wB,EAAKvG,EAAGuG,IACnB,MAAtB22D,EAAInxC,EAAUxlB,MAAwBwlB,EAAAxlB,GAAM22D,EAAInxC,EAAUxlB,KAEhEtQ,EAAM81B,UAAYA,GAGlB,IAAA0tc,EAAO,IAAInwa,aAAaowM,GAClB90F,EAAA60T,EAAM,EAAGzsY,GACnB,IAAIq1e,EAAe,IAAI/4gB,aAAqB,EAAR3xD,EAAY,GAC5C1B,EAAM4rkB,MACJnoU,EAAU,KAAOA,EAAkB,EAAR/hQ,EAAY,IAAM+hQ,EAAU,KAAOA,EAAkB,EAAR/hQ,EAAY,IACtF0qkB,EAAa,GAAK5oG,EAAa,EAAR9he,EAAY,GACnC0qkB,EAAa,GAAK5oG,EAAa,EAAR9he,EAAY,KAEnC0qkB,EAAa,GAAK5oG,EAAa,EAAR9he,EAAY,GACnC0qkB,EAAa,GAAK5oG,EAAa,EAAR9he,EAAY,KAGxB0qkB,EAAA,GAAK5oG,EAAK,GACV4oG,EAAA,GAAK5oG,EAAK,IAEZ4oG,EAAAjhlB,IAAIq4e,EAAM,GACnBxje,EAAM4rkB,MACJnoU,EAAU,KAAOA,EAAkB,EAAR/hQ,EAAY,IAAM+hQ,EAAU,KAAOA,EAAkB,EAAR/hQ,EAAY,IACtF0qkB,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAK,GACnC4oG,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAK,GACnCxje,EAAM0B,OAAS,IAEf0qkB,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAK,GACnC4oG,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAK,GACnC4oG,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAK,GACnC4oG,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAK,KAGrC4oG,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAa,EAAR9he,EAAY,GAC/C0qkB,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAa,EAAR9he,EAAY,GAC/C0qkB,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAa,EAAR9he,EAAY,GAC/C0qkB,EAAqB,EAAR1qkB,EAAY,GAAK8he,EAAa,EAAR9he,EAAY,IAE7C,IAAAq4jB,EAAahmgB,EAAQq4gB,GACzBpskB,EAAM+3jB,eAAegC,GACjB,IAAAsS,EAAYjW,EAAQgW,EAAcrS,GACtC/5jB,EAAMi4jB,oBAAoBoU,GAO5B,GALI7vkB,EAAE/J,MACJuN,EAAMvN,MAAQ+J,EAAE/J,MACNuN,EAAMvN,QAChBuN,EAAMvN,MAAQuN,EAAM+2F,SAEjBv6F,EAAE/J,OAAS+J,EAAEinQ,YAAczjQ,EAAM0B,MAAO,CAC3C,IAAIq1F,EAAS/2F,EAAM+2F,OACfu1e,EAAUv1e,EAAO,GAAKA,EAAO,GAAIw1e,EAAUx1e,EAAO,GAAKA,EAAO,GAC9Dy1e,EAASxskB,EAAMvN,MAAM,GAAKuN,EAAMvN,MAAM,GAAIg6kB,EAASzskB,EAAMvN,MAAM,GAAKuN,EAAMvN,MAAM,GACpFuN,EAAM+Z,MAAQ,CACZuyjB,EAAUE,EACVD,EAAUE,GAEZzskB,EAAMga,UAAY,EACfha,EAAMvN,MAAM,GAAK+5kB,EAASz1e,EAAO,GAAKy1e,GAAU,GAChDxskB,EAAMvN,MAAM,GAAKg6kB,EAAS11e,EAAO,GAAK01e,GAAU,GAE7CzskB,EAAA43jB,WAAaxB,EAAQp2jB,EAAM+Z,OAC3B/Z,EAAA63jB,eAAiBzB,EAAQp2jB,EAAMga,WAEvC,GAAIxd,EAAEkwb,OAAQ,CACZ,IAAoBggJ,EAAhBhC,EAAa,EACjB,IAAKlukB,EAAEkwb,QAAUlwb,EAAEkwb,OAAOhtc,OAAS,EACpBgrlB,EAAA,EACFgC,EAAA,IAAIvslB,WAAW,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,UACzD,CACQuqlB,EAAA,EACb,IAAA,IAASp6jB,EAAK,EAAGA,EAAK9T,EAAEkwb,OAAOhtc,SAAU4wB,EACzBo6jB,GAAAlukB,EAAEkwb,OAAOp8a,GAEzBo8jB,EAAW,IAAIvslB,WAAWuqlB,EAAaZ,EAAOI,UAC9C,IAAI7wK,EAAM,EACN93Q,EAAY,IAChB,IAAA,IAASr5I,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAA,IAASoI,EAAK,EAAGA,EAAK9T,EAAEkwb,OAAOhtc,SAAU4wB,EAAI,CAC3C,IAAA,IAAS3oB,EAAI,EAAGoiB,EAAIvN,EAAEkwb,OAAOp8a,GAAMw5jB,EAAOI,SAAW,GAAKvilB,EAAIoiB,IAAKpiB,EACjE+klB,EAASrzK,KAAS93Q,EAEPA,GAAA,KAInBvhJ,EAAM0qkB,WAAaA,EACnB1qkB,EAAMksb,YAAY,CAChB9hD,SAAU,EACV9kZ,KAAMonlB,EACNhhhB,MAAOghhB,EAAShtlB,OAChB0kG,OAAQ,EACRs5H,IAAK,SACL10N,IAAK,UACJ,EAAG,GAER,GAAIwT,EAAE6f,MAAO,CACX,IAAI3a,EAAQ1B,EAAM0B,MACd0gJ,EAAS5lJ,EAAE6f,MACV+lI,IAAiBA,EAAA,eACtB,IAAIuqb,EAAY,IAAIxslB,WAAmB,EAARuhB,EAAY,GACvC,GAACthB,MAAMiF,QAAQ+8J,IAAgC,iBAAdA,EAAO,GAKrC,CACL,IAAA,IAAS9xI,EAAK,EAAGA,EAAK5O,EAAO4O,IAAM,CACjC,IAAIvuB,EAAI8nF,EAAMu4E,EAAO9xI,GAAK,SAChBq8jB,EAAAxhlB,IAAIpJ,EAAQ,EAALuuB,GAETq8jB,EAAAxhlB,IAAI0+E,EAAMu4E,EAAO,GAAI,SAAkB,EAAR1gJ,OAVkB,CACvD,IAAA3f,EAAI8nF,EAAMu4E,EAAQ,SACtB,IAAA,IAAS9xI,EAAK,EAAGA,EAAK5O,EAAQ,EAAG4O,IACrBq8jB,EAAAxhlB,IAAIpJ,EAAQ,EAALuuB,EACnB,CAQFtQ,EAAMu8b,YAAY,CAChBve,MAAO,UACP54b,KAAM,QACNE,KAAMqnlB,UAnQHvmlB,KAAA4jlB,OAAO/qlB,GAAK,QAuQjBsjJ,EAAQ7iJ,OAAS0G,KAAK4jlB,OAAOtqlB,OAAQ,CACvC,IAAA,IAAST,EAAIsjJ,EAAQ7iJ,OAAQT,EAAImH,KAAK4jlB,OAAOtqlB,OAAQT,IAAK,CACpD,IAAAwlN,EAAOr+M,KAAK4jlB,OAAO/qlB,GAClBwlN,IACLA,EAAK83P,YAAY7yU,UACjB+6E,EAAKszX,eAAeruc,UACpB+6E,EAAKynP,YAAYxiU,WAEdtjI,KAAA4jlB,OAAOtqlB,OAAS6iJ,EAAQ7iJ,OAE/B,IAAIsqlB,EAAS,GACb,IAAA,IAAS/qlB,EAAI,EAAGA,EAAImH,KAAK4jlB,OAAOtqlB,OAAQT,IACf,OAAnBmH,KAAK4jlB,OAAO/qlB,MAAoBc,KAAKqG,KAAK4jlB,OAAO/qlB,IAGhD,OADPmH,KAAK4jlB,OAASA,EACP5jlB,IACT,EACO0jlB,EAAAxmlB,UAAUomI,QAAU,WAOlB,OANFtjI,KAAA4jlB,OAAOlxkB,SAAS2rM,IACnBA,EAAK83P,YAAY7yU,UACjB+6E,EAAKszX,eAAeruc,UACpB+6E,EAAKynP,YAAYxiU,SAAQ,IAE3BtjI,KAAK4jlB,OAAOtqlB,OAAS,EACd0G,IACT,KAKAwmlB,GAAuB7ukB,EAAW,CACpC,qCAAqCpb,EAASic,GAE5C,IAAIsgjB,EAAYgI,KACZr9e,EAAQmna,KACR8lF,EAAaf,KACbhmU,EAAO62T,KACPiQ,EAAUrB,KACV7N,EAAUP,MACVrzf,QAAEA,EAAAqigB,QAASA,GAAYD,KAC3Bv3jB,EAAOjc,QA8CE,SAAQ6mN,EAAMjnE,GASrB,GARoB,mBAATinE,GACJjnE,IAASA,EAAU,CAAC,GACzBA,EAAQinE,KAAOA,GAELjnE,EAAAinE,EAERjnE,EAAQ7iJ,SAAQ6iJ,EAAQkhI,UAAYlhI,KACxCinE,EAAOjnE,EAAQinE,MACLugY,aAAa,0BACrB,MAAMzplB,MAAM,sEAEV,IAAgBuslB,EAAY9U,EAAgBE,EAAqB17H,EAAauwI,EAAaC,EAA3F/oL,EAAMx6M,EAAKwmD,IAA4F5mL,EAAW,CACpH/sD,MAAO,QACP4oa,QAAS,EACTjoS,UAAW,EACXl2E,QAAS,EACTujX,SAAU,KACV53b,MAAO,KACP3R,OAAQ,EACR4gB,MAAO,EACPq1F,OAAQ,KACR0sK,UAAW,GACX7xQ,OAAQ,IACPqZ,EAAS,GAgKL,OA/JPsxb,EAAc/yP,EAAK3oN,OAAO,CACxBm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,WAAW,KAEvB43kB,EAAiBvuX,EAAK3oN,OAAO,CAC3Bm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,WAAW,KAEvB83kB,EAAsBzuX,EAAK3oN,OAAO,CAChCm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,WAAW,KAEvB2slB,EAActjY,EAAK3oN,OAAO,CACxBm9b,MAAO,UACP54b,KAAM,QACNE,KAAM,IAAInF,WAAW,KAEvB4slB,EAAavjY,EAAK3oN,OAAO,CACvBm9b,MAAO,SACP54b,KAAM,QACNE,KAAM0nlB,IAERj8jB,EAAOwxH,GACPsqc,EAAarjY,EAAK,CAChB2rB,KAAM,o7BAkCNyjW,KAAM,iMAYN1gJ,SAAU,CACRzlb,MAAO+2M,EAAKvvM,KAAK,SACjB+iJ,UAAWwsD,EAAKvvM,KAAK,aACrBgrb,QAASz7O,EAAKvvM,KAAK,WACnB6sE,QAAS0iI,EAAKvvM,KAAK,WACnB8f,MAAOyvL,EAAKvvM,KAAK,SACjB+f,UAAWwvL,EAAKvvM,KAAK,aACrB29jB,WAAYpuX,EAAKvvM,KAAK,cACtB49jB,eAAgBruX,EAAKvvM,KAAK,kBAC1Bowb,SAAU,CAACz1L,EAAK36P,IAAS,CAACA,EAAKowb,SAASv/b,EAAGmP,EAAKowb,SAASt/b,EAAG6pQ,EAAI+1U,cAAe/1U,EAAIg2U,iBAErFj8f,WAAY,CAEVtyD,MAAO,CACLx7B,OAAQ07c,EACRz7c,OAAQ,CAAC8zQ,EAAK36P,IAAuB,EAAdA,EAAKnZ,OAC5BiqlB,QAAS,GAEXxvkB,SAAU,CACR1a,OAAQk3kB,EACRj3kB,OAAQ,CAAC8zQ,EAAK36P,IAAuB,EAAdA,EAAKnZ,OAC5BiqlB,QAAS,GAEXW,cAAe,CACb7qlB,OAAQo3kB,EACRn3kB,OAAQ,CAAC8zQ,EAAK36P,IAAuB,EAAdA,EAAKnZ,OAC5BiqlB,QAAS,GAEX3glB,MAAO,CACLvJ,OAAQislB,EACRhslB,OAAQ,CAAC8zQ,EAAK36P,IAAuB,GAAdA,EAAKnZ,OAC5BiqlB,QAAS,GAGXrqf,UAAW,CACT7/F,OAAQkslB,EACRp1J,OAAQ,GACR72b,OAAQ,GAEV81b,WAAY,CACV/1b,OAAQkslB,EACRp1J,OAAQ,GACR72b,OAAQ,GAEVmslB,UAAW,CACTpslB,OAAQkslB,EACRp1J,OAAQ,GACR72b,OAAQ,KAGZw/W,UAAW,YACXloF,MAAO,CACLh/K,QAAQ,EACR/8E,MAAO,CAAC,EAAG,EAAG,EAAG,GACjBwujB,SAAU,CACRvujB,IAAK,MACL+iB,MAAO,OAETjkC,KAAM,CACJm9jB,OAAQ,YACRC,OAAQ,sBACRC,SAAU,sBACVC,SAAU,QAGd9vjB,MAAO,CACLwwF,QAAQ,GAEVu/d,QAAS,CACPv/d,QAAQ,EACR+6F,IAAKqV,EAAKvvM,KAAK,aAEjBowb,SAAU7gP,EAAKvvM,KAAK,YACpB8sb,SAAS,EACTwjJ,UAAW/gY,EAAKvvM,KAAK,SACrByH,MAAOsrkB,EAAQttlB,SAEjBm3kB,EAAQ/C,EAAS,CACf/ijB,SACAw6I,OACA7hC,UACA8/E,OACAipO,GAAIzuB,EACJrvJ,OAAQqvJ,EAAIrvJ,OACZ1pP,WAEK6ojB,EACP,SAASA,EAAQ15f,GACXA,EACFrpD,EAAOqpD,GACW,OAATA,GACDsvD,IAEL6hC,IAEP,SAASA,EAAKgtS,GACZ,GAAwB,iBAAbA,EAAuB,OAAO20I,EAAU30I,GAC/CA,IAAan4c,MAAMiF,QAAQkzc,KAAWA,EAAW,CAACA,IACtD/uP,EAAKyvX,WACEhujB,EAAAnS,SAAQ,CAACrX,EAAGxC,KACZwC,IACD82c,IACGA,EAASt5c,KACPssK,MAAO,IADMA,MAAO,GAGxB9pK,EAAE8pK,KAIP2hb,EAAUjulB,GAHRwC,EAAE8pK,MAAO,EAGA,IAGf,SAAS2hb,EAAUzrlB,GACA,iBAANA,IAAgBA,EAAIwpB,EAAOxpB,IAC7B,MAALA,GACEA,GAAKA,EAAEigB,OAASjgB,EAAE46B,OAAS56B,EAAEqlF,SAAWrlF,EAAEgiR,WAAahiR,EAAEgiR,UAAU/jR,OAAS,IAClF+B,EAAE0rlB,WAAa,CACb1rlB,EAAEs4B,MAAM,GAAKt4B,EAAE4oc,SAAS3+X,MACxBjqE,EAAEs4B,MAAM,GAAKt4B,EAAE4oc,SAASjmW,QAE1Byof,EAAWprlB,GACPA,EAAE4zC,OAAS5zC,EAAA4zC,MAAM5zC,IAEvB,SAASsvB,EAAOwnb,GACd,IAAKA,EAAU,OACQ,MAAnBA,EAAS74c,OACgB,iBAAhB64c,EAAS,OAA4B,CAAC,CAAE90L,UAAW80L,KACpDn4c,MAAMiF,QAAQkzc,KAAWA,EAAW,CAACA,IAC7C,IAAAhJ,EAAa,EAAG69I,EAAa,EAuGjC,GAtGAtZ,EAAQ7ojB,OAASA,EAASstb,EAASlyb,KAAI,CAACgnkB,EAAUpulB,KAC5C,IAAAotB,EAAQpB,EAAOhsB,GACf,OAACoulB,GACwB,mBAAbA,EAAoCA,EAAA,CAAEh4iB,MAAOg4iB,GAC7B,iBAAhBA,EAAS,KAA4BA,EAAA,CAAE5pU,UAAW4pU,IAClEA,EAAWt9U,EAAKs9U,EAAU,CACxBhxjB,MAAO,oBACP4oa,QAAS,+BACTjoS,UAAW,4CACXl2E,QAAS,gBACTr0E,MAAO,gBACP43b,SAAU,mBACVz4b,OAAQ,eACR6xQ,UAAW,mCAERp3P,IACIpB,EAAAhsB,GAAKotB,EAAQ,CAClB5R,GAAIxb,EACJ86B,MAAO,KACPC,UAAW,KACX49iB,WAAY,KACZC,eAAgB,KAChBtsa,MAAM,GAER8hb,EAAWxW,EAAQ,GAAIztf,EAAUikgB,IAExBvW,EAAAzqjB,EAAOghkB,EAAU,CAAC,CAC3Brwb,UAAYv4I,GAAW,IAAJA,EACnBwgb,QAAUxgb,GAAW,IAAJA,EACjBqiE,QAAS9nD,WACTptB,OAASA,IACPA,EAAS+1jB,EAAQ/1jB,GACjBw7kB,GAAcx7kB,EAAOlS,OACdkS,GAET6xQ,UAAW,CAACA,EAAWzjQ,KACTyjQ,EAAAkkT,EAAQlkT,EAAW,WAC/BzjQ,EAAM0B,MAAQ9f,KAAKO,MAAMshR,EAAU/jR,OAAS,GACtCsgB,EAAA+2F,OAASmod,EAAUz7S,EAAW,GACpCzjQ,EAAMlf,OAASyuc,EACfA,GAAcvvb,EAAM0B,MACb+hQ,IAER,CACDpnP,MAAO,CAAC+lI,EAAQpiJ,KACd,IAAI0B,EAAQ1B,EAAM0B,MAEd,GADC0gJ,IAAiBA,EAAA,gBACjBhiK,MAAMiF,QAAQ+8J,IAAgC,iBAAdA,EAAO,GAAiB,CAC3D,IAAItjI,EAASsjI,EACbA,EAAShiK,MAAMshB,GACf,IAAA,IAAS4O,EAAK,EAAGA,EAAK5O,EAAO4O,IAC3B8xI,EAAO9xI,GAAMwO,EAGjB,GAAIsjI,EAAO1iK,OAASgiB,EAAO,MAAMphB,MAAM,qBACvC,IAAIqslB,EAAY,IAAIxslB,WAAmB,EAARuhB,GAC/B,IAAA,IAAS4O,EAAK,EAAGA,EAAK5O,EAAO4O,IAAM,CACjC,IAAIvuB,EAAI8nF,EAAMu4E,EAAO9xI,GAAK,SAChBq8jB,EAAAxhlB,IAAIpJ,EAAQ,EAALuuB,GAEZ,OAAAq8jB,CAAA,EAETl6kB,MAAO,CAACA,EAAOuN,EAAOstkB,KACpB,IAAIv2e,EAAS/2F,EAAM+2F,OAMZ,OALFtkG,IAAeA,EAAAskG,GACpB/2F,EAAM+Z,MAAQ,CAAC,GAAKtnB,EAAM,GAAKA,EAAM,IAAK,GAAKA,EAAM,GAAKA,EAAM,KAC1DuN,EAAAga,UAAY,EAAEvnB,EAAM,IAAKA,EAAM,IAC/BuN,EAAA43jB,WAAaxB,EAAQp2jB,EAAM+Z,OAC3B/Z,EAAA63jB,eAAiBzB,EAAQp2jB,EAAMga,WAC9BvnB,CAAA,EAET43b,SAAW8vI,IACL,IAAA9vI,EAyBG,OAxBHjqc,MAAMiF,QAAQ80kB,GACL9vI,EAAA,CACTv/b,EAAGqvkB,EAAG,GACNpvkB,EAAGovkB,EAAG,GACNzugB,MAAOyugB,EAAG,GAAKA,EAAG,GAClB/1e,OAAQ+1e,EAAG,GAAKA,EAAG,IAEZA,GACE9vI,EAAA,CACTv/b,EAAGqvkB,EAAGrvkB,GAAKqvkB,EAAGt2jB,MAAQ,EACtB9Y,EAAGovkB,EAAGpvkB,GAAKovkB,EAAGtmjB,KAAO,GAEnBsmjB,EAAGp2jB,MAAOsmb,EAAS3+X,MAAQyugB,EAAGp2jB,MAAQsmb,EAASv/b,EACrCu/b,EAAA3+X,MAAQyugB,EAAGvnjB,GAAKunjB,EAAGzugB,OAAS,EACtCyugB,EAAG11hB,OAAQ4lZ,EAASjmW,OAAS+1e,EAAG11hB,OAAS4lZ,EAASt/b,EACxCs/b,EAAAjmW,OAAS+1e,EAAG31jB,GAAK21jB,EAAG/1e,QAAU,GAEjCimW,EAAA,CACTv/b,EAAG,EACHC,EAAG,EACH2gE,MAAOs4V,EAAI/zJ,mBACX7rK,OAAQ4/T,EAAI9zJ,qBAGTm6L,CAAA,KAGJh+a,GAlGeA,CAkGf,IAELkjb,GAAc69I,EAAY,CAC5B,IAAI9tlB,EAAM2rB,EAAOk6B,QAAO,CAACyvX,EAAKvoZ,EAAOptB,IAC5B21a,GAAOvoZ,EAAQA,EAAM3K,MAAQ,IACnC,GACC0qkB,EAAe,IAAI/4gB,aAAmB,EAAN/zE,GAChCqtlB,EAAY,IAAIxslB,WAAiB,EAANb,GAC3BiulB,EAAY,IAAIp6gB,aAAmB,EAAN7zE,GAC1B2rB,EAAAnS,SAAQ,CAACuT,EAAOptB,KACrB,IAAKotB,EAAO,OACZ,IAAIo3P,UAAEA,EAAW/hQ,MAAAA,EAAA5gB,OAAOA,EAAQu7B,MAAOyC,EAAAltB,OAAQA,GAAWya,EACrD3K,IACKirkB,EAAAxhlB,IAAI2zB,EAAiB,EAATh+B,GACZyslB,EAAApilB,IAAIyG,EAAiB,EAAT9Q,GACTsrlB,EAAAjhlB,IAAIs4Q,EAAoB,EAAT3iR,GAAU,IAEpC,IAAAi5kB,EAAahmgB,EAAQq4gB,GACzBrU,EAAegC,GACX,IAAAsS,EAAYjW,EAAQgW,EAAcrS,GACtC9B,EAAoBoU,GACpB9vI,EAAYowI,GACZG,EAAYS,IAGhB,SAAS7jd,IACPquc,EAAeruc,UACfuuc,EAAoBvuc,UACpB6yU,EAAY7yU,UACZojd,EAAYpjd,UACZqjd,EAAWrjd,YAlZf,IAAIsjd,EAAU,CAGZ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,GAAG,EAAI,EAAG,GACjB,EAAK,EAAA,EAAG,GAAG,EAAI,EAAG,GAClB,EAAK,EAAA,EAAG,GAAG,EAAI,EAAG,GAClB,EAAK,EAAA,EAAG,EAAG,EAAG,EAAG,GACjB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAEhB,CAAC,EAAG,GAAO,EAAA,EAAG,EAAG,GACjB,CAAC,EAAG,GAAO,EAAA,EAAG,GAAK,GACnB,CAAC,EAAG,EAAG,EAAG,EAAG,GAAK,GAClB,CAAC,EAAG,EAAG,EAAG,EAAG,GAAK,GAClB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,GAAO,EAAA,EAAG,EAAG,GAEjB,EAAK,EAAA,GAAO,EAAA,EAAG,EAAG,GAClB,EAAK,EAAA,GAAO,EAAA,EAAG,GAAK,GACpB,EAAK,EAAA,EAAG,EAAG,EAAG,GAAK,GACnB,EAAK,EAAA,EAAG,EAAG,EAAG,GAAK,GACnB,EAAK,EAAA,EAAG,EAAG,EAAG,EAAG,GACjB,EAAK,EAAA,GAAO,EAAA,EAAG,EAAG,GAElB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,GAAO,EAAA,EAAG,EAAG,GACjB,CAAC,GAAG,GAAQ,EAAA,EAAG,EAAG,GAClB,CAAC,GAAG,GAAQ,EAAA,EAAG,EAAG,GAClB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,GAAG,EAAI,EAAG,EAAG,EAAG,GAEjB,CAAC,EAAG,EAAG,GAAG,EAAI,EAAG,GACjB,CAAC,EAAG,EAAG,GAAG,KAAQ,GAClB,CAAC,EAAG,EAAG,EAAG,KAAO,GACjB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAChB,CAAC,EAAG,EAAG,GAAG,EAAI,EAAG,GACjB,CAAC,EAAG,EAAG,EAAG,KAAO,GAEjB,CAAC,GAAG,EAAI,GAAG,EAAI,EAAG,GAClB,CAAC,GAAG,EAAI,GAAG,KAAQ,GACnB,CAAC,GAAG,EAAI,EAAG,KAAO,GAClB,CAAC,GAAG,EAAI,EAAG,EAAG,EAAG,GACjB,CAAC,GAAG,EAAI,GAAG,EAAI,EAAG,GAClB,CAAC,GAAG,EAAI,EAAG,KAAO,OA8WpBQ,GAAkBzvkB,EAAW,CAC/B,gCAAgCpb,EAASic,GACvC,IAAI2/N,EAAM,SACH58N,EAAAhf,QAAU,SAAiB2F,GAChC,OAAKA,GAGDi2O,EAAIvwN,KAAK1lB,EAAIsf,OAAO,MAChBtf,EAAAA,EAAIJ,OAAO,IAEfq2O,EAAIvwN,KAAK1lB,EAAIsf,OAAOtf,EAAI5I,OAAS,MACnC4I,EAAMA,EAAIJ,OAAO,EAAGI,EAAI5I,OAAS,IAE5B4I,GARE,EASX,KAKAmllB,GAA8B1vkB,EAAW,CAC3C,oDAKE2vkB,GAAmC3vkB,EAAW,CAChD,yDAKE4vkB,GAAmC5vkB,EAAW,CAChD,yDAKE6vkB,GAAkC7vkB,EAAW,CAC/C,wDAKE8vkB,GAAoC9vkB,EAAW,CACjD,0DAKE+vkB,GAAsB/vkB,EAAW,CACnC,oCAAoCpb,EAASic,GAElC,SAAAusD,EAAO7iE,EAAK8xE,GACnB,GAAmB,iBAAR9xE,EAAkB,MAAO,CAACA,GACjC,IAAAW,EAAM,CAACX,GACS,iBAAT8xE,GAAqBh6E,MAAMiF,QAAQ+0E,GACrCA,EAAA,CAAE2zgB,SAAU3zgB,GACTA,IAAMA,EAAO,CAAC,GAC1B,IAAI2zgB,EAAW3zgB,EAAK2zgB,SAAW3tlB,MAAMiF,QAAQ+0E,EAAK2zgB,UAAY3zgB,EAAK2zgB,SAAW,CAAC3zgB,EAAK2zgB,UAAY,CAAC,KAAM,KAAM,MACzGC,EAAU5zgB,EAAKoxT,QAAU,MACzB11O,IAAS17E,EAAK07E,KACTi4b,EAAAj1kB,SAAQ,SAASm1kB,GACpB,IAAAC,EAAM,IAAI1gkB,OAAO,CAAC,KAAMygkB,EAAQ,GAAI,OAAQA,EAAQ,GAAI,KAAMA,EAAQ,GAAI,OAAQA,EAAQ,IAAI/tlB,KAAK,KACnG+mF,EAAM,GACD,SAAAkngB,EAAazijB,EAAO9qB,EAAKwtkB,GAChC,IAAIC,EAAQpllB,EAAIlJ,KAAK2rC,EAAMxnC,MAAM+plB,EAAQ,GAAGvulB,QAASuulB,EAAQ,GAAGvulB,SAAW,EAE3E,OADAunF,EAAIlnF,KAAKsulB,GACFL,EAAUK,EAAQL,EAEvB/klB,EAAA6P,SAAQ,SAASs1kB,EAAMnvlB,GAGzB,IAFI,IAAAqvlB,EACAzjlB,EAAI,EACDujlB,GAAQE,GAGb,GAFUA,EAAAF,EACHA,EAAAA,EAAKzilB,QAAQuilB,EAAKC,GACrBtjlB,IAAM,IAAW,MAAAvK,MAAM,4DAE7B2I,EAAIhK,GAAKmvlB,CAAA,IAEXnngB,EAAMA,EAAIriC,UACJ37C,EAAAA,EAAIod,KAAI,SAAS+nkB,GAId,OAHHnngB,EAAAnuE,SAAQ,SAAS2B,GACnB2zkB,EAAOA,EAAKzilB,QAAQ,IAAI6hB,OAAO,MAAQwgkB,EAAUvzkB,EAAK,KAAOuzkB,EAAU,IAAK,KAAMC,EAAQ,GAAK,KAAOA,EAAQ,GAAE,IAE3GG,CAAA,GACR,IAEH,IAAIxgkB,EAAK,IAAIJ,OAAO,KAAOwgkB,EAAU,aAAeA,GAapD,OAAOl4b,EAAO7sJ,EAZL,SAAAsf,EAAK6lkB,EAAM7nM,EAAMgoM,GAGxB,IAFI,IAAWz8jB,EAAX08jB,EAAO,GACP3jlB,EAAI,EACDinB,EAAQlE,EAAGmR,KAAKqvjB,IAAO,CAC5B,GAAIvjlB,IAAM,IAAW,MAAAvK,MAAM,sCAC3BkulB,EAAKzulB,KAAKqulB,EAAKlqlB,MAAM,EAAG4tB,EAAM0lB,QACzBg3iB,EAAAzulB,KAAKwoB,EAAKg+X,EAAKz0X,EAAM,IAAKy0X,IAC/B6nM,EAAOA,EAAKlqlB,MAAM4tB,EAAM0lB,MAAQ1lB,EAAM,GAAGpyB,QAGpC,OADP8ulB,EAAKzulB,KAAKqulB,GACHI,EAEWjmkB,CAAKtf,EAAI,GAAIA,GAE1B,SAAAomH,EAAU9rH,EAAK62E,GAClB,GAAAA,GAAQA,EAAK07E,KAAM,CACjB,IACcw4b,EADdN,EAAU5zgB,GAAQA,EAAKoxT,QAAU,MACjCljY,EAAM/E,EAAI,GACV,IAAC+E,EAAY,MAAA,GAGjB,IAFA,IAAIslB,EAAK,IAAIJ,OAAO,KAAOwgkB,EAAU,aAAeA,GAChDnjlB,EAAI,EACDvC,GAAOgmlB,GAAS,CACrB,GAAIzjlB,IAAM,IAAW,MAAAvK,MAAM,0BAA4BiD,GAC7C+qlB,EAAAhmlB,EACJA,EAAAA,EAAIqD,QAAQiiB,EAAI6gkB,GAEjB,OAAAnmlB,EAET,OAAO/E,EAAI4hD,QAAO,SAAS5jC,EAAEu3J,EAAM2sN,GAIjC,OAHIrlY,MAAMiF,QAAQogY,KACTA,EAAAA,EAAKtgV,OAAO5jC,EAAG,KAEjBu3J,EAAO2sN,IACb,IACM,SAAAgpN,EAAW38jB,EAAOlR,GACrB,GAAY,MAAZrd,EAAIqd,SAAoBtgB,MAAM,aAAesgB,EAAM,gBACvD,OAAOrd,EAAIqd,IAGN,SAAA8tkB,EAAYnrlB,EAAK62E,GACpB,OAAAh6E,MAAMiF,QAAQ9B,GACT8rH,EAAU9rH,EAAK62E,GAEfjP,EAAO5nE,EAAK62E,GAGvBs0gB,EAAY3jjB,MAAQogC,EACpBujhB,EAAYr/d,UAAYA,EACxBzwG,EAAOjc,QAAU+rlB,KAKjBC,GAA0B5wkB,EAAW,CACvC,wCAAwCpb,EAASic,GAE/C,IAAIgwkB,EAAQd,KACZlvkB,EAAOjc,QAAU,SAAiBiB,EAAQirlB,EAAWrykB,GACnD,GAAc,MAAV5Y,EAAsB,MAAAtD,MAAM,qCAChC,GAAiB,MAAbuulB,EAAyB,MAAAvulB,MAAM,4CAC9Bkc,GACiB,iBAANA,GAAkBpc,MAAMiF,QAAQmX,MAC1CA,EAAA,CAAE4ikB,OAAQ5ikB,IAFRA,EAAI,CAAC,EAIG,MAAZA,EAAEgvX,SAAgBhvX,EAAEgvX,QAAS,GACjB,MAAZhvX,EAAE4ikB,OAAgB5ikB,EAAE4ikB,OAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAgB,OAElE,iBAAb5ikB,EAAE4ikB,SACT5ikB,EAAA4ikB,OAAS,CAAC5ikB,EAAE4ikB,SAEhB5ikB,EAAE4ikB,OAAS5ikB,EAAE4ikB,OAAO/4jB,KAAI,SAASmygB,GAExB,OADa,IAAhBA,EAAK94hB,SAAc84hB,GAAcA,GAC9BA,CAAA,KAGP,IAAA36D,EAAS+wH,EAAM7jjB,MAAMnnC,EAAQ,CAAEkyJ,MAAM,EAAMi4b,SAAUvxkB,EAAE4ikB,SAEvDx/kB,EADMi+d,EAAO,GACDxqd,MAAMw7kB,GACtB,GAAIrykB,EAAEgvX,OAAQ,CAEZ,IADA,IAAIsjN,EAAa,GACR7vlB,EAAI,EAAGA,EAAIW,EAAMF,OAAQT,IAAK,CACjC,IAAA65K,EAAOl5K,EAAMX,GACbw4E,EAAO73E,EAAMX,EAAI,GACS,OAA1B65K,EAAKA,EAAKp5K,OAAS,IAAyC,OAA1Bo5K,EAAKA,EAAKp5K,OAAS,IAC5CovlB,EAAA/ulB,KAAK+4K,EAAO+1a,EAAYp3gB,GACnCx4E,KAEA6vlB,EAAW/ulB,KAAK+4K,GAGZl5K,EAAAkvlB,EAEV,IAAS7vlB,EAAI,EAAGA,EAAIW,EAAMF,OAAQT,IACzB4+d,EAAA,GAAKj+d,EAAMX,GACZW,EAAAX,GAAK2vlB,EAAMv/d,UAAUwuW,EAAQ,CAAE/nU,MAAM,IAEtC,OAAAl2J,CACT,KAKAmvlB,GAAiChxkB,EAAW,CAC9C,uDAKEixkB,GAAgBjxkB,EAAW,CAC7B,oCAAoCpb,EAASic,GAE3C,IAAIiqX,EAAQkmN,KACZnwkB,EAAOjc,QAAU,CACfsslB,OAAQ,SAAgBntlB,GACtB,MAAO,UAAUksB,KAAKlsB,KAAuC,IAA7BA,EAAMvB,QAAQ,OAAwC,IAAzBsoY,EAAMtoY,QAAQuB,QAO/EotlB,GAAgBnxkB,EAAW,CAC7B,iCAAiCpb,EAASic,GAExC,IAAIuwkB,EAAU3B,KACV4B,EAAiB3B,KACjB4B,EAAqB3B,KACrB4B,EAAqB3B,KACrB4B,EAAoB3B,KACpB4B,EAAsB3B,KACtB4B,EAAUd,KACVM,EAASD,KAAgBC,OAC7BrwkB,EAAOjc,QAAU+slB,EACb,IAAA9zkB,EAAQ8zkB,EAAU9zkB,MAAQ,CAAC,EAC/B,SAAS8zkB,EAAU5tlB,GACjB,GAAqB,iBAAVA,EAA0B,MAAA,IAAIxB,MAAM,mCAC/C,GAAIsb,EAAM9Z,GAAQ,OAAO8Z,EAAM9Z,GAC/B,GAAc,KAAVA,EACI,MAAA,IAAIxB,MAAM,iCAElB,IAA8C,IAA1C+ulB,EAAmB9ulB,QAAQuB,GAC7B,OAAO8Z,EAAM9Z,GAAS,CAAE6tlB,OAAQ7tlB,GAa3B,IAXP,IAUI4pC,EAVA25C,EAAO,CACT1qE,MAAO,SACPkpE,QAAS,SACT9hC,OAAQ,SACR6tiB,QAAS,SACTn2Z,WAAY,SACZ/zL,KAAM,OACNg+E,OAAQ,CAAC,UAEPm6Y,EAAS4xH,EAAQ3tlB,EAAO,OAErB4pC,EAAQmyb,EAAO12a,SAAS,CAC7B,IAA0C,IAAtCioiB,EAAe7ulB,QAAQmrC,GAIlB,MAHP,CAAC,QAAS,UAAW,SAAU,WAAW5yB,SAAQ,SAASmB,GACzDorE,EAAKprE,GAAQyxB,CAAA,IAER9vB,EAAM9Z,GAASujF,EAExB,IAA6C,IAAzCkqgB,EAAkBhvlB,QAAQmrC,GAI1B,GAAU,WAAVA,GAAgC,eAAVA,EAI1B,IAA+C,IAA3C8jjB,EAAoBjvlB,QAAQmrC,GAAhC,CAIA,IAA8C,IAA1C4jjB,EAAmB/ulB,QAAQmrC,GAA/B,CAII,GAAAujjB,EAAOvjjB,GAAQ,CACb,IAAA9rC,EAAQ6vlB,EAAQ/jjB,EAAO,KAQvB,GAPC25C,EAAA3/E,KAAO9F,EAAM,GACF,MAAZA,EAAM,GACRylF,EAAKo0G,WAAao2Z,EAAgBjwlB,EAAM,IACjB,MAAdi+d,EAAO,KAChBA,EAAO12a,QACPk+B,EAAKo0G,WAAao2Z,EAAgBhyH,EAAO12a,WAEtC02a,EAAOn+d,OACJ,MAAA,IAAIY,MAAM,iCAGX,OADF+kF,EAAA3B,OAAS+rgB,EAAQ5xH,EAAO39d,KAAK,KAAM,WAAWmmB,IAAI8okB,GAChDvzkB,EAAM9Z,GAASujF,EAElB,MAAA,IAAI/kF,MAAM,sCAAwCorC,GAlBtD25C,EAAKtjC,OAASrW,OAJd25C,EAAKuqgB,QAAUlkjB,OAJf25C,EAAKxB,QAAUn4C,OAJf25C,EAAK1qE,MAAQ+wB,EAgCX,MAAA,IAAIprC,MAAM,+BAElB,SAASuvlB,EAAgB/tlB,GACnB,IAAAkG,EAASg3B,WAAWl9B,GACpB,OAAAkG,EAAOpC,aAAe9D,EACjBkG,EAEFlG,MAMTgulB,GAAoB/xkB,EAAW,CACjC,qCAAqCpb,EAASic,GAE5C,IAAImxP,EAAO62T,KACPqoB,EAASD,KAAgBC,OACzB5zJ,EAAU00J,EAAItC,MACduC,EAAUD,EAAIrC,MACd5nK,EAAUiqK,EAAIpC,MACdxtO,EAAS4vO,EAAInC,MACbqC,EAAYF,EAAIlC,MAChBrjN,EAAW,CAAEh/U,OAAU,EAAG,aAAc,GACxC0kiB,EAAO,CACTC,MAAS,EACT,aAAc,EACdC,UAAa,EACbC,QAAW,EACXC,QAAW,EACX,YAAa,GAEXlngB,EAKI,OALJA,EAOM,QAwCD,SAAAmngB,EAAOzulB,EAAOwiB,GACrB,GAAIxiB,IAAUwiB,EAAOxiB,KAAWu5b,EAAQv5b,GAAQ,MAAMxB,MAAM,oBAAsBwB,EAAQ,KACnF,OAAAA,EAET,SAASiulB,EAAIlllB,GAEX,IADA,IAAI2R,EAAI,CAAC,EACAvd,EAAI,EAAGA,EAAI4L,EAAEnL,OAAQT,IAC1Bud,EAAA3R,EAAE5L,IAAM,EAEL,OAAAud,EA/CFmF,EAAAhf,QAAU,SAAuB6Z,GAWtC,IAVAA,EAAIuzP,EAAKvzP,EAAG,CACV7B,MAAO,yDACPkpE,QAAS,kEACT9hC,OAAQ,6CACR6tiB,QAAS,qDACTlqlB,KAAM,sDACN+zL,WAAY,+CACZ/1G,OAAQ,mEACRisgB,OAAQ,oCAEJA,OAEJ,OADInzkB,EAAEmzkB,QAAeY,EAAA/zkB,EAAEmzkB,OAAQK,GACxBxzkB,EAAEmzkB,OAQX,GANOY,EAAA/zkB,EAAE7B,MAAOwlW,GACTowO,EAAA/zkB,EAAEqnE,QAAS2mT,GACX+lN,EAAA/zkB,EAAEulC,OAAQ+jY,GACVyqK,EAAA/zkB,EAAEozkB,QAASK,GACJ,MAAVzzkB,EAAE9W,OAAc8W,EAAE9W,KAAO0jF,GACP,iBAAX5sE,EAAE9W,SAAqBA,MAAQ,OACrCuplB,EAAQ,MAAM3ulB,MAAM,mBAAqBkc,EAAE9W,KAAO,KAClD8W,EAAEknE,SAAQlnE,EAAEknE,OAAS0F,GACtBhpF,MAAMiF,QAAQmX,EAAEknE,UACblnE,EAAEknE,OAAOhkF,WAAUgkF,OAAS,CAAC0F,IAClC5sE,EAAEknE,OAASlnE,EAAEknE,OAAOr9D,KAAI,SAAS9E,GAC/B,OAAO2ukB,EAAK3ukB,GAAKA,EAAI,IAAMA,EAAI,GAAA,IAC9BrhB,KAAK,OAEV,IAAI+U,EAAS,GAOb,OANOA,EAAAlV,KAAKyc,EAAE7B,OACV6B,EAAEqnE,UAAYrnE,EAAE7B,OAAc1F,EAAAlV,KAAKyc,EAAEqnE,SACrCrnE,EAAEulC,SAAWvlC,EAAEqnE,SAAWrnE,EAAEulC,SAAWvlC,EAAE7B,OAAO1F,EAAOlV,KAAKyc,EAAEulC,QAC9DvlC,EAAEozkB,UAAYpzkB,EAAEulC,QAAUvlC,EAAEozkB,UAAYpzkB,EAAEqnE,SAAWrnE,EAAEozkB,UAAYpzkB,EAAE7B,OAAc1F,EAAAlV,KAAKyc,EAAEozkB,SAC9F36kB,EAAOlV,KAAKyc,EAAE9W,MAAwB,MAAhB8W,EAAEi9K,YAAuC,WAAjBj9K,EAAEi9K,YAA2Bj9K,EAAEi9K,WAAa,IAAO,IAAM,GAAK,IAAMj9K,EAAEi9K,aAC7GxkL,EAAAlV,KAAKyc,EAAEknE,QACPzuE,EAAOkc,OAAOpc,SAAS7U,KAAK,IACrC,KAgBAswlB,GAAmBzykB,EAAW,CAChC,iCAAiCpb,EAASic,GAExCA,EAAOjc,QAAU,CACfooC,MAAOmkjB,KACP7/d,UAAWyge,SAMbW,GAAyB1ykB,EAAW,CACtC,2CAA2Cpb,EAASic,GACjD,IAASu9C,EAASt/C,EAATs/C,EAEPx5D,EAFgBka,EAEP,WAEN,IAAAg6jB,EAAU,SAAS/phB,EAAMstB,GAE3B,IADI,IAAAh0D,EAAOhjB,OAAOgjB,KAAKg0D,GACdn7E,EAAI,EAAGA,EAAImnB,EAAK1mB,SAAUT,EACjC6tD,EAAK1mC,EAAKnnB,IAAMm7E,EAAKh0D,EAAKnnB,IAErB,OAAA6tD,CACT,EACI4jiB,EAAmB,EAId,SAAAC,EAAgBvrlB,EAAME,GAC7Bc,KAAKqU,GAAKi2kB,IACVtqlB,KAAKhB,KAAOA,EACZgB,KAAKd,KAAOA,EAEd,SAASsrlB,EAAUtolB,GACjB,OAAOA,EAAIqD,QAAQ,MAAO,QAAQA,QAAQ,KAAM,OAElD,SAASkllB,EAAWvolB,GACd,GAAe,IAAfA,EAAI5I,OACN,MAAO,GAEL,IAAAirL,EAAYriL,EAAIsf,OAAO,GACvBkqG,EAAWxpH,EAAIsf,OAAOtf,EAAI5I,OAAS,GACnC,GAAA4I,EAAI5I,OAAS,GAAKirL,IAAc74D,IAA2B,MAAd64D,GAAmC,MAAdA,GAC7D,MAAA,CAAC,IAAMima,EAAUtolB,EAAIJ,OAAO,EAAGI,EAAI5I,OAAS,IAAM,KAEvD,IAAAE,EAAQ,4CAA4Cm/B,KAAKz2B,GAC7D,GAAI1I,EACK,OAAAixlB,EAAWvolB,EAAIJ,OAAO,EAAGtI,EAAM43C,QAAQxsC,OAAO6llB,EAAWjxlB,EAAM,KAAKoL,OAAO6llB,EAAWvolB,EAAIJ,OAAOtI,EAAM43C,MAAQ53C,EAAM,GAAGF,UAE7H,IAAAoxlB,EAAWxolB,EAAI+K,MAAM,KACrB,GAAoB,IAApBy9kB,EAASpxlB,OACX,MAAO,CAAC,IAAMkxlB,EAAUtolB,GAAO,KAGjC,IADA,IAAI2M,EAAS,GACJhW,EAAI,EAAGA,EAAI6xlB,EAASpxlB,SAAUT,EACrCgW,EAASA,EAAOjK,OAAO6llB,EAAWC,EAAS7xlB,KAEtC,OAAAgW,EAET,SAAS87kB,EAAiBzolB,GACxB,MAAO,IAAMuolB,EAAWvolB,GAAKpI,KAAK,MAAQ,IAqB5C,IAAIy3Q,EAAU,CACZg5U,kBACAK,OArBO,SAAc5rlB,EAAME,GAC3B,OAAO,IAAIqrlB,EAAgBvrlB,EAAM2rlB,EAAiBzrlB,EAAO,MAqBzD2rlB,UAnBF,SAAmBnmlB,GACjB,MAAoB,mBAANA,IAAqBA,EAAEomlB,WAAapmlB,aAAa6llB,GAmB/DloN,MAjBO,SAAAA,EAAM39X,EAAGqlD,GACZ,MAAa,mBAANrlD,EACF,IAAI6llB,EA7CA,EA6C0B7llB,GACf,iBAANA,GAA+B,kBAANA,EAClC,IAAI6llB,EA9CI,EA8C0B7llB,GAChC1K,MAAMiF,QAAQyF,GAChB,IAAI6llB,EA/CC,EA+C0B7llB,EAAEub,KAAI,SAAStb,EAAG9L,GACtD,OAAOwpY,EAAM19X,OAEND,aAAa6llB,EACf7llB,OAFL,GAUJqmlB,SAAUJ,GAER/yT,EAAM,CACR18Q,KAAuC,mBAA1B4qP,sBAAuC,SAASluP,GAC3D,OAAOkuP,sBAAsBluP,EAC/B,EAAI,SAASA,GACJ,OAAAqB,WAAWrB,EAAI,GACxB,EACA64C,OAAwC,mBAAzB+yE,qBAAsC,SAASwnd,GAC5D,OAAOxnd,qBAAqBwnd,EAAI,EAC9B5kjB,cAEF6kjB,EAA+B,oBAAhBv7G,aAA+BA,YAAYnzd,IAAM,WAClE,OAAOmzd,YAAYnzd,KAAI,EACrB,WACK,WAAqBD,IAC9B,EAwFA,SAAS4ukB,EAAgBx+kB,GACnB,MAAiB,iBAAVA,EACFA,EAAMO,QAERP,EAET,SAASy+kB,EAAWp1kB,GACd,MAAgB,iBAATA,EACF8F,SAASmJ,cAAcjP,GAEzBA,EAET,SAASq1kB,EAAUC,GACb,IACAxyf,EAASjsE,EAAW2hP,EAAQqvJ,EApBXh/Z,EAmBjBqsB,EAAOogkB,GAAS,CAAC,EAEjBC,EAAoB,CAAC,EACrBC,EAAa,GACbC,EAAqB,GACrBl/J,EAA+B,oBAAXn6a,OAAyB,EAAIA,OAAOs5kB,iBACxDC,GAAU,EACVC,EAAa,CAAC,EACd35e,EAAS,SAAS1gG,GAGtB,EACIs6kB,EAAY,WAChB,EAgDA,GA/CoB,iBAAT3gkB,EACC4tE,EAAAh9E,SAASmJ,cAAciG,GACR,iBAATA,IAlCa,iBADVrsB,EAoCDqsB,GAnCFqyH,UAAoD,mBAApB1+I,EAAIgrB,aAAmE,mBAA9BhrB,EAAIyvB,sBAoCjFwqE,EAAA5tE,EAlChB,SAAwBrsB,GACtB,MAAiC,mBAAnBA,EAAIq/Z,YAAyD,mBAArBr/Z,EAAIq2d,aAkC7C42H,CAAe5gkB,GAExBsjP,GADMqvJ,EAAA3yY,GACOsjP,QAET,OAAQtjP,EACV2yY,EAAM3yY,EAAKoha,GACF,WAAYpha,EACZsjP,EAAA48U,EAAWlgkB,EAAKsjP,QAChB,cAAetjP,IACZ2B,EAAAu+jB,EAAWlgkB,EAAK2B,YAE1B,eAAgB3B,IAClBqgkB,EAAoBrgkB,EAAKs9D,YAEvB,eAAgBt9D,IACLsgkB,EAAAL,EAAgBjgkB,EAAKsgkB,aAEhC,uBAAwBtgkB,IACLugkB,EAAAN,EAAgBjgkB,EAAKugkB,qBAExC,WAAYvgkB,IACd+mF,EAAS/mF,EAAK+mF,QAEZ,YAAa/mF,IACLygkB,IAAEzgkB,EAAKygkB,SAEf,eAAgBzgkB,IAClBqha,GAAcrha,EAAKqha,YAEjB,eAAgBrha,IAClB0gkB,EAAa1gkB,EAAK0gkB,cAKpB9yf,IACqC,WAAnCA,EAAQykD,SAASx9I,cACVyuQ,EAAA11K,EAEGjsE,EAAAisE,IAGX+kU,EAAK,CACR,IAAKrvJ,EAAQ,CACX,IAAI1/P,EAjJD,SAAagqF,EAASmZ,EAAQs6U,GACjC,IA6BAw/J,EA7BAv9U,EAAS1yP,SAASzH,cAAc,UAkBpC,SAASd,IACP,IAAIkZ,EAAIra,OAAO+vH,WACX9jH,EAAIjM,OAAOgwH,YACX,GAAAtpC,IAAYh9E,SAAS65C,KAAM,CACzB,IAAAi7C,EAAS49J,EAAOlgP,wBAChB7B,EAAAmkF,EAAOhzF,MAAQgzF,EAAOlzF,KACtBW,EAAAuyF,EAAOtyD,OAASsyD,EAAOljF,IAE7B8gP,EAAOjpM,MAAQgnX,EAAa9/Z,EAC5B+hP,EAAOvwK,OAASsuV,EAAalua,EAoBxB,OA9CPqyjB,EAAQliU,EAAOh6P,MAAO,CACpBqZ,OAAQ,EACRF,OAAQ,EACRC,QAAS,EACTF,IAAK,EACLhQ,KAAM,EACN6nD,MAAO,OACP04B,OAAQ,SAEVnF,EAAQjvE,YAAY2kP,GAChB11K,IAAYh9E,SAAS65C,OACvB64M,EAAOh6P,MAAMY,SAAW,WACxBs7jB,EAAQ53e,EAAQtkF,MAAO,CACrBmZ,OAAQ,EACRC,QAAS,KAeTkrE,IAAYh9E,SAAS65C,MAAkC,mBAAnBq2hB,gBACrBD,EAAA,IAAIC,gBAAe,WAClC9ykB,WAAW3F,EAAM,KAEJ04kB,QAAQnzf,GAEhB1mF,OAAAoB,iBAAiB,SAAUD,GAAQ,GAUrCA,IACA,CACLi7P,SACAq9U,UAXF,WACME,EACFA,EAAeG,aAER95kB,OAAAC,oBAAoB,SAAUkB,GAEvCulF,EAAQtwE,YAAYgmP,KAoGL29U,CAAat/jB,GAAa/Q,SAAS65C,KAAMs8C,EAAQs6U,GAC9D,IAAKz9a,EACI,OAAA,KAET0/P,EAAS1/P,EAAO0/P,OAChBq9U,EAAY/8kB,EAAO+8kB,eAEwB,IAAzCN,EAAkBp8I,qBAA+Bo8I,EAAkBp8I,oBAAqB,GACtFtxC,EApGD,SAAcrvJ,EAAQ+8U,GAC7B,SAASnnlB,EAAI6T,GACP,IACK,OAAAu2P,EAAOE,WAAWz2P,EAAOszkB,SACzBxwlB,GACA,OAAA,MAGX,OAAOqJ,EAAI,UAAYA,EAAI,uBAAyBA,EAAI,sBA4FhDgolB,CAAc59U,EAAQ+8U,GAE9B,OAAK1tL,EAKE,CACLyuB,GAAIzuB,EACJrvJ,SACA3hP,YACA2+jB,aACAC,qBACAl/J,aACAo/J,UACAC,aACA35e,SACA45e,cAdUA,IACV55e,EAAO,4FACA,MA8CF,SAAAk8X,EAAK1te,EAAG2a,GAEf,IADI,IAAAtM,EAAS7U,MAAMwG,GACV3H,EAAI,EAAGA,EAAI2H,IAAK3H,EAChBgW,EAAAhW,GAAKsiB,EAAEtiB,GAET,OAAAgW,EAiBT,SAASmyZ,EAAK3iZ,GACZ,IAAI2Y,EAAG+pB,EAYP,OAXA/pB,GAAK3Y,EAAI,QAAU,EAId2Y,GAFL+pB,IADO1iC,KAAA2Y,GACM,MAAQ,EAKhBA,GAFL+pB,IAFO1iC,KAAA0iC,GAEM,KAAO,GAKf/pB,GAFL+pB,IAFO1iC,KAAA0iC,GAEM,IAAM,IACZ1iC,KAAA0iC,IAES,EAElB,SAASqriB,IACH,IAAAC,EAAan+G,EAAK,GAAG,WACvB,MAAO,EAAC,IAEV,SAASxxe,EAAM8D,GACT,IAAAwya,EA5BR,SAAmB30Z,GACjB,IAAA,IAASxlB,EAAI,GAAIA,GAAK,GAAK,GAAIA,GAAK,GAClC,GAAIwlB,GAAKxlB,EACA,OAAAA,EAGJ,OAAA,EAsBIyzlB,CAAU9rlB,GACf8hD,EAAM+piB,EAAWrrL,EAAKgS,IAAO,GAC7B,OAAA1wX,EAAIhpD,OAAS,EACRgpD,EAAI3Y,MAEN,IAAI3rC,YAAYg1a,GAEzB,SAASsB,EAAKv3a,GACZsvlB,EAAWrrL,EAAKjka,EAAIY,aAAe,GAAGhE,KAAKoD,GAqCtC,MAAA,CACLL,QACA43a,OACAi4K,UAtCO,SAAUvtlB,EAAMwB,GACvB,IAAIqO,EAAS,KACb,OAAQ7P,GACN,KAhDQ,KAiDN6P,EAAS,IAAIw9D,UAAU3vE,EAAM8D,GAAI,EAAGA,GACpC,MACF,KAlDmB,KAmDjBqO,EAAS,IAAI9U,WAAW2C,EAAM8D,GAAI,EAAGA,GACrC,MACF,KApDS,KAqDPqO,EAAS,IAAI09D,WAAW7vE,EAAM,EAAI8D,GAAI,EAAGA,GACzC,MACF,KAtDkB,KAuDhBqO,EAAS,IAAI49D,YAAY/vE,EAAM,EAAI8D,GAAI,EAAGA,GAC1C,MACF,KAxDO,KAyDLqO,EAAS,IAAI89D,WAAWjwE,EAAM,EAAI8D,GAAI,EAAGA,GACzC,MACF,KA1DgB,KA2DdqO,EAAS,IAAIg+D,YAAYnwE,EAAM,EAAI8D,GAAI,EAAGA,GAC1C,MACF,KA5DW,KA6DTqO,EAAS,IAAIk+D,aAAarwE,EAAM,EAAI8D,GAAI,EAAGA,GAC3C,MACF,QACS,OAAA,KAEP,OAAAqO,EAAOvV,SAAWkH,EACbqO,EAAO1H,SAAS,EAAG3G,GAErBqO,GASP29kB,SAPF,SAAkBjtlB,GAChB+0a,EAAK/0a,EAAM9E,UASf,IAAI64a,EAAO84K,IACX94K,EAAKx0X,KAAOstiB,IACZ,IA2BIK,EAAgB,KAIhBC,EAAU,KACVC,EAAW,KAEXC,EAAiB,MAiGjB9ghB,EAAe,SAASpnE,GAC1B,OAAOA,aAAa3K,YAAc2K,aAAa+nE,aAAe/nE,aAAamoE,aAAenoE,aAAa2nE,WAAa3nE,aAAa6nE,YAAc7nE,aAAaioE,YAAcjoE,aAAaqoE,cAAgBroE,aAAauoE,cAAgBvoE,aAAa0nE,iBACnP,EACA,SAASyghB,EAAcjulB,GACrB,QAASA,GAAsB,iBAARA,GAAoB5E,MAAMiF,QAAQL,EAAIqvE,QAAUj0E,MAAMiF,QAAQL,EAAI2yb,SAAiC,iBAAf3yb,EAAIlE,QAAuBkE,EAAIqvE,MAAM30E,SAAWsF,EAAI2yb,OAAOj4b,SAAWU,MAAMiF,QAAQL,EAAIM,OAAS4sE,EAAaltE,EAAIM,OAE3N,IAAAgf,EAAS,SAAStf,GACpB,OAAO5B,OAAOgjB,KAAKphB,GAAKqhB,KAAI,SAASzP,GACnC,OAAO5R,EAAI4R,EAAG,GAElB,EACIs8kB,EAAe,CACjB7+gB,MA6EF,SAAsB8+gB,GAEpB,IADA,IAAI9+gB,EAAQ,GACH1uE,EAAQwtlB,EAAQxtlB,EAAMjG,OAAQiG,EAAQA,EAAM,GAC7C0uE,EAAAt0E,KAAK4F,EAAMjG,QAEZ,OAAA20E,GAjFPszf,QAiDF,SAAsBhikB,EAAO0uE,EAAOjvE,EAAMgulB,GACxC,IAAIh6K,EAAK,EACT,GAAI/kW,EAAM30E,OACR,IAAA,IAAST,EAAI,EAAGA,EAAIo1E,EAAM30E,SAAUT,EAClCm6a,GAAM/kW,EAAMp1E,QAGTm6a,EAAA,EAEP,IAAI7sa,EAAM6mlB,GAAQ15K,EAAKi5K,UAAUvtlB,EAAMg0a,GACvC,OAAQ/kW,EAAM30E,QACZ,KAAK,EACH,MACF,KAAK,GA5DA,SAAUiG,EAAO8yC,EAAIlsC,GAC5B,IAAA,IAAStN,EAAI,EAAGA,EAAIw5C,IAAMx5C,EACpBsN,EAAAtN,GAAK0G,EAAM1G,GA2Dbo0lB,CAAU1tlB,EAAO0uE,EAAM,GAAI9nE,GAC3B,MACF,KAAK,GA1DT,SAAmB5G,EAAO8yC,EAAIC,EAAInsC,GAEhC,IADA,IAAI8sa,EAAM,EACDp6a,EAAI,EAAGA,EAAIw5C,IAAMx5C,EAExB,IADI,IAAAinB,EAAMvgB,EAAM1G,GACP0I,EAAI,EAAGA,EAAI+wC,IAAM/wC,EACpB4E,EAAA8sa,KAASnzZ,EAAIve,GAsDjB2rlB,CAAU3tlB,EAAO0uE,EAAM,GAAIA,EAAM,GAAI9nE,GACrC,MACF,KAAK,EACOgnlB,EAAA5tlB,EAAO0uE,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAI9nE,EAAK,GACpD,MACF,QACEinlB,EAAW7tlB,EAAO0uE,EAAO,EAAG9nE,EAAK,GAE9B,OAAAA,IA1DT,SAASgnlB,EAAU5tlB,EAAO8yC,EAAIC,EAAIi8a,EAAIpod,EAAKknlB,GAEzC,IADA,IAAIp6K,EAAMo6K,EACDx0lB,EAAI,EAAGA,EAAIw5C,IAAMx5C,EAExB,IADI,IAAAinB,EAAMvgB,EAAM1G,GACP0I,EAAI,EAAGA,EAAI+wC,IAAM/wC,EAExB,IADI,IAAAo2d,EAAM73c,EAAIve,GACLugB,EAAI,EAAGA,EAAIysc,IAAMzsc,EACpB3b,EAAA8sa,KAAS0kD,EAAI71c,GAKzB,SAASsrkB,EAAW7tlB,EAAO0uE,EAAO8M,EAAO50E,EAAK8sa,GAE5C,IADA,IAAIse,EAAS,EACJ14b,EAAIkiF,EAAQ,EAAGliF,EAAIo1E,EAAM30E,SAAUT,EAC1C04b,GAAUtjX,EAAMp1E,GAEd,IAAA2H,EAAIytE,EAAM8M,GACV,GAAA9M,EAAM30E,OAASyhF,GAAU,EAAG,CAC1B,IAAA1oC,EAAK47B,EAAM8M,EAAQ,GACnBzoC,EAAK27B,EAAM8M,EAAQ,GACnBwzY,EAAKtgZ,EAAM8M,EAAQ,GACvB,IAAKliF,EAAI,EAAGA,EAAI2H,IAAK3H,EACnBs0lB,EAAU5tlB,EAAM1G,GAAIw5C,EAAIC,EAAIi8a,EAAIpod,EAAK8sa,GAC9BA,GAAAse,CACT,MAEA,IAAK14b,EAAI,EAAGA,EAAI2H,IAAK3H,EACnBu0lB,EAAW7tlB,EAAM1G,GAAIo1E,EAAO8M,EAAQ,EAAG50E,EAAK8sa,GACrCA,GAAAse,EAsCb,IAAI+7J,EAAa,CACf,qBAAsB,KACtB,sBAAuB,KACvB,sBAAuB,KACvB,sBAAuB,KACvB,6BAA8B,KAC9B,uBAAwB,KACxB,uBAAwB,KACxB,wBAAyB,KACzB,wBAAyB,KACzB,uBAAwB,MAUtBC,EAAU,CACZjghB,KATS,KAUTE,MATU,KAUVE,MATU,KAUVr0E,MATU,KAUVk0E,OATW,KAUXE,OATW,KAUX8yX,MATU,KAUV5yX,QATY,MAaV6/gB,EAAa,CACfj8U,QAHc,MAIdrwL,OAHW,MAIXusgB,OAAU,OAERC,EAAeZ,EAAavrB,QAC5BosB,EAAab,EAAa7+gB,MAG1B2/gB,EAAqB,KACrBC,EAAa,KACbC,EAAe,GAQnB,SAASC,EAAe7ulB,GACtB,OAA0D,EAAnDoulB,EAAWtwlB,OAAOE,UAAUsC,SAASqB,KAAK3B,IAE1C,SAAA8ulB,EAAU7nlB,EAAK6rd,GACtB,IAAA,IAASn5d,EAAI,EAAGA,EAAIm5d,EAAI14d,SAAUT,EAC5BsN,EAAAtN,GAAKm5d,EAAIn5d,GAGjB,SAAS+mB,EAAU/Q,EAAQ3P,EAAM+ulB,EAAQC,EAAQC,EAASC,EAAS1zlB,GAEjE,IADA,IAAIu4a,EAAM,EACDp6a,EAAI,EAAGA,EAAIo1lB,IAAUp1lB,EAC5B,IAAA,IAAS0I,EAAI,EAAGA,EAAI2slB,IAAU3slB,EAC5BsN,EAAOoka,KAAS/za,EAAKivlB,EAAUt1lB,EAAIu1lB,EAAU7slB,EAAI7G,GAnBvDozlB,EAAa,MAAQ,EACrBA,EAAa,MAAQ,EACrBA,EAAa,MAAQ,EACrBA,EAAa,MAAQ,EACrBA,EAAa,MAAQ,EACrBA,EAAa,MAAQ,EACrBA,EAAa,MAAQ,EAqUrB,IAMIO,EAAY,CACdvnjB,OAPW,EAQX1Z,MAPU,EAQV4gE,MAPU,EAQV7/C,KAPS,EAQTuB,UAPc,EAQd+2c,SAPa,EAQb,YAAa,EACb,aAAc,EACd,iBAAkB,EAClB,eAAgB,GAMd6nG,EAAqB,KAErBC,EAAsB,KAEtBC,EAAoB,KACpBC,EAA0B,MAuM1BzwL,EAAQ,IAAIjxV,aAAa,GACzBo0Y,EAAM,IAAIt0Y,YAAYmxV,EAAMvja,QAEhC,SAASi0lB,EAAmBnvlB,GAE1B,IADA,IAAIovlB,EAAUr7K,EAAKi5K,UAFK,KAE0BhtlB,EAAMjG,QAC/CT,EAAI,EAAGA,EAAI0G,EAAMjG,SAAUT,EAClC,GAAIiD,MAAMyD,EAAM1G,IACd81lB,EAAQ91lB,GAAK,WACJ,GAAA0G,EAAM1G,KAAO0C,IACtBozlB,EAAQ91lB,GAAK,WACJ,GAAA0G,EAAM1G,MAAO,IACtB81lB,EAAQ91lB,GAAK,UACR,CACCmla,EAAA,GAAKz+Z,EAAM1G,GACb,IAAA6L,EAAIy8c,EAAI,GACR1vR,EAAM/sL,IAAM,IAAM,GAClB2rB,GAAO3rB,GAAK,IAAM,IAAM,IACxB+nG,EAAO/nG,GAAK,GAAM,KACtB,GAAI2rB,GAAW,GACbs+jB,EAAQ91lB,GAAK44L,OAAA,GACJphK,GAAW,GAAA,CACpB,IAAIh1B,GAAU,GAAAg1B,EACds+jB,EAAQ91lB,GAAK44L,GAAOhlF,EAAA,MAAoBpxG,EAAA,MAEhCszlB,EAAA91lB,GADCw3B,EAAM,GACFohK,EAAM,MAENA,GAAOphK,EAAM,IAAM,IAAMo8E,EAIrC,OAAAkif,EAET,SAASC,EAAYvzlB,GACnB,OAAOrB,MAAMiF,QAAQ5D,IAAMywE,EAAazwE,GAE1C,IACIwzlB,EAAkB,KAClBC,EAAwB,MACxBC,EAAmC,MACnCC,EAAY,KACZC,EAAW,KACXC,EAAS,KACTC,EAAe,KACfC,EAAqB,KAErBC,GAAa,MAMbC,GAAqB,KACrBC,GAAmB,MACnBC,GAAc,MACdC,GAAoB,MACpBC,GAAoB,MACpBC,GAAkC,MAClCC,GAAmC,MACnCC,GAAmC,MACnCC,GAAmC,MASnCC,GAAqB,KACrBC,GAAsB,KACtBC,GAAoB,KACpBC,GAAa,KAIbC,GAAmB,MAInBC,GAAa,KAEbC,GAA4B,KAG5BC,GAA0B,KAE1BC,GAAe,KASfC,GAAgB,MAChBC,GAAiB,CACnBJ,GAd6B,KADA,KAkB7BC,IAEEI,GAAkB,CACpB,EACAvB,EACAC,EACAF,EACAF,GAEE2B,GAAkB,CAAC,EAKvB,SAASC,GAAW1ulB,GAClB,MAAO,WAAaA,EAAM,IAL5ByulB,GAAgBxB,MAAgBwB,GAAgB1B,MAAY0B,GAAgBrB,MAAsB,EAClGqB,GAAgBpB,OAAoBoB,GAAgBvB,MAAsB,EAC1EuB,GAAgBzB,MAAUyB,GAAgBnB,OAAe,EACzDmB,GAAgB3B,MAAa2B,GAAgBlB,OAAqB,EAI9D,IAAAoB,GAAeD,GAAW,qBAC1BE,GAAwBF,GAAW,mBACnCG,GAAkBH,GAAW,4BAC7BI,GAAeJ,GAAW,eAC1BK,GAAcL,GAAW,oBACzBM,GAAcN,GAAW,oBACzBO,GAAgBn0lB,OAAOgjB,KAAKstkB,GAAY1olB,OAAO,CACjDislB,GACAC,GACAC,GACAC,GACAC,GACAC,KAEEE,GAAa,GACjBA,GAAWrB,MAAsB,EACjCqB,GAAWlB,MAAc,EACzBkB,GAAW1B,OAAqB,EAChC0B,GAAWpB,MAAuB,EAClCoB,GAAWnB,MAAqB,EAChC,IAAIoB,GAAuB,GAiB3B,SAASC,GAAex4lB,GACf,OAAAkB,MAAMiF,QAAQnG,KAAwB,IAAfA,EAAIQ,QAAkC,iBAAXR,EAAI,IAE/D,SAASy4lB,GAAYz4lB,GACnB,QAAKkB,MAAMiF,QAAQnG,MAIL,IADFA,EAAIQ,SACIs1lB,EAAY91lB,EAAI,KAKtC,SAAS04lB,GAAY9slB,GACnB,OAAO1H,OAAOE,UAAUsC,SAASqB,KAAK6D,GAExC,SAAS+slB,GAAgB38kB,GAChB,OAAA08kB,GAAY18kB,KAAY+7kB,GAEjC,SAASa,GAAkB58kB,GAClB,OAAA08kB,GAAY18kB,KAAYg8kB,GAcjC,SAASa,GAAY78kB,GACnB,IAAKA,EACI,OAAA,EAEL,IAAAL,EAAY+8kB,GAAY18kB,GAC5B,OAAIq8kB,GAAch3lB,QAAQsa,IAAc,GAGjC68kB,GAAex8kB,IAAWy8kB,GAAYz8kB,IAAW+3kB,EAAc/3kB,GAExE,SAAS88kB,GAAiB1ylB,GACxB,OAA0D,EAAnDoulB,EAAWtwlB,OAAOE,UAAUsC,SAASqB,KAAK3B,IAmB1C,SAAA2ylB,GAAWh6V,EAAOr3P,GACzB,OAAO8ya,EAAKi5K,UACV10V,EAAM74P,OAAS0wlB,GAAoBQ,GAAar4V,EAAM74P,KACtDwB,GAGK,SAAAsxlB,GAAYj6V,EAAO34P,GACtB24P,EAAM74P,OAAS0wlB,IACX73V,EAAA34P,KAAOwvlB,EAAmBxvlB,GAChCo0a,EAAKk5K,SAASttlB,IAEd24P,EAAM34P,KAAOA,EAmBjB,SAAS6ylB,GAAex5jB,EAAQv5B,EAAMsmE,EAAO04B,EAAQg0f,EAAUC,GACzD,IAAA52lB,EASJ,GAPEA,OAD0C,IAAjCg2lB,GAAqB94jB,GAC1B84jB,GAAqB94jB,GAErBo4jB,GAAgBp4jB,GAAU64jB,GAAWpylB,GAEvCizlB,IACG52lB,GAAA,GAEH22lB,EAAU,CAGZ,IAFA,IAAI5gf,EAAQ,EACR5kF,EAAI84C,EACD94C,GAAK,GACV4kF,GAAS/1G,EAAImxB,EAAIA,EACZA,GAAA,EAEA,OAAA4kF,CAAA,CAEP,OAAO/1G,EAAIiqE,EAAQ04B,EAGvB,SAASk0f,GAAiBt0L,EAAK2tL,EAAY3vL,EAAQu2L,EAAUC,EAAcC,EAAQjhlB,GACjF,IAAIkhlB,EAAa,CACf,aAAc/B,GACd,YAAaA,GACbzuiB,KA1LY,KA2LZywiB,KA5La,MA8LXC,EAAY,CACdn7e,OA5MY,MA6MZxxD,MAASsqiB,GACTzwd,OA5MqB,OA8MnB+yd,EAAa,CACfC,QAAWtC,GACXt8iB,OA5MY,MA8MV6+iB,EAAaliB,EAAQ,CACvBmiB,OAAUtC,GACV,yBAA0BD,GAC1B,wBA/M2B,KAgN3B,wBA/M2B,KAgN3B,uBAAwBC,IACvBmC,GACCI,EAAa,CACfrrV,KAAQ,EACRsrV,QAzM2B,OA2MzBC,EAAe,CACjB15lB,MAAS02lB,GACTiD,MA5P4B,MA6P5BC,OA3P0B,MA4P1B,UA7P4B,OA+P1BC,EAAiB,CACnBj6iB,MAASg2iB,EACTkE,UAAahE,EACb,kBAAmBC,EACnBl5jB,IAAOg5jB,EACP96gB,KAAQ46gB,EACRgE,MAzQW,MA0QX,UAAW3D,GACX4D,OAzQY,OA2QVG,EAA2B,CAAC,EAC5B7H,EAAW8H,WACbH,EAAeI,KAAO9D,GACtB0D,EAAeK,MAAQ9D,IAErBlE,EAAWiI,oBACAT,EAAAplhB,QAAUolhB,EAAaxyJ,MAAQ2vJ,IAE1C3E,EAAWkI,yBACbV,EAAsB,QAAIA,EAAa,cAAgBrD,IAErDnE,EAAWmI,sBACbjjB,EAAQyiB,EAAgB,CACtB1wkB,MAAS8skB,GACT,gBAAiBC,KAEnB9e,EAAQsiB,EAAc,CACpBxlhB,OAAUyihB,GACVvihB,OAAUwihB,GACV,gBA1R2B,SA6R3B1E,EAAWoI,+BACbljB,EAAQ2iB,EAA0B,CAChC,gBAAiBzD,GACjB,iBAAkBC,GAClB,iBAAkBC,GAClB,iBAAkBC,KAGlBvE,EAAWqI,8BACbnjB,EAAQ2iB,EAA0B,CAChC,UA7R4B,MA8R5B,0BA7R4C,MA8R5C,8BA7RgD,QAgShD7H,EAAWsI,gCACbpjB,EAAQ2iB,EAA0B,CAChC,mBAjSmC,MAkSnC,mBAjSmC,MAkSnC,oBAjSoC,MAkSpC,oBAjSoC,QAoSpC7H,EAAWuI,gCACbV,EAAyB,YApSM,OAsS7B,IAAAW,EAA6B/5lB,MAAMkD,UAAUY,MAAM+C,KACrD+8Z,EAAIiiC,aAvU4B,QAyUlC7ic,OAAOgjB,KAAKozkB,GAA0B1glB,SAAQ,SAASsF,GACjD,IAAAugB,EAAS66jB,EAAyBp7kB,GAClC+7kB,EAA2B55lB,QAAQo+B,IAAW,IAChD26jB,EAAel7kB,GAASugB,EAC1B,IAEE,IAAAy7jB,EAAmBh3lB,OAAOgjB,KAAKkzkB,GACnCt3L,EAAOs3L,eAAiBc,EACxB,IAAIC,EAAuB,GAC3Bj3lB,OAAOgjB,KAAKkzkB,GAAgBxglB,SAAQ,SAASlC,GACvC,IAAA9P,EAAMwylB,EAAe1ilB,GACzByjlB,EAAqBvzlB,GAAO8P,CAAA,IAE9B,IAAI0jlB,EAAqB,GACzBl3lB,OAAOgjB,KAAK+ykB,GAAcrglB,SAAQ,SAASlC,GACrC,IAAA9P,EAAMqylB,EAAavilB,GACvB0jlB,EAAmBxzlB,GAAO8P,CAAA,IAE5B,IAAI2jlB,EAAmB,GACvBn3lB,OAAOgjB,KAAKyykB,GAAY//kB,SAAQ,SAASlC,GAEvC2jlB,EADU1B,EAAWjilB,IACGA,CAAA,IAE1B,IAAI4jlB,EAAmB,GACvBp3lB,OAAOgjB,KAAK2ykB,GAAYjglB,SAAQ,SAASlC,GACnC,IAAA9P,EAAMiylB,EAAWnilB,GACrB4jlB,EAAiB1zlB,GAAO8P,CAAA,IAE1B,IAAI6jlB,EAAkB,GACtBr3lB,OAAOgjB,KAAKwykB,GAAW9/kB,SAAQ,SAASlC,GAEtC6jlB,EADU7B,EAAUhilB,IACGA,CAAA,IAEzB,IAAI8jlB,EAAeN,EAAiBj1iB,QAAO,SAASrmB,EAAQloB,GACtD,IAAA+jlB,EAASrB,EAAe1ilB,GAQrB,OAPH+jlB,IAAWpF,GAAgBoF,IAAWtF,GAAYsF,IAAWpF,GAAgBoF,IAAWnF,GAAsBmF,IAAWjF,IAAsBiF,IAAWhF,IAAoBhE,EAAW8H,WAAakB,IAAW/E,IAAe+E,IAAW9E,IAC7O/2jB,EAAO67jB,GAAUA,EACRA,IAAWlF,IAAc7+kB,EAAIrW,QAAQ,SAAW,EACzDu+B,EAAO67jB,GAAUvF,EAEjBt2jB,EAAO67jB,GAAUrF,EAEZx2jB,CACT,GAAG,IACH,SAAS87jB,IACPx0lB,KAAKy0lB,eAAiBzF,EACtBhvlB,KAAKu4B,OAASy2jB,EACdhvlB,KAAKhB,KAAO+wlB,GACZ/vlB,KAAK00lB,YAAa,EAClB10lB,KAAK20lB,kBAAmB,EACxB30lB,KAAKgsY,OAAQ,EACbhsY,KAAK40lB,gBAAkB,EACvB50lB,KAAK6ylB,WAlUsB,MAmU3B7ylB,KAAKslE,MAAQ,EACbtlE,KAAKg+F,OAAS,EACdh+F,KAAKgkZ,SAAW,EAET,SAAA6wM,EAAUhmlB,EAAQ6kO,GACzB7kO,EAAO4llB,eAAiB/gX,EAAM+gX,eAC9B5llB,EAAO0pB,OAASm7M,EAAMn7M,OACtB1pB,EAAO7P,KAAO00O,EAAM10O,KACpB6P,EAAO6llB,WAAahhX,EAAMghX,WAC1B7llB,EAAO8llB,iBAAmBjhX,EAAMihX,iBAChC9llB,EAAOm9X,MAAQt4J,EAAMs4J,MACrBn9X,EAAO+llB,gBAAkBlhX,EAAMkhX,gBAC/B/llB,EAAOgklB,WAAan/W,EAAMm/W,WAC1BhklB,EAAOy2D,MAAQouK,EAAMpuK,MACrBz2D,EAAOmvF,OAAS01I,EAAM11I,OACtBnvF,EAAOm1Y,SAAWtwK,EAAMswK,SAEjB,SAAA8wM,EAAW/2gB,EAAOo+D,GACzB,GAAuB,iBAAZA,GAAyBA,EAApC,CAeA,GAZI,qBAAsBA,IACxBp+D,EAAM42gB,iBAAmBx4c,EAAQw4c,kBAE/B,UAAWx4c,IACbp+D,EAAMiuT,MAAQ7vP,EAAQ6vP,OAEpB,cAAe7vP,IACjBp+D,EAAM62gB,gBAAkBz4c,EAAQ29H,WAE9B,eAAgB39H,IACZp+D,EAAA80gB,WAAaA,EAAW12c,EAAQ02c,aAEpC,SAAU12c,EAAS,CACrB,IAAIn9I,EAAOm9I,EAAQn9I,KACb++E,EAAA/+E,KAAO+zlB,EAAa/zlB,GAE5B,IAAIwtB,EAAIuxD,EAAMzY,MACVlnD,EAAI2/D,EAAMigB,OACVriG,EAAIoiF,EAAMimU,SACV+wM,GAAc,EACd,UAAW54c,GACT3vH,EAAA2vH,EAAQluE,MAAM,GACd7vD,EAAA+9H,EAAQluE,MAAM,GACW,IAAzBkuE,EAAQluE,MAAM30E,SACZqC,EAAAwgJ,EAAQluE,MAAM,GACJ8mhB,GAAA,KAGZ,WAAY54c,IACd3vH,EAAIpO,EAAI+9H,EAAQz5F,QAEd,UAAWy5F,IACb3vH,EAAI2vH,EAAQ72E,OAEV,WAAY62E,IACd/9H,EAAI+9H,EAAQn+C,QAEV,aAAcm+C,IAChBxgJ,EAAIwgJ,EAAQ6nQ,SACE+wM,GAAA,IAGlBh3gB,EAAMzY,MAAY,EAAJ94C,EACduxD,EAAMigB,OAAa,EAAJ5/E,EACf2/D,EAAMimU,SAAe,EAAJroZ,EACjB,IAAImoG,GAAY,EAChB,GAAI,WAAYq4C,EAAS,CACvB,IAAInnC,EAAYmnC,EAAQ5jH,OACpBk8jB,EAAiB12gB,EAAM02gB,eAAiBvB,EAAel+e,GACrDj3B,EAAAxlD,OAAS+7jB,EAAaG,GACxBz/e,KAAa+9e,IACT,SAAU52c,IACRp+D,EAAA/+E,KAAO+zlB,EAAa/9e,KAG1BA,KAAao+e,IACfr1gB,EAAM22gB,YAAa,GAET5wf,GAAA,GAETixf,GAAejxf,EACZ/lB,EAAAimU,SAAW2sM,GAAgB5ygB,EAAMxlD,QAC9Bw8jB,IAAgBjxf,GACrB/lB,EAAMimU,WAAa0sM,GAAgB3ygB,EAAMxlD,UAC3CwlD,EAAMxlD,OAASwlD,EAAM02gB,eAAiB/D,GAAgB3ygB,EAAMimU,YAKlE,SAASgxM,EAASj3gB,GACZ6/U,EAAAq3L,YAjaqB,MAiael3gB,EAAMiuT,OAC1C4xB,EAAAq3L,YAjagC,MAiael3gB,EAAM42gB,kBACrD/2L,EAAAq3L,YAjaoC,MAiael3gB,EAAM80gB,YACzDj1L,EAAAq3L,YArakB,KAqael3gB,EAAM62gB,iBAE7C,SAASM,IACPV,EAAS3zlB,KAAKb,MACdA,KAAKq8M,QAAU,EACfr8M,KAAKs8M,QAAU,EACft8M,KAAKd,KAAO,KACZc,KAAKm1lB,WAAY,EACjBn1lB,KAAK64F,QAAU,KACf74F,KAAKo1lB,WAAY,EAEV,SAAAC,EAAWx9V,EAAO17G,GACzB,IAAIj9I,EAAO,KAeX,GAdIyylB,GAAYx1c,GACPj9I,EAAAi9I,EACEA,IACT24c,EAAWj9V,EAAO17G,GACd,MAAOA,IACH07G,EAAAx7C,QAAsB,EAAZlgE,EAAQz3I,GAEtB,MAAOy3I,IACH07G,EAAAv7C,QAAsB,EAAZngE,EAAQx3I,GAEtBgtlB,GAAYx1c,EAAQj9I,QACtBA,EAAOi9I,EAAQj9I,OAGfi9I,EAAQ/9I,KAAM,CAChB,IAAIk3lB,EAAQlD,EAAa7N,cACrBgR,EAAQnD,EAAa5N,eACzB3sV,EAAMvyL,MAAQuyL,EAAMvyL,OAASgwhB,EAAQz9V,EAAMx7C,QAC3Cw7C,EAAM75J,OAAS65J,EAAM75J,QAAUu3f,EAAQ19V,EAAMv7C,QAC7Cu7C,EAAMu9V,WAAY,CAAA,MAAA,GACRl2lB,GAGyB,GAC1B4sE,EAAa5sE,GAChB24P,EAAAmsJ,SAAWnsJ,EAAMmsJ,UAAY,EACnCnsJ,EAAM34P,KAAOA,EACP,SAAUi9I,GAAY07G,EAAM74P,OAAS+wlB,KACnCl4V,EAAA74P,KAAO4ylB,GAAiB1ylB,SAChC,GACSoylB,GAAepylB,GAClB24P,EAAAmsJ,SAAWnsJ,EAAMmsJ,UAAY,EAlWhC,SAAYn1Y,EAAQ3P,GAC3B,IAAIsB,EAAItB,EAAK5F,OACb,OAAQuV,EAAO7P,MACb,KAAK+wlB,GACL,KAAKC,GACL,KAAKC,GACL,KAAKC,GACH,IAAIsF,EAAYliL,EAAKi5K,UAAU19kB,EAAO7P,KAAMwB,GAC5Cg1lB,EAAUzwlB,IAAI7F,GACd2P,EAAO3P,KAAOs2lB,EACd,MACF,KAAK9F,GACI7glB,EAAA3P,KAAOwvlB,EAAmBxvlB,IAuVjCu2lB,CAAY59V,EAAO34P,GACnB24P,EAAMiiB,UAAY,EAClBjiB,EAAMs9V,WAAY,OAAA,GACTtI,EAAc3tlB,GAAO,CAC9B,IAAIK,EAAQL,EAAKA,KACZlF,MAAMiF,QAAQM,IAAUs4P,EAAM74P,OAAS+wlB,KACpCl4V,EAAA74P,KAAO4ylB,GAAiBrylB,IAEhC,IAEI0ulB,EAAQC,EAAQwH,EAAQvH,EAASC,EAASuH,EAF1C1nhB,EAAQ/uE,EAAK+uE,MACbsjX,EAASryb,EAAKqyb,OAEG,IAAjBtjX,EAAM30E,QACRo8lB,EAASznhB,EAAM,GACf0nhB,EAAUpkK,EAAO,KAERmkK,EAAA,EACCC,EAAA,GAEZ1H,EAAShghB,EAAM,GACfighB,EAASjghB,EAAM,GACfkghB,EAAU58J,EAAO,GACjB68J,EAAU78J,EAAO,GACjB15L,EAAMiiB,UAAY,EAClBjiB,EAAMvyL,MAAQ2ohB,EACdp2V,EAAM75J,OAASkwf,EACfr2V,EAAMmsJ,SAAW0xM,EACjB79V,EAAMt/N,OAASs/N,EAAM48V,eAAiB/D,GAAgBgF,GACtD79V,EAAMs9V,WAAY,EA/VxB,SAAuBt9V,EAAOt4P,EAAO4ulB,EAASC,EAASuH,EAASj7lB,GAO9D,IANA,IAAI8xB,EAAIqrO,EAAMvyL,MACVlnD,EAAIy5O,EAAM75J,OACVriG,EAAIk8P,EAAMmsJ,SAEV9kZ,EAAO2ylB,GAAWh6V,EADdrrO,EAAIpO,EAAIziB,GAEZ8T,EAAI,EACC5W,EAAI,EAAGA,EAAIulB,IAAKvlB,EACvB,IAAA,IAAS0I,EAAI,EAAGA,EAAIirB,IAAKjrB,EACvB,IAAA,IAASugB,EAAI,EAAGA,EAAInmB,IAAKmmB,EAClB5iB,EAAAuQ,KAAOlQ,EAAM4ulB,EAAU5slB,EAAI6slB,EAAUv1lB,EAAI88lB,EAAU7zkB,EAAIpnB,GAIlEo3lB,GAAYj6V,EAAO34P,GAkVf02lB,CAAc/9V,EAAOt4P,EAAO4ulB,EAASC,EAASuH,EAASz2lB,EAAKxE,OAAM,MAAA,GACzD+2lB,GAAgBvylB,IAASwylB,GAAkBxylB,IAxZjDsylB,GAwZsEtylB,KAxZ9C6xlB,GAyZvBU,GAAgBvylB,IAASwylB,GAAkBxylB,GAC7C24P,EAAMh/J,QAAU35F,EAEhB24P,EAAMh/J,QAAU35F,EAAKqvQ,OAEjB1W,EAAAvyL,MAAQuyL,EAAMh/J,QAAQvzB,MACtBuyL,EAAA75J,OAAS65J,EAAMh/J,QAAQmF,OAC7B65J,EAAMmsJ,SAAW,OAAA,GA9ZvB,SAAkBlvY,GACT,OAAA08kB,GAAY18kB,KAAYk8kB,GA8ZlB6E,CAAS32lB,GAClB24P,EAAMh/J,QAAU35F,EAChB24P,EAAMvyL,MAAQpmE,EAAKomE,MACnBuyL,EAAM75J,OAAS9+F,EAAK8+F,OACpB65J,EAAMmsJ,SAAW,OAAA,GAhavB,SAAwBlvY,GACf,OAAA08kB,GAAY18kB,KAAYm8kB,GAgalB6E,CAAe52lB,GACxB24P,EAAMh/J,QAAU35F,EAChB24P,EAAMvyL,MAAQpmE,EAAK62lB,aACnBl+V,EAAM75J,OAAS9+F,EAAK82lB,cACpBn+V,EAAMmsJ,SAAW,OAAA,GAlavB,SAAwBlvY,GACf,OAAA08kB,GAAY18kB,KAAYo8kB,GAkalB+E,CAAe/2lB,GACxB24P,EAAMh/J,QAAU35F,EAChB24P,EAAMvyL,MAAQpmE,EAAKg3lB,WACnBr+V,EAAM75J,OAAS9+F,EAAKi3lB,YACpBt+V,EAAMmsJ,SAAW,OAAA,GACRutM,GAAYrylB,GAAO,CAC5B,IAAIstB,EAAIqrO,EAAMvyL,OAASpmE,EAAK,GAAG5F,OAC3B8kB,EAAIy5O,EAAM75J,QAAU9+F,EAAK5F,OACzBqC,EAAIk8P,EAAMmsJ,SAEZroZ,EADEizlB,EAAY1vlB,EAAK,GAAG,IAClBvD,GAAKuD,EAAK,GAAG,GAAG5F,OAEhBqC,GAAK,EAIX,IAFI,IAAAy6lB,EAActJ,EAAa7+gB,MAAM/uE,GACjCsB,EAAI,EACCklM,EAAK,EAAGA,EAAK0wZ,EAAY98lB,SAAUosM,EAC1CllM,GAAK41lB,EAAY1wZ,GAEf,IAAA2wZ,EAAYxE,GAAWh6V,EAAOr3P,GAClCsslB,EAAavrB,QAAQrikB,EAAMk3lB,EAAa,GAAIC,GAC5CvE,GAAYj6V,EAAOw+V,GACnBx+V,EAAMiiB,UAAY,EAClBjiB,EAAMvyL,MAAQ94C,EACdqrO,EAAM75J,OAAS5/E,EACfy5O,EAAMmsJ,SAAWroZ,EACjBk8P,EAAMt/N,OAASs/N,EAAM48V,eAAiB/D,GAAgB/0lB,GACtDk8P,EAAMs9V,WAAY,QAtFZt9V,EAAAvyL,MAAQuyL,EAAMvyL,OAAS,EACvBuyL,EAAA75J,OAAS65J,EAAM75J,QAAU,EACzB65J,EAAAmsJ,SAAWnsJ,EAAMmsJ,UAAY,EAsFjCnsJ,EAAM74P,OAASkxlB,IACRr4V,EAAM74P,KAGV,SAAAwsS,EAAS3yI,EAAMpzJ,EAAQ6wlB,GAC9B,IAAIz9f,EAAUggE,EAAKhgE,QACf35F,EAAO25J,EAAK35J,KACZu1lB,EAAiB57b,EAAK47b,eACtBl8jB,EAASsgI,EAAKtgI,OACdv5B,EAAO65J,EAAK75J,KACZsmE,EAAQuzF,EAAKvzF,MACb04B,EAAS66D,EAAK76D,OAClBg3f,EAASn8b,GACLhgE,EACF+kU,EAAImzD,WAAWtrd,EAAQ6wlB,EAAU/9jB,EAAQA,EAAQv5B,EAAM65F,GAC9CggE,EAAK67b,WACd92L,EAAI24L,qBAAqB9wlB,EAAQ6wlB,EAAU7B,EAAgBnvhB,EAAO04B,EAAQ,EAAG9+F,GACpE25J,EAAKu8b,WACLjD,IACLv0L,EAAA44L,eACF/wlB,EACA6wlB,EACA/9jB,EACAsgI,EAAKwjD,QACLxjD,EAAKyjD,QACLh3I,EACA04B,EACA,IAGE4/T,EAAAmzD,WAAWtrd,EAAQ6wlB,EAAU/9jB,EAAQ+sC,EAAO04B,EAAQ,EAAGzlE,EAAQv5B,EAAME,GAAQ,MAGrF,SAASu3lB,EAAY59b,EAAMpzJ,EAAQf,EAAGC,EAAG2xlB,GACvC,IAAIz9f,EAAUggE,EAAKhgE,QACf35F,EAAO25J,EAAK35J,KACZu1lB,EAAiB57b,EAAK47b,eACtBl8jB,EAASsgI,EAAKtgI,OACdv5B,EAAO65J,EAAK75J,KACZsmE,EAAQuzF,EAAKvzF,MACb04B,EAAS66D,EAAK76D,OAClBg3f,EAASn8b,GACLhgE,EACE+kU,EAAAk2D,cACFrud,EACA6wlB,EACA5xlB,EACAC,EACA4zB,EACAv5B,EACA65F,GAEOggE,EAAK67b,WACV92L,EAAA84L,wBACFjxlB,EACA6wlB,EACA5xlB,EACAC,EACA8vlB,EACAnvhB,EACA04B,EACA9+F,GAEO25J,EAAKu8b,WACLjD,IACLv0L,EAAA+4L,kBACFlxlB,EACA6wlB,EACA5xlB,EACAC,EACAk0J,EAAKwjD,QACLxjD,EAAKyjD,QACLh3I,EACA04B,IAGE4/T,EAAAk2D,cACFrud,EACA6wlB,EACA5xlB,EACAC,EACA2gE,EACA04B,EACAzlE,EACAv5B,EACAE,GAIN,IAAI03lB,EAAY,GAChB,SAASC,IACP,OAAOD,EAAUjtjB,OAAS,IAAIurjB,EAEhC,SAAS4B,EAAUj/V,GACbA,EAAMs9V,WACH7hL,EAAAk5K,SAAS30V,EAAM34P,MAEtBg2lB,EAASr0lB,KAAKg3P,GACd++V,EAAUj9lB,KAAKk+P,GAEjB,SAASk/V,IACPvC,EAAS3zlB,KAAKb,MACdA,KAAKg3lB,YAAa,EAClBh3lB,KAAKsylB,WAAa/B,GAClBvwlB,KAAKi3lB,QAAU,EACVj3lB,KAAA68H,OAAS7iI,MAAM,IAEb,SAAAk9lB,EAAqBtE,EAAQtthB,EAAO04B,GAC3C,IAAI2wK,EAAMikV,EAAO/1d,OAAO,GAAKg6d,IAC7BjE,EAAOqE,QAAU,EACbtoV,EAAArpM,MAAQsthB,EAAOtthB,MAAQA,EACvBqpM,EAAA3wK,OAAS40f,EAAO50f,OAASA,EACzB2wK,EAAAq1I,SAAW4uM,EAAO5uM,SAAW,EAE1B,SAAAmzM,EAAsBvE,EAAQz2c,GACrC,IAAIyyH,EAAU,KACV,GAAA+iV,GAAYx1c,GAEd04c,EADAjmV,EAAUgkV,EAAO/1d,OAAO,GAAKg6d,IACVjE,GACnByC,EAAWzmV,EAASzyH,GACpBy2c,EAAOqE,QAAU,OAGjB,GADAnC,EAAWlC,EAAQz2c,GACfniJ,MAAMiF,QAAQk9I,EAAQy2c,QAExB,IADA,IAAIwE,EAAUj7c,EAAQy2c,OACb/5lB,EAAI,EAAGA,EAAIu+lB,EAAQ99lB,SAAUT,EAEpCg8lB,EADAjmV,EAAUgkV,EAAO/1d,OAAOhkI,GAAKg+lB,IACVjE,GACnBhkV,EAAQtpM,QAAUzsE,EAClB+1Q,EAAQ5wK,SAAWnlG,EACRw8lB,EAAAzmV,EAASwoV,EAAQv+lB,IAC5B+5lB,EAAOqE,SAAW,GAAKp+lB,OAIzBg8lB,EADAjmV,EAAUgkV,EAAO/1d,OAAO,GAAKg6d,IACVjE,GACnByC,EAAWzmV,EAASzyH,GACpBy2c,EAAOqE,QAAU,EAGrBpC,EAAUjC,EAAQA,EAAO/1d,OAAO,IAC5B+1d,EAAO8B,aAAe9B,EAAO6B,iBAAmB9E,IAAmCiD,EAAO6B,iBAAmB7E,IAAoCgD,EAAO6B,iBAAmB5E,IAAoC+C,EAAO6B,gBAGnN,SAAA4C,EAAUzE,EAAQntlB,GAEzB,IADA,IAAIo3H,EAAS+1d,EAAO/1d,OACXhkI,EAAI,EAAGA,EAAIgkI,EAAOvjI,SAAUT,EAAG,CAClC,IAACgkI,EAAOhkI,GACV,OAEF2yS,EAAS3uK,EAAOhkI,GAAI4M,EAAQ5M,IAGhC,IAAIy+lB,GAAU,GACd,SAASC,KACP,IAAI1olB,EAASyolB,GAAQ3tjB,OAAS,IAAIotjB,EAClCvC,EAAS3zlB,KAAKgO,GACdA,EAAOoolB,QAAU,EACjB,IAAA,IAASp+lB,EAAI,EAAGA,EAAI,KAAMA,EACjBgW,EAAAguH,OAAOhkI,GAAK,KAEd,OAAAgW,EAET,SAAS2olB,GAAW5E,GAElB,IADA,IAAI/1d,EAAS+1d,EAAO/1d,OACXhkI,EAAI,EAAGA,EAAIgkI,EAAOvjI,SAAUT,EAC/BgkI,EAAOhkI,IACCi+lB,EAAAj6d,EAAOhkI,IAEnBgkI,EAAOhkI,GAAK,KAEdy+lB,GAAQ39lB,KAAKi5lB,GAEf,SAAS6E,KACPz3lB,KAAKk8b,UAAYk0J,GACjBpwlB,KAAKo8b,UAAYg0J,GACjBpwlB,KAAK0yd,MAAQy9H,GACbnwlB,KAAK2yd,MAAQw9H,GACbnwlB,KAAK03lB,YAAc,EACnB13lB,KAAKg3lB,YAAa,EAClBh3lB,KAAKsylB,WAAa/B,GAEX,SAAAoH,GAAa9+b,EAAM1c,GAC1B,GAAI,QAASA,EAAS,CACpB,IAAI+/S,EAAY//S,EAAQv5I,IACnBi2J,EAAAqjS,UAAYy2J,EAAWz2J,GACxBu0J,GAAet2lB,QAAQ0+J,EAAKqjS,YAAc,KAAO,UAAW//S,KAC9D0c,EAAKm+b,YAAa,GAGtB,GAAI,QAAS76c,EAAS,CACpB,IAAIigT,EAAYjgT,EAAQm7E,IACnBz+D,EAAAujS,UAAYq2J,EAAWr2J,GAE9B,IAAIs2B,EAAQ75T,EAAK65T,MACbC,EAAQ95T,EAAK85T,MACjB,GAAI,SAAUx2U,EAAS,CACrB,IAAI/wH,EAAO+wH,EAAQ/wH,KACC,iBAATA,EACDsnc,EAAAC,EAAQ6/H,EAAUpnkB,GACjBpxB,MAAMiF,QAAQmsB,KACfsnc,EAAA8/H,EAAUpnkB,EAAK,IACfunc,EAAA6/H,EAAUpnkB,EAAK,IACzB,KACK,CACL,GAAI,UAAW+wH,EAAS,CACtB,IAAIy7c,EAAWz7c,EAAQu2U,MACvBA,EAAQ8/H,EAAUoF,GAEpB,GAAI,UAAWz7c,EAAS,CACtB,IAAI07c,EAAW17c,EAAQw2U,MACvBA,EAAQ6/H,EAAUqF,IAStB,GANAh/b,EAAK65T,MAAQA,EACb75T,EAAK85T,MAAQA,EACT,gBAAiBx2U,IACOA,EAAAu7c,YAC1B7+b,EAAK6+b,YAAcv7c,EAAQu7c,aAEzB,WAAYv7c,EAAS,CACvB,IAAI27c,GAAY,EACR,cAAO37c,EAAQy2c,QACrB,IAAK,SACE/5b,EAAAy5b,WAAaA,EAAWn2c,EAAQy2c,QACrC/5b,EAAKm+b,YAAa,EACNc,GAAA,EACZ,MACF,IAAK,UACSA,EAAAj/b,EAAKm+b,WAAa76c,EAAQy2c,OACtC,MACF,IAAK,SACH/5b,EAAKm+b,YAAa,EACNc,GAAA,EAIZA,KAAe,QAAS37c,KAC1B0c,EAAKqjS,UAAYm0J,KAId,SAAA0H,GAAWl/b,EAAMpzJ,GACxBm4Z,EAAIi1D,cAAcptd,EA9xBM,MA8xByBozJ,EAAKqjS,WACtDt+B,EAAIi1D,cAAcptd,EAhyBM,MAgyByBozJ,EAAKujS,WACtDx+B,EAAIi1D,cAAcptd,EAtyBE,MAsyByBozJ,EAAK65T,OAClD90D,EAAIi1D,cAAcptd,EAtyBE,MAsyByBozJ,EAAK85T,OAC9C44H,EAAWyM,gCACbp6L,EAAIi1D,cAAcptd,EAxxBY,MAwxB2BozJ,EAAK6+b,aAE5D7+b,EAAKm+b,aACHp5L,EAAAvuC,KA/xBoB,MA+xBUx2N,EAAKy5b,YACvC10L,EAAI4+B,eAAe/2b,IAGvB,IAAIwylB,GAAe,EACfC,GAAa,CAAC,EACdC,GAAcv8L,EAAOw8L,gBACrBC,GAAer+lB,MAAMm+lB,IAAal4kB,KAAI,WACjC,OAAA,IAAA,IAET,SAASq4kB,GAAY7ylB,GACnB+ulB,EAAS3zlB,KAAKb,MACdA,KAAKi3lB,QAAU,EACfj3lB,KAAKy0lB,eAAiBzF,EACtBhvlB,KAAKqU,GAAK4jlB,KACVj4lB,KAAKu4lB,SAAW,EAChBv4lB,KAAKyF,OAASA,EACTzF,KAAAu6b,QAAU38B,EAAIw8B,gBACnBp6b,KAAKszd,MAAO,EACZtzd,KAAKw4lB,UAAY,EACZx4lB,KAAAy4lB,QAAU,IAAIhB,GACfrmlB,EAAOs6kB,UACJ1rlB,KAAAs8K,MAAQ,CAAEh9K,KAAM,IAGzB,SAASo5lB,GAASn+J,GAChB38B,EAAI21D,cAAci9H,IAClB5yL,EAAI0jC,YAAY/G,EAAQ90b,OAAQ80b,EAAQA,SAE1C,SAASo+J,KACH,IAAAjmb,EAAO2lb,GAAa,GACpB3lb,EACFkrP,EAAI0jC,YAAY5uR,EAAKjtK,OAAQitK,EAAK6nR,SAE9B38B,EAAA0jC,YAAYutJ,EAAiB,MAGrC,SAASvrd,GAAQi3T,GACf,IAAIz8B,EAASy8B,EAAQA,QACjB+4B,EAAO/4B,EAAQ+4B,KACf7td,EAAS80b,EAAQ90b,OACjB6td,GAAQ,IACN11D,EAAA21D,cAAci9H,GAAgBl9H,GAC9B11D,EAAA0jC,YAAY77b,EAAQ,MACxB4ylB,GAAa/kI,GAAQ,MAEvB11D,EAAI81D,cAAc51D,GAClBy8B,EAAQA,QAAU,KAClBA,EAAQzvO,OAAS,KACjByvO,EAAQh7G,OAAS,KACjBg7G,EAAQg+J,SAAW,SACZL,GAAW39J,EAAQlmb,IACnBg+kB,EAAA4F,eA8XF,OA5XPxnB,EAAQ6nB,GAAYp7lB,UAAW,CAC7B6S,KAAM,WACJ,IAAIwqb,EAAUv6b,KACdu6b,EAAQi+J,WAAa,EACrB,IAAIllI,EAAO/4B,EAAQ+4B,KACnB,GAAIA,EAAO,EAAG,CACZ,IAAA,IAASz6d,EAAI,EAAGA,EAAIs/lB,KAAet/lB,EAAG,CAChC,IAAA66O,EAAQ2kX,GAAax/lB,GACzB,GAAI66O,EAAO,CACL,GAAAA,EAAM8kX,UAAY,EACpB,SAEF9kX,EAAM4/O,MAAO,EAEf+kI,GAAax/lB,GAAK0hc,EACX+4B,EAAAz6d,EACP,MAIEuY,EAAOs6kB,SAAW2G,EAAO+F,gBAAkB9kI,EAAO,IACpD++H,EAAO+F,gBAAkB9kI,EAAO,GAElC/4B,EAAQ+4B,KAAOA,EACX11D,EAAA21D,cAAci9H,GAAgBl9H,GAClC11D,EAAI0jC,YAAY/G,EAAQ90b,OAAQ80b,EAAQA,SAEnC,OAAA+4B,CACT,EACAn1D,OAAQ,WACNn+Z,KAAKw4lB,WAAa,CACpB,EACAI,OAAQ,aACA54lB,KAAKu4lB,UAAY,GACrBj1d,GAAQtjI,SAqRVoR,EAAOs6kB,UACT2G,EAAOwG,oBAAsB,WAC3B,IAAIznf,EAAQ,EAIL,OAHPp0G,OAAOgjB,KAAKk4kB,IAAYxllB,SAAQ,SAASlC,GAC9B4gG,GAAA8mf,GAAW1nlB,GAAK8rK,MAAMh9K,IAAA,IAE1B8xG,CACT,GA8DK,CACL0nf,SAvVO,SAAgBr0lB,EAAG9F,GACtB,IAAA47b,EAAU,IAAI+9J,GAAYzJ,GAGrB,SAAAkK,EAActkX,EAAIzjJ,GACzB,IAAIyngB,EAAUl+J,EAAQk+J,QACtBhB,GAAQ52lB,KAAK43lB,GACb,IAAIrB,EAAUG,KA0CP,MAzCW,iBAAP9iX,EAEPyiX,EAAqBE,EAAc,EAAL3iX,EADd,iBAAPzjJ,EACkC,EAALA,EAEK,EAALyjJ,GAE/BA,GACTkjX,GAAac,EAAShkX,GACtB0iX,EAAsBC,EAAS3iX,IAEVyiX,EAAAE,EAAS,EAAG,GAE/BqB,EAAQzB,aACFI,EAAAH,SAAWG,EAAQ9xhB,OAAS,GAAK,GAE3Ci1X,EAAQ08J,QAAUG,EAAQH,QAC1BpC,EAAUt6J,EAAS68J,GACnB78J,EAAQk6J,eAAiB2C,EAAQ3C,eACjCsE,EAAczzhB,MAAQ8xhB,EAAQ9xhB,MAC9ByzhB,EAAc/6f,OAASo5f,EAAQp5f,OAC/B06f,GAASn+J,GACT88J,EAAUD,EAASvI,GACnBkJ,GAAWU,EAAS5J,GACR8J,KACZnB,GAAWJ,GACPhmlB,EAAOs6kB,UACTnxJ,EAAQj+Q,MAAMh9K,KAAOyylB,GACnBx3J,EAAQk6J,eACRl6J,EAAQv7b,KACRo4lB,EAAQ9xhB,MACR8xhB,EAAQp5f,OACRy6f,EAAQzB,YACR,IAGU+B,EAAAxgkB,OAAS07jB,EAAqB15J,EAAQk6J,gBACtCsE,EAAA/5lB,KAAOk1lB,EAAmB35J,EAAQv7b,MAClC+5lB,EAAAzhY,IAAM68X,EAAiBsE,EAAQr8J,WAC/B28J,EAAAn2lB,IAAMwxlB,EAAiBqE,EAAQv8J,WAC/B68J,EAAArmI,MAAQ2hI,EAAgBoE,EAAQ/lI,OAChCqmI,EAAApmI,MAAQ0hI,EAAgBoE,EAAQ9lI,OACvComI,EAoEF,OAnHIb,GAAA39J,EAAQlmb,IAAMkmb,EAClB83J,EAAA4F,eAuGPc,EAAct0lB,EAAG9F,GACjBo6lB,EAAcrkB,SAxDd,SAAkB78U,EAAO/lN,EAAIC,EAAIinjB,GAC/B,IAAIt0lB,EAAS,EAALotC,EACJntC,EAAS,EAALotC,EACJgpC,EAAiB,EAATi+gB,EACR38T,EAAYw6T,IAWT,OAVPhC,EAAUx4T,EAAWk+J,GACrBl+J,EAAU/2N,MAAQ,EAClB+2N,EAAUr+L,OAAS,EACnBq3f,EAAWh5T,EAAWxkC,GACtBwkC,EAAU/2N,MAAQ+2N,EAAU/2N,QAAUi1X,EAAQj1X,OAASyV,GAASr2E,EAChE23R,EAAUr+L,OAASq+L,EAAUr+L,SAAWu8V,EAAQv8V,QAAUjjB,GAASp2E,EACnE+zlB,GAASn+J,GACTk8J,EAAYp6T,EAAWwyT,EAAiBnqlB,EAAGC,EAAGo2E,GAClC49gB,KACZ7B,EAAUz6T,GACH08T,GA0CTA,EAAczllB,OAxCL,SAAO2llB,EAAIC,GAClB,IAAI1skB,EAAS,EAALyskB,EACJ76kB,EAAS,EAAL86kB,GAAU1skB,EAClB,GAAIA,IAAM+ta,EAAQj1X,OAASlnD,IAAMm8a,EAAQv8V,OAChC,OAAA+6f,EAEKA,EAAAzzhB,MAAQi1X,EAAQj1X,MAAQ94C,EACxBuskB,EAAA/6f,OAASu8V,EAAQv8V,OAAS5/E,EACxCs6kB,GAASn+J,GACT,IAAA,IAAS1hc,EAAI,EAAG0hc,EAAQ08J,SAAWp+lB,IAAKA,EAAG,CACzC,IAAIyngB,EAAK9ze,GAAK3zB,EACVsgmB,EAAK/6kB,GAAKvlB,EACV,IAACyngB,IAAO64F,EAAI,MACZv7L,EAAAmzD,WACF89H,EACAh2lB,EACA0hc,EAAQhia,OACR+ne,EACA64F,EACA,EACA5+J,EAAQhia,OACRgia,EAAQv7b,KACR,MAcG,OAXK25lB,KACRvnlB,EAAOs6kB,UACTnxJ,EAAQj+Q,MAAMh9K,KAAOyylB,GACnBx3J,EAAQk6J,eACRl6J,EAAQv7b,KACRwtB,EACApO,GACA,GACA,IAGG26kB,GAKTA,EAAcjO,UAAY,YAC1BiO,EAAcK,SAAW7+J,EACrBnpb,EAAOs6kB,UACTqN,EAAcz8a,MAAQi+Q,EAAQj+Q,OAEhCy8a,EAAcz1d,QAAU,WACtBi3T,EAAQq+J,QACV,EACOG,GAmOPM,WAjOF,SAA2Bl/iB,EAAIC,EAAIq6L,EAAI+lK,EAAIosB,EAAIG,GACzC,IAAAwzB,EAAU,IAAI+9J,GAAYxJ,GACnBoJ,GAAA39J,EAAQlmb,IAAMkmb,EAClB83J,EAAAiH,YACH,IAAA50I,EAAQ,IAAI1qd,MAAM,GACtB,SAASu/lB,EAAgBvqgB,EAAKE,EAAKS,EAAKG,EAAK0pgB,EAAKC,GAC5C,IAAA5gmB,EACA4/lB,EAAUl+J,EAAQk+J,QAEtB,IADAhB,GAAQ52lB,KAAK43lB,GACR5/lB,EAAI,EAAGA,EAAI,IAAKA,EACb6rd,EAAA7rd,GAAK0+lB,KAEb,GAAmB,iBAARvogB,GAAqBA,GAI9B,GACwB,iBAARA,EAChB,GAAIE,EACoBiogB,EAAAzyI,EAAM,GAAI11X,GACVmogB,EAAAzyI,EAAM,GAAIx1X,GACViogB,EAAAzyI,EAAM,GAAI/0X,GACVwngB,EAAAzyI,EAAM,GAAI50X,GACVqngB,EAAAzyI,EAAM,GAAI80I,GACVrC,EAAAzyI,EAAM,GAAI+0I,QAIhC,GAFA9B,GAAac,EAASzpgB,GACtB8lgB,EAAWv6J,EAASvrW,GAChB,UAAWA,EAAK,CAClB,IAAI0qgB,EAAY1qgB,EAAI01X,MACpB,IAAK7rd,EAAI,EAAGA,EAAI,IAAKA,EACTg8lB,EAAAnwI,EAAM7rd,GAAI0hc,GACpB48J,EAAsBzyI,EAAM7rd,GAAI6gmB,EAAU7gmB,GAC5C,MAEA,IAAKA,EAAI,EAAGA,EAAI,IAAKA,EACGs+lB,EAAAzyI,EAAM7rd,GAAIm2F,OAxBH,CAC/B,IAAA3zF,EAAU,EAAN2zF,GAAW,EACnB,IAAKn2F,EAAI,EAAGA,EAAI,IAAKA,EACnBq+lB,EAAqBxyI,EAAM7rd,GAAIwC,EAAGA,EACpC,CAoCF,IAVUw5lB,EAAAt6J,EAASmqB,EAAM,IACrB+zI,EAAQzB,WACVz8J,EAAQ08J,SAAWvyI,EAAM,GAAGp/Y,OAAS,GAAK,EAElCi1X,EAAA08J,QAAUvyI,EAAM,GAAGuyI,QAErB18J,EAAAk6J,eAAiB/vI,EAAM,GAAG+vI,eAClB8E,EAAAj0hB,MAAQo/Y,EAAM,GAAGp/Y,MACjBi0hB,EAAAv7f,OAAS0mX,EAAM,GAAG1mX,OAClC06f,GAASn+J,GACJ1hc,EAAI,EAAGA,EAAI,IAAKA,EACnBw+lB,EAAU3yI,EAAM7rd,GAAIk2lB,EAAmCl2lB,GAoBzD,IAlBAk/lB,GAAWU,EAAS3J,GACR6J,KACRvnlB,EAAOs6kB,UACTnxJ,EAAQj+Q,MAAMh9K,KAAOyylB,GACnBx3J,EAAQk6J,eACRl6J,EAAQv7b,KACRu6lB,EAAgBj0hB,MAChBi0hB,EAAgBv7f,OAChBy6f,EAAQzB,YACR,IAGYuC,EAAAhhkB,OAAS07jB,EAAqB15J,EAAQk6J,gBACtC8E,EAAAv6lB,KAAOk1lB,EAAmB35J,EAAQv7b,MAClCu6lB,EAAAjiY,IAAM68X,EAAiBsE,EAAQr8J,WAC/Bm9J,EAAA32lB,IAAMwxlB,EAAiBqE,EAAQv8J,WAC/Bq9J,EAAA7mI,MAAQ2hI,EAAgBoE,EAAQ/lI,OAChC6mI,EAAA5mI,MAAQ0hI,EAAgBoE,EAAQ9lI,OAC3C95d,EAAI,EAAGA,EAAI,IAAKA,EACR2+lB,GAAA9yI,EAAM7rd,IAEZ,OAAA0gmB,EAkEF,OAXPA,EAAgBp/iB,EAAIC,EAAIq6L,EAAI+lK,EAAIosB,EAAIG,GACpCwyL,EAAgB7kB,SAtDhB,SAAkB7zG,EAAMhpO,EAAO/lN,EAAIC,EAAIinjB,GACrC,IAAIt0lB,EAAS,EAALotC,EACJntC,EAAS,EAALotC,EACJgpC,EAAiB,EAATi+gB,EACR38T,EAAYw6T,IAWT,OAVPhC,EAAUx4T,EAAWk+J,GACrBl+J,EAAU/2N,MAAQ,EAClB+2N,EAAUr+L,OAAS,EACnBq3f,EAAWh5T,EAAWxkC,GACtBwkC,EAAU/2N,MAAQ+2N,EAAU/2N,QAAUi1X,EAAQj1X,OAASyV,GAASr2E,EAChE23R,EAAUr+L,OAASq+L,EAAUr+L,SAAWu8V,EAAQv8V,QAAUjjB,GAASp2E,EACnE+zlB,GAASn+J,GACTk8J,EAAYp6T,EAAW0yT,EAAmCluH,EAAMn8d,EAAGC,EAAGo2E,GAC1D49gB,KACZ7B,EAAUz6T,GACHk9T,GAwCTA,EAAgBjmlB,OAtChB,SAAgBqmlB,GACd,IAAIj3iB,EAAmB,EAAVi3iB,EACT,GAAAj3iB,IAAW63Y,EAAQj1X,MAAnB,CAGYi0hB,EAAAj0hB,MAAQi1X,EAAQj1X,MAAQ5iB,EACxB62iB,EAAAv7f,OAASu8V,EAAQv8V,OAASt7C,EAC1Cg2iB,GAASn+J,GACT,IAAA,IAAS1hc,EAAI,EAAGA,EAAI,IAAKA,EACvB,IAAA,IAAS0I,EAAI,EAAGg5b,EAAQ08J,SAAW11lB,IAAKA,EAClCq8Z,EAAAmzD,WACFg+H,EAAmCl2lB,EACnC0I,EACAg5b,EAAQhia,OACRmqB,GAAUnhD,EACVmhD,GAAUnhD,EACV,EACAg5b,EAAQhia,OACRgia,EAAQv7b,KACR,MAeC,OAXK25lB,KACRvnlB,EAAOs6kB,UACTnxJ,EAAQj+Q,MAAMh9K,KAAOyylB,GACnBx3J,EAAQk6J,eACRl6J,EAAQv7b,KACRu6lB,EAAgBj0hB,MAChBi0hB,EAAgBv7f,QAChB,GACA,IAGGu7f,IAKTA,EAAgBzO,UAAY,cAC5ByO,EAAgBH,SAAW7+J,EACvBnpb,EAAOs6kB,UACT6N,EAAgBj9a,MAAQi+Q,EAAQj+Q,OAElCi9a,EAAgBj2d,QAAU,WACxBi3T,EAAQq+J,QACV,EACOW,GAoFPvkiB,MAlFF,WACE,IAAA,IAASn8D,EAAI,EAAGA,EAAIs/lB,KAAet/lB,EAC7B+ka,EAAA21D,cAAci9H,GAAgB33lB,GAC9B+ka,EAAA0jC,YAAYutJ,EAAiB,MACjCwJ,GAAax/lB,GAAK,KAEbqlB,EAAAg6kB,IAAYxllB,QAAQ4wH,IAC3B+ud,EAAOiH,UAAY,EACnBjH,EAAO4F,aAAe,GA2EtB2B,WAAY,SAASh9I,GACZ,OAAA,IACT,EACAi9I,QAnEF,WACE,IAAA,IAAShhmB,EAAI,EAAGA,EAAIs/lB,KAAet/lB,EAAG,CAChC,IAAAm7I,EAAMqkd,GAAax/lB,GACnBm7I,IACFA,EAAIwkd,UAAY,EAChBxkd,EAAIs/U,MAAO,EACX+kI,GAAax/lB,GAAK,MAGtBqlB,EAAOg6kB,IAAYxllB,SAAQ,SAAS6nb,GAC1BA,EAAAA,QAAU38B,EAAIw8B,gBACtBx8B,EAAI0jC,YAAY/G,EAAQ90b,OAAQ80b,EAAQA,SACxC,IAAA,IAASrwa,EAAK,EAAGA,EAAK,KAAMA,EAC1B,GAAKqwa,EAAQ08J,QAAU,GAAK/skB,EAGxB,GAAAqwa,EAAQ90b,SAAWoplB,EACjBjxL,EAAAmzD,WACF89H,EACA3kkB,EACAqwa,EAAQk6J,eACRl6J,EAAQj1X,OAASp7C,EACjBqwa,EAAQv8V,QAAU9zE,EAClB,EACAqwa,EAAQk6J,eACRl6J,EAAQv7b,KACR,WAGF,IAAA,IAASuC,EAAI,EAAGA,EAAI,IAAKA,EACnBq8Z,EAAAmzD,WACFg+H,EAAmCxtlB,EACnC2oB,EACAqwa,EAAQk6J,eACRl6J,EAAQj1X,OAASp7C,EACjBqwa,EAAQv8V,QAAU9zE,EAClB,EACAqwa,EAAQk6J,eACRl6J,EAAQv7b,KACR,MAKG+4lB,GAAAx9J,EAAQk+J,QAASl+J,EAAQ90b,OAAM,KAwB5Cq0lB,QArBF,WACE,IAAA,IAASjhmB,EAAI,EAAGA,EAAIs/lB,KAAet/lB,EAAG,CAChC,IAAAm7I,EAAMqkd,GAAax/lB,GACnBm7I,IACFA,EAAIwkd,UAAY,EAChBxkd,EAAIs/U,MAAO,EACX+kI,GAAax/lB,GAAK,MAEhB+ka,EAAA21D,cAAci9H,GAAgB33lB,GAC9B+ka,EAAA0jC,YAAYutJ,EAAiB,MAC7BjxL,EAAA0jC,YAAYwtJ,EAAuB,SAzpC7CuC,GA9Fe,OA8FkB,EACjCA,GAAqBhC,OAAc,EACnCgC,GA9FgB,OA8FkB,EAClCA,GAAqB9B,OAAoB,EACzC8B,GAAqB1B,OAAmC,GACxD0B,GAAqBzB,OAAoC,GACzDyB,GAAqBxB,OAAoC,EACzDwB,GAAqBvB,OAAoC,EACzDuB,GAtFkC,OAsFkB,GACpDA,GAtFkD,OAsFkB,EACpEA,GAtFsD,OAsFkB,EACxEA,GAtFyC,OAsFkB,GAC3DA,GAtFyC,OAsFkB,IAC3DA,GAtF0C,OAsFkB,GAC5DA,GAtF0C,OAsFkB,IAC5DA,GAtFmC,OAsFkB,GAwpCrD,IAAI0I,GAAkB,MAClBC,GAAa,MAUbC,GAAe,GAWV,SAAAC,GAAoB3hkB,EAAQ+sC,EAAO04B,GACnC,OAAAi8f,GAAa1hkB,GAAU+sC,EAAQ04B,EAXxCi8f,GAAaD,OAAc,EAC3BC,GAXmB,OAWU,EAC7BA,GAXkB,OAWU,EAC5BA,GAX2B,OAWU,EACrCA,GAXwB,OAWU,EAClCA,GAXyB,OAWU,EACnCA,GAX0B,OAWU,EACpCA,GAXqB,OAWU,GAC/BA,GAXqB,OAWU,EAC/BA,GAXoB,OAWU,EAI9B,IAgKIE,GAAmB,MACnBC,GAAoB,MACpBC,GAAkB,KAYlBC,GAAwB,GAC5BA,GAFgB,MAEmB,EACnCA,GAJe,MAImB,EAClC,IAAIC,GAAmB,GACvBA,GARyB,MAQc,EACvCA,GARiB,MAQc,EAC/BA,GAX0B,OAWc,EA2lBxC,IAEIC,GAA4B,MAChC,SAASC,KACPz6lB,KAAK4Z,MAAQ,EACb5Z,KAAK0E,EAAI,EACT1E,KAAK2E,EAAI,EACT3E,KAAK4jB,EAAI,EACT5jB,KAAKwsB,EAAI,EACTxsB,KAAKvF,OAAS,KACduF,KAAKV,KAAO,EACZU,KAAKs+b,YAAa,EAClBt+b,KAAKhB,KAZU,KAafgB,KAAKtF,OAAS,EACdsF,KAAKuxb,OAAS,EACdvxb,KAAK2klB,QAAU,EAkhBjB,SAAS+V,GAAe98L,EAAK+8L,EAAkBxI,EAAU15kB,EAASmilB,EAAcrP,EAAY3vL,GAC1F,SAASi/L,EAAenulB,GAClB,IAAA1N,EAEKA,EADqB,OAA1B27lB,EAAiBz/kB,KANA,KASZy/kB,EAAiBz/kB,KAAK4/kB,iBAAiB,GAAGvgK,QAAQ6+J,SAASp6lB,KAEpE,IAAI0F,EAAI,EACJC,EAAI,EACJ2gE,EAAQ7sD,EAAQsilB,iBAChB/8f,EAASvlF,EAAQuilB,kBACjB97lB,EAAO,KACP4sE,EAAap/D,GACRxN,EAAAwN,EACEA,IACThI,EAAc,EAAVgI,EAAMhI,EACVC,EAAc,EAAV+H,EAAM/H,EACV2gE,EAAwD,GAA/C54D,EAAM44D,OAAS7sD,EAAQsilB,iBAAmBr2lB,GACnDs5F,EAA2D,GAAjDtxF,EAAMsxF,QAAUvlF,EAAQuilB,kBAAoBr2lB,GACtDzF,EAAOwN,EAAMxN,MAAQ,MAOdizlB,IACL,IAAA7ylB,EAAOgmE,EAAQ04B,EAAS,EAkBrB,OAjBF9+F,IAhCgB,OAiCfF,EACKE,EAAA,IAAInF,WAAWuF,GAhCb,OAiCAN,IACFE,EAAAA,GAAQ,IAAI6tE,aAAaztE,KAGhCs+Z,EAAAq3L,YAtCgB,KAsCe,GAC/Br3L,EAAAm9C,WACFr2c,EACAC,EACA2gE,EACA04B,EA7CU,KA+CVh/F,EACAE,GAEKA,EAkBF,OAPP,SAAoBi9I,GAClB,OAAKA,GAAa,gBAAiBA,EAVrC,SAAuBA,GACjB,IAAAttI,EAMG,OALP8rlB,EAAiBM,OAAO,CACtBC,YAAa/+c,EAAQ++c,cACpB,WACDrslB,EAASgslB,EAAe1+c,EAAO,IAE1BttI,EAMEsslB,CAAch/c,GAFd0+c,EAAe1+c,IAS5B,SAASi/c,GAAW//lB,GAClB,OAgBF,SAAkBqR,GAIhB,IAHI,IAEAhI,EAFA22lB,EAAyC,mBACzC9gmB,EAAS,GAEJ1B,EAAI,EAAGA,EAAI6T,EAAMpT,OAAQT,IAC5B6L,EAAAgI,EAAMtT,WAAWP,GACX0B,GAAA8gmB,EAAQ75kB,OAAO9c,IAAM,EAAI,IAAM22lB,EAAQ75kB,OAAW,GAAJ9c,GAEnD,OAAAnK,EAxBA+gmB,CAET,SAAqBjgmB,GACZ,OA2GT,SAAmBqR,GAEjB,IADA,IAAInS,EAAS,GACJ1B,EAAI,EAAGA,EAAmB,GAAf6T,EAAMpT,OAAaT,GAAK,EAChC0B,GAAA2G,OAAOqC,aAAamJ,EAAM7T,GAAK,KAAO,GAAKA,EAAI,GAAK,KACzD,OAAA0B,EA/GAghmB,CA2MA,SAAYxgmB,EAAG4oB,GACtB,IAWIlf,EAAG9F,EAAGhD,EAAGP,EAAGN,EAAGqgB,EAAGuX,EAAGtU,EACrBvlB,EAAG0I,EAAGi6lB,EAAIC,EAZVC,EAAO,IAAI1hmB,MACb,YACA,WACA,YACA,WACA,YACA,WACA,UACA,YAEEunE,EAAI,IAAIvnE,MAAM,IAKlB,IAFAe,EAAE4oB,GAAK,IAAM,KAAO,GAAKA,EAAI,GAC7B5oB,EAAuB,IAApB4oB,EAAI,IAAM,GAAK,IAAWA,EACxB9qB,EAAI,EAAGA,EAAIkC,EAAEzB,OAAQT,GAAK,GAAI,CASjC,IARA4L,EAAIi3lB,EAAK,GACT/8lB,EAAI+8lB,EAAK,GACT//lB,EAAI+/lB,EAAK,GACTtgmB,EAAIsgmB,EAAK,GACT5gmB,EAAI4gmB,EAAK,GACTvglB,EAAIuglB,EAAK,GACThpkB,EAAIgpkB,EAAK,GACTt9kB,EAAIs9kB,EAAK,GACJn6lB,EAAI,EAAGA,EAAI,GAAIA,IACNggE,EAAEhgE,GAAVA,EAAI,GAAWxG,EAAEwG,EAAI1I,GACb8imB,GAASA,GACnBA,GAASC,GAAiBr6hB,EAAEhgE,EAAI,IAAKggE,EAAEhgE,EAAI,IAC3Cs6lB,GAAiBt6hB,EAAEhgE,EAAI,MACtBggE,EAAEhgE,EAAI,KACTi6lB,EAAKG,GAASA,GACZA,GAASA,GAASv9kB,EAAG09kB,GAAiBhhmB,IAAKihmB,GAAUjhmB,EAAGqgB,EAAGuX,IAC3DspkB,GAASz6lB,IACRggE,EAAEhgE,IACAk6lB,EAAAE,GAASM,GAAiBx3lB,GAAIy3lB,GAAWz3lB,EAAG9F,EAAGhD,IAChDyiB,EAAAsU,EACAA,EAAAvX,EACAA,EAAArgB,EACAA,EAAA6gmB,GAASvgmB,EAAGogmB,GACZpgmB,EAAAO,EACAA,EAAAgD,EACAA,EAAA8F,EACAA,EAAAk3lB,GAASH,EAAIC,GAEnBC,EAAK,GAAKC,GAASl3lB,EAAGi3lB,EAAK,IAC3BA,EAAK,GAAKC,GAASh9lB,EAAG+8lB,EAAK,IAC3BA,EAAK,GAAKC,GAAShgmB,EAAG+/lB,EAAK,IAC3BA,EAAK,GAAKC,GAASvgmB,EAAGsgmB,EAAK,IAC3BA,EAAK,GAAKC,GAAS7gmB,EAAG4gmB,EAAK,IAC3BA,EAAK,GAAKC,GAASxglB,EAAGuglB,EAAK,IAC3BA,EAAK,GAAKC,GAASjpkB,EAAGgpkB,EAAK,IAC3BA,EAAK,GAAKC,GAASv9kB,EAAGs9kB,EAAK,IAEtB,OAAAA,EAjQUS,CAmGnB,SAAmBzvlB,GAEjB,IADA,IAAInS,EAASP,MAAM0S,EAAMpT,QAAU,GAC1BT,EAAI,EAAGA,EAAI0B,EAAOjB,OAAQT,IACjC0B,EAAO1B,GAAK,EACd,IAASA,EAAI,EAAGA,EAAmB,EAAf6T,EAAMpT,OAAYT,GAAK,EAClC0B,EAAA1B,GAAK,KAAiC,IAA1B6T,EAAMtT,WAAWP,EAAI,KAAa,GAAKA,EAAI,GACzD,OAAA0B,EAzGsB6hmB,CAAU/gmB,GAAe,EAAXA,EAAE/B,SAH7B+imB,CAoElB,SAAuB3vlB,GAId,IAHP,IAEIhI,EAAGC,EAFHpK,EAAS,GACT1B,GAAI,IAECA,EAAI6T,EAAMpT,QACboL,EAAAgI,EAAMtT,WAAWP,GACjB8L,EAAA9L,EAAI,EAAI6T,EAAMpT,OAASoT,EAAMtT,WAAWP,EAAI,GAAK,EACjD,OAAS6L,GAAKA,GAAK,OAAS,OAASC,GAAKA,GAAK,QACjDD,EAAI,QAAc,KAAJA,IAAa,KAAW,KAAJC,GAClC9L,KAEE6L,GAAK,IACGnK,GAAA2G,OAAOqC,aAAamB,GACvBA,GAAK,KACZnK,GAAU2G,OAAOqC,aACf,IAAMmB,IAAM,EAAI,GAChB,IAAU,GAAJA,GAEDA,GAAK,MACZnK,GAAU2G,OAAOqC,aACf,IAAMmB,IAAM,GAAK,GACjB,IAAMA,IAAM,EAAI,GAChB,IAAU,GAAJA,GAEDA,GAAK,UACZnK,GAAU2G,OAAOqC,aACf,IAAMmB,IAAM,GAAK,EACjB,IAAMA,IAAM,GAAK,GACjB,IAAMA,IAAM,EAAI,GAChB,IAAU,GAAJA,IAGL,OAAAnK,EApGqB+hmB,CAAcjhmB,KAoHnC,SAAAkhmB,GAAS96hB,EAAGjhE,GACZ,OAAAihE,IAAMjhE,EAAIihE,GAAK,GAAKjhE,EAEpB,SAAAg8lB,GAAS/6hB,EAAGjhE,GACnB,OAAOihE,IAAMjhE,EAEN,SAAAu7lB,GAAUr3lB,EAAGC,EAAGif,GAChB,OAAAlf,EAAIC,GAAKD,EAAIkf,EAEb,SAAAs4kB,GAAWx3lB,EAAGC,EAAGif,GACxB,OAAOlf,EAAIC,EAAID,EAAIkf,EAAIjf,EAAIif,EAE7B,SAASq4kB,GAAiBv3lB,GACjB,OAAA63lB,GAAS73lB,EAAG,GAAK63lB,GAAS73lB,EAAG,IAAM63lB,GAAS73lB,EAAG,IAExD,SAASo3lB,GAAiBp3lB,GACjB,OAAA63lB,GAAS73lB,EAAG,GAAK63lB,GAAS73lB,EAAG,IAAM63lB,GAAS73lB,EAAG,IAExD,SAASm3lB,GAAiBn3lB,GACjB,OAAA63lB,GAAS73lB,EAAG,GAAK63lB,GAAS73lB,EAAG,IAAM83lB,GAAS93lB,EAAG,GAExD,SAASk3lB,GAAiBl3lB,GACjB,OAAA63lB,GAAS73lB,EAAG,IAAM63lB,GAAS73lB,EAAG,IAAM83lB,GAAS93lB,EAAG,IAEzD,IAAIs3lB,GAAW,IAAIhimB,MACjB,WACA,YACA,YACA,UACA,UACA,YACA,YACA,YACA,UACA,UACA,UACA,WACA,YACA,YACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,WA0DO,SAAA2hmB,GAASj3lB,EAAGC,GACf,IAAA83lB,GAAW,MAAJ/3lB,IAAkB,MAAJC,GAElB,OADID,GAAK,KAAOC,GAAK,KAAO83lB,GAAO,KAC5B,GAAW,MAANA,EAErB,SAAS3+lB,GAAM4G,GACb,OAAO1K,MAAMkD,UAAUY,MAAM+C,KAAK6D,GAEpC,SAAS5K,GAAK4K,GACZ,OAAO5G,GAAM4G,GAAG5K,KAAK,IAuKnB,IAAA4im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DACA,4BACA,2DACA,6BACA,0CACA,GACA,qCACA,qCACA,GACA,+CACA,+CACA,GACA,8BACA,uDACA,IACA,GACA,6DACA,gFACA,gFACA,8CACA,IACA,GACA,2BACA,8BACA,IACA,GACA,+CACA,8CACA,IACA,GACA,4CACA,eACA,0CACA,0CACA,0CACA,uCACA,SACA,IACA,GACA,4CACA,eACA,0CACA,0CACA,0CACA,uCACA,SACA,IACA,GACA,4DACA,sCACA,sCACA,sCACA,oCACA,IACA,GACA,2DACA,oBACA,mBACA,mBACA,mBACA,mBACA,GACA,mCACA,uCACA,2CACA,gCACA,yDACA,gCACA,kEACA,sFACA,gCACA,oEACA,wBACA,kCACA,gBACA,YACA,QACA,oBACA,IACA,GACA,2EACA,qCACA,sCACA,8BACA,GACA,0CACA,4CACA,wCACA,SACA,GACA,mBACA,4EACA,aACA,cACA,SACA,IACA,GACA,gBACA,qDACA,qDACA,qDACA,oDACA,GACA,2BACA,GACA,wDACA,GACA,kBACA,2CACA,kFACA,KACAn/nB,KAAK,MACHo/nB,EAAuB,CACzB,yBACA,GACA,0BACA,GACA,gBACA,gCACA,KACAp/nB,KAAK,MACHq/nB,EAASzI,KAAsBC,kBAC/B7ugB,EAAMrN,KACN2khB,EAAoB,KACpBC,EAAa,KACbC,EAAa,IAAIv/nB,WAAW,GAC5Bw/nB,EAAY,IAAIx/nB,WAAW,GAC3By/nB,EAAuB,CACzBvrjB,MAAO,CAAC,IAAK,GACb11C,OAAQ,OACRv5B,KAAM,QACNs4N,IAAK,UACL10N,IAAK,WAWP,SAASoyD,EAAMouJ,EAAM1+M,EAAGC,EAAG2gE,EAAO04B,GAChC,IAAI4/T,EAAMx6M,EAAKwmD,IACXg0J,EAAA5qT,OAAO4qT,EAAI67N,cACf77N,EAAI20K,QAAQ7tkB,EAAGC,EAAG2gE,EAAO04B,GACpBolH,EAAApuJ,MAAM,CAAE/+B,MAAO,CAAC,EAAG,EAAG,EAAG,GAAIzT,MAAO,IAE3C,SAASk3mB,EAAYt2a,EAAMu2a,EAAOC,EAAa5I,EAAgB6I,E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hC,MAAU,SAANA,EACkB,OAAbuxoB,EACQ,UAANvxoB,EACFrlB,MAAMiF,QAAQ2xpB,GACN,WAANvxoB,EACFuxoB,IAAa52pB,MAAMiF,QAAQ2xpB,IAAiC,iBAAbA,EAE/CvxoB,WAAauxoB,CACtB,IAGJ,IAAIG,GAAiBxV,GAAqB,SAAShgoB,EAASy1oB,GAC1D,IAAIC,EAAiB,CACnBn4M,YAAe,CACb,EACA,EACA,EACA,GAEF9/a,UAAa,CACX,IACA,IACA,IACA,GAEFC,aAAgB,CACd,IACA,IACA,IACA,GAEFC,KAAQ,CACN,EACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC,OAAU,CACR,IACA,IACA,IACA,GAEFC,MAAS,CACP,EACA,EACA,EACA,GAEFC,eAAkB,CAChB,IACA,IACA,IACA,GAEFC,KAAQ,CACN,EACA,EACA,IACA,GAEFC,WAAc,CACZ,IACA,GACA,IACA,GAEFC,MAAS,CACP,IACA,GACA,GACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,UAAa,CACX,GACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,EACA,GAEFC,UAAa,CACX,IACA,IACA,GACA,GAEFC,MAAS,CACP,IACA,IACA,GACA,GAEFC,eAAkB,CAChB,IACA,IACA,IACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,GACA,GACA,GAEFC,KAAQ,CACN,EACA,IACA,IACA,GAEFC,SAAY,CACV,EACA,EACA,IACA,GAEFC,SAAY,CACV,EACA,IACA,IACA,GAEFC,cAAiB,CACf,IACA,IACA,GACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,UAAa,CACX,EACA,IACA,EACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,YAAe,CACb,IACA,EACA,IACA,GAEFC,eAAkB,CAChB,GACA,IACA,GACA,GAEFC,WAAc,CACZ,IACA,IACA,EACA,GAEFC,WAAc,CACZ,IACA,GACA,IACA,GAEFC,QAAW,CACT,IACA,EACA,EACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,aAAgB,CACd,IACA,IACA,IACA,GAEFC,cAAiB,CACf,GACA,GACA,IACA,GAEFC,cAAiB,CACf,GACA,GACA,GACA,GAEFC,cAAiB,CACf,GACA,GACA,GACA,GAEFC,cAAiB,CACf,EACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,EACA,IACA,GAEFC,SAAY,CACV,IACA,GACA,IACA,GAEFC,YAAe,CACb,EACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,IACA,IACA,GAEFC,WAAc,CACZ,GACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,GACA,GACA,GAEFC,YAAe,CACb,IACA,IACA,IACA,GAEFC,YAAe,CACb,GACA,IACA,GACA,GAEFC,QAAW,CACT,IACA,EACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,KAAQ,CACN,IACA,IACA,EACA,GAEFC,UAAa,CACX,IACA,IACA,GACA,GAEFC,KAAQ,CACN,IACA,IACA,IACA,GAEFC,MAAS,CACP,EACA,IACA,EACA,GAEFC,YAAe,CACb,IACA,IACA,GACA,GAEFC,KAAQ,CACN,IACA,IACA,IACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,GACA,GACA,GAEFC,OAAU,CACR,GACA,EACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,cAAiB,CACf,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,EACA,GAEFC,aAAgB,CACd,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,qBAAwB,CACtB,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,YAAe,CACb,IACA,IACA,IACA,GAEFC,cAAiB,CACf,GACA,IACA,IACA,GAEFC,aAAgB,CACd,IACA,IACA,IACA,GAEFC,eAAkB,CAChB,IACA,IACA,IACA,GAEFC,eAAkB,CAChB,IACA,IACA,IACA,GAEFC,eAAkB,CAChB,IACA,IACA,IACA,GAEFC,YAAe,CACb,IACA,IACA,IACA,GAEFC,KAAQ,CACN,EACA,IACA,EACA,GAEFC,UAAa,CACX,GACA,IACA,GACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,EACA,IACA,GAEFC,OAAU,CACR,IACA,EACA,EACA,GAEFC,iBAAoB,CAClB,IACA,IACA,IACA,GAEFC,WAAc,CACZ,EACA,EACA,IACA,GAEFC,aAAgB,CACd,IACA,GACA,IACA,GAEFC,aAAgB,CACd,IACA,IACA,IACA,GAEFC,eAAkB,CAChB,GACA,IACA,IACA,GAEFC,gBAAmB,CACjB,IACA,IACA,IACA,GAEFC,kBAAqB,CACnB,EACA,IACA,IACA,GAEFC,gBAAmB,CACjB,GACA,IACA,IACA,GAEFC,gBAAmB,CACjB,IACA,GACA,IACA,GAEFC,aAAgB,CACd,GACA,GACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,YAAe,CACb,IACA,IACA,IACA,GAEFC,KAAQ,CACN,EACA,EACA,IACA,GAEFC,QAAW,CACT,IACA,IACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,EACA,GAEFC,UAAa,CACX,IACA,IACA,GACA,GAEFC,OAAU,CACR,IACA,IACA,EACA,GAEFC,UAAa,CACX,IACA,GACA,EACA,GAEFC,OAAU,CACR,IACA,IACA,IACA,GAEFC,cAAiB,CACf,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,cAAiB,CACf,IACA,IACA,IACA,GAEFC,cAAiB,CACf,IACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,KAAQ,CACN,IACA,IACA,GACA,GAEFC,KAAQ,CACN,IACA,IACA,IACA,GAEFC,KAAQ,CACN,IACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,IACA,GAEFC,OAAU,CACR,IACA,EACA,IACA,GAEFC,cAAiB,CACf,IACA,GACA,IACA,GAEFC,IAAO,CACL,IACA,EACA,EACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,UAAa,CACX,GACA,IACA,IACA,GAEFC,YAAe,CACb,IACA,GACA,GACA,GAEFC,OAAU,CACR,IACA,IACA,IACA,GAEFC,WAAc,CACZ,IACA,IACA,GACA,GAEFC,SAAY,CACV,GACA,IACA,GACA,GAEFC,SAAY,CACV,IACA,IACA,IACA,GAEFC,OAAU,CACR,IACA,GACA,GACA,GAEFC,OAAU,CACR,IACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,GACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,UAAa,CACX,IACA,IACA,IACA,GAEFC,KAAQ,CACN,IACA,IACA,IACA,GAEFC,YAAe,CACb,EACA,IACA,IACA,GAEFC,UAAa,CACX,GACA,IACA,IACA,GAEFC,IAAO,CACL,IACA,IACA,IACA,GAEFC,KAAQ,CACN,EACA,IACA,IACA,GAEFC,QAAW,CACT,IACA,IACA,IACA,GAEFC,OAAU,CACR,IACA,GACA,GACA,GAEFC,UAAa,CACX,GACA,IACA,IACA,GAEFC,OAAU,CACR,IACA,IACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC,MAAS,CACP,IACA,IACA,IACA,GAEFC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Ko0M,IAAMp0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAMx30B,KAAKy30B,IAAMz30B,KAAK030B,IAAM130B,KAAKs0M,IAAMt0M,KAAKu0M,IAAMv0M,KAAK230B,IAAM330B,KAAK430B,IAAM530B,KAAK630B,IAAMv80B,IAC9G0E,KAAKukiB,OAAS,CAChB,EACAnP,QAAS,WACP,OAAQp1hB,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKyzG,SAASgxb,OAAOzkiB,KAAKw30B,IAAKx30B,KAAK230B,KACpC330B,KAAKyzG,SAAS+wb,YACd,MAEF,KAAK,EACHxkiB,KAAKyzG,SAASgxb,QAAQzkiB,KAAKw30B,IAAM,EAAIx30B,KAAKy30B,KAAO,GAAIz30B,KAAK230B,IAAM,EAAI330B,KAAK430B,KAAO,GAChF530B,KAAKyzG,SAASixb,QAAQ1kiB,KAAKy30B,IAAM,EAAIz30B,KAAKw30B,KAAO,GAAIx30B,KAAK430B,IAAM,EAAI530B,KAAK230B,KAAO,GAChF330B,KAAKyzG,SAAS+wb,YACd,MAEF,KAAK,EACHxkiB,KAAKotB,MAAMptB,KAAKw30B,IAAKx30B,KAAK230B,KAC1B330B,KAAKotB,MAAMptB,KAAKy30B,IAAKz30B,KAAK430B,KAC1B530B,KAAKotB,MAAMptB,KAAK030B,IAAK130B,KAAK630B,KAIhC,EACAzqzB,MAAO,SAASkhB,EAAIC,GAElB,OADKD,GAACA,EAAIC,GAAMA,EACRvuC,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKukiB,OAAS,EACTvkiB,KAAAw30B,IAAMlpyB,EAAItuC,KAAK230B,IAAMppyB,EAC1B,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACTvkiB,KAAAy30B,IAAMnpyB,EAAItuC,KAAK430B,IAAMrpyB,EAC1B,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACTvkiB,KAAA030B,IAAMppyB,EAAItuC,KAAK630B,IAAMtpyB,EAC1BvuC,KAAKyzG,SAASgxb,QAAQzkiB,KAAKo0M,IAAM,EAAIp0M,KAAKq0M,IAAM/lK,GA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AKu0M,IAAMv0M,KAAK230B,IAAK330B,KAAK230B,IAAMppyB,IAGrD,IAAAse,GAAW,SAAS2vT,EAAOxwT,GAC7B,SAASgsxB,EAAUv/zB,GACV,OAAA,IAAIs/zB,GAASt/zB,EAASuzC,GAKxB,OAHGgsxB,EAAAhsxB,QAAU,SAASisxB,GACpB,OAAAz7d,GAAQy7d,EACjB,EACOD,EAPM,CAQb,GACO,SAAAE,GAAez/zB,EAASuzC,GAC/BhsD,KAAKyzG,SAAWh7F,EACXzY,KAAA4/f,IAAM,EAAI5zc,GAAW,EAE5BksxB,GAAeh70B,UAAY,CACzBq40B,UAAWp0uB,GACXq0uB,QAASr0uB,GACTg0b,UAAW,WACJn1hB,KAAAo0M,IAAMp0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAMx30B,KAAKy30B,IAAMz30B,KAAK030B,IAAM130B,KAAKm40B,IAAMn40B,KAAKs0M,IAAMt0M,KAAKu0M,IAAMv0M,KAAK230B,IAAM330B,KAAK430B,IAAM530B,KAAK630B,IAAM730B,KAAKo40B,IAAM980B,IACpI0E,KAAKukiB,OAAS,CAChB,EACAnP,QAAS,WACP,OAAQp1hB,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKyzG,SAASgxb,OAAOzkiB,KAAKy30B,IAAKz30B,KAAK430B,KACpC530B,KAAKyzG,SAAS+wb,YACd,MAEF,KAAK,EACHxkiB,KAAKyzG,SAASixb,OAAO1kiB,KAAKy30B,IAAKz30B,KAAK430B,KACpC530B,KAAKyzG,SAAS+wb,YACd,MAEF,KAAK,EACHxkiB,KAAKotB,MAAMptB,KAAKy30B,IAAKz30B,KAAK430B,KAC1B530B,KAAKotB,MAAMptB,KAAK030B,IAAK130B,KAAK630B,KAC1B730B,KAAKotB,MAAMptB,KAAKm40B,IAAKn40B,KAAKo40B,KAIhC,EACAhrzB,MAAO,SAASkhB,EAAIC,GAElB,OADKD,GAACA,EAAIC,GAAMA,EACRvuC,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKukiB,OAAS,EACTvkiB,KAAAy30B,IAAMnpyB,EAAItuC,KAAK430B,IAAMrpyB,EAC1B,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACdvkiB,KAAKyzG,SAASgxb,OAAOzkiB,KAAK030B,IAAMppyB,EAAItuC,KAAK630B,IAAMtpyB,GAC/C,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACTvkiB,KAAAm40B,IAAM7pyB,EAAItuC,KAAKo40B,IAAM7pyB,EAC1B,MACF,QACUqjrB,GAAA5xtB,KAAMsuC,EAAIC,GAGjBvuC,KAAAo0M,IAAMp0M,KAAKq0M,IAAKr0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAKx30B,KAAKw30B,IAAMlpyB,EAChDtuC,KAAAs0M,IAAMt0M,KAAKu0M,IAAKv0M,KAAKu0M,IAAMv0M,KAAK230B,IAAK330B,KAAK230B,IAAMppyB,IAGrD,IAAA8pyB,GAAiB,SAAS77d,EAAOxwT,GACnC,SAASgsxB,EAAUv/zB,GACV,OAAA,IAAIy/zB,GAAez/zB,EAASuzC,GAK9B,OAHGgsxB,EAAAhsxB,QAAU,SAASisxB,GACpB,OAAAz7d,GAAQy7d,EACjB,EACOD,EAPY,CAQnB,GACO,SAAAM,GAAa7/zB,EAASuzC,GAC7BhsD,KAAKyzG,SAAWh7F,EACXzY,KAAA4/f,IAAM,EAAI5zc,GAAW,EAE5BssxB,GAAap70B,UAAY,CACvBq40B,UAAW,WACTv10B,KAAKitT,MAAQ,CACf,EACAuohB,QAAS,WACPx10B,KAAKitT,MAAQ3xT,GACf,EACA65hB,UAAW,WACJn1hB,KAAAo0M,IAAMp0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAMx30B,KAAKs0M,IAAMt0M,KAAKu0M,IAAMv0M,KAAK230B,IAAMr80B,IAClE0E,KAAKukiB,OAAS,CAChB,EACAnP,QAAS,YACHp1hB,KAAKitT,OAAwB,IAAfjtT,KAAKitT,OAA+B,IAAhBjtT,KAAKukiB,SAAmBvkiB,KAAAyzG,SAAS+wb,YAClExkiB,KAAAitT,MAAQ,EAAIjtT,KAAKitT,KACxB,EACA7/R,MAAO,SAASkhB,EAAIC,GAElB,OADKD,GAACA,EAAIC,GAAMA,EACRvuC,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKukiB,OAAS,EACd,MACF,KAAK,EACHvkiB,KAAKukiB,OAAS,EACd,MACF,KAAK,EACHvkiB,KAAKukiB,OAAS,EACdvkiB,KAAKitT,MAAQjtT,KAAKyzG,SAASixb,OAAO1kiB,KAAKw30B,IAAKx30B,KAAK230B,KAAO330B,KAAKyzG,SAASgxb,OAAOzkiB,KAAKw30B,IAAKx30B,KAAK230B,KAC5F,MACF,KAAK,EACH330B,KAAKukiB,OAAS,EAEhB,QACUqtL,GAAA5xtB,KAAMsuC,EAAIC,GAGjBvuC,KAAAo0M,IAAMp0M,KAAKq0M,IAAKr0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAKx30B,KAAKw30B,IAAMlpyB,EAChDtuC,KAAAs0M,IAAMt0M,KAAKu0M,IAAKv0M,KAAKu0M,IAAMv0M,KAAK230B,IAAK330B,KAAK230B,IAAMppyB,IAGrD,IAAAgqyB,GAAe,SAAS/7d,EAAOxwT,GACjC,SAASgsxB,EAAUv/zB,GACV,OAAA,IAAI6/zB,GAAa7/zB,EAASuzC,GAK5B,OAHGgsxB,EAAAhsxB,QAAU,SAASisxB,GACpB,OAAAz7d,GAAQy7d,EACjB,EACOD,EAPU,CAQjB,GACO,SAAAQ,GAAQppzB,EAAMkf,EAAIC,GACrB,IAAAtc,EAAK7C,EAAKilL,IAAKliL,EAAK/C,EAAKmlL,IAAKriK,EAAM9iB,EAAKoozB,IAAKrlyB,EAAM/iB,EAAKuozB,IACzD,GAAAvozB,EAAKqpzB,OAASvomB,EAAS,CACzB,IAAIuE,EAAK,EAAIrlN,EAAKspzB,QAAU,EAAItpzB,EAAKqpzB,OAASrpzB,EAAKupzB,OAASvpzB,EAAKwpzB,QAASp40B,EAAI,EAAI4uB,EAAKqpzB,QAAUrpzB,EAAKqpzB,OAASrpzB,EAAKupzB,QAC9G1mzB,GAAAA,EAAKwiN,EAAKrlN,EAAKglL,IAAMhlL,EAAKwpzB,QAAUxpzB,EAAKoozB,IAAMpozB,EAAKspzB,SAAWl40B,EAC/D2xB,GAAAA,EAAKsiN,EAAKrlN,EAAKklL,IAAMllL,EAAKwpzB,QAAUxpzB,EAAKuozB,IAAMvozB,EAAKspzB,SAAWl40B,EAEnE,GAAA4uB,EAAKypzB,OAAS3omB,EAAS,CACzB,IAAIvxO,EAAI,EAAIywB,EAAK0pzB,QAAU,EAAI1pzB,EAAKypzB,OAASzpzB,EAAKupzB,OAASvpzB,EAAKwpzB,QAAS790B,EAAI,EAAIq0B,EAAKypzB,QAAUzpzB,EAAKypzB,OAASzpzB,EAAKupzB,QAC5GzmyB,GAAAA,EAAMvzC,EAAIywB,EAAKilL,IAAMjlL,EAAK0pzB,QAAUxqyB,EAAKlf,EAAKwpzB,SAAW790B,EACzDo3C,GAAAA,EAAMxzC,EAAIywB,EAAKmlL,IAAMnlL,EAAK0pzB,QAAUvqyB,EAAKnf,EAAKwpzB,SAAW790B,EAE7Dq0B,EAAAqkF,SAASoguB,cAAc5hzB,EAAIE,EAAI+f,EAAKC,EAAK/iB,EAAKoozB,IAAKpozB,EAAKuozB,KAEtD,SAAAoB,GAAWtg0B,EAASwgC,GAC3Bj5C,KAAKyzG,SAAWh7F,EAChBzY,KAAKg50B,OAAS//xB,EAEhB8/xB,GAAW770B,UAAY,CACrBq40B,UAAW,WACTv10B,KAAKitT,MAAQ,CACf,EACAuohB,QAAS,WACPx10B,KAAKitT,MAAQ3xT,GACf,EACA65hB,UAAW,WACJn1hB,KAAAo0M,IAAMp0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAMx30B,KAAKs0M,IAAMt0M,KAAKu0M,IAAMv0M,KAAK230B,IAAMr80B,IAClE0E,KAAKy40B,OAASz40B,KAAK240B,OAAS340B,KAAK640B,OAAS740B,KAAK040B,QAAU140B,KAAK440B,QAAU540B,KAAK840B,QAAU940B,KAAKukiB,OAAS,CACvG,EACAnP,QAAS,WACP,OAAQp1hB,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKyzG,SAASixb,OAAO1kiB,KAAKw30B,IAAKx30B,KAAK230B,KACpC,MACF,KAAK,EACH330B,KAAKotB,MAAMptB,KAAKw30B,IAAKx30B,KAAK230B,MAG1B330B,KAAKitT,OAAwB,IAAfjtT,KAAKitT,OAA+B,IAAhBjtT,KAAKukiB,SAAmBvkiB,KAAAyzG,SAAS+wb,YAClExkiB,KAAAitT,MAAQ,EAAIjtT,KAAKitT,KACxB,EACA7/R,MAAO,SAASkhB,EAAIC,GAElB,GADKD,GAACA,EAAIC,GAAMA,EACZvuC,KAAKukiB,OAAQ,CACf,IAAI00S,EAAMj50B,KAAKw30B,IAAMlpyB,EAAI4qyB,EAAMl50B,KAAK230B,IAAMppyB,EAC1CvuC,KAAK640B,OAASr90B,KAAKmjB,KAAK3e,KAAK840B,QAAUt90B,KAAKC,IAAIw90B,EAAMA,EAAMC,EAAMA,EAAKl50B,KAAKg50B,SAE9E,OAAQh50B,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKukiB,OAAS,EACTvkiB,KAAAitT,MAAQjtT,KAAKyzG,SAASixb,OAAOp2f,EAAIC,GAAMvuC,KAAKyzG,SAASgxb,OAAOn2f,EAAIC,GACrE,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACd,MACF,KAAK,EACHvkiB,KAAKukiB,OAAS,EAEhB,QACUi0S,GAAAx40B,KAAMsuC,EAAIC,GAGtBvuC,KAAKy40B,OAASz40B,KAAK240B,OAAQ340B,KAAK240B,OAAS340B,KAAK640B,OAC9C740B,KAAK040B,QAAU140B,KAAK440B,QAAS540B,KAAK440B,QAAU540B,KAAK840B,QAC5C940B,KAAAo0M,IAAMp0M,KAAKq0M,IAAKr0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAKx30B,KAAKw30B,IAAMlpyB,EAChDtuC,KAAAs0M,IAAMt0M,KAAKu0M,IAAKv0M,KAAKu0M,IAAMv0M,KAAK230B,IAAK330B,KAAK230B,IAAMppyB,IAGrD,IAAA4qyB,GAAa,SAAS38d,EAAOvjU,GAC/B,SAASmgyB,EAAY3g0B,GACZ,OAAAwgC,EAAQ,IAAI8/xB,GAAWtg0B,EAASwgC,GAAS,IAAI8+xB,GAASt/zB,EAAS,GAKjE,OAHK2g0B,EAAAngyB,MAAQ,SAASogyB,GACpB,OAAA78d,GAAQ68d,EACjB,EACOD,EAPQ,CAQf,IACO,SAAAE,GAAiB7g0B,EAASwgC,GACjCj5C,KAAKyzG,SAAWh7F,EAChBzY,KAAKg50B,OAAS//xB,EAEhBqgyB,GAAiBp80B,UAAY,CAC3Bq40B,UAAWp0uB,GACXq0uB,QAASr0uB,GACTg0b,UAAW,WACJn1hB,KAAAo0M,IAAMp0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAMx30B,KAAKy30B,IAAMz30B,KAAK030B,IAAM130B,KAAKm40B,IAAMn40B,KAAKs0M,IAAMt0M,KAAKu0M,IAAMv0M,KAAK230B,IAAM330B,KAAK430B,IAAM530B,KAAK630B,IAAM730B,KAAKo40B,IAAM980B,IACpI0E,KAAKy40B,OAASz40B,KAAK240B,OAAS340B,KAAK640B,OAAS740B,KAAK040B,QAAU140B,KAAK440B,QAAU540B,KAAK840B,QAAU940B,KAAKukiB,OAAS,CACvG,EACAnP,QAAS,WACP,OAAQp1hB,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKyzG,SAASgxb,OAAOzkiB,KAAKy30B,IAAKz30B,KAAK430B,KACpC530B,KAAKyzG,SAAS+wb,YACd,MAEF,KAAK,EACHxkiB,KAAKyzG,SAASixb,OAAO1kiB,KAAKy30B,IAAKz30B,KAAK430B,KACpC530B,KAAKyzG,SAAS+wb,YACd,MAEF,KAAK,EACHxkiB,KAAKotB,MAAMptB,KAAKy30B,IAAKz30B,KAAK430B,KAC1B530B,KAAKotB,MAAMptB,KAAK030B,IAAK130B,KAAK630B,KAC1B730B,KAAKotB,MAAMptB,KAAKm40B,IAAKn40B,KAAKo40B,KAIhC,EACAhrzB,MAAO,SAASkhB,EAAIC,GAElB,GADKD,GAACA,EAAIC,GAAMA,EACZvuC,KAAKukiB,OAAQ,CACf,IAAI00S,EAAMj50B,KAAKw30B,IAAMlpyB,EAAI4qyB,EAAMl50B,KAAK230B,IAAMppyB,EAC1CvuC,KAAK640B,OAASr90B,KAAKmjB,KAAK3e,KAAK840B,QAAUt90B,KAAKC,IAAIw90B,EAAMA,EAAMC,EAAMA,EAAKl50B,KAAKg50B,SAE9E,OAAQh50B,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKukiB,OAAS,EACTvkiB,KAAAy30B,IAAMnpyB,EAAItuC,KAAK430B,IAAMrpyB,EAC1B,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACdvkiB,KAAKyzG,SAASgxb,OAAOzkiB,KAAK030B,IAAMppyB,EAAItuC,KAAK630B,IAAMtpyB,GAC/C,MACF,KAAK,EACHvuC,KAAKukiB,OAAS,EACTvkiB,KAAAm40B,IAAM7pyB,EAAItuC,KAAKo40B,IAAM7pyB,EAC1B,MACF,QACUiqyB,GAAAx40B,KAAMsuC,EAAIC,GAGtBvuC,KAAKy40B,OAASz40B,KAAK240B,OAAQ340B,KAAK240B,OAAS340B,KAAK640B,OAC9C740B,KAAK040B,QAAU140B,KAAK440B,QAAS540B,KAAK440B,QAAU540B,KAAK840B,QAC5C940B,KAAAo0M,IAAMp0M,KAAKq0M,IAAKr0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAKx30B,KAAKw30B,IAAMlpyB,EAChDtuC,KAAAs0M,IAAMt0M,KAAKu0M,IAAKv0M,KAAKu0M,IAAMv0M,KAAK230B,IAAK330B,KAAK230B,IAAMppyB,IAGrD,IAAAgryB,GAAmB,SAAS/8d,EAAOvjU,GACrC,SAASmgyB,EAAY3g0B,GACZ,OAAAwgC,EAAQ,IAAIqgyB,GAAiB7g0B,EAASwgC,GAAS,IAAIi/xB,GAAez/zB,EAAS,GAK7E,OAHK2g0B,EAAAngyB,MAAQ,SAASogyB,GACpB,OAAA78d,GAAQ68d,EACjB,EACOD,EAPc,CAQrB,IACO,SAAAI,GAAe/g0B,EAASwgC,GAC/Bj5C,KAAKyzG,SAAWh7F,EAChBzY,KAAKg50B,OAAS//xB,EAEhBugyB,GAAet80B,UAAY,CACzBq40B,UAAW,WACTv10B,KAAKitT,MAAQ,CACf,EACAuohB,QAAS,WACPx10B,KAAKitT,MAAQ3xT,GACf,EACA65hB,UAAW,WACJn1hB,KAAAo0M,IAAMp0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAMx30B,KAAKs0M,IAAMt0M,KAAKu0M,IAAMv0M,KAAK230B,IAAMr80B,IAClE0E,KAAKy40B,OAASz40B,KAAK240B,OAAS340B,KAAK640B,OAAS740B,KAAK040B,QAAU140B,KAAK440B,QAAU540B,KAAK840B,QAAU940B,KAAKukiB,OAAS,CACvG,EACAnP,QAAS,YACHp1hB,KAAKitT,OAAwB,IAAfjtT,KAAKitT,OAA+B,IAAhBjtT,KAAKukiB,SAAmBvkiB,KAAAyzG,SAAS+wb,YAClExkiB,KAAAitT,MAAQ,EAAIjtT,KAAKitT,KACxB,EACA7/R,MAAO,SAASkhB,EAAIC,GAElB,GADKD,GAACA,EAAIC,GAAMA,EACZvuC,KAAKukiB,OAAQ,CACf,IAAI00S,EAAMj50B,KAAKw30B,IAAMlpyB,EAAI4qyB,EAAMl50B,KAAK230B,IAAMppyB,EAC1CvuC,KAAK640B,OAASr90B,KAAKmjB,KAAK3e,KAAK840B,QAAUt90B,KAAKC,IAAIw90B,EAAMA,EAAMC,EAAMA,EAAKl50B,KAAKg50B,SAE9E,OAAQh50B,KAAKukiB,QACX,KAAK,EACHvkiB,KAAKukiB,OAAS,EACd,MACF,KAAK,EACHvkiB,KAAKukiB,OAAS,EACd,MACF,KAAK,EACHvkiB,KAAKukiB,OAAS,EACdvkiB,KAAKitT,MAAQjtT,KAAKyzG,SAASixb,OAAO1kiB,KAAKw30B,IAAKx30B,KAAK230B,KAAO330B,KAAKyzG,SAASgxb,OAAOzkiB,KAAKw30B,IAAKx30B,KAAK230B,KAC5F,MACF,KAAK,EACH330B,KAAKukiB,OAAS,EAEhB,QACUi0S,GAAAx40B,KAAMsuC,EAAIC,GAGtBvuC,KAAKy40B,OAASz40B,KAAK240B,OAAQ340B,KAAK240B,OAAS340B,KAAK640B,OAC9C740B,KAAK040B,QAAU140B,KAAK440B,QAAS540B,KAAK440B,QAAU540B,KAAK840B,QAC5C940B,KAAAo0M,IAAMp0M,KAAKq0M,IAAKr0M,KAAKq0M,IAAMr0M,KAAKw30B,IAAKx30B,KAAKw30B,IAAMlpyB,EAChDtuC,KAAAs0M,IAAMt0M,KAAKu0M,IAAKv0M,KAAKu0M,IAAMv0M,KAAK230B,IAAK330B,KAAK230B,IAAMppyB,IAGrD,IAAAkryB,GAAiB,SAASj9d,EAAOvjU,GACnC,SAASm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A,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,MACA,KACA,KACA,MACA,KACA,MACA,KACA,MAEEK,EAAmB,CACrB,KACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,YA4HFuB,GAAiBjh3B,EAAW,CAC9B,0DACE,IAAIo5K,EAAO09rB,KACPv4f,EAASk5M,KACb,SAASypT,EAAejJ,GACjB5v3B,KAAAmd,MAAQnd,KAAK2u3B,gBAAgBiB,GAAY,KAAO5v3B,KAAK2u3B,gBAAgB,IAE7DkK,EAAA373B,UAAY,IAAI6zL,EAAK4hsB,aACpCz8f,EAAO2igB,EAAe373B,UAAW,CAG/B+O,KAAM,SAGN2l3B,QAAS,UAGTC,aAAc,CAAC,G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B,KACPv4f,EAASk5M,KACb,SAASmrT,EAAc3K,GAChB5v3B,KAAAmd,MAAQnd,KAAK2u3B,gBAAgBiB,GAAY,KAAO5v3B,KAAK2u3B,gBAAgB,IAuXnE,SAAA922B,EAAIpT,EAAG9F,GACd,OAAO8F,EAAI9F,EAAInD,KAAKO,MAAM0I,EAAI9F,GAEvB,SAAA673B,EAAK/13B,EAAG9F,GACf,OAAOkZ,EAAIpT,EAAI,EAAG9F,GAAK,EAzXX473B,EAAAr93B,UAAY,IAAI6zL,EAAK4hsB,aACnCz8f,EAAOqkgB,EAAcr93B,UAAW,CAG9B+O,KAAM,QAGN2l3B,QAAS,SAGTD,aAAa,EAGbZ,SAAU,EAGVI,WAAY,EAGZH,OAAQ,EAkBRrC,gBAAiB,CAEf,GAAI,CACF1i3B,KAAM,QACNgl3B,OAAQ,CAAC,GAAI,IACba,WAAY,CACV,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,gBAAiB,CACf,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,SAAU,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,cAAe,CACb,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,YAAa,CACX,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEF/rxB,OAAQ,KACRgsxB,WAAY,WACZC,SAAU,EACVC,OAAO,EACPoI,WAAY,CACV,MACA,KACA,MACA,OACA,OACA,MACA,SACA,MACA,OACA,MACA,MACA,MACA,MACA,SACA,OACA,MACA,QACA,QACA,SAEFC,cAAe,CACb,OACA,KACA,QACA,MACA,WACA,OACA,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GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,IAAK,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACtD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAEvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IACvD,KAAM,CAAC,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI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GADR7pQ,EAAoB,MAAbA,EAAKA,KAAeA,EAAKA,KAAOA,IACvB,MAAQA,GAAQ,MAE3B6pQ,CACT,EASA2tW,UAAW,SAASx3mB,EAAML,EAAOtB,EAAK3zD,GACpC,IAAIqyD,EAAO06H,EAAK4hsB,aAAaz13B,UAAU4zqB,UAAUttqB,MAAMxD,KAAMN,WAC7D,GAAI22D,EAAKiD,KAAO,MAAQjD,EAAKiD,KAAO,KAClC,MAAMt1D,EAAMuB,QAAQ,QAASvF,KAAKmd,MAAMlR,MAEnC,OAAAoqD,KAGX06H,EAAK9qF,UAAUy4xB,UAAYL,EAC3B,IAAIG,EAAgB,CAClB,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MAEA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,UAMFG,GAAoBhn3B,EAAW,CACjC,wCAAwCpb,EAASic,GAE/CA,EAAOjc,QAAUky3B,KACJoE,KACGsD,KACDyC,KACGG,KACAK,KACHG,KACCS,KACDG,KACDG,KACKkB,KACJG,KACCoB,KACDY,KACFM,KACKG,QAKlBQ,GAAqBjn3B,EAAW,CAClC,oCAAoCpb,EAASic,GAE3C,IAAIytF,EAAY04xB,KACZ78wB,EAAMrN,KACN11B,EAAY3V,IACZoB,EAAUuU,EAAUvU,QACpBN,EAAS6U,EAAU7U,OACnBqe,EAAa,CACftL,QAAS,aACT/+D,OAAQ4jG,EAAInM,eAAe1P,EAAUA,WACrClpB,SAAU,OACVI,KAAM,aAEJmxE,EAAiB,SAASvE,EAAQlqC,EAAS72F,EAAMm0D,GACnD,IAAIE,EAAQ,CAAC,EAEb,OADAA,EAAMr0D,GAAQu/D,EACPu5B,EAAI15B,OAAO2hE,EAAQl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","x_google_ignoreList":[0,1,2,3,4,5]}